1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[152],{6979:(e,i,t)=>{Promise.resolve().then(t.bind(t,9545))},7534:()=>{},9545:(e,i,t)=>{"use strict";t.r(i),t.d(i,{default:()=>D});var s=t(5155),a=t(2115),n=t(8733),r=t(8272),c=t(2125),l=t(6005),o=t(5551),d=t(981),h=t(1372),u=t(2571),m=t(5688),p=t(2980),v=t(8747),x=t(4577),j=t(9314),b=t(2905),w=t(9005),y=t(7465),f=t(4705),g=t(6518),k=t(4397),N=t(1337);function C({className:e,size:i="default",...t}){return(0,s.jsx)(k.bL,{"data-slot":"switch","data-size":i,className:(0,N.cn)("peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80",e),...t,children:(0,s.jsx)(k.zi,{"data-slot":"switch-thumb",className:(0,N.cn)("pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground")})})}var A=t(412),S=t(470),E=t(9009),z=t(5898);class T extends Error{constructor(e){super(e),this.code=e}}let O=e=>Uint8Array.from(atob(e.replace(/-/g,"+").replace(/_/g,"/").padEnd(4*Math.ceil(e.length/4),"=")),e=>e.charCodeAt(0));function R(e,i="p"){let t=[...crypto.getRandomValues(new Uint8Array(8))].map(e=>e.toString(16).padStart(2,"0")).join(""),s=[...e.trim()].slice(0,20).join(""),a=btoa(String.fromCharCode(...new TextEncoder().encode(s))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");return`${i}-${t}-${a||"R3Vlc3Q"}`}async function M(e,i){let t,s=await fetch(`/api/meetings/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i),cache:"no-store"});try{t=await s.json()}catch{throw new T("connectError")}if(!s.ok)throw new T("invalid_invitation"===t.error?"invalidInvite":"not_configured"===t.error?"notReadyBody":"password_required"===t.error?"passwordRequired":"password_incorrect"===t.error?"passwordIncorrect":"rate_limited"===t.error?"rateLimited":"connectError");return t}class q{constructor(e,i,t){this.invitation=e,this.update=i,this.onError=t,this.dead=!1,this.cameraWanted=!1,this.micWanted=!1,this.voiceOnly=!1,this.uid="",this.screenUid="",this.bad=0,this.severe=0,this.good=0,this.fair=0,this.retryTicks=0,this.qualityDirty=!1,this.queue=Promise.resolve(),this.renewals=new Map,this.view={connection:"DISCONNECTED",peers:[],quality:"normal",screenPaused:!1,audioBlocked:!1}}emit(){this.dead||(this.view={...this.view,localVideo:this.cam&&!this.cam.muted?this.cam:void 0,screenVideo:this.screen,screenPaused:!!this.screen?.muted,peers:(this.client?.remoteUsers||[]).filter(e=>String(e.uid)!==this.screenUid).map(e=>({uid:String(e.uid),name:function(e){try{return new TextDecoder().decode(O(e.split("-").slice(2).join("-")))}catch{return"Guest"}}(String(e.uid)),screen:String(e.uid).startsWith("s-"),video:e.videoTrack,audio:e.hasAudio}))},this.update(this.view))}async token(e){return M("token",{invitation:this.invitation,uid:e})}encryption(e,i){e.setEncryptionConfig("aes-128-gcm2",i.encryptionKey,O(i.encryptionSalt))}wireRenewal(e,i){let t=(t=!1)=>{if(this.dead||this.renewals.has(e))return;let s=(async()=>{try{let s;for(let e=0;e<3&&!this.dead;e++)try{s=await this.token(i);break}catch(i){if(i instanceof T&&"invalidInvite"===i.code||2===e)throw i;await new Promise(i=>setTimeout(i,2e3*(e+1)))}if(!s||this.dead)return;if(t){if(await e.leave(),this.dead)return;if(this.encryption(e,s),await e.join(s.appId,s.channel,s.token,i),this.dead)return void await e.leave();let t=e===this.client?[this.mic,this.cam].filter(Boolean):[this.screen].filter(Boolean);t.length&&await e.publish(t)}else await e.renewToken(s.token)}catch{this.dead||this.onError("renewError")}finally{this.renewals.delete(e)}})();this.renewals.set(e,s)};e.on("token-privilege-will-expire",()=>t()),e.on("token-privilege-did-expire",()=>t(!0))}async join(e,i,s,a=!1){let n;if(this.voiceOnly=a,this.uid=R(e),this.screenUid=R(e,"s"),this.cameraWanted=s,this.micWanted=i,this.grant=await this.token(this.uid),this.dead||(this.sdk=(await t.e(927).then(t.t.bind(t,4045,23))).default,this.sdk.setLogLevel(4),this.dead))return;this.sdk.onAutoplayFailed=()=>
1{this.view.audioBlocked=!0,this.emit()};let r=this.sdk.createClient({mode:"rtc",codec:"vp8"});this.client=r,this.encryption(r,this.grant),this.wireRenewal(r,this.uid),r.on("connection-state-change",e=>{this.view.connection=e,this.emit()}),r.on("user-published",(e,i)=>{this.subscribe(e,i)}),r.on("user-unpublished",(e,i)=>{"audio"===i&&e.audioTrack?.stop(),this.emit()}),r.on("user-joined",()=>this.emit()),r.on("user-left",()=>this.emit()),r.on("network-quality",e=>this.network(e)),await r.setDualStreamMode(1,{width:160,height:120,framerate:5,bitrate:40}).catch(()=>{});try{await Promise.race([r.join(this.grant.appId,this.grant.channel,this.grant.token,this.uid),new Promise((e,i)=>{n=setTimeout(()=>i(new T("connectError")),25e3)})])}finally{clearTimeout(n)}if(this.dead)return void await r.leave();try{if(i){let e=await this.sdk.createMicrophoneAudioTrack({encoderConfig:"speech_standard",AEC:!0,ANS:!0,AGC:!0});if(this.dead)return void e.close();this.mic=e,await r.publish(e)}if(s&&!a){let e=await this.sdk.createCameraVideoTrack({encoderConfig:"480p_1",optimizationMode:"motion"});if(this.dead)return void e.close();this.cam=e,await r.publish(e)}}catch(e){throw await this.leave(),e}this.emit()}async subscribe(e,i){if(!this.dead&&String(e.uid)!==this.screenUid&&"datachannel"!==i)try{if("video"===i&&this.voiceOnly||(await this.client.subscribe(e,i),this.dead))return;if("video"===i&&this.voiceOnly){await this.client.unsubscribe(e,"video"),this.emit();return}"audio"===i?e.audioTrack?.play():(await this.client.setStreamFallbackOption(e.uid,1),await this.client.setRemoteVideoStreamType(e.uid,+("normal"!==this.view.quality))),this.emit()}catch{this.dead||(this.qualityDirty=!0,this.onError("mediaError"))}}enqueue(e){let i=this.queue.then(async()=>{this.dead||await e()});return this.queue=i.catch(()=>{}),i}network(e){let i=Math.max(e.uplinkNetworkQuality,e.downlinkNetworkQuality);this.bad=i>=4?this.bad+1:0,this.severe=i>=5?this.severe+1:0,this.good=i>0&&i<=2?this.good+1:0,this.fair=i>0&&i<=4?this.fair+1:0;let t=this.view.quality;this.severe>=2?t="limited":this.good>=5?t="normal":"limited"===t&&this.fair>=3?t="weak":this.bad>=2&&"normal"===t&&(t="weak"),this.retryTicks++,(t!==this.view.quality||this.qualityDirty&&this.retryTicks>=5)&&(this.view.quality=t,this.retryTicks=0,this.enqueue(()=>this.applyQuality()).catch(()=>this.onError("mediaError")),this.emit())}async applyQuality(){let e=this.voiceOnly,i=this.view.quality,t="limited"===i?{width:160,height:120,frameRate:5,bitrateMin:10,bitrateMax:60}:"weak"===i?{width:320,height:240,frameRate:10,bitrateMin:20,bitrateMax:180}:{width:640,height:480,frameRate:15,bitrateMin:40,bitrateMax:500},s="limited"===i?{width:320,height:180,frameRate:2,bitrateMin:10,bitrateMax:80}:"weak"===i?{width:640,height:360,frameRate:5,bitrateMin:20,bitrateMax:250}:{width:1280,height:720,frameRate:10,bitrateMin:40,bitrateMax:900};this.qualityDirty=!1;let a=[];if(this.cam){let i=this.cam;a.push((async()=>{let s=!this.cameraWanted||e;i.muted!==s&&await i.setMuted(s),s||await i.setEncoderConfiguration(t)})())}if(this.screen){let i=this.screen;a.push((async()=>{i.muted!==e&&await i.setMuted(e),e||await i.setEncoderConfiguration(s)})())}if(this.client)for(let t of this.client.remoteUsers)String(t.uid)!==this.screenUid&&(e&&t.videoTrack?a.push(this.client.unsubscribe(t,"video")):e||!t.hasVideo||t.videoTrack?!e&&t.videoTrack&&a.push(this.client.setRemoteVideoStreamType(t.uid,+("normal"!==i))):a.push(this.subscribe(t,"video")));let n=await Promise.allSettled(a);if(this.emit(),n.some(e=>"rejected"===e.status))throw this.qualityDirty=!0,new T("mediaError")}setVoiceOnly(e){return this.voiceOnly=e,this.enqueue(async()=>{if(!e&&this.cameraWanted&&!this.cam){let e=await this.sdk.createCameraVideoTrack({encoderConfig:"480p_1",optimizationMode:"motion"});if(this.dead)return void e.close();this.cam=e,await this.client.publish(e)}await this.applyQuality()})}setMicrophone(e){return this.micWanted=e,this.enqueue(async()=>{if(!this.mic&&e){let e=await this.sdk.createMicrophoneAudioTrack({encoderConfig:"speech_standard",AEC:!0,ANS:!0,AGC:!0});if(this.dead)return void e.close();this.mic=e,await this.client.publish(e)}
1this.mic&&await this.mic.setMuted(!this.micWanted),this.emit()})}setCamera(e){return this.cameraWanted=e,this.enqueue(async()=>{if(!this.cam&&e){let e=await this.sdk.createCameraVideoTrack({encoderConfig:"480p_1",optimizationMode:"motion"});if(this.dead)return void e.close();this.cam=e,await this.client.publish(e)}await this.applyQuality()})}async startScreen(){let e,i;if(this.client&&!this.screen&&!this.dead)try{if(e=await this.sdk.createScreenVideoTrack({encoderConfig:{width:1280,height:720,frameRate:10,bitrateMin:100,bitrateMax:900},optimizationMode:"motion",systemAudio:"exclude"},"disable"),this.dead)return void e.close();let t=await this.token(this.screenUid);if(this.dead)return void e.close();if(i=this.sdk.createClient({mode:"rtc",codec:"vp8"}),this.encryption(i,t),this.wireRenewal(i,this.screenUid),this.screenClient=i,this.screen=e,e.on("track-ended",()=>{this.stopScreen()}),await i.setDualStreamMode(1,{width:160,height:90,framerate:2,bitrate:40}).catch(()=>{}),await i.join(t.appId,t.channel,t.token,this.screenUid),this.dead){e.close(),await i.leave();return}await i.publish(e),await this.enqueue(()=>this.applyQuality()).catch(()=>{this.dead||this.onError("mediaError")}),this.emit()}catch(t){throw e?.close(),await i?.leave().catch(()=>{}),this.screen=void 0,this.screenClient=void 0,this.emit(),t}}async stopScreen(){let e=this.screen,i=this.screenClient;this.screen=void 0,this.screenClient=void 0,e?.removeAllListeners(),e?.stop(),e?.close(),i?.removeAllListeners(),await i?.leave().catch(()=>{}),this.emit()}resumeAudio(){this.client?.remoteUsers.forEach(e=>e.audioTrack?.play()),this.view.audioBlocked=!1,this.emit()}async leave(){for(let e of(this.dead=!0,await this.stopScreen(),[this.mic,this.cam]))e?.stop(),e?.close();this.mic=void 0,this.cam=void 0,this.client?.removeAllListeners(),await this.client?.leave().catch(()=>{}),this.client=void 0}}t(7534);let L={connection:"DISCONNECTED",peers:[],quality:"normal",screenPaused:!1,audioBlocked:!1};function V({track:e,name:i,local:t=!1,screen:c=!1,audio:l=!0,fallback:o=!1,t:d}){let h=(0,a.useRef)(null);return(0,a.useEffect)(()=>(e&&h.current&&e.play(h.current,{fit:c?"contain":"cover",mirror:t&&!c}),()=>{e?.stop()}),[e,t,c]),(0,s.jsxs)("div",{className:`call-tile ${c?"screen-tile":""}`,children:[(0,s.jsx)("div",{ref:h,className:"video-surface"}),(!e||o)&&(0,s.jsxs)("div",{className:"tile-placeholder",children:[c?(0,s.jsx)(n.A,{size:42}):(0,s.jsx)("span",{children:i.slice(0,1).toLocaleUpperCase()}),(0,s.jsx)("p",{children:o?d.voiceProtected:c?d.screen:i})]}),(0,s.jsxs)("div",{className:"tile-caption",children:[(0,s.jsxs)("span",{children:[i,t?` \xb7 ${d.you}`:"",c?` \xb7 ${d.screen}`:""]}),!l&&!c&&(0,s.jsx)(r.A,{size:16,"aria-label":d.microphoneOff})]})]})}function P(e){if(e instanceof T)return e.code;let i=String(e?.code||"");return/PERMISSION|NOT_ALLOWED|NotAllowed/i.test(i)?"permissionError":/DEVICE|NOT_FOUND|NOT_READABLE/i.test(i)?"deviceError":"connectError"}function D(){let{locale:e,choose:i}=(0,A.o)(),t=z.C[e],k=E.P[e];(0,a.useRef)(t).current=t;let[N,T]=(0,a.useState)(""),[O,R]=(0,a.useState)(null),[D,_]=(0,a.useState)(""),[U,$]=(0,a.useState)(""),[I,B]=(0,a.useState)(""),[F,W]=(0,a.useState)("lobby"),[Q,H]=(0,a.useState)(L),[G,J]=(0,a.useState)(!0),[Z,K]=(0,a.useState)(!1),[X,Y]=(0,a.useState)(!1),[ee,ei]=(0,a.useState)(!1),[et,es]=(0,a.useState)(null),[ea,en]=(0,a.useState)(!1),[er,ec]=(0,a.useState)(!1),[el,eo]=(0,a.useState)(!1),[ed,eh]=(0,a.useState)(null),eu=(0,a.useRef)(null),em=(0,a.useRef)(!0),ep=(0,a.useRef)(!1),[ev,ex]=(0,a.useState)("");(0,a.useEffect)(()=>{em.current=!0,ex(location.origin);let e=new URLSearchParams(location.hash.slice(1)).get("invite");e&&/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test(e)&&_(e),eo(!!navigator.mediaDevices?.getDisplayMedia);let i=new AbortController;return fetch("/api/meetings/status",{cache:"no-store",signal:i.signal}).then(e=>e.json()).then(e=>R(e)).catch(()=>{em.current&&es("connectError")}),()=>{em.current=!1,i.abort(),eu.current?.leave(),eu.current=null}},[]),(0,a.useEffect)(()=>{document.title=`HealthSpec | ${t.cta}`},[t]);let ej=D?`${ev}/meeting?lang=${e}#invite=${D}`:"";function eb(e){_(e);let i=new URL(location.href);i.hash=`invite=${e}`,history.replaceState(null,"",i);try{let i=JSON.parse(atob(e.split(".")[0].replace(/-/g,"+").replace(/_/g,"/")));
1eh(i.exp)}catch{}es(null)}async function ew(){if(!ee){if(!N)return void es("passwordRequired");ei(!0),es(null);try{let e=await M("create",{password:N});T(""),eb(e.invitation),eh(e.expiresAt),ec(!0)}catch(e){es(P(e))}finally{ei(!1)}}}async function ey(){try{await navigator.clipboard.writeText(ej),en(!0),setTimeout(()=>{em.current&&en(!1)},2500)}catch{ec(!0),es("copyFailed")}}async function ef(){if(ep.current)return;if(!I.trim())return void es("nameRequired");if(!D)return void es("invalidInvite");ep.current=!0,W("joining"),es(null),H(L);let e=new q(D,e=>{em.current&&H(e)},e=>{em.current&&es(e)});eu.current=e;try{if(await e.join(I.trim(),G,Z,X),!em.current||eu.current!==e)return void await e.leave();await e.setVoiceOnly(X),W("call")}catch(i){await e.leave(),em.current&&eu.current===e&&(es(P(i)),W("lobby"),eu.current=null)}finally{eu.current&&eu.current!==e||(ep.current=!1)}}async function eg(){let e=eu.current;eu.current=null,W("ended"),ep.current=!1,await e?.leave(),H(L)}async function ek(){if(ee)return;ei(!0);let e=!G;try{await eu.current?.setMicrophone(e),J(e)}catch(e){es(P(e))}finally{ei(!1)}}async function eN(){if(ee)return;ei(!0);let e=!Z;try{await eu.current?.setCamera(e),K(e)}catch(e){es(P(e))}finally{ei(!1)}}async function eC(e){try{await eu.current?.setVoiceOnly(e),Y(e)}catch{es("mediaError")}}async function eA(){if(!ee){ei(!0),es(null);try{Q.screenVideo?await eu.current?.stopScreen():await eu.current?.startScreen()}catch{es("shareError")}finally{ei(!1)}}}let eS="call"===F||"joining"===F,eE=Q.peers.filter(e=>!e.screen),ez=Q.peers.filter(e=>e.screen&&e.video),eT=X?t.audioOnly:t[Q.quality],eO="CONNECTED"===Q.connection?t.connected:"RECONNECTING"===Q.connection?t.reconnecting:"joining"===F?t.connecting:t.disconnected;return(0,s.jsxs)("div",{className:"meeting-page",dir:"ar"===e?"rtl":"ltr",children:[(0,s.jsxs)("header",{className:"meeting-header",children:[(0,s.jsxs)("a",{href:`/?lang=${e}`,className:"brand","aria-label":"HealthSpec",children:[(0,s.jsx)("span",{className:"brand-mark",children:(0,s.jsx)(c.A,{size:24})}),"HealthSpec",(0,s.jsx)("span",{className:"brand-period",children:"."})]}),(0,s.jsxs)("div",{className:"meeting-header-right",children:[(0,s.jsx)("a",{className:"meeting-back",href:`/?lang=${e}`,children:t.back}),(0,s.jsxs)(g.l6,{value:e,onValueChange:i,dir:"ltr",children:[(0,s.jsxs)(g.bq,{className:"language-control","aria-label":k.language,children:[(0,s.jsx)(l.A,{size:17}),(0,s.jsx)(g.yv,{})]}),(0,s.jsxs)(g.gC,{align:"end",children:[S.IB.map(e=>(0,s.jsx)(g.eb,{value:e,children:(0,s.jsx)("span",{lang:e,children:S.TL[e]})},e)),(0,s.jsx)(g.mi,{}),(0,s.jsx)(g.eb,{value:"auto",children:k.autoLanguage})]})]})]})]}),(0,s.jsx)("main",{className:`meeting-main ${eS?"in-call":""}`,children:eS?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"call-heading",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"eyebrow",children:t.eyebrow}),(0,s.jsx)("h1",{children:t.room})]}),(0,s.jsxs)("div",{className:"connection-status","aria-live":"polite",children:[(0,s.jsx)("span",{className:"CONNECTED"===Q.connection?"connected-dot":"connecting-dot"}),eO,(0,s.jsxs)("span",{className:"quality-status",children:[(0,s.jsx)(b.A,{size:16}),eT]})]}),(0,s.jsxs)("button",{className:"invite-call",onClick:()=>{ec(!er)},children:[(0,s.jsx)(v.A,{size:18}),t.inviteLabel]})]}),et&&(0,s.jsxs)("div",{className:"meeting-error call-error",role:"alert",children:[t[et]||t.connectError,(0,s.jsx)("button",{onClick:()=>es(null),"aria-label":k.close,children:(0,s.jsx)(w.A,{size:16})})]}),Q.audioBlocked&&(0,s.jsxs)("button",{className:"audio-unlock",onClick:()=>eu.current?.resumeAudio(),children:[(0,s.jsx)(o.A,{size:19}),t.resumeAudio]}),er&&(0,s.jsxs)("div",{className:"call-invite-bar",children:[(0,s.jsx)("input",{"aria-label":t.inviteLabel,readOnly:!0,dir:"ltr",value:ej,onFocus:e=>e.target.select()}),(0,s.jsxs)("button",{onClick:ey,children:[ea?(0,s.jsx)(x.A,{size:17}):(0,s.jsx)(j.A,{size:17})," ",ea?t.copied:t.copy]}),(0,s.jsx)("p",{children:t.linkPrivacy})]}),(0,s.jsxs)("div",{className:`call-stage ${ez.length||Q.screenVideo?"with-screen":""}`,children:[(ez.length>0||Q.screenVideo)&&(0,s.jsxs)("div",{className:"screen-stage",children:[Q.screenVideo&&(0,s.jsx)(V,{track:Q.screenPaused?void 0:Q.screenVideo,name:I,local:!0,screen:!0,t:t,fallback:Q.screenPaused})," ",ez.map(e=>(0,s.jsx)(V,{track:e.video,name:e.name,screen:!0,t:t},e.uid))]}),(0,s.jsxs)("div",{className:`participant-grid count-${Math.min(eE.length+1,5)}`,children:[(0,s.jsx)(V,{track:Q.localVideo,name:I,local:!0,audio:G,t:t}),eE.map(e=>(0,s.jsx)(V,{track:e.video,name:e.name,audio:e.audio,t:t},e.uid)),0===eE.length&&(0,s.jsxs)("div",{className:"waiting-tile",children:[(0,s.jsx)(y.A,{size:35,strokeWidth:1.3}),(0,s.jsx)("h2",{children:t.waiting}),(0,s.jsx)("p",{children:t.waitingBody}),(0,s.jsxs)("button",{onClick:ey,children:[ea?(0,s.jsx)(x.A,{size:16}):(0,s.jsx)(j.A,{size:16})," ",ea?t.copied:t.copy]})]})]})]}
1),(0,s.jsxs)("div",{className:"call-controls",children:[(0,s.jsxs)("div",{className:"participant-count",children:[(0,s.jsx)(y.A,{size:18}),(0,s.jsxs)("span",{children:[eE.length+1," ",t.participants]})]}),(0,s.jsxs)("div",{className:"main-controls",children:[(0,s.jsxs)("button",{className:G?"":"control-off",disabled:ee||"joining"===F,onClick:ek,"aria-label":G?t.micOff:t.micOn,"aria-pressed":G,children:[G?(0,s.jsx)(m.A,{}):(0,s.jsx)(r.A,{}),(0,s.jsx)("span",{children:t.microphone})]}),(0,s.jsxs)("button",{className:Z?"":"control-off",disabled:ee||X||"joining"===F,onClick:eN,"aria-label":Z?t.cameraOff:t.cameraOn,"aria-pressed":Z,children:[Z?(0,s.jsx)(p.A,{}):(0,s.jsx)(h.A,{}),(0,s.jsx)("span",{children:t.camera})]}),(0,s.jsxs)("button",{className:Q.screenVideo?"control-active":"",disabled:ee||!el||X&&!Q.screenVideo||"joining"===F,onClick:eA,title:el?void 0:t.shareUnavailable,"aria-label":Q.screenVideo?t.stopShare:t.share,children:[(0,s.jsx)(n.A,{}),(0,s.jsx)("span",{children:Q.screenVideo?t.stopShare:t.share})]}),(0,s.jsxs)("button",{className:"leave-control",onClick:eg,"aria-label":t.leave,children:[(0,s.jsx)(f.A,{}),(0,s.jsx)("span",{children:t.leave})]})]}),(0,s.jsxs)("div",{className:"quality-choice",children:[(0,s.jsx)(o.A,{size:18}),(0,s.jsxs)(g.l6,{value:X?"voice":"auto",onValueChange:e=>void eC("voice"===e),children:[(0,s.jsx)(g.bq,{"aria-label":t.qualityLabel,children:(0,s.jsx)(g.yv,{})}),(0,s.jsxs)(g.gC,{children:[(0,s.jsx)(g.eb,{value:"auto",children:t.automatic}),(0,s.jsx)(g.eb,{value:"voice",children:t.audioOnly})]})]})]})]}),(0,s.jsxs)("p",{className:"call-footnote",children:[t.noRecording," \xb7 ",t.audioPriority]})]}):(0,s.jsxs)("div",{className:"meeting-lobby",children:[(0,s.jsxs)("section",{className:"lobby-intro",children:[(0,s.jsx)("p",{className:"eyebrow",children:t.eyebrow}),(0,s.jsx)("h1",{children:"ended"===F?t.ended:t.title}),(0,s.jsx)("p",{className:"lobby-subtitle",children:t.subtitle}),(0,s.jsxs)("div",{className:"voice-note",children:[(0,s.jsx)("span",{children:(0,s.jsx)(o.A,{size:27})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{children:t.audioPriority}),(0,s.jsx)("p",{children:t.priorityBody})]})]}),(0,s.jsxs)("div",{className:"meeting-assurance",children:[(0,s.jsx)(d.A,{size:17}),(0,s.jsx)("span",{children:t.noRecording})]})]}),(0,s.jsxs)("section",{className:"lobby-card","aria-label":t.title,children:[(0,s.jsxs)("div",{className:"lobby-preview",children:[(0,s.jsx)("span",{className:"preview-initial",children:I.trim()?I.trim().slice(0,1).toLocaleUpperCase():(0,s.jsx)(h.A,{size:36,strokeWidth:1.2})}),(0,s.jsx)("span",{className:"preview-caption",children:t.cameraIsOff}),(0,s.jsx)("span",{className:"preview-decoration",children:"HS"})]}),(0,s.jsxs)("div",{className:"lobby-form",children:[(0,s.jsx)("h2",{children:D?t.inviteDetected:t.cta}),(0,s.jsx)("p",{children:D?t.inviteDetectedBody:t.subtitle}),null===O?(0,s.jsxs)("p",{className:"setup-state",children:[(0,s.jsx)(u.A,{size:18,className:"spin"}),t.setupCheck]}):O.ready?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("label",{htmlFor:"meeting-name",children:t.name}),(0,s.jsx)("input",{id:"meeting-name",value:I,onChange:e=>B(e.target.value),maxLength:20,autoComplete:"nickname",placeholder:t.namePlaceholder}),(0,s.jsxs)("div",{className:"device-choices",children:[(0,s.jsxs)("label",{children:[(0,s.jsx)(m.A,{size:18}),t.microphone,(0,s.jsx)(C,{checked:G,onCheckedChange:J,"aria-label":t.microphone})]}),(0,s.jsxs)("label",{children:[(0,s.jsx)(p.A,{size:18}),t.camera,(0,s.jsx)(C,{checked:Z,onCheckedChange:K,"aria-label":t.camera})]})]}),D?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("button",{className:"meeting-primary",onClick:ef,children:[(0,s.jsx)(p.A,{size:18}),"ended"===F?t.rejoin:t.join]}),(0,s.jsxs)("button",{className:"meeting-secondary",onClick:()=>ec(!er),children:[(0,s.jsx)(v.A,{size:17}),t.inviteLabel]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("form",{className:"host-password-form",onSubmit:e=>{e.preventDefault(),ew()},children:[(0,s.jsx)("label",{htmlFor:"host-password",children:t.hostPassword}),(0,s.jsx)("input",{id:"host-password",type:"password",value:N,onChange:e=>T(e.target.value),maxLength:128,autoComplete:"current-password","aria-describedby":"host-password-hint",disabled:ee}),(0,s.jsx)("p",{id:"host-password-hint",children:t.hostPasswordHint}),(0,s.jsxs)("button",{type:"submit",className:"meeting-primary",disabled:ee,children:[ee?(0,s.jsx)(u.A,{size:18,className:"spin"}):(0,s.jsx)(c.A,{size:18})," ",t.create]})]}),(0,s.jsxs)("div",{className:"invite-entry",children:[(0,s.jsx)("label",{htmlFor:"invite-input",children:t.inviteLabel}),(0,s.jsxs)("div",{children:[(0,s.jsx)("input",{id:"invite-input",dir:"ltr",value:U,onChange:e=>$(e.target.value),placeholder:t.invitePlaceholder}),(0,s.jsx)("button",{onClick:function(){let e=function(e){try{let i=new URL(e);if(i.origin!==location.origin||"/meeting"!==i.pathname)return null;return new URLSearchParams(i.hash.slice(1)).get("invite")}catch{return null}}(U.trim());e?(eb(e),$("")):es("invalidInvite")},"aria-label":t.joinInvite,children:(0,s.jsx)(v.A,{size:20})})]})]})]}),(0,s.jsxs)("p",{className:"browser-note",children:[t.browserNotice,(0,s.jsx)("br",{}),t.browserHelp]})]}):(0,s.jsxs)("div",{className:"meeting-notice",children:[(0,s.jsx)("strong",{children:t.notReady}),(0,s.jsx)("p",{children:t.notReadyBody})]}),et&&(0,s.jsx)("p",{className:"meeting-error",role:"alert",children:t[et]||t.connectError}),er&&D&&(0,s.jsxs)("div",{className:"invitation-box",children:[(0,s.jsx)("label",{htmlFor:"lobby-invitation",children:t.inviteLabel}),(0,s.jsx)("input",{id:"lobby-invitation",dir:"ltr",value:ej,readOnly:!0,onFocus:e=>e.target.select()}),(0,s.jsxs)("button",{onClick:ey,children:[ea?(0,s.jsx)(x.A,{size:16}):(0,s.jsx)(j.A,{size:16})," ",ea?t.copied:t.copy]}),(0,s.jsx)("p",{children:t.linkPrivacy}),ed&&(0,s.jsxs)("small",{children:[t.expires,": ",new Date(1e3*ed).toLocaleTimeString(e,{hour:"2-digit",minute:"2-digit"})]})]})]})]})]})})]})}}},e=>{e.O(0,[128,602,696,73,898,441,794,358],()=>e(e.s=6979)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.