@skippr/live-agent-sdk 0.20.0 → 0.21.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 +14 -12
- 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 N=q.sdp.split(`
|
|
|
271
271
|
`)+`\r
|
|
272
272
|
`},$W}var Qn;function F30(){if(Qn)return O5;Qn=1;var $=U30(),Y=M30(),G=nW();return O5.grammar=G,O5.write=Y,O5.parse=$.parse,O5.parseParams=$.parseParams,O5.parseFmtpConfig=$.parseFmtpConfig,O5.parsePayloads=$.parsePayloads,O5.parseRemoteCandidates=$.parseRemoteCandidates,O5.parseImageAttributes=$.parseImageAttributes,O5.parseSimulcastStreamList=$.parseSimulcastStreamList,O5}var Y8=F30();function aW($,Y,G){var H,q,N;Y===void 0&&(Y=50),G===void 0&&(G={});var K=(H=G.isImmediate)!=null&&H,U=(q=G.callback)!=null&&q,M=G.maxWait,F=Date.now(),O=[];function L(){if(M!==void 0){var C=Date.now()-F;if(C+Y>=M)return M-C}return Y}var R=function(){var C=[].slice.call(arguments),D=this;return new Promise(function(T,m){var g=K&&N===void 0;if(N!==void 0&&clearTimeout(N),N=setTimeout(function(){if(N=void 0,F=Date.now(),!K){var c=$.apply(D,C);U&&U(c),O.forEach(function(I){return(0,I.resolve)(c)}),O=[]}},L()),g){var n=$.apply(D,C);return U&&U(n),T(n)}O.push({resolve:T,reject:m})})};return R.cancel=function(C){N!==void 0&&clearTimeout(N),O.forEach(function(D){return(0,D.reject)(C)}),O=[]},R}var k30=0.7,P30=20,a7={NegotiationStarted:"negotiationStarted",NegotiationComplete:"negotiationComplete",RTPVideoPayloadTypes:"rtpVideoPayloadTypes"};class TW extends A4.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=i0,this.ddExtID=0,this.latestOfferId=0,this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate=!1,this.trackBitrates=[],this.remoteStereoMids=[],this.remoteNackMids=[],this.negotiate=aW((H)=>p(this,void 0,void 0,function*(){this.emit(a7.NegotiationStarted);try{yield this.createAndSendOffer()}catch(q){if(H)H(q);else throw q}}),P30),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=r4((G=Y.loggerName)!==null&&G!==void 0?G:V5.PCTransport),this.loggerOptions=Y,this.config=$,this._pc=this.createPC(),this.offerLock=new m2}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 p(this,void 0,void 0,function*(){if(this.pc.remoteDescription&&!this.restartingIce)return this.pc.addIceCandidate($);this.pendingCandidates.push($)})}setRemoteDescription($,Y){return p(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:N}=O30($);this.remoteStereoMids=q,this.remoteNackMids=N}else if($.type==="answer"){let q=Y8.parse((G=$.sdp)!==null&&G!==void 0?G:"");q.media.forEach((N)=>{let K=tW(N.mid);if(N.type==="audio")this.trackBitrates.some((U)=>{if(!U.transceiver||K!=U.transceiver.mid)return!1;let M=0;if(N.rtp.some((O)=>{if(O.codec.toUpperCase()===U.codec.toUpperCase())return M=O.payload,!0;return!1}),M===0)return!0;let F=!1;for(let O of N.fmtp)if(O.payload===M){if(O.config=O.config.split(";").filter((L)=>!L.includes("maxaveragebitrate")).join(";"),U.maxbr>0)O.config+=";maxaveragebitrate=".concat(U.maxbr*1000);F=!0;break}if(!F){if(U.maxbr>0)N.fmtp.push({payload:M,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(a7.NegotiationComplete),$.sdp)Y8.parse($.sdp).media.forEach((N)=>{if(N.type==="video")this.emit(a7.RTPVideoPayloadTypes,N.rtp)})}return!0})}createAndSendOffer($){return p(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 K=this._pc.remoteDescription;if(($===null||$===void 0?void 0:$.iceRestart)&&K)yield this._pc.setRemoteDescription(K);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 N=Y8.parse((Y=q.sdp)!==null&&Y!==void 0?Y:"");if(N.media.forEach((K)=>{if(Hn(K),K.type==="audio")Gn(K,["all"],[]);else if(K.type==="video")this.trackBitrates.some((U)=>{if(!K.msid||!U.cid||!K.msid.includes(U.cid))return!1;let M=0;if(K.rtp.some((O)=>{if(O.codec.toUpperCase()===U.codec.toUpperCase())return M=O.payload,!0;return!1}),M===0)return!0;if(x5(U.codec)&&!x3())this.ensureVideoDDExtensionForSVC(K,N);if(!x5(U.codec))return!0;let F=Math.round(U.maxbr*k30);for(let O of K.fmtp)if(O.payload===M){if(!O.config.includes("x-google-start-bitrate"))O.config+=";x-google-start-bitrate=".concat(F);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(N)),this.onOffer(q,this.latestOfferId)}finally{G()}})}createAndSetAnswer(){return p(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 p(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((K)=>{switch(K.type){case"transport":Y=K.selectedCandidatePairId;break;case"candidate-pair":if(Y===""&&K.selected)Y=K.id;G.set(K.id,K);break;case"remote-candidate":H.set(K.id,"".concat(K.address,":").concat(K.port));break}}),Y==="")return;let N=($=G.get(Y))===null||$===void 0?void 0:$.remoteCandidateId;if(N===void 0)return;return H.get(N)})}setMungedSDP($,Y,G){return p(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 N={error:q,sdp:$.sdp};if(!G&&this.pc.remoteDescription)N.remoteSdp=this.pc.remoteDescription;throw this.log.error("unable to set ".concat($.type),Object.assign(Object.assign({},this.logContext),{fields:N})),new L3(q)}})}ensureVideoDDExtensionForSVC($,Y){var G,H;if(!((G=$.ext)===null||G===void 0?void 0:G.some((N)=>{if(N.uri===dr)return!0;return!1}))){if(this.ddExtID===0){let N=0;Y.media.forEach((K)=>{var U;if(K.type!=="video")return;(U=K.ext)===null||U===void 0||U.forEach((M)=>{if(M.value>N)N=M.value})}),this.ddExtID=N+1}(H=$.ext)===null||H===void 0||H.push({value:this.ddExtID,uri:dr})}}}function Gn($,Y,G){let H=tW($.mid),q=0;if($.rtp.some((N)=>{if(N.codec==="opus")return q=N.payload,!0;return!1}),q>0){if(!$.rtcpFb)$.rtcpFb=[];if(G.includes(H)&&!$.rtcpFb.some((N)=>N.payload===q&&N.type==="nack"))$.rtcpFb.push({payload:q,type:"nack"});if(Y.includes(H)||Y.length===1&&Y[0]==="all")$.fmtp.some((N)=>{if(N.payload===q){if(!N.config.includes("stereo=1"))N.config+=";stereo=1";return!0}return!1})}}function O30($){var Y;let G=[],H=[],q=Y8.parse((Y=$.sdp)!==null&&Y!==void 0?Y:""),N=0;return q.media.forEach((K)=>{var U;let M=tW(K.mid);if(K.type==="audio"){if(K.rtp.some((F)=>{if(F.codec==="opus")return N=F.payload,!0;return!1}),(U=K.rtcpFb)===null||U===void 0?void 0:U.some((F)=>F.payload===N&&F.type==="nack"))H.push(M);K.fmtp.some((F)=>{if(F.payload===N){if(F.config.includes("sprop-stereo=1"))G.push(M);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 tW($){return typeof $==="number"?$.toFixed(0):$}var pW="vp8",L30={audioPreset:PW.music,dtx:!0,red:!0,forceStereo:!1,simulcast:!0,screenShareEncoding:V3.h1080fps15.encoding,stopMicTrackOnMute:!1,videoCodec:pW,backupCodec:!0,preConnectBuffer:!1},Nt={deviceId:{ideal:"default"},autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,voiceIsolation:!0},Kt={deviceId:{ideal:"default"},resolution:qH.h720.resolution},R30={adaptiveStream:!1,dynacast:!1,stopLocalTrackOnUnpublish:!0,reconnectPolicy:new Pa,disconnectOnPageLeave:!0,webAudioMix:!1,singlePeerConnection:!0},eW={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=eW.peerConnectionTimeout,this.log=i0,this.updateState=()=>{var q,N;let K=this.state,U=this.requiredTransports.map((M)=>M.getConnectionState());if(U.every((M)=>M==="connected"))this.state=a1.CONNECTED;else if(U.some((M)=>M==="failed"))this.state=a1.FAILED;else if(U.some((M)=>M==="connecting"))this.state=a1.CONNECTING;else if(U.every((M)=>M==="closed"))this.state=a1.CLOSED;else if(U.some((M)=>M==="closed"))this.state=a1.CLOSING;else if(U.every((M)=>M==="new"))this.state=a1.NEW;if(K!==this.state)this.log.debug("pc state change: from ".concat(a1[K]," to ").concat(a1[this.state]),this.logContext),(q=this.onStateChange)===null||q===void 0||q.call(this,this.state,this.publisher.getConnectionState(),(N=this.subscriber)===null||N===void 0?void 0:N.getConnectionState())},this.log=r4((H=G.loggerName)!==null&&H!==void 0?H:V5.PCManager),this.loggerOptions=G,this.isPublisherConnectionRequired=Y!=="subscriber-primary",this.isSubscriberConnectionRequired=Y==="subscriber-primary",this.publisher=new TW($,G),this._mode=Y,Y!=="publisher-only")this.subscriber=new TW($,G),this.subscriber.onConnectionStateChange=this.updateState,this.subscriber.onIceConnectionStateChange=this.updateState,this.subscriber.onSignalingStatechange=this.updateState,this.subscriber.onIceCandidate=(q)=>{var N;(N=this.onIceCandidate)===null||N===void 0||N.call(this,q,w5.SUBSCRIBER)},this.subscriber.onDataChannel=(q)=>{var N;(N=this.onDataChannel)===null||N===void 0||N.call(this,q)},this.subscriber.onTrack=(q)=>{var N;(N=this.onTrack)===null||N===void 0||N.call(this,q)};this.publisher.onConnectionStateChange=this.updateState,this.publisher.onIceConnectionStateChange=this.updateState,this.publisher.onSignalingStatechange=this.updateState,this.publisher.onIceCandidate=(q)=>{var N;(N=this.onIceCandidate)===null||N===void 0||N.call(this,q,w5.PUBLISHER)},this.publisher.onTrack=(q)=>{var N;(N=this.onTrack)===null||N===void 0||N.call(this,q)},this.publisher.onOffer=(q,N)=>{var K;(K=this.onPublisherOffer)===null||K===void 0||K.call(this,q,N)},this.state=a1.NEW,this.connectionLock=new m2,this.remoteOfferLock=new m2}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 p(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 p(this,void 0,void 0,function*(){if(this.subscriber)this.subscriber.restartingIce=!0;if(this.needsPublisher)yield this.createAndSendPublisherOffer({iceRestart:!0})})}addIceCandidate($,Y){return p(this,void 0,void 0,function*(){var G;if(Y===w5.PUBLISHER)yield this.publisher.addIceCandidate($);else yield(G=this.subscriber)===null||G===void 0?void 0:G.addIceCandidate($)})}createSubscriberAnswerFromOffer($,Y){return p(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 N=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{N()}})}updateConfiguration($,Y){var G;if(this.publisher.setConfiguration($),(G=this.subscriber)===null||G===void 0||G.setConfiguration($),Y)this.triggerIceRestart()}ensurePCTransportConnection($,Y){return p(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 p(this,void 0,void 0,function*(){return new f2((Y,G)=>p(this,void 0,void 0,function*(){let H=setTimeout(()=>{G(new L3("negotiation timed out"))},this.peerConnectionTimeout),q=()=>{clearTimeout(H),G(new L3("negotiation aborted"))};$.signal.addEventListener("abort",q),this.publisher.once(a7.NegotiationStarted,()=>{if($.signal.aborted)return;this.publisher.once(a7.NegotiationComplete,()=>{clearTimeout(H),Y()})}),yield this.publisher.negotiate((N)=>{if(clearTimeout(H),N instanceof Error)G(N);else G(Error(String(N)))})}))})}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($===w5.PUBLISHER)return this.publisher.getConnectedAddress();else if($===w5.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 p(this,arguments,void 0,function(G,H){var q=this;let N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.peerConnectionTimeout;return function*(){if(G.getConnectionState()==="connected")return;return new Promise((U,M)=>p(q,void 0,void 0,function*(){let F=()=>{this.log.warn("abort transport connection",this.logContext),p2.clearTimeout(O),M(E0.cancelled("room connection has been cancelled"))};if(H===null||H===void 0?void 0:H.signal.aborted)F();H===null||H===void 0||H.signal.addEventListener("abort",F);let O=p2.setTimeout(()=>{H===null||H===void 0||H.signal.removeEventListener("abort",F),M(E0.internal("could not establish pc connection"))},N);while(this.state!==a1.CONNECTED)if(yield g2(50),H===null||H===void 0?void 0:H.signal.aborted){M(E0.cancelled("room connection has been cancelled"));return}p2.clearTimeout(O),H===null||H===void 0||H.signal.removeEventListener("abort",F),U()}))}()})}}var Ut=5000,w30=30000;class N1{static fetchRegionSettings($,Y,G){return p(this,void 0,void 0,function*(){let H=yield N1.fetchLock.lock();try{let q=yield fetch("".concat(x30($),"/regions"),{headers:{authorization:"Bearer ".concat(Y)},signal:G});if(q.ok){let N=n80(q.headers),K=N?N*1000:Ut;return{regionSettings:yield q.json(),updatedAtInMs:Date.now(),maxAgeInMs:K}}else if(q.status===401)throw E0.notAllowed("Could not fetch region settings: ".concat(q.statusText),q.status);else throw E0.internal("Could not fetch region settings: ".concat(q.statusText))}catch(q){if(q instanceof E0)throw q;else if(G===null||G===void 0?void 0:G.aborted)throw E0.cancelled("Region fetching was aborted");else throw E0.serverUnreachable("Could not fetch region settings, ".concat(q instanceof Error?"".concat(q.name,": ").concat(q.message):q))}finally{H()}})}static scheduleRefetch($,Y,G){return p(this,void 0,void 0,function*(){let H=N1.settingsTimeouts.get($.hostname);clearTimeout(H),N1.settingsTimeouts.set($.hostname,setTimeout(()=>p(this,void 0,void 0,function*(){try{let q=yield N1.fetchRegionSettings($,Y);N1.updateCachedRegionSettings($,Y,q)}catch(q){if(q instanceof E0&&q.reason===T1.NotAllowed){i0.debug("token is not valid, cancelling auto region refresh");return}i0.debug("auto refetching of region settings failed",{error:q}),N1.scheduleRefetch($,Y,G)}}),G))})}static updateCachedRegionSettings($,Y,G){N1.cache.set($.hostname,G),N1.scheduleRefetch($,Y,G.maxAgeInMs)}static stopRefetch($){let Y=N1.settingsTimeouts.get($);if(Y)clearTimeout(Y),N1.settingsTimeouts.delete($)}static scheduleCleanup($){let Y=N1.connectionTrackers.get($);if(!Y)return;if(Y.cleanupTimeout)clearTimeout(Y.cleanupTimeout);Y.cleanupTimeout=setTimeout(()=>{let G=N1.connectionTrackers.get($);if(G&&G.connectionCount===0)i0.debug("stopping region refetch after disconnect delay",{hostname:$}),N1.stopRefetch($);if(G)G.cleanupTimeout=void 0},w30)}static cancelCleanup($){let Y=N1.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=N1.connectionTrackers.get($);if(!Y)Y={connectionCount:0},N1.connectionTrackers.set($,Y);Y.connectionCount++,N1.cancelCleanup($)}notifyDisconnected(){let $=this.serverUrl.hostname,Y=N1.connectionTrackers.get($);if(!Y)return;if(Y.connectionCount=Math.max(0,Y.connectionCount-1),Y.connectionCount===0)N1.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 p(this,void 0,void 0,function*(){return N1.fetchRegionSettings(this.serverUrl,this.token,$)})}getNextBestRegionUrl($){return p(this,void 0,void 0,function*(){if(!this.isCloud())throw Error("region availability is only supported for LiveKit Cloud domains");let Y=N1.cache.get(this.serverUrl.hostname);if(!Y||Date.now()-Y.updatedAtInMs>Y.maxAgeInMs)Y=yield this.fetchRegionSettings($),N1.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),i0.debug("next region: ".concat(H.region)),H.url}else return null})}resetAttempts(){this.attemptedRegions=[]}setServerReportedRegions($){N1.updateCachedRegionSettings(this.serverUrl,this.token,$)}}N1.cache=new Map;N1.settingsTimeouts=new Map;N1.connectionTrackers=new Map;N1.fetchLock=new m2;function x30($){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 Mt=15360;function XU($){return new TextEncoder().encode($).length}function zn($,Y){if(XU($)<=Y)return $;let G=0,H=$.length,q=new TextEncoder;while(G<H){let N=Math.floor((G+H+1)/2);if(q.encode($.slice(0,N)).length<=Y)G=N;else H=N-1}return $.slice(0,G)}var $U=2000;function vB($,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 ZU=typeof MediaRecorder<"u";class Ft{constructor(){throw Error("MediaRecorder is not available in this environment")}}var _30=ZU?MediaRecorder:Ft;class kt extends _30{constructor($,Y){if(!ZU)throw Error("MediaRecorder is not available in this environment");super(new MediaStream([$.mediaStreamTrack]),Y);let G,H,q=()=>H===void 0,N=()=>{this.removeEventListener("dataavailable",G),this.removeEventListener("stop",N),this.removeEventListener("error",K),H===null||H===void 0||H.close(),H=void 0},K=(U)=>{H===null||H===void 0||H.error(U),this.removeEventListener("dataavailable",G),this.removeEventListener("stop",N),this.removeEventListener("error",K),H=void 0};this.byteStream=new ReadableStream({start:(U)=>{H=U,G=(M)=>p(this,void 0,void 0,function*(){let F;if(M.data.arrayBuffer){let O=yield M.data.arrayBuffer();F=new Uint8Array(O)}else if(M.data.byteArray)F=M.data.byteArray;else throw Error("no data available!");if(q())return;U.enqueue(F)}),this.addEventListener("dataavailable",G)},cancel:()=>{N()}}),this.addEventListener("stop",N),this.addEventListener("error",K)}}function V30(){return ZU}var C30=1000,I30=1e4;class YU 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=aW(()=>p(this,void 0,void 0,function*(){yield this.pauseUpstream()}),5000),this.handleTrackUnmuteEvent=()=>p(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 m2,this.pauseUpstreamLock=new m2,this.trackChangeLock=new m2,this.trackChangeLock.lock().then((N)=>p(this,void 0,void 0,function*(){try{yield this.setMediaStreamTrack($,!0)}finally{N()}})),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 p(this,void 0,void 0,function*(){var G;if($===this._mediaStreamTrack&&!Y)return;if(this._mediaStreamTrack)this.attachedElements.forEach((q)=>{o7(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)d7($,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)=>{d7(H!==null&&H!==void 0?H:$,q)})})}waitForDimensions(){return p(this,arguments,void 0,function(){var $=this;let Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:C30;return function*(){var G;if($.kind===e.Kind.Audio)throw Error("cannot get dimensions for audio tracks");if(((G=H6())===null||G===void 0?void 0:G.os)==="iOS")yield g2(10);let H=Date.now();while(Date.now()-H<Y){let q=$.dimensions;if(q)return q;yield g2(50)}throw new q4("unable to get track dimensions after timeout")}()})}setDeviceId($){return p(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 p(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 p(this,void 0,void 0,function*(){return this.setTrackMuted(!0),this})}unmute(){return p(this,void 0,void 0,function*(){return this.setTrackMuted(!1),this})}replaceTrack($,Y){return p(this,void 0,void 0,function*(){let G=yield this.trackChangeLock.lock();try{if(!this.sender)throw new q4("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 p(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 N={audio:!1,video:!1};if(this.kind===e.Kind.Video)N.video=G||H?{deviceId:G,facingMode:H}:!0;else N.audio=G?Object.assign({deviceId:G},q):!0;this.attachedElements.forEach((M)=>{o7(this.mediaStreamTrack,M)}),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.stop();let U=(yield navigator.mediaDevices.getUserMedia(N)).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 p(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 p(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=H6();if((G===null||G===void 0?void 0:G.name)==="Safari"&&Y5(G.version,"12.0")<0)throw new EB("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 p(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 p(this,void 0,void 0,function*(){var $;if(!(($=this.sender)===null||$===void 0?void 0:$.getStats))return;return yield this.sender.getStats()})}setProcessor($){return p(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 N=yield G.trackChangeLock.lock();try{G.log.debug("setting up processor",G.logContext);let K=document.createElement(G.kind),U={kind:G.kind,track:G._mediaStreamTrack,element:K,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(d7(G._mediaStreamTrack,K),K.muted=!0,K.play().catch((M)=>{if(M instanceof DOMException&&M.name==="AbortError")G.log.warn("failed to play processor element, retrying",Object.assign(Object.assign({},G.logContext),{error:M})),setTimeout(()=>{K.play().catch((F)=>{G.log.error("failed to play processor element",Object.assign(Object.assign({},G.logContext),{err:F}))})},100);else G.log.error("failed to play processor element",Object.assign(Object.assign({},G.logContext),{error:M}))}),G.processor=Y,G.processorElement=K,G.processor.processedTrack){for(let M of G.attachedElements)if(M!==G.processorElement&&H)o7(G._mediaStreamTrack,M),d7(G.processor.processedTrack,M);yield(q=G.sender)===null||q===void 0?void 0:q.replaceTrack(G.processor.processedTrack)}G.emit(B0.TrackProcessorUpdate,G.processor)}finally{N()}}()})}getProcessor(){return this.processor}stopProcessor(){return p(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 p(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(!V30()){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 kt(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()},I30)}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 YU{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=()=>p(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let N;try{N=yield this.getSenderStats()}catch(K){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:K}));return}if(N&&this.prevStats)this._currentBitrate=vB(N,this.prevStats);this.prevStats=N}),this.handleKrispNoiseFilterEnable=()=>{this.isKrispNoiseFilterEnabled=!0,this.log.debug("Krisp noise filter enabled",this.logContext),this.emit(B0.AudioTrackFeatureUpdate,this,I2.TF_ENHANCED_NOISE_CANCELLATION,!0)},this.handleKrispNoiseFilterDisable=()=>{this.isKrispNoiseFilterEnabled=!1,this.log.debug("Krisp noise filter disabled",this.logContext),this.emit(B0.AudioTrackFeatureUpdate,this,I2.TF_ENHANCED_NOISE_CANCELLATION,!1)},this.audioContext=H,this.checkForSilence()}mute(){let $=Object.create(null,{mute:{get:()=>super.mute}});return p(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 p(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 p(this,void 0,void 0,function*(){let Y;if($){let G=oW({audio:$});if(typeof G.audio!=="boolean")Y=G.audio}yield this.restart(Y)})}restart($){let Y=Object.create(null,{restart:{get:()=>super.restart}});return p(this,void 0,void 0,function*(){let G=yield Y.restart.call(this,$);return this.checkForSilence(),G})}startMonitor(){if(!F6())return;if(this.monitorInterval)return;this.monitorInterval=setInterval(()=>{this.monitorSender()},$U)}setProcessor($){return p(this,void 0,void 0,function*(){var Y;let G=yield this.trackChangeLock.lock();try{if(!J4()&&!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 p(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 p(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 T30($,Y,G){switch($.kind){case"audio":return new AH($,Y,!1,void 0,G);case"video":return new NH($,Y,!1,G);default:throw new q4("unsupported track type: ".concat($.kind))}}var p30=Object.values(qH),S30=Object.values(OW),E30=Object.values(V3),D30=[qH.h180,qH.h360],v30=[OW.h180,OW.h360],j30=($)=>{return[{scaleResolutionDownBy:2,fps:$.encoding.maxFramerate}].map((G)=>{var H,q;return new O1(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 EW($,Y,G,H){var q,N;let K=H===null||H===void 0?void 0:H.videoEncoding;if($)K=H===null||H===void 0?void 0:H.screenShareEncoding;let U=H===null||H===void 0?void 0:H.simulcast,M=H===null||H===void 0?void 0:H.scalabilityMode,F=H===null||H===void 0?void 0:H.videoCodec;if(!K&&!U&&!M||!Y||!G)return[{}];if(!K)K=g30($,Y,G,F),i0.debug("using video encoding",K);let O=K.maxFramerate,L=new O1(Y,G,K.maxBitrate,K.maxFramerate,K.priority);if(M&&x5(F)){let D=new QU(M),T=[];if(D.spatial>3)throw Error("unsupported scalabilityMode: ".concat(M));let m=H6();if(BH()||J4()||(m===null||m===void 0?void 0:m.name)==="Chrome"&&Y5(m===null||m===void 0?void 0:m.version,"113")<0){let g=D.suffix=="h"?2:3,n=m80(m);for(let c=0;c<D.spatial;c+=1)T.push({rid:SW[2-c],maxBitrate:K.maxBitrate/Math.pow(g,c),maxFramerate:L.encoding.maxFramerate,scaleResolutionDownBy:n?Math.pow(2,c):void 0});T[0].scalabilityMode=M}else T.push({maxBitrate:K.maxBitrate,maxFramerate:L.encoding.maxFramerate,scalabilityMode:M});if(L.encoding.priority)T[0].priority=L.encoding.priority,T[0].networkPriority=L.encoding.priority;return i0.debug("using svc encoding",{encodings:T}),T}if(!U)return[K];let R=[];if($)R=(q=Bn(H===null||H===void 0?void 0:H.screenShareSimulcastLayers))!==null&&q!==void 0?q:qn($,L);else R=(N=Bn(H===null||H===void 0?void 0:H.videoSimulcastLayers))!==null&&N!==void 0?N:qn($,L);let C;if(R.length>0){let D=R[0];if(R.length>1)[,C]=R;let T=Math.max(Y,G);if(T>=960&&C)return ZW(Y,G,[D,C,L],O);if(T>=480)return ZW(Y,G,[D,L],O)}return ZW(Y,G,[L])}function f30($,Y,G){var H,q,N,K;if(!G.backupCodec||G.backupCodec===!0||G.backupCodec.codec===G.videoCodec)return;if(Y!==G.backupCodec.codec)i0.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(),M=(H=U.width)!==null&&H!==void 0?H:(q=$.dimensions)===null||q===void 0?void 0:q.width,F=(N=U.height)!==null&&N!==void 0?N:(K=$.dimensions)===null||K===void 0?void 0:K.height;if($.source===e.Source.ScreenShare&&G.simulcast)G.simulcast=!1;return EW($.source===e.Source.ScreenShare,M,F,G)}function g30($,Y,G,H){let q=m30($,Y,G),{encoding:N}=q[0],K=Math.max(Y,G);for(let U=0;U<q.length;U+=1){let M=q[U];if(N=M.encoding,M.width>=K)break}if(H)switch(H){case"av1":case"h265":N=Object.assign({},N),N.maxBitrate=N.maxBitrate*0.7;break;case"vp9":N=Object.assign({},N),N.maxBitrate=N.maxBitrate*0.85;break}return N}function m30($,Y,G){if($)return E30;let H=Y>G?Y/G:G/Y;if(Math.abs(H-1.7777777777777777)<Math.abs(H-1.3333333333333333))return p30;return S30}function qn($,Y){if($)return j30(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 D30;return v30}function ZW($,Y,G,H){let q=[];if(G.forEach((N,K)=>{if(K>=SW.length)return;let U=Math.min($,Y),F={rid:SW[K],scaleResolutionDownBy:Math.max(1,U/Math.min(N.width,N.height)),maxBitrate:N.encoding.maxBitrate},O=H&&N.encoding.maxFramerate?Math.min(H,N.encoding.maxFramerate):N.encoding.maxFramerate;if(O)F.maxFramerate=O;let L=w3()||K===0;if(N.encoding.priority&&L)F.priority=N.encoding.priority,F.networkPriority=N.encoding.priority;q.push(F)}),J4()&&Ht()==="ios"){let N=void 0;q.forEach((U)=>{if(!N)N=U.maxFramerate;else if(U.maxFramerate&&U.maxFramerate>N)N=U.maxFramerate});let K=!0;q.forEach((U)=>{var M;if(U.maxFramerate!=N){if(K)K=!1,i0.info("Simulcast on iOS React-Native requires all encodings to share the same framerate.");i0.info('Setting framerate of encoding "'.concat((M=U.rid)!==null&&M!==void 0?M:"",'" to ').concat(N)),U.maxFramerate=N}})}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 QU{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 y30($){if($.source===e.Source.ScreenShare||$.constraints.height&&B8($.constraints.height)>=1080)return"maintain-resolution";else return"balanced"}var b30=5000;class NH extends YU{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=()=>p(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 N=new Map(q.map((U)=>[U.rid,U])),K=q.some((U)=>U.qualityLimitationReason==="cpu");if(K!==this.isCpuConstrained){if(this.isCpuConstrained=K,this.isCpuConstrained)this.emit(B0.CpuConstrained)}if(this.prevStats){let U=0;N.forEach((M,F)=>{var O;let L=(O=this.prevStats)===null||O===void 0?void 0:O.get(F);U+=vB(M,L)}),this._currentBitrate=U}this.prevStats=N}),this.senderLock=new m2}get isSimulcast(){if(this.sender&&this.sender.getParameters().encodings.length>1)return!0;return!1}startMonitor($){var Y;if(this.signalClient=$,!F6())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()},$U)}stop(){this._mediaStreamTrack.getConstraints(),this.simulcastCodecs.forEach(($)=>{$.mediaStreamTrack.stop()}),super.stop()}pauseUpstream(){let $=Object.create(null,{pauseUpstream:{get:()=>super.pauseUpstream}});return p(this,void 0,void 0,function*(){var Y,G,H,q,N;yield $.pauseUpstream.call(this);try{for(var K=!0,U=i4(this.simulcastCodecs.values()),M;M=yield U.next(),Y=M.done,!Y;K=!0)q=M.value,K=!1,yield(N=q.sender)===null||N===void 0?void 0:N.replaceTrack(null)}catch(F){G={error:F}}finally{try{if(!K&&!Y&&(H=U.return))yield H.call(U)}finally{if(G)throw G.error}}})}resumeUpstream(){let $=Object.create(null,{resumeUpstream:{get:()=>super.resumeUpstream}});return p(this,void 0,void 0,function*(){var Y,G,H,q,N;yield $.resumeUpstream.call(this);try{for(var K=!0,U=i4(this.simulcastCodecs.values()),M;M=yield U.next(),Y=M.done,!Y;K=!0){q=M.value,K=!1;let F=q;yield(N=F.sender)===null||N===void 0?void 0:N.replaceTrack(F.mediaStreamTrack)}}catch(F){G={error:F}}finally{try{if(!K&&!Y&&(H=U.return))yield H.call(U)}finally{if(G)throw G.error}}})}mute(){let $=Object.create(null,{mute:{get:()=>super.mute}});return p(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 p(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 p(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 N={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},K=G.get(H.remoteId);if(K)N.jitter=K.jitter,N.packetsLost=K.packetsLost,N.roundTripTime=K.roundTripTime;Y.push(N)}}),Y.sort((H,q)=>{var N,K;return((N=q.frameWidth)!==null&&N!==void 0?N:0)-((K=H.frameWidth)!==null&&K!==void 0?K:0)}),Y})}setPublishingQuality($){let Y=[];for(let G=g6.LOW;G<=g6.HIGH;G+=1)Y.push(new sW({quality:G,enabled:G<=$}));this.log.debug("setting publishing quality. max quality ".concat($),this.logContext),this.setPublishingLayers(x5(this.codec),Y)}restartTrack($){return p(this,void 0,void 0,function*(){var Y,G,H,q,N;let K;if($){let O=oW({video:$});if(typeof O.video!=="boolean")K=O.video}yield this.restart(K),this.isCpuConstrained=!1;try{for(var U=!0,M=i4(this.simulcastCodecs.values()),F;F=yield M.next(),Y=F.done,!Y;U=!0){q=F.value,U=!1;let O=q;if(O.sender&&((N=O.sender.transport)===null||N===void 0?void 0:N.state)!=="closed")O.mediaStreamTrack=this.mediaStreamTrack.clone(),yield O.sender.replaceTrack(O.mediaStreamTrack)}}catch(O){G={error:O}}finally{try{if(!U&&!Y&&(H=M.return))yield H.call(M)}finally{if(G)throw G.error}}})}setProcessor($){let Y=Object.create(null,{setProcessor:{get:()=>super.setProcessor}});return p(this,arguments,void 0,function(G){var H=this;let q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var N,K,U,M,F,O;if(yield Y.setProcessor.call(H,G,q),(F=H.processor)===null||F===void 0?void 0:F.processedTrack)try{for(var L=!0,R=i4(H.simulcastCodecs.values()),C;C=yield R.next(),N=C.done,!N;L=!0)M=C.value,L=!1,yield(O=M.sender)===null||O===void 0?void 0:O.replaceTrack(H.processor.processedTrack)}catch(D){K={error:D}}finally{try{if(!L&&!N&&(U=R.return))yield U.call(R)}finally{if(K)throw K.error}}}()})}setDegradationPreference($){return p(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)},b30)}setPublishingCodecs($){return p(this,void 0,void 0,function*(){var Y,G,H,q,N,K,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(x5($[0].codec),$[0].qualities),[];this.subscribedCodecs=$;let M=[];try{for(Y=!0,G=i4($);H=yield G.next(),q=H.done,!q;Y=!0){U=H.value,Y=!1;let F=U;if(!this.codec||this.codec===F.codec)yield this.setPublishingLayers(x5(F.codec),F.qualities);else{let O=this.simulcastCodecs.get(F.codec);if(this.log.debug("try setPublishingCodec for ".concat(F.codec),Object.assign(Object.assign({},this.logContext),{simulcastCodecInfo:O})),!O||!O.sender){for(let L of F.qualities)if(L.enabled){M.push(F.codec);break}}else if(O.encodings)this.log.debug("try setPublishingLayersForSender ".concat(F.codec),this.logContext),yield Jn(O.sender,O.encodings,F.qualities,this.senderLock,x5(F.codec),this.log,this.logContext)}}}catch(F){N={error:F}}finally{try{if(!Y&&!q&&(K=G.return))yield K.call(G)}finally{if(N)throw N.error}}return M})}setPublishingLayers($,Y){return p(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 p(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&&x5(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 p(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,N,K){return p(this,void 0,void 0,function*(){let U=yield H.lock();N.debug("setPublishingLayersForSender",Object.assign(Object.assign({},K),{sender:$,qualities:G,senderEncodings:Y}));try{let M=$.getParameters(),{encodings:F}=M;if(!F)return;if(F.length!==Y.length){N.warn("cannot set publishing layers, encodings mismatch",Object.assign(Object.assign({},K),{encodings:F,senderEncodings:Y}));return}let O=!1;if(!1);else{if(q){if(G.some((C)=>C.enabled))G.forEach((C)=>C.enabled=!0)}F.forEach((R,C)=>{var D;let T=(D=R.rid)!==null&&D!==void 0?D:"";if(T==="")T="q";let m=Pt(T),g=G.find((n)=>n.quality===m);if(!g)return;if(R.active!==g.enabled){if(O=!0,R.active=g.enabled,N.debug("setting layer ".concat(g.quality," to ").concat(R.active?"enabled":"disabled"),K),w3())if(g.enabled)R.scaleResolutionDownBy=Y[C].scaleResolutionDownBy,R.maxBitrate=Y[C].maxBitrate,R.maxFrameRate=Y[C].maxFrameRate;else R.scaleResolutionDownBy=4,R.maxBitrate=10,R.maxFrameRate=2}})}if(O)M.encodings=F,N.debug("setting encodings",Object.assign(Object.assign({},K),{encodings:M.encodings})),yield $.setParameters(M)}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,N=new QU(q),K=[],U=N.suffix=="h"?1.5:2,M=N.suffix=="h"?2:3;for(let F=0;F<N.spatial;F+=1)K.push(new q8({quality:Math.min(g6.HIGH,N.spatial-1)-F,width:Math.ceil($/Math.pow(U,F)),height:Math.ceil(Y/Math.pow(U,F)),bitrate:G[0].maxBitrate?Math.ceil(G[0].maxBitrate/Math.pow(M,F)):0,ssrc:0}));return K}return G.map((q)=>{var N,K,U;let M=(N=q.scaleResolutionDownBy)!==null&&N!==void 0?N:1,F=Pt((K=q.rid)!==null&&K!==void 0?K:"");return new q8({quality:F,width:Math.ceil($/M),height:Math.ceil(Y/M),bitrate:(U=q.maxBitrate)!==null&&U!==void 0?U:0,ssrc:0})})}var Nn="_lossy",Kn="_reliable",h30=2000,YW="leave-reconnect",u30=30000,d30=8192,s30=262144,Z5;(function($){$[$.New=0]="New",$[$.Connected=1]="Connected",$[$.Disconnected=2]="Disconnected",$[$.Reconnecting=3]="Reconnecting",$[$.Closed=4]="Closed"})(Z5||(Z5={}));class Ot extends A4.EventEmitter{get isClosed(){return this._isClosed}get pendingReconnect(){return!!this.reconnectTimeout}constructor($){var Y;super();this.options=$,this.rtcConfig={},this.peerConnectionTimeout=eW.peerConnectionTimeout,this.fullReconnectOnNext=!1,this.latestRemoteOfferId=0,this.subscriberPrimary=!1,this.pcState=Z5.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=i0,this.reliableDataSequence=1,this.reliableMessageBuffer=new IW,this.reliableReceivedState=new At(u30),this.lossyDataStatCurrentBytes=0,this.lossyDataStatByterate=0,this.lossyDataDropCount=0,this.midToTrackId={},this.isWaitingForNetworkReconnect=!1,this.handleDataChannel=(G)=>p(this,[G],void 0,function(H){var q=this;let{channel:N}=H;return function*(){if(!N)return;if(N.label===Kn)q.reliableDCSub=N;else if(N.label===Nn)q.lossyDCSub=N;else return;q.log.debug("on data channel ".concat(N.id,", ").concat(N.label),q.logContext),N.onmessage=q.handleDataMessage}()}),this.handleDataMessage=(G)=>p(this,void 0,void 0,function*(){var H,q,N,K,U;let M=yield this.dataProcessLock.lock();try{let F;if(G.data instanceof ArrayBuffer)F=G.data;else if(G.data instanceof Blob)F=yield G.data.arrayBuffer();else{this.log.error("unsupported data type",Object.assign(Object.assign({},this.logContext),{data:G.data}));return}let O=G6.fromBinary(new Uint8Array(F));if(O.sequence>0&&O.participantSid!==""){let L=this.reliableReceivedState.get(O.participantSid);if(L&&O.sequence<=L)return;this.reliableReceivedState.set(O.participantSid,O.sequence)}if(((H=O.value)===null||H===void 0?void 0:H.case)==="speaker")this.emit(N0.ActiveSpeakersUpdate,O.value.value.speakers);else if(((q=O.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 L=yield(N=this.e2eeManager)===null||N===void 0?void 0:N.handleEncryptedData(O.value.value.encryptedValue,O.value.value.iv,O.participantIdentity,O.value.value.keyIndex),R=cn.fromBinary(L.payload),C=new G6({value:R.value,participantIdentity:O.participantIdentity,participantSid:O.participantSid});if(((K=C.value)===null||K===void 0?void 0:K.case)==="user")Wn(C,C.value.value);this.emit(N0.DataPacketReceived,C,O.value.value.encryptionType)}else{if(((U=O.value)===null||U===void 0?void 0:U.case)==="user")Wn(O,O.value.value);this.emit(N0.DataPacketReceived,O,Q2.NONE)}}finally{M()}}),this.handleDataError=(G)=>{let q=G.currentTarget.maxRetransmits===0?"lossy":"reliable";if(G instanceof ErrorEvent&&G.error){let{error:N}=G.error;this.log.error("DataChannel error on ".concat(q,": ").concat(G.message),Object.assign(Object.assign({},this.logContext),{error:N}))}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?Z1.LOSSY:Z1.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(N0.Disconnected),this.close()},N=Date.now()-this.reconnectStart,K=this.getNextRetryDelay({elapsedMs:N,retryCount:this.reconnectAttempts});if(K===null){q(N);return}if(G===YW)K=0;if(this.log.debug("reconnecting in ".concat(K,"ms"),this.logContext),this.clearReconnectTimeout(),this.token&&this.regionUrlProvider)this.regionUrlProvider.updateToken(this.token);this.reconnectTimeout=p2.setTimeout(()=>this.attemptReconnect(H).finally(()=>this.reconnectTimeout=void 0),K)},this.waitForRestarted=()=>{return new Promise((G,H)=>{if(this.pcState===Z5.Connected)G();let q=()=>{this.off(N0.Disconnected,N),G()},N=()=>{this.off(N0.Restarted,q),H()};this.once(N0.Restarted,q),this.once(N0.Disconnected,N)})},this.updateAndEmitDCBufferStatus=(G)=>{if(G===Z1.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(N0.DCBufferStatusChanged,H,G)},this.isBufferStatusLow=(G)=>{let H=this.dataChannelForKind(G);if(H)return H.bufferedAmount<=H.bufferedAmountLowThreshold},this.handleBrowserOnLine=()=>p(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===I1.RECONNECTING||this.isWaitingForNetworkReconnect&&this.client.currentState===I1.CONNECTED)this.clearReconnectTimeout(),this.attemptReconnect(k3.RR_SIGNAL_DISCONNECTED),this.isWaitingForNetworkReconnect=!1}),this.handleBrowserOffline=()=>p(this,void 0,void 0,function*(){if(!this.url)return;try{yield Promise.race([fetch(JH(this.url),{method:"HEAD"}),g2(4000).then(()=>Promise.reject())])}catch(G){if(window.navigator.onLine===!1)this.log.info("detected network interruption"),this.isWaitingForNetworkReconnect=!0}}),this.log=r4((Y=$.loggerName)!==null&&Y!==void 0?Y:V5.Engine),this.loggerOptions={loggerName:$.loggerName,loggerContextCb:()=>this.logContext},this.client=new DB(void 0,this.loggerOptions),this.client.signalLatency=this.options.expSignalLatency,this.reconnectPolicy=this.options.reconnectPolicy,this.closingLock=new m2,this.dataProcessLock=new m2,this.dcBufferStatus=new Map([[Z1.LOSSY,!0],[Z1.RELIABLE,!0]]),this.client.onParticipantUpdate=(G)=>this.emit(N0.ParticipantUpdate,G),this.client.onConnectionQuality=(G)=>this.emit(N0.ConnectionQualityUpdate,G),this.client.onRoomUpdate=(G)=>this.emit(N0.RoomUpdate,G),this.client.onSubscriptionError=(G)=>this.emit(N0.SubscriptionError,G),this.client.onSubscriptionPermissionUpdate=(G)=>this.emit(N0.SubscriptionPermissionUpdate,G),this.client.onSpeakersChanged=(G)=>this.emit(N0.SpeakersChanged,G),this.client.onStreamStateUpdate=(G)=>this.emit(N0.StreamStateChanged,G),this.client.onRequestResponse=(G)=>this.emit(N0.SignalRequestResponse,G)}get logContext(){var $,Y,G,H,q,N;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:(N=(q=this.latestJoinResponse)===null||q===void 0?void 0:q.participant)===null||N===void 0?void 0:N.identity,pID:this.participantSid}}join($,Y,G,H){return p(this,arguments,void 0,function(q,N,K,U){var M=this;let F=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;return function*(){M.url=q,M.token=N,M.signalOpts=K,M.maxJoinAttempts=K.maxRetries;try{M.joinAttempts+=1,M.setupSignalClientCallbacks();let O=yield M.client.join(q,N,K,U,F);if(M._isClosed=!1,M.latestJoinResponse=O,M.subscriberPrimary=O.subscriberPrimary,!M.pcManager)yield M.configure(O,!F);if(!M.subscriberPrimary||O.fastPublish)M.negotiate().catch((L)=>{i0.error(L,M.logContext)});return M.registerOnLineListener(),M.clientConfiguration=O.clientConfiguration,M.emit(N0.SignalConnected,O),O}catch(O){if(O instanceof E0){if(O.reason===T1.ServerUnreachable){if(M.log.warn("Couldn't connect to server, attempt ".concat(M.joinAttempts," of ").concat(M.maxJoinAttempts),M.logContext),M.joinAttempts<M.maxJoinAttempts)return M.join(q,N,K,U,F)}else if(O.reason===T1.ServiceNotFound)return M.log.warn("Initial connection failed: ".concat(O.message," – Retrying")),M.join(q,N,K,U,!0)}throw O}}()})}close(){return p(this,void 0,void 0,function*(){let $=yield this.closingLock.lock();if(this.isClosed){$();return}try{this._isClosed=!0,this.joinAttempts=0,this.emit(N0.Closing),this.removeAllListeners(),this.deregisterOnLineListener(),this.clearPendingReconnect(),this.cleanupLossyDataStats(),yield this.cleanupPeerConnections(),yield this.cleanupClient()}finally{$()}})}cleanupPeerConnections(){return p(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 IW,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 p(this,void 0,void 0,function*(){yield this.client.close(),this.client.resetCallbacks()})}addTrack($){if(this.pendingTrackResolvers[$.cid])throw new q4("a track with the same ID has already been published");return new Promise((Y,G)=>{let H=setTimeout(()=>{delete this.pendingTrackResolvers[$.cid],G(E0.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 p(this,void 0,void 0,function*(){var $;return($=this.pcManager)===null||$===void 0?void 0:$.getConnectedAddress()})}setRegionUrlProvider($){this.regionUrlProvider=$}configure($,Y){return p(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(N0.TransportsCreated,this.pcManager.publisher,this.pcManager.subscriber),this.pcManager.onIceCandidate=(N,K)=>{this.client.sendIceCandidate(N,K)},this.pcManager.onPublisherOffer=(N,K)=>{this.client.sendOffer(N,K)},this.pcManager.onDataChannel=this.handleDataChannel,this.pcManager.onStateChange=(N,K,U)=>p(this,void 0,void 0,function*(){if(this.log.debug("primary PC state changed ".concat(N),this.logContext),["closed","disconnected","failed"].includes(K))this.publisherConnectionPromise=void 0;if(N===a1.CONNECTED){let O=this.pcState===Z5.New;if(this.pcState=Z5.Connected,O)this.emit(N0.Connected,$)}else if(N===a1.FAILED){if(this.pcState===Z5.Connected||this.pcState===Z5.Reconnecting)this.pcState=Z5.Disconnected,this.handleDisconnect("peerconnection failed",U==="failed"?k3.RR_SUBSCRIBER_FAILED:k3.RR_PUBLISHER_FAILED)}let M=this.client.isDisconnected||this.client.currentState===I1.RECONNECTING,F=[a1.FAILED,a1.CLOSING,a1.CLOSED].includes(N);if(M&&F&&!this._isClosed)this.emit(N0.Offline)}),this.pcManager.onTrack=(N)=>{if(N.streams.length===0)return;this.emit(N0.MediaTrackAdded,N.track,N.streams[0],N.receiver)},!l30((H=$.serverInfo)===null||H===void 0?void 0:H.protocol))this.createDataChannels()})}setupSignalClientCallbacks(){this.client.onAnswer=($,Y,G)=>p(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)=>p(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(N0.LocalTrackUnpublished,$)},this.client.onLocalTrackSubscribed=($)=>{this.emit(N0.LocalTrackSubscribed,$)},this.client.onTokenRefresh=($)=>{var Y;this.token=$,(Y=this.regionUrlProvider)===null||Y===void 0||Y.updateToken($)},this.client.onRemoteMuteChanged=($,Y)=>{this.emit(N0.RemoteMute,$,Y)},this.client.onSubscribedQualityUpdate=($)=>{this.emit(N0.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(N0.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",k3.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 c7.DISCONNECT:this.emit(N0.Disconnected,$===null||$===void 0?void 0:$.reason),this.close();break;case c7.RECONNECT:this.fullReconnectOnNext=!0,this.handleDisconnect(YW);break;case c7.RESUME:this.handleDisconnect(YW)}}}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 N={urls:q.urls};if(q.username)N.username=q.username;if(q.credential)N.credential=q.credential;H.push(N)}),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(Nn,{ordered:!1,maxRetransmits:0}),this.reliableDC=this.pcManager.createPublisherDataChannel(Kn,{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(Z1.LOSSY);if($){let Y=this.lossyDataStatByterate/10;$.bufferedAmountLowThreshold=Math.min(Math.max(Y,d30),s30)}},1000)}createSender($,Y,G){return p(this,void 0,void 0,function*(){if(wW())return yield this.createTransceiverRTCRtpSender($,Y,G);if(xW())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 p(this,void 0,void 0,function*(){if(wW())return this.createSimulcastTransceiverSender($,Y,G,H);if(xW())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 p(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 p(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 N=yield this.pcManager.addPublisherTransceiver(Y.mediaStreamTrack,q);if(!G.videoCodec)return;return $.setSimulcastTrackSender(G.videoCodec,N.sender),N.sender})}createRTCRtpSender($){return p(this,void 0,void 0,function*(){if(!this.pcManager)throw new n1("publisher is closed");return this.pcManager.addPublisherTrack($)})}attemptReconnect($){return p(this,void 0,void 0,function*(){var Y,G,H;if(this._isClosed)return;if(this.attemptingReconnect){i0.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 N=!0;if(q instanceof n1)this.log.debug("received unrecoverable error",Object.assign(Object.assign({},this.logContext),{error:q})),N=!1;else if(!(q instanceof P3))this.fullReconnectOnNext=!0;if(N)this.handleDisconnect("reconnect",k3.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(N0.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 p(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(N0.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 P3;q=yield this.join($!==null&&$!==void 0?$:this.url,this.token,this.signalOpts,void 0,!this.options.singlePeerConnection)}catch(N){if(N instanceof E0&&N.reason===T1.NotAllowed)throw new n1("could not reconnect, token might be expired");throw new P3}if(this.shouldFailNext)throw this.shouldFailNext=!1,Error("simulated failure");if(this.client.setReconnected(),this.emit(N0.SignalRestarted,q),yield this.waitForPCReconnected(),this.client.currentState!==I1.CONNECTED)throw new P3("Signal connection got severed during reconnect");(Y=this.regionUrlProvider)===null||Y===void 0||Y.resetAttempts(),this.emit(N0.Restarted)}catch(q){let N=yield(G=this.regionUrlProvider)===null||G===void 0?void 0:G.getNextBestRegionUrl();if(N){yield this.restartConnection(N);return}else throw(H=this.regionUrlProvider)===null||H===void 0||H.resetAttempts(),q}})}resumeConnection($){return p(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(N0.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 E0&&H.reason===T1.NotAllowed)throw new n1("could not reconnect, token might be expired");if(H instanceof E0&&H.reason===T1.LeaveRequest)throw H;throw new P3(q)}if(this.emit(N0.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!==I1.CONNECTED)throw new P3("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(N0.Resumed)})}waitForPCInitialConnection($,Y){return p(this,void 0,void 0,function*(){if(!this.pcManager)throw new n1("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(Y,$)})}waitForPCReconnected(){return p(this,void 0,void 0,function*(){this.pcState=Z5.Reconnecting,this.log.debug("waiting for peer connection to reconnect",this.logContext);try{if(yield g2(h30),!this.pcManager)throw new n1("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(void 0,this.peerConnectionTimeout),this.pcState=Z5.Connected}catch($){throw this.pcState=Z5.Disconnected,E0.internal("could not establish PC connection, ".concat($.message))}})}publishRpcResponse($,Y,G,H){return p(this,void 0,void 0,function*(){let q=new G6({destinationIdentities:[$],kind:Z1.RELIABLE,value:{case:"rpcResponse",value:new bW({requestId:Y,value:H?{case:"error",value:H.toProto()}:{case:"payload",value:G!==null&&G!==void 0?G:""}})}});yield this.sendDataPacket(q,Z1.RELIABLE)})}publishRpcAck($,Y){return p(this,void 0,void 0,function*(){let G=new G6({destinationIdentities:[$],kind:Z1.RELIABLE,value:{case:"rpcAck",value:new yW({requestId:Y})}});yield this.sendDataPacket(G,Z1.RELIABLE)})}sendDataPacket($,Y){return p(this,void 0,void 0,function*(){if(yield this.ensurePublisherConnected(Y),this.e2eeManager&&this.e2eeManager.isDataChannelEncryptionEnabled){let q=H30($);if(q){let N=yield this.e2eeManager.encryptData(q.toBinary());$.value={case:"encryptedPacket",value:new ln({encryptedValue:N.payload,iv:N.iv,keyIndex:N.keyIndex})}}}if(Y===Z1.RELIABLE)$.sequence=this.reliableDataSequence,this.reliableDataSequence+=1;let G=$.toBinary(),H=this.dataChannelForKind(Y);if(H){if(Y===Z1.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 p(this,void 0,void 0,function*(){yield this.ensurePublisherConnected(Z1.RELIABLE);let Y=this.dataChannelForKind(Z1.RELIABLE);if(Y)this.reliableMessageBuffer.popToSequence($),this.reliableMessageBuffer.getAll().forEach((G)=>{Y.send(G.data)});this.updateAndEmitDCBufferStatus(Z1.RELIABLE)})}waitForBufferStatusLow($){return new f2((Y,G)=>p(this,void 0,void 0,function*(){if(this.isBufferStatusLow($))Y();else{let H=()=>G(new n1("engine closed"));this.once(N0.Closing,H);while(!this.dcBufferStatus.get($))yield g2(10);this.off(N0.Closing,H),Y()}}))}ensureDataTransportConnected($){return p(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 N=H?G.pcManager.subscriber:G.pcManager.publisher,K=H?"Subscriber":"Publisher";if(!N)throw E0.internal("".concat(K," 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((O)=>{i0.error(O,G.logContext)});let M=G.dataChannelForKind(Y,H);if((M===null||M===void 0?void 0:M.readyState)==="open")return;let F=new Date().getTime()+G.peerConnectionTimeout;while(new Date().getTime()<F){if(N.isICEConnected&&((q=G.dataChannelForKind(Y,H))===null||q===void 0?void 0:q.readyState)==="open")return;yield g2(50)}throw E0.internal("could not establish ".concat(K," connection, state: ").concat(N.getICEConnectionState()))}()})}ensurePublisherConnected($){return p(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 p(this,void 0,void 0,function*(){return new f2(($,Y)=>p(this,void 0,void 0,function*(){if(!this.pcManager){Y(new L3("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 L3("cannot negotiate on closed engine"));this.on(N0.Closing,H),this.pcManager.publisher.once(a7.RTPVideoPayloadTypes,(q)=>{let N=new Map;q.forEach((K)=>{let U=K.codec.toLowerCase();if(d80(U))N.set(K.payload,U)}),this.emit(N0.RTPVideoMapUpdate,N)});try{yield this.pcManager.negotiate(G),$()}catch(q){if(q instanceof L3)this.fullReconnectOnNext=!0;if(this.handleDisconnect("negotiation",k3.RR_UNKNOWN),q instanceof Error)Y(q);else Y(Error(String(q)))}finally{this.off(N0.Closing,H)}}))})}dataChannelForKind($,Y){if(!Y){if($===Z1.LOSSY)return this.lossyDC;if($===Z1.RELIABLE)return this.reliableDC}else{if($===Z1.LOSSY)return this.lossyDCSub;if($===Z1.RELIABLE)return this.reliableDCSub}}sendSyncState($,Y){var G,H,q,N;if(!this.pcManager){this.log.warn("sync state cannot be sent without peer connection setup",this.logContext);return}let K=this.pcManager.publisher.getLocalDescription(),U=this.pcManager.publisher.getRemoteDescription(),M=(G=this.pcManager.subscriber)===null||G===void 0?void 0:G.getRemoteDescription(),F=(H=this.pcManager.subscriber)===null||H===void 0?void 0:H.getLocalDescription(),O=(N=(q=this.signalOpts)===null||q===void 0?void 0:q.autoSubscribe)!==null&&N!==void 0?N:!0,L=[],R=[];$.forEach((C)=>{if(C.isDesired!==O)L.push(C.trackSid);if(!C.isEnabled)R.push(C.trackSid)}),this.client.sendSyncState(new lW({answer:this.pcManager.mode==="publisher-only"?U?s7({sdp:U.sdp,type:U.type}):void 0:F?s7({sdp:F.sdp,type:F.type}):void 0,offer:this.pcManager.mode==="publisher-only"?K?s7({sdp:K.sdp,type:K.type}):void 0:M?s7({sdp:M.sdp,type:M.type}):void 0,subscription:new IB({trackSids:L,subscribe:!O,participantTracks:[]}),publishTracks:V80(Y),dataChannels:this.dataChannelsInfo(),trackSidsDisabled:R,datachannelReceiveStates:this.reliableReceivedState.map((C,D)=>{return new Ua({publisherSid:D,lastSeq:C})})}))}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 Ma({label:G.label,id:G.id,target:H}))};return Y(this.dataChannelForKind(Z1.LOSSY),w5.PUBLISHER),Y(this.dataChannelForKind(Z1.RELIABLE),w5.PUBLISHER),Y(this.dataChannelForKind(Z1.LOSSY,!0),w5.SUBSCRIBER),Y(this.dataChannelForKind(Z1.RELIABLE,!0),w5.SUBSCRIBER),$}clearReconnectTimeout(){if(this.reconnectTimeout)p2.clearTimeout(this.reconnectTimeout)}clearPendingReconnect(){this.clearReconnectTimeout(),this.reconnectAttempts=0}registerOnLineListener(){if(F6())window.addEventListener("online",this.handleBrowserOnLine),window.addEventListener("offline",this.handleBrowserOffline)}deregisterOnLineListener(){if(F6())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[N]=q;return N===G});if(H)return H[1]}}}function l30($){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 GU{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"),Q6.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"),Q6.LengthExceeded)}constructor($,Y,G,H){this.reader=Y,this.totalByteSize=G,this._info=$,this.bytesReceived=0,this.outOfBandFailureRejectingFuture=H}}class Lt extends GU{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 N=this.signal;H=()=>{var K;(K=Y.reject)===null||K===void 0||K.call(Y,N.reason)},N.addEventListener("abort",H),G=N}let q=()=>{if($.releaseLock(),G&&H)G.removeEventListener("abort",H);this.signal=void 0};return{next:()=>p(this,void 0,void 0,function*(){var N,K;try{let{done:U,value:M}=yield Promise.race([$.read(),Y.promise,(K=(N=this.outOfBandFailureRejectingFuture)===null||N===void 0?void 0:N.promise)!==null&&K!==void 0?K:new Promise(()=>{})]);if(U)return this.validateBytesReceived(!0),{done:!0,value:void 0};else return this.handleChunkReceived(M),{done:!1,value:M.content}}catch(U){throw q(),U}}),return(){return p(this,void 0,void 0,function*(){return q(),{done:!0,value:void 0}})}}}withAbortSignal($){return this.signal=$,this}readAll(){return p(this,arguments,void 0,function(){var $=this;let Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function*(){var G,H,q,N;let K=new Set,U=Y.signal?$.withAbortSignal(Y.signal):$;try{for(var M=!0,F=i4(U),O;O=yield F.next(),G=O.done,!G;M=!0){N=O.value,M=!1;let L=N;K.add(L)}}catch(L){H={error:L}}finally{try{if(!M&&!G&&(q=F.return))yield q.call(F)}finally{if(H)throw H.error}}return Array.from(K)}()})}}class Rt extends GU{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 K=this.signal;q=()=>{var U;(U=G.reject)===null||U===void 0||U.call(G,K.reason)},K.addEventListener("abort",q),H=K}let N=()=>{if($.releaseLock(),H&&q)H.removeEventListener("abort",q);this.signal=void 0};return{next:()=>p(this,void 0,void 0,function*(){var K,U;try{let{done:M,value:F}=yield Promise.race([$.read(),G.promise,(U=(K=this.outOfBandFailureRejectingFuture)===null||K===void 0?void 0:K.promise)!==null&&U!==void 0?U:new Promise(()=>{})]);if(M)return this.validateBytesReceived(!0),{done:!0,value:void 0};else{this.handleChunkReceived(F);let O;try{O=Y.decode(F.content)}catch(L){throw new f6("Cannot decode datastream chunk ".concat(F.chunkIndex," as text: ").concat(L),Q6.DecodeFailed)}return{done:!1,value:O}}}catch(M){throw N(),M}}),return(){return p(this,void 0,void 0,function*(){return N(),{done:!0,value:void 0}})}}}withAbortSignal($){return this.signal=$,this}readAll(){return p(this,arguments,void 0,function(){var $=this;let Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function*(){var G,H,q,N;let K="",U=Y.signal?$.withAbortSignal(Y.signal):$;try{for(var M=!0,F=i4(U),O;O=yield F.next(),G=O.done,!G;M=!0)N=O.value,M=!1,K+=N}catch(L){H={error:L}}finally{try{if(!M&&!G&&(q=F.return))yield q.call(F)}finally{if(H)throw H.error}}return K}()})}}class wt{constructor(){this.log=i0,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.'),Q6.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.'),Q6.HandlerAlreadyRegistered);this.byteStreamHandlers.set($,Y)}unregisterByteStreamHandler($){this.byteStreamHandlers.delete($)}clearControllers(){this.byteStreamControllers.clear(),this.textStreamControllers.clear()}validateParticipantHasNoActiveDataStreams($){var Y,G,H,q;let N=Array.from(this.textStreamControllers.entries()).filter((U)=>U[1].sendingParticipantIdentity===$),K=Array.from(this.byteStreamControllers.entries()).filter((U)=>U[1].sendingParticipantIdentity===$);if(N.length>0||K.length>0){let U=new f6("Participant ".concat($," unexpectedly disconnected in the middle of sending data"),Q6.AbnormalEnd);for(let[M,F]of K)(G=(Y=F.outOfBandFailureRejectingFuture).reject)===null||G===void 0||G.call(Y,U),this.byteStreamControllers.delete(M);for(let[M,F]of N)(q=(H=F.outOfBandFailureRejectingFuture).reject)===null||q===void 0||q.call(H,U),this.textStreamControllers.delete(M)}}handleDataStreamPacket($,Y){return p(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 p(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 N,K=new m6;K.promise.catch((F)=>{this.log.error(F)});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},M=new ReadableStream({start:(F)=>{if(N=F,this.textStreamControllers.has($.streamId))throw new f6("A data stream read is already in progress for a stream with id ".concat($.streamId,"."),Q6.AlreadyOpened);this.byteStreamControllers.set($.streamId,{info:U,controller:N,startTime:Date.now(),sendingParticipantIdentity:Y,outOfBandFailureRejectingFuture:K})}});q(new Lt(U,M,NB($.totalLength),K),{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 N,K=new m6;K.promise.catch((F)=>{this.log.error(F)});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},M=new ReadableStream({start:(F)=>{if(N=F,this.textStreamControllers.has($.streamId))throw new f6("A data stream read is already in progress for a stream with id ".concat($.streamId,"."),Q6.AlreadyOpened);this.textStreamControllers.set($.streamId,{info:U,controller:N,startTime:Date.now(),sendingParticipantIdentity:Y,outOfBandFailureRejectingFuture:K})}});q(new Rt(U,M,NB($.totalLength),K),{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),Q6.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),Q6.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),Q6.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),Q6.EncryptionTypeMismatch));else H.info.attributes=Object.assign(Object.assign({},H.info.attributes),$.attributes),H.controller.close();this.byteStreamControllers.delete($.streamId)}}}class HU{constructor($,Y,G){this.writableStream=$,this.defaultWriter=$.getWriter(),this.onClose=G,this.info=Y}write($){return this.defaultWriter.write($)}close(){return p(this,void 0,void 0,function*(){var $;yield this.defaultWriter.close(),this.defaultWriter.releaseLock(),($=this.onClose)===null||$===void 0||$.call(this)})}}class xt extends HU{}class _t extends HU{}var Un=15000;class Vt{constructor($,Y){this.engine=$,this.log=Y}setupEngine($){this.engine=$}sendText($,Y){return p(this,void 0,void 0,function*(){var G;let H=crypto.randomUUID(),N=new TextEncoder().encode($).byteLength,K=(G=Y===null||Y===void 0?void 0:Y.attachments)===null||G===void 0?void 0:G.map(()=>crypto.randomUUID()),U=Array(K?K.length+1:1).fill(0),M=(O,L)=>{var R;U[L]=O;let C=U.reduce((D,T)=>D+T,0);(R=Y===null||Y===void 0?void 0:Y.onProgress)===null||R===void 0||R.call(Y,C)},F=yield this.streamText({streamId:H,totalSize:N,destinationIdentities:Y===null||Y===void 0?void 0:Y.destinationIdentities,topic:Y===null||Y===void 0?void 0:Y.topic,attachedStreamIds:K,attributes:Y===null||Y===void 0?void 0:Y.attributes});if(yield F.write($),M(1,0),yield F.close(),(Y===null||Y===void 0?void 0:Y.attachments)&&K)yield Promise.all(Y.attachments.map((O,L)=>p(this,void 0,void 0,function*(){return this._sendFile(K[L],O,{topic:Y.topic,mimeType:O.type,onProgress:(R)=>{M(R,L+1)}})})));return F.info})}streamText($){return p(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(),N={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},K=new FB({streamId:q,mimeType:N.mimeType,topic:N.topic,timestamp:O3(N.timestamp),totalLength:O3($===null||$===void 0?void 0:$.totalSize),attributes:N.attributes,contentHeader:{case:"textHeader",value:new Qa({version:$===null||$===void 0?void 0:$.version,attachedStreamIds:N.attachedStreamIds,replyToStreamId:$===null||$===void 0?void 0:$.replyToStreamId,operationType:($===null||$===void 0?void 0:$.type)==="update"?zW.UPDATE:zW.CREATE})}}),U=$===null||$===void 0?void 0:$.destinationIdentities,M=new G6({destinationIdentities:U,value:{case:"streamHeader",value:K}});yield this.engine.sendDataPacket(M,Z1.RELIABLE);let F=0,O=this.engine,L=new WritableStream({write(D){return p(this,void 0,void 0,function*(){for(let T of r80(D,Un)){let m=new kB({content:T,streamId:q,chunkIndex:O3(F)}),g=new G6({destinationIdentities:U,value:{case:"streamChunk",value:m}});yield O.sendDataPacket(g,Z1.RELIABLE),F+=1}})},close(){return p(this,void 0,void 0,function*(){let D=new PB({streamId:q}),T=new G6({destinationIdentities:U,value:{case:"streamTrailer",value:D}});yield O.sendDataPacket(T,Z1.RELIABLE)})},abort(D){console.log("Sink error:",D)}}),R=()=>p(this,void 0,void 0,function*(){yield C.close()});O.once(N0.Closing,R);let C=new xt(L,N,()=>this.engine.off(N0.Closing,R));return C})}sendFile($,Y){return p(this,void 0,void 0,function*(){let G=crypto.randomUUID();return yield this._sendFile(G,$,Y),{id:G}})}_sendFile($,Y,G){return p(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}),N=Y.stream().getReader();while(!0){let{done:K,value:U}=yield N.read();if(K)break;yield q.write(U)}return yield q.close(),q.info})}streamBytes($){return p(this,void 0,void 0,function*(){var Y,G,H,q,N,K;let U=(Y=$===null||$===void 0?void 0:$.streamId)!==null&&Y!==void 0?Y:crypto.randomUUID(),M=$===null||$===void 0?void 0:$.destinationIdentities,F={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:((N=this.engine.e2eeManager)===null||N===void 0?void 0:N.isDataChannelEncryptionEnabled)?Q2.GCM:Q2.NONE},O=new FB({totalLength:O3((K=F.size)!==null&&K!==void 0?K:0),mimeType:F.mimeType,streamId:U,topic:F.topic,timestamp:O3(Date.now()),attributes:F.attributes,contentHeader:{case:"byteHeader",value:new Ga({name:F.name})}}),L=new G6({destinationIdentities:M,value:{case:"streamHeader",value:O}});yield this.engine.sendDataPacket(L,Z1.RELIABLE);let R=0,C=new m2,D=this.engine,T=this.log,m=new WritableStream({write(n){return p(this,void 0,void 0,function*(){let c=yield C.lock(),I=0;try{while(I<n.byteLength){let V=n.slice(I,I+Un),v=new G6({destinationIdentities:M,value:{case:"streamChunk",value:new kB({content:V,streamId:U,chunkIndex:O3(R)})}});yield D.sendDataPacket(v,Z1.RELIABLE),R+=1,I+=V.byteLength}}finally{c()}})},close(){return p(this,void 0,void 0,function*(){let n=new PB({streamId:U}),c=new G6({destinationIdentities:M,value:{case:"streamTrailer",value:n}});yield D.sendDataPacket(c,Z1.RELIABLE)})},abort(n){T.error("Sink error:",n)}});return new _t(m,F)})}}class zU 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 p(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(),$U);if(C80())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 jB extends zU{constructor($,Y,G,H,q,N){super($,Y,e.Kind.Audio,G,N);if(this.monitorReceiver=()=>p(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=vB(K,this.prevStats);this.prevStats=K}),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(J4())this._mediaStreamTrack._setVolume($);this.elementVolume=$}getVolume(){if(this.elementVolume)return this.elementVolume;if(J4())return 1;let $=0;return this.attachedElements.forEach((Y)=>{if(Y.volume>$)$=Y.volume}),$}setSinkId($){return p(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 p(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 QW=100;class Ct extends zU{constructor($,Y,G,H,q){super($,Y,e.Kind.Video,G,q);this.elementInfos=[],this.monitorReceiver=()=>p(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=vB(N,this.prevStats);this.prevStats=N}),this.debouncedHandleResize=aW(()=>{this.updateDimensions()},QW),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($)o7(this._mediaStreamTrack,Y);else d7(this._mediaStreamTrack,Y)})}attach($){if(!$)$=super.attach();else super.attach($);if(this.adaptiveStreamSettings&&this.elementInfos.find((Y)=>Y.element===$)===void 0){let Y=new It($);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 p(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 p(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,M)=>Math.max(U,M.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,N=this.elementInfos.some((U)=>U.pictureInPicture),K=this.elementInfos.some((U)=>U.visible)&&!q||N;if(this.lastVisible===K&&!$)return;if(!K&&Date.now()-H<QW){p2.setTimeout(()=>{this.updateVisibility()},QW);return}this.lastVisible=K,this.emit(B0.VisibilityChanged,K,this)}updateDimensions(){var $,Y;let G=0,H=0,q=this.getPixelDensity();for(let N of this.elementInfos){let K=N.width()*q,U=N.height()*q;if(K+U>G+H)G=K,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 It{get visible(){return this.isPiP||this.isIntersecting}get pictureInPicture(){return this.isPiP}constructor($,Y){this.onVisibilityChanged=(G)=>{var H;let{target:q,isIntersecting:N}=G;if(q===this.element)this.isIntersecting=N,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:DW($),this.isPiP=F6()&&eG($),this.visibilityChangedAt=0}width(){return this.element.clientWidth}height(){return this.element.clientHeight}observe(){var $,Y,G;this.isIntersecting=DW(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 DW($,(G=window.documentPictureInPicture)===null||G===void 0?void 0:G.window);return!1}function DW($,Y){let G=Y||window,H=$.offsetTop,q=$.offsetLeft,N=$.offsetWidth,K=$.offsetHeight,{hidden:U}=$,{display:M}=getComputedStyle($);while($.offsetParent)$=$.offsetParent,H+=$.offsetTop,q+=$.offsetLeft;return H<G.pageYOffset+G.innerHeight&&q<G.pageXOffset+G.innerWidth&&H+K>G.pageYOffset&&q+N>G.pageXOffset&&!U&&M!=="none"}class z4 extends A4.EventEmitter{constructor($,Y,G,H){var q;super();this.metadataMuted=!1,this.encryption=Q2.NONE,this.log=i0,this.handleMuted=()=>{this.emit(B0.Muted)},this.handleUnmuted=()=>{this.emit(B0.Unmuted)},this.log=r4((q=H===null||H===void 0?void 0:H.loggerName)!==null&&q!==void 0?q:V5.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(B4(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={}))})(z4||(z4={}));class KH extends z4{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 p(this,void 0,void 0,function*(){var $;return($=this.track)===null||$===void 0?void 0:$.mute()})}unmute(){return p(this,void 0,void 0,function*(){var $;return($=this.track)===null||$===void 0?void 0:$.unmute()})}pauseUpstream(){return p(this,void 0,void 0,function*(){var $;yield($=this.track)===null||$===void 0?void 0:$.pauseUpstream()})}resumeUpstream(){return p(this,void 0,void 0,function*(){var $;yield($=this.track)===null||$===void 0?void 0:$.resumeUpstream()})}getTrackFeatures(){var $;if(B4(this.track)){let Y=this.track.getSourceTrackSettings(),G=new Set;if(Y.autoGainControl)G.add(I2.TF_AUTO_GAIN_CONTROL);if(Y.echoCancellation)G.add(I2.TF_ECHO_CANCELLATION);if(Y.noiseSuppression)G.add(I2.TF_NOISE_SUPPRESSION);if(Y.channelCount&&Y.channelCount>1)G.add(I2.TF_STEREO);if(!(($=this.options)===null||$===void 0?void 0:$.dtx))G.add(I2.TF_NO_DTX);if(this.track.enhancedNoiseCancellation)G.add(I2.TF_ENHANCED_NOISE_CANCELLATION);return Array.from(G.values())}else return[]}}function fB($,Y){return p(this,void 0,void 0,function*(){$!==null&&$!==void 0||($={});let G=!1,{audioProcessor:H,videoProcessor:q,optionsWithoutProcessor:N}=Yt($),K=N.audio,U=N.video;if(H&&typeof N.audio==="object")N.audio.processor=H;if(q&&typeof N.video==="object")N.video.processor=q;if($.audio&&typeof N.audio==="object"&&typeof N.audio.deviceId==="string"){let L=N.audio.deviceId;N.audio.deviceId={exact:L},G=!0,K=Object.assign(Object.assign({},N.audio),{deviceId:{ideal:L}})}if(N.video&&typeof N.video==="object"&&typeof N.video.deviceId==="string"){let L=N.video.deviceId;N.video.deviceId={exact:L},G=!0,U=Object.assign(Object.assign({},N.video),{deviceId:{ideal:L}})}if(N.audio===!0)N.audio={deviceId:"default"};else if(typeof N.audio==="object"&&N.audio!==null)N.audio=Object.assign(Object.assign({},N.audio),{deviceId:N.audio.deviceId||"default"});if(N.video===!0)N.video={deviceId:"default"};else if(typeof N.video==="object"&&!N.video.deviceId)N.video.deviceId="default";let M=Xt(N,Nt,Kt),F=oW(M),O=navigator.mediaDevices.getUserMedia(F);if(N.audio)T2.userMediaPromiseMap.set("audioinput",O),O.catch(()=>T2.userMediaPromiseMap.delete("audioinput"));if(N.video)T2.userMediaPromiseMap.set("videoinput",O),O.catch(()=>T2.userMediaPromiseMap.delete("videoinput"));try{let L=yield O;return yield Promise.all(L.getTracks().map((R)=>p(this,void 0,void 0,function*(){let C=R.kind==="audio",D=C?M.audio:M.video;if(typeof D==="boolean"||!D)D={};let T,m=C?F.audio:F.video;if(typeof m!=="boolean")T=m;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 n=T30(R,T,Y);if(n.kind===e.Kind.Video)n.source=e.Source.Camera;else if(n.kind===e.Kind.Audio)n.source=e.Source.Microphone;if(n.mediaStream=L,B4(n)&&H)yield n.setProcessor(H);else if(W8(n)&&q)yield n.setProcessor(q);return n})))}catch(L){if(!G)throw L;return fB(Object.assign(Object.assign({},$),{audio:K,video:U}),Y)}})}function c30($){return p(this,void 0,void 0,function*(){return(yield fB({audio:!1,video:$!==null&&$!==void 0?$:!0}))[0]})}function i30($){return p(this,void 0,void 0,function*(){return(yield fB({audio:$!==null&&$!==void 0?$:!0,video:!1}))[0]})}var o4;(function($){$.Excellent="excellent",$.Good="good",$.Poor="poor",$.Lost="lost",$.Unknown="unknown"})(o4||(o4={}));function o30($){switch($){case XH.EXCELLENT:return o4.Excellent;case XH.GOOD:return o4.Good;case XH.POOR:return o4.Poor;case XH.LOST:return o4.Lost;default:return o4.Unknown}}class qU extends A4.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===N8.AGENT}get isActive(){var $;return(($=this.participantInfo)===null||$===void 0?void 0:$.state)===l7.ACTIVE}get kind(){return this._kind}get attributes(){return Object.freeze(Object.assign({},this._attributes))}constructor($,Y,G,H,q,N){let K=arguments.length>6&&arguments[6]!==void 0?arguments[6]:N8.STANDARD;var U;super();this.audioLevel=0,this.isSpeaking=!1,this._connectionQuality=o4.Unknown,this.log=i0,this.log=r4((U=N===null||N===void 0?void 0:N.loggerName)!==null&&U!==void 0?U:V5.Participant),this.loggerOptions=N,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=K,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===l7.ACTIVE&&((Y=this.participantInfo)===null||Y===void 0?void 0:Y.state)!==l7.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=I80(this.attributes,$);if(this._attributes=$,Object.keys(Y).length>0)this.emit(Q0.AttributesChanged,Y)}setPermissions($){var Y,G,H,q,N,K;let U=this.permissions,M=$.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!==((N=this.permissions)===null||N===void 0?void 0:N.recorder)||$.canPublishSources.length!==this.permissions.canPublishSources.length||$.canPublishSources.some((F,O)=>{var L;return F!==((L=this.permissions)===null||L===void 0?void 0:L.canPublishSources[O])})||$.canSubscribeMetrics!==((K=this.permissions)===null||K===void 0?void 0:K.canSubscribeMetrics);if(this.permissions=$,M)this.emit(Q0.ParticipantPermissionsChanged,U);return M}setIsSpeaking($){if($===this.isSpeaking)return;if(this.isSpeaking=$,$)this.lastSpokeAt=new Date;this.emit(Q0.IsSpeakingChanged,$)}setConnectionQuality($){let Y=this._connectionQuality;if(this._connectionQuality=o30($),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)=>B4(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 r30($){var Y,G,H;if(!$.participantSid&&!$.participantIdentity)throw Error("Invalid track permission, must provide at least one of participantIdentity and participantSid");return new Ka({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 qU{constructor($,Y,G,H,q,N){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 K,U;(U=(K=this.reconnectFuture)===null||K===void 0?void 0:K.resolve)===null||U===void 0||U.call(K),this.reconnectFuture=void 0,this.updateTrackSubscriptionPermissions()},this.handleClosing=()=>{var K,U,M,F,O,L;if(this.reconnectFuture)this.reconnectFuture.promise.catch((R)=>this.log.warn(R.message,this.logContext)),(U=(K=this.reconnectFuture)===null||K===void 0?void 0:K.reject)===null||U===void 0||U.call(K,Error("Got disconnected during reconnection attempt")),this.reconnectFuture=void 0;if(this.signalConnectedFuture)(F=(M=this.signalConnectedFuture).reject)===null||F===void 0||F.call(M,Error("Got disconnected without signal connected")),this.signalConnectedFuture=void 0;(L=(O=this.activeAgentFuture)===null||O===void 0?void 0:O.reject)===null||L===void 0||L.call(O,Error("Got disconnected without active agent present")),this.activeAgentFuture=void 0,this.firstActiveAgent=void 0},this.handleSignalConnected=(K)=>{var U,M;if(K.participant)this.updateInfo(K.participant);if(!this.signalConnectedFuture)this.signalConnectedFuture=new m6;(M=(U=this.signalConnectedFuture).resolve)===null||M===void 0||M.call(U)},this.handleSignalRequestResponse=(K)=>{let{requestId:U,reason:M,message:F}=K,O=this.pendingSignalRequests.get(U);if(O){if(M!==cW.OK)O.reject(new kW(F,M));this.pendingSignalRequests.delete(U)}},this.handleDataPacket=(K)=>{switch(K.value.case){case"rpcResponse":let U=K.value.value,M=null,F=null;if(U.value.case==="payload")M=U.value.value;else if(U.value.case==="error")F=e1.fromProto(U.value.value);this.handleIncomingRpcResponse(U.requestId,M,F);break;case"rpcAck":let O=K.value.value;this.handleIncomingRpcAck(O.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((K)=>r30(K)))},this.onTrackUnmuted=(K)=>{this.onTrackMuted(K,K.isUpstreamPaused)},this.onTrackMuted=(K,U)=>{if(U===void 0)U=!0;if(!K.sid){this.log.error("could not update mute status for unpublished track",Object.assign(Object.assign({},this.logContext),G1(K)));return}this.engine.updateMuteStatus(K.sid,U)},this.onTrackUpstreamPaused=(K)=>{this.log.debug("upstream paused",Object.assign(Object.assign({},this.logContext),G1(K))),this.onTrackMuted(K,!0)},this.onTrackUpstreamResumed=(K)=>{this.log.debug("upstream resumed",Object.assign(Object.assign({},this.logContext),G1(K))),this.onTrackMuted(K,K.isMuted)},this.onTrackFeatureUpdate=(K)=>{let U=this.audioTrackPublications.get(K.sid);if(!U){this.log.warn("Could not update local audio track settings, missing publication for track ".concat(K.sid),this.logContext);return}this.engine.client.sendUpdateLocalAudioTrack(U.trackSid,U.getTrackFeatures())},this.onTrackCpuConstrained=(K,U)=>{this.log.debug("track cpu constrained",Object.assign(Object.assign({},this.logContext),G1(U))),this.emit(Q0.LocalTrackCpuConstrained,K,U)},this.handleSubscribedQualityUpdate=(K)=>p(this,void 0,void 0,function*(){var U,M,F,O,L;if(!((L=this.roomOptions)===null||L===void 0?void 0:L.dynacast))return;let R=this.videoTrackPublications.get(K.trackSid);if(!R){this.log.warn("received subscribed quality update for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:K.trackSid}));return}if(!R.videoTrack)return;let C=yield R.videoTrack.setPublishingCodecs(K.subscribedCodecs);try{for(var D=!0,T=i4(C),m;m=yield T.next(),U=m.done,!U;D=!0){O=m.value,D=!1;let g=O;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){M={error:g}}finally{try{if(!D&&!U&&(F=T.return))yield F.call(T)}finally{if(M)throw M.error}}}),this.handleLocalTrackUnpublished=(K)=>{let U=this.trackPublications.get(K.trackSid);if(!U){this.log.warn("received unpublished event for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:K.trackSid}));return}this.unpublishTrack(U.track)},this.handleTrackEnded=(K)=>p(this,void 0,void 0,function*(){if(K.source===e.Source.ScreenShare||K.source===e.Source.ScreenShareAudio)this.log.debug("unpublishing local track due to TrackEnded",Object.assign(Object.assign({},this.logContext),G1(K))),this.unpublishTrack(K);else if(K.isUserProvided)yield K.mute();else if(s4(K)||Z8(K))try{if(F6())try{let U=yield navigator===null||navigator===void 0?void 0:navigator.permissions.query({name:K.source===e.Source.Camera?"camera":"microphone"});if(U&&U.state==="denied")throw this.log.warn("user has revoked access to ".concat(K.source),Object.assign(Object.assign({},this.logContext),G1(K))),U.onchange=()=>{if(U.state!=="denied"){if(!K.isMuted)K.restartTrack();U.onchange=null}},Error("GetUserMedia Permission denied")}catch(U){}if(!K.isMuted)if(this.log.debug("track ended, attempting to use a different device",Object.assign(Object.assign({},this.logContext),G1(K))),s4(K))yield K.restartTrack({deviceId:"default"});else yield K.restartTrack()}catch(U){this.log.warn("could not restart track, muting instead",Object.assign(Object.assign({},this.logContext),G1(K))),yield K.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=N}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(N0.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(N0.Connected,this.handleReconnected).on(N0.SignalConnected,this.handleSignalConnected).on(N0.SignalRestarted,this.handleReconnected).on(N0.SignalResumed,this.handleReconnected).on(N0.Restarting,this.handleReconnecting).on(N0.Resuming,this.handleReconnecting).on(N0.LocalTrackUnpublished,this.handleLocalTrackUnpublished).on(N0.SubscribedQualityUpdate,this.handleSubscribedQualityUpdate).on(N0.Closing,this.handleClosing).on(N0.SignalRequestResponse,this.handleSignalRequestResponse).on(N0.DataPacketReceived,this.handleDataPacket)}setMetadata($){return p(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({metadata:$})})}setName($){return p(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({name:$})})}setAttributes($){return p(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({attributes:$})})}requestMetadataUpdate($){return p(this,arguments,void 0,function(Y){var G=this;let{metadata:H,name:q,attributes:N}=Y;return function*(){return new f2((K,U)=>p(G,void 0,void 0,function*(){var M,F;try{let O=!1,L=yield this.engine.client.sendUpdateLocalMetadata((M=H!==null&&H!==void 0?H:this.metadata)!==null&&M!==void 0?M:"",(F=q!==null&&q!==void 0?q:this.name)!==null&&F!==void 0?F:"",N),R=performance.now();this.pendingSignalRequests.set(L,{resolve:K,reject:(C)=>{U(C),O=!0},values:{name:q,metadata:H,attributes:N}});while(performance.now()-R<5000&&!O){if((!q||this.name===q)&&(!H||this.metadata===H)&&(!N||Object.entries(N).every((C)=>{let[D,T]=C;return this.attributes[D]===T||T===""&&!this.attributes[D]}))){this.pendingSignalRequests.delete(L),K();return}yield g2(50)}U(new kW("Request to update local metadata timed out","TimeoutError"))}catch(O){if(O instanceof Error)U(O);else U(Error(String(O)))}}))}()})}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 p(this,void 0,void 0,function*(){this.encryptionType=$?Q2.GCM:Q2.NONE,yield this.republishAllTracks(void 0,!1)})}setTrackEnabled($,Y,G,H){return p(this,void 0,void 0,function*(){var q,N;if(this.log.debug("setTrackEnabled",Object.assign(Object.assign({},this.logContext),{source:$,enabled:Y})),this.republishPromise)yield this.republishPromise;let K=this.getTrackPublication($);if(Y)if(K)yield K.unmute();else{let U;if(this.pendingPublishing.has($)){let M=yield this.waitForPendingPublicationOfSource($);if(!M)this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:$}));return yield M===null||M===void 0?void 0:M.unmute(),M}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:(N=G)!==null&&N!==void 0?N:!0});break;case e.Source.ScreenShare:U=yield this.createScreenTracks(Object.assign({},G));break;default:throw new q4($)}}catch(M){if(U===null||U===void 0||U.forEach((F)=>{F.stop()}),M instanceof Error)this.emit(Q0.MediaDevicesError,M,RW($));throw this.pendingPublishing.delete($),M}for(let M of U){let F=Object.assign(Object.assign({},this.roomOptions.publishDefaults),G);if($===e.Source.Microphone&&B4(M)&&F.preConnectBuffer)this.log.info("starting preconnect buffer for microphone",Object.assign({},this.logContext)),M.startPreConnectBuffer()}try{let M=[];for(let O of U)this.log.info("publishing track",Object.assign(Object.assign({},this.logContext),G1(O))),M.push(this.publishTrack(O,H));[K]=yield Promise.all(M)}catch(M){throw U===null||U===void 0||U.forEach((F)=>{F.stop()}),M}finally{this.pendingPublishing.delete($)}}else{if(!(K===null||K===void 0?void 0:K.track)&&this.pendingPublishing.has($)){if(K=yield this.waitForPendingPublicationOfSource($),!K)this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:$}))}if(K&&K.track)if($===e.Source.ScreenShare){K=yield this.unpublishTrack(K.track);let U=this.getTrackPublication(e.Source.ScreenShareAudio);if(U&&U.track)this.unpublishTrack(U.track)}else yield K.mute()}return K})}enableCameraAndMicrophone(){return p(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 p(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 fB(H,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext})).map((K)=>{if(B4(K))this.microphoneError=void 0,K.setAudioContext(this.audioContext),K.source=e.Source.Microphone,this.emit(Q0.AudioStreamAcquired);if(W8(K))this.cameraError=void 0,K.source=e.Source.Camera;return K})}catch(q){if(q instanceof Error){if($.audio)this.microphoneError=q;if($.video)this.cameraError=q}throw q}})}createScreenTracks($){return p(this,void 0,void 0,function*(){if($===void 0)$={};if(navigator.mediaDevices.getDisplayMedia===void 0)throw new EB("getDisplayMedia not supported");if($.resolution===void 0&&!g80())$.resolution=V3.h1080fps30.resolution;let Y=_80($),G=yield navigator.mediaDevices.getDisplayMedia(Y),H=G.getVideoTracks();if(H.length===0)throw new q4("no video track found");let q=new NH(H[0],void 0,!1,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});if(q.source=e.Source.ScreenShare,$.contentHint)q.mediaStreamTrack.contentHint=$.contentHint;let N=[q];if(G.getAudioTracks().length>0){this.emit(Q0.AudioStreamAcquired);let K=new AH(G.getAudioTracks()[0],void 0,!1,this.audioContext,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});K.source=e.Source.ScreenShareAudio,N.push(K)}return N})}publishTrack($,Y){return p(this,void 0,void 0,function*(){return this.publishOrRepublishTrack($,Y)})}publishOrRepublishTrack($,Y){return p(this,arguments,void 0,function(G,H){var q=this;let N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return function*(){var K,U,M,F;if(s4(G))G.setAudioContext(q.audioContext);if(yield(K=q.reconnectFuture)===null||K===void 0?void 0:K.promise,q.republishPromise&&!N)yield q.republishPromise;if(r7(G)&&q.pendingPublishPromises.has(G))yield q.pendingPublishPromises.get(G);let O;if(G instanceof MediaStreamTrack)O=G.getConstraints();else{O=G.constraints;let m=void 0;switch(G.source){case e.Source.Microphone:m="audioinput";break;case e.Source.Camera:m="videoinput"}if(m&&q.activeDeviceMap.has(m))O=Object.assign(Object.assign({},O),{deviceId:q.activeDeviceMap.get(m)})}if(G instanceof MediaStreamTrack)switch(G.kind){case"audio":G=new AH(G,O,!0,q.audioContext,{loggerName:q.roomOptions.loggerName,loggerContextCb:()=>q.logContext});break;case"video":G=new NH(G,O,!0,{loggerName:q.roomOptions.loggerName,loggerContextCb:()=>q.logContext});break;default:throw new q4("unsupported MediaStreamTrack kind ".concat(G.kind))}else G.updateLoggerOptions({loggerName:q.roomOptions.loggerName,loggerContextCb:()=>q.logContext});let L;if(q.trackPublications.forEach((m)=>{if(!m.track)return;if(m.track===G)L=m}),L)return q.log.warn("track has already been published, skipping",Object.assign(Object.assign({},q.logContext),G1(L))),L;let R=Object.assign(Object.assign({},q.roomOptions.publishDefaults),H),C="channelCount"in G.mediaStreamTrack.getSettings()&&G.mediaStreamTrack.getSettings().channelCount===2||G.mediaStreamTrack.getConstraints().channelCount===2,D=(U=R.forceStereo)!==null&&U!==void 0?U:C;if(D){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.");(M=R.dtx)!==null&&M!==void 0||(R.dtx=!1),(F=R.red)!==null&&F!==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((m,g)=>p(q,void 0,void 0,function*(){try{if(this.engine.client.currentState!==I1.CONNECTED){this.log.debug("deferring track publication until signal is connected",Object.assign(Object.assign({},this.logContext),{track:G1(G)}));let n=!1,c=setTimeout(()=>{n=!0,G.stop(),g(new FW("publishing rejected as engine not connected within timeout",408))},15000);if(yield this.waitUntilEngineConnected(),clearTimeout(c),n)return;let I=yield this.publish(G,R,D);m(I)}else try{let n=yield this.publish(G,R,D);m(n)}catch(n){g(n)}}catch(n){g(n)}}));q.pendingPublishPromises.set(G,T);try{return yield T}catch(m){throw m}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 p(this,void 0,void 0,function*(){var H,q,N,K,U,M,F,O,L,R;if(!this.hasPermissionsToPublish($))throw new FW("failed to publish track, insufficient permissions",403);if(Array.from(this.trackPublications.values()).find((f)=>r7($)&&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&&B4($))$.stopOnMute=!0;if($.source===e.Source.ScreenShare&&w3())Y.simulcast=!1;if(Y.videoCodec==="av1"&&!v80())Y.videoCodec=void 0;if(Y.videoCodec==="vp9"&&!j80())Y.videoCodec=void 0;if(Y.videoCodec===void 0)Y.videoCodec=pW;if(this.enabledPublishVideoCodecs.length>0){if(!this.enabledPublishVideoCodecs.some((f)=>Y.videoCodec===QH(f.mime)))Y.videoCodec=QH(this.enabledPublishVideoCodecs[0].mime)}let D=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=[],m=!((H=Y.dtx)!==null&&H!==void 0?H:!0),g=$.getSourceTrackSettings();if(g.autoGainControl)T.push(I2.TF_AUTO_GAIN_CONTROL);if(g.echoCancellation)T.push(I2.TF_ECHO_CANCELLATION);if(g.noiseSuppression)T.push(I2.TF_NOISE_SUPPRESSION);if(g.channelCount&&g.channelCount>1)T.push(I2.TF_STEREO);if(m)T.push(I2.TF_NO_DTX);if(s4($)&&$.hasPreConnectBuffer)T.push(I2.TF_PRECONNECT_BUFFER);let n=new zH({cid:$.mediaStreamTrack.id,name:Y.name,type:e.kindToProto($.kind),muted:$.isMuted,source:e.sourceToProto($.source),disableDtx:m,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(o){let u=(K=(N=this.roomOptions.videoCaptureDefaults)===null||N===void 0?void 0:N.resolution)!==null&&K!==void 0?K: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(n.width=f.width,n.height=f.height,Z8($)){if(x5(D)){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(n.simulcastCodecs=[new BW({codec:D,cid:$.mediaStreamTrack.id})],Y.backupCodec===!0)Y.backupCodec={codec:pW};if(Y.backupCodec&&D!==Y.backupCodec.codec&&n.encryption===Q2.NONE){if(!this.roomOptions.dynacast)this.roomOptions.dynacast=!0;n.simulcastCodecs.push(new BW({codec:Y.backupCodec.codec,cid:""}))}}c=EW($.source===e.Source.ScreenShare,n.width,n.height,Y),n.layers=An(n.width,n.height,c,x5(Y.videoCodec))}else if($.kind===e.Kind.Audio)c=[{maxBitrate:(M=Y.audioPreset)===null||M===void 0?void 0:M.maxBitrate,priority:(O=(F=Y.audioPreset)===null||F===void 0?void 0:F.priority)!==null&&O!==void 0?O:"high",networkPriority:(R=(L=Y.audioPreset)===null||L===void 0?void 0:L.priority)!==null&&R!==void 0?R:"high"}];if(!this.engine||this.engine.isClosed)throw new n1("cannot publish track when not connected");let I=()=>p(this,void 0,void 0,function*(){var f,o,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=y30($)),$.setDegradationPreference(Y.degradationPreference);if(c){if(w3()&&$.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:((o=c[0])===null||o===void 0?void 0:o.maxBitrate)?c[0].maxBitrate/1000:0})}else if($.codec&&x5($.codec)&&((u=c[0])===null||u===void 0?void 0:u.maxBitrate))this.engine.pcManager.publisher.setTrackCodecBitrate({cid:n.cid,codec:$.codec,maxbr:c[0].maxBitrate/1000})}yield this.engine.negotiate()}),V,v=new Promise((f,o)=>p(this,void 0,void 0,function*(){var u;try{V=yield this.engine.addTrack(n),f(V)}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}))});o(X0)}}));if(this.enabledPublishVideoCodecs.length>0)V=(yield Promise.all([v,I()]))[0];else{V=yield v;let f;if(V.codecs.forEach((o)=>{if(f===void 0)f=o.mimeType}),f&&$.kind===e.Kind.Video){let o=QH(f);if(o!==D)this.log.debug("falling back to server selected codec",Object.assign(Object.assign(Object.assign({},this.logContext),G1($)),{codec:o})),Y.videoCodec=o,c=EW($.source===e.Source.ScreenShare,n.width,n.height,Y)}yield I()}let s=new KH($.kind,V,$,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});if(s.on(B0.CpuConstrained,(f)=>this.onTrackCpuConstrained(f,s)),s.options=Y,$.sid=V.sid,this.log.debug("publishing ".concat($.kind," with encodings"),Object.assign(Object.assign({},this.logContext),{encodings:c,trackInfo:V})),Z8($))$.startMonitor(this.engine.client);else if(s4($))$.startMonitor();if(this.addTrackPublication(s),this.emit(Q0.LocalTrackPublished,s),s4($)&&V.audioFeatures.includes(I2.TF_PRECONNECT_BUFFER)){let f=$.getPreConnectBuffer(),o=$.getPreConnectBufferMimeType();if(this.on(Q0.LocalTrackSubscribed,(u)=>{if(u.trackSid===V.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)=>p(this,void 0,void 0,function*(){var M0,b0,G0,K0,P0,J0;try{this.log.debug("waiting for agent",Object.assign(Object.assign({},this.logContext),G1($)));let _0=setTimeout(()=>{Y0(Error("agent not active within 10 seconds"))},1e4),C0=yield this.waitUntilActiveAgentPresent();clearTimeout(_0),this.log.debug("sending preconnect buffer",Object.assign(Object.assign({},this.logContext),G1($)));let I0=yield this.streamBytes({name:"preconnect-buffer",mimeType:o,topic:"lk.agent.pre-connect-audio-buffer",destinationIdentities:[C0.identity],attributes:{trackId:s.trackSid,sampleRate:String((P0=g.sampleRate)!==null&&P0!==void 0?P0:"48000"),channels:String((J0=g.channelCount)!==null&&J0!==void 0?J0:"1")}});try{for(var v0=!0,c1=i4(f),Z0;Z0=yield c1.next(),M0=Z0.done,!M0;v0=!0){K0=Z0.value,v0=!1;let g1=K0;yield I0.write(g1)}}catch(g1){b0={error:g1}}finally{try{if(!v0&&!M0&&(G0=c1.return))yield G0.call(c1)}finally{if(b0)throw b0.error}}yield I0.close(),X0()}catch(_0){Y0(_0)}})).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 s})}get isLocal(){return!0}publishAdditionalCodecForTrack($,Y,G){return p(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 q4("track is not published");if(!Z8($))throw new q4("track is not a video track");let N=Object.assign(Object.assign({},(H=this.roomOptions)===null||H===void 0?void 0:H.publishDefaults),G),K=f30($,Y,N);if(!K){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,K);if(!U)return;let M=new zH({cid:U.mediaStreamTrack.id,type:e.kindToProto($.kind),muted:$.isMuted,source:e.sourceToProto($.source),sid:$.sid,simulcastCodecs:[{codec:N.videoCodec,cid:U.mediaStreamTrack.id}]});if(M.layers=An(M.width,M.height,K),!this.engine||this.engine.isClosed)throw new n1("cannot publish track when not connected");let F=()=>p(this,void 0,void 0,function*(){yield this.engine.createSimulcastSender($,U,N,K),yield this.engine.negotiate()}),L=(yield Promise.all([this.engine.addTrack(M),F()]))[0];this.log.debug("published ".concat(Y," for track ").concat($.sid),Object.assign(Object.assign({},this.logContext),{encodings:K,trackInfo:L}))})}unpublishTrack($,Y){return p(this,void 0,void 0,function*(){var G,H;if(r7($)){let M=this.pendingPublishPromises.get($);if(M)this.log.info("awaiting publish promise before attempting to unpublish",Object.assign(Object.assign({},this.logContext),G1($))),yield M}let q=this.getPublicationForTrack($),N=q?G1(q):void 0;if(this.log.debug("unpublishing track",Object.assign(Object.assign({},this.logContext),N)),!q||!q.track){this.log.warn("track was not unpublished because no publication was found",Object.assign(Object.assign({},this.logContext),N));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 K=!1,U=$.sender;if($.sender=void 0,this.engine.pcManager&&this.engine.pcManager.currentState<a1.FAILED&&U)try{for(let M of this.engine.pcManager.publisher.getTransceivers())if(M.sender===U)M.direction="inactive",K=!0;if(this.engine.removeTrack(U))K=!0;if(Z8($)){for(let[,M]of $.simulcastCodecs)if(M.sender){if(this.engine.removeTrack(M.sender))K=!0;M.sender=void 0}$.simulcastCodecs.clear()}}catch(M){this.log.warn("failed to unpublish track",Object.assign(Object.assign(Object.assign({},this.logContext),N),{error:M}))}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),K)yield this.engine.negotiate();return q})}unpublishTracks($){return p(this,void 0,void 0,function*(){return(yield Promise.all($.map((G)=>this.unpublishTrack(G)))).filter((G)=>!!G)})}republishAllTracks($){return p(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 f2((q,N)=>p(G,void 0,void 0,function*(){try{let K=[];this.trackPublications.forEach((U)=>{if(U.track){if(Y)U.options=Object.assign(Object.assign({},U.options),Y);K.push(U)}}),yield Promise.all(K.map((U)=>p(this,void 0,void 0,function*(){let M=U.track;if(yield this.unpublishTrack(M,!1),H&&!M.isMuted&&M.source!==e.Source.ScreenShare&&M.source!==e.Source.ScreenShareAudio&&(s4(M)||Z8(M))&&!M.isUserProvided)this.log.debug("restarting existing track",Object.assign(Object.assign({},this.logContext),{track:U.trackSid})),yield M.restartTrack();yield this.publishOrRepublishTrack(M,U.options,!0)}))),q()}catch(K){if(K instanceof Error)N(K);else N(Error(String(K)))}finally{this.republishPromise=void 0}})),yield G.republishPromise}()})}publishData($){return p(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?Z1.RELIABLE:Z1.LOSSY,N=H.destinationIdentities,K=H.topic,U=new gW({participantIdentity:G.identity,payload:Y,destinationIdentities:N,topic:K}),M=new G6({kind:q,value:{case:"user",value:U}});yield G.engine.sendDataPacket(M,q)}()})}publishDtmf($,Y){return p(this,void 0,void 0,function*(){let G=new G6({kind:Z1.RELIABLE,value:{case:"sipDtmf",value:new rn({code:$,digit:Y})}});yield this.engine.sendDataPacket(G,Z1.RELIABLE)})}sendChatMessage($,Y){return p(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 G6({value:{case:"chatMessage",value:new MB(Object.assign(Object.assign({},G),{timestamp:d1.parse(G.timestamp)}))}});return yield this.engine.sendDataPacket(H,Z1.RELIABLE),this.emit(Q0.ChatMessage,G),G})}editChatMessage($,Y){return p(this,void 0,void 0,function*(){let G=Object.assign(Object.assign({},Y),{message:$,editTimestamp:Date.now()}),H=new G6({value:{case:"chatMessage",value:new MB(Object.assign(Object.assign({},G),{timestamp:d1.parse(G.timestamp),editTimestamp:d1.parse(G.editTimestamp)}))}});return yield this.engine.sendDataPacket(H,Z1.RELIABLE),this.emit(Q0.ChatMessage,G),G})}sendText($,Y){return p(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendText($,Y)})}streamText($){return p(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.streamText($)})}sendFile($,Y){return p(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendFile($,Y)})}streamBytes($){return p(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.streamBytes($)})}performRpc($){let{destinationIdentity:Y,method:G,payload:H,responseTimeout:q=15000}=$,N=7000,K=8000;return new f2((U,M)=>p(this,void 0,void 0,function*(){var F,O,L,R;if(XU(H)>Mt){M(e1.builtIn("REQUEST_PAYLOAD_TOO_LARGE"));return}if(((O=(F=this.engine.latestJoinResponse)===null||F===void 0?void 0:F.serverInfo)===null||O===void 0?void 0:O.version)&&Y5((R=(L=this.engine.latestJoinResponse)===null||L===void 0?void 0:L.serverInfo)===null||R===void 0?void 0:R.version,"1.8.0")<0){M(e1.builtIn("UNSUPPORTED_SERVER"));return}let C=Math.max(q,8000),D=crypto.randomUUID();yield this.publishRpcRequest(Y,D,G,H,C);let T=setTimeout(()=>{this.pendingAcks.delete(D),M(e1.builtIn("CONNECTION_TIMEOUT")),this.pendingResponses.delete(D),clearTimeout(m)},7000);this.pendingAcks.set(D,{resolve:()=>{clearTimeout(T)},participantIdentity:Y});let m=setTimeout(()=>{this.pendingResponses.delete(D),M(e1.builtIn("RESPONSE_TIMEOUT"))},q);this.pendingResponses.set(D,{resolve:(g,n)=>{if(clearTimeout(m),this.pendingAcks.has(D))this.log.warn("RPC response received before ack",D),this.pendingAcks.delete(D),clearTimeout(T);if(n)M(n);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 p(this,void 0,void 0,function*(){let N=new G6({destinationIdentities:[$],kind:Z1.RELIABLE,value:{case:"rpcRequest",value:new mW({id:Y,method:G,payload:H,responseTimeoutMs:q,version:1})}});yield this.engine.sendDataPacket(N,Z1.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 N=q.isMuted||((H=(G=q.track)===null||G===void 0?void 0:G.isUpstreamPaused)!==null&&H!==void 0?H:!1);if(N!==Y.muted)this.log.debug("updating server mute state after reconcile",Object.assign(Object.assign(Object.assign({},this.logContext),G1(q)),{mutedOnServer:N})),this.engine.client.sendMuteTrack(Y.sid,N)}}),!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(s4(H)||Z8(H)){if(H.mediaStreamTrack===$)Y=G}}else if($===H)Y=G}),Y}waitForPendingPublicationOfSource($){return p(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[N]=q;return N.source===$});if(H)return H[1];yield g2(20)}})}}class gB extends z4{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 IB({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 z4.SubscriptionStatus.Unsubscribed;if(!super.isSubscribed)return z4.SubscriptionStatus.Desired;return z4.SubscriptionStatus.Subscribed}get permissionStatus(){return this.allowed?z4.PermissionStatus.Allowed:z4.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(aK(this.track))this.requestedVideoDimensions=$;this.requestedMaxQuality=void 0,this.emitTrackUpdate()}setVideoFPS($){if(!this.isManualOperationAllowed())return;if(!aK(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 aK(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=p80(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 LB extends qU{static fromParticipantInfo($,Y,G){return new LB($,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,N,K){let U=arguments.length>7&&arguments[7]!==void 0?arguments[7]:N8.STANDARD;super(Y,G||"",H,q,N,K,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,N){let K=this.getTrackPublicationBySid(Y);if(!K){if(!Y.startsWith("TR"))this.trackPublications.forEach((F)=>{if(!K&&$.kind===F.kind.toString())K=F})}if(!K){if(N===0){this.log.error("could not find published track",Object.assign(Object.assign({},this.logContext),{trackSid:Y})),this.emit(Q0.TrackSubscriptionFailed,Y);return}if(N===void 0)N=20;setTimeout(()=>{this.addSubscribedMediaTrack($,Y,G,H,q,N-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(K))),this.emit(Q0.TrackSubscriptionFailed,Y);return}let U=$.kind==="video",M;if(U)M=new Ct($,Y,H,q);else M=new jB($,Y,H,this.audioContext,this.audioOutput);if(M.source=K.source,M.isMuted=K.isMuted,M.setMediaStream(G),M.start(),K.setTrack(M),this.volumeMap.has(K.source)&&VW(M)&&B4(M))M.setVolume(this.volumeMap.get(K.source));return K}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,N;let K=this.getTrackPublicationBySid(H.sid);if(!K){let U=e.kindFromProto(H.type);if(!U)return;K=new gB(U,H,(q=this.signalClient.connectOptions)===null||q===void 0?void 0:q.autoSubscribe,{loggerContextCb:()=>this.logContext,loggerName:(N=this.loggerOptions)===null||N===void 0?void 0:N.loggerName}),K.updateInfo(H),G.set(H.sid,K);let M=Array.from(this.trackPublications.values()).find((F)=>F.source===(K===null||K===void 0?void 0:K.source));if(M&&K.source!==e.Source.Unknown)this.log.debug("received a second track publication for ".concat(this.identity," with the same source: ").concat(K.source),Object.assign(Object.assign({},this.logContext),{oldTrack:G1(M),newTrack:G1(K)}));this.addTrackPublication(K)}else K.updateInfo(H);Y.set(H.sid,K)}),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 p(this,void 0,void 0,function*(){this.audioOutput=$;let Y=[];this.audioTrackPublications.forEach((G)=>{var H;if(B4(G.track)&&VW(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 a0;(function($){$.Disconnected="disconnected",$.Connecting="connecting",$.Connected="connected",$.Reconnecting="reconnecting",$.SignalReconnecting="signalReconnecting"})(a0||(a0={}));var n30=4000;class n4 extends A4.EventEmitter{get hasE2EESetup(){return this.e2eeManager!==void 0}constructor($){var Y,G,H,q,N;super();if(Y=this,this.state=a0.Disconnected,this.activeSpeakers=[],this.isE2EEEnabled=!1,this.audioEnabled=!0,this.isVideoPlaybackBlocked=!1,this.log=i0,this.bufferedEvents=[],this.isResuming=!1,this.rpcHandlers=new Map,this.connect=(K,U,M)=>p(this,void 0,void 0,function*(){var F;if(!f80())if(J4())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 O=yield this.disconnectLock.lock();if(this.state===a0.Connected)return this.log.info("already connected to room ".concat(this.name),this.logContext),O(),Promise.resolve();if(this.connectFuture)return O(),this.connectFuture.promise;if(this.setAndEmitConnectionState(a0.Connecting),((F=this.regionUrlProvider)===null||F===void 0?void 0:F.getServerUrl().toString())!==zt(K))this.regionUrl=void 0,this.regionUrlProvider=void 0;if(XX(new URL(K))){if(this.regionUrlProvider===void 0)this.regionUrlProvider=new N1(K,U);else this.regionUrlProvider.updateToken(U);this.regionUrlProvider.fetchRegionSettings().then((C)=>{var D;(D=this.regionUrlProvider)===null||D===void 0||D.setServerReportedRegions(C)}).catch((C)=>{this.log.warn("could not fetch region settings",Object.assign(Object.assign({},this.logContext),{error:C}))})}let L=(C,D,T)=>p(this,void 0,void 0,function*(){var m,g;if(this.abortController)this.abortController.abort();let n=new AbortController;this.abortController=n,O===null||O===void 0||O();try{if(yield n7.getInstance().getBackOffPromise(K),n.signal.aborted)throw E0.cancelled("Connection attempt aborted");yield this.attemptConnection(T!==null&&T!==void 0?T:K,U,M,n),this.abortController=void 0,C()}catch(c){if(this.regionUrlProvider&&c instanceof E0&&c.reason!==T1.Cancelled&&c.reason!==T1.NotAllowed){let I=null;try{this.log.debug("Fetching next region"),I=yield this.regionUrlProvider.getNextBestRegionUrl((m=this.abortController)===null||m===void 0?void 0:m.signal)}catch(V){if(V instanceof E0&&(V.status===401||V.reason===T1.Cancelled)){this.handleDisconnect(this.options.stopLocalTrackOnUnpublish),D(V);return}}if([T1.InternalError,T1.ServerUnreachable,T1.Timeout].includes(c.reason))this.log.debug("Adding failed connection attempt to back off"),n7.getInstance().addFailedConnectionAttempt(K);if(I&&!((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(I),this.logContext),this.recreateEngine(),yield L(C,D,I);else this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,rr(c)),D(c)}else{let I=_5.UNKNOWN_REASON;if(c instanceof E0)I=rr(c);this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,I),D(c)}}}),R=this.regionUrl;return this.regionUrl=void 0,this.connectFuture=new m6((C,D)=>{L(C,D,R)},()=>{this.clearConnectionFutures()}),this.connectFuture.promise}),this.connectSignal=(K,U,M,F,O,L)=>p(this,void 0,void 0,function*(){var R,C,D;let T=yield M.join(K,U,{autoSubscribe:F.autoSubscribe,adaptiveStream:typeof O.adaptiveStream==="object"?!0:O.adaptiveStream,maxRetries:F.maxRetries,e2eeEnabled:!!this.e2eeManager,websocketTimeout:F.websocketTimeout},L.signal,!O.singlePeerConnection),m=T.serverInfo;if(!m)m={version:T.serverVersion,region:T.serverRegion};if(this.serverInfo=m,this.log.debug("connected to Livekit Server ".concat(Object.entries(m).map((g)=>{let[n,c]=g;return"".concat(n,": ").concat(c)}).join(", ")),{room:(R=T.room)===null||R===void 0?void 0:R.name,roomSid:(C=T.room)===null||C===void 0?void 0:C.sid,identity:(D=T.participant)===null||D===void 0?void 0:D.identity}),!m.version)throw new ea("unknown server version");if(m.version==="0.15.1"&&this.options.dynacast)this.log.debug("disabling dynacast due to server version",this.logContext),O.dynacast=!1;return T}),this.applyJoinResponse=(K)=>{let U=K.participant;if(this.localParticipant.sid=U.sid,this.localParticipant.identity=U.identity,this.localParticipant.setEnabledPublishCodecs(K.enabledPublishCodecs),this.e2eeManager)try{this.e2eeManager.setSifTrailer(K.sifTrailer)}catch(M){this.log.error(M instanceof Error?M.message:"Could not set SifTrailer",Object.assign(Object.assign({},this.logContext),{error:M}))}if(this.handleParticipantUpdates([U,...K.otherParticipants]),K.room)this.handleRoomUpdate(K.room)},this.attemptConnection=(K,U,M,F)=>p(this,void 0,void 0,function*(){var O,L;if(this.state===a0.Reconnecting||this.isResuming||((O=this.engine)===null||O===void 0?void 0:O.pendingReconnect))this.log.info("Reconnection attempt replaced by new connection attempt",this.logContext),this.recreateEngine();else this.maybeCreateEngine();if((L=this.regionUrlProvider)===null||L===void 0?void 0:L.isCloud())this.engine.setRegionUrlProvider(this.regionUrlProvider);if(this.acquireAudioContext(),this.connOptions=Object.assign(Object.assign({},eW),M),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(K,U,this.engine,this.connOptions,this.options,F);this.applyJoinResponse(R),this.setupLocalParticipantEvents(),this.emit(t.SignalConnected)}catch(R){yield this.engine.close(),this.recreateEngine();let C=F.signal.aborted?E0.cancelled("Signal connection aborted"):E0.serverUnreachable("could not establish signal connection");if(R instanceof Error)C.message="".concat(C.message,": ").concat(R.message);if(R instanceof E0)C.reason=R.reason,C.status=R.status;throw this.log.debug("error trying to establish signal connection",Object.assign(Object.assign({},this.logContext),{error:R})),C}if(F.signal.aborted)throw yield this.engine.close(),this.recreateEngine(),E0.cancelled("Connection attempt aborted");try{yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout,F)}catch(R){throw yield this.engine.close(),this.recreateEngine(),R}if(F6()&&this.options.disconnectOnPageLeave)window.addEventListener("pagehide",this.onPageLeave),window.addEventListener("beforeunload",this.onPageLeave);if(F6())window.addEventListener("freeze",this.onPageLeave);if(this.setAndEmitConnectionState(a0.Connected),this.emit(t.Connected),n7.getInstance().resetFailedConnectionAttempts(K),this.registerConnectionReconcile(),this.regionUrlProvider)this.regionUrlProvider.notifyConnected()}),this.disconnect=function(){for(var K=arguments.length,U=Array(K),M=0;M<K;M++)U[M]=arguments[M];return p(Y,[...U],void 0,function(){var F=this;let O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var L,R,C;let D=yield F.disconnectLock.lock();try{if(F.state===a0.Disconnected){F.log.debug("already disconnected",F.logContext);return}if(F.log.info("disconnect from room",Object.assign({},F.logContext)),F.state===a0.Connecting||F.state===a0.Reconnecting||F.isResuming)F.log.warn("Abort connection attempt due to user initiated disconnect",F.logContext),(L=F.abortController)===null||L===void 0||L.abort("Abort connection attempt due to user initiated disconnect"),(C=(R=F.connectFuture)===null||R===void 0?void 0:R.reject)===null||C===void 0||C.call(R,E0.cancelled("Client initiated disconnect")),F.connectFuture=void 0;if(F.engine){if(!F.engine.client.isDisconnected)yield F.engine.client.sendLeave();yield F.engine.close()}F.handleDisconnect(O,_5.CLIENT_INITIATED),F.engine=void 0}finally{D()}}()})},this.onPageLeave=()=>p(this,void 0,void 0,function*(){this.log.info("Page leave detected, disconnecting",this.logContext),yield this.disconnect()}),this.startAudio=()=>p(this,void 0,void 0,function*(){let K=[],U=H6();if(U&&U.os==="iOS"){let F=document.getElementById("livekit-dummy-audio-el");if(!F){F=document.createElement("audio"),F.id="livekit-dummy-audio-el",F.autoplay=!0,F.hidden=!0;let O=nK();O.enabled=!0;let L=new MediaStream([O]);F.srcObject=L,document.addEventListener("visibilitychange",()=>{if(!F)return;if(F.srcObject=document.hidden?null:L,!document.hidden)this.log.debug("page visible again, triggering startAudio to resume playback and update playback status",this.logContext),this.startAudio()}),document.body.append(F),this.once(t.Disconnected,()=>{F===null||F===void 0||F.remove(),F=null})}K.push(F)}this.remoteParticipants.forEach((M)=>{M.audioTrackPublications.forEach((F)=>{if(F.track)F.track.attachedElements.forEach((O)=>{K.push(O)})})});try{yield Promise.all([this.acquireAudioContext(),...K.map((M)=>{return M.muted=!1,M.play()})]),this.handleAudioPlaybackStarted()}catch(M){throw this.handleAudioPlaybackFailed(M),M}}),this.startVideo=()=>p(this,void 0,void 0,function*(){let K=[];for(let U of this.remoteParticipants.values())U.videoTrackPublications.forEach((M)=>{var F;(F=M.track)===null||F===void 0||F.attachedElements.forEach((O)=>{if(!K.includes(O))K.push(O)})});yield Promise.all(K.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 K of this.remoteParticipants.values())this.handleParticipantDisconnected(K.identity,K);if(this.setAndEmitConnectionState(a0.Reconnecting))this.emit(t.Reconnecting)},this.handleSignalRestarted=(K)=>p(this,void 0,void 0,function*(){this.log.debug("signal reconnected to server, region ".concat(K.serverRegion),Object.assign(Object.assign({},this.logContext),{region:K.serverRegion})),this.bufferedEvents=[],this.applyJoinResponse(K);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:K.serverRegion}))}catch(U){return}this.setAndEmitConnectionState(a0.Connected),this.emit(t.Reconnected),this.registerConnectionReconcile(),this.emitBufferedEvents()}),this.handleParticipantUpdates=(K)=>{K.forEach((U)=>{var M;if(U.identity===this.localParticipant.identity){this.localParticipant.updateInfo(U);return}if(U.identity==="")U.identity=(M=this.sidToIdentity.get(U.sid))!==null&&M!==void 0?M:"";let F=this.remoteParticipants.get(U.identity);if(U.state===l7.DISCONNECTED)this.handleParticipantDisconnected(U.identity,F);else F=this.getOrCreateParticipant(U.identity,U)})},this.handleActiveSpeakersUpdate=(K)=>{let U=[],M={};if(K.forEach((F)=>{if(M[F.sid]=!0,F.sid===this.localParticipant.sid)this.localParticipant.audioLevel=F.level,this.localParticipant.setIsSpeaking(!0),U.push(this.localParticipant);else{let O=this.getRemoteParticipantBySid(F.sid);if(O)O.audioLevel=F.level,O.setIsSpeaking(!0),U.push(O)}}),!M[this.localParticipant.sid])this.localParticipant.audioLevel=0,this.localParticipant.setIsSpeaking(!1);this.remoteParticipants.forEach((F)=>{if(!M[F.sid])F.audioLevel=0,F.setIsSpeaking(!1)}),this.activeSpeakers=U,this.emitWhenConnected(t.ActiveSpeakersChanged,U)},this.handleSpeakersChanged=(K)=>{let U=new Map;this.activeSpeakers.forEach((F)=>{let O=this.remoteParticipants.get(F.identity);if(O&&O.sid!==F.sid)return;U.set(F.sid,F)}),K.forEach((F)=>{let O=this.getRemoteParticipantBySid(F.sid);if(F.sid===this.localParticipant.sid)O=this.localParticipant;if(!O)return;if(O.audioLevel=F.level,O.setIsSpeaking(F.active),F.active)U.set(F.sid,O);else U.delete(F.sid)});let M=Array.from(U.values());M.sort((F,O)=>O.audioLevel-F.audioLevel),this.activeSpeakers=M,this.emitWhenConnected(t.ActiveSpeakersChanged,M)},this.handleStreamStateUpdate=(K)=>{K.streamStates.forEach((U)=>{let M=this.getRemoteParticipantBySid(U.participantSid);if(!M)return;let F=M.getTrackPublicationBySid(U.trackSid);if(!F||!F.track)return;let O=e.streamStateFromProto(U.state);if(F.track.setStreamState(O),O!==F.track.streamState)M.emit(Q0.TrackStreamStateChanged,F,F.track.streamState),this.emitWhenConnected(t.TrackStreamStateChanged,F,F.track.streamState,M)})},this.handleSubscriptionPermissionUpdate=(K)=>{let U=this.getRemoteParticipantBySid(K.participantSid);if(!U)return;let M=U.getTrackPublicationBySid(K.trackSid);if(!M)return;M.setAllowed(K.allowed)},this.handleSubscriptionError=(K)=>{let U=Array.from(this.remoteParticipants.values()).find((F)=>F.trackPublications.has(K.trackSid));if(!U)return;let M=U.getTrackPublicationBySid(K.trackSid);if(!M)return;M.setSubscriptionError(K.err)},this.handleDataPacket=(K,U)=>{let M=this.remoteParticipants.get(K.participantIdentity);if(K.value.case==="user")this.handleUserPacket(M,K.value.value,K.kind,U);else if(K.value.case==="transcription")this.handleTranscription(M,K.value.value);else if(K.value.case==="sipDtmf")this.handleSipDtmf(M,K.value.value);else if(K.value.case==="chatMessage")this.handleChatMessage(M,K.value.value);else if(K.value.case==="metrics")this.handleMetrics(K.value.value,M);else if(K.value.case==="streamHeader"||K.value.case==="streamChunk"||K.value.case==="streamTrailer")this.handleDataStream(K,U);else if(K.value.case==="rpcRequest"){let F=K.value.value;this.handleIncomingRpcRequest(K.participantIdentity,F.id,F.method,F.payload,F.responseTimeoutMs,F.version)}},this.handleUserPacket=(K,U,M,F)=>{this.emit(t.DataReceived,U.payload,K,M,U.topic,F),K===null||K===void 0||K.emit(Q0.DataReceived,U.payload,M,F)},this.handleSipDtmf=(K,U)=>{this.emit(t.SipDTMFReceived,U,K),K===null||K===void 0||K.emit(Q0.SipDTMFReceived,U)},this.handleTranscription=(K,U)=>{let M=U.transcribedParticipantIdentity===this.localParticipant.identity?this.localParticipant:this.getParticipantByIdentity(U.transcribedParticipantIdentity),F=M===null||M===void 0?void 0:M.trackPublications.get(U.trackId),O=l80(U,this.transcriptionReceivedTimes);F===null||F===void 0||F.emit(B0.TranscriptionReceived,O),M===null||M===void 0||M.emit(Q0.TranscriptionReceived,O,F),this.emit(t.TranscriptionReceived,O,M,F)},this.handleChatMessage=(K,U)=>{let M=c80(U);this.emit(t.ChatMessage,M,K)},this.handleMetrics=(K,U)=>{this.emit(t.MetricsReceived,K,U)},this.handleDataStream=(K,U)=>{this.incomingDataStreamManager.handleDataStreamPacket(K,U)},this.bufferedSegments=new Map,this.handleAudioPlaybackStarted=()=>{if(this.canPlaybackAudio)return;this.audioEnabled=!0,this.emit(t.AudioPlaybackStatusChanged,!0)},this.handleAudioPlaybackFailed=(K)=>{if(this.log.warn("could not playback audio",Object.assign(Object.assign({},this.logContext),{error:K})),!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=()=>p(this,void 0,void 0,function*(){var K;if(((K=H6())===null||K===void 0?void 0:K.os)!=="iOS")yield this.selectDefaultDevices();this.emit(t.MediaDevicesChanged)}),this.handleRoomUpdate=(K)=>{let U=this.roomInfo;if(this.roomInfo=K,U&&U.metadata!==K.metadata)this.emitWhenConnected(t.RoomMetadataChanged,K.metadata);if((U===null||U===void 0?void 0:U.activeRecording)!==K.activeRecording)this.emitWhenConnected(t.RecordingStatusChanged,K.activeRecording)},this.handleConnectionQualityUpdate=(K)=>{K.updates.forEach((U)=>{if(U.participantSid===this.localParticipant.sid){this.localParticipant.setConnectionQuality(U.quality);return}let M=this.getRemoteParticipantBySid(U.participantSid);if(M)M.setConnectionQuality(U.quality)})},this.onLocalParticipantMetadataChanged=(K)=>{this.emit(t.ParticipantMetadataChanged,K,this.localParticipant)},this.onLocalParticipantNameChanged=(K)=>{this.emit(t.ParticipantNameChanged,K,this.localParticipant)},this.onLocalAttributesChanged=(K)=>{this.emit(t.ParticipantAttributesChanged,K,this.localParticipant)},this.onLocalTrackMuted=(K)=>{this.emit(t.TrackMuted,K,this.localParticipant)},this.onLocalTrackUnmuted=(K)=>{this.emit(t.TrackUnmuted,K,this.localParticipant)},this.onTrackProcessorUpdate=(K)=>{var U;(U=K===null||K===void 0?void 0:K.onPublish)===null||U===void 0||U.call(K,this)},this.onLocalTrackPublished=(K)=>p(this,void 0,void 0,function*(){var U,M,F,O,L,R;if((U=K.track)===null||U===void 0||U.on(B0.TrackProcessorUpdate,this.onTrackProcessorUpdate),(M=K.track)===null||M===void 0||M.on(B0.Restarted,this.onLocalTrackRestarted),(L=(O=(F=K.track)===null||F===void 0?void 0:F.getProcessor())===null||O===void 0?void 0:O.onPublish)===null||L===void 0||L.call(O,this),this.emit(t.LocalTrackPublished,K,this.localParticipant),s4(K.track)){if(yield K.track.checkForSilence())this.emit(t.LocalAudioSilenceDetected,K)}let C=yield(R=K.track)===null||R===void 0?void 0:R.getDeviceId(!1),D=RW(K.source);if(D&&C&&C!==this.localParticipant.activeDeviceMap.get(D))this.localParticipant.activeDeviceMap.set(D,C),this.emit(t.ActiveDeviceChanged,D,C)}),this.onLocalTrackUnpublished=(K)=>{var U,M;(U=K.track)===null||U===void 0||U.off(B0.TrackProcessorUpdate,this.onTrackProcessorUpdate),(M=K.track)===null||M===void 0||M.off(B0.Restarted,this.onLocalTrackRestarted),this.emit(t.LocalTrackUnpublished,K,this.localParticipant)},this.onLocalTrackRestarted=(K)=>p(this,void 0,void 0,function*(){let U=yield K.getDeviceId(!1),M=RW(K.source);if(M&&U&&U!==this.localParticipant.activeDeviceMap.get(M))this.log.debug("local track restarted, setting ".concat(M," ").concat(U," active"),this.logContext),this.localParticipant.activeDeviceMap.set(M,U),this.emit(t.ActiveDeviceChanged,M,U)}),this.onLocalConnectionQualityChanged=(K)=>{this.emit(t.ConnectionQualityChanged,K,this.localParticipant)},this.onMediaDevicesError=(K,U)=>{this.emit(t.MediaDevicesError,K,U)},this.onLocalParticipantPermissionsChanged=(K)=>{this.emit(t.ParticipantPermissionsChanged,K,this.localParticipant)},this.onLocalChatMessageSent=(K)=>{this.emit(t.ChatMessage,K,this.localParticipant)},this.setMaxListeners(100),this.remoteParticipants=new Map,this.sidToIdentity=new Map,this.options=Object.assign(Object.assign({},R30),$),this.log=r4((G=this.options.loggerName)!==null&&G!==void 0?G:V5.Room),this.transcriptionReceivedTimes=new Map,this.options.audioCaptureDefaults=Object.assign(Object.assign({},Nt),$===null||$===void 0?void 0:$.audioCaptureDefaults),this.options.videoCaptureDefaults=Object.assign(Object.assign({},Kt),$===null||$===void 0?void 0:$.videoCaptureDefaults),this.options.publishDefaults=Object.assign(Object.assign({},L30),$===null||$===void 0?void 0:$.publishDefaults),this.maybeCreateEngine(),this.incomingDataStreamManager=new wt,this.outgoingDataStreamManager=new Vt(this.engine,this.log),this.disconnectLock=new m2,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((K)=>this.log.warn("Could not set audio output: ".concat(K.message),this.logContext));if(F6()){let K=new AbortController;if((N=(q=navigator.mediaDevices)===null||q===void 0?void 0:q.addEventListener)===null||N===void 0||N.call(q,"devicechange",this.handleDeviceChange,{signal:K.signal}),n4.cleanupRegistry)n4.cleanupRegistry.register(this,()=>{K.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 p(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 N=q?this.getParticipantByIdentity(q):void 0;this.emit(t.EncryptionError,H,N)}),($=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===a0.Disconnected)return f2.resolve("");if(this.roomInfo&&this.roomInfo.sid!=="")return f2.resolve(this.roomInfo.sid);return new f2(($,Y)=>{let G=(H)=>{if(H.sid!=="")this.engine.off(N0.RoomUpdate,G),$(H.sid)};this.engine.on(N0.RoomUpdate,G),this.once(t.Disconnected,()=>{this.engine.off(N0.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 Ot(this.options),this.engine.e2eeManager=this.e2eeManager,this.engine.on(N0.ParticipantUpdate,this.handleParticipantUpdates).on(N0.RoomUpdate,this.handleRoomUpdate).on(N0.SpeakersChanged,this.handleSpeakersChanged).on(N0.StreamStateChanged,this.handleStreamStateUpdate).on(N0.ConnectionQualityUpdate,this.handleConnectionQualityUpdate).on(N0.SubscriptionError,this.handleSubscriptionError).on(N0.SubscriptionPermissionUpdate,this.handleSubscriptionPermissionUpdate).on(N0.MediaTrackAdded,($,Y,G)=>{this.onTrackAdded($,Y,G)}).on(N0.Disconnected,($)=>{this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,$)}).on(N0.ActiveSpeakersUpdate,this.handleActiveSpeakersUpdate).on(N0.DataPacketReceived,this.handleDataPacket).on(N0.Resuming,()=>{if(this.clearConnectionReconcile(),this.isResuming=!0,this.log.info("Resuming signal connection",this.logContext),this.setAndEmitConnectionState(a0.SignalReconnecting))this.emit(t.SignalReconnecting)}).on(N0.Resumed,()=>{if(this.registerConnectionReconcile(),this.isResuming=!1,this.log.info("Resumed signal connection",this.logContext),this.updateSubscriptions(),this.emitBufferedEvents(),this.setAndEmitConnectionState(a0.Connected))this.emit(t.Reconnected)}).on(N0.SignalResumed,()=>{if(this.bufferedEvents=[],this.state===a0.Reconnecting||this.isResuming)this.sendSyncState()}).on(N0.Restarting,this.handleRestarting).on(N0.SignalRestarted,this.handleSignalRestarted).on(N0.Offline,()=>{if(this.setAndEmitConnectionState(a0.Reconnecting))this.emit(t.Reconnecting)}).on(N0.DCBufferStatusChanged,($,Y)=>{this.emit(t.DCBufferStatusChanged,$,Y)}).on(N0.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(N0.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 p(this,void 0,void 0,function*(){if(this.state!==a0.Disconnected)return;this.log.debug("prepareConnection to ".concat($),this.logContext);try{if(XX(new URL($))&&Y){this.regionUrlProvider=new N1($,Y);let G=yield this.regionUrlProvider.getNextBestRegionUrl();if(G&&this.state===a0.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 p(this,void 0,void 0,function*(){let G=()=>p(this,void 0,void 0,function*(){}),H;switch($){case"signal-reconnect":yield this.engine.client.handleOnClose("simulate disconnect");break;case"speaker":H=new G4({scenario:{case:"speakerUpdate",value:3}});break;case"node-failure":H=new G4({scenario:{case:"nodeFailure",value:!0}});break;case"server-leave":H=new G4({scenario:{case:"serverLeave",value:!0}});break;case"migration":H=new G4({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=()=>p(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),H=new G4({scenario:{case:"disconnectSignalOnResume",value:!0}});break;case"disconnect-signal-on-resume-no-messages":G=()=>p(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),H=new G4({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 G4({scenario:{case:"switchCandidateProtocol",value:$==="force-tls"?2:1}}),G=()=>p(this,void 0,void 0,function*(){let q=this.engine.client.onLeave;if(q)q(new TB({reason:_5.CLIENT_INITIATED,action:c7.RECONNECT}))});break;case"subscriber-bandwidth":if(Y===void 0||typeof Y!=="number")throw Error("subscriber-bandwidth requires a number as argument");H=new G4({scenario:{case:"subscriberBandwidth",value:O3(Y)}});break;case"leave-full-reconnect":H=new G4({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 p(this,arguments,void 0,function(G,H){var q=this;let N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return function*(){var K,U,M,F,O,L,R;let C=!0,D=!1,T=N?{exact:H}:H;if(G==="audioinput"){D=q.localParticipant.audioTrackPublications.size===0;let m=(K=q.getActiveDevice(G))!==null&&K!==void 0?K: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{C=(yield Promise.all(g.map((c)=>{var I;return(I=c.audioTrack)===null||I===void 0?void 0:I.setDeviceId(T)}))).every((c)=>c===!0)}catch(c){throw q.options.audioCaptureDefaults.deviceId=m,c}let n=g.some((c)=>{var I,V;return(V=(I=c.track)===null||I===void 0?void 0:I.isMuted)!==null&&V!==void 0?V:!1});if(C&&n)D=!0}else if(G==="videoinput"){D=q.localParticipant.videoTrackPublications.size===0;let m=(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{C=(yield Promise.all(g.map((c)=>{var I;return(I=c.videoTrack)===null||I===void 0?void 0:I.setDeviceId(T)}))).every((c)=>c===!0)}catch(c){throw q.options.videoCaptureDefaults.deviceId=m,c}let n=g.some((c)=>{var I,V;return(V=(I=c.track)===null||I===void 0?void 0:I.isMuted)!==null&&V!==void 0?V:!1});if(C&&n)D=!0}else if(G==="audiooutput"){if(D=!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=(M=yield T2.getInstance().normalizeDeviceId("audiooutput",H))!==null&&M!==void 0?M:"";(F=(R=q.options).audioOutput)!==null&&F!==void 0||(R.audioOutput={});let m=(O=q.getActiveDevice(G))!==null&&O!==void 0?O:q.options.audioOutput.deviceId;q.options.audioOutput.deviceId=H;try{if(q.options.webAudioMix)(L=q.audioContext)===null||L===void 0||L.setSinkId(H);yield Promise.all(Array.from(q.remoteParticipants.values()).map((g)=>g.setAudioOutput({deviceId:H})))}catch(g){throw q.options.audioOutput.deviceId=m,g}}if(D)q.localParticipant.activeDeviceMap.set(G,H),q.emit(t.ActiveDeviceChanged,G,H);return C}()})}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===a0.Connecting||this.state===a0.Reconnecting){let O=()=>{this.log.debug("deferring on track for later",{mediaTrackId:$.id,mediaStreamId:Y.id,tracksInStream:Y.getTracks().map((R)=>R.id)}),this.onTrackAdded($,Y,G),L()},L=()=>{this.off(t.Reconnected,O),this.off(t.Connected,O),this.off(t.Disconnected,L)};this.once(t.Reconnected,O),this.once(t.Connected,O),this.once(t.Disconnected,L);return}if(this.state===a0.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=D80(Y.id),q=H[0],N=H[1],K=$.id;if(N&&N.startsWith("TR"))K=N;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((O)=>O.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(!K.startsWith("TR")){let O=this.engine.getTrackIdForReceiver(G);if(!O){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}K=O}if(!K.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(N,", trackId: ").concat(K),Object.assign(Object.assign({},this.logContext),{rpID:q,streamId:N,trackId:K}));let M;if(this.options.adaptiveStream)if(typeof this.options.adaptiveStream==="object")M=this.options.adaptiveStream;else M={};let F=U.addSubscribedMediaTrack($,K,Y,G,M);if((F===null||F===void 0?void 0:F.isEncrypted)&&!this.e2eeManager)this.emit(t.EncryptionError,Error("Encrypted ".concat(F.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===a0.Disconnected)return;if(this.regionUrl=void 0,this.regionUrlProvider)this.regionUrlProvider.notifyDisconnected();try{if(this.remoteParticipants.forEach((q)=>{q.trackPublications.forEach((N)=>{q.unpublishTrack(N.trackSid)})}),this.localParticipant.trackPublications.forEach((q)=>{var N,K,U;if(q.track)this.localParticipant.unpublishTrack(q.track,$);if($)(N=q.track)===null||N===void 0||N.detach(),(K=q.track)===null||K===void 0||K.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(F6())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(a0.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,N){return p(this,void 0,void 0,function*(){if(yield this.engine.publishRpcAck($,Y),N!==1){yield this.engine.publishRpcResponse($,Y,null,e1.builtIn("UNSUPPORTED_VERSION"));return}let K=this.rpcHandlers.get(G);if(!K){yield this.engine.publishRpcResponse($,Y,null,e1.builtIn("UNSUPPORTED_METHOD"));return}let U=null,M=null;try{let F=yield K({requestId:Y,callerIdentity:$,payload:H,responseTimeout:q});if(XU(F)>Mt)U=e1.builtIn("RESPONSE_PAYLOAD_TOO_LARGE"),this.log.warn("RPC Response payload too large for ".concat(G));else M=F}catch(F){if(F instanceof e1)U=F;else this.log.warn("Uncaught error returned by RPC handler for ".concat(G,". Returning APPLICATION_ERROR instead."),F),U=e1.builtIn("APPLICATION_ERROR")}yield this.engine.publishRpcResponse($,Y,M,U)})}selectDefaultDevices(){return p(this,void 0,void 0,function*(){var $,Y,G;let H=T2.getInstance().previousDevices,q=yield T2.getInstance().getDevices(void 0,!1),N=H6();if((N===null||N===void 0?void 0:N.name)==="Chrome"&&N.os!=="iOS")for(let U of q){let M=H.find((F)=>F.deviceId===U.deviceId);if(M&&M.label!==""&&M.kind===U.kind&&M.label!==U.label){if(this.getActiveDevice(U.kind)==="default")this.emit(t.ActiveDeviceChanged,U.kind,U.deviceId)}}let K=["audiooutput","audioinput","videoinput"];for(let U of K){let M=x80(U),F=this.localParticipant.getTrackPublication(M);if(F&&(($=F.track)===null||$===void 0?void 0:$.isUserProvided))continue;let O=q.filter((R)=>R.kind===U),L=this.getActiveDevice(U);if(L===((Y=H.filter((R)=>R.kind===U)[0])===null||Y===void 0?void 0:Y.deviceId)){if(O.length>0&&((G=O[0])===null||G===void 0?void 0:G.deviceId)!==L){yield this.switchActiveDevice(U,O[0].deviceId);continue}}if(U==="audioinput"&&!BH()||U==="videoinput")continue;if(O.length>0&&!O.find((R)=>R.deviceId===this.getActiveDevice(U))&&(U!=="audiooutput"||!BH()))yield this.switchActiveDevice(U,O[0].deviceId)}})}acquireAudioContext(){return p(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(),g2(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=LB.fromParticipantInfo(this.engine.client,Y,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName});else H=new LB(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===N8.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=p2.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,_5.STATE_MISMATCH)}else $=0},n30)}clearConnectionReconcile(){if(this.connectionReconcileInterval)p2.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===a0.Reconnecting||this.isResuming||!this.engine||this.engine.pendingReconnect)this.bufferedEvents.push([$,G]);else if(this.state===a0.Connected)return this.emit($,...G);return!1}simulateParticipants($){return p(this,void 0,void 0,function*(){var Y,G,H,q;let N=Object.assign({audio:!0,video:!0,useRealTracks:!1},$.publish),K=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:d1.parse(new Date().getTime()),metadata:"",numParticipants:1,numPublishers:1,turnPassword:"",enabledCodecs:[],activeRecording:!1}),this.localParticipant.updateInfo(new R3({identity:"simulated-local",name:"local-name"})),this.setupLocalParticipantEvents(),this.emit(t.SignalConnected),this.emit(t.Connected),this.setAndEmitConnectionState(a0.Connected),N.video){let U=new KH(e.Kind.Video,new u7({source:W2.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:R5.AUDIO,name:"video-dummy"}),new NH(N.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=K.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(N.audio){let U=new KH(e.Kind.Audio,new u7({source:W2.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:R5.AUDIO}),new AH(N.useRealTracks&&((H=navigator.mediaDevices)===null||H===void 0?void 0:H.getUserMedia)?(yield navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0]:nK(),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<K.count-1;U+=1){let M=new R3({sid:Math.floor(Math.random()*1e4).toString(),identity:"simulated-".concat(U),state:l7.ACTIVE,tracks:[],joinedAt:d1.parse(Date.now())}),F=this.getOrCreateParticipant(M.identity,M);if(K.video){let O=or(160*((q=K.aspectRatios[U%K.aspectRatios.length])!==null&&q!==void 0?q:1),160,!1,!0),L=new u7({source:W2.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:R5.AUDIO});F.addSubscribedMediaTrack(O,L.sid,new MediaStream([O]),new RTCRtpReceiver),M.tracks=[...M.tracks,L]}if(K.audio){let O=nK(),L=new u7({source:W2.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:R5.AUDIO});F.addSubscribedMediaTrack(O,L.sid,new MediaStream([O]),new RTCRtpReceiver),M.tracks=[...M.tracks,L]}F.updateInfo(M)}})}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=pt(G).filter((N)=>N!==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)}}n4.cleanupRegistry=typeof FinalizationRegistry<"u"&&new FinalizationRegistry(($)=>{$()});function pt($){return $.map((Y)=>{if(!Y)return;if(Array.isArray(Y))return pt(Y);if(typeof Y==="object")return"logContext"in Y?Y.logContext:void 0;return Y})}var L5;(function($){$[$.IDLE=0]="IDLE",$[$.RUNNING=1]="RUNNING",$[$.SKIPPED=2]="SKIPPED",$[$.SUCCESS=3]="SUCCESS",$[$.FAILED=4]="FAILED"})(L5||(L5={}));class t4 extends A4.EventEmitter{constructor($,Y){let G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super();this.status=L5.IDLE,this.logs=[],this.options={},this.url=$,this.token=Y,this.name=this.constructor.name,this.room=new n4(G.roomOptions),this.connectOptions=G.connectOptions,this.options=G}run($){return p(this,void 0,void 0,function*(){if(this.status!==L5.IDLE)throw Error("check is running already");this.setStatus(L5.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!==L5.SKIPPED)this.setStatus(this.isSuccess()?L5.SUCCESS:L5.FAILED);if($)$();return this.getInfo()})}isSuccess(){return!this.logs.some(($)=>$.level==="error")}connect($){return p(this,void 0,void 0,function*(){if(this.room.state===a0.Connected)return this.room;if(!$)$=this.url;return yield this.room.connect($,this.token,this.connectOptions),this.room})}disconnect(){return p(this,void 0,void 0,function*(){if(this.room&&this.room.state!==a0.Disconnected)yield this.room.disconnect(),yield new Promise(($)=>setTimeout($,500))})}skip(){this.setStatus(L5.SKIPPED)}switchProtocol($){return p(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 g2(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 St extends t4{get description(){return"Cloud regions"}perform(){return p(this,void 0,void 0,function*(){let $=new N1(this.url,this.token);if(!$.isCloud()){this.skip();return}let Y=[],G=new Set;for(let q=0;q<3;q++){let N=yield $.getNextBestRegionUrl();if(!N)break;if(G.has(N))continue;G.add(N);let K=yield this.checkCloudRegion(N);this.appendMessage("".concat(K.region," RTT: ").concat(K.rtt,"ms, duration: ").concat(K.duration,"ms")),Y.push(K)}Y.sort((q,N)=>{return(q.duration-N.duration)*0.5+(q.rtt-N.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 p(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"}),N=1000,U=1e6/N,M="A".repeat(N),F=Date.now();for(let C=0;C<U;C++)yield q.write(M);yield q.close();let O=Date.now(),L=yield(G=this.room.engine.pcManager)===null||G===void 0?void 0:G.publisher.getStats(),R={region:H,rtt:1e4,duration:O-F};return L===null||L===void 0||L.forEach((C)=>{if(C.type==="candidate-pair"&&C.nominated)R.rtt=C.currentRoundTripTime*1000}),yield this.disconnect(),R})}}var GW=1e4;class Et extends t4{get description(){return"Connection via UDP vs TCP"}perform(){return p(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/(GW/1000)*100).toFixed(2),"%"));if(G.qualityLimitationDurations.cpu>0)this.appendWarning("cpu limited ".concat((G.qualityLimitationDurations.cpu/(GW/1000)*100).toFixed(2),"%"))})}getInfo(){let $=super.getInfo();return $.data=this.bestStats,$}checkConnectionProtocol($){return p(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 K=Y.captureStream(30).getVideoTracks()[0],M=(yield this.room.localParticipant.publishTrack(K,{simulcast:!1,degradationPreference:"maintain-resolution",videoEncoding:{maxBitrate:2000000}})).track,F={protocol:$,packetsLost:0,packetsSent:0,qualityLimitationDurations:{},rttTotal:0,jitterTotal:0,bitrateTotal:0,count:0},O=setInterval(()=>p(this,void 0,void 0,function*(){let L=yield M.getRTCStatsReport();L===null||L===void 0||L.forEach((R)=>{if(R.type==="outbound-rtp")F.packetsSent=R.packetsSent,F.qualityLimitationDurations=R.qualityLimitationDurations,F.bitrateTotal+=R.targetBitrate,F.count++;else if(R.type==="remote-inbound-rtp")F.packetsLost=R.packetsLost,F.rttTotal+=R.roundTripTime,F.jitterTotal+=R.jitter})}),1000);return yield new Promise((L)=>setTimeout(L,GW)),clearInterval(O),K.stop(),Y.remove(),yield this.disconnect(),F})}}class Dt extends t4{get description(){return"Can publish audio"}perform(){return p(this,void 0,void 0,function*(){var $;let Y=yield this.connect(),G=yield i30();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((K)=>setTimeout(K,3000));let q=yield($=G.sender)===null||$===void 0?void 0:$.getStats();if(!q)throw Error("Could not get RTCStats");let N=0;if(q.forEach((K)=>{if(K.type==="outbound-rtp"&&(K.kind==="audio"||!K.kind&&K.mediaType==="audio"))N=K.packetsSent}),N===0)throw Error("Could not determine packets are sent");this.appendMessage("published ".concat(N," audio packets"))})}}class vt extends t4{get description(){return"Can publish video"}perform(){return p(this,void 0,void 0,function*(){var $;let Y=yield this.connect(),G=yield c30();yield this.checkForVideo(G.mediaStreamTrack),Y.localParticipant.publishTrack(G),yield new Promise((N)=>setTimeout(N,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((N)=>{if(N.type==="outbound-rtp"&&(N.kind==="video"||!N.kind&&N.mediaType==="video"))q+=N.packetsSent}),q===0)throw Error("Could not determine packets are sent");this.appendMessage("published ".concat(q," video packets"))})}checkForVideo($){return p(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,N,K,U;let M=document.createElement("canvas"),F=$.getSettings(),O=(N=(q=F.width)!==null&&q!==void 0?q:G.videoWidth)!==null&&N!==void 0?N:1280,L=(U=(K=F.height)!==null&&K!==void 0?K:G.videoHeight)!==null&&U!==void 0?U:720;M.width=O,M.height=L;let R=M.getContext("2d");R.drawImage(G,0,0);let D=R.getImageData(0,0,M.width,M.height).data,T=!0;for(let m=0;m<D.length;m+=4)if(D[m]!==0||D[m+1]!==0||D[m+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 jt extends t4{get description(){return"Resuming connection after interruption"}perform(){return p(this,void 0,void 0,function*(){var $;let Y=yield this.connect(),G=!1,H=!1,q,N=new Promise((M)=>{setTimeout(M,5000),q=M}),K=()=>{G=!0};Y.on(t.SignalReconnecting,K).on(t.Reconnecting,K).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 N,!G)throw Error("Did not attempt to reconnect");else if(!H||Y.state!==a0.Connected)throw this.appendWarning("reconnection is only possible in Redis-based configurations"),Error("Not able to reconnect")})}}class ft extends t4{get description(){return"Can connect via TURN"}perform(){return p(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 N1(this.url,this.token).getNextBestRegionUrl())!==null&&$!==void 0?$:this.url;let H=new DB,q=yield H.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15000},void 0,!0),N=!1,K=!1,U=!1;for(let M of q.iceServers)for(let F of M.urls){if(F.startsWith("turn:"))K=!0,U=!0;else if(F.startsWith("turns:"))K=!0,U=!0,N=!0;if(F.startsWith("stun:"))U=!0}if(!U)this.appendWarning("No STUN servers configured on server side.");else if(K&&!N)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)||K)yield this.room.connect(this.url,this.token,{rtcConfig:{iceTransportPolicy:"relay"}});else this.appendWarning("No TURN servers configured."),this.skip(),yield new Promise((M)=>setTimeout(M,0))})}}class gt extends t4{get description(){return"Establishing WebRTC connection"}perform(){return p(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,N)=>{if(q.candidate){let K=new RTCIceCandidate(q),U="".concat(K.protocol," ").concat(K.address,":").concat(K.port," ").concat(K.type);if(K.address){if(a30(K.address))U+=" (private)";else if(K.protocol==="tcp"&&K.tcpType==="passive")$=!0,U+=" (passive)";else if(K.protocol==="udp")Y=!0}this.appendMessage(U)}if(H)H(q,N)},(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(),i0.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 a30($){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 t4{get description(){return"Connecting to signal connection via WebSocket"}perform(){return p(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 DB,q;try{q=yield H.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15000},void 0,!0)}catch(N){if(XX(new URL(this.url))){this.appendMessage("Initial connection failed with error ".concat(N.message,". Retrying with region fallback"));let U=yield new N1(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 t30 extends A4.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:L5.IDLE,name:"",description:""}),$}updateCheck($,Y){this.checkResults.set($,Y),this.emit("checkUpdate",$,Y)}isSuccess(){return Array.from(this.checkResults.values()).every(($)=>$.status!==L5.FAILED)}getResults(){return Array.from(this.checkResults.values())}createAndRunCheck($){return p(this,void 0,void 0,function*(){let Y=this.getNextCheckId(),G=new $(this.url,this.token,this.options),H=(N)=>{this.updateCheck(Y,N)};G.on("update",H);let q=yield G.run();return G.off("update",H),q})}checkWebsocket(){return p(this,void 0,void 0,function*(){return this.createAndRunCheck(mt)})}checkWebRTC(){return p(this,void 0,void 0,function*(){return this.createAndRunCheck(gt)})}checkTURN(){return p(this,void 0,void 0,function*(){return this.createAndRunCheck(ft)})}checkReconnect(){return p(this,void 0,void 0,function*(){return this.createAndRunCheck(jt)})}checkPublishAudio(){return p(this,void 0,void 0,function*(){return this.createAndRunCheck(Dt)})}checkPublishVideo(){return p(this,void 0,void 0,function*(){return this.createAndRunCheck(vt)})}checkConnectionProtocol(){return p(this,void 0,void 0,function*(){let $=yield this.createAndRunCheck(Et);if($.data&&"protocol"in $.data){let Y=$.data;this.options.protocol=Y.protocol}return $})}checkCloudRegion(){return p(this,void 0,void 0,function*(){return this.createAndRunCheck(St)})}}function H1($,Y,G){return(Y=X70(Y))in $?Object.defineProperty($,Y,{value:G,enumerable:!0,configurable:!0,writable:!0}):$[Y]=G,$}function e30($,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 X70($){var Y=e30($,"string");return typeof Y=="symbol"?Y:Y+""}class l2 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(l2,"code","ERR_JOSE_GENERIC");class yt extends l2{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 l2{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 l2{constructor(){super(...arguments);H1(this,"code","ERR_JOSE_ALG_NOT_ALLOWED")}}H1(ht,"code","ERR_JOSE_ALG_NOT_ALLOWED");class ut extends l2{constructor(){super(...arguments);H1(this,"code","ERR_JOSE_NOT_SUPPORTED")}}H1(ut,"code","ERR_JOSE_NOT_SUPPORTED");class dt extends l2{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 l2{constructor(){super(...arguments);H1(this,"code","ERR_JWE_INVALID")}}H1(st,"code","ERR_JWE_INVALID");class lt extends l2{constructor(){super(...arguments);H1(this,"code","ERR_JWS_INVALID")}}H1(lt,"code","ERR_JWS_INVALID");class ct extends l2{constructor(){super(...arguments);H1(this,"code","ERR_JWT_INVALID")}}H1(ct,"code","ERR_JWT_INVALID");class it extends l2{constructor(){super(...arguments);H1(this,"code","ERR_JWK_INVALID")}}H1(it,"code","ERR_JWK_INVALID");class ot extends l2{constructor(){super(...arguments);H1(this,"code","ERR_JWKS_INVALID")}}H1(ot,"code","ERR_JWKS_INVALID");class rt extends l2{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 l2{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 l2{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 l2{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 $70=1000,bZ0=60*$70;var Mn;(function($){$[$.Reserved=0]="Reserved",$[$.TooLarge=1]="TooLarge"})(Mn||(Mn={}));var Fn=1,z8=2;var Z70=8;var kn;(function($){$[$.TooShort=0]="TooShort",$[$.HeaderOverrun=1]="HeaderOverrun",$[$.MissingExtWords=2]="MissingExtWords",$[$.UnsupportedVersion=3]="UnsupportedVersion",$[$.InvalidHandle=4]="InvalidHandle",$[$.MalformedExt=5]="MalformedExt"})(kn||(kn={}));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 RB;(function($){$[$.UserTimestamp=2]="UserTimestamp",$[$.E2ee=1]="E2ee"})(RB||(RB={}));class BU extends et{}class Q8 extends BU{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+=Z70;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=RB.UserTimestamp;Q8.lengthBytes=8;class G8 extends BU{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+=Fn;for(let q=0;q<this.iv.length;q+=1)$.setUint8(Y,this.iv[q]),Y+=Fn;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=RB.E2ee;G8.lengthBytes=13;var On;(function($){$[$.Start=0]="Start",$[$.Inter=1]="Inter",$[$.Final=2]="Final",$[$.Single=3]="Single"})(On||(On={}));var Q5=B(U1(),1);var PH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ke($){return $&&$.__esModule&&Object.prototype.hasOwnProperty.call($,"default")?$.default:$}var WU={exports:{}},Y70=WU.exports,Xe;function Q70(){return Xe||(Xe=1,function($){(function(Y,G){$.exports?$.exports=G():Y.log=G()})(Y70,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"],N={},K=null;function U(T,m){var g=T[m];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 M(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function F(T){return T==="debug"&&(T="log"),typeof console===G?!1:T==="trace"&&H?M:console[T]!==void 0?U(console,T):console.log!==void 0?U(console,"log"):Y}function O(){for(var T=this.getLevel(),m=0;m<q.length;m++){var g=q[m];this[g]=m<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 L(T){return function(){typeof console!==G&&(O.call(this),this[T].apply(this,arguments))}}function R(T,m,g){return F(T)||L.apply(this,arguments)}function C(T,m){var g=this,n,c,I,V="loglevel";typeof T=="string"?V+=":"+T:typeof T=="symbol"&&(V=void 0);function v(X0){var Y0=(q[X0]||"silent").toUpperCase();if(!(typeof window===G||!V)){try{window.localStorage[V]=Y0;return}catch{}try{window.document.cookie=encodeURIComponent(V)+"="+Y0+";"}catch{}}}function s(){var X0;if(!(typeof window===G||!V)){try{X0=window.localStorage[V]}catch{}if(typeof X0===G)try{var Y0=window.document.cookie,M0=encodeURIComponent(V),b0=Y0.indexOf(M0+"=");b0!==-1&&(X0=/^([^;]+)/.exec(Y0.slice(b0+M0.length+1))[1])}catch{}return g.levels[X0]===void 0&&(X0=void 0),X0}}function f(){if(!(typeof window===G||!V)){try{window.localStorage.removeItem(V)}catch{}try{window.document.cookie=encodeURIComponent(V)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function o(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=m||R,g.getLevel=function(){return I??c??n},g.setLevel=function(X0,Y0){return I=o(X0),Y0!==!1&&v(I),O.call(g)},g.setDefaultLevel=function(X0){c=o(X0),s()||g.setLevel(X0,!1)},g.resetLevel=function(){I=null,f(),O.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(K!==g&&(n=o(K.getLevel())),O.call(g),K===g)for(var X0 in N)N[X0].rebuild()},n=o(K?K.getLevel():"WARN");var u=s();u!=null&&(I=o(u)),O.call(g)}K=new C,K.getLogger=function(T){if(typeof T!="symbol"&&typeof T!="string"||T==="")throw TypeError("You must supply a name when creating a logger.");var m=N[T];return m||(m=N[T]=new C(T,K.methodFactory)),m};var D=typeof window!==G?window.log:void 0;return K.noConflict=function(){return typeof window!==G&&window.log===K&&(window.log=D),K},K.getLoggers=function(){return N},K.default=K,K})}(WU)),WU.exports}var G70=Q70(),H70=Ke(G70),UU=function($,Y){return UU=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])},UU($,Y)};function e4($,Y){if(typeof Y!="function"&&Y!==null)throw TypeError("Class extends value "+String(Y)+" is not a constructor or null");UU($,Y);function G(){this.constructor=$}$.prototype=Y===null?Object.create(Y):(G.prototype=Y.prototype,new G)}function z70($,Y,G,H){function q(N){return N instanceof G?N:new G(function(K){K(N)})}return new(G||(G=Promise))(function(N,K){function U(O){try{F(H.next(O))}catch(L){K(L)}}function M(O){try{F(H.throw(O))}catch(L){K(L)}}function F(O){O.done?N(O.value):q(O.value).then(U,M)}F((H=H.apply($,Y||[])).next())})}function We($,Y){var G={label:0,sent:function(){if(N[0]&1)throw N[1];return N[1]},trys:[],ops:[]},H,q,N,K=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return K.next=U(0),K.throw=U(1),K.return=U(2),typeof Symbol=="function"&&(K[Symbol.iterator]=function(){return this}),K;function U(F){return function(O){return M([F,O])}}function M(F){if(H)throw TypeError("Generator is already executing.");for(;K&&(K=0,F[0]&&(G=0)),G;)try{if(H=1,q&&(N=F[0]&2?q.return:F[0]?q.throw||((N=q.return)&&N.call(q),0):q.next)&&!(N=N.call(q,F[1])).done)return N;switch(q=0,N&&(F=[F[0]&2,N.value]),F[0]){case 0:case 1:N=F;break;case 4:return G.label++,{value:F[1],done:!1};case 5:G.label++,q=F[1],F=[0];continue;case 7:F=G.ops.pop(),G.trys.pop();continue;default:if(N=G.trys,!(N=N.length>0&&N[N.length-1])&&(F[0]===6||F[0]===2)){G=0;continue}if(F[0]===3&&(!N||F[1]>N[0]&&F[1]<N[3])){G.label=F[1];break}if(F[0]===6&&G.label<N[1]){G.label=N[1],N=F;break}if(N&&G.label<N[2]){G.label=N[2],G.ops.push(F);break}N[2]&&G.ops.pop(),G.trys.pop();continue}F=Y.call($,G)}catch(O){F=[6,O],q=0}finally{H=N=0}if(F[0]&5)throw F[1];return{value:F[0]?F[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,N=[],K;try{for(;(Y===void 0||Y-- >0)&&!(q=H.next()).done;)N.push(q.value)}catch(U){K={error:U}}finally{try{q&&!q.done&&(G=H.return)&&G.call(H)}finally{if(K)throw K.error}}return N}function UH($,Y,G){if(G||arguments.length===2)for(var H=0,q=Y.length,N;H<q;H++)(N||!(H in Y))&&(N||(N=Array.prototype.slice.call(Y,0,H)),N[H]=Y[H]);return $.concat(N||Array.prototype.slice.call(Y))}function $X($){return this instanceof $X?(this.v=$,this):new $X($)}function q70($,Y,G){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var H=G.apply($,Y||[]),q,N=[];return q=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),U("next"),U("throw"),U("return",K),q[Symbol.asyncIterator]=function(){return this},q;function K(C){return function(D){return Promise.resolve(D).then(C,L)}}function U(C,D){H[C]&&(q[C]=function(T){return new Promise(function(m,g){N.push([C,T,m,g])>1||M(C,T)})},D&&(q[C]=D(q[C])))}function M(C,D){try{F(H[C](D))}catch(T){R(N[0][3],T)}}function F(C){C.value instanceof $X?Promise.resolve(C.value.v).then(O,L):R(N[0][2],C)}function O(C){M("next",C)}function L(C){M("throw",C)}function R(C,D){C(D),N.shift(),N.length&&M(N[0][0],N[0][1])}}function B70($){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(N){G[N]=$[N]&&function(K){return new Promise(function(U,M){K=$[N](K),q(U,M,K.done,K.value)})}}function q(N,K,U,M){Promise.resolve(M).then(function(F){N({value:F,done:U})},K)}}function U2($){return typeof $=="function"}function kU($){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 JU=kU(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 hB($,Y){if($){var G=$.indexOf(Y);0<=G&&$.splice(G,1)}}var OH=function(){function $(Y){this.initialTeardown=Y,this.closed=!1,this._parentage=null,this._finalizers=null}return $.prototype.unsubscribe=function(){var Y,G,H,q,N;if(!this.closed){this.closed=!0;var K=this._parentage;if(K)if(this._parentage=null,Array.isArray(K))try{for(var U=ZX(K),M=U.next();!M.done;M=U.next()){var F=M.value;F.remove(this)}}catch(T){Y={error:T}}finally{try{M&&!M.done&&(G=U.return)&&G.call(U)}finally{if(Y)throw Y.error}}else K.remove(this);var O=this.initialTeardown;if(U2(O))try{O()}catch(T){N=T instanceof JU?T.errors:[T]}var L=this._finalizers;if(L){this._finalizers=null;try{for(var R=ZX(L),C=R.next();!C.done;C=R.next()){var D=C.value;try{$e(D)}catch(T){N=N??[],T instanceof JU?N=UH(UH([],WH(N)),WH(T.errors)):N.push(T)}}}catch(T){H={error:T}}finally{try{C&&!C.done&&(q=R.return)&&q.call(R)}finally{if(H)throw H.error}}}if(N)throw new JU(N)}},$.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)&&hB(G,Y)},$.prototype.remove=function(Y){var G=this._finalizers;G&&hB(G,Y),Y instanceof $&&Y._removeParent(this)},$.EMPTY=function(){var Y=new $;return Y.closed=!0,Y}(),$}(),Ue=OH.EMPTY;function Me($){return $ instanceof OH||$&&"closed"in $&&U2($.remove)&&U2($.add)&&U2($.unsubscribe)}function $e($){U2($)?$():$.unsubscribe()}var J70={Promise:void 0},A70={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 Fe($){A70.setTimeout(function(){throw $})}function MU(){}function bB($){$()}var PU=function($){e4(Y,$);function Y(G){var H=$.call(this)||this;return H.isStopped=!1,G?(H.destination=G,Me(G)&&G.add(H)):H.destination=W70,H}return Y.create=function(G,H,q){return new MH(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}(OH),N70=function(){function $(Y){this.partialObserver=Y}return $.prototype.next=function(Y){var G=this.partialObserver;if(G.next)try{G.next(Y)}catch(H){mB(H)}},$.prototype.error=function(Y){var G=this.partialObserver;if(G.error)try{G.error(Y)}catch(H){mB(H)}else mB(Y)},$.prototype.complete=function(){var Y=this.partialObserver;if(Y.complete)try{Y.complete()}catch(G){mB(G)}},$}(),MH=function($){e4(Y,$);function Y(G,H,q){var N=$.call(this)||this,K;return U2(G)||!G?K={next:G??void 0,error:H??void 0,complete:q??void 0}:K=G,N.destination=new N70(K),N}return Y}(PU);function mB($){Fe($)}function K70($){throw $}var W70={closed:!0,next:MU,error:K70,complete:MU},OU=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function LU($){return $}function U70($){return $.length===0?LU:$.length===1?$[0]:function(Y){return $.reduce(function(G,H){return H(G)},Y)}}var O2=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,N=F70(Y)?Y:new MH(Y,G,H);return bB(function(){var K=q,U=K.operator,M=K.source;N.add(U?U.call(N,M):M?q._subscribe(N):q._trySubscribe(N))}),N},$.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,N){var K=new MH({next:function(U){try{Y(U)}catch(M){N(M),K.unsubscribe()}},error:N,complete:q});H.subscribe(K)})},$.prototype._subscribe=function(Y){var G;return(G=this.source)===null||G===void 0?void 0:G.subscribe(Y)},$.prototype[OU]=function(){return this},$.prototype.pipe=function(){for(var Y=[],G=0;G<arguments.length;G++)Y[G]=arguments[G];return U70(Y)(this)},$.prototype.toPromise=function(Y){var G=this;return Y=Ze(Y),new Y(function(H,q){var N;G.subscribe(function(K){return N=K},function(K){return q(K)},function(){return H(N)})})},$.create=function(Y){return new $(Y)},$}();function Ze($){var Y;return(Y=$??J70.Promise)!==null&&Y!==void 0?Y:Promise}function M70($){return $&&U2($.next)&&U2($.error)&&U2($.complete)}function F70($){return $&&$ instanceof PU||M70($)&&Me($)}function k70($){return U2($==null?void 0:$.lift)}function N4($){return function(Y){if(k70(Y))return Y.lift(function(G){try{return $(G,this)}catch(H){this.error(H)}});throw TypeError("Unable to lift unknown Observable type")}}function M8($,Y,G,H,q){return new P70($,Y,G,H,q)}var P70=function($){e4(Y,$);function Y(G,H,q,N,K,U){var M=$.call(this,G)||this;return M.onFinalize=K,M.shouldUnsubscribe=U,M._next=H?function(F){try{H(F)}catch(O){G.error(O)}}:$.prototype._next,M._error=N?function(F){try{N(F)}catch(O){G.error(O)}finally{this.unsubscribe()}}:$.prototype._error,M._complete=q?function(){try{q()}catch(F){G.error(F)}finally{this.unsubscribe()}}:$.prototype._complete,M}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}(PU),O70=kU(function($){return function(){$(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),YX=function($){e4(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 O70},Y.prototype.next=function(G){var H=this;bB(function(){var q,N;if(H._throwIfClosed(),!H.isStopped){H.currentObservers||(H.currentObservers=Array.from(H.observers));try{for(var K=ZX(H.currentObservers),U=K.next();!U.done;U=K.next()){var M=U.value;M.next(G)}}catch(F){q={error:F}}finally{try{U&&!U.done&&(N=K.return)&&N.call(K)}finally{if(q)throw q.error}}}})},Y.prototype.error=function(G){var H=this;bB(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;bB(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,N=q.hasError,K=q.isStopped,U=q.observers;return N||K?Ue:(this.currentObservers=null,U.push(G),new OH(function(){H.currentObservers=null,hB(U,G)}))},Y.prototype._checkFinalizedStatuses=function(G){var H=this,q=H.hasError,N=H.thrownError,K=H.isStopped;q?G.error(N):K&&G.complete()},Y.prototype.asObservable=function(){var G=new O2;return G.source=this,G},Y.create=function(G,H){return new Ye(G,H)},Y}(O2),Ye=function($){e4(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),L70=function($){e4(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,N=G._value;if(H)throw q;return this._throwIfClosed(),N},Y.prototype.next=function(G){$.prototype.next.call(this,this._value=G)},Y}(YX),R70={now:function(){return Date.now()}},w70=function($){e4(Y,$);function Y(G,H){return $.call(this)||this}return Y.prototype.schedule=function(G,H){return this},Y}(OH),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},x70=function($){e4(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 N=this.id,K=this.scheduler;return N!=null&&(this.id=this.recycleAsyncId(K,N,H)),this.pending=!0,this.delay=H,this.id=(q=this.id)!==null&&q!==void 0?q:this.requestAsyncId(K,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,N;try{this.work(G)}catch(K){q=!0,N=K||Error("Scheduled action threw falsy error")}if(q)return this.unsubscribe(),N},Y.prototype.unsubscribe=function(){if(!this.closed){var G=this,H=G.id,q=G.scheduler,N=q.actions;this.work=this.state=this.scheduler=null,this.pending=!1,hB(N,this),H!=null&&(this.id=this.recycleAsyncId(q,H,null)),this.delay=null,$.prototype.unsubscribe.call(this)}},Y}(w70),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=R70.now,$}(),_70=function($){e4(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),lZ0=new _70(x70);function V70($){return $&&U2($.schedule)}function C70($){return $[$.length-1]}function ke($){return V70(C70($))?$.pop():void 0}var Pe=function($){return $&&typeof $.length=="number"&&typeof $!="function"};function Oe($){return U2($==null?void 0:$.then)}function Le($){return U2($[OU])}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 I70(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var xe=I70();function _e($){return U2($==null?void 0:$[xe])}function Ve($){return q70(this,arguments,function(){var Y,G,H,q;return We(this,function(N){switch(N.label){case 0:Y=$.getReader(),N.label=1;case 1:N.trys.push([1,,9,10]),N.label=2;case 2:return[4,$X(Y.read())];case 3:return G=N.sent(),H=G.value,q=G.done,q?[4,$X(void 0)]:[3,5];case 4:return[2,N.sent()];case 5:return[4,$X(H)];case 6:return[4,N.sent()];case 7:return N.sent(),[3,2];case 8:return[3,10];case 9:return Y.releaseLock(),[7];case 10:return[2]}})})}function Ce($){return U2($==null?void 0:$.getReader)}function F8($){if($ instanceof O2)return $;if($!=null){if(Le($))return T70($);if(Pe($))return p70($);if(Oe($))return S70($);if(Re($))return Ie($);if(_e($))return E70($);if(Ce($))return D70($)}throw we($)}function T70($){return new O2(function(Y){var G=$[OU]();if(U2(G.subscribe))return G.subscribe(Y);throw TypeError("Provided object does not correctly implement Symbol.observable")})}function p70($){return new O2(function(Y){for(var G=0;G<$.length&&!Y.closed;G++)Y.next($[G]);Y.complete()})}function S70($){return new O2(function(Y){$.then(function(G){Y.closed||(Y.next(G),Y.complete())},function(G){return Y.error(G)}).then(null,Fe)})}function E70($){return new O2(function(Y){var G,H;try{for(var q=ZX($),N=q.next();!N.done;N=q.next()){var K=N.value;if(Y.next(K),Y.closed)return}}catch(U){G={error:U}}finally{try{N&&!N.done&&(H=q.return)&&H.call(q)}finally{if(G)throw G.error}}Y.complete()})}function Ie($){return new O2(function(Y){v70($,Y).catch(function(G){return Y.error(G)})})}function D70($){return Ie(Ve($))}function v70($,Y){var G,H,q,N;return z70(this,void 0,void 0,function(){var K,U;return We(this,function(M){switch(M.label){case 0:M.trys.push([0,5,6,11]),G=B70($),M.label=1;case 1:return[4,G.next()];case 2:if(H=M.sent(),!!H.done)return[3,4];if(K=H.value,Y.next(K),Y.closed)return[2];M.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return U=M.sent(),q={error:U},[3,11];case 6:return M.trys.push([6,,9,10]),H&&!H.done&&(N=G.return)?[4,N.call(G)]:[3,8];case 7:M.sent(),M.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 I3($,Y,G,H,q){H===void 0&&(H=0),q===void 0&&(q=!1);var N=Y.schedule(function(){G(),q?$.add(this.schedule(null,H)):this.unsubscribe()},H);if($.add(N),!q)return N}function Te($,Y){return Y===void 0&&(Y=0),N4(function(G,H){G.subscribe(M8(H,function(q){return I3(H,$,function(){return H.next(q)},Y)},function(){return I3(H,$,function(){return H.complete()},Y)},function(q){return I3(H,$,function(){return H.error(q)},Y)}))})}function pe($,Y){return Y===void 0&&(Y=0),N4(function(G,H){H.add($.schedule(function(){return G.subscribe(H)},Y))})}function j70($,Y){return F8($).pipe(pe(Y),Te(Y))}function f70($,Y){return F8($).pipe(pe(Y),Te(Y))}function g70($,Y){return new O2(function(G){var H=0;return Y.schedule(function(){H===$.length?G.complete():(G.next($[H++]),G.closed||this.schedule())})})}function m70($,Y){return new O2(function(G){var H;return I3(G,Y,function(){H=$[xe](),I3(G,Y,function(){var q,N,K;try{q=H.next(),N=q.value,K=q.done}catch(U){G.error(U);return}K?G.complete():G.next(N)},0,!0)}),function(){return U2(H==null?void 0:H.return)&&H.return()}})}function Se($,Y){if(!$)throw Error("Iterable cannot be null");return new O2(function(G){I3(G,Y,function(){var H=$[Symbol.asyncIterator]();I3(G,Y,function(){H.next().then(function(q){q.done?G.complete():G.next(q.value)})},0,!0)})})}function y70($,Y){return Se(Ve($),Y)}function b70($,Y){if($!=null){if(Le($))return j70($,Y);if(Pe($))return g70($,Y);if(Oe($))return f70($,Y);if(Re($))return Se($,Y);if(_e($))return m70($,Y);if(Ce($))return y70($,Y)}throw we($)}function RU($,Y){return Y?b70($,Y):F8($)}var cZ0=kU(function($){return function(Y){Y===void 0&&(Y=null),$(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=Y}});function C5($,Y){return N4(function(G,H){var q=0;G.subscribe(M8(H,function(N){H.next($.call(Y,N,q++))}))})}function h70($,Y,G,H,q,N,K,U){var M=[],F=0,O=0,L=!1,R=function(){L&&!M.length&&!F&&Y.complete()},C=function(T){return F<H?D(T):M.push(T)},D=function(T){F++;var m=!1;F8(G(T,O++)).subscribe(M8(Y,function(g){Y.next(g)},function(){m=!0},void 0,function(){if(m)try{F--;for(var g=function(){var n=M.shift();K||D(n)};M.length&&F<H;)g();R()}catch(n){Y.error(n)}}))};return $.subscribe(M8(Y,C,function(){L=!0,R()})),function(){}}function Ee($,Y,G){return G===void 0&&(G=1/0),U2(Y)?Ee(function(H,q){return C5(function(N,K){return Y(H,N,q,K)})(F8($(H,q)))},G):(typeof Y=="number"&&(G=Y),N4(function(H,q){return h70(H,q,$,G)}))}function u70($){return Ee(LU,$)}function d70(){return u70(1)}function He(){for(var $=[],Y=0;Y<arguments.length;Y++)$[Y]=arguments[Y];return d70()(RU($,ke($)))}function De($,Y){return N4(function(G,H){var q=0;G.subscribe(M8(H,function(N){return $.call(Y,N,q++)&&H.next(N)}))})}function s70($,Y,G,H,q){return function(N,K){var U=G,M=Y,F=0;N.subscribe(M8(K,function(O){var L=F++;M=U?$(M,O,L):(U=!0,O),K.next(M)},q))}}function FU($,Y){return N4(s70($,Y,arguments.length>=2,!0))}function l70($){$===void 0&&($={});var Y=$.connector,G=Y===void 0?function(){return new YX}:Y,H=$.resetOnError,q=H===void 0?!0:H,N=$.resetOnComplete,K=N===void 0?!0:N,U=$.resetOnRefCountZero,M=U===void 0?!0:U;return function(F){var O,L,R,C=0,D=!1,T=!1,m=function(){L==null||L.unsubscribe(),L=void 0},g=function(){m(),O=R=void 0,D=T=!1},n=function(){var c=O;g(),c==null||c.unsubscribe()};return N4(function(c,I){C++,!T&&!D&&m();var V=R=R??G();I.add(function(){C--,C===0&&!T&&!D&&(L=AU(n,M))}),V.subscribe(I),!O&&C>0&&(O=new MH({next:function(v){return V.next(v)},error:function(v){T=!0,m(),L=AU(g,q,v),V.error(v)},complete:function(){D=!0,m(),L=AU(g,K),V.complete()}}),F8(c).subscribe(O))})(F)}}function AU($,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 MH({next:function(){q.unsubscribe(),$()}});return F8(Y.apply(void 0,UH([],WH(G)))).subscribe(q)}}function k8(){for(var $=[],Y=0;Y<arguments.length;Y++)$[Y]=arguments[Y];var G=ke($);return N4(function(H,q){(G?He($,H,G):He($,H)).subscribe(q)})}function ze($){return N4(function(Y,G){F8($).subscribe(M8(G,function(){return G.complete()},MU)),!G.closed&&Y.subscribe(G)})}function c70($,Y,G){var H=U2($)||Y||G?{next:$,error:Y,complete:G}:$;return H?N4(function(q,N){var K;(K=H.subscribe)===null||K===void 0||K.call(H);var U=!0;q.subscribe(M8(N,function(M){var F;(F=H.next)===null||F===void 0||F.call(H,M),N.next(M)},function(){var M;U=!1,(M=H.complete)===null||M===void 0||M.call(H),N.complete()},function(M){var F;U=!1,(F=H.error)===null||F===void 0||F.call(H,M),N.error(M)},function(){var M,F;U&&((M=H.unsubscribe)===null||M===void 0||M.call(H)),(F=H.finalize)===null||F===void 0||F.call(H)}))}):LU}var{defineProperty:i70,defineProperties:o70,getOwnPropertyDescriptors:r70,getOwnPropertySymbols:qe}=Object,n70=Object.prototype.hasOwnProperty,a70=Object.prototype.propertyIsEnumerable,Be=($,Y,G)=>(Y in $)?i70($,Y,{enumerable:!0,configurable:!0,writable:!0,value:G}):$[Y]=G,U8=($,Y)=>{for(var G in Y||(Y={}))n70.call(Y,G)&&Be($,G,Y[G]);if(qe)for(var G of qe(Y))a70.call(Y,G)&&Be($,G,Y[G]);return $},C3=($,Y)=>o70($,r70(Y)),FH=($,Y,G)=>new Promise((H,q)=>{var N=(M)=>{try{U(G.next(M))}catch(F){q(F)}},K=(M)=>{try{U(G.throw(M))}catch(F){q(F)}},U=(M)=>M.done?H(M.value):Promise.resolve(M.value).then(N,K);U((G=G.apply($,Y)).next())}),ve="lk";function LH($){return typeof $>"u"?!1:t70($)||e70($)}function t70($){var Y;return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&$.hasOwnProperty("track")&&typeof((Y=$.publication)==null?void 0:Y.track)<"u":!1}function e70($){return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&$.hasOwnProperty("publication")&&typeof $.publication<"u":!1}function XX0($){return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&typeof $.publication>"u":!1}function uB($){if(typeof $=="string"||typeof $=="number")return`${$}`;if(XX0($))return`${$.participant.identity}_${$.source}_placeholder`;if(LH($))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],je=[...$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],iZ0=[...YX0,Q0.LocalTrackPublished,Q0.LocalTrackUnpublished],v1=H70.getLogger("lk-components-js");v1.setDefaultLevel("WARN");function fe($,Y){var G;return C3(U8({},$),{receivedAtMediaTimestamp:(G=Y.rtpTimestamp)!=null?G:0,receivedAt:Y.timestamp})}function ge($,Y,G){return[...$,...Y].reduceRight((H,q)=>(H.find((N)=>N.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 wU($){return typeof $=="object"}function xU($){return Array.isArray($)&&$.filter(wU).length>0}function QX0($){return`${ve}-${$}`}function _U($){let Y=kH($),G=VU($.participant).pipe(C5(()=>kH($)),k8(Y));return{className:QX0($.source===e.Source.Camera||$.source===e.Source.ScreenShare?"participant-media-video":"participant-media-audio"),trackObserver:G}}function kH($){if(LH($))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 O2((G)=>{let H=()=>{G.next($)};return Y.forEach((q)=>{$.on(q,H)}),()=>{Y.forEach((q)=>{$.off(q,H)})}}).pipe(k8($))}function ye($,Y){return new O2((G)=>{let H=(...q)=>{G.next(q)};return $.on(Y,H),()=>{$.off(Y,H)}})}function be($){return ye($,t.ConnectionStateChanged).pipe(C5(([Y])=>Y),k8($.state))}function GX0($){return ye($,t.DataReceived)}function he($,...Y){return new O2((G)=>{let H=()=>{G.next($)};return Y.forEach((q)=>{$.on(q,H)}),()=>{Y.forEach((q)=>{$.off(q,H)})}}).pipe(k8($))}function VU($){return he($,Q0.TrackMuted,Q0.TrackUnmuted,Q0.ParticipantPermissionsChanged,Q0.TrackPublished,Q0.TrackUnpublished,Q0.LocalTrackPublished,Q0.LocalTrackUnpublished,Q0.MediaDevicesError,Q0.TrackSubscriptionStatusChanged).pipe(C5((Y)=>{let{isMicrophoneEnabled:G,isCameraEnabled:H,isScreenShareEnabled:q}=Y,N=Y.getTrackPublication(e.Source.Microphone),K=Y.getTrackPublication(e.Source.Camera);return{isCameraEnabled:H,isMicrophoneEnabled:G,isScreenShareEnabled:q,cameraTrack:K,microphoneTrack:N,participant:Y}}))}function HX0($,Y){return new O2((G)=>{let H=(...q)=>{G.next(q)};return $.on(Y,H),()=>{$.off(Y,H)}})}function ue($,Y={}){var G;let H,q=new O2((M)=>(H=M,()=>U.unsubscribe())).pipe(k8(Array.from($.remoteParticipants.values()))),N=(G=Y.additionalRoomEvents)!=null?G:je,K=Array.from(new Set([t.ParticipantConnected,t.ParticipantDisconnected,t.ConnectionStateChanged,...N])),U=me($,...K).subscribe((M)=>H==null?void 0:H.next(Array.from(M.remoteParticipants.values())));return $.remoteParticipants.size>0&&(H==null||H.next(Array.from($.remoteParticipants.values()))),q}function CU($){return typeof $>"u"?new O2:HX0($,Q0.AttributesChanged).pipe(C5(([Y])=>({changed:Y,attributes:$.attributes})),k8({changed:$.attributes,attributes:$.attributes}))}var IU={CHAT:"lk.chat",TRANSCRIPTION:"lk.transcription"},zX0={CHAT:"lk-chat-topic"};function de($,Y){return FH(this,arguments,function*(G,H,q={}){let{reliable:N,destinationIdentities:K,topic:U}=q;yield G.publishData(H,{destinationIdentities:K,topic:U,reliable:N})})}function se($,Y,G){let H=Array.isArray(Y)?Y:[Y],q=GX0($).pipe(De(([,,,U])=>Y===void 0||U!==void 0&&H.includes(U)),C5(([U,M,,F])=>{let O={payload:U,topic:F,from:M};return G==null||G(O),O})),N,K=new O2((U)=>{N=U});return{messageObservable:q,isSendingObservable:K,send:(U,...M)=>FH(this,[U,...M],function*(F,O={}){N.next(!0);try{yield de($.localParticipant,F,U8({topic:H[0]},O))}finally{N.next(!1)}})}}var yB=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,N,K,U;let M=()=>{var V,v,s;return((V=$.serverInfo)==null?void 0:V.edition)===1||!!((v=$.serverInfo)!=null&&v.version)&&Y5((s=$.serverInfo)==null?void 0:s.version,"1.8.2")>0},F=new YX,O=(G=Y==null?void 0:Y.channelTopic)!=null?G:IU.CHAT,L=(H=Y==null?void 0:Y.channelTopic)!=null?H:zX0.CHAT,R=!1;yB.has($)||(R=!0);let C=(q=yB.get($))!=null?q:new Map,D=(N=C.get(O))!=null?N:new YX;C.set(O,D),yB.set($,C);let T=(K=Y==null?void 0:Y.messageDecoder)!=null?K:BX0;if(R){$.registerTextStreamHandler(O,(v,s)=>FH(this,null,function*(){let{id:f,timestamp:o}=v.info;RU(v).pipe(FU((u,X0)=>u+X0),C5((u)=>({id:f,timestamp:o,message:u,from:$.getParticipantByIdentity(s.identity),type:"chatMessage"}))).subscribe({next:(u)=>D.next(u)})}));let{messageObservable:V}=se($,[L]);V.pipe(C5((v)=>{let s=T(v.payload);return qX0(s)?void 0:C3(U8({},s),{type:"chatMessage",from:v.from})}),De((v)=>!!v),ze(F)).subscribe(D)}let m=D.pipe(FU((V,v)=>{if("id"in v&&V.find((s)=>{var f,o;return((f=s.from)==null?void 0:f.identity)===((o=v.from)==null?void 0:o.identity)&&s.id===v.id})){let s=V.findIndex((f)=>f.id===v.id);if(s>-1){let f=V[s];V[s]=C3(U8({},v),{timestamp:f.timestamp,editTimestamp:v.timestamp})}return[...V]}return[...V,v]},[]),ze(F)),g=new L70(!1),n=(U=Y==null?void 0:Y.messageEncoder)!=null?U:JX0,c=(V,v)=>FH(this,null,function*(){var s;v||(v={}),(s=v.topic)!=null||(v.topic=O),g.next(!0);try{let f={id:(yield $.localParticipant.sendText(V,v)).id,timestamp:Date.now(),message:V},o=C3(U8({},f),{attachedFiles:v.attachments}),u=C3(U8({},o),{type:"chatMessage",from:$.localParticipant,attributes:v.attributes});D.next(u);let X0=n(C3(U8({},f),{ignoreLegacy:M()}));try{yield de($.localParticipant,X0,{reliable:!0,topic:L})}catch(Y0){v1.info("could not send message in legacy chat format",Y0)}return u}finally{g.next(!1)}});function I(){F.next(),F.complete(),D.complete(),yB.delete($),$.unregisterTextStreamHandler(O)}return $.once(t.Disconnected,I),{messageObservable:m,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((N)=>{Y.forEach((K)=>{let U=Array.from(N.trackPublications.values()).filter((M)=>M.source===K&&(!G||M.track)).map((M)=>({participant:N,publication:M,source:M.source}));q.push(...U)})}),{trackReferences:q,participants:H}}function Ae($,Y,G=!1){let{sources:H,kind:q,name:N}=Y;return Array.from($.trackPublications.values()).filter((K)=>(!H||H.includes(K.source))&&(!q||K.kind===q)&&(!N||K.trackName===N)&&(!G||K.track)).map((K)=>({participant:$,publication:K,source:K.source}))}function ie($,Y,G){var H,q;let N=(H=G.additionalRoomEvents)!=null?H:je,K=(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,...N]).values());return me($,...U).pipe(C5((M)=>{let F=Je(M,Y,K);return v1.debug(`TrackReference[] was updated. (length ${F.trackReferences.length})`,F),F}),k8(Je($,Y,K)))}function oe($,Y){return he($,...ZX0).pipe(C5((G)=>{let H=Ae(G,Y);return v1.debug(`TrackReference[] was updated. (length ${H.length})`,H),H}),k8(Ae($,Y)))}function re($,Y){return new O2((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(C5(([Y])=>Y))}function AX0($,Y){if(typeof localStorage>"u"){v1.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){v1.error(`Error setting item to local storage: ${G}`)}}function NX0($){if(typeof localStorage>"u"){v1.error("Local storage is not available.");return}try{let Y=localStorage.getItem($);if(!Y){v1.warn(`Item with key ${$} does not exist in local storage.`);return}return JSON.parse(Y)}catch(Y){v1.error(`Error getting item from local storage: ${Y}`);return}}function KX0($){return{load:()=>NX0($),save:(Y)=>AX0($,Y)}}var WX0=`${ve}-user-choices`;var{load:oZ0,save:rZ0}=KX0(WX0);var NU=null,KU=null,UX0=0;function Ne(){return NU||(NU=new Map),NU}function MX0(){return KU||(KU=new WeakMap),KU}function FX0($,Y){let G=MX0(),H=G.get($);return H||(H=`room_${UX0++}`,G.set($,H)),`${H}:${Y}`}function te($,Y){let G=FX0($,Y),H=Ne(),q=H.get(G);if(q)return q;let N=new YX,K=[],U="lk.segment_id",M=N.pipe(c70({subscribe:()=>{$.registerTextStreamHandler(Y,(F,O)=>FH(this,null,function*(){var L;let R=RU(F).pipe(FU((D,T)=>D+T,"")),C=!!((L=F.info.attributes)!=null&&L[U]);R.subscribe((D)=>{let T=K.findIndex((m)=>{var g,n;return m.streamInfo.id===F.info.id||C&&((g=m.streamInfo.attributes)==null?void 0:g[U])===((n=F.info.attributes)==null?void 0:n[U])});T!==-1?(K[T]=C3(U8({},K[T]),{text:D}),N.next([...K])):(K.push({text:D,participantInfo:O,streamInfo:F.info}),N.next([...K]))})}))},finalize:()=>{$.unregisterTextStreamHandler(Y)}}),l70());return H.set(G,M),$.on(t.Disconnected,()=>{Ne().delete(G),K=[],N.next([])}),M}var kX0=Q5.createContext(void 0);var ee=Q5.createContext(void 0);function X00(){return Q5.useContext(ee)}function TU($){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=Q5.createContext(void 0);function dB(){return Q5.useContext($00)}var sB=Q5.createContext(void 0);function pU(){return Q5.useContext(sB)}function P8($){let Y=pU(),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=Q5.createContext(void 0);var Z00=Q5.createContext(void 0);var M2=B(U1(),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 OX0(){for(var $,Y,G=0,H="",q=arguments.length;G<q;G++)($=arguments[G])&&(Y=Y00($))&&(H&&(H+=" "),H+=Y);return H}function LX0(...$){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 N=Y[q],K=H[q];typeof N=="function"&&typeof K=="function"&&q[0]==="o"&&q[1]==="n"&&q.charCodeAt(2)>=65&&q.charCodeAt(2)<=90?Y[q]=LX0(N,K):(q==="className"||q==="UNSAFE_className")&&typeof N=="string"&&typeof K=="string"?Y[q]=OX0(N,K):Y[q]=K!==void 0?K:N}}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:N,connect:K,audio:U,video:M,screen:F,onConnected:O,onDisconnected:L,onError:R,onMediaDeviceFailure:C,onEncryptionError:D,simulateParticipants:T,...m}={...xX0,...$};H&&q&&v1.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,n]=M2.useState(),c=M2.useRef(K);M2.useEffect(()=>{n(q??new n4(H))},[q,JSON.stringify(H,wX0)]);let I=M2.useMemo(()=>{let{className:V}=ce();return Q00(m,{className:V})},[m]);return M2.useEffect(()=>{if(!g)return;let V=()=>{let u=g.localParticipant;v1.debug("trying to publish local tracks"),Promise.all([u.setMicrophoneEnabled(!!U,typeof U!="boolean"?U:void 0),u.setCameraEnabled(!!M,typeof M!="boolean"?M:void 0),u.setScreenShareEnabled(!!F,typeof F!="boolean"?F:void 0)]).catch((X0)=>{v1.warn(X0),R==null||R(X0)})},v=(u,X0)=>{let Y0=e7.getFailure(u);C==null||C(Y0,X0)},s=(u)=>{D==null||D(u)},f=(u)=>{L==null||L(u)},o=()=>{O==null||O()};return g.on(t.SignalConnected,V).on(t.MediaDevicesError,v).on(t.EncryptionError,s).on(t.Disconnected,f).on(t.Connected,o),()=>{g.off(t.SignalConnected,V).off(t.MediaDevicesError,v).off(t.EncryptionError,s).off(t.Disconnected,f).off(t.Connected,o)}},[g,U,M,F,R,D,C,O,L]),M2.useEffect(()=>{if(g){if(T){g.simulateParticipants({participants:{count:T},publish:{audio:!0,useRealTracks:!0}});return}if(K){if(c.current=!0,v1.debug("connecting"),!Y){v1.debug("no token yet");return}if(!G){v1.warn("no livekit url provided"),R==null||R(Error("no livekit url provided"));return}g.connect(G,Y,N).catch((V)=>{v1.warn(V),c.current===!0&&(R==null||R(V))})}else v1.debug("disconnecting because connect is false"),c.current=!1,g.disconnect()}},[K,Y,JSON.stringify(N),g,R,G,T]),M2.useEffect(()=>{if(g)return()=>{v1.info("disconnecting on onmount"),g.disconnect()}},[g]),{room:g,htmlProps:I}}var SU=M2.forwardRef(function($,Y){let{room:G,htmlProps:H}=H00($);return M2.createElement("div",{ref:Y,...H},G&&M2.createElement(sB.Provider,{value:G},M2.createElement(Z00.Provider,{value:$.featureFlags},$.children)))});function O8($,Y,G=!0){let[H,q]=z1.useState(Y);return z1.useEffect(()=>{if(G&&q(Y),typeof window>"u"||!$)return;let N=$.subscribe(q);return()=>N.unsubscribe()},[$,G]),H}function T3($){let Y=P8($),G=z1.useMemo(()=>be(Y),[Y]);return O8(G,Y.state)}function K4($={}){let Y=P8($.room),[G,H]=z1.useState(Y.localParticipant),[q,N]=z1.useState(G.isMicrophoneEnabled),[K,U]=z1.useState(G.isCameraEnabled),[M,F]=z1.useState(G.isScreenShareEnabled),[O,L]=z1.useState(G.lastMicrophoneError),[R,C]=z1.useState(G.lastCameraError),[D,T]=z1.useState(void 0),[m,g]=z1.useState(void 0),n=(c)=>{U(c.isCameraEnabled),N(c.isMicrophoneEnabled),F(c.isScreenShareEnabled),g(c.cameraTrack),T(c.microphoneTrack),L(c.participant.lastMicrophoneError),C(c.participant.lastCameraError),H(c.participant)};return z1.useEffect(()=>{let c=VU(Y.localParticipant).subscribe(n);return()=>c.unsubscribe()},[Y]),{isMicrophoneEnabled:q,isScreenShareEnabled:M,isCameraEnabled:K,microphoneTrack:D,cameraTrack:m,lastMicrophoneError:O,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}=K4($);return z1.useMemo(()=>[G,...Y],[G,Y])}function DU($=[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([]),[N,K]=z1.useState([]),U=z1.useMemo(()=>$.map((M)=>wU(M)?M.source:M),[JSON.stringify($)]);return z1.useEffect(()=>{let M=ie(G,U,{additionalRoomEvents:Y.updateOnlyOn,onlySubscribed:Y.onlySubscribed}).subscribe(({trackReferences:F,participants:O})=>{v1.debug("setting track bundles",F,O),q(F),K(O)});return()=>M.unsubscribe()},[G,JSON.stringify(Y.onlySubscribed),JSON.stringify(Y.updateOnlyOn),JSON.stringify($)]),z1.useMemo(()=>{if(xU($)){let M=pX0($,N),F=Array.from(H);return N.forEach((O)=>{M.has(O.identity)&&(M.get(O.identity)??[]).forEach((L)=>{if(H.find(({participant:C,publication:D})=>O.identity===C.identity&&D.source===L))return;v1.debug(`Add ${L} placeholder for participant ${O.identity}.`);let R={participant:O,source:L};F.push(R)})}),F}else return H},[H,N,$])}function TX0($,Y){let G=new Set($);for(let H of Y)G.delete(H);return G}function pX0($,Y){let G=new Map;if(xU($)){let H=$.filter((q)=>q.withPlaceholder).map((q)=>q.source);Y.forEach((q)=>{let N=q.getTrackPublications().map((U)=>{var M;return(M=U.track)==null?void 0:M.source}).filter((U)=>U!==void 0),K=Array.from(TX0(new Set(H),new Set(N)));K.length>0&&G.set(q.identity,K)})}return G}function vU($){let Y=P8($==null?void 0:$.room),G=T3(Y),H=z1.useMemo(()=>G===a0.Disconnected,[G]),q=z1.useMemo(()=>le(Y,$),[Y,$,H]),N=O8(q.isSendingObservable,!1),K=O8(q.messageObservable,[]);return{send:q.send,chatMessages:K,isSending:N}}function EU($,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=dB(),N=B00({room:H,updateOnlyOn:[]}),K=z1.useMemo(()=>G?N.find((M)=>M.identity===G):q,[G,N,q]),U=z1.useMemo(()=>{if(K)return oe(K,{sources:$})},[K,JSON.stringify($)]);return O8(U,[])}function SX0($){var Y,G,H;let q=z1.useMemo(()=>{var N;return(N=$==null?void 0:$.publication)!=null&&N.track?ae($==null?void 0:$.publication.track):void 0},[(Y=$==null?void 0:$.publication)==null?void 0:Y.track]);return O8(q,{timestamp:Date.now(),rtpTimestamp:(H=(G=$==null?void 0:$.publication)==null?void 0:G.track)==null?void 0:H.rtpTimestamp})}var EX0={bufferSize:100};function J00($,Y){let G={...EX0,...Y},[H,q]=z1.useState([]),N=SX0($),K=(U)=>{var M;(M=G.onTranscription)==null||M.call(G,U),q((F)=>ge(F,U.map((O)=>fe(O,N)),G.bufferSize))};return z1.useEffect(()=>{if(!($!=null&&$.publication))return;let U=ne($.publication).subscribe((M)=>{K(...M)});return()=>{U.unsubscribe()}},[$&&uB($),K]),{segments:H}}function A00($={}){let Y=dB(),G=$.participant??Y,H=z1.useMemo(()=>G?CU(G):CU(G),[G]);return O8(H,{attributes:G==null?void 0:G.attributes})}var z00=QX.AgentState;function wH(){let $=RH(),Y=$.find((L)=>L.kind===N8.AGENT&&!(QX.PublishOnBehalf in L.attributes)),G=$.find((L)=>L.kind===N8.AGENT&&L.attributes[QX.PublishOnBehalf]===(Y==null?void 0:Y.identity)),H=EU([e.Source.Microphone,e.Source.Camera],Y==null?void 0:Y.identity),q=EU([e.Source.Microphone,e.Source.Camera],G==null?void 0:G.identity),N=H.find((L)=>L.source===e.Source.Microphone)??q.find((L)=>L.source===e.Source.Microphone),K=H.find((L)=>L.source===e.Source.Camera)??q.find((L)=>L.source===e.Source.Camera),{segments:U}=J00(N),M=T3(),{attributes:F}=A00({participant:Y}),O=z1.useMemo(()=>M===a0.Disconnected?"disconnected":M===a0.Connecting||!Y||!(F!=null&&F[z00])?"connecting":F[z00],[F,Y,M]);return{agent:Y,state:O,audioTrack:N,videoTrack:K,agentTranscriptions:U,agentAttributes:F}}function N00($,Y){let G=P8(Y==null?void 0:Y.room),H=T3(G)===a0.Disconnected,q=z1.useMemo(()=>te(G,$),[G,$]);return{textStreams:O8(H?void 0:q,[])}}function jU($){let{participantIdentities:Y,trackSids:G}=$??{},{textStreams:H}=N00(IU.TRANSCRIPTION,{room:$==null?void 0:$.room});return z1.useMemo(()=>H.filter((q)=>Y?Y.includes(q.participantInfo.identity):!0).filter((q)=>{var N;return G?G.includes(((N=q.streamInfo.attributes)==null?void 0:N[QX.TranscribedTrackId])??""):!0}),[H,Y,G])}var lB={exports:{}},q00;function DX0(){if(q00)return lB.exports;q00=1;var $=typeof Reflect=="object"?Reflect:null,Y=$&&typeof $.apply=="function"?$.apply:function(I,V,v){return Function.prototype.apply.call(I,V,v)},G;$&&typeof $.ownKeys=="function"?G=$.ownKeys:Object.getOwnPropertySymbols?G=function(I){return Object.getOwnPropertyNames(I).concat(Object.getOwnPropertySymbols(I))}:G=function(I){return Object.getOwnPropertyNames(I)};function H(I){console&&console.warn&&console.warn(I)}var q=Number.isNaN||function(I){return I!==I};function N(){N.init.call(this)}lB.exports=N,lB.exports.once=g,N.EventEmitter=N,N.prototype._events=void 0,N.prototype._eventsCount=0,N.prototype._maxListeners=void 0;var K=10;function U(I){if(typeof I!="function")throw TypeError('The "listener" argument must be of type Function. Received type '+typeof I)}Object.defineProperty(N,"defaultMaxListeners",{enumerable:!0,get:function(){return K},set:function(I){if(typeof I!="number"||I<0||q(I))throw RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+I+".");K=I}}),N.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},N.prototype.setMaxListeners=function(I){if(typeof I!="number"||I<0||q(I))throw RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+I+".");return this._maxListeners=I,this};function M(I){return I._maxListeners===void 0?N.defaultMaxListeners:I._maxListeners}N.prototype.getMaxListeners=function(){return M(this)},N.prototype.emit=function(I){for(var V=[],v=1;v<arguments.length;v++)V.push(arguments[v]);var s=I==="error",f=this._events;if(f!==void 0)s=s&&f.error===void 0;else if(!s)return!1;if(s){var o;if(V.length>0&&(o=V[0]),o instanceof Error)throw o;var u=Error("Unhandled error."+(o?" ("+o.message+")":""));throw u.context=o,u}var X0=f[I];if(X0===void 0)return!1;if(typeof X0=="function")Y(X0,this,V);else for(var Y0=X0.length,M0=D(X0,Y0),v=0;v<Y0;++v)Y(M0[v],this,V);return!0};function F(I,V,v,s){var f,o,u;if(U(v),o=I._events,o===void 0?(o=I._events=Object.create(null),I._eventsCount=0):(o.newListener!==void 0&&(I.emit("newListener",V,v.listener?v.listener:v),o=I._events),u=o[V]),u===void 0)u=o[V]=v,++I._eventsCount;else if(typeof u=="function"?u=o[V]=s?[v,u]:[u,v]:s?u.unshift(v):u.push(v),f=M(I),f>0&&u.length>f&&!u.warned){u.warned=!0;var X0=Error("Possible EventEmitter memory leak detected. "+u.length+" "+String(V)+" listeners added. Use emitter.setMaxListeners() to increase limit");X0.name="MaxListenersExceededWarning",X0.emitter=I,X0.type=V,X0.count=u.length,H(X0)}return I}N.prototype.addListener=function(I,V){return F(this,I,V,!1)},N.prototype.on=N.prototype.addListener,N.prototype.prependListener=function(I,V){return F(this,I,V,!0)};function O(){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 L(I,V,v){var s={fired:!1,wrapFn:void 0,target:I,type:V,listener:v},f=O.bind(s);return f.listener=v,s.wrapFn=f,f}N.prototype.once=function(I,V){return U(V),this.on(I,L(this,I,V)),this},N.prototype.prependOnceListener=function(I,V){return U(V),this.prependListener(I,L(this,I,V)),this},N.prototype.removeListener=function(I,V){var v,s,f,o,u;if(U(V),s=this._events,s===void 0)return this;if(v=s[I],v===void 0)return this;if(v===V||v.listener===V)--this._eventsCount===0?this._events=Object.create(null):(delete s[I],s.removeListener&&this.emit("removeListener",I,v.listener||V));else if(typeof v!="function"){for(f=-1,o=v.length-1;o>=0;o--)if(v[o]===V||v[o].listener===V){u=v[o].listener,f=o;break}if(f<0)return this;f===0?v.shift():T(v,f),v.length===1&&(s[I]=v[0]),s.removeListener!==void 0&&this.emit("removeListener",I,u||V)}return this},N.prototype.off=N.prototype.removeListener,N.prototype.removeAllListeners=function(I){var V,v,s;if(v=this._events,v===void 0)return this;if(v.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):v[I]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete v[I]),this;if(arguments.length===0){var f=Object.keys(v),o;for(s=0;s<f.length;++s)o=f[s],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(V=v[I],typeof V=="function")this.removeListener(I,V);else if(V!==void 0)for(s=V.length-1;s>=0;s--)this.removeListener(I,V[s]);return this};function R(I,V,v){var s=I._events;if(s===void 0)return[];var f=s[V];return f===void 0?[]:typeof f=="function"?v?[f.listener||f]:[f]:v?m(f):D(f,f.length)}N.prototype.listeners=function(I){return R(this,I,!0)},N.prototype.rawListeners=function(I){return R(this,I,!1)},N.listenerCount=function(I,V){return typeof I.listenerCount=="function"?I.listenerCount(V):C.call(I,V)},N.prototype.listenerCount=C;function C(I){var V=this._events;if(V!==void 0){var v=V[I];if(typeof v=="function")return 1;if(v!==void 0)return v.length}return 0}N.prototype.eventNames=function(){return this._eventsCount>0?G(this._events):[]};function D(I,V){for(var v=Array(V),s=0;s<V;++s)v[s]=I[s];return v}function T(I,V){for(;V+1<I.length;V++)I[V]=I[V+1];I.pop()}function m(I){for(var V=Array(I.length),v=0;v<V.length;++v)V[v]=I[v].listener||I[v];return V}function g(I,V){return new Promise(function(v,s){function f(u){I.removeListener(V,o),s(u)}function o(){typeof I.removeListener=="function"&&I.removeListener("error",f),v([].slice.call(arguments))}c(I,V,o,{once:!0}),V!=="error"&&n(I,f,{once:!0})})}function n(I,V,v){typeof I.on=="function"&&c(I,"error",V,v)}function c(I,V,v,s){if(typeof I.on=="function")s.once?I.once(V,v):I.on(V,v);else if(typeof I.addEventListener=="function")I.addEventListener(V,function f(o){s.once&&I.removeEventListener(V,f),v(o)});else throw TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof I)}return lB.exports}var hY0=DX0();var k1=B(U1(),1),iB=B(U1(),1);function tX0($,Y={}){let[G,H]=k1.useState(kH($)),[q,N]=k1.useState(G==null?void 0:G.isMuted),[K,U]=k1.useState(G==null?void 0:G.isSubscribed),[M,F]=k1.useState(G==null?void 0:G.track),[O,L]=k1.useState("landscape"),R=k1.useRef(),{className:C,trackObserver:D}=k1.useMemo(()=>_U($),[$.participant.sid??$.participant.identity,$.source,LH($)&&$.publication.trackSid]);return k1.useEffect(()=>{let T=D.subscribe((m)=>{v1.debug("update track",m),H(m),N(m==null?void 0:m.isMuted),U(m==null?void 0:m.isSubscribed),F(m==null?void 0:m.track)});return()=>T==null?void 0:T.unsubscribe()},[D]),k1.useEffect(()=>{var T,m;return M&&(R.current&&M.detach(R.current),(T=Y.element)!=null&&T.current&&!($.participant.isLocal&&(M==null?void 0:M.kind)==="audio")&&M.attach(Y.element.current)),R.current=(m=Y.element)==null?void 0:m.current,()=>{R.current&&(M==null||M.detach(R.current))}},[M,Y.element]),k1.useEffect(()=>{var T,m;if(typeof((T=G==null?void 0:G.dimensions)==null?void 0:T.width)=="number"&&typeof((m=G==null?void 0:G.dimensions)==null?void 0:m.height)=="number"){let g=G.dimensions.width>G.dimensions.height?"landscape":"portrait";L(g)}},[G]),{publication:G,isMuted:q,isSubscribed:K,track:M,elementProps:G00(Y.props,{className:C,"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":O}})}}var fU,K00;function eX0(){if(K00)return fU;K00=1;var $="Expected a function",Y=NaN,G="[object Symbol]",H=/^\s+|\s+$/g,q=/^[-+]0x[0-9a-f]+$/i,N=/^0b[01]+$/i,K=/^0o[0-7]+$/i,U=parseInt,M=typeof PH=="object"&&PH&&PH.Object===Object&&PH,F=typeof self=="object"&&self&&self.Object===Object&&self,O=M||F||Function("return this")(),L=Object.prototype,R=L.toString,C=Math.max,D=Math.min,T=function(){return O.Date.now()};function m(V,v,s){var f,o,u,X0,Y0,M0,b0=0,G0=!1,K0=!1,P0=!0;if(typeof V!="function")throw TypeError($);v=I(v)||0,g(s)&&(G0=!!s.leading,K0=("maxWait"in s),u=K0?C(I(s.maxWait)||0,v):u,P0=("trailing"in s)?!!s.trailing:P0);function J0(O0){var x1=f,i1=o;return f=o=void 0,b0=O0,X0=V.apply(i1,x1),X0}function v0(O0){return b0=O0,Y0=setTimeout(_0,v),G0?J0(O0):X0}function c1(O0){var x1=O0-M0,i1=O0-b0,q6=v-x1;return K0?D(q6,u-i1):q6}function Z0(O0){var x1=O0-M0,i1=O0-b0;return M0===void 0||x1>=v||x1<0||K0&&i1>=u}function _0(){var O0=T();if(Z0(O0))return C0(O0);Y0=setTimeout(_0,c1(O0))}function C0(O0){return Y0=void 0,P0&&f?J0(O0):(f=o=void 0,X0)}function I0(){Y0!==void 0&&clearTimeout(Y0),b0=0,f=M0=o=Y0=void 0}function g1(){return Y0===void 0?X0:C0(T())}function z6(){var O0=T(),x1=Z0(O0);if(f=arguments,o=this,M0=O0,x1){if(Y0===void 0)return v0(M0);if(K0)return Y0=setTimeout(_0,v),J0(M0)}return Y0===void 0&&(Y0=setTimeout(_0,v)),X0}return z6.cancel=I0,z6.flush=g1,z6}function g(V){var v=typeof V;return!!V&&(v=="object"||v=="function")}function n(V){return!!V&&typeof V=="object"}function c(V){return typeof V=="symbol"||n(V)&&R.call(V)==G}function I(V){if(typeof V=="number")return V;if(c(V))return Y;if(g(V)){var v=typeof V.valueOf=="function"?V.valueOf():V;V=g(v)?v+"":v}if(typeof V!="string")return V===0?V:+V;V=V.replace(H,"");var s=N.test(V);return s||K.test(V)?U(V.slice(2),s?2:8):q.test(V)?Y:+V}return fU=m,fU}var ZQ0=eX0();var W00=k1.forwardRef(function({trackRef:$,onSubscriptionStatusChanged:Y,volume:G,...H},q){let N=TU($),K=k1.useRef(null);k1.useImperativeHandle(q,()=>K.current);let{elementProps:U,isSubscribed:M,track:F,publication:O}=tX0(N,{element:K,props:H});return k1.useEffect(()=>{Y==null||Y(!!M)},[M,Y]),k1.useEffect(()=>{F===void 0||G===void 0||(F instanceof jB?F.setVolume(G):v1.warn("Volume can only be set on remote audio tracks."))},[G,F]),k1.useEffect(()=>{O===void 0||H.muted===void 0||(O instanceof gB?O.setEnabled(!H.muted):v1.warn("Can only call setEnabled on remote track publications."))},[H.muted,O,F]),k1.createElement("audio",{ref:K,...U})});var X$0=1.6,YQ0=(1-X$0)*-1;function gU({room:$,volume:Y,muted:G}){let H=DU([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 k1.createElement("div",{style:{display:"none"}},H.map((q)=>k1.createElement(W00,{key:uB(q),trackRef:q,volume:Y,muted:G})))}var b2=B(U1(),1);var U00=B(U1(),1),oB=U00.createContext(null);var G5=B(U1(),1),mU="https://specialist.skippr.ai/api";function bU($){return`skippr_auth_${$}`}function $$0($){try{return localStorage.getItem(bU($))}catch{return null}}function Z$0($,Y){try{localStorage.setItem(bU($),Y)}catch(G){console.error("[Skippr] Failed to persist auth token:",G)}}function yU($){try{localStorage.removeItem(bU($))}catch(Y){console.error("[Skippr] Failed to clear auth token:",Y)}}function M00({appKey:$}){let[Y,G]=G5.useState(null),[H,q]=G5.useState(!1),[N,K]=G5.useState(!1),[U,M]=G5.useState(""),F=Y!==null;G5.useEffect(()=>{if(!$)return;let C=$$0($);if(!C)return;async function D(){q(!0);try{if((await fetch(`${mU}/v1/auth/validate-token`,{credentials:"omit",headers:{Authorization:`Bearer ${C}`}})).ok)G(C);else yU($)}catch{yU($)}finally{q(!1)}}D()},[$]),G5.useEffect(()=>{function C(){G(null),M("")}return window.addEventListener("skippr:logout",C),()=>window.removeEventListener("skippr:logout",C)},[]);let O=G5.useCallback(async(C)=>{if(!$)return!1;K(!0),M("");try{let D=await fetch(`${mU}/v1/auth/request-otp`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json","X-App-Key":$},body:JSON.stringify({email:C})});if(!D.ok){let T=await D.json().catch(()=>({}));throw Error(T.detail||"Failed to send verification code")}return!0}catch(D){return M(D instanceof Error?D.message:"Failed to send verification code"),!1}finally{K(!1)}},[$]),L=G5.useCallback(async(C,D)=>{if(!$)return;K(!0),M("");try{let T=await fetch(`${mU}/v1/auth/verify-otp`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json","X-App-Key":$},body:JSON.stringify({email:C,code:D,recaptchaToken:"sdk"})});if(!T.ok){let g=await T.json().catch(()=>({}));throw Error(g.detail||"Invalid or expired verification code")}let{token:m}=await T.json();Z$0($,m),G(m)}catch(T){M(T instanceof Error?T.message:"Verification failed");return}finally{K(!1)}},[$]),R=G5.useCallback(()=>{if($)yU($);G(null),M("")},[$]);return{isAuthenticated:F,isValidating:H,authToken:Y,requestOtp:O,verifyOtp:L,logout:R,error:U,isSubmitting:N}}var y6=B(U1(),1),rB="https://specialist.skippr.ai/api";async function Y$0($,Y){let G=await fetch(`${rB}/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 F00({agentId:$,authToken:Y,appKey:G,userToken:H}){let[q,N]=y6.useState(null),[K,U]=y6.useState(!1),[M,F]=y6.useState(!1),[O,L]=y6.useState(""),[R,C]=y6.useState(null),[D,T]=y6.useState(null),[m,g]=y6.useState(Y??null);y6.useEffect(()=>{let I=!1;if(Y){g(Y);return}if(G&&H)Y$0(G,H).then((V)=>{if(!I)g(V)}).catch((V)=>{if(!I)L(V instanceof Error?V.message:"Token exchange failed")});return()=>{I=!0}},[Y,G,H]);let n=y6.useCallback(async()=>{if(!m){L("No auth token available");return}let I={Authorization:`Bearer ${m}`};F(!0),L(""),C(null);try{let V=await fetch(`${rB}/v1/sessions`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json",...I},body:JSON.stringify({agentId:$})});if(!V.ok){let o=await V.json().catch(()=>null);throw C(V.status),Error(o?.detail||`Failed to create session: ${V.status}`)}let{session:v}=await V.json(),s=await fetch(`${rB}/v1/sessions/${v.id}/start`,{method:"POST",credentials:"omit",headers:I});if(!s.ok){let o=await s.json().catch(()=>null);throw C(s.status),Error(o?.detail||`Failed to start session: ${s.status}`)}let{connection:f}=await s.json();T(v.id),N({livekitUrl:f.livekitUrl,token:f.token}),U(!0)}catch(V){L(V instanceof Error?V.message:"Failed to start session")}finally{F(!1)}},[$,m]),c=y6.useCallback(async()=>{if(D&&m)try{await fetch(`${rB}/v1/sessions/${D}/complete`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json",Authorization:`Bearer ${m}`},body:JSON.stringify({})})}catch{}L(""),U(!1),N(null),T(null)},[D,m]);return{connection:q,shouldConnect:K,isStarting:M,error:O,errorCode:R,startSession:n,disconnect:c}}var aB=B(U1(),1);var nB=(...$)=>$.filter((Y,G,H)=>{return Boolean(Y)&&Y.trim()!==""&&H.indexOf(Y)===G}).join(" ").trim();var k00=($)=>$.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 hU=($)=>{let Y=P00($);return Y.charAt(0).toUpperCase()+Y.slice(1)};var xH=B(U1(),1);var O00={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 L00=($)=>{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:N,iconNode:K,...U},M)=>xH.createElement("svg",{ref:M,...O00,width:Y,height:Y,stroke:$,strokeWidth:H?Number(G)*24/Number(Y):G,className:nB("lucide",q),...!N&&!L00(U)&&{"aria-hidden":"true"},...U},[...K.map(([F,O])=>xH.createElement(F,O)),...Array.isArray(N)?N:[N]]));var q1=($,Y)=>{let G=aB.forwardRef(({className:H,...q},N)=>aB.createElement(R00,{ref:N,iconNode:Y,className:nB(`lucide-${k00(hU($))}`,`lucide-${$}`,H),...q}));return G.displayName=hU($),G};var Q$0=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],b6=q1("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"}]],L8=q1("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=q1("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=q1("send-horizontal",z$0);var q$0=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],_H=q1("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"}]],W4=q1("bot",B$0);var J$0=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],VH=q1("check",J$0);var A$0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],CH=q1("circle",A$0);var N$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"}]],IH=q1("mail",N$0);var K$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=q1("message-circle",K$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"}]],p3=q1("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"}]],S3=q1("mic",U$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"}]],E3=q1("monitor-off",M$0);var F$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"}]],x8=q1("monitor",F$0);var k$0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]],pH=q1("panel-right",k$0);var P$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"}]],D3=q1("phone-off",P$0);var O$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=q1("settings",O$0);var L$0=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],v3=q1("x",L$0);var XJ=B(U1(),1);var w00=B(U1(),1);function z5(){let $=w00.use(oB);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 _00(){for(var $,Y,G=0,H="",q=arguments.length;G<q;G++)($=arguments[G])&&(Y=x00($))&&(H&&(H+=" "),H+=Y);return H}var x$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}),p00=($=new Map,Y=null,G)=>({nextPart:$,validators:Y,classGroupId:G});var V00=[];var V$0=($)=>{let Y=I$0($),{conflictingClassGroups:G,conflictingClassGroupModifiers:H}=$;return{getClassGroupId:(K)=>{if(K.startsWith("[")&&K.endsWith("]"))return C$0(K);let U=K.split("-"),M=U[0]===""&&U.length>1?1:0;return S00(U,M,Y)},getConflictingClassGroupIds:(K,U)=>{if(U){let M=H[K],F=G[K];if(M){if(F)return x$0(F,M);return M}return F||V00}return G[K]||V00}}},S00=($,Y,G)=>{if($.length-Y===0)return G.classGroupId;let q=$[Y],N=G.nextPart.get(q);if(N){let F=S00($,Y+1,N);if(F)return F}let K=G.validators;if(K===null)return;let U=Y===0?$.join("-"):$.slice(Y).join("-"),M=K.length;for(let F=0;F<M;F++){let O=K[F];if(O.validator(U))return O.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})(),I$0=($)=>{let{theme:Y,classGroups:G}=$;return T$0(G,Y)},T$0=($,Y)=>{let G=p00();for(let H in $){let q=$[H];Bu(q,G,H,Y)}return G},Bu=($,Y,G,H)=>{let q=$.length;for(let N=0;N<q;N++){let K=$[N];p$0(K,Y,G,H)}},p$0=($,Y,G,H)=>{if(typeof $==="string"){S$0($,Y,G);return}if(typeof $==="function"){E$0($,Y,G,H);return}D$0($,Y,G,H)},S$0=($,Y,G)=>{let H=$===""?Y:E00(Y,$);H.classGroupId=G},E$0=($,Y,G,H)=>{if(v$0($)){Bu($(H),Y,G,H);return}if(Y.validators===null)Y.validators=[];Y.validators.push(_$0(G,$))},D$0=($,Y,G,H)=>{let q=Object.entries($),N=q.length;for(let K=0;K<N;K++){let[U,M]=q[K];Bu(M,E00(Y,U),G,H)}},E00=($,Y)=>{let G=$,H=Y.split("-"),q=H.length;for(let N=0;N<q;N++){let K=H[N],U=G.nextPart.get(K);if(!U)U=p00(),G.nextPart.set(K,U);G=U}return G},v$0=($)=>("isThemeGetter"in $)&&$.isThemeGetter===!0,j$0=($)=>{if($<1)return{get:()=>{return},set:()=>{}};let Y=0,G=Object.create(null),H=Object.create(null),q=(N,K)=>{if(G[N]=K,Y++,Y>$)Y=0,H=G,G=Object.create(null)};return{get(N){let K=G[N];if(K!==void 0)return K;if((K=H[N])!==void 0)return q(N,K),K},set(N,K){if(N in G)G[N]=K;else q(N,K)}}};var f$0=[],C00=($,Y,G,H,q)=>({modifiers:$,hasImportantModifier:Y,baseClassName:G,maybePostfixModifierPosition:H,isExternal:q}),g$0=($)=>{let{prefix:Y,experimentalParseClassName:G}=$,H=(q)=>{let N=[],K=0,U=0,M=0,F,O=q.length;for(let T=0;T<O;T++){let m=q[T];if(K===0&&U===0){if(m===":"){N.push(q.slice(M,T)),M=T+1;continue}if(m==="/"){F=T;continue}}if(m==="[")K++;else if(m==="]")K--;else if(m==="(")U++;else if(m===")")U--}let L=N.length===0?q:q.slice(M),R=L,C=!1;if(L.endsWith("!"))R=L.slice(0,-1),C=!0;else if(L.startsWith("!"))R=L.slice(1),C=!0;let D=F&&F>M?F-M:void 0;return C00(N,C,R,D)};if(Y){let q=Y+":",N=H;H=(K)=>K.startsWith(q)?N(K.slice(q.length)):C00(f$0,!1,K,void 0,!0)}if(G){let q=H;H=(N)=>G({className:N,parseClassName:q})}return H},m$0=($)=>{let Y=new Map;return $.orderSensitiveModifiers.forEach((G,H)=>{Y.set(G,1e6+H)}),(G)=>{let H=[],q=[];for(let N=0;N<G.length;N++){let K=G[N],U=K[0]==="[",M=Y.has(K);if(U||M){if(q.length>0)q.sort(),H.push(...q),q=[];H.push(K)}else q.push(K)}if(q.length>0)q.sort(),H.push(...q);return H}},y$0=($)=>({cache:j$0($.cacheSize),parseClassName:g$0($),sortModifiers:m$0($),...V$0($)}),b$0=/\s+/,h$0=($,Y)=>{let{parseClassName:G,getClassGroupId:H,getConflictingClassGroupIds:q,sortModifiers:N}=Y,K=[],U=$.trim().split(b$0),M="";for(let F=U.length-1;F>=0;F-=1){let O=U[F],{isExternal:L,modifiers:R,hasImportantModifier:C,baseClassName:D,maybePostfixModifierPosition:T}=G(O);if(L){M=O+(M.length>0?" "+M:M);continue}let m=!!T,g=H(m?D.substring(0,T):D);if(!g){if(!m){M=O+(M.length>0?" "+M:M);continue}if(g=H(D),!g){M=O+(M.length>0?" "+M:M);continue}m=!1}let n=R.length===0?"":R.length===1?R[0]:N(R).join(":"),c=C?n+"!":n,I=c+g;if(K.indexOf(I)>-1)continue;K.push(I);let V=q(g,m);for(let v=0;v<V.length;++v){let s=V[v];K.push(c+s)}M=O+(M.length>0?" "+M:M)}return M},u$0=(...$)=>{let Y=0,G,H,q="";while(Y<$.length)if(G=$[Y++]){if(H=D00(G))q&&(q+=" "),q+=H}return q},D00=($)=>{if(typeof $==="string")return $;let Y,G="";for(let H=0;H<$.length;H++)if($[H]){if(Y=D00($[H]))G&&(G+=" "),G+=Y}return G},d$0=($,...Y)=>{let G,H,q,N,K=(M)=>{let F=Y.reduce((O,L)=>L(O),$());return G=y$0(F),H=G.cache.get,q=G.cache.set,N=U,U(M)},U=(M)=>{let F=H(M);if(F)return F;let O=h$0(M,G);return q(M,O),O};return N=K,(...M)=>N(u$0(...M))},s$0=[],L2=($)=>{let Y=(G)=>G[$]||s$0;return Y.isThemeGetter=!0,Y},v00=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,j00=/^\((?:(\w[\w-]*):)?(.+)\)$/i,l$0=/^\d+\/\d+$/,c$0=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,i$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$/,o$0=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,r$0=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,n$0=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,qQ=($)=>l$0.test($),e0=($)=>!!$&&!Number.isNaN(Number($)),_8=($)=>!!$&&Number.isInteger(Number($)),zu=($)=>$.endsWith("%")&&e0($.slice(0,-1)),B9=($)=>c$0.test($),a$0=()=>!0,t$0=($)=>i$0.test($)&&!o$0.test($),f00=()=>!1,e$0=($)=>r$0.test($),XZ0=($)=>n$0.test($),$Z0=($)=>!L0($)&&!R0($),ZZ0=($)=>BQ($,y00,f00),L0=($)=>v00.test($),j3=($)=>BQ($,b00,t$0),qu=($)=>BQ($,zZ0,e0),I00=($)=>BQ($,g00,f00),YZ0=($)=>BQ($,m00,XZ0),tB=($)=>BQ($,h00,e$0),R0=($)=>j00.test($),EH=($)=>JQ($,b00),QZ0=($)=>JQ($,qZ0),T00=($)=>JQ($,g00),GZ0=($)=>JQ($,y00),HZ0=($)=>JQ($,m00),eB=($)=>JQ($,h00,!0),BQ=($,Y,G)=>{let H=v00.exec($);if(H){if(H[1])return Y(H[1]);return G(H[2])}return!1},JQ=($,Y,G=!1)=>{let H=j00.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",zZ0=($)=>$==="number",qZ0=($)=>$==="family-name",h00=($)=>$==="shadow";var BZ0=()=>{let $=L2("color"),Y=L2("font"),G=L2("text"),H=L2("font-weight"),q=L2("tracking"),N=L2("leading"),K=L2("breakpoint"),U=L2("container"),M=L2("spacing"),F=L2("radius"),O=L2("shadow"),L=L2("inset-shadow"),R=L2("text-shadow"),C=L2("drop-shadow"),D=L2("blur"),T=L2("perspective"),m=L2("aspect"),g=L2("ease"),n=L2("animate"),c=()=>["auto","avoid","all","avoid-page","page","left","right","column"],I=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],V=()=>[...I(),R0,L0],v=()=>["auto","hidden","clip","visible","scroll"],s=()=>["auto","contain","none"],f=()=>[R0,L0,M],o=()=>[qQ,"full","auto",...f()],u=()=>[_8,"none","subgrid",R0,L0],X0=()=>["auto",{span:["full",_8,R0,L0]},_8,R0,L0],Y0=()=>[_8,"auto",R0,L0],M0=()=>["auto","min","max","fr",R0,L0],b0=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G0=()=>["start","end","center","stretch","center-safe","end-safe"],K0=()=>["auto",...f()],P0=()=>[qQ,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...f()],J0=()=>[$,R0,L0],v0=()=>[...I(),T00,I00,{position:[R0,L0]}],c1=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Z0=()=>["auto","cover","contain",GZ0,ZZ0,{size:[R0,L0]}],_0=()=>[zu,EH,j3],C0=()=>["","none","full",F,R0,L0],I0=()=>["",e0,EH,j3],g1=()=>["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"],O0=()=>[e0,zu,T00,I00],x1=()=>["","none",D,R0,L0],i1=()=>["none",e0,R0,L0],q6=()=>["none",e0,R0,L0],k0=()=>[e0,R0,L0],q5=()=>[qQ,"full",...f()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[B9],breakpoint:[B9],color:[a$0],container:[B9],"drop-shadow":[B9],ease:["in","out","in-out"],font:[$Z0],"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",e0],text:[B9],"text-shadow":[B9],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",qQ,L0,R0,m]}],container:["container"],columns:[{columns:[e0,L0,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:V()}],overflow:[{overflow:v()}],"overflow-x":[{"overflow-x":v()}],"overflow-y":[{"overflow-y":v()}],overscroll:[{overscroll:s()}],"overscroll-x":[{"overscroll-x":s()}],"overscroll-y":[{"overscroll-y":s()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:o()}],"inset-x":[{"inset-x":o()}],"inset-y":[{"inset-y":o()}],start:[{start:o()}],end:[{end:o()}],top:[{top:o()}],right:[{right:o()}],bottom:[{bottom:o()}],left:[{left:o()}],visibility:["visible","invisible","collapse"],z:[{z:[_8,"auto",R0,L0]}],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:[e0,qQ,"auto","initial","none",L0]}],grow:[{grow:["",e0,R0,L0]}],shrink:[{shrink:["",e0,R0,L0]}],order:[{order:[_8,"first","last","none",R0,L0]}],"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:[...b0(),"normal"]}],"justify-items":[{"justify-items":[...G0(),"normal"]}],"justify-self":[{"justify-self":["auto",...G0()]}],"align-content":[{content:["normal",...b0()]}],"align-items":[{items:[...G0(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G0(),{baseline:["","last"]}]}],"place-content":[{"place-content":b0()}],"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:K0()}],mx:[{mx:K0()}],my:[{my:K0()}],ms:[{ms:K0()}],me:[{me:K0()}],mt:[{mt:K0()}],mr:[{mr:K0()}],mb:[{mb:K0()}],ml:[{ml:K0()}],"space-x":[{"space-x":f()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":f()}],"space-y-reverse":["space-y-reverse"],size:[{size:P0()}],w:[{w:[U,"screen",...P0()]}],"min-w":[{"min-w":[U,"screen","none",...P0()]}],"max-w":[{"max-w":[U,"screen","none","prose",{screen:[K]},...P0()]}],h:[{h:["screen","lh",...P0()]}],"min-h":[{"min-h":["screen","lh","none",...P0()]}],"max-h":[{"max-h":["screen","lh",...P0()]}],"font-size":[{text:["base",G,EH,j3]}],"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,L0]}],"font-family":[{font:[QZ0,L0,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,L0]}],"line-clamp":[{"line-clamp":[e0,"none",R0,qu]}],leading:[{leading:[N,...f()]}],"list-image":[{"list-image":["none",R0,L0]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",R0,L0]}],"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:[...g1(),"wavy"]}],"text-decoration-thickness":[{decoration:[e0,"from-font","auto",R0,j3]}],"text-decoration-color":[{decoration:J0()}],"underline-offset":[{"underline-offset":[e0,"auto",R0,L0]}],"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,L0]}],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,L0]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:v0()}],"bg-repeat":[{bg:c1()}],"bg-size":[{bg:Z0()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},_8,R0,L0],radial:["",R0,L0],conic:[_8,R0,L0]},HZ0,YZ0]}],"bg-color":[{bg:J0()}],"gradient-from-pos":[{from:_0()}],"gradient-via-pos":[{via:_0()}],"gradient-to-pos":[{to:_0()}],"gradient-from":[{from:J0()}],"gradient-via":[{via:J0()}],"gradient-to":[{to:J0()}],rounded:[{rounded:C0()}],"rounded-s":[{"rounded-s":C0()}],"rounded-e":[{"rounded-e":C0()}],"rounded-t":[{"rounded-t":C0()}],"rounded-r":[{"rounded-r":C0()}],"rounded-b":[{"rounded-b":C0()}],"rounded-l":[{"rounded-l":C0()}],"rounded-ss":[{"rounded-ss":C0()}],"rounded-se":[{"rounded-se":C0()}],"rounded-ee":[{"rounded-ee":C0()}],"rounded-es":[{"rounded-es":C0()}],"rounded-tl":[{"rounded-tl":C0()}],"rounded-tr":[{"rounded-tr":C0()}],"rounded-br":[{"rounded-br":C0()}],"rounded-bl":[{"rounded-bl":C0()}],"border-w":[{border:I0()}],"border-w-x":[{"border-x":I0()}],"border-w-y":[{"border-y":I0()}],"border-w-s":[{"border-s":I0()}],"border-w-e":[{"border-e":I0()}],"border-w-t":[{"border-t":I0()}],"border-w-r":[{"border-r":I0()}],"border-w-b":[{"border-b":I0()}],"border-w-l":[{"border-l":I0()}],"divide-x":[{"divide-x":I0()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":I0()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...g1(),"hidden","none"]}],"divide-style":[{divide:[...g1(),"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:[...g1(),"none","hidden"]}],"outline-offset":[{"outline-offset":[e0,R0,L0]}],"outline-w":[{outline:["",e0,EH,j3]}],"outline-color":[{outline:J0()}],shadow:[{shadow:["","none",O,eB,tB]}],"shadow-color":[{shadow:J0()}],"inset-shadow":[{"inset-shadow":["none",L,eB,tB]}],"inset-shadow-color":[{"inset-shadow":J0()}],"ring-w":[{ring:I0()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:J0()}],"ring-offset-w":[{"ring-offset":[e0,j3]}],"ring-offset-color":[{"ring-offset":J0()}],"inset-ring-w":[{"inset-ring":I0()}],"inset-ring-color":[{"inset-ring":J0()}],"text-shadow":[{"text-shadow":["none",R,eB,tB]}],"text-shadow-color":[{"text-shadow":J0()}],opacity:[{opacity:[e0,R0,L0]}],"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":[e0]}],"mask-image-linear-from-pos":[{"mask-linear-from":O0()}],"mask-image-linear-to-pos":[{"mask-linear-to":O0()}],"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":O0()}],"mask-image-t-to-pos":[{"mask-t-to":O0()}],"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":O0()}],"mask-image-r-to-pos":[{"mask-r-to":O0()}],"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":O0()}],"mask-image-b-to-pos":[{"mask-b-to":O0()}],"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":O0()}],"mask-image-l-to-pos":[{"mask-l-to":O0()}],"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":O0()}],"mask-image-x-to-pos":[{"mask-x-to":O0()}],"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":O0()}],"mask-image-y-to-pos":[{"mask-y-to":O0()}],"mask-image-y-from-color":[{"mask-y-from":J0()}],"mask-image-y-to-color":[{"mask-y-to":J0()}],"mask-image-radial":[{"mask-radial":[R0,L0]}],"mask-image-radial-from-pos":[{"mask-radial-from":O0()}],"mask-image-radial-to-pos":[{"mask-radial-to":O0()}],"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":I()}],"mask-image-conic-pos":[{"mask-conic":[e0]}],"mask-image-conic-from-pos":[{"mask-conic-from":O0()}],"mask-image-conic-to-pos":[{"mask-conic-to":O0()}],"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:v0()}],"mask-repeat":[{mask:c1()}],"mask-size":[{mask:Z0()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",R0,L0]}],filter:[{filter:["","none",R0,L0]}],blur:[{blur:x1()}],brightness:[{brightness:[e0,R0,L0]}],contrast:[{contrast:[e0,R0,L0]}],"drop-shadow":[{"drop-shadow":["","none",C,eB,tB]}],"drop-shadow-color":[{"drop-shadow":J0()}],grayscale:[{grayscale:["",e0,R0,L0]}],"hue-rotate":[{"hue-rotate":[e0,R0,L0]}],invert:[{invert:["",e0,R0,L0]}],saturate:[{saturate:[e0,R0,L0]}],sepia:[{sepia:["",e0,R0,L0]}],"backdrop-filter":[{"backdrop-filter":["","none",R0,L0]}],"backdrop-blur":[{"backdrop-blur":x1()}],"backdrop-brightness":[{"backdrop-brightness":[e0,R0,L0]}],"backdrop-contrast":[{"backdrop-contrast":[e0,R0,L0]}],"backdrop-grayscale":[{"backdrop-grayscale":["",e0,R0,L0]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[e0,R0,L0]}],"backdrop-invert":[{"backdrop-invert":["",e0,R0,L0]}],"backdrop-opacity":[{"backdrop-opacity":[e0,R0,L0]}],"backdrop-saturate":[{"backdrop-saturate":[e0,R0,L0]}],"backdrop-sepia":[{"backdrop-sepia":["",e0,R0,L0]}],"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,L0]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[e0,"initial",R0,L0]}],ease:[{ease:["linear","initial",g,R0,L0]}],delay:[{delay:[e0,R0,L0]}],animate:[{animate:["none",n,R0,L0]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[T,R0,L0]}],"perspective-origin":[{"perspective-origin":V()}],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:k0()}],"skew-x":[{"skew-x":k0()}],"skew-y":[{"skew-y":k0()}],transform:[{transform:[R0,L0,"","none","gpu","cpu"]}],"transform-origin":[{origin:V()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q5()}],"translate-x":[{"translate-x":q5()}],"translate-y":[{"translate-y":q5()}],"translate-z":[{"translate-z":q5()}],"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,L0]}],"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,L0]}],fill:[{fill:["none",...J0()]}],"stroke-w":[{stroke:[e0,EH,j3,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=d$0(BZ0);function f1(...$){return u00(_00($))}var X1=B(J1(),1);function JZ0({agentState:$}){if($==="speaking")return X1.jsxDEV("div",{className:"skippr:flex skippr:items-end skippr:justify-center skippr:gap-[3px] skippr:h-5",children:[X1.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),X1.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),X1.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),X1.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 X1.jsxDEV(W4,{className:"skippr:relative skippr:z-10 skippr:size-5 skippr:animate-skippr-breathe"},void 0,!1,void 0,this);if($==="thinking")return X1.jsxDEV(W4,{className:"skippr:relative skippr:z-10 skippr:size-5 skippr:animate-pulse"},void 0,!1,void 0,this);return X1.jsxDEV(W4,{className:"skippr:relative skippr:z-10 skippr:size-5"},void 0,!1,void 0,this)}function AZ0(){let{expandPanel:$,disconnect:Y}=z5(),{state:G}=wH(),{localParticipant:H}=K4(),q=!H.isMicrophoneEnabled,N=H.isScreenShareEnabled,K=XJ.useCallback(async()=>{try{await H.setMicrophoneEnabled(q)}catch(O){console.error("Failed to toggle microphone:",O)}},[H,q]),U=XJ.useCallback(async()=>{try{await H.setScreenShareEnabled(!N,{video:{displaySurface:"browser"},resolution:V3.h720fps30.resolution,contentHint:"detail"})}catch(O){console.error("Failed to toggle screen share:",O)}},[H,N]),M=G==="speaking";return X1.jsxDEV(X1.Fragment,{children:[X1.jsxDEV("button",{type:"button",onClick:$,className:f1("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",G==="listening"&&"skippr:animate-skippr-pulse-ring"),"aria-label":"Expand meeting panel",children:[M&&X1.jsxDEV(X1.Fragment,{children:[X1.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),X1.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),X1.jsxDEV(JZ0,{agentState:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X1.jsxDEV("div",{className:"skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"},void 0,!1,void 0,this),X1.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1",children:[X1.jsxDEV("button",{type:"button",onClick:K,className:f1("skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center","skippr:transition-colors skippr:cursor-pointer",q?"skippr:bg-destructive skippr:text-white":"skippr:text-foreground skippr:hover:bg-accent"),"aria-label":q?"Unmute":"Mute",children:q?X1.jsxDEV(p3,{className:"skippr:size-4"},void 0,!1,void 0,this):X1.jsxDEV(S3,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),X1.jsxDEV("button",{type:"button",onClick:U,className:f1("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?X1.jsxDEV(E3,{className:"skippr:size-4"},void 0,!1,void 0,this):X1.jsxDEV(x8,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X1.jsxDEV("div",{className:"skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"},void 0,!1,void 0,this),X1.jsxDEV("button",{type:"button",onClick:()=>Y(),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:X1.jsxDEV(D3,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function NZ0(){let{expandPanel:$,startSession:Y,isStarting:G,isAuthenticated:H}=z5(),q=XJ.useCallback(()=>{if(!H){$();return}Y()},[H,$,Y]);return X1.jsxDEV(X1.Fragment,{children:[X1.jsxDEV("button",{type:"button",onClick:q,disabled:G,className:f1("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",G&&"skippr:animate-skippr-pulse-ring"),"aria-label":"AI Agent",children:X1.jsxDEV(W4,{className:"skippr:relative skippr:z-10 skippr:size-5"},void 0,!1,void 0,this)},void 0,!1,void 0,this),X1.jsxDEV("div",{className:"skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"},void 0,!1,void 0,this),X1.jsxDEV("button",{type:"button",onClick:q,disabled:G,className:f1("skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center","skippr:transition-colors skippr:cursor-pointer","skippr:bg-primary skippr:text-primary-foreground skippr:hover:brightness-110",G&&"skippr:animate-skippr-pulse-ring skippr:cursor-not-allowed"),"aria-label":"Start session",children:X1.jsxDEV(x8,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function l00(){let{isConnected:$,position:Y}=z5();return X1.jsxDEV("div",{className:f1("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","skippr:transition-all skippr:duration-300 skippr:ease-in-out",Y==="right"?"skippr:right-6":"skippr:left-6"),children:$?X1.jsxDEV(AZ0,{},void 0,!1,void 0,this):X1.jsxDEV(NZ0,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var QJ=B(U1(),1);var n00=B(U1(),1);var c00=B(U1(),1);var KZ0=/^\[\w+\]$/;function $J($){return $.filter((Y)=>!KZ0.test(Y.content.trim()))}function i00(){let{chatMessages:$,send:Y,isSending:G}=vU(),{localParticipant:H}=K4(),q=H.identity;return{chatMessages:c00.useMemo(()=>{let K=$.map((U)=>({id:U.id,role:U.from?.identity===q?"user":"assistant",content:U.message,source:"chat",timestamp:U.timestamp})).sort((U,M)=>(U.timestamp??0)-(M.timestamp??0));return $J(K)},[$,q]),sendChatMessage:Y,isSendingChat:G}}var o00=B(U1(),1);function r00(){let $=jU(),{localParticipant:Y}=K4(),G=Y.identity;return{transcriptMessages:o00.useMemo(()=>$J($.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 WZ0($,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 WZ0($,Y)},[$,Y]),agentState:q,sendChatMessage:G,isSendingChat:H}}var t00=B(U1(),1);var ZJ=B(U1(),1);function AQ($,Y,G){let[H,q]=ZJ.useState(G),N=RH();return ZJ.useEffect(()=>{let K=N.find((M)=>M.attributes?.[$]);if(K){let M=K.attributes?.[$];if(M){let F=Y(M);if(F)q(F)}}let U=new Map;for(let M of N){let F=(O)=>{if(O[$]){let L=Y(O[$]);if(L)q(L)}else if(M.attributes?.[$]){let L=Y(M.attributes[$]);if(L)q(L)}};U.set(M,F),M.on("attributesChanged",F)}return()=>{for(let[M,F]of U)M.off("attributesChanged",F)}},[N,$,Y]),H}function UZ0($){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(UZ0,[]);return{phases:AQ("phases",$,[])}}var X10=B(U1(),1);function MZ0($){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(MZ0,[]);return{questions:AQ("questions",$,[])}}var Au=480;var Z10=B(U1(),1);var Y10=B(J1(),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"},kZ0={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"},y2=Z10.forwardRef(({className:$,variant:Y="default",size:G="default",...H},q)=>{return Y10.jsxDEV("button",{className:f1("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],kZ0[G],$),ref:q,...H},void 0,!1,void 0,this)});y2.displayName="Button";var I5=B(J1(),1);function Q10({onOpenSettings:$}){let{closePanel:Y,minimizePanel:G,minimizable:H}=z5();return I5.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:[I5.jsxDEV("div",{className:"skippr:flex skippr:size-6 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-primary-foreground/20",children:I5.jsxDEV(W4,{className:"skippr:size-3.5 skippr:text-primary-foreground"},void 0,!1,void 0,this)},void 0,!1,void 0,this),I5.jsxDEV("div",{className:"skippr:flex-1",children:I5.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),I5.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1",children:[I5.jsxDEV(y2,{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:I5.jsxDEV(SH,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),I5.jsxDEV(y2,{variant:"ghost",size:"icon-xs",onClick:H?G:Y,className:"skippr:text-primary-foreground skippr:hover:bg-primary-foreground/20 skippr:hover:text-primary-foreground","aria-label":"Close",children:I5.jsxDEV(v3,{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(U1(),1);var p1=B(J1(),1),U4=6,PZ0=["d0","d1","d2","d3","d4","d5"];function G10({requestOtp:$,verifyOtp:Y,error:G,isSubmitting:H}){let[q,N]=G2.useState("email"),[K,U]=G2.useState(""),M=G2.useCallback(async(R)=>{if(await $(R))N("otp")},[$]),F=G2.useCallback(async(R)=>{await Y(K,R)},[Y,K]),O=G2.useCallback(()=>{N("email")},[]),L=G2.useCallback(async()=>{await $(K)},[$,K]);if(q==="otp")return p1.jsxDEV(LZ0,{email:K,onSubmit:F,onResend:L,onBack:O,error:G,isSubmitting:H},void 0,!1,void 0,this);return p1.jsxDEV(OZ0,{email:K,onEmailChange:U,onSubmit:M,error:G,isSubmitting:H},void 0,!1,void 0,this)}function OZ0({email:$,onEmailChange:Y,onSubmit:G,error:H,isSubmitting:q}){function N(K){if(K.preventDefault(),$.trim())G($.trim())}return p1.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",children:[p1.jsxDEV("div",{className:"skippr:mb-4 skippr:text-center",children:[p1.jsxDEV(IH,{className:"skippr:mx-auto skippr:mb-2 skippr:size-6 skippr:text-primary"},void 0,!1,void 0,this),p1.jsxDEV("p",{className:"skippr:text-sm skippr:font-medium skippr:text-foreground",children:"Sign in to continue"},void 0,!1,void 0,this),p1.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),p1.jsxDEV("form",{onSubmit:N,className:"skippr:flex skippr:flex-col skippr:gap-3",children:[p1.jsxDEV("input",{type:"email",placeholder:"you@example.com",value:$,onChange:(K)=>Y(K.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),p1.jsxDEV(y2,{type:"submit",disabled:q||!$.trim(),className:"skippr:w-full",children:q?p1.jsxDEV(b6,{className:"skippr:size-4 skippr:animate-spin"},void 0,!1,void 0,this):"Continue"},void 0,!1,void 0,this),H&&p1.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:N}){let[K,U]=G2.useState(Array(U4).fill("")),[M,F]=G2.useState(0),O=G2.useRef([]),L=G2.useRef(!1);G2.useEffect(()=>{O.current[0]?.focus()},[]),G2.useEffect(()=>{if(q)L.current=!1},[q]),G2.useEffect(()=>{if(M<=0)return;let n=setTimeout(()=>F((c)=>c-1),1000);return()=>clearTimeout(n)},[M]);let R=G2.useCallback((n)=>{if(L.current||N)return;L.current=!0,Y(n)},[Y,N]),C=G2.useCallback((n,c)=>{let I=c.replace(/\D/g,"").slice(-1),V=[...K];if(V[n]=I,U(V),I&&n<U4-1)O.current[n+1]?.focus();if(I&&n===U4-1){let v=V.join("");if(v.length===U4)R(v)}},[K,R]),D=G2.useCallback((n,c)=>{if(c.key==="Backspace"&&!K[n]&&n>0)O.current[n-1]?.focus()},[K]),T=G2.useCallback((n)=>{n.preventDefault();let c=n.clipboardData.getData("text").replace(/\D/g,"").slice(0,U4);if(c.length>0){let I=Array(U4).fill("");for(let V=0;V<c.length;V++)I[V]=c[V];if(U(I),c.length===U4)R(c);else O.current[c.length]?.focus()}},[R]);function m(n){n.preventDefault();let c=K.join("");if(c.length===U4)R(c)}function g(){G(),F(30),U(Array(U4).fill("")),L.current=!1,O.current[0]?.focus()}return p1.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",children:[p1.jsxDEV("div",{className:"skippr:mb-4 skippr:text-center",children:[p1.jsxDEV("p",{className:"skippr:text-sm skippr:font-medium skippr:text-foreground",children:"Enter verification code"},void 0,!1,void 0,this),p1.jsxDEV("p",{className:"skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",children:["We sent a 6-digit code to"," ",p1.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),p1.jsxDEV("form",{onSubmit:m,className:"skippr:flex skippr:flex-col skippr:gap-3",children:[p1.jsxDEV("div",{className:"skippr:flex skippr:justify-center skippr:gap-1.5",children:K.map((n,c)=>p1.jsxDEV("input",{ref:(I)=>{O.current[c]=I},type:"text",inputMode:"numeric",maxLength:1,value:n,onChange:(I)=>C(c,I.target.value),onKeyDown:(I)=>D(c,I),onPaste:T,disabled:N,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"},PZ0[c],!1,void 0,this))},void 0,!1,void 0,this),q&&p1.jsxDEV("p",{className:"skippr:text-xs skippr:text-center skippr:text-destructive",children:q},void 0,!1,void 0,this),p1.jsxDEV(y2,{type:"submit",disabled:N||K.join("").length!==U4,className:"skippr:w-full",children:N?p1.jsxDEV(b6,{className:"skippr:size-4 skippr:animate-spin"},void 0,!1,void 0,this):"Verify"},void 0,!1,void 0,this),p1.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:justify-between skippr:text-xs",children:[p1.jsxDEV("button",{type:"button",onClick:H,disabled:N,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),p1.jsxDEV("button",{type:"button",onClick:g,disabled:N||M>0,className:"skippr:text-primary hover:skippr:opacity-80 skippr:transition-opacity disabled:skippr:opacity-50",children:M>0?`Resend in ${M}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 M4=B(U1(),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(J1(),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 k6=B(J1(),1);function A10({onHangUp:$}){let Y=AQ("maxCallDuration",z10,null),{localParticipant:G}=K4(),H=!G.isMicrophoneEnabled,q=G.isScreenShareEnabled,N=M4.useRef(null),[K,U]=M4.useState(null);M4.useEffect(()=>{if(Y===null||N.current!==null)return;N.current=Date.now()+Y*1000;let O=()=>{let R=Math.ceil((N.current-Date.now())/1000);U(Math.max(R,0))};O();let L=setInterval(O,1000);return()=>clearInterval(L)},[Y]);let M=M4.useCallback(async()=>{try{await G.setMicrophoneEnabled(H)}catch(O){console.error("Failed to toggle microphone:",O)}},[G,H]),F=M4.useCallback(async()=>{try{await G.setScreenShareEnabled(!q,{video:{displaySurface:"browser"},resolution:V3.h720fps30.resolution,contentHint:"detail"})}catch(O){console.error("Failed to toggle screen share:",O)}},[G,q]);return M4.useEffect(()=>{M().then(()=>F())},[]),k6.jsxDEV("div",{children:[k6.jsxDEV(B10,{remaining:K},void 0,!1,void 0,this),k6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:justify-between skippr:border-b skippr:px-4 skippr:py-3",children:[k6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2",children:[k6.jsxDEV(y2,{size:"icon-sm",variant:H?"destructive":"outline",onClick:M,"aria-label":H?"Unmute":"Mute",children:H?k6.jsxDEV(p3,{className:"skippr:size-4"},void 0,!1,void 0,this):k6.jsxDEV(S3,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),k6.jsxDEV(y2,{size:"icon-sm",variant:q?"outline":"destructive",onClick:F,"aria-label":q?"Stop sharing":"Share screen",children:q?k6.jsxDEV(E3,{className:"skippr:size-4"},void 0,!1,void 0,this):k6.jsxDEV(x8,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K!==null&&k6.jsxDEV("span",{className:f1("skippr:text-sm skippr:font-medium skippr:tabular-nums",K<=q10?"skippr:text-red-600 skippr:animate-pulse":"skippr:text-muted-foreground"),children:H10(K)},void 0,!1,void 0,this),k6.jsxDEV(y2,{size:"icon-sm",variant:"destructive",onClick:$,"aria-label":"Hang up",children:k6.jsxDEV(D3,{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 YJ=B(U1(),1);var N10=B(U1(),1);var DH=B(J1(),1);function K10({sendChatMessage:$,isSendingChat:Y}){let[G,H]=N10.useState(""),q=G.trim().length>0&&!Y;function N(K){K.preventDefault();let U=G.trim();if(!U||Y)return;H(""),$(U).catch(()=>H(U))}return DH.jsxDEV("form",{onSubmit:N,className:"skippr:flex skippr:items-center skippr:gap-2 skippr:border-t skippr:border-border skippr:px-3 skippr:py-2",children:[DH.jsxDEV("input",{type:"text",value:G,onChange:(K)=>H(K.target.value),placeholder:"Type a message...",className:f1("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),DH.jsxDEV("button",{type:"submit",disabled:!q,"aria-label":"Send message",className:f1("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:DH.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 Nu=B(J1(),1);function W10({message:$}){let Y=$.role==="user";return Nu.jsxDEV("div",{className:f1("skippr:flex skippr:w-full skippr:px-4 skippr:py-1",Y?"skippr:justify-end":"skippr:justify-start"),children:Nu.jsxDEV("div",{className:f1("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 NQ=B(J1(),1);function U10(){return NQ.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1 skippr:px-4 skippr:py-3",children:NQ.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:[NQ.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),NQ.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),NQ.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(J1(),1);function M10({messages:$,isStreaming:Y,sendChatMessage:G,isSendingChat:H}){let q=YJ.useRef(null),N=$.length>0?$[$.length-1]:void 0;YJ.useEffect(()=>{q.current?.scrollIntoView({behavior:"smooth"})},[$.length,N?.content]);let K=Y&&N?.role==="assistant"&&N.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)),K&&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(K10,{sendChatMessage:G,isSendingChat:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var f3=B(J1(),1);function F10({onStartSession:$,isStarting:Y,error:G}){return f3.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:[f3.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),f3.jsxDEV(y2,{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?f3.jsxDEV(b6,{className:"skippr:size-4 skippr:animate-spin skippr:text-primary"},void 0,!1,void 0,this):f3.jsxDEV(L8,{className:"skippr:size-4 skippr:text-primary"},void 0,!1,void 0,this),Y?"Starting...":"Start Session"]},void 0,!0,void 0,this),G&&f3.jsxDEV("p",{className:"skippr:text-xs skippr:text-destructive",children:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var c2=B(J1(),1);function k10({phases:$,questions:Y=[]}){if($.length===0)return c2.jsxDEV("div",{className:"skippr:flex skippr:flex-col skippr:gap-3 skippr:p-4",children:[c2.jsxDEV("h3",{className:"skippr:text-sm skippr:font-semibold",children:"Agenda"},void 0,!1,void 0,this),c2.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 c2.jsxDEV("div",{className:"skippr:flex skippr:flex-col skippr:gap-3 skippr:p-4",children:[c2.jsxDEV("h3",{className:"skippr:text-sm skippr:font-semibold",children:"Agenda"},void 0,!1,void 0,this),c2.jsxDEV("ul",{className:"skippr:flex skippr:flex-col skippr:gap-2",children:$.map((G)=>{let H=Y.filter((K)=>K.phaseName===G.name),q=H.filter((K)=>K.status==="answered").length,N=H.length;return c2.jsxDEV("li",{className:"skippr:flex skippr:flex-col skippr:gap-0.5",children:[c2.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2 skippr:text-sm",children:[c2.jsxDEV(RZ0,{status:G.status},void 0,!1,void 0,this),c2.jsxDEV("span",{className:f1(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),N>0&&c2.jsxDEV("span",{className:"skippr:ml-6 skippr:text-xs skippr:text-muted-foreground",children:[q,"/",N," 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 RZ0({status:$}){if($==="completed")return c2.jsxDEV("div",{className:"skippr:flex skippr:size-4 skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-primary",children:c2.jsxDEV(VH,{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 c2.jsxDEV(b6,{className:"skippr:size-4 skippr:shrink-0 skippr:text-primary skippr:animate-spin"},void 0,!1,void 0,this);return c2.jsxDEV(CH,{className:"skippr:size-4 skippr:shrink-0 skippr:text-muted-foreground"},void 0,!1,void 0,this)}var i2=B(J1(),1);function P10({onBack:$}){let{position:Y,setPosition:G}=z5();return i2.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col",children:[i2.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2 skippr:border-b skippr:border-border skippr:px-4 skippr:py-3",children:[i2.jsxDEV(y2,{variant:"ghost",size:"icon-xs",onClick:$,"aria-label":"Back",children:i2.jsxDEV(_H,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),i2.jsxDEV("p",{className:"skippr:text-sm skippr:font-semibold",children:"Settings"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),i2.jsxDEV("div",{className:"skippr:flex-1 skippr:overflow-y-auto skippr:p-4",children:i2.jsxDEV("div",{className:"skippr:mb-4",children:[i2.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),i2.jsxDEV("div",{className:"skippr:flex skippr:gap-2",children:[i2.jsxDEV("button",{type:"button",onClick:()=>G("left"),className:f1("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:[i2.jsxDEV(R8,{className:"skippr:size-5"},void 0,!1,void 0,this),i2.jsxDEV("span",{className:"skippr:text-xs skippr:font-medium",children:"Left"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),i2.jsxDEV("button",{type:"button",onClick:()=>G("right"),className:f1("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:[i2.jsxDEV(pH,{className:"skippr:size-5"},void 0,!1,void 0,this),i2.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(J1(),1);function O10(){let{variant:$,isConnected:Y,isStarting:G,error:H,startSession:q,disconnect:N,isPanelOpen:K,position:U,isAuthenticated:M,isValidating:F,authError:O,requestOtp:L,verifyOtp:R,isAuthSubmitting:C}=z5(),[D,T]=QJ.useState("main"),m=$==="floating",g=$==="sidebar";return QJ.useEffect(()=>{if(!g)return;let n=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[n]=K?`${Au}px`:"",()=>{document.body.style.marginRight="",document.body.style.marginLeft="",document.body.style.transition=""}},[g,K,U]),X2.jsxDEV("div",{className:f1("skippr:fixed skippr:z-[9999]","skippr:bg-background skippr:border skippr:border-border","skippr:flex skippr:flex-col","skippr:overflow-hidden",m&&"skippr:bottom-4 skippr:min-h-[28rem] skippr:max-h-[calc(100vh-6rem)] skippr:rounded-2xl skippr:shadow-2xl",m&&(U==="right"?"skippr:right-4":"skippr:left-4"),m&&"skippr:transition-[opacity,transform] skippr:duration-300 skippr:ease-in-out",m&&(U==="right"?"skippr:origin-bottom-right":"skippr:origin-bottom-left"),m&&!K&&"skippr:scale-0 skippr:opacity-0 skippr:pointer-events-none",m&&K&&"skippr:scale-100 skippr:opacity-100",g&&"skippr:top-0 skippr:h-full",g&&"skippr:transition-[width] skippr:duration-300 skippr:ease-in-out",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&&!K&&"skippr:w-0 skippr:border-0"),style:{width:K?Au:void 0},children:D==="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(wZ0,{onDisconnect:N},void 0,!1,void 0,this):F?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):M?X2.jsxDEV(F10,{onStartSession:q,isStarting:G,error:H},void 0,!1,void 0,this):X2.jsxDEV(G10,{requestOtp:L,verifyOtp:R,error:O,isSubmitting:C},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function wZ0({onDisconnect:$}){let G=T3()===a0.Connected,{allMessages:H,agentState:q,sendChatMessage:N,isSendingChat:K}=a00(),{phases:U}=e00(),{questions:M}=$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(k10,{phases:U,questions:M},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(M10,{messages:H,isStreaming:q==="speaking",sendChatMessage:N,isSendingChat:K},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 GJ=B(J1(),1);function L10(){let{isPanelOpen:$,togglePanel:Y,position:G,isMinimized:H}=z5();if(H)return null;return GJ.jsxDEV(y2,{size:"icon-lg",onClick:Y,className:f1("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:$?GJ.jsxDEV(v3,{className:"skippr:size-6"},void 0,!1,void 0,this):GJ.jsxDEV(TH,{className:"skippr:size-6"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var F4=B(J1(),1);function R10({agentId:$,authToken:Y,appKey:G,userToken:H,position:q="right",variant:N="floating",minimizable:K=!0,defaultOpen:U=!1,children:M}){let F=M00({appKey:G}),O=Y||F.authToken||void 0,{connection:L,shouldConnect:R,isStarting:C,error:D,errorCode:T,startSession:m,disconnect:g}=F00({agentId:$,authToken:O,appKey:G,userToken:H}),[n,c]=b2.useState(U),[I,V]=b2.useState(K&&!U),[v,s]=b2.useState(()=>{try{let v0=localStorage.getItem("skippr_widget_position");if(v0==="left"||v0==="right")return v0}catch{}return q}),f=b2.useCallback((v0)=>{s(v0);try{localStorage.setItem("skippr_widget_position",v0)}catch{}},[]),o=b2.useCallback(()=>c(!0),[]),u=b2.useCallback(()=>c(!1),[]),X0=b2.useCallback(()=>c((v0)=>!v0),[]),Y0=b2.useCallback(()=>{V(!1),c(!0)},[]),M0=b2.useCallback(()=>{if(!K)return;V(!0),c(!1)},[K]),b0=L!==null,G0=!!H||!!Y||F.isAuthenticated,K0=b2.useRef(L);b2.useEffect(()=>{let v0=K0.current!==L;if(K0.current=L,v0&&K)V(!0),c(!1)},[L,K]);let P0=b2.useMemo(()=>({connection:L,shouldConnect:R,isConnected:b0,isStarting:C,error:D,errorCode:T,startSession:m,disconnect:g,isPanelOpen:n,openPanel:o,closePanel:u,togglePanel:X0,variant:N,position:v,setPosition:f,minimizable:K,isMinimized:I,expandPanel:Y0,minimizePanel:M0,isAuthenticated:G0,isValidating:F.isValidating,authError:F.error,requestOtp:F.requestOtp,verifyOtp:F.verifyOtp,logoutAuth:F.logout,isAuthSubmitting:F.isSubmitting}),[L,R,b0,C,D,T,m,g,n,o,u,X0,N,v,f,K,I,Y0,M0,G0,F.isValidating,F.error,F.requestOtp,F.verifyOtp,F.logout,F.isSubmitting]),J0=F4.jsxDEV(F4.Fragment,{children:[L&&F4.jsxDEV(gU,{},void 0,!1,void 0,this),I&&F4.jsxDEV(l00,{},void 0,!1,void 0,this),F4.jsxDEV(L10,{},void 0,!1,void 0,this),F4.jsxDEV(O10,{},void 0,!1,void 0,this),M]},void 0,!0,void 0,this);return F4.jsxDEV(oB.Provider,{value:P0,children:L?F4.jsxDEV(SU,{serverUrl:L.livekitUrl,token:L.token,connect:R,audio:!0,onDisconnected:g,children:J0},void 0,!1,void 0,this):J0},void 0,!1,void 0,this)}var x10=B(J1(),1);function w10({agentId:$,appKey:Y,userToken:G,position:H,variant:q,minimizable:N}){return x10.jsxDEV(R10,{agentId:$,appKey:Y,userToken:G,position:H,variant:q,minimizable:N},void 0,!1,void 0,this)}var xZ0="skippr-sdk-root",Ku="skippr:sdk-styles",_Z0=`/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
|
|
274
|
+
`):"",this.name="UnsubscriptionError",this.errors=Y}});function hB($,Y){if($){var G=$.indexOf(Y);0<=G&&$.splice(G,1)}}var OH=function(){function $(Y){this.initialTeardown=Y,this.closed=!1,this._parentage=null,this._finalizers=null}return $.prototype.unsubscribe=function(){var Y,G,H,q,N;if(!this.closed){this.closed=!0;var K=this._parentage;if(K)if(this._parentage=null,Array.isArray(K))try{for(var U=ZX(K),M=U.next();!M.done;M=U.next()){var F=M.value;F.remove(this)}}catch(T){Y={error:T}}finally{try{M&&!M.done&&(G=U.return)&&G.call(U)}finally{if(Y)throw Y.error}}else K.remove(this);var O=this.initialTeardown;if(U2(O))try{O()}catch(T){N=T instanceof JU?T.errors:[T]}var L=this._finalizers;if(L){this._finalizers=null;try{for(var R=ZX(L),C=R.next();!C.done;C=R.next()){var D=C.value;try{$e(D)}catch(T){N=N??[],T instanceof JU?N=UH(UH([],WH(N)),WH(T.errors)):N.push(T)}}}catch(T){H={error:T}}finally{try{C&&!C.done&&(q=R.return)&&q.call(R)}finally{if(H)throw H.error}}}if(N)throw new JU(N)}},$.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)&&hB(G,Y)},$.prototype.remove=function(Y){var G=this._finalizers;G&&hB(G,Y),Y instanceof $&&Y._removeParent(this)},$.EMPTY=function(){var Y=new $;return Y.closed=!0,Y}(),$}(),Ue=OH.EMPTY;function Me($){return $ instanceof OH||$&&"closed"in $&&U2($.remove)&&U2($.add)&&U2($.unsubscribe)}function $e($){U2($)?$():$.unsubscribe()}var J70={Promise:void 0},A70={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 Fe($){A70.setTimeout(function(){throw $})}function MU(){}function bB($){$()}var PU=function($){e4(Y,$);function Y(G){var H=$.call(this)||this;return H.isStopped=!1,G?(H.destination=G,Me(G)&&G.add(H)):H.destination=W70,H}return Y.create=function(G,H,q){return new MH(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}(OH),N70=function(){function $(Y){this.partialObserver=Y}return $.prototype.next=function(Y){var G=this.partialObserver;if(G.next)try{G.next(Y)}catch(H){mB(H)}},$.prototype.error=function(Y){var G=this.partialObserver;if(G.error)try{G.error(Y)}catch(H){mB(H)}else mB(Y)},$.prototype.complete=function(){var Y=this.partialObserver;if(Y.complete)try{Y.complete()}catch(G){mB(G)}},$}(),MH=function($){e4(Y,$);function Y(G,H,q){var N=$.call(this)||this,K;return U2(G)||!G?K={next:G??void 0,error:H??void 0,complete:q??void 0}:K=G,N.destination=new N70(K),N}return Y}(PU);function mB($){Fe($)}function K70($){throw $}var W70={closed:!0,next:MU,error:K70,complete:MU},OU=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function LU($){return $}function U70($){return $.length===0?LU:$.length===1?$[0]:function(Y){return $.reduce(function(G,H){return H(G)},Y)}}var O2=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,N=F70(Y)?Y:new MH(Y,G,H);return bB(function(){var K=q,U=K.operator,M=K.source;N.add(U?U.call(N,M):M?q._subscribe(N):q._trySubscribe(N))}),N},$.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,N){var K=new MH({next:function(U){try{Y(U)}catch(M){N(M),K.unsubscribe()}},error:N,complete:q});H.subscribe(K)})},$.prototype._subscribe=function(Y){var G;return(G=this.source)===null||G===void 0?void 0:G.subscribe(Y)},$.prototype[OU]=function(){return this},$.prototype.pipe=function(){for(var Y=[],G=0;G<arguments.length;G++)Y[G]=arguments[G];return U70(Y)(this)},$.prototype.toPromise=function(Y){var G=this;return Y=Ze(Y),new Y(function(H,q){var N;G.subscribe(function(K){return N=K},function(K){return q(K)},function(){return H(N)})})},$.create=function(Y){return new $(Y)},$}();function Ze($){var Y;return(Y=$??J70.Promise)!==null&&Y!==void 0?Y:Promise}function M70($){return $&&U2($.next)&&U2($.error)&&U2($.complete)}function F70($){return $&&$ instanceof PU||M70($)&&Me($)}function k70($){return U2($==null?void 0:$.lift)}function N4($){return function(Y){if(k70(Y))return Y.lift(function(G){try{return $(G,this)}catch(H){this.error(H)}});throw TypeError("Unable to lift unknown Observable type")}}function M8($,Y,G,H,q){return new P70($,Y,G,H,q)}var P70=function($){e4(Y,$);function Y(G,H,q,N,K,U){var M=$.call(this,G)||this;return M.onFinalize=K,M.shouldUnsubscribe=U,M._next=H?function(F){try{H(F)}catch(O){G.error(O)}}:$.prototype._next,M._error=N?function(F){try{N(F)}catch(O){G.error(O)}finally{this.unsubscribe()}}:$.prototype._error,M._complete=q?function(){try{q()}catch(F){G.error(F)}finally{this.unsubscribe()}}:$.prototype._complete,M}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}(PU),O70=kU(function($){return function(){$(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),YX=function($){e4(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 O70},Y.prototype.next=function(G){var H=this;bB(function(){var q,N;if(H._throwIfClosed(),!H.isStopped){H.currentObservers||(H.currentObservers=Array.from(H.observers));try{for(var K=ZX(H.currentObservers),U=K.next();!U.done;U=K.next()){var M=U.value;M.next(G)}}catch(F){q={error:F}}finally{try{U&&!U.done&&(N=K.return)&&N.call(K)}finally{if(q)throw q.error}}}})},Y.prototype.error=function(G){var H=this;bB(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;bB(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,N=q.hasError,K=q.isStopped,U=q.observers;return N||K?Ue:(this.currentObservers=null,U.push(G),new OH(function(){H.currentObservers=null,hB(U,G)}))},Y.prototype._checkFinalizedStatuses=function(G){var H=this,q=H.hasError,N=H.thrownError,K=H.isStopped;q?G.error(N):K&&G.complete()},Y.prototype.asObservable=function(){var G=new O2;return G.source=this,G},Y.create=function(G,H){return new Ye(G,H)},Y}(O2),Ye=function($){e4(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),L70=function($){e4(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,N=G._value;if(H)throw q;return this._throwIfClosed(),N},Y.prototype.next=function(G){$.prototype.next.call(this,this._value=G)},Y}(YX),R70={now:function(){return Date.now()}},w70=function($){e4(Y,$);function Y(G,H){return $.call(this)||this}return Y.prototype.schedule=function(G,H){return this},Y}(OH),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},x70=function($){e4(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 N=this.id,K=this.scheduler;return N!=null&&(this.id=this.recycleAsyncId(K,N,H)),this.pending=!0,this.delay=H,this.id=(q=this.id)!==null&&q!==void 0?q:this.requestAsyncId(K,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,N;try{this.work(G)}catch(K){q=!0,N=K||Error("Scheduled action threw falsy error")}if(q)return this.unsubscribe(),N},Y.prototype.unsubscribe=function(){if(!this.closed){var G=this,H=G.id,q=G.scheduler,N=q.actions;this.work=this.state=this.scheduler=null,this.pending=!1,hB(N,this),H!=null&&(this.id=this.recycleAsyncId(q,H,null)),this.delay=null,$.prototype.unsubscribe.call(this)}},Y}(w70),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=R70.now,$}(),_70=function($){e4(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),lZ0=new _70(x70);function V70($){return $&&U2($.schedule)}function C70($){return $[$.length-1]}function ke($){return V70(C70($))?$.pop():void 0}var Pe=function($){return $&&typeof $.length=="number"&&typeof $!="function"};function Oe($){return U2($==null?void 0:$.then)}function Le($){return U2($[OU])}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 I70(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var xe=I70();function _e($){return U2($==null?void 0:$[xe])}function Ve($){return q70(this,arguments,function(){var Y,G,H,q;return We(this,function(N){switch(N.label){case 0:Y=$.getReader(),N.label=1;case 1:N.trys.push([1,,9,10]),N.label=2;case 2:return[4,$X(Y.read())];case 3:return G=N.sent(),H=G.value,q=G.done,q?[4,$X(void 0)]:[3,5];case 4:return[2,N.sent()];case 5:return[4,$X(H)];case 6:return[4,N.sent()];case 7:return N.sent(),[3,2];case 8:return[3,10];case 9:return Y.releaseLock(),[7];case 10:return[2]}})})}function Ce($){return U2($==null?void 0:$.getReader)}function F8($){if($ instanceof O2)return $;if($!=null){if(Le($))return T70($);if(Pe($))return p70($);if(Oe($))return S70($);if(Re($))return Ie($);if(_e($))return E70($);if(Ce($))return D70($)}throw we($)}function T70($){return new O2(function(Y){var G=$[OU]();if(U2(G.subscribe))return G.subscribe(Y);throw TypeError("Provided object does not correctly implement Symbol.observable")})}function p70($){return new O2(function(Y){for(var G=0;G<$.length&&!Y.closed;G++)Y.next($[G]);Y.complete()})}function S70($){return new O2(function(Y){$.then(function(G){Y.closed||(Y.next(G),Y.complete())},function(G){return Y.error(G)}).then(null,Fe)})}function E70($){return new O2(function(Y){var G,H;try{for(var q=ZX($),N=q.next();!N.done;N=q.next()){var K=N.value;if(Y.next(K),Y.closed)return}}catch(U){G={error:U}}finally{try{N&&!N.done&&(H=q.return)&&H.call(q)}finally{if(G)throw G.error}}Y.complete()})}function Ie($){return new O2(function(Y){v70($,Y).catch(function(G){return Y.error(G)})})}function D70($){return Ie(Ve($))}function v70($,Y){var G,H,q,N;return z70(this,void 0,void 0,function(){var K,U;return We(this,function(M){switch(M.label){case 0:M.trys.push([0,5,6,11]),G=B70($),M.label=1;case 1:return[4,G.next()];case 2:if(H=M.sent(),!!H.done)return[3,4];if(K=H.value,Y.next(K),Y.closed)return[2];M.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return U=M.sent(),q={error:U},[3,11];case 6:return M.trys.push([6,,9,10]),H&&!H.done&&(N=G.return)?[4,N.call(G)]:[3,8];case 7:M.sent(),M.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 I3($,Y,G,H,q){H===void 0&&(H=0),q===void 0&&(q=!1);var N=Y.schedule(function(){G(),q?$.add(this.schedule(null,H)):this.unsubscribe()},H);if($.add(N),!q)return N}function Te($,Y){return Y===void 0&&(Y=0),N4(function(G,H){G.subscribe(M8(H,function(q){return I3(H,$,function(){return H.next(q)},Y)},function(){return I3(H,$,function(){return H.complete()},Y)},function(q){return I3(H,$,function(){return H.error(q)},Y)}))})}function pe($,Y){return Y===void 0&&(Y=0),N4(function(G,H){H.add($.schedule(function(){return G.subscribe(H)},Y))})}function j70($,Y){return F8($).pipe(pe(Y),Te(Y))}function f70($,Y){return F8($).pipe(pe(Y),Te(Y))}function g70($,Y){return new O2(function(G){var H=0;return Y.schedule(function(){H===$.length?G.complete():(G.next($[H++]),G.closed||this.schedule())})})}function m70($,Y){return new O2(function(G){var H;return I3(G,Y,function(){H=$[xe](),I3(G,Y,function(){var q,N,K;try{q=H.next(),N=q.value,K=q.done}catch(U){G.error(U);return}K?G.complete():G.next(N)},0,!0)}),function(){return U2(H==null?void 0:H.return)&&H.return()}})}function Se($,Y){if(!$)throw Error("Iterable cannot be null");return new O2(function(G){I3(G,Y,function(){var H=$[Symbol.asyncIterator]();I3(G,Y,function(){H.next().then(function(q){q.done?G.complete():G.next(q.value)})},0,!0)})})}function y70($,Y){return Se(Ve($),Y)}function b70($,Y){if($!=null){if(Le($))return j70($,Y);if(Pe($))return g70($,Y);if(Oe($))return f70($,Y);if(Re($))return Se($,Y);if(_e($))return m70($,Y);if(Ce($))return y70($,Y)}throw we($)}function RU($,Y){return Y?b70($,Y):F8($)}var cZ0=kU(function($){return function(Y){Y===void 0&&(Y=null),$(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=Y}});function C5($,Y){return N4(function(G,H){var q=0;G.subscribe(M8(H,function(N){H.next($.call(Y,N,q++))}))})}function h70($,Y,G,H,q,N,K,U){var M=[],F=0,O=0,L=!1,R=function(){L&&!M.length&&!F&&Y.complete()},C=function(T){return F<H?D(T):M.push(T)},D=function(T){F++;var m=!1;F8(G(T,O++)).subscribe(M8(Y,function(g){Y.next(g)},function(){m=!0},void 0,function(){if(m)try{F--;for(var g=function(){var n=M.shift();K||D(n)};M.length&&F<H;)g();R()}catch(n){Y.error(n)}}))};return $.subscribe(M8(Y,C,function(){L=!0,R()})),function(){}}function Ee($,Y,G){return G===void 0&&(G=1/0),U2(Y)?Ee(function(H,q){return C5(function(N,K){return Y(H,N,q,K)})(F8($(H,q)))},G):(typeof Y=="number"&&(G=Y),N4(function(H,q){return h70(H,q,$,G)}))}function u70($){return Ee(LU,$)}function d70(){return u70(1)}function He(){for(var $=[],Y=0;Y<arguments.length;Y++)$[Y]=arguments[Y];return d70()(RU($,ke($)))}function De($,Y){return N4(function(G,H){var q=0;G.subscribe(M8(H,function(N){return $.call(Y,N,q++)&&H.next(N)}))})}function s70($,Y,G,H,q){return function(N,K){var U=G,M=Y,F=0;N.subscribe(M8(K,function(O){var L=F++;M=U?$(M,O,L):(U=!0,O),K.next(M)},q))}}function FU($,Y){return N4(s70($,Y,arguments.length>=2,!0))}function l70($){$===void 0&&($={});var Y=$.connector,G=Y===void 0?function(){return new YX}:Y,H=$.resetOnError,q=H===void 0?!0:H,N=$.resetOnComplete,K=N===void 0?!0:N,U=$.resetOnRefCountZero,M=U===void 0?!0:U;return function(F){var O,L,R,C=0,D=!1,T=!1,m=function(){L==null||L.unsubscribe(),L=void 0},g=function(){m(),O=R=void 0,D=T=!1},n=function(){var c=O;g(),c==null||c.unsubscribe()};return N4(function(c,I){C++,!T&&!D&&m();var V=R=R??G();I.add(function(){C--,C===0&&!T&&!D&&(L=AU(n,M))}),V.subscribe(I),!O&&C>0&&(O=new MH({next:function(v){return V.next(v)},error:function(v){T=!0,m(),L=AU(g,q,v),V.error(v)},complete:function(){D=!0,m(),L=AU(g,K),V.complete()}}),F8(c).subscribe(O))})(F)}}function AU($,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 MH({next:function(){q.unsubscribe(),$()}});return F8(Y.apply(void 0,UH([],WH(G)))).subscribe(q)}}function k8(){for(var $=[],Y=0;Y<arguments.length;Y++)$[Y]=arguments[Y];var G=ke($);return N4(function(H,q){(G?He($,H,G):He($,H)).subscribe(q)})}function ze($){return N4(function(Y,G){F8($).subscribe(M8(G,function(){return G.complete()},MU)),!G.closed&&Y.subscribe(G)})}function c70($,Y,G){var H=U2($)||Y||G?{next:$,error:Y,complete:G}:$;return H?N4(function(q,N){var K;(K=H.subscribe)===null||K===void 0||K.call(H);var U=!0;q.subscribe(M8(N,function(M){var F;(F=H.next)===null||F===void 0||F.call(H,M),N.next(M)},function(){var M;U=!1,(M=H.complete)===null||M===void 0||M.call(H),N.complete()},function(M){var F;U=!1,(F=H.error)===null||F===void 0||F.call(H,M),N.error(M)},function(){var M,F;U&&((M=H.unsubscribe)===null||M===void 0||M.call(H)),(F=H.finalize)===null||F===void 0||F.call(H)}))}):LU}var{defineProperty:i70,defineProperties:o70,getOwnPropertyDescriptors:r70,getOwnPropertySymbols:qe}=Object,n70=Object.prototype.hasOwnProperty,a70=Object.prototype.propertyIsEnumerable,Be=($,Y,G)=>(Y in $)?i70($,Y,{enumerable:!0,configurable:!0,writable:!0,value:G}):$[Y]=G,U8=($,Y)=>{for(var G in Y||(Y={}))n70.call(Y,G)&&Be($,G,Y[G]);if(qe)for(var G of qe(Y))a70.call(Y,G)&&Be($,G,Y[G]);return $},C3=($,Y)=>o70($,r70(Y)),FH=($,Y,G)=>new Promise((H,q)=>{var N=(M)=>{try{U(G.next(M))}catch(F){q(F)}},K=(M)=>{try{U(G.throw(M))}catch(F){q(F)}},U=(M)=>M.done?H(M.value):Promise.resolve(M.value).then(N,K);U((G=G.apply($,Y)).next())}),ve="lk";function LH($){return typeof $>"u"?!1:t70($)||e70($)}function t70($){var Y;return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&$.hasOwnProperty("track")&&typeof((Y=$.publication)==null?void 0:Y.track)<"u":!1}function e70($){return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&$.hasOwnProperty("publication")&&typeof $.publication<"u":!1}function XX0($){return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&typeof $.publication>"u":!1}function uB($){if(typeof $=="string"||typeof $=="number")return`${$}`;if(XX0($))return`${$.participant.identity}_${$.source}_placeholder`;if(LH($))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],je=[...$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],iZ0=[...YX0,Q0.LocalTrackPublished,Q0.LocalTrackUnpublished],v1=H70.getLogger("lk-components-js");v1.setDefaultLevel("WARN");function fe($,Y){var G;return C3(U8({},$),{receivedAtMediaTimestamp:(G=Y.rtpTimestamp)!=null?G:0,receivedAt:Y.timestamp})}function ge($,Y,G){return[...$,...Y].reduceRight((H,q)=>(H.find((N)=>N.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 wU($){return typeof $=="object"}function xU($){return Array.isArray($)&&$.filter(wU).length>0}function QX0($){return`${ve}-${$}`}function _U($){let Y=kH($),G=VU($.participant).pipe(C5(()=>kH($)),k8(Y));return{className:QX0($.source===e.Source.Camera||$.source===e.Source.ScreenShare?"participant-media-video":"participant-media-audio"),trackObserver:G}}function kH($){if(LH($))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 O2((G)=>{let H=()=>{G.next($)};return Y.forEach((q)=>{$.on(q,H)}),()=>{Y.forEach((q)=>{$.off(q,H)})}}).pipe(k8($))}function ye($,Y){return new O2((G)=>{let H=(...q)=>{G.next(q)};return $.on(Y,H),()=>{$.off(Y,H)}})}function be($){return ye($,t.ConnectionStateChanged).pipe(C5(([Y])=>Y),k8($.state))}function GX0($){return ye($,t.DataReceived)}function he($,...Y){return new O2((G)=>{let H=()=>{G.next($)};return Y.forEach((q)=>{$.on(q,H)}),()=>{Y.forEach((q)=>{$.off(q,H)})}}).pipe(k8($))}function VU($){return he($,Q0.TrackMuted,Q0.TrackUnmuted,Q0.ParticipantPermissionsChanged,Q0.TrackPublished,Q0.TrackUnpublished,Q0.LocalTrackPublished,Q0.LocalTrackUnpublished,Q0.MediaDevicesError,Q0.TrackSubscriptionStatusChanged).pipe(C5((Y)=>{let{isMicrophoneEnabled:G,isCameraEnabled:H,isScreenShareEnabled:q}=Y,N=Y.getTrackPublication(e.Source.Microphone),K=Y.getTrackPublication(e.Source.Camera);return{isCameraEnabled:H,isMicrophoneEnabled:G,isScreenShareEnabled:q,cameraTrack:K,microphoneTrack:N,participant:Y}}))}function HX0($,Y){return new O2((G)=>{let H=(...q)=>{G.next(q)};return $.on(Y,H),()=>{$.off(Y,H)}})}function ue($,Y={}){var G;let H,q=new O2((M)=>(H=M,()=>U.unsubscribe())).pipe(k8(Array.from($.remoteParticipants.values()))),N=(G=Y.additionalRoomEvents)!=null?G:je,K=Array.from(new Set([t.ParticipantConnected,t.ParticipantDisconnected,t.ConnectionStateChanged,...N])),U=me($,...K).subscribe((M)=>H==null?void 0:H.next(Array.from(M.remoteParticipants.values())));return $.remoteParticipants.size>0&&(H==null||H.next(Array.from($.remoteParticipants.values()))),q}function CU($){return typeof $>"u"?new O2:HX0($,Q0.AttributesChanged).pipe(C5(([Y])=>({changed:Y,attributes:$.attributes})),k8({changed:$.attributes,attributes:$.attributes}))}var IU={CHAT:"lk.chat",TRANSCRIPTION:"lk.transcription"},zX0={CHAT:"lk-chat-topic"};function de($,Y){return FH(this,arguments,function*(G,H,q={}){let{reliable:N,destinationIdentities:K,topic:U}=q;yield G.publishData(H,{destinationIdentities:K,topic:U,reliable:N})})}function se($,Y,G){let H=Array.isArray(Y)?Y:[Y],q=GX0($).pipe(De(([,,,U])=>Y===void 0||U!==void 0&&H.includes(U)),C5(([U,M,,F])=>{let O={payload:U,topic:F,from:M};return G==null||G(O),O})),N,K=new O2((U)=>{N=U});return{messageObservable:q,isSendingObservable:K,send:(U,...M)=>FH(this,[U,...M],function*(F,O={}){N.next(!0);try{yield de($.localParticipant,F,U8({topic:H[0]},O))}finally{N.next(!1)}})}}var yB=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,N,K,U;let M=()=>{var V,v,s;return((V=$.serverInfo)==null?void 0:V.edition)===1||!!((v=$.serverInfo)!=null&&v.version)&&Y5((s=$.serverInfo)==null?void 0:s.version,"1.8.2")>0},F=new YX,O=(G=Y==null?void 0:Y.channelTopic)!=null?G:IU.CHAT,L=(H=Y==null?void 0:Y.channelTopic)!=null?H:zX0.CHAT,R=!1;yB.has($)||(R=!0);let C=(q=yB.get($))!=null?q:new Map,D=(N=C.get(O))!=null?N:new YX;C.set(O,D),yB.set($,C);let T=(K=Y==null?void 0:Y.messageDecoder)!=null?K:BX0;if(R){$.registerTextStreamHandler(O,(v,s)=>FH(this,null,function*(){let{id:f,timestamp:o}=v.info;RU(v).pipe(FU((u,X0)=>u+X0),C5((u)=>({id:f,timestamp:o,message:u,from:$.getParticipantByIdentity(s.identity),type:"chatMessage"}))).subscribe({next:(u)=>D.next(u)})}));let{messageObservable:V}=se($,[L]);V.pipe(C5((v)=>{let s=T(v.payload);return qX0(s)?void 0:C3(U8({},s),{type:"chatMessage",from:v.from})}),De((v)=>!!v),ze(F)).subscribe(D)}let m=D.pipe(FU((V,v)=>{if("id"in v&&V.find((s)=>{var f,o;return((f=s.from)==null?void 0:f.identity)===((o=v.from)==null?void 0:o.identity)&&s.id===v.id})){let s=V.findIndex((f)=>f.id===v.id);if(s>-1){let f=V[s];V[s]=C3(U8({},v),{timestamp:f.timestamp,editTimestamp:v.timestamp})}return[...V]}return[...V,v]},[]),ze(F)),g=new L70(!1),n=(U=Y==null?void 0:Y.messageEncoder)!=null?U:JX0,c=(V,v)=>FH(this,null,function*(){var s;v||(v={}),(s=v.topic)!=null||(v.topic=O),g.next(!0);try{let f={id:(yield $.localParticipant.sendText(V,v)).id,timestamp:Date.now(),message:V},o=C3(U8({},f),{attachedFiles:v.attachments}),u=C3(U8({},o),{type:"chatMessage",from:$.localParticipant,attributes:v.attributes});D.next(u);let X0=n(C3(U8({},f),{ignoreLegacy:M()}));try{yield de($.localParticipant,X0,{reliable:!0,topic:L})}catch(Y0){v1.info("could not send message in legacy chat format",Y0)}return u}finally{g.next(!1)}});function I(){F.next(),F.complete(),D.complete(),yB.delete($),$.unregisterTextStreamHandler(O)}return $.once(t.Disconnected,I),{messageObservable:m,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((N)=>{Y.forEach((K)=>{let U=Array.from(N.trackPublications.values()).filter((M)=>M.source===K&&(!G||M.track)).map((M)=>({participant:N,publication:M,source:M.source}));q.push(...U)})}),{trackReferences:q,participants:H}}function Ae($,Y,G=!1){let{sources:H,kind:q,name:N}=Y;return Array.from($.trackPublications.values()).filter((K)=>(!H||H.includes(K.source))&&(!q||K.kind===q)&&(!N||K.trackName===N)&&(!G||K.track)).map((K)=>({participant:$,publication:K,source:K.source}))}function ie($,Y,G){var H,q;let N=(H=G.additionalRoomEvents)!=null?H:je,K=(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,...N]).values());return me($,...U).pipe(C5((M)=>{let F=Je(M,Y,K);return v1.debug(`TrackReference[] was updated. (length ${F.trackReferences.length})`,F),F}),k8(Je($,Y,K)))}function oe($,Y){return he($,...ZX0).pipe(C5((G)=>{let H=Ae(G,Y);return v1.debug(`TrackReference[] was updated. (length ${H.length})`,H),H}),k8(Ae($,Y)))}function re($,Y){return new O2((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(C5(([Y])=>Y))}function AX0($,Y){if(typeof localStorage>"u"){v1.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){v1.error(`Error setting item to local storage: ${G}`)}}function NX0($){if(typeof localStorage>"u"){v1.error("Local storage is not available.");return}try{let Y=localStorage.getItem($);if(!Y){v1.warn(`Item with key ${$} does not exist in local storage.`);return}return JSON.parse(Y)}catch(Y){v1.error(`Error getting item from local storage: ${Y}`);return}}function KX0($){return{load:()=>NX0($),save:(Y)=>AX0($,Y)}}var WX0=`${ve}-user-choices`;var{load:oZ0,save:rZ0}=KX0(WX0);var NU=null,KU=null,UX0=0;function Ne(){return NU||(NU=new Map),NU}function MX0(){return KU||(KU=new WeakMap),KU}function FX0($,Y){let G=MX0(),H=G.get($);return H||(H=`room_${UX0++}`,G.set($,H)),`${H}:${Y}`}function te($,Y){let G=FX0($,Y),H=Ne(),q=H.get(G);if(q)return q;let N=new YX,K=[],U="lk.segment_id",M=N.pipe(c70({subscribe:()=>{$.registerTextStreamHandler(Y,(F,O)=>FH(this,null,function*(){var L;let R=RU(F).pipe(FU((D,T)=>D+T,"")),C=!!((L=F.info.attributes)!=null&&L[U]);R.subscribe((D)=>{let T=K.findIndex((m)=>{var g,n;return m.streamInfo.id===F.info.id||C&&((g=m.streamInfo.attributes)==null?void 0:g[U])===((n=F.info.attributes)==null?void 0:n[U])});T!==-1?(K[T]=C3(U8({},K[T]),{text:D}),N.next([...K])):(K.push({text:D,participantInfo:O,streamInfo:F.info}),N.next([...K]))})}))},finalize:()=>{$.unregisterTextStreamHandler(Y)}}),l70());return H.set(G,M),$.on(t.Disconnected,()=>{Ne().delete(G),K=[],N.next([])}),M}var kX0=Q5.createContext(void 0);var ee=Q5.createContext(void 0);function X00(){return Q5.useContext(ee)}function TU($){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=Q5.createContext(void 0);function dB(){return Q5.useContext($00)}var sB=Q5.createContext(void 0);function pU(){return Q5.useContext(sB)}function P8($){let Y=pU(),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=Q5.createContext(void 0);var Z00=Q5.createContext(void 0);var M2=B(U1(),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 OX0(){for(var $,Y,G=0,H="",q=arguments.length;G<q;G++)($=arguments[G])&&(Y=Y00($))&&(H&&(H+=" "),H+=Y);return H}function LX0(...$){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 N=Y[q],K=H[q];typeof N=="function"&&typeof K=="function"&&q[0]==="o"&&q[1]==="n"&&q.charCodeAt(2)>=65&&q.charCodeAt(2)<=90?Y[q]=LX0(N,K):(q==="className"||q==="UNSAFE_className")&&typeof N=="string"&&typeof K=="string"?Y[q]=OX0(N,K):Y[q]=K!==void 0?K:N}}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:N,connect:K,audio:U,video:M,screen:F,onConnected:O,onDisconnected:L,onError:R,onMediaDeviceFailure:C,onEncryptionError:D,simulateParticipants:T,...m}={...xX0,...$};H&&q&&v1.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,n]=M2.useState(),c=M2.useRef(K);M2.useEffect(()=>{n(q??new n4(H))},[q,JSON.stringify(H,wX0)]);let I=M2.useMemo(()=>{let{className:V}=ce();return Q00(m,{className:V})},[m]);return M2.useEffect(()=>{if(!g)return;let V=()=>{let u=g.localParticipant;v1.debug("trying to publish local tracks"),Promise.all([u.setMicrophoneEnabled(!!U,typeof U!="boolean"?U:void 0),u.setCameraEnabled(!!M,typeof M!="boolean"?M:void 0),u.setScreenShareEnabled(!!F,typeof F!="boolean"?F:void 0)]).catch((X0)=>{v1.warn(X0),R==null||R(X0)})},v=(u,X0)=>{let Y0=e7.getFailure(u);C==null||C(Y0,X0)},s=(u)=>{D==null||D(u)},f=(u)=>{L==null||L(u)},o=()=>{O==null||O()};return g.on(t.SignalConnected,V).on(t.MediaDevicesError,v).on(t.EncryptionError,s).on(t.Disconnected,f).on(t.Connected,o),()=>{g.off(t.SignalConnected,V).off(t.MediaDevicesError,v).off(t.EncryptionError,s).off(t.Disconnected,f).off(t.Connected,o)}},[g,U,M,F,R,D,C,O,L]),M2.useEffect(()=>{if(g){if(T){g.simulateParticipants({participants:{count:T},publish:{audio:!0,useRealTracks:!0}});return}if(K){if(c.current=!0,v1.debug("connecting"),!Y){v1.debug("no token yet");return}if(!G){v1.warn("no livekit url provided"),R==null||R(Error("no livekit url provided"));return}g.connect(G,Y,N).catch((V)=>{v1.warn(V),c.current===!0&&(R==null||R(V))})}else v1.debug("disconnecting because connect is false"),c.current=!1,g.disconnect()}},[K,Y,JSON.stringify(N),g,R,G,T]),M2.useEffect(()=>{if(g)return()=>{v1.info("disconnecting on onmount"),g.disconnect()}},[g]),{room:g,htmlProps:I}}var SU=M2.forwardRef(function($,Y){let{room:G,htmlProps:H}=H00($);return M2.createElement("div",{ref:Y,...H},G&&M2.createElement(sB.Provider,{value:G},M2.createElement(Z00.Provider,{value:$.featureFlags},$.children)))});function O8($,Y,G=!0){let[H,q]=z1.useState(Y);return z1.useEffect(()=>{if(G&&q(Y),typeof window>"u"||!$)return;let N=$.subscribe(q);return()=>N.unsubscribe()},[$,G]),H}function T3($){let Y=P8($),G=z1.useMemo(()=>be(Y),[Y]);return O8(G,Y.state)}function K4($={}){let Y=P8($.room),[G,H]=z1.useState(Y.localParticipant),[q,N]=z1.useState(G.isMicrophoneEnabled),[K,U]=z1.useState(G.isCameraEnabled),[M,F]=z1.useState(G.isScreenShareEnabled),[O,L]=z1.useState(G.lastMicrophoneError),[R,C]=z1.useState(G.lastCameraError),[D,T]=z1.useState(void 0),[m,g]=z1.useState(void 0),n=(c)=>{U(c.isCameraEnabled),N(c.isMicrophoneEnabled),F(c.isScreenShareEnabled),g(c.cameraTrack),T(c.microphoneTrack),L(c.participant.lastMicrophoneError),C(c.participant.lastCameraError),H(c.participant)};return z1.useEffect(()=>{let c=VU(Y.localParticipant).subscribe(n);return()=>c.unsubscribe()},[Y]),{isMicrophoneEnabled:q,isScreenShareEnabled:M,isCameraEnabled:K,microphoneTrack:D,cameraTrack:m,lastMicrophoneError:O,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}=K4($);return z1.useMemo(()=>[G,...Y],[G,Y])}function DU($=[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([]),[N,K]=z1.useState([]),U=z1.useMemo(()=>$.map((M)=>wU(M)?M.source:M),[JSON.stringify($)]);return z1.useEffect(()=>{let M=ie(G,U,{additionalRoomEvents:Y.updateOnlyOn,onlySubscribed:Y.onlySubscribed}).subscribe(({trackReferences:F,participants:O})=>{v1.debug("setting track bundles",F,O),q(F),K(O)});return()=>M.unsubscribe()},[G,JSON.stringify(Y.onlySubscribed),JSON.stringify(Y.updateOnlyOn),JSON.stringify($)]),z1.useMemo(()=>{if(xU($)){let M=pX0($,N),F=Array.from(H);return N.forEach((O)=>{M.has(O.identity)&&(M.get(O.identity)??[]).forEach((L)=>{if(H.find(({participant:C,publication:D})=>O.identity===C.identity&&D.source===L))return;v1.debug(`Add ${L} placeholder for participant ${O.identity}.`);let R={participant:O,source:L};F.push(R)})}),F}else return H},[H,N,$])}function TX0($,Y){let G=new Set($);for(let H of Y)G.delete(H);return G}function pX0($,Y){let G=new Map;if(xU($)){let H=$.filter((q)=>q.withPlaceholder).map((q)=>q.source);Y.forEach((q)=>{let N=q.getTrackPublications().map((U)=>{var M;return(M=U.track)==null?void 0:M.source}).filter((U)=>U!==void 0),K=Array.from(TX0(new Set(H),new Set(N)));K.length>0&&G.set(q.identity,K)})}return G}function vU($){let Y=P8($==null?void 0:$.room),G=T3(Y),H=z1.useMemo(()=>G===a0.Disconnected,[G]),q=z1.useMemo(()=>le(Y,$),[Y,$,H]),N=O8(q.isSendingObservable,!1),K=O8(q.messageObservable,[]);return{send:q.send,chatMessages:K,isSending:N}}function EU($,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=dB(),N=B00({room:H,updateOnlyOn:[]}),K=z1.useMemo(()=>G?N.find((M)=>M.identity===G):q,[G,N,q]),U=z1.useMemo(()=>{if(K)return oe(K,{sources:$})},[K,JSON.stringify($)]);return O8(U,[])}function SX0($){var Y,G,H;let q=z1.useMemo(()=>{var N;return(N=$==null?void 0:$.publication)!=null&&N.track?ae($==null?void 0:$.publication.track):void 0},[(Y=$==null?void 0:$.publication)==null?void 0:Y.track]);return O8(q,{timestamp:Date.now(),rtpTimestamp:(H=(G=$==null?void 0:$.publication)==null?void 0:G.track)==null?void 0:H.rtpTimestamp})}var EX0={bufferSize:100};function J00($,Y){let G={...EX0,...Y},[H,q]=z1.useState([]),N=SX0($),K=(U)=>{var M;(M=G.onTranscription)==null||M.call(G,U),q((F)=>ge(F,U.map((O)=>fe(O,N)),G.bufferSize))};return z1.useEffect(()=>{if(!($!=null&&$.publication))return;let U=ne($.publication).subscribe((M)=>{K(...M)});return()=>{U.unsubscribe()}},[$&&uB($),K]),{segments:H}}function A00($={}){let Y=dB(),G=$.participant??Y,H=z1.useMemo(()=>G?CU(G):CU(G),[G]);return O8(H,{attributes:G==null?void 0:G.attributes})}var z00=QX.AgentState;function wH(){let $=RH(),Y=$.find((L)=>L.kind===N8.AGENT&&!(QX.PublishOnBehalf in L.attributes)),G=$.find((L)=>L.kind===N8.AGENT&&L.attributes[QX.PublishOnBehalf]===(Y==null?void 0:Y.identity)),H=EU([e.Source.Microphone,e.Source.Camera],Y==null?void 0:Y.identity),q=EU([e.Source.Microphone,e.Source.Camera],G==null?void 0:G.identity),N=H.find((L)=>L.source===e.Source.Microphone)??q.find((L)=>L.source===e.Source.Microphone),K=H.find((L)=>L.source===e.Source.Camera)??q.find((L)=>L.source===e.Source.Camera),{segments:U}=J00(N),M=T3(),{attributes:F}=A00({participant:Y}),O=z1.useMemo(()=>M===a0.Disconnected?"disconnected":M===a0.Connecting||!Y||!(F!=null&&F[z00])?"connecting":F[z00],[F,Y,M]);return{agent:Y,state:O,audioTrack:N,videoTrack:K,agentTranscriptions:U,agentAttributes:F}}function N00($,Y){let G=P8(Y==null?void 0:Y.room),H=T3(G)===a0.Disconnected,q=z1.useMemo(()=>te(G,$),[G,$]);return{textStreams:O8(H?void 0:q,[])}}function jU($){let{participantIdentities:Y,trackSids:G}=$??{},{textStreams:H}=N00(IU.TRANSCRIPTION,{room:$==null?void 0:$.room});return z1.useMemo(()=>H.filter((q)=>Y?Y.includes(q.participantInfo.identity):!0).filter((q)=>{var N;return G?G.includes(((N=q.streamInfo.attributes)==null?void 0:N[QX.TranscribedTrackId])??""):!0}),[H,Y,G])}var lB={exports:{}},q00;function DX0(){if(q00)return lB.exports;q00=1;var $=typeof Reflect=="object"?Reflect:null,Y=$&&typeof $.apply=="function"?$.apply:function(I,V,v){return Function.prototype.apply.call(I,V,v)},G;$&&typeof $.ownKeys=="function"?G=$.ownKeys:Object.getOwnPropertySymbols?G=function(I){return Object.getOwnPropertyNames(I).concat(Object.getOwnPropertySymbols(I))}:G=function(I){return Object.getOwnPropertyNames(I)};function H(I){console&&console.warn&&console.warn(I)}var q=Number.isNaN||function(I){return I!==I};function N(){N.init.call(this)}lB.exports=N,lB.exports.once=g,N.EventEmitter=N,N.prototype._events=void 0,N.prototype._eventsCount=0,N.prototype._maxListeners=void 0;var K=10;function U(I){if(typeof I!="function")throw TypeError('The "listener" argument must be of type Function. Received type '+typeof I)}Object.defineProperty(N,"defaultMaxListeners",{enumerable:!0,get:function(){return K},set:function(I){if(typeof I!="number"||I<0||q(I))throw RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+I+".");K=I}}),N.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},N.prototype.setMaxListeners=function(I){if(typeof I!="number"||I<0||q(I))throw RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+I+".");return this._maxListeners=I,this};function M(I){return I._maxListeners===void 0?N.defaultMaxListeners:I._maxListeners}N.prototype.getMaxListeners=function(){return M(this)},N.prototype.emit=function(I){for(var V=[],v=1;v<arguments.length;v++)V.push(arguments[v]);var s=I==="error",f=this._events;if(f!==void 0)s=s&&f.error===void 0;else if(!s)return!1;if(s){var o;if(V.length>0&&(o=V[0]),o instanceof Error)throw o;var u=Error("Unhandled error."+(o?" ("+o.message+")":""));throw u.context=o,u}var X0=f[I];if(X0===void 0)return!1;if(typeof X0=="function")Y(X0,this,V);else for(var Y0=X0.length,M0=D(X0,Y0),v=0;v<Y0;++v)Y(M0[v],this,V);return!0};function F(I,V,v,s){var f,o,u;if(U(v),o=I._events,o===void 0?(o=I._events=Object.create(null),I._eventsCount=0):(o.newListener!==void 0&&(I.emit("newListener",V,v.listener?v.listener:v),o=I._events),u=o[V]),u===void 0)u=o[V]=v,++I._eventsCount;else if(typeof u=="function"?u=o[V]=s?[v,u]:[u,v]:s?u.unshift(v):u.push(v),f=M(I),f>0&&u.length>f&&!u.warned){u.warned=!0;var X0=Error("Possible EventEmitter memory leak detected. "+u.length+" "+String(V)+" listeners added. Use emitter.setMaxListeners() to increase limit");X0.name="MaxListenersExceededWarning",X0.emitter=I,X0.type=V,X0.count=u.length,H(X0)}return I}N.prototype.addListener=function(I,V){return F(this,I,V,!1)},N.prototype.on=N.prototype.addListener,N.prototype.prependListener=function(I,V){return F(this,I,V,!0)};function O(){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 L(I,V,v){var s={fired:!1,wrapFn:void 0,target:I,type:V,listener:v},f=O.bind(s);return f.listener=v,s.wrapFn=f,f}N.prototype.once=function(I,V){return U(V),this.on(I,L(this,I,V)),this},N.prototype.prependOnceListener=function(I,V){return U(V),this.prependListener(I,L(this,I,V)),this},N.prototype.removeListener=function(I,V){var v,s,f,o,u;if(U(V),s=this._events,s===void 0)return this;if(v=s[I],v===void 0)return this;if(v===V||v.listener===V)--this._eventsCount===0?this._events=Object.create(null):(delete s[I],s.removeListener&&this.emit("removeListener",I,v.listener||V));else if(typeof v!="function"){for(f=-1,o=v.length-1;o>=0;o--)if(v[o]===V||v[o].listener===V){u=v[o].listener,f=o;break}if(f<0)return this;f===0?v.shift():T(v,f),v.length===1&&(s[I]=v[0]),s.removeListener!==void 0&&this.emit("removeListener",I,u||V)}return this},N.prototype.off=N.prototype.removeListener,N.prototype.removeAllListeners=function(I){var V,v,s;if(v=this._events,v===void 0)return this;if(v.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):v[I]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete v[I]),this;if(arguments.length===0){var f=Object.keys(v),o;for(s=0;s<f.length;++s)o=f[s],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(V=v[I],typeof V=="function")this.removeListener(I,V);else if(V!==void 0)for(s=V.length-1;s>=0;s--)this.removeListener(I,V[s]);return this};function R(I,V,v){var s=I._events;if(s===void 0)return[];var f=s[V];return f===void 0?[]:typeof f=="function"?v?[f.listener||f]:[f]:v?m(f):D(f,f.length)}N.prototype.listeners=function(I){return R(this,I,!0)},N.prototype.rawListeners=function(I){return R(this,I,!1)},N.listenerCount=function(I,V){return typeof I.listenerCount=="function"?I.listenerCount(V):C.call(I,V)},N.prototype.listenerCount=C;function C(I){var V=this._events;if(V!==void 0){var v=V[I];if(typeof v=="function")return 1;if(v!==void 0)return v.length}return 0}N.prototype.eventNames=function(){return this._eventsCount>0?G(this._events):[]};function D(I,V){for(var v=Array(V),s=0;s<V;++s)v[s]=I[s];return v}function T(I,V){for(;V+1<I.length;V++)I[V]=I[V+1];I.pop()}function m(I){for(var V=Array(I.length),v=0;v<V.length;++v)V[v]=I[v].listener||I[v];return V}function g(I,V){return new Promise(function(v,s){function f(u){I.removeListener(V,o),s(u)}function o(){typeof I.removeListener=="function"&&I.removeListener("error",f),v([].slice.call(arguments))}c(I,V,o,{once:!0}),V!=="error"&&n(I,f,{once:!0})})}function n(I,V,v){typeof I.on=="function"&&c(I,"error",V,v)}function c(I,V,v,s){if(typeof I.on=="function")s.once?I.once(V,v):I.on(V,v);else if(typeof I.addEventListener=="function")I.addEventListener(V,function f(o){s.once&&I.removeEventListener(V,f),v(o)});else throw TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof I)}return lB.exports}var hY0=DX0();var k1=B(U1(),1),iB=B(U1(),1);function tX0($,Y={}){let[G,H]=k1.useState(kH($)),[q,N]=k1.useState(G==null?void 0:G.isMuted),[K,U]=k1.useState(G==null?void 0:G.isSubscribed),[M,F]=k1.useState(G==null?void 0:G.track),[O,L]=k1.useState("landscape"),R=k1.useRef(),{className:C,trackObserver:D}=k1.useMemo(()=>_U($),[$.participant.sid??$.participant.identity,$.source,LH($)&&$.publication.trackSid]);return k1.useEffect(()=>{let T=D.subscribe((m)=>{v1.debug("update track",m),H(m),N(m==null?void 0:m.isMuted),U(m==null?void 0:m.isSubscribed),F(m==null?void 0:m.track)});return()=>T==null?void 0:T.unsubscribe()},[D]),k1.useEffect(()=>{var T,m;return M&&(R.current&&M.detach(R.current),(T=Y.element)!=null&&T.current&&!($.participant.isLocal&&(M==null?void 0:M.kind)==="audio")&&M.attach(Y.element.current)),R.current=(m=Y.element)==null?void 0:m.current,()=>{R.current&&(M==null||M.detach(R.current))}},[M,Y.element]),k1.useEffect(()=>{var T,m;if(typeof((T=G==null?void 0:G.dimensions)==null?void 0:T.width)=="number"&&typeof((m=G==null?void 0:G.dimensions)==null?void 0:m.height)=="number"){let g=G.dimensions.width>G.dimensions.height?"landscape":"portrait";L(g)}},[G]),{publication:G,isMuted:q,isSubscribed:K,track:M,elementProps:G00(Y.props,{className:C,"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":O}})}}var fU,K00;function eX0(){if(K00)return fU;K00=1;var $="Expected a function",Y=NaN,G="[object Symbol]",H=/^\s+|\s+$/g,q=/^[-+]0x[0-9a-f]+$/i,N=/^0b[01]+$/i,K=/^0o[0-7]+$/i,U=parseInt,M=typeof PH=="object"&&PH&&PH.Object===Object&&PH,F=typeof self=="object"&&self&&self.Object===Object&&self,O=M||F||Function("return this")(),L=Object.prototype,R=L.toString,C=Math.max,D=Math.min,T=function(){return O.Date.now()};function m(V,v,s){var f,o,u,X0,Y0,M0,b0=0,G0=!1,K0=!1,P0=!0;if(typeof V!="function")throw TypeError($);v=I(v)||0,g(s)&&(G0=!!s.leading,K0=("maxWait"in s),u=K0?C(I(s.maxWait)||0,v):u,P0=("trailing"in s)?!!s.trailing:P0);function J0(O0){var x1=f,i1=o;return f=o=void 0,b0=O0,X0=V.apply(i1,x1),X0}function v0(O0){return b0=O0,Y0=setTimeout(_0,v),G0?J0(O0):X0}function c1(O0){var x1=O0-M0,i1=O0-b0,q6=v-x1;return K0?D(q6,u-i1):q6}function Z0(O0){var x1=O0-M0,i1=O0-b0;return M0===void 0||x1>=v||x1<0||K0&&i1>=u}function _0(){var O0=T();if(Z0(O0))return C0(O0);Y0=setTimeout(_0,c1(O0))}function C0(O0){return Y0=void 0,P0&&f?J0(O0):(f=o=void 0,X0)}function I0(){Y0!==void 0&&clearTimeout(Y0),b0=0,f=M0=o=Y0=void 0}function g1(){return Y0===void 0?X0:C0(T())}function z6(){var O0=T(),x1=Z0(O0);if(f=arguments,o=this,M0=O0,x1){if(Y0===void 0)return v0(M0);if(K0)return Y0=setTimeout(_0,v),J0(M0)}return Y0===void 0&&(Y0=setTimeout(_0,v)),X0}return z6.cancel=I0,z6.flush=g1,z6}function g(V){var v=typeof V;return!!V&&(v=="object"||v=="function")}function n(V){return!!V&&typeof V=="object"}function c(V){return typeof V=="symbol"||n(V)&&R.call(V)==G}function I(V){if(typeof V=="number")return V;if(c(V))return Y;if(g(V)){var v=typeof V.valueOf=="function"?V.valueOf():V;V=g(v)?v+"":v}if(typeof V!="string")return V===0?V:+V;V=V.replace(H,"");var s=N.test(V);return s||K.test(V)?U(V.slice(2),s?2:8):q.test(V)?Y:+V}return fU=m,fU}var ZQ0=eX0();var W00=k1.forwardRef(function({trackRef:$,onSubscriptionStatusChanged:Y,volume:G,...H},q){let N=TU($),K=k1.useRef(null);k1.useImperativeHandle(q,()=>K.current);let{elementProps:U,isSubscribed:M,track:F,publication:O}=tX0(N,{element:K,props:H});return k1.useEffect(()=>{Y==null||Y(!!M)},[M,Y]),k1.useEffect(()=>{F===void 0||G===void 0||(F instanceof jB?F.setVolume(G):v1.warn("Volume can only be set on remote audio tracks."))},[G,F]),k1.useEffect(()=>{O===void 0||H.muted===void 0||(O instanceof gB?O.setEnabled(!H.muted):v1.warn("Can only call setEnabled on remote track publications."))},[H.muted,O,F]),k1.createElement("audio",{ref:K,...U})});var X$0=1.6,YQ0=(1-X$0)*-1;function gU({room:$,volume:Y,muted:G}){let H=DU([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 k1.createElement("div",{style:{display:"none"}},H.map((q)=>k1.createElement(W00,{key:uB(q),trackRef:q,volume:Y,muted:G})))}var b2=B(U1(),1);var U00=B(U1(),1),oB=U00.createContext(null);var G5=B(U1(),1),mU="https://specialist.skippr.ai/api";function bU($){return`skippr_auth_${$}`}function $$0($){try{return localStorage.getItem(bU($))}catch{return null}}function Z$0($,Y){try{localStorage.setItem(bU($),Y)}catch(G){console.error("[Skippr] Failed to persist auth token:",G)}}function yU($){try{localStorage.removeItem(bU($))}catch(Y){console.error("[Skippr] Failed to clear auth token:",Y)}}function M00({appKey:$}){let[Y,G]=G5.useState(null),[H,q]=G5.useState(!1),[N,K]=G5.useState(!1),[U,M]=G5.useState(""),F=Y!==null;G5.useEffect(()=>{if(!$)return;let C=$$0($);if(!C)return;async function D(){q(!0);try{if((await fetch(`${mU}/v1/auth/validate-token`,{credentials:"omit",headers:{Authorization:`Bearer ${C}`}})).ok)G(C);else yU($)}catch{yU($)}finally{q(!1)}}D()},[$]),G5.useEffect(()=>{function C(){G(null),M("")}return window.addEventListener("skippr:logout",C),()=>window.removeEventListener("skippr:logout",C)},[]);let O=G5.useCallback(async(C)=>{if(!$)return!1;K(!0),M("");try{let D=await fetch(`${mU}/v1/auth/request-otp`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json","X-App-Key":$},body:JSON.stringify({email:C})});if(!D.ok){let T=await D.json().catch(()=>({}));throw Error(T.detail||"Failed to send verification code")}return!0}catch(D){return M(D instanceof Error?D.message:"Failed to send verification code"),!1}finally{K(!1)}},[$]),L=G5.useCallback(async(C,D)=>{if(!$)return;K(!0),M("");try{let T=await fetch(`${mU}/v1/auth/verify-otp`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json","X-App-Key":$},body:JSON.stringify({email:C,code:D,recaptchaToken:"sdk"})});if(!T.ok){let g=await T.json().catch(()=>({}));throw Error(g.detail||"Invalid or expired verification code")}let{token:m}=await T.json();Z$0($,m),G(m)}catch(T){M(T instanceof Error?T.message:"Verification failed");return}finally{K(!1)}},[$]),R=G5.useCallback(()=>{if($)yU($);G(null),M("")},[$]);return{isAuthenticated:F,isValidating:H,authToken:Y,requestOtp:O,verifyOtp:L,logout:R,error:U,isSubmitting:N}}var y6=B(U1(),1),rB="https://specialist.skippr.ai/api";async function Y$0($,Y){let G=await fetch(`${rB}/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 F00({agentId:$,authToken:Y,appKey:G,userToken:H}){let[q,N]=y6.useState(null),[K,U]=y6.useState(!1),[M,F]=y6.useState(!1),[O,L]=y6.useState(""),[R,C]=y6.useState(null),[D,T]=y6.useState(null),[m,g]=y6.useState(Y??null);y6.useEffect(()=>{let I=!1;if(Y){g(Y);return}if(G&&H)Y$0(G,H).then((V)=>{if(!I)g(V)}).catch((V)=>{if(!I)L(V instanceof Error?V.message:"Token exchange failed")});return()=>{I=!0}},[Y,G,H]);let n=y6.useCallback(async()=>{if(!m){L("No auth token available");return}let I={Authorization:`Bearer ${m}`};F(!0),L(""),C(null);try{let V=await fetch(`${rB}/v1/sessions`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json",...I},body:JSON.stringify({agentId:$})});if(!V.ok){let o=await V.json().catch(()=>null);throw C(V.status),Error(o?.detail||`Failed to create session: ${V.status}`)}let{session:v}=await V.json(),s=await fetch(`${rB}/v1/sessions/${v.id}/start`,{method:"POST",credentials:"omit",headers:I});if(!s.ok){let o=await s.json().catch(()=>null);throw C(s.status),Error(o?.detail||`Failed to start session: ${s.status}`)}let{connection:f}=await s.json();T(v.id),N({livekitUrl:f.livekitUrl,token:f.token}),U(!0)}catch(V){L(V instanceof Error?V.message:"Failed to start session")}finally{F(!1)}},[$,m]),c=y6.useCallback(async()=>{if(D&&m)try{await fetch(`${rB}/v1/sessions/${D}/complete`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json",Authorization:`Bearer ${m}`},body:JSON.stringify({})})}catch{}L(""),U(!1),N(null),T(null)},[D,m]);return{connection:q,shouldConnect:K,isStarting:M,error:O,errorCode:R,startSession:n,disconnect:c}}var aB=B(U1(),1);var nB=(...$)=>$.filter((Y,G,H)=>{return Boolean(Y)&&Y.trim()!==""&&H.indexOf(Y)===G}).join(" ").trim();var k00=($)=>$.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 hU=($)=>{let Y=P00($);return Y.charAt(0).toUpperCase()+Y.slice(1)};var xH=B(U1(),1);var O00={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 L00=($)=>{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:N,iconNode:K,...U},M)=>xH.createElement("svg",{ref:M,...O00,width:Y,height:Y,stroke:$,strokeWidth:H?Number(G)*24/Number(Y):G,className:nB("lucide",q),...!N&&!L00(U)&&{"aria-hidden":"true"},...U},[...K.map(([F,O])=>xH.createElement(F,O)),...Array.isArray(N)?N:[N]]));var q1=($,Y)=>{let G=aB.forwardRef(({className:H,...q},N)=>aB.createElement(R00,{ref:N,iconNode:Y,className:nB(`lucide-${k00(hU($))}`,`lucide-${$}`,H),...q}));return G.displayName=hU($),G};var Q$0=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],b6=q1("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"}]],L8=q1("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=q1("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=q1("send-horizontal",z$0);var q$0=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],_H=q1("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"}]],W4=q1("bot",B$0);var J$0=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],VH=q1("check",J$0);var A$0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],CH=q1("circle",A$0);var N$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"}]],IH=q1("mail",N$0);var K$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=q1("message-circle",K$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"}]],p3=q1("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"}]],S3=q1("mic",U$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"}]],E3=q1("monitor-off",M$0);var F$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"}]],x8=q1("monitor",F$0);var k$0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]],pH=q1("panel-right",k$0);var P$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"}]],D3=q1("phone-off",P$0);var O$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=q1("settings",O$0);var L$0=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],v3=q1("x",L$0);var XJ=B(U1(),1);var w00=B(U1(),1);function z5(){let $=w00.use(oB);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 _00(){for(var $,Y,G=0,H="",q=arguments.length;G<q;G++)($=arguments[G])&&(Y=x00($))&&(H&&(H+=" "),H+=Y);return H}var x$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}),p00=($=new Map,Y=null,G)=>({nextPart:$,validators:Y,classGroupId:G});var V00=[];var V$0=($)=>{let Y=I$0($),{conflictingClassGroups:G,conflictingClassGroupModifiers:H}=$;return{getClassGroupId:(K)=>{if(K.startsWith("[")&&K.endsWith("]"))return C$0(K);let U=K.split("-"),M=U[0]===""&&U.length>1?1:0;return S00(U,M,Y)},getConflictingClassGroupIds:(K,U)=>{if(U){let M=H[K],F=G[K];if(M){if(F)return x$0(F,M);return M}return F||V00}return G[K]||V00}}},S00=($,Y,G)=>{if($.length-Y===0)return G.classGroupId;let q=$[Y],N=G.nextPart.get(q);if(N){let F=S00($,Y+1,N);if(F)return F}let K=G.validators;if(K===null)return;let U=Y===0?$.join("-"):$.slice(Y).join("-"),M=K.length;for(let F=0;F<M;F++){let O=K[F];if(O.validator(U))return O.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})(),I$0=($)=>{let{theme:Y,classGroups:G}=$;return T$0(G,Y)},T$0=($,Y)=>{let G=p00();for(let H in $){let q=$[H];Bu(q,G,H,Y)}return G},Bu=($,Y,G,H)=>{let q=$.length;for(let N=0;N<q;N++){let K=$[N];p$0(K,Y,G,H)}},p$0=($,Y,G,H)=>{if(typeof $==="string"){S$0($,Y,G);return}if(typeof $==="function"){E$0($,Y,G,H);return}D$0($,Y,G,H)},S$0=($,Y,G)=>{let H=$===""?Y:E00(Y,$);H.classGroupId=G},E$0=($,Y,G,H)=>{if(v$0($)){Bu($(H),Y,G,H);return}if(Y.validators===null)Y.validators=[];Y.validators.push(_$0(G,$))},D$0=($,Y,G,H)=>{let q=Object.entries($),N=q.length;for(let K=0;K<N;K++){let[U,M]=q[K];Bu(M,E00(Y,U),G,H)}},E00=($,Y)=>{let G=$,H=Y.split("-"),q=H.length;for(let N=0;N<q;N++){let K=H[N],U=G.nextPart.get(K);if(!U)U=p00(),G.nextPart.set(K,U);G=U}return G},v$0=($)=>("isThemeGetter"in $)&&$.isThemeGetter===!0,j$0=($)=>{if($<1)return{get:()=>{return},set:()=>{}};let Y=0,G=Object.create(null),H=Object.create(null),q=(N,K)=>{if(G[N]=K,Y++,Y>$)Y=0,H=G,G=Object.create(null)};return{get(N){let K=G[N];if(K!==void 0)return K;if((K=H[N])!==void 0)return q(N,K),K},set(N,K){if(N in G)G[N]=K;else q(N,K)}}};var f$0=[],C00=($,Y,G,H,q)=>({modifiers:$,hasImportantModifier:Y,baseClassName:G,maybePostfixModifierPosition:H,isExternal:q}),g$0=($)=>{let{prefix:Y,experimentalParseClassName:G}=$,H=(q)=>{let N=[],K=0,U=0,M=0,F,O=q.length;for(let T=0;T<O;T++){let m=q[T];if(K===0&&U===0){if(m===":"){N.push(q.slice(M,T)),M=T+1;continue}if(m==="/"){F=T;continue}}if(m==="[")K++;else if(m==="]")K--;else if(m==="(")U++;else if(m===")")U--}let L=N.length===0?q:q.slice(M),R=L,C=!1;if(L.endsWith("!"))R=L.slice(0,-1),C=!0;else if(L.startsWith("!"))R=L.slice(1),C=!0;let D=F&&F>M?F-M:void 0;return C00(N,C,R,D)};if(Y){let q=Y+":",N=H;H=(K)=>K.startsWith(q)?N(K.slice(q.length)):C00(f$0,!1,K,void 0,!0)}if(G){let q=H;H=(N)=>G({className:N,parseClassName:q})}return H},m$0=($)=>{let Y=new Map;return $.orderSensitiveModifiers.forEach((G,H)=>{Y.set(G,1e6+H)}),(G)=>{let H=[],q=[];for(let N=0;N<G.length;N++){let K=G[N],U=K[0]==="[",M=Y.has(K);if(U||M){if(q.length>0)q.sort(),H.push(...q),q=[];H.push(K)}else q.push(K)}if(q.length>0)q.sort(),H.push(...q);return H}},y$0=($)=>({cache:j$0($.cacheSize),parseClassName:g$0($),sortModifiers:m$0($),...V$0($)}),b$0=/\s+/,h$0=($,Y)=>{let{parseClassName:G,getClassGroupId:H,getConflictingClassGroupIds:q,sortModifiers:N}=Y,K=[],U=$.trim().split(b$0),M="";for(let F=U.length-1;F>=0;F-=1){let O=U[F],{isExternal:L,modifiers:R,hasImportantModifier:C,baseClassName:D,maybePostfixModifierPosition:T}=G(O);if(L){M=O+(M.length>0?" "+M:M);continue}let m=!!T,g=H(m?D.substring(0,T):D);if(!g){if(!m){M=O+(M.length>0?" "+M:M);continue}if(g=H(D),!g){M=O+(M.length>0?" "+M:M);continue}m=!1}let n=R.length===0?"":R.length===1?R[0]:N(R).join(":"),c=C?n+"!":n,I=c+g;if(K.indexOf(I)>-1)continue;K.push(I);let V=q(g,m);for(let v=0;v<V.length;++v){let s=V[v];K.push(c+s)}M=O+(M.length>0?" "+M:M)}return M},u$0=(...$)=>{let Y=0,G,H,q="";while(Y<$.length)if(G=$[Y++]){if(H=D00(G))q&&(q+=" "),q+=H}return q},D00=($)=>{if(typeof $==="string")return $;let Y,G="";for(let H=0;H<$.length;H++)if($[H]){if(Y=D00($[H]))G&&(G+=" "),G+=Y}return G},d$0=($,...Y)=>{let G,H,q,N,K=(M)=>{let F=Y.reduce((O,L)=>L(O),$());return G=y$0(F),H=G.cache.get,q=G.cache.set,N=U,U(M)},U=(M)=>{let F=H(M);if(F)return F;let O=h$0(M,G);return q(M,O),O};return N=K,(...M)=>N(u$0(...M))},s$0=[],L2=($)=>{let Y=(G)=>G[$]||s$0;return Y.isThemeGetter=!0,Y},v00=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,j00=/^\((?:(\w[\w-]*):)?(.+)\)$/i,l$0=/^\d+\/\d+$/,c$0=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,i$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$/,o$0=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,r$0=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,n$0=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,qQ=($)=>l$0.test($),e0=($)=>!!$&&!Number.isNaN(Number($)),_8=($)=>!!$&&Number.isInteger(Number($)),zu=($)=>$.endsWith("%")&&e0($.slice(0,-1)),B9=($)=>c$0.test($),a$0=()=>!0,t$0=($)=>i$0.test($)&&!o$0.test($),f00=()=>!1,e$0=($)=>r$0.test($),XZ0=($)=>n$0.test($),$Z0=($)=>!L0($)&&!R0($),ZZ0=($)=>BQ($,y00,f00),L0=($)=>v00.test($),j3=($)=>BQ($,b00,t$0),qu=($)=>BQ($,zZ0,e0),I00=($)=>BQ($,g00,f00),YZ0=($)=>BQ($,m00,XZ0),tB=($)=>BQ($,h00,e$0),R0=($)=>j00.test($),EH=($)=>JQ($,b00),QZ0=($)=>JQ($,qZ0),T00=($)=>JQ($,g00),GZ0=($)=>JQ($,y00),HZ0=($)=>JQ($,m00),eB=($)=>JQ($,h00,!0),BQ=($,Y,G)=>{let H=v00.exec($);if(H){if(H[1])return Y(H[1]);return G(H[2])}return!1},JQ=($,Y,G=!1)=>{let H=j00.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",zZ0=($)=>$==="number",qZ0=($)=>$==="family-name",h00=($)=>$==="shadow";var BZ0=()=>{let $=L2("color"),Y=L2("font"),G=L2("text"),H=L2("font-weight"),q=L2("tracking"),N=L2("leading"),K=L2("breakpoint"),U=L2("container"),M=L2("spacing"),F=L2("radius"),O=L2("shadow"),L=L2("inset-shadow"),R=L2("text-shadow"),C=L2("drop-shadow"),D=L2("blur"),T=L2("perspective"),m=L2("aspect"),g=L2("ease"),n=L2("animate"),c=()=>["auto","avoid","all","avoid-page","page","left","right","column"],I=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],V=()=>[...I(),R0,L0],v=()=>["auto","hidden","clip","visible","scroll"],s=()=>["auto","contain","none"],f=()=>[R0,L0,M],o=()=>[qQ,"full","auto",...f()],u=()=>[_8,"none","subgrid",R0,L0],X0=()=>["auto",{span:["full",_8,R0,L0]},_8,R0,L0],Y0=()=>[_8,"auto",R0,L0],M0=()=>["auto","min","max","fr",R0,L0],b0=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G0=()=>["start","end","center","stretch","center-safe","end-safe"],K0=()=>["auto",...f()],P0=()=>[qQ,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...f()],J0=()=>[$,R0,L0],v0=()=>[...I(),T00,I00,{position:[R0,L0]}],c1=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Z0=()=>["auto","cover","contain",GZ0,ZZ0,{size:[R0,L0]}],_0=()=>[zu,EH,j3],C0=()=>["","none","full",F,R0,L0],I0=()=>["",e0,EH,j3],g1=()=>["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"],O0=()=>[e0,zu,T00,I00],x1=()=>["","none",D,R0,L0],i1=()=>["none",e0,R0,L0],q6=()=>["none",e0,R0,L0],k0=()=>[e0,R0,L0],q5=()=>[qQ,"full",...f()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[B9],breakpoint:[B9],color:[a$0],container:[B9],"drop-shadow":[B9],ease:["in","out","in-out"],font:[$Z0],"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",e0],text:[B9],"text-shadow":[B9],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",qQ,L0,R0,m]}],container:["container"],columns:[{columns:[e0,L0,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:V()}],overflow:[{overflow:v()}],"overflow-x":[{"overflow-x":v()}],"overflow-y":[{"overflow-y":v()}],overscroll:[{overscroll:s()}],"overscroll-x":[{"overscroll-x":s()}],"overscroll-y":[{"overscroll-y":s()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:o()}],"inset-x":[{"inset-x":o()}],"inset-y":[{"inset-y":o()}],start:[{start:o()}],end:[{end:o()}],top:[{top:o()}],right:[{right:o()}],bottom:[{bottom:o()}],left:[{left:o()}],visibility:["visible","invisible","collapse"],z:[{z:[_8,"auto",R0,L0]}],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:[e0,qQ,"auto","initial","none",L0]}],grow:[{grow:["",e0,R0,L0]}],shrink:[{shrink:["",e0,R0,L0]}],order:[{order:[_8,"first","last","none",R0,L0]}],"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:[...b0(),"normal"]}],"justify-items":[{"justify-items":[...G0(),"normal"]}],"justify-self":[{"justify-self":["auto",...G0()]}],"align-content":[{content:["normal",...b0()]}],"align-items":[{items:[...G0(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G0(),{baseline:["","last"]}]}],"place-content":[{"place-content":b0()}],"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:K0()}],mx:[{mx:K0()}],my:[{my:K0()}],ms:[{ms:K0()}],me:[{me:K0()}],mt:[{mt:K0()}],mr:[{mr:K0()}],mb:[{mb:K0()}],ml:[{ml:K0()}],"space-x":[{"space-x":f()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":f()}],"space-y-reverse":["space-y-reverse"],size:[{size:P0()}],w:[{w:[U,"screen",...P0()]}],"min-w":[{"min-w":[U,"screen","none",...P0()]}],"max-w":[{"max-w":[U,"screen","none","prose",{screen:[K]},...P0()]}],h:[{h:["screen","lh",...P0()]}],"min-h":[{"min-h":["screen","lh","none",...P0()]}],"max-h":[{"max-h":["screen","lh",...P0()]}],"font-size":[{text:["base",G,EH,j3]}],"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,L0]}],"font-family":[{font:[QZ0,L0,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,L0]}],"line-clamp":[{"line-clamp":[e0,"none",R0,qu]}],leading:[{leading:[N,...f()]}],"list-image":[{"list-image":["none",R0,L0]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",R0,L0]}],"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:[...g1(),"wavy"]}],"text-decoration-thickness":[{decoration:[e0,"from-font","auto",R0,j3]}],"text-decoration-color":[{decoration:J0()}],"underline-offset":[{"underline-offset":[e0,"auto",R0,L0]}],"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,L0]}],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,L0]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:v0()}],"bg-repeat":[{bg:c1()}],"bg-size":[{bg:Z0()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},_8,R0,L0],radial:["",R0,L0],conic:[_8,R0,L0]},HZ0,YZ0]}],"bg-color":[{bg:J0()}],"gradient-from-pos":[{from:_0()}],"gradient-via-pos":[{via:_0()}],"gradient-to-pos":[{to:_0()}],"gradient-from":[{from:J0()}],"gradient-via":[{via:J0()}],"gradient-to":[{to:J0()}],rounded:[{rounded:C0()}],"rounded-s":[{"rounded-s":C0()}],"rounded-e":[{"rounded-e":C0()}],"rounded-t":[{"rounded-t":C0()}],"rounded-r":[{"rounded-r":C0()}],"rounded-b":[{"rounded-b":C0()}],"rounded-l":[{"rounded-l":C0()}],"rounded-ss":[{"rounded-ss":C0()}],"rounded-se":[{"rounded-se":C0()}],"rounded-ee":[{"rounded-ee":C0()}],"rounded-es":[{"rounded-es":C0()}],"rounded-tl":[{"rounded-tl":C0()}],"rounded-tr":[{"rounded-tr":C0()}],"rounded-br":[{"rounded-br":C0()}],"rounded-bl":[{"rounded-bl":C0()}],"border-w":[{border:I0()}],"border-w-x":[{"border-x":I0()}],"border-w-y":[{"border-y":I0()}],"border-w-s":[{"border-s":I0()}],"border-w-e":[{"border-e":I0()}],"border-w-t":[{"border-t":I0()}],"border-w-r":[{"border-r":I0()}],"border-w-b":[{"border-b":I0()}],"border-w-l":[{"border-l":I0()}],"divide-x":[{"divide-x":I0()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":I0()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...g1(),"hidden","none"]}],"divide-style":[{divide:[...g1(),"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:[...g1(),"none","hidden"]}],"outline-offset":[{"outline-offset":[e0,R0,L0]}],"outline-w":[{outline:["",e0,EH,j3]}],"outline-color":[{outline:J0()}],shadow:[{shadow:["","none",O,eB,tB]}],"shadow-color":[{shadow:J0()}],"inset-shadow":[{"inset-shadow":["none",L,eB,tB]}],"inset-shadow-color":[{"inset-shadow":J0()}],"ring-w":[{ring:I0()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:J0()}],"ring-offset-w":[{"ring-offset":[e0,j3]}],"ring-offset-color":[{"ring-offset":J0()}],"inset-ring-w":[{"inset-ring":I0()}],"inset-ring-color":[{"inset-ring":J0()}],"text-shadow":[{"text-shadow":["none",R,eB,tB]}],"text-shadow-color":[{"text-shadow":J0()}],opacity:[{opacity:[e0,R0,L0]}],"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":[e0]}],"mask-image-linear-from-pos":[{"mask-linear-from":O0()}],"mask-image-linear-to-pos":[{"mask-linear-to":O0()}],"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":O0()}],"mask-image-t-to-pos":[{"mask-t-to":O0()}],"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":O0()}],"mask-image-r-to-pos":[{"mask-r-to":O0()}],"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":O0()}],"mask-image-b-to-pos":[{"mask-b-to":O0()}],"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":O0()}],"mask-image-l-to-pos":[{"mask-l-to":O0()}],"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":O0()}],"mask-image-x-to-pos":[{"mask-x-to":O0()}],"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":O0()}],"mask-image-y-to-pos":[{"mask-y-to":O0()}],"mask-image-y-from-color":[{"mask-y-from":J0()}],"mask-image-y-to-color":[{"mask-y-to":J0()}],"mask-image-radial":[{"mask-radial":[R0,L0]}],"mask-image-radial-from-pos":[{"mask-radial-from":O0()}],"mask-image-radial-to-pos":[{"mask-radial-to":O0()}],"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":I()}],"mask-image-conic-pos":[{"mask-conic":[e0]}],"mask-image-conic-from-pos":[{"mask-conic-from":O0()}],"mask-image-conic-to-pos":[{"mask-conic-to":O0()}],"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:v0()}],"mask-repeat":[{mask:c1()}],"mask-size":[{mask:Z0()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",R0,L0]}],filter:[{filter:["","none",R0,L0]}],blur:[{blur:x1()}],brightness:[{brightness:[e0,R0,L0]}],contrast:[{contrast:[e0,R0,L0]}],"drop-shadow":[{"drop-shadow":["","none",C,eB,tB]}],"drop-shadow-color":[{"drop-shadow":J0()}],grayscale:[{grayscale:["",e0,R0,L0]}],"hue-rotate":[{"hue-rotate":[e0,R0,L0]}],invert:[{invert:["",e0,R0,L0]}],saturate:[{saturate:[e0,R0,L0]}],sepia:[{sepia:["",e0,R0,L0]}],"backdrop-filter":[{"backdrop-filter":["","none",R0,L0]}],"backdrop-blur":[{"backdrop-blur":x1()}],"backdrop-brightness":[{"backdrop-brightness":[e0,R0,L0]}],"backdrop-contrast":[{"backdrop-contrast":[e0,R0,L0]}],"backdrop-grayscale":[{"backdrop-grayscale":["",e0,R0,L0]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[e0,R0,L0]}],"backdrop-invert":[{"backdrop-invert":["",e0,R0,L0]}],"backdrop-opacity":[{"backdrop-opacity":[e0,R0,L0]}],"backdrop-saturate":[{"backdrop-saturate":[e0,R0,L0]}],"backdrop-sepia":[{"backdrop-sepia":["",e0,R0,L0]}],"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,L0]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[e0,"initial",R0,L0]}],ease:[{ease:["linear","initial",g,R0,L0]}],delay:[{delay:[e0,R0,L0]}],animate:[{animate:["none",n,R0,L0]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[T,R0,L0]}],"perspective-origin":[{"perspective-origin":V()}],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:k0()}],"skew-x":[{"skew-x":k0()}],"skew-y":[{"skew-y":k0()}],transform:[{transform:[R0,L0,"","none","gpu","cpu"]}],"transform-origin":[{origin:V()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q5()}],"translate-x":[{"translate-x":q5()}],"translate-y":[{"translate-y":q5()}],"translate-z":[{"translate-z":q5()}],"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,L0]}],"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,L0]}],fill:[{fill:["none",...J0()]}],"stroke-w":[{stroke:[e0,EH,j3,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=d$0(BZ0);function f1(...$){return u00(_00($))}var X1=B(J1(),1);function JZ0({agentState:$}){if($==="speaking")return X1.jsxDEV("div",{className:"skippr:flex skippr:items-end skippr:justify-center skippr:gap-[3px] skippr:h-5",children:[X1.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),X1.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),X1.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),X1.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 X1.jsxDEV(W4,{className:"skippr:relative skippr:z-10 skippr:size-5 skippr:animate-skippr-breathe"},void 0,!1,void 0,this);if($==="thinking")return X1.jsxDEV(W4,{className:"skippr:relative skippr:z-10 skippr:size-5 skippr:animate-pulse"},void 0,!1,void 0,this);return X1.jsxDEV(W4,{className:"skippr:relative skippr:z-10 skippr:size-5"},void 0,!1,void 0,this)}function AZ0(){let{expandPanel:$,disconnect:Y}=z5(),{state:G}=wH(),{localParticipant:H}=K4(),q=!H.isMicrophoneEnabled,N=H.isScreenShareEnabled,K=XJ.useCallback(async()=>{try{await H.setMicrophoneEnabled(q)}catch(O){console.error("Failed to toggle microphone:",O)}},[H,q]),U=XJ.useCallback(async()=>{try{await H.setScreenShareEnabled(!N,{video:{displaySurface:"browser"},resolution:V3.h720fps30.resolution,contentHint:"detail"})}catch(O){console.error("Failed to toggle screen share:",O)}},[H,N]),M=G==="speaking";return X1.jsxDEV(X1.Fragment,{children:[X1.jsxDEV("button",{type:"button",onClick:$,className:f1("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",G==="listening"&&"skippr:animate-skippr-pulse-ring"),"aria-label":"Expand meeting panel",children:[M&&X1.jsxDEV(X1.Fragment,{children:[X1.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),X1.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),X1.jsxDEV(JZ0,{agentState:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X1.jsxDEV("div",{className:"skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"},void 0,!1,void 0,this),X1.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1",children:[X1.jsxDEV("button",{type:"button",onClick:K,className:f1("skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center","skippr:transition-colors skippr:cursor-pointer",q?"skippr:bg-destructive skippr:text-white":"skippr:text-foreground skippr:hover:bg-accent"),"aria-label":q?"Unmute":"Mute",children:q?X1.jsxDEV(p3,{className:"skippr:size-4"},void 0,!1,void 0,this):X1.jsxDEV(S3,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),X1.jsxDEV("button",{type:"button",onClick:U,className:f1("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?X1.jsxDEV(E3,{className:"skippr:size-4"},void 0,!1,void 0,this):X1.jsxDEV(x8,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X1.jsxDEV("div",{className:"skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"},void 0,!1,void 0,this),X1.jsxDEV("button",{type:"button",onClick:()=>Y(),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:X1.jsxDEV(D3,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function NZ0(){let{expandPanel:$,startSession:Y,isStarting:G,isAuthenticated:H}=z5(),q=XJ.useCallback(()=>{if(!H){$();return}Y()},[H,$,Y]);return X1.jsxDEV(X1.Fragment,{children:[X1.jsxDEV("button",{type:"button",onClick:q,disabled:G,className:f1("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",G&&"skippr:animate-skippr-pulse-ring"),"aria-label":"AI Agent",children:X1.jsxDEV(W4,{className:"skippr:relative skippr:z-10 skippr:size-5"},void 0,!1,void 0,this)},void 0,!1,void 0,this),X1.jsxDEV("div",{className:"skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"},void 0,!1,void 0,this),X1.jsxDEV("button",{type:"button",onClick:q,disabled:G,className:f1("skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center","skippr:transition-colors skippr:cursor-pointer","skippr:bg-primary skippr:text-primary-foreground skippr:hover:brightness-110",G&&"skippr:animate-skippr-pulse-ring skippr:cursor-not-allowed"),"aria-label":"Start session",children:X1.jsxDEV(x8,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function l00(){let{isConnected:$,position:Y}=z5();return X1.jsxDEV("div",{className:f1("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","skippr:transition-all skippr:duration-300 skippr:ease-in-out",Y==="right"?"skippr:right-6":"skippr:left-6"),children:$?X1.jsxDEV(AZ0,{},void 0,!1,void 0,this):X1.jsxDEV(NZ0,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var QJ=B(U1(),1);var n00=B(U1(),1);var c00=B(U1(),1);var KZ0=/^\[\w+\]$/;function $J($){return $.filter((Y)=>!KZ0.test(Y.content.trim()))}function i00(){let{chatMessages:$,send:Y,isSending:G}=vU(),{localParticipant:H}=K4(),q=H.identity;return{chatMessages:c00.useMemo(()=>{let K=$.map((U)=>({id:U.id,role:U.from?.identity===q?"user":"assistant",content:U.message,source:"chat",timestamp:U.timestamp})).sort((U,M)=>(U.timestamp??0)-(M.timestamp??0));return $J(K)},[$,q]),sendChatMessage:Y,isSendingChat:G}}var o00=B(U1(),1);function r00(){let $=jU(),{localParticipant:Y}=K4(),G=Y.identity;return{transcriptMessages:o00.useMemo(()=>$J($.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 WZ0($,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 WZ0($,Y)},[$,Y]),agentState:q,sendChatMessage:G,isSendingChat:H}}var t00=B(U1(),1);var ZJ=B(U1(),1);function AQ($,Y,G){let[H,q]=ZJ.useState(G),N=RH();return ZJ.useEffect(()=>{let K=N.find((M)=>M.attributes?.[$]);if(K){let M=K.attributes?.[$];if(M){let F=Y(M);if(F)q(F)}}let U=new Map;for(let M of N){let F=(O)=>{if(O[$]){let L=Y(O[$]);if(L)q(L)}else if(M.attributes?.[$]){let L=Y(M.attributes[$]);if(L)q(L)}};U.set(M,F),M.on("attributesChanged",F)}return()=>{for(let[M,F]of U)M.off("attributesChanged",F)}},[N,$,Y]),H}function UZ0($){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(UZ0,[]);return{phases:AQ("phases",$,[])}}var X10=B(U1(),1);function MZ0($){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(MZ0,[]);return{questions:AQ("questions",$,[])}}var Au=480;var Z10=B(U1(),1);var Y10=B(J1(),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"},kZ0={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"},y2=Z10.forwardRef(({className:$,variant:Y="default",size:G="default",...H},q)=>{return Y10.jsxDEV("button",{className:f1("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],kZ0[G],$),ref:q,...H},void 0,!1,void 0,this)});y2.displayName="Button";var I5=B(J1(),1);function Q10({onOpenSettings:$}){let{closePanel:Y,minimizePanel:G,minimizable:H}=z5();return I5.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:[I5.jsxDEV("div",{className:"skippr:flex skippr:size-6 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-primary-foreground/20",children:I5.jsxDEV(W4,{className:"skippr:size-3.5 skippr:text-primary-foreground"},void 0,!1,void 0,this)},void 0,!1,void 0,this),I5.jsxDEV("div",{className:"skippr:flex-1",children:I5.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),I5.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1",children:[I5.jsxDEV(y2,{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:I5.jsxDEV(SH,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),I5.jsxDEV(y2,{variant:"ghost",size:"icon-xs",onClick:H?G:Y,className:"skippr:text-primary-foreground skippr:hover:bg-primary-foreground/20 skippr:hover:text-primary-foreground","aria-label":"Close",children:I5.jsxDEV(v3,{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(U1(),1);var p1=B(J1(),1),U4=6,PZ0=["d0","d1","d2","d3","d4","d5"];function G10({requestOtp:$,verifyOtp:Y,error:G,isSubmitting:H}){let[q,N]=G2.useState("email"),[K,U]=G2.useState(""),M=G2.useCallback(async(R)=>{if(await $(R))N("otp")},[$]),F=G2.useCallback(async(R)=>{await Y(K,R)},[Y,K]),O=G2.useCallback(()=>{N("email")},[]),L=G2.useCallback(async()=>{await $(K)},[$,K]);if(q==="otp")return p1.jsxDEV(LZ0,{email:K,onSubmit:F,onResend:L,onBack:O,error:G,isSubmitting:H},void 0,!1,void 0,this);return p1.jsxDEV(OZ0,{email:K,onEmailChange:U,onSubmit:M,error:G,isSubmitting:H},void 0,!1,void 0,this)}function OZ0({email:$,onEmailChange:Y,onSubmit:G,error:H,isSubmitting:q}){function N(K){if(K.preventDefault(),$.trim())G($.trim())}return p1.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",children:[p1.jsxDEV("div",{className:"skippr:mb-4 skippr:text-center",children:[p1.jsxDEV(IH,{className:"skippr:mx-auto skippr:mb-2 skippr:size-6 skippr:text-primary"},void 0,!1,void 0,this),p1.jsxDEV("p",{className:"skippr:text-sm skippr:font-medium skippr:text-foreground",children:"Sign in to continue"},void 0,!1,void 0,this),p1.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),p1.jsxDEV("form",{onSubmit:N,className:"skippr:flex skippr:flex-col skippr:gap-3",children:[p1.jsxDEV("input",{type:"email",placeholder:"you@example.com",value:$,onChange:(K)=>Y(K.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),p1.jsxDEV(y2,{type:"submit",disabled:q||!$.trim(),className:"skippr:w-full",children:q?p1.jsxDEV(b6,{className:"skippr:size-4 skippr:animate-spin"},void 0,!1,void 0,this):"Continue"},void 0,!1,void 0,this),H&&p1.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:N}){let[K,U]=G2.useState(Array(U4).fill("")),[M,F]=G2.useState(0),O=G2.useRef([]),L=G2.useRef(!1);G2.useEffect(()=>{O.current[0]?.focus()},[]),G2.useEffect(()=>{if(q)L.current=!1},[q]),G2.useEffect(()=>{if(M<=0)return;let n=setTimeout(()=>F((c)=>c-1),1000);return()=>clearTimeout(n)},[M]);let R=G2.useCallback((n)=>{if(L.current||N)return;L.current=!0,Y(n)},[Y,N]),C=G2.useCallback((n,c)=>{let I=c.replace(/\D/g,"").slice(-1),V=[...K];if(V[n]=I,U(V),I&&n<U4-1)O.current[n+1]?.focus();if(I&&n===U4-1){let v=V.join("");if(v.length===U4)R(v)}},[K,R]),D=G2.useCallback((n,c)=>{if(c.key==="Backspace"&&!K[n]&&n>0)O.current[n-1]?.focus()},[K]),T=G2.useCallback((n)=>{n.preventDefault();let c=n.clipboardData.getData("text").replace(/\D/g,"").slice(0,U4);if(c.length>0){let I=Array(U4).fill("");for(let V=0;V<c.length;V++)I[V]=c[V];if(U(I),c.length===U4)R(c);else O.current[c.length]?.focus()}},[R]);function m(n){n.preventDefault();let c=K.join("");if(c.length===U4)R(c)}function g(){G(),F(30),U(Array(U4).fill("")),L.current=!1,O.current[0]?.focus()}return p1.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",children:[p1.jsxDEV("div",{className:"skippr:mb-4 skippr:text-center",children:[p1.jsxDEV("p",{className:"skippr:text-sm skippr:font-medium skippr:text-foreground",children:"Enter verification code"},void 0,!1,void 0,this),p1.jsxDEV("p",{className:"skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",children:["We sent a 6-digit code to"," ",p1.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),p1.jsxDEV("form",{onSubmit:m,className:"skippr:flex skippr:flex-col skippr:gap-3",children:[p1.jsxDEV("div",{className:"skippr:flex skippr:justify-center skippr:gap-1.5",children:K.map((n,c)=>p1.jsxDEV("input",{ref:(I)=>{O.current[c]=I},type:"text",inputMode:"numeric",maxLength:1,value:n,onChange:(I)=>C(c,I.target.value),onKeyDown:(I)=>D(c,I),onPaste:T,disabled:N,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"},PZ0[c],!1,void 0,this))},void 0,!1,void 0,this),q&&p1.jsxDEV("p",{className:"skippr:text-xs skippr:text-center skippr:text-destructive",children:q},void 0,!1,void 0,this),p1.jsxDEV(y2,{type:"submit",disabled:N||K.join("").length!==U4,className:"skippr:w-full",children:N?p1.jsxDEV(b6,{className:"skippr:size-4 skippr:animate-spin"},void 0,!1,void 0,this):"Verify"},void 0,!1,void 0,this),p1.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:justify-between skippr:text-xs",children:[p1.jsxDEV("button",{type:"button",onClick:H,disabled:N,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),p1.jsxDEV("button",{type:"button",onClick:g,disabled:N||M>0,className:"skippr:text-primary hover:skippr:opacity-80 skippr:transition-opacity disabled:skippr:opacity-50",children:M>0?`Resend in ${M}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 M4=B(U1(),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(J1(),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 k6=B(J1(),1);function A10({onHangUp:$}){let Y=AQ("maxCallDuration",z10,null),{localParticipant:G}=K4(),H=!G.isMicrophoneEnabled,q=G.isScreenShareEnabled,N=M4.useRef(null),[K,U]=M4.useState(null);M4.useEffect(()=>{if(Y===null||N.current!==null)return;N.current=Date.now()+Y*1000;let O=()=>{let R=Math.ceil((N.current-Date.now())/1000);U(Math.max(R,0))};O();let L=setInterval(O,1000);return()=>clearInterval(L)},[Y]);let M=M4.useCallback(async()=>{try{await G.setMicrophoneEnabled(H)}catch(O){console.error("Failed to toggle microphone:",O)}},[G,H]),F=M4.useCallback(async()=>{try{await G.setScreenShareEnabled(!q,{video:{displaySurface:"browser"},resolution:V3.h720fps30.resolution,contentHint:"detail"})}catch(O){console.error("Failed to toggle screen share:",O)}},[G,q]);return M4.useEffect(()=>{M().then(()=>F())},[]),k6.jsxDEV("div",{children:[k6.jsxDEV(B10,{remaining:K},void 0,!1,void 0,this),k6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:justify-between skippr:border-b skippr:px-4 skippr:py-3",children:[k6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2",children:[k6.jsxDEV(y2,{size:"icon-sm",variant:H?"destructive":"outline",onClick:M,"aria-label":H?"Unmute":"Mute",children:H?k6.jsxDEV(p3,{className:"skippr:size-4"},void 0,!1,void 0,this):k6.jsxDEV(S3,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),k6.jsxDEV(y2,{size:"icon-sm",variant:q?"outline":"destructive",onClick:F,"aria-label":q?"Stop sharing":"Share screen",children:q?k6.jsxDEV(E3,{className:"skippr:size-4"},void 0,!1,void 0,this):k6.jsxDEV(x8,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K!==null&&k6.jsxDEV("span",{className:f1("skippr:text-sm skippr:font-medium skippr:tabular-nums",K<=q10?"skippr:text-red-600 skippr:animate-pulse":"skippr:text-muted-foreground"),children:H10(K)},void 0,!1,void 0,this),k6.jsxDEV(y2,{size:"icon-sm",variant:"destructive",onClick:$,"aria-label":"Hang up",children:k6.jsxDEV(D3,{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 YJ=B(U1(),1);var N10=B(U1(),1);var DH=B(J1(),1);function K10({sendChatMessage:$,isSendingChat:Y}){let[G,H]=N10.useState(""),q=G.trim().length>0&&!Y;function N(K){K.preventDefault();let U=G.trim();if(!U||Y)return;H(""),$(U).catch(()=>H(U))}return DH.jsxDEV("form",{onSubmit:N,className:"skippr:flex skippr:items-center skippr:gap-2 skippr:border-t skippr:border-border skippr:px-3 skippr:py-2",children:[DH.jsxDEV("input",{type:"text",value:G,onChange:(K)=>H(K.target.value),placeholder:"Type a message...",className:f1("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),DH.jsxDEV("button",{type:"submit",disabled:!q,"aria-label":"Send message",className:f1("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:DH.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 Nu=B(J1(),1);function W10({message:$}){let Y=$.role==="user";return Nu.jsxDEV("div",{className:f1("skippr:flex skippr:w-full skippr:px-4 skippr:py-1",Y?"skippr:justify-end":"skippr:justify-start"),children:Nu.jsxDEV("div",{className:f1("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 NQ=B(J1(),1);function U10(){return NQ.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1 skippr:px-4 skippr:py-3",children:NQ.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:[NQ.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),NQ.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),NQ.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(J1(),1);function M10({messages:$,isStreaming:Y,sendChatMessage:G,isSendingChat:H}){let q=YJ.useRef(null),N=$.length>0?$[$.length-1]:void 0;YJ.useEffect(()=>{q.current?.scrollIntoView({behavior:"smooth"})},[$.length,N?.content]);let K=Y&&N?.role==="assistant"&&N.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)),K&&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(K10,{sendChatMessage:G,isSendingChat:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var f3=B(J1(),1);function F10({onStartSession:$,isStarting:Y,error:G}){return f3.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:[f3.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),f3.jsxDEV(y2,{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?f3.jsxDEV(b6,{className:"skippr:size-4 skippr:animate-spin skippr:text-primary"},void 0,!1,void 0,this):f3.jsxDEV(L8,{className:"skippr:size-4 skippr:text-primary"},void 0,!1,void 0,this),Y?"Starting...":"Start Session"]},void 0,!0,void 0,this),G&&f3.jsxDEV("p",{className:"skippr:text-xs skippr:text-destructive",children:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var c2=B(J1(),1);function k10({phases:$,questions:Y=[]}){if($.length===0)return c2.jsxDEV("div",{className:"skippr:flex skippr:flex-col skippr:gap-3 skippr:p-4",children:[c2.jsxDEV("h3",{className:"skippr:text-sm skippr:font-semibold",children:"Agenda"},void 0,!1,void 0,this),c2.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 c2.jsxDEV("div",{className:"skippr:flex skippr:flex-col skippr:gap-3 skippr:p-4",children:[c2.jsxDEV("h3",{className:"skippr:text-sm skippr:font-semibold",children:"Agenda"},void 0,!1,void 0,this),c2.jsxDEV("ul",{className:"skippr:flex skippr:flex-col skippr:gap-2",children:$.map((G)=>{let H=Y.filter((K)=>K.phaseName===G.name),q=H.filter((K)=>K.status==="answered").length,N=H.length;return c2.jsxDEV("li",{className:"skippr:flex skippr:flex-col skippr:gap-0.5",children:[c2.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2 skippr:text-sm",children:[c2.jsxDEV(RZ0,{status:G.status},void 0,!1,void 0,this),c2.jsxDEV("span",{className:f1(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),N>0&&c2.jsxDEV("span",{className:"skippr:ml-6 skippr:text-xs skippr:text-muted-foreground",children:[q,"/",N," 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 RZ0({status:$}){if($==="completed")return c2.jsxDEV("div",{className:"skippr:flex skippr:size-4 skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-primary",children:c2.jsxDEV(VH,{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 c2.jsxDEV(b6,{className:"skippr:size-4 skippr:shrink-0 skippr:text-primary skippr:animate-spin"},void 0,!1,void 0,this);return c2.jsxDEV(CH,{className:"skippr:size-4 skippr:shrink-0 skippr:text-muted-foreground"},void 0,!1,void 0,this)}var i2=B(J1(),1);function P10({onBack:$}){let{position:Y,setPosition:G}=z5();return i2.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col",children:[i2.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2 skippr:border-b skippr:border-border skippr:px-4 skippr:py-3",children:[i2.jsxDEV(y2,{variant:"ghost",size:"icon-xs",onClick:$,"aria-label":"Back",children:i2.jsxDEV(_H,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),i2.jsxDEV("p",{className:"skippr:text-sm skippr:font-semibold",children:"Settings"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),i2.jsxDEV("div",{className:"skippr:flex-1 skippr:overflow-y-auto skippr:p-4",children:i2.jsxDEV("div",{className:"skippr:mb-4",children:[i2.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),i2.jsxDEV("div",{className:"skippr:flex skippr:gap-2",children:[i2.jsxDEV("button",{type:"button",onClick:()=>G("left"),className:f1("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:[i2.jsxDEV(R8,{className:"skippr:size-5"},void 0,!1,void 0,this),i2.jsxDEV("span",{className:"skippr:text-xs skippr:font-medium",children:"Left"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),i2.jsxDEV("button",{type:"button",onClick:()=>G("right"),className:f1("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:[i2.jsxDEV(pH,{className:"skippr:size-5"},void 0,!1,void 0,this),i2.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(J1(),1);function O10(){let{variant:$,isConnected:Y,isStarting:G,error:H,startSession:q,disconnect:N,isPanelOpen:K,position:U,isAuthenticated:M,isValidating:F,authError:O,requestOtp:L,verifyOtp:R,isAuthSubmitting:C}=z5(),[D,T]=QJ.useState("main"),m=$==="floating",g=$==="sidebar";return QJ.useEffect(()=>{if(!g)return;let n=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[n]=K?`${Au}px`:"",()=>{document.body.style.marginRight="",document.body.style.marginLeft="",document.body.style.transition=""}},[g,K,U]),X2.jsxDEV("div",{className:f1("skippr:fixed skippr:z-[9999]","skippr:bg-background skippr:border skippr:border-border","skippr:flex skippr:flex-col","skippr:overflow-hidden",m&&"skippr:bottom-4 skippr:min-h-[28rem] skippr:max-h-[calc(100vh-6rem)] skippr:rounded-2xl skippr:shadow-2xl",m&&(U==="right"?"skippr:right-4":"skippr:left-4"),m&&"skippr:transition-[opacity,transform] skippr:duration-300 skippr:ease-in-out",m&&(U==="right"?"skippr:origin-bottom-right":"skippr:origin-bottom-left"),m&&!K&&"skippr:scale-0 skippr:opacity-0 skippr:pointer-events-none",m&&K&&"skippr:scale-100 skippr:opacity-100",g&&"skippr:top-0 skippr:h-full",g&&"skippr:transition-[width] skippr:duration-300 skippr:ease-in-out",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&&!K&&"skippr:w-0 skippr:border-0"),style:{width:K?Au:void 0},children:D==="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(wZ0,{onDisconnect:N},void 0,!1,void 0,this):F?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):M?X2.jsxDEV(F10,{onStartSession:q,isStarting:G,error:H},void 0,!1,void 0,this):X2.jsxDEV(G10,{requestOtp:L,verifyOtp:R,error:O,isSubmitting:C},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function wZ0({onDisconnect:$}){let G=T3()===a0.Connected,{allMessages:H,agentState:q,sendChatMessage:N,isSendingChat:K}=a00(),{phases:U}=e00(),{questions:M}=$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(k10,{phases:U,questions:M},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(M10,{messages:H,isStreaming:q==="speaking",sendChatMessage:N,isSendingChat:K},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 GJ=B(J1(),1);function L10(){let{isPanelOpen:$,togglePanel:Y,position:G,isMinimized:H}=z5();if(H)return null;return GJ.jsxDEV(y2,{size:"icon-lg",onClick:Y,className:f1("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:$?GJ.jsxDEV(v3,{className:"skippr:size-6"},void 0,!1,void 0,this):GJ.jsxDEV(TH,{className:"skippr:size-6"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var F4=B(J1(),1);function R10({agentId:$,authToken:Y,appKey:G,userToken:H,position:q="right",variant:N="floating",minimizable:K=!0,defaultOpen:U=!1,children:M}){let F=M00({appKey:G}),O=Y||F.authToken||void 0,{connection:L,shouldConnect:R,isStarting:C,error:D,errorCode:T,startSession:m,disconnect:g}=F00({agentId:$,authToken:O,appKey:G,userToken:H}),[n,c]=b2.useState(U),[I,V]=b2.useState(K&&!U),[v,s]=b2.useState(()=>{try{let v0=localStorage.getItem("skippr_widget_position");if(v0==="left"||v0==="right")return v0}catch{}return q}),f=b2.useCallback((v0)=>{s(v0);try{localStorage.setItem("skippr_widget_position",v0)}catch{}},[]),o=b2.useCallback(()=>c(!0),[]),u=b2.useCallback(()=>c(!1),[]),X0=b2.useCallback(()=>c((v0)=>!v0),[]),Y0=b2.useCallback(()=>{V(!1),c(!0)},[]),M0=b2.useCallback(()=>{if(!K)return;V(!0),c(!1)},[K]),b0=L!==null,G0=!!H||!!Y||F.isAuthenticated,K0=b2.useRef(L);b2.useEffect(()=>{let v0=K0.current!==L;if(K0.current=L,v0&&K)V(!0),c(!1)},[L,K]);let P0=b2.useMemo(()=>({connection:L,shouldConnect:R,isConnected:b0,isStarting:C,error:D,errorCode:T,startSession:m,disconnect:g,isPanelOpen:n,openPanel:o,closePanel:u,togglePanel:X0,variant:N,position:v,setPosition:f,minimizable:K,isMinimized:I,expandPanel:Y0,minimizePanel:M0,isAuthenticated:G0,isValidating:F.isValidating,authError:F.error,requestOtp:F.requestOtp,verifyOtp:F.verifyOtp,logoutAuth:F.logout,isAuthSubmitting:F.isSubmitting}),[L,R,b0,C,D,T,m,g,n,o,u,X0,N,v,f,K,I,Y0,M0,G0,F.isValidating,F.error,F.requestOtp,F.verifyOtp,F.logout,F.isSubmitting]),J0=F4.jsxDEV(F4.Fragment,{children:[L&&F4.jsxDEV(gU,{},void 0,!1,void 0,this),I&&F4.jsxDEV(l00,{},void 0,!1,void 0,this),F4.jsxDEV(L10,{},void 0,!1,void 0,this),F4.jsxDEV(O10,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return F4.jsxDEV(oB.Provider,{value:P0,children:[L?F4.jsxDEV(SU,{serverUrl:L.livekitUrl,token:L.token,connect:R,audio:!0,onDisconnected:g,children:J0},void 0,!1,void 0,this):J0,M]},void 0,!0,void 0,this)}var x10=B(J1(),1);function w10({agentId:$,appKey:Y,userToken:G,position:H,variant:q,minimizable:N}){return x10.jsxDEV(R10,{agentId:$,appKey:Y,userToken:G,position:H,variant:q,minimizable:N},void 0,!1,void 0,this)}var xZ0="skippr-sdk-root",Ku="skippr:sdk-styles",_Z0=`/*! 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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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\\:pointer-events-none{pointer-events:none}#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\\:origin-bottom-left{transform-origin:0 100%}#skippr-sdk-root .skippr\\:origin-bottom-right{transform-origin:100% 100%}#skippr-sdk-root .skippr\\:scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}#skippr-sdk-root .skippr\\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}#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-0{opacity:0}#skippr-sdk-root .skippr\\:opacity-50{opacity:.5}#skippr-sdk-root .skippr\\:opacity-100{opacity:1}#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-\\[opacity\\,transform\\]{transition-property:opacity,transform;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-\\[width\\]{transition-property:width;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-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-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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))}`,KQ=null,J9=null;function VZ0(){if(document.getElementById(Ku))return;let $=document.createElement("style");$.id=Ku,$.textContent=_Z0,document.head.appendChild($)}function CZ0(){if(J9)return J9;return VZ0(),J9=document.createElement("div"),J9.id=xZ0,document.body.appendChild(J9),J9}function C10($){if(KQ)Wu();let{agentId:Y,appKey:G,userToken:H,position:q="right",variant:N="floating",minimizable:K=!0}=$;if(!1)throw Error("SKIPPR_API_URL is not configured.");let M=CZ0();KQ=V10.createRoot(M),KQ.render(_10.createElement(w10,{agentId:Y,appKey:G,userToken:H,position:q,variant:N,minimizable:K}))}function IZ0(){let $=Object.keys(localStorage);for(let Y of $)if(Y.startsWith("skippr_auth_"))localStorage.removeItem(Y)}function I10(){IZ0(),window.dispatchEvent(new CustomEvent("skippr:logout"))}function Wu(){if(KQ)KQ.unmount(),KQ=null;if(J9)J9.remove(),J9=null;document.getElementById(Ku)?.remove()}var TZ0={initialize:C10,destroy:Wu,logout:I10};window.Skippr=TZ0;})();
|