@helpai/elements 0.9.1 → 0.9.2

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/elements.cjs.js CHANGED
@@ -36,5 +36,5 @@ ${i}`:i;continue}o.startsWith("id:")&&(n=o.slice(3).trim())}if(!t||t==="[DONE]")
36
36
  `?"":n,e.pending="");continue;case"_":case"*":{if(e.token===19||e.token===30||e.token===31||e.token===14)break;let i=12,a=14,s=e.pending[0];if(s==="_"&&(i=13,a=15),e.pending.length===1){if(s===n){e.pending=o;continue}if(n!==" "&&n!==`
37
37
  `){B(e),F(e,i),e.pending=n;continue}}else{if(s===n){B(e),F(e,a),F(e,i),e.pending="";continue}if(n!==" "&&n!==`
38
38
  `){B(e),F(e,a),e.pending=n;continue}}break}case"~":if(e.token!==19&&e.token!==16){if(e.pending==="~"){if(n==="~"){e.pending=o;continue}}else if(n!==" "&&n!==`
39
- `){B(e),F(e,16),e.pending=n;continue}}break;case"$":if(e.token!==19&&e.token!==16&&e.pending==="$")if(n==="$"){e.token=105,e.pending=o;continue}else{if(Pd(n.charCodeAt(0)))break;B(e),F(e,31),e.pending=n;continue}break;case"[":if(e.token!==19&&e.token!==17&&e.token!==30&&e.token!==31&&n!=="]"){B(e),F(e,17),e.pending=n;continue}break;case"!":if(e.token!==19&&n==="["){B(e),F(e,19),e.pending="";continue}break;case" ":if(e.pending.length===1&&n===" ")continue;break}if(e.token!==19&&e.token!==17&&e.token!==30&&e.token!==31&&n==="h"&&(e.pending===" "||e.pending==="")){e.text+=e.pending,e.pending=n,e.token=102;continue}e.text+=e.pending,e.pending=n}B(e)}function Xo(e){return{add_token:Sd,end_token:wd,add_text:kd,set_attr:Ed,data:{nodes:[e,,,,,],index:0}}}function Sd(e,t){let n=e.nodes[e.index],o;switch(t){case 1:return;case 20:o=document.createElement("blockquote");break;case 2:o=document.createElement("p");break;case 21:o=document.createElement("br");break;case 22:o=document.createElement("hr");break;case 3:o=document.createElement("h1");break;case 4:o=document.createElement("h2");break;case 5:o=document.createElement("h3");break;case 6:o=document.createElement("h4");break;case 7:o=document.createElement("h5");break;case 8:o=document.createElement("h6");break;case 12:case 13:o=document.createElement("em");break;case 14:case 15:o=document.createElement("strong");break;case 16:o=document.createElement("s");break;case 11:o=document.createElement("code");break;case 18:case 17:o=document.createElement("a");break;case 19:o=document.createElement("img");break;case 23:o=document.createElement("ul");break;case 24:o=document.createElement("ol");break;case 25:o=document.createElement("li");break;case 26:let i=o=document.createElement("input");i.type="checkbox",i.disabled=!0;break;case 9:case 10:n=n.appendChild(document.createElement("pre")),o=document.createElement("code");break;case 27:o=document.createElement("table");break;case 28:switch(n.children.length){case 0:n=n.appendChild(document.createElement("thead"));break;case 1:n=n.appendChild(document.createElement("tbody"));break;default:n=n.children[1]}o=document.createElement("tr");break;case 29:o=document.createElement(n.parentElement?.tagName==="THEAD"?"th":"td");break;case 30:o=document.createElement("equation-block");break;case 31:o=document.createElement("equation-inline");break}e.nodes[++e.index]=n.appendChild(o)}function wd(e){e.index-=1}function kd(e,t){e.nodes[e.index].appendChild(document.createTextNode(t))}function Ed(e,t,n){e.nodes[e.index].setAttribute(hd(t),n)}function Rn({textSig:e,doneSig:t}){let n=N(null);return w(()=>{let o=n.current;if(!o)return;o.classList.add(`${h.cssPrefix}-md`);let i=Xo(o),a=qo(i),s=0,l=Re(()=>{let p=e.value,d=t.value;p.length<s&&(o.replaceChildren(),i=Xo(o),a=qo(i),s=0);let _=p.slice(s);_&&se(a,_),s=p.length,d&&Oa(a)}),c=new MutationObserver(p=>{for(let d of p)for(let _ of d.addedNodes){if(!(_ instanceof HTMLElement))continue;let f=_.matches?.("a")?[_]:[..._.querySelectorAll?.("a")??[]];for(let v of f)Da(v)}});c.observe(o,{childList:!0,subtree:!0});for(let p of o.querySelectorAll("a"))Da(p);let u=p=>{let d=p.target?.closest?.("a");if(!d||!(d instanceof HTMLAnchorElement))return;let _=d.getAttribute("href")??"";!_||_.startsWith("#")||(p.preventDefault(),window.open(_,"_blank","noopener,noreferrer"))};return o.addEventListener("click",u),()=>{l(),c.disconnect(),o.removeEventListener("click",u)}},[e,t]),r("div",{ref:n})}function Ha({text:e}){let t=he(()=>L(e),[e]),n=he(()=>L(!0),[]);return r(Rn,{textSig:t,doneSig:n})}function Da(e){let t=e.getAttribute("href")??"";if(!t||t.startsWith("#"))return;e.target!=="_blank"&&(e.target="_blank");let n=new Set((e.rel||"").split(/\s+/).filter(Boolean));n.add("noopener"),n.add("noreferrer"),e.rel=[...n].join(" ")}function $a({part:e,strings:t}){let n=h.cssPrefix;return r("span",{class:`${n}-tool-chip`,role:"status",children:[r("span",{children:[t.usedTool,":"]}),r("strong",{children:e.toolName})]})}var Se=h.cssPrefix;function Ba({message:e,strings:t,responseMode:n,showReasoning:o,showToolCalls:i}){let s=we(()=>e.partsSig.value).value,l=we(()=>e.partsSig.value.some(f=>f.kind==="text"&&f.textSig.value.length>0)),c=we(()=>o&&e.partsSig.value.some(f=>f.kind==="reasoning")),u=e.role==="assistant"&&e.status==="streaming",p=n==="buffered"&&u,d=u&&!l.value,_=!p&&d&&!c.value;return r("div",{class:`${Se}-bubble-row`,"data-role":e.role,"data-testid":ce(P.messageBubble,e.id),children:r("div",{class:`${Se}-bubble`,children:[p?r(Md,{label:t.loading}):s.map(f=>r(Ad,{part:f,active:d,strings:t,showReasoning:o,showToolCalls:i},Id(f))),_&&r(Rd,{}),e.status==="error"&&e.errorText?r("div",{class:`${Se}-error`,role:"alert",children:r("span",{children:e.errorText})}):null]})})}function Ad({part:e,active:t,strings:n,showReasoning:o,showToolCalls:i}){switch(e.kind){case"text":return r(Rn,{textSig:e.textSig,doneSig:e.doneSig});case"reasoning":return o?r(Td,{part:e,active:t,strings:n}):null;case"tool":return i?r($a,{part:e,strings:n}):null;case"file":return e.mediaType.startsWith("image/")?r("img",{src:e.url,alt:"",loading:"lazy"}):r("a",{href:e.url,target:"_blank",rel:"noreferrer noopener",children:e.url});case"source":return null}}function Td({part:e,active:t,strings:n}){return r("details",{class:`${Se}-reasoning`,open:t,"data-active":t?"true":void 0,children:[r("summary",{class:`${Se}-reasoning-summary`,children:r("span",{class:`${Se}-reasoning-label`,children:t?n.thinking:n.thoughts})}),r("div",{class:`${Se}-reasoning-body`,children:r(Rn,{textSig:e.textSig,doneSig:e.doneSig})})]})}function Id(e){switch(e.kind){case"text":case"reasoning":return`${e.kind}:${e.id}`;case"tool":return`tool:${e.toolCallId}`;case"file":return`file:${e.url}`;case"source":return`source:${e.sourceId}`}}function Rd(){return r("span",{class:`${Se}-typing`,"aria-hidden":"true",children:[r("span",{}),r("span",{}),r("span",{})]})}function Md({label:e}){return r("span",{class:`${Se}-loading`,role:"status",children:[r("span",{class:`${Se}-loading-spinner`,"aria-hidden":"true"}),r("span",{class:`${Se}-loading-label`,children:e})]})}var Ua=h.cssPrefix,jo=120;function za({messagesSig:e,strings:t,responseMode:n,showReasoning:o,showToolCalls:i,loading:a}){let s=N(null),l=we(()=>e.value),c=N(!1),u=l.value[0]?.id;return Fr(()=>{let p=s.current;if(!p||l.value.length===0)return;c.current=!0;let d=()=>{p.scrollTop=p.scrollHeight};d();let _=new ResizeObserver(d);_.observe(p);let f=new MutationObserver(d);f.observe(p,{childList:!0,subtree:!0,characterData:!0});let v=setTimeout(()=>{_.disconnect(),f.disconnect()},300);return()=>{_.disconnect(),f.disconnect(),clearTimeout(v)}},[u]),w(()=>{let p=s.current;if(!p||!c.current)return;p.scrollHeight-p.scrollTop-p.clientHeight<jo&&(p.scrollTop=p.scrollHeight)},[l.value.length]),w(()=>{let p=s.current;if(!p)return;let d=l.value.at(-1);if(!d)return;if(d.status!=="streaming"){let f=requestAnimationFrame(()=>{p.scrollHeight-p.scrollTop-p.clientHeight<jo*2&&(p.scrollTop=p.scrollHeight)});return()=>cancelAnimationFrame(f)}let _=setInterval(()=>{p.scrollHeight-p.scrollTop-p.clientHeight<jo*2&&(p.scrollTop=p.scrollHeight)},250);return()=>clearInterval(_)},[l.value]),r("div",{ref:s,class:`${Ua}-list`,role:"log","aria-live":"polite","aria-relevant":"additions text",children:[a&&l.value.length===0?r("div",{class:`${Ua}-list-loading`,role:"status",children:t.messagesLoading}):null,l.value.map(p=>r(Ba,{message:p,strings:t,responseMode:n,showReasoning:o,showToolCalls:i},p.id))]})}function st({itemCount:e,initialFocusIndex:t}){let[n,o]=k(!1),i=N(null),a=N(null),[s,l]=k(-1),c=R(()=>{o(!1),l(-1),i.current?.focus()},[]),u=R(()=>o(_=>!_),[]);w(()=>{if(!n)return;let _=f=>{let v=a.current,m=i.current;if(!v||!m)return;let y=f.composedPath();y.includes(v)||y.includes(m)||(o(!1),l(-1))};return document.addEventListener("click",_,!0),()=>document.removeEventListener("click",_,!0)},[n]),w(()=>{if(!n||e===0)return;let _=t?.()??0,f=_<0||_>=e?0:_;l(f)},[n,e,t]),w(()=>{if(!n||s<0)return;a.current?.querySelectorAll("[role='menuitem']")?.[s]?.focus()},[n,s]);let p=R(_=>{(_.key==="ArrowDown"||_.key==="Enter"||_.key===" ")&&(_.preventDefault(),o(!0))},[]),d=R(_=>{if(e!==0)switch(_.key){case"Escape":_.preventDefault(),c();return;case"ArrowDown":_.preventDefault(),l(f=>(f+1)%e);return;case"ArrowUp":_.preventDefault(),l(f=>(f-1+e)%e);return;case"Home":_.preventDefault(),l(0);return;case"End":_.preventDefault(),l(e-1)}},[e,c]);return{open:n,focusIndex:s,triggerRef:i,menuRef:a,toggle:u,close:c,onTriggerKey:p,onMenuKey:d}}function Fa({items:e,triggerLabel:t}){let n=h.cssPrefix,o=st({itemCount:e.length}),i=a=>{a.disabled||(a.onSelect(),o.close())};return r("div",{class:`${n}-menu-wrap`,children:[r("button",{ref:o.triggerRef,type:"button",class:`${n}-icon-btn`,"aria-label":t,"aria-haspopup":"menu","aria-expanded":o.open,title:t,onClick:o.toggle,onKeyDown:o.onTriggerKey,children:r(ra,{})}),o.open?r("div",{ref:o.menuRef,class:`${n}-menu`,role:"menu","aria-label":t,onKeyDown:o.onMenuKey,tabIndex:-1,children:e.map(a=>r("button",{type:"button",role:"menuitem",class:`${n}-menu-item`,"aria-pressed":a.type==="switch"?a.on:void 0,disabled:a.disabled,lang:a.lang,onClick:()=>i(a),children:[a.icon?r("span",{class:`${n}-menu-icon`,children:a.icon}):null,r("span",{class:`${n}-menu-label`,children:a.label}),a.type==="switch"&&a.on?r("span",{class:`${n}-menu-check`,"aria-hidden":"true",children:r(it,{})}):null]},a.id))}):null]})}var Ld=["today","yesterday","lastWeek","older"];function Nd(e,t){let n=Date.parse(t);if(!Number.isFinite(n))return"older";let o=Math.floor((Wa(e)-Wa(n))/(1440*60*1e3));return o<=0?"today":o===1?"yesterday":o<7?"lastWeek":"older"}function Ka(e,t){let n=new Map;for(let o of t){let i=Nd(e,o.lastMessageAt),a=n.get(i);a?a.push(o):n.set(i,[o])}return Ld.filter(o=>n.has(o)).map(o=>({bucket:o,sessions:n.get(o)}))}function Wa(e){let t=new Date(e);return t.setUTCHours(0,0,0,0),t.getTime()}var Od=M.scope("history"),Dd={today:"dateToday",yesterday:"dateYesterday",lastWeek:"dateLastWeek",older:"dateOlder"};function Mn({transport:e,strings:t,visitorId:n,onSelect:o,onNewChat:i}){let a=h.cssPrefix,[s,l]=k("loading"),[c,u]=k([]);w(()=>{let _=!1;return e.listSessions({visitorId:n}).then(f=>{_||(u(f.sessions??[]),l("loaded"))}).catch(f=>{_||(Od.warn("listSessions failed",{err:f}),l("error"))}),()=>{_=!0}},[e,n]);let p=i?r("div",{class:`${a}-history-footer`,children:r("button",{type:"button",class:`${a}-history-new`,onClick:i,"data-testid":P.sidebarNewChat,children:[r(Vi,{}),t.historyNewChat]})}):null;if(s==="loading")return r(te,{children:[r("div",{class:`${a}-history-empty`,children:t.historyLoading}),p]});if(s==="error"||c.length===0)return r(te,{children:[r("div",{class:`${a}-history-empty`,children:t.historyEmpty}),p]});let d=Ka(Date.now(),c);return r(te,{children:[r("div",{class:`${a}-history`,role:"list",children:d.map(_=>r("div",{class:`${a}-history-group`,children:[r("div",{class:`${a}-history-heading`,children:t[Dd[_.bucket]]}),_.sessions.map(f=>r("button",{type:"button",role:"listitem",class:`${a}-history-item`,onClick:()=>o(f),"data-closed":f.canContinue?void 0:"true","data-testid":ce(P.historyItem,f.sessionId),children:[r("span",{class:`${a}-history-title`,children:f.title}),f.preview?r("span",{class:`${a}-history-preview`,children:f.preview}):null]},f.sessionId))]},_.bucket))}),p]})}function Ga(e){return r(Mn,{...e})}function Va({available:e,active:t,onSelect:n,triggerLabel:o}){let i=h.cssPrefix,a=R(()=>e.indexOf(t),[e,t]),s=st({itemCount:e.length,initialFocusIndex:a}),l=c=>{n(c),s.close()};return r("div",{class:`${i}-menu-wrap`,children:[r("button",{ref:s.triggerRef,type:"button",class:`${i}-icon-btn`,"aria-label":o,"aria-haspopup":"menu","aria-expanded":s.open,title:o,onClick:s.toggle,onKeyDown:s.onTriggerKey,children:r(la,{})}),s.open?r("div",{ref:s.menuRef,class:`${i}-menu`,role:"menu","aria-label":o,onKeyDown:s.onMenuKey,tabIndex:-1,children:e.map(c=>{let u=c===t;return r("button",{type:"button",role:"menuitem",class:`${i}-menu-item`,lang:c,"aria-current":u?"true":void 0,onClick:()=>l(c),children:[r("span",{class:`${i}-menu-label`,children:ei(c,t)}),u?r("span",{class:`${i}-menu-check`,"aria-hidden":"true",children:r(it,{})}):null]},c)})}):null]})}var Yo=["auto","light","dark"];function qa(e){switch(e){case"light":return r(ga,{});case"dark":return r(ma,{});case"auto":return r(ha,{})}}function Jo({active:e,onSelect:t,triggerLabel:n,optionLabels:o}){let i=h.cssPrefix,a=R(()=>Yo.indexOf(e),[e]),s=st({itemCount:Yo.length,initialFocusIndex:a}),l=c=>{t(c),s.close()};return r("div",{class:`${i}-menu-wrap`,children:[r("button",{ref:s.triggerRef,type:"button",class:`${i}-icon-btn`,"aria-label":n,"aria-haspopup":"menu","aria-expanded":s.open,title:n,"data-theme-active":e,onClick:s.toggle,onKeyDown:s.onTriggerKey,children:qa(e)}),s.open?r("div",{ref:s.menuRef,class:`${i}-menu`,role:"menu","aria-label":n,onKeyDown:s.onMenuKey,tabIndex:-1,children:Yo.map(c=>{let u=c===e;return r("button",{type:"button",role:"menuitem",class:`${i}-menu-item`,"aria-current":u?"true":void 0,onClick:()=>l(c),children:[r("span",{class:`${i}-menu-icon`,children:qa(c)}),r("span",{class:`${i}-menu-label`,children:o[c]}),u?r("span",{class:`${i}-menu-check`,"aria-hidden":"true",children:r(it,{})}):null]},c)})}):null]})}var Xa=h.cssPrefix;function ja({suggestions:e,onPick:t}){return e.length===0?null:r("div",{class:`${Xa}-suggestions`,role:"group","aria-label":"Suggested replies",children:e.map((n,o)=>r("button",{type:"button",class:`${Xa}-suggestion`,onClick:()=>t(n),"data-testid":ce(P.suggestion,o),children:n.label},n.id))})}var _e=h.cssPrefix;function Ya(e){let{options:t,onClose:n}=e,o=t.strings,i=N(null);w(()=>{let c=i.current;if(!c)return;let u=En(c),p=d=>{d.key==="Escape"&&n?.()};return c.addEventListener("keydown",p),()=>{u(),c.removeEventListener("keydown",p)}},[n]);let a=N(null),s=R(c=>{a.current?.attachFromDrop(c)},[]),{visible:l}=Tn({containerRef:i,onDrop:s});return wn(i.current,t.mode==="modal"),r("div",{ref:i,class:`${_e}-panel`,role:"dialog","aria-modal":"false","aria-label":o.panelTitle,style:{position:"relative"},"data-testid":P.panel,children:[r(Qo,{...e,containerEl:i.current,dragOver:l,composerAttachApiRef:a}),r(Zo,{poweredBy:e.options.poweredBy})]})}function Qo({options:e,transport:t,feedback:n,bus:o,panelSize:i,view:a,canSend:s,isStreaming:l,loadingMessages:c,messagesSig:u,agent:p,suggestions:d,initialWidgetSize:_,visitorId:f,onClose:v,onBack:m,onClear:y,onExpand:b,onFullscreen:S,onPopOut:T,onSoundToggle:D,onToggleHistory:O,onSelectHistoryChat:V,onNewChat:ue,onLocaleChange:pe,onThemeChange:X,onWidgetSizeChange:Q,onSend:je,onStop:Be,onSuggestion:E,containerEl:$,dragOver:j,composerAttachApiRef:de}){let Y=e.strings;return r(te,{children:[a==="history"?r(Hd,{strings:Y,onBack:O,onClose:v,showClose:Sa(e.mode,i,e.actions)}):r(zd,{agent:p,onBack:m,backLabel:Y.moduleBack,moreActionsLabel:Y.moreActions,languageLabel:Y.language,themeLabel:Y.theme,themeOptionLabels:{auto:Y.themeAuto,light:Y.themeLight,dark:Y.themeDark},activeThemeMode:e.themeMode,onThemeChange:X,panelTitle:Y.panelTitle,activeLocale:e.locale,availableLocales:e.availableLocales,onLocaleChange:pe,main:$o(e.actions.main,e.mode,i,{popOutUrl:e.popOutUrl}),overflow:$o(e.actions.overflow,e.mode,i,{popOutUrl:e.popOutUrl}),descriptors:Fd({strings:Y,panelSize:i,feedback:n,onClear:y,onExpand:b,onFullscreen:S,onPopOut:T,onSoundToggle:D,onToggleHistory:O,onClose:v})}),a==="history"?r(Ga,{transport:t,strings:Y,visitorId:f,onSelect:le=>V(le.sessionId),onNewChat:ue}):r(te,{children:[r(Ta,{visible:j,strings:Y}),r(za,{messagesSig:u,strings:Y,responseMode:e.responseMode,showReasoning:e.showReasoning,showToolCalls:e.showToolCalls,loading:c}),s?r(te,{children:[r(ja,{suggestions:d,onPick:E}),r(Aa,{options:e,transport:t,feedback:n,bus:o,isStreaming:l,onSend:je,onStop:Be,attachApiRef:de})]}):r($d,{label:Y.chatClosed,ctaLabel:Y.startNewConversation,onNewChat:y}),r(Bd,{disclaimer:e.composerDisclaimer})]}),e.size.resize?.enabled?r(Sn,{panelEl:$,resize:e.size.resize,position:e.position,initialSize:_,onSizeChange:Q,strings:Y}):null]})}function Hd({strings:e,onBack:t,onClose:n,showClose:o}){return r("header",{class:`${_e}-header`,children:[r("button",{type:"button",class:`${_e}-icon-btn`,onClick:t,"aria-label":e.historyBack,title:e.historyBack,children:r(wt,{})}),r("h1",{children:e.historyTitle}),o?r("button",{type:"button",class:`${_e}-icon-btn`,onClick:n,"aria-label":e.close,title:e.close,children:r(me,{})}):null]})}function $d({label:e,ctaLabel:t,onNewChat:n}){return r("div",{class:`${_e}-readonly-banner`,role:"note",children:[r("span",{class:`${_e}-readonly-label`,children:e}),r("button",{type:"button",class:`${_e}-readonly-cta`,onClick:n,children:t})]})}function Bd({disclaimer:e}){return e?r("div",{class:`${_e}-composer-footer`,children:r("div",{class:`${_e}-disclaimer`,children:e})}):null}function Zo({poweredBy:e}){return e?r("div",{class:`${_e}-poweredby-bar`,children:r(Ud,{logoUrl:e.logoUrl,text:e.text,href:e.href})}):null}function Ud({logoUrl:e,text:t,href:n}){let o=r(te,{children:[e?r("img",{class:`${_e}-poweredby-logo`,src:e,alt:"",loading:"lazy"}):null,t?r("span",{children:t}):null]});return n?r("a",{class:`${_e}-poweredby`,href:n,target:"_blank",rel:"noopener noreferrer",children:o}):r("span",{class:`${_e}-poweredby`,children:o})}function zd({agent:e,onBack:t,backLabel:n,moreActionsLabel:o,languageLabel:i,themeLabel:a,themeOptionLabels:s,activeThemeMode:l,onThemeChange:c,panelTitle:u,activeLocale:p,availableLocales:d,onLocaleChange:_,main:f,overflow:v,descriptors:m}){let y=d.length>1,b=[];for(let T of v){if(T==="theme")continue;if(T==="language"){if(!y)continue;for(let O of d)b.push({id:`language:${O}`,label:i+` \u2014 ${O}`,lang:O,onSelect:()=>_(O),type:"switch",on:O===p});continue}let D=m[T];b.push({id:T,icon:D.icon,label:D.label,onSelect:D.onSelect,type:D.switchable?"switch":"button",on:D.switchOn})}let S=v.includes("theme");return r("header",{class:`${_e}-header`,"data-testid":P.panelHeader,children:[t?r("button",{type:"button",class:`${_e}-icon-btn`,onClick:t,"aria-label":n,title:n,children:r(wt,{})}):null,e?r(ka,{agent:e}):r("h1",{children:u}),f.map(T=>{if(T==="language")return y?r(Va,{available:d,active:p,onSelect:_,triggerLabel:i},"language"):null;if(T==="theme")return r(Jo,{active:l,onSelect:c,triggerLabel:a,optionLabels:s},"theme");let D=m[T];return r("button",{type:"button",class:`${_e}-icon-btn`,onClick:D.onSelect,"aria-label":D.label,"aria-pressed":D.switchable?D.switchOn:void 0,title:D.label,"data-testid":ba[T],children:D.icon},T)}),S?r(Jo,{active:l,onSelect:c,triggerLabel:a,optionLabels:s}):null,b.length>0?r(Fa,{items:b,triggerLabel:o}):null]})}function Fd(e){let{strings:t,panelSize:n,feedback:o,onClear:i,onExpand:a,onFullscreen:s,onPopOut:l,onSoundToggle:c,onToggleHistory:u,onClose:p}=e,d=n==="expanded",_=n==="fullscreen",f=we(()=>o.mutedSig.value).value;return{clear:{icon:r(da,{}),label:t.newConversation,onSelect:i},expand:{icon:d?r(ea,{}):r(Zi,{}),label:d?t.collapse:t.expand,onSelect:a,switchable:!0,switchOn:d},fullscreen:{icon:_?r(na,{}):r(ta,{}),label:_?t.exitFullscreen:t.fullscreen,onSelect:s,switchable:!0,switchOn:_},popOut:{icon:r(ca,{}),label:t.popOut,onSelect:l},sound:{icon:f?r(aa,{}):r(ia,{}),label:f?t.soundOff:t.soundOn,onSelect:c,switchable:!0,switchOn:!f},history:{icon:r(sa,{}),label:t.history,onSelect:u},close:{icon:r(me,{}),label:t.close,onSelect:p??(()=>{})}}}function Ja(e){let t=h.cssPrefix,{site:n,blocks:o,strings:i,collapsed:a}=e,s=o?.navigation??[],l=o?.linkCards??[],c=a?i.expandSidebar:i.collapseSidebar;return r("aside",{class:`${t}-sidebar`,"data-collapsed":a?"true":"false","data-testid":P.sidebar,children:[r("div",{class:`${t}-sidebar-header`,children:[r(Wd,{site:n}),r("button",{type:"button",class:`${t}-sidebar-toggle`,"aria-label":c,"aria-expanded":a?"false":"true",title:c,onClick:e.onToggleCollapsed,"data-testid":P.sidebarToggle,children:r(Kd,{collapsed:a})})]}),a?null:r(te,{children:[s.length>0?r("nav",{class:`${t}-sidebar-section`,"data-section":"navigation",children:r(Gd,{items:s})}):null,l.length>0?r("div",{class:`${t}-sidebar-section`,"data-section":"link-cards",children:r(Vd,{items:l})}):null,e.showConversations?r("div",{class:`${t}-sidebar-conversations`,children:r(Mn,{transport:e.transport,strings:e.strings,visitorId:e.visitorId,onSelect:e.onSelectChat,onNewChat:e.onNewChat})}):null]})]})}function Wd({site:e}){let t=h.cssPrefix;if(e?.logo?.url){let n=e.logo.alt??e.title??"Logo";return r("picture",{children:[e.logoDark?.url?r("source",{srcset:e.logoDark.url,media:"(prefers-color-scheme: dark)"}):null,r("img",{class:`${t}-sidebar-logo`,src:e.logo.url,alt:n})]})}return r("div",{class:`${t}-sidebar-title`,children:e?.title??h.name})}function Kd({collapsed:e}){return r("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","aria-hidden":"true",children:e?r("polyline",{points:"9 6 15 12 9 18"}):r("polyline",{points:"15 6 9 12 15 18"})})}function Gd({items:e}){let t=h.cssPrefix;return r("ul",{class:`${t}-sidebar-nav`,children:e.map(n=>r("li",{children:r("a",{class:`${t}-sidebar-nav-item`,href:n.href,target:n.href?"_blank":void 0,rel:n.href?"noreferrer":void 0,children:[n.icon?r("span",{class:`${t}-sidebar-nav-icon`,"data-icon":n.icon}):null,r("span",{class:`${t}-sidebar-nav-label`,children:n.label})]})},n.id??n.label))})}function Vd({items:e}){let t=h.cssPrefix;return r("div",{class:`${t}-sidebar-cards`,children:e.map(n=>r("a",{class:`${t}-sidebar-card`,href:n.href,target:n.href?"_blank":void 0,rel:n.href?"noreferrer":void 0,children:[r("div",{class:`${t}-sidebar-card-label`,children:n.label}),n.description?r("div",{class:`${t}-sidebar-card-desc`,children:n.description}):null]},n.id??n.label))})}var Qa=h.cssPrefix;function Za(e){return r("main",{class:`${Qa}-page-shell`,"data-sidebar-collapsed":e.sidebarCollapsed?"true":"false",children:[r(Ja,{site:e.site,blocks:e.blocks,transport:e.transport,strings:e.strings,visitorId:e.visitorId,showConversations:e.showConversations,onSelectChat:e.onSelectChat,onNewChat:e.onNewChat,collapsed:e.sidebarCollapsed,onToggleCollapsed:e.onToggleSidebarCollapsed}),r("section",{class:`${Qa}-page-chat`,"aria-label":"Chat",children:e.children})]})}var es=e=>Object.fromEntries(e.map(t=>[t,[]]));function ts(e,t,n){let o=L({activeTab:e,stacks:es(t)});return{sig:o,switchTab(i){o.value.activeTab!==i&&(o.value={...o.value,activeTab:i},n?.(i))},push(i){let a=o.value,s=a.stacks[a.activeTab]??[];o.value={...a,stacks:{...a.stacks,[a.activeTab]:[...s,i]}}},pop(){let i=o.value,a=i.stacks[i.activeTab]??[];a.length!==0&&(o.value={...i,stacks:{...i.stacks,[i.activeTab]:a.slice(0,-1)}})},reset(i){o.value={activeTab:i,stacks:es(t)}}}}var ns=e=>e.stacks[e.activeTab]??[],os=e=>ns(e).at(-1),rs=e=>ns(e).length===0;var is={Icon:kt};var Ce=h.cssPrefix;function Ln({title:e,onClose:t,closeLabel:n}){return r("header",{class:`${Ce}-back-header`,"data-variant":"title",children:[r("span",{class:`${Ce}-back-spacer`,"aria-hidden":"true"}),r("h1",{class:`${Ce}-back-title`,children:e}),t?r("button",{type:"button",class:`${Ce}-icon-btn`,onClick:t,"aria-label":n,title:n,children:r(me,{})}):r("span",{class:`${Ce}-back-spacer`,"aria-hidden":"true"})]})}function Nn({title:e,backLabel:t,onBack:n,onClose:o,closeLabel:i,testid:a}){return r("header",{class:`${Ce}-back-header`,"data-testid":a,children:[r("button",{type:"button",class:`${Ce}-icon-btn`,onClick:n,"aria-label":t,title:t,children:r(wt,{})}),r("h1",{class:`${Ce}-back-title`,children:e}),o?r("button",{type:"button",class:`${Ce}-icon-btn`,onClick:o,"aria-label":i,title:i,children:r(me,{})}):r("span",{class:`${Ce}-back-spacer`,"aria-hidden":"true"})]})}var lt=h.cssPrefix;function as({placeholder:e,onActivate:t}){return r("button",{type:"button",class:`${lt}-home-search`,onClick:t,"data-testid":P.homeSearch,children:[r("span",{class:`${lt}-home-search-text`,children:e}),r("span",{class:`${lt}-home-search-icon`,"aria-hidden":"true",children:r(Ho,{})})]})}function ss({placeholder:e,value:t,onInput:n}){return r("div",{class:`${lt}-home-search`,"data-input":"true",children:[r("input",{type:"search",class:`${lt}-home-search-input`,placeholder:e,value:t,onInput:o=>n(o.currentTarget.value),"data-testid":P.helpSearch}),r("span",{class:`${lt}-home-search-icon`,"aria-hidden":"true",children:r(Ho,{})})]})}var Ct=h.cssPrefix;function On({title:e,subtitle:t,onClick:n,testid:o}){return r("button",{type:"button",class:`${Ct}-list-row`,onClick:n,"data-testid":o,children:[r("span",{class:`${Ct}-list-row-body`,children:[r("span",{class:`${Ct}-list-row-title`,children:e}),t?r("span",{class:`${Ct}-list-row-sub`,children:t}):null]}),r("span",{class:`${Ct}-list-row-chevron`,"aria-hidden":"true",children:r(yn,{})})]})}var ls=h.cssPrefix;function xe({tone:e="info",message:t,onRetry:n,strings:o}){return r("div",{class:`${ls}-module-empty`,role:e==="error"?"alert":"status","aria-live":"polite",children:[r("span",{children:t}),n?r("button",{type:"button",class:`${ls}-module-retry`,onClick:n,children:o.errorRetry}):null]})}var qe=h.cssPrefix,qd=M.scope("help"),Xd=(e,t)=>t.url?e.push({kind:"iframe",url:t.url,title:t.title}):e.push({kind:"content",id:t.id,title:t.title});function jd(e){let t=new Map;for(let n of e){let o=n.categories?.[0]??"";(t.get(o)??t.set(o,[]).get(o)).push(n)}return[...t.entries()]}function cs(e,t){let n=t.toLowerCase(),o=n.indexOf(e);if(o!==-1)return 100-Math.min(o,99);let i=0;for(let a of e){if(i=n.indexOf(a,i),i===-1)return 0;i+=1}return 1}function Yd(e,t){let n=t.toLowerCase().trim();return n?e.map(o=>({item:o,score:Math.max(cs(n,o.title)*2,cs(n,o.description??""))})).filter(o=>o.score>0).toSorted((o,i)=>i.score-o.score).map(o=>o.item):[]}function ds({article:e,nav:t}){return r(On,{title:e.title,subtitle:e.description,onClick:()=>Xd(t,e),testid:ce(P.helpArticle,e.id)})}function Jd({transport:e,strings:t,config:n,nav:o,panelProps:i}){let a=n.contentTags,[s,l]=k("loading"),[c,u]=k(t.errorGeneric),[p,d]=k([]),[_,f]=k(""),[v,m]=k(0);w(()=>{let S=!1;return l("loading"),e.listContent({tags:a,sortBy:"order",limit:100}).then(T=>{S||(d(T.items??[]),l("loaded"))}).catch(T=>{S||(qd.warn("listContent (help) failed",{err:T}),u(We(T,t)),l("error"))}),()=>{S=!0}},[e,a,v]);let y=he(()=>Yd(p,_),[p,_]);function b(){return _.trim().length>0?y.length===0?r(xe,{message:t.helpSearchEmpty,strings:t}):r("div",{class:`${qe}-help-card`,children:y.map(S=>r(ds,{article:S,nav:o},S.id))}):s==="loading"?r(xe,{message:t.helpLoading,strings:t}):s==="error"?r(xe,{tone:"error",message:c,onRetry:()=>m(S=>S+1),strings:t}):p.length===0?r(xe,{message:t.helpEmpty,strings:t}):jd(p).map(([S,T])=>r("section",{class:`${qe}-help-group`,children:[S?r("h2",{class:`${qe}-help-section-title`,children:S}):null,r("div",{class:`${qe}-help-card`,children:T.map(D=>r(ds,{article:D,nav:o},D.id))})]},S))}return r("div",{class:`${qe}-module`,children:[r(Ln,{title:t.helpTitle,onClose:i.onClose,closeLabel:t.close}),r("div",{class:`${qe}-module-pad`,children:r(ss,{placeholder:t.helpSearchPlaceholder,value:_,onInput:f})}),r("div",{class:`${qe}-help-list`,children:b()})]})}var _s={Icon:Do,Root:e=>r(Jd,{...e})};var us=h.cssPrefix;function er({onClick:e,children:t,testid:n}){return e?r("button",{type:"button",class:`${us}-home-card`,"data-interactive":"true",onClick:e,"data-testid":n,children:t}):r("div",{class:`${us}-home-card`,"data-testid":n,children:t})}var G=h.cssPrefix,ps=M.scope("home");function Qd(e){let t=e.options.userContext?.name,n=e.config.greetingText;return n?{title:t?n.replace("{name}",t):n.replace(/\s*\{name\}\s*/," ").trim(),subtitle:e.strings.homeGreetingLead}:t?{title:e.strings.homeGreetingNamed.replace("{name}",t),subtitle:e.strings.homeGreetingLead}:{title:e.strings.homeGreeting}}var Zd=(e,t)=>t.url?e.push({kind:"iframe",url:t.url,title:t.title}):e.push({kind:"content",id:t.id,title:t.title});function e_(e){let{transport:t,strings:n,config:o,nav:i,panelProps:a}=e,[s,l]=k(null),[c,u]=k([]),p=o.contentTags?.join(",");w(()=>{if(!o.showRecentMessages)return;let m=!1;return t.listSessions({limit:1}).then(y=>!m&&l(y.sessions?.[0]??null)).catch(y=>!m&&ps.warn("listSessions (home) failed",{err:y})),()=>{m=!0}},[t,o.showRecentMessages]),w(()=>{if(!o.contentTags?.length)return;let m=!1;return t.listContent({tags:o.contentTags,limit:6}).then(y=>!m&&u(y.items??[])).catch(y=>!m&&ps.warn("listContent (home) failed",{err:y})),()=>{m=!0}},[t,p]);let d=Qd(e),_=o.userAvatars??[],f=o.status,v=o.contentBlockTitle?on(n,o.contentBlockTitle):n.homeContentTitle;return r("div",{class:`${G}-module ${G}-home`,"data-testid":P.homeView,children:r("div",{class:`${G}-home-scroll`,children:[r("div",{class:`${G}-home-hero`,children:[r("div",{class:`${G}-home-hero-top`,children:[o.brandName?r("span",{class:`${G}-home-brand`,"data-testid":P.homeBrand,children:o.brandName}):r("span",{class:`${G}-home-brand-spacer`,"aria-hidden":"true"}),r("div",{class:`${G}-home-hero-actions`,children:[_.length>0?r("div",{class:`${G}-home-avatars`,children:_.map(m=>r("span",{class:`${G}-home-avatar`,title:m.role?`${m.name} \xB7 ${m.role}`:m.name,children:m.avatar?r("img",{src:m.avatar,alt:"",loading:"lazy"}):r("span",{children:Cn(m.name)})},m.name))}):null,a.onClose?r("button",{type:"button",class:`${G}-icon-btn ${G}-home-close`,onClick:a.onClose,"aria-label":n.close,title:n.close,children:r(me,{})}):null]})]}),o.showGreeting!==!1?r(te,{children:[r("h1",{class:`${G}-home-greeting`,"data-testid":P.homeGreeting,children:d.title}),d.subtitle?r("p",{class:`${G}-home-lead`,children:d.subtitle}):null]}):null]}),r("div",{class:`${G}-home-cards`,children:[o.showSearchBar!==!1?r(as,{placeholder:n.homeSearchPlaceholder,onActivate:()=>i.switchToLayout("help")}):null,s?r(er,{onClick:()=>i.selectSession(s.sessionId),testid:P.homeRecent,children:r("div",{class:`${G}-home-recent-row`,"data-unread":(s.unreadCount??0)>0?"true":void 0,children:[r("span",{class:`${G}-home-recent-avatar`,"aria-hidden":"true",children:r(kt,{})}),r("span",{class:`${G}-home-recent-body`,children:[r("span",{class:`${G}-home-recent-title`,children:s.title}),s.preview?r("span",{class:`${G}-home-recent-preview`,children:s.preview}):null]}),(s.unreadCount??0)>0?r("span",{class:`${G}-home-recent-dot`,"aria-label":"Unread"}):null]})}):null,f?r(er,{onClick:f.url?()=>i.push({kind:"iframe",url:f.url,title:f.text}):void 0,children:r("div",{class:`${G}-home-status`,"data-level":f.level??"operational",children:[r("span",{class:`${G}-home-status-icon`,"aria-hidden":"true",children:r(ua,{})}),r("span",{class:`${G}-home-status-text`,children:f.text})]})}):null,c.length>0?r("section",{class:`${G}-home-content`,children:[r("div",{class:`${G}-home-content-title`,children:v}),r("div",{class:`${G}-home-content-list`,children:c.map(m=>r(On,{title:m.title,subtitle:m.description,onClick:()=>Zd(i,m),testid:ce(P.homeContentRow,m.id)},m.id))})]}):null]})]})})}var fs={Icon:pa,Root:e=>r(e_,{...e})};var Ae=h.cssPrefix,t_=M.scope("news");function n_({transport:e,strings:t,config:n,nav:o,panelProps:i}){let a=n.contentTags,[s,l]=k("loading"),[c,u]=k(t.errorGeneric),[p,d]=k([]),[_,f]=k(0);w(()=>{let m=!1;return l("loading"),e.listContent({tags:a,sortBy:"publishedAt",sortOrder:"desc"}).then(y=>{m||(d(y.items??[]),l("loaded"))}).catch(y=>{m||(t_.warn("listContent (news) failed",{err:y}),u(We(y,t)),l("error"))}),()=>{m=!0}},[e,a,_]);function v(){return s==="loading"?r(xe,{message:t.newsLoading,strings:t}):s==="error"?r(xe,{tone:"error",message:c,onRetry:()=>f(m=>m+1),strings:t}):p.length===0?r(xe,{message:t.newsEmpty,strings:t}):r("div",{class:`${Ae}-news-list`,children:p.map(m=>r("button",{type:"button",class:`${Ae}-news-card`,onClick:()=>o.push({kind:"content",id:m.id,title:m.title}),"data-testid":ce(P.newsItem,m.id),children:[m.image?r("img",{class:`${Ae}-news-hero`,src:m.image,alt:"",loading:"lazy"}):null,r("span",{class:`${Ae}-news-body`,children:[m.tags&&m.tags.length>0?r("span",{class:`${Ae}-news-tags`,children:m.tags.map(y=>r("span",{class:`${Ae}-news-tag`,children:y},y))}):null,r("span",{class:`${Ae}-news-title`,children:m.title}),m.description?r("span",{class:`${Ae}-news-summary`,children:m.description}):null]})]},m.id))})}return r("div",{class:`${Ae}-module`,children:[r(Ln,{title:t.newsTitle,onClose:i.onClose,closeLabel:t.close}),r("div",{class:`${Ae}-module-scroll`,children:v()})]})}var gs={Icon:fa,Root:e=>r(n_,{...e})};var Dn={chat:is,home:fs,help:_s,news:gs};var At=h.cssPrefix;function ms({modules:e,activeTab:t,strings:n,unreadCount:o,onSelect:i}){return r("nav",{class:`${At}-tabbar`,role:"tablist","aria-label":n.panelTitle,children:e.map(a=>{let s=Dn[a.layout].Icon,l=a.id===t,c=a.layout==="chat"&&o>0?o>9?"9+":String(o):null;return r("button",{type:"button",role:"tab","aria-selected":l,class:`${At}-tab`,onClick:()=>i(a.id),"data-testid":ce(P.tab,a.id),children:[r("span",{class:`${At}-tab-icon`,"aria-hidden":"true",children:[r(s,{}),c?r("span",{class:`${At}-tab-badge`,"data-testid":P.tabBadge,children:c}):null]}),r("span",{class:`${At}-tab-label`,children:on(n,a.label)})]},a.id)})})}var hs=h.cssPrefix,o_="allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads";function vs({url:e,title:t,strings:n,onBack:o,onClose:i}){return r("div",{class:`${hs}-module`,children:[r(Nn,{title:t||n.moduleBack,backLabel:n.moduleBack,onBack:o,onClose:i,closeLabel:n.close}),r("iframe",{class:`${hs}-content-frame`,src:e,title:t||"content",sandbox:o_,referrerpolicy:"no-referrer",loading:"lazy",allow:"fullscreen"})]})}var Xe=h.cssPrefix,r_=M.scope("content");function bs({id:e,title:t,transport:n,strings:o,onBack:i,onClose:a}){let[s,l]=k(null),[c,u]=k(!1),[p,d]=k(0),_=R(()=>{u(!1),l(null),d(v=>v+1)},[]);w(()=>{let v=!1;return n.listContent({ids:[e],limit:1}).then(m=>{if(v)return;let y=m.items[0];y?l(y):u(!0)}).catch(m=>{v||(r_.warn("listContent (reader) failed",{err:m}),u(!0))}),()=>{v=!0}},[n,e,p]);function f(){return c?r(xe,{tone:"error",message:o.errorGeneric,onRetry:_,strings:o}):s===null?r(xe,{message:o.contentLoading,strings:o}):r("article",{class:`${Xe}-content`,"data-testid":P.contentView,children:[s.image?r("img",{class:`${Xe}-content-hero`,src:s.image,alt:"",loading:"lazy"}):null,s.description?r("p",{class:`${Xe}-content-subtitle`,children:s.description}):null,s.tags&&s.tags.length>0?r("span",{class:`${Xe}-news-tags`,children:s.tags.map(v=>r("span",{class:`${Xe}-news-tag`,children:v},v))}):null,r(Ha,{text:s.content??""})]})}return r("div",{class:`${Xe}-module`,children:[r(Nn,{title:s?.title||t||o.moduleBack,backLabel:o.moduleBack,onBack:i,onClose:a,closeLabel:o.close,testid:P.backHeader}),r("div",{class:`${Xe}-module-scroll`,"data-testid":P.contentScroll,children:f()})]})}var tr=h.cssPrefix;function xs({panelProps:e,enabledModules:t,nav:n,unreadCount:o,onSelectSession:i,onStartNewSession:a,onSetPanelSize:s}){let l=e.options,c=l.strings,u=N(null);w(()=>{let V=u.current;if(!V)return;let ue=En(V),pe=X=>{X.key==="Escape"&&e.onClose?.()};return V.addEventListener("keydown",pe),()=>{ue(),V.removeEventListener("keydown",pe)}},[e.onClose]);let p=N(null),d=R(V=>{p.current?.attachFromDrop(V)},[]),{visible:_}=Tn({containerRef:u,onDrop:d});wn(u.current,l.mode==="modal");let f=we(()=>n.sig.value).value,v=os(f),m=l.modules.byId[f.activeTab],y=v?.kind==="iframe"||v?.kind==="content",b=t.length>1&&(rs(f)||!y),S=N(null);w(()=>{if(y&&S.current===null)S.current=e.panelSize,e.panelSize==="normal"&&s("expanded");else if(!y&&S.current!==null){let V=S.current;S.current=null,s(V)}},[y]);let T={push:n.push,pop:n.pop,switchTab:n.switchTab,switchToLayout:V=>{let ue=t.find(pe=>pe.layout===V);ue&&n.switchTab(ue.id)},selectSession:i,startNewSession:a},D=V=>({options:l,transport:e.transport,strings:c,config:V,visitorId:e.visitorId,nav:T,panelProps:e}),O;if(v?.kind==="iframe")O=r(vs,{url:v.url,title:v.title,strings:c,onBack:n.pop,onClose:e.onClose});else if(v?.kind==="content")O=r(bs,{id:v.id,title:v.title,transport:e.transport,strings:c,onBack:n.pop,onClose:e.onClose});else if(m?.layout==="chat")O=r(Qo,{...e,containerEl:u.current,dragOver:_,composerAttachApiRef:p});else if(m){let V=Dn[m.layout].Root;O=V?r(V,{...D(m)},m.id):null}else O=null;return r("div",{ref:u,class:`${tr}-panel ${tr}-messenger`,role:"dialog","aria-modal":"false","aria-label":c.panelTitle,style:{position:"relative"},"data-testid":P.messengerHome,children:[r("div",{class:`${tr}-messenger-body`,children:O}),b?r(ms,{modules:t,activeTab:f.activeTab,strings:c,unreadCount:o,onSelect:n.switchTab}):null,r(Zo,{poweredBy:l.poweredBy}),l.size.resize?.enabled&&!(m?.layout==="chat"&&!v)?r(Sn,{panelEl:u.current,resize:l.size.resize,position:l.position,initialSize:e.initialWidgetSize,onSizeChange:e.onWidgetSizeChange,strings:c}):null]})}var Tt=h.cssPrefix;function ys({strings:e,onClose:t}){return r("div",{class:`${Tt}-panel ${Tt}-modules-empty`,role:"dialog","aria-label":e.panelTitle,"data-testid":P.modulesEmpty,children:[t?r("button",{type:"button",class:`${Tt}-icon-btn ${Tt}-modules-empty-close`,onClick:t,"aria-label":e.close,title:e.close,children:r(me,{})}):null,r("p",{class:`${Tt}-modules-empty-text`,children:e.modulesEmpty})]})}async function Ps(e,t,n,o){for(let i=0;i<e.length;i++){if(o.aborted)return;let a=e[i],s=t[i];!a||!s||await i_(a,s.text,n,o)}}function i_(e,t,n,o){return new Promise(i=>{let a=e.partsSig.value[0];if(!a||a.kind!=="text"){i();return}let s=()=>{a.textSig.value=t,a.doneSig.value=!0,e.status="complete",i()};if(typeof requestAnimationFrame>"u"){s();return}let l=t.length/Math.max(1,n)*1e3,c=performance.now(),u=d=>{if(o.aborted)return s();let _=l===0?1:Math.min(1,(d-c)/l);if(a.textSig.value=t.slice(0,Math.floor(_*t.length)),_>=1)return s();p=requestAnimationFrame(u)},p=requestAnimationFrame(u);o.addEventListener("abort",()=>{cancelAnimationFrame(p),s()},{once:!0})})}function Ss({callout:e,persistence:t}){let n=e?.text??"",o=e?.persistent??!0,[i,a]=k(()=>o?!1:t.loadCalloutDismissed(n));w(()=>{a(o?!1:t.loadCalloutDismissed(n))},[n,o,t]);let s=R(()=>{a(!0),o||t.saveCalloutDismissed(n)},[t,n,o]);return{dismissed:i,dismissCallout:s}}var W=M.scope("app"),nr=h.cssPrefix;function ws({options:e,hostElement:t,bus:n}){let[o]=k(()=>St(e.widgetId,e.storage)),[i,a]=k(()=>o.getVisitorId()),s=o.loadUserPrefs(),[l,c]=k(()=>s.locale??e.locale),[u,p]=k(()=>s.themeMode??e.themeMode),d=vt(o.loadSessionId()),_=vt([]),f=vt(0),[v,m]=k(!1);function y(){let g=e.modules.list,x=new Set(g.map(ie=>ie.id)),U=o.loadActiveModule();return U&&x.has(U)?U:g[0]?.id??""}function b(){return e.modules.list.find(g=>g.layout==="chat")?.id}let S=N();if(!S.current){let g=e.modules.list.map(x=>x.id);S.current=ts(y(),g,x=>o.saveActiveModule(x))}let T=S.current,D=N(void 0);D.current=b();let[O,V]=k(!1),ue=e.mode==="standalone"||e.mode==="inline",pe=N(yt(e,ot(),o.loadPanelOpen(),o.loadPanelSize())),[X,Q]=k(pe.current.panelOpen),je=N(!1),[Be,E]=k(!1),{dismissed:$,dismissCallout:j}=Ss({callout:e.launcher.callout,persistence:o}),de=e.launcher.callout?.persistent??!0,Y=R(()=>{W.info("calloutDismiss"),n.emit("calloutDismiss",void 0),j()},[n,j]),[le,fe]=k(pe.current.panelSize),It=N(!1),[Ms,Un]=k("chat"),[Ls,ct]=k(!0),[Ue,Rt]=k(!1),[Ns,ar]=k(null),[zn,Mt]=k([]),[Lt,Nt]=k(null),Fn=N(null),[Os,Ds]=k(void 0),[Hs,$s]=k(void 0),[Bs,Us]=k(()=>o.loadSidebarCollapsed()??!1),[re]=k(()=>new fn({baseUrl:e.baseUrl,auth:Ei({publicKey:e.publicKey,aiAgentDeploymentId:e.aiAgentDeploymentId,publicKeyHeader:"x-public-key"}),endpoints:e.endpoints})),[Ne]=k(()=>new gn(_)),[J]=k(()=>new xn(e.sound,e.haptics)),Oe=R(g=>{o.patchUserPrefs(g),re.saveUserPrefs(o.loadUserPrefs()).catch(x=>{W.warn("saveUserPrefs failed",{err:x})})},[o,re]);w(()=>{s.soundMuted!==void 0&&J.setMuted(s.soundMuted)},[]),w(()=>{t.dataset.theme=u},[t,u,e]),w(()=>{J.update(e.sound,e.haptics)},[J,e.sound,e.haptics]),w(()=>()=>J.destroy(),[J]),w(()=>{let g=!0;return J.mutedSig.subscribe(x=>{if(g){g=!1;return}Oe({soundMuted:x})})},[J,Oe]),w(()=>{It.current||!e.size.initialSize||(It.current=!0,!o.loadPanelSize()&&fe(Io(e.mode,e.size,ot())))},[e.mode,e.size,o]),w(()=>{if(!O||je.current)return;je.current=!0;let g=yt(e,ot(),o.loadPanelOpen(),o.loadPanelSize());Q(g.panelOpen),fe(g.panelSize)},[O,e,o]);let sr=N(!1),lr=N(!1),Ot=N(null);w(()=>{if(!(!O||sr.current)){if(sr.current=!0,lr.current){let g=D.current;g&&T.switchTab(g);return}T.reset(y())}},[O]);let cr=R(g=>{if(!g||g.length===0)return;let{animation:x,speed:U}=e.welcome;if(x==="instant"){_.value=g.map($i);return}Fn.current?.abort();let ie=new AbortController;Fn.current=ie;let oe=g.map(Hi);_.value=oe,Ps(oe,g,U,ie.signal)},[_,e.welcome]),Wn=N(0),dt=R(async({newConversation:g})=>{let x=++Wn.current,U=()=>x!==Wn.current,ie=d.value,oe=g||!ie?ke():ie;oe!==ie&&(d.value=oe,o.saveSessionId(oe));let A;try{A=await re.startSession({visitorId:i,sessionId:oe,userPrefs:o.loadUserPrefs(),locale:e.locale})}catch(Pe){if(U())return;n.emit("error",Pe),e.onError?.(Pe),g||V(!0);return}if(U())return;if(A.visitorId&&A.visitorId!==i&&(W.info("visitor rebound",{previous:i,current:A.visitorId,reason:A.rebind?.visitorId}),o.setVisitorId(A.visitorId),a(A.visitorId),n.emit("visitorRebound",{previous:i,current:A.visitorId,reason:A.rebind?.visitorId})),A.sessionId&&A.sessionId!==oe&&(W.info("session rebound",{previous:oe,current:A.sessionId,reason:A.rebind?.sessionId}),n.emit("sessionRebound",{previous:oe,current:A.sessionId,reason:A.rebind?.sessionId})),A.agent&&ar(A.agent),A.welcome?.suggestions&&Mt(A.welcome.suggestions),e.mode==="page"&&(A.site&&pi(A.site)?Ds(A.site):A.site&&W.warn("invalid site config, using fallback",{site:A.site}),A.blocks&&fi(A.blocks)?$s(A.blocks):A.blocks&&W.warn("invalid blocks config, using fallback",{blocks:A.blocks})),A.userPrefs&&!g&&(o.saveUserPrefs(A.userPrefs),A.userPrefs.locale&&c(A.userPrefs.locale),A.userPrefs.soundMuted!==void 0&&J.setMuted(A.userPrefs.soundMuted),A.userPrefs.themeMode&&p(A.userPrefs.themeMode)),!g&&ie&&A.sessionId===ie){m(!0);try{let Pe=A.messages?.length?{sessionId:ie,canContinue:A.canContinue??!0,messages:A.messages}:await re.loadSession(ie);if(U())return;let ge=(Pe.messages??[]).map(No),vr=Ot.current?[Ot.current]:[];(ge.length||vr.length)&&(_.value=[...ge,...vr]),ct(Pe.canContinue??!0),Mt(Pe.suggestions??[])}catch(Pe){if(U())return;W.warn("loadSession failed; resetting sessionId",{err:Pe,sessionId:ie}),d.value=void 0,o.saveSessionId(void 0)}finally{U()||m(!1)}}else d.value=A.sessionId,o.saveSessionId(A.sessionId),cr(A.welcome?.messages);g||(n.emit("sessionStarted",A),V(!0))},[re,i,o,e,n,_,d,J,cr]),_t=JSON.stringify(e.userContext??null),zs=JSON.stringify(e.pageContext??null);w(()=>{re.setContext(e.userContext,a_(e.pageContext))},[re,_t,zs]);let Fs=R(async g=>{let x=null;try{for await(let U of g.iter){if(!x){x=Lo(),Ot.current=x,Ne.attach(x),_.value=[..._.value,x],Rt(!0),Nt(()=>g.cancel),lr.current=!0;let ie=D.current;ie&&T.switchTab(ie),W.info("resumed in-flight reply on mount")}Ne.apply(U.chunk),U.chunk.type==="finish"&&U.chunk.canContinue===!1&&ct(!1)}x&&(x.status="complete",J.play("messageReceived"),or(n,e,"assistant",Oo(x)))}catch(U){x&&(x.status="error",x.errorText=We(U,e.strings),J.play("error")),W.debug("mount resume ended without completing",{err:U})}finally{Ot.current=null,x&&(Ne.detach(),Rt(!1),Nt(null),_.value=[..._.value])}},[Ne,_,J,n,e,T]);w(()=>{dt({newConversation:!1});let g=d.value,x=null;return g&&(re.primeIdentity(i,g),x=re.resumeStream(),Fs(x)),()=>{Wn.current++,x?.cancel()}},[]);let dr=N(_t);w(()=>{!O||dr.current===_t||(dr.current=_t,dt({newConversation:!1}))},[_t,O,dt]),w(()=>{un(t,pn(e.mode,le,X))},[t,X,le,e.mode]),w(()=>{if(e.mode!=="modal"||!X)return;let g=x=>{x.composedPath().some(oe=>oe instanceof HTMLElement&&oe.classList.contains(`${h.cssPrefix}-panel`))||Q(!1)};return t.addEventListener("click",g),()=>t.removeEventListener("click",g)},[t,X,e.mode]),w(()=>{if(e.mode!=="drawer"||!X)return;let g=x=>{x.key==="Escape"&&Q(!1)};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[X,e.mode]);let _r=R(async(g,x)=>{if(W.info("send",{textLen:g.length,attachments:x.length,streaming:Ue}),Ue)return;n.emit("send",{text:g,attachmentCount:x.length}),zn.length>0&&Mt([]);let U=await l_(re,x,ge=>{W.warn("upload failed",{err:ge}),n.emit("error",ge),e.onError?.(ge)});J.unlock(),J.play("messageSent");let ie=Di(g,U),oe=Lo();_.value=[..._.value,ie,oe],Ne.attach(oe),or(n,e,"user",g);let A=d.value??ke();d.value||(d.value=A,o.saveSessionId(A));let hr=Mi({messages:_.value.slice(0,-1).map(Bi),sessionId:A,tools:e.features.tools,responseMode:e.responseMode,visitorId:i,userPrefs:o.loadUserPrefs()});Rt(!0);let Pe=re.sendMessage(hr);Nt(()=>Pe.cancel);try{for await(let ge of Pe.iter)Ne.apply(ge.chunk),ge.chunk.type==="finish"&&ge.chunk.canContinue===!1&&ct(!1);oe.status="complete",J.play("messageReceived"),or(n,e,"assistant",Oo(oe))}catch(ge){oe.status="error",oe.errorText=We(ge,e.strings),J.play("error"),n.emit("error",ge),e.onError?.(ge)}finally{Ne.detach(),Rt(!1),Nt(null),_.value=[..._.value]}},[Ue,re,Ne,_,d,e,n,zn.length,J,o,i]),Ws=R(()=>{W.info("stop"),n.emit("stop",void 0),Lt?.()},[Lt,n]),Ks=R(()=>{J.toggleMuted();let g=J.mutedSig.value;W.info("soundToggle",{muted:g}),n.emit("soundToggle",{muted:g})},[J,n]),ut=R(()=>{if(wa(e.mode,le)==="exit-fullscreen"){W.info("close \u2192 exit-fullscreen",{mode:e.mode}),fe("normal"),n.emit("fullscreen",!1);return}W.info("close \u2192 panel closed",{mode:e.mode}),Q(!1),o.savePanelOpen(!1),n.emit("close",void 0),e.onClose?.()},[n,e,o,le]),Ye=R(()=>{e.modules.list.some(g=>g.layout==="chat")&&re.listSessions({limit:50}).then(g=>{f.value=g.sessions.reduce((x,U)=>x+(U.unreadCount??0),0)}).catch(g=>W.debug("refreshUnread failed (non-fatal)",{err:g}))},[re,e.modules,f]),ur=N(!1);w(()=>{!O||ur.current||(ur.current=!0,Ye())},[O,Ye]);let Kn=R(()=>{W.info("open",{mode:e.mode}),J.unlock(),E(!0),Q(!0),o.savePanelOpen(!0),!$&&!de&&Y(),setTimeout(()=>E(!1),s_),Ye(),n.emit("open",void 0),e.onOpen?.()},[n,e,J,o,$,de,Y,Ye]),Gn=R(()=>{W.info("clear \u2192 new conversation",{wasStreaming:Ue}),n.emit("clear",void 0),Ue&&Lt?.(),Fn.current?.abort(),_.value=[],d.value=void 0,o.clearSession(),ct(!0),dt({newConversation:!0})},[Ue,Lt,_,d,o,dt,n]),Vn=R(()=>{Gn(),Un("chat");let g=e.modules.list.find(x=>x.layout==="chat")?.id;g&&T.switchTab(g)},[Gn,T,e]),qn=R(()=>{let g=le==="expanded"?"normal":"expanded";W.info("expand",{from:le,expanded:g==="expanded"}),fe(g),o.savePanelSize(g),n.emit("expand",g==="expanded")},[n,le,o]),Xn=R(()=>{let g=le==="fullscreen"?"normal":"fullscreen";W.info("fullscreen",{from:le,fullscreen:g==="fullscreen"}),fe(g),o.savePanelSize(g),n.emit("fullscreen",g==="fullscreen")},[n,le,o]),jn=R(()=>{if(!e.popOutUrl)return;let g=new URL(e.popOutUrl);d.value&&g.searchParams.set("chat",d.value),e.widgetId!=="default"&&g.searchParams.set("widgetId",e.widgetId),W.info("popOut",{url:g.toString()}),window.open(g.toString(),"_blank","noopener,noreferrer"),n.emit("popOut",void 0)},[n,d,e.popOutUrl,e.widgetId]),Gs=R(()=>{Un(g=>{let x=g==="history"?"chat":"history";return W.info("toggleHistory",{view:x}),n.emit("toggleHistory",{view:x}),x})},[n]),Vs=R(g=>{W.info("localeChange",{locale:g}),c(g),Oe({locale:g}),n.emit("localeChange",g)},[Oe,n]),qs=R(g=>{W.info("themeChange",{mode:g}),p(g),t.dataset.theme=g,Oe({themeMode:g}),n.emit("themeChange",g)},[t,Oe,n]),Xs=R(()=>{Us(g=>{let x=!g;return W.info("sidebarToggle",{collapsed:x}),o.saveSidebarCollapsed(x),n.emit("sidebarToggle",{collapsed:x}),x})},[o,n]),js=R(g=>{W.info("resize",g),Oe({widgetSize:g}),n.emit("resize",g)},[Oe,n]),Yn=R(async g=>{W.info("selectChat",{sessionId:g}),n.emit("selectChat",{sessionId:g});try{let x=await re.loadSession(g),U=x.messages.map(No);_.value=U,d.value=x.sessionId,o.saveSessionId(x.sessionId),x.agent&&ar(x.agent),ct(x.canContinue),Mt(x.suggestions??[]),Un("chat"),await re.markRead(g),Ye()}catch(x){n.emit("error",x),e.onError?.(x)}},[re,_,d,n,e,o,Ye]);w(()=>mi(t,{open:Kn,close:ut,expand:qn,fullscreen:Xn,popout:jn}),[t,Kn,ut,qn,Xn,jn]);let ye=he(()=>Co(e,l,u),[e,l,u]),pr={options:ye,transport:re,feedback:J,bus:n,view:Ms,canSend:Ls,isStreaming:Ue,loadingMessages:v,messagesSig:_,agent:Ns,suggestions:zn,initialWidgetSize:s.widgetSize??null,visitorId:i,onClose:ut,onClear:Gn,onExpand:qn,onFullscreen:Xn,onPopOut:jn,onSoundToggle:Ks,onToggleHistory:Gs,onSelectHistoryChat:Yn,onNewChat:Vn,onLocaleChange:Vs,onThemeChange:qs,onWidgetSizeChange:js,onSend:_r,onStop:Ws,onSuggestion:g=>{let x=g.text??g.label;W.info("suggestion",{text:x}),n.emit("suggestion",{text:x}),_r(x,[])}},Ys=g=>{Yn(g);let x=b();x&&T.switchTab(x)};if(!O)return null;let pt=ye.modules.list,Jn=g=>{let x=kn("close",ye.mode,g);return pt.length===0?r(ys,{strings:ye.strings,onClose:x?ut:void 0}):pt.length===1&&pt[0]?.layout==="chat"?r(Ya,{...pr,panelSize:g}):r(xs,{panelProps:{...pr,panelSize:g,onClose:x?ut:void 0},enabledModules:pt,nav:T,unreadCount:f.value,onSelectSession:Ys,onStartNewSession:Vn,onSetPanelSize:fe})};if(e.mode==="page"){let g=U=>{Yn(U.sessionId)},x=pt.some(U=>U.layout==="chat");return r("div",{class:`${nr}-anchor`,children:r(Za,{site:Os,blocks:Hs,transport:re,strings:ye.strings,visitorId:i,showConversations:x,onSelectChat:g,onNewChat:Vn,sidebarCollapsed:Bs,onToggleSidebarCollapsed:Xs,children:Jn("fullscreen")})})}if(ue){let g=e.mode==="standalone"?"fullscreen":le;return r("div",{class:`${nr}-anchor`,children:Jn(g)})}let fr=e.mode==="drawer",gr=!(e.mode==="modal")&&!e.launcher.hidden&&(!X||Be),mr=gr&&!Be&&!$&&!fr?ye.launcher.callout:null;return r("div",{class:`${nr}-anchor`,"data-launcher-size":ye.launcher.size,children:[X?Jn(le):null,gr?r(xa,{onToggle:Kn,launcher:ye.launcher,strings:ye.strings,leaving:Be,edgeTab:fr}):null,mr?r(ya,{callout:mr,launcherPosition:ye.position,closeLabel:ye.strings.close,onDismiss:Y}):null]})}function a_(e){let t=e?.url??(typeof location<"u"?location.href:void 0);if(!(!e&&!t))return{...e,...t?{url:t}:{}}}var s_=120;async function l_(e,t,n){let o=[];for(let i of t)try{let{id:a,url:s}=await e.uploadFile(i.file);o.push({id:a,name:i.name,mediaType:i.mediaType,size:i.size,url:s})}catch(a){n(a)}return o}function or(e,t,n,o){let i={role:n,text:o};e.emit("message",i),t.onMessage?.(i)}var c_=M.scope("error-boundary"),Hn=class extends He{constructor(){super(...arguments);z(this,"state",{crashed:!1})}componentDidCatch(n,o){c_.error("widget render crashed",{error:n,componentStack:o?.componentStack}),this.setState({crashed:!0}),this.props.onError(n,o?.componentStack)}render(){return this.state.crashed?this.props.fallback:this.props.children}};var d_=M.scope("iframe"),__='<!doctype html><html><head><meta charset="utf-8"><style>html,body{margin:0;padding:0;background:transparent;overflow:hidden}</style></head><body></body></html>';function Cs(e,t,n="closed",o="floating",i=null){d_.debug("createIframeMount",{position:t,initialMode:n,layoutMode:o,hasTarget:!!i});let a=document.createElement("iframe");a.title=`${h.name} chat`,a.setAttribute("allow","microphone; clipboard-write"),Es(a,t,n,o),(o==="inline"&&i?i:document.body).appendChild(a);let l=a.contentDocument;if(!l)throw new Error("iframe contentDocument unavailable (cross-origin?)");l.open(),l.write(__),l.close();let c=_n({...e,target:l.body}),u=new MutationObserver(()=>{Es(a,t,c.hostElement.dataset.mode??"closed",o)});return u.observe(c.hostElement,{attributes:!0,attributeFilter:["data-mode"]}),{...c,iframeElement:a,destroy(){u.disconnect(),c.destroy(),a.remove()}}}var rr="border:0;background:transparent;z-index:2147483647;pointer-events:auto;",ks={closed:{w:"88px",h:"88px"},expanded:{w:"min(calc(100vw - 32px), 680px)",h:"min(calc(100vh - 32px), 860px)"},open:{w:"min(calc(100vw - 32px), 440px)",h:"min(calc(100vh - 32px), 700px)"}};function Es(e,t,n,o){if(n==="fullscreen"||o==="standalone"){e.style.cssText=`${rr}position:fixed;inset:0;width:100vw;height:100vh;`;return}if(o==="inline"){e.style.cssText=`${rr}position:static;display:block;width:100%;height:100%;`;return}let i=t.startsWith("top-")?"top":"bottom",a=t.endsWith("-left")?"left":"right",{w:s,h:l}=ks[n]??ks.open;e.style.cssText=`${rr}position:fixed;${i}:16px;${a}:16px;width:${s};height:${l};`}var $n=class{constructor(){z(this,"handlers",new Map)}on(t,n){let o=this.handlers.get(t);return o||(o=new Set,this.handlers.set(t,o)),o.add(n),()=>this.handlers.get(t)?.delete(n)}emit(t,n){let o=this.handlers.get(t);if(o)for(let i of o)try{i(n)}catch{}}clear(){this.handlers.clear()}};var u_=M.scope("hooks"),Bn="*",ir=new Set;function As(e,t,n){let o={widgetId:e,event:t,listener:n};return ir.add(o),()=>{ir.delete(o)}}function p_(e,t,n){let o=[...ir];for(let i of o)if(f_(i.widgetId,e.widgetId)&&!(i.event!==Bn&&i.event!==t))try{i.listener(e,t,n)}catch(a){u_.warn("hook listener threw",{event:t,error:a})}}function Ts(e,t){let n=[];for(let o of g_)n.push(t.on(o,i=>{p_(e,o,i)}));return()=>{for(let o of n)o()}}function f_(e,t){return e===Bn||e===t}var g_=["open","close","expand","fullscreen","popOut","resize","message","send","stop","clear","selectChat","suggestion","toggleHistory","attach","removeAttachment","voiceStart","voiceStop","voiceCancel","localeChange","themeChange","soundToggle","sidebarToggle","calloutDismiss","error","sessionStarted","visitorRebound","sessionRebound"];var Le=new Map;function Is(e){e.debug!==void 0&&ln(e.debug);let t=M.scope("mount");t.info("mount",{widgetId:e.widgetId,publicKey:e.publicKey,mode:e.presentation?.mode});let n=e,o=bt(n),i=o.widgetId,a=Le.get(i);a&&(t.debug("destroy existing instance at slot",{widgetId:i}),a.destroy());let s=Rs(o),l=o.iframe?Cs({position:dn(o.mode)},o.position,s,o.mode,e.target??null):_n({position:dn(o.mode),target:e.target??null}),c=St(o.widgetId,o.storage),u=()=>{let b=c.loadUserPrefs().themeMode;ki(l.hostElement,b?{...o,themeMode:b}:o)};u(),un(l.hostElement,s),l.hostElement.dataset.widgetId=i;let p=new $n,d=b=>{p.emit("error",b),o.onError?.(b)},_=()=>{so(Gt(Hn,{onError:d},Gt(ws,{bus:p,hostElement:l.hostElement,options:o})),l.appRoot)};_(),p.on("sessionStarted",b=>{b.config&&(n=Ao(n,b.config),o=bt(n),wi(l.hostElement,dn(o.mode)),u(),_())});let f=l.hostElement,v=null,m=b=>{b.debug!==void 0&&ln(b.debug),n={...n,...b},o=bt(n),u(),_()},y={widgetId:i,open:()=>xt(f,"open"),close:()=>xt(f,"close"),expand:()=>xt(f,"expand"),popOut:()=>xt(f,"popout"),on:(b,S)=>p.on(b,S),update:b=>{t.debug("update",{patch:b}),m(b)},setUserContext:b=>{t.debug("setUserContext",{keys:Object.keys(b)}),m({userContext:{...n.userContext,...b}})},clearUserContext:()=>{t.debug("clearUserContext"),m({userContext:void 0})},setPageContext:b=>{t.debug("setPageContext",{keys:Object.keys(b)}),m({pageContext:{...n.pageContext,...b}})},clearPageContext:()=>{t.debug("clearPageContext"),m({pageContext:void 0})},setDebug:b=>{ln(b),t.info("debug level set",{level:xo()})},debugLevel:()=>xo(),onLog:b=>oi(b),destroy:()=>{t.info("destroy",{widgetId:i}),v?.(),p.clear(),so(null,l.appRoot),l.destroy(),Le.get(i)===y&&Le.delete(i)}};return v=Ts(y,p),Le.set(i,y),y}function m_(e){let t=e.widgetId??"default",n=Le.get(t);return n?(n.update(e),n):Is(e)}function h_(e){if(e!==void 0){Le.get(e)?.destroy();return}let t=[...Le.values()];for(let n of t)n.destroy()}function v_(e="default"){return Le.get(e)??null}function b_(){return[...Le.values()]}function x_(e,t,n){return As(e,t,n)}var y_="0.1.0",P_=h;function Rs(e){if(e.mode==="standalone")return"standalone";if(e.mode==="inline")return"inline";let t=St(e.widgetId,e.storage),{panelOpen:n,panelSize:o}=yt(e,ot(),t.loadPanelOpen(),t.loadPanelSize());return pn(e.mode,o,n)}
39
+ `){B(e),F(e,16),e.pending=n;continue}}break;case"$":if(e.token!==19&&e.token!==16&&e.pending==="$")if(n==="$"){e.token=105,e.pending=o;continue}else{if(Pd(n.charCodeAt(0)))break;B(e),F(e,31),e.pending=n;continue}break;case"[":if(e.token!==19&&e.token!==17&&e.token!==30&&e.token!==31&&n!=="]"){B(e),F(e,17),e.pending=n;continue}break;case"!":if(e.token!==19&&n==="["){B(e),F(e,19),e.pending="";continue}break;case" ":if(e.pending.length===1&&n===" ")continue;break}if(e.token!==19&&e.token!==17&&e.token!==30&&e.token!==31&&n==="h"&&(e.pending===" "||e.pending==="")){e.text+=e.pending,e.pending=n,e.token=102;continue}e.text+=e.pending,e.pending=n}B(e)}function Xo(e){return{add_token:Sd,end_token:wd,add_text:kd,set_attr:Ed,data:{nodes:[e,,,,,],index:0}}}function Sd(e,t){let n=e.nodes[e.index],o;switch(t){case 1:return;case 20:o=document.createElement("blockquote");break;case 2:o=document.createElement("p");break;case 21:o=document.createElement("br");break;case 22:o=document.createElement("hr");break;case 3:o=document.createElement("h1");break;case 4:o=document.createElement("h2");break;case 5:o=document.createElement("h3");break;case 6:o=document.createElement("h4");break;case 7:o=document.createElement("h5");break;case 8:o=document.createElement("h6");break;case 12:case 13:o=document.createElement("em");break;case 14:case 15:o=document.createElement("strong");break;case 16:o=document.createElement("s");break;case 11:o=document.createElement("code");break;case 18:case 17:o=document.createElement("a");break;case 19:o=document.createElement("img");break;case 23:o=document.createElement("ul");break;case 24:o=document.createElement("ol");break;case 25:o=document.createElement("li");break;case 26:let i=o=document.createElement("input");i.type="checkbox",i.disabled=!0;break;case 9:case 10:n=n.appendChild(document.createElement("pre")),o=document.createElement("code");break;case 27:o=document.createElement("table");break;case 28:switch(n.children.length){case 0:n=n.appendChild(document.createElement("thead"));break;case 1:n=n.appendChild(document.createElement("tbody"));break;default:n=n.children[1]}o=document.createElement("tr");break;case 29:o=document.createElement(n.parentElement?.tagName==="THEAD"?"th":"td");break;case 30:o=document.createElement("equation-block");break;case 31:o=document.createElement("equation-inline");break}e.nodes[++e.index]=n.appendChild(o)}function wd(e){e.index-=1}function kd(e,t){e.nodes[e.index].appendChild(document.createTextNode(t))}function Ed(e,t,n){e.nodes[e.index].setAttribute(hd(t),n)}function Rn({textSig:e,doneSig:t}){let n=N(null);return w(()=>{let o=n.current;if(!o)return;o.classList.add(`${h.cssPrefix}-md`);let i=Xo(o),a=qo(i),s=0,l=Re(()=>{let p=e.value,d=t.value;p.length<s&&(o.replaceChildren(),i=Xo(o),a=qo(i),s=0);let _=p.slice(s);_&&se(a,_),s=p.length,d&&Oa(a)}),c=new MutationObserver(p=>{for(let d of p)for(let _ of d.addedNodes){if(!(_ instanceof HTMLElement))continue;let f=_.matches?.("a")?[_]:[..._.querySelectorAll?.("a")??[]];for(let v of f)Da(v)}});c.observe(o,{childList:!0,subtree:!0});for(let p of o.querySelectorAll("a"))Da(p);let u=p=>{let d=p.target?.closest?.("a");if(!d||!(d instanceof HTMLAnchorElement))return;let _=d.getAttribute("href")??"";!_||_.startsWith("#")||(p.preventDefault(),window.open(_,"_blank","noopener,noreferrer"))};return o.addEventListener("click",u),()=>{l(),c.disconnect(),o.removeEventListener("click",u)}},[e,t]),r("div",{ref:n})}function Ha({text:e}){let t=he(()=>L(e),[e]),n=he(()=>L(!0),[]);return r(Rn,{textSig:t,doneSig:n})}function Da(e){let t=e.getAttribute("href")??"";if(!t||t.startsWith("#"))return;e.target!=="_blank"&&(e.target="_blank");let n=new Set((e.rel||"").split(/\s+/).filter(Boolean));n.add("noopener"),n.add("noreferrer"),e.rel=[...n].join(" ")}function $a({part:e,strings:t}){let n=h.cssPrefix;return r("span",{class:`${n}-tool-chip`,role:"status",children:[r("span",{children:[t.usedTool,":"]}),r("strong",{children:e.toolName})]})}var Se=h.cssPrefix;function Ba({message:e,strings:t,responseMode:n,showReasoning:o,showToolCalls:i}){let s=we(()=>e.partsSig.value).value,l=we(()=>e.partsSig.value.some(f=>f.kind==="text"&&f.textSig.value.length>0)),c=we(()=>o&&e.partsSig.value.some(f=>f.kind==="reasoning")),u=e.role==="assistant"&&e.status==="streaming",p=n==="buffered"&&u,d=u&&!l.value,_=u&&!p&&!(c.value&&d);return r("div",{class:`${Se}-bubble-row`,"data-role":e.role,"data-testid":ce(P.messageBubble,e.id),children:r("div",{class:`${Se}-bubble`,children:[p?r(Md,{label:t.loading}):s.map(f=>r(Ad,{part:f,active:d,strings:t,showReasoning:o,showToolCalls:i},Id(f))),_&&r(Rd,{}),e.status==="error"&&e.errorText?r("div",{class:`${Se}-error`,role:"alert",children:r("span",{children:e.errorText})}):null]})})}function Ad({part:e,active:t,strings:n,showReasoning:o,showToolCalls:i}){switch(e.kind){case"text":return r(Rn,{textSig:e.textSig,doneSig:e.doneSig});case"reasoning":return o?r(Td,{part:e,active:t,strings:n}):null;case"tool":return i?r($a,{part:e,strings:n}):null;case"file":return e.mediaType.startsWith("image/")?r("img",{src:e.url,alt:"",loading:"lazy"}):r("a",{href:e.url,target:"_blank",rel:"noreferrer noopener",children:e.url});case"source":return null}}function Td({part:e,active:t,strings:n}){return r("details",{class:`${Se}-reasoning`,open:t,"data-active":t?"true":void 0,children:[r("summary",{class:`${Se}-reasoning-summary`,children:r("span",{class:`${Se}-reasoning-label`,children:t?n.thinking:n.thoughts})}),r("div",{class:`${Se}-reasoning-body`,children:r(Rn,{textSig:e.textSig,doneSig:e.doneSig})})]})}function Id(e){switch(e.kind){case"text":case"reasoning":return`${e.kind}:${e.id}`;case"tool":return`tool:${e.toolCallId}`;case"file":return`file:${e.url}`;case"source":return`source:${e.sourceId}`}}function Rd(){return r("span",{class:`${Se}-typing`,"aria-hidden":"true",children:[r("span",{}),r("span",{}),r("span",{})]})}function Md({label:e}){return r("span",{class:`${Se}-loading`,role:"status",children:[r("span",{class:`${Se}-loading-spinner`,"aria-hidden":"true"}),r("span",{class:`${Se}-loading-label`,children:e})]})}var Ua=h.cssPrefix,jo=120;function za({messagesSig:e,strings:t,responseMode:n,showReasoning:o,showToolCalls:i,loading:a}){let s=N(null),l=we(()=>e.value),c=N(!1),u=l.value[0]?.id;return Fr(()=>{let p=s.current;if(!p||l.value.length===0)return;c.current=!0;let d=()=>{p.scrollTop=p.scrollHeight};d();let _=new ResizeObserver(d);_.observe(p);let f=new MutationObserver(d);f.observe(p,{childList:!0,subtree:!0,characterData:!0});let v=setTimeout(()=>{_.disconnect(),f.disconnect()},300);return()=>{_.disconnect(),f.disconnect(),clearTimeout(v)}},[u]),w(()=>{let p=s.current;if(!p||!c.current)return;p.scrollHeight-p.scrollTop-p.clientHeight<jo&&(p.scrollTop=p.scrollHeight)},[l.value.length]),w(()=>{let p=s.current;if(!p)return;let d=l.value.at(-1);if(!d)return;if(d.status!=="streaming"){let f=requestAnimationFrame(()=>{p.scrollHeight-p.scrollTop-p.clientHeight<jo*2&&(p.scrollTop=p.scrollHeight)});return()=>cancelAnimationFrame(f)}let _=setInterval(()=>{p.scrollHeight-p.scrollTop-p.clientHeight<jo*2&&(p.scrollTop=p.scrollHeight)},250);return()=>clearInterval(_)},[l.value]),r("div",{ref:s,class:`${Ua}-list`,role:"log","aria-live":"polite","aria-relevant":"additions text",children:[a&&l.value.length===0?r("div",{class:`${Ua}-list-loading`,role:"status",children:t.messagesLoading}):null,l.value.map(p=>r(Ba,{message:p,strings:t,responseMode:n,showReasoning:o,showToolCalls:i},p.id))]})}function st({itemCount:e,initialFocusIndex:t}){let[n,o]=k(!1),i=N(null),a=N(null),[s,l]=k(-1),c=R(()=>{o(!1),l(-1),i.current?.focus()},[]),u=R(()=>o(_=>!_),[]);w(()=>{if(!n)return;let _=f=>{let v=a.current,m=i.current;if(!v||!m)return;let y=f.composedPath();y.includes(v)||y.includes(m)||(o(!1),l(-1))};return document.addEventListener("click",_,!0),()=>document.removeEventListener("click",_,!0)},[n]),w(()=>{if(!n||e===0)return;let _=t?.()??0,f=_<0||_>=e?0:_;l(f)},[n,e,t]),w(()=>{if(!n||s<0)return;a.current?.querySelectorAll("[role='menuitem']")?.[s]?.focus()},[n,s]);let p=R(_=>{(_.key==="ArrowDown"||_.key==="Enter"||_.key===" ")&&(_.preventDefault(),o(!0))},[]),d=R(_=>{if(e!==0)switch(_.key){case"Escape":_.preventDefault(),c();return;case"ArrowDown":_.preventDefault(),l(f=>(f+1)%e);return;case"ArrowUp":_.preventDefault(),l(f=>(f-1+e)%e);return;case"Home":_.preventDefault(),l(0);return;case"End":_.preventDefault(),l(e-1)}},[e,c]);return{open:n,focusIndex:s,triggerRef:i,menuRef:a,toggle:u,close:c,onTriggerKey:p,onMenuKey:d}}function Fa({items:e,triggerLabel:t}){let n=h.cssPrefix,o=st({itemCount:e.length}),i=a=>{a.disabled||(a.onSelect(),o.close())};return r("div",{class:`${n}-menu-wrap`,children:[r("button",{ref:o.triggerRef,type:"button",class:`${n}-icon-btn`,"aria-label":t,"aria-haspopup":"menu","aria-expanded":o.open,title:t,onClick:o.toggle,onKeyDown:o.onTriggerKey,children:r(ra,{})}),o.open?r("div",{ref:o.menuRef,class:`${n}-menu`,role:"menu","aria-label":t,onKeyDown:o.onMenuKey,tabIndex:-1,children:e.map(a=>r("button",{type:"button",role:"menuitem",class:`${n}-menu-item`,"aria-pressed":a.type==="switch"?a.on:void 0,disabled:a.disabled,lang:a.lang,onClick:()=>i(a),children:[a.icon?r("span",{class:`${n}-menu-icon`,children:a.icon}):null,r("span",{class:`${n}-menu-label`,children:a.label}),a.type==="switch"&&a.on?r("span",{class:`${n}-menu-check`,"aria-hidden":"true",children:r(it,{})}):null]},a.id))}):null]})}var Ld=["today","yesterday","lastWeek","older"];function Nd(e,t){let n=Date.parse(t);if(!Number.isFinite(n))return"older";let o=Math.floor((Wa(e)-Wa(n))/(1440*60*1e3));return o<=0?"today":o===1?"yesterday":o<7?"lastWeek":"older"}function Ka(e,t){let n=new Map;for(let o of t){let i=Nd(e,o.lastMessageAt),a=n.get(i);a?a.push(o):n.set(i,[o])}return Ld.filter(o=>n.has(o)).map(o=>({bucket:o,sessions:n.get(o)}))}function Wa(e){let t=new Date(e);return t.setUTCHours(0,0,0,0),t.getTime()}var Od=M.scope("history"),Dd={today:"dateToday",yesterday:"dateYesterday",lastWeek:"dateLastWeek",older:"dateOlder"};function Mn({transport:e,strings:t,visitorId:n,onSelect:o,onNewChat:i}){let a=h.cssPrefix,[s,l]=k("loading"),[c,u]=k([]);w(()=>{let _=!1;return e.listSessions({visitorId:n}).then(f=>{_||(u(f.sessions??[]),l("loaded"))}).catch(f=>{_||(Od.warn("listSessions failed",{err:f}),l("error"))}),()=>{_=!0}},[e,n]);let p=i?r("div",{class:`${a}-history-footer`,children:r("button",{type:"button",class:`${a}-history-new`,onClick:i,"data-testid":P.sidebarNewChat,children:[r(Vi,{}),t.historyNewChat]})}):null;if(s==="loading")return r(te,{children:[r("div",{class:`${a}-history-empty`,children:t.historyLoading}),p]});if(s==="error"||c.length===0)return r(te,{children:[r("div",{class:`${a}-history-empty`,children:t.historyEmpty}),p]});let d=Ka(Date.now(),c);return r(te,{children:[r("div",{class:`${a}-history`,role:"list",children:d.map(_=>r("div",{class:`${a}-history-group`,children:[r("div",{class:`${a}-history-heading`,children:t[Dd[_.bucket]]}),_.sessions.map(f=>r("button",{type:"button",role:"listitem",class:`${a}-history-item`,onClick:()=>o(f),"data-closed":f.canContinue?void 0:"true","data-testid":ce(P.historyItem,f.sessionId),children:[r("span",{class:`${a}-history-title`,children:f.title}),f.preview?r("span",{class:`${a}-history-preview`,children:f.preview}):null]},f.sessionId))]},_.bucket))}),p]})}function Ga(e){return r(Mn,{...e})}function Va({available:e,active:t,onSelect:n,triggerLabel:o}){let i=h.cssPrefix,a=R(()=>e.indexOf(t),[e,t]),s=st({itemCount:e.length,initialFocusIndex:a}),l=c=>{n(c),s.close()};return r("div",{class:`${i}-menu-wrap`,children:[r("button",{ref:s.triggerRef,type:"button",class:`${i}-icon-btn`,"aria-label":o,"aria-haspopup":"menu","aria-expanded":s.open,title:o,onClick:s.toggle,onKeyDown:s.onTriggerKey,children:r(la,{})}),s.open?r("div",{ref:s.menuRef,class:`${i}-menu`,role:"menu","aria-label":o,onKeyDown:s.onMenuKey,tabIndex:-1,children:e.map(c=>{let u=c===t;return r("button",{type:"button",role:"menuitem",class:`${i}-menu-item`,lang:c,"aria-current":u?"true":void 0,onClick:()=>l(c),children:[r("span",{class:`${i}-menu-label`,children:ei(c,t)}),u?r("span",{class:`${i}-menu-check`,"aria-hidden":"true",children:r(it,{})}):null]},c)})}):null]})}var Yo=["auto","light","dark"];function qa(e){switch(e){case"light":return r(ga,{});case"dark":return r(ma,{});case"auto":return r(ha,{})}}function Jo({active:e,onSelect:t,triggerLabel:n,optionLabels:o}){let i=h.cssPrefix,a=R(()=>Yo.indexOf(e),[e]),s=st({itemCount:Yo.length,initialFocusIndex:a}),l=c=>{t(c),s.close()};return r("div",{class:`${i}-menu-wrap`,children:[r("button",{ref:s.triggerRef,type:"button",class:`${i}-icon-btn`,"aria-label":n,"aria-haspopup":"menu","aria-expanded":s.open,title:n,"data-theme-active":e,onClick:s.toggle,onKeyDown:s.onTriggerKey,children:qa(e)}),s.open?r("div",{ref:s.menuRef,class:`${i}-menu`,role:"menu","aria-label":n,onKeyDown:s.onMenuKey,tabIndex:-1,children:Yo.map(c=>{let u=c===e;return r("button",{type:"button",role:"menuitem",class:`${i}-menu-item`,"aria-current":u?"true":void 0,onClick:()=>l(c),children:[r("span",{class:`${i}-menu-icon`,children:qa(c)}),r("span",{class:`${i}-menu-label`,children:o[c]}),u?r("span",{class:`${i}-menu-check`,"aria-hidden":"true",children:r(it,{})}):null]},c)})}):null]})}var Xa=h.cssPrefix;function ja({suggestions:e,onPick:t}){return e.length===0?null:r("div",{class:`${Xa}-suggestions`,role:"group","aria-label":"Suggested replies",children:e.map((n,o)=>r("button",{type:"button",class:`${Xa}-suggestion`,onClick:()=>t(n),"data-testid":ce(P.suggestion,o),children:n.label},n.id))})}var _e=h.cssPrefix;function Ya(e){let{options:t,onClose:n}=e,o=t.strings,i=N(null);w(()=>{let c=i.current;if(!c)return;let u=En(c),p=d=>{d.key==="Escape"&&n?.()};return c.addEventListener("keydown",p),()=>{u(),c.removeEventListener("keydown",p)}},[n]);let a=N(null),s=R(c=>{a.current?.attachFromDrop(c)},[]),{visible:l}=Tn({containerRef:i,onDrop:s});return wn(i.current,t.mode==="modal"),r("div",{ref:i,class:`${_e}-panel`,role:"dialog","aria-modal":"false","aria-label":o.panelTitle,style:{position:"relative"},"data-testid":P.panel,children:[r(Qo,{...e,containerEl:i.current,dragOver:l,composerAttachApiRef:a}),r(Zo,{poweredBy:e.options.poweredBy})]})}function Qo({options:e,transport:t,feedback:n,bus:o,panelSize:i,view:a,canSend:s,isStreaming:l,loadingMessages:c,messagesSig:u,agent:p,suggestions:d,initialWidgetSize:_,visitorId:f,onClose:v,onBack:m,onClear:y,onExpand:b,onFullscreen:S,onPopOut:T,onSoundToggle:D,onToggleHistory:O,onSelectHistoryChat:V,onNewChat:ue,onLocaleChange:pe,onThemeChange:X,onWidgetSizeChange:Q,onSend:je,onStop:Be,onSuggestion:E,containerEl:$,dragOver:j,composerAttachApiRef:de}){let Y=e.strings;return r(te,{children:[a==="history"?r(Hd,{strings:Y,onBack:O,onClose:v,showClose:Sa(e.mode,i,e.actions)}):r(zd,{agent:p,onBack:m,backLabel:Y.moduleBack,moreActionsLabel:Y.moreActions,languageLabel:Y.language,themeLabel:Y.theme,themeOptionLabels:{auto:Y.themeAuto,light:Y.themeLight,dark:Y.themeDark},activeThemeMode:e.themeMode,onThemeChange:X,panelTitle:Y.panelTitle,activeLocale:e.locale,availableLocales:e.availableLocales,onLocaleChange:pe,main:$o(e.actions.main,e.mode,i,{popOutUrl:e.popOutUrl}),overflow:$o(e.actions.overflow,e.mode,i,{popOutUrl:e.popOutUrl}),descriptors:Fd({strings:Y,panelSize:i,feedback:n,onClear:y,onExpand:b,onFullscreen:S,onPopOut:T,onSoundToggle:D,onToggleHistory:O,onClose:v})}),a==="history"?r(Ga,{transport:t,strings:Y,visitorId:f,onSelect:le=>V(le.sessionId),onNewChat:ue}):r(te,{children:[r(Ta,{visible:j,strings:Y}),r(za,{messagesSig:u,strings:Y,responseMode:e.responseMode,showReasoning:e.showReasoning,showToolCalls:e.showToolCalls,loading:c}),s?r(te,{children:[r(ja,{suggestions:d,onPick:E}),r(Aa,{options:e,transport:t,feedback:n,bus:o,isStreaming:l,onSend:je,onStop:Be,attachApiRef:de})]}):r($d,{label:Y.chatClosed,ctaLabel:Y.startNewConversation,onNewChat:y}),r(Bd,{disclaimer:e.composerDisclaimer})]}),e.size.resize?.enabled?r(Sn,{panelEl:$,resize:e.size.resize,position:e.position,initialSize:_,onSizeChange:Q,strings:Y}):null]})}function Hd({strings:e,onBack:t,onClose:n,showClose:o}){return r("header",{class:`${_e}-header`,children:[r("button",{type:"button",class:`${_e}-icon-btn`,onClick:t,"aria-label":e.historyBack,title:e.historyBack,children:r(wt,{})}),r("h1",{children:e.historyTitle}),o?r("button",{type:"button",class:`${_e}-icon-btn`,onClick:n,"aria-label":e.close,title:e.close,children:r(me,{})}):null]})}function $d({label:e,ctaLabel:t,onNewChat:n}){return r("div",{class:`${_e}-readonly-banner`,role:"note",children:[r("span",{class:`${_e}-readonly-label`,children:e}),r("button",{type:"button",class:`${_e}-readonly-cta`,onClick:n,children:t})]})}function Bd({disclaimer:e}){return e?r("div",{class:`${_e}-composer-footer`,children:r("div",{class:`${_e}-disclaimer`,children:e})}):null}function Zo({poweredBy:e}){return e?r("div",{class:`${_e}-poweredby-bar`,children:r(Ud,{logoUrl:e.logoUrl,text:e.text,href:e.href})}):null}function Ud({logoUrl:e,text:t,href:n}){let o=r(te,{children:[e?r("img",{class:`${_e}-poweredby-logo`,src:e,alt:"",loading:"lazy"}):null,t?r("span",{children:t}):null]});return n?r("a",{class:`${_e}-poweredby`,href:n,target:"_blank",rel:"noopener noreferrer",children:o}):r("span",{class:`${_e}-poweredby`,children:o})}function zd({agent:e,onBack:t,backLabel:n,moreActionsLabel:o,languageLabel:i,themeLabel:a,themeOptionLabels:s,activeThemeMode:l,onThemeChange:c,panelTitle:u,activeLocale:p,availableLocales:d,onLocaleChange:_,main:f,overflow:v,descriptors:m}){let y=d.length>1,b=[];for(let T of v){if(T==="theme")continue;if(T==="language"){if(!y)continue;for(let O of d)b.push({id:`language:${O}`,label:i+` \u2014 ${O}`,lang:O,onSelect:()=>_(O),type:"switch",on:O===p});continue}let D=m[T];b.push({id:T,icon:D.icon,label:D.label,onSelect:D.onSelect,type:D.switchable?"switch":"button",on:D.switchOn})}let S=v.includes("theme");return r("header",{class:`${_e}-header`,"data-testid":P.panelHeader,children:[t?r("button",{type:"button",class:`${_e}-icon-btn`,onClick:t,"aria-label":n,title:n,children:r(wt,{})}):null,e?r(ka,{agent:e}):r("h1",{children:u}),f.map(T=>{if(T==="language")return y?r(Va,{available:d,active:p,onSelect:_,triggerLabel:i},"language"):null;if(T==="theme")return r(Jo,{active:l,onSelect:c,triggerLabel:a,optionLabels:s},"theme");let D=m[T];return r("button",{type:"button",class:`${_e}-icon-btn`,onClick:D.onSelect,"aria-label":D.label,"aria-pressed":D.switchable?D.switchOn:void 0,title:D.label,"data-testid":ba[T],children:D.icon},T)}),S?r(Jo,{active:l,onSelect:c,triggerLabel:a,optionLabels:s}):null,b.length>0?r(Fa,{items:b,triggerLabel:o}):null]})}function Fd(e){let{strings:t,panelSize:n,feedback:o,onClear:i,onExpand:a,onFullscreen:s,onPopOut:l,onSoundToggle:c,onToggleHistory:u,onClose:p}=e,d=n==="expanded",_=n==="fullscreen",f=we(()=>o.mutedSig.value).value;return{clear:{icon:r(da,{}),label:t.newConversation,onSelect:i},expand:{icon:d?r(ea,{}):r(Zi,{}),label:d?t.collapse:t.expand,onSelect:a,switchable:!0,switchOn:d},fullscreen:{icon:_?r(na,{}):r(ta,{}),label:_?t.exitFullscreen:t.fullscreen,onSelect:s,switchable:!0,switchOn:_},popOut:{icon:r(ca,{}),label:t.popOut,onSelect:l},sound:{icon:f?r(aa,{}):r(ia,{}),label:f?t.soundOff:t.soundOn,onSelect:c,switchable:!0,switchOn:!f},history:{icon:r(sa,{}),label:t.history,onSelect:u},close:{icon:r(me,{}),label:t.close,onSelect:p??(()=>{})}}}function Ja(e){let t=h.cssPrefix,{site:n,blocks:o,strings:i,collapsed:a}=e,s=o?.navigation??[],l=o?.linkCards??[],c=a?i.expandSidebar:i.collapseSidebar;return r("aside",{class:`${t}-sidebar`,"data-collapsed":a?"true":"false","data-testid":P.sidebar,children:[r("div",{class:`${t}-sidebar-header`,children:[r(Wd,{site:n}),r("button",{type:"button",class:`${t}-sidebar-toggle`,"aria-label":c,"aria-expanded":a?"false":"true",title:c,onClick:e.onToggleCollapsed,"data-testid":P.sidebarToggle,children:r(Kd,{collapsed:a})})]}),a?null:r(te,{children:[s.length>0?r("nav",{class:`${t}-sidebar-section`,"data-section":"navigation",children:r(Gd,{items:s})}):null,l.length>0?r("div",{class:`${t}-sidebar-section`,"data-section":"link-cards",children:r(Vd,{items:l})}):null,e.showConversations?r("div",{class:`${t}-sidebar-conversations`,children:r(Mn,{transport:e.transport,strings:e.strings,visitorId:e.visitorId,onSelect:e.onSelectChat,onNewChat:e.onNewChat})}):null]})]})}function Wd({site:e}){let t=h.cssPrefix;if(e?.logo?.url){let n=e.logo.alt??e.title??"Logo";return r("picture",{children:[e.logoDark?.url?r("source",{srcset:e.logoDark.url,media:"(prefers-color-scheme: dark)"}):null,r("img",{class:`${t}-sidebar-logo`,src:e.logo.url,alt:n})]})}return r("div",{class:`${t}-sidebar-title`,children:e?.title??h.name})}function Kd({collapsed:e}){return r("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","aria-hidden":"true",children:e?r("polyline",{points:"9 6 15 12 9 18"}):r("polyline",{points:"15 6 9 12 15 18"})})}function Gd({items:e}){let t=h.cssPrefix;return r("ul",{class:`${t}-sidebar-nav`,children:e.map(n=>r("li",{children:r("a",{class:`${t}-sidebar-nav-item`,href:n.href,target:n.href?"_blank":void 0,rel:n.href?"noreferrer":void 0,children:[n.icon?r("span",{class:`${t}-sidebar-nav-icon`,"data-icon":n.icon}):null,r("span",{class:`${t}-sidebar-nav-label`,children:n.label})]})},n.id??n.label))})}function Vd({items:e}){let t=h.cssPrefix;return r("div",{class:`${t}-sidebar-cards`,children:e.map(n=>r("a",{class:`${t}-sidebar-card`,href:n.href,target:n.href?"_blank":void 0,rel:n.href?"noreferrer":void 0,children:[r("div",{class:`${t}-sidebar-card-label`,children:n.label}),n.description?r("div",{class:`${t}-sidebar-card-desc`,children:n.description}):null]},n.id??n.label))})}var Qa=h.cssPrefix;function Za(e){return r("main",{class:`${Qa}-page-shell`,"data-sidebar-collapsed":e.sidebarCollapsed?"true":"false",children:[r(Ja,{site:e.site,blocks:e.blocks,transport:e.transport,strings:e.strings,visitorId:e.visitorId,showConversations:e.showConversations,onSelectChat:e.onSelectChat,onNewChat:e.onNewChat,collapsed:e.sidebarCollapsed,onToggleCollapsed:e.onToggleSidebarCollapsed}),r("section",{class:`${Qa}-page-chat`,"aria-label":"Chat",children:e.children})]})}var es=e=>Object.fromEntries(e.map(t=>[t,[]]));function ts(e,t,n){let o=L({activeTab:e,stacks:es(t)});return{sig:o,switchTab(i){o.value.activeTab!==i&&(o.value={...o.value,activeTab:i},n?.(i))},push(i){let a=o.value,s=a.stacks[a.activeTab]??[];o.value={...a,stacks:{...a.stacks,[a.activeTab]:[...s,i]}}},pop(){let i=o.value,a=i.stacks[i.activeTab]??[];a.length!==0&&(o.value={...i,stacks:{...i.stacks,[i.activeTab]:a.slice(0,-1)}})},reset(i){o.value={activeTab:i,stacks:es(t)}}}}var ns=e=>e.stacks[e.activeTab]??[],os=e=>ns(e).at(-1),rs=e=>ns(e).length===0;var is={Icon:kt};var Ce=h.cssPrefix;function Ln({title:e,onClose:t,closeLabel:n}){return r("header",{class:`${Ce}-back-header`,"data-variant":"title",children:[r("span",{class:`${Ce}-back-spacer`,"aria-hidden":"true"}),r("h1",{class:`${Ce}-back-title`,children:e}),t?r("button",{type:"button",class:`${Ce}-icon-btn`,onClick:t,"aria-label":n,title:n,children:r(me,{})}):r("span",{class:`${Ce}-back-spacer`,"aria-hidden":"true"})]})}function Nn({title:e,backLabel:t,onBack:n,onClose:o,closeLabel:i,testid:a}){return r("header",{class:`${Ce}-back-header`,"data-testid":a,children:[r("button",{type:"button",class:`${Ce}-icon-btn`,onClick:n,"aria-label":t,title:t,children:r(wt,{})}),r("h1",{class:`${Ce}-back-title`,children:e}),o?r("button",{type:"button",class:`${Ce}-icon-btn`,onClick:o,"aria-label":i,title:i,children:r(me,{})}):r("span",{class:`${Ce}-back-spacer`,"aria-hidden":"true"})]})}var lt=h.cssPrefix;function as({placeholder:e,onActivate:t}){return r("button",{type:"button",class:`${lt}-home-search`,onClick:t,"data-testid":P.homeSearch,children:[r("span",{class:`${lt}-home-search-text`,children:e}),r("span",{class:`${lt}-home-search-icon`,"aria-hidden":"true",children:r(Ho,{})})]})}function ss({placeholder:e,value:t,onInput:n}){return r("div",{class:`${lt}-home-search`,"data-input":"true",children:[r("input",{type:"search",class:`${lt}-home-search-input`,placeholder:e,value:t,onInput:o=>n(o.currentTarget.value),"data-testid":P.helpSearch}),r("span",{class:`${lt}-home-search-icon`,"aria-hidden":"true",children:r(Ho,{})})]})}var Ct=h.cssPrefix;function On({title:e,subtitle:t,onClick:n,testid:o}){return r("button",{type:"button",class:`${Ct}-list-row`,onClick:n,"data-testid":o,children:[r("span",{class:`${Ct}-list-row-body`,children:[r("span",{class:`${Ct}-list-row-title`,children:e}),t?r("span",{class:`${Ct}-list-row-sub`,children:t}):null]}),r("span",{class:`${Ct}-list-row-chevron`,"aria-hidden":"true",children:r(yn,{})})]})}var ls=h.cssPrefix;function xe({tone:e="info",message:t,onRetry:n,strings:o}){return r("div",{class:`${ls}-module-empty`,role:e==="error"?"alert":"status","aria-live":"polite",children:[r("span",{children:t}),n?r("button",{type:"button",class:`${ls}-module-retry`,onClick:n,children:o.errorRetry}):null]})}var qe=h.cssPrefix,qd=M.scope("help"),Xd=(e,t)=>t.url?e.push({kind:"iframe",url:t.url,title:t.title}):e.push({kind:"content",id:t.id,title:t.title});function jd(e){let t=new Map;for(let n of e){let o=n.categories?.[0]??"";(t.get(o)??t.set(o,[]).get(o)).push(n)}return[...t.entries()]}function cs(e,t){let n=t.toLowerCase(),o=n.indexOf(e);if(o!==-1)return 100-Math.min(o,99);let i=0;for(let a of e){if(i=n.indexOf(a,i),i===-1)return 0;i+=1}return 1}function Yd(e,t){let n=t.toLowerCase().trim();return n?e.map(o=>({item:o,score:Math.max(cs(n,o.title)*2,cs(n,o.description??""))})).filter(o=>o.score>0).toSorted((o,i)=>i.score-o.score).map(o=>o.item):[]}function ds({article:e,nav:t}){return r(On,{title:e.title,subtitle:e.description,onClick:()=>Xd(t,e),testid:ce(P.helpArticle,e.id)})}function Jd({transport:e,strings:t,config:n,nav:o,panelProps:i}){let a=n.contentTags,[s,l]=k("loading"),[c,u]=k(t.errorGeneric),[p,d]=k([]),[_,f]=k(""),[v,m]=k(0);w(()=>{let S=!1;return l("loading"),e.listContent({tags:a,sortBy:"order",limit:100}).then(T=>{S||(d(T.items??[]),l("loaded"))}).catch(T=>{S||(qd.warn("listContent (help) failed",{err:T}),u(We(T,t)),l("error"))}),()=>{S=!0}},[e,a,v]);let y=he(()=>Yd(p,_),[p,_]);function b(){return _.trim().length>0?y.length===0?r(xe,{message:t.helpSearchEmpty,strings:t}):r("div",{class:`${qe}-help-card`,children:y.map(S=>r(ds,{article:S,nav:o},S.id))}):s==="loading"?r(xe,{message:t.helpLoading,strings:t}):s==="error"?r(xe,{tone:"error",message:c,onRetry:()=>m(S=>S+1),strings:t}):p.length===0?r(xe,{message:t.helpEmpty,strings:t}):jd(p).map(([S,T])=>r("section",{class:`${qe}-help-group`,children:[S?r("h2",{class:`${qe}-help-section-title`,children:S}):null,r("div",{class:`${qe}-help-card`,children:T.map(D=>r(ds,{article:D,nav:o},D.id))})]},S))}return r("div",{class:`${qe}-module`,children:[r(Ln,{title:t.helpTitle,onClose:i.onClose,closeLabel:t.close}),r("div",{class:`${qe}-module-pad`,children:r(ss,{placeholder:t.helpSearchPlaceholder,value:_,onInput:f})}),r("div",{class:`${qe}-help-list`,children:b()})]})}var _s={Icon:Do,Root:e=>r(Jd,{...e})};var us=h.cssPrefix;function er({onClick:e,children:t,testid:n}){return e?r("button",{type:"button",class:`${us}-home-card`,"data-interactive":"true",onClick:e,"data-testid":n,children:t}):r("div",{class:`${us}-home-card`,"data-testid":n,children:t})}var G=h.cssPrefix,ps=M.scope("home");function Qd(e){let t=e.options.userContext?.name,n=e.config.greetingText;return n?{title:t?n.replace("{name}",t):n.replace(/\s*\{name\}\s*/," ").trim(),subtitle:e.strings.homeGreetingLead}:t?{title:e.strings.homeGreetingNamed.replace("{name}",t),subtitle:e.strings.homeGreetingLead}:{title:e.strings.homeGreeting}}var Zd=(e,t)=>t.url?e.push({kind:"iframe",url:t.url,title:t.title}):e.push({kind:"content",id:t.id,title:t.title});function e_(e){let{transport:t,strings:n,config:o,nav:i,panelProps:a}=e,[s,l]=k(null),[c,u]=k([]),p=o.contentTags?.join(",");w(()=>{if(!o.showRecentMessages)return;let m=!1;return t.listSessions({limit:1}).then(y=>!m&&l(y.sessions?.[0]??null)).catch(y=>!m&&ps.warn("listSessions (home) failed",{err:y})),()=>{m=!0}},[t,o.showRecentMessages]),w(()=>{if(!o.contentTags?.length)return;let m=!1;return t.listContent({tags:o.contentTags,limit:6}).then(y=>!m&&u(y.items??[])).catch(y=>!m&&ps.warn("listContent (home) failed",{err:y})),()=>{m=!0}},[t,p]);let d=Qd(e),_=o.userAvatars??[],f=o.status,v=o.contentBlockTitle?on(n,o.contentBlockTitle):n.homeContentTitle;return r("div",{class:`${G}-module ${G}-home`,"data-testid":P.homeView,children:r("div",{class:`${G}-home-scroll`,children:[r("div",{class:`${G}-home-hero`,children:[r("div",{class:`${G}-home-hero-top`,children:[o.brandName?r("span",{class:`${G}-home-brand`,"data-testid":P.homeBrand,children:o.brandName}):r("span",{class:`${G}-home-brand-spacer`,"aria-hidden":"true"}),r("div",{class:`${G}-home-hero-actions`,children:[_.length>0?r("div",{class:`${G}-home-avatars`,children:_.map(m=>r("span",{class:`${G}-home-avatar`,title:m.role?`${m.name} \xB7 ${m.role}`:m.name,children:m.avatar?r("img",{src:m.avatar,alt:"",loading:"lazy"}):r("span",{children:Cn(m.name)})},m.name))}):null,a.onClose?r("button",{type:"button",class:`${G}-icon-btn ${G}-home-close`,onClick:a.onClose,"aria-label":n.close,title:n.close,children:r(me,{})}):null]})]}),o.showGreeting!==!1?r(te,{children:[r("h1",{class:`${G}-home-greeting`,"data-testid":P.homeGreeting,children:d.title}),d.subtitle?r("p",{class:`${G}-home-lead`,children:d.subtitle}):null]}):null]}),r("div",{class:`${G}-home-cards`,children:[o.showSearchBar!==!1?r(as,{placeholder:n.homeSearchPlaceholder,onActivate:()=>i.switchToLayout("help")}):null,s?r(er,{onClick:()=>i.selectSession(s.sessionId),testid:P.homeRecent,children:r("div",{class:`${G}-home-recent-row`,"data-unread":(s.unreadCount??0)>0?"true":void 0,children:[r("span",{class:`${G}-home-recent-avatar`,"aria-hidden":"true",children:r(kt,{})}),r("span",{class:`${G}-home-recent-body`,children:[r("span",{class:`${G}-home-recent-title`,children:s.title}),s.preview?r("span",{class:`${G}-home-recent-preview`,children:s.preview}):null]}),(s.unreadCount??0)>0?r("span",{class:`${G}-home-recent-dot`,"aria-label":"Unread"}):null]})}):null,f?r(er,{onClick:f.url?()=>i.push({kind:"iframe",url:f.url,title:f.text}):void 0,children:r("div",{class:`${G}-home-status`,"data-level":f.level??"operational",children:[r("span",{class:`${G}-home-status-icon`,"aria-hidden":"true",children:r(ua,{})}),r("span",{class:`${G}-home-status-text`,children:f.text})]})}):null,c.length>0?r("section",{class:`${G}-home-content`,children:[r("div",{class:`${G}-home-content-title`,children:v}),r("div",{class:`${G}-home-content-list`,children:c.map(m=>r(On,{title:m.title,subtitle:m.description,onClick:()=>Zd(i,m),testid:ce(P.homeContentRow,m.id)},m.id))})]}):null]})]})})}var fs={Icon:pa,Root:e=>r(e_,{...e})};var Ae=h.cssPrefix,t_=M.scope("news");function n_({transport:e,strings:t,config:n,nav:o,panelProps:i}){let a=n.contentTags,[s,l]=k("loading"),[c,u]=k(t.errorGeneric),[p,d]=k([]),[_,f]=k(0);w(()=>{let m=!1;return l("loading"),e.listContent({tags:a,sortBy:"publishedAt",sortOrder:"desc"}).then(y=>{m||(d(y.items??[]),l("loaded"))}).catch(y=>{m||(t_.warn("listContent (news) failed",{err:y}),u(We(y,t)),l("error"))}),()=>{m=!0}},[e,a,_]);function v(){return s==="loading"?r(xe,{message:t.newsLoading,strings:t}):s==="error"?r(xe,{tone:"error",message:c,onRetry:()=>f(m=>m+1),strings:t}):p.length===0?r(xe,{message:t.newsEmpty,strings:t}):r("div",{class:`${Ae}-news-list`,children:p.map(m=>r("button",{type:"button",class:`${Ae}-news-card`,onClick:()=>o.push({kind:"content",id:m.id,title:m.title}),"data-testid":ce(P.newsItem,m.id),children:[m.image?r("img",{class:`${Ae}-news-hero`,src:m.image,alt:"",loading:"lazy"}):null,r("span",{class:`${Ae}-news-body`,children:[m.tags&&m.tags.length>0?r("span",{class:`${Ae}-news-tags`,children:m.tags.map(y=>r("span",{class:`${Ae}-news-tag`,children:y},y))}):null,r("span",{class:`${Ae}-news-title`,children:m.title}),m.description?r("span",{class:`${Ae}-news-summary`,children:m.description}):null]})]},m.id))})}return r("div",{class:`${Ae}-module`,children:[r(Ln,{title:t.newsTitle,onClose:i.onClose,closeLabel:t.close}),r("div",{class:`${Ae}-module-scroll`,children:v()})]})}var gs={Icon:fa,Root:e=>r(n_,{...e})};var Dn={chat:is,home:fs,help:_s,news:gs};var At=h.cssPrefix;function ms({modules:e,activeTab:t,strings:n,unreadCount:o,onSelect:i}){return r("nav",{class:`${At}-tabbar`,role:"tablist","aria-label":n.panelTitle,children:e.map(a=>{let s=Dn[a.layout].Icon,l=a.id===t,c=a.layout==="chat"&&o>0?o>9?"9+":String(o):null;return r("button",{type:"button",role:"tab","aria-selected":l,class:`${At}-tab`,onClick:()=>i(a.id),"data-testid":ce(P.tab,a.id),children:[r("span",{class:`${At}-tab-icon`,"aria-hidden":"true",children:[r(s,{}),c?r("span",{class:`${At}-tab-badge`,"data-testid":P.tabBadge,children:c}):null]}),r("span",{class:`${At}-tab-label`,children:on(n,a.label)})]},a.id)})})}var hs=h.cssPrefix,o_="allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads";function vs({url:e,title:t,strings:n,onBack:o,onClose:i}){return r("div",{class:`${hs}-module`,children:[r(Nn,{title:t||n.moduleBack,backLabel:n.moduleBack,onBack:o,onClose:i,closeLabel:n.close}),r("iframe",{class:`${hs}-content-frame`,src:e,title:t||"content",sandbox:o_,referrerpolicy:"no-referrer",loading:"lazy",allow:"fullscreen"})]})}var Xe=h.cssPrefix,r_=M.scope("content");function bs({id:e,title:t,transport:n,strings:o,onBack:i,onClose:a}){let[s,l]=k(null),[c,u]=k(!1),[p,d]=k(0),_=R(()=>{u(!1),l(null),d(v=>v+1)},[]);w(()=>{let v=!1;return n.listContent({ids:[e],limit:1}).then(m=>{if(v)return;let y=m.items[0];y?l(y):u(!0)}).catch(m=>{v||(r_.warn("listContent (reader) failed",{err:m}),u(!0))}),()=>{v=!0}},[n,e,p]);function f(){return c?r(xe,{tone:"error",message:o.errorGeneric,onRetry:_,strings:o}):s===null?r(xe,{message:o.contentLoading,strings:o}):r("article",{class:`${Xe}-content`,"data-testid":P.contentView,children:[s.image?r("img",{class:`${Xe}-content-hero`,src:s.image,alt:"",loading:"lazy"}):null,s.description?r("p",{class:`${Xe}-content-subtitle`,children:s.description}):null,s.tags&&s.tags.length>0?r("span",{class:`${Xe}-news-tags`,children:s.tags.map(v=>r("span",{class:`${Xe}-news-tag`,children:v},v))}):null,r(Ha,{text:s.content??""})]})}return r("div",{class:`${Xe}-module`,children:[r(Nn,{title:s?.title||t||o.moduleBack,backLabel:o.moduleBack,onBack:i,onClose:a,closeLabel:o.close,testid:P.backHeader}),r("div",{class:`${Xe}-module-scroll`,"data-testid":P.contentScroll,children:f()})]})}var tr=h.cssPrefix;function xs({panelProps:e,enabledModules:t,nav:n,unreadCount:o,onSelectSession:i,onStartNewSession:a,onSetPanelSize:s}){let l=e.options,c=l.strings,u=N(null);w(()=>{let V=u.current;if(!V)return;let ue=En(V),pe=X=>{X.key==="Escape"&&e.onClose?.()};return V.addEventListener("keydown",pe),()=>{ue(),V.removeEventListener("keydown",pe)}},[e.onClose]);let p=N(null),d=R(V=>{p.current?.attachFromDrop(V)},[]),{visible:_}=Tn({containerRef:u,onDrop:d});wn(u.current,l.mode==="modal");let f=we(()=>n.sig.value).value,v=os(f),m=l.modules.byId[f.activeTab],y=v?.kind==="iframe"||v?.kind==="content",b=t.length>1&&(rs(f)||!y),S=N(null);w(()=>{if(y&&S.current===null)S.current=e.panelSize,e.panelSize==="normal"&&s("expanded");else if(!y&&S.current!==null){let V=S.current;S.current=null,s(V)}},[y]);let T={push:n.push,pop:n.pop,switchTab:n.switchTab,switchToLayout:V=>{let ue=t.find(pe=>pe.layout===V);ue&&n.switchTab(ue.id)},selectSession:i,startNewSession:a},D=V=>({options:l,transport:e.transport,strings:c,config:V,visitorId:e.visitorId,nav:T,panelProps:e}),O;if(v?.kind==="iframe")O=r(vs,{url:v.url,title:v.title,strings:c,onBack:n.pop,onClose:e.onClose});else if(v?.kind==="content")O=r(bs,{id:v.id,title:v.title,transport:e.transport,strings:c,onBack:n.pop,onClose:e.onClose});else if(m?.layout==="chat")O=r(Qo,{...e,containerEl:u.current,dragOver:_,composerAttachApiRef:p});else if(m){let V=Dn[m.layout].Root;O=V?r(V,{...D(m)},m.id):null}else O=null;return r("div",{ref:u,class:`${tr}-panel ${tr}-messenger`,role:"dialog","aria-modal":"false","aria-label":c.panelTitle,style:{position:"relative"},"data-testid":P.messengerHome,children:[r("div",{class:`${tr}-messenger-body`,children:O}),b?r(ms,{modules:t,activeTab:f.activeTab,strings:c,unreadCount:o,onSelect:n.switchTab}):null,r(Zo,{poweredBy:l.poweredBy}),l.size.resize?.enabled&&!(m?.layout==="chat"&&!v)?r(Sn,{panelEl:u.current,resize:l.size.resize,position:l.position,initialSize:e.initialWidgetSize,onSizeChange:e.onWidgetSizeChange,strings:c}):null]})}var Tt=h.cssPrefix;function ys({strings:e,onClose:t}){return r("div",{class:`${Tt}-panel ${Tt}-modules-empty`,role:"dialog","aria-label":e.panelTitle,"data-testid":P.modulesEmpty,children:[t?r("button",{type:"button",class:`${Tt}-icon-btn ${Tt}-modules-empty-close`,onClick:t,"aria-label":e.close,title:e.close,children:r(me,{})}):null,r("p",{class:`${Tt}-modules-empty-text`,children:e.modulesEmpty})]})}async function Ps(e,t,n,o){for(let i=0;i<e.length;i++){if(o.aborted)return;let a=e[i],s=t[i];!a||!s||await i_(a,s.text,n,o)}}function i_(e,t,n,o){return new Promise(i=>{let a=e.partsSig.value[0];if(!a||a.kind!=="text"){i();return}let s=()=>{a.textSig.value=t,a.doneSig.value=!0,e.status="complete",i()};if(typeof requestAnimationFrame>"u"){s();return}let l=t.length/Math.max(1,n)*1e3,c=performance.now(),u=d=>{if(o.aborted)return s();let _=l===0?1:Math.min(1,(d-c)/l);if(a.textSig.value=t.slice(0,Math.floor(_*t.length)),_>=1)return s();p=requestAnimationFrame(u)},p=requestAnimationFrame(u);o.addEventListener("abort",()=>{cancelAnimationFrame(p),s()},{once:!0})})}function Ss({callout:e,persistence:t}){let n=e?.text??"",o=e?.persistent??!0,[i,a]=k(()=>o?!1:t.loadCalloutDismissed(n));w(()=>{a(o?!1:t.loadCalloutDismissed(n))},[n,o,t]);let s=R(()=>{a(!0),o||t.saveCalloutDismissed(n)},[t,n,o]);return{dismissed:i,dismissCallout:s}}var W=M.scope("app"),nr=h.cssPrefix;function ws({options:e,hostElement:t,bus:n}){let[o]=k(()=>St(e.widgetId,e.storage)),[i,a]=k(()=>o.getVisitorId()),s=o.loadUserPrefs(),[l,c]=k(()=>s.locale??e.locale),[u,p]=k(()=>s.themeMode??e.themeMode),d=vt(o.loadSessionId()),_=vt([]),f=vt(0),[v,m]=k(!1);function y(){let g=e.modules.list,x=new Set(g.map(ie=>ie.id)),U=o.loadActiveModule();return U&&x.has(U)?U:g[0]?.id??""}function b(){return e.modules.list.find(g=>g.layout==="chat")?.id}let S=N();if(!S.current){let g=e.modules.list.map(x=>x.id);S.current=ts(y(),g,x=>o.saveActiveModule(x))}let T=S.current,D=N(void 0);D.current=b();let[O,V]=k(!1),ue=e.mode==="standalone"||e.mode==="inline",pe=N(yt(e,ot(),o.loadPanelOpen(),o.loadPanelSize())),[X,Q]=k(pe.current.panelOpen),je=N(!1),[Be,E]=k(!1),{dismissed:$,dismissCallout:j}=Ss({callout:e.launcher.callout,persistence:o}),de=e.launcher.callout?.persistent??!0,Y=R(()=>{W.info("calloutDismiss"),n.emit("calloutDismiss",void 0),j()},[n,j]),[le,fe]=k(pe.current.panelSize),It=N(!1),[Ms,Un]=k("chat"),[Ls,ct]=k(!0),[Ue,Rt]=k(!1),[Ns,ar]=k(null),[zn,Mt]=k([]),[Lt,Nt]=k(null),Fn=N(null),[Os,Ds]=k(void 0),[Hs,$s]=k(void 0),[Bs,Us]=k(()=>o.loadSidebarCollapsed()??!1),[re]=k(()=>new fn({baseUrl:e.baseUrl,auth:Ei({publicKey:e.publicKey,aiAgentDeploymentId:e.aiAgentDeploymentId,publicKeyHeader:"x-public-key"}),endpoints:e.endpoints})),[Ne]=k(()=>new gn(_)),[J]=k(()=>new xn(e.sound,e.haptics)),Oe=R(g=>{o.patchUserPrefs(g),re.saveUserPrefs(o.loadUserPrefs()).catch(x=>{W.warn("saveUserPrefs failed",{err:x})})},[o,re]);w(()=>{s.soundMuted!==void 0&&J.setMuted(s.soundMuted)},[]),w(()=>{t.dataset.theme=u},[t,u,e]),w(()=>{J.update(e.sound,e.haptics)},[J,e.sound,e.haptics]),w(()=>()=>J.destroy(),[J]),w(()=>{let g=!0;return J.mutedSig.subscribe(x=>{if(g){g=!1;return}Oe({soundMuted:x})})},[J,Oe]),w(()=>{It.current||!e.size.initialSize||(It.current=!0,!o.loadPanelSize()&&fe(Io(e.mode,e.size,ot())))},[e.mode,e.size,o]),w(()=>{if(!O||je.current)return;je.current=!0;let g=yt(e,ot(),o.loadPanelOpen(),o.loadPanelSize());Q(g.panelOpen),fe(g.panelSize)},[O,e,o]);let sr=N(!1),lr=N(!1),Ot=N(null);w(()=>{if(!(!O||sr.current)){if(sr.current=!0,lr.current){let g=D.current;g&&T.switchTab(g);return}T.reset(y())}},[O]);let cr=R(g=>{if(!g||g.length===0)return;let{animation:x,speed:U}=e.welcome;if(x==="instant"){_.value=g.map($i);return}Fn.current?.abort();let ie=new AbortController;Fn.current=ie;let oe=g.map(Hi);_.value=oe,Ps(oe,g,U,ie.signal)},[_,e.welcome]),Wn=N(0),dt=R(async({newConversation:g})=>{let x=++Wn.current,U=()=>x!==Wn.current,ie=d.value,oe=g||!ie?ke():ie;oe!==ie&&(d.value=oe,o.saveSessionId(oe));let A;try{A=await re.startSession({visitorId:i,sessionId:oe,userPrefs:o.loadUserPrefs(),locale:e.locale})}catch(Pe){if(U())return;n.emit("error",Pe),e.onError?.(Pe),g||V(!0);return}if(U())return;if(A.visitorId&&A.visitorId!==i&&(W.info("visitor rebound",{previous:i,current:A.visitorId,reason:A.rebind?.visitorId}),o.setVisitorId(A.visitorId),a(A.visitorId),n.emit("visitorRebound",{previous:i,current:A.visitorId,reason:A.rebind?.visitorId})),A.sessionId&&A.sessionId!==oe&&(W.info("session rebound",{previous:oe,current:A.sessionId,reason:A.rebind?.sessionId}),n.emit("sessionRebound",{previous:oe,current:A.sessionId,reason:A.rebind?.sessionId})),A.agent&&ar(A.agent),A.welcome?.suggestions&&Mt(A.welcome.suggestions),e.mode==="page"&&(A.site&&pi(A.site)?Ds(A.site):A.site&&W.warn("invalid site config, using fallback",{site:A.site}),A.blocks&&fi(A.blocks)?$s(A.blocks):A.blocks&&W.warn("invalid blocks config, using fallback",{blocks:A.blocks})),A.userPrefs&&!g&&(o.saveUserPrefs(A.userPrefs),A.userPrefs.locale&&c(A.userPrefs.locale),A.userPrefs.soundMuted!==void 0&&J.setMuted(A.userPrefs.soundMuted),A.userPrefs.themeMode&&p(A.userPrefs.themeMode)),!g&&ie&&A.sessionId===ie){m(!0);try{let Pe=A.messages?.length?{sessionId:ie,canContinue:A.canContinue??!0,messages:A.messages}:await re.loadSession(ie);if(U())return;let ge=(Pe.messages??[]).map(No),vr=Ot.current?[Ot.current]:[];(ge.length||vr.length)&&(_.value=[...ge,...vr]),ct(Pe.canContinue??!0),Mt(Pe.suggestions??[])}catch(Pe){if(U())return;W.warn("loadSession failed; resetting sessionId",{err:Pe,sessionId:ie}),d.value=void 0,o.saveSessionId(void 0)}finally{U()||m(!1)}}else d.value=A.sessionId,o.saveSessionId(A.sessionId),cr(A.welcome?.messages);g||(n.emit("sessionStarted",A),V(!0))},[re,i,o,e,n,_,d,J,cr]),_t=JSON.stringify(e.userContext??null),zs=JSON.stringify(e.pageContext??null);w(()=>{re.setContext(e.userContext,a_(e.pageContext))},[re,_t,zs]);let Fs=R(async g=>{let x=null;try{for await(let U of g.iter){if(!x){x=Lo(),Ot.current=x,Ne.attach(x),_.value=[..._.value,x],Rt(!0),Nt(()=>g.cancel),lr.current=!0;let ie=D.current;ie&&T.switchTab(ie),W.info("resumed in-flight reply on mount")}Ne.apply(U.chunk),U.chunk.type==="finish"&&U.chunk.canContinue===!1&&ct(!1)}x&&(x.status="complete",J.play("messageReceived"),or(n,e,"assistant",Oo(x)))}catch(U){x&&(x.status="error",x.errorText=We(U,e.strings),J.play("error")),W.debug("mount resume ended without completing",{err:U})}finally{Ot.current=null,x&&(Ne.detach(),Rt(!1),Nt(null),_.value=[..._.value])}},[Ne,_,J,n,e,T]);w(()=>{dt({newConversation:!1});let g=d.value,x=null;return g&&(re.primeIdentity(i,g),x=re.resumeStream(),Fs(x)),()=>{Wn.current++,x?.cancel()}},[]);let dr=N(_t);w(()=>{!O||dr.current===_t||(dr.current=_t,dt({newConversation:!1}))},[_t,O,dt]),w(()=>{un(t,pn(e.mode,le,X))},[t,X,le,e.mode]),w(()=>{if(e.mode!=="modal"||!X)return;let g=x=>{x.composedPath().some(oe=>oe instanceof HTMLElement&&oe.classList.contains(`${h.cssPrefix}-panel`))||Q(!1)};return t.addEventListener("click",g),()=>t.removeEventListener("click",g)},[t,X,e.mode]),w(()=>{if(e.mode!=="drawer"||!X)return;let g=x=>{x.key==="Escape"&&Q(!1)};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[X,e.mode]);let _r=R(async(g,x)=>{if(W.info("send",{textLen:g.length,attachments:x.length,streaming:Ue}),Ue)return;n.emit("send",{text:g,attachmentCount:x.length}),zn.length>0&&Mt([]);let U=await l_(re,x,ge=>{W.warn("upload failed",{err:ge}),n.emit("error",ge),e.onError?.(ge)});J.unlock(),J.play("messageSent");let ie=Di(g,U),oe=Lo();_.value=[..._.value,ie,oe],Ne.attach(oe),or(n,e,"user",g);let A=d.value??ke();d.value||(d.value=A,o.saveSessionId(A));let hr=Mi({messages:_.value.slice(0,-1).map(Bi),sessionId:A,tools:e.features.tools,responseMode:e.responseMode,visitorId:i,userPrefs:o.loadUserPrefs()});Rt(!0);let Pe=re.sendMessage(hr);Nt(()=>Pe.cancel);try{for await(let ge of Pe.iter)Ne.apply(ge.chunk),ge.chunk.type==="finish"&&ge.chunk.canContinue===!1&&ct(!1);oe.status="complete",J.play("messageReceived"),or(n,e,"assistant",Oo(oe))}catch(ge){oe.status="error",oe.errorText=We(ge,e.strings),J.play("error"),n.emit("error",ge),e.onError?.(ge)}finally{Ne.detach(),Rt(!1),Nt(null),_.value=[..._.value]}},[Ue,re,Ne,_,d,e,n,zn.length,J,o,i]),Ws=R(()=>{W.info("stop"),n.emit("stop",void 0),Lt?.()},[Lt,n]),Ks=R(()=>{J.toggleMuted();let g=J.mutedSig.value;W.info("soundToggle",{muted:g}),n.emit("soundToggle",{muted:g})},[J,n]),ut=R(()=>{if(wa(e.mode,le)==="exit-fullscreen"){W.info("close \u2192 exit-fullscreen",{mode:e.mode}),fe("normal"),n.emit("fullscreen",!1);return}W.info("close \u2192 panel closed",{mode:e.mode}),Q(!1),o.savePanelOpen(!1),n.emit("close",void 0),e.onClose?.()},[n,e,o,le]),Ye=R(()=>{e.modules.list.some(g=>g.layout==="chat")&&re.listSessions({limit:50}).then(g=>{f.value=g.sessions.reduce((x,U)=>x+(U.unreadCount??0),0)}).catch(g=>W.debug("refreshUnread failed (non-fatal)",{err:g}))},[re,e.modules,f]),ur=N(!1);w(()=>{!O||ur.current||(ur.current=!0,Ye())},[O,Ye]);let Kn=R(()=>{W.info("open",{mode:e.mode}),J.unlock(),E(!0),Q(!0),o.savePanelOpen(!0),!$&&!de&&Y(),setTimeout(()=>E(!1),s_),Ye(),n.emit("open",void 0),e.onOpen?.()},[n,e,J,o,$,de,Y,Ye]),Gn=R(()=>{W.info("clear \u2192 new conversation",{wasStreaming:Ue}),n.emit("clear",void 0),Ue&&Lt?.(),Fn.current?.abort(),_.value=[],d.value=void 0,o.clearSession(),ct(!0),dt({newConversation:!0})},[Ue,Lt,_,d,o,dt,n]),Vn=R(()=>{Gn(),Un("chat");let g=e.modules.list.find(x=>x.layout==="chat")?.id;g&&T.switchTab(g)},[Gn,T,e]),qn=R(()=>{let g=le==="expanded"?"normal":"expanded";W.info("expand",{from:le,expanded:g==="expanded"}),fe(g),o.savePanelSize(g),n.emit("expand",g==="expanded")},[n,le,o]),Xn=R(()=>{let g=le==="fullscreen"?"normal":"fullscreen";W.info("fullscreen",{from:le,fullscreen:g==="fullscreen"}),fe(g),o.savePanelSize(g),n.emit("fullscreen",g==="fullscreen")},[n,le,o]),jn=R(()=>{if(!e.popOutUrl)return;let g=new URL(e.popOutUrl);d.value&&g.searchParams.set("chat",d.value),e.widgetId!=="default"&&g.searchParams.set("widgetId",e.widgetId),W.info("popOut",{url:g.toString()}),window.open(g.toString(),"_blank","noopener,noreferrer"),n.emit("popOut",void 0)},[n,d,e.popOutUrl,e.widgetId]),Gs=R(()=>{Un(g=>{let x=g==="history"?"chat":"history";return W.info("toggleHistory",{view:x}),n.emit("toggleHistory",{view:x}),x})},[n]),Vs=R(g=>{W.info("localeChange",{locale:g}),c(g),Oe({locale:g}),n.emit("localeChange",g)},[Oe,n]),qs=R(g=>{W.info("themeChange",{mode:g}),p(g),t.dataset.theme=g,Oe({themeMode:g}),n.emit("themeChange",g)},[t,Oe,n]),Xs=R(()=>{Us(g=>{let x=!g;return W.info("sidebarToggle",{collapsed:x}),o.saveSidebarCollapsed(x),n.emit("sidebarToggle",{collapsed:x}),x})},[o,n]),js=R(g=>{W.info("resize",g),Oe({widgetSize:g}),n.emit("resize",g)},[Oe,n]),Yn=R(async g=>{W.info("selectChat",{sessionId:g}),n.emit("selectChat",{sessionId:g});try{let x=await re.loadSession(g),U=x.messages.map(No);_.value=U,d.value=x.sessionId,o.saveSessionId(x.sessionId),x.agent&&ar(x.agent),ct(x.canContinue),Mt(x.suggestions??[]),Un("chat"),await re.markRead(g),Ye()}catch(x){n.emit("error",x),e.onError?.(x)}},[re,_,d,n,e,o,Ye]);w(()=>mi(t,{open:Kn,close:ut,expand:qn,fullscreen:Xn,popout:jn}),[t,Kn,ut,qn,Xn,jn]);let ye=he(()=>Co(e,l,u),[e,l,u]),pr={options:ye,transport:re,feedback:J,bus:n,view:Ms,canSend:Ls,isStreaming:Ue,loadingMessages:v,messagesSig:_,agent:Ns,suggestions:zn,initialWidgetSize:s.widgetSize??null,visitorId:i,onClose:ut,onClear:Gn,onExpand:qn,onFullscreen:Xn,onPopOut:jn,onSoundToggle:Ks,onToggleHistory:Gs,onSelectHistoryChat:Yn,onNewChat:Vn,onLocaleChange:Vs,onThemeChange:qs,onWidgetSizeChange:js,onSend:_r,onStop:Ws,onSuggestion:g=>{let x=g.text??g.label;W.info("suggestion",{text:x}),n.emit("suggestion",{text:x}),_r(x,[])}},Ys=g=>{Yn(g);let x=b();x&&T.switchTab(x)};if(!O)return null;let pt=ye.modules.list,Jn=g=>{let x=kn("close",ye.mode,g);return pt.length===0?r(ys,{strings:ye.strings,onClose:x?ut:void 0}):pt.length===1&&pt[0]?.layout==="chat"?r(Ya,{...pr,panelSize:g}):r(xs,{panelProps:{...pr,panelSize:g,onClose:x?ut:void 0},enabledModules:pt,nav:T,unreadCount:f.value,onSelectSession:Ys,onStartNewSession:Vn,onSetPanelSize:fe})};if(e.mode==="page"){let g=U=>{Yn(U.sessionId)},x=pt.some(U=>U.layout==="chat");return r("div",{class:`${nr}-anchor`,children:r(Za,{site:Os,blocks:Hs,transport:re,strings:ye.strings,visitorId:i,showConversations:x,onSelectChat:g,onNewChat:Vn,sidebarCollapsed:Bs,onToggleSidebarCollapsed:Xs,children:Jn("fullscreen")})})}if(ue){let g=e.mode==="standalone"?"fullscreen":le;return r("div",{class:`${nr}-anchor`,children:Jn(g)})}let fr=e.mode==="drawer",gr=!(e.mode==="modal")&&!e.launcher.hidden&&(!X||Be),mr=gr&&!Be&&!$&&!fr?ye.launcher.callout:null;return r("div",{class:`${nr}-anchor`,"data-launcher-size":ye.launcher.size,children:[X?Jn(le):null,gr?r(xa,{onToggle:Kn,launcher:ye.launcher,strings:ye.strings,leaving:Be,edgeTab:fr}):null,mr?r(ya,{callout:mr,launcherPosition:ye.position,closeLabel:ye.strings.close,onDismiss:Y}):null]})}function a_(e){let t=e?.url??(typeof location<"u"?location.href:void 0);if(!(!e&&!t))return{...e,...t?{url:t}:{}}}var s_=120;async function l_(e,t,n){let o=[];for(let i of t)try{let{id:a,url:s}=await e.uploadFile(i.file);o.push({id:a,name:i.name,mediaType:i.mediaType,size:i.size,url:s})}catch(a){n(a)}return o}function or(e,t,n,o){let i={role:n,text:o};e.emit("message",i),t.onMessage?.(i)}var c_=M.scope("error-boundary"),Hn=class extends He{constructor(){super(...arguments);z(this,"state",{crashed:!1})}componentDidCatch(n,o){c_.error("widget render crashed",{error:n,componentStack:o?.componentStack}),this.setState({crashed:!0}),this.props.onError(n,o?.componentStack)}render(){return this.state.crashed?this.props.fallback:this.props.children}};var d_=M.scope("iframe"),__='<!doctype html><html><head><meta charset="utf-8"><style>html,body{margin:0;padding:0;background:transparent;overflow:hidden}</style></head><body></body></html>';function Cs(e,t,n="closed",o="floating",i=null){d_.debug("createIframeMount",{position:t,initialMode:n,layoutMode:o,hasTarget:!!i});let a=document.createElement("iframe");a.title=`${h.name} chat`,a.setAttribute("allow","microphone; clipboard-write"),Es(a,t,n,o),(o==="inline"&&i?i:document.body).appendChild(a);let l=a.contentDocument;if(!l)throw new Error("iframe contentDocument unavailable (cross-origin?)");l.open(),l.write(__),l.close();let c=_n({...e,target:l.body}),u=new MutationObserver(()=>{Es(a,t,c.hostElement.dataset.mode??"closed",o)});return u.observe(c.hostElement,{attributes:!0,attributeFilter:["data-mode"]}),{...c,iframeElement:a,destroy(){u.disconnect(),c.destroy(),a.remove()}}}var rr="border:0;background:transparent;z-index:2147483647;pointer-events:auto;",ks={closed:{w:"88px",h:"88px"},expanded:{w:"min(calc(100vw - 32px), 680px)",h:"min(calc(100vh - 32px), 860px)"},open:{w:"min(calc(100vw - 32px), 440px)",h:"min(calc(100vh - 32px), 700px)"}};function Es(e,t,n,o){if(n==="fullscreen"||o==="standalone"){e.style.cssText=`${rr}position:fixed;inset:0;width:100vw;height:100vh;`;return}if(o==="inline"){e.style.cssText=`${rr}position:static;display:block;width:100%;height:100%;`;return}let i=t.startsWith("top-")?"top":"bottom",a=t.endsWith("-left")?"left":"right",{w:s,h:l}=ks[n]??ks.open;e.style.cssText=`${rr}position:fixed;${i}:16px;${a}:16px;width:${s};height:${l};`}var $n=class{constructor(){z(this,"handlers",new Map)}on(t,n){let o=this.handlers.get(t);return o||(o=new Set,this.handlers.set(t,o)),o.add(n),()=>this.handlers.get(t)?.delete(n)}emit(t,n){let o=this.handlers.get(t);if(o)for(let i of o)try{i(n)}catch{}}clear(){this.handlers.clear()}};var u_=M.scope("hooks"),Bn="*",ir=new Set;function As(e,t,n){let o={widgetId:e,event:t,listener:n};return ir.add(o),()=>{ir.delete(o)}}function p_(e,t,n){let o=[...ir];for(let i of o)if(f_(i.widgetId,e.widgetId)&&!(i.event!==Bn&&i.event!==t))try{i.listener(e,t,n)}catch(a){u_.warn("hook listener threw",{event:t,error:a})}}function Ts(e,t){let n=[];for(let o of g_)n.push(t.on(o,i=>{p_(e,o,i)}));return()=>{for(let o of n)o()}}function f_(e,t){return e===Bn||e===t}var g_=["open","close","expand","fullscreen","popOut","resize","message","send","stop","clear","selectChat","suggestion","toggleHistory","attach","removeAttachment","voiceStart","voiceStop","voiceCancel","localeChange","themeChange","soundToggle","sidebarToggle","calloutDismiss","error","sessionStarted","visitorRebound","sessionRebound"];var Le=new Map;function Is(e){e.debug!==void 0&&ln(e.debug);let t=M.scope("mount");t.info("mount",{widgetId:e.widgetId,publicKey:e.publicKey,mode:e.presentation?.mode});let n=e,o=bt(n),i=o.widgetId,a=Le.get(i);a&&(t.debug("destroy existing instance at slot",{widgetId:i}),a.destroy());let s=Rs(o),l=o.iframe?Cs({position:dn(o.mode)},o.position,s,o.mode,e.target??null):_n({position:dn(o.mode),target:e.target??null}),c=St(o.widgetId,o.storage),u=()=>{let b=c.loadUserPrefs().themeMode;ki(l.hostElement,b?{...o,themeMode:b}:o)};u(),un(l.hostElement,s),l.hostElement.dataset.widgetId=i;let p=new $n,d=b=>{p.emit("error",b),o.onError?.(b)},_=()=>{so(Gt(Hn,{onError:d},Gt(ws,{bus:p,hostElement:l.hostElement,options:o})),l.appRoot)};_(),p.on("sessionStarted",b=>{b.config&&(n=Ao(n,b.config),o=bt(n),wi(l.hostElement,dn(o.mode)),u(),_())});let f=l.hostElement,v=null,m=b=>{b.debug!==void 0&&ln(b.debug),n={...n,...b},o=bt(n),u(),_()},y={widgetId:i,open:()=>xt(f,"open"),close:()=>xt(f,"close"),expand:()=>xt(f,"expand"),popOut:()=>xt(f,"popout"),on:(b,S)=>p.on(b,S),update:b=>{t.debug("update",{patch:b}),m(b)},setUserContext:b=>{t.debug("setUserContext",{keys:Object.keys(b)}),m({userContext:{...n.userContext,...b}})},clearUserContext:()=>{t.debug("clearUserContext"),m({userContext:void 0})},setPageContext:b=>{t.debug("setPageContext",{keys:Object.keys(b)}),m({pageContext:{...n.pageContext,...b}})},clearPageContext:()=>{t.debug("clearPageContext"),m({pageContext:void 0})},setDebug:b=>{ln(b),t.info("debug level set",{level:xo()})},debugLevel:()=>xo(),onLog:b=>oi(b),destroy:()=>{t.info("destroy",{widgetId:i}),v?.(),p.clear(),so(null,l.appRoot),l.destroy(),Le.get(i)===y&&Le.delete(i)}};return v=Ts(y,p),Le.set(i,y),y}function m_(e){let t=e.widgetId??"default",n=Le.get(t);return n?(n.update(e),n):Is(e)}function h_(e){if(e!==void 0){Le.get(e)?.destroy();return}let t=[...Le.values()];for(let n of t)n.destroy()}function v_(e="default"){return Le.get(e)??null}function b_(){return[...Le.values()]}function x_(e,t,n){return As(e,t,n)}var y_="0.1.0",P_=h;function Rs(e){if(e.mode==="standalone")return"standalone";if(e.mode==="inline")return"inline";let t=St(e.widgetId,e.storage),{panelOpen:n,panelSize:o}=yt(e,ot(),t.loadPanelOpen(),t.loadPanelSize());return pn(e.mode,o,n)}
40
40
  //# sourceMappingURL=elements.cjs.js.map