@vanira/sdk 0.0.42 β†’ 0.0.44

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.
Files changed (44) hide show
  1. package/dist/VaniraAI-D2KUxJJO.js +682 -0
  2. package/dist/VaniraAI-EFYOmJ2E.cjs +1 -0
  3. package/dist/__tests__/adapters.test.d.ts +14 -0
  4. package/dist/adapters/PeerConnectionAdapter.d.ts +90 -0
  5. package/dist/adapters/browser/BrowserAudioAdapter.d.ts +9 -0
  6. package/dist/adapters/browser/BrowserDataChannelAdapter.d.ts +16 -0
  7. package/dist/adapters/browser/BrowserMediaAdapter.d.ts +10 -0
  8. package/dist/adapters/browser/BrowserPeerAdapter.d.ts +9 -0
  9. package/dist/adapters/browser/index.d.ts +4 -0
  10. package/dist/adapters/interfaces.d.ts +70 -0
  11. package/dist/adapters/react-native/RNAudioAdapter.d.ts +9 -0
  12. package/dist/adapters/react-native/RNDataChannelAdapter.d.ts +16 -0
  13. package/dist/adapters/react-native/RNMediaAdapter.d.ts +17 -0
  14. package/dist/adapters/react-native/RNPeerAdapter.d.ts +19 -0
  15. package/dist/adapters/react-native/index.d.ts +4 -0
  16. package/dist/browser.d.ts +1 -0
  17. package/dist/core/VaniraAI.d.ts +2 -0
  18. package/dist/index.d.ts +21 -3
  19. package/dist/platforms/browser.cjs +8 -0
  20. package/dist/platforms/browser.d.ts +28 -0
  21. package/dist/platforms/browser.js +479 -0
  22. package/dist/platforms/react-native.cjs +1 -0
  23. package/dist/platforms/react-native.d.ts +46 -0
  24. package/dist/platforms/react-native.js +116 -0
  25. package/dist/react/PresetRenderer.d.ts +1 -2
  26. package/dist/react/index.d.ts +0 -4
  27. package/dist/react-native.d.ts +1 -0
  28. package/dist/runtime/browserRuntime.d.ts +17 -0
  29. package/dist/runtime/reactNativeRuntime.d.ts +18 -0
  30. package/dist/runtime/types.d.ts +96 -0
  31. package/dist/types.d.ts +36 -4
  32. package/dist/ui/presets/WidgetPresetRenderer.d.ts +2 -0
  33. package/dist/vanira-sdk.es.js +1795 -231
  34. package/dist/vanira-sdk.js +36 -36
  35. package/dist/vanira-sdk.js.map +1 -1
  36. package/dist/vanira-sdk.umd.js +1538 -0
  37. package/package.json +18 -3
  38. package/dist/react/presets/CalendarPreset.d.ts +0 -4
  39. package/dist/react/presets/CameraPreset.d.ts +0 -16
  40. package/dist/react/presets/FormPreset.d.ts +0 -4
  41. package/dist/react/presets/NavigatePreset.d.ts +0 -16
  42. package/dist/react/presets/UploadPreset.d.ts +0 -17
  43. package/dist/react/registry.d.ts +0 -3
  44. package/dist/react/types.d.ts +0 -21
@@ -1,11 +1,11 @@
1
- var be=Object.defineProperty;var xe=(M,S,D)=>S in M?be(M,S,{enumerable:!0,configurable:!0,writable:!0,value:D}):M[S]=D;var a=(M,S,D)=>xe(M,typeof S!="symbol"?S+"":S,D);(function(){"use strict";var M=typeof document<"u"?document.currentScript:null;const S="https://api.vanira.io";class D{static async fetchWidgetConfig(t,e){var s;const i={"Content-Type":"application/json"};e&&(i["X-API-Key"]=e);try{const n=await fetch(`${S}/assistant/widget/${t}/config`,{method:"GET",headers:i});if(!n.ok)throw new Error(`Widget config fetch failed: HTTP ${n.status}`);const o=await n.json();return(s=o.agent)!=null&&s.client&&(o.client=o.agent.client),o}catch(n){throw console.error("[VaniraAI] Failed to fetch widget config:",n),n}}}const oe="https://coredb.travelr.club/v1/graphql";let L="https://inboxapi.travelr.club";class Q{static setChatUrl(t){L=t}static async createChatProspect(t){var i,s;const e=`
1
+ var be=Object.defineProperty;var xe=(S,D,z)=>D in S?be(S,D,{enumerable:!0,configurable:!0,writable:!0,value:z}):S[D]=z;var a=(S,D,z)=>xe(S,typeof D!="symbol"?D+"":D,z);(function(){"use strict";var S=typeof document<"u"?document.currentScript:null;const D="https://api.vanira.io";class z{static async fetchWidgetConfig(t,e){var s;const i={"Content-Type":"application/json"};e&&(i["X-API-Key"]=e);try{const n=await fetch(`${D}/assistant/widget/${t}/config`,{method:"GET",headers:i});if(!n.ok)throw new Error(`Widget config fetch failed: HTTP ${n.status}`);const o=await n.json();return(s=o.agent)!=null&&s.client&&(o.client=o.agent.client),o}catch(n){throw console.error("[VaniraAI] Failed to fetch widget config:",n),n}}}const oe="https://coredb.travelr.club/v1/graphql";let H="https://inboxapi.travelr.club";class T{static setChatUrl(t){H=t}static async createChatProspect(t){var i,s;const e=`
2
2
  mutation CreateChatProspect($prospectGroupId: uuid!, $name: String!) {
3
3
  insert_prospects_one(object: {prospect_group_id: $prospectGroupId, name: $name, source: WEBSITE_WIDGET}) {
4
4
  id
5
5
  }
6
6
  }
7
- `;try{const o=await(await fetch(oe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,variables:{prospectGroupId:t,name:`Widget Guest ${new Date().toLocaleString()}`}})})).json();return o.errors?(console.warn("[VaniraAI] Prospect creation failed, using anonymous ID",o.errors),`anon_${Date.now()}_${Math.random().toString(36).substr(2,9)}`):((s=(i=o.data)==null?void 0:i.insert_prospects_one)==null?void 0:s.id)||`anon_${Date.now()}`}catch(n){return console.error("[VaniraAI] Failed to create prospect:",n),`anon_${Date.now()}`}}static async fetchWelcomeMessage(t,e,i,s){try{const n={"Content-Type":"application/json"},o=await fetch(`${L}/widget/chat`,{method:"POST",headers:n,body:JSON.stringify({agent_id:t,...i?{widget_id:i}:{},message:"",prospect_id:e,stream:!1})});if(!o.ok)throw new Error("Failed to fetch welcome message");const h=await o.json();let c=h.response||"Hey! how can I help you ?",l;const d=h.chat_id||h.inbox_id,r=h.conversation_id||null;return h.widget&&(l=h.widget),{role:"assistant",content:c,widget:l,chatId:d,conversationId:r}}catch(n){return console.error("[VaniraAI] Failed to fetch welcome message:",n),{role:"assistant",content:"Hey! how can I help you ?"}}}static async sendChatMessage(t,e,i,s,n,o,h,c,l){var d,r,A,g;try{const p={"Content-Type":"application/json"},v={agent_id:t,message:i,prospect_id:e,stream:!0};s&&(v.inbox_id=s),c&&(v.widget_id=c);const m=await fetch(`${L}/widget/chat`,{method:"POST",headers:p,body:JSON.stringify(v)});if(!m.ok)throw new Error("Chat request failed");const w=(d=m.body)==null?void 0:d.getReader(),f=new TextDecoder;if(!w)throw new Error("No reader");let y="",b="",x=null,E=null;for(;;){const{done:Y,value:G}=await w.read();if(Y)break;b+=f.decode(G,{stream:!0});const z=b.split(`
8
- `);b=z.pop()||"";for(const k of z){const j=k.trim();if(j&&j.startsWith("data: ")){const se=j.slice(6);if(se==="[DONE]"){h(x,E);return}try{const B=JSON.parse(se);if(B.type==="metadata"){(B.chat_id||B.inbox_id)&&(x=B.chat_id||B.inbox_id),B.conversation_id&&(E=B.conversation_id);continue}const ne=(g=(A=(r=B.choices)==null?void 0:r[0])==null?void 0:A.delta)==null?void 0:g.content;ne&&(y+=ne,n(y)),B.widget&&o(B.widget),B.chat_id&&!x&&(x=B.chat_id),B.conversation_id&&!E&&(E=B.conversation_id)}catch{}}}}h(x,E)}catch(p){console.error("[VaniraAI] Chat error:",p),n("Sorry, I encountered an error. Please try again."),h(null,null)}}static listenForAdminReplies(t,e,i){const s=`${L}/inbox/stream?inbox_id=${t}&sender=${encodeURIComponent(e)}`;let n=null,o=0,h=!1;const c=()=>{h||(n=new EventSource(s),console.log(`[VaniraAI] Subscribed to SSE EventSource at ${n.url}`),n.onopen=()=>{console.log("[VaniraAI] SSE connection opened successfully."),o=0},n.onmessage=l=>{console.log("[VaniraAI] πŸ“‘ Raw SSE Event triggered:",l.data);try{const d=JSON.parse(l.data);console.log("[VaniraAI] SSE stream JSON parsed:",d);const r=d.direction==="outgoing",A=!!d.content,g=d.source!=="ai";r&&A&&g&&(console.log("[VaniraAI] 🎯 Displaying admin message in chat UI:",d.content),i(d.content))}catch(d){console.error("[VaniraAI] SSE parse error",d)}},n.onerror=l=>{if(console.error("[VaniraAI] SSE connection error or disconnect",l),n&&(n.close(),n=null),h)return;const d=Math.min(2e3*Math.pow(2,o),3e4);console.log(`[VaniraAI] Reconnecting SSE in ${d}ms (Attempt ${o+1})...`),o++,setTimeout(c,d)})};return c(),{close:()=>{h=!0,n&&(n.close(),n=null,console.log("[VaniraAI] SSE connection manually closed."))}}}static async createCall(t,e,i,s,n){try{const o="https://api.vanira.io",h={"Content-Type":"application/json"};n&&(h["X-API-Key"]=n);const c=await fetch(`${o}/calls/create`,{method:"POST",headers:h,body:JSON.stringify({agent_id:t,prospect_id:i||void 0,type:"web"})}),l=await c.json();if(!c.ok)throw new Error(`[VaniraAI] Call creation failed HTTP ${c.status}`);if(!l.worker_url)throw new Error("[VaniraAI] Worker URL missing from response. Call cannot proceed.");return{callId:l.call_id||l.id||`web_${Date.now()}`,workerUrl:l.worker_url}}catch(o){throw console.error("[VaniraAI] Failed to create call:",o),o}}static async resolveConversation(t){try{if(!(await fetch(`${L}/inbox/conversations/resolve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversation_id:t})})).ok)throw new Error("Failed to resolve conversation")}catch(e){throw console.error("[VaniraAI] Failed to resolve conversation:",e),e}}}class ae{constructor(t){a(this,"config");a(this,"root",null);this.config=t}async initialize(t){this.config=t}}class J{constructor(t){a(this,"serverUrl");a(this,"agentId");a(this,"callId");a(this,"prospectId");a(this,"apiKey");a(this,"backendUrl");a(this,"token");a(this,"onConnected");a(this,"onDisconnected");a(this,"onError");a(this,"onTranscription");a(this,"onLocalStream");a(this,"onRemoteTrack");a(this,"onClientToolCall");a(this,"onSessionStarted");a(this,"sessionStartedEmitted",!1);a(this,"pc",null);a(this,"dataChannel",null);a(this,"audioElement",null);a(this,"localStream",null);a(this,"connected",!1);if(!t.agentId)throw new Error("agentId is required");if(!t.serverUrl&&!t.apiKey)throw new Error("Provide either serverUrl or apiKey (to use createCall())");this.agentId=t.agentId,this.serverUrl=t.serverUrl?t.serverUrl.replace(/\/$/,""):"",this.apiKey=t.apiKey,this.backendUrl=(t.backendUrl||"https://api.vanira.io").replace(/\/$/,"");const e=typeof window<"u";if(this.prospectId=t.prospectId,!this.prospectId&&e)try{this.prospectId=window.sessionStorage&&window.sessionStorage.getItem("vanira_prospect_id")||window.localStorage&&window.localStorage.getItem("vanira_prospect_id")||void 0}catch{}const i=t.sessionBehavior==="continue";if(t.callId)this.callId=t.callId;else if(i&&e)try{this.callId=window.sessionStorage&&window.sessionStorage.getItem("vanira_latest_call_id")||window.localStorage&&window.localStorage.getItem("vanira_latest_call_id")||void 0}catch{}else this.callId=void 0;this.onConnected=t.onConnected||(()=>{}),this.onDisconnected=t.onDisconnected||(()=>{}),this.onError=t.onError||(s=>console.error("[WebRTC]",s)),this.onTranscription=t.onTranscription||(()=>{}),this.onLocalStream=t.onLocalStream||(()=>{}),this.onRemoteTrack=t.onRemoteTrack||(()=>{}),this.onClientToolCall=t.onClientToolCall||(()=>{}),this.onSessionStarted=t.onSessionStarted}async createCall(){var s;if(!this.apiKey)throw new Error("[VaniraAI] apiKey is required to use createCall()");const t={"Content-Type":"application/json","X-API-Key":this.apiKey},e=await fetch(`${this.backendUrl}/calls/create`,{method:"POST",headers:t,body:JSON.stringify({agent_id:this.agentId,type:"web",prospect_id:this.prospectId,call_id:this.callId})});if(!e.ok){const n=await e.json().catch(()=>({}));throw new Error(`[VaniraAI] createCall failed (${e.status}): ${((s=n==null?void 0:n.detail)==null?void 0:s.message)||(n==null?void 0:n.message)||e.statusText}`)}const i=await e.json();if(!i.call_id||!i.worker_url)throw new Error("[VaniraAI] createCall response missing call_id or worker_url");if(this.callId=i.call_id,this.prospectId=i.prospect_id||this.prospectId,this.serverUrl=i.worker_url,typeof window<"u")try{window.sessionStorage&&(window.sessionStorage.setItem("vanira_prospect_id",this.prospectId||""),window.sessionStorage.setItem("vanira_latest_call_id",this.callId||"")),window.localStorage&&(window.localStorage.setItem("vanira_prospect_id",this.prospectId||""),window.localStorage.setItem("vanira_latest_call_id",this.callId||""))}catch(n){console.warn("[WebRTC] Failed to save session variables to storage:",n)}if(this.onSessionStarted&&this.prospectId&&this.callId)try{this.onSessionStarted({prospectId:this.prospectId,callId:this.callId,serverUrl:this.serverUrl}),this.sessionStartedEmitted=!0}catch(n){console.error("[WebRTC] Error in onSessionStarted callback:",n)}await this.connect()}async connect(){var t;if(this.apiKey&&!this.serverUrl){await this.createCall();return}if(!this.serverUrl)throw new Error("[VaniraAI] serverUrl is missing. Provide apiKey or serverUrl.");if(this.callId||(this.callId=this.generateCallId()),this.onSessionStarted&&this.prospectId&&this.callId&&!this.sessionStartedEmitted)try{this.onSessionStarted({prospectId:this.prospectId,callId:this.callId,serverUrl:this.serverUrl}),this.sessionStartedEmitted=!0}catch(e){console.error("[WebRTC] Error in onSessionStarted callback:",e)}console.log("πŸ”΅ [WebRTC] Starting connection...");try{this.pc=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:global.relay.metered.ca:80"},{urls:["turns:global.relay.metered.ca:443?transport=tcp","turn:global.relay.metered.ca:443?transport=tcp","turn:global.relay.metered.ca:80?transport=tcp"],username:"fa97658be3343d21da3b65e6",credential:"HXHDoqeHbvZrmCuf"}],iceTransportPolicy:"all"}),console.log("using ice servers:",[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"}]);let e;try{e=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:{ideal:16e3},channelCount:1}})}catch(c){if(console.error("🎀 [WebRTC] Microphone access failed:",c),c.name==="NotAllowedError"||c.name==="PermissionDeniedError"||(t=c.message)!=null&&t.includes("Permission denied")){const l=navigator.userAgent,d=/iPad|iPhone|iPod/.test(l)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;let r="Microphone access denied. Please allow microphone access in your browser settings.";d&&(l.includes("CriOS")?r="Microphone access blocked. Please enable it in iOS Settings > Chrome > Microphone, then reload the page.":l.includes("FxiOS")?r="Microphone access blocked. Please enable it in iOS Settings > Firefox > Microphone, then reload the page.":r="Microphone access blocked. Please enable it in iOS Settings > Safari > Microphone (or tap 'aA' > Website Settings > Allow Microphone).");const A=new Error(r);throw A.name=c.name,A}throw c}if(console.log("🎀 [WebRTC] Microphone access granted"),this.localStream=e,!this.pc){console.log("[WebRTC] Connection aborted: peer connection closed during setup"),e.getTracks().forEach(c=>c.stop());return}if(this.onLocalStream(e),e.getTracks().forEach(c=>{var l;(l=this.pc)==null||l.addTrack(c,e)}),!this.pc)throw new Error("RTCPeerConnection was closed unexpectedly");this.dataChannel=this.pc.createDataChannel("control"),this.dataChannel.onopen=()=>console.log("πŸ“‘ [WebRTC] DataChannel opened"),this.dataChannel.onmessage=c=>{if(typeof c.data=="string")try{this.handleControlEvent(JSON.parse(c.data))}catch{console.warn("[WebRTC] Failed to parse message:",c.data)}else if(c.data instanceof ArrayBuffer)try{const l=new TextDecoder().decode(c.data);try{const d=JSON.parse(l);d&&typeof d=="object"&&d.event==="client_tool_call"?(console.log("[VaniraAI] Safely decoding binary tool_call to JSON:",d),this.handleControlEvent(d)):console.log("[VaniraAI] Decoded JSON from binary (inspect only):",d)}catch{console.log("[VaniraAI] Decoded String from binary:",l)}}catch{console.log("[VaniraAI] Received binary data:",c.data.byteLength,"bytes (not decodable)")}else c.data instanceof Blob&&c.data.text().then(l=>{try{this.handleControlEvent(JSON.parse(l))}catch{console.warn("[WebRTC] Failed to parse blob data:",l)}})},this.dataChannel.onerror=c=>console.error("❌ [WebRTC] DataChannel error:",c),this.pc.ontrack=c=>{const l=c.track,d=c.streams[0];console.log(`πŸ“₯ [WebRTC] Received ${l.kind} track`),l.kind==="audio"?(console.log("πŸ”Š [WebRTC] Received audio track from server"),this.audioElement=new Audio,this.audioElement.srcObject=d,this.audioElement.play().catch(r=>console.warn("Audio autoplay blocked:",r)),this.audioElement.onended=()=>{this.sendEvent("playedStream"),console.log("βœ… [WebRTC] TTS playback complete")},this.onRemoteTrack(l,d)):l.kind==="video"&&(console.log("πŸ“Ή [WebRTC] Video track received"),this.onRemoteTrack(l,d))};const i=()=>{var d,r,A,g,p,v,m,w,f,y,b;console.log("πŸ”„ [WebRTC] State:",(d=this.pc)==null?void 0:d.connectionState,"| ICE:",(r=this.pc)==null?void 0:r.iceConnectionState);const c=((A=this.pc)==null?void 0:A.connectionState)==="connected"||((g=this.pc)==null?void 0:g.iceConnectionState)==="connected"||((p=this.pc)==null?void 0:p.iceConnectionState)==="completed",l=((v=this.pc)==null?void 0:v.connectionState)==="failed"||((m=this.pc)==null?void 0:m.iceConnectionState)==="failed"||((w=this.pc)==null?void 0:w.connectionState)==="closed"||((f=this.pc)==null?void 0:f.iceConnectionState)==="closed"||((y=this.pc)==null?void 0:y.connectionState)==="disconnected"||((b=this.pc)==null?void 0:b.iceConnectionState)==="disconnected";c&&!this.connected?(this.connected=!0,this.onConnected()):l&&this.connected&&(this.connected=!1,this.onDisconnected())};this.pc.onconnectionstatechange=i,this.pc.oniceconnectionstatechange=i;const s=await this.pc.createOffer();await this.pc.setLocalDescription(s),console.log("πŸ“ [WebRTC] Created offer, waiting for ICE gathering..."),await this.waitForIceGathering(),console.log("🧊 [WebRTC] ICE gathering complete"),console.log("πŸ“€ [WebRTC] Sending offer via HTTP...");const n=this.serverUrl.includes("?")?this.serverUrl:`${this.serverUrl}/webrtc?agent=${this.agentId}_${this.callId}`,o=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({offer:this.pc.localDescription,agentId:this.agentId,callId:this.callId})});if(!o.ok){const c=await o.json();throw new Error(c.error||`HTTP ${o.status}`)}const{answer:h}=await o.json();console.log("πŸ“₯ [WebRTC] Received answer from server"),await this.pc.setRemoteDescription(h),console.log("βœ… [WebRTC] Connection established!")}catch(e){throw console.error("❌ [WebRTC] Connection failed:",e),this.disconnect(),this.onError(e.message||e),e}}waitForIceGathering(){return new Promise(t=>{if(!this.pc)return t();if(this.pc.iceGatheringState==="complete")t();else{const e=()=>{var i,s;((i=this.pc)==null?void 0:i.iceGatheringState)==="complete"&&((s=this.pc)==null||s.removeEventListener("icegatheringstatechange",e),t())};this.pc.addEventListener("icegatheringstatechange",e),setTimeout(()=>{var i;(i=this.pc)==null||i.removeEventListener("icegatheringstatechange",e),console.warn("⚠️ [WebRTC] ICE gathering timeout, proceeding anyway"),t()},5e3)}})}sendEvent(t,e={}){var i;if(((i=this.dataChannel)==null?void 0:i.readyState)==="open"){const s={event:t,...e};console.log(`πŸ“€ [WebRTC] Sending event: ${t}`,s),this.dataChannel.send(JSON.stringify(s))}else console.warn(`⚠️ [WebRTC] Cannot send event ${t} - DataChannel not open`)}handleControlEvent(t){var e;switch(t.event){case"clearAudio":console.log("πŸ›‘ [WebRTC] Interrupt: clearAudio received (leaving stream unpaused)");break;case"transcription":console.log("πŸ“ [WebRTC] Transcription:",t.text),this.onTranscription(t.text,t.isFinal);break;case"mark":console.log("🏷️ [WebRTC] Mark:",t.name);break;case"client_tool_call":{const i=t.tool_call||t.data||t,s=(i==null?void 0:i.tool_call_id)||(i==null?void 0:i.call_id)||t.tool_call_id||"";s&&((e=this.dataChannel)==null?void 0:e.readyState)==="open"?(this.dataChannel.send(JSON.stringify({event:"client_tool_ack",data:{tool_call_id:s}})),console.log("βœ… [VaniraAI] Sent client_tool_ack for:",s)):s||console.warn("⚠️ [VaniraAI] client_tool_call received without tool_call_id β€” ack skipped");const n=(i==null?void 0:i.arguments)||(i==null?void 0:i.args)||{},o=(i==null?void 0:i.client_fields)||{},h=(o==null?void 0:o.preset_id)||(n==null?void 0:n.preset_id);if(h){if(console.log(`🎨 [VaniraAI] Preset detected: ${h}`),console.log("🎨 [VaniraAI] Tool args:",n),console.log("🎨 [VaniraAI] Client fields:",o),h==="vanira_highlight_element"){const c=String((n==null?void 0:n.css_selector)||(o==null?void 0:o.css_selector)||(n==null?void 0:n.selector)||(o==null?void 0:o.selector)||""),l=String((n==null?void 0:n.highlight_color)||(o==null?void 0:o.highlight_color)||"#a855f7"),d=Number((n==null?void 0:n.duration_ms)||(o==null?void 0:o.duration_ms)||3e3);if(console.log("πŸ”¦ [VaniraAI] vanira_highlight_element triggered"),console.log(` β†’ selector: "${c}"`),console.log(` β†’ color: "${l}"`),console.log(` β†’ duration: ${d}ms`),!c){console.warn("⚠️ [VaniraAI] No css_selector provided for vanira_highlight_element β€” aborting");break}const r=document.querySelector(c);if(console.log(`πŸ”¦ [VaniraAI] querySelector("${c}") β†’`,r),!r){console.warn(`⚠️ [VaniraAI] Element not found for selector: "${c}"`);break}const A=r.style.outline,g=r.style.outlineOffset,p=r.style.boxShadow,v=r.style.transition,m=r.style.scrollMarginTop;r.style.transition="outline 0.2s ease, box-shadow 0.2s ease",r.style.outline=`3px solid ${l}`,r.style.outlineOffset="6px",r.style.boxShadow=`0 0 0 8px ${l}33, 0 0 32px ${l}88`,r.style.scrollMarginTop="100px",console.log("βœ… [VaniraAI] Highlight applied to:",r),r.scrollIntoView({behavior:"smooth",block:"center"}),setTimeout(()=>{r.style.outline=A,r.style.outlineOffset=g,r.style.boxShadow=p,r.style.transition=v,r.style.scrollMarginTop=m,console.log(`πŸ”¦ [VaniraAI] Highlight removed from: "${c}"`)},d);break}console.log(`🎨 [VaniraAI] Visual preset "${h}" β€” dispatching vanira:preset event`),window.dispatchEvent(new CustomEvent("vanira:preset",{detail:{toolCall:i,client:this}})),this.onClientToolCall(i);break}console.log("πŸ› οΈ [VaniraAI] Client Tool Call:",t),this.onClientToolCall(i);break}default:console.log("ℹ️ [WebRTC] Unknown event:",t.event)}}disconnect(){console.log("πŸ”΄ [WebRTC] Disconnecting..."),this.audioElement&&(this.audioElement.pause(),this.audioElement.srcObject=null),this.dataChannel&&(this.dataChannel.close(),this.dataChannel=null),this.pc&&(this.pc.getSenders().forEach(t=>{t.track&&t.track.stop()}),this.pc.close(),this.pc=null),this.localStream&&(this.localStream.getTracks().forEach(t=>{try{t.stop()}catch{}}),this.localStream=null),this.connected=!1,this.onDisconnected()}generateCallId(){return"web_"+Date.now()+"_"+Math.random().toString(36).substr(2,8)}sendToolResult(t,e){this.sendEvent("client_tool_result",{call_id:t,result:e})}sendToolAck(t){var e;((e=this.dataChannel)==null?void 0:e.readyState)==="open"?(this.dataChannel.send(JSON.stringify({event:"client_tool_ack",data:{tool_call_id:t}})),console.log("βœ… [VaniraAI] Sent client_tool_ack for:",t)):console.warn("⚠️ [VaniraAI] Cannot send tool_ack: DataChannel not open")}sendContextUpdate(t){this.sendEvent("client_context_update",{data:{context:t}})}sendActionTrigger(t,e={}){this.sendEvent("client_action_trigger",{data:{action_name:t,data:e}})}triggerActionInterrupt(){this.sendEvent("action_interrupt"),console.log("πŸ›‘ [VaniraAI] Triggered client-side action interrupt")}async uploadMedia(t,e="general",i=""){if(!this.serverUrl)throw new Error("Upload failed: serverUrl is not set. Connect the WebRTCClient first.");if(!this.callId)throw new Error("Upload failed: callId is missing.");let s="";try{s=new URL(this.serverUrl).origin}catch{s=this.serverUrl.replace(/\/webrtc.*$/,"").replace(/\/$/,"")}const n=`${s}/media/upload`,o=new FormData;o.append("file",t),o.append("call_id",this.callId),o.append("reason",e),console.log(`[VaniraAI] Uploading media to ${n} (Call: ${this.callId}, Reason: ${e})...`);const h=await fetch(n,{method:"POST",body:o});if(!h.ok){let A=`HTTP ${h.status}`;try{A=(await h.json()).error||A}catch{}throw new Error(`Upload failed: ${A}`)}const c=await h.json(),l=c.media_id,d=c.url,r=c.content_type||t.type;if(!l||!d)throw new Error("Upload failed: server response missing media_id or url");if(console.log(`[VaniraAI] Media uploaded successfully. ID: ${l}, URL: ${d}`),this.dataChannel&&this.dataChannel.readyState==="open"){const A={event:"client_media_update",data:{media_id:l,media_url:d,content_type:r,reason:e,message:i}};this.dataChannel.send(JSON.stringify(A)),console.log("[VaniraAI] Sent client_media_update notification via DataChannel:",A)}else console.warn("[VaniraAI] WebRTC DataChannel is not open. Media uploaded but AI notification skipped.");return{media_id:l,url:d}}static async fetchIceServers(t,e="https://api.vanira.io"){try{const i=await fetch(`${e}/discovery/ice-servers`,{headers:{"X-API-Key":t}});if(!i.ok)throw new Error("Failed to fetch ICE servers");return(await i.json()).ice_servers||[]}catch(i){throw console.error("[WebRTC] Failed to fetch ICE servers:",i),i}}}const re={};class V{constructor(t){a(this,"config");a(this,"_status","idle");a(this,"client",null);a(this,"listeners",new Map);if(!t.agentId)throw new Error("[VaniraAI] agentId is required");this.config=t}get serverUrl(){var t;return(t=this.client)==null?void 0:t.serverUrl}get callId(){var t;return(t=this.client)==null?void 0:t.callId}get prospectId(){var t;return(t=this.client)==null?void 0:t.prospectId}get status(){return this._status}get isConnected(){return this._status==="connected"}on(t,e){return this.listeners.has(t)||this.listeners.set(t,new Set),this.listeners.get(t).add(e),this}off(t,e){var i;return(i=this.listeners.get(t))==null||i.delete(e),this}emit(t,e){var i;(i=this.listeners.get(t))==null||i.forEach(s=>s(e))}async start(){if(this._status==="connecting"||this._status==="connected")return console.warn("[VaniraAI] Already connecting or connected. Call stop() first."),{callId:this.callId||"",prospectId:this.prospectId||"",serverUrl:this.serverUrl||""};this._setStatus("connecting");const t=this.config.serverUrl||(this.config.apiKey?"":this._inferServerUrl());try{return this.client=new J({serverUrl:t,agentId:this.config.agentId,callId:this.config.callId,prospectId:this.config.prospectId,sessionBehavior:this.config.sessionBehavior,token:this.config.token,apiKey:this.config.apiKey,backendUrl:this.config.backendUrl,iceServers:this.config.iceServers,onSessionStarted:e=>{this.emit("session_started",e)},onConnected:()=>{this._setStatus("connected"),this.emit("connected")},onDisconnected:()=>{this._setStatus("disconnected"),this.emit("disconnected")},onError:e=>{this._setStatus("error"),this.emit("error",typeof e=="string"?e:(e==null?void 0:e.message)||"Connection failed")},onTranscription:(e,i)=>{this.emit("transcription",{text:e,isFinal:i})},onClientToolCall:e=>{const i=(e==null?void 0:e.data)||e,s={name:i.name||i.tool_name||"",arguments:i.arguments||i.args||{},tool_call_id:i.tool_call_id||i.call_id||"",execution_mode:i.execution_mode||"fire_and_forget",client_fields:i.client_fields||{}};this.emit("tool_call",s)},onRemoteTrack:(e,i)=>{this.emit("track",{track:e,stream:i})}}),await this.client.connect(),{callId:this.callId||"",prospectId:this.prospectId||"",serverUrl:this.serverUrl||""}}catch(e){throw this._setStatus("error"),this.emit("error",(e==null?void 0:e.message)||"Failed to start call"),e}}stop(){this.client&&(this.client.disconnect(),this.client=null),this._setStatus("disconnected")}sendToolResult(t,e){this._assertConnected("sendToolResult"),this.client.sendToolResult(t,e)}sendToolError(t,e){this._assertConnected("sendToolError"),this.client.sendEvent("client_tool_result",{call_id:t,result:{status:"error",error:e}})}updateContext(t){this._assertConnected("updateContext"),this.client.sendContextUpdate(t)}triggerInterrupt(t,e={}){this._assertConnected("triggerInterrupt"),this.client.triggerActionInterrupt(),this.client.sendActionTrigger(t,e)}interruptAudioOnly(){this._assertConnected("interruptAudioOnly"),this.client.triggerActionInterrupt()}async uploadMedia(t,e="general",i="",s=!1){this._assertConnected("uploadMedia"),s&&this.client.triggerActionInterrupt();const n=50*1024*1024;if(t.size>n)throw new Error(`Upload failed: file is too large (${(t.size/1024/1024).toFixed(1)} MB). Maximum is 50 MB.`);const o=["image/jpeg","image/png","image/gif","image/webp","image/bmp","application/pdf"],h=t.type;if(h&&!o.includes(h))throw new Error(`Upload failed: unsupported file type '${h}'. Supported: JPEG, PNG, GIF, WebP, BMP, PDF.`);return this.client.uploadMedia(t,e,i)}_setStatus(t){this._status=t}_inferServerUrl(){return(typeof{url:M&&M.tagName.toUpperCase()==="SCRIPT"&&M.src||new URL("vanira-sdk.js",document.baseURI).href}<"u"&&re||{}).VITE_WEBRTC_SERVER_URL||"https://in-godspeed.travelr.club"}_assertConnected(t){if(!this.client||!this.isConnected)throw new Error(`[VaniraAI] Cannot call ${t}() when not connected. Call start() first.`)}}const T=class T{constructor(t){a(this,"tabId");a(this,"sessionKey");a(this,"channelName");a(this,"channel",null);a(this,"heartbeatTimer",null);a(this,"listeners",new Map);const e=t.replace(/[^a-z0-9_-]/gi,"_");this.sessionKey=`vaniraai_session_${e}`,this.channelName=`vaniraai_channel_${e}`,this.tabId=this._getOrCreateTabId(),this._setupChannel()}getTabId(){return this.tabId}claimSession(){const t=this._loadSession();if(t){const s=Date.now()-t.lastActive,n=t.tabId===this.tabId,o=s>T.HEARTBEAT_TIMEOUT_MS;if(n)return this._startHeartbeat(),this._emit("session_restored"),!0;if(!o)return this._emit("tab_conflict"),!1}const e=t?{...t,tabId:this.tabId,lastActive:Date.now()}:{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()};this._saveSession(e),this._startHeartbeat(),this._broadcast({type:"took_over",tabId:this.tabId});const i=!!(t!=null&&t.prospectId);return this._emit(i?"session_restored":"session_claimed"),!0}forceClaimSession(){const t=this._loadSession(),e=t?{...t,tabId:this.tabId,lastActive:Date.now()}:{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()};this._saveSession(e),this._startHeartbeat(),this._broadcast({type:"took_over",tabId:this.tabId}),this._emit("session_claimed")}saveIds(t,e,i){const s=this._loadSession()??this._blankSession();this._saveSession({...s,prospectId:t,chatId:e,conversationId:i??s.conversationId??null,tabId:this.tabId,lastActive:Date.now()})}pushMessage(t,e){const i=this._loadSession()??this._blankSession();i.messages.push({role:t,content:e,timestamp:Date.now()}),i.messages.length>100&&(i.messages=i.messages.slice(-100)),this._saveSession({...i,tabId:this.tabId,lastActive:Date.now()})}updateLastAssistantMessage(t){const e=this._loadSession()??this._blankSession(),i=e.messages;let s=!1;for(let n=i.length-1;n>=0;n--)if(i[n].role==="assistant"&&i[n].content===""){i[n].content=t,s=!0;break}if(!s){for(let n=i.length-1;n>=0;n--)if(i[n].role==="assistant"){i[n].content=t,s=!0;break}}s||i.push({role:"assistant",content:t,timestamp:Date.now()}),this._saveSession({...e,tabId:this.tabId,lastActive:Date.now()})}getSession(){return this._loadSession()}clearSession(){localStorage.removeItem(this.sessionKey),this._broadcast({type:"session_cleared",tabId:this.tabId}),this._emit("session_cleared")}clearChatKeepProspect(){const t=this._loadSession();t&&this._saveSession({...t,chatId:null,conversationId:null,messages:[],lastActive:Date.now()})}destroy(){this._stopHeartbeat(),this.channel&&(this.channel.close(),this.channel=null)}on(t,e){return this.listeners.has(t)||this.listeners.set(t,new Set),this.listeners.get(t).add(e),this}off(t,e){var i;return(i=this.listeners.get(t))==null||i.delete(e),this}_getOrCreateTabId(){let t=sessionStorage.getItem("vaniraai_tab_id");return t||(t=`tab_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,sessionStorage.setItem("vaniraai_tab_id",t)),t}_setupChannel(){typeof BroadcastChannel>"u"||(this.channel=new BroadcastChannel(this.channelName),this.channel.onmessage=t=>{const e=t.data;e.tabId!==this.tabId&&(e.type==="took_over"&&(this._stopHeartbeat(),this._emit("tab_took_over")),e.type,e.type==="session_cleared"&&this._emit("session_cleared"))})}_broadcast(t){var e;(e=this.channel)==null||e.postMessage(t)}_startHeartbeat(){this._stopHeartbeat(),this.heartbeatTimer=setInterval(()=>{const t=this._loadSession();t&&t.tabId===this.tabId&&(this._saveSession({...t,lastActive:Date.now()}),this._broadcast({type:"heartbeat",tabId:this.tabId}))},T.HEARTBEAT_INTERVAL_MS)}_stopHeartbeat(){this.heartbeatTimer!==null&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}_loadSession(){try{const t=localStorage.getItem(this.sessionKey);return t?JSON.parse(t):null}catch{return null}}_saveSession(t){try{localStorage.setItem(this.sessionKey,JSON.stringify(t))}catch(e){console.warn("[VaniraAI] SessionManager: failed to save session",e)}}_blankSession(){return{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()}}_emit(t){var e;(e=this.listeners.get(t))==null||e.forEach(i=>i())}};a(T,"HEARTBEAT_INTERVAL_MS",5e3),a(T,"HEARTBEAT_TIMEOUT_MS",15e3);let R=T;const O="data:image/png;base64,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",W="data:image/png;base64,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",X=u=>{u=u.replace(/^#/,"");let t,e,i;return u.length===3?(t=parseInt(u.charAt(0)+u.charAt(0),16),e=parseInt(u.charAt(1)+u.charAt(1),16),i=parseInt(u.charAt(2)+u.charAt(2),16)):(t=parseInt(u.substring(0,2),16),e=parseInt(u.substring(2,4),16),i=parseInt(u.substring(4,6),16)),isNaN(t)||isNaN(e)||isNaN(i)?"0, 0, 0":`${t}, ${e}, ${i}`},le=(u,t)=>{const e=X(u),i=X(t||u);return`
7
+ `;try{const o=await(await fetch(oe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,variables:{prospectGroupId:t,name:`Widget Guest ${new Date().toLocaleString()}`}})})).json();return o.errors?(console.warn("[VaniraAI] Prospect creation failed, using anonymous ID",o.errors),`anon_${Date.now()}_${Math.random().toString(36).substr(2,9)}`):((s=(i=o.data)==null?void 0:i.insert_prospects_one)==null?void 0:s.id)||`anon_${Date.now()}`}catch(n){return console.error("[VaniraAI] Failed to create prospect:",n),`anon_${Date.now()}`}}static async fetchWelcomeMessage(t,e,i,s){try{const n={"Content-Type":"application/json"},o=await fetch(`${H}/widget/chat`,{method:"POST",headers:n,body:JSON.stringify({agent_id:t,...i?{widget_id:i}:{},message:"",prospect_id:e,stream:!1})});if(!o.ok)throw new Error("Failed to fetch welcome message");const d=await o.json();let l=d.response||"Hey! how can I help you ?",r;const h=d.chat_id||d.inbox_id,c=d.conversation_id||null;return d.widget&&(r=d.widget),{role:"assistant",content:l,widget:r,chatId:h,conversationId:c}}catch(n){return console.error("[VaniraAI] Failed to fetch welcome message:",n),{role:"assistant",content:"Hey! how can I help you ?"}}}static async sendChatMessage(t,e,i,s,n,o,d,l,r){var h,c,A,g;try{const p={"Content-Type":"application/json"},x={agent_id:t,message:i,prospect_id:e,stream:!0};s&&(x.inbox_id=s),l&&(x.widget_id=l);const m=await fetch(`${H}/widget/chat`,{method:"POST",headers:p,body:JSON.stringify(x)});if(!m.ok)throw new Error("Chat request failed");const w=(h=m.body)==null?void 0:h.getReader(),f=new TextDecoder;if(!w)throw new Error("No reader");let b="",y="",v=null,C=null;for(;;){const{done:P,value:Q}=await w.read();if(P)break;y+=f.decode(Q,{stream:!0});const M=y.split(`
8
+ `);y=M.pop()||"";for(const k of M){const j=k.trim();if(j&&j.startsWith("data: ")){const se=j.slice(6);if(se==="[DONE]"){d(v,C);return}try{const E=JSON.parse(se);if(E.type==="metadata"){(E.chat_id||E.inbox_id)&&(v=E.chat_id||E.inbox_id),E.conversation_id&&(C=E.conversation_id);continue}const ne=(g=(A=(c=E.choices)==null?void 0:c[0])==null?void 0:A.delta)==null?void 0:g.content;ne&&(b+=ne,n(b)),E.widget&&o(E.widget),E.chat_id&&!v&&(v=E.chat_id),E.conversation_id&&!C&&(C=E.conversation_id)}catch{}}}}d(v,C)}catch(p){console.error("[VaniraAI] Chat error:",p),n("Sorry, I encountered an error. Please try again."),d(null,null)}}static listenForAdminReplies(t,e,i){const s=`${H}/inbox/stream?inbox_id=${t}&sender=${encodeURIComponent(e)}`;let n=null,o=0,d=!1;const l=()=>{d||(n=new EventSource(s),console.log(`[VaniraAI] Subscribed to SSE EventSource at ${n.url}`),n.onopen=()=>{console.log("[VaniraAI] SSE connection opened successfully."),o=0},n.onmessage=r=>{console.log("[VaniraAI] πŸ“‘ Raw SSE Event triggered:",r.data);try{const h=JSON.parse(r.data);console.log("[VaniraAI] SSE stream JSON parsed:",h);const c=h.direction==="outgoing",A=!!h.content,g=h.source!=="ai";c&&A&&g&&(console.log("[VaniraAI] 🎯 Displaying admin message in chat UI:",h.content),i(h.content))}catch(h){console.error("[VaniraAI] SSE parse error",h)}},n.onerror=r=>{if(console.error("[VaniraAI] SSE connection error or disconnect",r),n&&(n.close(),n=null),d)return;const h=Math.min(2e3*Math.pow(2,o),3e4);console.log(`[VaniraAI] Reconnecting SSE in ${h}ms (Attempt ${o+1})...`),o++,setTimeout(l,h)})};return l(),{close:()=>{d=!0,n&&(n.close(),n=null,console.log("[VaniraAI] SSE connection manually closed."))}}}static async createCall(t,e,i,s,n){try{const o="https://api.vanira.io",d={"Content-Type":"application/json"};n&&(d["X-API-Key"]=n);const l=await fetch(`${o}/calls/create`,{method:"POST",headers:d,body:JSON.stringify({agent_id:t,prospect_id:i||void 0,type:"web"})}),r=await l.json();if(!l.ok)throw new Error(`[VaniraAI] Call creation failed HTTP ${l.status}`);if(!r.worker_url)throw new Error("[VaniraAI] Worker URL missing from response. Call cannot proceed.");return{callId:r.call_id||r.id||`web_${Date.now()}`,workerUrl:r.worker_url}}catch(o){throw console.error("[VaniraAI] Failed to create call:",o),o}}static async resolveConversation(t){try{if(!(await fetch(`${H}/inbox/conversations/resolve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversation_id:t})})).ok)throw new Error("Failed to resolve conversation")}catch(e){throw console.error("[VaniraAI] Failed to resolve conversation:",e),e}}}class re{constructor(t){a(this,"config");a(this,"root",null);this.config=t}async initialize(t){this.config=t}}class J{constructor(t){a(this,"serverUrl");a(this,"agentId");a(this,"callId");a(this,"prospectId");a(this,"apiKey");a(this,"backendUrl");a(this,"token");a(this,"onConnected");a(this,"onDisconnected");a(this,"onError");a(this,"onTranscription");a(this,"onLocalStream");a(this,"onRemoteTrack");a(this,"onClientToolCall");a(this,"onSessionStarted");a(this,"sessionStartedEmitted",!1);a(this,"pc",null);a(this,"dataChannel",null);a(this,"audioElement",null);a(this,"localStream",null);a(this,"connected",!1);if(!t.agentId)throw new Error("agentId is required");if(!t.serverUrl&&!t.apiKey)throw new Error("Provide either serverUrl or apiKey (to use createCall())");this.agentId=t.agentId,this.serverUrl=t.serverUrl?t.serverUrl.replace(/\/$/,""):"",this.apiKey=t.apiKey,this.backendUrl=(t.backendUrl||"https://api.vanira.io").replace(/\/$/,"");const e=typeof window<"u";if(this.prospectId=t.prospectId,!this.prospectId&&e)try{this.prospectId=window.sessionStorage&&window.sessionStorage.getItem("vanira_prospect_id")||window.localStorage&&window.localStorage.getItem("vanira_prospect_id")||void 0}catch{}const i=t.sessionBehavior==="continue";if(t.callId)this.callId=t.callId;else if(i&&e)try{this.callId=window.sessionStorage&&window.sessionStorage.getItem("vanira_latest_call_id")||window.localStorage&&window.localStorage.getItem("vanira_latest_call_id")||void 0}catch{}else this.callId=void 0;this.onConnected=t.onConnected||(()=>{}),this.onDisconnected=t.onDisconnected||(()=>{}),this.onError=t.onError||(s=>console.error("[WebRTC]",s)),this.onTranscription=t.onTranscription||(()=>{}),this.onLocalStream=t.onLocalStream||(()=>{}),this.onRemoteTrack=t.onRemoteTrack||(()=>{}),this.onClientToolCall=t.onClientToolCall||(()=>{}),this.onSessionStarted=t.onSessionStarted}async createCall(){var s;if(!this.apiKey)throw new Error("[VaniraAI] apiKey is required to use createCall()");const t={"Content-Type":"application/json","X-API-Key":this.apiKey},e=await fetch(`${this.backendUrl}/calls/create`,{method:"POST",headers:t,body:JSON.stringify({agent_id:this.agentId,type:"web",prospect_id:this.prospectId,call_id:this.callId})});if(!e.ok){const n=await e.json().catch(()=>({}));throw new Error(`[VaniraAI] createCall failed (${e.status}): ${((s=n==null?void 0:n.detail)==null?void 0:s.message)||(n==null?void 0:n.message)||e.statusText}`)}const i=await e.json();if(!i.call_id||!i.worker_url)throw new Error("[VaniraAI] createCall response missing call_id or worker_url");if(this.callId=i.call_id,this.prospectId=i.prospect_id||this.prospectId,this.serverUrl=i.worker_url,typeof window<"u")try{window.sessionStorage&&(window.sessionStorage.setItem("vanira_prospect_id",this.prospectId||""),window.sessionStorage.setItem("vanira_latest_call_id",this.callId||"")),window.localStorage&&(window.localStorage.setItem("vanira_prospect_id",this.prospectId||""),window.localStorage.setItem("vanira_latest_call_id",this.callId||""))}catch(n){console.warn("[WebRTC] Failed to save session variables to storage:",n)}if(this.onSessionStarted&&this.prospectId&&this.callId)try{this.onSessionStarted({prospectId:this.prospectId,callId:this.callId,serverUrl:this.serverUrl}),this.sessionStartedEmitted=!0}catch(n){console.error("[WebRTC] Error in onSessionStarted callback:",n)}await this.connect()}async connect(){var t;if(this.apiKey&&!this.serverUrl){await this.createCall();return}if(!this.serverUrl)throw new Error("[VaniraAI] serverUrl is missing. Provide apiKey or serverUrl.");if(this.callId||(this.callId=this.generateCallId()),this.onSessionStarted&&this.prospectId&&this.callId&&!this.sessionStartedEmitted)try{this.onSessionStarted({prospectId:this.prospectId,callId:this.callId,serverUrl:this.serverUrl}),this.sessionStartedEmitted=!0}catch(e){console.error("[WebRTC] Error in onSessionStarted callback:",e)}console.log("πŸ”΅ [WebRTC] Starting connection...");try{this.pc=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:global.relay.metered.ca:80"},{urls:["turns:global.relay.metered.ca:443?transport=tcp","turn:global.relay.metered.ca:443?transport=tcp","turn:global.relay.metered.ca:80?transport=tcp"],username:"fa97658be3343d21da3b65e6",credential:"HXHDoqeHbvZrmCuf"}],iceTransportPolicy:"all"}),console.log("using ice servers:",[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"}]);let e;try{e=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:{ideal:16e3},channelCount:1}})}catch(l){if(console.error("🎀 [WebRTC] Microphone access failed:",l),l.name==="NotAllowedError"||l.name==="PermissionDeniedError"||(t=l.message)!=null&&t.includes("Permission denied")){const r=navigator.userAgent,h=/iPad|iPhone|iPod/.test(r)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;let c="Microphone access denied. Please allow microphone access in your browser settings.";h&&(r.includes("CriOS")?c="Microphone access blocked. Please enable it in iOS Settings > Chrome > Microphone, then reload the page.":r.includes("FxiOS")?c="Microphone access blocked. Please enable it in iOS Settings > Firefox > Microphone, then reload the page.":c="Microphone access blocked. Please enable it in iOS Settings > Safari > Microphone (or tap 'aA' > Website Settings > Allow Microphone).");const A=new Error(c);throw A.name=l.name,A}throw l}if(console.log("🎀 [WebRTC] Microphone access granted"),this.localStream=e,!this.pc){console.log("[WebRTC] Connection aborted: peer connection closed during setup"),e.getTracks().forEach(l=>l.stop());return}if(this.onLocalStream(e),e.getTracks().forEach(l=>{var r;(r=this.pc)==null||r.addTrack(l,e)}),!this.pc)throw new Error("RTCPeerConnection was closed unexpectedly");this.dataChannel=this.pc.createDataChannel("control"),this.dataChannel.onopen=()=>console.log("πŸ“‘ [WebRTC] DataChannel opened"),this.dataChannel.onmessage=l=>{if(typeof l.data=="string")try{this.handleControlEvent(JSON.parse(l.data))}catch{console.warn("[WebRTC] Failed to parse message:",l.data)}else if(l.data instanceof ArrayBuffer)try{const r=new TextDecoder().decode(l.data);try{const h=JSON.parse(r);h&&typeof h=="object"&&h.event==="client_tool_call"?(console.log("[VaniraAI] Safely decoding binary tool_call to JSON:",h),this.handleControlEvent(h)):console.log("[VaniraAI] Decoded JSON from binary (inspect only):",h)}catch{console.log("[VaniraAI] Decoded String from binary:",r)}}catch{console.log("[VaniraAI] Received binary data:",l.data.byteLength,"bytes (not decodable)")}else l.data instanceof Blob&&l.data.text().then(r=>{try{this.handleControlEvent(JSON.parse(r))}catch{console.warn("[WebRTC] Failed to parse blob data:",r)}})},this.dataChannel.onerror=l=>console.error("❌ [WebRTC] DataChannel error:",l),this.pc.ontrack=l=>{const r=l.track,h=l.streams[0];console.log(`πŸ“₯ [WebRTC] Received ${r.kind} track`),r.kind==="audio"?(console.log("πŸ”Š [WebRTC] Received audio track from server"),this.audioElement=new Audio,this.audioElement.srcObject=h,this.audioElement.play().catch(c=>console.warn("Audio autoplay blocked:",c)),this.audioElement.onended=()=>{this.sendEvent("playedStream"),console.log("βœ… [WebRTC] TTS playback complete")},this.onRemoteTrack(r,h)):r.kind==="video"&&(console.log("πŸ“Ή [WebRTC] Video track received"),this.onRemoteTrack(r,h))};const i=()=>{var h,c,A,g,p,x,m,w,f,b,y;console.log("πŸ”„ [WebRTC] State:",(h=this.pc)==null?void 0:h.connectionState,"| ICE:",(c=this.pc)==null?void 0:c.iceConnectionState);const l=((A=this.pc)==null?void 0:A.connectionState)==="connected"||((g=this.pc)==null?void 0:g.iceConnectionState)==="connected"||((p=this.pc)==null?void 0:p.iceConnectionState)==="completed",r=((x=this.pc)==null?void 0:x.connectionState)==="failed"||((m=this.pc)==null?void 0:m.iceConnectionState)==="failed"||((w=this.pc)==null?void 0:w.connectionState)==="closed"||((f=this.pc)==null?void 0:f.iceConnectionState)==="closed"||((b=this.pc)==null?void 0:b.connectionState)==="disconnected"||((y=this.pc)==null?void 0:y.iceConnectionState)==="disconnected";l&&!this.connected?(this.connected=!0,this.onConnected()):r&&this.connected&&(this.connected=!1,this.onDisconnected())};this.pc.onconnectionstatechange=i,this.pc.oniceconnectionstatechange=i;const s=await this.pc.createOffer();await this.pc.setLocalDescription(s),console.log("πŸ“ [WebRTC] Created offer, waiting for ICE gathering..."),await this.waitForIceGathering(),console.log("🧊 [WebRTC] ICE gathering complete"),console.log("πŸ“€ [WebRTC] Sending offer via HTTP...");const n=this.serverUrl.includes("?")?this.serverUrl:`${this.serverUrl}/webrtc?agent=${this.agentId}_${this.callId}`,o=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({offer:this.pc.localDescription,agentId:this.agentId,callId:this.callId})});if(!o.ok){const l=await o.json();throw new Error(l.error||`HTTP ${o.status}`)}const{answer:d}=await o.json();console.log("πŸ“₯ [WebRTC] Received answer from server"),await this.pc.setRemoteDescription(d),console.log("βœ… [WebRTC] Connection established!")}catch(e){throw console.error("❌ [WebRTC] Connection failed:",e),this.disconnect(),this.onError(e.message||e),e}}waitForIceGathering(){return new Promise(t=>{if(!this.pc)return t();if(this.pc.iceGatheringState==="complete")t();else{const e=()=>{var i,s;((i=this.pc)==null?void 0:i.iceGatheringState)==="complete"&&((s=this.pc)==null||s.removeEventListener("icegatheringstatechange",e),t())};this.pc.addEventListener("icegatheringstatechange",e),setTimeout(()=>{var i;(i=this.pc)==null||i.removeEventListener("icegatheringstatechange",e),console.warn("⚠️ [WebRTC] ICE gathering timeout, proceeding anyway"),t()},5e3)}})}sendEvent(t,e={}){var i;if(((i=this.dataChannel)==null?void 0:i.readyState)==="open"){const s={event:t,...e};console.log(`πŸ“€ [WebRTC] Sending event: ${t}`,s),this.dataChannel.send(JSON.stringify(s))}else console.warn(`⚠️ [WebRTC] Cannot send event ${t} - DataChannel not open`)}handleControlEvent(t){var e;switch(t.event){case"clearAudio":console.log("πŸ›‘ [WebRTC] Interrupt: clearAudio received (leaving stream unpaused)");break;case"transcription":console.log("πŸ“ [WebRTC] Transcription:",t.text),this.onTranscription(t.text,t.isFinal);break;case"mark":console.log("🏷️ [WebRTC] Mark:",t.name);break;case"client_tool_call":{const i=t.tool_call||t.data||t,s=(i==null?void 0:i.tool_call_id)||(i==null?void 0:i.call_id)||t.tool_call_id||"";s&&((e=this.dataChannel)==null?void 0:e.readyState)==="open"?(this.dataChannel.send(JSON.stringify({event:"client_tool_ack",data:{tool_call_id:s}})),console.log("βœ… [VaniraAI] Sent client_tool_ack for:",s)):s||console.warn("⚠️ [VaniraAI] client_tool_call received without tool_call_id β€” ack skipped");const n=(i==null?void 0:i.arguments)||(i==null?void 0:i.args)||{},o=(i==null?void 0:i.client_fields)||{},d=(o==null?void 0:o.preset_id)||(n==null?void 0:n.preset_id);if(d){console.log(`🎨 [VaniraAI] Preset detected: ${d}`),console.log("🎨 [VaniraAI] Tool args:",n),console.log("🎨 [VaniraAI] Client fields:",o),console.log(`🎨 [VaniraAI] Preset "${d}" β€” dispatching vanira:preset event`),window.dispatchEvent(new CustomEvent("vanira:preset",{detail:{toolCall:i,client:this}})),this.onClientToolCall(i);break}console.log("πŸ› οΈ [VaniraAI] Client Tool Call:",t),this.onClientToolCall(i);break}default:console.log("ℹ️ [WebRTC] Unknown event:",t.event)}}disconnect(){console.log("πŸ”΄ [WebRTC] Disconnecting..."),this.audioElement&&(this.audioElement.pause(),this.audioElement.srcObject=null),this.dataChannel&&(this.dataChannel.close(),this.dataChannel=null),this.pc&&(this.pc.getSenders().forEach(t=>{t.track&&t.track.stop()}),this.pc.close(),this.pc=null),this.localStream&&(this.localStream.getTracks().forEach(t=>{try{t.stop()}catch{}}),this.localStream=null),this.connected=!1,this.onDisconnected()}generateCallId(){return"web_"+Date.now()+"_"+Math.random().toString(36).substr(2,8)}sendToolResult(t,e){this.sendEvent("client_tool_result",{call_id:t,result:e})}sendToolAck(t){var e;((e=this.dataChannel)==null?void 0:e.readyState)==="open"?(this.dataChannel.send(JSON.stringify({event:"client_tool_ack",data:{tool_call_id:t}})),console.log("βœ… [VaniraAI] Sent client_tool_ack for:",t)):console.warn("⚠️ [VaniraAI] Cannot send tool_ack: DataChannel not open")}sendContextUpdate(t){this.sendEvent("client_context_update",{data:{context:t}})}sendActionTrigger(t,e={}){this.sendEvent("client_action_trigger",{data:{action_name:t,data:e}})}triggerActionInterrupt(){this.sendEvent("action_interrupt"),console.log("πŸ›‘ [VaniraAI] Triggered client-side action interrupt")}async uploadMedia(t,e="general",i=""){if(!this.serverUrl)throw new Error("Upload failed: serverUrl is not set. Connect the WebRTCClient first.");if(!this.callId)throw new Error("Upload failed: callId is missing.");let s="";try{s=new URL(this.serverUrl).origin}catch{s=this.serverUrl.replace(/\/webrtc.*$/,"").replace(/\/$/,"")}const n=`${s}/media/upload`,o=new FormData;o.append("file",t),o.append("call_id",this.callId),o.append("reason",e),console.log(`[VaniraAI] Uploading media to ${n} (Call: ${this.callId}, Reason: ${e})...`);const d=await fetch(n,{method:"POST",body:o});if(!d.ok){let A=`HTTP ${d.status}`;try{A=(await d.json()).error||A}catch{}throw new Error(`Upload failed: ${A}`)}const l=await d.json(),r=l.media_id,h=l.url,c=l.content_type||t.type;if(!r||!h)throw new Error("Upload failed: server response missing media_id or url");if(console.log(`[VaniraAI] Media uploaded successfully. ID: ${r}, URL: ${h}`),this.dataChannel&&this.dataChannel.readyState==="open"){const A={event:"client_media_update",data:{media_id:r,media_url:h,content_type:c,reason:e,message:i}};this.dataChannel.send(JSON.stringify(A)),console.log("[VaniraAI] Sent client_media_update notification via DataChannel:",A)}else console.warn("[VaniraAI] WebRTC DataChannel is not open. Media uploaded but AI notification skipped.");return{media_id:r,url:h}}static async fetchIceServers(t,e="https://api.vanira.io"){try{const i=await fetch(`${e}/discovery/ice-servers`,{headers:{"X-API-Key":t}});if(!i.ok)throw new Error("Failed to fetch ICE servers");return(await i.json()).ice_servers||[]}catch(i){throw console.error("[WebRTC] Failed to fetch ICE servers:",i),i}}}const ae={};class O{constructor(t){a(this,"config");a(this,"_status","idle");a(this,"client",null);a(this,"listeners",new Map);if(!t.agentId)throw new Error("[VaniraAI] agentId is required");this.config=t}get serverUrl(){var t;return(t=this.client)==null?void 0:t.serverUrl}get callId(){var t;return(t=this.client)==null?void 0:t.callId}get prospectId(){var t;return(t=this.client)==null?void 0:t.prospectId}get status(){return this._status}get isConnected(){return this._status==="connected"}on(t,e){return this.listeners.has(t)||this.listeners.set(t,new Set),this.listeners.get(t).add(e),this}off(t,e){var i;return(i=this.listeners.get(t))==null||i.delete(e),this}emit(t,e){var i;(i=this.listeners.get(t))==null||i.forEach(s=>s(e))}async start(){if(this._status==="connecting"||this._status==="connected")return console.warn("[VaniraAI] Already connecting or connected. Call stop() first."),{callId:this.callId||"",prospectId:this.prospectId||"",serverUrl:this.serverUrl||""};this._setStatus("connecting");const t=this.config.serverUrl||(this.config.apiKey?"":this._inferServerUrl());try{return this.client=new J({serverUrl:t,agentId:this.config.agentId,callId:this.config.callId,prospectId:this.config.prospectId,sessionBehavior:this.config.sessionBehavior,token:this.config.token,apiKey:this.config.apiKey,backendUrl:this.config.backendUrl,iceServers:this.config.iceServers,runtime:this.config.runtime,onSessionStarted:e=>{this.emit("session_started",e)},onConnected:()=>{this._setStatus("connected"),this.emit("connected")},onDisconnected:()=>{this._setStatus("disconnected"),this.emit("disconnected")},onError:e=>{this._setStatus("error"),this.emit("error",typeof e=="string"?e:(e==null?void 0:e.message)||"Connection failed")},onTranscription:(e,i)=>{this.emit("transcription",{text:e,isFinal:i})},onClientToolCall:e=>{const i=(e==null?void 0:e.data)||e,s={name:i.name||i.tool_name||"",arguments:i.arguments||i.args||{},tool_call_id:i.tool_call_id||i.call_id||"",execution_mode:i.execution_mode||"fire_and_forget",client_fields:i.client_fields||{}};this.emit("tool_call",s)},onRemoteTrack:(e,i)=>{this.emit("track",{track:e,stream:i})}}),await this.client.connect(),{callId:this.callId||"",prospectId:this.prospectId||"",serverUrl:this.serverUrl||""}}catch(e){throw this._setStatus("error"),this.emit("error",(e==null?void 0:e.message)||"Failed to start call"),e}}stop(){this.client&&(this.client.disconnect(),this.client=null),this._setStatus("disconnected")}sendToolResult(t,e){this._assertConnected("sendToolResult"),this.client.sendToolResult(t,e)}sendToolError(t,e){this._assertConnected("sendToolError"),this.client.sendEvent("client_tool_result",{call_id:t,result:{status:"error",error:e}})}updateContext(t){this._assertConnected("updateContext"),this.client.sendContextUpdate(t)}triggerInterrupt(t,e={}){this._assertConnected("triggerInterrupt"),this.client.triggerActionInterrupt(),this.client.sendActionTrigger(t,e)}interruptAudioOnly(){this._assertConnected("interruptAudioOnly"),this.client.triggerActionInterrupt()}async uploadMedia(t,e="general",i="",s=!1){this._assertConnected("uploadMedia"),s&&this.client.triggerActionInterrupt();const n=50*1024*1024;if(t.size>n)throw new Error(`Upload failed: file is too large (${(t.size/1024/1024).toFixed(1)} MB). Maximum is 50 MB.`);const o=["image/jpeg","image/png","image/gif","image/webp","image/bmp","application/pdf"],d=t.type;if(d&&!o.includes(d))throw new Error(`Upload failed: unsupported file type '${d}'. Supported: JPEG, PNG, GIF, WebP, BMP, PDF.`);return this.client.uploadMedia(t,e,i)}_setStatus(t){this._status=t}_inferServerUrl(){return(typeof{url:S&&S.tagName.toUpperCase()==="SCRIPT"&&S.src||new URL("vanira-sdk.js",document.baseURI).href}<"u"&&ae||{}).VITE_WEBRTC_SERVER_URL||"https://in-godspeed.travelr.club"}_assertConnected(t){if(!this.client||!this.isConnected)throw new Error(`[VaniraAI] Cannot call ${t}() when not connected. Call start() first.`)}}const L=class L{constructor(t){a(this,"tabId");a(this,"sessionKey");a(this,"channelName");a(this,"channel",null);a(this,"heartbeatTimer",null);a(this,"listeners",new Map);const e=t.replace(/[^a-z0-9_-]/gi,"_");this.sessionKey=`vaniraai_session_${e}`,this.channelName=`vaniraai_channel_${e}`,this.tabId=this._getOrCreateTabId(),this._setupChannel()}getTabId(){return this.tabId}claimSession(){const t=this._loadSession();if(t){const s=Date.now()-t.lastActive,n=t.tabId===this.tabId,o=s>L.HEARTBEAT_TIMEOUT_MS;if(n)return this._startHeartbeat(),this._emit("session_restored"),!0;if(!o)return this._emit("tab_conflict"),!1}const e=t?{...t,tabId:this.tabId,lastActive:Date.now()}:{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()};this._saveSession(e),this._startHeartbeat(),this._broadcast({type:"took_over",tabId:this.tabId});const i=!!(t!=null&&t.prospectId);return this._emit(i?"session_restored":"session_claimed"),!0}forceClaimSession(){const t=this._loadSession(),e=t?{...t,tabId:this.tabId,lastActive:Date.now()}:{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()};this._saveSession(e),this._startHeartbeat(),this._broadcast({type:"took_over",tabId:this.tabId}),this._emit("session_claimed")}saveIds(t,e,i){const s=this._loadSession()??this._blankSession();this._saveSession({...s,prospectId:t,chatId:e,conversationId:i??s.conversationId??null,tabId:this.tabId,lastActive:Date.now()})}pushMessage(t,e){const i=this._loadSession()??this._blankSession();i.messages.push({role:t,content:e,timestamp:Date.now()}),i.messages.length>100&&(i.messages=i.messages.slice(-100)),this._saveSession({...i,tabId:this.tabId,lastActive:Date.now()})}updateLastAssistantMessage(t){const e=this._loadSession()??this._blankSession(),i=e.messages;let s=!1;for(let n=i.length-1;n>=0;n--)if(i[n].role==="assistant"&&i[n].content===""){i[n].content=t,s=!0;break}if(!s){for(let n=i.length-1;n>=0;n--)if(i[n].role==="assistant"){i[n].content=t,s=!0;break}}s||i.push({role:"assistant",content:t,timestamp:Date.now()}),this._saveSession({...e,tabId:this.tabId,lastActive:Date.now()})}getSession(){return this._loadSession()}clearSession(){localStorage.removeItem(this.sessionKey),this._broadcast({type:"session_cleared",tabId:this.tabId}),this._emit("session_cleared")}clearChatKeepProspect(){const t=this._loadSession();t&&this._saveSession({...t,chatId:null,conversationId:null,messages:[],lastActive:Date.now()})}destroy(){this._stopHeartbeat(),this.channel&&(this.channel.close(),this.channel=null)}on(t,e){return this.listeners.has(t)||this.listeners.set(t,new Set),this.listeners.get(t).add(e),this}off(t,e){var i;return(i=this.listeners.get(t))==null||i.delete(e),this}_getOrCreateTabId(){let t=sessionStorage.getItem("vaniraai_tab_id");return t||(t=`tab_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,sessionStorage.setItem("vaniraai_tab_id",t)),t}_setupChannel(){typeof BroadcastChannel>"u"||(this.channel=new BroadcastChannel(this.channelName),this.channel.onmessage=t=>{const e=t.data;e.tabId!==this.tabId&&(e.type==="took_over"&&(this._stopHeartbeat(),this._emit("tab_took_over")),e.type,e.type==="session_cleared"&&this._emit("session_cleared"))})}_broadcast(t){var e;(e=this.channel)==null||e.postMessage(t)}_startHeartbeat(){this._stopHeartbeat(),this.heartbeatTimer=setInterval(()=>{const t=this._loadSession();t&&t.tabId===this.tabId&&(this._saveSession({...t,lastActive:Date.now()}),this._broadcast({type:"heartbeat",tabId:this.tabId}))},L.HEARTBEAT_INTERVAL_MS)}_stopHeartbeat(){this.heartbeatTimer!==null&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}_loadSession(){try{const t=localStorage.getItem(this.sessionKey);return t?JSON.parse(t):null}catch{return null}}_saveSession(t){try{localStorage.setItem(this.sessionKey,JSON.stringify(t))}catch(e){console.warn("[VaniraAI] SessionManager: failed to save session",e)}}_blankSession(){return{tabId:this.tabId,prospectId:"",chatId:null,conversationId:null,messages:[],lastActive:Date.now()}}_emit(t){var e;(e=this.listeners.get(t))==null||e.forEach(i=>i())}};a(L,"HEARTBEAT_INTERVAL_MS",5e3),a(L,"HEARTBEAT_TIMEOUT_MS",15e3);let R=L;const V="data:image/png;base64,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",W="data:image/png;base64,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",F=u=>{u=u.replace(/^#/,"");let t,e,i;return u.length===3?(t=parseInt(u.charAt(0)+u.charAt(0),16),e=parseInt(u.charAt(1)+u.charAt(1),16),i=parseInt(u.charAt(2)+u.charAt(2),16)):(t=parseInt(u.substring(0,2),16),e=parseInt(u.substring(2,4),16),i=parseInt(u.substring(4,6),16)),isNaN(t)||isNaN(e)||isNaN(i)?"0, 0, 0":`${t}, ${e}, ${i}`},le=(u,t)=>{const e=F(u),i=F(t||u);return`
9
9
  --primary: ${u};
10
10
  --primary-rgb: ${e};
11
11
  --primary-hover: ${t||u};
@@ -804,7 +804,7 @@ var be=Object.defineProperty;var xe=(M,S,D)=>S in M?be(M,S,{enumerable:!0,config
804
804
  opacity: 1;
805
805
  color: var(--primary-hover);
806
806
  }
807
- `,C={phone:`
807
+ `,I={phone:`
808
808
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
809
809
  <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/>
810
810
  </svg>
@@ -859,7 +859,7 @@ var be=Object.defineProperty;var xe=(M,S,D)=>S in M?be(M,S,{enumerable:!0,config
859
859
  <div style="width: 3px; height: 22px; background: white; border-radius: 10px; animation: voice-bars-orb 1.2s infinite ease-in-out; animation-delay: 0.1s;"></div>
860
860
  <div style="width: 3px; height: 12px; background: white; border-radius: 10px; animation: voice-bars-orb 1.2s infinite ease-in-out; animation-delay: 0.3s;"></div>
861
861
  </div>
862
- `},F={automotive:`
862
+ `},X={automotive:`
863
863
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
864
864
  <path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"/>
865
865
  <circle cx="7" cy="17" r="2"/>
@@ -973,7 +973,7 @@ var be=Object.defineProperty;var xe=(M,S,D)=>S in M?be(M,S,{enumerable:!0,config
973
973
  <rect width="18" height="12" x="3" y="4" rx="2" ry="2"/>
974
974
  <line x1="2" x2="22" y1="20" y2="20"/>
975
975
  </svg>
976
- `},H={...F,default_chat:C.chat,default_voice:C.mic,voice_orb:C.voice_orb,male:`<img src="${O}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`,female:`<img src="${W}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`};Object.entries(F).forEach(([u,t])=>{H[`male_${u} `]=`
976
+ `},G={...X,default_chat:I.chat,default_voice:I.mic,voice_orb:I.voice_orb,male:`<img src="${V}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`,female:`<img src="${W}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`};Object.entries(X).forEach(([u,t])=>{G[`male_${u} `]=`
977
977
  < div style = "position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: white; border-radius: 50%;" >
978
978
  <div style="width: 60%; height: 60%; color: #000000;" >
979
979
  ${t}
@@ -990,10 +990,10 @@ border: 2px solid white;
990
990
  box - shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
991
991
  overflow: hidden;
992
992
  ">
993
- < img src = "${O}" style = "width: 100%; height: 100%; object-fit: cover;" />
993
+ < img src = "${V}" style = "width: 100%; height: 100%; object-fit: cover;" />
994
994
  </div>
995
995
  </div>
996
- `,H[`female_${u} `]=`
996
+ `,G[`female_${u} `]=`
997
997
  < div style = "position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: white; border-radius: 50%;" >
998
998
  <div style="width: 60%; height: 60%; color: #000000;" >
999
999
  ${t}
@@ -1013,7 +1013,7 @@ overflow: hidden;
1013
1013
  < img src = "${W}" style = "width: 100%; height: 100%; object-fit: cover;" />
1014
1014
  </div>
1015
1015
  </div>
1016
- `});class K{constructor(t,e,i,s=C.chat){a(this,"element");a(this,"iconContainer");a(this,"posX",0);a(this,"posY",0);a(this,"isDragging",!1);a(this,"startX",0);a(this,"startY",0);a(this,"currentX",0);a(this,"currentY",0);a(this,"hasMoved",!1);this.onClick=t,this.onMove=e,this.onMoveEnd=i,this.element=document.createElement("button"),this.element.className="widget-fab",this.element.onpointerdown=this.dragStart.bind(this),this.iconContainer=document.createElement("div"),this.iconContainer.style.cssText="display:flex; align-items:center; justify-content:center; width:100%; height:100%;",this.iconContainer.innerHTML=s,this.element.appendChild(this.iconContainer)}dragStart(t){if(t.button!==0)return;const e=this.element.getBoundingClientRect();this.isDragging=!0,this.hasMoved=!1,this.startX=t.clientX,this.startY=t.clientY,this.currentX=e.left,this.currentY=e.top,this.element.setPointerCapture(t.pointerId),this.element.style.transition="none",this.element.style.cursor="grabbing";const i=n=>{var c;if(!this.isDragging)return;const o=n.clientX-this.startX,h=n.clientY-this.startY;(Math.abs(o)>5||Math.abs(h)>5)&&(this.hasMoved=!0),this.hasMoved&&(this.posX=this.currentX+o,this.posY=this.currentY+h,this.posX=Math.max(0,Math.min(this.posX,window.innerWidth-this.element.offsetWidth)),this.posY=Math.max(0,Math.min(this.posY,window.innerHeight-this.element.offsetHeight)),this.element.style.left=`${this.posX}px`,this.element.style.top=`${this.posY}px`,this.element.style.right="auto",this.element.style.bottom="auto",(c=this.onMove)==null||c.call(this,this.posX,this.posY))},s=n=>{var o;this.isDragging=!1,this.element.hasPointerCapture(n.pointerId)&&this.element.releasePointerCapture(n.pointerId),this.element.style.transition="all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",this.element.style.cursor="pointer",window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",s),this.hasMoved?(o=this.onMoveEnd)==null||o.call(this,this.posX,this.posY):this.onClick()};window.addEventListener("pointermove",i),window.addEventListener("pointerup",s)}getElement(){return this.element}setIcon(t){this.iconContainer.innerHTML=t}setPosition(t){this.element.style.cssText="",t.split(";").filter(i=>i.trim()).forEach(i=>{const[s,n]=i.split(":").map(o=>o.trim());s&&n&&(this.element.style[s]=n)}),this.element.style.position="fixed",this.element.style.zIndex="2147483647"}updateCoordinates(t,e){this.element.style.left=`${t}px`,this.element.style.top=`${e}px`,this.element.style.right="auto",this.element.style.bottom="auto"}static get styles(){return`
1016
+ `});class K{constructor(t,e,i,s=I.chat){a(this,"element");a(this,"iconContainer");a(this,"posX",0);a(this,"posY",0);a(this,"isDragging",!1);a(this,"startX",0);a(this,"startY",0);a(this,"currentX",0);a(this,"currentY",0);a(this,"hasMoved",!1);this.onClick=t,this.onMove=e,this.onMoveEnd=i,this.element=document.createElement("button"),this.element.className="widget-fab",this.element.onpointerdown=this.dragStart.bind(this),this.iconContainer=document.createElement("div"),this.iconContainer.style.cssText="display:flex; align-items:center; justify-content:center; width:100%; height:100%;",this.iconContainer.innerHTML=s,this.element.appendChild(this.iconContainer)}dragStart(t){if(t.button!==0)return;const e=this.element.getBoundingClientRect();this.isDragging=!0,this.hasMoved=!1,this.startX=t.clientX,this.startY=t.clientY,this.currentX=e.left,this.currentY=e.top,this.element.setPointerCapture(t.pointerId),this.element.style.transition="none",this.element.style.cursor="grabbing";const i=n=>{var l;if(!this.isDragging)return;const o=n.clientX-this.startX,d=n.clientY-this.startY;(Math.abs(o)>5||Math.abs(d)>5)&&(this.hasMoved=!0),this.hasMoved&&(this.posX=this.currentX+o,this.posY=this.currentY+d,this.posX=Math.max(0,Math.min(this.posX,window.innerWidth-this.element.offsetWidth)),this.posY=Math.max(0,Math.min(this.posY,window.innerHeight-this.element.offsetHeight)),this.element.style.left=`${this.posX}px`,this.element.style.top=`${this.posY}px`,this.element.style.right="auto",this.element.style.bottom="auto",(l=this.onMove)==null||l.call(this,this.posX,this.posY))},s=n=>{var o;this.isDragging=!1,this.element.hasPointerCapture(n.pointerId)&&this.element.releasePointerCapture(n.pointerId),this.element.style.transition="all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",this.element.style.cursor="pointer",window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",s),this.hasMoved?(o=this.onMoveEnd)==null||o.call(this,this.posX,this.posY):this.onClick()};window.addEventListener("pointermove",i),window.addEventListener("pointerup",s)}getElement(){return this.element}setIcon(t){this.iconContainer.innerHTML=t}setPosition(t){this.element.style.cssText="",t.split(";").filter(i=>i.trim()).forEach(i=>{const[s,n]=i.split(":").map(o=>o.trim());s&&n&&(this.element.style[s]=n)}),this.element.style.position="fixed",this.element.style.zIndex="2147483647"}updateCoordinates(t,e){this.element.style.left=`${t}px`,this.element.style.top=`${e}px`,this.element.style.right="auto",this.element.style.bottom="auto"}static get styles(){return`
1017
1017
  .widget-fab {
1018
1018
  position: fixed;
1019
1019
  z-index: 9999;
@@ -1048,7 +1048,7 @@ overflow: hidden;
1048
1048
  height: 26px;
1049
1049
  color: white;
1050
1050
  }
1051
- `}}class q{constructor(t,e="Assistant"){a(this,"element");a(this,"header");a(this,"titleElement");a(this,"contentArea");a(this,"maximizeBtn");a(this,"closeBtn");a(this,"isMaximized",!1);this.onClose=t,this.title=e,this.element=document.createElement("div"),this.element.className="widget-panel hidden",this.header=document.createElement("div"),this.header.className="widget-header",this.titleElement=document.createElement("h3"),this.titleElement.className="widget-title",this.titleElement.textContent=this.title,this.header.appendChild(this.titleElement);const i=document.createElement("div");i.style.display="flex",i.style.alignItems="center",i.style.gap="8px",i.style.marginLeft="auto",this.maximizeBtn=document.createElement("button"),this.maximizeBtn.className="close-btn maximize-btn",this.maximizeBtn.innerHTML=C.maximize2,this.maximizeBtn.onclick=()=>this.toggleMaximize(),this.closeBtn=document.createElement("button"),this.closeBtn.className="close-btn",this.closeBtn.innerHTML=C.close,this.closeBtn.onclick=this.onClose,i.appendChild(this.maximizeBtn),i.appendChild(this.closeBtn),this.header.appendChild(i),this.contentArea=document.createElement("div"),this.contentArea.className="widget-body",this.contentArea.style.flex="1",this.contentArea.style.display="flex",this.contentArea.style.flexDirection="column",this.contentArea.style.overflow="hidden",this.contentArea.style.padding="0",this.element.appendChild(this.header),this.element.appendChild(this.contentArea)}getElement(){return this.element}setContent(t){this.contentArea.innerHTML="",this.contentArea.appendChild(t)}addToContent(t){this.contentArea.appendChild(t)}setTitle(t){this.titleElement.textContent=t}open(t){this.element.classList.remove("hidden"),this.updatePosition(t)}updatePosition(t){this.element.style.top="auto",this.element.style.bottom="auto",this.element.style.left="auto",this.element.style.right="auto",Object.assign(this.element.style,t),this.element.style.position="fixed",this.element.style.zIndex="2147483647"}close(){this.element.classList.add("hidden")}toggleMaximize(){this.isMaximized=!this.isMaximized,this.isMaximized?(this.element.classList.add("maximized"),this.maximizeBtn.innerHTML=C.minimize2):(this.element.classList.remove("maximized"),this.maximizeBtn.innerHTML=C.maximize2)}static get styles(){return`
1051
+ `}}class q{constructor(t,e="Assistant"){a(this,"element");a(this,"header");a(this,"titleElement");a(this,"contentArea");a(this,"maximizeBtn");a(this,"closeBtn");a(this,"isMaximized",!1);this.onClose=t,this.title=e,this.element=document.createElement("div"),this.element.className="widget-panel hidden",this.header=document.createElement("div"),this.header.className="widget-header",this.titleElement=document.createElement("h3"),this.titleElement.className="widget-title",this.titleElement.textContent=this.title,this.header.appendChild(this.titleElement);const i=document.createElement("div");i.style.display="flex",i.style.alignItems="center",i.style.gap="8px",i.style.marginLeft="auto",this.maximizeBtn=document.createElement("button"),this.maximizeBtn.className="close-btn maximize-btn",this.maximizeBtn.innerHTML=I.maximize2,this.maximizeBtn.onclick=()=>this.toggleMaximize(),this.closeBtn=document.createElement("button"),this.closeBtn.className="close-btn",this.closeBtn.innerHTML=I.close,this.closeBtn.onclick=this.onClose,i.appendChild(this.maximizeBtn),i.appendChild(this.closeBtn),this.header.appendChild(i),this.contentArea=document.createElement("div"),this.contentArea.className="widget-body",this.contentArea.style.flex="1",this.contentArea.style.display="flex",this.contentArea.style.flexDirection="column",this.contentArea.style.overflow="hidden",this.contentArea.style.padding="0",this.element.appendChild(this.header),this.element.appendChild(this.contentArea)}getElement(){return this.element}setContent(t){this.contentArea.innerHTML="",this.contentArea.appendChild(t)}addToContent(t){this.contentArea.appendChild(t)}setTitle(t){this.titleElement.textContent=t}open(t){this.element.classList.remove("hidden"),this.updatePosition(t)}updatePosition(t){this.element.style.top="auto",this.element.style.bottom="auto",this.element.style.left="auto",this.element.style.right="auto",Object.assign(this.element.style,t),this.element.style.position="fixed",this.element.style.zIndex="2147483647"}close(){this.element.classList.add("hidden")}toggleMaximize(){this.isMaximized=!this.isMaximized,this.isMaximized?(this.element.classList.add("maximized"),this.maximizeBtn.innerHTML=I.minimize2):(this.element.classList.remove("maximized"),this.maximizeBtn.innerHTML=I.maximize2)}static get styles(){return`
1052
1052
  /* Panel Styles handled in widget.css.ts mostly, specific overrides here */
1053
1053
  `}}class Z{constructor(t,e="#000000",i="#111111",s){a(this,"element");a(this,"contentContainer");a(this,"orbWrapper");a(this,"connectingRing");a(this,"errorRing");a(this,"waveLayers",[]);a(this,"outerGlow");a(this,"wave1");a(this,"wave2");a(this,"wave3");a(this,"centerIcon");a(this,"statusArea");a(this,"connectingLabel");a(this,"connectedBadge");a(this,"errorLabel");a(this,"giveItAMinuteLabel");a(this,"retryBtn");a(this,"timerEl");a(this,"transcriptionEl");a(this,"hangupBtn");a(this,"videoContainer");a(this,"videoElement");a(this,"prepareBadge");a(this,"statusBadge");a(this,"startTime",null);a(this,"timerInterval",null);a(this,"isAvatarMode",!1);a(this,"callStartedAt",null);this.onHangup=t,this.primaryColor=e,this.secondaryColor=i,this.onCallEnded=s,this.element=document.createElement("div"),this.element.id="voice-active-overlay",this.element.style.cssText=`
1054
1054
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
@@ -1116,26 +1116,26 @@ overflow: hidden;
1116
1116
  background: #374151;
1117
1117
  box-shadow: 0 10px 25px -5px rgba(0,0,0,0.15), 0 8px 10px -6px rgba(0,0,0,0.1);
1118
1118
  color: white;
1119
- `,this.centerIcon.innerHTML=C.phone;const o=this.centerIcon.querySelector("svg");o&&(o.style.width="20px",o.style.height="20px"),this.orbWrapper.appendChild(this.centerIcon),this.contentContainer.appendChild(this.orbWrapper),this.statusArea=document.createElement("div"),this.statusArea.className="voice-status-area",this.statusArea.style.cssText="display:flex; flex-direction:column; align-items:center; gap:8px; margin-top:8px;",this.connectingLabel=document.createElement("p"),this.connectingLabel.textContent="Connecting to Vanira...",this.connectingLabel.style.cssText="font-size:11px; font-weight:700; color:#374151; text-transform:uppercase; letter-spacing:0.1em; margin:0; display:none;",this.statusArea.appendChild(this.connectingLabel),this.giveItAMinuteLabel=document.createElement("p"),this.giveItAMinuteLabel.textContent="Give it a minute",this.giveItAMinuteLabel.style.cssText="font-size:9px; font-weight:500; color:#94a3b8; text-transform:uppercase; letter-spacing:0.15em; margin:0; display:none; animation:pulse 1.5s infinite;",this.statusArea.appendChild(this.giveItAMinuteLabel),this.connectedBadge=document.createElement("div"),this.connectedBadge.style.cssText=`
1119
+ `,this.centerIcon.innerHTML=I.phone;const o=this.centerIcon.querySelector("svg");o&&(o.style.width="20px",o.style.height="20px"),this.orbWrapper.appendChild(this.centerIcon),this.contentContainer.appendChild(this.orbWrapper),this.statusArea=document.createElement("div"),this.statusArea.className="voice-status-area",this.statusArea.style.cssText="display:flex; flex-direction:column; align-items:center; gap:8px; margin-top:8px;",this.connectingLabel=document.createElement("p"),this.connectingLabel.textContent="Connecting to Vanira...",this.connectingLabel.style.cssText="font-size:11px; font-weight:700; color:#374151; text-transform:uppercase; letter-spacing:0.1em; margin:0; display:none;",this.statusArea.appendChild(this.connectingLabel),this.giveItAMinuteLabel=document.createElement("p"),this.giveItAMinuteLabel.textContent="Give it a minute",this.giveItAMinuteLabel.style.cssText="font-size:9px; font-weight:500; color:#94a3b8; text-transform:uppercase; letter-spacing:0.15em; margin:0; display:none; animation:pulse 1.5s infinite;",this.statusArea.appendChild(this.giveItAMinuteLabel),this.connectedBadge=document.createElement("div"),this.connectedBadge.style.cssText=`
1120
1120
  display: none; align-items: center; gap: 8px;
1121
1121
  padding: 5px 16px; background: #f0fdf4;
1122
1122
  border-radius: 9999px; border: 1px solid #dcfce7;
1123
- `;const h=document.createElement("div");h.style.cssText="width:8px; height:8px; border-radius:50%; background:#22c55e; animation:pulse 2s infinite; box-shadow:0 0 8px rgba(34,197,94,0.6);";const c=document.createElement("span");c.textContent="Connected",c.style.cssText="font-size:11px; font-weight:600; color:#15803d; text-transform:uppercase; letter-spacing:0.1em;",this.connectedBadge.appendChild(h),this.connectedBadge.appendChild(c),this.statusArea.appendChild(this.connectedBadge),this.timerEl=document.createElement("div"),this.timerEl.textContent="00:00",this.timerEl.style.cssText="font-size:13px; color:#6b7280; font-variant-numeric:tabular-nums; display:none;",this.statusArea.appendChild(this.timerEl),this.errorLabel=document.createElement("p"),this.errorLabel.textContent="Connection failed",this.errorLabel.style.cssText="font-size:12px; color:#ef4444; font-weight:500; margin:0; display:none;",this.statusArea.appendChild(this.errorLabel),this.retryBtn=document.createElement("button"),this.retryBtn.textContent="↻ Retry Connection",this.retryBtn.style.cssText=`
1123
+ `;const d=document.createElement("div");d.style.cssText="width:8px; height:8px; border-radius:50%; background:#22c55e; animation:pulse 2s infinite; box-shadow:0 0 8px rgba(34,197,94,0.6);";const l=document.createElement("span");l.textContent="Connected",l.style.cssText="font-size:11px; font-weight:600; color:#15803d; text-transform:uppercase; letter-spacing:0.1em;",this.connectedBadge.appendChild(d),this.connectedBadge.appendChild(l),this.statusArea.appendChild(this.connectedBadge),this.timerEl=document.createElement("div"),this.timerEl.textContent="00:00",this.timerEl.style.cssText="font-size:13px; color:#6b7280; font-variant-numeric:tabular-nums; display:none;",this.statusArea.appendChild(this.timerEl),this.errorLabel=document.createElement("p"),this.errorLabel.textContent="Connection failed",this.errorLabel.style.cssText="font-size:12px; color:#ef4444; font-weight:500; margin:0; display:none;",this.statusArea.appendChild(this.errorLabel),this.retryBtn=document.createElement("button"),this.retryBtn.textContent="↻ Retry Connection",this.retryBtn.style.cssText=`
1124
1124
  display:none; padding:6px 14px; background:#f3f4f6; border:none;
1125
1125
  border-radius:9999px; font-size:12px; font-weight:500; color:#374151;
1126
1126
  cursor:pointer; transition:background 0.2s; pointer-events:auto;
1127
- `,this.retryBtn.onmouseover=()=>this.retryBtn.style.background="#e5e7eb",this.retryBtn.onmouseout=()=>this.retryBtn.style.background="#f3f4f6",this.statusArea.appendChild(this.retryBtn),this.prepareBadge=document.createElement("p"),this.prepareBadge.style.cssText="display:none; font-size:11px; font-weight:600; color:#a855f7; text-transform:uppercase; letter-spacing:0.1em; margin:0; animation:pulse 1.5s infinite;",this.statusArea.appendChild(this.prepareBadge),this.statusBadge=document.createElement("div"),this.statusBadge.style.cssText="display:none; align-items:center; gap:8px; padding:5px 16px; background:#f0fdf4; border-radius:9999px; border:1px solid #dcfce7;";const l=document.createElement("div");l.style.cssText="width:8px; height:8px; border-radius:50%; background:#22c55e; animation:pulse 2s infinite;";const d=document.createElement("span");d.textContent="Connected",d.style.cssText="font-size:11px; font-weight:600; color:#15803d; text-transform:uppercase; letter-spacing:0.1em;",this.statusBadge.appendChild(l),this.statusBadge.appendChild(d),this.statusArea.appendChild(this.statusBadge),this.contentContainer.appendChild(this.statusArea),this.transcriptionEl=document.createElement("div"),this.transcriptionEl.className="voice-transcription",this.transcriptionEl.style.cssText=`
1127
+ `,this.retryBtn.onmouseover=()=>this.retryBtn.style.background="#e5e7eb",this.retryBtn.onmouseout=()=>this.retryBtn.style.background="#f3f4f6",this.statusArea.appendChild(this.retryBtn),this.prepareBadge=document.createElement("p"),this.prepareBadge.style.cssText="display:none; font-size:11px; font-weight:600; color:#a855f7; text-transform:uppercase; letter-spacing:0.1em; margin:0; animation:pulse 1.5s infinite;",this.statusArea.appendChild(this.prepareBadge),this.statusBadge=document.createElement("div"),this.statusBadge.style.cssText="display:none; align-items:center; gap:8px; padding:5px 16px; background:#f0fdf4; border-radius:9999px; border:1px solid #dcfce7;";const r=document.createElement("div");r.style.cssText="width:8px; height:8px; border-radius:50%; background:#22c55e; animation:pulse 2s infinite;";const h=document.createElement("span");h.textContent="Connected",h.style.cssText="font-size:11px; font-weight:600; color:#15803d; text-transform:uppercase; letter-spacing:0.1em;",this.statusBadge.appendChild(r),this.statusBadge.appendChild(h),this.statusArea.appendChild(this.statusBadge),this.contentContainer.appendChild(this.statusArea),this.transcriptionEl=document.createElement("div"),this.transcriptionEl.className="voice-transcription",this.transcriptionEl.style.cssText=`
1128
1128
  margin-top: 14px; padding: 0 20px; text-align: center;
1129
1129
  min-height: 36px; max-height: 72px; overflow-y: auto;
1130
1130
  font-size: 13px; color: #9ca3af; font-style: italic;
1131
- `,this.contentContainer.appendChild(this.transcriptionEl),this.element.appendChild(this.contentContainer);const r=document.createElement("div");r.className="voice-footer",r.style.cssText="width:100%; display:flex; justify-content:center; padding:0 20px 20px; pointer-events:auto;",this.hangupBtn=document.createElement("button"),this.hangupBtn.className="voice-hangup-btn",this.hangupBtn.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="transform:rotate(135deg);flex-shrink:0;"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 12a19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 3.6 1.18h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L7.91 8.77a16 16 0 0 0 6.29 6.29l.87-.87a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z"/></svg> End Call',this.hangupBtn.style.cssText=`
1131
+ `,this.contentContainer.appendChild(this.transcriptionEl),this.element.appendChild(this.contentContainer);const c=document.createElement("div");c.className="voice-footer",c.style.cssText="width:100%; display:flex; justify-content:center; padding:0 20px 20px; pointer-events:auto;",this.hangupBtn=document.createElement("button"),this.hangupBtn.className="voice-hangup-btn",this.hangupBtn.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="transform:rotate(135deg);flex-shrink:0;"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 12a19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 3.6 1.18h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L7.91 8.77a16 16 0 0 0 6.29 6.29l.87-.87a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z"/></svg> End Call',this.hangupBtn.style.cssText=`
1132
1132
  display: flex; align-items: center; gap: 8px;
1133
1133
  padding: 10px 28px; background: #ef4444; color: white;
1134
1134
  border: none; border-radius: 9999px; font-size: 14px; font-weight: 500;
1135
1135
  cursor: pointer; pointer-events: auto;
1136
1136
  transition: background-color 0.2s;
1137
1137
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
1138
- `,this.hangupBtn.onmouseover=()=>this.hangupBtn.style.backgroundColor="#dc2626",this.hangupBtn.onmouseout=()=>this.hangupBtn.style.backgroundColor="#ef4444",this.hangupBtn.onclick=()=>{const A=this.callStartedAt?Date.now()-this.callStartedAt:0,g=this.callStartedAt??Date.now();this.onCallEnded&&A>0&&this.onCallEnded(A,g),this.onHangup()},r.appendChild(this.hangupBtn),this.element.appendChild(r)}getElement(){return this.element}setMode(t){this.isAvatarMode=t==="avatar"}setVideoTrack(t){if(this.isAvatarMode=!0,t.kind==="video"&&this.videoElement){const e=new MediaStream([t]);this.videoElement.srcObject=e,this.videoContainer.style.display="block",this.orbWrapper.style.display="none",this.connectingLabel.style.display="none",this.timerEl.style.display="none",this.videoElement.onplaying=()=>{this.prepareBadge.style.display="none",this.statusBadge.style.display="flex"},this.videoElement.play().catch(i=>console.warn("Video play error",i))}}setStatus(t,e){if(t==="connecting")this.centerIcon.style.background="#4b5563",this.centerIcon.innerHTML='<div style="width:18px;height:18px;border:2px solid #ffffff;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite;"></div>',this.isAvatarMode?(this.videoContainer.style.display="block",this.orbWrapper.style.display="none",this.prepareBadge.textContent="CONNECTING...",this.prepareBadge.style.display="block",this.statusBadge.style.display="none",this.connectingLabel.style.display="none"):(this.orbWrapper.style.display="flex",this.videoContainer.style.display="none",this.connectingRing.style.display="block",this.errorRing.style.display="none",this.waveLayers.forEach(i=>i.style.display="none"),this.connectingLabel.style.display="block",this.giveItAMinuteLabel.style.display="block",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.style.display="none",this.retryBtn.style.display="none"),this.stopTimer();else if(t==="connected"){this.centerIcon.style.background="#1f2937",this.centerIcon.innerHTML=C.phone;const i=this.centerIcon.querySelector("svg");i&&(i.style.cssText="width:20px;height:20px;"),this.isAvatarMode?this.videoElement&&!this.videoElement.paused&&this.videoElement.readyState>2?(this.prepareBadge.style.display="none",this.statusBadge.style.display="flex"):(this.prepareBadge.textContent="AGENT IS ON THE WAY...",this.prepareBadge.style.display="block",setTimeout(()=>{this.prepareBadge.style.display!=="none"&&(this.prepareBadge.style.display="none",this.statusBadge.style.display="flex")},5e3)):(this.connectingRing.style.display="none",this.errorRing.style.display="none",this.waveLayers.forEach(s=>s.style.display="flex"),this.connectingLabel.style.display="none",this.giveItAMinuteLabel.style.display="none",this.connectedBadge.style.display="flex",this.timerEl.style.display="block",this.errorLabel.style.display="none",this.retryBtn.style.display="none",this.startTimer())}else t==="error"&&(this.centerIcon.style.background="#dc2626",this.centerIcon.innerHTML=C.phone,this.connectingRing.style.display="none",this.errorRing.style.display="block",this.waveLayers.forEach(i=>i.style.display="none"),this.connectingLabel.style.display="none",this.giveItAMinuteLabel.style.display="none",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.textContent=e||"Connection failed",this.errorLabel.style.display="block",this.retryBtn.style.display="block",this.stopTimer())}setTranscription(t,e){this.transcriptionEl.textContent=`"${t}"`,this.transcriptionEl.style.color=e?"#1f2937":"#9ca3af",this.transcriptionEl.style.fontStyle=e?"normal":"italic"}show(){this.callStartedAt=Date.now(),this.element.style.display="flex",this.setStatus("connecting")}hide(){this.element.style.display="none",this.reset()}reset(){this.videoElement&&(this.videoElement.srcObject=null),this.isAvatarMode=!1,this.callStartedAt=null,this.stopTimer(),this.transcriptionEl.textContent="",this.videoContainer.style.display="none",this.orbWrapper.style.display="flex",this.connectingRing.style.display="none",this.errorRing.style.display="none",this.waveLayers.forEach(e=>e.style.display="none"),this.connectingLabel.style.display="none",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.style.display="none",this.retryBtn.style.display="none",this.prepareBadge.style.display="none",this.statusBadge.style.display="none",this.giveItAMinuteLabel.style.display="none",this.centerIcon.style.background="#374151",this.centerIcon.innerHTML=C.phone;const t=this.centerIcon.querySelector("svg");t&&(t.style.cssText="width:20px;height:20px;")}startTimer(){this.timerInterval&&clearInterval(this.timerInterval),this.startTime=Date.now(),this.timerEl.textContent="00:00",this.timerInterval=setInterval(()=>{if(!this.startTime)return;const t=Math.floor((Date.now()-this.startTime)/1e3),e=Math.floor(t/60).toString().padStart(2,"0"),i=(t%60).toString().padStart(2,"0");this.timerEl.textContent=`${e}:${i}`},1e3)}stopTimer(){this.timerInterval&&(clearInterval(this.timerInterval),this.timerInterval=null),this.timerEl.textContent=""}setFullScreen(t){t?(this.videoContainer.style.position="absolute",this.videoContainer.style.top="0",this.videoContainer.style.left="0",this.videoContainer.style.width="100%",this.videoContainer.style.height="100%",this.videoContainer.style.maxWidth="none",this.videoContainer.style.borderRadius="0",this.videoContainer.style.margin="0",this.videoContainer.style.zIndex="0"):(this.videoContainer.style.position="relative",this.videoContainer.style.width="100%",this.videoContainer.style.maxWidth="260px",this.videoContainer.style.height="auto",this.videoContainer.style.aspectRatio="1/1",this.videoContainer.style.borderRadius="16px",this.videoContainer.style.marginBottom="16px")}}class _{constructor(t){a(this,"element");a(this,"messageContainer");a(this,"inputArea");a(this,"input");a(this,"sendBtn");a(this,"typingIndicator",null);a(this,"resolveBar",null);this.onSend=t,this.element=document.createElement("div"),this.element.style.display="flex",this.element.style.flexDirection="column",this.element.style.flex="1",this.element.style.overflow="hidden",this.element.style.minHeight="0",this.messageContainer=document.createElement("div"),this.messageContainer.className="chat-messages",this.inputArea=document.createElement("div"),this.inputArea.className="chat-input-area",this.input=document.createElement("input"),this.input.className="chat-input",this.input.placeholder="Type a message...",this.input.addEventListener("keypress",i=>{i.key==="Enter"&&this.handleSend()}),this.sendBtn=document.createElement("button"),this.sendBtn.className="chat-send-btn",this.sendBtn.innerHTML=C.send,this.sendBtn.onclick=()=>this.handleSend(),this.inputArea.appendChild(this.input),this.inputArea.appendChild(this.sendBtn);const e=document.createElement("div");e.className="branding-footer",e.innerHTML="Technology Powered by <b>Vanira AI</b>",this.element.appendChild(this.messageContainer),this.element.appendChild(this.inputArea),this.element.appendChild(e)}getElement(){return this.element}formatTime(t=new Date){return t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}addMessage(t,e,i){const s=document.createElement("div");s.style.cssText=`
1138
+ `,this.hangupBtn.onmouseover=()=>this.hangupBtn.style.backgroundColor="#dc2626",this.hangupBtn.onmouseout=()=>this.hangupBtn.style.backgroundColor="#ef4444",this.hangupBtn.onclick=()=>{const A=this.callStartedAt?Date.now()-this.callStartedAt:0,g=this.callStartedAt??Date.now();this.onCallEnded&&A>0&&this.onCallEnded(A,g),this.onHangup()},c.appendChild(this.hangupBtn),this.element.appendChild(c)}getElement(){return this.element}setMode(t){this.isAvatarMode=t==="avatar"}setVideoTrack(t){if(this.isAvatarMode=!0,t.kind==="video"&&this.videoElement){const e=new MediaStream([t]);this.videoElement.srcObject=e,this.videoContainer.style.display="block",this.orbWrapper.style.display="none",this.connectingLabel.style.display="none",this.timerEl.style.display="none",this.videoElement.onplaying=()=>{this.prepareBadge.style.display="none",this.statusBadge.style.display="flex"},this.videoElement.play().catch(i=>console.warn("Video play error",i))}}setStatus(t,e){if(t==="connecting")this.centerIcon.style.background="#4b5563",this.centerIcon.innerHTML='<div style="width:18px;height:18px;border:2px solid #ffffff;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite;"></div>',this.isAvatarMode?(this.videoContainer.style.display="block",this.orbWrapper.style.display="none",this.prepareBadge.textContent="CONNECTING...",this.prepareBadge.style.display="block",this.statusBadge.style.display="none",this.connectingLabel.style.display="none"):(this.orbWrapper.style.display="flex",this.videoContainer.style.display="none",this.connectingRing.style.display="block",this.errorRing.style.display="none",this.waveLayers.forEach(i=>i.style.display="none"),this.connectingLabel.style.display="block",this.giveItAMinuteLabel.style.display="block",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.style.display="none",this.retryBtn.style.display="none"),this.stopTimer();else if(t==="connected"){this.centerIcon.style.background="#1f2937",this.centerIcon.innerHTML=I.phone;const i=this.centerIcon.querySelector("svg");i&&(i.style.cssText="width:20px;height:20px;"),this.isAvatarMode?this.videoElement&&!this.videoElement.paused&&this.videoElement.readyState>2?(this.prepareBadge.style.display="none",this.statusBadge.style.display="flex"):(this.prepareBadge.textContent="AGENT IS ON THE WAY...",this.prepareBadge.style.display="block",setTimeout(()=>{this.prepareBadge.style.display!=="none"&&(this.prepareBadge.style.display="none",this.statusBadge.style.display="flex")},5e3)):(this.connectingRing.style.display="none",this.errorRing.style.display="none",this.waveLayers.forEach(s=>s.style.display="flex"),this.connectingLabel.style.display="none",this.giveItAMinuteLabel.style.display="none",this.connectedBadge.style.display="flex",this.timerEl.style.display="block",this.errorLabel.style.display="none",this.retryBtn.style.display="none",this.startTimer())}else t==="error"&&(this.centerIcon.style.background="#dc2626",this.centerIcon.innerHTML=I.phone,this.connectingRing.style.display="none",this.errorRing.style.display="block",this.waveLayers.forEach(i=>i.style.display="none"),this.connectingLabel.style.display="none",this.giveItAMinuteLabel.style.display="none",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.textContent=e||"Connection failed",this.errorLabel.style.display="block",this.retryBtn.style.display="block",this.stopTimer())}setTranscription(t,e){this.transcriptionEl.textContent=`"${t}"`,this.transcriptionEl.style.color=e?"#1f2937":"#9ca3af",this.transcriptionEl.style.fontStyle=e?"normal":"italic"}show(){this.callStartedAt=Date.now(),this.element.style.display="flex",this.setStatus("connecting")}hide(){this.element.style.display="none",this.reset()}reset(){this.videoElement&&(this.videoElement.srcObject=null),this.isAvatarMode=!1,this.callStartedAt=null,this.stopTimer(),this.transcriptionEl.textContent="",this.videoContainer.style.display="none",this.orbWrapper.style.display="flex",this.connectingRing.style.display="none",this.errorRing.style.display="none",this.waveLayers.forEach(e=>e.style.display="none"),this.connectingLabel.style.display="none",this.connectedBadge.style.display="none",this.timerEl.style.display="none",this.errorLabel.style.display="none",this.retryBtn.style.display="none",this.prepareBadge.style.display="none",this.statusBadge.style.display="none",this.giveItAMinuteLabel.style.display="none",this.centerIcon.style.background="#374151",this.centerIcon.innerHTML=I.phone;const t=this.centerIcon.querySelector("svg");t&&(t.style.cssText="width:20px;height:20px;")}startTimer(){this.timerInterval&&clearInterval(this.timerInterval),this.startTime=Date.now(),this.timerEl.textContent="00:00",this.timerInterval=setInterval(()=>{if(!this.startTime)return;const t=Math.floor((Date.now()-this.startTime)/1e3),e=Math.floor(t/60).toString().padStart(2,"0"),i=(t%60).toString().padStart(2,"0");this.timerEl.textContent=`${e}:${i}`},1e3)}stopTimer(){this.timerInterval&&(clearInterval(this.timerInterval),this.timerInterval=null),this.timerEl.textContent=""}setFullScreen(t){t?(this.videoContainer.style.position="absolute",this.videoContainer.style.top="0",this.videoContainer.style.left="0",this.videoContainer.style.width="100%",this.videoContainer.style.height="100%",this.videoContainer.style.maxWidth="none",this.videoContainer.style.borderRadius="0",this.videoContainer.style.margin="0",this.videoContainer.style.zIndex="0"):(this.videoContainer.style.position="relative",this.videoContainer.style.width="100%",this.videoContainer.style.maxWidth="260px",this.videoContainer.style.height="auto",this.videoContainer.style.aspectRatio="1/1",this.videoContainer.style.borderRadius="16px",this.videoContainer.style.marginBottom="16px")}}class _{constructor(t){a(this,"element");a(this,"messageContainer");a(this,"inputArea");a(this,"input");a(this,"sendBtn");a(this,"typingIndicator",null);a(this,"resolveBar",null);this.onSend=t,this.element=document.createElement("div"),this.element.style.display="flex",this.element.style.flexDirection="column",this.element.style.flex="1",this.element.style.overflow="hidden",this.element.style.minHeight="0",this.messageContainer=document.createElement("div"),this.messageContainer.className="chat-messages",this.inputArea=document.createElement("div"),this.inputArea.className="chat-input-area",this.input=document.createElement("input"),this.input.className="chat-input",this.input.placeholder="Type a message...",this.input.addEventListener("keypress",i=>{i.key==="Enter"&&this.handleSend()}),this.sendBtn=document.createElement("button"),this.sendBtn.className="chat-send-btn",this.sendBtn.innerHTML=I.send,this.sendBtn.onclick=()=>this.handleSend(),this.inputArea.appendChild(this.input),this.inputArea.appendChild(this.sendBtn);const e=document.createElement("div");e.className="branding-footer",e.innerHTML="Technology Powered by <b>Vanira AI</b>",this.element.appendChild(this.messageContainer),this.element.appendChild(this.inputArea),this.element.appendChild(e)}getElement(){return this.element}formatTime(t=new Date){return t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}addMessage(t,e,i){const s=document.createElement("div");s.style.cssText=`
1139
1139
  display: flex;
1140
1140
  flex-direction: column;
1141
1141
  align-items: ${t==="user"?"flex-end":"flex-start"};
@@ -1170,7 +1170,7 @@ overflow: hidden;
1170
1170
  `,this.messageContainer.appendChild(o),this.scrollToBottom()}clearMessages(){this.messageContainer.innerHTML=""}setResolveCallback(t){this.resolveBar&&this.resolveBar.remove(),this.resolveBar=document.createElement("div"),this.resolveBar.className="chat-resolve-bar";const e=document.createElement("button");e.className="chat-resolve-link",e.textContent="Mark as resolved, start new",e.onclick=()=>{confirm("Are you sure you want to mark this conversation as resolved and start fresh?")&&t()},this.resolveBar.appendChild(e),this.element.insertBefore(this.resolveBar,this.inputArea)}scrollToBottom(){this.messageContainer.scrollTop=this.messageContainer.scrollHeight}}class de{constructor(t){a(this,"element");a(this,"videoElement");a(this,"placeholderContainer");this.element=document.createElement("div"),this.element.className="avatar-container",this.element.style.position="relative",this.element.style.width="100%",this.element.style.height="100%",this.element.style.background="#ffffff",this.element.style.borderRadius="16px",this.element.style.overflow="hidden",this.placeholderContainer=document.createElement("div"),this.placeholderContainer.style.width="100%",this.placeholderContainer.style.height="100%",this.placeholderContainer.style.display="flex",this.placeholderContainer.style.alignItems="center",this.placeholderContainer.style.justifyContent="center";const e=t||"https://www.simli.com/jenna.mp4",i=e.endsWith(".mp4")||e.endsWith(".webm");let s;if(i){const n=document.createElement("video");n.src=e,n.muted=!0,n.loop=!0,n.autoplay=!0,n.playsInline=!0,s=n}else{const n=document.createElement("img");n.src=e,s=n}s.style.width="140px",s.style.height="140px",s.style.borderRadius="50%",s.style.objectFit="cover",s.style.backgroundColor="#f3f4f6",this.placeholderContainer.appendChild(s),this.element.appendChild(this.placeholderContainer),this.videoElement=document.createElement("video"),this.videoElement.className="avatar-video",this.videoElement.autoplay=!0,this.videoElement.playsInline=!0,this.videoElement.muted=!0,this.videoElement.style.display="none",this.element.appendChild(this.videoElement)}getElement(){return this.element}setStream(t){this.videoElement.srcObject=t,this.videoElement.style.display="block",this.placeholderContainer.style.display="none"}}class he{constructor(t){a(this,"element");a(this,"selectedBehavior","continue");this.onClick=t,this.element=document.createElement("div"),this.element.className="voice-mode-container";const e=typeof window<"u"&&(window.sessionStorage.getItem("vanira_prospect_id")||window.localStorage.getItem("vanira_prospect_id"))&&(window.sessionStorage.getItem("vanira_latest_call_id")||window.localStorage.getItem("vanira_latest_call_id"));this.element.innerHTML=`
1171
1171
  <div class="central-orb-container">
1172
1172
  <div class="central-orb idle">
1173
- ${C.voice_orb}
1173
+ ${I.voice_orb}
1174
1174
  </div>
1175
1175
  <div class="central-orb-glow"></div>
1176
1176
  </div>
@@ -1189,7 +1189,7 @@ overflow: hidden;
1189
1189
  </div>
1190
1190
  </div>
1191
1191
  `:""}
1192
- `;const i=this.element.querySelector(".central-orb-container");i&&(i.onclick=this.onClick);const s=this.element.querySelectorAll(".session-option");s.forEach(n=>{n.addEventListener("click",o=>{o.stopPropagation(),s.forEach(h=>h.classList.remove("active")),n.classList.add("active"),this.selectedBehavior=n.getAttribute("data-behavior")})})}getSessionBehavior(){return this.selectedBehavior}getElement(){return this.element}}class ${constructor(t){a(this,"element");a(this,"chips",[]);this.onChipClick=t,this.element=document.createElement("div"),this.element.className="welcome-chips-container"}setChips(t){this.chips=t,this.render()}getElement(){return this.element}setPosition(t){this.element.style.cssText="",t.split(";").filter(i=>i.trim()).forEach(i=>{const[s,n]=i.split(":").map(o=>o.trim());s&&n&&(this.element.style[s]=n)}),this.element.style.bottom?this.element.style.bottom=parseInt(this.element.style.bottom)+76+"px":this.element.style.top&&(this.element.style.top=parseInt(this.element.style.top)+76+"px"),this.element.style.position="fixed",this.element.style.zIndex="2147483646",this.element.style.alignItems=this.element.style.left?"flex-start":"flex-end"}updateCoordinates(t,e,i=!0){this.element.style.left=`${t}px`,i?(this.element.style.top="auto",this.element.style.bottom=`${window.innerHeight-e+16}px`):(this.element.style.bottom="auto",this.element.style.top=`${e+76}px`),this.element.style.right="auto"}render(){this.element.innerHTML="",this.chips.forEach((t,e)=>{const i=document.createElement("button");i.className="welcome-chip-btn",i.textContent=t.title,i.onclick=s=>{s.stopPropagation(),this.onChipClick(t.title)},i.style.animationDelay=`${e*.1}s`,this.element.appendChild(i)})}static get styles(){return`
1192
+ `;const i=this.element.querySelector(".central-orb-container");i&&(i.onclick=this.onClick);const s=this.element.querySelectorAll(".session-option");s.forEach(n=>{n.addEventListener("click",o=>{o.stopPropagation(),s.forEach(d=>d.classList.remove("active")),n.classList.add("active"),this.selectedBehavior=n.getAttribute("data-behavior")})})}getSessionBehavior(){return this.selectedBehavior}getElement(){return this.element}}class ${constructor(t){a(this,"element");a(this,"chips",[]);this.onChipClick=t,this.element=document.createElement("div"),this.element.className="welcome-chips-container"}setChips(t){this.chips=t,this.render()}getElement(){return this.element}setPosition(t){this.element.style.cssText="",t.split(";").filter(i=>i.trim()).forEach(i=>{const[s,n]=i.split(":").map(o=>o.trim());s&&n&&(this.element.style[s]=n)}),this.element.style.bottom?this.element.style.bottom=parseInt(this.element.style.bottom)+76+"px":this.element.style.top&&(this.element.style.top=parseInt(this.element.style.top)+76+"px"),this.element.style.position="fixed",this.element.style.zIndex="2147483646",this.element.style.alignItems=this.element.style.left?"flex-start":"flex-end"}updateCoordinates(t,e,i=!0){this.element.style.left=`${t}px`,i?(this.element.style.top="auto",this.element.style.bottom=`${window.innerHeight-e+16}px`):(this.element.style.bottom="auto",this.element.style.top=`${e+76}px`),this.element.style.right="auto"}render(){this.element.innerHTML="",this.chips.forEach((t,e)=>{const i=document.createElement("button");i.className="welcome-chip-btn",i.textContent=t.title,i.onclick=s=>{s.stopPropagation(),this.onChipClick(t.title)},i.style.animationDelay=`${e*.1}s`,this.element.appendChild(i)})}static get styles(){return`
1193
1193
  .welcome-chips-container {
1194
1194
  position: fixed;
1195
1195
  z-index: 9998;
@@ -1245,16 +1245,16 @@ overflow: hidden;
1245
1245
  transform: translateY(0);
1246
1246
  }
1247
1247
  }
1248
- `}}class ee{constructor(t,e,i="#000000",s="#111111",n){a(this,"element");a(this,"overlay");a(this,"onStartCall");a(this,"onHangup");a(this,"primaryColor");a(this,"secondaryColor");a(this,"onCallEnded");this.onStartCall=t,this.onHangup=e,this.primaryColor=i,this.secondaryColor=s,this.onCallEnded=n,this.element=document.createElement("div"),this.element.style.height="100%",this.element.style.position="relative"}initOverlay(){this.overlay=new Z(()=>this.onHangup(),this.primaryColor,this.secondaryColor,this.onCallEnded),this.element.appendChild(this.overlay.getElement())}getElement(){return this.element}setCallActive(t){t?this.overlay.show():this.overlay.hide()}setStatus(t,e){this.overlay.setStatus(t,e)}setTranscription(t,e){this.overlay.setTranscription(t,e)}setVideoTrack(t){this.overlay.setVideoTrack(t)}}class Ae extends ee{constructor(e,i,s="#000000",n="#111111",o){super(e,i,s,n,o);a(this,"voiceOrb");this.element.style.background="#f9fafb",this.voiceOrb=new he(()=>{const h=this.voiceOrb.getSessionBehavior();this.onStartCall(h)}),this.element.appendChild(this.voiceOrb.getElement()),this.initOverlay()}}class pe{constructor(t){a(this,"element");a(this,"chatWindow");this.onSendMessage=t,this.element=document.createElement("div"),this.element.style.flex="1",this.element.style.width="100%",this.element.style.minHeight="0",this.element.style.display="flex",this.element.style.flexDirection="column",this.chatWindow=new _(e=>this.onSendMessage(e)),this.element.appendChild(this.chatWindow.getElement())}getElement(){return this.element}getChatWindow(){return this.chatWindow}}class te{constructor(t,e,i,s="#000000",n="#111111",o){a(this,"element");a(this,"chatWindow");a(this,"overlay");a(this,"voiceTrigger");this.onSendMessage=t,this.onStartCall=e,this.onHangup=i,this.primaryColor=s,this.secondaryColor=n,this.onCallEnded=o,this.element=document.createElement("div"),this.element.style.flex="1",this.element.style.display="flex",this.element.style.flexDirection="column",this.element.style.minHeight="0",this.element.style.position="relative"}setupChat(){this.chatWindow=new _(e=>this.onSendMessage(e));const t=this.chatWindow.getElement();t.style.flex="1",this.element.appendChild(t),this.injectVoiceTrigger(),this.overlay=new Z(()=>this.onHangup(),this.primaryColor,this.secondaryColor,this.onCallEnded),this.element.appendChild(this.overlay.getElement())}injectVoiceTrigger(){const t=document.createElement("button");this.voiceTrigger=t,t.className="voice-btn-simple",t.innerHTML=`<div class="voice-btn-icon">${C.audioLines}</div>`,t.onclick=()=>this.onStartCall();const e=this.chatWindow.getElement().querySelector(".chat-input-area");e?e.insertBefore(this.voiceTrigger,e.firstChild):console.warn("VaniraSDK: Failed to inject voice trigger",{inputArea:e})}getElement(){return this.element}getChatWindow(){return this.chatWindow}setCallActive(t){t?(this.overlay.show(),this.chatWindow&&(this.chatWindow.getElement().style.display="none")):(this.overlay.hide(),this.chatWindow&&(this.chatWindow.getElement().style.display="flex"))}setStatus(t,e){this.overlay.setStatus(t,e)}setTranscription(t,e){this.overlay.setTranscription(t,e)}setVideoTrack(t){this.overlay.setVideoTrack(t)}}class ge extends te{constructor(t,e,i,s="#000000",n="#111111",o){super(t,e,i,s,n,o),this.setupChat()}}class ue extends ee{constructor(e,i,s="#000000",n="#111111",o){super(e,i,s,n,o);a(this,"avatarView");a(this,"startCallBtn");a(this,"controlsContainer");this.element.style.display="flex",this.element.style.flexDirection="column",this.avatarView=new de;const h=this.avatarView.getElement();h.style.width="100%",h.style.maxWidth="300px",h.style.aspectRatio="1/1",h.style.borderRadius="16px",h.style.overflow="hidden",h.style.margin="auto",h.style.position="relative",this.element.appendChild(h),this.controlsContainer=document.createElement("div"),this.controlsContainer.className="widget-body",this.controlsContainer.style.position="absolute",this.controlsContainer.style.bottom="20px",this.controlsContainer.style.width="100%",this.controlsContainer.style.zIndex="10";const c=document.createElement("div");c.className="controls",this.startCallBtn=document.createElement("button"),this.startCallBtn.className="control-btn primary",this.startCallBtn.innerHTML=`${C.phone} <span>Start Call</span>`,this.startCallBtn.onclick=()=>this.onStartCall(),c.appendChild(this.startCallBtn),this.controlsContainer.appendChild(c),this.element.appendChild(this.controlsContainer),this.initOverlay(),this.overlay.setMode("avatar")}getAvatarView(){return this.avatarView}setCallActive(e){e&&this.overlay.setMode("avatar"),super.setCallActive(e),e?this.controlsContainer.style.display="none":this.controlsContainer.style.display="block"}}class me extends te{constructor(t,e,i,s="#000000",n="#111111",o){super(t,e,i,s,n,o),this.setupChat(),this.overlay.setMode("avatar")}injectVoiceTrigger(){const t=document.createElement("button");this.voiceTrigger=t,t.className="voice-btn-simple",t.style.overflow="hidden",t.style.padding="0",t.style.border="1.5px solid #e5e7eb",t.innerHTML=`
1248
+ `}}class ee{constructor(t,e,i="#000000",s="#111111",n){a(this,"element");a(this,"overlay");a(this,"onStartCall");a(this,"onHangup");a(this,"primaryColor");a(this,"secondaryColor");a(this,"onCallEnded");this.onStartCall=t,this.onHangup=e,this.primaryColor=i,this.secondaryColor=s,this.onCallEnded=n,this.element=document.createElement("div"),this.element.style.height="100%",this.element.style.position="relative"}initOverlay(){this.overlay=new Z(()=>this.onHangup(),this.primaryColor,this.secondaryColor,this.onCallEnded),this.element.appendChild(this.overlay.getElement())}getElement(){return this.element}setCallActive(t){t?this.overlay.show():this.overlay.hide()}setStatus(t,e){this.overlay.setStatus(t,e)}setTranscription(t,e){this.overlay.setTranscription(t,e)}setVideoTrack(t){this.overlay.setVideoTrack(t)}}class Ae extends ee{constructor(e,i,s="#000000",n="#111111",o){super(e,i,s,n,o);a(this,"voiceOrb");this.element.style.background="#f9fafb",this.voiceOrb=new he(()=>{const d=this.voiceOrb.getSessionBehavior();this.onStartCall(d)}),this.element.appendChild(this.voiceOrb.getElement()),this.initOverlay()}}class pe{constructor(t){a(this,"element");a(this,"chatWindow");this.onSendMessage=t,this.element=document.createElement("div"),this.element.style.flex="1",this.element.style.width="100%",this.element.style.minHeight="0",this.element.style.display="flex",this.element.style.flexDirection="column",this.chatWindow=new _(e=>this.onSendMessage(e)),this.element.appendChild(this.chatWindow.getElement())}getElement(){return this.element}getChatWindow(){return this.chatWindow}}class te{constructor(t,e,i,s="#000000",n="#111111",o){a(this,"element");a(this,"chatWindow");a(this,"overlay");a(this,"voiceTrigger");this.onSendMessage=t,this.onStartCall=e,this.onHangup=i,this.primaryColor=s,this.secondaryColor=n,this.onCallEnded=o,this.element=document.createElement("div"),this.element.style.flex="1",this.element.style.display="flex",this.element.style.flexDirection="column",this.element.style.minHeight="0",this.element.style.position="relative"}setupChat(){this.chatWindow=new _(e=>this.onSendMessage(e));const t=this.chatWindow.getElement();t.style.flex="1",this.element.appendChild(t),this.injectVoiceTrigger(),this.overlay=new Z(()=>this.onHangup(),this.primaryColor,this.secondaryColor,this.onCallEnded),this.element.appendChild(this.overlay.getElement())}injectVoiceTrigger(){const t=document.createElement("button");this.voiceTrigger=t,t.className="voice-btn-simple",t.innerHTML=`<div class="voice-btn-icon">${I.audioLines}</div>`,t.onclick=()=>this.onStartCall();const e=this.chatWindow.getElement().querySelector(".chat-input-area");e?e.insertBefore(this.voiceTrigger,e.firstChild):console.warn("VaniraSDK: Failed to inject voice trigger",{inputArea:e})}getElement(){return this.element}getChatWindow(){return this.chatWindow}setCallActive(t){t?(this.overlay.show(),this.chatWindow&&(this.chatWindow.getElement().style.display="none")):(this.overlay.hide(),this.chatWindow&&(this.chatWindow.getElement().style.display="flex"))}setStatus(t,e){this.overlay.setStatus(t,e)}setTranscription(t,e){this.overlay.setTranscription(t,e)}setVideoTrack(t){this.overlay.setVideoTrack(t)}}class ge extends te{constructor(t,e,i,s="#000000",n="#111111",o){super(t,e,i,s,n,o),this.setupChat()}}class ue extends ee{constructor(e,i,s="#000000",n="#111111",o){super(e,i,s,n,o);a(this,"avatarView");a(this,"startCallBtn");a(this,"controlsContainer");this.element.style.display="flex",this.element.style.flexDirection="column",this.avatarView=new de;const d=this.avatarView.getElement();d.style.width="100%",d.style.maxWidth="300px",d.style.aspectRatio="1/1",d.style.borderRadius="16px",d.style.overflow="hidden",d.style.margin="auto",d.style.position="relative",this.element.appendChild(d),this.controlsContainer=document.createElement("div"),this.controlsContainer.className="widget-body",this.controlsContainer.style.position="absolute",this.controlsContainer.style.bottom="20px",this.controlsContainer.style.width="100%",this.controlsContainer.style.zIndex="10";const l=document.createElement("div");l.className="controls",this.startCallBtn=document.createElement("button"),this.startCallBtn.className="control-btn primary",this.startCallBtn.innerHTML=`${I.phone} <span>Start Call</span>`,this.startCallBtn.onclick=()=>this.onStartCall(),l.appendChild(this.startCallBtn),this.controlsContainer.appendChild(l),this.element.appendChild(this.controlsContainer),this.initOverlay(),this.overlay.setMode("avatar")}getAvatarView(){return this.avatarView}setCallActive(e){e&&this.overlay.setMode("avatar"),super.setCallActive(e),e?this.controlsContainer.style.display="none":this.controlsContainer.style.display="block"}}class me extends te{constructor(t,e,i,s="#000000",n="#111111",o){super(t,e,i,s,n,o),this.setupChat(),this.overlay.setMode("avatar")}injectVoiceTrigger(){const t=document.createElement("button");this.voiceTrigger=t,t.className="voice-btn-simple",t.style.overflow="hidden",t.style.padding="0",t.style.border="1.5px solid #e5e7eb",t.innerHTML=`
1249
1249
  <video
1250
1250
  src="https://www.simli.com/jenna.mp4"
1251
1251
  autoplay loop muted pip="false" playsinline
1252
1252
  style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%;">
1253
1253
  </video>
1254
1254
  <div style="position: absolute; bottom: -2px; right: -2px; background: white; border-radius: 50%; padding: 2px; box-shadow: 0 1px 2px rgba(0,0,0,0.1);">
1255
- ${C.audioLines.replace('width="24"','width="12"').replace('height="24"','height="12"')}
1255
+ ${I.audioLines.replace('width="24"','width="12"').replace('height="24"','height="12"')}
1256
1256
  </div>
1257
- `;const e=t.querySelector("div");if(e){const n=e.querySelector("svg");n&&(n.style.width="12px",n.style.height="12px")}t.onclick=()=>this.onStartCall();const i=this.chatWindow.getElement().querySelector(".chat-input-area"),s=i==null?void 0:i.querySelector(".chat-send-btn");i&&s?i.insertBefore(this.voiceTrigger,s):console.warn("VaniraSDK: Failed to inject voice trigger",{inputArea:i,sendBtn:s})}}class fe{async sendMessage(t,e,i,s,n,o,h,c,l){return Q.sendChatMessage(e,i,t,s,d=>{o&&o(d)},n,(d,r)=>{h&&d&&h(d,r||void 0)},c,l)}async sendFile(t){throw console.warn("sendFile not implemented for VaniraChatAdapter yet - Incompatible function adapted",t),new Error("Method not implemented.")}async likeDislike(t,e){console.warn("likeDislike not implemented for VaniraChatAdapter yet - Incompatible function adapted",t,e)}}function N(u){if(!u)return"";if(typeof u=="string"){if(u.includes("T")||!isNaN(Date.parse(u)))try{return new Date(u).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}catch{}return u}if(typeof u=="object"){const t=u.start||u.startTime||u.time||u.slot,e=u.end||u.endTime;if(t){let i=String(t),s=e?String(e):"";try{(i.includes("T")||!isNaN(Date.parse(i)))&&(i=new Date(i).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})),s&&(s.includes("T")||!isNaN(Date.parse(s)))&&(s=new Date(s).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}))}catch{}return s?`${i} - ${s}`:i}}return String(u)}const we=`
1257
+ `;const e=t.querySelector("div");if(e){const n=e.querySelector("svg");n&&(n.style.width="12px",n.style.height="12px")}t.onclick=()=>this.onStartCall();const i=this.chatWindow.getElement().querySelector(".chat-input-area"),s=i==null?void 0:i.querySelector(".chat-send-btn");i&&s?i.insertBefore(this.voiceTrigger,s):console.warn("VaniraSDK: Failed to inject voice trigger",{inputArea:i,sendBtn:s})}}class fe{async sendMessage(t,e,i,s,n,o,d,l,r){return T.sendChatMessage(e,i,t,s,h=>{o&&o(h)},n,(h,c)=>{d&&h&&d(h,c||void 0)},l,r)}async sendFile(t){throw console.warn("sendFile not implemented for VaniraChatAdapter yet - Incompatible function adapted",t),new Error("Method not implemented.")}async likeDislike(t,e){console.warn("likeDislike not implemented for VaniraChatAdapter yet - Incompatible function adapted",t,e)}}function N(u){if(!u)return"";if(typeof u=="string"){if(u.includes("T")||!isNaN(Date.parse(u)))try{return new Date(u).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}catch{}return u}if(typeof u=="object"){const t=u.start||u.startTime||u.time||u.slot,e=u.end||u.endTime;if(t){let i=String(t),s=e?String(e):"";try{(i.includes("T")||!isNaN(Date.parse(i)))&&(i=new Date(i).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})),s&&(s.includes("T")||!isNaN(Date.parse(s)))&&(s=new Date(s).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}))}catch{}return s?`${i} - ${s}`:i}}return String(u)}const we=`
1258
1258
  .vnr-overlay {
1259
1259
  position: fixed; inset: 0; z-index: 2147483647;
1260
1260
  background: rgba(0,0,0,0.45);
@@ -1350,7 +1350,7 @@ overflow: hidden;
1350
1350
  /* Upload dropzone */
1351
1351
  .vnr-dropzone { border:2px dashed #cbd5e1; border-radius:14px; padding:32px 20px; text-align:center; cursor:pointer; background:#fafafa; transition:border-color 0.2s,background 0.2s; }
1352
1352
  .vnr-dropzone:hover, .vnr-dropzone.drag { border-color:#374151; background:#f3f4f6; }
1353
- `;class ve{constructor(t){a(this,"overlay",null);a(this,"styleInjected",!1);a(this,"calViewYear",0);a(this,"calViewMonth",0);a(this,"calSelectedTs",null);a(this,"calSelectedTime",null)}handle(t,e,i,s){const n=t.data||t;let o={};const h=n.arguments||n.args;if(typeof h=="string")try{o=JSON.parse(h)}catch{o={}}else h&&typeof h=="object"&&(o=h);const c=n.client_fields||{},l=(c==null?void 0:c.preset_id)||(o==null?void 0:o.preset_id);if(console.log("[VaniraPreset] tool_call data:",{name:n.name,client_fields:c,args:o,presetId:l}),!l)return!1;const d={...o,...c},r={toolCallId:n.tool_call_id||n.call_id||"",presetId:l,clientFields:d,args:o,toolCall:n};return this.injectStyles(),this.dismiss(),l==="vanira_calendar"?(this.renderCalendar(r,e,i),!0):l==="vanira_form"?(this.renderForm(r,e,i),!0):l==="vanira_camera"?(this.renderCamera(r,e,i,s),!0):l==="vanira_upload"?(this.renderUpload(r,e,i,s),!0):l==="vanira_navigate"?(this.renderNavigate(r,e,i),!0):!1}dismiss(){this.overlay&&(this.overlay.remove(),this.overlay=null)}injectStyles(){if(this.styleInjected||document.getElementById("vnr-preset-styles"))return;const t=document.createElement("style");t.id="vnr-preset-styles",t.textContent=we,document.head.appendChild(t),this.styleInjected=!0}createOverlay(){const t=document.createElement("div");return t.className="vnr-overlay",document.body.appendChild(t),this.overlay=t,t}createModal(t,e,i){const s=document.createElement("div");return s.className="vnr-modal",s.style.position="relative",s.innerHTML=`
1353
+ `;class ve{constructor(t){a(this,"overlay",null);a(this,"styleInjected",!1);a(this,"calViewYear",0);a(this,"calViewMonth",0);a(this,"calSelectedTs",null);a(this,"calSelectedTime",null)}handle(t,e,i,s){const n=t.data||t;let o={};const d=n.arguments||n.args;if(typeof d=="string")try{o=JSON.parse(d)}catch{o={}}else d&&typeof d=="object"&&(o=d);const l=n.client_fields||{},r=(l==null?void 0:l.preset_id)||(o==null?void 0:o.preset_id);if(console.log("[VaniraPreset] tool_call data:",{name:n.name,client_fields:l,args:o,presetId:r}),!r)return!1;const h={...o,...l},c={toolCallId:n.tool_call_id||n.call_id||"",presetId:r,clientFields:h,args:o,toolCall:n};return this.injectStyles(),this.dismiss(),r==="vanira_calendar"?(this.renderCalendar(c,e,i),!0):r==="vanira_form"?(this.renderForm(c,e,i),!0):r==="vanira_camera"?(this.renderCamera(c,e,i,s),!0):r==="vanira_upload"?(this.renderUpload(c,e,i,s),!0):r==="vanira_navigate"?(this.renderNavigate(c,e,i),!0):r==="vanira_highlight_element"?(this.renderHighlight(c,e,i),!0):r==="vanira_type_text"?(this.renderTypeText(c,e,i),!0):!1}dismiss(){this.overlay&&(this.overlay.remove(),this.overlay=null)}injectStyles(){if(this.styleInjected||document.getElementById("vnr-preset-styles"))return;const t=document.createElement("style");t.id="vnr-preset-styles",t.textContent=we,document.head.appendChild(t),this.styleInjected=!0}createOverlay(){const t=document.createElement("div");return t.className="vnr-overlay",document.body.appendChild(t),this.overlay=t,t}createModal(t,e,i){const s=document.createElement("div");return s.className="vnr-modal",s.style.position="relative",s.innerHTML=`
1354
1354
  <button class="vnr-close-btn" aria-label="Close">
1355
1355
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
1356
1356
  <line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>
@@ -1363,13 +1363,13 @@ overflow: hidden;
1363
1363
  </svg>
1364
1364
  <span>${i}</span>
1365
1365
  </div>
1366
- `,t.appendChild(s),s}renderCalendar(t,e,i){const s=new Date;s.setHours(0,0,0,0),this.calViewYear=s.getFullYear(),this.calViewMonth=s.getMonth(),this.calSelectedTs=null,this.calSelectedTime=null;const n=t.clientFields.title||"Select Date & Time",o=t.args.reason||"Please select a preferred time for your appointment.",h=this.createOverlay(),c=this.createModal(h,n,o);c.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),i("User closed the preset")});const l=document.createElement("div");c.appendChild(l);const d=document.createElement("div");d.style.display="none",c.appendChild(d);const r=document.createElement("div");r.className="vnr-actions",r.innerHTML=`
1366
+ `,t.appendChild(s),s}renderCalendar(t,e,i){const s=new Date;s.setHours(0,0,0,0),this.calViewYear=s.getFullYear(),this.calViewMonth=s.getMonth(),this.calSelectedTs=null,this.calSelectedTime=null;const n=t.clientFields.title||"Select Date & Time",o=t.args.reason||"Please select a preferred time for your appointment.",d=this.createOverlay(),l=this.createModal(d,n,o);l.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),i("User closed the preset")});const r=document.createElement("div");l.appendChild(r);const h=document.createElement("div");h.style.display="none",l.appendChild(h);const c=document.createElement("div");c.className="vnr-actions",c.innerHTML=`
1367
1367
  <button class="vnr-cancel-btn">Cancel</button>
1368
1368
  <button class="vnr-confirm-btn" disabled>
1369
1369
  <svg width="13" height="13" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" viewBox="0 0 24 24"><polyline points="20 6 9 17 4 12"/></svg>
1370
1370
  Confirm
1371
1371
  </button>
1372
- `,c.appendChild(r);const A=r.querySelector(".vnr-confirm-btn");r.querySelector(".vnr-cancel-btn").addEventListener("click",()=>{this.dismiss(),i("User cancelled")}),A.addEventListener("click",()=>{if(!this.calSelectedTs||!this.calSelectedTime)return;const p=new Date(this.calSelectedTs),v=N(this.calSelectedTime);this.dismiss(),e({date:p.toISOString().split("T")[0],time:v,timestamp:this.calSelectedTs,formatted:`${p.toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"})} at ${v}`,slot_data:typeof this.calSelectedTime=="object"?this.calSelectedTime:void 0})});const g=()=>{const p=new Date;p.setHours(0,0,0,0);const v=new Date(this.calViewYear,this.calViewMonth,1).getDay(),m=new Date(this.calViewYear,this.calViewMonth+1,0).getDate(),w=new Date(this.calViewYear,this.calViewMonth,1).toLocaleDateString("en-US",{month:"long",year:"numeric"}),f=this.calViewYear===p.getFullYear()&&this.calViewMonth===p.getMonth();l.innerHTML=`
1372
+ `,l.appendChild(c);const A=c.querySelector(".vnr-confirm-btn");c.querySelector(".vnr-cancel-btn").addEventListener("click",()=>{this.dismiss(),i("User cancelled")}),A.addEventListener("click",()=>{if(!this.calSelectedTs||!this.calSelectedTime)return;const p=new Date(this.calSelectedTs),x=N(this.calSelectedTime);this.dismiss(),e({date:p.toISOString().split("T")[0],time:x,timestamp:this.calSelectedTs,formatted:`${p.toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"})} at ${x}`,slot_data:typeof this.calSelectedTime=="object"?this.calSelectedTime:void 0})});const g=()=>{const p=new Date;p.setHours(0,0,0,0);const x=new Date(this.calViewYear,this.calViewMonth,1).getDay(),m=new Date(this.calViewYear,this.calViewMonth+1,0).getDate(),w=new Date(this.calViewYear,this.calViewMonth,1).toLocaleDateString("en-US",{month:"long",year:"numeric"}),f=this.calViewYear===p.getFullYear()&&this.calViewMonth===p.getMonth();r.innerHTML=`
1373
1373
  <div class="vnr-month-nav">
1374
1374
  <button class="vnr-nav-btn" id="vnr-prev" ${f?"disabled":""}>
1375
1375
  <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><polyline points="15 18 9 12 15 6"/></svg>
@@ -1380,20 +1380,20 @@ overflow: hidden;
1380
1380
  </button>
1381
1381
  </div>
1382
1382
  <div class="vnr-cal-grid" id="vnr-grid"></div>
1383
- `,l.querySelector("#vnr-prev").addEventListener("click",()=>{this.calViewMonth===0?(this.calViewMonth=11,this.calViewYear--):this.calViewMonth--,g()}),l.querySelector("#vnr-next").addEventListener("click",()=>{this.calViewMonth===11?(this.calViewMonth=0,this.calViewYear++):this.calViewMonth++,g()});const y=l.querySelector("#vnr-grid");["Su","Mo","Tu","We","Th","Fr","Sa"].forEach(b=>{const x=document.createElement("div");x.className="vnr-wd",x.textContent=b,y.appendChild(x)});for(let b=0;b<v;b++){const x=document.createElement("div");y.appendChild(x)}for(let b=1;b<=m;b++){const x=new Date(this.calViewYear,this.calViewMonth,b).getTime(),E=x<p.getTime(),Y=x===p.getTime(),G=this.calSelectedTs===x,z=document.createElement("div");z.style.textAlign="center";const k=document.createElement("button");k.className="vnr-day-btn",E&&k.classList.add("vnr-day-past"),Y&&!G&&k.classList.add("vnr-day-today"),G&&k.classList.add("vnr-day-sel"),k.disabled=E,k.textContent=String(b),k.addEventListener("click",()=>{this.calSelectedTs=x,this.calSelectedTime=null,A.disabled=!0,g(),this.loadSlots(t,d,A)}),z.appendChild(k),y.appendChild(z)}};g()}loadSlots(t,e,i){const s=t.clientFields.slots_api_url;if(!this.calSelectedTs||!s){this.renderSlots(e,["09:00 AM","10:30 AM","01:00 PM","02:30 PM","04:00 PM"],i);return}const o=new Date(this.calSelectedTs).toISOString().split("T")[0],h=t.clientFields.timezone||"",c=new Date(this.calSelectedTs);c.setUTCHours(0,0,0,0);const l=new Date(this.calSelectedTs);l.setUTCHours(23,59,59,999);const d=m=>typeof m!="string"?m:m.replace(/\{\{date\}\}/g,o).replace(/\{\{timezone\}\}/g,h).replace(/\{\{start_of_day\}\}/g,c.toISOString()).replace(/\{\{end_of_day\}\}/g,l.toISOString()),r=(t.clientFields.slots_api_method||"GET").toUpperCase();let A={"Content-Type":"application/json"};try{Object.entries(JSON.parse(t.clientFields.slots_api_headers||"{}")).forEach(([m,w])=>{A[m]=d(String(w))})}catch{}let g={};try{Object.entries(JSON.parse(t.clientFields.slots_api_body||"{}")).forEach(([m,w])=>{g[m]=d(String(w))})}catch{}let p=d(s);const v={method:r,headers:A};if(r==="GET"){const m=new URLSearchParams(Object.entries(g).map(([w,f])=>[w,String(f)])).toString();m&&(p+=(p.includes("?")?"&":"?")+m)}else v.body=JSON.stringify(g);e.style.display="block",e.innerHTML='<div class="vnr-divider"></div><div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Loading slots…</div>',fetch(p,v).then(m=>{if(!m.ok)throw new Error(`HTTP ${m.status}`);return m.json()}).then(m=>{let w=[];if(Array.isArray(m))w=m;else if(m&&typeof m=="object"){for(const f of["slots","free_slots","times","data","available_slots"])if(Array.isArray(m[f])){w=m[f];break}}this.renderSlots(e,w,i)}).catch(()=>{e.innerHTML='<div class="vnr-divider"></div><div class="vnr-center" style="color:#ef4444">Failed to load slots. Please try again.</div>'})}renderSlots(t,e,i){const s=this.calSelectedTs?new Date(this.calSelectedTs).toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"}):"Available Times",n=e.some(h=>N(h).length>8)?2:3;if(t.style.display="block",t.innerHTML=`
1383
+ `,r.querySelector("#vnr-prev").addEventListener("click",()=>{this.calViewMonth===0?(this.calViewMonth=11,this.calViewYear--):this.calViewMonth--,g()}),r.querySelector("#vnr-next").addEventListener("click",()=>{this.calViewMonth===11?(this.calViewMonth=0,this.calViewYear++):this.calViewMonth++,g()});const b=r.querySelector("#vnr-grid");["Su","Mo","Tu","We","Th","Fr","Sa"].forEach(y=>{const v=document.createElement("div");v.className="vnr-wd",v.textContent=y,b.appendChild(v)});for(let y=0;y<x;y++){const v=document.createElement("div");b.appendChild(v)}for(let y=1;y<=m;y++){const v=new Date(this.calViewYear,this.calViewMonth,y).getTime(),C=v<p.getTime(),P=v===p.getTime(),Q=this.calSelectedTs===v,M=document.createElement("div");M.style.textAlign="center";const k=document.createElement("button");k.className="vnr-day-btn",C&&k.classList.add("vnr-day-past"),P&&!Q&&k.classList.add("vnr-day-today"),Q&&k.classList.add("vnr-day-sel"),k.disabled=C,k.textContent=String(y),k.addEventListener("click",()=>{this.calSelectedTs=v,this.calSelectedTime=null,A.disabled=!0,g(),this.loadSlots(t,h,A)}),M.appendChild(k),b.appendChild(M)}};g()}loadSlots(t,e,i){const s=t.clientFields.slots_api_url;if(!this.calSelectedTs||!s){this.renderSlots(e,["09:00 AM","10:30 AM","01:00 PM","02:30 PM","04:00 PM"],i);return}const o=new Date(this.calSelectedTs).toISOString().split("T")[0],d=t.clientFields.timezone||"",l=new Date(this.calSelectedTs);l.setUTCHours(0,0,0,0);const r=new Date(this.calSelectedTs);r.setUTCHours(23,59,59,999);const h=m=>{if(typeof m!="string")return m;let w=m.replace(/\{\{date\}\}/g,o).replace(/\{\{timezone\}\}/g,d).replace(/\{\{start_of_day\}\}/g,l.toISOString()).replace(/\{\{end_of_day\}\}/g,r.toISOString());return Object.entries(t.clientFields).forEach(([f,b])=>{if(b!=null){const y=f.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),v=new RegExp(`\\{\\{${y}\\}\\}`,"g");w=w.replace(v,String(b))}}),w},c=(t.clientFields.slots_api_method||"GET").toUpperCase();let A={"Content-Type":"application/json"};try{Object.entries(JSON.parse(t.clientFields.slots_api_headers||"{}")).forEach(([m,w])=>{A[m]=h(String(w))})}catch{}let g={};try{Object.entries(JSON.parse(t.clientFields.slots_api_body||"{}")).forEach(([m,w])=>{g[m]=h(String(w))})}catch{}let p=h(s);const x={method:c,headers:A};if(c==="GET"){const m=new URLSearchParams(Object.entries(g).map(([w,f])=>[w,String(f)])).toString();m&&(p+=(p.includes("?")?"&":"?")+m)}else x.body=JSON.stringify(g);e.style.display="block",e.innerHTML='<div class="vnr-divider"></div><div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Loading slots…</div>',fetch(p,x).then(m=>{if(!m.ok)throw new Error(`HTTP ${m.status}`);return m.json()}).then(m=>{let w=[];if(Array.isArray(m))w=m;else if(m&&typeof m=="object"){for(const f of["slots","free_slots","times","data","available_slots"])if(Array.isArray(m[f])){w=m[f];break}}this.renderSlots(e,w,i)}).catch(()=>{e.innerHTML='<div class="vnr-divider"></div><div class="vnr-center" style="color:#ef4444">Failed to load slots. Please try again.</div>'})}renderSlots(t,e,i){const s=this.calSelectedTs?new Date(this.calSelectedTs).toLocaleDateString("en-US",{weekday:"long",month:"short",day:"numeric"}):"Available Times",n=e.some(d=>N(d).length>8)?2:3;if(t.style.display="block",t.innerHTML=`
1384
1384
  <div class="vnr-divider"></div>
1385
1385
  <div class="vnr-section-label">${s}</div>
1386
1386
  ${e.length===0?'<div class="vnr-center">No slots available for this date.</div>':`<div class="vnr-slots-grid" style="grid-template-columns:repeat(${n},1fr)"></div>`}
1387
- `,e.length===0)return;const o=t.querySelector(".vnr-slots-grid");e.forEach(h=>{const c=document.createElement("button");c.className="vnr-slot-btn",this.calSelectedTime!==null&&(typeof h=="object"&&typeof this.calSelectedTime=="object"?JSON.stringify(h)===JSON.stringify(this.calSelectedTime):h===this.calSelectedTime)&&c.classList.add("vnr-slot-sel"),c.textContent=N(h),c.addEventListener("click",()=>{this.calSelectedTime=h,i.disabled=!1,o.querySelectorAll(".vnr-slot-btn").forEach(d=>d.classList.remove("vnr-slot-sel")),c.classList.add("vnr-slot-sel")}),o.appendChild(c)})}renderForm(t,e,i){const s=t.clientFields.title||t.args.title||"Please fill out this form",n=t.args.reason||"Please provide the following information.",o=t.clientFields.fields||t.args.fields,h=Array.isArray(o)?o:typeof o=="string"?o.split(",").map(g=>g.trim()).filter(Boolean):[],c=this.createOverlay(),l=this.createModal(c,s,n);l.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),i("User closed")});const d=document.createElement("div");d.className="vnr-fields",h.forEach(g=>{const p=g.toLowerCase().replace(/[^a-z0-9]/g,"_"),v=p.includes("email"),m=p.includes("phone")||p.includes("number"),w=v?"email":m?"tel":"text",f=document.createElement("div");f.innerHTML=`
1387
+ `,e.length===0)return;const o=t.querySelector(".vnr-slots-grid");e.forEach(d=>{const l=document.createElement("button");l.className="vnr-slot-btn",this.calSelectedTime!==null&&(typeof d=="object"&&typeof this.calSelectedTime=="object"?JSON.stringify(d)===JSON.stringify(this.calSelectedTime):d===this.calSelectedTime)&&l.classList.add("vnr-slot-sel"),l.textContent=N(d),l.addEventListener("click",()=>{this.calSelectedTime=d,i.disabled=!1,o.querySelectorAll(".vnr-slot-btn").forEach(h=>h.classList.remove("vnr-slot-sel")),l.classList.add("vnr-slot-sel")}),o.appendChild(l)})}renderForm(t,e,i){const s=t.clientFields.title||t.args.title||"Please fill out this form",n=t.args.reason||"Please provide the following information.",o=t.clientFields.fields||t.args.fields,d=Array.isArray(o)?o:typeof o=="string"?o.split(",").map(g=>g.trim()).filter(Boolean):[],l=this.createOverlay(),r=this.createModal(l,s,n);r.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),i("User closed")});const h=document.createElement("div");h.className="vnr-fields",d.forEach(g=>{const p=g.toLowerCase().replace(/[^a-z0-9]/g,"_"),x=p.includes("email"),m=p.includes("phone")||p.includes("number"),w=x?"email":m?"tel":"text",f=document.createElement("div");f.innerHTML=`
1388
1388
  <label class="vnr-field-label" for="vnr_${p}">${g} *</label>
1389
1389
  <input class="vnr-input" type="${w}" id="vnr_${p}" name="${p}" placeholder="Enter your ${g.toLowerCase()}" required />
1390
- `,d.appendChild(f)}),l.appendChild(d);const r=document.createElement("div");r.className="vnr-actions",r.style.marginTop="16px",r.innerHTML=`
1390
+ `,h.appendChild(f)}),r.appendChild(h);const c=document.createElement("div");c.className="vnr-actions",c.style.marginTop="16px",c.innerHTML=`
1391
1391
  <button class="vnr-cancel-btn">Cancel</button>
1392
1392
  <button class="vnr-confirm-btn">
1393
1393
  <svg width="13" height="13" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" viewBox="0 0 24 24"><polyline points="20 6 9 17 4 12"/></svg>
1394
1394
  Submit
1395
1395
  </button>
1396
- `,l.appendChild(r),r.querySelector(".vnr-cancel-btn").addEventListener("click",()=>{this.dismiss(),i("User cancelled")});const A=r.querySelector(".vnr-confirm-btn");A.addEventListener("click",()=>{const g={};let p=!0;h.forEach(v=>{const m=v.toLowerCase().replace(/[^a-z0-9]/g,"_"),w=l.querySelector(`#vnr_${m}`);if(!(w!=null&&w.value.trim())){p=!1,w==null||w.focus();return}g[m]=w.value.trim()}),p&&(A.disabled=!0,A.innerHTML='<div class="vnr-spinner"></div>',setTimeout(()=>{this.dismiss(),e(g)},300))})}renderCamera(t,e,i,s){const n=t.clientFields.title||"Take a Photo",o=t.clientFields.description||"Point your camera at the subject, then tap capture.",h=t.clientFields.facing_mode||t.args.facing_mode||"environment",c=t.clientFields.reason||"camera_capture";let l=null;const d=this.createOverlay(),r=document.createElement("div");r.className="vnr-modal",r.style.cssText="position:relative;max-width:480px;width:100%",r.innerHTML=`
1396
+ `,r.appendChild(c),c.querySelector(".vnr-cancel-btn").addEventListener("click",()=>{this.dismiss(),i("User cancelled")});const A=c.querySelector(".vnr-confirm-btn");A.addEventListener("click",()=>{const g={};let p=!0;d.forEach(x=>{const m=x.toLowerCase().replace(/[^a-z0-9]/g,"_"),w=r.querySelector(`#vnr_${m}`);if(!(w!=null&&w.value.trim())){p=!1,w==null||w.focus();return}g[m]=w.value.trim()}),p&&(A.disabled=!0,A.innerHTML='<div class="vnr-spinner"></div>',setTimeout(()=>{this.dismiss(),e(g)},300))})}renderCamera(t,e,i,s){const n=t.clientFields.title||"Take a Photo",o=t.clientFields.description||"Point your camera at the subject, then tap capture.",d=t.clientFields.facing_mode||t.args.facing_mode||"environment",l=t.clientFields.reason||"camera_capture";let r=null;const h=this.createOverlay(),c=document.createElement("div");c.className="vnr-modal",c.style.cssText="position:relative;max-width:480px;width:100%",c.innerHTML=`
1397
1397
  <button class="vnr-close-btn" aria-label="Close">
1398
1398
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
1399
1399
  </button>
@@ -1415,7 +1415,7 @@ overflow: hidden;
1415
1415
  Capture & Send
1416
1416
  </button>
1417
1417
  </div>
1418
- `,d.appendChild(r);const A=r.querySelector("#vnr-cam-video"),g=r.querySelector("#vnr-cam-canvas"),p=r.querySelector("#vnr-cam-overlay"),v=r.querySelector("#vnr-cam-status"),m=r.querySelector("#vnr-cam-capture"),w=()=>{l==null||l.getTracks().forEach(f=>f.stop()),l=null,A.srcObject=null};r.querySelector(".vnr-close-btn").addEventListener("click",()=>{w(),this.dismiss(),i("User closed")}),r.querySelector("#vnr-cam-cancel").addEventListener("click",()=>{w(),this.dismiss(),i("User cancelled")}),navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:h}},audio:!1}).then(f=>(l=f,A.srcObject=f,A.play().catch(()=>{}))).then(()=>{p.style.display="none";const f=document.createElement("div");f.className="vnr-live-badge",f.innerHTML='<span class="vnr-live-dot"></span>LIVE',r.querySelector("#vnr-cam-wrap").appendChild(f),m.disabled=!1}).catch(()=>{p.innerHTML='<p style="color:#f87171;font-size:13px;text-align:center;padding:24px">Camera access denied.<br>Please allow camera permissions.</p>'}),m.addEventListener("click",async()=>{if(!l||A.videoWidth===0)return;g.width=A.videoWidth,g.height=A.videoHeight,g.getContext("2d").drawImage(A,0,0),w(),r.querySelector("#vnr-cam-wrap").setAttribute("style","display:none"),m.disabled=!0,v.style.display="block",v.innerHTML='<div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Sending photo…</div>';try{const y=await new Promise(x=>g.toBlob(E=>x(E),"image/jpeg",.85));if(!y)throw new Error("Capture failed");const b=new File([y],`capture-${Date.now()}.jpg`,{type:"image/jpeg"});if(s&&typeof s.uploadMedia=="function"){const{media_id:x,url:E}=await s.uploadMedia(b,c,"User captured a photo via camera");v.innerHTML='<div class="vnr-center" style="color:#22c55e">βœ“ Photo sent!</div>',setTimeout(()=>{this.dismiss(),e({file_name:b.name,file_type:b.type,file_size:b.size,media_id:x,url:E,message:"User captured and sent a photo."})},400)}else{const x=g.toDataURL("image/jpeg",.85);v.innerHTML='<div class="vnr-center" style="color:#22c55e">βœ“ Photo ready!</div>',setTimeout(()=>{this.dismiss(),e({file_name:b.name,data_url:x,message:"User captured a photo."})},400)}}catch(y){v.innerHTML=`<div class="vnr-center" style="color:#ef4444">${(y==null?void 0:y.message)||"Capture failed"}</div>`}})}renderUpload(t,e,i,s){const n=t.clientFields.title||"Upload a File",o=t.clientFields.description||"Drop or select a file to send to your agent.",h=t.clientFields.reason||"upload",c=t.clientFields.accept||"image/*,application/pdf,text/plain,text/csv";let l=null;const d=this.createOverlay(),r=document.createElement("div");r.className="vnr-modal",r.style.cssText="position:relative;max-width:480px;width:100%",r.innerHTML=`
1418
+ `,h.appendChild(c);const A=c.querySelector("#vnr-cam-video"),g=c.querySelector("#vnr-cam-canvas"),p=c.querySelector("#vnr-cam-overlay"),x=c.querySelector("#vnr-cam-status"),m=c.querySelector("#vnr-cam-capture"),w=()=>{r==null||r.getTracks().forEach(f=>f.stop()),r=null,A.srcObject=null};c.querySelector(".vnr-close-btn").addEventListener("click",()=>{w(),this.dismiss(),i("User closed")}),c.querySelector("#vnr-cam-cancel").addEventListener("click",()=>{w(),this.dismiss(),i("User cancelled")}),navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:d}},audio:!1}).then(f=>(r=f,A.srcObject=f,A.play().catch(()=>{}))).then(()=>{p.style.display="none";const f=document.createElement("div");f.className="vnr-live-badge",f.innerHTML='<span class="vnr-live-dot"></span>LIVE',c.querySelector("#vnr-cam-wrap").appendChild(f),m.disabled=!1}).catch(()=>{p.innerHTML='<p style="color:#f87171;font-size:13px;text-align:center;padding:24px">Camera access denied.<br>Please allow camera permissions.</p>'}),m.addEventListener("click",async()=>{if(!r||A.videoWidth===0)return;g.width=A.videoWidth,g.height=A.videoHeight,g.getContext("2d").drawImage(A,0,0),w(),c.querySelector("#vnr-cam-wrap").setAttribute("style","display:none"),m.disabled=!0,x.style.display="block",x.innerHTML='<div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Sending photo…</div>';try{const b=await new Promise(v=>g.toBlob(C=>v(C),"image/jpeg",.85));if(!b)throw new Error("Capture failed");const y=new File([b],`capture-${Date.now()}.jpg`,{type:"image/jpeg"});if(s&&typeof s.uploadMedia=="function"){const{media_id:v,url:C}=await s.uploadMedia(y,l,"User captured a photo via camera");x.innerHTML='<div class="vnr-center" style="color:#22c55e">βœ“ Photo sent!</div>',setTimeout(()=>{this.dismiss(),e({file_name:y.name,file_type:y.type,file_size:y.size,media_id:v,url:C,message:"User captured and sent a photo."})},400)}else{const v=g.toDataURL("image/jpeg",.85);x.innerHTML='<div class="vnr-center" style="color:#22c55e">βœ“ Photo ready!</div>',setTimeout(()=>{this.dismiss(),e({file_name:y.name,data_url:v,message:"User captured a photo."})},400)}}catch(b){x.innerHTML=`<div class="vnr-center" style="color:#ef4444">${(b==null?void 0:b.message)||"Capture failed"}</div>`}})}renderUpload(t,e,i,s){const n=t.clientFields.title||"Upload a File",o=t.clientFields.description||"Drop or select a file to send to your agent.",d=t.clientFields.reason||"upload",l=t.clientFields.accept||"image/*,application/pdf,text/plain,text/csv";let r=null;const h=this.createOverlay(),c=document.createElement("div");c.className="vnr-modal",c.style.cssText="position:relative;max-width:480px;width:100%",c.innerHTML=`
1419
1419
  <button class="vnr-close-btn" aria-label="Close">
1420
1420
  <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
1421
1421
  </button>
@@ -1428,7 +1428,7 @@ overflow: hidden;
1428
1428
  <span style="display:inline-block;padding:7px 16px;background:#111;color:#fff;border-radius:9px;font-size:13px;font-weight:600">Choose File</span>
1429
1429
  <p style="margin:12px 0 0;font-size:11px;color:#9ca3af">Images, PDF, CSV, Docs Β· Max 10 MB</p>
1430
1430
  </div>
1431
- <input id="vnr-file-input" type="file" accept="${c}" style="display:none">
1431
+ <input id="vnr-file-input" type="file" accept="${l}" style="display:none">
1432
1432
  <div id="vnr-file-preview" style="display:none;border:1px solid #e5e7eb;border-radius:12px;padding:14px;background:#f9fafb"></div>
1433
1433
  <div id="vnr-upload-status" style="display:none"></div>
1434
1434
  <div class="vnr-actions" style="margin-top:14px">
@@ -1438,18 +1438,18 @@ overflow: hidden;
1438
1438
  Upload & Send
1439
1439
  </button>
1440
1440
  </div>
1441
- `,d.appendChild(r);const A=r.querySelector("#vnr-drop-zone"),g=r.querySelector("#vnr-file-input"),p=r.querySelector("#vnr-file-preview"),v=r.querySelector("#vnr-upload-status"),m=r.querySelector("#vnr-up-submit");r.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),i("User closed")}),r.querySelector("#vnr-up-cancel").addEventListener("click",()=>{this.dismiss(),i("User cancelled")});const w=f=>{l=f,A.style.display="none";const y=f.type.startsWith("image/")?"πŸ–ΌοΈ":f.type.includes("pdf")?"πŸ“„":"πŸ“",b=(f.size/1024).toFixed(1);p.style.display="block",p.innerHTML=`
1441
+ `,h.appendChild(c);const A=c.querySelector("#vnr-drop-zone"),g=c.querySelector("#vnr-file-input"),p=c.querySelector("#vnr-file-preview"),x=c.querySelector("#vnr-upload-status"),m=c.querySelector("#vnr-up-submit");c.querySelector(".vnr-close-btn").addEventListener("click",()=>{this.dismiss(),i("User closed")}),c.querySelector("#vnr-up-cancel").addEventListener("click",()=>{this.dismiss(),i("User cancelled")});const w=f=>{r=f,A.style.display="none";const b=f.type.startsWith("image/")?"πŸ–ΌοΈ":f.type.includes("pdf")?"πŸ“„":"πŸ“",y=(f.size/1024).toFixed(1);p.style.display="block",p.innerHTML=`
1442
1442
  <div style="display:flex;align-items:center;gap:10px">
1443
- <span style="font-size:28px">${y}</span>
1443
+ <span style="font-size:28px">${b}</span>
1444
1444
  <div style="flex:1;min-width:0">
1445
1445
  <p style="margin:0;font-weight:600;font-size:13px;color:#111;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">${f.name}</p>
1446
- <p style="margin:3px 0 0;font-size:11px;color:#6b7280">${f.type||"unknown"} Β· ${b} KB</p>
1446
+ <p style="margin:3px 0 0;font-size:11px;color:#6b7280">${f.type||"unknown"} Β· ${y} KB</p>
1447
1447
  </div>
1448
1448
  <button id="vnr-remove-file" style="width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;color:#6b7280;flex-shrink:0">
1449
1449
  <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
1450
1450
  </button>
1451
1451
  </div>
1452
- `,p.querySelector("#vnr-remove-file").addEventListener("click",()=>{l=null,p.style.display="none",A.style.display="block",m.disabled=!0}),m.disabled=!1};A.addEventListener("click",()=>g.click()),A.addEventListener("dragover",f=>{f.preventDefault(),A.classList.add("drag")}),A.addEventListener("dragleave",()=>A.classList.remove("drag")),A.addEventListener("drop",f=>{var b;f.preventDefault(),A.classList.remove("drag");const y=(b=f.dataTransfer)==null?void 0:b.files[0];y&&w(y)}),g.addEventListener("change",()=>{var y;const f=(y=g.files)==null?void 0:y[0];f&&w(f)}),m.addEventListener("click",async()=>{if(!l)return;const f=l;A.style.display="none",p.style.display="none",v.style.display="block",v.innerHTML='<div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Uploading…</div>',m.disabled=!0;try{if(s&&typeof s.uploadMedia=="function"){const{media_id:y,url:b}=await s.uploadMedia(f,h,`User uploaded: ${f.name}`);v.innerHTML='<div class="vnr-center" style="color:#22c55e">βœ“ File sent!</div>',setTimeout(()=>{this.dismiss(),e({file_name:f.name,file_type:f.type,file_size:f.size,media_id:y,url:b,message:`User uploaded: ${f.name}`})},400)}else{const y=new FileReader;y.onload=b=>{v.innerHTML='<div class="vnr-center" style="color:#22c55e">βœ“ File ready!</div>',setTimeout(()=>{this.dismiss(),e({file_name:f.name,file_type:f.type,file_size:f.size,data_url:b.target.result,message:`User uploaded: ${f.name}`})},400)},y.readAsDataURL(f)}}catch(y){v.innerHTML=`<div class="vnr-center" style="color:#ef4444">${(y==null?void 0:y.message)||"Upload failed. Please try again."}</div>`,m.disabled=!1}})}renderNavigate(t,e,i){var o,h;const s=String(((o=t.clientFields)==null?void 0:o.target_url)||((h=t.args)==null?void 0:h.target_url)||"/");if(console.log(`πŸš€ [WidgetPresetRenderer] Navigating to: ${s}`),s.startsWith("http://")||s.startsWith("https://"))window.open(s,"_blank","noopener,noreferrer");else{const c=window.location.href;window.dispatchEvent(new CustomEvent("vanira:navigate",{detail:{url:s}})),setTimeout(()=>{window.location.href===c&&(window.location.href=s)},150)}e({navigated_to:s,status:"success"})}}const P=class P extends ae{constructor(e){super(e);a(this,"vaniraClient",null);a(this,"currentView",null);a(this,"presetRenderer",null);a(this,"isPanelOpen",!1);a(this,"callActive",!1);a(this,"eventSource",null);a(this,"floatingButton",null);a(this,"floatingWelcomeChips",null);a(this,"panel",null);a(this,"welcomeChipsData",[]);a(this,"chatAdapter");a(this,"sessionManager",null);a(this,"sessionActive",!1);a(this,"widgetMode","voice_only");a(this,"agentId","");a(this,"prospectGroupId","");a(this,"chatServerUrl","");a(this,"prospectId","");a(this,"chatId",null);a(this,"conversationId",null);a(this,"widgetId","");a(this,"pkKey","");a(this,"chatInitialized",!1);a(this,"primaryColor","#000000");a(this,"secondaryColor","#111111");a(this,"gradient",null);a(this,"positionType","fixed");a(this,"position","bottom-right");a(this,"widgetIcon",null);a(this,"iconConfig",null);a(this,"chatWelcomeMessage",null);this.chatAdapter=new fe,this.processConfig(e)}initSessionManager(){const e=this.widgetId||this.agentId||"default";this.sessionManager=new R(e),this.sessionManager.on("tab_took_over",()=>{console.warn("[VaniraAI] Session taken over by another tab."),this.sessionActive=!1,this.showTabConflictBanner("taken_over")}),this.sessionManager.on("session_cleared",()=>{console.log("[VaniraAI] Session cleared externally.")});const i=this.sessionManager.claimSession();return this.sessionActive=i,i}restoreSessionMessages(){var c,l,d;const e=(c=this.sessionManager)==null?void 0:c.getSession();if(!e)return;const i=(d=(l=this.currentView)==null?void 0:l.getChatWindow)==null?void 0:d.call(l);if(!i)return;const s=e.messages.filter(r=>r.content.trim()!==""),n=`vanira_calls_${this.widgetId||this.agentId}`,o=JSON.parse(localStorage.getItem(n)||"[]");if(s.length===0&&o.length===0)return;i.clearMessages();const h=[...s.map((r,A)=>({type:"msg",role:r.role,content:r.content,ts:r.timestamp??A})),...o.map(r=>({type:"call",durationMs:r.durationMs,startedAt:r.startedAt,ts:r.startedAt}))];h.sort((r,A)=>r.ts-A.ts),h.forEach(r=>{r.type==="msg"?i.addMessage(r.role,r.content,r.ts):i.addCallRecord(r.durationMs,r.startedAt)}),console.log(`[VaniraAI] Restored ${s.length} messages + ${o.length} call records from session.`)}showTabConflictBanner(e){var i,s;this.root&&((i=this.root.querySelector(".vanira-tab-conflict-banner"))==null||i.remove(),e==="conflict"&&((s=this.sessionManager)==null||s.forceClaimSession(),this.sessionActive=!0,this.widgetMode.includes("chat")&&this.initializeChatSession(!1)))}playMessageSound(e){try{if(!P.audioContext){const h=window.AudioContext||window.webkitAudioContext;if(!h)return;P.audioContext=new h}const i=P.audioContext;i.state==="suspended"&&i.resume().catch(()=>{});const s=i.createOscillator(),n=i.createGain();s.connect(n),n.connect(i.destination);const o=i.currentTime;e==="send"?(s.type="sine",s.frequency.setValueAtTime(300,o),s.frequency.exponentialRampToValueAtTime(500,o+.05),n.gain.setValueAtTime(0,o),n.gain.linearRampToValueAtTime(.1,o+.01),n.gain.exponentialRampToValueAtTime(.001,o+.1),s.start(o),s.stop(o+.1)):(s.type="sine",s.frequency.setValueAtTime(500,o),s.frequency.exponentialRampToValueAtTime(800,o+.1),n.gain.setValueAtTime(0,o),n.gain.linearRampToValueAtTime(.15,o+.02),n.gain.exponentialRampToValueAtTime(.001,o+.2),s.start(o),s.stop(o+.2))}catch(i){console.warn("[VaniraAI] Audio feedback failed",i)}}handleWelcomePayload(e,i="assistant"){var o,h,c,l,d,r,A,g;if(!e||this.widgetMode==="voice_only")return;e.buttons&&Array.isArray(e.buttons)?this.welcomeChipsData=e.buttons:((o=e.widget)==null?void 0:o.type)==="button_list"&&((h=e.widget.data)!=null&&h.buttons)&&(this.welcomeChipsData=e.widget.data.buttons),this.updateWelcomeChipsVisibility();const s=(l=(c=this.currentView)==null?void 0:c.getChatWindow)==null?void 0:l.call(c);let n=e.text||e.response||e.content||e.message||"";if(!n&&!this.welcomeChipsData.length&&(n="Hey! how can I help you ?"),!n&&typeof e=="string"&&e.trim().startsWith("{"))try{const p=JSON.parse(e);n=p.text||p.response||p.content||p.message||"",((d=p.widget)==null?void 0:d.type)==="button_list"&&((r=p.widget.data)!=null&&r.buttons)&&(this.welcomeChipsData=p.widget.data.buttons)}catch{}if(console.log("[VaniraAI] Processing Welcome Payload:",{hasText:!!n,chipsCount:this.welcomeChipsData.length,hasChatWindow:!!s,mode:this.widgetMode}),s){if(!n&&this.welcomeChipsData.length===0)return;const p=(A=this.sessionManager)==null?void 0:A.getSession();(p==null?void 0:p.messages.some(m=>m.content===n&&m.role===i))||(n&&(s.addMessage(i,n),(g=this.sessionManager)==null||g.pushMessage(i,n)),this.welcomeChipsData.length>0&&s.addButtons(this.welcomeChipsData))}}async initializeChatSession(e=!1){var i,s,n,o,h,c;if(this.sessionActive&&!this.chatInitialized){this.chatInitialized=!0;try{Q.setChatUrl(this.chatServerUrl);const l=(i=this.sessionManager)==null?void 0:i.getSession();if(!e&&(l!=null&&l.prospectId)){this.prospectId=l.prospectId,this.chatId=l.chatId,this.conversationId=l.conversationId||null,console.log(`[VaniraAI] Session restored β€” tab: ${(s=this.sessionManager)==null?void 0:s.getTabId()}, prospect: ${this.prospectId}`),this.restoreSessionMessages(),this.chatId&&!this.eventSource&&(this.eventSource=Q.listenForAdminReplies(this.chatId,this.prospectId,r=>{var A,g,p;(g=(A=this.currentView)==null?void 0:A.getChatWindow)==null||g.call(A).addMessage("assistant",r),(p=this.sessionManager)==null||p.pushMessage("assistant",r),this.playMessageSound("receive")}));return}this.prospectId||(this.prospectGroupId?this.prospectId=await Q.createChatProspect(this.prospectGroupId):this.prospectId=`anon_${Date.now()}_${Math.random().toString(36).substr(2,9)}`);const d=await Q.fetchWelcomeMessage(this.agentId,this.prospectId,this.widgetId||void 0,this.pkKey||void 0);d&&(this.handleWelcomePayload(d),d.chatId&&!this.chatId&&(this.chatId=d.chatId,this.eventSource||(this.eventSource=Q.listenForAdminReplies(this.chatId,this.prospectId,r=>{var A,g,p;(g=(A=this.currentView)==null?void 0:A.getChatWindow)==null||g.call(A).addMessage("assistant",r),(p=this.sessionManager)==null||p.pushMessage("assistant",r),this.playMessageSound("receive")}))),d.conversationId&&(this.conversationId=d.conversationId)),(n=this.sessionManager)==null||n.saveIds(this.prospectId,this.chatId,this.conversationId)}catch(l){console.error("[VaniraAI] Chat init failed",l);const d="Hey! how can I help you ?";(h=(o=this.currentView)==null?void 0:o.getChatWindow)==null||h.call(o).addMessage("assistant",d),(c=this.sessionManager)==null||c.pushMessage("assistant",d)}}}async initialize(e){await super.initialize(e),this.processConfig(e),this.root&&this.ui_renderer(this.root)}processConfig(e){var i,s;if(this.widgetId=e.widgetId||e.widget_id||this.widgetId||"",this.agentId=e.agentId||e.agent_id||this.agentId||"",this.prospectGroupId=e.prospectGroupId||((i=e.client)==null?void 0:i.base_prospect_group_id)||this.prospectGroupId||"",this.widgetMode=e.widgetMode||e.mode||this.widgetMode||"voice_only",this.pkKey=e.pkKey||e.pk_key||e.publicKey||e.public_key||this.pkKey||"",this.primaryColor=e.primaryColor||e.primary_color||"#000000",this.secondaryColor=e.secondaryColor||e.secondary_color||"#111111",this.gradient=e.gradient||null,this.position=e.position||"bottom-right",this.positionType=e.positionType||"fixed",this.widgetIcon=e.widgetIcon||e.icon||null,this.iconConfig=e.iconConfig||e.icon_config||null,this.chatWelcomeMessage=e.chatWelcomeMessage||e.chat_welcome_message||((s=e.agent)==null?void 0:s.chat_welcome_message)||null,console.log("[VaniraAI] processConfig:",{hasPrimary:!!this.primaryColor,hasSecondary:!!this.secondaryColor,hasWelcome:!!this.chatWelcomeMessage}),typeof this.chatWelcomeMessage=="string")try{this.chatWelcomeMessage=JSON.parse(this.chatWelcomeMessage)}catch(n){console.warn("[VaniraAI] Failed to parse chatWelcomeMessage string",n)}this.chatServerUrl=e.serverUrl||e.chatServerUrl||"https://inboxapi.travelr.club",this.updateWelcomeChipsVisibility()}async create_call(e="continue"){var i,s,n;if(!(this.callActive||!this.agentId)){this.sessionActive||((i=this.sessionManager)==null||i.forceClaimSession(),this.sessionActive=!0);try{this.callActive=!0,this.updateViewCallState(!0),this.updateViewStatus("connecting");const o=((s=this.config)==null?void 0:s.serverUrl)||((n=this.config)==null?void 0:n.chatServerUrl),h=o&&!o.includes("travelr.club")?o:"https://api.vanira.io",c=new V({agentId:this.agentId,apiKey:this.pkKey||void 0,sessionBehavior:e,prospectId:this.prospectId||void 0,backendUrl:h});c.on("session_started",({prospectId:l})=>{var d;l&&(this.prospectId=l,(d=this.sessionManager)==null||d.saveIds(l,this.chatId))}),c.on("connected",()=>this.updateViewStatus("connected")).on("disconnected",()=>this.end_call()).on("error",l=>{console.error("[VaniraAI Widget] Call error:",l),this.updateViewStatus("error",l)}).on("transcription",({text:l,isFinal:d})=>{var r,A;(A=(r=this.currentView)==null?void 0:r.setTranscription)==null||A.call(r,l,d)}).on("track",({track:l})=>{var d;this.widgetMode.includes("avatar")&&l.kind==="video"&&((d=this.currentView)!=null&&d.setVideoTrack)&&this.currentView.setVideoTrack(l)}).on("tool_call",l=>{var A,g,p;if(console.log("[VaniraAI Widget] Tool call received:",l.name,l.arguments),(A=this.presetRenderer)==null?void 0:A.handle(l,v=>{var w;const m=((w=l.client_fields)==null?void 0:w.action_name)||`user_submitted_${l.name}`;c.triggerInterrupt(m,v)},v=>{const m=l.tool_call_id;try{c.sendToolResult(m,{status:"cancelled",reason:"User dismissed"})}catch{}},c))return;const r=new CustomEvent("vaniraai:tool_call",{detail:l,bubbles:!0,composed:!0});(p=(g=this.root)==null?void 0:g.host)==null||p.dispatchEvent(r)}),this.vaniraClient=c,await c.start()}catch(o){console.error("[VaniraAI Widget] Call failed",o),this.updateViewStatus("error",(o==null?void 0:o.message)||String(o))}}}end_call(){var i;this.callActive=!1;const e=this.vaniraClient;this.vaniraClient=null,e&&e.stop(),(i=this.presetRenderer)==null||i.dismiss(),this.updateViewCallState(!1)}updateViewCallState(e){var i;(i=this.currentView)!=null&&i.setCallActive&&this.currentView.setCallActive(e)}updateViewStatus(e,i){var s;(s=this.currentView)!=null&&s.setStatus&&this.currentView.setStatus(e,i)}ui_renderer(e){var l,d,r;this.root=e,this.root.innerHTML="",this.presetRenderer=new ve(e),this.root.host&&(this.positionType==="fixed"?this.root.host.classList.add("vanira-portal"):this.root.host.classList.remove("vanira-portal"));const i=document.createElement("style");i.textContent=`@keyframes vanira-slide-up {
1452
+ `,p.querySelector("#vnr-remove-file").addEventListener("click",()=>{r=null,p.style.display="none",A.style.display="block",m.disabled=!0}),m.disabled=!1};A.addEventListener("click",()=>g.click()),A.addEventListener("dragover",f=>{f.preventDefault(),A.classList.add("drag")}),A.addEventListener("dragleave",()=>A.classList.remove("drag")),A.addEventListener("drop",f=>{var y;f.preventDefault(),A.classList.remove("drag");const b=(y=f.dataTransfer)==null?void 0:y.files[0];b&&w(b)}),g.addEventListener("change",()=>{var b;const f=(b=g.files)==null?void 0:b[0];f&&w(f)}),m.addEventListener("click",async()=>{if(!r)return;const f=r;A.style.display="none",p.style.display="none",x.style.display="block",x.innerHTML='<div class="vnr-center"><div class="vnr-spinner" style="margin:0 auto 8px"></div>Uploading…</div>',m.disabled=!0;try{if(s&&typeof s.uploadMedia=="function"){const{media_id:b,url:y}=await s.uploadMedia(f,d,`User uploaded: ${f.name}`);x.innerHTML='<div class="vnr-center" style="color:#22c55e">βœ“ File sent!</div>',setTimeout(()=>{this.dismiss(),e({file_name:f.name,file_type:f.type,file_size:f.size,media_id:b,url:y,message:`User uploaded: ${f.name}`})},400)}else{const b=new FileReader;b.onload=y=>{x.innerHTML='<div class="vnr-center" style="color:#22c55e">βœ“ File ready!</div>',setTimeout(()=>{this.dismiss(),e({file_name:f.name,file_type:f.type,file_size:f.size,data_url:y.target.result,message:`User uploaded: ${f.name}`})},400)},b.readAsDataURL(f)}}catch(b){x.innerHTML=`<div class="vnr-center" style="color:#ef4444">${(b==null?void 0:b.message)||"Upload failed. Please try again."}</div>`,m.disabled=!1}})}renderNavigate(t,e,i){var o,d;const s=String(((o=t.clientFields)==null?void 0:o.target_url)||((d=t.args)==null?void 0:d.target_url)||"/");if(console.log(`πŸš€ [WidgetPresetRenderer] Navigating to: ${s}`),s.startsWith("http://")||s.startsWith("https://"))window.open(s,"_blank","noopener,noreferrer");else{const l=window.location.href;window.dispatchEvent(new CustomEvent("vanira:navigate",{detail:{url:s}})),setTimeout(()=>{window.location.href===l&&(window.location.href=s)},150)}e({navigated_to:s,status:"success"})}renderHighlight(t,e,i){const s=t.args||{},n=t.clientFields||{},o=String(s.css_selector||n.css_selector||s.selector||n.selector||""),d=String(s.highlight_color||n.highlight_color||"#a855f7"),l=Number(s.duration_ms||n.duration_ms||3e3);if(console.log("πŸ”¦ [WidgetPresetRenderer] renderHighlight triggered"),console.log(` β†’ selector: "${o}"`),console.log(` β†’ color: "${d}"`),console.log(` β†’ duration: ${l}ms`),!o){console.warn("⚠️ [WidgetPresetRenderer] No css_selector provided for highlight"),i("No css_selector provided for highlight");return}const r=document.querySelector(o);if(console.log(`πŸ”¦ [WidgetPresetRenderer] querySelector("${o}") β†’`,r),!r){console.warn(`⚠️ [WidgetPresetRenderer] Element not found for selector: "${o}"`),i(`Element not found for selector: "${o}"`);return}const h=r.style.outline,c=r.style.outlineOffset,A=r.style.boxShadow,g=r.style.transition,p=r.style.scrollMarginTop;r.style.transition="outline 0.2s ease, box-shadow 0.2s ease",r.style.outline=`3px solid ${d}`,r.style.outlineOffset="6px",r.style.boxShadow=`0 0 0 8px ${d}33, 0 0 32px ${d}88`,r.style.scrollMarginTop="100px",console.log("βœ… [WidgetPresetRenderer] Highlight applied to:",r),r.scrollIntoView({behavior:"smooth",block:"center"}),setTimeout(()=>{r.style.outline=h,r.style.outlineOffset=c,r.style.boxShadow=A,r.style.transition=g,r.style.scrollMarginTop=p,console.log(`πŸ”¦ [WidgetPresetRenderer] Highlight removed from: "${o}"`)},l),e({status:"success",message:`Element highlighted: ${o}`})}renderTypeText(t,e,i){const s=t.args||{},n=t.clientFields||{},o=String(s.element_id||n.element_id||s.css_selector||n.css_selector||s.selector||n.selector||"").trim(),d=String(s.text_to_type||n.text_to_type||""),l=Number(s.delay_ms!==void 0?s.delay_ms:n.delay_ms!==void 0?n.delay_ms:50);console.log("✍️ [WidgetPresetRenderer] renderTypeText triggered"),console.log(` β†’ idOrSelector: "${o}"`),console.log(` β†’ text_to_type: "${d}"`),console.log(` β†’ delayMs: ${l}ms`);let r=null;if(o){try{r=document.querySelector(o)}catch{}r||(r=document.getElementById(o))}const h=()=>{console.log("ℹ️ [WidgetPresetRenderer] Target element not found or selector not provided. Displaying fallback popup.");const m="Text Input Simulation",w=o?`Target element "${o}" not found on the page. Typing is simulated below:`:"No target input ID/selector was provided. Typing is simulated below:",f=this.createOverlay(),b=this.createModal(f,m,w),y=document.createElement("div");y.style.marginTop="14px",y.style.display="flex",y.style.flexDirection="column",y.style.gap="12px";const v=document.createElement("textarea");v.style.width="100%",v.style.height="120px",v.style.background="#f9fafb",v.style.border="1px solid #e5e7eb",v.style.borderRadius="10px",v.style.padding="12px",v.style.fontSize="14px",v.style.color="#111",v.style.outline="none",v.style.resize="none",v.style.boxSizing="border-box",v.placeholder="Simulating typing...",y.appendChild(v);const C=document.createElement("button");C.style.width="100%",C.style.padding="10px 16px",C.style.background="#111",C.style.color="#fff",C.style.border="none",C.style.borderRadius="10px",C.style.fontSize="14px",C.style.fontWeight="600",C.style.cursor="pointer",C.style.transition="background 0.2s",C.textContent="Submit",y.appendChild(C),b.appendChild(y);const P=b.querySelector(".vnr-close-btn");if(P&&(P.onclick=()=>{this.dismiss(),i("User dismissed typing popup")}),C.onclick=()=>{const Q=v.value;this.dismiss(),e({status:"success",text:Q,message:"Text submitted via popup simulation"})},v.focus(),l<=0)v.value=d;else{let Q="",M=0;const k=()=>{this.overlay&&M<d.length&&(Q+=d[M],v.value=Q,M++,setTimeout(k,l))};k()}};if(!r){h();return}if(r.focus(),!(r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement||"value"in r)){console.log("ℹ️ [WidgetPresetRenderer] Target is not a form input. Setting textContent directly."),r.textContent=d,e({status:"success",message:`Text set on element: ${o}`});return}const A=r;if(l<=0){A.value=d,A.dispatchEvent(new Event("input",{bubbles:!0})),A.dispatchEvent(new Event("change",{bubbles:!0})),e({status:"success",message:`Text entered instantly in: ${o}`});return}let g="",p=0;const x=()=>{p<d.length?(g+=d[p],A.value=g,A.dispatchEvent(new Event("input",{bubbles:!0})),p++,setTimeout(x,l)):(A.dispatchEvent(new Event("change",{bubbles:!0})),e({status:"success",message:`Text typed completely in: ${o}`}))};x()}}const Y=class Y extends re{constructor(e){super(e);a(this,"vaniraClient",null);a(this,"currentView",null);a(this,"presetRenderer",null);a(this,"isPanelOpen",!1);a(this,"callActive",!1);a(this,"eventSource",null);a(this,"floatingButton",null);a(this,"floatingWelcomeChips",null);a(this,"panel",null);a(this,"welcomeChipsData",[]);a(this,"chatAdapter");a(this,"sessionManager",null);a(this,"sessionActive",!1);a(this,"widgetMode","voice_only");a(this,"agentId","");a(this,"prospectGroupId","");a(this,"chatServerUrl","");a(this,"prospectId","");a(this,"chatId",null);a(this,"conversationId",null);a(this,"widgetId","");a(this,"pkKey","");a(this,"chatInitialized",!1);a(this,"primaryColor","#000000");a(this,"secondaryColor","#111111");a(this,"gradient",null);a(this,"positionType","fixed");a(this,"position","bottom-right");a(this,"widgetIcon",null);a(this,"iconConfig",null);a(this,"chatWelcomeMessage",null);this.chatAdapter=new fe,this.processConfig(e)}initSessionManager(){const e=this.widgetId||this.agentId||"default";this.sessionManager=new R(e),this.sessionManager.on("tab_took_over",()=>{console.warn("[VaniraAI] Session taken over by another tab."),this.sessionActive=!1,this.showTabConflictBanner("taken_over")}),this.sessionManager.on("session_cleared",()=>{console.log("[VaniraAI] Session cleared externally.")});const i=this.sessionManager.claimSession();return this.sessionActive=i,i}restoreSessionMessages(){var l,r,h;const e=(l=this.sessionManager)==null?void 0:l.getSession();if(!e)return;const i=(h=(r=this.currentView)==null?void 0:r.getChatWindow)==null?void 0:h.call(r);if(!i)return;const s=e.messages.filter(c=>c.content.trim()!==""),n=`vanira_calls_${this.widgetId||this.agentId}`,o=JSON.parse(localStorage.getItem(n)||"[]");if(s.length===0&&o.length===0)return;i.clearMessages();const d=[...s.map((c,A)=>({type:"msg",role:c.role,content:c.content,ts:c.timestamp??A})),...o.map(c=>({type:"call",durationMs:c.durationMs,startedAt:c.startedAt,ts:c.startedAt}))];d.sort((c,A)=>c.ts-A.ts),d.forEach(c=>{c.type==="msg"?i.addMessage(c.role,c.content,c.ts):i.addCallRecord(c.durationMs,c.startedAt)}),console.log(`[VaniraAI] Restored ${s.length} messages + ${o.length} call records from session.`)}showTabConflictBanner(e){var i,s;this.root&&((i=this.root.querySelector(".vanira-tab-conflict-banner"))==null||i.remove(),e==="conflict"&&((s=this.sessionManager)==null||s.forceClaimSession(),this.sessionActive=!0,this.widgetMode.includes("chat")&&this.initializeChatSession(!1)))}playMessageSound(e){try{if(!Y.audioContext){const d=window.AudioContext||window.webkitAudioContext;if(!d)return;Y.audioContext=new d}const i=Y.audioContext;i.state==="suspended"&&i.resume().catch(()=>{});const s=i.createOscillator(),n=i.createGain();s.connect(n),n.connect(i.destination);const o=i.currentTime;e==="send"?(s.type="sine",s.frequency.setValueAtTime(300,o),s.frequency.exponentialRampToValueAtTime(500,o+.05),n.gain.setValueAtTime(0,o),n.gain.linearRampToValueAtTime(.1,o+.01),n.gain.exponentialRampToValueAtTime(.001,o+.1),s.start(o),s.stop(o+.1)):(s.type="sine",s.frequency.setValueAtTime(500,o),s.frequency.exponentialRampToValueAtTime(800,o+.1),n.gain.setValueAtTime(0,o),n.gain.linearRampToValueAtTime(.15,o+.02),n.gain.exponentialRampToValueAtTime(.001,o+.2),s.start(o),s.stop(o+.2))}catch(i){console.warn("[VaniraAI] Audio feedback failed",i)}}handleWelcomePayload(e,i="assistant"){var o,d,l,r,h,c,A,g;if(!e||this.widgetMode==="voice_only")return;e.buttons&&Array.isArray(e.buttons)?this.welcomeChipsData=e.buttons:((o=e.widget)==null?void 0:o.type)==="button_list"&&((d=e.widget.data)!=null&&d.buttons)&&(this.welcomeChipsData=e.widget.data.buttons),this.updateWelcomeChipsVisibility();const s=(r=(l=this.currentView)==null?void 0:l.getChatWindow)==null?void 0:r.call(l);let n=e.text||e.response||e.content||e.message||"";if(!n&&!this.welcomeChipsData.length&&(n="Hey! how can I help you ?"),!n&&typeof e=="string"&&e.trim().startsWith("{"))try{const p=JSON.parse(e);n=p.text||p.response||p.content||p.message||"",((h=p.widget)==null?void 0:h.type)==="button_list"&&((c=p.widget.data)!=null&&c.buttons)&&(this.welcomeChipsData=p.widget.data.buttons)}catch{}if(console.log("[VaniraAI] Processing Welcome Payload:",{hasText:!!n,chipsCount:this.welcomeChipsData.length,hasChatWindow:!!s,mode:this.widgetMode}),s){if(!n&&this.welcomeChipsData.length===0)return;const p=(A=this.sessionManager)==null?void 0:A.getSession();(p==null?void 0:p.messages.some(m=>m.content===n&&m.role===i))||(n&&(s.addMessage(i,n),(g=this.sessionManager)==null||g.pushMessage(i,n)),this.welcomeChipsData.length>0&&s.addButtons(this.welcomeChipsData))}}async initializeChatSession(e=!1){var i,s,n,o,d,l;if(this.sessionActive&&!this.chatInitialized){this.chatInitialized=!0;try{T.setChatUrl(this.chatServerUrl);const r=(i=this.sessionManager)==null?void 0:i.getSession();if(!e&&(r!=null&&r.prospectId)){this.prospectId=r.prospectId,this.chatId=r.chatId,this.conversationId=r.conversationId||null,console.log(`[VaniraAI] Session restored β€” tab: ${(s=this.sessionManager)==null?void 0:s.getTabId()}, prospect: ${this.prospectId}`),this.restoreSessionMessages(),this.chatId&&!this.eventSource&&(this.eventSource=T.listenForAdminReplies(this.chatId,this.prospectId,c=>{var A,g,p;(g=(A=this.currentView)==null?void 0:A.getChatWindow)==null||g.call(A).addMessage("assistant",c),(p=this.sessionManager)==null||p.pushMessage("assistant",c),this.playMessageSound("receive")}));return}this.prospectId||(this.prospectGroupId?this.prospectId=await T.createChatProspect(this.prospectGroupId):this.prospectId=`anon_${Date.now()}_${Math.random().toString(36).substr(2,9)}`);const h=await T.fetchWelcomeMessage(this.agentId,this.prospectId,this.widgetId||void 0,this.pkKey||void 0);h&&(this.handleWelcomePayload(h),h.chatId&&!this.chatId&&(this.chatId=h.chatId,this.eventSource||(this.eventSource=T.listenForAdminReplies(this.chatId,this.prospectId,c=>{var A,g,p;(g=(A=this.currentView)==null?void 0:A.getChatWindow)==null||g.call(A).addMessage("assistant",c),(p=this.sessionManager)==null||p.pushMessage("assistant",c),this.playMessageSound("receive")}))),h.conversationId&&(this.conversationId=h.conversationId)),(n=this.sessionManager)==null||n.saveIds(this.prospectId,this.chatId,this.conversationId)}catch(r){console.error("[VaniraAI] Chat init failed",r);const h="Hey! how can I help you ?";(d=(o=this.currentView)==null?void 0:o.getChatWindow)==null||d.call(o).addMessage("assistant",h),(l=this.sessionManager)==null||l.pushMessage("assistant",h)}}}async initialize(e){await super.initialize(e),this.processConfig(e),this.root&&this.ui_renderer(this.root)}processConfig(e){var i,s;if(this.widgetId=e.widgetId||e.widget_id||this.widgetId||"",this.agentId=e.agentId||e.agent_id||this.agentId||"",this.prospectGroupId=e.prospectGroupId||((i=e.client)==null?void 0:i.base_prospect_group_id)||this.prospectGroupId||"",this.widgetMode=e.widgetMode||e.mode||this.widgetMode||"voice_only",this.pkKey=e.pkKey||e.pk_key||e.publicKey||e.public_key||this.pkKey||"",this.primaryColor=e.primaryColor||e.primary_color||"#000000",this.secondaryColor=e.secondaryColor||e.secondary_color||"#111111",this.gradient=e.gradient||null,this.position=e.position||"bottom-right",this.positionType=e.positionType||"fixed",this.widgetIcon=e.widgetIcon||e.icon||null,this.iconConfig=e.iconConfig||e.icon_config||null,this.chatWelcomeMessage=e.chatWelcomeMessage||e.chat_welcome_message||((s=e.agent)==null?void 0:s.chat_welcome_message)||null,console.log("[VaniraAI] processConfig:",{hasPrimary:!!this.primaryColor,hasSecondary:!!this.secondaryColor,hasWelcome:!!this.chatWelcomeMessage}),typeof this.chatWelcomeMessage=="string")try{this.chatWelcomeMessage=JSON.parse(this.chatWelcomeMessage)}catch(n){console.warn("[VaniraAI] Failed to parse chatWelcomeMessage string",n)}this.chatServerUrl=e.serverUrl||e.chatServerUrl||"https://inboxapi.travelr.club",this.updateWelcomeChipsVisibility()}async create_call(e="continue"){var i,s,n;if(!(this.callActive||!this.agentId)){this.sessionActive||((i=this.sessionManager)==null||i.forceClaimSession(),this.sessionActive=!0);try{this.callActive=!0,this.updateViewCallState(!0),this.updateViewStatus("connecting");const o=((s=this.config)==null?void 0:s.serverUrl)||((n=this.config)==null?void 0:n.chatServerUrl),d=o&&!o.includes("travelr.club")?o:"https://api.vanira.io",l=new O({agentId:this.agentId,apiKey:this.pkKey||void 0,sessionBehavior:e,prospectId:this.prospectId||void 0,backendUrl:d});l.on("session_started",({prospectId:r})=>{var h;r&&(this.prospectId=r,(h=this.sessionManager)==null||h.saveIds(r,this.chatId))}),l.on("connected",()=>this.updateViewStatus("connected")).on("disconnected",()=>this.end_call()).on("error",r=>{console.error("[VaniraAI Widget] Call error:",r),this.updateViewStatus("error",r)}).on("transcription",({text:r,isFinal:h})=>{var c,A;(A=(c=this.currentView)==null?void 0:c.setTranscription)==null||A.call(c,r,h)}).on("track",({track:r})=>{var h;this.widgetMode.includes("avatar")&&r.kind==="video"&&((h=this.currentView)!=null&&h.setVideoTrack)&&this.currentView.setVideoTrack(r)}).on("tool_call",r=>{var A,g,p;if(console.log("[VaniraAI Widget] Tool call received:",r.name,r.arguments),(A=this.presetRenderer)==null?void 0:A.handle(r,x=>{var y,v;const m=r.arguments||r.args||{};let w=m;if(typeof m=="string")try{w=JSON.parse(m)}catch{}const f=((y=r.client_fields)==null?void 0:y.preset_id)||(w==null?void 0:w.preset_id),b=((v=r.client_fields)==null?void 0:v.action_name)||(f==="vanira_calendar"?"calendar_slot_selected":`user_submitted_${r.name}`);l.triggerInterrupt(b,x)},x=>{const m=r.tool_call_id;try{l.sendToolResult(m,{status:"cancelled",reason:"User dismissed"})}catch{}},l))return;const c=new CustomEvent("vaniraai:tool_call",{detail:r,bubbles:!0,composed:!0});(p=(g=this.root)==null?void 0:g.host)==null||p.dispatchEvent(c)}),this.vaniraClient=l,await l.start()}catch(o){console.error("[VaniraAI Widget] Call failed",o),this.updateViewStatus("error",(o==null?void 0:o.message)||String(o))}}}end_call(){var i;this.callActive=!1;const e=this.vaniraClient;this.vaniraClient=null,e&&e.stop(),(i=this.presetRenderer)==null||i.dismiss(),this.updateViewCallState(!1)}updateViewCallState(e){var i;(i=this.currentView)!=null&&i.setCallActive&&this.currentView.setCallActive(e)}updateViewStatus(e,i){var s;(s=this.currentView)!=null&&s.setStatus&&this.currentView.setStatus(e,i)}ui_renderer(e){var r,h,c;this.root=e,this.root.innerHTML="",this.presetRenderer=new ve(e),this.root.host&&(this.positionType==="fixed"?this.root.host.classList.add("vanira-portal"):this.root.host.classList.remove("vanira-portal"));const i=document.createElement("style");i.textContent=`@keyframes vanira-slide-up {
1453
1453
  from { opacity:0; transform:translateY(16px); }
1454
1454
  to { opacity:1; transform:translateY(0); }
1455
1455
  }`,this.root.appendChild(i);const s=document.createElement("style");s.textContent=`
@@ -1521,12 +1521,12 @@ overflow: hidden;
1521
1521
  height: 12px;
1522
1522
  fill: currentColor;
1523
1523
  }
1524
- `,this.root.appendChild(s);const n=`vanira_pos_${this.widgetId||this.agentId}`,o=localStorage.getItem(n);let h=null;if(o)try{h=JSON.parse(o)}catch{}if(this.floatingButton=new K(()=>this.togglePanel(),(A,g)=>{var p,v;(p=this.floatingWelcomeChips)==null||p.updateCoordinates(A,g,g>window.innerHeight/2),this.isPanelOpen&&((v=this.panel)==null||v.updatePosition({left:`${Math.max(20,Math.min(A-170,window.innerWidth-420))}px`,top:g>window.innerHeight/2?"auto":`${g+80}px`,bottom:g>window.innerHeight/2?`${window.innerHeight-g+20}px`:"auto"}))},(A,g)=>{localStorage.setItem(n,JSON.stringify({x:A,y:g}))}),this.floatingButton.setIcon(this.getFabIcon()),h?this.floatingButton.updateCoordinates(h.x,h.y):this.floatingButton.setPosition(this.getPosStyle()),this.floatingWelcomeChips=new $(A=>this.handleFloatingChipClick(A)),h?this.floatingWelcomeChips.updateCoordinates(h.x,h.y,h.y>window.innerHeight/2):this.floatingWelcomeChips.setPosition(this.getPosStyle()),this.panel=new q(()=>this.closePanel(),this.getPanelTitle()),this.root.appendChild(this.floatingWelcomeChips.getElement()),this.widgetIcon==="clean_assistant"){const A=((l=this.iconConfig)==null?void 0:l.logo_text)||"vanira",g=((d=this.iconConfig)==null?void 0:d.title)||"Vanira Voice AI Assistant",p=((r=this.iconConfig)==null?void 0:r.button_text)||"Begin Call",v=typeof window<"u"&&(window.sessionStorage.getItem("vanira_prospect_id")||window.localStorage.getItem("vanira_prospect_id"))&&(window.sessionStorage.getItem("vanira_latest_call_id")||window.localStorage.getItem("vanira_latest_call_id"));let m="continue";const w=document.createElement("div");w.className="clean-card-launcher",w.innerHTML=`
1524
+ `,this.root.appendChild(s);const n=`vanira_pos_${this.widgetId||this.agentId}`,o=localStorage.getItem(n);let d=null;if(o)try{d=JSON.parse(o)}catch{}if(this.floatingButton=new K(()=>this.togglePanel(),(A,g)=>{var p,x;(p=this.floatingWelcomeChips)==null||p.updateCoordinates(A,g,g>window.innerHeight/2),this.isPanelOpen&&((x=this.panel)==null||x.updatePosition({left:`${Math.max(20,Math.min(A-170,window.innerWidth-420))}px`,top:g>window.innerHeight/2?"auto":`${g+80}px`,bottom:g>window.innerHeight/2?`${window.innerHeight-g+20}px`:"auto"}))},(A,g)=>{localStorage.setItem(n,JSON.stringify({x:A,y:g}))}),this.floatingButton.setIcon(this.getFabIcon()),d?this.floatingButton.updateCoordinates(d.x,d.y):this.floatingButton.setPosition(this.getPosStyle()),this.floatingWelcomeChips=new $(A=>this.handleFloatingChipClick(A)),d?this.floatingWelcomeChips.updateCoordinates(d.x,d.y,d.y>window.innerHeight/2):this.floatingWelcomeChips.setPosition(this.getPosStyle()),this.panel=new q(()=>this.closePanel(),this.getPanelTitle()),this.root.appendChild(this.floatingWelcomeChips.getElement()),this.widgetIcon==="clean_assistant"){const A=((r=this.iconConfig)==null?void 0:r.logo_text)||"vanira",g=((h=this.iconConfig)==null?void 0:h.title)||"Vanira Voice AI Assistant",p=((c=this.iconConfig)==null?void 0:c.button_text)||"Begin Call",x=typeof window<"u"&&(window.sessionStorage.getItem("vanira_prospect_id")||window.localStorage.getItem("vanira_prospect_id"))&&(window.sessionStorage.getItem("vanira_latest_call_id")||window.localStorage.getItem("vanira_latest_call_id"));let m="continue";const w=document.createElement("div");w.className="clean-card-launcher",w.innerHTML=`
1525
1525
  <div>
1526
1526
  <div class="clean-card-logo">${A}</div>
1527
1527
  <div class="clean-card-title">${g}</div>
1528
1528
  </div>
1529
- ${v?`
1529
+ ${x?`
1530
1530
  <div class="session-selector-container">
1531
1531
  <div class="session-option active" data-behavior="continue">
1532
1532
  <span class="session-title">Resume</span>
@@ -1542,5 +1542,5 @@ overflow: hidden;
1542
1542
  </svg>
1543
1543
  ${p}
1544
1544
  </button>
1545
- `;const f=w.querySelectorAll(".session-option");f.forEach(x=>{x.addEventListener("click",E=>{E.stopPropagation(),f.forEach(Y=>Y.classList.remove("active")),x.classList.add("active"),m=x.getAttribute("data-behavior")})});const y=x=>{x.stopPropagation(),w.style.display="none",this.openPanel(),this.create_call(m)};w.addEventListener("click",y);const b=w.querySelector(".clean-card-btn");b==null||b.addEventListener("click",x=>{x.stopPropagation(),y(x)}),this.root.appendChild(w)}else this.root.appendChild(this.floatingButton.getElement());this.root.appendChild(this.panel.getElement()),this.setupPanelContent(),this.chatWelcomeMessage&&!this.widgetMode.includes("chat")&&this.handleWelcomePayload(this.chatWelcomeMessage),this.initSessionManager()?this.widgetMode.includes("chat")&&this.initializeChatSession():this.showTabConflictBanner("conflict")}getFabIcon(){return this.widgetIcon&&H[this.widgetIcon]?H[this.widgetIcon]:this.widgetMode.includes("chat")?C.chat:C.voice_orb}getPanelTitle(){return"Assistant"}getPosStyle(){const e={"bottom-right":"bottom: 24px; right: 24px;","bottom-left":"bottom: 24px; left: 24px;","top-right":"top: 24px; right: 24px;","top-left":"top: 24px; left: 24px;"};return e[this.position]||e["bottom-right"]}setupPanelContent(){var i,s;const e=(n,o)=>{var d,r;const h=(r=(d=this.currentView)==null?void 0:d.getChatWindow)==null?void 0:r.call(d);h&&h.addCallRecord(n,o);const c=`vanira_calls_${this.widgetId||this.agentId}`,l=JSON.parse(localStorage.getItem(c)||"[]");l.push({durationMs:n,startedAt:o}),l.length>50&&l.splice(0,l.length-50),localStorage.setItem(c,JSON.stringify(l))};switch(this.widgetMode){case"chat_only":this.currentView=new pe(n=>this.handleChatSend(n));break;case"chat_voice":this.currentView=new ge(n=>this.handleChatSend(n),()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"avatar_only":this.currentView=new ue(()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"chat_avatar":this.currentView=new me(n=>this.handleChatSend(n),()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"voice_only":default:this.currentView=new Ae(n=>this.create_call(n),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break}if(this.currentView&&this.panel){this.panel.setContent(this.currentView.getElement());const n=(s=(i=this.currentView).getChatWindow)==null?void 0:s.call(i);n&&n.setResolveCallback(()=>this.resolveActiveConversation())}}async handleChatSend(e){var s,n,o,h,c;if(!e)return;this.sessionActive||((s=this.sessionManager)==null||s.forceClaimSession(),this.sessionActive=!0,this.widgetMode.includes("chat")&&await this.initializeChatSession(!1));const i=(o=(n=this.currentView)==null?void 0:n.getChatWindow)==null?void 0:o.call(n);if(i){this.chatId&&!this.eventSource&&(this.eventSource=Q.listenForAdminReplies(this.chatId,this.prospectId,l=>{var d,r,A;(r=(d=this.currentView)==null?void 0:d.getChatWindow)==null||r.call(d).addMessage("assistant",l),(A=this.sessionManager)==null||A.pushMessage("assistant",l),this.playMessageSound("receive")})),i.addMessage("user",e),(h=this.sessionManager)==null||h.pushMessage("user",e),i.setTyping(!0),(c=this.sessionManager)==null||c.pushMessage("assistant","");try{let l=!1;await this.chatAdapter.sendMessage(e,this.agentId,this.prospectId,this.chatId,d=>{var r;l||(this.playMessageSound("receive"),l=!0),i.setTyping(!1),(d==null?void 0:d.type)==="button_list"&&((r=d.data)!=null&&r.buttons)&&(i.addButtons(d.data.buttons),this.welcomeChipsData=d.data.buttons,this.updateWelcomeChipsVisibility())},d=>{var r;l||(this.playMessageSound("receive"),l=!0),i.setTyping(!1),i.updateLastAssistantMessage(d),(r=this.sessionManager)==null||r.updateLastAssistantMessage(d)},(d,r)=>{var A;d&&(this.chatId=d),r&&(this.conversationId=r),(d||r)&&((A=this.sessionManager)==null||A.saveIds(this.prospectId,this.chatId,this.conversationId))},this.widgetId||void 0,this.pkKey||void 0)}catch(l){i.setTyping(!1),console.error("[VaniraAI] Send message failed",l),i.addMessage("assistant","Error sending message.")}}}togglePanel(){this.isPanelOpen?this.closePanel():this.openPanel()}openPanel(){var s,n,o,h;this.isPanelOpen=!0,this.updateWelcomeChipsVisibility();const e=(s=this.floatingButton)==null?void 0:s.getElement().getBoundingClientRect();if(e&&e.width>0){const c=e.top>window.innerHeight/2;(n=this.panel)==null||n.open({left:`${Math.max(20,Math.min(e.left-170,window.innerWidth-420))}px`,bottom:c?`${window.innerHeight-e.top+20}px`:void 0,top:c?void 0:`${e.top+80}px`})}else(o=this.panel)==null||o.open({bottom:"90px",right:"20px",left:"auto",top:"auto"});(h=this.root)!=null&&h.host&&this.root.host.classList.add("vanira-panel-open")}closePanel(){var e,i;this.isPanelOpen=!1,this.updateWelcomeChipsVisibility(),(e=this.panel)==null||e.close(),(i=this.root)!=null&&i.host&&this.root.host.classList.remove("vanira-panel-open")}updateWelcomeChipsVisibility(){if(!this.floatingWelcomeChips)return;const e=!this.isPanelOpen&&this.welcomeChipsData.length>0;console.log("[VaniraAI] updateWelcomeChipsVisibility:",{visible:e,isPanelOpen:this.isPanelOpen,chipsCount:this.welcomeChipsData.length}),e?(this.floatingWelcomeChips.setChips(this.welcomeChipsData),this.floatingWelcomeChips.getElement().style.display="flex"):this.floatingWelcomeChips.getElement().style.display="none"}handleFloatingChipClick(e){this.openPanel(),this.handleChatSend(e)}async resolveActiveConversation(){var i,s,n;if(this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.conversationId)try{await Q.resolveConversation(this.conversationId)}catch(o){console.error("[VaniraAI] Failed to resolve conversation on backend:",o)}else console.warn("[VaniraAI] Cannot resolve β€” conversation_id not yet received from /widget/chat");(i=this.sessionManager)==null||i.clearChatKeepProspect(),this.conversationId=null,this.chatId=null;const e=(n=(s=this.currentView)==null?void 0:s.getChatWindow)==null?void 0:n.call(s);e&&e.clearMessages(),this.chatInitialized=!1,await this.initializeChatSession(!0)}};a(P,"audioContext",null);let U=P;class ye{static getProvider(t){return new U(t)}}class ie extends HTMLElement{constructor(){super();a(this,"shadow");a(this,"provider",null);a(this,"widgetId","");a(this,"agentId","");a(this,"pkKey","");a(this,"serverUrl","https://inboxapi.travelr.club");a(this,"position","bottom-right");a(this,"primaryColor","#000000");a(this,"secondaryColor","#000000");a(this,"gradient",null);a(this,"positionType","fixed");this.shadow=this.attachShadow({mode:"open"})}static get observedAttributes(){return["widget-id","agent-id","position","primary-color","secondary-color","server-url","gradient","position-type","pk-key"]}connectedCallback(){console.log("[VaniraAI Widget] Initializing..."),this.readAttributes();const e={widgetId:this.widgetId,agentId:this.agentId,pkKey:this.pkKey,serverUrl:this.serverUrl,position:this.position,primaryColor:this.primaryColor,secondaryColor:this.secondaryColor,gradient:this.gradient,positionType:this.positionType};this.provider=ye.getProvider(e),this.provider&&this.provider.ui_renderer(this.shadow),this.widgetId&&!this.agentId&&this.initializeExpandedConfig()}readAttributes(){this.widgetId=this.getAttribute("widget-id")||"",this.agentId=this.getAttribute("agent-id")||"",this.pkKey=this.getAttribute("pk-key")||"",this.serverUrl=this.getAttribute("server-url")||"https://inboxapi.travelr.club",this.position=this.getAttribute("position")||"bottom-right",this.primaryColor=this.getAttribute("primary-color")||"#000000",this.secondaryColor=this.getAttribute("secondary-color")||this.primaryColor,this.gradient=this.getAttribute("gradient"),this.positionType=this.getAttribute("position-type")||"fixed"}async initializeExpandedConfig(){try{const e=await D.fetchWidgetConfig(this.widgetId,this.pkKey||void 0);this.provider&&await this.provider.initialize(e)}catch(e){console.error("[VaniraAI Widget] Config failed:",e)}}}customElements.get("vanira-convai")||customElements.define("vanira-convai",ie),typeof window<"u"&&(window.VaniraConvAI=ie,window.VaniraAI=V,window.WebRTCClient=J);const I=document.currentScript;if(I){const u=I.getAttribute("data-widget-id")||I.getAttribute("widget-id"),t=I.getAttribute("data-agent-id")||I.getAttribute("agent-id");if(u||t){const e=I.getAttribute("data-position")||"bottom-right",i=I.getAttribute("data-primary-color")||I.getAttribute("primary-color")||"#000000",s=I.getAttribute("data-secondary-color")||I.getAttribute("secondary-color"),n=I.getAttribute("data-gradient")||I.getAttribute("gradient"),o=I.getAttribute("data-server-url")||I.getAttribute("server-url"),h=I.getAttribute("data-pk-key")||I.getAttribute("pk-key"),c=document.createElement("vanira-convai");u&&c.setAttribute("widget-id",u),t&&c.setAttribute("agent-id",t),h&&c.setAttribute("pk-key",h),c.setAttribute("position",e),c.setAttribute("primary-color",i),s&&c.setAttribute("secondary-color",s),n&&c.setAttribute("gradient",n),o&&c.setAttribute("server-url",o),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>document.body.appendChild(c)):document.body.appendChild(c),c.addEventListener("vaniraai:tool_call",l=>{const d=l.detail;console.log("[VaniraAI Widget] Tool call received by host page:",d.name,d.arguments),typeof window.__vaniraai_tool_handler=="function"&&window.__vaniraai_tool_handler(d,{sendResult:r=>{console.log("[VaniraAI] sendResult called:",r)}})})}}})();
1545
+ `;const f=w.querySelectorAll(".session-option");f.forEach(v=>{v.addEventListener("click",C=>{C.stopPropagation(),f.forEach(P=>P.classList.remove("active")),v.classList.add("active"),m=v.getAttribute("data-behavior")})});const b=v=>{v.stopPropagation(),w.style.display="none",this.openPanel(),this.create_call(m)};w.addEventListener("click",b);const y=w.querySelector(".clean-card-btn");y==null||y.addEventListener("click",v=>{v.stopPropagation(),b(v)}),this.root.appendChild(w)}else this.root.appendChild(this.floatingButton.getElement());this.root.appendChild(this.panel.getElement()),this.setupPanelContent(),this.chatWelcomeMessage&&!this.widgetMode.includes("chat")&&this.handleWelcomePayload(this.chatWelcomeMessage),this.initSessionManager()?this.widgetMode.includes("chat")&&this.initializeChatSession():this.showTabConflictBanner("conflict")}getFabIcon(){return this.widgetIcon&&G[this.widgetIcon]?G[this.widgetIcon]:this.widgetMode.includes("chat")?I.chat:I.voice_orb}getPanelTitle(){return"Assistant"}getPosStyle(){const e={"bottom-right":"bottom: 24px; right: 24px;","bottom-left":"bottom: 24px; left: 24px;","top-right":"top: 24px; right: 24px;","top-left":"top: 24px; left: 24px;"};return e[this.position]||e["bottom-right"]}setupPanelContent(){var i,s;const e=(n,o)=>{var h,c;const d=(c=(h=this.currentView)==null?void 0:h.getChatWindow)==null?void 0:c.call(h);d&&d.addCallRecord(n,o);const l=`vanira_calls_${this.widgetId||this.agentId}`,r=JSON.parse(localStorage.getItem(l)||"[]");r.push({durationMs:n,startedAt:o}),r.length>50&&r.splice(0,r.length-50),localStorage.setItem(l,JSON.stringify(r))};switch(this.widgetMode){case"chat_only":this.currentView=new pe(n=>this.handleChatSend(n));break;case"chat_voice":this.currentView=new ge(n=>this.handleChatSend(n),()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"avatar_only":this.currentView=new ue(()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"chat_avatar":this.currentView=new me(n=>this.handleChatSend(n),()=>this.create_call(),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break;case"voice_only":default:this.currentView=new Ae(n=>this.create_call(n),()=>this.end_call(),this.primaryColor,this.secondaryColor,e);break}if(this.currentView&&this.panel){this.panel.setContent(this.currentView.getElement());const n=(s=(i=this.currentView).getChatWindow)==null?void 0:s.call(i);n&&n.setResolveCallback(()=>this.resolveActiveConversation())}}async handleChatSend(e){var s,n,o,d,l;if(!e)return;this.sessionActive||((s=this.sessionManager)==null||s.forceClaimSession(),this.sessionActive=!0,this.widgetMode.includes("chat")&&await this.initializeChatSession(!1));const i=(o=(n=this.currentView)==null?void 0:n.getChatWindow)==null?void 0:o.call(n);if(i){this.chatId&&!this.eventSource&&(this.eventSource=T.listenForAdminReplies(this.chatId,this.prospectId,r=>{var h,c,A;(c=(h=this.currentView)==null?void 0:h.getChatWindow)==null||c.call(h).addMessage("assistant",r),(A=this.sessionManager)==null||A.pushMessage("assistant",r),this.playMessageSound("receive")})),i.addMessage("user",e),(d=this.sessionManager)==null||d.pushMessage("user",e),i.setTyping(!0),(l=this.sessionManager)==null||l.pushMessage("assistant","");try{let r=!1;await this.chatAdapter.sendMessage(e,this.agentId,this.prospectId,this.chatId,h=>{var c;r||(this.playMessageSound("receive"),r=!0),i.setTyping(!1),(h==null?void 0:h.type)==="button_list"&&((c=h.data)!=null&&c.buttons)&&(i.addButtons(h.data.buttons),this.welcomeChipsData=h.data.buttons,this.updateWelcomeChipsVisibility())},h=>{var c;r||(this.playMessageSound("receive"),r=!0),i.setTyping(!1),i.updateLastAssistantMessage(h),(c=this.sessionManager)==null||c.updateLastAssistantMessage(h)},(h,c)=>{var A;h&&(this.chatId=h),c&&(this.conversationId=c),(h||c)&&((A=this.sessionManager)==null||A.saveIds(this.prospectId,this.chatId,this.conversationId))},this.widgetId||void 0,this.pkKey||void 0)}catch(r){i.setTyping(!1),console.error("[VaniraAI] Send message failed",r),i.addMessage("assistant","Error sending message.")}}}togglePanel(){this.isPanelOpen?this.closePanel():this.openPanel()}openPanel(){var s,n,o,d;this.isPanelOpen=!0,this.updateWelcomeChipsVisibility();const e=(s=this.floatingButton)==null?void 0:s.getElement().getBoundingClientRect();if(e&&e.width>0){const l=e.top>window.innerHeight/2;(n=this.panel)==null||n.open({left:`${Math.max(20,Math.min(e.left-170,window.innerWidth-420))}px`,bottom:l?`${window.innerHeight-e.top+20}px`:void 0,top:l?void 0:`${e.top+80}px`})}else(o=this.panel)==null||o.open({bottom:"90px",right:"20px",left:"auto",top:"auto"});(d=this.root)!=null&&d.host&&this.root.host.classList.add("vanira-panel-open")}closePanel(){var e,i;this.isPanelOpen=!1,this.updateWelcomeChipsVisibility(),(e=this.panel)==null||e.close(),(i=this.root)!=null&&i.host&&this.root.host.classList.remove("vanira-panel-open")}updateWelcomeChipsVisibility(){if(!this.floatingWelcomeChips)return;const e=!this.isPanelOpen&&this.welcomeChipsData.length>0;console.log("[VaniraAI] updateWelcomeChipsVisibility:",{visible:e,isPanelOpen:this.isPanelOpen,chipsCount:this.welcomeChipsData.length}),e?(this.floatingWelcomeChips.setChips(this.welcomeChipsData),this.floatingWelcomeChips.getElement().style.display="flex"):this.floatingWelcomeChips.getElement().style.display="none"}handleFloatingChipClick(e){this.openPanel(),this.handleChatSend(e)}async resolveActiveConversation(){var i,s,n;if(this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.conversationId)try{await T.resolveConversation(this.conversationId)}catch(o){console.error("[VaniraAI] Failed to resolve conversation on backend:",o)}else console.warn("[VaniraAI] Cannot resolve β€” conversation_id not yet received from /widget/chat");(i=this.sessionManager)==null||i.clearChatKeepProspect(),this.conversationId=null,this.chatId=null;const e=(n=(s=this.currentView)==null?void 0:s.getChatWindow)==null?void 0:n.call(s);e&&e.clearMessages(),this.chatInitialized=!1,await this.initializeChatSession(!0)}};a(Y,"audioContext",null);let U=Y;class ye{static getProvider(t){return new U(t)}}class ie extends HTMLElement{constructor(){super();a(this,"shadow");a(this,"provider",null);a(this,"widgetId","");a(this,"agentId","");a(this,"pkKey","");a(this,"serverUrl","https://inboxapi.travelr.club");a(this,"position","bottom-right");a(this,"primaryColor","#000000");a(this,"secondaryColor","#000000");a(this,"gradient",null);a(this,"positionType","fixed");this.shadow=this.attachShadow({mode:"open"})}static get observedAttributes(){return["widget-id","agent-id","position","primary-color","secondary-color","server-url","gradient","position-type","pk-key"]}connectedCallback(){console.log("[VaniraAI Widget] Initializing..."),this.readAttributes();const e={widgetId:this.widgetId,agentId:this.agentId,pkKey:this.pkKey,serverUrl:this.serverUrl,position:this.position,primaryColor:this.primaryColor,secondaryColor:this.secondaryColor,gradient:this.gradient,positionType:this.positionType};this.provider=ye.getProvider(e),this.provider&&this.provider.ui_renderer(this.shadow),this.widgetId&&!this.agentId&&this.initializeExpandedConfig()}readAttributes(){this.widgetId=this.getAttribute("widget-id")||"",this.agentId=this.getAttribute("agent-id")||"",this.pkKey=this.getAttribute("pk-key")||"",this.serverUrl=this.getAttribute("server-url")||"https://inboxapi.travelr.club",this.position=this.getAttribute("position")||"bottom-right",this.primaryColor=this.getAttribute("primary-color")||"#000000",this.secondaryColor=this.getAttribute("secondary-color")||this.primaryColor,this.gradient=this.getAttribute("gradient"),this.positionType=this.getAttribute("position-type")||"fixed"}async initializeExpandedConfig(){try{const e=await z.fetchWidgetConfig(this.widgetId,this.pkKey||void 0);this.provider&&await this.provider.initialize(e)}catch(e){console.error("[VaniraAI Widget] Config failed:",e)}}}customElements.get("vanira-convai")||customElements.define("vanira-convai",ie),typeof window<"u"&&(window.VaniraConvAI=ie,window.VaniraAI=O,window.WebRTCClient=J);const B=document.currentScript;if(B){const u=B.getAttribute("data-widget-id")||B.getAttribute("widget-id"),t=B.getAttribute("data-agent-id")||B.getAttribute("agent-id");if(u||t){const e=B.getAttribute("data-position")||"bottom-right",i=B.getAttribute("data-primary-color")||B.getAttribute("primary-color")||"#000000",s=B.getAttribute("data-secondary-color")||B.getAttribute("secondary-color"),n=B.getAttribute("data-gradient")||B.getAttribute("gradient"),o=B.getAttribute("data-server-url")||B.getAttribute("server-url"),d=B.getAttribute("data-pk-key")||B.getAttribute("pk-key"),l=document.createElement("vanira-convai");u&&l.setAttribute("widget-id",u),t&&l.setAttribute("agent-id",t),d&&l.setAttribute("pk-key",d),l.setAttribute("position",e),l.setAttribute("primary-color",i),s&&l.setAttribute("secondary-color",s),n&&l.setAttribute("gradient",n),o&&l.setAttribute("server-url",o),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>document.body.appendChild(l)):document.body.appendChild(l),l.addEventListener("vaniraai:tool_call",r=>{const h=r.detail;console.log("[VaniraAI Widget] Tool call received by host page:",h.name,h.arguments),typeof window.__vaniraai_tool_handler=="function"&&window.__vaniraai_tool_handler(h,{sendResult:c=>{console.log("[VaniraAI] sendResult called:",c)}})})}}})();
1546
1546
  //# sourceMappingURL=vanira-sdk.js.map