@evelan/jexity-widget 0.19.3-canary.50 → 0.19.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/widget.js CHANGED
@@ -1,5 +1,5 @@
1
- (function(){"use strict";var Rt,_,ti,ni,Ue,ri,ii,oi,Fn,sn,At,ai,Vn,Qn,Hn,si,ln={},cn=[],Za=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,It=Array.isArray;function je(t,e){for(var n in e)t[n]=e[n];return t}function Wn(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function ge(t,e,n){var r,i,o,a={};for(o in e)o=="key"?r=e[o]:o=="ref"?i=e[o]:a[o]=e[o];if(arguments.length>2&&(a.children=arguments.length>3?Rt.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(o in t.defaultProps)a[o]===void 0&&(a[o]=t.defaultProps[o]);return Et(t,a,r,i,null)}function Et(t,e,n,r,i){var o={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++ti,__i:-1,__u:0};return i==null&&_.vnode!=null&&_.vnode(o),o}function Xa(){return{current:null}}function O(t){return t.children}function ye(t,e){this.props=t,this.context=e}function lt(t,e){if(e==null)return t.__?lt(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?lt(t):null}function es(t){if(t.__P&&t.__d){var e=t.__v,n=e.__e,r=[],i=[],o=je({},e);o.__v=e.__v+1,_.vnode&&_.vnode(o),Gn(t.__P,o,e,t.__n,t.__P.namespaceURI,32&e.__u?[n]:null,r,n??lt(e),!!(32&e.__u),i),o.__v=e.__v,o.__.__k[o.__i]=o,pi(r,o,i),e.__e=e.__=null,o.__e!=n&&li(o)}}function li(t){if((t=t.__)!=null&&t.__c!=null)return t.__e=t.__c.base=null,t.__k.some(function(e){if(e!=null&&e.__e!=null)return t.__e=t.__c.base=e.__e}),li(t)}function Kn(t){(!t.__d&&(t.__d=!0)&&Ue.push(t)&&!un.__r++||ri!=_.debounceRendering)&&((ri=_.debounceRendering)||ii)(un)}function un(){try{for(var t,e=1;Ue.length;)Ue.length>e&&Ue.sort(oi),t=Ue.shift(),e=Ue.length,es(t)}finally{Ue.length=un.__r=0}}function ci(t,e,n,r,i,o,a,l,c,u,h){var f,d,p,g,y,m,v,b=r&&r.__k||cn,x=e.length;for(c=ts(n,e,b,c,x),f=0;f<x;f++)(p=n.__k[f])!=null&&(d=p.__i!=-1&&b[p.__i]||ln,p.__i=f,m=Gn(t,p,d,i,o,a,l,c,u,h),g=p.__e,p.ref&&d.ref!=p.ref&&(d.ref&&Yn(d.ref,null,p),h.push(p.ref,p.__c||g,p)),y==null&&g!=null&&(y=g),(v=!!(4&p.__u))||d.__k===p.__k?(c=ui(p,c,t,v),v&&d.__e&&(d.__e=null)):typeof p.type=="function"&&m!==void 0?c=m:g&&(c=g.nextSibling),p.__u&=-7);return n.__e=y,c}function ts(t,e,n,r,i){var o,a,l,c,u,h=n.length,f=h,d=0;for(t.__k=new Array(i),o=0;o<i;o++)(a=e[o])!=null&&typeof a!="boolean"&&typeof a!="function"?(typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?a=t.__k[o]=Et(null,a,null,null,null):It(a)?a=t.__k[o]=Et(O,{children:a},null,null,null):a.constructor===void 0&&a.__b>0?a=t.__k[o]=Et(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):t.__k[o]=a,c=o+d,a.__=t,a.__b=t.__b+1,l=null,(u=a.__i=ns(a,n,c,f))!=-1&&(f--,(l=n[u])&&(l.__u|=2)),l==null||l.__v==null?(u==-1&&(i>h?d--:i<h&&d++),typeof a.type!="function"&&(a.__u|=4)):u!=c&&(u==c-1?d--:u==c+1?d++:(u>c?d--:d++,a.__u|=4))):t.__k[o]=null;if(f)for(o=0;o<h;o++)(l=n[o])!=null&&(2&l.__u)==0&&(l.__e==r&&(r=lt(l)),gi(l,l));return r}function ui(t,e,n,r){var i,o;if(typeof t.type=="function"){for(i=t.__k,o=0;i&&o<i.length;o++)i[o]&&(i[o].__=t,e=ui(i[o],e,n,r));return e}t.__e!=e&&(r&&(e&&t.type&&!e.parentNode&&(e=lt(t)),n.insertBefore(t.__e,e||null)),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function Se(t,e){return e=e||[],t==null||typeof t=="boolean"||(It(t)?t.some(function(n){Se(n,e)}):e.push(t)),e}function ns(t,e,n,r){var i,o,a,l=t.key,c=t.type,u=e[n],h=u!=null&&(2&u.__u)==0;if(u===null&&l==null||h&&l==u.key&&c==u.type)return n;if(r>(h?1:0)){for(i=n-1,o=n+1;i>=0||o<e.length;)if((u=e[a=i>=0?i--:o++])!=null&&(2&u.__u)==0&&l==u.key&&c==u.type)return a}return-1}function di(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||Za.test(e)?n:n+"px"}function dn(t,e,n,r,i){var o,a;e:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof r=="string"&&(t.style.cssText=r=""),r)for(e in r)n&&e in n||di(t.style,e,"");if(n)for(e in n)r&&n[e]==r[e]||di(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")o=e!=(e=e.replace(ai,"$1")),a=e.toLowerCase(),e=a in t||e=="onFocusOut"||e=="onFocusIn"?a.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+o]=n,n?r?n[At]=r[At]:(n[At]=Vn,t.addEventListener(e,o?Hn:Qn,o)):t.removeEventListener(e,o?Hn:Qn,o);else{if(i=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function hi(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e[sn]==null)e[sn]=Vn++;else if(e[sn]<n[At])return;return n(_.event?_.event(e):e)}}}function Gn(t,e,n,r,i,o,a,l,c,u){var h,f,d,p,g,y,m,v,b,x,P,S,z,W,V,le,L=e.type;if(e.constructor!==void 0)return null;128&n.__u&&(c=!!(32&n.__u),o=[l=e.__e=n.__e]),(h=_.__b)&&h(e);e:if(typeof L=="function"){f=a.length;try{if(b=e.props,x=L.prototype&&L.prototype.render,P=(h=L.contextType)&&r[h.__c],S=h?P?P.props.value:h.__:r,n.__c?v=(d=e.__c=n.__c).__=d.__E:(x?e.__c=d=new L(b,S):(e.__c=d=new ye(b,S),d.constructor=L,d.render=is),P&&P.sub(d),d.state||(d.state={}),d.__n=r,p=d.__d=!0,d.__h=[],d._sb=[]),x&&d.__s==null&&(d.__s=d.state),x&&L.getDerivedStateFromProps!=null&&(d.__s==d.state&&(d.__s=je({},d.__s)),je(d.__s,L.getDerivedStateFromProps(b,d.__s))),g=d.props,y=d.state,d.__v=e,p)x&&L.getDerivedStateFromProps==null&&d.componentWillMount!=null&&d.componentWillMount(),x&&d.componentDidMount!=null&&d.__h.push(d.componentDidMount);else{if(x&&L.getDerivedStateFromProps==null&&b!==g&&d.componentWillReceiveProps!=null&&d.componentWillReceiveProps(b,S),e.__v==n.__v||!d.__e&&d.shouldComponentUpdate!=null&&d.shouldComponentUpdate(b,d.__s,S)===!1){e.__v!=n.__v&&(d.props=b,d.state=d.__s,d.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.some(function(Q){Q&&(Q.__=e)}),cn.push.apply(d.__h,d._sb),d._sb=[],d.__h.length&&a.push(d);break e}d.componentWillUpdate!=null&&d.componentWillUpdate(b,d.__s,S),x&&d.componentDidUpdate!=null&&d.__h.push(function(){d.componentDidUpdate(g,y,m)})}if(d.context=S,d.props=b,d.__P=t,d.__e=!1,z=_.__r,W=0,x)d.state=d.__s,d.__d=!1,z&&z(e),h=d.render(d.props,d.state,d.context),cn.push.apply(d.__h,d._sb),d._sb=[];else do d.__d=!1,z&&z(e),h=d.render(d.props,d.state,d.context),d.state=d.__s;while(d.__d&&++W<25);d.state=d.__s,d.getChildContext!=null&&(r=je(je({},r),d.getChildContext())),x&&!p&&d.getSnapshotBeforeUpdate!=null&&(m=d.getSnapshotBeforeUpdate(g,y)),V=h!=null&&h.type===O&&h.key==null?fi(h.props.children):h,l=ci(t,It(V)?V:[V],e,n,r,i,o,a,l,c,u),d.base=e.__e,e.__u&=-161,d.__h.length&&a.push(d),v&&(d.__E=d.__=null)}catch(Q){if(a.length=f,e.__v=null,c||o!=null)if(Q.then){for(e.__u|=c?160:128;l&&l.nodeType==8&&l.nextSibling;)l=l.nextSibling;o!=null&&(o[o.indexOf(l)]=null),e.__e=l}else{if(o!=null)for(le=o.length;le--;)Wn(o[le]);Jn(e)}else e.__e=n.__e,!e.__k&&n.__k&&(e.__k=n.__k),Q.then||Jn(e);_.__e(Q,e,n)}}else o==null&&e.__v==n.__v?(e.__k=n.__k,e.__e=n.__e):l=e.__e=rs(n.__e,e,n,r,i,o,a,c,u);return(h=_.diffed)&&h(e),128&e.__u?void 0:l}function Jn(t){t&&(t.__c&&(t.__c.__e=!0),t.__k&&t.__k.some(Jn))}function pi(t,e,n){for(var r=0;r<n.length;r++)Yn(n[r],n[++r],n[++r]);_.__c&&_.__c(e,t),t.some(function(i){try{t=i.__h,i.__h=[],t.some(function(o){o.call(i)})}catch(o){_.__e(o,i.__v)}})}function fi(t){return typeof t!="object"||t==null||t.__b>0?t:It(t)?t.map(fi):t.constructor!==void 0?null:je({},t)}function rs(t,e,n,r,i,o,a,l,c){var u,h,f,d,p,g,y,m=n.props||ln,v=e.props,b=e.type;if(b=="svg"?i="http://www.w3.org/2000/svg":b=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),o!=null){for(u=0;u<o.length;u++)if((p=o[u])&&"setAttribute"in p==!!b&&(b?p.localName==b:p.nodeType==3)){t=p,o[u]=null;break}}if(t==null){if(b==null)return document.createTextNode(v);t=document.createElementNS(i,b,v.is&&v),l&&(_.__m&&_.__m(e,o),l=!1),o=null}if(b==null)m===v||l&&t.data==v||(t.data=v);else{if(o=b=="textarea"&&v.defaultValue!=null?null:o&&Rt.call(t.childNodes),!l&&o!=null)for(m={},u=0;u<t.attributes.length;u++)m[(p=t.attributes[u]).name]=p.value;for(u in m)p=m[u],u=="dangerouslySetInnerHTML"?f=p:u=="children"||u in v||u=="value"&&"defaultValue"in v||u=="checked"&&"defaultChecked"in v||dn(t,u,null,p,i);for(u in v)p=v[u],u=="children"?d=p:u=="dangerouslySetInnerHTML"?h=p:u=="value"?g=p:u=="checked"?y=p:l&&typeof p!="function"||m[u]===p||dn(t,u,p,m[u],i);if(h)l||f&&(h.__html==f.__html||h.__html==t.innerHTML)||(t.innerHTML=h.__html),e.__k=[];else if(f&&(t.innerHTML=""),ci(e.type=="template"?t.content:t,It(d)?d:[d],e,n,r,b=="foreignObject"?"http://www.w3.org/1999/xhtml":i,o,a,o?o[0]:n.__k&&lt(n,0),l,c),o!=null)for(u=o.length;u--;)Wn(o[u]);l&&b!="textarea"||(u="value",b=="progress"&&g==null?t.removeAttribute("value"):g!=null&&(g!==t[u]||b=="progress"&&!g||b=="option"&&g!=m[u])&&dn(t,u,g,m[u],i),u="checked",y!=null&&y!=t[u]&&dn(t,u,y,m[u],i))}return t}function Yn(t,e,n){try{if(typeof t=="function"){var r=typeof t.__u=="function";r&&t.__u(),r&&e==null||(t.__u=t(e))}else t.current=e}catch(i){_.__e(i,n)}}function gi(t,e,n){var r,i;if(_.unmount&&_.unmount(t),(r=t.ref)&&(r.current&&r.current!=t.__e||Yn(r,null,e)),(r=t.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(o){_.__e(o,e)}r.base=r.__P=r.__n=null}if(r=t.__k)for(i=0;i<r.length;i++)r[i]&&gi(r[i],e,n||typeof t.type!="function");n||Wn(t.__e),t.__c=t.__=t.__e=void 0}function is(t,e,n){return this.constructor(t,n)}function Ke(t,e,n){var r,i,o,a;e==document&&(e=document.documentElement),_.__&&_.__(t,e),i=(r=typeof n=="function")?null:n&&n.__k||e.__k,o=[],a=[],Gn(e,t=(!r&&n||e).__k=ge(O,null,[t]),i||ln,ln,e.namespaceURI,!r&&n?[n]:i?null:e.firstChild?Rt.call(e.childNodes):null,o,!r&&n?n:i?i.__e:e.firstChild,r,a),pi(o,t,a),t.props.children=null}function mi(t,e){Ke(t,e,mi)}function os(t,e,n){var r,i,o,a,l=je({},t.props);for(o in t.type&&t.type.defaultProps&&(a=t.type.defaultProps),e)o=="key"?r=e[o]:o=="ref"?i=e[o]:l[o]=e[o]===void 0&&a!=null?a[o]:e[o];return arguments.length>2&&(l.children=arguments.length>3?Rt.call(arguments,2):n),Et(t.type,l,r||t.key,i||t.ref,null)}function as(t){function e(n){var r,i;return this.getChildContext||(r=new Set,(i={})[e.__c]=this,this.getChildContext=function(){return i},this.componentWillUnmount=function(){r=null},this.shouldComponentUpdate=function(o){this.props.value!=o.value&&r.forEach(function(a){a.__e=!0,Kn(a)})},this.sub=function(o){r.add(o);var a=o.componentWillUnmount;o.componentWillUnmount=function(){r&&r.delete(o),a&&a.call(o)}}),n.children}return e.__c="__cC"+si++,e.__=t,e.Provider=e.__l=(e.Consumer=function(n,r){return n.children(r)}).contextType=e,e}Rt=cn.slice,_={__e:function(t,e,n,r){for(var i,o,a;e=e.__;)if((i=e.__c)&&!i.__)try{if((o=i.constructor)&&o.getDerivedStateFromError!=null&&(i.setState(o.getDerivedStateFromError(t)),a=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(t,r||{}),a=i.__d),a)return i.__E=i}catch(l){t=l}throw t}},ti=0,ni=function(t){return t!=null&&t.constructor===void 0},ye.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=je({},this.state),typeof t=="function"&&(t=t(je({},n),this.props)),t&&je(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),Kn(this))},ye.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Kn(this))},ye.prototype.render=O,Ue=[],ii=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,oi=function(t,e){return t.__v.__b-e.__v.__b},un.__r=0,Fn=Math.random().toString(8),sn="__d"+Fn,At="__a"+Fn,ai=/(PointerCapture)$|Capture$/i,Vn=0,Qn=hi(!1),Hn=hi(!0),si=0;var ss=0;function s(t,e,n,r,i,o){e||(e={});var a,l,c=e;if("ref"in c)for(l in c={},e)l=="ref"?a=e[l]:c[l]=e[l];var u={type:t,props:c,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--ss,__i:-1,__u:0,__source:i,__self:o};if(typeof t=="function"&&(a=t.defaultProps))for(l in a)c[l]===void 0&&(c[l]=a[l]);return _.vnode&&_.vnode(u),u}var Fe,B,Zn,xi,ct=0,vi=[],U=_,bi=U.__b,yi=U.__r,wi=U.diffed,ki=U.__c,_i=U.unmount,ji=U.__;function ut(t,e){U.__h&&U.__h(B,t,ct||e),ct=0;var n=B.__H||(B.__H={__:[],__h:[]});return t>=n.__.length&&n.__.push({}),n.__[t]}function R(t){return ct=1,he(Ei,t)}function he(t,e,n){var r=ut(Fe++,2);if(r.t=t,!r.__c&&(r.__=[n?n(e):Ei(void 0,e),function(l){var c=r.__N?r.__N[0]:r.__[0],u=r.t(c,l);c!==u&&(r.__N=[u,r.__[1]],r.__c.setState({}))}],r.__c=B,!B.__f)){var i=function(l,c,u){if(!r.__c.__H)return!0;var h=!1,f=r.__c.props!==l;if(r.__c.__H.__.some(function(p){if(p.__N){h=!0;var g=p.__[0];p.__=p.__N,p.__N=void 0,g!==p.__[0]&&(f=!0)}}),o){var d=o.call(this,l,c,u);return h?d||f:d}return!h||f};B.__f=!0;var o=B.shouldComponentUpdate,a=B.componentWillUpdate;B.componentWillUpdate=function(l,c,u){if(this.__e){var h=o;o=void 0,i(l,c,u),o=h}a&&a.call(this,l,c,u)},B.shouldComponentUpdate=i}return r.__N||r.__}function T(t,e){var n=ut(Fe++,3);!U.__s&&er(n.__H,e)&&(n.__=t,n.u=e,B.__H.__h.push(n))}function $t(t,e){var n=ut(Fe++,4);!U.__s&&er(n.__H,e)&&(n.__=t,n.u=e,B.__h.push(n))}function me(t){return ct=5,G(function(){return{current:t}},[])}function Si(t,e,n){ct=6,$t(function(){if(typeof t=="function"){var r=t(e());return function(){t(null),r&&typeof r=="function"&&r()}}if(t)return t.current=e(),function(){return t.current=null}},n==null?n:n.concat(t))}function G(t,e){var n=ut(Fe++,7);return er(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function N(t,e){return ct=8,G(function(){return t},e)}function Pt(t){var e=B.context[t.__c],n=ut(Fe++,9);return n.c=t,e?(n.__==null&&(n.__=!0,e.sub(B)),e.props.value):t.__}function Ci(t,e){U.useDebugValue&&U.useDebugValue(e?e(t):t)}function Ti(){var t=ut(Fe++,11);if(!t.__){for(var e=B.__v;e!==null&&!e.__m&&e.__!==null;)e=e.__;var n=e.__m||(e.__m=[0,0]);t.__="P"+n[0]+"-"+n[1]++}return t.__}function Ri(){for(var t;t=vi.shift();){var e=t.__H;if(t.__P&&e)try{e.__h.some(Xn),e.__h.some(Ii),e.__h=[]}catch(n){e.__h=[],U.__e(n,t.__v)}}}U.__b=function(t){B=null,bi&&bi(t)},U.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),ji&&ji(t,e)},U.__r=function(t){yi&&yi(t),Fe=0;var e=(B=t.__c).__H;e&&(Zn===B?(e.__h=[],B.__h=[],e.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(e.__h.length&&Ri(),Fe=0)),Zn=B},U.diffed=function(t){wi&&wi(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(vi.push(e)!==1&&xi===U.requestAnimationFrame||((xi=U.requestAnimationFrame)||ls)(Ri)),e.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),Zn=B=null},U.__c=function(t,e){e.some(function(n){try{n.__h.some(Xn),n.__h=n.__h.filter(function(r){return!r.__||Ii(r)})}catch(r){e.some(function(i){i.__h&&(i.__h=[])}),e=[],U.__e(r,n.__v)}}),ki&&ki(t,e)},U.unmount=function(t){_i&&_i(t);var e,n=t.__c;n&&n.__H&&(n.__H.__.some(function(r){try{Xn(r)}catch(i){e=i}}),n.__H=void 0,e&&U.__e(e,n.__v))};var Ai=typeof requestAnimationFrame=="function";function ls(t){var e,n=function(){clearTimeout(r),Ai&&cancelAnimationFrame(e),setTimeout(t)},r=setTimeout(n,35);Ai&&(e=requestAnimationFrame(n))}function Xn(t){var e=B,n=t.__c;typeof n=="function"&&(t.__c=void 0,n()),B=e}function Ii(t){var e=B;t.__c=t.__(),B=e}function er(t,e){return!t||t.length!==e.length||e.some(function(n,r){return n!==t[r]})}function Ei(t,e){return typeof e=="function"?e(t):e}function $i(t,e){for(var n in e)t[n]=e[n];return t}function tr(t,e){for(var n in t)if(n!=="__source"&&!(n in e))return!0;for(var r in e)if(r!=="__source"&&t[r]!==e[r])return!0;return!1}function Pi(t,e){var n=e(),r=R({t:{__:n,u:e}}),i=r[0].t,o=r[1];return $t(function(){i.__=n,i.u=e,nr(i)&&o({t:i})},[t,n,e]),T(function(){return nr(i)&&o({t:i}),t(function(){nr(i)&&o({t:i})})},[t]),n}function nr(t){try{return!((e=t.__)===(n=t.u())&&(e!==0||1/e==1/n)||e!=e&&n!=n)}catch{return!0}var e,n}function Mi(t){t()}function qi(t){return t}function Ni(){return[!1,Mi]}var Li=$t;function rr(t,e){this.props=t,this.context=e}function cs(t,e){function n(i){var o=this.props.ref;return o!=i.ref&&o&&(typeof o=="function"?o(null):o.current=null),e?!e(this.props,i)||o!=i.ref:tr(this.props,i)}function r(i){return this.shouldComponentUpdate=n,ge(t,i)}return r.displayName="Memo("+(t.displayName||t.name)+")",r.__f=r.prototype.isReactComponent=!0,r.type=t,r}(rr.prototype=new ye).isPureReactComponent=!0,rr.prototype.shouldComponentUpdate=function(t,e){return tr(this.props,t)||tr(this.state,e)};var Oi=_.__b;_.__b=function(t){t.type&&t.type.__f&&t.ref&&(t.props.ref=t.ref,t.ref=null),Oi&&Oi(t)};var us=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function ds(t){function e(n){var r=$i({},n);return delete r.ref,t(r,n.ref||null)}return e.$$typeof=us,e.render=t,e.prototype.isReactComponent=e.__f=!0,e.displayName="ForwardRef("+(t.displayName||t.name)+")",e}var zi=function(t,e){return t==null?null:Se(Se(t).map(e))},hs={map:zi,forEach:zi,count:function(t){return t?Se(t).length:0},only:function(t){var e=Se(t);if(e.length!==1)throw"Children.only";return e[0]},toArray:Se},ps=_.__e;_.__e=function(t,e,n,r){if(t.then){for(var i,o=e;o=o.__;)if((i=o.__c)&&i.__c)return e.__e==null&&(e.__e=n.__e,e.__k=n.__k),i.__c(t,e)}ps(t,e,n,r)};var Bi=_.unmount;function Di(t,e,n){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(r){typeof r.__c=="function"&&r.__c()}),t.__c.__H=null),(t=$i({},t)).__c!=null&&(t.__c.__P===n&&(t.__c.__P=e),t.__c.__e=!0,t.__c=null),t.__k=t.__k&&t.__k.map(function(r){return Di(r,e,n)})),t}function Ui(t,e,n){return t&&n&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(r){return Ui(r,e,n)}),t.__c&&t.__c.__P===e&&(t.__e&&n.appendChild(t.__e),t.__c.__e=!0,t.__c.__P=n)),t}function hn(){this.__u=0,this.o=null,this.__b=null}function Fi(t){var e=t.__&&t.__.__c;return e&&e.__a&&e.__a(t)}function fs(t){var e,n,r,i=null;function o(a){if(e||(e=t()).then(function(l){l&&(i=l.default||l),r=!0},function(l){n=l,r=!0}),n)throw n;if(!r)throw e;return i?ge(i,a):null}return o.displayName="Lazy",o.__f=!0,o}function Mt(){this.i=null,this.l=null}_.unmount=function(t){var e=t.__c;e&&(e.__z=!0),e&&e.__R&&e.__R(),e&&32&t.__u&&(t.type=null),Bi&&Bi(t)},(hn.prototype=new ye).__c=function(t,e){var n=e.__c,r=this;r.o==null&&(r.o=[]),r.o.push(n);var i=Fi(r.__v),o=!1,a=function(){o||r.__z||(o=!0,n.__R=null,i?i(c):c())};n.__R=a;var l=n.__P;n.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var u=r.state.__a;r.__v.__k[0]=Ui(u,u.__c.__P,u.__c.__O)}var h;for(r.setState({__a:r.__b=null});h=r.o.pop();)h.__P=l,h.forceUpdate()}};r.__u++||32&e.__u||r.setState({__a:r.__b=r.__v.__k[0]}),t.then(a,a)},hn.prototype.componentWillUnmount=function(){this.o=[]},hn.prototype.render=function(t,e){var n=this.__v;if(!n.__m){for(var r=n;r.__;)r=r.__;r=r.__m||(r.__m=[0,0]),n.__m=[r[1]++,0]}if(this.__b){if(n.__k){var i=document.createElement("div"),o=n.__k[0].__c;n.__k[0]=Di(this.__b,i,o.__O=o.__P)}this.__b=null}var a=e.__a&&ge(O,null,t.fallback);return a&&(a.__u&=-33),[ge(O,null,e.__a?null:t.children),a]};var Vi=function(t,e,n){if(++n[1]===n[0]&&t.l.delete(e),t.props.revealOrder&&(t.props.revealOrder[0]!=="t"||!t.l.size))for(n=t.i;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;t.i=n=n[2]}};function gs(t){return this.getChildContext=function(){return t.context},t.children}function ms(t){var e=this,n=t.v;if(e.componentWillUnmount=function(){Ke(null,e.h),e.h=null,e.v=null},e.v&&e.v!==n&&e.componentWillUnmount(),!e.h){for(var r=e.__v;r!==null&&!r.__m&&r.__!==null;)r=r.__;e.v=n,e.h={nodeType:1,parentNode:n,childNodes:[],__k:{__m:r.__m},contains:function(){return!0},namespaceURI:n.namespaceURI,insertBefore:function(i,o){this.childNodes.push(i),e.v.insertBefore(i,o)},removeChild:function(i){this.childNodes.splice(this.childNodes.indexOf(i)>>>1,1),e.v.removeChild(i)}}}Ke(ge(gs,{context:e.context},t.__v),e.h)}function xs(t,e){var n=ge(ms,{__v:t,v:e});return n.containerInfo=e,n}(Mt.prototype=new ye).__a=function(t){var e=this,n=Fi(e.__v),r=e.l.get(t);return r[0]++,function(i){var o=function(){e.props.revealOrder?(r.push(i),Vi(e,t,r)):i()};n?n(o):o()}},Mt.prototype.render=function(t){this.i=null,this.l=new Map;var e=Se(t.children);t.revealOrder&&t.revealOrder[0]==="b"&&e.reverse();for(var n=e.length;n--;)this.l.set(e[n],this.i=[1,0,this.i]);return t.children},Mt.prototype.componentDidUpdate=Mt.prototype.componentDidMount=function(){var t=this;this.l.forEach(function(e,n){Vi(t,n,e)})};var Qi=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,vs=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,bs=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,ys=/[A-Z0-9]/g,ws=typeof document<"u",ks=function(t){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(t)};function _s(t,e,n){return e.__k==null&&(e.textContent=""),Ke(t,e),typeof n=="function"&&n(),t?t.__c:null}function js(t,e,n){return mi(t,e),typeof n=="function"&&n(),t?t.__c:null}ye.prototype.isReactComponent=!0,["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(ye.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})});var Hi=_.event;_.event=function(t){return Hi&&(t=Hi(t)),t.persist=function(){},t.isPropagationStopped=function(){return this.cancelBubble},t.isDefaultPrevented=function(){return this.defaultPrevented},t.nativeEvent=t};var ir,Ss={configurable:!0,get:function(){return this.class}},Wi=_.vnode;_.vnode=function(t){typeof t.type=="string"&&(function(e){var n=e.props,r=e.type,i={},o=r.indexOf("-")==-1;for(var a in n){var l=n[a];if(!(a==="value"&&"defaultValue"in n&&l==null||ws&&a==="children"&&r==="noscript"||a==="class"||a==="className")){var c=a.toLowerCase();a==="defaultValue"&&"value"in n&&n.value==null?a="value":a==="download"&&l===!0?l="":c==="translate"&&l==="no"?l=!1:c[0]==="o"&&c[1]==="n"?c==="ondoubleclick"?a="ondblclick":c!=="onchange"||r!=="input"&&r!=="textarea"||ks(n.type)?c==="onfocus"?a="onfocusin":c==="onblur"?a="onfocusout":bs.test(a)&&(a=c):c=a="oninput":o&&vs.test(a)?a=a.replace(ys,"-$&").toLowerCase():l===null&&(l=void 0),c==="oninput"&&i[a=c]&&(a="oninputCapture"),i[a]=l}}r=="select"&&(i.multiple&&Array.isArray(i.value)&&(i.value=Se(n.children).forEach(function(u){u.props.selected=i.value.indexOf(u.props.value)!=-1})),i.defaultValue!=null&&(i.value=Se(n.children).forEach(function(u){u.props.selected=i.multiple?i.defaultValue.indexOf(u.props.value)!=-1:i.defaultValue==u.props.value}))),n.class&&!n.className?(i.class=n.class,Object.defineProperty(i,"className",Ss)):n.className&&(i.class=i.className=n.className),e.props=i})(t),t.$$typeof=Qi,Wi&&Wi(t)};var Ki=_.__r;_.__r=function(t){Ki&&Ki(t),ir=t.__c};var Gi=_.diffed;_.diffed=function(t){Gi&&Gi(t);var e=t.props,n=t.__e;n!=null&&t.type==="textarea"&&"value"in e&&e.value!==n.value&&(n.value=e.value==null?"":e.value),ir=null};var Cs={ReactCurrentDispatcher:{current:{readContext:function(t){return ir.__n[t.__c].props.value},useCallback:N,useContext:Pt,useDebugValue:Ci,useDeferredValue:qi,useEffect:T,useId:Ti,useImperativeHandle:Si,useInsertionEffect:Li,useLayoutEffect:$t,useMemo:G,useReducer:he,useRef:me,useState:R,useSyncExternalStore:Pi,useTransition:Ni}}};function Ts(t){return ge.bind(null,t)}function pn(t){return!!t&&t.$$typeof===Qi}function Rs(t){return pn(t)&&t.type===O}function As(t){return!!t&&typeof t.displayName=="string"&&t.displayName.indexOf("Memo(")==0}function Is(t){return pn(t)?os.apply(null,arguments):t}function Es(t){return!!t.__k&&(Ke(null,t),!0)}function $s(t){return t&&(t.base||t.nodeType===1&&t)||null}for(var Ps=function(t,e){return t(e)},Ms=function(t,e){var n=_.debounceRendering;_.debounceRendering=function(i){return i()};var r=t(e);return _.debounceRendering=n,r},qs=pn,or={useState:R,useId:Ti,useReducer:he,useEffect:T,useLayoutEffect:$t,useInsertionEffect:Li,useTransition:Ni,useDeferredValue:qi,useSyncExternalStore:Pi,startTransition:Mi,useRef:me,useImperativeHandle:Si,useMemo:G,useCallback:N,useContext:Pt,useDebugValue:Ci,version:"18.3.1",Children:hs,render:_s,hydrate:js,unmountComponentAtNode:Es,createPortal:xs,createElement:ge,createContext:as,createFactory:Ts,cloneElement:Is,createRef:Xa,Fragment:O,isValidElement:pn,isElement:qs,isFragment:Rs,isMemo:As,findDOMNode:$s,Component:ye,PureComponent:rr,memo:cs,forwardRef:ds,flushSync:Ms,unstable_batchedUpdates:Ps,StrictMode:O,Suspense:hn,SuspenseList:Mt,lazy:fs,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Cs},Ce=[],xe=[],Ns=Uint8Array,ar="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",dt=0,Ls=ar.length;dt<Ls;++dt)Ce[dt]=ar[dt],xe[ar.charCodeAt(dt)]=dt;xe[45]=62,xe[95]=63;function Os(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function zs(t,e,n){return(e+n)*3/4-n}function qt(t){var e,n=Os(t),r=n[0],i=n[1],o=new Ns(zs(t,r,i)),a=0,l=i>0?r-4:r,c;for(c=0;c<l;c+=4)e=xe[t.charCodeAt(c)]<<18|xe[t.charCodeAt(c+1)]<<12|xe[t.charCodeAt(c+2)]<<6|xe[t.charCodeAt(c+3)],o[a++]=e>>16&255,o[a++]=e>>8&255,o[a++]=e&255;return i===2&&(e=xe[t.charCodeAt(c)]<<2|xe[t.charCodeAt(c+1)]>>4,o[a++]=e&255),i===1&&(e=xe[t.charCodeAt(c)]<<10|xe[t.charCodeAt(c+1)]<<4|xe[t.charCodeAt(c+2)]>>2,o[a++]=e>>8&255,o[a++]=e&255),o}function Bs(t){return Ce[t>>18&63]+Ce[t>>12&63]+Ce[t>>6&63]+Ce[t&63]}function Ds(t,e,n){for(var r,i=[],o=e;o<n;o+=3)r=(t[o]<<16&16711680)+(t[o+1]<<8&65280)+(t[o+2]&255),i.push(Bs(r));return i.join("")}function Nt(t){for(var e,n=t.length,r=n%3,i=[],o=16383,a=0,l=n-r;a<l;a+=o)i.push(Ds(t,a,a+o>l?l:a+o));return r===1?(e=t[n-1],i.push(Ce[e>>2]+Ce[e<<4&63]+"==")):r===2&&(e=(t[n-2]<<8)+t[n-1],i.push(Ce[e>>10]+Ce[e>>4&63]+Ce[e<<2&63]+"=")),i.join("")}function qe(t){if(t===void 0)return{};if(!Ji(t))throw new Error(`The arguments to a Convex function must be an object. Received: ${t}`);return t}function Us(t){if(typeof t>"u")throw new Error("Client created with undefined deployment address. If you used an environment variable, check that it's set.");if(typeof t!="string")throw new Error(`Invalid deployment address: found ${t}".`);if(!(t.startsWith("http:")||t.startsWith("https:")))throw new Error(`Invalid deployment address: Must start with "https://" or "http://". Found "${t}".`);try{new URL(t)}catch{throw new Error(`Invalid deployment address: "${t}" is not a valid URL. If you believe this URL is correct, use the \`skipConvexDeploymentUrlCheck\` option to bypass this.`)}if(t.endsWith(".convex.site"))throw new Error(`Invalid deployment address: "${t}" ends with .convex.site, which is used for HTTP Actions. Convex deployment URLs typically end with .convex.cloud? If you believe this URL is correct, use the \`skipConvexDeploymentUrlCheck\` option to bypass this.`)}function Ji(t){const e=typeof t=="object",n=Object.getPrototypeOf(t),r=n===null||n===Object.prototype||n?.constructor?.name==="Object";return e&&r}const Yi=!0,ht=BigInt("-9223372036854775808"),sr=BigInt("9223372036854775807"),lr=BigInt("0"),Fs=BigInt("8"),Vs=BigInt("256");function Zi(t){return Number.isNaN(t)||!Number.isFinite(t)||Object.is(t,-0)}function Qs(t){t<lr&&(t-=ht+ht);let e=t.toString(16);e.length%2===1&&(e="0"+e);const n=new Uint8Array(new ArrayBuffer(8));let r=0;for(const i of e.match(/.{2}/g).reverse())n.set([parseInt(i,16)],r++),t>>=Fs;return Nt(n)}function Hs(t){const e=qt(t);if(e.byteLength!==8)throw new Error(`Received ${e.byteLength} bytes, expected 8 for $integer`);let n=lr,r=lr;for(const i of e)n+=BigInt(i)*Vs**r,r++;return n>sr&&(n+=ht+ht),n}function Ws(t){if(t<ht||sr<t)throw new Error(`BigInt ${t} does not fit into a 64-bit signed integer.`);const e=new ArrayBuffer(8);return new DataView(e).setBigInt64(0,t,!0),Nt(new Uint8Array(e))}function Ks(t){const e=qt(t);if(e.byteLength!==8)throw new Error(`Received ${e.byteLength} bytes, expected 8 for $integer`);return new DataView(e.buffer).getBigInt64(0,!0)}const Gs=DataView.prototype.setBigInt64?Ws:Qs,Js=DataView.prototype.getBigInt64?Ks:Hs,Xi=1024;function eo(t){if(t.length>Xi)throw new Error(`Field name ${t} exceeds maximum field name length ${Xi}.`);if(t.startsWith("$"))throw new Error(`Field name ${t} starts with a '$', which is reserved.`);for(let e=0;e<t.length;e+=1){const n=t.charCodeAt(e);if(n<32||n>=127)throw new Error(`Field name ${t} has invalid character '${t[e]}': Field names can only contain non-control ASCII characters`)}}function pt(t){if(t===null||typeof t=="boolean"||typeof t=="number"||typeof t=="string")return t;if(Array.isArray(t))return t.map(r=>pt(r));if(typeof t!="object")throw new Error(`Unexpected type of ${t}`);const e=Object.entries(t);if(e.length===1){const r=e[0][0];if(r==="$bytes"){if(typeof t.$bytes!="string")throw new Error(`Malformed $bytes field on ${t}`);return qt(t.$bytes).buffer}if(r==="$integer"){if(typeof t.$integer!="string")throw new Error(`Malformed $integer field on ${t}`);return Js(t.$integer)}if(r==="$float"){if(typeof t.$float!="string")throw new Error(`Malformed $float field on ${t}`);const i=qt(t.$float);if(i.byteLength!==8)throw new Error(`Received ${i.byteLength} bytes, expected 8 for $float`);const a=new DataView(i.buffer).getFloat64(0,Yi);if(!Zi(a))throw new Error(`Float ${a} should be encoded as a number`);return a}if(r==="$set")throw new Error("Received a Set which is no longer supported as a Convex type.");if(r==="$map")throw new Error("Received a Map which is no longer supported as a Convex type.")}const n={};for(const[r,i]of Object.entries(t))eo(r),n[r]=pt(i);return n}const to=16384;function Lt(t){const e=JSON.stringify(t,(n,r)=>r===void 0?"undefined":typeof r=="bigint"?`${r.toString()}n`:r);if(e.length>to){const n="[...truncated]";let r=to-n.length;const i=e.codePointAt(r-1);return i!==void 0&&i>65535&&(r-=1),e.substring(0,r)+n}return e}function cr(t,e,n,r){if(t===void 0){const a=n&&` (present at path ${n} in original object ${Lt(e)})`;throw new Error(`undefined is not a valid Convex value${a}. To learn about Convex's supported types, see https://docs.convex.dev/using/types.`)}if(t===null)return t;if(typeof t=="bigint"){if(t<ht||sr<t)throw new Error(`BigInt ${t} does not fit into a 64-bit signed integer.`);return{$integer:Gs(t)}}if(typeof t=="number")if(Zi(t)){const a=new ArrayBuffer(8);return new DataView(a).setFloat64(0,t,Yi),{$float:Nt(new Uint8Array(a))}}else return t;if(typeof t=="boolean"||typeof t=="string")return t;if(t instanceof ArrayBuffer)return{$bytes:Nt(new Uint8Array(t))};if(Array.isArray(t))return t.map((a,l)=>cr(a,e,n+`[${l}]`));if(t instanceof Set)throw new Error(ur(n,"Set",[...t],e));if(t instanceof Map)throw new Error(ur(n,"Map",[...t],e));if(!Ji(t)){const a=t?.constructor?.name,l=a?`${a} `:"";throw new Error(ur(n,l,t,e))}const i={},o=Object.entries(t);o.sort(([a,l],[c,u])=>a===c?0:a<c?-1:1);for(const[a,l]of o)l!==void 0&&(eo(a),i[a]=cr(l,e,n+`.${a}`));return i}function ur(t,e,n,r){return t?`${e}${Lt(n)} is not a supported Convex type (present at path ${t} in original object ${Lt(r)}). To learn about Convex's supported types, see https://docs.convex.dev/using/types.`:`${e}${Lt(n)} is not a supported Convex type.`}function Te(t){return cr(t,t,"")}var Ys=Object.defineProperty,Zs=(t,e,n)=>e in t?Ys(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,dr=(t,e,n)=>Zs(t,typeof e!="symbol"?e+"":e,n),no,ro;const Xs=Symbol.for("ConvexError");class fn extends(ro=Error,no=Xs,ro){constructor(e){super(typeof e=="string"?e:Lt(e)),dr(this,"name","ConvexError"),dr(this,"data"),dr(this,no,!0),this.data=e}}const io=()=>Array.from({length:4},()=>0);io(),io();const oo="1.42.0";var el=Object.defineProperty,tl=(t,e,n)=>e in t?el(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ao=(t,e,n)=>tl(t,typeof e!="symbol"?e+"":e,n);const nl="color:rgb(0, 145, 255)";function so(t){switch(t){case"query":return"Q";case"mutation":return"M";case"action":return"A";case"any":return"?"}}class lo{constructor(e){ao(this,"_onLogLineFuncs"),ao(this,"_verbose"),this._onLogLineFuncs={},this._verbose=e.verbose}addLogLineListener(e){let n=Math.random().toString(36).substring(2,15);for(let r=0;r<10&&this._onLogLineFuncs[n]!==void 0;r++)n=Math.random().toString(36).substring(2,15);return this._onLogLineFuncs[n]=e,()=>{delete this._onLogLineFuncs[n]}}logVerbose(...e){if(this._verbose)for(const n of Object.values(this._onLogLineFuncs))n("debug",`${new Date().toISOString()}`,...e)}log(...e){for(const n of Object.values(this._onLogLineFuncs))n("info",...e)}warn(...e){for(const n of Object.values(this._onLogLineFuncs))n("warn",...e)}error(...e){for(const n of Object.values(this._onLogLineFuncs))n("error",...e)}}function co(t){const e=new lo(t);return e.addLogLineListener((n,...r)=>{switch(n){case"debug":console.debug(...r);break;case"info":console.log(...r);break;case"warn":console.warn(...r);break;case"error":console.error(...r);break;default:console.log(...r)}}),e}function uo(t){return new lo(t)}function gn(t,e,n,r,i){const o=so(n);if(typeof i=="object"&&(i=`ConvexError ${JSON.stringify(i.errorData,null,2)}`),e==="info"){const a=i.match(/^\[.*?\] /);if(a===null){t.error(`[CONVEX ${o}(${r})] Could not parse console.log`);return}const l=i.slice(1,a[0].length-2),c=i.slice(a[0].length);t.log(`%c[CONVEX ${o}(${r})] [${l}]`,nl,c)}else t.error(`[CONVEX ${o}(${r})] ${i}`)}function rl(t,e){const n=`[CONVEX FATAL ERROR] ${e}`;return t.error(n),new Error(n)}function ft(t,e,n){return`[CONVEX ${so(t)}(${e})] ${n.errorMessage}
2
- Called by client`}function hr(t,e){return e.data=t.errorData,e}function Ge(t){const e=t.split(":");let n,r;return e.length===1?(n=e[0],r="default"):(n=e.slice(0,e.length-1).join(":"),r=e[e.length-1]),n.endsWith(".js")&&(n=n.slice(0,-3)),`${n}:${r}`}function Je(t,e){return JSON.stringify({udfPath:Ge(t),args:Te(e)})}function ho(t,e,n){const{initialNumItems:r,id:i}=n;return JSON.stringify({type:"paginated",udfPath:Ge(t),args:Te(e),options:Te({initialNumItems:r,id:i})})}var il=Object.defineProperty,ol=(t,e,n)=>e in t?il(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Re=(t,e,n)=>ol(t,typeof e!="symbol"?e+"":e,n);class al{constructor(){Re(this,"nextQueryId"),Re(this,"querySetVersion"),Re(this,"querySet"),Re(this,"queryIdToToken"),Re(this,"identityVersion"),Re(this,"auth"),Re(this,"outstandingQueriesOlderThanRestart"),Re(this,"outstandingAuthOlderThanRestart"),Re(this,"paused"),Re(this,"pendingQuerySetModifications"),this.nextQueryId=0,this.querySetVersion=0,this.identityVersion=0,this.querySet=new Map,this.queryIdToToken=new Map,this.outstandingQueriesOlderThanRestart=new Set,this.outstandingAuthOlderThanRestart=!1,this.paused=!1,this.pendingQuerySetModifications=new Map}hasSyncedPastLastReconnect(){return this.outstandingQueriesOlderThanRestart.size===0&&!this.outstandingAuthOlderThanRestart}markAuthCompletion(){this.outstandingAuthOlderThanRestart=!1}subscribe(e,n,r,i){const o=Ge(e),a=Je(o,n),l=this.querySet.get(a);if(l!==void 0)return l.numSubscribers+=1,{queryToken:a,modification:null,unsubscribe:()=>this.removeSubscriber(a)};{const c=this.nextQueryId++,u={id:c,canonicalizedUdfPath:o,args:n,numSubscribers:1,journal:r,componentPath:i};this.querySet.set(a,u),this.queryIdToToken.set(c,a);const h=this.querySetVersion,f=this.querySetVersion+1,d={type:"Add",queryId:c,udfPath:o,args:[Te(n)],journal:r,componentPath:i};return this.paused?this.pendingQuerySetModifications.set(c,d):this.querySetVersion=f,{queryToken:a,modification:{type:"ModifyQuerySet",baseVersion:h,newVersion:f,modifications:[d]},unsubscribe:()=>this.removeSubscriber(a)}}}transition(e){for(const n of e.modifications)switch(n.type){case"QueryUpdated":case"QueryFailed":{this.outstandingQueriesOlderThanRestart.delete(n.queryId);const r=n.journal;if(r!==void 0){const i=this.queryIdToToken.get(n.queryId);i!==void 0&&(this.querySet.get(i).journal=r)}break}case"QueryRemoved":{this.outstandingQueriesOlderThanRestart.delete(n.queryId);break}default:throw new Error(`Invalid modification ${n.type}`)}}queryId(e,n){const r=Ge(e),i=Je(r,n),o=this.querySet.get(i);return o!==void 0?o.id:null}isCurrentOrNewerAuthVersion(e){return e>=this.identityVersion}getAuth(){return this.auth}setAuth(e){this.auth={tokenType:"User",value:e};const n=this.identityVersion;return this.paused||(this.identityVersion=n+1),{type:"Authenticate",baseVersion:n,...this.auth}}setAdminAuth(e,n){const r={tokenType:"Admin",value:e,impersonating:n};this.auth=r;const i=this.identityVersion;return this.paused||(this.identityVersion=i+1),{type:"Authenticate",baseVersion:i,...r}}clearAuth(){this.auth=void 0,this.markAuthCompletion();const e=this.identityVersion;return this.paused||(this.identityVersion=e+1),{type:"Authenticate",tokenType:"None",baseVersion:e}}hasAuth(){return!!this.auth}isNewAuth(e){return this.auth?.value!==e}queryPath(e){const n=this.queryIdToToken.get(e);return n?this.querySet.get(n).canonicalizedUdfPath:null}queryArgs(e){const n=this.queryIdToToken.get(e);return n?this.querySet.get(n).args:null}queryToken(e){return this.queryIdToToken.get(e)??null}queryJournal(e){return this.querySet.get(e)?.journal}restart(){this.unpause(),this.outstandingQueriesOlderThanRestart.clear();const e=[];for(const i of this.querySet.values()){const o={type:"Add",queryId:i.id,udfPath:i.canonicalizedUdfPath,args:[Te(i.args)],journal:i.journal,componentPath:i.componentPath};e.push(o),this.outstandingQueriesOlderThanRestart.add(i.id)}this.querySetVersion=1;const n={type:"ModifyQuerySet",baseVersion:0,newVersion:1,modifications:e};if(!this.auth)return this.identityVersion=0,[n,void 0];this.outstandingAuthOlderThanRestart=!0;const r={type:"Authenticate",baseVersion:0,...this.auth};return this.identityVersion=1,[n,r]}pause(){this.paused=!0}resume(){const e=this.pendingQuerySetModifications.size>0?{type:"ModifyQuerySet",baseVersion:this.querySetVersion,newVersion:++this.querySetVersion,modifications:Array.from(this.pendingQuerySetModifications.values())}:void 0,n=this.auth!==void 0?{type:"Authenticate",baseVersion:this.identityVersion++,...this.auth}:void 0;return this.unpause(),[e,n]}unpause(){this.paused=!1,this.pendingQuerySetModifications.clear()}removeSubscriber(e){const n=this.querySet.get(e);if(n.numSubscribers>1)return n.numSubscribers-=1,null;{this.querySet.delete(e),this.queryIdToToken.delete(n.id),this.outstandingQueriesOlderThanRestart.delete(n.id);const r=this.querySetVersion,i=this.querySetVersion+1,o={type:"Remove",queryId:n.id};return this.paused?this.pendingQuerySetModifications.has(n.id)?this.pendingQuerySetModifications.delete(n.id):this.pendingQuerySetModifications.set(n.id,o):this.querySetVersion=i,{type:"ModifyQuerySet",baseVersion:r,newVersion:i,modifications:[o]}}}}var sl=Object.defineProperty,ll=(t,e,n)=>e in t?sl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,mn=(t,e,n)=>ll(t,typeof e!="symbol"?e+"":e,n);class cl{constructor(e,n){this.logger=e,this.markConnectionStateDirty=n,mn(this,"inflightRequests"),mn(this,"requestsOlderThanRestart"),mn(this,"inflightMutationsCount",0),mn(this,"inflightActionsCount",0),this.inflightRequests=new Map,this.requestsOlderThanRestart=new Set}request(e,n){const r=new Promise(i=>{const o=n?"Requested":"NotSent";this.inflightRequests.set(e.requestId,{message:e,status:{status:o,requestedAt:new Date,onResult:i}}),e.type==="Mutation"?this.inflightMutationsCount++:e.type==="Action"&&this.inflightActionsCount++});return this.markConnectionStateDirty(),r}onResponse(e){const n=this.inflightRequests.get(e.requestId);if(n===void 0||n.status.status==="Completed")return null;const r=n.message.type==="Mutation"?"mutation":"action",i=n.message.udfPath;for(const c of e.logLines)gn(this.logger,"info",r,i,c);const o=n.status;let a,l;if(e.success)a={success:!0,logLines:e.logLines,value:pt(e.result)},l=()=>o.onResult(a);else{const c=e.result,{errorData:u}=e;gn(this.logger,"error",r,i,c),a={success:!1,errorMessage:c,errorData:u!==void 0?pt(u):void 0,logLines:e.logLines},l=()=>o.onResult(a)}return e.type==="ActionResponse"||!e.success?(l(),this.inflightRequests.delete(e.requestId),this.requestsOlderThanRestart.delete(e.requestId),n.message.type==="Action"?this.inflightActionsCount--:n.message.type==="Mutation"&&this.inflightMutationsCount--,this.markConnectionStateDirty(),{requestId:e.requestId,result:a}):(n.status={status:"Completed",result:a,ts:e.ts,onResolve:l},null)}removeCompleted(e){const n=new Map;for(const[r,i]of this.inflightRequests.entries()){const o=i.status;o.status==="Completed"&&o.ts.lessThanOrEqual(e)&&(o.onResolve(),n.set(r,o.result),i.message.type==="Mutation"?this.inflightMutationsCount--:i.message.type==="Action"&&this.inflightActionsCount--,this.inflightRequests.delete(r),this.requestsOlderThanRestart.delete(r))}return n.size>0&&this.markConnectionStateDirty(),n}restart(){this.requestsOlderThanRestart=new Set(this.inflightRequests.keys());const e=[];for(const[n,r]of this.inflightRequests){if(r.status.status==="NotSent"){r.status.status="Requested",e.push(r.message);continue}if(r.message.type==="Mutation")e.push(r.message);else if(r.message.type==="Action"){if(this.inflightRequests.delete(n),this.requestsOlderThanRestart.delete(n),this.inflightActionsCount--,r.status.status==="Completed")throw new Error("Action should never be in 'Completed' state");r.status.onResult({success:!1,errorMessage:"Connection lost while action was in flight",logLines:[]})}}return this.markConnectionStateDirty(),e}resume(){const e=[];for(const[,n]of this.inflightRequests)if(n.status.status==="NotSent"){n.status.status="Requested",e.push(n.message);continue}return e}hasIncompleteRequests(){for(const e of this.inflightRequests.values())if(e.status.status==="Requested")return!0;return!1}hasInflightRequests(){return this.inflightRequests.size>0}hasSyncedPastLastReconnect(){return this.requestsOlderThanRestart.size===0}timeOfOldestInflightRequest(){if(this.inflightRequests.size===0)return null;let e=Date.now();for(const n of this.inflightRequests.values())n.status.status!=="Completed"&&n.status.requestedAt.getTime()<e&&(e=n.status.requestedAt.getTime());return new Date(e)}inflightMutations(){return this.inflightMutationsCount}inflightActions(){return this.inflightActionsCount}}const Ot=Symbol.for("functionName"),po=Symbol.for("toReferencePath");function ul(t){return t[po]??null}function dl(t){return t.startsWith("function://")}function hl(t){let e;if(typeof t=="string")dl(t)?e={functionHandle:t}:e={name:t};else if(t[Ot])e={name:t[Ot]};else{const n=ul(t);if(!n)throw new Error(`${t} is not a functionReference`);e={reference:n}}return e}function ae(t){const e=hl(t);if(e.name===void 0)throw e.functionHandle!==void 0?new Error(`Expected function reference like "api.file.func" or "internal.file.func", but received function handle ${e.functionHandle}`):e.reference!==void 0?new Error(`Expected function reference in the current component like "api.file.func" or "internal.file.func", but received reference ${e.reference}`):new Error(`Expected function reference like "api.file.func" or "internal.file.func", but received ${JSON.stringify(e)}`);if(typeof t=="string")return t;const n=t[Ot];if(!n)throw new Error(`${t} is not a functionReference`);return n}function pr(t){return{[Ot]:t}}function fo(t=[]){const e={get(n,r){if(typeof r=="string"){const i=[...t,r];return fo(i)}else if(r===Ot){if(t.length<2){const a=["api",...t].join(".");throw new Error(`API path is expected to be of the form \`api.moduleName.functionName\`. Found: \`${a}\``)}const i=t.slice(0,-1).join("/"),o=t[t.length-1];return o==="default"?i:i+":"+o}else return r===Symbol.toStringTag?"FunctionReference":void 0}};return new Proxy({},e)}const pl=fo();var fl=Object.defineProperty,gl=(t,e,n)=>e in t?fl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,xn=(t,e,n)=>gl(t,typeof e!="symbol"?e+"":e,n);class zt{constructor(e){xn(this,"queryResults"),xn(this,"modifiedQueries"),this.queryResults=e,this.modifiedQueries=[]}getQuery(e,...n){const r=qe(n[0]),i=ae(e),o=this.queryResults.get(Je(i,r));if(o!==void 0)return zt.queryValue(o.result)}getAllQueries(e){const n=[],r=ae(e);for(const i of this.queryResults.values())i.udfPath===Ge(r)&&n.push({args:i.args,value:zt.queryValue(i.result)});return n}setQuery(e,n,r){const i=qe(n),o=ae(e),a=Je(o,i);let l;r===void 0?l=void 0:l={success:!0,value:r,logLines:[]};const c={udfPath:o,args:i,result:l};this.queryResults.set(a,c),this.modifiedQueries.push(a)}static queryValue(e){if(e!==void 0)return e.success?e.value:void 0}}class ml{constructor(){xn(this,"queryResults"),xn(this,"optimisticUpdates"),this.queryResults=new Map,this.optimisticUpdates=[]}ingestQueryResultsFromServer(e,n){this.optimisticUpdates=this.optimisticUpdates.filter(a=>!n.has(a.mutationId));const r=this.queryResults;this.queryResults=new Map(e);const i=new zt(this.queryResults);for(const a of this.optimisticUpdates)a.update(i);const o=[];for(const[a,l]of this.queryResults){const c=r.get(a);(c===void 0||c.result!==l.result)&&o.push(a)}return o}applyOptimisticUpdate(e,n){this.optimisticUpdates.push({update:e,mutationId:n});const r=new zt(this.queryResults);return e(r),r.modifiedQueries}rawQueryResult(e){const n=this.queryResults.get(e);if(n!==void 0)return n.result}queryResult(e){const n=this.queryResults.get(e);if(n===void 0)return;const r=n.result;if(r!==void 0){if(r.success)return r.value;throw r.errorData!==void 0?hr(r,new fn(ft("query",n.udfPath,r))):new Error(ft("query",n.udfPath,r))}}hasQueryResult(e){return this.queryResults.get(e)!==void 0}queryLogs(e){return this.queryResults.get(e)?.result?.logLines}}var xl=Object.defineProperty,vl=(t,e,n)=>e in t?xl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,fr=(t,e,n)=>vl(t,typeof e!="symbol"?e+"":e,n);class ce{constructor(e,n){fr(this,"low"),fr(this,"high"),fr(this,"__isUnsignedLong__"),this.low=e|0,this.high=n|0,this.__isUnsignedLong__=!0}static isLong(e){return(e&&e.__isUnsignedLong__)===!0}static fromBytesLE(e){return new ce(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24)}toBytesLE(){const e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]}static fromNumber(e){return isNaN(e)||e<0?go:e>=bl?yl:new ce(e%Bt|0,e/Bt|0)}toString(){return(BigInt(this.high)*BigInt(Bt)+BigInt(this.low)).toString()}equals(e){return ce.isLong(e)||(e=ce.fromValue(e)),this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low}notEquals(e){return!this.equals(e)}comp(e){return ce.isLong(e)||(e=ce.fromValue(e)),this.equals(e)?0:e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1}lessThanOrEqual(e){return this.comp(e)<=0}static fromValue(e){return typeof e=="number"?ce.fromNumber(e):new ce(e.low,e.high)}}const go=new ce(0,0),mo=65536,Bt=mo*mo,bl=Bt*Bt,yl=new ce(-1,-1);var wl=Object.defineProperty,kl=(t,e,n)=>e in t?wl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,vn=(t,e,n)=>kl(t,typeof e!="symbol"?e+"":e,n);class xo{constructor(e,n){vn(this,"version"),vn(this,"remoteQuerySet"),vn(this,"queryPath"),vn(this,"logger"),this.version={querySet:0,ts:ce.fromNumber(0),identity:0},this.remoteQuerySet=new Map,this.queryPath=e,this.logger=n}transition(e){const n=e.startVersion;if(this.version.querySet!==n.querySet||this.version.ts.notEquals(n.ts)||this.version.identity!==n.identity)throw new Error(`Invalid start version: ${n.ts.toString()}:${n.querySet}:${n.identity}, transitioning from ${this.version.ts.toString()}:${this.version.querySet}:${this.version.identity}`);for(const r of e.modifications)switch(r.type){case"QueryUpdated":{const i=this.queryPath(r.queryId);if(i)for(const a of r.logLines)gn(this.logger,"info","query",i,a);const o=pt(r.value??null);this.remoteQuerySet.set(r.queryId,{success:!0,value:o,logLines:r.logLines});break}case"QueryFailed":{const i=this.queryPath(r.queryId);if(i)for(const a of r.logLines)gn(this.logger,"info","query",i,a);const{errorData:o}=r;this.remoteQuerySet.set(r.queryId,{success:!1,errorMessage:r.errorMessage,errorData:o!==void 0?pt(o):void 0,logLines:r.logLines});break}case"QueryRemoved":{this.remoteQuerySet.delete(r.queryId);break}default:throw new Error(`Invalid modification ${r.type}`)}this.version=e.endVersion}remoteQueryResults(){return this.remoteQuerySet}timestamp(){return this.version.ts}}function gr(t){const e=qt(t);return ce.fromBytesLE(Array.from(e))}function _l(t){const e=new Uint8Array(t.toBytesLE());return Nt(e)}function vo(t){switch(t.type){case"FatalError":case"AuthError":case"ActionResponse":case"TransitionChunk":case"Ping":return{...t};case"MutationResponse":return t.success?{...t,ts:gr(t.ts)}:{...t};case"Transition":return{...t,startVersion:{...t.startVersion,ts:gr(t.startVersion.ts)},endVersion:{...t.endVersion,ts:gr(t.endVersion.ts)}}}}function jl(t){switch(t.type){case"Authenticate":case"ModifyQuerySet":case"Mutation":case"Action":case"Event":return{...t};case"Connect":return t.maxObservedTimestamp!==void 0?{...t,maxObservedTimestamp:_l(t.maxObservedTimestamp)}:{...t,maxObservedTimestamp:void 0}}}var Sl=Object.defineProperty,Cl=(t,e,n)=>e in t?Sl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,J=(t,e,n)=>Cl(t,typeof e!="symbol"?e+"":e,n);const Tl=1e3,Rl=1001,Al=1005,Il=4040;let bn;function gt(){return bn===void 0&&(bn=Date.now()),typeof performance>"u"||!performance.now?Date.now():Math.round(bn+performance.now())}function bo(){return`t=${Math.round((gt()-bn)/100)/10}s`}const yo={InternalServerError:{timeout:1e3},SubscriptionsWorkerFullError:{timeout:3e3},TooManyConcurrentRequests:{timeout:3e3},CommitterFullError:{timeout:3e3},AwsTooManyRequestsException:{timeout:3e3},ExecuteFullError:{timeout:3e3},SystemTimeoutError:{timeout:3e3},ExpiredInQueue:{timeout:3e3},VectorIndexesUnavailable:{timeout:1e3},SearchIndexesUnavailable:{timeout:1e3},TableSummariesUnavailable:{timeout:1e3},VectorIndexTooLarge:{timeout:3e3},SearchIndexTooLarge:{timeout:3e3},TooManyWritesInTimePeriod:{timeout:3e3}};function El(t){if(t===void 0)return"Unknown";for(const e of Object.keys(yo))if(t.startsWith(e))return e;return"Unknown"}class $l{constructor(e,n,r,i,o,a){this.markConnectionStateDirty=o,this.debug=a,J(this,"socket"),J(this,"connectionCount"),J(this,"_hasEverConnected",!1),J(this,"lastCloseReason"),J(this,"transitionChunkBuffer",null),J(this,"defaultInitialBackoff"),J(this,"maxBackoff"),J(this,"retries"),J(this,"serverInactivityThreshold"),J(this,"reconnectDueToServerInactivityTimeout"),J(this,"scheduledReconnect",null),J(this,"networkOnlineHandler",null),J(this,"pendingNetworkRecoveryInfo",null),J(this,"uri"),J(this,"onOpen"),J(this,"onResume"),J(this,"onMessage"),J(this,"webSocketConstructor"),J(this,"logger"),J(this,"onServerDisconnectError"),this.webSocketConstructor=r,this.socket={state:"disconnected"},this.connectionCount=0,this.lastCloseReason="InitialConnect",this.defaultInitialBackoff=1e3,this.maxBackoff=16e3,this.retries=0,this.serverInactivityThreshold=6e4,this.reconnectDueToServerInactivityTimeout=null,this.uri=e,this.onOpen=n.onOpen,this.onResume=n.onResume,this.onMessage=n.onMessage,this.onServerDisconnectError=n.onServerDisconnectError,this.logger=i,this.setupNetworkListener(),this.connect()}setSocketState(e){this.socket=e,this._logVerbose(`socket state changed: ${this.socket.state}, paused: ${"paused"in this.socket?this.socket.paused:void 0}`),this.markConnectionStateDirty()}setupNetworkListener(){typeof window>"u"||typeof window.addEventListener!="function"||this.networkOnlineHandler===null&&(this.networkOnlineHandler=()=>{this._logVerbose("network online event detected"),this.tryReconnectImmediately()},window.addEventListener("online",this.networkOnlineHandler),this._logVerbose("network online event listener registered"))}cleanupNetworkListener(){this.networkOnlineHandler&&typeof window<"u"&&typeof window.removeEventListener=="function"&&(window.removeEventListener("online",this.networkOnlineHandler),this.networkOnlineHandler=null,this._logVerbose("network online event listener removed"))}assembleTransition(e){if(e.partNumber<0||e.partNumber>=e.totalParts||e.totalParts===0||this.transitionChunkBuffer&&(this.transitionChunkBuffer.totalParts!==e.totalParts||this.transitionChunkBuffer.transitionId!==e.transitionId))throw this.transitionChunkBuffer=null,new Error("Invalid TransitionChunk");if(this.transitionChunkBuffer===null&&(this.transitionChunkBuffer={chunks:[],totalParts:e.totalParts,transitionId:e.transitionId}),e.partNumber!==this.transitionChunkBuffer.chunks.length){const n=this.transitionChunkBuffer.chunks.length;throw this.transitionChunkBuffer=null,new Error(`TransitionChunk received out of order: expected part ${n}, got ${e.partNumber}`)}if(this.transitionChunkBuffer.chunks.push(e.chunk),this.transitionChunkBuffer.chunks.length===e.totalParts){const n=this.transitionChunkBuffer.chunks.join("");this.transitionChunkBuffer=null;const r=vo(JSON.parse(n));if(r.type!=="Transition")throw new Error(`Expected Transition, got ${r.type} after assembling chunks`);return r}return null}connect(){if(this.socket.state==="terminated")return;if(this.socket.state!=="disconnected"&&this.socket.state!=="stopped")throw new Error("Didn't start connection from disconnected state: "+this.socket.state);const e=new this.webSocketConstructor(this.uri);this._logVerbose("constructed WebSocket"),this.setSocketState({state:"connecting",ws:e,paused:"no"}),this.resetServerInactivityTimeout(),e.onopen=()=>{if(this.logger.logVerbose("begin ws.onopen"),this.socket.state!=="connecting")throw new Error("onopen called with socket not in connecting state");if(this.setSocketState({state:"ready",ws:e,paused:this.socket.paused==="yes"?"uninitialized":"no"}),this.resetServerInactivityTimeout(),this.socket.paused==="no"&&(this._hasEverConnected=!0,this.onOpen({connectionCount:this.connectionCount,lastCloseReason:this.lastCloseReason,clientTs:gt()})),this.lastCloseReason!=="InitialConnect"&&(this.lastCloseReason?this.logger.log("WebSocket reconnected at",bo(),"after disconnect due to",this.lastCloseReason):this.logger.log("WebSocket reconnected at",bo())),this.connectionCount+=1,this.lastCloseReason=null,this.pendingNetworkRecoveryInfo!==null){const{timeSavedMs:n}=this.pendingNetworkRecoveryInfo;this.pendingNetworkRecoveryInfo=null,this.sendMessage({type:"Event",eventType:"NetworkRecoveryReconnect",event:{timeSavedMs:n}}),this.logger.log(`Network recovery reconnect saved ~${Math.round(n/1e3)}s of waiting`)}},e.onerror=n=>{this.transitionChunkBuffer=null;const r=n.message;r&&this.logger.log(`WebSocket error message: ${r}`)},e.onmessage=n=>{this.resetServerInactivityTimeout();const r=n.data.length;let i=vo(JSON.parse(n.data));if(this._logVerbose(`received ws message with type ${i.type}`),i.type==="Ping")return;if(i.type==="TransitionChunk"){const a=this.assembleTransition(i);if(!a)return;i=a,this._logVerbose(`assembled full ws message of type ${i.type}`)}this.transitionChunkBuffer!==null&&(this.transitionChunkBuffer=null,this.logger.log(`Received unexpected ${i.type} while buffering TransitionChunks`)),i.type==="Transition"&&this.reportLargeTransition({messageLength:r,transition:i}),this.onMessage(i).hasSyncedPastLastReconnect&&(this.retries=0,this.markConnectionStateDirty())},e.onclose=n=>{if(this._logVerbose("begin ws.onclose"),this.transitionChunkBuffer=null,this.lastCloseReason===null&&(this.lastCloseReason=n.reason||`closed with code ${n.code}`),n.code!==Tl&&n.code!==Rl&&n.code!==Al&&n.code!==Il){let i=`WebSocket closed with code ${n.code}`;n.reason&&(i+=`: ${n.reason}`),this.logger.log(i),this.onServerDisconnectError&&n.reason&&this.onServerDisconnectError(i)}const r=El(n.reason);this.scheduleReconnect(r)}}socketState(){return this.socket.state}sendMessage(e){const n={type:e.type,...e.type==="Authenticate"&&e.tokenType==="User"?{value:`...${e.value.slice(-7)}`}:{}};if(this.socket.state==="ready"&&this.socket.paused==="no"){const r=jl(e),i=JSON.stringify(r);let o=!1;try{this.socket.ws.send(i),o=!0}catch(a){this.logger.log(`Failed to send message on WebSocket, reconnecting: ${a}`),this.closeAndReconnect("FailedToSendMessage")}return this._logVerbose(`${o?"sent":"failed to send"} message with type ${e.type}: ${JSON.stringify(n)}`),!0}return this._logVerbose(`message not sent (socket state: ${this.socket.state}, paused: ${"paused"in this.socket?this.socket.paused:void 0}): ${JSON.stringify(n)}`),!1}resetServerInactivityTimeout(){this.socket.state!=="terminated"&&(this.reconnectDueToServerInactivityTimeout!==null&&(clearTimeout(this.reconnectDueToServerInactivityTimeout),this.reconnectDueToServerInactivityTimeout=null),this.reconnectDueToServerInactivityTimeout=setTimeout(()=>{this.closeAndReconnect("InactiveServer")},this.serverInactivityThreshold))}scheduleReconnect(e){this.scheduledReconnect&&(clearTimeout(this.scheduledReconnect.timeout),this.scheduledReconnect=null),this.socket={state:"disconnected"};const n=this.nextBackoff(e);this.markConnectionStateDirty(),this.logger.log(`Attempting reconnect in ${Math.round(n)}ms`);const r=gt(),i=setTimeout(()=>{this.scheduledReconnect?.timeout===i&&(this.scheduledReconnect=null,this.connect())},n);this.scheduledReconnect={timeout:i,scheduledAt:r,backoffMs:n}}closeAndReconnect(e){switch(this._logVerbose(`begin closeAndReconnect with reason ${e}`),this.socket.state){case"disconnected":case"terminated":case"stopped":return;case"connecting":case"ready":{this.lastCloseReason=e,this.close(),this.scheduleReconnect("client");return}default:this.socket}}close(){switch(this.transitionChunkBuffer=null,this.socket.state){case"disconnected":case"terminated":case"stopped":return Promise.resolve();case"connecting":{const e=this.socket.ws;return e.onmessage=n=>{this._logVerbose("Ignoring message received after close")},new Promise(n=>{e.onclose=()=>{this._logVerbose("Closed after connecting"),n()},e.onopen=()=>{this._logVerbose("Opened after connecting"),e.close()}})}case"ready":{this._logVerbose("ws.close called");const e=this.socket.ws;e.onmessage=r=>{this._logVerbose("Ignoring message received after close")};const n=new Promise(r=>{e.onclose=()=>{r()}});return e.close(),n}default:return this.socket,Promise.resolve()}}terminate(){switch(this.reconnectDueToServerInactivityTimeout&&clearTimeout(this.reconnectDueToServerInactivityTimeout),this.scheduledReconnect&&(clearTimeout(this.scheduledReconnect.timeout),this.scheduledReconnect=null),this.cleanupNetworkListener(),this.socket.state){case"terminated":case"stopped":case"disconnected":case"connecting":case"ready":{const e=this.close();return this.setSocketState({state:"terminated"}),e}default:throw this.socket,new Error(`Invalid websocket state: ${this.socket.state}`)}}stop(){switch(this.socket.state){case"terminated":return Promise.resolve();case"connecting":case"stopped":case"disconnected":case"ready":{this.cleanupNetworkListener();const e=this.close();return this.socket={state:"stopped"},e}default:return this.socket,Promise.resolve()}}tryRestart(){switch(this.socket.state){case"stopped":break;case"terminated":case"connecting":case"ready":case"disconnected":this.logger.logVerbose("Restart called without stopping first");return;default:this.socket}this.setupNetworkListener(),this.connect()}pause(){switch(this.socket.state){case"disconnected":case"stopped":case"terminated":return;case"connecting":case"ready":{this.socket={...this.socket,paused:"yes"};return}default:{this.socket;return}}}tryReconnectImmediately(){if(this._logVerbose("tryReconnectImmediately called"),this.socket.state!=="disconnected"){this._logVerbose(`tryReconnectImmediately called but socket state is ${this.socket.state}, no action taken`);return}let e=null;if(this.scheduledReconnect){const n=gt()-this.scheduledReconnect.scheduledAt;e=Math.max(0,this.scheduledReconnect.backoffMs-n),this._logVerbose(`would have waited ${Math.round(e)}ms more (backoff was ${Math.round(this.scheduledReconnect.backoffMs)}ms, elapsed ${Math.round(n)}ms)`),clearTimeout(this.scheduledReconnect.timeout),this.scheduledReconnect=null,this._logVerbose("canceled scheduled reconnect")}this.logger.log("Network recovery detected, reconnecting immediately"),this.pendingNetworkRecoveryInfo=e!==null?{timeSavedMs:e}:null,this.connect()}resume(){switch(this.socket.state){case"connecting":this.socket={...this.socket,paused:"no"};return;case"ready":this.socket.paused==="uninitialized"?(this.socket={...this.socket,paused:"no"},this._hasEverConnected=!0,this.onOpen({connectionCount:this.connectionCount,lastCloseReason:this.lastCloseReason,clientTs:gt()})):this.socket.paused==="yes"&&(this.socket={...this.socket,paused:"no"},this.onResume());return;case"terminated":case"stopped":case"disconnected":return;default:this.socket}this.connect()}connectionState(){return{isConnected:this.socket.state==="ready",hasEverConnected:this._hasEverConnected,connectionCount:this.connectionCount,connectionRetries:this.retries}}_logVerbose(e){this.logger.logVerbose(e)}nextBackoff(e){const r=(e==="client"?100:e==="Unknown"?this.defaultInitialBackoff:yo[e].timeout)*Math.pow(2,this.retries);this.retries+=1;const i=Math.min(r,this.maxBackoff),o=i*(Math.random()-.5);return i+o}reportLargeTransition({transition:e,messageLength:n}){if(e.clientClockSkew===void 0||e.serverTs===void 0)return;const r=gt()-e.clientClockSkew-e.serverTs/1e6,i=`${Math.round(r)}ms`,o=`${Math.round(n/1e4)/100}MB`,a=n/(r/1e3),l=`${Math.round(a/1e4)/100}MB per second`;this._logVerbose(`received ${o} transition in ${i} at ${l}`),n>2e7?this.logger.log(`received query results totaling more that 20MB (${o}) which will take a long time to download on slower connections`):r>2e4&&this.logger.log(`received query results totaling ${o} which took more than 20s to arrive (${i})`),this.debug&&this.sendMessage({type:"Event",eventType:"ClientReceivedTransition",event:{transitionTransitTime:r,messageLength:n}})}}function Pl(){return Ml()}function Ml(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}class Dt extends Error{}Dt.prototype.name="InvalidTokenError";function ql(t){return decodeURIComponent(atob(t).replace(/(.)/g,(e,n)=>{let r=n.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}function Nl(t){let e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return ql(e)}catch{return atob(e)}}function wo(t,e){if(typeof t!="string")throw new Dt("Invalid token specified: must be a string");e||(e={});const n=e.header===!0?0:1,r=t.split(".")[n];if(typeof r!="string")throw new Dt(`Invalid token specified: missing part #${n+1}`);let i;try{i=Nl(r)}catch(o){throw new Dt(`Invalid token specified: invalid base64 for part #${n+1} (${o.message})`)}try{return JSON.parse(i)}catch(o){throw new Dt(`Invalid token specified: invalid json for part #${n+1} (${o.message})`)}}var Ll=Object.defineProperty,Ol=(t,e,n)=>e in t?Ll(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,pe=(t,e,n)=>Ol(t,typeof e!="symbol"?e+"":e,n);const zl=480*60*60*1e3,ko=2;class Bl{constructor(e,n,r){pe(this,"authState",{state:"noAuth"}),pe(this,"configVersion",0),pe(this,"syncState"),pe(this,"authenticate"),pe(this,"stopSocket"),pe(this,"tryRestartSocket"),pe(this,"pauseSocket"),pe(this,"resumeSocket"),pe(this,"clearAuth"),pe(this,"logger"),pe(this,"refreshTokenLeewaySeconds"),pe(this,"lastRefreshChange"),pe(this,"tokenConfirmationAttempts",0),this.syncState=e,this.authenticate=n.authenticate,this.stopSocket=n.stopSocket,this.tryRestartSocket=n.tryRestartSocket,this.pauseSocket=n.pauseSocket,this.resumeSocket=n.resumeSocket,this.clearAuth=n.clearAuth,this.logger=r.logger,this.refreshTokenLeewaySeconds=r.refreshTokenLeewaySeconds,this.lastRefreshChange=!1}notifyRefreshChange(e){this.authState.state!=="noAuth"&&this.authState.state!=="initialRefetch"&&this.authState.config.onRefreshChange&&this.lastRefreshChange!==e&&(this.lastRefreshChange=e,this.authState.config.onRefreshChange(e))}async setConfig(e,n,r){this.resetAuthState(),this._logVerbose("pausing WS for auth token fetch"),this.pauseSocket();const i=await this.fetchTokenAndGuardAgainstRace(e,{forceRefreshToken:!1});if(i.isFromOutdatedConfig)return;const o={fetchToken:e,onAuthChange:n,onRefreshChange:r};i.value?(this.setAuthState({state:"waitingForServerConfirmationOfCachedToken",config:o,hasRetried:!1}),this.authenticate(i.value)):(this.setAuthState({state:"initialRefetch",config:o}),await this.refetchToken()),this._logVerbose("resuming WS after auth token fetch"),this.resumeSocket()}onTransition(e){if(this.syncState.isCurrentOrNewerAuthVersion(e.endVersion.identity)&&!(e.endVersion.identity<=e.startVersion.identity)){if(this._logVerbose(`auth state is ${this.authState.state} when handling transition`),this.syncState.markAuthCompletion(),this.authState.state==="waitingForServerConfirmationOfCachedToken"){this._logVerbose("server confirmed auth token is valid"),this.refetchToken(),this.authState.config.onAuthChange(!0);return}this.authState.state==="waitingForServerConfirmationOfFreshToken"&&(this._logVerbose("server confirmed new auth token is valid"),this.notifyRefreshChange(!1),this.scheduleTokenRefetch(this.authState.token),this.tokenConfirmationAttempts=0,this.authState.hadAuth||this.authState.config.onAuthChange(!0))}}onAuthError(e){if(e.authUpdateAttempted===!1&&(this.authState.state==="waitingForServerConfirmationOfFreshToken"||this.authState.state==="waitingForServerConfirmationOfCachedToken")){this._logVerbose("ignoring non-auth token expired error");return}const{baseVersion:n}=e;if(!this.syncState.isCurrentOrNewerAuthVersion(n+1)){this._logVerbose("ignoring auth error for previous auth attempt");return}this.tryToReauthenticate(e)}async tryToReauthenticate(e){if(this._logVerbose(`attempting to reauthenticate: ${e.error}`),this.authState.state==="noAuth"||this.authState.state==="waitingForServerConfirmationOfFreshToken"&&this.tokenConfirmationAttempts>=ko){this.logger.error(`Failed to authenticate: "${e.error}", check your server auth config`),this.syncState.hasAuth()&&this.syncState.clearAuth(),this.authState.state!=="noAuth"&&this.setAndReportAuthFailed(this.authState.config.onAuthChange);return}if(this.authState.state==="waitingForServerConfirmationOfFreshToken"&&(this.tokenConfirmationAttempts++,this._logVerbose(`retrying reauthentication, ${ko-this.tokenConfirmationAttempts} attempts remaining`)),this.notifyRefreshChange(!0),await this.stopSocket(),this.authState.state==="noAuth")return;const n=await this.fetchTokenAndGuardAgainstRace(this.authState.config.fetchToken,{forceRefreshToken:!0});n.isFromOutdatedConfig||(n.value&&this.syncState.isNewAuth(n.value)?(this.authenticate(n.value),this.setAuthState({state:"waitingForServerConfirmationOfFreshToken",config:this.authState.config,token:n.value,hadAuth:this.authState.state==="notRefetching"||this.authState.state==="waitingForScheduledRefetch"})):(this._logVerbose("reauthentication failed, could not fetch a new token"),this.syncState.hasAuth()&&this.syncState.clearAuth(),this.setAndReportAuthFailed(this.authState.config.onAuthChange)),this.tryRestartSocket())}async refetchToken(){if(this.authState.state==="noAuth")return;this._logVerbose("refetching auth token");const e=await this.fetchTokenAndGuardAgainstRace(this.authState.config.fetchToken,{forceRefreshToken:!0});e.isFromOutdatedConfig||(e.value?this.syncState.isNewAuth(e.value)?(this.setAuthState({state:"waitingForServerConfirmationOfFreshToken",hadAuth:this.syncState.hasAuth(),token:e.value,config:this.authState.config}),this.authenticate(e.value)):this.setAuthState({state:"notRefetching",config:this.authState.config}):(this._logVerbose("refetching token failed"),this.syncState.hasAuth()&&this.clearAuth(),this.setAndReportAuthFailed(this.authState.config.onAuthChange)),this._logVerbose("restarting WS after auth token fetch (if currently stopped)"),this.tryRestartSocket())}scheduleTokenRefetch(e){if(this.authState.state==="noAuth")return;const n=this.decodeToken(e);if(!n){this.logger.error("Auth token is not a valid JWT, cannot refetch the token");return}const{iat:r,exp:i}=n;if(!r||!i){this.logger.error("Auth token does not have required fields, cannot refetch the token");return}const o=i-r;if(o<=2){this.logger.error("Auth token does not live long enough, cannot refetch the token");return}let a=Math.min(zl,(o-this.refreshTokenLeewaySeconds)*1e3);a<=0&&(this.logger.warn(`Refetching auth token immediately, configured leeway ${this.refreshTokenLeewaySeconds}s is larger than the token's lifetime ${o}s`),a=0);const l=setTimeout(()=>{this._logVerbose("running scheduled token refetch"),this.refetchToken()},a);this.setAuthState({state:"waitingForScheduledRefetch",refetchTokenTimeoutId:l,config:this.authState.config}),this._logVerbose(`scheduled preemptive auth token refetching in ${a}ms`)}async fetchTokenAndGuardAgainstRace(e,n){const r=++this.configVersion;this._logVerbose(`fetching token with config version ${r}`);const i=await e(n);return this.configVersion!==r?(this._logVerbose(`stale config version, expected ${r}, got ${this.configVersion}`),{isFromOutdatedConfig:!0}):{isFromOutdatedConfig:!1,value:i}}stop(){this.resetAuthState(),this.configVersion++,this._logVerbose(`config version bumped to ${this.configVersion}`)}setAndReportAuthFailed(e){e(!1),this.resetAuthState()}resetAuthState(){this.notifyRefreshChange(!1),this.setAuthState({state:"noAuth"})}setAuthState(e){const n=e.state==="waitingForServerConfirmationOfFreshToken"?{hadAuth:e.hadAuth,state:e.state,token:`...${e.token.slice(-7)}`}:{state:e.state};switch(this._logVerbose(`setting auth state to ${JSON.stringify(n)}`),e.state){case"waitingForScheduledRefetch":case"notRefetching":case"noAuth":this.tokenConfirmationAttempts=0;break}this.authState.state==="waitingForScheduledRefetch"&&clearTimeout(this.authState.refetchTokenTimeoutId),this.authState=e}decodeToken(e){try{return wo(e)}catch(n){return this._logVerbose(`Error decoding token: ${n instanceof Error?n.message:"Unknown error"}`),null}}_logVerbose(e){this.logger.logVerbose(`${e} [v${this.configVersion}]`)}}const Dl=["convexClientConstructed","convexWebSocketOpen","convexFirstMessageReceived"];function Ul(t,e){const n={sessionId:e};typeof performance>"u"||!performance.mark||performance.mark(t,{detail:n})}function Fl(t){let e=t.name.slice(6);return e=e.charAt(0).toLowerCase()+e.slice(1),{name:e,startTime:t.startTime}}function Vl(t){if(typeof performance>"u"||!performance.getEntriesByName)return[];const e=[];for(const n of Dl){const r=performance.getEntriesByName(n).filter(i=>i.entryType==="mark").filter(i=>i.detail.sessionId===t);e.push(...r)}return e.map(Fl)}var Ql=Object.defineProperty,Hl=(t,e,n)=>e in t?Ql(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Y=(t,e,n)=>Hl(t,typeof e!="symbol"?e+"":e,n);class Wl{constructor(e,n,r){if(Y(this,"address"),Y(this,"state"),Y(this,"requestManager"),Y(this,"webSocketManager"),Y(this,"authenticationManager"),Y(this,"remoteQuerySet"),Y(this,"optimisticQueryResults"),Y(this,"_transitionHandlerCounter",0),Y(this,"_nextRequestId"),Y(this,"_onTransitionFns",new Map),Y(this,"_sessionId"),Y(this,"firstMessageReceived",!1),Y(this,"debug"),Y(this,"logger"),Y(this,"maxObservedTimestamp"),Y(this,"connectionStateSubscribers",new Map),Y(this,"nextConnectionStateSubscriberId",0),Y(this,"_lastPublishedConnectionState"),Y(this,"markConnectionStateDirty",()=>{Promise.resolve().then(()=>{const p=this.connectionState();if(JSON.stringify(p)!==JSON.stringify(this._lastPublishedConnectionState)){this._lastPublishedConnectionState=p;for(const g of this.connectionStateSubscribers.values())g(p)}})}),Y(this,"mark",p=>{this.debug&&Ul(p,this.sessionId)}),typeof e=="object")throw new Error("Passing a ClientConfig object is no longer supported. Pass the URL of the Convex deployment as a string directly.");r?.skipConvexDeploymentUrlCheck!==!0&&Us(e),r={...r};const i=r.authRefreshTokenLeewaySeconds??10;let o=r.webSocketConstructor;if(!o&&typeof WebSocket>"u")throw new Error("No WebSocket global variable defined! To use Convex in an environment without WebSocket try the HTTP client: https://docs.convex.dev/api/classes/browser.ConvexHttpClient");o=o||WebSocket,this.debug=r.reportDebugInfoToConvex??!1,this.address=e,this.logger=r.logger===!1?uo({verbose:r.verbose??!1}):r.logger!==!0&&r.logger?r.logger:co({verbose:r.verbose??!1});const a=e.search("://");if(a===-1)throw new Error("Provided address was not an absolute URL.");const l=e.substring(a+3),c=e.substring(0,a);let u;if(c==="http")u="ws";else if(c==="https")u="wss";else throw new Error(`Unknown parent protocol ${c}`);const h=`${u}://${l}/api/${oo}/sync`;this.state=new al,this.remoteQuerySet=new xo(p=>this.state.queryPath(p),this.logger),this.requestManager=new cl(this.logger,this.markConnectionStateDirty);const f=()=>{this.webSocketManager.pause(),this.state.pause()};this.authenticationManager=new Bl(this.state,{authenticate:p=>{const g=this.state.setAuth(p);return this.webSocketManager.sendMessage(g),g.baseVersion},stopSocket:()=>this.webSocketManager.stop(),tryRestartSocket:()=>this.webSocketManager.tryRestart(),pauseSocket:f,resumeSocket:()=>this.webSocketManager.resume(),clearAuth:()=>{this.clearAuth()}},{logger:this.logger,refreshTokenLeewaySeconds:i}),this.optimisticQueryResults=new ml,this.addOnTransitionHandler(p=>{n(p.queries.map(g=>g.token))}),this._nextRequestId=0,this._sessionId=Pl();const{unsavedChangesWarning:d}=r;if(typeof window>"u"||typeof window.addEventListener>"u"){if(d===!0)throw new Error("unsavedChangesWarning requested, but window.addEventListener not found! Remove {unsavedChangesWarning: true} from Convex client options.")}else d!==!1&&window.addEventListener("beforeunload",p=>{if(this.requestManager.hasIncompleteRequests()){p.preventDefault();const g="Are you sure you want to leave? Your changes may not be saved.";return(p||window.event).returnValue=g,g}});this.webSocketManager=new $l(h,{onOpen:p=>{this.mark("convexWebSocketOpen"),this.webSocketManager.sendMessage({...p,type:"Connect",sessionId:this._sessionId,maxObservedTimestamp:this.maxObservedTimestamp}),this.remoteQuerySet=new xo(m=>this.state.queryPath(m),this.logger);const[g,y]=this.state.restart();y&&this.webSocketManager.sendMessage(y),this.webSocketManager.sendMessage(g);for(const m of this.requestManager.restart())this.webSocketManager.sendMessage(m)},onResume:()=>{const[p,g]=this.state.resume();g&&this.webSocketManager.sendMessage(g),p&&this.webSocketManager.sendMessage(p);for(const y of this.requestManager.resume())this.webSocketManager.sendMessage(y)},onMessage:p=>{switch(this.firstMessageReceived||(this.firstMessageReceived=!0,this.mark("convexFirstMessageReceived"),this.reportMarks()),p.type){case"Transition":{this.observedTimestamp(p.endVersion.ts),this.authenticationManager.onTransition(p),this.remoteQuerySet.transition(p),this.state.transition(p);const g=this.requestManager.removeCompleted(this.remoteQuerySet.timestamp());this.notifyOnQueryResultChanges(g);break}case"MutationResponse":{p.success&&this.observedTimestamp(p.ts);const g=this.requestManager.onResponse(p);g!==null&&this.notifyOnQueryResultChanges(new Map([[g.requestId,g.result]]));break}case"ActionResponse":{this.requestManager.onResponse(p);break}case"AuthError":{this.authenticationManager.onAuthError(p);break}case"FatalError":{const g=rl(this.logger,p.error);throw this.webSocketManager.terminate(),g}}return{hasSyncedPastLastReconnect:this.hasSyncedPastLastReconnect()}},onServerDisconnectError:r.onServerDisconnectError},o,this.logger,this.markConnectionStateDirty,this.debug),this.mark("convexClientConstructed"),r.expectAuth&&f()}hasSyncedPastLastReconnect(){return this.requestManager.hasSyncedPastLastReconnect()&&this.state.hasSyncedPastLastReconnect()}observedTimestamp(e){(this.maxObservedTimestamp===void 0||this.maxObservedTimestamp.lessThanOrEqual(e))&&(this.maxObservedTimestamp=e)}getMaxObservedTimestamp(){return this.maxObservedTimestamp}notifyOnQueryResultChanges(e){const n=this.remoteQuerySet.remoteQueryResults(),r=new Map;for(const[o,a]of n){const l=this.state.queryToken(o);if(l!==null){const c={result:a,udfPath:this.state.queryPath(o),args:this.state.queryArgs(o)};r.set(l,c)}}const i=this.optimisticQueryResults.ingestQueryResultsFromServer(r,new Set(e.keys()));this.handleTransition({queries:i.map(o=>{const a=this.optimisticQueryResults.rawQueryResult(o);return{token:o,modification:{kind:"Updated",result:a}}}),reflectedMutations:Array.from(e).map(([o,a])=>({requestId:o,result:a})),timestamp:this.remoteQuerySet.timestamp()})}handleTransition(e){for(const n of this._onTransitionFns.values())n(e)}addOnTransitionHandler(e){const n=this._transitionHandlerCounter++;return this._onTransitionFns.set(n,e),()=>this._onTransitionFns.delete(n)}getCurrentAuthClaims(){const e=this.state.getAuth();let n={};if(e&&e.tokenType==="User")try{n=e?wo(e.value):{}}catch{n={}}else return;return{token:e.value,decoded:n}}setAuth(e,n,r){this.authenticationManager.setConfig(e,n,r)}hasAuth(){return this.state.hasAuth()}setAdminAuth(e,n){const r=this.state.setAdminAuth(e,n);this.webSocketManager.sendMessage(r)}clearAuth(){const e=this.state.clearAuth();this.webSocketManager.sendMessage(e)}subscribe(e,n,r){const i=qe(n),{modification:o,queryToken:a,unsubscribe:l}=this.state.subscribe(e,i,r?.journal,r?.componentPath);return o!==null&&this.webSocketManager.sendMessage(o),{queryToken:a,unsubscribe:()=>{const c=l();c&&this.webSocketManager.sendMessage(c)}}}localQueryResult(e,n){const r=qe(n),i=Je(e,r);return this.optimisticQueryResults.queryResult(i)}localQueryResultByToken(e){return this.optimisticQueryResults.queryResult(e)}hasLocalQueryResultByToken(e){return this.optimisticQueryResults.hasQueryResult(e)}localQueryLogs(e,n){const r=qe(n),i=Je(e,r);return this.optimisticQueryResults.queryLogs(i)}queryJournal(e,n){const r=qe(n),i=Je(e,r);return this.state.queryJournal(i)}connectionState(){const e=this.webSocketManager.connectionState();return{hasInflightRequests:this.requestManager.hasInflightRequests(),isWebSocketConnected:e.isConnected,hasEverConnected:e.hasEverConnected,connectionCount:e.connectionCount,connectionRetries:e.connectionRetries,timeOfOldestInflightRequest:this.requestManager.timeOfOldestInflightRequest(),inflightMutations:this.requestManager.inflightMutations(),inflightActions:this.requestManager.inflightActions()}}subscribeToConnectionState(e){const n=this.nextConnectionStateSubscriberId++;return this.connectionStateSubscribers.set(n,e),()=>{this.connectionStateSubscribers.delete(n)}}async mutation(e,n,r){const i=await this.mutationInternal(e,n,r);if(!i.success)throw i.errorData!==void 0?hr(i,new fn(ft("mutation",e,i))):new Error(ft("mutation",e,i));return i.value}async mutationInternal(e,n,r,i){const{mutationPromise:o}=this.enqueueMutation(e,n,r,i);return o}enqueueMutation(e,n,r,i){const o=qe(n);this.tryReportLongDisconnect();const a=this.nextRequestId;if(this._nextRequestId++,r!==void 0){const h=r.optimisticUpdate;if(h!==void 0){const f=g=>{h(g,o)instanceof Promise&&this.logger.warn("Optimistic update handler returned a Promise. Optimistic updates should be synchronous.")},p=this.optimisticQueryResults.applyOptimisticUpdate(f,a).map(g=>{const y=this.localQueryResultByToken(g);return{token:g,modification:{kind:"Updated",result:y===void 0?void 0:{success:!0,value:y,logLines:[]}}}});this.handleTransition({queries:p,reflectedMutations:[],timestamp:this.remoteQuerySet.timestamp()})}}const l={type:"Mutation",requestId:a,udfPath:e,componentPath:i,args:[Te(o)]},c=this.webSocketManager.sendMessage(l),u=this.requestManager.request(l,c);return{requestId:a,mutationPromise:u}}async action(e,n){const r=await this.actionInternal(e,n);if(!r.success)throw r.errorData!==void 0?hr(r,new fn(ft("action",e,r))):new Error(ft("action",e,r));return r.value}async actionInternal(e,n,r){const i=qe(n),o=this.nextRequestId;this._nextRequestId++,this.tryReportLongDisconnect();const a={type:"Action",requestId:o,udfPath:e,componentPath:r,args:[Te(i)]},l=this.webSocketManager.sendMessage(a);return this.requestManager.request(a,l)}async close(){return this.authenticationManager.stop(),this.webSocketManager.terminate()}get url(){return this.address}get nextRequestId(){return this._nextRequestId}get sessionId(){return this._sessionId}reportMarks(){if(this.debug){const e=Vl(this.sessionId);this.webSocketManager.sendMessage({type:"Event",eventType:"ClientConnect",event:e})}}tryReportLongDisconnect(){if(!this.debug)return;const e=this.connectionState().timeOfOldestInflightRequest;if(e===null||Date.now()-e.getTime()<=60*1e3)return;const n=`${this.address}/api/debug_event`;fetch(n,{method:"POST",headers:{"Content-Type":"application/json","Convex-Client":`npm-${oo}`},body:JSON.stringify({event:"LongWebsocketDisconnect"})}).then(r=>{r.ok||this.logger.warn("Analytics request failed with response:",r.body)}).catch(r=>{this.logger.warn("Analytics response failed with error:",r)})}}function mr(t){if(typeof t!="object"||t===null||!Array.isArray(t.page)||typeof t.isDone!="boolean"||typeof t.continueCursor!="string")throw new Error(`Not a valid paginated query result: ${t?.toString()}`);return t}var Kl=Object.defineProperty,Gl=(t,e,n)=>e in t?Kl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,_o=(t,e,n)=>Gl(t,typeof e!="symbol"?e+"":e,n);class Jl{constructor(e,n){this.client=e,this.onTransition=n,_o(this,"paginatedQuerySet",new Map),_o(this,"lastTransitionTs"),this.lastTransitionTs=ce.fromNumber(0),this.client.addOnTransitionHandler(r=>this.onBaseTransition(r))}subscribe(e,n,r){const i=Ge(e),o=ho(i,n,r),a=()=>this.removePaginatedQuerySubscriber(o),l=this.paginatedQuerySet.get(o);return l?(l.numSubscribers+=1,{paginatedQueryToken:o,unsubscribe:a}):(this.paginatedQuerySet.set(o,{token:o,canonicalizedUdfPath:i,args:n,numSubscribers:1,options:{initialNumItems:r.initialNumItems},nextPageKey:0,pageKeys:[],pageKeyToQuery:new Map,ongoingSplits:new Map,skip:!1,id:r.id}),this.addPageToPaginatedQuery(o,null,r.initialNumItems),{paginatedQueryToken:o,unsubscribe:a})}localQueryResult(e,n,r){const i=Ge(e),o=ho(i,n,r);return this.localQueryResultByToken(o)}localQueryResultByToken(e){const n=this.paginatedQuerySet.get(e);if(!n)return;const r=this.activePageQueryTokens(n);if(r.length===0)return{results:[],status:"LoadingFirstPage",loadMore:c=>this.loadMoreOfPaginatedQuery(e,c)};let i=[],o=!1,a=!1;for(const c of r){const u=this.client.localQueryResultByToken(c);if(u===void 0){o=!0,a=!1;continue}const h=mr(u);i=i.concat(h.page),a=!!h.isDone}let l;return o?l=i.length===0?"LoadingFirstPage":"LoadingMore":a?l="Exhausted":l="CanLoadMore",{results:i,status:l,loadMore:c=>this.loadMoreOfPaginatedQuery(e,c)}}onBaseTransition(e){const n=e.queries.map(a=>a.token),r=this.queriesContainingTokens(n);let i=[];r.length>0&&(this.processPaginatedQuerySplits(r,a=>this.client.localQueryResultByToken(a)),i=r.map(a=>({token:a,modification:{kind:"Updated",result:this.localQueryResultByToken(a)}})));const o={...e,paginatedQueries:i};this.onTransition(o)}loadMoreOfPaginatedQuery(e,n){this.mustGetPaginatedQuery(e);const r=this.queryTokenForLastPageOfPaginatedQuery(e),i=this.client.localQueryResultByToken(r);if(!i)return!1;const o=mr(i);if(o.isDone)return!1;this.addPageToPaginatedQuery(e,o.continueCursor,n);const a={timestamp:this.lastTransitionTs,reflectedMutations:[],queries:[],paginatedQueries:[{token:e,modification:{kind:"Updated",result:this.localQueryResultByToken(e)}}]};return this.onTransition(a),!0}queriesContainingTokens(e){if(e.length===0)return[];const n=[],r=new Set(e);for(const[i,o]of this.paginatedQuerySet)for(const a of this.allQueryTokens(o))if(r.has(a)){n.push(i);break}return n}processPaginatedQuerySplits(e,n){for(const r of e){const i=this.mustGetPaginatedQuery(r),{ongoingSplits:o,pageKeyToQuery:a,pageKeys:l}=i;for(const[c,[u,h]]of o)n(a.get(u).queryToken)!==void 0&&n(a.get(h).queryToken)!==void 0&&this.completePaginatedQuerySplit(i,c,u,h);for(const c of l){if(o.has(c))continue;const u=a.get(c).queryToken,h=n(u);if(!h)continue;const f=mr(h);f.splitCursor&&(f.pageStatus==="SplitRecommended"||f.pageStatus==="SplitRequired"||f.page.length>i.options.initialNumItems*2)&&this.splitPaginatedQueryPage(i,c,f.splitCursor,f.continueCursor)}}}splitPaginatedQueryPage(e,n,r,i){const o=e.nextPageKey++,a=e.nextPageKey++,l={cursor:i,numItems:e.options.initialNumItems,id:e.id},c=this.client.subscribe(e.canonicalizedUdfPath,{...e.args,paginationOpts:{...l,cursor:null,endCursor:r}});e.pageKeyToQuery.set(o,c);const u=this.client.subscribe(e.canonicalizedUdfPath,{...e.args,paginationOpts:{...l,cursor:r,endCursor:i}});e.pageKeyToQuery.set(a,u),e.ongoingSplits.set(n,[o,a])}addPageToPaginatedQuery(e,n,r){const i=this.mustGetPaginatedQuery(e),o=i.nextPageKey++,a={cursor:n,numItems:r,id:i.id},l={...i.args,paginationOpts:a},c=this.client.subscribe(i.canonicalizedUdfPath,l);return i.pageKeys.push(o),i.pageKeyToQuery.set(o,c),c}removePaginatedQuerySubscriber(e){const n=this.paginatedQuerySet.get(e);if(n&&(n.numSubscribers-=1,!(n.numSubscribers>0))){for(const r of n.pageKeyToQuery.values())r.unsubscribe();this.paginatedQuerySet.delete(e)}}completePaginatedQuerySplit(e,n,r,i){const o=e.pageKeyToQuery.get(n);e.pageKeyToQuery.delete(n);const a=e.pageKeys.indexOf(n);e.pageKeys.splice(a,1,r,i),e.ongoingSplits.delete(n),o.unsubscribe()}activePageQueryTokens(e){return e.pageKeys.map(n=>e.pageKeyToQuery.get(n).queryToken)}allQueryTokens(e){return Array.from(e.pageKeyToQuery.values()).map(n=>n.queryToken)}queryTokenForLastPageOfPaginatedQuery(e){const n=this.mustGetPaginatedQuery(e),r=n.pageKeys[n.pageKeys.length-1];if(r===void 0)throw new Error(`No pages for paginated query ${e}`);return n.pageKeyToQuery.get(r).queryToken}mustGetPaginatedQuery(e){const n=this.paginatedQuerySet.get(e);if(!n)throw new Error("paginated query no longer exists for token "+e);return n}}function Yl({getCurrentValue:t,subscribe:e}){const[n,r]=R(()=>({getCurrentValue:t,subscribe:e,value:t()}));let i=n.value;return(n.getCurrentValue!==t||n.subscribe!==e)&&(i=t(),r({getCurrentValue:t,subscribe:e,value:i})),T(()=>{let o=!1;const a=()=>{o||r(c=>{if(c.getCurrentValue!==t||c.subscribe!==e)return c;const u=t();return c.value===u?c:{...c,value:u}})},l=e(a);return a(),()=>{o=!0,l()}},[t,e]),i}var Zl=Object.defineProperty,Xl=(t,e,n)=>e in t?Zl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ne=(t,e,n)=>Xl(t,typeof e!="symbol"?e+"":e,n);const ec=5e3;if(typeof or>"u")throw new Error("Required dependency 'react' not found");function jo(t,e,n){function r(i){return oc(i),e.mutation(t,i,{optimisticUpdate:n})}return r.withOptimisticUpdate=function(o){if(n!==void 0)throw new Error(`Already specified optimistic update for mutation ${ae(t)}`);return jo(t,e,o)},r}function tc(t,e){return function(n){return e.action(t,n)}}class nc{constructor(e,n){if(Ne(this,"address"),Ne(this,"cachedSync"),Ne(this,"cachedPaginatedQueryClient"),Ne(this,"listeners"),Ne(this,"options"),Ne(this,"closed",!1),Ne(this,"_logger"),Ne(this,"adminAuth"),Ne(this,"fakeUserIdentity"),e===void 0)throw new Error("No address provided to ConvexReactClient.\nIf trying to deploy to production, make sure to follow all the instructions found at https://docs.convex.dev/production/hosting/\nIf running locally, make sure to run `convex dev` and ensure the .env.local file is populated.");if(typeof e!="string")throw new Error(`ConvexReactClient requires a URL like 'https://happy-otter-123.convex.cloud', received something of type ${typeof e} instead.`);if(!e.includes("://"))throw new Error("Provided address was not an absolute URL.");this.address=e,this.listeners=new Map,this._logger=n?.logger===!1?uo({verbose:n?.verbose??!1}):n?.logger!==!0&&n?.logger?n.logger:co({verbose:n?.verbose??!1}),this.options={...n,logger:this._logger}}get url(){return this.address}get sync(){if(this.closed)throw new Error("ConvexReactClient has already been closed.");return this.cachedSync?this.cachedSync:(this.cachedSync=new Wl(this.address,()=>{},this.options),this.adminAuth&&this.cachedSync.setAdminAuth(this.adminAuth,this.fakeUserIdentity),this.cachedPaginatedQueryClient=new Jl(this.cachedSync,e=>this.handleTransition(e)),this.cachedSync)}get paginatedQueryClient(){if(this.sync,this.cachedPaginatedQueryClient)return this.cachedPaginatedQueryClient;throw new Error("Should already be instantiated")}setAuth(e,n,r){if(typeof e=="string")throw new Error("Passing a string to ConvexReactClient.setAuth is no longer supported, please upgrade to passing in an async function to handle reauthentication.");this.sync.setAuth(e,n??(()=>{}),r)}clearAuth(){this.sync.clearAuth()}setAdminAuth(e,n){if(this.adminAuth=e,this.fakeUserIdentity=n,this.closed)throw new Error("ConvexReactClient has already been closed.");this.cachedSync&&this.sync.setAdminAuth(e,n)}watchQuery(e,...n){const[r,i]=n,o=ae(e);return{onUpdate:a=>{const{queryToken:l,unsubscribe:c}=this.sync.subscribe(o,r,i),u=this.listeners.get(l);return u!==void 0?u.add(a):this.listeners.set(l,new Set([a])),()=>{if(this.closed)return;const h=this.listeners.get(l);h.delete(a),h.size===0&&this.listeners.delete(l),c()}},localQueryResult:()=>{if(this.cachedSync)return this.cachedSync.localQueryResult(o,r)},localQueryLogs:()=>{if(this.cachedSync)return this.cachedSync.localQueryLogs(o,r)},journal:()=>{if(this.cachedSync)return this.cachedSync.queryJournal(o,r)}}}prewarmQuery(e){const n=e.extendSubscriptionFor??ec,i=this.watchQuery(e.query,e.args||{}).onUpdate(()=>{});setTimeout(i,n)}watchPaginatedQuery(e,n,r){const i=ae(e);return{onUpdate:o=>{const{paginatedQueryToken:a,unsubscribe:l}=this.paginatedQueryClient.subscribe(i,n||{},r),c=this.listeners.get(a);return c!==void 0?c.add(o):this.listeners.set(a,new Set([o])),()=>{if(this.closed)return;const u=this.listeners.get(a);u.delete(o),u.size===0&&this.listeners.delete(a),l()}},localQueryResult:()=>this.paginatedQueryClient.localQueryResult(i,n,r)}}mutation(e,...n){const[r,i]=n,o=ae(e);return this.sync.mutation(o,r,i)}action(e,...n){const r=ae(e);return this.sync.action(r,...n)}query(e,...n){const r=this.watchQuery(e,...n),i=r.localQueryResult();return i!==void 0?Promise.resolve(i):new Promise((o,a)=>{const l=r.onUpdate(()=>{l();try{o(r.localQueryResult())}catch(c){a(c)}})})}connectionState(){return this.sync.connectionState()}subscribeToConnectionState(e){return this.sync.subscribeToConnectionState(e)}get logger(){return this._logger}async close(){if(this.closed=!0,this.listeners=new Map,this.cachedPaginatedQueryClient&&(this.cachedPaginatedQueryClient=void 0),this.cachedSync){const e=this.cachedSync;this.cachedSync=void 0,await e.close()}}handleTransition(e){const n=e.queries.map(i=>i.token),r=e.paginatedQueries.map(i=>i.token);this.transition([...n,...r])}transition(e){for(const n of e){const r=this.listeners.get(n);if(r)for(const i of r)i()}}}const yn=or.createContext(void 0);function rc(){return Pt(yn)}const ic=({client:t,children:e})=>or.createElement(yn.Provider,{value:t},e);function wn(t,...e){const n=e[0]==="skip",r=e[0]==="skip"?{}:qe(e[0]),i=typeof t=="string"?pr(t):t,o=ae(i),a=G(()=>n?{}:{query:{query:i,args:r}},[JSON.stringify(Te(r)),o,n]),c=cc(a).query;if(c instanceof Error)throw c;return c}function Ye(t){const e=typeof t=="string"?pr(t):t,n=Pt(yn);if(n===void 0)throw new Error("Could not find Convex client! `useMutation` must be used in the React component tree under `ConvexProvider`. Did you forget it? See https://docs.convex.dev/quick-start#set-up-convex-in-your-react-app");return G(()=>jo(e,n),[n,ae(e)])}function Ut(t){const e=Pt(yn),n=typeof t=="string"?pr(t):t;if(e===void 0)throw new Error("Could not find Convex client! `useAction` must be used in the React component tree under `ConvexProvider`. Did you forget it? See https://docs.convex.dev/quick-start#set-up-convex-in-your-react-app");return G(()=>tc(n,e),[e,ae(n)])}function oc(t){if(typeof t=="object"&&t!==null&&"bubbles"in t&&"persist"in t&&"isDefaultPrevented"in t)throw new Error("Convex function called with SyntheticEvent object. Did you use a Convex function as an event handler directly? Event handlers like onClick receive an event object as their first argument. These SyntheticEvent objects are not valid Convex values. Try wrapping the function like `const handler = () => myMutation();` and using `handler` in the event handler.")}var ac=Object.defineProperty,sc=(t,e,n)=>e in t?ac(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,xr=(t,e,n)=>sc(t,typeof e!="symbol"?e+"":e,n);class lc{constructor(e){xr(this,"createWatch"),xr(this,"queries"),xr(this,"listeners"),this.createWatch=e,this.queries={},this.listeners=new Set}setQueries(e){for(const n of Object.keys(e)){const{query:r,args:i,paginationOptions:o}=e[n];if(ae(r),this.queries[n]===void 0)this.addQuery(n,r,i,o?{paginationOptions:o}:{});else{const a=this.queries[n];(ae(r)!==ae(a.query)||JSON.stringify(Te(i))!==JSON.stringify(Te(a.args))||JSON.stringify(o)!==JSON.stringify(a.paginationOptions))&&(this.removeQuery(n),this.addQuery(n,r,i,o?{paginationOptions:o}:{}))}}for(const n of Object.keys(this.queries))e[n]===void 0&&this.removeQuery(n)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}getLocalResults(e){const n={};for(const r of Object.keys(e)){const{query:i,args:o}=e[r],a=e[r].paginationOptions;ae(i);const l=this.createWatch(i,o,a?{paginationOptions:a}:{});let c;try{c=l.localQueryResult()}catch(u){if(u instanceof Error)c=u;else throw u}n[r]=c}return n}setCreateWatch(e){this.createWatch=e;for(const n of Object.keys(this.queries)){const{query:r,args:i,watch:o,paginationOptions:a}=this.queries[n],l="journal"in o?o.journal():void 0;this.removeQuery(n),this.addQuery(n,r,i,{...l?{journal:l}:[],...a?{paginationOptions:a}:{}})}}destroy(){for(const e of Object.keys(this.queries))this.removeQuery(e);this.listeners=new Set}addQuery(e,n,r,{paginationOptions:i,journal:o}){if(this.queries[e]!==void 0)throw new Error(`Tried to add a new query with identifier ${e} when it already exists.`);const a=this.createWatch(n,r,{...o?{journal:o}:[],...i?{paginationOptions:i}:{}}),l=a.onUpdate(()=>this.notifyListeners());this.queries[e]={query:n,args:r,watch:a,unsubscribe:l,...i?{paginationOptions:i}:{}}}removeQuery(e){const n=this.queries[e];if(n===void 0)throw new Error(`No query found with identifier ${e}.`);n.unsubscribe(),delete this.queries[e]}notifyListeners(){for(const e of this.listeners)e()}}function cc(t){const e=rc();if(e===void 0)throw new Error("Could not find Convex client! `useQuery` must be used in the React component tree under `ConvexProvider`. Did you forget it? See https://docs.convex.dev/quick-start#set-up-convex-in-your-react-app");const n=G(()=>(r,i,{journal:o,paginationOptions:a})=>a?e.watchPaginatedQuery(r,i,a):e.watchQuery(r,i,o?{journal:o}:{}),[e]);return uc(t,n)}function uc(t,e){const[n]=R(()=>new lc(e));n.createWatch!==e&&n.setCreateWatch(e),T(()=>()=>n.destroy(),[n]);const r=G(()=>({getCurrentValue:()=>n.getLocalResults(t),subscribe:i=>(n.setQueries(t),n.subscribe(i))}),[n,t]);return Yl(r)}var dc=Symbol.for("preact-signals");function kn(){if(Le>1)Le--;else{var t,e=!1;for((function(){var i=Sn;for(Sn=void 0;i!==void 0;)i.S.v===i.v&&(i.S.i=i.i),i=i.o})();Ft!==void 0;){var n=Ft;for(Ft=void 0,jn++;n!==void 0;){var r=n.u;if(n.u=void 0,n.f&=-3,!(8&n.f)&&Co(n))try{n.c()}catch(i){e||(t=i,e=!0)}n=r}}if(jn=0,Le--,e)throw t}}function hc(t){if(Le>0)return t();vr=++pc,Le++;try{return t()}finally{kn()}}var D=void 0;function _n(t){var e=D;D=void 0;try{return t()}finally{D=e}}var Ft=void 0,Le=0,jn=0,pc=0,vr=0,Sn=void 0,Cn=0;function So(t){if(D!==void 0){var e=t.n;if(e===void 0||e.t!==D)return e={i:0,S:t,p:D.s,n:void 0,t:D,e:void 0,x:void 0,r:e},D.s!==void 0&&(D.s.n=e),D.s=e,t.n=e,32&D.f&&t.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=D.s,e.n=void 0,D.s.n=e,D.s=e),e}}function ee(t,e){this.v=t,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=e?.watched,this.Z=e?.unwatched,this.name=e?.name}ee.prototype.brand=dc,ee.prototype.h=function(){return!0},ee.prototype.S=function(t){var e=this,n=this.t;n!==t&&t.e===void 0&&(t.x=n,this.t=t,n!==void 0?n.e=t:_n(function(){var r;(r=e.W)==null||r.call(e)}))},ee.prototype.U=function(t){var e=this;if(this.t!==void 0){var n=t.e,r=t.x;n!==void 0&&(n.x=r,t.e=void 0),r!==void 0&&(r.e=n,t.x=void 0),t===this.t&&(this.t=r,r===void 0&&_n(function(){var i;(i=e.Z)==null||i.call(e)}))}},ee.prototype.subscribe=function(t){var e=this;return Vt(function(){var n=e.value;_n(function(){return t(n)})},{name:"sub"})},ee.prototype.valueOf=function(){return this.value},ee.prototype.toString=function(){return this.value+""},ee.prototype.toJSON=function(){return this.value},ee.prototype.peek=function(){var t=this;return _n(function(){return t.value})},Object.defineProperty(ee.prototype,"value",{get:function(){var t=So(this);return t!==void 0&&(t.i=this.i),this.v},set:function(t){if(t!==this.v){if(jn>100)throw new Error("Cycle detected");(function(n){Le!==0&&jn===0&&n.l!==vr&&(n.l=vr,Sn={S:n,v:n.v,i:n.i,o:Sn})})(this),this.v=t,this.i++,Cn++,Le++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{kn()}}}});function $(t,e){return new ee(t,e)}function Co(t){for(var e=t.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function To(t){for(var e=t.s;e!==void 0;e=e.n){var n=e.S.n;if(n!==void 0&&(e.r=n),e.S.n=e,e.i=-1,e.n===void 0){t.s=e;break}}}function Ro(t){for(var e=t.s,n=void 0;e!==void 0;){var r=e.p;e.i===-1?(e.S.U(e),r!==void 0&&(r.n=e.n),e.n!==void 0&&(e.n.p=r)):n=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=r}t.s=n}function Ze(t,e){ee.call(this,void 0,e),this.x=t,this.s=void 0,this.g=Cn-1,this.f=4}Ze.prototype=new ee,Ze.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Cn))return!0;if(this.g=Cn,this.f|=1,this.i>0&&!Co(this))return this.f&=-2,!0;var t=D;try{To(this),D=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(n){this.v=n,this.f|=16,this.i++}return D=t,Ro(this),this.f&=-2,!0},Ze.prototype.S=function(t){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}ee.prototype.S.call(this,t)},Ze.prototype.U=function(t){if(this.t!==void 0&&(ee.prototype.U.call(this,t),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}},Ze.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var t=this.t;t!==void 0;t=t.x)t.t.N()}},Object.defineProperty(Ze.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var t=So(this);if(this.h(),t!==void 0&&(t.i=this.i),16&this.f)throw this.v;return this.v}});function br(t,e){return new Ze(t,e)}function Ao(t){var e=t.m;if(t.m=void 0,typeof e=="function"){Le++;var n=D;D=void 0;try{e()}catch(r){throw t.f&=-2,t.f|=8,yr(t),r}finally{D=n,kn()}}}function yr(t){for(var e=t.s;e!==void 0;e=e.n)e.S.U(e);t.x=void 0,t.s=void 0,Ao(t)}function fc(t){if(D!==this)throw new Error("Out-of-order effect");Ro(this),D=t,this.f&=-2,8&this.f&&yr(this),kn()}function mt(t,e){this.x=t,this.m=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=e?.name}mt.prototype.c=function(){var t=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.m=e)}finally{t()}},mt.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1,this.f&=-9,Ao(this),To(this),Le++;var t=D;return D=this,fc.bind(this,t)},mt.prototype.N=function(){2&this.f||(this.f|=2,this.u=Ft,Ft=this)},mt.prototype.d=function(){this.f|=8,1&this.f||yr(this)},mt.prototype.dispose=function(){this.d()};function Vt(t,e){var n=new mt(t,e);try{n.c()}catch(i){throw n.d(),i}var r=n.d.bind(n);return r[Symbol.dispose]=r,r}var Io,Tn,gc=typeof window<"u"&&!!window.__PREACT_SIGNALS_DEVTOOLS__,Eo=[];Vt(function(){Io=this.N})();function xt(t,e){_[t]=e.bind(null,_[t]||function(){})}function Rn(t){if(Tn){var e=Tn;Tn=void 0,e()}Tn=t&&t.S()}function $o(t){var e=this,n=t.data,r=vt(n);r.value=n;var i=G(function(){for(var l=e,c=e.__v;c=c.__;)if(c.__c){c.__c.__$f|=4;break}var u=br(function(){var p=r.value.value;return p===0?0:p===!0?"":p||""}),h=br(function(){return!Array.isArray(u.value)&&!ni(u.value)}),f=Vt(function(){if(this.N=Po,h.value){var p=u.value;l.__v&&l.__v.__e&&l.__v.__e.nodeType===3&&(l.__v.__e.data=p)}}),d=e.__$u.d;return e.__$u.d=function(){f(),d.call(this)},[h,u]},[]),o=i[0],a=i[1];return o.value?a.peek():a.value}$o.displayName="ReactiveTextNode",Object.defineProperties(ee.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:$o},props:{configurable:!0,get:function(){var t=this;return{data:{get value(){return t.value}}}}},__b:{configurable:!0,value:1}}),xt("__b",function(t,e){if(typeof e.type=="string"){var n,r=e.props;for(var i in r)if(i!=="children"){var o=r[i];o instanceof ee&&(n||(e.__np=n={}),n[i]=o,r[i]=o.peek())}}t(e)}),xt("__r",function(t,e){if(t(e),e.type!==O){Rn();var n,r=e.__c;r&&(r.__$f&=-2,(n=r.__$u)===void 0&&(r.__$u=n=(function(i,o){var a;return Vt(function(){a=this},{name:o}),a.c=i,a})(function(){var i;gc&&((i=n.y)==null||i.call(n)),r.__$f|=1,r.setState({})},typeof e.type=="function"?e.type.displayName||e.type.name:""))),Rn(n)}}),xt("__e",function(t,e,n,r){Rn(),t(e,n,r)}),xt("diffed",function(t,e){Rn();var n;if(typeof e.type=="string"&&(n=e.__e)){var r=e.__np,i=e.props;if(r){var o=n.U;if(o)for(var a in o){var l=o[a];l!==void 0&&!(a in r)&&(l.d(),o[a]=void 0)}else o={},n.U=o;for(var c in r){var u=o[c],h=r[c];u===void 0?(u=mc(n,c,h,i),o[c]=u):u.o(h,i)}}}t(e)});function mc(t,e,n,r){var i=e in t&&t.ownerSVGElement===void 0,o=$(n);return{o:function(a,l){o.value=a,r=l},d:Vt(function(){this.N=Po;var a=o.value.value;r[e]!==a&&(r[e]=a,i?t[e]=a:a!=null&&(a!==!1||e[4]==="-")?t.setAttribute(e,a):t.removeAttribute(e))})}}xt("unmount",function(t,e){if(typeof e.type=="string"){var n=e.__e;if(n){var r=n.U;if(r){n.U=void 0;for(var i in r){var o=r[i];o&&o.d()}}}var a=e.__np;if(a){var l=e.props;for(var c in a)l[c]=a[c]}e.__np=void 0}else{var u=e.__c;if(u){var h=u.__$u;h&&(u.__$u=void 0,h.d())}}t(e)}),xt("__h",function(t,e,n,r){(r<3||r===9)&&(e.__$f|=2),t(e,n,r)}),ye.prototype.shouldComponentUpdate=function(t,e){if(this.__R)return!0;var n=this.__$u,r=n&&n.s!==void 0;for(var i in e)return!0;if(this.__f||typeof this.u=="boolean"&&this.u===!0){var o=2&this.__$f;if(!(r||o||4&this.__$f)||1&this.__$f)return!0}else if(!(r||4&this.__$f)||3&this.__$f)return!0;for(var a in t)if(a!=="__source"&&t[a]!==this.props[a])return!0;for(var l in this.props)if(!(l in t))return!0;return!1};function vt(t,e){return G(function(){return $(t,e)},[])}var xc=function(t){queueMicrotask(function(){queueMicrotask(t)})};function vc(){hc(function(){for(var t;t=Eo.shift();)Io.call(t)})}function Po(){Eo.push(this)===1&&(_.requestAnimationFrame||xc)(vc)}const F=$(!1),An=$(void 0),Qt="https://jexitychat.de/privacy",Ht=$(Qt),wr=$("chip"),Ve=$(void 0),kr=$([]),_r=$([]),Mo=$(null);function bc(t){return t.replace(/\.convex\.site\b/,".convex.cloud")}function jr(t){return t.replace(/\.convex\.cloud\b/,".convex.site")}function yc(t){const e=t?.trim();if(e)try{const n=new URL(e);if(n.protocol==="http:"||n.protocol==="https:")return e}catch{return}}function wc(t,e){const n=t.title??e?.title??"Assistant",r=t.privacyPolicyMode??e?.privacyPolicyMode??"platform",i=kc(t.privacyNoticeStyle??e?.privacyNoticeStyle);return{title:n,botName:t.botName?.trim()||e?.botName?.trim()||n,greeting:t.greeting??e?.welcomeMessage??`Hi! I'm ${n}. How can I help?`,starterQuestions:t.starterQuestions??e?.starterQuestions??[],locale:t.locale??e?.locale,position:t.position??e?.position,colorScheme:t.colorScheme??e?.colorScheme,hideBranding:t.hideBranding??e?.hideBranding??!1,privacyPolicyMode:r,privacyPolicyUrl:r==="custom"?yc(t.privacyPolicyUrl??e?.privacyPolicyUrl):void 0,privacyNoticeStyle:i,sessionTimeoutMs:_c(e?.sessionTimeout),triggerIcon:t.triggerIcon??e?.triggerIcon??"chat",triggerRadius:t.triggerRadius??e?.triggerRadius??"full",triggerLabel:t.triggerLabel??e?.triggerLabel??"Chatte mit uns",mode:t.mode??"floating",proactiveMode:e?.proactiveMode??"off",proactiveDelaySeconds:Math.min(15,Math.max(0,e?.proactiveDelaySeconds??5)),primaryColor:t.primaryColor??e?.primaryColor,accentColor:t.accentColor??e?.accentColor,fontFamily:t.fontFamily??e?.fontFamily,fontSize:t.fontSize??e?.fontSize,borderRadius:t.borderRadius??e?.borderRadius,windowWidth:t.windowWidth??e?.windowWidth,windowHeight:t.windowHeight??e?.windowHeight}}function kc(t){return t==="explicit"||t==="sheet"?"explicit":"chip"}function _c(t){switch(t){case"never":return null;case"1h":return 3600*1e3;case"6h":return 360*60*1e3;case"7d":return 10080*60*1e3;case"24h":return 1440*60*1e3;case void 0:return 3600*1e3}}async function jc(t,e,n,r){const i=new URL(`${t}/widget/config`);i.searchParams.set("orgSlug",e),r&&i.searchParams.set("projSlug",r);const o=await fetch(i.toString(),{signal:n});return o.ok?o.json():null}function Sc(t,e,n){const[r,i]=R({config:null,settled:!1});return T(()=>{i({config:null,settled:!1});const o=n??"https://tame-spider-109.eu-west-1.convex.cloud",a=o?jr(o):void 0;if(!a||!t){i({config:null,settled:!0});return}const l=new AbortController;async function c(u){try{const h=await jc(u,t,l.signal,e);l.signal.aborted||i({config:h,settled:!0})}catch(h){if(h instanceof Error&&h.name==="AbortError")return;l.signal.aborted||i({config:null,settled:!0})}}return c(a),()=>{l.abort()}},[t,e,n]),r}async function Sr(t,e,n){try{const r=await fetch(`${e}/widget/bootstrap`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n?{orgSlug:t,projSlug:n}:{orgSlug:t}),credentials:"omit"});if(r.ok){const i=await r.json(),o=i.allowedUrls??(i.allowedUrl?[i.allowedUrl]:[]);return{ok:!0,token:i.token,excludePaths:i.excludePaths,allowedUrls:o}}return r.status===403?{ok:!1,error:"unauthorized"}:r.status===404?{ok:!1,error:"not_found"}:r.status===429?{ok:!1,error:"rate_limited",retryAfterSec:Number(r.headers.get("Retry-After"))||60}:{ok:!1,error:"network"}}catch{return{ok:!1,error:"network"}}}function Cc(t,e){return e.some(n=>n==="/"?t==="/":t===n||t.startsWith(n+"/"))}function Cr(t,e){try{const n=new URL(t),r=new URL(e);if(n.origin!==r.origin)return!1;const i=r.pathname.replace(/\/$/,"");if(!i)return!0;const o=n.pathname.replace(/\/$/,"");return o===i||o.startsWith(i+"/")}catch{return!1}}function Tc({orgSlug:t,projSlug:e,preToken:n,convexUrl:r,preAllowedUrls:i,preExcludedPaths:o}){T(()=>{const a=r??"https://tame-spider-109.eu-west-1.convex.cloud",l=a?jr(a):void 0;if(!l||!t)return;if(Mo.value={orgSlug:t,projSlug:e,siteUrl:l},n){kr.value=i??[],_r.value=o??[];return}let c=!1;return(async()=>{const u=await Sr(t,l,e);if(!c)if(u.ok)Ve.value=u.token,kr.value=u.allowedUrls,_r.value=u.excludePaths;else{const h=e?`project '${t}/${e}'`:`org '${t}'`;u.error==="unauthorized"?console.warn(`[JexityChat] Domain not authorized for ${h}. Check the widget's domain rules.`):u.error==="not_found"?console.error(`[JexityChat] No active widget config found for ${h}.`):u.error==="rate_limited"?console.error(`[JexityChat] Bootstrap rate-limited for ${h}. Retry after ${u.retryAfterSec??60}s.`):console.error(`[JexityChat] Bootstrap failed: ${u.error}`)}})(),()=>{c=!0}},[t,e,n,r])}const In=new Set;let qo=!1;function Rc(){if(qo)return;qo=!0;const t=history.pushState.bind(history),e=history.replaceState.bind(history);history.pushState=function(...n){t(...n),In.forEach(r=>r())},history.replaceState=function(...n){e(...n),In.forEach(r=>r())}}function Ac(t){return In.add(t),window.addEventListener("popstate",t),Rc(),()=>{In.delete(t),window.removeEventListener("popstate",t)}}function Ic(){const t=vt(window.location.href);T(()=>Ac(()=>{t.value=window.location.href}),[]);const e=kr.value,n=_r.value,r=new URL(t.value).pathname,i=Cc(r,n);return T(()=>{i?console.warn(`[JexityChat] Widget hidden — current path is in the exclude list: ${r}`):e.length>0&&!e.some(o=>Cr(t.value,o))&&console.warn(`[JexityChat] Widget hidden — current page does not match path rule. Allowed: ${e.join(", ")}`)},[t.value,e,n]),i?!1:e.length===0?!0:e.some(o=>Cr(t.value,o))}const Tr={title:"Assistant",statusOnline:"Online · Responds in seconds",inputPlaceholder:"Type a message…",aiThinking:"AI is responding…",sendAriaLabel:"Send message",attachImagesAriaLabel:"Attach images",attachComingSoon:"File attachments — coming soon",voiceAriaLabel:"Voice message",voiceComingSoon:"Voice messages — coming soon",removeAttachmentAriaLabel:"Remove attachment",openChatAriaLabel:"Open chat",closeChatAriaLabel:"Close chat",proactiveDismiss:"Dismiss",proactiveOpenAria:"Open chat",errorNetwork:"Network error. Please try again.",errorQuota:"Message limit reached. Please try again later.",errorRateLimited:"Too many messages. Try again in {seconds}s.",errorSessionNoToken:"Could not connect to chat. Check your connection and try again.",errorSessionUnauthorized:"This chat is not authorised on this page. Please reload.",localeLabelDe:"DE",localeLabelEn:"EN",resumeConversation:"Resuming conversation…",startingConversation:"Starting conversation…",sessionNotFound:"Your previous session was not found. Starting a new conversation.",startNewConversation:"Start new conversation",chatWith:"Send us a message",homeStatusOnline:"Online",homeStatusOffline:"Offline",haveReferenceNumber:"Have a reference number?",referencePlaceholder:"e.g. JEX-A3B7C2",resume:"Resume",howCanWeHelp:"How can we help?",getInstantHelp:"Get instant help",submitTicket:"Submit a ticket",replyByEmail:"We'll reply by email",ticketSubmitted:"Ticket submitted",yourReferenceNumber:"Your reference number:",sentToEmailHint:"We've sent it to your email. Use this number to follow up.",done:"Done",submittingTicket:"Submitting your ticket…",yourName:"Your name",yourEmail:"Your email",submit:"Submit",back:"Go back",escalationFormTitle:"Leave your details",escalationSubtitle:"Our team will get back to you by email so you don’t have to wait here.",escalationOfflineSubtitle:"Our team is offline right now — leave your email and we’ll get back to you.",escalationNameLabel:"Your name",escalationEmailLabel:"Your email",escalationSubmit:"Send to team",escalationSubmitting:"Sending…",escalationSubmitted:"Request submitted",escalationConsent:"By submitting, you agree to our",escalationPrivacyLinkText:"Privacy Policy",escalationSkip:"Skip, I’ll wait here",escalationPromptTitle:"Talk to our team",escalationPromptSubtitle:"We can notify you by email when our team replies.",escalationPromptSubmit:"Leave details",escalationSubmitFailed:"Failed to submit. Please try again.",sessionNotFoundPrompt:"Session not found. Would you like to start a new conversation?",sessionLocked:"For your privacy, this conversation was closed after a period of inactivity. Enter your reference to resume, or start a new conversation.",sessionResolved:"This conversation has been resolved.",tryAgain:"Try again",goBack:"Go back",somethingWentWrong:"Something went wrong",fabLabel:"Chat with us",chatNoLongerAvailable:"This chat is no longer available.",talkToHuman:"Talk to human",talkToHumanAria:"Talk to a human agent",handoffPending:"Connecting you to a human agent…",handoffFailed:"Could not request a human agent. Try again.",handoffRateLimited:"You requested an agent recently. Please wait before trying again.",handoffAvailable:"An agent is available",handoffOffline:"No agent online — leave your details",resumeListLabel:"Continue conversation",resumeListTimestamp:"{minutes}m ago",pickUpWhereLeftOff:"Pick up where you left off",noticeAgentJoined:"{name} has joined the conversation.",noticeHumanRequested:"You requested to speak with a human agent.",noticeHumanRequestedForm:"You requested to speak with a human agent. Please share your contact details below.",noticeEscalationConfirmed:`Thank you {name}! A human agent will be available soon.
1
+ (function(){"use strict";var Rt,_,ti,ni,Ue,ri,ii,oi,Fn,sn,At,ai,Vn,Hn,Qn,si,ln={},cn=[],Za=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,It=Array.isArray;function je(t,e){for(var n in e)t[n]=e[n];return t}function Wn(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function ge(t,e,n){var r,i,o,a={};for(o in e)o=="key"?r=e[o]:o=="ref"?i=e[o]:a[o]=e[o];if(arguments.length>2&&(a.children=arguments.length>3?Rt.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(o in t.defaultProps)a[o]===void 0&&(a[o]=t.defaultProps[o]);return Et(t,a,r,i,null)}function Et(t,e,n,r,i){var o={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++ti,__i:-1,__u:0};return i==null&&_.vnode!=null&&_.vnode(o),o}function Xa(){return{current:null}}function O(t){return t.children}function ye(t,e){this.props=t,this.context=e}function lt(t,e){if(e==null)return t.__?lt(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?lt(t):null}function es(t){if(t.__P&&t.__d){var e=t.__v,n=e.__e,r=[],i=[],o=je({},e);o.__v=e.__v+1,_.vnode&&_.vnode(o),Gn(t.__P,o,e,t.__n,t.__P.namespaceURI,32&e.__u?[n]:null,r,n??lt(e),!!(32&e.__u),i),o.__v=e.__v,o.__.__k[o.__i]=o,pi(r,o,i),e.__e=e.__=null,o.__e!=n&&li(o)}}function li(t){if((t=t.__)!=null&&t.__c!=null)return t.__e=t.__c.base=null,t.__k.some(function(e){if(e!=null&&e.__e!=null)return t.__e=t.__c.base=e.__e}),li(t)}function Kn(t){(!t.__d&&(t.__d=!0)&&Ue.push(t)&&!un.__r++||ri!=_.debounceRendering)&&((ri=_.debounceRendering)||ii)(un)}function un(){try{for(var t,e=1;Ue.length;)Ue.length>e&&Ue.sort(oi),t=Ue.shift(),e=Ue.length,es(t)}finally{Ue.length=un.__r=0}}function ci(t,e,n,r,i,o,a,l,c,u,h){var f,d,p,g,y,m,v,b=r&&r.__k||cn,x=e.length;for(c=ts(n,e,b,c,x),f=0;f<x;f++)(p=n.__k[f])!=null&&(d=p.__i!=-1&&b[p.__i]||ln,p.__i=f,m=Gn(t,p,d,i,o,a,l,c,u,h),g=p.__e,p.ref&&d.ref!=p.ref&&(d.ref&&Yn(d.ref,null,p),h.push(p.ref,p.__c||g,p)),y==null&&g!=null&&(y=g),(v=!!(4&p.__u))||d.__k===p.__k?(c=ui(p,c,t,v),v&&d.__e&&(d.__e=null)):typeof p.type=="function"&&m!==void 0?c=m:g&&(c=g.nextSibling),p.__u&=-7);return n.__e=y,c}function ts(t,e,n,r,i){var o,a,l,c,u,h=n.length,f=h,d=0;for(t.__k=new Array(i),o=0;o<i;o++)(a=e[o])!=null&&typeof a!="boolean"&&typeof a!="function"?(typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?a=t.__k[o]=Et(null,a,null,null,null):It(a)?a=t.__k[o]=Et(O,{children:a},null,null,null):a.constructor===void 0&&a.__b>0?a=t.__k[o]=Et(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):t.__k[o]=a,c=o+d,a.__=t,a.__b=t.__b+1,l=null,(u=a.__i=ns(a,n,c,f))!=-1&&(f--,(l=n[u])&&(l.__u|=2)),l==null||l.__v==null?(u==-1&&(i>h?d--:i<h&&d++),typeof a.type!="function"&&(a.__u|=4)):u!=c&&(u==c-1?d--:u==c+1?d++:(u>c?d--:d++,a.__u|=4))):t.__k[o]=null;if(f)for(o=0;o<h;o++)(l=n[o])!=null&&(2&l.__u)==0&&(l.__e==r&&(r=lt(l)),gi(l,l));return r}function ui(t,e,n,r){var i,o;if(typeof t.type=="function"){for(i=t.__k,o=0;i&&o<i.length;o++)i[o]&&(i[o].__=t,e=ui(i[o],e,n,r));return e}t.__e!=e&&(r&&(e&&t.type&&!e.parentNode&&(e=lt(t)),n.insertBefore(t.__e,e||null)),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function Se(t,e){return e=e||[],t==null||typeof t=="boolean"||(It(t)?t.some(function(n){Se(n,e)}):e.push(t)),e}function ns(t,e,n,r){var i,o,a,l=t.key,c=t.type,u=e[n],h=u!=null&&(2&u.__u)==0;if(u===null&&l==null||h&&l==u.key&&c==u.type)return n;if(r>(h?1:0)){for(i=n-1,o=n+1;i>=0||o<e.length;)if((u=e[a=i>=0?i--:o++])!=null&&(2&u.__u)==0&&l==u.key&&c==u.type)return a}return-1}function di(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||Za.test(e)?n:n+"px"}function dn(t,e,n,r,i){var o,a;e:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof r=="string"&&(t.style.cssText=r=""),r)for(e in r)n&&e in n||di(t.style,e,"");if(n)for(e in n)r&&n[e]==r[e]||di(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")o=e!=(e=e.replace(ai,"$1")),a=e.toLowerCase(),e=a in t||e=="onFocusOut"||e=="onFocusIn"?a.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+o]=n,n?r?n[At]=r[At]:(n[At]=Vn,t.addEventListener(e,o?Qn:Hn,o)):t.removeEventListener(e,o?Qn:Hn,o);else{if(i=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function hi(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e[sn]==null)e[sn]=Vn++;else if(e[sn]<n[At])return;return n(_.event?_.event(e):e)}}}function Gn(t,e,n,r,i,o,a,l,c,u){var h,f,d,p,g,y,m,v,b,x,P,S,z,W,V,le,L=e.type;if(e.constructor!==void 0)return null;128&n.__u&&(c=!!(32&n.__u),o=[l=e.__e=n.__e]),(h=_.__b)&&h(e);e:if(typeof L=="function"){f=a.length;try{if(b=e.props,x=L.prototype&&L.prototype.render,P=(h=L.contextType)&&r[h.__c],S=h?P?P.props.value:h.__:r,n.__c?v=(d=e.__c=n.__c).__=d.__E:(x?e.__c=d=new L(b,S):(e.__c=d=new ye(b,S),d.constructor=L,d.render=is),P&&P.sub(d),d.state||(d.state={}),d.__n=r,p=d.__d=!0,d.__h=[],d._sb=[]),x&&d.__s==null&&(d.__s=d.state),x&&L.getDerivedStateFromProps!=null&&(d.__s==d.state&&(d.__s=je({},d.__s)),je(d.__s,L.getDerivedStateFromProps(b,d.__s))),g=d.props,y=d.state,d.__v=e,p)x&&L.getDerivedStateFromProps==null&&d.componentWillMount!=null&&d.componentWillMount(),x&&d.componentDidMount!=null&&d.__h.push(d.componentDidMount);else{if(x&&L.getDerivedStateFromProps==null&&b!==g&&d.componentWillReceiveProps!=null&&d.componentWillReceiveProps(b,S),e.__v==n.__v||!d.__e&&d.shouldComponentUpdate!=null&&d.shouldComponentUpdate(b,d.__s,S)===!1){e.__v!=n.__v&&(d.props=b,d.state=d.__s,d.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.some(function(H){H&&(H.__=e)}),cn.push.apply(d.__h,d._sb),d._sb=[],d.__h.length&&a.push(d);break e}d.componentWillUpdate!=null&&d.componentWillUpdate(b,d.__s,S),x&&d.componentDidUpdate!=null&&d.__h.push(function(){d.componentDidUpdate(g,y,m)})}if(d.context=S,d.props=b,d.__P=t,d.__e=!1,z=_.__r,W=0,x)d.state=d.__s,d.__d=!1,z&&z(e),h=d.render(d.props,d.state,d.context),cn.push.apply(d.__h,d._sb),d._sb=[];else do d.__d=!1,z&&z(e),h=d.render(d.props,d.state,d.context),d.state=d.__s;while(d.__d&&++W<25);d.state=d.__s,d.getChildContext!=null&&(r=je(je({},r),d.getChildContext())),x&&!p&&d.getSnapshotBeforeUpdate!=null&&(m=d.getSnapshotBeforeUpdate(g,y)),V=h!=null&&h.type===O&&h.key==null?fi(h.props.children):h,l=ci(t,It(V)?V:[V],e,n,r,i,o,a,l,c,u),d.base=e.__e,e.__u&=-161,d.__h.length&&a.push(d),v&&(d.__E=d.__=null)}catch(H){if(a.length=f,e.__v=null,c||o!=null)if(H.then){for(e.__u|=c?160:128;l&&l.nodeType==8&&l.nextSibling;)l=l.nextSibling;o!=null&&(o[o.indexOf(l)]=null),e.__e=l}else{if(o!=null)for(le=o.length;le--;)Wn(o[le]);Jn(e)}else e.__e=n.__e,!e.__k&&n.__k&&(e.__k=n.__k),H.then||Jn(e);_.__e(H,e,n)}}else o==null&&e.__v==n.__v?(e.__k=n.__k,e.__e=n.__e):l=e.__e=rs(n.__e,e,n,r,i,o,a,c,u);return(h=_.diffed)&&h(e),128&e.__u?void 0:l}function Jn(t){t&&(t.__c&&(t.__c.__e=!0),t.__k&&t.__k.some(Jn))}function pi(t,e,n){for(var r=0;r<n.length;r++)Yn(n[r],n[++r],n[++r]);_.__c&&_.__c(e,t),t.some(function(i){try{t=i.__h,i.__h=[],t.some(function(o){o.call(i)})}catch(o){_.__e(o,i.__v)}})}function fi(t){return typeof t!="object"||t==null||t.__b>0?t:It(t)?t.map(fi):t.constructor!==void 0?null:je({},t)}function rs(t,e,n,r,i,o,a,l,c){var u,h,f,d,p,g,y,m=n.props||ln,v=e.props,b=e.type;if(b=="svg"?i="http://www.w3.org/2000/svg":b=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),o!=null){for(u=0;u<o.length;u++)if((p=o[u])&&"setAttribute"in p==!!b&&(b?p.localName==b:p.nodeType==3)){t=p,o[u]=null;break}}if(t==null){if(b==null)return document.createTextNode(v);t=document.createElementNS(i,b,v.is&&v),l&&(_.__m&&_.__m(e,o),l=!1),o=null}if(b==null)m===v||l&&t.data==v||(t.data=v);else{if(o=b=="textarea"&&v.defaultValue!=null?null:o&&Rt.call(t.childNodes),!l&&o!=null)for(m={},u=0;u<t.attributes.length;u++)m[(p=t.attributes[u]).name]=p.value;for(u in m)p=m[u],u=="dangerouslySetInnerHTML"?f=p:u=="children"||u in v||u=="value"&&"defaultValue"in v||u=="checked"&&"defaultChecked"in v||dn(t,u,null,p,i);for(u in v)p=v[u],u=="children"?d=p:u=="dangerouslySetInnerHTML"?h=p:u=="value"?g=p:u=="checked"?y=p:l&&typeof p!="function"||m[u]===p||dn(t,u,p,m[u],i);if(h)l||f&&(h.__html==f.__html||h.__html==t.innerHTML)||(t.innerHTML=h.__html),e.__k=[];else if(f&&(t.innerHTML=""),ci(e.type=="template"?t.content:t,It(d)?d:[d],e,n,r,b=="foreignObject"?"http://www.w3.org/1999/xhtml":i,o,a,o?o[0]:n.__k&&lt(n,0),l,c),o!=null)for(u=o.length;u--;)Wn(o[u]);l&&b!="textarea"||(u="value",b=="progress"&&g==null?t.removeAttribute("value"):g!=null&&(g!==t[u]||b=="progress"&&!g||b=="option"&&g!=m[u])&&dn(t,u,g,m[u],i),u="checked",y!=null&&y!=t[u]&&dn(t,u,y,m[u],i))}return t}function Yn(t,e,n){try{if(typeof t=="function"){var r=typeof t.__u=="function";r&&t.__u(),r&&e==null||(t.__u=t(e))}else t.current=e}catch(i){_.__e(i,n)}}function gi(t,e,n){var r,i;if(_.unmount&&_.unmount(t),(r=t.ref)&&(r.current&&r.current!=t.__e||Yn(r,null,e)),(r=t.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(o){_.__e(o,e)}r.base=r.__P=r.__n=null}if(r=t.__k)for(i=0;i<r.length;i++)r[i]&&gi(r[i],e,n||typeof t.type!="function");n||Wn(t.__e),t.__c=t.__=t.__e=void 0}function is(t,e,n){return this.constructor(t,n)}function Ke(t,e,n){var r,i,o,a;e==document&&(e=document.documentElement),_.__&&_.__(t,e),i=(r=typeof n=="function")?null:n&&n.__k||e.__k,o=[],a=[],Gn(e,t=(!r&&n||e).__k=ge(O,null,[t]),i||ln,ln,e.namespaceURI,!r&&n?[n]:i?null:e.firstChild?Rt.call(e.childNodes):null,o,!r&&n?n:i?i.__e:e.firstChild,r,a),pi(o,t,a),t.props.children=null}function mi(t,e){Ke(t,e,mi)}function os(t,e,n){var r,i,o,a,l=je({},t.props);for(o in t.type&&t.type.defaultProps&&(a=t.type.defaultProps),e)o=="key"?r=e[o]:o=="ref"?i=e[o]:l[o]=e[o]===void 0&&a!=null?a[o]:e[o];return arguments.length>2&&(l.children=arguments.length>3?Rt.call(arguments,2):n),Et(t.type,l,r||t.key,i||t.ref,null)}function as(t){function e(n){var r,i;return this.getChildContext||(r=new Set,(i={})[e.__c]=this,this.getChildContext=function(){return i},this.componentWillUnmount=function(){r=null},this.shouldComponentUpdate=function(o){this.props.value!=o.value&&r.forEach(function(a){a.__e=!0,Kn(a)})},this.sub=function(o){r.add(o);var a=o.componentWillUnmount;o.componentWillUnmount=function(){r&&r.delete(o),a&&a.call(o)}}),n.children}return e.__c="__cC"+si++,e.__=t,e.Provider=e.__l=(e.Consumer=function(n,r){return n.children(r)}).contextType=e,e}Rt=cn.slice,_={__e:function(t,e,n,r){for(var i,o,a;e=e.__;)if((i=e.__c)&&!i.__)try{if((o=i.constructor)&&o.getDerivedStateFromError!=null&&(i.setState(o.getDerivedStateFromError(t)),a=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(t,r||{}),a=i.__d),a)return i.__E=i}catch(l){t=l}throw t}},ti=0,ni=function(t){return t!=null&&t.constructor===void 0},ye.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=je({},this.state),typeof t=="function"&&(t=t(je({},n),this.props)),t&&je(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),Kn(this))},ye.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Kn(this))},ye.prototype.render=O,Ue=[],ii=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,oi=function(t,e){return t.__v.__b-e.__v.__b},un.__r=0,Fn=Math.random().toString(8),sn="__d"+Fn,At="__a"+Fn,ai=/(PointerCapture)$|Capture$/i,Vn=0,Hn=hi(!1),Qn=hi(!0),si=0;var ss=0;function s(t,e,n,r,i,o){e||(e={});var a,l,c=e;if("ref"in c)for(l in c={},e)l=="ref"?a=e[l]:c[l]=e[l];var u={type:t,props:c,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--ss,__i:-1,__u:0,__source:i,__self:o};if(typeof t=="function"&&(a=t.defaultProps))for(l in a)c[l]===void 0&&(c[l]=a[l]);return _.vnode&&_.vnode(u),u}var Fe,B,Zn,xi,ct=0,vi=[],U=_,bi=U.__b,yi=U.__r,wi=U.diffed,ki=U.__c,_i=U.unmount,ji=U.__;function ut(t,e){U.__h&&U.__h(B,t,ct||e),ct=0;var n=B.__H||(B.__H={__:[],__h:[]});return t>=n.__.length&&n.__.push({}),n.__[t]}function R(t){return ct=1,he(Ei,t)}function he(t,e,n){var r=ut(Fe++,2);if(r.t=t,!r.__c&&(r.__=[n?n(e):Ei(void 0,e),function(l){var c=r.__N?r.__N[0]:r.__[0],u=r.t(c,l);c!==u&&(r.__N=[u,r.__[1]],r.__c.setState({}))}],r.__c=B,!B.__f)){var i=function(l,c,u){if(!r.__c.__H)return!0;var h=!1,f=r.__c.props!==l;if(r.__c.__H.__.some(function(p){if(p.__N){h=!0;var g=p.__[0];p.__=p.__N,p.__N=void 0,g!==p.__[0]&&(f=!0)}}),o){var d=o.call(this,l,c,u);return h?d||f:d}return!h||f};B.__f=!0;var o=B.shouldComponentUpdate,a=B.componentWillUpdate;B.componentWillUpdate=function(l,c,u){if(this.__e){var h=o;o=void 0,i(l,c,u),o=h}a&&a.call(this,l,c,u)},B.shouldComponentUpdate=i}return r.__N||r.__}function T(t,e){var n=ut(Fe++,3);!U.__s&&er(n.__H,e)&&(n.__=t,n.u=e,B.__H.__h.push(n))}function $t(t,e){var n=ut(Fe++,4);!U.__s&&er(n.__H,e)&&(n.__=t,n.u=e,B.__h.push(n))}function me(t){return ct=5,G(function(){return{current:t}},[])}function Si(t,e,n){ct=6,$t(function(){if(typeof t=="function"){var r=t(e());return function(){t(null),r&&typeof r=="function"&&r()}}if(t)return t.current=e(),function(){return t.current=null}},n==null?n:n.concat(t))}function G(t,e){var n=ut(Fe++,7);return er(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function N(t,e){return ct=8,G(function(){return t},e)}function Pt(t){var e=B.context[t.__c],n=ut(Fe++,9);return n.c=t,e?(n.__==null&&(n.__=!0,e.sub(B)),e.props.value):t.__}function Ci(t,e){U.useDebugValue&&U.useDebugValue(e?e(t):t)}function Ti(){var t=ut(Fe++,11);if(!t.__){for(var e=B.__v;e!==null&&!e.__m&&e.__!==null;)e=e.__;var n=e.__m||(e.__m=[0,0]);t.__="P"+n[0]+"-"+n[1]++}return t.__}function Ri(){for(var t;t=vi.shift();){var e=t.__H;if(t.__P&&e)try{e.__h.some(Xn),e.__h.some(Ii),e.__h=[]}catch(n){e.__h=[],U.__e(n,t.__v)}}}U.__b=function(t){B=null,bi&&bi(t)},U.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),ji&&ji(t,e)},U.__r=function(t){yi&&yi(t),Fe=0;var e=(B=t.__c).__H;e&&(Zn===B?(e.__h=[],B.__h=[],e.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(e.__h.length&&Ri(),Fe=0)),Zn=B},U.diffed=function(t){wi&&wi(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(vi.push(e)!==1&&xi===U.requestAnimationFrame||((xi=U.requestAnimationFrame)||ls)(Ri)),e.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),Zn=B=null},U.__c=function(t,e){e.some(function(n){try{n.__h.some(Xn),n.__h=n.__h.filter(function(r){return!r.__||Ii(r)})}catch(r){e.some(function(i){i.__h&&(i.__h=[])}),e=[],U.__e(r,n.__v)}}),ki&&ki(t,e)},U.unmount=function(t){_i&&_i(t);var e,n=t.__c;n&&n.__H&&(n.__H.__.some(function(r){try{Xn(r)}catch(i){e=i}}),n.__H=void 0,e&&U.__e(e,n.__v))};var Ai=typeof requestAnimationFrame=="function";function ls(t){var e,n=function(){clearTimeout(r),Ai&&cancelAnimationFrame(e),setTimeout(t)},r=setTimeout(n,35);Ai&&(e=requestAnimationFrame(n))}function Xn(t){var e=B,n=t.__c;typeof n=="function"&&(t.__c=void 0,n()),B=e}function Ii(t){var e=B;t.__c=t.__(),B=e}function er(t,e){return!t||t.length!==e.length||e.some(function(n,r){return n!==t[r]})}function Ei(t,e){return typeof e=="function"?e(t):e}function $i(t,e){for(var n in e)t[n]=e[n];return t}function tr(t,e){for(var n in t)if(n!=="__source"&&!(n in e))return!0;for(var r in e)if(r!=="__source"&&t[r]!==e[r])return!0;return!1}function Pi(t,e){var n=e(),r=R({t:{__:n,u:e}}),i=r[0].t,o=r[1];return $t(function(){i.__=n,i.u=e,nr(i)&&o({t:i})},[t,n,e]),T(function(){return nr(i)&&o({t:i}),t(function(){nr(i)&&o({t:i})})},[t]),n}function nr(t){try{return!((e=t.__)===(n=t.u())&&(e!==0||1/e==1/n)||e!=e&&n!=n)}catch{return!0}var e,n}function Mi(t){t()}function qi(t){return t}function Ni(){return[!1,Mi]}var Li=$t;function rr(t,e){this.props=t,this.context=e}function cs(t,e){function n(i){var o=this.props.ref;return o!=i.ref&&o&&(typeof o=="function"?o(null):o.current=null),e?!e(this.props,i)||o!=i.ref:tr(this.props,i)}function r(i){return this.shouldComponentUpdate=n,ge(t,i)}return r.displayName="Memo("+(t.displayName||t.name)+")",r.__f=r.prototype.isReactComponent=!0,r.type=t,r}(rr.prototype=new ye).isPureReactComponent=!0,rr.prototype.shouldComponentUpdate=function(t,e){return tr(this.props,t)||tr(this.state,e)};var Oi=_.__b;_.__b=function(t){t.type&&t.type.__f&&t.ref&&(t.props.ref=t.ref,t.ref=null),Oi&&Oi(t)};var us=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function ds(t){function e(n){var r=$i({},n);return delete r.ref,t(r,n.ref||null)}return e.$$typeof=us,e.render=t,e.prototype.isReactComponent=e.__f=!0,e.displayName="ForwardRef("+(t.displayName||t.name)+")",e}var zi=function(t,e){return t==null?null:Se(Se(t).map(e))},hs={map:zi,forEach:zi,count:function(t){return t?Se(t).length:0},only:function(t){var e=Se(t);if(e.length!==1)throw"Children.only";return e[0]},toArray:Se},ps=_.__e;_.__e=function(t,e,n,r){if(t.then){for(var i,o=e;o=o.__;)if((i=o.__c)&&i.__c)return e.__e==null&&(e.__e=n.__e,e.__k=n.__k),i.__c(t,e)}ps(t,e,n,r)};var Bi=_.unmount;function Di(t,e,n){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(r){typeof r.__c=="function"&&r.__c()}),t.__c.__H=null),(t=$i({},t)).__c!=null&&(t.__c.__P===n&&(t.__c.__P=e),t.__c.__e=!0,t.__c=null),t.__k=t.__k&&t.__k.map(function(r){return Di(r,e,n)})),t}function Ui(t,e,n){return t&&n&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(r){return Ui(r,e,n)}),t.__c&&t.__c.__P===e&&(t.__e&&n.appendChild(t.__e),t.__c.__e=!0,t.__c.__P=n)),t}function hn(){this.__u=0,this.o=null,this.__b=null}function Fi(t){var e=t.__&&t.__.__c;return e&&e.__a&&e.__a(t)}function fs(t){var e,n,r,i=null;function o(a){if(e||(e=t()).then(function(l){l&&(i=l.default||l),r=!0},function(l){n=l,r=!0}),n)throw n;if(!r)throw e;return i?ge(i,a):null}return o.displayName="Lazy",o.__f=!0,o}function Mt(){this.i=null,this.l=null}_.unmount=function(t){var e=t.__c;e&&(e.__z=!0),e&&e.__R&&e.__R(),e&&32&t.__u&&(t.type=null),Bi&&Bi(t)},(hn.prototype=new ye).__c=function(t,e){var n=e.__c,r=this;r.o==null&&(r.o=[]),r.o.push(n);var i=Fi(r.__v),o=!1,a=function(){o||r.__z||(o=!0,n.__R=null,i?i(c):c())};n.__R=a;var l=n.__P;n.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var u=r.state.__a;r.__v.__k[0]=Ui(u,u.__c.__P,u.__c.__O)}var h;for(r.setState({__a:r.__b=null});h=r.o.pop();)h.__P=l,h.forceUpdate()}};r.__u++||32&e.__u||r.setState({__a:r.__b=r.__v.__k[0]}),t.then(a,a)},hn.prototype.componentWillUnmount=function(){this.o=[]},hn.prototype.render=function(t,e){var n=this.__v;if(!n.__m){for(var r=n;r.__;)r=r.__;r=r.__m||(r.__m=[0,0]),n.__m=[r[1]++,0]}if(this.__b){if(n.__k){var i=document.createElement("div"),o=n.__k[0].__c;n.__k[0]=Di(this.__b,i,o.__O=o.__P)}this.__b=null}var a=e.__a&&ge(O,null,t.fallback);return a&&(a.__u&=-33),[ge(O,null,e.__a?null:t.children),a]};var Vi=function(t,e,n){if(++n[1]===n[0]&&t.l.delete(e),t.props.revealOrder&&(t.props.revealOrder[0]!=="t"||!t.l.size))for(n=t.i;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;t.i=n=n[2]}};function gs(t){return this.getChildContext=function(){return t.context},t.children}function ms(t){var e=this,n=t.v;if(e.componentWillUnmount=function(){Ke(null,e.h),e.h=null,e.v=null},e.v&&e.v!==n&&e.componentWillUnmount(),!e.h){for(var r=e.__v;r!==null&&!r.__m&&r.__!==null;)r=r.__;e.v=n,e.h={nodeType:1,parentNode:n,childNodes:[],__k:{__m:r.__m},contains:function(){return!0},namespaceURI:n.namespaceURI,insertBefore:function(i,o){this.childNodes.push(i),e.v.insertBefore(i,o)},removeChild:function(i){this.childNodes.splice(this.childNodes.indexOf(i)>>>1,1),e.v.removeChild(i)}}}Ke(ge(gs,{context:e.context},t.__v),e.h)}function xs(t,e){var n=ge(ms,{__v:t,v:e});return n.containerInfo=e,n}(Mt.prototype=new ye).__a=function(t){var e=this,n=Fi(e.__v),r=e.l.get(t);return r[0]++,function(i){var o=function(){e.props.revealOrder?(r.push(i),Vi(e,t,r)):i()};n?n(o):o()}},Mt.prototype.render=function(t){this.i=null,this.l=new Map;var e=Se(t.children);t.revealOrder&&t.revealOrder[0]==="b"&&e.reverse();for(var n=e.length;n--;)this.l.set(e[n],this.i=[1,0,this.i]);return t.children},Mt.prototype.componentDidUpdate=Mt.prototype.componentDidMount=function(){var t=this;this.l.forEach(function(e,n){Vi(t,n,e)})};var Hi=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,vs=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,bs=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,ys=/[A-Z0-9]/g,ws=typeof document<"u",ks=function(t){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(t)};function _s(t,e,n){return e.__k==null&&(e.textContent=""),Ke(t,e),typeof n=="function"&&n(),t?t.__c:null}function js(t,e,n){return mi(t,e),typeof n=="function"&&n(),t?t.__c:null}ye.prototype.isReactComponent=!0,["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(ye.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})});var Qi=_.event;_.event=function(t){return Qi&&(t=Qi(t)),t.persist=function(){},t.isPropagationStopped=function(){return this.cancelBubble},t.isDefaultPrevented=function(){return this.defaultPrevented},t.nativeEvent=t};var ir,Ss={configurable:!0,get:function(){return this.class}},Wi=_.vnode;_.vnode=function(t){typeof t.type=="string"&&(function(e){var n=e.props,r=e.type,i={},o=r.indexOf("-")==-1;for(var a in n){var l=n[a];if(!(a==="value"&&"defaultValue"in n&&l==null||ws&&a==="children"&&r==="noscript"||a==="class"||a==="className")){var c=a.toLowerCase();a==="defaultValue"&&"value"in n&&n.value==null?a="value":a==="download"&&l===!0?l="":c==="translate"&&l==="no"?l=!1:c[0]==="o"&&c[1]==="n"?c==="ondoubleclick"?a="ondblclick":c!=="onchange"||r!=="input"&&r!=="textarea"||ks(n.type)?c==="onfocus"?a="onfocusin":c==="onblur"?a="onfocusout":bs.test(a)&&(a=c):c=a="oninput":o&&vs.test(a)?a=a.replace(ys,"-$&").toLowerCase():l===null&&(l=void 0),c==="oninput"&&i[a=c]&&(a="oninputCapture"),i[a]=l}}r=="select"&&(i.multiple&&Array.isArray(i.value)&&(i.value=Se(n.children).forEach(function(u){u.props.selected=i.value.indexOf(u.props.value)!=-1})),i.defaultValue!=null&&(i.value=Se(n.children).forEach(function(u){u.props.selected=i.multiple?i.defaultValue.indexOf(u.props.value)!=-1:i.defaultValue==u.props.value}))),n.class&&!n.className?(i.class=n.class,Object.defineProperty(i,"className",Ss)):n.className&&(i.class=i.className=n.className),e.props=i})(t),t.$$typeof=Hi,Wi&&Wi(t)};var Ki=_.__r;_.__r=function(t){Ki&&Ki(t),ir=t.__c};var Gi=_.diffed;_.diffed=function(t){Gi&&Gi(t);var e=t.props,n=t.__e;n!=null&&t.type==="textarea"&&"value"in e&&e.value!==n.value&&(n.value=e.value==null?"":e.value),ir=null};var Cs={ReactCurrentDispatcher:{current:{readContext:function(t){return ir.__n[t.__c].props.value},useCallback:N,useContext:Pt,useDebugValue:Ci,useDeferredValue:qi,useEffect:T,useId:Ti,useImperativeHandle:Si,useInsertionEffect:Li,useLayoutEffect:$t,useMemo:G,useReducer:he,useRef:me,useState:R,useSyncExternalStore:Pi,useTransition:Ni}}};function Ts(t){return ge.bind(null,t)}function pn(t){return!!t&&t.$$typeof===Hi}function Rs(t){return pn(t)&&t.type===O}function As(t){return!!t&&typeof t.displayName=="string"&&t.displayName.indexOf("Memo(")==0}function Is(t){return pn(t)?os.apply(null,arguments):t}function Es(t){return!!t.__k&&(Ke(null,t),!0)}function $s(t){return t&&(t.base||t.nodeType===1&&t)||null}for(var Ps=function(t,e){return t(e)},Ms=function(t,e){var n=_.debounceRendering;_.debounceRendering=function(i){return i()};var r=t(e);return _.debounceRendering=n,r},qs=pn,or={useState:R,useId:Ti,useReducer:he,useEffect:T,useLayoutEffect:$t,useInsertionEffect:Li,useTransition:Ni,useDeferredValue:qi,useSyncExternalStore:Pi,startTransition:Mi,useRef:me,useImperativeHandle:Si,useMemo:G,useCallback:N,useContext:Pt,useDebugValue:Ci,version:"18.3.1",Children:hs,render:_s,hydrate:js,unmountComponentAtNode:Es,createPortal:xs,createElement:ge,createContext:as,createFactory:Ts,cloneElement:Is,createRef:Xa,Fragment:O,isValidElement:pn,isElement:qs,isFragment:Rs,isMemo:As,findDOMNode:$s,Component:ye,PureComponent:rr,memo:cs,forwardRef:ds,flushSync:Ms,unstable_batchedUpdates:Ps,StrictMode:O,Suspense:hn,SuspenseList:Mt,lazy:fs,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Cs},Ce=[],xe=[],Ns=Uint8Array,ar="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",dt=0,Ls=ar.length;dt<Ls;++dt)Ce[dt]=ar[dt],xe[ar.charCodeAt(dt)]=dt;xe[45]=62,xe[95]=63;function Os(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function zs(t,e,n){return(e+n)*3/4-n}function qt(t){var e,n=Os(t),r=n[0],i=n[1],o=new Ns(zs(t,r,i)),a=0,l=i>0?r-4:r,c;for(c=0;c<l;c+=4)e=xe[t.charCodeAt(c)]<<18|xe[t.charCodeAt(c+1)]<<12|xe[t.charCodeAt(c+2)]<<6|xe[t.charCodeAt(c+3)],o[a++]=e>>16&255,o[a++]=e>>8&255,o[a++]=e&255;return i===2&&(e=xe[t.charCodeAt(c)]<<2|xe[t.charCodeAt(c+1)]>>4,o[a++]=e&255),i===1&&(e=xe[t.charCodeAt(c)]<<10|xe[t.charCodeAt(c+1)]<<4|xe[t.charCodeAt(c+2)]>>2,o[a++]=e>>8&255,o[a++]=e&255),o}function Bs(t){return Ce[t>>18&63]+Ce[t>>12&63]+Ce[t>>6&63]+Ce[t&63]}function Ds(t,e,n){for(var r,i=[],o=e;o<n;o+=3)r=(t[o]<<16&16711680)+(t[o+1]<<8&65280)+(t[o+2]&255),i.push(Bs(r));return i.join("")}function Nt(t){for(var e,n=t.length,r=n%3,i=[],o=16383,a=0,l=n-r;a<l;a+=o)i.push(Ds(t,a,a+o>l?l:a+o));return r===1?(e=t[n-1],i.push(Ce[e>>2]+Ce[e<<4&63]+"==")):r===2&&(e=(t[n-2]<<8)+t[n-1],i.push(Ce[e>>10]+Ce[e>>4&63]+Ce[e<<2&63]+"=")),i.join("")}function qe(t){if(t===void 0)return{};if(!Ji(t))throw new Error(`The arguments to a Convex function must be an object. Received: ${t}`);return t}function Us(t){if(typeof t>"u")throw new Error("Client created with undefined deployment address. If you used an environment variable, check that it's set.");if(typeof t!="string")throw new Error(`Invalid deployment address: found ${t}".`);if(!(t.startsWith("http:")||t.startsWith("https:")))throw new Error(`Invalid deployment address: Must start with "https://" or "http://". Found "${t}".`);try{new URL(t)}catch{throw new Error(`Invalid deployment address: "${t}" is not a valid URL. If you believe this URL is correct, use the \`skipConvexDeploymentUrlCheck\` option to bypass this.`)}if(t.endsWith(".convex.site"))throw new Error(`Invalid deployment address: "${t}" ends with .convex.site, which is used for HTTP Actions. Convex deployment URLs typically end with .convex.cloud? If you believe this URL is correct, use the \`skipConvexDeploymentUrlCheck\` option to bypass this.`)}function Ji(t){const e=typeof t=="object",n=Object.getPrototypeOf(t),r=n===null||n===Object.prototype||n?.constructor?.name==="Object";return e&&r}const Yi=!0,ht=BigInt("-9223372036854775808"),sr=BigInt("9223372036854775807"),lr=BigInt("0"),Fs=BigInt("8"),Vs=BigInt("256");function Zi(t){return Number.isNaN(t)||!Number.isFinite(t)||Object.is(t,-0)}function Hs(t){t<lr&&(t-=ht+ht);let e=t.toString(16);e.length%2===1&&(e="0"+e);const n=new Uint8Array(new ArrayBuffer(8));let r=0;for(const i of e.match(/.{2}/g).reverse())n.set([parseInt(i,16)],r++),t>>=Fs;return Nt(n)}function Qs(t){const e=qt(t);if(e.byteLength!==8)throw new Error(`Received ${e.byteLength} bytes, expected 8 for $integer`);let n=lr,r=lr;for(const i of e)n+=BigInt(i)*Vs**r,r++;return n>sr&&(n+=ht+ht),n}function Ws(t){if(t<ht||sr<t)throw new Error(`BigInt ${t} does not fit into a 64-bit signed integer.`);const e=new ArrayBuffer(8);return new DataView(e).setBigInt64(0,t,!0),Nt(new Uint8Array(e))}function Ks(t){const e=qt(t);if(e.byteLength!==8)throw new Error(`Received ${e.byteLength} bytes, expected 8 for $integer`);return new DataView(e.buffer).getBigInt64(0,!0)}const Gs=DataView.prototype.setBigInt64?Ws:Hs,Js=DataView.prototype.getBigInt64?Ks:Qs,Xi=1024;function eo(t){if(t.length>Xi)throw new Error(`Field name ${t} exceeds maximum field name length ${Xi}.`);if(t.startsWith("$"))throw new Error(`Field name ${t} starts with a '$', which is reserved.`);for(let e=0;e<t.length;e+=1){const n=t.charCodeAt(e);if(n<32||n>=127)throw new Error(`Field name ${t} has invalid character '${t[e]}': Field names can only contain non-control ASCII characters`)}}function pt(t){if(t===null||typeof t=="boolean"||typeof t=="number"||typeof t=="string")return t;if(Array.isArray(t))return t.map(r=>pt(r));if(typeof t!="object")throw new Error(`Unexpected type of ${t}`);const e=Object.entries(t);if(e.length===1){const r=e[0][0];if(r==="$bytes"){if(typeof t.$bytes!="string")throw new Error(`Malformed $bytes field on ${t}`);return qt(t.$bytes).buffer}if(r==="$integer"){if(typeof t.$integer!="string")throw new Error(`Malformed $integer field on ${t}`);return Js(t.$integer)}if(r==="$float"){if(typeof t.$float!="string")throw new Error(`Malformed $float field on ${t}`);const i=qt(t.$float);if(i.byteLength!==8)throw new Error(`Received ${i.byteLength} bytes, expected 8 for $float`);const a=new DataView(i.buffer).getFloat64(0,Yi);if(!Zi(a))throw new Error(`Float ${a} should be encoded as a number`);return a}if(r==="$set")throw new Error("Received a Set which is no longer supported as a Convex type.");if(r==="$map")throw new Error("Received a Map which is no longer supported as a Convex type.")}const n={};for(const[r,i]of Object.entries(t))eo(r),n[r]=pt(i);return n}const to=16384;function Lt(t){const e=JSON.stringify(t,(n,r)=>r===void 0?"undefined":typeof r=="bigint"?`${r.toString()}n`:r);if(e.length>to){const n="[...truncated]";let r=to-n.length;const i=e.codePointAt(r-1);return i!==void 0&&i>65535&&(r-=1),e.substring(0,r)+n}return e}function cr(t,e,n,r){if(t===void 0){const a=n&&` (present at path ${n} in original object ${Lt(e)})`;throw new Error(`undefined is not a valid Convex value${a}. To learn about Convex's supported types, see https://docs.convex.dev/using/types.`)}if(t===null)return t;if(typeof t=="bigint"){if(t<ht||sr<t)throw new Error(`BigInt ${t} does not fit into a 64-bit signed integer.`);return{$integer:Gs(t)}}if(typeof t=="number")if(Zi(t)){const a=new ArrayBuffer(8);return new DataView(a).setFloat64(0,t,Yi),{$float:Nt(new Uint8Array(a))}}else return t;if(typeof t=="boolean"||typeof t=="string")return t;if(t instanceof ArrayBuffer)return{$bytes:Nt(new Uint8Array(t))};if(Array.isArray(t))return t.map((a,l)=>cr(a,e,n+`[${l}]`));if(t instanceof Set)throw new Error(ur(n,"Set",[...t],e));if(t instanceof Map)throw new Error(ur(n,"Map",[...t],e));if(!Ji(t)){const a=t?.constructor?.name,l=a?`${a} `:"";throw new Error(ur(n,l,t,e))}const i={},o=Object.entries(t);o.sort(([a,l],[c,u])=>a===c?0:a<c?-1:1);for(const[a,l]of o)l!==void 0&&(eo(a),i[a]=cr(l,e,n+`.${a}`));return i}function ur(t,e,n,r){return t?`${e}${Lt(n)} is not a supported Convex type (present at path ${t} in original object ${Lt(r)}). To learn about Convex's supported types, see https://docs.convex.dev/using/types.`:`${e}${Lt(n)} is not a supported Convex type.`}function Te(t){return cr(t,t,"")}var Ys=Object.defineProperty,Zs=(t,e,n)=>e in t?Ys(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,dr=(t,e,n)=>Zs(t,typeof e!="symbol"?e+"":e,n),no,ro;const Xs=Symbol.for("ConvexError");class fn extends(ro=Error,no=Xs,ro){constructor(e){super(typeof e=="string"?e:Lt(e)),dr(this,"name","ConvexError"),dr(this,"data"),dr(this,no,!0),this.data=e}}const io=()=>Array.from({length:4},()=>0);io(),io();const oo="1.42.0";var el=Object.defineProperty,tl=(t,e,n)=>e in t?el(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ao=(t,e,n)=>tl(t,typeof e!="symbol"?e+"":e,n);const nl="color:rgb(0, 145, 255)";function so(t){switch(t){case"query":return"Q";case"mutation":return"M";case"action":return"A";case"any":return"?"}}class lo{constructor(e){ao(this,"_onLogLineFuncs"),ao(this,"_verbose"),this._onLogLineFuncs={},this._verbose=e.verbose}addLogLineListener(e){let n=Math.random().toString(36).substring(2,15);for(let r=0;r<10&&this._onLogLineFuncs[n]!==void 0;r++)n=Math.random().toString(36).substring(2,15);return this._onLogLineFuncs[n]=e,()=>{delete this._onLogLineFuncs[n]}}logVerbose(...e){if(this._verbose)for(const n of Object.values(this._onLogLineFuncs))n("debug",`${new Date().toISOString()}`,...e)}log(...e){for(const n of Object.values(this._onLogLineFuncs))n("info",...e)}warn(...e){for(const n of Object.values(this._onLogLineFuncs))n("warn",...e)}error(...e){for(const n of Object.values(this._onLogLineFuncs))n("error",...e)}}function co(t){const e=new lo(t);return e.addLogLineListener((n,...r)=>{switch(n){case"debug":console.debug(...r);break;case"info":console.log(...r);break;case"warn":console.warn(...r);break;case"error":console.error(...r);break;default:console.log(...r)}}),e}function uo(t){return new lo(t)}function gn(t,e,n,r,i){const o=so(n);if(typeof i=="object"&&(i=`ConvexError ${JSON.stringify(i.errorData,null,2)}`),e==="info"){const a=i.match(/^\[.*?\] /);if(a===null){t.error(`[CONVEX ${o}(${r})] Could not parse console.log`);return}const l=i.slice(1,a[0].length-2),c=i.slice(a[0].length);t.log(`%c[CONVEX ${o}(${r})] [${l}]`,nl,c)}else t.error(`[CONVEX ${o}(${r})] ${i}`)}function rl(t,e){const n=`[CONVEX FATAL ERROR] ${e}`;return t.error(n),new Error(n)}function ft(t,e,n){return`[CONVEX ${so(t)}(${e})] ${n.errorMessage}
2
+ Called by client`}function hr(t,e){return e.data=t.errorData,e}function Ge(t){const e=t.split(":");let n,r;return e.length===1?(n=e[0],r="default"):(n=e.slice(0,e.length-1).join(":"),r=e[e.length-1]),n.endsWith(".js")&&(n=n.slice(0,-3)),`${n}:${r}`}function Je(t,e){return JSON.stringify({udfPath:Ge(t),args:Te(e)})}function ho(t,e,n){const{initialNumItems:r,id:i}=n;return JSON.stringify({type:"paginated",udfPath:Ge(t),args:Te(e),options:Te({initialNumItems:r,id:i})})}var il=Object.defineProperty,ol=(t,e,n)=>e in t?il(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Re=(t,e,n)=>ol(t,typeof e!="symbol"?e+"":e,n);class al{constructor(){Re(this,"nextQueryId"),Re(this,"querySetVersion"),Re(this,"querySet"),Re(this,"queryIdToToken"),Re(this,"identityVersion"),Re(this,"auth"),Re(this,"outstandingQueriesOlderThanRestart"),Re(this,"outstandingAuthOlderThanRestart"),Re(this,"paused"),Re(this,"pendingQuerySetModifications"),this.nextQueryId=0,this.querySetVersion=0,this.identityVersion=0,this.querySet=new Map,this.queryIdToToken=new Map,this.outstandingQueriesOlderThanRestart=new Set,this.outstandingAuthOlderThanRestart=!1,this.paused=!1,this.pendingQuerySetModifications=new Map}hasSyncedPastLastReconnect(){return this.outstandingQueriesOlderThanRestart.size===0&&!this.outstandingAuthOlderThanRestart}markAuthCompletion(){this.outstandingAuthOlderThanRestart=!1}subscribe(e,n,r,i){const o=Ge(e),a=Je(o,n),l=this.querySet.get(a);if(l!==void 0)return l.numSubscribers+=1,{queryToken:a,modification:null,unsubscribe:()=>this.removeSubscriber(a)};{const c=this.nextQueryId++,u={id:c,canonicalizedUdfPath:o,args:n,numSubscribers:1,journal:r,componentPath:i};this.querySet.set(a,u),this.queryIdToToken.set(c,a);const h=this.querySetVersion,f=this.querySetVersion+1,d={type:"Add",queryId:c,udfPath:o,args:[Te(n)],journal:r,componentPath:i};return this.paused?this.pendingQuerySetModifications.set(c,d):this.querySetVersion=f,{queryToken:a,modification:{type:"ModifyQuerySet",baseVersion:h,newVersion:f,modifications:[d]},unsubscribe:()=>this.removeSubscriber(a)}}}transition(e){for(const n of e.modifications)switch(n.type){case"QueryUpdated":case"QueryFailed":{this.outstandingQueriesOlderThanRestart.delete(n.queryId);const r=n.journal;if(r!==void 0){const i=this.queryIdToToken.get(n.queryId);i!==void 0&&(this.querySet.get(i).journal=r)}break}case"QueryRemoved":{this.outstandingQueriesOlderThanRestart.delete(n.queryId);break}default:throw new Error(`Invalid modification ${n.type}`)}}queryId(e,n){const r=Ge(e),i=Je(r,n),o=this.querySet.get(i);return o!==void 0?o.id:null}isCurrentOrNewerAuthVersion(e){return e>=this.identityVersion}getAuth(){return this.auth}setAuth(e){this.auth={tokenType:"User",value:e};const n=this.identityVersion;return this.paused||(this.identityVersion=n+1),{type:"Authenticate",baseVersion:n,...this.auth}}setAdminAuth(e,n){const r={tokenType:"Admin",value:e,impersonating:n};this.auth=r;const i=this.identityVersion;return this.paused||(this.identityVersion=i+1),{type:"Authenticate",baseVersion:i,...r}}clearAuth(){this.auth=void 0,this.markAuthCompletion();const e=this.identityVersion;return this.paused||(this.identityVersion=e+1),{type:"Authenticate",tokenType:"None",baseVersion:e}}hasAuth(){return!!this.auth}isNewAuth(e){return this.auth?.value!==e}queryPath(e){const n=this.queryIdToToken.get(e);return n?this.querySet.get(n).canonicalizedUdfPath:null}queryArgs(e){const n=this.queryIdToToken.get(e);return n?this.querySet.get(n).args:null}queryToken(e){return this.queryIdToToken.get(e)??null}queryJournal(e){return this.querySet.get(e)?.journal}restart(){this.unpause(),this.outstandingQueriesOlderThanRestart.clear();const e=[];for(const i of this.querySet.values()){const o={type:"Add",queryId:i.id,udfPath:i.canonicalizedUdfPath,args:[Te(i.args)],journal:i.journal,componentPath:i.componentPath};e.push(o),this.outstandingQueriesOlderThanRestart.add(i.id)}this.querySetVersion=1;const n={type:"ModifyQuerySet",baseVersion:0,newVersion:1,modifications:e};if(!this.auth)return this.identityVersion=0,[n,void 0];this.outstandingAuthOlderThanRestart=!0;const r={type:"Authenticate",baseVersion:0,...this.auth};return this.identityVersion=1,[n,r]}pause(){this.paused=!0}resume(){const e=this.pendingQuerySetModifications.size>0?{type:"ModifyQuerySet",baseVersion:this.querySetVersion,newVersion:++this.querySetVersion,modifications:Array.from(this.pendingQuerySetModifications.values())}:void 0,n=this.auth!==void 0?{type:"Authenticate",baseVersion:this.identityVersion++,...this.auth}:void 0;return this.unpause(),[e,n]}unpause(){this.paused=!1,this.pendingQuerySetModifications.clear()}removeSubscriber(e){const n=this.querySet.get(e);if(n.numSubscribers>1)return n.numSubscribers-=1,null;{this.querySet.delete(e),this.queryIdToToken.delete(n.id),this.outstandingQueriesOlderThanRestart.delete(n.id);const r=this.querySetVersion,i=this.querySetVersion+1,o={type:"Remove",queryId:n.id};return this.paused?this.pendingQuerySetModifications.has(n.id)?this.pendingQuerySetModifications.delete(n.id):this.pendingQuerySetModifications.set(n.id,o):this.querySetVersion=i,{type:"ModifyQuerySet",baseVersion:r,newVersion:i,modifications:[o]}}}}var sl=Object.defineProperty,ll=(t,e,n)=>e in t?sl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,mn=(t,e,n)=>ll(t,typeof e!="symbol"?e+"":e,n);class cl{constructor(e,n){this.logger=e,this.markConnectionStateDirty=n,mn(this,"inflightRequests"),mn(this,"requestsOlderThanRestart"),mn(this,"inflightMutationsCount",0),mn(this,"inflightActionsCount",0),this.inflightRequests=new Map,this.requestsOlderThanRestart=new Set}request(e,n){const r=new Promise(i=>{const o=n?"Requested":"NotSent";this.inflightRequests.set(e.requestId,{message:e,status:{status:o,requestedAt:new Date,onResult:i}}),e.type==="Mutation"?this.inflightMutationsCount++:e.type==="Action"&&this.inflightActionsCount++});return this.markConnectionStateDirty(),r}onResponse(e){const n=this.inflightRequests.get(e.requestId);if(n===void 0||n.status.status==="Completed")return null;const r=n.message.type==="Mutation"?"mutation":"action",i=n.message.udfPath;for(const c of e.logLines)gn(this.logger,"info",r,i,c);const o=n.status;let a,l;if(e.success)a={success:!0,logLines:e.logLines,value:pt(e.result)},l=()=>o.onResult(a);else{const c=e.result,{errorData:u}=e;gn(this.logger,"error",r,i,c),a={success:!1,errorMessage:c,errorData:u!==void 0?pt(u):void 0,logLines:e.logLines},l=()=>o.onResult(a)}return e.type==="ActionResponse"||!e.success?(l(),this.inflightRequests.delete(e.requestId),this.requestsOlderThanRestart.delete(e.requestId),n.message.type==="Action"?this.inflightActionsCount--:n.message.type==="Mutation"&&this.inflightMutationsCount--,this.markConnectionStateDirty(),{requestId:e.requestId,result:a}):(n.status={status:"Completed",result:a,ts:e.ts,onResolve:l},null)}removeCompleted(e){const n=new Map;for(const[r,i]of this.inflightRequests.entries()){const o=i.status;o.status==="Completed"&&o.ts.lessThanOrEqual(e)&&(o.onResolve(),n.set(r,o.result),i.message.type==="Mutation"?this.inflightMutationsCount--:i.message.type==="Action"&&this.inflightActionsCount--,this.inflightRequests.delete(r),this.requestsOlderThanRestart.delete(r))}return n.size>0&&this.markConnectionStateDirty(),n}restart(){this.requestsOlderThanRestart=new Set(this.inflightRequests.keys());const e=[];for(const[n,r]of this.inflightRequests){if(r.status.status==="NotSent"){r.status.status="Requested",e.push(r.message);continue}if(r.message.type==="Mutation")e.push(r.message);else if(r.message.type==="Action"){if(this.inflightRequests.delete(n),this.requestsOlderThanRestart.delete(n),this.inflightActionsCount--,r.status.status==="Completed")throw new Error("Action should never be in 'Completed' state");r.status.onResult({success:!1,errorMessage:"Connection lost while action was in flight",logLines:[]})}}return this.markConnectionStateDirty(),e}resume(){const e=[];for(const[,n]of this.inflightRequests)if(n.status.status==="NotSent"){n.status.status="Requested",e.push(n.message);continue}return e}hasIncompleteRequests(){for(const e of this.inflightRequests.values())if(e.status.status==="Requested")return!0;return!1}hasInflightRequests(){return this.inflightRequests.size>0}hasSyncedPastLastReconnect(){return this.requestsOlderThanRestart.size===0}timeOfOldestInflightRequest(){if(this.inflightRequests.size===0)return null;let e=Date.now();for(const n of this.inflightRequests.values())n.status.status!=="Completed"&&n.status.requestedAt.getTime()<e&&(e=n.status.requestedAt.getTime());return new Date(e)}inflightMutations(){return this.inflightMutationsCount}inflightActions(){return this.inflightActionsCount}}const Ot=Symbol.for("functionName"),po=Symbol.for("toReferencePath");function ul(t){return t[po]??null}function dl(t){return t.startsWith("function://")}function hl(t){let e;if(typeof t=="string")dl(t)?e={functionHandle:t}:e={name:t};else if(t[Ot])e={name:t[Ot]};else{const n=ul(t);if(!n)throw new Error(`${t} is not a functionReference`);e={reference:n}}return e}function ae(t){const e=hl(t);if(e.name===void 0)throw e.functionHandle!==void 0?new Error(`Expected function reference like "api.file.func" or "internal.file.func", but received function handle ${e.functionHandle}`):e.reference!==void 0?new Error(`Expected function reference in the current component like "api.file.func" or "internal.file.func", but received reference ${e.reference}`):new Error(`Expected function reference like "api.file.func" or "internal.file.func", but received ${JSON.stringify(e)}`);if(typeof t=="string")return t;const n=t[Ot];if(!n)throw new Error(`${t} is not a functionReference`);return n}function pr(t){return{[Ot]:t}}function fo(t=[]){const e={get(n,r){if(typeof r=="string"){const i=[...t,r];return fo(i)}else if(r===Ot){if(t.length<2){const a=["api",...t].join(".");throw new Error(`API path is expected to be of the form \`api.moduleName.functionName\`. Found: \`${a}\``)}const i=t.slice(0,-1).join("/"),o=t[t.length-1];return o==="default"?i:i+":"+o}else return r===Symbol.toStringTag?"FunctionReference":void 0}};return new Proxy({},e)}const pl=fo();var fl=Object.defineProperty,gl=(t,e,n)=>e in t?fl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,xn=(t,e,n)=>gl(t,typeof e!="symbol"?e+"":e,n);class zt{constructor(e){xn(this,"queryResults"),xn(this,"modifiedQueries"),this.queryResults=e,this.modifiedQueries=[]}getQuery(e,...n){const r=qe(n[0]),i=ae(e),o=this.queryResults.get(Je(i,r));if(o!==void 0)return zt.queryValue(o.result)}getAllQueries(e){const n=[],r=ae(e);for(const i of this.queryResults.values())i.udfPath===Ge(r)&&n.push({args:i.args,value:zt.queryValue(i.result)});return n}setQuery(e,n,r){const i=qe(n),o=ae(e),a=Je(o,i);let l;r===void 0?l=void 0:l={success:!0,value:r,logLines:[]};const c={udfPath:o,args:i,result:l};this.queryResults.set(a,c),this.modifiedQueries.push(a)}static queryValue(e){if(e!==void 0)return e.success?e.value:void 0}}class ml{constructor(){xn(this,"queryResults"),xn(this,"optimisticUpdates"),this.queryResults=new Map,this.optimisticUpdates=[]}ingestQueryResultsFromServer(e,n){this.optimisticUpdates=this.optimisticUpdates.filter(a=>!n.has(a.mutationId));const r=this.queryResults;this.queryResults=new Map(e);const i=new zt(this.queryResults);for(const a of this.optimisticUpdates)a.update(i);const o=[];for(const[a,l]of this.queryResults){const c=r.get(a);(c===void 0||c.result!==l.result)&&o.push(a)}return o}applyOptimisticUpdate(e,n){this.optimisticUpdates.push({update:e,mutationId:n});const r=new zt(this.queryResults);return e(r),r.modifiedQueries}rawQueryResult(e){const n=this.queryResults.get(e);if(n!==void 0)return n.result}queryResult(e){const n=this.queryResults.get(e);if(n===void 0)return;const r=n.result;if(r!==void 0){if(r.success)return r.value;throw r.errorData!==void 0?hr(r,new fn(ft("query",n.udfPath,r))):new Error(ft("query",n.udfPath,r))}}hasQueryResult(e){return this.queryResults.get(e)!==void 0}queryLogs(e){return this.queryResults.get(e)?.result?.logLines}}var xl=Object.defineProperty,vl=(t,e,n)=>e in t?xl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,fr=(t,e,n)=>vl(t,typeof e!="symbol"?e+"":e,n);class ce{constructor(e,n){fr(this,"low"),fr(this,"high"),fr(this,"__isUnsignedLong__"),this.low=e|0,this.high=n|0,this.__isUnsignedLong__=!0}static isLong(e){return(e&&e.__isUnsignedLong__)===!0}static fromBytesLE(e){return new ce(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24)}toBytesLE(){const e=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]}static fromNumber(e){return isNaN(e)||e<0?go:e>=bl?yl:new ce(e%Bt|0,e/Bt|0)}toString(){return(BigInt(this.high)*BigInt(Bt)+BigInt(this.low)).toString()}equals(e){return ce.isLong(e)||(e=ce.fromValue(e)),this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low}notEquals(e){return!this.equals(e)}comp(e){return ce.isLong(e)||(e=ce.fromValue(e)),this.equals(e)?0:e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1}lessThanOrEqual(e){return this.comp(e)<=0}static fromValue(e){return typeof e=="number"?ce.fromNumber(e):new ce(e.low,e.high)}}const go=new ce(0,0),mo=65536,Bt=mo*mo,bl=Bt*Bt,yl=new ce(-1,-1);var wl=Object.defineProperty,kl=(t,e,n)=>e in t?wl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,vn=(t,e,n)=>kl(t,typeof e!="symbol"?e+"":e,n);class xo{constructor(e,n){vn(this,"version"),vn(this,"remoteQuerySet"),vn(this,"queryPath"),vn(this,"logger"),this.version={querySet:0,ts:ce.fromNumber(0),identity:0},this.remoteQuerySet=new Map,this.queryPath=e,this.logger=n}transition(e){const n=e.startVersion;if(this.version.querySet!==n.querySet||this.version.ts.notEquals(n.ts)||this.version.identity!==n.identity)throw new Error(`Invalid start version: ${n.ts.toString()}:${n.querySet}:${n.identity}, transitioning from ${this.version.ts.toString()}:${this.version.querySet}:${this.version.identity}`);for(const r of e.modifications)switch(r.type){case"QueryUpdated":{const i=this.queryPath(r.queryId);if(i)for(const a of r.logLines)gn(this.logger,"info","query",i,a);const o=pt(r.value??null);this.remoteQuerySet.set(r.queryId,{success:!0,value:o,logLines:r.logLines});break}case"QueryFailed":{const i=this.queryPath(r.queryId);if(i)for(const a of r.logLines)gn(this.logger,"info","query",i,a);const{errorData:o}=r;this.remoteQuerySet.set(r.queryId,{success:!1,errorMessage:r.errorMessage,errorData:o!==void 0?pt(o):void 0,logLines:r.logLines});break}case"QueryRemoved":{this.remoteQuerySet.delete(r.queryId);break}default:throw new Error(`Invalid modification ${r.type}`)}this.version=e.endVersion}remoteQueryResults(){return this.remoteQuerySet}timestamp(){return this.version.ts}}function gr(t){const e=qt(t);return ce.fromBytesLE(Array.from(e))}function _l(t){const e=new Uint8Array(t.toBytesLE());return Nt(e)}function vo(t){switch(t.type){case"FatalError":case"AuthError":case"ActionResponse":case"TransitionChunk":case"Ping":return{...t};case"MutationResponse":return t.success?{...t,ts:gr(t.ts)}:{...t};case"Transition":return{...t,startVersion:{...t.startVersion,ts:gr(t.startVersion.ts)},endVersion:{...t.endVersion,ts:gr(t.endVersion.ts)}}}}function jl(t){switch(t.type){case"Authenticate":case"ModifyQuerySet":case"Mutation":case"Action":case"Event":return{...t};case"Connect":return t.maxObservedTimestamp!==void 0?{...t,maxObservedTimestamp:_l(t.maxObservedTimestamp)}:{...t,maxObservedTimestamp:void 0}}}var Sl=Object.defineProperty,Cl=(t,e,n)=>e in t?Sl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,J=(t,e,n)=>Cl(t,typeof e!="symbol"?e+"":e,n);const Tl=1e3,Rl=1001,Al=1005,Il=4040;let bn;function gt(){return bn===void 0&&(bn=Date.now()),typeof performance>"u"||!performance.now?Date.now():Math.round(bn+performance.now())}function bo(){return`t=${Math.round((gt()-bn)/100)/10}s`}const yo={InternalServerError:{timeout:1e3},SubscriptionsWorkerFullError:{timeout:3e3},TooManyConcurrentRequests:{timeout:3e3},CommitterFullError:{timeout:3e3},AwsTooManyRequestsException:{timeout:3e3},ExecuteFullError:{timeout:3e3},SystemTimeoutError:{timeout:3e3},ExpiredInQueue:{timeout:3e3},VectorIndexesUnavailable:{timeout:1e3},SearchIndexesUnavailable:{timeout:1e3},TableSummariesUnavailable:{timeout:1e3},VectorIndexTooLarge:{timeout:3e3},SearchIndexTooLarge:{timeout:3e3},TooManyWritesInTimePeriod:{timeout:3e3}};function El(t){if(t===void 0)return"Unknown";for(const e of Object.keys(yo))if(t.startsWith(e))return e;return"Unknown"}class $l{constructor(e,n,r,i,o,a){this.markConnectionStateDirty=o,this.debug=a,J(this,"socket"),J(this,"connectionCount"),J(this,"_hasEverConnected",!1),J(this,"lastCloseReason"),J(this,"transitionChunkBuffer",null),J(this,"defaultInitialBackoff"),J(this,"maxBackoff"),J(this,"retries"),J(this,"serverInactivityThreshold"),J(this,"reconnectDueToServerInactivityTimeout"),J(this,"scheduledReconnect",null),J(this,"networkOnlineHandler",null),J(this,"pendingNetworkRecoveryInfo",null),J(this,"uri"),J(this,"onOpen"),J(this,"onResume"),J(this,"onMessage"),J(this,"webSocketConstructor"),J(this,"logger"),J(this,"onServerDisconnectError"),this.webSocketConstructor=r,this.socket={state:"disconnected"},this.connectionCount=0,this.lastCloseReason="InitialConnect",this.defaultInitialBackoff=1e3,this.maxBackoff=16e3,this.retries=0,this.serverInactivityThreshold=6e4,this.reconnectDueToServerInactivityTimeout=null,this.uri=e,this.onOpen=n.onOpen,this.onResume=n.onResume,this.onMessage=n.onMessage,this.onServerDisconnectError=n.onServerDisconnectError,this.logger=i,this.setupNetworkListener(),this.connect()}setSocketState(e){this.socket=e,this._logVerbose(`socket state changed: ${this.socket.state}, paused: ${"paused"in this.socket?this.socket.paused:void 0}`),this.markConnectionStateDirty()}setupNetworkListener(){typeof window>"u"||typeof window.addEventListener!="function"||this.networkOnlineHandler===null&&(this.networkOnlineHandler=()=>{this._logVerbose("network online event detected"),this.tryReconnectImmediately()},window.addEventListener("online",this.networkOnlineHandler),this._logVerbose("network online event listener registered"))}cleanupNetworkListener(){this.networkOnlineHandler&&typeof window<"u"&&typeof window.removeEventListener=="function"&&(window.removeEventListener("online",this.networkOnlineHandler),this.networkOnlineHandler=null,this._logVerbose("network online event listener removed"))}assembleTransition(e){if(e.partNumber<0||e.partNumber>=e.totalParts||e.totalParts===0||this.transitionChunkBuffer&&(this.transitionChunkBuffer.totalParts!==e.totalParts||this.transitionChunkBuffer.transitionId!==e.transitionId))throw this.transitionChunkBuffer=null,new Error("Invalid TransitionChunk");if(this.transitionChunkBuffer===null&&(this.transitionChunkBuffer={chunks:[],totalParts:e.totalParts,transitionId:e.transitionId}),e.partNumber!==this.transitionChunkBuffer.chunks.length){const n=this.transitionChunkBuffer.chunks.length;throw this.transitionChunkBuffer=null,new Error(`TransitionChunk received out of order: expected part ${n}, got ${e.partNumber}`)}if(this.transitionChunkBuffer.chunks.push(e.chunk),this.transitionChunkBuffer.chunks.length===e.totalParts){const n=this.transitionChunkBuffer.chunks.join("");this.transitionChunkBuffer=null;const r=vo(JSON.parse(n));if(r.type!=="Transition")throw new Error(`Expected Transition, got ${r.type} after assembling chunks`);return r}return null}connect(){if(this.socket.state==="terminated")return;if(this.socket.state!=="disconnected"&&this.socket.state!=="stopped")throw new Error("Didn't start connection from disconnected state: "+this.socket.state);const e=new this.webSocketConstructor(this.uri);this._logVerbose("constructed WebSocket"),this.setSocketState({state:"connecting",ws:e,paused:"no"}),this.resetServerInactivityTimeout(),e.onopen=()=>{if(this.logger.logVerbose("begin ws.onopen"),this.socket.state!=="connecting")throw new Error("onopen called with socket not in connecting state");if(this.setSocketState({state:"ready",ws:e,paused:this.socket.paused==="yes"?"uninitialized":"no"}),this.resetServerInactivityTimeout(),this.socket.paused==="no"&&(this._hasEverConnected=!0,this.onOpen({connectionCount:this.connectionCount,lastCloseReason:this.lastCloseReason,clientTs:gt()})),this.lastCloseReason!=="InitialConnect"&&(this.lastCloseReason?this.logger.log("WebSocket reconnected at",bo(),"after disconnect due to",this.lastCloseReason):this.logger.log("WebSocket reconnected at",bo())),this.connectionCount+=1,this.lastCloseReason=null,this.pendingNetworkRecoveryInfo!==null){const{timeSavedMs:n}=this.pendingNetworkRecoveryInfo;this.pendingNetworkRecoveryInfo=null,this.sendMessage({type:"Event",eventType:"NetworkRecoveryReconnect",event:{timeSavedMs:n}}),this.logger.log(`Network recovery reconnect saved ~${Math.round(n/1e3)}s of waiting`)}},e.onerror=n=>{this.transitionChunkBuffer=null;const r=n.message;r&&this.logger.log(`WebSocket error message: ${r}`)},e.onmessage=n=>{this.resetServerInactivityTimeout();const r=n.data.length;let i=vo(JSON.parse(n.data));if(this._logVerbose(`received ws message with type ${i.type}`),i.type==="Ping")return;if(i.type==="TransitionChunk"){const a=this.assembleTransition(i);if(!a)return;i=a,this._logVerbose(`assembled full ws message of type ${i.type}`)}this.transitionChunkBuffer!==null&&(this.transitionChunkBuffer=null,this.logger.log(`Received unexpected ${i.type} while buffering TransitionChunks`)),i.type==="Transition"&&this.reportLargeTransition({messageLength:r,transition:i}),this.onMessage(i).hasSyncedPastLastReconnect&&(this.retries=0,this.markConnectionStateDirty())},e.onclose=n=>{if(this._logVerbose("begin ws.onclose"),this.transitionChunkBuffer=null,this.lastCloseReason===null&&(this.lastCloseReason=n.reason||`closed with code ${n.code}`),n.code!==Tl&&n.code!==Rl&&n.code!==Al&&n.code!==Il){let i=`WebSocket closed with code ${n.code}`;n.reason&&(i+=`: ${n.reason}`),this.logger.log(i),this.onServerDisconnectError&&n.reason&&this.onServerDisconnectError(i)}const r=El(n.reason);this.scheduleReconnect(r)}}socketState(){return this.socket.state}sendMessage(e){const n={type:e.type,...e.type==="Authenticate"&&e.tokenType==="User"?{value:`...${e.value.slice(-7)}`}:{}};if(this.socket.state==="ready"&&this.socket.paused==="no"){const r=jl(e),i=JSON.stringify(r);let o=!1;try{this.socket.ws.send(i),o=!0}catch(a){this.logger.log(`Failed to send message on WebSocket, reconnecting: ${a}`),this.closeAndReconnect("FailedToSendMessage")}return this._logVerbose(`${o?"sent":"failed to send"} message with type ${e.type}: ${JSON.stringify(n)}`),!0}return this._logVerbose(`message not sent (socket state: ${this.socket.state}, paused: ${"paused"in this.socket?this.socket.paused:void 0}): ${JSON.stringify(n)}`),!1}resetServerInactivityTimeout(){this.socket.state!=="terminated"&&(this.reconnectDueToServerInactivityTimeout!==null&&(clearTimeout(this.reconnectDueToServerInactivityTimeout),this.reconnectDueToServerInactivityTimeout=null),this.reconnectDueToServerInactivityTimeout=setTimeout(()=>{this.closeAndReconnect("InactiveServer")},this.serverInactivityThreshold))}scheduleReconnect(e){this.scheduledReconnect&&(clearTimeout(this.scheduledReconnect.timeout),this.scheduledReconnect=null),this.socket={state:"disconnected"};const n=this.nextBackoff(e);this.markConnectionStateDirty(),this.logger.log(`Attempting reconnect in ${Math.round(n)}ms`);const r=gt(),i=setTimeout(()=>{this.scheduledReconnect?.timeout===i&&(this.scheduledReconnect=null,this.connect())},n);this.scheduledReconnect={timeout:i,scheduledAt:r,backoffMs:n}}closeAndReconnect(e){switch(this._logVerbose(`begin closeAndReconnect with reason ${e}`),this.socket.state){case"disconnected":case"terminated":case"stopped":return;case"connecting":case"ready":{this.lastCloseReason=e,this.close(),this.scheduleReconnect("client");return}default:this.socket}}close(){switch(this.transitionChunkBuffer=null,this.socket.state){case"disconnected":case"terminated":case"stopped":return Promise.resolve();case"connecting":{const e=this.socket.ws;return e.onmessage=n=>{this._logVerbose("Ignoring message received after close")},new Promise(n=>{e.onclose=()=>{this._logVerbose("Closed after connecting"),n()},e.onopen=()=>{this._logVerbose("Opened after connecting"),e.close()}})}case"ready":{this._logVerbose("ws.close called");const e=this.socket.ws;e.onmessage=r=>{this._logVerbose("Ignoring message received after close")};const n=new Promise(r=>{e.onclose=()=>{r()}});return e.close(),n}default:return this.socket,Promise.resolve()}}terminate(){switch(this.reconnectDueToServerInactivityTimeout&&clearTimeout(this.reconnectDueToServerInactivityTimeout),this.scheduledReconnect&&(clearTimeout(this.scheduledReconnect.timeout),this.scheduledReconnect=null),this.cleanupNetworkListener(),this.socket.state){case"terminated":case"stopped":case"disconnected":case"connecting":case"ready":{const e=this.close();return this.setSocketState({state:"terminated"}),e}default:throw this.socket,new Error(`Invalid websocket state: ${this.socket.state}`)}}stop(){switch(this.socket.state){case"terminated":return Promise.resolve();case"connecting":case"stopped":case"disconnected":case"ready":{this.cleanupNetworkListener();const e=this.close();return this.socket={state:"stopped"},e}default:return this.socket,Promise.resolve()}}tryRestart(){switch(this.socket.state){case"stopped":break;case"terminated":case"connecting":case"ready":case"disconnected":this.logger.logVerbose("Restart called without stopping first");return;default:this.socket}this.setupNetworkListener(),this.connect()}pause(){switch(this.socket.state){case"disconnected":case"stopped":case"terminated":return;case"connecting":case"ready":{this.socket={...this.socket,paused:"yes"};return}default:{this.socket;return}}}tryReconnectImmediately(){if(this._logVerbose("tryReconnectImmediately called"),this.socket.state!=="disconnected"){this._logVerbose(`tryReconnectImmediately called but socket state is ${this.socket.state}, no action taken`);return}let e=null;if(this.scheduledReconnect){const n=gt()-this.scheduledReconnect.scheduledAt;e=Math.max(0,this.scheduledReconnect.backoffMs-n),this._logVerbose(`would have waited ${Math.round(e)}ms more (backoff was ${Math.round(this.scheduledReconnect.backoffMs)}ms, elapsed ${Math.round(n)}ms)`),clearTimeout(this.scheduledReconnect.timeout),this.scheduledReconnect=null,this._logVerbose("canceled scheduled reconnect")}this.logger.log("Network recovery detected, reconnecting immediately"),this.pendingNetworkRecoveryInfo=e!==null?{timeSavedMs:e}:null,this.connect()}resume(){switch(this.socket.state){case"connecting":this.socket={...this.socket,paused:"no"};return;case"ready":this.socket.paused==="uninitialized"?(this.socket={...this.socket,paused:"no"},this._hasEverConnected=!0,this.onOpen({connectionCount:this.connectionCount,lastCloseReason:this.lastCloseReason,clientTs:gt()})):this.socket.paused==="yes"&&(this.socket={...this.socket,paused:"no"},this.onResume());return;case"terminated":case"stopped":case"disconnected":return;default:this.socket}this.connect()}connectionState(){return{isConnected:this.socket.state==="ready",hasEverConnected:this._hasEverConnected,connectionCount:this.connectionCount,connectionRetries:this.retries}}_logVerbose(e){this.logger.logVerbose(e)}nextBackoff(e){const r=(e==="client"?100:e==="Unknown"?this.defaultInitialBackoff:yo[e].timeout)*Math.pow(2,this.retries);this.retries+=1;const i=Math.min(r,this.maxBackoff),o=i*(Math.random()-.5);return i+o}reportLargeTransition({transition:e,messageLength:n}){if(e.clientClockSkew===void 0||e.serverTs===void 0)return;const r=gt()-e.clientClockSkew-e.serverTs/1e6,i=`${Math.round(r)}ms`,o=`${Math.round(n/1e4)/100}MB`,a=n/(r/1e3),l=`${Math.round(a/1e4)/100}MB per second`;this._logVerbose(`received ${o} transition in ${i} at ${l}`),n>2e7?this.logger.log(`received query results totaling more that 20MB (${o}) which will take a long time to download on slower connections`):r>2e4&&this.logger.log(`received query results totaling ${o} which took more than 20s to arrive (${i})`),this.debug&&this.sendMessage({type:"Event",eventType:"ClientReceivedTransition",event:{transitionTransitTime:r,messageLength:n}})}}function Pl(){return Ml()}function Ml(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}class Dt extends Error{}Dt.prototype.name="InvalidTokenError";function ql(t){return decodeURIComponent(atob(t).replace(/(.)/g,(e,n)=>{let r=n.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}function Nl(t){let e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return ql(e)}catch{return atob(e)}}function wo(t,e){if(typeof t!="string")throw new Dt("Invalid token specified: must be a string");e||(e={});const n=e.header===!0?0:1,r=t.split(".")[n];if(typeof r!="string")throw new Dt(`Invalid token specified: missing part #${n+1}`);let i;try{i=Nl(r)}catch(o){throw new Dt(`Invalid token specified: invalid base64 for part #${n+1} (${o.message})`)}try{return JSON.parse(i)}catch(o){throw new Dt(`Invalid token specified: invalid json for part #${n+1} (${o.message})`)}}var Ll=Object.defineProperty,Ol=(t,e,n)=>e in t?Ll(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,pe=(t,e,n)=>Ol(t,typeof e!="symbol"?e+"":e,n);const zl=480*60*60*1e3,ko=2;class Bl{constructor(e,n,r){pe(this,"authState",{state:"noAuth"}),pe(this,"configVersion",0),pe(this,"syncState"),pe(this,"authenticate"),pe(this,"stopSocket"),pe(this,"tryRestartSocket"),pe(this,"pauseSocket"),pe(this,"resumeSocket"),pe(this,"clearAuth"),pe(this,"logger"),pe(this,"refreshTokenLeewaySeconds"),pe(this,"lastRefreshChange"),pe(this,"tokenConfirmationAttempts",0),this.syncState=e,this.authenticate=n.authenticate,this.stopSocket=n.stopSocket,this.tryRestartSocket=n.tryRestartSocket,this.pauseSocket=n.pauseSocket,this.resumeSocket=n.resumeSocket,this.clearAuth=n.clearAuth,this.logger=r.logger,this.refreshTokenLeewaySeconds=r.refreshTokenLeewaySeconds,this.lastRefreshChange=!1}notifyRefreshChange(e){this.authState.state!=="noAuth"&&this.authState.state!=="initialRefetch"&&this.authState.config.onRefreshChange&&this.lastRefreshChange!==e&&(this.lastRefreshChange=e,this.authState.config.onRefreshChange(e))}async setConfig(e,n,r){this.resetAuthState(),this._logVerbose("pausing WS for auth token fetch"),this.pauseSocket();const i=await this.fetchTokenAndGuardAgainstRace(e,{forceRefreshToken:!1});if(i.isFromOutdatedConfig)return;const o={fetchToken:e,onAuthChange:n,onRefreshChange:r};i.value?(this.setAuthState({state:"waitingForServerConfirmationOfCachedToken",config:o,hasRetried:!1}),this.authenticate(i.value)):(this.setAuthState({state:"initialRefetch",config:o}),await this.refetchToken()),this._logVerbose("resuming WS after auth token fetch"),this.resumeSocket()}onTransition(e){if(this.syncState.isCurrentOrNewerAuthVersion(e.endVersion.identity)&&!(e.endVersion.identity<=e.startVersion.identity)){if(this._logVerbose(`auth state is ${this.authState.state} when handling transition`),this.syncState.markAuthCompletion(),this.authState.state==="waitingForServerConfirmationOfCachedToken"){this._logVerbose("server confirmed auth token is valid"),this.refetchToken(),this.authState.config.onAuthChange(!0);return}this.authState.state==="waitingForServerConfirmationOfFreshToken"&&(this._logVerbose("server confirmed new auth token is valid"),this.notifyRefreshChange(!1),this.scheduleTokenRefetch(this.authState.token),this.tokenConfirmationAttempts=0,this.authState.hadAuth||this.authState.config.onAuthChange(!0))}}onAuthError(e){if(e.authUpdateAttempted===!1&&(this.authState.state==="waitingForServerConfirmationOfFreshToken"||this.authState.state==="waitingForServerConfirmationOfCachedToken")){this._logVerbose("ignoring non-auth token expired error");return}const{baseVersion:n}=e;if(!this.syncState.isCurrentOrNewerAuthVersion(n+1)){this._logVerbose("ignoring auth error for previous auth attempt");return}this.tryToReauthenticate(e)}async tryToReauthenticate(e){if(this._logVerbose(`attempting to reauthenticate: ${e.error}`),this.authState.state==="noAuth"||this.authState.state==="waitingForServerConfirmationOfFreshToken"&&this.tokenConfirmationAttempts>=ko){this.logger.error(`Failed to authenticate: "${e.error}", check your server auth config`),this.syncState.hasAuth()&&this.syncState.clearAuth(),this.authState.state!=="noAuth"&&this.setAndReportAuthFailed(this.authState.config.onAuthChange);return}if(this.authState.state==="waitingForServerConfirmationOfFreshToken"&&(this.tokenConfirmationAttempts++,this._logVerbose(`retrying reauthentication, ${ko-this.tokenConfirmationAttempts} attempts remaining`)),this.notifyRefreshChange(!0),await this.stopSocket(),this.authState.state==="noAuth")return;const n=await this.fetchTokenAndGuardAgainstRace(this.authState.config.fetchToken,{forceRefreshToken:!0});n.isFromOutdatedConfig||(n.value&&this.syncState.isNewAuth(n.value)?(this.authenticate(n.value),this.setAuthState({state:"waitingForServerConfirmationOfFreshToken",config:this.authState.config,token:n.value,hadAuth:this.authState.state==="notRefetching"||this.authState.state==="waitingForScheduledRefetch"})):(this._logVerbose("reauthentication failed, could not fetch a new token"),this.syncState.hasAuth()&&this.syncState.clearAuth(),this.setAndReportAuthFailed(this.authState.config.onAuthChange)),this.tryRestartSocket())}async refetchToken(){if(this.authState.state==="noAuth")return;this._logVerbose("refetching auth token");const e=await this.fetchTokenAndGuardAgainstRace(this.authState.config.fetchToken,{forceRefreshToken:!0});e.isFromOutdatedConfig||(e.value?this.syncState.isNewAuth(e.value)?(this.setAuthState({state:"waitingForServerConfirmationOfFreshToken",hadAuth:this.syncState.hasAuth(),token:e.value,config:this.authState.config}),this.authenticate(e.value)):this.setAuthState({state:"notRefetching",config:this.authState.config}):(this._logVerbose("refetching token failed"),this.syncState.hasAuth()&&this.clearAuth(),this.setAndReportAuthFailed(this.authState.config.onAuthChange)),this._logVerbose("restarting WS after auth token fetch (if currently stopped)"),this.tryRestartSocket())}scheduleTokenRefetch(e){if(this.authState.state==="noAuth")return;const n=this.decodeToken(e);if(!n){this.logger.error("Auth token is not a valid JWT, cannot refetch the token");return}const{iat:r,exp:i}=n;if(!r||!i){this.logger.error("Auth token does not have required fields, cannot refetch the token");return}const o=i-r;if(o<=2){this.logger.error("Auth token does not live long enough, cannot refetch the token");return}let a=Math.min(zl,(o-this.refreshTokenLeewaySeconds)*1e3);a<=0&&(this.logger.warn(`Refetching auth token immediately, configured leeway ${this.refreshTokenLeewaySeconds}s is larger than the token's lifetime ${o}s`),a=0);const l=setTimeout(()=>{this._logVerbose("running scheduled token refetch"),this.refetchToken()},a);this.setAuthState({state:"waitingForScheduledRefetch",refetchTokenTimeoutId:l,config:this.authState.config}),this._logVerbose(`scheduled preemptive auth token refetching in ${a}ms`)}async fetchTokenAndGuardAgainstRace(e,n){const r=++this.configVersion;this._logVerbose(`fetching token with config version ${r}`);const i=await e(n);return this.configVersion!==r?(this._logVerbose(`stale config version, expected ${r}, got ${this.configVersion}`),{isFromOutdatedConfig:!0}):{isFromOutdatedConfig:!1,value:i}}stop(){this.resetAuthState(),this.configVersion++,this._logVerbose(`config version bumped to ${this.configVersion}`)}setAndReportAuthFailed(e){e(!1),this.resetAuthState()}resetAuthState(){this.notifyRefreshChange(!1),this.setAuthState({state:"noAuth"})}setAuthState(e){const n=e.state==="waitingForServerConfirmationOfFreshToken"?{hadAuth:e.hadAuth,state:e.state,token:`...${e.token.slice(-7)}`}:{state:e.state};switch(this._logVerbose(`setting auth state to ${JSON.stringify(n)}`),e.state){case"waitingForScheduledRefetch":case"notRefetching":case"noAuth":this.tokenConfirmationAttempts=0;break}this.authState.state==="waitingForScheduledRefetch"&&clearTimeout(this.authState.refetchTokenTimeoutId),this.authState=e}decodeToken(e){try{return wo(e)}catch(n){return this._logVerbose(`Error decoding token: ${n instanceof Error?n.message:"Unknown error"}`),null}}_logVerbose(e){this.logger.logVerbose(`${e} [v${this.configVersion}]`)}}const Dl=["convexClientConstructed","convexWebSocketOpen","convexFirstMessageReceived"];function Ul(t,e){const n={sessionId:e};typeof performance>"u"||!performance.mark||performance.mark(t,{detail:n})}function Fl(t){let e=t.name.slice(6);return e=e.charAt(0).toLowerCase()+e.slice(1),{name:e,startTime:t.startTime}}function Vl(t){if(typeof performance>"u"||!performance.getEntriesByName)return[];const e=[];for(const n of Dl){const r=performance.getEntriesByName(n).filter(i=>i.entryType==="mark").filter(i=>i.detail.sessionId===t);e.push(...r)}return e.map(Fl)}var Hl=Object.defineProperty,Ql=(t,e,n)=>e in t?Hl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Y=(t,e,n)=>Ql(t,typeof e!="symbol"?e+"":e,n);class Wl{constructor(e,n,r){if(Y(this,"address"),Y(this,"state"),Y(this,"requestManager"),Y(this,"webSocketManager"),Y(this,"authenticationManager"),Y(this,"remoteQuerySet"),Y(this,"optimisticQueryResults"),Y(this,"_transitionHandlerCounter",0),Y(this,"_nextRequestId"),Y(this,"_onTransitionFns",new Map),Y(this,"_sessionId"),Y(this,"firstMessageReceived",!1),Y(this,"debug"),Y(this,"logger"),Y(this,"maxObservedTimestamp"),Y(this,"connectionStateSubscribers",new Map),Y(this,"nextConnectionStateSubscriberId",0),Y(this,"_lastPublishedConnectionState"),Y(this,"markConnectionStateDirty",()=>{Promise.resolve().then(()=>{const p=this.connectionState();if(JSON.stringify(p)!==JSON.stringify(this._lastPublishedConnectionState)){this._lastPublishedConnectionState=p;for(const g of this.connectionStateSubscribers.values())g(p)}})}),Y(this,"mark",p=>{this.debug&&Ul(p,this.sessionId)}),typeof e=="object")throw new Error("Passing a ClientConfig object is no longer supported. Pass the URL of the Convex deployment as a string directly.");r?.skipConvexDeploymentUrlCheck!==!0&&Us(e),r={...r};const i=r.authRefreshTokenLeewaySeconds??10;let o=r.webSocketConstructor;if(!o&&typeof WebSocket>"u")throw new Error("No WebSocket global variable defined! To use Convex in an environment without WebSocket try the HTTP client: https://docs.convex.dev/api/classes/browser.ConvexHttpClient");o=o||WebSocket,this.debug=r.reportDebugInfoToConvex??!1,this.address=e,this.logger=r.logger===!1?uo({verbose:r.verbose??!1}):r.logger!==!0&&r.logger?r.logger:co({verbose:r.verbose??!1});const a=e.search("://");if(a===-1)throw new Error("Provided address was not an absolute URL.");const l=e.substring(a+3),c=e.substring(0,a);let u;if(c==="http")u="ws";else if(c==="https")u="wss";else throw new Error(`Unknown parent protocol ${c}`);const h=`${u}://${l}/api/${oo}/sync`;this.state=new al,this.remoteQuerySet=new xo(p=>this.state.queryPath(p),this.logger),this.requestManager=new cl(this.logger,this.markConnectionStateDirty);const f=()=>{this.webSocketManager.pause(),this.state.pause()};this.authenticationManager=new Bl(this.state,{authenticate:p=>{const g=this.state.setAuth(p);return this.webSocketManager.sendMessage(g),g.baseVersion},stopSocket:()=>this.webSocketManager.stop(),tryRestartSocket:()=>this.webSocketManager.tryRestart(),pauseSocket:f,resumeSocket:()=>this.webSocketManager.resume(),clearAuth:()=>{this.clearAuth()}},{logger:this.logger,refreshTokenLeewaySeconds:i}),this.optimisticQueryResults=new ml,this.addOnTransitionHandler(p=>{n(p.queries.map(g=>g.token))}),this._nextRequestId=0,this._sessionId=Pl();const{unsavedChangesWarning:d}=r;if(typeof window>"u"||typeof window.addEventListener>"u"){if(d===!0)throw new Error("unsavedChangesWarning requested, but window.addEventListener not found! Remove {unsavedChangesWarning: true} from Convex client options.")}else d!==!1&&window.addEventListener("beforeunload",p=>{if(this.requestManager.hasIncompleteRequests()){p.preventDefault();const g="Are you sure you want to leave? Your changes may not be saved.";return(p||window.event).returnValue=g,g}});this.webSocketManager=new $l(h,{onOpen:p=>{this.mark("convexWebSocketOpen"),this.webSocketManager.sendMessage({...p,type:"Connect",sessionId:this._sessionId,maxObservedTimestamp:this.maxObservedTimestamp}),this.remoteQuerySet=new xo(m=>this.state.queryPath(m),this.logger);const[g,y]=this.state.restart();y&&this.webSocketManager.sendMessage(y),this.webSocketManager.sendMessage(g);for(const m of this.requestManager.restart())this.webSocketManager.sendMessage(m)},onResume:()=>{const[p,g]=this.state.resume();g&&this.webSocketManager.sendMessage(g),p&&this.webSocketManager.sendMessage(p);for(const y of this.requestManager.resume())this.webSocketManager.sendMessage(y)},onMessage:p=>{switch(this.firstMessageReceived||(this.firstMessageReceived=!0,this.mark("convexFirstMessageReceived"),this.reportMarks()),p.type){case"Transition":{this.observedTimestamp(p.endVersion.ts),this.authenticationManager.onTransition(p),this.remoteQuerySet.transition(p),this.state.transition(p);const g=this.requestManager.removeCompleted(this.remoteQuerySet.timestamp());this.notifyOnQueryResultChanges(g);break}case"MutationResponse":{p.success&&this.observedTimestamp(p.ts);const g=this.requestManager.onResponse(p);g!==null&&this.notifyOnQueryResultChanges(new Map([[g.requestId,g.result]]));break}case"ActionResponse":{this.requestManager.onResponse(p);break}case"AuthError":{this.authenticationManager.onAuthError(p);break}case"FatalError":{const g=rl(this.logger,p.error);throw this.webSocketManager.terminate(),g}}return{hasSyncedPastLastReconnect:this.hasSyncedPastLastReconnect()}},onServerDisconnectError:r.onServerDisconnectError},o,this.logger,this.markConnectionStateDirty,this.debug),this.mark("convexClientConstructed"),r.expectAuth&&f()}hasSyncedPastLastReconnect(){return this.requestManager.hasSyncedPastLastReconnect()&&this.state.hasSyncedPastLastReconnect()}observedTimestamp(e){(this.maxObservedTimestamp===void 0||this.maxObservedTimestamp.lessThanOrEqual(e))&&(this.maxObservedTimestamp=e)}getMaxObservedTimestamp(){return this.maxObservedTimestamp}notifyOnQueryResultChanges(e){const n=this.remoteQuerySet.remoteQueryResults(),r=new Map;for(const[o,a]of n){const l=this.state.queryToken(o);if(l!==null){const c={result:a,udfPath:this.state.queryPath(o),args:this.state.queryArgs(o)};r.set(l,c)}}const i=this.optimisticQueryResults.ingestQueryResultsFromServer(r,new Set(e.keys()));this.handleTransition({queries:i.map(o=>{const a=this.optimisticQueryResults.rawQueryResult(o);return{token:o,modification:{kind:"Updated",result:a}}}),reflectedMutations:Array.from(e).map(([o,a])=>({requestId:o,result:a})),timestamp:this.remoteQuerySet.timestamp()})}handleTransition(e){for(const n of this._onTransitionFns.values())n(e)}addOnTransitionHandler(e){const n=this._transitionHandlerCounter++;return this._onTransitionFns.set(n,e),()=>this._onTransitionFns.delete(n)}getCurrentAuthClaims(){const e=this.state.getAuth();let n={};if(e&&e.tokenType==="User")try{n=e?wo(e.value):{}}catch{n={}}else return;return{token:e.value,decoded:n}}setAuth(e,n,r){this.authenticationManager.setConfig(e,n,r)}hasAuth(){return this.state.hasAuth()}setAdminAuth(e,n){const r=this.state.setAdminAuth(e,n);this.webSocketManager.sendMessage(r)}clearAuth(){const e=this.state.clearAuth();this.webSocketManager.sendMessage(e)}subscribe(e,n,r){const i=qe(n),{modification:o,queryToken:a,unsubscribe:l}=this.state.subscribe(e,i,r?.journal,r?.componentPath);return o!==null&&this.webSocketManager.sendMessage(o),{queryToken:a,unsubscribe:()=>{const c=l();c&&this.webSocketManager.sendMessage(c)}}}localQueryResult(e,n){const r=qe(n),i=Je(e,r);return this.optimisticQueryResults.queryResult(i)}localQueryResultByToken(e){return this.optimisticQueryResults.queryResult(e)}hasLocalQueryResultByToken(e){return this.optimisticQueryResults.hasQueryResult(e)}localQueryLogs(e,n){const r=qe(n),i=Je(e,r);return this.optimisticQueryResults.queryLogs(i)}queryJournal(e,n){const r=qe(n),i=Je(e,r);return this.state.queryJournal(i)}connectionState(){const e=this.webSocketManager.connectionState();return{hasInflightRequests:this.requestManager.hasInflightRequests(),isWebSocketConnected:e.isConnected,hasEverConnected:e.hasEverConnected,connectionCount:e.connectionCount,connectionRetries:e.connectionRetries,timeOfOldestInflightRequest:this.requestManager.timeOfOldestInflightRequest(),inflightMutations:this.requestManager.inflightMutations(),inflightActions:this.requestManager.inflightActions()}}subscribeToConnectionState(e){const n=this.nextConnectionStateSubscriberId++;return this.connectionStateSubscribers.set(n,e),()=>{this.connectionStateSubscribers.delete(n)}}async mutation(e,n,r){const i=await this.mutationInternal(e,n,r);if(!i.success)throw i.errorData!==void 0?hr(i,new fn(ft("mutation",e,i))):new Error(ft("mutation",e,i));return i.value}async mutationInternal(e,n,r,i){const{mutationPromise:o}=this.enqueueMutation(e,n,r,i);return o}enqueueMutation(e,n,r,i){const o=qe(n);this.tryReportLongDisconnect();const a=this.nextRequestId;if(this._nextRequestId++,r!==void 0){const h=r.optimisticUpdate;if(h!==void 0){const f=g=>{h(g,o)instanceof Promise&&this.logger.warn("Optimistic update handler returned a Promise. Optimistic updates should be synchronous.")},p=this.optimisticQueryResults.applyOptimisticUpdate(f,a).map(g=>{const y=this.localQueryResultByToken(g);return{token:g,modification:{kind:"Updated",result:y===void 0?void 0:{success:!0,value:y,logLines:[]}}}});this.handleTransition({queries:p,reflectedMutations:[],timestamp:this.remoteQuerySet.timestamp()})}}const l={type:"Mutation",requestId:a,udfPath:e,componentPath:i,args:[Te(o)]},c=this.webSocketManager.sendMessage(l),u=this.requestManager.request(l,c);return{requestId:a,mutationPromise:u}}async action(e,n){const r=await this.actionInternal(e,n);if(!r.success)throw r.errorData!==void 0?hr(r,new fn(ft("action",e,r))):new Error(ft("action",e,r));return r.value}async actionInternal(e,n,r){const i=qe(n),o=this.nextRequestId;this._nextRequestId++,this.tryReportLongDisconnect();const a={type:"Action",requestId:o,udfPath:e,componentPath:r,args:[Te(i)]},l=this.webSocketManager.sendMessage(a);return this.requestManager.request(a,l)}async close(){return this.authenticationManager.stop(),this.webSocketManager.terminate()}get url(){return this.address}get nextRequestId(){return this._nextRequestId}get sessionId(){return this._sessionId}reportMarks(){if(this.debug){const e=Vl(this.sessionId);this.webSocketManager.sendMessage({type:"Event",eventType:"ClientConnect",event:e})}}tryReportLongDisconnect(){if(!this.debug)return;const e=this.connectionState().timeOfOldestInflightRequest;if(e===null||Date.now()-e.getTime()<=60*1e3)return;const n=`${this.address}/api/debug_event`;fetch(n,{method:"POST",headers:{"Content-Type":"application/json","Convex-Client":`npm-${oo}`},body:JSON.stringify({event:"LongWebsocketDisconnect"})}).then(r=>{r.ok||this.logger.warn("Analytics request failed with response:",r.body)}).catch(r=>{this.logger.warn("Analytics response failed with error:",r)})}}function mr(t){if(typeof t!="object"||t===null||!Array.isArray(t.page)||typeof t.isDone!="boolean"||typeof t.continueCursor!="string")throw new Error(`Not a valid paginated query result: ${t?.toString()}`);return t}var Kl=Object.defineProperty,Gl=(t,e,n)=>e in t?Kl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,_o=(t,e,n)=>Gl(t,typeof e!="symbol"?e+"":e,n);class Jl{constructor(e,n){this.client=e,this.onTransition=n,_o(this,"paginatedQuerySet",new Map),_o(this,"lastTransitionTs"),this.lastTransitionTs=ce.fromNumber(0),this.client.addOnTransitionHandler(r=>this.onBaseTransition(r))}subscribe(e,n,r){const i=Ge(e),o=ho(i,n,r),a=()=>this.removePaginatedQuerySubscriber(o),l=this.paginatedQuerySet.get(o);return l?(l.numSubscribers+=1,{paginatedQueryToken:o,unsubscribe:a}):(this.paginatedQuerySet.set(o,{token:o,canonicalizedUdfPath:i,args:n,numSubscribers:1,options:{initialNumItems:r.initialNumItems},nextPageKey:0,pageKeys:[],pageKeyToQuery:new Map,ongoingSplits:new Map,skip:!1,id:r.id}),this.addPageToPaginatedQuery(o,null,r.initialNumItems),{paginatedQueryToken:o,unsubscribe:a})}localQueryResult(e,n,r){const i=Ge(e),o=ho(i,n,r);return this.localQueryResultByToken(o)}localQueryResultByToken(e){const n=this.paginatedQuerySet.get(e);if(!n)return;const r=this.activePageQueryTokens(n);if(r.length===0)return{results:[],status:"LoadingFirstPage",loadMore:c=>this.loadMoreOfPaginatedQuery(e,c)};let i=[],o=!1,a=!1;for(const c of r){const u=this.client.localQueryResultByToken(c);if(u===void 0){o=!0,a=!1;continue}const h=mr(u);i=i.concat(h.page),a=!!h.isDone}let l;return o?l=i.length===0?"LoadingFirstPage":"LoadingMore":a?l="Exhausted":l="CanLoadMore",{results:i,status:l,loadMore:c=>this.loadMoreOfPaginatedQuery(e,c)}}onBaseTransition(e){const n=e.queries.map(a=>a.token),r=this.queriesContainingTokens(n);let i=[];r.length>0&&(this.processPaginatedQuerySplits(r,a=>this.client.localQueryResultByToken(a)),i=r.map(a=>({token:a,modification:{kind:"Updated",result:this.localQueryResultByToken(a)}})));const o={...e,paginatedQueries:i};this.onTransition(o)}loadMoreOfPaginatedQuery(e,n){this.mustGetPaginatedQuery(e);const r=this.queryTokenForLastPageOfPaginatedQuery(e),i=this.client.localQueryResultByToken(r);if(!i)return!1;const o=mr(i);if(o.isDone)return!1;this.addPageToPaginatedQuery(e,o.continueCursor,n);const a={timestamp:this.lastTransitionTs,reflectedMutations:[],queries:[],paginatedQueries:[{token:e,modification:{kind:"Updated",result:this.localQueryResultByToken(e)}}]};return this.onTransition(a),!0}queriesContainingTokens(e){if(e.length===0)return[];const n=[],r=new Set(e);for(const[i,o]of this.paginatedQuerySet)for(const a of this.allQueryTokens(o))if(r.has(a)){n.push(i);break}return n}processPaginatedQuerySplits(e,n){for(const r of e){const i=this.mustGetPaginatedQuery(r),{ongoingSplits:o,pageKeyToQuery:a,pageKeys:l}=i;for(const[c,[u,h]]of o)n(a.get(u).queryToken)!==void 0&&n(a.get(h).queryToken)!==void 0&&this.completePaginatedQuerySplit(i,c,u,h);for(const c of l){if(o.has(c))continue;const u=a.get(c).queryToken,h=n(u);if(!h)continue;const f=mr(h);f.splitCursor&&(f.pageStatus==="SplitRecommended"||f.pageStatus==="SplitRequired"||f.page.length>i.options.initialNumItems*2)&&this.splitPaginatedQueryPage(i,c,f.splitCursor,f.continueCursor)}}}splitPaginatedQueryPage(e,n,r,i){const o=e.nextPageKey++,a=e.nextPageKey++,l={cursor:i,numItems:e.options.initialNumItems,id:e.id},c=this.client.subscribe(e.canonicalizedUdfPath,{...e.args,paginationOpts:{...l,cursor:null,endCursor:r}});e.pageKeyToQuery.set(o,c);const u=this.client.subscribe(e.canonicalizedUdfPath,{...e.args,paginationOpts:{...l,cursor:r,endCursor:i}});e.pageKeyToQuery.set(a,u),e.ongoingSplits.set(n,[o,a])}addPageToPaginatedQuery(e,n,r){const i=this.mustGetPaginatedQuery(e),o=i.nextPageKey++,a={cursor:n,numItems:r,id:i.id},l={...i.args,paginationOpts:a},c=this.client.subscribe(i.canonicalizedUdfPath,l);return i.pageKeys.push(o),i.pageKeyToQuery.set(o,c),c}removePaginatedQuerySubscriber(e){const n=this.paginatedQuerySet.get(e);if(n&&(n.numSubscribers-=1,!(n.numSubscribers>0))){for(const r of n.pageKeyToQuery.values())r.unsubscribe();this.paginatedQuerySet.delete(e)}}completePaginatedQuerySplit(e,n,r,i){const o=e.pageKeyToQuery.get(n);e.pageKeyToQuery.delete(n);const a=e.pageKeys.indexOf(n);e.pageKeys.splice(a,1,r,i),e.ongoingSplits.delete(n),o.unsubscribe()}activePageQueryTokens(e){return e.pageKeys.map(n=>e.pageKeyToQuery.get(n).queryToken)}allQueryTokens(e){return Array.from(e.pageKeyToQuery.values()).map(n=>n.queryToken)}queryTokenForLastPageOfPaginatedQuery(e){const n=this.mustGetPaginatedQuery(e),r=n.pageKeys[n.pageKeys.length-1];if(r===void 0)throw new Error(`No pages for paginated query ${e}`);return n.pageKeyToQuery.get(r).queryToken}mustGetPaginatedQuery(e){const n=this.paginatedQuerySet.get(e);if(!n)throw new Error("paginated query no longer exists for token "+e);return n}}function Yl({getCurrentValue:t,subscribe:e}){const[n,r]=R(()=>({getCurrentValue:t,subscribe:e,value:t()}));let i=n.value;return(n.getCurrentValue!==t||n.subscribe!==e)&&(i=t(),r({getCurrentValue:t,subscribe:e,value:i})),T(()=>{let o=!1;const a=()=>{o||r(c=>{if(c.getCurrentValue!==t||c.subscribe!==e)return c;const u=t();return c.value===u?c:{...c,value:u}})},l=e(a);return a(),()=>{o=!0,l()}},[t,e]),i}var Zl=Object.defineProperty,Xl=(t,e,n)=>e in t?Zl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ne=(t,e,n)=>Xl(t,typeof e!="symbol"?e+"":e,n);const ec=5e3;if(typeof or>"u")throw new Error("Required dependency 'react' not found");function jo(t,e,n){function r(i){return oc(i),e.mutation(t,i,{optimisticUpdate:n})}return r.withOptimisticUpdate=function(o){if(n!==void 0)throw new Error(`Already specified optimistic update for mutation ${ae(t)}`);return jo(t,e,o)},r}function tc(t,e){return function(n){return e.action(t,n)}}class nc{constructor(e,n){if(Ne(this,"address"),Ne(this,"cachedSync"),Ne(this,"cachedPaginatedQueryClient"),Ne(this,"listeners"),Ne(this,"options"),Ne(this,"closed",!1),Ne(this,"_logger"),Ne(this,"adminAuth"),Ne(this,"fakeUserIdentity"),e===void 0)throw new Error("No address provided to ConvexReactClient.\nIf trying to deploy to production, make sure to follow all the instructions found at https://docs.convex.dev/production/hosting/\nIf running locally, make sure to run `convex dev` and ensure the .env.local file is populated.");if(typeof e!="string")throw new Error(`ConvexReactClient requires a URL like 'https://happy-otter-123.convex.cloud', received something of type ${typeof e} instead.`);if(!e.includes("://"))throw new Error("Provided address was not an absolute URL.");this.address=e,this.listeners=new Map,this._logger=n?.logger===!1?uo({verbose:n?.verbose??!1}):n?.logger!==!0&&n?.logger?n.logger:co({verbose:n?.verbose??!1}),this.options={...n,logger:this._logger}}get url(){return this.address}get sync(){if(this.closed)throw new Error("ConvexReactClient has already been closed.");return this.cachedSync?this.cachedSync:(this.cachedSync=new Wl(this.address,()=>{},this.options),this.adminAuth&&this.cachedSync.setAdminAuth(this.adminAuth,this.fakeUserIdentity),this.cachedPaginatedQueryClient=new Jl(this.cachedSync,e=>this.handleTransition(e)),this.cachedSync)}get paginatedQueryClient(){if(this.sync,this.cachedPaginatedQueryClient)return this.cachedPaginatedQueryClient;throw new Error("Should already be instantiated")}setAuth(e,n,r){if(typeof e=="string")throw new Error("Passing a string to ConvexReactClient.setAuth is no longer supported, please upgrade to passing in an async function to handle reauthentication.");this.sync.setAuth(e,n??(()=>{}),r)}clearAuth(){this.sync.clearAuth()}setAdminAuth(e,n){if(this.adminAuth=e,this.fakeUserIdentity=n,this.closed)throw new Error("ConvexReactClient has already been closed.");this.cachedSync&&this.sync.setAdminAuth(e,n)}watchQuery(e,...n){const[r,i]=n,o=ae(e);return{onUpdate:a=>{const{queryToken:l,unsubscribe:c}=this.sync.subscribe(o,r,i),u=this.listeners.get(l);return u!==void 0?u.add(a):this.listeners.set(l,new Set([a])),()=>{if(this.closed)return;const h=this.listeners.get(l);h.delete(a),h.size===0&&this.listeners.delete(l),c()}},localQueryResult:()=>{if(this.cachedSync)return this.cachedSync.localQueryResult(o,r)},localQueryLogs:()=>{if(this.cachedSync)return this.cachedSync.localQueryLogs(o,r)},journal:()=>{if(this.cachedSync)return this.cachedSync.queryJournal(o,r)}}}prewarmQuery(e){const n=e.extendSubscriptionFor??ec,i=this.watchQuery(e.query,e.args||{}).onUpdate(()=>{});setTimeout(i,n)}watchPaginatedQuery(e,n,r){const i=ae(e);return{onUpdate:o=>{const{paginatedQueryToken:a,unsubscribe:l}=this.paginatedQueryClient.subscribe(i,n||{},r),c=this.listeners.get(a);return c!==void 0?c.add(o):this.listeners.set(a,new Set([o])),()=>{if(this.closed)return;const u=this.listeners.get(a);u.delete(o),u.size===0&&this.listeners.delete(a),l()}},localQueryResult:()=>this.paginatedQueryClient.localQueryResult(i,n,r)}}mutation(e,...n){const[r,i]=n,o=ae(e);return this.sync.mutation(o,r,i)}action(e,...n){const r=ae(e);return this.sync.action(r,...n)}query(e,...n){const r=this.watchQuery(e,...n),i=r.localQueryResult();return i!==void 0?Promise.resolve(i):new Promise((o,a)=>{const l=r.onUpdate(()=>{l();try{o(r.localQueryResult())}catch(c){a(c)}})})}connectionState(){return this.sync.connectionState()}subscribeToConnectionState(e){return this.sync.subscribeToConnectionState(e)}get logger(){return this._logger}async close(){if(this.closed=!0,this.listeners=new Map,this.cachedPaginatedQueryClient&&(this.cachedPaginatedQueryClient=void 0),this.cachedSync){const e=this.cachedSync;this.cachedSync=void 0,await e.close()}}handleTransition(e){const n=e.queries.map(i=>i.token),r=e.paginatedQueries.map(i=>i.token);this.transition([...n,...r])}transition(e){for(const n of e){const r=this.listeners.get(n);if(r)for(const i of r)i()}}}const yn=or.createContext(void 0);function rc(){return Pt(yn)}const ic=({client:t,children:e})=>or.createElement(yn.Provider,{value:t},e);function wn(t,...e){const n=e[0]==="skip",r=e[0]==="skip"?{}:qe(e[0]),i=typeof t=="string"?pr(t):t,o=ae(i),a=G(()=>n?{}:{query:{query:i,args:r}},[JSON.stringify(Te(r)),o,n]),c=cc(a).query;if(c instanceof Error)throw c;return c}function Ye(t){const e=typeof t=="string"?pr(t):t,n=Pt(yn);if(n===void 0)throw new Error("Could not find Convex client! `useMutation` must be used in the React component tree under `ConvexProvider`. Did you forget it? See https://docs.convex.dev/quick-start#set-up-convex-in-your-react-app");return G(()=>jo(e,n),[n,ae(e)])}function Ut(t){const e=Pt(yn),n=typeof t=="string"?pr(t):t;if(e===void 0)throw new Error("Could not find Convex client! `useAction` must be used in the React component tree under `ConvexProvider`. Did you forget it? See https://docs.convex.dev/quick-start#set-up-convex-in-your-react-app");return G(()=>tc(n,e),[e,ae(n)])}function oc(t){if(typeof t=="object"&&t!==null&&"bubbles"in t&&"persist"in t&&"isDefaultPrevented"in t)throw new Error("Convex function called with SyntheticEvent object. Did you use a Convex function as an event handler directly? Event handlers like onClick receive an event object as their first argument. These SyntheticEvent objects are not valid Convex values. Try wrapping the function like `const handler = () => myMutation();` and using `handler` in the event handler.")}var ac=Object.defineProperty,sc=(t,e,n)=>e in t?ac(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,xr=(t,e,n)=>sc(t,typeof e!="symbol"?e+"":e,n);class lc{constructor(e){xr(this,"createWatch"),xr(this,"queries"),xr(this,"listeners"),this.createWatch=e,this.queries={},this.listeners=new Set}setQueries(e){for(const n of Object.keys(e)){const{query:r,args:i,paginationOptions:o}=e[n];if(ae(r),this.queries[n]===void 0)this.addQuery(n,r,i,o?{paginationOptions:o}:{});else{const a=this.queries[n];(ae(r)!==ae(a.query)||JSON.stringify(Te(i))!==JSON.stringify(Te(a.args))||JSON.stringify(o)!==JSON.stringify(a.paginationOptions))&&(this.removeQuery(n),this.addQuery(n,r,i,o?{paginationOptions:o}:{}))}}for(const n of Object.keys(this.queries))e[n]===void 0&&this.removeQuery(n)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}getLocalResults(e){const n={};for(const r of Object.keys(e)){const{query:i,args:o}=e[r],a=e[r].paginationOptions;ae(i);const l=this.createWatch(i,o,a?{paginationOptions:a}:{});let c;try{c=l.localQueryResult()}catch(u){if(u instanceof Error)c=u;else throw u}n[r]=c}return n}setCreateWatch(e){this.createWatch=e;for(const n of Object.keys(this.queries)){const{query:r,args:i,watch:o,paginationOptions:a}=this.queries[n],l="journal"in o?o.journal():void 0;this.removeQuery(n),this.addQuery(n,r,i,{...l?{journal:l}:[],...a?{paginationOptions:a}:{}})}}destroy(){for(const e of Object.keys(this.queries))this.removeQuery(e);this.listeners=new Set}addQuery(e,n,r,{paginationOptions:i,journal:o}){if(this.queries[e]!==void 0)throw new Error(`Tried to add a new query with identifier ${e} when it already exists.`);const a=this.createWatch(n,r,{...o?{journal:o}:[],...i?{paginationOptions:i}:{}}),l=a.onUpdate(()=>this.notifyListeners());this.queries[e]={query:n,args:r,watch:a,unsubscribe:l,...i?{paginationOptions:i}:{}}}removeQuery(e){const n=this.queries[e];if(n===void 0)throw new Error(`No query found with identifier ${e}.`);n.unsubscribe(),delete this.queries[e]}notifyListeners(){for(const e of this.listeners)e()}}function cc(t){const e=rc();if(e===void 0)throw new Error("Could not find Convex client! `useQuery` must be used in the React component tree under `ConvexProvider`. Did you forget it? See https://docs.convex.dev/quick-start#set-up-convex-in-your-react-app");const n=G(()=>(r,i,{journal:o,paginationOptions:a})=>a?e.watchPaginatedQuery(r,i,a):e.watchQuery(r,i,o?{journal:o}:{}),[e]);return uc(t,n)}function uc(t,e){const[n]=R(()=>new lc(e));n.createWatch!==e&&n.setCreateWatch(e),T(()=>()=>n.destroy(),[n]);const r=G(()=>({getCurrentValue:()=>n.getLocalResults(t),subscribe:i=>(n.setQueries(t),n.subscribe(i))}),[n,t]);return Yl(r)}var dc=Symbol.for("preact-signals");function kn(){if(Le>1)Le--;else{var t,e=!1;for((function(){var i=Sn;for(Sn=void 0;i!==void 0;)i.S.v===i.v&&(i.S.i=i.i),i=i.o})();Ft!==void 0;){var n=Ft;for(Ft=void 0,jn++;n!==void 0;){var r=n.u;if(n.u=void 0,n.f&=-3,!(8&n.f)&&Co(n))try{n.c()}catch(i){e||(t=i,e=!0)}n=r}}if(jn=0,Le--,e)throw t}}function hc(t){if(Le>0)return t();vr=++pc,Le++;try{return t()}finally{kn()}}var D=void 0;function _n(t){var e=D;D=void 0;try{return t()}finally{D=e}}var Ft=void 0,Le=0,jn=0,pc=0,vr=0,Sn=void 0,Cn=0;function So(t){if(D!==void 0){var e=t.n;if(e===void 0||e.t!==D)return e={i:0,S:t,p:D.s,n:void 0,t:D,e:void 0,x:void 0,r:e},D.s!==void 0&&(D.s.n=e),D.s=e,t.n=e,32&D.f&&t.S(e),e;if(e.i===-1)return e.i=0,e.n!==void 0&&(e.n.p=e.p,e.p!==void 0&&(e.p.n=e.n),e.p=D.s,e.n=void 0,D.s.n=e,D.s=e),e}}function ee(t,e){this.v=t,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=e?.watched,this.Z=e?.unwatched,this.name=e?.name}ee.prototype.brand=dc,ee.prototype.h=function(){return!0},ee.prototype.S=function(t){var e=this,n=this.t;n!==t&&t.e===void 0&&(t.x=n,this.t=t,n!==void 0?n.e=t:_n(function(){var r;(r=e.W)==null||r.call(e)}))},ee.prototype.U=function(t){var e=this;if(this.t!==void 0){var n=t.e,r=t.x;n!==void 0&&(n.x=r,t.e=void 0),r!==void 0&&(r.e=n,t.x=void 0),t===this.t&&(this.t=r,r===void 0&&_n(function(){var i;(i=e.Z)==null||i.call(e)}))}},ee.prototype.subscribe=function(t){var e=this;return Vt(function(){var n=e.value;_n(function(){return t(n)})},{name:"sub"})},ee.prototype.valueOf=function(){return this.value},ee.prototype.toString=function(){return this.value+""},ee.prototype.toJSON=function(){return this.value},ee.prototype.peek=function(){var t=this;return _n(function(){return t.value})},Object.defineProperty(ee.prototype,"value",{get:function(){var t=So(this);return t!==void 0&&(t.i=this.i),this.v},set:function(t){if(t!==this.v){if(jn>100)throw new Error("Cycle detected");(function(n){Le!==0&&jn===0&&n.l!==vr&&(n.l=vr,Sn={S:n,v:n.v,i:n.i,o:Sn})})(this),this.v=t,this.i++,Cn++,Le++;try{for(var e=this.t;e!==void 0;e=e.x)e.t.N()}finally{kn()}}}});function $(t,e){return new ee(t,e)}function Co(t){for(var e=t.s;e!==void 0;e=e.n)if(e.S.i!==e.i||!e.S.h()||e.S.i!==e.i)return!0;return!1}function To(t){for(var e=t.s;e!==void 0;e=e.n){var n=e.S.n;if(n!==void 0&&(e.r=n),e.S.n=e,e.i=-1,e.n===void 0){t.s=e;break}}}function Ro(t){for(var e=t.s,n=void 0;e!==void 0;){var r=e.p;e.i===-1?(e.S.U(e),r!==void 0&&(r.n=e.n),e.n!==void 0&&(e.n.p=r)):n=e,e.S.n=e.r,e.r!==void 0&&(e.r=void 0),e=r}t.s=n}function Ze(t,e){ee.call(this,void 0,e),this.x=t,this.s=void 0,this.g=Cn-1,this.f=4}Ze.prototype=new ee,Ze.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Cn))return!0;if(this.g=Cn,this.f|=1,this.i>0&&!Co(this))return this.f&=-2,!0;var t=D;try{To(this),D=this;var e=this.x();(16&this.f||this.v!==e||this.i===0)&&(this.v=e,this.f&=-17,this.i++)}catch(n){this.v=n,this.f|=16,this.i++}return D=t,Ro(this),this.f&=-2,!0},Ze.prototype.S=function(t){if(this.t===void 0){this.f|=36;for(var e=this.s;e!==void 0;e=e.n)e.S.S(e)}ee.prototype.S.call(this,t)},Ze.prototype.U=function(t){if(this.t!==void 0&&(ee.prototype.U.call(this,t),this.t===void 0)){this.f&=-33;for(var e=this.s;e!==void 0;e=e.n)e.S.U(e)}},Ze.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var t=this.t;t!==void 0;t=t.x)t.t.N()}},Object.defineProperty(Ze.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var t=So(this);if(this.h(),t!==void 0&&(t.i=this.i),16&this.f)throw this.v;return this.v}});function br(t,e){return new Ze(t,e)}function Ao(t){var e=t.m;if(t.m=void 0,typeof e=="function"){Le++;var n=D;D=void 0;try{e()}catch(r){throw t.f&=-2,t.f|=8,yr(t),r}finally{D=n,kn()}}}function yr(t){for(var e=t.s;e!==void 0;e=e.n)e.S.U(e);t.x=void 0,t.s=void 0,Ao(t)}function fc(t){if(D!==this)throw new Error("Out-of-order effect");Ro(this),D=t,this.f&=-2,8&this.f&&yr(this),kn()}function mt(t,e){this.x=t,this.m=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=e?.name}mt.prototype.c=function(){var t=this.S();try{if(8&this.f||this.x===void 0)return;var e=this.x();typeof e=="function"&&(this.m=e)}finally{t()}},mt.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1,this.f&=-9,Ao(this),To(this),Le++;var t=D;return D=this,fc.bind(this,t)},mt.prototype.N=function(){2&this.f||(this.f|=2,this.u=Ft,Ft=this)},mt.prototype.d=function(){this.f|=8,1&this.f||yr(this)},mt.prototype.dispose=function(){this.d()};function Vt(t,e){var n=new mt(t,e);try{n.c()}catch(i){throw n.d(),i}var r=n.d.bind(n);return r[Symbol.dispose]=r,r}var Io,Tn,gc=typeof window<"u"&&!!window.__PREACT_SIGNALS_DEVTOOLS__,Eo=[];Vt(function(){Io=this.N})();function xt(t,e){_[t]=e.bind(null,_[t]||function(){})}function Rn(t){if(Tn){var e=Tn;Tn=void 0,e()}Tn=t&&t.S()}function $o(t){var e=this,n=t.data,r=vt(n);r.value=n;var i=G(function(){for(var l=e,c=e.__v;c=c.__;)if(c.__c){c.__c.__$f|=4;break}var u=br(function(){var p=r.value.value;return p===0?0:p===!0?"":p||""}),h=br(function(){return!Array.isArray(u.value)&&!ni(u.value)}),f=Vt(function(){if(this.N=Po,h.value){var p=u.value;l.__v&&l.__v.__e&&l.__v.__e.nodeType===3&&(l.__v.__e.data=p)}}),d=e.__$u.d;return e.__$u.d=function(){f(),d.call(this)},[h,u]},[]),o=i[0],a=i[1];return o.value?a.peek():a.value}$o.displayName="ReactiveTextNode",Object.defineProperties(ee.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:$o},props:{configurable:!0,get:function(){var t=this;return{data:{get value(){return t.value}}}}},__b:{configurable:!0,value:1}}),xt("__b",function(t,e){if(typeof e.type=="string"){var n,r=e.props;for(var i in r)if(i!=="children"){var o=r[i];o instanceof ee&&(n||(e.__np=n={}),n[i]=o,r[i]=o.peek())}}t(e)}),xt("__r",function(t,e){if(t(e),e.type!==O){Rn();var n,r=e.__c;r&&(r.__$f&=-2,(n=r.__$u)===void 0&&(r.__$u=n=(function(i,o){var a;return Vt(function(){a=this},{name:o}),a.c=i,a})(function(){var i;gc&&((i=n.y)==null||i.call(n)),r.__$f|=1,r.setState({})},typeof e.type=="function"?e.type.displayName||e.type.name:""))),Rn(n)}}),xt("__e",function(t,e,n,r){Rn(),t(e,n,r)}),xt("diffed",function(t,e){Rn();var n;if(typeof e.type=="string"&&(n=e.__e)){var r=e.__np,i=e.props;if(r){var o=n.U;if(o)for(var a in o){var l=o[a];l!==void 0&&!(a in r)&&(l.d(),o[a]=void 0)}else o={},n.U=o;for(var c in r){var u=o[c],h=r[c];u===void 0?(u=mc(n,c,h,i),o[c]=u):u.o(h,i)}}}t(e)});function mc(t,e,n,r){var i=e in t&&t.ownerSVGElement===void 0,o=$(n);return{o:function(a,l){o.value=a,r=l},d:Vt(function(){this.N=Po;var a=o.value.value;r[e]!==a&&(r[e]=a,i?t[e]=a:a!=null&&(a!==!1||e[4]==="-")?t.setAttribute(e,a):t.removeAttribute(e))})}}xt("unmount",function(t,e){if(typeof e.type=="string"){var n=e.__e;if(n){var r=n.U;if(r){n.U=void 0;for(var i in r){var o=r[i];o&&o.d()}}}var a=e.__np;if(a){var l=e.props;for(var c in a)l[c]=a[c]}e.__np=void 0}else{var u=e.__c;if(u){var h=u.__$u;h&&(u.__$u=void 0,h.d())}}t(e)}),xt("__h",function(t,e,n,r){(r<3||r===9)&&(e.__$f|=2),t(e,n,r)}),ye.prototype.shouldComponentUpdate=function(t,e){if(this.__R)return!0;var n=this.__$u,r=n&&n.s!==void 0;for(var i in e)return!0;if(this.__f||typeof this.u=="boolean"&&this.u===!0){var o=2&this.__$f;if(!(r||o||4&this.__$f)||1&this.__$f)return!0}else if(!(r||4&this.__$f)||3&this.__$f)return!0;for(var a in t)if(a!=="__source"&&t[a]!==this.props[a])return!0;for(var l in this.props)if(!(l in t))return!0;return!1};function vt(t,e){return G(function(){return $(t,e)},[])}var xc=function(t){queueMicrotask(function(){queueMicrotask(t)})};function vc(){hc(function(){for(var t;t=Eo.shift();)Io.call(t)})}function Po(){Eo.push(this)===1&&(_.requestAnimationFrame||xc)(vc)}const F=$(!1),An=$(void 0),Ht="https://jexitychat.de/privacy",Qt=$(Ht),wr=$("chip"),Ve=$(void 0),kr=$([]),_r=$([]),Mo=$(null);function bc(t){return t.replace(/\.convex\.site\b/,".convex.cloud")}function jr(t){return t.replace(/\.convex\.cloud\b/,".convex.site")}function yc(t){const e=t?.trim();if(e)try{const n=new URL(e);if(n.protocol==="http:"||n.protocol==="https:")return e}catch{return}}function wc(t,e){const n=t.title??e?.title??"Assistant",r=t.privacyPolicyMode??e?.privacyPolicyMode??"platform",i=kc(t.privacyNoticeStyle??e?.privacyNoticeStyle);return{title:n,botName:t.botName?.trim()||e?.botName?.trim()||n,greeting:t.greeting??e?.welcomeMessage??`Hi! I'm ${n}. How can I help?`,starterQuestions:t.starterQuestions??e?.starterQuestions??[],locale:t.locale??e?.locale,position:t.position??e?.position,colorScheme:t.colorScheme??e?.colorScheme,hideBranding:t.hideBranding??e?.hideBranding??!1,privacyPolicyMode:r,privacyPolicyUrl:r==="custom"?yc(t.privacyPolicyUrl??e?.privacyPolicyUrl):void 0,privacyNoticeStyle:i,sessionTimeoutMs:_c(e?.sessionTimeout),triggerIcon:t.triggerIcon??e?.triggerIcon??"chat",triggerRadius:t.triggerRadius??e?.triggerRadius??"full",triggerLabel:t.triggerLabel??e?.triggerLabel??"Chatte mit uns",mode:t.mode??"floating",proactiveMode:e?.proactiveMode??"off",proactiveDelaySeconds:Math.min(15,Math.max(0,e?.proactiveDelaySeconds??5)),primaryColor:t.primaryColor??e?.primaryColor,accentColor:t.accentColor??e?.accentColor,fontFamily:t.fontFamily??e?.fontFamily,fontSize:t.fontSize??e?.fontSize,borderRadius:t.borderRadius??e?.borderRadius,windowWidth:t.windowWidth??e?.windowWidth,windowHeight:t.windowHeight??e?.windowHeight}}function kc(t){return t==="explicit"||t==="sheet"?"explicit":"chip"}function _c(t){switch(t){case"never":return null;case"1h":return 3600*1e3;case"6h":return 360*60*1e3;case"7d":return 10080*60*1e3;case"24h":return 1440*60*1e3;case void 0:return 3600*1e3}}async function jc(t,e,n,r){const i=new URL(`${t}/widget/config`);i.searchParams.set("orgSlug",e),r&&i.searchParams.set("projSlug",r);const o=await fetch(i.toString(),{signal:n});return o.ok?o.json():null}function Sc(t,e,n){const[r,i]=R({config:null,settled:!1});return T(()=>{i({config:null,settled:!1});const o=n??"https://festive-mouse-978.eu-west-1.convex.cloud",a=o?jr(o):void 0;if(!a||!t){i({config:null,settled:!0});return}const l=new AbortController;async function c(u){try{const h=await jc(u,t,l.signal,e);l.signal.aborted||i({config:h,settled:!0})}catch(h){if(h instanceof Error&&h.name==="AbortError")return;l.signal.aborted||i({config:null,settled:!0})}}return c(a),()=>{l.abort()}},[t,e,n]),r}async function Sr(t,e,n){try{const r=await fetch(`${e}/widget/bootstrap`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n?{orgSlug:t,projSlug:n}:{orgSlug:t}),credentials:"omit"});if(r.ok){const i=await r.json(),o=i.allowedUrls??(i.allowedUrl?[i.allowedUrl]:[]);return{ok:!0,token:i.token,excludePaths:i.excludePaths,allowedUrls:o}}return r.status===403?{ok:!1,error:"unauthorized"}:r.status===404?{ok:!1,error:"not_found"}:r.status===429?{ok:!1,error:"rate_limited",retryAfterSec:Number(r.headers.get("Retry-After"))||60}:{ok:!1,error:"network"}}catch{return{ok:!1,error:"network"}}}function Cc(t,e){return e.some(n=>n==="/"?t==="/":t===n||t.startsWith(n+"/"))}function Cr(t,e){try{const n=new URL(t),r=new URL(e);if(n.origin!==r.origin)return!1;const i=r.pathname.replace(/\/$/,"");if(!i)return!0;const o=n.pathname.replace(/\/$/,"");return o===i||o.startsWith(i+"/")}catch{return!1}}function Tc({orgSlug:t,projSlug:e,preToken:n,convexUrl:r,preAllowedUrls:i,preExcludedPaths:o}){T(()=>{const a=r??"https://festive-mouse-978.eu-west-1.convex.cloud",l=a?jr(a):void 0;if(!l||!t)return;if(Mo.value={orgSlug:t,projSlug:e,siteUrl:l},n){kr.value=i??[],_r.value=o??[];return}let c=!1;return(async()=>{const u=await Sr(t,l,e);if(!c)if(u.ok)Ve.value=u.token,kr.value=u.allowedUrls,_r.value=u.excludePaths;else{const h=e?`project '${t}/${e}'`:`org '${t}'`;u.error==="unauthorized"?console.warn(`[JexityChat] Domain not authorized for ${h}. Check the widget's domain rules.`):u.error==="not_found"?console.error(`[JexityChat] No active widget config found for ${h}.`):u.error==="rate_limited"?console.error(`[JexityChat] Bootstrap rate-limited for ${h}. Retry after ${u.retryAfterSec??60}s.`):console.error(`[JexityChat] Bootstrap failed: ${u.error}`)}})(),()=>{c=!0}},[t,e,n,r])}const In=new Set;let qo=!1;function Rc(){if(qo)return;qo=!0;const t=history.pushState.bind(history),e=history.replaceState.bind(history);history.pushState=function(...n){t(...n),In.forEach(r=>r())},history.replaceState=function(...n){e(...n),In.forEach(r=>r())}}function Ac(t){return In.add(t),window.addEventListener("popstate",t),Rc(),()=>{In.delete(t),window.removeEventListener("popstate",t)}}function Ic(){const t=vt(window.location.href);T(()=>Ac(()=>{t.value=window.location.href}),[]);const e=kr.value,n=_r.value,r=new URL(t.value).pathname,i=Cc(r,n);return T(()=>{i?console.warn(`[JexityChat] Widget hidden — current path is in the exclude list: ${r}`):e.length>0&&!e.some(o=>Cr(t.value,o))&&console.warn(`[JexityChat] Widget hidden — current page does not match path rule. Allowed: ${e.join(", ")}`)},[t.value,e,n]),i?!1:e.length===0?!0:e.some(o=>Cr(t.value,o))}const Tr={title:"Assistant",statusOnline:"Online · Responds in seconds",inputPlaceholder:"Type a message…",aiThinking:"AI is responding…",sendAriaLabel:"Send message",attachImagesAriaLabel:"Attach images",attachComingSoon:"File attachments — coming soon",voiceAriaLabel:"Voice message",voiceComingSoon:"Voice messages — coming soon",removeAttachmentAriaLabel:"Remove attachment",openChatAriaLabel:"Open chat",closeChatAriaLabel:"Close chat",proactiveDismiss:"Dismiss",proactiveOpenAria:"Open chat",errorNetwork:"Network error. Please try again.",errorQuota:"Message limit reached. Please try again later.",errorRateLimited:"Too many messages. Try again in {seconds}s.",errorSessionNoToken:"Could not connect to chat. Check your connection and try again.",errorSessionUnauthorized:"This chat is not authorised on this page. Please reload.",localeLabelDe:"DE",localeLabelEn:"EN",resumeConversation:"Resuming conversation…",startingConversation:"Starting conversation…",sessionNotFound:"Your previous session was not found. Starting a new conversation.",startNewConversation:"Start new conversation",chatWith:"Send us a message",homeStatusOnline:"Online",homeStatusOffline:"Offline",haveReferenceNumber:"Have a reference number?",referencePlaceholder:"e.g. JEX-A3B7C2",resume:"Resume",howCanWeHelp:"How can we help?",getInstantHelp:"Get instant help",submitTicket:"Submit a ticket",replyByEmail:"We'll reply by email",ticketSubmitted:"Ticket submitted",yourReferenceNumber:"Your reference number:",sentToEmailHint:"We've sent it to your email. Use this number to follow up.",done:"Done",submittingTicket:"Submitting your ticket…",yourName:"Your name",yourEmail:"Your email",submit:"Submit",back:"Go back",escalationFormTitle:"Leave your details",escalationSubtitle:"Our team will get back to you by email so you don’t have to wait here.",escalationOfflineSubtitle:"Our team is offline right now — leave your email and we’ll get back to you.",escalationNameLabel:"Your name",escalationEmailLabel:"Your email",escalationSubmit:"Send to team",escalationSubmitting:"Sending…",escalationSubmitted:"Request submitted",escalationConsent:"By submitting, you agree to our",escalationPrivacyLinkText:"Privacy Policy",escalationSkip:"Skip, I’ll wait here",escalationPromptTitle:"Talk to our team",escalationPromptSubtitle:"We can notify you by email when our team replies.",escalationPromptSubmit:"Leave details",escalationSubmitFailed:"Failed to submit. Please try again.",sessionNotFoundPrompt:"Session not found. Would you like to start a new conversation?",sessionLocked:"For your privacy, this conversation was closed after a period of inactivity. Enter your reference to resume, or start a new conversation.",sessionResolved:"This conversation has been resolved.",tryAgain:"Try again",goBack:"Go back",somethingWentWrong:"Something went wrong",fabLabel:"Chat with us",chatNoLongerAvailable:"This chat is no longer available.",talkToHuman:"Talk to human",talkToHumanAria:"Talk to a human agent",handoffPending:"Connecting you to a human agent…",handoffFailed:"Could not request a human agent. Try again.",handoffRateLimited:"You requested an agent recently. Please wait before trying again.",handoffAvailable:"An agent is available",handoffOffline:"No agent online — leave your details",resumeListLabel:"Continue conversation",resumeListTimestamp:"{minutes}m ago",pickUpWhereLeftOff:"Pick up where you left off",noticeAgentJoined:"{name} has joined the conversation.",noticeHumanRequested:"You requested to speak with a human agent.",noticeHumanRequestedForm:"You requested to speak with a human agent. Please share your contact details below.",noticeEscalationConfirmed:`Thank you {name}! A human agent will be available soon.
3
3
  We will contact you at {email} when an agent is ready.
4
4
 
5
5
  Your reference: **{ref}**
@@ -7,11 +7,11 @@ Use it to resume this conversation from any device.`,noticeMessageReceived:"Your
7
7
  Wir kontaktieren Sie unter {email}, sobald ein Mitarbeiter bereit ist.
8
8
 
9
9
  Ihre Referenz: **{ref}**
10
- Verwenden Sie sie, um diese Unterhaltung auf jedem Gerät fortzusetzen.`,noticeMessageReceived:"Ihre Nachricht ist eingegangen. Ein Mitarbeiter wird in Kürze antworten.",noticeAgentHandling:"Ihre Unterhaltung wird von einem menschlichen Mitarbeiter betreut, der in Kürze antwortet.",noticeAiResumed:"Der Assistent ist wieder da und kann Ihre Fragen beantworten.",replyTo:"Antworten an {name}",sourcesCountOne:"{count} Quelle",sourcesCountOther:"{count} Quellen",privacyNoticePre:"Mit dem Chatten stimmst du unserer",privacyPolicyLinkText:"Datenschutzerklärung",privacyChipText:"Wir respektieren Ihre Privatsphäre - Richtlinie lesen",privacyExplicitTitle:"Vor dem Senden",privacyExplicitBodyPre:"Nachrichten werden verarbeitet, um Ihnen zu helfen. Durch Fortfahren stimmen Sie unserer",privacyExplicitButton:"Verstanden, fortfahren",magiclineTrialTitle:"Probetraining buchen",magiclineLeadTitle:"Weitere Informationen anfordern",magiclineFirstName:"Vorname",magiclineLastName:"Nachname",magiclineEmail:"E-Mail",magiclinePhone:"Telefon",magiclineBirthDate:"Geburtsdatum",magiclineInterest:"Wofür interessieren Sie sich? (optional)",magiclineMessage:"Nachricht (optional)",magiclineSlotLabel:"Wunschtermin",magiclineSlotPlaceholder:"Termin auswählen…",magiclineLoadingSlots:"Verfügbare Termine werden geladen…",magiclineNoSlots:"Derzeit sind keine Probetermine verfügbar. Bitte versuchen Sie es später erneut oder fragen Sie uns um Hilfe.",magiclineSubmit:"Absenden",magiclineSubmitting:"Wird gesendet…",magiclineSubmitted:"Anfrage gesendet",magiclineSubmittedDetail:"Wir haben Ihre Anfrage erhalten und melden uns in Kürze bei Ihnen.",magiclineTrialSuccessTitle:"Probetraining buchen",magiclineTrialSuccessDetail:"Geschafft! Dein Probetraining ist gebucht. Du bekommst gleich eine Bestätigung per E-Mail – schau bitte in dein Postfach.",magiclineFailed:"Senden fehlgeschlagen",magiclineFailedDetail:"Beim Senden Ihrer Anfrage ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.",magiclineConsent:"Ich stimme der Verarbeitung meiner Daten gemäß der",magiclinePrivacyLinkText:"Datenschutzerklärung",magiclineRequiredError:"Bitte füllen Sie alle Pflichtfelder aus.",magiclineEmailError:"Bitte geben Sie eine gültige E-Mail-Adresse ein.",magiclineConsentError:"Bitte akzeptieren Sie die Datenschutzerklärung, um fortzufahren.",magiclineConfigLoading:"Buchungsformular wird geladen…",magiclineConfigUnsupported:"Die Online-Buchung eines Probetrainings wird für dieses Studio nicht unterstützt. Bitte fragen Sie uns um Hilfe.",magiclineConfigInconsistent:"Das Buchungsformular ist vorübergehend falsch konfiguriert. Bitte fragen Sie uns um Hilfe.",magiclineConfigUnavailable:"Die Buchung eines Probetrainings ist derzeit nicht verfügbar. Bitte versuchen Sie es später erneut oder fragen Sie uns um Hilfe.",magiclineGender:"Geschlecht",magiclineGenderPlaceholder:"Geschlecht auswählen…",magiclineGenderMale:"Männlich",magiclineGenderFemale:"Weiblich",magiclineGenderUnisex:"Divers",magiclineStreet:"Straße",magiclineHouseNumber:"Hausnummer",magiclineZip:"Postleitzahl",magiclineCity:"Stadt",magiclineCountry:"Land",magiclineCountryPlaceholder:"Land auswählen…",magiclineNote:"Anmerkung (optional)",magiclineOptionalSuffix:" (optional)",magiclineTrainerRequired:"Ich wünsche einen Trainer vor Ort",magiclineMinAgeError:"Sie müssen mindestens {age} Jahre alt sein, um ein Probetraining zu buchen.",magiclineSlotRequiredError:"Bitte wählen Sie einen verfügbaren Termin aus.",magiclineSlotUnavailableNotice:"Dieser Termin ist nicht mehr verfügbar. Bitte wählen Sie unten einen anderen Termin aus.",magiclineStepTrainer:"Trainer",magiclineStepSlot:"Termin wählen",magiclineStepPersonal:"Ihre Daten",magiclineStepAddress:"Ihre Adresse",magiclineStepConfirm:"Bestätigen",magiclineStepCounter:"Schritt {n} von {total}",magiclineWizardBack:"Zurück",magiclineWizardNext:"Weiter",magiclineTrainerWith:"Probetraining mit Trainer",magiclineTrainerWithout:"Probetraining ohne Trainer",magiclineSummaryTrainer:"Trainer",magiclineSummarySlot:"Termin",magiclineSummaryName:"Name",magiclineRetry:"Erneut versuchen",magiclineSlotsError:"Die verfügbaren Termine konnten gerade nicht geladen werden. Bitte versuchen Sie es erneut.",magiclineContractTitle:"Mitglied werden",magiclineStepOffer:"Mitgliedschaft wählen",magiclineStepUpgrades:"Zusatzoptionen",magiclineStepPayment:"Zahlung",magiclineStepReview:"Überprüfen",magiclineOffersLoading:"Mitgliedschaften werden geladen…",magiclineOffersError:"Die Mitgliedschaften konnten gerade nicht geladen werden. Bitte versuchen Sie es erneut.",magiclineNoOffers:"Derzeit sind keine Mitgliedschaften für den Online-Abschluss verfügbar. Bitte fragen Sie uns um Hilfe.",magiclineTermLength:"{value} {unit}",magiclineFreqPerDay:"pro Tag",magiclineFreqPerWeek:"pro Woche",magiclineFreqPerMonth:"pro Monat",magiclineFreqPerYear:"pro Jahr",magiclineFreqEveryDays:"alle {n} Tage",magiclineFreqEveryWeeks:"alle {n} Wochen",magiclineFreqEveryMonths:"alle {n} Monate",magiclineFreqEveryYears:"alle {n} Jahre",magiclineModulePerTerm:"pro Laufzeit",magiclineModuleOneTime:"einmalig",magiclineModuleIncluded:"inklusive",magiclineRenewalNone:"Keine automatische Verlängerung",magiclineRenewalTerm:"Verlängerung: {n} {unit}",magiclineCancellationPeriod:"Kündigungsfrist",magiclineStarterPackage:"Startpaket",magiclineFlatFee:"Einmalige Gebühr",magiclineIncludedModules:"Inklusive",magiclineDetails:"Details",magiclineRequired:"Erforderlich",magiclineUpgradesIntro:"Fügen Sie Ihrer Mitgliedschaft optionale Zusatzoptionen hinzu.",magiclineUpgradesNone:"Für diese Mitgliedschaft sind keine optionalen Zusatzoptionen verfügbar.",magiclineUpgradeAdd:"Hinzufügen",magiclineUpgradeAdded:"Hinzugefügt",magiclineUpgradeOneTime:"einmalig",magiclineUpgradeConsentError:"Bitte akzeptieren Sie die Bedingungen für Ihre gewählte Zusatzoption, um sie beizubehalten.",magiclineOfferRequiredError:"Bitte wählen Sie eine Mitgliedschaft aus.",magiclineCountryStatic:"Deutschland",magiclineAccountHolder:"Kontoinhaber",magiclineIban:"IBAN",magiclineIbanInvalidError:"Bitte geben Sie eine gültige IBAN ein.",magiclineSepaConsent:"Ich ermächtige das Studio, Zahlungen von meinem Konto per SEPA-Lastschrift einzuziehen, und weise mein Kreditinstitut an, diese Lastschriften einzulösen.",magiclineReviewLoading:"Ihr Preis wird berechnet…",magiclineReviewError:"Ihr Preis konnte gerade nicht berechnet werden. Bitte versuchen Sie es erneut.",magiclineReviewOffer:"Mitgliedschaft",magiclineReviewPriceSummary:"Preisübersicht",magiclineReviewBasePrice:"Preis pro Monat",magiclineReviewOneTimeFees:"Einmalige Gebühren",magiclineReviewPreUseCharge:"Vorab-Nutzungsgebühr",magiclineReviewSelectedUpgrades:"Deine gewählten Zusatzoptionen",magiclineReviewContractVolume:"Gesamtes Vertragsvolumen",magiclineReviewStartsOn:"Beginnt am",magiclineReviewPayment:"Zahlung",magiclineReviewTerms:"Vertragsbedingungen",magiclineConfirmPrompt:"Bitte bestätigen Sie zum Fortfahren das Folgende:",magiclineConfirmRequiredError:"Bitte bestätigen Sie alle erforderlichen Bedingungen vor dem Absenden.",magiclineSummaryAddress:"Adresse",magiclineContractSubmitted:"Ihre Mitgliedschaft ist bestätigt. Das Studio meldet sich in Kürze bei Ihnen.",magiclineContractSuccessTitle:"Mitgliedschaft abschließen",magiclineContractSuccessDetail:"Willkommen an Bord! Deine Mitgliedschaft ist abgeschlossen. Die Bestätigung kommt gleich per E-Mail.",magiclineCustomerNumber:"Ihre Kundennummer: {number}",magiclinePriceChangedNotice:"Der Preis hat sich geändert. Bitte prüfen Sie den neuen Preis und bestätigen Sie erneut.",magiclineOfferUnavailableNotice:"Diese Mitgliedschaft ist nicht mehr verfügbar. Bitte wählen Sie eine andere aus.",magiclineConfirmationRequiredNotice:"Bitte bestätigen Sie alle erforderlichen Bedingungen vor dem Absenden.",magiclineLiveSubmissionDisabled:"Die Live-Übermittlung ist für dieses Projekt deaktiviert — bitte wenden Sie sich an das Studio.",magiclineDuplicateNotice:"Für dieses Angebot wurde kürzlich bereits eine Mitgliedschaft erstellt.",magiclineUnknownOutcome:"Wir konnten Ihre Anmeldung nicht bestätigen. Das Studio prüft sie und meldet sich bei Ihnen — bitte senden Sie das Formular nicht erneut ab.",magiclineFeeStarterPackage:"Startpaket",magiclineFeeTrainerFee:"Trainerpauschale",magiclineVoucherLabel:"Gutscheincode",magiclineVoucherPlaceholder:"Gutscheincode eingeben…",magiclineVoucherApply:"Einlösen",magiclineVoucherAppliedDiscount:"Rabatt ({discount})",magiclineVoucherCreditNotice:"Guthaben wird angerechnet — nicht vom Vertragsvolumen abgezogen.",magiclineVoucherRemarks:"Hinweis zum Gutschein",magiclineVoucherInvalid:'Gutscheincode „{code}" ist nicht gültig. Bitte überprüfen Sie den Code und versuchen Sie es erneut.',magiclineVoucherDisabled:"Gutscheincodes sind für diese Mitgliedschaft nicht verfügbar.",magiclineGesamtpreisBeforeDiscount:"Gesamtes Vertragsvolumen (vor Gutscheinrabatt)",newReplyTitle:"Neue Antwort",waitingTitle:"Du bist in der Warteschlange",waitingSubtitle:"Lass diesen Tab offen — wir benachrichtigen dich hier, sobald jemand antwortet.",waitingLeaveEmail:"Lieber per E-Mail? Hinterlasse deine Daten"},Ec=[{value:"de",label:"Deutsch",flag:"🇩🇪"},{value:"en",label:"English",flag:"🇬🇧"}],$c="de",Pc="jex-locale",Ae=$("de"),Mc={en:Tr,de:No};function j(){return Mc[Ae.value]??Tr}function Rr(t){if(!t)return null;const e=(t.split("-")[0]??"").toLowerCase();return Ec.some(r=>r.value===e)?e:null}function Lo(t){const e=Rr(t);if(e)return e;try{const n=Rr(localStorage.getItem(Pc));if(n)return n}catch{}if(typeof navigator<"u"){const n=Rr(navigator.language);if(n)return n}return $c}function qc(t){T(()=>{function e(n){const r=t??window.location.origin;if(n.origin!==r||n.data?.type!=="jexity:config")return;const{locale:i}=n.data.payload;i&&(Ae.value=Lo(i))}return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[t])}const Oo="jex-session-history",zo=Oo,Bo=1440*60*1e3,ne=$([]),fe=$(null),Qe=$(void 0),Ar=$(!1),Ir=br(()=>ne.value.length>0),bt=$(null);function Nc(){return"JEX-"+Math.random().toString(36).slice(2,8).toUpperCase()}function Lc(t){if(t===null)return null;if(typeof t=="number"&&Number.isFinite(t)&&t>=0)return t}function Do(t,e,n){if(n===null)return t;const r=typeof n=="number"?n:Bo;return t.filter(i=>e-i.lastActivityAt<=r)}function Oc(t,e,n,r){return n?Do(t,e,r):t}function zc(t){try{const e=sessionStorage.getItem(zo);if(!e)return Qe.value=void 0,[];const n=JSON.parse(e);if(n.v!==1||!Array.isArray(n.entries))return Qe.value=void 0,[];const r=Object.prototype.hasOwnProperty.call(n,"timeoutMs");return Qe.value=Lc(n.timeoutMs),Oc(n.entries,t,r,Qe.value)}catch{return Qe.value=void 0,[]}}function Wt(t){try{const e={v:1,entries:t,timeoutMs:Qe.value};sessionStorage.setItem(zo,JSON.stringify(e))}catch{}}function Bc(){const t=Date.now(),e=zc(t);ne.value=e,Wt(e),fe.value=e[e.length-1]?.ref??null,Ar.value=!0}function Dc(t){Qe.value=t;const e=Date.now(),n=Do(ne.value,e,t),r=fe.value!==null&&!n.some(i=>i.ref===fe.value);return ne.value=n,r&&(fe.value=null),Wt(n),{activeRefPruned:r}}function Uo(){const t=Nc(),e=Date.now(),n=[...ne.value,{ref:t,startedAt:e,lastActivityAt:e}];return ne.value=n,fe.value=t,Wt(n),t}function Fo(){fe.value=null}function Vo(t){const e=Date.now(),n=ne.value.map(r=>r.ref===t?{...r,lastActivityAt:e}:r);ne.value=n,fe.value=t,Wt(n)}function Er(t){if(!t)return;const e=Date.now(),n=ne.value.map(r=>r.ref===t?{...r,lastActivityAt:e}:r);ne.value=n,Wt(n)}const ue=$(Qo());function Qo(){return Ir.value?[{id:"home"}]:[{id:"home"},{id:"chat"}]}function Uc(){ue.value=Qo()}const Fc=$("screen");function Oe(t){ue.value=[...ue.value,t]}function $r(){ue.value.length>1&&(ue.value=ue.value.slice(0,-1))}function Pr(t){ue.value=[...ue.value.slice(0,-1),t]}const Vc=6e4,Kt=$(!1),Mr=$(!1),qr=new Set;function Qc(t){return qr.add(t),()=>{qr.delete(t)}}function Hc(){const t=fe.value;return t?ne.value.find(n=>n.ref===t)?.lastActivityAt??null:null}function Ho(t){const e=Hc();return e===null?!1:Date.now()-e>t}function Nr(){if(!(Kt.value&&ne.value.length===0)){ne.value=[],fe.value=null;try{sessionStorage.removeItem(Oo)}catch(t){console.warn("[JexityChat] Idle-lock storage clear failed:",t)}for(const t of qr)try{t()}catch(e){console.warn("[JexityChat] Lock reset callback threw:",e)}ue.value=[{id:"home"}],Kt.value=!0}}function En(){Kt.value&&(Kt.value=!1)}function Wc(t=Bo){let e=document.visibilityState==="hidden"?Date.now():null;const n=()=>{if(document.visibilityState==="hidden"){e=Date.now();return}(e!==null&&Date.now()-e>t||Ho(t))&&Nr(),e=null};document.addEventListener("visibilitychange",n);const r=setInterval(()=>{Mr.value||Ho(t)&&Nr()},Vc);return()=>{document.removeEventListener("visibilitychange",n),clearInterval(r),e=null}}function Kc(t){const e={},{primaryColor:n,theme:r}=t;if(n&&(e["--jex-primary"]=n,e["--jex-bg-trigger"]=n,e["--jex-bg-header"]=n,e["--jex-bg-msg-user"]=n,e["--jex-bg-send-btn"]=n),t.accentColor&&(e["--jex-accent"]=t.accentColor),r?.bg){const i=r.bg;i.trigger&&(e["--jex-bg-trigger"]=i.trigger),i.header&&(e["--jex-bg-header"]=i.header),i.msgUser&&(e["--jex-bg-msg-user"]=i.msgUser),i.msgBot&&(e["--jex-bg-msg-bot"]=i.msgBot),i.window&&(e["--jex-bg-window"]=i.window),i.sendBtn&&(e["--jex-bg-send-btn"]=i.sendBtn)}if(r?.text){const i=r.text;i.header&&(e["--jex-text-header"]=i.header),i.msgUser&&(e["--jex-text-msg-user"]=i.msgUser),i.msgBot&&(e["--jex-text-msg-bot"]=i.msgBot),i.main&&(e["--jex-text-main"]=i.main),i.muted&&(e["--jex-text-muted"]=i.muted)}if(r?.border){const i=r.border;i.window&&(e["--jex-border-window"]=i.window),i.input&&(e["--jex-border-input"]=i.input)}return t.fontFamily&&(e["--jex-font-family"]=t.fontFamily),t.fontSize&&(e["--jex-font-size"]=`${t.fontSize}px`),t.borderRadius&&(e["--jex-radius"]=t.borderRadius),t.windowWidth&&(e["--jex-window-width"]=`${t.windowWidth}px`),t.windowHeight&&(e["--jex-window-height"]=`${t.windowHeight}px`),Object.keys(e).length>0?e:void 0}function $n({size:t=24}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M12 8V4H8"}),s("rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"}),s("path",{d:"M2 14h2"}),s("path",{d:"M20 14h2"}),s("path",{d:"M15 13v2"}),s("path",{d:"M9 13v2"})]})}function Gc(){const t=j();return ue.value.length>1?s("button",{class:"jex-header-back",onClick:$r,"aria-label":t.back||"Go back",children:s("svg",{width:20,height:20,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:s("path",{d:"m15 18-6-6 6-6"})})}):s($n,{size:24})}function Jc({title:t}){return s("div",{class:"jex-header-info",children:s("h3",{children:t})})}function Wo({size:t=28}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M18 6 6 18"}),s("path",{d:"m6 6 12 12"})]})}function Yc(){const t=j();return s("button",{class:"jex-header-close",type:"button",onClick:()=>{F.value=!1},"aria-label":t.closeChatAriaLabel,title:t.closeChatAriaLabel,children:s(Wo,{size:18})})}function Zc({action:t,showClose:e=!0}){return!t&&!e?null:s("div",{class:"jex-header-right",children:[t,e&&s(Yc,{})]})}function Ko({title:t,rightAction:e,showClose:n=!0}){return s("header",{class:"jex-chat-header",children:[s(Gc,{}),s(Jc,{title:t}),s(Zc,{action:e,showClose:n})]})}function Xc({size:t=14}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:s("path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"})})}function Go(){return s("div",{class:"jex-widget-footer",children:s("a",{href:"https://jexitychat.de",target:"_blank",rel:"noopener noreferrer",class:"jex-branding",children:[s(Xc,{size:14}),s("span",{children:["Powered by ",s("strong",{children:"Jexity"})]})]})})}function Jo({size:t=28}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:s("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})})}function eu({size:t=24,...e}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",...e,children:s("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"})})}const tu={chat:s(Jo,{size:28}),bot:s($n,{size:28}),sparkles:s(eu,{size:28})},nu={none:"0px",sm:"0.5rem",md:"0.75rem",lg:"1.25rem",full:"9999px"};function ru({radius:t="full",iconOption:e="chat",label:n}){const r=j(),i=n??r.fabLabel,o=i!=="";return s("button",{class:`jex-floating-button${F.value?"":" jex-fab-pulse"}${!F.value&&o?" jex-has-label":""}`,style:{borderRadius:nu[t]??"9999px"},onClick:()=>{F.value=!F.value},"aria-label":F.value?r.closeChatAriaLabel:r.openChatAriaLabel,children:F.value?s(Wo,{size:28}):s("div",{class:"jex-fab-inner",children:[tu[e],o&&s("span",{class:"jex-fab-label",children:i})]})})}const Pn=$(!1);function iu(t,e){return e?`jex-proactive-dismissed:${t}:${e}`:`jex-proactive-dismissed:${t}`}function Yo(t){try{return sessionStorage.getItem(t)!==null}catch{return!1}}function ou(t){try{sessionStorage.setItem(t,"1")}catch{}}function au(t){return t.isOpen||t.mode==="off"||t.hasHistory||t.dismissed?"skip":t.mode==="teaser"?"teaser":"open"}function su({title:t,message:e,guardKey:n}){const r=j();function i(){Pn.value=!1,F.value=!0}function o(a){a.stopPropagation(),ou(n),Pn.value=!1}return s("div",{class:"jex-proactive-teaser",role:"button",tabIndex:0,"aria-label":r.proactiveOpenAria,onClick:i,onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&i()},children:[s("div",{class:"jex-proactive-avatar",children:s($n,{size:20})}),s("div",{class:"jex-proactive-body",children:[s("span",{class:"jex-proactive-title",children:t}),s("span",{class:"jex-proactive-message",children:e})]}),s("button",{type:"button",class:"jex-proactive-dismiss","aria-label":r.proactiveDismiss,onClick:o,children:s("svg",{width:14,height:14,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M18 6 6 18"}),s("path",{d:"m6 6 12 12"})]})})]})}const yt=$("");function lu(t){if(!t)return;const e=t.trim().split(/\s+/)[0];if(!e)return;const n=`@${e} `,r=yt.value;r.includes(n)||r.includes(`@${e}`)||(yt.value=r.trimStart()?`${n}${r.trimStart()}`:n)}const Gt=$(null),Zo=$(Date.now()),Mn=$(!1),Lr=$(!1),Jt=$(!1),qn=$(null);function Xo(){return wr.value==="explicit"&&!Lr.value}function ea(){Xo()&&(Jt.value=!0)}function cu(){Lr.value=!0,Jt.value=!1}function ta(){Lr.value=!1,Jt.value=!1,qn.value=null}const ze=$([]),uu=4,du=8*1024*1024;function hu(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`att-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,11)}`}function pu(t){const e=Array.from(t).filter(i=>i.type.startsWith("image/")&&i.size<=du);if(e.length===0)return;const n=uu-ze.value.length;if(n<=0)return;const r=e.slice(0,n).map(i=>({id:hu(),file:i,previewUrl:URL.createObjectURL(i)}));ze.value=[...ze.value,...r]}function fu(t){const e=ze.value.find(n=>n.id===t);e&&URL.revokeObjectURL(e.previewUrl),ze.value=ze.value.filter(n=>n.id!==t)}function gu(){for(const t of ze.value)URL.revokeObjectURL(t.previewUrl);ze.value=[]}function na(t,e){const n={get(r,i){if(typeof i=="string"){const o=[...e,i];return na(t,o)}else if(i===po){if(e.length<1){const o=[t,...e].join(".");throw new Error(`API path is expected to be of the form \`${t}.childComponent.functionName\`. Found: \`${o}\``)}return"_reference/childComponent/"+e.join("/")}else return}};return new Proxy({},n)}const mu=()=>na("components",[]),re=pl;mu();function ra({sessionId:t,visitorId:e,ensureSession:n}){const r=Ye(re.functions.chat.public.conversations.send);return async function(o){if(Xo()){qn.value=o,ea();return}if(!Mn.value){Mn.value=!0;try{const a=t&&e?{sessionId:t,visitorId:e}:await n();if(!a)return;yt.value="",gu();try{const l=await r({sessionId:a.sessionId,visitorId:a.visitorId,content:o});l.ok?Er(a.visitorId):l.reason==="rate_limited"&&(Gt.value=Date.now()+l.retryAfterMs)}catch(l){console.error("[jexity] Failed to send message:",l)}}finally{Mn.value=!1}}}}function xu(){const t=Gt.value,e=Zo.value;T(()=>{if(t===null)return;const i=setInterval(()=>{Zo.value=Date.now()},1e3),o=setTimeout(()=>{Gt.value=null},Math.max(0,t-Date.now()));return()=>{clearInterval(i),clearTimeout(o)}},[t]);const n=t!==null,r=n?Math.max(0,Math.ceil((t-e)/1e3)):0;return{isActive:n,remainingSeconds:r}}function vu(){const t=j(),{isActive:e,remainingSeconds:n}=xu();return e?s("div",{class:"jex-rate-limit-notice",role:"status","aria-live":"polite",children:t.errorRateLimited.replace("{seconds}",String(n))}):null}const wt=$(null),Yt=$(null);function ia(){Yt.value=null}function bu(){const t=j(),e=wt.value;if(e===null)return null;const n=e==="no-token"?t.errorSessionNoToken:e==="unauthorized"?t.errorSessionUnauthorized:e==="network"?t.errorNetwork:t.somethingWentWrong;return s("div",{class:"jex-session-error-notice",role:"alert","aria-live":"assertive",children:n})}function yu({size:t=18}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M22 2 11 13"}),s("path",{d:"M22 2 15 22 11 13 2 9l20-7z"})]})}const oa=132;function wu({onSend:t}){const e=me(null),n=me(null);T(()=>{const l=e.current;if(!l)return;l.style.height="0";const c=Math.min(l.scrollHeight,oa);l.style.height=`${c}px`,l.style.overflowY=l.scrollHeight>oa?"auto":"hidden"},[yt.value]);function r(l){l.key==="Enter"&&!l.shiftKey&&(l.preventDefault(),t())}function i(){n.current?.click()}function o(l){const c=l.currentTarget;c.files&&c.files.length>0&&pu(c.files),c.value=""}function a(l){const c=l.target;(c===l.currentTarget||!c.closest("button, textarea, img"))&&e.current?.focus()}return{textareaRef:e,fileInputRef:n,onKeyDown:r,onAttachClick:i,onFilesPicked:o,onCardClick:a}}function ku({isStreaming:t,disabled:e,inputDisabled:n,onSend:r,onFocus:i}){const o=j(),a=yt,l=ze,{textareaRef:c,fileInputRef:u,onKeyDown:h,onAttachClick:f,onFilesPicked:d,onCardClick:p}=wu({onSend:r}),g=a.value.trim().length>0,y=l.value.length>0,m=(g||y)&&!e;return s("div",{class:"jex-composer-card",onClick:p,children:[y&&s("div",{class:"jex-composer-attachments",role:"list",children:l.value.map(v=>s("div",{class:"jex-attachment-chip",role:"listitem",children:[s("img",{src:v.previewUrl,alt:v.file.name,class:"jex-attachment-thumb"}),s("button",{type:"button",class:"jex-attachment-remove","aria-label":o.removeAttachmentAriaLabel,onClick:()=>{fu(v.id)},children:s("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),s("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},v.id))}),s("textarea",{ref:c,class:"jex-composer-textarea","aria-label":o.inputPlaceholder,placeholder:t?o.aiThinking:o.inputPlaceholder,value:a.value,rows:1,onInput:v=>{a.value=v.currentTarget.value},onKeyDown:h,onFocus:i,disabled:n}),s("div",{class:"jex-composer-actions",children:[s("div",{class:"jex-composer-actions-left",children:[s("input",{ref:u,class:"jex-visually-hidden",type:"file",accept:"image/*",multiple:!0,onChange:d,tabIndex:-1,"aria-hidden":"true"}),s("button",{type:"button",class:"jex-attach-btn","aria-label":o.attachComingSoon,title:o.attachComingSoon,disabled:!0,onClick:f,children:s("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:s("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})})}),s("button",{type:"button",class:"jex-attach-btn","aria-label":o.voiceComingSoon,title:o.voiceComingSoon,disabled:!0,children:s("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z"}),s("path",{d:"M19 10v2a7 7 0 0 1-14 0v-2"}),s("line",{x1:"12",y1:"19",x2:"12",y2:"22"})]})})]}),s("button",{class:`jex-send-btn${m?" jex-send-btn-active":""}`,type:"button",onClick:r,"aria-label":o.sendAriaLabel,disabled:e||!g&&!y,children:s(yu,{size:16})})]})]})}function aa({variant:t,isOpen:e=!1,onAcknowledge:n}){const r=j(),i=Ht.value;return t==="explicit"?e?s("div",{class:"jex-privacy-explicit",role:"dialog","aria-label":r.privacyExplicitTitle,children:[s("div",{class:"jex-privacy-explicit-content",children:[s("div",{class:"jex-privacy-explicit-icon","aria-hidden":"true",children:s("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:s("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"})})}),s("div",{class:"jex-privacy-explicit-copy",children:[s("div",{class:"jex-privacy-explicit-title",children:r.privacyExplicitTitle}),s("p",{class:"jex-privacy-explicit-body",children:[r.privacyExplicitBodyPre," ",s("a",{href:i,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:r.privacyPolicyLinkText}),"."]})]})]}),s("button",{type:"button",class:"jex-privacy-explicit-button",onClick:n,children:r.privacyExplicitButton})]}):null:s("p",{class:"jex-privacy-chip",children:[s("span",{class:"jex-privacy-chip-icon","aria-hidden":"true",children:s("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:s("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"})})}),s("a",{href:i,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-chip-link",children:r.privacyChipText})]})}function _u({sessionId:t,visitorId:e,isLoading:n,isStreaming:r,sessionStatus:i,ensureSession:o,onStartFresh:a}){const l=j(),c=yt,u=wr.value,h=ra({sessionId:t,visitorId:e,ensureSession:o}),f=Gt.value!==null&&Gt.value>Date.now(),d=n||r||f,p=u==="explicit"&&Jt.value;function g(){cu();const m=qn.value;qn.value=null,m&&h(m)}if(i==="resolved")return s("div",{class:"jex-chat-input-resolved",children:[s("div",{class:"jex-resolved-notice",children:l.sessionResolved}),s("button",{class:"jex-resolved-new-btn",type:"button",onClick:()=>{a()},children:l.startNewConversation})]});async function y(){const m=c.value.trim();!m||d||await h(m)}return s("div",{class:"jex-chat-input",children:[s(vu,{}),s(bu,{}),u==="chip"&&s(aa,{variant:"chip"}),s("div",{class:`jex-chat-input-composer-gate${p?" jex-chat-input-composer-gate-open":""}`,children:[s(ku,{isStreaming:r,disabled:d,inputDisabled:n||r||p,onSend:y,onFocus:ea}),u==="explicit"&&s(aa,{variant:"explicit",isOpen:Jt.value,onAcknowledge:g})]})]})}const ju=(...t)=>t.filter((e,n,r)=>!!e&&e.trim()!==""&&r.indexOf(e)===n).join(" ").trim();const sa=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const Su=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,n,r)=>r?r.toUpperCase():n.toLowerCase());const la=t=>{const e=Su(t);return e.charAt(0).toUpperCase()+e.slice(1)};var Cu={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};const Tu=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1};const Ru=({color:t="currentColor",size:e=24,strokeWidth:n=2,absoluteStrokeWidth:r,children:i,iconNode:o,class:a="",...l})=>ge("svg",{...Cu,width:String(e),height:e,stroke:t,"stroke-width":r?Number(n)*24/Number(e):n,class:["lucide",a].join(" "),...!i&&!Tu(l)&&{"aria-hidden":"true"},...l},[...o.map(([c,u])=>ge(c,u)),...Se(i)]);const Au=(t,e)=>{const n=({class:r="",className:i="",children:o,...a})=>ge(Ru,{...a,iconNode:e,class:ju(`lucide-${sa(la(t))}`,`lucide-${sa(t)}`,r,i)},o);return n.displayName=la(t),n};const Iu=Au("corner-up-left",[["path",{d:"M20 20v-7a4 4 0 0 0-4-4H4",key:"1nkjon"}],["path",{d:"M9 14 4 9l5-5",key:"102s5s"}]]);function Or(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Xe=Or();function ca(t){Xe=t}var et={exec:()=>null};function A(t,e=""){let n=typeof t=="string"?t:t.source,r={replace:(i,o)=>{let a=typeof o=="string"?o:o.source;return a=a.replace(se.caret,"$1"),n=n.replace(i,a),r},getRegex:()=>new RegExp(n,e)};return r}var Eu=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),se={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}>`)},$u=/^(?:[ \t]*(?:\n|$))+/,Pu=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Mu=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Zt=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,qu=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,zr=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,ua=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,da=A(ua).replace(/bull/g,zr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Nu=A(ua).replace(/bull/g,zr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Br=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Lu=/^[^\n]+/,Dr=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Ou=A(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Dr).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),zu=A(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,zr).getRegex(),Nn="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ur=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Bu=A("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Ur).replace("tag",Nn).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ha=A(Br).replace("hr",Zt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Nn).getRegex(),Du=A(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ha).getRegex(),Fr={blockquote:Du,code:Pu,def:Ou,fences:Mu,heading:qu,hr:Zt,html:Bu,lheading:da,list:zu,newline:$u,paragraph:ha,table:et,text:Lu},pa=A("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Zt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Nn).getRegex(),Uu={...Fr,lheading:Nu,table:pa,paragraph:A(Br).replace("hr",Zt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",pa).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Nn).getRegex()},Fu={...Fr,html:A(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ur).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:et,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:A(Br).replace("hr",Zt).replace("heading",` *#{1,6} *[^
11
- ]`).replace("lheading",da).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Vu=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Qu=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,fa=/^( {2,}|\\)\n(?!\s*$)/,Hu=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,kt=/[\p{P}\p{S}]/u,Ln=/[\s\p{P}\p{S}]/u,Vr=/[^\s\p{P}\p{S}]/u,Wu=A(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Ln).getRegex(),ga=/(?!~)[\p{P}\p{S}]/u,Ku=/(?!~)[\s\p{P}\p{S}]/u,Gu=/(?:[^\s\p{P}\p{S}]|~)/u,Ju=A(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Eu?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),ma=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Yu=A(ma,"u").replace(/punct/g,kt).getRegex(),Zu=A(ma,"u").replace(/punct/g,ga).getRegex(),xa="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Xu=A(xa,"gu").replace(/notPunctSpace/g,Vr).replace(/punctSpace/g,Ln).replace(/punct/g,kt).getRegex(),ed=A(xa,"gu").replace(/notPunctSpace/g,Gu).replace(/punctSpace/g,Ku).replace(/punct/g,ga).getRegex(),td=A("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Vr).replace(/punctSpace/g,Ln).replace(/punct/g,kt).getRegex(),nd=A(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,kt).getRegex(),rd="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",id=A(rd,"gu").replace(/notPunctSpace/g,Vr).replace(/punctSpace/g,Ln).replace(/punct/g,kt).getRegex(),od=A(/\\(punct)/,"gu").replace(/punct/g,kt).getRegex(),ad=A(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),sd=A(Ur).replace("(?:-->|$)","-->").getRegex(),ld=A("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",sd).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),On=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,cd=A(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",On).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),va=A(/^!?\[(label)\]\[(ref)\]/).replace("label",On).replace("ref",Dr).getRegex(),ba=A(/^!?\[(ref)\](?:\[\])?/).replace("ref",Dr).getRegex(),ud=A("reflink|nolink(?!\\()","g").replace("reflink",va).replace("nolink",ba).getRegex(),ya=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Qr={_backpedal:et,anyPunctuation:od,autolink:ad,blockSkip:Ju,br:fa,code:Qu,del:et,delLDelim:et,delRDelim:et,emStrongLDelim:Yu,emStrongRDelimAst:Xu,emStrongRDelimUnd:td,escape:Vu,link:cd,nolink:ba,punctuation:Wu,reflink:va,reflinkSearch:ud,tag:ld,text:Hu,url:et},dd={...Qr,link:A(/^!?\[(label)\]\((.*?)\)/).replace("label",On).getRegex(),reflink:A(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",On).getRegex()},Hr={...Qr,emStrongRDelimAst:ed,emStrongLDelim:Zu,delLDelim:nd,delRDelim:id,url:A(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",ya).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:A(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",ya).getRegex()},hd={...Hr,br:A(fa).replace("{2,}","*").getRegex(),text:A(Hr.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},zn={normal:Fr,gfm:Uu,pedantic:Fu},Xt={normal:Qr,gfm:Hr,breaks:hd,pedantic:dd},pd={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},wa=t=>pd[t];function Ie(t,e){if(e){if(se.escapeTest.test(t))return t.replace(se.escapeReplace,wa)}else if(se.escapeTestNoEncode.test(t))return t.replace(se.escapeReplaceNoEncode,wa);return t}function ka(t){try{t=encodeURI(t).replace(se.percentDecode,"%")}catch{return null}return t}function _a(t,e){let n=t.replace(se.findPipe,(o,a,l)=>{let c=!1,u=a;for(;--u>=0&&l[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(se.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),e)if(r.length>e)r.splice(e);else for(;r.length<e;)r.push("");for(;i<r.length;i++)r[i]=r[i].trim().replace(se.slashPipe,"|");return r}function en(t,e,n){let r=t.length;if(r===0)return"";let i=0;for(;i<r&&t.charAt(r-i-1)===e;)i++;return t.slice(0,r-i)}function fd(t,e){if(t.indexOf(e[1])===-1)return-1;let n=0;for(let r=0;r<t.length;r++)if(t[r]==="\\")r++;else if(t[r]===e[0])n++;else if(t[r]===e[1]&&(n--,n<0))return r;return n>0?-2:-1}function gd(t,e=0){let n=e,r="";for(let i of t)if(i===" "){let o=4-n%4;r+=" ".repeat(o),n+=o}else r+=i,n++;return r}function ja(t,e,n,r,i){let o=e.href,a=e.title||null,l=t[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:o,title:a,text:l,tokens:r.inlineTokens(l)};return r.state.inLink=!1,c}function md(t,e,n){let r=t.match(n.other.indentCodeCompensation);if(r===null)return e;let i=r[1];return e.split(`
10
+ Verwenden Sie sie, um diese Unterhaltung auf jedem Gerät fortzusetzen.`,noticeMessageReceived:"Ihre Nachricht ist eingegangen. Ein Mitarbeiter wird in Kürze antworten.",noticeAgentHandling:"Ihre Unterhaltung wird von einem menschlichen Mitarbeiter betreut, der in Kürze antwortet.",noticeAiResumed:"Der Assistent ist wieder da und kann Ihre Fragen beantworten.",replyTo:"Antworten an {name}",sourcesCountOne:"{count} Quelle",sourcesCountOther:"{count} Quellen",privacyNoticePre:"Mit dem Chatten stimmst du unserer",privacyPolicyLinkText:"Datenschutzerklärung",privacyChipText:"Wir respektieren Ihre Privatsphäre - Richtlinie lesen",privacyExplicitTitle:"Vor dem Senden",privacyExplicitBodyPre:"Nachrichten werden verarbeitet, um Ihnen zu helfen. Durch Fortfahren stimmen Sie unserer",privacyExplicitButton:"Verstanden, fortfahren",magiclineTrialTitle:"Probetraining buchen",magiclineLeadTitle:"Weitere Informationen anfordern",magiclineFirstName:"Vorname",magiclineLastName:"Nachname",magiclineEmail:"E-Mail",magiclinePhone:"Telefon",magiclineBirthDate:"Geburtsdatum",magiclineInterest:"Wofür interessieren Sie sich? (optional)",magiclineMessage:"Nachricht (optional)",magiclineSlotLabel:"Wunschtermin",magiclineSlotPlaceholder:"Termin auswählen…",magiclineLoadingSlots:"Verfügbare Termine werden geladen…",magiclineNoSlots:"Derzeit sind keine Probetermine verfügbar. Bitte versuchen Sie es später erneut oder fragen Sie uns um Hilfe.",magiclineSubmit:"Absenden",magiclineSubmitting:"Wird gesendet…",magiclineSubmitted:"Anfrage gesendet",magiclineSubmittedDetail:"Wir haben Ihre Anfrage erhalten und melden uns in Kürze bei Ihnen.",magiclineTrialSuccessTitle:"Probetraining buchen",magiclineTrialSuccessDetail:"Geschafft! Dein Probetraining ist gebucht. Du bekommst gleich eine Bestätigung per E-Mail – schau bitte in dein Postfach.",magiclineFailed:"Senden fehlgeschlagen",magiclineFailedDetail:"Beim Senden Ihrer Anfrage ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.",magiclineConsent:"Ich stimme der Verarbeitung meiner Daten gemäß der",magiclinePrivacyLinkText:"Datenschutzerklärung",magiclineRequiredError:"Bitte füllen Sie alle Pflichtfelder aus.",magiclineEmailError:"Bitte geben Sie eine gültige E-Mail-Adresse ein.",magiclineConsentError:"Bitte akzeptieren Sie die Datenschutzerklärung, um fortzufahren.",magiclineConfigLoading:"Buchungsformular wird geladen…",magiclineConfigUnsupported:"Die Online-Buchung eines Probetrainings wird für dieses Studio nicht unterstützt. Bitte fragen Sie uns um Hilfe.",magiclineConfigInconsistent:"Das Buchungsformular ist vorübergehend falsch konfiguriert. Bitte fragen Sie uns um Hilfe.",magiclineConfigUnavailable:"Die Buchung eines Probetrainings ist derzeit nicht verfügbar. Bitte versuchen Sie es später erneut oder fragen Sie uns um Hilfe.",magiclineGender:"Geschlecht",magiclineGenderPlaceholder:"Geschlecht auswählen…",magiclineGenderMale:"Männlich",magiclineGenderFemale:"Weiblich",magiclineGenderUnisex:"Divers",magiclineStreet:"Straße",magiclineHouseNumber:"Hausnummer",magiclineZip:"Postleitzahl",magiclineCity:"Stadt",magiclineCountry:"Land",magiclineCountryPlaceholder:"Land auswählen…",magiclineNote:"Anmerkung (optional)",magiclineOptionalSuffix:" (optional)",magiclineTrainerRequired:"Ich wünsche einen Trainer vor Ort",magiclineMinAgeError:"Sie müssen mindestens {age} Jahre alt sein, um ein Probetraining zu buchen.",magiclineSlotRequiredError:"Bitte wählen Sie einen verfügbaren Termin aus.",magiclineSlotUnavailableNotice:"Dieser Termin ist nicht mehr verfügbar. Bitte wählen Sie unten einen anderen Termin aus.",magiclineStepTrainer:"Trainer",magiclineStepSlot:"Termin wählen",magiclineStepPersonal:"Ihre Daten",magiclineStepAddress:"Ihre Adresse",magiclineStepConfirm:"Bestätigen",magiclineStepCounter:"Schritt {n} von {total}",magiclineWizardBack:"Zurück",magiclineWizardNext:"Weiter",magiclineTrainerWith:"Probetraining mit Trainer",magiclineTrainerWithout:"Probetraining ohne Trainer",magiclineSummaryTrainer:"Trainer",magiclineSummarySlot:"Termin",magiclineSummaryName:"Name",magiclineRetry:"Erneut versuchen",magiclineSlotsError:"Die verfügbaren Termine konnten gerade nicht geladen werden. Bitte versuchen Sie es erneut.",magiclineContractTitle:"Mitglied werden",magiclineStepOffer:"Mitgliedschaft wählen",magiclineStepUpgrades:"Zusatzoptionen",magiclineStepPayment:"Zahlung",magiclineStepReview:"Überprüfen",magiclineOffersLoading:"Mitgliedschaften werden geladen…",magiclineOffersError:"Die Mitgliedschaften konnten gerade nicht geladen werden. Bitte versuchen Sie es erneut.",magiclineNoOffers:"Derzeit sind keine Mitgliedschaften für den Online-Abschluss verfügbar. Bitte fragen Sie uns um Hilfe.",magiclineTermLength:"{value} {unit}",magiclineFreqPerDay:"pro Tag",magiclineFreqPerWeek:"pro Woche",magiclineFreqPerMonth:"pro Monat",magiclineFreqPerYear:"pro Jahr",magiclineFreqEveryDays:"alle {n} Tage",magiclineFreqEveryWeeks:"alle {n} Wochen",magiclineFreqEveryMonths:"alle {n} Monate",magiclineFreqEveryYears:"alle {n} Jahre",magiclineModulePerTerm:"pro Laufzeit",magiclineModuleOneTime:"einmalig",magiclineModuleIncluded:"inklusive",magiclineRenewalNone:"Keine automatische Verlängerung",magiclineRenewalTerm:"Verlängerung: {n} {unit}",magiclineCancellationPeriod:"Kündigungsfrist",magiclineStarterPackage:"Startpaket",magiclineFlatFee:"Einmalige Gebühr",magiclineIncludedModules:"Inklusive",magiclineDetails:"Details",magiclineRequired:"Erforderlich",magiclineUpgradesIntro:"Fügen Sie Ihrer Mitgliedschaft optionale Zusatzoptionen hinzu.",magiclineUpgradesNone:"Für diese Mitgliedschaft sind keine optionalen Zusatzoptionen verfügbar.",magiclineUpgradeAdd:"Hinzufügen",magiclineUpgradeAdded:"Hinzugefügt",magiclineUpgradeOneTime:"einmalig",magiclineUpgradeConsentError:"Bitte akzeptieren Sie die Bedingungen für Ihre gewählte Zusatzoption, um sie beizubehalten.",magiclineOfferRequiredError:"Bitte wählen Sie eine Mitgliedschaft aus.",magiclineCountryStatic:"Deutschland",magiclineAccountHolder:"Kontoinhaber",magiclineIban:"IBAN",magiclineIbanInvalidError:"Bitte geben Sie eine gültige IBAN ein.",magiclineSepaConsent:"Ich ermächtige das Studio, Zahlungen von meinem Konto per SEPA-Lastschrift einzuziehen, und weise mein Kreditinstitut an, diese Lastschriften einzulösen.",magiclineReviewLoading:"Ihr Preis wird berechnet…",magiclineReviewError:"Ihr Preis konnte gerade nicht berechnet werden. Bitte versuchen Sie es erneut.",magiclineReviewOffer:"Mitgliedschaft",magiclineReviewPriceSummary:"Preisübersicht",magiclineReviewBasePrice:"Preis pro Monat",magiclineReviewOneTimeFees:"Einmalige Gebühren",magiclineReviewPreUseCharge:"Vorab-Nutzungsgebühr",magiclineReviewSelectedUpgrades:"Deine gewählten Zusatzoptionen",magiclineReviewContractVolume:"Gesamtes Vertragsvolumen",magiclineReviewStartsOn:"Beginnt am",magiclineReviewPayment:"Zahlung",magiclineReviewTerms:"Vertragsbedingungen",magiclineConfirmPrompt:"Bitte bestätigen Sie zum Fortfahren das Folgende:",magiclineConfirmRequiredError:"Bitte bestätigen Sie alle erforderlichen Bedingungen vor dem Absenden.",magiclineSummaryAddress:"Adresse",magiclineContractSubmitted:"Ihre Mitgliedschaft ist bestätigt. Das Studio meldet sich in Kürze bei Ihnen.",magiclineContractSuccessTitle:"Mitgliedschaft abschließen",magiclineContractSuccessDetail:"Willkommen an Bord! Deine Mitgliedschaft ist abgeschlossen. Die Bestätigung kommt gleich per E-Mail.",magiclineCustomerNumber:"Ihre Kundennummer: {number}",magiclinePriceChangedNotice:"Der Preis hat sich geändert. Bitte prüfen Sie den neuen Preis und bestätigen Sie erneut.",magiclineOfferUnavailableNotice:"Diese Mitgliedschaft ist nicht mehr verfügbar. Bitte wählen Sie eine andere aus.",magiclineConfirmationRequiredNotice:"Bitte bestätigen Sie alle erforderlichen Bedingungen vor dem Absenden.",magiclineLiveSubmissionDisabled:"Die Live-Übermittlung ist für dieses Projekt deaktiviert — bitte wenden Sie sich an das Studio.",magiclineDuplicateNotice:"Für dieses Angebot wurde kürzlich bereits eine Mitgliedschaft erstellt.",magiclineUnknownOutcome:"Wir konnten Ihre Anmeldung nicht bestätigen. Das Studio prüft sie und meldet sich bei Ihnen — bitte senden Sie das Formular nicht erneut ab.",magiclineFeeStarterPackage:"Startpaket",magiclineFeeTrainerFee:"Trainerpauschale",magiclineVoucherLabel:"Gutscheincode",magiclineVoucherPlaceholder:"Gutscheincode eingeben…",magiclineVoucherApply:"Einlösen",magiclineVoucherAppliedDiscount:"Rabatt ({discount})",magiclineVoucherCreditNotice:"Guthaben wird angerechnet — nicht vom Vertragsvolumen abgezogen.",magiclineVoucherRemarks:"Hinweis zum Gutschein",magiclineVoucherInvalid:'Gutscheincode „{code}" ist nicht gültig. Bitte überprüfen Sie den Code und versuchen Sie es erneut.',magiclineVoucherDisabled:"Gutscheincodes sind für diese Mitgliedschaft nicht verfügbar.",magiclineGesamtpreisBeforeDiscount:"Gesamtes Vertragsvolumen (vor Gutscheinrabatt)",newReplyTitle:"Neue Antwort",waitingTitle:"Du bist in der Warteschlange",waitingSubtitle:"Lass diesen Tab offen — wir benachrichtigen dich hier, sobald jemand antwortet.",waitingLeaveEmail:"Lieber per E-Mail? Hinterlasse deine Daten"},Ec=[{value:"de",label:"Deutsch",flag:"🇩🇪"},{value:"en",label:"English",flag:"🇬🇧"}],$c="de",Pc="jex-locale",Ae=$("de"),Mc={en:Tr,de:No};function j(){return Mc[Ae.value]??Tr}function Rr(t){if(!t)return null;const e=(t.split("-")[0]??"").toLowerCase();return Ec.some(r=>r.value===e)?e:null}function Lo(t){const e=Rr(t);if(e)return e;try{const n=Rr(localStorage.getItem(Pc));if(n)return n}catch{}if(typeof navigator<"u"){const n=Rr(navigator.language);if(n)return n}return $c}function qc(t){T(()=>{function e(n){const r=t??window.location.origin;if(n.origin!==r||n.data?.type!=="jexity:config")return;const{locale:i}=n.data.payload;i&&(Ae.value=Lo(i))}return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[t])}const Oo="jex-session-history",zo=Oo,Bo=1440*60*1e3,ne=$([]),fe=$(null),He=$(void 0),Ar=$(!1),Ir=br(()=>ne.value.length>0),bt=$(null),Nc="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",Lc=6;function Oc(){let t="";const e=new Uint8Array(1);for(;t.length<Lc;)crypto.getRandomValues(e),e[0]<252&&(t+=Nc[e[0]%36]);return"JEX-"+t}function zc(t){if(t===null)return null;if(typeof t=="number"&&Number.isFinite(t)&&t>=0)return t}function Do(t,e,n){if(n===null)return t;const r=typeof n=="number"?n:Bo;return t.filter(i=>e-i.lastActivityAt<=r)}function Bc(t,e,n,r){return n?Do(t,e,r):t}function Dc(t){try{const e=sessionStorage.getItem(zo);if(!e)return He.value=void 0,[];const n=JSON.parse(e);if(n.v!==1||!Array.isArray(n.entries))return He.value=void 0,[];const r=Object.prototype.hasOwnProperty.call(n,"timeoutMs");return He.value=zc(n.timeoutMs),Bc(n.entries,t,r,He.value)}catch{return He.value=void 0,[]}}function Wt(t){try{const e={v:1,entries:t,timeoutMs:He.value};sessionStorage.setItem(zo,JSON.stringify(e))}catch{}}function Uc(){const t=Date.now(),e=Dc(t);ne.value=e,Wt(e),fe.value=e[e.length-1]?.ref??null,Ar.value=!0}function Fc(t){He.value=t;const e=Date.now(),n=Do(ne.value,e,t),r=fe.value!==null&&!n.some(i=>i.ref===fe.value);return ne.value=n,r&&(fe.value=null),Wt(n),{activeRefPruned:r}}function Uo(){const t=Oc(),e=Date.now(),n=[...ne.value,{ref:t,startedAt:e,lastActivityAt:e}];return ne.value=n,fe.value=t,Wt(n),t}function Fo(){fe.value=null}function Vo(t){const e=Date.now(),n=ne.value.map(r=>r.ref===t?{...r,lastActivityAt:e}:r);ne.value=n,fe.value=t,Wt(n)}function Er(t){if(!t)return;const e=Date.now(),n=ne.value.map(r=>r.ref===t?{...r,lastActivityAt:e}:r);ne.value=n,Wt(n)}const ue=$(Ho());function Ho(){return Ir.value?[{id:"home"}]:[{id:"home"},{id:"chat"}]}function Vc(){ue.value=Ho()}const Hc=$("screen");function Oe(t){ue.value=[...ue.value,t]}function $r(){ue.value.length>1&&(ue.value=ue.value.slice(0,-1))}function Pr(t){ue.value=[...ue.value.slice(0,-1),t]}const Qc=6e4,Kt=$(!1),Mr=$(!1),qr=new Set;function Wc(t){return qr.add(t),()=>{qr.delete(t)}}function Kc(){const t=fe.value;return t?ne.value.find(n=>n.ref===t)?.lastActivityAt??null:null}function Qo(t){const e=Kc();return e===null?!1:Date.now()-e>t}function Nr(){if(!(Kt.value&&ne.value.length===0)){ne.value=[],fe.value=null;try{sessionStorage.removeItem(Oo)}catch(t){console.warn("[JexityChat] Idle-lock storage clear failed:",t)}for(const t of qr)try{t()}catch(e){console.warn("[JexityChat] Lock reset callback threw:",e)}ue.value=[{id:"home"}],Kt.value=!0}}function En(){Kt.value&&(Kt.value=!1)}function Gc(t=Bo){let e=document.visibilityState==="hidden"?Date.now():null;const n=()=>{if(document.visibilityState==="hidden"){e=Date.now();return}(e!==null&&Date.now()-e>t||Qo(t))&&Nr(),e=null};document.addEventListener("visibilitychange",n);const r=setInterval(()=>{Mr.value||Qo(t)&&Nr()},Qc);return()=>{document.removeEventListener("visibilitychange",n),clearInterval(r),e=null}}function Jc(t){const e={},{primaryColor:n,theme:r}=t;if(n&&(e["--jex-primary"]=n,e["--jex-bg-trigger"]=n,e["--jex-bg-header"]=n,e["--jex-bg-msg-user"]=n,e["--jex-bg-send-btn"]=n),t.accentColor&&(e["--jex-accent"]=t.accentColor),r?.bg){const i=r.bg;i.trigger&&(e["--jex-bg-trigger"]=i.trigger),i.header&&(e["--jex-bg-header"]=i.header),i.msgUser&&(e["--jex-bg-msg-user"]=i.msgUser),i.msgBot&&(e["--jex-bg-msg-bot"]=i.msgBot),i.window&&(e["--jex-bg-window"]=i.window),i.sendBtn&&(e["--jex-bg-send-btn"]=i.sendBtn)}if(r?.text){const i=r.text;i.header&&(e["--jex-text-header"]=i.header),i.msgUser&&(e["--jex-text-msg-user"]=i.msgUser),i.msgBot&&(e["--jex-text-msg-bot"]=i.msgBot),i.main&&(e["--jex-text-main"]=i.main),i.muted&&(e["--jex-text-muted"]=i.muted)}if(r?.border){const i=r.border;i.window&&(e["--jex-border-window"]=i.window),i.input&&(e["--jex-border-input"]=i.input)}return t.fontFamily&&(e["--jex-font-family"]=t.fontFamily),t.fontSize&&(e["--jex-font-size"]=`${t.fontSize}px`),t.borderRadius&&(e["--jex-radius"]=t.borderRadius),t.windowWidth&&(e["--jex-window-width"]=`${t.windowWidth}px`),t.windowHeight&&(e["--jex-window-height"]=`${t.windowHeight}px`),Object.keys(e).length>0?e:void 0}function $n({size:t=24}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M12 8V4H8"}),s("rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"}),s("path",{d:"M2 14h2"}),s("path",{d:"M20 14h2"}),s("path",{d:"M15 13v2"}),s("path",{d:"M9 13v2"})]})}function Yc(){const t=j();return ue.value.length>1?s("button",{class:"jex-header-back",onClick:$r,"aria-label":t.back||"Go back",children:s("svg",{width:20,height:20,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:s("path",{d:"m15 18-6-6 6-6"})})}):s($n,{size:24})}function Zc({title:t}){return s("div",{class:"jex-header-info",children:s("h3",{children:t})})}function Wo({size:t=28}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M18 6 6 18"}),s("path",{d:"m6 6 12 12"})]})}function Xc(){const t=j();return s("button",{class:"jex-header-close",type:"button",onClick:()=>{F.value=!1},"aria-label":t.closeChatAriaLabel,title:t.closeChatAriaLabel,children:s(Wo,{size:18})})}function eu({action:t,showClose:e=!0}){return!t&&!e?null:s("div",{class:"jex-header-right",children:[t,e&&s(Xc,{})]})}function Ko({title:t,rightAction:e,showClose:n=!0}){return s("header",{class:"jex-chat-header",children:[s(Yc,{}),s(Zc,{title:t}),s(eu,{action:e,showClose:n})]})}function tu({size:t=14}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:s("path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"})})}function Go(){return s("div",{class:"jex-widget-footer",children:s("a",{href:"https://jexitychat.de",target:"_blank",rel:"noopener noreferrer",class:"jex-branding",children:[s(tu,{size:14}),s("span",{children:["Powered by ",s("strong",{children:"Jexity"})]})]})})}function Jo({size:t=28}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:s("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})})}function nu({size:t=24,...e}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",...e,children:s("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"})})}const ru={chat:s(Jo,{size:28}),bot:s($n,{size:28}),sparkles:s(nu,{size:28})},iu={none:"0px",sm:"0.5rem",md:"0.75rem",lg:"1.25rem",full:"9999px"};function ou({radius:t="full",iconOption:e="chat",label:n}){const r=j(),i=n??r.fabLabel,o=i!=="";return s("button",{class:`jex-floating-button${F.value?"":" jex-fab-pulse"}${!F.value&&o?" jex-has-label":""}`,style:{borderRadius:iu[t]??"9999px"},onClick:()=>{F.value=!F.value},"aria-label":F.value?r.closeChatAriaLabel:r.openChatAriaLabel,children:F.value?s(Wo,{size:28}):s("div",{class:"jex-fab-inner",children:[ru[e],o&&s("span",{class:"jex-fab-label",children:i})]})})}const Pn=$(!1);function au(t,e){return e?`jex-proactive-dismissed:${t}:${e}`:`jex-proactive-dismissed:${t}`}function Yo(t){try{return sessionStorage.getItem(t)!==null}catch{return!1}}function su(t){try{sessionStorage.setItem(t,"1")}catch{}}function lu(t){return t.isOpen||t.mode==="off"||t.hasHistory||t.dismissed?"skip":t.mode==="teaser"?"teaser":"open"}function cu({title:t,message:e,guardKey:n}){const r=j();function i(){Pn.value=!1,F.value=!0}function o(a){a.stopPropagation(),su(n),Pn.value=!1}return s("div",{class:"jex-proactive-teaser",role:"button",tabIndex:0,"aria-label":r.proactiveOpenAria,onClick:i,onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&i()},children:[s("div",{class:"jex-proactive-avatar",children:s($n,{size:20})}),s("div",{class:"jex-proactive-body",children:[s("span",{class:"jex-proactive-title",children:t}),s("span",{class:"jex-proactive-message",children:e})]}),s("button",{type:"button",class:"jex-proactive-dismiss","aria-label":r.proactiveDismiss,onClick:o,children:s("svg",{width:14,height:14,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M18 6 6 18"}),s("path",{d:"m6 6 12 12"})]})})]})}const yt=$("");function uu(t){if(!t)return;const e=t.trim().split(/\s+/)[0];if(!e)return;const n=`@${e} `,r=yt.value;r.includes(n)||r.includes(`@${e}`)||(yt.value=r.trimStart()?`${n}${r.trimStart()}`:n)}const Gt=$(null),Zo=$(Date.now()),Mn=$(!1),Lr=$(!1),Jt=$(!1),qn=$(null);function Xo(){return wr.value==="explicit"&&!Lr.value}function ea(){Xo()&&(Jt.value=!0)}function du(){Lr.value=!0,Jt.value=!1}function ta(){Lr.value=!1,Jt.value=!1,qn.value=null}const ze=$([]),hu=4,pu=8*1024*1024;function fu(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`att-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,11)}`}function gu(t){const e=Array.from(t).filter(i=>i.type.startsWith("image/")&&i.size<=pu);if(e.length===0)return;const n=hu-ze.value.length;if(n<=0)return;const r=e.slice(0,n).map(i=>({id:fu(),file:i,previewUrl:URL.createObjectURL(i)}));ze.value=[...ze.value,...r]}function mu(t){const e=ze.value.find(n=>n.id===t);e&&URL.revokeObjectURL(e.previewUrl),ze.value=ze.value.filter(n=>n.id!==t)}function xu(){for(const t of ze.value)URL.revokeObjectURL(t.previewUrl);ze.value=[]}function na(t,e){const n={get(r,i){if(typeof i=="string"){const o=[...e,i];return na(t,o)}else if(i===po){if(e.length<1){const o=[t,...e].join(".");throw new Error(`API path is expected to be of the form \`${t}.childComponent.functionName\`. Found: \`${o}\``)}return"_reference/childComponent/"+e.join("/")}else return}};return new Proxy({},n)}const vu=()=>na("components",[]),re=pl;vu();function ra({sessionId:t,visitorId:e,ensureSession:n}){const r=Ye(re.functions.chat.public.conversations.send);return async function(o){if(Xo()){qn.value=o,ea();return}if(!Mn.value){Mn.value=!0;try{const a=t&&e?{sessionId:t,visitorId:e}:await n();if(!a)return;yt.value="",xu();try{const l=await r({sessionId:a.sessionId,visitorId:a.visitorId,content:o});l.ok?Er(a.visitorId):l.reason==="rate_limited"&&(Gt.value=Date.now()+l.retryAfterMs)}catch(l){console.error("[jexity] Failed to send message:",l)}}finally{Mn.value=!1}}}}function bu(){const t=Gt.value,e=Zo.value;T(()=>{if(t===null)return;const i=setInterval(()=>{Zo.value=Date.now()},1e3),o=setTimeout(()=>{Gt.value=null},Math.max(0,t-Date.now()));return()=>{clearInterval(i),clearTimeout(o)}},[t]);const n=t!==null,r=n?Math.max(0,Math.ceil((t-e)/1e3)):0;return{isActive:n,remainingSeconds:r}}function yu(){const t=j(),{isActive:e,remainingSeconds:n}=bu();return e?s("div",{class:"jex-rate-limit-notice",role:"status","aria-live":"polite",children:t.errorRateLimited.replace("{seconds}",String(n))}):null}const wt=$(null),Yt=$(null);function ia(){Yt.value=null}function wu(){const t=j(),e=wt.value;if(e===null)return null;const n=e==="no-token"?t.errorSessionNoToken:e==="unauthorized"?t.errorSessionUnauthorized:e==="network"?t.errorNetwork:t.somethingWentWrong;return s("div",{class:"jex-session-error-notice",role:"alert","aria-live":"assertive",children:n})}function ku({size:t=18}){return s("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M22 2 11 13"}),s("path",{d:"M22 2 15 22 11 13 2 9l20-7z"})]})}const oa=132;function _u({onSend:t}){const e=me(null),n=me(null);T(()=>{const l=e.current;if(!l)return;l.style.height="0";const c=Math.min(l.scrollHeight,oa);l.style.height=`${c}px`,l.style.overflowY=l.scrollHeight>oa?"auto":"hidden"},[yt.value]);function r(l){l.key==="Enter"&&!l.shiftKey&&(l.preventDefault(),t())}function i(){n.current?.click()}function o(l){const c=l.currentTarget;c.files&&c.files.length>0&&gu(c.files),c.value=""}function a(l){const c=l.target;(c===l.currentTarget||!c.closest("button, textarea, img"))&&e.current?.focus()}return{textareaRef:e,fileInputRef:n,onKeyDown:r,onAttachClick:i,onFilesPicked:o,onCardClick:a}}function ju({isStreaming:t,disabled:e,inputDisabled:n,onSend:r,onFocus:i}){const o=j(),a=yt,l=ze,{textareaRef:c,fileInputRef:u,onKeyDown:h,onAttachClick:f,onFilesPicked:d,onCardClick:p}=_u({onSend:r}),g=a.value.trim().length>0,y=l.value.length>0,m=(g||y)&&!e;return s("div",{class:"jex-composer-card",onClick:p,children:[y&&s("div",{class:"jex-composer-attachments",role:"list",children:l.value.map(v=>s("div",{class:"jex-attachment-chip",role:"listitem",children:[s("img",{src:v.previewUrl,alt:v.file.name,class:"jex-attachment-thumb"}),s("button",{type:"button",class:"jex-attachment-remove","aria-label":o.removeAttachmentAriaLabel,onClick:()=>{mu(v.id)},children:s("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),s("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},v.id))}),s("textarea",{ref:c,class:"jex-composer-textarea","aria-label":o.inputPlaceholder,placeholder:t?o.aiThinking:o.inputPlaceholder,value:a.value,rows:1,onInput:v=>{a.value=v.currentTarget.value},onKeyDown:h,onFocus:i,disabled:n}),s("div",{class:"jex-composer-actions",children:[s("div",{class:"jex-composer-actions-left",children:[s("input",{ref:u,class:"jex-visually-hidden",type:"file",accept:"image/*",multiple:!0,onChange:d,tabIndex:-1,"aria-hidden":"true"}),s("button",{type:"button",class:"jex-attach-btn","aria-label":o.attachComingSoon,title:o.attachComingSoon,disabled:!0,onClick:f,children:s("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:s("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})})}),s("button",{type:"button",class:"jex-attach-btn","aria-label":o.voiceComingSoon,title:o.voiceComingSoon,disabled:!0,children:s("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z"}),s("path",{d:"M19 10v2a7 7 0 0 1-14 0v-2"}),s("line",{x1:"12",y1:"19",x2:"12",y2:"22"})]})})]}),s("button",{class:`jex-send-btn${m?" jex-send-btn-active":""}`,type:"button",onClick:r,"aria-label":o.sendAriaLabel,disabled:e||!g&&!y,children:s(ku,{size:16})})]})]})}function aa({variant:t,isOpen:e=!1,onAcknowledge:n}){const r=j(),i=Qt.value;return t==="explicit"?e?s("div",{class:"jex-privacy-explicit",role:"dialog","aria-label":r.privacyExplicitTitle,children:[s("div",{class:"jex-privacy-explicit-content",children:[s("div",{class:"jex-privacy-explicit-icon","aria-hidden":"true",children:s("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:s("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"})})}),s("div",{class:"jex-privacy-explicit-copy",children:[s("div",{class:"jex-privacy-explicit-title",children:r.privacyExplicitTitle}),s("p",{class:"jex-privacy-explicit-body",children:[r.privacyExplicitBodyPre," ",s("a",{href:i,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:r.privacyPolicyLinkText}),"."]})]})]}),s("button",{type:"button",class:"jex-privacy-explicit-button",onClick:n,children:r.privacyExplicitButton})]}):null:s("p",{class:"jex-privacy-chip",children:[s("span",{class:"jex-privacy-chip-icon","aria-hidden":"true",children:s("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",children:s("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"})})}),s("a",{href:i,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-chip-link",children:r.privacyChipText})]})}function Su({sessionId:t,visitorId:e,isLoading:n,isStreaming:r,sessionStatus:i,ensureSession:o,onStartFresh:a}){const l=j(),c=yt,u=wr.value,h=ra({sessionId:t,visitorId:e,ensureSession:o}),f=Gt.value!==null&&Gt.value>Date.now(),d=n||r||f,p=u==="explicit"&&Jt.value;function g(){du();const m=qn.value;qn.value=null,m&&h(m)}if(i==="resolved")return s("div",{class:"jex-chat-input-resolved",children:[s("div",{class:"jex-resolved-notice",children:l.sessionResolved}),s("button",{class:"jex-resolved-new-btn",type:"button",onClick:()=>{a()},children:l.startNewConversation})]});async function y(){const m=c.value.trim();!m||d||await h(m)}return s("div",{class:"jex-chat-input",children:[s(yu,{}),s(wu,{}),u==="chip"&&s(aa,{variant:"chip"}),s("div",{class:`jex-chat-input-composer-gate${p?" jex-chat-input-composer-gate-open":""}`,children:[s(ju,{isStreaming:r,disabled:d,inputDisabled:n||r||p,onSend:y,onFocus:ea}),u==="explicit"&&s(aa,{variant:"explicit",isOpen:Jt.value,onAcknowledge:g})]})]})}const Cu=(...t)=>t.filter((e,n,r)=>!!e&&e.trim()!==""&&r.indexOf(e)===n).join(" ").trim();const sa=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const Tu=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,n,r)=>r?r.toUpperCase():n.toLowerCase());const la=t=>{const e=Tu(t);return e.charAt(0).toUpperCase()+e.slice(1)};var Ru={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};const Au=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1};const Iu=({color:t="currentColor",size:e=24,strokeWidth:n=2,absoluteStrokeWidth:r,children:i,iconNode:o,class:a="",...l})=>ge("svg",{...Ru,width:String(e),height:e,stroke:t,"stroke-width":r?Number(n)*24/Number(e):n,class:["lucide",a].join(" "),...!i&&!Au(l)&&{"aria-hidden":"true"},...l},[...o.map(([c,u])=>ge(c,u)),...Se(i)]);const Eu=(t,e)=>{const n=({class:r="",className:i="",children:o,...a})=>ge(Iu,{...a,iconNode:e,class:Cu(`lucide-${sa(la(t))}`,`lucide-${sa(t)}`,r,i)},o);return n.displayName=la(t),n};const $u=Eu("corner-up-left",[["path",{d:"M20 20v-7a4 4 0 0 0-4-4H4",key:"1nkjon"}],["path",{d:"M9 14 4 9l5-5",key:"102s5s"}]]);function Or(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Xe=Or();function ca(t){Xe=t}var et={exec:()=>null};function A(t,e=""){let n=typeof t=="string"?t:t.source,r={replace:(i,o)=>{let a=typeof o=="string"?o:o.source;return a=a.replace(se.caret,"$1"),n=n.replace(i,a),r},getRegex:()=>new RegExp(n,e)};return r}var Pu=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),se={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}>`)},Mu=/^(?:[ \t]*(?:\n|$))+/,qu=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Nu=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Zt=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Lu=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,zr=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,ua=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,da=A(ua).replace(/bull/g,zr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Ou=A(ua).replace(/bull/g,zr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Br=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,zu=/^[^\n]+/,Dr=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Bu=A(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Dr).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Du=A(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,zr).getRegex(),Nn="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ur=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Uu=A("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Ur).replace("tag",Nn).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ha=A(Br).replace("hr",Zt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Nn).getRegex(),Fu=A(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ha).getRegex(),Fr={blockquote:Fu,code:qu,def:Bu,fences:Nu,heading:Lu,hr:Zt,html:Uu,lheading:da,list:Du,newline:Mu,paragraph:ha,table:et,text:zu},pa=A("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Zt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Nn).getRegex(),Vu={...Fr,lheading:Ou,table:pa,paragraph:A(Br).replace("hr",Zt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",pa).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Nn).getRegex()},Hu={...Fr,html:A(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ur).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:et,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:A(Br).replace("hr",Zt).replace("heading",` *#{1,6} *[^
11
+ ]`).replace("lheading",da).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Qu=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Wu=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,fa=/^( {2,}|\\)\n(?!\s*$)/,Ku=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,kt=/[\p{P}\p{S}]/u,Ln=/[\s\p{P}\p{S}]/u,Vr=/[^\s\p{P}\p{S}]/u,Gu=A(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Ln).getRegex(),ga=/(?!~)[\p{P}\p{S}]/u,Ju=/(?!~)[\s\p{P}\p{S}]/u,Yu=/(?:[^\s\p{P}\p{S}]|~)/u,Zu=A(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Pu?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),ma=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Xu=A(ma,"u").replace(/punct/g,kt).getRegex(),ed=A(ma,"u").replace(/punct/g,ga).getRegex(),xa="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",td=A(xa,"gu").replace(/notPunctSpace/g,Vr).replace(/punctSpace/g,Ln).replace(/punct/g,kt).getRegex(),nd=A(xa,"gu").replace(/notPunctSpace/g,Yu).replace(/punctSpace/g,Ju).replace(/punct/g,ga).getRegex(),rd=A("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Vr).replace(/punctSpace/g,Ln).replace(/punct/g,kt).getRegex(),id=A(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,kt).getRegex(),od="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",ad=A(od,"gu").replace(/notPunctSpace/g,Vr).replace(/punctSpace/g,Ln).replace(/punct/g,kt).getRegex(),sd=A(/\\(punct)/,"gu").replace(/punct/g,kt).getRegex(),ld=A(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),cd=A(Ur).replace("(?:-->|$)","-->").getRegex(),ud=A("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",cd).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),On=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,dd=A(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",On).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),va=A(/^!?\[(label)\]\[(ref)\]/).replace("label",On).replace("ref",Dr).getRegex(),ba=A(/^!?\[(ref)\](?:\[\])?/).replace("ref",Dr).getRegex(),hd=A("reflink|nolink(?!\\()","g").replace("reflink",va).replace("nolink",ba).getRegex(),ya=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Hr={_backpedal:et,anyPunctuation:sd,autolink:ld,blockSkip:Zu,br:fa,code:Wu,del:et,delLDelim:et,delRDelim:et,emStrongLDelim:Xu,emStrongRDelimAst:td,emStrongRDelimUnd:rd,escape:Qu,link:dd,nolink:ba,punctuation:Gu,reflink:va,reflinkSearch:hd,tag:ud,text:Ku,url:et},pd={...Hr,link:A(/^!?\[(label)\]\((.*?)\)/).replace("label",On).getRegex(),reflink:A(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",On).getRegex()},Qr={...Hr,emStrongRDelimAst:nd,emStrongLDelim:ed,delLDelim:id,delRDelim:ad,url:A(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",ya).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:A(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",ya).getRegex()},fd={...Qr,br:A(fa).replace("{2,}","*").getRegex(),text:A(Qr.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},zn={normal:Fr,gfm:Vu,pedantic:Hu},Xt={normal:Hr,gfm:Qr,breaks:fd,pedantic:pd},gd={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},wa=t=>gd[t];function Ie(t,e){if(e){if(se.escapeTest.test(t))return t.replace(se.escapeReplace,wa)}else if(se.escapeTestNoEncode.test(t))return t.replace(se.escapeReplaceNoEncode,wa);return t}function ka(t){try{t=encodeURI(t).replace(se.percentDecode,"%")}catch{return null}return t}function _a(t,e){let n=t.replace(se.findPipe,(o,a,l)=>{let c=!1,u=a;for(;--u>=0&&l[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(se.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),e)if(r.length>e)r.splice(e);else for(;r.length<e;)r.push("");for(;i<r.length;i++)r[i]=r[i].trim().replace(se.slashPipe,"|");return r}function en(t,e,n){let r=t.length;if(r===0)return"";let i=0;for(;i<r&&t.charAt(r-i-1)===e;)i++;return t.slice(0,r-i)}function md(t,e){if(t.indexOf(e[1])===-1)return-1;let n=0;for(let r=0;r<t.length;r++)if(t[r]==="\\")r++;else if(t[r]===e[0])n++;else if(t[r]===e[1]&&(n--,n<0))return r;return n>0?-2:-1}function xd(t,e=0){let n=e,r="";for(let i of t)if(i===" "){let o=4-n%4;r+=" ".repeat(o),n+=o}else r+=i,n++;return r}function ja(t,e,n,r,i){let o=e.href,a=e.title||null,l=t[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:o,title:a,text:l,tokens:r.inlineTokens(l)};return r.state.inLink=!1,c}function vd(t,e,n){let r=t.match(n.other.indentCodeCompensation);if(r===null)return e;let i=r[1];return e.split(`
12
12
  `).map(o=>{let a=o.match(n.other.beginningSpace);if(a===null)return o;let[l]=a;return l.length>=i.length?o.slice(i.length):o}).join(`
13
13
  `)}var Bn=class{options;rules;lexer;constructor(t){this.options=t||Xe}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let n=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?n:en(n,`
14
- `)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let n=e[0],r=md(n,e[3]||"",this.rules);return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:r}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(this.rules.other.endingHash.test(n)){let r=en(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:en(e[0],`
14
+ `)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let n=e[0],r=vd(n,e[3]||"",this.rules);return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:r}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(this.rules.other.endingHash.test(n)){let r=en(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:en(e[0],`
15
15
  `)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let n=en(e[0],`
16
16
  `).split(`
17
17
  `),r="",i="",o=[];for(;n.length>0;){let a=!1,l=[],c;for(c=0;c<n.length;c++)if(this.rules.other.blockquoteStart.test(n[c]))l.push(n[c]),a=!0;else if(!a)l.push(n[c]);else break;n=n.slice(c);let u=l.join(`
@@ -23,7 +23,7 @@ ${h}`:h;let f=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo
23
23
  `),y=this.blockquote(g);o[o.length-1]=y,r=r.substring(0,r.length-p.raw.length)+y.raw,i=i.substring(0,i.length-p.text.length)+y.text;break}else if(d?.type==="list"){let p=d,g=p.raw+`
24
24
  `+n.join(`
25
25
  `),y=this.list(g);o[o.length-1]=y,r=r.substring(0,r.length-d.raw.length)+y.raw,i=i.substring(0,i.length-p.raw.length)+y.raw,n=g.substring(o.at(-1).raw.length).split(`
26
- `);continue}}return{type:"blockquote",raw:r,tokens:o,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n=e[1].trim(),r=n.length>1,i={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let o=this.rules.other.listItemRegex(n),a=!1;for(;t;){let c=!1,u="",h="";if(!(e=o.exec(t))||this.rules.block.hr.test(t))break;u=e[0],t=t.substring(u.length);let f=gd(e[2].split(`
26
+ `);continue}}return{type:"blockquote",raw:r,tokens:o,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n=e[1].trim(),r=n.length>1,i={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let o=this.rules.other.listItemRegex(n),a=!1;for(;t;){let c=!1,u="",h="";if(!(e=o.exec(t))||this.rules.block.hr.test(t))break;u=e[0],t=t.substring(u.length);let f=xd(e[2].split(`
27
27
  `,1)[0],e[1].length),d=t.split(`
28
28
  `,1)[0],p=!f.trim(),g=0;if(this.options.pedantic?(g=2,h=f.trimStart()):p?g=e[1].length+1:(g=f.search(this.rules.other.nonSpaceChar),g=g>4?1:g,h=f.slice(g),g+=e[1].length),p&&this.rules.other.blankLine.test(d)&&(u+=d+`
29
29
  `,t=t.substring(d.length+1),c=!0),!c){let y=this.rules.other.nextBulletRegex(g),m=this.rules.other.hrRegex(g),v=this.rules.other.fencesBeginRegex(g),b=this.rules.other.headingBeginRegex(g),x=this.rules.other.htmlBeginRegex(g),P=this.rules.other.blockquoteBeginRegex(g);for(;t;){let S=t.split(`
@@ -32,7 +32,7 @@ ${h}`:h;let f=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo
32
32
  `+d}p=!d.trim(),u+=S+`
33
33
  `,t=t.substring(S.length+1),f=z.slice(g)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(u)&&(a=!0)),i.items.push({type:"list_item",raw:u,task:!!this.options.gfm&&this.rules.other.listIsTask.test(h),loose:!1,text:h,tokens:[]}),i.raw+=u}let l=i.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let c of i.items){if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),c.task){if(c.text=c.text.replace(this.rules.other.listReplaceTask,""),c.tokens[0]?.type==="text"||c.tokens[0]?.type==="paragraph"){c.tokens[0].raw=c.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),c.tokens[0].text=c.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let h=this.lexer.inlineQueue.length-1;h>=0;h--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[h].src)){this.lexer.inlineQueue[h].src=this.lexer.inlineQueue[h].src.replace(this.rules.other.listReplaceTask,"");break}}let u=this.rules.other.listTaskCheckbox.exec(c.raw);if(u){let h={type:"checkbox",raw:u[0]+" ",checked:u[0]!=="[ ]"};c.checked=h.checked,i.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=h.raw+c.tokens[0].raw,c.tokens[0].text=h.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(h)):c.tokens.unshift({type:"paragraph",raw:h.raw,text:h.raw,tokens:[h]}):c.tokens.unshift(h)}}if(!i.loose){let u=c.tokens.filter(f=>f.type==="space"),h=u.length>0&&u.some(f=>this.rules.other.anyLine.test(f.raw));i.loose=h}}if(i.loose)for(let c of i.items){c.loose=!0;for(let u of c.tokens)u.type==="text"&&(u.type="paragraph")}return i}}html(t){let e=this.rules.block.html.exec(t);if(e)return{type:"html",block:!0,raw:e[0],pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:e[0]}}def(t){let e=this.rules.block.def.exec(t);if(e){let n=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:n,raw:e[0],href:r,title:i}}}table(t){let e=this.rules.block.table.exec(t);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let n=_a(e[1]),r=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
34
34
  `):[],o={type:"table",raw:e[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let a of r)this.rules.other.tableAlignRight.test(a)?o.align.push("right"):this.rules.other.tableAlignCenter.test(a)?o.align.push("center"):this.rules.other.tableAlignLeft.test(a)?o.align.push("left"):o.align.push(null);for(let a=0;a<n.length;a++)o.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:o.align[a]});for(let a of i)o.rows.push(_a(a,o.header.length).map((l,c)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:o.align[c]})));return o}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e){let n=e[1].trim();return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let n=e[1].charAt(e[1].length-1)===`
35
- `?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let n=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let o=en(n.slice(0,-1),"\\");if((n.length-o.length)%2===0)return}else{let o=fd(e[2],"()");if(o===-2)return;if(o>-1){let a=(e[0].indexOf("!")===0?5:4)+e[1].length+o;e[2]=e[2].substring(0,o),e[0]=e[0].substring(0,a).trim(),e[3]=""}}let r=e[2],i="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(r);o&&(r=o[1],i=o[3])}else i=e[3]?e[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),ja(e,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[r.toLowerCase()];if(!i){let o=n[0].charAt(0);return{type:"text",raw:o,text:o}}return ja(n,i,n[0],this.lexer,this.rules)}}emStrong(t,e,n=""){let r=this.rules.inline.emStrongLDelim.exec(t);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,o,a,l=i,c=0,u=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,e=e.slice(-1*t.length+i);(r=u.exec(e))!=null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(a=[...o].length,r[3]||r[4]){l+=a;continue}else if((r[5]||r[6])&&i%3&&!((i+a)%3)){c+=a;continue}if(l-=a,l>0)continue;a=Math.min(a,a+l+c);let h=[...r[0]][0].length,f=t.slice(0,i+r.index+h+a);if(Math.min(i,a)%2){let p=f.slice(1,-1);return{type:"em",raw:f,text:p,tokens:this.lexer.inlineTokens(p)}}let d=f.slice(2,-2);return{type:"strong",raw:f,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:e[0],text:n}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t,e,n=""){let r=this.rules.inline.delLDelim.exec(t);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,o,a,l=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,e=e.slice(-1*t.length+i);(r=c.exec(e))!=null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o||(a=[...o].length,a!==i))continue;if(r[3]||r[4]){l+=a;continue}if(l-=a,l>0)continue;a=Math.min(a,a+l);let u=[...r[0]][0].length,h=t.slice(0,i+r.index+u+a),f=h.slice(i,-i);return{type:"del",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let n,r;return e[2]==="@"?(n=e[1],r="mailto:"+n):(n=e[1],r=n),{type:"link",raw:e[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let n,r;if(e[2]==="@")n=e[0],r="mailto:"+n;else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);n=e[0],e[1]==="www."?r="http://"+e[0]:r=e[0]}return{type:"link",raw:e[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let n=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:n}}}},we=class Xr{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Xe,this.options.tokenizer=this.options.tokenizer||new Bn,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:se,block:zn.normal,inline:Xt.normal};this.options.pedantic?(n.block=zn.pedantic,n.inline=Xt.pedantic):this.options.gfm&&(n.block=zn.gfm,this.options.breaks?n.inline=Xt.breaks:n.inline=Xt.gfm),this.tokenizer.rules=n}static get rules(){return{block:zn,inline:Xt}}static lex(e,n){return new Xr(n).lex(e)}static lexInline(e,n){return new Xr(n).inlineTokens(e)}lex(e){e=e.replace(se.carriageReturn,`
35
+ `?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let n=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let o=en(n.slice(0,-1),"\\");if((n.length-o.length)%2===0)return}else{let o=md(e[2],"()");if(o===-2)return;if(o>-1){let a=(e[0].indexOf("!")===0?5:4)+e[1].length+o;e[2]=e[2].substring(0,o),e[0]=e[0].substring(0,a).trim(),e[3]=""}}let r=e[2],i="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(r);o&&(r=o[1],i=o[3])}else i=e[3]?e[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),ja(e,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[r.toLowerCase()];if(!i){let o=n[0].charAt(0);return{type:"text",raw:o,text:o}}return ja(n,i,n[0],this.lexer,this.rules)}}emStrong(t,e,n=""){let r=this.rules.inline.emStrongLDelim.exec(t);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,o,a,l=i,c=0,u=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,e=e.slice(-1*t.length+i);(r=u.exec(e))!=null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(a=[...o].length,r[3]||r[4]){l+=a;continue}else if((r[5]||r[6])&&i%3&&!((i+a)%3)){c+=a;continue}if(l-=a,l>0)continue;a=Math.min(a,a+l+c);let h=[...r[0]][0].length,f=t.slice(0,i+r.index+h+a);if(Math.min(i,a)%2){let p=f.slice(1,-1);return{type:"em",raw:f,text:p,tokens:this.lexer.inlineTokens(p)}}let d=f.slice(2,-2);return{type:"strong",raw:f,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:e[0],text:n}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t,e,n=""){let r=this.rules.inline.delLDelim.exec(t);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,o,a,l=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,e=e.slice(-1*t.length+i);(r=c.exec(e))!=null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o||(a=[...o].length,a!==i))continue;if(r[3]||r[4]){l+=a;continue}if(l-=a,l>0)continue;a=Math.min(a,a+l);let u=[...r[0]][0].length,h=t.slice(0,i+r.index+u+a),f=h.slice(i,-i);return{type:"del",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let n,r;return e[2]==="@"?(n=e[1],r="mailto:"+n):(n=e[1],r=n),{type:"link",raw:e[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let n,r;if(e[2]==="@")n=e[0],r="mailto:"+n;else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);n=e[0],e[1]==="www."?r="http://"+e[0]:r=e[0]}return{type:"link",raw:e[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let n=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:n}}}},we=class Xr{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Xe,this.options.tokenizer=this.options.tokenizer||new Bn,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:se,block:zn.normal,inline:Xt.normal};this.options.pedantic?(n.block=zn.pedantic,n.inline=Xt.pedantic):this.options.gfm&&(n.block=zn.gfm,this.options.breaks?n.inline=Xt.breaks:n.inline=Xt.gfm),this.tokenizer.rules=n}static get rules(){return{block:zn,inline:Xt}}static lex(e,n){return new Xr(n).lex(e)}static lexInline(e,n){return new Xr(n).inlineTokens(e)}lex(e){e=e.replace(se.carriageReturn,`
36
36
  `),this.blockTokens(e,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let r=this.inlineQueue[n];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,n=[],r=!1){for(this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(se.tabCharGlobal," ").replace(se.spaceLine,""));e;){let i;if(this.options.extensions?.block?.some(a=>(i=a.call({lexer:this},e,n))?(e=e.substring(i.raw.length),n.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let a=n.at(-1);i.raw.length===1&&a!==void 0?a.raw+=`
37
37
  `:n.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let a=n.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=(a.raw.endsWith(`
38
38
  `)?"":`
@@ -64,8 +64,8 @@ ${this.parser.parse(t)}</blockquote>
64
64
  `}tablerow({text:t}){return`<tr>
65
65
  ${t}</tr>
66
66
  `}tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
67
- `}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${Ie(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:n}){let r=this.parser.parseInline(n),i=ka(t);if(i===null)return r;t=i;let o='<a href="'+t+'"';return e&&(o+=' title="'+Ie(e)+'"'),o+=">"+r+"</a>",o}image({href:t,title:e,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=ka(t);if(i===null)return Ie(n);t=i;let o=`<img src="${t}" alt="${Ie(n)}"`;return e&&(o+=` title="${Ie(e)}"`),o+=">",o}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:Ie(t.text)}},Wr=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},ke=class ei{options;renderer;textRenderer;constructor(e){this.options=e||Xe,this.options.renderer=this.options.renderer||new Dn,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Wr}static parse(e,n){return new ei(n).parse(e)}static parseInline(e,n){return new ei(n).parseInline(e)}parse(e){this.renderer.parser=this;let n="";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let a=i,l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(a.type)){n+=l||"";continue}}let o=i;switch(o.type){case"space":{n+=this.renderer.space(o);break}case"hr":{n+=this.renderer.hr(o);break}case"heading":{n+=this.renderer.heading(o);break}case"code":{n+=this.renderer.code(o);break}case"table":{n+=this.renderer.table(o);break}case"blockquote":{n+=this.renderer.blockquote(o);break}case"list":{n+=this.renderer.list(o);break}case"checkbox":{n+=this.renderer.checkbox(o);break}case"html":{n+=this.renderer.html(o);break}case"def":{n+=this.renderer.def(o);break}case"paragraph":{n+=this.renderer.paragraph(o);break}case"text":{n+=this.renderer.text(o);break}default:{let a='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}parseInline(e,n=this.renderer){this.renderer.parser=this;let r="";for(let i=0;i<e.length;i++){let o=e[i];if(this.options.extensions?.renderers?.[o.type]){let l=this.options.extensions.renderers[o.type].call({parser:this},o);if(l!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type)){r+=l||"";continue}}let a=o;switch(a.type){case"escape":{r+=n.text(a);break}case"html":{r+=n.html(a);break}case"link":{r+=n.link(a);break}case"image":{r+=n.image(a);break}case"checkbox":{r+=n.checkbox(a);break}case"strong":{r+=n.strong(a);break}case"em":{r+=n.em(a);break}case"codespan":{r+=n.codespan(a);break}case"br":{r+=n.br(a);break}case"del":{r+=n.del(a);break}case"text":{r+=n.text(a);break}default:{let l='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return r}},tn=class{options;block;constructor(t){this.options=t||Xe}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(){return this.block?we.lex:we.lexInline}provideParser(){return this.block?ke.parse:ke.parseInline}},xd=class{defaults=Or();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=ke;Renderer=Dn;TextRenderer=Wr;Lexer=we;Tokenizer=Bn;Hooks=tn;constructor(...t){this.use(...t)}walkTokens(t,e){let n=[];for(let r of t)switch(n=n.concat(e.call(this,r)),r.type){case"table":{let i=r;for(let o of i.header)n=n.concat(this.walkTokens(o.tokens,e));for(let o of i.rows)for(let a of o)n=n.concat(this.walkTokens(a.tokens,e));break}case"list":{let i=r;n=n.concat(this.walkTokens(i.items,e));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(o=>{let a=i[o].flat(1/0);n=n.concat(this.walkTokens(a,e))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,e)))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let o=e.renderers[i.name];o?e.renderers[i.name]=function(...a){let l=i.renderer.apply(this,a);return l===!1&&(l=o.apply(this,a)),l}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=e[i.level];o?o.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),r.extensions=e),n.renderer){let i=this.defaults.renderer||new Dn(this.defaults);for(let o in n.renderer){if(!(o in i))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let a=o,l=n.renderer[a],c=i[a];i[a]=(...u)=>{let h=l.apply(i,u);return h===!1&&(h=c.apply(i,u)),h||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new Bn(this.defaults);for(let o in n.tokenizer){if(!(o in i))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let a=o,l=n.tokenizer[a],c=i[a];i[a]=(...u)=>{let h=l.apply(i,u);return h===!1&&(h=c.apply(i,u)),h}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new tn;for(let o in n.hooks){if(!(o in i))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let a=o,l=n.hooks[a],c=i[a];tn.passThroughHooks.has(o)?i[a]=u=>{if(this.defaults.async&&tn.passThroughHooksRespectAsync.has(o))return(async()=>{let f=await l.call(i,u);return c.call(i,f)})();let h=l.call(i,u);return c.call(i,h)}:i[a]=(...u)=>{if(this.defaults.async)return(async()=>{let f=await l.apply(i,u);return f===!1&&(f=await c.apply(i,u)),f})();let h=l.apply(i,u);return h===!1&&(h=c.apply(i,u)),h}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,o=n.walkTokens;r.walkTokens=function(a){let l=[];return l.push(o.call(this,a)),i&&(l=l.concat(i.call(this,a))),l}}this.defaults={...this.defaults,...r}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return we.lex(t,e??this.defaults)}parser(t,e){return ke.parse(t,e??this.defaults)}parseMarkdown(t){return(e,n)=>{let r={...n},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=t),i.async)return(async()=>{let a=i.hooks?await i.hooks.preprocess(e):e,l=await(i.hooks?await i.hooks.provideLexer():t?we.lex:we.lexInline)(a,i),c=i.hooks?await i.hooks.processAllTokens(l):l;i.walkTokens&&await Promise.all(this.walkTokens(c,i.walkTokens));let u=await(i.hooks?await i.hooks.provideParser():t?ke.parse:ke.parseInline)(c,i);return i.hooks?await i.hooks.postprocess(u):u})().catch(o);try{i.hooks&&(e=i.hooks.preprocess(e));let a=(i.hooks?i.hooks.provideLexer():t?we.lex:we.lexInline)(e,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let l=(i.hooks?i.hooks.provideParser():t?ke.parse:ke.parseInline)(a,i);return i.hooks&&(l=i.hooks.postprocess(l)),l}catch(a){return o(a)}}}onError(t,e){return n=>{if(n.message+=`
68
- Please report this to https://github.com/markedjs/marked.`,t){let r="<p>An error occurred:</p><pre>"+Ie(n.message+"",!0)+"</pre>";return e?Promise.resolve(r):r}if(e)return Promise.reject(n);throw n}}},tt=new xd;function M(t,e){return tt.parse(t,e)}M.options=M.setOptions=function(t){return tt.setOptions(t),M.defaults=tt.defaults,ca(M.defaults),M},M.getDefaults=Or,M.defaults=Xe,M.use=function(...t){return tt.use(...t),M.defaults=tt.defaults,ca(M.defaults),M},M.walkTokens=function(t,e){return tt.walkTokens(t,e)},M.parseInline=tt.parseInline,M.Parser=ke,M.parser=ke.parse,M.Renderer=Dn,M.TextRenderer=Wr,M.Lexer=we,M.lexer=we.lex,M.Tokenizer=Bn,M.Hooks=tn,M.parse=M,M.options,M.setOptions,M.use,M.walkTokens,M.parseInline,ke.parse,we.lex,M.setOptions({breaks:!0,gfm:!0});function vd({text:t}){const e=G(()=>{if(!t)return"";const n=M.parse(t);return typeof n=="string"?n:""},[t]);return s("div",{class:"jex-md",dangerouslySetInnerHTML:{__html:e}})}function bd(t){const e=t.trim().split(/\s+/).filter(Boolean);return e.length===0?"?":e.map(n=>n[0]).join("").slice(0,2).toUpperCase()}function _t({text:t,streaming:e,error:n,authorId:r,authorName:i,authorImage:o,botAvatarUrl:a,botName:l}){const c=j(),u=!!r,[h,f]=R(!1),d=N(()=>f(!0),[]),p=c.replyTo.replace("{name}",i??""),g=u?i??"":l??"",y=["jex-message bot",n?"jex-message-error":""].filter(Boolean).join(" ");return s("div",{class:"jex-message-row bot",children:[s("div",{class:"jex-message-head",children:[s("div",{class:`jex-avatar ${u?"jex-avatar-agent":"jex-avatar-bot"}`,children:u&&o&&!h?s("img",{src:o,alt:i??"",class:"jex-avatar-img",onError:d}):u?s("span",{class:"jex-avatar-initials",children:bd(i??"")}):a&&!h?s("img",{src:a,alt:"",class:"jex-avatar-img",onError:d}):s($n,{size:14})}),g&&s("span",{class:"jex-message-author",children:g}),u&&i&&s("button",{type:"button",class:"jex-reply-tag-btn","aria-label":p,title:p,onClick:()=>{lu(i)},children:s(Iu,{size:12})})]}),s("div",{class:y,children:[s(vd,{text:t}),e&&s("span",{class:"jex-streaming-cursor"})]})]})}function yd({questions:t,disabled:e,onPick:n}){return t.length===0?null:s("div",{class:"jex-starter-chips",children:t.map(r=>s("button",{type:"button",class:"jex-starter-chip",disabled:e,onClick:()=>{n(r)},children:r},r))})}function wd({text:t}){return s("div",{class:"jex-message user",children:t})}function Sa(){return Ye(re.functions.chat.public.helpdesk.submitEscalation)}function Ca(){const t=Ye(re.functions.chat.public.helpdesk.markEscalationWaiting);return e=>{Yt.value=e,t({sessionId:e.sessionId,visitorId:e.visitorId}).catch(n=>{console.error("[waiting] markEscalationWaiting failed:",n)})}}function kd({message:t,sessionId:e,visitorId:n,waitingSetAt:r}){const i=j();return t.formData?s("div",{class:"jex-inline-form-submitted",children:[s("span",{class:"jex-inline-form-check",children:"✓"}),s("div",{children:[s("div",{class:"jex-inline-form-submitted-title",children:i.escalationSubmitted}),s("div",{class:"jex-inline-form-submitted-detail",children:[t.formData.visitorName," · ",t.formData.visitorEmail]})]})]}):s("div",{class:"jex-message-row bot",children:s(_d,{messageId:t._id,sessionId:e,visitorId:n,waitingSetAt:r})})}function _d({messageId:t,sessionId:e,visitorId:n,waitingSetAt:r}){const i=j(),[o,a]=R(""),[l,c]=R(""),[u,h]=R(!1),f=Ht.value,d=/^https?:\/\//i.test(f)?f:Qt,p=Sa(),g=Ca();async function y(m){if(m.preventDefault(),!u){h(!0);try{await p({sessionId:e,visitorId:n,formMessageId:t,visitorName:o.trim(),visitorEmail:l.trim(),locale:Ae.value})}catch(v){console.error("[FormMessage] Submit failed:",v),h(!1)}}}return s("div",{class:"jex-inline-form",children:[s("div",{class:"jex-inline-form-title",children:i.escalationFormTitle}),s("form",{class:"jex-form",onSubmit:m=>{y(m)},children:[s("input",{class:"jex-form-input",type:"text",placeholder:i.escalationNameLabel,value:o,required:!0,disabled:u,onInput:m=>{a(m.currentTarget.value)}}),s("input",{class:"jex-form-input",type:"email",placeholder:i.escalationEmailLabel,value:l,required:!0,disabled:u,onInput:m=>{c(m.currentTarget.value)}}),s("button",{class:"jex-form-submit",type:"submit",disabled:u,children:u?i.escalationSubmitting:i.escalationSubmit})]}),s("button",{type:"button",class:"jex-escalation-skip",onClick:()=>{g({formMessageId:t,sessionId:e,visitorId:n,waitingSetAt:r})},children:i.escalationSkip}),s("div",{class:"jex-inline-form-consent",children:[i.escalationConsent," ",s("a",{href:d,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:i.escalationPrivacyLinkText}),"."]})]})}function jd(){return Ye(re.functions.magicline.public.submitForm)}function Sd(){return Ut(re.functions.magicline.actions.getTrialConfig)}function Cd(){return Ut(re.functions.magicline.actions.listTrialSlots)}function Td(){return Ut(re.functions.magicline.actions.getRateBundles)}function Ta(){return Ut(re.functions.magicline.actions.getContractPreview)}function Rd(){return Ut(re.functions.magicline.actions.submitContractCreation)}const Kr={en:Tr,de:No},Ad=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function Ra(t){return Ad.test(t.trim())}function Id(t,e=new Date){const n=t.trim();if(n==="")return null;const r=n.split("-");if(r.length!==3)return null;const i=Number(r[0]),o=Number(r[1]),a=Number(r[2]);if(!Number.isInteger(i)||!Number.isInteger(o)||!Number.isInteger(a)||o<1||o>12||a<1||a>31)return null;let l=e.getFullYear()-i;const c=e.getMonth()+1-o;return(c<0||c===0&&e.getDate()<a)&&(l-=1),l}function Aa(t=new Date){const e=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${e}-${n}-${r}`}function Ia(){const t=Ht.value;return/^https?:\/\//i.test(t)?t:Qt}const Ed={DE:22,AT:20,CH:21,GB:22,FR:27,NL:18,BE:16,ES:24,IT:27,PL:28,SE:24,NO:15,DK:18,FI:18,PT:25},$d=15,Pd=34;function Ea(t){return t.replace(/\s+/g,"").toUpperCase()}function Md(t){const e=Ea(t),n=e.slice(0,2),r=Ed[n];if(r!==void 0){if(e.length!==r)return!1}else if(e.length<$d||e.length>Pd)return!1;const i=e.slice(4)+e.slice(0,4);let o="";for(const l of i){const c=l.charCodeAt(0);if(c>=65&&c<=90)o+=String(c-55);else if(c>=48&&c<=57)o+=l;else return!1}let a=0;for(let l=0;l<o.length;l+=9){const c=String(a)+o.slice(l,l+9);a=Number(c)%97}return a===1}function qd(t){const e=Ea(t);if(e.length<=8)return e;const n=e.slice(0,4),r=e.slice(-4);return(n+"•".repeat(e.length-8)+r).replace(/(.{4})/g,"$1 ").trim()}function _e(t,e,n){const r=n==="de"?"de-DE":"en-GB";try{return new Intl.NumberFormat(r,{style:"currency",currency:e}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function Un(t,e,n){const r=t!==1,o={DAY:{en:["day","days"],de:["Tag","Tage"]},WEEK:{en:["week","weeks"],de:["Woche","Wochen"]},MONTH:{en:["month","months"],de:["Monat","Monate"]},YEAR:{en:["year","years"],de:["Jahr","Jahre"]}}[e.toUpperCase()];if(!o)return`${t} ${e.toLowerCase()}`;const[a,l]=o[n];return`${t} ${r?l:a}`}function Nd(t,e){const n=t.trim();if(n==="")return"—";const r=e==="de"?"de-DE":"en-GB",i=new Date(n);return Number.isNaN(i.getTime())?t:i.toLocaleDateString(r,{day:"2-digit",month:"long",year:"numeric"})}function Gr(t,e,n){const r=Kr[n],i=e.toUpperCase();if(t===1)return{DAY:r.magiclineFreqPerDay,WEEK:r.magiclineFreqPerWeek,MONTH:r.magiclineFreqPerMonth,YEAR:r.magiclineFreqPerYear}[i]??e.toLowerCase();const a={DAY:r.magiclineFreqEveryDays,WEEK:r.magiclineFreqEveryWeeks,MONTH:r.magiclineFreqEveryMonths,YEAR:r.magiclineFreqEveryYears}[i];return a===void 0?`${t} ${e.toLowerCase()}`:a.replace("{n}",String(t))}function Ld(t,e,n,r,i){const o=Kr[i],a=_e(t,e,i);switch(n){case"TERM_BASED":return`${a} ${o.magiclineModulePerTerm}`;case"RECURRING":return`${a} ${Gr(1,r??"MONTH",i)}`;case"NON_RECURRING":return`${a} ${o.magiclineModuleOneTime}`;case"MONTH_DAY":return`${a} ${o.magiclineModuleOneTime}`;case"FREE":return o.magiclineModuleIncluded;default:return a}}function Od(t,e,n,r){return e==="PERCENTAGE"?`-${t}%`:`-${_e(t,n,r)}`}const zd={startpaket:"magiclineFeeStarterPackage","starter package":"magiclineFeeStarterPackage",trainerpauschale:"magiclineFeeTrainerFee"};function $a(t,e){const n=t.trim().toLowerCase(),r=zd[n];return r!==void 0?e[r]:t}function Bd(t,e,n){const r=Kr[n];if(t==="NONE")return r.magiclineRenewalNone;if(t==="TERM_EXTENSION"&&e!==null){const i=Un(e.value,e.unit,n);return r.magiclineRenewalTerm.replace("{n} {unit}",i)}return""}const Pa=["MALE","FEMALE","UNISEX"],Dd=[{code:"DE",label:"Germany / Deutschland"},{code:"AT",label:"Austria / Österreich"},{code:"CH",label:"Switzerland / Schweiz"},{code:"LI",label:"Liechtenstein"},{code:"LU",label:"Luxembourg / Luxemburg"},{code:"NL",label:"Netherlands / Niederlande"},{code:"BE",label:"Belgium / Belgien"},{code:"FR",label:"France / Frankreich"},{code:"IT",label:"Italy / Italien"},{code:"ES",label:"Spain / Spanien"},{code:"PL",label:"Poland / Polen"},{code:"CZ",label:"Czechia / Tschechien"},{code:"DK",label:"Denmark / Dänemark"},{code:"GB",label:"United Kingdom"},{code:"US",label:"United States"}];function Ud(t,e){const n=[];return e&&n.push("trainer"),n.push("slot"),n.push("personal"),(t.address.visible||t.zip.visible)&&n.push("address"),n.push("confirm"),n}const Fd={firstName:"",lastName:"",email:"",phone:"",birthDate:"",gender:"",street:"",houseNumber:"",zip:"",city:"",country:"",note:"",slotId:"",consent:!1,trainerRequired:!0};function Vd(t,e){switch(e.type){case"set":return{...t,[e.key]:e.value};case"setTrainer":return{...t,trainerRequired:e.trainerRequired,slotId:""};case"clearSlotIfAbsent":return t.slotId!==""&&!e.available.includes(t.slotId)?{...t,slotId:""}:t;default:return t}}function Qd({sessionId:t,visitorId:e}){const n=Sd(),r=Cd(),[i,o]=he(Vd,Fd),[a,l]=he((v,b)=>b,{phase:"loading"}),[c,u]=he((v,b)=>b,{phase:"loading"}),[h,f]=he(v=>v+1,0),d=N((v,b)=>{o({type:"set",key:v,value:b})},[]),p=N(v=>{o({type:"setTrainer",trainerRequired:v}),f()},[]),g=N(()=>{f()},[]);T(()=>{let v=!1;return(async()=>{try{const b=await n({sessionId:t,visitorId:e});if(v)return;b.status==="ok"?l({phase:"ready",config:{plan:b.plan,minimumAge:b.minimumAge,bookingWithoutTrainerAllowed:b.bookingWithoutTrainerAllowed,studioZoneId:b.studioZoneId}}):l({phase:"error",code:b.status,backendMessage:b.message})}catch{v||l({phase:"error",code:"unavailable",backendMessage:""})}})(),()=>{v=!0}},[n,t,e]);const y=a.phase==="ready",{trainerRequired:m}=i;return T(()=>{if(!y)return;let v=!1;return u({phase:"loading"}),(async()=>{try{const b=await r({sessionId:t,visitorId:e,trainerRequired:m});if(v)return;b.status==="ok"?b.slots.length>0?(u({phase:"ready",slots:b.slots}),o({type:"clearSlotIfAbsent",available:b.slots.map(x=>x.startDateTime)})):u({phase:"empty"}):u({phase:"error"})}catch{v||u({phase:"error"})}})(),()=>{v=!0}},[y,r,t,e,m,h]),{fields:i,setField:d,setTrainerRequired:p,configState:a,slotsState:c,refetchSlots:g}}function Hd({formMessageId:t,sessionId:e,visitorId:n,slotUnavailable:r=!1,retryPending:i=!1}){const o=j(),a=jd(),{fields:l,setField:c,setTrainerRequired:u,configState:h,slotsState:f,refetchSlots:d}=Qd({sessionId:e,visitorId:n});return h.phase==="loading"?s("div",{class:"jex-inline-form jex-magicline-form",children:[s("div",{class:"jex-inline-form-title",children:o.magiclineTrialTitle}),s("div",{class:"jex-magicline-slots-hint",children:o.magiclineConfigLoading})]}):h.phase==="error"?s("div",{class:"jex-inline-form jex-magicline-form",children:[s("div",{class:"jex-inline-form-title",children:o.magiclineTrialTitle}),s("div",{class:"jex-magicline-slots-hint",role:"alert",children:eh(h.code,h.backendMessage,o)})]}):s(Wd,{formMessageId:t,sessionId:e,visitorId:n,slotUnavailable:r,retryPending:i,config:h.config,fields:l,setField:c,setTrainerRequired:u,slotsState:f,refetchSlots:d,submitForm:a})}function Wd({formMessageId:t,sessionId:e,visitorId:n,slotUnavailable:r,retryPending:i,config:o,fields:a,setField:l,setTrainerRequired:c,slotsState:u,refetchSlots:h,submitForm:f}){const d=j(),{plan:p,minimumAge:g,bookingWithoutTrainerAllowed:y,studioZoneId:m}=o,v=G(()=>Ud(p,y),[p,y]),b=r?Math.max(v.indexOf("slot"),0):0,[x,P]=R(b),[S,z]=R({}),[W,V]=R(!1),[le,L]=R(null),Q=G(()=>Ia(),[]),ie=Math.min(x,v.length-1),w=v[ie],Z=ie===v.length-1,rn=ie===0;function nt(K){const I={};if(K==="slot")return a.slotId===""&&(I.slotId=d.magiclineSlotRequiredError),I;if(K==="personal"){if(a.firstName.trim()===""&&(I.firstName=d.magiclineRequiredError),a.lastName.trim()===""&&(I.lastName=d.magiclineRequiredError),p.email.visible&&p.email.required&&a.email.trim()===""&&(I.email=d.magiclineRequiredError),a.email.trim()!==""&&!Ra(a.email)&&(I.email=d.magiclineEmailError),p.phone.visible&&p.phone.required&&a.phone.trim()===""&&(I.phone=d.magiclineRequiredError),p.gender.visible&&p.gender.required&&a.gender===""&&(I.gender=d.magiclineRequiredError),p.dateOfBirth.visible&&(p.dateOfBirth.required&&a.birthDate.trim()===""&&(I.birthDate=d.magiclineRequiredError),a.birthDate.trim()!=="")){const be=Id(a.birthDate);be!==null&&be<0?I.birthDate=d.magiclineRequiredError:g>0&&be!==null&&be<g&&(I.birthDate=d.magiclineMinAgeError.replace("{age}",String(g)))}return I}return K==="address"?(p.address.visible&&p.address.required&&(a.street.trim()===""&&(I.street=d.magiclineRequiredError),a.houseNumber.trim()===""&&(I.houseNumber=d.magiclineRequiredError),a.city.trim()===""&&(I.city=d.magiclineRequiredError),a.country===""&&(I.country=d.magiclineRequiredError)),p.zip.visible&&p.zip.required&&a.zip.trim()===""&&(I.zip=d.magiclineRequiredError),I):(K==="confirm"&&(a.consent||(I.consent=d.magiclineConsentError)),I)}function rt(){const K=nt(w);if(Object.keys(K).length>0){z(K);return}z({}),P(I=>Math.min(I+1,v.length-1))}function jt(){z({}),L(null),P(K=>Math.max(K-1,0))}async function it(){if(W)return;const K=nt("confirm");if(Object.keys(K).length>0){z(K);return}z({}),L(null),V(!0);try{const I=th(p,a);await f({sessionId:e,visitorId:n,formMessageId:t,action:"trialSessionBooking",fields:I})}catch(I){console.error("[TrialSessionBookingForm] Submit failed:",I),L(d.magiclineFailedDetail),V(!1)}}function on(){Z?it():rt()}const St=Xd(w,d),$e=`jex-ml-consent-${t}`;return s("div",{class:"jex-inline-form jex-magicline-form",children:[s("div",{class:"jex-magicline-wizard-header",children:[s("div",{class:"jex-inline-form-title",children:d.magiclineTrialTitle}),s("div",{class:"jex-magicline-wizard-progress",children:[s("span",{class:"jex-magicline-wizard-step-label",children:St}),s("span",{class:"jex-magicline-wizard-counter",children:d.magiclineStepCounter.replace("{n}",String(ie+1)).replace("{total}",String(v.length))})]}),s("div",{class:"jex-magicline-wizard-dots","aria-hidden":"true",children:v.map((K,I)=>s("span",{class:I===ie?"jex-magicline-wizard-dot jex-magicline-wizard-dot-active":"jex-magicline-wizard-dot"},K))})]}),s("div",{class:"jex-form",role:"group","aria-label":St,children:[w==="trainer"?s(Kd,{formMessageId:t,trainerRequired:a.trainerRequired,disabled:W,onChange:c}):null,w==="slot"?s(Gd,{slotsState:u,slotId:a.slotId,studioZoneId:m,disabled:W,retryPending:i,slotUnavailable:r,error:S.slotId,onSelect:K=>{l("slotId",K)},onRetry:h}):null,w==="personal"?s(Jd,{plan:p,fields:a,errors:S,disabled:W,setField:l}):null,w==="address"?s(Yd,{plan:p,fields:a,errors:S,disabled:W,setField:l}):null,w==="confirm"?s(Zd,{consentId:$e,privacyUrl:Q,studioZoneId:m,fields:a,disabled:W,consentError:S.consent,setField:l}):null,le!==null?s("div",{class:"jex-magicline-error",role:"alert",children:le}):null,s("div",{class:"jex-magicline-wizard-nav",children:[rn?null:s("button",{type:"button",class:"jex-magicline-wizard-back",disabled:W,onClick:jt,children:d.magiclineWizardBack}),s("button",{type:"button",class:"jex-form-submit jex-magicline-wizard-next",disabled:W,onClick:on,children:Z?W?d.magiclineSubmitting:d.magiclineSubmit:d.magiclineWizardNext})]})]})]})}function Kd({formMessageId:t,trainerRequired:e,disabled:n,onChange:r}){const i=j(),o=`jex-ml-trainer-${t}`;return s("div",{class:"jex-magicline-radio-group",role:"radiogroup","aria-label":i.magiclineStepTrainer,children:[s("label",{class:e?"jex-magicline-radio-card jex-magicline-radio-card-active":"jex-magicline-radio-card",children:[s("input",{type:"radio",name:o,checked:e,disabled:n,onChange:()=>{r(!0)}}),s("span",{children:i.magiclineTrainerWith})]}),s("label",{class:e?"jex-magicline-radio-card":"jex-magicline-radio-card jex-magicline-radio-card-active",children:[s("input",{type:"radio",name:o,checked:!e,disabled:n,onChange:()=>{r(!1)}}),s("span",{children:i.magiclineTrainerWithout})]})]})}function Gd({slotsState:t,slotId:e,studioZoneId:n,disabled:r,retryPending:i,slotUnavailable:o,error:a,onSelect:l,onRetry:c}){const u=j();return s(O,{children:[o?s("div",{class:"jex-magicline-error",role:"alert",children:u.magiclineSlotUnavailableNotice}):null,i||t.phase==="loading"?s("div",{class:"jex-magicline-slots-hint","aria-live":"polite",children:u.magiclineLoadingSlots}):t.phase==="ready"?s("select",{class:"jex-form-input jex-magicline-select","aria-label":u.magiclineSlotLabel,value:e,required:!0,disabled:r,"aria-invalid":a!==void 0,onChange:h=>{l(h.currentTarget.value)},children:[s("option",{value:"",disabled:!0,children:u.magiclineSlotPlaceholder}),t.slots.map(h=>s("option",{value:h.startDateTime,children:qa(h.startDateTime,Ae.value,n)},h.startDateTime))]}):t.phase==="error"?s("div",{class:"jex-magicline-slots-error",children:[s("div",{class:"jex-magicline-slots-hint",role:"alert","aria-live":"polite",children:u.magiclineSlotsError}),s("button",{type:"button",class:"jex-magicline-retry",disabled:r,onClick:c,children:u.magiclineRetry})]}):s("div",{class:"jex-magicline-slots-hint",role:"alert","aria-live":"polite",children:u.magiclineNoSlots}),a!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:a}):null]})}function Jd({plan:t,fields:e,errors:n,disabled:r,setField:i}){const o=j(),a=G(()=>Aa(),[]);return s(O,{children:[s("div",{class:"jex-magicline-row",children:[s(He,{label:o.magiclineFirstName,value:e.firstName,required:!0,disabled:r,error:n.firstName,fieldKey:"firstName",onInput:l=>{i("firstName",l)}}),s(He,{label:o.magiclineLastName,value:e.lastName,required:!0,disabled:r,error:n.lastName,fieldKey:"lastName",onInput:l=>{i("lastName",l)}})]}),t.email.visible?s(He,{label:ve(o.magiclineEmail,t.email.required,o),type:"email",value:e.email,required:t.email.required,disabled:r,error:n.email,fieldKey:"email",onInput:l=>{i("email",l)}}):null,t.phone.visible?s(He,{label:ve(o.magiclinePhone,t.phone.required,o),type:"tel",value:e.phone,required:t.phone.required,disabled:r,error:n.phone,fieldKey:"phone",onInput:l=>{i("phone",l)}}):null,t.dateOfBirth.visible?s("label",{class:"jex-magicline-field",children:[s("span",{class:"jex-magicline-field-label",children:ve(o.magiclineBirthDate,t.dateOfBirth.required,o)}),s("input",{class:"jex-form-input",type:"date","aria-label":ve(o.magiclineBirthDate,t.dateOfBirth.required,o),value:e.birthDate,max:a,required:t.dateOfBirth.required,disabled:r,"aria-invalid":n.birthDate!==void 0,onInput:l=>{i("birthDate",l.currentTarget.value)}}),n.birthDate!==void 0?s("span",{class:"jex-magicline-error",role:"alert",children:n.birthDate}):null]}):null,t.gender.visible?s(Ma,{label:ve(o.magiclineGender,t.gender.required,o),value:e.gender,required:t.gender.required,disabled:r,placeholder:ve(o.magiclineGenderPlaceholder,t.gender.required,o),error:n.gender,onChange:l=>{i("gender",l)},options:Pa.map(l=>({value:l,label:nh(l,o)}))}):null]})}function Yd({plan:t,fields:e,errors:n,disabled:r,setField:i}){const o=j();return s(O,{children:[t.address.visible?s(O,{children:[s("div",{class:"jex-magicline-row",children:[s(He,{label:ve(o.magiclineStreet,t.address.required,o),value:e.street,required:t.address.required,disabled:r,error:n.street,fieldKey:"street",onInput:a=>{i("street",a)}}),s(He,{label:ve(o.magiclineHouseNumber,t.address.required,o),value:e.houseNumber,required:t.address.required,disabled:r,error:n.houseNumber,fieldKey:"houseNumber",onInput:a=>{i("houseNumber",a)}})]}),s(He,{label:ve(o.magiclineCity,t.address.required,o),value:e.city,required:t.address.required,disabled:r,error:n.city,fieldKey:"city",onInput:a=>{i("city",a)}}),s(Ma,{label:ve(o.magiclineCountry,t.address.required,o),value:e.country,required:t.address.required,disabled:r,placeholder:ve(o.magiclineCountryPlaceholder,t.address.required,o),error:n.country,onChange:a=>{i("country",a)},options:Dd.map(a=>({value:a.code,label:a.label}))})]}):null,t.zip.visible?s(He,{label:ve(o.magiclineZip,t.zip.required,o),value:e.zip,required:t.zip.required,disabled:r,error:n.zip,fieldKey:"zip",onInput:a=>{i("zip",a)}}):null]})}function Zd({consentId:t,privacyUrl:e,studioZoneId:n,fields:r,disabled:i,consentError:o,setField:a}){const l=j(),c=r.slotId!==""?qa(r.slotId,Ae.value,n):"—",u=`${r.firstName} ${r.lastName}`.trim();return s(O,{children:[s("dl",{class:"jex-magicline-summary",children:[s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:l.magiclineSummaryTrainer}),s("dd",{children:r.trainerRequired?l.magiclineTrainerWith:l.magiclineTrainerWithout})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:l.magiclineSummarySlot}),s("dd",{children:c})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:l.magiclineSummaryName}),s("dd",{children:u!==""?u:"—"})]})]}),s("textarea",{class:"jex-form-textarea","aria-label":l.magiclineNote,placeholder:l.magiclineNote,value:r.note,disabled:i,onInput:h=>{a("note",h.currentTarget.value)}}),s("label",{class:"jex-magicline-consent",for:t,children:[s("input",{id:t,type:"checkbox",checked:r.consent,disabled:i,"aria-invalid":o!==void 0,onChange:h=>{a("consent",h.currentTarget.checked)}}),s("span",{children:[l.magiclineConsent," ",s("a",{href:e,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:l.magiclinePrivacyLinkText}),"."]})]}),o!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:o}):null]})}function He({label:t,value:e,fieldKey:n,type:r="text",required:i=!1,disabled:o,error:a,onInput:l}){const c=a!==void 0?`jex-ml-err-${n}`:void 0;return s("div",{class:"jex-magicline-field",children:[s("input",{class:"jex-form-input",type:r,"aria-label":t,placeholder:t,value:e,required:i,disabled:o,"aria-invalid":a!==void 0,"aria-describedby":c,onInput:u=>{l(u.currentTarget.value)}}),a!==void 0?s("span",{id:c,class:"jex-magicline-error",role:"alert",children:a}):null]})}function Ma({label:t,value:e,required:n,disabled:r,placeholder:i,error:o,options:a,onChange:l}){return s("div",{class:"jex-magicline-field",children:[s("select",{class:"jex-form-input jex-magicline-select","aria-label":t,value:e,required:n,disabled:r,"aria-invalid":o!==void 0,onChange:c=>{l(c.currentTarget.value)},children:[s("option",{value:"",disabled:n,children:i}),a.map(c=>s("option",{value:c.value,children:c.label},c.value))]}),o!==void 0?s("span",{class:"jex-magicline-error",role:"alert",children:o}):null]})}function ve(t,e,n){return e?t:t+n.magiclineOptionalSuffix}function Xd(t,e){switch(t){case"trainer":return e.magiclineStepTrainer;case"slot":return e.magiclineStepSlot;case"personal":return e.magiclineStepPersonal;case"address":return e.magiclineStepAddress;case"confirm":return e.magiclineStepConfirm;default:return""}}function eh(t,e,n){return e.trim()!==""?e:t==="unsupported"?n.magiclineConfigUnsupported:t==="inconsistent"?n.magiclineConfigInconsistent:n.magiclineConfigUnavailable}function th(t,e){const n={firstname:e.firstName.trim(),lastname:e.lastName.trim(),slotId:e.slotId,trainerRequired:e.trainerRequired,privacyConsent:e.consent};return t.email.visible&&e.email.trim()!==""&&(n.email=e.email.trim()),t.phone.visible&&e.phone.trim()!==""&&(n.phone=e.phone.trim()),t.dateOfBirth.visible&&e.birthDate.trim()!==""&&(n.dateOfBirth=e.birthDate.trim()),t.gender.visible&&e.gender!==""&&(n.gender=e.gender),t.address.visible&&(e.street.trim()!==""&&(n.street=e.street.trim()),e.houseNumber.trim()!==""&&(n.houseNumber=e.houseNumber.trim()),e.city.trim()!==""&&(n.city=e.city.trim()),e.country!==""&&(n.country=e.country)),t.zip.visible&&e.zip.trim()!==""&&(n.zip=e.zip.trim()),e.note.trim()!==""&&(n.note=e.note.trim()),n}function nh(t,e){return t==="MALE"?e.magiclineGenderMale:t==="FEMALE"?e.magiclineGenderFemale:e.magiclineGenderUnisex}function qa(t,e,n){const r=e==="de"?"de-DE":"en-GB",i=t.match(/\[([^\]]+)\]\s*$/),o=i?i[1]:n??void 0,a=t.replace(/\[[^\]]+\]\s*$/,""),l=new Date(a);if(Number.isNaN(l.getTime()))return t;try{return l.toLocaleString(r,{weekday:"short",day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",...o?{timeZone:o,timeZoneName:"short"}:{timeZoneName:"short"}})}catch{return l.toLocaleString(r,{weekday:"short",day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",timeZoneName:"short"})}}const rh={termId:null,selectedModuleIds:[],acknowledgedBlocks:{},personal:{firstName:"",lastName:"",email:"",dateOfBirth:"",gender:"",phone:""},address:{street:"",houseNumber:"",zipCode:"",city:""},payment:{accountHolder:"",accountHolderTouched:!1,iban:""},consents:{privacy:!1,sepa:!1}};function ih(t,e){switch(e.type){case"setTermId":return t.termId===e.termId?t:{...t,termId:e.termId,selectedModuleIds:[],acknowledgedBlocks:{}};case"toggleModule":{if(e.selected)return t.selectedModuleIds.includes(e.moduleId)?t:{...t,selectedModuleIds:[...t.selectedModuleIds,e.moduleId]};const n={...t.acknowledgedBlocks};return e.consentAckKey!==void 0&&delete n[e.consentAckKey],{...t,selectedModuleIds:t.selectedModuleIds.filter(r=>r!==e.moduleId),acknowledgedBlocks:n}}case"setBlockAck":return{...t,acknowledgedBlocks:{...t.acknowledgedBlocks,[e.ackKey]:e.value}};case"setPersonal":return{...t,personal:{...t.personal,[e.key]:e.value}};case"setAddress":return{...t,address:{...t.address,[e.key]:e.value}};case"setAccountHolder":return{...t,payment:{...t.payment,accountHolder:e.value,accountHolderTouched:!0}};case"setIban":return{...t,payment:{...t.payment,iban:e.value}};case"setConsent":return{...t,consents:{...t.consents,[e.key]:e.value}};case"clearIban":return{...t,payment:{...t.payment,iban:""}};case"clearTermId":return{...t,termId:null,selectedModuleIds:[],acknowledgedBlocks:{}};case"prefillAccountHolder":return t.payment.accountHolderTouched||t.payment.accountHolder!==""?t:{...t,payment:{...t.payment,accountHolder:e.value}};default:return t}}const Na={draftVoucherCode:"",appliedVoucherCode:null,appliedVoucher:null,voucherStatus:"idle",voucherRequestId:0,voucherUnavailable:!1},oh="voucher:";function ah(t){const e={};for(const n of Object.keys(t))n.startsWith(oh)||(e[n]=t[n]);return e}function sh(t,e){switch(e.type){case"SET_VOUCHER_DRAFT":{const n=t.appliedVoucher!==null||t.voucherStatus==="applied";return{...t,draftVoucherCode:e.value,...n?{appliedVoucher:null,appliedVoucherCode:null,voucherStatus:"idle"}:{}}}case"VOUCHER_APPLYING":return{...t,voucherStatus:"applying",voucherRequestId:t.voucherRequestId+1};case"VOUCHER_APPLIED":return e.requestId!==t.voucherRequestId?t:{...t,appliedVoucher:e.voucher,appliedVoucherCode:e.appliedCode,voucherStatus:"applied"};case"VOUCHER_INVALID":return{...t,appliedVoucher:null,appliedVoucherCode:null,voucherStatus:"invalid"};case"VOUCHER_DISABLED":return{...t,appliedVoucher:null,appliedVoucherCode:null,voucherStatus:"disabled",voucherUnavailable:!0};case"CLEAR_VOUCHER":return{...t,appliedVoucher:null,appliedVoucherCode:null,voucherStatus:"idle"};default:return t}}function lh(t,e){switch(e.type){case"dropVoucherAcks":{const n=ah(t.acknowledgedBlocks);return Object.keys(n).length===Object.keys(t.acknowledgedBlocks).length?t:{...t,acknowledgedBlocks:n}}case"seedVoucherAcks":{if(e.ackKeys.length===0)return t;const n={...t.acknowledgedBlocks};for(const r of e.ackKeys)r in n||(n[r]=!1);return{...t,acknowledgedBlocks:n}}default:return ih(t,e)}}function ch({sessionId:t,visitorId:e}){const n=Td(),r=Ta(),[i,o]=he(lh,rh),[a,l]=he(sh,Na),[c,u]=he((k,C)=>C,{phase:"loading"}),h=me(null),[f,d]=he((k,C)=>C,{phase:"idle"}),p=N(k=>{k.phase==="ready"?h.current=k.pricing:(k.phase==="idle"||k.phase==="error")&&(h.current=null),d(k)},[]),[g,y]=he(k=>k+1,0),[m,v]=he(k=>k+1,0),b=N(k=>{o({type:"setTermId",termId:k}),l({type:"CLEAR_VOUCHER"})},[]),x=N((k,C)=>{o({type:"setPersonal",key:k,value:C})},[]),P=N((k,C)=>{o({type:"setAddress",key:k,value:C})},[]),S=N((k,C,De)=>{o({type:"toggleModule",moduleId:k,selected:C,consentAckKey:De}),o({type:"dropVoucherAcks"}),l({type:"CLEAR_VOUCHER"})},[]),z=N((k,C)=>{o({type:"setBlockAck",ackKey:k,value:C})},[]),W=N(k=>{o({type:"setAccountHolder",value:k})},[]),V=N(k=>{o({type:"setIban",value:k})},[]),le=N((k,C)=>{o({type:"setConsent",key:k,value:C})},[]),L=N(()=>{o({type:"clearIban"})},[]),Q=N(()=>{o({type:"clearTermId"}),l({type:"CLEAR_VOUCHER"})},[]),ie=N(k=>{l({type:"SET_VOUCHER_DRAFT",value:k}),o({type:"dropVoucherAcks"})},[]),w=me(Na.voucherRequestId),Z=N(()=>{const k=w.current+1;return w.current=k,l({type:"VOUCHER_APPLYING"}),k},[]),rn=N(k=>{k.requestId===w.current&&(l({type:"VOUCHER_APPLIED",requestId:k.requestId,voucher:k.voucher,appliedCode:k.appliedCode,voucherAckKeys:k.voucherAckKeys}),p({phase:"ready",pricing:k.pricing}),o({type:"seedVoucherAcks",ackKeys:k.voucherAckKeys}))},[]),nt=N(()=>{l({type:"VOUCHER_INVALID"}),o({type:"dropVoucherAcks"}),v()},[]),rt=N(()=>{l({type:"VOUCHER_DISABLED"}),o({type:"dropVoucherAcks"}),v()},[]),jt=N(()=>{l({type:"CLEAR_VOUCHER"}),o({type:"dropVoucherAcks"}),v()},[]),it=N(()=>{y()},[]),on=N(()=>{p({phase:"idle"})},[]),St=N(()=>{v()},[]),$e=c.phase==="ready"&&i.termId!==null?c.terms.find(k=>k.termId===i.termId)??null:null,{selectedModuleIds:K,acknowledgedBlocks:I}=i,{appliedVoucher:be}=a,Be=G(()=>{if($e===null)return[];const k=new Set;for(const C of $e.textBlocks)C.isConfirmationRequired&&k.add(C.ackKey);for(const C of K){const De=$e.optionalModules.find(ot=>ot.id===C);De?.consent&&k.add(De.consent.ackKey)}if(be!==null)for(const C of be.textBlocks)k.add(C.ackKey);return[...k]},[$e,K,be]),an=G(()=>Be.every(k=>I[k]===!0),[Be,I]),{firstName:oe,lastName:Pe}=i.personal,{accountHolder:de,accountHolderTouched:Ct}=i.payment;return T(()=>{Ct||de!==""||oe.trim()!==""&&Pe.trim()!==""&&o({type:"prefillAccountHolder",value:`${oe.trim()} ${Pe.trim()}`})},[oe,Pe,de,Ct]),T(()=>{let k=!1;return u({phase:"loading"}),(async()=>{try{const C=await n({sessionId:t,visitorId:e});if(k)return;C.status==="ok"?C.terms.length>0?u({phase:"ready",terms:C.terms,allowVoucherCodes:C.allowVoucherCodes}):u({phase:"empty"}):u({phase:"error"})}catch{k||u({phase:"error"})}})(),()=>{k=!0}},[n,t,e,g]),T(()=>{if(m===0)return;const k=$e;if(!k){p({phase:"error",code:"offer_unavailable"});return}let C=!1;const De=h.current;p(De!==null?{phase:"reloading",pricing:De}:{phase:"loading"});const ot=k.defaultContractStartDate??"",Zr={sessionId:t,visitorId:e,termId:k.termId,startDate:ot,fields:{firstname:i.personal.firstName.trim(),lastname:i.personal.lastName.trim(),email:i.personal.email.trim(),dateOfBirth:i.personal.dateOfBirth.trim(),gender:i.personal.gender,phone:i.personal.phone.trim(),street:i.address.street.trim(),houseNumber:i.address.houseNumber.trim(),zipCode:i.address.zipCode.trim(),city:i.address.city.trim()},selectedModuleIds:k.optionalModules.filter(H=>i.selectedModuleIds.includes(H.id)).map(H=>H.id),privacyConsent:i.consents.privacy,sepaConsent:i.consents.sepa};return(async()=>{try{const H=await r(Zr);if(C)return;H.status==="ok"?p({phase:"ready",pricing:{basePrice:H.basePrice,preUseCharge:H.preUseCharge,currencyCode:H.currencyCode,flatFees:H.flatFees,modules:H.modules,contractVolume:H.contractVolume,startDate:H.startDate,paymentFrequency:H.paymentFrequency,fingerprint:H.pricingFingerprint}}):p({phase:"error",code:H.status})}catch{C||p({phase:"error",code:"unavailable"})}})(),()=>{C=!0}},[m,r,t,e]),{fields:i,offersState:c,previewState:f,selectedTerm:$e,requiredAckKeys:Be,allAcknowledged:an,serverAllowVoucherCodes:c.phase==="ready"?c.allowVoucherCodes:!1,voucherStatus:a.voucherStatus,draftVoucherCode:a.draftVoucherCode,appliedVoucherCode:a.appliedVoucherCode,appliedVoucher:a.appliedVoucher,voucherUnavailable:a.voucherUnavailable,setTermId:b,setPersonal:x,setAddress:P,toggleModule:S,setBlockAck:z,setAccountHolder:W,setIban:V,setConsent:le,clearIban:L,clearTermId:Q,refetchOffers:it,fetchPreview:St,resetPreview:on,setVoucherDraft:ie,beginVoucherApply:Z,commitVoucherApplied:rn,markVoucherInvalid:nt,markVoucherDisabled:rt,clearVoucher:jt}}function uh(t){return t!==null&&t.optionalModules.length>0?["offer","upgrades","personal","address","payment","review"]:["offer","personal","address","payment","review"]}function dh({formMessageId:t,sessionId:e,visitorId:n,projectId:r,formStatus:i}){const o=j(),a=Ae.value,l=Rd(),c=Ta(),u=ch({sessionId:e,visitorId:n}),{fields:h,offersState:f,previewState:d,selectedTerm:p,requiredAckKeys:g,allAcknowledged:y,serverAllowVoucherCodes:m,voucherStatus:v,draftVoucherCode:b,appliedVoucher:x,appliedVoucherCode:P,voucherUnavailable:S,setTermId:z,setPersonal:W,setAddress:V,toggleModule:le,setBlockAck:L,setAccountHolder:Q,setIban:ie,setConsent:w,clearIban:Z,clearTermId:rn,refetchOffers:nt,fetchPreview:rt,resetPreview:jt,setVoucherDraft:it,beginVoucherApply:on,commitVoucherApplied:St,markVoucherInvalid:$e,markVoucherDisabled:K}=u,[I,be]=R(0),[Be,an]=R({}),[oe,Pe]=R(!1),[de,Ct]=R(null),[k,C]=R(null),[De,ot]=R(null),Zr=G(()=>Ia(),[]);if(de!==null&&de.status==="succeeded")return s(La,{customerNumber:de.customerNumber});if(de!==null&&de.status==="failed"&&!de.retryable){const q=de.errorCode==="duplicate_submission"?o.magiclineDuplicateNotice:de.errorCode==="unknown_outcome"?o.magiclineUnknownOutcome:de.errorCode==="live_submission_disabled"?o.magiclineLiveSubmissionDisabled:o.magiclineFailedDetail;return s(Oa,{message:q})}if(de===null&&!oe&&i==="submitted")return s(La,{customerNumber:null});if(de===null&&!oe&&i==="failed")return s(Oa,{message:o.magiclineFailedDetail});const H=G(()=>uh(p),[p]),Tt=Math.min(I,H.length-1),Me=H[Tt],Ja=Tt===H.length-1,ip=Tt===0;function op(q){const E={};if(q==="offer")return h.termId===null&&(E.termId=o.magiclineOfferRequiredError),E;if(q==="upgrades"){if(p!==null)for(const X of h.selectedModuleIds){const at=p.optionalModules.find(te=>te.id===X);if(at?.consent&&h.acknowledgedBlocks[at.consent.ackKey]!==!0){E.upgrades=o.magiclineUpgradeConsentError;break}}return E}if(q==="personal"){const X=h.personal;return X.firstName.trim()===""&&(E.firstName=o.magiclineRequiredError),X.lastName.trim()===""&&(E.lastName=o.magiclineRequiredError),X.email.trim()===""?E.email=o.magiclineRequiredError:Ra(X.email)||(E.email=o.magiclineEmailError),X.dateOfBirth.trim()===""&&(E.dateOfBirth=o.magiclineRequiredError),X.gender===""&&(E.gender=o.magiclineRequiredError),X.phone.trim()===""&&(E.phone=o.magiclineRequiredError),E}if(q==="address"){const X=h.address;return X.street.trim()===""&&(E.street=o.magiclineRequiredError),X.houseNumber.trim()===""&&(E.houseNumber=o.magiclineRequiredError),X.zipCode.trim()===""&&(E.zipCode=o.magiclineRequiredError),X.city.trim()===""&&(E.city=o.magiclineRequiredError),E}return q==="payment"&&(h.payment.accountHolder.trim()===""&&(E.accountHolder=o.magiclineRequiredError),Md(h.payment.iban)||(E.iban=o.magiclineIbanInvalidError),h.consents.privacy||(E.privacy=o.magiclineConsentError),h.consents.sepa||(E.sepa=o.magiclineConsentError)),E}function ap(){const q=op(Me);if(Object.keys(q).length>0){an(q);return}an({}),C(null);const E=Math.min(Tt+1,H.length-1);H[E]==="review"&&rt(),be(E)}function sp(){an({}),C(null),Me==="review"&&jt(),be(q=>Math.max(q-1,0))}function lp(){C(null),rt()}async function cp(){if(!oe&&!(d.phase!=="ready"||p===null)){if(!y){C(o.magiclineConfirmRequiredError);return}Pe(!0),C(null);try{const q=await l({sessionId:e,visitorId:n,projectId:r,formMessageId:t,fields:{firstname:h.personal.firstName.trim(),lastname:h.personal.lastName.trim(),email:h.personal.email.trim(),phone:h.personal.phone.trim(),dateOfBirth:h.personal.dateOfBirth.trim(),gender:h.personal.gender,street:h.address.street.trim(),houseNumber:h.address.houseNumber.trim(),zipCode:h.address.zipCode.trim(),city:h.address.city.trim(),rateBundleTermId:p.termId,privacyConsent:h.consents.privacy,sepaConsent:h.consents.sepa},bankAccount:{accountHolder:h.payment.accountHolder.trim(),iban:h.payment.iban},selectedModuleIds:p.optionalModules.filter(E=>h.selectedModuleIds.includes(E.id)).map(E=>E.id),acknowledgedAckKeys:g,pricingFingerprint:d.pricing.fingerprint,voucherCode:P??void 0});if(q.status==="succeeded"){Ct(q);return}if(q.errorCode==="price_changed"){C(o.magiclinePriceChangedNotice),rt(),Pe(!1);return}if(q.errorCode==="offer_unavailable"){rn(),nt(),jt(),C(o.magiclineOfferUnavailableNotice),be(0),Pe(!1);return}if(q.errorCode==="confirmation_required"){C(o.magiclineConfirmationRequiredNotice),Pe(!1);return}if(q.errorCode==="live_submission_disabled"){Ct(q);return}if(!q.retryable){Ct(q);return}Z(),C(q.message!==""?q.message:o.magiclineFailedDetail),Pe(!1)}catch(q){console.error("[ContractCreationForm] Submit failed:",q),Z(),C(o.magiclineFailedDetail),Pe(!1)}}}async function up(){if(d.phase!=="ready"||p===null||b.trim()==="")return;const q=b.trim(),E=on();ot(null);const X=te=>{$e(),it(""),ot(te)},at=o.magiclineVoucherInvalid.replace("{code}",q);try{const te=await c({sessionId:e,visitorId:n,termId:p.termId,startDate:p.defaultContractStartDate??"",fields:{firstname:h.personal.firstName.trim(),lastname:h.personal.lastName.trim(),email:h.personal.email.trim(),dateOfBirth:h.personal.dateOfBirth.trim(),gender:h.personal.gender,phone:h.personal.phone.trim(),street:h.address.street.trim(),houseNumber:h.address.houseNumber.trim(),zipCode:h.address.zipCode.trim(),city:h.address.city.trim()},selectedModuleIds:p.optionalModules.filter(st=>h.selectedModuleIds.includes(st.id)).map(st=>st.id),privacyConsent:h.consents.privacy,sepaConsent:h.consents.sepa,voucherCode:b.trim()});if(te.status==="ok"){const st=te.voucher;if(st!==null){const gp=st.textBlocks.map(mp=>mp.ackKey);St({requestId:E,voucher:st,appliedCode:b.trim(),voucherAckKeys:gp,pricing:{basePrice:te.basePrice,preUseCharge:te.preUseCharge,currencyCode:te.currencyCode,flatFees:te.flatFees,modules:te.modules,contractVolume:te.contractVolume,startDate:te.startDate,paymentFrequency:te.paymentFrequency,fingerprint:te.pricingFingerprint}})}else X(at)}else te.status==="voucher_invalid"?X(at):te.status==="voucher_disabled"?(K(),it(""),ot(o.magiclineVoucherDisabled)):X(at)}catch{X(at)}}function dp(){Ja?cp():ap()}const Ya=jh(Me,o),hp=v==="applying"||b.trim()!==""&&b.trim()!==(P??""),pp=Me==="review"&&(d.phase!=="ready"||!y||hp),fp=oe||pp;return s("div",{class:"jex-inline-form jex-magicline-form",children:[s("div",{class:"jex-magicline-wizard-header",children:[s("div",{class:"jex-inline-form-title",children:o.magiclineContractTitle}),s("div",{class:"jex-magicline-wizard-progress",children:[s("span",{class:"jex-magicline-wizard-step-label",children:Ya}),s("span",{class:"jex-magicline-wizard-counter",children:o.magiclineStepCounter.replace("{n}",String(Tt+1)).replace("{total}",String(H.length))})]}),s("div",{class:"jex-magicline-wizard-dots","aria-hidden":"true",children:H.map((q,E)=>s("span",{class:E===Tt?"jex-magicline-wizard-dot jex-magicline-wizard-dot-active":"jex-magicline-wizard-dot"},q))})]}),s("div",{class:"jex-form",role:"group","aria-label":Ya,children:[Me==="offer"?s(hh,{offersState:f,selectedTermId:h.termId,widgetLocale:a,disabled:oe,error:Be.termId,onSelect:z,onRetry:nt}):null,Me==="upgrades"&&p!==null?s(gh,{modules:p.optionalModules,selectedModuleIds:h.selectedModuleIds,acknowledgedBlocks:h.acknowledgedBlocks,widgetLocale:a,disabled:oe,error:Be.upgrades,onToggle:le,onAck:L}):null,Me==="personal"?s(xh,{personal:h.personal,errors:Be,disabled:oe,setPersonal:W}):null,Me==="address"?s(vh,{address:h.address,errors:Be,disabled:oe,setAddress:V}):null,Me==="payment"?s(bh,{formMessageId:t,fields:h,errors:Be,privacyUrl:Zr,disabled:oe,setAccountHolder:Q,setIban:ie,setConsent:w}):null,Me==="review"?s(yh,{fields:h,term:p,previewState:d,widgetLocale:a,disabled:oe,acknowledgedBlocks:h.acknowledgedBlocks,onToggleAck:L,onRetry:lp,allowVoucherCodes:m,voucherUnavailable:S,voucherStatus:v,draftVoucherCode:b,appliedVoucher:x,voucherBanner:De,onVoucherDraftChange:it,onApplyVoucher:()=>{up()}}):null,k!==null?s("div",{class:"jex-magicline-error",role:"alert",children:k}):null,s("div",{class:"jex-magicline-wizard-nav",children:[ip?null:s("button",{type:"button",class:"jex-magicline-wizard-back",disabled:oe,onClick:sp,children:o.magiclineWizardBack}),s("button",{type:"button",class:"jex-form-submit jex-magicline-wizard-next",disabled:fp,onClick:dp,children:Ja?oe?o.magiclineSubmitting:o.magiclineSubmit:o.magiclineWizardNext})]})]})]})}function La({customerNumber:t}){const e=j();return s("div",{class:"jex-inline-form-submitted",children:[s("span",{class:"jex-inline-form-check",children:"✓"}),s("div",{children:[s("div",{class:"jex-inline-form-submitted-title",children:e.magiclineContractSuccessTitle}),s("div",{class:"jex-inline-form-submitted-detail",children:e.magiclineContractSuccessDetail}),t!==null&&t!==""?s("div",{class:"jex-inline-form-submitted-detail",children:e.magiclineCustomerNumber.replace("{number}",t)}):null]})]})}function Oa({message:t}){const e=j();return s("div",{class:"jex-inline-form-submitted jex-magicline-failed",children:[s("span",{class:"jex-inline-form-check jex-magicline-failed-icon",children:"!"}),s("div",{children:[s("div",{class:"jex-inline-form-submitted-title",children:e.magiclineFailed}),s("div",{class:"jex-inline-form-submitted-detail",children:t})]})]})}function hh({offersState:t,selectedTermId:e,widgetLocale:n,disabled:r,error:i,onSelect:o,onRetry:a}){const l=j();if(t.phase==="loading")return s("div",{class:"jex-magicline-slots-hint","aria-live":"polite",children:l.magiclineOffersLoading});if(t.phase==="error")return s("div",{class:"jex-magicline-slots-error",children:[s("div",{class:"jex-magicline-slots-hint",role:"alert","aria-live":"polite",children:l.magiclineOffersError}),s("button",{type:"button",class:"jex-magicline-retry",disabled:r,onClick:a,children:l.magiclineRetry})]});if(t.phase==="empty")return s("div",{class:"jex-magicline-slots-hint",role:"alert","aria-live":"polite",children:l.magiclineNoOffers});const c=_h(t.terms);return s(O,{children:[s("div",{class:"jex-magicline-radio-group",role:"radiogroup","aria-label":l.magiclineStepOffer,children:c.map(u=>s("div",{class:"jex-magicline-offer-group",children:[s("div",{class:"jex-magicline-offer-bundle-name",children:u.bundleName}),u.bundleDescription!==null?s("div",{class:"jex-magicline-offer-bundle-desc",children:u.bundleDescription}):null,u.terms.map(h=>s(ph,{term:h,checked:e===h.termId,widgetLocale:n,disabled:r,onSelect:o},h.termId)),s(fh,{subDescription:u.bundleSubDescription,footnote:u.footnote})]},u.bundleId))}),i!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:i}):null]})}function ph({term:t,checked:e,widgetLocale:n,disabled:r,onSelect:i}){const o=j(),a=Un(t.termValue,t.termUnit,n),l=_e(t.price,t.currencyCode,n),c=t.flatFees.find(h=>h.isStarterPackage),u=t.flatFees.filter(h=>!h.isStarterPackage);return s("label",{class:e?"jex-magicline-radio-card jex-magicline-radio-card-active":"jex-magicline-radio-card",children:[s("input",{type:"radio",name:"jex-ml-offer",checked:e,disabled:r,onChange:()=>{i(t.termId)}}),s("span",{class:"jex-magicline-offer-term",children:[s("span",{class:"jex-magicline-offer-term-head",children:[s("span",{class:"jex-magicline-offer-term-length",children:a}),s("span",{class:"jex-magicline-offer-term-price",children:[l," ",Gr(t.paymentFrequency.value,t.paymentFrequency.unit,n)]})]}),t.cancellationPeriod!==null?s("span",{class:"jex-magicline-offer-term-note",children:[o.magiclineCancellationPeriod,":"," ",Un(t.cancellationPeriod.value,t.cancellationPeriod.unit,n)]}):null,c!==void 0?s("span",{class:"jex-magicline-offer-term-note",children:[o.magiclineStarterPackage,":"," ",_e(c.price,t.currencyCode,n)]}):null,u.map(h=>s("span",{class:"jex-magicline-offer-term-note",children:[$a(h.name,o),": ",_e(h.price,t.currencyCode,n)]},h.name)),t.includedModuleNames.length>0?s("span",{class:"jex-magicline-offer-term-note",children:[o.magiclineIncludedModules,": ",t.includedModuleNames.join(", ")]}):null]})]})}function fh({subDescription:t,footnote:e}){const n=j(),r=kh(t),i=e!==null&&e.trim()!=="";return r.length===0&&!i?null:s("details",{class:"jex-magicline-bundle-details",children:[s("summary",{class:"jex-magicline-bundle-details-summary",children:n.magiclineDetails}),s("div",{class:"jex-magicline-bundle-details-body",children:[r.length>0?s("ul",{class:"jex-magicline-bundle-details-list",children:r.map((o,a)=>s("li",{children:o},`${a}-${o}`))}):null,i?s("p",{class:"jex-magicline-bundle-details-footnote",children:e}):null]})]})}function gh({modules:t,selectedModuleIds:e,acknowledgedBlocks:n,widgetLocale:r,disabled:i,error:o,onToggle:a,onAck:l}){const c=j();return t.length===0?s("div",{class:"jex-magicline-slots-hint",children:c.magiclineUpgradesNone}):s(O,{children:[s("div",{class:"jex-magicline-slots-hint",children:c.magiclineUpgradesIntro}),s("div",{class:"jex-magicline-upgrade-group",children:t.map(u=>s(mh,{module:u,selected:e.includes(u.id),consentChecked:u.consent!==null&&n[u.consent.ackKey]===!0,widgetLocale:r,disabled:i,onToggle:a,onAck:l},u.id))}),o!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:o}):null]})}function mh({module:t,selected:e,consentChecked:n,widgetLocale:r,disabled:i,onToggle:o,onAck:a}){const l=j(),c=Ld(t.price,t.currencyCode,t.paymentFrequencyType,t.recurringUnit,r),u=Bd(t.extensionType,t.termExtension,r),h=t.termLabel!==null&&t.termLabel!==""?t.termLabel:l.magiclineUpgradeOneTime,f=t.consent;return s("div",{class:e?"jex-magicline-upgrade-card jex-magicline-upgrade-card-active":"jex-magicline-upgrade-card",children:[s("label",{class:"jex-magicline-upgrade-head",children:[s("input",{type:"checkbox",checked:e,disabled:i,onChange:d=>{o(t.id,d.currentTarget.checked,f?.ackKey)}}),s("span",{class:"jex-magicline-upgrade-info",children:[s("span",{class:"jex-magicline-upgrade-name",children:t.name}),t.description!==null&&t.description!==""?s("span",{class:"jex-magicline-upgrade-desc",children:t.description}):null,s("span",{class:"jex-magicline-upgrade-price",children:c}),s("span",{class:"jex-magicline-upgrade-desc",children:h}),u!==""?s("span",{class:"jex-magicline-upgrade-desc",children:u}):null]}),s("span",{class:"jex-magicline-upgrade-status",children:e?l.magiclineUpgradeAdded:l.magiclineUpgradeAdd})]}),e&&f!==null?s(Jr,{ackKey:f.ackKey,title:f.title,text:f.text,attachmentLabel:f.attachmentLabel,attachmentUrl:f.attachmentUrl,checked:n,disabled:i,onToggle:a,showRequiredPill:!0}):null]})}function xh({personal:t,errors:e,disabled:n,setPersonal:r}){const i=j(),o=G(()=>Aa(),[]);return s(O,{children:[s("div",{class:"jex-magicline-row",children:[s(Ee,{label:i.magiclineFirstName,value:t.firstName,required:!0,disabled:n,error:e.firstName,fieldKey:"firstName",onInput:a=>{r("firstName",a)}}),s(Ee,{label:i.magiclineLastName,value:t.lastName,required:!0,disabled:n,error:e.lastName,fieldKey:"lastName",onInput:a=>{r("lastName",a)}})]}),s(Ee,{label:i.magiclineEmail,type:"email",value:t.email,required:!0,disabled:n,error:e.email,fieldKey:"email",onInput:a=>{r("email",a)}}),s("label",{class:"jex-magicline-field",children:[s("span",{class:"jex-magicline-field-label",children:i.magiclineBirthDate}),s("input",{class:"jex-form-input",type:"date","aria-label":i.magiclineBirthDate,value:t.dateOfBirth,max:o,required:!0,disabled:n,"aria-invalid":e.dateOfBirth!==void 0,onInput:a=>{r("dateOfBirth",a.currentTarget.value)}}),e.dateOfBirth!==void 0?s("span",{class:"jex-magicline-error",role:"alert",children:e.dateOfBirth}):null]}),s(wh,{label:i.magiclineGender,value:t.gender,required:!0,disabled:n,placeholder:i.magiclineGenderPlaceholder,error:e.gender,onChange:a=>{r("gender",a)},options:Pa.map(a=>({value:a,label:Sh(a,i)}))}),s(Ee,{label:i.magiclinePhone,type:"tel",value:t.phone,required:!0,disabled:n,error:e.phone,fieldKey:"phone",onInput:a=>{r("phone",a)}})]})}function vh({address:t,errors:e,disabled:n,setAddress:r}){const i=j();return s(O,{children:[s("div",{class:"jex-magicline-row",children:[s(Ee,{label:i.magiclineStreet,value:t.street,required:!0,disabled:n,error:e.street,fieldKey:"street",onInput:o=>{r("street",o)}}),s(Ee,{label:i.magiclineHouseNumber,value:t.houseNumber,required:!0,disabled:n,error:e.houseNumber,fieldKey:"houseNumber",onInput:o=>{r("houseNumber",o)}})]}),s("div",{class:"jex-magicline-row",children:[s(Ee,{label:i.magiclineZip,value:t.zipCode,required:!0,disabled:n,error:e.zipCode,fieldKey:"zipCode",onInput:o=>{r("zipCode",o)}}),s(Ee,{label:i.magiclineCity,value:t.city,required:!0,disabled:n,error:e.city,fieldKey:"city",onInput:o=>{r("city",o)}})]}),s("div",{class:"jex-magicline-field",children:[s("span",{class:"jex-magicline-field-label",children:i.magiclineCountry}),s("div",{class:"jex-magicline-static-value",children:i.magiclineCountryStatic})]})]})}function bh({formMessageId:t,fields:e,errors:n,privacyUrl:r,disabled:i,setAccountHolder:o,setIban:a,setConsent:l}){const c=j(),u=`jex-ml-privacy-${t}`,h=`jex-ml-sepa-${t}`;return s(O,{children:[s(Ee,{label:c.magiclineAccountHolder,value:e.payment.accountHolder,required:!0,disabled:i,error:n.accountHolder,fieldKey:"accountHolder",onInput:o}),s(Ee,{label:c.magiclineIban,value:e.payment.iban,required:!0,disabled:i,error:n.iban,fieldKey:"iban",onInput:a}),s("label",{class:"jex-magicline-consent",for:u,children:[s("input",{id:u,type:"checkbox",checked:e.consents.privacy,disabled:i,"aria-invalid":n.privacy!==void 0,onChange:f=>{l("privacy",f.currentTarget.checked)}}),s("span",{children:[c.magiclineConsent," ",s("a",{href:r,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:c.magiclinePrivacyLinkText}),"."]})]}),s("label",{class:"jex-magicline-consent",for:h,children:[s("input",{id:h,type:"checkbox",checked:e.consents.sepa,disabled:i,"aria-invalid":n.sepa!==void 0,onChange:f=>{l("sepa",f.currentTarget.checked)}}),s("span",{children:c.magiclineSepaConsent})]}),n.privacy!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:n.privacy}):null,n.sepa!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:n.sepa}):null]})}function yh({fields:t,term:e,previewState:n,widgetLocale:r,disabled:i,acknowledgedBlocks:o,onToggleAck:a,onRetry:l,allowVoucherCodes:c,voucherUnavailable:u,voucherStatus:h,draftVoucherCode:f,appliedVoucher:d,voucherBanner:p,onVoucherDraftChange:g,onApplyVoucher:y}){const m=j();if(n.phase==="loading"||n.phase==="idle")return s("div",{class:"jex-magicline-slots-hint","aria-live":"polite",children:m.magiclineReviewLoading});if(n.phase==="error")return s("div",{class:"jex-magicline-slots-error",children:[s("div",{class:"jex-magicline-slots-hint",role:"alert","aria-live":"polite",children:n.code==="offer_unavailable"?m.magiclineOfferUnavailableNotice:m.magiclineReviewError}),s("button",{type:"button",class:"jex-magicline-retry",disabled:i,onClick:l,children:m.magiclineRetry})]});const v=n.pricing,b=n.phase==="reloading",x=v.contractVolume,P=`${t.personal.firstName} ${t.personal.lastName}`.trim(),S=t.address,z=[`${S.street} ${S.houseNumber}`.trim(),`${S.zipCode} ${S.city}`.trim(),m.magiclineCountryStatic].filter(w=>w!=="").join(", "),W=e!==null?`${e.bundleName} · ${Un(e.termValue,e.termUnit,r)}`:"—",V=e!==null?e.textBlocks.filter(w=>w.isConfirmationRequired):[],le=e!==null?e.textBlocks.filter(w=>!w.isConfirmationRequired):[],L=e!==null?e.optionalModules.filter(w=>t.selectedModuleIds.includes(w.id)&&w.consent!==null).map(w=>({module:w,consent:w.consent})):[],Q=d!==null?d.textBlocks.filter(w=>w.ackKey.startsWith("voucher:")):[],ie=c&&!u;return s("div",{class:"jex-magicline-review-wrap",children:[s("div",{class:b?"jex-magicline-review-body jex-magicline-review-body--reloading":"jex-magicline-review-body","aria-busy":b,children:[s("dl",{class:"jex-magicline-summary",children:[s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineReviewOffer}),s("dd",{children:W})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineReviewBasePrice}),s("dd",{children:[d!==null&&d.voucherType==="DISCOUNT"?_e(d.discountedBasePrice,v.currencyCode,r):_e(v.basePrice,v.currencyCode,r)," ",Gr(v.paymentFrequency.value,v.paymentFrequency.unit,r)]})]}),d!==null&&d.voucherType==="DISCOUNT"?s("div",{class:"jex-magicline-summary-row jex-magicline-voucher-discount-row",children:[s("dt",{children:m.magiclineVoucherAppliedDiscount.replace("{discount}",Od(d.discountValue,d.discountType,v.currencyCode,r))}),s("dd",{})]}):null,d!==null&&d.remarks!==null&&d.remarks!==""?s("div",{class:"jex-magicline-summary-row jex-magicline-voucher-remarks-row",children:[s("dt",{children:m.magiclineVoucherRemarks}),s("dd",{children:d.remarks})]}):null,v.flatFees.map((w,Z)=>s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:$a(w.name,m)}),s("dd",{children:_e(w.price,v.currencyCode,r)})]},`${w.name}-${Z}`)),v.preUseCharge>0?s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineReviewPreUseCharge}),s("dd",{children:_e(v.preUseCharge,v.currencyCode,r)})]}):null]}),v.modules.length>0?s("dl",{class:"jex-magicline-summary jex-magicline-summary-section",children:[s("div",{class:"jex-magicline-summary-heading",children:m.magiclineReviewSelectedUpgrades}),v.modules.map((w,Z)=>s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:w.name}),s("dd",{children:_e(w.amount,w.currencyCode,r)})]},`${w.moduleId}-${Z}`))]}):null,x!==null&&x.total!==null?s("dl",{class:"jex-magicline-summary jex-magicline-summary-section jex-magicline-summary-totals",children:s("div",{class:"jex-magicline-summary-row jex-magicline-summary-total-row",children:[s("dt",{children:d!==null&&d.voucherType==="DISCOUNT"?m.magiclineGesamtpreisBeforeDiscount:m.magiclineReviewContractVolume}),s("dd",{children:_e(x.total,v.currencyCode,r)})]})}):null,d!==null&&d.voucherType==="CREDIT"?s("div",{class:"jex-magicline-voucher-credit-notice",role:"note",children:m.magiclineVoucherCreditNotice}):null,s("dl",{class:"jex-magicline-summary jex-magicline-summary-section",children:[s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineReviewStartsOn}),s("dd",{children:Nd(v.startDate,r)})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineSummaryName}),s("dd",{children:P!==""?P:"—"})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineSummaryAddress}),s("dd",{children:z})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineReviewPayment}),s("dd",{children:qd(t.payment.iban)})]})]}),ie?s("div",{class:"jex-magicline-voucher-section",children:[s("div",{class:"jex-magicline-field jex-magicline-voucher-field",children:[s("input",{class:"jex-form-input",type:"text","aria-label":m.magiclineVoucherLabel,placeholder:m.magiclineVoucherPlaceholder,value:f,disabled:i||h==="applying",onInput:w=>{g(w.currentTarget.value)}}),s("button",{type:"button",class:"jex-magicline-voucher-apply",disabled:i||h==="applying"||f.trim()==="",onClick:y,children:m.magiclineVoucherApply})]}),p!==null?s("div",{class:"jex-magicline-error",role:"alert",children:p}):null]}):null,L.length>0?s("div",{class:"jex-magicline-terms",role:"group","aria-label":m.magiclineReviewSelectedUpgrades,children:[s("div",{class:"jex-magicline-upgrades-recap-title",children:m.magiclineReviewSelectedUpgrades}),L.map(({module:w,consent:Z})=>s(za,{title:Z.title!==""?Z.title:w.name,text:Z.text,attachmentLabel:Z.attachmentLabel,attachmentUrl:Z.attachmentUrl},Z.ackKey))]}):null,V.length>0||le.length>0||Q.length>0?s("div",{class:"jex-magicline-terms",role:"group","aria-label":m.magiclineReviewTerms,children:[V.length>0||Q.length>0?s("div",{class:"jex-magicline-terms-prompt",children:[m.magiclineConfirmPrompt,s("span",{class:"jex-magicline-required-pill",children:m.magiclineRequired})]}):null,V.map(w=>s(Jr,{ackKey:w.ackKey,title:w.title,text:w.text,attachmentLabel:w.attachmentLabel,attachmentUrl:w.attachmentUrl,checked:o[w.ackKey]===!0,disabled:i,onToggle:a},w.ackKey)),Q.map(w=>s(Jr,{ackKey:w.ackKey,title:w.title,text:w.text,attachmentLabel:w.attachmentLabel,attachmentUrl:w.attachmentUrl,checked:o[w.ackKey]===!0,disabled:i,onToggle:a},w.ackKey)),le.map((w,Z)=>s(za,{title:w.title,text:w.text,attachmentLabel:w.attachmentLabel,attachmentUrl:w.attachmentUrl},`${w.title}-${Z}`))]}):null]}),b?s("div",{class:"jex-magicline-review-overlay","aria-hidden":"true",children:s("span",{class:"jex-magicline-review-spinner"})}):null]})}function Jr({ackKey:t,title:e,text:n,attachmentLabel:r,attachmentUrl:i,checked:o,disabled:a,onToggle:l,showRequiredPill:c=!1}){const u=j(),h=`jex-ml-ack-${t}`;return s("div",{class:"jex-magicline-consent-region",children:[c?s("span",{class:"jex-magicline-required-pill",children:u.magiclineRequired}):null,s("label",{class:"jex-magicline-consent",for:h,children:[s("input",{id:h,type:"checkbox",checked:o,disabled:a,onChange:f=>{l(t,f.currentTarget.checked)}}),s("span",{class:"jex-magicline-consent-body",children:[e!==""?s("span",{class:"jex-magicline-terms-title",children:e}):null,s("span",{class:"jex-magicline-terms-content",children:[n,i!==null?s(O,{children:[" ",s("a",{href:i,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:r!==null&&r!==""?r:i})]}):null]})]})]})]})}function za({title:t,text:e,attachmentLabel:n,attachmentUrl:r}){return s("div",{class:"jex-magicline-consent-recap",children:[t!==""?s("span",{class:"jex-magicline-terms-title",children:t}):null,s("span",{class:"jex-magicline-terms-content",children:[e,r!==null?s(O,{children:[" ",s("a",{href:r,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:n!==null&&n!==""?n:r})]}):null]})]})}function Ee({label:t,value:e,fieldKey:n,type:r="text",required:i=!1,disabled:o,error:a,onInput:l}){const c=a!==void 0?`jex-ml-err-${n}`:void 0;return s("div",{class:"jex-magicline-field",children:[s("input",{class:"jex-form-input",type:r,"aria-label":t,placeholder:t,value:e,required:i,disabled:o,"aria-invalid":a!==void 0,"aria-describedby":c,onInput:u=>{l(u.currentTarget.value)}}),a!==void 0?s("span",{id:c,class:"jex-magicline-error",role:"alert",children:a}):null]})}function wh({label:t,value:e,required:n,disabled:r,placeholder:i,error:o,options:a,onChange:l}){return s("div",{class:"jex-magicline-field",children:[s("select",{class:"jex-form-input jex-magicline-select","aria-label":t,value:e,required:n,disabled:r,"aria-invalid":o!==void 0,onChange:c=>{l(c.currentTarget.value)},children:[s("option",{value:"",disabled:n,children:i}),a.map(c=>s("option",{value:c.value,children:c.label},c.value))]}),o!==void 0?s("span",{class:"jex-magicline-error",role:"alert",children:o}):null]})}function kh(t){return t===null?[]:t.split(`
69
- `).map(e=>e.replace(/^\s*[-•]\s*/,"").trim()).filter(e=>e!=="")}function _h(t){const e=[],n=new Map;for(const r of t){let i=n.get(r.bundleId);i||(i={bundleId:r.bundleId,bundleName:r.bundleName,bundleDescription:r.bundleDescription,bundleSubDescription:r.bundleSubDescription,footnote:r.footnote,terms:[]},n.set(r.bundleId,i),e.push(i)),i.terms.push(r)}return e}function jh(t,e){switch(t){case"offer":return e.magiclineStepOffer;case"upgrades":return e.magiclineStepUpgrades;case"personal":return e.magiclineStepPersonal;case"address":return e.magiclineStepAddress;case"payment":return e.magiclineStepPayment;case"review":return e.magiclineStepReview;default:return""}}function Sh(t,e){return t==="MALE"?e.magiclineGenderMale:t==="FEMALE"?e.magiclineGenderFemale:e.magiclineGenderUnisex}function Ch({message:t,sessionId:e,visitorId:n}){const r=j(),i=t.magiclineForm,o=!!i&&i.status==="open"&&!!i.submissionId,a=wn(re.functions.magicline.public.getSubmissionStatus,o&&i?.submissionId?{sessionId:e,visitorId:n,submissionId:i.submissionId}:"skip");if(!i)return null;if(i.action==="contractCreation")return t.projectId?s(dh,{formMessageId:t._id,sessionId:e,visitorId:n,projectId:t.projectId,formStatus:i.status}):null;if(i.status==="submitted")return s("div",{class:"jex-inline-form-submitted",children:[s("span",{class:"jex-inline-form-check",children:"✓"}),s("div",{children:[s("div",{class:"jex-inline-form-submitted-title",children:r.magiclineTrialSuccessTitle}),s("div",{class:"jex-inline-form-submitted-detail",children:r.magiclineTrialSuccessDetail})]})]});if(i.status==="failed")return s("div",{class:"jex-inline-form-submitted jex-magicline-failed",children:[s("span",{class:"jex-inline-form-check jex-magicline-failed-icon",children:"!"}),s("div",{children:[s("div",{class:"jex-inline-form-submitted-title",children:r.magiclineFailed}),s("div",{class:"jex-inline-form-submitted-detail",children:r.magiclineFailedDetail})]})]});if(i.action!=="trialSessionBooking")return null;const l=a!=null&&a.errorCode==="slot_unavailable",c=o&&a===void 0;return s(Hd,{formMessageId:t._id,sessionId:e,visitorId:n,slotUnavailable:l,retryPending:c})}const Th={crawl:"🌐",file:"📄",snippet:"💡",qa:"❓"};function Rh({sources:t}){const e=j(),[n,r]=R(!1);return t.length===0?null:s("div",{class:"jex-sources-row",children:[s("button",{type:"button",class:"jex-sources-toggle",onClick:()=>{r(i=>!i)},"aria-expanded":n,children:[s("span",{class:"jex-sources-icon",children:"📖"}),s("span",{children:(t.length===1?e.sourcesCountOne:e.sourcesCountOther).replace("{count}",String(t.length))}),s("span",{class:`jex-sources-chevron${n?" jex-sources-chevron--open":""}`,children:"▾"})]}),n?s("div",{class:"jex-sources-pills",children:t.map((i,o)=>{const a=i.sourceType==="crawl",l=Ah(i),c=a&&i.url?`${i.title}
70
- ${i.url}`:i.title,u=s(O,{children:[typeof i.id=="number"?s("span",{class:"jex-source-id",children:i.id}):null,s("span",{class:"jex-source-type",children:Th[i.sourceType]}),s("span",{class:"jex-source-label",children:l}),s("span",{class:"jex-source-score",children:["· ",i.score.toFixed(2)]})]});return a&&i.url?s("a",{class:"jex-source-pill",href:i.url,target:"_blank",rel:"noopener noreferrer",title:c,children:u},o):s("span",{class:"jex-source-pill",title:c,children:u},o)})}):null]})}function Ah(t){if(t.sourceType==="crawl"&&t.url)try{const e=new URL(t.url);return!e.pathname||e.pathname==="/"?e.hostname:e.pathname}catch{}return t.title}function Ih(){return s("div",{class:"jex-typing",children:[s("span",{}),s("span",{}),s("span",{})]})}const Eh=/\s?\[\d+\]/g;function Ba(t){return t.replace(Eh,"")}function $h(t){return t?.at(-1)?._creationTime??0}function Ph({conversations:t,greeting:e,botName:n,starterQuestions:r,onPickStarter:i,sessionNotFound:o,resumeFailed:a,onStartFresh:l,sessionId:c,visitorId:u}){const h=j(),f=me(null),[d,p]=R(null),g=$h(t),y=Ca(),m=me(null);T(()=>{if(!u||!t)return;const x=t.at(-1);x&&x.role==="assistant"&&x.status!=="streaming"&&x._id!==m.current&&(m.current=x._id,Er(u))},[t,u]),T(()=>{f.current?.scrollIntoView({behavior:"smooth"})},[t?.length,t?.at(-1)?.content]);const v=c===null||t!==void 0&&t.length===0,b=r.length>0&&!o&&!a&&v;return s("div",{class:"jex-chat-messages",children:[s(_t,{text:e,botName:n}),b?s(yd,{questions:r,disabled:Mn.value,onPick:i}):null,o&&a&&l?s("div",{class:"jex-session-prompt",children:[s("div",{class:"jex-session-prompt-text",children:h.sessionNotFoundPrompt}),s("button",{class:"jex-session-prompt-btn",type:"button",onClick:()=>{l()},children:h.startNewConversation})]}):o?s("div",{class:"jex-session-notice",children:h.sessionNotFound}):null,t?.map(x=>{if(x.contentType==="human-notice"){const S=x.noticeKind==="agent-joined"?h.noticeAgentJoined.replace("{name}",x.noticeData?.agentName??""):x.noticeKind==="human-requested"?h.noticeHumanRequested:x.noticeKind==="human-requested-form"?h.noticeHumanRequestedForm:x.noticeKind==="message-received"?h.noticeMessageReceived:x.noticeKind==="agent-handling"?h.noticeAgentHandling:x.noticeKind==="ai-resumed"?h.noticeAiResumed:x.content;return s(_t,{text:S,botName:n},x._id)}if(x.contentType==="escalation-form"&&c&&u)return Fc.value==="screen"&&!x.formData?d===x._id?null:s("div",{class:"jex-inline-form jex-inline-form-card",children:[s("div",{class:"jex-inline-form-title",children:h.escalationPromptTitle}),s("div",{class:"jex-inline-form-subtitle",children:h.escalationPromptSubtitle}),s("button",{class:"jex-form-submit",type:"button",onClick:()=>{Oe({id:"escalation-form",formMessageId:x._id,sessionId:c,visitorId:u,waitingSetAt:g})},children:h.escalationPromptSubmit}),s("button",{class:"jex-escalation-skip",type:"button",onClick:()=>{y({formMessageId:x._id,sessionId:c,visitorId:u,waitingSetAt:g}),p(x._id)},children:h.escalationSkip})]},x._id):s(kd,{message:x,sessionId:c,visitorId:u,waitingSetAt:g},x._id);if(x.contentType==="magicline-form"&&c&&u)return s(Ch,{message:x,sessionId:c,visitorId:u},x._id);if(x.contentType==="escalation-confirm"){const S=x.noticeKind==="escalation-confirmed"?h.noticeEscalationConfirmed.replace("{name}",x.noticeData?.visitorName??"").replace("{email}",x.noticeData?.visitorEmail??"").replace("{ref}",x.noticeData?.visitorId??""):x.content;return s(_t,{text:S,botName:n},x._id)}if(x.role==="user")return s(wd,{text:x.content},x._id);const P={authorId:x.authorId,authorName:x.authorName,authorImage:x.authorImage};return x.status==="streaming"&&x.content===""?s(Ih,{},x._id):x.status==="streaming"?s(_t,{text:Ba(x.content),streaming:!0,botName:n,...P},x._id):x.status==="error"?s(_t,{text:x.errorMessage??`${h.somethingWentWrong}. ${h.tryAgain}.`,error:!0,botName:n,...P},x._id):s("div",{children:[s(_t,{text:Ba(x.content),botName:n,...P}),x.sources&&x.sources.length>0?s(Rh,{sources:x.sources}):null]},x._id)}),s("div",{ref:f})]})}function Mh(){const t=j();function e(){const n=Yt.peek();n&&(ia(),Oe({id:"escalation-form",formMessageId:n.formMessageId,sessionId:n.sessionId,visitorId:n.visitorId,waitingSetAt:n.waitingSetAt}))}return s("div",{class:"jex-waiting-card",role:"status","aria-live":"polite",children:[s("div",{class:"jex-waiting-indicator","aria-hidden":"true",children:[s("span",{class:"jex-waiting-dot"}),s("span",{class:"jex-waiting-ripple"})]}),s("div",{class:"jex-waiting-body",children:[s("div",{class:"jex-waiting-title",children:t.waitingTitle}),s("div",{class:"jex-waiting-subtitle",children:t.waitingSubtitle}),s("button",{class:"jex-waiting-leave-email",type:"button",onClick:e,children:t.waitingLeaveEmail})]})]})}function Da({message:t}){const[e,n]=R(!1);return T(()=>{const r=setTimeout(()=>{n(!0)},80);return()=>{clearTimeout(r)}},[]),e?s("div",{class:"jex-overlay jex-loading",children:[s("div",{class:"jex-loading-spinner","aria-hidden":"true"}),t&&s("p",{class:"jex-loading-message",children:t})]}):null}function qh({sessionId:t,visitorId:e}){const n=wn(re.functions.chat.public.conversations.listBySession,t&&e?{sessionId:t,visitorId:e}:"skip"),r=wn(re.functions.chat.public.sessions.getSessionStatus,t&&e?{sessionId:t,visitorId:e}:"skip"),i=t!==null&&n===void 0,o=n?.some(a=>a.status==="streaming")??!1;return{conversations:n,sessionStatus:r??null,isLoading:i,isStreaming:o}}function Nh(t){const e=j(),n=me(null),r=me(null),[i,o]=R(!1);T(()=>{try{n.current=document.title}catch{}},[]),T(()=>{if(!t||t.length===0)return;const a=t[t.length-1];if(r.current===null){r.current=a._id;return}if(a._id===r.current)return;r.current=a._id;const l=a.role!=="user";let c=!1;try{c=document.hidden}catch{}l&&c&&o(!0)},[t]),T(()=>{if(!i)return;let a=null,l=!1;const c=()=>{if(a!==null){try{clearInterval(a)}catch{}a=null}try{n.current!==null&&(document.title=n.current)}catch{}};try{a=setInterval(()=>{try{const u=`💬 ${e.newReplyTitle}`;document.title=l?n.current??"":u,l=!l}catch{c()}},1200)}catch{}return c},[i,e.newReplyTitle]),T(()=>{const a=()=>{try{document.hidden||o(!1)}catch{}};try{document.addEventListener("visibilitychange",a)}catch{}return()=>{try{document.removeEventListener("visibilitychange",a)}catch{}}},[])}function Lh({sessionId:t,visitorId:e}){const n=Ye(re.functions.chat.public.visitorPresence.heartbeat);T(()=>{if(!t||!e)return;let r=null;const i=()=>{n({sessionId:t,visitorId:e}).catch(()=>{})},o=()=>{r===null&&(r=setInterval(i,6e4))},a=()=>{r!==null&&(clearInterval(r),r=null)},l=()=>{document.visibilityState==="visible"?(i(),o()):a()};return l(),document.addEventListener("visibilitychange",l),()=>{document.removeEventListener("visibilitychange",l),a()}},[t,e,n])}function Oh(){return Ye(re.functions.chat.public.helpdesk.createEscalationRequest)}function Ua({sessionId:t,visitorId:e,ensureSession:n,onSkipForm:r}){const i=j(),o=Oh(),[a,l]=R(!1),[c,u]=R(null);async function h(){if(!a){l(!0),u(null);try{const f=t&&e?{sessionId:t,visitorId:e}:await n();if(!f)return;const d=Ve.value;if(!d)return;const p=await o({sessionId:f.sessionId,visitorId:f.visitorId,bootstrapToken:d,locale:Ae.value});if(p.skipForm){r?.();return}Oe({id:"escalation-form",formMessageId:p.formMessageId,sessionId:f.sessionId,visitorId:f.visitorId,waitingSetAt:p.waitingSetAt})}catch(f){const d=f instanceof Error?f.message:String(f);u(/RATE_LIMITED|Too many/.test(d)?i.handoffRateLimited:i.handoffFailed)}finally{l(!1)}}}return{requestHuman:h,busy:a,error:c}}function zh({greeting:t,botName:e,starterQuestions:n,sessionId:r,visitorId:i,isLoading:o,sessionNotFound:a,resumeFailed:l,isOrgDeleted:c,ensureSession:u,startFresh:h}){const f=j(),{conversations:d,sessionStatus:p,isLoading:g,isStreaming:y}=qh({sessionId:r,visitorId:i});Nh(d),Lh({sessionId:r,visitorId:i}),T(()=>{const S=Yt.peek();if(S===null||!d||d.length===0)return;const{waitingSetAt:z}=S;d.some(V=>V._creationTime>z&&(V.noticeKind==="agent-joined"||!!V.authorId))&&ia()},[d]);const m=ra({sessionId:r,visitorId:i,ensureSession:u}),v=me((()=>{const S=bt.peek();return S!==null?S:Ir.peek()&&fe.peek()!==null?"resume":"fresh"})()).current,{requestHuman:b,error:x}=Ua({sessionId:r,visitorId:i,ensureSession:u});return T(()=>{v==="escalate"&&b()},[v]),T(()=>{bt.value=null},[]),T(()=>{fe.peek()!==null&&u()},[u]),T(()=>{i&&Er(i)},[i]),c?s("div",{class:"jex-chat-messages",children:s("div",{class:"jex-session-notice",children:f.chatNoLongerAvailable})}):v==="resume"&&(!r||g)?s(Da,{message:f.resumeConversation}):s(O,{children:[s(Ph,{conversations:d,greeting:t,botName:e,starterQuestions:n,onPickStarter:S=>{m(S)},sessionNotFound:a,resumeFailed:l,onStartFresh:h,sessionId:r,visitorId:i}),Yt.value!==null&&s(Mh,{}),x&&s("div",{class:"jex-session-error-notice",role:"alert",style:{margin:"8px 16px 0"},children:x}),s(_u,{sessionId:r,visitorId:i,isLoading:o,isStreaming:y,sessionStatus:p,ensureSession:u,onStartFresh:h})]})}function Fa(t){return wn(re.functions.chat.public.availability.getOrgAvailability,t?{orgSlug:t}:"skip")}function Va(t){return t?.anyOnline?"online":t?.anyAway?"away":"offline"}function Bh({formMessageId:t,sessionId:e,visitorId:n,orgSlug:r}){const i=j(),o=Ht.value,a=/^https?:\/\//i.test(o)?o:Qt,[l,c]=R(""),[u,h]=R(""),f=Fa(r),d=f&&!f.anyOnline?i.escalationOfflineSubtitle:i.escalationSubtitle,p=Sa(),[g,y]=R(!1),[m,v]=R(null);async function b(x){x.preventDefault(),y(!0),v(null);try{await p({sessionId:e,visitorId:n,formMessageId:t,visitorName:l.trim(),visitorEmail:u.trim(),locale:Ae.value}),$r()}catch(P){console.error("[EscalationFormScreen] Submit failed:",P),v(i.escalationSubmitFailed)}finally{y(!1)}}return s("div",{class:"jex-form-screen",children:[s("h2",{class:"jex-form-title",children:i.escalationFormTitle}),s("p",{class:"jex-escalation-subtitle",children:d}),m&&s("div",{class:"jex-form-error",role:"alert",children:m}),s("form",{class:"jex-form",onSubmit:x=>{b(x)},children:[s("input",{class:"jex-form-input",type:"text",placeholder:i.escalationNameLabel,value:l,required:!0,onInput:x=>{c(x.currentTarget.value)}}),s("input",{class:"jex-form-input",type:"email",placeholder:i.escalationEmailLabel,value:u,required:!0,onInput:x=>{h(x.currentTarget.value)}}),s("button",{class:"jex-form-submit",type:"submit",disabled:g,children:i.escalationSubmit})]}),s("div",{class:"jex-inline-form-consent",style:{textAlign:"center",margin:"16px 0 8px 0"},children:[i.escalationConsent," ",s("a",{href:a,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:i.escalationPrivacyLinkText}),"."]})]})}function Qa({sessionId:t,visitorId:e,ensureSession:n,availability:r}){const i=j(),{requestHuman:o,busy:a,error:l}=Ua({sessionId:t,visitorId:e,ensureSession:n}),c=`jex-presence-dot--${Va(r)}`,u=r?r.anyOnline?i.handoffAvailable:i.handoffOffline:i.talkToHuman;return s(O,{children:[s("button",{class:"jex-header-handoff",type:"button",onClick:()=>{o()},disabled:a,"aria-label":i.talkToHumanAria,title:u,children:[s("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M3 14v-3a9 9 0 0 1 18 0v3"}),s("path",{d:"M21 14a2 2 0 0 1-2 2h-1a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h3z"}),s("path",{d:"M3 14a2 2 0 0 0 2 2h1a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1H3z"}),s("path",{d:"M21 14v3a4 4 0 0 1-4 4h-3"})]}),r!==void 0&&s("span",{class:`jex-presence-dot ${c}`,"aria-hidden":"true"})]}),l&&s("div",{class:"jex-handoff-error",role:"alert",children:l})]})}async function Dh(){const t=Mo.value;if(!t)return console.warn("[JexityChat] Bootstrap refresh skipped — inputs missing"),{ok:!1,reason:"no-inputs"};const e=await Sr(t.orgSlug,t.siteUrl,t.projSlug);if(!e.ok)return console.warn("[JexityChat] Bootstrap refresh failed:",e.error),{ok:!1,reason:e.error};const n=e.token;return Ve.value=n,{ok:!0,token:n}}function Ha(t){return Wa(t)?"unauthorized":t instanceof Error&&/network|fetch|failed to fetch/i.test(t.message)?"network":"unknown"}function Wa(t){return t instanceof fn?t.data?.code==="UNAUTHORIZED_ORIGIN":!1}function Uh(t=1e4){return Ve.value?Promise.resolve(Ve.value):new Promise(e=>{let n=!1;const r=a=>{n||(n=!0,clearTimeout(i),o(),e(a))},i=setTimeout(()=>{r(null)},t),o=Ve.subscribe(a=>{a&&r(a)})})}function Fh(t,e){const n=me(null),r=vt(!1),i=vt(!1),o=vt(!1),a=vt(null),l=Ye(re.functions.chat.public.sessions.createOrResume),c=async p=>{const g=await Uh();if(!g)return console.warn("[JexityChat] No bootstrap token after 10s — session creation blocked."),wt.value="no-token",null;const y=b=>({orgSlug:t,...e?{projSlug:e}:{},visitorId:p,bootstrapToken:b,locale:Ae.value,...An.value?{source:An.value}:{}});Mr.value=!0;let m;try{try{m=await l(y(g))}catch(b){if(!Wa(b))throw b;const x=await Dh();if(!x.ok)return wt.value=x.reason==="rate_limited"?"network":"unauthorized",null;m=await l(y(x.token))}}finally{Mr.value=!1}wt.value=null,a.value=m.status;const v={sessionId:m.sessionId,visitorId:p};return n.current=v,{session:v,result:m}},u=N(async()=>{if(n.current)return n.current;if(o.value)return null;r.value=!0;const p=fe.value!==null,g=fe.value??Uo();try{const y=await c(g);return y?(p&&y.result.isNew&&(i.value=!0,o.value=!0),y.session):null}catch(y){return console.error("[JexityChat] Failed to create session:",y),wt.value=Ha(y),null}finally{r.value=!1}},[t,e,l,r,i,o]),h=N(()=>{n.current=null,i.value=!1,o.value=!1,ta()},[i,o]);T(()=>Qc(h),[h]);const f=N(async()=>{n.current=null,o.value=!1,i.value=!1,ta();const p=Uo();r.value=!0;try{return(await c(p))?.session??null}catch(g){return console.error("[JexityChat] Failed to create fresh session:",g),wt.value=Ha(g),null}finally{r.value=!1}},[t,e,l,r,i,o,a]),d=n.current;return{sessionId:d?.sessionId??null,visitorId:d?.visitorId??null,isLoading:r.value,sessionNotFound:i.value,resumeFailed:o.value,sessionStatus:a.value,isOrgDeleted:a.value==="org_deleted",ensureSession:u,startFresh:f,resetSession:h}}function Vh({botName:t,availability:e,onResetSession:n}){const r=j(),[i,o]=R(""),a=e?.anyOnline===!0,l=Va(e);function c(){En(),bt.value="escalate",n(),Fo(),Oe({id:"chat"})}function u(){En(),bt.value="fresh",n(),Fo(),Oe({id:"chat"})}function h(d){En(),bt.value="resume",n(),Vo(d),Oe({id:"chat"})}function f(d){d.preventDefault();const p=i.trim().toUpperCase();p&&(En(),bt.value="resume",n(),Vo(p),Oe({id:"chat"}))}return s("div",{class:"jex-home",children:[Kt.value&&s("div",{class:"jex-session-prompt",role:"status",children:s("div",{class:"jex-session-prompt-text",children:r.sessionLocked})}),s("button",{class:"jex-home-hero",type:"button",onClick:c,"aria-label":r.talkToHumanAria,title:e?a?r.handoffAvailable:r.handoffOffline:r.talkToHuman,children:[s("div",{class:"jex-home-avatar",children:[s(Jo,{size:24}),e!==void 0&&s("span",{class:`jex-home-status-dot jex-home-status-dot--${l}`,"aria-hidden":"true"})]}),s("div",{class:"jex-home-hero-text",children:[s("h2",{class:"jex-home-title",children:t}),s("span",{class:"jex-home-status",children:[e===void 0?r.homeStatusOffline:a?r.homeStatusOnline:r.homeStatusOffline," | ",r.talkToHuman]})]})]}),s("div",{class:"jex-home-actions",children:[ne.value.length>0&&s(O,{children:[s("span",{class:"jex-home-section-label",children:r.pickUpWhereLeftOff}),s("div",{class:"jex-home-history",children:ne.value.slice().reverse().map(d=>s("button",{class:"jex-home-resume-card",onClick:()=>{h(d.ref)},children:[s("div",{class:"jex-home-resume-top",children:[s("span",{class:"jex-home-resume-label",children:r.resumeListLabel}),s("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",class:"jex-home-resume-arrow",children:s("path",{d:"M6 3l5 5-5 5",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})})]}),s("span",{class:"jex-home-resume-ref",children:d.ref}),s("span",{class:"jex-home-resume-meta",children:r.resumeListTimestamp.replace("{minutes}",String(Math.max(1,Math.round((Date.now()-d.lastActivityAt)/6e4))))})]},d.ref))})]}),s("button",{class:"jex-home-new-btn",onClick:u,children:ne.value.length>0?r.startNewConversation:r.chatWith})]}),s("div",{class:"jex-home-lookup-section",children:[s("span",{class:"jex-home-lookup-label",children:r.haveReferenceNumber}),s("form",{class:"jex-home-lookup",onSubmit:f,children:[s("input",{class:"jex-home-lookup-input",type:"text",placeholder:r.referencePlaceholder,value:i,onInput:d=>{o(d.currentTarget.value)}}),s("button",{class:"jex-home-lookup-submit",type:"submit",disabled:!i.trim(),children:r.resume})]})]})]})}function Qh({title:t}){const e=j();return s("div",{class:"jex-selection",children:[s("h2",{class:"jex-selection-title",children:e.howCanWeHelp}),s("div",{class:"jex-selection-options",children:[s("button",{class:"jex-selection-option",onClick:()=>Oe({id:"chat"}),children:[s("span",{class:"jex-selection-icon",children:"💬"}),s("span",{class:"jex-selection-label",children:e.chatWith.replace("{title}",t)}),s("span",{class:"jex-selection-sub",children:e.getInstantHelp})]}),s("button",{class:"jex-selection-option",onClick:()=>Oe({id:"form"}),children:[s("span",{class:"jex-selection-icon",children:"📝"}),s("span",{class:"jex-selection-label",children:e.submitTicket}),s("span",{class:"jex-selection-sub",children:e.replyByEmail})]})]})]})}function Hh(){const t=j(),[e,n]=R(""),[r,i]=R(""),[o,a]=R("");async function l(c){c.preventDefault(),Pr({id:"loading",message:t.submittingTicket}),await new Promise(h=>{setTimeout(h,1200)});const u="JEX-"+Math.random().toString(36).slice(2,8).toUpperCase();Pr({id:"confirmation",ref:u})}return s("div",{class:"jex-form-screen",children:[s("h2",{class:"jex-form-title",children:t.submitTicket}),s("form",{class:"jex-form",onSubmit:c=>{l(c)},children:[s("input",{class:"jex-form-input",type:"text",placeholder:t.yourName,value:e,required:!0,onInput:c=>{n(c.currentTarget.value)}}),s("input",{class:"jex-form-input",type:"email",placeholder:t.yourEmail,value:r,required:!0,onInput:c=>{i(c.currentTarget.value)}}),s("textarea",{class:"jex-form-textarea",placeholder:t.howCanWeHelp,value:o,required:!0,onInput:c=>{a(c.currentTarget.value)}}),s("button",{class:"jex-form-submit",type:"submit",children:t.submit})]})]})}function Wh({ticketRef:t}){const e=j();return s("div",{class:"jex-confirmation",children:[s("div",{class:"jex-confirmation-icon","aria-hidden":"true",children:"✓"}),s("h2",{class:"jex-confirmation-title",children:e.ticketSubmitted}),s("p",{class:"jex-confirmation-body",children:e.yourReferenceNumber}),s("div",{class:"jex-confirmation-ref",children:t}),s("p",{class:"jex-confirmation-hint",children:e.sentToEmailHint}),s("button",{class:"jex-confirmation-done",onClick:()=>{F.value=!1},children:e.done})]})}function Kh({message:t,onRetry:e,onBack:n}){const r=j();return s("div",{class:"jex-overlay jex-error",children:[s("p",{class:"jex-error-message",children:t}),s("div",{class:"jex-error-actions",children:[e&&s("button",{class:"jex-error-retry",onClick:e,children:r.tryAgain}),n&&s("button",{class:"jex-error-back",onClick:n,children:r.goBack})]})]})}function Ka({greeting:t,starterQuestions:e,title:n,botName:r,orgSlug:i,availability:o,sessionId:a,visitorId:l,isLoading:c,sessionNotFound:u,resumeFailed:h,isOrgDeleted:f,ensureSession:d,startFresh:p,resetSession:g}){const y=ue.value,m=y[y.length-1],v=[...y].reverse().find(b=>b.id==="confirmation");return s("div",{class:"jex-screen-container",children:[m.id==="home"&&s(Vh,{botName:r,availability:o,onResetSession:g}),m.id==="selection"&&s(Qh,{title:n}),m.id==="form"&&s(Hh,{}),m.id==="escalation-form"&&s(Bh,{formMessageId:m.formMessageId,sessionId:m.sessionId,visitorId:m.visitorId,orgSlug:i,waitingSetAt:m.waitingSetAt}),m.id==="confirmation"&&v&&s(Wh,{ticketRef:v.ref}),m.id==="chat"&&s(zh,{greeting:t,botName:r,starterQuestions:e,sessionId:a,visitorId:l,isLoading:c,sessionNotFound:u,resumeFailed:h,isOrgDeleted:f,ensureSession:d,startFresh:p}),m.id==="loading"&&s(Da,{message:m.message}),m.id==="error"&&s(Kh,{message:m.message,onRetry:()=>Pr({id:"loading"}),onBack:$r})]})}function Gh({options:t}){return Tc({orgSlug:t.orgSlug,projSlug:t.projSlug,preToken:t.bootstrapToken,convexUrl:t.convexUrl,preAllowedUrls:t.allowedUrls??[],preExcludedPaths:t.excludePaths}),Ic()?s(Jh,{options:t}):null}function Jh({options:t}){const e=Sc(t.orgSlug,t.projSlug,t.convexUrl);qc(t.parentOrigin),T(()=>(Bc(),Uc(),()=>{Ar.value=!1}),[]);const{sessionId:n,visitorId:r,isLoading:i,sessionNotFound:o,resumeFailed:a,isOrgDeleted:l,ensureSession:c,startFresh:u,resetSession:h}=Fh(t.orgSlug,t.projSlug),f=Fa(t.orgSlug),d=wc(t,e.config),p=Qe.value,g=Ar.value,y=e.config!==null||p!==void 0||e.settled,m=e.config!==null?d.sessionTimeoutMs:p!==void 0?p:d.sessionTimeoutMs;T(()=>{Ae.value=Lo(d.locale)},[d.locale]),T(()=>{Ht.value=d.privacyPolicyUrl??Qt,wr.value=d.privacyNoticeStyle},[d.privacyNoticeStyle,d.privacyPolicyUrl]),T(()=>{if(!F.value||d.mode==="embedded"||!window.matchMedia("(max-width: 480px), (pointer: coarse) and (max-width: 768px)").matches)return;const ie=document.documentElement.style.overflow;return document.documentElement.style.overflow="hidden",()=>{document.documentElement.style.overflow=ie}},[F.value,d.mode]),T(()=>{if(g&&y&&d.mode!=="embedded"&&m!==null)try{return Wc(m)}catch(Q){console.warn("[JexityChat] Idle-lock watcher failed to start:",Q);return}},[g,d.mode,y,m]),T(()=>{if(!g||!y)return;const{activeRefPruned:Q}=Dc(m);Q&&Nr()},[g,y,m]);const v=d.position==="bottom-left",b=d.colorScheme==="dark"||d.colorScheme==="light"?d.colorScheme:"",x=Kc({...t,primaryColor:d.primaryColor,accentColor:d.accentColor,fontFamily:d.fontFamily,fontSize:d.fontSize,borderRadius:d.borderRadius,windowWidth:d.windowWidth,windowHeight:d.windowHeight}),P=d.mode==="embedded",S=ue.value,W=S[S.length-1]?.id==="chat",V=e.config!==null||P||!!t.parentOrigin,le=V?x:{...x,visibility:"hidden"},L=iu(t.orgSlug,t.projSlug);return T(()=>{if(P||!V||d.proactiveMode==="off"||Yo(L))return;const Q=window.setTimeout(()=>{const ie=au({mode:d.proactiveMode,isOpen:F.peek(),hasHistory:Ir.peek(),dismissed:Yo(L)});ie==="teaser"?Pn.value=!0:ie==="open"&&(F.value=!0)},d.proactiveDelaySeconds*1e3);return()=>{window.clearTimeout(Q)}},[P,V,d.proactiveMode,d.proactiveDelaySeconds,L]),s("div",{class:`jex-widget ${b}`.trim(),style:le,children:P?s("div",{class:"jex-embedded",children:[s(Ko,{title:d.title,rightAction:W?s(Qa,{sessionId:n,visitorId:r,ensureSession:c,availability:f}):null,showClose:!P}),s(Ka,{greeting:d.greeting,starterQuestions:d.starterQuestions,title:d.title,botName:d.botName,orgSlug:t.orgSlug,projSlug:t.projSlug,availability:f,sessionId:n,visitorId:r,isLoading:i,sessionNotFound:o,resumeFailed:a,isOrgDeleted:l,ensureSession:c,startFresh:u,resetSession:h}),!d.hideBranding&&s(Go,{})]}):s("div",{class:`jex-container${v?" jex-pos-left":""}`,children:[F.value&&s("div",{class:"jex-chat-window",children:[s(Ko,{title:d.title,rightAction:W?s(Qa,{sessionId:n,visitorId:r,ensureSession:c,availability:f}):null}),s(Ka,{greeting:d.greeting,starterQuestions:d.starterQuestions,title:d.title,botName:d.botName,orgSlug:t.orgSlug,projSlug:t.projSlug,availability:f,sessionId:n,visitorId:r,isLoading:i,sessionNotFound:o,resumeFailed:a,isOrgDeleted:l,ensureSession:c,startFresh:u,resetSession:h}),!d.hideBranding&&s(Go,{})]}),Pn.value&&!F.value&&s(su,{title:d.title,message:d.greeting,guardKey:L}),s(ru,{iconOption:d.triggerIcon,radius:d.triggerRadius,label:d.triggerLabel})]})})}const Yh=`.jex-widget{--jex-primary: #115A62;--jex-primary-hover: var(--jex-accent, color-mix(in srgb, var(--jex-primary) 85%, #000));--jex-radius: .75rem;--jex-font-family: "Inter", system-ui, -apple-system, sans-serif;--jex-font-size: 14px;--jex-window-width: 380px;--jex-window-height: 600px;--jex-shadow: 0 16px 48px -12px rgba(13, 127, 138, .25), 0 4px 16px rgba(0, 0, 0, .08);pointer-events:auto;--jex-bg-trigger: var(--jex-primary);--jex-bg-header: var(--jex-primary);--jex-bg-msg-user: var(--jex-primary);--jex-bg-send-btn: var(--jex-primary);--jex-bg-window: rgba(255, 255, 255, .95);--jex-bg-msg-bot: #f1f5f9;--jex-bg-input: rgba(247, 253, 253, .6);--jex-text-header: #ffffff;--jex-text-msg-user: #ffffff;--jex-text-msg-bot: #0f172a;--jex-text-main: #0f172a;--jex-text-muted: #64748b;--jex-bg-avatar-agent: #d1fae5;--jex-text-avatar-agent: #065f46;--jex-border-window: rgba(226, 232, 240, .8);--jex-border-input: rgba(203, 213, 225, .8);--jex-bg-glass: var(--jex-bg-window);--jex-border-glass: var(--jex-border-window);font-family:var(--jex-font-family);-webkit-font-smoothing:antialiased}.dark .jex-widget,.jex-widget.dark{--jex-primary: #1cb0bf;--jex-primary-hover: var(--jex-accent, color-mix(in srgb, var(--jex-primary) 85%, #000));--jex-bg-window: rgba(10, 15, 26, .95);--jex-bg-msg-bot: #233146;--jex-bg-input: rgba(10, 15, 26, .6);--jex-text-msg-bot: #f8fafc;--jex-text-main: #f8fafc;--jex-text-muted: #94a3b8;--jex-border-window: rgba(30, 41, 59, .8);--jex-border-input: rgba(51, 65, 85, .9);--jex-bg-avatar-agent: #064e3b;--jex-text-avatar-agent: #6ee7b7;--jex-bg-error: #3b1318;--jex-border-error: #5c1d24;--jex-text-error: #fca5a5}@media(prefers-color-scheme:dark){:host:not(.light) .jex-widget:not(.light){--jex-primary: #1cb0bf;--jex-primary-hover: var(--jex-accent, color-mix(in srgb, var(--jex-primary) 85%, #000));--jex-bg-window: rgba(10, 15, 26, .95);--jex-bg-msg-bot: #233146;--jex-bg-input: rgba(10, 15, 26, .6);--jex-text-msg-bot: #f8fafc;--jex-text-main: #f8fafc;--jex-text-muted: #94a3b8;--jex-border-window: rgba(30, 41, 59, .8);--jex-border-input: rgba(51, 65, 85, .9);--jex-bg-error: #3b1318;--jex-border-error: #5c1d24;--jex-text-error: #fca5a5}}.jex-widget *{box-sizing:border-box;margin:0;padding:0}.jex-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;align-items:flex-end;gap:16px;z-index:9999}.jex-container.jex-pos-left{right:auto;left:24px;align-items:flex-start}:host(.jex-mode-embedded){display:block;width:100%;height:100%}:host(.jex-mode-embedded) .jex-widget{width:100%;height:100%}.jex-embedded{display:flex;flex-direction:column;width:100%;height:100%;background:var(--jex-bg-window);border:1px solid var(--jex-border-window);overflow:hidden}.jex-embedded .jex-screen-container{flex:1;overflow:hidden;display:flex;flex-direction:column}.jex-floating-button{height:56px;min-width:56px;padding:0;background:var(--jex-bg-trigger);color:var(--jex-text-header);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--jex-shadow);transition:transform .3s cubic-bezier(.175,.885,.32,1.275),background .2s,width .3s ease,border-radius .3s ease}.jex-floating-button.jex-has-label{min-width:110px;padding:0 20px}.jex-fab-inner{display:flex;align-items:center;gap:12px}.jex-fab-label{font-size:15px;font-weight:600;white-space:nowrap}.jex-floating-button:hover{transform:scale(1.1);background:var(--jex-primary-hover)}.jex-floating-button:active{transform:scale(.95)}.jex-fab-pulse{animation:jex-fab-pulse 2.4s ease-out infinite}@keyframes jex-fab-pulse{0%{box-shadow:var(--jex-shadow),0 0 color-mix(in srgb,var(--jex-bg-trigger) 50%,transparent)}70%{box-shadow:var(--jex-shadow),0 0 0 14px color-mix(in srgb,var(--jex-bg-trigger) 0%,transparent)}to{box-shadow:var(--jex-shadow),0 0 color-mix(in srgb,var(--jex-bg-trigger) 0%,transparent)}}@media(prefers-reduced-motion:reduce){.jex-fab-pulse{animation:none}}.jex-proactive-teaser{display:flex;align-items:flex-start;gap:10px;width:280px;max-width:calc(100vw - 48px);padding:12px 14px;align-self:flex-end;background:var(--jex-bg-window);color:var(--jex-text-main);border:1px solid var(--jex-border-window);border-radius:var(--jex-radius);box-shadow:var(--jex-shadow);cursor:pointer;text-align:left;animation:jex-teaser-in .22s ease-out}.jex-proactive-avatar{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9999px;background:var(--jex-bg-avatar-agent);color:var(--jex-text-avatar-agent)}.jex-proactive-body{display:flex;flex-direction:column;gap:2px;min-width:0}.jex-proactive-title{font-weight:600;font-size:13px;line-height:1.2}.jex-proactive-message{font-size:13px;line-height:1.35;color:var(--jex-text-muted)}.jex-proactive-dismiss{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:22px;height:22px;margin:-4px -4px 0 0;padding:0;border:none;background:transparent;color:var(--jex-text-muted);cursor:pointer;border-radius:9999px}.jex-proactive-dismiss:hover{background:var(--jex-bg-msg-bot)}@keyframes jex-teaser-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.jex-proactive-teaser{animation:none}}.jex-chat-window{width:var(--jex-window-width);height:var(--jex-window-height);max-height:calc(100vh - 120px);background:var(--jex-bg-window);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--jex-border-window);border-radius:calc(var(--jex-radius) * 2);box-shadow:var(--jex-shadow);display:flex;flex-direction:column;overflow:hidden;animation:jexSlideUp .4s cubic-bezier(.16,1,.3,1);transform-origin:bottom right;touch-action:manipulation}@keyframes jexSlideUp{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(max-width:480px),(pointer:coarse)and (max-width:768px){.jex-chat-window{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-height:none;border:none;border-radius:0;animation:jexSlideUpMobile .3s cubic-bezier(.16,1,.3,1);transform-origin:bottom center}.jex-container:has(.jex-chat-window) .jex-floating-button{display:none}}@keyframes jexSlideUpMobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.jex-chat-header{padding:14px 16px;background:var(--jex-bg-header);color:var(--jex-text-header);display:flex;align-items:center;gap:12px;flex-shrink:0}.jex-header-info h3{font-size:16px;font-weight:600;color:var(--jex-text-header);margin:0}.jex-header-info p{font-size:12px;opacity:.8;color:var(--jex-text-header);margin:0}.jex-header-right{margin-left:auto;display:flex;align-items:center;gap:4px}.jex-header-handoff{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid color-mix(in srgb,currentColor 50%,transparent);border-radius:999px;padding:0;color:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.jex-header-handoff:hover:not(:disabled){background:color-mix(in srgb,currentColor 12%,transparent);border-color:currentColor}.jex-header-handoff:disabled{opacity:.5;cursor:not-allowed}.jex-header-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:999px;padding:0;color:inherit;cursor:pointer;transition:background .15s ease}.jex-header-close:hover{background:color-mix(in srgb,currentColor 14%,transparent)}.jex-handoff-error{position:absolute;top:100%;right:8px;background:#fee;color:#b00;padding:4px 8px;font-size:12px;border-radius:4px}.jex-header-back{background:none;border:none;color:var(--jex-text-header);cursor:pointer;padding:4px;display:flex;align-items:center;opacity:.8;transition:opacity .2s;flex-shrink:0}.jex-header-back:hover{opacity:1}.jex-screen-container{flex:1;overflow:hidden;display:flex;flex-direction:column}.jex-home{flex:1;display:flex;flex-direction:column;padding:24px;gap:20px;overflow-y:auto}.jex-home-hero{display:flex;align-items:center;gap:14px;width:100%;padding:0;border:none;background:transparent;font-family:inherit;text-align:left;cursor:pointer;animation:jexFadeIn .4s ease both}.jex-home-hero:disabled{cursor:default;opacity:.7}.jex-home-avatar{position:relative;width:48px;height:48px;border-radius:14px;background:var(--jex-primary);color:var(--jex-text-header);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px color-mix(in srgb,var(--jex-primary) 30%,transparent)}.jex-home-status-dot{position:absolute;bottom:-2px;right:-2px;width:14px;height:14px;border-radius:50%;background:var(--jex-dot-color, #9ca3af);border:2.5px solid var(--jex-bg-window);animation:jexPulse 2s ease-in-out infinite}.jex-home-status-dot--online{--jex-dot-color: #10b981}.jex-home-status-dot--away{--jex-dot-color: #fbbf24}.jex-home-status-dot--offline{--jex-dot-color: #9ca3af}@keyframes jexPulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--jex-dot-color, #9ca3af) 40%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--jex-dot-color, #9ca3af) 0%,transparent)}}.jex-home-hero-text{display:flex;flex-direction:column;gap:2px;min-width:0}.jex-home-title{font-size:17px;font-weight:700;color:var(--jex-text-main);margin:0;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jex-home-status{font-size:13px;font-weight:500;color:var(--jex-text-muted);letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jex-home-section-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--jex-text-muted)}.jex-home-lookup-section{display:flex;flex-direction:column;gap:8px;margin-top:auto}.jex-home-lookup-label{font-size:12px;font-weight:500;color:var(--jex-text-muted)}.jex-home-greeting{background:var(--jex-bg-msg-bot);border:1px solid var(--jex-border-window);border-radius:4px 16px 16px;padding:16px 18px;font-size:14px;line-height:1.55;color:var(--jex-text-main);animation:jexFadeIn .4s .1s ease both}.jex-home-greeting p{margin:0}@keyframes jexFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.jex-home-actions{display:flex;flex-direction:column;gap:10px;animation:jexFadeIn .4s .2s ease both}.jex-home-start-btn{background:var(--jex-bg-send-btn);color:var(--jex-text-header);border:none;border-radius:12px;padding:14px 20px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s,transform .15s,box-shadow .2s;width:100%;box-shadow:0 2px 8px color-mix(in srgb,var(--jex-primary) 25%,transparent)}.jex-home-start-btn:hover{background:var(--jex-primary-hover);transform:translateY(-1px);box-shadow:0 4px 16px color-mix(in srgb,var(--jex-primary) 35%,transparent)}.jex-home-start-btn:active{transform:translateY(0);box-shadow:0 1px 4px color-mix(in srgb,var(--jex-primary) 20%,transparent)}.jex-home-resume-card{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;padding:16px 18px;border-radius:14px;border:1.5px solid var(--jex-primary);background:color-mix(in srgb,var(--jex-primary) 6%,var(--jex-bg-window));cursor:pointer;font-family:inherit;transition:background .2s,border-color .2s,transform .15s,box-shadow .2s;box-shadow:0 2px 8px color-mix(in srgb,var(--jex-primary) 12%,transparent)}.jex-home-resume-card:hover{background:color-mix(in srgb,var(--jex-primary) 10%,var(--jex-bg-window));transform:translateY(-1px);box-shadow:0 4px 16px color-mix(in srgb,var(--jex-primary) 20%,transparent)}.jex-home-resume-card:active{transform:translateY(0)}.jex-home-resume-top{display:flex;align-items:center;justify-content:space-between}.jex-home-resume-label{font-size:14px;font-weight:600;color:var(--jex-primary)}.jex-home-resume-arrow{color:var(--jex-primary);opacity:.6;transition:opacity .2s,transform .2s}.jex-home-resume-card:hover .jex-home-resume-arrow{opacity:1;transform:translate(2px)}.jex-home-resume-ref{font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--jex-text-muted)}.jex-home-history{display:flex;flex-direction:column;gap:8px}.jex-home-resume-meta{font-size:12px;color:var(--jex-text-muted);margin-top:4px}.jex-home-new-btn{background:transparent;color:var(--jex-text-muted);border:1px solid var(--jex-border-input);border-radius:12px;padding:12px 20px;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:color .2s,border-color .2s,background .2s;width:100%}.jex-home-new-btn:hover{color:var(--jex-text-main);border-color:var(--jex-text-muted);background:color-mix(in srgb,var(--jex-primary) 3%,transparent)}.jex-session-ref{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--jex-bg-msg-bot);border:1px solid var(--jex-border-window);border-radius:8px;font-size:12px}.jex-session-ref-label{color:var(--jex-text-muted);font-weight:500}.jex-session-ref-code{color:var(--jex-primary);font-weight:700;font-family:ui-monospace,Cascadia Code,monospace;letter-spacing:.05em}.jex-chat-messages{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.jex-message-row{display:flex;align-items:flex-end;gap:8px;max-width:85%}.jex-message-row.bot{align-self:flex-start;flex-direction:column;align-items:stretch;gap:6px;max-width:92%}.jex-message-head{display:flex;align-items:center;gap:8px;padding-left:2px}.jex-message-head .jex-avatar{margin-bottom:0}.jex-avatar{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;margin-bottom:2px}.jex-avatar-bot{background:var(--jex-bg-msg-bot);color:var(--jex-primary)}.jex-avatar-agent{background:var(--jex-bg-avatar-agent)}.jex-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.jex-avatar-initials{font-size:9px;font-weight:700;color:var(--jex-text-avatar-agent)}.jex-message-author{font-size:13px;font-weight:600;color:var(--jex-text-main);line-height:1.2}.jex-reply-tag-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--jex-text-muted, #6b7280);cursor:pointer;transition:background .15s,color .15s}.jex-reply-tag-btn:hover{background:#0000000f;color:var(--jex-primary, #115A62)}.jex-reply-tag-btn:focus-visible{outline:2px solid var(--jex-primary, #115A62);outline-offset:1px}.jex-message{padding:12px 16px;border-radius:18px;font-size:14px;line-height:1.4}.jex-message.bot{background:var(--jex-bg-msg-bot);border:1px solid var(--jex-border-window);color:var(--jex-text-msg-bot);border-radius:16px}.jex-message.user{align-self:flex-end;max-width:80%;background:var(--jex-bg-msg-user);color:var(--jex-text-msg-user);border-bottom-right-radius:4px}.jex-typing{align-self:flex-start;display:flex;gap:4px;padding:12px 16px}.jex-typing span{width:8px;height:8px;border-radius:50%;background:var(--jex-text-muted);animation:jexTypingDot 1.2s infinite ease-in-out}.jex-typing span:nth-child(2){animation-delay:.2s}.jex-typing span:nth-child(3){animation-delay:.4s}@keyframes jexTypingDot{0%,80%,to{transform:scale(.8);opacity:.4}40%{transform:scale(1);opacity:1}}.jex-md{word-break:break-word;overflow-wrap:anywhere}.jex-md p{margin:0 0 8px}.jex-md p:last-child{margin-bottom:0}.jex-md strong{font-weight:600}.jex-md em{font-style:italic}.jex-md ul,.jex-md ol{margin:0 0 8px;padding-left:20px}.jex-md ul:last-child,.jex-md ol:last-child{margin-bottom:0}.jex-md ul{list-style-type:disc}.jex-md ol{list-style-type:decimal}.jex-md li{margin-bottom:2px}.jex-md li:last-child{margin-bottom:0}.jex-md a{color:var(--jex-primary);text-decoration:underline;text-underline-offset:2px}.jex-md a:hover{opacity:.8}.jex-md code{background:#00000014;padding:1px 5px;border-radius:4px;font-size:.9em;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.jex-md pre{background:#0000000f;border-radius:8px;padding:10px 12px;margin:0 0 8px;overflow-x:auto;font-size:.85em}.jex-md pre:last-child{margin-bottom:0}.jex-md pre code{background:none;padding:0;border-radius:0;font-size:inherit}.jex-md h1,.jex-md h2,.jex-md h3,.jex-md h4{font-weight:600;margin:8px 0 4px}.jex-md h1:first-child,.jex-md h2:first-child,.jex-md h3:first-child,.jex-md h4:first-child{margin-top:0}.jex-md h3{font-size:1em}.jex-md h4{font-size:.95em}.jex-md hr{border:none;border-top:1px solid var(--jex-border-window);margin:8px 0}.jex-md blockquote{border-left:3px solid var(--jex-primary);margin:0 0 8px;padding:4px 12px;color:var(--jex-text-muted)}.jex-md blockquote:last-child{margin-bottom:0}.dark .jex-md code,.jex-widget.dark .jex-md code{background:#ffffff1a}.dark .jex-md pre,.jex-widget.dark .jex-md pre{background:#ffffff14}@media(prefers-color-scheme:dark){:host:not(.light) .jex-widget:not(.light) .jex-md code{background:#ffffff1a}:host:not(.light) .jex-widget:not(.light) .jex-md pre{background:#ffffff14}}.jex-streaming-cursor:after{content:"◊";margin-left:2px;animation:jexBlinkCursor .8s ease-in-out infinite}@keyframes jexBlinkCursor{0%,to{opacity:1}50%{opacity:0}}.jex-session-notice{align-self:center;text-align:center;padding:8px 16px;margin:8px 0;font-size:12px;color:var(--jex-text-muted);background:var(--jex-bg-input, #f1f5f9);border-radius:8px;line-height:1.4}.jex-message-error{background:var(--jex-bg-error, #fef2f2)!important;border-color:var(--jex-border-error, #fecaca)!important;color:var(--jex-text-error, #991b1b)!important}.jex-chat-input{padding:12px 16px;border-top:1px solid var(--jex-border-window);display:flex;flex-direction:column;gap:8px;flex-shrink:0}.jex-chat-input-composer-gate{position:relative}.jex-chat-input-composer-gate-open{z-index:2}.jex-chat-input-composer-gate-open .jex-composer-card{pointer-events:none}.jex-composer-card{display:flex;flex-direction:column;gap:6px;padding:10px 12px 8px;background:var(--jex-bg-input);border:1px solid var(--jex-border-input);border-radius:16px;cursor:text;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.jex-composer-card:focus-within{border-color:var(--jex-primary);background:var(--jex-bg-window);box-shadow:0 0 0 3px color-mix(in srgb,var(--jex-primary, #115A62) 14%,transparent)}.jex-composer-attachments{display:flex;flex-wrap:wrap;gap:6px;padding:2px 2px 4px}.jex-attachment-chip{position:relative;width:44px;height:44px;border-radius:8px;overflow:hidden;background:var(--jex-bg-msg-bot, #f1f5f9);flex-shrink:0;box-shadow:0 1px 2px #0000000f}.jex-attachment-thumb{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.jex-attachment-remove{position:absolute;top:2px;right:2px;width:16px;height:16px;padding:0;border:none;border-radius:50%;background:#0f172ac7;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .12s ease,transform .12s ease}.jex-attachment-chip:hover .jex-attachment-remove,.jex-attachment-chip:focus-within .jex-attachment-remove{opacity:1}.jex-attachment-remove:hover{transform:scale(1.08)}.jex-composer-textarea{width:100%;min-height:22px;background:transparent;border:none;outline:none;resize:none;padding:2px 4px;color:var(--jex-text-main);font-family:inherit;font-size:16px;line-height:1.45;overflow-y:hidden}.jex-composer-textarea::placeholder{color:var(--jex-text-muted);opacity:.85}.jex-composer-textarea:disabled{cursor:not-allowed;opacity:.7}.jex-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.jex-composer-actions-left{display:inline-flex;align-items:center;gap:4px}.jex-attach-btn{width:30px;height:30px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--jex-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease}.jex-attach-btn:hover:not(:disabled){background:color-mix(in srgb,var(--jex-text-muted, #64748b) 12%,transparent);color:var(--jex-text-main)}.jex-attach-btn:active:not(:disabled){transform:scale(.92)}.jex-attach-btn:disabled{opacity:.4;cursor:not-allowed}.jex-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.jex-rate-limit-notice{flex:1 0 100%;order:-1;margin-bottom:8px;padding:8px 12px;border-radius:10px;background:var(--jex-bg-msg-bot, #f1f5f9);color:var(--jex-text-muted, #64748b);font-size:12px;line-height:1.4;text-align:center}.jex-session-error-notice{flex:1 0 100%;order:-1;margin-bottom:8px;padding:8px 12px;border-radius:10px;background:var(--jex-bg-error, #fef2f2);border:1px solid var(--jex-border-error, #fecaca);color:var(--jex-text-error, #991b1b);font-size:12px;line-height:1.4;text-align:center}.jex-chat-input input{flex:1;background:var(--jex-bg-input);border:1px solid var(--jex-border-input);border-radius:12px;padding:10px 14px;color:var(--jex-text-main);outline:none;font-family:inherit;font-size:14px}.jex-chat-input input:focus{border-color:var(--jex-primary)}.jex-send-btn{background:color-mix(in srgb,var(--jex-text-muted, #64748b) 18%,transparent);color:var(--jex-text-muted);border:none;border-radius:999px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,color .15s ease,opacity .15s ease,transform .15s ease;flex-shrink:0}.jex-send-btn-active{background:var(--jex-bg-send-btn, var(--jex-primary));color:var(--jex-text-header, #fff)}.jex-send-btn-active:hover:not(:disabled){background:var(--jex-primary-hover)}.jex-send-btn:active:not(:disabled){transform:scale(.9)}.jex-send-btn:disabled{opacity:.45;cursor:default}.jex-widget-footer{display:flex;align-items:center;justify-content:center;padding:8px 16px;border-top:1px solid var(--jex-border-glass);background:#00000005;flex-shrink:0}.jex-widget.dark .jex-widget-footer{background:#ffffff05}@media(prefers-color-scheme:dark){:host:not(.light) .jex-widget:not(.light) .jex-widget-footer{background:#ffffff05}}.jex-branding{display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--jex-text-muted);font-size:11px;font-weight:500;transition:color .2s}.jex-branding:hover{color:var(--jex-text-main)}.jex-branding-icon{color:var(--jex-primary)}.jex-branding span strong{font-weight:700;color:var(--jex-text-main)}.jex-privacy-notice-link,.jex-privacy-chip-link{color:var(--jex-primary);text-decoration:underline;text-underline-offset:2px;text-decoration-color:color-mix(in srgb,var(--jex-primary) 50%,transparent);transition:text-decoration-color .15s}.jex-privacy-notice-link:hover,.jex-privacy-chip-link:hover{text-decoration-color:var(--jex-primary)}.jex-privacy-chip{align-self:center;display:inline-flex;align-items:center;gap:6px;max-width:100%;margin:0;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--jex-primary) 10%,var(--jex-bg-window));color:var(--jex-primary);font-size:10px;font-weight:650;line-height:1.2}.jex-privacy-chip-icon{display:inline-flex;flex-shrink:0}.jex-privacy-chip-link{color:inherit;text-decoration:none}.jex-privacy-explicit{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;flex-direction:column;gap:10px;min-height:100%;padding:10px 12px 12px;border:1px solid var(--jex-border-window);border-radius:14px 14px 10px 10px;background:var(--jex-bg-window);box-shadow:0 -12px 36px #0f172a24;pointer-events:auto}.jex-privacy-explicit-content{display:flex;align-items:flex-start;gap:10px}.jex-privacy-explicit-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:8px;background:color-mix(in srgb,var(--jex-primary) 10%,var(--jex-bg-window));color:var(--jex-primary);flex-shrink:0}.jex-privacy-explicit-copy{min-width:0;flex:1}.jex-privacy-explicit-title{color:var(--jex-text-main);font-size:12px;font-weight:750;line-height:1.2;margin-bottom:3px}.jex-privacy-explicit-body{margin:0;color:var(--jex-text-muted);font-size:10px;line-height:1.35}.jex-privacy-explicit-button{width:100%;border:none;border-radius:10px;background:var(--jex-bg-send-btn);color:var(--jex-text-header);cursor:pointer;font-family:inherit;font-size:12px;font-weight:750;padding:9px 12px;transition:background .15s ease,transform .12s ease}.jex-privacy-explicit-button:hover{background:var(--jex-primary-hover)}.jex-privacy-explicit-button:active{transform:scale(.98)}.jex-locale-select-wrapper{position:relative;display:flex;align-items:center}.jex-locale-select{appearance:none;-webkit-appearance:none;background:transparent;border:1px solid transparent;padding:4px 20px 4px 6px;border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;color:var(--jex-text-muted);background-color:transparent;cursor:pointer;outline:none;transition:all .2s ease}.jex-locale-select option{background-color:#fff;color:#0f172a}.jex-locale-select:hover,.jex-locale-select:focus-visible{color:var(--jex-text-main);background:#0000000a}.jex-widget.dark .jex-locale-select:hover,.jex-widget.dark .jex-locale-select:focus-visible{background:#ffffff0d}.jex-widget.dark .jex-locale-select option{background-color:#0f172a;color:#f8fafc}@media(prefers-color-scheme:dark){:host:not(.light) .jex-widget:not(.light) .jex-locale-select:hover,:host:not(.light) .jex-widget:not(.light) .jex-locale-select:focus-visible{background:#ffffff0d}:host:not(.light) .jex-widget:not(.light) .jex-locale-select option{background-color:#0f172a;color:#f8fafc}}.jex-locale-select:focus-visible{border-color:var(--jex-primary)}.jex-locale-chevron{position:absolute;right:4px;pointer-events:none;color:var(--jex-text-muted);transition:color .2s ease}.jex-locale-select-wrapper:hover .jex-locale-chevron{color:var(--jex-text-main)}.jex-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--jex-bg-window, #fff);z-index:10;padding:24px;text-align:center}.jex-loading-spinner{width:32px;height:32px;border:3px solid var(--jex-border-input, #e2e8f0);border-top-color:var(--jex-primary, #115A62);border-radius:50%;animation:jex-spin .7s linear infinite}@keyframes jex-spin{to{transform:rotate(360deg)}}.jex-loading-message{font-size:14px;color:var(--jex-text-muted, #64748b)}.jex-error-message{font-size:14px;color:var(--jex-text-main, #334155)}.jex-error-actions{display:flex;gap:8px}.jex-error-retry,.jex-error-back{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none}.jex-error-retry{background:var(--jex-primary, #115A62);color:#fff}.jex-error-back{background:transparent;color:var(--jex-text-muted, #64748b);border:1px solid var(--jex-border-input, #e2e8f0)}.jex-selection{display:flex;flex-direction:column;gap:12px;padding:24px 16px;height:100%}.jex-selection-title{font-size:16px;font-weight:700;color:var(--jex-text-main, #0f172a);margin:0 0 8px}.jex-selection-options{display:flex;flex-direction:column;gap:10px}.jex-selection-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:16px;border-radius:12px;border:1px solid var(--jex-border-window, #e2e8f0);background:transparent;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.jex-selection-option:hover{border-color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 5%,transparent)}.jex-selection-icon{font-size:20px}.jex-selection-label{font-size:14px;font-weight:600;color:var(--jex-text-main, #0f172a)}.jex-selection-sub{font-size:12px;color:var(--jex-text-muted, #64748b)}.jex-form-screen{display:flex;flex-direction:column;padding:20px 16px;height:100%;overflow-y:auto}.jex-form-title{font-size:16px;font-weight:700;color:var(--jex-text-main, #0f172a);margin:0 0 16px}.jex-form{display:flex;flex-direction:column;gap:10px}.jex-form-input,.jex-form-textarea{padding:10px 12px;border-radius:8px;border:1px solid var(--jex-border-input, #e2e8f0);font-size:14px;background:transparent;color:var(--jex-text-main, #0f172a);outline:none}@media(pointer:coarse){.jex-form-input,.jex-form-textarea{font-size:16px}}.jex-form-input:focus,.jex-form-textarea:focus{border-color:var(--jex-primary, #115A62)}.jex-form-textarea{min-height:80px;resize:vertical}.jex-form-submit{padding:10px;border-radius:8px;border:none;background:var(--jex-primary, #115A62);color:#fff;font-size:14px;font-weight:600;cursor:pointer;margin-top:4px}.jex-inline-form{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--jex-bg-msg-bot, #f1f5f9);border:1px solid var(--jex-border-input, #e2e8f0);border-radius:var(--jex-radius, .75rem);width:100%}.jex-inline-form-title{font-weight:600;font-size:15px;color:var(--jex-text-main, #0f172a);margin:0}.jex-inline-form-subtitle{font-size:13px;color:var(--jex-text-muted, #64748b);line-height:1.4;margin:0 0 4px}.jex-inline-form-consent{font-size:11px;color:var(--jex-text-muted, #64748b);line-height:1.3;margin-top:4px;text-align:center}.jex-inline-form .jex-form-submit:disabled{opacity:.7;cursor:not-allowed}.jex-escalation-subtitle{font-size:13px;color:var(--jex-text-muted, #64748b);line-height:1.45;margin:0 0 8px}.jex-escalation-skip{padding:8px 12px;border:none;background:transparent;color:var(--jex-text-muted, #64748b);font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:2px;text-align:center}.jex-escalation-skip:hover{color:var(--jex-text-main, #0f172a)}.jex-inline-form-card{position:relative;padding:14px;gap:8px}.jex-inline-form-dismiss{position:absolute;top:10px;right:10px;width:24px;height:24px;border-radius:50%;border:1px solid var(--jex-border-input, #e2e8f0);background:var(--jex-bg-window, #fff);color:var(--jex-text-muted, #64748b);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.jex-inline-form-dismiss:hover{background:var(--jex-bg-msg-bot, #f1f5f9);color:var(--jex-text-main, #0f172a)}.jex-inline-form-submitted{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--jex-bg-msg-bot, #f1f5f9);border:1px solid var(--jex-border-input, #e2e8f0);border-radius:var(--jex-radius, .75rem);width:100%}.jex-inline-form-check{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:color-mix(in srgb,var(--jex-primary) 15%,transparent);color:var(--jex-primary, #115A62);font-size:14px;font-weight:700;flex-shrink:0}.jex-inline-form-submitted-title{font-weight:600;font-size:var(--jex-font-size, 14px);color:var(--jex-text-main, #0f172a)}.jex-inline-form-submitted-detail{font-size:12px;color:var(--jex-text-muted, #64748b);margin-top:2px}.jex-magicline-row{display:flex;flex-direction:column;gap:8px}.jex-magicline-row>*{min-width:0}.jex-magicline-field{display:flex;flex-direction:column;gap:4px}.jex-magicline-field-label{font-size:12px;font-weight:500;color:var(--jex-text-muted, #64748b)}.jex-magicline-select{width:100%;appearance:none;cursor:pointer;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px 16px}.jex-magicline-slots-hint{font-size:12px;color:var(--jex-text-muted, #64748b);line-height:1.4;padding:2px 0}.jex-magicline-consent{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.35;color:var(--jex-text-muted, #64748b);margin-top:2px;cursor:pointer}.jex-magicline-consent input[type=checkbox]{flex-shrink:0;margin-top:1px;accent-color:var(--jex-primary, #115A62)}.jex-magicline-error{font-size:12px;color:#dc2626;line-height:1.35}.jex-magicline-failed{border-color:color-mix(in srgb,#dc2626 35%,var(--jex-border-input, #e2e8f0))}.jex-magicline-failed-icon{background:color-mix(in srgb,#dc2626 15%,transparent);color:#dc2626}.jex-magicline-wizard-header{display:flex;flex-direction:column;gap:6px}.jex-magicline-wizard-progress{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.jex-magicline-wizard-step-label{font-size:13px;font-weight:600;color:var(--jex-text-main, #0f172a)}.jex-magicline-wizard-counter{font-size:11px;color:var(--jex-text-muted, #64748b);flex-shrink:0}.jex-magicline-wizard-dots{display:flex;gap:6px}.jex-magicline-wizard-dot{width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--jex-text-muted, #64748b) 35%,transparent)}.jex-magicline-wizard-dot-active{background:var(--jex-primary, #115A62)}.jex-magicline-wizard-nav{display:flex;align-items:center;gap:8px;margin-top:4px}.jex-magicline-wizard-next{flex:1;margin-top:0}.jex-magicline-wizard-back{padding:10px 14px;border-radius:8px;border:1px solid var(--jex-border-input, #e2e8f0);background:transparent;color:var(--jex-text-main, #0f172a);font-size:14px;font-weight:600;cursor:pointer}.jex-magicline-wizard-back:hover{background:var(--jex-bg-window, #fff)}.jex-magicline-wizard-back:disabled,.jex-magicline-wizard-next:disabled{opacity:.7;cursor:not-allowed}.jex-magicline-radio-group{display:flex;flex-direction:column;gap:8px}.jex-magicline-radio-card{display:flex;align-items:center;gap:10px;padding:12px;border-radius:10px;border:1px solid var(--jex-border-input, #e2e8f0);font-size:14px;color:var(--jex-text-main, #0f172a);cursor:pointer}.jex-magicline-radio-card-active{border-color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 8%,transparent)}.jex-magicline-radio-card input[type=radio]{flex-shrink:0;accent-color:var(--jex-primary, #115A62)}.jex-magicline-slots-error{display:flex;flex-direction:column;gap:6px}.jex-magicline-retry{align-self:flex-start;padding:6px 12px;border-radius:8px;border:1px solid var(--jex-border-input, #e2e8f0);background:transparent;color:var(--jex-text-main, #0f172a);font-size:13px;font-weight:600;cursor:pointer}.jex-magicline-retry:hover{background:var(--jex-bg-window, #fff)}.jex-magicline-retry:disabled{opacity:.7;cursor:not-allowed}.jex-magicline-voucher-section{display:flex;flex-direction:column;gap:6px;margin-top:4px}.jex-magicline-voucher-field{flex-direction:row;align-items:stretch;gap:8px}.jex-magicline-voucher-field .jex-form-input{flex:1;min-width:0}.jex-magicline-voucher-apply{flex:0 0 auto;padding:10px 16px;border-radius:8px;border:none;background:var(--jex-primary, #115A62);color:#fff;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.jex-magicline-voucher-apply:hover{background:var(--jex-primary-hover)}.jex-magicline-voucher-apply:disabled{opacity:.7;cursor:not-allowed}.jex-magicline-review-wrap{position:relative}.jex-magicline-review-body{display:flex;flex-direction:column;gap:10px;transition:opacity .15s ease}.jex-magicline-review-body--reloading{opacity:.5;pointer-events:none}.jex-magicline-review-overlay{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding-top:48px}.jex-magicline-review-spinner{width:28px;height:28px;border-radius:50%;border:3px solid color-mix(in srgb,var(--jex-primary, #115A62) 25%,transparent);border-top-color:var(--jex-primary, #115A62);animation:jex-magicline-spin .7s linear infinite}@keyframes jex-magicline-spin{to{transform:rotate(360deg)}}.jex-magicline-voucher-discount-row dt,.jex-magicline-voucher-remarks-row dt{flex-shrink:1;min-width:0}.jex-magicline-voucher-remarks-row dd{min-width:0;overflow-wrap:anywhere;word-break:break-word}.jex-magicline-summary{display:flex;flex-direction:column;gap:6px;margin:0;padding:10px 12px;border-radius:8px;background:var(--jex-bg-window, #fff);border:1px solid var(--jex-border-input, #e2e8f0)}.jex-magicline-summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.jex-magicline-summary-row dt{font-size:12px;color:var(--jex-text-muted, #64748b);flex-shrink:0}.jex-magicline-summary-row dd{margin:0;font-size:13px;font-weight:500;color:var(--jex-text-main, #0f172a);text-align:right;min-width:0}.jex-magicline-summary-section{margin-top:8px}.jex-magicline-summary-heading{font-size:12px;font-weight:600;color:var(--jex-text-main, #0f172a);margin-bottom:2px}.jex-magicline-summary-totals{background:color-mix(in srgb,var(--jex-primary, #115A62) 6%,transparent);border-color:color-mix(in srgb,var(--jex-primary, #115A62) 25%,transparent)}.jex-magicline-summary-total-row dt,.jex-magicline-summary-total-row dd{font-size:14px;font-weight:700;color:var(--jex-text-main, #0f172a)}.jex-magicline-summary-total-row dt{flex-shrink:1;min-width:0}.jex-magicline-summary-total-row dd{flex-shrink:0;white-space:nowrap;overflow-wrap:normal}.jex-magicline-offer-group{display:flex;flex-direction:column;gap:8px}.jex-magicline-offer-bundle-name{font-size:13px;font-weight:600;color:var(--jex-text-main, #0f172a)}.jex-magicline-offer-bundle-desc{font-size:12px;color:var(--jex-text-muted, #64748b)}.jex-magicline-radio-card .jex-magicline-offer-term{display:flex;flex-direction:column;gap:4px;flex:1}.jex-magicline-offer-term-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.jex-magicline-offer-term-length{font-size:14px;font-weight:600;color:var(--jex-text-main, #0f172a)}.jex-magicline-offer-term-price{font-size:13px;font-weight:500;color:var(--jex-primary, #115A62)}.jex-magicline-offer-term-note{font-size:12px;color:var(--jex-text-muted, #64748b)}.jex-magicline-static-value{padding:9px 12px;border-radius:8px;font-size:14px;color:var(--jex-text-main, #0f172a);background:var(--jex-bg-window, #f8fafc);border:1px solid var(--jex-border-input, #e2e8f0)}.jex-magicline-terms{display:flex;flex-direction:column;gap:10px;padding:10px 12px;border-radius:8px;background:var(--jex-bg-window, #fff);border:1px solid var(--jex-border-input, #e2e8f0)}.jex-magicline-upgrades-recap-title,.jex-magicline-terms-title{font-size:12px;font-weight:600;color:var(--jex-text-main, #0f172a);margin-bottom:2px}.jex-magicline-terms-content{font-size:12px;line-height:1.5;color:var(--jex-text-muted, #64748b);white-space:pre-wrap}.jex-magicline-upgrade-group{display:flex;flex-direction:column;gap:8px}.jex-magicline-upgrade-card{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:10px;border:1px solid var(--jex-border-input, #e2e8f0);font-size:14px;color:var(--jex-text-main, #0f172a);cursor:pointer}.jex-magicline-upgrade-card-active{border-color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 8%,transparent)}.jex-magicline-upgrade-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;cursor:pointer}.jex-magicline-upgrade-info{display:flex;flex-direction:column;gap:2px;flex:1}.jex-magicline-upgrade-name{font-size:14px;font-weight:600;color:var(--jex-text-main, #0f172a)}.jex-magicline-upgrade-desc{font-size:12px;color:var(--jex-text-muted, #64748b)}.jex-magicline-upgrade-price{font-size:13px;font-weight:500;color:var(--jex-primary, #115A62)}.jex-magicline-upgrade-status{flex-shrink:0;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px;border:1px solid var(--jex-border-input, #e2e8f0);color:var(--jex-text-muted, #64748b);background:transparent;white-space:nowrap}.jex-magicline-upgrade-card-active .jex-magicline-upgrade-status{border-color:var(--jex-primary, #115A62);color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 12%,transparent)}.jex-magicline-terms-prompt{font-size:13px;font-weight:600;color:var(--jex-text-main, #0f172a);margin-bottom:4px}.jex-magicline-bundle-details{font-size:12px;color:var(--jex-text-muted, #64748b)}.jex-magicline-bundle-details-summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--jex-primary, #115A62);list-style-position:inside}.jex-magicline-bundle-details-summary:hover{text-decoration:underline}.jex-magicline-bundle-details-body{display:flex;flex-direction:column;gap:6px;margin-top:6px}.jex-magicline-bundle-details-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:2px;line-height:1.4}.jex-magicline-bundle-details-footnote{margin:0;line-height:1.4}.jex-magicline-consent-region{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:6px 8px;border-left:3px solid var(--jex-primary, #115A62);border-radius:6px;background:color-mix(in srgb,var(--jex-primary, #115A62) 6%,transparent)}.jex-magicline-required-pill{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 12%,transparent);vertical-align:middle}.jex-magicline-consent-body{display:flex;flex-direction:column;gap:1px}.jex-magicline-consent-recap{display:flex;flex-direction:column;gap:2px}.jex-escalation-confirm{border-left:3px solid var(--jex-primary, #115A62);padding-left:8px}.jex-session-prompt{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 16px;margin:8px 0;text-align:center}.jex-session-prompt-text{font-size:13px;color:var(--jex-text-muted, #64748b)}.jex-session-prompt-btn{padding:8px 16px;border-radius:8px;border:1px solid var(--jex-primary, #115A62);background:transparent;color:var(--jex-primary, #115A62);font-size:13px;font-weight:600;cursor:pointer}.jex-session-prompt-btn:hover{background:color-mix(in srgb,var(--jex-primary) 10%,transparent)}.jex-chat-input-resolved{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 16px;border-top:1px solid var(--jex-border-input, #e2e8f0);background:var(--jex-bg-msg-bot, #f1f5f9);text-align:center}.jex-resolved-notice{font-size:13px;font-weight:500;color:var(--jex-text-muted, #64748b)}.jex-resolved-new-btn{padding:10px 20px;border-radius:8px;border:none;background:var(--jex-primary, #115A62);color:#fff;font-size:13px;font-weight:600;cursor:pointer;width:100%}.jex-resolved-new-btn:hover{opacity:.9}.jex-confirmation{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 24px;height:100%;text-align:center}.jex-confirmation-icon{width:48px;height:48px;border-radius:50%;background:color-mix(in srgb,var(--jex-primary, #115A62) 15%,transparent);color:var(--jex-primary, #115A62);font-size:22px;display:flex;align-items:center;justify-content:center}.jex-confirmation-title{font-size:18px;font-weight:700;color:var(--jex-text-main, #0f172a);margin:0}.jex-confirmation-body{font-size:13px;color:var(--jex-text-muted, #64748b);margin:0}.jex-confirmation-ref{font-size:20px;font-weight:700;letter-spacing:.05em;color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 10%,transparent);padding:10px 20px;border-radius:10px}.jex-confirmation-hint{font-size:12px;color:var(--jex-text-muted, #64748b);margin:0}.jex-confirmation-done{margin-top:8px;padding:10px 28px;border-radius:8px;border:none;background:var(--jex-primary, #115A62);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.jex-home-lookup-link{background:none;border:none;font-size:12px;color:var(--jex-text-muted, #64748b);cursor:pointer;text-decoration:underline;padding:0;align-self:center}.jex-home-lookup{display:flex;gap:8px;width:100%;animation:jexFadeIn .4s .1s ease both}.jex-home-lookup-input{flex:1;padding:10px 14px;border-radius:10px;border:1px solid var(--jex-border-input, #e2e8f0);background:var(--jex-bg-input);color:var(--jex-text-main);font-size:14px;font-family:ui-monospace,Cascadia Code,Fira Code,monospace;letter-spacing:.04em;outline:none;transition:border-color .2s}@media(pointer:coarse){.jex-home-lookup-input{font-size:16px}}.jex-home-lookup-input::placeholder{font-family:inherit;letter-spacing:.04em;color:var(--jex-text-muted);opacity:.7}.jex-home-lookup-input:focus{border-color:var(--jex-primary, #115A62)}.jex-home-lookup-submit{padding:10px 16px;border-radius:10px;border:none;background:var(--jex-primary, #115A62);color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s,opacity .2s;flex-shrink:0}.jex-home-lookup-submit:hover:not(:disabled){background:var(--jex-primary-hover)}.jex-home-lookup-submit:disabled{opacity:.4;cursor:default}.jex-sources-row{margin-top:6px;margin-left:32px;display:flex;flex-direction:column;gap:6px}.jex-sources-toggle{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:11px;color:var(--jex-text-muted, #6b7280);font-family:inherit;align-self:flex-start;transition:background .15s,color .15s}.jex-sources-toggle:hover{background:#0000000a;color:inherit}.jex-sources-icon{font-size:12px;line-height:1}.jex-sources-chevron{display:inline-block;font-size:10px;transition:transform .15s}.jex-sources-chevron--open{transform:rotate(180deg)}.jex-sources-pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.jex-source-pill{display:inline-flex;align-items:center;gap:6px;max-width:240px;padding:2px 8px;border-radius:999px;border:1px solid rgba(0,0,0,.1);background:#0000000a;color:var(--jex-text-muted, #6b7280);font-size:11px;text-decoration:none;cursor:pointer;transition:background .15s,color .15s}.jex-source-pill:hover{background:#00000014;color:inherit}.jex-source-id{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:4px;background:var(--jex-primary, #115A62);color:#fff;font-size:10px;font-weight:600;line-height:1;flex-shrink:0;font-variant-numeric:tabular-nums}.jex-source-type{font-size:10px;flex-shrink:0}.jex-source-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.jex-source-score{opacity:.6;flex-shrink:0;font-variant-numeric:tabular-nums}.jex-starter-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0}.jex-starter-chip{display:inline-flex;align-items:center;border-radius:999px;padding:7px 13px;background:var(--jex-bg-window);border:1px solid var(--jex-border-input);color:var(--jex-primary);text-align:left;font-size:13.5px;font-weight:500;line-height:1.2;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.jex-starter-chip:hover:not(:disabled){background:color-mix(in srgb,var(--jex-primary) 8%,var(--jex-bg-window));border-color:var(--jex-primary)}.jex-starter-chip:disabled{opacity:.5;cursor:default}.jex-presence-dot{position:absolute;top:2px;right:2px;width:8px;height:8px;border-radius:999px;box-shadow:0 0 0 2px var(--jex-bg-header, #115A62)}.jex-presence-dot--online{background:#10b981}.jex-presence-dot--away{background:#fbbf24}.jex-presence-dot--offline{background:#9ca3af}@keyframes jex-ripple-expand{0%{transform:scale(1);opacity:.6}to{transform:scale(2.6);opacity:0}}.jex-waiting-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;margin:0 12px 8px;background:var(--jex-bg-msg-bot, #f1f5f9);border:1px solid var(--jex-border-input, #e2e8f0);border-radius:var(--jex-radius, .75rem)}.jex-waiting-indicator{position:relative;flex-shrink:0;width:20px;height:20px;margin-top:2px;display:flex;align-items:center;justify-content:center}.jex-waiting-dot{position:relative;z-index:1;width:8px;height:8px;border-radius:50%;background:var(--jex-primary, #115A62)}.jex-waiting-ripple{position:absolute;inset:0;width:8px;height:8px;margin:auto;border-radius:50%;background:var(--jex-primary, #115A62);animation:jex-ripple-expand 1.6s ease-out infinite}@media(prefers-reduced-motion:reduce){.jex-waiting-ripple{animation:none}}.jex-waiting-body{display:flex;flex-direction:column;gap:4px;min-width:0}.jex-waiting-title{font-weight:600;font-size:14px;color:var(--jex-text-main, #0f172a);line-height:1.3}.jex-waiting-subtitle{font-size:12px;color:var(--jex-text-muted, #64748b);line-height:1.4}.jex-waiting-leave-email{margin-top:6px;padding:0;border:none;background:transparent;color:var(--jex-primary, #115A62);font-size:12px;font-family:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer;text-align:left}.jex-waiting-leave-email:hover{opacity:.8}`;function Zh(t){const e=document.createElement("style");e.textContent=Yh,t.appendChild(e)}const Xh="https://tame-spider-109.eu-west-1.convex.cloud";let Yr=null;function ep(t){const e=t??Xh;if(!e)throw new Error("[jexity] No Convex URL — set VITE_CONVEX_URL at build time or data-convex-url on the script tag");return Yr||(Yr=new nc(bc(e))),Yr}function tp(t,e){const n=t.shadowRoot??t.attachShadow({mode:"open"});for(;n.firstChild;)n.removeChild(n.firstChild);Zh(n),An.value=e.source,Ve.value=e.bootstrapToken,ue.value=[{id:"home"}],e.mode==="embedded"&&(t.classList.add("jex-mode-embedded"),F.value=!0);const r=document.createElement("div");return e.mode==="embedded"&&(r.style.cssText="width:100%;height:100%"),n.appendChild(r),Ke(s(ic,{client:ep(e.convexUrl),children:s(Gh,{options:e})}),r),function(){Ke(null,r),F.value=!1,An.value=void 0,Ve.value=void 0,ue.value=[{id:"home"}]}}function np(t,e,n){const r=tp(t,e),i=new Set,o=F.subscribe(l=>{for(const c of i)c(l)});return{shutdown(){o(),i.clear(),r(),n&&n()},open(){F.value=!0},close(){F.value=!1},toggle(){F.value=!F.value},get isOpen(){return F.value},subscribe(l){return i.add(l),()=>{i.delete(l)}}}}let nn=null;function rp(t){nn&&nn.shutdown();let e;t.container?e=typeof t.container=="string"?document.querySelector(t.container):t.container:(e=document.createElement("div"),e.id="jexity-chat-widget",document.body.appendChild(e));const n=np(e,t,()=>{t.container||e.remove(),nn===n&&(nn=null)});return nn=n,n}function We(t,e){return t.getAttribute(e)??void 0}async function Ga(){const t=document.currentScript??document.querySelector("script[data-org-slug]")??document.querySelector("script[data-org-id]");if(!t)return;const e=t.getAttribute("data-org-slug")??t.getAttribute("data-org-id")??"default-org",n=t.getAttribute("data-proj-slug")??void 0,r=We(t,"data-convex-url")??"https://tame-spider-109.eu-west-1.convex.cloud"??"",i=jr(r),o=await Sr(e,i,n);if(!o.ok){const l=window.location.origin,c=n?`project '${e}/${n}'`:`org '${e}'`;o.error==="unauthorized"?console.warn(`[JexityChat] This domain is not authorized for ${c}. Add '${l}' under Allowed Domains in your Jexity dashboard.`):o.error==="not_found"?console.warn(`[JexityChat] No active widget config found for ${c}. Check that the org slug is correct and the widget is enabled.`):o.error==="rate_limited"?console.warn(`[JexityChat] Bootstrap rate-limited for ${c}. Retry after ${o.retryAfterSec??60}s.`):console.warn(`[JexityChat] Bootstrap failed (network error). Check that the Convex deployment is reachable at ${i}.`);return}if(o.allowedUrls.length>0&&!o.allowedUrls.some(l=>Cr(window.location.href,l))){const l=n?`project '${e}/${n}'`:`org '${e}'`;console.warn(`[JexityChat] Widget hidden for ${l} — current page does not match path rule. Allowed: ${o.allowedUrls.join(", ")}`);return}const a={orgSlug:e,projSlug:n,bootstrapToken:o.token,allowedUrls:o.allowedUrls,excludePaths:o.excludePaths,position:We(t,"data-position")??void 0,theme:We(t,"data-theme")??void 0,greeting:We(t,"data-greeting"),title:We(t,"data-title"),primaryColor:We(t,"data-primary-color"),locale:We(t,"data-locale"),convexUrl:We(t,"data-convex-url")};window.JexityChat=rp(a)}document.readyState==="complete"?Ga():window.addEventListener("load",Ga)})();
67
+ `}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${Ie(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:n}){let r=this.parser.parseInline(n),i=ka(t);if(i===null)return r;t=i;let o='<a href="'+t+'"';return e&&(o+=' title="'+Ie(e)+'"'),o+=">"+r+"</a>",o}image({href:t,title:e,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=ka(t);if(i===null)return Ie(n);t=i;let o=`<img src="${t}" alt="${Ie(n)}"`;return e&&(o+=` title="${Ie(e)}"`),o+=">",o}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:Ie(t.text)}},Wr=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},ke=class ei{options;renderer;textRenderer;constructor(e){this.options=e||Xe,this.options.renderer=this.options.renderer||new Dn,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Wr}static parse(e,n){return new ei(n).parse(e)}static parseInline(e,n){return new ei(n).parseInline(e)}parse(e){this.renderer.parser=this;let n="";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let a=i,l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(a.type)){n+=l||"";continue}}let o=i;switch(o.type){case"space":{n+=this.renderer.space(o);break}case"hr":{n+=this.renderer.hr(o);break}case"heading":{n+=this.renderer.heading(o);break}case"code":{n+=this.renderer.code(o);break}case"table":{n+=this.renderer.table(o);break}case"blockquote":{n+=this.renderer.blockquote(o);break}case"list":{n+=this.renderer.list(o);break}case"checkbox":{n+=this.renderer.checkbox(o);break}case"html":{n+=this.renderer.html(o);break}case"def":{n+=this.renderer.def(o);break}case"paragraph":{n+=this.renderer.paragraph(o);break}case"text":{n+=this.renderer.text(o);break}default:{let a='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}parseInline(e,n=this.renderer){this.renderer.parser=this;let r="";for(let i=0;i<e.length;i++){let o=e[i];if(this.options.extensions?.renderers?.[o.type]){let l=this.options.extensions.renderers[o.type].call({parser:this},o);if(l!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type)){r+=l||"";continue}}let a=o;switch(a.type){case"escape":{r+=n.text(a);break}case"html":{r+=n.html(a);break}case"link":{r+=n.link(a);break}case"image":{r+=n.image(a);break}case"checkbox":{r+=n.checkbox(a);break}case"strong":{r+=n.strong(a);break}case"em":{r+=n.em(a);break}case"codespan":{r+=n.codespan(a);break}case"br":{r+=n.br(a);break}case"del":{r+=n.del(a);break}case"text":{r+=n.text(a);break}default:{let l='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return r}},tn=class{options;block;constructor(t){this.options=t||Xe}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(){return this.block?we.lex:we.lexInline}provideParser(){return this.block?ke.parse:ke.parseInline}},bd=class{defaults=Or();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=ke;Renderer=Dn;TextRenderer=Wr;Lexer=we;Tokenizer=Bn;Hooks=tn;constructor(...t){this.use(...t)}walkTokens(t,e){let n=[];for(let r of t)switch(n=n.concat(e.call(this,r)),r.type){case"table":{let i=r;for(let o of i.header)n=n.concat(this.walkTokens(o.tokens,e));for(let o of i.rows)for(let a of o)n=n.concat(this.walkTokens(a.tokens,e));break}case"list":{let i=r;n=n.concat(this.walkTokens(i.items,e));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(o=>{let a=i[o].flat(1/0);n=n.concat(this.walkTokens(a,e))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,e)))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let o=e.renderers[i.name];o?e.renderers[i.name]=function(...a){let l=i.renderer.apply(this,a);return l===!1&&(l=o.apply(this,a)),l}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=e[i.level];o?o.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),r.extensions=e),n.renderer){let i=this.defaults.renderer||new Dn(this.defaults);for(let o in n.renderer){if(!(o in i))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let a=o,l=n.renderer[a],c=i[a];i[a]=(...u)=>{let h=l.apply(i,u);return h===!1&&(h=c.apply(i,u)),h||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new Bn(this.defaults);for(let o in n.tokenizer){if(!(o in i))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let a=o,l=n.tokenizer[a],c=i[a];i[a]=(...u)=>{let h=l.apply(i,u);return h===!1&&(h=c.apply(i,u)),h}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new tn;for(let o in n.hooks){if(!(o in i))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let a=o,l=n.hooks[a],c=i[a];tn.passThroughHooks.has(o)?i[a]=u=>{if(this.defaults.async&&tn.passThroughHooksRespectAsync.has(o))return(async()=>{let f=await l.call(i,u);return c.call(i,f)})();let h=l.call(i,u);return c.call(i,h)}:i[a]=(...u)=>{if(this.defaults.async)return(async()=>{let f=await l.apply(i,u);return f===!1&&(f=await c.apply(i,u)),f})();let h=l.apply(i,u);return h===!1&&(h=c.apply(i,u)),h}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,o=n.walkTokens;r.walkTokens=function(a){let l=[];return l.push(o.call(this,a)),i&&(l=l.concat(i.call(this,a))),l}}this.defaults={...this.defaults,...r}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return we.lex(t,e??this.defaults)}parser(t,e){return ke.parse(t,e??this.defaults)}parseMarkdown(t){return(e,n)=>{let r={...n},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=t),i.async)return(async()=>{let a=i.hooks?await i.hooks.preprocess(e):e,l=await(i.hooks?await i.hooks.provideLexer():t?we.lex:we.lexInline)(a,i),c=i.hooks?await i.hooks.processAllTokens(l):l;i.walkTokens&&await Promise.all(this.walkTokens(c,i.walkTokens));let u=await(i.hooks?await i.hooks.provideParser():t?ke.parse:ke.parseInline)(c,i);return i.hooks?await i.hooks.postprocess(u):u})().catch(o);try{i.hooks&&(e=i.hooks.preprocess(e));let a=(i.hooks?i.hooks.provideLexer():t?we.lex:we.lexInline)(e,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let l=(i.hooks?i.hooks.provideParser():t?ke.parse:ke.parseInline)(a,i);return i.hooks&&(l=i.hooks.postprocess(l)),l}catch(a){return o(a)}}}onError(t,e){return n=>{if(n.message+=`
68
+ Please report this to https://github.com/markedjs/marked.`,t){let r="<p>An error occurred:</p><pre>"+Ie(n.message+"",!0)+"</pre>";return e?Promise.resolve(r):r}if(e)return Promise.reject(n);throw n}}},tt=new bd;function M(t,e){return tt.parse(t,e)}M.options=M.setOptions=function(t){return tt.setOptions(t),M.defaults=tt.defaults,ca(M.defaults),M},M.getDefaults=Or,M.defaults=Xe,M.use=function(...t){return tt.use(...t),M.defaults=tt.defaults,ca(M.defaults),M},M.walkTokens=function(t,e){return tt.walkTokens(t,e)},M.parseInline=tt.parseInline,M.Parser=ke,M.parser=ke.parse,M.Renderer=Dn,M.TextRenderer=Wr,M.Lexer=we,M.lexer=we.lex,M.Tokenizer=Bn,M.Hooks=tn,M.parse=M,M.options,M.setOptions,M.use,M.walkTokens,M.parseInline,ke.parse,we.lex,M.setOptions({breaks:!0,gfm:!0});function yd({text:t}){const e=G(()=>{if(!t)return"";const n=M.parse(t);return typeof n=="string"?n:""},[t]);return s("div",{class:"jex-md",dangerouslySetInnerHTML:{__html:e}})}function wd(t){const e=t.trim().split(/\s+/).filter(Boolean);return e.length===0?"?":e.map(n=>n[0]).join("").slice(0,2).toUpperCase()}function _t({text:t,streaming:e,error:n,authorId:r,authorName:i,authorImage:o,botAvatarUrl:a,botName:l}){const c=j(),u=!!r,[h,f]=R(!1),d=N(()=>f(!0),[]),p=c.replyTo.replace("{name}",i??""),g=u?i??"":l??"",y=["jex-message bot",n?"jex-message-error":""].filter(Boolean).join(" ");return s("div",{class:"jex-message-row bot",children:[s("div",{class:"jex-message-head",children:[s("div",{class:`jex-avatar ${u?"jex-avatar-agent":"jex-avatar-bot"}`,children:u&&o&&!h?s("img",{src:o,alt:i??"",class:"jex-avatar-img",onError:d}):u?s("span",{class:"jex-avatar-initials",children:wd(i??"")}):a&&!h?s("img",{src:a,alt:"",class:"jex-avatar-img",onError:d}):s($n,{size:14})}),g&&s("span",{class:"jex-message-author",children:g}),u&&i&&s("button",{type:"button",class:"jex-reply-tag-btn","aria-label":p,title:p,onClick:()=>{uu(i)},children:s($u,{size:12})})]}),s("div",{class:y,children:[s(yd,{text:t}),e&&s("span",{class:"jex-streaming-cursor"})]})]})}function kd({questions:t,disabled:e,onPick:n}){return t.length===0?null:s("div",{class:"jex-starter-chips",children:t.map(r=>s("button",{type:"button",class:"jex-starter-chip",disabled:e,onClick:()=>{n(r)},children:r},r))})}function _d({text:t}){return s("div",{class:"jex-message user",children:t})}function Sa(){return Ye(re.functions.chat.public.helpdesk.submitEscalation)}function Ca(){const t=Ye(re.functions.chat.public.helpdesk.markEscalationWaiting);return e=>{Yt.value=e,t({sessionId:e.sessionId,visitorId:e.visitorId}).catch(n=>{console.error("[waiting] markEscalationWaiting failed:",n)})}}function jd({message:t,sessionId:e,visitorId:n,waitingSetAt:r}){const i=j();return t.formData?s("div",{class:"jex-inline-form-submitted",children:[s("span",{class:"jex-inline-form-check",children:"✓"}),s("div",{children:[s("div",{class:"jex-inline-form-submitted-title",children:i.escalationSubmitted}),s("div",{class:"jex-inline-form-submitted-detail",children:[t.formData.visitorName," · ",t.formData.visitorEmail]})]})]}):s("div",{class:"jex-message-row bot",children:s(Sd,{messageId:t._id,sessionId:e,visitorId:n,waitingSetAt:r})})}function Sd({messageId:t,sessionId:e,visitorId:n,waitingSetAt:r}){const i=j(),[o,a]=R(""),[l,c]=R(""),[u,h]=R(!1),f=Qt.value,d=/^https?:\/\//i.test(f)?f:Ht,p=Sa(),g=Ca();async function y(m){if(m.preventDefault(),!u){h(!0);try{await p({sessionId:e,visitorId:n,formMessageId:t,visitorName:o.trim(),visitorEmail:l.trim(),locale:Ae.value})}catch(v){console.error("[FormMessage] Submit failed:",v),h(!1)}}}return s("div",{class:"jex-inline-form",children:[s("div",{class:"jex-inline-form-title",children:i.escalationFormTitle}),s("form",{class:"jex-form",onSubmit:m=>{y(m)},children:[s("input",{class:"jex-form-input",type:"text",placeholder:i.escalationNameLabel,value:o,required:!0,disabled:u,onInput:m=>{a(m.currentTarget.value)}}),s("input",{class:"jex-form-input",type:"email",placeholder:i.escalationEmailLabel,value:l,required:!0,disabled:u,onInput:m=>{c(m.currentTarget.value)}}),s("button",{class:"jex-form-submit",type:"submit",disabled:u,children:u?i.escalationSubmitting:i.escalationSubmit})]}),s("button",{type:"button",class:"jex-escalation-skip",onClick:()=>{g({formMessageId:t,sessionId:e,visitorId:n,waitingSetAt:r})},children:i.escalationSkip}),s("div",{class:"jex-inline-form-consent",children:[i.escalationConsent," ",s("a",{href:d,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:i.escalationPrivacyLinkText}),"."]})]})}function Cd(){return Ye(re.functions.magicline.public.submitForm)}function Td(){return Ut(re.functions.magicline.actions.getTrialConfig)}function Rd(){return Ut(re.functions.magicline.actions.listTrialSlots)}function Ad(){return Ut(re.functions.magicline.actions.getRateBundles)}function Ta(){return Ut(re.functions.magicline.actions.getContractPreview)}function Id(){return Ut(re.functions.magicline.actions.submitContractCreation)}const Kr={en:Tr,de:No},Ed=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function Ra(t){return Ed.test(t.trim())}function $d(t,e=new Date){const n=t.trim();if(n==="")return null;const r=n.split("-");if(r.length!==3)return null;const i=Number(r[0]),o=Number(r[1]),a=Number(r[2]);if(!Number.isInteger(i)||!Number.isInteger(o)||!Number.isInteger(a)||o<1||o>12||a<1||a>31)return null;let l=e.getFullYear()-i;const c=e.getMonth()+1-o;return(c<0||c===0&&e.getDate()<a)&&(l-=1),l}function Aa(t=new Date){const e=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${e}-${n}-${r}`}function Ia(){const t=Qt.value;return/^https?:\/\//i.test(t)?t:Ht}const Pd={DE:22,AT:20,CH:21,GB:22,FR:27,NL:18,BE:16,ES:24,IT:27,PL:28,SE:24,NO:15,DK:18,FI:18,PT:25},Md=15,qd=34;function Ea(t){return t.replace(/\s+/g,"").toUpperCase()}function Nd(t){const e=Ea(t),n=e.slice(0,2),r=Pd[n];if(r!==void 0){if(e.length!==r)return!1}else if(e.length<Md||e.length>qd)return!1;const i=e.slice(4)+e.slice(0,4);let o="";for(const l of i){const c=l.charCodeAt(0);if(c>=65&&c<=90)o+=String(c-55);else if(c>=48&&c<=57)o+=l;else return!1}let a=0;for(let l=0;l<o.length;l+=9){const c=String(a)+o.slice(l,l+9);a=Number(c)%97}return a===1}function Ld(t){const e=Ea(t);if(e.length<=8)return e;const n=e.slice(0,4),r=e.slice(-4);return(n+"•".repeat(e.length-8)+r).replace(/(.{4})/g,"$1 ").trim()}function _e(t,e,n){const r=n==="de"?"de-DE":"en-GB";try{return new Intl.NumberFormat(r,{style:"currency",currency:e}).format(t)}catch{return`${t.toFixed(2)} ${e}`}}function Un(t,e,n){const r=t!==1,o={DAY:{en:["day","days"],de:["Tag","Tage"]},WEEK:{en:["week","weeks"],de:["Woche","Wochen"]},MONTH:{en:["month","months"],de:["Monat","Monate"]},YEAR:{en:["year","years"],de:["Jahr","Jahre"]}}[e.toUpperCase()];if(!o)return`${t} ${e.toLowerCase()}`;const[a,l]=o[n];return`${t} ${r?l:a}`}function Od(t,e){const n=t.trim();if(n==="")return"—";const r=e==="de"?"de-DE":"en-GB",i=new Date(n);return Number.isNaN(i.getTime())?t:i.toLocaleDateString(r,{day:"2-digit",month:"long",year:"numeric"})}function Gr(t,e,n){const r=Kr[n],i=e.toUpperCase();if(t===1)return{DAY:r.magiclineFreqPerDay,WEEK:r.magiclineFreqPerWeek,MONTH:r.magiclineFreqPerMonth,YEAR:r.magiclineFreqPerYear}[i]??e.toLowerCase();const a={DAY:r.magiclineFreqEveryDays,WEEK:r.magiclineFreqEveryWeeks,MONTH:r.magiclineFreqEveryMonths,YEAR:r.magiclineFreqEveryYears}[i];return a===void 0?`${t} ${e.toLowerCase()}`:a.replace("{n}",String(t))}function zd(t,e,n,r,i){const o=Kr[i],a=_e(t,e,i);switch(n){case"TERM_BASED":return`${a} ${o.magiclineModulePerTerm}`;case"RECURRING":return`${a} ${Gr(1,r??"MONTH",i)}`;case"NON_RECURRING":return`${a} ${o.magiclineModuleOneTime}`;case"MONTH_DAY":return`${a} ${o.magiclineModuleOneTime}`;case"FREE":return o.magiclineModuleIncluded;default:return a}}function Bd(t,e,n,r){return e==="PERCENTAGE"?`-${t}%`:`-${_e(t,n,r)}`}const Dd={startpaket:"magiclineFeeStarterPackage","starter package":"magiclineFeeStarterPackage",trainerpauschale:"magiclineFeeTrainerFee"};function $a(t,e){const n=t.trim().toLowerCase(),r=Dd[n];return r!==void 0?e[r]:t}function Ud(t,e,n){const r=Kr[n];if(t==="NONE")return r.magiclineRenewalNone;if(t==="TERM_EXTENSION"&&e!==null){const i=Un(e.value,e.unit,n);return r.magiclineRenewalTerm.replace("{n} {unit}",i)}return""}const Pa=["MALE","FEMALE","UNISEX"],Fd=[{code:"DE",label:"Germany / Deutschland"},{code:"AT",label:"Austria / Österreich"},{code:"CH",label:"Switzerland / Schweiz"},{code:"LI",label:"Liechtenstein"},{code:"LU",label:"Luxembourg / Luxemburg"},{code:"NL",label:"Netherlands / Niederlande"},{code:"BE",label:"Belgium / Belgien"},{code:"FR",label:"France / Frankreich"},{code:"IT",label:"Italy / Italien"},{code:"ES",label:"Spain / Spanien"},{code:"PL",label:"Poland / Polen"},{code:"CZ",label:"Czechia / Tschechien"},{code:"DK",label:"Denmark / Dänemark"},{code:"GB",label:"United Kingdom"},{code:"US",label:"United States"}];function Vd(t,e){const n=[];return e&&n.push("trainer"),n.push("slot"),n.push("personal"),(t.address.visible||t.zip.visible)&&n.push("address"),n.push("confirm"),n}const Hd={firstName:"",lastName:"",email:"",phone:"",birthDate:"",gender:"",street:"",houseNumber:"",zip:"",city:"",country:"",note:"",slotId:"",consent:!1,trainerRequired:!0};function Qd(t,e){switch(e.type){case"set":return{...t,[e.key]:e.value};case"setTrainer":return{...t,trainerRequired:e.trainerRequired,slotId:""};case"clearSlotIfAbsent":return t.slotId!==""&&!e.available.includes(t.slotId)?{...t,slotId:""}:t;default:return t}}function Wd({sessionId:t,visitorId:e}){const n=Td(),r=Rd(),[i,o]=he(Qd,Hd),[a,l]=he((v,b)=>b,{phase:"loading"}),[c,u]=he((v,b)=>b,{phase:"loading"}),[h,f]=he(v=>v+1,0),d=N((v,b)=>{o({type:"set",key:v,value:b})},[]),p=N(v=>{o({type:"setTrainer",trainerRequired:v}),f()},[]),g=N(()=>{f()},[]);T(()=>{let v=!1;return(async()=>{try{const b=await n({sessionId:t,visitorId:e});if(v)return;b.status==="ok"?l({phase:"ready",config:{plan:b.plan,minimumAge:b.minimumAge,bookingWithoutTrainerAllowed:b.bookingWithoutTrainerAllowed,studioZoneId:b.studioZoneId}}):l({phase:"error",code:b.status,backendMessage:b.message})}catch{v||l({phase:"error",code:"unavailable",backendMessage:""})}})(),()=>{v=!0}},[n,t,e]);const y=a.phase==="ready",{trainerRequired:m}=i;return T(()=>{if(!y)return;let v=!1;return u({phase:"loading"}),(async()=>{try{const b=await r({sessionId:t,visitorId:e,trainerRequired:m});if(v)return;b.status==="ok"?b.slots.length>0?(u({phase:"ready",slots:b.slots}),o({type:"clearSlotIfAbsent",available:b.slots.map(x=>x.startDateTime)})):u({phase:"empty"}):u({phase:"error"})}catch{v||u({phase:"error"})}})(),()=>{v=!0}},[y,r,t,e,m,h]),{fields:i,setField:d,setTrainerRequired:p,configState:a,slotsState:c,refetchSlots:g}}function Kd({formMessageId:t,sessionId:e,visitorId:n,slotUnavailable:r=!1,retryPending:i=!1}){const o=j(),a=Cd(),{fields:l,setField:c,setTrainerRequired:u,configState:h,slotsState:f,refetchSlots:d}=Wd({sessionId:e,visitorId:n});return h.phase==="loading"?s("div",{class:"jex-inline-form jex-magicline-form",children:[s("div",{class:"jex-inline-form-title",children:o.magiclineTrialTitle}),s("div",{class:"jex-magicline-slots-hint",children:o.magiclineConfigLoading})]}):h.phase==="error"?s("div",{class:"jex-inline-form jex-magicline-form",children:[s("div",{class:"jex-inline-form-title",children:o.magiclineTrialTitle}),s("div",{class:"jex-magicline-slots-hint",role:"alert",children:nh(h.code,h.backendMessage,o)})]}):s(Gd,{formMessageId:t,sessionId:e,visitorId:n,slotUnavailable:r,retryPending:i,config:h.config,fields:l,setField:c,setTrainerRequired:u,slotsState:f,refetchSlots:d,submitForm:a})}function Gd({formMessageId:t,sessionId:e,visitorId:n,slotUnavailable:r,retryPending:i,config:o,fields:a,setField:l,setTrainerRequired:c,slotsState:u,refetchSlots:h,submitForm:f}){const d=j(),{plan:p,minimumAge:g,bookingWithoutTrainerAllowed:y,studioZoneId:m}=o,v=G(()=>Vd(p,y),[p,y]),b=r?Math.max(v.indexOf("slot"),0):0,[x,P]=R(b),[S,z]=R({}),[W,V]=R(!1),[le,L]=R(null),H=G(()=>Ia(),[]),ie=Math.min(x,v.length-1),w=v[ie],Z=ie===v.length-1,rn=ie===0;function nt(K){const I={};if(K==="slot")return a.slotId===""&&(I.slotId=d.magiclineSlotRequiredError),I;if(K==="personal"){if(a.firstName.trim()===""&&(I.firstName=d.magiclineRequiredError),a.lastName.trim()===""&&(I.lastName=d.magiclineRequiredError),p.email.visible&&p.email.required&&a.email.trim()===""&&(I.email=d.magiclineRequiredError),a.email.trim()!==""&&!Ra(a.email)&&(I.email=d.magiclineEmailError),p.phone.visible&&p.phone.required&&a.phone.trim()===""&&(I.phone=d.magiclineRequiredError),p.gender.visible&&p.gender.required&&a.gender===""&&(I.gender=d.magiclineRequiredError),p.dateOfBirth.visible&&(p.dateOfBirth.required&&a.birthDate.trim()===""&&(I.birthDate=d.magiclineRequiredError),a.birthDate.trim()!=="")){const be=$d(a.birthDate);be!==null&&be<0?I.birthDate=d.magiclineRequiredError:g>0&&be!==null&&be<g&&(I.birthDate=d.magiclineMinAgeError.replace("{age}",String(g)))}return I}return K==="address"?(p.address.visible&&p.address.required&&(a.street.trim()===""&&(I.street=d.magiclineRequiredError),a.houseNumber.trim()===""&&(I.houseNumber=d.magiclineRequiredError),a.city.trim()===""&&(I.city=d.magiclineRequiredError),a.country===""&&(I.country=d.magiclineRequiredError)),p.zip.visible&&p.zip.required&&a.zip.trim()===""&&(I.zip=d.magiclineRequiredError),I):(K==="confirm"&&(a.consent||(I.consent=d.magiclineConsentError)),I)}function rt(){const K=nt(w);if(Object.keys(K).length>0){z(K);return}z({}),P(I=>Math.min(I+1,v.length-1))}function jt(){z({}),L(null),P(K=>Math.max(K-1,0))}async function it(){if(W)return;const K=nt("confirm");if(Object.keys(K).length>0){z(K);return}z({}),L(null),V(!0);try{const I=rh(p,a);await f({sessionId:e,visitorId:n,formMessageId:t,action:"trialSessionBooking",fields:I})}catch(I){console.error("[TrialSessionBookingForm] Submit failed:",I),L(d.magiclineFailedDetail),V(!1)}}function on(){Z?it():rt()}const St=th(w,d),$e=`jex-ml-consent-${t}`;return s("div",{class:"jex-inline-form jex-magicline-form",children:[s("div",{class:"jex-magicline-wizard-header",children:[s("div",{class:"jex-inline-form-title",children:d.magiclineTrialTitle}),s("div",{class:"jex-magicline-wizard-progress",children:[s("span",{class:"jex-magicline-wizard-step-label",children:St}),s("span",{class:"jex-magicline-wizard-counter",children:d.magiclineStepCounter.replace("{n}",String(ie+1)).replace("{total}",String(v.length))})]}),s("div",{class:"jex-magicline-wizard-dots","aria-hidden":"true",children:v.map((K,I)=>s("span",{class:I===ie?"jex-magicline-wizard-dot jex-magicline-wizard-dot-active":"jex-magicline-wizard-dot"},K))})]}),s("div",{class:"jex-form",role:"group","aria-label":St,children:[w==="trainer"?s(Jd,{formMessageId:t,trainerRequired:a.trainerRequired,disabled:W,onChange:c}):null,w==="slot"?s(Yd,{slotsState:u,slotId:a.slotId,studioZoneId:m,disabled:W,retryPending:i,slotUnavailable:r,error:S.slotId,onSelect:K=>{l("slotId",K)},onRetry:h}):null,w==="personal"?s(Zd,{plan:p,fields:a,errors:S,disabled:W,setField:l}):null,w==="address"?s(Xd,{plan:p,fields:a,errors:S,disabled:W,setField:l}):null,w==="confirm"?s(eh,{consentId:$e,privacyUrl:H,studioZoneId:m,fields:a,disabled:W,consentError:S.consent,setField:l}):null,le!==null?s("div",{class:"jex-magicline-error",role:"alert",children:le}):null,s("div",{class:"jex-magicline-wizard-nav",children:[rn?null:s("button",{type:"button",class:"jex-magicline-wizard-back",disabled:W,onClick:jt,children:d.magiclineWizardBack}),s("button",{type:"button",class:"jex-form-submit jex-magicline-wizard-next",disabled:W,onClick:on,children:Z?W?d.magiclineSubmitting:d.magiclineSubmit:d.magiclineWizardNext})]})]})]})}function Jd({formMessageId:t,trainerRequired:e,disabled:n,onChange:r}){const i=j(),o=`jex-ml-trainer-${t}`;return s("div",{class:"jex-magicline-radio-group",role:"radiogroup","aria-label":i.magiclineStepTrainer,children:[s("label",{class:e?"jex-magicline-radio-card jex-magicline-radio-card-active":"jex-magicline-radio-card",children:[s("input",{type:"radio",name:o,checked:e,disabled:n,onChange:()=>{r(!0)}}),s("span",{children:i.magiclineTrainerWith})]}),s("label",{class:e?"jex-magicline-radio-card":"jex-magicline-radio-card jex-magicline-radio-card-active",children:[s("input",{type:"radio",name:o,checked:!e,disabled:n,onChange:()=>{r(!1)}}),s("span",{children:i.magiclineTrainerWithout})]})]})}function Yd({slotsState:t,slotId:e,studioZoneId:n,disabled:r,retryPending:i,slotUnavailable:o,error:a,onSelect:l,onRetry:c}){const u=j();return s(O,{children:[o?s("div",{class:"jex-magicline-error",role:"alert",children:u.magiclineSlotUnavailableNotice}):null,i||t.phase==="loading"?s("div",{class:"jex-magicline-slots-hint","aria-live":"polite",children:u.magiclineLoadingSlots}):t.phase==="ready"?s("select",{class:"jex-form-input jex-magicline-select","aria-label":u.magiclineSlotLabel,value:e,required:!0,disabled:r,"aria-invalid":a!==void 0,onChange:h=>{l(h.currentTarget.value)},children:[s("option",{value:"",disabled:!0,children:u.magiclineSlotPlaceholder}),t.slots.map(h=>s("option",{value:h.startDateTime,children:qa(h.startDateTime,Ae.value,n)},h.startDateTime))]}):t.phase==="error"?s("div",{class:"jex-magicline-slots-error",children:[s("div",{class:"jex-magicline-slots-hint",role:"alert","aria-live":"polite",children:u.magiclineSlotsError}),s("button",{type:"button",class:"jex-magicline-retry",disabled:r,onClick:c,children:u.magiclineRetry})]}):s("div",{class:"jex-magicline-slots-hint",role:"alert","aria-live":"polite",children:u.magiclineNoSlots}),a!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:a}):null]})}function Zd({plan:t,fields:e,errors:n,disabled:r,setField:i}){const o=j(),a=G(()=>Aa(),[]);return s(O,{children:[s("div",{class:"jex-magicline-row",children:[s(Qe,{label:o.magiclineFirstName,value:e.firstName,required:!0,disabled:r,error:n.firstName,fieldKey:"firstName",onInput:l=>{i("firstName",l)}}),s(Qe,{label:o.magiclineLastName,value:e.lastName,required:!0,disabled:r,error:n.lastName,fieldKey:"lastName",onInput:l=>{i("lastName",l)}})]}),t.email.visible?s(Qe,{label:ve(o.magiclineEmail,t.email.required,o),type:"email",value:e.email,required:t.email.required,disabled:r,error:n.email,fieldKey:"email",onInput:l=>{i("email",l)}}):null,t.phone.visible?s(Qe,{label:ve(o.magiclinePhone,t.phone.required,o),type:"tel",value:e.phone,required:t.phone.required,disabled:r,error:n.phone,fieldKey:"phone",onInput:l=>{i("phone",l)}}):null,t.dateOfBirth.visible?s("label",{class:"jex-magicline-field",children:[s("span",{class:"jex-magicline-field-label",children:ve(o.magiclineBirthDate,t.dateOfBirth.required,o)}),s("input",{class:"jex-form-input",type:"date","aria-label":ve(o.magiclineBirthDate,t.dateOfBirth.required,o),value:e.birthDate,max:a,required:t.dateOfBirth.required,disabled:r,"aria-invalid":n.birthDate!==void 0,onInput:l=>{i("birthDate",l.currentTarget.value)}}),n.birthDate!==void 0?s("span",{class:"jex-magicline-error",role:"alert",children:n.birthDate}):null]}):null,t.gender.visible?s(Ma,{label:ve(o.magiclineGender,t.gender.required,o),value:e.gender,required:t.gender.required,disabled:r,placeholder:ve(o.magiclineGenderPlaceholder,t.gender.required,o),error:n.gender,onChange:l=>{i("gender",l)},options:Pa.map(l=>({value:l,label:ih(l,o)}))}):null]})}function Xd({plan:t,fields:e,errors:n,disabled:r,setField:i}){const o=j();return s(O,{children:[t.address.visible?s(O,{children:[s("div",{class:"jex-magicline-row",children:[s(Qe,{label:ve(o.magiclineStreet,t.address.required,o),value:e.street,required:t.address.required,disabled:r,error:n.street,fieldKey:"street",onInput:a=>{i("street",a)}}),s(Qe,{label:ve(o.magiclineHouseNumber,t.address.required,o),value:e.houseNumber,required:t.address.required,disabled:r,error:n.houseNumber,fieldKey:"houseNumber",onInput:a=>{i("houseNumber",a)}})]}),s(Qe,{label:ve(o.magiclineCity,t.address.required,o),value:e.city,required:t.address.required,disabled:r,error:n.city,fieldKey:"city",onInput:a=>{i("city",a)}}),s(Ma,{label:ve(o.magiclineCountry,t.address.required,o),value:e.country,required:t.address.required,disabled:r,placeholder:ve(o.magiclineCountryPlaceholder,t.address.required,o),error:n.country,onChange:a=>{i("country",a)},options:Fd.map(a=>({value:a.code,label:a.label}))})]}):null,t.zip.visible?s(Qe,{label:ve(o.magiclineZip,t.zip.required,o),value:e.zip,required:t.zip.required,disabled:r,error:n.zip,fieldKey:"zip",onInput:a=>{i("zip",a)}}):null]})}function eh({consentId:t,privacyUrl:e,studioZoneId:n,fields:r,disabled:i,consentError:o,setField:a}){const l=j(),c=r.slotId!==""?qa(r.slotId,Ae.value,n):"—",u=`${r.firstName} ${r.lastName}`.trim();return s(O,{children:[s("dl",{class:"jex-magicline-summary",children:[s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:l.magiclineSummaryTrainer}),s("dd",{children:r.trainerRequired?l.magiclineTrainerWith:l.magiclineTrainerWithout})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:l.magiclineSummarySlot}),s("dd",{children:c})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:l.magiclineSummaryName}),s("dd",{children:u!==""?u:"—"})]})]}),s("textarea",{class:"jex-form-textarea","aria-label":l.magiclineNote,placeholder:l.magiclineNote,value:r.note,disabled:i,onInput:h=>{a("note",h.currentTarget.value)}}),s("label",{class:"jex-magicline-consent",for:t,children:[s("input",{id:t,type:"checkbox",checked:r.consent,disabled:i,"aria-invalid":o!==void 0,onChange:h=>{a("consent",h.currentTarget.checked)}}),s("span",{children:[l.magiclineConsent," ",s("a",{href:e,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:l.magiclinePrivacyLinkText}),"."]})]}),o!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:o}):null]})}function Qe({label:t,value:e,fieldKey:n,type:r="text",required:i=!1,disabled:o,error:a,onInput:l}){const c=a!==void 0?`jex-ml-err-${n}`:void 0;return s("div",{class:"jex-magicline-field",children:[s("input",{class:"jex-form-input",type:r,"aria-label":t,placeholder:t,value:e,required:i,disabled:o,"aria-invalid":a!==void 0,"aria-describedby":c,onInput:u=>{l(u.currentTarget.value)}}),a!==void 0?s("span",{id:c,class:"jex-magicline-error",role:"alert",children:a}):null]})}function Ma({label:t,value:e,required:n,disabled:r,placeholder:i,error:o,options:a,onChange:l}){return s("div",{class:"jex-magicline-field",children:[s("select",{class:"jex-form-input jex-magicline-select","aria-label":t,value:e,required:n,disabled:r,"aria-invalid":o!==void 0,onChange:c=>{l(c.currentTarget.value)},children:[s("option",{value:"",disabled:n,children:i}),a.map(c=>s("option",{value:c.value,children:c.label},c.value))]}),o!==void 0?s("span",{class:"jex-magicline-error",role:"alert",children:o}):null]})}function ve(t,e,n){return e?t:t+n.magiclineOptionalSuffix}function th(t,e){switch(t){case"trainer":return e.magiclineStepTrainer;case"slot":return e.magiclineStepSlot;case"personal":return e.magiclineStepPersonal;case"address":return e.magiclineStepAddress;case"confirm":return e.magiclineStepConfirm;default:return""}}function nh(t,e,n){return e.trim()!==""?e:t==="unsupported"?n.magiclineConfigUnsupported:t==="inconsistent"?n.magiclineConfigInconsistent:n.magiclineConfigUnavailable}function rh(t,e){const n={firstname:e.firstName.trim(),lastname:e.lastName.trim(),slotId:e.slotId,trainerRequired:e.trainerRequired,privacyConsent:e.consent};return t.email.visible&&e.email.trim()!==""&&(n.email=e.email.trim()),t.phone.visible&&e.phone.trim()!==""&&(n.phone=e.phone.trim()),t.dateOfBirth.visible&&e.birthDate.trim()!==""&&(n.dateOfBirth=e.birthDate.trim()),t.gender.visible&&e.gender!==""&&(n.gender=e.gender),t.address.visible&&(e.street.trim()!==""&&(n.street=e.street.trim()),e.houseNumber.trim()!==""&&(n.houseNumber=e.houseNumber.trim()),e.city.trim()!==""&&(n.city=e.city.trim()),e.country!==""&&(n.country=e.country)),t.zip.visible&&e.zip.trim()!==""&&(n.zip=e.zip.trim()),e.note.trim()!==""&&(n.note=e.note.trim()),n}function ih(t,e){return t==="MALE"?e.magiclineGenderMale:t==="FEMALE"?e.magiclineGenderFemale:e.magiclineGenderUnisex}function qa(t,e,n){const r=e==="de"?"de-DE":"en-GB",i=t.match(/\[([^\]]+)\]\s*$/),o=i?i[1]:n??void 0,a=t.replace(/\[[^\]]+\]\s*$/,""),l=new Date(a);if(Number.isNaN(l.getTime()))return t;try{return l.toLocaleString(r,{weekday:"short",day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",...o?{timeZone:o,timeZoneName:"short"}:{timeZoneName:"short"}})}catch{return l.toLocaleString(r,{weekday:"short",day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",timeZoneName:"short"})}}const oh={termId:null,selectedModuleIds:[],acknowledgedBlocks:{},personal:{firstName:"",lastName:"",email:"",dateOfBirth:"",gender:"",phone:""},address:{street:"",houseNumber:"",zipCode:"",city:""},payment:{accountHolder:"",accountHolderTouched:!1,iban:""},consents:{privacy:!1,sepa:!1}};function ah(t,e){switch(e.type){case"setTermId":return t.termId===e.termId?t:{...t,termId:e.termId,selectedModuleIds:[],acknowledgedBlocks:{}};case"toggleModule":{if(e.selected)return t.selectedModuleIds.includes(e.moduleId)?t:{...t,selectedModuleIds:[...t.selectedModuleIds,e.moduleId]};const n={...t.acknowledgedBlocks};return e.consentAckKey!==void 0&&delete n[e.consentAckKey],{...t,selectedModuleIds:t.selectedModuleIds.filter(r=>r!==e.moduleId),acknowledgedBlocks:n}}case"setBlockAck":return{...t,acknowledgedBlocks:{...t.acknowledgedBlocks,[e.ackKey]:e.value}};case"setPersonal":return{...t,personal:{...t.personal,[e.key]:e.value}};case"setAddress":return{...t,address:{...t.address,[e.key]:e.value}};case"setAccountHolder":return{...t,payment:{...t.payment,accountHolder:e.value,accountHolderTouched:!0}};case"setIban":return{...t,payment:{...t.payment,iban:e.value}};case"setConsent":return{...t,consents:{...t.consents,[e.key]:e.value}};case"clearIban":return{...t,payment:{...t.payment,iban:""}};case"clearTermId":return{...t,termId:null,selectedModuleIds:[],acknowledgedBlocks:{}};case"prefillAccountHolder":return t.payment.accountHolderTouched||t.payment.accountHolder!==""?t:{...t,payment:{...t.payment,accountHolder:e.value}};default:return t}}const Na={draftVoucherCode:"",appliedVoucherCode:null,appliedVoucher:null,voucherStatus:"idle",voucherRequestId:0,voucherUnavailable:!1},sh="voucher:";function lh(t){const e={};for(const n of Object.keys(t))n.startsWith(sh)||(e[n]=t[n]);return e}function ch(t,e){switch(e.type){case"SET_VOUCHER_DRAFT":{const n=t.appliedVoucher!==null||t.voucherStatus==="applied";return{...t,draftVoucherCode:e.value,...n?{appliedVoucher:null,appliedVoucherCode:null,voucherStatus:"idle"}:{}}}case"VOUCHER_APPLYING":return{...t,voucherStatus:"applying",voucherRequestId:t.voucherRequestId+1};case"VOUCHER_APPLIED":return e.requestId!==t.voucherRequestId?t:{...t,appliedVoucher:e.voucher,appliedVoucherCode:e.appliedCode,voucherStatus:"applied"};case"VOUCHER_INVALID":return{...t,appliedVoucher:null,appliedVoucherCode:null,voucherStatus:"invalid"};case"VOUCHER_DISABLED":return{...t,appliedVoucher:null,appliedVoucherCode:null,voucherStatus:"disabled",voucherUnavailable:!0};case"CLEAR_VOUCHER":return{...t,appliedVoucher:null,appliedVoucherCode:null,voucherStatus:"idle"};default:return t}}function uh(t,e){switch(e.type){case"dropVoucherAcks":{const n=lh(t.acknowledgedBlocks);return Object.keys(n).length===Object.keys(t.acknowledgedBlocks).length?t:{...t,acknowledgedBlocks:n}}case"seedVoucherAcks":{if(e.ackKeys.length===0)return t;const n={...t.acknowledgedBlocks};for(const r of e.ackKeys)r in n||(n[r]=!1);return{...t,acknowledgedBlocks:n}}default:return ah(t,e)}}function dh({sessionId:t,visitorId:e}){const n=Ad(),r=Ta(),[i,o]=he(uh,oh),[a,l]=he(ch,Na),[c,u]=he((k,C)=>C,{phase:"loading"}),h=me(null),[f,d]=he((k,C)=>C,{phase:"idle"}),p=N(k=>{k.phase==="ready"?h.current=k.pricing:(k.phase==="idle"||k.phase==="error")&&(h.current=null),d(k)},[]),[g,y]=he(k=>k+1,0),[m,v]=he(k=>k+1,0),b=N(k=>{o({type:"setTermId",termId:k}),l({type:"CLEAR_VOUCHER"})},[]),x=N((k,C)=>{o({type:"setPersonal",key:k,value:C})},[]),P=N((k,C)=>{o({type:"setAddress",key:k,value:C})},[]),S=N((k,C,De)=>{o({type:"toggleModule",moduleId:k,selected:C,consentAckKey:De}),o({type:"dropVoucherAcks"}),l({type:"CLEAR_VOUCHER"})},[]),z=N((k,C)=>{o({type:"setBlockAck",ackKey:k,value:C})},[]),W=N(k=>{o({type:"setAccountHolder",value:k})},[]),V=N(k=>{o({type:"setIban",value:k})},[]),le=N((k,C)=>{o({type:"setConsent",key:k,value:C})},[]),L=N(()=>{o({type:"clearIban"})},[]),H=N(()=>{o({type:"clearTermId"}),l({type:"CLEAR_VOUCHER"})},[]),ie=N(k=>{l({type:"SET_VOUCHER_DRAFT",value:k}),o({type:"dropVoucherAcks"})},[]),w=me(Na.voucherRequestId),Z=N(()=>{const k=w.current+1;return w.current=k,l({type:"VOUCHER_APPLYING"}),k},[]),rn=N(k=>{k.requestId===w.current&&(l({type:"VOUCHER_APPLIED",requestId:k.requestId,voucher:k.voucher,appliedCode:k.appliedCode,voucherAckKeys:k.voucherAckKeys}),p({phase:"ready",pricing:k.pricing}),o({type:"seedVoucherAcks",ackKeys:k.voucherAckKeys}))},[]),nt=N(()=>{l({type:"VOUCHER_INVALID"}),o({type:"dropVoucherAcks"}),v()},[]),rt=N(()=>{l({type:"VOUCHER_DISABLED"}),o({type:"dropVoucherAcks"}),v()},[]),jt=N(()=>{l({type:"CLEAR_VOUCHER"}),o({type:"dropVoucherAcks"}),v()},[]),it=N(()=>{y()},[]),on=N(()=>{p({phase:"idle"})},[]),St=N(()=>{v()},[]),$e=c.phase==="ready"&&i.termId!==null?c.terms.find(k=>k.termId===i.termId)??null:null,{selectedModuleIds:K,acknowledgedBlocks:I}=i,{appliedVoucher:be}=a,Be=G(()=>{if($e===null)return[];const k=new Set;for(const C of $e.textBlocks)C.isConfirmationRequired&&k.add(C.ackKey);for(const C of K){const De=$e.optionalModules.find(ot=>ot.id===C);De?.consent&&k.add(De.consent.ackKey)}if(be!==null)for(const C of be.textBlocks)k.add(C.ackKey);return[...k]},[$e,K,be]),an=G(()=>Be.every(k=>I[k]===!0),[Be,I]),{firstName:oe,lastName:Pe}=i.personal,{accountHolder:de,accountHolderTouched:Ct}=i.payment;return T(()=>{Ct||de!==""||oe.trim()!==""&&Pe.trim()!==""&&o({type:"prefillAccountHolder",value:`${oe.trim()} ${Pe.trim()}`})},[oe,Pe,de,Ct]),T(()=>{let k=!1;return u({phase:"loading"}),(async()=>{try{const C=await n({sessionId:t,visitorId:e});if(k)return;C.status==="ok"?C.terms.length>0?u({phase:"ready",terms:C.terms,allowVoucherCodes:C.allowVoucherCodes}):u({phase:"empty"}):u({phase:"error"})}catch{k||u({phase:"error"})}})(),()=>{k=!0}},[n,t,e,g]),T(()=>{if(m===0)return;const k=$e;if(!k){p({phase:"error",code:"offer_unavailable"});return}let C=!1;const De=h.current;p(De!==null?{phase:"reloading",pricing:De}:{phase:"loading"});const ot=k.defaultContractStartDate??"",Zr={sessionId:t,visitorId:e,termId:k.termId,startDate:ot,fields:{firstname:i.personal.firstName.trim(),lastname:i.personal.lastName.trim(),email:i.personal.email.trim(),dateOfBirth:i.personal.dateOfBirth.trim(),gender:i.personal.gender,phone:i.personal.phone.trim(),street:i.address.street.trim(),houseNumber:i.address.houseNumber.trim(),zipCode:i.address.zipCode.trim(),city:i.address.city.trim()},selectedModuleIds:k.optionalModules.filter(Q=>i.selectedModuleIds.includes(Q.id)).map(Q=>Q.id),privacyConsent:i.consents.privacy,sepaConsent:i.consents.sepa};return(async()=>{try{const Q=await r(Zr);if(C)return;Q.status==="ok"?p({phase:"ready",pricing:{basePrice:Q.basePrice,preUseCharge:Q.preUseCharge,currencyCode:Q.currencyCode,flatFees:Q.flatFees,modules:Q.modules,contractVolume:Q.contractVolume,startDate:Q.startDate,paymentFrequency:Q.paymentFrequency,fingerprint:Q.pricingFingerprint}}):p({phase:"error",code:Q.status})}catch{C||p({phase:"error",code:"unavailable"})}})(),()=>{C=!0}},[m,r,t,e]),{fields:i,offersState:c,previewState:f,selectedTerm:$e,requiredAckKeys:Be,allAcknowledged:an,serverAllowVoucherCodes:c.phase==="ready"?c.allowVoucherCodes:!1,voucherStatus:a.voucherStatus,draftVoucherCode:a.draftVoucherCode,appliedVoucherCode:a.appliedVoucherCode,appliedVoucher:a.appliedVoucher,voucherUnavailable:a.voucherUnavailable,setTermId:b,setPersonal:x,setAddress:P,toggleModule:S,setBlockAck:z,setAccountHolder:W,setIban:V,setConsent:le,clearIban:L,clearTermId:H,refetchOffers:it,fetchPreview:St,resetPreview:on,setVoucherDraft:ie,beginVoucherApply:Z,commitVoucherApplied:rn,markVoucherInvalid:nt,markVoucherDisabled:rt,clearVoucher:jt}}function hh(t){return t!==null&&t.optionalModules.length>0?["offer","upgrades","personal","address","payment","review"]:["offer","personal","address","payment","review"]}function ph({formMessageId:t,sessionId:e,visitorId:n,projectId:r,formStatus:i}){const o=j(),a=Ae.value,l=Id(),c=Ta(),u=dh({sessionId:e,visitorId:n}),{fields:h,offersState:f,previewState:d,selectedTerm:p,requiredAckKeys:g,allAcknowledged:y,serverAllowVoucherCodes:m,voucherStatus:v,draftVoucherCode:b,appliedVoucher:x,appliedVoucherCode:P,voucherUnavailable:S,setTermId:z,setPersonal:W,setAddress:V,toggleModule:le,setBlockAck:L,setAccountHolder:H,setIban:ie,setConsent:w,clearIban:Z,clearTermId:rn,refetchOffers:nt,fetchPreview:rt,resetPreview:jt,setVoucherDraft:it,beginVoucherApply:on,commitVoucherApplied:St,markVoucherInvalid:$e,markVoucherDisabled:K}=u,[I,be]=R(0),[Be,an]=R({}),[oe,Pe]=R(!1),[de,Ct]=R(null),[k,C]=R(null),[De,ot]=R(null),Zr=G(()=>Ia(),[]);if(de!==null&&de.status==="succeeded")return s(La,{customerNumber:de.customerNumber});if(de!==null&&de.status==="failed"&&!de.retryable){const q=de.errorCode==="duplicate_submission"?o.magiclineDuplicateNotice:de.errorCode==="unknown_outcome"?o.magiclineUnknownOutcome:de.errorCode==="live_submission_disabled"?o.magiclineLiveSubmissionDisabled:o.magiclineFailedDetail;return s(Oa,{message:q})}if(de===null&&!oe&&i==="submitted")return s(La,{customerNumber:null});if(de===null&&!oe&&i==="failed")return s(Oa,{message:o.magiclineFailedDetail});const Q=G(()=>hh(p),[p]),Tt=Math.min(I,Q.length-1),Me=Q[Tt],Ja=Tt===Q.length-1,ap=Tt===0;function sp(q){const E={};if(q==="offer")return h.termId===null&&(E.termId=o.magiclineOfferRequiredError),E;if(q==="upgrades"){if(p!==null)for(const X of h.selectedModuleIds){const at=p.optionalModules.find(te=>te.id===X);if(at?.consent&&h.acknowledgedBlocks[at.consent.ackKey]!==!0){E.upgrades=o.magiclineUpgradeConsentError;break}}return E}if(q==="personal"){const X=h.personal;return X.firstName.trim()===""&&(E.firstName=o.magiclineRequiredError),X.lastName.trim()===""&&(E.lastName=o.magiclineRequiredError),X.email.trim()===""?E.email=o.magiclineRequiredError:Ra(X.email)||(E.email=o.magiclineEmailError),X.dateOfBirth.trim()===""&&(E.dateOfBirth=o.magiclineRequiredError),X.gender===""&&(E.gender=o.magiclineRequiredError),X.phone.trim()===""&&(E.phone=o.magiclineRequiredError),E}if(q==="address"){const X=h.address;return X.street.trim()===""&&(E.street=o.magiclineRequiredError),X.houseNumber.trim()===""&&(E.houseNumber=o.magiclineRequiredError),X.zipCode.trim()===""&&(E.zipCode=o.magiclineRequiredError),X.city.trim()===""&&(E.city=o.magiclineRequiredError),E}return q==="payment"&&(h.payment.accountHolder.trim()===""&&(E.accountHolder=o.magiclineRequiredError),Nd(h.payment.iban)||(E.iban=o.magiclineIbanInvalidError),h.consents.privacy||(E.privacy=o.magiclineConsentError),h.consents.sepa||(E.sepa=o.magiclineConsentError)),E}function lp(){const q=sp(Me);if(Object.keys(q).length>0){an(q);return}an({}),C(null);const E=Math.min(Tt+1,Q.length-1);Q[E]==="review"&&rt(),be(E)}function cp(){an({}),C(null),Me==="review"&&jt(),be(q=>Math.max(q-1,0))}function up(){C(null),rt()}async function dp(){if(!oe&&!(d.phase!=="ready"||p===null)){if(!y){C(o.magiclineConfirmRequiredError);return}Pe(!0),C(null);try{const q=await l({sessionId:e,visitorId:n,projectId:r,formMessageId:t,fields:{firstname:h.personal.firstName.trim(),lastname:h.personal.lastName.trim(),email:h.personal.email.trim(),phone:h.personal.phone.trim(),dateOfBirth:h.personal.dateOfBirth.trim(),gender:h.personal.gender,street:h.address.street.trim(),houseNumber:h.address.houseNumber.trim(),zipCode:h.address.zipCode.trim(),city:h.address.city.trim(),rateBundleTermId:p.termId,privacyConsent:h.consents.privacy,sepaConsent:h.consents.sepa},bankAccount:{accountHolder:h.payment.accountHolder.trim(),iban:h.payment.iban},selectedModuleIds:p.optionalModules.filter(E=>h.selectedModuleIds.includes(E.id)).map(E=>E.id),acknowledgedAckKeys:g,pricingFingerprint:d.pricing.fingerprint,voucherCode:P??void 0});if(q.status==="succeeded"){Ct(q);return}if(q.errorCode==="price_changed"){C(o.magiclinePriceChangedNotice),rt(),Pe(!1);return}if(q.errorCode==="offer_unavailable"){rn(),nt(),jt(),C(o.magiclineOfferUnavailableNotice),be(0),Pe(!1);return}if(q.errorCode==="confirmation_required"){C(o.magiclineConfirmationRequiredNotice),Pe(!1);return}if(q.errorCode==="live_submission_disabled"){Ct(q);return}if(!q.retryable){Ct(q);return}Z(),C(q.message!==""?q.message:o.magiclineFailedDetail),Pe(!1)}catch(q){console.error("[ContractCreationForm] Submit failed:",q),Z(),C(o.magiclineFailedDetail),Pe(!1)}}}async function hp(){if(d.phase!=="ready"||p===null||b.trim()==="")return;const q=b.trim(),E=on();ot(null);const X=te=>{$e(),it(""),ot(te)},at=o.magiclineVoucherInvalid.replace("{code}",q);try{const te=await c({sessionId:e,visitorId:n,termId:p.termId,startDate:p.defaultContractStartDate??"",fields:{firstname:h.personal.firstName.trim(),lastname:h.personal.lastName.trim(),email:h.personal.email.trim(),dateOfBirth:h.personal.dateOfBirth.trim(),gender:h.personal.gender,phone:h.personal.phone.trim(),street:h.address.street.trim(),houseNumber:h.address.houseNumber.trim(),zipCode:h.address.zipCode.trim(),city:h.address.city.trim()},selectedModuleIds:p.optionalModules.filter(st=>h.selectedModuleIds.includes(st.id)).map(st=>st.id),privacyConsent:h.consents.privacy,sepaConsent:h.consents.sepa,voucherCode:b.trim()});if(te.status==="ok"){const st=te.voucher;if(st!==null){const xp=st.textBlocks.map(vp=>vp.ackKey);St({requestId:E,voucher:st,appliedCode:b.trim(),voucherAckKeys:xp,pricing:{basePrice:te.basePrice,preUseCharge:te.preUseCharge,currencyCode:te.currencyCode,flatFees:te.flatFees,modules:te.modules,contractVolume:te.contractVolume,startDate:te.startDate,paymentFrequency:te.paymentFrequency,fingerprint:te.pricingFingerprint}})}else X(at)}else te.status==="voucher_invalid"?X(at):te.status==="voucher_disabled"?(K(),it(""),ot(o.magiclineVoucherDisabled)):X(at)}catch{X(at)}}function pp(){Ja?dp():lp()}const Ya=Ch(Me,o),fp=v==="applying"||b.trim()!==""&&b.trim()!==(P??""),gp=Me==="review"&&(d.phase!=="ready"||!y||fp),mp=oe||gp;return s("div",{class:"jex-inline-form jex-magicline-form",children:[s("div",{class:"jex-magicline-wizard-header",children:[s("div",{class:"jex-inline-form-title",children:o.magiclineContractTitle}),s("div",{class:"jex-magicline-wizard-progress",children:[s("span",{class:"jex-magicline-wizard-step-label",children:Ya}),s("span",{class:"jex-magicline-wizard-counter",children:o.magiclineStepCounter.replace("{n}",String(Tt+1)).replace("{total}",String(Q.length))})]}),s("div",{class:"jex-magicline-wizard-dots","aria-hidden":"true",children:Q.map((q,E)=>s("span",{class:E===Tt?"jex-magicline-wizard-dot jex-magicline-wizard-dot-active":"jex-magicline-wizard-dot"},q))})]}),s("div",{class:"jex-form",role:"group","aria-label":Ya,children:[Me==="offer"?s(fh,{offersState:f,selectedTermId:h.termId,widgetLocale:a,disabled:oe,error:Be.termId,onSelect:z,onRetry:nt}):null,Me==="upgrades"&&p!==null?s(xh,{modules:p.optionalModules,selectedModuleIds:h.selectedModuleIds,acknowledgedBlocks:h.acknowledgedBlocks,widgetLocale:a,disabled:oe,error:Be.upgrades,onToggle:le,onAck:L}):null,Me==="personal"?s(bh,{personal:h.personal,errors:Be,disabled:oe,setPersonal:W}):null,Me==="address"?s(yh,{address:h.address,errors:Be,disabled:oe,setAddress:V}):null,Me==="payment"?s(wh,{formMessageId:t,fields:h,errors:Be,privacyUrl:Zr,disabled:oe,setAccountHolder:H,setIban:ie,setConsent:w}):null,Me==="review"?s(kh,{fields:h,term:p,previewState:d,widgetLocale:a,disabled:oe,acknowledgedBlocks:h.acknowledgedBlocks,onToggleAck:L,onRetry:up,allowVoucherCodes:m,voucherUnavailable:S,voucherStatus:v,draftVoucherCode:b,appliedVoucher:x,voucherBanner:De,onVoucherDraftChange:it,onApplyVoucher:()=>{hp()}}):null,k!==null?s("div",{class:"jex-magicline-error",role:"alert",children:k}):null,s("div",{class:"jex-magicline-wizard-nav",children:[ap?null:s("button",{type:"button",class:"jex-magicline-wizard-back",disabled:oe,onClick:cp,children:o.magiclineWizardBack}),s("button",{type:"button",class:"jex-form-submit jex-magicline-wizard-next",disabled:mp,onClick:pp,children:Ja?oe?o.magiclineSubmitting:o.magiclineSubmit:o.magiclineWizardNext})]})]})]})}function La({customerNumber:t}){const e=j();return s("div",{class:"jex-inline-form-submitted",children:[s("span",{class:"jex-inline-form-check",children:"✓"}),s("div",{children:[s("div",{class:"jex-inline-form-submitted-title",children:e.magiclineContractSuccessTitle}),s("div",{class:"jex-inline-form-submitted-detail",children:e.magiclineContractSuccessDetail}),t!==null&&t!==""?s("div",{class:"jex-inline-form-submitted-detail",children:e.magiclineCustomerNumber.replace("{number}",t)}):null]})]})}function Oa({message:t}){const e=j();return s("div",{class:"jex-inline-form-submitted jex-magicline-failed",children:[s("span",{class:"jex-inline-form-check jex-magicline-failed-icon",children:"!"}),s("div",{children:[s("div",{class:"jex-inline-form-submitted-title",children:e.magiclineFailed}),s("div",{class:"jex-inline-form-submitted-detail",children:t})]})]})}function fh({offersState:t,selectedTermId:e,widgetLocale:n,disabled:r,error:i,onSelect:o,onRetry:a}){const l=j();if(t.phase==="loading")return s("div",{class:"jex-magicline-slots-hint","aria-live":"polite",children:l.magiclineOffersLoading});if(t.phase==="error")return s("div",{class:"jex-magicline-slots-error",children:[s("div",{class:"jex-magicline-slots-hint",role:"alert","aria-live":"polite",children:l.magiclineOffersError}),s("button",{type:"button",class:"jex-magicline-retry",disabled:r,onClick:a,children:l.magiclineRetry})]});if(t.phase==="empty")return s("div",{class:"jex-magicline-slots-hint",role:"alert","aria-live":"polite",children:l.magiclineNoOffers});const c=Sh(t.terms);return s(O,{children:[s("div",{class:"jex-magicline-radio-group",role:"radiogroup","aria-label":l.magiclineStepOffer,children:c.map(u=>s("div",{class:"jex-magicline-offer-group",children:[s("div",{class:"jex-magicline-offer-bundle-name",children:u.bundleName}),u.bundleDescription!==null?s("div",{class:"jex-magicline-offer-bundle-desc",children:u.bundleDescription}):null,u.terms.map(h=>s(gh,{term:h,checked:e===h.termId,widgetLocale:n,disabled:r,onSelect:o},h.termId)),s(mh,{subDescription:u.bundleSubDescription,footnote:u.footnote})]},u.bundleId))}),i!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:i}):null]})}function gh({term:t,checked:e,widgetLocale:n,disabled:r,onSelect:i}){const o=j(),a=Un(t.termValue,t.termUnit,n),l=_e(t.price,t.currencyCode,n),c=t.flatFees.find(h=>h.isStarterPackage),u=t.flatFees.filter(h=>!h.isStarterPackage);return s("label",{class:e?"jex-magicline-radio-card jex-magicline-radio-card-active":"jex-magicline-radio-card",children:[s("input",{type:"radio",name:"jex-ml-offer",checked:e,disabled:r,onChange:()=>{i(t.termId)}}),s("span",{class:"jex-magicline-offer-term",children:[s("span",{class:"jex-magicline-offer-term-head",children:[s("span",{class:"jex-magicline-offer-term-length",children:a}),s("span",{class:"jex-magicline-offer-term-price",children:[l," ",Gr(t.paymentFrequency.value,t.paymentFrequency.unit,n)]})]}),t.cancellationPeriod!==null?s("span",{class:"jex-magicline-offer-term-note",children:[o.magiclineCancellationPeriod,":"," ",Un(t.cancellationPeriod.value,t.cancellationPeriod.unit,n)]}):null,c!==void 0?s("span",{class:"jex-magicline-offer-term-note",children:[o.magiclineStarterPackage,":"," ",_e(c.price,t.currencyCode,n)]}):null,u.map(h=>s("span",{class:"jex-magicline-offer-term-note",children:[$a(h.name,o),": ",_e(h.price,t.currencyCode,n)]},h.name)),t.includedModuleNames.length>0?s("span",{class:"jex-magicline-offer-term-note",children:[o.magiclineIncludedModules,": ",t.includedModuleNames.join(", ")]}):null]})]})}function mh({subDescription:t,footnote:e}){const n=j(),r=jh(t),i=e!==null&&e.trim()!=="";return r.length===0&&!i?null:s("details",{class:"jex-magicline-bundle-details",children:[s("summary",{class:"jex-magicline-bundle-details-summary",children:n.magiclineDetails}),s("div",{class:"jex-magicline-bundle-details-body",children:[r.length>0?s("ul",{class:"jex-magicline-bundle-details-list",children:r.map((o,a)=>s("li",{children:o},`${a}-${o}`))}):null,i?s("p",{class:"jex-magicline-bundle-details-footnote",children:e}):null]})]})}function xh({modules:t,selectedModuleIds:e,acknowledgedBlocks:n,widgetLocale:r,disabled:i,error:o,onToggle:a,onAck:l}){const c=j();return t.length===0?s("div",{class:"jex-magicline-slots-hint",children:c.magiclineUpgradesNone}):s(O,{children:[s("div",{class:"jex-magicline-slots-hint",children:c.magiclineUpgradesIntro}),s("div",{class:"jex-magicline-upgrade-group",children:t.map(u=>s(vh,{module:u,selected:e.includes(u.id),consentChecked:u.consent!==null&&n[u.consent.ackKey]===!0,widgetLocale:r,disabled:i,onToggle:a,onAck:l},u.id))}),o!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:o}):null]})}function vh({module:t,selected:e,consentChecked:n,widgetLocale:r,disabled:i,onToggle:o,onAck:a}){const l=j(),c=zd(t.price,t.currencyCode,t.paymentFrequencyType,t.recurringUnit,r),u=Ud(t.extensionType,t.termExtension,r),h=t.termLabel!==null&&t.termLabel!==""?t.termLabel:l.magiclineUpgradeOneTime,f=t.consent;return s("div",{class:e?"jex-magicline-upgrade-card jex-magicline-upgrade-card-active":"jex-magicline-upgrade-card",children:[s("label",{class:"jex-magicline-upgrade-head",children:[s("input",{type:"checkbox",checked:e,disabled:i,onChange:d=>{o(t.id,d.currentTarget.checked,f?.ackKey)}}),s("span",{class:"jex-magicline-upgrade-info",children:[s("span",{class:"jex-magicline-upgrade-name",children:t.name}),t.description!==null&&t.description!==""?s("span",{class:"jex-magicline-upgrade-desc",children:t.description}):null,s("span",{class:"jex-magicline-upgrade-price",children:c}),s("span",{class:"jex-magicline-upgrade-desc",children:h}),u!==""?s("span",{class:"jex-magicline-upgrade-desc",children:u}):null]}),s("span",{class:"jex-magicline-upgrade-status",children:e?l.magiclineUpgradeAdded:l.magiclineUpgradeAdd})]}),e&&f!==null?s(Jr,{ackKey:f.ackKey,title:f.title,text:f.text,attachmentLabel:f.attachmentLabel,attachmentUrl:f.attachmentUrl,checked:n,disabled:i,onToggle:a,showRequiredPill:!0}):null]})}function bh({personal:t,errors:e,disabled:n,setPersonal:r}){const i=j(),o=G(()=>Aa(),[]);return s(O,{children:[s("div",{class:"jex-magicline-row",children:[s(Ee,{label:i.magiclineFirstName,value:t.firstName,required:!0,disabled:n,error:e.firstName,fieldKey:"firstName",onInput:a=>{r("firstName",a)}}),s(Ee,{label:i.magiclineLastName,value:t.lastName,required:!0,disabled:n,error:e.lastName,fieldKey:"lastName",onInput:a=>{r("lastName",a)}})]}),s(Ee,{label:i.magiclineEmail,type:"email",value:t.email,required:!0,disabled:n,error:e.email,fieldKey:"email",onInput:a=>{r("email",a)}}),s("label",{class:"jex-magicline-field",children:[s("span",{class:"jex-magicline-field-label",children:i.magiclineBirthDate}),s("input",{class:"jex-form-input",type:"date","aria-label":i.magiclineBirthDate,value:t.dateOfBirth,max:o,required:!0,disabled:n,"aria-invalid":e.dateOfBirth!==void 0,onInput:a=>{r("dateOfBirth",a.currentTarget.value)}}),e.dateOfBirth!==void 0?s("span",{class:"jex-magicline-error",role:"alert",children:e.dateOfBirth}):null]}),s(_h,{label:i.magiclineGender,value:t.gender,required:!0,disabled:n,placeholder:i.magiclineGenderPlaceholder,error:e.gender,onChange:a=>{r("gender",a)},options:Pa.map(a=>({value:a,label:Th(a,i)}))}),s(Ee,{label:i.magiclinePhone,type:"tel",value:t.phone,required:!0,disabled:n,error:e.phone,fieldKey:"phone",onInput:a=>{r("phone",a)}})]})}function yh({address:t,errors:e,disabled:n,setAddress:r}){const i=j();return s(O,{children:[s("div",{class:"jex-magicline-row",children:[s(Ee,{label:i.magiclineStreet,value:t.street,required:!0,disabled:n,error:e.street,fieldKey:"street",onInput:o=>{r("street",o)}}),s(Ee,{label:i.magiclineHouseNumber,value:t.houseNumber,required:!0,disabled:n,error:e.houseNumber,fieldKey:"houseNumber",onInput:o=>{r("houseNumber",o)}})]}),s("div",{class:"jex-magicline-row",children:[s(Ee,{label:i.magiclineZip,value:t.zipCode,required:!0,disabled:n,error:e.zipCode,fieldKey:"zipCode",onInput:o=>{r("zipCode",o)}}),s(Ee,{label:i.magiclineCity,value:t.city,required:!0,disabled:n,error:e.city,fieldKey:"city",onInput:o=>{r("city",o)}})]}),s("div",{class:"jex-magicline-field",children:[s("span",{class:"jex-magicline-field-label",children:i.magiclineCountry}),s("div",{class:"jex-magicline-static-value",children:i.magiclineCountryStatic})]})]})}function wh({formMessageId:t,fields:e,errors:n,privacyUrl:r,disabled:i,setAccountHolder:o,setIban:a,setConsent:l}){const c=j(),u=`jex-ml-privacy-${t}`,h=`jex-ml-sepa-${t}`;return s(O,{children:[s(Ee,{label:c.magiclineAccountHolder,value:e.payment.accountHolder,required:!0,disabled:i,error:n.accountHolder,fieldKey:"accountHolder",onInput:o}),s(Ee,{label:c.magiclineIban,value:e.payment.iban,required:!0,disabled:i,error:n.iban,fieldKey:"iban",onInput:a}),s("label",{class:"jex-magicline-consent",for:u,children:[s("input",{id:u,type:"checkbox",checked:e.consents.privacy,disabled:i,"aria-invalid":n.privacy!==void 0,onChange:f=>{l("privacy",f.currentTarget.checked)}}),s("span",{children:[c.magiclineConsent," ",s("a",{href:r,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:c.magiclinePrivacyLinkText}),"."]})]}),s("label",{class:"jex-magicline-consent",for:h,children:[s("input",{id:h,type:"checkbox",checked:e.consents.sepa,disabled:i,"aria-invalid":n.sepa!==void 0,onChange:f=>{l("sepa",f.currentTarget.checked)}}),s("span",{children:c.magiclineSepaConsent})]}),n.privacy!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:n.privacy}):null,n.sepa!==void 0?s("div",{class:"jex-magicline-error",role:"alert",children:n.sepa}):null]})}function kh({fields:t,term:e,previewState:n,widgetLocale:r,disabled:i,acknowledgedBlocks:o,onToggleAck:a,onRetry:l,allowVoucherCodes:c,voucherUnavailable:u,voucherStatus:h,draftVoucherCode:f,appliedVoucher:d,voucherBanner:p,onVoucherDraftChange:g,onApplyVoucher:y}){const m=j();if(n.phase==="loading"||n.phase==="idle")return s("div",{class:"jex-magicline-slots-hint","aria-live":"polite",children:m.magiclineReviewLoading});if(n.phase==="error")return s("div",{class:"jex-magicline-slots-error",children:[s("div",{class:"jex-magicline-slots-hint",role:"alert","aria-live":"polite",children:n.code==="offer_unavailable"?m.magiclineOfferUnavailableNotice:m.magiclineReviewError}),s("button",{type:"button",class:"jex-magicline-retry",disabled:i,onClick:l,children:m.magiclineRetry})]});const v=n.pricing,b=n.phase==="reloading",x=v.contractVolume,P=`${t.personal.firstName} ${t.personal.lastName}`.trim(),S=t.address,z=[`${S.street} ${S.houseNumber}`.trim(),`${S.zipCode} ${S.city}`.trim(),m.magiclineCountryStatic].filter(w=>w!=="").join(", "),W=e!==null?`${e.bundleName} · ${Un(e.termValue,e.termUnit,r)}`:"—",V=e!==null?e.textBlocks.filter(w=>w.isConfirmationRequired):[],le=e!==null?e.textBlocks.filter(w=>!w.isConfirmationRequired):[],L=e!==null?e.optionalModules.filter(w=>t.selectedModuleIds.includes(w.id)&&w.consent!==null).map(w=>({module:w,consent:w.consent})):[],H=d!==null?d.textBlocks.filter(w=>w.ackKey.startsWith("voucher:")):[],ie=c&&!u;return s("div",{class:"jex-magicline-review-wrap",children:[s("div",{class:b?"jex-magicline-review-body jex-magicline-review-body--reloading":"jex-magicline-review-body","aria-busy":b,children:[s("dl",{class:"jex-magicline-summary",children:[s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineReviewOffer}),s("dd",{children:W})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineReviewBasePrice}),s("dd",{children:[d!==null&&d.voucherType==="DISCOUNT"?_e(d.discountedBasePrice,v.currencyCode,r):_e(v.basePrice,v.currencyCode,r)," ",Gr(v.paymentFrequency.value,v.paymentFrequency.unit,r)]})]}),d!==null&&d.voucherType==="DISCOUNT"?s("div",{class:"jex-magicline-summary-row jex-magicline-voucher-discount-row",children:[s("dt",{children:m.magiclineVoucherAppliedDiscount.replace("{discount}",Bd(d.discountValue,d.discountType,v.currencyCode,r))}),s("dd",{})]}):null,d!==null&&d.remarks!==null&&d.remarks!==""?s("div",{class:"jex-magicline-summary-row jex-magicline-voucher-remarks-row",children:[s("dt",{children:m.magiclineVoucherRemarks}),s("dd",{children:d.remarks})]}):null,v.flatFees.map((w,Z)=>s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:$a(w.name,m)}),s("dd",{children:_e(w.price,v.currencyCode,r)})]},`${w.name}-${Z}`)),v.preUseCharge>0?s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineReviewPreUseCharge}),s("dd",{children:_e(v.preUseCharge,v.currencyCode,r)})]}):null]}),v.modules.length>0?s("dl",{class:"jex-magicline-summary jex-magicline-summary-section",children:[s("div",{class:"jex-magicline-summary-heading",children:m.magiclineReviewSelectedUpgrades}),v.modules.map((w,Z)=>s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:w.name}),s("dd",{children:_e(w.amount,w.currencyCode,r)})]},`${w.moduleId}-${Z}`))]}):null,x!==null&&x.total!==null?s("dl",{class:"jex-magicline-summary jex-magicline-summary-section jex-magicline-summary-totals",children:s("div",{class:"jex-magicline-summary-row jex-magicline-summary-total-row",children:[s("dt",{children:d!==null&&d.voucherType==="DISCOUNT"?m.magiclineGesamtpreisBeforeDiscount:m.magiclineReviewContractVolume}),s("dd",{children:_e(x.total,v.currencyCode,r)})]})}):null,d!==null&&d.voucherType==="CREDIT"?s("div",{class:"jex-magicline-voucher-credit-notice",role:"note",children:m.magiclineVoucherCreditNotice}):null,s("dl",{class:"jex-magicline-summary jex-magicline-summary-section",children:[s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineReviewStartsOn}),s("dd",{children:Od(v.startDate,r)})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineSummaryName}),s("dd",{children:P!==""?P:"—"})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineSummaryAddress}),s("dd",{children:z})]}),s("div",{class:"jex-magicline-summary-row",children:[s("dt",{children:m.magiclineReviewPayment}),s("dd",{children:Ld(t.payment.iban)})]})]}),ie?s("div",{class:"jex-magicline-voucher-section",children:[s("div",{class:"jex-magicline-field jex-magicline-voucher-field",children:[s("input",{class:"jex-form-input",type:"text","aria-label":m.magiclineVoucherLabel,placeholder:m.magiclineVoucherPlaceholder,value:f,disabled:i||h==="applying",onInput:w=>{g(w.currentTarget.value)}}),s("button",{type:"button",class:"jex-magicline-voucher-apply",disabled:i||h==="applying"||f.trim()==="",onClick:y,children:m.magiclineVoucherApply})]}),p!==null?s("div",{class:"jex-magicline-error",role:"alert",children:p}):null]}):null,L.length>0?s("div",{class:"jex-magicline-terms",role:"group","aria-label":m.magiclineReviewSelectedUpgrades,children:[s("div",{class:"jex-magicline-upgrades-recap-title",children:m.magiclineReviewSelectedUpgrades}),L.map(({module:w,consent:Z})=>s(za,{title:Z.title!==""?Z.title:w.name,text:Z.text,attachmentLabel:Z.attachmentLabel,attachmentUrl:Z.attachmentUrl},Z.ackKey))]}):null,V.length>0||le.length>0||H.length>0?s("div",{class:"jex-magicline-terms",role:"group","aria-label":m.magiclineReviewTerms,children:[V.length>0||H.length>0?s("div",{class:"jex-magicline-terms-prompt",children:[m.magiclineConfirmPrompt,s("span",{class:"jex-magicline-required-pill",children:m.magiclineRequired})]}):null,V.map(w=>s(Jr,{ackKey:w.ackKey,title:w.title,text:w.text,attachmentLabel:w.attachmentLabel,attachmentUrl:w.attachmentUrl,checked:o[w.ackKey]===!0,disabled:i,onToggle:a},w.ackKey)),H.map(w=>s(Jr,{ackKey:w.ackKey,title:w.title,text:w.text,attachmentLabel:w.attachmentLabel,attachmentUrl:w.attachmentUrl,checked:o[w.ackKey]===!0,disabled:i,onToggle:a},w.ackKey)),le.map((w,Z)=>s(za,{title:w.title,text:w.text,attachmentLabel:w.attachmentLabel,attachmentUrl:w.attachmentUrl},`${w.title}-${Z}`))]}):null]}),b?s("div",{class:"jex-magicline-review-overlay","aria-hidden":"true",children:s("span",{class:"jex-magicline-review-spinner"})}):null]})}function Jr({ackKey:t,title:e,text:n,attachmentLabel:r,attachmentUrl:i,checked:o,disabled:a,onToggle:l,showRequiredPill:c=!1}){const u=j(),h=`jex-ml-ack-${t}`;return s("div",{class:"jex-magicline-consent-region",children:[c?s("span",{class:"jex-magicline-required-pill",children:u.magiclineRequired}):null,s("label",{class:"jex-magicline-consent",for:h,children:[s("input",{id:h,type:"checkbox",checked:o,disabled:a,onChange:f=>{l(t,f.currentTarget.checked)}}),s("span",{class:"jex-magicline-consent-body",children:[e!==""?s("span",{class:"jex-magicline-terms-title",children:e}):null,s("span",{class:"jex-magicline-terms-content",children:[n,i!==null?s(O,{children:[" ",s("a",{href:i,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:r!==null&&r!==""?r:i})]}):null]})]})]})]})}function za({title:t,text:e,attachmentLabel:n,attachmentUrl:r}){return s("div",{class:"jex-magicline-consent-recap",children:[t!==""?s("span",{class:"jex-magicline-terms-title",children:t}):null,s("span",{class:"jex-magicline-terms-content",children:[e,r!==null?s(O,{children:[" ",s("a",{href:r,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:n!==null&&n!==""?n:r})]}):null]})]})}function Ee({label:t,value:e,fieldKey:n,type:r="text",required:i=!1,disabled:o,error:a,onInput:l}){const c=a!==void 0?`jex-ml-err-${n}`:void 0;return s("div",{class:"jex-magicline-field",children:[s("input",{class:"jex-form-input",type:r,"aria-label":t,placeholder:t,value:e,required:i,disabled:o,"aria-invalid":a!==void 0,"aria-describedby":c,onInput:u=>{l(u.currentTarget.value)}}),a!==void 0?s("span",{id:c,class:"jex-magicline-error",role:"alert",children:a}):null]})}function _h({label:t,value:e,required:n,disabled:r,placeholder:i,error:o,options:a,onChange:l}){return s("div",{class:"jex-magicline-field",children:[s("select",{class:"jex-form-input jex-magicline-select","aria-label":t,value:e,required:n,disabled:r,"aria-invalid":o!==void 0,onChange:c=>{l(c.currentTarget.value)},children:[s("option",{value:"",disabled:n,children:i}),a.map(c=>s("option",{value:c.value,children:c.label},c.value))]}),o!==void 0?s("span",{class:"jex-magicline-error",role:"alert",children:o}):null]})}function jh(t){return t===null?[]:t.split(`
69
+ `).map(e=>e.replace(/^\s*[-•]\s*/,"").trim()).filter(e=>e!=="")}function Sh(t){const e=[],n=new Map;for(const r of t){let i=n.get(r.bundleId);i||(i={bundleId:r.bundleId,bundleName:r.bundleName,bundleDescription:r.bundleDescription,bundleSubDescription:r.bundleSubDescription,footnote:r.footnote,terms:[]},n.set(r.bundleId,i),e.push(i)),i.terms.push(r)}return e}function Ch(t,e){switch(t){case"offer":return e.magiclineStepOffer;case"upgrades":return e.magiclineStepUpgrades;case"personal":return e.magiclineStepPersonal;case"address":return e.magiclineStepAddress;case"payment":return e.magiclineStepPayment;case"review":return e.magiclineStepReview;default:return""}}function Th(t,e){return t==="MALE"?e.magiclineGenderMale:t==="FEMALE"?e.magiclineGenderFemale:e.magiclineGenderUnisex}function Rh({message:t,sessionId:e,visitorId:n}){const r=j(),i=t.magiclineForm,o=!!i&&i.status==="open"&&!!i.submissionId,a=wn(re.functions.magicline.public.getSubmissionStatus,o&&i?.submissionId?{sessionId:e,visitorId:n,submissionId:i.submissionId}:"skip");if(!i)return null;if(i.action==="contractCreation")return t.projectId?s(ph,{formMessageId:t._id,sessionId:e,visitorId:n,projectId:t.projectId,formStatus:i.status}):null;if(i.status==="submitted")return s("div",{class:"jex-inline-form-submitted",children:[s("span",{class:"jex-inline-form-check",children:"✓"}),s("div",{children:[s("div",{class:"jex-inline-form-submitted-title",children:r.magiclineTrialSuccessTitle}),s("div",{class:"jex-inline-form-submitted-detail",children:r.magiclineTrialSuccessDetail})]})]});if(i.status==="failed")return s("div",{class:"jex-inline-form-submitted jex-magicline-failed",children:[s("span",{class:"jex-inline-form-check jex-magicline-failed-icon",children:"!"}),s("div",{children:[s("div",{class:"jex-inline-form-submitted-title",children:r.magiclineFailed}),s("div",{class:"jex-inline-form-submitted-detail",children:r.magiclineFailedDetail})]})]});if(i.action!=="trialSessionBooking")return null;const l=a!=null&&a.errorCode==="slot_unavailable",c=o&&a===void 0;return s(Kd,{formMessageId:t._id,sessionId:e,visitorId:n,slotUnavailable:l,retryPending:c})}const Ah={crawl:"🌐",file:"📄",snippet:"💡",qa:"❓"};function Ih({sources:t}){const e=j(),[n,r]=R(!1);return t.length===0?null:s("div",{class:"jex-sources-row",children:[s("button",{type:"button",class:"jex-sources-toggle",onClick:()=>{r(i=>!i)},"aria-expanded":n,children:[s("span",{class:"jex-sources-icon",children:"📖"}),s("span",{children:(t.length===1?e.sourcesCountOne:e.sourcesCountOther).replace("{count}",String(t.length))}),s("span",{class:`jex-sources-chevron${n?" jex-sources-chevron--open":""}`,children:"▾"})]}),n?s("div",{class:"jex-sources-pills",children:t.map((i,o)=>{const a=i.sourceType==="crawl",l=Eh(i),c=a&&i.url?`${i.title}
70
+ ${i.url}`:i.title,u=s(O,{children:[typeof i.id=="number"?s("span",{class:"jex-source-id",children:i.id}):null,s("span",{class:"jex-source-type",children:Ah[i.sourceType]}),s("span",{class:"jex-source-label",children:l}),s("span",{class:"jex-source-score",children:["· ",i.score.toFixed(2)]})]});return a&&i.url?s("a",{class:"jex-source-pill",href:i.url,target:"_blank",rel:"noopener noreferrer",title:c,children:u},o):s("span",{class:"jex-source-pill",title:c,children:u},o)})}):null]})}function Eh(t){if(t.sourceType==="crawl"&&t.url)try{const e=new URL(t.url);return!e.pathname||e.pathname==="/"?e.hostname:e.pathname}catch{}return t.title}function $h(){return s("div",{class:"jex-typing",children:[s("span",{}),s("span",{}),s("span",{})]})}const Ph=/\s?\[\d+\]/g;function Ba(t){return t.replace(Ph,"")}function Mh(t){return t?.at(-1)?._creationTime??0}function qh({conversations:t,greeting:e,botName:n,starterQuestions:r,onPickStarter:i,sessionNotFound:o,resumeFailed:a,onStartFresh:l,sessionId:c,visitorId:u}){const h=j(),f=me(null),[d,p]=R(null),g=Mh(t),y=Ca(),m=me(null);T(()=>{if(!u||!t)return;const x=t.at(-1);x&&x.role==="assistant"&&x.status!=="streaming"&&x._id!==m.current&&(m.current=x._id,Er(u))},[t,u]),T(()=>{f.current?.scrollIntoView({behavior:"smooth"})},[t?.length,t?.at(-1)?.content]);const v=c===null||t!==void 0&&t.length===0,b=r.length>0&&!o&&!a&&v;return s("div",{class:"jex-chat-messages",children:[s(_t,{text:e,botName:n}),b?s(kd,{questions:r,disabled:Mn.value,onPick:i}):null,o&&a&&l?s("div",{class:"jex-session-prompt",children:[s("div",{class:"jex-session-prompt-text",children:h.sessionNotFoundPrompt}),s("button",{class:"jex-session-prompt-btn",type:"button",onClick:()=>{l()},children:h.startNewConversation})]}):o?s("div",{class:"jex-session-notice",children:h.sessionNotFound}):null,t?.map(x=>{if(x.contentType==="human-notice"){const S=x.noticeKind==="agent-joined"?h.noticeAgentJoined.replace("{name}",x.noticeData?.agentName??""):x.noticeKind==="human-requested"?h.noticeHumanRequested:x.noticeKind==="human-requested-form"?h.noticeHumanRequestedForm:x.noticeKind==="message-received"?h.noticeMessageReceived:x.noticeKind==="agent-handling"?h.noticeAgentHandling:x.noticeKind==="ai-resumed"?h.noticeAiResumed:x.content;return s(_t,{text:S,botName:n},x._id)}if(x.contentType==="escalation-form"&&c&&u)return Hc.value==="screen"&&!x.formData?d===x._id?null:s("div",{class:"jex-inline-form jex-inline-form-card",children:[s("div",{class:"jex-inline-form-title",children:h.escalationPromptTitle}),s("div",{class:"jex-inline-form-subtitle",children:h.escalationPromptSubtitle}),s("button",{class:"jex-form-submit",type:"button",onClick:()=>{Oe({id:"escalation-form",formMessageId:x._id,sessionId:c,visitorId:u,waitingSetAt:g})},children:h.escalationPromptSubmit}),s("button",{class:"jex-escalation-skip",type:"button",onClick:()=>{y({formMessageId:x._id,sessionId:c,visitorId:u,waitingSetAt:g}),p(x._id)},children:h.escalationSkip})]},x._id):s(jd,{message:x,sessionId:c,visitorId:u,waitingSetAt:g},x._id);if(x.contentType==="magicline-form"&&c&&u)return s(Rh,{message:x,sessionId:c,visitorId:u},x._id);if(x.contentType==="escalation-confirm"){const S=x.noticeKind==="escalation-confirmed"?h.noticeEscalationConfirmed.replace("{name}",x.noticeData?.visitorName??"").replace("{email}",x.noticeData?.visitorEmail??"").replace("{ref}",x.noticeData?.visitorId??""):x.content;return s(_t,{text:S,botName:n},x._id)}if(x.role==="user")return s(_d,{text:x.content},x._id);const P={authorId:x.authorId,authorName:x.authorName,authorImage:x.authorImage};return x.status==="streaming"&&x.content===""?s($h,{},x._id):x.status==="streaming"?s(_t,{text:Ba(x.content),streaming:!0,botName:n,...P},x._id):x.status==="error"?s(_t,{text:x.errorMessage??`${h.somethingWentWrong}. ${h.tryAgain}.`,error:!0,botName:n,...P},x._id):s("div",{children:[s(_t,{text:Ba(x.content),botName:n,...P}),x.sources&&x.sources.length>0?s(Ih,{sources:x.sources}):null]},x._id)}),s("div",{ref:f})]})}function Nh(){const t=j();function e(){const n=Yt.peek();n&&(ia(),Oe({id:"escalation-form",formMessageId:n.formMessageId,sessionId:n.sessionId,visitorId:n.visitorId,waitingSetAt:n.waitingSetAt}))}return s("div",{class:"jex-waiting-card",role:"status","aria-live":"polite",children:[s("div",{class:"jex-waiting-indicator","aria-hidden":"true",children:[s("span",{class:"jex-waiting-dot"}),s("span",{class:"jex-waiting-ripple"})]}),s("div",{class:"jex-waiting-body",children:[s("div",{class:"jex-waiting-title",children:t.waitingTitle}),s("div",{class:"jex-waiting-subtitle",children:t.waitingSubtitle}),s("button",{class:"jex-waiting-leave-email",type:"button",onClick:e,children:t.waitingLeaveEmail})]})]})}function Da({message:t}){const[e,n]=R(!1);return T(()=>{const r=setTimeout(()=>{n(!0)},80);return()=>{clearTimeout(r)}},[]),e?s("div",{class:"jex-overlay jex-loading",children:[s("div",{class:"jex-loading-spinner","aria-hidden":"true"}),t&&s("p",{class:"jex-loading-message",children:t})]}):null}function Lh({sessionId:t,visitorId:e}){const n=wn(re.functions.chat.public.conversations.listBySession,t&&e?{sessionId:t,visitorId:e}:"skip"),r=wn(re.functions.chat.public.sessions.getSessionStatus,t&&e?{sessionId:t,visitorId:e}:"skip"),i=t!==null&&n===void 0,o=n?.some(a=>a.status==="streaming")??!1;return{conversations:n,sessionStatus:r??null,isLoading:i,isStreaming:o}}function Oh(t){const e=j(),n=me(null),r=me(null),[i,o]=R(!1);T(()=>{try{n.current=document.title}catch{}},[]),T(()=>{if(!t||t.length===0)return;const a=t[t.length-1];if(r.current===null){r.current=a._id;return}if(a._id===r.current)return;r.current=a._id;const l=a.role!=="user";let c=!1;try{c=document.hidden}catch{}l&&c&&o(!0)},[t]),T(()=>{if(!i)return;let a=null,l=!1;const c=()=>{if(a!==null){try{clearInterval(a)}catch{}a=null}try{n.current!==null&&(document.title=n.current)}catch{}};try{a=setInterval(()=>{try{const u=`💬 ${e.newReplyTitle}`;document.title=l?n.current??"":u,l=!l}catch{c()}},1200)}catch{}return c},[i,e.newReplyTitle]),T(()=>{const a=()=>{try{document.hidden||o(!1)}catch{}};try{document.addEventListener("visibilitychange",a)}catch{}return()=>{try{document.removeEventListener("visibilitychange",a)}catch{}}},[])}function zh({sessionId:t,visitorId:e}){const n=Ye(re.functions.chat.public.visitorPresence.heartbeat);T(()=>{if(!t||!e)return;let r=null;const i=()=>{n({sessionId:t,visitorId:e}).catch(()=>{})},o=()=>{r===null&&(r=setInterval(i,6e4))},a=()=>{r!==null&&(clearInterval(r),r=null)},l=()=>{document.visibilityState==="visible"?(i(),o()):a()};return l(),document.addEventListener("visibilitychange",l),()=>{document.removeEventListener("visibilitychange",l),a()}},[t,e,n])}function Bh(){return Ye(re.functions.chat.public.helpdesk.createEscalationRequest)}function Ua({sessionId:t,visitorId:e,ensureSession:n,onSkipForm:r}){const i=j(),o=Bh(),[a,l]=R(!1),[c,u]=R(null);async function h(){if(!a){l(!0),u(null);try{const f=t&&e?{sessionId:t,visitorId:e}:await n();if(!f)return;const d=Ve.value;if(!d)return;const p=await o({sessionId:f.sessionId,visitorId:f.visitorId,bootstrapToken:d,locale:Ae.value});if(p.skipForm){r?.();return}Oe({id:"escalation-form",formMessageId:p.formMessageId,sessionId:f.sessionId,visitorId:f.visitorId,waitingSetAt:p.waitingSetAt})}catch(f){const d=f instanceof Error?f.message:String(f);u(/RATE_LIMITED|Too many/.test(d)?i.handoffRateLimited:i.handoffFailed)}finally{l(!1)}}}return{requestHuman:h,busy:a,error:c}}function Dh({greeting:t,botName:e,starterQuestions:n,sessionId:r,visitorId:i,isLoading:o,sessionNotFound:a,resumeFailed:l,isOrgDeleted:c,ensureSession:u,startFresh:h}){const f=j(),{conversations:d,sessionStatus:p,isLoading:g,isStreaming:y}=Lh({sessionId:r,visitorId:i});Oh(d),zh({sessionId:r,visitorId:i}),T(()=>{const S=Yt.peek();if(S===null||!d||d.length===0)return;const{waitingSetAt:z}=S;d.some(V=>V._creationTime>z&&(V.noticeKind==="agent-joined"||!!V.authorId))&&ia()},[d]);const m=ra({sessionId:r,visitorId:i,ensureSession:u}),v=me((()=>{const S=bt.peek();return S!==null?S:Ir.peek()&&fe.peek()!==null?"resume":"fresh"})()).current,{requestHuman:b,error:x}=Ua({sessionId:r,visitorId:i,ensureSession:u});return T(()=>{v==="escalate"&&b()},[v]),T(()=>{bt.value=null},[]),T(()=>{fe.peek()!==null&&u()},[u]),T(()=>{i&&Er(i)},[i]),c?s("div",{class:"jex-chat-messages",children:s("div",{class:"jex-session-notice",children:f.chatNoLongerAvailable})}):v==="resume"&&(!r||g)?s(Da,{message:f.resumeConversation}):s(O,{children:[s(qh,{conversations:d,greeting:t,botName:e,starterQuestions:n,onPickStarter:S=>{m(S)},sessionNotFound:a,resumeFailed:l,onStartFresh:h,sessionId:r,visitorId:i}),Yt.value!==null&&s(Nh,{}),x&&s("div",{class:"jex-session-error-notice",role:"alert",style:{margin:"8px 16px 0"},children:x}),s(Su,{sessionId:r,visitorId:i,isLoading:o,isStreaming:y,sessionStatus:p,ensureSession:u,onStartFresh:h})]})}function Fa(t){return wn(re.functions.chat.public.availability.getOrgAvailability,t?{orgSlug:t}:"skip")}function Va(t){return t?.anyOnline?"online":t?.anyAway?"away":"offline"}function Uh({formMessageId:t,sessionId:e,visitorId:n,orgSlug:r}){const i=j(),o=Qt.value,a=/^https?:\/\//i.test(o)?o:Ht,[l,c]=R(""),[u,h]=R(""),f=Fa(r),d=f&&!f.anyOnline?i.escalationOfflineSubtitle:i.escalationSubtitle,p=Sa(),[g,y]=R(!1),[m,v]=R(null);async function b(x){x.preventDefault(),y(!0),v(null);try{await p({sessionId:e,visitorId:n,formMessageId:t,visitorName:l.trim(),visitorEmail:u.trim(),locale:Ae.value}),$r()}catch(P){console.error("[EscalationFormScreen] Submit failed:",P),v(i.escalationSubmitFailed)}finally{y(!1)}}return s("div",{class:"jex-form-screen",children:[s("h2",{class:"jex-form-title",children:i.escalationFormTitle}),s("p",{class:"jex-escalation-subtitle",children:d}),m&&s("div",{class:"jex-form-error",role:"alert",children:m}),s("form",{class:"jex-form",onSubmit:x=>{b(x)},children:[s("input",{class:"jex-form-input",type:"text",placeholder:i.escalationNameLabel,value:l,required:!0,onInput:x=>{c(x.currentTarget.value)}}),s("input",{class:"jex-form-input",type:"email",placeholder:i.escalationEmailLabel,value:u,required:!0,onInput:x=>{h(x.currentTarget.value)}}),s("button",{class:"jex-form-submit",type:"submit",disabled:g,children:i.escalationSubmit})]}),s("div",{class:"jex-inline-form-consent",style:{textAlign:"center",margin:"16px 0 8px 0"},children:[i.escalationConsent," ",s("a",{href:a,target:"_blank",rel:"noopener noreferrer",class:"jex-privacy-notice-link",children:i.escalationPrivacyLinkText}),"."]})]})}function Ha({sessionId:t,visitorId:e,ensureSession:n,availability:r}){const i=j(),{requestHuman:o,busy:a,error:l}=Ua({sessionId:t,visitorId:e,ensureSession:n}),c=`jex-presence-dot--${Va(r)}`,u=r?r.anyOnline?i.handoffAvailable:i.handoffOffline:i.talkToHuman;return s(O,{children:[s("button",{class:"jex-header-handoff",type:"button",onClick:()=>{o()},disabled:a,"aria-label":i.talkToHumanAria,title:u,children:[s("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[s("path",{d:"M3 14v-3a9 9 0 0 1 18 0v3"}),s("path",{d:"M21 14a2 2 0 0 1-2 2h-1a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h3z"}),s("path",{d:"M3 14a2 2 0 0 0 2 2h1a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1H3z"}),s("path",{d:"M21 14v3a4 4 0 0 1-4 4h-3"})]}),r!==void 0&&s("span",{class:`jex-presence-dot ${c}`,"aria-hidden":"true"})]}),l&&s("div",{class:"jex-handoff-error",role:"alert",children:l})]})}async function Fh(){const t=Mo.value;if(!t)return console.warn("[JexityChat] Bootstrap refresh skipped — inputs missing"),{ok:!1,reason:"no-inputs"};const e=await Sr(t.orgSlug,t.siteUrl,t.projSlug);if(!e.ok)return console.warn("[JexityChat] Bootstrap refresh failed:",e.error),{ok:!1,reason:e.error};const n=e.token;return Ve.value=n,{ok:!0,token:n}}function Qa(t){return Wa(t)?"unauthorized":t instanceof Error&&/network|fetch|failed to fetch/i.test(t.message)?"network":"unknown"}function Wa(t){return t instanceof fn?t.data?.code==="UNAUTHORIZED_ORIGIN":!1}function Vh(t=1e4){return Ve.value?Promise.resolve(Ve.value):new Promise(e=>{let n=!1;const r=a=>{n||(n=!0,clearTimeout(i),o(),e(a))},i=setTimeout(()=>{r(null)},t),o=Ve.subscribe(a=>{a&&r(a)})})}function Hh(t,e){const n=me(null),r=vt(!1),i=vt(!1),o=vt(!1),a=vt(null),l=Ye(re.functions.chat.public.sessions.createOrResume),c=async p=>{const g=await Vh();if(!g)return console.warn("[JexityChat] No bootstrap token after 10s — session creation blocked."),wt.value="no-token",null;const y=b=>({orgSlug:t,...e?{projSlug:e}:{},visitorId:p,bootstrapToken:b,locale:Ae.value,...An.value?{source:An.value}:{}});Mr.value=!0;let m;try{try{m=await l(y(g))}catch(b){if(!Wa(b))throw b;const x=await Fh();if(!x.ok)return wt.value=x.reason==="rate_limited"?"network":"unauthorized",null;m=await l(y(x.token))}}finally{Mr.value=!1}wt.value=null,a.value=m.status;const v={sessionId:m.sessionId,visitorId:p};return n.current=v,{session:v,result:m}},u=N(async()=>{if(n.current)return n.current;if(o.value)return null;r.value=!0;const p=fe.value!==null,g=fe.value??Uo();try{const y=await c(g);return y?(p&&y.result.isNew&&(i.value=!0,o.value=!0),y.session):null}catch(y){return console.error("[JexityChat] Failed to create session:",y),wt.value=Qa(y),null}finally{r.value=!1}},[t,e,l,r,i,o]),h=N(()=>{n.current=null,i.value=!1,o.value=!1,ta()},[i,o]);T(()=>Wc(h),[h]);const f=N(async()=>{n.current=null,o.value=!1,i.value=!1,ta();const p=Uo();r.value=!0;try{return(await c(p))?.session??null}catch(g){return console.error("[JexityChat] Failed to create fresh session:",g),wt.value=Qa(g),null}finally{r.value=!1}},[t,e,l,r,i,o,a]),d=n.current;return{sessionId:d?.sessionId??null,visitorId:d?.visitorId??null,isLoading:r.value,sessionNotFound:i.value,resumeFailed:o.value,sessionStatus:a.value,isOrgDeleted:a.value==="org_deleted",ensureSession:u,startFresh:f,resetSession:h}}function Qh({botName:t,availability:e,onResetSession:n}){const r=j(),[i,o]=R(""),a=e?.anyOnline===!0,l=Va(e);function c(){En(),bt.value="escalate",n(),Fo(),Oe({id:"chat"})}function u(){En(),bt.value="fresh",n(),Fo(),Oe({id:"chat"})}function h(d){En(),bt.value="resume",n(),Vo(d),Oe({id:"chat"})}function f(d){d.preventDefault();const p=i.trim().toUpperCase();p&&(En(),bt.value="resume",n(),Vo(p),Oe({id:"chat"}))}return s("div",{class:"jex-home",children:[Kt.value&&s("div",{class:"jex-session-prompt",role:"status",children:s("div",{class:"jex-session-prompt-text",children:r.sessionLocked})}),s("button",{class:"jex-home-hero",type:"button",onClick:c,"aria-label":r.talkToHumanAria,title:e?a?r.handoffAvailable:r.handoffOffline:r.talkToHuman,children:[s("div",{class:"jex-home-avatar",children:[s(Jo,{size:24}),e!==void 0&&s("span",{class:`jex-home-status-dot jex-home-status-dot--${l}`,"aria-hidden":"true"})]}),s("div",{class:"jex-home-hero-text",children:[s("h2",{class:"jex-home-title",children:t}),s("span",{class:"jex-home-status",children:[e===void 0?r.homeStatusOffline:a?r.homeStatusOnline:r.homeStatusOffline," | ",r.talkToHuman]})]})]}),s("div",{class:"jex-home-actions",children:[ne.value.length>0&&s(O,{children:[s("span",{class:"jex-home-section-label",children:r.pickUpWhereLeftOff}),s("div",{class:"jex-home-history",children:ne.value.slice().reverse().map(d=>s("button",{class:"jex-home-resume-card",onClick:()=>{h(d.ref)},children:[s("div",{class:"jex-home-resume-top",children:[s("span",{class:"jex-home-resume-label",children:r.resumeListLabel}),s("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",class:"jex-home-resume-arrow",children:s("path",{d:"M6 3l5 5-5 5",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})})]}),s("span",{class:"jex-home-resume-ref",children:d.ref}),s("span",{class:"jex-home-resume-meta",children:r.resumeListTimestamp.replace("{minutes}",String(Math.max(1,Math.round((Date.now()-d.lastActivityAt)/6e4))))})]},d.ref))})]}),s("button",{class:"jex-home-new-btn",onClick:u,children:ne.value.length>0?r.startNewConversation:r.chatWith})]}),s("div",{class:"jex-home-lookup-section",children:[s("span",{class:"jex-home-lookup-label",children:r.haveReferenceNumber}),s("form",{class:"jex-home-lookup",onSubmit:f,children:[s("input",{class:"jex-home-lookup-input",type:"text",placeholder:r.referencePlaceholder,value:i,onInput:d=>{o(d.currentTarget.value)}}),s("button",{class:"jex-home-lookup-submit",type:"submit",disabled:!i.trim(),children:r.resume})]})]})]})}function Wh({title:t}){const e=j();return s("div",{class:"jex-selection",children:[s("h2",{class:"jex-selection-title",children:e.howCanWeHelp}),s("div",{class:"jex-selection-options",children:[s("button",{class:"jex-selection-option",onClick:()=>Oe({id:"chat"}),children:[s("span",{class:"jex-selection-icon",children:"💬"}),s("span",{class:"jex-selection-label",children:e.chatWith.replace("{title}",t)}),s("span",{class:"jex-selection-sub",children:e.getInstantHelp})]}),s("button",{class:"jex-selection-option",onClick:()=>Oe({id:"form"}),children:[s("span",{class:"jex-selection-icon",children:"📝"}),s("span",{class:"jex-selection-label",children:e.submitTicket}),s("span",{class:"jex-selection-sub",children:e.replyByEmail})]})]})]})}function Kh(){const t=j(),[e,n]=R(""),[r,i]=R(""),[o,a]=R("");async function l(c){c.preventDefault(),Pr({id:"loading",message:t.submittingTicket}),await new Promise(h=>{setTimeout(h,1200)});const u="JEX-"+Math.random().toString(36).slice(2,8).toUpperCase();Pr({id:"confirmation",ref:u})}return s("div",{class:"jex-form-screen",children:[s("h2",{class:"jex-form-title",children:t.submitTicket}),s("form",{class:"jex-form",onSubmit:c=>{l(c)},children:[s("input",{class:"jex-form-input",type:"text",placeholder:t.yourName,value:e,required:!0,onInput:c=>{n(c.currentTarget.value)}}),s("input",{class:"jex-form-input",type:"email",placeholder:t.yourEmail,value:r,required:!0,onInput:c=>{i(c.currentTarget.value)}}),s("textarea",{class:"jex-form-textarea",placeholder:t.howCanWeHelp,value:o,required:!0,onInput:c=>{a(c.currentTarget.value)}}),s("button",{class:"jex-form-submit",type:"submit",children:t.submit})]})]})}function Gh({ticketRef:t}){const e=j();return s("div",{class:"jex-confirmation",children:[s("div",{class:"jex-confirmation-icon","aria-hidden":"true",children:"✓"}),s("h2",{class:"jex-confirmation-title",children:e.ticketSubmitted}),s("p",{class:"jex-confirmation-body",children:e.yourReferenceNumber}),s("div",{class:"jex-confirmation-ref",children:t}),s("p",{class:"jex-confirmation-hint",children:e.sentToEmailHint}),s("button",{class:"jex-confirmation-done",onClick:()=>{F.value=!1},children:e.done})]})}function Jh({message:t,onRetry:e,onBack:n}){const r=j();return s("div",{class:"jex-overlay jex-error",children:[s("p",{class:"jex-error-message",children:t}),s("div",{class:"jex-error-actions",children:[e&&s("button",{class:"jex-error-retry",onClick:e,children:r.tryAgain}),n&&s("button",{class:"jex-error-back",onClick:n,children:r.goBack})]})]})}function Ka({greeting:t,starterQuestions:e,title:n,botName:r,orgSlug:i,availability:o,sessionId:a,visitorId:l,isLoading:c,sessionNotFound:u,resumeFailed:h,isOrgDeleted:f,ensureSession:d,startFresh:p,resetSession:g}){const y=ue.value,m=y[y.length-1],v=[...y].reverse().find(b=>b.id==="confirmation");return s("div",{class:"jex-screen-container",children:[m.id==="home"&&s(Qh,{botName:r,availability:o,onResetSession:g}),m.id==="selection"&&s(Wh,{title:n}),m.id==="form"&&s(Kh,{}),m.id==="escalation-form"&&s(Uh,{formMessageId:m.formMessageId,sessionId:m.sessionId,visitorId:m.visitorId,orgSlug:i,waitingSetAt:m.waitingSetAt}),m.id==="confirmation"&&v&&s(Gh,{ticketRef:v.ref}),m.id==="chat"&&s(Dh,{greeting:t,botName:r,starterQuestions:e,sessionId:a,visitorId:l,isLoading:c,sessionNotFound:u,resumeFailed:h,isOrgDeleted:f,ensureSession:d,startFresh:p}),m.id==="loading"&&s(Da,{message:m.message}),m.id==="error"&&s(Jh,{message:m.message,onRetry:()=>Pr({id:"loading"}),onBack:$r})]})}function Yh({options:t}){return Tc({orgSlug:t.orgSlug,projSlug:t.projSlug,preToken:t.bootstrapToken,convexUrl:t.convexUrl,preAllowedUrls:t.allowedUrls??[],preExcludedPaths:t.excludePaths}),Ic()?s(Zh,{options:t}):null}function Zh({options:t}){const e=Sc(t.orgSlug,t.projSlug,t.convexUrl);qc(t.parentOrigin),T(()=>(Uc(),Vc(),()=>{Ar.value=!1}),[]);const{sessionId:n,visitorId:r,isLoading:i,sessionNotFound:o,resumeFailed:a,isOrgDeleted:l,ensureSession:c,startFresh:u,resetSession:h}=Hh(t.orgSlug,t.projSlug),f=Fa(t.orgSlug),d=wc(t,e.config),p=He.value,g=Ar.value,y=e.config!==null||p!==void 0||e.settled,m=e.config!==null?d.sessionTimeoutMs:p!==void 0?p:d.sessionTimeoutMs;T(()=>{Ae.value=Lo(d.locale)},[d.locale]),T(()=>{Qt.value=d.privacyPolicyUrl??Ht,wr.value=d.privacyNoticeStyle},[d.privacyNoticeStyle,d.privacyPolicyUrl]),T(()=>{if(!F.value||d.mode==="embedded"||!window.matchMedia("(max-width: 480px), (pointer: coarse) and (max-width: 768px)").matches)return;const ie=document.documentElement.style.overflow;return document.documentElement.style.overflow="hidden",()=>{document.documentElement.style.overflow=ie}},[F.value,d.mode]),T(()=>{if(g&&y&&d.mode!=="embedded"&&m!==null)try{return Gc(m)}catch(H){console.warn("[JexityChat] Idle-lock watcher failed to start:",H);return}},[g,d.mode,y,m]),T(()=>{if(!g||!y)return;const{activeRefPruned:H}=Fc(m);H&&Nr()},[g,y,m]);const v=d.position==="bottom-left",b=d.colorScheme==="dark"||d.colorScheme==="light"?d.colorScheme:"",x=Jc({...t,primaryColor:d.primaryColor,accentColor:d.accentColor,fontFamily:d.fontFamily,fontSize:d.fontSize,borderRadius:d.borderRadius,windowWidth:d.windowWidth,windowHeight:d.windowHeight}),P=d.mode==="embedded",S=ue.value,W=S[S.length-1]?.id==="chat",V=e.config!==null||P||!!t.parentOrigin,le=V?x:{...x,visibility:"hidden"},L=au(t.orgSlug,t.projSlug);return T(()=>{if(P||!V||d.proactiveMode==="off"||Yo(L))return;const H=window.setTimeout(()=>{const ie=lu({mode:d.proactiveMode,isOpen:F.peek(),hasHistory:Ir.peek(),dismissed:Yo(L)});ie==="teaser"?Pn.value=!0:ie==="open"&&(F.value=!0)},d.proactiveDelaySeconds*1e3);return()=>{window.clearTimeout(H)}},[P,V,d.proactiveMode,d.proactiveDelaySeconds,L]),s("div",{class:`jex-widget ${b}`.trim(),style:le,children:P?s("div",{class:"jex-embedded",children:[s(Ko,{title:d.title,rightAction:W?s(Ha,{sessionId:n,visitorId:r,ensureSession:c,availability:f}):null,showClose:!P}),s(Ka,{greeting:d.greeting,starterQuestions:d.starterQuestions,title:d.title,botName:d.botName,orgSlug:t.orgSlug,projSlug:t.projSlug,availability:f,sessionId:n,visitorId:r,isLoading:i,sessionNotFound:o,resumeFailed:a,isOrgDeleted:l,ensureSession:c,startFresh:u,resetSession:h}),!d.hideBranding&&s(Go,{})]}):s("div",{class:`jex-container${v?" jex-pos-left":""}`,children:[F.value&&s("div",{class:"jex-chat-window",children:[s(Ko,{title:d.title,rightAction:W?s(Ha,{sessionId:n,visitorId:r,ensureSession:c,availability:f}):null}),s(Ka,{greeting:d.greeting,starterQuestions:d.starterQuestions,title:d.title,botName:d.botName,orgSlug:t.orgSlug,projSlug:t.projSlug,availability:f,sessionId:n,visitorId:r,isLoading:i,sessionNotFound:o,resumeFailed:a,isOrgDeleted:l,ensureSession:c,startFresh:u,resetSession:h}),!d.hideBranding&&s(Go,{})]}),Pn.value&&!F.value&&s(cu,{title:d.title,message:d.greeting,guardKey:L}),s(ou,{iconOption:d.triggerIcon,radius:d.triggerRadius,label:d.triggerLabel})]})})}const Xh=`.jex-widget{--jex-primary: #115A62;--jex-primary-hover: var(--jex-accent, color-mix(in srgb, var(--jex-primary) 85%, #000));--jex-radius: .75rem;--jex-font-family: "Inter", system-ui, -apple-system, sans-serif;--jex-font-size: 14px;--jex-window-width: 380px;--jex-window-height: 600px;--jex-shadow: 0 16px 48px -12px rgba(13, 127, 138, .25), 0 4px 16px rgba(0, 0, 0, .08);pointer-events:auto;--jex-bg-trigger: var(--jex-primary);--jex-bg-header: var(--jex-primary);--jex-bg-msg-user: var(--jex-primary);--jex-bg-send-btn: var(--jex-primary);--jex-bg-window: rgba(255, 255, 255, .95);--jex-bg-msg-bot: #f1f5f9;--jex-bg-input: rgba(247, 253, 253, .6);--jex-text-header: #ffffff;--jex-text-msg-user: #ffffff;--jex-text-msg-bot: #0f172a;--jex-text-main: #0f172a;--jex-text-muted: #64748b;--jex-bg-avatar-agent: #d1fae5;--jex-text-avatar-agent: #065f46;--jex-border-window: rgba(226, 232, 240, .8);--jex-border-input: rgba(203, 213, 225, .8);--jex-bg-glass: var(--jex-bg-window);--jex-border-glass: var(--jex-border-window);font-family:var(--jex-font-family);-webkit-font-smoothing:antialiased}.dark .jex-widget,.jex-widget.dark{--jex-primary: #1cb0bf;--jex-primary-hover: var(--jex-accent, color-mix(in srgb, var(--jex-primary) 85%, #000));--jex-bg-window: rgba(10, 15, 26, .95);--jex-bg-msg-bot: #233146;--jex-bg-input: rgba(10, 15, 26, .6);--jex-text-msg-bot: #f8fafc;--jex-text-main: #f8fafc;--jex-text-muted: #94a3b8;--jex-border-window: rgba(30, 41, 59, .8);--jex-border-input: rgba(51, 65, 85, .9);--jex-bg-avatar-agent: #064e3b;--jex-text-avatar-agent: #6ee7b7;--jex-bg-error: #3b1318;--jex-border-error: #5c1d24;--jex-text-error: #fca5a5}@media(prefers-color-scheme:dark){:host:not(.light) .jex-widget:not(.light){--jex-primary: #1cb0bf;--jex-primary-hover: var(--jex-accent, color-mix(in srgb, var(--jex-primary) 85%, #000));--jex-bg-window: rgba(10, 15, 26, .95);--jex-bg-msg-bot: #233146;--jex-bg-input: rgba(10, 15, 26, .6);--jex-text-msg-bot: #f8fafc;--jex-text-main: #f8fafc;--jex-text-muted: #94a3b8;--jex-border-window: rgba(30, 41, 59, .8);--jex-border-input: rgba(51, 65, 85, .9);--jex-bg-error: #3b1318;--jex-border-error: #5c1d24;--jex-text-error: #fca5a5}}.jex-widget *{box-sizing:border-box;margin:0;padding:0}.jex-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;align-items:flex-end;gap:16px;z-index:9999}.jex-container.jex-pos-left{right:auto;left:24px;align-items:flex-start}:host(.jex-mode-embedded){display:block;width:100%;height:100%}:host(.jex-mode-embedded) .jex-widget{width:100%;height:100%}.jex-embedded{display:flex;flex-direction:column;width:100%;height:100%;background:var(--jex-bg-window);border:1px solid var(--jex-border-window);overflow:hidden}.jex-embedded .jex-screen-container{flex:1;overflow:hidden;display:flex;flex-direction:column}.jex-floating-button{height:56px;min-width:56px;padding:0;background:var(--jex-bg-trigger);color:var(--jex-text-header);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--jex-shadow);transition:transform .3s cubic-bezier(.175,.885,.32,1.275),background .2s,width .3s ease,border-radius .3s ease}.jex-floating-button.jex-has-label{min-width:110px;padding:0 20px}.jex-fab-inner{display:flex;align-items:center;gap:12px}.jex-fab-label{font-size:15px;font-weight:600;white-space:nowrap}.jex-floating-button:hover{transform:scale(1.1);background:var(--jex-primary-hover)}.jex-floating-button:active{transform:scale(.95)}.jex-fab-pulse{animation:jex-fab-pulse 2.4s ease-out infinite}@keyframes jex-fab-pulse{0%{box-shadow:var(--jex-shadow),0 0 color-mix(in srgb,var(--jex-bg-trigger) 50%,transparent)}70%{box-shadow:var(--jex-shadow),0 0 0 14px color-mix(in srgb,var(--jex-bg-trigger) 0%,transparent)}to{box-shadow:var(--jex-shadow),0 0 color-mix(in srgb,var(--jex-bg-trigger) 0%,transparent)}}@media(prefers-reduced-motion:reduce){.jex-fab-pulse{animation:none}}.jex-proactive-teaser{display:flex;align-items:flex-start;gap:10px;width:280px;max-width:calc(100vw - 48px);padding:12px 14px;align-self:flex-end;background:var(--jex-bg-window);color:var(--jex-text-main);border:1px solid var(--jex-border-window);border-radius:var(--jex-radius);box-shadow:var(--jex-shadow);cursor:pointer;text-align:left;animation:jex-teaser-in .22s ease-out}.jex-proactive-avatar{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9999px;background:var(--jex-bg-avatar-agent);color:var(--jex-text-avatar-agent)}.jex-proactive-body{display:flex;flex-direction:column;gap:2px;min-width:0}.jex-proactive-title{font-weight:600;font-size:13px;line-height:1.2}.jex-proactive-message{font-size:13px;line-height:1.35;color:var(--jex-text-muted)}.jex-proactive-dismiss{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:22px;height:22px;margin:-4px -4px 0 0;padding:0;border:none;background:transparent;color:var(--jex-text-muted);cursor:pointer;border-radius:9999px}.jex-proactive-dismiss:hover{background:var(--jex-bg-msg-bot)}@keyframes jex-teaser-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.jex-proactive-teaser{animation:none}}.jex-chat-window{width:var(--jex-window-width);height:var(--jex-window-height);max-height:calc(100vh - 120px);background:var(--jex-bg-window);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--jex-border-window);border-radius:calc(var(--jex-radius) * 2);box-shadow:var(--jex-shadow);display:flex;flex-direction:column;overflow:hidden;animation:jexSlideUp .4s cubic-bezier(.16,1,.3,1);transform-origin:bottom right;touch-action:manipulation}@keyframes jexSlideUp{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(max-width:480px),(pointer:coarse)and (max-width:768px){.jex-chat-window{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-height:none;border:none;border-radius:0;animation:jexSlideUpMobile .3s cubic-bezier(.16,1,.3,1);transform-origin:bottom center}.jex-container:has(.jex-chat-window) .jex-floating-button{display:none}}@keyframes jexSlideUpMobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.jex-chat-header{padding:14px 16px;background:var(--jex-bg-header);color:var(--jex-text-header);display:flex;align-items:center;gap:12px;flex-shrink:0}.jex-header-info h3{font-size:16px;font-weight:600;color:var(--jex-text-header);margin:0}.jex-header-info p{font-size:12px;opacity:.8;color:var(--jex-text-header);margin:0}.jex-header-right{margin-left:auto;display:flex;align-items:center;gap:4px}.jex-header-handoff{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid color-mix(in srgb,currentColor 50%,transparent);border-radius:999px;padding:0;color:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.jex-header-handoff:hover:not(:disabled){background:color-mix(in srgb,currentColor 12%,transparent);border-color:currentColor}.jex-header-handoff:disabled{opacity:.5;cursor:not-allowed}.jex-header-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:999px;padding:0;color:inherit;cursor:pointer;transition:background .15s ease}.jex-header-close:hover{background:color-mix(in srgb,currentColor 14%,transparent)}.jex-handoff-error{position:absolute;top:100%;right:8px;background:#fee;color:#b00;padding:4px 8px;font-size:12px;border-radius:4px}.jex-header-back{background:none;border:none;color:var(--jex-text-header);cursor:pointer;padding:4px;display:flex;align-items:center;opacity:.8;transition:opacity .2s;flex-shrink:0}.jex-header-back:hover{opacity:1}.jex-screen-container{flex:1;overflow:hidden;display:flex;flex-direction:column}.jex-home{flex:1;display:flex;flex-direction:column;padding:24px;gap:20px;overflow-y:auto}.jex-home-hero{display:flex;align-items:center;gap:14px;width:100%;padding:0;border:none;background:transparent;font-family:inherit;text-align:left;cursor:pointer;animation:jexFadeIn .4s ease both}.jex-home-hero:disabled{cursor:default;opacity:.7}.jex-home-avatar{position:relative;width:48px;height:48px;border-radius:14px;background:var(--jex-primary);color:var(--jex-text-header);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px color-mix(in srgb,var(--jex-primary) 30%,transparent)}.jex-home-status-dot{position:absolute;bottom:-2px;right:-2px;width:14px;height:14px;border-radius:50%;background:var(--jex-dot-color, #9ca3af);border:2.5px solid var(--jex-bg-window);animation:jexPulse 2s ease-in-out infinite}.jex-home-status-dot--online{--jex-dot-color: #10b981}.jex-home-status-dot--away{--jex-dot-color: #fbbf24}.jex-home-status-dot--offline{--jex-dot-color: #9ca3af}@keyframes jexPulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--jex-dot-color, #9ca3af) 40%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--jex-dot-color, #9ca3af) 0%,transparent)}}.jex-home-hero-text{display:flex;flex-direction:column;gap:2px;min-width:0}.jex-home-title{font-size:17px;font-weight:700;color:var(--jex-text-main);margin:0;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jex-home-status{font-size:13px;font-weight:500;color:var(--jex-text-muted);letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jex-home-section-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--jex-text-muted)}.jex-home-lookup-section{display:flex;flex-direction:column;gap:8px;margin-top:auto}.jex-home-lookup-label{font-size:12px;font-weight:500;color:var(--jex-text-muted)}.jex-home-greeting{background:var(--jex-bg-msg-bot);border:1px solid var(--jex-border-window);border-radius:4px 16px 16px;padding:16px 18px;font-size:14px;line-height:1.55;color:var(--jex-text-main);animation:jexFadeIn .4s .1s ease both}.jex-home-greeting p{margin:0}@keyframes jexFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.jex-home-actions{display:flex;flex-direction:column;gap:10px;animation:jexFadeIn .4s .2s ease both}.jex-home-start-btn{background:var(--jex-bg-send-btn);color:var(--jex-text-header);border:none;border-radius:12px;padding:14px 20px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s,transform .15s,box-shadow .2s;width:100%;box-shadow:0 2px 8px color-mix(in srgb,var(--jex-primary) 25%,transparent)}.jex-home-start-btn:hover{background:var(--jex-primary-hover);transform:translateY(-1px);box-shadow:0 4px 16px color-mix(in srgb,var(--jex-primary) 35%,transparent)}.jex-home-start-btn:active{transform:translateY(0);box-shadow:0 1px 4px color-mix(in srgb,var(--jex-primary) 20%,transparent)}.jex-home-resume-card{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;padding:16px 18px;border-radius:14px;border:1.5px solid var(--jex-primary);background:color-mix(in srgb,var(--jex-primary) 6%,var(--jex-bg-window));cursor:pointer;font-family:inherit;transition:background .2s,border-color .2s,transform .15s,box-shadow .2s;box-shadow:0 2px 8px color-mix(in srgb,var(--jex-primary) 12%,transparent)}.jex-home-resume-card:hover{background:color-mix(in srgb,var(--jex-primary) 10%,var(--jex-bg-window));transform:translateY(-1px);box-shadow:0 4px 16px color-mix(in srgb,var(--jex-primary) 20%,transparent)}.jex-home-resume-card:active{transform:translateY(0)}.jex-home-resume-top{display:flex;align-items:center;justify-content:space-between}.jex-home-resume-label{font-size:14px;font-weight:600;color:var(--jex-primary)}.jex-home-resume-arrow{color:var(--jex-primary);opacity:.6;transition:opacity .2s,transform .2s}.jex-home-resume-card:hover .jex-home-resume-arrow{opacity:1;transform:translate(2px)}.jex-home-resume-ref{font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--jex-text-muted)}.jex-home-history{display:flex;flex-direction:column;gap:8px}.jex-home-resume-meta{font-size:12px;color:var(--jex-text-muted);margin-top:4px}.jex-home-new-btn{background:transparent;color:var(--jex-text-muted);border:1px solid var(--jex-border-input);border-radius:12px;padding:12px 20px;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:color .2s,border-color .2s,background .2s;width:100%}.jex-home-new-btn:hover{color:var(--jex-text-main);border-color:var(--jex-text-muted);background:color-mix(in srgb,var(--jex-primary) 3%,transparent)}.jex-session-ref{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--jex-bg-msg-bot);border:1px solid var(--jex-border-window);border-radius:8px;font-size:12px}.jex-session-ref-label{color:var(--jex-text-muted);font-weight:500}.jex-session-ref-code{color:var(--jex-primary);font-weight:700;font-family:ui-monospace,Cascadia Code,monospace;letter-spacing:.05em}.jex-chat-messages{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.jex-message-row{display:flex;align-items:flex-end;gap:8px;max-width:85%}.jex-message-row.bot{align-self:flex-start;flex-direction:column;align-items:stretch;gap:6px;max-width:92%}.jex-message-head{display:flex;align-items:center;gap:8px;padding-left:2px}.jex-message-head .jex-avatar{margin-bottom:0}.jex-avatar{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;margin-bottom:2px}.jex-avatar-bot{background:var(--jex-bg-msg-bot);color:var(--jex-primary)}.jex-avatar-agent{background:var(--jex-bg-avatar-agent)}.jex-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.jex-avatar-initials{font-size:9px;font-weight:700;color:var(--jex-text-avatar-agent)}.jex-message-author{font-size:13px;font-weight:600;color:var(--jex-text-main);line-height:1.2}.jex-reply-tag-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--jex-text-muted, #6b7280);cursor:pointer;transition:background .15s,color .15s}.jex-reply-tag-btn:hover{background:#0000000f;color:var(--jex-primary, #115A62)}.jex-reply-tag-btn:focus-visible{outline:2px solid var(--jex-primary, #115A62);outline-offset:1px}.jex-message{padding:12px 16px;border-radius:18px;font-size:14px;line-height:1.4}.jex-message.bot{background:var(--jex-bg-msg-bot);border:1px solid var(--jex-border-window);color:var(--jex-text-msg-bot);border-radius:16px}.jex-message.user{align-self:flex-end;max-width:80%;background:var(--jex-bg-msg-user);color:var(--jex-text-msg-user);border-bottom-right-radius:4px}.jex-typing{align-self:flex-start;display:flex;gap:4px;padding:12px 16px}.jex-typing span{width:8px;height:8px;border-radius:50%;background:var(--jex-text-muted);animation:jexTypingDot 1.2s infinite ease-in-out}.jex-typing span:nth-child(2){animation-delay:.2s}.jex-typing span:nth-child(3){animation-delay:.4s}@keyframes jexTypingDot{0%,80%,to{transform:scale(.8);opacity:.4}40%{transform:scale(1);opacity:1}}.jex-md{word-break:break-word;overflow-wrap:anywhere}.jex-md p{margin:0 0 8px}.jex-md p:last-child{margin-bottom:0}.jex-md strong{font-weight:600}.jex-md em{font-style:italic}.jex-md ul,.jex-md ol{margin:0 0 8px;padding-left:20px}.jex-md ul:last-child,.jex-md ol:last-child{margin-bottom:0}.jex-md ul{list-style-type:disc}.jex-md ol{list-style-type:decimal}.jex-md li{margin-bottom:2px}.jex-md li:last-child{margin-bottom:0}.jex-md a{color:var(--jex-primary);text-decoration:underline;text-underline-offset:2px}.jex-md a:hover{opacity:.8}.jex-md code{background:#00000014;padding:1px 5px;border-radius:4px;font-size:.9em;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.jex-md pre{background:#0000000f;border-radius:8px;padding:10px 12px;margin:0 0 8px;overflow-x:auto;font-size:.85em}.jex-md pre:last-child{margin-bottom:0}.jex-md pre code{background:none;padding:0;border-radius:0;font-size:inherit}.jex-md h1,.jex-md h2,.jex-md h3,.jex-md h4{font-weight:600;margin:8px 0 4px}.jex-md h1:first-child,.jex-md h2:first-child,.jex-md h3:first-child,.jex-md h4:first-child{margin-top:0}.jex-md h3{font-size:1em}.jex-md h4{font-size:.95em}.jex-md hr{border:none;border-top:1px solid var(--jex-border-window);margin:8px 0}.jex-md blockquote{border-left:3px solid var(--jex-primary);margin:0 0 8px;padding:4px 12px;color:var(--jex-text-muted)}.jex-md blockquote:last-child{margin-bottom:0}.dark .jex-md code,.jex-widget.dark .jex-md code{background:#ffffff1a}.dark .jex-md pre,.jex-widget.dark .jex-md pre{background:#ffffff14}@media(prefers-color-scheme:dark){:host:not(.light) .jex-widget:not(.light) .jex-md code{background:#ffffff1a}:host:not(.light) .jex-widget:not(.light) .jex-md pre{background:#ffffff14}}.jex-streaming-cursor:after{content:"◊";margin-left:2px;animation:jexBlinkCursor .8s ease-in-out infinite}@keyframes jexBlinkCursor{0%,to{opacity:1}50%{opacity:0}}.jex-session-notice{align-self:center;text-align:center;padding:8px 16px;margin:8px 0;font-size:12px;color:var(--jex-text-muted);background:var(--jex-bg-input, #f1f5f9);border-radius:8px;line-height:1.4}.jex-message-error{background:var(--jex-bg-error, #fef2f2)!important;border-color:var(--jex-border-error, #fecaca)!important;color:var(--jex-text-error, #991b1b)!important}.jex-chat-input{padding:12px 16px;border-top:1px solid var(--jex-border-window);display:flex;flex-direction:column;gap:8px;flex-shrink:0}.jex-chat-input-composer-gate{position:relative}.jex-chat-input-composer-gate-open{z-index:2}.jex-chat-input-composer-gate-open .jex-composer-card{pointer-events:none}.jex-composer-card{display:flex;flex-direction:column;gap:6px;padding:10px 12px 8px;background:var(--jex-bg-input);border:1px solid var(--jex-border-input);border-radius:16px;cursor:text;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.jex-composer-card:focus-within{border-color:var(--jex-primary);background:var(--jex-bg-window);box-shadow:0 0 0 3px color-mix(in srgb,var(--jex-primary, #115A62) 14%,transparent)}.jex-composer-attachments{display:flex;flex-wrap:wrap;gap:6px;padding:2px 2px 4px}.jex-attachment-chip{position:relative;width:44px;height:44px;border-radius:8px;overflow:hidden;background:var(--jex-bg-msg-bot, #f1f5f9);flex-shrink:0;box-shadow:0 1px 2px #0000000f}.jex-attachment-thumb{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.jex-attachment-remove{position:absolute;top:2px;right:2px;width:16px;height:16px;padding:0;border:none;border-radius:50%;background:#0f172ac7;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .12s ease,transform .12s ease}.jex-attachment-chip:hover .jex-attachment-remove,.jex-attachment-chip:focus-within .jex-attachment-remove{opacity:1}.jex-attachment-remove:hover{transform:scale(1.08)}.jex-composer-textarea{width:100%;min-height:22px;background:transparent;border:none;outline:none;resize:none;padding:2px 4px;color:var(--jex-text-main);font-family:inherit;font-size:16px;line-height:1.45;overflow-y:hidden}.jex-composer-textarea::placeholder{color:var(--jex-text-muted);opacity:.85}.jex-composer-textarea:disabled{cursor:not-allowed;opacity:.7}.jex-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.jex-composer-actions-left{display:inline-flex;align-items:center;gap:4px}.jex-attach-btn{width:30px;height:30px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--jex-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease}.jex-attach-btn:hover:not(:disabled){background:color-mix(in srgb,var(--jex-text-muted, #64748b) 12%,transparent);color:var(--jex-text-main)}.jex-attach-btn:active:not(:disabled){transform:scale(.92)}.jex-attach-btn:disabled{opacity:.4;cursor:not-allowed}.jex-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.jex-rate-limit-notice{flex:1 0 100%;order:-1;margin-bottom:8px;padding:8px 12px;border-radius:10px;background:var(--jex-bg-msg-bot, #f1f5f9);color:var(--jex-text-muted, #64748b);font-size:12px;line-height:1.4;text-align:center}.jex-session-error-notice{flex:1 0 100%;order:-1;margin-bottom:8px;padding:8px 12px;border-radius:10px;background:var(--jex-bg-error, #fef2f2);border:1px solid var(--jex-border-error, #fecaca);color:var(--jex-text-error, #991b1b);font-size:12px;line-height:1.4;text-align:center}.jex-chat-input input{flex:1;background:var(--jex-bg-input);border:1px solid var(--jex-border-input);border-radius:12px;padding:10px 14px;color:var(--jex-text-main);outline:none;font-family:inherit;font-size:14px}.jex-chat-input input:focus{border-color:var(--jex-primary)}.jex-send-btn{background:color-mix(in srgb,var(--jex-text-muted, #64748b) 18%,transparent);color:var(--jex-text-muted);border:none;border-radius:999px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,color .15s ease,opacity .15s ease,transform .15s ease;flex-shrink:0}.jex-send-btn-active{background:var(--jex-bg-send-btn, var(--jex-primary));color:var(--jex-text-header, #fff)}.jex-send-btn-active:hover:not(:disabled){background:var(--jex-primary-hover)}.jex-send-btn:active:not(:disabled){transform:scale(.9)}.jex-send-btn:disabled{opacity:.45;cursor:default}.jex-widget-footer{display:flex;align-items:center;justify-content:center;padding:8px 16px;border-top:1px solid var(--jex-border-glass);background:#00000005;flex-shrink:0}.jex-widget.dark .jex-widget-footer{background:#ffffff05}@media(prefers-color-scheme:dark){:host:not(.light) .jex-widget:not(.light) .jex-widget-footer{background:#ffffff05}}.jex-branding{display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--jex-text-muted);font-size:11px;font-weight:500;transition:color .2s}.jex-branding:hover{color:var(--jex-text-main)}.jex-branding-icon{color:var(--jex-primary)}.jex-branding span strong{font-weight:700;color:var(--jex-text-main)}.jex-privacy-notice-link,.jex-privacy-chip-link{color:var(--jex-primary);text-decoration:underline;text-underline-offset:2px;text-decoration-color:color-mix(in srgb,var(--jex-primary) 50%,transparent);transition:text-decoration-color .15s}.jex-privacy-notice-link:hover,.jex-privacy-chip-link:hover{text-decoration-color:var(--jex-primary)}.jex-privacy-chip{align-self:center;display:inline-flex;align-items:center;gap:6px;max-width:100%;margin:0;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--jex-primary) 10%,var(--jex-bg-window));color:var(--jex-primary);font-size:10px;font-weight:650;line-height:1.2}.jex-privacy-chip-icon{display:inline-flex;flex-shrink:0}.jex-privacy-chip-link{color:inherit;text-decoration:none}.jex-privacy-explicit{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;flex-direction:column;gap:10px;min-height:100%;padding:10px 12px 12px;border:1px solid var(--jex-border-window);border-radius:14px 14px 10px 10px;background:var(--jex-bg-window);box-shadow:0 -12px 36px #0f172a24;pointer-events:auto}.jex-privacy-explicit-content{display:flex;align-items:flex-start;gap:10px}.jex-privacy-explicit-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:8px;background:color-mix(in srgb,var(--jex-primary) 10%,var(--jex-bg-window));color:var(--jex-primary);flex-shrink:0}.jex-privacy-explicit-copy{min-width:0;flex:1}.jex-privacy-explicit-title{color:var(--jex-text-main);font-size:12px;font-weight:750;line-height:1.2;margin-bottom:3px}.jex-privacy-explicit-body{margin:0;color:var(--jex-text-muted);font-size:10px;line-height:1.35}.jex-privacy-explicit-button{width:100%;border:none;border-radius:10px;background:var(--jex-bg-send-btn);color:var(--jex-text-header);cursor:pointer;font-family:inherit;font-size:12px;font-weight:750;padding:9px 12px;transition:background .15s ease,transform .12s ease}.jex-privacy-explicit-button:hover{background:var(--jex-primary-hover)}.jex-privacy-explicit-button:active{transform:scale(.98)}.jex-locale-select-wrapper{position:relative;display:flex;align-items:center}.jex-locale-select{appearance:none;-webkit-appearance:none;background:transparent;border:1px solid transparent;padding:4px 20px 4px 6px;border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;color:var(--jex-text-muted);background-color:transparent;cursor:pointer;outline:none;transition:all .2s ease}.jex-locale-select option{background-color:#fff;color:#0f172a}.jex-locale-select:hover,.jex-locale-select:focus-visible{color:var(--jex-text-main);background:#0000000a}.jex-widget.dark .jex-locale-select:hover,.jex-widget.dark .jex-locale-select:focus-visible{background:#ffffff0d}.jex-widget.dark .jex-locale-select option{background-color:#0f172a;color:#f8fafc}@media(prefers-color-scheme:dark){:host:not(.light) .jex-widget:not(.light) .jex-locale-select:hover,:host:not(.light) .jex-widget:not(.light) .jex-locale-select:focus-visible{background:#ffffff0d}:host:not(.light) .jex-widget:not(.light) .jex-locale-select option{background-color:#0f172a;color:#f8fafc}}.jex-locale-select:focus-visible{border-color:var(--jex-primary)}.jex-locale-chevron{position:absolute;right:4px;pointer-events:none;color:var(--jex-text-muted);transition:color .2s ease}.jex-locale-select-wrapper:hover .jex-locale-chevron{color:var(--jex-text-main)}.jex-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--jex-bg-window, #fff);z-index:10;padding:24px;text-align:center}.jex-loading-spinner{width:32px;height:32px;border:3px solid var(--jex-border-input, #e2e8f0);border-top-color:var(--jex-primary, #115A62);border-radius:50%;animation:jex-spin .7s linear infinite}@keyframes jex-spin{to{transform:rotate(360deg)}}.jex-loading-message{font-size:14px;color:var(--jex-text-muted, #64748b)}.jex-error-message{font-size:14px;color:var(--jex-text-main, #334155)}.jex-error-actions{display:flex;gap:8px}.jex-error-retry,.jex-error-back{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none}.jex-error-retry{background:var(--jex-primary, #115A62);color:#fff}.jex-error-back{background:transparent;color:var(--jex-text-muted, #64748b);border:1px solid var(--jex-border-input, #e2e8f0)}.jex-selection{display:flex;flex-direction:column;gap:12px;padding:24px 16px;height:100%}.jex-selection-title{font-size:16px;font-weight:700;color:var(--jex-text-main, #0f172a);margin:0 0 8px}.jex-selection-options{display:flex;flex-direction:column;gap:10px}.jex-selection-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:16px;border-radius:12px;border:1px solid var(--jex-border-window, #e2e8f0);background:transparent;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.jex-selection-option:hover{border-color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 5%,transparent)}.jex-selection-icon{font-size:20px}.jex-selection-label{font-size:14px;font-weight:600;color:var(--jex-text-main, #0f172a)}.jex-selection-sub{font-size:12px;color:var(--jex-text-muted, #64748b)}.jex-form-screen{display:flex;flex-direction:column;padding:20px 16px;height:100%;overflow-y:auto}.jex-form-title{font-size:16px;font-weight:700;color:var(--jex-text-main, #0f172a);margin:0 0 16px}.jex-form{display:flex;flex-direction:column;gap:10px}.jex-form-input,.jex-form-textarea{padding:10px 12px;border-radius:8px;border:1px solid var(--jex-border-input, #e2e8f0);font-size:14px;background:transparent;color:var(--jex-text-main, #0f172a);outline:none}@media(pointer:coarse){.jex-form-input,.jex-form-textarea{font-size:16px}}.jex-form-input:focus,.jex-form-textarea:focus{border-color:var(--jex-primary, #115A62)}.jex-form-textarea{min-height:80px;resize:vertical}.jex-form-submit{padding:10px;border-radius:8px;border:none;background:var(--jex-primary, #115A62);color:#fff;font-size:14px;font-weight:600;cursor:pointer;margin-top:4px}.jex-inline-form{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--jex-bg-msg-bot, #f1f5f9);border:1px solid var(--jex-border-input, #e2e8f0);border-radius:var(--jex-radius, .75rem);width:100%}.jex-inline-form-title{font-weight:600;font-size:15px;color:var(--jex-text-main, #0f172a);margin:0}.jex-inline-form-subtitle{font-size:13px;color:var(--jex-text-muted, #64748b);line-height:1.4;margin:0 0 4px}.jex-inline-form-consent{font-size:11px;color:var(--jex-text-muted, #64748b);line-height:1.3;margin-top:4px;text-align:center}.jex-inline-form .jex-form-submit:disabled{opacity:.7;cursor:not-allowed}.jex-escalation-subtitle{font-size:13px;color:var(--jex-text-muted, #64748b);line-height:1.45;margin:0 0 8px}.jex-escalation-skip{padding:8px 12px;border:none;background:transparent;color:var(--jex-text-muted, #64748b);font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:2px;text-align:center}.jex-escalation-skip:hover{color:var(--jex-text-main, #0f172a)}.jex-inline-form-card{position:relative;padding:14px;gap:8px}.jex-inline-form-dismiss{position:absolute;top:10px;right:10px;width:24px;height:24px;border-radius:50%;border:1px solid var(--jex-border-input, #e2e8f0);background:var(--jex-bg-window, #fff);color:var(--jex-text-muted, #64748b);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.jex-inline-form-dismiss:hover{background:var(--jex-bg-msg-bot, #f1f5f9);color:var(--jex-text-main, #0f172a)}.jex-inline-form-submitted{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--jex-bg-msg-bot, #f1f5f9);border:1px solid var(--jex-border-input, #e2e8f0);border-radius:var(--jex-radius, .75rem);width:100%}.jex-inline-form-check{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:color-mix(in srgb,var(--jex-primary) 15%,transparent);color:var(--jex-primary, #115A62);font-size:14px;font-weight:700;flex-shrink:0}.jex-inline-form-submitted-title{font-weight:600;font-size:var(--jex-font-size, 14px);color:var(--jex-text-main, #0f172a)}.jex-inline-form-submitted-detail{font-size:12px;color:var(--jex-text-muted, #64748b);margin-top:2px}.jex-magicline-row{display:flex;flex-direction:column;gap:8px}.jex-magicline-row>*{min-width:0}.jex-magicline-field{display:flex;flex-direction:column;gap:4px}.jex-magicline-field-label{font-size:12px;font-weight:500;color:var(--jex-text-muted, #64748b)}.jex-magicline-select{width:100%;appearance:none;cursor:pointer;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px 16px}.jex-magicline-slots-hint{font-size:12px;color:var(--jex-text-muted, #64748b);line-height:1.4;padding:2px 0}.jex-magicline-consent{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.35;color:var(--jex-text-muted, #64748b);margin-top:2px;cursor:pointer}.jex-magicline-consent input[type=checkbox]{flex-shrink:0;margin-top:1px;accent-color:var(--jex-primary, #115A62)}.jex-magicline-error{font-size:12px;color:#dc2626;line-height:1.35}.jex-magicline-failed{border-color:color-mix(in srgb,#dc2626 35%,var(--jex-border-input, #e2e8f0))}.jex-magicline-failed-icon{background:color-mix(in srgb,#dc2626 15%,transparent);color:#dc2626}.jex-magicline-wizard-header{display:flex;flex-direction:column;gap:6px}.jex-magicline-wizard-progress{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.jex-magicline-wizard-step-label{font-size:13px;font-weight:600;color:var(--jex-text-main, #0f172a)}.jex-magicline-wizard-counter{font-size:11px;color:var(--jex-text-muted, #64748b);flex-shrink:0}.jex-magicline-wizard-dots{display:flex;gap:6px}.jex-magicline-wizard-dot{width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--jex-text-muted, #64748b) 35%,transparent)}.jex-magicline-wizard-dot-active{background:var(--jex-primary, #115A62)}.jex-magicline-wizard-nav{display:flex;align-items:center;gap:8px;margin-top:4px}.jex-magicline-wizard-next{flex:1;margin-top:0}.jex-magicline-wizard-back{padding:10px 14px;border-radius:8px;border:1px solid var(--jex-border-input, #e2e8f0);background:transparent;color:var(--jex-text-main, #0f172a);font-size:14px;font-weight:600;cursor:pointer}.jex-magicline-wizard-back:hover{background:var(--jex-bg-window, #fff)}.jex-magicline-wizard-back:disabled,.jex-magicline-wizard-next:disabled{opacity:.7;cursor:not-allowed}.jex-magicline-radio-group{display:flex;flex-direction:column;gap:8px}.jex-magicline-radio-card{display:flex;align-items:center;gap:10px;padding:12px;border-radius:10px;border:1px solid var(--jex-border-input, #e2e8f0);font-size:14px;color:var(--jex-text-main, #0f172a);cursor:pointer}.jex-magicline-radio-card-active{border-color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 8%,transparent)}.jex-magicline-radio-card input[type=radio]{flex-shrink:0;accent-color:var(--jex-primary, #115A62)}.jex-magicline-slots-error{display:flex;flex-direction:column;gap:6px}.jex-magicline-retry{align-self:flex-start;padding:6px 12px;border-radius:8px;border:1px solid var(--jex-border-input, #e2e8f0);background:transparent;color:var(--jex-text-main, #0f172a);font-size:13px;font-weight:600;cursor:pointer}.jex-magicline-retry:hover{background:var(--jex-bg-window, #fff)}.jex-magicline-retry:disabled{opacity:.7;cursor:not-allowed}.jex-magicline-voucher-section{display:flex;flex-direction:column;gap:6px;margin-top:4px}.jex-magicline-voucher-field{flex-direction:row;align-items:stretch;gap:8px}.jex-magicline-voucher-field .jex-form-input{flex:1;min-width:0}.jex-magicline-voucher-apply{flex:0 0 auto;padding:10px 16px;border-radius:8px;border:none;background:var(--jex-primary, #115A62);color:#fff;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.jex-magicline-voucher-apply:hover{background:var(--jex-primary-hover)}.jex-magicline-voucher-apply:disabled{opacity:.7;cursor:not-allowed}.jex-magicline-review-wrap{position:relative}.jex-magicline-review-body{display:flex;flex-direction:column;gap:10px;transition:opacity .15s ease}.jex-magicline-review-body--reloading{opacity:.5;pointer-events:none}.jex-magicline-review-overlay{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding-top:48px}.jex-magicline-review-spinner{width:28px;height:28px;border-radius:50%;border:3px solid color-mix(in srgb,var(--jex-primary, #115A62) 25%,transparent);border-top-color:var(--jex-primary, #115A62);animation:jex-magicline-spin .7s linear infinite}@keyframes jex-magicline-spin{to{transform:rotate(360deg)}}.jex-magicline-voucher-discount-row dt,.jex-magicline-voucher-remarks-row dt{flex-shrink:1;min-width:0}.jex-magicline-voucher-remarks-row dd{min-width:0;overflow-wrap:anywhere;word-break:break-word}.jex-magicline-summary{display:flex;flex-direction:column;gap:6px;margin:0;padding:10px 12px;border-radius:8px;background:var(--jex-bg-window, #fff);border:1px solid var(--jex-border-input, #e2e8f0)}.jex-magicline-summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.jex-magicline-summary-row dt{font-size:12px;color:var(--jex-text-muted, #64748b);flex-shrink:0}.jex-magicline-summary-row dd{margin:0;font-size:13px;font-weight:500;color:var(--jex-text-main, #0f172a);text-align:right;min-width:0}.jex-magicline-summary-section{margin-top:8px}.jex-magicline-summary-heading{font-size:12px;font-weight:600;color:var(--jex-text-main, #0f172a);margin-bottom:2px}.jex-magicline-summary-totals{background:color-mix(in srgb,var(--jex-primary, #115A62) 6%,transparent);border-color:color-mix(in srgb,var(--jex-primary, #115A62) 25%,transparent)}.jex-magicline-summary-total-row dt,.jex-magicline-summary-total-row dd{font-size:14px;font-weight:700;color:var(--jex-text-main, #0f172a)}.jex-magicline-summary-total-row dt{flex-shrink:1;min-width:0}.jex-magicline-summary-total-row dd{flex-shrink:0;white-space:nowrap;overflow-wrap:normal}.jex-magicline-offer-group{display:flex;flex-direction:column;gap:8px}.jex-magicline-offer-bundle-name{font-size:13px;font-weight:600;color:var(--jex-text-main, #0f172a)}.jex-magicline-offer-bundle-desc{font-size:12px;color:var(--jex-text-muted, #64748b)}.jex-magicline-radio-card .jex-magicline-offer-term{display:flex;flex-direction:column;gap:4px;flex:1}.jex-magicline-offer-term-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.jex-magicline-offer-term-length{font-size:14px;font-weight:600;color:var(--jex-text-main, #0f172a)}.jex-magicline-offer-term-price{font-size:13px;font-weight:500;color:var(--jex-primary, #115A62)}.jex-magicline-offer-term-note{font-size:12px;color:var(--jex-text-muted, #64748b)}.jex-magicline-static-value{padding:9px 12px;border-radius:8px;font-size:14px;color:var(--jex-text-main, #0f172a);background:var(--jex-bg-window, #f8fafc);border:1px solid var(--jex-border-input, #e2e8f0)}.jex-magicline-terms{display:flex;flex-direction:column;gap:10px;padding:10px 12px;border-radius:8px;background:var(--jex-bg-window, #fff);border:1px solid var(--jex-border-input, #e2e8f0)}.jex-magicline-upgrades-recap-title,.jex-magicline-terms-title{font-size:12px;font-weight:600;color:var(--jex-text-main, #0f172a);margin-bottom:2px}.jex-magicline-terms-content{font-size:12px;line-height:1.5;color:var(--jex-text-muted, #64748b);white-space:pre-wrap}.jex-magicline-upgrade-group{display:flex;flex-direction:column;gap:8px}.jex-magicline-upgrade-card{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:10px;border:1px solid var(--jex-border-input, #e2e8f0);font-size:14px;color:var(--jex-text-main, #0f172a);cursor:pointer}.jex-magicline-upgrade-card-active{border-color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 8%,transparent)}.jex-magicline-upgrade-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;cursor:pointer}.jex-magicline-upgrade-info{display:flex;flex-direction:column;gap:2px;flex:1}.jex-magicline-upgrade-name{font-size:14px;font-weight:600;color:var(--jex-text-main, #0f172a)}.jex-magicline-upgrade-desc{font-size:12px;color:var(--jex-text-muted, #64748b)}.jex-magicline-upgrade-price{font-size:13px;font-weight:500;color:var(--jex-primary, #115A62)}.jex-magicline-upgrade-status{flex-shrink:0;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px;border:1px solid var(--jex-border-input, #e2e8f0);color:var(--jex-text-muted, #64748b);background:transparent;white-space:nowrap}.jex-magicline-upgrade-card-active .jex-magicline-upgrade-status{border-color:var(--jex-primary, #115A62);color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 12%,transparent)}.jex-magicline-terms-prompt{font-size:13px;font-weight:600;color:var(--jex-text-main, #0f172a);margin-bottom:4px}.jex-magicline-bundle-details{font-size:12px;color:var(--jex-text-muted, #64748b)}.jex-magicline-bundle-details-summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--jex-primary, #115A62);list-style-position:inside}.jex-magicline-bundle-details-summary:hover{text-decoration:underline}.jex-magicline-bundle-details-body{display:flex;flex-direction:column;gap:6px;margin-top:6px}.jex-magicline-bundle-details-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:2px;line-height:1.4}.jex-magicline-bundle-details-footnote{margin:0;line-height:1.4}.jex-magicline-consent-region{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:6px 8px;border-left:3px solid var(--jex-primary, #115A62);border-radius:6px;background:color-mix(in srgb,var(--jex-primary, #115A62) 6%,transparent)}.jex-magicline-required-pill{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 12%,transparent);vertical-align:middle}.jex-magicline-consent-body{display:flex;flex-direction:column;gap:1px}.jex-magicline-consent-recap{display:flex;flex-direction:column;gap:2px}.jex-escalation-confirm{border-left:3px solid var(--jex-primary, #115A62);padding-left:8px}.jex-session-prompt{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 16px;margin:8px 0;text-align:center}.jex-session-prompt-text{font-size:13px;color:var(--jex-text-muted, #64748b)}.jex-session-prompt-btn{padding:8px 16px;border-radius:8px;border:1px solid var(--jex-primary, #115A62);background:transparent;color:var(--jex-primary, #115A62);font-size:13px;font-weight:600;cursor:pointer}.jex-session-prompt-btn:hover{background:color-mix(in srgb,var(--jex-primary) 10%,transparent)}.jex-chat-input-resolved{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 16px;border-top:1px solid var(--jex-border-input, #e2e8f0);background:var(--jex-bg-msg-bot, #f1f5f9);text-align:center}.jex-resolved-notice{font-size:13px;font-weight:500;color:var(--jex-text-muted, #64748b)}.jex-resolved-new-btn{padding:10px 20px;border-radius:8px;border:none;background:var(--jex-primary, #115A62);color:#fff;font-size:13px;font-weight:600;cursor:pointer;width:100%}.jex-resolved-new-btn:hover{opacity:.9}.jex-confirmation{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 24px;height:100%;text-align:center}.jex-confirmation-icon{width:48px;height:48px;border-radius:50%;background:color-mix(in srgb,var(--jex-primary, #115A62) 15%,transparent);color:var(--jex-primary, #115A62);font-size:22px;display:flex;align-items:center;justify-content:center}.jex-confirmation-title{font-size:18px;font-weight:700;color:var(--jex-text-main, #0f172a);margin:0}.jex-confirmation-body{font-size:13px;color:var(--jex-text-muted, #64748b);margin:0}.jex-confirmation-ref{font-size:20px;font-weight:700;letter-spacing:.05em;color:var(--jex-primary, #115A62);background:color-mix(in srgb,var(--jex-primary, #115A62) 10%,transparent);padding:10px 20px;border-radius:10px}.jex-confirmation-hint{font-size:12px;color:var(--jex-text-muted, #64748b);margin:0}.jex-confirmation-done{margin-top:8px;padding:10px 28px;border-radius:8px;border:none;background:var(--jex-primary, #115A62);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.jex-home-lookup-link{background:none;border:none;font-size:12px;color:var(--jex-text-muted, #64748b);cursor:pointer;text-decoration:underline;padding:0;align-self:center}.jex-home-lookup{display:flex;gap:8px;width:100%;animation:jexFadeIn .4s .1s ease both}.jex-home-lookup-input{flex:1;padding:10px 14px;border-radius:10px;border:1px solid var(--jex-border-input, #e2e8f0);background:var(--jex-bg-input);color:var(--jex-text-main);font-size:14px;font-family:ui-monospace,Cascadia Code,Fira Code,monospace;letter-spacing:.04em;outline:none;transition:border-color .2s}@media(pointer:coarse){.jex-home-lookup-input{font-size:16px}}.jex-home-lookup-input::placeholder{font-family:inherit;letter-spacing:.04em;color:var(--jex-text-muted);opacity:.7}.jex-home-lookup-input:focus{border-color:var(--jex-primary, #115A62)}.jex-home-lookup-submit{padding:10px 16px;border-radius:10px;border:none;background:var(--jex-primary, #115A62);color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s,opacity .2s;flex-shrink:0}.jex-home-lookup-submit:hover:not(:disabled){background:var(--jex-primary-hover)}.jex-home-lookup-submit:disabled{opacity:.4;cursor:default}.jex-sources-row{margin-top:6px;margin-left:32px;display:flex;flex-direction:column;gap:6px}.jex-sources-toggle{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:11px;color:var(--jex-text-muted, #6b7280);font-family:inherit;align-self:flex-start;transition:background .15s,color .15s}.jex-sources-toggle:hover{background:#0000000a;color:inherit}.jex-sources-icon{font-size:12px;line-height:1}.jex-sources-chevron{display:inline-block;font-size:10px;transition:transform .15s}.jex-sources-chevron--open{transform:rotate(180deg)}.jex-sources-pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.jex-source-pill{display:inline-flex;align-items:center;gap:6px;max-width:240px;padding:2px 8px;border-radius:999px;border:1px solid rgba(0,0,0,.1);background:#0000000a;color:var(--jex-text-muted, #6b7280);font-size:11px;text-decoration:none;cursor:pointer;transition:background .15s,color .15s}.jex-source-pill:hover{background:#00000014;color:inherit}.jex-source-id{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:4px;background:var(--jex-primary, #115A62);color:#fff;font-size:10px;font-weight:600;line-height:1;flex-shrink:0;font-variant-numeric:tabular-nums}.jex-source-type{font-size:10px;flex-shrink:0}.jex-source-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.jex-source-score{opacity:.6;flex-shrink:0;font-variant-numeric:tabular-nums}.jex-starter-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0}.jex-starter-chip{display:inline-flex;align-items:center;border-radius:999px;padding:7px 13px;background:var(--jex-bg-window);border:1px solid var(--jex-border-input);color:var(--jex-primary);text-align:left;font-size:13.5px;font-weight:500;line-height:1.2;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.jex-starter-chip:hover:not(:disabled){background:color-mix(in srgb,var(--jex-primary) 8%,var(--jex-bg-window));border-color:var(--jex-primary)}.jex-starter-chip:disabled{opacity:.5;cursor:default}.jex-presence-dot{position:absolute;top:2px;right:2px;width:8px;height:8px;border-radius:999px;box-shadow:0 0 0 2px var(--jex-bg-header, #115A62)}.jex-presence-dot--online{background:#10b981}.jex-presence-dot--away{background:#fbbf24}.jex-presence-dot--offline{background:#9ca3af}@keyframes jex-ripple-expand{0%{transform:scale(1);opacity:.6}to{transform:scale(2.6);opacity:0}}.jex-waiting-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;margin:0 12px 8px;background:var(--jex-bg-msg-bot, #f1f5f9);border:1px solid var(--jex-border-input, #e2e8f0);border-radius:var(--jex-radius, .75rem)}.jex-waiting-indicator{position:relative;flex-shrink:0;width:20px;height:20px;margin-top:2px;display:flex;align-items:center;justify-content:center}.jex-waiting-dot{position:relative;z-index:1;width:8px;height:8px;border-radius:50%;background:var(--jex-primary, #115A62)}.jex-waiting-ripple{position:absolute;inset:0;width:8px;height:8px;margin:auto;border-radius:50%;background:var(--jex-primary, #115A62);animation:jex-ripple-expand 1.6s ease-out infinite}@media(prefers-reduced-motion:reduce){.jex-waiting-ripple{animation:none}}.jex-waiting-body{display:flex;flex-direction:column;gap:4px;min-width:0}.jex-waiting-title{font-weight:600;font-size:14px;color:var(--jex-text-main, #0f172a);line-height:1.3}.jex-waiting-subtitle{font-size:12px;color:var(--jex-text-muted, #64748b);line-height:1.4}.jex-waiting-leave-email{margin-top:6px;padding:0;border:none;background:transparent;color:var(--jex-primary, #115A62);font-size:12px;font-family:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer;text-align:left}.jex-waiting-leave-email:hover{opacity:.8}`;function ep(t){const e=document.createElement("style");e.textContent=Xh,t.appendChild(e)}const tp="https://festive-mouse-978.eu-west-1.convex.cloud";let Yr=null;function np(t){const e=t??tp;if(!e)throw new Error("[jexity] No Convex URL — set VITE_CONVEX_URL at build time or data-convex-url on the script tag");return Yr||(Yr=new nc(bc(e))),Yr}function rp(t,e){const n=t.shadowRoot??t.attachShadow({mode:"open"});for(;n.firstChild;)n.removeChild(n.firstChild);ep(n),An.value=e.source,Ve.value=e.bootstrapToken,ue.value=[{id:"home"}],e.mode==="embedded"&&(t.classList.add("jex-mode-embedded"),F.value=!0);const r=document.createElement("div");return e.mode==="embedded"&&(r.style.cssText="width:100%;height:100%"),n.appendChild(r),Ke(s(ic,{client:np(e.convexUrl),children:s(Yh,{options:e})}),r),function(){Ke(null,r),F.value=!1,An.value=void 0,Ve.value=void 0,ue.value=[{id:"home"}]}}function ip(t,e,n){const r=rp(t,e),i=new Set,o=F.subscribe(l=>{for(const c of i)c(l)});return{shutdown(){o(),i.clear(),r(),n&&n()},open(){F.value=!0},close(){F.value=!1},toggle(){F.value=!F.value},get isOpen(){return F.value},subscribe(l){return i.add(l),()=>{i.delete(l)}}}}let nn=null;function op(t){nn&&nn.shutdown();let e;t.container?e=typeof t.container=="string"?document.querySelector(t.container):t.container:(e=document.createElement("div"),e.id="jexity-chat-widget",document.body.appendChild(e));const n=ip(e,t,()=>{t.container||e.remove(),nn===n&&(nn=null)});return nn=n,n}function We(t,e){return t.getAttribute(e)??void 0}async function Ga(){const t=document.currentScript??document.querySelector("script[data-org-slug]")??document.querySelector("script[data-org-id]");if(!t)return;const e=t.getAttribute("data-org-slug")??t.getAttribute("data-org-id")??"default-org",n=t.getAttribute("data-proj-slug")??void 0,r=We(t,"data-convex-url")??"https://festive-mouse-978.eu-west-1.convex.cloud"??"",i=jr(r),o=await Sr(e,i,n);if(!o.ok){const l=window.location.origin,c=n?`project '${e}/${n}'`:`org '${e}'`;o.error==="unauthorized"?console.warn(`[JexityChat] This domain is not authorized for ${c}. Add '${l}' under Allowed Domains in your Jexity dashboard.`):o.error==="not_found"?console.warn(`[JexityChat] No active widget config found for ${c}. Check that the org slug is correct and the widget is enabled.`):o.error==="rate_limited"?console.warn(`[JexityChat] Bootstrap rate-limited for ${c}. Retry after ${o.retryAfterSec??60}s.`):console.warn(`[JexityChat] Bootstrap failed (network error). Check that the Convex deployment is reachable at ${i}.`);return}if(o.allowedUrls.length>0&&!o.allowedUrls.some(l=>Cr(window.location.href,l))){const l=n?`project '${e}/${n}'`:`org '${e}'`;console.warn(`[JexityChat] Widget hidden for ${l} — current page does not match path rule. Allowed: ${o.allowedUrls.join(", ")}`);return}const a={orgSlug:e,projSlug:n,bootstrapToken:o.token,allowedUrls:o.allowedUrls,excludePaths:o.excludePaths,position:We(t,"data-position")??void 0,theme:We(t,"data-theme")??void 0,greeting:We(t,"data-greeting"),title:We(t,"data-title"),primaryColor:We(t,"data-primary-color"),locale:We(t,"data-locale"),convexUrl:We(t,"data-convex-url")};window.JexityChat=op(a)}document.readyState==="complete"?Ga():window.addEventListener("load",Ga)})();
71
71
  //# sourceMappingURL=widget.js.map