@bpinternal/billing-ui 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- (function(k,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react/jsx-runtime"),require("@tanstack/react-query"),require("react"),require("@stripe/stripe-js"),require("react-dom"),require("@stripe/react-stripe-js")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@tanstack/react-query","react","@stripe/stripe-js","react-dom","@stripe/react-stripe-js"],o):(k=typeof globalThis<"u"?globalThis:k||self,o(k.BillingUI={},k.ReactJsxRuntime,k.ReactQuery,k.React,k.StripeJs,k.ReactDOM,k.ReactStripeJs))})(this,function(k,o,Ce,T,Ao,Po,Me){"use strict";var Oc=Object.defineProperty;var Bc=(k,o,Ce)=>o in k?Oc(k,o,{enumerable:!0,configurable:!0,writable:!0,value:Ce}):k[o]=Ce;var Io=(k,o,Ce)=>Bc(k,typeof o!="symbol"?o+"":o,Ce);const br=new Map;function fr(a){let e=br.get(a);return e||(e=Ao.loadStripe(a,{developerTools:{assistant:{enabled:!1}}}),br.set(a,e)),e}var he=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function xo(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Do={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};const Eo=xo(Do);var Lo=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function yr(a){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=a.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(e.name=t[1],(Eo[t[1]]||a.charAt(a.length-2)==="/")&&(e.voidElement=!0),e.name.startsWith("!--"))){var n=a.indexOf("-->");return{type:"comment",comment:n!==-1?a.slice(4,n):""}}for(var r=new RegExp(Lo),s=null;(s=r.exec(a))!==null;)if(s[0].trim())if(s[1]){var i=s[1].trim(),l=[i,""];i.indexOf("=")>-1&&(l=i.split("=")),e.attrs[l[0]]=l[1],r.lastIndex--}else s[2]&&(e.attrs[s[2]]=s[3].trim().substring(1,s[3].length-1));return e}var Fo=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,Mo=/^\s*$/,Oo=Object.create(null);function vr(a,e){switch(e.type){case"text":return a+e.content;case"tag":return a+="<"+e.name+(e.attrs?function(t){var n=[];for(var r in t)n.push(r+'="'+t[r]+'"');return n.length?" "+n.join(" "):""}(e.attrs):"")+(e.voidElement?"/>":">"),e.voidElement?a:a+e.children.reduce(vr,"")+"</"+e.name+">";case"comment":return a+"<!--"+e.comment+"-->"}}var Bo={parse:function(a,e){e||(e={}),e.components||(e.components=Oo);var t,n=[],r=[],s=-1,i=!1;if(a.indexOf("<")!==0){var l=a.indexOf("<");n.push({type:"text",content:l===-1?a:a.substring(0,l)})}return a.replace(Fo,function(d,c){if(i){if(d!=="</"+t.name+">")return;i=!1}var u,p=d.charAt(1)!=="/",h=d.startsWith("<!--"),m=c+d.length,g=a.charAt(m);if(h){var N=yr(d);return s<0?(n.push(N),n):((u=r[s]).children.push(N),n)}if(p&&(s++,(t=yr(d)).type==="tag"&&e.components[t.name]&&(t.type="component",i=!0),t.voidElement||i||!g||g==="<"||t.children.push({type:"text",content:a.slice(m,a.indexOf("<",m))}),s===0&&n.push(t),(u=r[s-1])&&u.children.push(t),r[s]=t),(!p||t.voidElement)&&(s>-1&&(t.voidElement||t.name===d.slice(2,-1))&&(s--,t=s===-1?n:r[s]),!i&&g!=="<"&&g)){u=s===-1?n:r[s].children;var v=a.indexOf("<",m),y=a.slice(m,v===-1?void 0:v);Mo.test(y)&&(y=" "),(v>-1&&s+u.length>=0||y!==" ")&&u.push({type:"text",content:y})}}),n},stringify:function(a){return a.reduce(function(e,t){return e+vr("",t)},"")}};function Lt(){if(console&&console.warn){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Oe(e[0])&&(e[0]=`react-i18next:: ${e[0]}`),console.warn(...e)}}const _r={};function Ft(){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Oe(e[0])&&_r[e[0]]||(Oe(e[0])&&(_r[e[0]]=new Date),Lt(...e))}const Nr=(a,e)=>()=>{if(a.isInitialized)e();else{const t=()=>{setTimeout(()=>{a.off("initialized",t)},0),e()};a.on("initialized",t)}},Cr=(a,e,t)=>{a.loadNamespaces(e,Nr(a,t))},Sr=(a,e,t,n)=>{Oe(t)&&(t=[t]),t.forEach(r=>{a.options.ns.indexOf(r)<0&&a.options.ns.push(r)}),a.loadLanguages(e,Nr(a,n))},Uo=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=e.languages[0],r=e.options?e.options.fallbackLng:!1,s=e.languages[e.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(l,d)=>{const c=e.services.backendConnector.state[`${l}|${d}`];return c===-1||c===2};return t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!i(e.isLanguageChangingTo,a)?!1:!!(e.hasResourceBundle(n,a)||!e.services.backendConnector.backend||e.options.resources&&!e.options.partialBundledLanguages||i(n,a)&&(!r||i(s,a)))},zo=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(Ft("i18n.languages were undefined or empty",e.languages),!0):e.options.ignoreJSONStructure!==void 0?e.hasLoadedNamespace(a,{lng:t.lng,precheck:(r,s)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&r.services.backendConnector.backend&&r.isLanguageChangingTo&&!s(r.isLanguageChangingTo,a))return!1}}):Uo(a,e,t)},Oe=a=>typeof a=="string",Fa=a=>typeof a=="object"&&a!==null,jo=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Vo={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},Zo=a=>Vo[a];let Cn={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:a=>a.replace(jo,Zo)};const qo=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Cn={...Cn,...a}},kr=()=>Cn;let wr;const Wo=a=>{wr=a},Sn=()=>wr,kn=(a,e)=>{if(!a)return!1;const t=a.props?a.props.children:a.children;return e?t.length>0:!!t},wn=a=>{if(!a)return[];const e=a.props?a.props.children:a.children;return a.props&&a.props.i18nIsDynamicList?Ma(e):e},Go=a=>Array.isArray(a)&&a.every(T.isValidElement),Ma=a=>Array.isArray(a)?a:[a],Ko=(a,e)=>{const t={...e};return t.props=Object.assign(a.props,e.props),t},Tr=(a,e)=>{if(!a)return"";let t="";const n=Ma(a),r=e.transSupportBasicHtmlNodes&&e.transKeepBasicHtmlNodesFor?e.transKeepBasicHtmlNodesFor:[];return n.forEach((s,i)=>{if(Oe(s))t+=`${s}`;else if(T.isValidElement(s)){const{props:l,type:d}=s,c=Object.keys(l).length,u=r.indexOf(d)>-1,p=l.children;if(!p&&u&&!c)t+=`<${d}/>`;else if(!p&&(!u||c)||l.i18nIsDynamicList)t+=`<${i}></${i}>`;else if(u&&c===1&&Oe(p))t+=`<${d}>${p}</${d}>`;else{const h=Tr(p,e);t+=`<${i}>${h}</${i}>`}}else if(s===null)Lt("Trans: the passed in value is invalid - seems you passed in a null child.");else if(Fa(s)){const{format:l,...d}=s,c=Object.keys(d);if(c.length===1){const u=l?`${c[0]}, ${l}`:c[0];t+=`{{${u}}}`}else Lt("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",s)}else Lt("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",s)}),t},Ro=(a,e,t,n,r,s)=>{if(e==="")return[];const i=n.transKeepBasicHtmlNodesFor||[],l=e&&new RegExp(i.map(v=>`<${v}`).join("|")).test(e);if(!a&&!l&&!s)return[e];const d={},c=v=>{Ma(v).forEach(_=>{Oe(_)||(kn(_)?c(wn(_)):Fa(_)&&!T.isValidElement(_)&&Object.assign(d,_))})};c(a);const u=Bo.parse(`<0>${e}</0>`),p={...d,...r},h=(v,y,_)=>{const C=wn(v),I=g(C,y.children,_);return Go(C)&&I.length===0||v.props&&v.props.i18nIsDynamicList?C:I},m=(v,y,_,C,I)=>{v.dummy?(v.children=y,_.push(T.cloneElement(v,{key:C},I?void 0:y))):_.push(...T.Children.map([v],A=>{const S={...A.props};return delete S.i18nIsDynamicList,T.createElement(A.type,{...S,key:C,ref:A.ref},I?null:y)}))},g=(v,y,_)=>{const C=Ma(v);return Ma(y).reduce((A,S,P)=>{const w=S.children&&S.children[0]&&S.children[0].content&&t.services.interpolator.interpolate(S.children[0].content,p,t.language);if(S.type==="tag"){let F=C[parseInt(S.name,10)];_.length===1&&!F&&(F=_[0][S.name]),F||(F={});const O=Object.keys(S.attrs).length!==0?Ko({props:S.attrs},F):F,B=T.isValidElement(O),W=B&&kn(S,!0)&&!S.voidElement,q=l&&Fa(O)&&O.dummy&&!B,H=Fa(a)&&Object.hasOwnProperty.call(a,S.name);if(Oe(O)){const z=t.services.interpolator.interpolate(O,p,t.language);A.push(z)}else if(kn(O)||W){const z=h(O,S,_);m(O,z,A,P)}else if(q){const z=g(C,S.children,_);m(O,z,A,P)}else if(Number.isNaN(parseFloat(S.name)))if(H){const z=h(O,S,_);m(O,z,A,P,S.voidElement)}else if(n.transSupportBasicHtmlNodes&&i.indexOf(S.name)>-1)if(S.voidElement)A.push(T.createElement(S.name,{key:`${S.name}-${P}`}));else{const z=g(C,S.children,_);A.push(T.createElement(S.name,{key:`${S.name}-${P}`},z))}else if(S.voidElement)A.push(`<${S.name} />`);else{const z=g(C,S.children,_);A.push(`<${S.name}>${z}</${S.name}>`)}else if(Fa(O)&&!B){const z=S.children[0]?w:null;z&&A.push(z)}else m(O,w,A,P,S.children.length!==1||!w)}else if(S.type==="text"){const F=n.transWrapTextNodes,O=s?n.unescape(t.services.interpolator.interpolate(S.content,p,t.language)):t.services.interpolator.interpolate(S.content,p,t.language);F?A.push(T.createElement(F,{key:`${S.name}-${P}`},O)):A.push(O)}return A},[])},N=g([{dummy:!0,children:a||[]}],u,Ma(a||[]));return wn(N[0])};function $o(a){let{children:e,count:t,parent:n,i18nKey:r,context:s,tOptions:i={},values:l,defaults:d,components:c,ns:u,i18n:p,t:h,shouldUnescape:m,...g}=a;const N=p||Sn();if(!N)return Ft("You will need to pass in an i18next instance by using i18nextReactModule"),e;const v=h||N.t.bind(N)||(W=>W),y={...kr(),...N.options&&N.options.react};let _=u||v.ns||N.options&&N.options.defaultNS;_=Oe(_)?[_]:_||["translation"];const C=Tr(e,y),I=d||C||y.transEmptyNodeValue||r,{hashTransKey:A}=y,S=r||(A?A(C||I):C||I);N.options&&N.options.interpolation&&N.options.interpolation.defaultVariables&&(l=l&&Object.keys(l).length>0?{...l,...N.options.interpolation.defaultVariables}:{...N.options.interpolation.defaultVariables});const P=l||t!==void 0||!e?i.interpolation:{interpolation:{...i.interpolation,prefix:"#$?",suffix:"?$#"}},w={...i,context:s||i.context,count:t,...l,...P,defaultValue:I,ns:_},F=S?v(S,w):I;c&&Object.keys(c).forEach(W=>{const q=c[W];if(typeof q.type=="function"||!q.props||!q.props.children||F.indexOf(`${W}/>`)<0&&F.indexOf(`${W} />`)<0)return;function H(){return T.createElement(T.Fragment,null,q)}c[W]=T.createElement(H)});const O=Ro(c||e,F,N,y,w,m),B=n!==void 0?n:y.defaultTransParent;return B?T.createElement(B,g,O):O}const Ho={type:"3rdParty",init(a){qo(a.options.react),Wo(a)}},Tn=T.createContext();class Yo{constructor(){Io(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}}function Mt(a){let{children:e,count:t,parent:n,i18nKey:r,context:s,tOptions:i={},values:l,defaults:d,components:c,ns:u,i18n:p,t:h,shouldUnescape:m,...g}=a;const{i18n:N,defaultNS:v}=T.useContext(Tn)||{},y=p||N||Sn(),_=h||y&&y.t.bind(y);return $o({children:e,count:t,parent:n,i18nKey:r,context:s,tOptions:i,values:l,defaults:d,components:c,ns:u||_&&_.ns||v||y&&y.options&&y.options.defaultNS,i18n:y,t:h,shouldUnescape:m,...g})}const Jo=(a,e)=>{const t=T.useRef();return T.useEffect(()=>{t.current=a},[a,e]),t.current},Ir=(a,e,t,n)=>a.getFixedT(e,t,n),Qo=(a,e,t,n)=>T.useCallback(Ir(a,e,t,n),[a,e,t,n]),ge=function(a){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:n,defaultNS:r}=T.useContext(Tn)||{},s=t||n||Sn();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new Yo),!s){Ft("You will need to pass in an i18next instance by using initReactI18next");const I=(S,P)=>Oe(P)?P:Fa(P)&&Oe(P.defaultValue)?P.defaultValue:Array.isArray(S)?S[S.length-1]:S,A=[I,{},!1];return A.t=I,A.i18n={},A.ready=!1,A}s.options.react&&s.options.react.wait!==void 0&&Ft("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const i={...kr(),...s.options.react,...e},{useSuspense:l,keyPrefix:d}=i;let c=r||s.options&&s.options.defaultNS;c=Oe(c)?[c]:c||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(c);const u=(s.isInitialized||s.initializedStoreOnce)&&c.every(I=>zo(I,s,i)),p=Qo(s,e.lng||null,i.nsMode==="fallback"?c:c[0],d),h=()=>p,m=()=>Ir(s,e.lng||null,i.nsMode==="fallback"?c:c[0],d),[g,N]=T.useState(h);let v=c.join();e.lng&&(v=`${e.lng}${v}`);const y=Jo(v),_=T.useRef(!0);T.useEffect(()=>{const{bindI18n:I,bindI18nStore:A}=i;_.current=!0,!u&&!l&&(e.lng?Sr(s,e.lng,c,()=>{_.current&&N(m)}):Cr(s,c,()=>{_.current&&N(m)})),u&&y&&y!==v&&_.current&&N(m);const S=()=>{_.current&&N(m)};return I&&s&&s.on(I,S),A&&s&&s.store.on(A,S),()=>{_.current=!1,I&&s&&I.split(" ").forEach(P=>s.off(P,S)),A&&s&&A.split(" ").forEach(P=>s.store.off(P,S))}},[s,v]),T.useEffect(()=>{_.current&&u&&N(h)},[s,d,u]);const C=[g,s,u];if(C.t=g,C.i18n=s,C.ready=u,u||!u&&!l)return C;throw new Promise(I=>{e.lng?Sr(s,e.lng,c,()=>I()):Cr(s,c,()=>I())})};function Xo(a){let{i18n:e,defaultNS:t,children:n}=a;const r=T.useMemo(()=>({i18n:e,defaultNS:t}),[e,t]);return T.createElement(Tn.Provider,{value:r},n)}const Q=a=>typeof a=="string",Ja=()=>{let a,e;const t=new Promise((n,r)=>{a=n,e=r});return t.resolve=a,t.reject=e,t},Ar=a=>a==null?"":""+a,ei=(a,e,t)=>{a.forEach(n=>{e[n]&&(t[n]=e[n])})},ai=/###/g,Pr=a=>a&&a.indexOf("###")>-1?a.replace(ai,"."):a,xr=a=>!a||Q(a),Qa=(a,e,t)=>{const n=Q(e)?e.split("."):e;let r=0;for(;r<n.length-1;){if(xr(a))return{};const s=Pr(n[r]);!a[s]&&t&&(a[s]=new t),Object.prototype.hasOwnProperty.call(a,s)?a=a[s]:a={},++r}return xr(a)?{}:{obj:a,k:Pr(n[r])}},Dr=(a,e,t)=>{const{obj:n,k:r}=Qa(a,e,Object);if(n!==void 0||e.length===1){n[r]=t;return}let s=e[e.length-1],i=e.slice(0,e.length-1),l=Qa(a,i,Object);for(;l.obj===void 0&&i.length;)s=`${i[i.length-1]}.${s}`,i=i.slice(0,i.length-1),l=Qa(a,i,Object),l&&l.obj&&typeof l.obj[`${l.k}.${s}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${s}`]=t},ti=(a,e,t,n)=>{const{obj:r,k:s}=Qa(a,e,Object);r[s]=r[s]||[],r[s].push(t)},Ot=(a,e)=>{const{obj:t,k:n}=Qa(a,e);if(t)return t[n]},ni=(a,e,t)=>{const n=Ot(a,t);return n!==void 0?n:Ot(e,t)},Er=(a,e,t)=>{for(const n in e)n!=="__proto__"&&n!=="constructor"&&(n in a?Q(a[n])||a[n]instanceof String||Q(e[n])||e[n]instanceof String?t&&(a[n]=e[n]):Er(a[n],e[n],t):a[n]=e[n]);return a},Oa=a=>a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var ri={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};const si=a=>Q(a)?a.replace(/[&<>"'\/]/g,e=>ri[e]):a;class oi{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(t!==void 0)return t;const n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}}const ii=[" ",",","?","!",";"],li=new oi(20),di=(a,e,t)=>{e=e||"",t=t||"";const n=ii.filter(i=>e.indexOf(i)<0&&t.indexOf(i)<0);if(n.length===0)return!0;const r=li.getRegExp(`(${n.map(i=>i==="?"?"\\?":i).join("|")})`);let s=!r.test(a);if(!s){const i=a.indexOf(t);i>0&&!r.test(a.substring(0,i))&&(s=!0)}return s},In=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!a)return;if(a[e])return a[e];const n=e.split(t);let r=a;for(let s=0;s<n.length;){if(!r||typeof r!="object")return;let i,l="";for(let d=s;d<n.length;++d)if(d!==s&&(l+=t),l+=n[d],i=r[l],i!==void 0){if(["string","number","boolean"].indexOf(typeof i)>-1&&d<n.length-1)continue;s+=d-s+1;break}r=i}return r},Bt=a=>a&&a.replace("_","-"),ci={type:"logger",log(a){this.output("log",a)},warn(a){this.output("warn",a)},error(a){this.output("error",a)},output(a,e){console&&console[a]&&console[a].apply(console,e)}};class Ut{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(e,t)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||ci,this.options=t,this.debug=t.debug}log(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}deprecate(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,n,r){return r&&!this.debug?null:(Q(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new Ut(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new Ut(this.logger,e)}}var He=new Ut;class zt{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(n=>{this.observers[n]||(this.observers[n]=new Map);const r=this.observers[n].get(t)||0;this.observers[n].set(t,r+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this.observers[e]&&Array.from(this.observers[e].entries()).forEach(i=>{let[l,d]=i;for(let c=0;c<d;c++)l(...n)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(i=>{let[l,d]=i;for(let c=0;c<d;c++)l.apply(l,[e,...n])})}}class Lr extends zt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const s=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,i=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;e.indexOf(".")>-1?l=e.split("."):(l=[e,t],n&&(Array.isArray(n)?l.push(...n):Q(n)&&s?l.push(...n.split(s)):l.push(n)));const d=Ot(this.data,l);return!d&&!t&&!n&&e.indexOf(".")>-1&&(e=l[0],t=l[1],n=l.slice(2).join(".")),d||!i||!Q(n)?d:In(this.data&&this.data[e]&&this.data[e][t],n,s)}addResource(e,t,n,r){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator;let l=[e,t];n&&(l=l.concat(i?n.split(i):n)),e.indexOf(".")>-1&&(l=e.split("."),r=t,t=l[1]),this.addNamespaces(t),Dr(this.data,l,r),s.silent||this.emit("added",e,t,n,r)}addResources(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const s in n)(Q(n[s])||Array.isArray(n[s]))&&this.addResource(e,t,s,n[s],{silent:!0});r.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,r,s){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},l=[e,t];e.indexOf(".")>-1&&(l=e.split("."),r=n,n=t,t=l[1]),this.addNamespaces(t);let d=Ot(this.data,l)||{};i.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?Er(d,n,s):d={...d,...n},Dr(this.data,l,d),i.silent||this.emit("added",e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(e,t)}:this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(r=>t[r]&&Object.keys(t[r]).length>0)}toJSON(){return this.data}}var Fr={processors:{},addPostProcessor(a){this.processors[a.name]=a},handle(a,e,t,n,r){return a.forEach(s=>{this.processors[s]&&(e=this.processors[s].process(e,t,n,r))}),e}};const Mr={};class jt extends zt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),ei(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=He.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(e==null)return!1;const n=this.resolve(e,t);return n&&n.res!==void 0}extractFromKey(e,t){let n=t.nsSeparator!==void 0?t.nsSeparator:this.options.nsSeparator;n===void 0&&(n=":");const r=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let s=t.ns||this.options.defaultNS||[];const i=n&&e.indexOf(n)>-1,l=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!di(e,n,r);if(i&&!l){const d=e.match(this.interpolator.nestingRegexp);if(d&&d.length>0)return{key:e,namespaces:Q(s)?[s]:s};const c=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(c[0])>-1)&&(s=c.shift()),e=c.join(r)}return{key:e,namespaces:Q(s)?[s]:s}}translate(e,t,n){if(typeof t!="object"&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),typeof t=="object"&&(t={...t}),t||(t={}),e==null)return"";Array.isArray(e)||(e=[String(e)]);const r=t.returnDetails!==void 0?t.returnDetails:this.options.returnDetails,s=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator,{key:i,namespaces:l}=this.extractFromKey(e[e.length-1],t),d=l[l.length-1],c=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(c&&c.toLowerCase()==="cimode"){if(u){const I=t.nsSeparator||this.options.nsSeparator;return r?{res:`${d}${I}${i}`,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:d,usedParams:this.getUsedParamsDetails(t)}:`${d}${I}${i}`}return r?{res:i,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:d,usedParams:this.getUsedParamsDetails(t)}:i}const p=this.resolve(e,t);let h=p&&p.res;const m=p&&p.usedKey||i,g=p&&p.exactUsedKey||i,N=Object.prototype.toString.apply(h),v=["[object Number]","[object Function]","[object RegExp]"],y=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,_=!this.i18nFormat||this.i18nFormat.handleAsObject,C=!Q(h)&&typeof h!="boolean"&&typeof h!="number";if(_&&h&&C&&v.indexOf(N)<0&&!(Q(y)&&Array.isArray(h))){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const I=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,h,{...t,ns:l}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(p.res=I,p.usedParams=this.getUsedParamsDetails(t),p):I}if(s){const I=Array.isArray(h),A=I?[]:{},S=I?g:m;for(const P in h)if(Object.prototype.hasOwnProperty.call(h,P)){const w=`${S}${s}${P}`;A[P]=this.translate(w,{...t,joinArrays:!1,ns:l}),A[P]===w&&(A[P]=h[P])}h=A}}else if(_&&Q(y)&&Array.isArray(h))h=h.join(y),h&&(h=this.extendTranslation(h,e,t,n));else{let I=!1,A=!1;const S=t.count!==void 0&&!Q(t.count),P=jt.hasDefaultValue(t),w=S?this.pluralResolver.getSuffix(c,t.count,t):"",F=t.ordinal&&S?this.pluralResolver.getSuffix(c,t.count,{ordinal:!1}):"",O=S&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),B=O&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${w}`]||t[`defaultValue${F}`]||t.defaultValue;!this.isValidLookup(h)&&P&&(I=!0,h=B),this.isValidLookup(h)||(A=!0,h=i);const q=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&A?void 0:h,H=P&&B!==h&&this.options.updateMissing;if(A||I||H){if(this.logger.log(H?"updateKey":"missingKey",c,d,i,H?B:h),s){const K=this.resolve(i,{...t,keySeparator:!1});K&&K.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let z=[];const D=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&D&&D[0])for(let K=0;K<D.length;K++)z.push(D[K]);else this.options.saveMissingTo==="all"?z=this.languageUtils.toResolveHierarchy(t.lng||this.language):z.push(t.lng||this.language);const Y=(K,ee,E)=>{const pe=P&&E!==h?E:q;this.options.missingKeyHandler?this.options.missingKeyHandler(K,d,ee,pe,H,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(K,d,ee,pe,H,t),this.emit("missingKey",K,d,ee,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&S?z.forEach(K=>{const ee=this.pluralResolver.getSuffixes(K,t);O&&t[`defaultValue${this.options.pluralSeparator}zero`]&&ee.indexOf(`${this.options.pluralSeparator}zero`)<0&&ee.push(`${this.options.pluralSeparator}zero`),ee.forEach(E=>{Y([K],i+E,t[`defaultValue${E}`]||B)})}):Y(z,i,B))}h=this.extendTranslation(h,e,t,p,n),A&&h===i&&this.options.appendNamespaceToMissingKey&&(h=`${d}:${i}`),(A||I)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${d}:${i}`:i,I?h:void 0):h=this.options.parseMissingKeyHandler(h))}return r?(p.res=h,p.usedParams=this.getUsedParamsDetails(t),p):h}extendTranslation(e,t,n,r,s){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const c=Q(e)&&(n&&n.interpolation&&n.interpolation.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let u;if(c){const h=e.match(this.interpolator.nestingRegexp);u=h&&h.length}let p=n.replace&&!Q(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(p={...this.options.interpolation.defaultVariables,...p}),e=this.interpolator.interpolate(e,p,n.lng||this.language||r.usedLng,n),c){const h=e.match(this.interpolator.nestingRegexp),m=h&&h.length;u<m&&(n.nest=!1)}!n.lng&&this.options.compatibilityAPI!=="v1"&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,function(){for(var h=arguments.length,m=new Array(h),g=0;g<h;g++)m[g]=arguments[g];return s&&s[0]===m[0]&&!n.context?(i.logger.warn(`It seems you are nesting recursively key: ${m[0]} in key: ${t[0]}`),null):i.translate(...m,t)},n)),n.interpolation&&this.interpolator.reset()}const l=n.postProcess||this.options.postProcess,d=Q(l)?[l]:l;return e!=null&&d&&d.length&&n.applyPostProcessor!==!1&&(e=Fr.handle(d,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n,r,s,i,l;return Q(e)&&(e=[e]),e.forEach(d=>{if(this.isValidLookup(n))return;const c=this.extractFromKey(d,t),u=c.key;r=u;let p=c.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const h=t.count!==void 0&&!Q(t.count),m=h&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),g=t.context!==void 0&&(Q(t.context)||typeof t.context=="number")&&t.context!=="",N=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);p.forEach(v=>{this.isValidLookup(n)||(l=v,!Mr[`${N[0]}-${v}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(l)&&(Mr[`${N[0]}-${v}`]=!0,this.logger.warn(`key "${r}" for languages "${N.join(", ")}" won't get resolved as namespace "${l}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),N.forEach(y=>{if(this.isValidLookup(n))return;i=y;const _=[u];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(_,u,y,v,t);else{let I;h&&(I=this.pluralResolver.getSuffix(y,t.count,t));const A=`${this.options.pluralSeparator}zero`,S=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(h&&(_.push(u+I),t.ordinal&&I.indexOf(S)===0&&_.push(u+I.replace(S,this.options.pluralSeparator)),m&&_.push(u+A)),g){const P=`${u}${this.options.contextSeparator}${t.context}`;_.push(P),h&&(_.push(P+I),t.ordinal&&I.indexOf(S)===0&&_.push(P+I.replace(S,this.options.pluralSeparator)),m&&_.push(P+A))}}let C;for(;C=_.pop();)this.isValidLookup(n)||(s=C,n=this.getResource(y,v,C,t))}))})}),{res:n,usedKey:r,exactUsedKey:s,usedLng:i,usedNS:l}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=e.replace&&!Q(e.replace);let r=n?e.replace:e;if(n&&typeof e.count<"u"&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(const s of t)delete r[s]}return r}static hasDefaultValue(e){const t="defaultValue";for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&e[n]!==void 0)return!0;return!1}}const An=a=>a.charAt(0).toUpperCase()+a.slice(1);class Or{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=He.create("languageUtils")}getScriptPartFromCode(e){if(e=Bt(e),!e||e.indexOf("-")<0)return null;const t=e.split("-");return t.length===2||(t.pop(),t[t.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(t.join("-"))}getLanguagePartFromCode(e){if(e=Bt(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(Q(e)&&e.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let r=Intl.getCanonicalLocales(e)[0];if(r&&this.options.lowerCaseLng&&(r=r.toLowerCase()),r)return r}catch{}const t=["hans","hant","latn","cyrl","cans","mong","arab"];let n=e.split("-");return this.options.lowerCaseLng?n=n.map(r=>r.toLowerCase()):n.length===2?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=An(n[1].toLowerCase()))):n.length===3&&(n[0]=n[0].toLowerCase(),n[1].length===2&&(n[1]=n[1].toUpperCase()),n[0]!=="sgn"&&n[2].length===2&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=An(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=An(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(n=>{if(t)return;const r=this.formatLanguageCode(n);(!this.options.supportedLngs||this.isSupportedCode(r))&&(t=r)}),!t&&this.options.supportedLngs&&e.forEach(n=>{if(t)return;const r=this.getLanguagePartFromCode(n);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(s=>{if(s===r)return s;if(!(s.indexOf("-")<0&&r.indexOf("-")<0)&&(s.indexOf("-")>0&&r.indexOf("-")<0&&s.substring(0,s.indexOf("-"))===r||s.indexOf(r)===0&&r.length>1))return s})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),Q(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}toResolveHierarchy(e,t){const n=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],s=i=>{i&&(this.isSupportedCode(i)?r.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return Q(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&s(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&s(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&s(this.getLanguagePartFromCode(e))):Q(e)&&s(this.formatLanguageCode(e)),n.forEach(i=>{r.indexOf(i)<0&&s(this.formatLanguageCode(i))}),r}}let ui=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],pi={1:a=>+(a>1),2:a=>+(a!=1),3:a=>0,4:a=>a%10==1&&a%100!=11?0:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?1:2,5:a=>a==0?0:a==1?1:a==2?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5,6:a=>a==1?0:a>=2&&a<=4?1:2,7:a=>a==1?0:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?1:2,8:a=>a==1?0:a==2?1:a!=8&&a!=11?2:3,9:a=>+(a>=2),10:a=>a==1?0:a==2?1:a<7?2:a<11?3:4,11:a=>a==1||a==11?0:a==2||a==12?1:a>2&&a<20?2:3,12:a=>+(a%10!=1||a%100==11),13:a=>+(a!==0),14:a=>a==1?0:a==2?1:a==3?2:3,15:a=>a%10==1&&a%100!=11?0:a%10>=2&&(a%100<10||a%100>=20)?1:2,16:a=>a%10==1&&a%100!=11?0:a!==0?1:2,17:a=>a==1||a%10==1&&a%100!=11?0:1,18:a=>a==0?0:a==1?1:2,19:a=>a==1?0:a==0||a%100>1&&a%100<11?1:a%100>10&&a%100<20?2:3,20:a=>a==1?0:a==0||a%100>0&&a%100<20?1:2,21:a=>a%100==1?1:a%100==2?2:a%100==3||a%100==4?3:0,22:a=>a==1?0:a==2?1:(a<0||a>10)&&a%10==0?2:3};const hi=["v1","v2","v3"],mi=["v4"],Br={zero:0,one:1,two:2,few:3,many:4,other:5},gi=()=>{const a={};return ui.forEach(e=>{e.lngs.forEach(t=>{a[t]={numbers:e.nr,plurals:pi[e.fc]}})}),a};class bi{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=He.create("pluralResolver"),(!this.options.compatibilityJSON||mi.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=gi(),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi()){const n=Bt(e==="dev"?"en":e),r=t.ordinal?"ordinal":"cardinal",s=JSON.stringify({cleanedCode:n,type:r});if(s in this.pluralRulesCache)return this.pluralRulesCache[s];let i;try{i=new Intl.PluralRules(n,{type:r})}catch{if(!e.match(/-|_/))return;const d=this.languageUtils.getLanguagePartFromCode(e);i=this.getRule(d,t)}return this.pluralRulesCache[s]=i,i}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}getPluralFormsOfKey(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(e,n).map(r=>`${t}${r}`)}getSuffixes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=this.getRule(e,t);return n?this.shouldUseIntlApi()?n.resolvedOptions().pluralCategories.sort((r,s)=>Br[r]-Br[s]).map(r=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${r}`):n.numbers.map(r=>this.getSuffix(e,r,t)):[]}getSuffix(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=this.getRule(e,n);return r?this.shouldUseIntlApi()?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r.select(t)}`:this.getSuffixRetroCompatible(r,t):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,t){const n=e.noAbs?e.plurals(t):e.plurals(Math.abs(t));let r=e.numbers[n];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(r===2?r="plural":r===1&&(r=""));const s=()=>this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString();return this.options.compatibilityJSON==="v1"?r===1?"":typeof r=="number"?`_plural_${r.toString()}`:s():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?s():this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString()}shouldUseIntlApi(){return!hi.includes(this.options.compatibilityJSON)}}const Ur=function(a,e,t){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=ni(a,e,t);return!s&&r&&Q(t)&&(s=In(a,t,n),s===void 0&&(s=In(e,t,n))),s},Pn=a=>a.replace(/\$/g,"$$$$");class fi{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=He.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(t=>t),this.init(e)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:s,prefixEscaped:i,suffix:l,suffixEscaped:d,formatSeparator:c,unescapeSuffix:u,unescapePrefix:p,nestingPrefix:h,nestingPrefixEscaped:m,nestingSuffix:g,nestingSuffixEscaped:N,nestingOptionsSeparator:v,maxReplaces:y,alwaysFormat:_}=e.interpolation;this.escape=t!==void 0?t:si,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=s?Oa(s):i||"{{",this.suffix=l?Oa(l):d||"}}",this.formatSeparator=c||",",this.unescapePrefix=u?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=h?Oa(h):m||Oa("$t("),this.nestingSuffix=g?Oa(g):N||Oa(")"),this.nestingOptionsSeparator=v||",",this.maxReplaces=y||1e3,this.alwaysFormat=_!==void 0?_:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,n)=>t&&t.source===n?(t.lastIndex=0,t):new RegExp(n,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let s,i,l;const d=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=m=>{if(m.indexOf(this.formatSeparator)<0){const y=Ur(t,d,m,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(y,void 0,n,{...r,...t,interpolationkey:m}):y}const g=m.split(this.formatSeparator),N=g.shift().trim(),v=g.join(this.formatSeparator).trim();return this.format(Ur(t,d,N,this.options.keySeparator,this.options.ignoreJSONStructure),v,n,{...r,...t,interpolationkey:N})};this.resetRegExp();const u=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,p=r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:m=>Pn(m)},{regex:this.regexp,safeValue:m=>this.escapeValue?Pn(this.escape(m)):Pn(m)}].forEach(m=>{for(l=0;s=m.regex.exec(e);){const g=s[1].trim();if(i=c(g),i===void 0)if(typeof u=="function"){const v=u(e,s,r);i=Q(v)?v:""}else if(r&&Object.prototype.hasOwnProperty.call(r,g))i="";else if(p){i=s[0];continue}else this.logger.warn(`missed to pass in variable ${g} for interpolating ${e}`),i="";else!Q(i)&&!this.useRawValueToEscape&&(i=Ar(i));const N=m.safeValue(i);if(e=e.replace(s[0],N),p?(m.regex.lastIndex+=i.length,m.regex.lastIndex-=s[0].length):m.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),e}nest(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,s,i;const l=(d,c)=>{const u=this.nestingOptionsSeparator;if(d.indexOf(u)<0)return d;const p=d.split(new RegExp(`${u}[ ]*{`));let h=`{${p[1]}`;d=p[0],h=this.interpolate(h,i);const m=h.match(/'/g),g=h.match(/"/g);(m&&m.length%2===0&&!g||g.length%2!==0)&&(h=h.replace(/'/g,'"'));try{i=JSON.parse(h),c&&(i={...c,...i})}catch(N){return this.logger.warn(`failed parsing options string in nesting for key ${d}`,N),`${d}${u}${h}`}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,d};for(;r=this.nestingRegexp.exec(e);){let d=[];i={...n},i=i.replace&&!Q(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;let c=!1;if(r[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(r[1])){const u=r[1].split(this.formatSeparator).map(p=>p.trim());r[1]=u.shift(),d=u,c=!0}if(s=t(l.call(this,r[1].trim(),i),i),s&&r[0]===e&&!Q(s))return s;Q(s)||(s=Ar(s)),s||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),s=""),c&&(s=d.reduce((u,p)=>this.format(u,p,n.lng,{...n,interpolationkey:r[1].trim()}),s.trim())),e=e.replace(r[0],s),this.regexp.lastIndex=0}return e}}const yi=a=>{let e=a.toLowerCase().trim();const t={};if(a.indexOf("(")>-1){const n=a.split("(");e=n[0].toLowerCase().trim();const r=n[1].substring(0,n[1].length-1);e==="currency"&&r.indexOf(":")<0?t.currency||(t.currency=r.trim()):e==="relativetime"&&r.indexOf(":")<0?t.range||(t.range=r.trim()):r.split(";").forEach(i=>{if(i){const[l,...d]=i.split(":"),c=d.join(":").trim().replace(/^'+|'+$/g,""),u=l.trim();t[u]||(t[u]=c),c==="false"&&(t[u]=!1),c==="true"&&(t[u]=!0),isNaN(c)||(t[u]=parseInt(c,10))}})}return{formatName:e,formatOptions:t}},Ba=a=>{const e={};return(t,n,r)=>{let s=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(s={...s,[r.interpolationkey]:void 0});const i=n+JSON.stringify(s);let l=e[i];return l||(l=a(Bt(n),r),e[i]=l),l(t)}};class vi{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=He.create("formatter"),this.options=e,this.formats={number:Ba((t,n)=>{const r=new Intl.NumberFormat(t,{...n});return s=>r.format(s)}),currency:Ba((t,n)=>{const r=new Intl.NumberFormat(t,{...n,style:"currency"});return s=>r.format(s)}),datetime:Ba((t,n)=>{const r=new Intl.DateTimeFormat(t,{...n});return s=>r.format(s)}),relativetime:Ba((t,n)=>{const r=new Intl.RelativeTimeFormat(t,{...n});return s=>r.format(s,n.range||"day")}),list:Ba((t,n)=>{const r=new Intl.ListFormat(t,{...n});return s=>r.format(s)})},this.init(e)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Ba(t)}format(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const s=t.split(this.formatSeparator);if(s.length>1&&s[0].indexOf("(")>1&&s[0].indexOf(")")<0&&s.find(l=>l.indexOf(")")>-1)){const l=s.findIndex(d=>d.indexOf(")")>-1);s[0]=[s[0],...s.splice(1,l)].join(this.formatSeparator)}return s.reduce((l,d)=>{const{formatName:c,formatOptions:u}=yi(d);if(this.formats[c]){let p=l;try{const h=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},m=h.locale||h.lng||r.locale||r.lng||n;p=this.formats[c](l,m,{...u,...r,...h})}catch(h){this.logger.warn(h)}return p}else this.logger.warn(`there was no format function for ${c}`);return l},e)}}const _i=(a,e)=>{a.pending[e]!==void 0&&(delete a.pending[e],a.pendingCount--)};class Ni extends zt{constructor(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=He.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(n,r.backend,r)}queueLoad(e,t,n,r){const s={},i={},l={},d={};return e.forEach(c=>{let u=!0;t.forEach(p=>{const h=`${c}|${p}`;!n.reload&&this.store.hasResourceBundle(c,p)?this.state[h]=2:this.state[h]<0||(this.state[h]===1?i[h]===void 0&&(i[h]=!0):(this.state[h]=1,u=!1,i[h]===void 0&&(i[h]=!0),s[h]===void 0&&(s[h]=!0),d[p]===void 0&&(d[p]=!0)))}),u||(l[c]=!0)}),(Object.keys(s).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(s),pending:Object.keys(i),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(d)}}loaded(e,t,n){const r=e.split("|"),s=r[0],i=r[1];t&&this.emit("failedLoading",s,i,t),!t&&n&&this.store.addResourceBundle(s,i,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);const l={};this.queue.forEach(d=>{ti(d.loaded,[s],i),_i(d,e),t&&d.errors.push(t),d.pendingCount===0&&!d.done&&(Object.keys(d.loaded).forEach(c=>{l[c]||(l[c]={});const u=d.loaded[c];u.length&&u.forEach(p=>{l[c][p]===void 0&&(l[c][p]=!0)})}),d.done=!0,d.errors.length?d.callback(d.errors):d.callback())}),this.emit("loaded",l),this.queue=this.queue.filter(d=>!d.done)}read(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:s,callback:i});return}this.readingCalls++;const l=(c,u)=>{if(this.readingCalls--,this.waitingReads.length>0){const p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(c&&u&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,n,r+1,s*2,i)},s);return}i(c,u)},d=this.backend[n].bind(this.backend);if(d.length===2){try{const c=d(e,t);c&&typeof c.then=="function"?c.then(u=>l(null,u)).catch(l):l(null,c)}catch(c){l(c)}return}return d(e,t,l)}prepareLoading(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();Q(e)&&(e=this.languageUtils.toResolveHierarchy(e)),Q(t)&&(t=[t]);const s=this.queueLoad(e,t,n,r);if(!s.toLoad.length)return s.pending.length||r(),null;s.toLoad.forEach(i=>{this.loadOne(i)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const n=e.split("|"),r=n[0],s=n[1];this.read(r,s,"read",void 0,void 0,(i,l)=>{i&&this.logger.warn(`${t}loading namespace ${s} for language ${r} failed`,i),!i&&l&&this.logger.log(`${t}loaded namespace ${s} for language ${r}`,l),this.loaded(e,i,l)})}saveMissing(e,t,n,r,s){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},l=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(n==null||n==="")){if(this.backend&&this.backend.create){const d={...i,isUpdate:s},c=this.backend.create.bind(this.backend);if(c.length<6)try{let u;c.length===5?u=c(e,t,n,r,d):u=c(e,t,n,r),u&&typeof u.then=="function"?u.then(p=>l(null,p)).catch(l):l(null,u)}catch(u){l(u)}else c(e,t,n,r,l,d)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}}const zr=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:a=>{let e={};if(typeof a[1]=="object"&&(e=a[1]),Q(a[1])&&(e.defaultValue=a[1]),Q(a[2])&&(e.tDescription=a[2]),typeof a[2]=="object"||typeof a[3]=="object"){const t=a[3]||a[2];Object.keys(t).forEach(n=>{e[n]=t[n]})}return e},interpolation:{escapeValue:!0,format:a=>a,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),jr=a=>(Q(a.ns)&&(a.ns=[a.ns]),Q(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),Q(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs&&a.supportedLngs.indexOf("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),a),Vt=()=>{},Ci=a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(t=>{typeof a[t]=="function"&&(a[t]=a[t].bind(a))})};class Xa extends zt{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=jr(e),this.services={},this.logger=He,this.modules={external:[]},Ci(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initImmediate)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof t=="function"&&(n=t,t={}),!t.defaultNS&&t.defaultNS!==!1&&t.ns&&(Q(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=zr();this.options={...r,...this.options,...jr(t)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...r.interpolation,...this.options.interpolation}),t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator);const s=u=>u?typeof u=="function"?new u:u:null;if(!this.options.isClone){this.modules.logger?He.init(s(this.modules.logger),this.options):He.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=vi);const p=new Or(this.options);this.store=new Lr(this.options.resources,this.options);const h=this.services;h.logger=He,h.resourceStore=this.store,h.languageUtils=p,h.pluralResolver=new bi(p,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),u&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(h.formatter=s(u),h.formatter.init(h,this.options),this.options.interpolation.format=h.formatter.format.bind(h.formatter)),h.interpolator=new fi(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new Ni(s(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on("*",function(m){for(var g=arguments.length,N=new Array(g>1?g-1:0),v=1;v<g;v++)N[v-1]=arguments[v];e.emit(m,...N)}),this.modules.languageDetector&&(h.languageDetector=s(this.modules.languageDetector),h.languageDetector.init&&h.languageDetector.init(h,this.options.detection,this.options)),this.modules.i18nFormat&&(h.i18nFormat=s(this.modules.i18nFormat),h.i18nFormat.init&&h.i18nFormat.init(this)),this.translator=new jt(this.services,this.options),this.translator.on("*",function(m){for(var g=arguments.length,N=new Array(g>1?g-1:0),v=1;v<g;v++)N[v-1]=arguments[v];e.emit(m,...N)}),this.modules.external.forEach(m=>{m.init&&m.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Vt),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.length>0&&u[0]!=="dev"&&(this.options.lng=u[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(u=>{this[u]=function(){return e.store[u](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(u=>{this[u]=function(){return e.store[u](...arguments),e}});const d=Ja(),c=()=>{const u=(p,h)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),d.resolve(h),n(p,h)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return u(null,this.t.bind(this));this.changeLanguage(this.options.lng,u)};return this.options.resources||!this.options.initImmediate?c():setTimeout(c,0),d}loadResources(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Vt;const r=Q(e)?e:this.language;if(typeof e=="function"&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&r.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return n();const s=[],i=l=>{if(!l||l==="cimode")return;this.services.languageUtils.toResolveHierarchy(l).forEach(c=>{c!=="cimode"&&s.indexOf(c)<0&&s.push(c)})};r?i(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(d=>i(d)),this.options.preload&&this.options.preload.forEach(l=>i(l)),this.services.backendConnector.load(s,this.options.ns,l=>{!l&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(l)})}else n(null)}reloadResources(e,t,n){const r=Ja();return typeof e=="function"&&(n=e,e=void 0),typeof t=="function"&&(n=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),n||(n=Vt),this.services.backendConnector.reload(e,t,s=>{r.resolve(),n(s)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&Fr.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1))for(let t=0;t<this.languages.length;t++){const n=this.languages[t];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}changeLanguage(e,t){var n=this;this.isLanguageChangingTo=e;const r=Ja();this.emit("languageChanging",e);const s=d=>{this.language=d,this.languages=this.services.languageUtils.toResolveHierarchy(d),this.resolvedLanguage=void 0,this.setResolvedLanguage(d)},i=(d,c)=>{c?(s(c),this.translator.changeLanguage(c),this.isLanguageChangingTo=void 0,this.emit("languageChanged",c),this.logger.log("languageChanged",c)):this.isLanguageChangingTo=void 0,r.resolve(function(){return n.t(...arguments)}),t&&t(d,function(){return n.t(...arguments)})},l=d=>{!e&&!d&&this.services.languageDetector&&(d=[]);const c=Q(d)?d:this.services.languageUtils.getBestMatchFromCodes(d);c&&(this.language||s(c),this.translator.language||this.translator.changeLanguage(c),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(c)),this.loadResources(c,u=>{i(u,c)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?l(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(l):this.services.languageDetector.detect(l):l(e),r}getFixedT(e,t,n){var r=this;const s=function(i,l){let d;if(typeof l!="object"){for(var c=arguments.length,u=new Array(c>2?c-2:0),p=2;p<c;p++)u[p-2]=arguments[p];d=r.options.overloadTranslationOptionHandler([i,l].concat(u))}else d={...l};d.lng=d.lng||s.lng,d.lngs=d.lngs||s.lngs,d.ns=d.ns||s.ns,d.keyPrefix!==""&&(d.keyPrefix=d.keyPrefix||n||s.keyPrefix);const h=r.options.keySeparator||".";let m;return d.keyPrefix&&Array.isArray(i)?m=i.map(g=>`${d.keyPrefix}${h}${g}`):m=d.keyPrefix?`${d.keyPrefix}${h}${i}`:i,r.t(m,d)};return Q(e)?s.lng=e:s.lngs=e,s.ns=t,s.keyPrefix=n,s}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,s=this.languages[this.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(l,d)=>{const c=this.services.backendConnector.state[`${l}|${d}`];return c===-1||c===0||c===2};if(t.precheck){const l=t.precheck(this,i);if(l!==void 0)return l}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(n,e)&&(!r||i(s,e)))}loadNamespaces(e,t){const n=Ja();return this.options.ns?(Q(e)&&(e=[e]),e.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{n.resolve(),t&&t(r)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){const n=Ja();Q(e)&&(e=[e]);const r=this.options.preload||[],s=e.filter(i=>r.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return s.length?(this.options.preload=r.concat(s),this.loadResources(i=>{n.resolve(),t&&t(i)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";const t=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],n=this.services&&this.services.languageUtils||new Or(zr());return t.indexOf(n.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new Xa(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Vt;const n=e.forkResourceStore;n&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},s=new Xa(r);return(e.debug!==void 0||e.prefix!==void 0)&&(s.logger=s.logger.clone(e)),["store","services","language"].forEach(l=>{s[l]=this[l]}),s.services={...this.services},s.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},n&&(s.store=new Lr(this.store.data,r),s.services.resourceStore=s.store),s.translator=new jt(s.services,r),s.translator.on("*",function(l){for(var d=arguments.length,c=new Array(d>1?d-1:0),u=1;u<d;u++)c[u-1]=arguments[u];s.emit(l,...c)}),s.init(r,t),s.translator.options=r,s.translator.backendConnector.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},s}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Ee=Xa.createInstance();Ee.createInstance=Xa.createInstance;const Si=Ee.createInstance;Ee.dir,Ee.init,Ee.loadResources,Ee.reloadResources,Ee.use,Ee.changeLanguage,Ee.getFixedT,Ee.t,Ee.exists,Ee.setDefaultNamespace,Ee.hasLoadedNamespace,Ee.loadNamespaces,Ee.loadLanguages;const ki={free:"Free",manage:"Manage",cancel:"Cancel",close:"Close",open:"Open",edit:"Edit",update:"Update",tryAgain:"Try again",save:"Save",upgrade:"Upgrade",downgrade:"Downgrade",billingIntervalLabel:"Billing interval",billedMonthly:"Billed monthly",billedAnnually:"Billed annually",conversationsUnit:"conversations",conversationsPerMonth:"conversations / month",perMonth:"/mo",perYear:"/yr",perMonthLong:"/month",perYearLong:"/year",resourceConversations:"Conversations / month",resourceTableRows:"Table rows",resourceVectorDb:"Vector DB storage",resourceFileStorage:"File storage",metricConversations:"monthly conversations",metricTableRows:"table rows",metricVectorDb:"vector DB storage",metricFileStorage:"file storage",metricAiSpend:"AI spend",metricBotCount:"agents",usageBannerLimitReached:"You've reached your {label} limit. Upgrade now to avoid interruptions.",usageBannerNearLimit:"You've used {pct}% of your {label}. Upgrade to avoid hitting your limit.",usageBannerDefaultCta:"Upgrade plan",usageBannerManageCta:"Manage plan",usageBannerDismiss:"Dismiss",planBannerEyebrow:"Current plan",planBannerManagedTitle:"Managed in Dashboard",planBannerManagedSub:"This workspace uses an earlier billing system.",planBannerNoPlan:"No plan",planBannerCustomPricing:"Custom pricing",planBannerCustomConversations:"Custom conversations",planBannerCustom:"Custom",planBannerInclAddons:"· incl. add-ons",planBannerRenews:"Renews {date}",planBannerDowngradesTo:"Downgrades to {plan} on {date}",planBannerManageCta:"Manage plan",checkoutTitle:"Configure your plan",checkoutBackLabel:"Back to plans",checkoutPlanDetails:"Plan details",checkoutMonthlyBilling:"Monthly billing",checkoutAnnualBilling:"Annual billing",checkoutSaveBadge:"Save {savings}%",checkoutPaymentMethodTitle:"Payment method",checkoutSavedCardTab:"Saved",checkoutNewCardTab:"New card",checkoutBillingAddressTitle:"Billing address",checkoutCancelEdit:"Cancel",checkoutUpdateAddress:"Update",checkoutIsBusiness:"I'm purchasing as business",checkoutBusinessDetails:"Business details",checkoutBusinessNamePlaceholder:"Business name",checkoutTaxIdTypeLabel:"Tax ID type",checkoutTaxIdNumberPlaceholder:"Tax ID number",checkoutNoTaxRequired:"No tax ID is required for your billing country.",checkoutSelectCountryForTax:"Select your billing country above to add a tax ID.",checkoutContactInfo:"Contact information",checkoutEmailLabel:"Email",checkoutCardNotReady:"Card field is not ready",checkoutPaymentSetupFailed:"Payment setup failed",checkoutPaymentMethodMissing:"Could not retrieve payment method",checkoutAddressIncomplete:"Please complete your billing address",checkoutGenericError:"Something went wrong while processing your payment. You have not been charged twice.",checkoutSuccessToast:"Subscription activated",checkoutErrorToast:"Payment error",orderTopFeatures:"Top features",orderThen:"then {price} per {packSize}",orderPreviewError:"We couldn't compute your total. Try again in a moment.",orderPlanFromDate:"{plan} plan — from {date}",orderProratedToday:"Prorated for today",orderProratedTodayDesc:"Switching mid-period, we charge only for the time left in your current billing period. The full plan price above is billed at your next renewal, not today.",orderCreditUnusedTime:"Credit for unused time",orderAdjustUnusedTime:"Adjustment for unused time",orderCreditUnusedTimeDesc:"You already paid for time left in your current billing period. We credit that unused time and re-apply it at your new rate, so you're never double-charged.",orderAdjustUnusedTimeDesc:"Switching mid-cycle means we prorate the difference between your old and new plan for the days remaining in your current billing period.",orderAccountCredit:"Account credit",orderDueToday:"Due today",orderCreditTowardNext:"You have {amount} of unused time credited toward your next invoice.",orderBalanceAsCredit:"Your remaining balance of {amount} is applied as credit on your next invoice.",orderSavingsNote:"You're saving {monthlySavings}/month by choosing an annual plan. That's {yearlySavings}/year.",orderSubscribe:"Subscribe",orderPreviewUnavailable:"Preview unavailable",orderIntervalAnnual:"annual",orderIntervalMonthly:"monthly",orderRenewsMonthly:"Renews monthly until cancelled.",orderRenewsAnnually:"Renews annually until cancelled.",orderChargedStarting:"You'll be charged {amount}{period} starting {date}.",orderChargedNoDate:"You'll be charged {amount}{period}.",orderCancelNote:"Cancel anytime in Settings. By subscribing, you authorize Botpress to store and charge your payment method.",invoicesTitle:"Billing history",invoicesLoadError:"We couldn't load your invoices. Try again in a moment.",invoicesEmpty:"No invoices yet. They'll appear here after your first charge.",invoicesDownloadLabel:"Download invoice from {date}",invoiceStatusPaid:"Paid",invoiceStatusDue:"Due",invoiceStatusDraft:"Draft",invoiceStatusUnpaid:"Unpaid",invoiceStatusVoid:"Void",upgradeDialogTitle:"Upgrade your plan",upgradeMonthly:"Monthly",upgradeAnnual:"Annual",upgradeSaveBadge:"Save {savings}%",upgradeRecommended:"Recommended",upgradePerMonthSuffix:"/ month ({currency})",upgradeNoTopup:"No top-up",upgradeCurrentPlan:"Your current plan",upgradeNextPlan:"Next plan",upgradeCancelDowngrade:"Cancel downgrade",upgradeDowngrade:"Downgrade",upgradeSwitchToAnnual:"Switch to annual",upgradeSwitchToMonthly:"Switch to monthly",upgradePlanManaged:"Your plan is managed by Botpress — contact us to change it",upgradeUpgrade:"Upgrade",upgradeEverythingIn:"Everything in {planName}",upgradeSeeAllFeatures:"See all {total} features",upgradeShowFewerFeatures:"Show fewer features",upgradeContactUs:"Contact us",upgradeFooterEnterprise:"Need more, or running at scale?",upgradeFooterAboutEnterprise:"about Enterprise. Compare plans at",upgradeThenPer:"then {price} per {packSize} more",upgradeDowngradeSuccess:"Plan downgraded",upgradeDowngradeError:"Downgrade failed",upgradeCancelDowngradeSuccess:"Scheduled downgrade canceled",upgradeCancelDowngradeError:"Could not cancel the downgrade",addonsDialogTitle:"Manage add-ons",addonsSubtitleWithPlan:"Additional usage for your {planName} plan. Set a quantity to 0 to remove an add-on.",addonsSubtitleGeneric:"Additional usage for your plan. Set a quantity to 0 to remove an add-on.",addonsRequirePaidPlanTitle:"Add-ons require a paid plan",addonsRequirePaidPlanBody:"Upgrade your plan to unlock extra conversations, storage, and more.",addonsUpgradeCta:"Upgrade plan",addonsEach:"each",addonActiveOnly:"{count} active",addonRemovedNextCycle:"{activeNow} active now · removed next cycle",addonRemovedOnDate:"{activeNow} active now · removed {date}",addonChangedNextCycle:"{activeNow} active now · {pending} next cycle",addonChangedOnDate:"{activeNow} active now · {pending} from {date}",addonsNewLimits:"Your new limits",addonsPlanLine:"{planName} plan",addonsGenericPlan:"Plan",addonsTotalMonthly:"Total monthly cost",addonsTotalYearly:"Total yearly cost",addonsDueToday:"Due today",addonsChargedNow:"You'll be charged {amount} now for the rest of this billing period. ",addonsNoChargeToday:"No charge today — the change is prorated. ",addonsRenewalWithDate:"Add-ons stay active until you remove them and renew with your plan on {date}, when you'll be billed {amount}{interval} for them.",addonsRenewalNoDate:"Add-ons stay active until you remove them and renew with your plan, when you'll be billed {amount}{interval} for them.",addonsReadonlyNote:"Add-ons for this workspace are managed by Botpress — contact us to change them.",addonsUpdateSuccess:"Subscription updated",addonsUpdateError:"Could not update your add-ons",addonsUpdateSubscription:"Update subscription",addonsConvos:"{n} convos",outdatedTitle:"Billing is managed in the Botpress Dashboard",outdatedText:"This workspace is on an earlier billing system, so plan changes and payment details can't be managed here.",outdatedCta:"Open billing in Dashboard",outgrowTitle:"You're about to outgrow the Free plan",outgrowLede:"Free includes <bold>{quota}</bold> conversations total, and they don't renew. Upgrading moves you to a monthly allowance, unlocks more channels, and adds conversation packs, so your agents never stop replying.",outgrowSoFar:"So far",outgrowUsageText:"<bold>{used}</bold> of <bold>{quota}</bold> free conversations used · they don't renew",outgrowNoTopup:"No top-up",outgrowUpgradeTo:"Upgrade to {planName}",outgrowEverythingIn:"Everything in {planName}, and",outgrowNeedCustom:"Need custom volume, SLAs, or voice?",outgrowTalkToSales:"Talk to sales",outgrowCompareAll:"Compare all plans",outgrowThenPer:"then {symbol}{amount} per {packSize} more",paymentDialogTitle:"Payment & billing",paymentSessionError:"We couldn't start a secure session.",paymentMethodSection:"Payment method",paymentCardSaveError:"Could not save your card",paymentMethodMissing:"Could not retrieve payment method",paymentCardGenericError:"We couldn't save your card. Please check your details and try again.",paymentReplace:"Replace",paymentBillingAddressSection:"Billing address",paymentTaxIds:"Tax IDs",paymentTaxEmpty:"Add a VAT or tax registration number to show it on your invoices.",paymentTaxIdType:"Tax ID type",paymentTaxSelectType:"Select type",paymentTaxIdNumber:"Tax ID number",paymentTaxRemove:"Remove tax ID",paymentTaxAdd:"+ Add tax ID",paymentAddressIncomplete:"Please complete your billing address.",paymentAddressError:"Could not update your billing details.",paymentCardUpdated:"Card updated",paymentDetailsUpdated:"Billing details updated",paymentSaveCard:"Save card",paymentSaveBillingDetails:"Save billing details",paymentDetailsUpdateError:"Could not update your billing details",usageWidgetLimitReached:"Limit reached",usageWidgetRunningLow:"Running low",usageWidgetUpgradeToKeepGoing:"Upgrade to keep going.",usageWidgetOnlyLeft:"Only {left} left.",usageWidgetFreeExhausted:"All your free conversations are used, and they don't renew.",usageWidgetFreeLeft:"{left} free conversations left, and they don't renew.",usageWidgetEnterpriseOverQuota:"A Botpress representative will contact you at the end of the usage period.",usageWidgetResets:"Resets {date}",usageWidgetViewOptions:"View plan options",usagePopoverFreeTitle:"Free plan usage",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> included, total. They do not renew, and Free has no top-ups.",usagePopoverPlanName:"{planName} plan",usagePopoverTitle:"Current period ends {date}",usagePopoverNudgeText:"<bold>Need more room?</bold> Plus includes 250 conversations a month, unlimited AI agents, and packs of 100 when you need them.",usagePopoverNudgeCta:"See what you get with Plus",dashboardUsage:"Usage",dashboardBillingPeriod:"Billing period",dashboardPrevMonth:"Previous month",dashboardNextMonth:"Next month",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Each conversation includes AI usage. When you reach your limit, extra conversations are added automatically so service continues.",dashboardStorageTitle:"Storage",dashboardStorageHint:"Shared across files, knowledge base, and tables.",dashboardAiTitle:"AI usage",dashboardAiHint:"Each conversation includes an allowance of AI usage. Track how much of that allowance you've used",dashboardEnterpriseUsageNotice:"Your usage will not be blocked if you go over quota.",dashboardLoadError:"We couldn't load your usage. Try again in a moment.",dashboardNoBotSpend:"No per-bot AI spend this period.",dashboardAiByBot:"AI spend by bot",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Table rows",dashboardVectorDb:"Vector DB storage",dashboardFileStorage:"File storage",dashboardAiSpend:"AI spend",dashboardFromPlan:"{amount} from {planName} plan",dashboardFromPlanGeneric:"{amount} from your plan",dashboardFromPlanWithAddons:"{amount} from {planName} plan + {addonAmount} from add-ons",dashboardFromPlanGenericWithAddons:"{amount} from your plan + {addonAmount} from add-ons",dashboardIncreaseLimits:"Increase limits",planFeatureAiUsageIncluded:"{amount} AI usage included",planFeature3Seats:"3 seats",planFeature3AiAgents:"3 AI agents",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Help center",planFeature1kTableRows:"1K table rows",planFeature100kTableRows:"100K table rows",planFeature500kTableRows:"500K table rows",planFeature100mbFileStorage:"100MB file storage",planFeature10gbFileStorage:"10GB file storage",planFeature50gbFileStorage:"50GB file storage",planFeature100mbVectorDb:"100MB vector DB storage",planFeature1gbVectorDb:"1GB vector DB storage",planFeature5gbVectorDb:"5GB vector DB storage",planFeatureCommunitySupport:"Community support",planFeatureUnlimitedAiAgents:"Unlimited AI agents",planFeatureWhatsappChannel:"WhatsApp channel",planFeatureHelpCenterCustomDomain:"Help Center custom domain",planFeatureWhitelabelWebchat:"Whitelabel webchat",planFeatureTechnicalSupportLiveChat:"Technical support via live chat",planFeatureUnlimitedSeats:"Unlimited seats",planFeatureTeamsRoutingRbac:"Teams, routing & RBAC",planFeatureTeamLevelAnalytics:"Team-level analytics",planFeatureVoiceChannel:"Voice channel",planFeatureDedicatedSupport:"Dedicated support",planFeatureSlaSecurity:"SLA & security review",planFeatureCustomStorage:"Custom storage",planFeatureDescAiUsageIncluded:"AI usage is the cost of calling an LLM. Every conversation includes {rate}. We pay it for you.",planFeatureDesc3Seats:"Up to 3 team members can collaborate in this workspace.",planFeatureDescUnlimitedSeats:"Invite as many team members to the workspace as you need.",planFeatureDesc3AiAgents:"Build and publish up to 3 distinct AI agents.",planFeatureDescUnlimitedAiAgents:"Build and publish as many AI agents as you need.",planFeatureDescBotpressDesk:"The human-handoff inbox where agents triage and reply to live conversations.",planFeatureDescBotpressStudioAdk:"The visual Studio builder plus the Agent Development Kit for building agents in code.",planFeatureDescHelpCenter:"A hosted knowledge base your agent answers from and customers can browse.",planFeatureDescHelpCenterCustomDomain:"Serve your help center from your own domain instead of a Botpress URL.",planFeatureDescWhatsappChannel:"Connect your agent to WhatsApp to chat with customers there.",planFeatureDescVoiceChannel:"Connect your agent to phone/voice so it can handle spoken conversations.",planFeatureDescWhitelabelWebchat:"Remove Botpress branding from the web chat widget so it's fully your own.",planFeatureDescTeamsRoutingRbac:"Organize members into teams, route conversations between them, and control access by role.",planFeatureDescTeamLevelAnalytics:"Performance and volume metrics broken down per team.",planFeatureDescTechnicalSupportLiveChat:"Reach the Botpress support team over live chat for help.",planFeatureDescCommunitySupport:"Get help from the Botpress community forum and Discord.",planFeatureDescDedicatedSupport:"A named contact and priority support channel for your account.",planFeatureDescSlaSecurity:"A contractual uptime SLA and a security/compliance review for your procurement.",planFeatureDescCustomStorage:"Storage limits tailored to your workload, beyond the standard tiers.",planFeatureDesc1kTableRows:"1K rows across all your data tables.",planFeatureDesc100kTableRows:"100K rows across all your data tables.",planFeatureDesc500kTableRows:"500K rows across all your data tables.",planFeatureDesc100mbFileStorage:"100MB of uploaded files (documents, images, attachments).",planFeatureDesc10gbFileStorage:"10GB of uploaded files (documents, images, attachments).",planFeatureDesc50gbFileStorage:"50GB of uploaded files (documents, images, attachments).",planFeatureDesc100mbVectorDb:"100MB of embeddings for knowledge-base search and retrieval.",planFeatureDesc1gbVectorDb:"1GB of embeddings for knowledge-base search and retrieval.",planFeatureDesc5gbVectorDb:"5GB of embeddings for knowledge-base search and retrieval.",planDescriptionCommunity:"Free plan for trying things out",planDescriptionPlus:"For growing businesses",planDescriptionTeam:"For small teams",planDescriptionEnterprise:"Enterprise license subscription",planDescriptionManaged:"Managed license subscription",addonNameConversationSessions:"Conversations",addonNameStorage:"Storage",addonDescriptionConversationSessions:"Adds conversation sessions for the month",addonDescriptionStorage:"Adds table rows, vector DB space and files",summaryCurrentPlan:"Current plan",summaryManagedInDashboard:"Managed in Dashboard",summaryManagedMeta:"This workspace uses an earlier billing system.",summaryNoPlan:"No plan",summaryConversationsPerMo:"{n} conversations/mo",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} active add-on",summaryActiveAddons:"{count} active add-ons",summaryNoAddons:"No add-ons",summaryNoAddonsMeta:"Add extra conversations or storage",autoRechargeTitle:"AI spend auto-recharge",autoRechargeDescription:"Automatically top up your AI usage credit when your balance runs low.",autoRechargeLoadErrorTitle:"We couldn't load your settings",autoRechargeLoadError:"Something went wrong while fetching your auto-recharge settings. Check your connection and try again.",autoRechargeThresholdLabel:"Recharge threshold",autoRechargeThresholdHint:"Recharge triggers when your balance falls below this amount. $5 or more.",autoRechargeThresholdError:"Must be a whole-dollar amount of at least $5.",autoRechargeChunkLabel:"Recharge amount",autoRechargeChunkHint:"Whole-dollar amount, $5 or more.",autoRechargeChunkError:"Must be a whole-dollar amount of at least $5.",autoRechargeLimitLabel:"Monthly limit (USD)",autoRechargeLimitHint:"Won't recharge more than this in a billing month. Must be a multiple of the recharge amount ({amount}).",autoRechargeLimitError:"Must be a multiple of the recharge amount ({amount}).",autoRechargeSetLimitLabel:"Set a monthly limit",autoRechargeSetLimitHint:"Cap how much auto-recharge can spend each billing month.",autoRechargeNoCapHint:"Auto-recharge has no monthly cap.",autoRechargeDisabledReason:"Auto-recharge is off: {reason}",autoRechargeUpdateSuccess:"Auto-recharge settings updated",autoRechargeUpdateError:"Could not update your auto-recharge settings",autoRechargeSummaryOn:"Enabled",autoRechargeSummaryOff:"Disabled",autoRechargeSummaryMeta:"{amount} recharge · up to {limit}/mo",autoRechargeSummaryMetaNoLimit:"{amount} recharge · no limit",autoRechargeSummaryLoadError:"Couldn't load status",autoRechargeRequiresPaidPlanTitle:"Auto-recharge requires a paid plan",autoRechargeRequiresPaidPlanBody:"Upgrade your plan to automatically top up your AI usage credit.",autoRechargeUpgradeCta:"Upgrade plan"},wi={free:"Gratuit",manage:"Gérer",cancel:"Annuler",close:"Fermer",open:"Ouvrir",edit:"Modifier",update:"Mettre à jour",tryAgain:"Réessayer",save:"Enregistrer",upgrade:"Mettre à niveau",downgrade:"Rétrograder",billingIntervalLabel:"Intervalle de facturation",billedMonthly:"Facturé mensuellement",billedAnnually:"Facturé annuellement",conversationsUnit:"conversations",conversationsPerMonth:"conversations / mois",perMonth:"/mois",perYear:"/an",perMonthLong:"/mois",perYearLong:"/an",resourceConversations:"Conversations / mois",resourceTableRows:"Lignes de table",resourceVectorDb:"Stockage vectoriel",resourceFileStorage:"Stockage de fichiers",metricConversations:"conversations mensuelles",metricTableRows:"lignes de table",metricVectorDb:"stockage vectoriel",metricFileStorage:"stockage de fichiers",metricAiSpend:"dépenses IA",metricBotCount:"agents",usageBannerLimitReached:"Vous avez atteint votre limite de {label}. Mettez à niveau maintenant pour éviter les interruptions.",usageBannerNearLimit:"Vous avez utilisé {pct}% de votre {label}. Mettez à niveau pour éviter d'atteindre votre limite.",usageBannerDefaultCta:"Mettre à niveau",usageBannerManageCta:"Gérer le plan",usageBannerDismiss:"Ignorer",planBannerEyebrow:"Plan actuel",planBannerManagedTitle:"Géré dans le tableau de bord",planBannerManagedSub:"Cet espace de travail utilise un système de facturation antérieur.",planBannerNoPlan:"Aucun plan",planBannerCustomPricing:"Tarification personnalisée",planBannerCustomConversations:"Conversations personnalisées",planBannerCustom:"Personnalisé",planBannerInclAddons:"· add-ons inclus",planBannerRenews:"Renouvellement le {date}",planBannerDowngradesTo:"Passe à {plan} le {date}",planBannerManageCta:"Gérer le plan",checkoutTitle:"Configurer votre plan",checkoutBackLabel:"Retour aux plans",checkoutPlanDetails:"Détails du plan",checkoutMonthlyBilling:"Facturation mensuelle",checkoutAnnualBilling:"Facturation annuelle",checkoutSaveBadge:"Économisez {savings}%",checkoutPaymentMethodTitle:"Moyen de paiement",checkoutSavedCardTab:"Enregistrée",checkoutNewCardTab:"Nouvelle carte",checkoutBillingAddressTitle:"Adresse de facturation",checkoutCancelEdit:"Annuler",checkoutUpdateAddress:"Mettre à jour",checkoutIsBusiness:"J'achète en tant qu'entreprise",checkoutBusinessDetails:"Informations d'entreprise",checkoutBusinessNamePlaceholder:"Nom de l'entreprise",checkoutTaxIdTypeLabel:"Type d'identifiant fiscal",checkoutTaxIdNumberPlaceholder:"Numéro d'identifiant fiscal",checkoutNoTaxRequired:"Aucun identifiant fiscal n'est requis pour votre pays de facturation.",checkoutSelectCountryForTax:"Sélectionnez votre pays de facturation ci-dessus pour ajouter un identifiant fiscal.",checkoutContactInfo:"Coordonnées",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"Le champ de carte n'est pas prêt",checkoutPaymentSetupFailed:"Échec de la configuration du paiement",checkoutPaymentMethodMissing:"Impossible de récupérer le moyen de paiement",checkoutAddressIncomplete:"Veuillez compléter votre adresse de facturation",checkoutGenericError:"Une erreur s'est produite lors du traitement de votre paiement. Vous n'avez pas été débité deux fois.",checkoutSuccessToast:"Abonnement activé",checkoutErrorToast:"Erreur de paiement",orderTopFeatures:"Fonctionnalités principales",orderThen:"puis {price} par {packSize}",orderPreviewError:"Impossible de calculer votre total. Réessayez dans un instant.",orderPlanFromDate:"Plan {plan} — à partir du {date}",orderProratedToday:"Calculé au prorata d'aujourd'hui",orderProratedTodayDesc:"En changeant de plan en milieu de période, vous ne payez que pour le temps restant dans votre période de facturation actuelle. Le prix total du plan ci-dessus est facturé à votre prochain renouvellement, pas aujourd'hui.",orderCreditUnusedTime:"Crédit pour le temps non utilisé",orderAdjustUnusedTime:"Ajustement pour le temps non utilisé",orderCreditUnusedTimeDesc:"Vous avez déjà payé pour le temps restant dans votre période de facturation actuelle. Nous créditons ce temps non utilisé et le réappliquons à votre nouveau tarif, afin que vous ne soyez jamais facturé deux fois.",orderAdjustUnusedTimeDesc:"Le changement en milieu de cycle signifie que nous calculons au prorata la différence entre votre ancien et votre nouveau plan pour les jours restants dans votre période de facturation actuelle.",orderAccountCredit:"Crédit de compte",orderDueToday:"À payer aujourd'hui",orderCreditTowardNext:"Vous avez {amount} de temps non utilisé crédité sur votre prochaine facture.",orderBalanceAsCredit:"Votre solde restant de {amount} est appliqué comme crédit sur votre prochaine facture.",orderSavingsNote:"Vous économisez {monthlySavings}/mois en choisissant un plan annuel. C'est {yearlySavings}/an.",orderSubscribe:"S'abonner",orderPreviewUnavailable:"Aperçu indisponible",orderIntervalAnnual:"annuellement",orderIntervalMonthly:"mensuellement",orderRenewsMonthly:"Renouvellement mensuel jusqu'à annulation.",orderRenewsAnnually:"Renouvellement annuel jusqu'à annulation.",orderChargedStarting:"Vous serez facturé {amount}{period} à partir du {date}.",orderChargedNoDate:"Vous serez facturé {amount}{period}.",orderCancelNote:"Annulez à tout moment dans les paramètres. En vous abonnant, vous autorisez Botpress à stocker et à débiter votre moyen de paiement.",invoicesTitle:"Historique de facturation",invoicesLoadError:"Impossible de charger vos factures. Réessayez dans un instant.",invoicesEmpty:"Aucune facture pour l'instant. Elles apparaîtront ici après votre première facturation.",invoicesDownloadLabel:"Télécharger la facture du {date}",invoiceStatusPaid:"Payée",invoiceStatusDue:"À payer",invoiceStatusDraft:"Brouillon",invoiceStatusUnpaid:"Impayée",invoiceStatusVoid:"Annulée",upgradeDialogTitle:"Mettre à niveau votre plan",upgradeMonthly:"Mensuel",upgradeAnnual:"Annuel",upgradeSaveBadge:"Économisez {savings}%",upgradeRecommended:"Recommandé",upgradePerMonthSuffix:"/ mois ({currency})",upgradeNoTopup:"Aucun forfait supplémentaire",upgradeCurrentPlan:"Votre plan actuel",upgradeNextPlan:"Prochain plan",upgradeCancelDowngrade:"Annuler la rétrogradation",upgradeDowngrade:"Rétrograder",upgradeSwitchToAnnual:"Passer à l'annuel",upgradeSwitchToMonthly:"Passer au mensuel",upgradePlanManaged:"Votre plan est géré par Botpress — contactez-nous pour le modifier",upgradeUpgrade:"Mettre à niveau",upgradeEverythingIn:"Tout ce qui est dans {planName}",upgradeSeeAllFeatures:"Voir les {total} fonctionnalités",upgradeShowFewerFeatures:"Afficher moins de fonctionnalités",upgradeContactUs:"Nous contacter",upgradeFooterEnterprise:"Besoin de plus, ou à grande échelle ?",upgradeFooterAboutEnterprise:"pour l'entreprise. Comparez les plans sur",upgradeThenPer:"puis {price} par {packSize} supplémentaires",upgradeDowngradeSuccess:"Plan rétrogradé",upgradeDowngradeError:"Échec de la rétrogradation",upgradeCancelDowngradeSuccess:"Rétrogradation planifiée annulée",upgradeCancelDowngradeError:"Impossible d'annuler la rétrogradation",addonsDialogTitle:"Gérer les add-ons",addonsSubtitleWithPlan:"Utilisation supplémentaire pour votre plan {planName}. Définissez une quantité à 0 pour supprimer un add-on.",addonsSubtitleGeneric:"Utilisation supplémentaire pour votre plan. Définissez une quantité à 0 pour supprimer un add-on.",addonsRequirePaidPlanTitle:"Les add-ons nécessitent un plan payant",addonsRequirePaidPlanBody:"Mettez à niveau votre plan pour débloquer des conversations, du stockage et plus encore.",addonsUpgradeCta:"Mettre à niveau le plan",addonsEach:"chacun",addonActiveOnly:"{count} actif",addonRemovedNextCycle:"{activeNow} actif maintenant · supprimé au prochain cycle",addonRemovedOnDate:"{activeNow} actif maintenant · supprimé le {date}",addonChangedNextCycle:"{activeNow} actif maintenant · {pending} au prochain cycle",addonChangedOnDate:"{activeNow} actif maintenant · {pending} à partir du {date}",addonsNewLimits:"Vos nouvelles limites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Coût mensuel total",addonsTotalYearly:"Coût annuel total",addonsDueToday:"À payer aujourd'hui",addonsChargedNow:"Vous serez facturé {amount} maintenant pour le reste de cette période de facturation. ",addonsNoChargeToday:"Aucun frais aujourd'hui — la modification est calculée au prorata. ",addonsRenewalWithDate:"Les add-ons restent actifs jusqu'à ce que vous les supprimiez et renouveliez votre plan le {date}, date à laquelle vous serez facturé {amount}{interval} pour ceux-ci.",addonsRenewalNoDate:"Les add-ons restent actifs jusqu'à ce que vous les supprimiez et renouveliez votre plan, date à laquelle vous serez facturé {amount}{interval} pour ceux-ci.",addonsReadonlyNote:"Les add-ons de cet espace de travail sont gérés par Botpress — contactez-nous pour les modifier.",addonsUpdateSuccess:"Abonnement mis à jour",addonsUpdateError:"Impossible de mettre à jour vos add-ons",addonsUpdateSubscription:"Mettre à jour l'abonnement",addonsConvos:"{n} conv.",outdatedTitle:"La facturation est gérée dans le tableau de bord Botpress",outdatedText:"Cet espace de travail utilise un système de facturation antérieur, donc les changements de plan et les informations de paiement ne peuvent pas être gérés ici.",outdatedCta:"Ouvrir la facturation dans le tableau de bord",outgrowTitle:"Vous êtes sur le point de dépasser le plan Gratuit",outgrowLede:"Le plan Gratuit inclut <bold>{quota}</bold> conversations au total, et elles ne se renouvellent pas. La mise à niveau vous donne une allocation mensuelle, débloque plus de canaux et ajoute des packs de conversations, pour que vos agents ne cessent jamais de répondre.",outgrowSoFar:"Jusqu'ici",outgrowUsageText:"<bold>{used}</bold> sur <bold>{quota}</bold> conversations gratuites utilisées · elles ne se renouvellent pas",outgrowNoTopup:"Aucun forfait supplémentaire",outgrowUpgradeTo:"Passer à {planName}",outgrowEverythingIn:"Tout ce qui est dans {planName}, et",outgrowNeedCustom:"Besoin de volume personnalisé, de SLA ou de voix ?",outgrowTalkToSales:"Parlez à nos commerciaux",outgrowCompareAll:"Comparer tous les plans",outgrowThenPer:"puis {symbol}{amount} par {packSize} supplémentaires",paymentDialogTitle:"Paiement et facturation",paymentSessionError:"Impossible de démarrer une session sécurisée.",paymentMethodSection:"Moyen de paiement",paymentCardSaveError:"Impossible d'enregistrer votre carte",paymentMethodMissing:"Impossible de récupérer le moyen de paiement",paymentCardGenericError:"Impossible d'enregistrer votre carte. Veuillez vérifier vos informations et réessayer.",paymentReplace:"Remplacer",paymentBillingAddressSection:"Adresse de facturation",paymentTaxIds:"Identifiants fiscaux",paymentTaxEmpty:"Ajoutez un numéro de TVA ou d'identification fiscale pour qu'il apparaisse sur vos factures.",paymentTaxIdType:"Type d'identifiant fiscal",paymentTaxSelectType:"Sélectionner le type",paymentTaxIdNumber:"Numéro d'identifiant fiscal",paymentTaxRemove:"Supprimer l'identifiant fiscal",paymentTaxAdd:"+ Ajouter un identifiant fiscal",paymentAddressIncomplete:"Veuillez compléter votre adresse de facturation.",paymentAddressError:"Impossible de mettre à jour vos informations de facturation.",paymentCardUpdated:"Carte mise à jour",paymentDetailsUpdated:"Informations de facturation mises à jour",paymentSaveCard:"Enregistrer la carte",paymentSaveBillingDetails:"Enregistrer les informations de facturation",paymentDetailsUpdateError:"Impossible de mettre à jour vos informations de facturation",usageWidgetLimitReached:"Limite atteinte",usageWidgetRunningLow:"Stock faible",usageWidgetUpgradeToKeepGoing:"Mettez à niveau pour continuer.",usageWidgetOnlyLeft:"Plus que {left}.",usageWidgetFreeExhausted:"Toutes vos conversations gratuites sont utilisées et elles ne se renouvellent pas.",usageWidgetFreeLeft:"{left} conversations gratuites restantes, et elles ne se renouvellent pas.",usageWidgetEnterpriseOverQuota:"Un représentant Botpress vous contactera à la fin de la période d’utilisation.",usageWidgetResets:"Réinitialisation le {date}",usageWidgetViewOptions:"Voir les options de plan",usagePopoverFreeTitle:"Utilisation du plan gratuit",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> incluses, au total. Elles ne se renouvellent pas, et le plan Gratuit n’a pas de recharge.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"La période actuelle se termine le {date}",usagePopoverNudgeText:"<bold>Besoin de plus d’espace ?</bold> Plus inclut 250 conversations par mois, des agents IA illimités, et des packs de 100 en cas de besoin.",usagePopoverNudgeCta:"Découvrez ce que Plus vous offre",dashboardUsage:"Utilisation",dashboardBillingPeriod:"Période de facturation",dashboardPrevMonth:"Mois précédent",dashboardNextMonth:"Mois suivant",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Chaque conversation inclut l'utilisation de l'IA. Lorsque vous atteignez votre limite, des conversations supplémentaires sont ajoutées automatiquement pour que le service continue.",dashboardStorageTitle:"Stockage",dashboardStorageHint:"Partagé entre les fichiers, la base de connaissances et les tables.",dashboardAiTitle:"Utilisation de l'IA",dashboardAiHint:"Chaque conversation inclut une allocation d'usage IA. Suivez la part de cette allocation que vous avez utilisée",dashboardEnterpriseUsageNotice:"Votre utilisation ne sera pas bloquée si vous dépassez votre quota.",dashboardLoadError:"Impossible de charger votre utilisation. Réessayez dans un instant.",dashboardNoBotSpend:"Aucune dépense IA par bot pour cette période.",dashboardAiByBot:"Dépenses IA par bot",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Lignes de table",dashboardVectorDb:"Stockage vectoriel",dashboardFileStorage:"Stockage de fichiers",dashboardAiSpend:"Dépenses IA",dashboardFromPlan:"{amount} du plan {planName}",dashboardFromPlanGeneric:"{amount} de votre plan",dashboardFromPlanWithAddons:"{amount} du plan {planName} + {addonAmount} des add-ons",dashboardFromPlanGenericWithAddons:"{amount} de votre plan + {addonAmount} des add-ons",dashboardIncreaseLimits:"Augmenter les limites",planFeatureAiUsageIncluded:"Utilisation de l'IA incluse : {amount}",planFeature3Seats:"3 postes",planFeature3AiAgents:"3 agents IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Centre d'aide",planFeature1kTableRows:"1K lignes de table",planFeature100kTableRows:"100K lignes de table",planFeature500kTableRows:"500K lignes de table",planFeature100mbFileStorage:"100Mo de stockage de fichiers",planFeature10gbFileStorage:"10Go de stockage de fichiers",planFeature50gbFileStorage:"50Go de stockage de fichiers",planFeature100mbVectorDb:"100Mo de stockage vectoriel",planFeature1gbVectorDb:"1Go de stockage vectoriel",planFeature5gbVectorDb:"5Go de stockage vectoriel",planFeatureCommunitySupport:"Support communautaire",planFeatureUnlimitedAiAgents:"Agents IA illimités",planFeatureWhatsappChannel:"Canal WhatsApp",planFeatureHelpCenterCustomDomain:"Domaine personnalisé du centre d'aide",planFeatureWhitelabelWebchat:"Webchat sans marque",planFeatureTechnicalSupportLiveChat:"Support technique par chat en direct",planFeatureUnlimitedSeats:"Postes illimités",planFeatureTeamsRoutingRbac:"Équipes, routage et RBAC",planFeatureTeamLevelAnalytics:"Analytiques par équipe",planFeatureVoiceChannel:"Canal vocal",planFeatureDedicatedSupport:"Support dédié",planFeatureSlaSecurity:"SLA et audit de sécurité",planFeatureCustomStorage:"Stockage personnalisé",planFeatureDescAiUsageIncluded:"L'utilisation de l'IA est le coût d'un appel à un LLM. Chaque conversation inclut {rate}. Nous le prenons en charge.",planFeatureDesc3Seats:"Jusqu'à 3 membres de l'équipe peuvent collaborer dans cet espace de travail.",planFeatureDescUnlimitedSeats:"Invitez autant de membres d'équipe que nécessaire dans l'espace de travail.",planFeatureDesc3AiAgents:"Créez et publiez jusqu'à 3 agents IA distincts.",planFeatureDescUnlimitedAiAgents:"Créez et publiez autant d'agents IA que nécessaire.",planFeatureDescBotpressDesk:"La boîte de réception de transfert humain où les agents trient et répondent aux conversations en direct.",planFeatureDescBotpressStudioAdk:"Le constructeur visuel Studio plus le Kit de Développement d'Agents pour créer des agents en code.",planFeatureDescHelpCenter:"Une base de connaissances hébergée depuis laquelle votre agent répond et que les clients peuvent consulter.",planFeatureDescHelpCenterCustomDomain:"Publiez votre centre d'aide depuis votre propre domaine plutôt qu'une URL Botpress.",planFeatureDescWhatsappChannel:"Connectez votre agent à WhatsApp pour discuter avec vos clients là-bas.",planFeatureDescVoiceChannel:"Connectez votre agent au téléphone/vocal pour qu'il puisse gérer les conversations parlées.",planFeatureDescWhitelabelWebchat:"Supprimez la marque Botpress du widget de chat web pour qu'il soit entièrement le vôtre.",planFeatureDescTeamsRoutingRbac:"Organisez les membres en équipes, routez les conversations entre elles et contrôlez l'accès par rôle.",planFeatureDescTeamLevelAnalytics:"Métriques de performance et de volume ventilées par équipe.",planFeatureDescTechnicalSupportLiveChat:"Contactez l'équipe de support Botpress par chat en direct pour obtenir de l'aide.",planFeatureDescCommunitySupport:"Obtenez de l'aide sur le forum communautaire Botpress et Discord.",planFeatureDescDedicatedSupport:"Un contact désigné et un canal de support prioritaire pour votre compte.",planFeatureDescSlaSecurity:"Un SLA de disponibilité contractuel et un audit de sécurité/conformité pour votre processus d'achat.",planFeatureDescCustomStorage:"Limites de stockage adaptées à votre charge de travail, au-delà des niveaux standard.",planFeatureDesc1kTableRows:"1K lignes dans toutes vos tables de données.",planFeatureDesc100kTableRows:"100K lignes dans toutes vos tables de données.",planFeatureDesc500kTableRows:"500K lignes dans toutes vos tables de données.",planFeatureDesc100mbFileStorage:"100Mo de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc10gbFileStorage:"10Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc50gbFileStorage:"50Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc100mbVectorDb:"100Mo d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc1gbVectorDb:"1Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc5gbVectorDb:"5Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planDescriptionCommunity:"Plan gratuit pour essayer",planDescriptionPlus:"Pour les entreprises en croissance",planDescriptionTeam:"Pour les petites équipes",planDescriptionEnterprise:"Abonnement à la licence entreprise",planDescriptionManaged:"Abonnement à la licence gérée",addonNameConversationSessions:"Conversations",addonNameStorage:"Stockage",addonDescriptionConversationSessions:"Ajoute des sessions de conversation pour le mois",addonDescriptionStorage:"Ajoute des lignes de table, de l'espace vectoriel et des fichiers",summaryCurrentPlan:"Plan actuel",summaryManagedInDashboard:"Géré dans le tableau de bord",summaryManagedMeta:"Cet espace de travail utilise un système de facturation antérieur.",summaryNoPlan:"Aucun plan",summaryConversationsPerMo:"{n} conversations/mois",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on actif",summaryActiveAddons:"{count} add-ons actifs",summaryNoAddons:"Aucun add-on",summaryNoAddonsMeta:"Ajoutez des conversations ou du stockage supplémentaires",autoRechargeTitle:"Recharge automatique des dépenses IA",autoRechargeDescription:"Recharge automatiquement votre crédit d’usage IA lorsque votre solde est bas.",autoRechargeLoadErrorTitle:"Impossible de charger vos paramètres",autoRechargeLoadError:"Une erreur s'est produite lors du chargement de vos paramètres de recharge automatique. Vérifiez votre connexion et réessayez.",autoRechargeThresholdLabel:"Seuil de recharge",autoRechargeThresholdHint:"La recharge se déclenche lorsque votre solde passe sous ce montant. 5 $ ou plus.",autoRechargeThresholdError:"Doit être un montant entier d’au moins 5 $.",autoRechargeChunkLabel:"Montant de recharge",autoRechargeChunkHint:"Montant en dollars entiers, 5 $ ou plus.",autoRechargeChunkError:"Doit être un montant en dollars entiers d’au moins 5 $.",autoRechargeLimitLabel:"Limite mensuelle (USD)",autoRechargeLimitHint:"Ne rechargera pas plus que ce montant par mois de facturation. Doit être un multiple du montant de recharge ({amount}).",autoRechargeLimitError:"Doit être un multiple du montant de recharge ({amount}).",autoRechargeSetLimitLabel:"Définir une limite mensuelle",autoRechargeSetLimitHint:"Plafonner les dépenses de la recharge automatique chaque mois de facturation.",autoRechargeNoCapHint:"La recharge automatique n'a pas de plafond mensuel.",autoRechargeDisabledReason:"La recharge automatique est désactivée : {reason}",autoRechargeUpdateSuccess:"Paramètres de recharge automatique mis à jour",autoRechargeUpdateError:"Impossible de mettre à jour vos paramètres de recharge automatique",autoRechargeSummaryOn:"Activée",autoRechargeSummaryOff:"Désactivée",autoRechargeSummaryMeta:"{amount} de recharge · jusqu’à {limit}/mois",autoRechargeSummaryMetaNoLimit:"{amount} de recharge · sans limite",autoRechargeSummaryLoadError:"Impossible de charger l'état",autoRechargeRequiresPaidPlanTitle:"La recharge automatique nécessite un plan payant",autoRechargeRequiresPaidPlanBody:"Mettez à niveau votre plan pour recharger automatiquement votre crédit IA.",autoRechargeUpgradeCta:"Mettre à niveau le plan"},Ti={free:"Gratis",manage:"Gestionar",cancel:"Cancelar",close:"Cerrar",open:"Abrir",edit:"Editar",update:"Actualizar",tryAgain:"Reintentar",save:"Guardar",upgrade:"Actualizar plan",downgrade:"Reducir plan",billingIntervalLabel:"Intervalo de facturación",billedMonthly:"Facturado mensualmente",billedAnnually:"Facturado anualmente",conversationsUnit:"conversaciones",conversationsPerMonth:"conversaciones / mes",perMonth:"/mes",perYear:"/año",perMonthLong:"/mes",perYearLong:"/año",resourceConversations:"Conversaciones / mes",resourceTableRows:"Filas de tabla",resourceVectorDb:"Almacenamiento vectorial",resourceFileStorage:"Almacenamiento de archivos",metricConversations:"conversaciones mensuales",metricTableRows:"filas de tabla",metricVectorDb:"almacenamiento vectorial",metricFileStorage:"almacenamiento de archivos",metricAiSpend:"gasto en IA",metricBotCount:"agentes",usageBannerLimitReached:"Has alcanzado tu límite de {label}. Actualiza ahora para evitar interrupciones.",usageBannerNearLimit:"Has usado el {pct}% de tu {label}. Actualiza para evitar alcanzar tu límite.",usageBannerDefaultCta:"Actualizar plan",usageBannerManageCta:"Gestionar plan",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plan actual",planBannerManagedTitle:"Gestionado en el Panel",planBannerManagedSub:"Este espacio de trabajo utiliza un sistema de facturación anterior.",planBannerNoPlan:"Sin plan",planBannerCustomPricing:"Precio personalizado",planBannerCustomConversations:"Conversaciones personalizadas",planBannerCustom:"Personalizado",planBannerInclAddons:"· add-ons incluidos",planBannerRenews:"Renovación el {date}",planBannerDowngradesTo:"Cambia a {plan} el {date}",planBannerManageCta:"Gestionar plan",checkoutTitle:"Configura tu plan",checkoutBackLabel:"Volver a los planes",checkoutPlanDetails:"Detalles del plan",checkoutMonthlyBilling:"Facturación mensual",checkoutAnnualBilling:"Facturación anual",checkoutSaveBadge:"Ahorra un {savings}%",checkoutPaymentMethodTitle:"Método de pago",checkoutSavedCardTab:"Guardada",checkoutNewCardTab:"Nueva tarjeta",checkoutBillingAddressTitle:"Dirección de facturación",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Actualizar",checkoutIsBusiness:"Compro como empresa",checkoutBusinessDetails:"Datos de empresa",checkoutBusinessNamePlaceholder:"Nombre de la empresa",checkoutTaxIdTypeLabel:"Tipo de NIF",checkoutTaxIdNumberPlaceholder:"Número de NIF",checkoutNoTaxRequired:"No se requiere NIF para tu país de facturación.",checkoutSelectCountryForTax:"Selecciona tu país de facturación arriba para añadir un NIF.",checkoutContactInfo:"Información de contacto",checkoutEmailLabel:"Correo electrónico",checkoutCardNotReady:"El campo de tarjeta no está listo",checkoutPaymentSetupFailed:"Error al configurar el pago",checkoutPaymentMethodMissing:"No se pudo obtener el método de pago",checkoutAddressIncomplete:"Completa tu dirección de facturación",checkoutGenericError:"Se produjo un error al procesar tu pago. No se te ha cobrado dos veces.",checkoutSuccessToast:"Suscripción activada",checkoutErrorToast:"Error de pago",orderTopFeatures:"Características principales",orderThen:"luego {price} por {packSize}",orderPreviewError:"No pudimos calcular tu total. Inténtalo de nuevo en un momento.",orderPlanFromDate:"Plan {plan} — desde el {date}",orderProratedToday:"Prorrateo de hoy",orderProratedTodayDesc:"Al cambiar de plan a mitad de período, solo pagas por el tiempo restante en tu período de facturación actual. El precio completo del plan se cobra en tu próxima renovación, no hoy.",orderCreditUnusedTime:"Crédito por tiempo no utilizado",orderAdjustUnusedTime:"Ajuste por tiempo no utilizado",orderCreditUnusedTimeDesc:"Ya pagaste por el tiempo restante en tu período de facturación actual. Acreditamos ese tiempo no utilizado y lo reaplicamos a tu nueva tarifa, para que nunca se te cobre dos veces.",orderAdjustUnusedTimeDesc:"Cambiar a mitad de ciclo significa que prorrateamos la diferencia entre tu plan antiguo y el nuevo por los días restantes en tu período de facturación actual.",orderAccountCredit:"Crédito de cuenta",orderDueToday:"A pagar hoy",orderCreditTowardNext:"Tienes {amount} de tiempo no utilizado acreditado en tu próxima factura.",orderBalanceAsCredit:"Tu saldo restante de {amount} se aplica como crédito en tu próxima factura.",orderSavingsNote:"Estás ahorrando {monthlySavings}/mes al elegir un plan anual. Eso es {yearlySavings}/año.",orderSubscribe:"Suscribirse",orderPreviewUnavailable:"Vista previa no disponible",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensualmente",orderRenewsMonthly:"Se renueva mensualmente hasta que canceles.",orderRenewsAnnually:"Se renueva anualmente hasta que canceles.",orderChargedStarting:"Se te cobrará {amount}{period} a partir del {date}.",orderChargedNoDate:"Se te cobrará {amount}{period}.",orderCancelNote:"Cancela en cualquier momento en la Configuración. Al suscribirte, autorizas a Botpress a almacenar y cobrar tu método de pago.",invoicesTitle:"Historial de facturación",invoicesLoadError:"No pudimos cargar tus facturas. Inténtalo de nuevo en un momento.",invoicesEmpty:"Aún no hay facturas. Aparecerán aquí después de tu primer cargo.",invoicesDownloadLabel:"Descargar factura del {date}",invoiceStatusPaid:"Pagada",invoiceStatusDue:"Pendiente",invoiceStatusDraft:"Borrador",invoiceStatusUnpaid:"Impagada",invoiceStatusVoid:"Anulada",upgradeDialogTitle:"Actualizar tu plan",upgradeMonthly:"Mensual",upgradeAnnual:"Anual",upgradeSaveBadge:"Ahorra un {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mes ({currency})",upgradeNoTopup:"Sin recarga",upgradeCurrentPlan:"Tu plan actual",upgradeNextPlan:"Siguiente plan",upgradeCancelDowngrade:"Cancelar reducción",upgradeDowngrade:"Reducir plan",upgradeSwitchToAnnual:"Cambiar a anual",upgradeSwitchToMonthly:"Cambiar a mensual",upgradePlanManaged:"Tu plan está gestionado por Botpress — contáctanos para cambiarlo",upgradeUpgrade:"Actualizar",upgradeEverythingIn:"Todo lo de {planName}",upgradeSeeAllFeatures:"Ver las {total} funciones",upgradeShowFewerFeatures:"Mostrar menos funciones",upgradeContactUs:"Contáctanos",upgradeFooterEnterprise:"¿Necesitas más o trabajas a gran escala?",upgradeFooterAboutEnterprise:"para Enterprise. Compara planes en",upgradeThenPer:"luego {price} por {packSize} adicionales",upgradeDowngradeSuccess:"Plan reducido",upgradeDowngradeError:"Error al reducir el plan",upgradeCancelDowngradeSuccess:"Reducción programada cancelada",upgradeCancelDowngradeError:"No se pudo cancelar la reducción",addonsDialogTitle:"Gestionar add-ons",addonsSubtitleWithPlan:"Uso adicional para tu plan {planName}. Establece una cantidad en 0 para eliminar un add-on.",addonsSubtitleGeneric:"Uso adicional para tu plan. Establece una cantidad en 0 para eliminar un add-on.",addonsRequirePaidPlanTitle:"Los add-ons requieren un plan de pago",addonsRequirePaidPlanBody:"Actualiza tu plan para desbloquear conversaciones adicionales, almacenamiento y más.",addonsUpgradeCta:"Actualizar plan",addonsEach:"c/u",addonActiveOnly:"{count} activo",addonRemovedNextCycle:"{activeNow} activos ahora · eliminados en el próximo ciclo",addonRemovedOnDate:"{activeNow} activos ahora · eliminados el {date}",addonChangedNextCycle:"{activeNow} activos ahora · {pending} en el próximo ciclo",addonChangedOnDate:"{activeNow} activos ahora · {pending} a partir del {date}",addonsNewLimits:"Tus nuevos límites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Costo mensual total",addonsTotalYearly:"Costo anual total",addonsDueToday:"A pagar hoy",addonsChargedNow:"Se te cobrará {amount} ahora por el resto de este período de facturación. ",addonsNoChargeToday:"Sin cargo hoy — el cambio se calcula al prorrateo. ",addonsRenewalWithDate:"Los add-ons permanecen activos hasta que los elimines y renueves tu plan el {date}, fecha en la que se te cobrará {amount}{interval} por ellos.",addonsRenewalNoDate:"Los add-ons permanecen activos hasta que los elimines y renueves tu plan, fecha en la que se te cobrará {amount}{interval} por ellos.",addonsReadonlyNote:"Los add-ons de este espacio de trabajo están gestionados por Botpress — contáctanos para cambiarlos.",addonsUpdateSuccess:"Suscripción actualizada",addonsUpdateError:"No se pudo actualizar tus add-ons",addonsUpdateSubscription:"Actualizar suscripción",addonsConvos:"{n} conv.",outdatedTitle:"La facturación se gestiona en el Panel de Botpress",outdatedText:"Este espacio de trabajo utiliza un sistema de facturación anterior, por lo que los cambios de plan y los datos de pago no se pueden gestionar aquí.",outdatedCta:"Abrir facturación en el Panel",outgrowTitle:"Estás a punto de superar el plan Gratuito",outgrowLede:"El plan Gratuito incluye <bold>{quota}</bold> conversaciones en total, y no se renuevan. Al actualizar, obtienes una asignación mensual, desbloqueas más canales y añades packs de conversaciones, para que tus agentes nunca dejen de responder.",outgrowSoFar:"Hasta ahora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversaciones gratuitas usadas · no se renuevan",outgrowNoTopup:"Sin recarga",outgrowUpgradeTo:"Actualizar a {planName}",outgrowEverythingIn:"Todo lo de {planName}, y",outgrowNeedCustom:"¿Necesitas volumen personalizado, SLAs o voz?",outgrowTalkToSales:"Habla con ventas",outgrowCompareAll:"Comparar todos los planes",outgrowThenPer:"luego {symbol}{amount} por {packSize} adicionales",paymentDialogTitle:"Pago y facturación",paymentSessionError:"No pudimos iniciar una sesión segura.",paymentMethodSection:"Método de pago",paymentCardSaveError:"No se pudo guardar tu tarjeta",paymentMethodMissing:"No se pudo obtener el método de pago",paymentCardGenericError:"No pudimos guardar tu tarjeta. Verifica tus datos e inténtalo de nuevo.",paymentReplace:"Reemplazar",paymentBillingAddressSection:"Dirección de facturación",paymentTaxIds:"Número de identificación fiscal",paymentTaxEmpty:"Añade un número de IVA o identificación fiscal para que aparezca en tus facturas.",paymentTaxIdType:"Tipo de NIF",paymentTaxSelectType:"Seleccionar tipo",paymentTaxIdNumber:"Número de NIF",paymentTaxRemove:"Eliminar NIF",paymentTaxAdd:"+ Añadir NIF",paymentAddressIncomplete:"Completa tu dirección de facturación.",paymentAddressError:"No se pudieron actualizar tus datos de facturación.",paymentCardUpdated:"Tarjeta actualizada",paymentDetailsUpdated:"Datos de facturación actualizados",paymentSaveCard:"Guardar tarjeta",paymentSaveBillingDetails:"Guardar datos de facturación",paymentDetailsUpdateError:"No se pudieron actualizar tus datos de facturación",usageWidgetLimitReached:"Límite alcanzado",usageWidgetRunningLow:"Stock bajo",usageWidgetUpgradeToKeepGoing:"Actualiza para continuar.",usageWidgetOnlyLeft:"Solo quedan {left}.",usageWidgetFreeExhausted:"Todas tus conversaciones gratuitas están agotadas y no se renuevan.",usageWidgetFreeLeft:"Te quedan {left} conversaciones gratuitas y no se renuevan.",usageWidgetEnterpriseOverQuota:"Un representante de Botpress se pondrá en contacto contigo al final del período de uso.",usageWidgetResets:"Se restablece el {date}",usageWidgetViewOptions:"Ver opciones de plan",usagePopoverFreeTitle:"Uso del plan gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversaciones</bold> incluidas, en total. No se renuevan, y el plan Gratis no tiene recargas.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"El período actual termina el {date}",usagePopoverNudgeText:"<bold>¿Necesitas más espacio?</bold> Plus incluye 250 conversaciones al mes, agentes de IA ilimitados y paquetes de 100 cuando los necesites.",usagePopoverNudgeCta:"Descubre lo que obtienes con Plus",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de facturación",dashboardPrevMonth:"Mes anterior",dashboardNextMonth:"Mes siguiente",dashboardConversationsTitle:"Conversaciones",dashboardConversationsHint:"Cada conversación incluye uso de IA. Cuando alcanzas tu límite, se añaden conversaciones adicionales automáticamente para que el service continúe.",dashboardStorageTitle:"Almacenamiento",dashboardStorageHint:"Compartido entre archivos, base de conocimiento y tablas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversación incluye una asignación de uso de IA. Controla cuánto de esa asignación has usado",dashboardEnterpriseUsageNotice:"Tu uso no se bloqueará si superas la cuota.",dashboardLoadError:"No pudimos cargar tu uso. Inténtalo de nuevo en un momento.",dashboardNoBotSpend:"Sin gasto de IA por bot en este período.",dashboardAiByBot:"Gasto de IA por bot",dashboardConversationsMetric:"Conversaciones",dashboardTableRows:"Filas de tabla",dashboardVectorDb:"Almacenamiento vectorial",dashboardFileStorage:"Almacenamiento de archivos",dashboardAiSpend:"Gasto en IA",dashboardFromPlan:"{amount} del plan {planName}",dashboardFromPlanGeneric:"{amount} de tu plan",dashboardFromPlanWithAddons:"{amount} del plan {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} de tu plan + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar límites",planFeatureAiUsageIncluded:"Uso de IA incluido: {amount}",planFeature3Seats:"3 puestos",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Centro de ayuda",planFeature1kTableRows:"1K filas de tabla",planFeature100kTableRows:"100K filas de tabla",planFeature500kTableRows:"500K filas de tabla",planFeature100mbFileStorage:"100MB de almacenamiento de archivos",planFeature10gbFileStorage:"10GB de almacenamiento de archivos",planFeature50gbFileStorage:"50GB de almacenamiento de archivos",planFeature100mbVectorDb:"100MB de almacenamiento vectorial",planFeature1gbVectorDb:"1GB de almacenamiento vectorial",planFeature5gbVectorDb:"5GB de almacenamiento vectorial",planFeatureCommunitySupport:"Soporte comunitario",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal de WhatsApp",planFeatureHelpCenterCustomDomain:"Dominio personalizado del centro de ayuda",planFeatureWhitelabelWebchat:"Webchat sin marca",planFeatureTechnicalSupportLiveChat:"Soporte técnico por chat en vivo",planFeatureUnlimitedSeats:"Puestos ilimitados",planFeatureTeamsRoutingRbac:"Equipos, enrutamiento y RBAC",planFeatureTeamLevelAnalytics:"Analíticas por equipo",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Soporte dedicado",planFeatureSlaSecurity:"SLA y revisión de seguridad",planFeatureCustomStorage:"Almacenamiento personalizado",planFeatureDescAiUsageIncluded:"El uso de IA es el costo de llamar a un LLM. Cada conversación incluye {rate}. Nosotros lo pagamos.",planFeatureDesc3Seats:"Hasta 3 miembros del equipo pueden colaborar en este espacio de trabajo.",planFeatureDescUnlimitedSeats:"Invita a todos los miembros del equipo que necesites al espacio de trabajo.",planFeatureDesc3AiAgents:"Crea y publica hasta 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crea y publica todos los agentes de IA que necesites.",planFeatureDescBotpressDesk:"La bandeja de entrada de traspaso a humanos donde los agentes gestionan y responden conversaciones en vivo.",planFeatureDescBotpressStudioAdk:"El constructor visual Studio más el Kit de Desarrollo de Agentes para crear agentes en código.",planFeatureDescHelpCenter:"Una base de conocimiento alojada desde la que responde tu agente y que los clientes pueden consultar.",planFeatureDescHelpCenterCustomDomain:"Publica tu centro de ayuda desde tu propio dominio en lugar de una URL de Botpress.",planFeatureDescWhatsappChannel:"Conecta tu agente a WhatsApp para chatear con los clientes allí.",planFeatureDescVoiceChannel:"Conecta tu agente al teléfono/voz para que pueda gestionar conversaciones habladas.",planFeatureDescWhitelabelWebchat:"Elimina la marca de Botpress del widget de chat web para que sea completamente tuyo.",planFeatureDescTeamsRoutingRbac:"Organiza miembros en equipos, enruta conversaciones entre ellos y controla el acceso por rol.",planFeatureDescTeamLevelAnalytics:"Métricas de rendimiento y volumen desglosadas por equipo.",planFeatureDescTechnicalSupportLiveChat:"Contacta al equipo de soporte de Botpress por chat en vivo para obtener ayuda.",planFeatureDescCommunitySupport:"Obtén ayuda del foro de la comunidad de Botpress y Discord.",planFeatureDescDedicatedSupport:"Un contacto designado y un canal de soporte prioritario para tu cuenta.",planFeatureDescSlaSecurity:"Un SLA de disponibilidad contractual y una revisión de seguridad/cumplimiento para tu proceso de adquisición.",planFeatureDescCustomStorage:"Límites de almacenamiento adaptados a tu carga de trabajo, más allá de los niveles estándar.",planFeatureDesc1kTableRows:"1K filas en todas tus tablas de datos.",planFeatureDesc100kTableRows:"100K filas en todas tus tablas de datos.",planFeatureDesc500kTableRows:"500K filas en todas tus tablas de datos.",planFeatureDesc100mbFileStorage:"100MB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc10gbFileStorage:"10GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc50gbFileStorage:"50GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planDescriptionCommunity:"Plan gratuito para explorar",planDescriptionPlus:"Para negocios en crecimiento",planDescriptionTeam:"Para equipos pequeños",planDescriptionEnterprise:"Suscripción de licencia empresarial",planDescriptionManaged:"Suscripción de licencia gestionada",addonNameConversationSessions:"Conversaciones",addonNameStorage:"Almacenamiento",addonDescriptionConversationSessions:"Añade sesiones de conversación para el mes",addonDescriptionStorage:"Añade filas de tabla, espacio de base de datos vectorial y archivos",summaryCurrentPlan:"Plan actual",summaryManagedInDashboard:"Gestionado en el Panel",summaryManagedMeta:"Este espacio de trabajo utiliza un sistema de facturación anterior.",summaryNoPlan:"Sin plan",summaryConversationsPerMo:"{n} conversaciones/mes",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on activo",summaryActiveAddons:"{count} add-ons activos",summaryNoAddons:"Sin add-ons",summaryNoAddonsMeta:"Añade conversaciones o almacenamiento adicional",autoRechargeTitle:"Recarga automática de gastos de IA",autoRechargeDescription:"Recarga automáticamente tu crédito de uso de IA cuando tu saldo sea bajo.",autoRechargeLoadErrorTitle:"No pudimos cargar tu configuración",autoRechargeLoadError:"Algo salió mal al obtener tu configuración de auto-recarga. Revisa tu conexión e inténtalo de nuevo.",autoRechargeThresholdLabel:"Umbral de recarga",autoRechargeThresholdHint:"La recarga se activa cuando tu saldo cae por debajo de este monto. $5 o más.",autoRechargeThresholdError:"Debe ser un monto entero de al menos $5.",autoRechargeChunkLabel:"Monto de recarga",autoRechargeChunkHint:"Monto en dólares enteros, $5 o más.",autoRechargeChunkError:"Debe ser un monto en dólares enteros de al menos $5.",autoRechargeLimitLabel:"Límite mensual (USD)",autoRechargeLimitHint:"No recargará más que esto en un mes de facturación. Debe ser un múltiplo del monto de recarga ({amount}).",autoRechargeLimitError:"Debe ser un múltiplo del monto de recarga ({amount}).",autoRechargeSetLimitLabel:"Establecer un límite mensual",autoRechargeSetLimitHint:"Limita cuánto puede gastar la recarga automática cada mes de facturación.",autoRechargeNoCapHint:"La recarga automática no tiene un límite mensual.",autoRechargeDisabledReason:"La recarga automática está desactivada: {reason}",autoRechargeUpdateSuccess:"Configuración de recarga automática actualizada",autoRechargeUpdateError:"No se pudo actualizar tu configuración de recarga automática",autoRechargeSummaryOn:"Activada",autoRechargeSummaryOff:"Desactivada",autoRechargeSummaryMeta:"{amount} de recarga · hasta {limit}/mes",autoRechargeSummaryMetaNoLimit:"{amount} de recarga · sin límite",autoRechargeSummaryLoadError:"No se pudo cargar el estado",autoRechargeRequiresPaidPlanTitle:"La auto-recarga requiere un plan de pago",autoRechargeRequiresPaidPlanBody:"Actualiza tu plan para recargar automáticamente tu crédito de uso de IA.",autoRechargeUpgradeCta:"Actualizar plan"},Ii={free:"Gratuito",manage:"Gerenciar",cancel:"Cancelar",close:"Fechar",open:"Abrir",edit:"Editar",update:"Atualizar",tryAgain:"Tentar novamente",save:"Salvar",upgrade:"Atualizar plano",downgrade:"Reduzir plano",billingIntervalLabel:"Intervalo de cobrança",billedMonthly:"Cobrado mensalmente",billedAnnually:"Cobrado anualmente",conversationsUnit:"conversas",conversationsPerMonth:"conversas / mês",perMonth:"/mês",perYear:"/ano",perMonthLong:"/mês",perYearLong:"/ano",resourceConversations:"Conversas / mês",resourceTableRows:"Linhas de tabela",resourceVectorDb:"Armazenamento vetorial",resourceFileStorage:"Armazenamento de arquivos",metricConversations:"conversas mensais",metricTableRows:"linhas de tabela",metricVectorDb:"armazenamento vetorial",metricFileStorage:"armazenamento de arquivos",metricAiSpend:"gastos com IA",metricBotCount:"agentes",usageBannerLimitReached:"Você atingiu seu limite de {label}. Atualize agora para evitar interrupções.",usageBannerNearLimit:"Você usou {pct}% de sua {label}. Atualize para evitar atingir seu limite.",usageBannerDefaultCta:"Atualizar plano",usageBannerManageCta:"Gerenciar plano",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plano atual",planBannerManagedTitle:"Gerenciado no Painel",planBannerManagedSub:"Este espaço de trabalho usa um sistema de cobrança anterior.",planBannerNoPlan:"Sem plano",planBannerCustomPricing:"Preço personalizado",planBannerCustomConversations:"Conversas personalizadas",planBannerCustom:"Personalizado",planBannerInclAddons:"· add-ons incluídos",planBannerRenews:"Renova em {date}",planBannerDowngradesTo:"Muda para {plan} em {date}",planBannerManageCta:"Gerenciar plano",checkoutTitle:"Configurar seu plano",checkoutBackLabel:"Voltar aos planos",checkoutPlanDetails:"Detalhes do plano",checkoutMonthlyBilling:"Cobrança mensal",checkoutAnnualBilling:"Cobrança anual",checkoutSaveBadge:"Economize {savings}%",checkoutPaymentMethodTitle:"Forma de pagamento",checkoutSavedCardTab:"Salvo",checkoutNewCardTab:"Novo cartão",checkoutBillingAddressTitle:"Endereço de cobrança",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Atualizar",checkoutIsBusiness:"Estou comprando como empresa",checkoutBusinessDetails:"Dados da empresa",checkoutBusinessNamePlaceholder:"Nome da empresa",checkoutTaxIdTypeLabel:"Tipo de CNPJ/CPF",checkoutTaxIdNumberPlaceholder:"Número de CNPJ/CPF",checkoutNoTaxRequired:"Nenhum número fiscal é necessário para seu país de cobrança.",checkoutSelectCountryForTax:"Selecione seu país de cobrança acima para adicionar um número fiscal.",checkoutContactInfo:"Informações de contato",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"O campo do cartão não está pronto",checkoutPaymentSetupFailed:"Falha ao configurar pagamento",checkoutPaymentMethodMissing:"Não foi possível recuperar a forma de pagamento",checkoutAddressIncomplete:"Preencha seu endereço de cobrança",checkoutGenericError:"Ocorreu um erro ao processar seu pagamento. Você não foi cobrado duas vezes.",checkoutSuccessToast:"Assinatura ativada",checkoutErrorToast:"Erro de pagamento",orderTopFeatures:"Principais recursos",orderThen:"depois {price} por {packSize}",orderPreviewError:"Não foi possível calcular seu total. Tente novamente em um momento.",orderPlanFromDate:"Plano {plan} — a partir de {date}",orderProratedToday:"Rateado para hoje",orderProratedTodayDesc:"Ao mudar de plano no meio do período, você paga apenas pelo tempo restante no seu período de cobrança atual. O preço total do plano acima é cobrado na sua próxima renovação, não hoje.",orderCreditUnusedTime:"Crédito por tempo não utilizado",orderAdjustUnusedTime:"Ajuste por tempo não utilizado",orderCreditUnusedTimeDesc:"Você já pagou pelo tempo restante no seu período de cobrança atual. Creditamos esse tempo não utilizado e o reaplicamos na sua nova tarifa, para que você nunca seja cobrado duas vezes.",orderAdjustUnusedTimeDesc:"Mudar no meio do ciclo significa que rateamos a diferença entre seu plano antigo e o novo pelos dias restantes no seu período de cobrança atual.",orderAccountCredit:"Crédito em conta",orderDueToday:"A pagar hoje",orderCreditTowardNext:"Você tem {amount} de tempo não utilizado creditado na sua próxima fatura.",orderBalanceAsCredit:"Seu saldo restante de {amount} é aplicado como crédito na sua próxima fatura.",orderSavingsNote:"Você está economizando {monthlySavings}/mês ao escolher um plano anual. Isso é {yearlySavings}/ano.",orderSubscribe:"Assinar",orderPreviewUnavailable:"Pré-visualização indisponível",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensalmente",orderRenewsMonthly:"Renova mensalmente até ser cancelado.",orderRenewsAnnually:"Renova anualmente até ser cancelado.",orderChargedStarting:"Você será cobrado {amount}{period} a partir de {date}.",orderChargedNoDate:"Você será cobrado {amount}{period}.",orderCancelNote:"Cancele a qualquer momento nas Configurações. Ao assinar, você autoriza a Botpress a armazenar e cobrar sua forma de pagamento.",invoicesTitle:"Histórico de cobrança",invoicesLoadError:"Não foi possível carregar suas faturas. Tente novamente em um momento.",invoicesEmpty:"Nenhuma fatura ainda. Elas aparecerão aqui após seu primeiro pagamento.",invoicesDownloadLabel:"Baixar fatura de {date}",invoiceStatusPaid:"Pago",invoiceStatusDue:"Pendente",invoiceStatusDraft:"Rascunho",invoiceStatusUnpaid:"Não pago",invoiceStatusVoid:"Cancelado",upgradeDialogTitle:"Atualizar seu plano",upgradeMonthly:"Mensal",upgradeAnnual:"Anual",upgradeSaveBadge:"Economize {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mês ({currency})",upgradeNoTopup:"Sem pacote adicional",upgradeCurrentPlan:"Seu plano atual",upgradeNextPlan:"Próximo plano",upgradeCancelDowngrade:"Cancelar redução",upgradeDowngrade:"Reduzir plano",upgradeSwitchToAnnual:"Mudar para anual",upgradeSwitchToMonthly:"Mudar para mensal",upgradePlanManaged:"Seu plano é gerenciado pela Botpress — entre em contato para alterá-lo",upgradeUpgrade:"Atualizar",upgradeEverythingIn:"Tudo do {planName}",upgradeSeeAllFeatures:"Ver todos os {total} recursos",upgradeShowFewerFeatures:"Mostrar menos recursos",upgradeContactUs:"Entre em contato",upgradeFooterEnterprise:"Precisa de mais, ou trabalhando em escala?",upgradeFooterAboutEnterprise:"sobre o Enterprise. Compare planos em",upgradeThenPer:"depois {price} por {packSize} adicionais",upgradeDowngradeSuccess:"Plano reduzido",upgradeDowngradeError:"Falha ao reduzir o plano",upgradeCancelDowngradeSuccess:"Redução agendada cancelada",upgradeCancelDowngradeError:"Não foi possível cancelar a redução",addonsDialogTitle:"Gerenciar add-ons",addonsSubtitleWithPlan:"Uso adicional para seu plano {planName}. Defina uma quantidade como 0 para remover um add-on.",addonsSubtitleGeneric:"Uso adicional para seu plano. Defina uma quantidade como 0 para remover um add-on.",addonsRequirePaidPlanTitle:"Os add-ons requerem um plano pago",addonsRequirePaidPlanBody:"Atualize seu plano para desbloquear conversas adicionais, armazenamento e muito mais.",addonsUpgradeCta:"Atualizar plano",addonsEach:"cada",addonActiveOnly:"{count} ativo",addonRemovedNextCycle:"{activeNow} ativo agora · removido no próximo ciclo",addonRemovedOnDate:"{activeNow} ativo agora · removido em {date}",addonChangedNextCycle:"{activeNow} ativo agora · {pending} no próximo ciclo",addonChangedOnDate:"{activeNow} ativo agora · {pending} a partir de {date}",addonsNewLimits:"Seus novos limites",addonsPlanLine:"Plano {planName}",addonsGenericPlan:"Plano",addonsTotalMonthly:"Custo mensal total",addonsTotalYearly:"Custo anual total",addonsDueToday:"A pagar hoje",addonsChargedNow:"Você será cobrado {amount} agora pelo restante deste período de cobrança. ",addonsNoChargeToday:"Sem cobrança hoje — a mudança é rateada. ",addonsRenewalWithDate:"Os add-ons permanecem ativos até você removê-los e renovar seu plano em {date}, quando você será cobrado {amount}{interval} por eles.",addonsRenewalNoDate:"Os add-ons permanecem ativos até você removê-los e renovar seu plano, quando você será cobrado {amount}{interval} por eles.",addonsReadonlyNote:"Os add-ons deste espaço de trabalho são gerenciados pela Botpress — entre em contato para alterá-los.",addonsUpdateSuccess:"Assinatura atualizada",addonsUpdateError:"Não foi possível atualizar seus add-ons",addonsUpdateSubscription:"Atualizar assinatura",addonsConvos:"{n} conv.",outdatedTitle:"A cobrança é gerenciada no Painel da Botpress",outdatedText:"Este espaço de trabalho usa um sistema de cobrança anterior, portanto, alterações de plano e detalhes de pagamento não podem ser gerenciados aqui.",outdatedCta:"Abrir cobrança no Painel",outgrowTitle:"Você está prestes a superar o plano Gratuito",outgrowLede:"O plano Gratuito inclui <bold>{quota}</bold> conversas no total, e elas não são renovadas. Ao atualizar, você passa para uma cota mensal, desbloqueia mais canais e adiciona pacotes de conversas, para que seus agentes nunca parem de responder.",outgrowSoFar:"Até agora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversas gratuitas usadas · elas não são renovadas",outgrowNoTopup:"Sem pacote adicional",outgrowUpgradeTo:"Atualizar para {planName}",outgrowEverythingIn:"Tudo do {planName}, e",outgrowNeedCustom:"Precisa de volume personalizado, SLAs ou voz?",outgrowTalkToSales:"Fale com vendas",outgrowCompareAll:"Comparar todos os planos",outgrowThenPer:"depois {symbol}{amount} por {packSize} adicionais",paymentDialogTitle:"Pagamento e cobrança",paymentSessionError:"Não foi possível iniciar uma sessão segura.",paymentMethodSection:"Forma de pagamento",paymentCardSaveError:"Não foi possível salvar seu cartão",paymentMethodMissing:"Não foi possível recuperar a forma de pagamento",paymentCardGenericError:"Não foi possível salvar seu cartão. Verifique seus dados e tente novamente.",paymentReplace:"Substituir",paymentBillingAddressSection:"Endereço de cobrança",paymentTaxIds:"Números fiscais",paymentTaxEmpty:"Adicione um número de CNPJ/CPF para que ele apareça em suas faturas.",paymentTaxIdType:"Tipo de número fiscal",paymentTaxSelectType:"Selecionar tipo",paymentTaxIdNumber:"Número fiscal",paymentTaxRemove:"Remover número fiscal",paymentTaxAdd:"+ Adicionar número fiscal",paymentAddressIncomplete:"Preencha seu endereço de cobrança.",paymentAddressError:"Não foi possível atualizar seus dados de cobrança.",paymentCardUpdated:"Cartão atualizado",paymentDetailsUpdated:"Dados de cobrança atualizados",paymentSaveCard:"Salvar cartão",paymentSaveBillingDetails:"Salvar dados de cobrança",paymentDetailsUpdateError:"Não foi possível atualizar seus dados de cobrança",usageWidgetLimitReached:"Limite atingido",usageWidgetRunningLow:"Estoque baixo",usageWidgetUpgradeToKeepGoing:"Atualize para continuar.",usageWidgetOnlyLeft:"Apenas {left} restantes.",usageWidgetFreeExhausted:"Todas as suas conversas gratuitas foram usadas e não são renovadas.",usageWidgetFreeLeft:"{left} conversas gratuitas restantes e elas não são renovadas.",usageWidgetEnterpriseOverQuota:"Um representante da Botpress entrará em contato no fim do período de uso.",usageWidgetResets:"Reinicia em {date}",usageWidgetViewOptions:"Ver opções de plano",usagePopoverFreeTitle:"Uso do plano gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversas</bold> incluídas, no total. Elas não são renovadas, e o plano Gratuito não tem recargas.",usagePopoverPlanName:"Plano {planName}",usagePopoverTitle:"O período atual termina em {date}",usagePopoverNudgeText:"<bold>Precisa de mais espaço?</bold> O Plus inclui 250 conversas por mês, agentes de IA ilimitados e pacotes de 100 quando você precisar.",usagePopoverNudgeCta:"Veja o que você ganha com o Plus",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de cobrança",dashboardPrevMonth:"Mês anterior",dashboardNextMonth:"Próximo mês",dashboardConversationsTitle:"Conversas",dashboardConversationsHint:"Cada conversa inclui uso de IA. Quando você atinge seu limite, conversas adicionais são adicionadas automaticamente para que o serviço continue.",dashboardStorageTitle:"Armazenamento",dashboardStorageHint:"Compartilhado entre arquivos, base de conhecimento e tabelas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversa inclui uma cota de uso de IA. Acompanhe quanto dessa cota você já usou",dashboardEnterpriseUsageNotice:"Seu uso não será bloqueado se você ultrapassar a cota.",dashboardLoadError:"Não foi possível carregar seu uso. Tente novamente em um momento.",dashboardNoBotSpend:"Sem gastos de IA por bot neste período.",dashboardAiByBot:"Gastos de IA por bot",dashboardConversationsMetric:"Conversas",dashboardTableRows:"Linhas de tabela",dashboardVectorDb:"Armazenamento vetorial",dashboardFileStorage:"Armazenamento de arquivos",dashboardAiSpend:"Gastos com IA",dashboardFromPlan:"{amount} do plano {planName}",dashboardFromPlanGeneric:"{amount} do seu plano",dashboardFromPlanWithAddons:"{amount} do plano {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} do seu plano + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar limites",planFeatureAiUsageIncluded:"Uso de IA incluído: {amount}",planFeature3Seats:"3 vagas",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Central de ajuda",planFeature1kTableRows:"1K linhas de tabela",planFeature100kTableRows:"100K linhas de tabela",planFeature500kTableRows:"500K linhas de tabela",planFeature100mbFileStorage:"100MB de armazenamento de arquivos",planFeature10gbFileStorage:"10GB de armazenamento de arquivos",planFeature50gbFileStorage:"50GB de armazenamento de arquivos",planFeature100mbVectorDb:"100MB de armazenamento vetorial",planFeature1gbVectorDb:"1GB de armazenamento vetorial",planFeature5gbVectorDb:"5GB de armazenamento vetorial",planFeatureCommunitySupport:"Suporte da comunidade",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal do WhatsApp",planFeatureHelpCenterCustomDomain:"Domínio personalizado da central de ajuda",planFeatureWhitelabelWebchat:"Webchat sem marca",planFeatureTechnicalSupportLiveChat:"Suporte técnico via chat ao vivo",planFeatureUnlimitedSeats:"Vagas ilimitadas",planFeatureTeamsRoutingRbac:"Equipes, roteamento e RBAC",planFeatureTeamLevelAnalytics:"Análises por equipe",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Suporte dedicado",planFeatureSlaSecurity:"SLA e revisão de segurança",planFeatureCustomStorage:"Armazenamento personalizado",planFeatureDescAiUsageIncluded:"O uso de IA é o custo de chamar um LLM. Cada conversa inclui {rate}. Nós pagamos por você.",planFeatureDesc3Seats:"Até 3 membros da equipe podem colaborar neste espaço de trabalho.",planFeatureDescUnlimitedSeats:"Convide quantos membros da equipe precisar para o espaço de trabalho.",planFeatureDesc3AiAgents:"Crie e publique até 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crie e publique quantos agentes de IA precisar.",planFeatureDescBotpressDesk:"A caixa de entrada de transferência para humanos onde os agentes triagem e respondem conversas ao vivo.",planFeatureDescBotpressStudioAdk:"O construtor visual Studio mais o Kit de Desenvolvimento de Agentes para criar agentes em código.",planFeatureDescHelpCenter:"Uma base de conhecimento hospedada da qual seu agente responde e que os clientes podem consultar.",planFeatureDescHelpCenterCustomDomain:"Publique sua central de ajuda a partir do seu próprio domínio em vez de uma URL da Botpress.",planFeatureDescWhatsappChannel:"Conecte seu agente ao WhatsApp para conversar com clientes lá.",planFeatureDescVoiceChannel:"Conecte seu agente ao telefone/voz para que possa lidar com conversas faladas.",planFeatureDescWhitelabelWebchat:"Remova a marca Botpress do widget de chat web para que seja totalmente seu.",planFeatureDescTeamsRoutingRbac:"Organize membros em equipes, roteie conversas entre elas e controle o acesso por função.",planFeatureDescTeamLevelAnalytics:"Métricas de desempenho e volume detalhadas por equipe.",planFeatureDescTechnicalSupportLiveChat:"Entre em contato com a equipe de suporte da Botpress via chat ao vivo para obter ajuda.",planFeatureDescCommunitySupport:"Obtenha ajuda no fórum da comunidade Botpress e no Discord.",planFeatureDescDedicatedSupport:"Um contato designado e canal de suporte prioritário para sua conta.",planFeatureDescSlaSecurity:"Um SLA de disponibilidade contratual e uma revisão de segurança/conformidade para seu processo de aquisição.",planFeatureDescCustomStorage:"Limites de armazenamento adaptados à sua carga de trabalho, além dos níveis padrão.",planFeatureDesc1kTableRows:"1K linhas em todas as suas tabelas de dados.",planFeatureDesc100kTableRows:"100K linhas em todas as suas tabelas de dados.",planFeatureDesc500kTableRows:"500K linhas em todas as suas tabelas de dados.",planFeatureDesc100mbFileStorage:"100MB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc10gbFileStorage:"10GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc50gbFileStorage:"50GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para busca e recuperação na base de conhecimento.",planDescriptionCommunity:"Plano gratuito para experimentar",planDescriptionPlus:"Para negócios em crescimento",planDescriptionTeam:"Para equipes pequenas",planDescriptionEnterprise:"Assinatura de licença corporativa",planDescriptionManaged:"Assinatura de licença gerenciada",addonNameConversationSessions:"Conversas",addonNameStorage:"Armazenamento",addonDescriptionConversationSessions:"Adiciona sessões de conversa para o mês",addonDescriptionStorage:"Adiciona linhas de tabela, espaço de banco de dados vetorial e arquivos",summaryCurrentPlan:"Plano atual",summaryManagedInDashboard:"Gerenciado no Painel",summaryManagedMeta:"Este espaço de trabalho usa um sistema de cobrança anterior.",summaryNoPlan:"Sem plano",summaryConversationsPerMo:"{n} conversas/mês",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on ativo",summaryActiveAddons:"{count} add-ons ativos",summaryNoAddons:"Sem add-ons",summaryNoAddonsMeta:"Adicione conversas ou armazenamento extra",autoRechargeTitle:"Recarga automática de gastos com IA",autoRechargeDescription:"Recarrega automaticamente seu crédito de uso de IA quando o saldo estiver baixo.",autoRechargeLoadErrorTitle:"Não foi possível carregar suas configurações",autoRechargeLoadError:"Algo deu errado ao buscar suas configurações de auto-recarga. Verifique sua conexão e tente novamente.",autoRechargeThresholdLabel:"Limite para recarga",autoRechargeThresholdHint:"A recarga é acionada quando seu saldo cair abaixo desse valor. $5 ou mais.",autoRechargeThresholdError:"Deve ser um valor inteiro de pelo menos $5.",autoRechargeChunkLabel:"Valor da recarga",autoRechargeChunkHint:"Valor em dólares inteiros, $5 ou mais.",autoRechargeChunkError:"Deve ser um valor em dólares inteiros de pelo menos $5.",autoRechargeLimitLabel:"Limite mensal (USD)",autoRechargeLimitHint:"Não recarregará mais do que isso em um mês de cobrança. Deve ser um múltiplo do valor da recarga ({amount}).",autoRechargeLimitError:"Deve ser um múltiplo do valor da recarga ({amount}).",autoRechargeSetLimitLabel:"Definir um limite mensal",autoRechargeSetLimitHint:"Limite quanto a recarga automática pode gastar a cada mês de cobrança.",autoRechargeNoCapHint:"A recarga automática não tem um limite mensal.",autoRechargeDisabledReason:"A recarga automática está desativada: {reason}",autoRechargeUpdateSuccess:"Configurações de recarga automática atualizadas",autoRechargeUpdateError:"Não foi possível atualizar suas configurações de recarga automática",autoRechargeSummaryOn:"Ativada",autoRechargeSummaryOff:"Desativada",autoRechargeSummaryMeta:"{amount} de recarga · até {limit}/mês",autoRechargeSummaryMetaNoLimit:"{amount} de recarga · sem limite",autoRechargeSummaryLoadError:"Não foi possível carregar o status",autoRechargeRequiresPaidPlanTitle:"A recarga automática requer um plano pago",autoRechargeRequiresPaidPlanBody:"Atualize seu plano para recarregar automaticamente seu crédito de uso de IA.",autoRechargeUpgradeCta:"Atualizar plano"},Ua="billing",xn=Si();xn.use(Ho).init({resources:{en:{[Ua]:ki},fr:{[Ua]:wi},es:{[Ua]:Ti},pt:{[Ua]:Ii}},lng:"en",fallbackLng:"en",ns:[Ua],defaultNS:Ua,interpolation:{escapeValue:!1,prefix:"{",suffix:"}"}});const Ai=new Set(["v1","v2","v3"]);function Vr(a){return Ai.has(a)}const Zt=T.createContext(null),Pi={capture:()=>{}};function xi(a){const[e,t]=T.useState(()=>typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches);return T.useEffect(()=>{if(a!=="system")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),r=s=>t(s.matches);return n.addEventListener("change",r),()=>n.removeEventListener("change",r)},[a]),a==="system"?e:a==="dark"}const Di=({client:a,stripePublishableKey:e,email:t,locale:n="en",theme:r="light",colorScheme:s="default",onToast:i,analytics:l,featureLabels:d,billingVersion:c,workspaceId:u,persist:p=!0,manageBillingUrl:h,onBillingChange:m,refreshInterval:g=3e4,children:N})=>{const v=u||"default",[y]=T.useState(()=>new Ce.QueryClient({defaultOptions:{queries:{retry:1,staleTime:3e4,gcTime:1e3*60*60}}})),_=xi(r),C=T.useMemo(()=>fr(e),[e]);T.useEffect(()=>{if(!p||typeof window>"u")return;const w=`bpb-cache:${v}`;try{const B=window.localStorage.getItem(w);B&&Ce.hydrate(y,JSON.parse(B))}catch{window.localStorage.removeItem(w)}let F=null;const O=y.getQueryCache().subscribe(B=>{B.type!=="added"&&B.type!=="removed"&&B.type!=="updated"||(F&&clearTimeout(F),F=setTimeout(()=>{try{window.localStorage.setItem(w,JSON.stringify(Ce.dehydrate(y)))}catch{}},250))});return()=>{F&&clearTimeout(F),O()}},[p,v,y]);const I=T.useCallback(()=>y.invalidateQueries({queryKey:["bpb",v]}),[y,v]),A=T.useCallback(w=>m==null?void 0:m(w),[m]),S=g>0?g:!1;xn.changeLanguage(n);const P=T.useMemo(()=>({client:a,queryClient:y,scope:v,stripePromise:C,email:t,locale:n,isDark:_,colorScheme:s,toast:i??(()=>{}),analytics:l??Pi,featureLabels:d,isOutdatedBilling:c!==void 0&&Vr(c),manageBillingUrl:h,refetchInterval:S,refresh:I,notifyBillingChange:A}),[a,y,v,C,t,n,_,s,i,l,d,c,h,S,I,A]);return o.jsx(Zt.Provider,{value:P,children:o.jsx(Xo,{i18n:xn,children:o.jsx("div",{className:"bpb-scope","data-bpb-theme":_?"dark":"light","data-bpb-color-scheme":s,style:{display:"contents"},children:N})})})};function X(){const a=T.useContext(Zt);if(!a)throw new Error("@bpinternal/billing-ui components must be rendered inside <BillingProvider>");return a}function Ei(){var a;return((a=T.useContext(Zt))==null?void 0:a.isDark)??!1}function Li(){var a;return((a=T.useContext(Zt))==null?void 0:a.colorScheme)??"default"}const ke={PLAN_PICKER_VIEWED:"billing_plan_picker_viewed",PLAN_INTERVAL_TOGGLED:"billing_plan_interval_toggled",PLAN_UPGRADE_INITIATED:"billing_plan_upgrade_initiated",PLAN_DOWNGRADED:"billing_plan_downgraded",PLAN_DOWNGRADE_CANCELLED:"billing_plan_downgrade_cancelled",CHECKOUT_STEP_VIEWED:"billing_checkout_step_viewed",CHECKOUT_INTERVAL_CHANGED:"billing_checkout_interval_changed",PAYMENT_METHOD_SELECTED:"billing_payment_method_selected",PAYMENT_DETAILS_CONFIRMED:"billing_payment_details_confirmed",PLAN_UPGRADED:"billing_plan_upgraded",CHECKOUT_ERROR:"billing_checkout_error",PAYMENT_METHOD_UPDATED:"billing_payment_method_updated",BILLING_ADDRESS_UPDATED:"billing_address_updated",INVOICE_DOWNLOADED:"billing_invoice_downloaded",UPGRADE_CTA_CLICKED:"billing_upgrade_cta_clicked",AUTO_RECHARGE_UPDATED:"billing_auto_recharge_updated"};function Fi(a){return typeof a=="object"&&a!==null&&a.code===403}const Ie={root:a=>["bpb",a],plans:a=>["bpb",a,"plans"],addons:a=>["bpb",a,"addons"],subscription:a=>["bpb",a,"subscription"],preview:(a,e)=>["bpb",a,"preview",e],paymentMethod:a=>["bpb",a,"payment-method"],customer:a=>["bpb",a,"customer"],invoices:a=>["bpb",a,"invoices"],readonly:a=>["bpb",a,"billing-readonly"],autoRecharge:a=>["bpb",a,"auto-recharge"],usages:(a,e)=>["bpb",a,"usages",e],bots:a=>["bpb",a,"bots"],usageByBot:(a,e,t)=>["bpb",a,"usage-by-bot",e,t]};function Ze(){const{client:a,queryClient:e,scope:t}=X();return Ce.useQuery({queryKey:Ie.plans(t),queryFn:()=>a.listPlans({})},e)}function Sa(){const{client:a,queryClient:e,scope:t}=X();return Ce.useQuery({queryKey:Ie.addons(t),queryFn:()=>a.listAddons({})},e)}function Be(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=X();return Ce.useQuery({queryKey:Ie.subscription(n),queryFn:()=>e.getSubscription({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function Mi(){const{client:a,queryClient:e,scope:t}=X(),{data:n,error:r}=Ce.useQuery({queryKey:Ie.subscription(t),queryFn:()=>a.getSubscription({}),refetchInterval:!1},e);return r?Fi(r)?!1:r:n?!0:void 0}function Dn(a,e){const{client:t,queryClient:n,scope:r}=X();return Ce.useQuery({queryKey:Ie.preview(r,a),queryFn:()=>t.previewSubscriptionUpdate(a),enabled:(e==null?void 0:e.enabled)??!0},n)}function En(a){const{client:e,queryClient:t,scope:n}=X();return Ce.useQuery({queryKey:Ie.paymentMethod(n),queryFn:()=>e.getPaymentMethod({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Ln(a){const{client:e,queryClient:t,scope:n}=X();return Ce.useQuery({queryKey:Ie.customer(n),queryFn:()=>e.getCustomer({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Zr(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=X();return Ce.useQuery({queryKey:Ie.invoices(n),queryFn:()=>e.listInvoices({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function Fn(a){const{client:e,queryClient:t,scope:n}=X();return Ce.useQuery({queryKey:Ie.readonly(n),queryFn:()=>e.getBillingReadonly({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Mn(a){const{client:e,queryClient:t,scope:n}=X();return Ce.useQuery({queryKey:Ie.autoRecharge(n),queryFn:()=>e.getAutoRechargeSettings({}).then(r=>r.settings),enabled:(a==null?void 0:a.enabled)??!0},t)}function qr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return Ce.useMutation({mutationFn:r=>a.setAutoRechargeSettings(r).then(s=>s.settings),onSuccess:async r=>{e.setQueryData(Ie.autoRecharge(t),r),n({type:"auto-recharge"})}},e)}function ka(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=X(),s=a!=null&&a.period?new Date(a.period):new Date,i=`${s.getUTCFullYear()}-${String(s.getUTCMonth()+1).padStart(2,"0")}`;return Ce.useQuery({queryKey:Ie.usages(n,i),queryFn:()=>e.getWorkspaceUsages({period:`${i}-01T00:00:00.000Z`}).then(l=>l.quotas),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function Wr(a,e){const{client:t,queryClient:n,scope:r,refetchInterval:s}=X(),i=t.breakDownWorkspaceUsageByBot,l=t.listBots,d=typeof i=="function"&&typeof l=="function",c=e!=null&&e.period?new Date(e.period):new Date,u=`${c.getUTCFullYear()}-${String(c.getUTCMonth()+1).padStart(2,"0")}`;return Ce.useQuery({queryKey:Ie.usageByBot(r,a,u),queryFn:async()=>{const[p,h]=await Promise.all([i({id:r,type:a,period:`${u}-01T00:00:00.000Z`}),l({})]),m=new Map(h.bots.map(g=>[g.id,g.name]));return p.data.map(g=>({botId:g.botId,name:m.get(g.botId)??g.botId,value:g.value})).sort((g,N)=>N.value-g.value)},enabled:d&&((e==null?void 0:e.enabled)??!0),refetchInterval:s},n)}function Gr(){const{client:a}=X();return typeof a.breakDownWorkspaceUsageByBot=="function"&&typeof a.listBots=="function"}function On(){const{client:a,queryClient:e}=X();return Ce.useMutation({mutationFn:()=>a.createPaymentMethodIntent({})},e)}function Bn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return Ce.useMutation({mutationFn:r=>a.setPaymentMethod(r),onSuccess:async()=>{await e.invalidateQueries({queryKey:Ie.paymentMethod(t)}),n({type:"payment-method"})}},e)}function Un(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return Ce.useMutation({mutationFn:r=>a.setCustomer(r),onSuccess:async(r,s)=>{await e.invalidateQueries({queryKey:Ie.customer(t)}),s.address&&n({type:"billing-address"})}},e)}function Kr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return Ce.useMutation({mutationFn:async r=>{await a.setAddons(r)},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:Ie.subscription(t)}),e.invalidateQueries({queryKey:Ie.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:"addons"})}},e)}function zn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return Ce.useMutation({mutationFn:async r=>{await a.setPlan({planId:r.planId,interval:r.interval,couponCode:r.couponCode}),r.addons&&Object.keys(r.addons).length>0&&await a.setAddons({addons:r.addons,couponCode:r.couponCode})},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:Ie.subscription(t)}),e.invalidateQueries({queryKey:Ie.plans(t)}),e.invalidateQueries({queryKey:Ie.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:"subscription"})}},e)}function Rr(a){var e,t,n="";if(typeof a=="string"||typeof a=="number")n+=a;else if(typeof a=="object")if(Array.isArray(a)){var r=a.length;for(e=0;e<r;e++)a[e]&&(t=Rr(a[e]))&&(n&&(n+=" "),n+=t)}else for(t in a)a[t]&&(n&&(n+=" "),n+=t);return n}function Oi(){for(var a,e,t=0,n="",r=arguments.length;t<r;t++)(a=arguments[t])&&(e=Rr(a))&&(n&&(n+=" "),n+=e);return n}const Bi=(a,e)=>{const t=new Array(a.length+e.length);for(let n=0;n<a.length;n++)t[n]=a[n];for(let n=0;n<e.length;n++)t[a.length+n]=e[n];return t},Ui=(a,e)=>({classGroupId:a,validator:e}),$r=(a=new Map,e=null,t)=>({nextPart:a,validators:e,classGroupId:t}),qt="-",Hr=[],zi="arbitrary..",ji=a=>{const e=Zi(a),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=a;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return Vi(i);const l=i.split(qt),d=l[0]===""&&l.length>1?1:0;return Yr(l,d,e)},getConflictingClassGroupIds:(i,l)=>{if(l){const d=n[i],c=t[i];return d?c?Bi(c,d):d:c||Hr}return t[i]||Hr}}},Yr=(a,e,t)=>{if(a.length-e===0)return t.classGroupId;const r=a[e],s=t.nextPart.get(r);if(s){const c=Yr(a,e+1,s);if(c)return c}const i=t.validators;if(i===null)return;const l=e===0?a.join(qt):a.slice(e).join(qt),d=i.length;for(let c=0;c<d;c++){const u=i[c];if(u.validator(l))return u.classGroupId}},Vi=a=>a.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=a.slice(1,-1),t=e.indexOf(":"),n=e.slice(0,t);return n?zi+n:void 0})(),Zi=a=>{const{theme:e,classGroups:t}=a;return qi(t,e)},qi=(a,e)=>{const t=$r();for(const n in a){const r=a[n];jn(r,t,n,e)}return t},jn=(a,e,t,n)=>{const r=a.length;for(let s=0;s<r;s++){const i=a[s];Wi(i,e,t,n)}},Wi=(a,e,t,n)=>{if(typeof a=="string"){Gi(a,e,t);return}if(typeof a=="function"){Ki(a,e,t,n);return}Ri(a,e,t,n)},Gi=(a,e,t)=>{const n=a===""?e:Jr(e,a);n.classGroupId=t},Ki=(a,e,t,n)=>{if($i(a)){jn(a(n),e,t,n);return}e.validators===null&&(e.validators=[]),e.validators.push(Ui(t,a))},Ri=(a,e,t,n)=>{const r=Object.entries(a),s=r.length;for(let i=0;i<s;i++){const[l,d]=r[i];jn(d,Jr(e,l),t,n)}},Jr=(a,e)=>{let t=a;const n=e.split(qt),r=n.length;for(let s=0;s<r;s++){const i=n[s];let l=t.nextPart.get(i);l||(l=$r(),t.nextPart.set(i,l)),t=l}return t},$i=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,Hi=a=>{if(a<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),n=Object.create(null);const r=(s,i)=>{t[s]=i,e++,e>a&&(e=0,n=t,t=Object.create(null))};return{get(s){let i=t[s];if(i!==void 0)return i;if((i=n[s])!==void 0)return r(s,i),i},set(s,i){s in t?t[s]=i:r(s,i)}}},Vn="!",Qr=":",Yi=[],Xr=(a,e,t,n,r)=>({modifiers:a,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:n,isExternal:r}),Ji=a=>{const{prefix:e,experimentalParseClassName:t}=a;let n=r=>{const s=[];let i=0,l=0,d=0,c;const u=r.length;for(let N=0;N<u;N++){const v=r[N];if(i===0&&l===0){if(v===Qr){s.push(r.slice(d,N)),d=N+1;continue}if(v==="/"){c=N;continue}}v==="["?i++:v==="]"?i--:v==="("?l++:v===")"&&l--}const p=s.length===0?r:r.slice(d);let h=p,m=!1;p.endsWith(Vn)?(h=p.slice(0,-1),m=!0):p.startsWith(Vn)&&(h=p.slice(1),m=!0);const g=c&&c>d?c-d:void 0;return Xr(s,m,h,g)};if(e){const r=e+Qr,s=n;n=i=>i.startsWith(r)?s(i.slice(r.length)):Xr(Yi,!1,i,void 0,!0)}if(t){const r=n;n=s=>t({className:s,parseClassName:r})}return n},Qi=a=>{const e=new Map;return a.orderSensitiveModifiers.forEach((t,n)=>{e.set(t,1e6+n)}),t=>{const n=[];let r=[];for(let s=0;s<t.length;s++){const i=t[s],l=i[0]==="[",d=e.has(i);l||d?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(i)):r.push(i)}return r.length>0&&(r.sort(),n.push(...r)),n}},Xi=a=>({cache:Hi(a.cacheSize),parseClassName:Ji(a),sortModifiers:Qi(a),postfixLookupClassGroupIds:el(a),...ji(a)}),el=a=>{const e=Object.create(null),t=a.postfixLookupClassGroups;if(t)for(let n=0;n<t.length;n++)e[t[n]]=!0;return e},al=/\s+/,tl=(a,e)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:r,sortModifiers:s,postfixLookupClassGroupIds:i}=e,l=[],d=a.trim().split(al);let c="";for(let u=d.length-1;u>=0;u-=1){const p=d[u],{isExternal:h,modifiers:m,hasImportantModifier:g,baseClassName:N,maybePostfixModifierPosition:v}=t(p);if(h){c=p+(c.length>0?" "+c:c);continue}let y=!!v,_;if(y){const P=N.substring(0,v);_=n(P);const w=_&&i[_]?n(N):void 0;w&&w!==_&&(_=w,y=!1)}else _=n(N);if(!_){if(!y){c=p+(c.length>0?" "+c:c);continue}if(_=n(N),!_){c=p+(c.length>0?" "+c:c);continue}y=!1}const C=m.length===0?"":m.length===1?m[0]:s(m).join(":"),I=g?C+Vn:C,A=I+_;if(l.indexOf(A)>-1)continue;l.push(A);const S=r(_,y);for(let P=0;P<S.length;++P){const w=S[P];l.push(I+w)}c=p+(c.length>0?" "+c:c)}return c},nl=(...a)=>{let e=0,t,n,r="";for(;e<a.length;)(t=a[e++])&&(n=es(t))&&(r&&(r+=" "),r+=n);return r},es=a=>{if(typeof a=="string")return a;let e,t="";for(let n=0;n<a.length;n++)a[n]&&(e=es(a[n]))&&(t&&(t+=" "),t+=e);return t},rl=(a,...e)=>{let t,n,r,s;const i=d=>{const c=e.reduce((u,p)=>p(u),a());return t=Xi(c),n=t.cache.get,r=t.cache.set,s=l,l(d)},l=d=>{const c=n(d);if(c)return c;const u=tl(d,t);return r(d,u),u};return s=i,(...d)=>s(nl(...d))},sl=[],Ae=a=>{const e=t=>t[a]||sl;return e.isThemeGetter=!0,e},as=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ts=/^\((?:(\w[\w-]*):)?(.+)\)$/i,ol=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,il=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ll=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,dl=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,cl=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ul=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ua=a=>ol.test(a),le=a=>!!a&&!Number.isNaN(Number(a)),Ye=a=>!!a&&Number.isInteger(Number(a)),Zn=a=>a.endsWith("%")&&le(a.slice(0,-1)),ra=a=>il.test(a),ns=()=>!0,pl=a=>ll.test(a)&&!dl.test(a),qn=()=>!1,hl=a=>cl.test(a),ml=a=>ul.test(a),gl=a=>!j(a)&&!V(a),bl=a=>a.startsWith("@container")&&(a[10]==="/"&&a[11]!==void 0||a[11]==="s"&&a[16]!==void 0&&a.startsWith("-size/",10)||a[11]==="n"&&a[18]!==void 0&&a.startsWith("-normal/",10)),fl=a=>pa(a,ds,qn),j=a=>as.test(a),wa=a=>pa(a,cs,pl),rs=a=>pa(a,wl,le),yl=a=>pa(a,ps,ns),vl=a=>pa(a,us,qn),ss=a=>pa(a,is,qn),_l=a=>pa(a,ls,ml),Wt=a=>pa(a,hs,hl),V=a=>ts.test(a),et=a=>Ta(a,cs),Nl=a=>Ta(a,us),os=a=>Ta(a,is),Cl=a=>Ta(a,ds),Sl=a=>Ta(a,ls),Gt=a=>Ta(a,hs,!0),kl=a=>Ta(a,ps,!0),pa=(a,e,t)=>{const n=as.exec(a);return n?n[1]?e(n[1]):t(n[2]):!1},Ta=(a,e,t=!1)=>{const n=ts.exec(a);return n?n[1]?e(n[1]):t:!1},is=a=>a==="position"||a==="percentage",ls=a=>a==="image"||a==="url",ds=a=>a==="length"||a==="size"||a==="bg-size",cs=a=>a==="length",wl=a=>a==="number",us=a=>a==="family-name",ps=a=>a==="number"||a==="weight",hs=a=>a==="shadow",Tl=rl(()=>{const a=Ae("color"),e=Ae("font"),t=Ae("text"),n=Ae("font-weight"),r=Ae("tracking"),s=Ae("leading"),i=Ae("breakpoint"),l=Ae("container"),d=Ae("spacing"),c=Ae("radius"),u=Ae("shadow"),p=Ae("inset-shadow"),h=Ae("text-shadow"),m=Ae("drop-shadow"),g=Ae("blur"),N=Ae("perspective"),v=Ae("aspect"),y=Ae("ease"),_=Ae("animate"),C=()=>["auto","avoid","all","avoid-page","page","left","right","column"],I=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],A=()=>[...I(),V,j],S=()=>["auto","hidden","clip","visible","scroll"],P=()=>["auto","contain","none"],w=()=>[V,j,d],F=()=>[ua,"full","auto",...w()],O=()=>[Ye,"none","subgrid",V,j],B=()=>["auto",{span:["full",Ye,V,j]},Ye,V,j],W=()=>[Ye,"auto",V,j],q=()=>["auto","min","max","fr",V,j],H=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],z=()=>["start","end","center","stretch","center-safe","end-safe"],D=()=>["auto",...w()],Y=()=>[ua,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...w()],K=()=>[ua,"screen","full","dvw","lvw","svw","min","max","fit",...w()],ee=()=>[ua,"screen","full","lh","dvh","lvh","svh","min","max","fit",...w()],E=()=>[a,V,j],pe=()=>[...I(),os,ss,{position:[V,j]}],ae=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ce=()=>["auto","cover","contain",Cl,fl,{size:[V,j]}],U=()=>[Zn,et,wa],$=()=>["","none","full",c,V,j],R=()=>["",le,et,wa],x=()=>["solid","dashed","dotted","double"],be=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],te=()=>[le,Zn,os,ss],de=()=>["","none",g,V,j],me=()=>["none",le,V,j],ne=()=>["none",le,V,j],ve=()=>[le,V,j],ie=()=>[ua,"full",...w()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ra],breakpoint:[ra],color:[ns],container:[ra],"drop-shadow":[ra],ease:["in","out","in-out"],font:[gl],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ra],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ra],shadow:[ra],spacing:["px",le],text:[ra],"text-shadow":[ra],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ua,j,V,v]}],container:["container"],"container-type":[{"@container":["","normal","size",V,j]}],"container-named":[bl],columns:[{columns:[le,j,V,l]}],"break-after":[{"break-after":C()}],"break-before":[{"break-before":C()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:A()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:P()}],"overscroll-x":[{"overscroll-x":P()}],"overscroll-y":[{"overscroll-y":P()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:F()}],"inset-x":[{"inset-x":F()}],"inset-y":[{"inset-y":F()}],start:[{"inset-s":F(),start:F()}],end:[{"inset-e":F(),end:F()}],"inset-bs":[{"inset-bs":F()}],"inset-be":[{"inset-be":F()}],top:[{top:F()}],right:[{right:F()}],bottom:[{bottom:F()}],left:[{left:F()}],visibility:["visible","invisible","collapse"],z:[{z:[Ye,"auto",V,j]}],basis:[{basis:[ua,"full","auto",l,...w()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[le,ua,"auto","initial","none",j]}],grow:[{grow:["",le,V,j]}],shrink:[{shrink:["",le,V,j]}],order:[{order:[Ye,"first","last","none",V,j]}],"grid-cols":[{"grid-cols":O()}],"col-start-end":[{col:B()}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":O()}],"row-start-end":[{row:B()}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":q()}],"auto-rows":[{"auto-rows":q()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...H(),"normal"]}],"justify-items":[{"justify-items":[...z(),"normal"]}],"justify-self":[{"justify-self":["auto",...z()]}],"align-content":[{content:["normal",...H()]}],"align-items":[{items:[...z(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...z(),{baseline:["","last"]}]}],"place-content":[{"place-content":H()}],"place-items":[{"place-items":[...z(),"baseline"]}],"place-self":[{"place-self":["auto",...z()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:D()}],mx:[{mx:D()}],my:[{my:D()}],ms:[{ms:D()}],me:[{me:D()}],mbs:[{mbs:D()}],mbe:[{mbe:D()}],mt:[{mt:D()}],mr:[{mr:D()}],mb:[{mb:D()}],ml:[{ml:D()}],"space-x":[{"space-x":w()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":w()}],"space-y-reverse":["space-y-reverse"],size:[{size:Y()}],"inline-size":[{inline:["auto",...K()]}],"min-inline-size":[{"min-inline":["auto",...K()]}],"max-inline-size":[{"max-inline":["none",...K()]}],"block-size":[{block:["auto",...ee()]}],"min-block-size":[{"min-block":["auto",...ee()]}],"max-block-size":[{"max-block":["none",...ee()]}],w:[{w:[l,"screen",...Y()]}],"min-w":[{"min-w":[l,"screen","none",...Y()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[i]},...Y()]}],h:[{h:["screen","lh",...Y()]}],"min-h":[{"min-h":["screen","lh","none",...Y()]}],"max-h":[{"max-h":["screen","lh",...Y()]}],"font-size":[{text:["base",t,et,wa]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,kl,yl]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Zn,j]}],"font-family":[{font:[Nl,vl,e]}],"font-features":[{"font-features":[j]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,V,j]}],"line-clamp":[{"line-clamp":[le,"none",V,rs]}],leading:[{leading:[s,...w()]}],"list-image":[{"list-image":["none",V,j]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",V,j]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:E()}],"text-color":[{text:E()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...x(),"wavy"]}],"text-decoration-thickness":[{decoration:[le,"from-font","auto",V,wa]}],"text-decoration-color":[{decoration:E()}],"underline-offset":[{"underline-offset":[le,"auto",V,j]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:w()}],"tab-size":[{tab:[Ye,V,j]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",V,j]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",V,j]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:pe()}],"bg-repeat":[{bg:ae()}],"bg-size":[{bg:ce()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ye,V,j],radial:["",V,j],conic:[Ye,V,j]},Sl,_l]}],"bg-color":[{bg:E()}],"gradient-from-pos":[{from:U()}],"gradient-via-pos":[{via:U()}],"gradient-to-pos":[{to:U()}],"gradient-from":[{from:E()}],"gradient-via":[{via:E()}],"gradient-to":[{to:E()}],rounded:[{rounded:$()}],"rounded-s":[{"rounded-s":$()}],"rounded-e":[{"rounded-e":$()}],"rounded-t":[{"rounded-t":$()}],"rounded-r":[{"rounded-r":$()}],"rounded-b":[{"rounded-b":$()}],"rounded-l":[{"rounded-l":$()}],"rounded-ss":[{"rounded-ss":$()}],"rounded-se":[{"rounded-se":$()}],"rounded-ee":[{"rounded-ee":$()}],"rounded-es":[{"rounded-es":$()}],"rounded-tl":[{"rounded-tl":$()}],"rounded-tr":[{"rounded-tr":$()}],"rounded-br":[{"rounded-br":$()}],"rounded-bl":[{"rounded-bl":$()}],"border-w":[{border:R()}],"border-w-x":[{"border-x":R()}],"border-w-y":[{"border-y":R()}],"border-w-s":[{"border-s":R()}],"border-w-e":[{"border-e":R()}],"border-w-bs":[{"border-bs":R()}],"border-w-be":[{"border-be":R()}],"border-w-t":[{"border-t":R()}],"border-w-r":[{"border-r":R()}],"border-w-b":[{"border-b":R()}],"border-w-l":[{"border-l":R()}],"divide-x":[{"divide-x":R()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":R()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...x(),"hidden","none"]}],"divide-style":[{divide:[...x(),"hidden","none"]}],"border-color":[{border:E()}],"border-color-x":[{"border-x":E()}],"border-color-y":[{"border-y":E()}],"border-color-s":[{"border-s":E()}],"border-color-e":[{"border-e":E()}],"border-color-bs":[{"border-bs":E()}],"border-color-be":[{"border-be":E()}],"border-color-t":[{"border-t":E()}],"border-color-r":[{"border-r":E()}],"border-color-b":[{"border-b":E()}],"border-color-l":[{"border-l":E()}],"divide-color":[{divide:E()}],"outline-style":[{outline:[...x(),"none","hidden"]}],"outline-offset":[{"outline-offset":[le,V,j]}],"outline-w":[{outline:["",le,et,wa]}],"outline-color":[{outline:E()}],shadow:[{shadow:["","none",u,Gt,Wt]}],"shadow-color":[{shadow:E()}],"inset-shadow":[{"inset-shadow":["none",p,Gt,Wt]}],"inset-shadow-color":[{"inset-shadow":E()}],"ring-w":[{ring:R()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:E()}],"ring-offset-w":[{"ring-offset":[le,wa]}],"ring-offset-color":[{"ring-offset":E()}],"inset-ring-w":[{"inset-ring":R()}],"inset-ring-color":[{"inset-ring":E()}],"text-shadow":[{"text-shadow":["none",h,Gt,Wt]}],"text-shadow-color":[{"text-shadow":E()}],opacity:[{opacity:[le,V,j]}],"mix-blend":[{"mix-blend":[...be(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":be()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[le]}],"mask-image-linear-from-pos":[{"mask-linear-from":te()}],"mask-image-linear-to-pos":[{"mask-linear-to":te()}],"mask-image-linear-from-color":[{"mask-linear-from":E()}],"mask-image-linear-to-color":[{"mask-linear-to":E()}],"mask-image-t-from-pos":[{"mask-t-from":te()}],"mask-image-t-to-pos":[{"mask-t-to":te()}],"mask-image-t-from-color":[{"mask-t-from":E()}],"mask-image-t-to-color":[{"mask-t-to":E()}],"mask-image-r-from-pos":[{"mask-r-from":te()}],"mask-image-r-to-pos":[{"mask-r-to":te()}],"mask-image-r-from-color":[{"mask-r-from":E()}],"mask-image-r-to-color":[{"mask-r-to":E()}],"mask-image-b-from-pos":[{"mask-b-from":te()}],"mask-image-b-to-pos":[{"mask-b-to":te()}],"mask-image-b-from-color":[{"mask-b-from":E()}],"mask-image-b-to-color":[{"mask-b-to":E()}],"mask-image-l-from-pos":[{"mask-l-from":te()}],"mask-image-l-to-pos":[{"mask-l-to":te()}],"mask-image-l-from-color":[{"mask-l-from":E()}],"mask-image-l-to-color":[{"mask-l-to":E()}],"mask-image-x-from-pos":[{"mask-x-from":te()}],"mask-image-x-to-pos":[{"mask-x-to":te()}],"mask-image-x-from-color":[{"mask-x-from":E()}],"mask-image-x-to-color":[{"mask-x-to":E()}],"mask-image-y-from-pos":[{"mask-y-from":te()}],"mask-image-y-to-pos":[{"mask-y-to":te()}],"mask-image-y-from-color":[{"mask-y-from":E()}],"mask-image-y-to-color":[{"mask-y-to":E()}],"mask-image-radial":[{"mask-radial":[V,j]}],"mask-image-radial-from-pos":[{"mask-radial-from":te()}],"mask-image-radial-to-pos":[{"mask-radial-to":te()}],"mask-image-radial-from-color":[{"mask-radial-from":E()}],"mask-image-radial-to-color":[{"mask-radial-to":E()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":I()}],"mask-image-conic-pos":[{"mask-conic":[le]}],"mask-image-conic-from-pos":[{"mask-conic-from":te()}],"mask-image-conic-to-pos":[{"mask-conic-to":te()}],"mask-image-conic-from-color":[{"mask-conic-from":E()}],"mask-image-conic-to-color":[{"mask-conic-to":E()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:pe()}],"mask-repeat":[{mask:ae()}],"mask-size":[{mask:ce()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",V,j]}],filter:[{filter:["","none",V,j]}],blur:[{blur:de()}],brightness:[{brightness:[le,V,j]}],contrast:[{contrast:[le,V,j]}],"drop-shadow":[{"drop-shadow":["","none",m,Gt,Wt]}],"drop-shadow-color":[{"drop-shadow":E()}],grayscale:[{grayscale:["",le,V,j]}],"hue-rotate":[{"hue-rotate":[le,V,j]}],invert:[{invert:["",le,V,j]}],saturate:[{saturate:[le,V,j]}],sepia:[{sepia:["",le,V,j]}],"backdrop-filter":[{"backdrop-filter":["","none",V,j]}],"backdrop-blur":[{"backdrop-blur":de()}],"backdrop-brightness":[{"backdrop-brightness":[le,V,j]}],"backdrop-contrast":[{"backdrop-contrast":[le,V,j]}],"backdrop-grayscale":[{"backdrop-grayscale":["",le,V,j]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[le,V,j]}],"backdrop-invert":[{"backdrop-invert":["",le,V,j]}],"backdrop-opacity":[{"backdrop-opacity":[le,V,j]}],"backdrop-saturate":[{"backdrop-saturate":[le,V,j]}],"backdrop-sepia":[{"backdrop-sepia":["",le,V,j]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",V,j]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[le,"initial",V,j]}],ease:[{ease:["linear","initial",y,V,j]}],delay:[{delay:[le,V,j]}],animate:[{animate:["none",_,V,j]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[N,V,j]}],"perspective-origin":[{"perspective-origin":A()}],rotate:[{rotate:me()}],"rotate-x":[{"rotate-x":me()}],"rotate-y":[{"rotate-y":me()}],"rotate-z":[{"rotate-z":me()}],scale:[{scale:ne()}],"scale-x":[{"scale-x":ne()}],"scale-y":[{"scale-y":ne()}],"scale-z":[{"scale-z":ne()}],"scale-3d":["scale-3d"],skew:[{skew:ve()}],"skew-x":[{"skew-x":ve()}],"skew-y":[{"skew-y":ve()}],transform:[{transform:[V,j,"","none","gpu","cpu"]}],"transform-origin":[{origin:A()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ie()}],"translate-x":[{"translate-x":ie()}],"translate-y":[{"translate-y":ie()}],"translate-z":[{"translate-z":ie()}],"translate-none":["translate-none"],zoom:[{zoom:[Ye,V,j]}],accent:[{accent:E()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:E()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",V,j]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":E()}],"scrollbar-track-color":[{"scrollbar-track":E()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",V,j]}],fill:[{fill:["none",...E()]}],"stroke-w":[{stroke:[le,et,wa,rs]}],stroke:[{stroke:["none",...E()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function Z(...a){return Tl(Oi(a))}function se(a,e="usd",t=2,n="en-US"){return new Intl.NumberFormat(n,{style:"currency",currency:e.toUpperCase(),minimumFractionDigits:t,maximumFractionDigits:t}).format(a)}function Je(a,e="en-US"){return new Date(a).toLocaleDateString(e,{month:"short",day:"numeric",year:"numeric"})}function ms(a,e){const t=new Date(a);return t.setDate(t.getDate()+e),t.toISOString()}function fe(a,e="en-US"){return new Intl.NumberFormat(e).format(a)}function Ia(a){if(a<=0)return"0 MB";const e=a/1e9;if(e>=1)return`${Number.isInteger(e)?e:e.toFixed(1)} GB`;const t=a/1e6;return`${Number.isInteger(t)?t:t.toFixed(0)} MB`}function _e(a){return a.replace("Plan - ","")}function at(a){return{usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",jpy:"¥"}[a.toLowerCase()]??`${a.toUpperCase()} `}const qe=1e9,gs={incoming_messages_events:a=>`${fe(a)} incoming messages & events`,conversation_sessions:a=>`${fe(a)} conversation sessions`,table_rows:a=>`${fe(a)} table rows`,vector_db_storage:a=>`${Ia(a)} vector database storage`,file_storage:a=>`${Ia(a)} file storage`,collaborator_count:a=>a===1?"1 collaborator":`${fe(a)} collaborators`,bot_count:a=>a===1?"1 bot":`${fe(a)} bots`,indexed_file_count:a=>`${fe(a)} indexed files for RAG`,ai_spend:a=>`${se(a/qe,"usd",0)} AI credit included`,always_alive:a=>a===1?"1 always-alive bot":`${fe(a)} always-alive bots`};function Il(a,e,t){const n=(t==null?void 0:t[a])??gs[a];return n?n(e):`${fe(e)} ${a.replaceAll("_"," ")}`}const Aa=["community","plus","team","enterprise","managed"],Al=["community","plus","team","enterprise","managed"];function Ne(a){var n;const e=a.name.toLowerCase();if(e.includes("community")||e.includes("pay-as-you-go")||e.includes("free"))return"community";if(e.includes("plus"))return"plus";if(e.includes("team"))return"team";if(e.includes("managed"))return"managed";if(e.includes("enterprise"))return"enterprise";const t=(n=a.metadata)==null?void 0:n.legacyName;return Al.find(r=>r===t)??"community"}const Wn="https://botpress.com/contact-us/managed-plan",ha={conversation_sessions_addon:"addonNameConversationSessions",storage_addon:"addonNameStorage"},bs={conversation_sessions_addon:"addonDescriptionConversationSessions",storage_addon:"addonDescriptionStorage"};function Kt(a,e,t){return a.prices[e.id]??a.prices[Ne(e)]??a.prices[t]??null}function tt(a){return a.replace("Add-on - ","")}function fs(a){return(a==null?void 0:a.find(e=>{var t;return(((t=e.increments)==null?void 0:t.conversation_sessions)??0)>0}))??null}const ys=[{key:"conversation_sessions",label:"Conversations / month",unit:"count"},{key:"table_rows",label:"Table rows",unit:"count"},{key:"vector_db_storage",label:"Vector DB storage",unit:"bytes"},{key:"file_storage",label:"File storage",unit:"bytes"}];function vs(a,e,t){var r;if(!e)return[];const n=[];for(const s of ys){const i=a.features[s.key]??0;let l=0;for(const d of e){const c=((r=d.increments)==null?void 0:r[s.key])??0,u=t[d.id]??0;l+=c*u}l>0&&n.push({...s,now:i,next:i+l})}return n}function _s(a,e,t){var r;if(!a)return[];const n=[];for(const s of ys){const i=a.features[s.key]??0;let l=0;for(const d of e??[])l+=(((r=d.increments)==null?void 0:r[s.key])??0)*(t[d.id]??0);(i>0||l>0)&&n.push({...s,base:i,added:l,total:i+l})}return n}function Rt(a,e,t){var i;const n=fs(a);if(!n)return null;const r=((i=n.increments)==null?void 0:i.conversation_sessions)??0,s=Kt(n,e,t);return r<=0||!s||s.amount<=0?null:{packSize:r,amount:s.amount,currency:s.currency}}const $t={"AI usage included":{label:"planFeatureAiUsageIncluded",desc:"planFeatureDescAiUsageIncluded"},"3 seats":{label:"planFeature3Seats",desc:"planFeatureDesc3Seats"},"3 AI agents":{label:"planFeature3AiAgents",desc:"planFeatureDesc3AiAgents"},"Botpress Desk":{label:"planFeatureBotpressDesk",desc:"planFeatureDescBotpressDesk"},"Botpress Studio + ADK":{label:"planFeatureBotpressStudioAdk",desc:"planFeatureDescBotpressStudioAdk"},"Help center":{label:"planFeatureHelpCenter",desc:"planFeatureDescHelpCenter"},"1K table rows":{label:"planFeature1kTableRows",desc:"planFeatureDesc1kTableRows"},"100K table rows":{label:"planFeature100kTableRows",desc:"planFeatureDesc100kTableRows"},"500K table rows":{label:"planFeature500kTableRows",desc:"planFeatureDesc500kTableRows"},"100MB file storage":{label:"planFeature100mbFileStorage",desc:"planFeatureDesc100mbFileStorage"},"10GB file storage":{label:"planFeature10gbFileStorage",desc:"planFeatureDesc10gbFileStorage"},"50GB file storage":{label:"planFeature50gbFileStorage",desc:"planFeatureDesc50gbFileStorage"},"100MB vector DB storage":{label:"planFeature100mbVectorDb",desc:"planFeatureDesc100mbVectorDb"},"1GB vector DB storage":{label:"planFeature1gbVectorDb",desc:"planFeatureDesc1gbVectorDb"},"5GB vector DB storage":{label:"planFeature5gbVectorDb",desc:"planFeatureDesc5gbVectorDb"},"Community support":{label:"planFeatureCommunitySupport",desc:"planFeatureDescCommunitySupport"},"Unlimited AI agents":{label:"planFeatureUnlimitedAiAgents",desc:"planFeatureDescUnlimitedAiAgents"},"WhatsApp channel":{label:"planFeatureWhatsappChannel",desc:"planFeatureDescWhatsappChannel"},"Help Center custom domain":{label:"planFeatureHelpCenterCustomDomain",desc:"planFeatureDescHelpCenterCustomDomain"},"Whitelabel webchat":{label:"planFeatureWhitelabelWebchat",desc:"planFeatureDescWhitelabelWebchat"},"Technical support via live chat":{label:"planFeatureTechnicalSupportLiveChat",desc:"planFeatureDescTechnicalSupportLiveChat"},"Unlimited seats":{label:"planFeatureUnlimitedSeats",desc:"planFeatureDescUnlimitedSeats"},"Teams, routing & RBAC":{label:"planFeatureTeamsRoutingRbac",desc:"planFeatureDescTeamsRoutingRbac"},"Team-level analytics":{label:"planFeatureTeamLevelAnalytics",desc:"planFeatureDescTeamLevelAnalytics"},"Voice channel":{label:"planFeatureVoiceChannel",desc:"planFeatureDescVoiceChannel"},"Dedicated support":{label:"planFeatureDedicatedSupport",desc:"planFeatureDescDedicatedSupport"},"SLA & security review":{label:"planFeatureSlaSecurity",desc:"planFeatureDescSlaSecurity"},"Custom storage":{label:"planFeatureCustomStorage",desc:"planFeatureDescCustomStorage"}},Ns={community:"planDescriptionCommunity",plus:"planDescriptionPlus",team:"planDescriptionTeam",enterprise:"planDescriptionEnterprise",managed:"planDescriptionManaged"},Ht={community:["3 seats","3 AI agents","Botpress Desk","Botpress Studio + ADK","Help center","1K table rows","100MB file storage","100MB vector DB storage","Community support"],plus:["AI usage included","Unlimited AI agents","Help Center custom domain","Whitelabel webchat","100K table rows","10GB file storage","1GB vector DB storage","Technical support via live chat"],team:["AI usage included","Unlimited seats","Teams, routing & RBAC","Team-level analytics","500K table rows","50GB file storage","5GB vector DB storage"],enterprise:["Voice channel","Dedicated support","SLA & security review","Custom storage"],managed:[]},nt=({variant:a="accent",children:e,className:t})=>o.jsx("span",{className:Z("bpb-badge",`bpb-badge--${a}`,t),children:e}),Se=({variant:a="primary",size:e="md",block:t=!1,loading:n=!1,className:r,disabled:s,children:i,type:l="button",...d})=>o.jsxs("button",{type:l,className:Z("bpb-btn",`bpb-btn--${a}`,`bpb-btn--${e}`,t&&"bpb-btn--block",r),disabled:s||n,"data-loading":n||void 0,...d,children:[n&&o.jsx("span",{className:"bpb-btn__spinner","aria-hidden":!0}),o.jsx("span",{className:"bpb-btn__label",children:i})]}),ye=(a,e)=>({width:a??16,height:a??16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,...e}),Cs=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M3 8.5l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Yt=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M8 1.5l1.4 3.6a1 1 0 00.6.6L13.5 7l-3.5 1.4a1 1 0 00-.6.6L8 12.5 6.6 9a1 1 0 00-.6-.6L2.5 7 6 5.7a1 1 0 00.6-.6L8 1.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M12.8 11l.5 1.2 1.2.5-1.2.5-.5 1.3-.5-1.3-1.2-.5 1.2-.5.5-1.2z",fill:"currentColor"})]}),Ss=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M2.5 8a5.5 5.5 0 115.5 5.5c-.9 0-1.8-.2-2.5-.6L2.5 13.5l.6-3A5.5 5.5 0 012.5 8z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),Gn=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M8 1.8l5 1.8v4c0 3.2-2.1 5.4-5 6.6-2.9-1.2-5-3.4-5-6.6v-4l5-1.8z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M5.8 8l1.6 1.6 2.8-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),ks=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M6 2.5h3v1.6a1.4 1.4 0 102.8 0V2.5h1.7v3h-1.6a1.4 1.4 0 100 2.8h1.6v3h-3v1.6a1.4 1.4 0 11-2.8 0v-1.6h-3v-3h1.6a1.4 1.4 0 100-2.8H2.5v-3H6z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),Jt=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M8 2l6 3-6 3-6-3 6-3z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M2 8l6 3 6-3M2 11l6 3 6-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),ws=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M8 8c-1.2-1.6-2-2.4-3.3-2.4a2.4 2.4 0 100 4.8C6 10.4 6.8 9.6 8 8zm0 0c1.2 1.6 2 2.4 3.3 2.4a2.4 2.4 0 100-4.8C10 5.6 9.2 6.4 8 8z",stroke:"currentColor",strokeWidth:"1.3"})}),Qt=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M8.5 1.5L3 9h4l-.5 5.5L12 7H8l.5-5.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),Ts=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("circle",{cx:"6",cy:"5.5",r:"2.2",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M2 13c0-2.2 1.8-3.6 4-3.6s4 1.4 4 3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),o.jsx("path",{d:"M10.5 3.6a2.2 2.2 0 010 4.1M11 9.6c1.7.3 3 1.6 3 3.4",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),Is=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M2.5 2.5v11h11",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M5 10l2.2-2.4 2 1.6L12.5 5.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),As=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M2 8h12M8 2c1.8 1.6 2.8 3.8 2.8 6S9.8 12.4 8 14C6.2 12.4 5.2 10.2 5.2 8S6.2 3.6 8 2z",stroke:"currentColor",strokeWidth:"1.3"})]}),Ps=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M2.5 11.5L9 5l2 2-6.5 6.5H2.5v-2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M9 5l1.8-1.8a1.4 1.4 0 012 2L11 7",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),Kn=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("rect",{x:"1.8",y:"3.5",width:"12.4",height:"9",rx:"1.6",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M1.8 6.4h12.4",stroke:"currentColor",strokeWidth:"1.3"})]}),Pl=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M2 6l6-3.5L14 6v1H2V6zM3 7v5M6.3 7v5M9.7 7v5M13 7v5M2 12.5h12",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),xl=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("rect",{x:"3.5",y:"7",width:"9",height:"6.5",rx:"1.4",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M5.5 7V5.5a2.5 2.5 0 015 0V7",stroke:"currentColor",strokeWidth:"1.3"})]}),Xt=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Pa=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M4 6.5L8 10.5l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Rn=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M10 3.5L5.5 8l4.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),sa=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M6 3.5L10.5 8L6 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),xs=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),$n=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),en=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M8 2.2L14.5 13.2a.7.7 0 01-.6 1H2.1a.7.7 0 01-.6-1L8 2.2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M8 6.3v3.1",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),o.jsx("circle",{cx:"8",cy:"11.6",r:"0.85",fill:"currentColor"})]}),rt=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M9 3.5h3.5V7M12 4L7 9M11 9.5v2a1 1 0 01-1 1H4.5a1 1 0 01-1-1V6a1 1 0 011-1h2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),Dl=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M8 10.5V5.5M5.5 8l2.5-2.5L10.5 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),an=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Hn=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M8 2.5v7M5 7l3 3 3-3M3 12.5h10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),El=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M4 2h8v12l-1.5-1-1.5 1-1.5-1-1.5 1L4 14V2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M6.2 5.5h3.6M6.2 8h3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),Ds=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M2.5 6.5h11M5.5 2v2.5M10.5 2v2.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),Yn=({brand:a})=>{const e=a==="visa"?"VISA":a==="mastercard"?"MC":a==="amex"?"AMEX":a==="discover"?"DISC":a.slice(0,4).toUpperCase(),t=a==="visa"?"#1a1f71":a==="mastercard"?"#252525":a==="amex"?"#016fd0":"#5d5d5d";return o.jsx("span",{"aria-hidden":!0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:34,height:22,padding:"0 4px",borderRadius:4,background:t,color:"#fff",fontSize:9,fontWeight:700,letterSpacing:"0.04em"},children:e})};function tn(a){const e=a.toLowerCase();return/seat|member|user|team|rbac|rout/.test(e)?Ts:/analytic|report|insight|dashboard/.test(e)?Is:/whatsapp|channel|chat|message|conversation|webchat|voice/.test(e)?Ss:/storage|table|vector|file|gb|rows|db/.test(e)?Jt:/domain|help center|whitelabel|website|url|web/.test(e)?As:/brand|theme|custom|white-?label/.test(e)?Ps:/unlimited|infinit/.test(e)?ws:/security|sla|compliance|soc|audit/.test(e)||/support|sla|dedicated|priority/.test(e)?Gn:/integration|api|plugin|sdk|adk|studio/.test(e)?ks:/ai|agent|model|gpt|llm/.test(e)?Qt:Yt}const Fe=({open:a,onOpenChange:e,size:t="md",children:n,className:r,showClose:s=!0,...i})=>{const l=T.useRef(null),d=Ei(),c=Li(),u=T.useCallback(()=>e(!1),[e]);return T.useEffect(()=>{var m;if(!a)return;const p=g=>{g.key==="Escape"&&u()};document.addEventListener("keydown",p);const h=document.body.style.overflow;return document.body.style.overflow="hidden",(m=l.current)==null||m.focus(),()=>{document.removeEventListener("keydown",p),document.body.style.overflow=h}},[a,u]),a?Po.createPortal(o.jsx("div",{className:"bpb-portal bpb-dialog__overlay","data-bpb-theme":d?"dark":"light","data-bpb-color-scheme":c,onClick:u,children:o.jsxs("div",{ref:l,role:"dialog","aria-modal":"true","aria-label":i["aria-label"],tabIndex:-1,className:Z("bpb-dialog",`bpb-dialog--${t}`,r),onClick:p=>p.stopPropagation(),children:[s&&o.jsx("button",{type:"button",className:"bpb-dialog__close","aria-label":"Close",onClick:u,children:o.jsx(Xt,{size:18})}),n]})}),document.body):null},ma=()=>{const{manageBillingUrl:a}=X(),{t:e}=ge();return o.jsxs("div",{className:"bpb-outdated",children:[o.jsx("h3",{className:"bpb-outdated__title",children:e("outdatedTitle")}),o.jsx("p",{className:"bpb-outdated__text",children:e("outdatedText")}),a&&o.jsxs(Se,{variant:"primary",onClick:()=>window.open(a,"_blank","noopener"),children:[e("outdatedCta"),o.jsx(rt,{size:15})]})]})},Es=({options:a,value:e,onChange:t,className:n,...r})=>o.jsx("div",{role:"radiogroup","aria-label":r["aria-label"],className:Z("bpb-segmented",n),children:a.map(s=>{const i=s.value===e;return o.jsxs("button",{type:"button",role:"radio","aria-checked":i,className:Z("bpb-segmented__option",i&&"bpb-segmented__option--selected"),onClick:()=>t(s.value),children:[s.label,s.badge&&o.jsx("span",{className:"bpb-segmented__badge",children:s.badge})]},s.value)})}),ue=({width:a,height:e=14,rounded:t=!1,className:n})=>o.jsx("span",{"aria-hidden":!0,className:Z("bpb-skeleton",t&&"bpb-skeleton--rounded",n),style:{width:a??"100%",height:e}}),Ll="(max-width: 560px)",Fl=()=>{};function Ml(a){const e=T.useCallback(r=>{if(typeof window>"u")return Fl;const s=window.matchMedia(a);return s.addEventListener("change",r),()=>s.removeEventListener("change",r)},[a]),t=T.useCallback(()=>typeof window<"u"&&window.matchMedia(a).matches,[a]),n=T.useCallback(()=>!1,[]);return T.useSyncExternalStore(e,t,n)}function Ol(){return Ml(Ll)}const st=({label:a,children:e})=>o.jsxs("span",{className:"bpb-tooltip",tabIndex:0,role:"note",children:[o.jsx("span",{className:"bpb-tooltip__term",children:a}),o.jsx("span",{className:"bpb-tooltip__bubble",role:"tooltip",children:e})]}),Jn=3,Bl=({label:a,description:e,Icon:t})=>{const[n,r]=T.useState(!1),s=T.useId();return o.jsxs("li",{className:"bpb-plan-card__feature--expandable",children:[o.jsxs("button",{type:"button",className:"bpb-plan-card__feature-trigger","aria-expanded":n,"aria-controls":s,onClick:()=>r(i=>!i),children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(t,{size:13})}),o.jsx("span",{className:"bpb-plan-card__feature-label",children:a}),o.jsx("span",{className:Z("bpb-plan-card__feature-caret",n&&"is-open"),"aria-hidden":!0,children:o.jsx(Pa,{size:14})})]}),n&&o.jsx("p",{id:s,className:"bpb-plan-card__feature-desc",children:e})]})},Ul=({features:a,previousPlanName:e,overrides:t,isMobile:n})=>{const{t:r}=ge(),[s,i]=T.useState(!1),d=n&&!s&&a.length>Jn?a.slice(0,Jn):a;return o.jsxs(o.Fragment,{children:[o.jsxs("ul",{className:Z("bpb-plan-card__features",n&&"bpb-plan-card__features--mobile"),children:[e&&o.jsxs("li",{className:"bpb-plan-card__features-lead",children:[o.jsx("span",{className:"bpb-plan-card__feature-chip bpb-plan-card__feature-chip--lead",children:o.jsx(Cs,{size:13})}),o.jsx("span",{children:r("upgradeEverythingIn",{planName:e})})]}),d.map(c=>{const u=tn(c),p=$t[c],h=t==null?void 0:t[c],m=(h==null?void 0:h.label)??(p!==void 0?r(p.label):c),g=(h==null?void 0:h.description)??(p!==void 0?r(p.desc):void 0);return n?g?o.jsx(Bl,{label:m,description:g,Icon:u},c):o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(u,{size:13})}),o.jsx("span",{className:"bpb-plan-card__feature-label",children:m})]},c):o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(u,{size:13})}),g?o.jsx(st,{label:m,children:g}):o.jsx("span",{children:m})]},c)})]}),n&&a.length>Jn&&o.jsxs("button",{type:"button",className:"bpb-plan-card__features-toggle",onClick:()=>i(c=>!c),children:[s?r("upgradeShowFewerFeatures"):r("upgradeSeeAllFeatures",{total:a.length}),o.jsx("span",{className:Z("bpb-plan-card__feature-caret",s&&"is-open"),"aria-hidden":!0,children:o.jsx(Pa,{size:14})})]})]})};function zl(a,e){const t=a.prices[e];return t||((e==="month"?a.prices.year:a.prices.month)??null)}function jl(a,e){var r,s;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const n=((s=a.prices.year)==null?void 0:s.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}function Vl(a){var t,n;let e=0;for(const r of a){const s=(t=r.prices.month)==null?void 0:t.amount,i=(n=r.prices.year)==null?void 0:n.amount;s&&i&&s>0&&(e=Math.max(e,1-i/(s*12)))}return Math.round(e*100)}const Ls=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",defaultInterval:r="month",excludePlanIds:s=[],planFeatures:i={},featureDescriptions:l})=>{var U,$,R;const{isOutdatedBilling:d,toast:c,analytics:u}=X(),{t:p}=ge(),[h,m]=T.useState(r),{data:g,isLoading:N}=Ze(),{data:v}=Sa(),{data:y}=Be({enabled:a}),{data:_}=Fn({enabled:a}),C=zn(),I=(_==null?void 0:_.planReadonly)??!1;T.useEffect(()=>{a&&u.capture(ke.PLAN_PICKER_VIEWED,{interval:h})},[a,u]);const A=x=>{x!==h&&u.capture(ke.PLAN_INTERVAL_TOGGLED,{interval:x}),m(x)},S=y==null?void 0:y.plan.current.interval,P=g==null?void 0:g.find(x=>x.id===(y==null?void 0:y.plan.current.planId)),w=y?P?Ne(P):"community":void 0,F=((U=y==null?void 0:y.plan.next)==null?void 0:U.planId)??null,O=!!F&&F!==(y==null?void 0:y.plan.current.planId),B=I||w==="enterprise"||w==="managed",W=T.useMemo(()=>g?g.filter(x=>Ne(x)!=="managed"&&Ne(x)!=="enterprise"&&!s.includes(x.id)).sort((x,be)=>Aa.indexOf(Ne(x))-Aa.indexOf(Ne(be))):[],[g,s]),q=T.useMemo(()=>Vl(W),[W]),H=Ol(),z=T.useMemo(()=>{var te;if(W.length===0)return null;const x=W.find(de=>Ne(de)===n||de.id===n),be=W.find(de=>Ne(de)===w);return((te=x??be??W[0])==null?void 0:te.id)??null},[W,n,w]),[D,Y]=T.useState(void 0),[K,ee]=T.useState(a);K!==a&&(ee(a),Y(void 0));const E=D===void 0?z:D,pe=((R=($=g==null?void 0:g.find(x=>Ne(x)==="enterprise"))==null?void 0:$.metadata)==null?void 0:R.contact_url)??Wn,ae=x=>{C.mutate({planId:x.id,interval:h},{onSuccess:()=>{u.capture(ke.PLAN_DOWNGRADED,{plan_name:_e(x.name),interval:h,previous_plan_name:P?_e(P.name):void 0}),c({type:"success",message:p("upgradeDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeDowngradeError")})})},ce=()=>{y&&C.mutate({planId:y.plan.current.planId,interval:y.plan.current.interval},{onSuccess:()=>{u.capture(ke.PLAN_DOWNGRADE_CANCELLED,{plan_name:P?_e(P.name):y.plan.current.planId}),c({type:"success",message:p("upgradeCancelDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeCancelDowngradeError")})})};return d?o.jsx(Fe,{open:a,onOpenChange:e,size:"md","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:o.jsx(ma,{})}):o.jsx(Fe,{open:a,onOpenChange:e,size:"xl","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:o.jsxs("div",{className:"bpb-upgrade",children:[o.jsx("h2",{className:"bpb-upgrade__title",children:p("upgradeDialogTitle")}),o.jsx("div",{className:"bpb-upgrade__toggle",children:o.jsx(Es,{"aria-label":p("dashboardBillingPeriod"),value:h,onChange:A,options:[{value:"month",label:p("upgradeMonthly")},{value:"year",label:p("upgradeAnnual"),badge:q>0?p("upgradeSaveBadge",{savings:q}):void 0}]})}),o.jsxs("div",{className:"bpb-upgrade__grid",children:[N&&[0,1,2].map(x=>o.jsxs("div",{className:"bpb-plan-card","aria-hidden":!0,children:[o.jsx(ue,{width:120,height:22}),o.jsx(ue,{width:90,height:40}),o.jsx(ue,{width:"100%",height:36,rounded:!0}),o.jsx(ue,{width:"100%",height:140})]},x)),W.map((x,be)=>{var Dt,Et;const te=Ne(x),de=zl(x,h),me=jl(x,h),ne=(((Dt=x.prices.month)==null?void 0:Dt.amount)??0)<=0,ve=te===w,ie=ve&&(w==="community"||h===S),Le=te===w&&w!=="community"&&h!==S,da=!!F&&x.id===F&&!ie,Na=w!==void 0&&Aa.indexOf(te)<Aa.indexOf(w),xe=(te===n||x.id===n)&&!ie,Re=ve&&O?"cancel_downgrade":ie?"current":Le?"switch_interval":da?"next":Na?"downgrade":"upgrade",It=be>0?W[be-1]:void 0,At=i[te]??Ht[te],$a=x.features.conversation_sessions,Ha=Rt(v,x,h),Ya=x.features.ai_spend,_n=Ya!==void 0?p("planFeatureAiUsageIncluded",{amount:se(Ya/qe,(de==null?void 0:de.currency)??"usd",0)}):void 0,hr=Ya!==void 0&&$a?p("planFeatureDescAiUsageIncluded",{rate:se(Ya/$a/qe,(de==null?void 0:de.currency)??"usd",2)}):void 0,mr={...Object.fromEntries(Object.entries(l??{}).map(([je,$e])=>[je,{description:$e}])),..._n!==void 0?{"AI usage included":{label:_n,description:(l==null?void 0:l["AI usage included"])??hr}}:{}},Pt=C.isPending&&(Re==="downgrade"&&((Et=C.variables)==null?void 0:Et.planId)===x.id||Re==="cancel_downgrade"),Pe=_e(x.name),Ca=!H||E===x.id,xt=me!==null&&de?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-plan-card__currency",children:at(de.currency)}),o.jsx("span",{className:"bpb-plan-card__amount",children:Math.round(me)}),o.jsx("span",{className:"bpb-plan-card__per",children:p("upgradePerMonthSuffix",{currency:de.currency.toUpperCase()})})]}):o.jsx("span",{className:"bpb-plan-card__amount",children:se(0,"usd",0)});return o.jsxs("div",{className:Z("bpb-plan-card",xe&&"bpb-plan-card--highlighted bpb-glow",H&&"bpb-plan-card--accordion",H&&Ca&&"is-expanded"),"data-plan-id":x.id,children:[H?o.jsxs("button",{type:"button",className:"bpb-plan-card__summary","aria-expanded":Ca,onClick:()=>Y(Ca?null:x.id),children:[o.jsxs("span",{className:"bpb-plan-card__summary-text",children:[o.jsxs("span",{className:"bpb-plan-card__name",children:[Pe,xe&&o.jsx(nt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("span",{className:"bpb-plan-card__price",children:xt})]}),o.jsx("span",{className:Z("bpb-plan-card__feature-caret",Ca&&"is-open"),"aria-hidden":!0,children:o.jsx(Pa,{size:16})})]}):o.jsxs("div",{className:"bpb-plan-card__header",children:[o.jsxs("h3",{className:"bpb-plan-card__name",children:[Pe,xe&&o.jsx(nt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("p",{className:"bpb-plan-card__tagline",children:p(Ns[Ne(x)])}),o.jsx("div",{className:"bpb-plan-card__price",children:xt})]}),Ca&&o.jsxs(o.Fragment,{children:[H&&o.jsx("p",{className:"bpb-plan-card__tagline",children:p(Ns[Ne(x)])}),$a!==void 0&&o.jsxs("div",{className:"bpb-plan-card__allowance",children:[o.jsxs("div",{className:"bpb-plan-card__metric",children:[o.jsx("span",{className:"bpb-plan-card__metric-value",children:fe($a)}),o.jsx("span",{className:"bpb-plan-card__metric-unit",children:p(ne?"conversationsUnit":"conversationsPerMonth")})]}),Ha?o.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeThenPer",{price:se(Ha.amount,Ha.currency,0),packSize:fe(Ha.packSize)})}):o.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeNoTopup")})]}),Re==="current"&&o.jsx(Se,{variant:"outline",block:!0,disabled:!0,children:p("upgradeCurrentPlan")}),Re==="next"&&o.jsx(Se,{variant:"outline",block:!0,disabled:!0,children:p("upgradeNextPlan")}),Re==="cancel_downgrade"&&o.jsx(Se,{variant:"primary",block:!0,loading:Pt,onClick:ce,children:p("upgradeCancelDowngrade")}),Re==="downgrade"&&o.jsx(Se,{variant:"outline",block:!0,disabled:B||C.isPending,loading:Pt,onClick:()=>ae(x),children:p("upgradeDowngrade")}),Re==="switch_interval"&&o.jsx(Se,{variant:"primary",block:!0,disabled:B||C.isPending,title:B?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(ke.PLAN_UPGRADE_INITIATED,{plan_name:_e(x.name),interval:h,current_plan_name:P?_e(P.name):void 0}),t(x.id,h)},children:p(h==="year"?"upgradeSwitchToAnnual":"upgradeSwitchToMonthly")}),Re==="upgrade"&&o.jsx(Se,{variant:xe?"accent":"primary",block:!0,disabled:B||C.isPending,title:B?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(ke.PLAN_UPGRADE_INITIATED,{plan_name:_e(x.name),interval:h,current_plan_name:P?_e(P.name):void 0}),t(x.id,h)},children:p("upgradeUpgrade")}),o.jsx(Ul,{features:At,previousPlanName:It?_e(It.name):void 0,overrides:mr,isMobile:H})]})]},x.id)})]}),o.jsxs("p",{className:"bpb-upgrade__footer",children:[p("upgradeFooterEnterprise")," ",o.jsx("a",{href:pe,target:"_blank",rel:"noopener noreferrer",children:p("upgradeContactUs")})," ",p("upgradeFooterAboutEnterprise")," ",o.jsx("a",{href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:"botpress.com/pricing"}),"."]})]})})},Qn='-apple-system, "ui-sans-serif", "system-ui", "Segoe UI", Helvetica, Arial, sans-serif',Xn="14px",Fs="10px";function er(a){return a?{theme:"night",variables:{fontFamily:Qn,fontSizeBase:Xn,borderRadius:Fs,colorPrimary:"#ececec",colorBackground:"#1c1c1c",colorText:"#f9f9f9",colorTextSecondary:"#b4b4b4",colorTextPlaceholder:"#9b9b9b",colorDanger:"#ff8583"},rules:{".Input":{backgroundColor:"#212121",border:"1px solid rgba(255,255,255,0.12)",boxShadow:"none",color:"#f9f9f9"},".Input:focus":{border:"1px solid rgba(255,255,255,0.3)",boxShadow:"none"},".Label":{color:"#ececec",fontWeight:"500",fontSize:"12px"},".Error":{color:"#ff8583"},".Tab":{border:"1px solid rgba(255,255,255,0.12)",boxShadow:"none"}}}:{theme:"stripe",variables:{fontFamily:Qn,fontSizeBase:Xn,borderRadius:Fs,colorPrimary:"#0d0d0d",colorBackground:"#f7f7f7",colorText:"#0d0d0d",colorTextSecondary:"#5d5d5d",colorTextPlaceholder:"#8f8f8f",colorDanger:"#e02e2a"},rules:{".Input":{backgroundColor:"#f7f7f7",border:"1px solid transparent",boxShadow:"none",color:"#0d0d0d"},".Input:focus":{backgroundColor:"#fff",border:"1px solid #0d0d0d",boxShadow:"none"},".Label":{color:"#5d5d5d",fontWeight:"500",fontSize:"12px"},".Error":{color:"#e02e2a"},".Tab":{border:"1px solid #0d0d0d1a",boxShadow:"none",backgroundColor:"#f7f7f7"},".Tab--selected":{border:"1px solid #0d0d0d",backgroundColor:"#fff"},".Block":{backgroundColor:"#f9f9f9",boxShadow:"none"}}}}function ar(a){return{base:{fontFamily:Qn,fontSize:Xn,color:a?"#f9f9f9":"#0d0d0d","::placeholder":{color:a?"#9b9b9b":"#8f8f8f"}},invalid:{color:a?"#ff8583":"#e02e2a"}}}const Zl={pt:"pt-BR",es:"es-419"};function tr(a){const e=a.split("-")[0]??a;return Zl[e]??a}const ql={address:"address",name:"address",taxId:"taxId",payment:"payment"};function Ms(a,e){var r;const t=(r=a==null?void 0:a.metadata)==null?void 0:r.errors;if(!(t!=null&&t.length))return{general:(a==null?void 0:a.message)||e};const n={};for(const s of t)s.message&&(n[ql[s.scope??""]??"general"]=s.message);return Object.keys(n).length>0?n:{general:(a==null?void 0:a.message)||e}}function nn(a){const e=new Date(a);if(Number.isNaN(e.getTime()))return!1;const t=new Date;return t.setFullYear(t.getFullYear()+2),e>t}function Os(a){const e=new Date(a);return new Date(e.getUTCFullYear(),e.getUTCMonth()+1,0).toISOString()}const Wl=4,Gl=({plan:a,interval:e,preview:t,isLoadingPreview:n,isPreviewError:r,canSubscribe:s,isSubmitting:i,submitError:l,onSubscribe:d})=>{var Y,K,ee,E,pe;const{locale:c}=X(),{t:u}=ge(),{data:p}=Sa(),h=((Y=a==null?void 0:a.prices.month)==null?void 0:Y.currency)??((K=a==null?void 0:a.prices.year)==null?void 0:K.currency)??"usd",m=a==null?void 0:a.features.conversation_sessions,g=a&&Ne(a)==="community"?u("conversationsUnit"):u("conversationsPerMonth"),N=a?Rt(p,a,e):null,v=(t==null?void 0:t.costs.immediate.amountDue)??0,y=(t==null?void 0:t.costs.immediate.accountBalance)??0,_=(t==null?void 0:t.costs.nextCycle.total)??0,C=t!=null&&t.nextBillingDate?ms(t.nextBillingDate,1):null,I=C&&!nn(C)?Je(C,c):null,A=a?Ht[Ne(a)].slice(0,Wl):[],S=a==null?void 0:a.features.ai_spend,P=S!==void 0?u("planFeatureAiUsageIncluded",{amount:se(S/qe,h,0)}):void 0,w=a?((ee=a.prices[e])==null?void 0:ee.amount)??0:0,F=(t==null?void 0:t.costs.immediate.lineItems)??[],O=F.filter(ae=>ae.type==="discount"),B=F.filter(ae=>ae.type==="proration_credit"||ae.type==="proration_charge").reduce((ae,ce)=>ae+ce.amount,0),W=!!(t!=null&&t.subscription.plan.effectiveDate),q=((E=a==null?void 0:a.prices.month)==null?void 0:E.amount)??0,H=((pe=a==null?void 0:a.prices.year)==null?void 0:pe.amount)??0,z=e==="year"&&q>0&&H>0?Math.round(q*12-H):0,D=Math.round(z/12);return o.jsxs("div",{className:"bpb-summary-wrap",children:[o.jsxs("div",{className:"bpb-summary bpb-glow",children:[o.jsx("h3",{className:"bpb-summary__title",children:a?`${_e(a.name)} plan`:o.jsx(ue,{width:140,height:24})}),m!==void 0&&o.jsxs("div",{className:"bpb-summary__metric",children:[o.jsx("span",{className:"bpb-summary__metric-value",children:fe(m)}),o.jsx("span",{className:"bpb-summary__metric-unit",children:g}),N&&o.jsx("span",{className:"bpb-summary__metric-pack",children:u("orderThen",{price:se(N.amount,N.currency,0),packSize:fe(N.packSize)})})]}),A.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"bpb-summary__features-label",children:u("orderTopFeatures")}),o.jsx("ul",{className:"bpb-summary__features",children:A.map(ae=>{const ce=tn(ae),U=$t[ae],$=ae==="AI usage included"?P??(U!==void 0?u(U.label):ae):U!==void 0?u(U.label):ae;return o.jsxs("li",{children:[o.jsx(ce,{size:16,className:"bpb-summary__feature-icon"}),o.jsx("span",{children:$})]},ae)})})]}),o.jsx("hr",{className:"bpb-summary__divider"}),n&&o.jsxs("div",{className:"bpb-summary__lines","aria-busy":"true",children:[o.jsx(ue,{height:16}),o.jsx(ue,{height:16}),o.jsx(ue,{height:20})]}),r&&o.jsx("p",{role:"alert",className:"bpb-summary__error",children:u("orderPreviewError")}),t&&!n&&W&&o.jsxs("div",{className:"bpb-summary__lines",children:[o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:I?u("orderPlanFromDate",{plan:a?_e(a.name):"",date:I}):`${a?_e(a.name):""} plan`}),o.jsxs("span",{className:"bpb-summary__line-amount",children:[se(_,h),u(e==="year"?"perYear":"perMonth")]})]}),o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:o.jsx(st,{label:u("orderProratedToday"),children:u("orderProratedTodayDesc")})}),o.jsx("span",{className:"bpb-summary__line-amount",children:se(v,h)})]}),o.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[o.jsx("span",{children:u("orderDueToday")}),o.jsx("span",{children:se(v,h)})]}),B<0&&o.jsx("p",{className:"bpb-summary__addon-note",children:u("orderCreditTowardNext",{amount:se(Math.abs(B),h)})})]}),t&&!n&&!W&&o.jsxs("div",{className:"bpb-summary__lines",children:[o.jsxs("div",{className:"bpb-summary__line",children:[o.jsxs("span",{className:"bpb-summary__line-label",children:[a?_e(a.name):""," plan (",u(e==="year"?"orderIntervalAnnual":"orderIntervalMonthly"),")"]}),o.jsxs("span",{className:"bpb-summary__line-amount",children:[se(w,h),u(e==="year"?"perYear":"perMonth")]})]}),O.map((ae,ce)=>o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:ae.description}),o.jsx("span",{className:"bpb-summary__line-amount",children:se(ae.amount,h)})]},`${ae.id}-${ce}`)),B!==0&&o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:o.jsx(st,{label:B<0?u("orderCreditUnusedTime"):u("orderAdjustUnusedTime"),children:B<0?u("orderCreditUnusedTimeDesc"):u("orderAdjustUnusedTimeDesc")})}),o.jsx("span",{className:"bpb-summary__line-amount",children:se(B,h)})]}),y!==0&&o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:u("orderAccountCredit")}),o.jsx("span",{className:"bpb-summary__line-amount",children:se(y,h)})]}),o.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[o.jsx("span",{children:u("orderDueToday")}),o.jsx("span",{children:se(v,h)})]}),B<0&&v===0&&o.jsx("p",{className:"bpb-summary__addon-note",children:u("orderBalanceAsCredit",{amount:se(Math.abs(B),h)})})]}),z>0&&o.jsxs("div",{className:"bpb-summary__savings",children:[o.jsx(Yt,{size:18,className:"bpb-summary__savings-icon"}),o.jsx("span",{children:u("orderSavingsNote",{monthlySavings:se(D,h,0),yearlySavings:se(z,h,0)})})]}),o.jsx(Se,{variant:"primary",size:"lg",block:!0,className:"bpb-summary__cta",disabled:!s,loading:i,onClick:d,children:u(r?"orderPreviewUnavailable":"orderSubscribe")}),l&&o.jsx("p",{role:"alert",className:"bpb-summary__submit-error",children:l})]}),o.jsxs("p",{className:"bpb-summary__fineprint",children:[u(e==="month"?"orderRenewsMonthly":"orderRenewsAnnually"),t&&o.jsxs(o.Fragment,{children:[" ",I?u("orderChargedStarting",{amount:se(_,h),period:u(e==="month"?"perMonthLong":"perYearLong"),date:I}):u("orderChargedNoDate",{amount:se(_,h),period:u(e==="month"?"perMonthLong":"perYearLong")})]})," ",u("orderCancelNote")]})]})},Kl=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE"],Rl={CA:[{type:"ca_bn",label:"CA BN",description:"Canadian BN"},{type:"ca_gst_hst",label:"CA GST/HST",description:"Canadian GST/HST number"},{type:"ca_qst",label:"CA QST",description:"Canadian QST number (Québec)"},{type:"ca_pst_bc",label:"CA PST-BC",description:"Canadian PST number (British Columbia)"},{type:"ca_pst_mb",label:"CA PST-MB",description:"Canadian PST number (Manitoba)"},{type:"ca_pst_sk",label:"CA PST-SK",description:"Canadian PST number (Saskatchewan)"}],US:[{type:"us_ein",label:"US EIN",description:"United States EIN"}],GB:[{type:"eu_vat",label:"XI VAT",description:"Northern Ireland VAT number"},{type:"gb_vat",label:"GB VAT",description:"United Kingdom VAT number"}],AU:[{type:"au_abn",label:"AU ABN",description:"Australian Business Number"},{type:"au_arn",label:"AU ARN",description:"Australian Taxation Office Reference Number"}],NZ:[{type:"nz_gst",label:"NZ GST",description:"New Zealand GST number"}],IN:[{type:"in_gst",label:"IN GST",description:"Indian GST number"}],JP:[{type:"jp_cn",label:"JP CN",description:"Japanese Corporate Number"},{type:"jp_rn",label:"JP RN",description:"Japanese Registered Foreign Businesses' Registration Number"},{type:"jp_trn",label:"JP TRN",description:"Japanese Tax Registration Number"}],BR:[{type:"br_cnpj",label:"BR CNPJ",description:"Brazilian CNPJ number"},{type:"br_cpf",label:"BR CPF",description:"Brazilian CPF number"}],MX:[{type:"mx_rfc",label:"MX RFC",description:"Mexican RFC number"}],CH:[{type:"ch_vat",label:"CH VAT",description:"Switzerland VAT number"},{type:"ch_uid",label:"CH UID",description:"Switzerland UID number"}],AE:[{type:"ae_trn",label:"AE TRN",description:"United Arab Emirates TRN"}],SG:[{type:"sg_gst",label:"SG GST",description:"Singaporean GST number"},{type:"sg_uen",label:"SG UEN",description:"Singaporean UEN"}],ZA:[{type:"za_vat",label:"ZA VAT",description:"South African VAT number"}],ES:[{type:"es_cif",label:"ES CIF",description:"Spanish NIF number"}],BG:[{type:"bg_uic",label:"BG UIC",description:"Bulgaria Unified Identification Code"}],HR:[{type:"hr_oib",label:"HR OIB",description:"Croatian Personal Identification Number"}],DE:[{type:"de_stn",label:"DE STN",description:"German Tax Number (Steuernummer)"}],HU:[{type:"hu_tin",label:"HU TIN",description:"Hungary tax number (adószám)"}],RO:[{type:"ro_tin",label:"RO TIN",description:"Romanian tax ID number"}],SI:[{type:"si_tin",label:"SI TIN",description:"Slovenia tax number (davčna številka)"}]},$l=[{type:"eu_vat",label:"EU VAT",description:"European VAT number"}];function Bs(a){if(!a)return[];const e=a.toUpperCase(),t=Rl[e]??[];return Kl.includes(e)?[...$l,...t]:t}const rn=({label:a,invalid:e,className:t,id:n,...r})=>a?o.jsxs("label",{className:Z("bpb-input",t),children:[o.jsx("span",{className:"bpb-input__label",children:a}),o.jsx("input",{className:Z("bpb-input__field bpb-input__field--labeled",e&&"bpb-input__field--invalid"),id:n,"aria-invalid":e||void 0,...r})]}):o.jsx("input",{className:Z("bpb-input__field",e&&"bpb-input__field--invalid",t),id:n,"aria-invalid":e||void 0,...r}),nr=({label:a,className:e,children:t,...n})=>o.jsxs("label",{className:Z("bpb-input",e),children:[a&&o.jsx("span",{className:"bpb-input__label",children:a}),o.jsxs("span",{className:"bpb-input__select-wrap",children:[o.jsx("select",{className:Z("bpb-input__field bpb-input__field--select",a&&"bpb-input__field--labeled"),...n,children:t}),o.jsx(Pa,{size:16,className:"bpb-input__chevron"})]})]}),Hl=({plan:a,interval:e,onChange:t})=>{const{t:n}=ge(),r=a.prices.month,s=a.prices.year,i=r&&s&&r.amount>0?Math.round((1-s.amount/(r.amount*12))*100):0;return o.jsxs("section",{className:"bpb-checkout__section",children:[o.jsx("h3",{className:"bpb-checkout__section-title",children:n("checkoutPlanDetails")}),o.jsxs("div",{className:"bpb-interval-cards",role:"radiogroup","aria-label":n("billingIntervalLabel"),children:[r&&o.jsxs("button",{type:"button",role:"radio","aria-checked":e==="month",className:Z("bpb-interval-card",e==="month"&&"bpb-interval-card--selected"),onClick:()=>t("month"),children:[o.jsx("span",{className:"bpb-interval-card__title",children:n("checkoutMonthlyBilling")}),o.jsxs("span",{className:"bpb-interval-card__price",children:[se(r.amount,r.currency,0)," ",n("perMonth")]})]}),s&&o.jsxs("button",{type:"button",role:"radio","aria-checked":e==="year",className:Z("bpb-interval-card",e==="year"&&"bpb-interval-card--selected"),onClick:()=>t("year"),children:[o.jsxs("span",{className:"bpb-interval-card__title",children:[n("checkoutAnnualBilling"),i>0&&o.jsx(nt,{children:n("checkoutSaveBadge",{savings:i})})]}),o.jsxs("span",{className:"bpb-interval-card__price",children:[se(s.amount/12,s.currency,0)," ",n("perMonth")]})]})]})]})},Us=({number:a,title:e,onEdit:t})=>{const{t:n}=ge();return o.jsxs("div",{className:"bpb-step__header",children:[t?o.jsxs("button",{type:"button",className:"bpb-step__title bpb-step__title--button",onClick:t,children:[a,". ",e]}):o.jsxs("h3",{className:"bpb-step__title",children:[a,". ",e]}),t&&o.jsx("button",{type:"button",className:"bpb-step__edit",onClick:t,children:n("edit")})]})},Yl=({stepNumber:a,savedCard:e,isDark:t,tab:n,onTabChange:r,onPaymentChange:s,error:i})=>{const{t:l}=ge(),[d,c]=T.useState(!1),u=n==="new"||!e;return o.jsxs("section",{className:"bpb-step",children:[o.jsx(Us,{number:a,title:l("checkoutPaymentMethodTitle")}),e&&o.jsxs("div",{className:"bpb-pay-tabs",role:"tablist","aria-label":l("checkoutPaymentMethodTitle"),children:[o.jsxs("button",{type:"button",role:"tab","aria-selected":n==="saved",className:Z("bpb-pay-tab",n==="saved"&&"bpb-pay-tab--selected"),onClick:()=>r("saved"),children:[o.jsx(Kn,{size:16}),l("checkoutSavedCardTab")]}),o.jsxs("button",{type:"button",role:"tab","aria-selected":n==="new",className:Z("bpb-pay-tab",n==="new"&&"bpb-pay-tab--selected"),onClick:()=>r("new"),children:[o.jsx(Kn,{size:16}),l("checkoutNewCardTab")]})]}),e&&n==="saved"&&o.jsxs("div",{className:"bpb-saved-card",children:[o.jsx(Yn,{brand:e.brand}),o.jsxs("span",{className:"bpb-saved-card__number",children:[o.jsx("span",{className:"bpb-saved-card__brand",children:e.brand})," •••• ",e.lastFour]}),o.jsxs("span",{className:"bpb-saved-card__exp",children:[String(e.expMonth).padStart(2,"0"),"/",String(e.expYear).slice(-2)]})]}),u&&o.jsxs("div",{className:"bpb-payment-element",children:[!d&&o.jsx("div",{className:"bpb-payment-element__skeleton",children:o.jsx(ue,{height:48})}),o.jsx("div",{className:Z("bpb-card-element",!d&&"bpb-payment-element--hidden"),children:o.jsx(Me.CardElement,{options:{style:ar(t),hidePostalCode:!0},onReady:()=>c(!0),onChange:p=>s(p.complete)})})]}),i&&o.jsx("p",{role:"alert",className:"bpb-step__field-error",children:i})]})},Jl=({stepNumber:a,existingAddress:e,customerName:t,isLoading:n,editing:r,onEdit:s,onCancelEdit:i,onReady:l,onCountryChange:d,country:c,isBusiness:u,onIsBusinessChange:p,businessName:h,onBusinessNameChange:m,taxType:g,onTaxTypeChange:N,taxValue:v,onTaxValueChange:y,addressError:_,taxIdError:C})=>{const{t:I}=ge(),[A,S]=T.useState(!1),P=r||!e,w=Bs(c),F=w.find(O=>O.type===g);return o.jsxs("section",{className:"bpb-step",children:[o.jsx(Us,{number:a,title:I("checkoutBillingAddressTitle")}),n?o.jsx(ue,{height:72}):P?o.jsxs("div",{className:"bpb-payment-element",children:[!A&&o.jsxs("div",{className:"bpb-payment-element__skeleton",children:[o.jsx(ue,{height:48}),o.jsx(ue,{height:48})]}),o.jsx("div",{className:Z(!A&&"bpb-payment-element--hidden"),children:o.jsx(Me.AddressElement,{options:{mode:"billing",display:{name:"full"},autocomplete:{mode:"disabled"},defaultValues:e?{name:t??void 0,address:{line1:e.lineOne,line2:e.lineTwo,city:e.city,state:e.state,postal_code:e.postalCode,country:e.country}}:void 0},onReady:()=>{S(!0),l()},onChange:O=>{d(O.value.address.country||void 0)}})}),i&&r&&o.jsx("button",{type:"button",className:"bpb-address-cancel",onClick:i,children:I("checkoutCancelEdit")})]}):o.jsxs("div",{className:"bpb-address-card",children:[o.jsxs("div",{className:"bpb-address-card__lines",children:[t&&o.jsx("span",{className:"bpb-address-card__name",children:t}),o.jsxs("span",{children:[e.lineOne,e.lineTwo?`, ${e.lineTwo}`:""]}),o.jsxs("span",{children:[e.city," ",e.state??""," ",e.postalCode," ",e.country]})]}),o.jsx("button",{type:"button",className:"bpb-link-button",onClick:s,children:I("checkoutUpdateAddress")})]}),_&&o.jsx("p",{role:"alert",className:"bpb-step__field-error",children:_}),o.jsxs("label",{className:"bpb-checkbox",children:[o.jsx("input",{type:"checkbox",checked:u,onChange:O=>{p(O.target.checked),O.target.checked&&!g&&w[0]&&N(w[0].type)}}),o.jsx("span",{children:I("checkoutIsBusiness")})]}),u&&o.jsxs("div",{className:"bpb-business-fields",children:[o.jsx("h4",{className:"bpb-step__subtitle",children:I("checkoutBusinessDetails")}),o.jsx(rn,{placeholder:I("checkoutBusinessNamePlaceholder"),value:h,onChange:O=>m(O.target.value),autoComplete:"organization"}),w.length>0?o.jsxs(o.Fragment,{children:[o.jsx(nr,{"aria-label":I("checkoutTaxIdTypeLabel"),value:g,onChange:O=>N(O.target.value),children:w.map(O=>o.jsxs("option",{value:O.type,children:[O.label," — ",O.description]},O.type))}),o.jsx(rn,{placeholder:F?F.description:I("checkoutTaxIdNumberPlaceholder"),value:v,onChange:O=>y(O.target.value),inputMode:"text"}),C&&o.jsx("p",{role:"alert",className:"bpb-step__field-error",children:C})]}):o.jsx("p",{className:"bpb-business-fields__note",children:I(c?"checkoutNoTaxRequired":"checkoutSelectCountryForTax")})]})]})},Ql=({planId:a,initialInterval:e,onSuccess:t})=>{var Pt;const n=Me.useStripe(),r=Me.useElements(),{email:s,toast:i,analytics:l,isDark:d}=X(),{t:c}=ge(),[u,p]=T.useState(e),[h,m]=T.useState("payment"),[g,N]=T.useState(null),[v,y]=T.useState(!1),[_,C]=T.useState(!1),[I,A]=T.useState(!1),[S,P]=T.useState(void 0),[w,F]=T.useState(!1),[O,B]=T.useState(""),[W,q]=T.useState(""),[H,z]=T.useState(""),[D,Y]=T.useState(!1),[K,ee]=T.useState({}),[E,pe]=T.useState(!1),ae=On(),{data:ce}=Ze(),{data:U}=Be(),{data:$,isLoading:R}=En(),{data:x,isLoading:be,isError:te}=Ln(),de=ce==null?void 0:ce.find(Pe=>Pe.id===a),me=((Pt=$==null?void 0:$.paymentMethod)==null?void 0:Pt.card)??null,ne=(x==null?void 0:x.address)??null;T.useEffect(()=>{g===null&&!R&&$!==void 0&&N(me?"saved":"new")},[g,R,$,me]),T.useEffect(()=>{S===void 0&&ne&&P(ne.country)},[S,ne]);const ve=T.useMemo(()=>({plan:{planId:a,interval:u}}),[a,u]),ie=Dn(ve),Le=Bn(),da=Un(),Na=zn(),xe=de?_e(de.name):"",Re=g==="new"||!me,It=_||!ne,At=Re?v:!!me,$a=It?I:!0;T.useEffect(()=>{m(At?"address":"payment")},[At]),T.useEffect(()=>{l.capture(ke.CHECKOUT_STEP_VIEWED,{plan_name:xe,interval:u,step:h})},[l,h]);const Ha=Pe=>{Pe!==u&&l.capture(ke.CHECKOUT_INTERVAL_CHANGED,{plan_name:xe,interval:Pe}),p(Pe)},Ya=Pe=>{l.capture(ke.PAYMENT_METHOD_SELECTED,{method:Pe==="saved"?"saved_card":"new_card"}),N(Pe)},_n=Pe=>{y(Pe),pe(!1)},hr=!!n&&!!r&&!!de&&!be&&!te&&!ie.isError&&!!ie.data&&At&&$a&&!D,mr=async()=>{var Ca,xt,Dt,Et;if(!n||!r||!de||be||te)return;Y(!0),ee({});const Pe=(je,$e)=>l.capture(ke.CHECKOUT_ERROR,{plan_name:xe,interval:u,step:h,reason:je,message:$e});try{if(l.capture(ke.PAYMENT_DETAILS_CONFIRMED,{plan_name:xe,interval:u}),Re&&!E){const na=r.getElement(Me.CardElement);if(!na){ee({payment:c("checkoutCardNotReady")}),Pe("card_element_not_ready");return}const{clientSecret:gr}=await ae.mutateAsync(),{error:ca,setupIntent:Ve}=await n.confirmCardSetup(gr,{payment_method:{card:na}});if(ca){ee({payment:ca.message??c("checkoutPaymentSetupFailed")}),l.capture(ke.CHECKOUT_ERROR,{plan_name:xe,interval:u,step:h,reason:ca.code??"card_setup_failed",decline_code:ca.decline_code,message:ca.message});return}if(!(Ve!=null&&Ve.payment_method)||typeof Ve.payment_method!="string"){ee({payment:c("checkoutPaymentMethodMissing")}),Pe("payment_method_missing");return}await Le.mutateAsync({paymentMethodId:Ve.payment_method}),pe(!0)}let je,$e;if(It){const na=r.getElement("address");if(na){const{complete:gr,value:ca}=await na.getValue();if(!gr||!ca.address){ee({address:c("checkoutAddressIncomplete")}),Pe("address_incomplete");return}const{address:Ve}=ca;$e=((Ca=ca.name)==null?void 0:Ca.trim())||void 0,je={lineOne:Ve.line1??"",lineTwo:Ve.line2??void 0,city:Ve.city??"",state:Ve.state??void 0,postalCode:Ve.postal_code??"",country:Ve.country??""}}}const To=w&&O.trim()||$e||(x==null?void 0:x.name)||void 0,Nn=w&&W&&H.trim()?{type:W,value:H.trim()}:void 0,Lc=Nn?[...((x==null?void 0:x.taxIds)??[]).filter(na=>na.type!==Nn.type||na.value!==Nn.value),Nn]:x==null?void 0:x.taxIds;(je||w||To!==((x==null?void 0:x.name)??void 0))&&await da.mutateAsync({address:je??ne??void 0,name:To,taxIds:Lc});const Fc=((xt=ie.data)==null?void 0:xt.costs.immediate.amountDue)??0,Mc=((Dt=ie.data)==null?void 0:Dt.costs.nextCycle.total)??0;await Na.mutateAsync({planId:a,interval:u}),l.capture(ke.PLAN_UPGRADED,{plan_name:xe,interval:u,amount_paid:Fc,next_cycle_amount:Mc,previous_plan_name:(Et=ce==null?void 0:ce.find(na=>na.id===(U==null?void 0:U.plan.current.planId)))==null?void 0:Et.name.replace("Plan - ",""),previous_interval:U==null?void 0:U.plan.current.interval}),i({type:"success",message:c("checkoutSuccessToast")}),t()}catch(je){const $e=je instanceof Error?je:void 0;ee(Ms($e,c("checkoutGenericError"))),Pe(($e==null?void 0:$e.type)??"exception",je instanceof Error?je.message:void 0),i({type:"error",message:c("checkoutErrorToast")})}finally{Y(!1)}};return o.jsxs("div",{className:"bpb-checkout__columns",children:[o.jsxs("div",{className:"bpb-checkout__main",children:[de&&o.jsx(Hl,{plan:de,interval:u,onChange:Ha}),s&&o.jsxs("section",{className:"bpb-checkout__section",children:[o.jsx("h3",{className:"bpb-checkout__section-title",children:c("checkoutContactInfo")}),o.jsxs("div",{className:"bpb-checkout__static-field",children:[o.jsx("span",{className:"bpb-checkout__static-label",children:c("checkoutEmailLabel")}),o.jsx("span",{children:s})]})]}),o.jsx(Yl,{stepNumber:1,savedCard:me,isDark:d,tab:g??"new",onTabChange:Ya,onPaymentChange:_n,error:K.payment}),h==="address"&&o.jsx(Jl,{stepNumber:2,existingAddress:ne,customerName:(x==null?void 0:x.name)??null,isLoading:be,editing:_,onEdit:()=>C(!0),onCancelEdit:ne?()=>C(!1):void 0,onReady:()=>A(!0),onCountryChange:P,country:S,isBusiness:w,onIsBusinessChange:F,businessName:O,onBusinessNameChange:B,taxType:W,onTaxTypeChange:q,taxValue:H,onTaxValueChange:z,addressError:K.address,taxIdError:K.taxId})]}),o.jsx("div",{className:"bpb-checkout__aside",children:o.jsx(Gl,{plan:de,interval:u,preview:ie.data,isLoadingPreview:ie.isLoading,isPreviewError:ie.isError,canSubscribe:hr,isSubmitting:D,submitError:K.general??null,onSubscribe:()=>void mr()})})]})},zs=({open:a,onOpenChange:e,planId:t,interval:n,onBack:r,onSuccess:s})=>{const{stripePromise:i,isDark:l,locale:d,isOutdatedBilling:c}=X(),{t:u}=ge(),p=T.useMemo(()=>({appearance:er(l),locale:tr(d)}),[l,d]);return c?o.jsx(Fe,{open:a,onOpenChange:e,size:"md","aria-label":u("checkoutTitle"),className:"bpb-scope",children:o.jsx(ma,{})}):o.jsx(Fe,{open:a,onOpenChange:e,size:"xl","aria-label":u("checkoutTitle"),className:"bpb-scope",children:o.jsxs("div",{className:"bpb-checkout",children:[o.jsxs("header",{className:"bpb-checkout__header",children:[r&&o.jsx("button",{type:"button",className:"bpb-checkout__back","aria-label":u("checkoutBackLabel"),onClick:r,children:o.jsx(Rn,{size:18})}),o.jsx("h2",{className:"bpb-checkout__title",children:u("checkoutTitle")})]}),o.jsx(Me.Elements,{stripe:i,options:p,children:o.jsx(Ql,{planId:t,initialInterval:n,onSuccess:()=>{e(!1),s==null||s()}})})]})})},js=({value:a,onChange:e,min:t=0,max:n,step:r=1,className:s,...i})=>{const l=()=>e(Math.max(t,a-r)),d=()=>e(n===void 0?a+r:Math.min(n,a+r));return o.jsxs("div",{className:Z("bpb-stepper",s),children:[o.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Decrease ${i["aria-label"]}`,onClick:l,disabled:a<=t,children:o.jsx(xs,{size:14})}),o.jsx("span",{className:"bpb-stepper__value","aria-label":i["aria-label"],children:a}),o.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Increase ${i["aria-label"]}`,onClick:d,disabled:n!==void 0&&a>=n,children:o.jsx($n,{size:14})})]})},Vs=({title:a,body:e,ctaLabel:t,onUpgrade:n,onClose:r})=>{const{t:s}=ge();return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-upgrade-gate",children:[o.jsx(Dl,{size:28,className:"bpb-upgrade-gate__icon"}),o.jsxs("div",{className:"bpb-upgrade-gate__text",children:[o.jsx("p",{className:"bpb-upgrade-gate__title",children:a}),o.jsx("p",{className:"bpb-upgrade-gate__body",children:e})]})]}),o.jsx("div",{className:"bpb-upgrade-gate__actions",children:n?o.jsx(Se,{variant:"primary",className:"bpb-upgrade-gate__cta",onClick:n,children:t}):o.jsx(Se,{variant:"outline",onClick:r,children:s("close")})})]})},Xl=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=X(),{t:s}=ge();return r?o.jsx(Fe,{open:a,onOpenChange:e,size:"md","aria-label":s("addonsDialogTitle"),className:"bpb-scope",children:o.jsx(ma,{})}):o.jsx(Fe,{open:a,onOpenChange:e,size:"md","aria-label":s("addonsDialogTitle"),className:"bpb-scope",children:o.jsx(ed,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},ed=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var E,pe,ae,ce;const{toast:n,locale:r}=X(),{t:s}=ge(),{data:i}=Be(),{data:l}=Sa(),{data:d}=Ze(),{data:c}=Fn(),u=Kr(),[p,h]=T.useState(null),m=d==null?void 0:d.find(U=>U.id===(i==null?void 0:i.plan.current.planId)),g=(i==null?void 0:i.plan.current.interval)??"month",N=(c==null?void 0:c.addonsReadonly)??!1,v=i==null?void 0:i.plan.current.periodEnd,y=v&&!nn(v)?Je(v,r):null,_=T.useMemo(()=>{var $;if(!i||!l)return null;const U={};for(const R of l){const x=i.addons[R.id];U[R.id]=(($=x==null?void 0:x.next)==null?void 0:$.quantity)??(x==null?void 0:x.current.quantity)??0}return U},[i,l]),C=p??_,I=T.useMemo(()=>!l||!m?[]:l.flatMap(U=>{const $=Kt(U,m,g);return $?[{addon:U,price:$}]:[]}),[l,m,g]),A=!!C&&!!_&&Object.keys(C).some(U=>C[U]!==_[U]),S=I.reduce((U,{addon:$,price:R})=>U+((C==null?void 0:C[$.id])??0)*R.amount,0),P=T.useMemo(()=>m&&C?{plan:{planId:m.id,interval:g},addons:C}:null,[m,g,C]),w=Dn(P??{plan:{planId:"",interval:g}},{enabled:!!P&&A}),F=((E=m==null?void 0:m.prices[g])==null?void 0:E.currency)??"usd",O=((pe=w.data)==null?void 0:pe.costs.immediate.amountDue)??0,B=(ae=w.data)==null?void 0:ae.nextBillingDate,W=B&&!nn(B)?Je(B,r):null,q=((ce=m==null?void 0:m.prices[g])==null?void 0:ce.amount)??0,H=q+S,z=m&&C?vs(m,l,C):[],D=(U,$)=>$==="bytes"?Ia(U):fe(U),Y=(U,$)=>{const R=l==null?void 0:l.find(de=>de.id===U),x=R==null?void 0:R.increments;if(!x||$<=0)return null;const be=x.conversation_sessions??0;if(be>0)return s("addonsConvos",{n:fe(be*$)});const te=x.file_storage??0;return te>0?Ia(te*$):null},K=()=>{C&&u.mutate({addons:C},{onSuccess:()=>{n({type:"success",message:s("addonsUpdateSuccess")}),a(!1),e==null||e()},onError:()=>n({type:"error",message:s("addonsUpdateError")})})},ee=!i||!l||!d;return o.jsxs("div",{className:"bpb-manage-addons",children:[o.jsx("h2",{className:"bpb-manage-addons__title",children:s("addonsDialogTitle")}),(ee||I.length>0)&&o.jsx("p",{className:"bpb-manage-addons__subtitle",children:m?s("addonsSubtitleWithPlan",{planName:_e(m.name)}):s("addonsSubtitleGeneric")}),ee?o.jsxs("div",{className:"bpb-manage-addons__loading","aria-busy":"true",children:[o.jsx(ue,{height:56}),o.jsx(ue,{height:56})]}):I.length===0?o.jsx(Vs,{title:s("addonsRequirePaidPlanTitle"),body:s("addonsRequirePaidPlanBody"),ctaLabel:s("addonsUpgradeCta"),onUpgrade:t?()=>{a(!1),t()}:void 0,onClose:()=>a(!1)}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"bpb-addons",children:I.map(({addon:U,price:$})=>{var de;const R=((de=i==null?void 0:i.addons[U.id])==null?void 0:de.current.quantity)??0,x=(C==null?void 0:C[U.id])??0,be=x!==R?x===0?y?s("addonRemovedOnDate",{activeNow:R,date:y}):s("addonRemovedNextCycle",{activeNow:R}):y?s("addonChangedOnDate",{activeNow:R,pending:x,date:y}):s("addonChangedNextCycle",{activeNow:R,pending:x}):R>0?s("addonActiveOnly",{count:R}):null,te=Y(U.id,x);return o.jsxs("div",{className:"bpb-addon-row",children:[o.jsxs("div",{className:"bpb-addon-row__info",children:[o.jsx("span",{className:"bpb-addon-row__name",children:ha[U.id]?s(ha[U.id]):tt(U.name)}),o.jsx("span",{className:"bpb-addon-row__description",children:bs[U.id]?s(bs[U.id]):U.description}),o.jsxs("span",{className:"bpb-addon-row__price",children:[se($.amount,$.currency)," ",s("addonsEach")]}),be&&o.jsx("span",{className:Z("bpb-addon-row__status",x!==R&&"bpb-addon-row__status--changed"),children:be})]}),o.jsxs("div",{className:"bpb-addon-row__control",children:[te&&o.jsx("span",{className:"bpb-addon-row__grant",children:te}),o.jsx(js,{"aria-label":`${ha[U.id]?s(ha[U.id]):tt(U.name)} quantity`,value:x,onChange:me=>h({...C??{},[U.id]:me})})]})]},U.id)})}),z.length>0&&o.jsxs("div",{className:"bpb-manage-addons__limits",children:[o.jsx("p",{className:"bpb-manage-addons__limits-title",children:s("addonsNewLimits")}),z.map(U=>{const $={conversation_sessions:"resourceConversations",table_rows:"resourceTableRows",vector_db_storage:"resourceVectorDb",file_storage:"resourceFileStorage"}[U.key];return o.jsxs("div",{className:"bpb-manage-addons__limit-row",children:[o.jsx("span",{className:"bpb-manage-addons__limit-label",children:$?s($):U.label}),o.jsxs("span",{className:"bpb-manage-addons__limit-values",children:[o.jsx("span",{className:"bpb-manage-addons__limit-now",children:D(U.now,U.unit)}),o.jsx("span",{className:"bpb-manage-addons__limit-arrow","aria-hidden":!0,children:"→"}),o.jsx("span",{className:"bpb-manage-addons__limit-next",children:D(U.next,U.unit)})]})]},U.key)})]}),o.jsxs("div",{className:"bpb-manage-addons__totals",children:[o.jsxs("div",{className:"bpb-manage-addons__line",children:[o.jsx("span",{children:m?s("addonsPlanLine",{planName:_e(m.name)}):s("addonsGenericPlan")}),o.jsx("span",{children:se(q,F)})]}),I.map(({addon:U,price:$})=>{const R=(C==null?void 0:C[U.id])??0;return R<=0?null:o.jsxs("div",{className:"bpb-manage-addons__line",children:[o.jsxs("span",{children:[R,"×"," ",ha[U.id]?s(ha[U.id]):tt(U.name)]}),o.jsx("span",{children:se($.amount*R,F)})]},U.id)}),o.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--total",children:[o.jsx("span",{children:s(g==="year"?"addonsTotalYearly":"addonsTotalMonthly")}),o.jsxs("span",{children:[se(H,F),s(g==="year"?"perYear":"perMonth")]})]}),A&&o.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--due",children:[o.jsx("span",{children:s("addonsDueToday")}),o.jsx("span",{children:w.isLoading?"…":w.isError?"—":se(Math.max(O,0),F)})]})]}),A&&!w.isError&&o.jsxs("p",{className:"bpb-manage-addons__note",children:[O>0?s("addonsChargedNow",{amount:se(O,F)}):s("addonsNoChargeToday"),W?s("addonsRenewalWithDate",{date:W,amount:se(S,F),interval:s(g==="year"?"perYear":"perMonth")}):s("addonsRenewalNoDate",{amount:se(S,F),interval:s(g==="year"?"perYear":"perMonth")})]}),N&&o.jsx("p",{className:"bpb-manage-addons__note",role:"alert",children:s("addonsReadonlyNote")}),o.jsxs("div",{className:"bpb-manage-addons__actions",children:[o.jsx(Se,{variant:"outline",onClick:()=>a(!1),disabled:u.isPending,children:s("cancel")}),o.jsx(Se,{variant:"primary",disabled:!A||N,loading:u.isPending,onClick:K,children:s("addonsUpdateSubscription")})]})]})]})},ad=({open:a,onOpenChange:e})=>{const{isOutdatedBilling:t}=X(),{t:n}=ge();return t?o.jsx(Fe,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:o.jsx(ma,{})}):o.jsx(Fe,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:o.jsx(td,{open:a})})},td=({open:a})=>{const{locale:e,analytics:t}=X(),{t:n}=ge(),{data:r,isLoading:s,isError:i}=Zr({enabled:a}),l=(r==null?void 0:r.invoices)??[],d={paid:n("invoiceStatusPaid"),open:n("invoiceStatusDue"),draft:n("invoiceStatusDraft"),uncollectible:n("invoiceStatusUnpaid"),void:n("invoiceStatusVoid")};return o.jsxs("div",{className:"bpb-invoices",children:[o.jsx("h2",{className:"bpb-invoices__title",children:n("invoicesTitle")}),s?o.jsxs("div",{className:"bpb-invoices__loading","aria-busy":"true",children:[o.jsx(ue,{height:52}),o.jsx(ue,{height:52}),o.jsx(ue,{height:52})]}):i?o.jsx("p",{className:"bpb-invoices__empty",role:"alert",children:n("invoicesLoadError")}):l.length===0?o.jsx("p",{className:"bpb-invoices__empty",children:n("invoicesEmpty")}):o.jsx("ul",{className:"bpb-invoices__list",children:l.map(c=>o.jsxs("li",{className:"bpb-invoices__row",children:[o.jsxs("div",{className:"bpb-invoices__row-main",children:[o.jsx("span",{className:"bpb-invoices__date",children:Je(c.createdAt,e)}),o.jsx("span",{className:`bpb-invoices__status bpb-invoices__status--${c.status}`,children:d[c.status]})]}),o.jsxs("div",{className:"bpb-invoices__row-end",children:[o.jsx("span",{className:"bpb-invoices__amount",children:se(c.amount,c.currency)}),c.pdfUrl?o.jsx("a",{className:"bpb-invoices__download",href:c.pdfUrl,target:"_blank",rel:"noopener noreferrer","aria-label":n("invoicesDownloadLabel",{date:Je(c.createdAt,e)}),onClick:()=>t.capture(ke.INVOICE_DOWNLOADED,{status:c.status}),children:o.jsx(Hn,{size:16})}):o.jsx("span",{className:"bpb-invoices__download bpb-invoices__download--disabled","aria-hidden":!0,children:o.jsx(Hn,{size:16})})]})]},c.id))})]})},nd=({open:a,onOpenChange:e,onSuccess:t})=>{var m;const{stripePromise:n,isDark:r,locale:s,isOutdatedBilling:i}=X(),{t:l}=ge(),d=On(),c=(m=d.data)==null?void 0:m.clientSecret,{mutate:u,reset:p}=d;T.useEffect(()=>{a&&!i?u():p()},[a,i,u,p]);const h=T.useMemo(()=>c?{clientSecret:c,appearance:er(r),locale:tr(s)}:null,[c,r,s]);return i?o.jsx(Fe,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:o.jsx(ma,{})}):o.jsx(Fe,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:o.jsxs("div",{className:"bpb-payment-dialog",children:[o.jsx("h2",{className:"bpb-payment-dialog__title",children:l("paymentDialogTitle")}),d.isError?o.jsxs("div",{className:"bpb-payment-dialog__error",children:[o.jsx("p",{children:l("paymentSessionError")}),o.jsx(Se,{variant:"outline",onClick:()=>u(),children:l("tryAgain")})]}):!h||!c?o.jsxs("div",{className:"bpb-payment-dialog__loading","aria-busy":"true",children:[o.jsx(ue,{height:48}),o.jsx(ue,{height:120})]}):o.jsx(Me.Elements,{stripe:n,options:h,children:o.jsx(rd,{clientSecret:c,isDark:r,onSuccess:t})})]})})},rd=({clientSecret:a,isDark:e,onSuccess:t})=>{var me;const n=Me.useStripe(),r=Me.useElements(),{toast:s,analytics:i}=X(),{t:l}=ge(),{data:d,isLoading:c}=En(),{data:u,isLoading:p}=Ln(),h=Bn(),m=Un(),g=((me=d==null?void 0:d.paymentMethod)==null?void 0:me.card)??null,N=(u==null?void 0:u.address)??null,v=(u==null?void 0:u.taxIds)??[],[y,_]=T.useState(!1),[C,I]=T.useState(!1),[A,S]=T.useState(!1),[P,w]=T.useState(!1),[F,O]=T.useState(null),[B,W]=T.useState(!1),[q,H]=T.useState(!1),[z,D]=T.useState({}),[Y,K]=T.useState(N==null?void 0:N.country),[ee,E]=T.useState(v.length>0),[pe,ae]=T.useState(null),ce=pe??v.map(ne=>({type:ne.type,value:ne.value})),U=Bs(Y),$=y||!g,R=(ne,ve)=>ae(ce.map((ie,Le)=>Le===ne?{...ie,...ve}:ie)),x=()=>{var ne;return ae([...ce,{type:((ne=U[0])==null?void 0:ne.type)??"",value:""}])},be=ne=>ae(ce.filter((ve,ie)=>ie!==ne)),te=async()=>{if(!n||!r)return;const ne=r.getElement(Me.CardElement);if(ne){w(!0),O(null);try{const{error:ve,setupIntent:ie}=await n.confirmCardSetup(a,{payment_method:{card:ne}});if(ve){O(ve.message??l("paymentCardSaveError"));return}if(!(ie!=null&&ie.payment_method)||typeof ie.payment_method!="string"){O(l("paymentMethodMissing"));return}await h.mutateAsync({paymentMethodId:ie.payment_method}),i.capture(ke.PAYMENT_METHOD_UPDATED),s({type:"success",message:l("paymentCardUpdated")}),_(!1),t==null||t()}catch(ve){O(ve instanceof Error&&ve.message?ve.message:l("paymentCardGenericError"))}finally{w(!1)}}},de=async()=>{if(!r)return;const ne=r.getElement("address");if(!ne)return;const{complete:ve,value:ie}=await ne.getValue();if(!ve||!ie.address){D({address:l("paymentAddressIncomplete")});return}H(!0),D({});try{const{address:Le,name:da}=ie,Na=ce.filter(xe=>!!xe.type&&xe.value.trim()!=="").map(xe=>({type:xe.type,value:xe.value.trim()}));await m.mutateAsync({address:{lineOne:Le.line1??"",lineTwo:Le.line2??void 0,city:Le.city??"",state:Le.state??void 0,postalCode:Le.postal_code??"",country:Le.country??""},name:(da==null?void 0:da.trim())||void 0,taxIds:Na}),i.capture(ke.BILLING_ADDRESS_UPDATED),s({type:"success",message:l("paymentDetailsUpdated")}),t==null||t()}catch(Le){const da=Le instanceof Error?Le:void 0,Na=Ms(da,l("paymentAddressError"));D(Na),Na.taxId&&E(!0),s({type:"error",message:l("paymentDetailsUpdateError")})}finally{H(!1)}};return o.jsxs("div",{className:"bpb-payment-dialog__sections",children:[o.jsxs("section",{className:"bpb-payment-dialog__section",children:[o.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentMethodSection")}),c?o.jsx(ue,{height:56}):$?o.jsxs("div",{className:"bpb-payment-element",children:[!C&&o.jsx(ue,{height:48}),o.jsx("div",{className:C?"bpb-card-element":"bpb-payment-element--hidden",children:o.jsx(Me.CardElement,{options:{style:ar(e),hidePostalCode:!0},onReady:()=>I(!0),onChange:ne=>S(ne.complete)})}),F&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:F}),o.jsxs("div",{className:"bpb-payment-dialog__section-actions",children:[g&&o.jsx(Se,{variant:"ghost",onClick:()=>_(!1),disabled:P,children:l("cancel")}),o.jsx(Se,{variant:"primary",disabled:!A,loading:P,onClick:te,children:l("paymentSaveCard")})]})]}):o.jsxs("div",{className:"bpb-saved-card",children:[o.jsx(Yn,{brand:g.brand}),o.jsxs("span",{className:"bpb-saved-card__number",children:[o.jsx("span",{className:"bpb-saved-card__brand",children:g.brand})," •••• ",g.lastFour]}),o.jsxs("span",{className:"bpb-saved-card__exp",children:[String(g.expMonth).padStart(2,"0"),"/",String(g.expYear).slice(-2)]}),o.jsx("button",{type:"button",className:"bpb-link-button",onClick:()=>_(!0),children:l("paymentReplace")})]})]}),o.jsxs("section",{className:"bpb-payment-dialog__section",children:[o.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentBillingAddressSection")}),p?o.jsx(ue,{height:72}):o.jsxs("div",{className:"bpb-payment-element",children:[!B&&o.jsx(ue,{height:120}),o.jsx("div",{className:B?void 0:"bpb-payment-element--hidden",children:o.jsx(Me.AddressElement,{options:{mode:"billing",display:{name:"full"},defaultValues:N?{name:(u==null?void 0:u.name)??void 0,address:{line1:N.lineOne,line2:N.lineTwo,city:N.city,state:N.state,postal_code:N.postalCode,country:N.country}}:void 0},onReady:()=>W(!0),onChange:ne=>K(ne.value.address.country||void 0)})}),z.address&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:z.address}),o.jsxs("div",{className:"bpb-tax-section",children:[o.jsxs("button",{type:"button",className:"bpb-tax-toggle","aria-expanded":ee,onClick:()=>E(ne=>!ne),children:[o.jsx(Pa,{size:16,className:Z("bpb-tax-toggle__chevron",ee&&"bpb-tax-toggle__chevron--open")}),l("paymentTaxIds"),v.length>0&&o.jsx("span",{className:"bpb-tax-toggle__count",children:v.length})]}),ee&&o.jsxs("div",{className:"bpb-tax",children:[ce.length===0&&o.jsx("p",{className:"bpb-tax__empty",children:l("paymentTaxEmpty")}),ce.map((ne,ve)=>o.jsxs("div",{className:"bpb-tax__row",children:[o.jsxs(nr,{"aria-label":l("paymentTaxIdType"),value:ne.type,onChange:ie=>R(ve,{type:ie.target.value}),children:[o.jsx("option",{value:"",children:l("paymentTaxSelectType")}),U.map(ie=>o.jsx("option",{value:ie.type,children:ie.label},ie.type)),ne.type&&!U.some(ie=>ie.type===ne.type)&&o.jsx("option",{value:ne.type,children:ne.type})]}),o.jsx(rn,{placeholder:l("paymentTaxIdNumber"),value:ne.value,onChange:ie=>R(ve,{value:ie.target.value})}),o.jsx("button",{type:"button",className:"bpb-tax__remove","aria-label":l("paymentTaxRemove"),onClick:()=>be(ve),children:o.jsx(Xt,{size:14})})]},ve)),o.jsx("button",{type:"button",className:"bpb-link-button bpb-tax__add",onClick:x,children:l("paymentTaxAdd")}),z.taxId&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:z.taxId})]})]}),z.general&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:z.general}),o.jsx("div",{className:"bpb-payment-dialog__section-actions",children:o.jsx(Se,{variant:"primary",loading:q,onClick:de,children:l("paymentSaveBillingDetails")})})]})]})]})},Zs=(a,e,t)=>`bpb-dismissed:${a}:${e}:${t}`,qs=()=>new Date().toLocaleDateString("en-CA");function Ws(a,e,t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(Zs(a,e,t))===qs()}catch{return!1}}function Gs(a,e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(Zs(a,e,t),qs())}catch{}}var Ks={},sn={};Object.defineProperty(sn,"__esModule",{value:!0}),sn.BOT_USE_CASES=void 0,sn.BOT_USE_CASES={CUSTOMER_SUPPORT:"customer-support",BRAND_ASSISTANT:"brand-assistant",PRODUCT_RECOMMENDATION:"product-recommendation",OTHER:"other"};var on={};Object.defineProperty(on,"__esModule",{value:!0}),on.limitConfigs=void 0,on.limitConfigs={bot_configuration_bytes:{value:20480,unit:"bytes"},bot_installed_integrations_count:{value:30,unit:"count"},bot_installed_plugins_count:{value:30,unit:"count"},bot_integration_configuration_bytes:{value:20480,unit:"bytes"},bot_recurring_event_count:{value:50,unit:"count"},bot_recurring_event_payload_bytes:{value:131072,unit:"bytes"},event_definition_count:{value:20,unit:"count"},integration_channel_count:{value:10,unit:"count"},integration_channel_message_type_count:{value:20,unit:"count"},integration_identifier_count:{value:50,unit:"count"},integration_version_count:{value:200,unit:"count"},issue_event_item_payload_bytes:{value:131072,unit:"bytes"},message_payload_bytes:{value:131072,unit:"bytes"},schema_bytes:{value:102400,unit:"bytes"},state_definition_count:{value:20,unit:"count"},state_item_payload_bytes:{value:131072,unit:"bytes"},tag_definition_count:{value:50,unit:"count"},bot_integration_secret_count:{value:25,unit:"count"},files_api_query_bytes:{value:2048,unit:"bytes"},code_payload_bytes:{value:52428800,unit:"bytes"},entity_custom_properties_count:{value:50,unit:"count"}};var za={};Object.defineProperty(za,"__esModule",{value:!0}),za.objectToPrefixMap=za.prefixToObjectMap=void 0,za.prefixToObjectMap={accnt:"account",accntpf:"accountPreference",action:"action",activty:"activity",anlytic:"analytics",audit:"audit",bak:"botApiKey",bot:"bot",card:"card",cfg:"configuration",channel:"channel",conv:"conversation",devbot:"devBot",devint:"devIntegration",evt:"event",file:"file",flow:"flow",iak:"integrationApiKey",int:"integration",iface:"interface",ifver:"interfaceVersion",intver:"integrationVersion",iss:"issue",issevt:"issueEvent",kb:"knowledgeBase",limit:"limit",media:"media",msg:"message",node:"node",notif:"notification",pat:"personalAccessToken",plugin:"plugin",plugver:"pluginVersion",quota:"quota",recevt:"recurringEvent",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",archrg:"autoRechargeSetting",archtx:"autoRechargeTransaction",crgrant:"creditGrant",job:"job",pcrgrant:"pendingCreditGrant",promo:"promoCode",smgevt:"smaugEvent",usage:"usage",user:"user",webhook:"webhook",wkspace:"workspace",wksadd:"workspaceAddon",wksqtaadd:"workspaceQuotaAddition",wksplan:"workspacePlan",wrkflow:"workflow",wkspacepf:"workspacePreference",trial:"trial",evlrun:"evalRun",evlent:"evalEntry",evlres:"evalResult"},za.objectToPrefixMap={account:"accnt",accountPreference:"accntpf",action:"action",activity:"activty",analytics:"anlytic",audit:"audit",bot:"bot",botApiKey:"bak",card:"card",channel:"channel",configuration:"cfg",conversation:"conv",devBot:"devbot",devIntegration:"devint",event:"evt",file:"file",flow:"flow",integration:"int",integrationApiKey:"iak",integrationVersion:"intver",interface:"iface",interfaceVersion:"ifver",issue:"iss",issueEvent:"issevt",knowledgeBase:"kb",limit:"limit",media:"media",message:"msg",node:"node",notification:"notif",personalAccessToken:"pat",plugin:"plugin",pluginVersion:"plugver",quota:"quota",recurringEvent:"recevt",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",autoRechargeSetting:"archrg",autoRechargeTransaction:"archtx",creditGrant:"crgrant",job:"job",pendingCreditGrant:"pcrgrant",promoCode:"promo",smaugEvent:"smgevt",usage:"usage",user:"user",webhook:"webhook",workflow:"wrkflow",workspace:"wkspace",workspaceAddon:"wksadd",workspaceQuotaAddition:"wksqtaadd",workspacePlan:"wksplan",workspacePreference:"wkspacepf",trial:"trial",evalRun:"evlrun",evalEntry:"evlent",evalResult:"evlres"};var Rs={},ga={};Object.defineProperty(ga,"__esModule",{value:!0}),ga.quotaConfigsV3=ga.quotaConfigs=ga.quotaTypes=void 0,ga.quotaTypes=["invocation_timeout","invocation_calls","storage_count","bot_count","knowledgebase_vector_storage","workspace_ratelimit","table_row_count","workspace_member_count","integrations_owned_count","ai_spend","openai_spend","bing_search_spend","always_alive","indexed_file_count","file_max_size_bytes"],ga.quotaConfigs={invocation_timeout:{name:"Invocation Timeout",description:"Maximum time in milliseconds a bot can run before timing out.",default:6e4,kind:"workspace",category:"timeout",trackUsagePerBot:!1},storage_count:{name:"Storage Count",description:"Maximum number of storage bytes that can be stored.",default:5e8,kind:"workspace",category:"count",trackUsagePerBot:!0},bot_count:{name:"Bot Count",description:"Maximum number of bots that can be created.",default:5,kind:"workspace",category:"count",trackUsagePerBot:!1},workspace_member_count:{name:"Workspace Member Count",description:"Maximum number of members that can be added to a workspace.",default:3,kind:"workspace",category:"count",trackUsagePerBot:!1},knowledgebase_vector_storage:{name:"Knowledgebase Vector Storage",description:"Maximum size of knowledge base documents",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},table_row_count:{name:"Table Row Count",description:"Maximum number of rows that can be stored in a table.",default:5e3,kind:"workspace",category:"count",trackUsagePerBot:!0},invocation_calls:{name:"Messages",description:"Maximum number of messages sent to a bot in a month.",default:2e3,kind:"workspace",category:"calls",trackUsagePerBot:!0},workspace_ratelimit:{name:"Workspace Ratelimit",description:"Maximum number of API calls per second for a workspace.",default:100,kind:"workspace",category:"ratelimit",trackUsagePerBot:!1},integrations_owned_count:{name:"Owned Integrations Count",description:"Maximum number of integrations that can be created.",default:20,kind:"workspace",category:"count",trackUsagePerBot:!1},ai_spend:{name:"AI Spend",description:"Maximum amount of AI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0},openai_spend:{name:"OpenAI Spend",description:"Maximum amount of OpenAI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},bing_search_spend:{name:"Bing Search Spend",description:"Maximum amount of Bing Search spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},always_alive:{name:"Always Alive",description:"Maximum number of bots that can be in always alive mode.",default:0,kind:"workspace",category:"count",trackUsagePerBot:!1},indexed_file_count:{name:"Indexed File Count",description:"Maximum number of files that can be indexed.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},file_max_size_bytes:{name:"Max File Size",description:"Maximum size of a file in bytes.",default:1e8,kind:"workspace",category:"limit",trackUsagePerBot:!0}},ga.quotaConfigsV3={invocation_timeout:{name:"Invocation Timeout",description:"Maximum time in milliseconds a bot can run before timing out.",default:6e4,kind:"workspace",category:"timeout",trackUsagePerBot:!1},storage_count:{name:"Storage Count",description:"Maximum number of storage bytes that can be stored.",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},bot_count:{name:"Bot Count",description:"Maximum number of bots that can be created.",default:1,kind:"workspace",category:"count",trackUsagePerBot:!1},workspace_member_count:{name:"Workspace Member Count",description:"Maximum number of members that can be added to a workspace.",default:1,kind:"workspace",category:"count",trackUsagePerBot:!1},knowledgebase_vector_storage:{name:"Knowledgebase Vector Storage",description:"Maximum size of knowledge base documents",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},table_row_count:{name:"Table Row Count",description:"Maximum number of rows that can be stored in a table.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},invocation_calls:{name:"Messages",description:"Maximum number of messages sent to a bot in a month.",default:500,kind:"workspace",category:"calls",trackUsagePerBot:!0},workspace_ratelimit:{name:"Workspace Ratelimit",description:"Maximum number of API calls per second for a workspace.",default:100,kind:"workspace",category:"ratelimit",trackUsagePerBot:!1},integrations_owned_count:{name:"Owned Integrations Count",description:"Maximum number of integrations that can be created.",default:20,kind:"workspace",category:"count",trackUsagePerBot:!1},ai_spend:{name:"AI Spend",description:"Maximum amount of AI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0},openai_spend:{name:"OpenAI Spend",description:"Maximum amount of OpenAI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},bing_search_spend:{name:"Bing Search Spend",description:"Maximum amount of Bing Search spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},always_alive:{name:"Always Alive",description:"Maximum number of bots that can be in always alive mode.",default:0,kind:"workspace",category:"count",trackUsagePerBot:!1},indexed_file_count:{name:"Indexed File Count",description:"Maximum number of files that can be indexed.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},file_max_size_bytes:{name:"Max File Size",description:"Maximum size of a file in bytes.",default:1e8,kind:"workspace",category:"limit",trackUsagePerBot:!0}};var Qe={};Object.defineProperty(Qe,"__esModule",{value:!0}),Qe.billingFeatureDefs=Qe.BILLING_PLAN_IDS=Qe.ALLOWED_TRIAL_PLANS=Qe.ALLOWED_TRIAL_LENGTHS_IN_DAYS=void 0,Qe.ALLOWED_TRIAL_LENGTHS_IN_DAYS=7,Qe.ALLOWED_TRIAL_PLANS=["plus","team"],Qe.BILLING_PLAN_IDS=["community","plus","team","enterprise","managed"],Qe.billingFeatureDefs={human_in_the_loop:{name:"Human in the Loop"},ratelimit:{name:"Rate Limit"},incoming_messages_events:{name:"Incoming Messages/Events"},integration_spend:{name:"Integration Spend"},integration_subscription:{name:"Integration Subscription"},table_rows:{name:"Table Rows"},bot_count:{name:"Bot Count"},always_alive_count:{name:"Always Alive Count"},always_alive_concurrency:{name:"Always Alive Concurrency"},collaborator_count:{name:"Collaborator Count"},file_storage:{name:"File Storage"},vector_db_storage:{name:"Vector DB Storage"},saved_versions:{name:"Saved Versions"},indexed_file_count:{name:"Indexed File Count"}},function(a){var e=he&&he.__createBinding||(Object.create?function(n,r,s,i){i===void 0&&(i=s);var l=Object.getOwnPropertyDescriptor(r,s);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(n,i,l)}:function(n,r,s,i){i===void 0&&(i=s),n[i]=r[s]}),t=he&&he.__exportStar||function(n,r){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&e(r,n,s)};Object.defineProperty(a,"__esModule",{value:!0}),t(ga,a),t(Qe,a)}(Rs);var ln={};Object.defineProperty(ln,"__esModule",{value:!0}),ln.Tags=void 0,ln.Tags={bot:{},conversation:{upstream:{description:"Used for HITL as a convention. The upstream conversation ID, ie. the conversation ID of the original conversation"},downstream:{description:"Used for HITL as a convention. The downstream conversation ID, ie. the conversation ID of conversation in HITL channel"}},message:{origin:{description:'The origin location of the message in the bot, eg. "workflow://[id]/node/[id]"'},iteration:{description:"The LLMz iteration ID of the message, for tracking and debugging purposes"}},event:{},workflow:{},user:{},file:{system:{type:"boolean",description:"System files are managed by Botpress and should not be modified"},purpose:{description:'The purpose of the file, eg. "swap"'},source:{description:'The source of the file, eg. "knowledge-base"'},kbId:{description:"The ID of the knowledge base"},favicon:{description:'The favicon URL to display for the file, eg. "https://example.com/favicon.ico"'},pageUrl:{description:'The original page URL of the file, eg. "https://example.com/page"'},integrationName:{description:"The name of the integration that created the file"},webchatInjectConfigVersion:{description:"The version of the webchat inject configuration (used by the dashboard)"}},table:{system:{type:"boolean",description:"System tables are managed by Botpress and should not be modified"},"x-studio-title":{description:"Overrides the table title in the Studio"},"x-studio-readonly":{type:"boolean",description:"Prevents the table from being modified by the user in the Studio"},"x-studio-icon":{description:'Overrides the table icon in the Studio. The value can be a lucide icon URL, eg. "lucide://atom"'},"x-studio-color":{description:"Overrides the table color in the Studio."},"x-studio-folder":{description:"Groups the table in a folder in the Studio"},"x-studio-deletable":{type:"boolean",description:"Prevents the table from being deleted by the user in the Studio"}}};var Ue={};Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.KNOWLEDGE_WORKFLOW=Ue.IDENTITY_WEBSITE_WORKFLOW=Ue.IDENTITY_TEXT_WORKFLOW=Ue.ONBOARDING_DEPLOY_WORKFLOW=Ue.WEBSITE_CRAWL_WORKFLOW=void 0,Ue.WEBSITE_CRAWL_WORKFLOW="website-crawl",Ue.ONBOARDING_DEPLOY_WORKFLOW="onboarding-deploy",Ue.IDENTITY_TEXT_WORKFLOW="identity-text-workflow",Ue.IDENTITY_WEBSITE_WORKFLOW="identity-website-workflow",Ue.KNOWLEDGE_WORKFLOW="knowledge-workflow";var dn={};Object.defineProperty(dn,"__esModule",{value:!0}),dn.CANCELLATION_REASONS=void 0,dn.CANCELLATION_REASONS=["too_expensive","not_using_enough","missing_feature","switched_tool","technical_issues","support_expectations","temporary_need"];var $s={},rr={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.CREDIT_GRANT_BILLING_FEATURE_IDS=a.NON_RESETTING_BILLING_FEATURE_IDS=a.NON_ATOMIC_BILLING_FEATURE_IDS=a.ATOMIC_BILLING_FEATURE_IDS=a.BILLING_FEATURE_IDS=a.billingFeatureDefinitions=void 0,a.billingFeatureDefinitions=[{id:"incoming_messages_events",name:"Incoming Messages/Events",description:"Number of incoming messages and events processed per month",resetPeriod:"monthly",consistency:"eventual",dimensions:{botId:"Bot ID",type:"Message or Event type"}},{id:"integration_spend",name:"Integration Spend",description:"Credits spent on integrations (AI, third-party services)",resetPeriod:"monthly",consistency:"eventual",dimensions:{botId:"Bot ID",integrationName:"Integration name",integrationVersionId:"Integration version ID",actionName:"Action name"}},{id:"table_rows",name:"Table Rows",description:"Number of table rows that can be stored",resetPeriod:"never",consistency:"eventual"},{id:"bot_count",name:"Bot Count",description:"Number of bots that can be created",resetPeriod:"never",consistency:"atomic"},{id:"collaborator_count",name:"Collaborator Count",description:"Number of collaborators that can be added to workspace",resetPeriod:"never",consistency:"atomic"},{id:"file_storage",name:"File Storage",description:"Amount of file storage available",resetPeriod:"never",consistency:"eventual"},{id:"vector_db_storage",name:"Vector DB Storage",description:"Amount of vector database storage available",resetPeriod:"never",consistency:"eventual"},{id:"saved_versions",name:"Saved Versions",description:"Number of bot versions that can be saved",resetPeriod:"never",consistency:"atomic"},{id:"indexed_file_count",name:"Indexed File Count",description:"The number of indexed files in the files api",resetPeriod:"never",consistency:"eventual"},{id:"conversation_sessions",name:"Conversations",description:"Number of conversation sessions that can occur",resetPeriod:"monthly",consistency:"eventual"},{id:"ai_spend",name:"AI Spend",description:"Amount that is useable for AI in nano-dollars",resetPeriod:"monthly",consistency:"eventual",grantable:!0}],a.BILLING_FEATURE_IDS=a.billingFeatureDefinitions.map(e=>e.id),a.ATOMIC_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.consistency==="atomic").map(e=>e.id),a.NON_ATOMIC_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.consistency==="eventual").map(e=>e.id),a.NON_RESETTING_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.resetPeriod==="never").map(e=>e.id),a.CREDIT_GRANT_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.grantable).map(e=>e.id)})(rr);var Hs={},ot={},cn={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.AI_SPEND_PER_CONVERSATION=a.MESSAGES_PER_CONVERSATION=a.YEAR_MONTHS=a.NANO_DOLLAR_PER_CENT=a.BIG_UNLIMITED=a.SMALL_UNLIMITED=a.MB=a.GB=a.FREE_PRICE=void 0,a.FREE_PRICE=-1,a.GB=1e9,a.MB=1e6,a.SMALL_UNLIMITED=5e3,a.BIG_UNLIMITED=5e6,a.NANO_DOLLAR_PER_CENT=1e7,a.YEAR_MONTHS=12,a.MESSAGES_PER_CONVERSATION=3e4,a.AI_SPEND_PER_CONVERSATION=10*a.NANO_DOLLAR_PER_CENT})(cn);var it={},Ys={},sr={},ba={},un={},Xe={},lt={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.getParsedType=a.ZodParsedType=a.objectUtil=a.util=void 0;var e;(function(r){r.assertEqual=d=>{};function s(d){}r.assertIs=s;function i(d){throw new Error}r.assertNever=i,r.arrayToEnum=d=>{const c={};for(const u of d)c[u]=u;return c},r.getValidEnumValues=d=>{const c=r.objectKeys(d).filter(p=>typeof d[d[p]]!="number"),u={};for(const p of c)u[p]=d[p];return r.objectValues(u)},r.objectValues=d=>r.objectKeys(d).map(function(c){return d[c]}),r.objectKeys=typeof Object.keys=="function"?d=>Object.keys(d):d=>{const c=[];for(const u in d)Object.prototype.hasOwnProperty.call(d,u)&&c.push(u);return c},r.find=(d,c)=>{for(const u of d)if(c(u))return u},r.isInteger=typeof Number.isInteger=="function"?d=>Number.isInteger(d):d=>typeof d=="number"&&Number.isFinite(d)&&Math.floor(d)===d;function l(d,c=" | "){return d.map(u=>typeof u=="string"?`'${u}'`:u).join(c)}r.joinValues=l,r.jsonStringifyReplacer=(d,c)=>typeof c=="bigint"?c.toString():c})(e||(a.util=e={}));var t;(function(r){r.mergeShapes=(s,i)=>({...s,...i})})(t||(a.objectUtil=t={})),a.ZodParsedType=e.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]);const n=r=>{switch(typeof r){case"undefined":return a.ZodParsedType.undefined;case"string":return a.ZodParsedType.string;case"number":return Number.isNaN(r)?a.ZodParsedType.nan:a.ZodParsedType.number;case"boolean":return a.ZodParsedType.boolean;case"function":return a.ZodParsedType.function;case"bigint":return a.ZodParsedType.bigint;case"symbol":return a.ZodParsedType.symbol;case"object":return Array.isArray(r)?a.ZodParsedType.array:r===null?a.ZodParsedType.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?a.ZodParsedType.promise:typeof Map<"u"&&r instanceof Map?a.ZodParsedType.map:typeof Set<"u"&&r instanceof Set?a.ZodParsedType.set:typeof Date<"u"&&r instanceof Date?a.ZodParsedType.date:a.ZodParsedType.object;default:return a.ZodParsedType.unknown}};a.getParsedType=n})(lt),Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.ZodError=Xe.quotelessJson=Xe.ZodIssueCode=void 0;const Js=lt;Xe.ZodIssueCode=Js.util.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);const sd=a=>JSON.stringify(a,null,2).replace(/"([^"]+)":/g,"$1:");Xe.quotelessJson=sd;class dt extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(s){return s.message},n={_errors:[]},r=s=>{for(const i of s.issues)if(i.code==="invalid_union")i.unionErrors.map(r);else if(i.code==="invalid_return_type")r(i.returnTypeError);else if(i.code==="invalid_arguments")r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let l=n,d=0;for(;d<i.path.length;){const c=i.path[d];d===i.path.length-1?(l[c]=l[c]||{_errors:[]},l[c]._errors.push(t(i))):l[c]=l[c]||{_errors:[]},l=l[c],d++}}};return r(this),n}static assert(e){if(!(e instanceof dt))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Js.util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const r of this.issues)if(r.path.length>0){const s=r.path[0];t[s]=t[s]||[],t[s].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}Xe.ZodError=dt,dt.create=a=>new dt(a),Object.defineProperty(un,"__esModule",{value:!0});const De=Xe,xa=lt,od=(a,e)=>{let t;switch(a.code){case De.ZodIssueCode.invalid_type:a.received===xa.ZodParsedType.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case De.ZodIssueCode.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,xa.util.jsonStringifyReplacer)}`;break;case De.ZodIssueCode.unrecognized_keys:t=`Unrecognized key(s) in object: ${xa.util.joinValues(a.keys,", ")}`;break;case De.ZodIssueCode.invalid_union:t="Invalid input";break;case De.ZodIssueCode.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${xa.util.joinValues(a.options)}`;break;case De.ZodIssueCode.invalid_enum_value:t=`Invalid enum value. Expected ${xa.util.joinValues(a.options)}, received '${a.received}'`;break;case De.ZodIssueCode.invalid_arguments:t="Invalid function arguments";break;case De.ZodIssueCode.invalid_return_type:t="Invalid function return type";break;case De.ZodIssueCode.invalid_date:t="Invalid date";break;case De.ZodIssueCode.invalid_string:typeof a.validation=="object"?"includes"in a.validation?(t=`Invalid input: must include "${a.validation.includes}"`,typeof a.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${a.validation.position}`)):"startsWith"in a.validation?t=`Invalid input: must start with "${a.validation.startsWith}"`:"endsWith"in a.validation?t=`Invalid input: must end with "${a.validation.endsWith}"`:xa.util.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case De.ZodIssueCode.too_small:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at least":"more than"} ${a.minimum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at least":"over"} ${a.minimum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="bigint"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(a.minimum))}`:t="Invalid input";break;case De.ZodIssueCode.too_big:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at most":"less than"} ${a.maximum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at most":"under"} ${a.maximum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="bigint"?t=`BigInt must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly":a.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(a.maximum))}`:t="Invalid input";break;case De.ZodIssueCode.custom:t="Invalid input";break;case De.ZodIssueCode.invalid_intersection_types:t="Intersection results could not be merged";break;case De.ZodIssueCode.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case De.ZodIssueCode.not_finite:t="Number must be finite";break;default:t=e.defaultError,xa.util.assertNever(a)}return{message:t}};un.default=od;var id=he&&he.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(ba,"__esModule",{value:!0}),ba.defaultErrorMap=void 0,ba.setErrorMap=ld,ba.getErrorMap=dd;const Qs=id(un);ba.defaultErrorMap=Qs.default;let Xs=Qs.default;function ld(a){Xs=a}function dd(){return Xs}var or={};(function(a){var e=he&&he.__importDefault||function(m){return m&&m.__esModule?m:{default:m}};Object.defineProperty(a,"__esModule",{value:!0}),a.isAsync=a.isValid=a.isDirty=a.isAborted=a.OK=a.DIRTY=a.INVALID=a.ParseStatus=a.EMPTY_PATH=a.makeIssue=void 0,a.addIssueToContext=s;const t=ba,n=e(un),r=m=>{const{data:g,path:N,errorMaps:v,issueData:y}=m,_=[...N,...y.path||[]],C={...y,path:_};if(y.message!==void 0)return{...y,path:_,message:y.message};let I="";const A=v.filter(S=>!!S).slice().reverse();for(const S of A)I=S(C,{data:g,defaultError:I}).message;return{...y,path:_,message:I}};a.makeIssue=r,a.EMPTY_PATH=[];function s(m,g){const N=(0,t.getErrorMap)(),v=(0,a.makeIssue)({issueData:g,data:m.data,path:m.path,errorMaps:[m.common.contextualErrorMap,m.schemaErrorMap,N,N===n.default?void 0:n.default].filter(y=>!!y)});m.common.issues.push(v)}class i{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(g,N){const v=[];for(const y of N){if(y.status==="aborted")return a.INVALID;y.status==="dirty"&&g.dirty(),v.push(y.value)}return{status:g.value,value:v}}static async mergeObjectAsync(g,N){const v=[];for(const y of N){const _=await y.key,C=await y.value;v.push({key:_,value:C})}return i.mergeObjectSync(g,v)}static mergeObjectSync(g,N){const v={};for(const y of N){const{key:_,value:C}=y;if(_.status==="aborted"||C.status==="aborted")return a.INVALID;_.status==="dirty"&&g.dirty(),C.status==="dirty"&&g.dirty(),_.value!=="__proto__"&&(typeof C.value<"u"||y.alwaysSet)&&(v[_.value]=C.value)}return{status:g.value,value:v}}}a.ParseStatus=i,a.INVALID=Object.freeze({status:"aborted"});const l=m=>({status:"dirty",value:m});a.DIRTY=l;const d=m=>({status:"valid",value:m});a.OK=d;const c=m=>m.status==="aborted";a.isAborted=c;const u=m=>m.status==="dirty";a.isDirty=u;const p=m=>m.status==="valid";a.isValid=p;const h=m=>typeof Promise<"u"&&m instanceof Promise;a.isAsync=h})(or);var eo={};Object.defineProperty(eo,"__esModule",{value:!0});var b={},pn={};Object.defineProperty(pn,"__esModule",{value:!0}),pn.errorUtil=void 0;var ao;(function(a){a.errToObj=e=>typeof e=="string"?{message:e}:e||{},a.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(ao||(pn.errorUtil=ao={})),Object.defineProperty(b,"__esModule",{value:!0}),b.discriminatedUnion=b.date=b.boolean=b.bigint=b.array=b.any=b.coerce=b.ZodFirstPartyTypeKind=b.late=b.ZodSchema=b.Schema=b.ZodReadonly=b.ZodPipeline=b.ZodBranded=b.BRAND=b.ZodNaN=b.ZodCatch=b.ZodDefault=b.ZodNullable=b.ZodOptional=b.ZodTransformer=b.ZodEffects=b.ZodPromise=b.ZodNativeEnum=b.ZodEnum=b.ZodLiteral=b.ZodLazy=b.ZodFunction=b.ZodSet=b.ZodMap=b.ZodRecord=b.ZodTuple=b.ZodIntersection=b.ZodDiscriminatedUnion=b.ZodUnion=b.ZodObject=b.ZodArray=b.ZodVoid=b.ZodNever=b.ZodUnknown=b.ZodAny=b.ZodNull=b.ZodUndefined=b.ZodSymbol=b.ZodDate=b.ZodBoolean=b.ZodBigInt=b.ZodNumber=b.ZodString=b.ZodType=void 0,b.NEVER=b.void=b.unknown=b.union=b.undefined=b.tuple=b.transformer=b.symbol=b.string=b.strictObject=b.set=b.record=b.promise=b.preprocess=b.pipeline=b.ostring=b.optional=b.onumber=b.oboolean=b.object=b.number=b.nullable=b.null=b.never=b.nativeEnum=b.nan=b.map=b.literal=b.lazy=b.intersection=b.instanceof=b.function=b.enum=b.effect=void 0,b.datetimeRegex=so,b.custom=lo;const L=Xe,hn=ba,G=pn,f=or,M=lt;class ea{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const to=(a,e)=>{if((0,f.isValid)(e))return{success:!0,data:e.value};if(!a.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new L.ZodError(a.common.issues);return this._error=t,this._error}}};function re(a){if(!a)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:r}=a;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(i,l)=>{const{message:d}=a;return i.code==="invalid_enum_value"?{message:d??l.defaultError}:typeof l.data>"u"?{message:d??n??l.defaultError}:i.code!=="invalid_type"?{message:l.defaultError}:{message:d??t??l.defaultError}},description:r}}class oe{get description(){return this._def.description}_getType(e){return(0,M.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,M.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new f.ParseStatus,ctx:{common:e.parent.common,data:e.data,parsedType:(0,M.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if((0,f.isAsync)(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){const n={common:{issues:[],async:(t==null?void 0:t.async)??!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,M.getParsedType)(e)},r=this._parseSync({data:e,path:n.path,parent:n});return to(n,r)}"~validate"(e){var n,r;const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,M.getParsedType)(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:t});return(0,f.isValid)(s)?{value:s.value}:{issues:t.common.issues}}catch(s){(r=(n=s==null?void 0:s.message)==null?void 0:n.toLowerCase())!=null&&r.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(s=>(0,f.isValid)(s)?{value:s.value}:{issues:t.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,M.getParsedType)(e)},r=this._parse({data:e,path:n.path,parent:n}),s=await((0,f.isAsync)(r)?r:Promise.resolve(r));return to(n,s)}refine(e,t){const n=r=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(r):t;return this._refinement((r,s)=>{const i=e(r),l=()=>s.addIssue({code:L.ZodIssueCode.custom,...n(r)});return typeof Promise<"u"&&i instanceof Promise?i.then(d=>d?!0:(l(),!1)):i?!0:(l(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t=="function"?t(n,r):t),!1))}_refinement(e){return new Ke({schema:this,typeName:J.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return ta.create(this,this._def)}nullable(){return _a.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Ge.create(this)}promise(){return qa.create(this,this._def)}or(e){return ht.create([this,e],this._def)}and(e){return mt.create(this,e,this._def)}transform(e){return new Ke({...re(this._def),schema:this,typeName:J.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new vt({...re(this._def),innerType:this,defaultValue:t,typeName:J.ZodDefault})}brand(){return new dr({typeName:J.ZodBranded,type:this,...re(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new _t({...re(this._def),innerType:this,catchValue:t,typeName:J.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return Nt.create(this,e)}readonly(){return Ct.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}b.ZodType=oe,b.Schema=oe,b.ZodSchema=oe;const cd=/^c[^\s-]{8,}$/i,ud=/^[0-9a-z]+$/,pd=/^[0-9A-HJKMNP-TV-Z]{26}$/i,hd=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,md=/^[a-z0-9_-]{21}$/i,gd=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,bd=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,fd=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,yd="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let ir;const vd=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_d=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Nd=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Cd=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Sd=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,kd=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,no="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",wd=new RegExp(`^${no}$`);function ro(a){let e="[0-5]\\d";a.precision?e=`${e}\\.\\d{${a.precision}}`:a.precision==null&&(e=`${e}(\\.\\d+)?`);const t=a.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function Td(a){return new RegExp(`^${ro(a)}$`)}function so(a){let e=`${no}T${ro(a)}`;const t=[];return t.push(a.local?"Z?":"Z"),a.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function Id(a,e){return!!((e==="v4"||!e)&&vd.test(a)||(e==="v6"||!e)&&Nd.test(a))}function Ad(a,e){if(!gd.test(a))return!1;try{const[t]=a.split(".");if(!t)return!1;const n=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),r=JSON.parse(atob(n));return!(typeof r!="object"||r===null||"typ"in r&&(r==null?void 0:r.typ)!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function Pd(a,e){return!!((e==="v4"||!e)&&_d.test(a)||(e==="v6"||!e)&&Cd.test(a))}class We extends oe{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.ZodParsedType.string){const s=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(s,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.string,received:s.parsedType}),f.INVALID}const n=new f.ParseStatus;let r;for(const s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){const i=e.data.length>s.value,l=e.data.length<s.value;(i||l)&&(r=this._getOrReturnCtx(e,r),i?(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):l&&(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")fd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"email",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")ir||(ir=new RegExp(yd,"u")),ir.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"emoji",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")hd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"uuid",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")md.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"nanoid",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")cd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"cuid",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")ud.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"cuid2",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")pd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"ulid",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"url",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"regex",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?so(s).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?wd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?Td(s).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?bd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"duration",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?Id(e.data,s.version)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"ip",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="jwt"?Ad(e.data,s.alg)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"jwt",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="cidr"?Pd(e.data,s.version)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"cidr",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?Sd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"base64",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="base64url"?kd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"base64url",code:L.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):M.util.assertNever(s);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(r=>e.test(r),{validation:t,code:L.ZodIssueCode.invalid_string,...G.errorUtil.errToObj(n)})}_addCheck(e){return new We({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...G.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...G.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...G.errorUtil.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...G.errorUtil.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...G.errorUtil.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...G.errorUtil.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...G.errorUtil.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...G.errorUtil.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...G.errorUtil.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...G.errorUtil.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...G.errorUtil.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...G.errorUtil.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...G.errorUtil.errToObj(t)})}nonempty(e){return this.min(1,G.errorUtil.errToObj(e))}trim(){return new We({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new We({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new We({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}b.ZodString=We,We.create=a=>new We({checks:[],typeName:J.ZodString,coerce:(a==null?void 0:a.coerce)??!1,...re(a)});function xd(a,e){const t=(a.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,r=t>n?t:n,s=Number.parseInt(a.toFixed(r).replace(".","")),i=Number.parseInt(e.toFixed(r).replace(".",""));return s%i/10**r}class fa extends oe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.ZodParsedType.number){const s=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(s,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.number,received:s.parsedType}),f.INVALID}let n;const r=new f.ParseStatus;for(const s of this._def.checks)s.kind==="int"?M.util.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:"integer",received:"float",message:s.message}),r.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),r.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),r.dirty()):s.kind==="multipleOf"?xd(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.not_multiple_of,multipleOf:s.value,message:s.message}),r.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.not_finite,message:s.message}),r.dirty()):M.util.assertNever(s);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,G.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,G.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,G.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,G.errorUtil.toString(t))}setLimit(e,t,n,r){return new fa({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:G.errorUtil.toString(r)}]})}_addCheck(e){return new fa({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:G.errorUtil.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:G.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.errorUtil.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.errorUtil.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&M.util.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}b.ZodNumber=fa,fa.create=a=>new fa({checks:[],typeName:J.ZodNumber,coerce:(a==null?void 0:a.coerce)||!1,...re(a)});class ya extends oe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==M.ZodParsedType.bigint)return this._getInvalidInput(e);let n;const r=new f.ParseStatus;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),r.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),r.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.not_multiple_of,multipleOf:s.value,message:s.message}),r.dirty()):M.util.assertNever(s);return{status:r.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.bigint,received:t.parsedType}),f.INVALID}gte(e,t){return this.setLimit("min",e,!0,G.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,G.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,G.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,G.errorUtil.toString(t))}setLimit(e,t,n,r){return new ya({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:G.errorUtil.toString(r)}]})}_addCheck(e){return new ya({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:G.errorUtil.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}b.ZodBigInt=ya,ya.create=a=>new ya({checks:[],typeName:J.ZodBigInt,coerce:(a==null?void 0:a.coerce)??!1,...re(a)});class ct extends oe{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.ZodParsedType.boolean){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.boolean,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}b.ZodBoolean=ct,ct.create=a=>new ct({typeName:J.ZodBoolean,coerce:(a==null?void 0:a.coerce)||!1,...re(a)});class Da extends oe{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.ZodParsedType.date){const s=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(s,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.date,received:s.parsedType}),f.INVALID}if(Number.isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(s,{code:L.ZodIssueCode.invalid_date}),f.INVALID}const n=new f.ParseStatus;let r;for(const s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:L.ZodIssueCode.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):M.util.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Da({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:G.errorUtil.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:G.errorUtil.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}b.ZodDate=Da,Da.create=a=>new Da({checks:[],coerce:(a==null?void 0:a.coerce)||!1,typeName:J.ZodDate,...re(a)});class mn extends oe{_parse(e){if(this._getType(e)!==M.ZodParsedType.symbol){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.symbol,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}b.ZodSymbol=mn,mn.create=a=>new mn({typeName:J.ZodSymbol,...re(a)});class ut extends oe{_parse(e){if(this._getType(e)!==M.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.undefined,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}b.ZodUndefined=ut,ut.create=a=>new ut({typeName:J.ZodUndefined,...re(a)});class pt extends oe{_parse(e){if(this._getType(e)!==M.ZodParsedType.null){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.null,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}b.ZodNull=pt,pt.create=a=>new pt({typeName:J.ZodNull,...re(a)});class ja extends oe{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,f.OK)(e.data)}}b.ZodAny=ja,ja.create=a=>new ja({typeName:J.ZodAny,...re(a)});class Ea extends oe{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,f.OK)(e.data)}}b.ZodUnknown=Ea,Ea.create=a=>new Ea({typeName:J.ZodUnknown,...re(a)});class oa extends oe{_parse(e){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.never,received:t.parsedType}),f.INVALID}}b.ZodNever=oa,oa.create=a=>new oa({typeName:J.ZodNever,...re(a)});class gn extends oe{_parse(e){if(this._getType(e)!==M.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.void,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}b.ZodVoid=gn,gn.create=a=>new gn({typeName:J.ZodVoid,...re(a)});class Ge extends oe{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==M.ZodParsedType.array)return(0,f.addIssueToContext)(t,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.array,received:t.parsedType}),f.INVALID;if(r.exactLength!==null){const i=t.data.length>r.exactLength.value,l=t.data.length<r.exactLength.value;(i||l)&&((0,f.addIssueToContext)(t,{code:i?L.ZodIssueCode.too_big:L.ZodIssueCode.too_small,minimum:l?r.exactLength.value:void 0,maximum:i?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&((0,f.addIssueToContext)(t,{code:L.ZodIssueCode.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&((0,f.addIssueToContext)(t,{code:L.ZodIssueCode.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((i,l)=>r.type._parseAsync(new ea(t,i,t.path,l)))).then(i=>f.ParseStatus.mergeArray(n,i));const s=[...t.data].map((i,l)=>r.type._parseSync(new ea(t,i,t.path,l)));return f.ParseStatus.mergeArray(n,s)}get element(){return this._def.type}min(e,t){return new Ge({...this._def,minLength:{value:e,message:G.errorUtil.toString(t)}})}max(e,t){return new Ge({...this._def,maxLength:{value:e,message:G.errorUtil.toString(t)}})}length(e,t){return new Ge({...this._def,exactLength:{value:e,message:G.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}b.ZodArray=Ge,Ge.create=(a,e)=>new Ge({type:a,minLength:null,maxLength:null,exactLength:null,typeName:J.ZodArray,...re(e)});function Va(a){if(a instanceof we){const e={};for(const t in a.shape){const n=a.shape[t];e[t]=ta.create(Va(n))}return new we({...a._def,shape:()=>e})}else return a instanceof Ge?new Ge({...a._def,type:Va(a.element)}):a instanceof ta?ta.create(Va(a.unwrap())):a instanceof _a?_a.create(Va(a.unwrap())):a instanceof aa?aa.create(a.items.map(e=>Va(e))):a}class we extends oe{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=M.util.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==M.ZodParsedType.object){const c=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(c,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.object,received:c.parsedType}),f.INVALID}const{status:n,ctx:r}=this._processInputParams(e),{shape:s,keys:i}=this._getCached(),l=[];if(!(this._def.catchall instanceof oa&&this._def.unknownKeys==="strip"))for(const c in r.data)i.includes(c)||l.push(c);const d=[];for(const c of i){const u=s[c],p=r.data[c];d.push({key:{status:"valid",value:c},value:u._parse(new ea(r,p,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof oa){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of l)d.push({key:{status:"valid",value:u},value:{status:"valid",value:r.data[u]}});else if(c==="strict")l.length>0&&((0,f.addIssueToContext)(r,{code:L.ZodIssueCode.unrecognized_keys,keys:l}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of l){const p=r.data[u];d.push({key:{status:"valid",value:u},value:c._parse(new ea(r,p,r.path,u)),alwaysSet:u in r.data})}}return r.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of d){const p=await u.key,h=await u.value;c.push({key:p,value:h,alwaysSet:u.alwaysSet})}return c}).then(c=>f.ParseStatus.mergeObjectSync(n,c)):f.ParseStatus.mergeObjectSync(n,d)}get shape(){return this._def.shape()}strict(e){return G.errorUtil.errToObj,new we({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var s,i;const r=((i=(s=this._def).errorMap)==null?void 0:i.call(s,t,n).message)??n.defaultError;return t.code==="unrecognized_keys"?{message:G.errorUtil.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new we({...this._def,unknownKeys:"strip"})}passthrough(){return new we({...this._def,unknownKeys:"passthrough"})}extend(e){return new we({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new we({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:J.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new we({...this._def,catchall:e})}pick(e){const t={};for(const n of M.util.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new we({...this._def,shape:()=>t})}omit(e){const t={};for(const n of M.util.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new we({...this._def,shape:()=>t})}deepPartial(){return Va(this)}partial(e){const t={};for(const n of M.util.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new we({...this._def,shape:()=>t})}required(e){const t={};for(const n of M.util.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof ta;)s=s._def.innerType;t[n]=s}return new we({...this._def,shape:()=>t})}keyof(){return oo(M.util.objectKeys(this.shape))}}b.ZodObject=we,we.create=(a,e)=>new we({shape:()=>a,unknownKeys:"strip",catchall:oa.create(),typeName:J.ZodObject,...re(e)}),we.strictCreate=(a,e)=>new we({shape:()=>a,unknownKeys:"strict",catchall:oa.create(),typeName:J.ZodObject,...re(e)}),we.lazycreate=(a,e)=>new we({shape:a,unknownKeys:"strip",catchall:oa.create(),typeName:J.ZodObject,...re(e)});class ht extends oe{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function r(s){for(const l of s)if(l.result.status==="valid")return l.result;for(const l of s)if(l.result.status==="dirty")return t.common.issues.push(...l.ctx.common.issues),l.result;const i=s.map(l=>new L.ZodError(l.ctx.common.issues));return(0,f.addIssueToContext)(t,{code:L.ZodIssueCode.invalid_union,unionErrors:i}),f.INVALID}if(t.common.async)return Promise.all(n.map(async s=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await s._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(r);{let s;const i=[];for(const d of n){const c={...t,common:{...t.common,issues:[]},parent:null},u=d._parseSync({data:t.data,path:t.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!s&&(s={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(s)return t.common.issues.push(...s.ctx.common.issues),s.result;const l=i.map(d=>new L.ZodError(d));return(0,f.addIssueToContext)(t,{code:L.ZodIssueCode.invalid_union,unionErrors:l}),f.INVALID}}get options(){return this._def.options}}b.ZodUnion=ht,ht.create=(a,e)=>new ht({options:a,typeName:J.ZodUnion,...re(e)});const ia=a=>a instanceof bt?ia(a.schema):a instanceof Ke?ia(a.innerType()):a instanceof ft?[a.value]:a instanceof va?a.options:a instanceof yt?M.util.objectValues(a.enum):a instanceof vt?ia(a._def.innerType):a instanceof ut?[void 0]:a instanceof pt?[null]:a instanceof ta?[void 0,...ia(a.unwrap())]:a instanceof _a?[null,...ia(a.unwrap())]:a instanceof dr||a instanceof Ct?ia(a.unwrap()):a instanceof _t?ia(a._def.innerType):[];class bn extends oe{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==M.ZodParsedType.object)return(0,f.addIssueToContext)(t,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.object,received:t.parsedType}),f.INVALID;const n=this.discriminator,r=t.data[n],s=this.optionsMap.get(r);return s?t.common.async?s._parseAsync({data:t.data,path:t.path,parent:t}):s._parseSync({data:t.data,path:t.path,parent:t}):((0,f.addIssueToContext)(t,{code:L.ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),f.INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const r=new Map;for(const s of t){const i=ia(s.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const l of i){if(r.has(l))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(l)}`);r.set(l,s)}}return new bn({typeName:J.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...re(n)})}}b.ZodDiscriminatedUnion=bn;function lr(a,e){const t=(0,M.getParsedType)(a),n=(0,M.getParsedType)(e);if(a===e)return{valid:!0,data:a};if(t===M.ZodParsedType.object&&n===M.ZodParsedType.object){const r=M.util.objectKeys(e),s=M.util.objectKeys(a).filter(l=>r.indexOf(l)!==-1),i={...a,...e};for(const l of s){const d=lr(a[l],e[l]);if(!d.valid)return{valid:!1};i[l]=d.data}return{valid:!0,data:i}}else if(t===M.ZodParsedType.array&&n===M.ZodParsedType.array){if(a.length!==e.length)return{valid:!1};const r=[];for(let s=0;s<a.length;s++){const i=a[s],l=e[s],d=lr(i,l);if(!d.valid)return{valid:!1};r.push(d.data)}return{valid:!0,data:r}}else return t===M.ZodParsedType.date&&n===M.ZodParsedType.date&&+a==+e?{valid:!0,data:a}:{valid:!1}}class mt extends oe{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(s,i)=>{if((0,f.isAborted)(s)||(0,f.isAborted)(i))return f.INVALID;const l=lr(s.value,i.value);return l.valid?(((0,f.isDirty)(s)||(0,f.isDirty)(i))&&t.dirty(),{status:t.value,value:l.data}):((0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_intersection_types}),f.INVALID)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,i])=>r(s,i)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}b.ZodIntersection=mt,mt.create=(a,e,t)=>new mt({left:a,right:e,typeName:J.ZodIntersection,...re(t)});class aa extends oe{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.ZodParsedType.array)return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.array,received:n.parsedType}),f.INVALID;if(n.data.length<this._def.items.length)return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),f.INVALID;!this._def.rest&&n.data.length>this._def.items.length&&((0,f.addIssueToContext)(n,{code:L.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const s=[...n.data].map((i,l)=>{const d=this._def.items[l]||this._def.rest;return d?d._parse(new ea(n,i,n.path,l)):null}).filter(i=>!!i);return n.common.async?Promise.all(s).then(i=>f.ParseStatus.mergeArray(t,i)):f.ParseStatus.mergeArray(t,s)}get items(){return this._def.items}rest(e){return new aa({...this._def,rest:e})}}b.ZodTuple=aa,aa.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new aa({items:a,typeName:J.ZodTuple,rest:null,...re(e)})};class gt extends oe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.ZodParsedType.object)return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.object,received:n.parsedType}),f.INVALID;const r=[],s=this._def.keyType,i=this._def.valueType;for(const l in n.data)r.push({key:s._parse(new ea(n,l,n.path,l)),value:i._parse(new ea(n,n.data[l],n.path,l)),alwaysSet:l in n.data});return n.common.async?f.ParseStatus.mergeObjectAsync(t,r):f.ParseStatus.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof oe?new gt({keyType:e,valueType:t,typeName:J.ZodRecord,...re(n)}):new gt({keyType:We.create(),valueType:e,typeName:J.ZodRecord,...re(t)})}}b.ZodRecord=gt;class fn extends oe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.ZodParsedType.map)return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.map,received:n.parsedType}),f.INVALID;const r=this._def.keyType,s=this._def.valueType,i=[...n.data.entries()].map(([l,d],c)=>({key:r._parse(new ea(n,l,n.path,[c,"key"])),value:s._parse(new ea(n,d,n.path,[c,"value"]))}));if(n.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const d of i){const c=await d.key,u=await d.value;if(c.status==="aborted"||u.status==="aborted")return f.INVALID;(c.status==="dirty"||u.status==="dirty")&&t.dirty(),l.set(c.value,u.value)}return{status:t.value,value:l}})}else{const l=new Map;for(const d of i){const c=d.key,u=d.value;if(c.status==="aborted"||u.status==="aborted")return f.INVALID;(c.status==="dirty"||u.status==="dirty")&&t.dirty(),l.set(c.value,u.value)}return{status:t.value,value:l}}}}b.ZodMap=fn,fn.create=(a,e,t)=>new fn({valueType:e,keyType:a,typeName:J.ZodMap,...re(t)});class La extends oe{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.ZodParsedType.set)return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.set,received:n.parsedType}),f.INVALID;const r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&((0,f.addIssueToContext)(n,{code:L.ZodIssueCode.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&((0,f.addIssueToContext)(n,{code:L.ZodIssueCode.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const s=this._def.valueType;function i(d){const c=new Set;for(const u of d){if(u.status==="aborted")return f.INVALID;u.status==="dirty"&&t.dirty(),c.add(u.value)}return{status:t.value,value:c}}const l=[...n.data.values()].map((d,c)=>s._parse(new ea(n,d,n.path,c)));return n.common.async?Promise.all(l).then(d=>i(d)):i(l)}min(e,t){return new La({...this._def,minSize:{value:e,message:G.errorUtil.toString(t)}})}max(e,t){return new La({...this._def,maxSize:{value:e,message:G.errorUtil.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}b.ZodSet=La,La.create=(a,e)=>new La({valueType:a,minSize:null,maxSize:null,typeName:J.ZodSet,...re(e)});class Za extends oe{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==M.ZodParsedType.function)return(0,f.addIssueToContext)(t,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.function,received:t.parsedType}),f.INVALID;function n(l,d){return(0,f.makeIssue)({data:l,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,hn.getErrorMap)(),hn.defaultErrorMap].filter(c=>!!c),issueData:{code:L.ZodIssueCode.invalid_arguments,argumentsError:d}})}function r(l,d){return(0,f.makeIssue)({data:l,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,hn.getErrorMap)(),hn.defaultErrorMap].filter(c=>!!c),issueData:{code:L.ZodIssueCode.invalid_return_type,returnTypeError:d}})}const s={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof qa){const l=this;return(0,f.OK)(async function(...d){const c=new L.ZodError([]),u=await l._def.args.parseAsync(d,s).catch(m=>{throw c.addIssue(n(d,m)),c}),p=await Reflect.apply(i,this,u);return await l._def.returns._def.type.parseAsync(p,s).catch(m=>{throw c.addIssue(r(p,m)),c})})}else{const l=this;return(0,f.OK)(function(...d){const c=l._def.args.safeParse(d,s);if(!c.success)throw new L.ZodError([n(d,c.error)]);const u=Reflect.apply(i,this,c.data),p=l._def.returns.safeParse(u,s);if(!p.success)throw new L.ZodError([r(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Za({...this._def,args:aa.create(e).rest(Ea.create())})}returns(e){return new Za({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Za({args:e||aa.create([]).rest(Ea.create()),returns:t||Ea.create(),typeName:J.ZodFunction,...re(n)})}}b.ZodFunction=Za;class bt extends oe{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}b.ZodLazy=bt,bt.create=(a,e)=>new bt({getter:a,typeName:J.ZodLazy,...re(e)});class ft extends oe{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{received:t.data,code:L.ZodIssueCode.invalid_literal,expected:this._def.value}),f.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}}b.ZodLiteral=ft,ft.create=(a,e)=>new ft({value:a,typeName:J.ZodLiteral,...re(e)});function oo(a,e){return new va({values:a,typeName:J.ZodEnum,...re(e)})}class va extends oe{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,f.addIssueToContext)(t,{expected:M.util.joinValues(n),received:t.parsedType,code:L.ZodIssueCode.invalid_type}),f.INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,f.addIssueToContext)(t,{received:t.data,code:L.ZodIssueCode.invalid_enum_value,options:n}),f.INVALID}return(0,f.OK)(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return va.create(e,{...this._def,...t})}exclude(e,t=this._def){return va.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}b.ZodEnum=va,va.create=oo;class yt extends oe{_parse(e){const t=M.util.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.ZodParsedType.string&&n.parsedType!==M.ZodParsedType.number){const r=M.util.objectValues(t);return(0,f.addIssueToContext)(n,{expected:M.util.joinValues(r),received:n.parsedType,code:L.ZodIssueCode.invalid_type}),f.INVALID}if(this._cache||(this._cache=new Set(M.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=M.util.objectValues(t);return(0,f.addIssueToContext)(n,{received:n.data,code:L.ZodIssueCode.invalid_enum_value,options:r}),f.INVALID}return(0,f.OK)(e.data)}get enum(){return this._def.values}}b.ZodNativeEnum=yt,yt.create=(a,e)=>new yt({values:a,typeName:J.ZodNativeEnum,...re(e)});class qa extends oe{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==M.ZodParsedType.promise&&t.common.async===!1)return(0,f.addIssueToContext)(t,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.promise,received:t.parsedType}),f.INVALID;const n=t.parsedType===M.ZodParsedType.promise?t.data:Promise.resolve(t.data);return(0,f.OK)(n.then(r=>this._def.type.parseAsync(r,{path:t.path,errorMap:t.common.contextualErrorMap})))}}b.ZodPromise=qa,qa.create=(a,e)=>new qa({type:a,typeName:J.ZodPromise,...re(e)});class Ke extends oe{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===J.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,s={addIssue:i=>{(0,f.addIssueToContext)(n,i),i.fatal?t.abort():t.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),r.type==="preprocess"){const i=r.transform(n.data,s);if(n.common.async)return Promise.resolve(i).then(async l=>{if(t.value==="aborted")return f.INVALID;const d=await this._def.schema._parseAsync({data:l,path:n.path,parent:n});return d.status==="aborted"?f.INVALID:d.status==="dirty"||t.value==="dirty"?(0,f.DIRTY)(d.value):d});{if(t.value==="aborted")return f.INVALID;const l=this._def.schema._parseSync({data:i,path:n.path,parent:n});return l.status==="aborted"?f.INVALID:l.status==="dirty"||t.value==="dirty"?(0,f.DIRTY)(l.value):l}}if(r.type==="refinement"){const i=l=>{const d=r.refinement(l,s);if(n.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(n.common.async===!1){const l=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return l.status==="aborted"?f.INVALID:(l.status==="dirty"&&t.dirty(),i(l.value),{status:t.value,value:l.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(l=>l.status==="aborted"?f.INVALID:(l.status==="dirty"&&t.dirty(),i(l.value).then(()=>({status:t.value,value:l.value}))))}if(r.type==="transform")if(n.common.async===!1){const i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!(0,f.isValid)(i))return f.INVALID;const l=r.transform(i.value,s);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:l}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>(0,f.isValid)(i)?Promise.resolve(r.transform(i.value,s)).then(l=>({status:t.value,value:l})):f.INVALID);M.util.assertNever(r)}}b.ZodEffects=Ke,b.ZodTransformer=Ke,Ke.create=(a,e,t)=>new Ke({schema:a,typeName:J.ZodEffects,effect:e,...re(t)}),Ke.createWithPreprocess=(a,e,t)=>new Ke({schema:e,effect:{type:"preprocess",transform:a},typeName:J.ZodEffects,...re(t)});class ta extends oe{_parse(e){return this._getType(e)===M.ZodParsedType.undefined?(0,f.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}b.ZodOptional=ta,ta.create=(a,e)=>new ta({innerType:a,typeName:J.ZodOptional,...re(e)});class _a extends oe{_parse(e){return this._getType(e)===M.ZodParsedType.null?(0,f.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}b.ZodNullable=_a,_a.create=(a,e)=>new _a({innerType:a,typeName:J.ZodNullable,...re(e)});class vt extends oe{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===M.ZodParsedType.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}b.ZodDefault=vt,vt.create=(a,e)=>new vt({innerType:a,typeName:J.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...re(e)});class _t extends oe{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return(0,f.isAsync)(r)?r.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new L.ZodError(n.common.issues)},input:n.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new L.ZodError(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}b.ZodCatch=_t,_t.create=(a,e)=>new _t({innerType:a,typeName:J.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...re(e)});class yn extends oe{_parse(e){if(this._getType(e)!==M.ZodParsedType.nan){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:L.ZodIssueCode.invalid_type,expected:M.ZodParsedType.nan,received:n.parsedType}),f.INVALID}return{status:"valid",value:e.data}}}b.ZodNaN=yn,yn.create=a=>new yn({typeName:J.ZodNaN,...re(a)}),b.BRAND=Symbol("zod_brand");class dr extends oe{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}b.ZodBranded=dr;class Nt extends oe{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?f.INVALID:s.status==="dirty"?(t.dirty(),(0,f.DIRTY)(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{const r=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return r.status==="aborted"?f.INVALID:r.status==="dirty"?(t.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:n.path,parent:n})}}static create(e,t){return new Nt({in:e,out:t,typeName:J.ZodPipeline})}}b.ZodPipeline=Nt;class Ct extends oe{_parse(e){const t=this._def.innerType._parse(e),n=r=>((0,f.isValid)(r)&&(r.value=Object.freeze(r.value)),r);return(0,f.isAsync)(t)?t.then(r=>n(r)):n(t)}unwrap(){return this._def.innerType}}b.ZodReadonly=Ct,Ct.create=(a,e)=>new Ct({innerType:a,typeName:J.ZodReadonly,...re(e)});function io(a,e){const t=typeof a=="function"?a(e):typeof a=="string"?{message:a}:a;return typeof t=="string"?{message:t}:t}function lo(a,e={},t){return a?ja.create().superRefine((n,r)=>{const s=a(n);if(s instanceof Promise)return s.then(i=>{if(!i){const l=io(e,n),d=l.fatal??t??!0;r.addIssue({code:"custom",...l,fatal:d})}});if(!s){const i=io(e,n),l=i.fatal??t??!0;r.addIssue({code:"custom",...i,fatal:l})}}):ja.create()}b.late={object:we.lazycreate};var J;(function(a){a.ZodString="ZodString",a.ZodNumber="ZodNumber",a.ZodNaN="ZodNaN",a.ZodBigInt="ZodBigInt",a.ZodBoolean="ZodBoolean",a.ZodDate="ZodDate",a.ZodSymbol="ZodSymbol",a.ZodUndefined="ZodUndefined",a.ZodNull="ZodNull",a.ZodAny="ZodAny",a.ZodUnknown="ZodUnknown",a.ZodNever="ZodNever",a.ZodVoid="ZodVoid",a.ZodArray="ZodArray",a.ZodObject="ZodObject",a.ZodUnion="ZodUnion",a.ZodDiscriminatedUnion="ZodDiscriminatedUnion",a.ZodIntersection="ZodIntersection",a.ZodTuple="ZodTuple",a.ZodRecord="ZodRecord",a.ZodMap="ZodMap",a.ZodSet="ZodSet",a.ZodFunction="ZodFunction",a.ZodLazy="ZodLazy",a.ZodLiteral="ZodLiteral",a.ZodEnum="ZodEnum",a.ZodEffects="ZodEffects",a.ZodNativeEnum="ZodNativeEnum",a.ZodOptional="ZodOptional",a.ZodNullable="ZodNullable",a.ZodDefault="ZodDefault",a.ZodCatch="ZodCatch",a.ZodPromise="ZodPromise",a.ZodBranded="ZodBranded",a.ZodPipeline="ZodPipeline",a.ZodReadonly="ZodReadonly"})(J||(b.ZodFirstPartyTypeKind=J={}));const Dd=(a,e={message:`Input not instance of ${a.name}`})=>lo(t=>t instanceof a,e);b.instanceof=Dd;const co=We.create;b.string=co;const uo=fa.create;b.number=uo;const Ed=yn.create;b.nan=Ed;const Ld=ya.create;b.bigint=Ld;const po=ct.create;b.boolean=po;const Fd=Da.create;b.date=Fd;const Md=mn.create;b.symbol=Md;const Od=ut.create;b.undefined=Od;const Bd=pt.create;b.null=Bd;const Ud=ja.create;b.any=Ud;const zd=Ea.create;b.unknown=zd;const jd=oa.create;b.never=jd;const Vd=gn.create;b.void=Vd;const Zd=Ge.create;b.array=Zd;const qd=we.create;b.object=qd;const Wd=we.strictCreate;b.strictObject=Wd;const Gd=ht.create;b.union=Gd;const Kd=bn.create;b.discriminatedUnion=Kd;const Rd=mt.create;b.intersection=Rd;const $d=aa.create;b.tuple=$d;const Hd=gt.create;b.record=Hd;const Yd=fn.create;b.map=Yd;const Jd=La.create;b.set=Jd;const Qd=Za.create;b.function=Qd;const Xd=bt.create;b.lazy=Xd;const ec=ft.create;b.literal=ec;const ac=va.create;b.enum=ac;const tc=yt.create;b.nativeEnum=tc;const nc=qa.create;b.promise=nc;const ho=Ke.create;b.effect=ho,b.transformer=ho;const rc=ta.create;b.optional=rc;const sc=_a.create;b.nullable=sc;const oc=Ke.createWithPreprocess;b.preprocess=oc;const ic=Nt.create;b.pipeline=ic;const lc=()=>co().optional();b.ostring=lc;const dc=()=>uo().optional();b.onumber=dc;const cc=()=>po().optional();b.oboolean=cc,b.coerce={string:a=>We.create({...a,coerce:!0}),number:a=>fa.create({...a,coerce:!0}),boolean:a=>ct.create({...a,coerce:!0}),bigint:a=>ya.create({...a,coerce:!0}),date:a=>Da.create({...a,coerce:!0})},b.NEVER=f.INVALID,function(a){var e=he&&he.__createBinding||(Object.create?function(n,r,s,i){i===void 0&&(i=s);var l=Object.getOwnPropertyDescriptor(r,s);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(n,i,l)}:function(n,r,s,i){i===void 0&&(i=s),n[i]=r[s]}),t=he&&he.__exportStar||function(n,r){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&e(r,n,s)};Object.defineProperty(a,"__esModule",{value:!0}),t(ba,a),t(or,a),t(eo,a),t(lt,a),t(b,a),t(Xe,a)}(sr),function(a){var e=he&&he.__createBinding||(Object.create?function(i,l,d,c){c===void 0&&(c=d);var u=Object.getOwnPropertyDescriptor(l,d);(!u||("get"in u?!l.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return l[d]}}),Object.defineProperty(i,c,u)}:function(i,l,d,c){c===void 0&&(c=d),i[c]=l[d]}),t=he&&he.__setModuleDefault||(Object.create?function(i,l){Object.defineProperty(i,"default",{enumerable:!0,value:l})}:function(i,l){i.default=l}),n=he&&he.__importStar||function(i){if(i&&i.__esModule)return i;var l={};if(i!=null)for(var d in i)d!=="default"&&Object.prototype.hasOwnProperty.call(i,d)&&e(l,i,d);return t(l,i),l},r=he&&he.__exportStar||function(i,l){for(var d in i)d!=="default"&&!Object.prototype.hasOwnProperty.call(l,d)&&e(l,i,d)};Object.defineProperty(a,"__esModule",{value:!0}),a.z=void 0;const s=n(sr);a.z=s,r(sr,a),a.default=s}(Ys),function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingConfigSchema=a.billingVersionConfigSchema=a.meterSchema=a.addOnSchema=a.planSchema=a.meteredPriceSchema=a.priceSchema=a.meterTypeSchema=a.aggregationSchema=a.unitAmountSchema=a.intervalSchema=a.featureSchema=a.UNKNOWN_STRIPE_ID=void 0;const e=Ys,t=rr;a.UNKNOWN_STRIPE_ID="__UNKNOWN_STRIPE_ID__",a.featureSchema=e.z.enum(t.BILLING_FEATURE_IDS),a.intervalSchema=e.z.enum(["month","year"]),a.unitAmountSchema=e.z.number().int().min(1),a.aggregationSchema=e.z.enum(["sum","count"]),a.meterTypeSchema=e.z.enum(["payAsYouGo","creditGrant"]),a.priceSchema=e.z.object({amount:e.z.number(),currency:e.z.enum(["usd"]),interval:a.intervalSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerPriceId:e.z.string()}),a.meteredPriceSchema=e.z.object({unitAmount:a.unitAmountSchema,currency:e.z.enum(["usd"]),interval:a.intervalSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerPriceId:e.z.string()}),a.planSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),tierIndex:e.z.number(),prices:e.z.record(a.intervalSchema,a.priceSchema),features:e.z.record(a.featureSchema,e.z.union([e.z.number(),e.z.boolean()])),metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerProductId:e.z.string()}),a.addOnSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),prices:e.z.record(e.z.string(),a.priceSchema),increments:e.z.record(a.featureSchema,e.z.number().positive()),prorationDisabled:e.z.boolean().optional(),metadata:e.z.record(e.z.string(),e.z.string()).optional(),autoRechargeable:e.z.boolean().optional(),hidden:e.z.boolean().optional(),providerProductId:e.z.string()}),a.meterSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),defaultAggregation:e.z.object({formula:a.aggregationSchema}).optional(),customerMapping:e.z.object({eventPayloadKey:e.z.literal("stripe_customer_id"),type:e.z.literal("by_id")}).optional(),valueSettings:e.z.object({eventPayloadKey:e.z.literal("value")}).optional(),prices:e.z.record(a.intervalSchema,a.meteredPriceSchema),meterType:a.meterTypeSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerProductId:e.z.string(),providerMeterId:e.z.string()}),a.billingVersionConfigSchema=e.z.object({version:e.z.string(),name:e.z.string(),description:e.z.string(),plans:e.z.record(e.z.string(),a.planSchema),addons:e.z.record(e.z.string(),a.addOnSchema),meters:e.z.record(e.z.string(),a.meterSchema),isActive:e.z.boolean(),createdAt:e.z.string()}),a.billingConfigSchema=e.z.record(e.z.string(),a.billingVersionConfigSchema)}(it),Object.defineProperty(ot,"__esModule",{value:!0}),ot.plans=void 0;const Te=cn,ze=it,mo={table_rows:0,bot_count:Te.SMALL_UNLIMITED,collaborator_count:Te.SMALL_UNLIMITED,file_storage:0,vector_db_storage:0,saved_versions:0,indexed_file_count:0,incoming_messages_events:0,ai_spend:0,conversation_sessions:0};ot.plans={community:{id:"community",name:"Plan - Free",description:"Free plan for trying things out",tierIndex:0,prices:{month:{amount:Te.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:ze.UNKNOWN_STRIPE_ID}},features:{table_rows:1e3,bot_count:3,collaborator_count:3,file_storage:100*Te.MB,vector_db_storage:100*Te.MB,saved_versions:3,indexed_file_count:1e3,incoming_messages_events:100*Te.MESSAGES_PER_CONVERSATION,ai_spend:100*Te.AI_SPEND_PER_CONVERSATION,conversation_sessions:100},providerProductId:ze.UNKNOWN_STRIPE_ID},plus:{id:"plus",name:"Plan - Plus",description:"For growing businesses",tierIndex:1,prices:{month:{amount:189,currency:"usd",interval:"month",providerPriceId:ze.UNKNOWN_STRIPE_ID},year:{amount:150*Te.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:ze.UNKNOWN_STRIPE_ID}},features:{table_rows:1e5,bot_count:Te.SMALL_UNLIMITED,collaborator_count:3,file_storage:10*Te.GB,vector_db_storage:1*Te.GB,saved_versions:50,indexed_file_count:2e3,incoming_messages_events:250*Te.MESSAGES_PER_CONVERSATION,ai_spend:250*Te.AI_SPEND_PER_CONVERSATION,conversation_sessions:250},providerProductId:ze.UNKNOWN_STRIPE_ID},team:{id:"team",name:"Plan - Team",description:"For small teams",tierIndex:2,prices:{month:{amount:939,currency:"usd",interval:"month",providerPriceId:ze.UNKNOWN_STRIPE_ID},year:{amount:750*Te.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:ze.UNKNOWN_STRIPE_ID}},features:{table_rows:5e5,bot_count:Te.SMALL_UNLIMITED,collaborator_count:Te.SMALL_UNLIMITED,file_storage:50*Te.GB,vector_db_storage:5*Te.GB,saved_versions:100,indexed_file_count:Te.BIG_UNLIMITED,incoming_messages_events:1500*Te.MESSAGES_PER_CONVERSATION,ai_spend:1500*Te.AI_SPEND_PER_CONVERSATION,conversation_sessions:1500},providerProductId:ze.UNKNOWN_STRIPE_ID},enterprise:{id:"enterprise",name:"Plan - Enterprise",description:"Enterprise license subscription",tierIndex:3,prices:{month:{amount:Te.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:ze.UNKNOWN_STRIPE_ID}},features:mo,providerProductId:ze.UNKNOWN_STRIPE_ID},managed:{id:"managed",name:"Plan - Managed",description:"Managed license subscription",tierIndex:4,prices:{month:{amount:Te.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:ze.UNKNOWN_STRIPE_ID}},features:mo,providerProductId:ze.UNKNOWN_STRIPE_ID}};var St={};Object.defineProperty(St,"__esModule",{value:!0}),St.addons=void 0;const Wa=cn,Ga=it,go=(a,e=["community","plus","team","enterprise","managed"])=>e.map(t=>({[t]:{amount:a,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID}})).reduce((t,n)=>({...t,...n}),{});St.addons={conversation_sessions_addon:{id:"conversation_sessions_addon",name:"Add-on - Conversation Sessions",description:"Adds conversations sessions for the month",prices:{plus:{amount:65,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID},team:{amount:50,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID},enterprise:{amount:Wa.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID}},increments:{conversation_sessions:100,ai_spend:100*Wa.AI_SPEND_PER_CONVERSATION,incoming_messages_events:100*Wa.MESSAGES_PER_CONVERSATION},providerProductId:Ga.UNKNOWN_STRIPE_ID,autoRechargeable:!0,prorationDisabled:!0},storage_addon:{id:"storage_addon",name:"Add-on - Storage",description:"Adds table rows, vector db space and files",prices:{...go(40,["plus","team"]),...go(Wa.FREE_PRICE,["enterprise","managed"])},increments:{table_rows:1e5,vector_db_storage:1*Wa.GB,file_storage:10*Wa.GB},providerProductId:Ga.UNKNOWN_STRIPE_ID}};var kt={};Object.defineProperty(kt,"__esModule",{value:!0}),kt.meters=void 0;const Ka=it;kt.meters={ai_spend_credit_grant:{id:"ai_spend_credit_grant",name:"AI Spend - Credit grant",description:"Pre-purchased credits applied toward AI usage",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:Ka.UNKNOWN_STRIPE_ID}},meterType:"creditGrant",providerMeterId:Ka.UNKNOWN_STRIPE_ID,providerProductId:Ka.UNKNOWN_STRIPE_ID},ai_spend_pay_as_you_go:{id:"ai_spend_pay_as_you_go",name:"AI Spend - Pay as you go",description:"Usage-based charges for AI spend, billed monthly",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:Ka.UNKNOWN_STRIPE_ID}},meterType:"payAsYouGo",providerMeterId:Ka.UNKNOWN_STRIPE_ID,providerProductId:Ka.UNKNOWN_STRIPE_ID}};var bo={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingDefinitions=a.billingConfig=void 0;const e=ot,t=St,n=kt;a.billingConfig={v4:{version:"v4",name:"Billing Version 4",description:"New billing system with credit grants and entitlements",plans:e.plans,addons:t.addons,meters:n.meters,isActive:!0,createdAt:new Date().toISOString()}},a.billingDefinitions=a.billingConfig})(bo),function(a){var e=he&&he.__createBinding||(Object.create?function(n,r,s,i){i===void 0&&(i=s);var l=Object.getOwnPropertyDescriptor(r,s);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(n,i,l)}:function(n,r,s,i){i===void 0&&(i=s),n[i]=r[s]}),t=he&&he.__exportStar||function(n,r){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&e(r,n,s)};Object.defineProperty(a,"__esModule",{value:!0}),t(ot,a),t(St,a),t(kt,a),t(it,a),t(bo,a)}(Hs),function(a){var e=he&&he.__createBinding||(Object.create?function(n,r,s,i){i===void 0&&(i=s);var l=Object.getOwnPropertyDescriptor(r,s);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(n,i,l)}:function(n,r,s,i){i===void 0&&(i=s),n[i]=r[s]}),t=he&&he.__exportStar||function(n,r){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&e(r,n,s)};Object.defineProperty(a,"__esModule",{value:!0}),t(rr,a),t(Hs,a),t(cn,a)}($s),function(a){var e=he&&he.__createBinding||(Object.create?function(n,r,s,i){i===void 0&&(i=s);var l=Object.getOwnPropertyDescriptor(r,s);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(n,i,l)}:function(n,r,s,i){i===void 0&&(i=s),n[i]=r[s]}),t=he&&he.__exportStar||function(n,r){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&e(r,n,s)};Object.defineProperty(a,"__esModule",{value:!0}),t(sn,a),t(on,a),t(za,a),t(Rs,a),t(ln,a),t(Ue,a),t(dn,a),t($s,a)}(Ks);const fo=[{key:"conversation_sessions",label:"Conversations",unit:"count"},{key:"ai_spend",label:"AI spend",unit:"nano-usd"},{key:"table_rows",label:"Table rows",unit:"count"},{key:"vector_db_storage",label:"Vector DB storage",unit:"bytes"},{key:"file_storage",label:"File storage",unit:"bytes"}];function Ra(a,e){return e==="bytes"?Ia(a):e==="nano-usd"?`$${(a/qe).toFixed(2)}`:fe(a)}function yo(a,e){switch(a){case"conversation_sessions":return e("dashboardConversationsMetric");case"ai_spend":return e("dashboardAiSpend");case"table_rows":return e("dashboardTableRows");case"vector_db_storage":return e("dashboardVectorDb");case"file_storage":return e("dashboardFileStorage");default:return a}}function vn(a){return a>=90?"critical":a>=75?"warning":"normal"}const uc=Ks.NON_RESETTING_BILLING_FEATURE_IDS;function pc(a){return!uc.includes(a)}function wt(a){return a?fo.flatMap(({key:e,label:t,unit:n})=>{const r=a[e];if(!r||r.quota<=0)return[];const s=r.usage??0,i=Math.max(0,Math.min(100,s/r.quota*100));return[{key:e,label:t,unit:n,used:s,quota:r.quota,remaining:Math.max(0,r.quota-s),pct:i,resets:pc(e)}]}).sort((e,t)=>t.pct-e.pct):[]}const vo="outgrow-free",hc=.75,mc=5;function gc(a,e){return a.prices[e]??(e==="month"?a.prices.year:a.prices.month)??null}function bc(a,e){var r,s;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const n=((s=a.prices.year)==null?void 0:s.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}const fc=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",interval:r="year",planFeatures:s={},featureDescriptions:i,period:l})=>{var H,z;const{isOutdatedBilling:d,analytics:c,scope:u}=X(),{t:p}=ge(),{data:h}=Ze(),{data:m}=Sa(),{data:g}=Be({enabled:!d}),{data:N}=ka({period:l,enabled:!d}),v=a!==void 0,[y,_]=T.useState(!1),C=h==null?void 0:h.find(D=>D.id===(g==null?void 0:g.plan.current.planId)),I=g?C?Ne(C)==="community":!0:!1,A=T.useMemo(()=>wt(N).find(D=>D.key==="conversation_sessions"),[N]),S=!v&&!d&&I&&!!A&&A.pct/100>=hc&&!y&&!Ws(vo,u,"modal"),P=v?!!a:S;T.useEffect(()=>{P&&c.capture(ke.PLAN_PICKER_VIEWED,{source:v?"outgrow_free":"outgrow_free_auto",interval:r})},[P,v,c]);const w=()=>{v||(Gs(vo,u,"modal"),_(!0)),e==null||e(!1)},F=T.useMemo(()=>h?h.filter(D=>{const Y=Ne(D);return Y!=="community"&&Y!=="enterprise"&&Y!=="managed"}).sort((D,Y)=>Aa.indexOf(Ne(D))-Aa.indexOf(Ne(Y))):[],[h]),O=((z=(H=h==null?void 0:h.find(D=>Ne(D)==="enterprise"))==null?void 0:H.metadata)==null?void 0:z.contact_url)??Wn;if(d||!P)return null;const B=(A==null?void 0:A.quota)??(C==null?void 0:C.features.conversation_sessions)??100,W=(A==null?void 0:A.used)??0,q=A&&A.pct>0?Math.min(100,Math.max(5,Math.round(A.pct))):0;return o.jsx(Fe,{open:P,onOpenChange:w,size:"xl","aria-label":p("outgrowTitle"),children:o.jsxs("div",{className:"bpb-outgrow",children:[o.jsxs("header",{className:"bpb-outgrow__head",children:[o.jsx("h2",{className:"bpb-outgrow__title",children:p("outgrowTitle")}),o.jsx("p",{className:"bpb-outgrow__lede",children:o.jsx(Mt,{i18nKey:"outgrowLede",values:{quota:fe(B)},components:{bold:o.jsx("strong",{})}})})]}),o.jsxs("div",{className:"bpb-outgrow__usage",children:[o.jsx("span",{className:"bpb-outgrow__usage-label",children:p("outgrowSoFar")}),o.jsx("span",{className:"bpb-outgrow__usage-bar",role:"progressbar","aria-valuenow":q,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("span",{className:"bpb-outgrow__usage-fill",style:{width:`${q}%`}})}),o.jsx("span",{className:"bpb-outgrow__usage-text",children:o.jsx(Mt,{i18nKey:"outgrowUsageText",values:{used:fe(W),quota:fe(B)},components:{bold:o.jsx("strong",{})}})})]}),o.jsx("div",{className:"bpb-outgrow__grid",children:F.map((D,Y)=>{const K=Ne(D),ee=gc(D,r),E=bc(D,r),pe=K===n||D.id===n,ae=D.features.conversation_sessions,ce=Rt(m,D,r),U=Y>0?F[Y-1]:void 0,$=(s[K]??Ht[K]).slice(0,mc);return o.jsxs("div",{className:Z("bpb-plan-card",pe&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":D.id,children:[o.jsxs("div",{className:"bpb-plan-card__header",children:[o.jsxs("h3",{className:"bpb-plan-card__name",children:[_e(D.name),pe&&o.jsx(nt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("div",{className:"bpb-plan-card__price",children:E!==null&&ee?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-plan-card__currency",children:at(ee.currency)}),o.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(E)?E:E.toFixed(2).replace(/\.00$/,"")}),o.jsx("span",{className:"bpb-plan-card__per",children:p("perMonth")})]}):o.jsxs("span",{className:"bpb-plan-card__amount",children:[at((ee==null?void 0:ee.currency)??"usd"),"0"]})})]}),ae!==void 0&&o.jsxs("div",{className:"bpb-outgrow__allowance",children:[o.jsxs("p",{className:"bpb-outgrow__allowance-value",children:[o.jsxs("strong",{children:[fe(ae)," ",p("conversationsUnit")]})," ",p("perMonth")]}),o.jsx("p",{className:"bpb-outgrow__allowance-pack",children:ce?p("outgrowThenPer",{symbol:at(ce.currency),amount:ce.amount,packSize:fe(ce.packSize)}):p("outgrowNoTopup")})]}),o.jsxs(Se,{variant:pe?"accent":"outline",block:!0,onClick:()=>{c.capture(ke.PLAN_UPGRADE_INITIATED,{plan_name:_e(D.name),interval:r,source:"outgrow_free"}),t(D.id,r),w()},children:[p("outgrowUpgradeTo",{planName:_e(D.name)}),pe&&o.jsx(an,{size:15})]}),o.jsxs("ul",{className:"bpb-plan-card__features",children:[U&&o.jsx("li",{className:"bpb-outgrow__features-lead",children:p("outgrowEverythingIn",{planName:_e(U.name)})}),$.map(R=>{const x=tn(R),be=$t[R],te=be!==void 0?p(be.label):R,de=(i==null?void 0:i[R])??(be!==void 0?p(be.desc):void 0);return o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(x,{size:13})}),de?o.jsx(st,{label:te,children:de}):o.jsx("span",{children:te})]},R)})]})]},D.id)})}),o.jsxs("footer",{className:"bpb-outgrow__footer",children:[o.jsxs("span",{children:[p("outgrowNeedCustom")," ",o.jsx("a",{href:O,target:"_blank",rel:"noopener noreferrer",children:p("outgrowTalkToSales")})]}),o.jsxs("a",{className:"bpb-outgrow__compare",href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:[p("outgrowCompareAll"),o.jsx(rt,{size:14})]})]})]})})},la=(a,e)=>e==="bytes"?Ia(a):e==="nano-usd"?`$${(a/qe).toFixed(2)}`:fe(a),yc=(a,e)=>{const t=new Date;return Array.from({length:a},(n,r)=>{const s=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()-r,1));return{value:s.toISOString(),label:s.toLocaleDateString(e,{month:"long",year:"numeric",timeZone:"UTC"})}})},vc=({period:a})=>{const{data:e,isLoading:t,isError:n}=Wr("ai_spend",{period:a}),{t:r}=ge();if(n)return null;if(t)return o.jsx(ue,{height:96});if(!e||e.length===0)return o.jsx("p",{className:"bpb-usage__group-hint",children:r("dashboardNoBotSpend")});const s=Math.max(...e.map(i=>i.value),1);return o.jsx("div",{className:"bpb-usage-bots",children:e.map(i=>o.jsxs("div",{className:"bpb-usage-bot",children:[o.jsxs("div",{className:"bpb-usage-bot__head",children:[o.jsx("span",{className:"bpb-usage-bot__name",title:i.name,children:i.name}),o.jsx("span",{className:"bpb-usage-bot__value",children:la(i.value,"nano-usd")})]}),o.jsx("div",{className:"bpb-usage-bar",role:"presentation",children:o.jsx("div",{className:"bpb-usage-bar__fill bpb-usage-bar__fill--normal",style:{width:`${i.value>0?Math.max(2,Math.round(i.value/s*100)):0}%`}})})]},i.botId))})},cr=({entry:a,metric:e,planAllowance:t,planName:n,stacked:r})=>{const{t:s}=ge(),i=a.quota>0?Math.min(a.usage??0,a.quota):a.usage??0,l=a.quota>0?Math.max(0,Math.min(100,Math.round(i/a.quota*100))):0,d=l>0?Math.max(5,l):0,c=l>=90?"critical":l>=75?"warning":"normal",u=t??a.quota,p=Math.max(0,a.quota-u),h=p>0?n?s("dashboardFromPlanWithAddons",{amount:la(u,e.unit),planName:n,addonAmount:la(p,e.unit)}):s("dashboardFromPlanGenericWithAddons",{amount:la(u,e.unit),addonAmount:la(p,e.unit)}):n?s("dashboardFromPlan",{amount:la(a.quota,e.unit),planName:n}):s("dashboardFromPlanGeneric",{amount:la(a.quota,e.unit)});return o.jsxs("div",{className:"bpb-usage-row",children:[o.jsxs("div",{className:Z("bpb-usage-row__head",r&&"bpb-usage-row__head--stacked"),children:[o.jsx("span",{className:"bpb-usage-row__label",children:e.label}),o.jsxs("span",{className:"bpb-usage-row__value",children:[o.jsx("span",{className:"bpb-usage-row__used",children:la(i,e.unit)}),o.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",la(a.quota,e.unit)]})]})]}),o.jsxs("span",{className:"bpb-usage-tip",tabIndex:0,role:"note","aria-label":h,onMouseMove:m=>{const g=m.currentTarget.getBoundingClientRect(),N=(m.clientX-g.left)/g.width*100;m.currentTarget.style.setProperty("--bpb-tip-x",`${N}%`)},children:[o.jsx("div",{className:"bpb-usage-bar",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("div",{className:Z("bpb-usage-bar__fill",`bpb-usage-bar__fill--${c}`),style:{width:`${d}%`}})}),o.jsx("span",{className:"bpb-usage-tip__bubble",role:"tooltip",children:h})]})]})},_c=({period:a,showPeriodSelector:e=!0,periodMonths:t=12,className:n,onIncreaseLimits:r})=>{var W;const{isOutdatedBilling:s,locale:i}=X(),{t:l}=ge(),d=T.useMemo(()=>yc(t,i),[t,i]),[c,u]=T.useState(a??((W=d[0])==null?void 0:W.value)??""),p=Gr(),h=Math.max(0,d.findIndex(q=>q.value===c)),m=q=>{const H=d[h+q];H&&u(H.value)},{data:g,isLoading:N,isError:v}=ka({period:c,enabled:!s}),{data:y}=Be({enabled:!s}),{data:_}=Ze(),C=_==null?void 0:_.find(q=>q.id===(y==null?void 0:y.plan.current.planId)),I=C?_e(C.name):void 0,A=C?Ne(C):"community",S=A==="enterprise"||A==="managed",P=q=>C==null?void 0:C.features[q];if(s)return o.jsx("div",{className:Z("bpb-usage bpb-scope",n),children:o.jsx(ma,{})});if(N)return o.jsxs("div",{className:Z("bpb-usage bpb-scope",n),"aria-busy":"true",children:[o.jsx(ue,{height:80}),o.jsx(ue,{height:140})]});if(v||!g)return o.jsx("div",{className:Z("bpb-usage bpb-scope",n),children:o.jsx("p",{className:"bpb-usage__error",role:"alert",children:l("dashboardLoadError")})});const w=g.conversation_sessions,F=g.ai_spend,B=[{key:"table_rows",label:l("dashboardTableRows"),unit:"count"},{key:"vector_db_storage",label:l("dashboardVectorDb"),unit:"bytes"},{key:"file_storage",label:l("dashboardFileStorage"),unit:"bytes"}].filter(q=>g[q.key]);return o.jsxs("div",{className:Z("bpb-usage bpb-scope",n),children:[S&&o.jsx("p",{className:"bpb-usage__enterprise-note",children:l("dashboardEnterpriseUsageNotice")}),(e&&d.length>1||r)&&o.jsxs("div",{className:"bpb-usage__header",children:[e&&d.length>1&&o.jsxs("div",{className:"bpb-usage__period",children:[o.jsx("span",{className:"bpb-usage__period-label",children:l("dashboardBillingPeriod")}),o.jsxs("div",{className:"bpb-usage__period-control",children:[o.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardPrevMonth"),onClick:()=>m(1),disabled:h>=d.length-1,children:o.jsx(Rn,{size:15})}),o.jsxs("span",{className:"bpb-usage__period-field",children:[o.jsx(Ds,{size:15,className:"bpb-usage__period-icon"}),o.jsx("select",{className:"bpb-usage__period-select","aria-label":l("dashboardBillingPeriod"),value:c,onChange:q=>u(q.target.value),children:d.map(q=>o.jsx("option",{value:q.value,children:q.label},q.value))}),o.jsx(Pa,{size:14,className:"bpb-usage__period-chevron"})]}),o.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardNextMonth"),onClick:()=>m(-1),disabled:h<=0,children:o.jsx(sa,{size:15})})]})]}),r&&o.jsxs(Se,{onClick:r,children:[o.jsx($n,{size:15}),l("dashboardIncreaseLimits")]})]}),w&&o.jsxs("section",{className:"bpb-usage__group",children:[o.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardConversationsTitle")}),o.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardConversationsHint")}),o.jsx("div",{className:"bpb-usage__card",children:o.jsx(cr,{entry:w,metric:{key:"conversation_sessions",label:l("dashboardConversationsMetric"),unit:"count"},planAllowance:P("conversation_sessions"),planName:I,stacked:!0})})]}),B.length>0&&o.jsxs("section",{className:"bpb-usage__group",children:[o.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardStorageTitle")}),o.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardStorageHint")}),o.jsx("div",{className:"bpb-usage__card",children:B.map(q=>o.jsx(cr,{entry:g[q.key],metric:q,planAllowance:P(q.key),planName:I},q.key))})]}),F&&o.jsxs("section",{className:"bpb-usage__group",children:[o.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardAiTitle")}),o.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardAiHint")}),o.jsx("div",{className:"bpb-usage__card",children:o.jsx(cr,{entry:F,metric:{key:"ai_spend",label:l("dashboardAiSpend"),unit:"nano-usd"},stacked:!0})}),p&&o.jsxs("div",{className:"bpb-usage__card bpb-usage__card--bots",children:[o.jsx("span",{className:"bpb-usage__subhead",children:l("dashboardAiByBot")}),o.jsx(vc,{period:c})]})]})]})},_o="usage-banner",Nc=({position:a="inline",threshold:e=.9,onUpgrade:t,dismissible:n=!0,cta:r="upgrade",ctaLabel:s,period:i,className:l})=>{const{isOutdatedBilling:d,analytics:c,scope:u}=X(),{t:p}=ge(),{data:h}=ka({period:i,enabled:!d}),[m,g]=T.useState({}),[N,v]=T.useState(!1),[y,_]=T.useState(null),C=h?Object.entries(h).map(([B,W])=>({key:B,pct:W.quota>0?(W.usage??0)/W.quota:0})).filter(B=>B.pct>=e).sort((B,W)=>W.pct-B.pct)[0]:void 0,I=!!C&&(m[C.key]||Ws(_o,u,C.key));if(d||!C||I)return null;const S={conversation_sessions:p("metricConversations"),table_rows:p("metricTableRows"),vector_db_storage:p("metricVectorDb"),file_storage:p("metricFileStorage"),ai_spend:p("metricAiSpend"),bot_count:p("metricBotCount")}[C.key]??C.key.replace(/_/g," "),P=Math.min(100,Math.round(C.pct*100)),w=C.pct>=1,F=()=>{c.capture(ke.UPGRADE_CTA_CLICKED,{source:"usage_banner",metric:C.key,usage_pct:Math.round(C.pct*100)}),t?t():v(!0)},O=w?"critical":"warning";return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:Z("bpb-usage-banner bpb-scope",`bpb-usage-banner--${a}`,`bpb-usage-banner--${O}`,l),role:"alert","aria-live":"polite",children:[o.jsx(en,{size:18,className:"bpb-usage-banner__icon"}),o.jsx("p",{className:"bpb-usage-banner__text",children:w?p("usageBannerLimitReached",{label:S}):p("usageBannerNearLimit",{pct:P,label:S})}),o.jsxs("div",{className:"bpb-usage-banner__actions",children:[o.jsx(Se,{variant:"primary",size:"sm",onClick:F,children:s??p(r==="manage"?"usageBannerManageCta":"usageBannerDefaultCta")}),n&&o.jsx("button",{type:"button",className:"bpb-usage-banner__dismiss","aria-label":p("usageBannerDismiss"),onClick:()=>{Gs(_o,u,C.key),g(B=>({...B,[C.key]:!0}))},children:o.jsx(Xt,{size:16})})]})]}),!t&&o.jsxs(o.Fragment,{children:[o.jsx(Ls,{open:N,onOpenChange:v,onSelectPlan:(B,W)=>{v(!1),_({planId:B,interval:W})}}),y&&o.jsx(zs,{open:!!y,onOpenChange:B=>!B&&_(null),planId:y.planId,interval:y.interval,onBack:()=>{_(null),v(!0)},onSuccess:()=>_(null)})]})]})},Cc=({Icon:a,title:e,description:t,onClick:n,className:r})=>o.jsxs("button",{type:"button",className:Z("bpb-action-card bpb-scope",r),onClick:n,children:[o.jsxs("div",{className:"bpb-action-card__header",children:[o.jsx(a,{size:20}),e]}),o.jsx("p",{className:"bpb-action-card__description",children:t})]}),Tt=({children:a})=>o.jsx("span",{className:"bpb-summary-card__icon","aria-hidden":"true",children:a}),No=({isAddons:a,className:e})=>{const{manageBillingUrl:t}=X(),{t:n}=ge(),r=()=>t&&window.open(t,"_blank","noopener");return o.jsxs("button",{type:"button",className:Z("bpb-summary-card bpb-scope",a?"bpb-summary-card--addons":"bpb-summary-card--plan",e),onClick:r,disabled:!t,children:[o.jsx(Tt,{children:a?o.jsx(Qt,{size:22}):o.jsx(Jt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n(a?"summaryAddonsEyebrow":"summaryCurrentPlan")}),o.jsx("span",{className:"bpb-summary-card__title",children:n("summaryManagedInDashboard")}),o.jsx("span",{className:"bpb-summary-card__meta",children:n("summaryManagedMeta")})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("open"),o.jsx(rt,{size:15})]})]})]})},Sc=({onManage:a,className:e})=>{var N,v;const{isOutdatedBilling:t}=X(),{t:n}=ge(),{data:r,isLoading:s}=Be({enabled:!t}),{data:i,isLoading:l}=Ze();if(t)return o.jsx(No,{isAddons:!1,className:e});if(s||l)return o.jsx(ue,{height:84,rounded:!0,className:Z("bpb-scope",e)});const d=r==null?void 0:r.plan.current,c=i==null?void 0:i.find(y=>y.id===(d==null?void 0:d.planId)),u=(d==null?void 0:d.interval)??"month",p=((N=c==null?void 0:c.prices[u])==null?void 0:N.amount)??0,h=((v=c==null?void 0:c.prices[u])==null?void 0:v.currency)??"usd",m=c==null?void 0:c.features.conversation_sessions,g=c?Ne(c):"community";return o.jsxs("button",{type:"button",className:Z("bpb-summary-card bpb-summary-card--plan bpb-scope",`bpb-summary-card--tier-${g==="managed"?"enterprise":g}`,e),onClick:a,children:[o.jsx(Tt,{children:o.jsx(Jt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("summaryCurrentPlan")}),o.jsx("span",{className:"bpb-summary-card__title",children:c?_e(c.name):n("summaryNoPlan")}),o.jsxs("span",{className:"bpb-summary-card__meta",children:[p>0?`${se(p,h,0)}${n(u==="year"?"perYear":"perMonth")}`:n("free"),m!==void 0&&` · ${n("summaryConversationsPerMo",{n:fe(m)})}`]})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(sa,{size:16})]})]})]})},kc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=X(),{t:n}=ge(),{data:r,isLoading:s}=Be({enabled:!t}),{data:i,isLoading:l}=Sa();if(t)return o.jsx(No,{isAddons:!0,className:e});if(s||l)return o.jsx(ue,{height:84,rounded:!0,className:Z("bpb-scope",e)});const d=(i??[]).flatMap(c=>{var p;const u=((p=r==null?void 0:r.addons[c.id])==null?void 0:p.current.quantity)??0;return u>0?[{name:ha[c.id]?n(ha[c.id]):tt(c.name),quantity:u}]:[]});return o.jsxs("button",{type:"button",className:Z("bpb-summary-card bpb-summary-card--addons bpb-scope",d.length>0&&"bpb-summary-card--active",e),onClick:a,children:[o.jsx(Tt,{children:o.jsx(Qt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("summaryAddonsEyebrow")}),d.length>0?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-summary-card__title",children:d.length>1?n("summaryActiveAddons",{count:d.length}):n("summaryActiveAddon",{count:d.length})}),o.jsx("span",{className:"bpb-summary-card__meta",children:d.map(c=>`${c.quantity}× ${c.name}`).join(" · ")})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-summary-card__title",children:n("summaryNoAddons")}),o.jsx("span",{className:"bpb-summary-card__meta",children:n("summaryNoAddonsMeta")})]})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(sa,{size:16})]})]})]})},wc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=X(),{t:n}=ge(),{data:r,isLoading:s,isError:i}=Mn({enabled:!t});if(t)return null;if(s)return o.jsx(ue,{height:84,rounded:!0,className:Z("bpb-scope",e)});if(i)return o.jsxs("button",{type:"button",className:Z("bpb-summary-card bpb-summary-card--auto-recharge bpb-summary-card--error bpb-scope",e),onClick:a,children:[o.jsx(Tt,{children:o.jsx(en,{size:20})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("autoRechargeTitle")}),o.jsx("span",{className:"bpb-summary-card__title",children:n("autoRechargeSummaryLoadError")})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(sa,{size:16})]})]})]});const l=r==null?void 0:r.ai_spend,d=(l==null?void 0:l.enabled)??!1,c=(l==null?void 0:l.chunkSize)!=null,u=((l==null?void 0:l.chunkSize)??0)/qe,p=(l==null?void 0:l.maxAmount)!=null,h=((l==null?void 0:l.maxAmount)??0)/qe,m=d?c?p?n("autoRechargeSummaryMeta",{amount:se(u,"usd",0),limit:se(h,"usd",0)}):n("autoRechargeSummaryMetaNoLimit",{amount:se(u,"usd",0)}):null:n("autoRechargeDescription");return o.jsxs("button",{type:"button",className:Z("bpb-summary-card bpb-summary-card--auto-recharge bpb-scope",d&&"bpb-summary-card--active",e),onClick:a,children:[o.jsx(Tt,{children:o.jsx(Yt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("autoRechargeTitle")}),o.jsx("span",{className:"bpb-summary-card__title",children:n(d?"autoRechargeSummaryOn":"autoRechargeSummaryOff")}),m&&o.jsx("span",{className:"bpb-summary-card__meta",children:m})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(sa,{size:16})]})]})]})},Tc=({onManage:a,className:e})=>{var K,ee;const{isOutdatedBilling:t,locale:n,manageBillingUrl:r,analytics:s}=X(),{t:i}=ge(),{data:l,isLoading:d}=Be({enabled:!t}),{data:c,isLoading:u}=Ze(),{data:p,isLoading:h}=Sa();if(t){const E=()=>r&&window.open(r,"_blank","noopener");return o.jsxs("button",{type:"button",className:Z("bpb-plan-banner bpb-plan-banner--community bpb-scope",e),onClick:E,disabled:!r,children:[o.jsxs("div",{className:"bpb-plan-banner__main",children:[o.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),o.jsx("span",{className:"bpb-plan-banner__name",children:i("planBannerManagedTitle")}),o.jsx("span",{className:"bpb-plan-banner__sub",children:i("planBannerManagedSub")})]}),o.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("open")," ",o.jsx(rt,{size:16})]})]})}if(d||u||h)return o.jsx(ue,{height:132,rounded:!0,className:Z("bpb-scope",e)});const m=l==null?void 0:l.plan.current,g=c==null?void 0:c.find(E=>E.id===(m==null?void 0:m.planId)),N=(m==null?void 0:m.interval)??"month",v=((K=g==null?void 0:g.prices[N])==null?void 0:K.currency)??"usd",y=g?Ne(g):"community",_=Object.fromEntries(Object.entries((l==null?void 0:l.addons)??{}).map(([E,pe])=>{var ae;return[E,((ae=pe.current)==null?void 0:ae.quantity)??0]})),C=((ee=g==null?void 0:g.prices[N])==null?void 0:ee.amount)??0,I=(p??[]).reduce((E,pe)=>{const ae=g?Kt(pe,g,N):null;return E+(_[pe.id]??0)*((ae==null?void 0:ae.amount)??0)},0),A=C+I,S=N==="year"?"/yr":"/mo",P=_s(g,p,_).find(E=>E.key==="conversation_sessions"),w=i(y==="community"?"conversationsUnit":"conversationsPerMonth"),F=y==="enterprise"||y==="managed",O=y!=="community"&&!F,B=l==null?void 0:l.plan.next,W=B&&B.planId!==(m==null?void 0:m.planId),q=m==null?void 0:m.periodEnd,H=O&&!W&&q&&!nn(q)?Je(q,n):null,z=c==null?void 0:c.find(E=>E.id===(B==null?void 0:B.planId)),D=B==null?void 0:B.effectiveDate,Y=W&&z&&D?i("planBannerDowngradesTo",{plan:_e(z.name),date:Je(D,n)}):null;return o.jsxs("button",{type:"button",className:Z("bpb-plan-banner",`bpb-plan-banner--${y}`,"bpb-scope",e),onClick:()=>{s.capture(ke.UPGRADE_CTA_CLICKED,{source:"plan_banner",current_tier:y}),a()},children:[o.jsxs("div",{className:"bpb-plan-banner__main",children:[o.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),o.jsx("span",{className:"bpb-plan-banner__name",children:g?_e(g.name):i("planBannerNoPlan")}),F?o.jsx("span",{className:"bpb-plan-banner__sub",children:P&&P.added>0?o.jsxs(o.Fragment,{children:[i("planBannerCustom")," + ",fe(P.added)," ",w]}):i("planBannerCustomConversations")}):P&&o.jsx("span",{className:"bpb-plan-banner__sub",children:P.added>0?o.jsxs(o.Fragment,{children:[fe(P.base)," + ",fe(P.added)," ",w]}):`${fe(P.total)} ${w}`})]}),o.jsxs("div",{className:"bpb-plan-banner__summary",children:[F?o.jsx("span",{className:"bpb-plan-banner__price",children:i("planBannerCustomPricing")}):o.jsx("span",{className:"bpb-plan-banner__price",children:A>0&&o.jsxs(o.Fragment,{children:[se(A,v,0),o.jsx("span",{className:"bpb-plan-banner__price-suffix",children:S})]})}),O&&o.jsxs("span",{className:"bpb-plan-banner__meta",children:[i(N==="year"?"billedAnnually":"billedMonthly"),I>0&&` ${i("planBannerInclAddons")}`]}),H&&o.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerRenews",{date:H})}),Y&&o.jsx("span",{className:"bpb-plan-banner__meta",children:Y})]}),o.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("planBannerManageCta")," ",o.jsx(sa,{size:16})]})]})},Ic=({onManage:a,period:e,variant:t="card",showHealthyEnterprise:n=!1,className:r,style:s})=>{const{isOutdatedBilling:i,locale:l}=X(),{t:d}=ge(),{data:c,isLoading:u}=Be({enabled:!i}),{data:p,isLoading:h}=Ze(),{data:m,isLoading:g}=ka({period:e,enabled:!i});if(i)return null;if(u||h||g)return o.jsx(ue,{height:72,rounded:!0,className:Z("bpb-scope",r)});const N=p==null?void 0:p.find(Y=>Y.id===(c==null?void 0:c.plan.current.planId)),v=N?Ne(N):"community",y=v==="enterprise"||v==="managed",_=wt(m),C=_.find(Y=>Y.used>Y.quota);if(y&&!C&&!n)return null;const I=_.find(Y=>Y.key==="conversation_sessions"),A=_[0],S=C??(A&&A.key!=="conversation_sessions"&&A.pct>=75?A:I??A),P=S?Math.round(S.pct):0,w=P>0?Math.max(5,P):0,F=S?vn(S.pct):"normal",O=F!=="normal",B=v==="community",W=!B&&(S!=null&&S.resets)?Je(Os(e??new Date().toISOString()),l):null;let q=null,H=null;if(S&&O){const Y=Ra(S.remaining,S.unit);q=d(F==="critical"?"usageWidgetLimitReached":"usageWidgetRunningLow"),y?H=d("usageWidgetEnterpriseOverQuota"):B&&S.key==="conversation_sessions"?H=F==="critical"?d("usageWidgetFreeExhausted"):d("usageWidgetFreeLeft",{left:Y}):H=F==="critical"?d("usageWidgetUpgradeToKeepGoing"):d("usageWidgetOnlyLeft",{left:Y})}const z=o.jsx(o.Fragment,{children:S?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-plan-usage__head",children:[O&&o.jsx(en,{size:16,className:Z("bpb-plan-usage__alert",`bpb-plan-usage__alert--${F}`)}),o.jsx("span",{className:"bpb-plan-usage__plan",children:yo(S.key,d)}),o.jsxs("span",{className:"bpb-plan-usage__count",children:[Ra(S.used,S.unit)," / ",Ra(S.quota,S.unit)]}),a&&!O&&o.jsx(sa,{size:15,className:"bpb-plan-usage__chevron"})]}),o.jsx("div",{className:"bpb-plan-usage__bar",role:"progressbar","aria-valuenow":P,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("div",{className:Z("bpb-plan-usage__fill",`bpb-plan-usage__fill--${F}`),style:{width:`${w}%`}})}),q?o.jsxs("p",{className:"bpb-plan-usage__status",children:[o.jsxs("strong",{className:Z("bpb-plan-usage__status-word",`bpb-plan-usage__status-word--${F}`),children:[q,"."]})," ",H&&o.jsx("span",{className:"bpb-plan-usage__status-detail",children:H})]}):W&&o.jsx("span",{className:"bpb-plan-usage__reset",children:d("usageWidgetResets",{date:W})}),a&&O&&!y&&o.jsxs("span",{className:"bpb-plan-usage__cta",children:[d("usageWidgetViewOptions"),o.jsx(an,{size:14})]})]}):o.jsxs("div",{className:"bpb-plan-usage__head",children:[o.jsx("span",{className:"bpb-plan-usage__plan",children:N?_e(N.name):d("free")}),a&&o.jsx(sa,{size:15,className:"bpb-plan-usage__chevron"})]})}),D=Z("bpb-plan-usage bpb-scope",`bpb-plan-usage--${t}`,O&&`bpb-plan-usage--${F}`,a&&"bpb-plan-usage--clickable",r);return a?o.jsx("button",{type:"button",className:D,style:s,onClick:a,children:z}):o.jsx("div",{className:D,style:s,children:z})},Co=({children:a,delay:e=200,placement:t="top",align:n="center",period:r,onUpgrade:s,block:i=!1,className:l})=>{const{isOutdatedBilling:d,analytics:c,locale:u}=X(),{t:p}=ge(),{data:h}=ka({period:r,enabled:!d}),{data:m}=Be({enabled:!d}),{data:g}=Ze(),[N,v]=T.useState(!1),y=T.useRef(null),_=()=>{y.current&&(clearTimeout(y.current),y.current=null)};T.useEffect(()=>_,[]);const C=g==null?void 0:g.find(z=>z.id===(m==null?void 0:m.plan.current.planId)),I=C?Ne(C):"community",A=wt(h),S=!d&&A.length>0,P=()=>{S&&(_(),y.current=setTimeout(()=>v(!0),Math.max(0,e)))},w=()=>{_(),v(!1)},F=C?_e(C.name):p("free"),O=I==="community",B=O?A.find(z=>z.key==="conversation_sessions"):void 0,W=O&&!!s,q=Je(Os(r??new Date().toISOString()),u),H=()=>{c.capture(ke.UPGRADE_CTA_CLICKED,{source:"usage_popover"}),s==null||s()};return o.jsxs("span",{className:Z("bpb-usage-pop bpb-scope",i&&"bpb-usage-pop--block",l),onMouseEnter:P,onMouseLeave:w,onFocus:P,onBlur:w,children:[a,N&&S&&o.jsxs("span",{className:Z("bpb-usage-pop__card",`bpb-usage-pop__card--${t}`,`bpb-usage-pop__card--align-${n}`),role:"tooltip",children:[O?o.jsxs("span",{className:"bpb-usage-pop__header",children:[o.jsx("span",{className:"bpb-usage-pop__plan",children:p("usagePopoverFreeTitle")}),B&&o.jsx("span",{className:"bpb-usage-pop__subtitle",children:o.jsx(Mt,{i18nKey:"usagePopoverFreeSubtitle",values:{quota:fe(B.quota)},components:{bold:o.jsx("strong",{})}})})]}):o.jsx(o.Fragment,{children:o.jsxs("span",{className:"flex flex-col gap-1 bpb-usage-pop__title",children:[o.jsx("span",{className:"bpb-usage-pop__plan",children:p("usagePopoverPlanName",{planName:F})}),o.jsx("span",{className:"bpb-usage-pop__period",children:p("usagePopoverTitle",{date:q})})]})}),A.map(z=>{const D=z.pct>0?Math.max(5,z.pct):0;return o.jsxs("span",{className:"bpb-usage-pop__item",children:[o.jsxs("span",{className:"bpb-usage-pop__head",children:[o.jsx("span",{className:"bpb-usage-pop__name",children:yo(z.key,p)}),o.jsxs("span",{className:"bpb-usage-pop__val",children:[Ra(z.used,z.unit)," / ",Ra(z.quota,z.unit)]})]}),o.jsx("span",{className:"bpb-usage-pop__bar",children:o.jsx("span",{className:Z("bpb-usage-pop__fill",`bpb-usage-pop__fill--${vn(z.pct)}`),style:{width:`${D}%`}})})]},z.key)}),W&&o.jsxs("span",{className:"bpb-usage-pop__nudge",children:[o.jsx("span",{className:"bpb-usage-pop__nudge-text",children:o.jsx(Mt,{i18nKey:"usagePopoverNudgeText",components:{bold:o.jsx("strong",{})}})}),o.jsxs("button",{type:"button",className:"bpb-usage-pop__nudge-cta",onClick:H,children:[p("usagePopoverNudgeCta"),o.jsx(an,{size:14})]})]})]})]})},Ac=({size:a=20,thickness:e=3.5,showLabel:t=!1,onClick:n,popoverDelay:r=200,popoverAlign:s="center",trackColor:i="light",period:l,className:d,...c})=>{const{isOutdatedBilling:u}=X(),{data:p}=ka({period:l,enabled:!u}),h=wt(p);if(u||h.length===0)return null;const m=h[0],g=vn(m.pct),N=m.pct>0?Math.max(5,m.pct):0,v=(a-e)/2,y=2*Math.PI*v,_=y*(1-N/100),C=c["aria-label"]??`${Math.round(m.pct)}% of your ${m.label.toLowerCase()} used`,I=o.jsxs(o.Fragment,{children:[o.jsxs("svg",{className:"bpb-usage-ring__svg",width:a,height:a,viewBox:`0 0 ${a} ${a}`,"aria-hidden":!0,children:[o.jsx("circle",{className:Z("bpb-usage-ring__track",`bpb-usage-ring__track--${i}`),cx:a/2,cy:a/2,r:v,fill:"none",strokeWidth:e}),o.jsx("circle",{className:Z("bpb-usage-ring__arc",`bpb-usage-ring__arc--${g}`),cx:a/2,cy:a/2,r:v,fill:"none",strokeWidth:e,strokeLinecap:"round",strokeDasharray:y,strokeDashoffset:_,transform:`rotate(-90 ${a/2} ${a/2})`})]}),t&&o.jsxs("span",{className:"bpb-usage-ring__label",children:[Math.round(m.pct),"%"]})]}),A=Z("bpb-usage-ring",n&&"bpb-usage-ring--clickable"),S=n?o.jsx("button",{type:"button",className:A,onClick:n,"aria-label":C,children:I}):o.jsx("span",{className:A,tabIndex:0,role:"img","aria-label":C,children:I});return o.jsx(Co,{delay:r,align:s,period:l,className:d,children:S})},So=({checked:a,onChange:e,disabled:t,className:n,...r})=>o.jsx("button",{type:"button",role:"switch","aria-checked":a,"aria-label":r["aria-label"],disabled:t,className:Z("bpb-switch",a&&"bpb-switch--checked",n),onClick:()=>e(!a),children:o.jsx("span",{className:"bpb-switch__thumb"})}),ko="ai_spend",Pc=5,ur=a=>(a??0)/qe,pr=a=>Math.round(a*qe),wo=a=>Number.isInteger(a)&&a>=Pc,xc=(a,e)=>Number.isInteger(a)&&a>=0&&e>0&&a%e===0,Dc=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=X(),{t:s}=ge();return r?o.jsx(Fe,{open:a,onOpenChange:e,size:"md","aria-label":s("autoRechargeTitle"),className:"bpb-scope",children:o.jsx(ma,{})}):o.jsx(Fe,{open:a,onOpenChange:e,size:"md","aria-label":s("autoRechargeTitle"),className:"bpb-scope",children:o.jsx(Ec,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},Ec=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{const{toast:n,analytics:r}=X(),{t:s}=ge(),{data:i,isLoading:l,isError:d,refetch:c}=Be(),{data:u,isLoading:p,isError:h,refetch:m}=Ze(),{data:g,isLoading:N,isError:v,refetch:y}=Mn(),_=qr(),[C,I]=T.useState(null),[A,S]=T.useState(!1),[P,w]=T.useState(!1),[F,O]=T.useState(!1),B=l||p||N,W=d||h||v,q=()=>{c(),m(),y()},H=u==null?void 0:u.find(me=>me.id===(i==null?void 0:i.plan.current.planId)),z=i?H?Ne(H)==="community":!0:!1,D=g==null?void 0:g[ko],Y=T.useMemo(()=>{const me=(D==null?void 0:D.maxAmount)!=null,ve=(D==null?void 0:D.targetType)==="credit_grant"&&(D==null?void 0:D.thresholdType)==="remaining_amount"?D==null?void 0:D.threshold:null;return{thresholdInput:ve!=null?String(Math.round(ur(ve))):"",chunkInput:(D==null?void 0:D.chunkSize)!=null?String(Math.round(ur(D.chunkSize))):"",limitInput:(D==null?void 0:D.maxAmount)!=null?String(Math.round(ur(D.maxAmount))):"",hasLimit:me}},[D]),K=C??Y,ee=me=>I({...K,...me}),E=Number(K.thresholdInput),pe=Number(K.chunkInput),ae=Number(K.limitInput),ce=K.thresholdInput.trim()!==""&&wo(E),U=wo(pe),$=!K.hasLimit||K.limitInput.trim()!==""&&xc(ae,pe),R=A&&!ce,x=P&&!U,be=F&&!$,te=K.thresholdInput!==Y.thresholdInput||K.chunkInput!==Y.chunkInput||K.limitInput!==Y.limitInput||K.hasLimit!==Y.hasLimit,de=()=>{_.mutate({settings:{[ko]:{targetType:"credit_grant",thresholdType:"remaining_amount",threshold:pr(E),chunkSize:pr(pe),maxAmount:K.hasLimit?pr(ae):null}}},{onSuccess:()=>{n({type:"success",message:s("autoRechargeUpdateSuccess")}),r.capture(ke.AUTO_RECHARGE_UPDATED),I(null),a(!1),e==null||e()},onError:()=>n({type:"error",message:s("autoRechargeUpdateError")})})};return o.jsxs("div",{className:"bpb-auto-recharge-dialog",children:[o.jsx("h2",{className:"bpb-auto-recharge-dialog__title",children:s("autoRechargeTitle")}),o.jsx("p",{className:"bpb-auto-recharge-dialog__subtitle",children:s("autoRechargeDescription")}),B?o.jsxs("div",{className:"bpb-auto-recharge-dialog__loading","aria-busy":"true",children:[o.jsx(ue,{height:40}),o.jsx(ue,{height:72})]}):W?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-auto-recharge-dialog__error",role:"alert",children:[o.jsx("span",{className:"bpb-auto-recharge-dialog__error-icon","aria-hidden":"true",children:o.jsx(en,{size:18})}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__error-text",children:[o.jsx("p",{className:"bpb-auto-recharge-dialog__error-title",children:s("autoRechargeLoadErrorTitle")}),o.jsx("p",{className:"bpb-auto-recharge-dialog__error-body",children:s("autoRechargeLoadError")})]})]}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__actions",children:[o.jsx(Se,{variant:"outline",onClick:()=>a(!1),children:s("close")}),o.jsx(Se,{variant:"primary",onClick:q,children:s("tryAgain")})]})]}):z?o.jsx(Vs,{title:s("autoRechargeRequiresPaidPlanTitle"),body:s("autoRechargeRequiresPaidPlanBody"),ctaLabel:s("autoRechargeUpgradeCta"),onUpgrade:t?()=>{a(!1),t()}:void 0,onClose:()=>a(!1)}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[o.jsxs("div",{className:Z("bpb-auto-recharge-dialog__panel",R&&"bpb-auto-recharge-dialog__panel--invalid"),children:[o.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-threshold",children:s("autoRechargeThresholdLabel")}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[o.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),o.jsx("input",{id:"auto-recharge-threshold",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:_.isPending,value:K.thresholdInput,onChange:me=>{ee({thresholdInput:me.target.value}),S(!0)}})]})]}),o.jsx("span",{className:Z("bpb-auto-recharge-dialog__hint",R&&"bpb-auto-recharge-dialog__hint--error"),children:s(R?"autoRechargeThresholdError":"autoRechargeThresholdHint")})]}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[o.jsxs("div",{className:Z("bpb-auto-recharge-dialog__panel",x&&"bpb-auto-recharge-dialog__panel--invalid"),children:[o.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-chunk",children:s("autoRechargeChunkLabel")}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[o.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),o.jsx("input",{id:"auto-recharge-chunk",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:_.isPending,value:K.chunkInput,onChange:me=>{ee({chunkInput:me.target.value}),w(!0)}})]})]}),o.jsx("span",{className:Z("bpb-auto-recharge-dialog__hint",x&&"bpb-auto-recharge-dialog__hint--error"),children:s(x?"autoRechargeChunkError":"autoRechargeChunkHint")})]}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[o.jsxs("div",{className:"bpb-auto-recharge-dialog__panel bpb-auto-recharge-dialog__panel--switch",children:[o.jsxs("div",{className:"bpb-auto-recharge-dialog__row-text",children:[o.jsx("span",{className:"bpb-auto-recharge-dialog__row-label",children:s("autoRechargeSetLimitLabel")}),o.jsx("span",{className:"bpb-auto-recharge-dialog__row-description",children:s("autoRechargeSetLimitHint")})]}),o.jsx(So,{"aria-label":s("autoRechargeSetLimitLabel"),checked:K.hasLimit,onChange:me=>ee({hasLimit:me}),disabled:_.isPending})]}),!K.hasLimit&&o.jsx("span",{className:"bpb-auto-recharge-dialog__hint",children:s("autoRechargeNoCapHint")})]}),o.jsx("div",{className:Z("bpb-auto-recharge-dialog__collapse",K.hasLimit&&"bpb-auto-recharge-dialog__collapse--open"),children:o.jsx("div",{className:"bpb-auto-recharge-dialog__collapse-inner",children:o.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[o.jsxs("div",{className:Z("bpb-auto-recharge-dialog__panel",be&&"bpb-auto-recharge-dialog__panel--invalid"),children:[o.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-limit",children:s("autoRechargeLimitLabel")}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[o.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),o.jsx("input",{id:"auto-recharge-limit",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:_.isPending,value:K.limitInput,onChange:me=>{ee({limitInput:me.target.value}),O(!0)}})]})]}),o.jsx("span",{className:Z("bpb-auto-recharge-dialog__hint",be&&"bpb-auto-recharge-dialog__hint--error"),children:be?s("autoRechargeLimitError",{amount:se(pe,"usd",0)}):s("autoRechargeLimitHint",{amount:se(pe,"usd",0)})})]})})}),!(D!=null&&D.enabled)&&(D==null?void 0:D.disabledReason)&&o.jsx("p",{className:"bpb-auto-recharge-dialog__disabled-note",role:"alert",children:s("autoRechargeDisabledReason",{reason:D.disabledReason})}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__actions",children:[o.jsx(Se,{variant:"outline",onClick:()=>a(!1),disabled:_.isPending,children:s("cancel")}),o.jsx(Se,{variant:"primary",disabled:!te||!ce||!U||!$,loading:_.isPending,onClick:de,children:s("save")})]})]})]})};k.AddonsSummaryCard=kc,k.ArrowRightIcon=an,k.AutoRechargeDialog=Dc,k.AutoRechargeSummaryCard=wc,k.BILLING_EVENTS=ke,k.Badge=nt,k.BankIcon=Pl,k.BillingActionCard=Cc,k.BillingProvider=Di,k.BoltIcon=Qt,k.Button=Se,k.CalendarIcon=Ds,k.CardBrandBadge=Yn,k.CardIcon=Kn,k.ChartIcon=Is,k.CheckIcon=Cs,k.CheckoutDialog=zs,k.ChevronDownIcon=Pa,k.ChevronLeftIcon=Rn,k.ChevronRightIcon=sa,k.CloseIcon=Xt,k.DEFAULT_FEATURE_LABELS=gs,k.DEFAULT_PLAN_FEATURES=Ht,k.Dialog=Fe,k.DownloadIcon=Hn,k.ENTERPRISE_CONTACT_URL=Wn,k.ExternalLinkIcon=rt,k.GlobeIcon=As,k.InfinityIcon=ws,k.InfoTooltip=st,k.Input=rn,k.InvoicesDialog=ad,k.LayersIcon=Jt,k.LockIcon=xl,k.ManageAddonsDialog=Xl,k.MessageIcon=Ss,k.MinusIcon=xs,k.NANO_DOLLARS_PER_DOLLAR=qe,k.OutdatedBillingGate=ma,k.OutgrowFreeDialog=fc,k.PLAN_FEATURE_KEYS=$t,k.PLAN_ORDER=Aa,k.PaintIcon=Ps,k.PaymentMethodDialog=nd,k.PlanBanner=Tc,k.PlanSummaryCard=Sc,k.PlanUsageWidget=Ic,k.PlusIcon=$n,k.PuzzleIcon=ks,k.ReceiptIcon=El,k.SegmentedControl=Es,k.Select=nr,k.ShieldIcon=Gn,k.Skeleton=ue,k.SparkleIcon=Yt,k.Stepper=js,k.Switch=So,k.USAGE_METRICS=fo,k.UpgradePlanDialog=Ls,k.UsageBanner=Nc,k.UsageDashboard=_c,k.UsagePopover=Co,k.UsageRing=Ac,k.UsersIcon=Ts,k.addDays=ms,k.addonDisplayName=tt,k.addonLimitsPreview=vs,k.addonPrice=Kt,k.billingKeys=Ie,k.cn=Z,k.conversationPackPrice=Rt,k.conversationsAddon=fs,k.currencySymbol=at,k.featureLabel=Il,k.formatBytes=Ia,k.formatCurrency=se,k.formatDate=Je,k.formatQuantity=fe,k.formatUsage=Ra,k.getCardElementStyle=ar,k.getStripeAppearance=er,k.getStripePromise=fr,k.iconForFeature=tn,k.isLegacyBillingVersion=Vr,k.planDisplayName=_e,k.planEntitlements=_s,k.planKind=Ne,k.toStripeLocale=tr,k.usageItems=wt,k.usageTier=vn,k.useAddons=Sa,k.useAutoRechargeSettings=Mn,k.useBilling=X,k.useBillingReadonly=Fn,k.useCreatePaymentMethodIntent=On,k.useCustomer=Ln,k.useInvoices=Zr,k.useIsAuthorized=Mi,k.usePaymentMethod=En,k.usePlans=Ze,k.useSetAddons=Kr,k.useSetAutoRechargeSettings=qr,k.useSetCustomer=Un,k.useSetPaymentMethod=Bn,k.useSetSubscription=zn,k.useSubscription=Be,k.useSubscriptionPreview=Dn,k.useSupportsUsageByBot=Gr,k.useUsage=ka,k.useUsageByBot=Wr,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
1
+ (function(k,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react/jsx-runtime"),require("@tanstack/react-query"),require("react"),require("@stripe/stripe-js"),require("react-dom"),require("@stripe/react-stripe-js")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@tanstack/react-query","react","@stripe/stripe-js","react-dom","@stripe/react-stripe-js"],o):(k=typeof globalThis<"u"?globalThis:k||self,o(k.BillingUI={},k.ReactJsxRuntime,k.ReactQuery,k.React,k.StripeJs,k.ReactDOM,k.ReactStripeJs))})(this,function(k,o,Ce,I,Eo,Lo,Be){"use strict";var Vc=Object.defineProperty;var jc=(k,o,Ce)=>o in k?Vc(k,o,{enumerable:!0,configurable:!0,writable:!0,value:Ce}):k[o]=Ce;var Do=(k,o,Ce)=>jc(k,typeof o!="symbol"?o+"":o,Ce);const _r=new Map;function Nr(a){let e=_r.get(a);return e||(e=Eo.loadStripe(a,{developerTools:{assistant:{enabled:!1}}}),_r.set(a,e)),e}var me=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Fo(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Mo={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};const Oo=Fo(Mo);var Bo=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function Cr(a){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=a.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(e.name=t[1],(Oo[t[1]]||a.charAt(a.length-2)==="/")&&(e.voidElement=!0),e.name.startsWith("!--"))){var n=a.indexOf("-->");return{type:"comment",comment:n!==-1?a.slice(4,n):""}}for(var r=new RegExp(Bo),s=null;(s=r.exec(a))!==null;)if(s[0].trim())if(s[1]){var i=s[1].trim(),l=[i,""];i.indexOf("=")>-1&&(l=i.split("=")),e.attrs[l[0]]=l[1],r.lastIndex--}else s[2]&&(e.attrs[s[2]]=s[3].trim().substring(1,s[3].length-1));return e}var Uo=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,zo=/^\s*$/,Vo=Object.create(null);function Sr(a,e){switch(e.type){case"text":return a+e.content;case"tag":return a+="<"+e.name+(e.attrs?function(t){var n=[];for(var r in t)n.push(r+'="'+t[r]+'"');return n.length?" "+n.join(" "):""}(e.attrs):"")+(e.voidElement?"/>":">"),e.voidElement?a:a+e.children.reduce(Sr,"")+"</"+e.name+">";case"comment":return a+"<!--"+e.comment+"-->"}}var jo={parse:function(a,e){e||(e={}),e.components||(e.components=Vo);var t,n=[],r=[],s=-1,i=!1;if(a.indexOf("<")!==0){var l=a.indexOf("<");n.push({type:"text",content:l===-1?a:a.substring(0,l)})}return a.replace(Uo,function(d,c){if(i){if(d!=="</"+t.name+">")return;i=!1}var u,p=d.charAt(1)!=="/",h=d.startsWith("<!--"),m=c+d.length,y=a.charAt(m);if(h){var f=Cr(d);return s<0?(n.push(f),n):((u=r[s]).children.push(f),n)}if(p&&(s++,(t=Cr(d)).type==="tag"&&e.components[t.name]&&(t.type="component",i=!0),t.voidElement||i||!y||y==="<"||t.children.push({type:"text",content:a.slice(m,a.indexOf("<",m))}),s===0&&n.push(t),(u=r[s-1])&&u.children.push(t),r[s]=t),(!p||t.voidElement)&&(s>-1&&(t.voidElement||t.name===d.slice(2,-1))&&(s--,t=s===-1?n:r[s]),!i&&y!=="<"&&y)){u=s===-1?n:r[s].children;var _=a.indexOf("<",m),S=a.slice(m,_===-1?void 0:_);zo.test(S)&&(S=" "),(_>-1&&s+u.length>=0||S!==" ")&&u.push({type:"text",content:S})}}),n},stringify:function(a){return a.reduce(function(e,t){return e+Sr("",t)},"")}};function Ft(){if(console&&console.warn){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Ue(e[0])&&(e[0]=`react-i18next:: ${e[0]}`),console.warn(...e)}}const kr={};function Mt(){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Ue(e[0])&&kr[e[0]]||(Ue(e[0])&&(kr[e[0]]=new Date),Ft(...e))}const wr=(a,e)=>()=>{if(a.isInitialized)e();else{const t=()=>{setTimeout(()=>{a.off("initialized",t)},0),e()};a.on("initialized",t)}},Tr=(a,e,t)=>{a.loadNamespaces(e,wr(a,t))},Ir=(a,e,t,n)=>{Ue(t)&&(t=[t]),t.forEach(r=>{a.options.ns.indexOf(r)<0&&a.options.ns.push(r)}),a.loadLanguages(e,wr(a,n))},Zo=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=e.languages[0],r=e.options?e.options.fallbackLng:!1,s=e.languages[e.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(l,d)=>{const c=e.services.backendConnector.state[`${l}|${d}`];return c===-1||c===2};return t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!i(e.isLanguageChangingTo,a)?!1:!!(e.hasResourceBundle(n,a)||!e.services.backendConnector.backend||e.options.resources&&!e.options.partialBundledLanguages||i(n,a)&&(!r||i(s,a)))},qo=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(Mt("i18n.languages were undefined or empty",e.languages),!0):e.options.ignoreJSONStructure!==void 0?e.hasLoadedNamespace(a,{lng:t.lng,precheck:(r,s)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&r.services.backendConnector.backend&&r.isLanguageChangingTo&&!s(r.isLanguageChangingTo,a))return!1}}):Zo(a,e,t)},Ue=a=>typeof a=="string",Ba=a=>typeof a=="object"&&a!==null,Wo=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Go={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},Ko=a=>Go[a];let kn={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:a=>a.replace(Wo,Ko)};const Ro=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};kn={...kn,...a}},Ar=()=>kn;let Pr;const $o=a=>{Pr=a},wn=()=>Pr,Tn=(a,e)=>{if(!a)return!1;const t=a.props?a.props.children:a.children;return e?t.length>0:!!t},In=a=>{if(!a)return[];const e=a.props?a.props.children:a.children;return a.props&&a.props.i18nIsDynamicList?Ua(e):e},Ho=a=>Array.isArray(a)&&a.every(I.isValidElement),Ua=a=>Array.isArray(a)?a:[a],Yo=(a,e)=>{const t={...e};return t.props=Object.assign(a.props,e.props),t},xr=(a,e)=>{if(!a)return"";let t="";const n=Ua(a),r=e.transSupportBasicHtmlNodes&&e.transKeepBasicHtmlNodesFor?e.transKeepBasicHtmlNodesFor:[];return n.forEach((s,i)=>{if(Ue(s))t+=`${s}`;else if(I.isValidElement(s)){const{props:l,type:d}=s,c=Object.keys(l).length,u=r.indexOf(d)>-1,p=l.children;if(!p&&u&&!c)t+=`<${d}/>`;else if(!p&&(!u||c)||l.i18nIsDynamicList)t+=`<${i}></${i}>`;else if(u&&c===1&&Ue(p))t+=`<${d}>${p}</${d}>`;else{const h=xr(p,e);t+=`<${i}>${h}</${i}>`}}else if(s===null)Ft("Trans: the passed in value is invalid - seems you passed in a null child.");else if(Ba(s)){const{format:l,...d}=s,c=Object.keys(d);if(c.length===1){const u=l?`${c[0]}, ${l}`:c[0];t+=`{{${u}}}`}else Ft("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",s)}else Ft("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",s)}),t},Jo=(a,e,t,n,r,s)=>{if(e==="")return[];const i=n.transKeepBasicHtmlNodesFor||[],l=e&&new RegExp(i.map(_=>`<${_}`).join("|")).test(e);if(!a&&!l&&!s)return[e];const d={},c=_=>{Ua(_).forEach(v=>{Ue(v)||(Tn(v)?c(In(v)):Ba(v)&&!I.isValidElement(v)&&Object.assign(d,v))})};c(a);const u=jo.parse(`<0>${e}</0>`),p={...d,...r},h=(_,S,v)=>{const w=In(_),T=y(w,S.children,v);return Ho(w)&&T.length===0||_.props&&_.props.i18nIsDynamicList?w:T},m=(_,S,v,w,T)=>{_.dummy?(_.children=S,v.push(I.cloneElement(_,{key:w},T?void 0:S))):v.push(...I.Children.map([_],A=>{const N={...A.props};return delete N.i18nIsDynamicList,I.createElement(A.type,{...N,key:w,ref:A.ref},T?null:S)}))},y=(_,S,v)=>{const w=Ua(_);return Ua(S).reduce((A,N,F)=>{const C=N.children&&N.children[0]&&N.children[0].content&&t.services.interpolator.interpolate(N.children[0].content,p,t.language);if(N.type==="tag"){let P=w[parseInt(N.name,10)];v.length===1&&!P&&(P=v[0][N.name]),P||(P={});const x=Object.keys(N.attrs).length!==0?Yo({props:N.attrs},P):P,O=I.isValidElement(x),W=O&&Tn(N,!0)&&!N.voidElement,j=l&&Ba(x)&&x.dummy&&!O,Q=Ba(a)&&Object.hasOwnProperty.call(a,N.name);if(Ue(x)){const K=t.services.interpolator.interpolate(x,p,t.language);A.push(K)}else if(Tn(x)||W){const K=h(x,N,v);m(x,K,A,F)}else if(j){const K=y(w,N.children,v);m(x,K,A,F)}else if(Number.isNaN(parseFloat(N.name)))if(Q){const K=h(x,N,v);m(x,K,A,F,N.voidElement)}else if(n.transSupportBasicHtmlNodes&&i.indexOf(N.name)>-1)if(N.voidElement)A.push(I.createElement(N.name,{key:`${N.name}-${F}`}));else{const K=y(w,N.children,v);A.push(I.createElement(N.name,{key:`${N.name}-${F}`},K))}else if(N.voidElement)A.push(`<${N.name} />`);else{const K=y(w,N.children,v);A.push(`<${N.name}>${K}</${N.name}>`)}else if(Ba(x)&&!O){const K=N.children[0]?C:null;K&&A.push(K)}else m(x,C,A,F,N.children.length!==1||!C)}else if(N.type==="text"){const P=n.transWrapTextNodes,x=s?n.unescape(t.services.interpolator.interpolate(N.content,p,t.language)):t.services.interpolator.interpolate(N.content,p,t.language);P?A.push(I.createElement(P,{key:`${N.name}-${F}`},x)):A.push(x)}return A},[])},f=y([{dummy:!0,children:a||[]}],u,Ua(a||[]));return In(f[0])};function Qo(a){let{children:e,count:t,parent:n,i18nKey:r,context:s,tOptions:i={},values:l,defaults:d,components:c,ns:u,i18n:p,t:h,shouldUnescape:m,...y}=a;const f=p||wn();if(!f)return Mt("You will need to pass in an i18next instance by using i18nextReactModule"),e;const _=h||f.t.bind(f)||(W=>W),S={...Ar(),...f.options&&f.options.react};let v=u||_.ns||f.options&&f.options.defaultNS;v=Ue(v)?[v]:v||["translation"];const w=xr(e,S),T=d||w||S.transEmptyNodeValue||r,{hashTransKey:A}=S,N=r||(A?A(w||T):w||T);f.options&&f.options.interpolation&&f.options.interpolation.defaultVariables&&(l=l&&Object.keys(l).length>0?{...l,...f.options.interpolation.defaultVariables}:{...f.options.interpolation.defaultVariables});const F=l||t!==void 0||!e?i.interpolation:{interpolation:{...i.interpolation,prefix:"#$?",suffix:"?$#"}},C={...i,context:s||i.context,count:t,...l,...F,defaultValue:T,ns:v},P=N?_(N,C):T;c&&Object.keys(c).forEach(W=>{const j=c[W];if(typeof j.type=="function"||!j.props||!j.props.children||P.indexOf(`${W}/>`)<0&&P.indexOf(`${W} />`)<0)return;function Q(){return I.createElement(I.Fragment,null,j)}c[W]=I.createElement(Q)});const x=Jo(c||e,P,f,S,C,m),O=n!==void 0?n:S.defaultTransParent;return O?I.createElement(O,y,x):x}const Xo={type:"3rdParty",init(a){Ro(a.options.react),$o(a)}},An=I.createContext();class ei{constructor(){Do(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}}function Ot(a){let{children:e,count:t,parent:n,i18nKey:r,context:s,tOptions:i={},values:l,defaults:d,components:c,ns:u,i18n:p,t:h,shouldUnescape:m,...y}=a;const{i18n:f,defaultNS:_}=I.useContext(An)||{},S=p||f||wn(),v=h||S&&S.t.bind(S);return Qo({children:e,count:t,parent:n,i18nKey:r,context:s,tOptions:i,values:l,defaults:d,components:c,ns:u||v&&v.ns||_||S&&S.options&&S.options.defaultNS,i18n:S,t:h,shouldUnescape:m,...y})}const ai=(a,e)=>{const t=I.useRef();return I.useEffect(()=>{t.current=a},[a,e]),t.current},Dr=(a,e,t,n)=>a.getFixedT(e,t,n),ti=(a,e,t,n)=>I.useCallback(Dr(a,e,t,n),[a,e,t,n]),be=function(a){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:n,defaultNS:r}=I.useContext(An)||{},s=t||n||wn();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new ei),!s){Mt("You will need to pass in an i18next instance by using initReactI18next");const T=(N,F)=>Ue(F)?F:Ba(F)&&Ue(F.defaultValue)?F.defaultValue:Array.isArray(N)?N[N.length-1]:N,A=[T,{},!1];return A.t=T,A.i18n={},A.ready=!1,A}s.options.react&&s.options.react.wait!==void 0&&Mt("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const i={...Ar(),...s.options.react,...e},{useSuspense:l,keyPrefix:d}=i;let c=r||s.options&&s.options.defaultNS;c=Ue(c)?[c]:c||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(c);const u=(s.isInitialized||s.initializedStoreOnce)&&c.every(T=>qo(T,s,i)),p=ti(s,e.lng||null,i.nsMode==="fallback"?c:c[0],d),h=()=>p,m=()=>Dr(s,e.lng||null,i.nsMode==="fallback"?c:c[0],d),[y,f]=I.useState(h);let _=c.join();e.lng&&(_=`${e.lng}${_}`);const S=ai(_),v=I.useRef(!0);I.useEffect(()=>{const{bindI18n:T,bindI18nStore:A}=i;v.current=!0,!u&&!l&&(e.lng?Ir(s,e.lng,c,()=>{v.current&&f(m)}):Tr(s,c,()=>{v.current&&f(m)})),u&&S&&S!==_&&v.current&&f(m);const N=()=>{v.current&&f(m)};return T&&s&&s.on(T,N),A&&s&&s.store.on(A,N),()=>{v.current=!1,T&&s&&T.split(" ").forEach(F=>s.off(F,N)),A&&s&&A.split(" ").forEach(F=>s.store.off(F,N))}},[s,_]),I.useEffect(()=>{v.current&&u&&f(h)},[s,d,u]);const w=[y,s,u];if(w.t=y,w.i18n=s,w.ready=u,u||!u&&!l)return w;throw new Promise(T=>{e.lng?Ir(s,e.lng,c,()=>T()):Tr(s,c,()=>T())})};function ni(a){let{i18n:e,defaultNS:t,children:n}=a;const r=I.useMemo(()=>({i18n:e,defaultNS:t}),[e,t]);return I.createElement(An.Provider,{value:r},n)}const ae=a=>typeof a=="string",at=()=>{let a,e;const t=new Promise((n,r)=>{a=n,e=r});return t.resolve=a,t.reject=e,t},Er=a=>a==null?"":""+a,ri=(a,e,t)=>{a.forEach(n=>{e[n]&&(t[n]=e[n])})},si=/###/g,Lr=a=>a&&a.indexOf("###")>-1?a.replace(si,"."):a,Fr=a=>!a||ae(a),tt=(a,e,t)=>{const n=ae(e)?e.split("."):e;let r=0;for(;r<n.length-1;){if(Fr(a))return{};const s=Lr(n[r]);!a[s]&&t&&(a[s]=new t),Object.prototype.hasOwnProperty.call(a,s)?a=a[s]:a={},++r}return Fr(a)?{}:{obj:a,k:Lr(n[r])}},Mr=(a,e,t)=>{const{obj:n,k:r}=tt(a,e,Object);if(n!==void 0||e.length===1){n[r]=t;return}let s=e[e.length-1],i=e.slice(0,e.length-1),l=tt(a,i,Object);for(;l.obj===void 0&&i.length;)s=`${i[i.length-1]}.${s}`,i=i.slice(0,i.length-1),l=tt(a,i,Object),l&&l.obj&&typeof l.obj[`${l.k}.${s}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${s}`]=t},oi=(a,e,t,n)=>{const{obj:r,k:s}=tt(a,e,Object);r[s]=r[s]||[],r[s].push(t)},Bt=(a,e)=>{const{obj:t,k:n}=tt(a,e);if(t)return t[n]},ii=(a,e,t)=>{const n=Bt(a,t);return n!==void 0?n:Bt(e,t)},Or=(a,e,t)=>{for(const n in e)n!=="__proto__"&&n!=="constructor"&&(n in a?ae(a[n])||a[n]instanceof String||ae(e[n])||e[n]instanceof String?t&&(a[n]=e[n]):Or(a[n],e[n],t):a[n]=e[n]);return a},za=a=>a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var li={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};const di=a=>ae(a)?a.replace(/[&<>"'\/]/g,e=>li[e]):a;class ci{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(t!==void 0)return t;const n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}}const ui=[" ",",","?","!",";"],pi=new ci(20),hi=(a,e,t)=>{e=e||"",t=t||"";const n=ui.filter(i=>e.indexOf(i)<0&&t.indexOf(i)<0);if(n.length===0)return!0;const r=pi.getRegExp(`(${n.map(i=>i==="?"?"\\?":i).join("|")})`);let s=!r.test(a);if(!s){const i=a.indexOf(t);i>0&&!r.test(a.substring(0,i))&&(s=!0)}return s},Pn=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!a)return;if(a[e])return a[e];const n=e.split(t);let r=a;for(let s=0;s<n.length;){if(!r||typeof r!="object")return;let i,l="";for(let d=s;d<n.length;++d)if(d!==s&&(l+=t),l+=n[d],i=r[l],i!==void 0){if(["string","number","boolean"].indexOf(typeof i)>-1&&d<n.length-1)continue;s+=d-s+1;break}r=i}return r},Ut=a=>a&&a.replace("_","-"),mi={type:"logger",log(a){this.output("log",a)},warn(a){this.output("warn",a)},error(a){this.output("error",a)},output(a,e){console&&console[a]&&console[a].apply(console,e)}};class zt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(e,t)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||mi,this.options=t,this.debug=t.debug}log(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}deprecate(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,n,r){return r&&!this.debug?null:(ae(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new zt(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new zt(this.logger,e)}}var Ye=new zt;class Vt{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(n=>{this.observers[n]||(this.observers[n]=new Map);const r=this.observers[n].get(t)||0;this.observers[n].set(t,r+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this.observers[e]&&Array.from(this.observers[e].entries()).forEach(i=>{let[l,d]=i;for(let c=0;c<d;c++)l(...n)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(i=>{let[l,d]=i;for(let c=0;c<d;c++)l.apply(l,[e,...n])})}}class Br extends Vt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const s=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,i=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;e.indexOf(".")>-1?l=e.split("."):(l=[e,t],n&&(Array.isArray(n)?l.push(...n):ae(n)&&s?l.push(...n.split(s)):l.push(n)));const d=Bt(this.data,l);return!d&&!t&&!n&&e.indexOf(".")>-1&&(e=l[0],t=l[1],n=l.slice(2).join(".")),d||!i||!ae(n)?d:Pn(this.data&&this.data[e]&&this.data[e][t],n,s)}addResource(e,t,n,r){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator;let l=[e,t];n&&(l=l.concat(i?n.split(i):n)),e.indexOf(".")>-1&&(l=e.split("."),r=t,t=l[1]),this.addNamespaces(t),Mr(this.data,l,r),s.silent||this.emit("added",e,t,n,r)}addResources(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const s in n)(ae(n[s])||Array.isArray(n[s]))&&this.addResource(e,t,s,n[s],{silent:!0});r.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,r,s){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},l=[e,t];e.indexOf(".")>-1&&(l=e.split("."),r=n,n=t,t=l[1]),this.addNamespaces(t);let d=Bt(this.data,l)||{};i.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?Or(d,n,s):d={...d,...n},Mr(this.data,l,d),i.silent||this.emit("added",e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(e,t)}:this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(r=>t[r]&&Object.keys(t[r]).length>0)}toJSON(){return this.data}}var Ur={processors:{},addPostProcessor(a){this.processors[a.name]=a},handle(a,e,t,n,r){return a.forEach(s=>{this.processors[s]&&(e=this.processors[s].process(e,t,n,r))}),e}};const zr={};class jt extends Vt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),ri(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Ye.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(e==null)return!1;const n=this.resolve(e,t);return n&&n.res!==void 0}extractFromKey(e,t){let n=t.nsSeparator!==void 0?t.nsSeparator:this.options.nsSeparator;n===void 0&&(n=":");const r=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let s=t.ns||this.options.defaultNS||[];const i=n&&e.indexOf(n)>-1,l=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!hi(e,n,r);if(i&&!l){const d=e.match(this.interpolator.nestingRegexp);if(d&&d.length>0)return{key:e,namespaces:ae(s)?[s]:s};const c=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(c[0])>-1)&&(s=c.shift()),e=c.join(r)}return{key:e,namespaces:ae(s)?[s]:s}}translate(e,t,n){if(typeof t!="object"&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),typeof t=="object"&&(t={...t}),t||(t={}),e==null)return"";Array.isArray(e)||(e=[String(e)]);const r=t.returnDetails!==void 0?t.returnDetails:this.options.returnDetails,s=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator,{key:i,namespaces:l}=this.extractFromKey(e[e.length-1],t),d=l[l.length-1],c=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(c&&c.toLowerCase()==="cimode"){if(u){const T=t.nsSeparator||this.options.nsSeparator;return r?{res:`${d}${T}${i}`,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:d,usedParams:this.getUsedParamsDetails(t)}:`${d}${T}${i}`}return r?{res:i,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:d,usedParams:this.getUsedParamsDetails(t)}:i}const p=this.resolve(e,t);let h=p&&p.res;const m=p&&p.usedKey||i,y=p&&p.exactUsedKey||i,f=Object.prototype.toString.apply(h),_=["[object Number]","[object Function]","[object RegExp]"],S=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,v=!this.i18nFormat||this.i18nFormat.handleAsObject,w=!ae(h)&&typeof h!="boolean"&&typeof h!="number";if(v&&h&&w&&_.indexOf(f)<0&&!(ae(S)&&Array.isArray(h))){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const T=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,h,{...t,ns:l}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(p.res=T,p.usedParams=this.getUsedParamsDetails(t),p):T}if(s){const T=Array.isArray(h),A=T?[]:{},N=T?y:m;for(const F in h)if(Object.prototype.hasOwnProperty.call(h,F)){const C=`${N}${s}${F}`;A[F]=this.translate(C,{...t,joinArrays:!1,ns:l}),A[F]===C&&(A[F]=h[F])}h=A}}else if(v&&ae(S)&&Array.isArray(h))h=h.join(S),h&&(h=this.extendTranslation(h,e,t,n));else{let T=!1,A=!1;const N=t.count!==void 0&&!ae(t.count),F=jt.hasDefaultValue(t),C=N?this.pluralResolver.getSuffix(c,t.count,t):"",P=t.ordinal&&N?this.pluralResolver.getSuffix(c,t.count,{ordinal:!1}):"",x=N&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),O=x&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${C}`]||t[`defaultValue${P}`]||t.defaultValue;!this.isValidLookup(h)&&F&&(T=!0,h=O),this.isValidLookup(h)||(A=!0,h=i);const j=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&A?void 0:h,Q=F&&O!==h&&this.options.updateMissing;if(A||T||Q){if(this.logger.log(Q?"updateKey":"missingKey",c,d,i,Q?O:h),s){const Z=this.resolve(i,{...t,keySeparator:!1});Z&&Z.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let K=[];const B=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&B&&B[0])for(let Z=0;Z<B.length;Z++)K.push(B[Z]);else this.options.saveMissingTo==="all"?K=this.languageUtils.toResolveHierarchy(t.lng||this.language):K.push(t.lng||this.language);const U=(Z,$,E)=>{const ie=F&&E!==h?E:j;this.options.missingKeyHandler?this.options.missingKeyHandler(Z,d,$,ie,Q,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(Z,d,$,ie,Q,t),this.emit("missingKey",Z,d,$,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&N?K.forEach(Z=>{const $=this.pluralResolver.getSuffixes(Z,t);x&&t[`defaultValue${this.options.pluralSeparator}zero`]&&$.indexOf(`${this.options.pluralSeparator}zero`)<0&&$.push(`${this.options.pluralSeparator}zero`),$.forEach(E=>{U([Z],i+E,t[`defaultValue${E}`]||O)})}):U(K,i,O))}h=this.extendTranslation(h,e,t,p,n),A&&h===i&&this.options.appendNamespaceToMissingKey&&(h=`${d}:${i}`),(A||T)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${d}:${i}`:i,T?h:void 0):h=this.options.parseMissingKeyHandler(h))}return r?(p.res=h,p.usedParams=this.getUsedParamsDetails(t),p):h}extendTranslation(e,t,n,r,s){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const c=ae(e)&&(n&&n.interpolation&&n.interpolation.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let u;if(c){const h=e.match(this.interpolator.nestingRegexp);u=h&&h.length}let p=n.replace&&!ae(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(p={...this.options.interpolation.defaultVariables,...p}),e=this.interpolator.interpolate(e,p,n.lng||this.language||r.usedLng,n),c){const h=e.match(this.interpolator.nestingRegexp),m=h&&h.length;u<m&&(n.nest=!1)}!n.lng&&this.options.compatibilityAPI!=="v1"&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,function(){for(var h=arguments.length,m=new Array(h),y=0;y<h;y++)m[y]=arguments[y];return s&&s[0]===m[0]&&!n.context?(i.logger.warn(`It seems you are nesting recursively key: ${m[0]} in key: ${t[0]}`),null):i.translate(...m,t)},n)),n.interpolation&&this.interpolator.reset()}const l=n.postProcess||this.options.postProcess,d=ae(l)?[l]:l;return e!=null&&d&&d.length&&n.applyPostProcessor!==!1&&(e=Ur.handle(d,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n,r,s,i,l;return ae(e)&&(e=[e]),e.forEach(d=>{if(this.isValidLookup(n))return;const c=this.extractFromKey(d,t),u=c.key;r=u;let p=c.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const h=t.count!==void 0&&!ae(t.count),m=h&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),y=t.context!==void 0&&(ae(t.context)||typeof t.context=="number")&&t.context!=="",f=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);p.forEach(_=>{this.isValidLookup(n)||(l=_,!zr[`${f[0]}-${_}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(l)&&(zr[`${f[0]}-${_}`]=!0,this.logger.warn(`key "${r}" for languages "${f.join(", ")}" won't get resolved as namespace "${l}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach(S=>{if(this.isValidLookup(n))return;i=S;const v=[u];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(v,u,S,_,t);else{let T;h&&(T=this.pluralResolver.getSuffix(S,t.count,t));const A=`${this.options.pluralSeparator}zero`,N=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(h&&(v.push(u+T),t.ordinal&&T.indexOf(N)===0&&v.push(u+T.replace(N,this.options.pluralSeparator)),m&&v.push(u+A)),y){const F=`${u}${this.options.contextSeparator}${t.context}`;v.push(F),h&&(v.push(F+T),t.ordinal&&T.indexOf(N)===0&&v.push(F+T.replace(N,this.options.pluralSeparator)),m&&v.push(F+A))}}let w;for(;w=v.pop();)this.isValidLookup(n)||(s=w,n=this.getResource(S,_,w,t))}))})}),{res:n,usedKey:r,exactUsedKey:s,usedLng:i,usedNS:l}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=e.replace&&!ae(e.replace);let r=n?e.replace:e;if(n&&typeof e.count<"u"&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(const s of t)delete r[s]}return r}static hasDefaultValue(e){const t="defaultValue";for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&e[n]!==void 0)return!0;return!1}}const xn=a=>a.charAt(0).toUpperCase()+a.slice(1);class Vr{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ye.create("languageUtils")}getScriptPartFromCode(e){if(e=Ut(e),!e||e.indexOf("-")<0)return null;const t=e.split("-");return t.length===2||(t.pop(),t[t.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(t.join("-"))}getLanguagePartFromCode(e){if(e=Ut(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(ae(e)&&e.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let r=Intl.getCanonicalLocales(e)[0];if(r&&this.options.lowerCaseLng&&(r=r.toLowerCase()),r)return r}catch{}const t=["hans","hant","latn","cyrl","cans","mong","arab"];let n=e.split("-");return this.options.lowerCaseLng?n=n.map(r=>r.toLowerCase()):n.length===2?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=xn(n[1].toLowerCase()))):n.length===3&&(n[0]=n[0].toLowerCase(),n[1].length===2&&(n[1]=n[1].toUpperCase()),n[0]!=="sgn"&&n[2].length===2&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=xn(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=xn(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(n=>{if(t)return;const r=this.formatLanguageCode(n);(!this.options.supportedLngs||this.isSupportedCode(r))&&(t=r)}),!t&&this.options.supportedLngs&&e.forEach(n=>{if(t)return;const r=this.getLanguagePartFromCode(n);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(s=>{if(s===r)return s;if(!(s.indexOf("-")<0&&r.indexOf("-")<0)&&(s.indexOf("-")>0&&r.indexOf("-")<0&&s.substring(0,s.indexOf("-"))===r||s.indexOf(r)===0&&r.length>1))return s})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),ae(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}toResolveHierarchy(e,t){const n=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],s=i=>{i&&(this.isSupportedCode(i)?r.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return ae(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&s(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&s(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&s(this.getLanguagePartFromCode(e))):ae(e)&&s(this.formatLanguageCode(e)),n.forEach(i=>{r.indexOf(i)<0&&s(this.formatLanguageCode(i))}),r}}let gi=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],bi={1:a=>+(a>1),2:a=>+(a!=1),3:a=>0,4:a=>a%10==1&&a%100!=11?0:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?1:2,5:a=>a==0?0:a==1?1:a==2?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5,6:a=>a==1?0:a>=2&&a<=4?1:2,7:a=>a==1?0:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?1:2,8:a=>a==1?0:a==2?1:a!=8&&a!=11?2:3,9:a=>+(a>=2),10:a=>a==1?0:a==2?1:a<7?2:a<11?3:4,11:a=>a==1||a==11?0:a==2||a==12?1:a>2&&a<20?2:3,12:a=>+(a%10!=1||a%100==11),13:a=>+(a!==0),14:a=>a==1?0:a==2?1:a==3?2:3,15:a=>a%10==1&&a%100!=11?0:a%10>=2&&(a%100<10||a%100>=20)?1:2,16:a=>a%10==1&&a%100!=11?0:a!==0?1:2,17:a=>a==1||a%10==1&&a%100!=11?0:1,18:a=>a==0?0:a==1?1:2,19:a=>a==1?0:a==0||a%100>1&&a%100<11?1:a%100>10&&a%100<20?2:3,20:a=>a==1?0:a==0||a%100>0&&a%100<20?1:2,21:a=>a%100==1?1:a%100==2?2:a%100==3||a%100==4?3:0,22:a=>a==1?0:a==2?1:(a<0||a>10)&&a%10==0?2:3};const fi=["v1","v2","v3"],yi=["v4"],jr={zero:0,one:1,two:2,few:3,many:4,other:5},vi=()=>{const a={};return gi.forEach(e=>{e.lngs.forEach(t=>{a[t]={numbers:e.nr,plurals:bi[e.fc]}})}),a};class _i{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=Ye.create("pluralResolver"),(!this.options.compatibilityJSON||yi.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=vi(),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi()){const n=Ut(e==="dev"?"en":e),r=t.ordinal?"ordinal":"cardinal",s=JSON.stringify({cleanedCode:n,type:r});if(s in this.pluralRulesCache)return this.pluralRulesCache[s];let i;try{i=new Intl.PluralRules(n,{type:r})}catch{if(!e.match(/-|_/))return;const d=this.languageUtils.getLanguagePartFromCode(e);i=this.getRule(d,t)}return this.pluralRulesCache[s]=i,i}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}getPluralFormsOfKey(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(e,n).map(r=>`${t}${r}`)}getSuffixes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=this.getRule(e,t);return n?this.shouldUseIntlApi()?n.resolvedOptions().pluralCategories.sort((r,s)=>jr[r]-jr[s]).map(r=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${r}`):n.numbers.map(r=>this.getSuffix(e,r,t)):[]}getSuffix(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=this.getRule(e,n);return r?this.shouldUseIntlApi()?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r.select(t)}`:this.getSuffixRetroCompatible(r,t):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,t){const n=e.noAbs?e.plurals(t):e.plurals(Math.abs(t));let r=e.numbers[n];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(r===2?r="plural":r===1&&(r=""));const s=()=>this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString();return this.options.compatibilityJSON==="v1"?r===1?"":typeof r=="number"?`_plural_${r.toString()}`:s():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?s():this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString()}shouldUseIntlApi(){return!fi.includes(this.options.compatibilityJSON)}}const Zr=function(a,e,t){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=ii(a,e,t);return!s&&r&&ae(t)&&(s=Pn(a,t,n),s===void 0&&(s=Pn(e,t,n))),s},Dn=a=>a.replace(/\$/g,"$$$$");class Ni{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ye.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(t=>t),this.init(e)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:s,prefixEscaped:i,suffix:l,suffixEscaped:d,formatSeparator:c,unescapeSuffix:u,unescapePrefix:p,nestingPrefix:h,nestingPrefixEscaped:m,nestingSuffix:y,nestingSuffixEscaped:f,nestingOptionsSeparator:_,maxReplaces:S,alwaysFormat:v}=e.interpolation;this.escape=t!==void 0?t:di,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=s?za(s):i||"{{",this.suffix=l?za(l):d||"}}",this.formatSeparator=c||",",this.unescapePrefix=u?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=h?za(h):m||za("$t("),this.nestingSuffix=y?za(y):f||za(")"),this.nestingOptionsSeparator=_||",",this.maxReplaces=S||1e3,this.alwaysFormat=v!==void 0?v:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,n)=>t&&t.source===n?(t.lastIndex=0,t):new RegExp(n,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let s,i,l;const d=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=m=>{if(m.indexOf(this.formatSeparator)<0){const S=Zr(t,d,m,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(S,void 0,n,{...r,...t,interpolationkey:m}):S}const y=m.split(this.formatSeparator),f=y.shift().trim(),_=y.join(this.formatSeparator).trim();return this.format(Zr(t,d,f,this.options.keySeparator,this.options.ignoreJSONStructure),_,n,{...r,...t,interpolationkey:f})};this.resetRegExp();const u=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,p=r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:m=>Dn(m)},{regex:this.regexp,safeValue:m=>this.escapeValue?Dn(this.escape(m)):Dn(m)}].forEach(m=>{for(l=0;s=m.regex.exec(e);){const y=s[1].trim();if(i=c(y),i===void 0)if(typeof u=="function"){const _=u(e,s,r);i=ae(_)?_:""}else if(r&&Object.prototype.hasOwnProperty.call(r,y))i="";else if(p){i=s[0];continue}else this.logger.warn(`missed to pass in variable ${y} for interpolating ${e}`),i="";else!ae(i)&&!this.useRawValueToEscape&&(i=Er(i));const f=m.safeValue(i);if(e=e.replace(s[0],f),p?(m.regex.lastIndex+=i.length,m.regex.lastIndex-=s[0].length):m.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),e}nest(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,s,i;const l=(d,c)=>{const u=this.nestingOptionsSeparator;if(d.indexOf(u)<0)return d;const p=d.split(new RegExp(`${u}[ ]*{`));let h=`{${p[1]}`;d=p[0],h=this.interpolate(h,i);const m=h.match(/'/g),y=h.match(/"/g);(m&&m.length%2===0&&!y||y.length%2!==0)&&(h=h.replace(/'/g,'"'));try{i=JSON.parse(h),c&&(i={...c,...i})}catch(f){return this.logger.warn(`failed parsing options string in nesting for key ${d}`,f),`${d}${u}${h}`}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,d};for(;r=this.nestingRegexp.exec(e);){let d=[];i={...n},i=i.replace&&!ae(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;let c=!1;if(r[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(r[1])){const u=r[1].split(this.formatSeparator).map(p=>p.trim());r[1]=u.shift(),d=u,c=!0}if(s=t(l.call(this,r[1].trim(),i),i),s&&r[0]===e&&!ae(s))return s;ae(s)||(s=Er(s)),s||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),s=""),c&&(s=d.reduce((u,p)=>this.format(u,p,n.lng,{...n,interpolationkey:r[1].trim()}),s.trim())),e=e.replace(r[0],s),this.regexp.lastIndex=0}return e}}const Ci=a=>{let e=a.toLowerCase().trim();const t={};if(a.indexOf("(")>-1){const n=a.split("(");e=n[0].toLowerCase().trim();const r=n[1].substring(0,n[1].length-1);e==="currency"&&r.indexOf(":")<0?t.currency||(t.currency=r.trim()):e==="relativetime"&&r.indexOf(":")<0?t.range||(t.range=r.trim()):r.split(";").forEach(i=>{if(i){const[l,...d]=i.split(":"),c=d.join(":").trim().replace(/^'+|'+$/g,""),u=l.trim();t[u]||(t[u]=c),c==="false"&&(t[u]=!1),c==="true"&&(t[u]=!0),isNaN(c)||(t[u]=parseInt(c,10))}})}return{formatName:e,formatOptions:t}},Va=a=>{const e={};return(t,n,r)=>{let s=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(s={...s,[r.interpolationkey]:void 0});const i=n+JSON.stringify(s);let l=e[i];return l||(l=a(Ut(n),r),e[i]=l),l(t)}};class Si{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ye.create("formatter"),this.options=e,this.formats={number:Va((t,n)=>{const r=new Intl.NumberFormat(t,{...n});return s=>r.format(s)}),currency:Va((t,n)=>{const r=new Intl.NumberFormat(t,{...n,style:"currency"});return s=>r.format(s)}),datetime:Va((t,n)=>{const r=new Intl.DateTimeFormat(t,{...n});return s=>r.format(s)}),relativetime:Va((t,n)=>{const r=new Intl.RelativeTimeFormat(t,{...n});return s=>r.format(s,n.range||"day")}),list:Va((t,n)=>{const r=new Intl.ListFormat(t,{...n});return s=>r.format(s)})},this.init(e)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Va(t)}format(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const s=t.split(this.formatSeparator);if(s.length>1&&s[0].indexOf("(")>1&&s[0].indexOf(")")<0&&s.find(l=>l.indexOf(")")>-1)){const l=s.findIndex(d=>d.indexOf(")")>-1);s[0]=[s[0],...s.splice(1,l)].join(this.formatSeparator)}return s.reduce((l,d)=>{const{formatName:c,formatOptions:u}=Ci(d);if(this.formats[c]){let p=l;try{const h=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},m=h.locale||h.lng||r.locale||r.lng||n;p=this.formats[c](l,m,{...u,...r,...h})}catch(h){this.logger.warn(h)}return p}else this.logger.warn(`there was no format function for ${c}`);return l},e)}}const ki=(a,e)=>{a.pending[e]!==void 0&&(delete a.pending[e],a.pendingCount--)};class wi extends Vt{constructor(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=Ye.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(n,r.backend,r)}queueLoad(e,t,n,r){const s={},i={},l={},d={};return e.forEach(c=>{let u=!0;t.forEach(p=>{const h=`${c}|${p}`;!n.reload&&this.store.hasResourceBundle(c,p)?this.state[h]=2:this.state[h]<0||(this.state[h]===1?i[h]===void 0&&(i[h]=!0):(this.state[h]=1,u=!1,i[h]===void 0&&(i[h]=!0),s[h]===void 0&&(s[h]=!0),d[p]===void 0&&(d[p]=!0)))}),u||(l[c]=!0)}),(Object.keys(s).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(s),pending:Object.keys(i),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(d)}}loaded(e,t,n){const r=e.split("|"),s=r[0],i=r[1];t&&this.emit("failedLoading",s,i,t),!t&&n&&this.store.addResourceBundle(s,i,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);const l={};this.queue.forEach(d=>{oi(d.loaded,[s],i),ki(d,e),t&&d.errors.push(t),d.pendingCount===0&&!d.done&&(Object.keys(d.loaded).forEach(c=>{l[c]||(l[c]={});const u=d.loaded[c];u.length&&u.forEach(p=>{l[c][p]===void 0&&(l[c][p]=!0)})}),d.done=!0,d.errors.length?d.callback(d.errors):d.callback())}),this.emit("loaded",l),this.queue=this.queue.filter(d=>!d.done)}read(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:s,callback:i});return}this.readingCalls++;const l=(c,u)=>{if(this.readingCalls--,this.waitingReads.length>0){const p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(c&&u&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,n,r+1,s*2,i)},s);return}i(c,u)},d=this.backend[n].bind(this.backend);if(d.length===2){try{const c=d(e,t);c&&typeof c.then=="function"?c.then(u=>l(null,u)).catch(l):l(null,c)}catch(c){l(c)}return}return d(e,t,l)}prepareLoading(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();ae(e)&&(e=this.languageUtils.toResolveHierarchy(e)),ae(t)&&(t=[t]);const s=this.queueLoad(e,t,n,r);if(!s.toLoad.length)return s.pending.length||r(),null;s.toLoad.forEach(i=>{this.loadOne(i)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const n=e.split("|"),r=n[0],s=n[1];this.read(r,s,"read",void 0,void 0,(i,l)=>{i&&this.logger.warn(`${t}loading namespace ${s} for language ${r} failed`,i),!i&&l&&this.logger.log(`${t}loaded namespace ${s} for language ${r}`,l),this.loaded(e,i,l)})}saveMissing(e,t,n,r,s){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},l=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(n==null||n==="")){if(this.backend&&this.backend.create){const d={...i,isUpdate:s},c=this.backend.create.bind(this.backend);if(c.length<6)try{let u;c.length===5?u=c(e,t,n,r,d):u=c(e,t,n,r),u&&typeof u.then=="function"?u.then(p=>l(null,p)).catch(l):l(null,u)}catch(u){l(u)}else c(e,t,n,r,l,d)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}}const qr=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:a=>{let e={};if(typeof a[1]=="object"&&(e=a[1]),ae(a[1])&&(e.defaultValue=a[1]),ae(a[2])&&(e.tDescription=a[2]),typeof a[2]=="object"||typeof a[3]=="object"){const t=a[3]||a[2];Object.keys(t).forEach(n=>{e[n]=t[n]})}return e},interpolation:{escapeValue:!0,format:a=>a,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),Wr=a=>(ae(a.ns)&&(a.ns=[a.ns]),ae(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),ae(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs&&a.supportedLngs.indexOf("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),a),Zt=()=>{},Ti=a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(t=>{typeof a[t]=="function"&&(a[t]=a[t].bind(a))})};class nt extends Vt{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=Wr(e),this.services={},this.logger=Ye,this.modules={external:[]},Ti(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initImmediate)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof t=="function"&&(n=t,t={}),!t.defaultNS&&t.defaultNS!==!1&&t.ns&&(ae(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=qr();this.options={...r,...this.options,...Wr(t)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...r.interpolation,...this.options.interpolation}),t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator);const s=u=>u?typeof u=="function"?new u:u:null;if(!this.options.isClone){this.modules.logger?Ye.init(s(this.modules.logger),this.options):Ye.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=Si);const p=new Vr(this.options);this.store=new Br(this.options.resources,this.options);const h=this.services;h.logger=Ye,h.resourceStore=this.store,h.languageUtils=p,h.pluralResolver=new _i(p,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),u&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(h.formatter=s(u),h.formatter.init(h,this.options),this.options.interpolation.format=h.formatter.format.bind(h.formatter)),h.interpolator=new Ni(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new wi(s(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on("*",function(m){for(var y=arguments.length,f=new Array(y>1?y-1:0),_=1;_<y;_++)f[_-1]=arguments[_];e.emit(m,...f)}),this.modules.languageDetector&&(h.languageDetector=s(this.modules.languageDetector),h.languageDetector.init&&h.languageDetector.init(h,this.options.detection,this.options)),this.modules.i18nFormat&&(h.i18nFormat=s(this.modules.i18nFormat),h.i18nFormat.init&&h.i18nFormat.init(this)),this.translator=new jt(this.services,this.options),this.translator.on("*",function(m){for(var y=arguments.length,f=new Array(y>1?y-1:0),_=1;_<y;_++)f[_-1]=arguments[_];e.emit(m,...f)}),this.modules.external.forEach(m=>{m.init&&m.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Zt),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.length>0&&u[0]!=="dev"&&(this.options.lng=u[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(u=>{this[u]=function(){return e.store[u](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(u=>{this[u]=function(){return e.store[u](...arguments),e}});const d=at(),c=()=>{const u=(p,h)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),d.resolve(h),n(p,h)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return u(null,this.t.bind(this));this.changeLanguage(this.options.lng,u)};return this.options.resources||!this.options.initImmediate?c():setTimeout(c,0),d}loadResources(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Zt;const r=ae(e)?e:this.language;if(typeof e=="function"&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&r.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return n();const s=[],i=l=>{if(!l||l==="cimode")return;this.services.languageUtils.toResolveHierarchy(l).forEach(c=>{c!=="cimode"&&s.indexOf(c)<0&&s.push(c)})};r?i(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(d=>i(d)),this.options.preload&&this.options.preload.forEach(l=>i(l)),this.services.backendConnector.load(s,this.options.ns,l=>{!l&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(l)})}else n(null)}reloadResources(e,t,n){const r=at();return typeof e=="function"&&(n=e,e=void 0),typeof t=="function"&&(n=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),n||(n=Zt),this.services.backendConnector.reload(e,t,s=>{r.resolve(),n(s)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&Ur.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1))for(let t=0;t<this.languages.length;t++){const n=this.languages[t];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}changeLanguage(e,t){var n=this;this.isLanguageChangingTo=e;const r=at();this.emit("languageChanging",e);const s=d=>{this.language=d,this.languages=this.services.languageUtils.toResolveHierarchy(d),this.resolvedLanguage=void 0,this.setResolvedLanguage(d)},i=(d,c)=>{c?(s(c),this.translator.changeLanguage(c),this.isLanguageChangingTo=void 0,this.emit("languageChanged",c),this.logger.log("languageChanged",c)):this.isLanguageChangingTo=void 0,r.resolve(function(){return n.t(...arguments)}),t&&t(d,function(){return n.t(...arguments)})},l=d=>{!e&&!d&&this.services.languageDetector&&(d=[]);const c=ae(d)?d:this.services.languageUtils.getBestMatchFromCodes(d);c&&(this.language||s(c),this.translator.language||this.translator.changeLanguage(c),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(c)),this.loadResources(c,u=>{i(u,c)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?l(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(l):this.services.languageDetector.detect(l):l(e),r}getFixedT(e,t,n){var r=this;const s=function(i,l){let d;if(typeof l!="object"){for(var c=arguments.length,u=new Array(c>2?c-2:0),p=2;p<c;p++)u[p-2]=arguments[p];d=r.options.overloadTranslationOptionHandler([i,l].concat(u))}else d={...l};d.lng=d.lng||s.lng,d.lngs=d.lngs||s.lngs,d.ns=d.ns||s.ns,d.keyPrefix!==""&&(d.keyPrefix=d.keyPrefix||n||s.keyPrefix);const h=r.options.keySeparator||".";let m;return d.keyPrefix&&Array.isArray(i)?m=i.map(y=>`${d.keyPrefix}${h}${y}`):m=d.keyPrefix?`${d.keyPrefix}${h}${i}`:i,r.t(m,d)};return ae(e)?s.lng=e:s.lngs=e,s.ns=t,s.keyPrefix=n,s}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,s=this.languages[this.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(l,d)=>{const c=this.services.backendConnector.state[`${l}|${d}`];return c===-1||c===0||c===2};if(t.precheck){const l=t.precheck(this,i);if(l!==void 0)return l}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(n,e)&&(!r||i(s,e)))}loadNamespaces(e,t){const n=at();return this.options.ns?(ae(e)&&(e=[e]),e.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{n.resolve(),t&&t(r)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){const n=at();ae(e)&&(e=[e]);const r=this.options.preload||[],s=e.filter(i=>r.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return s.length?(this.options.preload=r.concat(s),this.loadResources(i=>{n.resolve(),t&&t(i)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";const t=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],n=this.services&&this.services.languageUtils||new Vr(qr());return t.indexOf(n.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new nt(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Zt;const n=e.forkResourceStore;n&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},s=new nt(r);return(e.debug!==void 0||e.prefix!==void 0)&&(s.logger=s.logger.clone(e)),["store","services","language"].forEach(l=>{s[l]=this[l]}),s.services={...this.services},s.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},n&&(s.store=new Br(this.store.data,r),s.services.resourceStore=s.store),s.translator=new jt(s.services,r),s.translator.on("*",function(l){for(var d=arguments.length,c=new Array(d>1?d-1:0),u=1;u<d;u++)c[u-1]=arguments[u];s.emit(l,...c)}),s.init(r,t),s.translator.options=r,s.translator.backendConnector.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},s}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Ee=nt.createInstance();Ee.createInstance=nt.createInstance;const Ii=Ee.createInstance;Ee.dir,Ee.init,Ee.loadResources,Ee.reloadResources,Ee.use,Ee.changeLanguage,Ee.getFixedT,Ee.t,Ee.exists,Ee.setDefaultNamespace,Ee.hasLoadedNamespace,Ee.loadNamespaces,Ee.loadLanguages;const Ai={free:"Free",manage:"Manage",cancel:"Cancel",close:"Close",open:"Open",edit:"Edit",update:"Update",tryAgain:"Try again",save:"Save",upgrade:"Upgrade",downgrade:"Downgrade",billingIntervalLabel:"Billing interval",billedMonthly:"Billed monthly",billedAnnually:"Billed annually",conversationsUnit:"conversations",conversationsPerMonth:"conversations / month",perMonth:"/mo",perYear:"/yr",perMonthLong:"/month",perYearLong:"/year",resourceConversations:"Conversations / month",resourceTableRows:"Table rows",resourceVectorDb:"Vector DB storage",resourceFileStorage:"File storage",metricConversations:"monthly conversations",metricTableRows:"table rows",metricVectorDb:"vector DB storage",metricFileStorage:"file storage",metricAiSpend:"AI spend",metricBotCount:"agents",usageBannerLimitReached:"You've reached your {label} limit. Upgrade now to avoid interruptions.",usageBannerNearLimit:"You've used {pct}% of your {label}. Upgrade to avoid hitting your limit.",usageBannerDefaultCta:"Upgrade plan",usageBannerManageCta:"Manage plan",usageBannerDismiss:"Dismiss",planBannerEyebrow:"Current plan",planBannerManagedTitle:"Managed in Dashboard",planBannerManagedSub:"This workspace uses an earlier billing system.",planBannerNoPlan:"No plan",planBannerCustomPricing:"Custom pricing",planBannerCustomConversations:"Custom conversations",planBannerCustom:"Custom",planBannerInclAddons:"· incl. add-ons",planBannerRenews:"Renews {date}",planBannerDowngradesTo:"Downgrades to {plan} on {date}",planBannerManageCta:"Manage plan",checkoutTitle:"Configure your plan",checkoutBackLabel:"Back to plans",checkoutPlanDetails:"Plan details",checkoutMonthlyBilling:"Monthly billing",checkoutAnnualBilling:"Annual billing",checkoutSaveBadge:"Save {savings}%",checkoutPaymentMethodTitle:"Payment method",checkoutSavedCardTab:"Saved",checkoutNewCardTab:"New card",checkoutBillingAddressTitle:"Billing address",checkoutCancelEdit:"Cancel",checkoutUpdateAddress:"Update",checkoutIsBusiness:"I'm purchasing as business",checkoutBusinessDetails:"Business details",checkoutBusinessNamePlaceholder:"Business name",checkoutTaxIdTypeLabel:"Tax ID type",checkoutTaxIdNumberPlaceholder:"Tax ID number",checkoutNoTaxRequired:"No tax ID is required for your billing country.",checkoutSelectCountryForTax:"Select your billing country above to add a tax ID.",checkoutContactInfo:"Contact information",checkoutEmailLabel:"Email",checkoutCardNotReady:"Card field is not ready",checkoutPaymentSetupFailed:"Payment setup failed",checkoutPaymentMethodMissing:"Could not retrieve payment method",checkoutAddressIncomplete:"Please complete your billing address",checkoutGenericError:"Something went wrong while processing your payment. You have not been charged twice.",checkoutSuccessToast:"Subscription activated",checkoutErrorToast:"Payment error",orderTopFeatures:"Top features",orderThen:"then {price} per {packSize}",orderPreviewError:"We couldn't compute your total. Try again in a moment.",orderPlanFromDate:"{plan} plan — from {date}",orderProratedToday:"Prorated for today",orderProratedTodayDesc:"Switching mid-period, we charge only for the time left in your current billing period. The full plan price above is billed at your next renewal, not today.",orderCreditUnusedTime:"Credit for unused time",orderAdjustUnusedTime:"Adjustment for unused time",orderCreditUnusedTimeDesc:"You already paid for time left in your current billing period. We credit that unused time and re-apply it at your new rate, so you're never double-charged.",orderAdjustUnusedTimeDesc:"Switching mid-cycle means we prorate the difference between your old and new plan for the days remaining in your current billing period.",orderAccountCredit:"Account credit",orderDueToday:"Due today",orderCreditTowardNext:"You have {amount} of unused time credited toward your next invoice.",orderBalanceAsCredit:"Your remaining balance of {amount} is applied as credit on your next invoice.",orderSavingsNote:"You're saving {monthlySavings}/month by choosing an annual plan. That's {yearlySavings}/year.",orderSubscribe:"Subscribe",orderPreviewUnavailable:"Preview unavailable",orderIntervalAnnual:"annual",orderIntervalMonthly:"monthly",orderRenewsMonthly:"Renews monthly until cancelled.",orderRenewsAnnually:"Renews annually until cancelled.",orderChargedStarting:"You'll be charged {amount}{period} starting {date}.",orderChargedNoDate:"You'll be charged {amount}{period}.",orderCancelNote:"Cancel anytime in Settings. By subscribing, you authorize Botpress to store and charge your payment method.",invoicesTitle:"Billing history",invoicesLoadError:"We couldn't load your invoices. Try again in a moment.",invoicesEmpty:"No invoices yet. They'll appear here after your first charge.",invoicesDownloadLabel:"Download invoice from {date}",invoiceStatusPaid:"Paid",invoiceStatusDue:"Due",invoiceStatusDraft:"Draft",invoiceStatusUnpaid:"Unpaid",invoiceStatusVoid:"Void",upgradeDialogTitle:"Upgrade your plan",upgradeMonthly:"Monthly",upgradeAnnual:"Annual",upgradeSaveBadge:"Save {savings}%",upgradeRecommended:"Recommended",upgradePerMonthSuffix:"/ month ({currency})",upgradeNoTopup:"No top-up",upgradeCurrentPlan:"Your current plan",upgradeNextPlan:"Next plan",upgradeCancelDowngrade:"Cancel downgrade",upgradeDowngrade:"Downgrade",upgradeSwitchToAnnual:"Switch to annual",upgradeSwitchToMonthly:"Switch to monthly",upgradePlanManaged:"Your plan is managed by Botpress — contact us to change it",upgradeUpgrade:"Upgrade",upgradeEverythingIn:"Everything in {planName}",upgradeSeeAllFeatures:"See all {total} features",upgradeShowFewerFeatures:"Show fewer features",upgradeContactUs:"Contact us",upgradeFooterEnterprise:"Need more, or running at scale?",upgradeFooterAboutEnterprise:"about Enterprise. Compare plans at",upgradeThenPer:"then {price} per {packSize} more",upgradeDowngradeSuccess:"Plan downgraded",upgradeDowngradeError:"Downgrade failed",upgradeCancelDowngradeSuccess:"Scheduled downgrade canceled",upgradeCancelDowngradeError:"Could not cancel the downgrade",addonsDialogTitle:"Manage add-ons",addonsSubtitleWithPlan:"Additional usage for your {planName} plan. Set a quantity to 0 to remove an add-on.",addonsSubtitleGeneric:"Additional usage for your plan. Set a quantity to 0 to remove an add-on.",addonsRequirePaidPlanTitle:"Add-ons require a paid plan",addonsRequirePaidPlanBody:"Upgrade your plan to unlock extra conversations, storage, and more.",addonsUpgradeCta:"Upgrade plan",addonsEach:"each",addonActiveOnly:"{count} active",addonRemovedNextCycle:"{activeNow} active now · removed next cycle",addonRemovedOnDate:"{activeNow} active now · removed {date}",addonChangedNextCycle:"{activeNow} active now · {pending} next cycle",addonChangedOnDate:"{activeNow} active now · {pending} from {date}",addonsNewLimits:"Your new limits",addonsPlanLine:"{planName} plan",addonsGenericPlan:"Plan",addonsTotalMonthly:"Total monthly cost",addonsTotalYearly:"Total yearly cost",addonsDueToday:"Due today",addonsChargedNow:"You'll be charged {amount} now for the rest of this billing period. ",addonsNoChargeToday:"No charge today — the change is prorated. ",addonsRenewalWithDate:"Add-ons stay active until you remove them and renew with your plan on {date}, when you'll be billed {amount}{interval} for them.",addonsRenewalNoDate:"Add-ons stay active until you remove them and renew with your plan, when you'll be billed {amount}{interval} for them.",addonsReadonlyNote:"Add-ons for this workspace are managed by Botpress — contact us to change them.",addonsUpdateSuccess:"Subscription updated",addonsUpdateError:"Could not update your add-ons",addonsUpdateSubscription:"Update subscription",addonsConvos:"{n} convos",outdatedTitle:"Billing is managed in the Botpress Dashboard",outdatedText:"This workspace is on an earlier billing system, so plan changes and payment details can't be managed here.",outdatedCta:"Open billing in Dashboard",outgrowTitle:"You're about to outgrow the Free plan",outgrowLede:"Free includes <bold>{quota}</bold> conversations total, and they don't renew. Upgrading moves you to a monthly allowance, unlocks more channels, and adds conversation packs, so your agents never stop replying.",outgrowSoFar:"So far",outgrowUsageText:"<bold>{used}</bold> of <bold>{quota}</bold> free conversations used · they don't renew",outgrowNoTopup:"No top-up",outgrowUpgradeTo:"Upgrade to {planName}",outgrowEverythingIn:"Everything in {planName}, and",outgrowNeedCustom:"Need custom volume, SLAs, or voice?",outgrowTalkToSales:"Talk to sales",outgrowCompareAll:"Compare all plans",outgrowThenPer:"then {symbol}{amount} per {packSize} more",paymentDialogTitle:"Payment & billing",paymentSessionError:"We couldn't start a secure session.",paymentMethodSection:"Payment method",paymentCardSaveError:"Could not save your card",paymentMethodMissing:"Could not retrieve payment method",paymentCardGenericError:"We couldn't save your card. Please check your details and try again.",paymentReplace:"Replace",paymentBillingAddressSection:"Billing address",paymentTaxIds:"Tax IDs",paymentTaxEmpty:"Add a VAT or tax registration number to show it on your invoices.",paymentTaxIdType:"Tax ID type",paymentTaxSelectType:"Select type",paymentTaxIdNumber:"Tax ID number",paymentTaxRemove:"Remove tax ID",paymentTaxAdd:"+ Add tax ID",paymentAddressIncomplete:"Please complete your billing address.",paymentAddressError:"Could not update your billing details.",paymentCardUpdated:"Card updated",paymentDetailsUpdated:"Billing details updated",paymentSaveCard:"Save card",paymentSaveBillingDetails:"Save billing details",paymentDetailsUpdateError:"Could not update your billing details",usageWidgetLimitReached:"Limit reached",usageWidgetRunningLow:"Running low",usageWidgetUpgradeToKeepGoing:"Upgrade to keep going.",usageWidgetOnlyLeft:"Only {left} left.",usageWidgetFreeExhausted:"All your free conversations are used, and they don't renew.",usageWidgetFreeLeft:"{left} free conversations left, and they don't renew.",usageWidgetEnterpriseOverQuota:"A Botpress representative will contact you at the end of the usage period.",usageWidgetResets:"Resets {date}",usageWidgetViewOptions:"View plan options",usagePopoverFreeTitle:"Free plan usage",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> included, total. They do not renew, and Free has no top-ups.",usagePopoverPlanName:"{planName} plan",usagePopoverTitle:"Current period ends {date}",usagePopoverNudgeText:"<bold>Need more room?</bold> Plus includes unlimited agents, {quota} conversations per month and packs of {packSize} extra when you need them.",dashboardUsage:"Usage",dashboardBillingPeriod:"Billing period",dashboardPrevMonth:"Previous month",dashboardNextMonth:"Next month",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Each conversation includes AI usage. When you reach your limit, extra conversations are added automatically so service continues.",dashboardStorageTitle:"Storage",dashboardStorageHint:"Shared across files, knowledge base, and tables.",dashboardAiTitle:"AI usage",dashboardAiHint:"Each conversation includes an allowance of AI usage. Track how much of that allowance you've used",dashboardEnterpriseUsageNotice:"Your usage will not be blocked if you go over quota.",dashboardLoadError:"We couldn't load your usage. Try again in a moment.",dashboardNoBotSpend:"No per-bot AI spend this period.",dashboardAiByBot:"AI spend by bot",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Table rows",dashboardVectorDb:"Vector DB storage",dashboardFileStorage:"File storage",dashboardAiSpend:"AI spend",dashboardFromPlan:"{amount} from {planName} plan",dashboardFromPlanGeneric:"{amount} from your plan",dashboardFromPlanWithAddons:"{amount} from {planName} plan + {addonAmount} from add-ons",dashboardFromPlanGenericWithAddons:"{amount} from your plan + {addonAmount} from add-ons",dashboardIncreaseLimits:"Increase limits",planFeatureAiUsageIncluded:"{amount} AI usage included",planFeature3Seats:"3 seats",planFeature3AiAgents:"3 AI agents",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Help center",planFeature1kTableRows:"1K table rows",planFeature100kTableRows:"100K table rows",planFeature500kTableRows:"500K table rows",planFeature100mbFileStorage:"100MB file storage",planFeature10gbFileStorage:"10GB file storage",planFeature50gbFileStorage:"50GB file storage",planFeature100mbVectorDb:"100MB vector DB storage",planFeature1gbVectorDb:"1GB vector DB storage",planFeature5gbVectorDb:"5GB vector DB storage",planFeatureCommunitySupport:"Community support",planFeatureUnlimitedAiAgents:"Unlimited AI agents",planFeatureWhatsappChannel:"WhatsApp channel",planFeatureHelpCenterCustomDomain:"Help Center custom domain",planFeatureWhitelabelWebchat:"Whitelabel webchat",planFeatureTechnicalSupportLiveChat:"Technical support via live chat",planFeatureUnlimitedSeats:"Unlimited seats",planFeatureTeamsRoutingRbac:"Teams, routing & RBAC",planFeatureTeamLevelAnalytics:"Team-level analytics",planFeatureVoiceChannel:"Voice channel",planFeatureDedicatedSupport:"Dedicated support",planFeatureSlaSecurity:"SLA & security review",planFeatureCustomStorage:"Custom storage",planFeatureDescAiUsageIncluded:"AI usage is the cost of calling an LLM. Every conversation includes {rate}. We pay it for you.",planFeatureDesc3Seats:"Up to 3 team members can collaborate in this workspace.",planFeatureDescUnlimitedSeats:"Invite as many team members to the workspace as you need.",planFeatureDesc3AiAgents:"Build and publish up to 3 distinct AI agents.",planFeatureDescUnlimitedAiAgents:"Build and publish as many AI agents as you need.",planFeatureDescBotpressDesk:"The human-handoff inbox where agents triage and reply to live conversations.",planFeatureDescBotpressStudioAdk:"The visual Studio builder plus the Agent Development Kit for building agents in code.",planFeatureDescBotpressViber:"Build AI agents by chatting with Vibe — no code required.",planFeatureDescHelpCenter:"A hosted knowledge base your agent answers from and customers can browse.",planFeatureDescHelpCenterCustomDomain:"Serve your help center from your own domain instead of a Botpress URL.",planFeatureDescWhatsappChannel:"Connect your agent to WhatsApp to chat with customers there.",planFeatureDescVoiceChannel:"Connect your agent to phone/voice so it can handle spoken conversations.",planFeatureDescWhitelabelWebchat:"Remove Botpress branding from the web chat widget so it's fully your own.",planFeatureDescTeamsRoutingRbac:"Organize members into teams, route conversations between them, and control access by role.",planFeatureDescTeamLevelAnalytics:"Performance and volume metrics broken down per team.",planFeatureDescTechnicalSupportLiveChat:"Reach the Botpress support team over live chat for help.",planFeatureDescCommunitySupport:"Get help from the Botpress community forum and Discord.",planFeatureDescDedicatedSupport:"A named contact and priority support channel for your account.",planFeatureDescSlaSecurity:"A contractual uptime SLA and a security/compliance review for your procurement.",planFeatureDescCustomStorage:"Storage limits tailored to your workload, beyond the standard tiers.",planFeatureDesc1kTableRows:"1K rows across all your data tables.",planFeatureDesc100kTableRows:"100K rows across all your data tables.",planFeatureDesc500kTableRows:"500K rows across all your data tables.",planFeatureDesc100mbFileStorage:"100MB of uploaded files (documents, images, attachments).",planFeatureDesc10gbFileStorage:"10GB of uploaded files (documents, images, attachments).",planFeatureDesc50gbFileStorage:"50GB of uploaded files (documents, images, attachments).",planFeatureDesc100mbVectorDb:"100MB of embeddings for knowledge-base search and retrieval.",planFeatureDesc1gbVectorDb:"1GB of embeddings for knowledge-base search and retrieval.",planFeatureDesc5gbVectorDb:"5GB of embeddings for knowledge-base search and retrieval.",planDescriptionCommunity:"Free plan for trying things out",planDescriptionPlus:"For growing businesses",planDescriptionTeam:"For small teams",planDescriptionEnterprise:"Enterprise license subscription",planDescriptionManaged:"Managed license subscription",addonNameConversationSessions:"Conversations",addonNameStorage:"Storage",addonDescriptionConversationSessions:"Adds conversation sessions for the month",addonDescriptionStorage:"Adds table rows, vector DB space and files",summaryCurrentPlan:"Current plan",summaryManagedInDashboard:"Managed in Dashboard",summaryManagedMeta:"This workspace uses an earlier billing system.",summaryNoPlan:"No plan",summaryConversationsPerMo:"{n} conversations/mo",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} active add-on",summaryActiveAddons:"{count} active add-ons",summaryNoAddons:"No add-ons",summaryNoAddonsMeta:"Add extra conversations or storage",autoRechargeTitle:"AI spend auto-recharge",autoRechargeDescription:"Automatically top up your AI usage credit when your balance runs low.",autoRechargeLoadErrorTitle:"We couldn't load your settings",autoRechargeLoadError:"Something went wrong while fetching your auto-recharge settings. Check your connection and try again.",autoRechargeThresholdLabel:"Recharge threshold",autoRechargeThresholdHint:"Recharge triggers when your balance falls below this amount. $5 or more.",autoRechargeThresholdError:"Must be a whole-dollar amount of at least $5.",autoRechargeChunkLabel:"Recharge amount",autoRechargeChunkHint:"Whole-dollar amount, $5 or more.",autoRechargeChunkError:"Must be a whole-dollar amount of at least $5.",autoRechargeLimitLabel:"Monthly limit (USD)",autoRechargeLimitHint:"Won't recharge more than this in a billing month. Must be a multiple of the recharge amount ({amount}).",autoRechargeLimitError:"Must be a multiple of the recharge amount ({amount}).",autoRechargeSetLimitLabel:"Set a monthly limit",autoRechargeSetLimitHint:"Cap how much auto-recharge can spend each billing month.",autoRechargeNoCapHint:"Auto-recharge has no monthly cap.",autoRechargeDisabledReason:"Auto-recharge is off: {reason}",autoRechargeUpdateSuccess:"Auto-recharge settings updated",autoRechargeUpdateError:"Could not update your auto-recharge settings",autoRechargeSummaryOn:"Enabled",autoRechargeSummaryOff:"Disabled",autoRechargeSummaryMeta:"{amount} recharge · up to {limit}/mo",autoRechargeSummaryMetaNoLimit:"{amount} recharge · no limit",autoRechargeSummaryLoadError:"Couldn't load status",autoRechargeRequiresPaidPlanTitle:"Auto-recharge requires a paid plan",autoRechargeRequiresPaidPlanBody:"Upgrade your plan to automatically top up your AI usage credit.",autoRechargeUpgradeCta:"Upgrade plan"},Pi={free:"Gratuit",manage:"Gérer",cancel:"Annuler",close:"Fermer",open:"Ouvrir",edit:"Modifier",update:"Mettre à jour",tryAgain:"Réessayer",save:"Enregistrer",upgrade:"Mettre à niveau",downgrade:"Rétrograder",billingIntervalLabel:"Intervalle de facturation",billedMonthly:"Facturé mensuellement",billedAnnually:"Facturé annuellement",conversationsUnit:"conversations",conversationsPerMonth:"conversations / mois",perMonth:"/mois",perYear:"/an",perMonthLong:"/mois",perYearLong:"/an",resourceConversations:"Conversations / mois",resourceTableRows:"Lignes de table",resourceVectorDb:"Stockage vectoriel",resourceFileStorage:"Stockage de fichiers",metricConversations:"conversations mensuelles",metricTableRows:"lignes de table",metricVectorDb:"stockage vectoriel",metricFileStorage:"stockage de fichiers",metricAiSpend:"dépenses IA",metricBotCount:"agents",usageBannerLimitReached:"Vous avez atteint votre limite de {label}. Mettez à niveau maintenant pour éviter les interruptions.",usageBannerNearLimit:"Vous avez utilisé {pct}% de votre {label}. Mettez à niveau pour éviter d'atteindre votre limite.",usageBannerDefaultCta:"Mettre à niveau",usageBannerManageCta:"Gérer le plan",usageBannerDismiss:"Ignorer",planBannerEyebrow:"Plan actuel",planBannerManagedTitle:"Géré dans le tableau de bord",planBannerManagedSub:"Cet espace de travail utilise un système de facturation antérieur.",planBannerNoPlan:"Aucun plan",planBannerCustomPricing:"Tarification personnalisée",planBannerCustomConversations:"Conversations personnalisées",planBannerCustom:"Personnalisé",planBannerInclAddons:"· add-ons inclus",planBannerRenews:"Renouvellement le {date}",planBannerDowngradesTo:"Passe à {plan} le {date}",planBannerManageCta:"Gérer le plan",checkoutTitle:"Configurer votre plan",checkoutBackLabel:"Retour aux plans",checkoutPlanDetails:"Détails du plan",checkoutMonthlyBilling:"Facturation mensuelle",checkoutAnnualBilling:"Facturation annuelle",checkoutSaveBadge:"Économisez {savings}%",checkoutPaymentMethodTitle:"Moyen de paiement",checkoutSavedCardTab:"Enregistrée",checkoutNewCardTab:"Nouvelle carte",checkoutBillingAddressTitle:"Adresse de facturation",checkoutCancelEdit:"Annuler",checkoutUpdateAddress:"Mettre à jour",checkoutIsBusiness:"J'achète en tant qu'entreprise",checkoutBusinessDetails:"Informations d'entreprise",checkoutBusinessNamePlaceholder:"Nom de l'entreprise",checkoutTaxIdTypeLabel:"Type d'identifiant fiscal",checkoutTaxIdNumberPlaceholder:"Numéro d'identifiant fiscal",checkoutNoTaxRequired:"Aucun identifiant fiscal n'est requis pour votre pays de facturation.",checkoutSelectCountryForTax:"Sélectionnez votre pays de facturation ci-dessus pour ajouter un identifiant fiscal.",checkoutContactInfo:"Coordonnées",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"Le champ de carte n'est pas prêt",checkoutPaymentSetupFailed:"Échec de la configuration du paiement",checkoutPaymentMethodMissing:"Impossible de récupérer le moyen de paiement",checkoutAddressIncomplete:"Veuillez compléter votre adresse de facturation",checkoutGenericError:"Une erreur s'est produite lors du traitement de votre paiement. Vous n'avez pas été débité deux fois.",checkoutSuccessToast:"Abonnement activé",checkoutErrorToast:"Erreur de paiement",orderTopFeatures:"Fonctionnalités principales",orderThen:"puis {price} par {packSize}",orderPreviewError:"Impossible de calculer votre total. Réessayez dans un instant.",orderPlanFromDate:"Plan {plan} — à partir du {date}",orderProratedToday:"Calculé au prorata d'aujourd'hui",orderProratedTodayDesc:"En changeant de plan en milieu de période, vous ne payez que pour le temps restant dans votre période de facturation actuelle. Le prix total du plan ci-dessus est facturé à votre prochain renouvellement, pas aujourd'hui.",orderCreditUnusedTime:"Crédit pour le temps non utilisé",orderAdjustUnusedTime:"Ajustement pour le temps non utilisé",orderCreditUnusedTimeDesc:"Vous avez déjà payé pour le temps restant dans votre période de facturation actuelle. Nous créditons ce temps non utilisé et le réappliquons à votre nouveau tarif, afin que vous ne soyez jamais facturé deux fois.",orderAdjustUnusedTimeDesc:"Le changement en milieu de cycle signifie que nous calculons au prorata la différence entre votre ancien et votre nouveau plan pour les jours restants dans votre période de facturation actuelle.",orderAccountCredit:"Crédit de compte",orderDueToday:"À payer aujourd'hui",orderCreditTowardNext:"Vous avez {amount} de temps non utilisé crédité sur votre prochaine facture.",orderBalanceAsCredit:"Votre solde restant de {amount} est appliqué comme crédit sur votre prochaine facture.",orderSavingsNote:"Vous économisez {monthlySavings}/mois en choisissant un plan annuel. C'est {yearlySavings}/an.",orderSubscribe:"S'abonner",orderPreviewUnavailable:"Aperçu indisponible",orderIntervalAnnual:"annuellement",orderIntervalMonthly:"mensuellement",orderRenewsMonthly:"Renouvellement mensuel jusqu'à annulation.",orderRenewsAnnually:"Renouvellement annuel jusqu'à annulation.",orderChargedStarting:"Vous serez facturé {amount}{period} à partir du {date}.",orderChargedNoDate:"Vous serez facturé {amount}{period}.",orderCancelNote:"Annulez à tout moment dans les paramètres. En vous abonnant, vous autorisez Botpress à stocker et à débiter votre moyen de paiement.",invoicesTitle:"Historique de facturation",invoicesLoadError:"Impossible de charger vos factures. Réessayez dans un instant.",invoicesEmpty:"Aucune facture pour l'instant. Elles apparaîtront ici après votre première facturation.",invoicesDownloadLabel:"Télécharger la facture du {date}",invoiceStatusPaid:"Payée",invoiceStatusDue:"À payer",invoiceStatusDraft:"Brouillon",invoiceStatusUnpaid:"Impayée",invoiceStatusVoid:"Annulée",upgradeDialogTitle:"Mettre à niveau votre plan",upgradeMonthly:"Mensuel",upgradeAnnual:"Annuel",upgradeSaveBadge:"Économisez {savings}%",upgradeRecommended:"Recommandé",upgradePerMonthSuffix:"/ mois ({currency})",upgradeNoTopup:"Aucun forfait supplémentaire",upgradeCurrentPlan:"Votre plan actuel",upgradeNextPlan:"Prochain plan",upgradeCancelDowngrade:"Annuler la rétrogradation",upgradeDowngrade:"Rétrograder",upgradeSwitchToAnnual:"Passer à l'annuel",upgradeSwitchToMonthly:"Passer au mensuel",upgradePlanManaged:"Votre plan est géré par Botpress — contactez-nous pour le modifier",upgradeUpgrade:"Mettre à niveau",upgradeEverythingIn:"Tout ce qui est dans {planName}",upgradeSeeAllFeatures:"Voir les {total} fonctionnalités",upgradeShowFewerFeatures:"Afficher moins de fonctionnalités",upgradeContactUs:"Nous contacter",upgradeFooterEnterprise:"Besoin de plus, ou à grande échelle ?",upgradeFooterAboutEnterprise:"pour l'entreprise. Comparez les plans sur",upgradeThenPer:"puis {price} par {packSize} supplémentaires",upgradeDowngradeSuccess:"Plan rétrogradé",upgradeDowngradeError:"Échec de la rétrogradation",upgradeCancelDowngradeSuccess:"Rétrogradation planifiée annulée",upgradeCancelDowngradeError:"Impossible d'annuler la rétrogradation",addonsDialogTitle:"Gérer les add-ons",addonsSubtitleWithPlan:"Utilisation supplémentaire pour votre plan {planName}. Définissez une quantité à 0 pour supprimer un add-on.",addonsSubtitleGeneric:"Utilisation supplémentaire pour votre plan. Définissez une quantité à 0 pour supprimer un add-on.",addonsRequirePaidPlanTitle:"Les add-ons nécessitent un plan payant",addonsRequirePaidPlanBody:"Mettez à niveau votre plan pour débloquer des conversations, du stockage et plus encore.",addonsUpgradeCta:"Mettre à niveau le plan",addonsEach:"chacun",addonActiveOnly:"{count} actif",addonRemovedNextCycle:"{activeNow} actif maintenant · supprimé au prochain cycle",addonRemovedOnDate:"{activeNow} actif maintenant · supprimé le {date}",addonChangedNextCycle:"{activeNow} actif maintenant · {pending} au prochain cycle",addonChangedOnDate:"{activeNow} actif maintenant · {pending} à partir du {date}",addonsNewLimits:"Vos nouvelles limites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Coût mensuel total",addonsTotalYearly:"Coût annuel total",addonsDueToday:"À payer aujourd'hui",addonsChargedNow:"Vous serez facturé {amount} maintenant pour le reste de cette période de facturation. ",addonsNoChargeToday:"Aucun frais aujourd'hui — la modification est calculée au prorata. ",addonsRenewalWithDate:"Les add-ons restent actifs jusqu'à ce que vous les supprimiez et renouveliez votre plan le {date}, date à laquelle vous serez facturé {amount}{interval} pour ceux-ci.",addonsRenewalNoDate:"Les add-ons restent actifs jusqu'à ce que vous les supprimiez et renouveliez votre plan, date à laquelle vous serez facturé {amount}{interval} pour ceux-ci.",addonsReadonlyNote:"Les add-ons de cet espace de travail sont gérés par Botpress — contactez-nous pour les modifier.",addonsUpdateSuccess:"Abonnement mis à jour",addonsUpdateError:"Impossible de mettre à jour vos add-ons",addonsUpdateSubscription:"Mettre à jour l'abonnement",addonsConvos:"{n} conv.",outdatedTitle:"La facturation est gérée dans le tableau de bord Botpress",outdatedText:"Cet espace de travail utilise un système de facturation antérieur, donc les changements de plan et les informations de paiement ne peuvent pas être gérés ici.",outdatedCta:"Ouvrir la facturation dans le tableau de bord",outgrowTitle:"Vous êtes sur le point de dépasser le plan Gratuit",outgrowLede:"Le plan Gratuit inclut <bold>{quota}</bold> conversations au total, et elles ne se renouvellent pas. La mise à niveau vous donne une allocation mensuelle, débloque plus de canaux et ajoute des packs de conversations, pour que vos agents ne cessent jamais de répondre.",outgrowSoFar:"Jusqu'ici",outgrowUsageText:"<bold>{used}</bold> sur <bold>{quota}</bold> conversations gratuites utilisées · elles ne se renouvellent pas",outgrowNoTopup:"Aucun forfait supplémentaire",outgrowUpgradeTo:"Passer à {planName}",outgrowEverythingIn:"Tout ce qui est dans {planName}, et",outgrowNeedCustom:"Besoin de volume personnalisé, de SLA ou de voix ?",outgrowTalkToSales:"Parlez à nos commerciaux",outgrowCompareAll:"Comparer tous les plans",outgrowThenPer:"puis {symbol}{amount} par {packSize} supplémentaires",paymentDialogTitle:"Paiement et facturation",paymentSessionError:"Impossible de démarrer une session sécurisée.",paymentMethodSection:"Moyen de paiement",paymentCardSaveError:"Impossible d'enregistrer votre carte",paymentMethodMissing:"Impossible de récupérer le moyen de paiement",paymentCardGenericError:"Impossible d'enregistrer votre carte. Veuillez vérifier vos informations et réessayer.",paymentReplace:"Remplacer",paymentBillingAddressSection:"Adresse de facturation",paymentTaxIds:"Identifiants fiscaux",paymentTaxEmpty:"Ajoutez un numéro de TVA ou d'identification fiscale pour qu'il apparaisse sur vos factures.",paymentTaxIdType:"Type d'identifiant fiscal",paymentTaxSelectType:"Sélectionner le type",paymentTaxIdNumber:"Numéro d'identifiant fiscal",paymentTaxRemove:"Supprimer l'identifiant fiscal",paymentTaxAdd:"+ Ajouter un identifiant fiscal",paymentAddressIncomplete:"Veuillez compléter votre adresse de facturation.",paymentAddressError:"Impossible de mettre à jour vos informations de facturation.",paymentCardUpdated:"Carte mise à jour",paymentDetailsUpdated:"Informations de facturation mises à jour",paymentSaveCard:"Enregistrer la carte",paymentSaveBillingDetails:"Enregistrer les informations de facturation",paymentDetailsUpdateError:"Impossible de mettre à jour vos informations de facturation",usageWidgetLimitReached:"Limite atteinte",usageWidgetRunningLow:"Stock faible",usageWidgetUpgradeToKeepGoing:"Mettez à niveau pour continuer.",usageWidgetOnlyLeft:"Plus que {left}.",usageWidgetFreeExhausted:"Toutes vos conversations gratuites sont utilisées et elles ne se renouvellent pas.",usageWidgetFreeLeft:"{left} conversations gratuites restantes, et elles ne se renouvellent pas.",usageWidgetEnterpriseOverQuota:"Un représentant Botpress vous contactera à la fin de la période d’utilisation.",usageWidgetResets:"Réinitialisation le {date}",usageWidgetViewOptions:"Voir les options de plan",usagePopoverFreeTitle:"Utilisation du plan gratuit",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> incluses, au total. Elles ne se renouvellent pas, et le plan Gratuit n’a pas de recharge.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"La période actuelle se termine le {date}",usagePopoverNudgeText:"<bold>Besoin de plus d’espace ?</bold> Plus inclut des agents illimités, {quota} conversations par mois et des packs de {packSize} supplémentaires en cas de besoin.",dashboardUsage:"Utilisation",dashboardBillingPeriod:"Période de facturation",dashboardPrevMonth:"Mois précédent",dashboardNextMonth:"Mois suivant",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Chaque conversation inclut l'utilisation de l'IA. Lorsque vous atteignez votre limite, des conversations supplémentaires sont ajoutées automatiquement pour que le service continue.",dashboardStorageTitle:"Stockage",dashboardStorageHint:"Partagé entre les fichiers, la base de connaissances et les tables.",dashboardAiTitle:"Utilisation de l'IA",dashboardAiHint:"Chaque conversation inclut une allocation d'usage IA. Suivez la part de cette allocation que vous avez utilisée",dashboardEnterpriseUsageNotice:"Votre utilisation ne sera pas bloquée si vous dépassez votre quota.",dashboardLoadError:"Impossible de charger votre utilisation. Réessayez dans un instant.",dashboardNoBotSpend:"Aucune dépense IA par bot pour cette période.",dashboardAiByBot:"Dépenses IA par bot",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Lignes de table",dashboardVectorDb:"Stockage vectoriel",dashboardFileStorage:"Stockage de fichiers",dashboardAiSpend:"Dépenses IA",dashboardFromPlan:"{amount} du plan {planName}",dashboardFromPlanGeneric:"{amount} de votre plan",dashboardFromPlanWithAddons:"{amount} du plan {planName} + {addonAmount} des add-ons",dashboardFromPlanGenericWithAddons:"{amount} de votre plan + {addonAmount} des add-ons",dashboardIncreaseLimits:"Augmenter les limites",planFeatureAiUsageIncluded:"Utilisation de l'IA incluse : {amount}",planFeature3Seats:"3 postes",planFeature3AiAgents:"3 agents IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Centre d'aide",planFeature1kTableRows:"1K lignes de table",planFeature100kTableRows:"100K lignes de table",planFeature500kTableRows:"500K lignes de table",planFeature100mbFileStorage:"100Mo de stockage de fichiers",planFeature10gbFileStorage:"10Go de stockage de fichiers",planFeature50gbFileStorage:"50Go de stockage de fichiers",planFeature100mbVectorDb:"100Mo de stockage vectoriel",planFeature1gbVectorDb:"1Go de stockage vectoriel",planFeature5gbVectorDb:"5Go de stockage vectoriel",planFeatureCommunitySupport:"Support communautaire",planFeatureUnlimitedAiAgents:"Agents IA illimités",planFeatureWhatsappChannel:"Canal WhatsApp",planFeatureHelpCenterCustomDomain:"Domaine personnalisé du centre d'aide",planFeatureWhitelabelWebchat:"Webchat sans marque",planFeatureTechnicalSupportLiveChat:"Support technique par chat en direct",planFeatureUnlimitedSeats:"Postes illimités",planFeatureTeamsRoutingRbac:"Équipes, routage et RBAC",planFeatureTeamLevelAnalytics:"Analytiques par équipe",planFeatureVoiceChannel:"Canal vocal",planFeatureDedicatedSupport:"Support dédié",planFeatureSlaSecurity:"SLA et audit de sécurité",planFeatureCustomStorage:"Stockage personnalisé",planFeatureDescAiUsageIncluded:"L'utilisation de l'IA est le coût d'un appel à un LLM. Chaque conversation inclut {rate}. Nous le prenons en charge.",planFeatureDesc3Seats:"Jusqu'à 3 membres de l'équipe peuvent collaborer dans cet espace de travail.",planFeatureDescUnlimitedSeats:"Invitez autant de membres d'équipe que nécessaire dans l'espace de travail.",planFeatureDesc3AiAgents:"Créez et publiez jusqu'à 3 agents IA distincts.",planFeatureDescUnlimitedAiAgents:"Créez et publiez autant d'agents IA que nécessaire.",planFeatureDescBotpressDesk:"La boîte de réception de transfert humain où les agents trient et répondent aux conversations en direct.",planFeatureDescBotpressStudioAdk:"Le constructeur visuel Studio plus le Kit de Développement d'Agents pour créer des agents en code.",planFeatureDescBotpressViber:"Créez des agents IA en discutant avec Vibe — sans code requis.",planFeatureDescHelpCenter:"Une base de connaissances hébergée depuis laquelle votre agent répond et que les clients peuvent consulter.",planFeatureDescHelpCenterCustomDomain:"Publiez votre centre d'aide depuis votre propre domaine plutôt qu'une URL Botpress.",planFeatureDescWhatsappChannel:"Connectez votre agent à WhatsApp pour discuter avec vos clients là-bas.",planFeatureDescVoiceChannel:"Connectez votre agent au téléphone/vocal pour qu'il puisse gérer les conversations parlées.",planFeatureDescWhitelabelWebchat:"Supprimez la marque Botpress du widget de chat web pour qu'il soit entièrement le vôtre.",planFeatureDescTeamsRoutingRbac:"Organisez les membres en équipes, routez les conversations entre elles et contrôlez l'accès par rôle.",planFeatureDescTeamLevelAnalytics:"Métriques de performance et de volume ventilées par équipe.",planFeatureDescTechnicalSupportLiveChat:"Contactez l'équipe de support Botpress par chat en direct pour obtenir de l'aide.",planFeatureDescCommunitySupport:"Obtenez de l'aide sur le forum communautaire Botpress et Discord.",planFeatureDescDedicatedSupport:"Un contact désigné et un canal de support prioritaire pour votre compte.",planFeatureDescSlaSecurity:"Un SLA de disponibilité contractuel et un audit de sécurité/conformité pour votre processus d'achat.",planFeatureDescCustomStorage:"Limites de stockage adaptées à votre charge de travail, au-delà des niveaux standard.",planFeatureDesc1kTableRows:"1K lignes dans toutes vos tables de données.",planFeatureDesc100kTableRows:"100K lignes dans toutes vos tables de données.",planFeatureDesc500kTableRows:"500K lignes dans toutes vos tables de données.",planFeatureDesc100mbFileStorage:"100Mo de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc10gbFileStorage:"10Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc50gbFileStorage:"50Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc100mbVectorDb:"100Mo d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc1gbVectorDb:"1Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc5gbVectorDb:"5Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planDescriptionCommunity:"Plan gratuit pour essayer",planDescriptionPlus:"Pour les entreprises en croissance",planDescriptionTeam:"Pour les petites équipes",planDescriptionEnterprise:"Abonnement à la licence entreprise",planDescriptionManaged:"Abonnement à la licence gérée",addonNameConversationSessions:"Conversations",addonNameStorage:"Stockage",addonDescriptionConversationSessions:"Ajoute des sessions de conversation pour le mois",addonDescriptionStorage:"Ajoute des lignes de table, de l'espace vectoriel et des fichiers",summaryCurrentPlan:"Plan actuel",summaryManagedInDashboard:"Géré dans le tableau de bord",summaryManagedMeta:"Cet espace de travail utilise un système de facturation antérieur.",summaryNoPlan:"Aucun plan",summaryConversationsPerMo:"{n} conversations/mois",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on actif",summaryActiveAddons:"{count} add-ons actifs",summaryNoAddons:"Aucun add-on",summaryNoAddonsMeta:"Ajoutez des conversations ou du stockage supplémentaires",autoRechargeTitle:"Recharge automatique des dépenses IA",autoRechargeDescription:"Recharge automatiquement votre crédit d’usage IA lorsque votre solde est bas.",autoRechargeLoadErrorTitle:"Impossible de charger vos paramètres",autoRechargeLoadError:"Une erreur s'est produite lors du chargement de vos paramètres de recharge automatique. Vérifiez votre connexion et réessayez.",autoRechargeThresholdLabel:"Seuil de recharge",autoRechargeThresholdHint:"La recharge se déclenche lorsque votre solde passe sous ce montant. 5 $ ou plus.",autoRechargeThresholdError:"Doit être un montant entier d’au moins 5 $.",autoRechargeChunkLabel:"Montant de recharge",autoRechargeChunkHint:"Montant en dollars entiers, 5 $ ou plus.",autoRechargeChunkError:"Doit être un montant en dollars entiers d’au moins 5 $.",autoRechargeLimitLabel:"Limite mensuelle (USD)",autoRechargeLimitHint:"Ne rechargera pas plus que ce montant par mois de facturation. Doit être un multiple du montant de recharge ({amount}).",autoRechargeLimitError:"Doit être un multiple du montant de recharge ({amount}).",autoRechargeSetLimitLabel:"Définir une limite mensuelle",autoRechargeSetLimitHint:"Plafonner les dépenses de la recharge automatique chaque mois de facturation.",autoRechargeNoCapHint:"La recharge automatique n'a pas de plafond mensuel.",autoRechargeDisabledReason:"La recharge automatique est désactivée : {reason}",autoRechargeUpdateSuccess:"Paramètres de recharge automatique mis à jour",autoRechargeUpdateError:"Impossible de mettre à jour vos paramètres de recharge automatique",autoRechargeSummaryOn:"Activée",autoRechargeSummaryOff:"Désactivée",autoRechargeSummaryMeta:"{amount} de recharge · jusqu’à {limit}/mois",autoRechargeSummaryMetaNoLimit:"{amount} de recharge · sans limite",autoRechargeSummaryLoadError:"Impossible de charger l'état",autoRechargeRequiresPaidPlanTitle:"La recharge automatique nécessite un plan payant",autoRechargeRequiresPaidPlanBody:"Mettez à niveau votre plan pour recharger automatiquement votre crédit IA.",autoRechargeUpgradeCta:"Mettre à niveau le plan"},xi={free:"Gratis",manage:"Gestionar",cancel:"Cancelar",close:"Cerrar",open:"Abrir",edit:"Editar",update:"Actualizar",tryAgain:"Reintentar",save:"Guardar",upgrade:"Actualizar plan",downgrade:"Reducir plan",billingIntervalLabel:"Intervalo de facturación",billedMonthly:"Facturado mensualmente",billedAnnually:"Facturado anualmente",conversationsUnit:"conversaciones",conversationsPerMonth:"conversaciones / mes",perMonth:"/mes",perYear:"/año",perMonthLong:"/mes",perYearLong:"/año",resourceConversations:"Conversaciones / mes",resourceTableRows:"Filas de tabla",resourceVectorDb:"Almacenamiento vectorial",resourceFileStorage:"Almacenamiento de archivos",metricConversations:"conversaciones mensuales",metricTableRows:"filas de tabla",metricVectorDb:"almacenamiento vectorial",metricFileStorage:"almacenamiento de archivos",metricAiSpend:"gasto en IA",metricBotCount:"agentes",usageBannerLimitReached:"Has alcanzado tu límite de {label}. Actualiza ahora para evitar interrupciones.",usageBannerNearLimit:"Has usado el {pct}% de tu {label}. Actualiza para evitar alcanzar tu límite.",usageBannerDefaultCta:"Actualizar plan",usageBannerManageCta:"Gestionar plan",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plan actual",planBannerManagedTitle:"Gestionado en el Panel",planBannerManagedSub:"Este espacio de trabajo utiliza un sistema de facturación anterior.",planBannerNoPlan:"Sin plan",planBannerCustomPricing:"Precio personalizado",planBannerCustomConversations:"Conversaciones personalizadas",planBannerCustom:"Personalizado",planBannerInclAddons:"· add-ons incluidos",planBannerRenews:"Renovación el {date}",planBannerDowngradesTo:"Cambia a {plan} el {date}",planBannerManageCta:"Gestionar plan",checkoutTitle:"Configura tu plan",checkoutBackLabel:"Volver a los planes",checkoutPlanDetails:"Detalles del plan",checkoutMonthlyBilling:"Facturación mensual",checkoutAnnualBilling:"Facturación anual",checkoutSaveBadge:"Ahorra un {savings}%",checkoutPaymentMethodTitle:"Método de pago",checkoutSavedCardTab:"Guardada",checkoutNewCardTab:"Nueva tarjeta",checkoutBillingAddressTitle:"Dirección de facturación",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Actualizar",checkoutIsBusiness:"Compro como empresa",checkoutBusinessDetails:"Datos de empresa",checkoutBusinessNamePlaceholder:"Nombre de la empresa",checkoutTaxIdTypeLabel:"Tipo de NIF",checkoutTaxIdNumberPlaceholder:"Número de NIF",checkoutNoTaxRequired:"No se requiere NIF para tu país de facturación.",checkoutSelectCountryForTax:"Selecciona tu país de facturación arriba para añadir un NIF.",checkoutContactInfo:"Información de contacto",checkoutEmailLabel:"Correo electrónico",checkoutCardNotReady:"El campo de tarjeta no está listo",checkoutPaymentSetupFailed:"Error al configurar el pago",checkoutPaymentMethodMissing:"No se pudo obtener el método de pago",checkoutAddressIncomplete:"Completa tu dirección de facturación",checkoutGenericError:"Se produjo un error al procesar tu pago. No se te ha cobrado dos veces.",checkoutSuccessToast:"Suscripción activada",checkoutErrorToast:"Error de pago",orderTopFeatures:"Características principales",orderThen:"luego {price} por {packSize}",orderPreviewError:"No pudimos calcular tu total. Inténtalo de nuevo en un momento.",orderPlanFromDate:"Plan {plan} — desde el {date}",orderProratedToday:"Prorrateo de hoy",orderProratedTodayDesc:"Al cambiar de plan a mitad de período, solo pagas por el tiempo restante en tu período de facturación actual. El precio completo del plan se cobra en tu próxima renovación, no hoy.",orderCreditUnusedTime:"Crédito por tiempo no utilizado",orderAdjustUnusedTime:"Ajuste por tiempo no utilizado",orderCreditUnusedTimeDesc:"Ya pagaste por el tiempo restante en tu período de facturación actual. Acreditamos ese tiempo no utilizado y lo reaplicamos a tu nueva tarifa, para que nunca se te cobre dos veces.",orderAdjustUnusedTimeDesc:"Cambiar a mitad de ciclo significa que prorrateamos la diferencia entre tu plan antiguo y el nuevo por los días restantes en tu período de facturación actual.",orderAccountCredit:"Crédito de cuenta",orderDueToday:"A pagar hoy",orderCreditTowardNext:"Tienes {amount} de tiempo no utilizado acreditado en tu próxima factura.",orderBalanceAsCredit:"Tu saldo restante de {amount} se aplica como crédito en tu próxima factura.",orderSavingsNote:"Estás ahorrando {monthlySavings}/mes al elegir un plan anual. Eso es {yearlySavings}/año.",orderSubscribe:"Suscribirse",orderPreviewUnavailable:"Vista previa no disponible",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensualmente",orderRenewsMonthly:"Se renueva mensualmente hasta que canceles.",orderRenewsAnnually:"Se renueva anualmente hasta que canceles.",orderChargedStarting:"Se te cobrará {amount}{period} a partir del {date}.",orderChargedNoDate:"Se te cobrará {amount}{period}.",orderCancelNote:"Cancela en cualquier momento en la Configuración. Al suscribirte, autorizas a Botpress a almacenar y cobrar tu método de pago.",invoicesTitle:"Historial de facturación",invoicesLoadError:"No pudimos cargar tus facturas. Inténtalo de nuevo en un momento.",invoicesEmpty:"Aún no hay facturas. Aparecerán aquí después de tu primer cargo.",invoicesDownloadLabel:"Descargar factura del {date}",invoiceStatusPaid:"Pagada",invoiceStatusDue:"Pendiente",invoiceStatusDraft:"Borrador",invoiceStatusUnpaid:"Impagada",invoiceStatusVoid:"Anulada",upgradeDialogTitle:"Actualizar tu plan",upgradeMonthly:"Mensual",upgradeAnnual:"Anual",upgradeSaveBadge:"Ahorra un {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mes ({currency})",upgradeNoTopup:"Sin recarga",upgradeCurrentPlan:"Tu plan actual",upgradeNextPlan:"Siguiente plan",upgradeCancelDowngrade:"Cancelar reducción",upgradeDowngrade:"Reducir plan",upgradeSwitchToAnnual:"Cambiar a anual",upgradeSwitchToMonthly:"Cambiar a mensual",upgradePlanManaged:"Tu plan está gestionado por Botpress — contáctanos para cambiarlo",upgradeUpgrade:"Actualizar",upgradeEverythingIn:"Todo lo de {planName}",upgradeSeeAllFeatures:"Ver las {total} funciones",upgradeShowFewerFeatures:"Mostrar menos funciones",upgradeContactUs:"Contáctanos",upgradeFooterEnterprise:"¿Necesitas más o trabajas a gran escala?",upgradeFooterAboutEnterprise:"para Enterprise. Compara planes en",upgradeThenPer:"luego {price} por {packSize} adicionales",upgradeDowngradeSuccess:"Plan reducido",upgradeDowngradeError:"Error al reducir el plan",upgradeCancelDowngradeSuccess:"Reducción programada cancelada",upgradeCancelDowngradeError:"No se pudo cancelar la reducción",addonsDialogTitle:"Gestionar add-ons",addonsSubtitleWithPlan:"Uso adicional para tu plan {planName}. Establece una cantidad en 0 para eliminar un add-on.",addonsSubtitleGeneric:"Uso adicional para tu plan. Establece una cantidad en 0 para eliminar un add-on.",addonsRequirePaidPlanTitle:"Los add-ons requieren un plan de pago",addonsRequirePaidPlanBody:"Actualiza tu plan para desbloquear conversaciones adicionales, almacenamiento y más.",addonsUpgradeCta:"Actualizar plan",addonsEach:"c/u",addonActiveOnly:"{count} activo",addonRemovedNextCycle:"{activeNow} activos ahora · eliminados en el próximo ciclo",addonRemovedOnDate:"{activeNow} activos ahora · eliminados el {date}",addonChangedNextCycle:"{activeNow} activos ahora · {pending} en el próximo ciclo",addonChangedOnDate:"{activeNow} activos ahora · {pending} a partir del {date}",addonsNewLimits:"Tus nuevos límites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Costo mensual total",addonsTotalYearly:"Costo anual total",addonsDueToday:"A pagar hoy",addonsChargedNow:"Se te cobrará {amount} ahora por el resto de este período de facturación. ",addonsNoChargeToday:"Sin cargo hoy — el cambio se calcula al prorrateo. ",addonsRenewalWithDate:"Los add-ons permanecen activos hasta que los elimines y renueves tu plan el {date}, fecha en la que se te cobrará {amount}{interval} por ellos.",addonsRenewalNoDate:"Los add-ons permanecen activos hasta que los elimines y renueves tu plan, fecha en la que se te cobrará {amount}{interval} por ellos.",addonsReadonlyNote:"Los add-ons de este espacio de trabajo están gestionados por Botpress — contáctanos para cambiarlos.",addonsUpdateSuccess:"Suscripción actualizada",addonsUpdateError:"No se pudo actualizar tus add-ons",addonsUpdateSubscription:"Actualizar suscripción",addonsConvos:"{n} conv.",outdatedTitle:"La facturación se gestiona en el Panel de Botpress",outdatedText:"Este espacio de trabajo utiliza un sistema de facturación anterior, por lo que los cambios de plan y los datos de pago no se pueden gestionar aquí.",outdatedCta:"Abrir facturación en el Panel",outgrowTitle:"Estás a punto de superar el plan Gratuito",outgrowLede:"El plan Gratuito incluye <bold>{quota}</bold> conversaciones en total, y no se renuevan. Al actualizar, obtienes una asignación mensual, desbloqueas más canales y añades packs de conversaciones, para que tus agentes nunca dejen de responder.",outgrowSoFar:"Hasta ahora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversaciones gratuitas usadas · no se renuevan",outgrowNoTopup:"Sin recarga",outgrowUpgradeTo:"Actualizar a {planName}",outgrowEverythingIn:"Todo lo de {planName}, y",outgrowNeedCustom:"¿Necesitas volumen personalizado, SLAs o voz?",outgrowTalkToSales:"Habla con ventas",outgrowCompareAll:"Comparar todos los planes",outgrowThenPer:"luego {symbol}{amount} por {packSize} adicionales",paymentDialogTitle:"Pago y facturación",paymentSessionError:"No pudimos iniciar una sesión segura.",paymentMethodSection:"Método de pago",paymentCardSaveError:"No se pudo guardar tu tarjeta",paymentMethodMissing:"No se pudo obtener el método de pago",paymentCardGenericError:"No pudimos guardar tu tarjeta. Verifica tus datos e inténtalo de nuevo.",paymentReplace:"Reemplazar",paymentBillingAddressSection:"Dirección de facturación",paymentTaxIds:"Número de identificación fiscal",paymentTaxEmpty:"Añade un número de IVA o identificación fiscal para que aparezca en tus facturas.",paymentTaxIdType:"Tipo de NIF",paymentTaxSelectType:"Seleccionar tipo",paymentTaxIdNumber:"Número de NIF",paymentTaxRemove:"Eliminar NIF",paymentTaxAdd:"+ Añadir NIF",paymentAddressIncomplete:"Completa tu dirección de facturación.",paymentAddressError:"No se pudieron actualizar tus datos de facturación.",paymentCardUpdated:"Tarjeta actualizada",paymentDetailsUpdated:"Datos de facturación actualizados",paymentSaveCard:"Guardar tarjeta",paymentSaveBillingDetails:"Guardar datos de facturación",paymentDetailsUpdateError:"No se pudieron actualizar tus datos de facturación",usageWidgetLimitReached:"Límite alcanzado",usageWidgetRunningLow:"Stock bajo",usageWidgetUpgradeToKeepGoing:"Actualiza para continuar.",usageWidgetOnlyLeft:"Solo quedan {left}.",usageWidgetFreeExhausted:"Todas tus conversaciones gratuitas están agotadas y no se renuevan.",usageWidgetFreeLeft:"Te quedan {left} conversaciones gratuitas y no se renuevan.",usageWidgetEnterpriseOverQuota:"Un representante de Botpress se pondrá en contacto contigo al final del período de uso.",usageWidgetResets:"Se restablece el {date}",usageWidgetViewOptions:"Ver opciones de plan",usagePopoverFreeTitle:"Uso del plan gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversaciones</bold> incluidas, en total. No se renuevan, y el plan Gratis no tiene recargas.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"El período actual termina el {date}",usagePopoverNudgeText:"<bold>¿Necesitas más espacio?</bold> Plus incluye agentes ilimitados, {quota} conversaciones al mes y paquetes de {packSize} adicionales cuando los necesites.",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de facturación",dashboardPrevMonth:"Mes anterior",dashboardNextMonth:"Mes siguiente",dashboardConversationsTitle:"Conversaciones",dashboardConversationsHint:"Cada conversación incluye uso de IA. Cuando alcanzas tu límite, se añaden conversaciones adicionales automáticamente para que el service continúe.",dashboardStorageTitle:"Almacenamiento",dashboardStorageHint:"Compartido entre archivos, base de conocimiento y tablas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversación incluye una asignación de uso de IA. Controla cuánto de esa asignación has usado",dashboardEnterpriseUsageNotice:"Tu uso no se bloqueará si superas la cuota.",dashboardLoadError:"No pudimos cargar tu uso. Inténtalo de nuevo en un momento.",dashboardNoBotSpend:"Sin gasto de IA por bot en este período.",dashboardAiByBot:"Gasto de IA por bot",dashboardConversationsMetric:"Conversaciones",dashboardTableRows:"Filas de tabla",dashboardVectorDb:"Almacenamiento vectorial",dashboardFileStorage:"Almacenamiento de archivos",dashboardAiSpend:"Gasto en IA",dashboardFromPlan:"{amount} del plan {planName}",dashboardFromPlanGeneric:"{amount} de tu plan",dashboardFromPlanWithAddons:"{amount} del plan {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} de tu plan + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar límites",planFeatureAiUsageIncluded:"Uso de IA incluido: {amount}",planFeature3Seats:"3 puestos",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Centro de ayuda",planFeature1kTableRows:"1K filas de tabla",planFeature100kTableRows:"100K filas de tabla",planFeature500kTableRows:"500K filas de tabla",planFeature100mbFileStorage:"100MB de almacenamiento de archivos",planFeature10gbFileStorage:"10GB de almacenamiento de archivos",planFeature50gbFileStorage:"50GB de almacenamiento de archivos",planFeature100mbVectorDb:"100MB de almacenamiento vectorial",planFeature1gbVectorDb:"1GB de almacenamiento vectorial",planFeature5gbVectorDb:"5GB de almacenamiento vectorial",planFeatureCommunitySupport:"Soporte comunitario",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal de WhatsApp",planFeatureHelpCenterCustomDomain:"Dominio personalizado del centro de ayuda",planFeatureWhitelabelWebchat:"Webchat sin marca",planFeatureTechnicalSupportLiveChat:"Soporte técnico por chat en vivo",planFeatureUnlimitedSeats:"Puestos ilimitados",planFeatureTeamsRoutingRbac:"Equipos, enrutamiento y RBAC",planFeatureTeamLevelAnalytics:"Analíticas por equipo",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Soporte dedicado",planFeatureSlaSecurity:"SLA y revisión de seguridad",planFeatureCustomStorage:"Almacenamiento personalizado",planFeatureDescAiUsageIncluded:"El uso de IA es el costo de llamar a un LLM. Cada conversación incluye {rate}. Nosotros lo pagamos.",planFeatureDesc3Seats:"Hasta 3 miembros del equipo pueden colaborar en este espacio de trabajo.",planFeatureDescUnlimitedSeats:"Invita a todos los miembros del equipo que necesites al espacio de trabajo.",planFeatureDesc3AiAgents:"Crea y publica hasta 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crea y publica todos los agentes de IA que necesites.",planFeatureDescBotpressDesk:"La bandeja de entrada de traspaso a humanos donde los agentes gestionan y responden conversaciones en vivo.",planFeatureDescBotpressStudioAdk:"El constructor visual Studio más el Kit de Desarrollo de Agentes para crear agentes en código.",planFeatureDescBotpressViber:"Crea agentes de IA chateando con Vibe, sin necesidad de programar.",planFeatureDescHelpCenter:"Una base de conocimiento alojada desde la que responde tu agente y que los clientes pueden consultar.",planFeatureDescHelpCenterCustomDomain:"Publica tu centro de ayuda desde tu propio dominio en lugar de una URL de Botpress.",planFeatureDescWhatsappChannel:"Conecta tu agente a WhatsApp para chatear con los clientes allí.",planFeatureDescVoiceChannel:"Conecta tu agente al teléfono/voz para que pueda gestionar conversaciones habladas.",planFeatureDescWhitelabelWebchat:"Elimina la marca de Botpress del widget de chat web para que sea completamente tuyo.",planFeatureDescTeamsRoutingRbac:"Organiza miembros en equipos, enruta conversaciones entre ellos y controla el acceso por rol.",planFeatureDescTeamLevelAnalytics:"Métricas de rendimiento y volumen desglosadas por equipo.",planFeatureDescTechnicalSupportLiveChat:"Contacta al equipo de soporte de Botpress por chat en vivo para obtener ayuda.",planFeatureDescCommunitySupport:"Obtén ayuda del foro de la comunidad de Botpress y Discord.",planFeatureDescDedicatedSupport:"Un contacto designado y un canal de soporte prioritario para tu cuenta.",planFeatureDescSlaSecurity:"Un SLA de disponibilidad contractual y una revisión de seguridad/cumplimiento para tu proceso de adquisición.",planFeatureDescCustomStorage:"Límites de almacenamiento adaptados a tu carga de trabajo, más allá de los niveles estándar.",planFeatureDesc1kTableRows:"1K filas en todas tus tablas de datos.",planFeatureDesc100kTableRows:"100K filas en todas tus tablas de datos.",planFeatureDesc500kTableRows:"500K filas en todas tus tablas de datos.",planFeatureDesc100mbFileStorage:"100MB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc10gbFileStorage:"10GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc50gbFileStorage:"50GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planDescriptionCommunity:"Plan gratuito para explorar",planDescriptionPlus:"Para negocios en crecimiento",planDescriptionTeam:"Para equipos pequeños",planDescriptionEnterprise:"Suscripción de licencia empresarial",planDescriptionManaged:"Suscripción de licencia gestionada",addonNameConversationSessions:"Conversaciones",addonNameStorage:"Almacenamiento",addonDescriptionConversationSessions:"Añade sesiones de conversación para el mes",addonDescriptionStorage:"Añade filas de tabla, espacio de base de datos vectorial y archivos",summaryCurrentPlan:"Plan actual",summaryManagedInDashboard:"Gestionado en el Panel",summaryManagedMeta:"Este espacio de trabajo utiliza un sistema de facturación anterior.",summaryNoPlan:"Sin plan",summaryConversationsPerMo:"{n} conversaciones/mes",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on activo",summaryActiveAddons:"{count} add-ons activos",summaryNoAddons:"Sin add-ons",summaryNoAddonsMeta:"Añade conversaciones o almacenamiento adicional",autoRechargeTitle:"Recarga automática de gastos de IA",autoRechargeDescription:"Recarga automáticamente tu crédito de uso de IA cuando tu saldo sea bajo.",autoRechargeLoadErrorTitle:"No pudimos cargar tu configuración",autoRechargeLoadError:"Algo salió mal al obtener tu configuración de auto-recarga. Revisa tu conexión e inténtalo de nuevo.",autoRechargeThresholdLabel:"Umbral de recarga",autoRechargeThresholdHint:"La recarga se activa cuando tu saldo cae por debajo de este monto. $5 o más.",autoRechargeThresholdError:"Debe ser un monto entero de al menos $5.",autoRechargeChunkLabel:"Monto de recarga",autoRechargeChunkHint:"Monto en dólares enteros, $5 o más.",autoRechargeChunkError:"Debe ser un monto en dólares enteros de al menos $5.",autoRechargeLimitLabel:"Límite mensual (USD)",autoRechargeLimitHint:"No recargará más que esto en un mes de facturación. Debe ser un múltiplo del monto de recarga ({amount}).",autoRechargeLimitError:"Debe ser un múltiplo del monto de recarga ({amount}).",autoRechargeSetLimitLabel:"Establecer un límite mensual",autoRechargeSetLimitHint:"Limita cuánto puede gastar la recarga automática cada mes de facturación.",autoRechargeNoCapHint:"La recarga automática no tiene un límite mensual.",autoRechargeDisabledReason:"La recarga automática está desactivada: {reason}",autoRechargeUpdateSuccess:"Configuración de recarga automática actualizada",autoRechargeUpdateError:"No se pudo actualizar tu configuración de recarga automática",autoRechargeSummaryOn:"Activada",autoRechargeSummaryOff:"Desactivada",autoRechargeSummaryMeta:"{amount} de recarga · hasta {limit}/mes",autoRechargeSummaryMetaNoLimit:"{amount} de recarga · sin límite",autoRechargeSummaryLoadError:"No se pudo cargar el estado",autoRechargeRequiresPaidPlanTitle:"La auto-recarga requiere un plan de pago",autoRechargeRequiresPaidPlanBody:"Actualiza tu plan para recargar automáticamente tu crédito de uso de IA.",autoRechargeUpgradeCta:"Actualizar plan"},Di={free:"Gratuito",manage:"Gerenciar",cancel:"Cancelar",close:"Fechar",open:"Abrir",edit:"Editar",update:"Atualizar",tryAgain:"Tentar novamente",save:"Salvar",upgrade:"Atualizar plano",downgrade:"Reduzir plano",billingIntervalLabel:"Intervalo de cobrança",billedMonthly:"Cobrado mensalmente",billedAnnually:"Cobrado anualmente",conversationsUnit:"conversas",conversationsPerMonth:"conversas / mês",perMonth:"/mês",perYear:"/ano",perMonthLong:"/mês",perYearLong:"/ano",resourceConversations:"Conversas / mês",resourceTableRows:"Linhas de tabela",resourceVectorDb:"Armazenamento vetorial",resourceFileStorage:"Armazenamento de arquivos",metricConversations:"conversas mensais",metricTableRows:"linhas de tabela",metricVectorDb:"armazenamento vetorial",metricFileStorage:"armazenamento de arquivos",metricAiSpend:"gastos com IA",metricBotCount:"agentes",usageBannerLimitReached:"Você atingiu seu limite de {label}. Atualize agora para evitar interrupções.",usageBannerNearLimit:"Você usou {pct}% de sua {label}. Atualize para evitar atingir seu limite.",usageBannerDefaultCta:"Atualizar plano",usageBannerManageCta:"Gerenciar plano",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plano atual",planBannerManagedTitle:"Gerenciado no Painel",planBannerManagedSub:"Este espaço de trabalho usa um sistema de cobrança anterior.",planBannerNoPlan:"Sem plano",planBannerCustomPricing:"Preço personalizado",planBannerCustomConversations:"Conversas personalizadas",planBannerCustom:"Personalizado",planBannerInclAddons:"· add-ons incluídos",planBannerRenews:"Renova em {date}",planBannerDowngradesTo:"Muda para {plan} em {date}",planBannerManageCta:"Gerenciar plano",checkoutTitle:"Configurar seu plano",checkoutBackLabel:"Voltar aos planos",checkoutPlanDetails:"Detalhes do plano",checkoutMonthlyBilling:"Cobrança mensal",checkoutAnnualBilling:"Cobrança anual",checkoutSaveBadge:"Economize {savings}%",checkoutPaymentMethodTitle:"Forma de pagamento",checkoutSavedCardTab:"Salvo",checkoutNewCardTab:"Novo cartão",checkoutBillingAddressTitle:"Endereço de cobrança",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Atualizar",checkoutIsBusiness:"Estou comprando como empresa",checkoutBusinessDetails:"Dados da empresa",checkoutBusinessNamePlaceholder:"Nome da empresa",checkoutTaxIdTypeLabel:"Tipo de CNPJ/CPF",checkoutTaxIdNumberPlaceholder:"Número de CNPJ/CPF",checkoutNoTaxRequired:"Nenhum número fiscal é necessário para seu país de cobrança.",checkoutSelectCountryForTax:"Selecione seu país de cobrança acima para adicionar um número fiscal.",checkoutContactInfo:"Informações de contato",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"O campo do cartão não está pronto",checkoutPaymentSetupFailed:"Falha ao configurar pagamento",checkoutPaymentMethodMissing:"Não foi possível recuperar a forma de pagamento",checkoutAddressIncomplete:"Preencha seu endereço de cobrança",checkoutGenericError:"Ocorreu um erro ao processar seu pagamento. Você não foi cobrado duas vezes.",checkoutSuccessToast:"Assinatura ativada",checkoutErrorToast:"Erro de pagamento",orderTopFeatures:"Principais recursos",orderThen:"depois {price} por {packSize}",orderPreviewError:"Não foi possível calcular seu total. Tente novamente em um momento.",orderPlanFromDate:"Plano {plan} — a partir de {date}",orderProratedToday:"Rateado para hoje",orderProratedTodayDesc:"Ao mudar de plano no meio do período, você paga apenas pelo tempo restante no seu período de cobrança atual. O preço total do plano acima é cobrado na sua próxima renovação, não hoje.",orderCreditUnusedTime:"Crédito por tempo não utilizado",orderAdjustUnusedTime:"Ajuste por tempo não utilizado",orderCreditUnusedTimeDesc:"Você já pagou pelo tempo restante no seu período de cobrança atual. Creditamos esse tempo não utilizado e o reaplicamos na sua nova tarifa, para que você nunca seja cobrado duas vezes.",orderAdjustUnusedTimeDesc:"Mudar no meio do ciclo significa que rateamos a diferença entre seu plano antigo e o novo pelos dias restantes no seu período de cobrança atual.",orderAccountCredit:"Crédito em conta",orderDueToday:"A pagar hoje",orderCreditTowardNext:"Você tem {amount} de tempo não utilizado creditado na sua próxima fatura.",orderBalanceAsCredit:"Seu saldo restante de {amount} é aplicado como crédito na sua próxima fatura.",orderSavingsNote:"Você está economizando {monthlySavings}/mês ao escolher um plano anual. Isso é {yearlySavings}/ano.",orderSubscribe:"Assinar",orderPreviewUnavailable:"Pré-visualização indisponível",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensalmente",orderRenewsMonthly:"Renova mensalmente até ser cancelado.",orderRenewsAnnually:"Renova anualmente até ser cancelado.",orderChargedStarting:"Você será cobrado {amount}{period} a partir de {date}.",orderChargedNoDate:"Você será cobrado {amount}{period}.",orderCancelNote:"Cancele a qualquer momento nas Configurações. Ao assinar, você autoriza a Botpress a armazenar e cobrar sua forma de pagamento.",invoicesTitle:"Histórico de cobrança",invoicesLoadError:"Não foi possível carregar suas faturas. Tente novamente em um momento.",invoicesEmpty:"Nenhuma fatura ainda. Elas aparecerão aqui após seu primeiro pagamento.",invoicesDownloadLabel:"Baixar fatura de {date}",invoiceStatusPaid:"Pago",invoiceStatusDue:"Pendente",invoiceStatusDraft:"Rascunho",invoiceStatusUnpaid:"Não pago",invoiceStatusVoid:"Cancelado",upgradeDialogTitle:"Atualizar seu plano",upgradeMonthly:"Mensal",upgradeAnnual:"Anual",upgradeSaveBadge:"Economize {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mês ({currency})",upgradeNoTopup:"Sem pacote adicional",upgradeCurrentPlan:"Seu plano atual",upgradeNextPlan:"Próximo plano",upgradeCancelDowngrade:"Cancelar redução",upgradeDowngrade:"Reduzir plano",upgradeSwitchToAnnual:"Mudar para anual",upgradeSwitchToMonthly:"Mudar para mensal",upgradePlanManaged:"Seu plano é gerenciado pela Botpress — entre em contato para alterá-lo",upgradeUpgrade:"Atualizar",upgradeEverythingIn:"Tudo do {planName}",upgradeSeeAllFeatures:"Ver todos os {total} recursos",upgradeShowFewerFeatures:"Mostrar menos recursos",upgradeContactUs:"Entre em contato",upgradeFooterEnterprise:"Precisa de mais, ou trabalhando em escala?",upgradeFooterAboutEnterprise:"sobre o Enterprise. Compare planos em",upgradeThenPer:"depois {price} por {packSize} adicionais",upgradeDowngradeSuccess:"Plano reduzido",upgradeDowngradeError:"Falha ao reduzir o plano",upgradeCancelDowngradeSuccess:"Redução agendada cancelada",upgradeCancelDowngradeError:"Não foi possível cancelar a redução",addonsDialogTitle:"Gerenciar add-ons",addonsSubtitleWithPlan:"Uso adicional para seu plano {planName}. Defina uma quantidade como 0 para remover um add-on.",addonsSubtitleGeneric:"Uso adicional para seu plano. Defina uma quantidade como 0 para remover um add-on.",addonsRequirePaidPlanTitle:"Os add-ons requerem um plano pago",addonsRequirePaidPlanBody:"Atualize seu plano para desbloquear conversas adicionais, armazenamento e muito mais.",addonsUpgradeCta:"Atualizar plano",addonsEach:"cada",addonActiveOnly:"{count} ativo",addonRemovedNextCycle:"{activeNow} ativo agora · removido no próximo ciclo",addonRemovedOnDate:"{activeNow} ativo agora · removido em {date}",addonChangedNextCycle:"{activeNow} ativo agora · {pending} no próximo ciclo",addonChangedOnDate:"{activeNow} ativo agora · {pending} a partir de {date}",addonsNewLimits:"Seus novos limites",addonsPlanLine:"Plano {planName}",addonsGenericPlan:"Plano",addonsTotalMonthly:"Custo mensal total",addonsTotalYearly:"Custo anual total",addonsDueToday:"A pagar hoje",addonsChargedNow:"Você será cobrado {amount} agora pelo restante deste período de cobrança. ",addonsNoChargeToday:"Sem cobrança hoje — a mudança é rateada. ",addonsRenewalWithDate:"Os add-ons permanecem ativos até você removê-los e renovar seu plano em {date}, quando você será cobrado {amount}{interval} por eles.",addonsRenewalNoDate:"Os add-ons permanecem ativos até você removê-los e renovar seu plano, quando você será cobrado {amount}{interval} por eles.",addonsReadonlyNote:"Os add-ons deste espaço de trabalho são gerenciados pela Botpress — entre em contato para alterá-los.",addonsUpdateSuccess:"Assinatura atualizada",addonsUpdateError:"Não foi possível atualizar seus add-ons",addonsUpdateSubscription:"Atualizar assinatura",addonsConvos:"{n} conv.",outdatedTitle:"A cobrança é gerenciada no Painel da Botpress",outdatedText:"Este espaço de trabalho usa um sistema de cobrança anterior, portanto, alterações de plano e detalhes de pagamento não podem ser gerenciados aqui.",outdatedCta:"Abrir cobrança no Painel",outgrowTitle:"Você está prestes a superar o plano Gratuito",outgrowLede:"O plano Gratuito inclui <bold>{quota}</bold> conversas no total, e elas não são renovadas. Ao atualizar, você passa para uma cota mensal, desbloqueia mais canais e adiciona pacotes de conversas, para que seus agentes nunca parem de responder.",outgrowSoFar:"Até agora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversas gratuitas usadas · elas não são renovadas",outgrowNoTopup:"Sem pacote adicional",outgrowUpgradeTo:"Atualizar para {planName}",outgrowEverythingIn:"Tudo do {planName}, e",outgrowNeedCustom:"Precisa de volume personalizado, SLAs ou voz?",outgrowTalkToSales:"Fale com vendas",outgrowCompareAll:"Comparar todos os planos",outgrowThenPer:"depois {symbol}{amount} por {packSize} adicionais",paymentDialogTitle:"Pagamento e cobrança",paymentSessionError:"Não foi possível iniciar uma sessão segura.",paymentMethodSection:"Forma de pagamento",paymentCardSaveError:"Não foi possível salvar seu cartão",paymentMethodMissing:"Não foi possível recuperar a forma de pagamento",paymentCardGenericError:"Não foi possível salvar seu cartão. Verifique seus dados e tente novamente.",paymentReplace:"Substituir",paymentBillingAddressSection:"Endereço de cobrança",paymentTaxIds:"Números fiscais",paymentTaxEmpty:"Adicione um número de CNPJ/CPF para que ele apareça em suas faturas.",paymentTaxIdType:"Tipo de número fiscal",paymentTaxSelectType:"Selecionar tipo",paymentTaxIdNumber:"Número fiscal",paymentTaxRemove:"Remover número fiscal",paymentTaxAdd:"+ Adicionar número fiscal",paymentAddressIncomplete:"Preencha seu endereço de cobrança.",paymentAddressError:"Não foi possível atualizar seus dados de cobrança.",paymentCardUpdated:"Cartão atualizado",paymentDetailsUpdated:"Dados de cobrança atualizados",paymentSaveCard:"Salvar cartão",paymentSaveBillingDetails:"Salvar dados de cobrança",paymentDetailsUpdateError:"Não foi possível atualizar seus dados de cobrança",usageWidgetLimitReached:"Limite atingido",usageWidgetRunningLow:"Estoque baixo",usageWidgetUpgradeToKeepGoing:"Atualize para continuar.",usageWidgetOnlyLeft:"Apenas {left} restantes.",usageWidgetFreeExhausted:"Todas as suas conversas gratuitas foram usadas e não são renovadas.",usageWidgetFreeLeft:"{left} conversas gratuitas restantes e elas não são renovadas.",usageWidgetEnterpriseOverQuota:"Um representante da Botpress entrará em contato no fim do período de uso.",usageWidgetResets:"Reinicia em {date}",usageWidgetViewOptions:"Ver opções de plano",usagePopoverFreeTitle:"Uso do plano gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversas</bold> incluídas, no total. Elas não são renovadas, e o plano Gratuito não tem recargas.",usagePopoverPlanName:"Plano {planName}",usagePopoverTitle:"O período atual termina em {date}",usagePopoverNudgeText:"<bold>Precisa de mais espaço?</bold> O Plus inclui agentes ilimitados, {quota} conversas por mês e pacotes de {packSize} extras quando você precisar.",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de cobrança",dashboardPrevMonth:"Mês anterior",dashboardNextMonth:"Próximo mês",dashboardConversationsTitle:"Conversas",dashboardConversationsHint:"Cada conversa inclui uso de IA. Quando você atinge seu limite, conversas adicionais são adicionadas automaticamente para que o serviço continue.",dashboardStorageTitle:"Armazenamento",dashboardStorageHint:"Compartilhado entre arquivos, base de conhecimento e tabelas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversa inclui uma cota de uso de IA. Acompanhe quanto dessa cota você já usou",dashboardEnterpriseUsageNotice:"Seu uso não será bloqueado se você ultrapassar a cota.",dashboardLoadError:"Não foi possível carregar seu uso. Tente novamente em um momento.",dashboardNoBotSpend:"Sem gastos de IA por bot neste período.",dashboardAiByBot:"Gastos de IA por bot",dashboardConversationsMetric:"Conversas",dashboardTableRows:"Linhas de tabela",dashboardVectorDb:"Armazenamento vetorial",dashboardFileStorage:"Armazenamento de arquivos",dashboardAiSpend:"Gastos com IA",dashboardFromPlan:"{amount} do plano {planName}",dashboardFromPlanGeneric:"{amount} do seu plano",dashboardFromPlanWithAddons:"{amount} do plano {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} do seu plano + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar limites",planFeatureAiUsageIncluded:"Uso de IA incluído: {amount}",planFeature3Seats:"3 vagas",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Central de ajuda",planFeature1kTableRows:"1K linhas de tabela",planFeature100kTableRows:"100K linhas de tabela",planFeature500kTableRows:"500K linhas de tabela",planFeature100mbFileStorage:"100MB de armazenamento de arquivos",planFeature10gbFileStorage:"10GB de armazenamento de arquivos",planFeature50gbFileStorage:"50GB de armazenamento de arquivos",planFeature100mbVectorDb:"100MB de armazenamento vetorial",planFeature1gbVectorDb:"1GB de armazenamento vetorial",planFeature5gbVectorDb:"5GB de armazenamento vetorial",planFeatureCommunitySupport:"Suporte da comunidade",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal do WhatsApp",planFeatureHelpCenterCustomDomain:"Domínio personalizado da central de ajuda",planFeatureWhitelabelWebchat:"Webchat sem marca",planFeatureTechnicalSupportLiveChat:"Suporte técnico via chat ao vivo",planFeatureUnlimitedSeats:"Vagas ilimitadas",planFeatureTeamsRoutingRbac:"Equipes, roteamento e RBAC",planFeatureTeamLevelAnalytics:"Análises por equipe",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Suporte dedicado",planFeatureSlaSecurity:"SLA e revisão de segurança",planFeatureCustomStorage:"Armazenamento personalizado",planFeatureDescAiUsageIncluded:"O uso de IA é o custo de chamar um LLM. Cada conversa inclui {rate}. Nós pagamos por você.",planFeatureDesc3Seats:"Até 3 membros da equipe podem colaborar neste espaço de trabalho.",planFeatureDescUnlimitedSeats:"Convide quantos membros da equipe precisar para o espaço de trabalho.",planFeatureDesc3AiAgents:"Crie e publique até 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crie e publique quantos agentes de IA precisar.",planFeatureDescBotpressDesk:"A caixa de entrada de transferência para humanos onde os agentes triagem e respondem conversas ao vivo.",planFeatureDescBotpressStudioAdk:"O construtor visual Studio mais o Kit de Desenvolvimento de Agentes para criar agentes em código.",planFeatureDescBotpressViber:"Crie agentes de IA conversando com o Vibe, sem precisar programar.",planFeatureDescHelpCenter:"Uma base de conhecimento hospedada da qual seu agente responde e que os clientes podem consultar.",planFeatureDescHelpCenterCustomDomain:"Publique sua central de ajuda a partir do seu próprio domínio em vez de uma URL da Botpress.",planFeatureDescWhatsappChannel:"Conecte seu agente ao WhatsApp para conversar com clientes lá.",planFeatureDescVoiceChannel:"Conecte seu agente ao telefone/voz para que possa lidar com conversas faladas.",planFeatureDescWhitelabelWebchat:"Remova a marca Botpress do widget de chat web para que seja totalmente seu.",planFeatureDescTeamsRoutingRbac:"Organize membros em equipes, roteie conversas entre elas e controle o acesso por função.",planFeatureDescTeamLevelAnalytics:"Métricas de desempenho e volume detalhadas por equipe.",planFeatureDescTechnicalSupportLiveChat:"Entre em contato com a equipe de suporte da Botpress via chat ao vivo para obter ajuda.",planFeatureDescCommunitySupport:"Obtenha ajuda no fórum da comunidade Botpress e no Discord.",planFeatureDescDedicatedSupport:"Um contato designado e canal de suporte prioritário para sua conta.",planFeatureDescSlaSecurity:"Um SLA de disponibilidade contratual e uma revisão de segurança/conformidade para seu processo de aquisição.",planFeatureDescCustomStorage:"Limites de armazenamento adaptados à sua carga de trabalho, além dos níveis padrão.",planFeatureDesc1kTableRows:"1K linhas em todas as suas tabelas de dados.",planFeatureDesc100kTableRows:"100K linhas em todas as suas tabelas de dados.",planFeatureDesc500kTableRows:"500K linhas em todas as suas tabelas de dados.",planFeatureDesc100mbFileStorage:"100MB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc10gbFileStorage:"10GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc50gbFileStorage:"50GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para busca e recuperação na base de conhecimento.",planDescriptionCommunity:"Plano gratuito para experimentar",planDescriptionPlus:"Para negócios em crescimento",planDescriptionTeam:"Para equipes pequenas",planDescriptionEnterprise:"Assinatura de licença corporativa",planDescriptionManaged:"Assinatura de licença gerenciada",addonNameConversationSessions:"Conversas",addonNameStorage:"Armazenamento",addonDescriptionConversationSessions:"Adiciona sessões de conversa para o mês",addonDescriptionStorage:"Adiciona linhas de tabela, espaço de banco de dados vetorial e arquivos",summaryCurrentPlan:"Plano atual",summaryManagedInDashboard:"Gerenciado no Painel",summaryManagedMeta:"Este espaço de trabalho usa um sistema de cobrança anterior.",summaryNoPlan:"Sem plano",summaryConversationsPerMo:"{n} conversas/mês",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on ativo",summaryActiveAddons:"{count} add-ons ativos",summaryNoAddons:"Sem add-ons",summaryNoAddonsMeta:"Adicione conversas ou armazenamento extra",autoRechargeTitle:"Recarga automática de gastos com IA",autoRechargeDescription:"Recarrega automaticamente seu crédito de uso de IA quando o saldo estiver baixo.",autoRechargeLoadErrorTitle:"Não foi possível carregar suas configurações",autoRechargeLoadError:"Algo deu errado ao buscar suas configurações de auto-recarga. Verifique sua conexão e tente novamente.",autoRechargeThresholdLabel:"Limite para recarga",autoRechargeThresholdHint:"A recarga é acionada quando seu saldo cair abaixo desse valor. $5 ou mais.",autoRechargeThresholdError:"Deve ser um valor inteiro de pelo menos $5.",autoRechargeChunkLabel:"Valor da recarga",autoRechargeChunkHint:"Valor em dólares inteiros, $5 ou mais.",autoRechargeChunkError:"Deve ser um valor em dólares inteiros de pelo menos $5.",autoRechargeLimitLabel:"Limite mensal (USD)",autoRechargeLimitHint:"Não recarregará mais do que isso em um mês de cobrança. Deve ser um múltiplo do valor da recarga ({amount}).",autoRechargeLimitError:"Deve ser um múltiplo do valor da recarga ({amount}).",autoRechargeSetLimitLabel:"Definir um limite mensal",autoRechargeSetLimitHint:"Limite quanto a recarga automática pode gastar a cada mês de cobrança.",autoRechargeNoCapHint:"A recarga automática não tem um limite mensal.",autoRechargeDisabledReason:"A recarga automática está desativada: {reason}",autoRechargeUpdateSuccess:"Configurações de recarga automática atualizadas",autoRechargeUpdateError:"Não foi possível atualizar suas configurações de recarga automática",autoRechargeSummaryOn:"Ativada",autoRechargeSummaryOff:"Desativada",autoRechargeSummaryMeta:"{amount} de recarga · até {limit}/mês",autoRechargeSummaryMetaNoLimit:"{amount} de recarga · sem limite",autoRechargeSummaryLoadError:"Não foi possível carregar o status",autoRechargeRequiresPaidPlanTitle:"A recarga automática requer um plano pago",autoRechargeRequiresPaidPlanBody:"Atualize seu plano para recarregar automaticamente seu crédito de uso de IA.",autoRechargeUpgradeCta:"Atualizar plano"},ja="billing",En=Ii();En.use(Xo).init({resources:{en:{[ja]:Ai},fr:{[ja]:Pi},es:{[ja]:xi},pt:{[ja]:Di}},lng:"en",fallbackLng:"en",ns:[ja],defaultNS:ja,interpolation:{escapeValue:!1,prefix:"{",suffix:"}"}});const Ei=new Set(["v1","v2","v3"]);function Gr(a){return Ei.has(a)}const qt=I.createContext(null),Li={capture:()=>{}};function Fi(a){const[e,t]=I.useState(()=>typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches);return I.useEffect(()=>{if(a!=="system")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),r=s=>t(s.matches);return n.addEventListener("change",r),()=>n.removeEventListener("change",r)},[a]),a==="system"?e:a==="dark"}const Mi=({client:a,stripePublishableKey:e,email:t,locale:n="en",theme:r="light",colorScheme:s="default",onToast:i,analytics:l,featureLabels:d,billingVersion:c,workspaceId:u,persist:p=!0,manageBillingUrl:h,onBillingChange:m,refreshInterval:y=3e4,children:f})=>{const _=u||"default",[S]=I.useState(()=>new Ce.QueryClient({defaultOptions:{queries:{retry:1,staleTime:3e4,gcTime:1e3*60*60}}})),v=Fi(r),w=I.useMemo(()=>Nr(e),[e]);I.useEffect(()=>{if(!p||typeof window>"u")return;const C=`bpb-cache:${_}`;try{const O=window.localStorage.getItem(C);O&&Ce.hydrate(S,JSON.parse(O))}catch{window.localStorage.removeItem(C)}let P=null;const x=S.getQueryCache().subscribe(O=>{O.type!=="added"&&O.type!=="removed"&&O.type!=="updated"||(P&&clearTimeout(P),P=setTimeout(()=>{try{window.localStorage.setItem(C,JSON.stringify(Ce.dehydrate(S)))}catch{}},250))});return()=>{P&&clearTimeout(P),x()}},[p,_,S]);const T=I.useCallback(()=>S.invalidateQueries({queryKey:["bpb",_]}),[S,_]),A=I.useCallback(C=>m==null?void 0:m(C),[m]),N=y>0?y:!1;En.changeLanguage(n);const F=I.useMemo(()=>({client:a,queryClient:S,scope:_,stripePromise:w,email:t,locale:n,isDark:v,colorScheme:s,toast:i??(()=>{}),analytics:l??Li,featureLabels:d,isOutdatedBilling:c!==void 0&&Gr(c),manageBillingUrl:h,refetchInterval:N,refresh:T,notifyBillingChange:A}),[a,S,_,w,t,n,v,s,i,l,d,c,h,N,T,A]);return o.jsx(qt.Provider,{value:F,children:o.jsx(ni,{i18n:En,children:o.jsx("div",{className:"bpb-scope","data-bpb-theme":v?"dark":"light","data-bpb-color-scheme":s,style:{display:"contents"},children:f})})})};function ne(){const a=I.useContext(qt);if(!a)throw new Error("@bpinternal/billing-ui components must be rendered inside <BillingProvider>");return a}function Oi(){var a;return((a=I.useContext(qt))==null?void 0:a.isDark)??!1}function Bi(){var a;return((a=I.useContext(qt))==null?void 0:a.colorScheme)??"default"}const Te={PLAN_PICKER_VIEWED:"billing_plan_picker_viewed",PLAN_INTERVAL_TOGGLED:"billing_plan_interval_toggled",PLAN_UPGRADE_INITIATED:"billing_plan_upgrade_initiated",PLAN_DOWNGRADED:"billing_plan_downgraded",PLAN_DOWNGRADE_CANCELLED:"billing_plan_downgrade_cancelled",CHECKOUT_STEP_VIEWED:"billing_checkout_step_viewed",CHECKOUT_INTERVAL_CHANGED:"billing_checkout_interval_changed",PAYMENT_METHOD_SELECTED:"billing_payment_method_selected",PAYMENT_DETAILS_CONFIRMED:"billing_payment_details_confirmed",PLAN_UPGRADED:"billing_plan_upgraded",CHECKOUT_ERROR:"billing_checkout_error",PAYMENT_METHOD_UPDATED:"billing_payment_method_updated",BILLING_ADDRESS_UPDATED:"billing_address_updated",INVOICE_DOWNLOADED:"billing_invoice_downloaded",UPGRADE_CTA_CLICKED:"billing_upgrade_cta_clicked",AUTO_RECHARGE_UPDATED:"billing_auto_recharge_updated"},Ie={root:a=>["bpb",a],plans:a=>["bpb",a,"plans"],addons:a=>["bpb",a,"addons"],subscription:a=>["bpb",a,"subscription"],preview:(a,e)=>["bpb",a,"preview",e],paymentMethod:a=>["bpb",a,"payment-method"],customer:a=>["bpb",a,"customer"],invoices:a=>["bpb",a,"invoices"],readonly:a=>["bpb",a,"billing-readonly"],isAuthorized:a=>["bpb",a,"is-authorized"],autoRecharge:a=>["bpb",a,"auto-recharge"],usages:(a,e)=>["bpb",a,"usages",e],bots:a=>["bpb",a,"bots"],usageByBot:(a,e,t)=>["bpb",a,"usage-by-bot",e,t]},Ui=["billing","manager","administrator","owner"];function Me(a){const{client:e,refetchInterval:t,queryClient:n,scope:r}=ne();return Ce.useQuery({queryKey:Ie.isAuthorized(r),queryFn:async()=>{const s=await e.getWorkspaceMember({});return Ui.includes(s.role)},enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:t},n)}function wa(a=!0){const{data:e}=Me();return a&&e===!0}function qe(){const{client:a,queryClient:e,scope:t}=ne();return Ce.useQuery({queryKey:Ie.plans(t),queryFn:()=>a.listPlans({})},e)}function pa(){const{client:a,queryClient:e,scope:t}=ne();return Ce.useQuery({queryKey:Ie.addons(t),queryFn:()=>a.listAddons({})},e)}function ze(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=ne();return Ce.useQuery({queryKey:Ie.subscription(n),queryFn:()=>e.getSubscription({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function Ln(a,e){const{client:t,queryClient:n,scope:r}=ne(),s=wa(e==null?void 0:e.enabled);return Ce.useQuery({queryKey:Ie.preview(r,a),queryFn:()=>t.previewSubscriptionUpdate(a),enabled:s},n)}function Fn(a){const{client:e,queryClient:t,scope:n}=ne(),r=wa(a==null?void 0:a.enabled);return Ce.useQuery({queryKey:Ie.paymentMethod(n),queryFn:()=>e.getPaymentMethod({}),enabled:r},t)}function Mn(a){const{client:e,queryClient:t,scope:n}=ne(),r=wa(a==null?void 0:a.enabled);return Ce.useQuery({queryKey:Ie.customer(n),queryFn:()=>e.getCustomer({}),enabled:r},t)}function Kr(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=ne(),s=wa(a==null?void 0:a.enabled);return Ce.useQuery({queryKey:Ie.invoices(n),queryFn:()=>e.listInvoices({}),enabled:s,refetchInterval:r},t)}function On(a){const{client:e,queryClient:t,scope:n}=ne(),r=wa(a==null?void 0:a.enabled);return Ce.useQuery({queryKey:Ie.readonly(n),queryFn:()=>e.getBillingReadonly({}),enabled:r},t)}function Bn(a){const{client:e,queryClient:t,scope:n}=ne(),r=wa(a==null?void 0:a.enabled);return Ce.useQuery({queryKey:Ie.autoRecharge(n),queryFn:()=>e.getAutoRechargeSettings({}).then(s=>s.settings),enabled:r},t)}function Rr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=ne();return Ce.useMutation({mutationFn:r=>a.setAutoRechargeSettings(r).then(s=>s.settings),onSuccess:async r=>{e.setQueryData(Ie.autoRecharge(t),r),n({type:"auto-recharge"})}},e)}function Ta(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=ne(),s=a!=null&&a.period?new Date(a.period):new Date,i=`${s.getUTCFullYear()}-${String(s.getUTCMonth()+1).padStart(2,"0")}`;return Ce.useQuery({queryKey:Ie.usages(n,i),queryFn:()=>e.getWorkspaceUsages({period:`${i}-01T00:00:00.000Z`}).then(l=>l.quotas),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function $r(a,e){const{client:t,queryClient:n,scope:r,refetchInterval:s}=ne(),i=wa(e==null?void 0:e.enabled),l=t.breakDownWorkspaceUsageByBot,d=t.listBots,c=typeof l=="function"&&typeof d=="function",u=e!=null&&e.period?new Date(e.period):new Date,p=`${u.getUTCFullYear()}-${String(u.getUTCMonth()+1).padStart(2,"0")}`;return Ce.useQuery({queryKey:Ie.usageByBot(r,a,p),queryFn:async()=>{const[h,m]=await Promise.all([l({id:r,type:a,period:`${p}-01T00:00:00.000Z`}),d({})]),y=new Map(m.bots.map(f=>[f.id,f.name]));return h.data.map(f=>({botId:f.botId,name:y.get(f.botId)??f.botId,value:f.value})).sort((f,_)=>_.value-f.value)},enabled:c&&i,refetchInterval:s},n)}function Hr(){const{client:a}=ne();return typeof a.breakDownWorkspaceUsageByBot=="function"&&typeof a.listBots=="function"}function Un(){const{client:a,queryClient:e}=ne();return Ce.useMutation({mutationFn:()=>a.createPaymentMethodIntent({})},e)}function zn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=ne();return Ce.useMutation({mutationFn:r=>a.setPaymentMethod(r),onSuccess:async()=>{await e.invalidateQueries({queryKey:Ie.paymentMethod(t)}),n({type:"payment-method"})}},e)}function Vn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=ne();return Ce.useMutation({mutationFn:r=>a.setCustomer(r),onSuccess:async(r,s)=>{await e.invalidateQueries({queryKey:Ie.customer(t)}),s.address&&n({type:"billing-address"})}},e)}function Yr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=ne();return Ce.useMutation({mutationFn:async r=>{await a.setAddons(r)},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:Ie.subscription(t)}),e.invalidateQueries({queryKey:Ie.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:"addons"})}},e)}function jn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=ne();return Ce.useMutation({mutationFn:async r=>{await a.setPlan({planId:r.planId,interval:r.interval,couponCode:r.couponCode}),r.addons&&Object.keys(r.addons).length>0&&await a.setAddons({addons:r.addons,couponCode:r.couponCode})},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:Ie.subscription(t)}),e.invalidateQueries({queryKey:Ie.plans(t)}),e.invalidateQueries({queryKey:Ie.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:"subscription"})}},e)}function Jr(a){var e,t,n="";if(typeof a=="string"||typeof a=="number")n+=a;else if(typeof a=="object")if(Array.isArray(a)){var r=a.length;for(e=0;e<r;e++)a[e]&&(t=Jr(a[e]))&&(n&&(n+=" "),n+=t)}else for(t in a)a[t]&&(n&&(n+=" "),n+=t);return n}function zi(){for(var a,e,t=0,n="",r=arguments.length;t<r;t++)(a=arguments[t])&&(e=Jr(a))&&(n&&(n+=" "),n+=e);return n}const Vi=(a,e)=>{const t=new Array(a.length+e.length);for(let n=0;n<a.length;n++)t[n]=a[n];for(let n=0;n<e.length;n++)t[a.length+n]=e[n];return t},ji=(a,e)=>({classGroupId:a,validator:e}),Qr=(a=new Map,e=null,t)=>({nextPart:a,validators:e,classGroupId:t}),Wt="-",Xr=[],Zi="arbitrary..",qi=a=>{const e=Gi(a),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=a;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return Wi(i);const l=i.split(Wt),d=l[0]===""&&l.length>1?1:0;return es(l,d,e)},getConflictingClassGroupIds:(i,l)=>{if(l){const d=n[i],c=t[i];return d?c?Vi(c,d):d:c||Xr}return t[i]||Xr}}},es=(a,e,t)=>{if(a.length-e===0)return t.classGroupId;const r=a[e],s=t.nextPart.get(r);if(s){const c=es(a,e+1,s);if(c)return c}const i=t.validators;if(i===null)return;const l=e===0?a.join(Wt):a.slice(e).join(Wt),d=i.length;for(let c=0;c<d;c++){const u=i[c];if(u.validator(l))return u.classGroupId}},Wi=a=>a.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=a.slice(1,-1),t=e.indexOf(":"),n=e.slice(0,t);return n?Zi+n:void 0})(),Gi=a=>{const{theme:e,classGroups:t}=a;return Ki(t,e)},Ki=(a,e)=>{const t=Qr();for(const n in a){const r=a[n];Zn(r,t,n,e)}return t},Zn=(a,e,t,n)=>{const r=a.length;for(let s=0;s<r;s++){const i=a[s];Ri(i,e,t,n)}},Ri=(a,e,t,n)=>{if(typeof a=="string"){$i(a,e,t);return}if(typeof a=="function"){Hi(a,e,t,n);return}Yi(a,e,t,n)},$i=(a,e,t)=>{const n=a===""?e:as(e,a);n.classGroupId=t},Hi=(a,e,t,n)=>{if(Ji(a)){Zn(a(n),e,t,n);return}e.validators===null&&(e.validators=[]),e.validators.push(ji(t,a))},Yi=(a,e,t,n)=>{const r=Object.entries(a),s=r.length;for(let i=0;i<s;i++){const[l,d]=r[i];Zn(d,as(e,l),t,n)}},as=(a,e)=>{let t=a;const n=e.split(Wt),r=n.length;for(let s=0;s<r;s++){const i=n[s];let l=t.nextPart.get(i);l||(l=Qr(),t.nextPart.set(i,l)),t=l}return t},Ji=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,Qi=a=>{if(a<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),n=Object.create(null);const r=(s,i)=>{t[s]=i,e++,e>a&&(e=0,n=t,t=Object.create(null))};return{get(s){let i=t[s];if(i!==void 0)return i;if((i=n[s])!==void 0)return r(s,i),i},set(s,i){s in t?t[s]=i:r(s,i)}}},qn="!",ts=":",Xi=[],ns=(a,e,t,n,r)=>({modifiers:a,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:n,isExternal:r}),el=a=>{const{prefix:e,experimentalParseClassName:t}=a;let n=r=>{const s=[];let i=0,l=0,d=0,c;const u=r.length;for(let f=0;f<u;f++){const _=r[f];if(i===0&&l===0){if(_===ts){s.push(r.slice(d,f)),d=f+1;continue}if(_==="/"){c=f;continue}}_==="["?i++:_==="]"?i--:_==="("?l++:_===")"&&l--}const p=s.length===0?r:r.slice(d);let h=p,m=!1;p.endsWith(qn)?(h=p.slice(0,-1),m=!0):p.startsWith(qn)&&(h=p.slice(1),m=!0);const y=c&&c>d?c-d:void 0;return ns(s,m,h,y)};if(e){const r=e+ts,s=n;n=i=>i.startsWith(r)?s(i.slice(r.length)):ns(Xi,!1,i,void 0,!0)}if(t){const r=n;n=s=>t({className:s,parseClassName:r})}return n},al=a=>{const e=new Map;return a.orderSensitiveModifiers.forEach((t,n)=>{e.set(t,1e6+n)}),t=>{const n=[];let r=[];for(let s=0;s<t.length;s++){const i=t[s],l=i[0]==="[",d=e.has(i);l||d?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(i)):r.push(i)}return r.length>0&&(r.sort(),n.push(...r)),n}},tl=a=>({cache:Qi(a.cacheSize),parseClassName:el(a),sortModifiers:al(a),postfixLookupClassGroupIds:nl(a),...qi(a)}),nl=a=>{const e=Object.create(null),t=a.postfixLookupClassGroups;if(t)for(let n=0;n<t.length;n++)e[t[n]]=!0;return e},rl=/\s+/,sl=(a,e)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:r,sortModifiers:s,postfixLookupClassGroupIds:i}=e,l=[],d=a.trim().split(rl);let c="";for(let u=d.length-1;u>=0;u-=1){const p=d[u],{isExternal:h,modifiers:m,hasImportantModifier:y,baseClassName:f,maybePostfixModifierPosition:_}=t(p);if(h){c=p+(c.length>0?" "+c:c);continue}let S=!!_,v;if(S){const F=f.substring(0,_);v=n(F);const C=v&&i[v]?n(f):void 0;C&&C!==v&&(v=C,S=!1)}else v=n(f);if(!v){if(!S){c=p+(c.length>0?" "+c:c);continue}if(v=n(f),!v){c=p+(c.length>0?" "+c:c);continue}S=!1}const w=m.length===0?"":m.length===1?m[0]:s(m).join(":"),T=y?w+qn:w,A=T+v;if(l.indexOf(A)>-1)continue;l.push(A);const N=r(v,S);for(let F=0;F<N.length;++F){const C=N[F];l.push(T+C)}c=p+(c.length>0?" "+c:c)}return c},ol=(...a)=>{let e=0,t,n,r="";for(;e<a.length;)(t=a[e++])&&(n=rs(t))&&(r&&(r+=" "),r+=n);return r},rs=a=>{if(typeof a=="string")return a;let e,t="";for(let n=0;n<a.length;n++)a[n]&&(e=rs(a[n]))&&(t&&(t+=" "),t+=e);return t},il=(a,...e)=>{let t,n,r,s;const i=d=>{const c=e.reduce((u,p)=>p(u),a());return t=tl(c),n=t.cache.get,r=t.cache.set,s=l,l(d)},l=d=>{const c=n(d);if(c)return c;const u=sl(d,t);return r(d,u),u};return s=i,(...d)=>s(ol(...d))},ll=[],Ae=a=>{const e=t=>t[a]||ll;return e.isThemeGetter=!0,e},ss=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,os=/^\((?:(\w[\w-]*):)?(.+)\)$/i,dl=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,cl=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ul=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,pl=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,hl=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ml=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ha=a=>dl.test(a),ue=a=>!!a&&!Number.isNaN(Number(a)),Je=a=>!!a&&Number.isInteger(Number(a)),Wn=a=>a.endsWith("%")&&ue(a.slice(0,-1)),sa=a=>cl.test(a),is=()=>!0,gl=a=>ul.test(a)&&!pl.test(a),Gn=()=>!1,bl=a=>hl.test(a),fl=a=>ml.test(a),yl=a=>!z(a)&&!V(a),vl=a=>a.startsWith("@container")&&(a[10]==="/"&&a[11]!==void 0||a[11]==="s"&&a[16]!==void 0&&a.startsWith("-size/",10)||a[11]==="n"&&a[18]!==void 0&&a.startsWith("-normal/",10)),_l=a=>ma(a,hs,Gn),z=a=>ss.test(a),Ia=a=>ma(a,ms,gl),ls=a=>ma(a,Al,ue),Nl=a=>ma(a,bs,is),Cl=a=>ma(a,gs,Gn),ds=a=>ma(a,us,Gn),Sl=a=>ma(a,ps,fl),Gt=a=>ma(a,fs,bl),V=a=>os.test(a),rt=a=>Aa(a,ms),kl=a=>Aa(a,gs),cs=a=>Aa(a,us),wl=a=>Aa(a,hs),Tl=a=>Aa(a,ps),Kt=a=>Aa(a,fs,!0),Il=a=>Aa(a,bs,!0),ma=(a,e,t)=>{const n=ss.exec(a);return n?n[1]?e(n[1]):t(n[2]):!1},Aa=(a,e,t=!1)=>{const n=os.exec(a);return n?n[1]?e(n[1]):t:!1},us=a=>a==="position"||a==="percentage",ps=a=>a==="image"||a==="url",hs=a=>a==="length"||a==="size"||a==="bg-size",ms=a=>a==="length",Al=a=>a==="number",gs=a=>a==="family-name",bs=a=>a==="number"||a==="weight",fs=a=>a==="shadow",Pl=il(()=>{const a=Ae("color"),e=Ae("font"),t=Ae("text"),n=Ae("font-weight"),r=Ae("tracking"),s=Ae("leading"),i=Ae("breakpoint"),l=Ae("container"),d=Ae("spacing"),c=Ae("radius"),u=Ae("shadow"),p=Ae("inset-shadow"),h=Ae("text-shadow"),m=Ae("drop-shadow"),y=Ae("blur"),f=Ae("perspective"),_=Ae("aspect"),S=Ae("ease"),v=Ae("animate"),w=()=>["auto","avoid","all","avoid-page","page","left","right","column"],T=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],A=()=>[...T(),V,z],N=()=>["auto","hidden","clip","visible","scroll"],F=()=>["auto","contain","none"],C=()=>[V,z,d],P=()=>[ha,"full","auto",...C()],x=()=>[Je,"none","subgrid",V,z],O=()=>["auto",{span:["full",Je,V,z]},Je,V,z],W=()=>[Je,"auto",V,z],j=()=>["auto","min","max","fr",V,z],Q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],K=()=>["start","end","center","stretch","center-safe","end-safe"],B=()=>["auto",...C()],U=()=>[ha,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],Z=()=>[ha,"screen","full","dvw","lvw","svw","min","max","fit",...C()],$=()=>[ha,"screen","full","lh","dvh","lvh","svh","min","max","fit",...C()],E=()=>[a,V,z],ie=()=>[...T(),cs,ds,{position:[V,z]}],re=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ce=()=>["auto","cover","contain",wl,_l,{size:[V,z]}],M=()=>[Wn,rt,Ia],Y=()=>["","none","full",c,V,z],J=()=>["",ue,rt,Ia],H=()=>["solid","dashed","dotted","double"],G=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],se=()=>[ue,Wn,cs,ds],ge=()=>["","none",y,V,z],ee=()=>["none",ue,V,z],te=()=>["none",ue,V,z],Ne=()=>[ue,V,z],pe=()=>[ha,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[sa],breakpoint:[sa],color:[is],container:[sa],"drop-shadow":[sa],ease:["in","out","in-out"],font:[yl],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[sa],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[sa],shadow:[sa],spacing:["px",ue],text:[sa],"text-shadow":[sa],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ha,z,V,_]}],container:["container"],"container-type":[{"@container":["","normal","size",V,z]}],"container-named":[vl],columns:[{columns:[ue,z,V,l]}],"break-after":[{"break-after":w()}],"break-before":[{"break-before":w()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:A()}],overflow:[{overflow:N()}],"overflow-x":[{"overflow-x":N()}],"overflow-y":[{"overflow-y":N()}],overscroll:[{overscroll:F()}],"overscroll-x":[{"overscroll-x":F()}],"overscroll-y":[{"overscroll-y":F()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:P()}],"inset-x":[{"inset-x":P()}],"inset-y":[{"inset-y":P()}],start:[{"inset-s":P(),start:P()}],end:[{"inset-e":P(),end:P()}],"inset-bs":[{"inset-bs":P()}],"inset-be":[{"inset-be":P()}],top:[{top:P()}],right:[{right:P()}],bottom:[{bottom:P()}],left:[{left:P()}],visibility:["visible","invisible","collapse"],z:[{z:[Je,"auto",V,z]}],basis:[{basis:[ha,"full","auto",l,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ue,ha,"auto","initial","none",z]}],grow:[{grow:["",ue,V,z]}],shrink:[{shrink:["",ue,V,z]}],order:[{order:[Je,"first","last","none",V,z]}],"grid-cols":[{"grid-cols":x()}],"col-start-end":[{col:O()}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":x()}],"row-start-end":[{row:O()}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":j()}],"auto-rows":[{"auto-rows":j()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...Q(),"normal"]}],"justify-items":[{"justify-items":[...K(),"normal"]}],"justify-self":[{"justify-self":["auto",...K()]}],"align-content":[{content:["normal",...Q()]}],"align-items":[{items:[...K(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...K(),{baseline:["","last"]}]}],"place-content":[{"place-content":Q()}],"place-items":[{"place-items":[...K(),"baseline"]}],"place-self":[{"place-self":["auto",...K()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:B()}],mx:[{mx:B()}],my:[{my:B()}],ms:[{ms:B()}],me:[{me:B()}],mbs:[{mbs:B()}],mbe:[{mbe:B()}],mt:[{mt:B()}],mr:[{mr:B()}],mb:[{mb:B()}],ml:[{ml:B()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:U()}],"inline-size":[{inline:["auto",...Z()]}],"min-inline-size":[{"min-inline":["auto",...Z()]}],"max-inline-size":[{"max-inline":["none",...Z()]}],"block-size":[{block:["auto",...$()]}],"min-block-size":[{"min-block":["auto",...$()]}],"max-block-size":[{"max-block":["none",...$()]}],w:[{w:[l,"screen",...U()]}],"min-w":[{"min-w":[l,"screen","none",...U()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[i]},...U()]}],h:[{h:["screen","lh",...U()]}],"min-h":[{"min-h":["screen","lh","none",...U()]}],"max-h":[{"max-h":["screen","lh",...U()]}],"font-size":[{text:["base",t,rt,Ia]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,Il,Nl]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Wn,z]}],"font-family":[{font:[kl,Cl,e]}],"font-features":[{"font-features":[z]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,V,z]}],"line-clamp":[{"line-clamp":[ue,"none",V,ls]}],leading:[{leading:[s,...C()]}],"list-image":[{"list-image":["none",V,z]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",V,z]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:E()}],"text-color":[{text:E()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...H(),"wavy"]}],"text-decoration-thickness":[{decoration:[ue,"from-font","auto",V,Ia]}],"text-decoration-color":[{decoration:E()}],"underline-offset":[{"underline-offset":[ue,"auto",V,z]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"tab-size":[{tab:[Je,V,z]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",V,z]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",V,z]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ie()}],"bg-repeat":[{bg:re()}],"bg-size":[{bg:ce()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Je,V,z],radial:["",V,z],conic:[Je,V,z]},Tl,Sl]}],"bg-color":[{bg:E()}],"gradient-from-pos":[{from:M()}],"gradient-via-pos":[{via:M()}],"gradient-to-pos":[{to:M()}],"gradient-from":[{from:E()}],"gradient-via":[{via:E()}],"gradient-to":[{to:E()}],rounded:[{rounded:Y()}],"rounded-s":[{"rounded-s":Y()}],"rounded-e":[{"rounded-e":Y()}],"rounded-t":[{"rounded-t":Y()}],"rounded-r":[{"rounded-r":Y()}],"rounded-b":[{"rounded-b":Y()}],"rounded-l":[{"rounded-l":Y()}],"rounded-ss":[{"rounded-ss":Y()}],"rounded-se":[{"rounded-se":Y()}],"rounded-ee":[{"rounded-ee":Y()}],"rounded-es":[{"rounded-es":Y()}],"rounded-tl":[{"rounded-tl":Y()}],"rounded-tr":[{"rounded-tr":Y()}],"rounded-br":[{"rounded-br":Y()}],"rounded-bl":[{"rounded-bl":Y()}],"border-w":[{border:J()}],"border-w-x":[{"border-x":J()}],"border-w-y":[{"border-y":J()}],"border-w-s":[{"border-s":J()}],"border-w-e":[{"border-e":J()}],"border-w-bs":[{"border-bs":J()}],"border-w-be":[{"border-be":J()}],"border-w-t":[{"border-t":J()}],"border-w-r":[{"border-r":J()}],"border-w-b":[{"border-b":J()}],"border-w-l":[{"border-l":J()}],"divide-x":[{"divide-x":J()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":J()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...H(),"hidden","none"]}],"divide-style":[{divide:[...H(),"hidden","none"]}],"border-color":[{border:E()}],"border-color-x":[{"border-x":E()}],"border-color-y":[{"border-y":E()}],"border-color-s":[{"border-s":E()}],"border-color-e":[{"border-e":E()}],"border-color-bs":[{"border-bs":E()}],"border-color-be":[{"border-be":E()}],"border-color-t":[{"border-t":E()}],"border-color-r":[{"border-r":E()}],"border-color-b":[{"border-b":E()}],"border-color-l":[{"border-l":E()}],"divide-color":[{divide:E()}],"outline-style":[{outline:[...H(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ue,V,z]}],"outline-w":[{outline:["",ue,rt,Ia]}],"outline-color":[{outline:E()}],shadow:[{shadow:["","none",u,Kt,Gt]}],"shadow-color":[{shadow:E()}],"inset-shadow":[{"inset-shadow":["none",p,Kt,Gt]}],"inset-shadow-color":[{"inset-shadow":E()}],"ring-w":[{ring:J()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:E()}],"ring-offset-w":[{"ring-offset":[ue,Ia]}],"ring-offset-color":[{"ring-offset":E()}],"inset-ring-w":[{"inset-ring":J()}],"inset-ring-color":[{"inset-ring":E()}],"text-shadow":[{"text-shadow":["none",h,Kt,Gt]}],"text-shadow-color":[{"text-shadow":E()}],opacity:[{opacity:[ue,V,z]}],"mix-blend":[{"mix-blend":[...G(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":G()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ue]}],"mask-image-linear-from-pos":[{"mask-linear-from":se()}],"mask-image-linear-to-pos":[{"mask-linear-to":se()}],"mask-image-linear-from-color":[{"mask-linear-from":E()}],"mask-image-linear-to-color":[{"mask-linear-to":E()}],"mask-image-t-from-pos":[{"mask-t-from":se()}],"mask-image-t-to-pos":[{"mask-t-to":se()}],"mask-image-t-from-color":[{"mask-t-from":E()}],"mask-image-t-to-color":[{"mask-t-to":E()}],"mask-image-r-from-pos":[{"mask-r-from":se()}],"mask-image-r-to-pos":[{"mask-r-to":se()}],"mask-image-r-from-color":[{"mask-r-from":E()}],"mask-image-r-to-color":[{"mask-r-to":E()}],"mask-image-b-from-pos":[{"mask-b-from":se()}],"mask-image-b-to-pos":[{"mask-b-to":se()}],"mask-image-b-from-color":[{"mask-b-from":E()}],"mask-image-b-to-color":[{"mask-b-to":E()}],"mask-image-l-from-pos":[{"mask-l-from":se()}],"mask-image-l-to-pos":[{"mask-l-to":se()}],"mask-image-l-from-color":[{"mask-l-from":E()}],"mask-image-l-to-color":[{"mask-l-to":E()}],"mask-image-x-from-pos":[{"mask-x-from":se()}],"mask-image-x-to-pos":[{"mask-x-to":se()}],"mask-image-x-from-color":[{"mask-x-from":E()}],"mask-image-x-to-color":[{"mask-x-to":E()}],"mask-image-y-from-pos":[{"mask-y-from":se()}],"mask-image-y-to-pos":[{"mask-y-to":se()}],"mask-image-y-from-color":[{"mask-y-from":E()}],"mask-image-y-to-color":[{"mask-y-to":E()}],"mask-image-radial":[{"mask-radial":[V,z]}],"mask-image-radial-from-pos":[{"mask-radial-from":se()}],"mask-image-radial-to-pos":[{"mask-radial-to":se()}],"mask-image-radial-from-color":[{"mask-radial-from":E()}],"mask-image-radial-to-color":[{"mask-radial-to":E()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":T()}],"mask-image-conic-pos":[{"mask-conic":[ue]}],"mask-image-conic-from-pos":[{"mask-conic-from":se()}],"mask-image-conic-to-pos":[{"mask-conic-to":se()}],"mask-image-conic-from-color":[{"mask-conic-from":E()}],"mask-image-conic-to-color":[{"mask-conic-to":E()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ie()}],"mask-repeat":[{mask:re()}],"mask-size":[{mask:ce()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",V,z]}],filter:[{filter:["","none",V,z]}],blur:[{blur:ge()}],brightness:[{brightness:[ue,V,z]}],contrast:[{contrast:[ue,V,z]}],"drop-shadow":[{"drop-shadow":["","none",m,Kt,Gt]}],"drop-shadow-color":[{"drop-shadow":E()}],grayscale:[{grayscale:["",ue,V,z]}],"hue-rotate":[{"hue-rotate":[ue,V,z]}],invert:[{invert:["",ue,V,z]}],saturate:[{saturate:[ue,V,z]}],sepia:[{sepia:["",ue,V,z]}],"backdrop-filter":[{"backdrop-filter":["","none",V,z]}],"backdrop-blur":[{"backdrop-blur":ge()}],"backdrop-brightness":[{"backdrop-brightness":[ue,V,z]}],"backdrop-contrast":[{"backdrop-contrast":[ue,V,z]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ue,V,z]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ue,V,z]}],"backdrop-invert":[{"backdrop-invert":["",ue,V,z]}],"backdrop-opacity":[{"backdrop-opacity":[ue,V,z]}],"backdrop-saturate":[{"backdrop-saturate":[ue,V,z]}],"backdrop-sepia":[{"backdrop-sepia":["",ue,V,z]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",V,z]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ue,"initial",V,z]}],ease:[{ease:["linear","initial",S,V,z]}],delay:[{delay:[ue,V,z]}],animate:[{animate:["none",v,V,z]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,V,z]}],"perspective-origin":[{"perspective-origin":A()}],rotate:[{rotate:ee()}],"rotate-x":[{"rotate-x":ee()}],"rotate-y":[{"rotate-y":ee()}],"rotate-z":[{"rotate-z":ee()}],scale:[{scale:te()}],"scale-x":[{"scale-x":te()}],"scale-y":[{"scale-y":te()}],"scale-z":[{"scale-z":te()}],"scale-3d":["scale-3d"],skew:[{skew:Ne()}],"skew-x":[{"skew-x":Ne()}],"skew-y":[{"skew-y":Ne()}],transform:[{transform:[V,z,"","none","gpu","cpu"]}],"transform-origin":[{origin:A()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:pe()}],"translate-x":[{"translate-x":pe()}],"translate-y":[{"translate-y":pe()}],"translate-z":[{"translate-z":pe()}],"translate-none":["translate-none"],zoom:[{zoom:[Je,V,z]}],accent:[{accent:E()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:E()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",V,z]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":E()}],"scrollbar-track-color":[{"scrollbar-track":E()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",V,z]}],fill:[{fill:["none",...E()]}],"stroke-w":[{stroke:[ue,rt,Ia,ls]}],stroke:[{stroke:["none",...E()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function q(...a){return Pl(zi(a))}function le(a,e="usd",t=2,n="en-US"){return new Intl.NumberFormat(n,{style:"currency",currency:e.toUpperCase(),minimumFractionDigits:t,maximumFractionDigits:t}).format(a)}function Qe(a,e="en-US"){return new Date(a).toLocaleDateString(e,{month:"short",day:"numeric",year:"numeric"})}function ys(a,e){const t=new Date(a);return t.setDate(t.getDate()+e),t.toISOString()}function fe(a,e="en-US"){return new Intl.NumberFormat(e).format(a)}function Pa(a){if(a<=0)return"0 MB";const e=a/1e9;if(e>=1)return`${Number.isInteger(e)?e:e.toFixed(1)} GB`;const t=a/1e6;return`${Number.isInteger(t)?t:t.toFixed(0)} MB`}function _e(a){return a.replace("Plan - ","")}function st(a){return{usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",jpy:"¥"}[a.toLowerCase()]??`${a.toUpperCase()} `}const We=1e9,vs={incoming_messages_events:a=>`${fe(a)} incoming messages & events`,conversation_sessions:a=>`${fe(a)} conversation sessions`,table_rows:a=>`${fe(a)} table rows`,vector_db_storage:a=>`${Pa(a)} vector database storage`,file_storage:a=>`${Pa(a)} file storage`,collaborator_count:a=>a===1?"1 collaborator":`${fe(a)} collaborators`,bot_count:a=>a===1?"1 bot":`${fe(a)} bots`,indexed_file_count:a=>`${fe(a)} indexed files for RAG`,ai_spend:a=>`${le(a/We,"usd",1)} AI credit included`,always_alive:a=>a===1?"1 always-alive bot":`${fe(a)} always-alive bots`};function xl(a,e,t){const n=(t==null?void 0:t[a])??vs[a];return n?n(e):`${fe(e)} ${a.replaceAll("_"," ")}`}const xa=["community","plus","team","enterprise","managed"],Dl=["community","plus","team","enterprise","managed"];function ve(a){var n;const e=a.name.toLowerCase();if(e.includes("community")||e.includes("pay-as-you-go")||e.includes("free"))return"community";if(e.includes("plus"))return"plus";if(e.includes("team"))return"team";if(e.includes("managed"))return"managed";if(e.includes("enterprise"))return"enterprise";const t=(n=a.metadata)==null?void 0:n.legacyName;return Dl.find(r=>r===t)??"community"}const Kn="https://botpress.com/contact-us/managed-plan",ga={conversation_sessions_addon:"addonNameConversationSessions",storage_addon:"addonNameStorage"},_s={conversation_sessions_addon:"addonDescriptionConversationSessions",storage_addon:"addonDescriptionStorage"};function Rt(a,e,t){return a.prices[e.id]??a.prices[ve(e)]??a.prices[t]??null}function ot(a){return a.replace("Add-on - ","")}function Rn(a){return(a==null?void 0:a.find(e=>{var t;return(((t=e.increments)==null?void 0:t.conversation_sessions)??0)>0}))??null}const Ns=[{key:"conversation_sessions",label:"Conversations / month",unit:"count"},{key:"table_rows",label:"Table rows",unit:"count"},{key:"vector_db_storage",label:"Vector DB storage",unit:"bytes"},{key:"file_storage",label:"File storage",unit:"bytes"}];function Cs(a,e,t){var r;if(!e)return[];const n=[];for(const s of Ns){const i=a.features[s.key]??0;let l=0;for(const d of e){const c=((r=d.increments)==null?void 0:r[s.key])??0,u=t[d.id]??0;l+=c*u}l>0&&n.push({...s,now:i,next:i+l})}return n}function Ss(a,e,t){var r;if(!a)return[];const n=[];for(const s of Ns){const i=a.features[s.key]??0;let l=0;for(const d of e??[])l+=(((r=d.increments)==null?void 0:r[s.key])??0)*(t[d.id]??0);(i>0||l>0)&&n.push({...s,base:i,added:l,total:i+l})}return n}function $t(a,e,t){var i;const n=Rn(a);if(!n)return null;const r=((i=n.increments)==null?void 0:i.conversation_sessions)??0,s=Rt(n,e,t);return r<=0||!s||s.amount<=0?null:{packSize:r,amount:s.amount,currency:s.currency}}const Ht={"AI usage included":{label:"planFeatureAiUsageIncluded",desc:"planFeatureDescAiUsageIncluded"},"3 seats":{label:"planFeature3Seats",desc:"planFeatureDesc3Seats"},"3 AI agents":{label:"planFeature3AiAgents",desc:"planFeatureDesc3AiAgents"},"Botpress Desk":{label:"planFeatureBotpressDesk",desc:"planFeatureDescBotpressDesk"},"Botpress Studio + ADK":{label:"planFeatureBotpressStudioAdk",desc:"planFeatureDescBotpressStudioAdk"},"Botpress Viber":{label:"planFeatureBotpressViber",desc:"planFeatureDescBotpressViber"},"Help center":{label:"planFeatureHelpCenter",desc:"planFeatureDescHelpCenter"},"1K table rows":{label:"planFeature1kTableRows",desc:"planFeatureDesc1kTableRows"},"100K table rows":{label:"planFeature100kTableRows",desc:"planFeatureDesc100kTableRows"},"500K table rows":{label:"planFeature500kTableRows",desc:"planFeatureDesc500kTableRows"},"100MB file storage":{label:"planFeature100mbFileStorage",desc:"planFeatureDesc100mbFileStorage"},"10GB file storage":{label:"planFeature10gbFileStorage",desc:"planFeatureDesc10gbFileStorage"},"50GB file storage":{label:"planFeature50gbFileStorage",desc:"planFeatureDesc50gbFileStorage"},"100MB vector DB storage":{label:"planFeature100mbVectorDb",desc:"planFeatureDesc100mbVectorDb"},"1GB vector DB storage":{label:"planFeature1gbVectorDb",desc:"planFeatureDesc1gbVectorDb"},"5GB vector DB storage":{label:"planFeature5gbVectorDb",desc:"planFeatureDesc5gbVectorDb"},"Unlimited AI agents":{label:"planFeatureUnlimitedAiAgents",desc:"planFeatureDescUnlimitedAiAgents"},"WhatsApp channel":{label:"planFeatureWhatsappChannel",desc:"planFeatureDescWhatsappChannel"},"Help Center custom domain":{label:"planFeatureHelpCenterCustomDomain",desc:"planFeatureDescHelpCenterCustomDomain"},"Whitelabel webchat":{label:"planFeatureWhitelabelWebchat",desc:"planFeatureDescWhitelabelWebchat"},"Technical support via live chat":{label:"planFeatureTechnicalSupportLiveChat",desc:"planFeatureDescTechnicalSupportLiveChat"},"Unlimited seats":{label:"planFeatureUnlimitedSeats",desc:"planFeatureDescUnlimitedSeats"},"Teams, routing & RBAC":{label:"planFeatureTeamsRoutingRbac",desc:"planFeatureDescTeamsRoutingRbac"},"Team-level analytics":{label:"planFeatureTeamLevelAnalytics",desc:"planFeatureDescTeamLevelAnalytics"},"Voice channel":{label:"planFeatureVoiceChannel",desc:"planFeatureDescVoiceChannel"},"Dedicated support":{label:"planFeatureDedicatedSupport",desc:"planFeatureDescDedicatedSupport"},"SLA & security review":{label:"planFeatureSlaSecurity",desc:"planFeatureDescSlaSecurity"},"Custom storage":{label:"planFeatureCustomStorage",desc:"planFeatureDescCustomStorage"}},ks={community:"planDescriptionCommunity",plus:"planDescriptionPlus",team:"planDescriptionTeam",enterprise:"planDescriptionEnterprise",managed:"planDescriptionManaged"},Yt={community:["3 seats","AI usage included","3 AI agents","Botpress Desk","Botpress Viber","Botpress Studio + ADK","Help center","1K table rows","100MB file storage","100MB vector DB storage"],plus:["AI usage included","Unlimited AI agents","Help Center custom domain","Whitelabel webchat","100K table rows","10GB file storage","1GB vector DB storage","Technical support via live chat"],team:["AI usage included","Unlimited seats","Teams, routing & RBAC","Team-level analytics","500K table rows","50GB file storage","5GB vector DB storage"],enterprise:["Voice channel","Dedicated support","SLA & security review","Custom storage"],managed:[]},it=({variant:a="accent",children:e,className:t})=>o.jsx("span",{className:q("bpb-badge",`bpb-badge--${a}`,t),children:e}),Se=({variant:a="primary",size:e="md",block:t=!1,loading:n=!1,className:r,disabled:s,children:i,type:l="button",...d})=>o.jsxs("button",{type:l,className:q("bpb-btn",`bpb-btn--${a}`,`bpb-btn--${e}`,t&&"bpb-btn--block",r),disabled:s||n,"data-loading":n||void 0,...d,children:[n&&o.jsx("span",{className:"bpb-btn__spinner","aria-hidden":!0}),o.jsx("span",{className:"bpb-btn__label",children:i})]}),ye=(a,e)=>({width:a??16,height:a??16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,...e}),ws=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M3 8.5l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Jt=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M8 1.5l1.4 3.6a1 1 0 00.6.6L13.5 7l-3.5 1.4a1 1 0 00-.6.6L8 12.5 6.6 9a1 1 0 00-.6-.6L2.5 7 6 5.7a1 1 0 00.6-.6L8 1.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M12.8 11l.5 1.2 1.2.5-1.2.5-.5 1.3-.5-1.3-1.2-.5 1.2-.5.5-1.2z",fill:"currentColor"})]}),Ts=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M2.5 8a5.5 5.5 0 115.5 5.5c-.9 0-1.8-.2-2.5-.6L2.5 13.5l.6-3A5.5 5.5 0 012.5 8z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),Is=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M14.67 8h-4l-1.33 2h-2.67l-1.33-2H1.33",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M3.63 3.41L1.33 8v4a1.33 1.33 0 001.33 1.33h10.67a1.33 1.33 0 001.33-1.33v-4l-2.3-4.59a1.33 1.33 0 00-1.19-.74H4.83a1.33 1.33 0 00-1.19.74z",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),$n=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M8 1.8l5 1.8v4c0 3.2-2.1 5.4-5 6.6-2.9-1.2-5-3.4-5-6.6v-4l5-1.8z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M5.8 8l1.6 1.6 2.8-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),As=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M6 2.5h3v1.6a1.4 1.4 0 102.8 0V2.5h1.7v3h-1.6a1.4 1.4 0 100 2.8h1.6v3h-3v1.6a1.4 1.4 0 11-2.8 0v-1.6h-3v-3h1.6a1.4 1.4 0 100-2.8H2.5v-3H6z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),Qt=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M8 2l6 3-6 3-6-3 6-3z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M2 8l6 3 6-3M2 11l6 3 6-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),Ps=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M8 8c-1.2-1.6-2-2.4-3.3-2.4a2.4 2.4 0 100 4.8C6 10.4 6.8 9.6 8 8zm0 0c1.2 1.6 2 2.4 3.3 2.4a2.4 2.4 0 100-4.8C10 5.6 9.2 6.4 8 8z",stroke:"currentColor",strokeWidth:"1.3"})}),Xt=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M8.5 1.5L3 9h4l-.5 5.5L12 7H8l.5-5.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),El=[{rotate:0,y:-5.9,height:3.7},{rotate:90,y:-5.9,height:3.7},{rotate:180,y:-5.9,height:3.7},{rotate:270,y:-5.9,height:3.7},{rotate:45,y:-7,height:4.3},{rotate:135,y:-7,height:4.3},{rotate:225,y:-7,height:4.3},{rotate:315,y:-7,height:4.3}],xs=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("g",{transform:"translate(8,8)",fill:"currentColor",children:El.map(t=>o.jsx("g",{transform:`rotate(${t.rotate})`,children:o.jsx("rect",{x:-.75,y:t.y,width:1.5,height:t.height,rx:.75})},t.rotate))})}),Ds=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("circle",{cx:"6",cy:"5.5",r:"2.2",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M2 13c0-2.2 1.8-3.6 4-3.6s4 1.4 4 3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),o.jsx("path",{d:"M10.5 3.6a2.2 2.2 0 010 4.1M11 9.6c1.7.3 3 1.6 3 3.4",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),Es=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M2.5 2.5v11h11",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M5 10l2.2-2.4 2 1.6L12.5 5.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Ls=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M2 8h12M8 2c1.8 1.6 2.8 3.8 2.8 6S9.8 12.4 8 14C6.2 12.4 5.2 10.2 5.2 8S6.2 3.6 8 2z",stroke:"currentColor",strokeWidth:"1.3"})]}),Fs=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M2.5 11.5L9 5l2 2-6.5 6.5H2.5v-2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M9 5l1.8-1.8a1.4 1.4 0 012 2L11 7",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),Hn=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("rect",{x:"1.8",y:"3.5",width:"12.4",height:"9",rx:"1.6",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M1.8 6.4h12.4",stroke:"currentColor",strokeWidth:"1.3"})]}),Ll=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M2 6l6-3.5L14 6v1H2V6zM3 7v5M6.3 7v5M9.7 7v5M13 7v5M2 12.5h12",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),Fl=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("rect",{x:"3.5",y:"7",width:"9",height:"6.5",rx:"1.4",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M5.5 7V5.5a2.5 2.5 0 015 0V7",stroke:"currentColor",strokeWidth:"1.3"})]}),en=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Da=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M4 6.5L8 10.5l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Yn=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M10 3.5L5.5 8l4.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),oa=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M6 3.5L10.5 8L6 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Ms=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Jn=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),an=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M8 2.2L14.5 13.2a.7.7 0 01-.6 1H2.1a.7.7 0 01-.6-1L8 2.2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M8 6.3v3.1",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),o.jsx("circle",{cx:"8",cy:"11.6",r:"0.85",fill:"currentColor"})]}),lt=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M9 3.5h3.5V7M12 4L7 9M11 9.5v2a1 1 0 01-1 1H4.5a1 1 0 01-1-1V6a1 1 0 011-1h2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),Ml=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M8 10.5V5.5M5.5 8l2.5-2.5L10.5 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Qn=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Xn=({size:a,...e})=>o.jsx("svg",{...ye(a,e),children:o.jsx("path",{d:"M8 2.5v7M5 7l3 3 3-3M3 12.5h10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),Ol=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("path",{d:"M4 2h8v12l-1.5-1-1.5 1-1.5-1-1.5 1L4 14V2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),o.jsx("path",{d:"M6.2 5.5h3.6M6.2 8h3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),Os=({size:a,...e})=>o.jsxs("svg",{...ye(a,e),children:[o.jsx("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M2.5 6.5h11M5.5 2v2.5M10.5 2v2.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),er=({brand:a})=>{const e=a==="visa"?"VISA":a==="mastercard"?"MC":a==="amex"?"AMEX":a==="discover"?"DISC":a.slice(0,4).toUpperCase(),t=a==="visa"?"#1a1f71":a==="mastercard"?"#252525":a==="amex"?"#016fd0":"#5d5d5d";return o.jsx("span",{"aria-hidden":!0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:34,height:22,padding:"0 4px",borderRadius:4,background:t,color:"#fff",fontSize:9,fontWeight:700,letterSpacing:"0.04em"},children:e})};function tn(a){const e=a.toLowerCase();return/desk|inbox|handoff/.test(e)?Is:/seat|member|user|team|rbac|rout/.test(e)?Ds:/analytic|report|insight|dashboard/.test(e)?Es:/whatsapp|channel|chat|message|conversation|webchat|voice/.test(e)?Ts:/storage|table|vector|file|gb|rows|db/.test(e)?Qt:/domain|help center|whitelabel|website|url|web/.test(e)?Ls:/brand|theme|custom|white-?label/.test(e)?Fs:/unlimited|infinit/.test(e)?Ps:/security|sla|compliance|soc|audit/.test(e)||/support|sla|dedicated|priority/.test(e)?$n:/integration|api|plugin|sdk|adk|studio/.test(e)?As:/agent/.test(e)?xs:/ai|model|gpt|llm/.test(e)?Xt:Jt}const Le=({open:a,onOpenChange:e,size:t="md",children:n,className:r,showClose:s=!0,...i})=>{const l=I.useRef(null),d=Oi(),c=Bi(),u=I.useCallback(()=>e(!1),[e]);return I.useEffect(()=>{var m;if(!a)return;const p=y=>{y.key==="Escape"&&u()};document.addEventListener("keydown",p);const h=document.body.style.overflow;return document.body.style.overflow="hidden",(m=l.current)==null||m.focus(),()=>{document.removeEventListener("keydown",p),document.body.style.overflow=h}},[a,u]),a?Lo.createPortal(o.jsx("div",{className:"bpb-portal bpb-dialog__overlay","data-bpb-theme":d?"dark":"light","data-bpb-color-scheme":c,onClick:u,children:o.jsxs("div",{ref:l,role:"dialog","aria-modal":"true","aria-label":i["aria-label"],tabIndex:-1,className:q("bpb-dialog",`bpb-dialog--${t}`,r),onClick:p=>p.stopPropagation(),children:[s&&o.jsx("button",{type:"button",className:"bpb-dialog__close","aria-label":"Close",onClick:u,children:o.jsx(en,{size:18})}),n]})}),document.body):null},ba=()=>{const{manageBillingUrl:a}=ne(),{t:e}=be();return o.jsxs("div",{className:"bpb-outdated",children:[o.jsx("h3",{className:"bpb-outdated__title",children:e("outdatedTitle")}),o.jsx("p",{className:"bpb-outdated__text",children:e("outdatedText")}),a&&o.jsxs(Se,{variant:"primary",onClick:()=>window.open(a,"_blank","noopener"),children:[e("outdatedCta"),o.jsx(lt,{size:15})]})]})},Bs=({options:a,value:e,onChange:t,className:n,...r})=>o.jsx("div",{role:"radiogroup","aria-label":r["aria-label"],className:q("bpb-segmented",n),children:a.map(s=>{const i=s.value===e;return o.jsxs("button",{type:"button",role:"radio","aria-checked":i,className:q("bpb-segmented__option",i&&"bpb-segmented__option--selected"),onClick:()=>t(s.value),children:[s.label,s.badge&&o.jsx("span",{className:"bpb-segmented__badge",children:s.badge})]},s.value)})}),he=({width:a,height:e=14,rounded:t=!1,className:n})=>o.jsx("span",{"aria-hidden":!0,className:q("bpb-skeleton",t&&"bpb-skeleton--rounded",n),style:{width:a??"100%",height:e}}),Bl="(max-width: 560px)",Ul=()=>{};function zl(a){const e=I.useCallback(r=>{if(typeof window>"u")return Ul;const s=window.matchMedia(a);return s.addEventListener("change",r),()=>s.removeEventListener("change",r)},[a]),t=I.useCallback(()=>typeof window<"u"&&window.matchMedia(a).matches,[a]),n=I.useCallback(()=>!1,[]);return I.useSyncExternalStore(e,t,n)}function Vl(){return zl(Bl)}const dt=({label:a,children:e})=>o.jsxs("span",{className:"bpb-tooltip",tabIndex:0,role:"note",children:[o.jsx("span",{className:"bpb-tooltip__term",children:a}),o.jsx("span",{className:"bpb-tooltip__bubble",role:"tooltip",children:e})]}),ar=3,jl=({label:a,description:e,Icon:t})=>{const[n,r]=I.useState(!1),s=I.useId();return o.jsxs("li",{className:"bpb-plan-card__feature--expandable",children:[o.jsxs("button",{type:"button",className:"bpb-plan-card__feature-trigger","aria-expanded":n,"aria-controls":s,onClick:()=>r(i=>!i),children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(t,{size:13})}),o.jsx("span",{className:"bpb-plan-card__feature-label",children:a}),o.jsx("span",{className:q("bpb-plan-card__feature-caret",n&&"is-open"),"aria-hidden":!0,children:o.jsx(Da,{size:14})})]}),n&&o.jsx("p",{id:s,className:"bpb-plan-card__feature-desc",children:e})]})},Zl=({features:a,previousPlanName:e,overrides:t,isMobile:n})=>{const{t:r}=be(),[s,i]=I.useState(!1),d=n&&!s&&a.length>ar?a.slice(0,ar):a;return o.jsxs(o.Fragment,{children:[o.jsxs("ul",{className:q("bpb-plan-card__features",n&&"bpb-plan-card__features--mobile"),children:[e&&o.jsxs("li",{className:"bpb-plan-card__features-lead",children:[o.jsx("span",{className:"bpb-plan-card__feature-chip bpb-plan-card__feature-chip--lead",children:o.jsx(ws,{size:13})}),o.jsx("span",{children:r("upgradeEverythingIn",{planName:e})})]}),d.map(c=>{const u=tn(c),p=Ht[c],h=t==null?void 0:t[c],m=(h==null?void 0:h.label)??(p!==void 0?r(p.label):c),y=(h==null?void 0:h.description)??(p!==void 0?r(p.desc):void 0);return n?y?o.jsx(jl,{label:m,description:y,Icon:u},c):o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(u,{size:13})}),o.jsx("span",{className:"bpb-plan-card__feature-label",children:m})]},c):o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(u,{size:13})}),y?o.jsx(dt,{label:m,children:y}):o.jsx("span",{children:m})]},c)})]}),n&&a.length>ar&&o.jsxs("button",{type:"button",className:"bpb-plan-card__features-toggle",onClick:()=>i(c=>!c),children:[s?r("upgradeShowFewerFeatures"):r("upgradeSeeAllFeatures",{total:a.length}),o.jsx("span",{className:q("bpb-plan-card__feature-caret",s&&"is-open"),"aria-hidden":!0,children:o.jsx(Da,{size:14})})]})]})};function ql(a,e){const t=a.prices[e];return t||((e==="month"?a.prices.year:a.prices.month)??null)}function Wl(a,e){var r,s;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const n=((s=a.prices.year)==null?void 0:s.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}function Gl(a){var t,n;let e=0;for(const r of a){const s=(t=r.prices.month)==null?void 0:t.amount,i=(n=r.prices.year)==null?void 0:n.amount;s&&i&&s>0&&(e=Math.max(e,1-i/(s*12)))}return Math.round(e*100)}const Us=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",defaultInterval:r="month",excludePlanIds:s=[],planFeatures:i={},featureDescriptions:l})=>{var Y,J,H;const{isOutdatedBilling:d,toast:c,analytics:u}=ne(),{t:p}=be(),{data:h}=Me(),[m,y]=I.useState(r),{data:f,isLoading:_}=qe(),{data:S}=pa(),{data:v}=ze({enabled:a}),{data:w}=On({enabled:a}),T=jn(),A=(w==null?void 0:w.planReadonly)??!1;I.useEffect(()=>{a&&u.capture(Te.PLAN_PICKER_VIEWED,{interval:m})},[a,u]);const N=G=>{G!==m&&u.capture(Te.PLAN_INTERVAL_TOGGLED,{interval:G}),y(G)},F=v==null?void 0:v.plan.current.interval,C=f==null?void 0:f.find(G=>G.id===(v==null?void 0:v.plan.current.planId)),P=v?C?ve(C):"community":void 0,x=((Y=v==null?void 0:v.plan.next)==null?void 0:Y.planId)??null,O=!!x&&x!==(v==null?void 0:v.plan.current.planId),W=A||P==="enterprise"||P==="managed",j=I.useMemo(()=>f?f.filter(G=>ve(G)!=="managed"&&ve(G)!=="enterprise"&&!s.includes(G.id)).sort((G,se)=>xa.indexOf(ve(G))-xa.indexOf(ve(se))):[],[f,s]),Q=I.useMemo(()=>Gl(j),[j]),K=Vl(),B=I.useMemo(()=>{var ge;if(j.length===0)return null;const G=j.find(ee=>ve(ee)===n||ee.id===n),se=j.find(ee=>ve(ee)===P);return((ge=G??se??j[0])==null?void 0:ge.id)??null},[j,n,P]),[U,Z]=I.useState(void 0),[$,E]=I.useState(a);$!==a&&(E(a),Z(void 0));const ie=U===void 0?B:U,re=((H=(J=f==null?void 0:f.find(G=>ve(G)==="enterprise"))==null?void 0:J.metadata)==null?void 0:H.contact_url)??Kn,ce=G=>{T.mutate({planId:G.id,interval:m},{onSuccess:()=>{u.capture(Te.PLAN_DOWNGRADED,{plan_name:_e(G.name),interval:m,previous_plan_name:C?_e(C.name):void 0}),c({type:"success",message:p("upgradeDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeDowngradeError")})})},M=()=>{v&&T.mutate({planId:v.plan.current.planId,interval:v.plan.current.interval},{onSuccess:()=>{u.capture(Te.PLAN_DOWNGRADE_CANCELLED,{plan_name:C?_e(C.name):v.plan.current.planId}),c({type:"success",message:p("upgradeCancelDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeCancelDowngradeError")})})};return h===!1?null:d?o.jsx(Le,{open:a,onOpenChange:e,size:"md","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:o.jsx(ba,{})}):o.jsx(Le,{open:a,onOpenChange:e,size:"xl","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:o.jsxs("div",{className:"bpb-upgrade",children:[o.jsx("h2",{className:"bpb-upgrade__title",children:p("upgradeDialogTitle")}),o.jsx("div",{className:"bpb-upgrade__toggle",children:o.jsx(Bs,{"aria-label":p("dashboardBillingPeriod"),value:m,onChange:N,options:[{value:"month",label:p("upgradeMonthly")},{value:"year",label:p("upgradeAnnual"),badge:Q>0?p("upgradeSaveBadge",{savings:Q}):void 0}]})}),o.jsxs("div",{className:"bpb-upgrade__grid",children:[_&&[0,1,2].map(G=>o.jsxs("div",{className:"bpb-plan-card","aria-hidden":!0,children:[o.jsx(he,{width:120,height:22}),o.jsx(he,{width:90,height:40}),o.jsx(he,{width:"100%",height:36,rounded:!0}),o.jsx(he,{width:"100%",height:140})]},G)),j.map((G,se)=>{var Lt,Oe;const ge=ve(G),ee=ql(G,m),te=Wl(G,m),Ne=(((Lt=G.prices.month)==null?void 0:Lt.amount)??0)<=0,pe=ge===P,xe=pe&&(P==="community"||m===F),ca=ge===P&&P!=="community"&&m!==F,Sa=!!x&&G.id===x&&!xe,Fe=P!==void 0&&xa.indexOf(ge)<xa.indexOf(P),Oa=(ge===n||G.id===n)&&!xe,$e=pe&&O?"cancel_downgrade":xe?"current":ca?"switch_interval":Sa?"next":Fe?"downgrade":"upgrade",Ja=se>0?j[se-1]:void 0,fr=i[ge]??Yt[ge],Qa=G.features.conversation_sessions,Xa=$t(S,G,m),et=G.features.ai_spend,_n=et!==void 0?p("planFeatureAiUsageIncluded",{amount:le(et/We,(ee==null?void 0:ee.currency)??"usd",1)}):void 0,yr=et!==void 0&&Qa?p("planFeatureDescAiUsageIncluded",{rate:le(et/Qa/We,(ee==null?void 0:ee.currency)??"usd",2)}):void 0,Nn={...Object.fromEntries(Object.entries(l??{}).map(([He,Cn])=>[He,{description:Cn}])),..._n!==void 0?{"AI usage included":{label:_n,description:(l==null?void 0:l["AI usage included"])??yr}}:{}},Pe=T.isPending&&($e==="downgrade"&&((Oe=T.variables)==null?void 0:Oe.planId)===G.id||$e==="cancel_downgrade"),Dt=_e(G.name),ka=!K||ie===G.id,Et=te!==null&&ee?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-plan-card__currency",children:st(ee.currency)}),o.jsx("span",{className:"bpb-plan-card__amount",children:Math.round(te)}),o.jsx("span",{className:"bpb-plan-card__per",children:p("upgradePerMonthSuffix",{currency:ee.currency.toUpperCase()})})]}):o.jsx("span",{className:"bpb-plan-card__amount",children:le(0,"usd",0)});return o.jsxs("div",{className:q("bpb-plan-card",Oa&&"bpb-plan-card--highlighted bpb-glow",K&&"bpb-plan-card--accordion",K&&ka&&"is-expanded"),"data-plan-id":G.id,children:[K?o.jsxs("button",{type:"button",className:"bpb-plan-card__summary","aria-expanded":ka,onClick:()=>Z(ka?null:G.id),children:[o.jsxs("span",{className:"bpb-plan-card__summary-text",children:[o.jsxs("span",{className:"bpb-plan-card__name",children:[Dt,Oa&&o.jsx(it,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("span",{className:"bpb-plan-card__price",children:Et})]}),o.jsx("span",{className:q("bpb-plan-card__feature-caret",ka&&"is-open"),"aria-hidden":!0,children:o.jsx(Da,{size:16})})]}):o.jsxs("div",{className:"bpb-plan-card__header",children:[o.jsxs("h3",{className:"bpb-plan-card__name",children:[Dt,Oa&&o.jsx(it,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("p",{className:"bpb-plan-card__tagline",children:p(ks[ve(G)])}),o.jsx("div",{className:"bpb-plan-card__price",children:Et})]}),ka&&o.jsxs(o.Fragment,{children:[K&&o.jsx("p",{className:"bpb-plan-card__tagline",children:p(ks[ve(G)])}),Qa!==void 0&&o.jsxs("div",{className:"bpb-plan-card__allowance",children:[o.jsxs("div",{className:"bpb-plan-card__metric",children:[o.jsx("span",{className:"bpb-plan-card__metric-value",children:fe(Qa)}),o.jsx("span",{className:"bpb-plan-card__metric-unit",children:p(Ne?"conversationsUnit":"conversationsPerMonth")})]}),Xa?o.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeThenPer",{price:le(Xa.amount,Xa.currency,0),packSize:fe(Xa.packSize)})}):o.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeNoTopup")})]}),$e==="current"&&o.jsx(Se,{variant:"outline",block:!0,disabled:!0,children:p("upgradeCurrentPlan")}),$e==="next"&&o.jsx(Se,{variant:"outline",block:!0,disabled:!0,children:p("upgradeNextPlan")}),$e==="cancel_downgrade"&&o.jsx(Se,{variant:"primary",block:!0,loading:Pe,onClick:M,children:p("upgradeCancelDowngrade")}),$e==="downgrade"&&o.jsx(Se,{variant:"outline",block:!0,disabled:W||T.isPending,loading:Pe,onClick:()=>ce(G),children:p("upgradeDowngrade")}),$e==="switch_interval"&&o.jsx(Se,{variant:"primary",block:!0,disabled:W||T.isPending,title:W?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(Te.PLAN_UPGRADE_INITIATED,{plan_name:_e(G.name),interval:m,current_plan_name:C?_e(C.name):void 0}),t(G.id,m)},children:p(m==="year"?"upgradeSwitchToAnnual":"upgradeSwitchToMonthly")}),$e==="upgrade"&&o.jsx(Se,{variant:Oa?"accent":"primary",block:!0,disabled:W||T.isPending,title:W?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(Te.PLAN_UPGRADE_INITIATED,{plan_name:_e(G.name),interval:m,current_plan_name:C?_e(C.name):void 0}),t(G.id,m)},children:p("upgradeUpgrade")}),o.jsx(Zl,{features:fr,previousPlanName:Ja?_e(Ja.name):void 0,overrides:Nn,isMobile:K})]})]},G.id)})]}),o.jsxs("p",{className:"bpb-upgrade__footer",children:[p("upgradeFooterEnterprise")," ",o.jsx("a",{href:re,target:"_blank",rel:"noopener noreferrer",children:p("upgradeContactUs")})," ",p("upgradeFooterAboutEnterprise")," ",o.jsx("a",{href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:"botpress.com/pricing"}),"."]})]})})},tr='-apple-system, "ui-sans-serif", "system-ui", "Segoe UI", Helvetica, Arial, sans-serif',nr="14px",zs="10px";function rr(a){return a?{theme:"night",variables:{fontFamily:tr,fontSizeBase:nr,borderRadius:zs,colorPrimary:"#ececec",colorBackground:"#1c1c1c",colorText:"#f9f9f9",colorTextSecondary:"#b4b4b4",colorTextPlaceholder:"#9b9b9b",colorDanger:"#ff8583"},rules:{".Input":{backgroundColor:"#212121",border:"1px solid rgba(255,255,255,0.12)",boxShadow:"none",color:"#f9f9f9"},".Input:focus":{border:"1px solid rgba(255,255,255,0.3)",boxShadow:"none"},".Label":{color:"#ececec",fontWeight:"500",fontSize:"12px"},".Error":{color:"#ff8583"},".Tab":{border:"1px solid rgba(255,255,255,0.12)",boxShadow:"none"}}}:{theme:"stripe",variables:{fontFamily:tr,fontSizeBase:nr,borderRadius:zs,colorPrimary:"#0d0d0d",colorBackground:"#f7f7f7",colorText:"#0d0d0d",colorTextSecondary:"#5d5d5d",colorTextPlaceholder:"#8f8f8f",colorDanger:"#e02e2a"},rules:{".Input":{backgroundColor:"#f7f7f7",border:"1px solid transparent",boxShadow:"none",color:"#0d0d0d"},".Input:focus":{backgroundColor:"#fff",border:"1px solid #0d0d0d",boxShadow:"none"},".Label":{color:"#5d5d5d",fontWeight:"500",fontSize:"12px"},".Error":{color:"#e02e2a"},".Tab":{border:"1px solid #0d0d0d1a",boxShadow:"none",backgroundColor:"#f7f7f7"},".Tab--selected":{border:"1px solid #0d0d0d",backgroundColor:"#fff"},".Block":{backgroundColor:"#f9f9f9",boxShadow:"none"}}}}function sr(a){return{base:{fontFamily:tr,fontSize:nr,color:a?"#f9f9f9":"#0d0d0d","::placeholder":{color:a?"#9b9b9b":"#8f8f8f"}},invalid:{color:a?"#ff8583":"#e02e2a"}}}const Kl={pt:"pt-BR",es:"es-419"};function or(a){const e=a.split("-")[0]??a;return Kl[e]??a}const Rl={address:"address",name:"address",taxId:"taxId",payment:"payment"};function Vs(a,e){var r;const t=(r=a==null?void 0:a.metadata)==null?void 0:r.errors;if(!(t!=null&&t.length))return{general:(a==null?void 0:a.message)||e};const n={};for(const s of t)s.message&&(n[Rl[s.scope??""]??"general"]=s.message);return Object.keys(n).length>0?n:{general:(a==null?void 0:a.message)||e}}function nn(a){const e=new Date(a);if(Number.isNaN(e.getTime()))return!1;const t=new Date;return t.setFullYear(t.getFullYear()+2),e>t}function js(a){const e=new Date(a);return new Date(e.getUTCFullYear(),e.getUTCMonth()+1,0).toISOString()}const $l=4,Hl=({plan:a,interval:e,preview:t,isLoadingPreview:n,isPreviewError:r,canSubscribe:s,isSubmitting:i,submitError:l,onSubscribe:d})=>{var U,Z,$,E,ie;const{locale:c}=ne(),{t:u}=be(),{data:p}=pa(),h=((U=a==null?void 0:a.prices.month)==null?void 0:U.currency)??((Z=a==null?void 0:a.prices.year)==null?void 0:Z.currency)??"usd",m=a==null?void 0:a.features.conversation_sessions,y=a&&ve(a)==="community"?u("conversationsUnit"):u("conversationsPerMonth"),f=a?$t(p,a,e):null,_=(t==null?void 0:t.costs.immediate.amountDue)??0,S=(t==null?void 0:t.costs.immediate.accountBalance)??0,v=(t==null?void 0:t.costs.nextCycle.total)??0,w=t!=null&&t.nextBillingDate?ys(t.nextBillingDate,1):null,T=w&&!nn(w)?Qe(w,c):null,A=a?Yt[ve(a)].slice(0,$l):[],N=a==null?void 0:a.features.ai_spend,F=N!==void 0?u("planFeatureAiUsageIncluded",{amount:le(N/We,h,1)}):void 0,C=a?(($=a.prices[e])==null?void 0:$.amount)??0:0,P=(t==null?void 0:t.costs.immediate.lineItems)??[],x=P.filter(re=>re.type==="discount"),O=P.filter(re=>re.type==="proration_credit"||re.type==="proration_charge").reduce((re,ce)=>re+ce.amount,0),W=!!(t!=null&&t.subscription.plan.effectiveDate),j=((E=a==null?void 0:a.prices.month)==null?void 0:E.amount)??0,Q=((ie=a==null?void 0:a.prices.year)==null?void 0:ie.amount)??0,K=e==="year"&&j>0&&Q>0?Math.round(j*12-Q):0,B=Math.round(K/12);return o.jsxs("div",{className:"bpb-summary-wrap",children:[o.jsxs("div",{className:"bpb-summary bpb-glow",children:[o.jsx("h3",{className:"bpb-summary__title",children:a?`${_e(a.name)} plan`:o.jsx(he,{width:140,height:24})}),m!==void 0&&o.jsxs("div",{className:"bpb-summary__metric",children:[o.jsx("span",{className:"bpb-summary__metric-value",children:fe(m)}),o.jsx("span",{className:"bpb-summary__metric-unit",children:y}),f&&o.jsx("span",{className:"bpb-summary__metric-pack",children:u("orderThen",{price:le(f.amount,f.currency,0),packSize:fe(f.packSize)})})]}),A.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"bpb-summary__features-label",children:u("orderTopFeatures")}),o.jsx("ul",{className:"bpb-summary__features",children:A.map(re=>{const ce=tn(re),M=Ht[re],Y=re==="AI usage included"?F??(M!==void 0?u(M.label):re):M!==void 0?u(M.label):re;return o.jsxs("li",{children:[o.jsx(ce,{size:16,className:"bpb-summary__feature-icon"}),o.jsx("span",{children:Y})]},re)})})]}),o.jsx("hr",{className:"bpb-summary__divider"}),n&&o.jsxs("div",{className:"bpb-summary__lines","aria-busy":"true",children:[o.jsx(he,{height:16}),o.jsx(he,{height:16}),o.jsx(he,{height:20})]}),r&&o.jsx("p",{role:"alert",className:"bpb-summary__error",children:u("orderPreviewError")}),t&&!n&&W&&o.jsxs("div",{className:"bpb-summary__lines",children:[o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:T?u("orderPlanFromDate",{plan:a?_e(a.name):"",date:T}):`${a?_e(a.name):""} plan`}),o.jsxs("span",{className:"bpb-summary__line-amount",children:[le(v,h),u(e==="year"?"perYear":"perMonth")]})]}),o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:o.jsx(dt,{label:u("orderProratedToday"),children:u("orderProratedTodayDesc")})}),o.jsx("span",{className:"bpb-summary__line-amount",children:le(_,h)})]}),o.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[o.jsx("span",{children:u("orderDueToday")}),o.jsx("span",{children:le(_,h)})]}),O<0&&o.jsx("p",{className:"bpb-summary__addon-note",children:u("orderCreditTowardNext",{amount:le(Math.abs(O),h)})})]}),t&&!n&&!W&&o.jsxs("div",{className:"bpb-summary__lines",children:[o.jsxs("div",{className:"bpb-summary__line",children:[o.jsxs("span",{className:"bpb-summary__line-label",children:[a?_e(a.name):""," plan (",u(e==="year"?"orderIntervalAnnual":"orderIntervalMonthly"),")"]}),o.jsxs("span",{className:"bpb-summary__line-amount",children:[le(C,h),u(e==="year"?"perYear":"perMonth")]})]}),x.map((re,ce)=>o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:re.description}),o.jsx("span",{className:"bpb-summary__line-amount",children:le(re.amount,h)})]},`${re.id}-${ce}`)),O!==0&&o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:o.jsx(dt,{label:O<0?u("orderCreditUnusedTime"):u("orderAdjustUnusedTime"),children:O<0?u("orderCreditUnusedTimeDesc"):u("orderAdjustUnusedTimeDesc")})}),o.jsx("span",{className:"bpb-summary__line-amount",children:le(O,h)})]}),S!==0&&o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:u("orderAccountCredit")}),o.jsx("span",{className:"bpb-summary__line-amount",children:le(S,h)})]}),o.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[o.jsx("span",{children:u("orderDueToday")}),o.jsx("span",{children:le(_,h)})]}),O<0&&_===0&&o.jsx("p",{className:"bpb-summary__addon-note",children:u("orderBalanceAsCredit",{amount:le(Math.abs(O),h)})})]}),K>0&&o.jsxs("div",{className:"bpb-summary__savings",children:[o.jsx(Jt,{size:18,className:"bpb-summary__savings-icon"}),o.jsx("span",{children:u("orderSavingsNote",{monthlySavings:le(B,h,0),yearlySavings:le(K,h,0)})})]}),o.jsx(Se,{variant:"primary",size:"lg",block:!0,className:"bpb-summary__cta",disabled:!s,loading:i,onClick:d,children:u(r?"orderPreviewUnavailable":"orderSubscribe")}),l&&o.jsx("p",{role:"alert",className:"bpb-summary__submit-error",children:l})]}),o.jsxs("p",{className:"bpb-summary__fineprint",children:[u(e==="month"?"orderRenewsMonthly":"orderRenewsAnnually"),t&&o.jsxs(o.Fragment,{children:[" ",T?u("orderChargedStarting",{amount:le(v,h),period:u(e==="month"?"perMonthLong":"perYearLong"),date:T}):u("orderChargedNoDate",{amount:le(v,h),period:u(e==="month"?"perMonthLong":"perYearLong")})]})," ",u("orderCancelNote")]})]})},Yl=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE"],Jl={CA:[{type:"ca_bn",label:"CA BN",description:"Canadian BN"},{type:"ca_gst_hst",label:"CA GST/HST",description:"Canadian GST/HST number"},{type:"ca_qst",label:"CA QST",description:"Canadian QST number (Québec)"},{type:"ca_pst_bc",label:"CA PST-BC",description:"Canadian PST number (British Columbia)"},{type:"ca_pst_mb",label:"CA PST-MB",description:"Canadian PST number (Manitoba)"},{type:"ca_pst_sk",label:"CA PST-SK",description:"Canadian PST number (Saskatchewan)"}],US:[{type:"us_ein",label:"US EIN",description:"United States EIN"}],GB:[{type:"eu_vat",label:"XI VAT",description:"Northern Ireland VAT number"},{type:"gb_vat",label:"GB VAT",description:"United Kingdom VAT number"}],AU:[{type:"au_abn",label:"AU ABN",description:"Australian Business Number"},{type:"au_arn",label:"AU ARN",description:"Australian Taxation Office Reference Number"}],NZ:[{type:"nz_gst",label:"NZ GST",description:"New Zealand GST number"}],IN:[{type:"in_gst",label:"IN GST",description:"Indian GST number"}],JP:[{type:"jp_cn",label:"JP CN",description:"Japanese Corporate Number"},{type:"jp_rn",label:"JP RN",description:"Japanese Registered Foreign Businesses' Registration Number"},{type:"jp_trn",label:"JP TRN",description:"Japanese Tax Registration Number"}],BR:[{type:"br_cnpj",label:"BR CNPJ",description:"Brazilian CNPJ number"},{type:"br_cpf",label:"BR CPF",description:"Brazilian CPF number"}],MX:[{type:"mx_rfc",label:"MX RFC",description:"Mexican RFC number"}],CH:[{type:"ch_vat",label:"CH VAT",description:"Switzerland VAT number"},{type:"ch_uid",label:"CH UID",description:"Switzerland UID number"}],AE:[{type:"ae_trn",label:"AE TRN",description:"United Arab Emirates TRN"}],SG:[{type:"sg_gst",label:"SG GST",description:"Singaporean GST number"},{type:"sg_uen",label:"SG UEN",description:"Singaporean UEN"}],ZA:[{type:"za_vat",label:"ZA VAT",description:"South African VAT number"}],ES:[{type:"es_cif",label:"ES CIF",description:"Spanish NIF number"}],BG:[{type:"bg_uic",label:"BG UIC",description:"Bulgaria Unified Identification Code"}],HR:[{type:"hr_oib",label:"HR OIB",description:"Croatian Personal Identification Number"}],DE:[{type:"de_stn",label:"DE STN",description:"German Tax Number (Steuernummer)"}],HU:[{type:"hu_tin",label:"HU TIN",description:"Hungary tax number (adószám)"}],RO:[{type:"ro_tin",label:"RO TIN",description:"Romanian tax ID number"}],SI:[{type:"si_tin",label:"SI TIN",description:"Slovenia tax number (davčna številka)"}]},Ql=[{type:"eu_vat",label:"EU VAT",description:"European VAT number"}];function Zs(a){if(!a)return[];const e=a.toUpperCase(),t=Jl[e]??[];return Yl.includes(e)?[...Ql,...t]:t}const rn=({label:a,invalid:e,className:t,id:n,...r})=>a?o.jsxs("label",{className:q("bpb-input",t),children:[o.jsx("span",{className:"bpb-input__label",children:a}),o.jsx("input",{className:q("bpb-input__field bpb-input__field--labeled",e&&"bpb-input__field--invalid"),id:n,"aria-invalid":e||void 0,...r})]}):o.jsx("input",{className:q("bpb-input__field",e&&"bpb-input__field--invalid",t),id:n,"aria-invalid":e||void 0,...r}),ir=({label:a,className:e,children:t,...n})=>o.jsxs("label",{className:q("bpb-input",e),children:[a&&o.jsx("span",{className:"bpb-input__label",children:a}),o.jsxs("span",{className:"bpb-input__select-wrap",children:[o.jsx("select",{className:q("bpb-input__field bpb-input__field--select",a&&"bpb-input__field--labeled"),...n,children:t}),o.jsx(Da,{size:16,className:"bpb-input__chevron"})]})]}),Xl=({plan:a,interval:e,onChange:t})=>{const{t:n}=be(),r=a.prices.month,s=a.prices.year,i=r&&s&&r.amount>0?Math.round((1-s.amount/(r.amount*12))*100):0;return o.jsxs("section",{className:"bpb-checkout__section",children:[o.jsx("h3",{className:"bpb-checkout__section-title",children:n("checkoutPlanDetails")}),o.jsxs("div",{className:"bpb-interval-cards",role:"radiogroup","aria-label":n("billingIntervalLabel"),children:[r&&o.jsxs("button",{type:"button",role:"radio","aria-checked":e==="month",className:q("bpb-interval-card",e==="month"&&"bpb-interval-card--selected"),onClick:()=>t("month"),children:[o.jsx("span",{className:"bpb-interval-card__title",children:n("checkoutMonthlyBilling")}),o.jsxs("span",{className:"bpb-interval-card__price",children:[le(r.amount,r.currency,0)," ",n("perMonth")]})]}),s&&o.jsxs("button",{type:"button",role:"radio","aria-checked":e==="year",className:q("bpb-interval-card",e==="year"&&"bpb-interval-card--selected"),onClick:()=>t("year"),children:[o.jsxs("span",{className:"bpb-interval-card__title",children:[n("checkoutAnnualBilling"),i>0&&o.jsx(it,{children:n("checkoutSaveBadge",{savings:i})})]}),o.jsxs("span",{className:"bpb-interval-card__price",children:[le(s.amount/12,s.currency,0)," ",n("perMonth")]})]})]})]})},qs=({number:a,title:e,onEdit:t})=>{const{t:n}=be();return o.jsxs("div",{className:"bpb-step__header",children:[t?o.jsxs("button",{type:"button",className:"bpb-step__title bpb-step__title--button",onClick:t,children:[a,". ",e]}):o.jsxs("h3",{className:"bpb-step__title",children:[a,". ",e]}),t&&o.jsx("button",{type:"button",className:"bpb-step__edit",onClick:t,children:n("edit")})]})},ed=({stepNumber:a,savedCard:e,isDark:t,tab:n,onTabChange:r,onPaymentChange:s,error:i})=>{const{t:l}=be(),[d,c]=I.useState(!1),u=n==="new"||!e;return o.jsxs("section",{className:"bpb-step",children:[o.jsx(qs,{number:a,title:l("checkoutPaymentMethodTitle")}),e&&o.jsxs("div",{className:"bpb-pay-tabs",role:"tablist","aria-label":l("checkoutPaymentMethodTitle"),children:[o.jsxs("button",{type:"button",role:"tab","aria-selected":n==="saved",className:q("bpb-pay-tab",n==="saved"&&"bpb-pay-tab--selected"),onClick:()=>r("saved"),children:[o.jsx(Hn,{size:16}),l("checkoutSavedCardTab")]}),o.jsxs("button",{type:"button",role:"tab","aria-selected":n==="new",className:q("bpb-pay-tab",n==="new"&&"bpb-pay-tab--selected"),onClick:()=>r("new"),children:[o.jsx(Hn,{size:16}),l("checkoutNewCardTab")]})]}),e&&n==="saved"&&o.jsxs("div",{className:"bpb-saved-card",children:[o.jsx(er,{brand:e.brand}),o.jsxs("span",{className:"bpb-saved-card__number",children:[o.jsx("span",{className:"bpb-saved-card__brand",children:e.brand})," •••• ",e.lastFour]}),o.jsxs("span",{className:"bpb-saved-card__exp",children:[String(e.expMonth).padStart(2,"0"),"/",String(e.expYear).slice(-2)]})]}),u&&o.jsxs("div",{className:"bpb-payment-element",children:[!d&&o.jsx("div",{className:"bpb-payment-element__skeleton",children:o.jsx(he,{height:48})}),o.jsx("div",{className:q("bpb-card-element",!d&&"bpb-payment-element--hidden"),children:o.jsx(Be.CardElement,{options:{style:sr(t),hidePostalCode:!0},onReady:()=>c(!0),onChange:p=>s(p.complete)})})]}),i&&o.jsx("p",{role:"alert",className:"bpb-step__field-error",children:i})]})},ad=({stepNumber:a,existingAddress:e,customerName:t,isLoading:n,editing:r,onEdit:s,onCancelEdit:i,onReady:l,onCountryChange:d,country:c,isBusiness:u,onIsBusinessChange:p,businessName:h,onBusinessNameChange:m,taxType:y,onTaxTypeChange:f,taxValue:_,onTaxValueChange:S,addressError:v,taxIdError:w})=>{const{t:T}=be(),[A,N]=I.useState(!1),F=r||!e,C=Zs(c),P=C.find(x=>x.type===y);return o.jsxs("section",{className:"bpb-step",children:[o.jsx(qs,{number:a,title:T("checkoutBillingAddressTitle")}),n?o.jsx(he,{height:72}):F?o.jsxs("div",{className:"bpb-payment-element",children:[!A&&o.jsxs("div",{className:"bpb-payment-element__skeleton",children:[o.jsx(he,{height:48}),o.jsx(he,{height:48})]}),o.jsx("div",{className:q(!A&&"bpb-payment-element--hidden"),children:o.jsx(Be.AddressElement,{options:{mode:"billing",display:{name:"full"},autocomplete:{mode:"disabled"},defaultValues:e?{name:t??void 0,address:{line1:e.lineOne,line2:e.lineTwo,city:e.city,state:e.state,postal_code:e.postalCode,country:e.country}}:void 0},onReady:()=>{N(!0),l()},onChange:x=>{d(x.value.address.country||void 0)}})}),i&&r&&o.jsx("button",{type:"button",className:"bpb-address-cancel",onClick:i,children:T("checkoutCancelEdit")})]}):o.jsxs("div",{className:"bpb-address-card",children:[o.jsxs("div",{className:"bpb-address-card__lines",children:[t&&o.jsx("span",{className:"bpb-address-card__name",children:t}),o.jsxs("span",{children:[e.lineOne,e.lineTwo?`, ${e.lineTwo}`:""]}),o.jsxs("span",{children:[e.city," ",e.state??""," ",e.postalCode," ",e.country]})]}),o.jsx("button",{type:"button",className:"bpb-link-button",onClick:s,children:T("checkoutUpdateAddress")})]}),v&&o.jsx("p",{role:"alert",className:"bpb-step__field-error",children:v}),o.jsxs("label",{className:"bpb-checkbox",children:[o.jsx("input",{type:"checkbox",checked:u,onChange:x=>{p(x.target.checked),x.target.checked&&!y&&C[0]&&f(C[0].type)}}),o.jsx("span",{children:T("checkoutIsBusiness")})]}),u&&o.jsxs("div",{className:"bpb-business-fields",children:[o.jsx("h4",{className:"bpb-step__subtitle",children:T("checkoutBusinessDetails")}),o.jsx(rn,{placeholder:T("checkoutBusinessNamePlaceholder"),value:h,onChange:x=>m(x.target.value),autoComplete:"organization"}),C.length>0?o.jsxs(o.Fragment,{children:[o.jsx(ir,{"aria-label":T("checkoutTaxIdTypeLabel"),value:y,onChange:x=>f(x.target.value),children:C.map(x=>o.jsxs("option",{value:x.type,children:[x.label," — ",x.description]},x.type))}),o.jsx(rn,{placeholder:P?P.description:T("checkoutTaxIdNumberPlaceholder"),value:_,onChange:x=>S(x.target.value),inputMode:"text"}),w&&o.jsx("p",{role:"alert",className:"bpb-step__field-error",children:w})]}):o.jsx("p",{className:"bpb-business-fields__note",children:T(c?"checkoutNoTaxRequired":"checkoutSelectCountryForTax")})]})]})},td=({planId:a,initialInterval:e,onSuccess:t})=>{var Nn;const n=Be.useStripe(),r=Be.useElements(),{email:s,toast:i,analytics:l,isDark:d}=ne(),{t:c}=be(),[u,p]=I.useState(e),[h,m]=I.useState("payment"),[y,f]=I.useState(null),[_,S]=I.useState(!1),[v,w]=I.useState(!1),[T,A]=I.useState(!1),[N,F]=I.useState(void 0),[C,P]=I.useState(!1),[x,O]=I.useState(""),[W,j]=I.useState(""),[Q,K]=I.useState(""),[B,U]=I.useState(!1),[Z,$]=I.useState({}),[E,ie]=I.useState(!1),re=Un(),{data:ce}=qe(),{data:M}=ze(),{data:Y,isLoading:J}=Fn(),{data:H,isLoading:G,isError:se}=Mn(),ge=ce==null?void 0:ce.find(Pe=>Pe.id===a),ee=((Nn=Y==null?void 0:Y.paymentMethod)==null?void 0:Nn.card)??null,te=(H==null?void 0:H.address)??null;I.useEffect(()=>{y===null&&!J&&Y!==void 0&&f(ee?"saved":"new")},[y,J,Y,ee]),I.useEffect(()=>{N===void 0&&te&&F(te.country)},[N,te]);const Ne=I.useMemo(()=>({plan:{planId:a,interval:u}}),[a,u]),pe=Ln(Ne),xe=zn(),ca=Vn(),Sa=jn(),Fe=ge?_e(ge.name):"",Oa=y==="new"||!ee,$e=v||!te,Ja=Oa?_:!!ee,fr=$e?T:!0;I.useEffect(()=>{m(Ja?"address":"payment")},[Ja]),I.useEffect(()=>{l.capture(Te.CHECKOUT_STEP_VIEWED,{plan_name:Fe,interval:u,step:h})},[l,h]);const Qa=Pe=>{Pe!==u&&l.capture(Te.CHECKOUT_INTERVAL_CHANGED,{plan_name:Fe,interval:Pe}),p(Pe)},Xa=Pe=>{l.capture(Te.PAYMENT_METHOD_SELECTED,{method:Pe==="saved"?"saved_card":"new_card"}),f(Pe)},et=Pe=>{S(Pe),ie(!1)},_n=!!n&&!!r&&!!ge&&!G&&!se&&!pe.isError&&!!pe.data&&Ja&&fr&&!B,yr=async()=>{var Dt,ka,Et,Lt;if(!n||!r||!ge||G||se)return;U(!0),$({});const Pe=(Oe,He)=>l.capture(Te.CHECKOUT_ERROR,{plan_name:Fe,interval:u,step:h,reason:Oe,message:He});try{if(l.capture(Te.PAYMENT_DETAILS_CONFIRMED,{plan_name:Fe,interval:u}),Oa&&!E){const ra=r.getElement(Be.CardElement);if(!ra){$({payment:c("checkoutCardNotReady")}),Pe("card_element_not_ready");return}const{clientSecret:vr}=await re.mutateAsync(),{error:ua,setupIntent:Ze}=await n.confirmCardSetup(vr,{payment_method:{card:ra}});if(ua){$({payment:ua.message??c("checkoutPaymentSetupFailed")}),l.capture(Te.CHECKOUT_ERROR,{plan_name:Fe,interval:u,step:h,reason:ua.code??"card_setup_failed",decline_code:ua.decline_code,message:ua.message});return}if(!(Ze!=null&&Ze.payment_method)||typeof Ze.payment_method!="string"){$({payment:c("checkoutPaymentMethodMissing")}),Pe("payment_method_missing");return}await xe.mutateAsync({paymentMethodId:Ze.payment_method}),ie(!0)}let Oe,He;if($e){const ra=r.getElement("address");if(ra){const{complete:vr,value:ua}=await ra.getValue();if(!vr||!ua.address){$({address:c("checkoutAddressIncomplete")}),Pe("address_incomplete");return}const{address:Ze}=ua;He=((Dt=ua.name)==null?void 0:Dt.trim())||void 0,Oe={lineOne:Ze.line1??"",lineTwo:Ze.line2??void 0,city:Ze.city??"",state:Ze.state??void 0,postalCode:Ze.postal_code??"",country:Ze.country??""}}}const Cn=C&&x.trim()||He||(H==null?void 0:H.name)||void 0,Sn=C&&W&&Q.trim()?{type:W,value:Q.trim()}:void 0,Bc=Sn?[...((H==null?void 0:H.taxIds)??[]).filter(ra=>ra.type!==Sn.type||ra.value!==Sn.value),Sn]:H==null?void 0:H.taxIds;(Oe||C||Cn!==((H==null?void 0:H.name)??void 0))&&await ca.mutateAsync({address:Oe??te??void 0,name:Cn,taxIds:Bc});const Uc=((ka=pe.data)==null?void 0:ka.costs.immediate.amountDue)??0,zc=((Et=pe.data)==null?void 0:Et.costs.nextCycle.total)??0;await Sa.mutateAsync({planId:a,interval:u}),l.capture(Te.PLAN_UPGRADED,{plan_name:Fe,interval:u,amount_paid:Uc,next_cycle_amount:zc,previous_plan_name:(Lt=ce==null?void 0:ce.find(ra=>ra.id===(M==null?void 0:M.plan.current.planId)))==null?void 0:Lt.name.replace("Plan - ",""),previous_interval:M==null?void 0:M.plan.current.interval}),i({type:"success",message:c("checkoutSuccessToast")}),t()}catch(Oe){const He=Oe instanceof Error?Oe:void 0;$(Vs(He,c("checkoutGenericError"))),Pe((He==null?void 0:He.type)??"exception",Oe instanceof Error?Oe.message:void 0),i({type:"error",message:c("checkoutErrorToast")})}finally{U(!1)}};return o.jsxs("div",{className:"bpb-checkout__columns",children:[o.jsxs("div",{className:"bpb-checkout__main",children:[ge&&o.jsx(Xl,{plan:ge,interval:u,onChange:Qa}),s&&o.jsxs("section",{className:"bpb-checkout__section",children:[o.jsx("h3",{className:"bpb-checkout__section-title",children:c("checkoutContactInfo")}),o.jsxs("div",{className:"bpb-checkout__static-field",children:[o.jsx("span",{className:"bpb-checkout__static-label",children:c("checkoutEmailLabel")}),o.jsx("span",{children:s})]})]}),o.jsx(ed,{stepNumber:1,savedCard:ee,isDark:d,tab:y??"new",onTabChange:Xa,onPaymentChange:et,error:Z.payment}),h==="address"&&o.jsx(ad,{stepNumber:2,existingAddress:te,customerName:(H==null?void 0:H.name)??null,isLoading:G,editing:v,onEdit:()=>w(!0),onCancelEdit:te?()=>w(!1):void 0,onReady:()=>A(!0),onCountryChange:F,country:N,isBusiness:C,onIsBusinessChange:P,businessName:x,onBusinessNameChange:O,taxType:W,onTaxTypeChange:j,taxValue:Q,onTaxValueChange:K,addressError:Z.address,taxIdError:Z.taxId})]}),o.jsx("div",{className:"bpb-checkout__aside",children:o.jsx(Hl,{plan:ge,interval:u,preview:pe.data,isLoadingPreview:pe.isLoading,isPreviewError:pe.isError,canSubscribe:_n,isSubmitting:B,submitError:Z.general??null,onSubscribe:()=>void yr()})})]})},Ws=({open:a,onOpenChange:e,planId:t,interval:n,onBack:r,onSuccess:s})=>{const{stripePromise:i,isDark:l,locale:d,isOutdatedBilling:c}=ne(),{t:u}=be(),{data:p}=Me(),h=I.useMemo(()=>({appearance:rr(l),locale:or(d)}),[l,d]);return p===!1?null:c?o.jsx(Le,{open:a,onOpenChange:e,size:"md","aria-label":u("checkoutTitle"),className:"bpb-scope",children:o.jsx(ba,{})}):o.jsx(Le,{open:a,onOpenChange:e,size:"xl","aria-label":u("checkoutTitle"),className:"bpb-scope",children:o.jsxs("div",{className:"bpb-checkout",children:[o.jsxs("header",{className:"bpb-checkout__header",children:[r&&o.jsx("button",{type:"button",className:"bpb-checkout__back","aria-label":u("checkoutBackLabel"),onClick:r,children:o.jsx(Yn,{size:18})}),o.jsx("h2",{className:"bpb-checkout__title",children:u("checkoutTitle")})]}),o.jsx(Be.Elements,{stripe:i,options:h,children:o.jsx(td,{planId:t,initialInterval:n,onSuccess:()=>{e(!1),s==null||s()}})})]})})},Gs=({value:a,onChange:e,min:t=0,max:n,step:r=1,className:s,...i})=>{const l=()=>e(Math.max(t,a-r)),d=()=>e(n===void 0?a+r:Math.min(n,a+r));return o.jsxs("div",{className:q("bpb-stepper",s),children:[o.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Decrease ${i["aria-label"]}`,onClick:l,disabled:a<=t,children:o.jsx(Ms,{size:14})}),o.jsx("span",{className:"bpb-stepper__value","aria-label":i["aria-label"],children:a}),o.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Increase ${i["aria-label"]}`,onClick:d,disabled:n!==void 0&&a>=n,children:o.jsx(Jn,{size:14})})]})},Ks=({title:a,body:e,ctaLabel:t,onUpgrade:n,onClose:r})=>{const{t:s}=be();return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-upgrade-gate",children:[o.jsx(Ml,{size:28,className:"bpb-upgrade-gate__icon"}),o.jsxs("div",{className:"bpb-upgrade-gate__text",children:[o.jsx("p",{className:"bpb-upgrade-gate__title",children:a}),o.jsx("p",{className:"bpb-upgrade-gate__body",children:e})]})]}),o.jsx("div",{className:"bpb-upgrade-gate__actions",children:n?o.jsx(Se,{variant:"primary",className:"bpb-upgrade-gate__cta",onClick:n,children:t}):o.jsx(Se,{variant:"outline",onClick:r,children:s("close")})})]})},nd=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=ne(),{t:s}=be(),{data:i}=Me();return i===!1?null:r?o.jsx(Le,{open:a,onOpenChange:e,size:"md","aria-label":s("addonsDialogTitle"),className:"bpb-scope",children:o.jsx(ba,{})}):o.jsx(Le,{open:a,onOpenChange:e,size:"md","aria-label":s("addonsDialogTitle"),className:"bpb-scope",children:o.jsx(rd,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},rd=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var E,ie,re,ce;const{toast:n,locale:r}=ne(),{t:s}=be(),{data:i}=ze(),{data:l}=pa(),{data:d}=qe(),{data:c}=On(),u=Yr(),[p,h]=I.useState(null),m=d==null?void 0:d.find(M=>M.id===(i==null?void 0:i.plan.current.planId)),y=(i==null?void 0:i.plan.current.interval)??"month",f=(c==null?void 0:c.addonsReadonly)??!1,_=i==null?void 0:i.plan.current.periodEnd,S=_&&!nn(_)?Qe(_,r):null,v=I.useMemo(()=>{var Y;if(!i||!l)return null;const M={};for(const J of l){const H=i.addons[J.id];M[J.id]=((Y=H==null?void 0:H.next)==null?void 0:Y.quantity)??(H==null?void 0:H.current.quantity)??0}return M},[i,l]),w=p??v,T=I.useMemo(()=>!l||!m?[]:l.flatMap(M=>{const Y=Rt(M,m,y);return Y?[{addon:M,price:Y}]:[]}),[l,m,y]),A=!!w&&!!v&&Object.keys(w).some(M=>w[M]!==v[M]),N=T.reduce((M,{addon:Y,price:J})=>M+((w==null?void 0:w[Y.id])??0)*J.amount,0),F=I.useMemo(()=>m&&w?{plan:{planId:m.id,interval:y},addons:w}:null,[m,y,w]),C=Ln(F??{plan:{planId:"",interval:y}},{enabled:!!F&&A}),P=((E=m==null?void 0:m.prices[y])==null?void 0:E.currency)??"usd",x=((ie=C.data)==null?void 0:ie.costs.immediate.amountDue)??0,O=(re=C.data)==null?void 0:re.nextBillingDate,W=O&&!nn(O)?Qe(O,r):null,j=((ce=m==null?void 0:m.prices[y])==null?void 0:ce.amount)??0,Q=j+N,K=m&&w?Cs(m,l,w):[],B=(M,Y)=>Y==="bytes"?Pa(M):fe(M),U=(M,Y)=>{const J=l==null?void 0:l.find(ge=>ge.id===M),H=J==null?void 0:J.increments;if(!H||Y<=0)return null;const G=H.conversation_sessions??0;if(G>0)return s("addonsConvos",{n:fe(G*Y)});const se=H.file_storage??0;return se>0?Pa(se*Y):null},Z=()=>{w&&u.mutate({addons:w},{onSuccess:()=>{n({type:"success",message:s("addonsUpdateSuccess")}),a(!1),e==null||e()},onError:()=>n({type:"error",message:s("addonsUpdateError")})})},$=!i||!l||!d;return o.jsxs("div",{className:"bpb-manage-addons",children:[o.jsx("h2",{className:"bpb-manage-addons__title",children:s("addonsDialogTitle")}),($||T.length>0)&&o.jsx("p",{className:"bpb-manage-addons__subtitle",children:m?s("addonsSubtitleWithPlan",{planName:_e(m.name)}):s("addonsSubtitleGeneric")}),$?o.jsxs("div",{className:"bpb-manage-addons__loading","aria-busy":"true",children:[o.jsx(he,{height:56}),o.jsx(he,{height:56})]}):T.length===0?o.jsx(Ks,{title:s("addonsRequirePaidPlanTitle"),body:s("addonsRequirePaidPlanBody"),ctaLabel:s("addonsUpgradeCta"),onUpgrade:t?()=>{a(!1),t()}:void 0,onClose:()=>a(!1)}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"bpb-addons",children:T.map(({addon:M,price:Y})=>{var ge;const J=((ge=i==null?void 0:i.addons[M.id])==null?void 0:ge.current.quantity)??0,H=(w==null?void 0:w[M.id])??0,G=H!==J?H===0?S?s("addonRemovedOnDate",{activeNow:J,date:S}):s("addonRemovedNextCycle",{activeNow:J}):S?s("addonChangedOnDate",{activeNow:J,pending:H,date:S}):s("addonChangedNextCycle",{activeNow:J,pending:H}):J>0?s("addonActiveOnly",{count:J}):null,se=U(M.id,H);return o.jsxs("div",{className:"bpb-addon-row",children:[o.jsxs("div",{className:"bpb-addon-row__info",children:[o.jsx("span",{className:"bpb-addon-row__name",children:ga[M.id]?s(ga[M.id]):ot(M.name)}),o.jsx("span",{className:"bpb-addon-row__description",children:_s[M.id]?s(_s[M.id]):M.description}),o.jsxs("span",{className:"bpb-addon-row__price",children:[le(Y.amount,Y.currency)," ",s("addonsEach")]}),G&&o.jsx("span",{className:q("bpb-addon-row__status",H!==J&&"bpb-addon-row__status--changed"),children:G})]}),o.jsxs("div",{className:"bpb-addon-row__control",children:[se&&o.jsx("span",{className:"bpb-addon-row__grant",children:se}),o.jsx(Gs,{"aria-label":`${ga[M.id]?s(ga[M.id]):ot(M.name)} quantity`,value:H,onChange:ee=>h({...w??{},[M.id]:ee})})]})]},M.id)})}),K.length>0&&o.jsxs("div",{className:"bpb-manage-addons__limits",children:[o.jsx("p",{className:"bpb-manage-addons__limits-title",children:s("addonsNewLimits")}),K.map(M=>{const Y={conversation_sessions:"resourceConversations",table_rows:"resourceTableRows",vector_db_storage:"resourceVectorDb",file_storage:"resourceFileStorage"}[M.key];return o.jsxs("div",{className:"bpb-manage-addons__limit-row",children:[o.jsx("span",{className:"bpb-manage-addons__limit-label",children:Y?s(Y):M.label}),o.jsxs("span",{className:"bpb-manage-addons__limit-values",children:[o.jsx("span",{className:"bpb-manage-addons__limit-now",children:B(M.now,M.unit)}),o.jsx("span",{className:"bpb-manage-addons__limit-arrow","aria-hidden":!0,children:"→"}),o.jsx("span",{className:"bpb-manage-addons__limit-next",children:B(M.next,M.unit)})]})]},M.key)})]}),o.jsxs("div",{className:"bpb-manage-addons__totals",children:[o.jsxs("div",{className:"bpb-manage-addons__line",children:[o.jsx("span",{children:m?s("addonsPlanLine",{planName:_e(m.name)}):s("addonsGenericPlan")}),o.jsx("span",{children:le(j,P)})]}),T.map(({addon:M,price:Y})=>{const J=(w==null?void 0:w[M.id])??0;return J<=0?null:o.jsxs("div",{className:"bpb-manage-addons__line",children:[o.jsxs("span",{children:[J,"×"," ",ga[M.id]?s(ga[M.id]):ot(M.name)]}),o.jsx("span",{children:le(Y.amount*J,P)})]},M.id)}),o.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--total",children:[o.jsx("span",{children:s(y==="year"?"addonsTotalYearly":"addonsTotalMonthly")}),o.jsxs("span",{children:[le(Q,P),s(y==="year"?"perYear":"perMonth")]})]}),A&&o.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--due",children:[o.jsx("span",{children:s("addonsDueToday")}),o.jsx("span",{children:C.isLoading?"…":C.isError?"—":le(Math.max(x,0),P)})]})]}),A&&!C.isError&&o.jsxs("p",{className:"bpb-manage-addons__note",children:[x>0?s("addonsChargedNow",{amount:le(x,P)}):s("addonsNoChargeToday"),W?s("addonsRenewalWithDate",{date:W,amount:le(N,P),interval:s(y==="year"?"perYear":"perMonth")}):s("addonsRenewalNoDate",{amount:le(N,P),interval:s(y==="year"?"perYear":"perMonth")})]}),f&&o.jsx("p",{className:"bpb-manage-addons__note",role:"alert",children:s("addonsReadonlyNote")}),o.jsxs("div",{className:"bpb-manage-addons__actions",children:[o.jsx(Se,{variant:"outline",onClick:()=>a(!1),disabled:u.isPending,children:s("cancel")}),o.jsx(Se,{variant:"primary",disabled:!A||f,loading:u.isPending,onClick:Z,children:s("addonsUpdateSubscription")})]})]})]})},sd=({open:a,onOpenChange:e})=>{const{isOutdatedBilling:t}=ne(),{t:n}=be(),{data:r}=Me();return r===!1?null:t?o.jsx(Le,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:o.jsx(ba,{})}):o.jsx(Le,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:o.jsx(od,{open:a})})},od=({open:a})=>{const{locale:e,analytics:t}=ne(),{t:n}=be(),{data:r,isLoading:s,isError:i}=Kr({enabled:a}),l=(r==null?void 0:r.invoices)??[],d={paid:n("invoiceStatusPaid"),open:n("invoiceStatusDue"),draft:n("invoiceStatusDraft"),uncollectible:n("invoiceStatusUnpaid"),void:n("invoiceStatusVoid")};return o.jsxs("div",{className:"bpb-invoices",children:[o.jsx("h2",{className:"bpb-invoices__title",children:n("invoicesTitle")}),s?o.jsxs("div",{className:"bpb-invoices__loading","aria-busy":"true",children:[o.jsx(he,{height:52}),o.jsx(he,{height:52}),o.jsx(he,{height:52})]}):i?o.jsx("p",{className:"bpb-invoices__empty",role:"alert",children:n("invoicesLoadError")}):l.length===0?o.jsx("p",{className:"bpb-invoices__empty",children:n("invoicesEmpty")}):o.jsx("ul",{className:"bpb-invoices__list",children:l.map(c=>o.jsxs("li",{className:"bpb-invoices__row",children:[o.jsxs("div",{className:"bpb-invoices__row-main",children:[o.jsx("span",{className:"bpb-invoices__date",children:Qe(c.createdAt,e)}),o.jsx("span",{className:`bpb-invoices__status bpb-invoices__status--${c.status}`,children:d[c.status]})]}),o.jsxs("div",{className:"bpb-invoices__row-end",children:[o.jsx("span",{className:"bpb-invoices__amount",children:le(c.amount,c.currency)}),c.pdfUrl?o.jsx("a",{className:"bpb-invoices__download",href:c.pdfUrl,target:"_blank",rel:"noopener noreferrer","aria-label":n("invoicesDownloadLabel",{date:Qe(c.createdAt,e)}),onClick:()=>t.capture(Te.INVOICE_DOWNLOADED,{status:c.status}),children:o.jsx(Xn,{size:16})}):o.jsx("span",{className:"bpb-invoices__download bpb-invoices__download--disabled","aria-hidden":!0,children:o.jsx(Xn,{size:16})})]})]},c.id))})]})},id=({open:a,onOpenChange:e,onSuccess:t})=>{var y;const{stripePromise:n,isDark:r,locale:s,isOutdatedBilling:i}=ne(),{t:l}=be(),{data:d}=Me(),c=Un(),u=(y=c.data)==null?void 0:y.clientSecret,{mutate:p,reset:h}=c;I.useEffect(()=>{a&&!i&&d?p():h()},[a,i,d,p,h]);const m=I.useMemo(()=>u?{clientSecret:u,appearance:rr(r),locale:or(s)}:null,[u,r,s]);return d===!1?null:i?o.jsx(Le,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:o.jsx(ba,{})}):o.jsx(Le,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:o.jsxs("div",{className:"bpb-payment-dialog",children:[o.jsx("h2",{className:"bpb-payment-dialog__title",children:l("paymentDialogTitle")}),c.isError?o.jsxs("div",{className:"bpb-payment-dialog__error",children:[o.jsx("p",{children:l("paymentSessionError")}),o.jsx(Se,{variant:"outline",onClick:()=>p(),children:l("tryAgain")})]}):!m||!u?o.jsxs("div",{className:"bpb-payment-dialog__loading","aria-busy":"true",children:[o.jsx(he,{height:48}),o.jsx(he,{height:120})]}):o.jsx(Be.Elements,{stripe:n,options:m,children:o.jsx(ld,{clientSecret:u,isDark:r,onSuccess:t})})]})})},ld=({clientSecret:a,isDark:e,onSuccess:t})=>{var ee;const n=Be.useStripe(),r=Be.useElements(),{toast:s,analytics:i}=ne(),{t:l}=be(),{data:d,isLoading:c}=Fn(),{data:u,isLoading:p}=Mn(),h=zn(),m=Vn(),y=((ee=d==null?void 0:d.paymentMethod)==null?void 0:ee.card)??null,f=(u==null?void 0:u.address)??null,_=(u==null?void 0:u.taxIds)??[],[S,v]=I.useState(!1),[w,T]=I.useState(!1),[A,N]=I.useState(!1),[F,C]=I.useState(!1),[P,x]=I.useState(null),[O,W]=I.useState(!1),[j,Q]=I.useState(!1),[K,B]=I.useState({}),[U,Z]=I.useState(f==null?void 0:f.country),[$,E]=I.useState(_.length>0),[ie,re]=I.useState(null),ce=ie??_.map(te=>({type:te.type,value:te.value})),M=Zs(U),Y=S||!y,J=(te,Ne)=>re(ce.map((pe,xe)=>xe===te?{...pe,...Ne}:pe)),H=()=>{var te;return re([...ce,{type:((te=M[0])==null?void 0:te.type)??"",value:""}])},G=te=>re(ce.filter((Ne,pe)=>pe!==te)),se=async()=>{if(!n||!r)return;const te=r.getElement(Be.CardElement);if(te){C(!0),x(null);try{const{error:Ne,setupIntent:pe}=await n.confirmCardSetup(a,{payment_method:{card:te}});if(Ne){x(Ne.message??l("paymentCardSaveError"));return}if(!(pe!=null&&pe.payment_method)||typeof pe.payment_method!="string"){x(l("paymentMethodMissing"));return}await h.mutateAsync({paymentMethodId:pe.payment_method}),i.capture(Te.PAYMENT_METHOD_UPDATED),s({type:"success",message:l("paymentCardUpdated")}),v(!1),t==null||t()}catch(Ne){x(Ne instanceof Error&&Ne.message?Ne.message:l("paymentCardGenericError"))}finally{C(!1)}}},ge=async()=>{if(!r)return;const te=r.getElement("address");if(!te)return;const{complete:Ne,value:pe}=await te.getValue();if(!Ne||!pe.address){B({address:l("paymentAddressIncomplete")});return}Q(!0),B({});try{const{address:xe,name:ca}=pe,Sa=ce.filter(Fe=>!!Fe.type&&Fe.value.trim()!=="").map(Fe=>({type:Fe.type,value:Fe.value.trim()}));await m.mutateAsync({address:{lineOne:xe.line1??"",lineTwo:xe.line2??void 0,city:xe.city??"",state:xe.state??void 0,postalCode:xe.postal_code??"",country:xe.country??""},name:(ca==null?void 0:ca.trim())||void 0,taxIds:Sa}),i.capture(Te.BILLING_ADDRESS_UPDATED),s({type:"success",message:l("paymentDetailsUpdated")}),t==null||t()}catch(xe){const ca=xe instanceof Error?xe:void 0,Sa=Vs(ca,l("paymentAddressError"));B(Sa),Sa.taxId&&E(!0),s({type:"error",message:l("paymentDetailsUpdateError")})}finally{Q(!1)}};return o.jsxs("div",{className:"bpb-payment-dialog__sections",children:[o.jsxs("section",{className:"bpb-payment-dialog__section",children:[o.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentMethodSection")}),c?o.jsx(he,{height:56}):Y?o.jsxs("div",{className:"bpb-payment-element",children:[!w&&o.jsx(he,{height:48}),o.jsx("div",{className:w?"bpb-card-element":"bpb-payment-element--hidden",children:o.jsx(Be.CardElement,{options:{style:sr(e),hidePostalCode:!0},onReady:()=>T(!0),onChange:te=>N(te.complete)})}),P&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:P}),o.jsxs("div",{className:"bpb-payment-dialog__section-actions",children:[y&&o.jsx(Se,{variant:"ghost",onClick:()=>v(!1),disabled:F,children:l("cancel")}),o.jsx(Se,{variant:"primary",disabled:!A,loading:F,onClick:se,children:l("paymentSaveCard")})]})]}):o.jsxs("div",{className:"bpb-saved-card",children:[o.jsx(er,{brand:y.brand}),o.jsxs("span",{className:"bpb-saved-card__number",children:[o.jsx("span",{className:"bpb-saved-card__brand",children:y.brand})," •••• ",y.lastFour]}),o.jsxs("span",{className:"bpb-saved-card__exp",children:[String(y.expMonth).padStart(2,"0"),"/",String(y.expYear).slice(-2)]}),o.jsx("button",{type:"button",className:"bpb-link-button",onClick:()=>v(!0),children:l("paymentReplace")})]})]}),o.jsxs("section",{className:"bpb-payment-dialog__section",children:[o.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentBillingAddressSection")}),p?o.jsx(he,{height:72}):o.jsxs("div",{className:"bpb-payment-element",children:[!O&&o.jsx(he,{height:120}),o.jsx("div",{className:O?void 0:"bpb-payment-element--hidden",children:o.jsx(Be.AddressElement,{options:{mode:"billing",display:{name:"full"},defaultValues:f?{name:(u==null?void 0:u.name)??void 0,address:{line1:f.lineOne,line2:f.lineTwo,city:f.city,state:f.state,postal_code:f.postalCode,country:f.country}}:void 0},onReady:()=>W(!0),onChange:te=>Z(te.value.address.country||void 0)})}),K.address&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:K.address}),o.jsxs("div",{className:"bpb-tax-section",children:[o.jsxs("button",{type:"button",className:"bpb-tax-toggle","aria-expanded":$,onClick:()=>E(te=>!te),children:[o.jsx(Da,{size:16,className:q("bpb-tax-toggle__chevron",$&&"bpb-tax-toggle__chevron--open")}),l("paymentTaxIds"),_.length>0&&o.jsx("span",{className:"bpb-tax-toggle__count",children:_.length})]}),$&&o.jsxs("div",{className:"bpb-tax",children:[ce.length===0&&o.jsx("p",{className:"bpb-tax__empty",children:l("paymentTaxEmpty")}),ce.map((te,Ne)=>o.jsxs("div",{className:"bpb-tax__row",children:[o.jsxs(ir,{"aria-label":l("paymentTaxIdType"),value:te.type,onChange:pe=>J(Ne,{type:pe.target.value}),children:[o.jsx("option",{value:"",children:l("paymentTaxSelectType")}),M.map(pe=>o.jsx("option",{value:pe.type,children:pe.label},pe.type)),te.type&&!M.some(pe=>pe.type===te.type)&&o.jsx("option",{value:te.type,children:te.type})]}),o.jsx(rn,{placeholder:l("paymentTaxIdNumber"),value:te.value,onChange:pe=>J(Ne,{value:pe.target.value})}),o.jsx("button",{type:"button",className:"bpb-tax__remove","aria-label":l("paymentTaxRemove"),onClick:()=>G(Ne),children:o.jsx(en,{size:14})})]},Ne)),o.jsx("button",{type:"button",className:"bpb-link-button bpb-tax__add",onClick:H,children:l("paymentTaxAdd")}),K.taxId&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:K.taxId})]})]}),K.general&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:K.general}),o.jsx("div",{className:"bpb-payment-dialog__section-actions",children:o.jsx(Se,{variant:"primary",loading:j,onClick:ge,children:l("paymentSaveBillingDetails")})})]})]})]})},Rs=(a,e,t)=>`bpb-dismissed:${a}:${e}:${t}`,$s=()=>new Date().toLocaleDateString("en-CA");function Hs(a,e,t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(Rs(a,e,t))===$s()}catch{return!1}}function Ys(a,e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(Rs(a,e,t),$s())}catch{}}var Js={},sn={};Object.defineProperty(sn,"__esModule",{value:!0}),sn.BOT_USE_CASES=void 0,sn.BOT_USE_CASES={CUSTOMER_SUPPORT:"customer-support",BRAND_ASSISTANT:"brand-assistant",PRODUCT_RECOMMENDATION:"product-recommendation",OTHER:"other"};var on={};Object.defineProperty(on,"__esModule",{value:!0}),on.limitConfigs=void 0,on.limitConfigs={bot_configuration_bytes:{value:20480,unit:"bytes"},bot_installed_integrations_count:{value:30,unit:"count"},bot_installed_plugins_count:{value:30,unit:"count"},bot_integration_configuration_bytes:{value:20480,unit:"bytes"},bot_recurring_event_count:{value:50,unit:"count"},bot_recurring_event_payload_bytes:{value:131072,unit:"bytes"},event_definition_count:{value:20,unit:"count"},integration_channel_count:{value:10,unit:"count"},integration_channel_message_type_count:{value:20,unit:"count"},integration_identifier_count:{value:50,unit:"count"},integration_version_count:{value:200,unit:"count"},issue_event_item_payload_bytes:{value:131072,unit:"bytes"},message_payload_bytes:{value:131072,unit:"bytes"},schema_bytes:{value:102400,unit:"bytes"},state_definition_count:{value:20,unit:"count"},state_item_payload_bytes:{value:131072,unit:"bytes"},tag_definition_count:{value:50,unit:"count"},bot_integration_secret_count:{value:25,unit:"count"},files_api_query_bytes:{value:2048,unit:"bytes"},code_payload_bytes:{value:52428800,unit:"bytes"},entity_custom_properties_count:{value:50,unit:"count"}};var Za={};Object.defineProperty(Za,"__esModule",{value:!0}),Za.objectToPrefixMap=Za.prefixToObjectMap=void 0,Za.prefixToObjectMap={accnt:"account",accntpf:"accountPreference",action:"action",activty:"activity",anlytic:"analytics",audit:"audit",bak:"botApiKey",bot:"bot",card:"card",cfg:"configuration",channel:"channel",conv:"conversation",devbot:"devBot",devint:"devIntegration",evt:"event",file:"file",flow:"flow",iak:"integrationApiKey",int:"integration",iface:"interface",ifver:"interfaceVersion",intver:"integrationVersion",iss:"issue",issevt:"issueEvent",kb:"knowledgeBase",limit:"limit",media:"media",msg:"message",node:"node",notif:"notification",pat:"personalAccessToken",plugin:"plugin",plugver:"pluginVersion",quota:"quota",recevt:"recurringEvent",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",archrg:"autoRechargeSetting",archtx:"autoRechargeTransaction",crgrant:"creditGrant",job:"job",pcrgrant:"pendingCreditGrant",promo:"promoCode",smgevt:"smaugEvent",usage:"usage",user:"user",webhook:"webhook",wkspace:"workspace",wksadd:"workspaceAddon",wksqtaadd:"workspaceQuotaAddition",wksplan:"workspacePlan",wrkflow:"workflow",wkspacepf:"workspacePreference",trial:"trial",evlrun:"evalRun",evlent:"evalEntry",evlres:"evalResult"},Za.objectToPrefixMap={account:"accnt",accountPreference:"accntpf",action:"action",activity:"activty",analytics:"anlytic",audit:"audit",bot:"bot",botApiKey:"bak",card:"card",channel:"channel",configuration:"cfg",conversation:"conv",devBot:"devbot",devIntegration:"devint",event:"evt",file:"file",flow:"flow",integration:"int",integrationApiKey:"iak",integrationVersion:"intver",interface:"iface",interfaceVersion:"ifver",issue:"iss",issueEvent:"issevt",knowledgeBase:"kb",limit:"limit",media:"media",message:"msg",node:"node",notification:"notif",personalAccessToken:"pat",plugin:"plugin",pluginVersion:"plugver",quota:"quota",recurringEvent:"recevt",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",autoRechargeSetting:"archrg",autoRechargeTransaction:"archtx",creditGrant:"crgrant",job:"job",pendingCreditGrant:"pcrgrant",promoCode:"promo",smaugEvent:"smgevt",usage:"usage",user:"user",webhook:"webhook",workflow:"wrkflow",workspace:"wkspace",workspaceAddon:"wksadd",workspaceQuotaAddition:"wksqtaadd",workspacePlan:"wksplan",workspacePreference:"wkspacepf",trial:"trial",evalRun:"evlrun",evalEntry:"evlent",evalResult:"evlres"};var Qs={},fa={};Object.defineProperty(fa,"__esModule",{value:!0}),fa.quotaConfigsV3=fa.quotaConfigs=fa.quotaTypes=void 0,fa.quotaTypes=["invocation_timeout","invocation_calls","storage_count","bot_count","knowledgebase_vector_storage","workspace_ratelimit","table_row_count","workspace_member_count","integrations_owned_count","ai_spend","openai_spend","bing_search_spend","always_alive","indexed_file_count","file_max_size_bytes"],fa.quotaConfigs={invocation_timeout:{name:"Invocation Timeout",description:"Maximum time in milliseconds a bot can run before timing out.",default:6e4,kind:"workspace",category:"timeout",trackUsagePerBot:!1},storage_count:{name:"Storage Count",description:"Maximum number of storage bytes that can be stored.",default:5e8,kind:"workspace",category:"count",trackUsagePerBot:!0},bot_count:{name:"Bot Count",description:"Maximum number of bots that can be created.",default:5,kind:"workspace",category:"count",trackUsagePerBot:!1},workspace_member_count:{name:"Workspace Member Count",description:"Maximum number of members that can be added to a workspace.",default:3,kind:"workspace",category:"count",trackUsagePerBot:!1},knowledgebase_vector_storage:{name:"Knowledgebase Vector Storage",description:"Maximum size of knowledge base documents",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},table_row_count:{name:"Table Row Count",description:"Maximum number of rows that can be stored in a table.",default:5e3,kind:"workspace",category:"count",trackUsagePerBot:!0},invocation_calls:{name:"Messages",description:"Maximum number of messages sent to a bot in a month.",default:2e3,kind:"workspace",category:"calls",trackUsagePerBot:!0},workspace_ratelimit:{name:"Workspace Ratelimit",description:"Maximum number of API calls per second for a workspace.",default:100,kind:"workspace",category:"ratelimit",trackUsagePerBot:!1},integrations_owned_count:{name:"Owned Integrations Count",description:"Maximum number of integrations that can be created.",default:20,kind:"workspace",category:"count",trackUsagePerBot:!1},ai_spend:{name:"AI Spend",description:"Maximum amount of AI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0},openai_spend:{name:"OpenAI Spend",description:"Maximum amount of OpenAI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},bing_search_spend:{name:"Bing Search Spend",description:"Maximum amount of Bing Search spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},always_alive:{name:"Always Alive",description:"Maximum number of bots that can be in always alive mode.",default:0,kind:"workspace",category:"count",trackUsagePerBot:!1},indexed_file_count:{name:"Indexed File Count",description:"Maximum number of files that can be indexed.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},file_max_size_bytes:{name:"Max File Size",description:"Maximum size of a file in bytes.",default:1e8,kind:"workspace",category:"limit",trackUsagePerBot:!0}},fa.quotaConfigsV3={invocation_timeout:{name:"Invocation Timeout",description:"Maximum time in milliseconds a bot can run before timing out.",default:6e4,kind:"workspace",category:"timeout",trackUsagePerBot:!1},storage_count:{name:"Storage Count",description:"Maximum number of storage bytes that can be stored.",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},bot_count:{name:"Bot Count",description:"Maximum number of bots that can be created.",default:1,kind:"workspace",category:"count",trackUsagePerBot:!1},workspace_member_count:{name:"Workspace Member Count",description:"Maximum number of members that can be added to a workspace.",default:1,kind:"workspace",category:"count",trackUsagePerBot:!1},knowledgebase_vector_storage:{name:"Knowledgebase Vector Storage",description:"Maximum size of knowledge base documents",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},table_row_count:{name:"Table Row Count",description:"Maximum number of rows that can be stored in a table.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},invocation_calls:{name:"Messages",description:"Maximum number of messages sent to a bot in a month.",default:500,kind:"workspace",category:"calls",trackUsagePerBot:!0},workspace_ratelimit:{name:"Workspace Ratelimit",description:"Maximum number of API calls per second for a workspace.",default:100,kind:"workspace",category:"ratelimit",trackUsagePerBot:!1},integrations_owned_count:{name:"Owned Integrations Count",description:"Maximum number of integrations that can be created.",default:20,kind:"workspace",category:"count",trackUsagePerBot:!1},ai_spend:{name:"AI Spend",description:"Maximum amount of AI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0},openai_spend:{name:"OpenAI Spend",description:"Maximum amount of OpenAI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},bing_search_spend:{name:"Bing Search Spend",description:"Maximum amount of Bing Search spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},always_alive:{name:"Always Alive",description:"Maximum number of bots that can be in always alive mode.",default:0,kind:"workspace",category:"count",trackUsagePerBot:!1},indexed_file_count:{name:"Indexed File Count",description:"Maximum number of files that can be indexed.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},file_max_size_bytes:{name:"Max File Size",description:"Maximum size of a file in bytes.",default:1e8,kind:"workspace",category:"limit",trackUsagePerBot:!0}};var Xe={};Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.billingFeatureDefs=Xe.BILLING_PLAN_IDS=Xe.ALLOWED_TRIAL_PLANS=Xe.ALLOWED_TRIAL_LENGTHS_IN_DAYS=void 0,Xe.ALLOWED_TRIAL_LENGTHS_IN_DAYS=7,Xe.ALLOWED_TRIAL_PLANS=["plus","team"],Xe.BILLING_PLAN_IDS=["community","plus","team","enterprise","managed"],Xe.billingFeatureDefs={human_in_the_loop:{name:"Human in the Loop"},ratelimit:{name:"Rate Limit"},incoming_messages_events:{name:"Incoming Messages/Events"},integration_spend:{name:"Integration Spend"},integration_subscription:{name:"Integration Subscription"},table_rows:{name:"Table Rows"},bot_count:{name:"Bot Count"},always_alive_count:{name:"Always Alive Count"},always_alive_concurrency:{name:"Always Alive Concurrency"},collaborator_count:{name:"Collaborator Count"},file_storage:{name:"File Storage"},vector_db_storage:{name:"Vector DB Storage"},saved_versions:{name:"Saved Versions"},indexed_file_count:{name:"Indexed File Count"}},function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,s,i){i===void 0&&(i=s);var l=Object.getOwnPropertyDescriptor(r,s);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(n,i,l)}:function(n,r,s,i){i===void 0&&(i=s),n[i]=r[s]}),t=me&&me.__exportStar||function(n,r){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&e(r,n,s)};Object.defineProperty(a,"__esModule",{value:!0}),t(fa,a),t(Xe,a)}(Qs);var ln={};Object.defineProperty(ln,"__esModule",{value:!0}),ln.Tags=void 0,ln.Tags={bot:{},conversation:{upstream:{description:"Used for HITL as a convention. The upstream conversation ID, ie. the conversation ID of the original conversation"},downstream:{description:"Used for HITL as a convention. The downstream conversation ID, ie. the conversation ID of conversation in HITL channel"}},message:{origin:{description:'The origin location of the message in the bot, eg. "workflow://[id]/node/[id]"'},iteration:{description:"The LLMz iteration ID of the message, for tracking and debugging purposes"}},event:{},workflow:{},user:{},file:{system:{type:"boolean",description:"System files are managed by Botpress and should not be modified"},purpose:{description:'The purpose of the file, eg. "swap"'},source:{description:'The source of the file, eg. "knowledge-base"'},kbId:{description:"The ID of the knowledge base"},favicon:{description:'The favicon URL to display for the file, eg. "https://example.com/favicon.ico"'},pageUrl:{description:'The original page URL of the file, eg. "https://example.com/page"'},integrationName:{description:"The name of the integration that created the file"},webchatInjectConfigVersion:{description:"The version of the webchat inject configuration (used by the dashboard)"}},table:{system:{type:"boolean",description:"System tables are managed by Botpress and should not be modified"},"x-studio-title":{description:"Overrides the table title in the Studio"},"x-studio-readonly":{type:"boolean",description:"Prevents the table from being modified by the user in the Studio"},"x-studio-icon":{description:'Overrides the table icon in the Studio. The value can be a lucide icon URL, eg. "lucide://atom"'},"x-studio-color":{description:"Overrides the table color in the Studio."},"x-studio-folder":{description:"Groups the table in a folder in the Studio"},"x-studio-deletable":{type:"boolean",description:"Prevents the table from being deleted by the user in the Studio"}}};var Ve={};Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.KNOWLEDGE_WORKFLOW=Ve.IDENTITY_WEBSITE_WORKFLOW=Ve.IDENTITY_TEXT_WORKFLOW=Ve.ONBOARDING_DEPLOY_WORKFLOW=Ve.WEBSITE_CRAWL_WORKFLOW=void 0,Ve.WEBSITE_CRAWL_WORKFLOW="website-crawl",Ve.ONBOARDING_DEPLOY_WORKFLOW="onboarding-deploy",Ve.IDENTITY_TEXT_WORKFLOW="identity-text-workflow",Ve.IDENTITY_WEBSITE_WORKFLOW="identity-website-workflow",Ve.KNOWLEDGE_WORKFLOW="knowledge-workflow";var dn={};Object.defineProperty(dn,"__esModule",{value:!0}),dn.CANCELLATION_REASONS=void 0,dn.CANCELLATION_REASONS=["too_expensive","not_using_enough","missing_feature","switched_tool","technical_issues","support_expectations","temporary_need"];var Xs={},lr={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.CREDIT_GRANT_BILLING_FEATURE_IDS=a.NON_RESETTING_BILLING_FEATURE_IDS=a.NON_ATOMIC_BILLING_FEATURE_IDS=a.ATOMIC_BILLING_FEATURE_IDS=a.BILLING_FEATURE_IDS=a.billingFeatureDefinitions=void 0,a.billingFeatureDefinitions=[{id:"incoming_messages_events",name:"Incoming Messages/Events",description:"Number of incoming messages and events processed per month",resetPeriod:"monthly",consistency:"eventual",dimensions:{botId:"Bot ID",type:"Message or Event type"}},{id:"integration_spend",name:"Integration Spend",description:"Credits spent on integrations (AI, third-party services)",resetPeriod:"monthly",consistency:"eventual",dimensions:{botId:"Bot ID",integrationName:"Integration name",integrationVersionId:"Integration version ID",actionName:"Action name"}},{id:"table_rows",name:"Table Rows",description:"Number of table rows that can be stored",resetPeriod:"never",consistency:"eventual"},{id:"bot_count",name:"Bot Count",description:"Number of bots that can be created",resetPeriod:"never",consistency:"atomic"},{id:"collaborator_count",name:"Collaborator Count",description:"Number of collaborators that can be added to workspace",resetPeriod:"never",consistency:"atomic"},{id:"file_storage",name:"File Storage",description:"Amount of file storage available",resetPeriod:"never",consistency:"eventual"},{id:"vector_db_storage",name:"Vector DB Storage",description:"Amount of vector database storage available",resetPeriod:"never",consistency:"eventual"},{id:"saved_versions",name:"Saved Versions",description:"Number of bot versions that can be saved",resetPeriod:"never",consistency:"atomic"},{id:"indexed_file_count",name:"Indexed File Count",description:"The number of indexed files in the files api",resetPeriod:"never",consistency:"eventual"},{id:"conversation_sessions",name:"Conversations",description:"Number of conversation sessions that can occur",resetPeriod:"monthly",consistency:"eventual"},{id:"ai_spend",name:"AI Spend",description:"Amount that is useable for AI in nano-dollars",resetPeriod:"monthly",consistency:"eventual",grantable:!0}],a.BILLING_FEATURE_IDS=a.billingFeatureDefinitions.map(e=>e.id),a.ATOMIC_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.consistency==="atomic").map(e=>e.id),a.NON_ATOMIC_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.consistency==="eventual").map(e=>e.id),a.NON_RESETTING_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.resetPeriod==="never").map(e=>e.id),a.CREDIT_GRANT_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.grantable).map(e=>e.id)})(lr);var eo={},ct={},cn={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.AI_SPEND_PER_CONVERSATION=a.MESSAGES_PER_CONVERSATION=a.YEAR_MONTHS=a.NANO_DOLLAR_PER_CENT=a.BIG_UNLIMITED=a.SMALL_UNLIMITED=a.MB=a.GB=a.FREE_PRICE=void 0,a.FREE_PRICE=-1,a.GB=1e9,a.MB=1e6,a.SMALL_UNLIMITED=5e3,a.BIG_UNLIMITED=5e6,a.NANO_DOLLAR_PER_CENT=1e7,a.YEAR_MONTHS=12,a.MESSAGES_PER_CONVERSATION=3e4,a.AI_SPEND_PER_CONVERSATION=10*a.NANO_DOLLAR_PER_CENT})(cn);var ut={},ao={},dr={},ya={},un={},ea={},pt={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.getParsedType=a.ZodParsedType=a.objectUtil=a.util=void 0;var e;(function(r){r.assertEqual=d=>{};function s(d){}r.assertIs=s;function i(d){throw new Error}r.assertNever=i,r.arrayToEnum=d=>{const c={};for(const u of d)c[u]=u;return c},r.getValidEnumValues=d=>{const c=r.objectKeys(d).filter(p=>typeof d[d[p]]!="number"),u={};for(const p of c)u[p]=d[p];return r.objectValues(u)},r.objectValues=d=>r.objectKeys(d).map(function(c){return d[c]}),r.objectKeys=typeof Object.keys=="function"?d=>Object.keys(d):d=>{const c=[];for(const u in d)Object.prototype.hasOwnProperty.call(d,u)&&c.push(u);return c},r.find=(d,c)=>{for(const u of d)if(c(u))return u},r.isInteger=typeof Number.isInteger=="function"?d=>Number.isInteger(d):d=>typeof d=="number"&&Number.isFinite(d)&&Math.floor(d)===d;function l(d,c=" | "){return d.map(u=>typeof u=="string"?`'${u}'`:u).join(c)}r.joinValues=l,r.jsonStringifyReplacer=(d,c)=>typeof c=="bigint"?c.toString():c})(e||(a.util=e={}));var t;(function(r){r.mergeShapes=(s,i)=>({...s,...i})})(t||(a.objectUtil=t={})),a.ZodParsedType=e.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]);const n=r=>{switch(typeof r){case"undefined":return a.ZodParsedType.undefined;case"string":return a.ZodParsedType.string;case"number":return Number.isNaN(r)?a.ZodParsedType.nan:a.ZodParsedType.number;case"boolean":return a.ZodParsedType.boolean;case"function":return a.ZodParsedType.function;case"bigint":return a.ZodParsedType.bigint;case"symbol":return a.ZodParsedType.symbol;case"object":return Array.isArray(r)?a.ZodParsedType.array:r===null?a.ZodParsedType.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?a.ZodParsedType.promise:typeof Map<"u"&&r instanceof Map?a.ZodParsedType.map:typeof Set<"u"&&r instanceof Set?a.ZodParsedType.set:typeof Date<"u"&&r instanceof Date?a.ZodParsedType.date:a.ZodParsedType.object;default:return a.ZodParsedType.unknown}};a.getParsedType=n})(pt),Object.defineProperty(ea,"__esModule",{value:!0}),ea.ZodError=ea.quotelessJson=ea.ZodIssueCode=void 0;const to=pt;ea.ZodIssueCode=to.util.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);const dd=a=>JSON.stringify(a,null,2).replace(/"([^"]+)":/g,"$1:");ea.quotelessJson=dd;class ht extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(s){return s.message},n={_errors:[]},r=s=>{for(const i of s.issues)if(i.code==="invalid_union")i.unionErrors.map(r);else if(i.code==="invalid_return_type")r(i.returnTypeError);else if(i.code==="invalid_arguments")r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let l=n,d=0;for(;d<i.path.length;){const c=i.path[d];d===i.path.length-1?(l[c]=l[c]||{_errors:[]},l[c]._errors.push(t(i))):l[c]=l[c]||{_errors:[]},l=l[c],d++}}};return r(this),n}static assert(e){if(!(e instanceof ht))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,to.util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const r of this.issues)if(r.path.length>0){const s=r.path[0];t[s]=t[s]||[],t[s].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}ea.ZodError=ht,ht.create=a=>new ht(a),Object.defineProperty(un,"__esModule",{value:!0});const De=ea,Ea=pt,cd=(a,e)=>{let t;switch(a.code){case De.ZodIssueCode.invalid_type:a.received===Ea.ZodParsedType.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case De.ZodIssueCode.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,Ea.util.jsonStringifyReplacer)}`;break;case De.ZodIssueCode.unrecognized_keys:t=`Unrecognized key(s) in object: ${Ea.util.joinValues(a.keys,", ")}`;break;case De.ZodIssueCode.invalid_union:t="Invalid input";break;case De.ZodIssueCode.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${Ea.util.joinValues(a.options)}`;break;case De.ZodIssueCode.invalid_enum_value:t=`Invalid enum value. Expected ${Ea.util.joinValues(a.options)}, received '${a.received}'`;break;case De.ZodIssueCode.invalid_arguments:t="Invalid function arguments";break;case De.ZodIssueCode.invalid_return_type:t="Invalid function return type";break;case De.ZodIssueCode.invalid_date:t="Invalid date";break;case De.ZodIssueCode.invalid_string:typeof a.validation=="object"?"includes"in a.validation?(t=`Invalid input: must include "${a.validation.includes}"`,typeof a.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${a.validation.position}`)):"startsWith"in a.validation?t=`Invalid input: must start with "${a.validation.startsWith}"`:"endsWith"in a.validation?t=`Invalid input: must end with "${a.validation.endsWith}"`:Ea.util.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case De.ZodIssueCode.too_small:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at least":"more than"} ${a.minimum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at least":"over"} ${a.minimum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="bigint"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(a.minimum))}`:t="Invalid input";break;case De.ZodIssueCode.too_big:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at most":"less than"} ${a.maximum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at most":"under"} ${a.maximum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="bigint"?t=`BigInt must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly":a.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(a.maximum))}`:t="Invalid input";break;case De.ZodIssueCode.custom:t="Invalid input";break;case De.ZodIssueCode.invalid_intersection_types:t="Intersection results could not be merged";break;case De.ZodIssueCode.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case De.ZodIssueCode.not_finite:t="Number must be finite";break;default:t=e.defaultError,Ea.util.assertNever(a)}return{message:t}};un.default=cd;var ud=me&&me.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(ya,"__esModule",{value:!0}),ya.defaultErrorMap=void 0,ya.setErrorMap=pd,ya.getErrorMap=hd;const no=ud(un);ya.defaultErrorMap=no.default;let ro=no.default;function pd(a){ro=a}function hd(){return ro}var cr={};(function(a){var e=me&&me.__importDefault||function(m){return m&&m.__esModule?m:{default:m}};Object.defineProperty(a,"__esModule",{value:!0}),a.isAsync=a.isValid=a.isDirty=a.isAborted=a.OK=a.DIRTY=a.INVALID=a.ParseStatus=a.EMPTY_PATH=a.makeIssue=void 0,a.addIssueToContext=s;const t=ya,n=e(un),r=m=>{const{data:y,path:f,errorMaps:_,issueData:S}=m,v=[...f,...S.path||[]],w={...S,path:v};if(S.message!==void 0)return{...S,path:v,message:S.message};let T="";const A=_.filter(N=>!!N).slice().reverse();for(const N of A)T=N(w,{data:y,defaultError:T}).message;return{...S,path:v,message:T}};a.makeIssue=r,a.EMPTY_PATH=[];function s(m,y){const f=(0,t.getErrorMap)(),_=(0,a.makeIssue)({issueData:y,data:m.data,path:m.path,errorMaps:[m.common.contextualErrorMap,m.schemaErrorMap,f,f===n.default?void 0:n.default].filter(S=>!!S)});m.common.issues.push(_)}class i{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(y,f){const _=[];for(const S of f){if(S.status==="aborted")return a.INVALID;S.status==="dirty"&&y.dirty(),_.push(S.value)}return{status:y.value,value:_}}static async mergeObjectAsync(y,f){const _=[];for(const S of f){const v=await S.key,w=await S.value;_.push({key:v,value:w})}return i.mergeObjectSync(y,_)}static mergeObjectSync(y,f){const _={};for(const S of f){const{key:v,value:w}=S;if(v.status==="aborted"||w.status==="aborted")return a.INVALID;v.status==="dirty"&&y.dirty(),w.status==="dirty"&&y.dirty(),v.value!=="__proto__"&&(typeof w.value<"u"||S.alwaysSet)&&(_[v.value]=w.value)}return{status:y.value,value:_}}}a.ParseStatus=i,a.INVALID=Object.freeze({status:"aborted"});const l=m=>({status:"dirty",value:m});a.DIRTY=l;const d=m=>({status:"valid",value:m});a.OK=d;const c=m=>m.status==="aborted";a.isAborted=c;const u=m=>m.status==="dirty";a.isDirty=u;const p=m=>m.status==="valid";a.isValid=p;const h=m=>typeof Promise<"u"&&m instanceof Promise;a.isAsync=h})(cr);var so={};Object.defineProperty(so,"__esModule",{value:!0});var g={},pn={};Object.defineProperty(pn,"__esModule",{value:!0}),pn.errorUtil=void 0;var oo;(function(a){a.errToObj=e=>typeof e=="string"?{message:e}:e||{},a.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(oo||(pn.errorUtil=oo={})),Object.defineProperty(g,"__esModule",{value:!0}),g.discriminatedUnion=g.date=g.boolean=g.bigint=g.array=g.any=g.coerce=g.ZodFirstPartyTypeKind=g.late=g.ZodSchema=g.Schema=g.ZodReadonly=g.ZodPipeline=g.ZodBranded=g.BRAND=g.ZodNaN=g.ZodCatch=g.ZodDefault=g.ZodNullable=g.ZodOptional=g.ZodTransformer=g.ZodEffects=g.ZodPromise=g.ZodNativeEnum=g.ZodEnum=g.ZodLiteral=g.ZodLazy=g.ZodFunction=g.ZodSet=g.ZodMap=g.ZodRecord=g.ZodTuple=g.ZodIntersection=g.ZodDiscriminatedUnion=g.ZodUnion=g.ZodObject=g.ZodArray=g.ZodVoid=g.ZodNever=g.ZodUnknown=g.ZodAny=g.ZodNull=g.ZodUndefined=g.ZodSymbol=g.ZodDate=g.ZodBoolean=g.ZodBigInt=g.ZodNumber=g.ZodString=g.ZodType=void 0,g.NEVER=g.void=g.unknown=g.union=g.undefined=g.tuple=g.transformer=g.symbol=g.string=g.strictObject=g.set=g.record=g.promise=g.preprocess=g.pipeline=g.ostring=g.optional=g.onumber=g.oboolean=g.object=g.number=g.nullable=g.null=g.never=g.nativeEnum=g.nan=g.map=g.literal=g.lazy=g.intersection=g.instanceof=g.function=g.enum=g.effect=void 0,g.datetimeRegex=uo,g.custom=mo;const D=ea,hn=ya,R=pn,b=cr,L=pt;class aa{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const io=(a,e)=>{if((0,b.isValid)(e))return{success:!0,data:e.value};if(!a.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new D.ZodError(a.common.issues);return this._error=t,this._error}}};function oe(a){if(!a)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:r}=a;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(i,l)=>{const{message:d}=a;return i.code==="invalid_enum_value"?{message:d??l.defaultError}:typeof l.data>"u"?{message:d??n??l.defaultError}:i.code!=="invalid_type"?{message:l.defaultError}:{message:d??t??l.defaultError}},description:r}}class de{get description(){return this._def.description}_getType(e){return(0,L.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,L.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new b.ParseStatus,ctx:{common:e.parent.common,data:e.data,parsedType:(0,L.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if((0,b.isAsync)(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){const n={common:{issues:[],async:(t==null?void 0:t.async)??!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,L.getParsedType)(e)},r=this._parseSync({data:e,path:n.path,parent:n});return io(n,r)}"~validate"(e){var n,r;const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,L.getParsedType)(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:t});return(0,b.isValid)(s)?{value:s.value}:{issues:t.common.issues}}catch(s){(r=(n=s==null?void 0:s.message)==null?void 0:n.toLowerCase())!=null&&r.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(s=>(0,b.isValid)(s)?{value:s.value}:{issues:t.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,L.getParsedType)(e)},r=this._parse({data:e,path:n.path,parent:n}),s=await((0,b.isAsync)(r)?r:Promise.resolve(r));return io(n,s)}refine(e,t){const n=r=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(r):t;return this._refinement((r,s)=>{const i=e(r),l=()=>s.addIssue({code:D.ZodIssueCode.custom,...n(r)});return typeof Promise<"u"&&i instanceof Promise?i.then(d=>d?!0:(l(),!1)):i?!0:(l(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t=="function"?t(n,r):t),!1))}_refinement(e){return new Re({schema:this,typeName:X.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return na.create(this,this._def)}nullable(){return Ca.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Ke.create(this)}promise(){return Ka.create(this,this._def)}or(e){return ft.create([this,e],this._def)}and(e){return yt.create(this,e,this._def)}transform(e){return new Re({...oe(this._def),schema:this,typeName:X.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new St({...oe(this._def),innerType:this,defaultValue:t,typeName:X.ZodDefault})}brand(){return new hr({typeName:X.ZodBranded,type:this,...oe(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new kt({...oe(this._def),innerType:this,catchValue:t,typeName:X.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return wt.create(this,e)}readonly(){return Tt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}g.ZodType=de,g.Schema=de,g.ZodSchema=de;const md=/^c[^\s-]{8,}$/i,gd=/^[0-9a-z]+$/,bd=/^[0-9A-HJKMNP-TV-Z]{26}$/i,fd=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,yd=/^[a-z0-9_-]{21}$/i,vd=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,_d=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Nd=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Cd="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let ur;const Sd=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,kd=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,wd=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Td=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Id=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ad=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,lo="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Pd=new RegExp(`^${lo}$`);function co(a){let e="[0-5]\\d";a.precision?e=`${e}\\.\\d{${a.precision}}`:a.precision==null&&(e=`${e}(\\.\\d+)?`);const t=a.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function xd(a){return new RegExp(`^${co(a)}$`)}function uo(a){let e=`${lo}T${co(a)}`;const t=[];return t.push(a.local?"Z?":"Z"),a.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function Dd(a,e){return!!((e==="v4"||!e)&&Sd.test(a)||(e==="v6"||!e)&&wd.test(a))}function Ed(a,e){if(!vd.test(a))return!1;try{const[t]=a.split(".");if(!t)return!1;const n=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),r=JSON.parse(atob(n));return!(typeof r!="object"||r===null||"typ"in r&&(r==null?void 0:r.typ)!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function Ld(a,e){return!!((e==="v4"||!e)&&kd.test(a)||(e==="v6"||!e)&&Td.test(a))}class Ge extends de{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==L.ZodParsedType.string){const s=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.string,received:s.parsedType}),b.INVALID}const n=new b.ParseStatus;let r;for(const s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){const i=e.data.length>s.value,l=e.data.length<s.value;(i||l)&&(r=this._getOrReturnCtx(e,r),i?(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):l&&(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")Nd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"email",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")ur||(ur=new RegExp(Cd,"u")),ur.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"emoji",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")fd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"uuid",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")yd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"nanoid",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")md.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"cuid",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")gd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"cuid2",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")bd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"ulid",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"url",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"regex",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?uo(s).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?Pd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?xd(s).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?_d.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"duration",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?Dd(e.data,s.version)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"ip",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="jwt"?Ed(e.data,s.alg)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"jwt",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="cidr"?Ld(e.data,s.version)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"cidr",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?Id.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"base64",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="base64url"?Ad.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"base64url",code:D.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):L.util.assertNever(s);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(r=>e.test(r),{validation:t,code:D.ZodIssueCode.invalid_string,...R.errorUtil.errToObj(n)})}_addCheck(e){return new Ge({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...R.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:"url",...R.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...R.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...R.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...R.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...R.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...R.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...R.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...R.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...R.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...R.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...R.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...R.errorUtil.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...R.errorUtil.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...R.errorUtil.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...R.errorUtil.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...R.errorUtil.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...R.errorUtil.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...R.errorUtil.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...R.errorUtil.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...R.errorUtil.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...R.errorUtil.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...R.errorUtil.errToObj(t)})}nonempty(e){return this.min(1,R.errorUtil.errToObj(e))}trim(){return new Ge({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Ge({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Ge({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}g.ZodString=Ge,Ge.create=a=>new Ge({checks:[],typeName:X.ZodString,coerce:(a==null?void 0:a.coerce)??!1,...oe(a)});function Fd(a,e){const t=(a.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,r=t>n?t:n,s=Number.parseInt(a.toFixed(r).replace(".","")),i=Number.parseInt(e.toFixed(r).replace(".",""));return s%i/10**r}class va extends de{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==L.ZodParsedType.number){const s=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.number,received:s.parsedType}),b.INVALID}let n;const r=new b.ParseStatus;for(const s of this._def.checks)s.kind==="int"?L.util.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:"integer",received:"float",message:s.message}),r.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),r.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),r.dirty()):s.kind==="multipleOf"?Fd(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.not_multiple_of,multipleOf:s.value,message:s.message}),r.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.not_finite,message:s.message}),r.dirty()):L.util.assertNever(s);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,R.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,R.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,R.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,R.errorUtil.toString(t))}setLimit(e,t,n,r){return new va({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:R.errorUtil.toString(r)}]})}_addCheck(e){return new va({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:R.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:R.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:R.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:R.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:R.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:R.errorUtil.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:R.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:R.errorUtil.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:R.errorUtil.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&L.util.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}g.ZodNumber=va,va.create=a=>new va({checks:[],typeName:X.ZodNumber,coerce:(a==null?void 0:a.coerce)||!1,...oe(a)});class _a extends de{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==L.ZodParsedType.bigint)return this._getInvalidInput(e);let n;const r=new b.ParseStatus;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),r.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),r.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.not_multiple_of,multipleOf:s.value,message:s.message}),r.dirty()):L.util.assertNever(s);return{status:r.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.bigint,received:t.parsedType}),b.INVALID}gte(e,t){return this.setLimit("min",e,!0,R.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,R.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,R.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,R.errorUtil.toString(t))}setLimit(e,t,n,r){return new _a({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:R.errorUtil.toString(r)}]})}_addCheck(e){return new _a({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:R.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:R.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:R.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:R.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:R.errorUtil.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}g.ZodBigInt=_a,_a.create=a=>new _a({checks:[],typeName:X.ZodBigInt,coerce:(a==null?void 0:a.coerce)??!1,...oe(a)});class mt extends de{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==L.ZodParsedType.boolean){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.boolean,received:n.parsedType}),b.INVALID}return(0,b.OK)(e.data)}}g.ZodBoolean=mt,mt.create=a=>new mt({typeName:X.ZodBoolean,coerce:(a==null?void 0:a.coerce)||!1,...oe(a)});class La extends de{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==L.ZodParsedType.date){const s=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.date,received:s.parsedType}),b.INVALID}if(Number.isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_date}),b.INVALID}const n=new b.ParseStatus;let r;for(const s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:D.ZodIssueCode.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):L.util.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new La({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:R.errorUtil.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:R.errorUtil.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}g.ZodDate=La,La.create=a=>new La({checks:[],coerce:(a==null?void 0:a.coerce)||!1,typeName:X.ZodDate,...oe(a)});class mn extends de{_parse(e){if(this._getType(e)!==L.ZodParsedType.symbol){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.symbol,received:n.parsedType}),b.INVALID}return(0,b.OK)(e.data)}}g.ZodSymbol=mn,mn.create=a=>new mn({typeName:X.ZodSymbol,...oe(a)});class gt extends de{_parse(e){if(this._getType(e)!==L.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.undefined,received:n.parsedType}),b.INVALID}return(0,b.OK)(e.data)}}g.ZodUndefined=gt,gt.create=a=>new gt({typeName:X.ZodUndefined,...oe(a)});class bt extends de{_parse(e){if(this._getType(e)!==L.ZodParsedType.null){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.null,received:n.parsedType}),b.INVALID}return(0,b.OK)(e.data)}}g.ZodNull=bt,bt.create=a=>new bt({typeName:X.ZodNull,...oe(a)});class qa extends de{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,b.OK)(e.data)}}g.ZodAny=qa,qa.create=a=>new qa({typeName:X.ZodAny,...oe(a)});class Fa extends de{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,b.OK)(e.data)}}g.ZodUnknown=Fa,Fa.create=a=>new Fa({typeName:X.ZodUnknown,...oe(a)});class ia extends de{_parse(e){const t=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.never,received:t.parsedType}),b.INVALID}}g.ZodNever=ia,ia.create=a=>new ia({typeName:X.ZodNever,...oe(a)});class gn extends de{_parse(e){if(this._getType(e)!==L.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.void,received:n.parsedType}),b.INVALID}return(0,b.OK)(e.data)}}g.ZodVoid=gn,gn.create=a=>new gn({typeName:X.ZodVoid,...oe(a)});class Ke extends de{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==L.ZodParsedType.array)return(0,b.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.array,received:t.parsedType}),b.INVALID;if(r.exactLength!==null){const i=t.data.length>r.exactLength.value,l=t.data.length<r.exactLength.value;(i||l)&&((0,b.addIssueToContext)(t,{code:i?D.ZodIssueCode.too_big:D.ZodIssueCode.too_small,minimum:l?r.exactLength.value:void 0,maximum:i?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&((0,b.addIssueToContext)(t,{code:D.ZodIssueCode.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&((0,b.addIssueToContext)(t,{code:D.ZodIssueCode.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((i,l)=>r.type._parseAsync(new aa(t,i,t.path,l)))).then(i=>b.ParseStatus.mergeArray(n,i));const s=[...t.data].map((i,l)=>r.type._parseSync(new aa(t,i,t.path,l)));return b.ParseStatus.mergeArray(n,s)}get element(){return this._def.type}min(e,t){return new Ke({...this._def,minLength:{value:e,message:R.errorUtil.toString(t)}})}max(e,t){return new Ke({...this._def,maxLength:{value:e,message:R.errorUtil.toString(t)}})}length(e,t){return new Ke({...this._def,exactLength:{value:e,message:R.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}g.ZodArray=Ke,Ke.create=(a,e)=>new Ke({type:a,minLength:null,maxLength:null,exactLength:null,typeName:X.ZodArray,...oe(e)});function Wa(a){if(a instanceof ke){const e={};for(const t in a.shape){const n=a.shape[t];e[t]=na.create(Wa(n))}return new ke({...a._def,shape:()=>e})}else return a instanceof Ke?new Ke({...a._def,type:Wa(a.element)}):a instanceof na?na.create(Wa(a.unwrap())):a instanceof Ca?Ca.create(Wa(a.unwrap())):a instanceof ta?ta.create(a.items.map(e=>Wa(e))):a}class ke extends de{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=L.util.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==L.ZodParsedType.object){const c=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(c,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.object,received:c.parsedType}),b.INVALID}const{status:n,ctx:r}=this._processInputParams(e),{shape:s,keys:i}=this._getCached(),l=[];if(!(this._def.catchall instanceof ia&&this._def.unknownKeys==="strip"))for(const c in r.data)i.includes(c)||l.push(c);const d=[];for(const c of i){const u=s[c],p=r.data[c];d.push({key:{status:"valid",value:c},value:u._parse(new aa(r,p,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof ia){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of l)d.push({key:{status:"valid",value:u},value:{status:"valid",value:r.data[u]}});else if(c==="strict")l.length>0&&((0,b.addIssueToContext)(r,{code:D.ZodIssueCode.unrecognized_keys,keys:l}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of l){const p=r.data[u];d.push({key:{status:"valid",value:u},value:c._parse(new aa(r,p,r.path,u)),alwaysSet:u in r.data})}}return r.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of d){const p=await u.key,h=await u.value;c.push({key:p,value:h,alwaysSet:u.alwaysSet})}return c}).then(c=>b.ParseStatus.mergeObjectSync(n,c)):b.ParseStatus.mergeObjectSync(n,d)}get shape(){return this._def.shape()}strict(e){return R.errorUtil.errToObj,new ke({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var s,i;const r=((i=(s=this._def).errorMap)==null?void 0:i.call(s,t,n).message)??n.defaultError;return t.code==="unrecognized_keys"?{message:R.errorUtil.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new ke({...this._def,unknownKeys:"strip"})}passthrough(){return new ke({...this._def,unknownKeys:"passthrough"})}extend(e){return new ke({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new ke({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:X.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new ke({...this._def,catchall:e})}pick(e){const t={};for(const n of L.util.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new ke({...this._def,shape:()=>t})}omit(e){const t={};for(const n of L.util.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new ke({...this._def,shape:()=>t})}deepPartial(){return Wa(this)}partial(e){const t={};for(const n of L.util.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new ke({...this._def,shape:()=>t})}required(e){const t={};for(const n of L.util.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof na;)s=s._def.innerType;t[n]=s}return new ke({...this._def,shape:()=>t})}keyof(){return po(L.util.objectKeys(this.shape))}}g.ZodObject=ke,ke.create=(a,e)=>new ke({shape:()=>a,unknownKeys:"strip",catchall:ia.create(),typeName:X.ZodObject,...oe(e)}),ke.strictCreate=(a,e)=>new ke({shape:()=>a,unknownKeys:"strict",catchall:ia.create(),typeName:X.ZodObject,...oe(e)}),ke.lazycreate=(a,e)=>new ke({shape:a,unknownKeys:"strip",catchall:ia.create(),typeName:X.ZodObject,...oe(e)});class ft extends de{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function r(s){for(const l of s)if(l.result.status==="valid")return l.result;for(const l of s)if(l.result.status==="dirty")return t.common.issues.push(...l.ctx.common.issues),l.result;const i=s.map(l=>new D.ZodError(l.ctx.common.issues));return(0,b.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_union,unionErrors:i}),b.INVALID}if(t.common.async)return Promise.all(n.map(async s=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await s._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(r);{let s;const i=[];for(const d of n){const c={...t,common:{...t.common,issues:[]},parent:null},u=d._parseSync({data:t.data,path:t.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!s&&(s={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(s)return t.common.issues.push(...s.ctx.common.issues),s.result;const l=i.map(d=>new D.ZodError(d));return(0,b.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_union,unionErrors:l}),b.INVALID}}get options(){return this._def.options}}g.ZodUnion=ft,ft.create=(a,e)=>new ft({options:a,typeName:X.ZodUnion,...oe(e)});const la=a=>a instanceof _t?la(a.schema):a instanceof Re?la(a.innerType()):a instanceof Nt?[a.value]:a instanceof Na?a.options:a instanceof Ct?L.util.objectValues(a.enum):a instanceof St?la(a._def.innerType):a instanceof gt?[void 0]:a instanceof bt?[null]:a instanceof na?[void 0,...la(a.unwrap())]:a instanceof Ca?[null,...la(a.unwrap())]:a instanceof hr||a instanceof Tt?la(a.unwrap()):a instanceof kt?la(a._def.innerType):[];class bn extends de{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==L.ZodParsedType.object)return(0,b.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.object,received:t.parsedType}),b.INVALID;const n=this.discriminator,r=t.data[n],s=this.optionsMap.get(r);return s?t.common.async?s._parseAsync({data:t.data,path:t.path,parent:t}):s._parseSync({data:t.data,path:t.path,parent:t}):((0,b.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),b.INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const r=new Map;for(const s of t){const i=la(s.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const l of i){if(r.has(l))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(l)}`);r.set(l,s)}}return new bn({typeName:X.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...oe(n)})}}g.ZodDiscriminatedUnion=bn;function pr(a,e){const t=(0,L.getParsedType)(a),n=(0,L.getParsedType)(e);if(a===e)return{valid:!0,data:a};if(t===L.ZodParsedType.object&&n===L.ZodParsedType.object){const r=L.util.objectKeys(e),s=L.util.objectKeys(a).filter(l=>r.indexOf(l)!==-1),i={...a,...e};for(const l of s){const d=pr(a[l],e[l]);if(!d.valid)return{valid:!1};i[l]=d.data}return{valid:!0,data:i}}else if(t===L.ZodParsedType.array&&n===L.ZodParsedType.array){if(a.length!==e.length)return{valid:!1};const r=[];for(let s=0;s<a.length;s++){const i=a[s],l=e[s],d=pr(i,l);if(!d.valid)return{valid:!1};r.push(d.data)}return{valid:!0,data:r}}else return t===L.ZodParsedType.date&&n===L.ZodParsedType.date&&+a==+e?{valid:!0,data:a}:{valid:!1}}class yt extends de{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(s,i)=>{if((0,b.isAborted)(s)||(0,b.isAborted)(i))return b.INVALID;const l=pr(s.value,i.value);return l.valid?(((0,b.isDirty)(s)||(0,b.isDirty)(i))&&t.dirty(),{status:t.value,value:l.data}):((0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_intersection_types}),b.INVALID)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,i])=>r(s,i)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}g.ZodIntersection=yt,yt.create=(a,e,t)=>new yt({left:a,right:e,typeName:X.ZodIntersection,...oe(t)});class ta extends de{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==L.ZodParsedType.array)return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.array,received:n.parsedType}),b.INVALID;if(n.data.length<this._def.items.length)return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),b.INVALID;!this._def.rest&&n.data.length>this._def.items.length&&((0,b.addIssueToContext)(n,{code:D.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const s=[...n.data].map((i,l)=>{const d=this._def.items[l]||this._def.rest;return d?d._parse(new aa(n,i,n.path,l)):null}).filter(i=>!!i);return n.common.async?Promise.all(s).then(i=>b.ParseStatus.mergeArray(t,i)):b.ParseStatus.mergeArray(t,s)}get items(){return this._def.items}rest(e){return new ta({...this._def,rest:e})}}g.ZodTuple=ta,ta.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ta({items:a,typeName:X.ZodTuple,rest:null,...oe(e)})};class vt extends de{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==L.ZodParsedType.object)return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.object,received:n.parsedType}),b.INVALID;const r=[],s=this._def.keyType,i=this._def.valueType;for(const l in n.data)r.push({key:s._parse(new aa(n,l,n.path,l)),value:i._parse(new aa(n,n.data[l],n.path,l)),alwaysSet:l in n.data});return n.common.async?b.ParseStatus.mergeObjectAsync(t,r):b.ParseStatus.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof de?new vt({keyType:e,valueType:t,typeName:X.ZodRecord,...oe(n)}):new vt({keyType:Ge.create(),valueType:e,typeName:X.ZodRecord,...oe(t)})}}g.ZodRecord=vt;class fn extends de{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==L.ZodParsedType.map)return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.map,received:n.parsedType}),b.INVALID;const r=this._def.keyType,s=this._def.valueType,i=[...n.data.entries()].map(([l,d],c)=>({key:r._parse(new aa(n,l,n.path,[c,"key"])),value:s._parse(new aa(n,d,n.path,[c,"value"]))}));if(n.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const d of i){const c=await d.key,u=await d.value;if(c.status==="aborted"||u.status==="aborted")return b.INVALID;(c.status==="dirty"||u.status==="dirty")&&t.dirty(),l.set(c.value,u.value)}return{status:t.value,value:l}})}else{const l=new Map;for(const d of i){const c=d.key,u=d.value;if(c.status==="aborted"||u.status==="aborted")return b.INVALID;(c.status==="dirty"||u.status==="dirty")&&t.dirty(),l.set(c.value,u.value)}return{status:t.value,value:l}}}}g.ZodMap=fn,fn.create=(a,e,t)=>new fn({valueType:e,keyType:a,typeName:X.ZodMap,...oe(t)});class Ma extends de{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==L.ZodParsedType.set)return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.set,received:n.parsedType}),b.INVALID;const r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&((0,b.addIssueToContext)(n,{code:D.ZodIssueCode.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&((0,b.addIssueToContext)(n,{code:D.ZodIssueCode.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const s=this._def.valueType;function i(d){const c=new Set;for(const u of d){if(u.status==="aborted")return b.INVALID;u.status==="dirty"&&t.dirty(),c.add(u.value)}return{status:t.value,value:c}}const l=[...n.data.values()].map((d,c)=>s._parse(new aa(n,d,n.path,c)));return n.common.async?Promise.all(l).then(d=>i(d)):i(l)}min(e,t){return new Ma({...this._def,minSize:{value:e,message:R.errorUtil.toString(t)}})}max(e,t){return new Ma({...this._def,maxSize:{value:e,message:R.errorUtil.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}g.ZodSet=Ma,Ma.create=(a,e)=>new Ma({valueType:a,minSize:null,maxSize:null,typeName:X.ZodSet,...oe(e)});class Ga extends de{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==L.ZodParsedType.function)return(0,b.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.function,received:t.parsedType}),b.INVALID;function n(l,d){return(0,b.makeIssue)({data:l,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,hn.getErrorMap)(),hn.defaultErrorMap].filter(c=>!!c),issueData:{code:D.ZodIssueCode.invalid_arguments,argumentsError:d}})}function r(l,d){return(0,b.makeIssue)({data:l,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,hn.getErrorMap)(),hn.defaultErrorMap].filter(c=>!!c),issueData:{code:D.ZodIssueCode.invalid_return_type,returnTypeError:d}})}const s={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof Ka){const l=this;return(0,b.OK)(async function(...d){const c=new D.ZodError([]),u=await l._def.args.parseAsync(d,s).catch(m=>{throw c.addIssue(n(d,m)),c}),p=await Reflect.apply(i,this,u);return await l._def.returns._def.type.parseAsync(p,s).catch(m=>{throw c.addIssue(r(p,m)),c})})}else{const l=this;return(0,b.OK)(function(...d){const c=l._def.args.safeParse(d,s);if(!c.success)throw new D.ZodError([n(d,c.error)]);const u=Reflect.apply(i,this,c.data),p=l._def.returns.safeParse(u,s);if(!p.success)throw new D.ZodError([r(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Ga({...this._def,args:ta.create(e).rest(Fa.create())})}returns(e){return new Ga({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Ga({args:e||ta.create([]).rest(Fa.create()),returns:t||Fa.create(),typeName:X.ZodFunction,...oe(n)})}}g.ZodFunction=Ga;class _t extends de{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}g.ZodLazy=_t,_t.create=(a,e)=>new _t({getter:a,typeName:X.ZodLazy,...oe(e)});class Nt extends de{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(t,{received:t.data,code:D.ZodIssueCode.invalid_literal,expected:this._def.value}),b.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}}g.ZodLiteral=Nt,Nt.create=(a,e)=>new Nt({value:a,typeName:X.ZodLiteral,...oe(e)});function po(a,e){return new Na({values:a,typeName:X.ZodEnum,...oe(e)})}class Na extends de{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,b.addIssueToContext)(t,{expected:L.util.joinValues(n),received:t.parsedType,code:D.ZodIssueCode.invalid_type}),b.INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,b.addIssueToContext)(t,{received:t.data,code:D.ZodIssueCode.invalid_enum_value,options:n}),b.INVALID}return(0,b.OK)(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Na.create(e,{...this._def,...t})}exclude(e,t=this._def){return Na.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}g.ZodEnum=Na,Na.create=po;class Ct extends de{_parse(e){const t=L.util.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==L.ZodParsedType.string&&n.parsedType!==L.ZodParsedType.number){const r=L.util.objectValues(t);return(0,b.addIssueToContext)(n,{expected:L.util.joinValues(r),received:n.parsedType,code:D.ZodIssueCode.invalid_type}),b.INVALID}if(this._cache||(this._cache=new Set(L.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=L.util.objectValues(t);return(0,b.addIssueToContext)(n,{received:n.data,code:D.ZodIssueCode.invalid_enum_value,options:r}),b.INVALID}return(0,b.OK)(e.data)}get enum(){return this._def.values}}g.ZodNativeEnum=Ct,Ct.create=(a,e)=>new Ct({values:a,typeName:X.ZodNativeEnum,...oe(e)});class Ka extends de{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==L.ZodParsedType.promise&&t.common.async===!1)return(0,b.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.promise,received:t.parsedType}),b.INVALID;const n=t.parsedType===L.ZodParsedType.promise?t.data:Promise.resolve(t.data);return(0,b.OK)(n.then(r=>this._def.type.parseAsync(r,{path:t.path,errorMap:t.common.contextualErrorMap})))}}g.ZodPromise=Ka,Ka.create=(a,e)=>new Ka({type:a,typeName:X.ZodPromise,...oe(e)});class Re extends de{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===X.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,s={addIssue:i=>{(0,b.addIssueToContext)(n,i),i.fatal?t.abort():t.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),r.type==="preprocess"){const i=r.transform(n.data,s);if(n.common.async)return Promise.resolve(i).then(async l=>{if(t.value==="aborted")return b.INVALID;const d=await this._def.schema._parseAsync({data:l,path:n.path,parent:n});return d.status==="aborted"?b.INVALID:d.status==="dirty"||t.value==="dirty"?(0,b.DIRTY)(d.value):d});{if(t.value==="aborted")return b.INVALID;const l=this._def.schema._parseSync({data:i,path:n.path,parent:n});return l.status==="aborted"?b.INVALID:l.status==="dirty"||t.value==="dirty"?(0,b.DIRTY)(l.value):l}}if(r.type==="refinement"){const i=l=>{const d=r.refinement(l,s);if(n.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(n.common.async===!1){const l=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return l.status==="aborted"?b.INVALID:(l.status==="dirty"&&t.dirty(),i(l.value),{status:t.value,value:l.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(l=>l.status==="aborted"?b.INVALID:(l.status==="dirty"&&t.dirty(),i(l.value).then(()=>({status:t.value,value:l.value}))))}if(r.type==="transform")if(n.common.async===!1){const i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!(0,b.isValid)(i))return b.INVALID;const l=r.transform(i.value,s);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:l}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>(0,b.isValid)(i)?Promise.resolve(r.transform(i.value,s)).then(l=>({status:t.value,value:l})):b.INVALID);L.util.assertNever(r)}}g.ZodEffects=Re,g.ZodTransformer=Re,Re.create=(a,e,t)=>new Re({schema:a,typeName:X.ZodEffects,effect:e,...oe(t)}),Re.createWithPreprocess=(a,e,t)=>new Re({schema:e,effect:{type:"preprocess",transform:a},typeName:X.ZodEffects,...oe(t)});class na extends de{_parse(e){return this._getType(e)===L.ZodParsedType.undefined?(0,b.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}g.ZodOptional=na,na.create=(a,e)=>new na({innerType:a,typeName:X.ZodOptional,...oe(e)});class Ca extends de{_parse(e){return this._getType(e)===L.ZodParsedType.null?(0,b.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}g.ZodNullable=Ca,Ca.create=(a,e)=>new Ca({innerType:a,typeName:X.ZodNullable,...oe(e)});class St extends de{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===L.ZodParsedType.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}g.ZodDefault=St,St.create=(a,e)=>new St({innerType:a,typeName:X.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...oe(e)});class kt extends de{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return(0,b.isAsync)(r)?r.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new D.ZodError(n.common.issues)},input:n.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new D.ZodError(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}g.ZodCatch=kt,kt.create=(a,e)=>new kt({innerType:a,typeName:X.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...oe(e)});class yn extends de{_parse(e){if(this._getType(e)!==L.ZodParsedType.nan){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:L.ZodParsedType.nan,received:n.parsedType}),b.INVALID}return{status:"valid",value:e.data}}}g.ZodNaN=yn,yn.create=a=>new yn({typeName:X.ZodNaN,...oe(a)}),g.BRAND=Symbol("zod_brand");class hr extends de{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}g.ZodBranded=hr;class wt extends de{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?b.INVALID:s.status==="dirty"?(t.dirty(),(0,b.DIRTY)(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{const r=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return r.status==="aborted"?b.INVALID:r.status==="dirty"?(t.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:n.path,parent:n})}}static create(e,t){return new wt({in:e,out:t,typeName:X.ZodPipeline})}}g.ZodPipeline=wt;class Tt extends de{_parse(e){const t=this._def.innerType._parse(e),n=r=>((0,b.isValid)(r)&&(r.value=Object.freeze(r.value)),r);return(0,b.isAsync)(t)?t.then(r=>n(r)):n(t)}unwrap(){return this._def.innerType}}g.ZodReadonly=Tt,Tt.create=(a,e)=>new Tt({innerType:a,typeName:X.ZodReadonly,...oe(e)});function ho(a,e){const t=typeof a=="function"?a(e):typeof a=="string"?{message:a}:a;return typeof t=="string"?{message:t}:t}function mo(a,e={},t){return a?qa.create().superRefine((n,r)=>{const s=a(n);if(s instanceof Promise)return s.then(i=>{if(!i){const l=ho(e,n),d=l.fatal??t??!0;r.addIssue({code:"custom",...l,fatal:d})}});if(!s){const i=ho(e,n),l=i.fatal??t??!0;r.addIssue({code:"custom",...i,fatal:l})}}):qa.create()}g.late={object:ke.lazycreate};var X;(function(a){a.ZodString="ZodString",a.ZodNumber="ZodNumber",a.ZodNaN="ZodNaN",a.ZodBigInt="ZodBigInt",a.ZodBoolean="ZodBoolean",a.ZodDate="ZodDate",a.ZodSymbol="ZodSymbol",a.ZodUndefined="ZodUndefined",a.ZodNull="ZodNull",a.ZodAny="ZodAny",a.ZodUnknown="ZodUnknown",a.ZodNever="ZodNever",a.ZodVoid="ZodVoid",a.ZodArray="ZodArray",a.ZodObject="ZodObject",a.ZodUnion="ZodUnion",a.ZodDiscriminatedUnion="ZodDiscriminatedUnion",a.ZodIntersection="ZodIntersection",a.ZodTuple="ZodTuple",a.ZodRecord="ZodRecord",a.ZodMap="ZodMap",a.ZodSet="ZodSet",a.ZodFunction="ZodFunction",a.ZodLazy="ZodLazy",a.ZodLiteral="ZodLiteral",a.ZodEnum="ZodEnum",a.ZodEffects="ZodEffects",a.ZodNativeEnum="ZodNativeEnum",a.ZodOptional="ZodOptional",a.ZodNullable="ZodNullable",a.ZodDefault="ZodDefault",a.ZodCatch="ZodCatch",a.ZodPromise="ZodPromise",a.ZodBranded="ZodBranded",a.ZodPipeline="ZodPipeline",a.ZodReadonly="ZodReadonly"})(X||(g.ZodFirstPartyTypeKind=X={}));const Md=(a,e={message:`Input not instance of ${a.name}`})=>mo(t=>t instanceof a,e);g.instanceof=Md;const go=Ge.create;g.string=go;const bo=va.create;g.number=bo;const Od=yn.create;g.nan=Od;const Bd=_a.create;g.bigint=Bd;const fo=mt.create;g.boolean=fo;const Ud=La.create;g.date=Ud;const zd=mn.create;g.symbol=zd;const Vd=gt.create;g.undefined=Vd;const jd=bt.create;g.null=jd;const Zd=qa.create;g.any=Zd;const qd=Fa.create;g.unknown=qd;const Wd=ia.create;g.never=Wd;const Gd=gn.create;g.void=Gd;const Kd=Ke.create;g.array=Kd;const Rd=ke.create;g.object=Rd;const $d=ke.strictCreate;g.strictObject=$d;const Hd=ft.create;g.union=Hd;const Yd=bn.create;g.discriminatedUnion=Yd;const Jd=yt.create;g.intersection=Jd;const Qd=ta.create;g.tuple=Qd;const Xd=vt.create;g.record=Xd;const ec=fn.create;g.map=ec;const ac=Ma.create;g.set=ac;const tc=Ga.create;g.function=tc;const nc=_t.create;g.lazy=nc;const rc=Nt.create;g.literal=rc;const sc=Na.create;g.enum=sc;const oc=Ct.create;g.nativeEnum=oc;const ic=Ka.create;g.promise=ic;const yo=Re.create;g.effect=yo,g.transformer=yo;const lc=na.create;g.optional=lc;const dc=Ca.create;g.nullable=dc;const cc=Re.createWithPreprocess;g.preprocess=cc;const uc=wt.create;g.pipeline=uc;const pc=()=>go().optional();g.ostring=pc;const hc=()=>bo().optional();g.onumber=hc;const mc=()=>fo().optional();g.oboolean=mc,g.coerce={string:a=>Ge.create({...a,coerce:!0}),number:a=>va.create({...a,coerce:!0}),boolean:a=>mt.create({...a,coerce:!0}),bigint:a=>_a.create({...a,coerce:!0}),date:a=>La.create({...a,coerce:!0})},g.NEVER=b.INVALID,function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,s,i){i===void 0&&(i=s);var l=Object.getOwnPropertyDescriptor(r,s);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(n,i,l)}:function(n,r,s,i){i===void 0&&(i=s),n[i]=r[s]}),t=me&&me.__exportStar||function(n,r){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&e(r,n,s)};Object.defineProperty(a,"__esModule",{value:!0}),t(ya,a),t(cr,a),t(so,a),t(pt,a),t(g,a),t(ea,a)}(dr),function(a){var e=me&&me.__createBinding||(Object.create?function(i,l,d,c){c===void 0&&(c=d);var u=Object.getOwnPropertyDescriptor(l,d);(!u||("get"in u?!l.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return l[d]}}),Object.defineProperty(i,c,u)}:function(i,l,d,c){c===void 0&&(c=d),i[c]=l[d]}),t=me&&me.__setModuleDefault||(Object.create?function(i,l){Object.defineProperty(i,"default",{enumerable:!0,value:l})}:function(i,l){i.default=l}),n=me&&me.__importStar||function(i){if(i&&i.__esModule)return i;var l={};if(i!=null)for(var d in i)d!=="default"&&Object.prototype.hasOwnProperty.call(i,d)&&e(l,i,d);return t(l,i),l},r=me&&me.__exportStar||function(i,l){for(var d in i)d!=="default"&&!Object.prototype.hasOwnProperty.call(l,d)&&e(l,i,d)};Object.defineProperty(a,"__esModule",{value:!0}),a.z=void 0;const s=n(dr);a.z=s,r(dr,a),a.default=s}(ao),function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingConfigSchema=a.billingVersionConfigSchema=a.meterSchema=a.addOnSchema=a.planSchema=a.meteredPriceSchema=a.priceSchema=a.meterTypeSchema=a.aggregationSchema=a.unitAmountSchema=a.intervalSchema=a.featureSchema=a.UNKNOWN_STRIPE_ID=void 0;const e=ao,t=lr;a.UNKNOWN_STRIPE_ID="__UNKNOWN_STRIPE_ID__",a.featureSchema=e.z.enum(t.BILLING_FEATURE_IDS),a.intervalSchema=e.z.enum(["month","year"]),a.unitAmountSchema=e.z.number().int().min(1),a.aggregationSchema=e.z.enum(["sum","count"]),a.meterTypeSchema=e.z.enum(["payAsYouGo","creditGrant"]),a.priceSchema=e.z.object({amount:e.z.number(),currency:e.z.enum(["usd"]),interval:a.intervalSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerPriceId:e.z.string()}),a.meteredPriceSchema=e.z.object({unitAmount:a.unitAmountSchema,currency:e.z.enum(["usd"]),interval:a.intervalSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerPriceId:e.z.string()}),a.planSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),tierIndex:e.z.number(),prices:e.z.record(a.intervalSchema,a.priceSchema),features:e.z.record(a.featureSchema,e.z.union([e.z.number(),e.z.boolean()])),metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerProductId:e.z.string()}),a.addOnSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),prices:e.z.record(e.z.string(),a.priceSchema),increments:e.z.record(a.featureSchema,e.z.number().positive()),prorationDisabled:e.z.boolean().optional(),metadata:e.z.record(e.z.string(),e.z.string()).optional(),autoRechargeable:e.z.boolean().optional(),hidden:e.z.boolean().optional(),providerProductId:e.z.string()}),a.meterSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),defaultAggregation:e.z.object({formula:a.aggregationSchema}).optional(),customerMapping:e.z.object({eventPayloadKey:e.z.literal("stripe_customer_id"),type:e.z.literal("by_id")}).optional(),valueSettings:e.z.object({eventPayloadKey:e.z.literal("value")}).optional(),prices:e.z.record(a.intervalSchema,a.meteredPriceSchema),meterType:a.meterTypeSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerProductId:e.z.string(),providerMeterId:e.z.string()}),a.billingVersionConfigSchema=e.z.object({version:e.z.string(),name:e.z.string(),description:e.z.string(),plans:e.z.record(e.z.string(),a.planSchema),addons:e.z.record(e.z.string(),a.addOnSchema),meters:e.z.record(e.z.string(),a.meterSchema),isActive:e.z.boolean(),createdAt:e.z.string()}),a.billingConfigSchema=e.z.record(e.z.string(),a.billingVersionConfigSchema)}(ut),Object.defineProperty(ct,"__esModule",{value:!0}),ct.plans=void 0;const we=cn,je=ut,vo={table_rows:0,bot_count:we.SMALL_UNLIMITED,collaborator_count:we.SMALL_UNLIMITED,file_storage:0,vector_db_storage:0,saved_versions:0,indexed_file_count:0,incoming_messages_events:0,ai_spend:0,conversation_sessions:0};ct.plans={community:{id:"community",name:"Plan - Free",description:"Free plan for trying things out",tierIndex:0,prices:{month:{amount:we.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:{table_rows:1e3,bot_count:3,collaborator_count:3,file_storage:100*we.MB,vector_db_storage:100*we.MB,saved_versions:3,indexed_file_count:1e3,incoming_messages_events:100*we.MESSAGES_PER_CONVERSATION,ai_spend:100*we.AI_SPEND_PER_CONVERSATION,conversation_sessions:100},providerProductId:je.UNKNOWN_STRIPE_ID},plus:{id:"plus",name:"Plan - Plus",description:"For growing businesses",tierIndex:1,prices:{month:{amount:189,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID},year:{amount:150*we.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:{table_rows:1e5,bot_count:we.SMALL_UNLIMITED,collaborator_count:3,file_storage:10*we.GB,vector_db_storage:1*we.GB,saved_versions:50,indexed_file_count:2e3,incoming_messages_events:250*we.MESSAGES_PER_CONVERSATION,ai_spend:250*we.AI_SPEND_PER_CONVERSATION,conversation_sessions:250},providerProductId:je.UNKNOWN_STRIPE_ID},team:{id:"team",name:"Plan - Team",description:"For small teams",tierIndex:2,prices:{month:{amount:939,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID},year:{amount:750*we.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:{table_rows:5e5,bot_count:we.SMALL_UNLIMITED,collaborator_count:we.SMALL_UNLIMITED,file_storage:50*we.GB,vector_db_storage:5*we.GB,saved_versions:100,indexed_file_count:we.BIG_UNLIMITED,incoming_messages_events:1500*we.MESSAGES_PER_CONVERSATION,ai_spend:1500*we.AI_SPEND_PER_CONVERSATION,conversation_sessions:1500},providerProductId:je.UNKNOWN_STRIPE_ID},enterprise:{id:"enterprise",name:"Plan - Enterprise",description:"Enterprise license subscription",tierIndex:3,prices:{month:{amount:we.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:vo,providerProductId:je.UNKNOWN_STRIPE_ID},managed:{id:"managed",name:"Plan - Managed",description:"Managed license subscription",tierIndex:4,prices:{month:{amount:we.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:vo,providerProductId:je.UNKNOWN_STRIPE_ID}};var It={};Object.defineProperty(It,"__esModule",{value:!0}),It.addons=void 0;const Ra=cn,$a=ut,_o=(a,e=["community","plus","team","enterprise","managed"])=>e.map(t=>({[t]:{amount:a,currency:"usd",interval:"month",providerPriceId:$a.UNKNOWN_STRIPE_ID}})).reduce((t,n)=>({...t,...n}),{});It.addons={conversation_sessions_addon:{id:"conversation_sessions_addon",name:"Add-on - Conversation Sessions",description:"Adds conversations sessions for the month",prices:{plus:{amount:65,currency:"usd",interval:"month",providerPriceId:$a.UNKNOWN_STRIPE_ID},team:{amount:50,currency:"usd",interval:"month",providerPriceId:$a.UNKNOWN_STRIPE_ID},enterprise:{amount:Ra.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:$a.UNKNOWN_STRIPE_ID}},increments:{conversation_sessions:100,ai_spend:100*Ra.AI_SPEND_PER_CONVERSATION,incoming_messages_events:100*Ra.MESSAGES_PER_CONVERSATION},providerProductId:$a.UNKNOWN_STRIPE_ID,autoRechargeable:!0,prorationDisabled:!0},storage_addon:{id:"storage_addon",name:"Add-on - Storage",description:"Adds table rows, vector db space and files",prices:{..._o(40,["plus","team"]),..._o(Ra.FREE_PRICE,["enterprise","managed"])},increments:{table_rows:1e5,vector_db_storage:1*Ra.GB,file_storage:10*Ra.GB},providerProductId:$a.UNKNOWN_STRIPE_ID}};var At={};Object.defineProperty(At,"__esModule",{value:!0}),At.meters=void 0;const Ha=ut;At.meters={ai_spend_credit_grant:{id:"ai_spend_credit_grant",name:"AI Spend - Credit grant",description:"Pre-purchased credits applied toward AI usage",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:Ha.UNKNOWN_STRIPE_ID}},meterType:"creditGrant",providerMeterId:Ha.UNKNOWN_STRIPE_ID,providerProductId:Ha.UNKNOWN_STRIPE_ID},ai_spend_pay_as_you_go:{id:"ai_spend_pay_as_you_go",name:"AI Spend - Pay as you go",description:"Usage-based charges for AI spend, billed monthly",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:Ha.UNKNOWN_STRIPE_ID}},meterType:"payAsYouGo",providerMeterId:Ha.UNKNOWN_STRIPE_ID,providerProductId:Ha.UNKNOWN_STRIPE_ID}};var No={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingDefinitions=a.billingConfig=void 0;const e=ct,t=It,n=At;a.billingConfig={v4:{version:"v4",name:"Billing Version 4",description:"New billing system with credit grants and entitlements",plans:e.plans,addons:t.addons,meters:n.meters,isActive:!0,createdAt:new Date().toISOString()}},a.billingDefinitions=a.billingConfig})(No),function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,s,i){i===void 0&&(i=s);var l=Object.getOwnPropertyDescriptor(r,s);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(n,i,l)}:function(n,r,s,i){i===void 0&&(i=s),n[i]=r[s]}),t=me&&me.__exportStar||function(n,r){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&e(r,n,s)};Object.defineProperty(a,"__esModule",{value:!0}),t(ct,a),t(It,a),t(At,a),t(ut,a),t(No,a)}(eo),function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,s,i){i===void 0&&(i=s);var l=Object.getOwnPropertyDescriptor(r,s);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(n,i,l)}:function(n,r,s,i){i===void 0&&(i=s),n[i]=r[s]}),t=me&&me.__exportStar||function(n,r){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&e(r,n,s)};Object.defineProperty(a,"__esModule",{value:!0}),t(lr,a),t(eo,a),t(cn,a)}(Xs),function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,s,i){i===void 0&&(i=s);var l=Object.getOwnPropertyDescriptor(r,s);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(n,i,l)}:function(n,r,s,i){i===void 0&&(i=s),n[i]=r[s]}),t=me&&me.__exportStar||function(n,r){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(r,s)&&e(r,n,s)};Object.defineProperty(a,"__esModule",{value:!0}),t(sn,a),t(on,a),t(Za,a),t(Qs,a),t(ln,a),t(Ve,a),t(dn,a),t(Xs,a)}(Js);const Co=[{key:"conversation_sessions",label:"Conversations",unit:"count"},{key:"ai_spend",label:"AI spend",unit:"nano-usd"},{key:"table_rows",label:"Table rows",unit:"count"},{key:"vector_db_storage",label:"Vector DB storage",unit:"bytes"},{key:"file_storage",label:"File storage",unit:"bytes"}];function Ya(a,e){return e==="bytes"?Pa(a):e==="nano-usd"?`$${(a/We).toFixed(2)}`:fe(a)}function So(a,e){switch(a){case"conversation_sessions":return e("dashboardConversationsMetric");case"ai_spend":return e("dashboardAiSpend");case"table_rows":return e("dashboardTableRows");case"vector_db_storage":return e("dashboardVectorDb");case"file_storage":return e("dashboardFileStorage");default:return a}}function vn(a){return a>=90?"critical":a>=75?"warning":"normal"}const gc=Js.NON_RESETTING_BILLING_FEATURE_IDS;function bc(a){return!gc.includes(a)}function Pt(a){return a?Co.flatMap(({key:e,label:t,unit:n})=>{const r=a[e];if(!r||r.quota<=0)return[];const s=r.usage??0,i=Math.max(0,Math.min(100,s/r.quota*100));return[{key:e,label:t,unit:n,used:s,quota:r.quota,remaining:Math.max(0,r.quota-s),pct:i,resets:bc(e)}]}).sort((e,t)=>t.pct-e.pct):[]}const ko="outgrow-free",fc=.75,yc=5;function vc(a,e){return a.prices[e]??(e==="month"?a.prices.year:a.prices.month)??null}function _c(a,e){var r,s;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const n=((s=a.prices.year)==null?void 0:s.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}const Nc=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",interval:r="year",planFeatures:s={},featureDescriptions:i,period:l})=>{var K,B;const{isOutdatedBilling:d,analytics:c,scope:u}=ne(),{t:p}=be(),{data:h}=Me(),{data:m}=qe(),{data:y}=pa(),{data:f}=ze({enabled:!d}),{data:_}=Ta({period:l,enabled:!d}),S=a!==void 0,[v,w]=I.useState(!1),T=m==null?void 0:m.find(U=>U.id===(f==null?void 0:f.plan.current.planId)),A=f?T?ve(T)==="community":!0:!1,N=I.useMemo(()=>Pt(_).find(U=>U.key==="conversation_sessions"),[_]),F=!S&&!d&&A&&!!N&&N.pct/100>=fc&&!v&&!Hs(ko,u,"modal"),C=S?!!a:F;I.useEffect(()=>{C&&c.capture(Te.PLAN_PICKER_VIEWED,{source:S?"outgrow_free":"outgrow_free_auto",interval:r})},[C,S,c]);const P=()=>{S||(Ys(ko,u,"modal"),w(!0)),e==null||e(!1)},x=I.useMemo(()=>m?m.filter(U=>{const Z=ve(U);return Z!=="community"&&Z!=="enterprise"&&Z!=="managed"}).sort((U,Z)=>xa.indexOf(ve(U))-xa.indexOf(ve(Z))):[],[m]),O=((B=(K=m==null?void 0:m.find(U=>ve(U)==="enterprise"))==null?void 0:K.metadata)==null?void 0:B.contact_url)??Kn;if(h===!1||d||!C)return null;const W=(N==null?void 0:N.quota)??(T==null?void 0:T.features.conversation_sessions)??100,j=(N==null?void 0:N.used)??0,Q=N&&N.pct>0?Math.min(100,Math.max(5,Math.round(N.pct))):0;return o.jsx(Le,{open:C,onOpenChange:P,size:"xl","aria-label":p("outgrowTitle"),children:o.jsxs("div",{className:"bpb-outgrow",children:[o.jsxs("header",{className:"bpb-outgrow__head",children:[o.jsx("h2",{className:"bpb-outgrow__title",children:p("outgrowTitle")}),o.jsx("p",{className:"bpb-outgrow__lede",children:o.jsx(Ot,{i18nKey:"outgrowLede",values:{quota:fe(W)},components:{bold:o.jsx("strong",{})}})})]}),o.jsxs("div",{className:"bpb-outgrow__usage",children:[o.jsx("span",{className:"bpb-outgrow__usage-label",children:p("outgrowSoFar")}),o.jsx("span",{className:"bpb-outgrow__usage-bar",role:"progressbar","aria-valuenow":Q,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("span",{className:"bpb-outgrow__usage-fill",style:{width:`${Q}%`}})}),o.jsx("span",{className:"bpb-outgrow__usage-text",children:o.jsx(Ot,{i18nKey:"outgrowUsageText",values:{used:fe(j),quota:fe(W)},components:{bold:o.jsx("strong",{})}})})]}),o.jsx("div",{className:"bpb-outgrow__grid",children:x.map((U,Z)=>{const $=ve(U),E=vc(U,r),ie=_c(U,r),re=$===n||U.id===n,ce=U.features.conversation_sessions,M=$t(y,U,r),Y=Z>0?x[Z-1]:void 0,J=(s[$]??Yt[$]).slice(0,yc);return o.jsxs("div",{className:q("bpb-plan-card",re&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":U.id,children:[o.jsxs("div",{className:"bpb-plan-card__header",children:[o.jsxs("h3",{className:"bpb-plan-card__name",children:[_e(U.name),re&&o.jsx(it,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("div",{className:"bpb-plan-card__price",children:ie!==null&&E?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-plan-card__currency",children:st(E.currency)}),o.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(ie)?ie:ie.toFixed(2).replace(/\.00$/,"")}),o.jsx("span",{className:"bpb-plan-card__per",children:p("perMonth")})]}):o.jsxs("span",{className:"bpb-plan-card__amount",children:[st((E==null?void 0:E.currency)??"usd"),"0"]})})]}),ce!==void 0&&o.jsxs("div",{className:"bpb-outgrow__allowance",children:[o.jsxs("p",{className:"bpb-outgrow__allowance-value",children:[o.jsxs("strong",{children:[fe(ce)," ",p("conversationsUnit")]})," ",p("perMonth")]}),o.jsx("p",{className:"bpb-outgrow__allowance-pack",children:M?p("outgrowThenPer",{symbol:st(M.currency),amount:M.amount,packSize:fe(M.packSize)}):p("outgrowNoTopup")})]}),o.jsxs(Se,{variant:re?"accent":"outline",block:!0,onClick:()=>{c.capture(Te.PLAN_UPGRADE_INITIATED,{plan_name:_e(U.name),interval:r,source:"outgrow_free"}),t(U.id,r),P()},children:[p("outgrowUpgradeTo",{planName:_e(U.name)}),re&&o.jsx(Qn,{size:15})]}),o.jsxs("ul",{className:"bpb-plan-card__features",children:[Y&&o.jsx("li",{className:"bpb-outgrow__features-lead",children:p("outgrowEverythingIn",{planName:_e(Y.name)})}),J.map(H=>{const G=tn(H),se=Ht[H],ge=se!==void 0?p(se.label):H,ee=(i==null?void 0:i[H])??(se!==void 0?p(se.desc):void 0);return o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(G,{size:13})}),ee?o.jsx(dt,{label:ge,children:ee}):o.jsx("span",{children:ge})]},H)})]})]},U.id)})}),o.jsxs("footer",{className:"bpb-outgrow__footer",children:[o.jsxs("span",{children:[p("outgrowNeedCustom")," ",o.jsx("a",{href:O,target:"_blank",rel:"noopener noreferrer",children:p("outgrowTalkToSales")})]}),o.jsxs("a",{className:"bpb-outgrow__compare",href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:[p("outgrowCompareAll"),o.jsx(lt,{size:14})]})]})]})})},da=(a,e)=>e==="bytes"?Pa(a):e==="nano-usd"?`$${(a/We).toFixed(2)}`:fe(a),Cc=(a,e)=>{const t=new Date;return Array.from({length:a},(n,r)=>{const s=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()-r,1));return{value:s.toISOString(),label:s.toLocaleDateString(e,{month:"long",year:"numeric",timeZone:"UTC"})}})},Sc=({period:a})=>{const{data:e,isLoading:t,isError:n}=$r("ai_spend",{period:a}),{t:r}=be();if(n)return null;if(t)return o.jsx(he,{height:96});if(!e||e.length===0)return o.jsx("p",{className:"bpb-usage__group-hint",children:r("dashboardNoBotSpend")});const s=Math.max(...e.map(i=>i.value),1);return o.jsx("div",{className:"bpb-usage-bots",children:e.map(i=>o.jsxs("div",{className:"bpb-usage-bot",children:[o.jsxs("div",{className:"bpb-usage-bot__head",children:[o.jsx("span",{className:"bpb-usage-bot__name",title:i.name,children:i.name}),o.jsx("span",{className:"bpb-usage-bot__value",children:da(i.value,"nano-usd")})]}),o.jsx("div",{className:"bpb-usage-bar",role:"presentation",children:o.jsx("div",{className:"bpb-usage-bar__fill bpb-usage-bar__fill--normal",style:{width:`${i.value>0?Math.max(2,Math.round(i.value/s*100)):0}%`}})})]},i.botId))})},mr=({entry:a,metric:e,planAllowance:t,planName:n,stacked:r})=>{const{t:s}=be(),i=a.quota>0?Math.min(a.usage??0,a.quota):a.usage??0,l=a.quota>0?Math.max(0,Math.min(100,Math.round(i/a.quota*100))):0,d=l>0?Math.max(5,l):0,c=l>=90?"critical":l>=75?"warning":"normal",u=t??a.quota,p=Math.max(0,a.quota-u),h=p>0?n?s("dashboardFromPlanWithAddons",{amount:da(u,e.unit),planName:n,addonAmount:da(p,e.unit)}):s("dashboardFromPlanGenericWithAddons",{amount:da(u,e.unit),addonAmount:da(p,e.unit)}):n?s("dashboardFromPlan",{amount:da(a.quota,e.unit),planName:n}):s("dashboardFromPlanGeneric",{amount:da(a.quota,e.unit)});return o.jsxs("div",{className:"bpb-usage-row",children:[o.jsxs("div",{className:q("bpb-usage-row__head",r&&"bpb-usage-row__head--stacked"),children:[o.jsx("span",{className:"bpb-usage-row__label",children:e.label}),o.jsxs("span",{className:"bpb-usage-row__value",children:[o.jsx("span",{className:"bpb-usage-row__used",children:da(i,e.unit)}),o.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",da(a.quota,e.unit)]})]})]}),o.jsxs("span",{className:"bpb-usage-tip",tabIndex:0,role:"note","aria-label":h,onMouseMove:m=>{const y=m.currentTarget.getBoundingClientRect(),f=(m.clientX-y.left)/y.width*100;m.currentTarget.style.setProperty("--bpb-tip-x",`${f}%`)},children:[o.jsx("div",{className:"bpb-usage-bar",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("div",{className:q("bpb-usage-bar__fill",`bpb-usage-bar__fill--${c}`),style:{width:`${d}%`}})}),o.jsx("span",{className:"bpb-usage-tip__bubble",role:"tooltip",children:h})]})]})},kc=({period:a,showPeriodSelector:e=!0,periodMonths:t=12,className:n,onIncreaseLimits:r})=>{var W;const{isOutdatedBilling:s,locale:i}=ne(),{t:l}=be(),d=I.useMemo(()=>Cc(t,i),[t,i]),[c,u]=I.useState(a??((W=d[0])==null?void 0:W.value)??""),p=Hr(),h=Math.max(0,d.findIndex(j=>j.value===c)),m=j=>{const Q=d[h+j];Q&&u(Q.value)},{data:y,isLoading:f,isError:_}=Ta({period:c,enabled:!s}),{data:S}=ze({enabled:!s}),{data:v}=qe(),w=v==null?void 0:v.find(j=>j.id===(S==null?void 0:S.plan.current.planId)),T=w?_e(w.name):void 0,A=w?ve(w):"community",N=A==="enterprise"||A==="managed",F=j=>w==null?void 0:w.features[j];if(s)return o.jsx("div",{className:q("bpb-usage bpb-scope",n),children:o.jsx(ba,{})});if(f)return o.jsxs("div",{className:q("bpb-usage bpb-scope",n),"aria-busy":"true",children:[o.jsx(he,{height:80}),o.jsx(he,{height:140})]});if(_||!y)return o.jsx("div",{className:q("bpb-usage bpb-scope",n),children:o.jsx("p",{className:"bpb-usage__error",role:"alert",children:l("dashboardLoadError")})});const C=y.conversation_sessions,P=y.ai_spend,O=[{key:"table_rows",label:l("dashboardTableRows"),unit:"count"},{key:"vector_db_storage",label:l("dashboardVectorDb"),unit:"bytes"},{key:"file_storage",label:l("dashboardFileStorage"),unit:"bytes"}].filter(j=>y[j.key]);return o.jsxs("div",{className:q("bpb-usage bpb-scope",n),children:[N&&o.jsx("p",{className:"bpb-usage__enterprise-note",children:l("dashboardEnterpriseUsageNotice")}),(e&&d.length>1||r)&&o.jsxs("div",{className:"bpb-usage__header",children:[e&&d.length>1&&o.jsxs("div",{className:"bpb-usage__period",children:[o.jsx("span",{className:"bpb-usage__period-label",children:l("dashboardBillingPeriod")}),o.jsxs("div",{className:"bpb-usage__period-control",children:[o.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardPrevMonth"),onClick:()=>m(1),disabled:h>=d.length-1,children:o.jsx(Yn,{size:15})}),o.jsxs("span",{className:"bpb-usage__period-field",children:[o.jsx(Os,{size:15,className:"bpb-usage__period-icon"}),o.jsx("select",{className:"bpb-usage__period-select","aria-label":l("dashboardBillingPeriod"),value:c,onChange:j=>u(j.target.value),children:d.map(j=>o.jsx("option",{value:j.value,children:j.label},j.value))}),o.jsx(Da,{size:14,className:"bpb-usage__period-chevron"})]}),o.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardNextMonth"),onClick:()=>m(-1),disabled:h<=0,children:o.jsx(oa,{size:15})})]})]}),r&&o.jsxs(Se,{onClick:r,children:[o.jsx(Jn,{size:15}),l("dashboardIncreaseLimits")]})]}),C&&o.jsxs("section",{className:"bpb-usage__group",children:[o.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardConversationsTitle")}),o.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardConversationsHint")}),o.jsx("div",{className:"bpb-usage__card",children:o.jsx(mr,{entry:C,metric:{key:"conversation_sessions",label:l("dashboardConversationsMetric"),unit:"count"},planAllowance:F("conversation_sessions"),planName:T,stacked:!0})})]}),O.length>0&&o.jsxs("section",{className:"bpb-usage__group",children:[o.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardStorageTitle")}),o.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardStorageHint")}),o.jsx("div",{className:"bpb-usage__card",children:O.map(j=>o.jsx(mr,{entry:y[j.key],metric:j,planAllowance:F(j.key),planName:T},j.key))})]}),P&&o.jsxs("section",{className:"bpb-usage__group",children:[o.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardAiTitle")}),o.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardAiHint")}),o.jsx("div",{className:"bpb-usage__card",children:o.jsx(mr,{entry:P,metric:{key:"ai_spend",label:l("dashboardAiSpend"),unit:"nano-usd"},stacked:!0})}),p&&o.jsxs("div",{className:"bpb-usage__card bpb-usage__card--bots",children:[o.jsx("span",{className:"bpb-usage__subhead",children:l("dashboardAiByBot")}),o.jsx(Sc,{period:c})]})]})]})},wo="usage-banner",wc=({position:a="inline",threshold:e=.9,onUpgrade:t,dismissible:n=!0,cta:r="upgrade",ctaLabel:s,period:i,className:l})=>{const{isOutdatedBilling:d,analytics:c,scope:u}=ne(),{t:p}=be(),{data:h}=Ta({period:i,enabled:!d}),[m,y]=I.useState({}),[f,_]=I.useState(!1),[S,v]=I.useState(null),w=h?Object.entries(h).map(([O,W])=>({key:O,pct:W.quota>0?(W.usage??0)/W.quota:0})).filter(O=>O.pct>=e).sort((O,W)=>W.pct-O.pct)[0]:void 0,T=!!w&&(m[w.key]||Hs(wo,u,w.key));if(d||!w||T)return null;const N={conversation_sessions:p("metricConversations"),table_rows:p("metricTableRows"),vector_db_storage:p("metricVectorDb"),file_storage:p("metricFileStorage"),ai_spend:p("metricAiSpend"),bot_count:p("metricBotCount")}[w.key]??w.key.replace(/_/g," "),F=Math.min(100,Math.round(w.pct*100)),C=w.pct>=1,P=()=>{c.capture(Te.UPGRADE_CTA_CLICKED,{source:"usage_banner",metric:w.key,usage_pct:Math.round(w.pct*100)}),t?t():_(!0)},x=C?"critical":"warning";return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:q("bpb-usage-banner bpb-scope",`bpb-usage-banner--${a}`,`bpb-usage-banner--${x}`,l),role:"alert","aria-live":"polite",children:[o.jsx(an,{size:18,className:"bpb-usage-banner__icon"}),o.jsx("p",{className:"bpb-usage-banner__text",children:C?p("usageBannerLimitReached",{label:N}):p("usageBannerNearLimit",{pct:F,label:N})}),o.jsxs("div",{className:"bpb-usage-banner__actions",children:[o.jsx(Se,{variant:"primary",size:"sm",onClick:P,children:s??p(r==="manage"?"usageBannerManageCta":"usageBannerDefaultCta")}),n&&o.jsx("button",{type:"button",className:"bpb-usage-banner__dismiss","aria-label":p("usageBannerDismiss"),onClick:()=>{Ys(wo,u,w.key),y(O=>({...O,[w.key]:!0}))},children:o.jsx(en,{size:16})})]})]}),!t&&o.jsxs(o.Fragment,{children:[o.jsx(Us,{open:f,onOpenChange:_,onSelectPlan:(O,W)=>{_(!1),v({planId:O,interval:W})}}),S&&o.jsx(Ws,{open:!!S,onOpenChange:O=>!O&&v(null),planId:S.planId,interval:S.interval,onBack:()=>{v(null),_(!0)},onSuccess:()=>v(null)})]})]})},Tc=({Icon:a,title:e,description:t,onClick:n,className:r})=>o.jsxs("button",{type:"button",className:q("bpb-action-card bpb-scope",r),onClick:n,children:[o.jsxs("div",{className:"bpb-action-card__header",children:[o.jsx(a,{size:20}),e]}),o.jsx("p",{className:"bpb-action-card__description",children:t})]}),xt=({children:a})=>o.jsx("span",{className:"bpb-summary-card__icon","aria-hidden":"true",children:a}),To=({isAddons:a,className:e})=>{const{manageBillingUrl:t}=ne(),{t:n}=be(),r=()=>t&&window.open(t,"_blank","noopener");return o.jsxs("button",{type:"button",className:q("bpb-summary-card bpb-scope",a?"bpb-summary-card--addons":"bpb-summary-card--plan",e),onClick:r,disabled:!t,children:[o.jsx(xt,{children:a?o.jsx(Xt,{size:22}):o.jsx(Qt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n(a?"summaryAddonsEyebrow":"summaryCurrentPlan")}),o.jsx("span",{className:"bpb-summary-card__title",children:n("summaryManagedInDashboard")}),o.jsx("span",{className:"bpb-summary-card__meta",children:n("summaryManagedMeta")})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("open"),o.jsx(lt,{size:15})]})]})]})},Ic=({onManage:a,className:e})=>{var _,S;const{isOutdatedBilling:t}=ne(),{t:n}=be(),{data:r}=Me(),{data:s,isLoading:i}=ze({enabled:!t}),{data:l,isLoading:d}=qe();if(r===!1)return null;if(t)return o.jsx(To,{isAddons:!1,className:e});if(i||d)return o.jsx(he,{height:84,rounded:!0,className:q("bpb-scope",e)});const c=s==null?void 0:s.plan.current,u=l==null?void 0:l.find(v=>v.id===(c==null?void 0:c.planId)),p=(c==null?void 0:c.interval)??"month",h=((_=u==null?void 0:u.prices[p])==null?void 0:_.amount)??0,m=((S=u==null?void 0:u.prices[p])==null?void 0:S.currency)??"usd",y=u==null?void 0:u.features.conversation_sessions,f=u?ve(u):"community";return o.jsxs("button",{type:"button",className:q("bpb-summary-card bpb-summary-card--plan bpb-scope",`bpb-summary-card--tier-${f==="managed"?"enterprise":f}`,e),onClick:a,children:[o.jsx(xt,{children:o.jsx(Qt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("summaryCurrentPlan")}),o.jsx("span",{className:"bpb-summary-card__title",children:u?_e(u.name):n("summaryNoPlan")}),o.jsxs("span",{className:"bpb-summary-card__meta",children:[h>0?`${le(h,m,0)}${n(p==="year"?"perYear":"perMonth")}`:n("free"),y!==void 0&&` · ${n("summaryConversationsPerMo",{n:fe(y)})}`]})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(oa,{size:16})]})]})]})},Ac=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=ne(),{t:n}=be(),{data:r}=Me(),{data:s,isLoading:i}=ze({enabled:!t}),{data:l,isLoading:d}=pa();if(r===!1)return null;if(t)return o.jsx(To,{isAddons:!0,className:e});if(i||d)return o.jsx(he,{height:84,rounded:!0,className:q("bpb-scope",e)});const c=(l??[]).flatMap(u=>{var h;const p=((h=s==null?void 0:s.addons[u.id])==null?void 0:h.current.quantity)??0;return p>0?[{name:ga[u.id]?n(ga[u.id]):ot(u.name),quantity:p}]:[]});return o.jsxs("button",{type:"button",className:q("bpb-summary-card bpb-summary-card--addons bpb-scope",c.length>0&&"bpb-summary-card--active",e),onClick:a,children:[o.jsx(xt,{children:o.jsx(Xt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("summaryAddonsEyebrow")}),c.length>0?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-summary-card__title",children:c.length>1?n("summaryActiveAddons",{count:c.length}):n("summaryActiveAddon",{count:c.length})}),o.jsx("span",{className:"bpb-summary-card__meta",children:c.map(u=>`${u.quantity}× ${u.name}`).join(" · ")})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-summary-card__title",children:n("summaryNoAddons")}),o.jsx("span",{className:"bpb-summary-card__meta",children:n("summaryNoAddonsMeta")})]})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(oa,{size:16})]})]})]})},Pc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=ne(),{t:n}=be(),{data:r}=Me(),{data:s,isLoading:i,isError:l}=Bn({enabled:!t});if(r===!1||t)return null;if(i)return o.jsx(he,{height:84,rounded:!0,className:q("bpb-scope",e)});if(l)return o.jsxs("button",{type:"button",className:q("bpb-summary-card bpb-summary-card--auto-recharge bpb-summary-card--error bpb-scope",e),onClick:a,children:[o.jsx(xt,{children:o.jsx(an,{size:20})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("autoRechargeTitle")}),o.jsx("span",{className:"bpb-summary-card__title",children:n("autoRechargeSummaryLoadError")})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(oa,{size:16})]})]})]});const d=s==null?void 0:s.ai_spend,c=(d==null?void 0:d.enabled)??!1,u=(d==null?void 0:d.chunkSize)!=null,p=((d==null?void 0:d.chunkSize)??0)/We,h=(d==null?void 0:d.maxAmount)!=null,m=((d==null?void 0:d.maxAmount)??0)/We,y=c?u?h?n("autoRechargeSummaryMeta",{amount:le(p,"usd",0),limit:le(m,"usd",0)}):n("autoRechargeSummaryMetaNoLimit",{amount:le(p,"usd",0)}):null:n("autoRechargeDescription");return o.jsxs("button",{type:"button",className:q("bpb-summary-card bpb-summary-card--auto-recharge bpb-scope",c&&"bpb-summary-card--active",e),onClick:a,children:[o.jsx(xt,{children:o.jsx(Jt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("autoRechargeTitle")}),o.jsx("span",{className:"bpb-summary-card__title",children:n(c?"autoRechargeSummaryOn":"autoRechargeSummaryOff")}),y&&o.jsx("span",{className:"bpb-summary-card__meta",children:y})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(oa,{size:16})]})]})]})},xc=({onManage:a,className:e})=>{var $,E;const{isOutdatedBilling:t,locale:n,manageBillingUrl:r,analytics:s}=ne(),{t:i}=be(),{data:l}=Me(),{data:d,isLoading:c}=ze({enabled:!t}),{data:u,isLoading:p}=qe(),{data:h,isLoading:m}=pa();if(l===!1)return null;if(t){const ie=()=>r&&window.open(r,"_blank","noopener");return o.jsxs("button",{type:"button",className:q("bpb-plan-banner bpb-plan-banner--community bpb-scope",e),onClick:ie,disabled:!r,children:[o.jsxs("div",{className:"bpb-plan-banner__main",children:[o.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),o.jsx("span",{className:"bpb-plan-banner__name",children:i("planBannerManagedTitle")}),o.jsx("span",{className:"bpb-plan-banner__sub",children:i("planBannerManagedSub")})]}),o.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("open")," ",o.jsx(lt,{size:16})]})]})}if(c||p||m)return o.jsx(he,{height:132,rounded:!0,className:q("bpb-scope",e)});const y=d==null?void 0:d.plan.current,f=u==null?void 0:u.find(ie=>ie.id===(y==null?void 0:y.planId)),_=(y==null?void 0:y.interval)??"month",S=(($=f==null?void 0:f.prices[_])==null?void 0:$.currency)??"usd",v=f?ve(f):"community",w=Object.fromEntries(Object.entries((d==null?void 0:d.addons)??{}).map(([ie,re])=>{var ce;return[ie,((ce=re.current)==null?void 0:ce.quantity)??0]})),T=((E=f==null?void 0:f.prices[_])==null?void 0:E.amount)??0,A=(h??[]).reduce((ie,re)=>{const ce=f?Rt(re,f,_):null;return ie+(w[re.id]??0)*((ce==null?void 0:ce.amount)??0)},0),N=T+A,F=_==="year"?"/yr":"/mo",C=Ss(f,h,w).find(ie=>ie.key==="conversation_sessions"),P=i(v==="community"?"conversationsUnit":"conversationsPerMonth"),x=v==="enterprise"||v==="managed",O=v!=="community"&&!x,W=d==null?void 0:d.plan.next,j=W&&W.planId!==(y==null?void 0:y.planId),Q=y==null?void 0:y.periodEnd,K=O&&!j&&Q&&!nn(Q)?Qe(Q,n):null,B=u==null?void 0:u.find(ie=>ie.id===(W==null?void 0:W.planId)),U=W==null?void 0:W.effectiveDate,Z=j&&B&&U?i("planBannerDowngradesTo",{plan:_e(B.name),date:Qe(U,n)}):null;return o.jsxs("button",{type:"button",className:q("bpb-plan-banner",`bpb-plan-banner--${v}`,"bpb-scope",e),onClick:()=>{s.capture(Te.UPGRADE_CTA_CLICKED,{source:"plan_banner",current_tier:v}),a()},children:[o.jsxs("div",{className:"bpb-plan-banner__main",children:[o.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),o.jsx("span",{className:"bpb-plan-banner__name",children:f?_e(f.name):i("planBannerNoPlan")}),x?o.jsx("span",{className:"bpb-plan-banner__sub",children:C&&C.added>0?o.jsxs(o.Fragment,{children:[i("planBannerCustom")," + ",fe(C.added)," ",P]}):i("planBannerCustomConversations")}):C&&o.jsx("span",{className:"bpb-plan-banner__sub",children:C.added>0?o.jsxs(o.Fragment,{children:[fe(C.base)," + ",fe(C.added)," ",P]}):`${fe(C.total)} ${P}`})]}),o.jsxs("div",{className:"bpb-plan-banner__summary",children:[x?o.jsx("span",{className:"bpb-plan-banner__price",children:i("planBannerCustomPricing")}):o.jsx("span",{className:"bpb-plan-banner__price",children:N>0&&o.jsxs(o.Fragment,{children:[le(N,S,0),o.jsx("span",{className:"bpb-plan-banner__price-suffix",children:F})]})}),O&&o.jsxs("span",{className:"bpb-plan-banner__meta",children:[i(_==="year"?"billedAnnually":"billedMonthly"),A>0&&` ${i("planBannerInclAddons")}`]}),K&&o.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerRenews",{date:K})}),Z&&o.jsx("span",{className:"bpb-plan-banner__meta",children:Z})]}),o.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("planBannerManageCta")," ",o.jsx(oa,{size:16})]})]})},Dc=({onManage:a,period:e,variant:t="card",showHealthyEnterprise:n=!1,className:r,style:s})=>{const{isOutdatedBilling:i,locale:l}=ne(),{t:d}=be(),{data:c,isLoading:u}=ze({enabled:!i}),{data:p,isLoading:h}=qe(),{data:m,isLoading:y}=Ta({period:e,enabled:!i});if(i)return null;if(u||h||y)return o.jsx(he,{height:72,rounded:!0,className:q("bpb-scope",r)});const f=p==null?void 0:p.find(U=>U.id===(c==null?void 0:c.plan.current.planId)),_=f?ve(f):"community",S=_==="enterprise"||_==="managed",v=Pt(m),w=v.find(U=>U.used>U.quota);if(S&&!w&&!n)return null;const T=v.find(U=>U.key==="conversation_sessions"),A=v[0],N=w??(A&&A.key!=="conversation_sessions"&&A.pct>=75?A:T??A),F=N?Math.round(N.pct):0,C=F>0?Math.max(5,F):0,P=N?vn(N.pct):"normal",x=P!=="normal",O=_==="community",W=!O&&(N!=null&&N.resets)?Qe(js(e??new Date().toISOString()),l):null;let j=null,Q=null;if(N&&x){const U=Ya(N.remaining,N.unit);j=d(P==="critical"?"usageWidgetLimitReached":"usageWidgetRunningLow"),S?Q=d("usageWidgetEnterpriseOverQuota"):O&&N.key==="conversation_sessions"?Q=P==="critical"?d("usageWidgetFreeExhausted"):d("usageWidgetFreeLeft",{left:U}):Q=P==="critical"?d("usageWidgetUpgradeToKeepGoing"):d("usageWidgetOnlyLeft",{left:U})}const K=o.jsx(o.Fragment,{children:N?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-plan-usage__head",children:[x&&o.jsx(an,{size:16,className:q("bpb-plan-usage__alert",`bpb-plan-usage__alert--${P}`)}),o.jsx("span",{className:"bpb-plan-usage__plan",children:So(N.key,d)}),o.jsxs("span",{className:"bpb-plan-usage__count",children:[Ya(N.used,N.unit)," / ",Ya(N.quota,N.unit)]}),a&&!x&&o.jsx(oa,{size:15,className:"bpb-plan-usage__chevron"})]}),o.jsx("div",{className:"bpb-plan-usage__bar",role:"progressbar","aria-valuenow":F,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("div",{className:q("bpb-plan-usage__fill",`bpb-plan-usage__fill--${P}`),style:{width:`${C}%`}})}),j?o.jsxs("p",{className:"bpb-plan-usage__status",children:[o.jsxs("strong",{className:q("bpb-plan-usage__status-word",`bpb-plan-usage__status-word--${P}`),children:[j,"."]})," ",Q&&o.jsx("span",{className:"bpb-plan-usage__status-detail",children:Q})]}):W&&o.jsx("span",{className:"bpb-plan-usage__reset",children:d("usageWidgetResets",{date:W})}),a&&x&&!S&&o.jsxs("span",{className:"bpb-plan-usage__cta",children:[d("usageWidgetViewOptions"),o.jsx(Qn,{size:14})]})]}):o.jsxs("div",{className:"bpb-plan-usage__head",children:[o.jsx("span",{className:"bpb-plan-usage__plan",children:f?_e(f.name):d("free")}),a&&o.jsx(oa,{size:15,className:"bpb-plan-usage__chevron"})]})}),B=q("bpb-plan-usage bpb-scope",`bpb-plan-usage--${t}`,x&&`bpb-plan-usage--${P}`,a&&"bpb-plan-usage--clickable",r);return a?o.jsx("button",{type:"button",className:B,style:s,onClick:a,children:K}):o.jsx("div",{className:B,style:s,children:K})},Io=({children:a,delay:e=200,placement:t="top",align:n="center",period:r,onUpgrade:s,block:i=!1,className:l})=>{var U,Z;const{isOutdatedBilling:d,locale:c}=ne(),{t:u}=be(),{data:p}=Ta({period:r,enabled:!d}),{data:h}=ze({enabled:!d}),{data:m}=qe(),{data:y}=pa(),[f,_]=I.useState(!1),S=I.useRef(null),v=()=>{S.current&&(clearTimeout(S.current),S.current=null)};I.useEffect(()=>v,[]);const w=m==null?void 0:m.find($=>$.id===(h==null?void 0:h.plan.current.planId)),T=w?ve(w):"community",A=Pt(p),N=!d&&A.length>0,F=()=>{N&&(v(),S.current=setTimeout(()=>_(!0),Math.max(0,e)))},C=()=>{v(),_(!1)},P=w?_e(w.name):u("free"),x=T==="community",O=x?A.find($=>$.key==="conversation_sessions"):void 0,W=x?m==null?void 0:m.find($=>ve($)==="plus"):void 0,j=W==null?void 0:W.features.conversation_sessions,Q=(Z=(U=Rn(y))==null?void 0:U.increments)==null?void 0:Z.conversation_sessions,K=x&&!!s&&!!j&&!!Q,B=Qe(js(r??new Date().toISOString()),c);return o.jsxs("span",{className:q("bpb-usage-pop bpb-scope",i&&"bpb-usage-pop--block",l),onMouseEnter:F,onMouseLeave:C,onFocus:F,onBlur:C,children:[a,f&&N&&o.jsxs("span",{className:q("bpb-usage-pop__card",`bpb-usage-pop__card--${t}`,`bpb-usage-pop__card--align-${n}`),role:"tooltip",children:[x?o.jsxs("span",{className:"bpb-usage-pop__header",children:[o.jsx("span",{className:"bpb-usage-pop__plan",children:u("usagePopoverFreeTitle")}),O&&o.jsx("span",{className:"bpb-usage-pop__subtitle",children:o.jsx(Ot,{i18nKey:"usagePopoverFreeSubtitle",values:{quota:fe(O.quota)},components:{bold:o.jsx("strong",{})}})})]}):o.jsx(o.Fragment,{children:o.jsxs("span",{className:"flex flex-col gap-1 bpb-usage-pop__title",children:[o.jsx("span",{className:"bpb-usage-pop__plan",children:u("usagePopoverPlanName",{planName:P})}),o.jsx("span",{className:"bpb-usage-pop__period",children:u("usagePopoverTitle",{date:B})})]})}),A.map($=>{const E=$.pct>0?Math.max(5,$.pct):0;return o.jsxs("span",{className:"bpb-usage-pop__item",children:[o.jsxs("span",{className:"bpb-usage-pop__head",children:[o.jsx("span",{className:"bpb-usage-pop__name",children:So($.key,u)}),o.jsxs("span",{className:"bpb-usage-pop__val",children:[Ya($.used,$.unit)," / ",Ya($.quota,$.unit)]})]}),o.jsx("span",{className:"bpb-usage-pop__bar",children:o.jsx("span",{className:q("bpb-usage-pop__fill",`bpb-usage-pop__fill--${vn($.pct)}`),style:{width:`${E}%`}})})]},$.key)}),K&&o.jsx("span",{className:"bpb-usage-pop__nudge",children:o.jsx("span",{className:"bpb-usage-pop__nudge-text",children:o.jsx(Ot,{i18nKey:"usagePopoverNudgeText",values:{quota:fe(j??0),packSize:fe(Q??0)},components:{bold:o.jsx("strong",{})}})})})]})]})},Ec=({size:a=20,thickness:e=3.5,showLabel:t=!1,onClick:n,popoverDelay:r=200,popoverAlign:s="center",trackColor:i="light",period:l,className:d,...c})=>{const{isOutdatedBilling:u}=ne(),{data:p}=Ta({period:l,enabled:!u}),h=Pt(p);if(u||h.length===0)return null;const m=h[0],y=vn(m.pct),f=m.pct>0?Math.max(5,m.pct):0,_=(a-e)/2,S=2*Math.PI*_,v=S*(1-f/100),w=c["aria-label"]??`${Math.round(m.pct)}% of your ${m.label.toLowerCase()} used`,T=o.jsxs(o.Fragment,{children:[o.jsxs("svg",{className:"bpb-usage-ring__svg",width:a,height:a,viewBox:`0 0 ${a} ${a}`,"aria-hidden":!0,children:[o.jsx("circle",{className:q("bpb-usage-ring__track",`bpb-usage-ring__track--${i}`),cx:a/2,cy:a/2,r:_,fill:"none",strokeWidth:e}),o.jsx("circle",{className:q("bpb-usage-ring__arc",`bpb-usage-ring__arc--${y}`),cx:a/2,cy:a/2,r:_,fill:"none",strokeWidth:e,strokeLinecap:"round",strokeDasharray:S,strokeDashoffset:v,transform:`rotate(-90 ${a/2} ${a/2})`})]}),t&&o.jsxs("span",{className:"bpb-usage-ring__label",children:[Math.round(m.pct),"%"]})]}),A=q("bpb-usage-ring",n&&"bpb-usage-ring--clickable"),N=n?o.jsx("button",{type:"button",className:A,onClick:n,"aria-label":w,children:T}):o.jsx("span",{className:A,tabIndex:0,role:"img","aria-label":w,children:T});return o.jsx(Io,{delay:r,align:s,period:l,className:d,children:N})},Ao=({checked:a,onChange:e,disabled:t,className:n,...r})=>o.jsx("button",{type:"button",role:"switch","aria-checked":a,"aria-label":r["aria-label"],disabled:t,className:q("bpb-switch",a&&"bpb-switch--checked",n),onClick:()=>e(!a),children:o.jsx("span",{className:"bpb-switch__thumb"})}),Po="ai_spend",Lc=5,gr=a=>(a??0)/We,br=a=>Math.round(a*We),xo=a=>Number.isInteger(a)&&a>=Lc,Fc=(a,e)=>Number.isInteger(a)&&a>=0&&e>0&&a%e===0,Mc=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=ne(),{t:s}=be(),{data:i}=Me();return i===!1?null:r?o.jsx(Le,{open:a,onOpenChange:e,size:"md","aria-label":s("autoRechargeTitle"),className:"bpb-scope",children:o.jsx(ba,{})}):o.jsx(Le,{open:a,onOpenChange:e,size:"md","aria-label":s("autoRechargeTitle"),className:"bpb-scope",children:o.jsx(Oc,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},Oc=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{const{toast:n,analytics:r}=ne(),{t:s}=be(),{data:i,isLoading:l,isError:d,refetch:c}=ze(),{data:u,isLoading:p,isError:h,refetch:m}=qe(),{data:y,isLoading:f,isError:_,refetch:S}=Bn(),v=Rr(),[w,T]=I.useState(null),[A,N]=I.useState(!1),[F,C]=I.useState(!1),[P,x]=I.useState(!1),O=l||p||f,W=d||h||_,j=()=>{c(),m(),S()},Q=u==null?void 0:u.find(ee=>ee.id===(i==null?void 0:i.plan.current.planId)),K=i?Q?ve(Q)==="community":!0:!1,B=y==null?void 0:y[Po],U=I.useMemo(()=>{const ee=(B==null?void 0:B.maxAmount)!=null,Ne=(B==null?void 0:B.targetType)==="credit_grant"&&(B==null?void 0:B.thresholdType)==="remaining_amount"?B==null?void 0:B.threshold:null;return{thresholdInput:Ne!=null?String(Math.round(gr(Ne))):"",chunkInput:(B==null?void 0:B.chunkSize)!=null?String(Math.round(gr(B.chunkSize))):"",limitInput:(B==null?void 0:B.maxAmount)!=null?String(Math.round(gr(B.maxAmount))):"",hasLimit:ee}},[B]),Z=w??U,$=ee=>T({...Z,...ee}),E=Number(Z.thresholdInput),ie=Number(Z.chunkInput),re=Number(Z.limitInput),ce=Z.thresholdInput.trim()!==""&&xo(E),M=xo(ie),Y=!Z.hasLimit||Z.limitInput.trim()!==""&&Fc(re,ie),J=A&&!ce,H=F&&!M,G=P&&!Y,se=Z.thresholdInput!==U.thresholdInput||Z.chunkInput!==U.chunkInput||Z.limitInput!==U.limitInput||Z.hasLimit!==U.hasLimit,ge=()=>{v.mutate({settings:{[Po]:{targetType:"credit_grant",thresholdType:"remaining_amount",threshold:br(E),chunkSize:br(ie),maxAmount:Z.hasLimit?br(re):null}}},{onSuccess:()=>{n({type:"success",message:s("autoRechargeUpdateSuccess")}),r.capture(Te.AUTO_RECHARGE_UPDATED),T(null),a(!1),e==null||e()},onError:()=>n({type:"error",message:s("autoRechargeUpdateError")})})};return o.jsxs("div",{className:"bpb-auto-recharge-dialog",children:[o.jsx("h2",{className:"bpb-auto-recharge-dialog__title",children:s("autoRechargeTitle")}),o.jsx("p",{className:"bpb-auto-recharge-dialog__subtitle",children:s("autoRechargeDescription")}),O?o.jsxs("div",{className:"bpb-auto-recharge-dialog__loading","aria-busy":"true",children:[o.jsx(he,{height:40}),o.jsx(he,{height:72})]}):W?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-auto-recharge-dialog__error",role:"alert",children:[o.jsx("span",{className:"bpb-auto-recharge-dialog__error-icon","aria-hidden":"true",children:o.jsx(an,{size:18})}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__error-text",children:[o.jsx("p",{className:"bpb-auto-recharge-dialog__error-title",children:s("autoRechargeLoadErrorTitle")}),o.jsx("p",{className:"bpb-auto-recharge-dialog__error-body",children:s("autoRechargeLoadError")})]})]}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__actions",children:[o.jsx(Se,{variant:"outline",onClick:()=>a(!1),children:s("close")}),o.jsx(Se,{variant:"primary",onClick:j,children:s("tryAgain")})]})]}):K?o.jsx(Ks,{title:s("autoRechargeRequiresPaidPlanTitle"),body:s("autoRechargeRequiresPaidPlanBody"),ctaLabel:s("autoRechargeUpgradeCta"),onUpgrade:t?()=>{a(!1),t()}:void 0,onClose:()=>a(!1)}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[o.jsxs("div",{className:q("bpb-auto-recharge-dialog__panel",J&&"bpb-auto-recharge-dialog__panel--invalid"),children:[o.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-threshold",children:s("autoRechargeThresholdLabel")}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[o.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),o.jsx("input",{id:"auto-recharge-threshold",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:v.isPending,value:Z.thresholdInput,onChange:ee=>{$({thresholdInput:ee.target.value}),N(!0)}})]})]}),o.jsx("span",{className:q("bpb-auto-recharge-dialog__hint",J&&"bpb-auto-recharge-dialog__hint--error"),children:s(J?"autoRechargeThresholdError":"autoRechargeThresholdHint")})]}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[o.jsxs("div",{className:q("bpb-auto-recharge-dialog__panel",H&&"bpb-auto-recharge-dialog__panel--invalid"),children:[o.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-chunk",children:s("autoRechargeChunkLabel")}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[o.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),o.jsx("input",{id:"auto-recharge-chunk",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:v.isPending,value:Z.chunkInput,onChange:ee=>{$({chunkInput:ee.target.value}),C(!0)}})]})]}),o.jsx("span",{className:q("bpb-auto-recharge-dialog__hint",H&&"bpb-auto-recharge-dialog__hint--error"),children:s(H?"autoRechargeChunkError":"autoRechargeChunkHint")})]}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[o.jsxs("div",{className:"bpb-auto-recharge-dialog__panel bpb-auto-recharge-dialog__panel--switch",children:[o.jsxs("div",{className:"bpb-auto-recharge-dialog__row-text",children:[o.jsx("span",{className:"bpb-auto-recharge-dialog__row-label",children:s("autoRechargeSetLimitLabel")}),o.jsx("span",{className:"bpb-auto-recharge-dialog__row-description",children:s("autoRechargeSetLimitHint")})]}),o.jsx(Ao,{"aria-label":s("autoRechargeSetLimitLabel"),checked:Z.hasLimit,onChange:ee=>$({hasLimit:ee}),disabled:v.isPending})]}),!Z.hasLimit&&o.jsx("span",{className:"bpb-auto-recharge-dialog__hint",children:s("autoRechargeNoCapHint")})]}),o.jsx("div",{className:q("bpb-auto-recharge-dialog__collapse",Z.hasLimit&&"bpb-auto-recharge-dialog__collapse--open"),children:o.jsx("div",{className:"bpb-auto-recharge-dialog__collapse-inner",children:o.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[o.jsxs("div",{className:q("bpb-auto-recharge-dialog__panel",G&&"bpb-auto-recharge-dialog__panel--invalid"),children:[o.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-limit",children:s("autoRechargeLimitLabel")}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[o.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),o.jsx("input",{id:"auto-recharge-limit",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:v.isPending,value:Z.limitInput,onChange:ee=>{$({limitInput:ee.target.value}),x(!0)}})]})]}),o.jsx("span",{className:q("bpb-auto-recharge-dialog__hint",G&&"bpb-auto-recharge-dialog__hint--error"),children:G?s("autoRechargeLimitError",{amount:le(ie,"usd",0)}):s("autoRechargeLimitHint",{amount:le(ie,"usd",0)})})]})})}),!(B!=null&&B.enabled)&&(B==null?void 0:B.disabledReason)&&o.jsx("p",{className:"bpb-auto-recharge-dialog__disabled-note",role:"alert",children:s("autoRechargeDisabledReason",{reason:B.disabledReason})}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__actions",children:[o.jsx(Se,{variant:"outline",onClick:()=>a(!1),disabled:v.isPending,children:s("cancel")}),o.jsx(Se,{variant:"primary",disabled:!se||!ce||!M||!Y,loading:v.isPending,onClick:ge,children:s("save")})]})]})]})};k.AddonsSummaryCard=Ac,k.AgentsIcon=xs,k.ArrowRightIcon=Qn,k.AutoRechargeDialog=Mc,k.AutoRechargeSummaryCard=Pc,k.BILLING_EVENTS=Te,k.Badge=it,k.BankIcon=Ll,k.BillingActionCard=Tc,k.BillingProvider=Mi,k.BoltIcon=Xt,k.Button=Se,k.CalendarIcon=Os,k.CardBrandBadge=er,k.CardIcon=Hn,k.ChartIcon=Es,k.CheckIcon=ws,k.CheckoutDialog=Ws,k.ChevronDownIcon=Da,k.ChevronLeftIcon=Yn,k.ChevronRightIcon=oa,k.CloseIcon=en,k.DEFAULT_FEATURE_LABELS=vs,k.DEFAULT_PLAN_FEATURES=Yt,k.Dialog=Le,k.DownloadIcon=Xn,k.ENTERPRISE_CONTACT_URL=Kn,k.ExternalLinkIcon=lt,k.GlobeIcon=Ls,k.InboxIcon=Is,k.InfinityIcon=Ps,k.InfoTooltip=dt,k.Input=rn,k.InvoicesDialog=sd,k.LayersIcon=Qt,k.LockIcon=Fl,k.ManageAddonsDialog=nd,k.MessageIcon=Ts,k.MinusIcon=Ms,k.NANO_DOLLARS_PER_DOLLAR=We,k.OutdatedBillingGate=ba,k.OutgrowFreeDialog=Nc,k.PLAN_FEATURE_KEYS=Ht,k.PLAN_ORDER=xa,k.PaintIcon=Fs,k.PaymentMethodDialog=id,k.PlanBanner=xc,k.PlanSummaryCard=Ic,k.PlanUsageWidget=Dc,k.PlusIcon=Jn,k.PuzzleIcon=As,k.ReceiptIcon=Ol,k.SegmentedControl=Bs,k.Select=ir,k.ShieldIcon=$n,k.Skeleton=he,k.SparkleIcon=Jt,k.Stepper=Gs,k.Switch=Ao,k.USAGE_METRICS=Co,k.UpgradePlanDialog=Us,k.UsageBanner=wc,k.UsageDashboard=kc,k.UsagePopover=Io,k.UsageRing=Ec,k.UsersIcon=Ds,k.addDays=ys,k.addonDisplayName=ot,k.addonLimitsPreview=Cs,k.addonPrice=Rt,k.billingKeys=Ie,k.cn=q,k.conversationPackPrice=$t,k.conversationsAddon=Rn,k.currencySymbol=st,k.featureLabel=xl,k.formatBytes=Pa,k.formatCurrency=le,k.formatDate=Qe,k.formatQuantity=fe,k.formatUsage=Ya,k.getCardElementStyle=sr,k.getStripeAppearance=rr,k.getStripePromise=Nr,k.iconForFeature=tn,k.isLegacyBillingVersion=Gr,k.planDisplayName=_e,k.planEntitlements=Ss,k.planKind=ve,k.toStripeLocale=or,k.usageItems=Pt,k.usageTier=vn,k.useAddons=pa,k.useAutoRechargeSettings=Bn,k.useBilling=ne,k.useBillingReadonly=On,k.useCreatePaymentMethodIntent=Un,k.useCustomer=Mn,k.useInvoices=Kr,k.useIsAuthorized=Me,k.usePaymentMethod=Fn,k.usePlans=qe,k.useSetAddons=Yr,k.useSetAutoRechargeSettings=Rr,k.useSetCustomer=Vn,k.useSetPaymentMethod=zn,k.useSetSubscription=jn,k.useSubscription=ze,k.useSubscriptionPreview=Ln,k.useSupportsUsageByBot=Hr,k.useUsage=Ta,k.useUsageByBot=$r,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});