@aiden-voice/widget 0.5.2 → 0.5.3

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.
@@ -4,5 +4,5 @@ export declare function Composer({ value, onChange, onSend, disabled, inputRef,
4
4
  onChange: (value: string) => void;
5
5
  onSend: () => void;
6
6
  disabled: boolean;
7
- inputRef?: RefObject<HTMLInputElement>;
7
+ inputRef?: RefObject<HTMLInputElement | null>;
8
8
  }): import('preact').JSX.Element;
@@ -3,5 +3,5 @@ export declare function Launcher({ isOpen, onClick, iconUrl, buttonRef, }: {
3
3
  isOpen: boolean;
4
4
  onClick: () => void;
5
5
  iconUrl?: string;
6
- buttonRef?: RefObject<HTMLButtonElement>;
6
+ buttonRef?: RefObject<HTMLButtonElement | null>;
7
7
  }): import('preact').JSX.Element;
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const WIDGET_VERSION = "0.5.2";
1
+ export declare const WIDGET_VERSION = "0.5.3";
@@ -1,11 +1,11 @@
1
- var whooAidenWidget=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=2147483e3,n=2147483647;function r(e){return e===void 0?t:Number.isInteger(e)&&Math.abs(e)<=n?e:(console.warn(`whoo-aiden-widget: ignoring zIndex ${String(e)} (expected an integer between -${n} and ${n}); using ${t}.`),t)}var i=`Aiden`;function a(e){return typeof e==`string`?e.trim():``}function o(e){if((typeof e.publishableKey==`string`&&e.publishableKey.length>0)==(typeof e.sessionToken==`string`&&e.sessionToken.length>0))throw Error("whoo-aiden-widget: init() requires exactly one of `publishableKey` or `sessionToken`, not both or neither.")}var s,c,l,u,d,f,p,m,h,g,_,v,y,b,x={},S=[],C=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function T(e,t){for(var n in t)e[n]=t[n];return e}function ee(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function E(e,t,n){var r,i,a,o={};for(a in t)a==`key`?r=t[a]:a==`ref`?i=t[a]:o[a]=t[a];if(arguments.length>2&&(o.children=arguments.length>3?s.call(arguments,2):n),typeof e==`function`&&e.defaultProps!=null)for(a in e.defaultProps)o[a]===void 0&&(o[a]=e.defaultProps[a]);return D(e,o,r,i,null)}function D(e,t,n,r,i){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++l,__i:-1,__u:0};return i==null&&c.vnode!=null&&c.vnode(a),a}function O(e){return e.children}function k(e,t){this.props=e,this.context=t}function A(e,t){if(t==null)return e.__?A(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type==`function`?A(e):null}function j(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,r=[],i=[],a=T({},t);a.__v=t.__v+1,c.vnode&&c.vnode(a),ce(e.__P,a,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,r,n??A(t),!!(32&t.__u),i),a.__v=t.__v,a.__.__k[a.__i]=a,ue(r,a,i),t.__e=t.__=null,a.__e!=n&&M(a)}}function M(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),M(e)}function N(e){(!e.__d&&(e.__d=!0)&&u.push(e)&&!P.__r++||d!=c.debounceRendering)&&((d=c.debounceRendering)||f)(P)}function P(){try{for(var e,t=1;u.length;)u.length>t&&u.sort(p),e=u.shift(),t=u.length,j(e)}finally{u.length=P.__r=0}}function te(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,m,h,g,_=r&&r.__k||S,v=t.length;for(c=ne(n,t,_,c,v),d=0;d<v;d++)(p=n.__k[d])!=null&&(f=p.__i!=-1&&_[p.__i]||x,p.__i=d,g=ce(e,p,f,i,a,o,s,c,l,u),m=p.__e,p.ref&&f.ref!=p.ref&&(f.ref&&pe(f.ref,null,p),u.push(p.ref,p.__c||m,p)),h==null&&m!=null&&(h=m),4&p.__u?(c=re(p,c,e),f.__e&&(f.__e=null)):typeof p.type==`function`&&g!==void 0?c=g:m&&(c=m.nextSibling),p.__u&=-7);return n.__e=h,c}function ne(e,t,n,r,i){var a,o,s,c,l,u=n.length,d=u,f=0;for(e.__k=Array(i),a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o==`string`||typeof o==`number`||typeof o==`bigint`||o.constructor==String?o=e.__k[a]=D(null,o,null,null,null):w(o)?o=e.__k[a]=D(O,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?o=e.__k[a]=D(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[a]=o,c=a+f,o.__=e,o.__b=e.__b+1,s=null,(l=o.__i=ie(o,n,c,d))!=-1&&(d--,(s=n[l])&&(s.__u|=2)),s==null||s.__v==null?(l==-1&&(i>u?f--:i<u&&f++),typeof o.type!=`function`&&(o.__u|=4)):l!=c&&(l==c-1?f--:l==c+1?f++:(l>c?f--:f++,o.__u|=4))):e.__k[a]=null;if(d)for(a=0;a<u;a++)(s=n[a])!=null&&!(2&s.__u)&&(s.__e==r&&(r=A(s)),me(s,s));return r}function re(e,t,n){var r,i;if(typeof e.type==`function`){for(r=e.__k,i=0;r&&i<r.length;i++)r[i]&&(r[i].__=e,t=re(r[i],t,n));return t}e.__e!=t&&(t&&e.type&&!t.parentNode&&(t=A(e)),t=n.insertBefore(e.__e,t||null));do t&&=t.nextSibling;while(t!=null&&t.nodeType==8);return t}function ie(e,t,n,r){var i,a,o,s=e.key,c=e.type,l=t[n],u=l!=null&&!(2&l.__u);if(l===null&&s==null||u&&s==l.key&&c==l.type)return n;if(r>+!!u){for(i=n-1,a=n+1;i>=0||a<t.length;)if((l=t[o=i>=0?i--:a++])!=null&&!(2&l.__u)&&s==l.key&&c==l.type)return o}return-1}function ae(e,t,n){t[0]==`-`?e.setProperty(t,n??``):e[t]=n==null?``:typeof n!=`number`||C.test(t)?n:n+`px`}function oe(e,t,n,r,i){var a,o;n:if(t==`style`){if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||ae(e.style,t,``);if(n)for(t in n)r&&n[t]==r[t]||ae(e.style,t,n[t])}}else if(t[0]==`o`&&t[1]==`n`)a=t!=(t=t.replace(_,`$1`)),o=t.toLowerCase(),t=o in e||t==`onFocusOut`||t==`onFocusIn`?o.slice(2):t.slice(2),e.l||={},e.l[t+a]=n,n?r?n[g]=r[g]:(n[g]=v,e.addEventListener(t,a?b:y,a)):e.removeEventListener(t,a?b:y,a);else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;break n}catch{}typeof n==`function`||(n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n))}}function se(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[h]==null)t[h]=v++;else if(t[h]<n[g])return;return n(c.event?c.event(t):t)}}}function ce(e,t,n,r,i,a,o,s,l,u){var d,f,p,m,h,g,_,v,y,b,x,C,E,D,j,M,N=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(l=!!(32&n.__u),a=[s=t.__e=n.__e]),(d=c.__b)&&d(t);n:if(typeof N==`function`){f=o.length;try{if(y=t.props,b=N.prototype&&N.prototype.render,x=(d=N.contextType)&&r[d.__c],C=d?x?x.props.value:d.__:r,n.__c?v=(p=t.__c=n.__c).__=p.__E:(b?t.__c=p=new N(y,C):(t.__c=p=new k(y,C),p.constructor=N,p.render=he),x&&x.sub(p),p.state||(p.state={}),p.__n=r,m=p.__d=!0,p.__h=[],p._sb=[]),b&&p.__s==null&&(p.__s=p.state),b&&N.getDerivedStateFromProps!=null&&(p.__s==p.state&&(p.__s=T({},p.__s)),T(p.__s,N.getDerivedStateFromProps(y,p.__s))),h=p.props,g=p.state,p.__v=t,m)b&&N.getDerivedStateFromProps==null&&p.componentWillMount!=null&&p.componentWillMount(),b&&p.componentDidMount!=null&&p.__h.push(p.componentDidMount);else{if(b&&N.getDerivedStateFromProps==null&&y!==h&&p.componentWillReceiveProps!=null&&p.componentWillReceiveProps(y,C),t.__v==n.__v||!p.__e&&p.shouldComponentUpdate!=null&&!1===p.shouldComponentUpdate(y,p.__s,C)){t.__v!=n.__v&&(p.props=y,p.state=p.__s,p.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),S.push.apply(p.__h,p._sb),p._sb=[],p.__h.length&&o.push(p),s=A(n);break n}p.componentWillUpdate!=null&&p.componentWillUpdate(y,p.__s,C),b&&p.componentDidUpdate!=null&&p.__h.push(function(){p.componentDidUpdate(h,g,_)})}if(p.context=C,p.props=y,p.__P=e,p.__e=!1,E=c.__r,D=0,b)p.state=p.__s,p.__d=!1,E&&E(t),d=p.render(p.props,p.state,p.context),S.push.apply(p.__h,p._sb),p._sb=[];else do p.__d=!1,E&&E(t),d=p.render(p.props,p.state,p.context),p.state=p.__s;while(p.__d&&++D<25);p.state=p.__s,p.getChildContext!=null&&(r=T(T({},r),p.getChildContext())),b&&!m&&p.getSnapshotBeforeUpdate!=null&&(_=p.getSnapshotBeforeUpdate(h,g)),j=d!=null&&d.type===O&&d.key==null?de(d.props.children):d,s=te(e,w(j)?j:[j],t,n,r,i,a,o,s,l,u),p.base=t.__e,t.__u&=-161,p.__h.length&&o.push(p),v&&(p.__E=p.__=null)}catch(e){if(o.length=f,t.__v=null,l||a!=null){if(e.then){for(t.__u|=l?160:128;s&&s.nodeType==8&&s.nextSibling;)s=s.nextSibling;a!=null&&(a[a.indexOf(s)]=null),t.__e=s}else if(a!=null)for(M=a.length;M--;)ee(a[M])}else t.__e=n.__e;t.__k??=n.__k||[],e.then||le(t),c.__e(e,t,n)}}else a==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):s=t.__e=fe(n.__e,t,n,r,i,a,o,l,u);return(d=c.diffed)&&d(t),128&t.__u?void 0:s}function le(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(le))}function ue(e,t,n){for(var r=0;r<n.length;r++)pe(n[r],n[++r],n[++r]);c.__c&&c.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){c.__e(e,t.__v)}})}function de(e){return typeof e!=`object`||!e||e.__b>0?e:w(e)?e.map(de):e.constructor===void 0?T({},e):null}function fe(e,t,n,r,i,a,o,l,u){var d,f,p,m,h,g,_,v=n.props||x,y=t.props,b=t.type;if(b==`svg`?i=`http://www.w3.org/2000/svg`:b==`math`?i=`http://www.w3.org/1998/Math/MathML`:i||=`http://www.w3.org/1999/xhtml`,a!=null){for(d=0;d<a.length;d++)if((h=a[d])&&`setAttribute`in h==!!b&&(b?h.localName==b:h.nodeType==3)){e=h,a[d]=null;break}}if(e==null){if(b==null)return document.createTextNode(y);e=document.createElementNS(i,b,y.is&&y),l&&=(c.__m&&c.__m(t,a),!1),a=null}if(b==null)v===y||l&&e.data==y||(e.data=y);else{if(a=b==`textarea`&&y.defaultValue!=null?null:a&&s.call(e.childNodes),!l&&a!=null)for(v={},d=0;d<e.attributes.length;d++)v[(h=e.attributes[d]).name]=h.value;for(d in v)h=v[d],d==`dangerouslySetInnerHTML`?p=h:d==`children`||d in y||d==`value`&&`defaultValue`in y||d==`checked`&&`defaultChecked`in y||oe(e,d,null,h,i);for(d in y)h=y[d],d==`children`?m=h:d==`dangerouslySetInnerHTML`?f=h:d==`value`?g=h:d==`checked`?_=h:l&&typeof h!=`function`||v[d]===h||oe(e,d,h,v[d],i);if(f)l||p&&(f.__html==p.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[];else if(p&&(e.innerHTML=``),te(t.type==`template`?e.content:e,w(m)?m:[m],t,n,r,b==`foreignObject`?`http://www.w3.org/1999/xhtml`:i,a,o,a?a[0]:n.__k&&A(n,0),l,u),a!=null)for(d=a.length;d--;)ee(a[d]);l&&b!=`textarea`||(d=`value`,b==`progress`&&g==null?e.removeAttribute(`value`):g!=null&&(g!==e[d]||b==`progress`&&!g||b==`option`&&g!=v[d])&&oe(e,d,g,v[d],i),d=`checked`,_!=null&&_!=e[d]&&oe(e,d,_,v[d],i))}return e}function pe(e,t,n){try{if(typeof e==`function`){var r=typeof e.__u==`function`;r&&e.__u(),r&&t==null||(e.__u=e(t))}else e.current=t}catch(e){c.__e(e,n)}}function me(e,t,n){var r,i;if(c.unmount&&c.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||pe(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){c.__e(e,t)}r.base=r.__P=r.__n=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&me(r[i],t,n||typeof e.type!=`function`);n||ee(e.__e),e.__c=e.__=e.__e=void 0}function he(e,t,n){return this.constructor(e,n)}function ge(e,t,n){var r,i,a,o;t==document&&(t=document.documentElement),c.__&&c.__(e,t),i=(r=typeof n==`function`)?null:n&&n.__k||t.__k,a=[],o=[],ce(t,e=(!r&&n||t).__k=E(O,null,[e]),i||x,x,t.namespaceURI,!r&&n?[n]:i?null:t.firstChild?s.call(t.childNodes):null,a,!r&&n?n:i?i.__e:t.firstChild,r,o),ue(a,e,o),e.props.children=null}s=S.slice,c={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),o=i.__d),o)return i.__E=i}catch(t){e=t}throw e}},l=0,k.prototype.setState=function(e,t){var n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=T({},this.state);typeof e==`function`&&(e=e(T({},n),this.props)),e&&T(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),N(this))},k.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),N(this))},k.prototype.render=O,u=[],f=typeof Promise==`function`?Promise.prototype.then.bind(Promise.resolve()):setTimeout,p=function(e,t){return e.__v.__b-t.__v.__b},P.__r=0,m=Math.random().toString(8),h=`__d`+m,g=`__a`+m,_=/(PointerCapture)$|Capture$/i,v=0,y=se(!1),b=se(!0);var F,I,_e,ve,L=0,ye=[],R=c,be=R.__b,xe=R.__r,Se=R.diffed,Ce=R.__c,we=R.unmount,Te=R.__;function Ee(e,t){R.__h&&R.__h(I,e,L||t),L=0;var n=I.__H||(I.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function De(e){return L=1,Oe(Fe,e)}function Oe(e,t,n){var r=Ee(F++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Fe(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=I,!I.__f)){var i=function(e,t,n){if(!r.__c.__H)return!0;var i=!1,o=r.__c.props!==e;if(r.__c.__H.__.some(function(e){if(e.__N){i=!0;var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}}),a){var s=a.call(this,e,t,n);return i?s||o:s}return!i||o};I.__f=!0;var a=I.shouldComponentUpdate,o=I.componentWillUpdate;I.componentWillUpdate=function(e,t,n){if(this.__e){var r=a;a=void 0,i(e,t,n),a=r}o&&o.call(this,e,t,n)},I.shouldComponentUpdate=i}return r.__N||r.__}function z(e,t){var n=Ee(F++,3);!R.__s&&Pe(n.__H,t)&&(n.__=e,n.u=t,I.__H.__h.push(n))}function B(e){return L=5,ke(function(){return{current:e}},[])}function ke(e,t){var n=Ee(F++,7);return Pe(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Ae(){for(var e;e=ye.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(V),t.__h.some(Ne),t.__h=[]}catch(n){t.__h=[],R.__e(n,e.__v)}}}R.__b=function(e){I=null,be&&be(e)},R.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Te&&Te(e,t)},R.__r=function(e){xe&&xe(e),F=0;var t=(I=e.__c).__H;t&&(_e===I?(t.__h=[],I.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.some(V),t.__h.some(Ne),t.__h=[],F=0)),_e=I},R.diffed=function(e){Se&&Se(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(ye.push(t)!==1&&ve===R.requestAnimationFrame||((ve=R.requestAnimationFrame)||Me)(Ae)),t.__H.__.some(function(e){e.u&&=(e.__H=e.u,void 0)})),_e=I=null},R.__c=function(e,t){t.some(function(e){try{e.__h.some(V),e.__h=e.__h.filter(function(e){return!e.__||Ne(e)})}catch(n){t.some(function(e){e.__h&&=[]}),t=[],R.__e(n,e.__v)}}),Ce&&Ce(e,t)},R.unmount=function(e){we&&we(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(e){try{V(e)}catch(e){t=e}}),n.__H=void 0,t&&R.__e(t,n.__v))};var je=typeof requestAnimationFrame==`function`;function Me(e){var t,n=function(){clearTimeout(r),je&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);je&&(t=requestAnimationFrame(n))}function V(e){var t=I,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),I=t}function Ne(e){var t=I;e.__c=e.__(),I=t}function Pe(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function Fe(e,t){return typeof t==`function`?t(e):t}var Ie=0;Array.isArray;function H(e,t,n,r,i,a){t||={};var o,s,l=t;if(`ref`in l)for(s in l={},t)s==`ref`?o=t[s]:l[s]=t[s];var u={type:e,props:l,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Ie,__i:-1,__u:0,__source:i,__self:a};if(typeof e==`function`&&(o=e.defaultProps))for(s in o)l[s]===void 0&&(l[s]=o[s]);return c.vnode&&c.vnode(u),u}function U({name:e,size:t,children:n}){return H(`svg`,{"data-icon":e,"aria-hidden":`true`,focusable:`false`,width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,children:n})}function Le({size:e=26}){return H(U,{name:`chat`,size:e,children:[H(`path`,{d:`M4 5.5A2.5 2.5 0 0 1 6.5 3h11A2.5 2.5 0 0 1 20 5.5v8a2.5 2.5 0 0 1-2.5 2.5H10l-4.5 4v-4h0A1.5 1.5 0 0 1 4 14.5z`}),H(`path`,{d:`M8.5 9.5h.01M12 9.5h.01M15.5 9.5h.01`,"stroke-width":`2.5`})]})}function Re({size:e=26}){return H(U,{name:`chevron-down`,size:e,children:H(`path`,{d:`M6 9l6 6 6-6`})})}function ze({size:e=18}){return H(U,{name:`close`,size:e,children:H(`path`,{d:`M6 6l12 12M18 6L6 18`})})}var Be=`M7 11v9M7 11l3.5-7.2A1.8 1.8 0 0 1 14 4.6V9h4.6a2 2 0 0 1 2 2.3l-1.2 7A2 2 0 0 1 17.4 20H7M7 11H4.5A1.5 1.5 0 0 0 3 12.5v6A1.5 1.5 0 0 0 4.5 20H7`;function Ve({size:e=16}){return H(U,{name:`thumb-up`,size:e,children:H(`path`,{d:Be})})}function He({size:e=16}){return H(U,{name:`thumb-down`,size:e,children:H(`path`,{d:Be,transform:`matrix(1 0 0 -1 0 24)`})})}function Ue({isOpen:e,onClick:t,iconUrl:n,buttonRef:r}){let[i,a]=De(`loading`),o=n!==void 0&&i!==`failed`,s=o&&!e&&i===`loaded`;return H(`button`,{type:`button`,class:`whoo-widget-launcher`,onClick:t,"aria-label":e?`Close chat`:`Open chat`,ref:r,children:[e?H(Re,{}):s?null:H(Le,{}),o?H(`img`,{class:`whoo-widget-launcher-icon-image`,src:n,alt:``,referrerpolicy:`no-referrer`,hidden:!s,onLoad:()=>a(`loaded`),onError:()=>a(`failed`)}):null]})}function We({value:e,onChange:t,onSend:n,disabled:r,inputRef:i}){return H(`div`,{class:`whoo-widget-composer`,children:[H(`label`,{class:`whoo-widget-sr-only`,for:`whoo-widget-composer-input`,children:`Message`}),H(`input`,{id:`whoo-widget-composer-input`,class:`whoo-widget-composer-input`,value:e,readOnly:r,"aria-disabled":r,ref:i,onInput:e=>t(e.target.value),onKeyDown:e=>{e.key===`Enter`&&n()}}),H(`button`,{type:`button`,class:`whoo-widget-composer-send`,"aria-disabled":r,onClick:()=>{r||n()},children:`Send`})]})}function Ge({message:e}){return H(`div`,{class:`whoo-widget-error-banner`,role:`alert`,children:e})}var W=/\[([^\]]+)\]\((https?:\/\/[^\s)]+)\)/y,G=/\*\*([^*\s](?:[^*]*[^*\s])?)\*\*/y,K=/(?<![A-Za-z0-9_])_([^_\s](?:[^_]*[^_\s])?)_(?![A-Za-z0-9_])/y,q=/\*([^*\s](?:[^*]*[^*\s])?)\*/y,J=/[ \t]*[*+-][ \t]+/y,Ke=/https?:\/\/\S+/y,qe=/[.,;:!?)\]}>]+$/;function Y(e){let t=[],n=0,r=0,i=n=>{n>r&&t.push({type:`text`,value:e.slice(r,n),start:r,end:n})};for(;n<e.length;){if((n===0||e[n-1]===`
2
- `)&&(J.lastIndex=n,J.exec(e))){i(n),t.push({type:`text`,value:`• `,start:n,end:J.lastIndex}),n=J.lastIndex,r=n;continue}if(e[n]===`!`&&n+1<e.length&&e[n+1]===`[`){let t=/!\[([^\]]*)\]\(([^)]*)\)/y;t.lastIndex=n;let r=t.exec(e);if(r){n+=r[0].length;continue}}if(e[n-1]!==`!`){W.lastIndex=n;let a=W.exec(e);if(a){i(n),t.push({type:`link`,text:a[1],url:a[2],start:n,end:W.lastIndex}),n=W.lastIndex,r=n;continue}}G.lastIndex=n;let a=G.exec(e);if(a){i(n),t.push({type:`bold`,value:a[1],start:n,end:G.lastIndex}),n=G.lastIndex,r=n;continue}K.lastIndex=n;let o=K.exec(e);if(o){i(n),t.push({type:`italic`,value:o[1],start:n,end:K.lastIndex}),n=K.lastIndex,r=n;continue}q.lastIndex=n;let s=q.exec(e);if(s){i(n),t.push({type:`italic`,value:s[1],start:n,end:q.lastIndex}),n=q.lastIndex,r=n;continue}Ke.lastIndex=n;let c=Ke.exec(e);if(c){let e=c[0].match(qe),a=e?c[0].slice(0,c[0].length-e[0].length):c[0];if(a.length>0){i(n),t.push({type:`link`,text:a,url:a,start:n,end:n+a.length}),n+=a.length,r=n;continue}}n+=1}return i(e.length),t}var Je=/^[ \t]*[*+-][ \t]+(.*)$/;function Ye(e){let t=[],n=[],r=[],i=()=>{n.length>0&&t.push({type:`text`,text:n.join(`
1
+ var whooAidenWidget=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=2147483e3,n=2147483647;function r(e){return e===void 0?t:Number.isInteger(e)&&Math.abs(e)<=n?e:(console.warn(`whoo-aiden-widget: ignoring zIndex ${String(e)} (expected an integer between -${n} and ${n}); using ${t}.`),t)}var i=`Aiden`;function a(e){return typeof e==`string`?e.trim():``}function o(e){if((typeof e.publishableKey==`string`&&e.publishableKey.length>0)==(typeof e.sessionToken==`string`&&e.sessionToken.length>0))throw Error("whoo-aiden-widget: init() requires exactly one of `publishableKey` or `sessionToken`, not both or neither.")}var s,c,l,u,d,f,p,m,h,g,_,v,y={},b=[],x=/^m(i|n|o|s|text|space)$/,ee=Array.isArray,S=b.slice,C=Object.assign;function w(e){e&&e.parentNode&&e.remove()}function T(e,t,n,r,i){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i||++c,__i:-1,__u:0};return!i&&s.vnode&&s.vnode(a),a}function E(e){return e.children}function D(e,t){this.props=e,this.context=t,this.__g=0}function O(e,t){if(t==null)return e.__?O(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])&&n.__e)return n.__e;return typeof e.type!=`function`||e.props.__P?null:O(e)}function k(e){if((e=e.__)&&e.__c&&!e.props.__P)return e.__e=null,e.__k.some(function(t){return t&&(e.__e=t.__e)}),k(e)}function A(e){(8&e.__g||!(e.__g|=8)||!l.push(e)||d++)&&u==s.debounceRendering||((u=s.debounceRendering)||queueMicrotask)(te)}function te(){var e,t,n,r,i,a,o,c,u;try{for(t=1;l.length;)l.length>t&&l.sort(f),e=l.shift(),t=l.length,8&e.__g&&(r=void 0,i=void 0,a=(i=(n=e).__v).__e,o=[],c=[],(u=n.__P)&&((r=C({constructor:void 0},i)).__v=i.__v+1,s.vnode&&s.vnode(r),re(u,r,i,n.__n,u.namespaceURI,32&i.__u?[a]:null,o,a||O(i),32&i.__u,c),r.__v=i.__v,r.__.__k[r.__i]=r,ae(o,r,c),i.__=i.__e=null,r.__e!=a&&k(r)))}finally{l.length=d=0}}function ne(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,m,h,g,_=r.__k||b,v=t.length;for(c=j(n,t,_,c,v),d=0;d<v;d++)(p=n.__k[d])!=null&&(f=~p.__i&&_[p.__i]||y,p.__i=d,g=re(e,p,f,i,a,o,s,c,l,u),m=p.__e,p.ref&&(f.ref!=p.ref||8&f.__u)&&(f.ref!=p.ref&&f.ref&&se(f.ref,null,p),u.push(p.ref,p.__c||m,p)),h||=m,4&p.__u?(c=M(p,c,e,!f.__v),f.__e&&(f.__e=null)):typeof p.type==`function`&&g!==void 0?c=g:m&&(c=m.nextSibling),p.__u&=-7);return n.__e=h,c}function j(e,t,n,r,i){var a,o,s,c,l,u,d,f,p,m,h=n.length,g=h,_=0,v=!1,y=e.__k=Array(i);for(a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o!=`object`||o.constructor==String?o=y[a]=T(null,o):ee(o)?o=y[a]=T(E,{children:o}):o.constructor===void 0&&o.__b?o=y[a]=T(o.type,o.props,o.key,o.ref,o.__v):y[a]=o,c=a+_,o.__=e,o.__b=e.__b+1,s=null,~(l=o.__i=N(o,n,c,g))&&(g--,(s=n[l])&&(s.__u|=2)),s&&s.__v?(o.__u|=2,l==c-1?_--:l==c+1?_++:l!=c&&(l>c?_--:_++,v=!0)):(~l||(i>h?_--:i<h&&_++),typeof o.type!=`function`&&(o.__u|=4))):y[a]=null;if(v){for(u=[],d=[],a=0;a<i;a++)if((o=y[a])&&2&o.__u){for(f=0,p=u.length;f<p;)u[m=f+p>>1]<o.__i?f=m+1:p=m;u[f]=o.__i,d[a]=f+1}for(_=u.length;a--;)d[a]&&(d[a]==_?_--:y[a].__u|=4)}if(g)for(a=0;a<h;a++)!(s=n[a])||2&s.__u||(s.__e==r&&(r=O(s)),ce(s,s));return r}function M(e,t,n,r){var i,a;if(typeof e.type==`function`){if(e.props.__P)return t;if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&(i[a].__=e,t=M(i[a],t,n,!1));return t}for(t&&!t.parentNode&&(t=O(e))&&!t.parentNode&&(t=null),e.__e!=t&&(!r&&n.moveBefore&&e.__e.parentNode?n.moveBefore(e.__e,t):n.insertBefore(e.__e,t||null)),t=e.__e;(t&&=t.nextSibling)&&t.nodeType==8;);return t}function N(e,t,n,r){var i,a,o,s=e.key,c=e.type,l=t[n],u=l&&!(2&l.__u);if(l===null&&s==null||u&&s==l.key&&c==l.type)return n;if(r>+!!u){for(i=n-1,a=n+1;i>=0||a<t.length;)if((l=t[o=i>=0?i--:a++])&&!(2&l.__u)&&s==l.key&&c==l.type)return o}return-1}function P(e,t,n){n??=``,t[0]==`-`?e.setProperty(t,n):e[t]=n}function F(e,t,n,r,i){var a;n:if(t==`style`){if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||P(e.style,t,``);if(n)for(t in n)r&&n[t]==r[t]||P(e.style,t,n[t])}}else if(t[0]==`o`&&t[1]==`n`)a=t!=(t=t.replace(h,`$1`)),(t=t.slice(2))[0]<`a`&&(t=t.toLowerCase()),(e.__e||={})[t+a]=n,n?r?n[m]=r[m]:(n[m]=g,e.addEventListener(t,a?v:_,a)):e.removeEventListener(t,a?v:_,a);else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;break n}catch{}typeof n==`function`||(n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n))}}function I(e){return function(t){if(this.__e){var n=this.__e[t.type+e];if(t[p]==null)t[p]=g++;else if(t[p]<n[m])return;return n(s.event?s.event(t):t)}}}function re(e,t,n,r,i,a,o,c,l,u){var d,f,p,m,h,g,_,v,y,x,S,T,k,A,te,j,M,N,P,F,I=t.type;if(t.constructor!==void 0)return null;if(128&n.__u&&(l=32&n.__u,d=n.__c.__z)){if(t.__u|=l,f=a=[],d.nodeType==8)for(p=1,m=d.nextSibling;m;m=m.nextSibling){if(m.nodeType==8){if(m.data.startsWith(`$s`))p++;else if(m.data.startsWith(`/$s`)&&!--p)break}a.push(m)}else a.push(d);c=a[0]}(d=s.__b)&&d(t);n:if(typeof I==`function`){h=o.length;try{if(x=t.props,S=(d=I.prototype)&&d.render,T=(d=I.contextType)&&r[d.__c],k=d?T?T.props.value:d.__:r,n.__c?2&(g=t.__c=n.__c).__g&&(g.__g|=1):(S?t.__c=g=new I(x,k):(t.__c=g=new D(x,k),g.constructor=I,g.render=le),T&&T.sub(g),g.state||(g.state={}),g.__n=r,g.__g|=8,g.__h=[],g.__k=[]),S&&(g.__s||(g.__s=g.state),I.getDerivedStateFromProps&&(g.__s==g.state&&(g.__s=C({},g.__s)),C(g.__s,I.getDerivedStateFromProps(x,g.__s)))),_=g.props,v=g.state,g.__v=t,n.__c){if(S&&!I.getDerivedStateFromProps&&x!==_&&g.componentWillReceiveProps&&g.componentWillReceiveProps(x,k),t.__v==n.__v&&!(8&g.__g)||!(4&g.__g)&&g.shouldComponentUpdate&&!1===g.shouldComponentUpdate(x,g.__s,k)){t.__v!=n.__v&&(g.props=x,g.state=g.__s,g.__g&=-9),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),b.push.apply(g.__h,g.__k),g.__k=[],g.__h.length&&o.push(g),c=O(n);break n}g.componentWillUpdate&&g.componentWillUpdate(x,g.__s,k),S&&g.componentDidUpdate&&g.__h.push(function(){g.componentDidUpdate(_,v,y)})}else S&&!I.getDerivedStateFromProps&&g.componentWillMount&&g.componentWillMount(),S&&g.componentDidMount&&g.__h.push(g.componentDidMount);if(g.context=k,g.props=x,g.__P=e,g.__g&=-5,A=s.__r,te=0,S)g.state=g.__s,g.__g&=-9,A&&A(t),d=g.render(g.props,g.state,g.context),b.push.apply(g.__h,g.__k),g.__k=[];else do g.__g&=-9,A&&A(t),d=g.render(g.props,g.state,g.context),g.state=g.__s;while(8&g.__g&&++te<25);g.state=g.__s,g.getChildContext&&(r=C({},r,g.getChildContext())),S&&n.__c&&g.getSnapshotBeforeUpdate&&(y=g.getSnapshotBeforeUpdate(_,v)),j=d&&d.type===E&&d.key==null?d.props.children:d,x.__P&&(d=c,i=(e=x.__P).namespaceURI,l=a=null,n.props&&n.props.__P!=e&&(n.__k.some(function(e){e&&ce(e,e)}),n.__k=null),c=n.__k?O(n,0):null),c=ne(e,ee(j)?j:[j],t,n,r,i,a,o,c,l,u),x.__P&&(t.__e=null,c=d),t.__u&=-161,128&n.__u&&(g.__z=null),f&&f.some(w),g.__h.length&&o.push(g),1&g.__g&&(g.__g&=-4)}catch(e){if(o.length=h,t.__v=null,l||a){if(e.then){if(M=0,t.__u|=l?160:128,a){for(P=0;P<a.length;P++)if(F=a[P]){if(F.nodeType==8){if(a[P]=null,F.data.startsWith(`$s`))M++||(N=F);else if(F.data.startsWith(`/$s`)&&!--M){c=F;break}}else M&&(a[P]=null)}}if(!N){for(;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;a&&(a[a.indexOf(c)]=null),N=c}t.__c.__z||(t.__c.__z=N),t.__e=c}else a&&a.some(w)}else t.__e=n.__e;t.__k||=n.__k||[],e.then||ie(t),s.__e(e,t,n)}}else c=t.__e=oe(n.__e,t,n,r,i,a,o,l,u,e);return(d=s.diffed)&&d(t),128&t.__u?void 0:c}function ie(e){e&&(e.__c&&(e.__c.__g|=4),e.__k&&e.__k.some(ie))}function ae(e,t,n){for(var r=0;r<n.length;)se(n[r++],n[r++],n[r++]);s.__c&&s.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){s.__e(e,t.__v)}})}function oe(e,t,n,r,i,a,o,c,l,u){var d,f,p,m,h,g,_,v,b,C=n.props||y,T=t.props,E=t.type;if(E==`svg`?i=`http://www.w3.org/2000/svg`:E==`math`?i=`http://www.w3.org/1998/Math/MathML`:i||=`http://www.w3.org/1999/xhtml`,a){for(d=0;d<a.length;d++)if((h=a[d])&&(E?h.localName==E:h.nodeType==3)){e=h,a[d]=null;break}}if(!e){if(v=u.ownerDocument||document,!E)return v.createTextNode(T);e=v.createElementNS(i,E,T.is&&T),c&&=(s.__m&&s.__m(t,a),!1),a=null}if(E){if(u=E==`template`?e.content:e,a=E==`textarea`&&T.defaultValue!=null?null:a&&S.call(u.childNodes),!c&&a)for(C={},d=0;d<e.attributes.length;d++)C[(h=e.attributes[d]).name]=h.value;for(d in C)h=C[d],d==`dangerouslySetInnerHTML`?p=h:d==`children`||d in T||d==`value`&&`defaultValue`in T||d==`checked`&&`defaultChecked`in T||F(e,d,null,h,i);for(d in b=1&n.__u,T)h=T[d],d==`children`?m=h:d==`dangerouslySetInnerHTML`?f=h:d==`value`?g=h:d==`checked`?_=h:c&&typeof h!=`function`||!(C[d]!==h||b&&h!=null)||F(e,d,h,C[d],i);f?(c||p&&(f.__html==p.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[]):(p&&(e.textContent=``),(E==`foreignObject`||i==`http://www.w3.org/1998/Math/MathML`&&x.test(E))&&(i=`http://www.w3.org/1999/xhtml`),ne(u,ee(m)?m:[m],t,n,r,i,a,o,a?a[0]:n.__k&&O(n,0),c,l),a&&a.some(w)),c&&E!=`textarea`||(d=`value`,E==`progress`&&g==null?e.removeAttribute(d):g==null||g===e[d]&&(E!=`progress`||g)||F(e,d,g,C[d],i),d=`checked`,_!=null&&_!=e[d]&&F(e,d,_,C[d],i))}else C===T||c&&e.data==T||(e.data=T);return e}function se(e,t,n){try{typeof e==`function`?(typeof e.__u==`function`&&e.__u(),(typeof e.__u!=`function`||t)&&(e.__u=e(t))):e.current=t}catch(e){s.__e(e,n)}}function ce(e,t,n){var r,i;if(s.unmount&&s.unmount(e),!(r=e.ref)||r.current&&r.current!=e.__e||se(r,null,t),r=e.__c){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){s.__e(e,t)}r.__P=r.__n=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&ce(r[i],t,typeof e.type!=`function`||n&&!e.props.__P);(r=e.__e)&&(n||w(r),r.__e&&(r.__e=null)),e.__e=e.__c=e.__=null}function le(e,t,n){return this.constructor(e,n)}function ue(e,t){var n,r,i,a;s.__&&s.__(e,t),t.nodeType==9&&(t=t.documentElement),r=(n=e&&32&e.__u)?null:t.__k,t.__k=T(E,{children:[e]}),i=[],a=[],re(t,t.__k,r||y,y,t.namespaceURI,r?null:t.firstChild?S.call(t.childNodes):null,i,r?r.__e:t.firstChild,n,a),ae(i,t.__k,a),t.__k.props.children=null}s={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!(1&i.__g)){i.__g|=4;try{if((a=i.constructor)&&a.getDerivedStateFromError&&(i.setState(a.getDerivedStateFromError(e)),o=8&i.__g),i.componentDidCatch&&(i.componentDidCatch(e,r||{}),o=8&i.__g),o)return void(i.__g|=2)}catch(t){e=t,o=0}}throw d=0,e}},c=0,D.prototype.setState=function(e,t){var n=this.__s;n&&n!=this.state||(n=this.__s=C({},this.state)),typeof e==`function`&&(e=e(C({},n),this.props)),e&&(C(n,e),this.__v&&(t&&this.__k.push(t),A(this)))},D.prototype.forceUpdate=function(e){this.__v&&(this.__g|=4,e&&this.__h.push(e),A(this))},D.prototype.render=E,l=[],d=0,f=function(e,t){return e.__v.__b-t.__v.__b},p=Symbol(),m=Symbol(),h=/(PointerCapture)$|Capture$/i,g=0,_=I(!1),v=I(!0);var L,R,de,fe,pe=Object.is,z=0,me=[],he=[],B=s,ge=B.__b,_e=B.__r,ve=B.diffed,ye=B.__c,be=B.unmount,xe=B.__;function Se(e,t){B.__h&&B.__h(R,e,z||t),z=0;var n=R.__H||(R.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Ce(e){return z=1,we(Me,e)}function we(e,t,n){var r=Se(L++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Me(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);pe(t,n)||(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=R,!R.__f)){R.__f=!0;var i=R.shouldComponentUpdate;R.shouldComponentUpdate=function(e,t,n){var r=this.__H;if(!r)return!0;var a=!1,o=this.props!=e;if(r.__.some(function(e){e.__N&&(a=!0,pe(e.__[0],e.__N[0])||(o=!0))}),i){var s=i.call(this,e,t,n);return a?s||o:s}return!a||o}}return r.__}function V(e,t){var n=Se(L++,3);!B.__s&&je(n.__H,t)&&(n.__P=!0,n.__=e,n.u=t,R.__H.__h.push(n))}function H(e){return z=5,Te(function(){return{current:e}},[])}function Te(e,t){var n=Se(L++,7);return je(n.__H,t)&&(n.__=e(),n.__H=t),n.__}function Ee(){var e;do{for(;e=he.shift();)try{U(e)}catch(t){B.__e(t,{__:(e=e.__P)&&e.__v})}for(;e=me.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(U),t.__h.some(Ae),t.__h=[]}catch(n){t.__h=[],B.__e(n,e.__v)}}}while(he.length)}B.__b=function(e){R=null,ge&&ge(e)},B.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),xe&&xe(e,t)},B.__r=function(e){_e&&_e(e),L=0;var t=(R=e.__c).__H;t&&(de==R?R.__h=[]:(t.__h.some(U),t.__h.some(Ae),L=0),t.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})),de=R},B.diffed=function(e){ve&&ve(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&ke(me.push(t)),t.__H.__.some(function(e){e.u&&(e.__H=e.u)})),de=R=null},B.__c=function(e,t){t.some(function(e){try{e.__h.some(U),e.__h=e.__h.filter(function(e){return!e.__||Ae(e)})}catch(n){t.some(function(e){e.__h&&=[]}),t=[],B.__e(n,e.__v)}}),ye&&ye(e,t)},B.unmount=function(e){be&&be(e);var t,n,r=e.__c;r&&r.__H&&(r.__H.__.some(function(r){try{if(r.__P&&r.__c){if(n===void 0){for(n=e.__;n&&(!n.__c||!n.__c.__P);)n=n.__;n&&=n.__c}r.__P=n,ke(he.push(r))}else U(r)}catch(e){t=e}}),r.__H=void 0,t&&B.__e(t,r.__v))};var De=typeof requestAnimationFrame==`function`;function Oe(e){var t,n=function(){clearTimeout(r),De&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);De&&(t=requestAnimationFrame(n))}function ke(e){e!=1&&fe==B.requestAnimationFrame||((fe=B.requestAnimationFrame)||Oe)(Ee)}function U(e){var t=R,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),R=t}function Ae(e){var t=R;e.__c=e.__(),R=t}function je(e,t){return!e||e.length!=t.length||t.some(function(t,n){return!pe(t,e[n])})}function Me(e,t){return typeof t==`function`?t(e):t}var Ne=0;Array.isArray;function W(e,t,n,r,i,a){t||={};var o,c,l=t;if(`ref`in l&&typeof e!=`function`)for(c in l={},t)c==`ref`?o=t[c]:l[c]=t[c];var u={type:e,props:l,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Ne,__i:-1,__u:0};return(i||a)&&(u.__source=i,u.__self=a),s.vnode&&s.vnode(u),u}function G({name:e,size:t,children:n}){return W(`svg`,{"data-icon":e,"aria-hidden":`true`,focusable:`false`,width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,children:n})}function Pe({size:e=26}){return W(G,{name:`chat`,size:e,children:[W(`path`,{d:`M4 5.5A2.5 2.5 0 0 1 6.5 3h11A2.5 2.5 0 0 1 20 5.5v8a2.5 2.5 0 0 1-2.5 2.5H10l-4.5 4v-4h0A1.5 1.5 0 0 1 4 14.5z`}),W(`path`,{d:`M8.5 9.5h.01M12 9.5h.01M15.5 9.5h.01`,"stroke-width":`2.5`})]})}function Fe({size:e=26}){return W(G,{name:`chevron-down`,size:e,children:W(`path`,{d:`M6 9l6 6 6-6`})})}function Ie({size:e=18}){return W(G,{name:`close`,size:e,children:W(`path`,{d:`M6 6l12 12M18 6L6 18`})})}var Le=`M7 11v9M7 11l3.5-7.2A1.8 1.8 0 0 1 14 4.6V9h4.6a2 2 0 0 1 2 2.3l-1.2 7A2 2 0 0 1 17.4 20H7M7 11H4.5A1.5 1.5 0 0 0 3 12.5v6A1.5 1.5 0 0 0 4.5 20H7`;function Re({size:e=16}){return W(G,{name:`thumb-up`,size:e,children:W(`path`,{d:Le})})}function ze({size:e=16}){return W(G,{name:`thumb-down`,size:e,children:W(`path`,{d:Le,transform:`matrix(1 0 0 -1 0 24)`})})}function Be({isOpen:e,onClick:t,iconUrl:n,buttonRef:r}){let[i,a]=Ce(`loading`),o=n!==void 0&&i!==`failed`,s=o&&!e&&i===`loaded`;return W(`button`,{type:`button`,class:`whoo-widget-launcher`,onClick:t,"aria-label":e?`Close chat`:`Open chat`,ref:r,children:[e?W(Fe,{}):s?null:W(Pe,{}),o?W(`img`,{class:`whoo-widget-launcher-icon-image`,src:n,alt:``,referrerpolicy:`no-referrer`,hidden:!s,onLoad:()=>a(`loaded`),onError:()=>a(`failed`)}):null]})}function Ve({value:e,onChange:t,onSend:n,disabled:r,inputRef:i}){return W(`div`,{class:`whoo-widget-composer`,children:[W(`label`,{class:`whoo-widget-sr-only`,for:`whoo-widget-composer-input`,children:`Message`}),W(`input`,{id:`whoo-widget-composer-input`,class:`whoo-widget-composer-input`,value:e,readOnly:r,"aria-disabled":r,ref:i,onInput:e=>t(e.target.value),onKeyDown:e=>{e.key===`Enter`&&n()}}),W(`button`,{type:`button`,class:`whoo-widget-composer-send`,"aria-disabled":r,onClick:()=>{r||n()},children:`Send`})]})}function He({message:e}){return W(`div`,{class:`whoo-widget-error-banner`,role:`alert`,children:e})}var K=/\[([^\]]+)\]\((https?:\/\/[^\s)]+)\)/y,q=/\*\*([^*\s](?:[^*]*[^*\s])?)\*\*/y,J=/(?<![A-Za-z0-9_])_([^_\s](?:[^_]*[^_\s])?)_(?![A-Za-z0-9_])/y,Y=/\*([^*\s](?:[^*]*[^*\s])?)\*/y,X=/[ \t]*[*+-][ \t]+/y,Ue=/https?:\/\/\S+/y,We=/[.,;:!?)\]}>]+$/;function Ge(e){let t=[],n=0,r=0,i=n=>{n>r&&t.push({type:`text`,value:e.slice(r,n),start:r,end:n})};for(;n<e.length;){if((n===0||e[n-1]===`
2
+ `)&&(X.lastIndex=n,X.exec(e))){i(n),t.push({type:`text`,value:`• `,start:n,end:X.lastIndex}),n=X.lastIndex,r=n;continue}if(e[n]===`!`&&n+1<e.length&&e[n+1]===`[`){let t=/!\[([^\]]*)\]\(([^)]*)\)/y;t.lastIndex=n;let r=t.exec(e);if(r){n+=r[0].length;continue}}if(e[n-1]!==`!`){K.lastIndex=n;let a=K.exec(e);if(a){i(n),t.push({type:`link`,text:a[1],url:a[2],start:n,end:K.lastIndex}),n=K.lastIndex,r=n;continue}}q.lastIndex=n;let a=q.exec(e);if(a){i(n),t.push({type:`bold`,value:a[1],start:n,end:q.lastIndex}),n=q.lastIndex,r=n;continue}J.lastIndex=n;let o=J.exec(e);if(o){i(n),t.push({type:`italic`,value:o[1],start:n,end:J.lastIndex}),n=J.lastIndex,r=n;continue}Y.lastIndex=n;let s=Y.exec(e);if(s){i(n),t.push({type:`italic`,value:s[1],start:n,end:Y.lastIndex}),n=Y.lastIndex,r=n;continue}Ue.lastIndex=n;let c=Ue.exec(e);if(c){let e=c[0].match(We),a=e?c[0].slice(0,c[0].length-e[0].length):c[0];if(a.length>0){i(n),t.push({type:`link`,text:a,url:a,start:n,end:n+a.length}),n+=a.length,r=n;continue}}n+=1}return i(e.length),t}var Ke=/^[ \t]*[*+-][ \t]+(.*)$/;function qe(e){let t=[],n=[],r=[],i=()=>{n.length>0&&t.push({type:`text`,text:n.join(`
3
3
  `)}),n=[]},a=()=>{r.length>0&&t.push({type:`list`,items:r}),r=[]};for(let t of e.split(`
4
- `)){let e=t.match(Je);e?(i(),r.push(e[1])):(a(),n.push(t))}return i(),a(),t.some(e=>e.type===`list`)?t.flatMap((e,n)=>{if(e.type===`list`)return[e];let{text:r}=e;return t[n-1]?.type===`list`&&(r=r.replace(/^(?:[ \t]*\n)+/,``)),t[n+1]?.type===`list`&&(r=r.replace(/(?:\n[ \t]*)+$/,``)),r.trim()===``?[]:[{type:`text`,text:r}]}):null}function X(e){return Y(e).map((e,t)=>{switch(e.type){case`bold`:return H(`strong`,{children:X(e.value)},t);case`italic`:return H(`em`,{children:X(e.value)},t);case`link`:return H(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:[e.text,H(`span`,{class:`whoo-widget-sr-only`,children:` (opens in new tab)`})]},t);default:return e.value}})}function Xe(e){let t=e.replace(/\r\n?/g,`
5
- `),n=Ye(t);return n?n.map((e,t)=>e.type===`list`?H(`ul`,{class:`whoo-widget-list`,children:e.items.map((e,t)=>H(`li`,{children:X(e)},t))},t):H(`span`,{children:X(e.text)},t)):X(t)}var Ze=[{value:``,label:`Select a reason (optional)`},{value:`factual`,label:`Factual error`},{value:`incomplete`,label:`Incomplete`},{value:`tone`,label:`Off tone`},{value:`other`,label:`Other`}];function Qe({state:e,containerRef:t,onThumbsUp:n,onThumbsDown:r,onDraftChange:i,onSubmitDetailed:a,onCancel:o}){let s=e.correction??``,c=e.category??``,l=B(e.status);if(z(()=>{let n=l.current;if(l.current=e.status,n===e.status)return;let r=t?.current;if(!r)return;let i=r.getRootNode();r.contains(i.activeElement)||r.focus()},[e.status,t]),e.status===`expanded`)return H(`div`,{class:`whoo-widget-feedback-form`,children:[H(`label`,{children:[H(`span`,{class:`whoo-widget-sr-only`,children:`Additional feedback`}),H(`textarea`,{class:`whoo-widget-feedback-textarea`,value:s,onInput:e=>i(e.target.value,c),placeholder:`What was wrong? (optional)`})]}),H(`select`,{class:`whoo-widget-feedback-select`,"aria-label":`Feedback category`,value:c,onChange:e=>i(s,e.target.value),children:Ze.map(e=>H(`option`,{value:e.value,children:e.label},e.value))}),H(`div`,{class:`whoo-widget-feedback-form-buttons`,children:[H(`button`,{type:`button`,class:`whoo-widget-feedback-submit`,onClick:()=>a(s,c),children:`Submit`}),H(`button`,{type:`button`,class:`whoo-widget-feedback-cancel`,onClick:o,children:`Cancel`})]})]});let u=e.status===`submitting`,d=e.status===`submitted`;return H(`div`,{class:`whoo-widget-feedback`,children:[d?null:H(`div`,{class:`whoo-widget-feedback-buttons`,children:[H(`button`,{type:`button`,"aria-label":`Good response`,disabled:u,onClick:n,children:H(Ve,{})}),H(`button`,{type:`button`,"aria-label":`Bad response`,disabled:u,onClick:r,children:H(He,{})})]}),H(`div`,{role:`status`,class:d?`whoo-widget-feedback-submitted`:e.status===`error`?`whoo-widget-feedback-error`:void 0,children:d?`Thanks for the feedback`:e.status===`error`?`Couldn't send feedback`:null})]})}function $e({isSlowResponse:e}){return H(`div`,{class:`whoo-widget-pending`,role:`status`,children:[H(`span`,{class:`whoo-widget-typing`,"aria-hidden":`true`,children:[H(`span`,{}),H(`span`,{}),H(`span`,{})]}),e?H(`span`,{class:`whoo-widget-pending-text`,children:`Looking that up for you…`}):null]})}function et({url:e,alt:t}){let[n,r]=De(!1);return n?null:H(`img`,{class:`whoo-widget-empty-state-image`,src:e,alt:t,referrerpolicy:`no-referrer`,onError:()=>r(!0)})}function tt({message:e,speaker:t,feedbackState:n,showFeedback:r,pending:i,isSlowResponse:a,onThumbsUp:o,onThumbsDown:s,onDraftChange:c,onSubmitDetailed:l,onCancelFeedback:u}){let d=B(null),f=e.id;return H(`div`,{ref:d,tabIndex:-1,class:`whoo-widget-message whoo-widget-message--${e.role}`,children:[H(`span`,{class:`whoo-widget-sr-only`,children:[t,`: `]}),i?H($e,{isSlowResponse:a}):Xe(e.content),r&&e.role===`assistant`&&f?H(Qe,{state:n,containerRef:d,onThumbsUp:()=>o(f),onThumbsDown:()=>s(f),onDraftChange:(e,t)=>c(f,e,t),onSubmitDetailed:(e,t)=>l(f,e,t),onCancel:()=>u(f)}):null]})}function nt({messages:e,messageFeedback:t,announcement:n,emptyStateImage:r,agentName:a=i,showFeedback:o=!1,isStreaming:s=!1,isSlowResponse:c=!1,onThumbsUp:l,onThumbsDown:u,onDraftChange:d=()=>{},onSubmitDetailed:f,onCancelFeedback:p}){let m=B(null);return z(()=>{let e=m.current;e&&(e.scrollTop=e.scrollHeight)},[e,c]),H(O,{children:[H(`section`,{class:`whoo-widget-message-list`,ref:m,"aria-label":`Conversation`,tabIndex:0,children:[r?H(et,{...r}):null,e.map((n,r)=>H(tt,{message:n,speaker:n.role===`user`?`You`:a,showFeedback:o,feedbackState:n.id?t[n.id]??{status:`idle`}:{status:`idle`},pending:s&&r===e.length-1&&n.role===`assistant`&&n.content===``,isSlowResponse:c,onThumbsUp:l,onThumbsDown:u,onDraftChange:d,onSubmitDetailed:f,onCancelFeedback:p},n.id??r))]}),H(`div`,{class:`whoo-widget-sr-only`,"aria-live":`polite`,"aria-atomic":`true`,children:n??``})]})}var rt=`button:not(:disabled), [href], input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])`;function it(e){return Array.from(e.querySelectorAll(rt)).filter(e=>{let t=getComputedStyle(e);return t.display!==`none`&&t.visibility!==`hidden`})}function at({state:e,controller:t,greeting:n}){let r=B(null),i=B(null);z(()=>{i.current?.focus()},[]);let o=e=>{if(e.key===`Escape`){t.close();return}if(e.key!==`Tab`)return;let n=r.current;if(!n)return;let i=it(n);if(i.length===0)return;let a=i[0],o=i[i.length-1],s=n.getRootNode().activeElement;if(!n.contains(s)){e.preventDefault(),a.focus();return}e.shiftKey&&s===a?(e.preventDefault(),o.focus()):!e.shiftKey&&s===o&&(e.preventDefault(),a.focus())},s=()=>{let n=e.draft.trim();n&&!e.isStreaming&&(t.setDraft(``),t.sendMessage(n))},c=a(t.config.name)||e.agentName||`Aiden`,l=`Chat with ${c}`,u=e.messages.length===0&&n?[{role:`assistant`,content:n,id:null}]:e.messages,d=t.emptyStateImageUrl,f=e.messages.length===0&&d?{url:d,alt:t.emptyStateImageAlt}:void 0;return H(`div`,{class:`whoo-widget-panel`,role:`dialog`,"aria-modal":`true`,"aria-label":l,ref:r,onKeyDown:o,children:[H(`div`,{class:`whoo-widget-header`,children:[H(`h2`,{class:`whoo-widget-header-title`,children:l}),H(`div`,{class:`whoo-widget-header-actions`,children:[e.messages.length>0&&H(`button`,{type:`button`,class:`whoo-widget-header-reset`,onClick:()=>{t.resetConversation(),i.current?.focus()},children:`New conversation`}),H(`button`,{type:`button`,class:`whoo-widget-header-close`,"aria-label":`Close chat`,onClick:()=>t.close(),children:H(ze,{})})]})]}),H(nt,{messages:u,messageFeedback:e.messageFeedback,announcement:e.announcement,emptyStateImage:f,agentName:c,showFeedback:t.showFeedback,isStreaming:e.isStreaming,isSlowResponse:e.isSlowResponse,onThumbsUp:e=>t.submitFeedback(e,`up`),onThumbsDown:e=>t.expandFeedback(e),onDraftChange:(e,n,r)=>t.setFeedbackDraft(e,n,r),onSubmitDetailed:(e,n,r)=>t.submitFeedback(e,`down`,n||void 0,r||void 0),onCancelFeedback:e=>t.cancelFeedback(e)}),e.runtimeError&&H(Ge,{message:e.runtimeError}),H(We,{value:e.draft,onChange:e=>t.setDraft(e),onSend:s,disabled:e.isStreaming,inputRef:i})]})}function ot({controller:e}){let[t,n]=De(e.getState()),r=B(null),i=B(t.isOpen);return z(()=>(n(e.getState()),e.subscribe(n)),[e]),z(()=>{i.current&&!t.isOpen&&r.current?.focus(),i.current=t.isOpen},[t.isOpen]),t.initError||t.isInitializing?null:H(O,{children:[H(Ue,{isOpen:t.isOpen,onClick:()=>t.isOpen?e.close():e.open(),iconUrl:e.launcherIconUrl,buttonRef:r}),t.isOpen&&H(at,{state:t,controller:e,greeting:e.config.greeting})]})}var Z=class extends Error{status;constructor(e,t){super(e),this.name=`WidgetApiError`,this.status=t}};function st(e){if(typeof e!=`string`)return null;let t=e.trim();return t===``?null:t}async function ct(e,t){let n=await fetch(`${e}/api/v1/widget/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({publishable_key:t})});if(!n.ok)throw new Z(`Failed to create widget session (${n.status})`,n.status);let r=await n.json();return{token:r.token,...lt(r)}}function lt(e){return{primaryColor:st(e.primary_color),name:st(e.name),accentColor:st(e.accent_color),inkColor:st(e.ink_color)}}async function ut(e,t){let n=await fetch(`${e}/api/v1/widget/branding`,{headers:{Authorization:`Bearer ${t}`}});if(!n.ok)throw new Z(`Failed to load widget branding (${n.status})`,n.status);return lt(await n.json())}async function dt(e,t,n){let r=await fetch(`${e}/api/v1/widget/feedback`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${t}`},body:JSON.stringify({message_id:n.messageId,rating:n.rating,correction:n.correction??null,category:n.category??null})});if(!r.ok)throw new Z(`Feedback submission failed (${r.status})`,r.status)}async function*ft(e,t,n,r,i){let a=await fetch(`${e}/api/v1/widget/chat`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${t}`},body:JSON.stringify({conversation_id:n,message:r}),signal:i});if(!a.ok||!a.body)throw new Z(`Chat request failed (${a.status})`,a.status);let o=a.body.getReader(),s=new TextDecoder,c=``;for(;;){let{done:e,value:t}=await o.read();if(e)break;c+=s.decode(t,{stream:!0});let n=c.indexOf(`
4
+ `)){let e=t.match(Ke);e?(i(),r.push(e[1])):(a(),n.push(t))}return i(),a(),t.some(e=>e.type===`list`)?t.flatMap((e,n)=>{if(e.type===`list`)return[e];let{text:r}=e;return t[n-1]?.type===`list`&&(r=r.replace(/^(?:[ \t]*\n)+/,``)),t[n+1]?.type===`list`&&(r=r.replace(/(?:\n[ \t]*)+$/,``)),r.trim()===``?[]:[{type:`text`,text:r}]}):null}function Z(e){return Ge(e).map((e,t)=>{switch(e.type){case`bold`:return W(`strong`,{children:Z(e.value)},t);case`italic`:return W(`em`,{children:Z(e.value)},t);case`link`:return W(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:[e.text,W(`span`,{class:`whoo-widget-sr-only`,children:` (opens in new tab)`})]},t);default:return e.value}})}function Je(e){let t=e.replace(/\r\n?/g,`
5
+ `),n=qe(t);return n?n.map((e,t)=>e.type===`list`?W(`ul`,{class:`whoo-widget-list`,children:e.items.map((e,t)=>W(`li`,{children:Z(e)},t))},t):W(`span`,{children:Z(e.text)},t)):Z(t)}var Ye=[{value:``,label:`Select a reason (optional)`},{value:`factual`,label:`Factual error`},{value:`incomplete`,label:`Incomplete`},{value:`tone`,label:`Off tone`},{value:`other`,label:`Other`}];function Xe({state:e,containerRef:t,onThumbsUp:n,onThumbsDown:r,onDraftChange:i,onSubmitDetailed:a,onCancel:o}){let s=e.correction??``,c=e.category??``,l=H(e.status);if(V(()=>{let n=l.current;if(l.current=e.status,n===e.status)return;let r=t?.current;if(!r)return;let i=r.getRootNode();r.contains(i.activeElement)||r.focus()},[e.status,t]),e.status===`expanded`)return W(`div`,{class:`whoo-widget-feedback-form`,children:[W(`label`,{children:[W(`span`,{class:`whoo-widget-sr-only`,children:`Additional feedback`}),W(`textarea`,{class:`whoo-widget-feedback-textarea`,value:s,onInput:e=>i(e.target.value,c),placeholder:`What was wrong? (optional)`})]}),W(`select`,{class:`whoo-widget-feedback-select`,"aria-label":`Feedback category`,value:c,onChange:e=>i(s,e.target.value),children:Ye.map(e=>W(`option`,{value:e.value,children:e.label},e.value))}),W(`div`,{class:`whoo-widget-feedback-form-buttons`,children:[W(`button`,{type:`button`,class:`whoo-widget-feedback-submit`,onClick:()=>a(s,c),children:`Submit`}),W(`button`,{type:`button`,class:`whoo-widget-feedback-cancel`,onClick:o,children:`Cancel`})]})]});let u=e.status===`submitting`,d=e.status===`submitted`;return W(`div`,{class:`whoo-widget-feedback`,children:[d?null:W(`div`,{class:`whoo-widget-feedback-buttons`,children:[W(`button`,{type:`button`,"aria-label":`Good response`,disabled:u,onClick:n,children:W(Re,{})}),W(`button`,{type:`button`,"aria-label":`Bad response`,disabled:u,onClick:r,children:W(ze,{})})]}),W(`div`,{role:`status`,class:d?`whoo-widget-feedback-submitted`:e.status===`error`?`whoo-widget-feedback-error`:void 0,children:d?`Thanks for the feedback`:e.status===`error`?`Couldn't send feedback`:null})]})}function Ze({isSlowResponse:e}){return W(`div`,{class:`whoo-widget-pending`,role:`status`,children:[W(`span`,{class:`whoo-widget-typing`,"aria-hidden":`true`,children:[W(`span`,{}),W(`span`,{}),W(`span`,{})]}),e?W(`span`,{class:`whoo-widget-pending-text`,children:`Looking that up for you…`}):null]})}function Qe({url:e,alt:t}){let[n,r]=Ce(!1);return n?null:W(`img`,{class:`whoo-widget-empty-state-image`,src:e,alt:t,referrerpolicy:`no-referrer`,onError:()=>r(!0)})}function $e({message:e,speaker:t,feedbackState:n,showFeedback:r,pending:i,isSlowResponse:a,onThumbsUp:o,onThumbsDown:s,onDraftChange:c,onSubmitDetailed:l,onCancelFeedback:u}){let d=H(null),f=e.id;return W(`div`,{ref:d,tabIndex:-1,class:`whoo-widget-message whoo-widget-message--${e.role}`,children:[W(`span`,{class:`whoo-widget-sr-only`,children:[t,`: `]}),i?W(Ze,{isSlowResponse:a}):Je(e.content),r&&e.role===`assistant`&&f?W(Xe,{state:n,containerRef:d,onThumbsUp:()=>o(f),onThumbsDown:()=>s(f),onDraftChange:(e,t)=>c(f,e,t),onSubmitDetailed:(e,t)=>l(f,e,t),onCancel:()=>u(f)}):null]})}function et({messages:e,messageFeedback:t,announcement:n,emptyStateImage:r,agentName:a=i,showFeedback:o=!1,isStreaming:s=!1,isSlowResponse:c=!1,onThumbsUp:l,onThumbsDown:u,onDraftChange:d=()=>{},onSubmitDetailed:f,onCancelFeedback:p}){let m=H(null);return V(()=>{let e=m.current;e&&(e.scrollTop=e.scrollHeight)},[e,c]),W(E,{children:[W(`section`,{class:`whoo-widget-message-list`,ref:m,"aria-label":`Conversation`,tabIndex:0,children:[r?W(Qe,{...r}):null,e.map((n,r)=>W($e,{message:n,speaker:n.role===`user`?`You`:a,showFeedback:o,feedbackState:n.id?t[n.id]??{status:`idle`}:{status:`idle`},pending:s&&r===e.length-1&&n.role===`assistant`&&n.content===``,isSlowResponse:c,onThumbsUp:l,onThumbsDown:u,onDraftChange:d,onSubmitDetailed:f,onCancelFeedback:p},n.id??r))]}),W(`div`,{class:`whoo-widget-sr-only`,"aria-live":`polite`,"aria-atomic":`true`,children:n??``})]})}var tt=`button:not(:disabled), [href], input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])`;function nt(e){return Array.from(e.querySelectorAll(tt)).filter(e=>{let t=getComputedStyle(e);return t.display!==`none`&&t.visibility!==`hidden`})}function rt({state:e,controller:t,greeting:n}){let r=H(null),i=H(null);V(()=>{i.current?.focus()},[]);let o=e=>{if(e.key===`Escape`){t.close();return}if(e.key!==`Tab`)return;let n=r.current;if(!n)return;let i=nt(n);if(i.length===0)return;let a=i[0],o=i[i.length-1],s=n.getRootNode().activeElement;if(!n.contains(s)){e.preventDefault(),a.focus();return}e.shiftKey&&s===a?(e.preventDefault(),o.focus()):!e.shiftKey&&s===o&&(e.preventDefault(),a.focus())},s=()=>{let n=e.draft.trim();n&&!e.isStreaming&&(t.setDraft(``),t.sendMessage(n))},c=a(t.config.name)||e.agentName||`Aiden`,l=`Chat with ${c}`,u=e.messages.length===0&&n?[{role:`assistant`,content:n,id:null}]:e.messages,d=t.emptyStateImageUrl,f=e.messages.length===0&&d?{url:d,alt:t.emptyStateImageAlt}:void 0;return W(`div`,{class:`whoo-widget-panel`,role:`dialog`,"aria-modal":`true`,"aria-label":l,ref:r,onKeyDown:o,children:[W(`div`,{class:`whoo-widget-header`,children:[W(`h2`,{class:`whoo-widget-header-title`,children:l}),W(`div`,{class:`whoo-widget-header-actions`,children:[e.messages.length>0&&W(`button`,{type:`button`,class:`whoo-widget-header-reset`,onClick:()=>{t.resetConversation(),i.current?.focus()},children:`New conversation`}),W(`button`,{type:`button`,class:`whoo-widget-header-close`,"aria-label":`Close chat`,onClick:()=>t.close(),children:W(Ie,{})})]})]}),W(et,{messages:u,messageFeedback:e.messageFeedback,announcement:e.announcement,emptyStateImage:f,agentName:c,showFeedback:t.showFeedback,isStreaming:e.isStreaming,isSlowResponse:e.isSlowResponse,onThumbsUp:e=>t.submitFeedback(e,`up`),onThumbsDown:e=>t.expandFeedback(e),onDraftChange:(e,n,r)=>t.setFeedbackDraft(e,n,r),onSubmitDetailed:(e,n,r)=>t.submitFeedback(e,`down`,n||void 0,r||void 0),onCancelFeedback:e=>t.cancelFeedback(e)}),e.runtimeError&&W(He,{message:e.runtimeError}),W(Ve,{value:e.draft,onChange:e=>t.setDraft(e),onSend:s,disabled:e.isStreaming,inputRef:i})]})}function it({controller:e}){let[t,n]=Ce(e.getState()),r=H(null),i=H(t.isOpen);return V(()=>(n(e.getState()),e.subscribe(n)),[e]),V(()=>{i.current&&!t.isOpen&&r.current?.focus(),i.current=t.isOpen},[t.isOpen]),t.initError||t.isInitializing?null:W(E,{children:[W(Be,{isOpen:t.isOpen,onClick:()=>t.isOpen?e.close():e.open(),iconUrl:e.launcherIconUrl,buttonRef:r}),t.isOpen&&W(rt,{state:t,controller:e,greeting:e.config.greeting})]})}var at=class extends Error{status;constructor(e,t){super(e),this.name=`WidgetApiError`,this.status=t}};function ot(e){if(typeof e!=`string`)return null;let t=e.trim();return t===``?null:t}async function st(e,t){let n=await fetch(`${e}/api/v1/widget/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({publishable_key:t})});if(!n.ok)throw new at(`Failed to create widget session (${n.status})`,n.status);let r=await n.json();return{token:r.token,...ct(r)}}function ct(e){return{primaryColor:ot(e.primary_color),name:ot(e.name),accentColor:ot(e.accent_color),inkColor:ot(e.ink_color)}}async function lt(e,t){let n=await fetch(`${e}/api/v1/widget/branding`,{headers:{Authorization:`Bearer ${t}`}});if(!n.ok)throw new at(`Failed to load widget branding (${n.status})`,n.status);return ct(await n.json())}async function ut(e,t,n){let r=await fetch(`${e}/api/v1/widget/feedback`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${t}`},body:JSON.stringify({message_id:n.messageId,rating:n.rating,correction:n.correction??null,category:n.category??null})});if(!r.ok)throw new at(`Feedback submission failed (${r.status})`,r.status)}async function*dt(e,t,n,r,i){let a=await fetch(`${e}/api/v1/widget/chat`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${t}`},body:JSON.stringify({conversation_id:n,message:r}),signal:i});if(!a.ok||!a.body)throw new at(`Chat request failed (${a.status})`,a.status);let o=a.body.getReader(),s=new TextDecoder,c=``;for(;;){let{done:e,value:t}=await o.read();if(e)break;c+=s.decode(t,{stream:!0});let n=c.indexOf(`
6
6
 
7
7
  `);for(;n!==-1;){let e=c.slice(0,n);c=c.slice(n+2);let t=e.split(`
8
- `).find(e=>e.startsWith(`data: `));t&&(yield pt(JSON.parse(t.slice(6)))),n=c.indexOf(`
8
+ `).find(e=>e.startsWith(`data: `));t&&(yield ft(JSON.parse(t.slice(6)))),n=c.indexOf(`
9
9
 
10
- `)}}}function pt(e){return typeof e.error==`string`?{type:`error`,error:e.error,conversationId:e.conversation_id}:e.done===!0?{type:`done`,conversationId:e.conversation_id,messageId:e.message_id??null}:typeof e.delta==`string`?e.verbatim===!0?{type:`delta`,delta:e.delta,verbatim:!0}:{type:`delta`,delta:e.delta}:{type:`conversation_id`,conversationId:e.conversation_id}}function mt(e,t){if(e!=null&&e!==``){if(typeof e==`string`)try{let t=new URL(e);if(t.protocol===`https:`||t.protocol===`data:`&&t.pathname.toLowerCase().startsWith(`image/`))return e}catch{}console.warn(`whoo-aiden-widget: ignoring \`${t}\` -- only https: and data:image/ URLs are allowed.`)}}function ht(e){return Y(e.replace(/\r\n?/g,`
11
- `)).map(e=>{switch(e.type){case`bold`:case`italic`:return ht(e.value);case`link`:return e.text;default:return e.value}}).join(``)}var gt=40,_t=120;function vt(e){let t=[];for(let n of Y(e))if(n.type===`text`){let e=n.value.split(/(\s+)/),r=n.start;for(let n of e)r+=n.length,n.trim().length>0&&t.push(r)}else t.push(n.end);return t}function yt(e){let t=null;return e?.addEventListener(`abort`,()=>{t?.()},{once:!0}),function(e){return new Promise(n=>{let r=setTimeout(()=>{t=null,n()},e);t=()=>{clearTimeout(r),t=null,n()}})}}async function bt(e,t,n){let r=n?.wordIntervalMs??gt,i=n?.tokenIntervalMs??_t,a=n?.signal,o=Y(e),s=new Set(o.filter(e=>e.type!==`text`).map(e=>e.end)),c=yt(a),l=``;for(let n of vt(e))if(a?.aborted||(l=e.slice(0,n),t(l),await c(s.has(n)?i:r),a?.aborted))return;l!==e&&t(e)}function xt(e,t=Date.now()){let n=e.split(`.`);if(n.length!==3||n.some(e=>e===``))return!1;let r=n[1];try{let e=r.replace(/-/g,`+`).replace(/_/g,`/`),n=JSON.parse(atob(e.padEnd(Math.ceil(e.length/4)*4,`=`)))?.exp;return typeof n==`number`&&Number.isFinite(n)&&n*1e3<=t}catch{return!1}}function St(e){return`whoo-aiden-widget:conversation:${e}`}function Ct(e){try{return window.sessionStorage.getItem(St(e))}catch{return null}}function wt(e,t){try{window.sessionStorage.setItem(St(e),t)}catch{}}function Tt(e){try{window.sessionStorage.removeItem(St(e))}catch{}}var Et=/^(inherit|initial|unset|revert|revert-layer)$|\bcurrentcolor\b|\b(var|env|attr|light-dark)\(/i;function Dt(e){if(Et.test(e.trim()))return null;let t=document.createElement(`div`);if(t.style.color=e,t.style.color===``)return null;let n=document.createElement(`div`);n.attachShadow({mode:`open`}).appendChild(t),document.body.appendChild(n);let r=getComputedStyle(t).color;n.remove();let i=r.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?/);if(!i)return null;let a=i[4]===void 0?1:Number(i[4]);return{rgb:[Number(i[1]),Number(i[2]),Number(i[3])].map(e=>Math.round(e*a+255*(1-a))),translucent:a<1}}function Ot(e){return Dt(e)?.rgb??null}function Q([e,t,n]){let r=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4};return .2126*r(e)+.7152*r(t)+.0722*r(n)}function kt(e,t){let n=Math.max(e,t),r=Math.min(e,t);return(n+.05)/(r+.05)}function At(e){let t=Ot(e);if(!t)return console.warn(`[whoo-aiden-widget] Could not parse color "${e}" for contrast calculation; defaulting to white text.`),`#ffffff`;let n=Q(t);return kt(n,Q([0,0,0]))>=kt(n,Q([255,255,255]))?`#000000`:`#ffffff`}var jt=`#4f46e5`,Mt=`#ffffff`,Nt=`#f0f0f0`,Pt=`#f3f4f6`,Ft=4.5;function It([e,t,n]){return`#${[e,t,n].map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function Lt(e,t=Mt){let n=Ot(e),r=Ot(t);if(!n||!r)return jt;let i=Q(r),a=e=>kt(Q(e),i)>=Ft;if(a(n))return It(n);for(let e=.99;e>0;e-=.01){let t=n.map(t=>Math.round(t*e));if(a(t))return It(t)}return`#000000`}var Rt=`#111111`,zt=`#0000ee`;function $(e){if(typeof e!=`string`||!e)return null;let t=Dt(e);return t?It(t.rgb):null}function Bt({color:e,inkColor:t,accentColor:n}){let r=$(e),i=r??jt,a=Lt(i,Pt),o=$(t),s=o?Lt(o,Nt):Rt,c=$(n),l=c?Lt(c,Nt):zt;return{primary:i,textOnPrimary:At(i),primaryAsText:a,ink:s,link:l,adjusted:{primary:r!==null&&a!==i,ink:o!==null&&s!==o,link:c!==null&&l!==c}}}function Vt(e){return typeof e==`string`?`"${e}"`:`a ${typeof e} value`}function Ht(e,t,n=jt){let r=t;$(t)===null&&(console.warn(`[whoo-aiden-widget] Could not use ${Vt(t)} as the theme color; falling back to ${Vt(n)}.`),r=n);let i=Bt({color:r});e.style.setProperty(`--whoo-widget-color`,i.primary),e.style.setProperty(`--whoo-widget-text-on-color`,i.textOnPrimary),e.style.setProperty(`--whoo-widget-color-text`,i.primaryAsText)}function Ut(e,{inkColor:t,accentColor:n}){let r=Bt({inkColor:t,accentColor:n});e.style.setProperty(`--whoo-widget-ink`,r.ink),e.style.setProperty(`--whoo-widget-link-color`,r.link)}function Wt(e,t){e&&$(e)===null&&console.warn(`[whoo-aiden-widget] Could not use ${Vt(e)} as the ${t}; using the default.`)}function Gt(e,t){Ht(e,t.color??jt),Wt(t.inkColor,`ink color`),Wt(t.accentColor,`accent color`),Ut(e,{inkColor:t.inkColor,accentColor:t.accentColor});let n=t.position===`bottom-left`;e.style.setProperty(`--whoo-widget-inset-left`,n?`20px`:`auto`),e.style.setProperty(`--whoo-widget-inset-right`,n?`auto`:`20px`)}var Kt=8e3,qt=3e3;function Jt(e,t){return new Promise(n=>{let r=setTimeout(n,t);e.then(()=>{clearTimeout(r),n()})})}var Yt=class{config;state;listeners=new Set;sessionToken=null;conversationId=null;storageIdentifier;activeRequestController=null;slowResponseTimer=null;prefersReducedMotion;launcherIconUrl;emptyStateImageUrl;emptyStateImageAlt;showFeedback;constructor(e){this.config=e,this.launcherIconUrl=mt(e.launcherIconUrl,`launcherIconUrl`),this.emptyStateImageUrl=mt(e.emptyStateImageUrl,`emptyStateImageUrl`),this.emptyStateImageAlt=typeof e.emptyStateImageAlt==`string`?e.emptyStateImageAlt.trim():``,this.showFeedback=e.showFeedback===!0,this.storageIdentifier=e.publishableKey??`session-token-mode`,this.prefersReducedMotion=typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,this.state={isOpen:!1,messages:[],isStreaming:!1,initError:null,isInitializing:!1,runtimeError:null,messageFeedback:{},primaryColor:null,agentName:null,accentColor:null,inkColor:null,announcement:null,isSlowResponse:!1,draft:``}}getState(){return this.state}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}clearSlowResponse(){this.slowResponseTimer!==null&&(clearTimeout(this.slowResponseTimer),this.slowResponseTimer=null),this.state.isSlowResponse&&this.setState({isSlowResponse:!1})}setState(e){this.state={...this.state,...e};for(let e of this.listeners)e(this.state)}async init(){this.setState({isInitializing:!0});try{await this.start()}finally{this.setState({isInitializing:!1})}}async start(){let e=this.config.apiBaseUrl??`https://api.aidenvoice.com`;try{if(this.config.sessionToken){if(xt(this.config.sessionToken))throw Error(`The sessionToken has expired.`);this.sessionToken=this.config.sessionToken}else if(this.config.publishableKey){let{token:t,primaryColor:n,name:r,accentColor:i,inkColor:a}=await ct(e,this.config.publishableKey);this.sessionToken=t,this.setState({primaryColor:n,agentName:r,accentColor:i,inkColor:a})}else throw Error(`WidgetConfig must include exactly one of publishableKey or sessionToken`)}catch(e){console.error(`[whoo-aiden-widget] initialization failed:`,e),this.setState({initError:e instanceof Error?e.message:String(e)});return}this.conversationId=Ct(this.storageIdentifier),this.config.sessionToken&&await Jt(this.loadBranding(e,this.config.sessionToken),qt)}async loadBranding(e,t){try{let n=this.config;if($(n.color)&&$(n.inkColor)&&$(n.accentColor)&&a(n.name))return;let{primaryColor:r,name:i,accentColor:o,inkColor:s}=await ut(e,t);this.setState({primaryColor:r,agentName:i,accentColor:o,inkColor:s})}catch(e){let t=e?.status;(t===401||t===403)&&(console.error(`[whoo-aiden-widget] initialization failed:`,e),this.setState({initError:e instanceof Error?e.message:String(e)}))}}open(){this.setState({isOpen:!0})}resetConversation(){this.activeRequestController?.abort(),this.activeRequestController=null,this.clearSlowResponse(),this.conversationId=null,Tt(this.storageIdentifier),this.setState({messages:[],messageFeedback:{},runtimeError:null,isStreaming:!1,announcement:`Conversation cleared`})}setDraft(e){this.setState({draft:e})}close(){this.activeRequestController?.abort(),this.activeRequestController=null,this.clearSlowResponse(),this.setState({isOpen:!1})}async sendMessage(e){if(!this.sessionToken)return;let t=this.config.apiBaseUrl??`https://api.aidenvoice.com`,n={role:`user`,content:e,id:null},r={role:`assistant`,content:``,id:null};this.setState({messages:[...this.state.messages,n,r],isStreaming:!0,runtimeError:null,announcement:null});let i=e=>{let t=[...this.state.messages];t[t.length-1]={...t[t.length-1],content:e},this.setState({messages:t})};this.activeRequestController=new AbortController;let{signal:a}=this.activeRequestController;this.slowResponseTimer=setTimeout(()=>{this.slowResponseTimer=null,this.setState({isSlowResponse:!0})},Kt);let o=()=>{this.setState({runtimeError:`Something went wrong, please try again.`,...this.state.draft===``?{draft:e}:{}})},s=``;try{for await(let n of ft(t,this.sessionToken,this.conversationId,e,a))if(n.type===`conversation_id`)this.conversationId=n.conversationId,wt(this.storageIdentifier,n.conversationId);else if(n.type===`delta`)this.clearSlowResponse(),n.verbatim&&!this.prefersReducedMotion?(await bt(n.delta,e=>i(e),{signal:a}),s=n.delta):n.verbatim?(s=n.delta,i(s)):(s+=n.delta,i(s));else if(n.type===`done`){if(n.conversationId&&(this.conversationId=n.conversationId,wt(this.storageIdentifier,n.conversationId)),n.messageId){let e=[...this.state.messages];e[e.length-1]={...e[e.length-1],id:n.messageId},this.setState({messages:e})}this.setState({announcement:ht(s)})}else if(n.type===`error`){console.error(`[whoo-aiden-widget] chat error:`,n.error),o(),this.activeRequestController?.abort();break}}catch(e){e?.name===`AbortError`||(console.error(`[whoo-aiden-widget] chat request failed:`,e),o())}finally{this.activeRequestController=null,this.clearSlowResponse(),this.setState({isStreaming:!1})}}expandFeedback(e){let{correction:t,category:n}=this.state.messageFeedback[e]??{};this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{status:`expanded`,correction:t,category:n}}})}setFeedbackDraft(e,t,n){this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{...this.state.messageFeedback[e],correction:t,category:n}}})}cancelFeedback(e){this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{status:`idle`}}})}async submitFeedback(e,t,n,r){if(!this.sessionToken)return;let i=this.config.apiBaseUrl??`https://api.aidenvoice.com`;this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{status:`submitting`,rating:t}}});try{await dt(i,this.sessionToken,{messageId:e,rating:t,correction:n,category:r}),this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{status:`submitted`,rating:t}}})}catch(i){console.error(`[whoo-aiden-widget] feedback submission failed:`,i),this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{status:`error`,rating:t,correction:n,category:r}}})}}},Xt=`:host,.whoo-widget-root{all:initial;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.whoo-widget-launcher{bottom:20px;left:var(--whoo-widget-inset-left,auto);right:var(--whoo-widget-inset-right,20px);background:var(--whoo-widget-color,#4f46e5);width:56px;height:56px;color:var(--whoo-widget-text-on-color,#fff);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:24px;display:flex;position:fixed;box-shadow:0 2px 8px #0003}.whoo-widget-launcher:focus-visible{box-shadow:0 2px 8px #0003,0 0 0 4px #fff}.whoo-widget-launcher svg{display:block}.whoo-widget-launcher-icon-image{object-fit:cover;border-radius:50%;width:32px;height:32px}.whoo-widget-launcher-icon-image[hidden]{display:none}.whoo-widget-panel{bottom:88px;left:var(--whoo-widget-inset-left,auto);right:var(--whoo-widget-inset-right,20px);background:#fff;border-radius:12px;flex-direction:column;width:360px;max-width:calc(100vw - 40px);height:480px;max-height:calc(100vh - 108px);display:flex;position:fixed;overflow:hidden;box-shadow:0 4px 16px #0003}@media (width<=400px),(height<=420px){.whoo-widget-panel{width:auto;max-width:none;height:auto;max-height:none;inset:8px}}.whoo-widget-header{border-bottom:1px solid #e5e5e5;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;max-height:50%;padding:8px 8px 8px 16px;display:flex;overflow-y:auto}.whoo-widget-header-title{color:var(--whoo-widget-ink,#111);overflow-wrap:anywhere;flex:auto;min-width:0;margin:0;font-size:15px;font-weight:600}.whoo-widget-header-actions{background:#fff;flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex;position:sticky;bottom:0}.whoo-widget-header-close,.whoo-widget-header-reset{color:var(--whoo-widget-color-text,#4f46e5);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:4px 8px;font-size:13px;display:inline-flex}.whoo-widget-header-close{width:32px;height:32px;padding:0}.whoo-widget-header-close:hover,.whoo-widget-header-reset:hover{background:#f3f4f6}.whoo-widget-message-list{flex:1;min-height:0;padding:12px;overflow-y:auto}.whoo-widget-message-list:focus-visible{outline-offset:-2px;outline:2px solid #111827;box-shadow:inset 0 0 0 4px #fff}.whoo-widget-empty-state-image{object-fit:contain;max-width:min(160px,100%);height:auto;max-height:160px;margin:8px auto 16px;display:block}@media (width<=400px),(height<=420px){.whoo-widget-empty-state-image{max-height:64px;margin:0 auto 8px}}.whoo-widget-message{overflow-wrap:anywhere;white-space:pre-line;border-radius:8px;max-width:80%;margin-bottom:8px;padding:8px 12px}.whoo-widget-list{margin:4px 0;padding-left:20px}.whoo-widget-message--user{background:var(--whoo-widget-color,#4f46e5);color:var(--whoo-widget-text-on-color,#fff);margin-left:auto}.whoo-widget-message--user a{color:inherit}.whoo-widget-message--assistant{color:var(--whoo-widget-ink,#111);background:#f0f0f0}.whoo-widget-message--assistant a{color:var(--whoo-widget-link-color,#00e)}.whoo-widget-pending{flex-wrap:wrap;align-items:center;gap:8px;min-height:1.2em;display:flex}.whoo-widget-typing{align-items:center;gap:4px;display:inline-flex}.whoo-widget-typing span{background:#6b7280;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite whoo-widget-typing-bounce}.whoo-widget-typing span:nth-child(2){animation-delay:.2s}.whoo-widget-typing span:nth-child(3){animation-delay:.4s}@keyframes whoo-widget-typing-bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.whoo-widget-typing span{animation:none}}.whoo-widget-error-banner{color:#991b1b;background:#fee2e2;padding:8px 12px;font-size:13px}.whoo-widget-composer{border-top:1px solid #e5e5e5;gap:8px;padding:12px;display:flex}.whoo-widget-composer-input{border:1px solid #6b7280;border-radius:6px;flex:1;padding:8px}.whoo-widget-composer-send{background:var(--whoo-widget-color,#4f46e5);color:var(--whoo-widget-text-on-color,#fff);cursor:pointer;border:none;border-radius:6px;padding:8px 16px}.whoo-widget-composer-send[aria-disabled=true],.whoo-widget-composer-input[aria-disabled=true]{opacity:.6;cursor:not-allowed}.whoo-widget-feedback{align-items:center;gap:6px;margin-top:4px;display:flex}.whoo-widget-feedback-buttons{gap:6px;display:flex}.whoo-widget-feedback-buttons button{cursor:pointer;color:#4b5563;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:4px;display:inline-flex}.whoo-widget-feedback-buttons button:hover:not(:disabled){color:#111;background:#0000000f}.whoo-widget-feedback-buttons button:disabled{opacity:.3;cursor:not-allowed}.whoo-widget-feedback-form{flex-direction:column;gap:6px;margin-top:6px;display:flex}.whoo-widget-feedback-textarea{box-sizing:border-box;resize:vertical;border:1px solid #6b7280;border-radius:6px;width:100%;padding:6px;font-size:12px}.whoo-widget-feedback-select{border:1px solid #6b7280;border-radius:6px;min-height:24px;padding:4px;font-size:12px}.whoo-widget-feedback-form-buttons{gap:6px;display:flex}.whoo-widget-feedback-submit{background:var(--whoo-widget-color,#4f46e5);color:var(--whoo-widget-text-on-color,#fff);cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px}.whoo-widget-feedback-cancel{color:#111;cursor:pointer;background:#fff;border:1px solid #6b7280;border-radius:6px;padding:8px 16px;font-size:13px}.whoo-widget-feedback-submitted{color:#4b5563;margin-top:4px;font-size:12px}.whoo-widget-feedback-error{color:#991b1b;font-size:12px}.whoo-widget-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #111827;box-shadow:0 0 0 4px #fff}@media (forced-colors:active){.whoo-widget-launcher,.whoo-widget-header-close,.whoo-widget-header-reset,.whoo-widget-composer-send,.whoo-widget-feedback-submit,.whoo-widget-feedback-buttons button{border:1px solid buttontext}.whoo-widget-panel{box-sizing:border-box;border:1px solid canvastext}}`;function Zt(e){let t=document.createElement(`div`);t.id=`whoo-aiden-widget-host`,t.style.position=`relative`,t.style.zIndex=String(r(e.zIndex));let n=t.attachShadow({mode:`open`}),i=document.createElement(`style`);i.textContent=Xt,n.appendChild(i);let a=document.createElement(`div`);n.appendChild(a),Gt(a,e);let o=new Yt(e),s=$(e.color)!==null,c=null,l=``;return o.subscribe(t=>{!s&&t.primaryColor&&t.primaryColor!==c&&(c=t.primaryColor,Ht(a,t.primaryColor,e.color));let n=`${t.inkColor}|${t.accentColor}`;(t.inkColor||t.accentColor)&&n!==l&&(l=n,Ut(a,{inkColor:$(e.inkColor)?e.inkColor:t.inkColor,accentColor:$(e.accentColor)?e.accentColor:t.accentColor}))}),o.init(),ge(H(ot,{controller:o}),a),document.body.appendChild(t),{unmount(){ge(null,a),t.remove()}}}function Qt(e){return o(e),Zt(e)}return e.init=Qt,e})({});
10
+ `)}}}function ft(e){return typeof e.error==`string`?{type:`error`,error:e.error,conversationId:e.conversation_id}:e.done===!0?{type:`done`,conversationId:e.conversation_id,messageId:e.message_id??null}:typeof e.delta==`string`?e.verbatim===!0?{type:`delta`,delta:e.delta,verbatim:!0}:{type:`delta`,delta:e.delta}:{type:`conversation_id`,conversationId:e.conversation_id}}function pt(e,t){if(e!=null&&e!==``){if(typeof e==`string`)try{let t=new URL(e);if(t.protocol===`https:`||t.protocol===`data:`&&t.pathname.toLowerCase().startsWith(`image/`))return e}catch{}console.warn(`whoo-aiden-widget: ignoring \`${t}\` -- only https: and data:image/ URLs are allowed.`)}}function mt(e){return Ge(e.replace(/\r\n?/g,`
11
+ `)).map(e=>{switch(e.type){case`bold`:case`italic`:return mt(e.value);case`link`:return e.text;default:return e.value}}).join(``)}var ht=40,gt=120;function _t(e){let t=[];for(let n of Ge(e))if(n.type===`text`){let e=n.value.split(/(\s+)/),r=n.start;for(let n of e)r+=n.length,n.trim().length>0&&t.push(r)}else t.push(n.end);return t}function vt(e){let t=null;return e?.addEventListener(`abort`,()=>{t?.()},{once:!0}),function(e){return new Promise(n=>{let r=setTimeout(()=>{t=null,n()},e);t=()=>{clearTimeout(r),t=null,n()}})}}async function yt(e,t,n){let r=n?.wordIntervalMs??ht,i=n?.tokenIntervalMs??gt,a=n?.signal,o=Ge(e),s=new Set(o.filter(e=>e.type!==`text`).map(e=>e.end)),c=vt(a),l=``;for(let n of _t(e))if(a?.aborted||(l=e.slice(0,n),t(l),await c(s.has(n)?i:r),a?.aborted))return;l!==e&&t(e)}function bt(e,t=Date.now()){let n=e.split(`.`);if(n.length!==3||n.some(e=>e===``))return!1;let r=n[1];try{let e=r.replace(/-/g,`+`).replace(/_/g,`/`),n=JSON.parse(atob(e.padEnd(Math.ceil(e.length/4)*4,`=`)))?.exp;return typeof n==`number`&&Number.isFinite(n)&&n*1e3<=t}catch{return!1}}function xt(e){return`whoo-aiden-widget:conversation:${e}`}function St(e){try{return window.sessionStorage.getItem(xt(e))}catch{return null}}function Ct(e,t){try{window.sessionStorage.setItem(xt(e),t)}catch{}}function wt(e){try{window.sessionStorage.removeItem(xt(e))}catch{}}var Tt=/^(inherit|initial|unset|revert|revert-layer)$|\bcurrentcolor\b|\b(var|env|attr|light-dark)\(/i;function Et(e){if(Tt.test(e.trim()))return null;let t=document.createElement(`div`);if(t.style.color=e,t.style.color===``)return null;let n=document.createElement(`div`);n.attachShadow({mode:`open`}).appendChild(t),document.body.appendChild(n);let r=getComputedStyle(t).color;n.remove();let i=r.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?/);if(!i)return null;let a=i[4]===void 0?1:Number(i[4]);return{rgb:[Number(i[1]),Number(i[2]),Number(i[3])].map(e=>Math.round(e*a+255*(1-a))),translucent:a<1}}function Dt(e){return Et(e)?.rgb??null}function Q([e,t,n]){let r=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4};return .2126*r(e)+.7152*r(t)+.0722*r(n)}function Ot(e,t){let n=Math.max(e,t),r=Math.min(e,t);return(n+.05)/(r+.05)}function kt(e){let t=Dt(e);if(!t)return console.warn(`[whoo-aiden-widget] Could not parse color "${e}" for contrast calculation; defaulting to white text.`),`#ffffff`;let n=Q(t);return Ot(n,Q([0,0,0]))>=Ot(n,Q([255,255,255]))?`#000000`:`#ffffff`}var At=`#4f46e5`,jt=`#ffffff`,Mt=`#f0f0f0`,Nt=`#f3f4f6`,Pt=4.5;function Ft([e,t,n]){return`#${[e,t,n].map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function It(e,t=jt){let n=Dt(e),r=Dt(t);if(!n||!r)return At;let i=Q(r),a=e=>Ot(Q(e),i)>=Pt;if(a(n))return Ft(n);for(let e=.99;e>0;e-=.01){let t=n.map(t=>Math.round(t*e));if(a(t))return Ft(t)}return`#000000`}var Lt=`#111111`,Rt=`#0000ee`;function $(e){if(typeof e!=`string`||!e)return null;let t=Et(e);return t?Ft(t.rgb):null}function zt({color:e,inkColor:t,accentColor:n}){let r=$(e),i=r??At,a=It(i,Nt),o=$(t),s=o?It(o,Mt):Lt,c=$(n),l=c?It(c,Mt):Rt;return{primary:i,textOnPrimary:kt(i),primaryAsText:a,ink:s,link:l,adjusted:{primary:r!==null&&a!==i,ink:o!==null&&s!==o,link:c!==null&&l!==c}}}function Bt(e){return typeof e==`string`?`"${e}"`:`a ${typeof e} value`}function Vt(e,t,n=At){let r=t;$(t)===null&&(console.warn(`[whoo-aiden-widget] Could not use ${Bt(t)} as the theme color; falling back to ${Bt(n)}.`),r=n);let i=zt({color:r});e.style.setProperty(`--whoo-widget-color`,i.primary),e.style.setProperty(`--whoo-widget-text-on-color`,i.textOnPrimary),e.style.setProperty(`--whoo-widget-color-text`,i.primaryAsText)}function Ht(e,{inkColor:t,accentColor:n}){let r=zt({inkColor:t,accentColor:n});e.style.setProperty(`--whoo-widget-ink`,r.ink),e.style.setProperty(`--whoo-widget-link-color`,r.link)}function Ut(e,t){e&&$(e)===null&&console.warn(`[whoo-aiden-widget] Could not use ${Bt(e)} as the ${t}; using the default.`)}function Wt(e,t){Vt(e,t.color??At),Ut(t.inkColor,`ink color`),Ut(t.accentColor,`accent color`),Ht(e,{inkColor:t.inkColor,accentColor:t.accentColor});let n=t.position===`bottom-left`;e.style.setProperty(`--whoo-widget-inset-left`,n?`20px`:`auto`),e.style.setProperty(`--whoo-widget-inset-right`,n?`auto`:`20px`)}var Gt=8e3,Kt=3e3;function qt(e,t){return new Promise(n=>{let r=setTimeout(n,t);e.then(()=>{clearTimeout(r),n()})})}var Jt=class{config;state;listeners=new Set;sessionToken=null;conversationId=null;storageIdentifier;activeRequestController=null;slowResponseTimer=null;prefersReducedMotion;launcherIconUrl;emptyStateImageUrl;emptyStateImageAlt;showFeedback;constructor(e){this.config=e,this.launcherIconUrl=pt(e.launcherIconUrl,`launcherIconUrl`),this.emptyStateImageUrl=pt(e.emptyStateImageUrl,`emptyStateImageUrl`),this.emptyStateImageAlt=typeof e.emptyStateImageAlt==`string`?e.emptyStateImageAlt.trim():``,this.showFeedback=e.showFeedback===!0,this.storageIdentifier=e.publishableKey??`session-token-mode`,this.prefersReducedMotion=typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,this.state={isOpen:!1,messages:[],isStreaming:!1,initError:null,isInitializing:!1,runtimeError:null,messageFeedback:{},primaryColor:null,agentName:null,accentColor:null,inkColor:null,announcement:null,isSlowResponse:!1,draft:``}}getState(){return this.state}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}clearSlowResponse(){this.slowResponseTimer!==null&&(clearTimeout(this.slowResponseTimer),this.slowResponseTimer=null),this.state.isSlowResponse&&this.setState({isSlowResponse:!1})}setState(e){this.state={...this.state,...e};for(let e of this.listeners)e(this.state)}async init(){this.setState({isInitializing:!0});try{await this.start()}finally{this.setState({isInitializing:!1})}}async start(){let e=this.config.apiBaseUrl??`https://api.aidenvoice.com`;try{if(this.config.sessionToken){if(bt(this.config.sessionToken))throw Error(`The sessionToken has expired.`);this.sessionToken=this.config.sessionToken}else if(this.config.publishableKey){let{token:t,primaryColor:n,name:r,accentColor:i,inkColor:a}=await st(e,this.config.publishableKey);this.sessionToken=t,this.setState({primaryColor:n,agentName:r,accentColor:i,inkColor:a})}else throw Error(`WidgetConfig must include exactly one of publishableKey or sessionToken`)}catch(e){console.error(`[whoo-aiden-widget] initialization failed:`,e),this.setState({initError:e instanceof Error?e.message:String(e)});return}this.conversationId=St(this.storageIdentifier),this.config.sessionToken&&await qt(this.loadBranding(e,this.config.sessionToken),Kt)}async loadBranding(e,t){try{let n=this.config;if($(n.color)&&$(n.inkColor)&&$(n.accentColor)&&a(n.name))return;let{primaryColor:r,name:i,accentColor:o,inkColor:s}=await lt(e,t);this.setState({primaryColor:r,agentName:i,accentColor:o,inkColor:s})}catch(e){let t=e?.status;(t===401||t===403)&&(console.error(`[whoo-aiden-widget] initialization failed:`,e),this.setState({initError:e instanceof Error?e.message:String(e)}))}}open(){this.setState({isOpen:!0})}resetConversation(){this.activeRequestController?.abort(),this.activeRequestController=null,this.clearSlowResponse(),this.conversationId=null,wt(this.storageIdentifier),this.setState({messages:[],messageFeedback:{},runtimeError:null,isStreaming:!1,announcement:`Conversation cleared`})}setDraft(e){this.setState({draft:e})}close(){this.activeRequestController?.abort(),this.activeRequestController=null,this.clearSlowResponse(),this.setState({isOpen:!1})}async sendMessage(e){if(!this.sessionToken)return;let t=this.config.apiBaseUrl??`https://api.aidenvoice.com`,n={role:`user`,content:e,id:null},r={role:`assistant`,content:``,id:null};this.setState({messages:[...this.state.messages,n,r],isStreaming:!0,runtimeError:null,announcement:null});let i=e=>{let t=[...this.state.messages];t[t.length-1]={...t[t.length-1],content:e},this.setState({messages:t})};this.activeRequestController=new AbortController;let{signal:a}=this.activeRequestController;this.slowResponseTimer=setTimeout(()=>{this.slowResponseTimer=null,this.setState({isSlowResponse:!0})},Gt);let o=()=>{this.setState({runtimeError:`Something went wrong, please try again.`,...this.state.draft===``?{draft:e}:{}})},s=``;try{for await(let n of dt(t,this.sessionToken,this.conversationId,e,a))if(n.type===`conversation_id`)this.conversationId=n.conversationId,Ct(this.storageIdentifier,n.conversationId);else if(n.type===`delta`)this.clearSlowResponse(),n.verbatim&&!this.prefersReducedMotion?(await yt(n.delta,e=>i(e),{signal:a}),s=n.delta):n.verbatim?(s=n.delta,i(s)):(s+=n.delta,i(s));else if(n.type===`done`){if(n.conversationId&&(this.conversationId=n.conversationId,Ct(this.storageIdentifier,n.conversationId)),n.messageId){let e=[...this.state.messages];e[e.length-1]={...e[e.length-1],id:n.messageId},this.setState({messages:e})}this.setState({announcement:mt(s)})}else if(n.type===`error`){console.error(`[whoo-aiden-widget] chat error:`,n.error),o(),this.activeRequestController?.abort();break}}catch(e){e?.name===`AbortError`||(console.error(`[whoo-aiden-widget] chat request failed:`,e),o())}finally{this.activeRequestController=null,this.clearSlowResponse(),this.setState({isStreaming:!1})}}expandFeedback(e){let{correction:t,category:n}=this.state.messageFeedback[e]??{};this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{status:`expanded`,correction:t,category:n}}})}setFeedbackDraft(e,t,n){this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{...this.state.messageFeedback[e],correction:t,category:n}}})}cancelFeedback(e){this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{status:`idle`}}})}async submitFeedback(e,t,n,r){if(!this.sessionToken)return;let i=this.config.apiBaseUrl??`https://api.aidenvoice.com`;this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{status:`submitting`,rating:t}}});try{await ut(i,this.sessionToken,{messageId:e,rating:t,correction:n,category:r}),this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{status:`submitted`,rating:t}}})}catch(i){console.error(`[whoo-aiden-widget] feedback submission failed:`,i),this.setState({messageFeedback:{...this.state.messageFeedback,[e]:{status:`error`,rating:t,correction:n,category:r}}})}}},Yt=`:host,.whoo-widget-root{all:initial;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.whoo-widget-launcher{bottom:20px;left:var(--whoo-widget-inset-left,auto);right:var(--whoo-widget-inset-right,20px);background:var(--whoo-widget-color,#4f46e5);width:56px;height:56px;color:var(--whoo-widget-text-on-color,#fff);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:24px;display:flex;position:fixed;box-shadow:0 2px 8px #0003}.whoo-widget-launcher:focus-visible{box-shadow:0 2px 8px #0003,0 0 0 4px #fff}.whoo-widget-launcher svg{display:block}.whoo-widget-launcher-icon-image{object-fit:cover;border-radius:50%;width:32px;height:32px}.whoo-widget-launcher-icon-image[hidden]{display:none}.whoo-widget-panel{bottom:88px;left:var(--whoo-widget-inset-left,auto);right:var(--whoo-widget-inset-right,20px);background:#fff;border-radius:12px;flex-direction:column;width:360px;max-width:calc(100vw - 40px);height:480px;max-height:calc(100vh - 108px);display:flex;position:fixed;overflow:hidden;box-shadow:0 4px 16px #0003}@media (width<=400px),(height<=420px){.whoo-widget-panel{width:auto;max-width:none;height:auto;max-height:none;inset:8px}}.whoo-widget-header{border-bottom:1px solid #e5e5e5;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;max-height:50%;padding:8px 8px 8px 16px;display:flex;overflow-y:auto}.whoo-widget-header-title{color:var(--whoo-widget-ink,#111);overflow-wrap:anywhere;flex:auto;min-width:0;margin:0;font-size:15px;font-weight:600}.whoo-widget-header-actions{background:#fff;flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex;position:sticky;bottom:0}.whoo-widget-header-close,.whoo-widget-header-reset{color:var(--whoo-widget-color-text,#4f46e5);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:4px 8px;font-size:13px;display:inline-flex}.whoo-widget-header-close{width:32px;height:32px;padding:0}.whoo-widget-header-close:hover,.whoo-widget-header-reset:hover{background:#f3f4f6}.whoo-widget-message-list{flex:1;min-height:0;padding:12px;overflow-y:auto}.whoo-widget-message-list:focus-visible{outline-offset:-2px;outline:2px solid #111827;box-shadow:inset 0 0 0 4px #fff}.whoo-widget-empty-state-image{object-fit:contain;max-width:min(160px,100%);height:auto;max-height:160px;margin:8px auto 16px;display:block}@media (width<=400px),(height<=420px){.whoo-widget-empty-state-image{max-height:64px;margin:0 auto 8px}}.whoo-widget-message{overflow-wrap:anywhere;white-space:pre-line;border-radius:8px;max-width:80%;margin-bottom:8px;padding:8px 12px}.whoo-widget-list{margin:4px 0;padding-left:20px}.whoo-widget-message--user{background:var(--whoo-widget-color,#4f46e5);color:var(--whoo-widget-text-on-color,#fff);margin-left:auto}.whoo-widget-message--user a{color:inherit}.whoo-widget-message--assistant{color:var(--whoo-widget-ink,#111);background:#f0f0f0}.whoo-widget-message--assistant a{color:var(--whoo-widget-link-color,#00e)}.whoo-widget-pending{flex-wrap:wrap;align-items:center;gap:8px;min-height:1.2em;display:flex}.whoo-widget-typing{align-items:center;gap:4px;display:inline-flex}.whoo-widget-typing span{background:#6b7280;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite whoo-widget-typing-bounce}.whoo-widget-typing span:nth-child(2){animation-delay:.2s}.whoo-widget-typing span:nth-child(3){animation-delay:.4s}@keyframes whoo-widget-typing-bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.whoo-widget-typing span{animation:none}}.whoo-widget-error-banner{color:#991b1b;background:#fee2e2;padding:8px 12px;font-size:13px}.whoo-widget-composer{border-top:1px solid #e5e5e5;gap:8px;padding:12px;display:flex}.whoo-widget-composer-input{border:1px solid #6b7280;border-radius:6px;flex:1;padding:8px}.whoo-widget-composer-send{background:var(--whoo-widget-color,#4f46e5);color:var(--whoo-widget-text-on-color,#fff);cursor:pointer;border:none;border-radius:6px;padding:8px 16px}.whoo-widget-composer-send[aria-disabled=true],.whoo-widget-composer-input[aria-disabled=true]{opacity:.6;cursor:not-allowed}.whoo-widget-feedback{align-items:center;gap:6px;margin-top:4px;display:flex}.whoo-widget-feedback-buttons{gap:6px;display:flex}.whoo-widget-feedback-buttons button{cursor:pointer;color:#4b5563;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:4px;display:inline-flex}.whoo-widget-feedback-buttons button:hover:not(:disabled){color:#111;background:#0000000f}.whoo-widget-feedback-buttons button:disabled{opacity:.3;cursor:not-allowed}.whoo-widget-feedback-form{flex-direction:column;gap:6px;margin-top:6px;display:flex}.whoo-widget-feedback-textarea{box-sizing:border-box;resize:vertical;border:1px solid #6b7280;border-radius:6px;width:100%;padding:6px;font-size:12px}.whoo-widget-feedback-select{border:1px solid #6b7280;border-radius:6px;min-height:24px;padding:4px;font-size:12px}.whoo-widget-feedback-form-buttons{gap:6px;display:flex}.whoo-widget-feedback-submit{background:var(--whoo-widget-color,#4f46e5);color:var(--whoo-widget-text-on-color,#fff);cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px}.whoo-widget-feedback-cancel{color:#111;cursor:pointer;background:#fff;border:1px solid #6b7280;border-radius:6px;padding:8px 16px;font-size:13px}.whoo-widget-feedback-submitted{color:#4b5563;margin-top:4px;font-size:12px}.whoo-widget-feedback-error{color:#991b1b;font-size:12px}.whoo-widget-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #111827;box-shadow:0 0 0 4px #fff}@media (forced-colors:active){.whoo-widget-launcher,.whoo-widget-header-close,.whoo-widget-header-reset,.whoo-widget-composer-send,.whoo-widget-feedback-submit,.whoo-widget-feedback-buttons button{border:1px solid buttontext}.whoo-widget-panel{box-sizing:border-box;border:1px solid canvastext}}`;function Xt(e){let t=document.createElement(`div`);t.id=`whoo-aiden-widget-host`,t.style.position=`relative`,t.style.zIndex=String(r(e.zIndex));let n=t.attachShadow({mode:`open`}),i=document.createElement(`style`);i.textContent=Yt,n.appendChild(i);let a=document.createElement(`div`);n.appendChild(a),Wt(a,e);let o=new Jt(e),s=$(e.color)!==null,c=null,l=``;return o.subscribe(t=>{!s&&t.primaryColor&&t.primaryColor!==c&&(c=t.primaryColor,Vt(a,t.primaryColor,e.color));let n=`${t.inkColor}|${t.accentColor}`;(t.inkColor||t.accentColor)&&n!==l&&(l=n,Ht(a,{inkColor:$(e.inkColor)?e.inkColor:t.inkColor,accentColor:$(e.accentColor)?e.accentColor:t.accentColor}))}),o.init(),ue(W(it,{controller:o}),a),document.body.appendChild(t),{unmount(){ue(null,a),t.remove()}}}function Zt(e){return o(e),Xt(e)}return e.init=Zt,e})({});