@flowengage/react-chatbot 7.0.20 → 7.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/flowengage-embed.js
CHANGED
|
@@ -648,7 +648,7 @@ registerProcessor("scribeAudioProcessor", ScribeAudioProcessor);
|
|
|
648
648
|
radial-gradient(circle at 82% 50%, ${r} 0%, ${r}99 35%, transparent 65%),
|
|
649
649
|
radial-gradient(circle at 50% 82%, ${i} 0%, ${i}99 30%, transparent 58%),
|
|
650
650
|
white
|
|
651
|
-
`.replace(/\s+/g,` `).trim()}})}var Ak=()=>(0,j.jsx)(`div`,{style:{display:`flex`,marginBottom:`12px`,justifyContent:`flex-start`},children:(0,j.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`5px`,padding:`12px 16px`,borderRadius:`18px`,background:`#fff`,boxShadow:`0 2px 6px rgba(0,0,0,0.04)`},children:[0,1,2].map(e=>(0,j.jsx)(`span`,{style:{width:`7px`,height:`7px`,borderRadius:`50%`,background:`#9ca3af`,animation:`fe-dot-bounce 1.2s ease-in-out ${e*.2}s infinite`,display:`inline-block`}},e))})});function jk({copy:e,orbColors:t,primaryColor:n,chatBgGradient:r,logo:i,quickChatOptions:a,onQuickChatSelect:o,isMobile:s,chatHistory:c,isAiTyping:l,isAgentTyping:u,activeScreen:d,agentName:f,agentHeadshot:p,fallbackAgentName:m,input:h,setInput:g,onSubmit:_,isConversationEnded:v,isLoading:y,isRateLimited:x,rateLimitMessage:ee,selectedFile:S,onFileSelect:C,onRemoveSelectedFile:te,attachmentError:w,isUploadingAttachment:ne,requiresEmail:re,emailInput:ie,setEmailInput:T,emailError:ae,emailCaptureSuccess:oe,replyContext:se,setReplyContext:ce,webRTCError:le,micError:E,setMicError:D,dismissCallError:ue,activeCallId:de,isCallMuted:fe,toggleCallMute:pe,endWebRTCCall:me,formatCallDuration:he,callDurationSeconds:ge,isCallMinimized:_e,onExpand:ve,onCollapse:ye,onStartVoice:be,onNewChat:xe,showPoweredBy:Se,getVisitorChatHistory:Ce,resumeChat:we,isSessionRestoring:Te,isClosing:Ee}){let De=c.length>0,Oe=y||x||v,ke=!!de,[Ae,je]=(0,b.useState)(!1),[Me,Ne]=(0,b.useState)(!1),[Pe,Fe]=(0,b.useState)([]),[Ie,Le]=(0,b.useState)(!1),Re=(0,b.useRef)(null),[ze,Be]=(0,b.useState)(()=>typeof window<`u`?window.visualViewport?.height??window.innerHeight:600),[Ve,He]=(0,b.useState)(0);(0,b.useEffect)(()=>{if(!s)return;let e=window.visualViewport;if(!e)return;let t=()=>{Be(e.height),He(Math.max(0,window.innerHeight-e.offsetTop-e.height))};return e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t),t(),()=>{e.removeEventListener(`resize`,t),e.removeEventListener(`scroll`,t)}},[s]);let Ue=s&&window.innerHeight-ze>150,We=async()=>{je(!1),Ne(!0),Le(!0);try{let e=await Ce();e?.data&&Fe(e.data)}catch(e){console.error(e)}finally{Le(!1)}},Ge=async e=>{Ne(!1),we?.(e.chatId)};return(0,b.useEffect)(()=>{if(!Ae)return;let e=e=>{let t=e.composedPath?.()?.[0]||e.target;Re.current&&!Re.current.contains(t)&&je(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[Ae]),(0,j.jsxs)(`div`,{style:s?{"--flowengage-primary":n,"--flowengage-accent":n,position:`fixed`,left:`8px`,right:`8px`,bottom:`${Ve}px`,height:ze>0?`${Math.round(ze*.92)}px`:`90dvh`,background:r,borderRadius:`16px 16px 0 0`,display:`flex`,flexDirection:`column`,overflow:`hidden`,animation:Ee?`fe-orb-slide-down 0.28s cubic-bezier(0.16,1,0.3,1) forwards`:`fe-orb-slide-up 0.28s cubic-bezier(0.16,1,0.3,1)`}:{"--flowengage-primary":n,"--flowengage-accent":n,width:`min(350px, calc(100vw - 40px))`,height:`min(640px, calc(100vh - 120px))`,background:r,borderRadius:`22px`,boxShadow:`0 24px 64px rgba(0,0,0,0.18), 0 4px 16px rgba(0,0,0,0.08)`,display:`flex`,flexDirection:`column`,overflow:`hidden`,position:`relative`,animation:Ee?`fe-orb-slide-down 0.28s cubic-bezier(0.16,1,0.3,1) forwards`:`fe-orb-slide-up 0.36s cubic-bezier(0.16,1,0.3,1)`},children:[(0,j.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`40px minmax(0, 1fr) 40px`,alignItems:`center`,columnGap:`14px`,padding:`16px 10px 14px`,background:`transparent`,flexShrink:0,position:`relative`,zIndex:30},children:[(0,j.jsx)(`div`,{style:{display:`flex`,gap:`8px`,alignItems:`center`},children:(0,j.jsx)(`button`,{onClick:ye,style:{width:`40px`,height:`40px`,background:`none`,border:`none`,cursor:`pointer`,color:`#6b7280`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`4px`,borderRadius:`10px`,transition:`color 0.15s ease`,flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color=`#111827`},onMouseLeave:e=>{e.currentTarget.style.color=`#6b7280`},children:(0,j.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,j.jsx)(`polyline`,{points:`6 9 12 15 18 9`})})})}),(()=>{let t=!!i,n=!!e.hasCustomTitle,r=t||n,a=t||!r,o=n||!r,c=a&&o;return(0,j.jsxs)(`div`,{style:{minWidth:0,maxWidth:s?`100%`:`250px`,width:`100%`,justifySelf:`center`,display:`grid`,gridTemplateColumns:c?`minmax(72px, 40%) minmax(0, 60%)`:`1fr`,alignItems:`center`,justifyItems:c?`stretch`:`center`},children:[a&&(0,j.jsx)(`div`,{style:{minWidth:0,display:`flex`,alignItems:`center`,justifyContent:`center`,height:`40px`},children:i?(0,j.jsx)(Sk,{logo:i,style:{height:`34px`,width:`100%`,maxWidth:`96px`}}):(0,j.jsx)(`div`,{style:{width:`40px`,height:`40px`,flexShrink:0},children:(0,j.jsx)(Ck,{title:e.chatTitle})})}),o&&(0,j.jsx)(`div`,{style:{minWidth:0,display:`flex`,alignItems:`center`,justifyContent:c?`flex-start`:`center`},children:(0,j.jsx)(`span`,{style:{fontSize:`15px`,fontWeight:600,color:`#111827`,letterSpacing:`-0.01em`,lineHeight:1.2,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:e.chatTitle,children:e.chatTitle})})]})})(),(0,j.jsxs)(`div`,{style:{position:`relative`,isolation:`isolate`,zIndex:10},ref:Re,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>je(e=>!e),style:{width:`40px`,height:`40px`,background:`none`,border:`none`,cursor:`pointer`,color:`#6b7280`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`4px`,borderRadius:`10px`,transition:`color 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.color=`#111827`},onMouseLeave:e=>{e.currentTarget.style.color=`#6b7280`},"aria-label":`Chat options`,children:(0,j.jsxs)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,j.jsx)(`circle`,{cx:`12`,cy:`5`,r:`1.5`}),(0,j.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.5`}),(0,j.jsx)(`circle`,{cx:`12`,cy:`19`,r:`1.5`})]})}),Ae&&(0,j.jsxs)(`div`,{style:{position:`absolute`,top:`34px`,right:0,background:`rgba(15,22,36,0.96)`,backdropFilter:`blur(14px)`,WebkitBackdropFilter:`blur(14px)`,borderRadius:`16px`,overflow:`hidden`,boxShadow:`0 10px 40px rgba(0,0,0,0.45)`,minWidth:`210px`,border:`1px solid rgba(255,255,255,0.07)`,animation:`fe-orb-fade-in 0.18s ease`},children:[(0,j.jsxs)(`button`,{type:`button`,onClick:()=>{je(!1),be?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,j.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,j.jsx)(`path`,{d:`M12 1a4 4 0 014 4v6a4 4 0 01-8 0V5a4 4 0 014-4z`}),(0,j.jsx)(`path`,{d:`M19 10a7 7 0 01-14 0M12 19v4M8 23h8`})]}),`Enter Voice Mode`]}),(0,j.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,j.jsxs)(`button`,{type:`button`,onClick:()=>{je(!1),xe?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,j.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,j.jsx)(`path`,{d:`M12 5H5a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-7`}),(0,j.jsx)(`path`,{d:`M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z`})]}),`Start new chat`]}),Ce&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,j.jsxs)(`button`,{type:`button`,onClick:We,style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,j.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,j.jsx)(`path`,{d:`M12 8v4l3 3M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0z`})}),`Chat history`]})]}),(0,j.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,j.jsxs)(`button`,{type:`button`,onClick:()=>{je(!1),ye?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`#f87171`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(248,113,113,0.1)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,j.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,j.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,j.jsx)(`line`,{x1:`15`,y1:`9`,x2:`9`,y2:`15`}),(0,j.jsx)(`line`,{x1:`9`,y1:`9`,x2:`15`,y2:`15`})]}),`Close conversation`]})]})]})]}),(0,j.jsx)(JD,{webRTCError:le,micError:E,setMicError:D,dismissCallError:ue,isRateLimited:x,rateLimitMessage:ee}),_e&&(0,j.jsx)(dO,{agentName:f,agentHeadshot:p,fallbackAgentName:m,callDurationSeconds:ge,isCallMuted:fe,formatCallDuration:he,toggleCallMute:pe,endWebRTCCall:me,onExpand:ve,primaryColor:n}),(0,j.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,background:`transparent`,position:`relative`},children:[Me?(0,j.jsxs)(`div`,{style:{position:`absolute`,inset:0,background:`white`,zIndex:20,display:`flex`,flexDirection:`column`,animation:`fe-orb-fade-in 0.2s ease`},children:[(0,j.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,padding:`16px`,borderBottom:`1px solid #f3f4f6`,flexShrink:0},children:(0,j.jsxs)(`button`,{onClick:()=>Ne(!1),style:{background:`none`,border:`none`,cursor:`pointer`,display:`flex`,alignItems:`center`,color:`#6b7280`},children:[(0,j.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,j.jsx)(`polyline`,{points:`15 18 9 12 15 6`})}),(0,j.jsx)(`span`,{style:{marginLeft:`8px`,fontWeight:500,fontSize:`15px`},children:`Return to Chat`})]})}),(0,j.jsx)(`div`,{style:{flex:1,overflowY:`auto`,position:`relative`},children:Ie?(0,j.jsx)(`div`,{style:{padding:`40px 20px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`Loading past conversations...`}):Pe.length>0?(0,j.jsx)(`div`,{children:Pe.map(e=>(0,j.jsxs)(`div`,{onClick:()=>Ge(e),style:{padding:`16px 20px`,borderBottom:`1px solid #f3f4f6`,cursor:`pointer`,transition:`background 0.15s ease`},onMouseEnter:e=>e.currentTarget.style.background=`#f9fafb`,onMouseLeave:e=>e.currentTarget.style.background=`white`,children:[(0,j.jsxs)(`div`,{style:{fontSize:`12px`,color:`#6b7280`,marginBottom:`6px`,fontWeight:500},children:[new Date(e.createdAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`}),` at `,new Date(e.createdAt).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})]}),(0,j.jsx)(`div`,{style:{fontSize:`14.5px`,color:`#111827`,opacity:.9,overflow:`hidden`,textOverflow:`ellipsis`,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`,lineHeight:1.4},children:e.message||`Conversation`})]},e.chatId))}):(0,j.jsx)(`div`,{style:{padding:`40px 20px`,textAlign:`center`,color:`#9ca3af`,fontSize:`14px`},children:`No previous chats found.`})})]}):null,De?(0,j.jsx)(KD,{chatHistory:c,isAiTyping:l,isLoading:y,isAgentTyping:u,setReplyContext:ce,TypingDots:Ak,primaryColor:n,agentHeadshot:p,agentDisplayName:f||m,botAvatarNode:(0,j.jsx)(kk,{orbColors:t})}):Te?(0,j.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`16px`},children:[(0,j.jsx)(`div`,{style:{width:`28px`,height:`28px`,border:`3px solid #f3f4f6`,borderTop:`3px solid ${n}`,borderRadius:`50%`,animation:`spin 1s linear infinite`},children:(0,j.jsx)(`style`,{children:`@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }`})}),(0,j.jsx)(`div`,{style:{color:`#6b7280`,fontSize:`14px`,fontWeight:500,animation:`fe-orb-fade-in 1s infinite alternate`},children:`Loading chat...`})]}):(0,j.jsxs)(`div`,{style:{flex:1,overflowY:`auto`,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`22px`,padding:`28px 24px`},children:[(0,j.jsx)(Tk,{size:94,orbColors:t}),(0,j.jsx)(`p`,{style:{margin:0,textAlign:`center`,fontSize:`16px`,color:`#374151`,lineHeight:1.55,maxWidth:`270px`},children:e.introGreeting}),a.length>0&&(0,j.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`8px`,justifyContent:`center`,width:`100%`,padding:`0 8px`},children:a.map(e=>(0,j.jsx)(`button`,{onClick:()=>o?.(e),style:{padding:`8px 16px`,borderRadius:`999px`,background:`white`,border:`1.5px solid ${n}33`,color:n||`#374151`,fontSize:`13px`,fontWeight:500,cursor:`pointer`,transition:`all 0.15s ease`,boxShadow:`0 1px 4px rgba(0,0,0,0.06)`},onMouseEnter:e=>{e.currentTarget.style.background=`${n}12`,e.currentTarget.style.borderColor=n},onMouseLeave:e=>{e.currentTarget.style.background=`white`,e.currentTarget.style.borderColor=`${n}33`},children:e.label||e.text},e.id))})]})]}),oe&&(0,j.jsxs)(`div`,{style:{margin:`0 16px 8px`,padding:`9px 14px`,borderRadius:`12px`,background:`#ecfdf5`,border:`1px solid #6ee7b7`,display:`flex`,alignItems:`center`,gap:`8px`,animation:`fe-orb-fade-in 0.2s ease`,flexShrink:0},children:[(0,j.jsx)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#10b981`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:{flexShrink:0},children:(0,j.jsx)(`polyline`,{points:`20 6 9 17 4 12`})}),(0,j.jsx)(`span`,{style:{fontSize:`13px`,fontWeight:500,color:`#065f46`},children:`Email saved — we'll be in touch!`})]}),(0,j.jsx)(`div`,{style:{background:`transparent`,flexShrink:0,position:`relative`,zIndex:1,padding:re?`6px 0 0`:`12px 0 0`},children:(0,j.jsx)(qD,{input:h,setInput:g,onSubmit:_,isConversationEnded:v,callUiActive:ke,handleToggleVoice:be,showVoiceToggle:d===`agent`,activeScreen:d,inputDisabled:Oe,replyContext:se,clearReplyContext:()=>ce(null),onFileSelect:C,selectedFile:S,onRemoveSelectedFile:te,attachmentError:w,isUploadingAttachment:ne,requiresEmail:re,emailInput:ie,setEmailInput:T,emailError:ae,inputPlaceholder:e.inputPlaceholder})}),!Ue&&(0,j.jsx)(`div`,{style:{flexShrink:0,textAlign:`center`,padding:`8px 20px`,paddingBottom:`max(12px, env(safe-area-inset-bottom, 12px))`,pointerEvents:`none`},children:Se&&(0,j.jsxs)(`span`,{style:{fontSize:`11px`,color:`#9ca3af`,letterSpacing:`0.01em`,userSelect:`none`},children:[`Powered by `,(0,j.jsx)(`strong`,{style:{fontWeight:600,color:`#6b7280`},children:`FlowEngage`})]})})]})}function Mk(){let{status:e,runtimeConfig:t,resolvedConfig:n,chatHistory:r,isOpen:i,activeScreen:a,isHumanHandled:o,agentName:s,agentHeadshot:c,visitorEmail:l,isAgentTyping:u,isAiTyping:d,isLoading:f,isRateLimited:p,rateLimitMessage:m,isConversationEnded:h,incomingCall:g,activeCallId:_,callConnectionState:v,callConnectedAt:y,isCallMuted:x,webRTCError:ee,language:S,chatId:C,historyRef:te,onMessageSync:w,sendMessage:ne,uploadChatFile:re,openWidget:ie,captureVisitorEmail:T,setVoiceMode:ae,endConversation:oe,startNewChat:se,acceptCall:ce,rejectCall:le,endWebRTCCall:ue,toggleCallMute:de,dismissCallError:fe,startTyping:pe,stopTyping:me,updateTypingDraft:he,getVisitorChatHistory:ge,resumeChat:_e,isSessionRestoring:ve,openToChatCounter:ye,voiceEndCounter:be}=Fn();(0,b.useEffect)(()=>{try{pr()}catch{}},[]),(0,b.useEffect)(()=>{ye&&O!==`voice_mode`&&O!==`text_chat`&&O!==`call_screen`&&(ae?.(!1),k(`text_chat`))},[ye]);let xe=t?.widgetSettings||{},Se=n?.widgetSettings||{},Ce={...xe.branding||{},...Se.branding||{}},we={...xe.theme||{},...Se.theme||{}},Te={...xe.features||{},...Se.features||{}},Ee=Te.voice!==!1,ke=Array.isArray(we.orbColors)&&we.orbColors.length>0?we.orbColors:null,Ae=we.buttonColor||we.primaryColor||ke?.[0]||`#3B82F6`,Me={small:50,medium:64,large:80},Ne=Me[we.orbSize]||Me.small,Fe=we.position||`bottom-right`,Ie=Ce.fallbackAgentName||`Agent`,Le=yk(ke??we.chatBgColors),Re=Ce.logo||Ce.logoUrl||null,ze=S||`en`,Be=xe.recommendations?.[ze]||[],Ve=(Se.recommendations?.[ze]??Be).filter(e=>String(e?.label??``).trim()).map((e,t)=>({id:e.key||`qr-${t}`,label:e.label,message:e.label,text:e.label})),He=Array.isArray(Ce.quickChatOptions)&&Ce.quickChatOptions.length>0?Ce.quickChatOptions:Ve,Ue=Ce.hideWatermark===!0?!1:Ce.showPoweredBy!==!1,We=Ce.chatbotEnabled!==!1&&we.chatbotEnabled!==!1,Ge=xe.greetings?.[S]||Se.greetings?.[S]||Ce.introGreeting||`Hello, I'm here to help you know more about OpenSense Labs.`,Ke={entryPrompt:Ce.entryPrompt||`Do you want to explore in a new way?`,yesLabel:Ce.yesLabel||`Yes`,laterLabel:Ce.laterLabel||`Later`,connectionTitle:Ce.connectionTitle||`How would you like to connect?`,voiceLabel:Ce.voiceLabel||`Voice`,textLabel:Ce.textLabel||`Text`,chatTitle:Ce.headerName||`Chat with FlowEngage`,hasCustomTitle:!!(Ce.headerName&&String(Ce.headerName).trim()),introGreeting:Ge,inputPlaceholder:Ce.inputPlaceholder||`Type your message`,analysingLabel:Ce.analysingLabel||`analysing...`},qe=Se.elevenLabsAgentId||t?.elevenLabsAgentId||null,Je=t?.siteId||n?.siteId||null,Ye=t?.apiBaseUrl||``;(0,b.useEffect)(()=>{$n(t?.siteType||null)},[t?.siteType]);let Xe=(0,b.useMemo)(()=>s&&String(s).trim()||t?.ownerName&&String(t.ownerName).trim()||t?.websiteName&&String(t.websiteName).trim()||`Agent`,[s,t?.ownerName,t?.websiteName]),Ze=c&&String(c).trim()||t?.ownerProfileImageUrl&&String(t.ownerProfileImageUrl).trim()||null,Qe=r.some(e=>e.sender===`user`),$e=(0,b.useMemo)(()=>{let e=r.findIndex(e=>e.sender===`user`);return e===-1?!1:r.slice(e+1).some(e=>e.sender===`bot`||e.sender===`ai`||e.sender===`agent`)},[r]),et=!!(Se._dashboardLivePreview||xe._dashboardLivePreview),[O,k]=(0,b.useState)(()=>et?`text_chat`:`entry_prompt`),[tt,nt]=(0,b.useState)(``),[rt,it]=(0,b.useState)(null),[at,ot]=(0,b.useState)(l||``),[st,ct]=(0,b.useState)(``),[lt,ut]=(0,b.useState)(!1),[dt,ft]=(0,b.useState)(0),[pt,mt]=(0,b.useState)(null),[ht,gt]=(0,b.useState)(null),[_t,vt]=(0,b.useState)(``),[yt,bt]=(0,b.useState)(!1),[xt,St]=(0,b.useState)(!1),[Ct,wt]=(0,b.useState)(!1),Tt=(0,b.useRef)(null),Et=(0,b.useRef)(!1),Dt=!l&&Qe&&$e&&O!==`voice_mode`;(0,b.useLayoutEffect)(()=>{if(e!==`ready`||Et.current)return;if(Et.current=!0,!Ee){k(`minimized_orb`);return}let t=!1;try{t=Tr().shouldResumeVoice}catch{}let n=je(),r=Je?De(Je):null,i=n||!!r?.transcript;if(t){ie?.({notifyChatInitiated:!0}),ae?.(!0),k(`voice_mode`);return}if(Pe()){ie?.({notifyChatInitiated:!1}),k(`text_chat`);return}if(i){if((typeof performance<`u`?performance.getEntriesByType?.(`navigation`)?.[0]?.type??`navigate`:`navigate`)===`reload`){k(`minimized_orb`);return}ie?.({notifyChatInitiated:!0}),ae?.(!0),k(`voice_mode`);return}if(Je)try{Oe(Je)}catch{}if(E(Je)){k(`minimized_orb`);return}},[e,r]);let[Ot,kt]=(0,b.useState)(()=>typeof window<`u`&&window.matchMedia(`(max-width: 640px)`).matches);(0,b.useEffect)(()=>{let e=window.matchMedia(`(max-width: 640px)`),t=e=>kt(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,b.useEffect)(()=>{ot(l||``),l&&ct(``)},[l]);let At=(0,b.useCallback)(()=>{gt(null),vt(``)},[]),jt=(0,b.useCallback)(e=>{let t=VD(e);if(t){gt(null),vt(t);return}gt(e),vt(``)},[]);(0,b.useEffect)(()=>{if(!y||v!==`connected`){ft(0);return}let e=()=>{let e=new Date(y).getTime();isNaN(e)||ft(Math.max(0,Math.floor((Date.now()-e)/1e3)))};e();let t=window.setInterval(e,1e3);return()=>window.clearInterval(t)},[y,v]);let Mt=(0,b.useCallback)(()=>{k(`call_screen`),St(!1)},[]),Nt=(0,b.useCallback)(()=>{k(`text_chat`),St(!0)},[]);(0,b.useEffect)(()=>{let e=g?.callId||_||null;if(!e){Tt.current=null;return}if(g?.callId||v===`connecting`||v===`connected`){if(O===`minimized_orb`&&xt&&_&&!g?.callId){Tt.current=e;return}!(!i||O===`minimized_orb`||O===`voice_mode`)&&Tt.current===e||(console.log(`[FlowEngageWidget] forcing call UI to front`,{forcedKey:e,isOpen:i,surface:O,hasIncomingCall:!!g?.callId,activeCallId:_,callConnectionState:v}),Tt.current=e,O===`voice_mode`&&ae?.(!1),ie?.(),Mt())}},[_,v,Mt,g?.callId,i,ie,ae,O]),(0,b.useEffect)(()=>{!g&&!_&&O===`call_screen`&&k(`text_chat`)},[g,_,O]),(0,b.useEffect)(()=>{!_&&xt&&St(!1)},[_,xt]),(0,b.useEffect)(()=>{if(!o||h){he?.(``),me?.();return}if(!tt.trim()||ht){he?.(``);let e=window.setTimeout(()=>me?.(),100);return()=>window.clearTimeout(e)}pe?.();let e=window.setTimeout(()=>he?.(tt),120),t=window.setTimeout(()=>me?.(),1200);return()=>{window.clearTimeout(e),window.clearTimeout(t)}},[tt,ht,o,h,pe,me,he]);let Pt=e=>e?{replyTo:e.messageId||e.id||null,replyToContent:(e.replyToContent||e.message||``).replace(/<[^>]+>/g,``).trim().slice(0,200),replyToSender:e.sender||null}:null,Ft=async e=>{if(e.preventDefault(),h)return;if(Dt){let e=at.trim().toLowerCase();if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)){ct(`Please enter a valid email so we can continue helping you.`);return}await T(e),ct(``),ut(!0),setTimeout(()=>ut(!1),3e3);return}let t=Pt(rt);if(!tt.trim()&&!ht)return;if(ht){try{bt(!0),vt(``);let e=await re(ht),n=e?.data||e,r=tt.trim()||`Shared file: ${UD(ht)}`;nt(``),it(null),At(),await ne(r,``,t,{type:`file`,metadata:{fileUrl:n?.fileUrl,fileName:n?.fileName||ht.name,fileType:n?.fileType||ht.type,fileSize:n?.fileSize||ht.size}})}catch(e){vt(e?.message||`Failed to upload the selected file.`)}finally{bt(!1)}return}let n=tt.trim();nt(``),it(null),await ne(n,``,t)},It=(0,b.useCallback)(()=>{r.length!==0&&se?.()},[r.length,se]),Lt=e=>{let t=Math.floor(e/60);return`${String(t).padStart(2,`0`)}:${String(e%60).padStart(2,`0`)}`},Rt=(0,b.useCallback)(async e=>{if(h||f)return;let t=e.message||e.label||e.text||``;t.trim()&&await ne(t.trim(),``)},[h,f,ne]),zt=Ot&&O===`entry_prompt`?{inset:0}:Ot&&O===`text_chat`?{left:0,right:0,bottom:0}:Ot&&O===`call_screen`?{left:0,right:0,bottom:0,height:`90dvh`,overflow:`hidden`,borderRadius:`16px 16px 0 0`}:Ot&&O===`connection_modal`?{left:`12px`,right:`12px`,bottom:`12px`}:O===`call_screen`?{width:`min(350px, calc(100vw - 40px))`,height:`min(640px, calc(100vh - 120px))`,borderRadius:`22px`,overflow:`hidden`,...Fe===`bottom-left`?{left:`1.5rem`,bottom:`1.5rem`}:{right:`1.5rem`,bottom:`1.5rem`}}:Fe===`bottom-left`?{left:`1.5rem`,bottom:`1.5rem`}:{right:`1.5rem`,bottom:`1.5rem`},Bt=(0,b.useCallback)(()=>{O!==`minimized_orb`&&(wt(!0),setTimeout(()=>{k(`minimized_orb`),wt(!1),_&&St(!0)},280))},[_,O]),Vt=()=>k(`connection_modal`),Ht=()=>{try{let e=window.AudioContext||window.webkitAudioContext;if(e){let t=new e;t.resume().catch(()=>{}),setTimeout(()=>t.close().catch(()=>{}),3e3)}}catch{}ie({notifyChatInitiated:!0}),ae?.(!0),k(`voice_mode`)},Ut=()=>{ie({notifyChatInitiated:!0}),ae?.(!1),k(`text_chat`)},Wt=()=>{ae?.(!1),Bt()};return e!==`ready`||!We||Te.chat===!1?null:(0,j.jsxs)(`div`,{className:`flowengage-widget-root`,style:{position:`fixed`,zIndex:999999,...zt},onWheel:e=>e.stopPropagation(),onTouchMove:e=>e.stopPropagation(),children:[O===`entry_prompt`&&(0,j.jsx)(Ek,{copy:Ke,orbColors:ke,primaryColor:Ae,onYes:()=>{D(Je),Ht()},onLater:()=>{D(Je),Bt()},isMobile:Ot,isClosing:Ct}),O===`minimized_orb`&&(0,j.jsxs)(gm.div,{layoutId:`fe-main-orb`,initial:{scale:.4,opacity:0},animate:{scale:1,opacity:1},transition:{type:`spring`,stiffness:280,damping:18},style:{transformOrigin:`bottom right`,display:`inline-flex`,flexDirection:`column`,alignItems:Fe===`bottom-left`?`flex-start`:`flex-end`,gap:`10px`},children:[_&&(0,j.jsxs)(`button`,{type:`button`,onClick:Mt,style:{maxWidth:Ot?`220px`:`240px`,padding:`10px 14px`,borderRadius:`18px`,border:`1px solid rgba(255,255,255,0.7)`,background:`rgba(255,255,255,0.94)`,backdropFilter:`blur(18px)`,WebkitBackdropFilter:`blur(18px)`,boxShadow:`0 10px 26px rgba(15,23,42,0.14)`,display:`flex`,alignItems:`center`,gap:`10px`,cursor:`pointer`,textAlign:`left`},children:[(0,j.jsx)(`span`,{style:{width:`9px`,height:`9px`,borderRadius:`50%`,background:`#22c55e`,boxShadow:`0 0 0 4px rgba(34,197,94,0.16)`,flexShrink:0}}),(0,j.jsxs)(`span`,{style:{minWidth:0},children:[(0,j.jsx)(`span`,{style:{display:`block`,fontSize:`12px`,fontWeight:700,color:`#111827`,lineHeight:1.2},children:v===`connected`?`Call in progress`:`Call is active`}),(0,j.jsx)(`span`,{style:{display:`block`,fontSize:`11px`,color:`#6b7280`,lineHeight:1.3,marginTop:`2px`,whiteSpace:`nowrap`},children:v===`connected`?`${Lt(dt)} with ${Xe}`:`Tap to return to ${Xe}`})]})]}),(0,j.jsx)(Tk,{size:Ne,orbColors:ke,onClick:_?Mt:Ee?Vt:Ut})]}),O===`connection_modal`&&(0,j.jsx)(Dk,{copy:Ke,orbColors:ke,primaryColor:Ae,onVoice:Ht,onText:Ut,onClose:Bt,isMobile:Ot,isClosing:Ct}),O===`voice_mode`&&(0,j.jsx)(Ok,{orbColors:ke,onEnterChat:Ut,onEndChat:Wt,agentId:qe,siteId:Je,apiBaseUrl:Ye,chatId:C,historyRef:te,onMessageSync:w,voiceEndCounter:be,websiteName:t?.websiteName},`voice`),O===`call_screen`&&(0,j.jsx)(uO,{incomingCall:g,activeCallId:_,callConnectionState:v,callDurationSeconds:dt,isCallMuted:x,agentName:Xe,agentHeadshot:Ze,fallbackAgentName:Ie,acceptCall:ce,rejectCall:le,endWebRTCCall:ue,toggleCallMute:de,formatCallDuration:Lt,onMinimize:Nt,primaryColor:Ae,orbColors:ke,chatHistory:r}),O===`text_chat`&&(0,j.jsx)(jk,{isClosing:Ct,copy:Ke,orbColors:ke,primaryColor:Ae,chatBgGradient:Le,logo:Re,quickChatOptions:He,onQuickChatSelect:Rt,isMobile:Ot,chatHistory:r,isAiTyping:d,isAgentTyping:u,activeScreen:a,agentName:Xe,agentHeadshot:Ze,fallbackAgentName:Ie,input:tt,setInput:nt,onSubmit:Ft,isConversationEnded:h,isLoading:f,isRateLimited:p,rateLimitMessage:m,selectedFile:ht,onFileSelect:jt,onRemoveSelectedFile:At,attachmentError:_t,isUploadingAttachment:yt,requiresEmail:Dt,emailInput:at,setEmailInput:ot,emailError:st,emailCaptureSuccess:lt,replyContext:rt,setReplyContext:it,webRTCError:ee,micError:pt,setMicError:mt,dismissCallError:fe,activeCallId:_,isCallMuted:x,toggleCallMute:de,endWebRTCCall:ue,formatCallDuration:Lt,callDurationSeconds:dt,onCollapse:Bt,onStartVoice:Ht,onNewChat:It,onMinimize:Nt,onExpand:Mt,isCallMinimized:!!_,showPoweredBy:Ue,getVisitorChatHistory:ge,resumeChat:_e,isSessionRestoring:ve}),(0,j.jsx)(`style`,{children:`
|
|
651
|
+
`.replace(/\s+/g,` `).trim()}})}var Ak=()=>(0,j.jsx)(`div`,{style:{display:`flex`,marginBottom:`12px`,justifyContent:`flex-start`},children:(0,j.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`5px`,padding:`12px 16px`,borderRadius:`18px`,background:`#fff`,boxShadow:`0 2px 6px rgba(0,0,0,0.04)`},children:[0,1,2].map(e=>(0,j.jsx)(`span`,{style:{width:`7px`,height:`7px`,borderRadius:`50%`,background:`#9ca3af`,animation:`fe-dot-bounce 1.2s ease-in-out ${e*.2}s infinite`,display:`inline-block`}},e))})});function jk({copy:e,orbColors:t,primaryColor:n,chatBgGradient:r,logo:i,quickChatOptions:a,onQuickChatSelect:o,isMobile:s,chatHistory:c,isAiTyping:l,isAgentTyping:u,activeScreen:d,agentName:f,agentHeadshot:p,fallbackAgentName:m,input:h,setInput:g,onSubmit:_,isConversationEnded:v,isLoading:y,isRateLimited:x,rateLimitMessage:ee,selectedFile:S,onFileSelect:C,onRemoveSelectedFile:te,attachmentError:w,isUploadingAttachment:ne,requiresEmail:re,emailInput:ie,setEmailInput:T,emailError:ae,emailCaptureSuccess:oe,replyContext:se,setReplyContext:ce,webRTCError:le,micError:E,setMicError:D,dismissCallError:ue,activeCallId:de,isCallMuted:fe,toggleCallMute:pe,endWebRTCCall:me,formatCallDuration:he,callDurationSeconds:ge,isCallMinimized:_e,onExpand:ve,onCollapse:ye,onStartVoice:be,onNewChat:xe,showPoweredBy:Se,getVisitorChatHistory:Ce,resumeChat:we,isSessionRestoring:Te,isClosing:Ee}){let De=c.length>0,Oe=y||x||v,ke=!!de,[Ae,je]=(0,b.useState)(!1),[Me,Ne]=(0,b.useState)(!1),[Pe,Fe]=(0,b.useState)([]),[Ie,Le]=(0,b.useState)(!1),Re=(0,b.useRef)(null),[ze,Be]=(0,b.useState)(()=>typeof window<`u`?window.visualViewport?.height??window.innerHeight:600),[Ve,He]=(0,b.useState)(0);(0,b.useEffect)(()=>{if(!s)return;let e=window.visualViewport;if(!e)return;let t=()=>{Be(e.height),He(Math.max(0,window.innerHeight-e.offsetTop-e.height))};return e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t),t(),()=>{e.removeEventListener(`resize`,t),e.removeEventListener(`scroll`,t)}},[s]);let Ue=s&&window.innerHeight-ze>150,We=async()=>{je(!1),Ne(!0),Le(!0);try{let e=await Ce();e?.data&&Fe(e.data)}catch(e){console.error(e)}finally{Le(!1)}},Ge=async e=>{Ne(!1),we?.(e.chatId)};return(0,b.useEffect)(()=>{if(!Ae)return;let e=e=>{let t=e.composedPath?.()?.[0]||e.target;Re.current&&!Re.current.contains(t)&&je(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[Ae]),(0,j.jsxs)(`div`,{style:s?{"--flowengage-primary":n,"--flowengage-accent":n,position:`fixed`,left:`8px`,right:`8px`,bottom:`${Ve}px`,height:ze>0?`${Math.round(ze*.92)}px`:`90dvh`,background:r,borderRadius:`16px 16px 0 0`,display:`flex`,flexDirection:`column`,overflow:`hidden`,animation:Ee?`fe-orb-slide-down 0.28s cubic-bezier(0.16,1,0.3,1) forwards`:`fe-orb-slide-up 0.28s cubic-bezier(0.16,1,0.3,1)`}:{"--flowengage-primary":n,"--flowengage-accent":n,width:`min(350px, calc(100vw - 40px))`,height:`min(640px, calc(100vh - 120px))`,background:r,borderRadius:`22px`,boxShadow:`0 24px 64px rgba(0,0,0,0.18), 0 4px 16px rgba(0,0,0,0.08)`,display:`flex`,flexDirection:`column`,overflow:`hidden`,position:`relative`,animation:Ee?`fe-orb-slide-down 0.28s cubic-bezier(0.16,1,0.3,1) forwards`:`fe-orb-slide-up 0.36s cubic-bezier(0.16,1,0.3,1)`},children:[(0,j.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`40px minmax(0, 1fr) 40px`,alignItems:`center`,columnGap:`14px`,padding:`16px 10px 14px`,background:`transparent`,flexShrink:0,position:`relative`,zIndex:30},children:[(0,j.jsx)(`div`,{style:{display:`flex`,gap:`8px`,alignItems:`center`},children:(0,j.jsx)(`button`,{onClick:ye,style:{width:`40px`,height:`40px`,background:`none`,border:`none`,cursor:`pointer`,color:`#6b7280`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`4px`,borderRadius:`10px`,transition:`color 0.15s ease`,flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color=`#111827`},onMouseLeave:e=>{e.currentTarget.style.color=`#6b7280`},children:(0,j.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,j.jsx)(`polyline`,{points:`6 9 12 15 18 9`})})})}),(()=>{let t=!!i,n=!!e.hasCustomTitle,r=t||n,a=t||!r,o=n||!r,c=a&&o;return(0,j.jsxs)(`div`,{style:{minWidth:0,maxWidth:s?`100%`:`250px`,width:`100%`,justifySelf:`center`,display:`grid`,gridTemplateColumns:c?`minmax(72px, 40%) minmax(0, 60%)`:`1fr`,columnGap:c?`12px`:0,alignItems:`center`,justifyItems:c?`stretch`:`center`},children:[a&&(0,j.jsx)(`div`,{style:{minWidth:0,display:`flex`,alignItems:`center`,justifyContent:`center`,height:`40px`},children:i?(0,j.jsx)(Sk,{logo:i,style:{height:`34px`,width:`100%`,maxWidth:`96px`}}):(0,j.jsx)(`div`,{style:{width:`40px`,height:`40px`,flexShrink:0},children:(0,j.jsx)(Ck,{title:e.chatTitle})})}),o&&(0,j.jsx)(`div`,{style:{minWidth:0,display:`flex`,alignItems:`center`,justifyContent:c?`flex-start`:`center`},children:(0,j.jsx)(`span`,{style:{fontSize:`15px`,fontWeight:600,color:`#111827`,letterSpacing:`-0.01em`,lineHeight:1.2,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:e.chatTitle,children:e.chatTitle})})]})})(),(0,j.jsxs)(`div`,{style:{position:`relative`,isolation:`isolate`,zIndex:10},ref:Re,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>je(e=>!e),style:{width:`40px`,height:`40px`,background:`none`,border:`none`,cursor:`pointer`,color:`#6b7280`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`4px`,borderRadius:`10px`,transition:`color 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.color=`#111827`},onMouseLeave:e=>{e.currentTarget.style.color=`#6b7280`},"aria-label":`Chat options`,children:(0,j.jsxs)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,j.jsx)(`circle`,{cx:`12`,cy:`5`,r:`1.5`}),(0,j.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.5`}),(0,j.jsx)(`circle`,{cx:`12`,cy:`19`,r:`1.5`})]})}),Ae&&(0,j.jsxs)(`div`,{style:{position:`absolute`,top:`34px`,right:0,background:`rgba(15,22,36,0.96)`,backdropFilter:`blur(14px)`,WebkitBackdropFilter:`blur(14px)`,borderRadius:`16px`,overflow:`hidden`,boxShadow:`0 10px 40px rgba(0,0,0,0.45)`,minWidth:`210px`,border:`1px solid rgba(255,255,255,0.07)`,animation:`fe-orb-fade-in 0.18s ease`},children:[(0,j.jsxs)(`button`,{type:`button`,onClick:()=>{je(!1),be?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,j.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,j.jsx)(`path`,{d:`M12 1a4 4 0 014 4v6a4 4 0 01-8 0V5a4 4 0 014-4z`}),(0,j.jsx)(`path`,{d:`M19 10a7 7 0 01-14 0M12 19v4M8 23h8`})]}),`Enter Voice Mode`]}),(0,j.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,j.jsxs)(`button`,{type:`button`,onClick:()=>{je(!1),xe?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,j.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,j.jsx)(`path`,{d:`M12 5H5a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-7`}),(0,j.jsx)(`path`,{d:`M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z`})]}),`Start new chat`]}),Ce&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,j.jsxs)(`button`,{type:`button`,onClick:We,style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,j.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,j.jsx)(`path`,{d:`M12 8v4l3 3M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0z`})}),`Chat history`]})]}),(0,j.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,j.jsxs)(`button`,{type:`button`,onClick:()=>{je(!1),ye?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`#f87171`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(248,113,113,0.1)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,j.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,j.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,j.jsx)(`line`,{x1:`15`,y1:`9`,x2:`9`,y2:`15`}),(0,j.jsx)(`line`,{x1:`9`,y1:`9`,x2:`15`,y2:`15`})]}),`Close conversation`]})]})]})]}),(0,j.jsx)(JD,{webRTCError:le,micError:E,setMicError:D,dismissCallError:ue,isRateLimited:x,rateLimitMessage:ee}),_e&&(0,j.jsx)(dO,{agentName:f,agentHeadshot:p,fallbackAgentName:m,callDurationSeconds:ge,isCallMuted:fe,formatCallDuration:he,toggleCallMute:pe,endWebRTCCall:me,onExpand:ve,primaryColor:n}),(0,j.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,background:`transparent`,position:`relative`},children:[Me?(0,j.jsxs)(`div`,{style:{position:`absolute`,inset:0,background:`white`,zIndex:20,display:`flex`,flexDirection:`column`,animation:`fe-orb-fade-in 0.2s ease`},children:[(0,j.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,padding:`16px`,borderBottom:`1px solid #f3f4f6`,flexShrink:0},children:(0,j.jsxs)(`button`,{onClick:()=>Ne(!1),style:{background:`none`,border:`none`,cursor:`pointer`,display:`flex`,alignItems:`center`,color:`#6b7280`},children:[(0,j.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,j.jsx)(`polyline`,{points:`15 18 9 12 15 6`})}),(0,j.jsx)(`span`,{style:{marginLeft:`8px`,fontWeight:500,fontSize:`15px`},children:`Return to Chat`})]})}),(0,j.jsx)(`div`,{style:{flex:1,overflowY:`auto`,position:`relative`},children:Ie?(0,j.jsx)(`div`,{style:{padding:`40px 20px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`Loading past conversations...`}):Pe.length>0?(0,j.jsx)(`div`,{children:Pe.map(e=>(0,j.jsxs)(`div`,{onClick:()=>Ge(e),style:{padding:`16px 20px`,borderBottom:`1px solid #f3f4f6`,cursor:`pointer`,transition:`background 0.15s ease`},onMouseEnter:e=>e.currentTarget.style.background=`#f9fafb`,onMouseLeave:e=>e.currentTarget.style.background=`white`,children:[(0,j.jsxs)(`div`,{style:{fontSize:`12px`,color:`#6b7280`,marginBottom:`6px`,fontWeight:500},children:[new Date(e.createdAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`}),` at `,new Date(e.createdAt).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})]}),(0,j.jsx)(`div`,{style:{fontSize:`14.5px`,color:`#111827`,opacity:.9,overflow:`hidden`,textOverflow:`ellipsis`,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`,lineHeight:1.4},children:e.message||`Conversation`})]},e.chatId))}):(0,j.jsx)(`div`,{style:{padding:`40px 20px`,textAlign:`center`,color:`#9ca3af`,fontSize:`14px`},children:`No previous chats found.`})})]}):null,De?(0,j.jsx)(KD,{chatHistory:c,isAiTyping:l,isLoading:y,isAgentTyping:u,setReplyContext:ce,TypingDots:Ak,primaryColor:n,agentHeadshot:p,agentDisplayName:f||m,botAvatarNode:(0,j.jsx)(kk,{orbColors:t})}):Te?(0,j.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`16px`},children:[(0,j.jsx)(`div`,{style:{width:`28px`,height:`28px`,border:`3px solid #f3f4f6`,borderTop:`3px solid ${n}`,borderRadius:`50%`,animation:`spin 1s linear infinite`},children:(0,j.jsx)(`style`,{children:`@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }`})}),(0,j.jsx)(`div`,{style:{color:`#6b7280`,fontSize:`14px`,fontWeight:500,animation:`fe-orb-fade-in 1s infinite alternate`},children:`Loading chat...`})]}):(0,j.jsxs)(`div`,{style:{flex:1,overflowY:`auto`,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`22px`,padding:`28px 24px`},children:[(0,j.jsx)(Tk,{size:94,orbColors:t}),(0,j.jsx)(`p`,{style:{margin:0,textAlign:`center`,fontSize:`16px`,color:`#374151`,lineHeight:1.55,maxWidth:`270px`},children:e.introGreeting}),a.length>0&&(0,j.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`8px`,justifyContent:`center`,width:`100%`,padding:`0 8px`},children:a.map(e=>(0,j.jsx)(`button`,{onClick:()=>o?.(e),style:{padding:`8px 16px`,borderRadius:`999px`,background:`white`,border:`1.5px solid ${n}33`,color:n||`#374151`,fontSize:`13px`,fontWeight:500,cursor:`pointer`,transition:`all 0.15s ease`,boxShadow:`0 1px 4px rgba(0,0,0,0.06)`},onMouseEnter:e=>{e.currentTarget.style.background=`${n}12`,e.currentTarget.style.borderColor=n},onMouseLeave:e=>{e.currentTarget.style.background=`white`,e.currentTarget.style.borderColor=`${n}33`},children:e.label||e.text},e.id))})]})]}),oe&&(0,j.jsxs)(`div`,{style:{margin:`0 16px 8px`,padding:`9px 14px`,borderRadius:`12px`,background:`#ecfdf5`,border:`1px solid #6ee7b7`,display:`flex`,alignItems:`center`,gap:`8px`,animation:`fe-orb-fade-in 0.2s ease`,flexShrink:0},children:[(0,j.jsx)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#10b981`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:{flexShrink:0},children:(0,j.jsx)(`polyline`,{points:`20 6 9 17 4 12`})}),(0,j.jsx)(`span`,{style:{fontSize:`13px`,fontWeight:500,color:`#065f46`},children:`Email saved — we'll be in touch!`})]}),(0,j.jsx)(`div`,{style:{background:`transparent`,flexShrink:0,position:`relative`,zIndex:1,padding:re?`6px 0 0`:`12px 0 0`},children:(0,j.jsx)(qD,{input:h,setInput:g,onSubmit:_,isConversationEnded:v,callUiActive:ke,handleToggleVoice:be,showVoiceToggle:d===`agent`,activeScreen:d,inputDisabled:Oe,replyContext:se,clearReplyContext:()=>ce(null),onFileSelect:C,selectedFile:S,onRemoveSelectedFile:te,attachmentError:w,isUploadingAttachment:ne,requiresEmail:re,emailInput:ie,setEmailInput:T,emailError:ae,inputPlaceholder:e.inputPlaceholder})}),!Ue&&(0,j.jsx)(`div`,{style:{flexShrink:0,textAlign:`center`,padding:`8px 20px`,paddingBottom:`max(12px, env(safe-area-inset-bottom, 12px))`,pointerEvents:`none`},children:Se&&(0,j.jsxs)(`span`,{style:{fontSize:`11px`,color:`#9ca3af`,letterSpacing:`0.01em`,userSelect:`none`},children:[`Powered by `,(0,j.jsx)(`strong`,{style:{fontWeight:600,color:`#6b7280`},children:`FlowEngage`})]})})]})}function Mk(){let{status:e,runtimeConfig:t,resolvedConfig:n,chatHistory:r,isOpen:i,activeScreen:a,isHumanHandled:o,agentName:s,agentHeadshot:c,visitorEmail:l,isAgentTyping:u,isAiTyping:d,isLoading:f,isRateLimited:p,rateLimitMessage:m,isConversationEnded:h,incomingCall:g,activeCallId:_,callConnectionState:v,callConnectedAt:y,isCallMuted:x,webRTCError:ee,language:S,chatId:C,historyRef:te,onMessageSync:w,sendMessage:ne,uploadChatFile:re,openWidget:ie,captureVisitorEmail:T,setVoiceMode:ae,endConversation:oe,startNewChat:se,acceptCall:ce,rejectCall:le,endWebRTCCall:ue,toggleCallMute:de,dismissCallError:fe,startTyping:pe,stopTyping:me,updateTypingDraft:he,getVisitorChatHistory:ge,resumeChat:_e,isSessionRestoring:ve,openToChatCounter:ye,voiceEndCounter:be}=Fn();(0,b.useEffect)(()=>{try{pr()}catch{}},[]),(0,b.useEffect)(()=>{ye&&O!==`voice_mode`&&O!==`text_chat`&&O!==`call_screen`&&(ae?.(!1),k(`text_chat`))},[ye]);let xe=t?.widgetSettings||{},Se=n?.widgetSettings||{},Ce={...xe.branding||{},...Se.branding||{}},we={...xe.theme||{},...Se.theme||{}},Te={...xe.features||{},...Se.features||{}},Ee=Te.voice!==!1,ke=Array.isArray(we.orbColors)&&we.orbColors.length>0?we.orbColors:null,Ae=we.buttonColor||we.primaryColor||ke?.[0]||`#3B82F6`,Me={small:50,medium:64,large:80},Ne=Me[we.orbSize]||Me.small,Fe=we.position||`bottom-right`,Ie=Ce.fallbackAgentName||`Agent`,Le=yk(ke??we.chatBgColors),Re=Ce.logo||Ce.logoUrl||null,ze=S||`en`,Be=xe.recommendations?.[ze]||[],Ve=(Se.recommendations?.[ze]??Be).filter(e=>String(e?.label??``).trim()).map((e,t)=>({id:e.key||`qr-${t}`,label:e.label,message:e.label,text:e.label})),He=Array.isArray(Ce.quickChatOptions)&&Ce.quickChatOptions.length>0?Ce.quickChatOptions:Ve,Ue=Ce.hideWatermark===!0?!1:Ce.showPoweredBy!==!1,We=Ce.chatbotEnabled!==!1&&we.chatbotEnabled!==!1,Ge=xe.greetings?.[S]||Se.greetings?.[S]||Ce.introGreeting||`Hello, I'm here to help you know more about OpenSense Labs.`,Ke={entryPrompt:Ce.entryPrompt||`Do you want to explore in a new way?`,yesLabel:Ce.yesLabel||`Yes`,laterLabel:Ce.laterLabel||`Later`,connectionTitle:Ce.connectionTitle||`How would you like to connect?`,voiceLabel:Ce.voiceLabel||`Voice`,textLabel:Ce.textLabel||`Text`,chatTitle:Ce.headerName||`Chat with FlowEngage`,hasCustomTitle:!!(Ce.headerName&&String(Ce.headerName).trim()),introGreeting:Ge,inputPlaceholder:Ce.inputPlaceholder||`Type your message`,analysingLabel:Ce.analysingLabel||`analysing...`},qe=Se.elevenLabsAgentId||t?.elevenLabsAgentId||null,Je=t?.siteId||n?.siteId||null,Ye=t?.apiBaseUrl||``;(0,b.useEffect)(()=>{$n(t?.siteType||null)},[t?.siteType]);let Xe=(0,b.useMemo)(()=>s&&String(s).trim()||t?.ownerName&&String(t.ownerName).trim()||t?.websiteName&&String(t.websiteName).trim()||`Agent`,[s,t?.ownerName,t?.websiteName]),Ze=c&&String(c).trim()||t?.ownerProfileImageUrl&&String(t.ownerProfileImageUrl).trim()||null,Qe=r.some(e=>e.sender===`user`),$e=(0,b.useMemo)(()=>{let e=r.findIndex(e=>e.sender===`user`);return e===-1?!1:r.slice(e+1).some(e=>e.sender===`bot`||e.sender===`ai`||e.sender===`agent`)},[r]),et=!!(Se._dashboardLivePreview||xe._dashboardLivePreview),[O,k]=(0,b.useState)(()=>et?`text_chat`:`entry_prompt`),[tt,nt]=(0,b.useState)(``),[rt,it]=(0,b.useState)(null),[at,ot]=(0,b.useState)(l||``),[st,ct]=(0,b.useState)(``),[lt,ut]=(0,b.useState)(!1),[dt,ft]=(0,b.useState)(0),[pt,mt]=(0,b.useState)(null),[ht,gt]=(0,b.useState)(null),[_t,vt]=(0,b.useState)(``),[yt,bt]=(0,b.useState)(!1),[xt,St]=(0,b.useState)(!1),[Ct,wt]=(0,b.useState)(!1),Tt=(0,b.useRef)(null),Et=(0,b.useRef)(!1),Dt=!l&&Qe&&$e&&O!==`voice_mode`;(0,b.useLayoutEffect)(()=>{if(e!==`ready`||Et.current)return;if(Et.current=!0,!Ee){k(`minimized_orb`);return}let t=!1;try{t=Tr().shouldResumeVoice}catch{}let n=je(),r=Je?De(Je):null,i=n||!!r?.transcript;if(t){ie?.({notifyChatInitiated:!0}),ae?.(!0),k(`voice_mode`);return}if(Pe()){ie?.({notifyChatInitiated:!1}),k(`text_chat`);return}if(i){if((typeof performance<`u`?performance.getEntriesByType?.(`navigation`)?.[0]?.type??`navigate`:`navigate`)===`reload`){k(`minimized_orb`);return}ie?.({notifyChatInitiated:!0}),ae?.(!0),k(`voice_mode`);return}if(Je)try{Oe(Je)}catch{}if(E(Je)){k(`minimized_orb`);return}},[e,r]);let[Ot,kt]=(0,b.useState)(()=>typeof window<`u`&&window.matchMedia(`(max-width: 640px)`).matches);(0,b.useEffect)(()=>{let e=window.matchMedia(`(max-width: 640px)`),t=e=>kt(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,b.useEffect)(()=>{ot(l||``),l&&ct(``)},[l]);let At=(0,b.useCallback)(()=>{gt(null),vt(``)},[]),jt=(0,b.useCallback)(e=>{let t=VD(e);if(t){gt(null),vt(t);return}gt(e),vt(``)},[]);(0,b.useEffect)(()=>{if(!y||v!==`connected`){ft(0);return}let e=()=>{let e=new Date(y).getTime();isNaN(e)||ft(Math.max(0,Math.floor((Date.now()-e)/1e3)))};e();let t=window.setInterval(e,1e3);return()=>window.clearInterval(t)},[y,v]);let Mt=(0,b.useCallback)(()=>{k(`call_screen`),St(!1)},[]),Nt=(0,b.useCallback)(()=>{k(`text_chat`),St(!0)},[]);(0,b.useEffect)(()=>{let e=g?.callId||_||null;if(!e){Tt.current=null;return}if(g?.callId||v===`connecting`||v===`connected`){if(O===`minimized_orb`&&xt&&_&&!g?.callId){Tt.current=e;return}!(!i||O===`minimized_orb`||O===`voice_mode`)&&Tt.current===e||(console.log(`[FlowEngageWidget] forcing call UI to front`,{forcedKey:e,isOpen:i,surface:O,hasIncomingCall:!!g?.callId,activeCallId:_,callConnectionState:v}),Tt.current=e,O===`voice_mode`&&ae?.(!1),ie?.(),Mt())}},[_,v,Mt,g?.callId,i,ie,ae,O]),(0,b.useEffect)(()=>{!g&&!_&&O===`call_screen`&&k(`text_chat`)},[g,_,O]),(0,b.useEffect)(()=>{!_&&xt&&St(!1)},[_,xt]),(0,b.useEffect)(()=>{if(!o||h){he?.(``),me?.();return}if(!tt.trim()||ht){he?.(``);let e=window.setTimeout(()=>me?.(),100);return()=>window.clearTimeout(e)}pe?.();let e=window.setTimeout(()=>he?.(tt),120),t=window.setTimeout(()=>me?.(),1200);return()=>{window.clearTimeout(e),window.clearTimeout(t)}},[tt,ht,o,h,pe,me,he]);let Pt=e=>e?{replyTo:e.messageId||e.id||null,replyToContent:(e.replyToContent||e.message||``).replace(/<[^>]+>/g,``).trim().slice(0,200),replyToSender:e.sender||null}:null,Ft=async e=>{if(e.preventDefault(),h)return;if(Dt){let e=at.trim().toLowerCase();if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)){ct(`Please enter a valid email so we can continue helping you.`);return}await T(e),ct(``),ut(!0),setTimeout(()=>ut(!1),3e3);return}let t=Pt(rt);if(!tt.trim()&&!ht)return;if(ht){try{bt(!0),vt(``);let e=await re(ht),n=e?.data||e,r=tt.trim()||`Shared file: ${UD(ht)}`;nt(``),it(null),At(),await ne(r,``,t,{type:`file`,metadata:{fileUrl:n?.fileUrl,fileName:n?.fileName||ht.name,fileType:n?.fileType||ht.type,fileSize:n?.fileSize||ht.size}})}catch(e){vt(e?.message||`Failed to upload the selected file.`)}finally{bt(!1)}return}let n=tt.trim();nt(``),it(null),await ne(n,``,t)},It=(0,b.useCallback)(()=>{r.length!==0&&se?.()},[r.length,se]),Lt=e=>{let t=Math.floor(e/60);return`${String(t).padStart(2,`0`)}:${String(e%60).padStart(2,`0`)}`},Rt=(0,b.useCallback)(async e=>{if(h||f)return;let t=e.message||e.label||e.text||``;t.trim()&&await ne(t.trim(),``)},[h,f,ne]),zt=Ot&&O===`entry_prompt`?{inset:0}:Ot&&O===`text_chat`?{left:0,right:0,bottom:0}:Ot&&O===`call_screen`?{left:0,right:0,bottom:0,height:`90dvh`,overflow:`hidden`,borderRadius:`16px 16px 0 0`}:Ot&&O===`connection_modal`?{left:`12px`,right:`12px`,bottom:`12px`}:O===`call_screen`?{width:`min(350px, calc(100vw - 40px))`,height:`min(640px, calc(100vh - 120px))`,borderRadius:`22px`,overflow:`hidden`,...Fe===`bottom-left`?{left:`1.5rem`,bottom:`1.5rem`}:{right:`1.5rem`,bottom:`1.5rem`}}:Fe===`bottom-left`?{left:`1.5rem`,bottom:`1.5rem`}:{right:`1.5rem`,bottom:`1.5rem`},Bt=(0,b.useCallback)(()=>{O!==`minimized_orb`&&(wt(!0),setTimeout(()=>{k(`minimized_orb`),wt(!1),_&&St(!0)},280))},[_,O]),Vt=()=>k(`connection_modal`),Ht=()=>{try{let e=window.AudioContext||window.webkitAudioContext;if(e){let t=new e;t.resume().catch(()=>{}),setTimeout(()=>t.close().catch(()=>{}),3e3)}}catch{}ie({notifyChatInitiated:!0}),ae?.(!0),k(`voice_mode`)},Ut=()=>{ie({notifyChatInitiated:!0}),ae?.(!1),k(`text_chat`)},Wt=()=>{ae?.(!1),Bt()};return e!==`ready`||!We||Te.chat===!1?null:(0,j.jsxs)(`div`,{className:`flowengage-widget-root`,style:{position:`fixed`,zIndex:999999,...zt},onWheel:e=>e.stopPropagation(),onTouchMove:e=>e.stopPropagation(),children:[O===`entry_prompt`&&(0,j.jsx)(Ek,{copy:Ke,orbColors:ke,primaryColor:Ae,onYes:()=>{D(Je),Ht()},onLater:()=>{D(Je),Bt()},isMobile:Ot,isClosing:Ct}),O===`minimized_orb`&&(0,j.jsxs)(gm.div,{layoutId:`fe-main-orb`,initial:{scale:.4,opacity:0},animate:{scale:1,opacity:1},transition:{type:`spring`,stiffness:280,damping:18},style:{transformOrigin:`bottom right`,display:`inline-flex`,flexDirection:`column`,alignItems:Fe===`bottom-left`?`flex-start`:`flex-end`,gap:`10px`},children:[_&&(0,j.jsxs)(`button`,{type:`button`,onClick:Mt,style:{maxWidth:Ot?`220px`:`240px`,padding:`10px 14px`,borderRadius:`18px`,border:`1px solid rgba(255,255,255,0.7)`,background:`rgba(255,255,255,0.94)`,backdropFilter:`blur(18px)`,WebkitBackdropFilter:`blur(18px)`,boxShadow:`0 10px 26px rgba(15,23,42,0.14)`,display:`flex`,alignItems:`center`,gap:`10px`,cursor:`pointer`,textAlign:`left`},children:[(0,j.jsx)(`span`,{style:{width:`9px`,height:`9px`,borderRadius:`50%`,background:`#22c55e`,boxShadow:`0 0 0 4px rgba(34,197,94,0.16)`,flexShrink:0}}),(0,j.jsxs)(`span`,{style:{minWidth:0},children:[(0,j.jsx)(`span`,{style:{display:`block`,fontSize:`12px`,fontWeight:700,color:`#111827`,lineHeight:1.2},children:v===`connected`?`Call in progress`:`Call is active`}),(0,j.jsx)(`span`,{style:{display:`block`,fontSize:`11px`,color:`#6b7280`,lineHeight:1.3,marginTop:`2px`,whiteSpace:`nowrap`},children:v===`connected`?`${Lt(dt)} with ${Xe}`:`Tap to return to ${Xe}`})]})]}),(0,j.jsx)(Tk,{size:Ne,orbColors:ke,onClick:_?Mt:Ee?Vt:Ut})]}),O===`connection_modal`&&(0,j.jsx)(Dk,{copy:Ke,orbColors:ke,primaryColor:Ae,onVoice:Ht,onText:Ut,onClose:Bt,isMobile:Ot,isClosing:Ct}),O===`voice_mode`&&(0,j.jsx)(Ok,{orbColors:ke,onEnterChat:Ut,onEndChat:Wt,agentId:qe,siteId:Je,apiBaseUrl:Ye,chatId:C,historyRef:te,onMessageSync:w,voiceEndCounter:be,websiteName:t?.websiteName},`voice`),O===`call_screen`&&(0,j.jsx)(uO,{incomingCall:g,activeCallId:_,callConnectionState:v,callDurationSeconds:dt,isCallMuted:x,agentName:Xe,agentHeadshot:Ze,fallbackAgentName:Ie,acceptCall:ce,rejectCall:le,endWebRTCCall:ue,toggleCallMute:de,formatCallDuration:Lt,onMinimize:Nt,primaryColor:Ae,orbColors:ke,chatHistory:r}),O===`text_chat`&&(0,j.jsx)(jk,{isClosing:Ct,copy:Ke,orbColors:ke,primaryColor:Ae,chatBgGradient:Le,logo:Re,quickChatOptions:He,onQuickChatSelect:Rt,isMobile:Ot,chatHistory:r,isAiTyping:d,isAgentTyping:u,activeScreen:a,agentName:Xe,agentHeadshot:Ze,fallbackAgentName:Ie,input:tt,setInput:nt,onSubmit:Ft,isConversationEnded:h,isLoading:f,isRateLimited:p,rateLimitMessage:m,selectedFile:ht,onFileSelect:jt,onRemoveSelectedFile:At,attachmentError:_t,isUploadingAttachment:yt,requiresEmail:Dt,emailInput:at,setEmailInput:ot,emailError:st,emailCaptureSuccess:lt,replyContext:rt,setReplyContext:it,webRTCError:ee,micError:pt,setMicError:mt,dismissCallError:fe,activeCallId:_,isCallMuted:x,toggleCallMute:de,endWebRTCCall:ue,formatCallDuration:Lt,callDurationSeconds:dt,onCollapse:Bt,onStartVoice:Ht,onNewChat:It,onMinimize:Nt,onExpand:Mt,isCallMinimized:!!_,showPoweredBy:Ue,getVisitorChatHistory:ge,resumeChat:_e,isSessionRestoring:ve}),(0,j.jsx)(`style`,{children:`
|
|
652
652
|
/* Force any SVG (or img) inside LogoSlot to fill the container height
|
|
653
653
|
regardless of whether the component forwards its style prop. */
|
|
654
654
|
.fe-logo-slot svg,
|
|
@@ -640,7 +640,7 @@ registerProcessor("scribeAudioProcessor", ScribeAudioProcessor);
|
|
|
640
640
|
radial-gradient(circle at 82% 50%, ${r} 0%, ${r}99 35%, transparent 65%),
|
|
641
641
|
radial-gradient(circle at 50% 82%, ${i} 0%, ${i}99 30%, transparent 58%),
|
|
642
642
|
white
|
|
643
|
-
`.replace(/\s+/g,` `).trim()}})}var Tk=()=>(0,f.jsx)(`div`,{style:{display:`flex`,marginBottom:`12px`,justifyContent:`flex-start`},children:(0,f.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`5px`,padding:`12px 16px`,borderRadius:`18px`,background:`#fff`,boxShadow:`0 2px 6px rgba(0,0,0,0.04)`},children:[0,1,2].map(e=>(0,f.jsx)(`span`,{style:{width:`7px`,height:`7px`,borderRadius:`50%`,background:`#9ca3af`,animation:`fe-dot-bounce 1.2s ease-in-out ${e*.2}s infinite`,display:`inline-block`}},e))})});function Ek({copy:e,orbColors:t,primaryColor:n,chatBgGradient:r,logo:i,quickChatOptions:a,onQuickChatSelect:o,isMobile:s,chatHistory:c,isAiTyping:l,isAgentTyping:u,activeScreen:p,agentName:m,agentHeadshot:h,fallbackAgentName:g,input:_,setInput:v,onSubmit:y,isConversationEnded:b,isLoading:x,isRateLimited:S,rateLimitMessage:ee,selectedFile:te,onFileSelect:ne,onRemoveSelectedFile:re,attachmentError:C,isUploadingAttachment:ie,requiresEmail:ae,emailInput:oe,setEmailInput:se,emailError:ce,emailCaptureSuccess:le,replyContext:ue,setReplyContext:de,webRTCError:fe,micError:pe,setMicError:me,dismissCallError:he,activeCallId:ge,isCallMuted:_e,toggleCallMute:ve,endWebRTCCall:ye,formatCallDuration:be,callDurationSeconds:xe,isCallMinimized:Se,onExpand:Ce,onCollapse:we,onStartVoice:Te,onNewChat:Ee,showPoweredBy:De,getVisitorChatHistory:Oe,resumeChat:ke,isSessionRestoring:Ae,isClosing:je}){let w=c.length>0,Me=x||S||b,Ne=!!ge,[Pe,Fe]=(0,d.useState)(!1),[Ie,Le]=(0,d.useState)(!1),[Re,ze]=(0,d.useState)([]),[Be,Ve]=(0,d.useState)(!1),He=(0,d.useRef)(null),[Ue,We]=(0,d.useState)(()=>typeof window<`u`?window.visualViewport?.height??window.innerHeight:600),[Ge,Ke]=(0,d.useState)(0);(0,d.useEffect)(()=>{if(!s)return;let e=window.visualViewport;if(!e)return;let t=()=>{We(e.height),Ke(Math.max(0,window.innerHeight-e.offsetTop-e.height))};return e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t),t(),()=>{e.removeEventListener(`resize`,t),e.removeEventListener(`scroll`,t)}},[s]);let qe=s&&window.innerHeight-Ue>150,Je=async()=>{Fe(!1),Le(!0),Ve(!0);try{let e=await Oe();e?.data&&ze(e.data)}catch(e){console.error(e)}finally{Ve(!1)}},Ye=async e=>{Le(!1),ke?.(e.chatId)};return(0,d.useEffect)(()=>{if(!Pe)return;let e=e=>{let t=e.composedPath?.()?.[0]||e.target;He.current&&!He.current.contains(t)&&Fe(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[Pe]),(0,f.jsxs)(`div`,{style:s?{"--flowengage-primary":n,"--flowengage-accent":n,position:`fixed`,left:`8px`,right:`8px`,bottom:`${Ge}px`,height:Ue>0?`${Math.round(Ue*.92)}px`:`90dvh`,background:r,borderRadius:`16px 16px 0 0`,display:`flex`,flexDirection:`column`,overflow:`hidden`,animation:je?`fe-orb-slide-down 0.28s cubic-bezier(0.16,1,0.3,1) forwards`:`fe-orb-slide-up 0.28s cubic-bezier(0.16,1,0.3,1)`}:{"--flowengage-primary":n,"--flowengage-accent":n,width:`min(350px, calc(100vw - 40px))`,height:`min(640px, calc(100vh - 120px))`,background:r,borderRadius:`22px`,boxShadow:`0 24px 64px rgba(0,0,0,0.18), 0 4px 16px rgba(0,0,0,0.08)`,display:`flex`,flexDirection:`column`,overflow:`hidden`,position:`relative`,animation:je?`fe-orb-slide-down 0.28s cubic-bezier(0.16,1,0.3,1) forwards`:`fe-orb-slide-up 0.36s cubic-bezier(0.16,1,0.3,1)`},children:[(0,f.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`40px minmax(0, 1fr) 40px`,alignItems:`center`,columnGap:`14px`,padding:`16px 10px 14px`,background:`transparent`,flexShrink:0,position:`relative`,zIndex:30},children:[(0,f.jsx)(`div`,{style:{display:`flex`,gap:`8px`,alignItems:`center`},children:(0,f.jsx)(`button`,{onClick:we,style:{width:`40px`,height:`40px`,background:`none`,border:`none`,cursor:`pointer`,color:`#6b7280`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`4px`,borderRadius:`10px`,transition:`color 0.15s ease`,flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color=`#111827`},onMouseLeave:e=>{e.currentTarget.style.color=`#6b7280`},children:(0,f.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,f.jsx)(`polyline`,{points:`6 9 12 15 18 9`})})})}),(()=>{let t=!!i,n=!!e.hasCustomTitle,r=t||n,a=t||!r,o=n||!r,c=a&&o;return(0,f.jsxs)(`div`,{style:{minWidth:0,maxWidth:s?`100%`:`250px`,width:`100%`,justifySelf:`center`,display:`grid`,gridTemplateColumns:c?`minmax(72px, 40%) minmax(0, 60%)`:`1fr`,alignItems:`center`,justifyItems:c?`stretch`:`center`},children:[a&&(0,f.jsx)(`div`,{style:{minWidth:0,display:`flex`,alignItems:`center`,justifyContent:`center`,height:`40px`},children:i?(0,f.jsx)(_k,{logo:i,style:{height:`34px`,width:`100%`,maxWidth:`96px`}}):(0,f.jsx)(`div`,{style:{width:`40px`,height:`40px`,flexShrink:0},children:(0,f.jsx)(vk,{title:e.chatTitle})})}),o&&(0,f.jsx)(`div`,{style:{minWidth:0,display:`flex`,alignItems:`center`,justifyContent:c?`flex-start`:`center`},children:(0,f.jsx)(`span`,{style:{fontSize:`15px`,fontWeight:600,color:`#111827`,letterSpacing:`-0.01em`,lineHeight:1.2,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:e.chatTitle,children:e.chatTitle})})]})})(),(0,f.jsxs)(`div`,{style:{position:`relative`,isolation:`isolate`,zIndex:10},ref:He,children:[(0,f.jsx)(`button`,{type:`button`,onClick:()=>Fe(e=>!e),style:{width:`40px`,height:`40px`,background:`none`,border:`none`,cursor:`pointer`,color:`#6b7280`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`4px`,borderRadius:`10px`,transition:`color 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.color=`#111827`},onMouseLeave:e=>{e.currentTarget.style.color=`#6b7280`},"aria-label":`Chat options`,children:(0,f.jsxs)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,f.jsx)(`circle`,{cx:`12`,cy:`5`,r:`1.5`}),(0,f.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.5`}),(0,f.jsx)(`circle`,{cx:`12`,cy:`19`,r:`1.5`})]})}),Pe&&(0,f.jsxs)(`div`,{style:{position:`absolute`,top:`34px`,right:0,background:`rgba(15,22,36,0.96)`,backdropFilter:`blur(14px)`,WebkitBackdropFilter:`blur(14px)`,borderRadius:`16px`,overflow:`hidden`,boxShadow:`0 10px 40px rgba(0,0,0,0.45)`,minWidth:`210px`,border:`1px solid rgba(255,255,255,0.07)`,animation:`fe-orb-fade-in 0.18s ease`},children:[(0,f.jsxs)(`button`,{type:`button`,onClick:()=>{Fe(!1),Te?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,f.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,f.jsx)(`path`,{d:`M12 1a4 4 0 014 4v6a4 4 0 01-8 0V5a4 4 0 014-4z`}),(0,f.jsx)(`path`,{d:`M19 10a7 7 0 01-14 0M12 19v4M8 23h8`})]}),`Enter Voice Mode`]}),(0,f.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,f.jsxs)(`button`,{type:`button`,onClick:()=>{Fe(!1),Ee?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,f.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,f.jsx)(`path`,{d:`M12 5H5a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-7`}),(0,f.jsx)(`path`,{d:`M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z`})]}),`Start new chat`]}),Oe&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,f.jsxs)(`button`,{type:`button`,onClick:Je,style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,f.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,f.jsx)(`path`,{d:`M12 8v4l3 3M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0z`})}),`Chat history`]})]}),(0,f.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,f.jsxs)(`button`,{type:`button`,onClick:()=>{Fe(!1),we?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`#f87171`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(248,113,113,0.1)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,f.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,f.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,f.jsx)(`line`,{x1:`15`,y1:`9`,x2:`9`,y2:`15`}),(0,f.jsx)(`line`,{x1:`9`,y1:`9`,x2:`15`,y2:`15`})]}),`Close conversation`]})]})]})]}),(0,f.jsx)(UD,{webRTCError:fe,micError:pe,setMicError:me,dismissCallError:he,isRateLimited:S,rateLimitMessage:ee}),Se&&(0,f.jsx)(oO,{agentName:m,agentHeadshot:h,fallbackAgentName:g,callDurationSeconds:xe,isCallMuted:_e,formatCallDuration:be,toggleCallMute:ve,endWebRTCCall:ye,onExpand:Ce,primaryColor:n}),(0,f.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,background:`transparent`,position:`relative`},children:[Ie?(0,f.jsxs)(`div`,{style:{position:`absolute`,inset:0,background:`white`,zIndex:20,display:`flex`,flexDirection:`column`,animation:`fe-orb-fade-in 0.2s ease`},children:[(0,f.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,padding:`16px`,borderBottom:`1px solid #f3f4f6`,flexShrink:0},children:(0,f.jsxs)(`button`,{onClick:()=>Le(!1),style:{background:`none`,border:`none`,cursor:`pointer`,display:`flex`,alignItems:`center`,color:`#6b7280`},children:[(0,f.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,f.jsx)(`polyline`,{points:`15 18 9 12 15 6`})}),(0,f.jsx)(`span`,{style:{marginLeft:`8px`,fontWeight:500,fontSize:`15px`},children:`Return to Chat`})]})}),(0,f.jsx)(`div`,{style:{flex:1,overflowY:`auto`,position:`relative`},children:Be?(0,f.jsx)(`div`,{style:{padding:`40px 20px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`Loading past conversations...`}):Re.length>0?(0,f.jsx)(`div`,{children:Re.map(e=>(0,f.jsxs)(`div`,{onClick:()=>Ye(e),style:{padding:`16px 20px`,borderBottom:`1px solid #f3f4f6`,cursor:`pointer`,transition:`background 0.15s ease`},onMouseEnter:e=>e.currentTarget.style.background=`#f9fafb`,onMouseLeave:e=>e.currentTarget.style.background=`white`,children:[(0,f.jsxs)(`div`,{style:{fontSize:`12px`,color:`#6b7280`,marginBottom:`6px`,fontWeight:500},children:[new Date(e.createdAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`}),` at `,new Date(e.createdAt).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})]}),(0,f.jsx)(`div`,{style:{fontSize:`14.5px`,color:`#111827`,opacity:.9,overflow:`hidden`,textOverflow:`ellipsis`,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`,lineHeight:1.4},children:e.message||`Conversation`})]},e.chatId))}):(0,f.jsx)(`div`,{style:{padding:`40px 20px`,textAlign:`center`,color:`#9ca3af`,fontSize:`14px`},children:`No previous chats found.`})})]}):null,w?(0,f.jsx)(VD,{chatHistory:c,isAiTyping:l,isLoading:x,isAgentTyping:u,setReplyContext:de,TypingDots:Tk,primaryColor:n,agentHeadshot:h,agentDisplayName:m||g,botAvatarNode:(0,f.jsx)(wk,{orbColors:t})}):Ae?(0,f.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`16px`},children:[(0,f.jsx)(`div`,{style:{width:`28px`,height:`28px`,border:`3px solid #f3f4f6`,borderTop:`3px solid ${n}`,borderRadius:`50%`,animation:`spin 1s linear infinite`},children:(0,f.jsx)(`style`,{children:`@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }`})}),(0,f.jsx)(`div`,{style:{color:`#6b7280`,fontSize:`14px`,fontWeight:500,animation:`fe-orb-fade-in 1s infinite alternate`},children:`Loading chat...`})]}):(0,f.jsxs)(`div`,{style:{flex:1,overflowY:`auto`,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`22px`,padding:`28px 24px`},children:[(0,f.jsx)(bk,{size:94,orbColors:t}),(0,f.jsx)(`p`,{style:{margin:0,textAlign:`center`,fontSize:`16px`,color:`#374151`,lineHeight:1.55,maxWidth:`270px`},children:e.introGreeting}),a.length>0&&(0,f.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`8px`,justifyContent:`center`,width:`100%`,padding:`0 8px`},children:a.map(e=>(0,f.jsx)(`button`,{onClick:()=>o?.(e),style:{padding:`8px 16px`,borderRadius:`999px`,background:`white`,border:`1.5px solid ${n}33`,color:n||`#374151`,fontSize:`13px`,fontWeight:500,cursor:`pointer`,transition:`all 0.15s ease`,boxShadow:`0 1px 4px rgba(0,0,0,0.06)`},onMouseEnter:e=>{e.currentTarget.style.background=`${n}12`,e.currentTarget.style.borderColor=n},onMouseLeave:e=>{e.currentTarget.style.background=`white`,e.currentTarget.style.borderColor=`${n}33`},children:e.label||e.text},e.id))})]})]}),le&&(0,f.jsxs)(`div`,{style:{margin:`0 16px 8px`,padding:`9px 14px`,borderRadius:`12px`,background:`#ecfdf5`,border:`1px solid #6ee7b7`,display:`flex`,alignItems:`center`,gap:`8px`,animation:`fe-orb-fade-in 0.2s ease`,flexShrink:0},children:[(0,f.jsx)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#10b981`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:{flexShrink:0},children:(0,f.jsx)(`polyline`,{points:`20 6 9 17 4 12`})}),(0,f.jsx)(`span`,{style:{fontSize:`13px`,fontWeight:500,color:`#065f46`},children:`Email saved — we'll be in touch!`})]}),(0,f.jsx)(`div`,{style:{background:`transparent`,flexShrink:0,position:`relative`,zIndex:1,padding:ae?`6px 0 0`:`12px 0 0`},children:(0,f.jsx)(HD,{input:_,setInput:v,onSubmit:y,isConversationEnded:b,callUiActive:Ne,handleToggleVoice:Te,showVoiceToggle:p===`agent`,activeScreen:p,inputDisabled:Me,replyContext:ue,clearReplyContext:()=>de(null),onFileSelect:ne,selectedFile:te,onRemoveSelectedFile:re,attachmentError:C,isUploadingAttachment:ie,requiresEmail:ae,emailInput:oe,setEmailInput:se,emailError:ce,inputPlaceholder:e.inputPlaceholder})}),!qe&&(0,f.jsx)(`div`,{style:{flexShrink:0,textAlign:`center`,padding:`8px 20px`,paddingBottom:`max(12px, env(safe-area-inset-bottom, 12px))`,pointerEvents:`none`},children:De&&(0,f.jsxs)(`span`,{style:{fontSize:`11px`,color:`#9ca3af`,letterSpacing:`0.01em`,userSelect:`none`},children:[`Powered by `,(0,f.jsx)(`strong`,{style:{fontWeight:600,color:`#6b7280`},children:`FlowEngage`})]})})]})}function Dk(){let{status:e,runtimeConfig:t,resolvedConfig:n,chatHistory:r,isOpen:i,activeScreen:a,isHumanHandled:o,agentName:s,agentHeadshot:c,visitorEmail:l,isAgentTyping:u,isAiTyping:p,isLoading:m,isRateLimited:h,rateLimitMessage:g,isConversationEnded:_,incomingCall:v,activeCallId:y,callConnectionState:b,callConnectedAt:x,isCallMuted:S,webRTCError:ee,language:te,chatId:ne,historyRef:re,onMessageSync:ae,sendMessage:oe,uploadChatFile:se,openWidget:ce,captureVisitorEmail:le,setVoiceMode:ue,endConversation:de,startNewChat:fe,acceptCall:pe,rejectCall:me,endWebRTCCall:he,toggleCallMute:ge,dismissCallError:_e,startTyping:ve,stopTyping:ye,updateTypingDraft:be,getVisitorChatHistory:xe,resumeChat:we,isSessionRestoring:Te,openToChatCounter:De,voiceEndCounter:Oe}=On();(0,d.useEffect)(()=>{try{ar()}catch{}},[]),(0,d.useEffect)(()=>{De&&T!==`voice_mode`&&T!==`text_chat`&&T!==`call_screen`&&(ue?.(!1),E(`text_chat`))},[De]);let Ae=t?.widgetSettings||{},je=n?.widgetSettings||{},w={...Ae.branding||{},...je.branding||{}},Me={...Ae.theme||{},...je.theme||{}},Ne={...Ae.features||{},...je.features||{}},Pe=Ne.voice!==!1,Fe=Array.isArray(Me.orbColors)&&Me.orbColors.length>0?Me.orbColors:null,Ie=Me.buttonColor||Me.primaryColor||Fe?.[0]||`#3B82F6`,Le={small:50,medium:64,large:80},Re=Le[Me.orbSize]||Le.small,ze=Me.position||`bottom-right`,Be=w.fallbackAgentName||`Agent`,Ve=mk(Fe??Me.chatBgColors),He=w.logo||w.logoUrl||null,Ue=te||`en`,We=Ae.recommendations?.[Ue]||[],Ge=(je.recommendations?.[Ue]??We).filter(e=>String(e?.label??``).trim()).map((e,t)=>({id:e.key||`qr-${t}`,label:e.label,message:e.label,text:e.label})),Ke=Array.isArray(w.quickChatOptions)&&w.quickChatOptions.length>0?w.quickChatOptions:Ge,qe=w.hideWatermark===!0?!1:w.showPoweredBy!==!1,Je=w.chatbotEnabled!==!1&&Me.chatbotEnabled!==!1,Ye=Ae.greetings?.[te]||je.greetings?.[te]||w.introGreeting||`Hello, I'm here to help you know more about OpenSense Labs.`,Xe={entryPrompt:w.entryPrompt||`Do you want to explore in a new way?`,yesLabel:w.yesLabel||`Yes`,laterLabel:w.laterLabel||`Later`,connectionTitle:w.connectionTitle||`How would you like to connect?`,voiceLabel:w.voiceLabel||`Voice`,textLabel:w.textLabel||`Text`,chatTitle:w.headerName||`Chat with FlowEngage`,hasCustomTitle:!!(w.headerName&&String(w.headerName).trim()),introGreeting:Ye,inputPlaceholder:w.inputPlaceholder||`Type your message`,analysingLabel:w.analysingLabel||`analysing...`},Ze=je.elevenLabsAgentId||t?.elevenLabsAgentId||null,Qe=t?.siteId||n?.siteId||null,$e=t?.apiBaseUrl||``;(0,d.useEffect)(()=>{Gn(t?.siteType||null)},[t?.siteType]);let et=(0,d.useMemo)(()=>s&&String(s).trim()||t?.ownerName&&String(t.ownerName).trim()||t?.websiteName&&String(t.websiteName).trim()||`Agent`,[s,t?.ownerName,t?.websiteName]),tt=c&&String(c).trim()||t?.ownerProfileImageUrl&&String(t.ownerProfileImageUrl).trim()||null,nt=r.some(e=>e.sender===`user`),rt=(0,d.useMemo)(()=>{let e=r.findIndex(e=>e.sender===`user`);return e===-1?!1:r.slice(e+1).some(e=>e.sender===`bot`||e.sender===`ai`||e.sender===`agent`)},[r]),it=!!(je._dashboardLivePreview||Ae._dashboardLivePreview),[T,E]=(0,d.useState)(()=>it?`text_chat`:`entry_prompt`),[at,ot]=(0,d.useState)(``),[st,D]=(0,d.useState)(null),[ct,lt]=(0,d.useState)(l||``),[ut,dt]=(0,d.useState)(``),[ft,pt]=(0,d.useState)(!1),[mt,ht]=(0,d.useState)(0),[gt,_t]=(0,d.useState)(null),[vt,yt]=(0,d.useState)(null),[bt,xt]=(0,d.useState)(``),[St,Ct]=(0,d.useState)(!1),[wt,Tt]=(0,d.useState)(!1),[Et,Dt]=(0,d.useState)(!1),Ot=(0,d.useRef)(null),kt=(0,d.useRef)(!1),At=!l&&nt&&rt&&T!==`voice_mode`;(0,d.useLayoutEffect)(()=>{if(e!==`ready`||kt.current)return;if(kt.current=!0,!Pe){E(`minimized_orb`);return}let t=!1;try{t=_r().shouldResumeVoice}catch{}let n=Ee(),r=Qe?Se(Qe):null,i=n||!!r?.transcript;if(t){ce?.({notifyChatInitiated:!0}),ue?.(!0),E(`voice_mode`);return}if(ke()){ce?.({notifyChatInitiated:!1}),E(`text_chat`);return}if(i){if((typeof performance<`u`?performance.getEntriesByType?.(`navigation`)?.[0]?.type??`navigate`:`navigate`)===`reload`){E(`minimized_orb`);return}ce?.({notifyChatInitiated:!0}),ue?.(!0),E(`voice_mode`);return}if(Qe)try{Ce(Qe)}catch{}if(C(Qe)){E(`minimized_orb`);return}},[e,r]);let[jt,Mt]=(0,d.useState)(()=>typeof window<`u`&&window.matchMedia(`(max-width: 640px)`).matches);(0,d.useEffect)(()=>{let e=window.matchMedia(`(max-width: 640px)`),t=e=>Mt(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,d.useEffect)(()=>{lt(l||``),l&&dt(``)},[l]);let Nt=(0,d.useCallback)(()=>{yt(null),xt(``)},[]),Pt=(0,d.useCallback)(e=>{let t=ID(e);if(t){yt(null),xt(t);return}yt(e),xt(``)},[]);(0,d.useEffect)(()=>{if(!x||b!==`connected`){ht(0);return}let e=()=>{let e=new Date(x).getTime();isNaN(e)||ht(Math.max(0,Math.floor((Date.now()-e)/1e3)))};e();let t=window.setInterval(e,1e3);return()=>window.clearInterval(t)},[x,b]);let Ft=(0,d.useCallback)(()=>{E(`call_screen`),Tt(!1)},[]),It=(0,d.useCallback)(()=>{E(`text_chat`),Tt(!0)},[]);(0,d.useEffect)(()=>{let e=v?.callId||y||null;if(!e){Ot.current=null;return}if(v?.callId||b===`connecting`||b===`connected`){if(T===`minimized_orb`&&wt&&y&&!v?.callId){Ot.current=e;return}!(!i||T===`minimized_orb`||T===`voice_mode`)&&Ot.current===e||(console.log(`[FlowEngageWidget] forcing call UI to front`,{forcedKey:e,isOpen:i,surface:T,hasIncomingCall:!!v?.callId,activeCallId:y,callConnectionState:b}),Ot.current=e,T===`voice_mode`&&ue?.(!1),ce?.(),Ft())}},[y,b,Ft,v?.callId,i,ce,ue,T]),(0,d.useEffect)(()=>{!v&&!y&&T===`call_screen`&&E(`text_chat`)},[v,y,T]),(0,d.useEffect)(()=>{!y&&wt&&Tt(!1)},[y,wt]),(0,d.useEffect)(()=>{if(!o||_){be?.(``),ye?.();return}if(!at.trim()||vt){be?.(``);let e=window.setTimeout(()=>ye?.(),100);return()=>window.clearTimeout(e)}ve?.();let e=window.setTimeout(()=>be?.(at),120),t=window.setTimeout(()=>ye?.(),1200);return()=>{window.clearTimeout(e),window.clearTimeout(t)}},[at,vt,o,_,ve,ye,be]);let Lt=e=>e?{replyTo:e.messageId||e.id||null,replyToContent:(e.replyToContent||e.message||``).replace(/<[^>]+>/g,``).trim().slice(0,200),replyToSender:e.sender||null}:null,Rt=async e=>{if(e.preventDefault(),_)return;if(At){let e=ct.trim().toLowerCase();if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)){dt(`Please enter a valid email so we can continue helping you.`);return}await le(e),dt(``),pt(!0),setTimeout(()=>pt(!1),3e3);return}let t=Lt(st);if(!at.trim()&&!vt)return;if(vt){try{Ct(!0),xt(``);let e=await se(vt),n=e?.data||e,r=at.trim()||`Shared file: ${RD(vt)}`;ot(``),D(null),Nt(),await oe(r,``,t,{type:`file`,metadata:{fileUrl:n?.fileUrl,fileName:n?.fileName||vt.name,fileType:n?.fileType||vt.type,fileSize:n?.fileSize||vt.size}})}catch(e){xt(e?.message||`Failed to upload the selected file.`)}finally{Ct(!1)}return}let n=at.trim();ot(``),D(null),await oe(n,``,t)},zt=(0,d.useCallback)(()=>{r.length!==0&&fe?.()},[r.length,fe]),Bt=e=>{let t=Math.floor(e/60);return`${String(t).padStart(2,`0`)}:${String(e%60).padStart(2,`0`)}`},Vt=(0,d.useCallback)(async e=>{if(_||m)return;let t=e.message||e.label||e.text||``;t.trim()&&await oe(t.trim(),``)},[_,m,oe]),Ht=jt&&T===`entry_prompt`?{inset:0}:jt&&T===`text_chat`?{left:0,right:0,bottom:0}:jt&&T===`call_screen`?{left:0,right:0,bottom:0,height:`90dvh`,overflow:`hidden`,borderRadius:`16px 16px 0 0`}:jt&&T===`connection_modal`?{left:`12px`,right:`12px`,bottom:`12px`}:T===`call_screen`?{width:`min(350px, calc(100vw - 40px))`,height:`min(640px, calc(100vh - 120px))`,borderRadius:`22px`,overflow:`hidden`,...ze===`bottom-left`?{left:`1.5rem`,bottom:`1.5rem`}:{right:`1.5rem`,bottom:`1.5rem`}}:ze===`bottom-left`?{left:`1.5rem`,bottom:`1.5rem`}:{right:`1.5rem`,bottom:`1.5rem`},Ut=(0,d.useCallback)(()=>{T!==`minimized_orb`&&(Dt(!0),setTimeout(()=>{E(`minimized_orb`),Dt(!1),y&&Tt(!0)},280))},[y,T]),Wt=()=>E(`connection_modal`),Gt=()=>{try{let e=window.AudioContext||window.webkitAudioContext;if(e){let t=new e;t.resume().catch(()=>{}),setTimeout(()=>t.close().catch(()=>{}),3e3)}}catch{}ce({notifyChatInitiated:!0}),ue?.(!0),E(`voice_mode`)},Kt=()=>{ce({notifyChatInitiated:!0}),ue?.(!1),E(`text_chat`)},qt=()=>{ue?.(!1),Ut()};return e!==`ready`||!Je||Ne.chat===!1?null:(0,f.jsxs)(`div`,{className:`flowengage-widget-root`,style:{position:`fixed`,zIndex:999999,...Ht},onWheel:e=>e.stopPropagation(),onTouchMove:e=>e.stopPropagation(),children:[T===`entry_prompt`&&(0,f.jsx)(xk,{copy:Xe,orbColors:Fe,primaryColor:Ie,onYes:()=>{ie(Qe),Gt()},onLater:()=>{ie(Qe),Ut()},isMobile:jt,isClosing:Et}),T===`minimized_orb`&&(0,f.jsxs)(vm.div,{layoutId:`fe-main-orb`,initial:{scale:.4,opacity:0},animate:{scale:1,opacity:1},transition:{type:`spring`,stiffness:280,damping:18},style:{transformOrigin:`bottom right`,display:`inline-flex`,flexDirection:`column`,alignItems:ze===`bottom-left`?`flex-start`:`flex-end`,gap:`10px`},children:[y&&(0,f.jsxs)(`button`,{type:`button`,onClick:Ft,style:{maxWidth:jt?`220px`:`240px`,padding:`10px 14px`,borderRadius:`18px`,border:`1px solid rgba(255,255,255,0.7)`,background:`rgba(255,255,255,0.94)`,backdropFilter:`blur(18px)`,WebkitBackdropFilter:`blur(18px)`,boxShadow:`0 10px 26px rgba(15,23,42,0.14)`,display:`flex`,alignItems:`center`,gap:`10px`,cursor:`pointer`,textAlign:`left`},children:[(0,f.jsx)(`span`,{style:{width:`9px`,height:`9px`,borderRadius:`50%`,background:`#22c55e`,boxShadow:`0 0 0 4px rgba(34,197,94,0.16)`,flexShrink:0}}),(0,f.jsxs)(`span`,{style:{minWidth:0},children:[(0,f.jsx)(`span`,{style:{display:`block`,fontSize:`12px`,fontWeight:700,color:`#111827`,lineHeight:1.2},children:b===`connected`?`Call in progress`:`Call is active`}),(0,f.jsx)(`span`,{style:{display:`block`,fontSize:`11px`,color:`#6b7280`,lineHeight:1.3,marginTop:`2px`,whiteSpace:`nowrap`},children:b===`connected`?`${Bt(mt)} with ${et}`:`Tap to return to ${et}`})]})]}),(0,f.jsx)(bk,{size:Re,orbColors:Fe,onClick:y?Ft:Pe?Wt:Kt})]}),T===`connection_modal`&&(0,f.jsx)(Sk,{copy:Xe,orbColors:Fe,primaryColor:Ie,onVoice:Gt,onText:Kt,onClose:Ut,isMobile:jt,isClosing:Et}),T===`voice_mode`&&(0,f.jsx)(Ck,{orbColors:Fe,onEnterChat:Kt,onEndChat:qt,agentId:Ze,siteId:Qe,apiBaseUrl:$e,chatId:ne,historyRef:re,onMessageSync:ae,voiceEndCounter:Oe,websiteName:t?.websiteName},`voice`),T===`call_screen`&&(0,f.jsx)(aO,{incomingCall:v,activeCallId:y,callConnectionState:b,callDurationSeconds:mt,isCallMuted:S,agentName:et,agentHeadshot:tt,fallbackAgentName:Be,acceptCall:pe,rejectCall:me,endWebRTCCall:he,toggleCallMute:ge,formatCallDuration:Bt,onMinimize:It,primaryColor:Ie,orbColors:Fe,chatHistory:r}),T===`text_chat`&&(0,f.jsx)(Ek,{isClosing:Et,copy:Xe,orbColors:Fe,primaryColor:Ie,chatBgGradient:Ve,logo:He,quickChatOptions:Ke,onQuickChatSelect:Vt,isMobile:jt,chatHistory:r,isAiTyping:p,isAgentTyping:u,activeScreen:a,agentName:et,agentHeadshot:tt,fallbackAgentName:Be,input:at,setInput:ot,onSubmit:Rt,isConversationEnded:_,isLoading:m,isRateLimited:h,rateLimitMessage:g,selectedFile:vt,onFileSelect:Pt,onRemoveSelectedFile:Nt,attachmentError:bt,isUploadingAttachment:St,requiresEmail:At,emailInput:ct,setEmailInput:lt,emailError:ut,emailCaptureSuccess:ft,replyContext:st,setReplyContext:D,webRTCError:ee,micError:gt,setMicError:_t,dismissCallError:_e,activeCallId:y,isCallMuted:S,toggleCallMute:ge,endWebRTCCall:he,formatCallDuration:Bt,callDurationSeconds:mt,onCollapse:Ut,onStartVoice:Gt,onNewChat:zt,onMinimize:It,onExpand:Ft,isCallMinimized:!!y,showPoweredBy:qe,getVisitorChatHistory:xe,resumeChat:we,isSessionRestoring:Te}),(0,f.jsx)(`style`,{children:`
|
|
643
|
+
`.replace(/\s+/g,` `).trim()}})}var Tk=()=>(0,f.jsx)(`div`,{style:{display:`flex`,marginBottom:`12px`,justifyContent:`flex-start`},children:(0,f.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`5px`,padding:`12px 16px`,borderRadius:`18px`,background:`#fff`,boxShadow:`0 2px 6px rgba(0,0,0,0.04)`},children:[0,1,2].map(e=>(0,f.jsx)(`span`,{style:{width:`7px`,height:`7px`,borderRadius:`50%`,background:`#9ca3af`,animation:`fe-dot-bounce 1.2s ease-in-out ${e*.2}s infinite`,display:`inline-block`}},e))})});function Ek({copy:e,orbColors:t,primaryColor:n,chatBgGradient:r,logo:i,quickChatOptions:a,onQuickChatSelect:o,isMobile:s,chatHistory:c,isAiTyping:l,isAgentTyping:u,activeScreen:p,agentName:m,agentHeadshot:h,fallbackAgentName:g,input:_,setInput:v,onSubmit:y,isConversationEnded:b,isLoading:x,isRateLimited:S,rateLimitMessage:ee,selectedFile:te,onFileSelect:ne,onRemoveSelectedFile:re,attachmentError:C,isUploadingAttachment:ie,requiresEmail:ae,emailInput:oe,setEmailInput:se,emailError:ce,emailCaptureSuccess:le,replyContext:ue,setReplyContext:de,webRTCError:fe,micError:pe,setMicError:me,dismissCallError:he,activeCallId:ge,isCallMuted:_e,toggleCallMute:ve,endWebRTCCall:ye,formatCallDuration:be,callDurationSeconds:xe,isCallMinimized:Se,onExpand:Ce,onCollapse:we,onStartVoice:Te,onNewChat:Ee,showPoweredBy:De,getVisitorChatHistory:Oe,resumeChat:ke,isSessionRestoring:Ae,isClosing:je}){let w=c.length>0,Me=x||S||b,Ne=!!ge,[Pe,Fe]=(0,d.useState)(!1),[Ie,Le]=(0,d.useState)(!1),[Re,ze]=(0,d.useState)([]),[Be,Ve]=(0,d.useState)(!1),He=(0,d.useRef)(null),[Ue,We]=(0,d.useState)(()=>typeof window<`u`?window.visualViewport?.height??window.innerHeight:600),[Ge,Ke]=(0,d.useState)(0);(0,d.useEffect)(()=>{if(!s)return;let e=window.visualViewport;if(!e)return;let t=()=>{We(e.height),Ke(Math.max(0,window.innerHeight-e.offsetTop-e.height))};return e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t),t(),()=>{e.removeEventListener(`resize`,t),e.removeEventListener(`scroll`,t)}},[s]);let qe=s&&window.innerHeight-Ue>150,Je=async()=>{Fe(!1),Le(!0),Ve(!0);try{let e=await Oe();e?.data&&ze(e.data)}catch(e){console.error(e)}finally{Ve(!1)}},Ye=async e=>{Le(!1),ke?.(e.chatId)};return(0,d.useEffect)(()=>{if(!Pe)return;let e=e=>{let t=e.composedPath?.()?.[0]||e.target;He.current&&!He.current.contains(t)&&Fe(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[Pe]),(0,f.jsxs)(`div`,{style:s?{"--flowengage-primary":n,"--flowengage-accent":n,position:`fixed`,left:`8px`,right:`8px`,bottom:`${Ge}px`,height:Ue>0?`${Math.round(Ue*.92)}px`:`90dvh`,background:r,borderRadius:`16px 16px 0 0`,display:`flex`,flexDirection:`column`,overflow:`hidden`,animation:je?`fe-orb-slide-down 0.28s cubic-bezier(0.16,1,0.3,1) forwards`:`fe-orb-slide-up 0.28s cubic-bezier(0.16,1,0.3,1)`}:{"--flowengage-primary":n,"--flowengage-accent":n,width:`min(350px, calc(100vw - 40px))`,height:`min(640px, calc(100vh - 120px))`,background:r,borderRadius:`22px`,boxShadow:`0 24px 64px rgba(0,0,0,0.18), 0 4px 16px rgba(0,0,0,0.08)`,display:`flex`,flexDirection:`column`,overflow:`hidden`,position:`relative`,animation:je?`fe-orb-slide-down 0.28s cubic-bezier(0.16,1,0.3,1) forwards`:`fe-orb-slide-up 0.36s cubic-bezier(0.16,1,0.3,1)`},children:[(0,f.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`40px minmax(0, 1fr) 40px`,alignItems:`center`,columnGap:`14px`,padding:`16px 10px 14px`,background:`transparent`,flexShrink:0,position:`relative`,zIndex:30},children:[(0,f.jsx)(`div`,{style:{display:`flex`,gap:`8px`,alignItems:`center`},children:(0,f.jsx)(`button`,{onClick:we,style:{width:`40px`,height:`40px`,background:`none`,border:`none`,cursor:`pointer`,color:`#6b7280`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`4px`,borderRadius:`10px`,transition:`color 0.15s ease`,flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color=`#111827`},onMouseLeave:e=>{e.currentTarget.style.color=`#6b7280`},children:(0,f.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,f.jsx)(`polyline`,{points:`6 9 12 15 18 9`})})})}),(()=>{let t=!!i,n=!!e.hasCustomTitle,r=t||n,a=t||!r,o=n||!r,c=a&&o;return(0,f.jsxs)(`div`,{style:{minWidth:0,maxWidth:s?`100%`:`250px`,width:`100%`,justifySelf:`center`,display:`grid`,gridTemplateColumns:c?`minmax(72px, 40%) minmax(0, 60%)`:`1fr`,columnGap:c?`12px`:0,alignItems:`center`,justifyItems:c?`stretch`:`center`},children:[a&&(0,f.jsx)(`div`,{style:{minWidth:0,display:`flex`,alignItems:`center`,justifyContent:`center`,height:`40px`},children:i?(0,f.jsx)(_k,{logo:i,style:{height:`34px`,width:`100%`,maxWidth:`96px`}}):(0,f.jsx)(`div`,{style:{width:`40px`,height:`40px`,flexShrink:0},children:(0,f.jsx)(vk,{title:e.chatTitle})})}),o&&(0,f.jsx)(`div`,{style:{minWidth:0,display:`flex`,alignItems:`center`,justifyContent:c?`flex-start`:`center`},children:(0,f.jsx)(`span`,{style:{fontSize:`15px`,fontWeight:600,color:`#111827`,letterSpacing:`-0.01em`,lineHeight:1.2,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:e.chatTitle,children:e.chatTitle})})]})})(),(0,f.jsxs)(`div`,{style:{position:`relative`,isolation:`isolate`,zIndex:10},ref:He,children:[(0,f.jsx)(`button`,{type:`button`,onClick:()=>Fe(e=>!e),style:{width:`40px`,height:`40px`,background:`none`,border:`none`,cursor:`pointer`,color:`#6b7280`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`4px`,borderRadius:`10px`,transition:`color 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.color=`#111827`},onMouseLeave:e=>{e.currentTarget.style.color=`#6b7280`},"aria-label":`Chat options`,children:(0,f.jsxs)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,f.jsx)(`circle`,{cx:`12`,cy:`5`,r:`1.5`}),(0,f.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.5`}),(0,f.jsx)(`circle`,{cx:`12`,cy:`19`,r:`1.5`})]})}),Pe&&(0,f.jsxs)(`div`,{style:{position:`absolute`,top:`34px`,right:0,background:`rgba(15,22,36,0.96)`,backdropFilter:`blur(14px)`,WebkitBackdropFilter:`blur(14px)`,borderRadius:`16px`,overflow:`hidden`,boxShadow:`0 10px 40px rgba(0,0,0,0.45)`,minWidth:`210px`,border:`1px solid rgba(255,255,255,0.07)`,animation:`fe-orb-fade-in 0.18s ease`},children:[(0,f.jsxs)(`button`,{type:`button`,onClick:()=>{Fe(!1),Te?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,f.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,f.jsx)(`path`,{d:`M12 1a4 4 0 014 4v6a4 4 0 01-8 0V5a4 4 0 014-4z`}),(0,f.jsx)(`path`,{d:`M19 10a7 7 0 01-14 0M12 19v4M8 23h8`})]}),`Enter Voice Mode`]}),(0,f.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,f.jsxs)(`button`,{type:`button`,onClick:()=>{Fe(!1),Ee?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,f.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,f.jsx)(`path`,{d:`M12 5H5a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-7`}),(0,f.jsx)(`path`,{d:`M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z`})]}),`Start new chat`]}),Oe&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,f.jsxs)(`button`,{type:`button`,onClick:Je,style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`white`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255,255,255,0.08)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,f.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,f.jsx)(`path`,{d:`M12 8v4l3 3M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0z`})}),`Chat history`]})]}),(0,f.jsx)(`div`,{style:{height:`1px`,background:`rgba(255,255,255,0.07)`,margin:`0 14px`}}),(0,f.jsxs)(`button`,{type:`button`,onClick:()=>{Fe(!1),we?.()},style:{display:`flex`,alignItems:`center`,gap:`12px`,width:`100%`,padding:`14px 18px`,background:`none`,border:`none`,color:`#f87171`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,textAlign:`left`,transition:`background 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(248,113,113,0.1)`},onMouseLeave:e=>{e.currentTarget.style.background=`none`},children:[(0,f.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,f.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,f.jsx)(`line`,{x1:`15`,y1:`9`,x2:`9`,y2:`15`}),(0,f.jsx)(`line`,{x1:`9`,y1:`9`,x2:`15`,y2:`15`})]}),`Close conversation`]})]})]})]}),(0,f.jsx)(UD,{webRTCError:fe,micError:pe,setMicError:me,dismissCallError:he,isRateLimited:S,rateLimitMessage:ee}),Se&&(0,f.jsx)(oO,{agentName:m,agentHeadshot:h,fallbackAgentName:g,callDurationSeconds:xe,isCallMuted:_e,formatCallDuration:be,toggleCallMute:ve,endWebRTCCall:ye,onExpand:Ce,primaryColor:n}),(0,f.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,background:`transparent`,position:`relative`},children:[Ie?(0,f.jsxs)(`div`,{style:{position:`absolute`,inset:0,background:`white`,zIndex:20,display:`flex`,flexDirection:`column`,animation:`fe-orb-fade-in 0.2s ease`},children:[(0,f.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,padding:`16px`,borderBottom:`1px solid #f3f4f6`,flexShrink:0},children:(0,f.jsxs)(`button`,{onClick:()=>Le(!1),style:{background:`none`,border:`none`,cursor:`pointer`,display:`flex`,alignItems:`center`,color:`#6b7280`},children:[(0,f.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,f.jsx)(`polyline`,{points:`15 18 9 12 15 6`})}),(0,f.jsx)(`span`,{style:{marginLeft:`8px`,fontWeight:500,fontSize:`15px`},children:`Return to Chat`})]})}),(0,f.jsx)(`div`,{style:{flex:1,overflowY:`auto`,position:`relative`},children:Be?(0,f.jsx)(`div`,{style:{padding:`40px 20px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`Loading past conversations...`}):Re.length>0?(0,f.jsx)(`div`,{children:Re.map(e=>(0,f.jsxs)(`div`,{onClick:()=>Ye(e),style:{padding:`16px 20px`,borderBottom:`1px solid #f3f4f6`,cursor:`pointer`,transition:`background 0.15s ease`},onMouseEnter:e=>e.currentTarget.style.background=`#f9fafb`,onMouseLeave:e=>e.currentTarget.style.background=`white`,children:[(0,f.jsxs)(`div`,{style:{fontSize:`12px`,color:`#6b7280`,marginBottom:`6px`,fontWeight:500},children:[new Date(e.createdAt).toLocaleDateString(void 0,{month:`short`,day:`numeric`}),` at `,new Date(e.createdAt).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})]}),(0,f.jsx)(`div`,{style:{fontSize:`14.5px`,color:`#111827`,opacity:.9,overflow:`hidden`,textOverflow:`ellipsis`,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`,lineHeight:1.4},children:e.message||`Conversation`})]},e.chatId))}):(0,f.jsx)(`div`,{style:{padding:`40px 20px`,textAlign:`center`,color:`#9ca3af`,fontSize:`14px`},children:`No previous chats found.`})})]}):null,w?(0,f.jsx)(VD,{chatHistory:c,isAiTyping:l,isLoading:x,isAgentTyping:u,setReplyContext:de,TypingDots:Tk,primaryColor:n,agentHeadshot:h,agentDisplayName:m||g,botAvatarNode:(0,f.jsx)(wk,{orbColors:t})}):Ae?(0,f.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`16px`},children:[(0,f.jsx)(`div`,{style:{width:`28px`,height:`28px`,border:`3px solid #f3f4f6`,borderTop:`3px solid ${n}`,borderRadius:`50%`,animation:`spin 1s linear infinite`},children:(0,f.jsx)(`style`,{children:`@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }`})}),(0,f.jsx)(`div`,{style:{color:`#6b7280`,fontSize:`14px`,fontWeight:500,animation:`fe-orb-fade-in 1s infinite alternate`},children:`Loading chat...`})]}):(0,f.jsxs)(`div`,{style:{flex:1,overflowY:`auto`,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`22px`,padding:`28px 24px`},children:[(0,f.jsx)(bk,{size:94,orbColors:t}),(0,f.jsx)(`p`,{style:{margin:0,textAlign:`center`,fontSize:`16px`,color:`#374151`,lineHeight:1.55,maxWidth:`270px`},children:e.introGreeting}),a.length>0&&(0,f.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`8px`,justifyContent:`center`,width:`100%`,padding:`0 8px`},children:a.map(e=>(0,f.jsx)(`button`,{onClick:()=>o?.(e),style:{padding:`8px 16px`,borderRadius:`999px`,background:`white`,border:`1.5px solid ${n}33`,color:n||`#374151`,fontSize:`13px`,fontWeight:500,cursor:`pointer`,transition:`all 0.15s ease`,boxShadow:`0 1px 4px rgba(0,0,0,0.06)`},onMouseEnter:e=>{e.currentTarget.style.background=`${n}12`,e.currentTarget.style.borderColor=n},onMouseLeave:e=>{e.currentTarget.style.background=`white`,e.currentTarget.style.borderColor=`${n}33`},children:e.label||e.text},e.id))})]})]}),le&&(0,f.jsxs)(`div`,{style:{margin:`0 16px 8px`,padding:`9px 14px`,borderRadius:`12px`,background:`#ecfdf5`,border:`1px solid #6ee7b7`,display:`flex`,alignItems:`center`,gap:`8px`,animation:`fe-orb-fade-in 0.2s ease`,flexShrink:0},children:[(0,f.jsx)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#10b981`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:{flexShrink:0},children:(0,f.jsx)(`polyline`,{points:`20 6 9 17 4 12`})}),(0,f.jsx)(`span`,{style:{fontSize:`13px`,fontWeight:500,color:`#065f46`},children:`Email saved — we'll be in touch!`})]}),(0,f.jsx)(`div`,{style:{background:`transparent`,flexShrink:0,position:`relative`,zIndex:1,padding:ae?`6px 0 0`:`12px 0 0`},children:(0,f.jsx)(HD,{input:_,setInput:v,onSubmit:y,isConversationEnded:b,callUiActive:Ne,handleToggleVoice:Te,showVoiceToggle:p===`agent`,activeScreen:p,inputDisabled:Me,replyContext:ue,clearReplyContext:()=>de(null),onFileSelect:ne,selectedFile:te,onRemoveSelectedFile:re,attachmentError:C,isUploadingAttachment:ie,requiresEmail:ae,emailInput:oe,setEmailInput:se,emailError:ce,inputPlaceholder:e.inputPlaceholder})}),!qe&&(0,f.jsx)(`div`,{style:{flexShrink:0,textAlign:`center`,padding:`8px 20px`,paddingBottom:`max(12px, env(safe-area-inset-bottom, 12px))`,pointerEvents:`none`},children:De&&(0,f.jsxs)(`span`,{style:{fontSize:`11px`,color:`#9ca3af`,letterSpacing:`0.01em`,userSelect:`none`},children:[`Powered by `,(0,f.jsx)(`strong`,{style:{fontWeight:600,color:`#6b7280`},children:`FlowEngage`})]})})]})}function Dk(){let{status:e,runtimeConfig:t,resolvedConfig:n,chatHistory:r,isOpen:i,activeScreen:a,isHumanHandled:o,agentName:s,agentHeadshot:c,visitorEmail:l,isAgentTyping:u,isAiTyping:p,isLoading:m,isRateLimited:h,rateLimitMessage:g,isConversationEnded:_,incomingCall:v,activeCallId:y,callConnectionState:b,callConnectedAt:x,isCallMuted:S,webRTCError:ee,language:te,chatId:ne,historyRef:re,onMessageSync:ae,sendMessage:oe,uploadChatFile:se,openWidget:ce,captureVisitorEmail:le,setVoiceMode:ue,endConversation:de,startNewChat:fe,acceptCall:pe,rejectCall:me,endWebRTCCall:he,toggleCallMute:ge,dismissCallError:_e,startTyping:ve,stopTyping:ye,updateTypingDraft:be,getVisitorChatHistory:xe,resumeChat:we,isSessionRestoring:Te,openToChatCounter:De,voiceEndCounter:Oe}=On();(0,d.useEffect)(()=>{try{ar()}catch{}},[]),(0,d.useEffect)(()=>{De&&T!==`voice_mode`&&T!==`text_chat`&&T!==`call_screen`&&(ue?.(!1),E(`text_chat`))},[De]);let Ae=t?.widgetSettings||{},je=n?.widgetSettings||{},w={...Ae.branding||{},...je.branding||{}},Me={...Ae.theme||{},...je.theme||{}},Ne={...Ae.features||{},...je.features||{}},Pe=Ne.voice!==!1,Fe=Array.isArray(Me.orbColors)&&Me.orbColors.length>0?Me.orbColors:null,Ie=Me.buttonColor||Me.primaryColor||Fe?.[0]||`#3B82F6`,Le={small:50,medium:64,large:80},Re=Le[Me.orbSize]||Le.small,ze=Me.position||`bottom-right`,Be=w.fallbackAgentName||`Agent`,Ve=mk(Fe??Me.chatBgColors),He=w.logo||w.logoUrl||null,Ue=te||`en`,We=Ae.recommendations?.[Ue]||[],Ge=(je.recommendations?.[Ue]??We).filter(e=>String(e?.label??``).trim()).map((e,t)=>({id:e.key||`qr-${t}`,label:e.label,message:e.label,text:e.label})),Ke=Array.isArray(w.quickChatOptions)&&w.quickChatOptions.length>0?w.quickChatOptions:Ge,qe=w.hideWatermark===!0?!1:w.showPoweredBy!==!1,Je=w.chatbotEnabled!==!1&&Me.chatbotEnabled!==!1,Ye=Ae.greetings?.[te]||je.greetings?.[te]||w.introGreeting||`Hello, I'm here to help you know more about OpenSense Labs.`,Xe={entryPrompt:w.entryPrompt||`Do you want to explore in a new way?`,yesLabel:w.yesLabel||`Yes`,laterLabel:w.laterLabel||`Later`,connectionTitle:w.connectionTitle||`How would you like to connect?`,voiceLabel:w.voiceLabel||`Voice`,textLabel:w.textLabel||`Text`,chatTitle:w.headerName||`Chat with FlowEngage`,hasCustomTitle:!!(w.headerName&&String(w.headerName).trim()),introGreeting:Ye,inputPlaceholder:w.inputPlaceholder||`Type your message`,analysingLabel:w.analysingLabel||`analysing...`},Ze=je.elevenLabsAgentId||t?.elevenLabsAgentId||null,Qe=t?.siteId||n?.siteId||null,$e=t?.apiBaseUrl||``;(0,d.useEffect)(()=>{Gn(t?.siteType||null)},[t?.siteType]);let et=(0,d.useMemo)(()=>s&&String(s).trim()||t?.ownerName&&String(t.ownerName).trim()||t?.websiteName&&String(t.websiteName).trim()||`Agent`,[s,t?.ownerName,t?.websiteName]),tt=c&&String(c).trim()||t?.ownerProfileImageUrl&&String(t.ownerProfileImageUrl).trim()||null,nt=r.some(e=>e.sender===`user`),rt=(0,d.useMemo)(()=>{let e=r.findIndex(e=>e.sender===`user`);return e===-1?!1:r.slice(e+1).some(e=>e.sender===`bot`||e.sender===`ai`||e.sender===`agent`)},[r]),it=!!(je._dashboardLivePreview||Ae._dashboardLivePreview),[T,E]=(0,d.useState)(()=>it?`text_chat`:`entry_prompt`),[at,ot]=(0,d.useState)(``),[st,D]=(0,d.useState)(null),[ct,lt]=(0,d.useState)(l||``),[ut,dt]=(0,d.useState)(``),[ft,pt]=(0,d.useState)(!1),[mt,ht]=(0,d.useState)(0),[gt,_t]=(0,d.useState)(null),[vt,yt]=(0,d.useState)(null),[bt,xt]=(0,d.useState)(``),[St,Ct]=(0,d.useState)(!1),[wt,Tt]=(0,d.useState)(!1),[Et,Dt]=(0,d.useState)(!1),Ot=(0,d.useRef)(null),kt=(0,d.useRef)(!1),At=!l&&nt&&rt&&T!==`voice_mode`;(0,d.useLayoutEffect)(()=>{if(e!==`ready`||kt.current)return;if(kt.current=!0,!Pe){E(`minimized_orb`);return}let t=!1;try{t=_r().shouldResumeVoice}catch{}let n=Ee(),r=Qe?Se(Qe):null,i=n||!!r?.transcript;if(t){ce?.({notifyChatInitiated:!0}),ue?.(!0),E(`voice_mode`);return}if(ke()){ce?.({notifyChatInitiated:!1}),E(`text_chat`);return}if(i){if((typeof performance<`u`?performance.getEntriesByType?.(`navigation`)?.[0]?.type??`navigate`:`navigate`)===`reload`){E(`minimized_orb`);return}ce?.({notifyChatInitiated:!0}),ue?.(!0),E(`voice_mode`);return}if(Qe)try{Ce(Qe)}catch{}if(C(Qe)){E(`minimized_orb`);return}},[e,r]);let[jt,Mt]=(0,d.useState)(()=>typeof window<`u`&&window.matchMedia(`(max-width: 640px)`).matches);(0,d.useEffect)(()=>{let e=window.matchMedia(`(max-width: 640px)`),t=e=>Mt(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,d.useEffect)(()=>{lt(l||``),l&&dt(``)},[l]);let Nt=(0,d.useCallback)(()=>{yt(null),xt(``)},[]),Pt=(0,d.useCallback)(e=>{let t=ID(e);if(t){yt(null),xt(t);return}yt(e),xt(``)},[]);(0,d.useEffect)(()=>{if(!x||b!==`connected`){ht(0);return}let e=()=>{let e=new Date(x).getTime();isNaN(e)||ht(Math.max(0,Math.floor((Date.now()-e)/1e3)))};e();let t=window.setInterval(e,1e3);return()=>window.clearInterval(t)},[x,b]);let Ft=(0,d.useCallback)(()=>{E(`call_screen`),Tt(!1)},[]),It=(0,d.useCallback)(()=>{E(`text_chat`),Tt(!0)},[]);(0,d.useEffect)(()=>{let e=v?.callId||y||null;if(!e){Ot.current=null;return}if(v?.callId||b===`connecting`||b===`connected`){if(T===`minimized_orb`&&wt&&y&&!v?.callId){Ot.current=e;return}!(!i||T===`minimized_orb`||T===`voice_mode`)&&Ot.current===e||(console.log(`[FlowEngageWidget] forcing call UI to front`,{forcedKey:e,isOpen:i,surface:T,hasIncomingCall:!!v?.callId,activeCallId:y,callConnectionState:b}),Ot.current=e,T===`voice_mode`&&ue?.(!1),ce?.(),Ft())}},[y,b,Ft,v?.callId,i,ce,ue,T]),(0,d.useEffect)(()=>{!v&&!y&&T===`call_screen`&&E(`text_chat`)},[v,y,T]),(0,d.useEffect)(()=>{!y&&wt&&Tt(!1)},[y,wt]),(0,d.useEffect)(()=>{if(!o||_){be?.(``),ye?.();return}if(!at.trim()||vt){be?.(``);let e=window.setTimeout(()=>ye?.(),100);return()=>window.clearTimeout(e)}ve?.();let e=window.setTimeout(()=>be?.(at),120),t=window.setTimeout(()=>ye?.(),1200);return()=>{window.clearTimeout(e),window.clearTimeout(t)}},[at,vt,o,_,ve,ye,be]);let Lt=e=>e?{replyTo:e.messageId||e.id||null,replyToContent:(e.replyToContent||e.message||``).replace(/<[^>]+>/g,``).trim().slice(0,200),replyToSender:e.sender||null}:null,Rt=async e=>{if(e.preventDefault(),_)return;if(At){let e=ct.trim().toLowerCase();if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)){dt(`Please enter a valid email so we can continue helping you.`);return}await le(e),dt(``),pt(!0),setTimeout(()=>pt(!1),3e3);return}let t=Lt(st);if(!at.trim()&&!vt)return;if(vt){try{Ct(!0),xt(``);let e=await se(vt),n=e?.data||e,r=at.trim()||`Shared file: ${RD(vt)}`;ot(``),D(null),Nt(),await oe(r,``,t,{type:`file`,metadata:{fileUrl:n?.fileUrl,fileName:n?.fileName||vt.name,fileType:n?.fileType||vt.type,fileSize:n?.fileSize||vt.size}})}catch(e){xt(e?.message||`Failed to upload the selected file.`)}finally{Ct(!1)}return}let n=at.trim();ot(``),D(null),await oe(n,``,t)},zt=(0,d.useCallback)(()=>{r.length!==0&&fe?.()},[r.length,fe]),Bt=e=>{let t=Math.floor(e/60);return`${String(t).padStart(2,`0`)}:${String(e%60).padStart(2,`0`)}`},Vt=(0,d.useCallback)(async e=>{if(_||m)return;let t=e.message||e.label||e.text||``;t.trim()&&await oe(t.trim(),``)},[_,m,oe]),Ht=jt&&T===`entry_prompt`?{inset:0}:jt&&T===`text_chat`?{left:0,right:0,bottom:0}:jt&&T===`call_screen`?{left:0,right:0,bottom:0,height:`90dvh`,overflow:`hidden`,borderRadius:`16px 16px 0 0`}:jt&&T===`connection_modal`?{left:`12px`,right:`12px`,bottom:`12px`}:T===`call_screen`?{width:`min(350px, calc(100vw - 40px))`,height:`min(640px, calc(100vh - 120px))`,borderRadius:`22px`,overflow:`hidden`,...ze===`bottom-left`?{left:`1.5rem`,bottom:`1.5rem`}:{right:`1.5rem`,bottom:`1.5rem`}}:ze===`bottom-left`?{left:`1.5rem`,bottom:`1.5rem`}:{right:`1.5rem`,bottom:`1.5rem`},Ut=(0,d.useCallback)(()=>{T!==`minimized_orb`&&(Dt(!0),setTimeout(()=>{E(`minimized_orb`),Dt(!1),y&&Tt(!0)},280))},[y,T]),Wt=()=>E(`connection_modal`),Gt=()=>{try{let e=window.AudioContext||window.webkitAudioContext;if(e){let t=new e;t.resume().catch(()=>{}),setTimeout(()=>t.close().catch(()=>{}),3e3)}}catch{}ce({notifyChatInitiated:!0}),ue?.(!0),E(`voice_mode`)},Kt=()=>{ce({notifyChatInitiated:!0}),ue?.(!1),E(`text_chat`)},qt=()=>{ue?.(!1),Ut()};return e!==`ready`||!Je||Ne.chat===!1?null:(0,f.jsxs)(`div`,{className:`flowengage-widget-root`,style:{position:`fixed`,zIndex:999999,...Ht},onWheel:e=>e.stopPropagation(),onTouchMove:e=>e.stopPropagation(),children:[T===`entry_prompt`&&(0,f.jsx)(xk,{copy:Xe,orbColors:Fe,primaryColor:Ie,onYes:()=>{ie(Qe),Gt()},onLater:()=>{ie(Qe),Ut()},isMobile:jt,isClosing:Et}),T===`minimized_orb`&&(0,f.jsxs)(vm.div,{layoutId:`fe-main-orb`,initial:{scale:.4,opacity:0},animate:{scale:1,opacity:1},transition:{type:`spring`,stiffness:280,damping:18},style:{transformOrigin:`bottom right`,display:`inline-flex`,flexDirection:`column`,alignItems:ze===`bottom-left`?`flex-start`:`flex-end`,gap:`10px`},children:[y&&(0,f.jsxs)(`button`,{type:`button`,onClick:Ft,style:{maxWidth:jt?`220px`:`240px`,padding:`10px 14px`,borderRadius:`18px`,border:`1px solid rgba(255,255,255,0.7)`,background:`rgba(255,255,255,0.94)`,backdropFilter:`blur(18px)`,WebkitBackdropFilter:`blur(18px)`,boxShadow:`0 10px 26px rgba(15,23,42,0.14)`,display:`flex`,alignItems:`center`,gap:`10px`,cursor:`pointer`,textAlign:`left`},children:[(0,f.jsx)(`span`,{style:{width:`9px`,height:`9px`,borderRadius:`50%`,background:`#22c55e`,boxShadow:`0 0 0 4px rgba(34,197,94,0.16)`,flexShrink:0}}),(0,f.jsxs)(`span`,{style:{minWidth:0},children:[(0,f.jsx)(`span`,{style:{display:`block`,fontSize:`12px`,fontWeight:700,color:`#111827`,lineHeight:1.2},children:b===`connected`?`Call in progress`:`Call is active`}),(0,f.jsx)(`span`,{style:{display:`block`,fontSize:`11px`,color:`#6b7280`,lineHeight:1.3,marginTop:`2px`,whiteSpace:`nowrap`},children:b===`connected`?`${Bt(mt)} with ${et}`:`Tap to return to ${et}`})]})]}),(0,f.jsx)(bk,{size:Re,orbColors:Fe,onClick:y?Ft:Pe?Wt:Kt})]}),T===`connection_modal`&&(0,f.jsx)(Sk,{copy:Xe,orbColors:Fe,primaryColor:Ie,onVoice:Gt,onText:Kt,onClose:Ut,isMobile:jt,isClosing:Et}),T===`voice_mode`&&(0,f.jsx)(Ck,{orbColors:Fe,onEnterChat:Kt,onEndChat:qt,agentId:Ze,siteId:Qe,apiBaseUrl:$e,chatId:ne,historyRef:re,onMessageSync:ae,voiceEndCounter:Oe,websiteName:t?.websiteName},`voice`),T===`call_screen`&&(0,f.jsx)(aO,{incomingCall:v,activeCallId:y,callConnectionState:b,callDurationSeconds:mt,isCallMuted:S,agentName:et,agentHeadshot:tt,fallbackAgentName:Be,acceptCall:pe,rejectCall:me,endWebRTCCall:he,toggleCallMute:ge,formatCallDuration:Bt,onMinimize:It,primaryColor:Ie,orbColors:Fe,chatHistory:r}),T===`text_chat`&&(0,f.jsx)(Ek,{isClosing:Et,copy:Xe,orbColors:Fe,primaryColor:Ie,chatBgGradient:Ve,logo:He,quickChatOptions:Ke,onQuickChatSelect:Vt,isMobile:jt,chatHistory:r,isAiTyping:p,isAgentTyping:u,activeScreen:a,agentName:et,agentHeadshot:tt,fallbackAgentName:Be,input:at,setInput:ot,onSubmit:Rt,isConversationEnded:_,isLoading:m,isRateLimited:h,rateLimitMessage:g,selectedFile:vt,onFileSelect:Pt,onRemoveSelectedFile:Nt,attachmentError:bt,isUploadingAttachment:St,requiresEmail:At,emailInput:ct,setEmailInput:lt,emailError:ut,emailCaptureSuccess:ft,replyContext:st,setReplyContext:D,webRTCError:ee,micError:gt,setMicError:_t,dismissCallError:_e,activeCallId:y,isCallMuted:S,toggleCallMute:ge,endWebRTCCall:he,formatCallDuration:Bt,callDurationSeconds:mt,onCollapse:Ut,onStartVoice:Gt,onNewChat:zt,onMinimize:It,onExpand:Ft,isCallMinimized:!!y,showPoweredBy:qe,getVisitorChatHistory:xe,resumeChat:we,isSessionRestoring:Te}),(0,f.jsx)(`style`,{children:`
|
|
644
644
|
/* Force any SVG (or img) inside LogoSlot to fill the container height
|
|
645
645
|
regardless of whether the component forwards its style prop. */
|
|
646
646
|
.fe-logo-slot svg,
|
|
@@ -30958,6 +30958,7 @@ function zk({ copy: e, orbColors: t, primaryColor: n, chatBgGradient: r, logo: i
|
|
|
30958
30958
|
justifySelf: "center",
|
|
30959
30959
|
display: "grid",
|
|
30960
30960
|
gridTemplateColumns: c ? "minmax(72px, 40%) minmax(0, 60%)" : "1fr",
|
|
30961
|
+
columnGap: c ? "12px" : 0,
|
|
30961
30962
|
alignItems: "center",
|
|
30962
30963
|
justifyItems: c ? "stretch" : "center"
|
|
30963
30964
|
},
|