@accurix/centrinfo-widget 1.1.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,s as p,t as m,v as h,y as g}from"./config-CHvO9tW1.mjs";import{render as _}from"preact";import{useCallback as v,useEffect as y,useMemo as b,useRef as x,useState as S}from"preact/hooks";import{Fragment as C,jsx as w,jsxs as T}from"preact/jsx-runtime";const E=[`audio/webm;codecs=opus`,`audio/webm`,`audio/ogg;codecs=opus`,`audio/ogg`],ee=e=>{let t=globalThis.MediaRecorder;if(typeof t?.isTypeSupported==`function`){for(let n of E)if(t.isTypeSupported(n))try{return new t(e,{mimeType:n})}catch{}}return new t(e)},D=e=>{if(!(!e||e.state!==`recording`)){try{e.requestData()}catch{}e.stop()}},te=[{name:`Smileys`,emojis:`😀.😃.😄.😁.😅.😂.🤣.😊.😇.🙂.🙃.😉.😌.😍.🥰.😘.😋.😛.😜.🤪.🤗.🤭.🤔.🤐.😐.😶.😏.🙄.😴.🥳.😎.🤓.🥺.😢.😭.😤.😠.🤯.😬.😱.🤩.🥱`.split(`.`)},{name:`Gestures`,emojis:[`👍`,`👎`,`👌`,`🤌`,`✌️`,`🤞`,`🤟`,`🤘`,`🤙`,`👈`,`👉`,`👆`,`👇`,`✋`,`🖐️`,`👋`,`🤝`,`🙏`,`💪`,`👏`,`🙌`,`👐`,`🤲`,`🫶`]},{name:`Hearts & symbols`,emojis:`❤️.🧡.💛.💚.💙.💜.🖤.🤍.💔.❣️.💕.💖.💘.💝.✨.⭐.🌟.💫.🔥.🎉.🎊.✅.❌.⚡.💯.🚀`.split(`.`)},{name:`Animals & nature`,emojis:[`🐶`,`🐱`,`🦊`,`🐻`,`🐼`,`🐨`,`🦁`,`🐮`,`🐸`,`🐵`,`🐧`,`🦄`,`🐝`,`🦋`,`🐢`,`🐬`,`🌷`,`🌸`,`🌹`,`🌻`,`🌳`,`🍀`]},{name:`Food & drink`,emojis:[`🍎`,`🍌`,`🍉`,`🍓`,`🍒`,`🥑`,`🍔`,`🍟`,`🍕`,`🌮`,`🍿`,`🍩`,`🍪`,`🎂`,`☕`,`🍵`,`🍺`,`🥂`,`🍷`]},{name:`Objects & travel`,emojis:`🚀.✈️.🚗.🏠.📦.📱.💻.⌚.📷.💡.🔑.🎁.📌.✏️.📝.📞.📧.💰.📈.⏰.🔔.🎯.🏆.🎮.🎵.💬.👀`.split(`.`)}],O={inquiry:{title:`Leave a message`,submit:`Send message`,fields:[{key:`visitorName`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`visitorEmail`,label:`Email`,kind:`email`,required:!0,identity:`email`},{key:`message`,label:`Message`,kind:`textarea`,required:!0,placeholder:`How can we help?`}]},contact:{title:`Share your details`,submit:`Save`,fields:[{key:`name`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`email`,label:`Email`,kind:`email`,required:!0,identity:`email`},{key:`phone`,label:`Phone`,kind:`tel`,required:!0,identity:`phone`}]},"book-demo":{title:`Book a demo`,submit:`Request demo`,fields:[{key:`visitorName`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`visitorEmail`,label:`Email`,kind:`email`,required:!0,identity:`email`},{key:`preferredAt`,label:`Preferred time`,kind:`text`,placeholder:`e.g. Thursday 3pm`},{key:`notes`,label:`Notes`,kind:`textarea`,placeholder:`Anything we should know?`}]},"request-callback":{title:`Request a callback`,submit:`Request callback`,fields:[{key:`visitorName`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`visitorPhone`,label:`Phone`,kind:`tel`,required:!0,identity:`phone`},{key:`bestTime`,label:`Best time to call`,kind:`text`,placeholder:`e.g. tomorrow afternoon`},{key:`topic`,label:`Topic`,kind:`text`,placeholder:`What should we call about?`}]},"subscribe-newsletter":{title:`Subscribe`,submit:`Subscribe`,fields:[{key:`visitorName`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`visitorEmail`,label:`Email`,kind:`email`,required:!0,identity:`email`}]}},k=(e,t)=>w(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`,...t,children:e}),A=e=>w(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,...e,children:w(`path`,{"fill-rule":`evenodd`,"clip-rule":`evenodd`,d:`M5 3.25h14A3.75 3.75 0 0 1 22.75 7v6A3.75 3.75 0 0 1 19 16.75h-7.19l-4.26 3.84A.75.75 0 0 1 6.25 20v-3.32A3.75 3.75 0 0 1 2.25 13V7A3.75 3.75 0 0 1 6 3.25Zm3 7.75a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Zm4 0a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Zm4 0a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z`})}),j=e=>k(w(`path`,{d:`m6 9 6 6 6-6`}),e),ne=e=>k(T(C,{children:[w(`path`,{d:`m22 2-7 20-4-9-9-4Z`}),w(`path`,{d:`M22 2 11 13`})]}),e),M=e=>k(T(C,{children:[w(`path`,{d:`M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z`}),w(`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`}),w(`line`,{x1:`12`,y1:`19`,x2:`12`,y2:`22`})]}),e),re=e=>k(T(C,{children:[w(`path`,{d:`M9 9v1a3 3 0 0 0 4.24 2.73`}),w(`path`,{d:`M15 5.5V5a3 3 0 0 0-5.94-.6`}),w(`path`,{d:`M19 10v2a7 7 0 0 1-9.9 6.36`}),w(`path`,{d:`M5 10v2a6.98 6.98 0 0 0 1.11 3.79`}),w(`line`,{x1:`12`,y1:`19`,x2:`12`,y2:`22`}),w(`line`,{x1:`2`,y1:`2`,x2:`22`,y2:`22`})]}),e),ie=e=>k(T(C,{children:[w(`path`,{d:`M15 3h6v6`}),w(`path`,{d:`M10 14 21 3`}),w(`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`})]}),e),N=e=>k(T(C,{children:[w(`rect`,{x:`3`,y:`4`,width:`18`,height:`18`,rx:`2`}),w(`line`,{x1:`16`,y1:`2`,x2:`16`,y2:`6`}),w(`line`,{x1:`8`,y1:`2`,x2:`8`,y2:`6`}),w(`line`,{x1:`3`,y1:`10`,x2:`21`,y2:`10`})]}),e),P=e=>k(T(C,{children:[w(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`}),w(`path`,{d:`m22 7-10 5L2 7`})]}),e),F=e=>k(w(`path`,{d:`M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92Z`}),e),ae=e=>k(T(C,{children:[w(`circle`,{cx:`12`,cy:`12`,r:`9`}),w(`path`,{d:`M8.5 14.5a4 4 0 0 0 7 0`}),w(`line`,{x1:`9`,y1:`9.5`,x2:`9.01`,y2:`9.5`}),w(`line`,{x1:`15`,y1:`9.5`,x2:`15.01`,y2:`9.5`})]}),e),I=e=>k(T(C,{children:[w(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),w(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]}),e),oe=e=>k(T(C,{children:[w(`path`,{d:`M11 5 6 9H2v6h4l5 4z`}),w(`path`,{d:`M15.5 8.5a5 5 0 0 1 0 7`}),w(`path`,{d:`M19 5a9 9 0 0 1 0 14`})]}),e),se=e=>k(T(C,{children:[w(`path`,{d:`M11 5 6 9H2v6h4l5 4z`}),w(`line`,{x1:`22`,y1:`9`,x2:`16`,y2:`15`}),w(`line`,{x1:`16`,y1:`9`,x2:`22`,y2:`15`})]}),e),L=e=>k(w(`path`,{d:`M20 6 9 17l-5-5`}),e),R=e=>k(T(C,{children:[w(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`}),w(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})]}),e),ce=e=>k(T(C,{children:[w(`path`,{d:`M1 4v6h6`}),w(`path`,{d:`M3.51 15a9 9 0 1 0 2.13-9.36L1 10`})]}),e),le=e=>k(w(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`}),e),ue=e=>k(w(`path`,{d:`M21.44 11.05 12.25 20.24a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48`}),e),de=e=>k(T(C,{children:[w(`path`,{d:`M18.36 6.64a9 9 0 1 1-12.73 0`}),w(`line`,{x1:`12`,y1:`2`,x2:`12`,y2:`12`})]}),e),fe=e=>k(T(C,{children:[w(`circle`,{cx:`12`,cy:`12`,r:`9`}),w(`path`,{d:`M12 7v5l3 2`})]}),e),z=e=>k(T(C,{children:[w(`path`,{d:`M7 10v12`}),w(`path`,{d:`M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z`})]}),e),pe=e=>k(T(C,{children:[w(`path`,{d:`M17 14V2`}),w(`path`,{d:`M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z`})]}),e),me=e=>k(T(C,{children:[w(`path`,{d:`M15 3h6v6`}),w(`path`,{d:`M9 21H3v-6`}),w(`path`,{d:`M21 3l-7 7`}),w(`path`,{d:`M3 21l7-7`})]}),e),he=e=>k(T(C,{children:[w(`path`,{d:`M9 3v6H3`}),w(`path`,{d:`M15 21v-6h6`}),w(`path`,{d:`M9 9 2 2`}),w(`path`,{d:`M15 15l7 7`})]}),e),ge=e=>k(T(C,{children:[w(`rect`,{x:`3`,y:`4`,width:`18`,height:`14`,rx:`2`}),w(`rect`,{x:`11`,y:`11`,width:`8`,height:`6`,rx:`1`,fill:`currentColor`,stroke:`none`})]}),e),B=e=>k(T(C,{children:[w(`rect`,{x:`4`,y:`5`,width:`16`,height:`14`,rx:`2`}),w(`path`,{d:`M12 15V9`}),w(`path`,{d:`m8.5 12.5 3.5-3.5 3.5 3.5`})]}),e),_e=e=>k(T(C,{children:[w(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),w(`path`,{d:`m19 12-7 7-7-7`})]}),e),ve=e=>{if(!e)return`Live data`;let t=new Date(e);return Number.isNaN(t.getTime())?`Live data`:`Updated ${new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}).format(t)}`},ye=({answeredAt:e,reportingPeriod:t,filters:n=[],rowCount:r})=>T(`div`,{class:`cf-analytics-meta`,"data-testid":`analytics-result-meta`,"aria-label":`Result details`,children:[T(`span`,{children:[w(`span`,{"aria-hidden":`true`,class:`cf-analytics-meta__dot`}),ve(e)]}),t?.label?w(`span`,{children:t.label}):null,typeof r==`number`?T(`span`,{children:[r,` `,r===1?`row`:`rows`]}):null,n.length>0?T(`span`,{children:[n.length,` applied `,n.length===1?`filter`:`filters`]}):null]}),be=({label:e,value:t,detail:n})=>T(`section`,{class:`cf-analytics-kpi`,"aria-label":e,"data-testid":`analytics-kpi`,children:[w(`div`,{class:`cf-analytics-kpi__label`,children:e}),w(`div`,{class:`cf-analytics-kpi__value`,children:t}),n?w(`div`,{class:`cf-analytics-kpi__detail`,children:n}):null]}),xe=({title:e=`No matching data`,description:t=`No approved records matched this question.`})=>T(`section`,{class:`cf-analytics-empty`,role:`status`,"data-testid":`analytics-empty-state`,children:[w(`p`,{children:e}),w(`p`,{children:t})]}),Se=({explanation:e,onFollowUp:t,showLead:n=!1,maxFollowUps:r=3})=>T(`section`,{class:`cf-analytics-explanation`,"data-testid":`inline-analytics-explanation`,"aria-label":`Analysis and supporting evidence`,children:[n?T(`div`,{class:`cf-analytics-explanation__lead`,"data-testid":`analytics-explanation-lead`,children:[T(`div`,{class:`cf-analytics-explanation__lead-meta`,children:[w(`span`,{class:`cf-analytics-explanation__eyebrow`,children:`Answer from your data`}),T(`span`,{class:`cf-analytics-explanation__provenance`,children:[w(`span`,{"aria-hidden":`true`,class:`cf-analytics-explanation__provenance-dot`}),e.source===`ai_grounded`?`AI-assisted · evidence checked`:`Based on current values`]})]}),w(`h3`,{class:`cf-analytics-explanation__headline`,children:e.headline}),w(`p`,{class:`cf-analytics-explanation__summary`,children:e.summary})]}):null,T(`div`,{class:`cf-analytics-explanation__body`,children:[(e.evidence?.length??0)>0?T(`section`,{class:`cf-analytics-explanation__section`,children:[w(`h4`,{class:`cf-analytics-explanation__heading`,children:`What the numbers show`}),w(`ul`,{class:`cf-analytics-explanation__evidence`,children:e.evidence?.slice(0,4).map(e=>T(`li`,{class:`cf-analytics-explanation__evidence-item`,children:[w(`span`,{"aria-hidden":`true`,class:`cf-analytics-explanation__evidence-bullet`}),w(`span`,{children:e})]},e))})]}):null,e.businessMeaning?T(`section`,{class:`cf-analytics-explanation__meaning`,children:[w(`h4`,{class:`cf-analytics-explanation__heading`,children:`Why this may matter`}),w(`p`,{class:`cf-analytics-explanation__paragraph`,children:e.businessMeaning})]}):null,(e.possibleDrivers?.length??0)>0?T(`section`,{class:`cf-analytics-explanation__section`,children:[T(`div`,{class:`cf-analytics-explanation__section-heading`,children:[w(`h4`,{class:`cf-analytics-explanation__heading`,children:`Possibilities worth checking`}),w(`span`,{class:`cf-analytics-explanation__hint`,children:`These are not proven causes`})]}),w(`div`,{class:`cf-analytics-explanation__drivers`,children:e.possibleDrivers?.slice(0,2).map(e=>T(`article`,{class:`cf-analytics-explanation__driver`,children:[w(`p`,{class:`cf-analytics-explanation__driver-title`,children:e.hypothesis}),T(`p`,{class:`cf-analytics-explanation__driver-body`,children:[w(`span`,{class:`cf-analytics-explanation__driver-label`,children:`How to check:`}),` `,e.howToCheck]})]},`${e.hypothesis}-${e.howToCheck}`))})]}):null,(e.recommendations?.length??0)>0?T(`section`,{class:`cf-analytics-explanation__section`,children:[w(`h4`,{class:`cf-analytics-explanation__heading`,children:`Useful next steps`}),w(`div`,{class:`cf-analytics-explanation__recommendations`,children:e.recommendations?.slice(0,3).map((e,t)=>T(`article`,{class:`cf-analytics-explanation__recommendation`,children:[w(`span`,{class:`cf-analytics-explanation__recommendation-index`,children:t+1}),T(`div`,{children:[w(`p`,{class:`cf-analytics-explanation__recommendation-title`,children:e.action}),w(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:e.why}),e.successMetric?T(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:[w(`span`,{class:`cf-analytics-explanation__driver-label`,children:`Watch:`}),` `,e.successMetric]}):null]})]},`${e.action}-${e.why}`))})]}):null,e.forecast?T(`section`,{class:`cf-analytics-explanation__outlook`,children:[T(`div`,{class:`cf-analytics-explanation__outlook-header`,children:[w(`h4`,{class:`cf-analytics-explanation__heading`,children:`Outlook`}),w(`span`,{class:`cf-analytics-explanation__outlook-badge`,children:`Validated estimate`})]}),w(`p`,{class:`cf-analytics-explanation__paragraph`,children:e.forecast.text}),e.forecast.limitations?w(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:e.forecast.limitations}):null]}):null,t&&(e.followUps?.length??0)>0?T(`section`,{class:`cf-analytics-explanation__section cf-analytics-explanation__follow-up`,children:[w(`h4`,{class:`cf-analytics-explanation__heading`,children:`Ask a follow-up`}),w(`div`,{class:`cf-analytics-explanation__questions`,children:e.followUps?.slice(0,r).map(e=>w(`button`,{type:`button`,class:`cf-analytics-explanation__question`,onClick:()=>t(e),children:e},e))})]}):null,(e.limitations?.length??0)>0?T(`details`,{class:`cf-analytics-explanation__limits`,children:[w(`summary`,{class:`cf-analytics-explanation__limits-summary`,children:`Important limits`}),w(`ul`,{class:`cf-analytics-explanation__limits-list`,children:e.limitations?.map(e=>w(`li`,{children:e},e))})]}):null]}),w(`p`,{class:`cf-analytics-explanation__source`,children:e.source===`ai_grounded`?`AI-assisted wording, checked against the live values shown here.`:`Based only on the live values shown here.`})]}),Ce=()=>{let e=x(null);return y(()=>{let t=requestAnimationFrame(()=>e.current?.scrollIntoView({block:`end`}));return()=>cancelAnimationFrame(t)},[]),e},we=e=>e.trim().split(/\s+/).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)||`🤖`,Te=e=>{let t=e?.avatarId?.trim().toLowerCase().replace(/[^a-z0-9-]/g,`-`);return t?` cf-avatar-preset--${t}`:``},Ee={"support-guide":`SG`,"sales-host":`SH`,"calm-advisor":`CA`,"technical-guide":`TG`,"school-desk":`SD`,"front-office":`FO`},V=e=>{let t=e?.avatarId?.trim().toLowerCase();return t&&Ee[t]||(e?we(e.agentName):`·`)},De=({persona:e,small:t,hideWhenMissing:n})=>{let r=t?`cf-msg__avatar`:`cf-header__avatar`,i=e?.agentAvatarUrl?.trim();return i?w(`span`,{class:r,children:w(`img`,{src:i,alt:``})}):n?null:w(`span`,{class:`${r}${Te(e)}`,children:V(e)})},Oe=()=>{let e=n(),[t,r]=S(0),i=[`Thinking`,`Checking available information`,`Preparing your response`];return y(()=>{let e=[window.setTimeout(()=>r(1),1800),window.setTimeout(()=>r(2),5e3)];return()=>e.forEach(e=>window.clearTimeout(e))},[]),T(`div`,{class:`cf-msg__bubble cf-typing`,"aria-label":e.assistantTyping,children:[w(`span`,{class:`cf-typing__label`,"aria-live":`polite`,children:i[t]}),w(`span`,{class:`cf-typing__dot`}),w(`span`,{class:`cf-typing__dot`}),w(`span`,{class:`cf-typing__dot`})]})},ke=({msg:e})=>{if(!e.sources||e.sources.length===0)return null;let t=new Set,n=[];for(let r of e.sources){let e=(r.url||r.title||``).toLowerCase();!e||t.has(e)||(t.add(e),n.push(r))}if(n.length===0)return null;let r=n.slice(0,3),i=n.length-r.length;return T(`div`,{class:`cf-sources`,children:[r.map((e,t)=>e.url?T(`a`,{class:`cf-source`,href:e.url,target:`_blank`,rel:`noopener noreferrer nofollow`,title:e.title||e.url,children:[w(ie,{}),w(`span`,{children:e.title||e.url})]},t):T(`span`,{class:`cf-source`,title:e.title,children:[w(ie,{}),w(`span`,{children:e.title})]},t)),i>0&&T(`span`,{class:`cf-source cf-source--more`,children:[`+`,i,` more`]})]})},H=({replies:e,onPick:t})=>e&&e.length>0?w(`div`,{class:`cf-chips`,children:e.map((e,n)=>w(`button`,{type:`button`,class:`cf-chip`,onClick:()=>t(e),children:e},n))}):null,Ae=({persona:e,starters:t,onPick:n,onFocusComposer:r,speaking:i,voiceState:a=`idle`,replyPending:o=!1,pinned:s=!1,muted:c=!1,onToggleMute:l,onEndCall:u,onTalkNow:d,showTalkNow:f=!1,micLevel:p=0,theaterMode:m=!1,onToggleTheater:h,onMinimize:g,audioDevices:_=[],selectedAudioDeviceId:v=``,onSelectAudioDevice:y,connectingOnly:b=!1})=>{if(!e||!(e.talkbackMode===`avatar`||e.widgetModule===`assistant`||e.allowVoiceInput))return null;let x=e.agentAvatarUrl?.trim()||``,S=e.assistantMediaUrl?.trim()||x,E=e.assistantMediaKind===`video`&&!!S,ee=t.slice(0,3),D=a!==`idle`,te=a===`idle`?`Speak with ${e.agentName}`:`End voice chat`,O=s&&!D&&!i,k=a===`connecting`||a===`processing`||D&&o,A=[`cf-assistant-card__stage`,`cf-assistant-card__stage--local`,D?`is-live`:``,k?`is-thinking`:``,a===`listening`&&!c?`is-listening`:``,i||a===`speaking`?`is-speaking`:``,c?`is-muted`:``].filter(Boolean).join(` `),j=a===`listening`&&!c?{"--cf-listen":String(Math.max(.18,Math.min(1,p*8)))}:void 0,ne=k&&T(`span`,{class:`cf-call-ripple`,"aria-hidden":`true`,children:[w(`span`,{}),w(`span`,{}),w(`span`,{})]});if(b)return T(`div`,{class:`cf-assistant-card cf-assistant-card--connecting`,"aria-live":`polite`,children:[T(`div`,{class:`cf-assistant-card__connecting-avatar`,children:[x?w(`img`,{src:x,alt:``}):w(`span`,{class:`cf-assistant-card__connecting-face${Te(e)}`,children:V(e)}),ne]}),T(`div`,{class:`cf-assistant-card__connecting-copy`,children:[w(`span`,{class:`cf-assistant-card__connecting-eyebrow`,children:e.agentName}),w(`strong`,{children:`Connecting with the AI…`})]})]});let re=D&&u&&w(Ze,{voiceState:a,muted:c,onToggleMute:l??(()=>{}),onEndCall:u,onTalkNow:d??(()=>{}),showTalkNow:f,micLevel:p,theaterMode:m,onToggleTheater:h??(()=>{}),onMinimize:g??(()=>{}),audioDevices:_,selectedAudioDeviceId:v,onSelectAudioDevice:y??(()=>{})});return O?w(`div`,{class:`cf-assistant-card cf-assistant-card--pinned cf-assistant-card--compact`,children:T(`button`,{type:`button`,class:`cf-assistant-card__compact-speak`,onClick:r,children:[x?w(`span`,{class:`cf-assistant-card__compact-avatar`,children:w(`img`,{src:x,alt:``})}):null,w(`span`,{class:`cf-assistant-card__compact-mic`,"aria-hidden":`true`,children:w(M,{})}),w(`span`,{class:`cf-assistant-card__compact-label`,children:te})]})}):T(`div`,{class:`cf-assistant-card ${s?`cf-assistant-card--pinned`:``} ${i?`is-speaking`:``}`,children:[(S||e.allowVoiceInput)&&T(`div`,{class:A,style:j,children:[T(`div`,{class:`cf-assistant-card__media ${S?`cf-assistant-card__media--uploaded`:`cf-assistant-card__media--generated`}${Te(e)}`,children:[E?w(`video`,{src:S,muted:!0,loop:!0,playsInline:!0,autoPlay:!0}):S?w(`img`,{src:S,alt:``}):w(`div`,{class:`cf-assistant-card__avatar-stage${Te(e)}`,children:T(`div`,{class:`cf-assistant-card__face`,children:[w(`span`,{class:`cf-assistant-card__initials`,children:V(e)}),w(`span`,{class:`cf-assistant-card__eye cf-assistant-card__eye--left`}),w(`span`,{class:`cf-assistant-card__eye cf-assistant-card__eye--right`}),w(`span`,{class:`cf-assistant-card__mouth`})]})}),S&&!E&&w(`span`,{class:`cf-assistant-card__mouth cf-assistant-card__mouth--overlay`}),w(`span`,{class:`cf-avatar-aura cf-avatar-aura--one`,"aria-hidden":`true`}),w(`span`,{class:`cf-avatar-aura cf-avatar-aura--two`,"aria-hidden":`true`}),w(`span`,{class:`cf-avatar-listen-ring`,"aria-hidden":`true`}),T(`span`,{class:`cf-avatar-wave`,"aria-hidden":`true`,children:[w(`span`,{}),w(`span`,{}),w(`span`,{}),w(`span`,{})]})]}),ne,e.allowVoiceInput&&(re||T(`button`,{type:`button`,class:`cf-assistant-card__speak`,onClick:r,children:[w(M,{}),te]}))]}),!s&&T(C,{children:[e.agentDescription?w(`p`,{class:`cf-assistant-card__copy`,children:e.agentDescription}):w(`p`,{class:`cf-assistant-card__copy`,children:e.greeting}),ee.length>0&&w(`div`,{class:`cf-assistant-card__chips`,children:ee.map(e=>w(`button`,{type:`button`,class:`cf-assistant-card__chip`,onClick:()=>n(e),children:e},e))}),e.disclaimerText||e.assistantPrivacyUrl?T(`p`,{class:`cf-assistant-card__privacy`,children:[e.disclaimerText||`This chat may be recorded for quality and support.`,e.assistantPrivacyUrl?T(C,{children:[` `,w(`a`,{href:e.assistantPrivacyUrl,target:`_blank`,rel:`noopener noreferrer nofollow`,children:`Privacy Policy`})]}):null]}):null]})]})},U={public_book_demo:{type:`book-demo`,label:`Book a demo`,description:`Pick a time or request a demo from the team.`,Icon:N},public_submit_inquiry:{type:`inquiry`,label:`Leave a message`,description:`Send your question and contact details.`,Icon:P},public_request_callback:{type:`request-callback`,label:`Request a callback`,description:`Share your phone number and best time to call.`,Icon:F},public_subscribe_newsletter:{type:`subscribe-newsletter`,label:`Subscribe`,description:`Get product updates and useful announcements.`,Icon:P}},W=({field:e,value:t,onInput:n})=>{let r=e.placeholder??e.label,i={class:`cf-form__input`,placeholder:e.required?`${r} *`:r,value:t,"aria-label":e.label,onInput:e=>n(e.target.value)};return e.kind===`textarea`?w(`textarea`,{rows:2,...i}):w(`input`,{type:e.kind,...i})},je=({spec:e,visitor:t,onSubmit:r,onCancel:i})=>{let a=n(),o=Ce(),[s,c]=S(()=>{let n={};for(let r of e.fields)r.identity&&t[r.identity]&&(n[r.key]=t[r.identity]);return n}),[l,u]=S(`idle`),[d,f]=S(``),p=e=>!!(e.identity&&t[e.identity]?.trim()),m=e.fields.filter(e=>!p(e)),h=m.every(e=>!e.required||(s[e.key]?.trim()??``)!==``),g=t.email||t.name||``;return l===`done`?T(`div`,{class:`cf-form cf-form--done`,children:[w(L,{}),w(`span`,{children:d})]}):T(`div`,{class:`cf-form`,ref:o,children:[w(`div`,{class:`cf-form__title`,children:e.title}),m.length===0&&g&&T(`div`,{class:`cf-form__as`,children:[`as `,g]}),m.map(e=>w(W,{field:e,value:s[e.key]??``,onInput:t=>c(n=>({...n,[e.key]:t}))},e.key)),l===`error`&&w(`div`,{class:`cf-form__err`,children:a.formError}),T(`div`,{class:`cf-form__actions`,children:[i&&w(`button`,{type:`button`,class:`cf-form__cancel`,onClick:i,children:`Cancel`}),w(`button`,{type:`button`,class:`cf-form__submit`,disabled:!h||l===`submitting`,onClick:async()=>{if(!h||l===`submitting`)return;u(`submitting`);let t={},n={};for(let r of e.fields){let e=s[r.key]?.trim();e&&(t[r.key]=e,r.identity&&(n[r.identity]=e))}try{f((await r(t,n)).note||a.formThanks),u(`done`)}catch{u(`error`)}},children:l===`submitting`?a.sending:e.submit})]})]})},G=e=>String(e).padStart(2,`0`),Me=()=>{let e=[];for(let t=9;t<=17;t++)e.push(`${G(t)}:00`),e.push(`${G(t)}:30`);return e},Ne=e=>{let t=new Date;return t.setHours(0,0,0,0),Array.from({length:e},(e,n)=>{let r=new Date(t);return r.setDate(t.getDate()+n),r})},Pe=(e,t)=>{let[n,r]=t.split(`:`).map(Number),i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),n??0,r??0);try{return new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`,month:`short`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZoneName:`short`}).format(i)}catch{return`${e.toDateString()} ${t}`}},K=(e,t)=>{let[n,r]=t.split(`:`).map(Number);return new Date(e.getFullYear(),e.getMonth(),e.getDate(),n??0,r??0)},Fe=({visitor:e,onSubmit:t,onCancel:r,onDemoSlots:i,scheduler:a})=>{let o=n(),s=Ce(),c=b(()=>Ne(14),[]),l=b(()=>Me(),[]),[u,d]=S(b(()=>{let e=Date.now();for(let t=0;t<c.length;t++)if(l.some(n=>K(c[t],n).getTime()>e))return t;return 0},[c,l])),[f,m]=S(null),[h,g]=S(e.name??``),[_,v]=S(e.email??``),[x,E]=S(`idle`),[ee,D]=S(``),[te,k]=S(``),[A,j]=S(``),ne=a?.connected&&a.mode===`link`,M=async()=>{if(x===`submitting`||!e.name?.trim()&&!h.trim()||!e.email?.trim()&&!_.trim())return;E(`submitting`),k(``);let n={};_.trim()&&(n.email=_.trim()),h.trim()&&(n.name=h.trim());try{let e=await t({..._.trim()?{visitorEmail:_.trim()}:{},...h.trim()?{visitorName:h.trim()}:{}},n),r=e.booking?.schedulingLink||a?.bookingLink||``;if(!r){E(`error`);return}try{window.open(r,`_blank`,`noopener,noreferrer`)}catch{}j(r),D(e.note||o.bookingLinkOpened),E(`done`)}catch{E(`error`)}},[re,N]=S(new Set),[P,F]=S([]),[ae,I]=S(0),[oe,se]=S(!1);y(()=>{if(!i)return;let e=!0,t=new Date,n=new Date;return n.setDate(n.getDate()+15),i(t.toISOString(),n.toISOString()).then(t=>{e&&(N(new Set(t.taken.map(e=>Date.parse(e)).filter(e=>!Number.isNaN(e)))),F(t.busy.map(e=>[Date.parse(e.start),Date.parse(e.end)]).filter(([e,t])=>!Number.isNaN(e)&&!Number.isNaN(t))))}).catch(()=>{}),()=>{e=!1}},[i,ae]);let R=!!e.email?.trim(),ce=!!e.name?.trim(),le=!!f&&(ce||h.trim()!==``)&&(R||_.trim()!==``),ue=e.email||e.name||``,de=e=>re.has(K(c[u],e).getTime()),fe=e=>K(c[u],e).getTime()<=Date.now(),z=e=>{let t=K(c[u],e).getTime(),n=t+18e5;return P.some(([e,r])=>t<r&&n>e)},pe=async()=>{if(!le||x===`submitting`||!f)return;E(`submitting`),se(!1),k(``);let e=K(c[u],f),n=Pe(c[u],f),r={};_.trim()&&(r.email=_.trim()),h.trim()&&(r.name=h.trim());try{let i=await t({preferredAt:n,slotAt:e.toISOString(),..._.trim()?{visitorEmail:_.trim()}:{},...h.trim()?{visitorName:h.trim()}:{}},r);i.booking?.confirmed?(D(i.note||p(o.bookingConfirmed,{when:n})),j(i.booking.meetingUrl||i.booking.eventLink||``)):D(i.note||p(o.bookingRequested,{when:n})),E(`done`)}catch(t){if(t?.status===409)N(t=>new Set(t).add(e.getTime())),m(null),se(!0),I(e=>e+1),E(`idle`);else{let e=t?.message;k(e&&e.length<120?e:``),E(`error`)}}};return x===`done`?T(`div`,{class:`cf-form cf-form--done`,children:[w(L,{}),w(`span`,{children:ee}),A&&T(`a`,{class:`cf-booking__link`,href:A,target:`_blank`,rel:`noopener noreferrer`,children:[ne?o.bookingOpenScheduler:o.bookingMeetingLink,` `,w(ie,{})]})]}):ne?T(`div`,{class:`cf-form cf-booking`,ref:s,children:[w(`div`,{class:`cf-form__title`,children:O[`book-demo`].title}),w(`div`,{class:`cf-booking__hint`,children:p(o.bookingViaProvider,{provider:a?.label??`the scheduler`})}),R?ue?T(`div`,{class:`cf-form__as`,children:[`as `,ue]}):null:T(C,{children:[!e.name?.trim()&&w(`input`,{class:`cf-form__input`,type:`text`,placeholder:`${o.handoffName} *`,value:h,"aria-label":o.handoffName,onInput:e=>g(e.target.value)}),w(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${o.handoffEmail} *`,value:_,"aria-label":o.handoffEmail,onInput:e=>v(e.target.value)})]}),x===`error`&&w(`div`,{class:`cf-form__err`,children:te||o.formError}),T(`div`,{class:`cf-form__actions`,children:[r&&w(`button`,{type:`button`,class:`cf-form__cancel`,onClick:r,children:o.cancel}),w(`button`,{type:`button`,class:`cf-form__submit`,disabled:x===`submitting`||!e.name?.trim()&&h.trim()===``||!R&&_.trim()===``,onClick:M,children:x===`submitting`?o.sending:o.bookingOpenScheduler})]})]}):T(`div`,{class:`cf-form cf-booking`,ref:s,children:[w(`div`,{class:`cf-form__title`,children:O[`book-demo`].title}),T(`div`,{class:`cf-booking__hint`,children:[o.bookingPickTime,` · `,w(`span`,{class:`cf-booking__dur`,children:o.bookingDuration})]}),w(`div`,{class:`cf-booking__dates`,role:`tablist`,"aria-label":`Pick a day`,children:c.map((e,t)=>T(`button`,{type:`button`,role:`tab`,"aria-selected":t===u,class:`cf-booking__date ${t===u?`is-selected`:``}`,onClick:()=>{d(t),m(null)},children:[w(`span`,{class:`cf-booking__dow`,children:e.toLocaleDateString(void 0,{weekday:`short`})}),w(`span`,{class:`cf-booking__dom`,children:e.getDate()})]},t))}),w(`div`,{class:`cf-booking__slots`,role:`listbox`,"aria-label":`Pick a time`,children:l.map(e=>{let t=fe(e),n=z(e),r=de(e),i=r||t||n;return w(`button`,{type:`button`,role:`option`,"aria-selected":f===e,disabled:i,title:t?`Earlier today`:n?`Busy on the calendar`:r?`Already booked`:void 0,class:`cf-booking__slot ${f===e?`is-selected`:``} ${i?`is-taken`:``}`,onClick:()=>m(e),children:e},e)})}),oe&&w(`div`,{class:`cf-form__err`,children:o.bookingSlotTaken}),ue?T(`div`,{class:`cf-form__as`,children:[`as `,ue]}):null,!ce&&w(`input`,{class:`cf-form__input`,type:`text`,placeholder:`${o.handoffName} *`,value:h,"aria-label":o.handoffName,onInput:e=>g(e.target.value)}),!R&&w(C,{children:w(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${o.handoffEmail} *`,value:_,"aria-label":o.handoffEmail,onInput:e=>v(e.target.value)})}),x===`error`&&w(`div`,{class:`cf-form__err`,children:te||o.formError}),T(`div`,{class:`cf-form__actions`,children:[r&&w(`button`,{type:`button`,class:`cf-form__cancel`,onClick:r,children:o.cancel}),w(`button`,{type:`button`,class:`cf-form__submit`,disabled:!le||x===`submitting`,onClick:pe,children:x===`submitting`?o.sending:O[`book-demo`].submit})]})]})},Ie=({actions:e,visitor:t,onSubmitForm:n,onDemoSlots:r,scheduler:i,exclude:a=[]})=>{let[o,s]=S(null),[c,l]=S(!1),u=(e??[]).map(e=>U[e]).filter(e=>!!e&&!a.includes(e.type));if(u.length===0)return null;let d=()=>{s(null),l(!1)},f=()=>s(null);if(o===`book-demo`)return T(`div`,{class:`cf-action-drawer is-open`,role:`dialog`,"aria-label":`Book a demo`,children:[w(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),T(`div`,{class:`cf-action-drawer__head`,children:[T(`div`,{children:[w(`span`,{class:`cf-action-drawer__eyebrow`,children:`Contact options`}),w(`strong`,{children:`Book a demo`})]}),w(`button`,{type:`button`,class:`cf-action-drawer__close`,onClick:f,children:w(I,{})})]}),w(Fe,{visitor:t,onCancel:f,onSubmit:(e,t)=>n(`book-demo`,e,t),onDemoSlots:r,scheduler:i})]});if(o){let e=u.find(e=>e.type===o);return T(`div`,{class:`cf-action-drawer is-open`,role:`dialog`,"aria-label":e?.label??`Contact`,children:[w(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),T(`div`,{class:`cf-action-drawer__head`,children:[T(`div`,{children:[w(`span`,{class:`cf-action-drawer__eyebrow`,children:`Contact options`}),w(`strong`,{children:e?.label??O[o].title})]}),w(`button`,{type:`button`,class:`cf-action-drawer__close`,onClick:f,children:w(I,{})})]}),w(je,{spec:O[o],visitor:t,onCancel:f,onSubmit:(e,t)=>n(o,e,t)})]})}return c?T(`div`,{class:`cf-action-drawer cf-action-drawer--menu`,children:[w(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),T(`div`,{class:`cf-action-drawer__head`,children:[T(`div`,{children:[w(`span`,{class:`cf-action-drawer__eyebrow`,children:`Need help?`}),w(`strong`,{children:`Choose what you want to do`})]}),w(`button`,{type:`button`,class:`cf-action-drawer__close`,onClick:d,children:w(I,{})})]}),w(`div`,{class:`cf-action-drawer__grid`,children:u.map(({type:e,label:t,description:n,Icon:r})=>T(`button`,{type:`button`,class:`cf-action-card`,onClick:()=>s(e),children:[w(`span`,{class:`cf-action-card__icon`,children:w(r,{})}),T(`span`,{class:`cf-action-card__copy`,children:[w(`strong`,{children:t}),w(`small`,{children:n})]}),w(j,{})]},e))}),w(`p`,{class:`cf-action-drawer__note`,children:`We’ll ask for your full name and the best email or phone so the team can reach you.`})]}):T(`button`,{type:`button`,class:`cf-action-trigger`,onClick:()=>l(!0),children:[w(`span`,{class:`cf-action-trigger__icon`,children:w(P,{})}),T(`span`,{class:`cf-action-trigger__copy`,children:[w(`strong`,{children:`Contact options`}),w(`small`,{children:`Demo, message, callback`})]}),w(j,{})]})},Le=({hasEmail:e,visitor:t,question:r,onSubmitForm:i})=>{let a=n(),[o,s]=S(!1),[c,l]=S(!1),[u,d]=S(t.name??``),[f,m]=S(t.email??``);if(e)return T(`div`,{class:`cf-handoff cf-handoff--done`,children:[w(L,{}),w(`span`,{children:`We’ve alerted the team. If someone is available, they can continue here.`})]});if(o){let e=t.email||f;return T(`div`,{class:`cf-handoff cf-handoff--done`,children:[w(L,{}),w(`span`,{children:p(a.handoffShared,{email:e})})]})}let h=async()=>{if(!(!f.trim()||c)){l(!0);try{await i(`inquiry`,{visitorEmail:f.trim(),...u.trim()?{visitorName:u.trim()}:{},message:r||`I had a question the assistant couldn’t answer.`,subject:`Help request from chat`},{email:f.trim(),name:u.trim()||void 0}),s(!0)}catch{l(!1)}}};return T(`div`,{class:`cf-handoff`,children:[w(`div`,{class:`cf-handoff__title`,children:a.handoffTitle}),w(`input`,{class:`cf-form__input`,type:`text`,placeholder:a.handoffName,value:u,"aria-label":a.handoffName,onInput:e=>d(e.target.value)}),w(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${a.handoffEmail} *`,value:f,"aria-label":a.handoffEmail,onInput:e=>m(e.target.value)}),w(`button`,{type:`button`,class:`cf-form__submit`,disabled:!f.trim()||c,onClick:h,children:c?a.sending:a.handoffNotify})]})},Re=({text:e})=>{let t=n(),[r,i]=S(!1);return T(`button`,{type:`button`,class:`cf-tool`,onClick:async()=>{try{await navigator.clipboard.writeText(e),i(!0),setTimeout(()=>i(!1),1500)}catch{}},"aria-label":t.copy,children:[w(r?L:R,{}),r?t.copied:t.copy]})},ze=({items:e,onPick:t})=>e.length===0?null:w(`div`,{class:`cf-starters`,children:e.map((e,n)=>w(`button`,{type:`button`,class:`cf-starter`,onClick:()=>t(e),children:e},n))}),Be=({items:e})=>{let t=e.filter(e=>e.label.trim()&&e.url.trim()).slice(0,4);return t.length===0?null:w(`div`,{class:`cf-featured-links`,children:t.map((e,t)=>T(`a`,{class:`cf-featured-link`,href:e.url,target:`_blank`,rel:`noopener noreferrer nofollow`,title:e.label,children:[w(ie,{}),w(`span`,{children:e.label})]},`${e.url}-${t}`))})},Ve=({msg:e,onRate:t})=>{let r=n(),[i,a]=S(!1),[o,s]=S(``),c=e.feedback,l=()=>{t(e.id,`up`),a(!1)},u=()=>{t(e.id,`down`),a(!0)},d=()=>{t(e.id,`down`,o.trim()),a(!1)};return T(`div`,{class:`cf-feedback`,children:[T(`div`,{class:`cf-feedback__row`,children:[w(`button`,{type:`button`,class:`cf-feedback__btn ${c===`up`?`is-active`:``}`,"aria-label":r.feedbackHelpful,"aria-pressed":c===`up`,onClick:l,children:w(z,{})}),w(`button`,{type:`button`,class:`cf-feedback__btn ${c===`down`?`is-active`:``}`,"aria-label":r.feedbackNotHelpful,"aria-pressed":c===`down`,onClick:u,children:w(pe,{})}),c&&!i&&w(`span`,{class:`cf-feedback__thanks`,children:r.feedbackThanks})]}),i&&c===`down`&&T(`div`,{class:`cf-feedback__comment`,children:[w(`textarea`,{class:`cf-feedback__input`,rows:2,placeholder:r.feedbackCommentPlaceholder,value:o,onInput:e=>s(e.target.value)}),w(`button`,{type:`button`,class:`cf-feedback__send`,onClick:d,children:r.feedbackSend})]})]})},He=({msg:e,persona:r,isLast:i,visitor:a,hasEmail:o,lastQuestion:s,showActions:c,onPickReply:l,onSubmitForm:u,onDemoSlots:d,onRetry:f,ratable:p,onRate:m,onExpandVisualization:h})=>{let g=n(),_=e.role===`user`,v=e.liveEventType??``,y=e.content.trim().toLowerCase(),b=v===`handoff_queued`||v===`agent_joined`||v===`agent_left`||v===`conversation_ended`||y.includes(`joined the chat`)||y.includes(`left the chat`)||y.includes(`support agents will be with you`),x=e.role===`system`||b,S=e.requestedContactFields?.includes(`email`)===!0,E=i&&!_&&!x&&!!(e.handoffOffered||S),ee=E&&!o?[`inquiry`]:[],D=!e.pending&&!e.streaming;return x?w(`div`,{class:`cf-msg cf-msg--system`,children:T(`div`,{class:`cf-system-event`,children:[w(`div`,{class:`cf-system-event__mark`,"aria-hidden":`true`}),w(`div`,{class:`cf-system-event__text`,children:e.content}),e.createdAt&&w(`div`,{class:`cf-system-event__time`,children:new Date(e.createdAt).toLocaleString(void 0,{day:`2-digit`,month:`short`,year:`numeric`,hour:`numeric`,minute:`2-digit`})})]})}):T(`div`,{class:`cf-msg cf-msg--${_?`user`:`agent`}`,children:[!_&&w(De,{persona:r,small:!0}),T(`div`,{class:`cf-msg__col`,children:[e.pending&&e.content===``?w(Oe,{}):e.imageUrl?T(`div`,{class:`cf-msg__bubble cf-msg__bubble--media`,children:[w(`img`,{class:`cf-msg__media`,src:e.imageUrl,alt:`GIF`}),e.content&&w(`span`,{class:`cf-msg__caption`,children:e.content})]}):T(`div`,{class:`cf-msg__bubble`,children:[_?e.content:t(e.content),e.streaming&&w(`span`,{class:`cf-caret`,"aria-hidden":`true`})]}),!_&&e.visualization?w(Ue,{visualization:e.visualization,onExpand:h?()=>h(e.id):void 0,expandControlId:e.id}):null,!_&&e.visualization?.explanation?w(Se,{explanation:e.visualization.explanation,onFollowUp:l,showLead:!e.content.toLocaleLowerCase().includes(e.visualization.explanation.headline.toLocaleLowerCase())}):null,_&&e.attachmentName&&T(`div`,{class:`cf-attach-chip`,title:e.attachmentName,children:[w(ue,{}),w(`span`,{children:e.attachmentName})]}),!_&&T(C,{children:[D&&(e.error||e.content)&&T(`div`,{class:`cf-msg__actions`,children:[w(`div`,{class:`cf-msg__tools`,children:e.error?T(`button`,{type:`button`,class:`cf-tool`,onClick:()=>f(e.id,e.retryText??``),children:[w(ce,{}),g.retry]}):w(Re,{text:e.content})}),p&&!e.error&&e.content&&w(Ve,{msg:e,onRate:m})]}),w(ke,{msg:e}),i&&w(H,{replies:e.suggestedReplies,onPick:l}),E&&w(Le,{hasEmail:o,visitor:a,question:s,onSubmitForm:u}),c&&w(Ie,{actions:e.availableActions,visitor:a,onSubmitForm:u,onDemoSlots:d,scheduler:r?.scheduler,exclude:ee})]})]})]})},Ue=({visualization:e,expanded:t=!1,onExpand:n,onClose:r,expandControlId:o})=>{let l=b(()=>c(e),[e]),[u,f]=S(l?.type);y(()=>f(l?.type),[l]);let p=b(()=>i(e),[e]),m=b(()=>c(e,u),[u,e]),h=e.rows??[],g=e.columns?.length?e.columns:Object.keys(h[0]??{}),_=g.map(t=>{let n=e.columnMetadata?.find(e=>e.key===t);return n?{key:t,label:n.label,dataType:n.dataType,currencyCode:n.currencyCode}:t});if(h.length===0)return w(xe,{});let v=w(ye,{answeredAt:e.freshness?.answeredAt,reportingPeriod:e.reportingPeriod,filters:e.appliedFilters,rowCount:e.rowCount??h.length}),x=()=>e.tableAvailable===!1||g.length===0?null:T(`div`,{class:`cf-analytics-visualization${t?` is-expanded`:``}`,children:[T(`div`,{class:`cf-analytics-visualization__header`,children:[T(`div`,{children:[w(`div`,{class:`cf-analytics-visualization__title`,children:e.title?.trim()||`Result details`}),v]}),T(`div`,{class:`cf-analytics-visualization__actions`,children:[e.downloadAvailable?w(`button`,{type:`button`,class:`cf-analytics-visualization__download`,onClick:()=>We(g,h),children:`Download`}):null,t&&r?w(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:r,children:w(I,{})}):n&&e.expandable!==!1?w(`button`,{type:`button`,class:`cf-analytics-visualization__expand`,"aria-label":`Expand table`,"data-visualization-message":o,onClick:n,children:w(me,{})}):null]})]}),w(s,{rows:h,columns:_,maxRows:100,expanded:t,classPrefix:`cf`})]});if(e.presentation===`table`||!e.presentation&&e.type===`table`)return x();let C=e.chartRecommendation?.valueFields?.[0]??e.valueFields?.[0]??e.value??g[1];if(e.presentation===`kpi`||!e.presentation&&e.type===`kpi`){let n=h[0]?.[C??g[0]??``],i=typeof n==`number`?n:Number(n),o=e.columnMetadata?.find(e=>e.key===C),s=Number.isFinite(i)?a(i,o,e):String(n??`No value`);return T(`div`,{class:`cf-analytics-visualization${t?` is-expanded`:``}`,children:[T(`div`,{class:`cf-analytics-visualization__header`,children:[T(`div`,{children:[w(`div`,{class:`cf-analytics-visualization__title`,children:`Live metric`}),v]}),t&&r?w(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:r,children:w(I,{})}):null]}),w(be,{label:o?.label??C??`Current value`,value:s,detail:e.explanation?.summary})]})}return m?T(`div`,{class:`cf-analytics-visualization${t?` is-expanded`:``}`,children:[T(`div`,{class:`cf-analytics-visualization__header`,children:[T(`div`,{children:[w(`div`,{class:`cf-analytics-visualization__title`,children:m.title}),v]}),T(`div`,{class:`cf-analytics-visualization__actions`,children:[p.length>1?T(`label`,{class:`cf-analytics-chart-picker`,children:[w(`span`,{children:`Chart`}),w(`select`,{"aria-label":`Chart type`,value:u??m.type,onChange:e=>f(e.currentTarget.value),children:p.map(e=>w(`option`,{value:e.type,children:e.label},e.type))})]}):null,t&&r?w(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:r,children:w(I,{})}):n&&e.expandable!==!1?w(`button`,{type:`button`,class:`cf-analytics-visualization__expand`,"aria-label":`Expand chart`,"data-visualization-message":o,onClick:n,children:w(me,{})}):null]})]}),w(d,{model:m,expanded:t}),w(`p`,{class:`cf-analytics-chart__summary`,children:m.summary}),e.downloadAvailable?w(`button`,{type:`button`,class:`cf-analytics-visualization__download`,onClick:()=>We(g,h),children:`Download this data`}):null]}):x()},We=(e,t)=>{if(typeof document>`u`||e.length===0)return;let n=r(t,e),i=URL.createObjectURL(new Blob([n],{type:`text/csv;charset=utf-8`})),a=document.createElement(`a`);a.href=i,a.download=`analytics-result.csv`,a.click(),URL.revokeObjectURL(i)},Ge=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result).split(`,`)[1]??``),r.onerror=n,r.readAsDataURL(e)}),Ke=({onPick:e})=>w(`div`,{class:`cf-picker cf-emoji`,children:te.map(t=>T(`div`,{class:`cf-emoji__group`,children:[w(`div`,{class:`cf-emoji__label`,children:t.name}),w(`div`,{class:`cf-emoji__grid`,children:t.emojis.map((t,n)=>w(`button`,{type:`button`,class:`cf-emoji__btn`,onClick:()=>e(t),"aria-label":t,children:t},n))})]},t.name))}),qe=({onSearch:e,onPick:t})=>{let r=n(),[i,a]=S(``),[o,s]=S([]),[c,l]=S(!0);return y(()=>{let t=!0;l(!0);let n=setTimeout(()=>{e(i).then(e=>t&&(s(e),l(!1))).catch(()=>t&&(s([]),l(!1)))},300);return()=>{t=!1,clearTimeout(n)}},[i,e]),T(`div`,{class:`cf-picker cf-gif`,children:[w(`input`,{class:`cf-gif__search`,placeholder:r.searchGifs,value:i,"aria-label":r.searchGifs,onInput:e=>a(e.target.value)}),w(`div`,{class:`cf-gif__grid`,children:c?w(`div`,{class:`cf-gif__hint`,children:r.searchingGifs}):o.length===0?w(`div`,{class:`cf-gif__hint`,children:r.noGifs}):o.map(e=>w(`button`,{type:`button`,class:`cf-gif__item`,onClick:()=>t(e.url),"aria-label":e.alt,children:w(`img`,{src:e.preview,alt:e.alt,loading:`lazy`})},e.id))}),w(`div`,{class:`cf-gif__powered`,children:`via Tenor`})]})},Je=e=>{switch(e){case`connecting`:return`Connecting with AI…`;case`listening`:return`Listening now — go ahead.`;case`speaking`:return`AI is speaking — talk to interrupt.`;case`processing`:return`Understanding what you said…`;case`noise`:return`I couldn't hear clear words. Try again closer to the mic.`;case`misunderstood`:return`I didn't understand that. Please try again.`;case`denied`:return`Microphone access is blocked. Allow the mic or type your question.`;case`muted`:return`Muted — tap the mic to unmute.`;case`timeout`:return`Didn't hear anything for a while — ending the call.`;default:return``}},Ye=({muted:e,listening:t,micLevel:n,onToggleMute:r})=>w(`button`,{type:`button`,class:`cf-call-btn ${e?`is-muted`:``} ${t?`is-listening`:``} ${t&&n>=.004?`is-hot`:``}`,"aria-label":e?`Unmute microphone`:`Mute microphone`,"aria-pressed":e,onClick:r,style:t?{"--cf-wave":String(Math.max(.2,Math.min(1,n*6)))}:void 0,children:w(e?re:M,{})}),Xe=({audioDevices:e,selectedAudioDeviceId:t,onSelectAudioDevice:n})=>{let[r,i]=S(!1),a=x(null);y(()=>{if(!r)return;let e=e=>{a.current&&!e.composedPath().includes(a.current)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]);let o=[{deviceId:``,label:`Default microphone`},...e];return T(`div`,{class:`cf-call-more`,ref:a,children:[w(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--microphones`,"aria-label":`Choose microphone`,"aria-expanded":r,onClick:()=>i(e=>!e),children:w(j,{})}),r&&T(`div`,{class:`cf-call-menu`,role:`menu`,children:[w(`div`,{class:`cf-call-menu__label`,children:`Microphone`}),o.map(e=>T(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":e.deviceId===t,class:`cf-call-menu__item ${e.deviceId===t?`is-active`:``}`,onClick:()=>{n(e.deviceId),i(!1)},children:[e.deviceId===t?w(L,{}):w(`span`,{class:`cf-call-menu__spacer`}),w(`span`,{children:e.label})]},e.deviceId))]})]})},Ze=({voiceState:e,muted:t,onToggleMute:n,onEndCall:r,onTalkNow:i,showTalkNow:a,micLevel:o,theaterMode:s,onToggleTheater:c,onMinimize:l,audioDevices:u,selectedAudioDeviceId:d,onSelectAudioDevice:f})=>T(`div`,{class:`cf-call-controls`,children:[w(Ye,{muted:t,listening:e===`listening`&&!t,micLevel:o,onToggleMute:n}),w(Xe,{audioDevices:u,selectedAudioDeviceId:d,onSelectAudioDevice:f}),a&&w(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--talk`,"aria-label":`Talk now`,onClick:i,children:w(M,{})}),w(`button`,{type:`button`,class:`cf-call-btn`,"aria-label":s?`Exit expanded view`:`Expand view`,"aria-pressed":s,onClick:c,children:w(s?he:me,{})}),w(`button`,{type:`button`,class:`cf-call-btn`,"aria-label":`Minimize voice chat`,onClick:l,children:w(ge,{})}),w(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--end`,"aria-label":`End voice chat`,onClick:r,children:w(de,{})})]}),Qe=({persona:e,voiceState:t,muted:n,onToggleMute:r,onEndCall:i,micLevel:a,onExpand:o})=>{let s=e=>e.stopPropagation(),c=e?.assistantMediaUrl?.trim()||e?.agentAvatarUrl?.trim()||``,l=e?.assistantMediaKind===`video`&&!!c,u=e?.agentName||`Assistant`;return T(`div`,{class:[`cf-floating-call-card`,t===`listening`&&!n?`is-listening`:``,t===`speaking`?`is-speaking`:``,t===`processing`||t===`connecting`?`is-thinking`:``,n?`is-muted`:``].filter(Boolean).join(` `),style:t===`listening`&&!n?{"--cf-listen":String(Math.max(.18,Math.min(1,a*8)))}:void 0,role:`button`,tabIndex:0,"aria-label":`Reopen voice chat with ${u}`,onClick:o,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),o())},children:[w(`div`,{class:`cf-floating-call-card__media`,"aria-hidden":`true`,children:c?l?w(`video`,{src:c,muted:!0,loop:!0,playsInline:!0,autoPlay:!0}):w(`img`,{src:c,alt:``}):T(`div`,{class:`cf-floating-call-card__avatar${Te(e)}`,children:[w(`span`,{children:V(e)}),w(`span`,{class:`cf-floating-call-card__eye cf-floating-call-card__eye--left`}),w(`span`,{class:`cf-floating-call-card__eye cf-floating-call-card__eye--right`}),w(`span`,{class:`cf-floating-call-card__mouth`})]})}),w(`div`,{class:`cf-floating-call-card__shade`,"aria-hidden":`true`}),T(`div`,{class:`cf-floating-call-card__controls`,onClick:s,onKeyDown:s,role:`presentation`,children:[w(Ye,{muted:n,listening:t===`listening`&&!n,micLevel:a,onToggleMute:r}),w(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--restore`,"aria-label":`Restore voice chat`,onClick:e=>{s(e),o()},children:w(B,{})}),w(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--end`,"aria-label":`End voice chat`,onClick:e=>{s(e),i()},children:w(de,{})})]})]})},$e=({onSend:e,onSendGif:t,onTyping:r,disabled:i,allowVoice:a,onTranscribe:o,gifEnabled:s,onSearchGifs:c,allowAttach:l,onExtract:u,voiceStartSignal:d=0,onVoiceStateChange:f})=>{let p=n(),[m,h]=S(``),[g,_]=S(!1),[v,b]=S(!1),[E,te]=S(`idle`),[O,k]=S(`none`),[A,j]=S(null),[re,ie]=S(!1),[N,P]=S(``),F=x(null),oe=x(null),se=x(null),L=x(null),R=x([]),ce=x(void 0),le=x(null),de=x(void 0),fe=x(0),z=e=>{te(e),f?.(e)},pe=()=>{ce.current&&window.clearTimeout(ce.current),ce.current=void 0,de.current&&cancelAnimationFrame(de.current),de.current=void 0,le.current?.close().catch(()=>void 0),le.current=null};y(()=>{let e=F.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,110)}px`)},[m]),y(()=>{if(O===`none`)return;let e=e=>{oe.current&&!e.composedPath().includes(oe.current)&&k(`none`)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[O]);let me=e=>k(t=>t===e?`none`:e),he=e=>{let t=F.current;if(!t){h(t=>t+e);return}let n=t.selectionStart??m.length,r=t.selectionEnd??m.length;h(m.slice(0,n)+e+m.slice(r)),requestAnimationFrame(()=>{t.focus();let r=n+e.length;t.setSelectionRange(r,r)})},ge=e=>{k(`none`),t(e)},B=async e=>{let t=e.target,n=t.files?.[0];if(t.value=``,n){if(P(``),n.size>8388608){P(p.attachTooLarge);return}ie(!0);try{let e=await u(await Ge(n),n.type||`application/octet-stream`,n.name);if(!e){P(p.attachFailed);return}j({name:n.name,text:e})}catch{P(p.attachFailed)}finally{ie(!1)}}},_e=(!!m.trim()||!!A)&&!i&&!re&&!v,ve=()=>{_e&&(e(m,A?{attachmentName:A.name,attachmentText:A.text}:void 0),r?.(!1),h(``),j(null),P(``))},ye=t=>{let n=t.trim();if(!n||i){z(`misunderstood`),window.setTimeout(()=>z(`idle`),2500);return}let a=m.trim();e(a?`${a} ${n}`:n),r?.(!1),h(``),j(null),P(``),z(`idle`)},be=e=>{e.key===`Enter`&&!e.shiftKey?(e.preventDefault(),ve()):e.key===`Escape`&&O!==`none`&&(e.preventDefault(),e.stopPropagation(),k(`none`))},xe=async()=>{if(g){D(L.current);return}try{z(`connecting`);let e=await navigator.mediaDevices.getUserMedia({audio:!0}),t=ee(e);R.current=[],fe.current=0;try{let t=window.AudioContext??window.webkitAudioContext;if(t){let n=new t;le.current=n;let r=n.createMediaStreamSource(e),i=n.createAnalyser();i.fftSize=512,r.connect(i);let a=new Uint8Array(i.frequencyBinCount),o=()=>{i.getByteTimeDomainData(a);let e=0;for(let t of a){let n=(t-128)/128;e+=n*n}fe.current=Math.max(fe.current,Math.sqrt(e/a.length)),de.current=requestAnimationFrame(o)};o()}}catch{}t.ondataavailable=e=>e.data.size>0&&R.current.push(e.data),t.onstop=async()=>{pe(),e.getTracks().forEach(e=>e.stop()),_(!1);let n=new Blob(R.current,{type:t.mimeType||`audio/webm`});if(n.size===0||n.size<900||fe.current<.006){z(`noise`),window.setTimeout(()=>z(`idle`),3200);return}b(!0),z(`processing`);try{let e=await Ge(n);if(!e.trim()){z(`noise`),window.setTimeout(()=>z(`idle`),3200);return}let t=typeof navigator<`u`&&(navigator.languages?.[0]||navigator.language)||void 0;ye(await o(e,n.type,t))}catch{z(`misunderstood`),window.setTimeout(()=>z(`idle`),3e3)}finally{b(!1)}},L.current=t,t.start(250),_(!0),z(`listening`),ce.current=window.setTimeout(()=>{D(L.current)},12e3)}catch{z(`denied`),window.setTimeout(()=>z(`idle`),3500)}};return y(()=>{!d||!a||i||g||v||xe()},[d]),y(()=>()=>pe(),[]),T(`div`,{class:`cf-composer`,ref:oe,children:[O===`emoji`&&w(Ke,{onPick:he}),O===`gif`&&w(qe,{onSearch:c,onPick:ge}),(A||re||N)&&w(`div`,{class:`cf-attach-row`,children:re?w(`span`,{class:`cf-attach-status`,children:p.attaching}):N?w(`span`,{class:`cf-attach-status cf-attach-status--err`,children:N}):A&&T(`span`,{class:`cf-attach-chip`,title:A.name,children:[w(ue,{}),w(`span`,{children:A.name}),w(`button`,{type:`button`,class:`cf-attach-x`,"aria-label":`Remove attachment`,onClick:()=>j(null),children:w(I,{})})]})}),E!==`idle`&&T(`div`,{class:`cf-voice-state`,"aria-live":`polite`,children:[w(`span`,{class:`cf-voice-state__dot ${g?`is-live`:``}`}),Je(E)]}),T(`div`,{class:`cf-composer__field`,children:[w(`button`,{type:`button`,class:`cf-iconbtn ${O===`emoji`?`is-active`:``}`,"aria-label":p.emoji,"aria-pressed":O===`emoji`,onClick:()=>me(`emoji`),children:w(O===`emoji`?I:ae,{})}),s&&w(`button`,{type:`button`,class:`cf-iconbtn cf-gifbtn ${O===`gif`?`is-active`:``}`,"aria-label":p.gifs,"aria-pressed":O===`gif`,onClick:()=>me(`gif`),children:w(`span`,{class:`cf-gif-label`,children:`GIF`})}),l&&T(C,{children:[w(`input`,{ref:se,type:`file`,class:`cf-file-input`,accept:`image/png,image/jpeg,image/webp,image/gif,application/pdf`,onChange:B,tabIndex:-1,"aria-hidden":`true`}),w(`button`,{type:`button`,class:`cf-iconbtn`,"aria-label":p.attachFile,disabled:re,onClick:()=>se.current?.click(),children:w(ue,{})})]}),w(`textarea`,{ref:F,class:`cf-textarea`,rows:1,placeholder:p.composerPlaceholder,value:m,"aria-label":p.composerPlaceholder,disabled:i,onInput:e=>{let t=e.target.value;h(t),r?.(!!t.trim())},onKeyDown:be}),a&&w(`button`,{type:`button`,class:`cf-iconbtn cf-mic ${g?`is-recording`:``}`,"aria-label":g?p.stopRecording:p.recordVoice,"aria-pressed":g,disabled:v||i,onClick:xe,children:w(M,{})}),w(`button`,{type:`button`,class:`cf-send`,"aria-label":p.send,disabled:!_e,onClick:ve,children:w(ne,{})})]})]})},et=({name:e,greeting:t})=>T(`section`,{class:`cf-empty-welcome`,"aria-label":`${e} welcome`,children:[w(`span`,{class:`cf-empty-welcome__eyebrow`,children:`Ready when you are`}),w(`h2`,{children:e}),t?w(`p`,{children:t}):w(`p`,{children:`Ask a question, leave a message, or book a demo.`})]}),tt=e=>{let[t,n]=S(`light`);return y(()=>{if(e!==`auto`||typeof matchMedia>`u`)return;let t=matchMedia(`(prefers-color-scheme: dark)`),r=()=>n(t.matches?`dark`:`light`);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),e===`auto`?t:e},nt=1e4,rt=.0022,it=1600,at=6e4,ot=e=>e.replace(/\[[^\]]{0,60}\]/g,` `).replace(/\(([^)]{0,60})\)/g,(e,t)=>st.has(t.trim().toLowerCase().replace(/[.!?,…]+$/,``).replace(/\s+/g,` `))?` `:e).replace(/\*[^*]{0,60}\*/g,` `).replace(/\s+/g,` `).trim(),st=new Set(`background noise.engine noise.noise.inaudible.unintelligible.silence.no speech.static.music.laughter.applause.wind.breathing.click.clicks.clicking.mouse click.mouse clicks.beep.beeps.beeping.tap.taps.tapping.typing.keyboard typing.cough.coughing.sigh.hmm.mm.mmm.uh.um.ah.oh`.split(`.`)),ct=e=>{let t=e.trim().toLowerCase().replace(/[()[\]*]/g,` `).replace(/[.!?,…]+$/,``).replace(/\s+/g,` `).trim();return!t||/^(?:sh+\s*)+$/.test(t)?!0:st.has(t)},lt=e=>{let t=e.trim().toLowerCase().replace(/\s+/g,` `);return t?t.includes(`transcribe this audio recording verbatim`)||t.includes(`preserve the spoken language and any code-switching`)||t.includes(`output only the transcribed text, no commentary`):!1},ut={end:`end the call`,mute:`mute your microphone`,minimize:`minimize the chat`,expand:`expand the view`,shrink:`exit the expanded view`},dt=e=>e.trim().toLowerCase().replace(/[^\p{L}\p{N}\s']/gu,` `).replace(/\s+/g,` `).trim(),ft=[{action:`shrink`,re:/\b(?:exit|leave|quit|close)\b[\s\w]*\b(?:full ?screen|expanded|theat(?:er|re))\b|\bshrink\b|\bsmaller view\b/},{action:`end`,re:/\b(?:end|close|stop|finish|hang ?up|quit|exit)\b[\s\w]*\b(?:call|chat|conversation|convo|session|talking)\b|\bhang ?up\b|\bgood ?bye\b|^bye(?: bye)?$/},{action:`mute`,re:/\bmute\b|\bstop listening\b/},{action:`minimize`,re:/\bminimi[sz]e\b|\bhide\b[\s\w]*\b(?:chat|call|window|widget)\b/},{action:`expand`,re:/\bexpand\b|\bmaximi[sz]e\b|\bfull ?screen\b|\btheat(?:er|re) mode\b|\bbigger view\b/}],pt=/^(?:yes|yeah|yep|yup|sure|correct|confirm|affirmative|go ahead|do it|please do|ok(?:ay)?)\b/,mt=/^(?:no|nope|nah|cancel|never ?mind|don'?t|stop)\b/,ht=/^(?:end|close|stop|finish|hang ?up|quit|exit|bye|good ?bye)\b/,gt=e=>{let t=dt(e);if(!t)return null;for(let{action:e,re:n}of ft)if(n.test(t)){let n=t.split(` `).length;return{action:e,confident:e===`end`?n<=10:n<=6}}return null},_t=e=>`I didn't catch yes or no. Say yes to ${ut[e]}, or no to keep talking.`,vt=e=>`I caught some audio, but not enough clear words. Try again a little closer to the mic, or type your question for ${e?.agentName?.trim()||`the assistant`}.`,yt=e=>{let t=dt(e).replace(/\b(?:um|uh|erm|hmm)\b/g,``).trim();return!t||t.split(/\s+/).length<=2&&/^(?:can|could|would|will|do|does|is|are|what|why|how|where|when)\b/.test(t)?!0:/\b(?:can you|could you|would you|will you|do you|can i|could i|would i|i want to|i need to|tell me about|what about|how about|about|with|to|for|please)$/i.test(t)},bt=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``).split(`,`)[1]??``),r.onerror=()=>n(r.error),r.readAsDataURL(e)}),xt=(e,t)=>{let n=window.AudioContext??window.webkitAudioContext;if(!n)return null;let r,i=!1,a=new n;try{let n=a.createMediaStreamSource(e),o=a.createAnalyser();o.fftSize=512,n.connect(o);let s=new Uint8Array(o.frequencyBinCount),c=()=>{if(i)return;o.getByteTimeDomainData(s);let e=0;for(let t of s){let n=(t-128)/128;e+=n*n}t(Math.sqrt(e/s.length),performance.now()),i||(r=requestAnimationFrame(c))};c()}catch{return a.close().catch(()=>void 0),null}return{stop:()=>{i||(i=!0,r!==void 0&&cancelAnimationFrame(r),r=void 0,a.close().catch(()=>void 0))}}},St=e=>({...e?{deviceId:{exact:e}}:{},echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}),Ct=({transport:e,config:t,bindControls:n})=>{let r=t.strings,[i,a]=S(t.openByDefault),{persona:s,messages:c,sending:d,assistantSpeaking:p,visitor:m,hasEmail:h,liveMode:g,assignedAgentName:_,agentTypingName:b,starters:E,featuredLinks:te,send:O,sendGif:k,notifyTyping:ne,stop:M,retry:re,rateMessage:ie,injectAssistant:N,appendUserDraft:P,patchMessage:F,removeMessage:ae,submitCsat:I,submitForm:L,transcribe:R,extract:ce,searchGifs:ue,demoSlots:me,gifEnabled:he,identify:ge,ended:B,endConversation:ve,startNew:ye,history:be,viewingSessionId:xe,viewMessages:Se,openConversation:Ce,closeHistoryView:we,shutdown:Te,stopSpeaking:Ee,speakAssistantText:V}=l(e,t,i),[Oe,ke]=S(0),[H,U]=S(`idle`),[W,je]=S(!1),[G,Me]=S(!1),[Ne,Pe]=S(0),[K,Fe]=S(!1),[Le,Re]=S(null),[Ve,We]=S([]),[Ge,Ke]=S(``),[qe,Je]=S(()=>{try{return localStorage.getItem(`centrinfo:muted`)===`1`}catch{return!1}}),Ye=tt(t.theme),Xe=c.some(e=>e.role===`assistant`&&(e.pending||e.streaming)),Ze=d||Xe||p,st=s?.soundEnabled??!0;y(()=>{o(t.sound&&st&&!qe)},[t.sound,st,qe]);let ft=v(()=>{Je(e=>{let t=!e;try{localStorage.setItem(`centrinfo:muted`,t?`1`:`0`)}catch{}return t})},[]),Ct=x(null),wt=x(null),Tt=x(null),Et=x(0),q=x(!1),J=x(!1),Y=x(!1),Dt=x(0),Ot=x(!1),X=x(null),kt=x(null),At=x([]),jt=x(void 0),Mt=x(void 0),Nt=x(null),Pt=x(0),Ft=x(0),It=x(!1),Lt=x(0),Rt=x(null),zt=x(null),Bt=x(0),Vt=x(null),Ht=x([]),Ut=x(0),Wt=x(0),Gt=x(0),Kt=x(null),qt=x(!1),Jt=x(null),Yt=x(``),Xt=x(()=>{}),Zt=x(``),Qt=x(d),$t=x(p),en=x(Ze),tn=x(H),nn=x(0);y(()=>{Qt.current=d},[d]),y(()=>{$t.current=p},[p]),y(()=>{en.current=Ze},[Ze]),y(()=>{tn.current=H},[H]);let[rn,an]=S(!0),[on,sn]=S(!1),cn=x(0),[ln,un]=S(!1),dn=x(null),[fn,pn]=S(!1),[mn,hn]=S(!1),Z=!!xe,gn=Z?Se:c,_n=gn.find(e=>e.id===Le&&e.visualization)?.visualization;y(()=>{!Le||_n||(Re(null),Fe(!1))},[_n,Le]);let vn=v(()=>{a(!0),ke(0),f(`open`),t.onOpen?.(),t.onShow?.()},[t]),yn=v(()=>{a(!1),Fe(!1),Re(null),t.onClose?.(),t.onHide?.(),wt.current?.focus()},[t]),bn=v(()=>i?yn():vn(),[i,vn,yn]),xn=v(()=>un(!0),[]),Sn=v(()=>{ve(),un(!1)},[ve]),Cn=v(()=>{ye(),sn(!1),an(!0)},[ye]);y(()=>{ln&&dn.current?.focus()},[ln]),y(()=>{n({open:vn,close:yn,toggle:bn,identify:ge,startNew:ye,endConversation:ve,shutdown:Te})},[n,vn,yn,bn,ge,ye,ve,Te]),y(()=>{let e=c.filter(e=>e.role===`assistant`&&!e.pending).length;if(i){Et.current=e;return}e>Et.current&&ke(e-Et.current)},[c,i]),y(()=>{t.onUnreadChange?.(Oe)},[Oe,t]),y(()=>{let e=t.sessionDurationMinutes;if(!e||e<=0)return;let n=setTimeout(()=>Te(),e*60*1e3);return()=>clearTimeout(n)},[t.sessionDurationMinutes,c,i,Te]),y(()=>{let e=t.customLauncherSelector;if(!e||typeof document>`u`)return;let n=[];try{n=Array.from(document.querySelectorAll(e))}catch{return}let r=e=>{e.preventDefault(),bn()};return n.forEach(e=>e.addEventListener(`click`,r)),()=>n.forEach(e=>e.removeEventListener(`click`,r))},[t.customLauncherSelector,bn]);let wn=x(!1);y(()=>{let e=t.proactiveMessage?.trim();if(!e||wn.current)return;let n=t.proactiveOnPaths??[],r=typeof location<`u`?location.pathname:``;if(n.length>0&&!n.some(e=>r.includes(e)))return;let a=`centrinfo:proactive:${t.token.slice(0,12)}`;try{if(sessionStorage.getItem(a)===`1`)return}catch{}let o=setTimeout(()=>{if(!(i||B||c.some(e=>e.role===`user`))){wn.current=!0;try{sessionStorage.setItem(a,`1`)}catch{}N(e),vn()}},Math.max(0,t.proactiveDelaySeconds)*1e3);return()=>clearTimeout(o)},[t.proactiveMessage]),y(()=>{let e=Tt.current;if(!i||!e)return;let t=c[c.length-1],n=Date.now()<cn.current;t?.role===`user`||rn||n?(requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight}),sn(!1),n&&an(!0)):sn(!0)},[c,i,d,rn]);let Tn=v(()=>{let e=Tt.current;if(!e)return;if(q.current&&!Z){an(!0),sn(!1);return}let t=e.scrollHeight-e.scrollTop-e.clientHeight<80;an(t),t&&sn(!1)},[Z]),En=v(()=>{let e=Tt.current;e&&(e.scrollTop=e.scrollHeight),sn(!1),an(!0)},[]),Dn=v(()=>{cn.current=Date.now()+3e3,requestAnimationFrame(En)},[En]);y(()=>{if(!i||Z||!W||H===`connecting`)return;cn.current=Date.now()+6e4,En();let e=requestAnimationFrame(()=>{En(),requestAnimationFrame(En)}),t=[80,180,360].map(e=>window.setTimeout(En,e));return()=>{cancelAnimationFrame(e),t.forEach(e=>window.clearTimeout(e))}},[p,c,i,En,d,W,Z,H]);let On=v(()=>{Ct.current?.querySelector(`.cf-textarea`)?.focus()},[]),kn=v(()=>{jt.current&&window.clearTimeout(jt.current),jt.current=void 0,Mt.current&&window.clearTimeout(Mt.current),Mt.current=void 0,Nt.current?.stop(),Nt.current=null,Pe(0)},[]),An=v(()=>{zt.current?.stop(),zt.current=null,D(Vt.current),Rt.current?.getTracks().forEach(e=>e.stop()),Rt.current=null,Bt.current=0,Wt.current=0},[]),jn=v(()=>{kn(),kt.current?.getTracks().forEach(e=>e.stop()),kt.current=null},[kn]),Q=v(()=>{q.current=!1,Y.current=!1,J.current=!1,Ot.current=!1,Kt.current=null,qt.current=!1,Jt.current=null,Yt.current=``,je(!1),Me(!1),Fe(!1),Re(null),An(),Ee();let e=X.current;e?.state===`recording`?D(e):(jn(),U(`idle`))},[An,Ee,jn]),Mn=v(()=>{K&&Re(null),Fe(!K)},[K]),Nn=v(e=>{Re(e),Fe(!0)},[]),Pn=v(()=>{let e=Le;Re(null),Fe(!1),window.requestAnimationFrame(()=>{Array.from(Ct.current?.querySelectorAll(`[data-visualization-message]`)??[]).find(t=>t.dataset.visualizationMessage===e)?.focus()})},[Le]),Fn=v(()=>{Re(null),Fe(!1)},[]),In=v((e,t)=>{if(Date.now()-Dt.current>=at){U(`timeout`),Mt.current=window.setTimeout(()=>Q(),2400);return}U(e),Mt.current=window.setTimeout(()=>{q.current&&!J.current&&!$t.current&&t()},1400)},[Q]),Ln=v((e,t,n)=>{Date.now()-Dt.current<at&&!J.current&&(Y.current=!0,V(t)),In(e,n)},[In,V]),Rn=v((e,t)=>{Dn(),Dt.current=Date.now(),Y.current=!0,t&&F(t,{content:e,pending:!0,streaming:!1});let n=()=>{if(q.current){if(Qt.current){window.setTimeout(n,80);return}t&&Jt.current===t&&(Jt.current=null),O(e,{forceVoicePlayback:!0,userMessageId:t})}};n()},[Dn,F,O]),zn=v(async(e,t,n,r=`normal`,i)=>{let a=null,o=e=>a||(Dn(),a=Jt.current||P(e),Jt.current=a,F(a,{content:Yt.current||e,pending:!0,streaming:!1}),a),c=()=>{a&&(Jt.current===a&&(Jt.current=null),Yt.current=``,ae(a),a=null)},l=()=>{Yt.current=``,U(`listening`),window.setTimeout(()=>{q.current&&!J.current&&!Qt.current&&!X.current&&n()},120)},u=e.size===0,d=e.size<350&&t<.001;if(u||d){if(r===`barge`){l();return}let e=Kt.current;Ln(`noise`,e?_t(e):vt(s),n),Yt.current=``;return}U(`processing`);let f=++nn.current,p=o(`Listening...`);try{let t=typeof navigator<`u`&&(navigator.languages?.[0]||navigator.language)||void 0;F(p,{content:Yt.current?`${Yt.current} ...`:`Transcribing...`,pending:!0});let a=await bt(e);if(!a.trim()){if(c(),r===`barge`){l();return}Ln(`noise`,Kt.current?_t(Kt.current):vt(s),n);return}let o=ot(await R(a,e.type,t,i));if(f!==nn.current){c();return}let u=[Yt.current,o].map(e=>e.trim()).filter(Boolean).join(` `).replace(/\s+/g,` `).trim();if(!u||ct(u)||lt(u)){if(c(),r===`barge`){l();return}let e=Kt.current;Ln(`misunderstood`,e?_t(e):vt(s),n);return}let d=Kt.current;if(d){let e=dt(u);if(pt.test(e)||d===`end`&&ht.test(e)){c(),Kt.current=null,Xt.current(d);return}if(mt.test(e)){c(),Kt.current=null;let e=`Okay, never mind — what would you like to know?`;N(e),Y.current=!0,U(`speaking`),V(e);return}c();let t=_t(d);N(t),Y.current=!0,U(`speaking`),V(t);return}let m=gt(u);if(m){if(c(),Dt.current=Date.now(),m.confident){Xt.current(m.action);return}Kt.current=m.action;let e=`Just to confirm — you want me to ${ut[m.action]}? Please say yes or no.`;N(e),Y.current=!0,U(`speaking`),V(e);return}if(F(p,{content:u,pending:!0}),yt(u)){Yt.current=u,U(`listening`),n();return}Yt.current=``,Rn(u,p)}catch(e){if(c(),r===`barge`){l();return}Ln(`misunderstood`,`I couldn't convert your speech to text. Please check the speech service configuration or type your question.${e instanceof Error&&e.message.trim()?` (${e.message.trim()})`:``}`,n)}},[P,Dn,Ln,N,F,s,ae,Rn,V,R]),$=v(async()=>{if(!(!q.current||J.current)&&!(!s?.allowVoiceInput||B||Z)&&!Qt.current&&!X.current){An(),Y.current=!1;try{U(`connecting`);let e=await navigator.mediaDevices.getUserMedia({audio:St(Zt.current)});if(!q.current||J.current){e.getTracks().forEach(e=>e.stop());return}navigator.mediaDevices.enumerateDevices().then(e=>{We(e.filter(e=>e.kind===`audioinput`).map((e,t)=>({deviceId:e.deviceId,label:e.label||`Microphone ${t+1}`})))}).catch(()=>{});let t=ee(e);X.current=t,kt.current=e,At.current=[],Pt.current=0,It.current=!1,Lt.current=0;let n=performance.now();Nt.current=xt(e,(e,r)=>{if(Pt.current=Math.max(Pt.current,e),e>=.0038)It.current=!0,Lt.current=0;else if(It.current&&e<=rt){Lt.current||(Lt.current=r);let e=r-Lt.current,i=r-n;if(e>=it&&i>=550&&t.state===`recording`){D(t);return}}else Lt.current=0;r-Ft.current>90&&(Ft.current=r,Pe(e))}),t.ondataavailable=e=>{e.data.size>0&&At.current.push(e.data)},t.onstop=async()=>{if(jn(),X.current=null,Ot.current){Ot.current=!1,q.current&&!J.current?(U(`idle`),$()):U(q.current&&J.current?`muted`:`idle`);return}if(!q.current){U(`idle`);return}await zn(new Blob(At.current,{type:t.mimeType||`audio/webm`}),Pt.current,$,`normal`,Math.max(0,(performance.now()-n)/1e3))},t.start(250),U(`listening`),jt.current=window.setTimeout(()=>{D(X.current)},nt)}catch{U(`denied`),Mt.current=window.setTimeout(()=>Q(),3500)}}},[B,Q,zn,s,s?.allowVoiceInput,An,jn,Z]),Bn=v(()=>{if(q.current){Q();return}On(),!(!s?.allowVoiceInput||Qt.current||B||Z)&&(Dt.current=Date.now(),Y.current=!1,J.current=!1,q.current=!0,Me(!1),je(!0),U(`connecting`),$())},[B,Q,On,s,s?.allowVoiceInput,$,Z]),Vn=v(()=>{Me(e=>{let t=!e;if(J.current=t,t){let e=X.current;e?.state===`recording`?(Ot.current=!0,D(e)):(jn(),U(`muted`))}else q.current&&!B&&!Z&&(U(`idle`),$());return t})},[B,$,jn,Z]),Hn=v((e,t)=>{N(e),t&&(Y.current=!0),U(`speaking`),V(e)},[N,V]),Un=v(e=>{switch(Dt.current=Date.now(),e){case`end`:Y.current=!1,qt.current=!0,Hn(`Okay — ending our call now. Goodbye!`,!1),window.setTimeout(()=>{qt.current&&(qt.current=!1,Q())},2e3);break;case`mute`:{J.current||Vn();let e=`Muted. Tap the mic button when you want me to listen again.`;N(e),V(e);break}case`minimize`:yn(),Hn(`Minimized — I'm still listening. Tap the call pill to bring the chat back.`,!0);break;case`expand`:Fe(!0),Hn(`Sure — expanding the view.`,!0);break;case`shrink`:Re(null),Fe(!1),Hn(`Okay — back to the smaller view.`,!0);break}},[yn,Q,N,V,Hn,Vn]);y(()=>{Xt.current=Un},[Un]);let Wn=x(!1);y(()=>{Wn.current&&!p&&qt.current&&(qt.current=!1,Q()),Wn.current=p},[p,Q]);let Gn=v(e=>{Zt.current=e,Ke(e);let t=X.current;t?.state===`recording`&&(Ot.current=!0,D(t))},[]),Kn=v(()=>{if(!(!q.current||J.current)){if(An(),M(),Ee(),Dt.current=Date.now(),U(`listening`),Qt.current){let e=()=>{if(!(!q.current||J.current)){if(Qt.current){window.setTimeout(e,70);return}Y.current=!1,$()}};window.setTimeout(e,70);return}Y.current=!1,$()}},[$,M,An,Ee]),qn=v(async()=>{if(!(Rt.current||zt.current)&&!(!q.current||J.current))try{let e=await navigator.mediaDevices.getUserMedia({audio:St(Zt.current)});if(!q.current||J.current||X.current||Rt.current||!en.current&&tn.current!==`processing`){e.getTracks().forEach(e=>e.stop());return}Rt.current=e,Bt.current=0,Wt.current=0,Gt.current=0;let t=()=>{if(Vt.current)return;M(),Ee(),nn.current+=1,Dt.current=Date.now(),Y.current=!1,U(`listening`);let t=ee(e);Vt.current=t,Ht.current=[],Ut.current=performance.now(),Wt.current=0,t.ondataavailable=e=>{e.data.size>0&&Ht.current.push(e.data)},t.onstop=async()=>{let e=Ht.current,n=Gt.current,r=t.mimeType||`audio/webm`;Vt.current=null,Ht.current=[],An(),q.current&&await zn(new Blob(e,{type:r}),n,$,`barge`,Math.max(0,(performance.now()-Ut.current)/1e3))},t.start(250)};zt.current=xt(e,(e,n)=>{if(Gt.current=Math.max(Gt.current,e),n-Ft.current>90&&(Ft.current=n,Pe(e)),e>=.009)Bt.current||(Bt.current=n),n-Bt.current>=280&&t(),Wt.current=0;else if(Vt.current&&e<=rt){Wt.current||(Wt.current=n);let e=n-Wt.current,t=n-Ut.current;e>=it&&t>=550&&Vt.current.state===`recording`&&D(Vt.current)}else Vt.current&&n-Ut.current>=nt&&Vt.current.state===`recording`?D(Vt.current):(Bt.current=0,Wt.current=0)}),zt.current||An()}catch{}},[zn,$,M,An,Ee]);y(()=>{if(!(W&&!G&&!B&&!Z&&(Ze||H===`processing`))){An();return}let e=window.setTimeout(()=>void qn(),250);return()=>window.clearTimeout(e)},[Ze,B,qn,An,W,G,H,Z]);let Jn=W&&!G&&(d||p||H===`processing`);y(()=>{!W||G||p&&U(`speaking`)},[p,W,G]),y(()=>{if(!W||G||!Y.current||d||p||![`processing`,`speaking`,`noise`,`misunderstood`].includes(H))return;let e=window.setTimeout(()=>{!q.current||J.current||Qt.current||(Y.current=!1,$())},700);return()=>window.clearTimeout(e)},[p,d,$,W,G,H]),y(()=>()=>Q(),[Q]);let[Yn,Xn]=S(``),Zn=x(!1);y(()=>{if(Zn.current&&!d){let e=[...c].reverse().find(e=>e.role===`assistant`&&!e.streaming&&!e.pending&&e.content);e&&Xn(e.content)}Zn.current=d},[d,c]),y(()=>{if(!i)return;let e=Ct.current;ln||e?.querySelector(`.cf-textarea`)?.focus();let t=t=>{if(t.key===`Escape`){if(t.preventDefault(),ln){un(!1);return}yn();return}if(t.key!==`Tab`||!e)return;let n=e.querySelectorAll(`button, [href], textarea, input, [tabindex]:not([tabindex="-1"])`),r=Array.from(n).filter(e=>!e.hasAttribute(`disabled`));if(r.length===0)return;let i=r[0],a=r[r.length-1],o=e.getRootNode()instanceof ShadowRoot?e.getRootNode().activeElement:document.activeElement;t.shiftKey&&o===i?(t.preventDefault(),a.focus()):!t.shiftKey&&o===a&&(t.preventDefault(),i.focus())};return e?.addEventListener(`keydown`,t),()=>e?.removeEventListener(`keydown`,t)},[i,yn,ln]),y(()=>{let e=Ct.current;e&&(i?e.removeAttribute(`inert`):e.setAttribute(`inert`,``))},[i]);let Qn=t.accentColor??t.themeTokens?.accent??s?.accentColor,$n={zIndex:t.zIndex,"--cf-h-pad":`${t.horizontalPadding}px`,"--cf-v-pad":`${t.verticalPadding}px`,...t.themeTokens?.accentText?{"--cf-accent-ink":t.themeTokens.accentText}:{},...t.themeTokens?.accentStrong?{"--cf-accent-2":t.themeTokens.accentStrong}:{},...t.themeTokens?.background?{"--cf-bg":t.themeTokens.background}:{},...t.themeTokens?.surface?{"--cf-surface":t.themeTokens.surface}:{},...t.themeTokens?.surfaceMuted?{"--cf-surface-2":t.themeTokens.surfaceMuted}:{},...t.themeTokens?.text?{"--cf-text":t.themeTokens.text}:{},...t.themeTokens?.mutedText?{"--cf-muted":t.themeTokens.mutedText}:{},...t.themeTokens?.border?{"--cf-border":t.themeTokens.border}:{},...t.themeTokens?.shadow?{"--cf-shadow":t.themeTokens.shadow}:{},...t.themeTokens?.radius?{"--cf-radius":t.themeTokens.radius}:{},...t.themeTokens?.fontFamily?{"--cf-font":t.themeTokens.fontFamily}:{},...Qn?{"--cf-accent":Qn,"--cf-accent-2":t.themeTokens?.accentStrong??`color-mix(in oklab, ${Qn} 76%, #14141f)`}:{}},er=e=>O(e),tr=[...c].reverse().find(e=>e.role===`user`&&e.content.trim())?.content??``,nr=c.some(e=>e.role===`user`),rr=s?.talkbackMode===`avatar`||s?.widgetModule===`assistant`||!!s?.allowVoiceInput,ir=!Z&&rr&&!nr?gn.filter((e,t)=>!(t===0&&e.role===`assistant`)):gn,ar=g===`human`&&_?_:s?.agentName??`Chat`,or=g===`human`?`Live support`:g===`queued`?`Waiting for the team`:s?.offline?r.statusOffline:r.statusOnline,sr=!B&&!Z?s?.availableActions:void 0,cr=W&&H===`connecting`&&!Z;return w(u,{value:r,children:T(`div`,{class:`cf-root`,"data-theme":Ye,"data-align":t.alignment,"data-display":`floating`,style:$n,children:[K&&i&&w(`div`,{class:`cf-theater-backdrop`,onClick:Fn}),T(`div`,{ref:Ct,class:`cf-panel ${i?`is-open`:``} ${W?`cf-panel--call`:``} ${cr?`cf-panel--voice-connecting`:``} ${K&&i?`cf-panel--theater`:``} ${_n?`cf-panel--analytics-focus`:``}`,role:`dialog`,"aria-modal":`false`,"aria-label":`Chat with ${s?.agentName??`us`}`,"aria-hidden":!i,children:[T(`div`,{class:`cf-header`,children:[w(De,{persona:s,hideWhenMissing:!0}),T(`div`,{class:`cf-header__meta`,children:[w(`div`,{class:`cf-header__name`,children:ar}),w(`div`,{class:`cf-header__status ${g===`ai`&&s?.offline?`cf-header__status--offline`:``}`,children:w(`span`,{class:`cf-header__status-text`,children:or})})]}),T(`div`,{class:`cf-header__actions`,children:[be.length>0&&w(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":r.pastConversations,title:r.pastConversations,"aria-pressed":fn,onClick:()=>pn(e=>!e),children:w(fe,{})}),nr&&!B&&!Z&&w(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":r.endChat,title:r.endChat,onClick:xn,children:w(de,{})}),t.sound&&st&&w(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":qe?r.unmuteSounds:r.muteSounds,"aria-pressed":qe,onClick:ft,children:w(qe?se:oe,{})}),w(`button`,{type:`button`,class:`cf-header__btn cf-header__close`,"aria-label":r.closeChat,onClick:yn,children:w(j,{})})]})]}),w(`div`,{class:`cf-panel__video`,children:_n?w(`div`,{class:`cf-analytics-focus`,role:`region`,"aria-label":`Expanded analytics result`,children:w(Ue,{visualization:_n,expanded:!0,onClose:Pn})}):!Z&&rr?w(Ae,{persona:s,starters:[],onPick:O,onFocusComposer:Bn,speaking:p,voiceState:H,replyPending:W&&d&&!p,pinned:!0,muted:G,onToggleMute:Vn,onEndCall:Q,onTalkNow:Kn,showTalkNow:Jn,micLevel:Ne,theaterMode:K,onToggleTheater:Mn,onMinimize:yn,audioDevices:Ve,selectedAudioDeviceId:Ge,onSelectAudioDevice:Gn,connectingOnly:cr}):null}),!cr&&T(`div`,{class:`cf-panel__chat`,children:[t.preview&&w(`div`,{class:`cf-preview-banner`,children:r.previewBanner}),Z&&w(`div`,{class:`cf-viewing-banner`,children:r.viewingPast}),T(`div`,{class:`cf-body`,ref:Tt,role:`log`,onScroll:Tn,children:[ir.map((e,t)=>w(He,{msg:e,persona:s,isLast:!Z&&t===ir.length-1,visitor:m,hasEmail:h,lastQuestion:tr,showActions:!Z&&t===ir.length-1&&!!e.handoffOffered,onPickReply:er,onSubmitForm:L,onDemoSlots:me,onRetry:re,ratable:!Z&&ir.slice(0,t).some(e=>e.role===`user`),onRate:ie,onExpandVisualization:Z?void 0:Nn},e.id)),!nr&&!Z&&T(C,{children:[ir.length===0&&w(et,{name:s?.agentName??`Assistant`,greeting:s?.greeting}),w(ze,{items:E,onPick:O}),w(Be,{items:te})]}),on&&T(`button`,{type:`button`,class:`cf-newmsg`,onClick:En,children:[w(_e,{}),r.newMessages]})]}),w(`div`,{class:`cf-sr-live`,"aria-live":`polite`,"aria-atomic":`true`,children:Yn}),d&&!B&&!Z&&w(`div`,{class:`cf-stopbar`,children:T(`button`,{type:`button`,class:`cf-stop`,onClick:M,children:[w(le,{}),r.stop]})}),Z?w(`div`,{class:`cf-ended`,children:w(`button`,{type:`button`,class:`cf-ended__btn`,onClick:we,children:r.backToChat})}):B?T(`div`,{class:`cf-ended`,children:[w(`p`,{class:`cf-ended__text`,children:r.conversationEnded}),t.csat&&nr?mn?w(`p`,{class:`cf-ended__text`,children:r.feedbackThanks}):T(`div`,{class:`cf-csat`,children:[w(`span`,{class:`cf-csat__q`,children:r.csatPrompt}),w(`button`,{type:`button`,class:`cf-csat__btn`,"aria-label":r.feedbackHelpful,onClick:()=>{I(`up`),hn(!0)},children:w(z,{})}),w(`button`,{type:`button`,class:`cf-csat__btn`,"aria-label":r.feedbackNotHelpful,onClick:()=>{I(`down`),hn(!0)},children:w(pe,{})})]}):null,w(`button`,{type:`button`,class:`cf-ended__btn`,onClick:Cn,children:r.startNewChat})]}):T(C,{children:[b?T(`div`,{class:`cf-live-typing`,"aria-live":`polite`,children:[b,` is typing…`]}):null,sr&&sr.length>0&&w(`div`,{class:`cf-footer-actions`,children:w(Ie,{actions:sr,visitor:m,onSubmitForm:L,onDemoSlots:me,scheduler:s?.scheduler})}),w($e,{onSend:O,onSendGif:k,onTyping:ne,disabled:d,allowVoice:!!s?.allowVoiceInput,onTranscribe:R,gifEnabled:he,onSearchGifs:ue,allowAttach:t.attachments,onExtract:ce})]}),!B&&s?.disclaimerText&&w(`div`,{class:`cf-disclaimer`,children:s.disclaimerText}),T(`div`,{class:`cf-footer`,children:[r.poweredBy,` `,w(`a`,{href:`https://accurix.tech/centrinfo`,target:`_blank`,rel:`noopener noreferrer`,children:`Centrinfo`})]})]}),ln&&w(`div`,{class:`cf-confirm`,onClick:()=>un(!1),children:T(`div`,{class:`cf-confirm__card`,role:`alertdialog`,"aria-modal":`true`,"aria-label":r.endChatConfirm,onClick:e=>e.stopPropagation(),children:[w(`div`,{class:`cf-confirm__title`,children:r.endChatConfirm}),w(`div`,{class:`cf-confirm__body`,children:r.endChatConfirmBody}),T(`div`,{class:`cf-confirm__actions`,children:[w(`button`,{ref:dn,type:`button`,class:`cf-confirm__btn cf-confirm__btn--cancel`,onClick:()=>un(!1),children:r.cancel}),w(`button`,{type:`button`,class:`cf-confirm__btn cf-confirm__btn--danger`,onClick:Sn,children:r.endConfirmCta})]})]})}),fn&&w(`div`,{class:`cf-confirm`,onClick:()=>pn(!1),children:T(`div`,{class:`cf-history`,role:`dialog`,"aria-modal":`true`,"aria-label":r.pastConversations,onClick:e=>e.stopPropagation(),children:[T(`div`,{class:`cf-history__head`,children:[w(`span`,{children:r.pastConversations}),w(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":r.closeChat,onClick:()=>pn(!1),children:w(j,{})})]}),w(`div`,{class:`cf-history__list`,children:be.map(e=>T(`button`,{type:`button`,class:`cf-history__item ${e.sessionId===xe?`is-active`:``}`,onClick:()=>{Ce(e.sessionId),pn(!1)},children:[w(`span`,{class:`cf-history__title`,children:e.title}),T(`span`,{class:`cf-history__meta`,children:[new Date(e.ts).toLocaleDateString(void 0,{month:`short`,day:`numeric`}),e.ended?` · ${r.historyEnded}`:``]})]},e.sessionId))})]})})]}),W&&!i?w(Qe,{persona:s,voiceState:H,muted:G,onToggleMute:Vn,onEndCall:Q,micLevel:Ne,onExpand:vn}):K&&i?null:!t.hideDefaultLauncher&&T(`button`,{ref:wt,type:`button`,class:`cf-launcher`,"aria-label":i?r.closeChat:r.openChat,"aria-expanded":i,onClick:bn,children:[t.launcherIcon?w(`img`,{class:`cf-launcher__img`,src:t.launcherIcon,alt:``}):w(A,{}),!i&&Oe>0&&w(`span`,{class:`cf-launcher__badge`,children:Oe})]})]})})},wt=`
1
+ import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,i as l,l as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"./config-CkU4urQY.mjs";import{render as x}from"preact";import{useCallback as S,useEffect as C,useLayoutEffect as ee,useMemo as w,useRef as T,useState as E}from"preact/hooks";import{Fragment as D,jsx as O,jsxs as k}from"preact/jsx-runtime";const A=[{name:`Smileys`,emojis:`😀.😃.😄.😁.😅.😂.🤣.😊.😇.🙂.🙃.😉.😌.😍.🥰.😘.😋.😛.😜.🤪.🤗.🤭.🤔.🤐.😐.😶.😏.🙄.😴.🥳.😎.🤓.🥺.😢.😭.😤.😠.🤯.😬.😱.🤩.🥱`.split(`.`)},{name:`Gestures`,emojis:[`👍`,`👎`,`👌`,`🤌`,`✌️`,`🤞`,`🤟`,`🤘`,`🤙`,`👈`,`👉`,`👆`,`👇`,`✋`,`🖐️`,`👋`,`🤝`,`🙏`,`💪`,`👏`,`🙌`,`👐`,`🤲`,`🫶`]},{name:`Hearts & symbols`,emojis:`❤️.🧡.💛.💚.💙.💜.🖤.🤍.💔.❣️.💕.💖.💘.💝.✨.⭐.🌟.💫.🔥.🎉.🎊.✅.❌.⚡.💯.🚀`.split(`.`)},{name:`Animals & nature`,emojis:[`🐶`,`🐱`,`🦊`,`🐻`,`🐼`,`🐨`,`🦁`,`🐮`,`🐸`,`🐵`,`🐧`,`🦄`,`🐝`,`🦋`,`🐢`,`🐬`,`🌷`,`🌸`,`🌹`,`🌻`,`🌳`,`🍀`]},{name:`Food & drink`,emojis:[`🍎`,`🍌`,`🍉`,`🍓`,`🍒`,`🥑`,`🍔`,`🍟`,`🍕`,`🌮`,`🍿`,`🍩`,`🍪`,`🎂`,`☕`,`🍵`,`🍺`,`🥂`,`🍷`]},{name:`Objects & travel`,emojis:`🚀.✈️.🚗.🏠.📦.📱.💻.⌚.📷.💡.🔑.🎁.📌.✏️.📝.📞.📧.💰.📈.⏰.🔔.🎯.🏆.🎮.🎵.💬.👀`.split(`.`)}],te={"contact-support":{title:`Contact support`,submit:`Request support`,fields:[{key:`visitorName`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`visitorEmail`,label:`Email`,kind:`email`,required:!0,identity:`email`},{key:`subject`,label:`Subject`,kind:`text`,required:!0},{key:`message`,label:`Message`,kind:`textarea`,required:!0,placeholder:`What do you need help with?`}]},inquiry:{title:`Leave a message`,submit:`Send message`,fields:[{key:`visitorName`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`visitorEmail`,label:`Email`,kind:`email`,required:!0,identity:`email`},{key:`message`,label:`Message`,kind:`textarea`,required:!0,placeholder:`How can we help?`}]},contact:{title:`Share your details`,submit:`Save`,fields:[{key:`name`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`email`,label:`Email`,kind:`email`,required:!0,identity:`email`},{key:`phone`,label:`Phone`,kind:`tel`,required:!0,identity:`phone`}]},"book-demo":{title:`Book a demo`,submit:`Request demo`,fields:[{key:`visitorName`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`visitorEmail`,label:`Email`,kind:`email`,required:!0,identity:`email`},{key:`preferredAt`,label:`Preferred time`,kind:`text`,placeholder:`e.g. Thursday 3pm`},{key:`notes`,label:`Notes`,kind:`textarea`,placeholder:`Anything we should know?`}]},"request-callback":{title:`Request a callback`,submit:`Request callback`,fields:[{key:`visitorName`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`visitorPhone`,label:`Phone`,kind:`tel`,required:!0,identity:`phone`},{key:`bestTime`,label:`Best time to call`,kind:`text`,placeholder:`e.g. tomorrow afternoon`},{key:`topic`,label:`Topic`,kind:`text`,placeholder:`What should we call about?`}]},"subscribe-newsletter":{title:`Subscribe`,submit:`Subscribe`,fields:[{key:`visitorName`,label:`Full name`,kind:`text`,required:!0,identity:`name`},{key:`visitorEmail`,label:`Email`,kind:`email`,required:!0,identity:`email`}]}},j=(e,t)=>O(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`,...t,children:e}),M=e=>O(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,...e,children:O(`path`,{"fill-rule":`evenodd`,"clip-rule":`evenodd`,d:`M5 3.25h14A3.75 3.75 0 0 1 22.75 7v6A3.75 3.75 0 0 1 19 16.75h-7.19l-4.26 3.84A.75.75 0 0 1 6.25 20v-3.32A3.75 3.75 0 0 1 2.25 13V7A3.75 3.75 0 0 1 6 3.25Zm3 7.75a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Zm4 0a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Zm4 0a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z`})}),N=e=>j(O(`path`,{d:`m6 9 6 6 6-6`}),e),P=e=>j(k(D,{children:[O(`path`,{d:`m22 2-7 20-4-9-9-4Z`}),O(`path`,{d:`M22 2 11 13`})]}),e),ne=e=>j(k(D,{children:[O(`path`,{d:`M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z`}),O(`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`}),O(`line`,{x1:`12`,y1:`19`,x2:`12`,y2:`22`})]}),e),F=e=>j(k(D,{children:[O(`path`,{d:`M9 9v1a3 3 0 0 0 4.24 2.73`}),O(`path`,{d:`M15 5.5V5a3 3 0 0 0-5.94-.6`}),O(`path`,{d:`M19 10v2a7 7 0 0 1-9.9 6.36`}),O(`path`,{d:`M5 10v2a6.98 6.98 0 0 0 1.11 3.79`}),O(`line`,{x1:`12`,y1:`19`,x2:`12`,y2:`22`}),O(`line`,{x1:`2`,y1:`2`,x2:`22`,y2:`22`})]}),e),I=e=>j(k(D,{children:[O(`path`,{d:`M15 3h6v6`}),O(`path`,{d:`M10 14 21 3`}),O(`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`})]}),e),re=e=>j(k(D,{children:[O(`rect`,{x:`3`,y:`4`,width:`18`,height:`18`,rx:`2`}),O(`line`,{x1:`16`,y1:`2`,x2:`16`,y2:`6`}),O(`line`,{x1:`8`,y1:`2`,x2:`8`,y2:`6`}),O(`line`,{x1:`3`,y1:`10`,x2:`21`,y2:`10`})]}),e),L=e=>j(k(D,{children:[O(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`}),O(`path`,{d:`m22 7-10 5L2 7`})]}),e),R=e=>j(O(`path`,{d:`M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92Z`}),e),ie=e=>j(k(D,{children:[O(`circle`,{cx:`12`,cy:`12`,r:`9`}),O(`path`,{d:`M8.5 14.5a4 4 0 0 0 7 0`}),O(`line`,{x1:`9`,y1:`9.5`,x2:`9.01`,y2:`9.5`}),O(`line`,{x1:`15`,y1:`9.5`,x2:`15.01`,y2:`9.5`})]}),e),z=e=>j(k(D,{children:[O(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),O(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]}),e),ae=e=>j(k(D,{children:[O(`path`,{d:`M11 5 6 9H2v6h4l5 4z`}),O(`path`,{d:`M15.5 8.5a5 5 0 0 1 0 7`}),O(`path`,{d:`M19 5a9 9 0 0 1 0 14`})]}),e),oe=e=>j(k(D,{children:[O(`path`,{d:`M11 5 6 9H2v6h4l5 4z`}),O(`line`,{x1:`22`,y1:`9`,x2:`16`,y2:`15`}),O(`line`,{x1:`16`,y1:`9`,x2:`22`,y2:`15`})]}),e),se=e=>j(O(`path`,{d:`M20 6 9 17l-5-5`}),e),ce=e=>j(k(D,{children:[O(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`}),O(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})]}),e),le=e=>j(k(D,{children:[O(`path`,{d:`M1 4v6h6`}),O(`path`,{d:`M3.51 15a9 9 0 1 0 2.13-9.36L1 10`})]}),e),ue=e=>j(O(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`}),e),de=e=>j(O(`path`,{d:`M21.44 11.05 12.25 20.24a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48`}),e),fe=e=>j(k(D,{children:[O(`path`,{d:`M18.36 6.64a9 9 0 1 1-12.73 0`}),O(`line`,{x1:`12`,y1:`2`,x2:`12`,y2:`12`})]}),e),pe=e=>j(k(D,{children:[O(`circle`,{cx:`12`,cy:`12`,r:`9`}),O(`path`,{d:`M12 7v5l3 2`})]}),e),me=e=>j(k(D,{children:[O(`path`,{d:`M7 10v12`}),O(`path`,{d:`M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z`})]}),e),he=e=>j(k(D,{children:[O(`path`,{d:`M17 14V2`}),O(`path`,{d:`M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z`})]}),e),ge=e=>j(k(D,{children:[O(`path`,{d:`M15 3h6v6`}),O(`path`,{d:`M9 21H3v-6`}),O(`path`,{d:`M21 3l-7 7`}),O(`path`,{d:`M3 21l7-7`})]}),e),_e=e=>j(k(D,{children:[O(`path`,{d:`M9 3v6H3`}),O(`path`,{d:`M15 21v-6h6`}),O(`path`,{d:`M9 9 2 2`}),O(`path`,{d:`M15 15l7 7`})]}),e),B=e=>j(k(D,{children:[O(`rect`,{x:`3`,y:`4`,width:`18`,height:`14`,rx:`2`}),O(`rect`,{x:`11`,y:`11`,width:`8`,height:`6`,rx:`1`,fill:`currentColor`,stroke:`none`})]}),e),ve=e=>j(k(D,{children:[O(`rect`,{x:`4`,y:`5`,width:`16`,height:`14`,rx:`2`}),O(`path`,{d:`M12 15V9`}),O(`path`,{d:`m8.5 12.5 3.5-3.5 3.5 3.5`})]}),e),ye=e=>j(k(D,{children:[O(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),O(`path`,{d:`m19 12-7 7-7-7`})]}),e),be=e=>{let t=(e??``).trim().toLowerCase().replaceAll(`-`,`_`);return t===`low`||t===`low_quality`?`Low-confidence forecast`:t===`medium`||t===`directional`?`Directional forecast`:t===`high`||t===`validated`||t===`trusted`?`Validated forecast`:`Forecast estimate`},V=e=>{if(!e)return`Live data`;let t=new Date(e);return Number.isNaN(t.getTime())?`Live data`:`Updated ${new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}).format(t)}`},xe=({answeredAt:e,reportingPeriod:t,filters:n=[],rowCount:r})=>k(`div`,{class:`cf-analytics-meta`,"data-testid":`analytics-result-meta`,"aria-label":`Result details`,children:[k(`span`,{children:[O(`span`,{"aria-hidden":`true`,class:`cf-analytics-meta__dot`}),V(e)]}),t?.label?O(`span`,{children:t.label}):null,typeof r==`number`?k(`span`,{children:[r,` `,r===1?`row`:`rows`]}):null,n.length>0?k(`span`,{children:[n.length,` applied `,n.length===1?`filter`:`filters`]}):null]}),Se=({label:e,value:t})=>k(`section`,{class:`cf-analytics-kpi`,"aria-label":e,"data-testid":`analytics-kpi`,children:[O(`div`,{class:`cf-analytics-kpi__label`,children:e}),O(`div`,{class:`cf-analytics-kpi__value`,children:t})]}),Ce=({title:e=`No matching data`,description:t=`No approved records matched this question.`})=>k(`section`,{class:`cf-analytics-empty`,role:`status`,"data-testid":`analytics-empty-state`,children:[O(`p`,{children:e}),O(`p`,{children:t})]}),we=e=>e===`line`?`Best for change over time.`:e===`stacked_bar`?`Compare totals and their parts.`:`Compare categories or ranked values.`,Te=({type:e,className:t=`cf-chart-type-icon`})=>e===`line`?k(`svg`,{viewBox:`0 0 32 32`,"aria-hidden":`true`,class:t,children:[O(`path`,{d:`M6 25h21M6 7v18`,fill:`none`,stroke:`#6B7280`,"stroke-width":`1.4`,"stroke-linecap":`round`,"stroke-linejoin":`round`}),O(`path`,{d:`M8 21c4-7 7 2 11-6 2.5-5 4.5-2 7-7`,fill:`none`,stroke:`#2563EB`,"stroke-width":`2.1`,"stroke-linecap":`round`,"stroke-linejoin":`round`})]}):e===`stacked_bar`?k(`svg`,{viewBox:`0 0 32 32`,"aria-hidden":`true`,class:t,children:[O(`path`,{d:`M6 26h21M6 7v19`,fill:`none`,stroke:`#6B7280`,"stroke-width":`1.4`,"stroke-linecap":`round`,"stroke-linejoin":`round`}),[9,15,21].map((e,t)=>k(`g`,{children:[O(`rect`,{x:e,y:18-t*2,width:`4`,height:8+t*2,fill:`#2563EB`,rx:`0.6`}),O(`rect`,{x:e,y:13-t,width:`4`,height:`5`,fill:`#F59E0B`,rx:`0.6`}),O(`rect`,{x:e,y:9-t,width:`4`,height:`4`,fill:`#22C55E`,rx:`0.6`})]},e))]}):k(`svg`,{viewBox:`0 0 32 32`,"aria-hidden":`true`,class:t,children:[O(`path`,{d:`M6 26h21M6 7v19`,fill:`none`,stroke:`#6B7280`,"stroke-width":`1.4`,"stroke-linecap":`round`,"stroke-linejoin":`round`}),O(`rect`,{x:`9`,y:`18`,width:`4`,height:`8`,fill:`#2563EB`,rx:`0.7`}),O(`rect`,{x:`15`,y:`13`,width:`4`,height:`13`,fill:`#2563EB`,rx:`0.7`}),O(`rect`,{x:`21`,y:`8`,width:`4`,height:`18`,fill:`#2563EB`,rx:`0.7`})]}),Ee=({explanation:e,onFollowUp:t,showLead:n=!1,maxFollowUps:r=3})=>k(`section`,{class:`cf-analytics-explanation`,"data-testid":`inline-analytics-explanation`,"aria-label":`Analysis and supporting evidence`,children:[n?k(`div`,{class:`cf-analytics-explanation__lead`,"data-testid":`analytics-explanation-lead`,children:[e.conversationalPreface?O(`p`,{class:`cf-analytics-explanation__summary`,children:e.conversationalPreface}):null,k(`div`,{class:`cf-analytics-explanation__lead-meta`,children:[O(`span`,{class:`cf-analytics-explanation__eyebrow`,children:`Answer from your data`}),k(`span`,{class:`cf-analytics-explanation__provenance`,children:[O(`span`,{"aria-hidden":`true`,class:`cf-analytics-explanation__provenance-dot`}),e.source===`ai_grounded`?`AI-assisted · evidence checked`:`Based on current values`]})]}),O(`h3`,{class:`cf-analytics-explanation__headline`,children:e.headline}),O(`p`,{class:`cf-analytics-explanation__summary`,children:e.summary})]}):null,k(`div`,{class:`cf-analytics-explanation__body`,children:[(e.evidence?.length??0)>0?k(`section`,{class:`cf-analytics-explanation__section`,children:[O(`h4`,{class:`cf-analytics-explanation__heading`,children:`What the numbers show`}),O(`ul`,{class:`cf-analytics-explanation__evidence`,children:e.evidence?.slice(0,4).map(e=>k(`li`,{class:`cf-analytics-explanation__evidence-item`,children:[O(`span`,{"aria-hidden":`true`,class:`cf-analytics-explanation__evidence-bullet`}),O(`span`,{children:e})]},e))})]}):null,e.businessMeaning?k(`section`,{class:`cf-analytics-explanation__meaning`,children:[O(`h4`,{class:`cf-analytics-explanation__heading`,children:`Why this may matter`}),O(`p`,{class:`cf-analytics-explanation__paragraph`,children:e.businessMeaning})]}):null,(e.possibleDrivers?.length??0)>0?k(`section`,{class:`cf-analytics-explanation__section`,children:[k(`div`,{class:`cf-analytics-explanation__section-heading`,children:[O(`h4`,{class:`cf-analytics-explanation__heading`,children:`Possibilities worth checking`}),O(`span`,{class:`cf-analytics-explanation__hint`,children:`These are not proven causes`})]}),O(`div`,{class:`cf-analytics-explanation__drivers`,children:e.possibleDrivers?.slice(0,2).map(e=>k(`article`,{class:`cf-analytics-explanation__driver`,children:[O(`p`,{class:`cf-analytics-explanation__driver-title`,children:e.hypothesis}),k(`p`,{class:`cf-analytics-explanation__driver-body`,children:[O(`span`,{class:`cf-analytics-explanation__driver-label`,children:`How to check:`}),` `,e.howToCheck]})]},`${e.hypothesis}-${e.howToCheck}`))})]}):null,(e.recommendations?.length??0)>0?k(`section`,{class:`cf-analytics-explanation__section`,children:[O(`h4`,{class:`cf-analytics-explanation__heading`,children:`Useful next steps`}),O(`div`,{class:`cf-analytics-explanation__recommendations`,children:e.recommendations?.slice(0,3).map((e,t)=>k(`article`,{class:`cf-analytics-explanation__recommendation`,children:[O(`span`,{class:`cf-analytics-explanation__recommendation-index`,children:t+1}),k(`div`,{children:[O(`p`,{class:`cf-analytics-explanation__recommendation-title`,children:e.action}),O(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:e.why}),e.successMetric?k(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:[O(`span`,{class:`cf-analytics-explanation__driver-label`,children:`Watch:`}),` `,e.successMetric]}):null]})]},`${e.action}-${e.why}`))})]}):null,e.forecast?k(`section`,{class:`cf-analytics-explanation__outlook`,children:[k(`div`,{class:`cf-analytics-explanation__outlook-header`,children:[O(`h4`,{class:`cf-analytics-explanation__heading`,children:`Outlook`}),O(`span`,{class:`cf-analytics-explanation__outlook-badge`,children:be(e.forecast.qualityStatus)})]}),O(`p`,{class:`cf-analytics-explanation__paragraph`,children:e.forecast.text}),e.forecast.limitations?O(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:e.forecast.limitations}):null]}):null,t&&(e.followUps?.length??0)>0?k(`section`,{class:`cf-analytics-explanation__section cf-analytics-explanation__follow-up`,children:[O(`h4`,{class:`cf-analytics-explanation__heading`,children:`Ask a follow-up`}),O(`div`,{class:`cf-analytics-explanation__questions`,children:e.followUps?.slice(0,r).map(e=>O(`button`,{type:`button`,class:`cf-analytics-explanation__question`,onClick:()=>t(e),children:e},e))})]}):null,(e.limitations?.length??0)>0?k(`details`,{class:`cf-analytics-explanation__limits`,children:[O(`summary`,{class:`cf-analytics-explanation__limits-summary`,children:`Important limits`}),O(`ul`,{class:`cf-analytics-explanation__limits-list`,children:e.limitations?.map(e=>O(`li`,{children:e},e))})]}):null]}),O(`p`,{class:`cf-analytics-explanation__source`,children:e.source===`ai_grounded`?`AI-assisted wording, checked against the live values shown here.`:`Based only on the live values shown here.`})]}),De=e=>e.explanation?.source===`ai_grounded`?e.explanation:e.businessAnalysis?.explanation??e.explanation,Oe=()=>{let e=T(null);return C(()=>{let t=requestAnimationFrame(()=>e.current?.scrollIntoView?.({block:`end`}));return()=>cancelAnimationFrame(t)},[]),e},ke=e=>e.trim().split(/\s+/).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)||`🤖`,H=e=>{let t=e?.avatarId?.trim().toLowerCase().replace(/[^a-z0-9-]/g,`-`);return t?` cf-avatar-preset--${t}`:``},Ae={"support-guide":`SG`,"sales-host":`SH`,"calm-advisor":`CA`,"technical-guide":`TG`,"school-desk":`SD`,"front-office":`FO`},je=e=>{let t=e?.avatarId?.trim().toLowerCase();return t&&Ae[t]||(e?ke(e.agentName):`·`)},Me=({persona:e,small:t,hideWhenMissing:n})=>{let r=t?`cf-msg__avatar`:`cf-header__avatar`,i=e?.agentAvatarUrl?.trim();return i?O(`span`,{class:r,children:O(`img`,{src:i,alt:``})}):n?null:O(`span`,{class:`${r}${H(e)}`,children:je(e)})},U=()=>{let e=a(),[t,n]=E(0),r=[`Understanding your question`,`Checking approved information`,`Preparing your answer`];return C(()=>{let e=[window.setTimeout(()=>n(1),1800),window.setTimeout(()=>n(2),5e3)];return()=>e.forEach(e=>window.clearTimeout(e))},[]),k(`div`,{class:`cf-msg__bubble cf-typing`,"aria-label":e.assistantTyping,children:[O(`span`,{class:`cf-typing__label`,"aria-live":`polite`,children:r[t]}),O(`span`,{class:`cf-typing__dot`}),O(`span`,{class:`cf-typing__dot`}),O(`span`,{class:`cf-typing__dot`})]})},W=({msg:e})=>{if(!e.sources||e.sources.length===0)return null;let t=new Set,n=[];for(let r of e.sources){let e=(r.url||r.title||``).toLowerCase();!e||t.has(e)||(t.add(e),n.push(r))}if(n.length===0)return null;let r=n.slice(0,3),i=n.length-r.length;return k(`div`,{class:`cf-sources`,children:[r.map((e,t)=>e.url?k(`a`,{class:`cf-source`,href:e.url,target:`_blank`,rel:`noopener noreferrer nofollow`,title:e.title||e.url,children:[O(I,{}),O(`span`,{children:e.title||e.url})]},t):k(`span`,{class:`cf-source`,title:e.title,children:[O(I,{}),O(`span`,{children:e.title})]},t)),i>0&&k(`span`,{class:`cf-source cf-source--more`,children:[`+`,i,` more`]})]})},G=({replies:e,onPick:t})=>e&&e.length>0?O(`div`,{class:`cf-chips`,children:e.map((e,n)=>O(`button`,{type:`button`,class:`cf-chip`,onClick:()=>t(e),children:e},n))}):null,Ne=({persona:e,starters:t,onPick:n,onFocusComposer:r,speaking:i,voiceState:a=`idle`,replyPending:o=!1,pinned:s=!1,muted:c=!1,onToggleMute:l,onEndCall:u,onTalkNow:d,showTalkNow:f=!1,micLevel:p=0,theaterMode:m=!1,onToggleTheater:h,onMinimize:g,audioDevices:_=[],selectedAudioDeviceId:v=``,onSelectAudioDevice:y,connectingOnly:b=!1})=>{if(!e||!(e.talkbackMode===`avatar`||e.widgetModule===`assistant`||e.allowVoiceInput))return null;let x=e.agentAvatarUrl?.trim()||``,S=e.assistantMediaUrl?.trim()||x,C=e.assistantMediaKind===`video`&&!!S,ee=t.slice(0,3),w=a!==`idle`,T=a===`idle`?`Speak with ${e.agentName}`:`End voice chat`,E=s&&!w&&!i,A=a===`connecting`||a===`processing`||w&&o,te=[`cf-assistant-card__stage`,`cf-assistant-card__stage--local`,w?`is-live`:``,A?`is-thinking`:``,a===`listening`&&!c?`is-listening`:``,i||a===`speaking`?`is-speaking`:``,c?`is-muted`:``].filter(Boolean).join(` `),j=a===`listening`&&!c?{"--cf-listen":String(Math.max(.18,Math.min(1,p*8)))}:void 0,M=A&&k(`span`,{class:`cf-call-ripple`,"aria-hidden":`true`,children:[O(`span`,{}),O(`span`,{}),O(`span`,{})]});if(b)return k(`div`,{class:`cf-assistant-card cf-assistant-card--connecting`,"aria-live":`polite`,children:[k(`div`,{class:`cf-assistant-card__connecting-avatar`,children:[x?O(`img`,{src:x,alt:``}):O(`span`,{class:`cf-assistant-card__connecting-face${H(e)}`,children:je(e)}),M]}),k(`div`,{class:`cf-assistant-card__connecting-copy`,children:[O(`span`,{class:`cf-assistant-card__connecting-eyebrow`,children:e.agentName}),O(`strong`,{children:`Connecting with the AI…`})]})]});let N=w&&u&&O(ct,{voiceState:a,muted:c,onToggleMute:l??(()=>{}),onEndCall:u,onTalkNow:d??(()=>{}),showTalkNow:f,micLevel:p,theaterMode:m,onToggleTheater:h??(()=>{}),onMinimize:g??(()=>{}),audioDevices:_,selectedAudioDeviceId:v,onSelectAudioDevice:y??(()=>{})});return E?O(`div`,{class:`cf-assistant-card cf-assistant-card--pinned cf-assistant-card--compact`,children:k(`button`,{type:`button`,class:`cf-assistant-card__compact-speak`,onClick:r,children:[x?O(`span`,{class:`cf-assistant-card__compact-avatar`,children:O(`img`,{src:x,alt:``})}):null,O(`span`,{class:`cf-assistant-card__compact-mic`,"aria-hidden":`true`,children:O(ne,{})}),O(`span`,{class:`cf-assistant-card__compact-label`,children:T})]})}):k(`div`,{class:`cf-assistant-card ${s?`cf-assistant-card--pinned`:``} ${i?`is-speaking`:``}`,children:[(S||e.allowVoiceInput)&&k(`div`,{class:te,style:j,children:[k(`div`,{class:`cf-assistant-card__media ${S?`cf-assistant-card__media--uploaded`:`cf-assistant-card__media--generated`}${H(e)}`,children:[C?O(`video`,{src:S,muted:!0,loop:!0,playsInline:!0,autoPlay:!0}):S?O(`img`,{src:S,alt:``}):O(`div`,{class:`cf-assistant-card__avatar-stage${H(e)}`,children:k(`div`,{class:`cf-assistant-card__face`,children:[O(`span`,{class:`cf-assistant-card__initials`,children:je(e)}),O(`span`,{class:`cf-assistant-card__eye cf-assistant-card__eye--left`}),O(`span`,{class:`cf-assistant-card__eye cf-assistant-card__eye--right`}),O(`span`,{class:`cf-assistant-card__mouth`})]})}),S&&!C&&O(`span`,{class:`cf-assistant-card__mouth cf-assistant-card__mouth--overlay`}),O(`span`,{class:`cf-avatar-aura cf-avatar-aura--one`,"aria-hidden":`true`}),O(`span`,{class:`cf-avatar-aura cf-avatar-aura--two`,"aria-hidden":`true`}),O(`span`,{class:`cf-avatar-listen-ring`,"aria-hidden":`true`}),k(`span`,{class:`cf-avatar-wave`,"aria-hidden":`true`,children:[O(`span`,{}),O(`span`,{}),O(`span`,{}),O(`span`,{})]})]}),M,e.allowVoiceInput&&(N||k(`button`,{type:`button`,class:`cf-assistant-card__speak`,onClick:r,children:[O(ne,{}),T]}))]}),!s&&k(D,{children:[e.agentDescription?O(`p`,{class:`cf-assistant-card__copy`,children:e.agentDescription}):O(`p`,{class:`cf-assistant-card__copy`,children:e.greeting}),ee.length>0&&O(`div`,{class:`cf-assistant-card__chips`,children:ee.map(e=>O(`button`,{type:`button`,class:`cf-assistant-card__chip`,onClick:()=>n(e),children:e},e))}),e.disclaimerText||e.assistantPrivacyUrl?k(`p`,{class:`cf-assistant-card__privacy`,children:[e.disclaimerText||`This chat may be recorded for quality and support.`,e.assistantPrivacyUrl?k(D,{children:[` `,O(`a`,{href:e.assistantPrivacyUrl,target:`_blank`,rel:`noopener noreferrer nofollow`,children:`Privacy Policy`})]}):null]}):null]})]})},Pe={calendar:re,mail:L,phone:R,lifebuoy:L},Fe=e=>Pe[e]??L,Ie=e=>{if(e.id===`public_contact_support`)return`contact-support`;switch(e.endpoint){case`book-demo`:return`book-demo`;case`request-callback`:return`request-callback`;case`subscribe-newsletter`:return`subscribe-newsletter`;case`contact`:return`contact`;default:return`inquiry`}},Le={public_contact_support:{label:`Contact support`,description:`Ask a teammate to join this conversation.`,category:`support`,icon:`lifebuoy`,endpoint:`inquiry`},public_submit_inquiry:{label:`Leave a message`,description:`Send your question and contact details.`,category:`support`,icon:`mail`,endpoint:`inquiry`},public_book_demo:{label:`Book a demo`,description:`Request a demo from the team.`,category:`sales`,icon:`calendar`,endpoint:`book-demo`},public_request_callback:{label:`Request a callback`,description:`Share your number and best time to call.`,category:`sales`,icon:`phone`,endpoint:`request-callback`},public_subscribe_newsletter:{label:`Subscribe`,description:`Get product updates.`,category:`marketing`,icon:`mail`,endpoint:`subscribe-newsletter`}},Re=(e,t,n={})=>Array.isArray(e)?e.filter(e=>e.readiness!==`unavailable`).map(e=>ze(e,n[e.id])):(t??[]).flatMap(e=>{let t=Le[e];if(!t)return[];let n=Ie({...t,id:e}),r=te[n];return[{...t,id:e,presentation:n===`book-demo`?`booking`:`form`,formTitle:r.title,submitLabel:r.submit,fields:r.fields,delivery:``,prompt:``,shortLabel:t.label.toLowerCase(),enabled:!0,readiness:`available`,legacyFallback:!0}]}).map(e=>ze(e,n[e.id])),ze=(e,t)=>{if(!t)return e;let n=t.fields??{};return{...e,...Object.fromEntries(Object.entries(t).filter(([e,t])=>e!==`fields`&&t!==void 0)),fields:e.fields.map(e=>({...e,...n[e.key]}))}},Be=(e,t)=>{let n=e.map(e=>e.label);return n.length===0?t.actionGetInTouch:n.length<=3?n.join(`, `):`${n.slice(0,2).join(`, `)} ${h(t.actionMore,{count:String(n.length-2)})}`},Ve=({field:e,value:t,onInput:n})=>{let r=e.placeholder??e.label,i={class:`cf-form__input`,placeholder:e.required?`${r} *`:r,value:t,"aria-label":e.label,onInput:e=>n(e.target.value)};return e.kind===`textarea`?O(`textarea`,{rows:2,...i}):O(`input`,{type:e.kind,...i})},He=({spec:e,visitor:t,onSubmit:n,onCancel:r})=>{let i=a(),o=Oe(),[s,c]=E(()=>{let n={};for(let r of e.fields)r.identity&&t[r.identity]&&(n[r.key]=t[r.identity]);return n}),[l,u]=E(`idle`),[d,f]=E(``),p=e=>!!(e.identity&&t[e.identity]?.trim()),m=e.fields.filter(e=>!p(e)),g=m.every(e=>!e.required||(s[e.key]?.trim()??``)!==``),_=t.email||t.name||``;return l===`done`?k(`div`,{class:`cf-form cf-form--done`,children:[O(se,{}),O(`span`,{children:d})]}):k(`div`,{class:`cf-form`,ref:o,children:[O(`div`,{class:`cf-form__title`,children:e.title}),m.length===0&&_&&O(`div`,{class:`cf-form__as`,children:h(i.actionAs,{identity:_})}),m.map(e=>O(Ve,{field:e,value:s[e.key]??``,onInput:t=>c(n=>({...n,[e.key]:t}))},e.key)),l===`error`&&O(`div`,{class:`cf-form__err`,children:i.formError}),k(`div`,{class:`cf-form__actions`,children:[r&&O(`button`,{type:`button`,class:`cf-form__cancel`,onClick:r,children:i.cancel}),O(`button`,{type:`button`,class:`cf-form__submit`,disabled:!g||l===`submitting`,onClick:async()=>{if(!g||l===`submitting`)return;u(`submitting`);let t={},r={};for(let n of e.fields){let e=s[n.key]?.trim();e&&(t[n.key]=e,n.identity&&(r[n.identity]=e))}try{f((await n(t,r)).note||i.formThanks),u(`done`)}catch{u(`error`)}},children:l===`submitting`?i.sending:e.submit})]})]})},Ue=e=>String(e).padStart(2,`0`),We=()=>{let e=[];for(let t=9;t<=17;t++)e.push(`${Ue(t)}:00`),e.push(`${Ue(t)}:30`);return e},Ge=e=>{let t=new Date;return t.setHours(0,0,0,0),Array.from({length:e},(e,n)=>{let r=new Date(t);return r.setDate(t.getDate()+n),r})},Ke=(e,t)=>{let[n,r]=t.split(`:`).map(Number),i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),n??0,r??0);try{return new Intl.DateTimeFormat(void 0,{weekday:`short`,day:`numeric`,month:`short`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZoneName:`short`}).format(i)}catch{return`${e.toDateString()} ${t}`}},K=(e,t)=>{let[n,r]=t.split(`:`).map(Number);return new Date(e.getFullYear(),e.getMonth(),e.getDate(),n??0,r??0)},qe=(e,t)=>{let n=K(e,t);try{return new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}).format(n)}catch{return t}},Je=()=>{try{return Intl.DateTimeFormat().resolvedOptions().timeZone||``}catch{return``}},Ye=({visitor:e,onSubmit:t,onCancel:n,onDemoSlots:r,scheduler:i,title:o,submitLabel:s})=>{let c=o?.trim()||te[`book-demo`].title,l=s?.trim()||te[`book-demo`].submit,u=a(),d=Oe(),f=!!(i?.connected&&i.mode===`event`&&(i.availability===void 0||i.availability.calendarIds.length>0)),p=Math.min(60,Math.max(1,i?.availability?.bookingWindowDays??14)),m=w(()=>Ge(p),[p]),[g,_]=E(null),[v,y]=E(f?`loading`:`request_only`),[b,x]=E(i?.availability?.slotDurationMinutes??30),[S,ee]=E(Je()||i?.availability?.timezone||``),T=w(()=>f?v!==`available`||g===null?[]:[...new Set([...g].map(e=>{let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}))].sort():We(),[g,v,f]),[A,j]=E(w(()=>{let e=Date.now();for(let t=0;t<m.length;t++)if(T.some(n=>K(m[t],n).getTime()>e))return t;return 0},[m,T])),[M,N]=E(null),[P,ne]=E(e.name??``),[F,re]=E(e.email??``),[L,R]=E(`idle`),[ie,z]=E(``),[ae,oe]=E(``);C(()=>{if(!f||v!==`available`||g===null)return;let e=m.findIndex(e=>T.some(t=>g.has(K(e,t).getTime())));e>=0&&j(e)},[g,v,m,f,T]);let ce=i?.connected&&i.mode===`link`,le=async()=>{if(L===`submitting`||!e.name?.trim()&&!P.trim()||!e.email?.trim()&&!F.trim())return;R(`submitting`);let n={};F.trim()&&(n.email=F.trim()),P.trim()&&(n.name=P.trim());try{let e=await t({...F.trim()?{visitorEmail:F.trim()}:{},...P.trim()?{visitorName:P.trim()}:{}},n),r=e.booking?.schedulingLink||i?.bookingLink||``;if(!r){R(`error`);return}try{window.open(r,`_blank`,`noopener,noreferrer`)}catch{}oe(r),z(e.note||u.bookingLinkOpened),R(`done`)}catch{R(`error`)}},[ue,de]=E(new Set),[fe,pe]=E([]),[me,he]=E(0),[ge,_e]=E(!1);C(()=>{if(!r)return;let e=!0,t=new Date,n=new Date;return n.setDate(n.getDate()+p+1),r(t.toISOString(),n.toISOString()).then(t=>{if(e)if(de(new Set(t.taken.map(e=>Date.parse(e)).filter(e=>!Number.isNaN(e)))),pe(t.busy.map(e=>[Date.parse(e.start),Date.parse(e.end)]).filter(([e,t])=>!Number.isNaN(e)&&!Number.isNaN(t))),x(t.slotDurationMinutes??30),ee(Je()||t.timezone||``),f){if(t.status!==`available`||!Array.isArray(t.available)){_(null),y(`unavailable`);return}_(new Set(t.available.map(e=>Date.parse(e)).filter(e=>!Number.isNaN(e)))),y(`available`)}else y(t.status??`request_only`)}).catch(()=>{!e||!f||(_(null),y(`unavailable`))}),()=>{e=!1}},[p,f,r,me]);let B=!!e.email?.trim(),ve=!!e.name?.trim(),ye=!!M&&(!f||v===`available`)&&(ve||P.trim()!==``)&&(B||F.trim()!==``),be=e.email||e.name||``,V=e=>ue.has(K(m[A],e).getTime()),xe=e=>K(m[A],e).getTime()<=Date.now(),Se=b*60*1e3,Ce=e=>{let t=K(m[A],e).getTime(),n=t+Se;return fe.some(([e,r])=>t<r&&n>e)},we=e=>!f||g?.has(K(m[A],e).getTime())===!0,Te=async()=>{if(!ye||L===`submitting`||!M)return;R(`submitting`),_e(!1);let e=K(m[A],M),n=Ke(m[A],M),r={};F.trim()&&(r.email=F.trim()),P.trim()&&(r.name=P.trim());try{let i=await t({preferredAt:n,slotAt:e.toISOString(),...F.trim()?{visitorEmail:F.trim()}:{},...P.trim()?{visitorName:P.trim()}:{}},r);i.booking?.confirmed?(z(i.note||h(u.bookingConfirmed,{when:n})),oe(i.booking.meetingUrl||i.booking.eventLink||``)):z(i.note||h(u.bookingRequested,{when:n})),R(`done`)}catch(t){t?.status===409?(de(t=>new Set(t).add(e.getTime())),N(null),_e(!0),he(e=>e+1),R(`idle`)):R(`error`)}};return L===`done`?k(`div`,{class:`cf-form cf-form--done`,children:[O(se,{}),O(`span`,{children:ie}),ae&&k(`a`,{class:`cf-booking__link`,href:ae,target:`_blank`,rel:`noopener noreferrer`,children:[ce?u.bookingOpenScheduler:u.bookingMeetingLink,` `,O(I,{})]})]}):ce?k(`div`,{class:`cf-form cf-booking`,ref:d,children:[O(`div`,{class:`cf-form__title`,children:c}),O(`div`,{class:`cf-booking__hint`,children:h(u.bookingViaProvider,{provider:i?.label??u.bookingSchedulerFallback})}),B?be?O(`div`,{class:`cf-form__as`,children:h(u.actionAs,{identity:be})}):null:k(D,{children:[!e.name?.trim()&&O(`input`,{class:`cf-form__input`,type:`text`,placeholder:`${u.handoffName} *`,value:P,"aria-label":u.handoffName,onInput:e=>ne(e.target.value)}),O(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${u.handoffEmail} *`,value:F,"aria-label":u.handoffEmail,onInput:e=>re(e.target.value)})]}),L===`error`&&O(`div`,{class:`cf-form__err`,children:u.formError}),k(`div`,{class:`cf-form__actions`,children:[n&&O(`button`,{type:`button`,class:`cf-form__cancel`,onClick:n,children:u.cancel}),O(`button`,{type:`button`,class:`cf-form__submit`,disabled:L===`submitting`||!e.name?.trim()&&P.trim()===``||!B&&F.trim()===``,onClick:le,children:L===`submitting`?u.sending:u.bookingOpenScheduler})]})]}):k(`div`,{class:`cf-form cf-booking`,ref:d,children:[O(`div`,{class:`cf-form__title`,children:c}),k(`div`,{class:`cf-booking__hint`,children:[u.bookingPickTime,` ·`,` `,O(`span`,{class:`cf-booking__dur`,children:h(u.bookingDuration,{count:String(b)})}),S?` · ${h(u.bookingTimezone,{timezone:S})}`:``]}),f&&v===`loading`?O(`div`,{class:`cf-booking__state`,role:`status`,children:u.bookingCheckingAvailability}):null,f&&v===`unavailable`?O(`div`,{class:`cf-form__err`,role:`alert`,children:u.bookingAvailabilityUnavailable}):null,f&&v===`available`&&T.length===0?O(`div`,{class:`cf-booking__state`,role:`status`,children:u.bookingNoSlots}):null,T.length>0?O(`div`,{class:`cf-booking__dates`,role:`tablist`,"aria-label":u.bookingPickDay,children:m.map((e,t)=>k(`button`,{type:`button`,role:`tab`,"aria-selected":t===A,disabled:f&&v===`available`&&!T.some(t=>g?.has(K(e,t).getTime())),class:`cf-booking__date ${t===A?`is-selected`:``}`,onClick:()=>{j(t),N(null)},children:[O(`span`,{class:`cf-booking__dow`,children:e.toLocaleDateString(void 0,{weekday:`short`})}),O(`span`,{class:`cf-booking__dom`,children:e.getDate()})]},t))}):null,T.length>0?O(`div`,{class:`cf-booking__slots`,role:`listbox`,"aria-label":u.bookingPickTimeLabel,children:T.map(e=>{let t=xe(e),n=Ce(e),r=V(e),i=we(e),a=r||t||n||!i;return O(`button`,{type:`button`,role:`option`,"aria-selected":M===e,disabled:a,title:t?u.bookingEarlierToday:n?u.bookingCalendarBusy:r?u.bookingAlreadyBooked:i?void 0:u.bookingNotOffered,class:`cf-booking__slot ${M===e?`is-selected`:``} ${a?`is-taken`:``}`,onClick:()=>N(e),children:qe(m[A],e)},e)})}):null,ge&&O(`div`,{class:`cf-form__err`,children:u.bookingSlotTaken}),be?O(`div`,{class:`cf-form__as`,children:h(u.actionAs,{identity:be})}):null,!ve&&O(`input`,{class:`cf-form__input`,type:`text`,placeholder:`${u.handoffName} *`,value:P,"aria-label":u.handoffName,onInput:e=>ne(e.target.value)}),!B&&O(D,{children:O(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${u.handoffEmail} *`,value:F,"aria-label":u.handoffEmail,onInput:e=>re(e.target.value)})}),L===`error`&&O(`div`,{class:`cf-form__err`,children:u.formError}),k(`div`,{class:`cf-form__actions`,children:[n&&O(`button`,{type:`button`,class:`cf-form__cancel`,onClick:n,children:u.cancel}),O(`button`,{type:`button`,class:`cf-form__submit`,disabled:!ye||L===`submitting`,onClick:Te,children:L===`submitting`?u.sending:l})]})]})},Xe=({actions:e,descriptors:t,visitor:n,onSubmitForm:r,onDemoSlots:i,scheduler:o,exclude:s=[],openAction:c,translations:l={}})=>{let u=a(),[d,f]=E(null),[p,m]=E(!1),h=T(null),g=T(null),_=T(!1),v=w(()=>`cf-actions-${Math.random().toString(36).slice(2,9)}`,[]),y=w(()=>Re(t,e,l).filter(e=>!s.includes(e.id)&&!s.includes(e.endpoint)),[t,e,s,l]);C(()=>{c&&y.some(e=>e.id===c)&&(f(c),m(!0))},[c,y]);let b=d?y.find(e=>e.id===d):void 0,x=S(()=>{_.current=!0,f(null),m(!1)},[]),D=S(()=>f(null),[]);ee(()=>{p||!_.current||(_.current=!1,h.current?.focus())},[p]);let A=T({drawerOpen:p,activeId:d});if(A.current={drawerOpen:p,activeId:d},C(()=>{let e=e=>{if(e.key!==`Escape`)return;let{drawerOpen:t,activeId:n}=A.current;!t&&!n||(e.stopPropagation(),n?D():x())};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[D,x]),C(()=>{p&&g.current?.querySelector(`button, input, textarea, select`)?.focus()},[p,d]),y.length===0)return null;let te=p?b?k(`div`,{ref:g,id:v,class:`cf-action-drawer is-open`,role:`dialog`,"aria-modal":`false`,"aria-label":b.formTitle||b.label,children:[O(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),k(`div`,{class:`cf-action-drawer__head`,children:[k(`div`,{children:[O(`strong`,{children:b.formTitle||b.label}),b.legacyFallback?O(`small`,{class:`cf-action-test-mode`,children:u.actionTestMode}):null]}),O(`button`,{type:`button`,class:`cf-action-drawer__close`,"aria-label":u.actionClose,onClick:D,children:O(z,{})})]}),b.readiness===`degraded`&&b.readinessNote?O(`p`,{class:`cf-action-drawer__note cf-action-drawer__note--warn`,role:`status`,children:b.readinessNote}):null,(b.presentation??`form`)===`booking`?O(Ye,{visitor:n,title:b.formTitle,submitLabel:b.submitLabel,onCancel:D,onSubmit:(e,t)=>r(b.id,e,t,b.endpoint),onDemoSlots:i,scheduler:o}):O(He,{spec:{title:b.formTitle||b.label,submit:b.submitLabel,fields:b.fields},visitor:n,onCancel:D,onSubmit:(e,t)=>r(b.id,e,t,b.endpoint)})]}):k(`div`,{ref:g,id:v,class:`cf-action-drawer cf-action-drawer--menu`,role:`dialog`,"aria-modal":`false`,"aria-label":u.actionChoose,children:[O(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),k(`div`,{class:`cf-action-drawer__head`,children:[k(`div`,{children:[O(`span`,{class:`cf-action-drawer__eyebrow`,children:u.actionNeedHelp}),O(`strong`,{children:u.actionChoose})]}),O(`button`,{type:`button`,class:`cf-action-drawer__close`,"aria-label":u.actionClose,onClick:x,children:O(z,{})})]}),O(`div`,{class:`cf-action-drawer__grid`,children:y.map(e=>k(`button`,{type:`button`,class:`cf-action-card`,onClick:()=>f(e.id),children:[O(`span`,{class:`cf-action-card__icon`,children:O(Fe(e.icon),{})}),k(`span`,{class:`cf-action-card__copy`,children:[O(`strong`,{children:e.label}),e.legacyFallback?O(`small`,{class:`cf-action-test-mode`,children:u.actionTestMode}):null,O(`small`,{children:e.description}),e.readiness===`degraded`&&e.readinessNote?O(`small`,{class:`cf-action-card__warn`,children:e.readinessNote}):null]}),O(N,{})]},e.id))}),O(`p`,{class:`cf-action-drawer__note`,children:u.actionFooter})]}):null;return k(`div`,{class:`cf-action-shell`,children:[k(`button`,{ref:h,type:`button`,class:`cf-action-trigger`,hidden:p,"aria-expanded":p,"aria-controls":v,onClick:()=>p?x():m(!0),children:[O(`span`,{class:`cf-action-trigger__icon`,children:O(L,{})}),k(`span`,{class:`cf-action-trigger__copy`,children:[O(`strong`,{children:u.actionContactOptions}),O(`small`,{children:Be(y,u)})]}),O(N,{})]}),te]})},Ze=({hasEmail:e,visitor:t,question:n,onSubmitForm:r})=>{let i=a(),[o,s]=E(!1),[c,l]=E(!1),[u,d]=E(t.name??``),[f,p]=E(t.email??``);if(e)return k(`div`,{class:`cf-handoff cf-handoff--done`,children:[O(se,{}),O(`span`,{children:`We’ve alerted the team. If someone is available, they can continue here.`})]});if(o){let e=t.email||f;return k(`div`,{class:`cf-handoff cf-handoff--done`,children:[O(se,{}),O(`span`,{children:h(i.handoffShared,{email:e})})]})}let m=async()=>{if(!(!f.trim()||c)){l(!0);try{await r(`inquiry`,{visitorEmail:f.trim(),...u.trim()?{visitorName:u.trim()}:{},message:n||`I had a question the assistant couldn’t answer.`,subject:`Help request from chat`},{email:f.trim(),name:u.trim()||void 0}),s(!0)}catch{l(!1)}}};return k(`div`,{class:`cf-handoff`,children:[O(`div`,{class:`cf-handoff__title`,children:i.handoffTitle}),O(`input`,{class:`cf-form__input`,type:`text`,placeholder:i.handoffName,value:u,"aria-label":i.handoffName,onInput:e=>d(e.target.value)}),O(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${i.handoffEmail} *`,value:f,"aria-label":i.handoffEmail,onInput:e=>p(e.target.value)}),O(`button`,{type:`button`,class:`cf-form__submit`,disabled:!f.trim()||c,onClick:m,children:c?i.sending:i.handoffNotify})]})},Qe=({text:e})=>{let t=a(),[n,r]=E(!1);return k(`button`,{type:`button`,class:`cf-tool`,onClick:async()=>{try{await navigator.clipboard.writeText(e),r(!0),setTimeout(()=>r(!1),1500)}catch{}},"aria-label":t.copy,children:[O(n?se:ce,{}),n?t.copied:t.copy]})},$e=({items:e,onPick:t})=>e.length===0?null:O(`div`,{class:`cf-starters`,children:e.map((e,n)=>O(`button`,{type:`button`,class:`cf-starter`,onClick:()=>t(e),children:e},n))}),et=({items:e})=>{let t=e.filter(e=>e.label.trim()&&e.url.trim()).slice(0,4);return t.length===0?null:O(`div`,{class:`cf-featured-links`,children:t.map((e,t)=>k(`a`,{class:`cf-featured-link`,href:e.url,target:`_blank`,rel:`noopener noreferrer nofollow`,title:e.label,children:[O(I,{}),O(`span`,{children:e.label})]},`${e.url}-${t}`))})},tt=({msg:e,onRate:t})=>{let n=a(),[r,i]=E(!1),[o,s]=E(``),c=e.feedback,l=()=>{t(e.id,`up`),i(!1)},u=()=>{t(e.id,`down`),i(!0)},d=()=>{t(e.id,`down`,o.trim()),i(!1)};return k(`div`,{class:`cf-feedback`,children:[k(`div`,{class:`cf-feedback__row`,children:[O(`button`,{type:`button`,class:`cf-feedback__btn ${c===`up`?`is-active`:``}`,"aria-label":n.feedbackHelpful,"aria-pressed":c===`up`,onClick:l,children:O(me,{})}),O(`button`,{type:`button`,class:`cf-feedback__btn ${c===`down`?`is-active`:``}`,"aria-label":n.feedbackNotHelpful,"aria-pressed":c===`down`,onClick:u,children:O(he,{})}),c&&!r&&O(`span`,{class:`cf-feedback__thanks`,children:n.feedbackThanks})]}),r&&c===`down`&&k(`div`,{class:`cf-feedback__comment`,children:[O(`textarea`,{class:`cf-feedback__input`,rows:2,placeholder:n.feedbackCommentPlaceholder,value:o,onInput:e=>s(e.target.value)}),O(`button`,{type:`button`,class:`cf-feedback__send`,onClick:d,children:n.feedbackSend})]})]})},nt=({msg:e,persona:t,isLast:n,visitor:i,hasEmail:o,lastQuestion:s,showActions:c,onPickReply:l,onSubmitForm:u,onDemoSlots:d,onRetry:f,ratable:p,onRate:m,onExpandVisualization:h})=>{let g=a(),_=e.role===`user`,v=e.liveEventType??``,y=e.content.trim().toLowerCase(),b=v===`handoff_queued`||v===`agent_joined`||v===`agent_left`||v===`conversation_ended`||y.includes(`joined the chat`)||y.includes(`left the chat`)||y.includes(`support agents will be with you`),x=e.role===`system`||b,S=e.requestedContactFields?.includes(`email`)===!0,C=n&&!_&&!x&&!!(e.handoffOffered||S),ee=C&&!o?[`inquiry`]:[],w=!e.pending&&!e.streaming,T=[...e.artifacts??[],...e.visualization&&!(e.artifacts??[]).some(e=>e.type===`visualization`)?[{type:`visualization`,visualization:e.visualization}]:[]];return x?O(`div`,{class:`cf-msg cf-msg--system`,children:k(`div`,{class:`cf-system-event`,children:[O(`div`,{class:`cf-system-event__mark`,"aria-hidden":`true`}),O(`div`,{class:`cf-system-event__text`,children:e.content}),e.createdAt&&O(`div`,{class:`cf-system-event__time`,children:new Date(e.createdAt).toLocaleString(void 0,{day:`2-digit`,month:`short`,year:`numeric`,hour:`numeric`,minute:`2-digit`})})]})}):k(`div`,{class:`cf-msg cf-msg--${_?`user`:`agent`}`,children:[!_&&O(Me,{persona:t,small:!0}),k(`div`,{class:`cf-msg__col`,children:[e.pending&&e.content===``?O(U,{}):e.imageUrl?k(`div`,{class:`cf-msg__bubble cf-msg__bubble--media`,children:[O(`img`,{class:`cf-msg__media`,src:e.imageUrl,alt:`GIF`}),e.content&&O(`span`,{class:`cf-msg__caption`,children:e.content})]}):k(`div`,{class:`cf-msg__bubble`,children:[_?e.content:r(e.content),e.streaming&&O(`span`,{class:`cf-caret`,"aria-hidden":`true`})]}),_?null:T.map((t,n)=>t.type===`visualization`&&t.visualization?O(rt,{visualization:t.visualization,onExpand:h?()=>h(e.id):void 0,expandControlId:e.id},`visualization-${n}`):t.type===`image`&&(t.data||t.uri?.startsWith(`https://`))&&[`image/png`,`image/jpeg`,`image/webp`].includes(t.mimeType??``)?k(`figure`,{class:`cf-artifact`,children:[t.title?O(`figcaption`,{children:t.title}):null,O(`img`,{src:t.uri||`data:${t.mimeType};base64,${t.data}`,alt:t.altText||t.caption||t.title||`Tool result`}),t.caption&&t.caption!==t.title?O(`p`,{children:t.caption}):null]},`image-${n}`):t.type===`resource_link`&&t.uri?.startsWith(`https://`)?k(`a`,{class:`cf-artifact-link`,href:t.uri,target:`_blank`,rel:`noopener noreferrer nofollow`,children:[O(`strong`,{children:t.title||t.name||`Open result`}),t.caption?O(`span`,{children:t.caption}):null]},`link-${n}`):null),!_&&e.visualization&&De(e.visualization)?O(Ee,{explanation:De(e.visualization),onFollowUp:l,showLead:!e.content.toLocaleLowerCase().includes(De(e.visualization).headline.toLocaleLowerCase())}):null,_&&e.attachmentName&&k(`div`,{class:`cf-attach-chip`,title:e.attachmentName,children:[O(de,{}),O(`span`,{children:e.attachmentName})]}),!_&&k(D,{children:[w&&(e.error||e.content)&&k(`div`,{class:`cf-msg__actions`,children:[O(`div`,{class:`cf-msg__tools`,children:e.error?k(`button`,{type:`button`,class:`cf-tool`,onClick:()=>f(e.id,e.retryText??``),children:[O(le,{}),g.retry]}):O(Qe,{text:e.content})}),p&&!e.error&&e.content&&O(tt,{msg:e,onRate:m})]}),O(W,{msg:e}),n&&O(G,{replies:e.suggestedReplies,onPick:l}),C&&O(Ze,{hasEmail:o,visitor:i,question:s,onSubmitForm:u}),c&&O(Xe,{actions:e.availableActions,descriptors:e.actions,openAction:e.selectedAction,visitor:i,onSubmitForm:u,onDemoSlots:d,scheduler:t?.scheduler,exclude:ee})]})]})]})},rt=({visualization:e,expanded:t=!1,onExpand:r,onClose:a,expandControlId:o})=>{let s=T(null),c=w(()=>v(e),[e]),[l,u]=E(c?.type);C(()=>u(c?.type),[c]);let d=w(()=>i(e),[e]),f=w(()=>v(e,l),[l,e]),m=l??f?.type??c?.type,h=d.find(e=>e.type===m),g=e.rows??[],_=e.columns?.length?e.columns:Object.keys(g[0]??{}),y=_.map(t=>{let n=e.columnMetadata?.find(e=>e.key===t);return n?{key:t,label:n.label,dataType:n.dataType,currencyCode:n.currencyCode}:t});if(g.length===0)return O(Ce,{});let x=O(xe,{answeredAt:e.freshness?.answeredAt,reportingPeriod:e.reportingPeriod,filters:e.appliedFilters,rowCount:e.rowCount??g.length}),S=()=>e.tableAvailable===!1||_.length===0?null:k(`div`,{class:`cf-analytics-visualization${t?` is-expanded`:``}`,children:[k(`div`,{class:`cf-analytics-visualization__header`,children:[k(`div`,{children:[O(`div`,{class:`cf-analytics-visualization__title`,children:e.title?.trim()||`Result details`}),x]}),k(`div`,{class:`cf-analytics-visualization__actions`,children:[e.downloadAvailable?O(`button`,{type:`button`,class:`cf-analytics-visualization__download`,onClick:()=>it(_,g),children:`Download`}):null,t&&a?O(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:a,children:O(z,{})}):r&&e.expandable!==!1?O(`button`,{type:`button`,class:`cf-analytics-visualization__expand`,"aria-label":`Expand table`,"data-visualization-message":o,onClick:r,children:O(ge,{})}):null]})]}),O(p,{rows:g,columns:y,maxRows:100,expanded:t,classPrefix:`cf`})]});if(e.presentation===`table`||!e.presentation&&e.type===`table`)return S();let ee=e.chartRecommendation?.valueFields?.[0]??e.valueFields?.[0]??e.value??_[1];if(e.presentation===`kpi`||!e.presentation&&e.type===`kpi`){let n=g[0]?.[ee??_[0]??``],r=typeof n==`number`?n:Number(n),i=e.columnMetadata?.find(e=>e.key===ee),o=Number.isFinite(r)?b(r,i,e):String(n??`No value`);return k(`div`,{class:`cf-analytics-visualization${t?` is-expanded`:``}`,children:[k(`div`,{class:`cf-analytics-visualization__header`,children:[k(`div`,{children:[O(`div`,{class:`cf-analytics-visualization__title`,children:`Live metric`}),x]}),t&&a?O(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:a,children:O(z,{})}):null]}),O(Se,{label:i?.label??ee??`Current value`,value:o})]})}return f?k(`div`,{class:`cf-analytics-visualization${t?` is-expanded`:``}`,children:[k(`div`,{class:`cf-analytics-visualization__header`,children:[k(`div`,{children:[O(`div`,{class:`cf-analytics-visualization__title`,children:f.title}),x]}),k(`div`,{class:`cf-analytics-visualization__actions`,children:[d.length>1?k(`details`,{ref:s,class:`cf-analytics-chart-picker`,children:[k(`summary`,{"aria-label":`Choose chart type`,title:`Choose chart type`,children:[k(`span`,{class:`cf-analytics-chart-picker__current`,children:[O(Te,{type:m??f.type}),O(`span`,{children:h?.label??`Chart`})]}),O(N,{})]}),O(`div`,{class:`cf-analytics-chart-picker__menu`,role:`listbox`,"aria-label":`Chart type`,children:d.map(e=>{let t=e.type===m;return k(`button`,{type:`button`,role:`option`,"aria-selected":t,class:t?`is-selected`:``,onClick:()=>{u(e.type),s.current&&(s.current.open=!1)},children:[O(`span`,{class:`cf-analytics-chart-picker__icon`,children:O(Te,{type:e.type})}),k(`span`,{class:`cf-analytics-chart-picker__copy`,children:[O(`strong`,{children:e.label}),O(`small`,{children:we(e.type)})]}),t?O(se,{}):null]},e.type)})})]}):null,t&&a?O(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:a,children:O(z,{})}):r&&e.expandable!==!1?O(`button`,{type:`button`,class:`cf-analytics-visualization__expand`,"aria-label":`Expand chart`,"data-visualization-message":o,onClick:r,children:O(ge,{})}):null]})]}),O(n,{model:f,expanded:t}),e.downloadAvailable?O(`button`,{type:`button`,class:`cf-analytics-visualization__download`,onClick:()=>it(_,g),children:`Download this data`}):null]}):S()},it=(e,t)=>{if(typeof document>`u`||e.length===0)return;let n=c(t,e),r=URL.createObjectURL(new Blob([n],{type:`text/csv;charset=utf-8`})),i=document.createElement(`a`);i.href=r,i.download=`analytics-result.csv`,i.click(),URL.revokeObjectURL(r)},at=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result).split(`,`)[1]??``),r.onerror=n,r.readAsDataURL(e)}),ot=({onPick:e})=>O(`div`,{class:`cf-picker cf-emoji`,children:A.map(t=>k(`div`,{class:`cf-emoji__group`,children:[O(`div`,{class:`cf-emoji__label`,children:t.name}),O(`div`,{class:`cf-emoji__grid`,children:t.emojis.map((t,n)=>O(`button`,{type:`button`,class:`cf-emoji__btn`,onClick:()=>e(t),"aria-label":t,children:t},n))})]},t.name))}),st=({onSearch:e,onPick:t})=>{let n=a(),[r,i]=E(``),[o,s]=E([]),[c,l]=E(!0);return C(()=>{let t=!0;l(!0);let n=setTimeout(()=>{e(r).then(e=>t&&(s(e),l(!1))).catch(()=>t&&(s([]),l(!1)))},300);return()=>{t=!1,clearTimeout(n)}},[r,e]),k(`div`,{class:`cf-picker cf-gif`,children:[O(`input`,{class:`cf-gif__search`,placeholder:n.searchGifs,value:r,"aria-label":n.searchGifs,onInput:e=>i(e.target.value)}),O(`div`,{class:`cf-gif__grid`,children:c?O(`div`,{class:`cf-gif__hint`,children:n.searchingGifs}):o.length===0?O(`div`,{class:`cf-gif__hint`,children:n.noGifs}):o.map(e=>O(`button`,{type:`button`,class:`cf-gif__item`,onClick:()=>t(e.url),"aria-label":e.alt,children:O(`img`,{src:e.preview,alt:e.alt,loading:`lazy`})},e.id))}),O(`div`,{class:`cf-gif__powered`,children:`via Tenor`})]})},q=e=>{switch(e){case`connecting`:return`Connecting with AI…`;case`listening`:return`Listening now — go ahead.`;case`speaking`:return`AI is speaking — talk to interrupt.`;case`processing`:return`Understanding what you said…`;case`noise`:return`I couldn't hear clear words. Try again closer to the mic.`;case`misunderstood`:return`I didn't understand that. Please try again.`;case`denied`:return`Microphone access is blocked. Allow the mic or type your question.`;case`muted`:return`Muted — tap the mic to unmute.`;case`timeout`:return`Didn't hear anything for a while — ending the call.`;default:return``}},J=({muted:e,listening:t,micLevel:n,onToggleMute:r})=>O(`button`,{type:`button`,class:`cf-call-btn ${e?`is-muted`:``} ${t?`is-listening`:``} ${t&&n>=.004?`is-hot`:``}`,"aria-label":e?`Unmute microphone`:`Mute microphone`,"aria-pressed":e,onClick:r,style:t?{"--cf-wave":String(Math.max(.2,Math.min(1,n*6)))}:void 0,children:O(e?F:ne,{})}),Y=({audioDevices:e,selectedAudioDeviceId:t,onSelectAudioDevice:n})=>{let[r,i]=E(!1),a=T(null);C(()=>{if(!r)return;let e=e=>{a.current&&!e.composedPath().includes(a.current)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]);let o=[{deviceId:``,label:`Default microphone`},...e];return k(`div`,{class:`cf-call-more`,ref:a,children:[O(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--microphones`,"aria-label":`Choose microphone`,"aria-expanded":r,onClick:()=>i(e=>!e),children:O(N,{})}),r&&k(`div`,{class:`cf-call-menu`,role:`menu`,children:[O(`div`,{class:`cf-call-menu__label`,children:`Microphone`}),o.map(e=>k(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":e.deviceId===t,class:`cf-call-menu__item ${e.deviceId===t?`is-active`:``}`,onClick:()=>{n(e.deviceId),i(!1)},children:[e.deviceId===t?O(se,{}):O(`span`,{class:`cf-call-menu__spacer`}),O(`span`,{children:e.label})]},e.deviceId))]})]})},ct=({voiceState:e,muted:t,onToggleMute:n,onEndCall:r,onTalkNow:i,showTalkNow:a,micLevel:o,theaterMode:s,onToggleTheater:c,onMinimize:l,audioDevices:u,selectedAudioDeviceId:d,onSelectAudioDevice:f})=>k(`div`,{class:`cf-call-controls`,children:[O(J,{muted:t,listening:e===`listening`&&!t,micLevel:o,onToggleMute:n}),O(Y,{audioDevices:u,selectedAudioDeviceId:d,onSelectAudioDevice:f}),a&&O(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--talk`,"aria-label":`Talk now`,onClick:i,children:O(ne,{})}),O(`button`,{type:`button`,class:`cf-call-btn`,"aria-label":s?`Exit expanded view`:`Expand view`,"aria-pressed":s,onClick:c,children:O(s?_e:ge,{})}),O(`button`,{type:`button`,class:`cf-call-btn`,"aria-label":`Minimize voice chat`,onClick:l,children:O(B,{})}),O(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--end`,"aria-label":`End voice chat`,onClick:r,children:O(fe,{})})]}),lt=({persona:e,voiceState:t,muted:n,onToggleMute:r,onEndCall:i,micLevel:a,onExpand:o})=>{let s=e=>e.stopPropagation(),c=e?.assistantMediaUrl?.trim()||e?.agentAvatarUrl?.trim()||``,l=e?.assistantMediaKind===`video`&&!!c,u=e?.agentName||`Assistant`;return k(`div`,{class:[`cf-floating-call-card`,t===`listening`&&!n?`is-listening`:``,t===`speaking`?`is-speaking`:``,t===`processing`||t===`connecting`?`is-thinking`:``,n?`is-muted`:``].filter(Boolean).join(` `),style:t===`listening`&&!n?{"--cf-listen":String(Math.max(.18,Math.min(1,a*8)))}:void 0,role:`button`,tabIndex:0,"aria-label":`Reopen voice chat with ${u}`,onClick:o,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),o())},children:[O(`div`,{class:`cf-floating-call-card__media`,"aria-hidden":`true`,children:c?l?O(`video`,{src:c,muted:!0,loop:!0,playsInline:!0,autoPlay:!0}):O(`img`,{src:c,alt:``}):k(`div`,{class:`cf-floating-call-card__avatar${H(e)}`,children:[O(`span`,{children:je(e)}),O(`span`,{class:`cf-floating-call-card__eye cf-floating-call-card__eye--left`}),O(`span`,{class:`cf-floating-call-card__eye cf-floating-call-card__eye--right`}),O(`span`,{class:`cf-floating-call-card__mouth`})]})}),O(`div`,{class:`cf-floating-call-card__shade`,"aria-hidden":`true`}),k(`div`,{class:`cf-floating-call-card__controls`,onClick:s,onKeyDown:s,role:`presentation`,children:[O(J,{muted:n,listening:t===`listening`&&!n,micLevel:a,onToggleMute:r}),O(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--restore`,"aria-label":`Restore voice chat`,onClick:e=>{s(e),o()},children:O(ve,{})}),O(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--end`,"aria-label":`End voice chat`,onClick:e=>{s(e),i()},children:O(fe,{})})]})]})},ut=(e,t)=>{switch(e){case`connecting`:return t.voiceConnecting;case`listening`:return t.voiceListening;case`processing`:return t.voiceProcessing;case`speaking`:return t.voiceSpeaking;case`noise`:return t.voiceNoise;case`misunderstood`:return t.voiceMisunderstood;case`denied`:return t.voiceDenied;default:return q(e)}},dt=({draftStore:e,onSend:t,onSendGif:n,onTyping:r,disabled:i,allowVoice:c,onTranscribe:l,gifEnabled:u,onSearchGifs:d,allowAttach:f,onExtract:p,voiceStartSignal:m=0,onVoiceStateChange:h})=>{let g=a(),[v,y]=E(()=>e.value),b=t=>{let n=typeof t==`function`?t(v):t;e.value=n,y(n)},[x,S]=E(!1),[ee,w]=E(!1),[A,te]=E(`idle`),[j,M]=E(`none`),[N,F]=E(null),[I,re]=E(!1),[L,R]=E(!1),[ae,oe]=E(``),se=T(null),ce=T(null),le=T(null),ue=T(0),fe=T(null),pe=T([]),me=T(void 0),he=T(null),ge=T(void 0),_e=T(0),B=e=>{te(e),h?.(e)},ve=()=>{me.current&&window.clearTimeout(me.current),me.current=void 0,ge.current&&cancelAnimationFrame(ge.current),ge.current=void 0,he.current?.close().catch(()=>void 0),he.current=null};C(()=>{let e=se.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,110)}px`)},[v]),C(()=>()=>{N?.previewUrl&&URL.revokeObjectURL(N.previewUrl)},[N?.previewUrl]),C(()=>{if(j===`none`)return;let e=e=>{ce.current&&!e.composedPath().includes(ce.current)&&M(`none`)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[j]);let ye=e=>M(t=>t===e?`none`:e),be=e=>{let t=se.current;if(!t){b(t=>t+e);return}let n=t.selectionStart??v.length,r=t.selectionEnd??v.length;b(v.slice(0,n)+e+v.slice(r)),requestAnimationFrame(()=>{t.focus();let r=n+e.length;t.setSelectionRange(r,r)})},V=e=>{M(`none`),n(e)},xe=async e=>{if(!e)return;let t=++ue.current;if(oe(``),e.size>8388608){oe(g.attachTooLarge);return}re(!0);try{let n=await p(await at(e),e.type||`application/octet-stream`,e.name);if(t!==ue.current)return;if(!n){oe(g.attachFailed);return}F({name:e.name,text:n,mimeType:e.type||`application/octet-stream`,size:e.size,previewUrl:e.type.startsWith(`image/`)?URL.createObjectURL(e):void 0})}catch{oe(g.attachFailed)}finally{t===ue.current&&re(!1)}},Se=async e=>{let t=e.target,n=t.files?.[0];t.value=``,await xe(n)},Ce=()=>{ue.current+=1,re(!1),oe(``)},we=(!!v.trim()||!!N)&&!i&&!I&&!ee,Te=()=>{we&&(t(v,N?{attachmentName:N.name,attachmentText:N.text}:void 0),r?.(!1),b(``),F(null),oe(``))},Ee=e=>{let n=e.trim();if(!n||i){B(`misunderstood`),window.setTimeout(()=>B(`idle`),2500);return}let a=v.trim();t(a?`${a} ${n}`:n),r?.(!1),b(``),F(null),oe(``),B(`idle`)},De=e=>{if(e.key===`Enter`&&!e.shiftKey){if(i)return;e.preventDefault(),Te()}else e.key===`Escape`&&j!==`none`&&(e.preventDefault(),e.stopPropagation(),M(`none`))},Oe=async()=>{if(x){s(fe.current);return}try{B(`connecting`);let e=await navigator.mediaDevices.getUserMedia({audio:o()}),t=_(e);pe.current=[],_e.current=0;try{let t=window.AudioContext??window.webkitAudioContext;if(t){let n=new t;he.current=n;let r=n.createMediaStreamSource(e),i=n.createAnalyser();i.fftSize=512,r.connect(i);let a=new Uint8Array(i.frequencyBinCount),o=()=>{i.getByteTimeDomainData(a);let e=0;for(let t of a){let n=(t-128)/128;e+=n*n}_e.current=Math.max(_e.current,Math.sqrt(e/a.length)),ge.current=requestAnimationFrame(o)};o()}}catch{}t.ondataavailable=e=>e.data.size>0&&pe.current.push(e.data),t.onstop=async()=>{ve(),e.getTracks().forEach(e=>e.stop()),S(!1);let n=new Blob(pe.current,{type:t.mimeType||`audio/webm`});if(n.size===0||n.size<900||_e.current<.006){B(`noise`),window.setTimeout(()=>B(`idle`),3200);return}w(!0),B(`processing`);try{let e=await at(n);if(!e.trim()){B(`noise`),window.setTimeout(()=>B(`idle`),3200);return}let t=typeof navigator<`u`&&(navigator.languages?.[0]||navigator.language)||void 0;Ee(await l(e,n.type,t))}catch{B(`misunderstood`),window.setTimeout(()=>B(`idle`),3e3)}finally{w(!1)}},fe.current=t,t.start(250),S(!0),B(`listening`),me.current=window.setTimeout(()=>{s(fe.current)},12e3)}catch{B(`denied`),window.setTimeout(()=>B(`idle`),3500)}};return C(()=>{!m||!c||i||x||ee||Oe()},[m]),C(()=>()=>{ve();let e=fe.current;if(e){if(e.ondataavailable=null,e.onstop=null,e.onerror=null,e.state!==`inactive`)try{e.stop()}catch{}e.stream.getTracks().forEach(e=>e.stop())}fe.current=null,pe.current=[]},[]),k(`div`,{class:`cf-composer ${L?`is-dragging`:``}`,ref:ce,onDragEnter:e=>{f&&(e.preventDefault(),R(!0))},onDragOver:e=>{f&&e.preventDefault()},onDragLeave:e=>{e.currentTarget===e.target&&R(!1)},onDrop:e=>{f&&(e.preventDefault(),R(!1),xe(e.dataTransfer?.files?.[0]))},children:[j===`emoji`&&O(ot,{onPick:be}),j===`gif`&&O(st,{onSearch:d,onPick:V}),(N||I||ae)&&O(`div`,{class:`cf-attach-row`,children:I?k(`span`,{class:`cf-attach-status`,children:[O(`span`,{children:g.attaching}),O(`button`,{type:`button`,onClick:Ce,children:g.cancel})]}):ae?O(`span`,{class:`cf-attach-status cf-attach-status--err`,children:ae}):N&&k(`span`,{class:`cf-attach-chip`,title:N.name,children:[N.previewUrl?O(`img`,{class:`cf-attach-preview`,src:N.previewUrl,alt:``}):O(de,{}),k(`span`,{class:`cf-attach-copy`,children:[O(`span`,{children:N.name}),k(`small`,{children:[Math.max(1,Math.ceil(N.size/1024)),` KB`]})]}),O(`button`,{type:`button`,class:`cf-attach-x`,"aria-label":g.removeAttachment,onClick:()=>F(null),children:O(z,{})})]})}),A!==`idle`&&k(`div`,{class:`cf-voice-state`,"aria-live":`polite`,children:[O(`span`,{class:`cf-voice-state__dot ${x?`is-live`:``}`}),ut(A,g)]}),k(`div`,{class:`cf-composer__field`,children:[O(`button`,{type:`button`,class:`cf-iconbtn ${j===`emoji`?`is-active`:``}`,"aria-label":g.emoji,"aria-pressed":j===`emoji`,onClick:()=>ye(`emoji`),children:O(j===`emoji`?z:ie,{})}),u&&O(`button`,{type:`button`,class:`cf-iconbtn cf-gifbtn ${j===`gif`?`is-active`:``}`,"aria-label":g.gifs,"aria-pressed":j===`gif`,onClick:()=>ye(`gif`),children:O(`span`,{class:`cf-gif-label`,children:`GIF`})}),f&&k(D,{children:[O(`input`,{ref:le,type:`file`,class:`cf-file-input`,accept:`image/png,image/jpeg,image/webp,image/gif,application/pdf`,onChange:Se,tabIndex:-1,"aria-hidden":`true`}),O(`button`,{type:`button`,class:`cf-iconbtn`,"aria-label":g.attachFile,disabled:I,onClick:()=>le.current?.click(),children:O(de,{})})]}),O(`textarea`,{ref:se,class:`cf-textarea`,rows:1,placeholder:g.composerPlaceholder,value:v,"aria-label":g.composerPlaceholder,"aria-busy":i,onInput:e=>{let t=e.target.value;b(t),r?.(!!t.trim())},onPaste:e=>{let t=e.clipboardData?.files?.[0];!f||!t||(e.preventDefault(),xe(t))},onKeyDown:De}),c&&O(`button`,{type:`button`,class:`cf-iconbtn cf-mic ${x?`is-recording`:``}`,"aria-label":x?g.stopRecording:g.recordVoice,"aria-pressed":x,disabled:ee||i,onClick:Oe,children:O(ne,{})}),O(`button`,{type:`button`,class:`cf-send`,"aria-label":g.send,disabled:!we,onClick:Te,children:O(P,{})})]})]})},ft=({name:e,greeting:t})=>{let n=a();return k(`section`,{class:`cf-empty-welcome`,"aria-label":h(n.welcomeLabel,{name:e}),children:[O(`span`,{class:`cf-empty-welcome__eyebrow`,children:n.welcomeEyebrow}),O(`h2`,{children:e}),O(`p`,{children:t||n.welcomePrompt})]})},pt=(e,t,n)=>{if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),n();return}if(e.key!==`Tab`)return;let r=Array.from(t.querySelectorAll(`button, [href], textarea, input, select, [tabindex]:not([tabindex="-1"])`)).filter(e=>!e.hasAttribute(`disabled`)&&e.getAttribute(`aria-hidden`)!==`true`&&e.tabIndex>=0);if(r.length===0)return;let i=t.getRootNode(),a=e.composedPath()[0],o=a instanceof HTMLElement?a:`activeElement`in i?i.activeElement:document.activeElement,s=r[0],c=r[r.length-1];e.shiftKey&&(o===s||!t.contains(o))?(e.preventDefault(),e.stopPropagation(),c.focus()):!e.shiftKey&&(o===c||!t.contains(o))&&(e.preventDefault(),e.stopPropagation(),s.focus())},X=new Map,mt=e=>{if(!e||typeof document>`u`||typeof CanvasRenderingContext2D>`u`)return;let t=document.createElement(`canvas`).getContext(`2d`);if(!t)return;t.fillStyle=`#010203`,t.fillStyle=e;let n=t.fillStyle;if(n===`#010203`&&e.trim().toLowerCase()!==`#010203`)return;let r=n.match(/^#([\da-f]{6})$/i)?.[1];if(r)return[Number.parseInt(r.slice(0,2),16),Number.parseInt(r.slice(2,4),16),Number.parseInt(r.slice(4,6),16),1];let i=n.match(/^rgba?\(([\d.]+)[, ]+([\d.]+)[, ]+([\d.]+)(?:[, /]+([\d.]+))?\)$/i);if(!i)return;let a=i.slice(1,5).map(Number);if(!a.some(e=>!Number.isFinite(e)))return[a[0],a[1],a[2],a[3]??1]},ht=(e,t=`#ffffff`)=>{let n=`${e??``}|${t}`;if(X.has(n))return X.get(n);let r=mt(e),i=mt(t)??[255,255,255,1];if(!r){X.set(n,void 0);return}let a=r[3],o=r.slice(0,3).map((e,t)=>e*a+i[t]*(1-a)).map(e=>{let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4}),s=o[0]*.2126+o[1]*.7152+o[2]*.0722,c=1.05/(s+.05)>=(s+.05)/.059?`#ffffff`:`#0f1e2a`;return X.set(n,c),c},gt=e=>{let[t,n]=E(`light`);return C(()=>{if(e!==`auto`||typeof matchMedia>`u`)return;let t=matchMedia(`(prefers-color-scheme: dark)`),r=()=>n(t.matches?`dark`:`light`);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),e===`auto`?t:e},_t=1e4,vt=6e4,yt=e=>e.replace(/\[[^\]]{0,60}\]/g,` `).replace(/\(([^)]{0,60})\)/g,(e,t)=>bt.has(t.trim().toLowerCase().replace(/[.!?,…]+$/,``).replace(/\s+/g,` `))?` `:e).replace(/\*[^*]{0,60}\*/g,` `).replace(/\s+/g,` `).trim(),bt=new Set(`background noise.engine noise.noise.inaudible.unintelligible.silence.no speech.static.music.laughter.applause.wind.breathing.click.clicks.clicking.mouse click.mouse clicks.beep.beeps.beeping.tap.taps.tapping.typing.keyboard typing.cough.coughing.sigh.hmm.mm.mmm.uh.um.ah.oh`.split(`.`)),xt=e=>{let t=e.trim().toLowerCase().replace(/[()[\]*]/g,` `).replace(/[.!?,…]+$/,``).replace(/\s+/g,` `).trim();return!t||/^(?:sh+\s*)+$/.test(t)?!0:bt.has(t)},St=e=>{let t=e.trim().toLowerCase().replace(/\s+/g,` `);return t?t.includes(`transcribe this audio recording verbatim`)||t.includes(`preserve the spoken language and any code-switching`)||t.includes(`output only the transcribed text, no commentary`):!1},Ct={end:`end the call`,mute:`mute your microphone`,minimize:`minimize the chat`,expand:`expand the view`,shrink:`exit the expanded view`},wt=e=>e.trim().toLowerCase().replace(/[^\p{L}\p{N}\s']/gu,` `).replace(/\s+/g,` `).trim(),Tt=[{action:`shrink`,re:/\b(?:exit|leave|quit|close)\b[\s\w]*\b(?:full ?screen|expanded|theat(?:er|re))\b|\bshrink\b|\bsmaller view\b/},{action:`end`,re:/\b(?:end|close|stop|finish|hang ?up|quit|exit)\b[\s\w]*\b(?:call|chat|conversation|convo|session|talking)\b|\bhang ?up\b|\bgood ?bye\b|^bye(?: bye)?$/},{action:`mute`,re:/\bmute\b|\bstop listening\b/},{action:`minimize`,re:/\bminimi[sz]e\b|\bhide\b[\s\w]*\b(?:chat|call|window|widget)\b/},{action:`expand`,re:/\bexpand\b|\bmaximi[sz]e\b|\bfull ?screen\b|\btheat(?:er|re) mode\b|\bbigger view\b/}],Et=/^(?:yes|yeah|yep|yup|sure|correct|confirm|affirmative|go ahead|do it|please do|ok(?:ay)?)\b/,Dt=/^(?:no|nope|nah|cancel|never ?mind|don'?t|stop)\b/,Ot=/^(?:end|close|stop|finish|hang ?up|quit|exit|bye|good ?bye)\b/,kt=e=>{let t=wt(e);if(!t)return null;for(let{action:e,re:n}of Tt)if(n.test(t)){let n=t.split(` `).length;return{action:e,confident:e===`end`?n<=10:n<=6}}return null},At=e=>`I didn't catch yes or no. Say yes to ${Ct[e]}, or no to keep talking.`,jt=e=>`I caught some audio, but not enough clear words. Try again a little closer to the mic, or type your question for ${e?.agentName?.trim()||`the assistant`}.`,Mt=e=>{let t=wt(e).replace(/\b(?:um|uh|erm|hmm)\b/g,``).trim();return!t||t.split(/\s+/).length<=2&&/^(?:can|could|would|will|do|does|is|are|what|why|how|where|when)\b/.test(t)?!0:/\b(?:can you|could you|would you|will you|do you|can i|could i|would i|i want to|i need to|tell me about|what about|how about|about|with|to|for|please)$/i.test(t)},Nt=(e,t)=>{let n=window.AudioContext??window.webkitAudioContext;if(!n)return null;let r,i=!1,a=new n;try{let n=a.createMediaStreamSource(e),o=a.createAnalyser();o.fftSize=512,n.connect(o);let s=new Uint8Array(o.frequencyBinCount),c=()=>{if(i)return;o.getByteTimeDomainData(s);let e=0;for(let t of s){let n=(t-128)/128;e+=n*n}t(Math.sqrt(e/s.length),performance.now()),i||(r=requestAnimationFrame(c))};c()}catch{return a.close().catch(()=>void 0),null}return{stop:()=>{i||(i=!0,r!==void 0&&cancelAnimationFrame(r),r=void 0,a.close().catch(()=>void 0))}}},Pt=e=>o(e),Ft=({transport:e,config:t,bindControls:n,composerDraftStore:r})=>{let i=t.strings,[a,o]=E(t.openByDefault),{persona:c,messages:p,sending:g,assistantSpeaking:v,visitor:y,hasEmail:b,liveMode:x,assignedAgentName:w,agentTypingName:A,starters:te,featuredLinks:j,send:P,sendGif:ne,notifyTyping:F,stop:I,retry:re,rateMessage:L,injectAssistant:R,appendUserDraft:ie,patchMessage:z,removeMessage:se,submitCsat:ce,submitForm:le,transcribe:de,extract:ge,searchGifs:_e,demoSlots:B,gifEnabled:ve,identify:be,ended:V,endConversation:xe,startNew:Se,history:Ce,viewingSessionId:we,viewMessages:Te,openConversation:Ee,closeHistoryView:De,shutdown:Oe,stopSpeaking:ke,speakAssistantText:H}=d(e,t,a),[Ae,je]=E(0),[U,W]=E(`idle`),[G,Pe]=E(!1),[Fe,Ie]=E(!1),[Le,Re]=E(0),[ze,Be]=E(!1),[Ve,He]=E(null),[Ue,We]=E([]),[Ge,Ke]=E(``),[K,qe]=E(()=>{try{return localStorage.getItem(`centrinfo:muted`)===`1`}catch{return!1}}),Je=gt(t.theme),Ye=p.some(e=>e.role===`assistant`&&(e.pending||e.streaming)),Ze=g||Ye||v,Qe=c?.soundEnabled??!0;C(()=>{l(t.sound&&Qe&&!K)},[t.sound,Qe,K]);let tt=S(()=>{qe(e=>{let t=!e;try{localStorage.setItem(`centrinfo:muted`,t?`1`:`0`)}catch{}return t})},[]),it=T(null),at=T(null),ot=T(null),st=T(0),q=T(!1),J=T(!1),Y=T(!1),ct=T(0),ut=T(!1),X=T(null),mt=T(null),bt=T([]),Tt=T(void 0),Ft=T(void 0),It=T(null),Lt=T(0),Rt=T(0),zt=T(!1),Bt=T(0),Vt=T(null),Ht=T(null),Ut=T(0),Z=T(null),Wt=T([]),Gt=T(0),Kt=T(0),qt=T(0),Jt=T(null),Yt=T(!1),Xt=T(null),Zt=T(``),Qt=T(()=>{}),$t=T(``),en=T(g),tn=T(v),nn=T(Ze),rn=T(U),an=T(0);C(()=>{en.current=g},[g]),C(()=>{tn.current=v},[v]),C(()=>{nn.current=Ze},[Ze]),C(()=>{rn.current=U},[U]);let[on,sn]=E(!0),[cn,ln]=E(!1),un=T(0),[dn,fn]=E(!1),[pn,mn]=E(!1),hn=T(null),[gn,_n]=E(!1),vn=T({value:``}),yn=r??vn.current,bn=T({confirmEnd:dn,confirmClear:pn,showHistory:gn});bn.current={confirmEnd:dn,confirmClear:pn,showHistory:gn};let[xn,Sn]=E(!1),Q=!!we,Cn=Q?Te:p,wn=Cn.find(e=>e.id===Ve&&e.visualization)?.visualization;C(()=>{!Ve||wn||(He(null),Be(!1))},[wn,Ve]);let Tn=S(()=>{o(!0),je(0),m(`open`),t.onOpen?.(),t.onShow?.()},[t]),En=S(()=>{o(!1),Be(!1),He(null),t.onClose?.(),t.onHide?.(),at.current?.focus()},[t]),Dn=S(()=>a?En():Tn(),[a,Tn,En]),On=S(()=>fn(!0),[]),kn=S(()=>{xe(),fn(!1)},[xe]),An=S(()=>{Se(),ln(!1),sn(!0)},[Se]);C(()=>{dn&&hn.current?.focus()},[dn]),C(()=>{n({open:Tn,close:En,toggle:Dn,identify:be,startNew:Se,endConversation:xe,shutdown:Oe})},[n,Tn,En,Dn,be,Se,xe,Oe]),C(()=>{let e=p.filter(e=>e.role===`assistant`&&!e.pending).length;if(a){st.current=e;return}e>st.current&&je(e-st.current)},[p,a]),C(()=>{t.onUnreadChange?.(Ae)},[Ae,t]),C(()=>{let e=t.sessionDurationMinutes;if(!e||e<=0)return;let n=setTimeout(()=>Oe(),e*60*1e3);return()=>clearTimeout(n)},[t.sessionDurationMinutes,p,a,Oe]),C(()=>{let e=t.customLauncherSelector;if(!e||typeof document>`u`)return;let n=[];try{n=Array.from(document.querySelectorAll(e))}catch{return}let r=e=>{e.preventDefault(),Dn()};return n.forEach(e=>e.addEventListener(`click`,r)),()=>n.forEach(e=>e.removeEventListener(`click`,r))},[t.customLauncherSelector,Dn]);let jn=T(!1);C(()=>{let e=t.proactiveMessage?.trim();if(!e||jn.current)return;let n=t.proactiveOnPaths??[],r=typeof location<`u`?location.pathname:``;if(n.length>0&&!n.some(e=>r.includes(e)))return;let i=`centrinfo:proactive:${t.token.slice(0,12)}`;try{if(sessionStorage.getItem(i)===`1`)return}catch{}let o=setTimeout(()=>{if(!(a||V||p.some(e=>e.role===`user`))){jn.current=!0;try{sessionStorage.setItem(i,`1`)}catch{}R(e),Tn()}},Math.max(0,t.proactiveDelaySeconds)*1e3);return()=>clearTimeout(o)},[t.proactiveMessage]),C(()=>{let e=ot.current;if(!a||!e)return;let t=p[p.length-1],n=Date.now()<un.current;t?.role===`user`||on||n?(requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight}),ln(!1),n&&sn(!0)):ln(!0)},[p,a,g,on]);let Mn=S(()=>{let e=ot.current;if(!e)return;if(q.current&&!Q){sn(!0),ln(!1);return}let t=e.scrollHeight-e.scrollTop-e.clientHeight<80;sn(t),t&&ln(!1)},[Q]),Nn=S(()=>{let e=ot.current;e&&(e.scrollTop=e.scrollHeight),ln(!1),sn(!0)},[]),Pn=S(()=>{un.current=Date.now()+3e3,requestAnimationFrame(Nn)},[Nn]);C(()=>{if(!a||Q||!G||U===`connecting`)return;un.current=Date.now()+6e4,Nn();let e=requestAnimationFrame(()=>{Nn(),requestAnimationFrame(Nn)}),t=[80,180,360].map(e=>window.setTimeout(Nn,e));return()=>{cancelAnimationFrame(e),t.forEach(e=>window.clearTimeout(e))}},[v,p,a,Nn,g,G,Q,U]);let Fn=S(()=>{it.current?.querySelector(`.cf-textarea`)?.focus()},[]),In=S(()=>{Tt.current&&window.clearTimeout(Tt.current),Tt.current=void 0,Ft.current&&window.clearTimeout(Ft.current),Ft.current=void 0,It.current?.stop(),It.current=null,Re(0)},[]),Ln=S(()=>{Ht.current?.stop(),Ht.current=null,s(Z.current),Vt.current?.getTracks().forEach(e=>e.stop()),Vt.current=null,Ut.current=0,Kt.current=0},[]),Rn=S(()=>{In(),mt.current?.getTracks().forEach(e=>e.stop()),mt.current=null},[In]),$=S(()=>{q.current=!1,Y.current=!1,J.current=!1,ut.current=!1,Jt.current=null,Yt.current=!1,Xt.current=null,Zt.current=``,Pe(!1),Ie(!1),Be(!1),He(null),Ln(),ke();let e=X.current;e?.state===`recording`?s(e):(Rn(),W(`idle`))},[Ln,ke,Rn]),zn=S(()=>{ze&&He(null),Be(!ze)},[ze]),Bn=S(e=>{He(e),Be(!0)},[]),Vn=S(()=>{let e=Ve;He(null),Be(!1),window.requestAnimationFrame(()=>{Array.from(it.current?.querySelectorAll(`[data-visualization-message]`)??[]).find(t=>t.dataset.visualizationMessage===e)?.focus()})},[Ve]),Hn=S(()=>{He(null),Be(!1)},[]),Un=S((e,t)=>{if(Date.now()-ct.current>=vt){W(`timeout`),Ft.current=window.setTimeout(()=>$(),2400);return}W(e),Ft.current=window.setTimeout(()=>{q.current&&!J.current&&!tn.current&&t()},1400)},[$]),Wn=S((e,t,n)=>{Date.now()-ct.current<vt&&!J.current&&(Y.current=!0,H(t)),Un(e,n)},[Un,H]),Gn=S((e,t)=>{Pn(),ct.current=Date.now(),Y.current=!0,t&&z(t,{content:e,pending:!0,streaming:!1});let n=()=>{if(q.current){if(en.current){window.setTimeout(n,80);return}t&&Xt.current===t&&(Xt.current=null),P(e,{forceVoicePlayback:!0,userMessageId:t})}};n()},[Pn,z,P]),Kn=S(async(e,t,n,r=`normal`,i)=>{let a=null,o=e=>a||(Pn(),a=Xt.current||ie(e),Xt.current=a,z(a,{content:Zt.current||e,pending:!0,streaming:!1}),a),s=()=>{a&&(Xt.current===a&&(Xt.current=null),Zt.current=``,se(a),a=null)},l=()=>{Zt.current=``,W(`listening`),window.setTimeout(()=>{q.current&&!J.current&&!en.current&&!X.current&&n()},120)},u=e.size===0,d=e.size<350&&t<.001;if(u||d){if(r===`barge`){l();return}let e=Jt.current;Wn(`noise`,e?At(e):jt(c),n),Zt.current=``;return}W(`processing`);let f=++an.current,p=o(`Listening...`);try{let t=typeof navigator<`u`&&(navigator.languages?.[0]||navigator.language)||void 0;z(p,{content:Zt.current?`${Zt.current} ...`:`Transcribing...`,pending:!0});let a=yt(await de(e,e.type,t,i));if(f!==an.current){s();return}let o=[Zt.current,a].map(e=>e.trim()).filter(Boolean).join(` `).replace(/\s+/g,` `).trim();if(!o||xt(o)||St(o)){if(s(),r===`barge`){l();return}let e=Jt.current;Wn(`misunderstood`,e?At(e):jt(c),n);return}let u=Jt.current;if(u){let e=wt(o);if(Et.test(e)||u===`end`&&Ot.test(e)){s(),Jt.current=null,Qt.current(u);return}if(Dt.test(e)){s(),Jt.current=null;let e=`Okay, never mind — what would you like to know?`;R(e),Y.current=!0,W(`speaking`),H(e);return}s();let t=At(u);R(t),Y.current=!0,W(`speaking`),H(t);return}let d=kt(o);if(d){if(s(),ct.current=Date.now(),d.confident){Qt.current(d.action);return}Jt.current=d.action;let e=`Just to confirm — you want me to ${Ct[d.action]}? Please say yes or no.`;R(e),Y.current=!0,W(`speaking`),H(e);return}if(z(p,{content:o,pending:!0}),Mt(o)){Zt.current=o,W(`listening`),n();return}Zt.current=``,Gn(o,p)}catch(e){if(s(),r===`barge`){l();return}Wn(`misunderstood`,`I couldn't convert your speech to text. Please check the speech service configuration or type your question.${e instanceof Error&&e.message.trim()?` (${e.message.trim()})`:``}`,n)}},[ie,Pn,Wn,R,z,c,se,Gn,H,de]),qn=S(async()=>{if(!(!q.current||J.current)&&!(!c?.allowVoiceInput||V||Q)&&!en.current&&!X.current){Ln(),Y.current=!1;try{W(`connecting`);let e=await navigator.mediaDevices.getUserMedia({audio:Pt($t.current)});if(!q.current||J.current){e.getTracks().forEach(e=>e.stop());return}navigator.mediaDevices.enumerateDevices().then(e=>{We(e.filter(e=>e.kind===`audioinput`).map((e,t)=>({deviceId:e.deviceId,label:e.label||`Microphone ${t+1}`})))}).catch(()=>{});let t=_(e);X.current=t,mt.current=e,bt.current=[],Lt.current=0,zt.current=!1,Bt.current=0;let n=performance.now(),r=u();It.current=Nt(e,(e,i)=>{let a=r.observe(e);if(Lt.current=Math.max(Lt.current,e),a.speech)zt.current=!0,Bt.current=0;else if(zt.current&&a.quiet){Bt.current||(Bt.current=i);let e=i-Bt.current,r=i-n;if(e>=a.endOfSpeechDelayMs&&r>=550&&t.state===`recording`){s(t);return}}else Bt.current=0;i-Rt.current>90&&(Rt.current=i,Re(e))}),t.ondataavailable=e=>{e.data.size>0&&bt.current.push(e.data)},t.onstop=async()=>{if(Rn(),X.current=null,ut.current){ut.current=!1,q.current&&!J.current?(W(`idle`),qn()):W(q.current&&J.current?`muted`:`idle`);return}if(!q.current){W(`idle`);return}await Kn(new Blob(bt.current,{type:t.mimeType||`audio/webm`}),Lt.current,qn,`normal`,Math.max(0,(performance.now()-n)/1e3))},t.start(250),W(`listening`),Tt.current=window.setTimeout(()=>{s(X.current)},_t)}catch{W(`denied`),Ft.current=window.setTimeout(()=>$(),3500)}}},[V,$,Kn,c,c?.allowVoiceInput,Ln,Rn,Q]),Jn=S(()=>{if(q.current){$();return}Fn(),!(!c?.allowVoiceInput||en.current||V||Q)&&(ct.current=Date.now(),Y.current=!1,J.current=!1,q.current=!0,Ie(!1),Pe(!0),W(`connecting`),qn())},[V,$,Fn,c,c?.allowVoiceInput,qn,Q]),Yn=S(()=>{Ie(e=>{let t=!e;if(J.current=t,t){let e=X.current;e?.state===`recording`?(ut.current=!0,s(e)):(Rn(),W(`muted`))}else q.current&&!V&&!Q&&(W(`idle`),qn());return t})},[V,qn,Rn,Q]),Xn=S((e,t)=>{R(e),t&&(Y.current=!0),W(`speaking`),H(e)},[R,H]),Zn=S(e=>{switch(ct.current=Date.now(),e){case`end`:Y.current=!1,Yt.current=!0,Xn(`Okay — ending our call now. Goodbye!`,!1),window.setTimeout(()=>{Yt.current&&(Yt.current=!1,$())},2e3);break;case`mute`:{J.current||Yn();let e=`Muted. Tap the mic button when you want me to listen again.`;R(e),H(e);break}case`minimize`:En(),Xn(`Minimized — I'm still listening. Tap the call pill to bring the chat back.`,!0);break;case`expand`:Be(!0),Xn(`Sure — expanding the view.`,!0);break;case`shrink`:He(null),Be(!1),Xn(`Okay — back to the smaller view.`,!0);break}},[En,$,R,H,Xn,Yn]);C(()=>{Qt.current=Zn},[Zn]);let Qn=T(!1);C(()=>{Qn.current&&!v&&Yt.current&&(Yt.current=!1,$()),Qn.current=v},[v,$]);let $n=S(e=>{$t.current=e,Ke(e);let t=X.current;t?.state===`recording`&&(ut.current=!0,s(t))},[]),er=S(()=>{if(!(!q.current||J.current)){if(Ln(),I(),ke(),ct.current=Date.now(),W(`listening`),en.current){let e=()=>{if(!(!q.current||J.current)){if(en.current){window.setTimeout(e,70);return}Y.current=!1,qn()}};window.setTimeout(e,70);return}Y.current=!1,qn()}},[qn,I,Ln,ke]),tr=S(async()=>{if(!(Vt.current||Ht.current)&&!(!q.current||J.current))try{let e=await navigator.mediaDevices.getUserMedia({audio:Pt($t.current)});if(!q.current||J.current||X.current||Vt.current||!nn.current&&rn.current!==`processing`){e.getTracks().forEach(e=>e.stop());return}Vt.current=e,Ut.current=0,Kt.current=0,qt.current=0;let t=()=>{if(Z.current)return;I(),ke(),an.current+=1,ct.current=Date.now(),Y.current=!1,W(`listening`);let t=_(e);Z.current=t,Wt.current=[],Gt.current=performance.now(),Kt.current=0,t.ondataavailable=e=>{e.data.size>0&&Wt.current.push(e.data)},t.onstop=async()=>{let e=Wt.current,n=qt.current,r=t.mimeType||`audio/webm`;Z.current=null,Wt.current=[],Ln(),q.current&&await Kn(new Blob(e,{type:r}),n,qn,`barge`,Math.max(0,(performance.now()-Gt.current)/1e3))},t.start(250)},n=u({speechToNoiseRatio:3.2});Ht.current=Nt(e,(e,r)=>{let i=n.observe(e);if(qt.current=Math.max(qt.current,e),r-Rt.current>90&&(Rt.current=r,Re(e)),i.speech)Ut.current||(Ut.current=r),r-Ut.current>=280&&t(),Kt.current=0;else if(Z.current&&i.quiet){Kt.current||(Kt.current=r);let e=r-Kt.current,t=r-Gt.current;e>=i.endOfSpeechDelayMs&&t>=550&&Z.current.state===`recording`&&s(Z.current)}else Z.current&&r-Gt.current>=_t&&Z.current.state===`recording`?s(Z.current):(Ut.current=0,Kt.current=0)}),Ht.current||Ln()}catch{}},[Kn,qn,I,Ln,ke]);C(()=>{if(!(G&&!Fe&&!V&&!Q&&(Ze||U===`processing`))){Ln();return}let e=window.setTimeout(()=>void tr(),250);return()=>window.clearTimeout(e)},[Ze,V,tr,Ln,G,Fe,U,Q]);let nr=G&&!Fe&&(g||v||U===`processing`);C(()=>{!G||Fe||v&&W(`speaking`)},[v,G,Fe]),C(()=>{if(!G||Fe||!Y.current||g||v||![`processing`,`speaking`,`noise`,`misunderstood`].includes(U))return;let e=window.setTimeout(()=>{!q.current||J.current||en.current||(Y.current=!1,qn())},700);return()=>window.clearTimeout(e)},[v,g,qn,G,Fe,U]),C(()=>()=>$(),[$]);let[rr,ir]=E(``),ar=T(!1);C(()=>{if(ar.current&&!g){let e=[...p].reverse().find(e=>e.role===`assistant`&&!e.streaming&&!e.pending&&e.content);e&&ir(e.content)}ar.current=g},[g,p]),ee(()=>{if(!a)return;let e=it.current,t=dn||pn?e?.querySelector(`.cf-confirm__card`):gn?e?.querySelector(`.cf-history`):null;if(!t)return;let n=t.getRootNode(),r=`activeElement`in n?n.activeElement:document.activeElement;(!r||!t.contains(r))&&t.querySelector(`button, [href], textarea, input, [tabindex]:not([tabindex="-1"])`)?.focus()},[pn,dn,a,gn]),C(()=>{if(!a)return;let e=it.current,t=dn||pn?e?.querySelector(`.cf-confirm__card`):gn?e?.querySelector(`.cf-history`):null,n=e?.querySelectorAll(`:scope > .cf-header, :scope > .cf-panel__video, :scope > .cf-panel__chat`);n?.forEach(e=>{t?(e.setAttribute(`inert`,``),e.setAttribute(`aria-hidden`,`true`)):(e.removeAttribute(`inert`),e.removeAttribute(`aria-hidden`))}),t||requestAnimationFrame(()=>e?.querySelector(`.cf-textarea`)?.focus());let r=e=>{if(e.key===`Escape`){e.preventDefault();let t=bn.current;if(t.confirmEnd){fn(!1);return}if(t.confirmClear){mn(!1);return}if(t.showHistory){_n(!1);return}En();return}if(e.key!==`Tab`||!t)return;let n=t.querySelectorAll(`button, [href], textarea, input, [tabindex]:not([tabindex="-1"])`),r=Array.from(n).filter(e=>!e.hasAttribute(`disabled`));if(r.length===0)return;let i=r[0],a=r[r.length-1],o=t.getRootNode()instanceof ShadowRoot?t.getRootNode().activeElement:document.activeElement;e.shiftKey&&o===i?(e.preventDefault(),a.focus()):!e.shiftKey&&o===a&&(e.preventDefault(),i.focus())};return e?.addEventListener(`keydown`,r),()=>{e?.removeEventListener(`keydown`,r),n?.forEach(e=>{e.removeAttribute(`inert`),e.removeAttribute(`aria-hidden`)})}},[a,En,dn,pn,gn]),C(()=>{let e=it.current;e&&(a?e.removeAttribute(`inert`):e.setAttribute(`inert`,``))},[a]);let or=t.accentColor??t.themeTokens?.accent??c?.accentColor,sr=t.themeTokens?.accentText??ht(or,t.themeTokens?.background??(Je===`dark`?`#0f1c27`:`#ffffff`)),cr={zIndex:t.zIndex,"--cf-h-pad":`${t.horizontalPadding}px`,"--cf-v-pad":`${t.verticalPadding}px`,...sr?{"--cf-accent-ink":sr}:{},...t.themeTokens?.accentStrong?{"--cf-accent-2":t.themeTokens.accentStrong}:{},...t.themeTokens?.background?{"--cf-bg":t.themeTokens.background}:{},...t.themeTokens?.surface?{"--cf-surface":t.themeTokens.surface}:{},...t.themeTokens?.surfaceMuted?{"--cf-surface-2":t.themeTokens.surfaceMuted}:{},...t.themeTokens?.text?{"--cf-text":t.themeTokens.text}:{},...t.themeTokens?.mutedText?{"--cf-muted":t.themeTokens.mutedText}:{},...t.themeTokens?.border?{"--cf-border":t.themeTokens.border}:{},...t.themeTokens?.shadow?{"--cf-shadow":t.themeTokens.shadow}:{},...t.themeTokens?.radius?{"--cf-radius":t.themeTokens.radius}:{},...t.themeTokens?.fontFamily?{"--cf-font":t.themeTokens.fontFamily}:{},...t.themeTokens?.success?{"--cf-success":t.themeTokens.success}:{},...t.themeTokens?.warning?{"--cf-warning":t.themeTokens.warning}:{},...t.themeTokens?.danger?{"--cf-danger":t.themeTokens.danger}:{},...or?{"--cf-accent":or,"--cf-accent-2":t.themeTokens?.accentStrong??`color-mix(in oklab, ${or} 76%, #14141f)`}:{}},lr=e=>P(e),ur=[...p].reverse().find(e=>e.role===`user`&&e.content.trim())?.content??``,dr=p.some(e=>e.role===`user`),fr=c?.talkbackMode===`avatar`||c?.widgetModule===`assistant`||!!c?.allowVoiceInput,pr=!Q&&fr&&!dr?Cn.filter((e,t)=>!(t===0&&e.role===`assistant`)):Cn,mr=x===`human`&&w?w:c?.agentName??i.chatName,hr=x===`human`?i.liveSupport:x===`queued`?i.waitingForTeam:c?.offline?i.statusOffline:i.statusOnline,gr=!V&&!Q?c?.availableActions:void 0,_r=!V&&!Q?c?.actions:void 0,vr=G&&U===`connecting`&&!Q;return O(f,{value:i,children:k(`div`,{class:`cf-root`,"data-theme":Je,"data-align":t.alignment,"data-display":`floating`,style:cr,children:[ze&&a&&O(`div`,{class:`cf-theater-backdrop`,onClick:Hn}),k(`div`,{ref:it,class:`cf-panel ${a?`is-open`:``} ${G?`cf-panel--call`:``} ${vr?`cf-panel--voice-connecting`:``} ${ze&&a?`cf-panel--theater`:``} ${wn?`cf-panel--analytics-focus`:``}`,role:`dialog`,"aria-modal":`false`,"aria-label":`${i.chatName}: ${c?.agentName??i.assistantName}`,"aria-hidden":!a,children:[k(`div`,{class:`cf-header`,children:[O(Me,{persona:c,hideWhenMissing:!0}),k(`div`,{class:`cf-header__meta`,children:[O(`div`,{class:`cf-header__name`,children:mr}),O(`div`,{class:`cf-header__status ${x===`ai`&&c?.offline?`cf-header__status--offline`:``}`,children:O(`span`,{class:`cf-header__status-text`,children:hr})})]}),k(`div`,{class:`cf-header__actions`,children:[Ce.length>0&&O(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":i.pastConversations,title:i.pastConversations,"aria-pressed":gn,onClick:()=>_n(e=>!e),children:O(pe,{})}),dr&&!V&&!Q&&O(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":i.endChat,title:i.endChat,onClick:On,children:O(fe,{})}),t.sound&&Qe&&O(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":K?i.unmuteSounds:i.muteSounds,"aria-pressed":K,onClick:tt,children:O(K?oe:ae,{})}),O(`button`,{type:`button`,class:`cf-header__btn cf-header__close`,"aria-label":i.closeChat,onClick:En,children:O(N,{})})]})]}),O(`div`,{class:`cf-panel__video`,children:wn?O(`div`,{class:`cf-analytics-focus`,role:`region`,"aria-label":i.expandedAnalyticsResult,children:O(rt,{visualization:wn,expanded:!0,onClose:Vn})}):!Q&&fr?O(Ne,{persona:c,starters:[],onPick:P,onFocusComposer:Jn,speaking:v,voiceState:U,replyPending:G&&g&&!v,pinned:!0,muted:Fe,onToggleMute:Yn,onEndCall:$,onTalkNow:er,showTalkNow:nr,micLevel:Le,theaterMode:ze,onToggleTheater:zn,onMinimize:En,audioDevices:Ue,selectedAudioDeviceId:Ge,onSelectAudioDevice:$n,connectingOnly:vr}):null}),!vr&&k(`div`,{class:`cf-panel__chat`,children:[t.preview&&O(`div`,{class:`cf-preview-banner`,children:i.previewBanner}),Q&&O(`div`,{class:`cf-viewing-banner`,children:i.viewingPast}),k(`div`,{class:`cf-body`,ref:ot,role:`log`,onScroll:Mn,children:[pr.map((e,t)=>O(nt,{msg:e,persona:c,isLast:!Q&&t===pr.length-1,visitor:y,hasEmail:b,lastQuestion:ur,showActions:!Q&&t===pr.length-1&&!!e.handoffOffered,onPickReply:lr,onSubmitForm:le,onDemoSlots:B,onRetry:re,ratable:!Q&&pr.slice(0,t).some(e=>e.role===`user`),onRate:L,onExpandVisualization:Q?void 0:Bn},e.id)),!dr&&!Q&&k(D,{children:[pr.length===0&&O(ft,{name:c?.agentName??i.assistantName,greeting:c?.greeting}),O($e,{items:te,onPick:P}),O(et,{items:j})]}),cn&&k(`button`,{type:`button`,class:`cf-newmsg`,onClick:Nn,children:[O(ye,{}),i.newMessages]})]}),O(`div`,{class:`cf-sr-live`,"aria-live":`polite`,"aria-atomic":`true`,children:rr}),g&&!V&&!Q&&O(`div`,{class:`cf-stopbar`,children:k(`button`,{type:`button`,class:`cf-stop`,onClick:I,children:[O(ue,{}),i.stop]})}),Q?O(`div`,{class:`cf-ended`,children:O(`button`,{type:`button`,class:`cf-ended__btn`,onClick:De,children:i.backToChat})}):V?k(`div`,{class:`cf-ended`,children:[O(`p`,{class:`cf-ended__text`,children:i.conversationEnded}),t.csat&&dr?xn?O(`p`,{class:`cf-ended__text`,children:i.feedbackThanks}):k(`div`,{class:`cf-csat`,children:[O(`span`,{class:`cf-csat__q`,children:i.csatPrompt}),O(`button`,{type:`button`,class:`cf-csat__btn`,"aria-label":i.feedbackHelpful,onClick:()=>{ce(`up`),Sn(!0)},children:O(me,{})}),O(`button`,{type:`button`,class:`cf-csat__btn`,"aria-label":i.feedbackNotHelpful,onClick:()=>{ce(`down`),Sn(!0)},children:O(he,{})})]}):null,O(`button`,{type:`button`,class:`cf-ended__btn`,onClick:An,children:i.startNewChat})]}):k(D,{children:[A?O(`div`,{class:`cf-live-typing`,"aria-live":`polite`,children:h(i.agentTyping,{name:A})}):null,gr&&gr.length>0&&O(`div`,{class:`cf-footer-actions`,children:O(Xe,{actions:gr,descriptors:_r,visitor:y,onSubmitForm:le,onDemoSlots:B,scheduler:c?.scheduler,translations:t.actionTranslations})},`footer-actions`),O(dt,{draftStore:yn,onSend:P,onSendGif:ne,onTyping:F,disabled:g,allowVoice:!!c?.allowVoiceInput,onTranscribe:de,gifEnabled:ve,onSearchGifs:_e,allowAttach:t.attachments,onExtract:ge},`composer`)]}),!V&&c?.disclaimerText&&O(`div`,{class:`cf-disclaimer`,children:c.disclaimerText}),k(`div`,{class:`cf-footer`,children:[O(`button`,{type:`button`,class:`cf-footer__privacy`,"aria-label":i.clearDeviceData,onClick:()=>mn(!0),children:i.privacyAndData}),O(`span`,{"aria-hidden":`true`,children:`·`}),i.poweredBy,` `,O(`a`,{href:`https://accurix.tech/centrinfo`,target:`_blank`,rel:`noopener noreferrer`,children:`Centrinfo`})]})]}),dn&&O(`div`,{class:`cf-confirm`,onClick:()=>fn(!1),children:k(`div`,{class:`cf-confirm__card`,role:`alertdialog`,"aria-modal":`true`,"aria-label":i.endChatConfirm,onClick:e=>e.stopPropagation(),onKeyDownCapture:e=>pt(e,e.currentTarget,()=>fn(!1)),children:[O(`div`,{class:`cf-confirm__title`,children:i.endChatConfirm}),O(`div`,{class:`cf-confirm__body`,children:i.endChatConfirmBody}),k(`div`,{class:`cf-confirm__actions`,children:[O(`button`,{ref:hn,type:`button`,class:`cf-confirm__btn cf-confirm__btn--cancel`,onClick:()=>fn(!1),children:i.cancel}),O(`button`,{type:`button`,class:`cf-confirm__btn cf-confirm__btn--danger`,onClick:kn,children:i.endConfirmCta})]})]})},`confirm-end`),gn&&O(`div`,{class:`cf-confirm`,onClick:()=>_n(!1),children:k(`div`,{class:`cf-history`,role:`dialog`,"aria-modal":`true`,"aria-label":i.pastConversations,onClick:e=>e.stopPropagation(),onKeyDownCapture:e=>pt(e,e.currentTarget,()=>_n(!1)),children:[k(`div`,{class:`cf-history__head`,children:[O(`span`,{children:i.pastConversations}),O(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":i.closeHistory,onClick:()=>_n(!1),children:O(N,{})})]}),O(`div`,{class:`cf-history__list`,children:Ce.map(e=>k(`button`,{type:`button`,class:`cf-history__item ${e.sessionId===we?`is-active`:``}`,onClick:()=>{Ee(e.sessionId),_n(!1)},children:[O(`span`,{class:`cf-history__title`,children:e.title}),k(`span`,{class:`cf-history__meta`,children:[new Date(e.ts).toLocaleDateString(void 0,{month:`short`,day:`numeric`}),e.ended?` · ${i.historyEnded}`:``]})]},e.sessionId))}),O(`div`,{class:`cf-history__footer`,children:O(`button`,{type:`button`,class:`cf-history__clear`,onClick:()=>{_n(!1),mn(!0)},children:i.clearDeviceData})})]})},`history`),pn&&O(`div`,{class:`cf-confirm`,onClick:()=>mn(!1),children:k(`div`,{class:`cf-confirm__card`,role:`alertdialog`,"aria-modal":`true`,"aria-label":i.clearDeviceData,onClick:e=>e.stopPropagation(),onKeyDownCapture:e=>pt(e,e.currentTarget,()=>mn(!1)),children:[O(`div`,{class:`cf-confirm__title`,children:i.clearDeviceData}),O(`div`,{class:`cf-confirm__body`,children:i.clearDeviceDataBody}),k(`div`,{class:`cf-confirm__actions`,children:[O(`button`,{type:`button`,class:`cf-confirm__btn cf-confirm__btn--cancel`,onClick:()=>mn(!1),children:i.cancel}),O(`button`,{type:`button`,class:`cf-confirm__btn cf-confirm__btn--danger`,onClick:()=>{mn(!1),Oe()},children:i.clearDeviceDataCta})]})]})},`confirm-clear`)]}),G&&!a?O(lt,{persona:c,voiceState:U,muted:Fe,onToggleMute:Yn,onEndCall:$,micLevel:Le,onExpand:Tn}):ze&&a?null:!t.hideDefaultLauncher&&k(`button`,{ref:at,type:`button`,class:`cf-launcher`,"aria-label":a?i.closeChat:Ae>0?`${i.openChat}. ${Ae===1?i.unreadMessage:h(i.unreadMessages,{count:String(Ae)})}`:i.openChat,"aria-expanded":a,onClick:Dn,children:[t.launcherIcon?O(`img`,{class:`cf-launcher__img`,src:t.launcherIcon,alt:``}):O(M,{}),!a&&Ae>0&&O(`span`,{class:`cf-launcher__badge`,"aria-hidden":`true`,children:Ae>99?`99+`:Ae})]})]})})},It=`
2
2
  :host {
3
3
  all: initial;
4
4
  }
@@ -12,6 +12,7 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
12
12
  --cf-text: #0f1e2a;
13
13
  --cf-muted: #5b7186;
14
14
  --cf-border: #e4e9ee;
15
+ --cf-danger: #b42318;
15
16
  --cf-shadow: 0 12px 48px -12px rgba(15, 30, 42, 0.4), 0 4px 12px -4px rgba(15, 30, 42, 0.2);
16
17
  --cf-radius: 18px;
17
18
  --cf-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
@@ -143,16 +144,15 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
143
144
  overflow: hidden;
144
145
  transform-origin: bottom right;
145
146
  opacity: 0;
146
- transform: translateY(22px) scale(0.94);
147
+ transform: scale(0.94);
147
148
  pointer-events: none;
148
149
  transition: opacity 0.22s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
149
150
  height 0.28s ease, width 0.28s ease;
150
151
  }
151
152
  .cf-panel.is-open {
152
153
  opacity: 1;
153
- transform: translateY(0) scale(1);
154
+ transform: scale(1);
154
155
  pointer-events: auto;
155
- animation: cf-panel-open 0.34s cubic-bezier(0.16, 1, 0.3, 1) both;
156
156
  }
157
157
 
158
158
  .cf-panel > .cf-header { grid-area: header; }
@@ -490,6 +490,30 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
490
490
  .cf-msg__bubble p:last-child { margin-bottom: 0; }
491
491
  .cf-msg__col { min-width: 0; max-width: 85%; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
492
492
  .cf-msg--user .cf-msg__col { align-items: flex-end; }
493
+ .cf-artifact {
494
+ width: min(100%, 560px);
495
+ overflow: hidden;
496
+ margin: 0;
497
+ border: 1px solid var(--cf-border);
498
+ border-radius: 12px;
499
+ background: var(--cf-surface);
500
+ }
501
+ .cf-artifact figcaption { padding: 10px 12px 0; color: var(--cf-text); font-size: 12px; font-weight: 750; }
502
+ .cf-artifact img { display: block; width: 100%; height: auto; margin-top: 9px; }
503
+ .cf-artifact p { margin: 0 !important; padding: 8px 12px 10px; color: var(--cf-muted); font-size: 10px; }
504
+ .cf-artifact-link {
505
+ display: grid;
506
+ width: min(100%, 560px);
507
+ gap: 3px;
508
+ border: 1px solid var(--cf-border);
509
+ border-radius: 10px;
510
+ background: var(--cf-surface);
511
+ padding: 10px 12px;
512
+ color: var(--cf-text);
513
+ text-decoration: none;
514
+ }
515
+ .cf-artifact-link:hover { border-color: var(--cf-accent); }
516
+ .cf-artifact-link span { color: var(--cf-muted); font-size: 10px; }
493
517
  .cf-system-event {
494
518
  width: min(280px, 88%);
495
519
  display: flex;
@@ -886,6 +910,12 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
886
910
  .cf-action svg { width: 15px; height: 15px; color: var(--cf-accent); }
887
911
 
888
912
  /* ---------- Inline forms + handoff card ---------- */
913
+ .cf-action-shell {
914
+ display: flex;
915
+ flex-direction: column;
916
+ gap: 8px;
917
+ }
918
+
889
919
  .cf-form {
890
920
  display: flex;
891
921
  flex-direction: column;
@@ -969,6 +999,16 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
969
999
  .cf-booking { max-width: 320px; }
970
1000
  .cf-booking__hint { font-size: 12.5px; color: var(--cf-muted); margin-top: -2px; }
971
1001
  .cf-booking__dur { font-weight: 600; color: var(--cf-text); }
1002
+ .cf-booking__state {
1003
+ padding: 12px;
1004
+ border: 1px dashed var(--cf-border);
1005
+ border-radius: 10px;
1006
+ background: var(--cf-bg-soft);
1007
+ color: var(--cf-muted);
1008
+ font-size: 12px;
1009
+ line-height: 1.45;
1010
+ text-align: center;
1011
+ }
972
1012
  .cf-booking__dates {
973
1013
  display: flex;
974
1014
  gap: 6px;
@@ -1260,6 +1300,9 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
1260
1300
  cursor: pointer;
1261
1301
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
1262
1302
  }
1303
+ .cf-action-trigger[hidden] {
1304
+ display: none;
1305
+ }
1263
1306
  .cf-action-trigger:hover {
1264
1307
  border-color: color-mix(in oklab, var(--cf-accent) 46%, var(--cf-border));
1265
1308
  }
@@ -1415,6 +1458,21 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
1415
1458
  font-size: 10px;
1416
1459
  line-height: 1.25;
1417
1460
  }
1461
+
1462
+ .cf-action-test-mode {
1463
+ display: inline-flex;
1464
+ width: fit-content;
1465
+ margin-top: 3px;
1466
+ padding: 2px 7px;
1467
+ border: 1px solid color-mix(in srgb, var(--cf-accent) 32%, transparent);
1468
+ border-radius: 999px;
1469
+ color: var(--cf-accent-strong);
1470
+ background: color-mix(in srgb, var(--cf-accent) 9%, white);
1471
+ font-size: 10px;
1472
+ font-weight: 700;
1473
+ letter-spacing: 0.04em;
1474
+ text-transform: uppercase;
1475
+ }
1418
1476
  .cf-action-drawer .cf-form,
1419
1477
  .cf-action-drawer .cf-booking {
1420
1478
  max-width: none;
@@ -2523,23 +2581,6 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
2523
2581
  from { transform: scale(0); }
2524
2582
  to { transform: scale(1); }
2525
2583
  }
2526
- @keyframes cf-panel-open {
2527
- 0% {
2528
- opacity: 0;
2529
- transform: translateY(24px) scale(0.93);
2530
- filter: blur(2px);
2531
- }
2532
- 58% {
2533
- opacity: 1;
2534
- transform: translateY(-3px) scale(1.006);
2535
- filter: blur(0);
2536
- }
2537
- 100% {
2538
- opacity: 1;
2539
- transform: translateY(0) scale(1);
2540
- filter: blur(0);
2541
- }
2542
- }
2543
2584
  @keyframes cf-msg-in {
2544
2585
  from { opacity: 0; transform: translateY(8px); }
2545
2586
  to { opacity: 1; transform: none; }
@@ -2608,27 +2649,138 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
2608
2649
  gap: 6px;
2609
2650
  }
2610
2651
  .cf-analytics-chart-picker {
2611
- display: flex;
2612
- align-items: center;
2613
- gap: 5px;
2652
+ position: relative;
2653
+ display: inline-flex;
2654
+ min-width: 0;
2614
2655
  color: var(--cf-muted);
2615
2656
  font-size: 9px;
2616
2657
  font-weight: 700;
2617
2658
  }
2618
- .cf-analytics-chart-picker select {
2619
- max-width: 112px;
2659
+
2660
+ .cf-analytics-chart-picker summary {
2661
+ display: inline-flex;
2662
+ min-width: 92px;
2663
+ max-width: 138px;
2620
2664
  height: 30px;
2665
+ align-items: center;
2666
+ gap: 6px;
2621
2667
  border: 1px solid var(--cf-border);
2622
2668
  border-radius: 8px;
2623
2669
  background: var(--cf-bg);
2624
- padding: 0 22px 0 8px;
2670
+ padding: 0 8px;
2625
2671
  color: var(--cf-text);
2626
- font: inherit;
2672
+ list-style: none;
2673
+ cursor: pointer;
2674
+ box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
2675
+ transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
2676
+ }
2677
+
2678
+ .cf-analytics-chart-picker summary::-webkit-details-marker { display: none; }
2679
+ .cf-analytics-chart-picker summary:hover,
2680
+ .cf-analytics-chart-picker[open] summary {
2681
+ border-color: var(--cf-accent);
2682
+ background: color-mix(in oklab, var(--cf-accent) 9%, var(--cf-bg));
2627
2683
  }
2628
- .cf-analytics-chart-picker select:focus-visible {
2684
+ .cf-analytics-chart-picker summary:focus-visible {
2629
2685
  outline: 2px solid var(--cf-accent);
2630
2686
  outline-offset: 2px;
2631
2687
  }
2688
+ .cf-analytics-chart-picker summary > svg:last-child {
2689
+ width: 13px;
2690
+ height: 13px;
2691
+ flex: 0 0 13px;
2692
+ margin-left: auto;
2693
+ color: var(--cf-muted);
2694
+ transition: transform .16s ease;
2695
+ }
2696
+ .cf-analytics-chart-picker[open] summary > svg:last-child { transform: rotate(180deg); }
2697
+ .cf-analytics-chart-picker__current {
2698
+ display: inline-flex;
2699
+ min-width: 0;
2700
+ align-items: center;
2701
+ gap: 6px;
2702
+ }
2703
+ .cf-analytics-chart-picker__current > span {
2704
+ overflow: hidden;
2705
+ text-overflow: ellipsis;
2706
+ white-space: nowrap;
2707
+ }
2708
+ .cf-chart-type-icon {
2709
+ width: 17px;
2710
+ height: 17px;
2711
+ flex: 0 0 17px;
2712
+ }
2713
+ .cf-analytics-chart-picker__menu {
2714
+ position: absolute;
2715
+ top: calc(100% + 7px);
2716
+ right: 0;
2717
+ z-index: 60;
2718
+ display: grid;
2719
+ min-width: 196px;
2720
+ padding: 6px;
2721
+ border: 1px solid var(--cf-border);
2722
+ border-radius: 12px;
2723
+ background: var(--cf-bg);
2724
+ box-shadow: 0 18px 45px rgba(15, 23, 42, .18);
2725
+ }
2726
+ .cf-analytics-chart-picker__menu button {
2727
+ display: flex;
2728
+ width: 100%;
2729
+ min-height: 46px;
2730
+ align-items: flex-start;
2731
+ gap: 8px;
2732
+ border: 0;
2733
+ border-radius: 9px;
2734
+ background: transparent;
2735
+ padding: 7px;
2736
+ color: var(--cf-text);
2737
+ font: inherit;
2738
+ text-align: left;
2739
+ cursor: pointer;
2740
+ }
2741
+ .cf-analytics-chart-picker__menu button:hover,
2742
+ .cf-analytics-chart-picker__menu button.is-selected {
2743
+ background: color-mix(in oklab, var(--cf-accent) 10%, var(--cf-bg));
2744
+ color: var(--cf-accent);
2745
+ }
2746
+ .cf-analytics-chart-picker__menu button > svg:last-child {
2747
+ width: 13px;
2748
+ height: 13px;
2749
+ flex: 0 0 13px;
2750
+ margin-top: 4px;
2751
+ }
2752
+ .cf-analytics-chart-picker__icon {
2753
+ display: inline-flex;
2754
+ width: 30px;
2755
+ height: 30px;
2756
+ flex: 0 0 30px;
2757
+ align-items: center;
2758
+ justify-content: center;
2759
+ border-radius: 9px;
2760
+ background: var(--cf-bg-soft);
2761
+ box-shadow: inset 0 0 0 1px var(--cf-border);
2762
+ }
2763
+ .cf-analytics-chart-picker__icon .cf-chart-type-icon {
2764
+ width: 25px;
2765
+ height: 25px;
2766
+ flex-basis: 25px;
2767
+ }
2768
+ .cf-analytics-chart-picker__copy {
2769
+ display: grid;
2770
+ min-width: 0;
2771
+ flex: 1;
2772
+ gap: 2px;
2773
+ }
2774
+ .cf-analytics-chart-picker__copy strong {
2775
+ font-size: 10px;
2776
+ line-height: 1.25;
2777
+ }
2778
+ .cf-analytics-chart-picker__copy small {
2779
+ color: var(--cf-muted);
2780
+ font-size: 9px;
2781
+ font-weight: 560;
2782
+ line-height: 1.3;
2783
+ }
2632
2784
  .cf-analytics-visualization__title {
2633
2785
  overflow: hidden;
2634
2786
  color: var(--cf-muted);
@@ -2907,12 +3059,6 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
2907
3059
  letter-spacing: -.035em;
2908
3060
  line-height: 1;
2909
3061
  }
2910
- .cf-analytics-kpi__detail {
2911
- margin-top: 8px;
2912
- color: var(--cf-muted);
2913
- font-size: 10px;
2914
- line-height: 1.5;
2915
- }
2916
3062
  .cf-analytics-empty {
2917
3063
  margin-top: 8px;
2918
3064
  border: 1px dashed var(--cf-border);
@@ -3011,12 +3157,6 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
3011
3157
  font-size: 10px;
3012
3158
  font-weight: 700;
3013
3159
  }
3014
- .cf-analytics-chart__summary {
3015
- margin: 2px 0 0;
3016
- color: var(--cf-muted);
3017
- font-size: 11px;
3018
- line-height: 1.45;
3019
- }
3020
3160
  .cf-analytics-focus {
3021
3161
  height: 100%;
3022
3162
  min-height: 0;
@@ -3274,4 +3414,106 @@ import{_ as e,a as t,c as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o a
3274
3414
  .cf-analytics-focus { padding: 14px; }
3275
3415
  .cf-analytics-visualization.is-expanded .cf-analytics-echart { min-height: 260px; }
3276
3416
  }
3277
- `;function Tt(e){"@babel/helpers - typeof";return Tt=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Tt(e)}function Et(e,t){if(Tt(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Tt(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function q(e){var t=Et(e,`string`);return Tt(t)==`symbol`?t:t+``}function J(e,t,n){return(t=q(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Y=`centrinfo-widget`;var Dt=class extends HTMLElement{constructor(...e){super(...e),J(this,`controls`,null)}mountWith(t){let n=m(t),r=this.shadowRoot??this.attachShadow({mode:`open`});if(this.style.zIndex=String(n.zIndex),`adoptedStyleSheets`in Document.prototype&&typeof CSSStyleSheet<`u`){let e=new CSSStyleSheet;e.replaceSync(wt),r.adoptedStyleSheets=[e]}else{let e=document.createElement(`style`);e.textContent=wt,r.appendChild(e)}_(w(Ct,{transport:n.demo?new h:n.preview?new e(new g(n.apiBaseUrl,n.token,n.gifApiKey,n.analyticsContextToken,{agentName:n.agentName,agentAvatarUrl:n.agentAvatarUrl},n.identityToken,n.getIdentityToken,n.chatSurface),n.strings):new g(n.apiBaseUrl,n.token,n.gifApiKey,n.analyticsContextToken,{agentName:n.agentName,agentAvatarUrl:n.agentAvatarUrl},n.identityToken,n.getIdentityToken,n.chatSurface),config:n,bindControls:e=>this.controls=e}),r)}open(){this.controls?.open()}close(){this.controls?.close()}toggle(){this.controls?.toggle()}identify(e){this.controls?.identify(e)}clear(){this.controls?.startNew()}shutdown(){this.controls?.shutdown()}unmount(){this.shadowRoot&&_(null,this.shadowRoot)}};typeof customElements<`u`&&!customElements.get(Y)&&customElements.define(Y,Dt);const Ot=(e,t=document.body)=>{if(typeof document>`u`)throw Error(`[centrinfo-widget] createWidget must run in a browser.`);let n=document.createElement(Y);return n.style.pointerEvents=`none`,n.style.position=`fixed`,n.style.inset=`0`,n.style.width=`0`,n.style.height=`0`,t.appendChild(n),n.mountWith(e),{open:()=>n.open(),close:()=>n.close(),toggle:()=>n.toggle(),show:()=>n.open(),hide:()=>n.close(),identify:e=>n.identify(e),update:e=>n.identify(e),clear:()=>n.clear(),shutdown:()=>n.shutdown(),logout:()=>n.shutdown(),destroy:()=>{n.unmount(),n.remove()}}},X=e=>Ot(e);let kt=null;const At=e=>{kt?.destroy();let t=X(e);return kt=t,t},jt={init:At,createWidget:X};export{jt as Centrinfo,X as createWidget,At as init};
3417
+
3418
+ /* Production embed hardening: dynamic mobile viewports, safe areas, and touch. */
3419
+ @supports (height: 100dvh) {
3420
+ .cf-panel { height: min(88dvh, 820px); max-height: calc(100dvh - 40px); }
3421
+ .cf-panel.cf-panel--call { height: min(90dvh, 840px); }
3422
+ .cf-panel.cf-panel--voice-connecting { height: min(72dvh, 560px); }
3423
+ }
3424
+ .cf-history__footer {
3425
+ flex: 0 0 auto;
3426
+ border-top: 1px solid var(--cf-border);
3427
+ padding: 10px 12px;
3428
+ }
3429
+ .cf-history__clear {
3430
+ width: 100%;
3431
+ min-height: 38px;
3432
+ border-radius: 9px !important;
3433
+ color: var(--cf-danger) !important;
3434
+ font-size: 12px;
3435
+ font-weight: 700;
3436
+ }
3437
+ .cf-history__clear:hover { background: color-mix(in srgb, var(--cf-danger) 8%, var(--cf-bg)) !important; }
3438
+ .cf-history__clear:focus-visible { outline: 2px solid var(--cf-danger); outline-offset: 2px; }
3439
+ .cf-footer__privacy {
3440
+ border-radius: 5px !important;
3441
+ color: inherit !important;
3442
+ font: inherit;
3443
+ text-decoration: underline;
3444
+ text-underline-offset: 2px;
3445
+ }
3446
+ .cf-footer__privacy:focus-visible { outline: 2px solid var(--cf-accent); outline-offset: 2px; }
3447
+ .cf-composer.is-dragging { box-shadow: inset 0 0 0 2px var(--cf-accent); }
3448
+ .cf-attach-status { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
3449
+ .cf-attach-status button {
3450
+ min-height: 28px;
3451
+ border-radius: 7px !important;
3452
+ padding: 0 8px !important;
3453
+ color: var(--cf-accent) !important;
3454
+ font-size: 11px;
3455
+ font-weight: 700;
3456
+ }
3457
+ .cf-attach-preview {
3458
+ width: 32px;
3459
+ height: 32px;
3460
+ flex: 0 0 32px;
3461
+ border-radius: 7px;
3462
+ object-fit: cover;
3463
+ }
3464
+ .cf-attach-copy { display: grid; min-width: 0; gap: 1px; }
3465
+ .cf-attach-copy > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
3466
+ .cf-attach-copy small { color: var(--cf-muted); font-size: 9px; font-weight: 600; }
3467
+
3468
+ @media (max-width: 639px) {
3469
+ .cf-panel {
3470
+ top: max(8px, env(safe-area-inset-top));
3471
+ right: max(8px, env(safe-area-inset-right));
3472
+ bottom: max(8px, env(safe-area-inset-bottom));
3473
+ left: max(8px, env(safe-area-inset-left));
3474
+ width: auto;
3475
+ height: auto;
3476
+ min-height: 0;
3477
+ max-width: none;
3478
+ max-height: none;
3479
+ border-radius: 16px;
3480
+ }
3481
+ .cf-launcher {
3482
+ right: max(var(--cf-h-pad, 20px), env(safe-area-inset-right));
3483
+ bottom: max(var(--cf-v-pad, 20px), env(safe-area-inset-bottom));
3484
+ }
3485
+ .cf-root[data-align='left'] .cf-launcher {
3486
+ right: auto;
3487
+ left: max(var(--cf-h-pad, 20px), env(safe-area-inset-left));
3488
+ }
3489
+ .cf-root[data-align='left'] .cf-panel {
3490
+ right: max(8px, env(safe-area-inset-right));
3491
+ left: max(8px, env(safe-area-inset-left));
3492
+ }
3493
+ .cf-panel.cf-panel--call,
3494
+ .cf-panel.cf-panel--voice-connecting,
3495
+ .cf-panel.cf-panel--analytics-focus {
3496
+ top: max(8px, env(safe-area-inset-top));
3497
+ right: max(8px, env(safe-area-inset-right));
3498
+ bottom: max(8px, env(safe-area-inset-bottom));
3499
+ left: max(8px, env(safe-area-inset-left));
3500
+ width: auto;
3501
+ height: auto;
3502
+ min-height: 0;
3503
+ max-width: none;
3504
+ max-height: none;
3505
+ }
3506
+ .cf-header__btn { width: 40px; height: 40px; }
3507
+ .cf-feedback__btn { width: 36px; height: 36px; }
3508
+ .cf-iconbtn, .cf-send { min-width: 40px; min-height: 40px; }
3509
+ }
3510
+ @media (min-width: 640px) and (max-height: 599px) {
3511
+ .cf-panel,
3512
+ .cf-panel.cf-panel--call,
3513
+ .cf-panel.cf-panel--voice-connecting {
3514
+ height: calc(100dvh - 24px);
3515
+ min-height: 0;
3516
+ max-height: calc(100dvh - 24px);
3517
+ }
3518
+ }
3519
+ `;function Lt(e){"@babel/helpers - typeof";return Lt=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Lt(e)}function Rt(e,t){if(Lt(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Lt(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function zt(e){var t=Rt(e,`string`);return Lt(t)==`symbol`?t:t+``}function Bt(e,t,n){return(t=zt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Vt=`centrinfo-widget`;var Ht=class extends HTMLElement{constructor(...e){super(...e),Bt(this,`controls`,null),Bt(this,`composerDraftStore`,{value:``})}mountWith(n){let r=g(n),i=this.shadowRoot??this.attachShadow({mode:`open`});if(this.style.zIndex=String(r.zIndex),`adoptedStyleSheets`in Document.prototype&&typeof CSSStyleSheet<`u`&&typeof CSSStyleSheet.prototype.replaceSync==`function`){let e=new CSSStyleSheet;e.replaceSync(It),i.adoptedStyleSheets=[e]}else{let e=document.createElement(`style`);r.styleNonce&&(e.nonce=r.styleNonce),e.textContent=It,i.appendChild(e)}x(O(Ft,{transport:r.demo?new t:r.preview?new y(new e(r.apiBaseUrl,r.token,r.gifApiKey,r.analyticsContextToken,{agentName:r.agentName,agentAvatarUrl:r.agentAvatarUrl},r.identityToken,r.getIdentityToken,r.chatSurface),r.strings):new e(r.apiBaseUrl,r.token,r.gifApiKey,r.analyticsContextToken,{agentName:r.agentName,agentAvatarUrl:r.agentAvatarUrl},r.identityToken,r.getIdentityToken,r.chatSurface),config:r,bindControls:e=>this.controls=e,composerDraftStore:this.composerDraftStore}),i)}open(){this.controls?.open()}close(){this.controls?.close()}toggle(){this.controls?.toggle()}identify(e){this.controls?.identify(e)}clear(){this.controls?.startNew()}shutdown(){this.controls?.shutdown()}unmount(){this.shadowRoot&&x(null,this.shadowRoot)}};typeof customElements<`u`&&!customElements.get(Vt)&&customElements.define(Vt,Ht);const Ut=(e,t=document.body)=>{if(typeof document>`u`)throw Error(`[centrinfo-widget] createWidget must run in a browser.`);let n=document.createElement(Vt);return n.style.pointerEvents=`none`,n.style.position=`fixed`,n.style.inset=`0`,n.style.width=`0`,n.style.height=`0`,t.appendChild(n),n.mountWith(e),{open:()=>n.open(),close:()=>n.close(),toggle:()=>n.toggle(),show:()=>n.open(),hide:()=>n.close(),identify:e=>n.identify(e),update:e=>n.identify(e),clear:()=>n.clear(),shutdown:()=>n.shutdown(),logout:()=>n.shutdown(),destroy:()=>{n.unmount(),n.remove()}}},Z=e=>Ut(e);let Wt=null;const Gt=e=>{Wt?.destroy();let t=Z(e);return Wt=t,t},Kt={init:Gt,createWidget:Z};export{Kt as Centrinfo,Z as createWidget,Gt as init};