@accurix/centrinfo-widget 1.0.1 → 1.1.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/README.md +53 -3
- package/dist/cdn/centrinfo-widget.js +278 -53
- package/dist/cdn/manifest.json +6 -6
- package/dist/config-BfVMFkZ4.cjs +36 -0
- package/dist/config-CHvO9tW1.mjs +30 -0
- package/dist/index.cjs +257 -33
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +257 -33
- package/dist/runtime.cjs +1 -1
- package/dist/runtime.d.cts +11 -7
- package/dist/runtime.d.mts +11 -7
- package/dist/runtime.mjs +1 -1
- package/dist/{types-DQWp12Cg.d.mts → types-BwixZ4yh.d.mts} +59 -5
- package/dist/{types-rfkc-TtX.d.cts → types-CiW6Ilds.d.cts} +59 -5
- package/package.json +5 -4
- package/dist/config-CCkOySUT.mjs +0 -29
- package/dist/config-CzrfVSPp.cjs +0 -35
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require(`./config-CzrfVSPp.cjs`);let t=require(`preact`),n=require(`preact/hooks`),r=require(`preact/jsx-runtime`);const i=[`audio/webm;codecs=opus`,`audio/webm`,`audio/ogg;codecs=opus`,`audio/ogg`],a=e=>{let t=globalThis.MediaRecorder;if(typeof t?.isTypeSupported==`function`){for(let n of i)if(t.isTypeSupported(n))try{return new t(e,{mimeType:n})}catch{}}return new t(e)},o=e=>{if(!(!e||e.state!==`recording`)){try{e.requestData()}catch{}e.stop()}},s=[{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(`.`)}],c={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`}]}},l=(e,t)=>(0,r.jsx)(`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}),u=e=>(0,r.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,...e,children:(0,r.jsx)(`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`})}),d=e=>l((0,r.jsx)(`path`,{d:`m6 9 6 6 6-6`}),e),f=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`m22 2-7 20-4-9-9-4Z`}),(0,r.jsx)(`path`,{d:`M22 2 11 13`})]}),e),p=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z`}),(0,r.jsx)(`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`}),(0,r.jsx)(`line`,{x1:`12`,y1:`19`,x2:`12`,y2:`22`})]}),e),m=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M9 9v1a3 3 0 0 0 4.24 2.73`}),(0,r.jsx)(`path`,{d:`M15 5.5V5a3 3 0 0 0-5.94-.6`}),(0,r.jsx)(`path`,{d:`M19 10v2a7 7 0 0 1-9.9 6.36`}),(0,r.jsx)(`path`,{d:`M5 10v2a6.98 6.98 0 0 0 1.11 3.79`}),(0,r.jsx)(`line`,{x1:`12`,y1:`19`,x2:`12`,y2:`22`}),(0,r.jsx)(`line`,{x1:`2`,y1:`2`,x2:`22`,y2:`22`})]}),e),h=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M15 3h6v6`}),(0,r.jsx)(`path`,{d:`M10 14 21 3`}),(0,r.jsx)(`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`})]}),e),g=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`18`,rx:`2`}),(0,r.jsx)(`line`,{x1:`16`,y1:`2`,x2:`16`,y2:`6`}),(0,r.jsx)(`line`,{x1:`8`,y1:`2`,x2:`8`,y2:`6`}),(0,r.jsx)(`line`,{x1:`3`,y1:`10`,x2:`21`,y2:`10`})]}),e),_=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`}),(0,r.jsx)(`path`,{d:`m22 7-10 5L2 7`})]}),e),v=e=>l((0,r.jsx)(`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),ee=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,r.jsx)(`path`,{d:`M8.5 14.5a4 4 0 0 0 7 0`}),(0,r.jsx)(`line`,{x1:`9`,y1:`9.5`,x2:`9.01`,y2:`9.5`}),(0,r.jsx)(`line`,{x1:`15`,y1:`9.5`,x2:`15.01`,y2:`9.5`})]}),e),y=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),(0,r.jsx)(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]}),e),b=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M11 5 6 9H2v6h4l5 4z`}),(0,r.jsx)(`path`,{d:`M15.5 8.5a5 5 0 0 1 0 7`}),(0,r.jsx)(`path`,{d:`M19 5a9 9 0 0 1 0 14`})]}),e),x=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M11 5 6 9H2v6h4l5 4z`}),(0,r.jsx)(`line`,{x1:`22`,y1:`9`,x2:`16`,y2:`15`}),(0,r.jsx)(`line`,{x1:`16`,y1:`9`,x2:`22`,y2:`15`})]}),e),S=e=>l((0,r.jsx)(`path`,{d:`M20 6 9 17l-5-5`}),e),C=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`}),(0,r.jsx)(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})]}),e),te=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M1 4v6h6`}),(0,r.jsx)(`path`,{d:`M3.51 15a9 9 0 1 0 2.13-9.36L1 10`})]}),e),ne=e=>l((0,r.jsx)(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`}),e),w=e=>l((0,r.jsx)(`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),T=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M18.36 6.64a9 9 0 1 1-12.73 0`}),(0,r.jsx)(`line`,{x1:`12`,y1:`2`,x2:`12`,y2:`12`})]}),e),re=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,r.jsx)(`path`,{d:`M12 7v5l3 2`})]}),e),ie=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M7 10v12`}),(0,r.jsx)(`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),E=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M17 14V2`}),(0,r.jsx)(`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),D=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M15 3h6v6`}),(0,r.jsx)(`path`,{d:`M9 21H3v-6`}),(0,r.jsx)(`path`,{d:`M21 3l-7 7`}),(0,r.jsx)(`path`,{d:`M3 21l7-7`})]}),e),O=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M9 3v6H3`}),(0,r.jsx)(`path`,{d:`M15 21v-6h6`}),(0,r.jsx)(`path`,{d:`M9 9 2 2`}),(0,r.jsx)(`path`,{d:`M15 15l7 7`})]}),e),k=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`14`,rx:`2`}),(0,r.jsx)(`rect`,{x:`11`,y:`11`,width:`8`,height:`6`,rx:`1`,fill:`currentColor`,stroke:`none`})]}),e),ae=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`rect`,{x:`4`,y:`5`,width:`16`,height:`14`,rx:`2`}),(0,r.jsx)(`path`,{d:`M12 15V9`}),(0,r.jsx)(`path`,{d:`m8.5 12.5 3.5-3.5 3.5 3.5`})]}),e),oe=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),(0,r.jsx)(`path`,{d:`m19 12-7 7-7-7`})]}),e),se=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)}`},A=e=>e?.name?.trim()?e.version?`${e.name.trim()} · v${e.version}`:e.name.trim():``,ce=({model:e,answeredAt:t,reportingPeriod:n,filters:i=[],rowCount:a})=>{let o=A(e);return(0,r.jsxs)(`div`,{class:`cf-analytics-meta`,"data-testid":`analytics-result-meta`,"aria-label":`Result details`,children:[o?(0,r.jsx)(`span`,{class:`cf-analytics-meta__model`,children:o}):null,(0,r.jsxs)(`span`,{children:[(0,r.jsx)(`span`,{"aria-hidden":`true`,class:`cf-analytics-meta__dot`}),se(t)]}),n?.label?(0,r.jsx)(`span`,{children:n.label}):null,typeof a==`number`?(0,r.jsxs)(`span`,{children:[a,` `,a===1?`row`:`rows`]}):null,i.length>0?(0,r.jsxs)(`span`,{children:[i.length,` applied `,i.length===1?`filter`:`filters`]}):null]})},j=({label:e,value:t,detail:n})=>(0,r.jsxs)(`section`,{class:`cf-analytics-kpi`,"aria-label":e,"data-testid":`analytics-kpi`,children:[(0,r.jsx)(`div`,{class:`cf-analytics-kpi__label`,children:e}),(0,r.jsx)(`div`,{class:`cf-analytics-kpi__value`,children:t}),n?(0,r.jsx)(`div`,{class:`cf-analytics-kpi__detail`,children:n}):null]}),le=({title:e=`No matching data`,description:t=`No approved records matched this question.`})=>(0,r.jsxs)(`section`,{class:`cf-analytics-empty`,role:`status`,"data-testid":`analytics-empty-state`,children:[(0,r.jsx)(`p`,{children:e}),(0,r.jsx)(`p`,{children:t})]}),ue=({explanation:e,onFollowUp:t,showLead:n=!1,maxFollowUps:i=3})=>(0,r.jsxs)(`section`,{class:`cf-analytics-explanation`,"data-testid":`inline-analytics-explanation`,"aria-label":`Analysis and supporting evidence`,children:[n?(0,r.jsxs)(`div`,{class:`cf-analytics-explanation__lead`,"data-testid":`analytics-explanation-lead`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-explanation__lead-meta`,children:[(0,r.jsx)(`span`,{class:`cf-analytics-explanation__eyebrow`,children:`Answer from your data`}),(0,r.jsxs)(`span`,{class:`cf-analytics-explanation__provenance`,children:[(0,r.jsx)(`span`,{"aria-hidden":`true`,class:`cf-analytics-explanation__provenance-dot`}),e.source===`ai_grounded`?`AI-assisted · evidence checked`:`Based on current values`]})]}),(0,r.jsx)(`h3`,{class:`cf-analytics-explanation__headline`,children:e.headline}),(0,r.jsx)(`p`,{class:`cf-analytics-explanation__summary`,children:e.summary})]}):null,(0,r.jsxs)(`div`,{class:`cf-analytics-explanation__body`,children:[(e.evidence?.length??0)>0?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__section`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`What the numbers show`}),(0,r.jsx)(`ul`,{class:`cf-analytics-explanation__evidence`,children:e.evidence?.slice(0,4).map(e=>(0,r.jsxs)(`li`,{class:`cf-analytics-explanation__evidence-item`,children:[(0,r.jsx)(`span`,{"aria-hidden":`true`,class:`cf-analytics-explanation__evidence-bullet`}),(0,r.jsx)(`span`,{children:e})]},e))})]}):null,e.businessMeaning?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__meaning`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`Why this may matter`}),(0,r.jsx)(`p`,{class:`cf-analytics-explanation__paragraph`,children:e.businessMeaning})]}):null,(e.possibleDrivers?.length??0)>0?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__section`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-explanation__section-heading`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`Possibilities worth checking`}),(0,r.jsx)(`span`,{class:`cf-analytics-explanation__hint`,children:`These are not proven causes`})]}),(0,r.jsx)(`div`,{class:`cf-analytics-explanation__drivers`,children:e.possibleDrivers?.slice(0,2).map(e=>(0,r.jsxs)(`article`,{class:`cf-analytics-explanation__driver`,children:[(0,r.jsx)(`p`,{class:`cf-analytics-explanation__driver-title`,children:e.hypothesis}),(0,r.jsxs)(`p`,{class:`cf-analytics-explanation__driver-body`,children:[(0,r.jsx)(`span`,{class:`cf-analytics-explanation__driver-label`,children:`How to check:`}),` `,e.howToCheck]})]},`${e.hypothesis}-${e.howToCheck}`))})]}):null,(e.recommendations?.length??0)>0?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__section`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`Useful next steps`}),(0,r.jsx)(`div`,{class:`cf-analytics-explanation__recommendations`,children:e.recommendations?.slice(0,3).map((e,t)=>(0,r.jsxs)(`article`,{class:`cf-analytics-explanation__recommendation`,children:[(0,r.jsx)(`span`,{class:`cf-analytics-explanation__recommendation-index`,children:t+1}),(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`p`,{class:`cf-analytics-explanation__recommendation-title`,children:e.action}),(0,r.jsx)(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:e.why}),e.successMetric?(0,r.jsxs)(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:[(0,r.jsx)(`span`,{class:`cf-analytics-explanation__driver-label`,children:`Watch:`}),` `,e.successMetric]}):null]})]},`${e.action}-${e.why}`))})]}):null,e.forecast?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__outlook`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-explanation__outlook-header`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`Outlook`}),(0,r.jsx)(`span`,{class:`cf-analytics-explanation__outlook-badge`,children:`Validated estimate`})]}),(0,r.jsx)(`p`,{class:`cf-analytics-explanation__paragraph`,children:e.forecast.text}),e.forecast.limitations?(0,r.jsx)(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:e.forecast.limitations}):null]}):null,t&&(e.followUps?.length??0)>0?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__section cf-analytics-explanation__follow-up`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`Ask a follow-up`}),(0,r.jsx)(`div`,{class:`cf-analytics-explanation__questions`,children:e.followUps?.slice(0,i).map(e=>(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-explanation__question`,onClick:()=>t(e),children:e},e))})]}):null,(e.limitations?.length??0)>0?(0,r.jsxs)(`details`,{class:`cf-analytics-explanation__limits`,children:[(0,r.jsx)(`summary`,{class:`cf-analytics-explanation__limits-summary`,children:`Important limits`}),(0,r.jsx)(`ul`,{class:`cf-analytics-explanation__limits-list`,children:e.limitations?.map(e=>(0,r.jsx)(`li`,{children:e},e))})]}):null]}),(0,r.jsx)(`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=()=>{let e=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let t=requestAnimationFrame(()=>e.current?.scrollIntoView({block:`end`}));return()=>cancelAnimationFrame(t)},[]),e},M=e=>e.trim().split(/\s+/).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)||`🤖`,N=e=>{let t=e?.avatarId?.trim().toLowerCase().replace(/[^a-z0-9-]/g,`-`);return t?` cf-avatar-preset--${t}`:``},fe={"support-guide":`SG`,"sales-host":`SH`,"calm-advisor":`CA`,"technical-guide":`TG`,"school-desk":`SD`,"front-office":`FO`},P=e=>{let t=e?.avatarId?.trim().toLowerCase();return t&&fe[t]||(e?M(e.agentName):`·`)},F=({persona:e,small:t,hideWhenMissing:n})=>{let i=t?`cf-msg__avatar`:`cf-header__avatar`,a=e?.agentAvatarUrl?.trim();return a?(0,r.jsx)(`span`,{class:i,children:(0,r.jsx)(`img`,{src:a,alt:``})}):n?null:(0,r.jsx)(`span`,{class:`${i}${N(e)}`,children:P(e)})},pe=()=>{let t=e.c();return(0,r.jsxs)(`div`,{class:`cf-msg__bubble cf-typing`,"aria-label":t.assistantTyping,children:[(0,r.jsx)(`span`,{class:`cf-typing__label`,children:`Thinking`}),(0,r.jsx)(`span`,{class:`cf-typing__dot`}),(0,r.jsx)(`span`,{class:`cf-typing__dot`}),(0,r.jsx)(`span`,{class:`cf-typing__dot`})]})},me=3,I=({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 i=n.slice(0,3),a=n.length-i.length;return(0,r.jsxs)(`div`,{class:`cf-sources`,children:[i.map((e,t)=>e.url?(0,r.jsxs)(`a`,{class:`cf-source`,href:e.url,target:`_blank`,rel:`noopener noreferrer nofollow`,title:e.title||e.url,children:[(0,r.jsx)(h,{}),(0,r.jsx)(`span`,{children:e.title||e.url})]},t):(0,r.jsxs)(`span`,{class:`cf-source`,title:e.title,children:[(0,r.jsx)(h,{}),(0,r.jsx)(`span`,{children:e.title})]},t)),a>0&&(0,r.jsxs)(`span`,{class:`cf-source cf-source--more`,children:[`+`,a,` more`]})]})},he=({replies:e,onPick:t})=>e&&e.length>0?(0,r.jsx)(`div`,{class:`cf-chips`,children:e.map((e,n)=>(0,r.jsx)(`button`,{type:`button`,class:`cf-chip`,onClick:()=>t(e),children:e},n))}):null,ge=({persona:e,starters:t,onPick:n,onFocusComposer:i,speaking:a,voiceState:o=`idle`,replyPending:s=!1,pinned:c=!1,muted:l=!1,onToggleMute:u,onEndCall:d,onTalkNow:f,showTalkNow:m=!1,micLevel:h=0,theaterMode:g=!1,onToggleTheater:_,onMinimize:v,audioDevices:ee=[],selectedAudioDeviceId:y=``,onSelectAudioDevice:b,connectingOnly:x=!1})=>{if(!e||!(e.talkbackMode===`avatar`||e.widgetModule===`assistant`||e.allowVoiceInput))return null;let S=e.agentAvatarUrl?.trim()||``,C=e.assistantMediaUrl?.trim()||S,te=e.assistantMediaKind===`video`&&!!C,ne=t.slice(0,3),w=o!==`idle`,T=o===`idle`?`Speak with ${e.agentName}`:`End voice chat`,re=c&&!w&&!a,ie=o===`connecting`||o===`processing`||w&&s,E=[`cf-assistant-card__stage`,`cf-assistant-card__stage--local`,w?`is-live`:``,ie?`is-thinking`:``,o===`listening`&&!l?`is-listening`:``,a||o===`speaking`?`is-speaking`:``,l?`is-muted`:``].filter(Boolean).join(` `),D=o===`listening`&&!l?{"--cf-listen":String(Math.max(.18,Math.min(1,h*8)))}:void 0,O=ie&&(0,r.jsxs)(`span`,{class:`cf-call-ripple`,"aria-hidden":`true`,children:[(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{})]});if(x)return(0,r.jsxs)(`div`,{class:`cf-assistant-card cf-assistant-card--connecting`,"aria-live":`polite`,children:[(0,r.jsxs)(`div`,{class:`cf-assistant-card__connecting-avatar`,children:[S?(0,r.jsx)(`img`,{src:S,alt:``}):(0,r.jsx)(`span`,{class:`cf-assistant-card__connecting-face${N(e)}`,children:P(e)}),O]}),(0,r.jsxs)(`div`,{class:`cf-assistant-card__connecting-copy`,children:[(0,r.jsx)(`span`,{class:`cf-assistant-card__connecting-eyebrow`,children:e.agentName}),(0,r.jsx)(`strong`,{children:`Connecting with the AI…`})]})]});let k=w&&d&&(0,r.jsx)(Re,{voiceState:o,muted:l,onToggleMute:u??(()=>{}),onEndCall:d,onTalkNow:f??(()=>{}),showTalkNow:m,micLevel:h,theaterMode:g,onToggleTheater:_??(()=>{}),onMinimize:v??(()=>{}),audioDevices:ee,selectedAudioDeviceId:y,onSelectAudioDevice:b??(()=>{})});return re?(0,r.jsx)(`div`,{class:`cf-assistant-card cf-assistant-card--pinned cf-assistant-card--compact`,children:(0,r.jsxs)(`button`,{type:`button`,class:`cf-assistant-card__compact-speak`,onClick:i,children:[S?(0,r.jsx)(`span`,{class:`cf-assistant-card__compact-avatar`,children:(0,r.jsx)(`img`,{src:S,alt:``})}):null,(0,r.jsx)(`span`,{class:`cf-assistant-card__compact-mic`,"aria-hidden":`true`,children:(0,r.jsx)(p,{})}),(0,r.jsx)(`span`,{class:`cf-assistant-card__compact-label`,children:T})]})}):(0,r.jsxs)(`div`,{class:`cf-assistant-card ${c?`cf-assistant-card--pinned`:``} ${a?`is-speaking`:``}`,children:[(C||e.allowVoiceInput)&&(0,r.jsxs)(`div`,{class:E,style:D,children:[(0,r.jsxs)(`div`,{class:`cf-assistant-card__media ${C?`cf-assistant-card__media--uploaded`:`cf-assistant-card__media--generated`}${N(e)}`,children:[te?(0,r.jsx)(`video`,{src:C,muted:!0,loop:!0,playsInline:!0,autoPlay:!0}):C?(0,r.jsx)(`img`,{src:C,alt:``}):(0,r.jsx)(`div`,{class:`cf-assistant-card__avatar-stage${N(e)}`,children:(0,r.jsxs)(`div`,{class:`cf-assistant-card__face`,children:[(0,r.jsx)(`span`,{class:`cf-assistant-card__initials`,children:P(e)}),(0,r.jsx)(`span`,{class:`cf-assistant-card__eye cf-assistant-card__eye--left`}),(0,r.jsx)(`span`,{class:`cf-assistant-card__eye cf-assistant-card__eye--right`}),(0,r.jsx)(`span`,{class:`cf-assistant-card__mouth`})]})}),C&&!te&&(0,r.jsx)(`span`,{class:`cf-assistant-card__mouth cf-assistant-card__mouth--overlay`}),(0,r.jsx)(`span`,{class:`cf-avatar-aura cf-avatar-aura--one`,"aria-hidden":`true`}),(0,r.jsx)(`span`,{class:`cf-avatar-aura cf-avatar-aura--two`,"aria-hidden":`true`}),(0,r.jsx)(`span`,{class:`cf-avatar-listen-ring`,"aria-hidden":`true`}),(0,r.jsxs)(`span`,{class:`cf-avatar-wave`,"aria-hidden":`true`,children:[(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{})]})]}),O,e.allowVoiceInput&&(k||(0,r.jsxs)(`button`,{type:`button`,class:`cf-assistant-card__speak`,onClick:i,children:[(0,r.jsx)(p,{}),T]}))]}),!c&&(0,r.jsxs)(r.Fragment,{children:[e.agentDescription?(0,r.jsx)(`p`,{class:`cf-assistant-card__copy`,children:e.agentDescription}):(0,r.jsx)(`p`,{class:`cf-assistant-card__copy`,children:e.greeting}),ne.length>0&&(0,r.jsx)(`div`,{class:`cf-assistant-card__chips`,children:ne.map(e=>(0,r.jsx)(`button`,{type:`button`,class:`cf-assistant-card__chip`,onClick:()=>n(e),children:e},e))}),e.disclaimerText||e.assistantPrivacyUrl?(0,r.jsxs)(`p`,{class:`cf-assistant-card__privacy`,children:[e.disclaimerText||`This chat may be recorded for quality and support.`,e.assistantPrivacyUrl?(0,r.jsxs)(r.Fragment,{children:[` `,(0,r.jsx)(`a`,{href:e.assistantPrivacyUrl,target:`_blank`,rel:`noopener noreferrer nofollow`,children:`Privacy Policy`})]}):null]}):null]})]})},_e={public_book_demo:{type:`book-demo`,label:`Book a demo`,description:`Pick a time or request a demo from the team.`,Icon:g},public_submit_inquiry:{type:`inquiry`,label:`Leave a message`,description:`Send your question and contact details.`,Icon:_},public_request_callback:{type:`request-callback`,label:`Request a callback`,description:`Share your phone number and best time to call.`,Icon:v},public_subscribe_newsletter:{type:`subscribe-newsletter`,label:`Subscribe`,description:`Get product updates and useful announcements.`,Icon:_}},ve=({field:e,value:t,onInput:n})=>{let i=e.placeholder??e.label,a={class:`cf-form__input`,placeholder:e.required?`${i} *`:i,value:t,"aria-label":e.label,onInput:e=>n(e.target.value)};return e.kind===`textarea`?(0,r.jsx)(`textarea`,{rows:2,...a}):(0,r.jsx)(`input`,{type:e.kind,...a})},ye=({spec:t,visitor:i,onSubmit:a,onCancel:o})=>{let s=e.c(),c=de(),[l,u]=(0,n.useState)(()=>{let e={};for(let n of t.fields)n.identity&&i[n.identity]&&(e[n.key]=i[n.identity]);return e}),[d,f]=(0,n.useState)(`idle`),[p,m]=(0,n.useState)(``),h=e=>!!(e.identity&&i[e.identity]?.trim()),g=t.fields.filter(e=>!h(e)),_=g.every(e=>!e.required||(l[e.key]?.trim()??``)!==``),v=i.email||i.name||``;return d===`done`?(0,r.jsxs)(`div`,{class:`cf-form cf-form--done`,children:[(0,r.jsx)(S,{}),(0,r.jsx)(`span`,{children:p})]}):(0,r.jsxs)(`div`,{class:`cf-form`,ref:c,children:[(0,r.jsx)(`div`,{class:`cf-form__title`,children:t.title}),g.length===0&&v&&(0,r.jsxs)(`div`,{class:`cf-form__as`,children:[`as `,v]}),g.map(e=>(0,r.jsx)(ve,{field:e,value:l[e.key]??``,onInput:t=>u(n=>({...n,[e.key]:t}))},e.key)),d===`error`&&(0,r.jsx)(`div`,{class:`cf-form__err`,children:s.formError}),(0,r.jsxs)(`div`,{class:`cf-form__actions`,children:[o&&(0,r.jsx)(`button`,{type:`button`,class:`cf-form__cancel`,onClick:o,children:`Cancel`}),(0,r.jsx)(`button`,{type:`button`,class:`cf-form__submit`,disabled:!_||d===`submitting`,onClick:async()=>{if(!_||d===`submitting`)return;f(`submitting`);let e={},n={};for(let r of t.fields){let t=l[r.key]?.trim();t&&(e[r.key]=t,r.identity&&(n[r.identity]=t))}try{m((await a(e,n)).note||s.formThanks),f(`done`)}catch{f(`error`)}},children:d===`submitting`?s.sending:t.submit})]})]})},be=e=>String(e).padStart(2,`0`),xe=()=>{let e=[];for(let t=9;t<=17;t++)e.push(`${be(t)}:00`),e.push(`${be(t)}:30`);return e},Se=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})},Ce=(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}`}},L=(e,t)=>{let[n,r]=t.split(`:`).map(Number);return new Date(e.getFullYear(),e.getMonth(),e.getDate(),n??0,r??0)},R=({visitor:t,onSubmit:i,onCancel:a,onDemoSlots:o,scheduler:s})=>{let l=e.c(),u=de(),d=(0,n.useMemo)(()=>Se(14),[]),f=(0,n.useMemo)(()=>xe(),[]),[p,m]=(0,n.useState)((0,n.useMemo)(()=>{let e=Date.now();for(let t=0;t<d.length;t++)if(f.some(n=>L(d[t],n).getTime()>e))return t;return 0},[d,f])),[g,_]=(0,n.useState)(null),[v,ee]=(0,n.useState)(t.name??``),[y,b]=(0,n.useState)(t.email??``),[x,C]=(0,n.useState)(`idle`),[te,ne]=(0,n.useState)(``),[w,T]=(0,n.useState)(``),[re,ie]=(0,n.useState)(``),E=s?.connected&&s.mode===`link`,D=async()=>{if(x===`submitting`||!t.name?.trim()&&!v.trim()||!t.email?.trim()&&!y.trim())return;C(`submitting`),T(``);let e={};y.trim()&&(e.email=y.trim()),v.trim()&&(e.name=v.trim());try{let t=await i({...y.trim()?{visitorEmail:y.trim()}:{},...v.trim()?{visitorName:v.trim()}:{}},e),n=t.booking?.schedulingLink||s?.bookingLink||``;if(!n){C(`error`);return}try{window.open(n,`_blank`,`noopener,noreferrer`)}catch{}ie(n),ne(t.note||l.bookingLinkOpened),C(`done`)}catch{C(`error`)}},[O,k]=(0,n.useState)(new Set),[ae,oe]=(0,n.useState)([]),[se,A]=(0,n.useState)(0),[ce,j]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(!o)return;let e=!0,t=new Date,n=new Date;return n.setDate(n.getDate()+15),o(t.toISOString(),n.toISOString()).then(t=>{e&&(k(new Set(t.taken.map(e=>Date.parse(e)).filter(e=>!Number.isNaN(e)))),oe(t.busy.map(e=>[Date.parse(e.start),Date.parse(e.end)]).filter(([e,t])=>!Number.isNaN(e)&&!Number.isNaN(t))))}).catch(()=>{}),()=>{e=!1}},[o,se]);let le=!!t.email?.trim(),ue=!!t.name?.trim(),M=!!g&&(ue||v.trim()!==``)&&(le||y.trim()!==``),N=t.email||t.name||``,fe=e=>O.has(L(d[p],e).getTime()),P=e=>L(d[p],e).getTime()<=Date.now(),F=e=>{let t=L(d[p],e).getTime(),n=t+18e5;return ae.some(([e,r])=>t<r&&n>e)},pe=async()=>{if(!M||x===`submitting`||!g)return;C(`submitting`),j(!1),T(``);let t=L(d[p],g),n=Ce(d[p],g),r={};y.trim()&&(r.email=y.trim()),v.trim()&&(r.name=v.trim());try{let a=await i({preferredAt:n,slotAt:t.toISOString(),...y.trim()?{visitorEmail:y.trim()}:{},...v.trim()?{visitorName:v.trim()}:{}},r);a.booking?.confirmed?(ne(a.note||e.s(l.bookingConfirmed,{when:n})),ie(a.booking.meetingUrl||a.booking.eventLink||``)):ne(a.note||e.s(l.bookingRequested,{when:n})),C(`done`)}catch(e){if(e?.status===409)k(e=>new Set(e).add(t.getTime())),_(null),j(!0),A(e=>e+1),C(`idle`);else{let t=e?.message;T(t&&t.length<120?t:``),C(`error`)}}};return x===`done`?(0,r.jsxs)(`div`,{class:`cf-form cf-form--done`,children:[(0,r.jsx)(S,{}),(0,r.jsx)(`span`,{children:te}),re&&(0,r.jsxs)(`a`,{class:`cf-booking__link`,href:re,target:`_blank`,rel:`noopener noreferrer`,children:[E?l.bookingOpenScheduler:l.bookingMeetingLink,` `,(0,r.jsx)(h,{})]})]}):E?(0,r.jsxs)(`div`,{class:`cf-form cf-booking`,ref:u,children:[(0,r.jsx)(`div`,{class:`cf-form__title`,children:c[`book-demo`].title}),(0,r.jsx)(`div`,{class:`cf-booking__hint`,children:e.s(l.bookingViaProvider,{provider:s?.label??`the scheduler`})}),le?N?(0,r.jsxs)(`div`,{class:`cf-form__as`,children:[`as `,N]}):null:(0,r.jsxs)(r.Fragment,{children:[!t.name?.trim()&&(0,r.jsx)(`input`,{class:`cf-form__input`,type:`text`,placeholder:`${l.handoffName} *`,value:v,"aria-label":l.handoffName,onInput:e=>ee(e.target.value)}),(0,r.jsx)(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${l.handoffEmail} *`,value:y,"aria-label":l.handoffEmail,onInput:e=>b(e.target.value)})]}),x===`error`&&(0,r.jsx)(`div`,{class:`cf-form__err`,children:w||l.formError}),(0,r.jsxs)(`div`,{class:`cf-form__actions`,children:[a&&(0,r.jsx)(`button`,{type:`button`,class:`cf-form__cancel`,onClick:a,children:l.cancel}),(0,r.jsx)(`button`,{type:`button`,class:`cf-form__submit`,disabled:x===`submitting`||!t.name?.trim()&&v.trim()===``||!le&&y.trim()===``,onClick:D,children:x===`submitting`?l.sending:l.bookingOpenScheduler})]})]}):(0,r.jsxs)(`div`,{class:`cf-form cf-booking`,ref:u,children:[(0,r.jsx)(`div`,{class:`cf-form__title`,children:c[`book-demo`].title}),(0,r.jsxs)(`div`,{class:`cf-booking__hint`,children:[l.bookingPickTime,` · `,(0,r.jsx)(`span`,{class:`cf-booking__dur`,children:l.bookingDuration})]}),(0,r.jsx)(`div`,{class:`cf-booking__dates`,role:`tablist`,"aria-label":`Pick a day`,children:d.map((e,t)=>(0,r.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t===p,class:`cf-booking__date ${t===p?`is-selected`:``}`,onClick:()=>{m(t),_(null)},children:[(0,r.jsx)(`span`,{class:`cf-booking__dow`,children:e.toLocaleDateString(void 0,{weekday:`short`})}),(0,r.jsx)(`span`,{class:`cf-booking__dom`,children:e.getDate()})]},t))}),(0,r.jsx)(`div`,{class:`cf-booking__slots`,role:`listbox`,"aria-label":`Pick a time`,children:f.map(e=>{let t=P(e),n=F(e),i=fe(e),a=i||t||n;return(0,r.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":g===e,disabled:a,title:t?`Earlier today`:n?`Busy on the calendar`:i?`Already booked`:void 0,class:`cf-booking__slot ${g===e?`is-selected`:``} ${a?`is-taken`:``}`,onClick:()=>_(e),children:e},e)})}),ce&&(0,r.jsx)(`div`,{class:`cf-form__err`,children:l.bookingSlotTaken}),N?(0,r.jsxs)(`div`,{class:`cf-form__as`,children:[`as `,N]}):null,!ue&&(0,r.jsx)(`input`,{class:`cf-form__input`,type:`text`,placeholder:`${l.handoffName} *`,value:v,"aria-label":l.handoffName,onInput:e=>ee(e.target.value)}),!le&&(0,r.jsx)(r.Fragment,{children:(0,r.jsx)(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${l.handoffEmail} *`,value:y,"aria-label":l.handoffEmail,onInput:e=>b(e.target.value)})}),x===`error`&&(0,r.jsx)(`div`,{class:`cf-form__err`,children:w||l.formError}),(0,r.jsxs)(`div`,{class:`cf-form__actions`,children:[a&&(0,r.jsx)(`button`,{type:`button`,class:`cf-form__cancel`,onClick:a,children:l.cancel}),(0,r.jsx)(`button`,{type:`button`,class:`cf-form__submit`,disabled:!M||x===`submitting`,onClick:pe,children:x===`submitting`?l.sending:c[`book-demo`].submit})]})]})},we=({actions:e,visitor:t,onSubmitForm:i,onDemoSlots:a,scheduler:o,exclude:s=[]})=>{let[l,u]=(0,n.useState)(null),[f,p]=(0,n.useState)(!1),m=(e??[]).map(e=>_e[e]).filter(e=>!!e&&!s.includes(e.type));if(m.length===0)return null;let h=()=>{u(null),p(!1)},g=()=>u(null);if(l===`book-demo`)return(0,r.jsxs)(`div`,{class:`cf-action-drawer is-open`,role:`dialog`,"aria-label":`Book a demo`,children:[(0,r.jsx)(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),(0,r.jsxs)(`div`,{class:`cf-action-drawer__head`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`span`,{class:`cf-action-drawer__eyebrow`,children:`Contact options`}),(0,r.jsx)(`strong`,{children:`Book a demo`})]}),(0,r.jsx)(`button`,{type:`button`,class:`cf-action-drawer__close`,onClick:g,children:(0,r.jsx)(y,{})})]}),(0,r.jsx)(R,{visitor:t,onCancel:g,onSubmit:(e,t)=>i(`book-demo`,e,t),onDemoSlots:a,scheduler:o})]});if(l){let e=m.find(e=>e.type===l);return(0,r.jsxs)(`div`,{class:`cf-action-drawer is-open`,role:`dialog`,"aria-label":e?.label??`Contact`,children:[(0,r.jsx)(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),(0,r.jsxs)(`div`,{class:`cf-action-drawer__head`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`span`,{class:`cf-action-drawer__eyebrow`,children:`Contact options`}),(0,r.jsx)(`strong`,{children:e?.label??c[l].title})]}),(0,r.jsx)(`button`,{type:`button`,class:`cf-action-drawer__close`,onClick:g,children:(0,r.jsx)(y,{})})]}),(0,r.jsx)(ye,{spec:c[l],visitor:t,onCancel:g,onSubmit:(e,t)=>i(l,e,t)})]})}return f?(0,r.jsxs)(`div`,{class:`cf-action-drawer cf-action-drawer--menu`,children:[(0,r.jsx)(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),(0,r.jsxs)(`div`,{class:`cf-action-drawer__head`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`span`,{class:`cf-action-drawer__eyebrow`,children:`Need help?`}),(0,r.jsx)(`strong`,{children:`Choose what you want to do`})]}),(0,r.jsx)(`button`,{type:`button`,class:`cf-action-drawer__close`,onClick:h,children:(0,r.jsx)(y,{})})]}),(0,r.jsx)(`div`,{class:`cf-action-drawer__grid`,children:m.map(({type:e,label:t,description:n,Icon:i})=>(0,r.jsxs)(`button`,{type:`button`,class:`cf-action-card`,onClick:()=>u(e),children:[(0,r.jsx)(`span`,{class:`cf-action-card__icon`,children:(0,r.jsx)(i,{})}),(0,r.jsxs)(`span`,{class:`cf-action-card__copy`,children:[(0,r.jsx)(`strong`,{children:t}),(0,r.jsx)(`small`,{children:n})]}),(0,r.jsx)(d,{})]},e))}),(0,r.jsx)(`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.`})]}):(0,r.jsxs)(`button`,{type:`button`,class:`cf-action-trigger`,onClick:()=>p(!0),children:[(0,r.jsx)(`span`,{class:`cf-action-trigger__icon`,children:(0,r.jsx)(_,{})}),(0,r.jsxs)(`span`,{class:`cf-action-trigger__copy`,children:[(0,r.jsx)(`strong`,{children:`Contact options`}),(0,r.jsx)(`small`,{children:`Demo, message, callback`})]}),(0,r.jsx)(d,{})]})},Te=({hasEmail:t,visitor:i,question:a,onSubmitForm:o})=>{let s=e.c(),[c,l]=(0,n.useState)(!1),[u,d]=(0,n.useState)(!1),[f,p]=(0,n.useState)(i.name??``),[m,h]=(0,n.useState)(i.email??``);if(t)return(0,r.jsxs)(`div`,{class:`cf-handoff cf-handoff--done`,children:[(0,r.jsx)(S,{}),(0,r.jsx)(`span`,{children:`We’ve alerted the team. If someone is available, they can continue here.`})]});if(c){let t=i.email||m;return(0,r.jsxs)(`div`,{class:`cf-handoff cf-handoff--done`,children:[(0,r.jsx)(S,{}),(0,r.jsx)(`span`,{children:e.s(s.handoffShared,{email:t})})]})}let g=async()=>{if(!(!m.trim()||u)){d(!0);try{await o(`inquiry`,{visitorEmail:m.trim(),...f.trim()?{visitorName:f.trim()}:{},message:a||`I had a question the assistant couldn’t answer.`,subject:`Help request from chat`},{email:m.trim(),name:f.trim()||void 0}),l(!0)}catch{d(!1)}}};return(0,r.jsxs)(`div`,{class:`cf-handoff`,children:[(0,r.jsx)(`div`,{class:`cf-handoff__title`,children:s.handoffTitle}),(0,r.jsx)(`input`,{class:`cf-form__input`,type:`text`,placeholder:s.handoffName,value:f,"aria-label":s.handoffName,onInput:e=>p(e.target.value)}),(0,r.jsx)(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${s.handoffEmail} *`,value:m,"aria-label":s.handoffEmail,onInput:e=>h(e.target.value)}),(0,r.jsx)(`button`,{type:`button`,class:`cf-form__submit`,disabled:!m.trim()||u,onClick:g,children:u?s.sending:s.handoffNotify})]})},Ee=({text:t})=>{let i=e.c(),[a,o]=(0,n.useState)(!1);return(0,r.jsxs)(`button`,{type:`button`,class:`cf-tool`,onClick:async()=>{try{await navigator.clipboard.writeText(t),o(!0),setTimeout(()=>o(!1),1500)}catch{}},"aria-label":i.copy,children:[a?(0,r.jsx)(S,{}):(0,r.jsx)(C,{}),a?i.copied:i.copy]})},De=({items:e,onPick:t})=>e.length===0?null:(0,r.jsx)(`div`,{class:`cf-starters`,children:e.map((e,n)=>(0,r.jsx)(`button`,{type:`button`,class:`cf-starter`,onClick:()=>t(e),children:e},n))}),Oe=({items:e})=>{let t=e.filter(e=>e.label.trim()&&e.url.trim()).slice(0,4);return t.length===0?null:(0,r.jsx)(`div`,{class:`cf-featured-links`,children:t.map((e,t)=>(0,r.jsxs)(`a`,{class:`cf-featured-link`,href:e.url,target:`_blank`,rel:`noopener noreferrer nofollow`,title:e.label,children:[(0,r.jsx)(h,{}),(0,r.jsx)(`span`,{children:e.label})]},`${e.url}-${t}`))})},z=({msg:t,onRate:i})=>{let a=e.c(),[o,s]=(0,n.useState)(!1),[c,l]=(0,n.useState)(``),u=t.feedback,d=()=>{i(t.id,`up`),s(!1)},f=()=>{i(t.id,`down`),s(!0)},p=()=>{i(t.id,`down`,c.trim()),s(!1)};return(0,r.jsxs)(`div`,{class:`cf-feedback`,children:[(0,r.jsxs)(`div`,{class:`cf-feedback__row`,children:[(0,r.jsx)(`button`,{type:`button`,class:`cf-feedback__btn ${u===`up`?`is-active`:``}`,"aria-label":a.feedbackHelpful,"aria-pressed":u===`up`,onClick:d,children:(0,r.jsx)(ie,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-feedback__btn ${u===`down`?`is-active`:``}`,"aria-label":a.feedbackNotHelpful,"aria-pressed":u===`down`,onClick:f,children:(0,r.jsx)(E,{})}),u&&!o&&(0,r.jsx)(`span`,{class:`cf-feedback__thanks`,children:a.feedbackThanks})]}),o&&u===`down`&&(0,r.jsxs)(`div`,{class:`cf-feedback__comment`,children:[(0,r.jsx)(`textarea`,{class:`cf-feedback__input`,rows:2,placeholder:a.feedbackCommentPlaceholder,value:c,onInput:e=>l(e.target.value)}),(0,r.jsx)(`button`,{type:`button`,class:`cf-feedback__send`,onClick:p,children:a.feedbackSend})]})]})},ke=({msg:t,persona:n,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=e.c(),_=t.role===`user`,v=t.role===`system`,ee=t.requestedContactFields?.includes(`email`)===!0,y=i&&!_&&!v&&!!(t.handoffOffered||ee),b=y&&!o?[`inquiry`]:[],x=!t.pending&&!t.streaming;return v?(0,r.jsx)(`div`,{class:`cf-msg cf-msg--system`,children:(0,r.jsxs)(`div`,{class:`cf-system-event`,children:[(0,r.jsx)(`div`,{class:`cf-system-event__mark`,children:(0,r.jsx)(F,{persona:n,small:!0})}),(0,r.jsx)(`div`,{class:`cf-system-event__text`,children:t.content}),t.createdAt&&(0,r.jsx)(`div`,{class:`cf-system-event__time`,children:new Date(t.createdAt).toLocaleString(void 0,{day:`2-digit`,month:`short`,year:`numeric`,hour:`numeric`,minute:`2-digit`})})]})}):(0,r.jsxs)(`div`,{class:`cf-msg cf-msg--${_?`user`:`agent`}`,children:[!_&&(0,r.jsx)(F,{persona:n,small:!0}),(0,r.jsxs)(`div`,{class:`cf-msg__col`,children:[t.pending&&t.content===``?(0,r.jsx)(pe,{}):t.imageUrl?(0,r.jsxs)(`div`,{class:`cf-msg__bubble cf-msg__bubble--media`,children:[(0,r.jsx)(`img`,{class:`cf-msg__media`,src:t.imageUrl,alt:`GIF`}),t.content&&(0,r.jsx)(`span`,{class:`cf-msg__caption`,children:t.content})]}):(0,r.jsxs)(`div`,{class:`cf-msg__bubble`,children:[_?t.content:e.a(t.content),t.streaming&&(0,r.jsx)(`span`,{class:`cf-caret`,"aria-hidden":`true`})]}),!_&&t.visualization?(0,r.jsx)(Ae,{visualization:t.visualization,onExpand:h?()=>h(t.id):void 0,expandControlId:t.id}):null,!_&&t.visualization?.explanation?(0,r.jsx)(ue,{explanation:t.visualization.explanation,onFollowUp:l,showLead:!t.content.toLocaleLowerCase().includes(t.visualization.explanation.headline.toLocaleLowerCase())}):null,_&&t.attachmentName&&(0,r.jsxs)(`div`,{class:`cf-attach-chip`,title:t.attachmentName,children:[(0,r.jsx)(w,{}),(0,r.jsx)(`span`,{children:t.attachmentName})]}),!_&&(0,r.jsxs)(r.Fragment,{children:[x&&(t.error||t.content)&&(0,r.jsx)(`div`,{class:`cf-msg__tools`,children:t.error?(0,r.jsxs)(`button`,{type:`button`,class:`cf-tool`,onClick:()=>f(t.id,t.retryText??``),children:[(0,r.jsx)(te,{}),g.retry]}):(0,r.jsx)(Ee,{text:t.content})}),x&&p&&!t.error&&t.content&&(0,r.jsx)(z,{msg:t,onRate:m}),(0,r.jsx)(I,{msg:t}),i&&(0,r.jsx)(he,{replies:t.suggestedReplies,onPick:l}),y&&(0,r.jsx)(Te,{hasEmail:o,visitor:a,question:s,onSubmitForm:u}),c&&(0,r.jsx)(we,{actions:t.availableActions,visitor:a,onSubmitForm:u,onDemoSlots:d,scheduler:n?.scheduler,exclude:b})]})]})]})},Ae=({visualization:t,expanded:i=!1,onExpand:a,onClose:o,expandControlId:s})=>{let c=(0,n.useMemo)(()=>e.p(t),[t]),l=t.rows??[],u=t.columns??[];if(l.length===0)return(0,r.jsx)(le,{});let d=(0,r.jsx)(ce,{model:t.model,answeredAt:t.freshness?.answeredAt,reportingPeriod:t.reportingPeriod,filters:t.appliedFilters,rowCount:t.rowCount??l.length});if(t.presentation===`table`||!t.presentation&&t.type===`table`)return!t.tableAvailable||u.length===0?null:(0,r.jsxs)(`div`,{class:`cf-analytics-visualization${i?` is-expanded`:``}`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-visualization__header`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`div`,{class:`cf-analytics-visualization__title`,children:t.title?.trim()||`Result details`}),d]}),(0,r.jsxs)(`div`,{class:`cf-analytics-visualization__actions`,children:[t.downloadAvailable?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__download`,onClick:()=>B(u,l),children:`Download`}):null,i&&o?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:o,children:(0,r.jsx)(y,{})}):a&&t.expandable!==!1?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__expand`,"aria-label":`Expand table`,"data-visualization-message":s,onClick:a,children:(0,r.jsx)(D,{})}):null]})]}),(0,r.jsx)(e.l,{rows:l,columns:u,maxRows:5,expanded:i,classNames:{wrap:`cf-analytics-table-wrap`,table:`cf-analytics-table`,note:`cf-analytics-table-note`}})]});let f=t.chartRecommendation?.valueFields?.[0]??t.valueFields?.[0]??t.value??u[1];if(t.presentation===`kpi`||!t.presentation&&t.type===`kpi`){let n=l[0]?.[f??u[0]??``],a=typeof n==`number`?n:Number(n),s=t.columnMetadata?.find(e=>e.key===f),c=Number.isFinite(a)?e.m(a,s,t):String(n??`No value`);return(0,r.jsxs)(`div`,{class:`cf-analytics-visualization${i?` is-expanded`:``}`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-visualization__header`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`div`,{class:`cf-analytics-visualization__title`,children:`Live metric`}),d]}),i&&o?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:o,children:(0,r.jsx)(y,{})}):null]}),(0,r.jsx)(j,{label:s?.label??f??`Current value`,value:c,detail:t.explanation?.summary})]})}return c?(0,r.jsxs)(`div`,{class:`cf-analytics-visualization${i?` is-expanded`:``}`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-visualization__header`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`div`,{class:`cf-analytics-visualization__title`,children:c.title}),d]}),i&&o?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:o,children:(0,r.jsx)(y,{})}):a&&t.expandable!==!1?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__expand`,"aria-label":`Expand chart`,"data-visualization-message":s,onClick:a,children:(0,r.jsx)(D,{})}):null]}),(0,r.jsx)(e.f,{model:c,expanded:i}),(0,r.jsx)(`p`,{class:`cf-analytics-chart__summary`,children:c.summary}),t.downloadAvailable?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__download`,onClick:()=>B(u,l),children:`Download this data`}):null]}):null},B=(t,n)=>{if(typeof document>`u`||t.length===0)return;let r=e.d(n,t),i=URL.createObjectURL(new Blob([r],{type:`text/csv;charset=utf-8`})),a=document.createElement(`a`);a.href=i,a.download=`analytics-result.csv`,a.click(),URL.revokeObjectURL(i)},V=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result).split(`,`)[1]??``),r.onerror=n,r.readAsDataURL(e)}),je=({onPick:e})=>(0,r.jsx)(`div`,{class:`cf-picker cf-emoji`,children:s.map(t=>(0,r.jsxs)(`div`,{class:`cf-emoji__group`,children:[(0,r.jsx)(`div`,{class:`cf-emoji__label`,children:t.name}),(0,r.jsx)(`div`,{class:`cf-emoji__grid`,children:t.emojis.map((t,n)=>(0,r.jsx)(`button`,{type:`button`,class:`cf-emoji__btn`,onClick:()=>e(t),"aria-label":t,children:t},n))})]},t.name))}),H=({onSearch:t,onPick:i})=>{let a=e.c(),[o,s]=(0,n.useState)(``),[c,l]=(0,n.useState)([]),[u,d]=(0,n.useState)(!0);return(0,n.useEffect)(()=>{let e=!0;d(!0);let n=setTimeout(()=>{t(o).then(t=>e&&(l(t),d(!1))).catch(()=>e&&(l([]),d(!1)))},300);return()=>{e=!1,clearTimeout(n)}},[o,t]),(0,r.jsxs)(`div`,{class:`cf-picker cf-gif`,children:[(0,r.jsx)(`input`,{class:`cf-gif__search`,placeholder:a.searchGifs,value:o,"aria-label":a.searchGifs,onInput:e=>s(e.target.value)}),(0,r.jsx)(`div`,{class:`cf-gif__grid`,children:u?(0,r.jsx)(`div`,{class:`cf-gif__hint`,children:a.searchingGifs}):c.length===0?(0,r.jsx)(`div`,{class:`cf-gif__hint`,children:a.noGifs}):c.map(e=>(0,r.jsx)(`button`,{type:`button`,class:`cf-gif__item`,onClick:()=>i(e.url),"aria-label":e.alt,children:(0,r.jsx)(`img`,{src:e.preview,alt:e.alt,loading:`lazy`})},e.id))}),(0,r.jsx)(`div`,{class:`cf-gif__powered`,children:`via Tenor`})]})},Me=8*1024*1024,Ne=`image/png,image/jpeg,image/webp,image/gif,application/pdf`,Pe=12e3,Fe=250,U=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``}},Ie=.004,W=({muted:e,listening:t,micLevel:n,onToggleMute:i})=>(0,r.jsx)(`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:i,style:t?{"--cf-wave":String(Math.max(.2,Math.min(1,n*6)))}:void 0,children:e?(0,r.jsx)(m,{}):(0,r.jsx)(p,{})}),Le=({audioDevices:e,selectedAudioDeviceId:t,onSelectAudioDevice:i})=>{let[a,o]=(0,n.useState)(!1),s=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!a)return;let e=e=>{s.current&&!e.composedPath().includes(s.current)&&o(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[a]);let c=[{deviceId:``,label:`Default microphone`},...e];return(0,r.jsxs)(`div`,{class:`cf-call-more`,ref:s,children:[(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--microphones`,"aria-label":`Choose microphone`,"aria-expanded":a,onClick:()=>o(e=>!e),children:(0,r.jsx)(d,{})}),a&&(0,r.jsxs)(`div`,{class:`cf-call-menu`,role:`menu`,children:[(0,r.jsx)(`div`,{class:`cf-call-menu__label`,children:`Microphone`}),c.map(e=>(0,r.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":e.deviceId===t,class:`cf-call-menu__item ${e.deviceId===t?`is-active`:``}`,onClick:()=>{i(e.deviceId),o(!1)},children:[e.deviceId===t?(0,r.jsx)(S,{}):(0,r.jsx)(`span`,{class:`cf-call-menu__spacer`}),(0,r.jsx)(`span`,{children:e.label})]},e.deviceId))]})]})},Re=({voiceState:e,muted:t,onToggleMute:n,onEndCall:i,onTalkNow:a,showTalkNow:o,micLevel:s,theaterMode:c,onToggleTheater:l,onMinimize:u,audioDevices:d,selectedAudioDeviceId:f,onSelectAudioDevice:m})=>(0,r.jsxs)(`div`,{class:`cf-call-controls`,children:[(0,r.jsx)(W,{muted:t,listening:e===`listening`&&!t,micLevel:s,onToggleMute:n}),(0,r.jsx)(Le,{audioDevices:d,selectedAudioDeviceId:f,onSelectAudioDevice:m}),o&&(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--talk`,"aria-label":`Talk now`,onClick:a,children:(0,r.jsx)(p,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn`,"aria-label":c?`Exit expanded view`:`Expand view`,"aria-pressed":c,onClick:l,children:c?(0,r.jsx)(O,{}):(0,r.jsx)(D,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn`,"aria-label":`Minimize voice chat`,onClick:u,children:(0,r.jsx)(k,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--end`,"aria-label":`End voice chat`,onClick:i,children:(0,r.jsx)(T,{})})]}),ze=({persona:e,voiceState:t,muted:n,onToggleMute:i,onEndCall:a,micLevel:o,onExpand:s})=>{let c=e=>e.stopPropagation(),l=e?.assistantMediaUrl?.trim()||e?.agentAvatarUrl?.trim()||``,u=e?.assistantMediaKind===`video`&&!!l,d=e?.agentName||`Assistant`;return(0,r.jsxs)(`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,o*8)))}:void 0,role:`button`,tabIndex:0,"aria-label":`Reopen voice chat with ${d}`,onClick:s,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s())},children:[(0,r.jsx)(`div`,{class:`cf-floating-call-card__media`,"aria-hidden":`true`,children:l?u?(0,r.jsx)(`video`,{src:l,muted:!0,loop:!0,playsInline:!0,autoPlay:!0}):(0,r.jsx)(`img`,{src:l,alt:``}):(0,r.jsxs)(`div`,{class:`cf-floating-call-card__avatar${N(e)}`,children:[(0,r.jsx)(`span`,{children:P(e)}),(0,r.jsx)(`span`,{class:`cf-floating-call-card__eye cf-floating-call-card__eye--left`}),(0,r.jsx)(`span`,{class:`cf-floating-call-card__eye cf-floating-call-card__eye--right`}),(0,r.jsx)(`span`,{class:`cf-floating-call-card__mouth`})]})}),(0,r.jsx)(`div`,{class:`cf-floating-call-card__shade`,"aria-hidden":`true`}),(0,r.jsxs)(`div`,{class:`cf-floating-call-card__controls`,onClick:c,onKeyDown:c,role:`presentation`,children:[(0,r.jsx)(W,{muted:n,listening:t===`listening`&&!n,micLevel:o,onToggleMute:i}),(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--restore`,"aria-label":`Restore voice chat`,onClick:e=>{c(e),s()},children:(0,r.jsx)(ae,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--end`,"aria-label":`End voice chat`,onClick:e=>{c(e),a()},children:(0,r.jsx)(T,{})})]})]})},Be=({onSend:t,onSendGif:i,onTyping:s,disabled:c,allowVoice:l,onTranscribe:u,gifEnabled:d,onSearchGifs:m,allowAttach:h,onExtract:g,voiceStartSignal:_=0,onVoiceStateChange:v})=>{let b=e.c(),[x,S]=(0,n.useState)(``),[C,te]=(0,n.useState)(!1),[ne,T]=(0,n.useState)(!1),[re,ie]=(0,n.useState)(`idle`),[E,D]=(0,n.useState)(`none`),[O,k]=(0,n.useState)(null),[ae,oe]=(0,n.useState)(!1),[se,A]=(0,n.useState)(``),ce=(0,n.useRef)(null),j=(0,n.useRef)(null),le=(0,n.useRef)(null),ue=(0,n.useRef)(null),de=(0,n.useRef)([]),M=(0,n.useRef)(void 0),N=(0,n.useRef)(null),fe=(0,n.useRef)(void 0),P=(0,n.useRef)(0),F=e=>{ie(e),v?.(e)},pe=()=>{M.current&&window.clearTimeout(M.current),M.current=void 0,fe.current&&cancelAnimationFrame(fe.current),fe.current=void 0,N.current?.close().catch(()=>void 0),N.current=null};(0,n.useEffect)(()=>{let e=ce.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,110)}px`)},[x]),(0,n.useEffect)(()=>{if(E===`none`)return;let e=e=>{j.current&&!e.composedPath().includes(j.current)&&D(`none`)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[E]);let me=e=>D(t=>t===e?`none`:e),I=e=>{let t=ce.current;if(!t){S(t=>t+e);return}let n=t.selectionStart??x.length,r=t.selectionEnd??x.length;S(x.slice(0,n)+e+x.slice(r)),requestAnimationFrame(()=>{t.focus();let r=n+e.length;t.setSelectionRange(r,r)})},he=e=>{D(`none`),i(e)},ge=async e=>{let t=e.target,n=t.files?.[0];if(t.value=``,n){if(A(``),n.size>8388608){A(b.attachTooLarge);return}oe(!0);try{let e=await g(await V(n),n.type||`application/octet-stream`,n.name);if(!e){A(b.attachFailed);return}k({name:n.name,text:e})}catch{A(b.attachFailed)}finally{oe(!1)}}},_e=(!!x.trim()||!!O)&&!c&&!ae&&!ne,ve=()=>{_e&&(t(x,O?{attachmentName:O.name,attachmentText:O.text}:void 0),s?.(!1),S(``),k(null),A(``))},ye=e=>{let n=e.trim();if(!n||c){F(`misunderstood`),window.setTimeout(()=>F(`idle`),2500);return}let r=x.trim();t(r?`${r} ${n}`:n),s?.(!1),S(``),k(null),A(``),F(`idle`)},be=e=>{e.key===`Enter`&&!e.shiftKey?(e.preventDefault(),ve()):e.key===`Escape`&&E!==`none`&&(e.preventDefault(),e.stopPropagation(),D(`none`))},xe=async()=>{if(C){o(ue.current);return}try{F(`connecting`);let e=await navigator.mediaDevices.getUserMedia({audio:!0}),t=a(e);de.current=[],P.current=0;try{let t=window.AudioContext??window.webkitAudioContext;if(t){let n=new t;N.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}P.current=Math.max(P.current,Math.sqrt(e/a.length)),fe.current=requestAnimationFrame(o)};o()}}catch{}t.ondataavailable=e=>e.data.size>0&&de.current.push(e.data),t.onstop=async()=>{pe(),e.getTracks().forEach(e=>e.stop()),te(!1);let n=new Blob(de.current,{type:t.mimeType||`audio/webm`});if(n.size===0||n.size<900||P.current<.006){F(`noise`),window.setTimeout(()=>F(`idle`),3200);return}T(!0),F(`processing`);try{let e=await V(n);if(!e.trim()){F(`noise`),window.setTimeout(()=>F(`idle`),3200);return}let t=typeof navigator<`u`&&(navigator.languages?.[0]||navigator.language)||void 0;ye(await u(e,n.type,t))}catch{F(`misunderstood`),window.setTimeout(()=>F(`idle`),3e3)}finally{T(!1)}},ue.current=t,t.start(250),te(!0),F(`listening`),M.current=window.setTimeout(()=>{o(ue.current)},12e3)}catch{F(`denied`),window.setTimeout(()=>F(`idle`),3500)}};return(0,n.useEffect)(()=>{!_||!l||c||C||ne||xe()},[_]),(0,n.useEffect)(()=>()=>pe(),[]),(0,r.jsxs)(`div`,{class:`cf-composer`,ref:j,children:[E===`emoji`&&(0,r.jsx)(je,{onPick:I}),E===`gif`&&(0,r.jsx)(H,{onSearch:m,onPick:he}),(O||ae||se)&&(0,r.jsx)(`div`,{class:`cf-attach-row`,children:ae?(0,r.jsx)(`span`,{class:`cf-attach-status`,children:b.attaching}):se?(0,r.jsx)(`span`,{class:`cf-attach-status cf-attach-status--err`,children:se}):O&&(0,r.jsxs)(`span`,{class:`cf-attach-chip`,title:O.name,children:[(0,r.jsx)(w,{}),(0,r.jsx)(`span`,{children:O.name}),(0,r.jsx)(`button`,{type:`button`,class:`cf-attach-x`,"aria-label":`Remove attachment`,onClick:()=>k(null),children:(0,r.jsx)(y,{})})]})}),re!==`idle`&&(0,r.jsxs)(`div`,{class:`cf-voice-state`,"aria-live":`polite`,children:[(0,r.jsx)(`span`,{class:`cf-voice-state__dot ${C?`is-live`:``}`}),U(re)]}),(0,r.jsxs)(`div`,{class:`cf-composer__field`,children:[(0,r.jsx)(`button`,{type:`button`,class:`cf-iconbtn ${E===`emoji`?`is-active`:``}`,"aria-label":b.emoji,"aria-pressed":E===`emoji`,onClick:()=>me(`emoji`),children:E===`emoji`?(0,r.jsx)(y,{}):(0,r.jsx)(ee,{})}),d&&(0,r.jsx)(`button`,{type:`button`,class:`cf-iconbtn cf-gifbtn ${E===`gif`?`is-active`:``}`,"aria-label":b.gifs,"aria-pressed":E===`gif`,onClick:()=>me(`gif`),children:(0,r.jsx)(`span`,{class:`cf-gif-label`,children:`GIF`})}),h&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`input`,{ref:le,type:`file`,class:`cf-file-input`,accept:`image/png,image/jpeg,image/webp,image/gif,application/pdf`,onChange:ge,tabIndex:-1,"aria-hidden":`true`}),(0,r.jsx)(`button`,{type:`button`,class:`cf-iconbtn`,"aria-label":b.attachFile,disabled:ae,onClick:()=>le.current?.click(),children:(0,r.jsx)(w,{})})]}),(0,r.jsx)(`textarea`,{ref:ce,class:`cf-textarea`,rows:1,placeholder:b.composerPlaceholder,value:x,"aria-label":b.composerPlaceholder,disabled:c,onInput:e=>{let t=e.target.value;S(t),s?.(!!t.trim())},onKeyDown:be}),l&&(0,r.jsx)(`button`,{type:`button`,class:`cf-iconbtn cf-mic ${C?`is-recording`:``}`,"aria-label":C?b.stopRecording:b.recordVoice,"aria-pressed":C,disabled:ne||c,onClick:xe,children:(0,r.jsx)(p,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-send`,"aria-label":b.send,disabled:!_e,onClick:ve,children:(0,r.jsx)(f,{})})]})]})},Ve=({name:e,greeting:t})=>(0,r.jsxs)(`section`,{class:`cf-empty-welcome`,"aria-label":`${e} welcome`,children:[(0,r.jsx)(`span`,{class:`cf-empty-welcome__eyebrow`,children:`Ready when you are`}),(0,r.jsx)(`h2`,{children:e}),t?(0,r.jsx)(`p`,{children:t}):(0,r.jsx)(`p`,{children:`Ask a question, leave a message, or book a demo.`})]}),He=e=>{let[t,r]=(0,n.useState)(`light`);return(0,n.useEffect)(()=>{if(e!==`auto`||typeof matchMedia>`u`)return;let t=matchMedia(`(prefers-color-scheme: dark)`),n=()=>r(t.matches?`dark`:`light`);return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)},[e]),e===`auto`?t:e},Ue=1e4,We=1400,Ge=.0038,Ke=.0022,qe=1600,Je=550,Ye=350,Xe=.001,Ze=6e4,Qe=90,$e=.009,et=280,tt=250,nt=250,rt=e=>e.replace(/\[[^\]]{0,60}\]/g,` `).replace(/\(([^)]{0,60})\)/g,(e,t)=>it.has(t.trim().toLowerCase().replace(/[.!?,…]+$/,``).replace(/\s+/g,` `))?` `:e).replace(/\*[^*]{0,60}\*/g,` `).replace(/\s+/g,` `).trim(),it=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(`.`)),at=e=>{let t=e.trim().toLowerCase().replace(/[()[\]*]/g,` `).replace(/[.!?,…]+$/,``).replace(/\s+/g,` `).trim();return!t||/^(?:sh+\s*)+$/.test(t)?!0:it.has(t)},ot=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},st={end:`end the call`,mute:`mute your microphone`,minimize:`minimize the chat`,expand:`expand the view`,shrink:`exit the expanded view`},ct=e=>e.trim().toLowerCase().replace(/[^\p{L}\p{N}\s']/gu,` `).replace(/\s+/g,` `).trim(),lt=[{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/}],ut=/^(?: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/,ft=/^(?:end|close|stop|finish|hang ?up|quit|exit|bye|good ?bye)\b/,pt=e=>{let t=ct(e);if(!t)return null;for(let{action:e,re:n}of lt)if(n.test(t)){let n=t.split(` `).length;return{action:e,confident:e===`end`?n<=10:n<=6}}return null},mt=e=>`I didn't catch yes or no. Say yes to ${st[e]}, or no to keep talking.`,ht=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`}.`,gt=e=>{let t=ct(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)},_t=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)}),vt=(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))}}},yt=e=>({...e?{deviceId:{exact:e}}:{},echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}),bt=({transport:t,config:i,bindControls:s})=>{let c=i.strings,[l,f]=(0,n.useState)(i.openByDefault),{persona:p,messages:m,sending:h,assistantSpeaking:g,visitor:_,hasEmail:v,liveMode:ee,assignedAgentName:y,agentTypingName:S,starters:C,featuredLinks:te,send:w,sendGif:D,notifyTyping:O,stop:k,retry:ae,rateMessage:se,injectAssistant:A,appendUserDraft:ce,patchMessage:j,removeMessage:le,submitCsat:ue,submitForm:de,transcribe:M,extract:N,searchGifs:fe,demoSlots:P,gifEnabled:pe,identify:me,ended:I,endConversation:he,startNew:_e,history:ve,viewingSessionId:ye,viewMessages:be,openConversation:xe,closeHistoryView:Se,shutdown:Ce,stopSpeaking:L,speakAssistantText:R}=e.n(t,i,l),[Te,Ee]=(0,n.useState)(0),[z,B]=(0,n.useState)(`idle`),[V,je]=(0,n.useState)(!1),[H,Me]=(0,n.useState)(!1),[Ne,Pe]=(0,n.useState)(0),[Fe,U]=(0,n.useState)(!1),[Ie,W]=(0,n.useState)(null),[Le,Re]=(0,n.useState)([]),[We,Ge]=(0,n.useState)(``),[Je,Ye]=(0,n.useState)(()=>{try{return localStorage.getItem(`centrinfo:muted`)===`1`}catch{return!1}}),Xe=He(i.theme),Qe=m.some(e=>e.role===`assistant`&&(e.pending||e.streaming)),$e=h||Qe||g,et=p?.soundEnabled??!0;(0,n.useEffect)(()=>{e.i(i.sound&&et&&!Je)},[i.sound,et,Je]);let tt=(0,n.useCallback)(()=>{Ye(e=>{let t=!e;try{localStorage.setItem(`centrinfo:muted`,t?`1`:`0`)}catch{}return t})},[]),nt=(0,n.useRef)(null),it=(0,n.useRef)(null),lt=(0,n.useRef)(null),bt=(0,n.useRef)(0),G=(0,n.useRef)(!1),K=(0,n.useRef)(!1),q=(0,n.useRef)(!1),xt=(0,n.useRef)(0),St=(0,n.useRef)(!1),J=(0,n.useRef)(null),Ct=(0,n.useRef)(null),wt=(0,n.useRef)([]),Tt=(0,n.useRef)(void 0),Et=(0,n.useRef)(void 0),Dt=(0,n.useRef)(null),Ot=(0,n.useRef)(0),kt=(0,n.useRef)(0),At=(0,n.useRef)(!1),jt=(0,n.useRef)(0),Mt=(0,n.useRef)(null),Nt=(0,n.useRef)(null),Pt=(0,n.useRef)(0),Y=(0,n.useRef)(null),Ft=(0,n.useRef)([]),It=(0,n.useRef)(0),Lt=(0,n.useRef)(0),Rt=(0,n.useRef)(0),zt=(0,n.useRef)(null),Bt=(0,n.useRef)(!1),Vt=(0,n.useRef)(null),Ht=(0,n.useRef)(``),Ut=(0,n.useRef)(()=>{}),Wt=(0,n.useRef)(``),Gt=(0,n.useRef)(h),Kt=(0,n.useRef)(g),qt=(0,n.useRef)($e),Jt=(0,n.useRef)(z),Yt=(0,n.useRef)(0);(0,n.useEffect)(()=>{Gt.current=h},[h]),(0,n.useEffect)(()=>{Kt.current=g},[g]),(0,n.useEffect)(()=>{qt.current=$e},[$e]),(0,n.useEffect)(()=>{Jt.current=z},[z]);let[Xt,Zt]=(0,n.useState)(!0),[Qt,$t]=(0,n.useState)(!1),en=(0,n.useRef)(0),[tn,nn]=(0,n.useState)(!1),rn=(0,n.useRef)(null),[an,on]=(0,n.useState)(!1),[sn,cn]=(0,n.useState)(!1),X=!!ye,ln=X?be:m,un=ln.find(e=>e.id===Ie&&e.visualization)?.visualization;(0,n.useEffect)(()=>{!Ie||un||(W(null),U(!1))},[un,Ie]);let dn=(0,n.useCallback)(()=>{f(!0),Ee(0),e.r(`open`),i.onOpen?.(),i.onShow?.()},[i]),fn=(0,n.useCallback)(()=>{f(!1),U(!1),W(null),i.onClose?.(),i.onHide?.(),it.current?.focus()},[i]),pn=(0,n.useCallback)(()=>l?fn():dn(),[l,dn,fn]),mn=(0,n.useCallback)(()=>nn(!0),[]),hn=(0,n.useCallback)(()=>{he(),nn(!1)},[he]),gn=(0,n.useCallback)(()=>{_e(),$t(!1),Zt(!0)},[_e]);(0,n.useEffect)(()=>{tn&&rn.current?.focus()},[tn]),(0,n.useEffect)(()=>{s({open:dn,close:fn,toggle:pn,identify:me,startNew:_e,endConversation:he,shutdown:Ce})},[s,dn,fn,pn,me,_e,he,Ce]),(0,n.useEffect)(()=>{let e=m.filter(e=>e.role===`assistant`&&!e.pending).length;if(l){bt.current=e;return}e>bt.current&&Ee(e-bt.current)},[m,l]),(0,n.useEffect)(()=>{i.onUnreadChange?.(Te)},[Te,i]),(0,n.useEffect)(()=>{let e=i.sessionDurationMinutes;if(!e||e<=0)return;let t=setTimeout(()=>Ce(),e*60*1e3);return()=>clearTimeout(t)},[i.sessionDurationMinutes,m,l,Ce]),(0,n.useEffect)(()=>{let e=i.customLauncherSelector;if(!e||typeof document>`u`)return;let t=[];try{t=Array.from(document.querySelectorAll(e))}catch{return}let n=e=>{e.preventDefault(),pn()};return t.forEach(e=>e.addEventListener(`click`,n)),()=>t.forEach(e=>e.removeEventListener(`click`,n))},[i.customLauncherSelector,pn]);let _n=(0,n.useRef)(!1);(0,n.useEffect)(()=>{let e=i.proactiveMessage?.trim();if(!e||_n.current)return;let t=i.proactiveOnPaths??[],n=typeof location<`u`?location.pathname:``;if(t.length>0&&!t.some(e=>n.includes(e)))return;let r=`centrinfo:proactive:${i.token.slice(0,12)}`;try{if(sessionStorage.getItem(r)===`1`)return}catch{}let a=setTimeout(()=>{if(!(l||I||m.some(e=>e.role===`user`))){_n.current=!0;try{sessionStorage.setItem(r,`1`)}catch{}A(e),dn()}},Math.max(0,i.proactiveDelaySeconds)*1e3);return()=>clearTimeout(a)},[i.proactiveMessage]),(0,n.useEffect)(()=>{let e=lt.current;if(!l||!e)return;let t=m[m.length-1],n=Date.now()<en.current;t?.role===`user`||Xt||n?(requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight}),$t(!1),n&&Zt(!0)):$t(!0)},[m,l,h,Xt]);let vn=(0,n.useCallback)(()=>{let e=lt.current;if(!e)return;if(G.current&&!X){Zt(!0),$t(!1);return}let t=e.scrollHeight-e.scrollTop-e.clientHeight<80;Zt(t),t&&$t(!1)},[X]),yn=(0,n.useCallback)(()=>{let e=lt.current;e&&(e.scrollTop=e.scrollHeight),$t(!1),Zt(!0)},[]),bn=(0,n.useCallback)(()=>{en.current=Date.now()+3e3,requestAnimationFrame(yn)},[yn]);(0,n.useEffect)(()=>{if(!l||X||!V||z===`connecting`)return;en.current=Date.now()+6e4,yn();let e=requestAnimationFrame(()=>{yn(),requestAnimationFrame(yn)}),t=[80,180,360].map(e=>window.setTimeout(yn,e));return()=>{cancelAnimationFrame(e),t.forEach(e=>window.clearTimeout(e))}},[g,m,l,yn,h,V,X,z]);let xn=(0,n.useCallback)(()=>{nt.current?.querySelector(`.cf-textarea`)?.focus()},[]),Sn=(0,n.useCallback)(()=>{Tt.current&&window.clearTimeout(Tt.current),Tt.current=void 0,Et.current&&window.clearTimeout(Et.current),Et.current=void 0,Dt.current?.stop(),Dt.current=null,Pe(0)},[]),Z=(0,n.useCallback)(()=>{Nt.current?.stop(),Nt.current=null,o(Y.current),Mt.current?.getTracks().forEach(e=>e.stop()),Mt.current=null,Pt.current=0,Lt.current=0},[]),Cn=(0,n.useCallback)(()=>{Sn(),Ct.current?.getTracks().forEach(e=>e.stop()),Ct.current=null},[Sn]),Q=(0,n.useCallback)(()=>{G.current=!1,q.current=!1,K.current=!1,St.current=!1,zt.current=null,Bt.current=!1,Vt.current=null,Ht.current=``,je(!1),Me(!1),U(!1),W(null),Z(),L();let e=J.current;e?.state===`recording`?o(e):(Cn(),B(`idle`))},[Z,L,Cn]),wn=(0,n.useCallback)(()=>{Fe&&W(null),U(!Fe)},[Fe]),Tn=(0,n.useCallback)(e=>{W(e),U(!0)},[]),En=(0,n.useCallback)(()=>{let e=Ie;W(null),U(!1),window.requestAnimationFrame(()=>{Array.from(nt.current?.querySelectorAll(`[data-visualization-message]`)??[]).find(t=>t.dataset.visualizationMessage===e)?.focus()})},[Ie]),Dn=(0,n.useCallback)(()=>{W(null),U(!1)},[]),On=(0,n.useCallback)((e,t)=>{if(Date.now()-xt.current>=Ze){B(`timeout`),Et.current=window.setTimeout(()=>Q(),2400);return}B(e),Et.current=window.setTimeout(()=>{G.current&&!K.current&&!Kt.current&&t()},1400)},[Q]),kn=(0,n.useCallback)((e,t,n)=>{Date.now()-xt.current<Ze&&!K.current&&(q.current=!0,R(t)),On(e,n)},[On,R]),An=(0,n.useCallback)((e,t)=>{bn(),xt.current=Date.now(),q.current=!0,t&&j(t,{content:e,pending:!0,streaming:!1});let n=()=>{if(G.current){if(Gt.current){window.setTimeout(n,80);return}t&&Vt.current===t&&(Vt.current=null),w(e,{forceVoicePlayback:!0,userMessageId:t})}};n()},[bn,j,w]),jn=(0,n.useCallback)(async(e,t,n,r=`normal`,i)=>{let a=null,o=e=>a||(bn(),a=Vt.current||ce(e),Vt.current=a,j(a,{content:Ht.current||e,pending:!0,streaming:!1}),a),s=()=>{a&&(Vt.current===a&&(Vt.current=null),Ht.current=``,le(a),a=null)},c=()=>{Ht.current=``,B(`listening`),window.setTimeout(()=>{G.current&&!K.current&&!Gt.current&&!J.current&&n()},120)},l=e.size===0,u=e.size<350&&t<.001;if(l||u){if(r===`barge`){c();return}let e=zt.current;kn(`noise`,e?mt(e):ht(p),n),Ht.current=``;return}B(`processing`);let d=++Yt.current,f=o(`Listening...`);try{let t=typeof navigator<`u`&&(navigator.languages?.[0]||navigator.language)||void 0;j(f,{content:Ht.current?`${Ht.current} ...`:`Transcribing...`,pending:!0});let a=await _t(e);if(!a.trim()){if(s(),r===`barge`){c();return}kn(`noise`,zt.current?mt(zt.current):ht(p),n);return}let o=rt(await M(a,e.type,t,i));if(d!==Yt.current){s();return}let l=[Ht.current,o].map(e=>e.trim()).filter(Boolean).join(` `).replace(/\s+/g,` `).trim();if(!l||at(l)||ot(l)){if(s(),r===`barge`){c();return}let e=zt.current;kn(`misunderstood`,e?mt(e):ht(p),n);return}let u=zt.current;if(u){let e=ct(l);if(ut.test(e)||u===`end`&&ft.test(e)){s(),zt.current=null,Ut.current(u);return}if(dt.test(e)){s(),zt.current=null;let e=`Okay, never mind — what would you like to know?`;A(e),q.current=!0,B(`speaking`),R(e);return}s();let t=mt(u);A(t),q.current=!0,B(`speaking`),R(t);return}let m=pt(l);if(m){if(s(),xt.current=Date.now(),m.confident){Ut.current(m.action);return}zt.current=m.action;let e=`Just to confirm — you want me to ${st[m.action]}? Please say yes or no.`;A(e),q.current=!0,B(`speaking`),R(e);return}if(j(f,{content:l,pending:!0}),gt(l)){Ht.current=l,B(`listening`),n();return}Ht.current=``,An(l,f)}catch(e){if(s(),r===`barge`){c();return}kn(`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)}},[ce,bn,kn,A,j,p,le,An,R,M]),$=(0,n.useCallback)(async()=>{if(!(!G.current||K.current)&&!(!p?.allowVoiceInput||I||X)&&!Gt.current&&!J.current){Z(),q.current=!1;try{B(`connecting`);let e=await navigator.mediaDevices.getUserMedia({audio:yt(Wt.current)});if(!G.current||K.current){e.getTracks().forEach(e=>e.stop());return}navigator.mediaDevices.enumerateDevices().then(e=>{Re(e.filter(e=>e.kind===`audioinput`).map((e,t)=>({deviceId:e.deviceId,label:e.label||`Microphone ${t+1}`})))}).catch(()=>{});let t=a(e);J.current=t,Ct.current=e,wt.current=[],Ot.current=0,At.current=!1,jt.current=0;let n=performance.now();Dt.current=vt(e,(e,r)=>{if(Ot.current=Math.max(Ot.current,e),e>=.0038)At.current=!0,jt.current=0;else if(At.current&&e<=Ke){jt.current||(jt.current=r);let e=r-jt.current,i=r-n;if(e>=qe&&i>=550&&t.state===`recording`){o(t);return}}else jt.current=0;r-kt.current>90&&(kt.current=r,Pe(e))}),t.ondataavailable=e=>{e.data.size>0&&wt.current.push(e.data)},t.onstop=async()=>{if(Cn(),J.current=null,St.current){St.current=!1,G.current&&!K.current?(B(`idle`),$()):B(G.current&&K.current?`muted`:`idle`);return}if(!G.current){B(`idle`);return}await jn(new Blob(wt.current,{type:t.mimeType||`audio/webm`}),Ot.current,$,`normal`,Math.max(0,(performance.now()-n)/1e3))},t.start(250),B(`listening`),Tt.current=window.setTimeout(()=>{o(J.current)},Ue)}catch{B(`denied`),Et.current=window.setTimeout(()=>Q(),3500)}}},[I,Q,jn,p,p?.allowVoiceInput,Z,Cn,X]),Mn=(0,n.useCallback)(()=>{if(G.current){Q();return}xn(),!(!p?.allowVoiceInput||Gt.current||I||X)&&(xt.current=Date.now(),q.current=!1,K.current=!1,G.current=!0,Me(!1),je(!0),B(`connecting`),$())},[I,Q,xn,p,p?.allowVoiceInput,$,X]),Nn=(0,n.useCallback)(()=>{Me(e=>{let t=!e;if(K.current=t,t){let e=J.current;e?.state===`recording`?(St.current=!0,o(e)):(Cn(),B(`muted`))}else G.current&&!I&&!X&&(B(`idle`),$());return t})},[I,$,Cn,X]),Pn=(0,n.useCallback)((e,t)=>{A(e),t&&(q.current=!0),B(`speaking`),R(e)},[A,R]),Fn=(0,n.useCallback)(e=>{switch(xt.current=Date.now(),e){case`end`:q.current=!1,Bt.current=!0,Pn(`Okay — ending our call now. Goodbye!`,!1),window.setTimeout(()=>{Bt.current&&(Bt.current=!1,Q())},2e3);break;case`mute`:{K.current||Nn();let e=`Muted. Tap the mic button when you want me to listen again.`;A(e),R(e);break}case`minimize`:fn(),Pn(`Minimized — I'm still listening. Tap the call pill to bring the chat back.`,!0);break;case`expand`:U(!0),Pn(`Sure — expanding the view.`,!0);break;case`shrink`:W(null),U(!1),Pn(`Okay — back to the smaller view.`,!0);break}},[fn,Q,A,R,Pn,Nn]);(0,n.useEffect)(()=>{Ut.current=Fn},[Fn]);let In=(0,n.useRef)(!1);(0,n.useEffect)(()=>{In.current&&!g&&Bt.current&&(Bt.current=!1,Q()),In.current=g},[g,Q]);let Ln=(0,n.useCallback)(e=>{Wt.current=e,Ge(e);let t=J.current;t?.state===`recording`&&(St.current=!0,o(t))},[]),Rn=(0,n.useCallback)(()=>{if(!(!G.current||K.current)){if(Z(),k(),L(),xt.current=Date.now(),B(`listening`),Gt.current){let e=()=>{if(!(!G.current||K.current)){if(Gt.current){window.setTimeout(e,70);return}q.current=!1,$()}};window.setTimeout(e,70);return}q.current=!1,$()}},[$,k,Z,L]),zn=(0,n.useCallback)(async()=>{if(!(Mt.current||Nt.current)&&!(!G.current||K.current))try{let e=await navigator.mediaDevices.getUserMedia({audio:yt(Wt.current)});if(!G.current||K.current||J.current||Mt.current||!qt.current&&Jt.current!==`processing`){e.getTracks().forEach(e=>e.stop());return}Mt.current=e,Pt.current=0,Lt.current=0,Rt.current=0;let t=()=>{if(Y.current)return;k(),L(),Yt.current+=1,xt.current=Date.now(),q.current=!1,B(`listening`);let t=a(e);Y.current=t,Ft.current=[],It.current=performance.now(),Lt.current=0,t.ondataavailable=e=>{e.data.size>0&&Ft.current.push(e.data)},t.onstop=async()=>{let e=Ft.current,n=Rt.current,r=t.mimeType||`audio/webm`;Y.current=null,Ft.current=[],Z(),G.current&&await jn(new Blob(e,{type:r}),n,$,`barge`,Math.max(0,(performance.now()-It.current)/1e3))},t.start(250)};Nt.current=vt(e,(e,n)=>{if(Rt.current=Math.max(Rt.current,e),n-kt.current>90&&(kt.current=n,Pe(e)),e>=.009)Pt.current||(Pt.current=n),n-Pt.current>=280&&t(),Lt.current=0;else if(Y.current&&e<=Ke){Lt.current||(Lt.current=n);let e=n-Lt.current,t=n-It.current;e>=qe&&t>=550&&Y.current.state===`recording`&&o(Y.current)}else Y.current&&n-It.current>=Ue&&Y.current.state===`recording`?o(Y.current):(Pt.current=0,Lt.current=0)}),Nt.current||Z()}catch{}},[jn,$,k,Z,L]);(0,n.useEffect)(()=>{if(!(V&&!H&&!I&&!X&&($e||z===`processing`))){Z();return}let e=window.setTimeout(()=>void zn(),250);return()=>window.clearTimeout(e)},[$e,I,zn,Z,V,H,z,X]);let Bn=V&&!H&&(h||g||z===`processing`);(0,n.useEffect)(()=>{!V||H||g&&B(`speaking`)},[g,V,H]),(0,n.useEffect)(()=>{if(!V||H||!q.current||h||g||![`processing`,`speaking`,`noise`,`misunderstood`].includes(z))return;let e=window.setTimeout(()=>{!G.current||K.current||Gt.current||(q.current=!1,$())},700);return()=>window.clearTimeout(e)},[g,h,$,V,H,z]),(0,n.useEffect)(()=>()=>Q(),[Q]);let[Vn,Hn]=(0,n.useState)(``),Un=(0,n.useRef)(!1);(0,n.useEffect)(()=>{if(Un.current&&!h){let e=[...m].reverse().find(e=>e.role===`assistant`&&!e.streaming&&!e.pending&&e.content);e&&Hn(e.content)}Un.current=h},[h,m]),(0,n.useEffect)(()=>{if(!l)return;let e=nt.current;tn||e?.querySelector(`.cf-textarea`)?.focus();let t=t=>{if(t.key===`Escape`){if(t.preventDefault(),tn){nn(!1);return}fn();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)},[l,fn,tn]),(0,n.useEffect)(()=>{let e=nt.current;e&&(l?e.removeAttribute(`inert`):e.setAttribute(`inert`,``))},[l]);let Wn=i.accentColor??p?.accentColor,Gn={zIndex:i.zIndex,"--cf-h-pad":`${i.horizontalPadding}px`,"--cf-v-pad":`${i.verticalPadding}px`,...Wn?{"--cf-accent":Wn,"--cf-accent-2":`color-mix(in oklab, ${Wn} 76%, #14141f)`}:{}},Kn=e=>w(e),qn=[...m].reverse().find(e=>e.role===`user`&&e.content.trim())?.content??``,Jn=m.some(e=>e.role===`user`),Yn=p?.talkbackMode===`avatar`||p?.widgetModule===`assistant`||!!p?.allowVoiceInput,Xn=!X&&Yn&&!Jn?ln.filter((e,t)=>!(t===0&&e.role===`assistant`)):ln,Zn=ee===`human`&&y?y:p?.agentName??`Chat`,Qn=ee===`human`?`Live support`:ee===`queued`?`Waiting for the team`:p?.offline?c.statusOffline:c.statusOnline,$n=!I&&!X?p?.availableActions:void 0,er=V&&z===`connecting`&&!X;return(0,r.jsx)(e.o,{value:c,children:(0,r.jsxs)(`div`,{class:`cf-root`,"data-theme":Xe,"data-align":i.alignment,"data-display":`floating`,style:Gn,children:[Fe&&l&&(0,r.jsx)(`div`,{class:`cf-theater-backdrop`,onClick:Dn}),(0,r.jsxs)(`div`,{ref:nt,class:`cf-panel ${l?`is-open`:``} ${V?`cf-panel--call`:``} ${er?`cf-panel--voice-connecting`:``} ${Fe&&l?`cf-panel--theater`:``} ${un?`cf-panel--analytics-focus`:``}`,role:`dialog`,"aria-modal":`false`,"aria-label":`Chat with ${p?.agentName??`us`}`,"aria-hidden":!l,children:[(0,r.jsxs)(`div`,{class:`cf-header`,children:[(0,r.jsx)(F,{persona:p,hideWhenMissing:!0}),(0,r.jsxs)(`div`,{class:`cf-header__meta`,children:[(0,r.jsx)(`div`,{class:`cf-header__name`,children:Zn}),(0,r.jsx)(`div`,{class:`cf-header__status ${ee===`ai`&&p?.offline?`cf-header__status--offline`:``}`,children:(0,r.jsx)(`span`,{class:`cf-header__status-text`,children:Qn})})]}),(0,r.jsxs)(`div`,{class:`cf-header__actions`,children:[ve.length>0&&(0,r.jsx)(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":c.pastConversations,title:c.pastConversations,"aria-pressed":an,onClick:()=>on(e=>!e),children:(0,r.jsx)(re,{})}),Jn&&!I&&!X&&(0,r.jsx)(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":c.endChat,title:c.endChat,onClick:mn,children:(0,r.jsx)(T,{})}),i.sound&&et&&(0,r.jsx)(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":Je?c.unmuteSounds:c.muteSounds,"aria-pressed":Je,onClick:tt,children:Je?(0,r.jsx)(x,{}):(0,r.jsx)(b,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-header__btn cf-header__close`,"aria-label":c.closeChat,onClick:fn,children:(0,r.jsx)(d,{})})]})]}),(0,r.jsx)(`div`,{class:`cf-panel__video`,children:un?(0,r.jsx)(`div`,{class:`cf-analytics-focus`,role:`region`,"aria-label":`Expanded analytics result`,children:(0,r.jsx)(Ae,{visualization:un,expanded:!0,onClose:En})}):!X&&Yn?(0,r.jsx)(ge,{persona:p,starters:[],onPick:w,onFocusComposer:Mn,speaking:Qe||g,voiceState:z,replyPending:V&&h&&!g,pinned:!0,muted:H,onToggleMute:Nn,onEndCall:Q,onTalkNow:Rn,showTalkNow:Bn,micLevel:Ne,theaterMode:Fe,onToggleTheater:wn,onMinimize:fn,audioDevices:Le,selectedAudioDeviceId:We,onSelectAudioDevice:Ln,connectingOnly:er}):null}),!er&&(0,r.jsxs)(`div`,{class:`cf-panel__chat`,children:[i.preview&&(0,r.jsx)(`div`,{class:`cf-preview-banner`,children:c.previewBanner}),X&&(0,r.jsx)(`div`,{class:`cf-viewing-banner`,children:c.viewingPast}),(0,r.jsxs)(`div`,{class:`cf-body`,ref:lt,role:`log`,onScroll:vn,children:[Xn.map((e,t)=>(0,r.jsx)(ke,{msg:e,persona:p,isLast:!X&&t===Xn.length-1,visitor:_,hasEmail:v,lastQuestion:qn,showActions:!X&&t===Xn.length-1&&!!e.handoffOffered,onPickReply:Kn,onSubmitForm:de,onDemoSlots:P,onRetry:ae,ratable:!X&&Xn.slice(0,t).some(e=>e.role===`user`),onRate:se,onExpandVisualization:X?void 0:Tn},e.id)),!Jn&&!X&&(0,r.jsxs)(r.Fragment,{children:[Xn.length===0&&(0,r.jsx)(Ve,{name:p?.agentName??`Assistant`,greeting:p?.greeting}),(0,r.jsx)(De,{items:C,onPick:w}),(0,r.jsx)(Oe,{items:te})]}),Qt&&(0,r.jsxs)(`button`,{type:`button`,class:`cf-newmsg`,onClick:yn,children:[(0,r.jsx)(oe,{}),c.newMessages]})]}),(0,r.jsx)(`div`,{class:`cf-sr-live`,"aria-live":`polite`,"aria-atomic":`true`,children:Vn}),h&&!I&&!X&&(0,r.jsx)(`div`,{class:`cf-stopbar`,children:(0,r.jsxs)(`button`,{type:`button`,class:`cf-stop`,onClick:k,children:[(0,r.jsx)(ne,{}),c.stop]})}),X?(0,r.jsx)(`div`,{class:`cf-ended`,children:(0,r.jsx)(`button`,{type:`button`,class:`cf-ended__btn`,onClick:Se,children:c.backToChat})}):I?(0,r.jsxs)(`div`,{class:`cf-ended`,children:[(0,r.jsx)(`p`,{class:`cf-ended__text`,children:c.conversationEnded}),i.csat&&Jn?sn?(0,r.jsx)(`p`,{class:`cf-ended__text`,children:c.feedbackThanks}):(0,r.jsxs)(`div`,{class:`cf-csat`,children:[(0,r.jsx)(`span`,{class:`cf-csat__q`,children:c.csatPrompt}),(0,r.jsx)(`button`,{type:`button`,class:`cf-csat__btn`,"aria-label":c.feedbackHelpful,onClick:()=>{ue(`up`),cn(!0)},children:(0,r.jsx)(ie,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-csat__btn`,"aria-label":c.feedbackNotHelpful,onClick:()=>{ue(`down`),cn(!0)},children:(0,r.jsx)(E,{})})]}):null,(0,r.jsx)(`button`,{type:`button`,class:`cf-ended__btn`,onClick:gn,children:c.startNewChat})]}):(0,r.jsxs)(r.Fragment,{children:[S?(0,r.jsxs)(`div`,{class:`cf-live-typing`,"aria-live":`polite`,children:[S,` is typing…`]}):null,$n&&$n.length>0&&(0,r.jsx)(`div`,{class:`cf-footer-actions`,children:(0,r.jsx)(we,{actions:$n,visitor:_,onSubmitForm:de,onDemoSlots:P,scheduler:p?.scheduler})}),(0,r.jsx)(Be,{onSend:w,onSendGif:D,onTyping:O,disabled:h,allowVoice:!!p?.allowVoiceInput,onTranscribe:M,gifEnabled:pe,onSearchGifs:fe,allowAttach:i.attachments,onExtract:N})]}),!I&&p?.disclaimerText&&(0,r.jsx)(`div`,{class:`cf-disclaimer`,children:p.disclaimerText}),(0,r.jsxs)(`div`,{class:`cf-footer`,children:[c.poweredBy,` `,(0,r.jsx)(`a`,{href:`https://accurix.tech/centrinfo`,target:`_blank`,rel:`noopener noreferrer`,children:`Centrinfo`})]})]}),tn&&(0,r.jsx)(`div`,{class:`cf-confirm`,onClick:()=>nn(!1),children:(0,r.jsxs)(`div`,{class:`cf-confirm__card`,role:`alertdialog`,"aria-modal":`true`,"aria-label":c.endChatConfirm,onClick:e=>e.stopPropagation(),children:[(0,r.jsx)(`div`,{class:`cf-confirm__title`,children:c.endChatConfirm}),(0,r.jsx)(`div`,{class:`cf-confirm__body`,children:c.endChatConfirmBody}),(0,r.jsxs)(`div`,{class:`cf-confirm__actions`,children:[(0,r.jsx)(`button`,{ref:rn,type:`button`,class:`cf-confirm__btn cf-confirm__btn--cancel`,onClick:()=>nn(!1),children:c.cancel}),(0,r.jsx)(`button`,{type:`button`,class:`cf-confirm__btn cf-confirm__btn--danger`,onClick:hn,children:c.endConfirmCta})]})]})}),an&&(0,r.jsx)(`div`,{class:`cf-confirm`,onClick:()=>on(!1),children:(0,r.jsxs)(`div`,{class:`cf-history`,role:`dialog`,"aria-modal":`true`,"aria-label":c.pastConversations,onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)(`div`,{class:`cf-history__head`,children:[(0,r.jsx)(`span`,{children:c.pastConversations}),(0,r.jsx)(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":c.closeChat,onClick:()=>on(!1),children:(0,r.jsx)(d,{})})]}),(0,r.jsx)(`div`,{class:`cf-history__list`,children:ve.map(e=>(0,r.jsxs)(`button`,{type:`button`,class:`cf-history__item ${e.sessionId===ye?`is-active`:``}`,onClick:()=>{xe(e.sessionId),on(!1)},children:[(0,r.jsx)(`span`,{class:`cf-history__title`,children:e.title}),(0,r.jsxs)(`span`,{class:`cf-history__meta`,children:[new Date(e.ts).toLocaleDateString(void 0,{month:`short`,day:`numeric`}),e.ended?` · ${c.historyEnded}`:``]})]},e.sessionId))})]})})]}),V&&!l?(0,r.jsx)(ze,{persona:p,voiceState:z,muted:H,onToggleMute:Nn,onEndCall:Q,micLevel:Ne,onExpand:dn}):Fe&&l?null:!i.hideDefaultLauncher&&(0,r.jsxs)(`button`,{ref:it,type:`button`,class:`cf-launcher`,"aria-label":l?c.closeChat:c.openChat,"aria-expanded":l,onClick:pn,children:[i.launcherIcon?(0,r.jsx)(`img`,{class:`cf-launcher__img`,src:i.launcherIcon,alt:``}):(0,r.jsx)(u,{}),!l&&Te>0&&(0,r.jsx)(`span`,{class:`cf-launcher__badge`,children:Te})]})]})})},G=`
|
|
1
|
+
const e=require(`./config-BfVMFkZ4.cjs`);let t=require(`preact`),n=require(`preact/hooks`),r=require(`preact/jsx-runtime`);const i=[`audio/webm;codecs=opus`,`audio/webm`,`audio/ogg;codecs=opus`,`audio/ogg`],a=e=>{let t=globalThis.MediaRecorder;if(typeof t?.isTypeSupported==`function`){for(let n of i)if(t.isTypeSupported(n))try{return new t(e,{mimeType:n})}catch{}}return new t(e)},o=e=>{if(!(!e||e.state!==`recording`)){try{e.requestData()}catch{}e.stop()}},s=[{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(`.`)}],c={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`}]}},l=(e,t)=>(0,r.jsx)(`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}),u=e=>(0,r.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,...e,children:(0,r.jsx)(`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`})}),d=e=>l((0,r.jsx)(`path`,{d:`m6 9 6 6 6-6`}),e),f=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`m22 2-7 20-4-9-9-4Z`}),(0,r.jsx)(`path`,{d:`M22 2 11 13`})]}),e),p=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z`}),(0,r.jsx)(`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`}),(0,r.jsx)(`line`,{x1:`12`,y1:`19`,x2:`12`,y2:`22`})]}),e),m=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M9 9v1a3 3 0 0 0 4.24 2.73`}),(0,r.jsx)(`path`,{d:`M15 5.5V5a3 3 0 0 0-5.94-.6`}),(0,r.jsx)(`path`,{d:`M19 10v2a7 7 0 0 1-9.9 6.36`}),(0,r.jsx)(`path`,{d:`M5 10v2a6.98 6.98 0 0 0 1.11 3.79`}),(0,r.jsx)(`line`,{x1:`12`,y1:`19`,x2:`12`,y2:`22`}),(0,r.jsx)(`line`,{x1:`2`,y1:`2`,x2:`22`,y2:`22`})]}),e),h=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M15 3h6v6`}),(0,r.jsx)(`path`,{d:`M10 14 21 3`}),(0,r.jsx)(`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`})]}),e),g=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`18`,rx:`2`}),(0,r.jsx)(`line`,{x1:`16`,y1:`2`,x2:`16`,y2:`6`}),(0,r.jsx)(`line`,{x1:`8`,y1:`2`,x2:`8`,y2:`6`}),(0,r.jsx)(`line`,{x1:`3`,y1:`10`,x2:`21`,y2:`10`})]}),e),_=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`}),(0,r.jsx)(`path`,{d:`m22 7-10 5L2 7`})]}),e),v=e=>l((0,r.jsx)(`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),y=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,r.jsx)(`path`,{d:`M8.5 14.5a4 4 0 0 0 7 0`}),(0,r.jsx)(`line`,{x1:`9`,y1:`9.5`,x2:`9.01`,y2:`9.5`}),(0,r.jsx)(`line`,{x1:`15`,y1:`9.5`,x2:`15.01`,y2:`9.5`})]}),e),b=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),(0,r.jsx)(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]}),e),x=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M11 5 6 9H2v6h4l5 4z`}),(0,r.jsx)(`path`,{d:`M15.5 8.5a5 5 0 0 1 0 7`}),(0,r.jsx)(`path`,{d:`M19 5a9 9 0 0 1 0 14`})]}),e),S=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M11 5 6 9H2v6h4l5 4z`}),(0,r.jsx)(`line`,{x1:`22`,y1:`9`,x2:`16`,y2:`15`}),(0,r.jsx)(`line`,{x1:`16`,y1:`9`,x2:`22`,y2:`15`})]}),e),C=e=>l((0,r.jsx)(`path`,{d:`M20 6 9 17l-5-5`}),e),w=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`}),(0,r.jsx)(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})]}),e),ee=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M1 4v6h6`}),(0,r.jsx)(`path`,{d:`M3.51 15a9 9 0 1 0 2.13-9.36L1 10`})]}),e),T=e=>l((0,r.jsx)(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`}),e),E=e=>l((0,r.jsx)(`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),D=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M18.36 6.64a9 9 0 1 1-12.73 0`}),(0,r.jsx)(`line`,{x1:`12`,y1:`2`,x2:`12`,y2:`12`})]}),e),te=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,r.jsx)(`path`,{d:`M12 7v5l3 2`})]}),e),ne=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M7 10v12`}),(0,r.jsx)(`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),O=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M17 14V2`}),(0,r.jsx)(`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),k=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M15 3h6v6`}),(0,r.jsx)(`path`,{d:`M9 21H3v-6`}),(0,r.jsx)(`path`,{d:`M21 3l-7 7`}),(0,r.jsx)(`path`,{d:`M3 21l7-7`})]}),e),A=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`path`,{d:`M9 3v6H3`}),(0,r.jsx)(`path`,{d:`M15 21v-6h6`}),(0,r.jsx)(`path`,{d:`M9 9 2 2`}),(0,r.jsx)(`path`,{d:`M15 15l7 7`})]}),e),j=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`14`,rx:`2`}),(0,r.jsx)(`rect`,{x:`11`,y:`11`,width:`8`,height:`6`,rx:`1`,fill:`currentColor`,stroke:`none`})]}),e),re=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`rect`,{x:`4`,y:`5`,width:`16`,height:`14`,rx:`2`}),(0,r.jsx)(`path`,{d:`M12 15V9`}),(0,r.jsx)(`path`,{d:`m8.5 12.5 3.5-3.5 3.5 3.5`})]}),e),ie=e=>l((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),(0,r.jsx)(`path`,{d:`m19 12-7 7-7-7`})]}),e),ae=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)}`},M=({answeredAt:e,reportingPeriod:t,filters:n=[],rowCount:i})=>(0,r.jsxs)(`div`,{class:`cf-analytics-meta`,"data-testid":`analytics-result-meta`,"aria-label":`Result details`,children:[(0,r.jsxs)(`span`,{children:[(0,r.jsx)(`span`,{"aria-hidden":`true`,class:`cf-analytics-meta__dot`}),ae(e)]}),t?.label?(0,r.jsx)(`span`,{children:t.label}):null,typeof i==`number`?(0,r.jsxs)(`span`,{children:[i,` `,i===1?`row`:`rows`]}):null,n.length>0?(0,r.jsxs)(`span`,{children:[n.length,` applied `,n.length===1?`filter`:`filters`]}):null]}),oe=({label:e,value:t,detail:n})=>(0,r.jsxs)(`section`,{class:`cf-analytics-kpi`,"aria-label":e,"data-testid":`analytics-kpi`,children:[(0,r.jsx)(`div`,{class:`cf-analytics-kpi__label`,children:e}),(0,r.jsx)(`div`,{class:`cf-analytics-kpi__value`,children:t}),n?(0,r.jsx)(`div`,{class:`cf-analytics-kpi__detail`,children:n}):null]}),N=({title:e=`No matching data`,description:t=`No approved records matched this question.`})=>(0,r.jsxs)(`section`,{class:`cf-analytics-empty`,role:`status`,"data-testid":`analytics-empty-state`,children:[(0,r.jsx)(`p`,{children:e}),(0,r.jsx)(`p`,{children:t})]}),P=({explanation:e,onFollowUp:t,showLead:n=!1,maxFollowUps:i=3})=>(0,r.jsxs)(`section`,{class:`cf-analytics-explanation`,"data-testid":`inline-analytics-explanation`,"aria-label":`Analysis and supporting evidence`,children:[n?(0,r.jsxs)(`div`,{class:`cf-analytics-explanation__lead`,"data-testid":`analytics-explanation-lead`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-explanation__lead-meta`,children:[(0,r.jsx)(`span`,{class:`cf-analytics-explanation__eyebrow`,children:`Answer from your data`}),(0,r.jsxs)(`span`,{class:`cf-analytics-explanation__provenance`,children:[(0,r.jsx)(`span`,{"aria-hidden":`true`,class:`cf-analytics-explanation__provenance-dot`}),e.source===`ai_grounded`?`AI-assisted · evidence checked`:`Based on current values`]})]}),(0,r.jsx)(`h3`,{class:`cf-analytics-explanation__headline`,children:e.headline}),(0,r.jsx)(`p`,{class:`cf-analytics-explanation__summary`,children:e.summary})]}):null,(0,r.jsxs)(`div`,{class:`cf-analytics-explanation__body`,children:[(e.evidence?.length??0)>0?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__section`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`What the numbers show`}),(0,r.jsx)(`ul`,{class:`cf-analytics-explanation__evidence`,children:e.evidence?.slice(0,4).map(e=>(0,r.jsxs)(`li`,{class:`cf-analytics-explanation__evidence-item`,children:[(0,r.jsx)(`span`,{"aria-hidden":`true`,class:`cf-analytics-explanation__evidence-bullet`}),(0,r.jsx)(`span`,{children:e})]},e))})]}):null,e.businessMeaning?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__meaning`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`Why this may matter`}),(0,r.jsx)(`p`,{class:`cf-analytics-explanation__paragraph`,children:e.businessMeaning})]}):null,(e.possibleDrivers?.length??0)>0?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__section`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-explanation__section-heading`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`Possibilities worth checking`}),(0,r.jsx)(`span`,{class:`cf-analytics-explanation__hint`,children:`These are not proven causes`})]}),(0,r.jsx)(`div`,{class:`cf-analytics-explanation__drivers`,children:e.possibleDrivers?.slice(0,2).map(e=>(0,r.jsxs)(`article`,{class:`cf-analytics-explanation__driver`,children:[(0,r.jsx)(`p`,{class:`cf-analytics-explanation__driver-title`,children:e.hypothesis}),(0,r.jsxs)(`p`,{class:`cf-analytics-explanation__driver-body`,children:[(0,r.jsx)(`span`,{class:`cf-analytics-explanation__driver-label`,children:`How to check:`}),` `,e.howToCheck]})]},`${e.hypothesis}-${e.howToCheck}`))})]}):null,(e.recommendations?.length??0)>0?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__section`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`Useful next steps`}),(0,r.jsx)(`div`,{class:`cf-analytics-explanation__recommendations`,children:e.recommendations?.slice(0,3).map((e,t)=>(0,r.jsxs)(`article`,{class:`cf-analytics-explanation__recommendation`,children:[(0,r.jsx)(`span`,{class:`cf-analytics-explanation__recommendation-index`,children:t+1}),(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`p`,{class:`cf-analytics-explanation__recommendation-title`,children:e.action}),(0,r.jsx)(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:e.why}),e.successMetric?(0,r.jsxs)(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:[(0,r.jsx)(`span`,{class:`cf-analytics-explanation__driver-label`,children:`Watch:`}),` `,e.successMetric]}):null]})]},`${e.action}-${e.why}`))})]}):null,e.forecast?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__outlook`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-explanation__outlook-header`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`Outlook`}),(0,r.jsx)(`span`,{class:`cf-analytics-explanation__outlook-badge`,children:`Validated estimate`})]}),(0,r.jsx)(`p`,{class:`cf-analytics-explanation__paragraph`,children:e.forecast.text}),e.forecast.limitations?(0,r.jsx)(`p`,{class:`cf-analytics-explanation__recommendation-body`,children:e.forecast.limitations}):null]}):null,t&&(e.followUps?.length??0)>0?(0,r.jsxs)(`section`,{class:`cf-analytics-explanation__section cf-analytics-explanation__follow-up`,children:[(0,r.jsx)(`h4`,{class:`cf-analytics-explanation__heading`,children:`Ask a follow-up`}),(0,r.jsx)(`div`,{class:`cf-analytics-explanation__questions`,children:e.followUps?.slice(0,i).map(e=>(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-explanation__question`,onClick:()=>t(e),children:e},e))})]}):null,(e.limitations?.length??0)>0?(0,r.jsxs)(`details`,{class:`cf-analytics-explanation__limits`,children:[(0,r.jsx)(`summary`,{class:`cf-analytics-explanation__limits-summary`,children:`Important limits`}),(0,r.jsx)(`ul`,{class:`cf-analytics-explanation__limits-list`,children:e.limitations?.map(e=>(0,r.jsx)(`li`,{children:e},e))})]}):null]}),(0,r.jsx)(`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.`})]}),se=()=>{let e=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let t=requestAnimationFrame(()=>e.current?.scrollIntoView({block:`end`}));return()=>cancelAnimationFrame(t)},[]),e},ce=e=>e.trim().split(/\s+/).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)||`🤖`,F=e=>{let t=e?.avatarId?.trim().toLowerCase().replace(/[^a-z0-9-]/g,`-`);return t?` cf-avatar-preset--${t}`:``},le={"support-guide":`SG`,"sales-host":`SH`,"calm-advisor":`CA`,"technical-guide":`TG`,"school-desk":`SD`,"front-office":`FO`},I=e=>{let t=e?.avatarId?.trim().toLowerCase();return t&&le[t]||(e?ce(e.agentName):`·`)},ue=({persona:e,small:t,hideWhenMissing:n})=>{let i=t?`cf-msg__avatar`:`cf-header__avatar`,a=e?.agentAvatarUrl?.trim();return a?(0,r.jsx)(`span`,{class:i,children:(0,r.jsx)(`img`,{src:a,alt:``})}):n?null:(0,r.jsx)(`span`,{class:`${i}${F(e)}`,children:I(e)})},L=()=>{let t=e.c(),[i,a]=(0,n.useState)(0),o=[`Thinking`,`Checking available information`,`Preparing your response`];return(0,n.useEffect)(()=>{let e=[window.setTimeout(()=>a(1),1800),window.setTimeout(()=>a(2),5e3)];return()=>e.forEach(e=>window.clearTimeout(e))},[]),(0,r.jsxs)(`div`,{class:`cf-msg__bubble cf-typing`,"aria-label":t.assistantTyping,children:[(0,r.jsx)(`span`,{class:`cf-typing__label`,"aria-live":`polite`,children:o[i]}),(0,r.jsx)(`span`,{class:`cf-typing__dot`}),(0,r.jsx)(`span`,{class:`cf-typing__dot`}),(0,r.jsx)(`span`,{class:`cf-typing__dot`})]})},de=3,fe=({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 i=n.slice(0,3),a=n.length-i.length;return(0,r.jsxs)(`div`,{class:`cf-sources`,children:[i.map((e,t)=>e.url?(0,r.jsxs)(`a`,{class:`cf-source`,href:e.url,target:`_blank`,rel:`noopener noreferrer nofollow`,title:e.title||e.url,children:[(0,r.jsx)(h,{}),(0,r.jsx)(`span`,{children:e.title||e.url})]},t):(0,r.jsxs)(`span`,{class:`cf-source`,title:e.title,children:[(0,r.jsx)(h,{}),(0,r.jsx)(`span`,{children:e.title})]},t)),a>0&&(0,r.jsxs)(`span`,{class:`cf-source cf-source--more`,children:[`+`,a,` more`]})]})},R=({replies:e,onPick:t})=>e&&e.length>0?(0,r.jsx)(`div`,{class:`cf-chips`,children:e.map((e,n)=>(0,r.jsx)(`button`,{type:`button`,class:`cf-chip`,onClick:()=>t(e),children:e},n))}):null,pe=({persona:e,starters:t,onPick:n,onFocusComposer:i,speaking:a,voiceState:o=`idle`,replyPending:s=!1,pinned:c=!1,muted:l=!1,onToggleMute:u,onEndCall:d,onTalkNow:f,showTalkNow:m=!1,micLevel:h=0,theaterMode:g=!1,onToggleTheater:_,onMinimize:v,audioDevices:y=[],selectedAudioDeviceId:b=``,onSelectAudioDevice:x,connectingOnly:S=!1})=>{if(!e||!(e.talkbackMode===`avatar`||e.widgetModule===`assistant`||e.allowVoiceInput))return null;let C=e.agentAvatarUrl?.trim()||``,w=e.assistantMediaUrl?.trim()||C,ee=e.assistantMediaKind===`video`&&!!w,T=t.slice(0,3),E=o!==`idle`,D=o===`idle`?`Speak with ${e.agentName}`:`End voice chat`,te=c&&!E&&!a,ne=o===`connecting`||o===`processing`||E&&s,O=[`cf-assistant-card__stage`,`cf-assistant-card__stage--local`,E?`is-live`:``,ne?`is-thinking`:``,o===`listening`&&!l?`is-listening`:``,a||o===`speaking`?`is-speaking`:``,l?`is-muted`:``].filter(Boolean).join(` `),k=o===`listening`&&!l?{"--cf-listen":String(Math.max(.18,Math.min(1,h*8)))}:void 0,A=ne&&(0,r.jsxs)(`span`,{class:`cf-call-ripple`,"aria-hidden":`true`,children:[(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{})]});if(S)return(0,r.jsxs)(`div`,{class:`cf-assistant-card cf-assistant-card--connecting`,"aria-live":`polite`,children:[(0,r.jsxs)(`div`,{class:`cf-assistant-card__connecting-avatar`,children:[C?(0,r.jsx)(`img`,{src:C,alt:``}):(0,r.jsx)(`span`,{class:`cf-assistant-card__connecting-face${F(e)}`,children:I(e)}),A]}),(0,r.jsxs)(`div`,{class:`cf-assistant-card__connecting-copy`,children:[(0,r.jsx)(`span`,{class:`cf-assistant-card__connecting-eyebrow`,children:e.agentName}),(0,r.jsx)(`strong`,{children:`Connecting with the AI…`})]})]});let j=E&&d&&(0,r.jsx)(ze,{voiceState:o,muted:l,onToggleMute:u??(()=>{}),onEndCall:d,onTalkNow:f??(()=>{}),showTalkNow:m,micLevel:h,theaterMode:g,onToggleTheater:_??(()=>{}),onMinimize:v??(()=>{}),audioDevices:y,selectedAudioDeviceId:b,onSelectAudioDevice:x??(()=>{})});return te?(0,r.jsx)(`div`,{class:`cf-assistant-card cf-assistant-card--pinned cf-assistant-card--compact`,children:(0,r.jsxs)(`button`,{type:`button`,class:`cf-assistant-card__compact-speak`,onClick:i,children:[C?(0,r.jsx)(`span`,{class:`cf-assistant-card__compact-avatar`,children:(0,r.jsx)(`img`,{src:C,alt:``})}):null,(0,r.jsx)(`span`,{class:`cf-assistant-card__compact-mic`,"aria-hidden":`true`,children:(0,r.jsx)(p,{})}),(0,r.jsx)(`span`,{class:`cf-assistant-card__compact-label`,children:D})]})}):(0,r.jsxs)(`div`,{class:`cf-assistant-card ${c?`cf-assistant-card--pinned`:``} ${a?`is-speaking`:``}`,children:[(w||e.allowVoiceInput)&&(0,r.jsxs)(`div`,{class:O,style:k,children:[(0,r.jsxs)(`div`,{class:`cf-assistant-card__media ${w?`cf-assistant-card__media--uploaded`:`cf-assistant-card__media--generated`}${F(e)}`,children:[ee?(0,r.jsx)(`video`,{src:w,muted:!0,loop:!0,playsInline:!0,autoPlay:!0}):w?(0,r.jsx)(`img`,{src:w,alt:``}):(0,r.jsx)(`div`,{class:`cf-assistant-card__avatar-stage${F(e)}`,children:(0,r.jsxs)(`div`,{class:`cf-assistant-card__face`,children:[(0,r.jsx)(`span`,{class:`cf-assistant-card__initials`,children:I(e)}),(0,r.jsx)(`span`,{class:`cf-assistant-card__eye cf-assistant-card__eye--left`}),(0,r.jsx)(`span`,{class:`cf-assistant-card__eye cf-assistant-card__eye--right`}),(0,r.jsx)(`span`,{class:`cf-assistant-card__mouth`})]})}),w&&!ee&&(0,r.jsx)(`span`,{class:`cf-assistant-card__mouth cf-assistant-card__mouth--overlay`}),(0,r.jsx)(`span`,{class:`cf-avatar-aura cf-avatar-aura--one`,"aria-hidden":`true`}),(0,r.jsx)(`span`,{class:`cf-avatar-aura cf-avatar-aura--two`,"aria-hidden":`true`}),(0,r.jsx)(`span`,{class:`cf-avatar-listen-ring`,"aria-hidden":`true`}),(0,r.jsxs)(`span`,{class:`cf-avatar-wave`,"aria-hidden":`true`,children:[(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{}),(0,r.jsx)(`span`,{})]})]}),A,e.allowVoiceInput&&(j||(0,r.jsxs)(`button`,{type:`button`,class:`cf-assistant-card__speak`,onClick:i,children:[(0,r.jsx)(p,{}),D]}))]}),!c&&(0,r.jsxs)(r.Fragment,{children:[e.agentDescription?(0,r.jsx)(`p`,{class:`cf-assistant-card__copy`,children:e.agentDescription}):(0,r.jsx)(`p`,{class:`cf-assistant-card__copy`,children:e.greeting}),T.length>0&&(0,r.jsx)(`div`,{class:`cf-assistant-card__chips`,children:T.map(e=>(0,r.jsx)(`button`,{type:`button`,class:`cf-assistant-card__chip`,onClick:()=>n(e),children:e},e))}),e.disclaimerText||e.assistantPrivacyUrl?(0,r.jsxs)(`p`,{class:`cf-assistant-card__privacy`,children:[e.disclaimerText||`This chat may be recorded for quality and support.`,e.assistantPrivacyUrl?(0,r.jsxs)(r.Fragment,{children:[` `,(0,r.jsx)(`a`,{href:e.assistantPrivacyUrl,target:`_blank`,rel:`noopener noreferrer nofollow`,children:`Privacy Policy`})]}):null]}):null]})]})},me={public_book_demo:{type:`book-demo`,label:`Book a demo`,description:`Pick a time or request a demo from the team.`,Icon:g},public_submit_inquiry:{type:`inquiry`,label:`Leave a message`,description:`Send your question and contact details.`,Icon:_},public_request_callback:{type:`request-callback`,label:`Request a callback`,description:`Share your phone number and best time to call.`,Icon:v},public_subscribe_newsletter:{type:`subscribe-newsletter`,label:`Subscribe`,description:`Get product updates and useful announcements.`,Icon:_}},he=({field:e,value:t,onInput:n})=>{let i=e.placeholder??e.label,a={class:`cf-form__input`,placeholder:e.required?`${i} *`:i,value:t,"aria-label":e.label,onInput:e=>n(e.target.value)};return e.kind===`textarea`?(0,r.jsx)(`textarea`,{rows:2,...a}):(0,r.jsx)(`input`,{type:e.kind,...a})},ge=({spec:t,visitor:i,onSubmit:a,onCancel:o})=>{let s=e.c(),c=se(),[l,u]=(0,n.useState)(()=>{let e={};for(let n of t.fields)n.identity&&i[n.identity]&&(e[n.key]=i[n.identity]);return e}),[d,f]=(0,n.useState)(`idle`),[p,m]=(0,n.useState)(``),h=e=>!!(e.identity&&i[e.identity]?.trim()),g=t.fields.filter(e=>!h(e)),_=g.every(e=>!e.required||(l[e.key]?.trim()??``)!==``),v=i.email||i.name||``;return d===`done`?(0,r.jsxs)(`div`,{class:`cf-form cf-form--done`,children:[(0,r.jsx)(C,{}),(0,r.jsx)(`span`,{children:p})]}):(0,r.jsxs)(`div`,{class:`cf-form`,ref:c,children:[(0,r.jsx)(`div`,{class:`cf-form__title`,children:t.title}),g.length===0&&v&&(0,r.jsxs)(`div`,{class:`cf-form__as`,children:[`as `,v]}),g.map(e=>(0,r.jsx)(he,{field:e,value:l[e.key]??``,onInput:t=>u(n=>({...n,[e.key]:t}))},e.key)),d===`error`&&(0,r.jsx)(`div`,{class:`cf-form__err`,children:s.formError}),(0,r.jsxs)(`div`,{class:`cf-form__actions`,children:[o&&(0,r.jsx)(`button`,{type:`button`,class:`cf-form__cancel`,onClick:o,children:`Cancel`}),(0,r.jsx)(`button`,{type:`button`,class:`cf-form__submit`,disabled:!_||d===`submitting`,onClick:async()=>{if(!_||d===`submitting`)return;f(`submitting`);let e={},n={};for(let r of t.fields){let t=l[r.key]?.trim();t&&(e[r.key]=t,r.identity&&(n[r.identity]=t))}try{m((await a(e,n)).note||s.formThanks),f(`done`)}catch{f(`error`)}},children:d===`submitting`?s.sending:t.submit})]})]})},_e=e=>String(e).padStart(2,`0`),ve=()=>{let e=[];for(let t=9;t<=17;t++)e.push(`${_e(t)}:00`),e.push(`${_e(t)}:30`);return e},ye=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})},be=(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}`}},xe=(e,t)=>{let[n,r]=t.split(`:`).map(Number);return new Date(e.getFullYear(),e.getMonth(),e.getDate(),n??0,r??0)},Se=({visitor:t,onSubmit:i,onCancel:a,onDemoSlots:o,scheduler:s})=>{let l=e.c(),u=se(),d=(0,n.useMemo)(()=>ye(14),[]),f=(0,n.useMemo)(()=>ve(),[]),[p,m]=(0,n.useState)((0,n.useMemo)(()=>{let e=Date.now();for(let t=0;t<d.length;t++)if(f.some(n=>xe(d[t],n).getTime()>e))return t;return 0},[d,f])),[g,_]=(0,n.useState)(null),[v,y]=(0,n.useState)(t.name??``),[b,x]=(0,n.useState)(t.email??``),[S,w]=(0,n.useState)(`idle`),[ee,T]=(0,n.useState)(``),[E,D]=(0,n.useState)(``),[te,ne]=(0,n.useState)(``),O=s?.connected&&s.mode===`link`,k=async()=>{if(S===`submitting`||!t.name?.trim()&&!v.trim()||!t.email?.trim()&&!b.trim())return;w(`submitting`),D(``);let e={};b.trim()&&(e.email=b.trim()),v.trim()&&(e.name=v.trim());try{let t=await i({...b.trim()?{visitorEmail:b.trim()}:{},...v.trim()?{visitorName:v.trim()}:{}},e),n=t.booking?.schedulingLink||s?.bookingLink||``;if(!n){w(`error`);return}try{window.open(n,`_blank`,`noopener,noreferrer`)}catch{}ne(n),T(t.note||l.bookingLinkOpened),w(`done`)}catch{w(`error`)}},[A,j]=(0,n.useState)(new Set),[re,ie]=(0,n.useState)([]),[ae,M]=(0,n.useState)(0),[oe,N]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(!o)return;let e=!0,t=new Date,n=new Date;return n.setDate(n.getDate()+15),o(t.toISOString(),n.toISOString()).then(t=>{e&&(j(new Set(t.taken.map(e=>Date.parse(e)).filter(e=>!Number.isNaN(e)))),ie(t.busy.map(e=>[Date.parse(e.start),Date.parse(e.end)]).filter(([e,t])=>!Number.isNaN(e)&&!Number.isNaN(t))))}).catch(()=>{}),()=>{e=!1}},[o,ae]);let P=!!t.email?.trim(),ce=!!t.name?.trim(),F=!!g&&(ce||v.trim()!==``)&&(P||b.trim()!==``),le=t.email||t.name||``,I=e=>A.has(xe(d[p],e).getTime()),ue=e=>xe(d[p],e).getTime()<=Date.now(),L=e=>{let t=xe(d[p],e).getTime(),n=t+18e5;return re.some(([e,r])=>t<r&&n>e)},de=async()=>{if(!F||S===`submitting`||!g)return;w(`submitting`),N(!1),D(``);let t=xe(d[p],g),n=be(d[p],g),r={};b.trim()&&(r.email=b.trim()),v.trim()&&(r.name=v.trim());try{let a=await i({preferredAt:n,slotAt:t.toISOString(),...b.trim()?{visitorEmail:b.trim()}:{},...v.trim()?{visitorName:v.trim()}:{}},r);a.booking?.confirmed?(T(a.note||e.s(l.bookingConfirmed,{when:n})),ne(a.booking.meetingUrl||a.booking.eventLink||``)):T(a.note||e.s(l.bookingRequested,{when:n})),w(`done`)}catch(e){if(e?.status===409)j(e=>new Set(e).add(t.getTime())),_(null),N(!0),M(e=>e+1),w(`idle`);else{let t=e?.message;D(t&&t.length<120?t:``),w(`error`)}}};return S===`done`?(0,r.jsxs)(`div`,{class:`cf-form cf-form--done`,children:[(0,r.jsx)(C,{}),(0,r.jsx)(`span`,{children:ee}),te&&(0,r.jsxs)(`a`,{class:`cf-booking__link`,href:te,target:`_blank`,rel:`noopener noreferrer`,children:[O?l.bookingOpenScheduler:l.bookingMeetingLink,` `,(0,r.jsx)(h,{})]})]}):O?(0,r.jsxs)(`div`,{class:`cf-form cf-booking`,ref:u,children:[(0,r.jsx)(`div`,{class:`cf-form__title`,children:c[`book-demo`].title}),(0,r.jsx)(`div`,{class:`cf-booking__hint`,children:e.s(l.bookingViaProvider,{provider:s?.label??`the scheduler`})}),P?le?(0,r.jsxs)(`div`,{class:`cf-form__as`,children:[`as `,le]}):null:(0,r.jsxs)(r.Fragment,{children:[!t.name?.trim()&&(0,r.jsx)(`input`,{class:`cf-form__input`,type:`text`,placeholder:`${l.handoffName} *`,value:v,"aria-label":l.handoffName,onInput:e=>y(e.target.value)}),(0,r.jsx)(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${l.handoffEmail} *`,value:b,"aria-label":l.handoffEmail,onInput:e=>x(e.target.value)})]}),S===`error`&&(0,r.jsx)(`div`,{class:`cf-form__err`,children:E||l.formError}),(0,r.jsxs)(`div`,{class:`cf-form__actions`,children:[a&&(0,r.jsx)(`button`,{type:`button`,class:`cf-form__cancel`,onClick:a,children:l.cancel}),(0,r.jsx)(`button`,{type:`button`,class:`cf-form__submit`,disabled:S===`submitting`||!t.name?.trim()&&v.trim()===``||!P&&b.trim()===``,onClick:k,children:S===`submitting`?l.sending:l.bookingOpenScheduler})]})]}):(0,r.jsxs)(`div`,{class:`cf-form cf-booking`,ref:u,children:[(0,r.jsx)(`div`,{class:`cf-form__title`,children:c[`book-demo`].title}),(0,r.jsxs)(`div`,{class:`cf-booking__hint`,children:[l.bookingPickTime,` · `,(0,r.jsx)(`span`,{class:`cf-booking__dur`,children:l.bookingDuration})]}),(0,r.jsx)(`div`,{class:`cf-booking__dates`,role:`tablist`,"aria-label":`Pick a day`,children:d.map((e,t)=>(0,r.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t===p,class:`cf-booking__date ${t===p?`is-selected`:``}`,onClick:()=>{m(t),_(null)},children:[(0,r.jsx)(`span`,{class:`cf-booking__dow`,children:e.toLocaleDateString(void 0,{weekday:`short`})}),(0,r.jsx)(`span`,{class:`cf-booking__dom`,children:e.getDate()})]},t))}),(0,r.jsx)(`div`,{class:`cf-booking__slots`,role:`listbox`,"aria-label":`Pick a time`,children:f.map(e=>{let t=ue(e),n=L(e),i=I(e),a=i||t||n;return(0,r.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":g===e,disabled:a,title:t?`Earlier today`:n?`Busy on the calendar`:i?`Already booked`:void 0,class:`cf-booking__slot ${g===e?`is-selected`:``} ${a?`is-taken`:``}`,onClick:()=>_(e),children:e},e)})}),oe&&(0,r.jsx)(`div`,{class:`cf-form__err`,children:l.bookingSlotTaken}),le?(0,r.jsxs)(`div`,{class:`cf-form__as`,children:[`as `,le]}):null,!ce&&(0,r.jsx)(`input`,{class:`cf-form__input`,type:`text`,placeholder:`${l.handoffName} *`,value:v,"aria-label":l.handoffName,onInput:e=>y(e.target.value)}),!P&&(0,r.jsx)(r.Fragment,{children:(0,r.jsx)(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${l.handoffEmail} *`,value:b,"aria-label":l.handoffEmail,onInput:e=>x(e.target.value)})}),S===`error`&&(0,r.jsx)(`div`,{class:`cf-form__err`,children:E||l.formError}),(0,r.jsxs)(`div`,{class:`cf-form__actions`,children:[a&&(0,r.jsx)(`button`,{type:`button`,class:`cf-form__cancel`,onClick:a,children:l.cancel}),(0,r.jsx)(`button`,{type:`button`,class:`cf-form__submit`,disabled:!F||S===`submitting`,onClick:de,children:S===`submitting`?l.sending:c[`book-demo`].submit})]})]})},Ce=({actions:e,visitor:t,onSubmitForm:i,onDemoSlots:a,scheduler:o,exclude:s=[]})=>{let[l,u]=(0,n.useState)(null),[f,p]=(0,n.useState)(!1),m=(e??[]).map(e=>me[e]).filter(e=>!!e&&!s.includes(e.type));if(m.length===0)return null;let h=()=>{u(null),p(!1)},g=()=>u(null);if(l===`book-demo`)return(0,r.jsxs)(`div`,{class:`cf-action-drawer is-open`,role:`dialog`,"aria-label":`Book a demo`,children:[(0,r.jsx)(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),(0,r.jsxs)(`div`,{class:`cf-action-drawer__head`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`span`,{class:`cf-action-drawer__eyebrow`,children:`Contact options`}),(0,r.jsx)(`strong`,{children:`Book a demo`})]}),(0,r.jsx)(`button`,{type:`button`,class:`cf-action-drawer__close`,onClick:g,children:(0,r.jsx)(b,{})})]}),(0,r.jsx)(Se,{visitor:t,onCancel:g,onSubmit:(e,t)=>i(`book-demo`,e,t),onDemoSlots:a,scheduler:o})]});if(l){let e=m.find(e=>e.type===l);return(0,r.jsxs)(`div`,{class:`cf-action-drawer is-open`,role:`dialog`,"aria-label":e?.label??`Contact`,children:[(0,r.jsx)(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),(0,r.jsxs)(`div`,{class:`cf-action-drawer__head`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`span`,{class:`cf-action-drawer__eyebrow`,children:`Contact options`}),(0,r.jsx)(`strong`,{children:e?.label??c[l].title})]}),(0,r.jsx)(`button`,{type:`button`,class:`cf-action-drawer__close`,onClick:g,children:(0,r.jsx)(b,{})})]}),(0,r.jsx)(ge,{spec:c[l],visitor:t,onCancel:g,onSubmit:(e,t)=>i(l,e,t)})]})}return f?(0,r.jsxs)(`div`,{class:`cf-action-drawer cf-action-drawer--menu`,children:[(0,r.jsx)(`div`,{class:`cf-action-drawer__handle`,"aria-hidden":`true`}),(0,r.jsxs)(`div`,{class:`cf-action-drawer__head`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`span`,{class:`cf-action-drawer__eyebrow`,children:`Need help?`}),(0,r.jsx)(`strong`,{children:`Choose what you want to do`})]}),(0,r.jsx)(`button`,{type:`button`,class:`cf-action-drawer__close`,onClick:h,children:(0,r.jsx)(b,{})})]}),(0,r.jsx)(`div`,{class:`cf-action-drawer__grid`,children:m.map(({type:e,label:t,description:n,Icon:i})=>(0,r.jsxs)(`button`,{type:`button`,class:`cf-action-card`,onClick:()=>u(e),children:[(0,r.jsx)(`span`,{class:`cf-action-card__icon`,children:(0,r.jsx)(i,{})}),(0,r.jsxs)(`span`,{class:`cf-action-card__copy`,children:[(0,r.jsx)(`strong`,{children:t}),(0,r.jsx)(`small`,{children:n})]}),(0,r.jsx)(d,{})]},e))}),(0,r.jsx)(`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.`})]}):(0,r.jsxs)(`button`,{type:`button`,class:`cf-action-trigger`,onClick:()=>p(!0),children:[(0,r.jsx)(`span`,{class:`cf-action-trigger__icon`,children:(0,r.jsx)(_,{})}),(0,r.jsxs)(`span`,{class:`cf-action-trigger__copy`,children:[(0,r.jsx)(`strong`,{children:`Contact options`}),(0,r.jsx)(`small`,{children:`Demo, message, callback`})]}),(0,r.jsx)(d,{})]})},z=({hasEmail:t,visitor:i,question:a,onSubmitForm:o})=>{let s=e.c(),[c,l]=(0,n.useState)(!1),[u,d]=(0,n.useState)(!1),[f,p]=(0,n.useState)(i.name??``),[m,h]=(0,n.useState)(i.email??``);if(t)return(0,r.jsxs)(`div`,{class:`cf-handoff cf-handoff--done`,children:[(0,r.jsx)(C,{}),(0,r.jsx)(`span`,{children:`We’ve alerted the team. If someone is available, they can continue here.`})]});if(c){let t=i.email||m;return(0,r.jsxs)(`div`,{class:`cf-handoff cf-handoff--done`,children:[(0,r.jsx)(C,{}),(0,r.jsx)(`span`,{children:e.s(s.handoffShared,{email:t})})]})}let g=async()=>{if(!(!m.trim()||u)){d(!0);try{await o(`inquiry`,{visitorEmail:m.trim(),...f.trim()?{visitorName:f.trim()}:{},message:a||`I had a question the assistant couldn’t answer.`,subject:`Help request from chat`},{email:m.trim(),name:f.trim()||void 0}),l(!0)}catch{d(!1)}}};return(0,r.jsxs)(`div`,{class:`cf-handoff`,children:[(0,r.jsx)(`div`,{class:`cf-handoff__title`,children:s.handoffTitle}),(0,r.jsx)(`input`,{class:`cf-form__input`,type:`text`,placeholder:s.handoffName,value:f,"aria-label":s.handoffName,onInput:e=>p(e.target.value)}),(0,r.jsx)(`input`,{class:`cf-form__input`,type:`email`,placeholder:`${s.handoffEmail} *`,value:m,"aria-label":s.handoffEmail,onInput:e=>h(e.target.value)}),(0,r.jsx)(`button`,{type:`button`,class:`cf-form__submit`,disabled:!m.trim()||u,onClick:g,children:u?s.sending:s.handoffNotify})]})},we=({text:t})=>{let i=e.c(),[a,o]=(0,n.useState)(!1);return(0,r.jsxs)(`button`,{type:`button`,class:`cf-tool`,onClick:async()=>{try{await navigator.clipboard.writeText(t),o(!0),setTimeout(()=>o(!1),1500)}catch{}},"aria-label":i.copy,children:[a?(0,r.jsx)(C,{}):(0,r.jsx)(w,{}),a?i.copied:i.copy]})},Te=({items:e,onPick:t})=>e.length===0?null:(0,r.jsx)(`div`,{class:`cf-starters`,children:e.map((e,n)=>(0,r.jsx)(`button`,{type:`button`,class:`cf-starter`,onClick:()=>t(e),children:e},n))}),Ee=({items:e})=>{let t=e.filter(e=>e.label.trim()&&e.url.trim()).slice(0,4);return t.length===0?null:(0,r.jsx)(`div`,{class:`cf-featured-links`,children:t.map((e,t)=>(0,r.jsxs)(`a`,{class:`cf-featured-link`,href:e.url,target:`_blank`,rel:`noopener noreferrer nofollow`,title:e.label,children:[(0,r.jsx)(h,{}),(0,r.jsx)(`span`,{children:e.label})]},`${e.url}-${t}`))})},De=({msg:t,onRate:i})=>{let a=e.c(),[o,s]=(0,n.useState)(!1),[c,l]=(0,n.useState)(``),u=t.feedback,d=()=>{i(t.id,`up`),s(!1)},f=()=>{i(t.id,`down`),s(!0)},p=()=>{i(t.id,`down`,c.trim()),s(!1)};return(0,r.jsxs)(`div`,{class:`cf-feedback`,children:[(0,r.jsxs)(`div`,{class:`cf-feedback__row`,children:[(0,r.jsx)(`button`,{type:`button`,class:`cf-feedback__btn ${u===`up`?`is-active`:``}`,"aria-label":a.feedbackHelpful,"aria-pressed":u===`up`,onClick:d,children:(0,r.jsx)(ne,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-feedback__btn ${u===`down`?`is-active`:``}`,"aria-label":a.feedbackNotHelpful,"aria-pressed":u===`down`,onClick:f,children:(0,r.jsx)(O,{})}),u&&!o&&(0,r.jsx)(`span`,{class:`cf-feedback__thanks`,children:a.feedbackThanks})]}),o&&u===`down`&&(0,r.jsxs)(`div`,{class:`cf-feedback__comment`,children:[(0,r.jsx)(`textarea`,{class:`cf-feedback__input`,rows:2,placeholder:a.feedbackCommentPlaceholder,value:c,onInput:e=>l(e.target.value)}),(0,r.jsx)(`button`,{type:`button`,class:`cf-feedback__send`,onClick:p,children:a.feedbackSend})]})]})},Oe=({msg:t,persona:n,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=e.c(),_=t.role===`user`,v=t.liveEventType??``,y=t.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=t.role===`system`||b,S=t.requestedContactFields?.includes(`email`)===!0,C=i&&!_&&!x&&!!(t.handoffOffered||S),w=C&&!o?[`inquiry`]:[],T=!t.pending&&!t.streaming;return x?(0,r.jsx)(`div`,{class:`cf-msg cf-msg--system`,children:(0,r.jsxs)(`div`,{class:`cf-system-event`,children:[(0,r.jsx)(`div`,{class:`cf-system-event__mark`,"aria-hidden":`true`}),(0,r.jsx)(`div`,{class:`cf-system-event__text`,children:t.content}),t.createdAt&&(0,r.jsx)(`div`,{class:`cf-system-event__time`,children:new Date(t.createdAt).toLocaleString(void 0,{day:`2-digit`,month:`short`,year:`numeric`,hour:`numeric`,minute:`2-digit`})})]})}):(0,r.jsxs)(`div`,{class:`cf-msg cf-msg--${_?`user`:`agent`}`,children:[!_&&(0,r.jsx)(ue,{persona:n,small:!0}),(0,r.jsxs)(`div`,{class:`cf-msg__col`,children:[t.pending&&t.content===``?(0,r.jsx)(L,{}):t.imageUrl?(0,r.jsxs)(`div`,{class:`cf-msg__bubble cf-msg__bubble--media`,children:[(0,r.jsx)(`img`,{class:`cf-msg__media`,src:t.imageUrl,alt:`GIF`}),t.content&&(0,r.jsx)(`span`,{class:`cf-msg__caption`,children:t.content})]}):(0,r.jsxs)(`div`,{class:`cf-msg__bubble`,children:[_?t.content:e.a(t.content),t.streaming&&(0,r.jsx)(`span`,{class:`cf-caret`,"aria-hidden":`true`})]}),!_&&t.visualization?(0,r.jsx)(ke,{visualization:t.visualization,onExpand:h?()=>h(t.id):void 0,expandControlId:t.id}):null,!_&&t.visualization?.explanation?(0,r.jsx)(P,{explanation:t.visualization.explanation,onFollowUp:l,showLead:!t.content.toLocaleLowerCase().includes(t.visualization.explanation.headline.toLocaleLowerCase())}):null,_&&t.attachmentName&&(0,r.jsxs)(`div`,{class:`cf-attach-chip`,title:t.attachmentName,children:[(0,r.jsx)(E,{}),(0,r.jsx)(`span`,{children:t.attachmentName})]}),!_&&(0,r.jsxs)(r.Fragment,{children:[T&&(t.error||t.content)&&(0,r.jsxs)(`div`,{class:`cf-msg__actions`,children:[(0,r.jsx)(`div`,{class:`cf-msg__tools`,children:t.error?(0,r.jsxs)(`button`,{type:`button`,class:`cf-tool`,onClick:()=>f(t.id,t.retryText??``),children:[(0,r.jsx)(ee,{}),g.retry]}):(0,r.jsx)(we,{text:t.content})}),p&&!t.error&&t.content&&(0,r.jsx)(De,{msg:t,onRate:m})]}),(0,r.jsx)(fe,{msg:t}),i&&(0,r.jsx)(R,{replies:t.suggestedReplies,onPick:l}),C&&(0,r.jsx)(z,{hasEmail:o,visitor:a,question:s,onSubmitForm:u}),c&&(0,r.jsx)(Ce,{actions:t.availableActions,visitor:a,onSubmitForm:u,onDemoSlots:d,scheduler:n?.scheduler,exclude:w})]})]})]})},ke=({visualization:t,expanded:i=!1,onExpand:a,onClose:o,expandControlId:s})=>{let c=(0,n.useMemo)(()=>e.m(t),[t]),[l,u]=(0,n.useState)(c?.type);(0,n.useEffect)(()=>u(c?.type),[c]);let d=(0,n.useMemo)(()=>e.g(t),[t]),f=(0,n.useMemo)(()=>e.m(t,l),[l,t]),p=t.rows??[],m=t.columns?.length?t.columns:Object.keys(p[0]??{}),h=m.map(e=>{let n=t.columnMetadata?.find(t=>t.key===e);return n?{key:e,label:n.label,dataType:n.dataType,currencyCode:n.currencyCode}:e});if(p.length===0)return(0,r.jsx)(N,{});let g=(0,r.jsx)(M,{answeredAt:t.freshness?.answeredAt,reportingPeriod:t.reportingPeriod,filters:t.appliedFilters,rowCount:t.rowCount??p.length}),_=()=>t.tableAvailable===!1||m.length===0?null:(0,r.jsxs)(`div`,{class:`cf-analytics-visualization${i?` is-expanded`:``}`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-visualization__header`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`div`,{class:`cf-analytics-visualization__title`,children:t.title?.trim()||`Result details`}),g]}),(0,r.jsxs)(`div`,{class:`cf-analytics-visualization__actions`,children:[t.downloadAvailable?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__download`,onClick:()=>B(m,p),children:`Download`}):null,i&&o?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:o,children:(0,r.jsx)(b,{})}):a&&t.expandable!==!1?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__expand`,"aria-label":`Expand table`,"data-visualization-message":s,onClick:a,children:(0,r.jsx)(k,{})}):null]})]}),(0,r.jsx)(e.l,{rows:p,columns:h,maxRows:100,expanded:i,classPrefix:`cf`})]});if(t.presentation===`table`||!t.presentation&&t.type===`table`)return _();let v=t.chartRecommendation?.valueFields?.[0]??t.valueFields?.[0]??t.value??m[1];if(t.presentation===`kpi`||!t.presentation&&t.type===`kpi`){let n=p[0]?.[v??m[0]??``],a=typeof n==`number`?n:Number(n),s=t.columnMetadata?.find(e=>e.key===v),c=Number.isFinite(a)?e.h(a,s,t):String(n??`No value`);return(0,r.jsxs)(`div`,{class:`cf-analytics-visualization${i?` is-expanded`:``}`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-visualization__header`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`div`,{class:`cf-analytics-visualization__title`,children:`Live metric`}),g]}),i&&o?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:o,children:(0,r.jsx)(b,{})}):null]}),(0,r.jsx)(oe,{label:s?.label??v??`Current value`,value:c,detail:t.explanation?.summary})]})}return f?(0,r.jsxs)(`div`,{class:`cf-analytics-visualization${i?` is-expanded`:``}`,children:[(0,r.jsxs)(`div`,{class:`cf-analytics-visualization__header`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`div`,{class:`cf-analytics-visualization__title`,children:f.title}),g]}),(0,r.jsxs)(`div`,{class:`cf-analytics-visualization__actions`,children:[d.length>1?(0,r.jsxs)(`label`,{class:`cf-analytics-chart-picker`,children:[(0,r.jsx)(`span`,{children:`Chart`}),(0,r.jsx)(`select`,{"aria-label":`Chart type`,value:l??f.type,onChange:e=>u(e.currentTarget.value),children:d.map(e=>(0,r.jsx)(`option`,{value:e.type,children:e.label},e.type))})]}):null,i&&o?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__close`,"aria-label":`Restore assistant view`,onClick:o,children:(0,r.jsx)(b,{})}):a&&t.expandable!==!1?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__expand`,"aria-label":`Expand chart`,"data-visualization-message":s,onClick:a,children:(0,r.jsx)(k,{})}):null]})]}),(0,r.jsx)(e.p,{model:f,expanded:i}),(0,r.jsx)(`p`,{class:`cf-analytics-chart__summary`,children:f.summary}),t.downloadAvailable?(0,r.jsx)(`button`,{type:`button`,class:`cf-analytics-visualization__download`,onClick:()=>B(m,p),children:`Download this data`}):null]}):_()},B=(t,n)=>{if(typeof document>`u`||t.length===0)return;let r=e.f(n,t),i=URL.createObjectURL(new Blob([r],{type:`text/csv;charset=utf-8`})),a=document.createElement(`a`);a.href=i,a.download=`analytics-result.csv`,a.click(),URL.revokeObjectURL(i)},V=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result).split(`,`)[1]??``),r.onerror=n,r.readAsDataURL(e)}),H=({onPick:e})=>(0,r.jsx)(`div`,{class:`cf-picker cf-emoji`,children:s.map(t=>(0,r.jsxs)(`div`,{class:`cf-emoji__group`,children:[(0,r.jsx)(`div`,{class:`cf-emoji__label`,children:t.name}),(0,r.jsx)(`div`,{class:`cf-emoji__grid`,children:t.emojis.map((t,n)=>(0,r.jsx)(`button`,{type:`button`,class:`cf-emoji__btn`,onClick:()=>e(t),"aria-label":t,children:t},n))})]},t.name))}),Ae=({onSearch:t,onPick:i})=>{let a=e.c(),[o,s]=(0,n.useState)(``),[c,l]=(0,n.useState)([]),[u,d]=(0,n.useState)(!0);return(0,n.useEffect)(()=>{let e=!0;d(!0);let n=setTimeout(()=>{t(o).then(t=>e&&(l(t),d(!1))).catch(()=>e&&(l([]),d(!1)))},300);return()=>{e=!1,clearTimeout(n)}},[o,t]),(0,r.jsxs)(`div`,{class:`cf-picker cf-gif`,children:[(0,r.jsx)(`input`,{class:`cf-gif__search`,placeholder:a.searchGifs,value:o,"aria-label":a.searchGifs,onInput:e=>s(e.target.value)}),(0,r.jsx)(`div`,{class:`cf-gif__grid`,children:u?(0,r.jsx)(`div`,{class:`cf-gif__hint`,children:a.searchingGifs}):c.length===0?(0,r.jsx)(`div`,{class:`cf-gif__hint`,children:a.noGifs}):c.map(e=>(0,r.jsx)(`button`,{type:`button`,class:`cf-gif__item`,onClick:()=>i(e.url),"aria-label":e.alt,children:(0,r.jsx)(`img`,{src:e.preview,alt:e.alt,loading:`lazy`})},e.id))}),(0,r.jsx)(`div`,{class:`cf-gif__powered`,children:`via Tenor`})]})},je=8*1024*1024,Me=`image/png,image/jpeg,image/webp,image/gif,application/pdf`,Ne=12e3,Pe=250,Fe=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``}},Ie=.004,Le=({muted:e,listening:t,micLevel:n,onToggleMute:i})=>(0,r.jsx)(`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:i,style:t?{"--cf-wave":String(Math.max(.2,Math.min(1,n*6)))}:void 0,children:e?(0,r.jsx)(m,{}):(0,r.jsx)(p,{})}),Re=({audioDevices:e,selectedAudioDeviceId:t,onSelectAudioDevice:i})=>{let[a,o]=(0,n.useState)(!1),s=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!a)return;let e=e=>{s.current&&!e.composedPath().includes(s.current)&&o(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[a]);let c=[{deviceId:``,label:`Default microphone`},...e];return(0,r.jsxs)(`div`,{class:`cf-call-more`,ref:s,children:[(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--microphones`,"aria-label":`Choose microphone`,"aria-expanded":a,onClick:()=>o(e=>!e),children:(0,r.jsx)(d,{})}),a&&(0,r.jsxs)(`div`,{class:`cf-call-menu`,role:`menu`,children:[(0,r.jsx)(`div`,{class:`cf-call-menu__label`,children:`Microphone`}),c.map(e=>(0,r.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":e.deviceId===t,class:`cf-call-menu__item ${e.deviceId===t?`is-active`:``}`,onClick:()=>{i(e.deviceId),o(!1)},children:[e.deviceId===t?(0,r.jsx)(C,{}):(0,r.jsx)(`span`,{class:`cf-call-menu__spacer`}),(0,r.jsx)(`span`,{children:e.label})]},e.deviceId))]})]})},ze=({voiceState:e,muted:t,onToggleMute:n,onEndCall:i,onTalkNow:a,showTalkNow:o,micLevel:s,theaterMode:c,onToggleTheater:l,onMinimize:u,audioDevices:d,selectedAudioDeviceId:f,onSelectAudioDevice:m})=>(0,r.jsxs)(`div`,{class:`cf-call-controls`,children:[(0,r.jsx)(Le,{muted:t,listening:e===`listening`&&!t,micLevel:s,onToggleMute:n}),(0,r.jsx)(Re,{audioDevices:d,selectedAudioDeviceId:f,onSelectAudioDevice:m}),o&&(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--talk`,"aria-label":`Talk now`,onClick:a,children:(0,r.jsx)(p,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn`,"aria-label":c?`Exit expanded view`:`Expand view`,"aria-pressed":c,onClick:l,children:c?(0,r.jsx)(A,{}):(0,r.jsx)(k,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn`,"aria-label":`Minimize voice chat`,onClick:u,children:(0,r.jsx)(j,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--end`,"aria-label":`End voice chat`,onClick:i,children:(0,r.jsx)(D,{})})]}),Be=({persona:e,voiceState:t,muted:n,onToggleMute:i,onEndCall:a,micLevel:o,onExpand:s})=>{let c=e=>e.stopPropagation(),l=e?.assistantMediaUrl?.trim()||e?.agentAvatarUrl?.trim()||``,u=e?.assistantMediaKind===`video`&&!!l,d=e?.agentName||`Assistant`;return(0,r.jsxs)(`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,o*8)))}:void 0,role:`button`,tabIndex:0,"aria-label":`Reopen voice chat with ${d}`,onClick:s,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s())},children:[(0,r.jsx)(`div`,{class:`cf-floating-call-card__media`,"aria-hidden":`true`,children:l?u?(0,r.jsx)(`video`,{src:l,muted:!0,loop:!0,playsInline:!0,autoPlay:!0}):(0,r.jsx)(`img`,{src:l,alt:``}):(0,r.jsxs)(`div`,{class:`cf-floating-call-card__avatar${F(e)}`,children:[(0,r.jsx)(`span`,{children:I(e)}),(0,r.jsx)(`span`,{class:`cf-floating-call-card__eye cf-floating-call-card__eye--left`}),(0,r.jsx)(`span`,{class:`cf-floating-call-card__eye cf-floating-call-card__eye--right`}),(0,r.jsx)(`span`,{class:`cf-floating-call-card__mouth`})]})}),(0,r.jsx)(`div`,{class:`cf-floating-call-card__shade`,"aria-hidden":`true`}),(0,r.jsxs)(`div`,{class:`cf-floating-call-card__controls`,onClick:c,onKeyDown:c,role:`presentation`,children:[(0,r.jsx)(Le,{muted:n,listening:t===`listening`&&!n,micLevel:o,onToggleMute:i}),(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--restore`,"aria-label":`Restore voice chat`,onClick:e=>{c(e),s()},children:(0,r.jsx)(re,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-call-btn cf-call-btn--end`,"aria-label":`End voice chat`,onClick:e=>{c(e),a()},children:(0,r.jsx)(D,{})})]})]})},Ve=({onSend:t,onSendGif:i,onTyping:s,disabled:c,allowVoice:l,onTranscribe:u,gifEnabled:d,onSearchGifs:m,allowAttach:h,onExtract:g,voiceStartSignal:_=0,onVoiceStateChange:v})=>{let x=e.c(),[S,C]=(0,n.useState)(``),[w,ee]=(0,n.useState)(!1),[T,D]=(0,n.useState)(!1),[te,ne]=(0,n.useState)(`idle`),[O,k]=(0,n.useState)(`none`),[A,j]=(0,n.useState)(null),[re,ie]=(0,n.useState)(!1),[ae,M]=(0,n.useState)(``),oe=(0,n.useRef)(null),N=(0,n.useRef)(null),P=(0,n.useRef)(null),se=(0,n.useRef)(null),ce=(0,n.useRef)([]),F=(0,n.useRef)(void 0),le=(0,n.useRef)(null),I=(0,n.useRef)(void 0),ue=(0,n.useRef)(0),L=e=>{ne(e),v?.(e)},de=()=>{F.current&&window.clearTimeout(F.current),F.current=void 0,I.current&&cancelAnimationFrame(I.current),I.current=void 0,le.current?.close().catch(()=>void 0),le.current=null};(0,n.useEffect)(()=>{let e=oe.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,110)}px`)},[S]),(0,n.useEffect)(()=>{if(O===`none`)return;let e=e=>{N.current&&!e.composedPath().includes(N.current)&&k(`none`)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[O]);let fe=e=>k(t=>t===e?`none`:e),R=e=>{let t=oe.current;if(!t){C(t=>t+e);return}let n=t.selectionStart??S.length,r=t.selectionEnd??S.length;C(S.slice(0,n)+e+S.slice(r)),requestAnimationFrame(()=>{t.focus();let r=n+e.length;t.setSelectionRange(r,r)})},pe=e=>{k(`none`),i(e)},me=async e=>{let t=e.target,n=t.files?.[0];if(t.value=``,n){if(M(``),n.size>8388608){M(x.attachTooLarge);return}ie(!0);try{let e=await g(await V(n),n.type||`application/octet-stream`,n.name);if(!e){M(x.attachFailed);return}j({name:n.name,text:e})}catch{M(x.attachFailed)}finally{ie(!1)}}},he=(!!S.trim()||!!A)&&!c&&!re&&!T,ge=()=>{he&&(t(S,A?{attachmentName:A.name,attachmentText:A.text}:void 0),s?.(!1),C(``),j(null),M(``))},_e=e=>{let n=e.trim();if(!n||c){L(`misunderstood`),window.setTimeout(()=>L(`idle`),2500);return}let r=S.trim();t(r?`${r} ${n}`:n),s?.(!1),C(``),j(null),M(``),L(`idle`)},ve=e=>{e.key===`Enter`&&!e.shiftKey?(e.preventDefault(),ge()):e.key===`Escape`&&O!==`none`&&(e.preventDefault(),e.stopPropagation(),k(`none`))},ye=async()=>{if(w){o(se.current);return}try{L(`connecting`);let e=await navigator.mediaDevices.getUserMedia({audio:!0}),t=a(e);ce.current=[],ue.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}ue.current=Math.max(ue.current,Math.sqrt(e/a.length)),I.current=requestAnimationFrame(o)};o()}}catch{}t.ondataavailable=e=>e.data.size>0&&ce.current.push(e.data),t.onstop=async()=>{de(),e.getTracks().forEach(e=>e.stop()),ee(!1);let n=new Blob(ce.current,{type:t.mimeType||`audio/webm`});if(n.size===0||n.size<900||ue.current<.006){L(`noise`),window.setTimeout(()=>L(`idle`),3200);return}D(!0),L(`processing`);try{let e=await V(n);if(!e.trim()){L(`noise`),window.setTimeout(()=>L(`idle`),3200);return}let t=typeof navigator<`u`&&(navigator.languages?.[0]||navigator.language)||void 0;_e(await u(e,n.type,t))}catch{L(`misunderstood`),window.setTimeout(()=>L(`idle`),3e3)}finally{D(!1)}},se.current=t,t.start(250),ee(!0),L(`listening`),F.current=window.setTimeout(()=>{o(se.current)},12e3)}catch{L(`denied`),window.setTimeout(()=>L(`idle`),3500)}};return(0,n.useEffect)(()=>{!_||!l||c||w||T||ye()},[_]),(0,n.useEffect)(()=>()=>de(),[]),(0,r.jsxs)(`div`,{class:`cf-composer`,ref:N,children:[O===`emoji`&&(0,r.jsx)(H,{onPick:R}),O===`gif`&&(0,r.jsx)(Ae,{onSearch:m,onPick:pe}),(A||re||ae)&&(0,r.jsx)(`div`,{class:`cf-attach-row`,children:re?(0,r.jsx)(`span`,{class:`cf-attach-status`,children:x.attaching}):ae?(0,r.jsx)(`span`,{class:`cf-attach-status cf-attach-status--err`,children:ae}):A&&(0,r.jsxs)(`span`,{class:`cf-attach-chip`,title:A.name,children:[(0,r.jsx)(E,{}),(0,r.jsx)(`span`,{children:A.name}),(0,r.jsx)(`button`,{type:`button`,class:`cf-attach-x`,"aria-label":`Remove attachment`,onClick:()=>j(null),children:(0,r.jsx)(b,{})})]})}),te!==`idle`&&(0,r.jsxs)(`div`,{class:`cf-voice-state`,"aria-live":`polite`,children:[(0,r.jsx)(`span`,{class:`cf-voice-state__dot ${w?`is-live`:``}`}),Fe(te)]}),(0,r.jsxs)(`div`,{class:`cf-composer__field`,children:[(0,r.jsx)(`button`,{type:`button`,class:`cf-iconbtn ${O===`emoji`?`is-active`:``}`,"aria-label":x.emoji,"aria-pressed":O===`emoji`,onClick:()=>fe(`emoji`),children:O===`emoji`?(0,r.jsx)(b,{}):(0,r.jsx)(y,{})}),d&&(0,r.jsx)(`button`,{type:`button`,class:`cf-iconbtn cf-gifbtn ${O===`gif`?`is-active`:``}`,"aria-label":x.gifs,"aria-pressed":O===`gif`,onClick:()=>fe(`gif`),children:(0,r.jsx)(`span`,{class:`cf-gif-label`,children:`GIF`})}),h&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`input`,{ref:P,type:`file`,class:`cf-file-input`,accept:`image/png,image/jpeg,image/webp,image/gif,application/pdf`,onChange:me,tabIndex:-1,"aria-hidden":`true`}),(0,r.jsx)(`button`,{type:`button`,class:`cf-iconbtn`,"aria-label":x.attachFile,disabled:re,onClick:()=>P.current?.click(),children:(0,r.jsx)(E,{})})]}),(0,r.jsx)(`textarea`,{ref:oe,class:`cf-textarea`,rows:1,placeholder:x.composerPlaceholder,value:S,"aria-label":x.composerPlaceholder,disabled:c,onInput:e=>{let t=e.target.value;C(t),s?.(!!t.trim())},onKeyDown:ve}),l&&(0,r.jsx)(`button`,{type:`button`,class:`cf-iconbtn cf-mic ${w?`is-recording`:``}`,"aria-label":w?x.stopRecording:x.recordVoice,"aria-pressed":w,disabled:T||c,onClick:ye,children:(0,r.jsx)(p,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-send`,"aria-label":x.send,disabled:!he,onClick:ge,children:(0,r.jsx)(f,{})})]})]})},He=({name:e,greeting:t})=>(0,r.jsxs)(`section`,{class:`cf-empty-welcome`,"aria-label":`${e} welcome`,children:[(0,r.jsx)(`span`,{class:`cf-empty-welcome__eyebrow`,children:`Ready when you are`}),(0,r.jsx)(`h2`,{children:e}),t?(0,r.jsx)(`p`,{children:t}):(0,r.jsx)(`p`,{children:`Ask a question, leave a message, or book a demo.`})]}),Ue=e=>{let[t,r]=(0,n.useState)(`light`);return(0,n.useEffect)(()=>{if(e!==`auto`||typeof matchMedia>`u`)return;let t=matchMedia(`(prefers-color-scheme: dark)`),n=()=>r(t.matches?`dark`:`light`);return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)},[e]),e===`auto`?t:e},We=1e4,Ge=1400,Ke=.0038,qe=.0022,Je=1600,Ye=550,Xe=350,Ze=.001,Qe=6e4,$e=90,et=.009,tt=280,nt=250,rt=250,it=e=>e.replace(/\[[^\]]{0,60}\]/g,` `).replace(/\(([^)]{0,60})\)/g,(e,t)=>at.has(t.trim().toLowerCase().replace(/[.!?,…]+$/,``).replace(/\s+/g,` `))?` `:e).replace(/\*[^*]{0,60}\*/g,` `).replace(/\s+/g,` `).trim(),at=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(`.`)),ot=e=>{let t=e.trim().toLowerCase().replace(/[()[\]*]/g,` `).replace(/[.!?,…]+$/,``).replace(/\s+/g,` `).trim();return!t||/^(?:sh+\s*)+$/.test(t)?!0:at.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`},lt=e=>e.trim().toLowerCase().replace(/[^\p{L}\p{N}\s']/gu,` `).replace(/\s+/g,` `).trim(),ut=[{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/}],dt=/^(?:yes|yeah|yep|yup|sure|correct|confirm|affirmative|go ahead|do it|please do|ok(?:ay)?)\b/,ft=/^(?:no|nope|nah|cancel|never ?mind|don'?t|stop)\b/,pt=/^(?:end|close|stop|finish|hang ?up|quit|exit|bye|good ?bye)\b/,mt=e=>{let t=lt(e);if(!t)return null;for(let{action:e,re:n}of ut)if(n.test(t)){let n=t.split(` `).length;return{action:e,confident:e===`end`?n<=10:n<=6}}return null},ht=e=>`I didn't catch yes or no. Say yes to ${ct[e]}, or no to keep talking.`,gt=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`}.`,_t=e=>{let t=lt(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)},vt=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)}),yt=(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))}}},bt=e=>({...e?{deviceId:{exact:e}}:{},echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}),xt=({transport:t,config:i,bindControls:s})=>{let c=i.strings,[l,f]=(0,n.useState)(i.openByDefault),{persona:p,messages:m,sending:h,assistantSpeaking:g,visitor:_,hasEmail:v,liveMode:y,assignedAgentName:b,agentTypingName:C,starters:w,featuredLinks:ee,send:E,sendGif:k,notifyTyping:A,stop:j,retry:re,rateMessage:ae,injectAssistant:M,appendUserDraft:oe,patchMessage:N,removeMessage:P,submitCsat:se,submitForm:ce,transcribe:F,extract:le,searchGifs:I,demoSlots:L,gifEnabled:de,identify:fe,ended:R,endConversation:me,startNew:he,history:ge,viewingSessionId:_e,viewMessages:ve,openConversation:ye,closeHistoryView:be,shutdown:xe,stopSpeaking:Se,speakAssistantText:z}=e.n(t,i,l),[we,De]=(0,n.useState)(0),[B,V]=(0,n.useState)(`idle`),[H,Ae]=(0,n.useState)(!1),[je,Me]=(0,n.useState)(!1),[Ne,Pe]=(0,n.useState)(0),[Fe,Ie]=(0,n.useState)(!1),[Le,Re]=(0,n.useState)(null),[ze,Ge]=(0,n.useState)([]),[Ke,Ye]=(0,n.useState)(``),[Xe,Ze]=(0,n.useState)(()=>{try{return localStorage.getItem(`centrinfo:muted`)===`1`}catch{return!1}}),$e=Ue(i.theme),et=m.some(e=>e.role===`assistant`&&(e.pending||e.streaming)),tt=h||et||g,nt=p?.soundEnabled??!0;(0,n.useEffect)(()=>{e.i(i.sound&&nt&&!Xe)},[i.sound,nt,Xe]);let rt=(0,n.useCallback)(()=>{Ze(e=>{let t=!e;try{localStorage.setItem(`centrinfo:muted`,t?`1`:`0`)}catch{}return t})},[]),at=(0,n.useRef)(null),ut=(0,n.useRef)(null),xt=(0,n.useRef)(null),St=(0,n.useRef)(0),U=(0,n.useRef)(!1),W=(0,n.useRef)(!1),G=(0,n.useRef)(!1),Ct=(0,n.useRef)(0),wt=(0,n.useRef)(!1),K=(0,n.useRef)(null),Tt=(0,n.useRef)(null),Et=(0,n.useRef)([]),Dt=(0,n.useRef)(void 0),Ot=(0,n.useRef)(void 0),kt=(0,n.useRef)(null),At=(0,n.useRef)(0),jt=(0,n.useRef)(0),Mt=(0,n.useRef)(!1),Nt=(0,n.useRef)(0),Pt=(0,n.useRef)(null),Ft=(0,n.useRef)(null),It=(0,n.useRef)(0),q=(0,n.useRef)(null),Lt=(0,n.useRef)([]),Rt=(0,n.useRef)(0),zt=(0,n.useRef)(0),Bt=(0,n.useRef)(0),Vt=(0,n.useRef)(null),Ht=(0,n.useRef)(!1),Ut=(0,n.useRef)(null),J=(0,n.useRef)(``),Wt=(0,n.useRef)(()=>{}),Gt=(0,n.useRef)(``),Kt=(0,n.useRef)(h),qt=(0,n.useRef)(g),Jt=(0,n.useRef)(tt),Yt=(0,n.useRef)(B),Xt=(0,n.useRef)(0);(0,n.useEffect)(()=>{Kt.current=h},[h]),(0,n.useEffect)(()=>{qt.current=g},[g]),(0,n.useEffect)(()=>{Jt.current=tt},[tt]),(0,n.useEffect)(()=>{Yt.current=B},[B]);let[Zt,Qt]=(0,n.useState)(!0),[$t,en]=(0,n.useState)(!1),tn=(0,n.useRef)(0),[nn,rn]=(0,n.useState)(!1),an=(0,n.useRef)(null),[on,sn]=(0,n.useState)(!1),[cn,ln]=(0,n.useState)(!1),Y=!!_e,un=Y?ve:m,dn=un.find(e=>e.id===Le&&e.visualization)?.visualization;(0,n.useEffect)(()=>{!Le||dn||(Re(null),Ie(!1))},[dn,Le]);let fn=(0,n.useCallback)(()=>{f(!0),De(0),e.r(`open`),i.onOpen?.(),i.onShow?.()},[i]),X=(0,n.useCallback)(()=>{f(!1),Ie(!1),Re(null),i.onClose?.(),i.onHide?.(),ut.current?.focus()},[i]),pn=(0,n.useCallback)(()=>l?X():fn(),[l,fn,X]),mn=(0,n.useCallback)(()=>rn(!0),[]),hn=(0,n.useCallback)(()=>{me(),rn(!1)},[me]),gn=(0,n.useCallback)(()=>{he(),en(!1),Qt(!0)},[he]);(0,n.useEffect)(()=>{nn&&an.current?.focus()},[nn]),(0,n.useEffect)(()=>{s({open:fn,close:X,toggle:pn,identify:fe,startNew:he,endConversation:me,shutdown:xe})},[s,fn,X,pn,fe,he,me,xe]),(0,n.useEffect)(()=>{let e=m.filter(e=>e.role===`assistant`&&!e.pending).length;if(l){St.current=e;return}e>St.current&&De(e-St.current)},[m,l]),(0,n.useEffect)(()=>{i.onUnreadChange?.(we)},[we,i]),(0,n.useEffect)(()=>{let e=i.sessionDurationMinutes;if(!e||e<=0)return;let t=setTimeout(()=>xe(),e*60*1e3);return()=>clearTimeout(t)},[i.sessionDurationMinutes,m,l,xe]),(0,n.useEffect)(()=>{let e=i.customLauncherSelector;if(!e||typeof document>`u`)return;let t=[];try{t=Array.from(document.querySelectorAll(e))}catch{return}let n=e=>{e.preventDefault(),pn()};return t.forEach(e=>e.addEventListener(`click`,n)),()=>t.forEach(e=>e.removeEventListener(`click`,n))},[i.customLauncherSelector,pn]);let _n=(0,n.useRef)(!1);(0,n.useEffect)(()=>{let e=i.proactiveMessage?.trim();if(!e||_n.current)return;let t=i.proactiveOnPaths??[],n=typeof location<`u`?location.pathname:``;if(t.length>0&&!t.some(e=>n.includes(e)))return;let r=`centrinfo:proactive:${i.token.slice(0,12)}`;try{if(sessionStorage.getItem(r)===`1`)return}catch{}let a=setTimeout(()=>{if(!(l||R||m.some(e=>e.role===`user`))){_n.current=!0;try{sessionStorage.setItem(r,`1`)}catch{}M(e),fn()}},Math.max(0,i.proactiveDelaySeconds)*1e3);return()=>clearTimeout(a)},[i.proactiveMessage]),(0,n.useEffect)(()=>{let e=xt.current;if(!l||!e)return;let t=m[m.length-1],n=Date.now()<tn.current;t?.role===`user`||Zt||n?(requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight}),en(!1),n&&Qt(!0)):en(!0)},[m,l,h,Zt]);let vn=(0,n.useCallback)(()=>{let e=xt.current;if(!e)return;if(U.current&&!Y){Qt(!0),en(!1);return}let t=e.scrollHeight-e.scrollTop-e.clientHeight<80;Qt(t),t&&en(!1)},[Y]),yn=(0,n.useCallback)(()=>{let e=xt.current;e&&(e.scrollTop=e.scrollHeight),en(!1),Qt(!0)},[]),bn=(0,n.useCallback)(()=>{tn.current=Date.now()+3e3,requestAnimationFrame(yn)},[yn]);(0,n.useEffect)(()=>{if(!l||Y||!H||B===`connecting`)return;tn.current=Date.now()+6e4,yn();let e=requestAnimationFrame(()=>{yn(),requestAnimationFrame(yn)}),t=[80,180,360].map(e=>window.setTimeout(yn,e));return()=>{cancelAnimationFrame(e),t.forEach(e=>window.clearTimeout(e))}},[g,m,l,yn,h,H,Y,B]);let xn=(0,n.useCallback)(()=>{at.current?.querySelector(`.cf-textarea`)?.focus()},[]),Sn=(0,n.useCallback)(()=>{Dt.current&&window.clearTimeout(Dt.current),Dt.current=void 0,Ot.current&&window.clearTimeout(Ot.current),Ot.current=void 0,kt.current?.stop(),kt.current=null,Pe(0)},[]),Z=(0,n.useCallback)(()=>{Ft.current?.stop(),Ft.current=null,o(q.current),Pt.current?.getTracks().forEach(e=>e.stop()),Pt.current=null,It.current=0,zt.current=0},[]),Cn=(0,n.useCallback)(()=>{Sn(),Tt.current?.getTracks().forEach(e=>e.stop()),Tt.current=null},[Sn]),Q=(0,n.useCallback)(()=>{U.current=!1,G.current=!1,W.current=!1,wt.current=!1,Vt.current=null,Ht.current=!1,Ut.current=null,J.current=``,Ae(!1),Me(!1),Ie(!1),Re(null),Z(),Se();let e=K.current;e?.state===`recording`?o(e):(Cn(),V(`idle`))},[Z,Se,Cn]),wn=(0,n.useCallback)(()=>{Fe&&Re(null),Ie(!Fe)},[Fe]),Tn=(0,n.useCallback)(e=>{Re(e),Ie(!0)},[]),En=(0,n.useCallback)(()=>{let e=Le;Re(null),Ie(!1),window.requestAnimationFrame(()=>{Array.from(at.current?.querySelectorAll(`[data-visualization-message]`)??[]).find(t=>t.dataset.visualizationMessage===e)?.focus()})},[Le]),Dn=(0,n.useCallback)(()=>{Re(null),Ie(!1)},[]),On=(0,n.useCallback)((e,t)=>{if(Date.now()-Ct.current>=Qe){V(`timeout`),Ot.current=window.setTimeout(()=>Q(),2400);return}V(e),Ot.current=window.setTimeout(()=>{U.current&&!W.current&&!qt.current&&t()},1400)},[Q]),kn=(0,n.useCallback)((e,t,n)=>{Date.now()-Ct.current<Qe&&!W.current&&(G.current=!0,z(t)),On(e,n)},[On,z]),An=(0,n.useCallback)((e,t)=>{bn(),Ct.current=Date.now(),G.current=!0,t&&N(t,{content:e,pending:!0,streaming:!1});let n=()=>{if(U.current){if(Kt.current){window.setTimeout(n,80);return}t&&Ut.current===t&&(Ut.current=null),E(e,{forceVoicePlayback:!0,userMessageId:t})}};n()},[bn,N,E]),jn=(0,n.useCallback)(async(e,t,n,r=`normal`,i)=>{let a=null,o=e=>a||(bn(),a=Ut.current||oe(e),Ut.current=a,N(a,{content:J.current||e,pending:!0,streaming:!1}),a),s=()=>{a&&(Ut.current===a&&(Ut.current=null),J.current=``,P(a),a=null)},c=()=>{J.current=``,V(`listening`),window.setTimeout(()=>{U.current&&!W.current&&!Kt.current&&!K.current&&n()},120)},l=e.size===0,u=e.size<350&&t<.001;if(l||u){if(r===`barge`){c();return}let e=Vt.current;kn(`noise`,e?ht(e):gt(p),n),J.current=``;return}V(`processing`);let d=++Xt.current,f=o(`Listening...`);try{let t=typeof navigator<`u`&&(navigator.languages?.[0]||navigator.language)||void 0;N(f,{content:J.current?`${J.current} ...`:`Transcribing...`,pending:!0});let a=await vt(e);if(!a.trim()){if(s(),r===`barge`){c();return}kn(`noise`,Vt.current?ht(Vt.current):gt(p),n);return}let o=it(await F(a,e.type,t,i));if(d!==Xt.current){s();return}let l=[J.current,o].map(e=>e.trim()).filter(Boolean).join(` `).replace(/\s+/g,` `).trim();if(!l||ot(l)||st(l)){if(s(),r===`barge`){c();return}let e=Vt.current;kn(`misunderstood`,e?ht(e):gt(p),n);return}let u=Vt.current;if(u){let e=lt(l);if(dt.test(e)||u===`end`&&pt.test(e)){s(),Vt.current=null,Wt.current(u);return}if(ft.test(e)){s(),Vt.current=null;let e=`Okay, never mind — what would you like to know?`;M(e),G.current=!0,V(`speaking`),z(e);return}s();let t=ht(u);M(t),G.current=!0,V(`speaking`),z(t);return}let m=mt(l);if(m){if(s(),Ct.current=Date.now(),m.confident){Wt.current(m.action);return}Vt.current=m.action;let e=`Just to confirm — you want me to ${ct[m.action]}? Please say yes or no.`;M(e),G.current=!0,V(`speaking`),z(e);return}if(N(f,{content:l,pending:!0}),_t(l)){J.current=l,V(`listening`),n();return}J.current=``,An(l,f)}catch(e){if(s(),r===`barge`){c();return}kn(`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)}},[oe,bn,kn,M,N,p,P,An,z,F]),$=(0,n.useCallback)(async()=>{if(!(!U.current||W.current)&&!(!p?.allowVoiceInput||R||Y)&&!Kt.current&&!K.current){Z(),G.current=!1;try{V(`connecting`);let e=await navigator.mediaDevices.getUserMedia({audio:bt(Gt.current)});if(!U.current||W.current){e.getTracks().forEach(e=>e.stop());return}navigator.mediaDevices.enumerateDevices().then(e=>{Ge(e.filter(e=>e.kind===`audioinput`).map((e,t)=>({deviceId:e.deviceId,label:e.label||`Microphone ${t+1}`})))}).catch(()=>{});let t=a(e);K.current=t,Tt.current=e,Et.current=[],At.current=0,Mt.current=!1,Nt.current=0;let n=performance.now();kt.current=yt(e,(e,r)=>{if(At.current=Math.max(At.current,e),e>=.0038)Mt.current=!0,Nt.current=0;else if(Mt.current&&e<=qe){Nt.current||(Nt.current=r);let e=r-Nt.current,i=r-n;if(e>=Je&&i>=550&&t.state===`recording`){o(t);return}}else Nt.current=0;r-jt.current>90&&(jt.current=r,Pe(e))}),t.ondataavailable=e=>{e.data.size>0&&Et.current.push(e.data)},t.onstop=async()=>{if(Cn(),K.current=null,wt.current){wt.current=!1,U.current&&!W.current?(V(`idle`),$()):V(U.current&&W.current?`muted`:`idle`);return}if(!U.current){V(`idle`);return}await jn(new Blob(Et.current,{type:t.mimeType||`audio/webm`}),At.current,$,`normal`,Math.max(0,(performance.now()-n)/1e3))},t.start(250),V(`listening`),Dt.current=window.setTimeout(()=>{o(K.current)},We)}catch{V(`denied`),Ot.current=window.setTimeout(()=>Q(),3500)}}},[R,Q,jn,p,p?.allowVoiceInput,Z,Cn,Y]),Mn=(0,n.useCallback)(()=>{if(U.current){Q();return}xn(),!(!p?.allowVoiceInput||Kt.current||R||Y)&&(Ct.current=Date.now(),G.current=!1,W.current=!1,U.current=!0,Me(!1),Ae(!0),V(`connecting`),$())},[R,Q,xn,p,p?.allowVoiceInput,$,Y]),Nn=(0,n.useCallback)(()=>{Me(e=>{let t=!e;if(W.current=t,t){let e=K.current;e?.state===`recording`?(wt.current=!0,o(e)):(Cn(),V(`muted`))}else U.current&&!R&&!Y&&(V(`idle`),$());return t})},[R,$,Cn,Y]),Pn=(0,n.useCallback)((e,t)=>{M(e),t&&(G.current=!0),V(`speaking`),z(e)},[M,z]),Fn=(0,n.useCallback)(e=>{switch(Ct.current=Date.now(),e){case`end`:G.current=!1,Ht.current=!0,Pn(`Okay — ending our call now. Goodbye!`,!1),window.setTimeout(()=>{Ht.current&&(Ht.current=!1,Q())},2e3);break;case`mute`:{W.current||Nn();let e=`Muted. Tap the mic button when you want me to listen again.`;M(e),z(e);break}case`minimize`:X(),Pn(`Minimized — I'm still listening. Tap the call pill to bring the chat back.`,!0);break;case`expand`:Ie(!0),Pn(`Sure — expanding the view.`,!0);break;case`shrink`:Re(null),Ie(!1),Pn(`Okay — back to the smaller view.`,!0);break}},[X,Q,M,z,Pn,Nn]);(0,n.useEffect)(()=>{Wt.current=Fn},[Fn]);let In=(0,n.useRef)(!1);(0,n.useEffect)(()=>{In.current&&!g&&Ht.current&&(Ht.current=!1,Q()),In.current=g},[g,Q]);let Ln=(0,n.useCallback)(e=>{Gt.current=e,Ye(e);let t=K.current;t?.state===`recording`&&(wt.current=!0,o(t))},[]),Rn=(0,n.useCallback)(()=>{if(!(!U.current||W.current)){if(Z(),j(),Se(),Ct.current=Date.now(),V(`listening`),Kt.current){let e=()=>{if(!(!U.current||W.current)){if(Kt.current){window.setTimeout(e,70);return}G.current=!1,$()}};window.setTimeout(e,70);return}G.current=!1,$()}},[$,j,Z,Se]),zn=(0,n.useCallback)(async()=>{if(!(Pt.current||Ft.current)&&!(!U.current||W.current))try{let e=await navigator.mediaDevices.getUserMedia({audio:bt(Gt.current)});if(!U.current||W.current||K.current||Pt.current||!Jt.current&&Yt.current!==`processing`){e.getTracks().forEach(e=>e.stop());return}Pt.current=e,It.current=0,zt.current=0,Bt.current=0;let t=()=>{if(q.current)return;j(),Se(),Xt.current+=1,Ct.current=Date.now(),G.current=!1,V(`listening`);let t=a(e);q.current=t,Lt.current=[],Rt.current=performance.now(),zt.current=0,t.ondataavailable=e=>{e.data.size>0&&Lt.current.push(e.data)},t.onstop=async()=>{let e=Lt.current,n=Bt.current,r=t.mimeType||`audio/webm`;q.current=null,Lt.current=[],Z(),U.current&&await jn(new Blob(e,{type:r}),n,$,`barge`,Math.max(0,(performance.now()-Rt.current)/1e3))},t.start(250)};Ft.current=yt(e,(e,n)=>{if(Bt.current=Math.max(Bt.current,e),n-jt.current>90&&(jt.current=n,Pe(e)),e>=.009)It.current||(It.current=n),n-It.current>=280&&t(),zt.current=0;else if(q.current&&e<=qe){zt.current||(zt.current=n);let e=n-zt.current,t=n-Rt.current;e>=Je&&t>=550&&q.current.state===`recording`&&o(q.current)}else q.current&&n-Rt.current>=We&&q.current.state===`recording`?o(q.current):(It.current=0,zt.current=0)}),Ft.current||Z()}catch{}},[jn,$,j,Z,Se]);(0,n.useEffect)(()=>{if(!(H&&!je&&!R&&!Y&&(tt||B===`processing`))){Z();return}let e=window.setTimeout(()=>void zn(),250);return()=>window.clearTimeout(e)},[tt,R,zn,Z,H,je,B,Y]);let Bn=H&&!je&&(h||g||B===`processing`);(0,n.useEffect)(()=>{!H||je||g&&V(`speaking`)},[g,H,je]),(0,n.useEffect)(()=>{if(!H||je||!G.current||h||g||![`processing`,`speaking`,`noise`,`misunderstood`].includes(B))return;let e=window.setTimeout(()=>{!U.current||W.current||Kt.current||(G.current=!1,$())},700);return()=>window.clearTimeout(e)},[g,h,$,H,je,B]),(0,n.useEffect)(()=>()=>Q(),[Q]);let[Vn,Hn]=(0,n.useState)(``),Un=(0,n.useRef)(!1);(0,n.useEffect)(()=>{if(Un.current&&!h){let e=[...m].reverse().find(e=>e.role===`assistant`&&!e.streaming&&!e.pending&&e.content);e&&Hn(e.content)}Un.current=h},[h,m]),(0,n.useEffect)(()=>{if(!l)return;let e=at.current;nn||e?.querySelector(`.cf-textarea`)?.focus();let t=t=>{if(t.key===`Escape`){if(t.preventDefault(),nn){rn(!1);return}X();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)},[l,X,nn]),(0,n.useEffect)(()=>{let e=at.current;e&&(l?e.removeAttribute(`inert`):e.setAttribute(`inert`,``))},[l]);let Wn=i.accentColor??i.themeTokens?.accent??p?.accentColor,Gn={zIndex:i.zIndex,"--cf-h-pad":`${i.horizontalPadding}px`,"--cf-v-pad":`${i.verticalPadding}px`,...i.themeTokens?.accentText?{"--cf-accent-ink":i.themeTokens.accentText}:{},...i.themeTokens?.accentStrong?{"--cf-accent-2":i.themeTokens.accentStrong}:{},...i.themeTokens?.background?{"--cf-bg":i.themeTokens.background}:{},...i.themeTokens?.surface?{"--cf-surface":i.themeTokens.surface}:{},...i.themeTokens?.surfaceMuted?{"--cf-surface-2":i.themeTokens.surfaceMuted}:{},...i.themeTokens?.text?{"--cf-text":i.themeTokens.text}:{},...i.themeTokens?.mutedText?{"--cf-muted":i.themeTokens.mutedText}:{},...i.themeTokens?.border?{"--cf-border":i.themeTokens.border}:{},...i.themeTokens?.shadow?{"--cf-shadow":i.themeTokens.shadow}:{},...i.themeTokens?.radius?{"--cf-radius":i.themeTokens.radius}:{},...i.themeTokens?.fontFamily?{"--cf-font":i.themeTokens.fontFamily}:{},...Wn?{"--cf-accent":Wn,"--cf-accent-2":i.themeTokens?.accentStrong??`color-mix(in oklab, ${Wn} 76%, #14141f)`}:{}},Kn=e=>E(e),qn=[...m].reverse().find(e=>e.role===`user`&&e.content.trim())?.content??``,Jn=m.some(e=>e.role===`user`),Yn=p?.talkbackMode===`avatar`||p?.widgetModule===`assistant`||!!p?.allowVoiceInput,Xn=!Y&&Yn&&!Jn?un.filter((e,t)=>!(t===0&&e.role===`assistant`)):un,Zn=y===`human`&&b?b:p?.agentName??`Chat`,Qn=y===`human`?`Live support`:y===`queued`?`Waiting for the team`:p?.offline?c.statusOffline:c.statusOnline,$n=!R&&!Y?p?.availableActions:void 0,er=H&&B===`connecting`&&!Y;return(0,r.jsx)(e.o,{value:c,children:(0,r.jsxs)(`div`,{class:`cf-root`,"data-theme":$e,"data-align":i.alignment,"data-display":`floating`,style:Gn,children:[Fe&&l&&(0,r.jsx)(`div`,{class:`cf-theater-backdrop`,onClick:Dn}),(0,r.jsxs)(`div`,{ref:at,class:`cf-panel ${l?`is-open`:``} ${H?`cf-panel--call`:``} ${er?`cf-panel--voice-connecting`:``} ${Fe&&l?`cf-panel--theater`:``} ${dn?`cf-panel--analytics-focus`:``}`,role:`dialog`,"aria-modal":`false`,"aria-label":`Chat with ${p?.agentName??`us`}`,"aria-hidden":!l,children:[(0,r.jsxs)(`div`,{class:`cf-header`,children:[(0,r.jsx)(ue,{persona:p,hideWhenMissing:!0}),(0,r.jsxs)(`div`,{class:`cf-header__meta`,children:[(0,r.jsx)(`div`,{class:`cf-header__name`,children:Zn}),(0,r.jsx)(`div`,{class:`cf-header__status ${y===`ai`&&p?.offline?`cf-header__status--offline`:``}`,children:(0,r.jsx)(`span`,{class:`cf-header__status-text`,children:Qn})})]}),(0,r.jsxs)(`div`,{class:`cf-header__actions`,children:[ge.length>0&&(0,r.jsx)(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":c.pastConversations,title:c.pastConversations,"aria-pressed":on,onClick:()=>sn(e=>!e),children:(0,r.jsx)(te,{})}),Jn&&!R&&!Y&&(0,r.jsx)(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":c.endChat,title:c.endChat,onClick:mn,children:(0,r.jsx)(D,{})}),i.sound&&nt&&(0,r.jsx)(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":Xe?c.unmuteSounds:c.muteSounds,"aria-pressed":Xe,onClick:rt,children:Xe?(0,r.jsx)(S,{}):(0,r.jsx)(x,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-header__btn cf-header__close`,"aria-label":c.closeChat,onClick:X,children:(0,r.jsx)(d,{})})]})]}),(0,r.jsx)(`div`,{class:`cf-panel__video`,children:dn?(0,r.jsx)(`div`,{class:`cf-analytics-focus`,role:`region`,"aria-label":`Expanded analytics result`,children:(0,r.jsx)(ke,{visualization:dn,expanded:!0,onClose:En})}):!Y&&Yn?(0,r.jsx)(pe,{persona:p,starters:[],onPick:E,onFocusComposer:Mn,speaking:g,voiceState:B,replyPending:H&&h&&!g,pinned:!0,muted:je,onToggleMute:Nn,onEndCall:Q,onTalkNow:Rn,showTalkNow:Bn,micLevel:Ne,theaterMode:Fe,onToggleTheater:wn,onMinimize:X,audioDevices:ze,selectedAudioDeviceId:Ke,onSelectAudioDevice:Ln,connectingOnly:er}):null}),!er&&(0,r.jsxs)(`div`,{class:`cf-panel__chat`,children:[i.preview&&(0,r.jsx)(`div`,{class:`cf-preview-banner`,children:c.previewBanner}),Y&&(0,r.jsx)(`div`,{class:`cf-viewing-banner`,children:c.viewingPast}),(0,r.jsxs)(`div`,{class:`cf-body`,ref:xt,role:`log`,onScroll:vn,children:[Xn.map((e,t)=>(0,r.jsx)(Oe,{msg:e,persona:p,isLast:!Y&&t===Xn.length-1,visitor:_,hasEmail:v,lastQuestion:qn,showActions:!Y&&t===Xn.length-1&&!!e.handoffOffered,onPickReply:Kn,onSubmitForm:ce,onDemoSlots:L,onRetry:re,ratable:!Y&&Xn.slice(0,t).some(e=>e.role===`user`),onRate:ae,onExpandVisualization:Y?void 0:Tn},e.id)),!Jn&&!Y&&(0,r.jsxs)(r.Fragment,{children:[Xn.length===0&&(0,r.jsx)(He,{name:p?.agentName??`Assistant`,greeting:p?.greeting}),(0,r.jsx)(Te,{items:w,onPick:E}),(0,r.jsx)(Ee,{items:ee})]}),$t&&(0,r.jsxs)(`button`,{type:`button`,class:`cf-newmsg`,onClick:yn,children:[(0,r.jsx)(ie,{}),c.newMessages]})]}),(0,r.jsx)(`div`,{class:`cf-sr-live`,"aria-live":`polite`,"aria-atomic":`true`,children:Vn}),h&&!R&&!Y&&(0,r.jsx)(`div`,{class:`cf-stopbar`,children:(0,r.jsxs)(`button`,{type:`button`,class:`cf-stop`,onClick:j,children:[(0,r.jsx)(T,{}),c.stop]})}),Y?(0,r.jsx)(`div`,{class:`cf-ended`,children:(0,r.jsx)(`button`,{type:`button`,class:`cf-ended__btn`,onClick:be,children:c.backToChat})}):R?(0,r.jsxs)(`div`,{class:`cf-ended`,children:[(0,r.jsx)(`p`,{class:`cf-ended__text`,children:c.conversationEnded}),i.csat&&Jn?cn?(0,r.jsx)(`p`,{class:`cf-ended__text`,children:c.feedbackThanks}):(0,r.jsxs)(`div`,{class:`cf-csat`,children:[(0,r.jsx)(`span`,{class:`cf-csat__q`,children:c.csatPrompt}),(0,r.jsx)(`button`,{type:`button`,class:`cf-csat__btn`,"aria-label":c.feedbackHelpful,onClick:()=>{se(`up`),ln(!0)},children:(0,r.jsx)(ne,{})}),(0,r.jsx)(`button`,{type:`button`,class:`cf-csat__btn`,"aria-label":c.feedbackNotHelpful,onClick:()=>{se(`down`),ln(!0)},children:(0,r.jsx)(O,{})})]}):null,(0,r.jsx)(`button`,{type:`button`,class:`cf-ended__btn`,onClick:gn,children:c.startNewChat})]}):(0,r.jsxs)(r.Fragment,{children:[C?(0,r.jsxs)(`div`,{class:`cf-live-typing`,"aria-live":`polite`,children:[C,` is typing…`]}):null,$n&&$n.length>0&&(0,r.jsx)(`div`,{class:`cf-footer-actions`,children:(0,r.jsx)(Ce,{actions:$n,visitor:_,onSubmitForm:ce,onDemoSlots:L,scheduler:p?.scheduler})}),(0,r.jsx)(Ve,{onSend:E,onSendGif:k,onTyping:A,disabled:h,allowVoice:!!p?.allowVoiceInput,onTranscribe:F,gifEnabled:de,onSearchGifs:I,allowAttach:i.attachments,onExtract:le})]}),!R&&p?.disclaimerText&&(0,r.jsx)(`div`,{class:`cf-disclaimer`,children:p.disclaimerText}),(0,r.jsxs)(`div`,{class:`cf-footer`,children:[c.poweredBy,` `,(0,r.jsx)(`a`,{href:`https://accurix.tech/centrinfo`,target:`_blank`,rel:`noopener noreferrer`,children:`Centrinfo`})]})]}),nn&&(0,r.jsx)(`div`,{class:`cf-confirm`,onClick:()=>rn(!1),children:(0,r.jsxs)(`div`,{class:`cf-confirm__card`,role:`alertdialog`,"aria-modal":`true`,"aria-label":c.endChatConfirm,onClick:e=>e.stopPropagation(),children:[(0,r.jsx)(`div`,{class:`cf-confirm__title`,children:c.endChatConfirm}),(0,r.jsx)(`div`,{class:`cf-confirm__body`,children:c.endChatConfirmBody}),(0,r.jsxs)(`div`,{class:`cf-confirm__actions`,children:[(0,r.jsx)(`button`,{ref:an,type:`button`,class:`cf-confirm__btn cf-confirm__btn--cancel`,onClick:()=>rn(!1),children:c.cancel}),(0,r.jsx)(`button`,{type:`button`,class:`cf-confirm__btn cf-confirm__btn--danger`,onClick:hn,children:c.endConfirmCta})]})]})}),on&&(0,r.jsx)(`div`,{class:`cf-confirm`,onClick:()=>sn(!1),children:(0,r.jsxs)(`div`,{class:`cf-history`,role:`dialog`,"aria-modal":`true`,"aria-label":c.pastConversations,onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)(`div`,{class:`cf-history__head`,children:[(0,r.jsx)(`span`,{children:c.pastConversations}),(0,r.jsx)(`button`,{type:`button`,class:`cf-header__btn`,"aria-label":c.closeChat,onClick:()=>sn(!1),children:(0,r.jsx)(d,{})})]}),(0,r.jsx)(`div`,{class:`cf-history__list`,children:ge.map(e=>(0,r.jsxs)(`button`,{type:`button`,class:`cf-history__item ${e.sessionId===_e?`is-active`:``}`,onClick:()=>{ye(e.sessionId),sn(!1)},children:[(0,r.jsx)(`span`,{class:`cf-history__title`,children:e.title}),(0,r.jsxs)(`span`,{class:`cf-history__meta`,children:[new Date(e.ts).toLocaleDateString(void 0,{month:`short`,day:`numeric`}),e.ended?` · ${c.historyEnded}`:``]})]},e.sessionId))})]})})]}),H&&!l?(0,r.jsx)(Be,{persona:p,voiceState:B,muted:je,onToggleMute:Nn,onEndCall:Q,micLevel:Ne,onExpand:fn}):Fe&&l?null:!i.hideDefaultLauncher&&(0,r.jsxs)(`button`,{ref:ut,type:`button`,class:`cf-launcher`,"aria-label":l?c.closeChat:c.openChat,"aria-expanded":l,onClick:pn,children:[i.launcherIcon?(0,r.jsx)(`img`,{class:`cf-launcher__img`,src:i.launcherIcon,alt:``}):(0,r.jsx)(u,{}),!l&&we>0&&(0,r.jsx)(`span`,{class:`cf-launcher__badge`,children:we})]})]})})},St=`
|
|
2
2
|
:host {
|
|
3
3
|
all: initial;
|
|
4
4
|
}
|
|
@@ -491,43 +491,102 @@ const e=require(`./config-CzrfVSPp.cjs`);let t=require(`preact`),n=require(`prea
|
|
|
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
493
|
.cf-system-event {
|
|
494
|
-
width: min(
|
|
495
|
-
display:
|
|
496
|
-
|
|
497
|
-
|
|
494
|
+
width: min(280px, 88%);
|
|
495
|
+
display: flex;
|
|
496
|
+
flex-direction: column;
|
|
497
|
+
align-items: center;
|
|
498
|
+
gap: 4px;
|
|
498
499
|
text-align: center;
|
|
499
500
|
color: var(--cf-muted);
|
|
500
501
|
}
|
|
501
502
|
.cf-system-event__mark {
|
|
502
|
-
width:
|
|
503
|
-
height:
|
|
503
|
+
width: 7px;
|
|
504
|
+
height: 7px;
|
|
504
505
|
border-radius: 999px;
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
border: 1px solid color-mix(in srgb, var(--cf-accent, #2f7f55) 38%, transparent);
|
|
508
|
-
background: color-mix(in srgb, var(--cf-accent, #2f7f55) 8%, transparent);
|
|
509
|
-
}
|
|
510
|
-
.cf-system-event__mark .cf-msg__avatar {
|
|
511
|
-
align-self: center;
|
|
512
|
-
width: 28px;
|
|
513
|
-
height: 28px;
|
|
506
|
+
background: color-mix(in srgb, var(--cf-accent, #2f7f55) 72%, transparent);
|
|
507
|
+
box-shadow: 0 0 0 4px color-mix(in srgb, var(--cf-accent, #2f7f55) 12%, transparent);
|
|
514
508
|
}
|
|
515
509
|
.cf-system-event__text {
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
510
|
+
max-width: 100%;
|
|
511
|
+
padding: 7px 11px;
|
|
512
|
+
border: 1px solid var(--cf-border);
|
|
513
|
+
border-radius: 999px;
|
|
514
|
+
background: color-mix(in srgb, var(--cf-surface, #ffffff) 86%, transparent);
|
|
515
|
+
font-size: 12.5px;
|
|
516
|
+
font-weight: 600;
|
|
517
|
+
line-height: 1.35;
|
|
518
|
+
color: var(--cf-muted);
|
|
519
|
+
overflow-wrap: break-word;
|
|
520
520
|
}
|
|
521
521
|
.cf-system-event__time {
|
|
522
|
-
font-size:
|
|
522
|
+
font-size: 11px;
|
|
523
523
|
line-height: 1.2;
|
|
524
524
|
color: var(--cf-muted);
|
|
525
525
|
}
|
|
526
526
|
|
|
527
527
|
/* ---------- Markdown in answers ---------- */
|
|
528
|
-
.cf-msg__bubble .cf-md-h {
|
|
529
|
-
|
|
530
|
-
|
|
528
|
+
.cf-msg__bubble .cf-md-h {
|
|
529
|
+
margin: 12px 0 5px;
|
|
530
|
+
color: var(--cf-text);
|
|
531
|
+
font-size: 14.5px;
|
|
532
|
+
font-weight: 750;
|
|
533
|
+
line-height: 1.3;
|
|
534
|
+
}
|
|
535
|
+
.cf-msg__bubble .cf-md-h:first-child { margin-top: 0; }
|
|
536
|
+
.cf-msg__bubble .cf-md-h--1,
|
|
537
|
+
.cf-msg__bubble .cf-md-h--2 { font-size: 15.5px; }
|
|
538
|
+
.cf-msg__bubble p.cf-md-list-intro {
|
|
539
|
+
margin: 11px 0 5px;
|
|
540
|
+
color: var(--cf-text);
|
|
541
|
+
font-weight: 750;
|
|
542
|
+
line-height: 1.35;
|
|
543
|
+
}
|
|
544
|
+
.cf-msg__bubble ul.cf-md-list,
|
|
545
|
+
.cf-msg__bubble ol.cf-md-list {
|
|
546
|
+
display: grid;
|
|
547
|
+
gap: 9px;
|
|
548
|
+
margin: 8px 0 11px;
|
|
549
|
+
padding: 0;
|
|
550
|
+
list-style: none;
|
|
551
|
+
}
|
|
552
|
+
.cf-msg__bubble .cf-md-list li {
|
|
553
|
+
position: relative;
|
|
554
|
+
min-width: 0;
|
|
555
|
+
padding-left: 18px;
|
|
556
|
+
line-height: 1.52;
|
|
557
|
+
}
|
|
558
|
+
.cf-msg__bubble ul.cf-md-list > li::before {
|
|
559
|
+
position: absolute;
|
|
560
|
+
top: .58em;
|
|
561
|
+
left: 2px;
|
|
562
|
+
width: 6px;
|
|
563
|
+
height: 6px;
|
|
564
|
+
border-radius: 50%;
|
|
565
|
+
background: var(--cf-accent);
|
|
566
|
+
content: "";
|
|
567
|
+
}
|
|
568
|
+
.cf-msg__bubble ol.cf-md-list { counter-reset: cf-answer-item; }
|
|
569
|
+
.cf-msg__bubble ol.cf-md-list > li { padding-left: 25px; counter-increment: cf-answer-item; }
|
|
570
|
+
.cf-msg__bubble ol.cf-md-list > li::before {
|
|
571
|
+
position: absolute;
|
|
572
|
+
top: .08em;
|
|
573
|
+
left: 0;
|
|
574
|
+
display: grid;
|
|
575
|
+
width: 19px;
|
|
576
|
+
height: 19px;
|
|
577
|
+
place-items: center;
|
|
578
|
+
border-radius: 50%;
|
|
579
|
+
color: var(--cf-accent);
|
|
580
|
+
background: var(--cf-accent-soft);
|
|
581
|
+
content: counter(cf-answer-item);
|
|
582
|
+
font-size: 10px;
|
|
583
|
+
font-weight: 750;
|
|
584
|
+
}
|
|
585
|
+
.cf-msg__bubble .cf-md-list li > strong:first-child {
|
|
586
|
+
display: inline;
|
|
587
|
+
color: var(--cf-text);
|
|
588
|
+
font-weight: 750;
|
|
589
|
+
}
|
|
531
590
|
.cf-md-code {
|
|
532
591
|
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
533
592
|
font-size: 0.86em;
|
|
@@ -565,6 +624,7 @@ const e=require(`./config-CzrfVSPp.cjs`);let t=require(`preact`),n=require(`prea
|
|
|
565
624
|
}
|
|
566
625
|
|
|
567
626
|
/* message tools (copy / retry) */
|
|
627
|
+
.cf-msg__actions { display: flex; align-items: flex-start; gap: 2px; }
|
|
568
628
|
.cf-msg__tools { display: flex; gap: 6px; }
|
|
569
629
|
.cf-tool {
|
|
570
630
|
display: inline-flex;
|
|
@@ -582,7 +642,7 @@ const e=require(`./config-CzrfVSPp.cjs`);let t=require(`preact`),n=require(`prea
|
|
|
582
642
|
.cf-tool svg { width: 13px; height: 13px; }
|
|
583
643
|
|
|
584
644
|
/* Per-message 👍/👎 feedback. */
|
|
585
|
-
.cf-feedback { margin-top:
|
|
645
|
+
.cf-feedback { margin-top: 0; }
|
|
586
646
|
.cf-feedback__row { display: flex; align-items: center; gap: 4px; }
|
|
587
647
|
.cf-feedback__btn {
|
|
588
648
|
display: inline-flex;
|
|
@@ -732,6 +792,8 @@ const e=require(`./config-CzrfVSPp.cjs`);let t=require(`preact`),n=require(`prea
|
|
|
732
792
|
|
|
733
793
|
/* typing */
|
|
734
794
|
.cf-typing {
|
|
795
|
+
max-width: 100%;
|
|
796
|
+
flex-wrap: wrap;
|
|
735
797
|
display: inline-flex;
|
|
736
798
|
align-items: center;
|
|
737
799
|
gap: 4px;
|
|
@@ -739,6 +801,8 @@ const e=require(`./config-CzrfVSPp.cjs`);let t=require(`preact`),n=require(`prea
|
|
|
739
801
|
min-width: 98px;
|
|
740
802
|
}
|
|
741
803
|
.cf-typing__label {
|
|
804
|
+
min-width: 0;
|
|
805
|
+
overflow-wrap: anywhere;
|
|
742
806
|
margin-right: 3px;
|
|
743
807
|
color: var(--cf-muted);
|
|
744
808
|
font-size: 12px;
|
|
@@ -2543,6 +2607,28 @@ const e=require(`./config-CzrfVSPp.cjs`);let t=require(`preact`),n=require(`prea
|
|
|
2543
2607
|
align-items: center;
|
|
2544
2608
|
gap: 6px;
|
|
2545
2609
|
}
|
|
2610
|
+
.cf-analytics-chart-picker {
|
|
2611
|
+
display: flex;
|
|
2612
|
+
align-items: center;
|
|
2613
|
+
gap: 5px;
|
|
2614
|
+
color: var(--cf-muted);
|
|
2615
|
+
font-size: 9px;
|
|
2616
|
+
font-weight: 700;
|
|
2617
|
+
}
|
|
2618
|
+
.cf-analytics-chart-picker select {
|
|
2619
|
+
max-width: 112px;
|
|
2620
|
+
height: 30px;
|
|
2621
|
+
border: 1px solid var(--cf-border);
|
|
2622
|
+
border-radius: 8px;
|
|
2623
|
+
background: var(--cf-bg);
|
|
2624
|
+
padding: 0 22px 0 8px;
|
|
2625
|
+
color: var(--cf-text);
|
|
2626
|
+
font: inherit;
|
|
2627
|
+
}
|
|
2628
|
+
.cf-analytics-chart-picker select:focus-visible {
|
|
2629
|
+
outline: 2px solid var(--cf-accent);
|
|
2630
|
+
outline-offset: 2px;
|
|
2631
|
+
}
|
|
2546
2632
|
.cf-analytics-visualization__title {
|
|
2547
2633
|
overflow: hidden;
|
|
2548
2634
|
color: var(--cf-muted);
|
|
@@ -2563,13 +2649,6 @@ const e=require(`./config-CzrfVSPp.cjs`);let t=require(`preact`),n=require(`prea
|
|
|
2563
2649
|
font-size: 9px;
|
|
2564
2650
|
line-height: 1.35;
|
|
2565
2651
|
}
|
|
2566
|
-
.cf-analytics-meta__model {
|
|
2567
|
-
border-radius: 999px;
|
|
2568
|
-
background: color-mix(in srgb, var(--cf-accent) 12%, transparent);
|
|
2569
|
-
padding: 2px 6px;
|
|
2570
|
-
color: var(--cf-accent);
|
|
2571
|
-
font-weight: 700;
|
|
2572
|
-
}
|
|
2573
2652
|
.cf-analytics-meta__dot {
|
|
2574
2653
|
display: inline-block;
|
|
2575
2654
|
width: 5px;
|
|
@@ -2637,6 +2716,151 @@ const e=require(`./config-CzrfVSPp.cjs`);let t=require(`preact`),n=require(`prea
|
|
|
2637
2716
|
font-size: 9px;
|
|
2638
2717
|
line-height: 1.4;
|
|
2639
2718
|
}
|
|
2719
|
+
.cf-data-table {
|
|
2720
|
+
display: flex;
|
|
2721
|
+
min-width: 0;
|
|
2722
|
+
min-height: 0;
|
|
2723
|
+
flex: 1;
|
|
2724
|
+
flex-direction: column;
|
|
2725
|
+
margin-top: 10px;
|
|
2726
|
+
overflow: hidden;
|
|
2727
|
+
border: 1px solid var(--cf-border);
|
|
2728
|
+
border-radius: 9px;
|
|
2729
|
+
background: var(--cf-bg);
|
|
2730
|
+
}
|
|
2731
|
+
.cf-table-fields {
|
|
2732
|
+
display: flex;
|
|
2733
|
+
min-width: 0;
|
|
2734
|
+
min-height: 38px;
|
|
2735
|
+
align-items: center;
|
|
2736
|
+
gap: 6px;
|
|
2737
|
+
padding: 7px 8px;
|
|
2738
|
+
border-bottom: 1px solid var(--cf-border);
|
|
2739
|
+
color: var(--cf-muted);
|
|
2740
|
+
font-size: 9px;
|
|
2741
|
+
}
|
|
2742
|
+
.cf-table-fields > strong {
|
|
2743
|
+
flex: 0 0 auto;
|
|
2744
|
+
color: var(--cf-muted);
|
|
2745
|
+
font-size: 8px;
|
|
2746
|
+
letter-spacing: .06em;
|
|
2747
|
+
text-transform: uppercase;
|
|
2748
|
+
}
|
|
2749
|
+
.cf-field-list {
|
|
2750
|
+
display: flex;
|
|
2751
|
+
min-width: 0;
|
|
2752
|
+
gap: 5px;
|
|
2753
|
+
overflow: auto hidden;
|
|
2754
|
+
scrollbar-width: none;
|
|
2755
|
+
}
|
|
2756
|
+
.cf-field-chip {
|
|
2757
|
+
flex: 0 0 auto;
|
|
2758
|
+
padding: 4px 6px;
|
|
2759
|
+
border-radius: 6px;
|
|
2760
|
+
background: color-mix(in srgb, var(--cf-accent) 11%, var(--cf-bg));
|
|
2761
|
+
color: var(--cf-accent);
|
|
2762
|
+
font-weight: 650;
|
|
2763
|
+
}
|
|
2764
|
+
.cf-table-field-count { margin-left: auto;white-space: nowrap; }
|
|
2765
|
+
.cf-table-controls {
|
|
2766
|
+
display: grid;
|
|
2767
|
+
grid-template-columns: minmax(110px, 1fr) auto;
|
|
2768
|
+
gap: 6px;
|
|
2769
|
+
padding: 7px 8px 5px;
|
|
2770
|
+
}
|
|
2771
|
+
.cf-table-search {
|
|
2772
|
+
display: flex;
|
|
2773
|
+
min-width: 0;
|
|
2774
|
+
align-items: center;
|
|
2775
|
+
gap: 5px;
|
|
2776
|
+
padding: 0 7px;
|
|
2777
|
+
border: 1px solid var(--cf-border);
|
|
2778
|
+
border-radius: 7px;
|
|
2779
|
+
background: var(--cf-bg);
|
|
2780
|
+
color: var(--cf-muted);
|
|
2781
|
+
}
|
|
2782
|
+
.cf-table-search input {
|
|
2783
|
+
width: 100%;
|
|
2784
|
+
min-width: 0;
|
|
2785
|
+
height: 28px;
|
|
2786
|
+
border: 0;
|
|
2787
|
+
outline: 0;
|
|
2788
|
+
background: transparent;
|
|
2789
|
+
color: var(--cf-text);
|
|
2790
|
+
font: 500 9px/1 var(--cf-font);
|
|
2791
|
+
}
|
|
2792
|
+
.cf-table-modes {
|
|
2793
|
+
display: inline-flex;
|
|
2794
|
+
padding: 2px;
|
|
2795
|
+
border: 1px solid var(--cf-border);
|
|
2796
|
+
border-radius: 8px;
|
|
2797
|
+
background: var(--cf-surface);
|
|
2798
|
+
}
|
|
2799
|
+
.cf-segment {
|
|
2800
|
+
min-height: 26px;
|
|
2801
|
+
border-radius: 6px;
|
|
2802
|
+
padding: 0 7px !important;
|
|
2803
|
+
color: var(--cf-muted) !important;
|
|
2804
|
+
font-size: 9px;
|
|
2805
|
+
font-weight: 650;
|
|
2806
|
+
}
|
|
2807
|
+
.cf-segment.is-active { background: var(--cf-accent) !important;color: var(--cf-accent-ink) !important; }
|
|
2808
|
+
.cf-table-column-bar { display: flex;align-items: center;padding: 0 8px 7px; }
|
|
2809
|
+
.cf-column-picker { position: relative; }
|
|
2810
|
+
.cf-column-picker > summary {
|
|
2811
|
+
min-height: 27px;
|
|
2812
|
+
padding: 6px 8px;
|
|
2813
|
+
border: 1px solid var(--cf-border);
|
|
2814
|
+
border-radius: 7px;
|
|
2815
|
+
cursor: pointer;
|
|
2816
|
+
list-style: none;
|
|
2817
|
+
color: var(--cf-text);
|
|
2818
|
+
font-size: 9px;
|
|
2819
|
+
font-weight: 650;
|
|
2820
|
+
}
|
|
2821
|
+
.cf-column-picker > summary::-webkit-details-marker { display: none; }
|
|
2822
|
+
.cf-column-menu {
|
|
2823
|
+
position: absolute;
|
|
2824
|
+
z-index: 5;
|
|
2825
|
+
top: calc(100% + 4px);
|
|
2826
|
+
left: 0;
|
|
2827
|
+
display: grid;
|
|
2828
|
+
min-width: 160px;
|
|
2829
|
+
gap: 6px;
|
|
2830
|
+
padding: 9px;
|
|
2831
|
+
border: 1px solid var(--cf-border);
|
|
2832
|
+
border-radius: 8px;
|
|
2833
|
+
background: var(--cf-bg);
|
|
2834
|
+
box-shadow: 0 10px 24px rgba(15,30,42,.16);
|
|
2835
|
+
}
|
|
2836
|
+
.cf-column-menu label { display: flex;align-items: center;gap: 7px;color: var(--cf-text);font-size: 9px; }
|
|
2837
|
+
.cf-table-wrap {
|
|
2838
|
+
position: relative;
|
|
2839
|
+
min-height: 0;
|
|
2840
|
+
max-height: 210px;
|
|
2841
|
+
overflow: auto;
|
|
2842
|
+
border-top: 1px solid var(--cf-border);
|
|
2843
|
+
scrollbar-width: thin;
|
|
2844
|
+
}
|
|
2845
|
+
.cf-analytics-visualization.is-expanded .cf-table-wrap { max-height: none;flex: 1; }
|
|
2846
|
+
.cf-table { width: 100%;border-collapse: separate;border-spacing: 0;color: var(--cf-text);font-size: 10px; }
|
|
2847
|
+
.cf-table th { position: sticky;top: 0;z-index: 1;background: var(--cf-surface);color: var(--cf-muted);font-size: 9px;font-weight: 720;text-align: left; }
|
|
2848
|
+
.cf-table th,.cf-table td { padding: 8px 9px;border-bottom: 1px solid var(--cf-border);white-space: nowrap; }
|
|
2849
|
+
.cf-table .cf-select-cell { width: 28px;padding-right: 3px;text-align: center; }
|
|
2850
|
+
.cf-table input[type="checkbox"],.cf-column-menu input[type="checkbox"] { width: 13px;height: 13px;accent-color: var(--cf-accent); }
|
|
2851
|
+
.cf-table-sort { display: flex !important;width: 100%;align-items: center;gap: 5px;color: inherit !important;font: inherit;text-align: left; }
|
|
2852
|
+
.cf-sort-direction { color: var(--cf-muted);font-size: 10px; }
|
|
2853
|
+
.cf-table.is-matrix tbody td:not(.cf-select-cell) { background: color-mix(in srgb,var(--cf-accent) 7%,var(--cf-bg)); }
|
|
2854
|
+
.cf-table tbody tr:hover,.cf-table tbody tr.is-selected { background: color-mix(in srgb,var(--cf-accent) 10%,var(--cf-bg)); }
|
|
2855
|
+
.cf-table tbody tr.is-selected td:first-child { box-shadow: inset 3px 0 0 var(--cf-accent); }
|
|
2856
|
+
.cf-show-more { position: sticky;left: 50%;bottom: 6px;transform: translateX(-50%);margin: 8px auto;padding: 6px 9px !important;border: 1px solid var(--cf-border) !important;border-radius: 7px;background: var(--cf-bg) !important;font-size: 9px;font-weight: 650; }
|
|
2857
|
+
.cf-table-summary { display: flex;align-items: center;justify-content: space-between;gap: 8px;padding: 7px 9px;color: var(--cf-muted);font-size: 8px; }
|
|
2858
|
+
.cf-visually-hidden { position: absolute;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0); }
|
|
2859
|
+
@media (max-width: 430px) {
|
|
2860
|
+
.cf-table-modes { display: none; }
|
|
2861
|
+
.cf-table-controls { grid-template-columns: 1fr; }
|
|
2862
|
+
.cf-table-summary span:last-child { display: none; }
|
|
2863
|
+
}
|
|
2640
2864
|
.cf-analytics-visualization__expand,
|
|
2641
2865
|
.cf-analytics-visualization__close {
|
|
2642
2866
|
display: grid;
|
|
@@ -3050,4 +3274,4 @@ const e=require(`./config-CzrfVSPp.cjs`);let t=require(`preact`),n=require(`prea
|
|
|
3050
3274
|
.cf-analytics-focus { padding: 14px; }
|
|
3051
3275
|
.cf-analytics-visualization.is-expanded .cf-analytics-echart { min-height: 260px; }
|
|
3052
3276
|
}
|
|
3053
|
-
`;function
|
|
3277
|
+
`;function U(e){"@babel/helpers - typeof";return U=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},U(e)}function W(e,t){if(U(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(U(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function G(e){var t=W(e,`string`);return U(t)==`symbol`?t:t+``}function Ct(e,t,n){return(t=G(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const wt=`centrinfo-widget`;var K=class extends HTMLElement{constructor(...e){super(...e),Ct(this,`controls`,null)}mountWith(n){let i=e.t(n),a=this.shadowRoot??this.attachShadow({mode:`open`});if(this.style.zIndex=String(i.zIndex),`adoptedStyleSheets`in Document.prototype&&typeof CSSStyleSheet<`u`){let e=new CSSStyleSheet;e.replaceSync(St),a.adoptedStyleSheets=[e]}else{let e=document.createElement(`style`);e.textContent=St,a.appendChild(e)}(0,t.render)((0,r.jsx)(xt,{transport:i.demo?new e.v:i.preview?new e._(new e.y(i.apiBaseUrl,i.token,i.gifApiKey,i.analyticsContextToken,{agentName:i.agentName,agentAvatarUrl:i.agentAvatarUrl},i.identityToken,i.getIdentityToken,i.chatSurface),i.strings):new e.y(i.apiBaseUrl,i.token,i.gifApiKey,i.analyticsContextToken,{agentName:i.agentName,agentAvatarUrl:i.agentAvatarUrl},i.identityToken,i.getIdentityToken,i.chatSurface),config:i,bindControls:e=>this.controls=e}),a)}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&&(0,t.render)(null,this.shadowRoot)}};typeof customElements<`u`&&!customElements.get(wt)&&customElements.define(wt,K);const Tt=(e,t=document.body)=>{if(typeof document>`u`)throw Error(`[centrinfo-widget] createWidget must run in a browser.`);let n=document.createElement(wt);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()}}},Et=e=>Tt(e);let Dt=null;const Ot=e=>{Dt?.destroy();let t=Et(e);return Dt=t,t},kt={init:Ot,createWidget:Et};exports.Centrinfo=kt,exports.createWidget=Et,exports.init=Ot;
|