@bpinternal/billing-ui 0.22.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +6 -5
- package/dist/index.js +3324 -3282
- package/dist/index.umd.cjs +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(w,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):(w=typeof globalThis<"u"?globalThis:w||self,o(w.BillingUI={},w.ReactJsxRuntime,w.ReactQuery,w.React,w.StripeJs,w.ReactDOM,w.ReactStripeJs))})(this,function(w,o,_e,I,qo,Zo,ze){"use strict";var Xc=Object.defineProperty;var eu=(w,o,_e)=>o in w?Xc(w,o,{enumerable:!0,configurable:!0,writable:!0,value:_e}):w[o]=_e;var jo=(w,o,_e)=>eu(w,typeof o!="symbol"?o+"":o,_e);const wr=new Map;function Tr(a){let e=wr.get(a);return e||(e=qo.loadStripe(a,{developerTools:{assistant:{enabled:!1}}}),wr.set(a,e)),e}var ye=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wo(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Go={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 Ko=Wo(Go);var $o=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function Ir(a){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=a.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(e.name=t[1],(Ko[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($o),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 Ro=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,Ho=/^\s*$/,Yo=Object.create(null);function Ar(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(Ar,"")+"</"+e.name+">";case"comment":return a+"<!--"+e.comment+"-->"}}var Jo={parse:function(a,e){e||(e={}),e.components||(e.components=Yo);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(Ro,function(d,c){if(i){if(d!=="</"+t.name+">")return;i=!1}var u,p=d.charAt(1)!=="/",g=d.startsWith("<!--"),m=c+d.length,S=a.charAt(m);if(g){var f=Ir(d);return s<0?(n.push(f),n):((u=r[s]).children.push(f),n)}if(p&&(s++,(t=Ir(d)).type==="tag"&&e.components[t.name]&&(t.type="component",i=!0),t.voidElement||i||!S||S==="<"||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&&S!=="<"&&S)){u=s===-1?n:r[s].children;var v=a.indexOf("<",m),C=a.slice(m,v===-1?void 0:v);Ho.test(C)&&(C=" "),(v>-1&&s+u.length>=0||C!==" ")&&u.push({type:"text",content:C})}}),n},stringify:function(a){return a.reduce(function(e,t){return e+Ar("",t)},"")}};function zt(){if(console&&console.warn){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Ve(e[0])&&(e[0]=`react-i18next:: ${e[0]}`),console.warn(...e)}}const Pr={};function Vt(){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Ve(e[0])&&Pr[e[0]]||(Ve(e[0])&&(Pr[e[0]]=new Date),zt(...e))}const xr=(a,e)=>()=>{if(a.isInitialized)e();else{const t=()=>{setTimeout(()=>{a.off("initialized",t)},0),e()};a.on("initialized",t)}},Dr=(a,e,t)=>{a.loadNamespaces(e,xr(a,t))},Er=(a,e,t,n)=>{Ve(t)&&(t=[t]),t.forEach(r=>{a.options.ns.indexOf(r)<0&&a.options.ns.push(r)}),a.loadLanguages(e,xr(a,n))},Qo=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)))},Xo=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(Vt("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}}):Qo(a,e,t)},Ve=a=>typeof a=="string",Va=a=>typeof a=="object"&&a!==null,ei=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,ai={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},ti=a=>ai[a];let wn={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:a=>a.replace(ei,ti)};const ni=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};wn={...wn,...a}},Lr=()=>wn;let Fr;const ri=a=>{Fr=a},Tn=()=>Fr,In=(a,e)=>{if(!a)return!1;const t=a.props?a.props.children:a.children;return e?t.length>0:!!t},An=a=>{if(!a)return[];const e=a.props?a.props.children:a.children;return a.props&&a.props.i18nIsDynamicList?ja(e):e},si=a=>Array.isArray(a)&&a.every(I.isValidElement),ja=a=>Array.isArray(a)?a:[a],oi=(a,e)=>{const t={...e};return t.props=Object.assign(a.props,e.props),t},Mr=(a,e)=>{if(!a)return"";let t="";const n=ja(a),r=e.transSupportBasicHtmlNodes&&e.transKeepBasicHtmlNodesFor?e.transKeepBasicHtmlNodesFor:[];return n.forEach((s,i)=>{if(Ve(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&&Ve(p))t+=`<${d}>${p}</${d}>`;else{const g=Mr(p,e);t+=`<${i}>${g}</${i}>`}}else if(s===null)zt("Trans: the passed in value is invalid - seems you passed in a null child.");else if(Va(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 zt("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",s)}else zt("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},ii=(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=>{ja(v).forEach(_=>{Ve(_)||(In(_)?c(An(_)):Va(_)&&!I.isValidElement(_)&&Object.assign(d,_))})};c(a);const u=Jo.parse(`<0>${e}</0>`),p={...d,...r},g=(v,C,_)=>{const T=An(v),k=S(T,C.children,_);return si(T)&&k.length===0||v.props&&v.props.i18nIsDynamicList?T:k},m=(v,C,_,T,k)=>{v.dummy?(v.children=C,_.push(I.cloneElement(v,{key:T},k?void 0:C))):_.push(...I.Children.map([v],A=>{const y={...A.props};return delete y.i18nIsDynamicList,I.createElement(A.type,{...y,key:T,ref:A.ref},k?null:C)}))},S=(v,C,_)=>{const T=ja(v);return ja(C).reduce((A,y,x)=>{const N=y.children&&y.children[0]&&y.children[0].content&&t.services.interpolator.interpolate(y.children[0].content,p,t.language);if(y.type==="tag"){let O=T[parseInt(y.name,10)];_.length===1&&!O&&(O=_[0][y.name]),O||(O={});const D=Object.keys(y.attrs).length!==0?oi({props:y.attrs},O):O,L=I.isValidElement(D),z=L&&In(y,!0)&&!y.voidElement,j=l&&Va(D)&&D.dummy&&!L,X=Va(a)&&Object.hasOwnProperty.call(a,y.name);if(Ve(D)){const K=t.services.interpolator.interpolate(D,p,t.language);A.push(K)}else if(In(D)||z){const K=g(D,y,_);m(D,K,A,x)}else if(j){const K=S(T,y.children,_);m(D,K,A,x)}else if(Number.isNaN(parseFloat(y.name)))if(X){const K=g(D,y,_);m(D,K,A,x,y.voidElement)}else if(n.transSupportBasicHtmlNodes&&i.indexOf(y.name)>-1)if(y.voidElement)A.push(I.createElement(y.name,{key:`${y.name}-${x}`}));else{const K=S(T,y.children,_);A.push(I.createElement(y.name,{key:`${y.name}-${x}`},K))}else if(y.voidElement)A.push(`<${y.name} />`);else{const K=S(T,y.children,_);A.push(`<${y.name}>${K}</${y.name}>`)}else if(Va(D)&&!L){const K=y.children[0]?N:null;K&&A.push(K)}else m(D,N,A,x,y.children.length!==1||!N)}else if(y.type==="text"){const O=n.transWrapTextNodes,D=s?n.unescape(t.services.interpolator.interpolate(y.content,p,t.language)):t.services.interpolator.interpolate(y.content,p,t.language);O?A.push(I.createElement(O,{key:`${y.name}-${x}`},D)):A.push(D)}return A},[])},f=S([{dummy:!0,children:a||[]}],u,ja(a||[]));return An(f[0])};function li(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:g,shouldUnescape:m,...S}=a;const f=p||Tn();if(!f)return Vt("You will need to pass in an i18next instance by using i18nextReactModule"),e;const v=g||f.t.bind(f)||(z=>z),C={...Lr(),...f.options&&f.options.react};let _=u||v.ns||f.options&&f.options.defaultNS;_=Ve(_)?[_]:_||["translation"];const T=Mr(e,C),k=d||T||C.transEmptyNodeValue||r,{hashTransKey:A}=C,y=r||(A?A(T||k):T||k);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 x=l||t!==void 0||!e?i.interpolation:{interpolation:{...i.interpolation,prefix:"#$?",suffix:"?$#"}},N={...i,context:s||i.context,count:t,...l,...x,defaultValue:k,ns:_},O=y?v(y,N):k;c&&Object.keys(c).forEach(z=>{const j=c[z];if(typeof j.type=="function"||!j.props||!j.props.children||O.indexOf(`${z}/>`)<0&&O.indexOf(`${z} />`)<0)return;function X(){return I.createElement(I.Fragment,null,j)}c[z]=I.createElement(X)});const D=ii(c||e,O,f,C,N,m),L=n!==void 0?n:C.defaultTransParent;return L?I.createElement(L,S,D):D}const di={type:"3rdParty",init(a){ni(a.options.react),ri(a)}},Pn=I.createContext();class ci{constructor(){jo(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}}function nt(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:g,shouldUnescape:m,...S}=a;const{i18n:f,defaultNS:v}=I.useContext(Pn)||{},C=p||f||Tn(),_=g||C&&C.t.bind(C);return li({children:e,count:t,parent:n,i18nKey:r,context:s,tOptions:i,values:l,defaults:d,components:c,ns:u||_&&_.ns||v||C&&C.options&&C.options.defaultNS,i18n:C,t:g,shouldUnescape:m,...S})}const ui=(a,e)=>{const t=I.useRef();return I.useEffect(()=>{t.current=a},[a,e]),t.current},Or=(a,e,t,n)=>a.getFixedT(e,t,n),pi=(a,e,t,n)=>I.useCallback(Or(a,e,t,n),[a,e,t,n]),he=function(a){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:n,defaultNS:r}=I.useContext(Pn)||{},s=t||n||Tn();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new ci),!s){Vt("You will need to pass in an i18next instance by using initReactI18next");const k=(y,x)=>Ve(x)?x:Va(x)&&Ve(x.defaultValue)?x.defaultValue:Array.isArray(y)?y[y.length-1]:y,A=[k,{},!1];return A.t=k,A.i18n={},A.ready=!1,A}s.options.react&&s.options.react.wait!==void 0&&Vt("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const i={...Lr(),...s.options.react,...e},{useSuspense:l,keyPrefix:d}=i;let c=r||s.options&&s.options.defaultNS;c=Ve(c)?[c]:c||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(c);const u=(s.isInitialized||s.initializedStoreOnce)&&c.every(k=>Xo(k,s,i)),p=pi(s,e.lng||null,i.nsMode==="fallback"?c:c[0],d),g=()=>p,m=()=>Or(s,e.lng||null,i.nsMode==="fallback"?c:c[0],d),[S,f]=I.useState(g);let v=c.join();e.lng&&(v=`${e.lng}${v}`);const C=ui(v),_=I.useRef(!0);I.useEffect(()=>{const{bindI18n:k,bindI18nStore:A}=i;_.current=!0,!u&&!l&&(e.lng?Er(s,e.lng,c,()=>{_.current&&f(m)}):Dr(s,c,()=>{_.current&&f(m)})),u&&C&&C!==v&&_.current&&f(m);const y=()=>{_.current&&f(m)};return k&&s&&s.on(k,y),A&&s&&s.store.on(A,y),()=>{_.current=!1,k&&s&&k.split(" ").forEach(x=>s.off(x,y)),A&&s&&A.split(" ").forEach(x=>s.store.off(x,y))}},[s,v]),I.useEffect(()=>{_.current&&u&&f(g)},[s,d,u]);const T=[S,s,u];if(T.t=S,T.i18n=s,T.ready=u,u||!u&&!l)return T;throw new Promise(k=>{e.lng?Er(s,e.lng,c,()=>k()):Dr(s,c,()=>k())})};function gi(a){let{i18n:e,defaultNS:t,children:n}=a;const r=I.useMemo(()=>({i18n:e,defaultNS:t}),[e,t]);return I.createElement(Pn.Provider,{value:r},n)}const te=a=>typeof a=="string",rt=()=>{let a,e;const t=new Promise((n,r)=>{a=n,e=r});return t.resolve=a,t.reject=e,t},Ur=a=>a==null?"":""+a,mi=(a,e,t)=>{a.forEach(n=>{e[n]&&(t[n]=e[n])})},hi=/###/g,Br=a=>a&&a.indexOf("###")>-1?a.replace(hi,"."):a,zr=a=>!a||te(a),st=(a,e,t)=>{const n=te(e)?e.split("."):e;let r=0;for(;r<n.length-1;){if(zr(a))return{};const s=Br(n[r]);!a[s]&&t&&(a[s]=new t),Object.prototype.hasOwnProperty.call(a,s)?a=a[s]:a={},++r}return zr(a)?{}:{obj:a,k:Br(n[r])}},Vr=(a,e,t)=>{const{obj:n,k:r}=st(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=st(a,i,Object);for(;l.obj===void 0&&i.length;)s=`${i[i.length-1]}.${s}`,i=i.slice(0,i.length-1),l=st(a,i,Object),l&&l.obj&&typeof l.obj[`${l.k}.${s}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${s}`]=t},bi=(a,e,t,n)=>{const{obj:r,k:s}=st(a,e,Object);r[s]=r[s]||[],r[s].push(t)},jt=(a,e)=>{const{obj:t,k:n}=st(a,e);if(t)return t[n]},fi=(a,e,t)=>{const n=jt(a,t);return n!==void 0?n:jt(e,t)},jr=(a,e,t)=>{for(const n in e)n!=="__proto__"&&n!=="constructor"&&(n in a?te(a[n])||a[n]instanceof String||te(e[n])||e[n]instanceof String?t&&(a[n]=e[n]):jr(a[n],e[n],t):a[n]=e[n]);return a},qa=a=>a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var yi={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const vi=a=>te(a)?a.replace(/[&<>"'\/]/g,e=>yi[e]):a;class _i{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 Si=[" ",",","?","!",";"],Ci=new _i(20),Ni=(a,e,t)=>{e=e||"",t=t||"";const n=Si.filter(i=>e.indexOf(i)<0&&t.indexOf(i)<0);if(n.length===0)return!0;const r=Ci.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},xn=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},qt=a=>a&&a.replace("_","-"),ki={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||ki,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:(te(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 Qe=new Zt;class Wt{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 qr extends Wt{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):te(n)&&s?l.push(...n.split(s)):l.push(n)));const d=jt(this.data,l);return!d&&!t&&!n&&e.indexOf(".")>-1&&(e=l[0],t=l[1],n=l.slice(2).join(".")),d||!i||!te(n)?d:xn(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),Vr(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)(te(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=jt(this.data,l)||{};i.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?jr(d,n,s):d={...d,...n},Vr(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 Zr={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 Wr={};class Gt extends Wt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),mi(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Qe.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&&!Ni(e,n,r);if(i&&!l){const d=e.match(this.interpolator.nestingRegexp);if(d&&d.length>0)return{key:e,namespaces:te(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:te(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 k=t.nsSeparator||this.options.nsSeparator;return r?{res:`${d}${k}${i}`,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:d,usedParams:this.getUsedParamsDetails(t)}:`${d}${k}${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 g=p&&p.res;const m=p&&p.usedKey||i,S=p&&p.exactUsedKey||i,f=Object.prototype.toString.apply(g),v=["[object Number]","[object Function]","[object RegExp]"],C=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,_=!this.i18nFormat||this.i18nFormat.handleAsObject,T=!te(g)&&typeof g!="boolean"&&typeof g!="number";if(_&&g&&T&&v.indexOf(f)<0&&!(te(C)&&Array.isArray(g))){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const k=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,g,{...t,ns:l}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(p.res=k,p.usedParams=this.getUsedParamsDetails(t),p):k}if(s){const k=Array.isArray(g),A=k?[]:{},y=k?S:m;for(const x in g)if(Object.prototype.hasOwnProperty.call(g,x)){const N=`${y}${s}${x}`;A[x]=this.translate(N,{...t,joinArrays:!1,ns:l}),A[x]===N&&(A[x]=g[x])}g=A}}else if(_&&te(C)&&Array.isArray(g))g=g.join(C),g&&(g=this.extendTranslation(g,e,t,n));else{let k=!1,A=!1;const y=t.count!==void 0&&!te(t.count),x=Gt.hasDefaultValue(t),N=y?this.pluralResolver.getSuffix(c,t.count,t):"",O=t.ordinal&&y?this.pluralResolver.getSuffix(c,t.count,{ordinal:!1}):"",D=y&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),L=D&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${N}`]||t[`defaultValue${O}`]||t.defaultValue;!this.isValidLookup(g)&&x&&(k=!0,g=L),this.isValidLookup(g)||(A=!0,g=i);const j=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&A?void 0:g,X=x&&L!==g&&this.options.updateMissing;if(A||k||X){if(this.logger.log(X?"updateKey":"missingKey",c,d,i,X?L:g),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 U=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&U&&U[0])for(let Z=0;Z<U.length;Z++)K.push(U[Z]);else this.options.saveMissingTo==="all"?K=this.languageUtils.toResolveHierarchy(t.lng||this.language):K.push(t.lng||this.language);const V=(Z,Y,F)=>{const ue=x&&F!==g?F:j;this.options.missingKeyHandler?this.options.missingKeyHandler(Z,d,Y,ue,X,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(Z,d,Y,ue,X,t),this.emit("missingKey",Z,d,Y,g)};this.options.saveMissing&&(this.options.saveMissingPlurals&&y?K.forEach(Z=>{const Y=this.pluralResolver.getSuffixes(Z,t);D&&t[`defaultValue${this.options.pluralSeparator}zero`]&&Y.indexOf(`${this.options.pluralSeparator}zero`)<0&&Y.push(`${this.options.pluralSeparator}zero`),Y.forEach(F=>{V([Z],i+F,t[`defaultValue${F}`]||L)})}):V(K,i,L))}g=this.extendTranslation(g,e,t,p,n),A&&g===i&&this.options.appendNamespaceToMissingKey&&(g=`${d}:${i}`),(A||k)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?g=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${d}:${i}`:i,k?g:void 0):g=this.options.parseMissingKeyHandler(g))}return r?(p.res=g,p.usedParams=this.getUsedParamsDetails(t),p):g}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=te(e)&&(n&&n.interpolation&&n.interpolation.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let u;if(c){const g=e.match(this.interpolator.nestingRegexp);u=g&&g.length}let p=n.replace&&!te(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 g=e.match(this.interpolator.nestingRegexp),m=g&&g.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 g=arguments.length,m=new Array(g),S=0;S<g;S++)m[S]=arguments[S];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=te(l)?[l]:l;return e!=null&&d&&d.length&&n.applyPostProcessor!==!1&&(e=Zr.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 te(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 g=t.count!==void 0&&!te(t.count),m=g&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),S=t.context!==void 0&&(te(t.context)||typeof t.context=="number")&&t.context!=="",f=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);p.forEach(v=>{this.isValidLookup(n)||(l=v,!Wr[`${f[0]}-${v}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(l)&&(Wr[`${f[0]}-${v}`]=!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(C=>{if(this.isValidLookup(n))return;i=C;const _=[u];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(_,u,C,v,t);else{let k;g&&(k=this.pluralResolver.getSuffix(C,t.count,t));const A=`${this.options.pluralSeparator}zero`,y=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(g&&(_.push(u+k),t.ordinal&&k.indexOf(y)===0&&_.push(u+k.replace(y,this.options.pluralSeparator)),m&&_.push(u+A)),S){const x=`${u}${this.options.contextSeparator}${t.context}`;_.push(x),g&&(_.push(x+k),t.ordinal&&k.indexOf(y)===0&&_.push(x+k.replace(y,this.options.pluralSeparator)),m&&_.push(x+A))}}let T;for(;T=_.pop();)this.isValidLookup(n)||(s=T,n=this.getResource(C,v,T,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&&!te(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 Dn=a=>a.charAt(0).toUpperCase()+a.slice(1);class Gr{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Qe.create("languageUtils")}getScriptPartFromCode(e){if(e=qt(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=qt(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(te(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]=Dn(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]=Dn(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=Dn(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)),te(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 te(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))):te(e)&&s(this.formatLanguageCode(e)),n.forEach(i=>{r.indexOf(i)<0&&s(this.formatLanguageCode(i))}),r}}let wi=[{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}],Ti={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 Ii=["v1","v2","v3"],Ai=["v4"],Kr={zero:0,one:1,two:2,few:3,many:4,other:5},Pi=()=>{const a={};return wi.forEach(e=>{e.lngs.forEach(t=>{a[t]={numbers:e.nr,plurals:Ti[e.fc]}})}),a};class xi{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=Qe.create("pluralResolver"),(!this.options.compatibilityJSON||Ai.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=Pi(),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=qt(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)=>Kr[r]-Kr[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!Ii.includes(this.options.compatibilityJSON)}}const $r=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=fi(a,e,t);return!s&&r&&te(t)&&(s=xn(a,t,n),s===void 0&&(s=xn(e,t,n))),s},En=a=>a.replace(/\$/g,"$$$$");class Di{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Qe.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:g,nestingPrefixEscaped:m,nestingSuffix:S,nestingSuffixEscaped:f,nestingOptionsSeparator:v,maxReplaces:C,alwaysFormat:_}=e.interpolation;this.escape=t!==void 0?t:vi,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=s?qa(s):i||"{{",this.suffix=l?qa(l):d||"}}",this.formatSeparator=c||",",this.unescapePrefix=u?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=g?qa(g):m||qa("$t("),this.nestingSuffix=S?qa(S):f||qa(")"),this.nestingOptionsSeparator=v||",",this.maxReplaces=C||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 C=$r(t,d,m,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(C,void 0,n,{...r,...t,interpolationkey:m}):C}const S=m.split(this.formatSeparator),f=S.shift().trim(),v=S.join(this.formatSeparator).trim();return this.format($r(t,d,f,this.options.keySeparator,this.options.ignoreJSONStructure),v,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=>En(m)},{regex:this.regexp,safeValue:m=>this.escapeValue?En(this.escape(m)):En(m)}].forEach(m=>{for(l=0;s=m.regex.exec(e);){const S=s[1].trim();if(i=c(S),i===void 0)if(typeof u=="function"){const v=u(e,s,r);i=te(v)?v:""}else if(r&&Object.prototype.hasOwnProperty.call(r,S))i="";else if(p){i=s[0];continue}else this.logger.warn(`missed to pass in variable ${S} for interpolating ${e}`),i="";else!te(i)&&!this.useRawValueToEscape&&(i=Ur(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 g=`{${p[1]}`;d=p[0],g=this.interpolate(g,i);const m=g.match(/'/g),S=g.match(/"/g);(m&&m.length%2===0&&!S||S.length%2!==0)&&(g=g.replace(/'/g,'"'));try{i=JSON.parse(g),c&&(i={...c,...i})}catch(f){return this.logger.warn(`failed parsing options string in nesting for key ${d}`,f),`${d}${u}${g}`}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&&!te(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&&!te(s))return s;te(s)||(s=Ur(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 Ei=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}},Za=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(qt(n),r),e[i]=l),l(t)}};class Li{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Qe.create("formatter"),this.options=e,this.formats={number:Za((t,n)=>{const r=new Intl.NumberFormat(t,{...n});return s=>r.format(s)}),currency:Za((t,n)=>{const r=new Intl.NumberFormat(t,{...n,style:"currency"});return s=>r.format(s)}),datetime:Za((t,n)=>{const r=new Intl.DateTimeFormat(t,{...n});return s=>r.format(s)}),relativetime:Za((t,n)=>{const r=new Intl.RelativeTimeFormat(t,{...n});return s=>r.format(s,n.range||"day")}),list:Za((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()]=Za(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}=Ei(d);if(this.formats[c]){let p=l;try{const g=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},m=g.locale||g.lng||r.locale||r.lng||n;p=this.formats[c](l,m,{...u,...r,...g})}catch(g){this.logger.warn(g)}return p}else this.logger.warn(`there was no format function for ${c}`);return l},e)}}const Fi=(a,e)=>{a.pending[e]!==void 0&&(delete a.pending[e],a.pendingCount--)};class Mi extends Wt{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=Qe.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 g=`${c}|${p}`;!n.reload&&this.store.hasResourceBundle(c,p)?this.state[g]=2:this.state[g]<0||(this.state[g]===1?i[g]===void 0&&(i[g]=!0):(this.state[g]=1,u=!1,i[g]===void 0&&(i[g]=!0),s[g]===void 0&&(s[g]=!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=>{bi(d.loaded,[s],i),Fi(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();te(e)&&(e=this.languageUtils.toResolveHierarchy(e)),te(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 Rr=()=>({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]),te(a[1])&&(e.defaultValue=a[1]),te(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}}),Hr=a=>(te(a.ns)&&(a.ns=[a.ns]),te(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),te(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs&&a.supportedLngs.indexOf("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),a),Kt=()=>{},Oi=a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(t=>{typeof a[t]=="function"&&(a[t]=a[t].bind(a))})};class ot extends Wt{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=Hr(e),this.services={},this.logger=Qe,this.modules={external:[]},Oi(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&&(te(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=Rr();this.options={...r,...this.options,...Hr(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?Qe.init(s(this.modules.logger),this.options):Qe.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=Li);const p=new Gr(this.options);this.store=new qr(this.options.resources,this.options);const g=this.services;g.logger=Qe,g.resourceStore=this.store,g.languageUtils=p,g.pluralResolver=new xi(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)&&(g.formatter=s(u),g.formatter.init(g,this.options),this.options.interpolation.format=g.formatter.format.bind(g.formatter)),g.interpolator=new Di(this.options),g.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},g.backendConnector=new Mi(s(this.modules.backend),g.resourceStore,g,this.options),g.backendConnector.on("*",function(m){for(var S=arguments.length,f=new Array(S>1?S-1:0),v=1;v<S;v++)f[v-1]=arguments[v];e.emit(m,...f)}),this.modules.languageDetector&&(g.languageDetector=s(this.modules.languageDetector),g.languageDetector.init&&g.languageDetector.init(g,this.options.detection,this.options)),this.modules.i18nFormat&&(g.i18nFormat=s(this.modules.i18nFormat),g.i18nFormat.init&&g.i18nFormat.init(this)),this.translator=new Gt(this.services,this.options),this.translator.on("*",function(m){for(var S=arguments.length,f=new Array(S>1?S-1:0),v=1;v<S;v++)f[v-1]=arguments[v];e.emit(m,...f)}),this.modules.external.forEach(m=>{m.init&&m.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Kt),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=rt(),c=()=>{const u=(p,g)=>{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(g),n(p,g)};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]:Kt;const r=te(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=rt();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=Kt),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"&&Zr.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=rt();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=te(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 g=r.options.keySeparator||".";let m;return d.keyPrefix&&Array.isArray(i)?m=i.map(S=>`${d.keyPrefix}${g}${S}`):m=d.keyPrefix?`${d.keyPrefix}${g}${i}`:i,r.t(m,d)};return te(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=rt();return this.options.ns?(te(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=rt();te(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 Gr(Rr());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 ot(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Kt;const n=e.forkResourceStore;n&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},s=new ot(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 qr(this.store.data,r),s.services.resourceStore=s.store),s.translator=new Gt(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 Le=ot.createInstance();Le.createInstance=ot.createInstance;const Ui=Le.createInstance;Le.dir,Le.init,Le.loadResources,Le.reloadResources,Le.use,Le.changeLanguage,Le.getFixedT,Le.t,Le.exists,Le.setDefaultNamespace,Le.hasLoadedNamespace,Le.loadNamespaces,Le.loadLanguages;const Bi={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",planBannerPendingUpgradeNote:"Pending upgrade — awaiting payment",pendingUpgradeBannerText:"Your last payment failed — this subscription upgrade is on hold until it goes through.",pendingUpgradeBannerCta:"View pending upgrade",pendingUpgradeBlocksManageTooltip:"Resolve your pending upgrade before making more changes",pendingUpgradeTitle:"Pending upgrade",pendingUpgradeFailedLabel:"Payment failed",pendingUpgradeSubtitle:"Review your payment method and make sure you have sufficient funds, then try again.",pendingUpgradeItemsLabel:"Items",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Amount due",pendingUpgradeAmountUnavailable:"Could not load the amount due — try again shortly.",pendingUpgradeExpiresOn:"If unpaid by {date}, this upgrade will be cancelled automatically",pendingUpgradePayCta:"Pay invoice",pendingUpgradeCancelCta:"Cancel upgrade",pendingUpgradePaySuccess:"Payment confirmed",pendingUpgradePayError:"Could not pay the invoice",pendingUpgradeCancelSuccess:"Pending upgrade cancelled",pendingUpgradeCancelError:"Could not cancel the pending upgrade",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",cancelSurveyConfirmTitle:"Are you sure you want to cancel?",cancelSurveyConfirmLede:"Your {plan} features remain available <bold>until this billing cycle ends on {date}.</bold> After that, you'll lose access to:",cancelSurveyConfirmLedeNoDate:"Your {plan} features remain available until this billing cycle ends. After that, you'll lose access to:",cancelSurveyCurrentPlan:"Your current plan",cancelSurveyCurrentAddons:"Your current add-ons",cancelSurveyAddonPack:"{name} pack ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversations",cancelSurveyKeep:"Keep my subscription",cancelSurveyContinue:"Continue",cancelSurveyFeedbackTitle:"Before you go, we'd love to hear your feedback.",cancelSurveyFeedbackLede:"Your feedback helps us make Botpress better. What's the main reason you're canceling your subscription?",cancelSurveyReasonTooExpensive:"Too expensive for my current needs",cancelSurveyReasonNotUsingEnough:"Not using Botpress enough",cancelSurveyReasonMissingFeature:"Missing a key feature I need",cancelSurveyReasonSwitchedTool:"Switched to a different tool or platform",cancelSurveyReasonTechnicalIssues:"Experienced technical issues or bugs",cancelSurveyReasonSupportExpectations:"Support or guidance did not meet my expectations",cancelSurveyReasonTemporaryNeed:"Only needed Botpress temporarily",cancelSurveyCommentLabel:"Additional comments",cancelSurveyOptional:"(optional)",cancelSurveyCommentPlaceholder:"Please share any additional feedback...",cancelSurveyConfirm:"Confirm cancellation",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, $1 or more.",autoRechargeThresholdError:"Must be a whole-dollar amount of at least $1.",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"},zi={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",planBannerPendingUpgradeNote:"Mise à niveau en attente — paiement à confirmer",pendingUpgradeBannerText:"Votre dernier paiement a échoué — cette mise à niveau de l’abonnement est en attente jusqu’à son traitement.",pendingUpgradeBannerCta:"Voir la mise à niveau en attente",pendingUpgradeBlocksManageTooltip:"Résolvez votre mise à niveau en attente avant de faire d’autres changements",pendingUpgradeTitle:"Mise à niveau en attente",pendingUpgradeFailedLabel:"Paiement échoué",pendingUpgradeSubtitle:"Vérifiez votre moyen de paiement et assurez-vous d’avoir des fonds suffisants, puis réessayez.",pendingUpgradeItemsLabel:"Éléments",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Montant dû",pendingUpgradeAmountUnavailable:"Impossible de charger le montant dû — réessayez dans un instant.",pendingUpgradeExpiresOn:"Si elle n’est pas payée avant le {date}, cette mise à niveau sera annulée automatiquement",pendingUpgradePayCta:"Payer la facture",pendingUpgradeCancelCta:"Annuler la mise à niveau",pendingUpgradePaySuccess:"Paiement confirmé",pendingUpgradePayError:"Impossible de payer la facture",pendingUpgradeCancelSuccess:"Mise à niveau en attente annulée",pendingUpgradeCancelError:"Impossible d'annuler la mise à niveau en attente",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",cancelSurveyConfirmTitle:"Voulez-vous vraiment annuler ?",cancelSurveyConfirmLede:"Les fonctionnalités {plan} restent disponibles <bold>jusqu'à la fin de ce cycle de facturation, le {date}.</bold> Ensuite, vous perdrez l'accès à :",cancelSurveyConfirmLedeNoDate:"Les fonctionnalités {plan} restent disponibles jusqu'à la fin de ce cycle de facturation. Ensuite, vous perdrez l'accès à :",cancelSurveyCurrentPlan:"Votre plan actuel",cancelSurveyCurrentAddons:"Vos modules actuels",cancelSurveyAddonPack:"Pack {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversations",cancelSurveyKeep:"Conserver mon abonnement",cancelSurveyContinue:"Continuer",cancelSurveyFeedbackTitle:"Avant de partir, nous aimerions avoir votre avis.",cancelSurveyFeedbackLede:"Vos commentaires nous aident à améliorer Botpress. Quelle est la principale raison de l'annulation de votre abonnement ?",cancelSurveyReasonTooExpensive:"Trop cher pour mes besoins actuels",cancelSurveyReasonNotUsingEnough:"Je n'utilise pas assez Botpress",cancelSurveyReasonMissingFeature:"Il manque une fonctionnalité dont j'ai besoin",cancelSurveyReasonSwitchedTool:"Je suis passé à un autre outil ou une autre plateforme",cancelSurveyReasonTechnicalIssues:"J'ai rencontré des problèmes techniques ou des bogues",cancelSurveyReasonSupportExpectations:"Le support ou l'accompagnement n'a pas répondu à mes attentes",cancelSurveyReasonTemporaryNeed:"Je n'avais besoin de Botpress que temporairement",cancelSurveyCommentLabel:"Commentaires supplémentaires",cancelSurveyOptional:"(facultatif)",cancelSurveyCommentPlaceholder:"Partagez tout commentaire supplémentaire...",cancelSurveyConfirm:"Confirmer l'annulation",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, 1 $ ou plus.",autoRechargeThresholdError:"Doit être un montant entier d’au moins 1 $.",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"},Vi={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",planBannerPendingUpgradeNote:"Actualización pendiente — esperando el pago",pendingUpgradeBannerText:"Tu último pago falló — esta actualización de suscripción está en espera hasta que se procese.",pendingUpgradeBannerCta:"Ver actualización pendiente",pendingUpgradeBlocksManageTooltip:"Resuelve tu actualización pendiente antes de hacer más cambios",pendingUpgradeTitle:"Actualización pendiente",pendingUpgradeFailedLabel:"Pago fallido",pendingUpgradeSubtitle:"Revisa tu método de pago y asegúrate de tener fondos suficientes, luego inténtalo de nuevo.",pendingUpgradeItemsLabel:"Elementos",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Monto a pagar",pendingUpgradeAmountUnavailable:"No se pudo cargar el monto a pagar — inténtalo de nuevo en un momento.",pendingUpgradeExpiresOn:"Si no se paga antes del {date}, esta actualización se cancelará automáticamente",pendingUpgradePayCta:"Pagar factura",pendingUpgradeCancelCta:"Cancelar actualización",pendingUpgradePaySuccess:"Pago confirmado",pendingUpgradePayError:"No se pudo pagar la factura",pendingUpgradeCancelSuccess:"Actualización pendiente cancelada",pendingUpgradeCancelError:"No se pudo cancelar la actualización pendiente",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",cancelSurveyConfirmTitle:"¿Seguro que quieres cancelar?",cancelSurveyConfirmLede:"Las funciones de {plan} siguen disponibles <bold>hasta que termine este ciclo de facturación, el {date}.</bold> Después, perderás el acceso a:",cancelSurveyConfirmLedeNoDate:"Las funciones de {plan} siguen disponibles hasta que termine este ciclo de facturación. Después, perderás el acceso a:",cancelSurveyCurrentPlan:"Tu plan actual",cancelSurveyCurrentAddons:"Tus complementos actuales",cancelSurveyAddonPack:"Paquete de {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversaciones",cancelSurveyKeep:"Mantener mi suscripción",cancelSurveyContinue:"Continuar",cancelSurveyFeedbackTitle:"Antes de que te vayas, nos encantaría conocer tu opinión.",cancelSurveyFeedbackLede:"Tu opinión nos ayuda a mejorar Botpress. ¿Cuál es el motivo principal por el que cancelas tu suscripción?",cancelSurveyReasonTooExpensive:"Demasiado caro para mis necesidades actuales",cancelSurveyReasonNotUsingEnough:"No uso Botpress lo suficiente",cancelSurveyReasonMissingFeature:"Falta una función clave que necesito",cancelSurveyReasonSwitchedTool:"Me cambié a otra herramienta o plataforma",cancelSurveyReasonTechnicalIssues:"Tuve problemas técnicos o errores",cancelSurveyReasonSupportExpectations:"El soporte o la orientación no cumplieron mis expectativas",cancelSurveyReasonTemporaryNeed:"Solo necesitaba Botpress temporalmente",cancelSurveyCommentLabel:"Comentarios adicionales",cancelSurveyOptional:"(opcional)",cancelSurveyCommentPlaceholder:"Comparte cualquier comentario adicional...",cancelSurveyConfirm:"Confirmar cancelació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, $1 o más.",autoRechargeThresholdError:"Debe ser un monto entero de al menos $1.",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"},ji={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",planBannerPendingUpgradeNote:"Atualização pendente — aguardando pagamento",pendingUpgradeBannerText:"Seu último pagamento falhou — esta atualização de assinatura está em espera até ser processada.",pendingUpgradeBannerCta:"Ver atualização pendente",pendingUpgradeBlocksManageTooltip:"Resolva sua atualização pendente antes de fazer mais alterações",pendingUpgradeTitle:"Atualização pendente",pendingUpgradeFailedLabel:"Pagamento falhou",pendingUpgradeSubtitle:"Revise sua forma de pagamento e verifique se há saldo suficiente, depois tente novamente.",pendingUpgradeItemsLabel:"Itens",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Valor a pagar",pendingUpgradeAmountUnavailable:"Não foi possível carregar o valor a pagar — tente novamente em instantes.",pendingUpgradeExpiresOn:"Se não for paga até {date}, esta atualização será cancelada automaticamente",pendingUpgradePayCta:"Pagar fatura",pendingUpgradeCancelCta:"Cancelar atualização",pendingUpgradePaySuccess:"Pagamento confirmado",pendingUpgradePayError:"Não foi possível pagar a fatura",pendingUpgradeCancelSuccess:"Atualização pendente cancelada",pendingUpgradeCancelError:"Não foi possível cancelar a atualização pendente",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",cancelSurveyConfirmTitle:"Tem certeza de que deseja cancelar?",cancelSurveyConfirmLede:"Os recursos do {plan} continuam disponíveis <bold>até o fim deste ciclo de cobrança, em {date}.</bold> Depois disso, você perderá o acesso a:",cancelSurveyConfirmLedeNoDate:"Os recursos do {plan} continuam disponíveis até o fim deste ciclo de cobrança. Depois disso, você perderá o acesso a:",cancelSurveyCurrentPlan:"Seu plano atual",cancelSurveyCurrentAddons:"Seus complementos atuais",cancelSurveyAddonPack:"Pacote de {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversas",cancelSurveyKeep:"Manter minha assinatura",cancelSurveyContinue:"Continuar",cancelSurveyFeedbackTitle:"Antes de você ir, adoraríamos ouvir sua opinião.",cancelSurveyFeedbackLede:"Sua opinião nos ajuda a melhorar o Botpress. Qual é o principal motivo do cancelamento da sua assinatura?",cancelSurveyReasonTooExpensive:"Caro demais para minhas necessidades atuais",cancelSurveyReasonNotUsingEnough:"Não uso o Botpress o suficiente",cancelSurveyReasonMissingFeature:"Falta um recurso importante de que preciso",cancelSurveyReasonSwitchedTool:"Mudei para outra ferramenta ou plataforma",cancelSurveyReasonTechnicalIssues:"Tive problemas técnicos ou bugs",cancelSurveyReasonSupportExpectations:"O suporte ou a orientação não atenderam às minhas expectativas",cancelSurveyReasonTemporaryNeed:"Só precisei do Botpress temporariamente",cancelSurveyCommentLabel:"Comentários adicionais",cancelSurveyOptional:"(opcional)",cancelSurveyCommentPlaceholder:"Compartilhe qualquer comentário adicional...",cancelSurveyConfirm:"Confirmar cancelamento",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, $1 ou mais.",autoRechargeThresholdError:"Deve ser um valor inteiro de pelo menos $1.",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"},Wa="billing",Ln=Ui();Ln.use(di).init({resources:{en:{[Wa]:Bi},fr:{[Wa]:zi},es:{[Wa]:Vi},pt:{[Wa]:ji}},lng:"en",fallbackLng:"en",ns:[Wa],defaultNS:Wa,interpolation:{escapeValue:!1,prefix:"{",suffix:"}"}});const qi=new Set(["v1","v2","v3"]);function Yr(a){return qi.has(a)}const $t=I.createContext(null),Zi={capture:()=>{}};function Wi(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 Gi=({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:g,onBillingChange:m,refreshInterval:S=3e4,children:f})=>{const v=u||"default",[C]=I.useState(()=>new _e.QueryClient({defaultOptions:{queries:{retry:1,staleTime:3e4,gcTime:1e3*60*60}}})),_=Wi(r),T=I.useMemo(()=>Tr(e),[e]);I.useEffect(()=>{if(!p||typeof window>"u")return;const N=`bpb-cache:${v}`;try{const L=window.localStorage.getItem(N);L&&_e.hydrate(C,JSON.parse(L))}catch{window.localStorage.removeItem(N)}let O=null;const D=C.getQueryCache().subscribe(L=>{L.type!=="added"&&L.type!=="removed"&&L.type!=="updated"||(O&&clearTimeout(O),O=setTimeout(()=>{try{window.localStorage.setItem(N,JSON.stringify(_e.dehydrate(C)))}catch{}},250))});return()=>{O&&clearTimeout(O),D()}},[p,v,C]);const k=I.useCallback(()=>C.invalidateQueries({queryKey:["bpb",v]}),[C,v]),A=I.useCallback(N=>m==null?void 0:m(N),[m]),y=S>0?S:!1;Ln.changeLanguage(n);const x=I.useMemo(()=>({client:a,queryClient:C,scope:v,stripePromise:T,email:t,locale:n,isDark:_,colorScheme:s,toast:i??(()=>{}),analytics:l??Zi,featureLabels:d,isOutdatedBilling:c!==void 0&&Yr(c),manageBillingUrl:g,refetchInterval:y,refresh:k,notifyBillingChange:A}),[a,C,v,T,t,n,_,s,i,l,d,c,g,y,k,A]);return o.jsx($t.Provider,{value:x,children:o.jsx(gi,{i18n:Ln,children:o.jsx("div",{className:"bpb-scope","data-bpb-theme":_?"dark":"light","data-bpb-color-scheme":s,style:{display:"contents"},children:f})})})};function Q(){const a=I.useContext($t);if(!a)throw new Error("@bpinternal/billing-ui components must be rendered inside <BillingProvider>");return a}function Ki(){var a;return((a=I.useContext($t))==null?void 0:a.isDark)??!1}function $i(){var a;return((a=I.useContext($t))==null?void 0:a.colorScheme)??"default"}const we={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",DOWNGRADE_CONFIRM_VIEWED:"billing_downgrade_confirm_viewed",DOWNGRADE_SURVEY_VIEWED:"billing_downgrade_survey_viewed",DOWNGRADE_SURVEY_SUBMITTED:"billing_downgrade_survey_submitted",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"},Te={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]},Ri=["billing","manager","administrator","owner"];function Fe(a){const{client:e,refetchInterval:t,queryClient:n,scope:r}=Q();return _e.useQuery({queryKey:Te.isAuthorized(r),queryFn:async()=>{const s=await e.getWorkspaceMember({});return Ri.includes(s.role)},enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:t},n)}function ba(a=!0){const{data:e}=Fe();return a&&e===!0}function Ue(){const{client:a,queryClient:e,scope:t}=Q();return _e.useQuery({queryKey:Te.plans(t),queryFn:()=>a.listPlans({})},e)}function Xe(){const{client:a,queryClient:e,scope:t}=Q();return _e.useQuery({queryKey:Te.addons(t),queryFn:()=>a.listAddons({})},e)}function Me(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=Q();return _e.useQuery({queryKey:Te.subscription(n),queryFn:()=>e.getSubscription({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function Rt(a){const{data:e}=Me(a);return!!(e!=null&&e.pendingUpgrade)}function Fn(a,e){const{client:t,queryClient:n,scope:r}=Q(),s=ba(e==null?void 0:e.enabled);return _e.useQuery({queryKey:Te.preview(r,a),queryFn:()=>t.previewSubscriptionUpdate(a),enabled:s},n)}function Mn(a){const{client:e,queryClient:t,scope:n}=Q(),r=ba(a==null?void 0:a.enabled);return _e.useQuery({queryKey:Te.paymentMethod(n),queryFn:()=>e.getPaymentMethod({}),enabled:r},t)}function On(a){const{client:e,queryClient:t,scope:n}=Q(),r=ba(a==null?void 0:a.enabled);return _e.useQuery({queryKey:Te.customer(n),queryFn:()=>e.getCustomer({}),enabled:r},t)}function Jr(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=Q(),s=ba(a==null?void 0:a.enabled);return _e.useQuery({queryKey:Te.invoices(n),queryFn:()=>e.listInvoices({}),enabled:s,refetchInterval:r},t)}function Hi(a){const{client:e,queryClient:t,scope:n}=Q(),r=ba(!!a);return _e.useQuery({queryKey:["bpb",n,"pending-invoice",a],queryFn:async()=>{let s;for(let i=0;i<20;i++){const{invoices:l,meta:d}=await e.listInvoices({nextToken:s}),c=l.find(u=>u.id===a);if(c)return c;if(!d.nextToken)return null;s=d.nextToken}return null},enabled:r},t)}function Un(a){const{client:e,queryClient:t,scope:n}=Q(),r=ba(a==null?void 0:a.enabled);return _e.useQuery({queryKey:Te.readonly(n),queryFn:()=>e.getBillingReadonly({}),enabled:r},t)}function Bn(a){const{client:e,queryClient:t,scope:n}=Q(),r=ba(a==null?void 0:a.enabled);return _e.useQuery({queryKey:Te.autoRecharge(n),queryFn:()=>e.getAutoRechargeSettings({}).then(s=>s.settings),enabled:r},t)}function Qr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return _e.useMutation({mutationFn:r=>a.setAutoRechargeSettings(r).then(s=>s.settings),onSuccess:async r=>{e.setQueryData(Te.autoRecharge(t),r),n({type:"auto-recharge"})}},e)}function Ta(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=Q(),s=a!=null&&a.period?new Date(a.period):new Date,i=`${s.getUTCFullYear()}-${String(s.getUTCMonth()+1).padStart(2,"0")}`;return _e.useQuery({queryKey:Te.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 Xr(a,e){const{client:t,queryClient:n,scope:r,refetchInterval:s}=Q(),i=ba(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 _e.useQuery({queryKey:Te.usageByBot(r,a,p),queryFn:async()=>{const[g,m]=await Promise.all([l({id:r,type:a,period:`${p}-01T00:00:00.000Z`}),d({})]),S=new Map(m.bots.map(f=>[f.id,f.name]));return g.data.map(f=>({botId:f.botId,name:S.get(f.botId)??f.botId,value:f.value})).sort((f,v)=>v.value-f.value)},enabled:c&&i,refetchInterval:s},n)}function es(){const{client:a}=Q();return typeof a.breakDownWorkspaceUsageByBot=="function"&&typeof a.listBots=="function"}function zn(){const{client:a,queryClient:e}=Q();return _e.useMutation({mutationFn:()=>a.createPaymentMethodIntent({})},e)}function Vn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return _e.useMutation({mutationFn:r=>a.setPaymentMethod(r),onSuccess:async()=>{await e.invalidateQueries({queryKey:Te.paymentMethod(t)}),n({type:"payment-method"})}},e)}function jn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return _e.useMutation({mutationFn:r=>a.setCustomer(r),onSuccess:async(r,s)=>{await e.invalidateQueries({queryKey:Te.customer(t)}),s.address&&n({type:"billing-address"})}},e)}function as(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return _e.useMutation({mutationFn:r=>a.setAddons(r),onSuccess:async r=>{e.setQueryData(Te.subscription(t),r),await Promise.all([e.invalidateQueries({queryKey:Te.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:r.pendingUpgrade?"pending-upgrade":"addons"})}},e)}function qn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return _e.useMutation({mutationFn:async r=>{const s=await a.setPlan({planId:r.planId,interval:r.interval,couponCode:r.couponCode});return r.addons&&Object.keys(r.addons).length>0?await a.setAddons({addons:r.addons,couponCode:r.couponCode}):s},onSuccess:async r=>{e.setQueryData(Te.subscription(t),r),await Promise.all([e.invalidateQueries({queryKey:Te.plans(t)}),e.invalidateQueries({queryKey:Te.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:r.pendingUpgrade?"pending-upgrade":"subscription"})}},e)}function ts(){const{client:a,queryClient:e,scope:t}=Q();return _e.useMutation({mutationFn:async n=>{t!=="default"&&await a.saveWorkspaceCancellationReasons({id:t,reasons:[n.reason],comment:n.comment})}},e)}function ns(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return _e.useMutation({mutationFn:r=>a.payInvoice(r),onSuccess:async()=>{await new Promise(r=>setTimeout(r,1e3)),await Promise.all([e.invalidateQueries({queryKey:Te.subscription(t)}),e.invalidateQueries({queryKey:Te.invoices(t)})]),n({type:"pending-upgrade"})}},e)}function rs(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return _e.useMutation({mutationFn:async()=>{await a.cancelPendingSubscriptionUpgrade({})},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:Te.subscription(t)}),e.invalidateQueries({queryKey:Te.invoices(t)})]),n({type:"pending-upgrade"})}},e)}function ss(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=ss(a[e]))&&(n&&(n+=" "),n+=t)}else for(t in a)a[t]&&(n&&(n+=" "),n+=t);return n}function Yi(){for(var a,e,t=0,n="",r=arguments.length;t<r;t++)(a=arguments[t])&&(e=ss(a))&&(n&&(n+=" "),n+=e);return n}const Ji=(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},Qi=(a,e)=>({classGroupId:a,validator:e}),os=(a=new Map,e=null,t)=>({nextPart:a,validators:e,classGroupId:t}),Ht="-",is=[],Xi="arbitrary..",el=a=>{const e=tl(a),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=a;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return al(i);const l=i.split(Ht),d=l[0]===""&&l.length>1?1:0;return ls(l,d,e)},getConflictingClassGroupIds:(i,l)=>{if(l){const d=n[i],c=t[i];return d?c?Ji(c,d):d:c||is}return t[i]||is}}},ls=(a,e,t)=>{if(a.length-e===0)return t.classGroupId;const r=a[e],s=t.nextPart.get(r);if(s){const c=ls(a,e+1,s);if(c)return c}const i=t.validators;if(i===null)return;const l=e===0?a.join(Ht):a.slice(e).join(Ht),d=i.length;for(let c=0;c<d;c++){const u=i[c];if(u.validator(l))return u.classGroupId}},al=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?Xi+n:void 0})(),tl=a=>{const{theme:e,classGroups:t}=a;return nl(t,e)},nl=(a,e)=>{const t=os();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];rl(i,e,t,n)}},rl=(a,e,t,n)=>{if(typeof a=="string"){sl(a,e,t);return}if(typeof a=="function"){ol(a,e,t,n);return}il(a,e,t,n)},sl=(a,e,t)=>{const n=a===""?e:ds(e,a);n.classGroupId=t},ol=(a,e,t,n)=>{if(ll(a)){Zn(a(n),e,t,n);return}e.validators===null&&(e.validators=[]),e.validators.push(Qi(t,a))},il=(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,ds(e,l),t,n)}},ds=(a,e)=>{let t=a;const n=e.split(Ht),r=n.length;for(let s=0;s<r;s++){const i=n[s];let l=t.nextPart.get(i);l||(l=os(),t.nextPart.set(i,l)),t=l}return t},ll=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,dl=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)}}},Wn="!",cs=":",cl=[],us=(a,e,t,n,r)=>({modifiers:a,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:n,isExternal:r}),ul=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 v=r[f];if(i===0&&l===0){if(v===cs){s.push(r.slice(d,f)),d=f+1;continue}if(v==="/"){c=f;continue}}v==="["?i++:v==="]"?i--:v==="("?l++:v===")"&&l--}const p=s.length===0?r:r.slice(d);let g=p,m=!1;p.endsWith(Wn)?(g=p.slice(0,-1),m=!0):p.startsWith(Wn)&&(g=p.slice(1),m=!0);const S=c&&c>d?c-d:void 0;return us(s,m,g,S)};if(e){const r=e+cs,s=n;n=i=>i.startsWith(r)?s(i.slice(r.length)):us(cl,!1,i,void 0,!0)}if(t){const r=n;n=s=>t({className:s,parseClassName:r})}return n},pl=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}},gl=a=>({cache:dl(a.cacheSize),parseClassName:ul(a),sortModifiers:pl(a),postfixLookupClassGroupIds:ml(a),...el(a)}),ml=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},hl=/\s+/,bl=(a,e)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:r,sortModifiers:s,postfixLookupClassGroupIds:i}=e,l=[],d=a.trim().split(hl);let c="";for(let u=d.length-1;u>=0;u-=1){const p=d[u],{isExternal:g,modifiers:m,hasImportantModifier:S,baseClassName:f,maybePostfixModifierPosition:v}=t(p);if(g){c=p+(c.length>0?" "+c:c);continue}let C=!!v,_;if(C){const x=f.substring(0,v);_=n(x);const N=_&&i[_]?n(f):void 0;N&&N!==_&&(_=N,C=!1)}else _=n(f);if(!_){if(!C){c=p+(c.length>0?" "+c:c);continue}if(_=n(f),!_){c=p+(c.length>0?" "+c:c);continue}C=!1}const T=m.length===0?"":m.length===1?m[0]:s(m).join(":"),k=S?T+Wn:T,A=k+_;if(l.indexOf(A)>-1)continue;l.push(A);const y=r(_,C);for(let x=0;x<y.length;++x){const N=y[x];l.push(k+N)}c=p+(c.length>0?" "+c:c)}return c},fl=(...a)=>{let e=0,t,n,r="";for(;e<a.length;)(t=a[e++])&&(n=ps(t))&&(r&&(r+=" "),r+=n);return r},ps=a=>{if(typeof a=="string")return a;let e,t="";for(let n=0;n<a.length;n++)a[n]&&(e=ps(a[n]))&&(t&&(t+=" "),t+=e);return t},yl=(a,...e)=>{let t,n,r,s;const i=d=>{const c=e.reduce((u,p)=>p(u),a());return t=gl(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=bl(d,t);return r(d,u),u};return s=i,(...d)=>s(fl(...d))},vl=[],xe=a=>{const e=t=>t[a]||vl;return e.isThemeGetter=!0,e},gs=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ms=/^\((?:(\w[\w-]*):)?(.+)\)$/i,_l=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Sl=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Cl=/\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$/,Nl=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,kl=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,wl=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,fa=a=>_l.test(a),ce=a=>!!a&&!Number.isNaN(Number(a)),ea=a=>!!a&&Number.isInteger(Number(a)),Gn=a=>a.endsWith("%")&&ce(a.slice(0,-1)),da=a=>Sl.test(a),hs=()=>!0,Tl=a=>Cl.test(a)&&!Nl.test(a),Kn=()=>!1,Il=a=>kl.test(a),Al=a=>wl.test(a),Pl=a=>!W(a)&&!$(a),xl=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)),Dl=a=>ya(a,Ss,Kn),W=a=>gs.test(a),Ia=a=>ya(a,Cs,Tl),bs=a=>ya(a,zl,ce),El=a=>ya(a,ks,hs),Ll=a=>ya(a,Ns,Kn),fs=a=>ya(a,vs,Kn),Fl=a=>ya(a,_s,Al),Yt=a=>ya(a,ws,Il),$=a=>ms.test(a),it=a=>Aa(a,Cs),Ml=a=>Aa(a,Ns),ys=a=>Aa(a,vs),Ol=a=>Aa(a,Ss),Ul=a=>Aa(a,_s),Jt=a=>Aa(a,ws,!0),Bl=a=>Aa(a,ks,!0),ya=(a,e,t)=>{const n=gs.exec(a);return n?n[1]?e(n[1]):t(n[2]):!1},Aa=(a,e,t=!1)=>{const n=ms.exec(a);return n?n[1]?e(n[1]):t:!1},vs=a=>a==="position"||a==="percentage",_s=a=>a==="image"||a==="url",Ss=a=>a==="length"||a==="size"||a==="bg-size",Cs=a=>a==="length",zl=a=>a==="number",Ns=a=>a==="family-name",ks=a=>a==="number"||a==="weight",ws=a=>a==="shadow",Vl=yl(()=>{const a=xe("color"),e=xe("font"),t=xe("text"),n=xe("font-weight"),r=xe("tracking"),s=xe("leading"),i=xe("breakpoint"),l=xe("container"),d=xe("spacing"),c=xe("radius"),u=xe("shadow"),p=xe("inset-shadow"),g=xe("text-shadow"),m=xe("drop-shadow"),S=xe("blur"),f=xe("perspective"),v=xe("aspect"),C=xe("ease"),_=xe("animate"),T=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],A=()=>[...k(),$,W],y=()=>["auto","hidden","clip","visible","scroll"],x=()=>["auto","contain","none"],N=()=>[$,W,d],O=()=>[fa,"full","auto",...N()],D=()=>[ea,"none","subgrid",$,W],L=()=>["auto",{span:["full",ea,$,W]},ea,$,W],z=()=>[ea,"auto",$,W],j=()=>["auto","min","max","fr",$,W],X=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],K=()=>["start","end","center","stretch","center-safe","end-safe"],U=()=>["auto",...N()],V=()=>[fa,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...N()],Z=()=>[fa,"screen","full","dvw","lvw","svw","min","max","fit",...N()],Y=()=>[fa,"screen","full","lh","dvh","lvh","svh","min","max","fit",...N()],F=()=>[a,$,W],ue=()=>[...k(),ys,fs,{position:[$,W]}],E=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ae=()=>["auto","cover","contain",Ol,Dl,{size:[$,W]}],oe=()=>[Gn,it,Ia],J=()=>["","none","full",c,$,W],me=()=>["",ce,it,Ia],q=()=>["solid","dashed","dotted","double"],ne=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],H=()=>[ce,Gn,ys,fs],pe=()=>["","none",S,$,W],be=()=>["none",ce,$,W],P=()=>["none",ce,$,W],re=()=>[ce,$,W],le=()=>[fa,"full",...N()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[da],breakpoint:[da],color:[hs],container:[da],"drop-shadow":[da],ease:["in","out","in-out"],font:[Pl],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[da],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[da],shadow:[da],spacing:["px",ce],text:[da],"text-shadow":[da],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",fa,W,$,v]}],container:["container"],"container-type":[{"@container":["","normal","size",$,W]}],"container-named":[xl],columns:[{columns:[ce,W,$,l]}],"break-after":[{"break-after":T()}],"break-before":[{"break-before":T()}],"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:y()}],"overflow-x":[{"overflow-x":y()}],"overflow-y":[{"overflow-y":y()}],overscroll:[{overscroll:x()}],"overscroll-x":[{"overscroll-x":x()}],"overscroll-y":[{"overscroll-y":x()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:O()}],"inset-x":[{"inset-x":O()}],"inset-y":[{"inset-y":O()}],start:[{"inset-s":O(),start:O()}],end:[{"inset-e":O(),end:O()}],"inset-bs":[{"inset-bs":O()}],"inset-be":[{"inset-be":O()}],top:[{top:O()}],right:[{right:O()}],bottom:[{bottom:O()}],left:[{left:O()}],visibility:["visible","invisible","collapse"],z:[{z:[ea,"auto",$,W]}],basis:[{basis:[fa,"full","auto",l,...N()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ce,fa,"auto","initial","none",W]}],grow:[{grow:["",ce,$,W]}],shrink:[{shrink:["",ce,$,W]}],order:[{order:[ea,"first","last","none",$,W]}],"grid-cols":[{"grid-cols":D()}],"col-start-end":[{col:L()}],"col-start":[{"col-start":z()}],"col-end":[{"col-end":z()}],"grid-rows":[{"grid-rows":D()}],"row-start-end":[{row:L()}],"row-start":[{"row-start":z()}],"row-end":[{"row-end":z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":j()}],"auto-rows":[{"auto-rows":j()}],gap:[{gap:N()}],"gap-x":[{"gap-x":N()}],"gap-y":[{"gap-y":N()}],"justify-content":[{justify:[...X(),"normal"]}],"justify-items":[{"justify-items":[...K(),"normal"]}],"justify-self":[{"justify-self":["auto",...K()]}],"align-content":[{content:["normal",...X()]}],"align-items":[{items:[...K(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...K(),{baseline:["","last"]}]}],"place-content":[{"place-content":X()}],"place-items":[{"place-items":[...K(),"baseline"]}],"place-self":[{"place-self":["auto",...K()]}],p:[{p:N()}],px:[{px:N()}],py:[{py:N()}],ps:[{ps:N()}],pe:[{pe:N()}],pbs:[{pbs:N()}],pbe:[{pbe:N()}],pt:[{pt:N()}],pr:[{pr:N()}],pb:[{pb:N()}],pl:[{pl:N()}],m:[{m:U()}],mx:[{mx:U()}],my:[{my:U()}],ms:[{ms:U()}],me:[{me:U()}],mbs:[{mbs:U()}],mbe:[{mbe:U()}],mt:[{mt:U()}],mr:[{mr:U()}],mb:[{mb:U()}],ml:[{ml:U()}],"space-x":[{"space-x":N()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":N()}],"space-y-reverse":["space-y-reverse"],size:[{size:V()}],"inline-size":[{inline:["auto",...Z()]}],"min-inline-size":[{"min-inline":["auto",...Z()]}],"max-inline-size":[{"max-inline":["none",...Z()]}],"block-size":[{block:["auto",...Y()]}],"min-block-size":[{"min-block":["auto",...Y()]}],"max-block-size":[{"max-block":["none",...Y()]}],w:[{w:[l,"screen",...V()]}],"min-w":[{"min-w":[l,"screen","none",...V()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[i]},...V()]}],h:[{h:["screen","lh",...V()]}],"min-h":[{"min-h":["screen","lh","none",...V()]}],"max-h":[{"max-h":["screen","lh",...V()]}],"font-size":[{text:["base",t,it,Ia]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,Bl,El]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Gn,W]}],"font-family":[{font:[Ml,Ll,e]}],"font-features":[{"font-features":[W]}],"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,$,W]}],"line-clamp":[{"line-clamp":[ce,"none",$,bs]}],leading:[{leading:[s,...N()]}],"list-image":[{"list-image":["none",$,W]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",$,W]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:F()}],"text-color":[{text:F()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...q(),"wavy"]}],"text-decoration-thickness":[{decoration:[ce,"from-font","auto",$,Ia]}],"text-decoration-color":[{decoration:F()}],"underline-offset":[{"underline-offset":[ce,"auto",$,W]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:N()}],"tab-size":[{tab:[ea,$,W]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",$,W]}],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",$,W]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ue()}],"bg-repeat":[{bg:E()}],"bg-size":[{bg:ae()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ea,$,W],radial:["",$,W],conic:[ea,$,W]},Ul,Fl]}],"bg-color":[{bg:F()}],"gradient-from-pos":[{from:oe()}],"gradient-via-pos":[{via:oe()}],"gradient-to-pos":[{to:oe()}],"gradient-from":[{from:F()}],"gradient-via":[{via:F()}],"gradient-to":[{to:F()}],rounded:[{rounded:J()}],"rounded-s":[{"rounded-s":J()}],"rounded-e":[{"rounded-e":J()}],"rounded-t":[{"rounded-t":J()}],"rounded-r":[{"rounded-r":J()}],"rounded-b":[{"rounded-b":J()}],"rounded-l":[{"rounded-l":J()}],"rounded-ss":[{"rounded-ss":J()}],"rounded-se":[{"rounded-se":J()}],"rounded-ee":[{"rounded-ee":J()}],"rounded-es":[{"rounded-es":J()}],"rounded-tl":[{"rounded-tl":J()}],"rounded-tr":[{"rounded-tr":J()}],"rounded-br":[{"rounded-br":J()}],"rounded-bl":[{"rounded-bl":J()}],"border-w":[{border:me()}],"border-w-x":[{"border-x":me()}],"border-w-y":[{"border-y":me()}],"border-w-s":[{"border-s":me()}],"border-w-e":[{"border-e":me()}],"border-w-bs":[{"border-bs":me()}],"border-w-be":[{"border-be":me()}],"border-w-t":[{"border-t":me()}],"border-w-r":[{"border-r":me()}],"border-w-b":[{"border-b":me()}],"border-w-l":[{"border-l":me()}],"divide-x":[{"divide-x":me()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":me()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...q(),"hidden","none"]}],"divide-style":[{divide:[...q(),"hidden","none"]}],"border-color":[{border:F()}],"border-color-x":[{"border-x":F()}],"border-color-y":[{"border-y":F()}],"border-color-s":[{"border-s":F()}],"border-color-e":[{"border-e":F()}],"border-color-bs":[{"border-bs":F()}],"border-color-be":[{"border-be":F()}],"border-color-t":[{"border-t":F()}],"border-color-r":[{"border-r":F()}],"border-color-b":[{"border-b":F()}],"border-color-l":[{"border-l":F()}],"divide-color":[{divide:F()}],"outline-style":[{outline:[...q(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ce,$,W]}],"outline-w":[{outline:["",ce,it,Ia]}],"outline-color":[{outline:F()}],shadow:[{shadow:["","none",u,Jt,Yt]}],"shadow-color":[{shadow:F()}],"inset-shadow":[{"inset-shadow":["none",p,Jt,Yt]}],"inset-shadow-color":[{"inset-shadow":F()}],"ring-w":[{ring:me()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:F()}],"ring-offset-w":[{"ring-offset":[ce,Ia]}],"ring-offset-color":[{"ring-offset":F()}],"inset-ring-w":[{"inset-ring":me()}],"inset-ring-color":[{"inset-ring":F()}],"text-shadow":[{"text-shadow":["none",g,Jt,Yt]}],"text-shadow-color":[{"text-shadow":F()}],opacity:[{opacity:[ce,$,W]}],"mix-blend":[{"mix-blend":[...ne(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ne()}],"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":[ce]}],"mask-image-linear-from-pos":[{"mask-linear-from":H()}],"mask-image-linear-to-pos":[{"mask-linear-to":H()}],"mask-image-linear-from-color":[{"mask-linear-from":F()}],"mask-image-linear-to-color":[{"mask-linear-to":F()}],"mask-image-t-from-pos":[{"mask-t-from":H()}],"mask-image-t-to-pos":[{"mask-t-to":H()}],"mask-image-t-from-color":[{"mask-t-from":F()}],"mask-image-t-to-color":[{"mask-t-to":F()}],"mask-image-r-from-pos":[{"mask-r-from":H()}],"mask-image-r-to-pos":[{"mask-r-to":H()}],"mask-image-r-from-color":[{"mask-r-from":F()}],"mask-image-r-to-color":[{"mask-r-to":F()}],"mask-image-b-from-pos":[{"mask-b-from":H()}],"mask-image-b-to-pos":[{"mask-b-to":H()}],"mask-image-b-from-color":[{"mask-b-from":F()}],"mask-image-b-to-color":[{"mask-b-to":F()}],"mask-image-l-from-pos":[{"mask-l-from":H()}],"mask-image-l-to-pos":[{"mask-l-to":H()}],"mask-image-l-from-color":[{"mask-l-from":F()}],"mask-image-l-to-color":[{"mask-l-to":F()}],"mask-image-x-from-pos":[{"mask-x-from":H()}],"mask-image-x-to-pos":[{"mask-x-to":H()}],"mask-image-x-from-color":[{"mask-x-from":F()}],"mask-image-x-to-color":[{"mask-x-to":F()}],"mask-image-y-from-pos":[{"mask-y-from":H()}],"mask-image-y-to-pos":[{"mask-y-to":H()}],"mask-image-y-from-color":[{"mask-y-from":F()}],"mask-image-y-to-color":[{"mask-y-to":F()}],"mask-image-radial":[{"mask-radial":[$,W]}],"mask-image-radial-from-pos":[{"mask-radial-from":H()}],"mask-image-radial-to-pos":[{"mask-radial-to":H()}],"mask-image-radial-from-color":[{"mask-radial-from":F()}],"mask-image-radial-to-color":[{"mask-radial-to":F()}],"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":k()}],"mask-image-conic-pos":[{"mask-conic":[ce]}],"mask-image-conic-from-pos":[{"mask-conic-from":H()}],"mask-image-conic-to-pos":[{"mask-conic-to":H()}],"mask-image-conic-from-color":[{"mask-conic-from":F()}],"mask-image-conic-to-color":[{"mask-conic-to":F()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ue()}],"mask-repeat":[{mask:E()}],"mask-size":[{mask:ae()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",$,W]}],filter:[{filter:["","none",$,W]}],blur:[{blur:pe()}],brightness:[{brightness:[ce,$,W]}],contrast:[{contrast:[ce,$,W]}],"drop-shadow":[{"drop-shadow":["","none",m,Jt,Yt]}],"drop-shadow-color":[{"drop-shadow":F()}],grayscale:[{grayscale:["",ce,$,W]}],"hue-rotate":[{"hue-rotate":[ce,$,W]}],invert:[{invert:["",ce,$,W]}],saturate:[{saturate:[ce,$,W]}],sepia:[{sepia:["",ce,$,W]}],"backdrop-filter":[{"backdrop-filter":["","none",$,W]}],"backdrop-blur":[{"backdrop-blur":pe()}],"backdrop-brightness":[{"backdrop-brightness":[ce,$,W]}],"backdrop-contrast":[{"backdrop-contrast":[ce,$,W]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ce,$,W]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ce,$,W]}],"backdrop-invert":[{"backdrop-invert":["",ce,$,W]}],"backdrop-opacity":[{"backdrop-opacity":[ce,$,W]}],"backdrop-saturate":[{"backdrop-saturate":[ce,$,W]}],"backdrop-sepia":[{"backdrop-sepia":["",ce,$,W]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":N()}],"border-spacing-x":[{"border-spacing-x":N()}],"border-spacing-y":[{"border-spacing-y":N()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",$,W]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ce,"initial",$,W]}],ease:[{ease:["linear","initial",C,$,W]}],delay:[{delay:[ce,$,W]}],animate:[{animate:["none",_,$,W]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,$,W]}],"perspective-origin":[{"perspective-origin":A()}],rotate:[{rotate:be()}],"rotate-x":[{"rotate-x":be()}],"rotate-y":[{"rotate-y":be()}],"rotate-z":[{"rotate-z":be()}],scale:[{scale:P()}],"scale-x":[{"scale-x":P()}],"scale-y":[{"scale-y":P()}],"scale-z":[{"scale-z":P()}],"scale-3d":["scale-3d"],skew:[{skew:re()}],"skew-x":[{"skew-x":re()}],"skew-y":[{"skew-y":re()}],transform:[{transform:[$,W,"","none","gpu","cpu"]}],"transform-origin":[{origin:A()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:le()}],"translate-x":[{"translate-x":le()}],"translate-y":[{"translate-y":le()}],"translate-z":[{"translate-z":le()}],"translate-none":["translate-none"],zoom:[{zoom:[ea,$,W]}],accent:[{accent:F()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:F()}],"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",$,W]}],"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":F()}],"scrollbar-track-color":[{"scrollbar-track":F()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":N()}],"scroll-mx":[{"scroll-mx":N()}],"scroll-my":[{"scroll-my":N()}],"scroll-ms":[{"scroll-ms":N()}],"scroll-me":[{"scroll-me":N()}],"scroll-mbs":[{"scroll-mbs":N()}],"scroll-mbe":[{"scroll-mbe":N()}],"scroll-mt":[{"scroll-mt":N()}],"scroll-mr":[{"scroll-mr":N()}],"scroll-mb":[{"scroll-mb":N()}],"scroll-ml":[{"scroll-ml":N()}],"scroll-p":[{"scroll-p":N()}],"scroll-px":[{"scroll-px":N()}],"scroll-py":[{"scroll-py":N()}],"scroll-ps":[{"scroll-ps":N()}],"scroll-pe":[{"scroll-pe":N()}],"scroll-pbs":[{"scroll-pbs":N()}],"scroll-pbe":[{"scroll-pbe":N()}],"scroll-pt":[{"scroll-pt":N()}],"scroll-pr":[{"scroll-pr":N()}],"scroll-pb":[{"scroll-pb":N()}],"scroll-pl":[{"scroll-pl":N()}],"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",$,W]}],fill:[{fill:["none",...F()]}],"stroke-w":[{stroke:[ce,it,Ia,bs]}],stroke:[{stroke:["none",...F()]}],"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 G(...a){return Vl(Yi(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 Ke(a,e="en-US"){return new Date(a).toLocaleDateString(e,{month:"short",day:"numeric",year:"numeric"})}function Ts(a,e="en-US"){return new Date(a).toLocaleString(e,{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"})}function Is(a,e){const t=new Date(a);return t.setDate(t.getDate()+e),t.toISOString()}function ve(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 fe(a){return a.replace("Plan - ","")}function lt(a){return{usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",jpy:"¥"}[a.toLowerCase()]??`${a.toUpperCase()} `}const je=1e9,As={incoming_messages_events:a=>`${ve(a)} incoming messages & events`,conversation_sessions:a=>`${ve(a)} conversation sessions`,table_rows:a=>`${ve(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":`${ve(a)} collaborators`,bot_count:a=>a===1?"1 bot":`${ve(a)} bots`,indexed_file_count:a=>`${ve(a)} indexed files for RAG`,ai_spend:a=>`${se(a/je,"usd",1)} AI credit included`,always_alive:a=>a===1?"1 always-alive bot":`${ve(a)} always-alive bots`};function jl(a,e,t){const n=(t==null?void 0:t[a])??As[a];return n?n(e):`${ve(e)} ${a.replaceAll("_"," ")}`}const xa=["community","plus","team","enterprise","managed"],ql=["community","plus","team","enterprise","managed"];function Se(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 ql.find(r=>r===t)??"community"}const $n="https://botpress.com/contact-us/managed-plan",$e={conversation_sessions_addon:"addonNameConversationSessions",storage_addon:"addonNameStorage"},Ps={conversation_sessions_addon:"addonDescriptionConversationSessions",storage_addon:"addonDescriptionStorage"};function dt(a,e,t){return a.prices[e.id]??a.prices[Se(e)]??a.prices[t]??null}function Da(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 xs=[{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 Ds(a,e,t){var r;if(!e)return[];const n=[];for(const s of xs){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 Es(a,e,t){var r;if(!a)return[];const n=[];for(const s of xs){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 Qt(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=dt(n,e,t);return r<=0||!s||s.amount<=0?null:{packSize:r,amount:s.amount,currency:s.currency}}const ct={"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"}},Ls={community:"planDescriptionCommunity",plus:"planDescriptionPlus",team:"planDescriptionTeam",enterprise:"planDescriptionEnterprise",managed:"planDescriptionManaged"},ut={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:[]},pt=({variant:a="accent",children:e,className:t})=>o.jsx("span",{className:G("bpb-badge",`bpb-badge--${a}`,t),children:e}),Ce=({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:G("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})]}),Ne=(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}),Fs=({size:a,...e})=>o.jsx("svg",{...Ne(a,e),children:o.jsx("path",{d:"M3 8.5l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Xt=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),Ms=({size:a,...e})=>o.jsx("svg",{...Ne(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"})}),Os=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),Hn=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),Us=({size:a,...e})=>o.jsx("svg",{...Ne(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"})}),en=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),Bs=({size:a,...e})=>o.jsx("svg",{...Ne(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"})}),an=({size:a,...e})=>o.jsx("svg",{...Ne(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"})}),Zl=[{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}],zs=({size:a,...e})=>o.jsx("svg",{...Ne(a,e),children:o.jsx("g",{transform:"translate(8,8)",fill:"currentColor",children:Zl.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))})}),Vs=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),js=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),qs=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),Zs=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),Yn=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),Wl=({size:a,...e})=>o.jsx("svg",{...Ne(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"})}),Gl=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),gt=({size:a,...e})=>o.jsx("svg",{...Ne(a,e),children:o.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Ea=({size:a,...e})=>o.jsx("svg",{...Ne(a,e),children:o.jsx("path",{d:"M4 6.5L8 10.5l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Jn=({size:a,...e})=>o.jsx("svg",{...Ne(a,e),children:o.jsx("path",{d:"M10 3.5L5.5 8l4.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),aa=({size:a,...e})=>o.jsx("svg",{...Ne(a,e),children:o.jsx("path",{d:"M6 3.5L10.5 8L6 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Ws=({size:a,...e})=>o.jsx("svg",{...Ne(a,e),children:o.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Qn=({size:a,...e})=>o.jsx("svg",{...Ne(a,e),children:o.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),mt=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),ht=({size:a,...e})=>o.jsx("svg",{...Ne(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"})}),Kl=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),Xn=({size:a,...e})=>o.jsx("svg",{...Ne(a,e),children:o.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),er=({size:a,...e})=>o.jsx("svg",{...Ne(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"})}),$l=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),Gs=({size:a,...e})=>o.jsxs("svg",{...Ne(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"})]}),ar=({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)?Os:/seat|member|user|team|rbac|rout/.test(e)?Vs:/analytic|report|insight|dashboard/.test(e)?js:/whatsapp|channel|chat|message|conversation|webchat|voice/.test(e)?Ms:/storage|table|vector|file|gb|rows|db/.test(e)?en:/domain|help center|whitelabel|website|url|web/.test(e)?qs:/brand|theme|custom|white-?label/.test(e)?Zs:/unlimited|infinit/.test(e)?Bs:/security|sla|compliance|soc|audit/.test(e)||/support|sla|dedicated|priority/.test(e)?Hn:/integration|api|plugin|sdk|adk|studio/.test(e)?Us:/agent/.test(e)?zs:/ai|model|gpt|llm/.test(e)?an:Xt}const De=({open:a,onOpenChange:e,size:t="md",children:n,className:r,showClose:s=!0,...i})=>{const l=I.useRef(null),d=Ki(),c=$i(),u=I.useCallback(()=>e(!1),[e]);return I.useEffect(()=>{var m;if(!a)return;const p=S=>{S.key==="Escape"&&u()};document.addEventListener("keydown",p);const g=document.body.style.overflow;return document.body.style.overflow="hidden",(m=l.current)==null||m.focus(),()=>{document.removeEventListener("keydown",p),document.body.style.overflow=g}},[a,u]),a?Zo.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:G("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(gt,{size:18})}),n]})}),document.body):null};var tr={},nn={};Object.defineProperty(nn,"__esModule",{value:!0}),nn.BOT_USE_CASES=void 0,nn.BOT_USE_CASES={CUSTOMER_SUPPORT:"customer-support",BRAND_ASSISTANT:"brand-assistant",PRODUCT_RECOMMENDATION:"product-recommendation",OTHER:"other"};var rn={};Object.defineProperty(rn,"__esModule",{value:!0}),rn.limitConfigs=void 0,rn.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 Ga={};Object.defineProperty(Ga,"__esModule",{value:!0}),Ga.objectToPrefixMap=Ga.prefixToObjectMap=void 0,Ga.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"},Ga.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 Ks={},va={};Object.defineProperty(va,"__esModule",{value:!0}),va.quotaConfigsV3=va.quotaConfigs=va.quotaTypes=void 0,va.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"],va.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}},va.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 ta={};Object.defineProperty(ta,"__esModule",{value:!0}),ta.billingFeatureDefs=ta.BILLING_PLAN_IDS=ta.ALLOWED_TRIAL_PLANS=ta.ALLOWED_TRIAL_LENGTHS_IN_DAYS=void 0,ta.ALLOWED_TRIAL_LENGTHS_IN_DAYS=7,ta.ALLOWED_TRIAL_PLANS=["plus","team"],ta.BILLING_PLAN_IDS=["community","plus","team","enterprise","managed"],ta.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=ye&&ye.__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=ye&&ye.__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(va,a),t(ta,a)}(Ks);var sn={};Object.defineProperty(sn,"__esModule",{value:!0}),sn.Tags=void 0,sn.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 qe={};Object.defineProperty(qe,"__esModule",{value:!0}),qe.KNOWLEDGE_WORKFLOW=qe.IDENTITY_WEBSITE_WORKFLOW=qe.IDENTITY_TEXT_WORKFLOW=qe.ONBOARDING_DEPLOY_WORKFLOW=qe.WEBSITE_CRAWL_WORKFLOW=void 0,qe.WEBSITE_CRAWL_WORKFLOW="website-crawl",qe.ONBOARDING_DEPLOY_WORKFLOW="onboarding-deploy",qe.IDENTITY_TEXT_WORKFLOW="identity-text-workflow",qe.IDENTITY_WEBSITE_WORKFLOW="identity-website-workflow",qe.KNOWLEDGE_WORKFLOW="knowledge-workflow";var on={};Object.defineProperty(on,"__esModule",{value:!0}),on.CANCELLATION_REASONS=void 0,on.CANCELLATION_REASONS=["too_expensive","not_using_enough","missing_feature","switched_tool","technical_issues","support_expectations","temporary_need"];var $s={},nr={};(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)})(nr);var Rs={},bt={},ln={};(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})(ln);var ft={},Hs={},rr={},_a={},dn={},na={},yt={};(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})(yt),Object.defineProperty(na,"__esModule",{value:!0}),na.ZodError=na.quotelessJson=na.ZodIssueCode=void 0;const Ys=yt;na.ZodIssueCode=Ys.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 Rl=a=>JSON.stringify(a,null,2).replace(/"([^"]+)":/g,"$1:");na.quotelessJson=Rl;class vt 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 vt))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ys.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()}}na.ZodError=vt,vt.create=a=>new vt(a),Object.defineProperty(dn,"__esModule",{value:!0});const Ee=na,La=yt,Hl=(a,e)=>{let t;switch(a.code){case Ee.ZodIssueCode.invalid_type:a.received===La.ZodParsedType.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case Ee.ZodIssueCode.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,La.util.jsonStringifyReplacer)}`;break;case Ee.ZodIssueCode.unrecognized_keys:t=`Unrecognized key(s) in object: ${La.util.joinValues(a.keys,", ")}`;break;case Ee.ZodIssueCode.invalid_union:t="Invalid input";break;case Ee.ZodIssueCode.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${La.util.joinValues(a.options)}`;break;case Ee.ZodIssueCode.invalid_enum_value:t=`Invalid enum value. Expected ${La.util.joinValues(a.options)}, received '${a.received}'`;break;case Ee.ZodIssueCode.invalid_arguments:t="Invalid function arguments";break;case Ee.ZodIssueCode.invalid_return_type:t="Invalid function return type";break;case Ee.ZodIssueCode.invalid_date:t="Invalid date";break;case Ee.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}"`:La.util.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case Ee.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 Ee.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 Ee.ZodIssueCode.custom:t="Invalid input";break;case Ee.ZodIssueCode.invalid_intersection_types:t="Intersection results could not be merged";break;case Ee.ZodIssueCode.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case Ee.ZodIssueCode.not_finite:t="Number must be finite";break;default:t=e.defaultError,La.util.assertNever(a)}return{message:t}};dn.default=Hl;var Yl=ye&&ye.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(_a,"__esModule",{value:!0}),_a.defaultErrorMap=void 0,_a.setErrorMap=Jl,_a.getErrorMap=Ql;const Js=Yl(dn);_a.defaultErrorMap=Js.default;let Qs=Js.default;function Jl(a){Qs=a}function Ql(){return Qs}var sr={};(function(a){var e=ye&&ye.__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=_a,n=e(dn),r=m=>{const{data:S,path:f,errorMaps:v,issueData:C}=m,_=[...f,...C.path||[]],T={...C,path:_};if(C.message!==void 0)return{...C,path:_,message:C.message};let k="";const A=v.filter(y=>!!y).slice().reverse();for(const y of A)k=y(T,{data:S,defaultError:k}).message;return{...C,path:_,message:k}};a.makeIssue=r,a.EMPTY_PATH=[];function s(m,S){const f=(0,t.getErrorMap)(),v=(0,a.makeIssue)({issueData:S,data:m.data,path:m.path,errorMaps:[m.common.contextualErrorMap,m.schemaErrorMap,f,f===n.default?void 0:n.default].filter(C=>!!C)});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(S,f){const v=[];for(const C of f){if(C.status==="aborted")return a.INVALID;C.status==="dirty"&&S.dirty(),v.push(C.value)}return{status:S.value,value:v}}static async mergeObjectAsync(S,f){const v=[];for(const C of f){const _=await C.key,T=await C.value;v.push({key:_,value:T})}return i.mergeObjectSync(S,v)}static mergeObjectSync(S,f){const v={};for(const C of f){const{key:_,value:T}=C;if(_.status==="aborted"||T.status==="aborted")return a.INVALID;_.status==="dirty"&&S.dirty(),T.status==="dirty"&&S.dirty(),_.value!=="__proto__"&&(typeof T.value<"u"||C.alwaysSet)&&(v[_.value]=T.value)}return{status:S.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 g=m=>typeof Promise<"u"&&m instanceof Promise;a.isAsync=g})(sr);var Xs={};Object.defineProperty(Xs,"__esModule",{value:!0});var h={},cn={};Object.defineProperty(cn,"__esModule",{value:!0}),cn.errorUtil=void 0;var eo;(function(a){a.errToObj=e=>typeof e=="string"?{message:e}:e||{},a.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(eo||(cn.errorUtil=eo={})),Object.defineProperty(h,"__esModule",{value:!0}),h.discriminatedUnion=h.date=h.boolean=h.bigint=h.array=h.any=h.coerce=h.ZodFirstPartyTypeKind=h.late=h.ZodSchema=h.Schema=h.ZodReadonly=h.ZodPipeline=h.ZodBranded=h.BRAND=h.ZodNaN=h.ZodCatch=h.ZodDefault=h.ZodNullable=h.ZodOptional=h.ZodTransformer=h.ZodEffects=h.ZodPromise=h.ZodNativeEnum=h.ZodEnum=h.ZodLiteral=h.ZodLazy=h.ZodFunction=h.ZodSet=h.ZodMap=h.ZodRecord=h.ZodTuple=h.ZodIntersection=h.ZodDiscriminatedUnion=h.ZodUnion=h.ZodObject=h.ZodArray=h.ZodVoid=h.ZodNever=h.ZodUnknown=h.ZodAny=h.ZodNull=h.ZodUndefined=h.ZodSymbol=h.ZodDate=h.ZodBoolean=h.ZodBigInt=h.ZodNumber=h.ZodString=h.ZodType=void 0,h.NEVER=h.void=h.unknown=h.union=h.undefined=h.tuple=h.transformer=h.symbol=h.string=h.strictObject=h.set=h.record=h.promise=h.preprocess=h.pipeline=h.ostring=h.optional=h.onumber=h.oboolean=h.object=h.number=h.nullable=h.null=h.never=h.nativeEnum=h.nan=h.map=h.literal=h.lazy=h.intersection=h.instanceof=h.function=h.enum=h.effect=void 0,h.datetimeRegex=ro,h.custom=io;const M=na,un=_a,R=cn,b=sr,B=yt;class ra{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 ao=(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 M.ZodError(a.common.issues);return this._error=t,this._error}}};function ie(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,B.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,B.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,B.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,B.getParsedType)(e)},r=this._parseSync({data:e,path:n.path,parent:n});return ao(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,B.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,B.getParsedType)(e)},r=this._parse({data:e,path:n.path,parent:n}),s=await((0,b.isAsync)(r)?r:Promise.resolve(r));return ao(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:M.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 Ye({schema:this,typeName:ee.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 oa.create(this,this._def)}nullable(){return ka.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return He.create(this)}promise(){return Ha.create(this,this._def)}or(e){return Nt.create([this,e],this._def)}and(e){return kt.create(this,e,this._def)}transform(e){return new Ye({...ie(this._def),schema:this,typeName:ee.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new Pt({...ie(this._def),innerType:this,defaultValue:t,typeName:ee.ZodDefault})}brand(){return new lr({typeName:ee.ZodBranded,type:this,...ie(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new xt({...ie(this._def),innerType:this,catchValue:t,typeName:ee.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return Dt.create(this,e)}readonly(){return Et.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}h.ZodType=de,h.Schema=de,h.ZodSchema=de;const Xl=/^c[^\s-]{8,}$/i,ed=/^[0-9a-z]+$/,ad=/^[0-9A-HJKMNP-TV-Z]{26}$/i,td=/^[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,nd=/^[a-z0-9_-]{21}$/i,rd=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,sd=/^[-+]?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)?)??$/,od=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,id="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let or;const ld=/^(?:(?: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])$/,dd=/^(?:(?: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])$/,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]))$/,ud=/^(([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])$/,pd=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,gd=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,to="((\\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])))",md=new RegExp(`^${to}$`);function no(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 hd(a){return new RegExp(`^${no(a)}$`)}function ro(a){let e=`${to}T${no(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 bd(a,e){return!!((e==="v4"||!e)&&ld.test(a)||(e==="v6"||!e)&&cd.test(a))}function fd(a,e){if(!rd.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 yd(a,e){return!!((e==="v4"||!e)&&dd.test(a)||(e==="v6"||!e)&&ud.test(a))}class Re extends de{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==B.ZodParsedType.string){const s=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(s,{code:M.ZodIssueCode.invalid_type,expected:B.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:M.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:M.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:M.ZodIssueCode.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):l&&(0,b.addIssueToContext)(r,{code:M.ZodIssueCode.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")od.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"email",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")or||(or=new RegExp(id,"u")),or.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"emoji",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")td.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"uuid",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")nd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"nanoid",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")Xl.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"cuid",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")ed.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"cuid2",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")ad.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"ulid",code:M.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:M.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:M.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:M.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:M.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:M.ZodIssueCode.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?ro(s).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?md.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?hd(s).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?sd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"duration",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?bd(e.data,s.version)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"ip",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="jwt"?fd(e.data,s.alg)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"jwt",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="cidr"?yd(e.data,s.version)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"cidr",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?pd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"base64",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):s.kind==="base64url"?gd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,b.addIssueToContext)(r,{validation:"base64url",code:M.ZodIssueCode.invalid_string,message:s.message}),n.dirty()):B.util.assertNever(s);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(r=>e.test(r),{validation:t,code:M.ZodIssueCode.invalid_string,...R.errorUtil.errToObj(n)})}_addCheck(e){return new Re({...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 Re({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Re({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Re({...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}}h.ZodString=Re,Re.create=a=>new Re({checks:[],typeName:ee.ZodString,coerce:(a==null?void 0:a.coerce)??!1,...ie(a)});function vd(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 Sa 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)!==B.ZodParsedType.number){const s=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(s,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.number,received:s.parsedType}),b.INVALID}let n;const r=new b.ParseStatus;for(const s of this._def.checks)s.kind==="int"?B.util.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),(0,b.addIssueToContext)(n,{code:M.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:M.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:M.ZodIssueCode.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),r.dirty()):s.kind==="multipleOf"?vd(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),(0,b.addIssueToContext)(n,{code:M.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:M.ZodIssueCode.not_finite,message:s.message}),r.dirty()):B.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 Sa({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:R.errorUtil.toString(r)}]})}_addCheck(e){return new Sa({...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"&&B.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)}}h.ZodNumber=Sa,Sa.create=a=>new Sa({checks:[],typeName:ee.ZodNumber,coerce:(a==null?void 0:a.coerce)||!1,...ie(a)});class Ca 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)!==B.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:M.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:M.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:M.ZodIssueCode.not_multiple_of,multipleOf:s.value,message:s.message}),r.dirty()):B.util.assertNever(s);return{status:r.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:B.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 Ca({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:R.errorUtil.toString(r)}]})}_addCheck(e){return new Ca({...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}}h.ZodBigInt=Ca,Ca.create=a=>new Ca({checks:[],typeName:ee.ZodBigInt,coerce:(a==null?void 0:a.coerce)??!1,...ie(a)});class _t extends de{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==B.ZodParsedType.boolean){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.boolean,received:n.parsedType}),b.INVALID}return(0,b.OK)(e.data)}}h.ZodBoolean=_t,_t.create=a=>new _t({typeName:ee.ZodBoolean,coerce:(a==null?void 0:a.coerce)||!1,...ie(a)});class Fa extends de{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==B.ZodParsedType.date){const s=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(s,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.date,received:s.parsedType}),b.INVALID}if(Number.isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(s,{code:M.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:M.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:M.ZodIssueCode.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):B.util.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Fa({...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}}h.ZodDate=Fa,Fa.create=a=>new Fa({checks:[],coerce:(a==null?void 0:a.coerce)||!1,typeName:ee.ZodDate,...ie(a)});class pn extends de{_parse(e){if(this._getType(e)!==B.ZodParsedType.symbol){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.symbol,received:n.parsedType}),b.INVALID}return(0,b.OK)(e.data)}}h.ZodSymbol=pn,pn.create=a=>new pn({typeName:ee.ZodSymbol,...ie(a)});class St extends de{_parse(e){if(this._getType(e)!==B.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.undefined,received:n.parsedType}),b.INVALID}return(0,b.OK)(e.data)}}h.ZodUndefined=St,St.create=a=>new St({typeName:ee.ZodUndefined,...ie(a)});class Ct extends de{_parse(e){if(this._getType(e)!==B.ZodParsedType.null){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.null,received:n.parsedType}),b.INVALID}return(0,b.OK)(e.data)}}h.ZodNull=Ct,Ct.create=a=>new Ct({typeName:ee.ZodNull,...ie(a)});class Ka extends de{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,b.OK)(e.data)}}h.ZodAny=Ka,Ka.create=a=>new Ka({typeName:ee.ZodAny,...ie(a)});class Ma extends de{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,b.OK)(e.data)}}h.ZodUnknown=Ma,Ma.create=a=>new Ma({typeName:ee.ZodUnknown,...ie(a)});class ca extends de{_parse(e){const t=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.never,received:t.parsedType}),b.INVALID}}h.ZodNever=ca,ca.create=a=>new ca({typeName:ee.ZodNever,...ie(a)});class gn extends de{_parse(e){if(this._getType(e)!==B.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.void,received:n.parsedType}),b.INVALID}return(0,b.OK)(e.data)}}h.ZodVoid=gn,gn.create=a=>new gn({typeName:ee.ZodVoid,...ie(a)});class He extends de{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==B.ZodParsedType.array)return(0,b.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:B.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?M.ZodIssueCode.too_big:M.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:M.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:M.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 ra(t,i,t.path,l)))).then(i=>b.ParseStatus.mergeArray(n,i));const s=[...t.data].map((i,l)=>r.type._parseSync(new ra(t,i,t.path,l)));return b.ParseStatus.mergeArray(n,s)}get element(){return this._def.type}min(e,t){return new He({...this._def,minLength:{value:e,message:R.errorUtil.toString(t)}})}max(e,t){return new He({...this._def,maxLength:{value:e,message:R.errorUtil.toString(t)}})}length(e,t){return new He({...this._def,exactLength:{value:e,message:R.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}h.ZodArray=He,He.create=(a,e)=>new He({type:a,minLength:null,maxLength:null,exactLength:null,typeName:ee.ZodArray,...ie(e)});function $a(a){if(a instanceof Ie){const e={};for(const t in a.shape){const n=a.shape[t];e[t]=oa.create($a(n))}return new Ie({...a._def,shape:()=>e})}else return a instanceof He?new He({...a._def,type:$a(a.element)}):a instanceof oa?oa.create($a(a.unwrap())):a instanceof ka?ka.create($a(a.unwrap())):a instanceof sa?sa.create(a.items.map(e=>$a(e))):a}class Ie 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=B.util.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==B.ZodParsedType.object){const c=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(c,{code:M.ZodIssueCode.invalid_type,expected:B.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 ca&&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 ra(r,p,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof ca){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:M.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 ra(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,g=await u.value;c.push({key:p,value:g,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 Ie({...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 Ie({...this._def,unknownKeys:"strip"})}passthrough(){return new Ie({...this._def,unknownKeys:"passthrough"})}extend(e){return new Ie({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Ie({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:ee.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Ie({...this._def,catchall:e})}pick(e){const t={};for(const n of B.util.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new Ie({...this._def,shape:()=>t})}omit(e){const t={};for(const n of B.util.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new Ie({...this._def,shape:()=>t})}deepPartial(){return $a(this)}partial(e){const t={};for(const n of B.util.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new Ie({...this._def,shape:()=>t})}required(e){const t={};for(const n of B.util.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof oa;)s=s._def.innerType;t[n]=s}return new Ie({...this._def,shape:()=>t})}keyof(){return so(B.util.objectKeys(this.shape))}}h.ZodObject=Ie,Ie.create=(a,e)=>new Ie({shape:()=>a,unknownKeys:"strip",catchall:ca.create(),typeName:ee.ZodObject,...ie(e)}),Ie.strictCreate=(a,e)=>new Ie({shape:()=>a,unknownKeys:"strict",catchall:ca.create(),typeName:ee.ZodObject,...ie(e)}),Ie.lazycreate=(a,e)=>new Ie({shape:a,unknownKeys:"strip",catchall:ca.create(),typeName:ee.ZodObject,...ie(e)});class Nt 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 M.ZodError(l.ctx.common.issues));return(0,b.addIssueToContext)(t,{code:M.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 M.ZodError(d));return(0,b.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_union,unionErrors:l}),b.INVALID}}get options(){return this._def.options}}h.ZodUnion=Nt,Nt.create=(a,e)=>new Nt({options:a,typeName:ee.ZodUnion,...ie(e)});const ua=a=>a instanceof Tt?ua(a.schema):a instanceof Ye?ua(a.innerType()):a instanceof It?[a.value]:a instanceof Na?a.options:a instanceof At?B.util.objectValues(a.enum):a instanceof Pt?ua(a._def.innerType):a instanceof St?[void 0]:a instanceof Ct?[null]:a instanceof oa?[void 0,...ua(a.unwrap())]:a instanceof ka?[null,...ua(a.unwrap())]:a instanceof lr||a instanceof Et?ua(a.unwrap()):a instanceof xt?ua(a._def.innerType):[];class mn extends de{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==B.ZodParsedType.object)return(0,b.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:B.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:M.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=ua(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 mn({typeName:ee.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...ie(n)})}}h.ZodDiscriminatedUnion=mn;function ir(a,e){const t=(0,B.getParsedType)(a),n=(0,B.getParsedType)(e);if(a===e)return{valid:!0,data:a};if(t===B.ZodParsedType.object&&n===B.ZodParsedType.object){const r=B.util.objectKeys(e),s=B.util.objectKeys(a).filter(l=>r.indexOf(l)!==-1),i={...a,...e};for(const l of s){const d=ir(a[l],e[l]);if(!d.valid)return{valid:!1};i[l]=d.data}return{valid:!0,data:i}}else if(t===B.ZodParsedType.array&&n===B.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=ir(i,l);if(!d.valid)return{valid:!1};r.push(d.data)}return{valid:!0,data:r}}else return t===B.ZodParsedType.date&&n===B.ZodParsedType.date&&+a==+e?{valid:!0,data:a}:{valid:!1}}class kt 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=ir(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:M.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}))}}h.ZodIntersection=kt,kt.create=(a,e,t)=>new kt({left:a,right:e,typeName:ee.ZodIntersection,...ie(t)});class sa extends de{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==B.ZodParsedType.array)return(0,b.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.array,received:n.parsedType}),b.INVALID;if(n.data.length<this._def.items.length)return(0,b.addIssueToContext)(n,{code:M.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:M.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 ra(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 sa({...this._def,rest:e})}}h.ZodTuple=sa,sa.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new sa({items:a,typeName:ee.ZodTuple,rest:null,...ie(e)})};class wt 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!==B.ZodParsedType.object)return(0,b.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:B.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 ra(n,l,n.path,l)),value:i._parse(new ra(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 wt({keyType:e,valueType:t,typeName:ee.ZodRecord,...ie(n)}):new wt({keyType:Re.create(),valueType:e,typeName:ee.ZodRecord,...ie(t)})}}h.ZodRecord=wt;class hn 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!==B.ZodParsedType.map)return(0,b.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:B.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 ra(n,l,n.path,[c,"key"])),value:s._parse(new ra(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}}}}h.ZodMap=hn,hn.create=(a,e,t)=>new hn({valueType:e,keyType:a,typeName:ee.ZodMap,...ie(t)});class Oa extends de{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==B.ZodParsedType.set)return(0,b.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:B.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:M.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:M.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 ra(n,d,n.path,c)));return n.common.async?Promise.all(l).then(d=>i(d)):i(l)}min(e,t){return new Oa({...this._def,minSize:{value:e,message:R.errorUtil.toString(t)}})}max(e,t){return new Oa({...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)}}h.ZodSet=Oa,Oa.create=(a,e)=>new Oa({valueType:a,minSize:null,maxSize:null,typeName:ee.ZodSet,...ie(e)});class Ra extends de{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==B.ZodParsedType.function)return(0,b.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:B.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,un.getErrorMap)(),un.defaultErrorMap].filter(c=>!!c),issueData:{code:M.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,un.getErrorMap)(),un.defaultErrorMap].filter(c=>!!c),issueData:{code:M.ZodIssueCode.invalid_return_type,returnTypeError:d}})}const s={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof Ha){const l=this;return(0,b.OK)(async function(...d){const c=new M.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 M.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 M.ZodError([r(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Ra({...this._def,args:sa.create(e).rest(Ma.create())})}returns(e){return new Ra({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Ra({args:e||sa.create([]).rest(Ma.create()),returns:t||Ma.create(),typeName:ee.ZodFunction,...ie(n)})}}h.ZodFunction=Ra;class Tt 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})}}h.ZodLazy=Tt,Tt.create=(a,e)=>new Tt({getter:a,typeName:ee.ZodLazy,...ie(e)});class It extends de{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(t,{received:t.data,code:M.ZodIssueCode.invalid_literal,expected:this._def.value}),b.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}}h.ZodLiteral=It,It.create=(a,e)=>new It({value:a,typeName:ee.ZodLiteral,...ie(e)});function so(a,e){return new Na({values:a,typeName:ee.ZodEnum,...ie(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:B.util.joinValues(n),received:t.parsedType,code:M.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:M.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})}}h.ZodEnum=Na,Na.create=so;class At extends de{_parse(e){const t=B.util.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==B.ZodParsedType.string&&n.parsedType!==B.ZodParsedType.number){const r=B.util.objectValues(t);return(0,b.addIssueToContext)(n,{expected:B.util.joinValues(r),received:n.parsedType,code:M.ZodIssueCode.invalid_type}),b.INVALID}if(this._cache||(this._cache=new Set(B.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=B.util.objectValues(t);return(0,b.addIssueToContext)(n,{received:n.data,code:M.ZodIssueCode.invalid_enum_value,options:r}),b.INVALID}return(0,b.OK)(e.data)}get enum(){return this._def.values}}h.ZodNativeEnum=At,At.create=(a,e)=>new At({values:a,typeName:ee.ZodNativeEnum,...ie(e)});class Ha extends de{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==B.ZodParsedType.promise&&t.common.async===!1)return(0,b.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.promise,received:t.parsedType}),b.INVALID;const n=t.parsedType===B.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})))}}h.ZodPromise=Ha,Ha.create=(a,e)=>new Ha({type:a,typeName:ee.ZodPromise,...ie(e)});class Ye extends de{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ee.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);B.util.assertNever(r)}}h.ZodEffects=Ye,h.ZodTransformer=Ye,Ye.create=(a,e,t)=>new Ye({schema:a,typeName:ee.ZodEffects,effect:e,...ie(t)}),Ye.createWithPreprocess=(a,e,t)=>new Ye({schema:e,effect:{type:"preprocess",transform:a},typeName:ee.ZodEffects,...ie(t)});class oa extends de{_parse(e){return this._getType(e)===B.ZodParsedType.undefined?(0,b.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}h.ZodOptional=oa,oa.create=(a,e)=>new oa({innerType:a,typeName:ee.ZodOptional,...ie(e)});class ka extends de{_parse(e){return this._getType(e)===B.ZodParsedType.null?(0,b.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}h.ZodNullable=ka,ka.create=(a,e)=>new ka({innerType:a,typeName:ee.ZodNullable,...ie(e)});class Pt extends de{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===B.ZodParsedType.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}h.ZodDefault=Pt,Pt.create=(a,e)=>new Pt({innerType:a,typeName:ee.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...ie(e)});class xt 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 M.ZodError(n.common.issues)},input:n.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new M.ZodError(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}h.ZodCatch=xt,xt.create=(a,e)=>new xt({innerType:a,typeName:ee.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...ie(e)});class bn extends de{_parse(e){if(this._getType(e)!==B.ZodParsedType.nan){const n=this._getOrReturnCtx(e);return(0,b.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:B.ZodParsedType.nan,received:n.parsedType}),b.INVALID}return{status:"valid",value:e.data}}}h.ZodNaN=bn,bn.create=a=>new bn({typeName:ee.ZodNaN,...ie(a)}),h.BRAND=Symbol("zod_brand");class lr 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}}h.ZodBranded=lr;class Dt 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 Dt({in:e,out:t,typeName:ee.ZodPipeline})}}h.ZodPipeline=Dt;class Et 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}}h.ZodReadonly=Et,Et.create=(a,e)=>new Et({innerType:a,typeName:ee.ZodReadonly,...ie(e)});function oo(a,e){const t=typeof a=="function"?a(e):typeof a=="string"?{message:a}:a;return typeof t=="string"?{message:t}:t}function io(a,e={},t){return a?Ka.create().superRefine((n,r)=>{const s=a(n);if(s instanceof Promise)return s.then(i=>{if(!i){const l=oo(e,n),d=l.fatal??t??!0;r.addIssue({code:"custom",...l,fatal:d})}});if(!s){const i=oo(e,n),l=i.fatal??t??!0;r.addIssue({code:"custom",...i,fatal:l})}}):Ka.create()}h.late={object:Ie.lazycreate};var ee;(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"})(ee||(h.ZodFirstPartyTypeKind=ee={}));const _d=(a,e={message:`Input not instance of ${a.name}`})=>io(t=>t instanceof a,e);h.instanceof=_d;const lo=Re.create;h.string=lo;const co=Sa.create;h.number=co;const Sd=bn.create;h.nan=Sd;const Cd=Ca.create;h.bigint=Cd;const uo=_t.create;h.boolean=uo;const Nd=Fa.create;h.date=Nd;const kd=pn.create;h.symbol=kd;const wd=St.create;h.undefined=wd;const Td=Ct.create;h.null=Td;const Id=Ka.create;h.any=Id;const Ad=Ma.create;h.unknown=Ad;const Pd=ca.create;h.never=Pd;const xd=gn.create;h.void=xd;const Dd=He.create;h.array=Dd;const Ed=Ie.create;h.object=Ed;const Ld=Ie.strictCreate;h.strictObject=Ld;const Fd=Nt.create;h.union=Fd;const Md=mn.create;h.discriminatedUnion=Md;const Od=kt.create;h.intersection=Od;const Ud=sa.create;h.tuple=Ud;const Bd=wt.create;h.record=Bd;const zd=hn.create;h.map=zd;const Vd=Oa.create;h.set=Vd;const jd=Ra.create;h.function=jd;const qd=Tt.create;h.lazy=qd;const Zd=It.create;h.literal=Zd;const Wd=Na.create;h.enum=Wd;const Gd=At.create;h.nativeEnum=Gd;const Kd=Ha.create;h.promise=Kd;const po=Ye.create;h.effect=po,h.transformer=po;const $d=oa.create;h.optional=$d;const Rd=ka.create;h.nullable=Rd;const Hd=Ye.createWithPreprocess;h.preprocess=Hd;const Yd=Dt.create;h.pipeline=Yd;const Jd=()=>lo().optional();h.ostring=Jd;const Qd=()=>co().optional();h.onumber=Qd;const Xd=()=>uo().optional();h.oboolean=Xd,h.coerce={string:a=>Re.create({...a,coerce:!0}),number:a=>Sa.create({...a,coerce:!0}),boolean:a=>_t.create({...a,coerce:!0}),bigint:a=>Ca.create({...a,coerce:!0}),date:a=>Fa.create({...a,coerce:!0})},h.NEVER=b.INVALID,function(a){var e=ye&&ye.__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=ye&&ye.__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(_a,a),t(sr,a),t(Xs,a),t(yt,a),t(h,a),t(na,a)}(rr),function(a){var e=ye&&ye.__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=ye&&ye.__setModuleDefault||(Object.create?function(i,l){Object.defineProperty(i,"default",{enumerable:!0,value:l})}:function(i,l){i.default=l}),n=ye&&ye.__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=ye&&ye.__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(rr);a.z=s,r(rr,a),a.default=s}(Hs),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=Hs,t=nr;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)}(ft),Object.defineProperty(bt,"__esModule",{value:!0}),bt.plans=void 0;const Ae=ln,Ze=ft,go={table_rows:0,bot_count:Ae.SMALL_UNLIMITED,collaborator_count:Ae.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};bt.plans={community:{id:"community",name:"Plan - Free",description:"Free plan for trying things out",tierIndex:0,prices:{month:{amount:Ae.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ze.UNKNOWN_STRIPE_ID}},features:{table_rows:1e3,bot_count:3,collaborator_count:3,file_storage:100*Ae.MB,vector_db_storage:100*Ae.MB,saved_versions:3,indexed_file_count:1e3,incoming_messages_events:100*Ae.MESSAGES_PER_CONVERSATION,ai_spend:100*Ae.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*Ae.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:Ze.UNKNOWN_STRIPE_ID}},features:{table_rows:1e5,bot_count:Ae.SMALL_UNLIMITED,collaborator_count:3,file_storage:10*Ae.GB,vector_db_storage:1*Ae.GB,saved_versions:50,indexed_file_count:2e3,incoming_messages_events:250*Ae.MESSAGES_PER_CONVERSATION,ai_spend:250*Ae.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*Ae.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:Ze.UNKNOWN_STRIPE_ID}},features:{table_rows:5e5,bot_count:Ae.SMALL_UNLIMITED,collaborator_count:Ae.SMALL_UNLIMITED,file_storage:50*Ae.GB,vector_db_storage:5*Ae.GB,saved_versions:100,indexed_file_count:Ae.BIG_UNLIMITED,incoming_messages_events:1500*Ae.MESSAGES_PER_CONVERSATION,ai_spend:1500*Ae.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:Ae.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ze.UNKNOWN_STRIPE_ID}},features:go,providerProductId:Ze.UNKNOWN_STRIPE_ID},managed:{id:"managed",name:"Plan - Managed",description:"Managed license subscription",tierIndex:4,prices:{month:{amount:Ae.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ze.UNKNOWN_STRIPE_ID}},features:go,providerProductId:Ze.UNKNOWN_STRIPE_ID}};var Lt={};Object.defineProperty(Lt,"__esModule",{value:!0}),Lt.addons=void 0;const Ya=ln,Ja=ft,mo=(a,e=["community","plus","team","enterprise","managed"])=>e.map(t=>({[t]:{amount:a,currency:"usd",interval:"month",providerPriceId:Ja.UNKNOWN_STRIPE_ID}})).reduce((t,n)=>({...t,...n}),{});Lt.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:Ja.UNKNOWN_STRIPE_ID},team:{amount:50,currency:"usd",interval:"month",providerPriceId:Ja.UNKNOWN_STRIPE_ID},enterprise:{amount:Ya.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ja.UNKNOWN_STRIPE_ID}},increments:{conversation_sessions:100,ai_spend:100*Ya.AI_SPEND_PER_CONVERSATION,incoming_messages_events:100*Ya.MESSAGES_PER_CONVERSATION},providerProductId:Ja.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:{...mo(40,["plus","team"]),...mo(Ya.FREE_PRICE,["enterprise","managed"])},increments:{table_rows:1e5,vector_db_storage:1*Ya.GB,file_storage:10*Ya.GB},providerProductId:Ja.UNKNOWN_STRIPE_ID}};var Ft={};Object.defineProperty(Ft,"__esModule",{value:!0}),Ft.meters=void 0;const Qa=ft;Ft.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:Qa.UNKNOWN_STRIPE_ID}},meterType:"creditGrant",providerMeterId:Qa.UNKNOWN_STRIPE_ID,providerProductId:Qa.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:Qa.UNKNOWN_STRIPE_ID}},meterType:"payAsYouGo",providerMeterId:Qa.UNKNOWN_STRIPE_ID,providerProductId:Qa.UNKNOWN_STRIPE_ID}};var ho={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingDefinitions=a.billingConfig=void 0;const e=bt,t=Lt,n=Ft;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})(ho),function(a){var e=ye&&ye.__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=ye&&ye.__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(bt,a),t(Lt,a),t(Ft,a),t(ft,a),t(ho,a)}(Rs),function(a){var e=ye&&ye.__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=ye&&ye.__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(nr,a),t(Rs,a),t(ln,a)}($s),function(a){var e=ye&&ye.__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=ye&&ye.__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(nn,a),t(rn,a),t(Ga,a),t(Ks,a),t(sn,a),t(qe,a),t(on,a),t($s,a)}(tr);const ec={too_expensive:"cancelSurveyReasonTooExpensive",not_using_enough:"cancelSurveyReasonNotUsingEnough",missing_feature:"cancelSurveyReasonMissingFeature",switched_tool:"cancelSurveyReasonSwitchedTool",technical_issues:"cancelSurveyReasonTechnicalIssues",support_expectations:"cancelSurveyReasonSupportExpectations",temporary_need:"cancelSurveyReasonTemporaryNeed"},bo=({open:a,onOpenChange:e,planId:t,onConfirm:n,loading:r=!1,planFeatures:s={}})=>{var F,ue;const{t:i}=he(),{locale:l,analytics:d}=Q(),{data:c}=Ue(),{data:u}=Xe(),{data:p}=Me({enabled:a}),[g,m]=I.useState("confirm"),[S,f]=I.useState(null),[v,C]=I.useState(""),_=I.useId(),T=p==null?void 0:p.plan.current,k=c==null?void 0:c.find(E=>E.id===(T==null?void 0:T.planId)),A=(T==null?void 0:T.interval)??"month",y=k?Se(k):"community",x=k?fe(k.name):"",N=(u??[]).flatMap(E=>{var oe;const ae=((oe=p==null?void 0:p.addons[E.id])==null?void 0:oe.current.quantity)??0;return ae>0?[{addon:E,quantity:ae}]:[]}),O=((F=k==null?void 0:k.prices[A])==null?void 0:F.currency)??"usd",D=(((ue=k==null?void 0:k.prices[A])==null?void 0:ue.amount)??0)+N.reduce((E,{addon:ae,quantity:oe})=>{var J;return E+oe*(k&&((J=dt(ae,k,A))==null?void 0:J.amount)||0)},0),L=k==null?void 0:k.features.conversation_sessions,z=k==null?void 0:k.features.ai_spend,j=[...L!==void 0?[`${ve(L)} ${i("conversationsPerMonth")}`]:[],...(s[y]??ut[y]).map(E=>{if(E==="AI usage included"&&z!==void 0)return i("planFeatureAiUsageIncluded",{amount:se(z/je,O,0)});const ae=ct[E];return ae!==void 0?i(ae.label):E})],X=T==null?void 0:T.periodEnd,K=c==null?void 0:c.find(E=>E.id===t),U={plan_name:K?fe(K.name):void 0,current_plan_name:k?fe(k.name):void 0},V=()=>{d.capture(we.DOWNGRADE_SURVEY_VIEWED,U),m("feedback")},Z=()=>{if(!S||!T)return;const E=v.trim();d.capture(we.DOWNGRADE_SURVEY_SUBMITTED,{reason:S,has_comment:E.length>0,comment_length:E.length}),n({reason:S,comment:E||void 0,previousPlanId:T.planId,planId:t})},Y=()=>e(!1);return o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":i(g==="confirm"?"cancelSurveyConfirmTitle":"cancelSurveyFeedbackTitle"),className:"bpb-scope",children:g==="confirm"?o.jsxs("div",{className:"bpb-cancel-survey",children:[o.jsxs("header",{className:"bpb-cancel-survey__head",children:[o.jsx("h2",{className:"bpb-cancel-survey__title",children:i("cancelSurveyConfirmTitle")}),o.jsx("p",{className:"bpb-cancel-survey__lede",children:X?o.jsx(nt,{i18nKey:"cancelSurveyConfirmLede",values:{plan:x,date:Ke(X,l)},components:{bold:o.jsx("strong",{})}}):i("cancelSurveyConfirmLedeNoDate",{plan:x})})]}),o.jsxs("div",{className:G("bpb-cancel-survey__plan",`bpb-cancel-survey__plan--${y}`),children:[o.jsxs("div",{children:[o.jsx("span",{className:"bpb-cancel-survey__eyebrow",children:i("cancelSurveyCurrentPlan")}),o.jsx("span",{className:"bpb-cancel-survey__plan-name",children:x})]}),o.jsxs("span",{className:"bpb-cancel-survey__plan-price",children:[se(D,O,0),A==="year"?"/yr":"/mo"]})]}),o.jsx("ul",{className:"bpb-cancel-survey__losses",children:j.map(E=>o.jsxs("li",{children:[o.jsx(gt,{size:16,className:"bpb-cancel-survey__loss-icon","aria-hidden":!0}),o.jsx("span",{children:E})]},E))}),N.length>0&&o.jsxs("div",{className:"bpb-cancel-survey__addons",children:[o.jsx("span",{className:"bpb-cancel-survey__eyebrow bpb-cancel-survey__eyebrow--muted",children:i("cancelSurveyCurrentAddons")}),N.map(({addon:E,quantity:ae})=>{var me;const oe=$e[E.id],J=(((me=E.increments)==null?void 0:me.conversation_sessions)??0)*ae;return o.jsxs("p",{className:"bpb-cancel-survey__addon",children:[o.jsx("strong",{children:i("cancelSurveyAddonPack",{name:oe?i(oe):Da(E.name),quantity:ae})}),J>0&&o.jsxs("span",{children:[" · ",i("cancelSurveyAddonConversations",{amount:ve(J)})]})]},E.id)})]}),o.jsxs("footer",{className:"bpb-cancel-survey__footer",children:[o.jsx(Ce,{variant:"outline",size:"lg",onClick:Y,children:i("cancelSurveyKeep")}),o.jsx(Ce,{variant:"primary",size:"lg",onClick:V,children:i("cancelSurveyContinue")})]})]}):o.jsxs("div",{className:"bpb-cancel-survey",children:[o.jsxs("header",{className:"bpb-cancel-survey__head",children:[o.jsx("h2",{className:"bpb-cancel-survey__title",children:i("cancelSurveyFeedbackTitle")}),o.jsx("p",{className:"bpb-cancel-survey__lede",children:i("cancelSurveyFeedbackLede")})]}),o.jsx("div",{className:"bpb-cancel-survey__reasons",role:"radiogroup",children:tr.CANCELLATION_REASONS.map(E=>o.jsxs("label",{className:"bpb-cancel-survey__reason",children:[o.jsx("input",{type:"radio",name:"bpb-cancel-reason",value:E,checked:S===E,onChange:()=>f(E)}),o.jsx("span",{children:i(ec[E])})]},E))}),o.jsxs("label",{htmlFor:_,className:"bpb-cancel-survey__comment-label",children:[i("cancelSurveyCommentLabel")," ",o.jsx("span",{children:i("cancelSurveyOptional")})]}),o.jsx("textarea",{id:_,className:"bpb-cancel-survey__comment",rows:3,placeholder:i("cancelSurveyCommentPlaceholder"),value:v,onChange:E=>C(E.target.value)}),o.jsxs("footer",{className:"bpb-cancel-survey__footer",children:[o.jsx(Ce,{variant:"outline",size:"lg",onClick:Y,children:i("cancelSurveyKeep")}),o.jsx(Ce,{variant:"primary",size:"lg",disabled:!S,loading:r,onClick:Z,children:i("cancelSurveyConfirm")})]})]})})},pa=()=>{const{manageBillingUrl:a}=Q(),{t:e}=he();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(Ce,{variant:"primary",onClick:()=>window.open(a,"_blank","noopener"),children:[e("outdatedCta"),o.jsx(ht,{size:15})]})]})},fo=({options:a,value:e,onChange:t,className:n,...r})=>o.jsx("div",{role:"radiogroup","aria-label":r["aria-label"],className:G("bpb-segmented",n),children:a.map(s=>{const i=s.value===e;return o.jsxs("button",{type:"button",role:"radio","aria-checked":i,className:G("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)})}),ge=({width:a,height:e=14,rounded:t=!1,className:n})=>o.jsx("span",{"aria-hidden":!0,className:G("bpb-skeleton",t&&"bpb-skeleton--rounded",n),style:{width:a??"100%",height:e}}),ac="(max-width: 560px)",tc=()=>{};function nc(a){const e=I.useCallback(r=>{if(typeof window>"u")return tc;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 rc(){return nc(ac)}const Mt=({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})]}),dr=3,sc=({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:G("bpb-plan-card__feature-caret",n&&"is-open"),"aria-hidden":!0,children:o.jsx(Ea,{size:14})})]}),n&&o.jsx("p",{id:s,className:"bpb-plan-card__feature-desc",children:e})]})},oc=({features:a,previousPlanName:e,overrides:t,isMobile:n})=>{const{t:r}=he(),[s,i]=I.useState(!1),d=n&&!s&&a.length>dr?a.slice(0,dr):a;return o.jsxs(o.Fragment,{children:[o.jsxs("ul",{className:G("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(Fs,{size:13})}),o.jsx("span",{children:r("upgradeEverythingIn",{planName:e})})]}),d.map(c=>{const u=tn(c),p=ct[c],g=t==null?void 0:t[c],m=(g==null?void 0:g.label)??(p!==void 0?r(p.label):c),S=(g==null?void 0:g.description)??(p!==void 0?r(p.desc):void 0);return n?S?o.jsx(sc,{label:m,description:S,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})}),S?o.jsx(Mt,{label:m,children:S}):o.jsx("span",{children:m})]},c)})]}),n&&a.length>dr&&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:G("bpb-plan-card__feature-caret",s&&"is-open"),"aria-hidden":!0,children:o.jsx(Ea,{size:14})})]})]})};function ic(a,e){const t=a.prices[e];return t||((e==="month"?a.prices.year:a.prices.month)??null)}function lc(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 dc(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 yo=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",defaultInterval:r="month",excludePlanIds:s=[],planFeatures:i={},featureDescriptions:l})=>{var H,pe,be;const{isOutdatedBilling:d,toast:c,analytics:u}=Q(),{t:p}=he(),{data:g}=Fe(),[m,S]=I.useState(r),{data:f,isLoading:v}=Ue(),{data:C}=Xe(),{data:_}=Me({enabled:a}),{data:T}=Un({enabled:a}),k=qn(),A=ts(),y=(T==null?void 0:T.planReadonly)??!1,[x,N]=I.useState(null);I.useEffect(()=>{a&&u.capture(we.PLAN_PICKER_VIEWED,{interval:m})},[a,u]);const O=P=>{P!==m&&u.capture(we.PLAN_INTERVAL_TOGGLED,{interval:P}),S(P)},D=_==null?void 0:_.plan.current.interval,L=f==null?void 0:f.find(P=>P.id===(_==null?void 0:_.plan.current.planId)),z=_?L?Se(L):"community":void 0,j=((H=_==null?void 0:_.plan.next)==null?void 0:H.planId)??null,X=!!j&&j!==(_==null?void 0:_.plan.current.planId),K=y||z==="enterprise"||z==="managed",U=I.useMemo(()=>f?f.filter(P=>Se(P)!=="managed"&&Se(P)!=="enterprise"&&!s.includes(P.id)).sort((P,re)=>xa.indexOf(Se(P))-xa.indexOf(Se(re))):[],[f,s]),V=I.useMemo(()=>dc(U),[U]),Z=rc(),Y=I.useMemo(()=>{var le;if(U.length===0)return null;const P=U.find(ke=>Se(ke)===n||ke.id===n),re=U.find(ke=>Se(ke)===z);return((le=P??re??U[0])==null?void 0:le.id)??null},[U,n,z]),[F,ue]=I.useState(void 0),[E,ae]=I.useState(a);E!==a&&(ae(a),ue(void 0));const oe=F===void 0?Y:F,J=((be=(pe=f==null?void 0:f.find(P=>Se(P)==="enterprise"))==null?void 0:pe.metadata)==null?void 0:be.contact_url)??$n,me=(P,re)=>{k.mutate({planId:P.id,interval:m},{onSuccess:()=>{u.capture(we.PLAN_DOWNGRADED,{plan_name:fe(P.name),interval:m,previous_plan_name:L?fe(L.name):void 0,reason:re==null?void 0:re.reason,survey_submitted:!!re}),re&&A.mutate(re),N(null),c({type:"success",message:p("upgradeDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeDowngradeError")})})},q=P=>{if(Se(P)!=="community"){me(P);return}u.capture(we.DOWNGRADE_CONFIRM_VIEWED,{plan_name:fe(P.name),current_plan_name:L?fe(L.name):void 0,interval:m,is_cancellation:!0}),N(P)},ne=()=>{_&&k.mutate({planId:_.plan.current.planId,interval:_.plan.current.interval},{onSuccess:()=>{u.capture(we.PLAN_DOWNGRADE_CANCELLED,{plan_name:L?fe(L.name):_.plan.current.planId}),c({type:"success",message:p("upgradeCancelDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeCancelDowngradeError")})})};return g===!1?null:d?o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:o.jsx(pa,{})}):o.jsxs(De,{open:a,onOpenChange:P=>!x&&e(P),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(fo,{"aria-label":p("dashboardBillingPeriod"),value:m,onChange:O,options:[{value:"month",label:p("upgradeMonthly")},{value:"year",label:p("upgradeAnnual"),badge:V>0?p("upgradeSaveBadge",{savings:V}):void 0}]})}),o.jsxs("div",{className:"bpb-upgrade__grid",children:[v&&[0,1,2].map(P=>o.jsxs("div",{className:"bpb-plan-card","aria-hidden":!0,children:[o.jsx(ge,{width:120,height:22}),o.jsx(ge,{width:90,height:40}),o.jsx(ge,{width:"100%",height:36,rounded:!0}),o.jsx(ge,{width:"100%",height:140})]},P)),U.map((P,re)=>{var Nn,kn;const le=Se(P),ke=ic(P,m),Oe=lc(P,m),ma=(((Nn=P.prices.month)==null?void 0:Nn.amount)??0)<=0,Je=le===z,et=Je&&(z==="community"||m===D),_r=le===z&&z!=="community"&&m!==D,at=!!j&&P.id===j&&!et,Sr=z!==void 0&&xa.indexOf(le)<xa.indexOf(z),tt=(le===n||P.id===n)&&!et,ia=Je&&X?"cancel_downgrade":et?"current":_r?"switch_interval":at?"next":Sr?"downgrade":"upgrade",_n=re>0?U[re-1]:void 0,Cr=i[le]??ut[le],Ua=P.features.conversation_sessions,Pe=Qt(C,P,m),Ba=P.features.ai_spend,Bt=Ba!==void 0?p("planFeatureAiUsageIncluded",{amount:se(Ba/je,(ke==null?void 0:ke.currency)??"usd",1)}):void 0,Sn=Ba!==void 0&&Ua?p("planFeatureDescAiUsageIncluded",{rate:se(Ba/Ua/je,(ke==null?void 0:ke.currency)??"usd",2)}):void 0,Cn={...Object.fromEntries(Object.entries(l??{}).map(([Nr,Vo])=>[Nr,{description:Vo}])),...Bt!==void 0?{"AI usage included":{label:Bt,description:(l==null?void 0:l["AI usage included"])??Sn}}:{}},Be=k.isPending&&(ia==="downgrade"&&((kn=k.variables)==null?void 0:kn.planId)===P.id||ia==="cancel_downgrade"),We=fe(P.name),wa=!Z||oe===P.id,za=Oe!==null&&ke?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-plan-card__currency",children:lt(ke.currency)}),o.jsx("span",{className:"bpb-plan-card__amount",children:Math.round(Oe)}),o.jsx("span",{className:"bpb-plan-card__per",children:p("upgradePerMonthSuffix",{currency:ke.currency.toUpperCase()})})]}):o.jsx("span",{className:"bpb-plan-card__amount",children:se(0,"usd",0)});return o.jsxs("div",{className:G("bpb-plan-card",tt&&"bpb-plan-card--highlighted bpb-glow",Z&&"bpb-plan-card--accordion",Z&&wa&&"is-expanded"),"data-plan-id":P.id,children:[Z?o.jsxs("button",{type:"button",className:"bpb-plan-card__summary","aria-expanded":wa,onClick:()=>ue(wa?null:P.id),children:[o.jsxs("span",{className:"bpb-plan-card__summary-text",children:[o.jsxs("span",{className:"bpb-plan-card__name",children:[We,tt&&o.jsx(pt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("span",{className:"bpb-plan-card__price",children:za})]}),o.jsx("span",{className:G("bpb-plan-card__feature-caret",wa&&"is-open"),"aria-hidden":!0,children:o.jsx(Ea,{size:16})})]}):o.jsxs("div",{className:"bpb-plan-card__header",children:[o.jsxs("h3",{className:"bpb-plan-card__name",children:[We,tt&&o.jsx(pt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("p",{className:"bpb-plan-card__tagline",children:p(Ls[Se(P)])}),o.jsx("div",{className:"bpb-plan-card__price",children:za})]}),wa&&o.jsxs(o.Fragment,{children:[Z&&o.jsx("p",{className:"bpb-plan-card__tagline",children:p(Ls[Se(P)])}),Ua!==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:ve(Ua)}),o.jsx("span",{className:"bpb-plan-card__metric-unit",children:p(ma?"conversationsUnit":"conversationsPerMonth")})]}),Pe?o.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeThenPer",{price:se(Pe.amount,Pe.currency,0),packSize:ve(Pe.packSize)})}):o.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeNoTopup")})]}),ia==="current"&&o.jsx(Ce,{variant:"outline",block:!0,disabled:!0,children:p("upgradeCurrentPlan")}),ia==="next"&&o.jsx(Ce,{variant:"outline",block:!0,disabled:!0,children:p("upgradeNextPlan")}),ia==="cancel_downgrade"&&o.jsx(Ce,{variant:"primary",block:!0,loading:Be,onClick:ne,children:p("upgradeCancelDowngrade")}),ia==="downgrade"&&o.jsx(Ce,{variant:"outline",block:!0,disabled:K||k.isPending,loading:Be,onClick:()=>q(P),children:p("upgradeDowngrade")}),ia==="switch_interval"&&o.jsx(Ce,{variant:"primary",block:!0,disabled:K||k.isPending,title:K?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(we.PLAN_UPGRADE_INITIATED,{plan_name:fe(P.name),interval:m,current_plan_name:L?fe(L.name):void 0}),t(P.id,m)},children:p(m==="year"?"upgradeSwitchToAnnual":"upgradeSwitchToMonthly")}),ia==="upgrade"&&o.jsx(Ce,{variant:tt?"accent":"primary",block:!0,disabled:K||k.isPending,title:K?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(we.PLAN_UPGRADE_INITIATED,{plan_name:fe(P.name),interval:m,current_plan_name:L?fe(L.name):void 0}),t(P.id,m)},children:p("upgradeUpgrade")}),o.jsx(oc,{features:Cr,previousPlanName:_n?fe(_n.name):void 0,overrides:Cn,isMobile:Z})]})]},P.id)})]}),o.jsxs("p",{className:"bpb-upgrade__footer",children:[p("upgradeFooterEnterprise")," ",o.jsx("a",{href:J,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"}),"."]})]}),x&&o.jsx(bo,{open:a,onOpenChange:P=>!P&&!k.isPending&&N(null),planId:x.id,onConfirm:P=>me(x,P),loading:k.isPending,planFeatures:i})]})},cr='-apple-system, "ui-sans-serif", "system-ui", "Segoe UI", Helvetica, Arial, sans-serif',ur="14px",vo="10px";function pr(a){return a?{theme:"night",variables:{fontFamily:cr,fontSizeBase:ur,borderRadius:vo,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:cr,fontSizeBase:ur,borderRadius:vo,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 gr(a){return{base:{fontFamily:cr,fontSize:ur,color:a?"#f9f9f9":"#0d0d0d","::placeholder":{color:a?"#9b9b9b":"#8f8f8f"}},invalid:{color:a?"#ff8583":"#e02e2a"}}}const cc={pt:"pt-BR",es:"es-419"};function mr(a){const e=a.split("-")[0]??a;return cc[e]??a}const hr=({onClose:a,onSuccess:e})=>{var x;const{toast:t,locale:n}=Q(),{t:r}=he(),{data:s,isLoading:i}=Me(),{data:l,isLoading:d}=Ue(),{data:c,isLoading:u}=Xe(),{data:p,isLoading:g}=Hi((x=s==null?void 0:s.pendingUpgrade)==null?void 0:x.invoiceId),m=ns(),S=rs(),[f,v]=I.useState(null),C=s==null?void 0:s.pendingUpgrade;if(i||d||u||g)return o.jsxs("div",{className:"bpb-pending-upgrade","aria-busy":"true",children:[o.jsx(ge,{height:20,width:160}),o.jsx(ge,{height:56}),o.jsx(ge,{height:40})]});if(!C)return null;const _=l==null?void 0:l.find(N=>N.id===(s==null?void 0:s.plan.current.planId)),T=C.planId?l==null?void 0:l.find(N=>N.id===C.planId):void 0,k=Object.entries(C.addons).flatMap(([N,O])=>{var z;const D=c==null?void 0:c.find(j=>j.id===N);if(!D||O<=0)return[];const L=((z=s==null?void 0:s.addons[N])==null?void 0:z.current.quantity)??0;return[{addon:D,currentQuantity:L,nextQuantity:O}]}),A=()=>{v(null),m.mutate({invoiceId:C.invoiceId},{onSuccess:()=>{t({type:"success",message:r("pendingUpgradePaySuccess")}),e==null||e(),a==null||a()},onError:N=>{v(N instanceof Error&&N.message?N.message:r("pendingUpgradePayError")),t({type:"error",message:r("pendingUpgradePayError")})}})},y=()=>{S.mutate(void 0,{onSuccess:()=>{t({type:"success",message:r("pendingUpgradeCancelSuccess")}),a==null||a()},onError:()=>t({type:"error",message:r("pendingUpgradeCancelError")})})};return o.jsxs("div",{className:"bpb-pending-upgrade",children:[o.jsx("h2",{className:"bpb-pending-upgrade__title",children:r("pendingUpgradeTitle")}),o.jsx("div",{className:"bpb-pending-upgrade__alert",children:o.jsxs("div",{children:[o.jsx("p",{className:"bpb-pending-upgrade__alert-title",children:r("pendingUpgradeFailedLabel")}),o.jsx("p",{className:"bpb-pending-upgrade__alert-body",children:r("pendingUpgradeSubtitle")})]})}),o.jsx("p",{className:"bpb-pending-upgrade__list-title",children:r("pendingUpgradeItemsLabel")}),o.jsxs("div",{className:"bpb-pending-upgrade__list",children:[T&&o.jsx("div",{className:"bpb-pending-upgrade__row",children:o.jsx("span",{children:r("pendingUpgradePlanChange",{currentPlan:_?fe(_.name):r("planBannerNoPlan"),nextPlan:fe(T.name)})})}),k.map(({addon:N,currentQuantity:O,nextQuantity:D})=>o.jsx("div",{className:"bpb-pending-upgrade__row",children:o.jsx("span",{children:r("pendingUpgradeAddonChange",{currentQuantity:O,nextQuantity:D,name:$e[N.id]?r($e[N.id]):Da(N.name)})})},N.id))]}),p?o.jsxs("div",{className:"bpb-pending-upgrade__total",children:[o.jsx("span",{children:r("pendingUpgradeAmountDue")}),o.jsx("span",{children:se(p.amount,p.currency)})]}):o.jsx("p",{className:"bpb-pending-upgrade__error",children:r("pendingUpgradeAmountUnavailable")}),f&&o.jsx("p",{className:"bpb-pending-upgrade__error",children:f}),C.expiresAt&&o.jsx("p",{className:"bpb-pending-upgrade__expires",children:r("pendingUpgradeExpiresOn",{date:Ts(C.expiresAt,n)})}),o.jsxs("div",{className:"bpb-pending-upgrade__actions",children:[o.jsx(Ce,{variant:"outline",onClick:y,loading:S.isPending,disabled:m.isPending,children:r("pendingUpgradeCancelCta")}),o.jsx(Ce,{variant:"primary",onClick:A,loading:m.isPending,disabled:S.isPending||!p,children:r("pendingUpgradePayCta")})]})]})},uc={address:"address",name:"address",taxId:"taxId",payment:"payment"};function _o(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[uc[s.scope??""]??"general"]=s.message);return Object.keys(n).length>0?n:{general:(a==null?void 0:a.message)||e}}function fn(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 So(a){const e=new Date(a);return new Date(e.getUTCFullYear(),e.getUTCMonth()+1,0).toISOString()}const pc=4,gc=({plan:a,interval:e,preview:t,isLoadingPreview:n,isPreviewError:r,canSubscribe:s,isSubmitting:i,submitError:l,onSubscribe:d})=>{var V,Z,Y,F,ue;const{locale:c}=Q(),{t:u}=he(),{data:p}=Xe(),g=((V=a==null?void 0:a.prices.month)==null?void 0:V.currency)??((Z=a==null?void 0:a.prices.year)==null?void 0:Z.currency)??"usd",m=a==null?void 0:a.features.conversation_sessions,S=a&&Se(a)==="community"?u("conversationsUnit"):u("conversationsPerMonth"),f=a?Qt(p,a,e):null,v=(t==null?void 0:t.costs.immediate.amountDue)??0,C=(t==null?void 0:t.costs.immediate.accountBalance)??0,_=(t==null?void 0:t.costs.nextCycle.total)??0,T=t!=null&&t.nextBillingDate?Is(t.nextBillingDate,1):null,k=T&&!fn(T)?Ke(T,c):null,A=a?ut[Se(a)].slice(0,pc):[],y=a==null?void 0:a.features.ai_spend,x=y!==void 0?u("planFeatureAiUsageIncluded",{amount:se(y/je,g,1)}):void 0,N=a?((Y=a.prices[e])==null?void 0:Y.amount)??0:0,O=(t==null?void 0:t.costs.immediate.lineItems)??[],D=O.filter(E=>E.type==="discount"),L=O.filter(E=>E.type==="proration_credit"||E.type==="proration_charge").reduce((E,ae)=>E+ae.amount,0),z=!!(t!=null&&t.subscription.plan.effectiveDate),j=((F=a==null?void 0:a.prices.month)==null?void 0:F.amount)??0,X=((ue=a==null?void 0:a.prices.year)==null?void 0:ue.amount)??0,K=e==="year"&&j>0&&X>0?Math.round(j*12-X):0,U=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?`${fe(a.name)} plan`:o.jsx(ge,{width:140,height:24})}),m!==void 0&&o.jsxs("div",{className:"bpb-summary__metric",children:[o.jsx("span",{className:"bpb-summary__metric-value",children:ve(m)}),o.jsx("span",{className:"bpb-summary__metric-unit",children:S}),f&&o.jsx("span",{className:"bpb-summary__metric-pack",children:u("orderThen",{price:se(f.amount,f.currency,0),packSize:ve(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(E=>{const ae=tn(E),oe=ct[E],J=E==="AI usage included"?x??(oe!==void 0?u(oe.label):E):oe!==void 0?u(oe.label):E;return o.jsxs("li",{children:[o.jsx(ae,{size:16,className:"bpb-summary__feature-icon"}),o.jsx("span",{children:J})]},E)})})]}),o.jsx("hr",{className:"bpb-summary__divider"}),n&&o.jsxs("div",{className:"bpb-summary__lines","aria-busy":"true",children:[o.jsx(ge,{height:16}),o.jsx(ge,{height:16}),o.jsx(ge,{height:20})]}),r&&o.jsx("p",{role:"alert",className:"bpb-summary__error",children:u("orderPreviewError")}),t&&!n&&z&&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:k?u("orderPlanFromDate",{plan:a?fe(a.name):"",date:k}):`${a?fe(a.name):""} plan`}),o.jsxs("span",{className:"bpb-summary__line-amount",children:[se(_,g),u(e==="year"?"perYear":"perMonth")]})]}),o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:o.jsx(Mt,{label:u("orderProratedToday"),children:u("orderProratedTodayDesc")})}),o.jsx("span",{className:"bpb-summary__line-amount",children:se(v,g)})]}),o.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[o.jsx("span",{children:u("orderDueToday")}),o.jsx("span",{children:se(v,g)})]}),L<0&&o.jsx("p",{className:"bpb-summary__addon-note",children:u("orderCreditTowardNext",{amount:se(Math.abs(L),g)})})]}),t&&!n&&!z&&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?fe(a.name):""," plan (",u(e==="year"?"orderIntervalAnnual":"orderIntervalMonthly"),")"]}),o.jsxs("span",{className:"bpb-summary__line-amount",children:[se(N,g),u(e==="year"?"perYear":"perMonth")]})]}),D.map((E,ae)=>o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:E.description}),o.jsx("span",{className:"bpb-summary__line-amount",children:se(E.amount,g)})]},`${E.id}-${ae}`)),L!==0&&o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:o.jsx(Mt,{label:L<0?u("orderCreditUnusedTime"):u("orderAdjustUnusedTime"),children:L<0?u("orderCreditUnusedTimeDesc"):u("orderAdjustUnusedTimeDesc")})}),o.jsx("span",{className:"bpb-summary__line-amount",children:se(L,g)})]}),C!==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(C,g)})]}),o.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[o.jsx("span",{children:u("orderDueToday")}),o.jsx("span",{children:se(v,g)})]}),L<0&&v===0&&o.jsx("p",{className:"bpb-summary__addon-note",children:u("orderBalanceAsCredit",{amount:se(Math.abs(L),g)})})]}),K>0&&o.jsxs("div",{className:"bpb-summary__savings",children:[o.jsx(Xt,{size:18,className:"bpb-summary__savings-icon"}),o.jsx("span",{children:u("orderSavingsNote",{monthlySavings:se(U,g,0),yearlySavings:se(K,g,0)})})]}),o.jsx(Ce,{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:[" ",k?u("orderChargedStarting",{amount:se(_,g),period:u(e==="month"?"perMonthLong":"perYearLong"),date:k}):u("orderChargedNoDate",{amount:se(_,g),period:u(e==="month"?"perMonthLong":"perYearLong")})]})," ",u("orderCancelNote")]})]})},mc=["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"],hc={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)"}]},bc=[{type:"eu_vat",label:"EU VAT",description:"European VAT number"}];function Co(a){if(!a)return[];const e=a.toUpperCase(),t=hc[e]??[];return mc.includes(e)?[...bc,...t]:t}const yn=({label:a,invalid:e,className:t,id:n,...r})=>a?o.jsxs("label",{className:G("bpb-input",t),children:[o.jsx("span",{className:"bpb-input__label",children:a}),o.jsx("input",{className:G("bpb-input__field bpb-input__field--labeled",e&&"bpb-input__field--invalid"),id:n,"aria-invalid":e||void 0,...r})]}):o.jsx("input",{className:G("bpb-input__field",e&&"bpb-input__field--invalid",t),id:n,"aria-invalid":e||void 0,...r}),br=({label:a,className:e,children:t,...n})=>o.jsxs("label",{className:G("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:G("bpb-input__field bpb-input__field--select",a&&"bpb-input__field--labeled"),...n,children:t}),o.jsx(Ea,{size:16,className:"bpb-input__chevron"})]})]}),fc=({plan:a,interval:e,onChange:t})=>{const{t:n}=he(),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:G("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:G("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(pt,{children:n("checkoutSaveBadge",{savings:i})})]}),o.jsxs("span",{className:"bpb-interval-card__price",children:[se(s.amount/12,s.currency,0)," ",n("perMonth")]})]})]})]})},No=({number:a,title:e,onEdit:t})=>{const{t:n}=he();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")})]})},yc=({stepNumber:a,savedCard:e,isDark:t,tab:n,onTabChange:r,onPaymentChange:s,error:i})=>{const{t:l}=he(),[d,c]=I.useState(!1),u=n==="new"||!e;return o.jsxs("section",{className:"bpb-step",children:[o.jsx(No,{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:G("bpb-pay-tab",n==="saved"&&"bpb-pay-tab--selected"),onClick:()=>r("saved"),children:[o.jsx(Yn,{size:16}),l("checkoutSavedCardTab")]}),o.jsxs("button",{type:"button",role:"tab","aria-selected":n==="new",className:G("bpb-pay-tab",n==="new"&&"bpb-pay-tab--selected"),onClick:()=>r("new"),children:[o.jsx(Yn,{size:16}),l("checkoutNewCardTab")]})]}),e&&n==="saved"&&o.jsxs("div",{className:"bpb-saved-card",children:[o.jsx(ar,{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(ge,{height:48})}),o.jsx("div",{className:G("bpb-card-element",!d&&"bpb-payment-element--hidden"),children:o.jsx(ze.CardElement,{options:{style:gr(t),hidePostalCode:!0},onReady:()=>c(!0),onChange:p=>s(p.complete)})})]}),i&&o.jsx("p",{role:"alert",className:"bpb-step__field-error",children:i})]})},vc=({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:g,onBusinessNameChange:m,taxType:S,onTaxTypeChange:f,taxValue:v,onTaxValueChange:C,addressError:_,taxIdError:T})=>{const{t:k}=he(),[A,y]=I.useState(!1),x=r||!e,N=Co(c),O=N.find(D=>D.type===S);return o.jsxs("section",{className:"bpb-step",children:[o.jsx(No,{number:a,title:k("checkoutBillingAddressTitle")}),n?o.jsx(ge,{height:72}):x?o.jsxs("div",{className:"bpb-payment-element",children:[!A&&o.jsxs("div",{className:"bpb-payment-element__skeleton",children:[o.jsx(ge,{height:48}),o.jsx(ge,{height:48})]}),o.jsx("div",{className:G(!A&&"bpb-payment-element--hidden"),children:o.jsx(ze.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:()=>{y(!0),l()},onChange:D=>{d(D.value.address.country||void 0)}})}),i&&r&&o.jsx("button",{type:"button",className:"bpb-address-cancel",onClick:i,children:k("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:k("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:D=>{p(D.target.checked),D.target.checked&&!S&&N[0]&&f(N[0].type)}}),o.jsx("span",{children:k("checkoutIsBusiness")})]}),u&&o.jsxs("div",{className:"bpb-business-fields",children:[o.jsx("h4",{className:"bpb-step__subtitle",children:k("checkoutBusinessDetails")}),o.jsx(yn,{placeholder:k("checkoutBusinessNamePlaceholder"),value:g,onChange:D=>m(D.target.value),autoComplete:"organization"}),N.length>0?o.jsxs(o.Fragment,{children:[o.jsx(br,{"aria-label":k("checkoutTaxIdTypeLabel"),value:S,onChange:D=>f(D.target.value),children:N.map(D=>o.jsxs("option",{value:D.type,children:[D.label," — ",D.description]},D.type))}),o.jsx(yn,{placeholder:O?O.description:k("checkoutTaxIdNumberPlaceholder"),value:v,onChange:D=>C(D.target.value),inputMode:"text"}),T&&o.jsx("p",{role:"alert",className:"bpb-step__field-error",children:T})]}):o.jsx("p",{className:"bpb-business-fields__note",children:k(c?"checkoutNoTaxRequired":"checkoutSelectCountryForTax")})]})]})},_c=({planId:a,initialInterval:e,onSuccess:t})=>{var Ua;const n=ze.useStripe(),r=ze.useElements(),{email:s,toast:i,analytics:l,isDark:d}=Q(),{t:c}=he(),[u,p]=I.useState(e),[g,m]=I.useState(null),[S,f]=I.useState(!1),[v,C]=I.useState(!1),[_,T]=I.useState(!1),[k,A]=I.useState(void 0),[y,x]=I.useState(!1),[N,O]=I.useState(""),[D,L]=I.useState(""),[z,j]=I.useState(""),[X,K]=I.useState(!1),[U,V]=I.useState({}),[Z,Y]=I.useState(!1),F=zn(),{data:ue}=Ue(),{data:E}=Me(),{data:ae,isLoading:oe}=Mn(),{data:J,isLoading:me,isError:q}=On(),ne=ue==null?void 0:ue.find(Pe=>Pe.id===a),H=((Ua=ae==null?void 0:ae.paymentMethod)==null?void 0:Ua.card)??null,pe=(J==null?void 0:J.address)??null;I.useEffect(()=>{g===null&&!oe&&ae!==void 0&&m(H?"saved":"new")},[g,oe,ae,H]),I.useEffect(()=>{k===void 0&&pe&&A(pe.country)},[k,pe]);const be=I.useMemo(()=>({plan:{planId:a,interval:u}}),[a,u]),P=Fn(be),re=Vn(),le=jn(),ke=qn(),Oe=ne?fe(ne.name):"",ma=g==="new"||!H,Je=v||!pe,et=ma?S:!!H,_r=Je?_:!0,at=et?"address":"payment";I.useEffect(()=>{l.capture(we.CHECKOUT_STEP_VIEWED,{plan_name:Oe,interval:u,step:at})},[l,at]);const Sr=Pe=>{Pe!==u&&l.capture(we.CHECKOUT_INTERVAL_CHANGED,{plan_name:Oe,interval:Pe}),p(Pe)},tt=Pe=>{l.capture(we.PAYMENT_METHOD_SELECTED,{method:Pe==="saved"?"saved_card":"new_card"}),m(Pe)},ia=Pe=>{f(Pe),Y(!1)},_n=!!n&&!!r&&!!ne&&!me&&!q&&!P.isError&&!!P.data&&et&&_r&&!X,Cr=async()=>{var Ba,Bt,Sn,Cn;if(!n||!r||!ne||me||q)return;K(!0),V({});const Pe=(Be,We)=>l.capture(we.CHECKOUT_ERROR,{plan_name:Oe,interval:u,step:at,reason:Be,message:We});try{if(l.capture(we.PAYMENT_DETAILS_CONFIRMED,{plan_name:Oe,interval:u}),ma&&!Z){const la=r.getElement(ze.CardElement);if(!la){V({payment:c("checkoutCardNotReady")}),Pe("card_element_not_ready");return}const{clientSecret:kr}=await F.mutateAsync(),{error:ha,setupIntent:Ge}=await n.confirmCardSetup(kr,{payment_method:{card:la}});if(ha){V({payment:ha.message??c("checkoutPaymentSetupFailed")}),l.capture(we.CHECKOUT_ERROR,{plan_name:Oe,interval:u,step:at,reason:ha.code??"card_setup_failed",decline_code:ha.decline_code,message:ha.message});return}if(!(Ge!=null&&Ge.payment_method)||typeof Ge.payment_method!="string"){V({payment:c("checkoutPaymentMethodMissing")}),Pe("payment_method_missing");return}await re.mutateAsync({paymentMethodId:Ge.payment_method}),Y(!0)}let Be,We;if(Je){const la=r.getElement("address");if(la){const{complete:kr,value:ha}=await la.getValue();if(!kr||!ha.address){V({address:c("checkoutAddressIncomplete")}),Pe("address_incomplete");return}const{address:Ge}=ha;We=((Ba=ha.name)==null?void 0:Ba.trim())||void 0,Be={lineOne:Ge.line1??"",lineTwo:Ge.line2??void 0,city:Ge.city??"",state:Ge.state??void 0,postalCode:Ge.postal_code??"",country:Ge.country??""}}}const wa=y&&N.trim()||We||(J==null?void 0:J.name)||void 0,za=y&&D&&z.trim()?{type:D,value:z.trim()}:void 0,Nn=za?[...((J==null?void 0:J.taxIds)??[]).filter(la=>la.type!==za.type||la.value!==za.value),za]:J==null?void 0:J.taxIds;(Be||y||wa!==((J==null?void 0:J.name)??void 0))&&await le.mutateAsync({address:Be??pe??void 0,name:wa,taxIds:Nn});const kn=((Bt=P.data)==null?void 0:Bt.costs.immediate.amountDue)??0,Nr=((Sn=P.data)==null?void 0:Sn.costs.nextCycle.total)??0;if((await ke.mutateAsync({planId:a,interval:u})).pendingUpgrade)return;l.capture(we.PLAN_UPGRADED,{plan_name:Oe,interval:u,amount_paid:kn,next_cycle_amount:Nr,previous_plan_name:(Cn=ue==null?void 0:ue.find(la=>la.id===(E==null?void 0:E.plan.current.planId)))==null?void 0:Cn.name.replace("Plan - ",""),previous_interval:E==null?void 0:E.plan.current.interval}),i({type:"success",message:c("checkoutSuccessToast")}),t()}catch(Be){const We=Be instanceof Error?Be:void 0;V(_o(We,c("checkoutGenericError"))),Pe((We==null?void 0:We.type)??"exception",Be instanceof Error?Be.message:void 0),i({type:"error",message:c("checkoutErrorToast")})}finally{K(!1)}};return o.jsxs("div",{className:"bpb-checkout__columns",children:[o.jsxs("div",{className:"bpb-checkout__main",children:[ne&&o.jsx(fc,{plan:ne,interval:u,onChange:Sr}),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(yc,{stepNumber:1,savedCard:H,isDark:d,tab:g??"new",onTabChange:tt,onPaymentChange:ia,error:U.payment}),o.jsx(vc,{stepNumber:2,existingAddress:pe,customerName:(J==null?void 0:J.name)??null,isLoading:me,editing:v,onEdit:()=>C(!0),onCancelEdit:pe?()=>C(!1):void 0,onReady:()=>T(!0),onCountryChange:A,country:k,isBusiness:y,onIsBusinessChange:x,businessName:N,onBusinessNameChange:O,taxType:D,onTaxTypeChange:L,taxValue:z,onTaxValueChange:j,addressError:U.address,taxIdError:U.taxId})]}),o.jsx("div",{className:"bpb-checkout__aside",children:o.jsx(gc,{plan:ne,interval:u,preview:P.data,isLoadingPreview:P.isLoading,isPreviewError:P.isError,canSubscribe:_n,isSubmitting:X,submitError:U.general??null,onSubscribe:()=>void Cr()})})]})},ko=({open:a,onOpenChange:e,planId:t,interval:n,onBack:r,onSuccess:s})=>{const{stripePromise:i,isDark:l,locale:d,isOutdatedBilling:c}=Q(),{t:u}=he(),{data:p}=Fe(),g=Rt({enabled:a&&!c}),m=I.useMemo(()=>({appearance:pr(l),locale:mr(d)}),[l,d]);return p===!1?null:c?o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":u("checkoutTitle"),className:"bpb-scope",children:o.jsx(pa,{})}):g?o.jsx(De,{open:a,onOpenChange:e,size:"sm","aria-label":u("pendingUpgradeTitle"),className:"bpb-scope",children:o.jsx(hr,{onClose:()=>e(!1),onSuccess:s})}):o.jsx(De,{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(Jn,{size:18})}),o.jsx("h2",{className:"bpb-checkout__title",children:u("checkoutTitle")})]}),o.jsx(ze.Elements,{stripe:i,options:m,children:o.jsx(_c,{planId:t,initialInterval:n,onSuccess:()=>{e(!1),s==null||s()}})})]})})},wo=({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:G("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(Ws,{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(Qn,{size:14})})]})},To=({title:a,body:e,ctaLabel:t,onUpgrade:n,onClose:r})=>{const{t:s}=he();return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-upgrade-gate",children:[o.jsx(Kl,{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(Ce,{variant:"primary",className:"bpb-upgrade-gate__cta",onClick:n,children:t}):o.jsx(Ce,{variant:"outline",onClick:r,children:s("close")})})]})},Sc=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=Q(),{t:s}=he(),{data:i}=Fe(),l=Rt({enabled:a&&!r});return i===!1?null:r?o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":s("addonsDialogTitle"),className:"bpb-scope",children:o.jsx(pa,{})}):l?o.jsx(De,{open:a,onOpenChange:e,size:"sm","aria-label":s("pendingUpgradeTitle"),className:"bpb-scope",children:o.jsx(hr,{onClose:()=>e(!1),onSuccess:t})}):o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":s("addonsDialogTitle"),className:"bpb-scope",children:o.jsx(Cc,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},Cc=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var ae,oe,J,me;const{toast:n,locale:r}=Q(),{t:s}=he(),{data:i,refetch:l}=Me(),{data:d}=Xe(),{data:c}=Ue(),{data:u}=Un(),p=as(),[g,m]=I.useState(null),[S,f]=I.useState(!1),v=c==null?void 0:c.find(q=>q.id===(i==null?void 0:i.plan.current.planId)),C=(i==null?void 0:i.plan.current.interval)??"month",_=(u==null?void 0:u.addonsReadonly)??!1,T=i==null?void 0:i.plan.current.periodEnd,k=T&&!fn(T)?Ke(T,r):null,A=I.useMemo(()=>{var ne;if(!i||!d)return null;const q={};for(const H of d){const pe=i.addons[H.id];q[H.id]=((ne=pe==null?void 0:pe.next)==null?void 0:ne.quantity)??(pe==null?void 0:pe.current.quantity)??0}return q},[i,d]),y=g??A,x=I.useMemo(()=>!d||!v?[]:d.flatMap(q=>{const ne=dt(q,v,C);return ne?[{addon:q,price:ne}]:[]}),[d,v,C]),N=!!y&&!!A&&Object.keys(y).some(q=>y[q]!==A[q]),O=x.reduce((q,{addon:ne,price:H})=>q+((y==null?void 0:y[ne.id])??0)*H.amount,0),D=I.useMemo(()=>v&&y?{plan:{planId:v.id,interval:C},addons:y}:null,[v,C,y]),L=Fn(D??{plan:{planId:"",interval:C}},{enabled:!!D&&N}),z=((ae=v==null?void 0:v.prices[C])==null?void 0:ae.currency)??"usd",j=((oe=L.data)==null?void 0:oe.costs.immediate.amountDue)??0,X=(J=L.data)==null?void 0:J.nextBillingDate,K=X&&!fn(X)?Ke(X,r):null,U=((me=v==null?void 0:v.prices[C])==null?void 0:me.amount)??0,V=U+O,Z=v&&y?Ds(v,d,y):[],Y=(q,ne)=>ne==="bytes"?Pa(q):ve(q),F=(q,ne)=>{const H=d==null?void 0:d.find(re=>re.id===q),pe=H==null?void 0:H.increments;if(!pe||ne<=0)return null;const be=pe.conversation_sessions??0;if(be>0)return s("addonsConvos",{n:ve(be*ne)});const P=pe.file_storage??0;return P>0?Pa(P*ne):null},ue=async()=>{if(!y)return;f(!0);const{data:q}=await l();f(!1),!(q!=null&&q.pendingUpgrade)&&p.mutate({addons:y},{onSuccess:ne=>{ne.pendingUpgrade||(n({type:"success",message:s("addonsUpdateSuccess")}),a(!1),e==null||e())},onError:()=>n({type:"error",message:s("addonsUpdateError")})})},E=!i||!d||!c;return o.jsxs("div",{className:"bpb-manage-addons",children:[o.jsx("h2",{className:"bpb-manage-addons__title",children:s("addonsDialogTitle")}),(E||x.length>0)&&o.jsx("p",{className:"bpb-manage-addons__subtitle",children:v?s("addonsSubtitleWithPlan",{planName:fe(v.name)}):s("addonsSubtitleGeneric")}),E?o.jsxs("div",{className:"bpb-manage-addons__loading","aria-busy":"true",children:[o.jsx(ge,{height:56}),o.jsx(ge,{height:56})]}):x.length===0?o.jsx(To,{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:x.map(({addon:q,price:ne})=>{var re;const H=((re=i==null?void 0:i.addons[q.id])==null?void 0:re.current.quantity)??0,pe=(y==null?void 0:y[q.id])??0,be=pe!==H?pe===0?k?s("addonRemovedOnDate",{activeNow:H,date:k}):s("addonRemovedNextCycle",{activeNow:H}):k?s("addonChangedOnDate",{activeNow:H,pending:pe,date:k}):s("addonChangedNextCycle",{activeNow:H,pending:pe}):H>0?s("addonActiveOnly",{count:H}):null,P=F(q.id,pe);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:$e[q.id]?s($e[q.id]):Da(q.name)}),o.jsx("span",{className:"bpb-addon-row__description",children:Ps[q.id]?s(Ps[q.id]):q.description}),o.jsxs("span",{className:"bpb-addon-row__price",children:[se(ne.amount,ne.currency)," ",s("addonsEach")]}),be&&o.jsx("span",{className:G("bpb-addon-row__status",pe!==H&&"bpb-addon-row__status--changed"),children:be})]}),o.jsxs("div",{className:"bpb-addon-row__control",children:[P&&o.jsx("span",{className:"bpb-addon-row__grant",children:P}),o.jsx(wo,{"aria-label":`${$e[q.id]?s($e[q.id]):Da(q.name)} quantity`,value:pe,onChange:le=>m({...y??{},[q.id]:le})})]})]},q.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(q=>{const ne={conversation_sessions:"resourceConversations",table_rows:"resourceTableRows",vector_db_storage:"resourceVectorDb",file_storage:"resourceFileStorage"}[q.key];return o.jsxs("div",{className:"bpb-manage-addons__limit-row",children:[o.jsx("span",{className:"bpb-manage-addons__limit-label",children:ne?s(ne):q.label}),o.jsxs("span",{className:"bpb-manage-addons__limit-values",children:[o.jsx("span",{className:"bpb-manage-addons__limit-now",children:Y(q.now,q.unit)}),o.jsx("span",{className:"bpb-manage-addons__limit-arrow","aria-hidden":!0,children:"→"}),o.jsx("span",{className:"bpb-manage-addons__limit-next",children:Y(q.next,q.unit)})]})]},q.key)})]}),o.jsxs("div",{className:"bpb-manage-addons__totals",children:[o.jsxs("div",{className:"bpb-manage-addons__line",children:[o.jsx("span",{children:v?s("addonsPlanLine",{planName:fe(v.name)}):s("addonsGenericPlan")}),o.jsx("span",{children:se(U,z)})]}),x.map(({addon:q,price:ne})=>{const H=(y==null?void 0:y[q.id])??0;return H<=0?null:o.jsxs("div",{className:"bpb-manage-addons__line",children:[o.jsxs("span",{children:[H,"×"," ",$e[q.id]?s($e[q.id]):Da(q.name)]}),o.jsx("span",{children:se(ne.amount*H,z)})]},q.id)}),o.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--total",children:[o.jsx("span",{children:s(C==="year"?"addonsTotalYearly":"addonsTotalMonthly")}),o.jsxs("span",{children:[se(V,z),s(C==="year"?"perYear":"perMonth")]})]}),N&&o.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--due",children:[o.jsx("span",{children:s("addonsDueToday")}),o.jsx("span",{children:L.isLoading?"…":L.isError?"—":se(Math.max(j,0),z)})]})]}),N&&!L.isError&&o.jsxs("p",{className:"bpb-manage-addons__note",children:[j>0?s("addonsChargedNow",{amount:se(j,z)}):s("addonsNoChargeToday"),K?s("addonsRenewalWithDate",{date:K,amount:se(O,z),interval:s(C==="year"?"perYear":"perMonth")}):s("addonsRenewalNoDate",{amount:se(O,z),interval:s(C==="year"?"perYear":"perMonth")})]}),_&&o.jsx("p",{className:"bpb-manage-addons__note",role:"alert",children:s("addonsReadonlyNote")}),o.jsxs("div",{className:"bpb-manage-addons__actions",children:[o.jsx(Ce,{variant:"outline",onClick:()=>a(!1),disabled:p.isPending,children:s("cancel")}),o.jsx(Ce,{variant:"primary",disabled:!N||_||S,loading:S||p.isPending,onClick:ue,children:s("addonsUpdateSubscription")})]})]})]})},Io=({open:a,onOpenChange:e,onSuccess:t})=>{const{isOutdatedBilling:n}=Q(),{t:r}=he(),{data:s}=Fe();return s===!1?null:n?o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":r("pendingUpgradeTitle"),className:"bpb-scope",children:o.jsx(pa,{})}):o.jsx(De,{open:a,onOpenChange:e,size:"sm","aria-label":r("pendingUpgradeTitle"),className:"bpb-scope",children:o.jsx(hr,{onClose:()=>e(!1),onSuccess:t})})},Nc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=Q(),{t:n}=he(),{data:r}=Fe(),s=Rt({enabled:!t}),[i,l]=I.useState(!1);return r===!1||t||!s?null:o.jsxs(o.Fragment,{children:[o.jsxs("button",{type:"button",className:G("bpb-pending-upgrade-banner bpb-scope",e),onClick:()=>a?a():l(!0),children:[o.jsx(mt,{size:18,className:"bpb-pending-upgrade-banner__icon"}),o.jsx("span",{className:"bpb-pending-upgrade-banner__text",children:n("pendingUpgradeBannerText")}),o.jsxs("span",{className:"bpb-pending-upgrade-banner__cta",children:[n("pendingUpgradeBannerCta")," ",o.jsx(aa,{size:16})]})]}),!a&&o.jsx(Io,{open:i,onOpenChange:l})]})},kc=({open:a,onOpenChange:e})=>{const{isOutdatedBilling:t}=Q(),{t:n}=he(),{data:r}=Fe();return r===!1?null:t?o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:o.jsx(pa,{})}):o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:o.jsx(wc,{open:a})})},wc=({open:a})=>{const{locale:e,analytics:t}=Q(),{t:n}=he(),{data:r,isLoading:s,isError:i}=Jr({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(ge,{height:52}),o.jsx(ge,{height:52}),o.jsx(ge,{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:Ke(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:Ke(c.createdAt,e)}),onClick:()=>t.capture(we.INVOICE_DOWNLOADED,{status:c.status}),children:o.jsx(er,{size:16})}):o.jsx("span",{className:"bpb-invoices__download bpb-invoices__download--disabled","aria-hidden":!0,children:o.jsx(er,{size:16})})]})]},c.id))})]})},Tc=({open:a,onOpenChange:e,onSuccess:t})=>{var S;const{stripePromise:n,isDark:r,locale:s,isOutdatedBilling:i}=Q(),{t:l}=he(),{data:d}=Fe(),c=zn(),u=(S=c.data)==null?void 0:S.clientSecret,{mutate:p,reset:g}=c;I.useEffect(()=>{a&&!i&&d?p():g()},[a,i,d,p,g]);const m=I.useMemo(()=>u?{clientSecret:u,appearance:pr(r),locale:mr(s)}:null,[u,r,s]);return d===!1?null:i?o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:o.jsx(pa,{})}):o.jsx(De,{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(Ce,{variant:"outline",onClick:()=>p(),children:l("tryAgain")})]}):!m||!u?o.jsxs("div",{className:"bpb-payment-dialog__loading","aria-busy":"true",children:[o.jsx(ge,{height:48}),o.jsx(ge,{height:120})]}):o.jsx(ze.Elements,{stripe:n,options:m,children:o.jsx(Ic,{clientSecret:u,isDark:r,onSuccess:t})})]})})},Ic=({clientSecret:a,isDark:e,onSuccess:t})=>{var be;const n=ze.useStripe(),r=ze.useElements(),{toast:s,analytics:i}=Q(),{t:l}=he(),{data:d,isLoading:c}=Mn(),{data:u,isLoading:p}=On(),g=Vn(),m=jn(),S=((be=d==null?void 0:d.paymentMethod)==null?void 0:be.card)??null,f=(u==null?void 0:u.address)??null,v=(u==null?void 0:u.taxIds)??[],[C,_]=I.useState(!1),[T,k]=I.useState(!1),[A,y]=I.useState(!1),[x,N]=I.useState(!1),[O,D]=I.useState(null),[L,z]=I.useState(!1),[j,X]=I.useState(!1),[K,U]=I.useState({}),[V,Z]=I.useState(f==null?void 0:f.country),[Y,F]=I.useState(v.length>0),[ue,E]=I.useState(null),ae=ue??v.map(P=>({type:P.type,value:P.value})),oe=Co(V),J=C||!S,me=(P,re)=>E(ae.map((le,ke)=>ke===P?{...le,...re}:le)),q=()=>{var P;return E([...ae,{type:((P=oe[0])==null?void 0:P.type)??"",value:""}])},ne=P=>E(ae.filter((re,le)=>le!==P)),H=async()=>{if(!n||!r)return;const P=r.getElement(ze.CardElement);if(P){N(!0),D(null);try{const{error:re,setupIntent:le}=await n.confirmCardSetup(a,{payment_method:{card:P}});if(re){D(re.message??l("paymentCardSaveError"));return}if(!(le!=null&&le.payment_method)||typeof le.payment_method!="string"){D(l("paymentMethodMissing"));return}await g.mutateAsync({paymentMethodId:le.payment_method}),i.capture(we.PAYMENT_METHOD_UPDATED),s({type:"success",message:l("paymentCardUpdated")}),_(!1),t==null||t()}catch(re){D(re instanceof Error&&re.message?re.message:l("paymentCardGenericError"))}finally{N(!1)}}},pe=async()=>{if(!r)return;const P=r.getElement("address");if(!P)return;const{complete:re,value:le}=await P.getValue();if(!re||!le.address){U({address:l("paymentAddressIncomplete")});return}X(!0),U({});try{const{address:ke,name:Oe}=le,ma=ae.filter(Je=>!!Je.type&&Je.value.trim()!=="").map(Je=>({type:Je.type,value:Je.value.trim()}));await m.mutateAsync({address:{lineOne:ke.line1??"",lineTwo:ke.line2??void 0,city:ke.city??"",state:ke.state??void 0,postalCode:ke.postal_code??"",country:ke.country??""},name:(Oe==null?void 0:Oe.trim())||void 0,taxIds:ma}),i.capture(we.BILLING_ADDRESS_UPDATED),s({type:"success",message:l("paymentDetailsUpdated")}),t==null||t()}catch(ke){const Oe=ke instanceof Error?ke:void 0,ma=_o(Oe,l("paymentAddressError"));U(ma),ma.taxId&&F(!0),s({type:"error",message:l("paymentDetailsUpdateError")})}finally{X(!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(ge,{height:56}):J?o.jsxs("div",{className:"bpb-payment-element",children:[!T&&o.jsx(ge,{height:48}),o.jsx("div",{className:T?"bpb-card-element":"bpb-payment-element--hidden",children:o.jsx(ze.CardElement,{options:{style:gr(e),hidePostalCode:!0},onReady:()=>k(!0),onChange:P=>y(P.complete)})}),O&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:O}),o.jsxs("div",{className:"bpb-payment-dialog__section-actions",children:[S&&o.jsx(Ce,{variant:"ghost",onClick:()=>_(!1),disabled:x,children:l("cancel")}),o.jsx(Ce,{variant:"primary",disabled:!A,loading:x,onClick:H,children:l("paymentSaveCard")})]})]}):o.jsxs("div",{className:"bpb-saved-card",children:[o.jsx(ar,{brand:S.brand}),o.jsxs("span",{className:"bpb-saved-card__number",children:[o.jsx("span",{className:"bpb-saved-card__brand",children:S.brand})," •••• ",S.lastFour]}),o.jsxs("span",{className:"bpb-saved-card__exp",children:[String(S.expMonth).padStart(2,"0"),"/",String(S.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(ge,{height:72}):o.jsxs("div",{className:"bpb-payment-element",children:[!L&&o.jsx(ge,{height:120}),o.jsx("div",{className:L?void 0:"bpb-payment-element--hidden",children:o.jsx(ze.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:()=>z(!0),onChange:P=>Z(P.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":Y,onClick:()=>F(P=>!P),children:[o.jsx(Ea,{size:16,className:G("bpb-tax-toggle__chevron",Y&&"bpb-tax-toggle__chevron--open")}),l("paymentTaxIds"),v.length>0&&o.jsx("span",{className:"bpb-tax-toggle__count",children:v.length})]}),Y&&o.jsxs("div",{className:"bpb-tax",children:[ae.length===0&&o.jsx("p",{className:"bpb-tax__empty",children:l("paymentTaxEmpty")}),ae.map((P,re)=>o.jsxs("div",{className:"bpb-tax__row",children:[o.jsxs(br,{"aria-label":l("paymentTaxIdType"),value:P.type,onChange:le=>me(re,{type:le.target.value}),children:[o.jsx("option",{value:"",children:l("paymentTaxSelectType")}),oe.map(le=>o.jsx("option",{value:le.type,children:le.label},le.type)),P.type&&!oe.some(le=>le.type===P.type)&&o.jsx("option",{value:P.type,children:P.type})]}),o.jsx(yn,{placeholder:l("paymentTaxIdNumber"),value:P.value,onChange:le=>me(re,{value:le.target.value})}),o.jsx("button",{type:"button",className:"bpb-tax__remove","aria-label":l("paymentTaxRemove"),onClick:()=>ne(re),children:o.jsx(gt,{size:14})})]},re)),o.jsx("button",{type:"button",className:"bpb-link-button bpb-tax__add",onClick:q,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(Ce,{variant:"primary",loading:j,onClick:pe,children:l("paymentSaveBillingDetails")})})]})]})]})},Ao=(a,e,t)=>`bpb-dismissed:${a}:${e}:${t}`,Po=()=>new Date().toLocaleDateString("en-CA");function xo(a,e,t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(Ao(a,e,t))===Po()}catch{return!1}}function Do(a,e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(Ao(a,e,t),Po())}catch{}}const Eo=[{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 Xa(a,e){return e==="bytes"?Pa(a):e==="nano-usd"?`$${(a/je).toFixed(2)}`:ve(a)}function Lo(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 Ac=tr.NON_RESETTING_BILLING_FEATURE_IDS;function Pc(a){return!Ac.includes(a)}function Ot(a){return a?Eo.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 Fo="outgrow-free",xc=.75,Dc=5;function Ec(a,e){return a.prices[e]??(e==="month"?a.prices.year:a.prices.month)??null}function Lc(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 K,U;const{isOutdatedBilling:d,analytics:c,scope:u}=Q(),{t:p}=he(),{data:g}=Fe(),{data:m}=Ue(),{data:S}=Xe(),{data:f}=Me({enabled:!d}),{data:v}=Ta({period:l,enabled:!d}),C=a!==void 0,[_,T]=I.useState(!1),k=m==null?void 0:m.find(V=>V.id===(f==null?void 0:f.plan.current.planId)),A=f?k?Se(k)==="community":!0:!1,y=I.useMemo(()=>Ot(v).find(V=>V.key==="conversation_sessions"),[v]),x=!C&&!d&&A&&!!y&&y.pct/100>=xc&&!_&&!xo(Fo,u,"modal"),N=C?!!a:x;I.useEffect(()=>{N&&c.capture(we.PLAN_PICKER_VIEWED,{source:C?"outgrow_free":"outgrow_free_auto",interval:r})},[N,C,c]);const O=()=>{C||(Do(Fo,u,"modal"),T(!0)),e==null||e(!1)},D=I.useMemo(()=>m?m.filter(V=>{const Z=Se(V);return Z!=="community"&&Z!=="enterprise"&&Z!=="managed"}).sort((V,Z)=>xa.indexOf(Se(V))-xa.indexOf(Se(Z))):[],[m]),L=((U=(K=m==null?void 0:m.find(V=>Se(V)==="enterprise"))==null?void 0:K.metadata)==null?void 0:U.contact_url)??$n;if(g===!1||d||!N)return null;const z=(y==null?void 0:y.quota)??(k==null?void 0:k.features.conversation_sessions)??100,j=(y==null?void 0:y.used)??0,X=y&&y.pct>0?Math.min(100,Math.max(5,Math.round(y.pct))):0;return o.jsx(De,{open:N,onOpenChange:O,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(nt,{i18nKey:"outgrowLede",values:{quota:ve(z)},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":X,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("span",{className:"bpb-outgrow__usage-fill",style:{width:`${X}%`}})}),o.jsx("span",{className:"bpb-outgrow__usage-text",children:o.jsx(nt,{i18nKey:"outgrowUsageText",values:{used:ve(j),quota:ve(z)},components:{bold:o.jsx("strong",{})}})})]}),o.jsx("div",{className:"bpb-outgrow__grid",children:D.map((V,Z)=>{const Y=Se(V),F=Ec(V,r),ue=Lc(V,r),E=Y===n||V.id===n,ae=V.features.conversation_sessions,oe=Qt(S,V,r),J=Z>0?D[Z-1]:void 0,me=(s[Y]??ut[Y]).slice(0,Dc);return o.jsxs("div",{className:G("bpb-plan-card",E&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":V.id,children:[o.jsxs("div",{className:"bpb-plan-card__header",children:[o.jsxs("h3",{className:"bpb-plan-card__name",children:[fe(V.name),E&&o.jsx(pt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("div",{className:"bpb-plan-card__price",children:ue!==null&&F?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-plan-card__currency",children:lt(F.currency)}),o.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(ue)?ue:ue.toFixed(2).replace(/\.00$/,"")}),o.jsx("span",{className:"bpb-plan-card__per",children:p("perMonth")})]}):o.jsxs("span",{className:"bpb-plan-card__amount",children:[lt((F==null?void 0:F.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:[ve(ae)," ",p("conversationsUnit")]})," ",p("perMonth")]}),o.jsx("p",{className:"bpb-outgrow__allowance-pack",children:oe?p("outgrowThenPer",{symbol:lt(oe.currency),amount:oe.amount,packSize:ve(oe.packSize)}):p("outgrowNoTopup")})]}),o.jsxs(Ce,{variant:E?"accent":"outline",block:!0,onClick:()=>{c.capture(we.PLAN_UPGRADE_INITIATED,{plan_name:fe(V.name),interval:r,source:"outgrow_free"}),t(V.id,r),O()},children:[p("outgrowUpgradeTo",{planName:fe(V.name)}),E&&o.jsx(Xn,{size:15})]}),o.jsxs("ul",{className:"bpb-plan-card__features",children:[J&&o.jsx("li",{className:"bpb-outgrow__features-lead",children:p("outgrowEverythingIn",{planName:fe(J.name)})}),me.map(q=>{const ne=tn(q),H=ct[q],pe=H!==void 0?p(H.label):q,be=(i==null?void 0:i[q])??(H!==void 0?p(H.desc):void 0);return o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(ne,{size:13})}),be?o.jsx(Mt,{label:pe,children:be}):o.jsx("span",{children:pe})]},q)})]})]},V.id)})}),o.jsxs("footer",{className:"bpb-outgrow__footer",children:[o.jsxs("span",{children:[p("outgrowNeedCustom")," ",o.jsx("a",{href:L,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(ht,{size:14})]})]})]})})},ga=(a,e)=>e==="bytes"?Pa(a):e==="nano-usd"?`$${(a/je).toFixed(2)}`:ve(a),Mc=(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"})}})},Oc=({period:a})=>{const{data:e,isLoading:t,isError:n}=Xr("ai_spend",{period:a}),{t:r}=he();if(n)return null;if(t)return o.jsx(ge,{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:ga(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))})},fr=({entry:a,metric:e,planAllowance:t,planName:n,stacked:r})=>{const{t:s}=he(),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),g=p>0?n?s("dashboardFromPlanWithAddons",{amount:ga(u,e.unit),planName:n,addonAmount:ga(p,e.unit)}):s("dashboardFromPlanGenericWithAddons",{amount:ga(u,e.unit),addonAmount:ga(p,e.unit)}):n?s("dashboardFromPlan",{amount:ga(a.quota,e.unit),planName:n}):s("dashboardFromPlanGeneric",{amount:ga(a.quota,e.unit)});return o.jsxs("div",{className:"bpb-usage-row",children:[o.jsxs("div",{className:G("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:ga(i,e.unit)}),o.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",ga(a.quota,e.unit)]})]})]}),o.jsxs("span",{className:"bpb-usage-tip",tabIndex:0,role:"note","aria-label":g,onMouseMove:m=>{const S=m.currentTarget.getBoundingClientRect(),f=(m.clientX-S.left)/S.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:G("bpb-usage-bar__fill",`bpb-usage-bar__fill--${c}`),style:{width:`${d}%`}})}),o.jsx("span",{className:"bpb-usage-tip__bubble",role:"tooltip",children:g})]})]})},Uc=({period:a,showPeriodSelector:e=!0,periodMonths:t=12,className:n,onIncreaseLimits:r})=>{var z;const{isOutdatedBilling:s,locale:i}=Q(),{t:l}=he(),d=I.useMemo(()=>Mc(t,i),[t,i]),[c,u]=I.useState(a??((z=d[0])==null?void 0:z.value)??""),p=es(),g=Math.max(0,d.findIndex(j=>j.value===c)),m=j=>{const X=d[g+j];X&&u(X.value)},{data:S,isLoading:f,isError:v}=Ta({period:c,enabled:!s}),{data:C}=Me({enabled:!s}),{data:_}=Ue(),T=_==null?void 0:_.find(j=>j.id===(C==null?void 0:C.plan.current.planId)),k=T?fe(T.name):void 0,A=T?Se(T):"community",y=A==="enterprise"||A==="managed",x=j=>T==null?void 0:T.features[j];if(s)return o.jsx("div",{className:G("bpb-usage bpb-scope",n),children:o.jsx(pa,{})});if(f)return o.jsxs("div",{className:G("bpb-usage bpb-scope",n),"aria-busy":"true",children:[o.jsx(ge,{height:80}),o.jsx(ge,{height:140})]});if(v||!S)return o.jsx("div",{className:G("bpb-usage bpb-scope",n),children:o.jsx("p",{className:"bpb-usage__error",role:"alert",children:l("dashboardLoadError")})});const N=S.conversation_sessions,O=S.ai_spend,L=[{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=>S[j.key]);return o.jsxs("div",{className:G("bpb-usage bpb-scope",n),children:[y&&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:g>=d.length-1,children:o.jsx(Jn,{size:15})}),o.jsxs("span",{className:"bpb-usage__period-field",children:[o.jsx(Gs,{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(Ea,{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:g<=0,children:o.jsx(aa,{size:15})})]})]}),r&&o.jsxs(Ce,{onClick:r,children:[o.jsx(Qn,{size:15}),l("dashboardIncreaseLimits")]})]}),N&&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(fr,{entry:N,metric:{key:"conversation_sessions",label:l("dashboardConversationsMetric"),unit:"count"},planAllowance:x("conversation_sessions"),planName:k,stacked:!0})})]}),L.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:L.map(j=>o.jsx(fr,{entry:S[j.key],metric:j,planAllowance:x(j.key),planName:k},j.key))})]}),O&&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(fr,{entry:O,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(Oc,{period:c})]})]})]})},Mo="usage-banner",Bc=({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}=Q(),{t:p}=he(),{data:g}=Ta({period:i,enabled:!d}),[m,S]=I.useState({}),[f,v]=I.useState(!1),[C,_]=I.useState(null),T=g?Object.entries(g).map(([L,z])=>({key:L,pct:z.quota>0?(z.usage??0)/z.quota:0})).filter(L=>L.pct>=e).sort((L,z)=>z.pct-L.pct)[0]:void 0,k=!!T&&(m[T.key]||xo(Mo,u,T.key));if(d||!T||k)return null;const y={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")}[T.key]??T.key.replace(/_/g," "),x=Math.min(100,Math.round(T.pct*100)),N=T.pct>=1,O=()=>{c.capture(we.UPGRADE_CTA_CLICKED,{source:"usage_banner",metric:T.key,usage_pct:Math.round(T.pct*100)}),t?t():v(!0)},D=N?"critical":"warning";return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:G("bpb-usage-banner bpb-scope",`bpb-usage-banner--${a}`,`bpb-usage-banner--${D}`,l),role:"alert","aria-live":"polite",children:[o.jsx(mt,{size:18,className:"bpb-usage-banner__icon"}),o.jsx("p",{className:"bpb-usage-banner__text",children:N?p("usageBannerLimitReached",{label:y}):p("usageBannerNearLimit",{pct:x,label:y})}),o.jsxs("div",{className:"bpb-usage-banner__actions",children:[o.jsx(Ce,{variant:"primary",size:"sm",onClick:O,children:s??p(r==="manage"?"usageBannerManageCta":"usageBannerDefaultCta")}),n&&o.jsx("button",{type:"button",className:"bpb-usage-banner__dismiss","aria-label":p("usageBannerDismiss"),onClick:()=>{Do(Mo,u,T.key),S(L=>({...L,[T.key]:!0}))},children:o.jsx(gt,{size:16})})]})]}),!t&&o.jsxs(o.Fragment,{children:[o.jsx(yo,{open:f,onOpenChange:v,onSelectPlan:(L,z)=>{v(!1),_({planId:L,interval:z})}}),C&&o.jsx(ko,{open:!!C,onOpenChange:L=>!L&&_(null),planId:C.planId,interval:C.interval,onBack:()=>{_(null),v(!0)},onSuccess:()=>_(null)})]})]})},zc=({Icon:a,title:e,description:t,onClick:n,className:r})=>o.jsxs("button",{type:"button",className:G("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})]}),Ut=({children:a})=>o.jsx("span",{className:"bpb-summary-card__icon","aria-hidden":"true",children:a}),Oo=({isAddons:a,className:e})=>{const{manageBillingUrl:t}=Q(),{t:n}=he(),r=()=>t&&window.open(t,"_blank","noopener");return o.jsxs("button",{type:"button",className:G("bpb-summary-card bpb-scope",a?"bpb-summary-card--addons":"bpb-summary-card--plan",e),onClick:r,disabled:!t,children:[o.jsx(Ut,{children:a?o.jsx(an,{size:22}):o.jsx(en,{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(ht,{size:15})]})]})]})},Vc=({onManage:a,className:e})=>{var v,C;const{isOutdatedBilling:t}=Q(),{t:n}=he(),{data:r}=Fe(),{data:s,isLoading:i}=Me({enabled:!t}),{data:l,isLoading:d}=Ue();if(r===!1)return null;if(t)return o.jsx(Oo,{isAddons:!1,className:e});if(i||d)return o.jsx(ge,{height:84,rounded:!0,className:G("bpb-scope",e)});const c=s==null?void 0:s.plan.current,u=l==null?void 0:l.find(_=>_.id===(c==null?void 0:c.planId)),p=(c==null?void 0:c.interval)??"month",g=((v=u==null?void 0:u.prices[p])==null?void 0:v.amount)??0,m=((C=u==null?void 0:u.prices[p])==null?void 0:C.currency)??"usd",S=u==null?void 0:u.features.conversation_sessions,f=u?Se(u):"community";return o.jsxs("button",{type:"button",className:G("bpb-summary-card bpb-summary-card--plan bpb-scope",`bpb-summary-card--tier-${f==="managed"?"enterprise":f}`,e),onClick:a,children:[o.jsx(Ut,{children:o.jsx(en,{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?fe(u.name):n("summaryNoPlan")}),o.jsxs("span",{className:"bpb-summary-card__meta",children:[g>0?`${se(g,m,0)}${n(p==="year"?"perYear":"perMonth")}`:n("free"),S!==void 0&&` · ${n("summaryConversationsPerMo",{n:ve(S)})}`]})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(aa,{size:16})]})]})]})},jc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=Q(),{t:n}=he(),{data:r}=Fe(),{data:s,isLoading:i}=Me({enabled:!t}),{data:l,isLoading:d}=Xe();if(r===!1)return null;if(t)return o.jsx(Oo,{isAddons:!0,className:e});if(i||d)return o.jsx(ge,{height:84,rounded:!0,className:G("bpb-scope",e)});const c=(l??[]).flatMap(p=>{var m;const g=((m=s==null?void 0:s.addons[p.id])==null?void 0:m.current.quantity)??0;return g>0?[{name:$e[p.id]?n($e[p.id]):Da(p.name),quantity:g}]:[]}),u=!!(s!=null&&s.pendingUpgrade);return o.jsxs("button",{type:"button",className:G("bpb-summary-card bpb-summary-card--addons bpb-scope",c.length>0&&"bpb-summary-card--active",e),onClick:a,disabled:u,title:u?n("pendingUpgradeBlocksManageTooltip"):void 0,children:[o.jsx(Ut,{children:o.jsx(an,{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(p=>`${p.quantity}× ${p.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(aa,{size:16})]})]})]})},qc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=Q(),{t:n}=he(),{data:r}=Fe(),{data:s,isLoading:i,isError:l}=Bn({enabled:!t});if(r===!1||t)return null;if(i)return o.jsx(ge,{height:84,rounded:!0,className:G("bpb-scope",e)});if(l)return o.jsxs("button",{type:"button",className:G("bpb-summary-card bpb-summary-card--auto-recharge bpb-summary-card--error bpb-scope",e),onClick:a,children:[o.jsx(Ut,{children:o.jsx(mt,{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(aa,{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)/je,g=(d==null?void 0:d.maxAmount)!=null,m=((d==null?void 0:d.maxAmount)??0)/je,S=c?u?g?n("autoRechargeSummaryMeta",{amount:se(p,"usd",0),limit:se(m,"usd",0)}):n("autoRechargeSummaryMetaNoLimit",{amount:se(p,"usd",0)}):null:n("autoRechargeDescription");return o.jsxs("button",{type:"button",className:G("bpb-summary-card bpb-summary-card--auto-recharge bpb-scope",c&&"bpb-summary-card--active",e),onClick:a,children:[o.jsx(Ut,{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("autoRechargeTitle")}),o.jsx("span",{className:"bpb-summary-card__title",children:n(c?"autoRechargeSummaryOn":"autoRechargeSummaryOff")}),S&&o.jsx("span",{className:"bpb-summary-card__meta",children:S})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(aa,{size:16})]})]})]})},Zc=({onManage:a,className:e})=>{var F,ue;const{isOutdatedBilling:t,locale:n,manageBillingUrl:r,analytics:s}=Q(),{t:i}=he(),{data:l}=Fe(),{data:d,isLoading:c}=Me({enabled:!t}),{data:u,isLoading:p}=Ue(),{data:g,isLoading:m}=Xe();if(l===!1)return null;if(t){const E=()=>r&&window.open(r,"_blank","noopener");return o.jsxs("button",{type:"button",className:G("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(ht,{size:16})]})]})}if(c||p||m)return o.jsx(ge,{height:132,rounded:!0,className:G("bpb-scope",e)});const S=d==null?void 0:d.plan.current,f=u==null?void 0:u.find(E=>E.id===(S==null?void 0:S.planId)),v=(S==null?void 0:S.interval)??"month",C=((F=f==null?void 0:f.prices[v])==null?void 0:F.currency)??"usd",_=f?Se(f):"community",T=Object.fromEntries(Object.entries((d==null?void 0:d.addons)??{}).map(([E,ae])=>{var oe;return[E,((oe=ae.current)==null?void 0:oe.quantity)??0]})),k=((ue=f==null?void 0:f.prices[v])==null?void 0:ue.amount)??0,A=(g??[]).reduce((E,ae)=>{const oe=f?dt(ae,f,v):null;return E+(T[ae.id]??0)*((oe==null?void 0:oe.amount)??0)},0),y=k+A,x=v==="year"?"/yr":"/mo",N=Es(f,g,T).find(E=>E.key==="conversation_sessions"),O=i(_==="community"?"conversationsUnit":"conversationsPerMonth"),D=_==="enterprise"||_==="managed",L=_!=="community"&&!D,z=!!(d!=null&&d.pendingUpgrade),j=d==null?void 0:d.plan.next,X=j&&j.planId!==(S==null?void 0:S.planId),K=S==null?void 0:S.periodEnd,U=L&&!X&&K&&!fn(K)?Ke(K,n):null,V=u==null?void 0:u.find(E=>E.id===(j==null?void 0:j.planId)),Z=j==null?void 0:j.effectiveDate,Y=X&&V&&Z?i("planBannerDowngradesTo",{plan:fe(V.name),date:Ke(Z,n)}):null;return o.jsxs("button",{type:"button",className:G("bpb-plan-banner",`bpb-plan-banner--${_}`,"bpb-scope",e),onClick:()=>{s.capture(we.UPGRADE_CTA_CLICKED,{source:"plan_banner",current_tier:_}),a()},disabled:z,title:z?i("pendingUpgradeBlocksManageTooltip"):void 0,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?fe(f.name):i("planBannerNoPlan")}),D?o.jsx("span",{className:"bpb-plan-banner__sub",children:N&&N.added>0?o.jsxs(o.Fragment,{children:[i("planBannerCustom")," + ",ve(N.added)," ",O]}):i("planBannerCustomConversations")}):N&&o.jsx("span",{className:"bpb-plan-banner__sub",children:N.added>0?o.jsxs(o.Fragment,{children:[ve(N.base)," + ",ve(N.added)," ",O]}):`${ve(N.total)} ${O}`})]}),o.jsxs("div",{className:"bpb-plan-banner__summary",children:[D?o.jsx("span",{className:"bpb-plan-banner__price",children:i("planBannerCustomPricing")}):o.jsx("span",{className:"bpb-plan-banner__price",children:y>0&&o.jsxs(o.Fragment,{children:[se(y,C,0),o.jsx("span",{className:"bpb-plan-banner__price-suffix",children:x})]})}),L&&o.jsxs("span",{className:"bpb-plan-banner__meta",children:[i(v==="year"?"billedAnnually":"billedMonthly"),A>0&&` ${i("planBannerInclAddons")}`]}),U&&o.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerRenews",{date:U})}),Y&&o.jsx("span",{className:"bpb-plan-banner__meta",children:Y}),z&&o.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerPendingUpgradeNote")})]}),o.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("planBannerManageCta")," ",o.jsx(aa,{size:16})]})]})},Wc=({onManage:a,period:e,variant:t="card",showHealthyEnterprise:n=!1,className:r,style:s})=>{const{isOutdatedBilling:i,locale:l}=Q(),{t:d}=he(),{data:c,isLoading:u}=Me({enabled:!i}),{data:p,isLoading:g}=Ue(),{data:m,isLoading:S}=Ta({period:e,enabled:!i});if(i)return null;if(u||g||S)return o.jsx(ge,{height:72,rounded:!0,className:G("bpb-scope",r)});const f=p==null?void 0:p.find(V=>V.id===(c==null?void 0:c.plan.current.planId)),v=f?Se(f):"community",C=v==="enterprise"||v==="managed",_=Ot(m),T=_.find(V=>V.used>V.quota);if(C&&!T&&!n)return null;const k=_.find(V=>V.key==="conversation_sessions"),A=_[0],y=T??(A&&A.key!=="conversation_sessions"&&A.pct>=75?A:k??A),x=y?Math.round(y.pct):0,N=x>0?Math.max(5,x):0,O=y?vn(y.pct):"normal",D=O!=="normal",L=v==="community",z=!L&&(y!=null&&y.resets)?Ke(So(e??new Date().toISOString()),l):null;let j=null,X=null;if(y&&D){const V=Xa(y.remaining,y.unit);j=d(O==="critical"?"usageWidgetLimitReached":"usageWidgetRunningLow"),C?X=d("usageWidgetEnterpriseOverQuota"):L&&y.key==="conversation_sessions"?X=O==="critical"?d("usageWidgetFreeExhausted"):d("usageWidgetFreeLeft",{left:V}):X=O==="critical"?d("usageWidgetUpgradeToKeepGoing"):d("usageWidgetOnlyLeft",{left:V})}const K=o.jsx(o.Fragment,{children:y?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-plan-usage__head",children:[D&&o.jsx(mt,{size:16,className:G("bpb-plan-usage__alert",`bpb-plan-usage__alert--${O}`)}),o.jsx("span",{className:"bpb-plan-usage__plan",children:Lo(y.key,d)}),o.jsxs("span",{className:"bpb-plan-usage__count",children:[Xa(y.used,y.unit)," / ",Xa(y.quota,y.unit)]}),a&&!D&&o.jsx(aa,{size:15,className:"bpb-plan-usage__chevron"})]}),o.jsx("div",{className:"bpb-plan-usage__bar",role:"progressbar","aria-valuenow":x,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("div",{className:G("bpb-plan-usage__fill",`bpb-plan-usage__fill--${O}`),style:{width:`${N}%`}})}),j?o.jsxs("p",{className:"bpb-plan-usage__status",children:[o.jsxs("strong",{className:G("bpb-plan-usage__status-word",`bpb-plan-usage__status-word--${O}`),children:[j,"."]})," ",X&&o.jsx("span",{className:"bpb-plan-usage__status-detail",children:X})]}):z&&o.jsx("span",{className:"bpb-plan-usage__reset",children:d("usageWidgetResets",{date:z})}),a&&D&&!C&&o.jsxs("span",{className:"bpb-plan-usage__cta",children:[d("usageWidgetViewOptions"),o.jsx(Xn,{size:14})]})]}):o.jsxs("div",{className:"bpb-plan-usage__head",children:[o.jsx("span",{className:"bpb-plan-usage__plan",children:f?fe(f.name):d("free")}),a&&o.jsx(aa,{size:15,className:"bpb-plan-usage__chevron"})]})}),U=G("bpb-plan-usage bpb-scope",`bpb-plan-usage--${t}`,D&&`bpb-plan-usage--${O}`,a&&"bpb-plan-usage--clickable",r);return a?o.jsx("button",{type:"button",className:U,style:s,onClick:a,children:K}):o.jsx("div",{className:U,style:s,children:K})},Uo=({children:a,delay:e=200,placement:t="top",align:n="center",period:r,onUpgrade:s,block:i=!1,className:l})=>{var V,Z;const{isOutdatedBilling:d,locale:c}=Q(),{t:u}=he(),{data:p}=Ta({period:r,enabled:!d}),{data:g}=Me({enabled:!d}),{data:m}=Ue(),{data:S}=Xe(),[f,v]=I.useState(!1),C=I.useRef(null),_=()=>{C.current&&(clearTimeout(C.current),C.current=null)};I.useEffect(()=>_,[]);const T=m==null?void 0:m.find(Y=>Y.id===(g==null?void 0:g.plan.current.planId)),k=T?Se(T):"community",A=Ot(p),y=!d&&A.length>0,x=()=>{y&&(_(),C.current=setTimeout(()=>v(!0),Math.max(0,e)))},N=()=>{_(),v(!1)},O=T?fe(T.name):u("free"),D=k==="community",L=D?A.find(Y=>Y.key==="conversation_sessions"):void 0,z=D?m==null?void 0:m.find(Y=>Se(Y)==="plus"):void 0,j=z==null?void 0:z.features.conversation_sessions,X=(Z=(V=Rn(S))==null?void 0:V.increments)==null?void 0:Z.conversation_sessions,K=D&&!!s&&!!j&&!!X,U=Ke(So(r??new Date().toISOString()),c);return o.jsxs("span",{className:G("bpb-usage-pop bpb-scope",i&&"bpb-usage-pop--block",l),onMouseEnter:x,onMouseLeave:N,onFocus:x,onBlur:N,children:[a,f&&y&&o.jsxs("span",{className:G("bpb-usage-pop__card",`bpb-usage-pop__card--${t}`,`bpb-usage-pop__card--align-${n}`),role:"tooltip",children:[D?o.jsxs("span",{className:"bpb-usage-pop__header",children:[o.jsx("span",{className:"bpb-usage-pop__plan",children:u("usagePopoverFreeTitle")}),L&&o.jsx("span",{className:"bpb-usage-pop__subtitle",children:o.jsx(nt,{i18nKey:"usagePopoverFreeSubtitle",values:{quota:ve(L.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:O})}),o.jsx("span",{className:"bpb-usage-pop__period",children:u("usagePopoverTitle",{date:U})})]})}),A.map(Y=>{const F=Y.pct>0?Math.max(5,Y.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:Lo(Y.key,u)}),o.jsxs("span",{className:"bpb-usage-pop__val",children:[Xa(Y.used,Y.unit)," / ",Xa(Y.quota,Y.unit)]})]}),o.jsx("span",{className:"bpb-usage-pop__bar",children:o.jsx("span",{className:G("bpb-usage-pop__fill",`bpb-usage-pop__fill--${vn(Y.pct)}`),style:{width:`${F}%`}})})]},Y.key)}),K&&o.jsx("span",{className:"bpb-usage-pop__nudge",children:o.jsx("span",{className:"bpb-usage-pop__nudge-text",children:o.jsx(nt,{i18nKey:"usagePopoverNudgeText",values:{quota:ve(j??0),packSize:ve(X??0)},components:{bold:o.jsx("strong",{})}})})})]})]})},Gc=({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}=Q(),{data:p}=Ta({period:l,enabled:!u}),g=Ot(p);if(u||g.length===0)return null;const m=g[0],S=vn(m.pct),f=m.pct>0?Math.max(5,m.pct):0,v=(a-e)/2,C=2*Math.PI*v,_=C*(1-f/100),T=c["aria-label"]??`${Math.round(m.pct)}% of your ${m.label.toLowerCase()} used`,k=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:G("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:G("bpb-usage-ring__arc",`bpb-usage-ring__arc--${S}`),cx:a/2,cy:a/2,r:v,fill:"none",strokeWidth:e,strokeLinecap:"round",strokeDasharray:C,strokeDashoffset:_,transform:`rotate(-90 ${a/2} ${a/2})`})]}),t&&o.jsxs("span",{className:"bpb-usage-ring__label",children:[Math.round(m.pct),"%"]})]}),A=G("bpb-usage-ring",n&&"bpb-usage-ring--clickable"),y=n?o.jsx("button",{type:"button",className:A,onClick:n,"aria-label":T,children:k}):o.jsx("span",{className:A,tabIndex:0,role:"img","aria-label":T,children:k});return o.jsx(Uo,{delay:r,align:s,period:l,className:d,children:y})},Bo=({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:G("bpb-switch",a&&"bpb-switch--checked",n),onClick:()=>e(!a),children:o.jsx("span",{className:"bpb-switch__thumb"})}),zo="ai_spend",Kc=1,$c=5,yr=a=>(a??0)/je,vr=a=>Math.round(a*je),Rc=a=>Number.isInteger(a)&&a>=Kc,Hc=a=>Number.isInteger(a)&&a>=$c,Yc=(a,e)=>Number.isInteger(a)&&a>=0&&e>0&&a%e===0,Jc=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=Q(),{t:s}=he(),{data:i}=Fe();return i===!1?null:r?o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":s("autoRechargeTitle"),className:"bpb-scope",children:o.jsx(pa,{})}):o.jsx(De,{open:a,onOpenChange:e,size:"md","aria-label":s("autoRechargeTitle"),className:"bpb-scope",children:o.jsx(Qc,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},Qc=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{const{toast:n,analytics:r}=Q(),{t:s}=he(),{data:i,isLoading:l,isError:d,refetch:c}=Me(),{data:u,isLoading:p,isError:g,refetch:m}=Ue(),{data:S,isLoading:f,isError:v,refetch:C}=Bn(),_=Qr(),[T,k]=I.useState(null),[A,y]=I.useState(!1),[x,N]=I.useState(!1),[O,D]=I.useState(!1),L=l||p||f,z=d||g||v,j=()=>{c(),m(),C()},X=u==null?void 0:u.find(be=>be.id===(i==null?void 0:i.plan.current.planId)),K=i?X?Se(X)==="community":!0:!1,U=S==null?void 0:S[zo],V=I.useMemo(()=>{const be=(U==null?void 0:U.maxAmount)!=null,re=(U==null?void 0:U.targetType)==="credit_grant"&&(U==null?void 0:U.thresholdType)==="remaining_amount"?U==null?void 0:U.threshold:null;return{thresholdInput:re!=null?String(Math.round(yr(re))):"",chunkInput:(U==null?void 0:U.chunkSize)!=null?String(Math.round(yr(U.chunkSize))):"",limitInput:(U==null?void 0:U.maxAmount)!=null?String(Math.round(yr(U.maxAmount))):"",hasLimit:be}},[U]),Z=T??V,Y=be=>k({...Z,...be}),F=Number(Z.thresholdInput),ue=Number(Z.chunkInput),E=Number(Z.limitInput),ae=Z.thresholdInput.trim()!==""&&Rc(F),oe=Hc(ue),J=!Z.hasLimit||Z.limitInput.trim()!==""&&Yc(E,ue),me=A&&!ae,q=x&&!oe,ne=O&&!J,H=Z.thresholdInput!==V.thresholdInput||Z.chunkInput!==V.chunkInput||Z.limitInput!==V.limitInput||Z.hasLimit!==V.hasLimit,pe=()=>{_.mutate({settings:{[zo]:{targetType:"credit_grant",thresholdType:"remaining_amount",threshold:vr(F),chunkSize:vr(ue),maxAmount:Z.hasLimit?vr(E):null}}},{onSuccess:()=>{n({type:"success",message:s("autoRechargeUpdateSuccess")}),r.capture(we.AUTO_RECHARGE_UPDATED),k(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")}),L?o.jsxs("div",{className:"bpb-auto-recharge-dialog__loading","aria-busy":"true",children:[o.jsx(ge,{height:40}),o.jsx(ge,{height:72})]}):z?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(mt,{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(Ce,{variant:"outline",onClick:()=>a(!1),children:s("close")}),o.jsx(Ce,{variant:"primary",onClick:j,children:s("tryAgain")})]})]}):K?o.jsx(To,{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:G("bpb-auto-recharge-dialog__panel",me&&"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:Z.thresholdInput,onChange:be=>{Y({thresholdInput:be.target.value}),y(!0)}})]})]}),o.jsx("span",{className:G("bpb-auto-recharge-dialog__hint",me&&"bpb-auto-recharge-dialog__hint--error"),children:s(me?"autoRechargeThresholdError":"autoRechargeThresholdHint")})]}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[o.jsxs("div",{className:G("bpb-auto-recharge-dialog__panel",q&&"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:Z.chunkInput,onChange:be=>{Y({chunkInput:be.target.value}),N(!0)}})]})]}),o.jsx("span",{className:G("bpb-auto-recharge-dialog__hint",q&&"bpb-auto-recharge-dialog__hint--error"),children:s(q?"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(Bo,{"aria-label":s("autoRechargeSetLimitLabel"),checked:Z.hasLimit,onChange:be=>Y({hasLimit:be}),disabled:_.isPending})]}),!Z.hasLimit&&o.jsx("span",{className:"bpb-auto-recharge-dialog__hint",children:s("autoRechargeNoCapHint")})]}),o.jsx("div",{className:G("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:G("bpb-auto-recharge-dialog__panel",ne&&"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:Z.limitInput,onChange:be=>{Y({limitInput:be.target.value}),D(!0)}})]})]}),o.jsx("span",{className:G("bpb-auto-recharge-dialog__hint",ne&&"bpb-auto-recharge-dialog__hint--error"),children:ne?s("autoRechargeLimitError",{amount:se(ue,"usd",0)}):s("autoRechargeLimitHint",{amount:se(ue,"usd",0)})})]})})}),!(U!=null&&U.enabled)&&(U==null?void 0:U.disabledReason)&&o.jsx("p",{className:"bpb-auto-recharge-dialog__disabled-note",role:"alert",children:s("autoRechargeDisabledReason",{reason:U.disabledReason})}),o.jsxs("div",{className:"bpb-auto-recharge-dialog__actions",children:[o.jsx(Ce,{variant:"outline",onClick:()=>a(!1),disabled:_.isPending,children:s("cancel")}),o.jsx(Ce,{variant:"primary",disabled:!H||!ae||!oe||!J,loading:_.isPending,onClick:pe,children:s("save")})]})]})]})};w.AddonsSummaryCard=jc,w.AgentsIcon=zs,w.ArrowRightIcon=Xn,w.AutoRechargeDialog=Jc,w.AutoRechargeSummaryCard=qc,w.BILLING_EVENTS=we,w.Badge=pt,w.BankIcon=Wl,w.BillingActionCard=zc,w.BillingProvider=Gi,w.BoltIcon=an,w.Button=Ce,w.CalendarIcon=Gs,w.CancellationSurveyDialog=bo,w.CardBrandBadge=ar,w.CardIcon=Yn,w.ChartIcon=js,w.CheckIcon=Fs,w.CheckoutDialog=ko,w.ChevronDownIcon=Ea,w.ChevronLeftIcon=Jn,w.ChevronRightIcon=aa,w.CloseIcon=gt,w.DEFAULT_FEATURE_LABELS=As,w.DEFAULT_PLAN_FEATURES=ut,w.Dialog=De,w.DownloadIcon=er,w.ENTERPRISE_CONTACT_URL=$n,w.ExternalLinkIcon=ht,w.GlobeIcon=qs,w.InboxIcon=Os,w.InfinityIcon=Bs,w.InfoTooltip=Mt,w.Input=yn,w.InvoicesDialog=kc,w.LayersIcon=en,w.LockIcon=Gl,w.ManageAddonsDialog=Sc,w.MessageIcon=Ms,w.MinusIcon=Ws,w.NANO_DOLLARS_PER_DOLLAR=je,w.OutdatedBillingGate=pa,w.OutgrowFreeDialog=Fc,w.PLAN_FEATURE_KEYS=ct,w.PLAN_ORDER=xa,w.PaintIcon=Zs,w.PaymentMethodDialog=Tc,w.PendingUpgradeBanner=Nc,w.PendingUpgradeDialog=Io,w.PlanBanner=Zc,w.PlanSummaryCard=Vc,w.PlanUsageWidget=Wc,w.PlusIcon=Qn,w.PuzzleIcon=Us,w.ReceiptIcon=$l,w.SegmentedControl=fo,w.Select=br,w.ShieldIcon=Hn,w.Skeleton=ge,w.SparkleIcon=Xt,w.Stepper=wo,w.Switch=Bo,w.USAGE_METRICS=Eo,w.UpgradePlanDialog=yo,w.UsageBanner=Bc,w.UsageDashboard=Uc,w.UsagePopover=Uo,w.UsageRing=Gc,w.UsersIcon=Vs,w.addDays=Is,w.addonDisplayName=Da,w.addonLimitsPreview=Ds,w.addonPrice=dt,w.billingKeys=Te,w.cn=G,w.conversationPackPrice=Qt,w.conversationsAddon=Rn,w.currencySymbol=lt,w.featureLabel=jl,w.formatBytes=Pa,w.formatCurrency=se,w.formatDate=Ke,w.formatDateTime=Ts,w.formatQuantity=ve,w.formatUsage=Xa,w.getCardElementStyle=gr,w.getStripeAppearance=pr,w.getStripePromise=Tr,w.iconForFeature=tn,w.isLegacyBillingVersion=Yr,w.planDisplayName=fe,w.planEntitlements=Es,w.planKind=Se,w.toStripeLocale=mr,w.usageItems=Ot,w.usageTier=vn,w.useAddons=Xe,w.useAutoRechargeSettings=Bn,w.useBilling=Q,w.useBillingReadonly=Un,w.useCancelPendingSubscriptionUpgrade=rs,w.useCreatePaymentMethodIntent=zn,w.useCustomer=On,w.useHasPendingUpgrade=Rt,w.useInvoices=Jr,w.useIsAuthorized=Fe,w.usePayInvoice=ns,w.usePaymentMethod=Mn,w.usePlans=Ue,w.useSaveCancellationFeedback=ts,w.useSetAddons=as,w.useSetAutoRechargeSettings=Qr,w.useSetCustomer=jn,w.useSetPaymentMethod=Vn,w.useSetSubscription=qn,w.useSubscription=Me,w.useSubscriptionPreview=Fn,w.useSupportsUsageByBot=es,w.useUsage=Ta,w.useUsageByBot=Xr,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(k,s){typeof exports=="object"&&typeof module<"u"?s(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"],s):(k=typeof globalThis<"u"?globalThis:k||self,s(k.BillingUI={},k.ReactJsxRuntime,k.ReactQuery,k.React,k.StripeJs,k.ReactDOM,k.ReactStripeJs))})(this,function(k,s,ge,T,Zo,Wo,ze){"use strict";var tu=Object.defineProperty;var nu=(k,s,ge)=>s in k?tu(k,s,{enumerable:!0,configurable:!0,writable:!0,value:ge}):k[s]=ge;var qo=(k,s,ge)=>nu(k,typeof s!="symbol"?s+"":s,ge);const wr=new Map;function Tr(a){let e=wr.get(a);return e||(e=Zo.loadStripe(a,{developerTools:{assistant:{enabled:!1}}}),wr.set(a,e)),e}const ke={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]},Go=["billing","manager","administrator","owner"];function Le(a){const{client:e,refetchInterval:t,queryClient:n,scope:r}=X();return ge.useQuery({queryKey:ke.isAuthorized(r),queryFn:async()=>{const o=await e.getWorkspaceMember({});return Go.includes(o.role)},enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:t},n)}function ba(a=!0){const{data:e}=Le();return a&&e===!0}function Ue(){const{client:a,queryClient:e,scope:t}=X();return ge.useQuery({queryKey:ke.plans(t),queryFn:()=>a.listPlans({})},e)}function Qe(){const{client:a,queryClient:e,scope:t}=X();return ge.useQuery({queryKey:ke.addons(t),queryFn:()=>a.listAddons({})},e)}function Fe(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=X();return ge.useQuery({queryKey:ke.subscription(n),queryFn:()=>e.getSubscription({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function zt(a){const{data:e}=Fe(a);return!!(e!=null&&e.pendingUpgrade)}function kn(a,e){const{client:t,queryClient:n,scope:r}=X(),o=ba(e==null?void 0:e.enabled);return ge.useQuery({queryKey:ke.preview(r,a),queryFn:()=>t.previewSubscriptionUpdate(a),enabled:o},n)}function wn(a){const{client:e,queryClient:t,scope:n}=X(),r=ba(a==null?void 0:a.enabled);return ge.useQuery({queryKey:ke.paymentMethod(n),queryFn:()=>e.getPaymentMethod({}),enabled:r},t)}function Tn(a){const{client:e,queryClient:t,scope:n}=X(),r=ba(a==null?void 0:a.enabled);return ge.useQuery({queryKey:ke.customer(n),queryFn:()=>e.getCustomer({}),enabled:r},t)}function Ir(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=X(),o=ba(a==null?void 0:a.enabled);return ge.useQuery({queryKey:ke.invoices(n),queryFn:()=>e.listInvoices({}),enabled:o,refetchInterval:r},t)}function Ko(a){const{client:e,queryClient:t,scope:n}=X(),r=ba(!!a);return ge.useQuery({queryKey:["bpb",n,"pending-invoice",a],queryFn:async()=>{let o;for(let i=0;i<20;i++){const{invoices:l,meta:d}=await e.listInvoices({nextToken:o}),c=l.find(u=>u.id===a);if(c)return c;if(!d.nextToken)return null;o=d.nextToken}return null},enabled:r},t)}function In(a){const{client:e,queryClient:t,scope:n}=X(),r=ba(a==null?void 0:a.enabled);return ge.useQuery({queryKey:ke.readonly(n),queryFn:()=>e.getBillingReadonly({}),enabled:r},t)}function An(a){const{client:e,queryClient:t,scope:n}=X(),r=ba(a==null?void 0:a.enabled);return ge.useQuery({queryKey:ke.autoRecharge(n),queryFn:()=>e.getAutoRechargeSettings({}).then(o=>o.settings),enabled:r},t)}function Ar(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:r=>a.setAutoRechargeSettings(r).then(o=>o.settings),onSuccess:async r=>{e.setQueryData(ke.autoRecharge(t),r),n({type:"auto-recharge"})}},e)}function Ta(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=X(),o=a!=null&&a.period?new Date(a.period):new Date,i=`${o.getUTCFullYear()}-${String(o.getUTCMonth()+1).padStart(2,"0")}`;return ge.useQuery({queryKey:ke.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 Pr(a,e){const{client:t,queryClient:n,scope:r,refetchInterval:o}=X(),i=ba(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 ge.useQuery({queryKey:ke.usageByBot(r,a,p),queryFn:async()=>{const[g,m]=await Promise.all([l({id:r,type:a,period:`${p}-01T00:00:00.000Z`}),d({})]),v=new Map(m.bots.map(y=>[y.id,y.name]));return g.data.map(y=>({botId:y.botId,name:v.get(y.botId)??y.botId,value:y.value})).sort((y,C)=>C.value-y.value)},enabled:c&&i,refetchInterval:o},n)}function Dr(){const{client:a}=X();return typeof a.breakDownWorkspaceUsageByBot=="function"&&typeof a.listBots=="function"}function Pn(){const{client:a,queryClient:e}=X();return ge.useMutation({mutationFn:()=>a.createPaymentMethodIntent({})},e)}function Dn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:r=>a.setPaymentMethod(r),onSuccess:async()=>{await e.invalidateQueries({queryKey:ke.paymentMethod(t)}),n({type:"payment-method"})}},e)}function xn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:r=>a.setCustomer(r),onSuccess:async(r,o)=>{await e.invalidateQueries({queryKey:ke.customer(t)}),o.address&&n({type:"billing-address"})}},e)}function xr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:r=>a.setAddons(r),onSuccess:async r=>{e.setQueryData(ke.subscription(t),r),await Promise.all([e.invalidateQueries({queryKey:ke.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:r.pendingUpgrade?"pending-upgrade":"addons"})}},e)}function En(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:async r=>{const o=await a.setPlan({planId:r.planId,interval:r.interval,couponCode:r.couponCode});return r.addons&&Object.keys(r.addons).length>0?await a.setAddons({addons:r.addons,couponCode:r.couponCode}):o},onSuccess:async r=>{e.setQueryData(ke.subscription(t),r),await Promise.all([e.invalidateQueries({queryKey:ke.plans(t)}),e.invalidateQueries({queryKey:ke.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:r.pendingUpgrade?"pending-upgrade":"subscription"})}},e)}function Er(){const{client:a,queryClient:e,scope:t}=X();return ge.useMutation({mutationFn:async n=>{t!=="default"&&await a.saveWorkspaceCancellationReasons({id:t,reasons:[n.reason],comment:n.comment})}},e)}function Lr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:r=>a.payInvoice(r),onSuccess:async()=>{await new Promise(r=>setTimeout(r,1e3)),await Promise.all([e.invalidateQueries({queryKey:ke.subscription(t)}),e.invalidateQueries({queryKey:ke.invoices(t)})]),n({type:"pending-upgrade"})}},e)}function Fr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:async()=>{await a.cancelPendingSubscriptionUpgrade({})},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:ke.subscription(t)}),e.invalidateQueries({queryKey:ke.invoices(t)})]),n({type:"pending-upgrade"})}},e)}const Ia=["community","plus","team","enterprise","managed"],$o=["community","plus","team","enterprise","managed"];function ye(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 $o.find(r=>r===t)??"community"}const Ln="https://botpress.com/contact-us/managed-plan",Ro={capture:()=>{}},Mr=(a,e)=>({...a!==void 0&&{workspace_billing_version:a},...e&&{workspace_plan:e,workspace_is_paid:e!=="community"}});function Ho({analytics:a,client:e,queryClient:t,scope:n,billingVersion:r,isOutdatedBilling:o}){const i=!!a&&r!==void 0&&!o,{data:l}=ge.useQuery({queryKey:ke.subscription(n),queryFn:()=>e.getSubscription({}),enabled:i},t),{data:d}=ge.useQuery({queryKey:ke.plans(n),queryFn:()=>e.listPlans({}),enabled:i},t),c=d==null?void 0:d.find(g=>g.id===(l==null?void 0:l.plan.current.planId)),u=!o&&c?ye(c):void 0,p=T.useRef(Mr(r,u));return T.useEffect(()=>{p.current=Mr(r,u)},[r,u]),T.useMemo(()=>a?{capture:(g,m)=>a.capture(g,{...p.current,...m})}:Ro,[a])}var me=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Yo(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Jo={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 Qo=Yo(Jo);var Xo=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function Or(a){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=a.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(e.name=t[1],(Qo[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(Xo),o=null;(o=r.exec(a))!==null;)if(o[0].trim())if(o[1]){var i=o[1].trim(),l=[i,""];i.indexOf("=")>-1&&(l=i.split("=")),e.attrs[l[0]]=l[1],r.lastIndex--}else o[2]&&(e.attrs[o[2]]=o[3].trim().substring(1,o[3].length-1));return e}var ei=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,ai=/^\s*$/,ti=Object.create(null);function Ur(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(Ur,"")+"</"+e.name+">";case"comment":return a+"<!--"+e.comment+"-->"}}var ni={parse:function(a,e){e||(e={}),e.components||(e.components=ti);var t,n=[],r=[],o=-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(ei,function(d,c){if(i){if(d!=="</"+t.name+">")return;i=!1}var u,p=d.charAt(1)!=="/",g=d.startsWith("<!--"),m=c+d.length,v=a.charAt(m);if(g){var y=Or(d);return o<0?(n.push(y),n):((u=r[o]).children.push(y),n)}if(p&&(o++,(t=Or(d)).type==="tag"&&e.components[t.name]&&(t.type="component",i=!0),t.voidElement||i||!v||v==="<"||t.children.push({type:"text",content:a.slice(m,a.indexOf("<",m))}),o===0&&n.push(t),(u=r[o-1])&&u.children.push(t),r[o]=t),(!p||t.voidElement)&&(o>-1&&(t.voidElement||t.name===d.slice(2,-1))&&(o--,t=o===-1?n:r[o]),!i&&v!=="<"&&v)){u=o===-1?n:r[o].children;var C=a.indexOf("<",m),N=a.slice(m,C===-1?void 0:C);ai.test(N)&&(N=" "),(C>-1&&o+u.length>=0||N!==" ")&&u.push({type:"text",content:N})}}),n},stringify:function(a){return a.reduce(function(e,t){return e+Ur("",t)},"")}};function Vt(){if(console&&console.warn){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Ve(e[0])&&(e[0]=`react-i18next:: ${e[0]}`),console.warn(...e)}}const Br={};function jt(){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Ve(e[0])&&Br[e[0]]||(Ve(e[0])&&(Br[e[0]]=new Date),Vt(...e))}const zr=(a,e)=>()=>{if(a.isInitialized)e();else{const t=()=>{setTimeout(()=>{a.off("initialized",t)},0),e()};a.on("initialized",t)}},Vr=(a,e,t)=>{a.loadNamespaces(e,zr(a,t))},jr=(a,e,t,n)=>{Ve(t)&&(t=[t]),t.forEach(r=>{a.options.ns.indexOf(r)<0&&a.options.ns.push(r)}),a.loadLanguages(e,zr(a,n))},ri=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,o=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(o,a)))},si=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(jt("i18n.languages were undefined or empty",e.languages),!0):e.options.ignoreJSONStructure!==void 0?e.hasLoadedNamespace(a,{lng:t.lng,precheck:(r,o)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&r.services.backendConnector.backend&&r.isLanguageChangingTo&&!o(r.isLanguageChangingTo,a))return!1}}):ri(a,e,t)},Ve=a=>typeof a=="string",Va=a=>typeof a=="object"&&a!==null,oi=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,ii={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},li=a=>ii[a];let Fn={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:a=>a.replace(oi,li)};const di=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Fn={...Fn,...a}},qr=()=>Fn;let Zr;const ci=a=>{Zr=a},Mn=()=>Zr,On=(a,e)=>{if(!a)return!1;const t=a.props?a.props.children:a.children;return e?t.length>0:!!t},Un=a=>{if(!a)return[];const e=a.props?a.props.children:a.children;return a.props&&a.props.i18nIsDynamicList?ja(e):e},ui=a=>Array.isArray(a)&&a.every(T.isValidElement),ja=a=>Array.isArray(a)?a:[a],pi=(a,e)=>{const t={...e};return t.props=Object.assign(a.props,e.props),t},Wr=(a,e)=>{if(!a)return"";let t="";const n=ja(a),r=e.transSupportBasicHtmlNodes&&e.transKeepBasicHtmlNodesFor?e.transKeepBasicHtmlNodesFor:[];return n.forEach((o,i)=>{if(Ve(o))t+=`${o}`;else if(T.isValidElement(o)){const{props:l,type:d}=o,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&&Ve(p))t+=`<${d}>${p}</${d}>`;else{const g=Wr(p,e);t+=`<${i}>${g}</${i}>`}}else if(o===null)Vt("Trans: the passed in value is invalid - seems you passed in a null child.");else if(Va(o)){const{format:l,...d}=o,c=Object.keys(d);if(c.length===1){const u=l?`${c[0]}, ${l}`:c[0];t+=`{{${u}}}`}else Vt("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",o)}else Vt("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}}.",o)}),t},gi=(a,e,t,n,r,o)=>{if(e==="")return[];const i=n.transKeepBasicHtmlNodesFor||[],l=e&&new RegExp(i.map(C=>`<${C}`).join("|")).test(e);if(!a&&!l&&!o)return[e];const d={},c=C=>{ja(C).forEach(_=>{Ve(_)||(On(_)?c(Un(_)):Va(_)&&!T.isValidElement(_)&&Object.assign(d,_))})};c(a);const u=ni.parse(`<0>${e}</0>`),p={...d,...r},g=(C,N,_)=>{const I=Un(C),b=v(I,N.children,_);return ui(I)&&b.length===0||C.props&&C.props.i18nIsDynamicList?I:b},m=(C,N,_,I,b)=>{C.dummy?(C.children=N,_.push(T.cloneElement(C,{key:I},b?void 0:N))):_.push(...T.Children.map([C],A=>{const S={...A.props};return delete S.i18nIsDynamicList,T.createElement(A.type,{...S,key:I,ref:A.ref},b?null:N)}))},v=(C,N,_)=>{const I=ja(C);return ja(N).reduce((A,S,D)=>{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 z=I[parseInt(S.name,10)];_.length===1&&!z&&(z=_[0][S.name]),z||(z={});const x=Object.keys(S.attrs).length!==0?pi({props:S.attrs},z):z,L=T.isValidElement(x),Z=L&&On(S,!0)&&!S.voidElement,j=l&&Va(x)&&x.dummy&&!L,ee=Va(a)&&Object.hasOwnProperty.call(a,S.name);if(Ve(x)){const R=t.services.interpolator.interpolate(x,p,t.language);A.push(R)}else if(On(x)||Z){const R=g(x,S,_);m(x,R,A,D)}else if(j){const R=v(I,S.children,_);m(x,R,A,D)}else if(Number.isNaN(parseFloat(S.name)))if(ee){const R=g(x,S,_);m(x,R,A,D,S.voidElement)}else if(n.transSupportBasicHtmlNodes&&i.indexOf(S.name)>-1)if(S.voidElement)A.push(T.createElement(S.name,{key:`${S.name}-${D}`}));else{const R=v(I,S.children,_);A.push(T.createElement(S.name,{key:`${S.name}-${D}`},R))}else if(S.voidElement)A.push(`<${S.name} />`);else{const R=v(I,S.children,_);A.push(`<${S.name}>${R}</${S.name}>`)}else if(Va(x)&&!L){const R=S.children[0]?w:null;R&&A.push(R)}else m(x,w,A,D,S.children.length!==1||!w)}else if(S.type==="text"){const z=n.transWrapTextNodes,x=o?n.unescape(t.services.interpolator.interpolate(S.content,p,t.language)):t.services.interpolator.interpolate(S.content,p,t.language);z?A.push(T.createElement(z,{key:`${S.name}-${D}`},x)):A.push(x)}return A},[])},y=v([{dummy:!0,children:a||[]}],u,ja(a||[]));return Un(y[0])};function mi(a){let{children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:i={},values:l,defaults:d,components:c,ns:u,i18n:p,t:g,shouldUnescape:m,...v}=a;const y=p||Mn();if(!y)return jt("You will need to pass in an i18next instance by using i18nextReactModule"),e;const C=g||y.t.bind(y)||(Z=>Z),N={...qr(),...y.options&&y.options.react};let _=u||C.ns||y.options&&y.options.defaultNS;_=Ve(_)?[_]:_||["translation"];const I=Wr(e,N),b=d||I||N.transEmptyNodeValue||r,{hashTransKey:A}=N,S=r||(A?A(I||b):I||b);y.options&&y.options.interpolation&&y.options.interpolation.defaultVariables&&(l=l&&Object.keys(l).length>0?{...l,...y.options.interpolation.defaultVariables}:{...y.options.interpolation.defaultVariables});const D=l||t!==void 0||!e?i.interpolation:{interpolation:{...i.interpolation,prefix:"#$?",suffix:"?$#"}},w={...i,context:o||i.context,count:t,...l,...D,defaultValue:b,ns:_},z=S?C(S,w):b;c&&Object.keys(c).forEach(Z=>{const j=c[Z];if(typeof j.type=="function"||!j.props||!j.props.children||z.indexOf(`${Z}/>`)<0&&z.indexOf(`${Z} />`)<0)return;function ee(){return T.createElement(T.Fragment,null,j)}c[Z]=T.createElement(ee)});const x=gi(c||e,z,y,N,w,m),L=n!==void 0?n:N.defaultTransParent;return L?T.createElement(L,v,x):x}const hi={type:"3rdParty",init(a){di(a.options.react),ci(a)}},Bn=T.createContext();class bi{constructor(){qo(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}}function nt(a){let{children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:i={},values:l,defaults:d,components:c,ns:u,i18n:p,t:g,shouldUnescape:m,...v}=a;const{i18n:y,defaultNS:C}=T.useContext(Bn)||{},N=p||y||Mn(),_=g||N&&N.t.bind(N);return mi({children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:i,values:l,defaults:d,components:c,ns:u||_&&_.ns||C||N&&N.options&&N.options.defaultNS,i18n:N,t:g,shouldUnescape:m,...v})}const fi=(a,e)=>{const t=T.useRef();return T.useEffect(()=>{t.current=a},[a,e]),t.current},Gr=(a,e,t,n)=>a.getFixedT(e,t,n),yi=(a,e,t,n)=>T.useCallback(Gr(a,e,t,n),[a,e,t,n]),pe=function(a){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:n,defaultNS:r}=T.useContext(Bn)||{},o=t||n||Mn();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new bi),!o){jt("You will need to pass in an i18next instance by using initReactI18next");const b=(S,D)=>Ve(D)?D:Va(D)&&Ve(D.defaultValue)?D.defaultValue:Array.isArray(S)?S[S.length-1]:S,A=[b,{},!1];return A.t=b,A.i18n={},A.ready=!1,A}o.options.react&&o.options.react.wait!==void 0&&jt("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const i={...qr(),...o.options.react,...e},{useSuspense:l,keyPrefix:d}=i;let c=r||o.options&&o.options.defaultNS;c=Ve(c)?[c]:c||["translation"],o.reportNamespaces.addUsedNamespaces&&o.reportNamespaces.addUsedNamespaces(c);const u=(o.isInitialized||o.initializedStoreOnce)&&c.every(b=>si(b,o,i)),p=yi(o,e.lng||null,i.nsMode==="fallback"?c:c[0],d),g=()=>p,m=()=>Gr(o,e.lng||null,i.nsMode==="fallback"?c:c[0],d),[v,y]=T.useState(g);let C=c.join();e.lng&&(C=`${e.lng}${C}`);const N=fi(C),_=T.useRef(!0);T.useEffect(()=>{const{bindI18n:b,bindI18nStore:A}=i;_.current=!0,!u&&!l&&(e.lng?jr(o,e.lng,c,()=>{_.current&&y(m)}):Vr(o,c,()=>{_.current&&y(m)})),u&&N&&N!==C&&_.current&&y(m);const S=()=>{_.current&&y(m)};return b&&o&&o.on(b,S),A&&o&&o.store.on(A,S),()=>{_.current=!1,b&&o&&b.split(" ").forEach(D=>o.off(D,S)),A&&o&&A.split(" ").forEach(D=>o.store.off(D,S))}},[o,C]),T.useEffect(()=>{_.current&&u&&y(g)},[o,d,u]);const I=[v,o,u];if(I.t=v,I.i18n=o,I.ready=u,u||!u&&!l)return I;throw new Promise(b=>{e.lng?jr(o,e.lng,c,()=>b()):Vr(o,c,()=>b())})};function vi(a){let{i18n:e,defaultNS:t,children:n}=a;const r=T.useMemo(()=>({i18n:e,defaultNS:t}),[e,t]);return T.createElement(Bn.Provider,{value:r},n)}const te=a=>typeof a=="string",rt=()=>{let a,e;const t=new Promise((n,r)=>{a=n,e=r});return t.resolve=a,t.reject=e,t},Kr=a=>a==null?"":""+a,_i=(a,e,t)=>{a.forEach(n=>{e[n]&&(t[n]=e[n])})},Si=/###/g,$r=a=>a&&a.indexOf("###")>-1?a.replace(Si,"."):a,Rr=a=>!a||te(a),st=(a,e,t)=>{const n=te(e)?e.split("."):e;let r=0;for(;r<n.length-1;){if(Rr(a))return{};const o=$r(n[r]);!a[o]&&t&&(a[o]=new t),Object.prototype.hasOwnProperty.call(a,o)?a=a[o]:a={},++r}return Rr(a)?{}:{obj:a,k:$r(n[r])}},Hr=(a,e,t)=>{const{obj:n,k:r}=st(a,e,Object);if(n!==void 0||e.length===1){n[r]=t;return}let o=e[e.length-1],i=e.slice(0,e.length-1),l=st(a,i,Object);for(;l.obj===void 0&&i.length;)o=`${i[i.length-1]}.${o}`,i=i.slice(0,i.length-1),l=st(a,i,Object),l&&l.obj&&typeof l.obj[`${l.k}.${o}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${o}`]=t},Ci=(a,e,t,n)=>{const{obj:r,k:o}=st(a,e,Object);r[o]=r[o]||[],r[o].push(t)},qt=(a,e)=>{const{obj:t,k:n}=st(a,e);if(t)return t[n]},Ni=(a,e,t)=>{const n=qt(a,t);return n!==void 0?n:qt(e,t)},Yr=(a,e,t)=>{for(const n in e)n!=="__proto__"&&n!=="constructor"&&(n in a?te(a[n])||a[n]instanceof String||te(e[n])||e[n]instanceof String?t&&(a[n]=e[n]):Yr(a[n],e[n],t):a[n]=e[n]);return a},qa=a=>a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var ki={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const wi=a=>te(a)?a.replace(/[&<>"'\/]/g,e=>ki[e]):a;class Ti{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=[" ",",","?","!",";"],Ai=new Ti(20),Pi=(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=Ai.getRegExp(`(${n.map(i=>i==="?"?"\\?":i).join("|")})`);let o=!r.test(a);if(!o){const i=a.indexOf(t);i>0&&!r.test(a.substring(0,i))&&(o=!0)}return o},zn=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 o=0;o<n.length;){if(!r||typeof r!="object")return;let i,l="";for(let d=o;d<n.length;++d)if(d!==o&&(l+=t),l+=n[d],i=r[l],i!==void 0){if(["string","number","boolean"].indexOf(typeof i)>-1&&d<n.length-1)continue;o+=d-o+1;break}r=i}return r},Zt=a=>a&&a.replace("_","-"),Di={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 Wt{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||Di,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:(te(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new Wt(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new Wt(this.logger,e)}}var Xe=new Wt;class Gt{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 Jr extends Gt{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 o=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):te(n)&&o?l.push(...n.split(o)):l.push(n)));const d=qt(this.data,l);return!d&&!t&&!n&&e.indexOf(".")>-1&&(e=l[0],t=l[1],n=l.slice(2).join(".")),d||!i||!te(n)?d:zn(this.data&&this.data[e]&&this.data[e][t],n,o)}addResource(e,t,n,r){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=o.keySeparator!==void 0?o.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),Hr(this.data,l,r),o.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 o in n)(te(n[o])||Array.isArray(n[o]))&&this.addResource(e,t,o,n[o],{silent:!0});r.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,r,o){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=qt(this.data,l)||{};i.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?Yr(d,n,o):d={...d,...n},Hr(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 Qr={processors:{},addPostProcessor(a){this.processors[a.name]=a},handle(a,e,t,n,r){return a.forEach(o=>{this.processors[o]&&(e=this.processors[o].process(e,t,n,r))}),e}};const Xr={};class Kt extends Gt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),_i(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Xe.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 o=t.ns||this.options.defaultNS||[];const i=n&&e.indexOf(n)>-1,l=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!Pi(e,n,r);if(i&&!l){const d=e.match(this.interpolator.nestingRegexp);if(d&&d.length>0)return{key:e,namespaces:te(o)?[o]:o};const c=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(c[0])>-1)&&(o=c.shift()),e=c.join(r)}return{key:e,namespaces:te(o)?[o]:o}}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,o=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 b=t.nsSeparator||this.options.nsSeparator;return r?{res:`${d}${b}${i}`,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:d,usedParams:this.getUsedParamsDetails(t)}:`${d}${b}${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 g=p&&p.res;const m=p&&p.usedKey||i,v=p&&p.exactUsedKey||i,y=Object.prototype.toString.apply(g),C=["[object Number]","[object Function]","[object RegExp]"],N=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,_=!this.i18nFormat||this.i18nFormat.handleAsObject,I=!te(g)&&typeof g!="boolean"&&typeof g!="number";if(_&&g&&I&&C.indexOf(y)<0&&!(te(N)&&Array.isArray(g))){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const b=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,g,{...t,ns:l}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(p.res=b,p.usedParams=this.getUsedParamsDetails(t),p):b}if(o){const b=Array.isArray(g),A=b?[]:{},S=b?v:m;for(const D in g)if(Object.prototype.hasOwnProperty.call(g,D)){const w=`${S}${o}${D}`;A[D]=this.translate(w,{...t,joinArrays:!1,ns:l}),A[D]===w&&(A[D]=g[D])}g=A}}else if(_&&te(N)&&Array.isArray(g))g=g.join(N),g&&(g=this.extendTranslation(g,e,t,n));else{let b=!1,A=!1;const S=t.count!==void 0&&!te(t.count),D=Kt.hasDefaultValue(t),w=S?this.pluralResolver.getSuffix(c,t.count,t):"",z=t.ordinal&&S?this.pluralResolver.getSuffix(c,t.count,{ordinal:!1}):"",x=S&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),L=x&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${w}`]||t[`defaultValue${z}`]||t.defaultValue;!this.isValidLookup(g)&&D&&(b=!0,g=L),this.isValidLookup(g)||(A=!0,g=i);const j=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&A?void 0:g,ee=D&&L!==g&&this.options.updateMissing;if(A||b||ee){if(this.logger.log(ee?"updateKey":"missingKey",c,d,i,ee?L:g),o){const W=this.resolve(i,{...t,keySeparator:!1});W&&W.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 R=[];const O=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&O&&O[0])for(let W=0;W<O.length;W++)R.push(O[W]);else this.options.saveMissingTo==="all"?R=this.languageUtils.toResolveHierarchy(t.lng||this.language):R.push(t.lng||this.language);const q=(W,J,E)=>{const ce=D&&E!==g?E:j;this.options.missingKeyHandler?this.options.missingKeyHandler(W,d,J,ce,ee,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(W,d,J,ce,ee,t),this.emit("missingKey",W,d,J,g)};this.options.saveMissing&&(this.options.saveMissingPlurals&&S?R.forEach(W=>{const J=this.pluralResolver.getSuffixes(W,t);x&&t[`defaultValue${this.options.pluralSeparator}zero`]&&J.indexOf(`${this.options.pluralSeparator}zero`)<0&&J.push(`${this.options.pluralSeparator}zero`),J.forEach(E=>{q([W],i+E,t[`defaultValue${E}`]||L)})}):q(R,i,L))}g=this.extendTranslation(g,e,t,p,n),A&&g===i&&this.options.appendNamespaceToMissingKey&&(g=`${d}:${i}`),(A||b)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?g=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${d}:${i}`:i,b?g:void 0):g=this.options.parseMissingKeyHandler(g))}return r?(p.res=g,p.usedParams=this.getUsedParamsDetails(t),p):g}extendTranslation(e,t,n,r,o){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=te(e)&&(n&&n.interpolation&&n.interpolation.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let u;if(c){const g=e.match(this.interpolator.nestingRegexp);u=g&&g.length}let p=n.replace&&!te(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 g=e.match(this.interpolator.nestingRegexp),m=g&&g.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 g=arguments.length,m=new Array(g),v=0;v<g;v++)m[v]=arguments[v];return o&&o[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=te(l)?[l]:l;return e!=null&&d&&d.length&&n.applyPostProcessor!==!1&&(e=Qr.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,o,i,l;return te(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 g=t.count!==void 0&&!te(t.count),m=g&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),v=t.context!==void 0&&(te(t.context)||typeof t.context=="number")&&t.context!=="",y=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);p.forEach(C=>{this.isValidLookup(n)||(l=C,!Xr[`${y[0]}-${C}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(l)&&(Xr[`${y[0]}-${C}`]=!0,this.logger.warn(`key "${r}" for languages "${y.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!!!")),y.forEach(N=>{if(this.isValidLookup(n))return;i=N;const _=[u];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(_,u,N,C,t);else{let b;g&&(b=this.pluralResolver.getSuffix(N,t.count,t));const A=`${this.options.pluralSeparator}zero`,S=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(g&&(_.push(u+b),t.ordinal&&b.indexOf(S)===0&&_.push(u+b.replace(S,this.options.pluralSeparator)),m&&_.push(u+A)),v){const D=`${u}${this.options.contextSeparator}${t.context}`;_.push(D),g&&(_.push(D+b),t.ordinal&&b.indexOf(S)===0&&_.push(D+b.replace(S,this.options.pluralSeparator)),m&&_.push(D+A))}}let I;for(;I=_.pop();)this.isValidLookup(n)||(o=I,n=this.getResource(N,C,I,t))}))})}),{res:n,usedKey:r,exactUsedKey:o,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&&!te(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 o of t)delete r[o]}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 Vn=a=>a.charAt(0).toUpperCase()+a.slice(1);class es{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Xe.create("languageUtils")}getScriptPartFromCode(e){if(e=Zt(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=Zt(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(te(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]=Vn(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]=Vn(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=Vn(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(o=>{if(o===r)return o;if(!(o.indexOf("-")<0&&r.indexOf("-")<0)&&(o.indexOf("-")>0&&r.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===r||o.indexOf(r)===0&&r.length>1))return o})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),te(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=[],o=i=>{i&&(this.isSupportedCode(i)?r.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return te(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(e))):te(e)&&o(this.formatLanguageCode(e)),n.forEach(i=>{r.indexOf(i)<0&&o(this.formatLanguageCode(i))}),r}}let xi=[{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}],Ei={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 Li=["v1","v2","v3"],Fi=["v4"],as={zero:0,one:1,two:2,few:3,many:4,other:5},Mi=()=>{const a={};return xi.forEach(e=>{e.lngs.forEach(t=>{a[t]={numbers:e.nr,plurals:Ei[e.fc]}})}),a};class Oi{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=Xe.create("pluralResolver"),(!this.options.compatibilityJSON||Fi.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=Mi(),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=Zt(e==="dev"?"en":e),r=t.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:n,type:r});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];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[o]=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,o)=>as[r]-as[o]).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 o=()=>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()}`:o():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?o():this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString()}shouldUseIntlApi(){return!Li.includes(this.options.compatibilityJSON)}}const ts=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,o=Ni(a,e,t);return!o&&r&&te(t)&&(o=zn(a,t,n),o===void 0&&(o=zn(e,t,n))),o},jn=a=>a.replace(/\$/g,"$$$$");class Ui{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Xe.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:o,prefixEscaped:i,suffix:l,suffixEscaped:d,formatSeparator:c,unescapeSuffix:u,unescapePrefix:p,nestingPrefix:g,nestingPrefixEscaped:m,nestingSuffix:v,nestingSuffixEscaped:y,nestingOptionsSeparator:C,maxReplaces:N,alwaysFormat:_}=e.interpolation;this.escape=t!==void 0?t:wi,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=o?qa(o):i||"{{",this.suffix=l?qa(l):d||"}}",this.formatSeparator=c||",",this.unescapePrefix=u?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=g?qa(g):m||qa("$t("),this.nestingSuffix=v?qa(v):y||qa(")"),this.nestingOptionsSeparator=C||",",this.maxReplaces=N||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 o,i,l;const d=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=m=>{if(m.indexOf(this.formatSeparator)<0){const N=ts(t,d,m,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(N,void 0,n,{...r,...t,interpolationkey:m}):N}const v=m.split(this.formatSeparator),y=v.shift().trim(),C=v.join(this.formatSeparator).trim();return this.format(ts(t,d,y,this.options.keySeparator,this.options.ignoreJSONStructure),C,n,{...r,...t,interpolationkey:y})};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=>jn(m)},{regex:this.regexp,safeValue:m=>this.escapeValue?jn(this.escape(m)):jn(m)}].forEach(m=>{for(l=0;o=m.regex.exec(e);){const v=o[1].trim();if(i=c(v),i===void 0)if(typeof u=="function"){const C=u(e,o,r);i=te(C)?C:""}else if(r&&Object.prototype.hasOwnProperty.call(r,v))i="";else if(p){i=o[0];continue}else this.logger.warn(`missed to pass in variable ${v} for interpolating ${e}`),i="";else!te(i)&&!this.useRawValueToEscape&&(i=Kr(i));const y=m.safeValue(i);if(e=e.replace(o[0],y),p?(m.regex.lastIndex+=i.length,m.regex.lastIndex-=o[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,o,i;const l=(d,c)=>{const u=this.nestingOptionsSeparator;if(d.indexOf(u)<0)return d;const p=d.split(new RegExp(`${u}[ ]*{`));let g=`{${p[1]}`;d=p[0],g=this.interpolate(g,i);const m=g.match(/'/g),v=g.match(/"/g);(m&&m.length%2===0&&!v||v.length%2!==0)&&(g=g.replace(/'/g,'"'));try{i=JSON.parse(g),c&&(i={...c,...i})}catch(y){return this.logger.warn(`failed parsing options string in nesting for key ${d}`,y),`${d}${u}${g}`}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&&!te(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(o=t(l.call(this,r[1].trim(),i),i),o&&r[0]===e&&!te(o))return o;te(o)||(o=Kr(o)),o||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),o=""),c&&(o=d.reduce((u,p)=>this.format(u,p,n.lng,{...n,interpolationkey:r[1].trim()}),o.trim())),e=e.replace(r[0],o),this.regexp.lastIndex=0}return e}}const Bi=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}},Za=a=>{const e={};return(t,n,r)=>{let o=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(o={...o,[r.interpolationkey]:void 0});const i=n+JSON.stringify(o);let l=e[i];return l||(l=a(Zt(n),r),e[i]=l),l(t)}};class zi{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Xe.create("formatter"),this.options=e,this.formats={number:Za((t,n)=>{const r=new Intl.NumberFormat(t,{...n});return o=>r.format(o)}),currency:Za((t,n)=>{const r=new Intl.NumberFormat(t,{...n,style:"currency"});return o=>r.format(o)}),datetime:Za((t,n)=>{const r=new Intl.DateTimeFormat(t,{...n});return o=>r.format(o)}),relativetime:Za((t,n)=>{const r=new Intl.RelativeTimeFormat(t,{...n});return o=>r.format(o,n.range||"day")}),list:Za((t,n)=>{const r=new Intl.ListFormat(t,{...n});return o=>r.format(o)})},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()]=Za(t)}format(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=t.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&o[0].indexOf(")")<0&&o.find(l=>l.indexOf(")")>-1)){const l=o.findIndex(d=>d.indexOf(")")>-1);o[0]=[o[0],...o.splice(1,l)].join(this.formatSeparator)}return o.reduce((l,d)=>{const{formatName:c,formatOptions:u}=Bi(d);if(this.formats[c]){let p=l;try{const g=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},m=g.locale||g.lng||r.locale||r.lng||n;p=this.formats[c](l,m,{...u,...r,...g})}catch(g){this.logger.warn(g)}return p}else this.logger.warn(`there was no format function for ${c}`);return l},e)}}const Vi=(a,e)=>{a.pending[e]!==void 0&&(delete a.pending[e],a.pendingCount--)};class ji extends Gt{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=Xe.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 o={},i={},l={},d={};return e.forEach(c=>{let u=!0;t.forEach(p=>{const g=`${c}|${p}`;!n.reload&&this.store.hasResourceBundle(c,p)?this.state[g]=2:this.state[g]<0||(this.state[g]===1?i[g]===void 0&&(i[g]=!0):(this.state[g]=1,u=!1,i[g]===void 0&&(i[g]=!0),o[g]===void 0&&(o[g]=!0),d[p]===void 0&&(d[p]=!0)))}),u||(l[c]=!0)}),(Object.keys(o).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(o),pending:Object.keys(i),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(d)}}loaded(e,t,n){const r=e.split("|"),o=r[0],i=r[1];t&&this.emit("failedLoading",o,i,t),!t&&n&&this.store.addResourceBundle(o,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=>{Ci(d.loaded,[o],i),Vi(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,o=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:o,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,o*2,i)},o);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();te(e)&&(e=this.languageUtils.toResolveHierarchy(e)),te(t)&&(t=[t]);const o=this.queueLoad(e,t,n,r);if(!o.toLoad.length)return o.pending.length||r(),null;o.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],o=n[1];this.read(r,o,"read",void 0,void 0,(i,l)=>{i&&this.logger.warn(`${t}loading namespace ${o} for language ${r} failed`,i),!i&&l&&this.logger.log(`${t}loaded namespace ${o} for language ${r}`,l),this.loaded(e,i,l)})}saveMissing(e,t,n,r,o){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:o},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 ns=()=>({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]),te(a[1])&&(e.defaultValue=a[1]),te(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}}),rs=a=>(te(a.ns)&&(a.ns=[a.ns]),te(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),te(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs&&a.supportedLngs.indexOf("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),a),$t=()=>{},qi=a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(t=>{typeof a[t]=="function"&&(a[t]=a[t].bind(a))})};class ot extends Gt{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=rs(e),this.services={},this.logger=Xe,this.modules={external:[]},qi(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&&(te(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=ns();this.options={...r,...this.options,...rs(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 o=u=>u?typeof u=="function"?new u:u:null;if(!this.options.isClone){this.modules.logger?Xe.init(o(this.modules.logger),this.options):Xe.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=zi);const p=new es(this.options);this.store=new Jr(this.options.resources,this.options);const g=this.services;g.logger=Xe,g.resourceStore=this.store,g.languageUtils=p,g.pluralResolver=new Oi(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)&&(g.formatter=o(u),g.formatter.init(g,this.options),this.options.interpolation.format=g.formatter.format.bind(g.formatter)),g.interpolator=new Ui(this.options),g.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},g.backendConnector=new ji(o(this.modules.backend),g.resourceStore,g,this.options),g.backendConnector.on("*",function(m){for(var v=arguments.length,y=new Array(v>1?v-1:0),C=1;C<v;C++)y[C-1]=arguments[C];e.emit(m,...y)}),this.modules.languageDetector&&(g.languageDetector=o(this.modules.languageDetector),g.languageDetector.init&&g.languageDetector.init(g,this.options.detection,this.options)),this.modules.i18nFormat&&(g.i18nFormat=o(this.modules.i18nFormat),g.i18nFormat.init&&g.i18nFormat.init(this)),this.translator=new Kt(this.services,this.options),this.translator.on("*",function(m){for(var v=arguments.length,y=new Array(v>1?v-1:0),C=1;C<v;C++)y[C-1]=arguments[C];e.emit(m,...y)}),this.modules.external.forEach(m=>{m.init&&m.init(this)})}if(this.format=this.options.interpolation.format,n||(n=$t),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=rt(),c=()=>{const u=(p,g)=>{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(g),n(p,g)};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]:$t;const r=te(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 o=[],i=l=>{if(!l||l==="cimode")return;this.services.languageUtils.toResolveHierarchy(l).forEach(c=>{c!=="cimode"&&o.indexOf(c)<0&&o.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(o,this.options.ns,l=>{!l&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(l)})}else n(null)}reloadResources(e,t,n){const r=rt();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=$t),this.services.backendConnector.reload(e,t,o=>{r.resolve(),n(o)}),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"&&Qr.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=rt();this.emit("languageChanging",e);const o=d=>{this.language=d,this.languages=this.services.languageUtils.toResolveHierarchy(d),this.resolvedLanguage=void 0,this.setResolvedLanguage(d)},i=(d,c)=>{c?(o(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=te(d)?d:this.services.languageUtils.getBestMatchFromCodes(d);c&&(this.language||o(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 o=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||o.lng,d.lngs=d.lngs||o.lngs,d.ns=d.ns||o.ns,d.keyPrefix!==""&&(d.keyPrefix=d.keyPrefix||n||o.keyPrefix);const g=r.options.keySeparator||".";let m;return d.keyPrefix&&Array.isArray(i)?m=i.map(v=>`${d.keyPrefix}${g}${v}`):m=d.keyPrefix?`${d.keyPrefix}${g}${i}`:i,r.t(m,d)};return te(e)?o.lng=e:o.lngs=e,o.ns=t,o.keyPrefix=n,o}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,o=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(o,e)))}loadNamespaces(e,t){const n=rt();return this.options.ns?(te(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=rt();te(e)&&(e=[e]);const r=this.options.preload||[],o=e.filter(i=>r.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return o.length?(this.options.preload=r.concat(o),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 es(ns());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 ot(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:$t;const n=e.forkResourceStore;n&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},o=new ot(r);return(e.debug!==void 0||e.prefix!==void 0)&&(o.logger=o.logger.clone(e)),["store","services","language"].forEach(l=>{o[l]=this[l]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},n&&(o.store=new Jr(this.store.data,r),o.services.resourceStore=o.store),o.translator=new Kt(o.services,r),o.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];o.emit(l,...c)}),o.init(r,t),o.translator.options=r,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Me=ot.createInstance();Me.createInstance=ot.createInstance;const Zi=Me.createInstance;Me.dir,Me.init,Me.loadResources,Me.reloadResources,Me.use,Me.changeLanguage,Me.getFixedT,Me.t,Me.exists,Me.setDefaultNamespace,Me.hasLoadedNamespace,Me.loadNamespaces,Me.loadLanguages;const Wi={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",planBannerRenews:"Renews {date}",planBannerDowngradesTo:"Downgrades to {plan} on {date}",planBannerManageCta:"Manage plan",planBannerPendingUpgradeNote:"Pending upgrade — awaiting payment",pendingUpgradeBannerText:"Your last payment failed — this subscription upgrade is on hold until it goes through.",pendingUpgradeBannerCta:"View pending upgrade",pendingUpgradeBlocksManageTooltip:"Resolve your pending upgrade before making more changes",pendingUpgradeTitle:"Pending upgrade",pendingUpgradeFailedLabel:"Payment failed",pendingUpgradeSubtitle:"Review your payment method and make sure you have sufficient funds, then try again.",pendingUpgradeItemsLabel:"Items",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Amount due",pendingUpgradeAmountUnavailable:"Could not load the amount due — try again shortly.",pendingUpgradeExpiresOn:"If unpaid by {date}, this upgrade will be cancelled automatically",pendingUpgradePayCta:"Pay invoice",pendingUpgradeCancelCta:"Cancel upgrade",pendingUpgradePaySuccess:"Payment confirmed",pendingUpgradePayError:"Could not pay the invoice",pendingUpgradeCancelSuccess:"Pending upgrade cancelled",pendingUpgradeCancelError:"Could not cancel the pending upgrade",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",cancelSurveyConfirmTitle:"Are you sure you want to cancel?",cancelSurveyConfirmLede:"Your {plan} features remain available <bold>until this billing cycle ends on {date}.</bold> After that, you'll lose access to:",cancelSurveyConfirmLedeNoDate:"Your {plan} features remain available until this billing cycle ends. After that, you'll lose access to:",cancelSurveyCurrentPlan:"Your current plan",cancelSurveyCurrentAddons:"Your current add-ons",cancelSurveyAddonPack:"{name} pack ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversations",cancelSurveyKeep:"Keep my subscription",cancelSurveyContinue:"Continue",cancelSurveyFeedbackTitle:"Before you go, we'd love to hear your feedback.",cancelSurveyFeedbackLede:"Your feedback helps us make Botpress better. What's the main reason you're canceling your subscription?",cancelSurveyReasonTooExpensive:"Too expensive for my current needs",cancelSurveyReasonNotUsingEnough:"Not using Botpress enough",cancelSurveyReasonMissingFeature:"Missing a key feature I need",cancelSurveyReasonSwitchedTool:"Switched to a different tool or platform",cancelSurveyReasonTechnicalIssues:"Experienced technical issues or bugs",cancelSurveyReasonSupportExpectations:"Support or guidance did not meet my expectations",cancelSurveyReasonTemporaryNeed:"Only needed Botpress temporarily",cancelSurveyCommentLabel:"Additional comments",cancelSurveyOptional:"(optional)",cancelSurveyCommentPlaceholder:"Please share any additional feedback...",cancelSurveyConfirm:"Confirm cancellation",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",addonRemoved:"{activeNow} active now · removed",addonRemovedOnDate:"{activeNow} active now · removed on {date}",addonChanged:"{activeNow} active now · {pending} after update",addonChangedOnDate:"{activeNow} active now · {pending} on {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:"Your add-ons then cost {amount}{interval} until you remove them, starting {date}.",addonsRenewalNoDate:"Your add-ons then cost {amount}{interval} until you remove 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, $1 or more.",autoRechargeThresholdError:"Must be a whole-dollar amount of at least $1.",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"},Gi={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é",planBannerRenews:"Renouvellement le {date}",planBannerDowngradesTo:"Passe à {plan} le {date}",planBannerManageCta:"Gérer le plan",planBannerPendingUpgradeNote:"Mise à niveau en attente — paiement à confirmer",pendingUpgradeBannerText:"Votre dernier paiement a échoué — cette mise à niveau de l’abonnement est en attente jusqu’à son traitement.",pendingUpgradeBannerCta:"Voir la mise à niveau en attente",pendingUpgradeBlocksManageTooltip:"Résolvez votre mise à niveau en attente avant de faire d’autres changements",pendingUpgradeTitle:"Mise à niveau en attente",pendingUpgradeFailedLabel:"Paiement échoué",pendingUpgradeSubtitle:"Vérifiez votre moyen de paiement et assurez-vous d’avoir des fonds suffisants, puis réessayez.",pendingUpgradeItemsLabel:"Éléments",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Montant dû",pendingUpgradeAmountUnavailable:"Impossible de charger le montant dû — réessayez dans un instant.",pendingUpgradeExpiresOn:"Si elle n’est pas payée avant le {date}, cette mise à niveau sera annulée automatiquement",pendingUpgradePayCta:"Payer la facture",pendingUpgradeCancelCta:"Annuler la mise à niveau",pendingUpgradePaySuccess:"Paiement confirmé",pendingUpgradePayError:"Impossible de payer la facture",pendingUpgradeCancelSuccess:"Mise à niveau en attente annulée",pendingUpgradeCancelError:"Impossible d'annuler la mise à niveau en attente",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",cancelSurveyConfirmTitle:"Voulez-vous vraiment annuler ?",cancelSurveyConfirmLede:"Les fonctionnalités {plan} restent disponibles <bold>jusqu'à la fin de ce cycle de facturation, le {date}.</bold> Ensuite, vous perdrez l'accès à :",cancelSurveyConfirmLedeNoDate:"Les fonctionnalités {plan} restent disponibles jusqu'à la fin de ce cycle de facturation. Ensuite, vous perdrez l'accès à :",cancelSurveyCurrentPlan:"Votre plan actuel",cancelSurveyCurrentAddons:"Vos modules actuels",cancelSurveyAddonPack:"Pack {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversations",cancelSurveyKeep:"Conserver mon abonnement",cancelSurveyContinue:"Continuer",cancelSurveyFeedbackTitle:"Avant de partir, nous aimerions avoir votre avis.",cancelSurveyFeedbackLede:"Vos commentaires nous aident à améliorer Botpress. Quelle est la principale raison de l'annulation de votre abonnement ?",cancelSurveyReasonTooExpensive:"Trop cher pour mes besoins actuels",cancelSurveyReasonNotUsingEnough:"Je n'utilise pas assez Botpress",cancelSurveyReasonMissingFeature:"Il manque une fonctionnalité dont j'ai besoin",cancelSurveyReasonSwitchedTool:"Je suis passé à un autre outil ou une autre plateforme",cancelSurveyReasonTechnicalIssues:"J'ai rencontré des problèmes techniques ou des bogues",cancelSurveyReasonSupportExpectations:"Le support ou l'accompagnement n'a pas répondu à mes attentes",cancelSurveyReasonTemporaryNeed:"Je n'avais besoin de Botpress que temporairement",cancelSurveyCommentLabel:"Commentaires supplémentaires",cancelSurveyOptional:"(facultatif)",cancelSurveyCommentPlaceholder:"Partagez tout commentaire supplémentaire...",cancelSurveyConfirm:"Confirmer l'annulation",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",addonRemoved:"{activeNow} actif maintenant · supprimé",addonRemovedOnDate:"{activeNow} actif maintenant · supprimé le {date}",addonChanged:"{activeNow} actif maintenant · {pending} après la mise à jour",addonChangedOnDate:"{activeNow} actif maintenant · {pending} le {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:"Vos add-ons coûteront ensuite {amount}{interval} jusqu'à ce que vous les supprimiez, à partir du {date}.",addonsRenewalNoDate:"Vos add-ons coûteront ensuite {amount}{interval} jusqu'à ce que vous les supprimiez.",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, 1 $ ou plus.",autoRechargeThresholdError:"Doit être un montant entier d’au moins 1 $.",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"},Ki={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",planBannerRenews:"Renovación el {date}",planBannerDowngradesTo:"Cambia a {plan} el {date}",planBannerManageCta:"Gestionar plan",planBannerPendingUpgradeNote:"Actualización pendiente — esperando el pago",pendingUpgradeBannerText:"Tu último pago falló — esta actualización de suscripción está en espera hasta que se procese.",pendingUpgradeBannerCta:"Ver actualización pendiente",pendingUpgradeBlocksManageTooltip:"Resuelve tu actualización pendiente antes de hacer más cambios",pendingUpgradeTitle:"Actualización pendiente",pendingUpgradeFailedLabel:"Pago fallido",pendingUpgradeSubtitle:"Revisa tu método de pago y asegúrate de tener fondos suficientes, luego inténtalo de nuevo.",pendingUpgradeItemsLabel:"Elementos",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Monto a pagar",pendingUpgradeAmountUnavailable:"No se pudo cargar el monto a pagar — inténtalo de nuevo en un momento.",pendingUpgradeExpiresOn:"Si no se paga antes del {date}, esta actualización se cancelará automáticamente",pendingUpgradePayCta:"Pagar factura",pendingUpgradeCancelCta:"Cancelar actualización",pendingUpgradePaySuccess:"Pago confirmado",pendingUpgradePayError:"No se pudo pagar la factura",pendingUpgradeCancelSuccess:"Actualización pendiente cancelada",pendingUpgradeCancelError:"No se pudo cancelar la actualización pendiente",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",cancelSurveyConfirmTitle:"¿Seguro que quieres cancelar?",cancelSurveyConfirmLede:"Las funciones de {plan} siguen disponibles <bold>hasta que termine este ciclo de facturación, el {date}.</bold> Después, perderás el acceso a:",cancelSurveyConfirmLedeNoDate:"Las funciones de {plan} siguen disponibles hasta que termine este ciclo de facturación. Después, perderás el acceso a:",cancelSurveyCurrentPlan:"Tu plan actual",cancelSurveyCurrentAddons:"Tus complementos actuales",cancelSurveyAddonPack:"Paquete de {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversaciones",cancelSurveyKeep:"Mantener mi suscripción",cancelSurveyContinue:"Continuar",cancelSurveyFeedbackTitle:"Antes de que te vayas, nos encantaría conocer tu opinión.",cancelSurveyFeedbackLede:"Tu opinión nos ayuda a mejorar Botpress. ¿Cuál es el motivo principal por el que cancelas tu suscripción?",cancelSurveyReasonTooExpensive:"Demasiado caro para mis necesidades actuales",cancelSurveyReasonNotUsingEnough:"No uso Botpress lo suficiente",cancelSurveyReasonMissingFeature:"Falta una función clave que necesito",cancelSurveyReasonSwitchedTool:"Me cambié a otra herramienta o plataforma",cancelSurveyReasonTechnicalIssues:"Tuve problemas técnicos o errores",cancelSurveyReasonSupportExpectations:"El soporte o la orientación no cumplieron mis expectativas",cancelSurveyReasonTemporaryNeed:"Solo necesitaba Botpress temporalmente",cancelSurveyCommentLabel:"Comentarios adicionales",cancelSurveyOptional:"(opcional)",cancelSurveyCommentPlaceholder:"Comparte cualquier comentario adicional...",cancelSurveyConfirm:"Confirmar cancelació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",addonRemoved:"{activeNow} activos ahora · eliminados",addonRemovedOnDate:"{activeNow} activos ahora · eliminados el {date}",addonChanged:"{activeNow} activos ahora · {pending} tras actualizar",addonChangedOnDate:"{activeNow} activos ahora · {pending} el {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:"Tus add-ons costarán entonces {amount}{interval} hasta que los elimines, a partir del {date}.",addonsRenewalNoDate:"Tus add-ons costarán entonces {amount}{interval} hasta que los elimines.",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, $1 o más.",autoRechargeThresholdError:"Debe ser un monto entero de al menos $1.",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"},$i={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",planBannerRenews:"Renova em {date}",planBannerDowngradesTo:"Muda para {plan} em {date}",planBannerManageCta:"Gerenciar plano",planBannerPendingUpgradeNote:"Atualização pendente — aguardando pagamento",pendingUpgradeBannerText:"Seu último pagamento falhou — esta atualização de assinatura está em espera até ser processada.",pendingUpgradeBannerCta:"Ver atualização pendente",pendingUpgradeBlocksManageTooltip:"Resolva sua atualização pendente antes de fazer mais alterações",pendingUpgradeTitle:"Atualização pendente",pendingUpgradeFailedLabel:"Pagamento falhou",pendingUpgradeSubtitle:"Revise sua forma de pagamento e verifique se há saldo suficiente, depois tente novamente.",pendingUpgradeItemsLabel:"Itens",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Valor a pagar",pendingUpgradeAmountUnavailable:"Não foi possível carregar o valor a pagar — tente novamente em instantes.",pendingUpgradeExpiresOn:"Se não for paga até {date}, esta atualização será cancelada automaticamente",pendingUpgradePayCta:"Pagar fatura",pendingUpgradeCancelCta:"Cancelar atualização",pendingUpgradePaySuccess:"Pagamento confirmado",pendingUpgradePayError:"Não foi possível pagar a fatura",pendingUpgradeCancelSuccess:"Atualização pendente cancelada",pendingUpgradeCancelError:"Não foi possível cancelar a atualização pendente",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",cancelSurveyConfirmTitle:"Tem certeza de que deseja cancelar?",cancelSurveyConfirmLede:"Os recursos do {plan} continuam disponíveis <bold>até o fim deste ciclo de cobrança, em {date}.</bold> Depois disso, você perderá o acesso a:",cancelSurveyConfirmLedeNoDate:"Os recursos do {plan} continuam disponíveis até o fim deste ciclo de cobrança. Depois disso, você perderá o acesso a:",cancelSurveyCurrentPlan:"Seu plano atual",cancelSurveyCurrentAddons:"Seus complementos atuais",cancelSurveyAddonPack:"Pacote de {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversas",cancelSurveyKeep:"Manter minha assinatura",cancelSurveyContinue:"Continuar",cancelSurveyFeedbackTitle:"Antes de você ir, adoraríamos ouvir sua opinião.",cancelSurveyFeedbackLede:"Sua opinião nos ajuda a melhorar o Botpress. Qual é o principal motivo do cancelamento da sua assinatura?",cancelSurveyReasonTooExpensive:"Caro demais para minhas necessidades atuais",cancelSurveyReasonNotUsingEnough:"Não uso o Botpress o suficiente",cancelSurveyReasonMissingFeature:"Falta um recurso importante de que preciso",cancelSurveyReasonSwitchedTool:"Mudei para outra ferramenta ou plataforma",cancelSurveyReasonTechnicalIssues:"Tive problemas técnicos ou bugs",cancelSurveyReasonSupportExpectations:"O suporte ou a orientação não atenderam às minhas expectativas",cancelSurveyReasonTemporaryNeed:"Só precisei do Botpress temporariamente",cancelSurveyCommentLabel:"Comentários adicionais",cancelSurveyOptional:"(opcional)",cancelSurveyCommentPlaceholder:"Compartilhe qualquer comentário adicional...",cancelSurveyConfirm:"Confirmar cancelamento",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",addonRemoved:"{activeNow} ativo agora · removido",addonRemovedOnDate:"{activeNow} ativo agora · removido em {date}",addonChanged:"{activeNow} ativo agora · {pending} após atualizar",addonChangedOnDate:"{activeNow} ativo agora · {pending} em {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:"Seus add-ons passarão então a custar {amount}{interval} até você removê-los, a partir de {date}.",addonsRenewalNoDate:"Seus add-ons passarão então a custar {amount}{interval} até você removê-los.",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, $1 ou mais.",autoRechargeThresholdError:"Deve ser um valor inteiro de pelo menos $1.",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"},Wa="billing",qn=Zi();qn.use(hi).init({resources:{en:{[Wa]:Wi},fr:{[Wa]:Gi},es:{[Wa]:Ki},pt:{[Wa]:$i}},lng:"en",fallbackLng:"en",ns:[Wa],defaultNS:Wa,interpolation:{escapeValue:!1,prefix:"{",suffix:"}"}});const Ri=new Set(["v1","v2","v3"]);function ss(a){return Ri.has(a)}const Rt=T.createContext(null);function Hi(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=o=>t(o.matches);return n.addEventListener("change",r),()=>n.removeEventListener("change",r)},[a]),a==="system"?e:a==="dark"}const Yi=({client:a,stripePublishableKey:e,email:t,locale:n="en",theme:r="light",colorScheme:o="default",onToast:i,analytics:l,featureLabels:d,billingVersion:c,workspaceId:u,persist:p=!0,manageBillingUrl:g,onBillingChange:m,refreshInterval:v=3e4,children:y})=>{const C=u||"default",[N]=T.useState(()=>new ge.QueryClient({defaultOptions:{queries:{retry:1,staleTime:3e4,gcTime:1e3*60*60}}})),_=Hi(r),I=T.useMemo(()=>Tr(e),[e]);T.useEffect(()=>{if(!p||typeof window>"u")return;const x=`bpb-cache:${C}`;try{const j=window.localStorage.getItem(x);j&&ge.hydrate(N,JSON.parse(j))}catch{window.localStorage.removeItem(x)}let L=null;const Z=N.getQueryCache().subscribe(j=>{j.type!=="added"&&j.type!=="removed"&&j.type!=="updated"||(L&&clearTimeout(L),L=setTimeout(()=>{try{window.localStorage.setItem(x,JSON.stringify(ge.dehydrate(N)))}catch{}},250))});return()=>{L&&clearTimeout(L),Z()}},[p,C,N]);const b=T.useCallback(()=>N.invalidateQueries({queryKey:["bpb",C]}),[N,C]),A=T.useCallback(x=>m==null?void 0:m(x),[m]),S=v>0?v:!1,D=c!==void 0&&ss(c),w=Ho({analytics:l,client:a,queryClient:N,scope:C,billingVersion:c,isOutdatedBilling:D});qn.changeLanguage(n);const z=T.useMemo(()=>({client:a,queryClient:N,scope:C,stripePromise:I,email:t,locale:n,isDark:_,colorScheme:o,toast:i??(()=>{}),analytics:w,featureLabels:d,isOutdatedBilling:D,manageBillingUrl:g,refetchInterval:S,refresh:b,notifyBillingChange:A}),[a,N,C,I,t,n,_,o,i,w,d,D,g,S,b,A]);return s.jsx(Rt.Provider,{value:z,children:s.jsx(vi,{i18n:qn,children:s.jsx("div",{className:"bpb-scope","data-bpb-theme":_?"dark":"light","data-bpb-color-scheme":o,style:{display:"contents"},children:y})})})};function X(){const a=T.useContext(Rt);if(!a)throw new Error("@bpinternal/billing-ui components must be rendered inside <BillingProvider>");return a}function Ji(){var a;return((a=T.useContext(Rt))==null?void 0:a.isDark)??!1}function Qi(){var a;return((a=T.useContext(Rt))==null?void 0:a.colorScheme)??"default"}const we={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",DOWNGRADE_CONFIRM_VIEWED:"billing_downgrade_confirm_viewed",DOWNGRADE_SURVEY_VIEWED:"billing_downgrade_survey_viewed",DOWNGRADE_SURVEY_SUBMITTED:"billing_downgrade_survey_submitted",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 os(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=os(a[e]))&&(n&&(n+=" "),n+=t)}else for(t in a)a[t]&&(n&&(n+=" "),n+=t);return n}function Xi(){for(var a,e,t=0,n="",r=arguments.length;t<r;t++)(a=arguments[t])&&(e=os(a))&&(n&&(n+=" "),n+=e);return n}const el=(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},al=(a,e)=>({classGroupId:a,validator:e}),is=(a=new Map,e=null,t)=>({nextPart:a,validators:e,classGroupId:t}),Ht="-",ls=[],tl="arbitrary..",nl=a=>{const e=sl(a),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=a;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return rl(i);const l=i.split(Ht),d=l[0]===""&&l.length>1?1:0;return ds(l,d,e)},getConflictingClassGroupIds:(i,l)=>{if(l){const d=n[i],c=t[i];return d?c?el(c,d):d:c||ls}return t[i]||ls}}},ds=(a,e,t)=>{if(a.length-e===0)return t.classGroupId;const r=a[e],o=t.nextPart.get(r);if(o){const c=ds(a,e+1,o);if(c)return c}const i=t.validators;if(i===null)return;const l=e===0?a.join(Ht):a.slice(e).join(Ht),d=i.length;for(let c=0;c<d;c++){const u=i[c];if(u.validator(l))return u.classGroupId}},rl=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?tl+n:void 0})(),sl=a=>{const{theme:e,classGroups:t}=a;return ol(t,e)},ol=(a,e)=>{const t=is();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 o=0;o<r;o++){const i=a[o];il(i,e,t,n)}},il=(a,e,t,n)=>{if(typeof a=="string"){ll(a,e,t);return}if(typeof a=="function"){dl(a,e,t,n);return}cl(a,e,t,n)},ll=(a,e,t)=>{const n=a===""?e:cs(e,a);n.classGroupId=t},dl=(a,e,t,n)=>{if(ul(a)){Zn(a(n),e,t,n);return}e.validators===null&&(e.validators=[]),e.validators.push(al(t,a))},cl=(a,e,t,n)=>{const r=Object.entries(a),o=r.length;for(let i=0;i<o;i++){const[l,d]=r[i];Zn(d,cs(e,l),t,n)}},cs=(a,e)=>{let t=a;const n=e.split(Ht),r=n.length;for(let o=0;o<r;o++){const i=n[o];let l=t.nextPart.get(i);l||(l=is(),t.nextPart.set(i,l)),t=l}return t},ul=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,pl=a=>{if(a<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),n=Object.create(null);const r=(o,i)=>{t[o]=i,e++,e>a&&(e=0,n=t,t=Object.create(null))};return{get(o){let i=t[o];if(i!==void 0)return i;if((i=n[o])!==void 0)return r(o,i),i},set(o,i){o in t?t[o]=i:r(o,i)}}},Wn="!",us=":",gl=[],ps=(a,e,t,n,r)=>({modifiers:a,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:n,isExternal:r}),ml=a=>{const{prefix:e,experimentalParseClassName:t}=a;let n=r=>{const o=[];let i=0,l=0,d=0,c;const u=r.length;for(let y=0;y<u;y++){const C=r[y];if(i===0&&l===0){if(C===us){o.push(r.slice(d,y)),d=y+1;continue}if(C==="/"){c=y;continue}}C==="["?i++:C==="]"?i--:C==="("?l++:C===")"&&l--}const p=o.length===0?r:r.slice(d);let g=p,m=!1;p.endsWith(Wn)?(g=p.slice(0,-1),m=!0):p.startsWith(Wn)&&(g=p.slice(1),m=!0);const v=c&&c>d?c-d:void 0;return ps(o,m,g,v)};if(e){const r=e+us,o=n;n=i=>i.startsWith(r)?o(i.slice(r.length)):ps(gl,!1,i,void 0,!0)}if(t){const r=n;n=o=>t({className:o,parseClassName:r})}return n},hl=a=>{const e=new Map;return a.orderSensitiveModifiers.forEach((t,n)=>{e.set(t,1e6+n)}),t=>{const n=[];let r=[];for(let o=0;o<t.length;o++){const i=t[o],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}},bl=a=>({cache:pl(a.cacheSize),parseClassName:ml(a),sortModifiers:hl(a),postfixLookupClassGroupIds:fl(a),...nl(a)}),fl=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},yl=/\s+/,vl=(a,e)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:r,sortModifiers:o,postfixLookupClassGroupIds:i}=e,l=[],d=a.trim().split(yl);let c="";for(let u=d.length-1;u>=0;u-=1){const p=d[u],{isExternal:g,modifiers:m,hasImportantModifier:v,baseClassName:y,maybePostfixModifierPosition:C}=t(p);if(g){c=p+(c.length>0?" "+c:c);continue}let N=!!C,_;if(N){const D=y.substring(0,C);_=n(D);const w=_&&i[_]?n(y):void 0;w&&w!==_&&(_=w,N=!1)}else _=n(y);if(!_){if(!N){c=p+(c.length>0?" "+c:c);continue}if(_=n(y),!_){c=p+(c.length>0?" "+c:c);continue}N=!1}const I=m.length===0?"":m.length===1?m[0]:o(m).join(":"),b=v?I+Wn:I,A=b+_;if(l.indexOf(A)>-1)continue;l.push(A);const S=r(_,N);for(let D=0;D<S.length;++D){const w=S[D];l.push(b+w)}c=p+(c.length>0?" "+c:c)}return c},_l=(...a)=>{let e=0,t,n,r="";for(;e<a.length;)(t=a[e++])&&(n=gs(t))&&(r&&(r+=" "),r+=n);return r},gs=a=>{if(typeof a=="string")return a;let e,t="";for(let n=0;n<a.length;n++)a[n]&&(e=gs(a[n]))&&(t&&(t+=" "),t+=e);return t},Sl=(a,...e)=>{let t,n,r,o;const i=d=>{const c=e.reduce((u,p)=>p(u),a());return t=bl(c),n=t.cache.get,r=t.cache.set,o=l,l(d)},l=d=>{const c=n(d);if(c)return c;const u=vl(d,t);return r(d,u),u};return o=i,(...d)=>o(_l(...d))},Cl=[],De=a=>{const e=t=>t[a]||Cl;return e.isThemeGetter=!0,e},ms=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,hs=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Nl=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,kl=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,wl=/\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$/,Tl=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Il=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Al=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,fa=a=>Nl.test(a),de=a=>!!a&&!Number.isNaN(Number(a)),ea=a=>!!a&&Number.isInteger(Number(a)),Gn=a=>a.endsWith("%")&&de(a.slice(0,-1)),da=a=>kl.test(a),bs=()=>!0,Pl=a=>wl.test(a)&&!Tl.test(a),Kn=()=>!1,Dl=a=>Il.test(a),xl=a=>Al.test(a),El=a=>!G(a)&&!$(a),Ll=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=>ya(a,Cs,Kn),G=a=>ms.test(a),Aa=a=>ya(a,Ns,Pl),fs=a=>ya(a,ql,de),Ml=a=>ya(a,ws,bs),Ol=a=>ya(a,ks,Kn),ys=a=>ya(a,_s,Kn),Ul=a=>ya(a,Ss,xl),Yt=a=>ya(a,Ts,Dl),$=a=>hs.test(a),it=a=>Pa(a,Ns),Bl=a=>Pa(a,ks),vs=a=>Pa(a,_s),zl=a=>Pa(a,Cs),Vl=a=>Pa(a,Ss),Jt=a=>Pa(a,Ts,!0),jl=a=>Pa(a,ws,!0),ya=(a,e,t)=>{const n=ms.exec(a);return n?n[1]?e(n[1]):t(n[2]):!1},Pa=(a,e,t=!1)=>{const n=hs.exec(a);return n?n[1]?e(n[1]):t:!1},_s=a=>a==="position"||a==="percentage",Ss=a=>a==="image"||a==="url",Cs=a=>a==="length"||a==="size"||a==="bg-size",Ns=a=>a==="length",ql=a=>a==="number",ks=a=>a==="family-name",ws=a=>a==="number"||a==="weight",Ts=a=>a==="shadow",Zl=Sl(()=>{const a=De("color"),e=De("font"),t=De("text"),n=De("font-weight"),r=De("tracking"),o=De("leading"),i=De("breakpoint"),l=De("container"),d=De("spacing"),c=De("radius"),u=De("shadow"),p=De("inset-shadow"),g=De("text-shadow"),m=De("drop-shadow"),v=De("blur"),y=De("perspective"),C=De("aspect"),N=De("ease"),_=De("animate"),I=()=>["auto","avoid","all","avoid-page","page","left","right","column"],b=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],A=()=>[...b(),$,G],S=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],w=()=>[$,G,d],z=()=>[fa,"full","auto",...w()],x=()=>[ea,"none","subgrid",$,G],L=()=>["auto",{span:["full",ea,$,G]},ea,$,G],Z=()=>[ea,"auto",$,G],j=()=>["auto","min","max","fr",$,G],ee=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],R=()=>["start","end","center","stretch","center-safe","end-safe"],O=()=>["auto",...w()],q=()=>[fa,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...w()],W=()=>[fa,"screen","full","dvw","lvw","svw","min","max","fit",...w()],J=()=>[fa,"screen","full","lh","dvh","lvh","svh","min","max","fit",...w()],E=()=>[a,$,G],ce=()=>[...b(),vs,ys,{position:[$,G]}],B=()=>["no-repeat",{repeat:["","x","y","space","round"]}],F=()=>["auto","cover","contain",zl,Fl,{size:[$,G]}],H=()=>[Gn,it,Aa],V=()=>["","none","full",c,$,G],Q=()=>["",de,it,Aa],Se=()=>["solid","dashed","dotted","double"],Ce=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],se=()=>[de,Gn,vs,ys],Ae=()=>["","none",v,$,G],fe=()=>["none",de,$,G],P=()=>["none",de,$,G],oe=()=>[de,$,G],le=()=>[fa,"full",...w()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[da],breakpoint:[da],color:[bs],container:[da],"drop-shadow":[da],ease:["in","out","in-out"],font:[El],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[da],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[da],shadow:[da],spacing:["px",de],text:[da],"text-shadow":[da],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",fa,G,$,C]}],container:["container"],"container-type":[{"@container":["","normal","size",$,G]}],"container-named":[Ll],columns:[{columns:[de,G,$,l]}],"break-after":[{"break-after":I()}],"break-before":[{"break-before":I()}],"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:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:z()}],"inset-x":[{"inset-x":z()}],"inset-y":[{"inset-y":z()}],start:[{"inset-s":z(),start:z()}],end:[{"inset-e":z(),end:z()}],"inset-bs":[{"inset-bs":z()}],"inset-be":[{"inset-be":z()}],top:[{top:z()}],right:[{right:z()}],bottom:[{bottom:z()}],left:[{left:z()}],visibility:["visible","invisible","collapse"],z:[{z:[ea,"auto",$,G]}],basis:[{basis:[fa,"full","auto",l,...w()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[de,fa,"auto","initial","none",G]}],grow:[{grow:["",de,$,G]}],shrink:[{shrink:["",de,$,G]}],order:[{order:[ea,"first","last","none",$,G]}],"grid-cols":[{"grid-cols":x()}],"col-start-end":[{col:L()}],"col-start":[{"col-start":Z()}],"col-end":[{"col-end":Z()}],"grid-rows":[{"grid-rows":x()}],"row-start-end":[{row:L()}],"row-start":[{"row-start":Z()}],"row-end":[{"row-end":Z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":j()}],"auto-rows":[{"auto-rows":j()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...ee(),"normal"]}],"justify-items":[{"justify-items":[...R(),"normal"]}],"justify-self":[{"justify-self":["auto",...R()]}],"align-content":[{content:["normal",...ee()]}],"align-items":[{items:[...R(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...R(),{baseline:["","last"]}]}],"place-content":[{"place-content":ee()}],"place-items":[{"place-items":[...R(),"baseline"]}],"place-self":[{"place-self":["auto",...R()]}],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:O()}],mx:[{mx:O()}],my:[{my:O()}],ms:[{ms:O()}],me:[{me:O()}],mbs:[{mbs:O()}],mbe:[{mbe:O()}],mt:[{mt:O()}],mr:[{mr:O()}],mb:[{mb:O()}],ml:[{ml:O()}],"space-x":[{"space-x":w()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":w()}],"space-y-reverse":["space-y-reverse"],size:[{size:q()}],"inline-size":[{inline:["auto",...W()]}],"min-inline-size":[{"min-inline":["auto",...W()]}],"max-inline-size":[{"max-inline":["none",...W()]}],"block-size":[{block:["auto",...J()]}],"min-block-size":[{"min-block":["auto",...J()]}],"max-block-size":[{"max-block":["none",...J()]}],w:[{w:[l,"screen",...q()]}],"min-w":[{"min-w":[l,"screen","none",...q()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[i]},...q()]}],h:[{h:["screen","lh",...q()]}],"min-h":[{"min-h":["screen","lh","none",...q()]}],"max-h":[{"max-h":["screen","lh",...q()]}],"font-size":[{text:["base",t,it,Aa]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,jl,Ml]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Gn,G]}],"font-family":[{font:[Bl,Ol,e]}],"font-features":[{"font-features":[G]}],"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,$,G]}],"line-clamp":[{"line-clamp":[de,"none",$,fs]}],leading:[{leading:[o,...w()]}],"list-image":[{"list-image":["none",$,G]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",$,G]}],"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:[...Se(),"wavy"]}],"text-decoration-thickness":[{decoration:[de,"from-font","auto",$,Aa]}],"text-decoration-color":[{decoration:E()}],"underline-offset":[{"underline-offset":[de,"auto",$,G]}],"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:[ea,$,G]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",$,G]}],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",$,G]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ce()}],"bg-repeat":[{bg:B()}],"bg-size":[{bg:F()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ea,$,G],radial:["",$,G],conic:[ea,$,G]},Vl,Ul]}],"bg-color":[{bg:E()}],"gradient-from-pos":[{from:H()}],"gradient-via-pos":[{via:H()}],"gradient-to-pos":[{to:H()}],"gradient-from":[{from:E()}],"gradient-via":[{via:E()}],"gradient-to":[{to:E()}],rounded:[{rounded:V()}],"rounded-s":[{"rounded-s":V()}],"rounded-e":[{"rounded-e":V()}],"rounded-t":[{"rounded-t":V()}],"rounded-r":[{"rounded-r":V()}],"rounded-b":[{"rounded-b":V()}],"rounded-l":[{"rounded-l":V()}],"rounded-ss":[{"rounded-ss":V()}],"rounded-se":[{"rounded-se":V()}],"rounded-ee":[{"rounded-ee":V()}],"rounded-es":[{"rounded-es":V()}],"rounded-tl":[{"rounded-tl":V()}],"rounded-tr":[{"rounded-tr":V()}],"rounded-br":[{"rounded-br":V()}],"rounded-bl":[{"rounded-bl":V()}],"border-w":[{border:Q()}],"border-w-x":[{"border-x":Q()}],"border-w-y":[{"border-y":Q()}],"border-w-s":[{"border-s":Q()}],"border-w-e":[{"border-e":Q()}],"border-w-bs":[{"border-bs":Q()}],"border-w-be":[{"border-be":Q()}],"border-w-t":[{"border-t":Q()}],"border-w-r":[{"border-r":Q()}],"border-w-b":[{"border-b":Q()}],"border-w-l":[{"border-l":Q()}],"divide-x":[{"divide-x":Q()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Q()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Se(),"hidden","none"]}],"divide-style":[{divide:[...Se(),"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:[...Se(),"none","hidden"]}],"outline-offset":[{"outline-offset":[de,$,G]}],"outline-w":[{outline:["",de,it,Aa]}],"outline-color":[{outline:E()}],shadow:[{shadow:["","none",u,Jt,Yt]}],"shadow-color":[{shadow:E()}],"inset-shadow":[{"inset-shadow":["none",p,Jt,Yt]}],"inset-shadow-color":[{"inset-shadow":E()}],"ring-w":[{ring:Q()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:E()}],"ring-offset-w":[{"ring-offset":[de,Aa]}],"ring-offset-color":[{"ring-offset":E()}],"inset-ring-w":[{"inset-ring":Q()}],"inset-ring-color":[{"inset-ring":E()}],"text-shadow":[{"text-shadow":["none",g,Jt,Yt]}],"text-shadow-color":[{"text-shadow":E()}],opacity:[{opacity:[de,$,G]}],"mix-blend":[{"mix-blend":[...Ce(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ce()}],"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":[de]}],"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":[$,G]}],"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":b()}],"mask-image-conic-pos":[{"mask-conic":[de]}],"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:ce()}],"mask-repeat":[{mask:B()}],"mask-size":[{mask:F()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",$,G]}],filter:[{filter:["","none",$,G]}],blur:[{blur:Ae()}],brightness:[{brightness:[de,$,G]}],contrast:[{contrast:[de,$,G]}],"drop-shadow":[{"drop-shadow":["","none",m,Jt,Yt]}],"drop-shadow-color":[{"drop-shadow":E()}],grayscale:[{grayscale:["",de,$,G]}],"hue-rotate":[{"hue-rotate":[de,$,G]}],invert:[{invert:["",de,$,G]}],saturate:[{saturate:[de,$,G]}],sepia:[{sepia:["",de,$,G]}],"backdrop-filter":[{"backdrop-filter":["","none",$,G]}],"backdrop-blur":[{"backdrop-blur":Ae()}],"backdrop-brightness":[{"backdrop-brightness":[de,$,G]}],"backdrop-contrast":[{"backdrop-contrast":[de,$,G]}],"backdrop-grayscale":[{"backdrop-grayscale":["",de,$,G]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[de,$,G]}],"backdrop-invert":[{"backdrop-invert":["",de,$,G]}],"backdrop-opacity":[{"backdrop-opacity":[de,$,G]}],"backdrop-saturate":[{"backdrop-saturate":[de,$,G]}],"backdrop-sepia":[{"backdrop-sepia":["",de,$,G]}],"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",$,G]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[de,"initial",$,G]}],ease:[{ease:["linear","initial",N,$,G]}],delay:[{delay:[de,$,G]}],animate:[{animate:["none",_,$,G]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[y,$,G]}],"perspective-origin":[{"perspective-origin":A()}],rotate:[{rotate:fe()}],"rotate-x":[{"rotate-x":fe()}],"rotate-y":[{"rotate-y":fe()}],"rotate-z":[{"rotate-z":fe()}],scale:[{scale:P()}],"scale-x":[{"scale-x":P()}],"scale-y":[{"scale-y":P()}],"scale-z":[{"scale-z":P()}],"scale-3d":["scale-3d"],skew:[{skew:oe()}],"skew-x":[{"skew-x":oe()}],"skew-y":[{"skew-y":oe()}],transform:[{transform:[$,G,"","none","gpu","cpu"]}],"transform-origin":[{origin:A()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:le()}],"translate-x":[{"translate-x":le()}],"translate-y":[{"translate-y":le()}],"translate-z":[{"translate-z":le()}],"translate-none":["translate-none"],zoom:[{zoom:[ea,$,G]}],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",$,G]}],"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",$,G]}],fill:[{fill:["none",...E()]}],"stroke-w":[{stroke:[de,it,Aa,fs]}],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 K(...a){return Zl(Xi(a))}function ne(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 Is(a,e="en-US"){return new Date(a).toLocaleString(e,{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"})}function As(a,e){const t=new Date(a);return t.setDate(t.getDate()+e),t.toISOString()}function he(a,e="en-US"){return new Intl.NumberFormat(e).format(a)}function Da(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 be(a){return a.replace("Plan - ","")}function lt(a){return{usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",jpy:"¥"}[a.toLowerCase()]??`${a.toUpperCase()} `}const qe=1e9,Ps={incoming_messages_events:a=>`${he(a)} incoming messages & events`,conversation_sessions:a=>`${he(a)} conversation sessions`,table_rows:a=>`${he(a)} table rows`,vector_db_storage:a=>`${Da(a)} vector database storage`,file_storage:a=>`${Da(a)} file storage`,collaborator_count:a=>a===1?"1 collaborator":`${he(a)} collaborators`,bot_count:a=>a===1?"1 bot":`${he(a)} bots`,indexed_file_count:a=>`${he(a)} indexed files for RAG`,ai_spend:a=>`${ne(a/qe,"usd",1)} AI credit included`,always_alive:a=>a===1?"1 always-alive bot":`${he(a)} always-alive bots`};function Wl(a,e,t){const n=(t==null?void 0:t[a])??Ps[a];return n?n(e):`${he(e)} ${a.replaceAll("_"," ")}`}const $e={conversation_sessions_addon:"addonNameConversationSessions",storage_addon:"addonNameStorage"},Ds={conversation_sessions_addon:"addonDescriptionConversationSessions",storage_addon:"addonDescriptionStorage"};function dt(a,e,t){return a.prices[e.id]??a.prices[ye(e)]??a.prices[t]??null}function xa(a){return a.replace("Add-on - ","")}function $n(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 xs=[{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 Es(a,e,t,n={}){if(!e)return[];const r=(i,l)=>(a.features[i]??0)+e.reduce((d,c)=>{var u;return d+(((u=c.increments)==null?void 0:u[i])??0)*(l[c.id]??0)},0),o=[];for(const i of xs){const l=r(i.key,n),d=r(i.key,t);e.some(c=>{var u;return(((u=c.increments)==null?void 0:u[i.key])??0)>0})&&o.push({...i,now:l,next:d})}return o}function Ls(a,e,t){var r;if(!a)return[];const n=[];for(const o of xs){const i=a.features[o.key]??0;let l=0;for(const d of e??[])l+=(((r=d.increments)==null?void 0:r[o.key])??0)*(t[d.id]??0);(i>0||l>0)&&n.push({...o,base:i,added:l,total:i+l})}return n}function Qt(a,e,t){var i;const n=$n(a);if(!n)return null;const r=((i=n.increments)==null?void 0:i.conversation_sessions)??0,o=dt(n,e,t);return r<=0||!o||o.amount<=0?null:{packSize:r,amount:o.amount,currency:o.currency}}const ct={"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"}},Fs={community:"planDescriptionCommunity",plus:"planDescriptionPlus",team:"planDescriptionTeam",enterprise:"planDescriptionEnterprise",managed:"planDescriptionManaged"},ut={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:[]},pt=({variant:a="accent",children:e,className:t})=>s.jsx("span",{className:K("bpb-badge",`bpb-badge--${a}`,t),children:e}),ve=({variant:a="primary",size:e="md",block:t=!1,loading:n=!1,className:r,disabled:o,children:i,type:l="button",...d})=>s.jsxs("button",{type:l,className:K("bpb-btn",`bpb-btn--${a}`,`bpb-btn--${e}`,t&&"bpb-btn--block",r),disabled:o||n,"data-loading":n||void 0,...d,children:[n&&s.jsx("span",{className:"bpb-btn__spinner","aria-hidden":!0}),s.jsx("span",{className:"bpb-btn__label",children:i})]}),_e=(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}),Ms=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M3 8.5l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Xt=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.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"}),s.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"})]}),Os=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.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"})}),Us=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.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"}),s.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"})]}),Rn=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.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"}),s.jsx("path",{d:"M5.8 8l1.6 1.6 2.8-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Bs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.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"})}),en=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M8 2l6 3-6 3-6-3 6-3z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M2 8l6 3 6-3M2 11l6 3 6-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),zs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.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"})}),an=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8.5 1.5L3 9h4l-.5 5.5L12 7H8l.5-5.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),Gl=[{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}],Vs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("g",{transform:"translate(8,8)",fill:"currentColor",children:Gl.map(t=>s.jsx("g",{transform:`rotate(${t.rotate})`,children:s.jsx("rect",{x:-.75,y:t.y,width:1.5,height:t.height,rx:.75})},t.rotate))})}),js=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("circle",{cx:"6",cy:"5.5",r:"2.2",stroke:"currentColor",strokeWidth:"1.3"}),s.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"}),s.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"})]}),qs=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M2.5 2.5v11h11",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),s.jsx("path",{d:"M5 10l2.2-2.4 2 1.6L12.5 5.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Zs=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),s.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"})]}),Ws=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M2.5 11.5L9 5l2 2-6.5 6.5H2.5v-2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.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})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("rect",{x:"1.8",y:"3.5",width:"12.4",height:"9",rx:"1.6",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M1.8 6.4h12.4",stroke:"currentColor",strokeWidth:"1.3"})]}),Kl=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M2 6l6-3.5L14 6v1H2V6zM3 7v5M6.3 7v5M9.7 7v5M13 7v5M2 12.5h12",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),$l=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("rect",{x:"3.5",y:"7",width:"9",height:"6.5",rx:"1.4",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M5.5 7V5.5a2.5 2.5 0 015 0V7",stroke:"currentColor",strokeWidth:"1.3"})]}),gt=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Ea=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M4 6.5L8 10.5l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Yn=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M10 3.5L5.5 8l4.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),aa=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M6 3.5L10.5 8L6 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Gs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Jn=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),mt=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.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"}),s.jsx("path",{d:"M8 6.3v3.1",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),s.jsx("circle",{cx:"8",cy:"11.6",r:"0.85",fill:"currentColor"})]}),ht=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.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"})}),Rl=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),s.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})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Xn=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8 2.5v7M5 7l3 3 3-3M3 12.5h10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),Hl=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.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"}),s.jsx("path",{d:"M6.2 5.5h3.6M6.2 8h3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),Ks=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),s.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 s.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)?Us:/seat|member|user|team|rbac|rout/.test(e)?js:/analytic|report|insight|dashboard/.test(e)?qs:/whatsapp|channel|chat|message|conversation|webchat|voice/.test(e)?Os:/storage|table|vector|file|gb|rows|db/.test(e)?en:/domain|help center|whitelabel|website|url|web/.test(e)?Zs:/brand|theme|custom|white-?label/.test(e)?Ws:/unlimited|infinit/.test(e)?zs:/security|sla|compliance|soc|audit/.test(e)||/support|sla|dedicated|priority/.test(e)?Rn:/integration|api|plugin|sdk|adk|studio/.test(e)?Bs:/agent/.test(e)?Vs:/ai|model|gpt|llm/.test(e)?an:Xt}const xe=({open:a,onOpenChange:e,size:t="md",children:n,className:r,showClose:o=!0,...i})=>{const l=T.useRef(null),d=Ji(),c=Qi(),u=T.useCallback(()=>e(!1),[e]);return T.useEffect(()=>{var m;if(!a)return;const p=v=>{v.key==="Escape"&&u()};document.addEventListener("keydown",p);const g=document.body.style.overflow;return document.body.style.overflow="hidden",(m=l.current)==null||m.focus(),()=>{document.removeEventListener("keydown",p),document.body.style.overflow=g}},[a,u]),a?Wo.createPortal(s.jsx("div",{className:"bpb-portal bpb-dialog__overlay","data-bpb-theme":d?"dark":"light","data-bpb-color-scheme":c,onClick:u,children:s.jsxs("div",{ref:l,role:"dialog","aria-modal":"true","aria-label":i["aria-label"],tabIndex:-1,className:K("bpb-dialog",`bpb-dialog--${t}`,r),onClick:p=>p.stopPropagation(),children:[o&&s.jsx("button",{type:"button",className:"bpb-dialog__close","aria-label":"Close",onClick:u,children:s.jsx(gt,{size:18})}),n]})}),document.body):null};var ar={},nn={};Object.defineProperty(nn,"__esModule",{value:!0}),nn.BOT_USE_CASES=void 0,nn.BOT_USE_CASES={CUSTOMER_SUPPORT:"customer-support",BRAND_ASSISTANT:"brand-assistant",PRODUCT_RECOMMENDATION:"product-recommendation",OTHER:"other"};var rn={};Object.defineProperty(rn,"__esModule",{value:!0}),rn.limitConfigs=void 0,rn.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 Ga={};Object.defineProperty(Ga,"__esModule",{value:!0}),Ga.objectToPrefixMap=Ga.prefixToObjectMap=void 0,Ga.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"},Ga.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 $s={},va={};Object.defineProperty(va,"__esModule",{value:!0}),va.quotaConfigsV3=va.quotaConfigs=va.quotaTypes=void 0,va.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"],va.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}},va.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 ta={};Object.defineProperty(ta,"__esModule",{value:!0}),ta.billingFeatureDefs=ta.BILLING_PLAN_IDS=ta.ALLOWED_TRIAL_PLANS=ta.ALLOWED_TRIAL_LENGTHS_IN_DAYS=void 0,ta.ALLOWED_TRIAL_LENGTHS_IN_DAYS=7,ta.ALLOWED_TRIAL_PLANS=["plus","team"],ta.BILLING_PLAN_IDS=["community","plus","team","enterprise","managed"],ta.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,o,i){i===void 0&&(i=o);var l=Object.getOwnPropertyDescriptor(r,o);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,l)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=me&&me.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(va,a),t(ta,a)}($s);var sn={};Object.defineProperty(sn,"__esModule",{value:!0}),sn.Tags=void 0,sn.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 Ze={};Object.defineProperty(Ze,"__esModule",{value:!0}),Ze.KNOWLEDGE_WORKFLOW=Ze.IDENTITY_WEBSITE_WORKFLOW=Ze.IDENTITY_TEXT_WORKFLOW=Ze.ONBOARDING_DEPLOY_WORKFLOW=Ze.WEBSITE_CRAWL_WORKFLOW=void 0,Ze.WEBSITE_CRAWL_WORKFLOW="website-crawl",Ze.ONBOARDING_DEPLOY_WORKFLOW="onboarding-deploy",Ze.IDENTITY_TEXT_WORKFLOW="identity-text-workflow",Ze.IDENTITY_WEBSITE_WORKFLOW="identity-website-workflow",Ze.KNOWLEDGE_WORKFLOW="knowledge-workflow";var on={};Object.defineProperty(on,"__esModule",{value:!0}),on.CANCELLATION_REASONS=void 0,on.CANCELLATION_REASONS=["too_expensive","not_using_enough","missing_feature","switched_tool","technical_issues","support_expectations","temporary_need"];var Rs={},tr={};(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)})(tr);var Hs={},bt={},ln={};(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})(ln);var ft={},Ys={},nr={},_a={},dn={},na={},yt={};(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 o(d){}r.assertIs=o;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=(o,i)=>({...o,...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})(yt),Object.defineProperty(na,"__esModule",{value:!0}),na.ZodError=na.quotelessJson=na.ZodIssueCode=void 0;const Js=yt;na.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 Yl=a=>JSON.stringify(a,null,2).replace(/"([^"]+)":/g,"$1:");na.quotelessJson=Yl;class vt 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(o){return o.message},n={_errors:[]},r=o=>{for(const i of o.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 vt))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 o=r.path[0];t[o]=t[o]||[],t[o].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}na.ZodError=vt,vt.create=a=>new vt(a),Object.defineProperty(dn,"__esModule",{value:!0});const Ee=na,La=yt,Jl=(a,e)=>{let t;switch(a.code){case Ee.ZodIssueCode.invalid_type:a.received===La.ZodParsedType.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case Ee.ZodIssueCode.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,La.util.jsonStringifyReplacer)}`;break;case Ee.ZodIssueCode.unrecognized_keys:t=`Unrecognized key(s) in object: ${La.util.joinValues(a.keys,", ")}`;break;case Ee.ZodIssueCode.invalid_union:t="Invalid input";break;case Ee.ZodIssueCode.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${La.util.joinValues(a.options)}`;break;case Ee.ZodIssueCode.invalid_enum_value:t=`Invalid enum value. Expected ${La.util.joinValues(a.options)}, received '${a.received}'`;break;case Ee.ZodIssueCode.invalid_arguments:t="Invalid function arguments";break;case Ee.ZodIssueCode.invalid_return_type:t="Invalid function return type";break;case Ee.ZodIssueCode.invalid_date:t="Invalid date";break;case Ee.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}"`:La.util.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case Ee.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 Ee.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 Ee.ZodIssueCode.custom:t="Invalid input";break;case Ee.ZodIssueCode.invalid_intersection_types:t="Intersection results could not be merged";break;case Ee.ZodIssueCode.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case Ee.ZodIssueCode.not_finite:t="Number must be finite";break;default:t=e.defaultError,La.util.assertNever(a)}return{message:t}};dn.default=Jl;var Ql=me&&me.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(_a,"__esModule",{value:!0}),_a.defaultErrorMap=void 0,_a.setErrorMap=Xl,_a.getErrorMap=ed;const Qs=Ql(dn);_a.defaultErrorMap=Qs.default;let Xs=Qs.default;function Xl(a){Xs=a}function ed(){return Xs}var rr={};(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=o;const t=_a,n=e(dn),r=m=>{const{data:v,path:y,errorMaps:C,issueData:N}=m,_=[...y,...N.path||[]],I={...N,path:_};if(N.message!==void 0)return{...N,path:_,message:N.message};let b="";const A=C.filter(S=>!!S).slice().reverse();for(const S of A)b=S(I,{data:v,defaultError:b}).message;return{...N,path:_,message:b}};a.makeIssue=r,a.EMPTY_PATH=[];function o(m,v){const y=(0,t.getErrorMap)(),C=(0,a.makeIssue)({issueData:v,data:m.data,path:m.path,errorMaps:[m.common.contextualErrorMap,m.schemaErrorMap,y,y===n.default?void 0:n.default].filter(N=>!!N)});m.common.issues.push(C)}class i{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(v,y){const C=[];for(const N of y){if(N.status==="aborted")return a.INVALID;N.status==="dirty"&&v.dirty(),C.push(N.value)}return{status:v.value,value:C}}static async mergeObjectAsync(v,y){const C=[];for(const N of y){const _=await N.key,I=await N.value;C.push({key:_,value:I})}return i.mergeObjectSync(v,C)}static mergeObjectSync(v,y){const C={};for(const N of y){const{key:_,value:I}=N;if(_.status==="aborted"||I.status==="aborted")return a.INVALID;_.status==="dirty"&&v.dirty(),I.status==="dirty"&&v.dirty(),_.value!=="__proto__"&&(typeof I.value<"u"||N.alwaysSet)&&(C[_.value]=I.value)}return{status:v.value,value:C}}}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 g=m=>typeof Promise<"u"&&m instanceof Promise;a.isAsync=g})(rr);var eo={};Object.defineProperty(eo,"__esModule",{value:!0});var h={},cn={};Object.defineProperty(cn,"__esModule",{value:!0}),cn.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||(cn.errorUtil=ao={})),Object.defineProperty(h,"__esModule",{value:!0}),h.discriminatedUnion=h.date=h.boolean=h.bigint=h.array=h.any=h.coerce=h.ZodFirstPartyTypeKind=h.late=h.ZodSchema=h.Schema=h.ZodReadonly=h.ZodPipeline=h.ZodBranded=h.BRAND=h.ZodNaN=h.ZodCatch=h.ZodDefault=h.ZodNullable=h.ZodOptional=h.ZodTransformer=h.ZodEffects=h.ZodPromise=h.ZodNativeEnum=h.ZodEnum=h.ZodLiteral=h.ZodLazy=h.ZodFunction=h.ZodSet=h.ZodMap=h.ZodRecord=h.ZodTuple=h.ZodIntersection=h.ZodDiscriminatedUnion=h.ZodUnion=h.ZodObject=h.ZodArray=h.ZodVoid=h.ZodNever=h.ZodUnknown=h.ZodAny=h.ZodNull=h.ZodUndefined=h.ZodSymbol=h.ZodDate=h.ZodBoolean=h.ZodBigInt=h.ZodNumber=h.ZodString=h.ZodType=void 0,h.NEVER=h.void=h.unknown=h.union=h.undefined=h.tuple=h.transformer=h.symbol=h.string=h.strictObject=h.set=h.record=h.promise=h.preprocess=h.pipeline=h.ostring=h.optional=h.onumber=h.oboolean=h.object=h.number=h.nullable=h.null=h.never=h.nativeEnum=h.nan=h.map=h.literal=h.lazy=h.intersection=h.instanceof=h.function=h.enum=h.effect=void 0,h.datetimeRegex=so,h.custom=lo;const M=na,un=_a,Y=cn,f=rr,U=yt;class ra{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 M.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 ie{get description(){return this._def.description}_getType(e){return(0,U.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,U.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,U.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,U.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,U.getParsedType)(e)};if(!this["~standard"].async)try{const o=this._parseSync({data:e,path:[],parent:t});return(0,f.isValid)(o)?{value:o.value}:{issues:t.common.issues}}catch(o){(r=(n=o==null?void 0:o.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(o=>(0,f.isValid)(o)?{value:o.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,U.getParsedType)(e)},r=this._parse({data:e,path:n.path,parent:n}),o=await((0,f.isAsync)(r)?r:Promise.resolve(r));return to(n,o)}refine(e,t){const n=r=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(r):t;return this._refinement((r,o)=>{const i=e(r),l=()=>o.addIssue({code:M.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 Ye({schema:this,typeName:ae.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 oa.create(this,this._def)}nullable(){return ka.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return He.create(this)}promise(){return Ha.create(this,this._def)}or(e){return Nt.create([this,e],this._def)}and(e){return kt.create(this,e,this._def)}transform(e){return new Ye({...re(this._def),schema:this,typeName:ae.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new Pt({...re(this._def),innerType:this,defaultValue:t,typeName:ae.ZodDefault})}brand(){return new ir({typeName:ae.ZodBranded,type:this,...re(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new Dt({...re(this._def),innerType:this,catchValue:t,typeName:ae.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return xt.create(this,e)}readonly(){return Et.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}h.ZodType=ie,h.Schema=ie,h.ZodSchema=ie;const ad=/^c[^\s-]{8,}$/i,td=/^[0-9a-z]+$/,nd=/^[0-9A-HJKMNP-TV-Z]{26}$/i,rd=/^[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,sd=/^[a-z0-9_-]{21}$/i,od=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,id=/^[-+]?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)?)??$/,ld=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,dd="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let sr;const cd=/^(?:(?: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])$/,ud=/^(?:(?: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])$/,pd=/^(([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]))$/,gd=/^(([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])$/,md=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,hd=/^([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])))",bd=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 fd(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 yd(a,e){return!!((e==="v4"||!e)&&cd.test(a)||(e==="v6"||!e)&&pd.test(a))}function vd(a,e){if(!od.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 _d(a,e){return!!((e==="v4"||!e)&&ud.test(a)||(e==="v6"||!e)&&gd.test(a))}class Re extends ie{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==U.ZodParsedType.string){const o=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(o,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.string,received:o.parsedType}),f.INVALID}const n=new f.ParseStatus;let r;for(const o of this._def.checks)if(o.kind==="min")e.data.length<o.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="max")e.data.length>o.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="length"){const i=e.data.length>o.value,l=e.data.length<o.value;(i||l)&&(r=this._getOrReturnCtx(e,r),i?(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):l&&(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),n.dirty())}else if(o.kind==="email")ld.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"email",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="emoji")sr||(sr=new RegExp(dd,"u")),sr.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"emoji",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="uuid")rd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"uuid",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="nanoid")sd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"nanoid",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid")ad.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"cuid",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid2")td.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"cuid2",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="ulid")nd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"ulid",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"url",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"regex",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty())):o.kind==="trim"?e.data=e.data.trim():o.kind==="includes"?e.data.includes(o.value,o.position)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),n.dirty()):o.kind==="toLowerCase"?e.data=e.data.toLowerCase():o.kind==="toUpperCase"?e.data=e.data.toUpperCase():o.kind==="startsWith"?e.data.startsWith(o.value)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:{startsWith:o.value},message:o.message}),n.dirty()):o.kind==="endsWith"?e.data.endsWith(o.value)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:{endsWith:o.value},message:o.message}),n.dirty()):o.kind==="datetime"?so(o).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:"datetime",message:o.message}),n.dirty()):o.kind==="date"?bd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?fd(o).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:"time",message:o.message}),n.dirty()):o.kind==="duration"?id.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"duration",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?yd(e.data,o.version)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"ip",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="jwt"?vd(e.data,o.alg)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"jwt",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="cidr"?_d(e.data,o.version)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"cidr",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="base64"?md.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"base64",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?hd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"base64url",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):U.util.assertNever(o);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(r=>e.test(r),{validation:t,code:M.ZodIssueCode.invalid_string,...Y.errorUtil.errToObj(n)})}_addCheck(e){return new Re({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Y.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Y.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Y.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Y.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Y.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Y.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Y.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Y.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Y.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Y.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Y.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Y.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Y.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,...Y.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,...Y.errorUtil.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Y.errorUtil.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Y.errorUtil.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...Y.errorUtil.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Y.errorUtil.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Y.errorUtil.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Y.errorUtil.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Y.errorUtil.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Y.errorUtil.errToObj(t)})}nonempty(e){return this.min(1,Y.errorUtil.errToObj(e))}trim(){return new Re({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Re({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Re({...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}}h.ZodString=Re,Re.create=a=>new Re({checks:[],typeName:ae.ZodString,coerce:(a==null?void 0:a.coerce)??!1,...re(a)});function Sd(a,e){const t=(a.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,r=t>n?t:n,o=Number.parseInt(a.toFixed(r).replace(".","")),i=Number.parseInt(e.toFixed(r).replace(".",""));return o%i/10**r}class Sa extends ie{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)!==U.ZodParsedType.number){const o=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(o,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.number,received:o.parsedType}),f.INVALID}let n;const r=new f.ParseStatus;for(const o of this._def.checks)o.kind==="int"?U.util.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:"integer",received:"float",message:o.message}),r.dirty()):o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),r.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),r.dirty()):o.kind==="multipleOf"?Sd(e.data,o.value)!==0&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.not_multiple_of,multipleOf:o.value,message:o.message}),r.dirty()):o.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.not_finite,message:o.message}),r.dirty()):U.util.assertNever(o);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Y.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Y.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Y.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Y.errorUtil.toString(t))}setLimit(e,t,n,r){return new Sa({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Y.errorUtil.toString(r)}]})}_addCheck(e){return new Sa({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Y.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Y.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Y.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Y.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Y.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Y.errorUtil.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Y.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Y.errorUtil.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Y.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"&&U.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)}}h.ZodNumber=Sa,Sa.create=a=>new Sa({checks:[],typeName:ae.ZodNumber,coerce:(a==null?void 0:a.coerce)||!1,...re(a)});class Ca extends ie{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)!==U.ZodParsedType.bigint)return this._getInvalidInput(e);let n;const r=new f.ParseStatus;for(const o of this._def.checks)o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),r.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),r.dirty()):o.kind==="multipleOf"?e.data%o.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.not_multiple_of,multipleOf:o.value,message:o.message}),r.dirty()):U.util.assertNever(o);return{status:r.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.bigint,received:t.parsedType}),f.INVALID}gte(e,t){return this.setLimit("min",e,!0,Y.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Y.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Y.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Y.errorUtil.toString(t))}setLimit(e,t,n,r){return new Ca({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Y.errorUtil.toString(r)}]})}_addCheck(e){return new Ca({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Y.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Y.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Y.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Y.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Y.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}}h.ZodBigInt=Ca,Ca.create=a=>new Ca({checks:[],typeName:ae.ZodBigInt,coerce:(a==null?void 0:a.coerce)??!1,...re(a)});class _t extends ie{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==U.ZodParsedType.boolean){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.boolean,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}h.ZodBoolean=_t,_t.create=a=>new _t({typeName:ae.ZodBoolean,coerce:(a==null?void 0:a.coerce)||!1,...re(a)});class Fa extends ie{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==U.ZodParsedType.date){const o=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(o,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.date,received:o.parsedType}),f.INVALID}if(Number.isNaN(e.data.getTime())){const o=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(o,{code:M.ZodIssueCode.invalid_date}),f.INVALID}const n=new f.ParseStatus;let r;for(const o of this._def.checks)o.kind==="min"?e.data.getTime()<o.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),n.dirty()):o.kind==="max"?e.data.getTime()>o.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),n.dirty()):U.util.assertNever(o);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Fa({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Y.errorUtil.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Y.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}}h.ZodDate=Fa,Fa.create=a=>new Fa({checks:[],coerce:(a==null?void 0:a.coerce)||!1,typeName:ae.ZodDate,...re(a)});class pn extends ie{_parse(e){if(this._getType(e)!==U.ZodParsedType.symbol){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.symbol,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}h.ZodSymbol=pn,pn.create=a=>new pn({typeName:ae.ZodSymbol,...re(a)});class St extends ie{_parse(e){if(this._getType(e)!==U.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.undefined,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}h.ZodUndefined=St,St.create=a=>new St({typeName:ae.ZodUndefined,...re(a)});class Ct extends ie{_parse(e){if(this._getType(e)!==U.ZodParsedType.null){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.null,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}h.ZodNull=Ct,Ct.create=a=>new Ct({typeName:ae.ZodNull,...re(a)});class Ka extends ie{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,f.OK)(e.data)}}h.ZodAny=Ka,Ka.create=a=>new Ka({typeName:ae.ZodAny,...re(a)});class Ma extends ie{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,f.OK)(e.data)}}h.ZodUnknown=Ma,Ma.create=a=>new Ma({typeName:ae.ZodUnknown,...re(a)});class ca extends ie{_parse(e){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.never,received:t.parsedType}),f.INVALID}}h.ZodNever=ca,ca.create=a=>new ca({typeName:ae.ZodNever,...re(a)});class gn extends ie{_parse(e){if(this._getType(e)!==U.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.void,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}h.ZodVoid=gn,gn.create=a=>new gn({typeName:ae.ZodVoid,...re(a)});class He extends ie{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==U.ZodParsedType.array)return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.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?M.ZodIssueCode.too_big:M.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:M.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:M.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 ra(t,i,t.path,l)))).then(i=>f.ParseStatus.mergeArray(n,i));const o=[...t.data].map((i,l)=>r.type._parseSync(new ra(t,i,t.path,l)));return f.ParseStatus.mergeArray(n,o)}get element(){return this._def.type}min(e,t){return new He({...this._def,minLength:{value:e,message:Y.errorUtil.toString(t)}})}max(e,t){return new He({...this._def,maxLength:{value:e,message:Y.errorUtil.toString(t)}})}length(e,t){return new He({...this._def,exactLength:{value:e,message:Y.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}h.ZodArray=He,He.create=(a,e)=>new He({type:a,minLength:null,maxLength:null,exactLength:null,typeName:ae.ZodArray,...re(e)});function $a(a){if(a instanceof Te){const e={};for(const t in a.shape){const n=a.shape[t];e[t]=oa.create($a(n))}return new Te({...a._def,shape:()=>e})}else return a instanceof He?new He({...a._def,type:$a(a.element)}):a instanceof oa?oa.create($a(a.unwrap())):a instanceof ka?ka.create($a(a.unwrap())):a instanceof sa?sa.create(a.items.map(e=>$a(e))):a}class Te extends ie{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=U.util.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==U.ZodParsedType.object){const c=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(c,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.object,received:c.parsedType}),f.INVALID}const{status:n,ctx:r}=this._processInputParams(e),{shape:o,keys:i}=this._getCached(),l=[];if(!(this._def.catchall instanceof ca&&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=o[c],p=r.data[c];d.push({key:{status:"valid",value:c},value:u._parse(new ra(r,p,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof ca){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:M.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 ra(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,g=await u.value;c.push({key:p,value:g,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 Y.errorUtil.errToObj,new Te({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var o,i;const r=((i=(o=this._def).errorMap)==null?void 0:i.call(o,t,n).message)??n.defaultError;return t.code==="unrecognized_keys"?{message:Y.errorUtil.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new Te({...this._def,unknownKeys:"strip"})}passthrough(){return new Te({...this._def,unknownKeys:"passthrough"})}extend(e){return new Te({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Te({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:ae.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Te({...this._def,catchall:e})}pick(e){const t={};for(const n of U.util.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new Te({...this._def,shape:()=>t})}omit(e){const t={};for(const n of U.util.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new Te({...this._def,shape:()=>t})}deepPartial(){return $a(this)}partial(e){const t={};for(const n of U.util.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new Te({...this._def,shape:()=>t})}required(e){const t={};for(const n of U.util.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let o=this.shape[n];for(;o instanceof oa;)o=o._def.innerType;t[n]=o}return new Te({...this._def,shape:()=>t})}keyof(){return oo(U.util.objectKeys(this.shape))}}h.ZodObject=Te,Te.create=(a,e)=>new Te({shape:()=>a,unknownKeys:"strip",catchall:ca.create(),typeName:ae.ZodObject,...re(e)}),Te.strictCreate=(a,e)=>new Te({shape:()=>a,unknownKeys:"strict",catchall:ca.create(),typeName:ae.ZodObject,...re(e)}),Te.lazycreate=(a,e)=>new Te({shape:a,unknownKeys:"strip",catchall:ca.create(),typeName:ae.ZodObject,...re(e)});class Nt extends ie{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function r(o){for(const l of o)if(l.result.status==="valid")return l.result;for(const l of o)if(l.result.status==="dirty")return t.common.issues.push(...l.ctx.common.issues),l.result;const i=o.map(l=>new M.ZodError(l.ctx.common.issues));return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_union,unionErrors:i}),f.INVALID}if(t.common.async)return Promise.all(n.map(async o=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await o._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(r);{let o;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"&&!o&&(o={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(o)return t.common.issues.push(...o.ctx.common.issues),o.result;const l=i.map(d=>new M.ZodError(d));return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_union,unionErrors:l}),f.INVALID}}get options(){return this._def.options}}h.ZodUnion=Nt,Nt.create=(a,e)=>new Nt({options:a,typeName:ae.ZodUnion,...re(e)});const ua=a=>a instanceof Tt?ua(a.schema):a instanceof Ye?ua(a.innerType()):a instanceof It?[a.value]:a instanceof Na?a.options:a instanceof At?U.util.objectValues(a.enum):a instanceof Pt?ua(a._def.innerType):a instanceof St?[void 0]:a instanceof Ct?[null]:a instanceof oa?[void 0,...ua(a.unwrap())]:a instanceof ka?[null,...ua(a.unwrap())]:a instanceof ir||a instanceof Et?ua(a.unwrap()):a instanceof Dt?ua(a._def.innerType):[];class mn extends ie{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==U.ZodParsedType.object)return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.object,received:t.parsedType}),f.INVALID;const n=this.discriminator,r=t.data[n],o=this.optionsMap.get(r);return o?t.common.async?o._parseAsync({data:t.data,path:t.path,parent:t}):o._parseSync({data:t.data,path:t.path,parent:t}):((0,f.addIssueToContext)(t,{code:M.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 o of t){const i=ua(o.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,o)}}return new mn({typeName:ae.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...re(n)})}}h.ZodDiscriminatedUnion=mn;function or(a,e){const t=(0,U.getParsedType)(a),n=(0,U.getParsedType)(e);if(a===e)return{valid:!0,data:a};if(t===U.ZodParsedType.object&&n===U.ZodParsedType.object){const r=U.util.objectKeys(e),o=U.util.objectKeys(a).filter(l=>r.indexOf(l)!==-1),i={...a,...e};for(const l of o){const d=or(a[l],e[l]);if(!d.valid)return{valid:!1};i[l]=d.data}return{valid:!0,data:i}}else if(t===U.ZodParsedType.array&&n===U.ZodParsedType.array){if(a.length!==e.length)return{valid:!1};const r=[];for(let o=0;o<a.length;o++){const i=a[o],l=e[o],d=or(i,l);if(!d.valid)return{valid:!1};r.push(d.data)}return{valid:!0,data:r}}else return t===U.ZodParsedType.date&&n===U.ZodParsedType.date&&+a==+e?{valid:!0,data:a}:{valid:!1}}class kt extends ie{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(o,i)=>{if((0,f.isAborted)(o)||(0,f.isAborted)(i))return f.INVALID;const l=or(o.value,i.value);return l.valid?(((0,f.isDirty)(o)||(0,f.isDirty)(i))&&t.dirty(),{status:t.value,value:l.data}):((0,f.addIssueToContext)(n,{code:M.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(([o,i])=>r(o,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}))}}h.ZodIntersection=kt,kt.create=(a,e,t)=>new kt({left:a,right:e,typeName:ae.ZodIntersection,...re(t)});class sa extends ie{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==U.ZodParsedType.array)return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.array,received:n.parsedType}),f.INVALID;if(n.data.length<this._def.items.length)return(0,f.addIssueToContext)(n,{code:M.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:M.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const o=[...n.data].map((i,l)=>{const d=this._def.items[l]||this._def.rest;return d?d._parse(new ra(n,i,n.path,l)):null}).filter(i=>!!i);return n.common.async?Promise.all(o).then(i=>f.ParseStatus.mergeArray(t,i)):f.ParseStatus.mergeArray(t,o)}get items(){return this._def.items}rest(e){return new sa({...this._def,rest:e})}}h.ZodTuple=sa,sa.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new sa({items:a,typeName:ae.ZodTuple,rest:null,...re(e)})};class wt extends ie{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!==U.ZodParsedType.object)return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.object,received:n.parsedType}),f.INVALID;const r=[],o=this._def.keyType,i=this._def.valueType;for(const l in n.data)r.push({key:o._parse(new ra(n,l,n.path,l)),value:i._parse(new ra(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 ie?new wt({keyType:e,valueType:t,typeName:ae.ZodRecord,...re(n)}):new wt({keyType:Re.create(),valueType:e,typeName:ae.ZodRecord,...re(t)})}}h.ZodRecord=wt;class hn extends ie{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!==U.ZodParsedType.map)return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.map,received:n.parsedType}),f.INVALID;const r=this._def.keyType,o=this._def.valueType,i=[...n.data.entries()].map(([l,d],c)=>({key:r._parse(new ra(n,l,n.path,[c,"key"])),value:o._parse(new ra(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}}}}h.ZodMap=hn,hn.create=(a,e,t)=>new hn({valueType:e,keyType:a,typeName:ae.ZodMap,...re(t)});class Oa extends ie{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==U.ZodParsedType.set)return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.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:M.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:M.ZodIssueCode.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const o=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)=>o._parse(new ra(n,d,n.path,c)));return n.common.async?Promise.all(l).then(d=>i(d)):i(l)}min(e,t){return new Oa({...this._def,minSize:{value:e,message:Y.errorUtil.toString(t)}})}max(e,t){return new Oa({...this._def,maxSize:{value:e,message:Y.errorUtil.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}h.ZodSet=Oa,Oa.create=(a,e)=>new Oa({valueType:a,minSize:null,maxSize:null,typeName:ae.ZodSet,...re(e)});class Ra extends ie{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==U.ZodParsedType.function)return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.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,un.getErrorMap)(),un.defaultErrorMap].filter(c=>!!c),issueData:{code:M.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,un.getErrorMap)(),un.defaultErrorMap].filter(c=>!!c),issueData:{code:M.ZodIssueCode.invalid_return_type,returnTypeError:d}})}const o={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof Ha){const l=this;return(0,f.OK)(async function(...d){const c=new M.ZodError([]),u=await l._def.args.parseAsync(d,o).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,o).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,o);if(!c.success)throw new M.ZodError([n(d,c.error)]);const u=Reflect.apply(i,this,c.data),p=l._def.returns.safeParse(u,o);if(!p.success)throw new M.ZodError([r(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Ra({...this._def,args:sa.create(e).rest(Ma.create())})}returns(e){return new Ra({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Ra({args:e||sa.create([]).rest(Ma.create()),returns:t||Ma.create(),typeName:ae.ZodFunction,...re(n)})}}h.ZodFunction=Ra;class Tt extends ie{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})}}h.ZodLazy=Tt,Tt.create=(a,e)=>new Tt({getter:a,typeName:ae.ZodLazy,...re(e)});class It extends ie{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{received:t.data,code:M.ZodIssueCode.invalid_literal,expected:this._def.value}),f.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}}h.ZodLiteral=It,It.create=(a,e)=>new It({value:a,typeName:ae.ZodLiteral,...re(e)});function oo(a,e){return new Na({values:a,typeName:ae.ZodEnum,...re(e)})}class Na extends ie{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,f.addIssueToContext)(t,{expected:U.util.joinValues(n),received:t.parsedType,code:M.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:M.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 Na.create(e,{...this._def,...t})}exclude(e,t=this._def){return Na.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}h.ZodEnum=Na,Na.create=oo;class At extends ie{_parse(e){const t=U.util.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==U.ZodParsedType.string&&n.parsedType!==U.ZodParsedType.number){const r=U.util.objectValues(t);return(0,f.addIssueToContext)(n,{expected:U.util.joinValues(r),received:n.parsedType,code:M.ZodIssueCode.invalid_type}),f.INVALID}if(this._cache||(this._cache=new Set(U.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=U.util.objectValues(t);return(0,f.addIssueToContext)(n,{received:n.data,code:M.ZodIssueCode.invalid_enum_value,options:r}),f.INVALID}return(0,f.OK)(e.data)}get enum(){return this._def.values}}h.ZodNativeEnum=At,At.create=(a,e)=>new At({values:a,typeName:ae.ZodNativeEnum,...re(e)});class Ha extends ie{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==U.ZodParsedType.promise&&t.common.async===!1)return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.promise,received:t.parsedType}),f.INVALID;const n=t.parsedType===U.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})))}}h.ZodPromise=Ha,Ha.create=(a,e)=>new Ha({type:a,typeName:ae.ZodPromise,...re(e)});class Ye extends ie{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ae.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,o={addIssue:i=>{(0,f.addIssueToContext)(n,i),i.fatal?t.abort():t.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),r.type==="preprocess"){const i=r.transform(n.data,o);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,o);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,o);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,o)).then(l=>({status:t.value,value:l})):f.INVALID);U.util.assertNever(r)}}h.ZodEffects=Ye,h.ZodTransformer=Ye,Ye.create=(a,e,t)=>new Ye({schema:a,typeName:ae.ZodEffects,effect:e,...re(t)}),Ye.createWithPreprocess=(a,e,t)=>new Ye({schema:e,effect:{type:"preprocess",transform:a},typeName:ae.ZodEffects,...re(t)});class oa extends ie{_parse(e){return this._getType(e)===U.ZodParsedType.undefined?(0,f.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}h.ZodOptional=oa,oa.create=(a,e)=>new oa({innerType:a,typeName:ae.ZodOptional,...re(e)});class ka extends ie{_parse(e){return this._getType(e)===U.ZodParsedType.null?(0,f.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}h.ZodNullable=ka,ka.create=(a,e)=>new ka({innerType:a,typeName:ae.ZodNullable,...re(e)});class Pt extends ie{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===U.ZodParsedType.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}h.ZodDefault=Pt,Pt.create=(a,e)=>new Pt({innerType:a,typeName:ae.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...re(e)});class Dt extends ie{_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(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new M.ZodError(n.common.issues)},input:n.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new M.ZodError(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}h.ZodCatch=Dt,Dt.create=(a,e)=>new Dt({innerType:a,typeName:ae.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...re(e)});class bn extends ie{_parse(e){if(this._getType(e)!==U.ZodParsedType.nan){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.nan,received:n.parsedType}),f.INVALID}return{status:"valid",value:e.data}}}h.ZodNaN=bn,bn.create=a=>new bn({typeName:ae.ZodNaN,...re(a)}),h.BRAND=Symbol("zod_brand");class ir extends ie{_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}}h.ZodBranded=ir;class xt extends ie{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const o=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?f.INVALID:o.status==="dirty"?(t.dirty(),(0,f.DIRTY)(o.value)):this._def.out._parseAsync({data:o.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 xt({in:e,out:t,typeName:ae.ZodPipeline})}}h.ZodPipeline=xt;class Et extends ie{_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}}h.ZodReadonly=Et,Et.create=(a,e)=>new Et({innerType:a,typeName:ae.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?Ka.create().superRefine((n,r)=>{const o=a(n);if(o instanceof Promise)return o.then(i=>{if(!i){const l=io(e,n),d=l.fatal??t??!0;r.addIssue({code:"custom",...l,fatal:d})}});if(!o){const i=io(e,n),l=i.fatal??t??!0;r.addIssue({code:"custom",...i,fatal:l})}}):Ka.create()}h.late={object:Te.lazycreate};var ae;(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"})(ae||(h.ZodFirstPartyTypeKind=ae={}));const Cd=(a,e={message:`Input not instance of ${a.name}`})=>lo(t=>t instanceof a,e);h.instanceof=Cd;const co=Re.create;h.string=co;const uo=Sa.create;h.number=uo;const Nd=bn.create;h.nan=Nd;const kd=Ca.create;h.bigint=kd;const po=_t.create;h.boolean=po;const wd=Fa.create;h.date=wd;const Td=pn.create;h.symbol=Td;const Id=St.create;h.undefined=Id;const Ad=Ct.create;h.null=Ad;const Pd=Ka.create;h.any=Pd;const Dd=Ma.create;h.unknown=Dd;const xd=ca.create;h.never=xd;const Ed=gn.create;h.void=Ed;const Ld=He.create;h.array=Ld;const Fd=Te.create;h.object=Fd;const Md=Te.strictCreate;h.strictObject=Md;const Od=Nt.create;h.union=Od;const Ud=mn.create;h.discriminatedUnion=Ud;const Bd=kt.create;h.intersection=Bd;const zd=sa.create;h.tuple=zd;const Vd=wt.create;h.record=Vd;const jd=hn.create;h.map=jd;const qd=Oa.create;h.set=qd;const Zd=Ra.create;h.function=Zd;const Wd=Tt.create;h.lazy=Wd;const Gd=It.create;h.literal=Gd;const Kd=Na.create;h.enum=Kd;const $d=At.create;h.nativeEnum=$d;const Rd=Ha.create;h.promise=Rd;const go=Ye.create;h.effect=go,h.transformer=go;const Hd=oa.create;h.optional=Hd;const Yd=ka.create;h.nullable=Yd;const Jd=Ye.createWithPreprocess;h.preprocess=Jd;const Qd=xt.create;h.pipeline=Qd;const Xd=()=>co().optional();h.ostring=Xd;const ec=()=>uo().optional();h.onumber=ec;const ac=()=>po().optional();h.oboolean=ac,h.coerce={string:a=>Re.create({...a,coerce:!0}),number:a=>Sa.create({...a,coerce:!0}),boolean:a=>_t.create({...a,coerce:!0}),bigint:a=>Ca.create({...a,coerce:!0}),date:a=>Fa.create({...a,coerce:!0})},h.NEVER=f.INVALID,function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var l=Object.getOwnPropertyDescriptor(r,o);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,l)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=me&&me.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(_a,a),t(rr,a),t(eo,a),t(yt,a),t(h,a),t(na,a)}(nr),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 o=n(nr);a.z=o,r(nr,a),a.default=o}(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=tr;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)}(ft),Object.defineProperty(bt,"__esModule",{value:!0}),bt.plans=void 0;const Ie=ln,We=ft,mo={table_rows:0,bot_count:Ie.SMALL_UNLIMITED,collaborator_count:Ie.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};bt.plans={community:{id:"community",name:"Plan - Free",description:"Free plan for trying things out",tierIndex:0,prices:{month:{amount:Ie.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:We.UNKNOWN_STRIPE_ID}},features:{table_rows:1e3,bot_count:3,collaborator_count:3,file_storage:100*Ie.MB,vector_db_storage:100*Ie.MB,saved_versions:3,indexed_file_count:1e3,incoming_messages_events:100*Ie.MESSAGES_PER_CONVERSATION,ai_spend:100*Ie.AI_SPEND_PER_CONVERSATION,conversation_sessions:100},providerProductId:We.UNKNOWN_STRIPE_ID},plus:{id:"plus",name:"Plan - Plus",description:"For growing businesses",tierIndex:1,prices:{month:{amount:189,currency:"usd",interval:"month",providerPriceId:We.UNKNOWN_STRIPE_ID},year:{amount:150*Ie.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:We.UNKNOWN_STRIPE_ID}},features:{table_rows:1e5,bot_count:Ie.SMALL_UNLIMITED,collaborator_count:3,file_storage:10*Ie.GB,vector_db_storage:1*Ie.GB,saved_versions:50,indexed_file_count:2e3,incoming_messages_events:250*Ie.MESSAGES_PER_CONVERSATION,ai_spend:250*Ie.AI_SPEND_PER_CONVERSATION,conversation_sessions:250},providerProductId:We.UNKNOWN_STRIPE_ID},team:{id:"team",name:"Plan - Team",description:"For small teams",tierIndex:2,prices:{month:{amount:939,currency:"usd",interval:"month",providerPriceId:We.UNKNOWN_STRIPE_ID},year:{amount:750*Ie.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:We.UNKNOWN_STRIPE_ID}},features:{table_rows:5e5,bot_count:Ie.SMALL_UNLIMITED,collaborator_count:Ie.SMALL_UNLIMITED,file_storage:50*Ie.GB,vector_db_storage:5*Ie.GB,saved_versions:100,indexed_file_count:Ie.BIG_UNLIMITED,incoming_messages_events:1500*Ie.MESSAGES_PER_CONVERSATION,ai_spend:1500*Ie.AI_SPEND_PER_CONVERSATION,conversation_sessions:1500},providerProductId:We.UNKNOWN_STRIPE_ID},enterprise:{id:"enterprise",name:"Plan - Enterprise",description:"Enterprise license subscription",tierIndex:3,prices:{month:{amount:Ie.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:We.UNKNOWN_STRIPE_ID}},features:mo,providerProductId:We.UNKNOWN_STRIPE_ID},managed:{id:"managed",name:"Plan - Managed",description:"Managed license subscription",tierIndex:4,prices:{month:{amount:Ie.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:We.UNKNOWN_STRIPE_ID}},features:mo,providerProductId:We.UNKNOWN_STRIPE_ID}};var Lt={};Object.defineProperty(Lt,"__esModule",{value:!0}),Lt.addons=void 0;const Ya=ln,Ja=ft,ho=(a,e=["community","plus","team","enterprise","managed"])=>e.map(t=>({[t]:{amount:a,currency:"usd",interval:"month",providerPriceId:Ja.UNKNOWN_STRIPE_ID}})).reduce((t,n)=>({...t,...n}),{});Lt.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:Ja.UNKNOWN_STRIPE_ID},team:{amount:50,currency:"usd",interval:"month",providerPriceId:Ja.UNKNOWN_STRIPE_ID},enterprise:{amount:Ya.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ja.UNKNOWN_STRIPE_ID}},increments:{conversation_sessions:100,ai_spend:100*Ya.AI_SPEND_PER_CONVERSATION,incoming_messages_events:100*Ya.MESSAGES_PER_CONVERSATION},providerProductId:Ja.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:{...ho(40,["plus","team"]),...ho(Ya.FREE_PRICE,["enterprise","managed"])},increments:{table_rows:1e5,vector_db_storage:1*Ya.GB,file_storage:10*Ya.GB},providerProductId:Ja.UNKNOWN_STRIPE_ID}};var Ft={};Object.defineProperty(Ft,"__esModule",{value:!0}),Ft.meters=void 0;const Qa=ft;Ft.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:Qa.UNKNOWN_STRIPE_ID}},meterType:"creditGrant",providerMeterId:Qa.UNKNOWN_STRIPE_ID,providerProductId:Qa.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:Qa.UNKNOWN_STRIPE_ID}},meterType:"payAsYouGo",providerMeterId:Qa.UNKNOWN_STRIPE_ID,providerProductId:Qa.UNKNOWN_STRIPE_ID}};var bo={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingDefinitions=a.billingConfig=void 0;const e=bt,t=Lt,n=Ft;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=me&&me.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var l=Object.getOwnPropertyDescriptor(r,o);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,l)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=me&&me.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(bt,a),t(Lt,a),t(Ft,a),t(ft,a),t(bo,a)}(Hs),function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var l=Object.getOwnPropertyDescriptor(r,o);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,l)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=me&&me.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(tr,a),t(Hs,a),t(ln,a)}(Rs),function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var l=Object.getOwnPropertyDescriptor(r,o);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,l)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=me&&me.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(nn,a),t(rn,a),t(Ga,a),t($s,a),t(sn,a),t(Ze,a),t(on,a),t(Rs,a)}(ar);const tc={too_expensive:"cancelSurveyReasonTooExpensive",not_using_enough:"cancelSurveyReasonNotUsingEnough",missing_feature:"cancelSurveyReasonMissingFeature",switched_tool:"cancelSurveyReasonSwitchedTool",technical_issues:"cancelSurveyReasonTechnicalIssues",support_expectations:"cancelSurveyReasonSupportExpectations",temporary_need:"cancelSurveyReasonTemporaryNeed"},fo=({open:a,onOpenChange:e,planId:t,onConfirm:n,loading:r=!1,planFeatures:o={}})=>{var E,ce;const{t:i}=pe(),{locale:l,analytics:d}=X(),{data:c}=Ue(),{data:u}=Qe(),{data:p}=Fe({enabled:a}),[g,m]=T.useState("confirm"),[v,y]=T.useState(null),[C,N]=T.useState(""),_=T.useId(),I=p==null?void 0:p.plan.current,b=c==null?void 0:c.find(B=>B.id===(I==null?void 0:I.planId)),A=(I==null?void 0:I.interval)??"month",S=b?ye(b):"community",D=b?be(b.name):"",w=(u??[]).flatMap(B=>{var H;const F=((H=p==null?void 0:p.addons[B.id])==null?void 0:H.current.quantity)??0;return F>0?[{addon:B,quantity:F}]:[]}),z=((E=b==null?void 0:b.prices[A])==null?void 0:E.currency)??"usd",x=(((ce=b==null?void 0:b.prices[A])==null?void 0:ce.amount)??0)+w.reduce((B,{addon:F,quantity:H})=>{var V;return B+H*(b&&((V=dt(F,b,A))==null?void 0:V.amount)||0)},0),L=b==null?void 0:b.features.conversation_sessions,Z=b==null?void 0:b.features.ai_spend,j=[...L!==void 0?[`${he(L)} ${i("conversationsPerMonth")}`]:[],...(o[S]??ut[S]).map(B=>{if(B==="AI usage included"&&Z!==void 0)return i("planFeatureAiUsageIncluded",{amount:ne(Z/qe,z,0)});const F=ct[B];return F!==void 0?i(F.label):B})],ee=I==null?void 0:I.periodEnd,R=c==null?void 0:c.find(B=>B.id===t),O={plan_name:R?be(R.name):void 0,current_plan_name:b?be(b.name):void 0},q=()=>{d.capture(we.DOWNGRADE_SURVEY_VIEWED,O),m("feedback")},W=()=>{if(!v||!I)return;const B=C.trim();d.capture(we.DOWNGRADE_SURVEY_SUBMITTED,{reason:v,has_comment:B.length>0,comment_length:B.length}),n({reason:v,comment:B||void 0,previousPlanId:I.planId,planId:t})},J=()=>e(!1);return s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":i(g==="confirm"?"cancelSurveyConfirmTitle":"cancelSurveyFeedbackTitle"),className:"bpb-scope",children:g==="confirm"?s.jsxs("div",{className:"bpb-cancel-survey",children:[s.jsxs("header",{className:"bpb-cancel-survey__head",children:[s.jsx("h2",{className:"bpb-cancel-survey__title",children:i("cancelSurveyConfirmTitle")}),s.jsx("p",{className:"bpb-cancel-survey__lede",children:ee?s.jsx(nt,{i18nKey:"cancelSurveyConfirmLede",values:{plan:D,date:je(ee,l)},components:{bold:s.jsx("strong",{})}}):i("cancelSurveyConfirmLedeNoDate",{plan:D})})]}),s.jsxs("div",{className:K("bpb-cancel-survey__plan",`bpb-cancel-survey__plan--${S}`),children:[s.jsxs("div",{children:[s.jsx("span",{className:"bpb-cancel-survey__eyebrow",children:i("cancelSurveyCurrentPlan")}),s.jsx("span",{className:"bpb-cancel-survey__plan-name",children:D})]}),s.jsxs("span",{className:"bpb-cancel-survey__plan-price",children:[ne(x,z,0),A==="year"?"/yr":"/mo"]})]}),s.jsx("ul",{className:"bpb-cancel-survey__losses",children:j.map(B=>s.jsxs("li",{children:[s.jsx(gt,{size:16,className:"bpb-cancel-survey__loss-icon","aria-hidden":!0}),s.jsx("span",{children:B})]},B))}),w.length>0&&s.jsxs("div",{className:"bpb-cancel-survey__addons",children:[s.jsx("span",{className:"bpb-cancel-survey__eyebrow bpb-cancel-survey__eyebrow--muted",children:i("cancelSurveyCurrentAddons")}),w.map(({addon:B,quantity:F})=>{var Q;const H=$e[B.id],V=(((Q=B.increments)==null?void 0:Q.conversation_sessions)??0)*F;return s.jsxs("p",{className:"bpb-cancel-survey__addon",children:[s.jsx("strong",{children:i("cancelSurveyAddonPack",{name:H?i(H):xa(B.name),quantity:F})}),V>0&&s.jsxs("span",{children:[" · ",i("cancelSurveyAddonConversations",{amount:he(V)})]})]},B.id)})]}),s.jsxs("footer",{className:"bpb-cancel-survey__footer",children:[s.jsx(ve,{variant:"outline",size:"lg",onClick:J,children:i("cancelSurveyKeep")}),s.jsx(ve,{variant:"primary",size:"lg",onClick:q,children:i("cancelSurveyContinue")})]})]}):s.jsxs("div",{className:"bpb-cancel-survey",children:[s.jsxs("header",{className:"bpb-cancel-survey__head",children:[s.jsx("h2",{className:"bpb-cancel-survey__title",children:i("cancelSurveyFeedbackTitle")}),s.jsx("p",{className:"bpb-cancel-survey__lede",children:i("cancelSurveyFeedbackLede")})]}),s.jsx("div",{className:"bpb-cancel-survey__reasons",role:"radiogroup",children:ar.CANCELLATION_REASONS.map(B=>s.jsxs("label",{className:"bpb-cancel-survey__reason",children:[s.jsx("input",{type:"radio",name:"bpb-cancel-reason",value:B,checked:v===B,onChange:()=>y(B)}),s.jsx("span",{children:i(tc[B])})]},B))}),s.jsxs("label",{htmlFor:_,className:"bpb-cancel-survey__comment-label",children:[i("cancelSurveyCommentLabel")," ",s.jsx("span",{children:i("cancelSurveyOptional")})]}),s.jsx("textarea",{id:_,className:"bpb-cancel-survey__comment",rows:3,placeholder:i("cancelSurveyCommentPlaceholder"),value:C,onChange:B=>N(B.target.value)}),s.jsxs("footer",{className:"bpb-cancel-survey__footer",children:[s.jsx(ve,{variant:"outline",size:"lg",onClick:J,children:i("cancelSurveyKeep")}),s.jsx(ve,{variant:"primary",size:"lg",disabled:!v,loading:r,onClick:W,children:i("cancelSurveyConfirm")})]})]})})},pa=()=>{const{manageBillingUrl:a}=X(),{t:e}=pe();return s.jsxs("div",{className:"bpb-outdated",children:[s.jsx("h3",{className:"bpb-outdated__title",children:e("outdatedTitle")}),s.jsx("p",{className:"bpb-outdated__text",children:e("outdatedText")}),a&&s.jsxs(ve,{variant:"primary",onClick:()=>window.open(a,"_blank","noopener"),children:[e("outdatedCta"),s.jsx(ht,{size:15})]})]})},yo=({options:a,value:e,onChange:t,className:n,...r})=>s.jsx("div",{role:"radiogroup","aria-label":r["aria-label"],className:K("bpb-segmented",n),children:a.map(o=>{const i=o.value===e;return s.jsxs("button",{type:"button",role:"radio","aria-checked":i,className:K("bpb-segmented__option",i&&"bpb-segmented__option--selected"),onClick:()=>t(o.value),children:[o.label,o.badge&&s.jsx("span",{className:"bpb-segmented__badge",children:o.badge})]},o.value)})}),ue=({width:a,height:e=14,rounded:t=!1,className:n})=>s.jsx("span",{"aria-hidden":!0,className:K("bpb-skeleton",t&&"bpb-skeleton--rounded",n),style:{width:a??"100%",height:e}}),nc="(max-width: 560px)",rc=()=>{};function sc(a){const e=T.useCallback(r=>{if(typeof window>"u")return rc;const o=window.matchMedia(a);return o.addEventListener("change",r),()=>o.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 oc(){return sc(nc)}const Mt=({label:a,children:e})=>s.jsxs("span",{className:"bpb-tooltip",tabIndex:0,role:"note",children:[s.jsx("span",{className:"bpb-tooltip__term",children:a}),s.jsx("span",{className:"bpb-tooltip__bubble",role:"tooltip",children:e})]}),lr=3,ic=({label:a,description:e,Icon:t})=>{const[n,r]=T.useState(!1),o=T.useId();return s.jsxs("li",{className:"bpb-plan-card__feature--expandable",children:[s.jsxs("button",{type:"button",className:"bpb-plan-card__feature-trigger","aria-expanded":n,"aria-controls":o,onClick:()=>r(i=>!i),children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(t,{size:13})}),s.jsx("span",{className:"bpb-plan-card__feature-label",children:a}),s.jsx("span",{className:K("bpb-plan-card__feature-caret",n&&"is-open"),"aria-hidden":!0,children:s.jsx(Ea,{size:14})})]}),n&&s.jsx("p",{id:o,className:"bpb-plan-card__feature-desc",children:e})]})},lc=({features:a,previousPlanName:e,overrides:t,isMobile:n})=>{const{t:r}=pe(),[o,i]=T.useState(!1),d=n&&!o&&a.length>lr?a.slice(0,lr):a;return s.jsxs(s.Fragment,{children:[s.jsxs("ul",{className:K("bpb-plan-card__features",n&&"bpb-plan-card__features--mobile"),children:[e&&s.jsxs("li",{className:"bpb-plan-card__features-lead",children:[s.jsx("span",{className:"bpb-plan-card__feature-chip bpb-plan-card__feature-chip--lead",children:s.jsx(Ms,{size:13})}),s.jsx("span",{children:r("upgradeEverythingIn",{planName:e})})]}),d.map(c=>{const u=tn(c),p=ct[c],g=t==null?void 0:t[c],m=(g==null?void 0:g.label)??(p!==void 0?r(p.label):c),v=(g==null?void 0:g.description)??(p!==void 0?r(p.desc):void 0);return n?v?s.jsx(ic,{label:m,description:v,Icon:u},c):s.jsxs("li",{children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(u,{size:13})}),s.jsx("span",{className:"bpb-plan-card__feature-label",children:m})]},c):s.jsxs("li",{children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(u,{size:13})}),v?s.jsx(Mt,{label:m,children:v}):s.jsx("span",{children:m})]},c)})]}),n&&a.length>lr&&s.jsxs("button",{type:"button",className:"bpb-plan-card__features-toggle",onClick:()=>i(c=>!c),children:[o?r("upgradeShowFewerFeatures"):r("upgradeSeeAllFeatures",{total:a.length}),s.jsx("span",{className:K("bpb-plan-card__feature-caret",o&&"is-open"),"aria-hidden":!0,children:s.jsx(Ea,{size:14})})]})]})};function dc(a,e){const t=a.prices[e];return t||((e==="month"?a.prices.year:a.prices.month)??null)}function cc(a,e){var r,o;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const n=((o=a.prices.year)==null?void 0:o.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}function uc(a){var t,n;let e=0;for(const r of a){const o=(t=r.prices.month)==null?void 0:t.amount,i=(n=r.prices.year)==null?void 0:n.amount;o&&i&&o>0&&(e=Math.max(e,1-i/(o*12)))}return Math.round(e*100)}const vo=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",defaultInterval:r="month",excludePlanIds:o=[],planFeatures:i={},featureDescriptions:l})=>{var se,Ae,fe;const{isOutdatedBilling:d,toast:c,analytics:u}=X(),{t:p}=pe(),{data:g}=Le(),[m,v]=T.useState(r),{data:y,isLoading:C}=Ue(),{data:N}=Qe(),{data:_}=Fe({enabled:a}),{data:I}=In({enabled:a}),b=En(),A=Er(),S=(I==null?void 0:I.planReadonly)??!1,[D,w]=T.useState(null);T.useEffect(()=>{a&&u.capture(we.PLAN_PICKER_VIEWED,{interval:m})},[a,u]);const z=P=>{P!==m&&u.capture(we.PLAN_INTERVAL_TOGGLED,{interval:P}),v(P)},x=_==null?void 0:_.plan.current.interval,L=y==null?void 0:y.find(P=>P.id===(_==null?void 0:_.plan.current.planId)),Z=_?L?ye(L):"community":void 0,j=((se=_==null?void 0:_.plan.next)==null?void 0:se.planId)??null,ee=!!j&&j!==(_==null?void 0:_.plan.current.planId),R=S||Z==="enterprise"||Z==="managed",O=T.useMemo(()=>y?y.filter(P=>ye(P)!=="managed"&&ye(P)!=="enterprise"&&!o.includes(P.id)).sort((P,oe)=>Ia.indexOf(ye(P))-Ia.indexOf(ye(oe))):[],[y,o]),q=T.useMemo(()=>uc(O),[O]),W=oc(),J=T.useMemo(()=>{var le;if(O.length===0)return null;const P=O.find(Ne=>ye(Ne)===n||Ne.id===n),oe=O.find(Ne=>ye(Ne)===Z);return((le=P??oe??O[0])==null?void 0:le.id)??null},[O,n,Z]),[E,ce]=T.useState(void 0),[B,F]=T.useState(a);B!==a&&(F(a),ce(void 0));const H=E===void 0?J:E,V=((fe=(Ae=y==null?void 0:y.find(P=>ye(P)==="enterprise"))==null?void 0:Ae.metadata)==null?void 0:fe.contact_url)??Ln,Q=(P,oe)=>{b.mutate({planId:P.id,interval:m},{onSuccess:()=>{u.capture(we.PLAN_DOWNGRADED,{plan_name:be(P.name),interval:m,previous_plan_name:L?be(L.name):void 0,reason:oe==null?void 0:oe.reason,survey_submitted:!!oe}),oe&&A.mutate(oe),w(null),c({type:"success",message:p("upgradeDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeDowngradeError")})})},Se=P=>{if(ye(P)!=="community"){Q(P);return}u.capture(we.DOWNGRADE_CONFIRM_VIEWED,{plan_name:be(P.name),current_plan_name:L?be(L.name):void 0,interval:m,is_cancellation:!0}),w(P)},Ce=()=>{_&&b.mutate({planId:_.plan.current.planId,interval:_.plan.current.interval},{onSuccess:()=>{u.capture(we.PLAN_DOWNGRADE_CANCELLED,{plan_name:L?be(L.name):_.plan.current.planId}),c({type:"success",message:p("upgradeCancelDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeCancelDowngradeError")})})};return g===!1?null:d?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):s.jsxs(xe,{open:a,onOpenChange:P=>!D&&e(P),size:"xl","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:[s.jsxs("div",{className:"bpb-upgrade",children:[s.jsx("h2",{className:"bpb-upgrade__title",children:p("upgradeDialogTitle")}),s.jsx("div",{className:"bpb-upgrade__toggle",children:s.jsx(yo,{"aria-label":p("dashboardBillingPeriod"),value:m,onChange:z,options:[{value:"month",label:p("upgradeMonthly")},{value:"year",label:p("upgradeAnnual"),badge:q>0?p("upgradeSaveBadge",{savings:q}):void 0}]})}),s.jsxs("div",{className:"bpb-upgrade__grid",children:[C&&[0,1,2].map(P=>s.jsxs("div",{className:"bpb-plan-card","aria-hidden":!0,children:[s.jsx(ue,{width:120,height:22}),s.jsx(ue,{width:90,height:40}),s.jsx(ue,{width:"100%",height:36,rounded:!0}),s.jsx(ue,{width:"100%",height:140})]},P)),O.map((P,oe)=>{var Cn,Nn;const le=ye(P),Ne=dc(P,m),Oe=cc(P,m),ma=(((Cn=P.prices.month)==null?void 0:Cn.amount)??0)<=0,Je=le===Z,et=Je&&(Z==="community"||m===x),_r=le===Z&&Z!=="community"&&m!==x,at=!!j&&P.id===j&&!et,Sr=Z!==void 0&&Ia.indexOf(le)<Ia.indexOf(Z),tt=(le===n||P.id===n)&&!et,ia=Je&&ee?"cancel_downgrade":et?"current":_r?"switch_interval":at?"next":Sr?"downgrade":"upgrade",vn=oe>0?O[oe-1]:void 0,Cr=i[le]??ut[le],Ua=P.features.conversation_sessions,Pe=Qt(N,P,m),Ba=P.features.ai_spend,Bt=Ba!==void 0?p("planFeatureAiUsageIncluded",{amount:ne(Ba/qe,(Ne==null?void 0:Ne.currency)??"usd",1)}):void 0,_n=Ba!==void 0&&Ua?p("planFeatureDescAiUsageIncluded",{rate:ne(Ba/Ua/qe,(Ne==null?void 0:Ne.currency)??"usd",2)}):void 0,Sn={...Object.fromEntries(Object.entries(l??{}).map(([Nr,jo])=>[Nr,{description:jo}])),...Bt!==void 0?{"AI usage included":{label:Bt,description:(l==null?void 0:l["AI usage included"])??_n}}:{}},Be=b.isPending&&(ia==="downgrade"&&((Nn=b.variables)==null?void 0:Nn.planId)===P.id||ia==="cancel_downgrade"),Ge=be(P.name),wa=!W||H===P.id,za=Oe!==null&&Ne?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"bpb-plan-card__currency",children:lt(Ne.currency)}),s.jsx("span",{className:"bpb-plan-card__amount",children:Math.round(Oe)}),s.jsx("span",{className:"bpb-plan-card__per",children:p("upgradePerMonthSuffix",{currency:Ne.currency.toUpperCase()})})]}):s.jsx("span",{className:"bpb-plan-card__amount",children:ne(0,"usd",0)});return s.jsxs("div",{className:K("bpb-plan-card",tt&&"bpb-plan-card--highlighted bpb-glow",W&&"bpb-plan-card--accordion",W&&wa&&"is-expanded"),"data-plan-id":P.id,children:[W?s.jsxs("button",{type:"button",className:"bpb-plan-card__summary","aria-expanded":wa,onClick:()=>ce(wa?null:P.id),children:[s.jsxs("span",{className:"bpb-plan-card__summary-text",children:[s.jsxs("span",{className:"bpb-plan-card__name",children:[Ge,tt&&s.jsx(pt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),s.jsx("span",{className:"bpb-plan-card__price",children:za})]}),s.jsx("span",{className:K("bpb-plan-card__feature-caret",wa&&"is-open"),"aria-hidden":!0,children:s.jsx(Ea,{size:16})})]}):s.jsxs("div",{className:"bpb-plan-card__header",children:[s.jsxs("h3",{className:"bpb-plan-card__name",children:[Ge,tt&&s.jsx(pt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),s.jsx("p",{className:"bpb-plan-card__tagline",children:p(Fs[ye(P)])}),s.jsx("div",{className:"bpb-plan-card__price",children:za})]}),wa&&s.jsxs(s.Fragment,{children:[W&&s.jsx("p",{className:"bpb-plan-card__tagline",children:p(Fs[ye(P)])}),Ua!==void 0&&s.jsxs("div",{className:"bpb-plan-card__allowance",children:[s.jsxs("div",{className:"bpb-plan-card__metric",children:[s.jsx("span",{className:"bpb-plan-card__metric-value",children:he(Ua)}),s.jsx("span",{className:"bpb-plan-card__metric-unit",children:p(ma?"conversationsUnit":"conversationsPerMonth")})]}),Pe?s.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeThenPer",{price:ne(Pe.amount,Pe.currency,0),packSize:he(Pe.packSize)})}):s.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeNoTopup")})]}),ia==="current"&&s.jsx(ve,{variant:"outline",block:!0,disabled:!0,children:p("upgradeCurrentPlan")}),ia==="next"&&s.jsx(ve,{variant:"outline",block:!0,disabled:!0,children:p("upgradeNextPlan")}),ia==="cancel_downgrade"&&s.jsx(ve,{variant:"primary",block:!0,loading:Be,onClick:Ce,children:p("upgradeCancelDowngrade")}),ia==="downgrade"&&s.jsx(ve,{variant:"outline",block:!0,disabled:R||b.isPending,loading:Be,onClick:()=>Se(P),children:p("upgradeDowngrade")}),ia==="switch_interval"&&s.jsx(ve,{variant:"primary",block:!0,disabled:R||b.isPending,title:R?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(we.PLAN_UPGRADE_INITIATED,{plan_name:be(P.name),interval:m,current_plan_name:L?be(L.name):void 0}),t(P.id,m)},children:p(m==="year"?"upgradeSwitchToAnnual":"upgradeSwitchToMonthly")}),ia==="upgrade"&&s.jsx(ve,{variant:tt?"accent":"primary",block:!0,disabled:R||b.isPending,title:R?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(we.PLAN_UPGRADE_INITIATED,{plan_name:be(P.name),interval:m,current_plan_name:L?be(L.name):void 0}),t(P.id,m)},children:p("upgradeUpgrade")}),s.jsx(lc,{features:Cr,previousPlanName:vn?be(vn.name):void 0,overrides:Sn,isMobile:W})]})]},P.id)})]}),s.jsxs("p",{className:"bpb-upgrade__footer",children:[p("upgradeFooterEnterprise")," ",s.jsx("a",{href:V,target:"_blank",rel:"noopener noreferrer",children:p("upgradeContactUs")})," ",p("upgradeFooterAboutEnterprise")," ",s.jsx("a",{href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:"botpress.com/pricing"}),"."]})]}),D&&s.jsx(fo,{open:a,onOpenChange:P=>!P&&!b.isPending&&w(null),planId:D.id,onConfirm:P=>Q(D,P),loading:b.isPending,planFeatures:i})]})},dr='-apple-system, "ui-sans-serif", "system-ui", "Segoe UI", Helvetica, Arial, sans-serif',cr="14px",_o="10px";function ur(a){return a?{theme:"night",variables:{fontFamily:dr,fontSizeBase:cr,borderRadius:_o,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:dr,fontSizeBase:cr,borderRadius:_o,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 pr(a){return{base:{fontFamily:dr,fontSize:cr,color:a?"#f9f9f9":"#0d0d0d","::placeholder":{color:a?"#9b9b9b":"#8f8f8f"}},invalid:{color:a?"#ff8583":"#e02e2a"}}}const pc={pt:"pt-BR",es:"es-419"};function gr(a){const e=a.split("-")[0]??a;return pc[e]??a}const mr=({onClose:a,onSuccess:e})=>{var D;const{toast:t,locale:n}=X(),{t:r}=pe(),{data:o,isLoading:i}=Fe(),{data:l,isLoading:d}=Ue(),{data:c,isLoading:u}=Qe(),{data:p,isLoading:g}=Ko((D=o==null?void 0:o.pendingUpgrade)==null?void 0:D.invoiceId),m=Lr(),v=Fr(),[y,C]=T.useState(null),N=o==null?void 0:o.pendingUpgrade;if(i||d||u||g)return s.jsxs("div",{className:"bpb-pending-upgrade","aria-busy":"true",children:[s.jsx(ue,{height:20,width:160}),s.jsx(ue,{height:56}),s.jsx(ue,{height:40})]});if(!N)return null;const _=l==null?void 0:l.find(w=>w.id===(o==null?void 0:o.plan.current.planId)),I=N.planId?l==null?void 0:l.find(w=>w.id===N.planId):void 0,b=Object.entries(N.addons).flatMap(([w,z])=>{var Z;const x=c==null?void 0:c.find(j=>j.id===w);if(!x||z<=0)return[];const L=((Z=o==null?void 0:o.addons[w])==null?void 0:Z.current.quantity)??0;return[{addon:x,currentQuantity:L,nextQuantity:z}]}),A=()=>{C(null),m.mutate({invoiceId:N.invoiceId},{onSuccess:()=>{t({type:"success",message:r("pendingUpgradePaySuccess")}),e==null||e(),a==null||a()},onError:w=>{C(w instanceof Error&&w.message?w.message:r("pendingUpgradePayError")),t({type:"error",message:r("pendingUpgradePayError")})}})},S=()=>{v.mutate(void 0,{onSuccess:()=>{t({type:"success",message:r("pendingUpgradeCancelSuccess")}),a==null||a()},onError:()=>t({type:"error",message:r("pendingUpgradeCancelError")})})};return s.jsxs("div",{className:"bpb-pending-upgrade",children:[s.jsx("h2",{className:"bpb-pending-upgrade__title",children:r("pendingUpgradeTitle")}),s.jsx("div",{className:"bpb-pending-upgrade__alert",children:s.jsxs("div",{children:[s.jsx("p",{className:"bpb-pending-upgrade__alert-title",children:r("pendingUpgradeFailedLabel")}),s.jsx("p",{className:"bpb-pending-upgrade__alert-body",children:r("pendingUpgradeSubtitle")})]})}),s.jsx("p",{className:"bpb-pending-upgrade__list-title",children:r("pendingUpgradeItemsLabel")}),s.jsxs("div",{className:"bpb-pending-upgrade__list",children:[I&&s.jsx("div",{className:"bpb-pending-upgrade__row",children:s.jsx("span",{children:r("pendingUpgradePlanChange",{currentPlan:_?be(_.name):r("planBannerNoPlan"),nextPlan:be(I.name)})})}),b.map(({addon:w,currentQuantity:z,nextQuantity:x})=>s.jsx("div",{className:"bpb-pending-upgrade__row",children:s.jsx("span",{children:r("pendingUpgradeAddonChange",{currentQuantity:z,nextQuantity:x,name:$e[w.id]?r($e[w.id]):xa(w.name)})})},w.id))]}),p?s.jsxs("div",{className:"bpb-pending-upgrade__total",children:[s.jsx("span",{children:r("pendingUpgradeAmountDue")}),s.jsx("span",{children:ne(p.amount,p.currency)})]}):s.jsx("p",{className:"bpb-pending-upgrade__error",children:r("pendingUpgradeAmountUnavailable")}),y&&s.jsx("p",{className:"bpb-pending-upgrade__error",children:y}),N.expiresAt&&s.jsx("p",{className:"bpb-pending-upgrade__expires",children:r("pendingUpgradeExpiresOn",{date:Is(N.expiresAt,n)})}),s.jsxs("div",{className:"bpb-pending-upgrade__actions",children:[s.jsx(ve,{variant:"outline",onClick:S,loading:v.isPending,disabled:m.isPending,children:r("pendingUpgradeCancelCta")}),s.jsx(ve,{variant:"primary",onClick:A,loading:m.isPending,disabled:v.isPending||!p,children:r("pendingUpgradePayCta")})]})]})},gc={address:"address",name:"address",taxId:"taxId",payment:"payment"};function So(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 o of t)o.message&&(n[gc[o.scope??""]??"general"]=o.message);return Object.keys(n).length>0?n:{general:(a==null?void 0:a.message)||e}}function hr(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 Co(a){const e=new Date(a);return new Date(e.getUTCFullYear(),e.getUTCMonth()+1,0).toISOString()}function mc(a=new Date){return new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth()+1,1)).toISOString()}const hc=4,bc=({plan:a,interval:e,preview:t,isLoadingPreview:n,isPreviewError:r,canSubscribe:o,isSubmitting:i,submitError:l,onSubscribe:d})=>{var q,W,J,E,ce;const{locale:c}=X(),{t:u}=pe(),{data:p}=Qe(),g=((q=a==null?void 0:a.prices.month)==null?void 0:q.currency)??((W=a==null?void 0:a.prices.year)==null?void 0:W.currency)??"usd",m=a==null?void 0:a.features.conversation_sessions,v=a&&ye(a)==="community"?u("conversationsUnit"):u("conversationsPerMonth"),y=a?Qt(p,a,e):null,C=(t==null?void 0:t.costs.immediate.amountDue)??0,N=(t==null?void 0:t.costs.immediate.accountBalance)??0,_=(t==null?void 0:t.costs.nextCycle.total)??0,I=t!=null&&t.nextBillingDate?As(t.nextBillingDate,1):null,b=I&&!hr(I)?je(I,c):null,A=a?ut[ye(a)].slice(0,hc):[],S=a==null?void 0:a.features.ai_spend,D=S!==void 0?u("planFeatureAiUsageIncluded",{amount:ne(S/qe,g,1)}):void 0,w=a?((J=a.prices[e])==null?void 0:J.amount)??0:0,z=(t==null?void 0:t.costs.immediate.lineItems)??[],x=z.filter(B=>B.type==="discount"),L=z.filter(B=>B.type==="proration_credit"||B.type==="proration_charge").reduce((B,F)=>B+F.amount,0),Z=!!(t!=null&&t.subscription.plan.effectiveDate),j=((E=a==null?void 0:a.prices.month)==null?void 0:E.amount)??0,ee=((ce=a==null?void 0:a.prices.year)==null?void 0:ce.amount)??0,R=e==="year"&&j>0&&ee>0?Math.round(j*12-ee):0,O=Math.round(R/12);return s.jsxs("div",{className:"bpb-summary-wrap",children:[s.jsxs("div",{className:"bpb-summary bpb-glow",children:[s.jsx("h3",{className:"bpb-summary__title",children:a?`${be(a.name)} plan`:s.jsx(ue,{width:140,height:24})}),m!==void 0&&s.jsxs("div",{className:"bpb-summary__metric",children:[s.jsx("span",{className:"bpb-summary__metric-value",children:he(m)}),s.jsx("span",{className:"bpb-summary__metric-unit",children:v}),y&&s.jsx("span",{className:"bpb-summary__metric-pack",children:u("orderThen",{price:ne(y.amount,y.currency,0),packSize:he(y.packSize)})})]}),A.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("p",{className:"bpb-summary__features-label",children:u("orderTopFeatures")}),s.jsx("ul",{className:"bpb-summary__features",children:A.map(B=>{const F=tn(B),H=ct[B],V=B==="AI usage included"?D??(H!==void 0?u(H.label):B):H!==void 0?u(H.label):B;return s.jsxs("li",{children:[s.jsx(F,{size:16,className:"bpb-summary__feature-icon"}),s.jsx("span",{children:V})]},B)})})]}),s.jsx("hr",{className:"bpb-summary__divider"}),n&&s.jsxs("div",{className:"bpb-summary__lines","aria-busy":"true",children:[s.jsx(ue,{height:16}),s.jsx(ue,{height:16}),s.jsx(ue,{height:20})]}),r&&s.jsx("p",{role:"alert",className:"bpb-summary__error",children:u("orderPreviewError")}),t&&!n&&Z&&s.jsxs("div",{className:"bpb-summary__lines",children:[s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:b?u("orderPlanFromDate",{plan:a?be(a.name):"",date:b}):`${a?be(a.name):""} plan`}),s.jsxs("span",{className:"bpb-summary__line-amount",children:[ne(_,g),u(e==="year"?"perYear":"perMonth")]})]}),s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:s.jsx(Mt,{label:u("orderProratedToday"),children:u("orderProratedTodayDesc")})}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(C,g)})]}),s.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[s.jsx("span",{children:u("orderDueToday")}),s.jsx("span",{children:ne(C,g)})]}),L<0&&s.jsx("p",{className:"bpb-summary__addon-note",children:u("orderCreditTowardNext",{amount:ne(Math.abs(L),g)})})]}),t&&!n&&!Z&&s.jsxs("div",{className:"bpb-summary__lines",children:[s.jsxs("div",{className:"bpb-summary__line",children:[s.jsxs("span",{className:"bpb-summary__line-label",children:[a?be(a.name):""," plan (",u(e==="year"?"orderIntervalAnnual":"orderIntervalMonthly"),")"]}),s.jsxs("span",{className:"bpb-summary__line-amount",children:[ne(w,g),u(e==="year"?"perYear":"perMonth")]})]}),x.map((B,F)=>s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:B.description}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(B.amount,g)})]},`${B.id}-${F}`)),L!==0&&s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:s.jsx(Mt,{label:L<0?u("orderCreditUnusedTime"):u("orderAdjustUnusedTime"),children:L<0?u("orderCreditUnusedTimeDesc"):u("orderAdjustUnusedTimeDesc")})}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(L,g)})]}),N!==0&&s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:u("orderAccountCredit")}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(N,g)})]}),s.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[s.jsx("span",{children:u("orderDueToday")}),s.jsx("span",{children:ne(C,g)})]}),L<0&&C===0&&s.jsx("p",{className:"bpb-summary__addon-note",children:u("orderBalanceAsCredit",{amount:ne(Math.abs(L),g)})})]}),R>0&&s.jsxs("div",{className:"bpb-summary__savings",children:[s.jsx(Xt,{size:18,className:"bpb-summary__savings-icon"}),s.jsx("span",{children:u("orderSavingsNote",{monthlySavings:ne(O,g,0),yearlySavings:ne(R,g,0)})})]}),s.jsx(ve,{variant:"primary",size:"lg",block:!0,className:"bpb-summary__cta",disabled:!o,loading:i,onClick:d,children:u(r?"orderPreviewUnavailable":"orderSubscribe")}),l&&s.jsx("p",{role:"alert",className:"bpb-summary__submit-error",children:l})]}),s.jsxs("p",{className:"bpb-summary__fineprint",children:[u(e==="month"?"orderRenewsMonthly":"orderRenewsAnnually"),t&&s.jsxs(s.Fragment,{children:[" ",b?u("orderChargedStarting",{amount:ne(_,g),period:u(e==="month"?"perMonthLong":"perYearLong"),date:b}):u("orderChargedNoDate",{amount:ne(_,g),period:u(e==="month"?"perMonthLong":"perYearLong")})]})," ",u("orderCancelNote")]})]})},fc=["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"],yc={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)"}]},vc=[{type:"eu_vat",label:"EU VAT",description:"European VAT number"}];function No(a){if(!a)return[];const e=a.toUpperCase(),t=yc[e]??[];return fc.includes(e)?[...vc,...t]:t}const fn=({label:a,invalid:e,className:t,id:n,...r})=>a?s.jsxs("label",{className:K("bpb-input",t),children:[s.jsx("span",{className:"bpb-input__label",children:a}),s.jsx("input",{className:K("bpb-input__field bpb-input__field--labeled",e&&"bpb-input__field--invalid"),id:n,"aria-invalid":e||void 0,...r})]}):s.jsx("input",{className:K("bpb-input__field",e&&"bpb-input__field--invalid",t),id:n,"aria-invalid":e||void 0,...r}),br=({label:a,className:e,children:t,...n})=>s.jsxs("label",{className:K("bpb-input",e),children:[a&&s.jsx("span",{className:"bpb-input__label",children:a}),s.jsxs("span",{className:"bpb-input__select-wrap",children:[s.jsx("select",{className:K("bpb-input__field bpb-input__field--select",a&&"bpb-input__field--labeled"),...n,children:t}),s.jsx(Ea,{size:16,className:"bpb-input__chevron"})]})]}),_c=({plan:a,interval:e,onChange:t})=>{const{t:n}=pe(),r=a.prices.month,o=a.prices.year,i=r&&o&&r.amount>0?Math.round((1-o.amount/(r.amount*12))*100):0;return s.jsxs("section",{className:"bpb-checkout__section",children:[s.jsx("h3",{className:"bpb-checkout__section-title",children:n("checkoutPlanDetails")}),s.jsxs("div",{className:"bpb-interval-cards",role:"radiogroup","aria-label":n("billingIntervalLabel"),children:[r&&s.jsxs("button",{type:"button",role:"radio","aria-checked":e==="month",className:K("bpb-interval-card",e==="month"&&"bpb-interval-card--selected"),onClick:()=>t("month"),children:[s.jsx("span",{className:"bpb-interval-card__title",children:n("checkoutMonthlyBilling")}),s.jsxs("span",{className:"bpb-interval-card__price",children:[ne(r.amount,r.currency,0)," ",n("perMonth")]})]}),o&&s.jsxs("button",{type:"button",role:"radio","aria-checked":e==="year",className:K("bpb-interval-card",e==="year"&&"bpb-interval-card--selected"),onClick:()=>t("year"),children:[s.jsxs("span",{className:"bpb-interval-card__title",children:[n("checkoutAnnualBilling"),i>0&&s.jsx(pt,{children:n("checkoutSaveBadge",{savings:i})})]}),s.jsxs("span",{className:"bpb-interval-card__price",children:[ne(o.amount/12,o.currency,0)," ",n("perMonth")]})]})]})]})},ko=({number:a,title:e,onEdit:t})=>{const{t:n}=pe();return s.jsxs("div",{className:"bpb-step__header",children:[t?s.jsxs("button",{type:"button",className:"bpb-step__title bpb-step__title--button",onClick:t,children:[a,". ",e]}):s.jsxs("h3",{className:"bpb-step__title",children:[a,". ",e]}),t&&s.jsx("button",{type:"button",className:"bpb-step__edit",onClick:t,children:n("edit")})]})},Sc=({stepNumber:a,savedCard:e,isDark:t,tab:n,onTabChange:r,onPaymentChange:o,error:i})=>{const{t:l}=pe(),[d,c]=T.useState(!1),u=n==="new"||!e;return s.jsxs("section",{className:"bpb-step",children:[s.jsx(ko,{number:a,title:l("checkoutPaymentMethodTitle")}),e&&s.jsxs("div",{className:"bpb-pay-tabs",role:"tablist","aria-label":l("checkoutPaymentMethodTitle"),children:[s.jsxs("button",{type:"button",role:"tab","aria-selected":n==="saved",className:K("bpb-pay-tab",n==="saved"&&"bpb-pay-tab--selected"),onClick:()=>r("saved"),children:[s.jsx(Hn,{size:16}),l("checkoutSavedCardTab")]}),s.jsxs("button",{type:"button",role:"tab","aria-selected":n==="new",className:K("bpb-pay-tab",n==="new"&&"bpb-pay-tab--selected"),onClick:()=>r("new"),children:[s.jsx(Hn,{size:16}),l("checkoutNewCardTab")]})]}),e&&n==="saved"&&s.jsxs("div",{className:"bpb-saved-card",children:[s.jsx(er,{brand:e.brand}),s.jsxs("span",{className:"bpb-saved-card__number",children:[s.jsx("span",{className:"bpb-saved-card__brand",children:e.brand})," •••• ",e.lastFour]}),s.jsxs("span",{className:"bpb-saved-card__exp",children:[String(e.expMonth).padStart(2,"0"),"/",String(e.expYear).slice(-2)]})]}),u&&s.jsxs("div",{className:"bpb-payment-element",children:[!d&&s.jsx("div",{className:"bpb-payment-element__skeleton",children:s.jsx(ue,{height:48})}),s.jsx("div",{className:K("bpb-card-element",!d&&"bpb-payment-element--hidden"),children:s.jsx(ze.CardElement,{options:{style:pr(t),hidePostalCode:!0},onReady:()=>c(!0),onChange:p=>o(p.complete)})})]}),i&&s.jsx("p",{role:"alert",className:"bpb-step__field-error",children:i})]})},Cc=({stepNumber:a,existingAddress:e,customerName:t,isLoading:n,editing:r,onEdit:o,onCancelEdit:i,onReady:l,onCountryChange:d,country:c,isBusiness:u,onIsBusinessChange:p,businessName:g,onBusinessNameChange:m,taxType:v,onTaxTypeChange:y,taxValue:C,onTaxValueChange:N,addressError:_,taxIdError:I})=>{const{t:b}=pe(),[A,S]=T.useState(!1),D=r||!e,w=No(c),z=w.find(x=>x.type===v);return s.jsxs("section",{className:"bpb-step",children:[s.jsx(ko,{number:a,title:b("checkoutBillingAddressTitle")}),n?s.jsx(ue,{height:72}):D?s.jsxs("div",{className:"bpb-payment-element",children:[!A&&s.jsxs("div",{className:"bpb-payment-element__skeleton",children:[s.jsx(ue,{height:48}),s.jsx(ue,{height:48})]}),s.jsx("div",{className:K(!A&&"bpb-payment-element--hidden"),children:s.jsx(ze.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:x=>{d(x.value.address.country||void 0)}})}),i&&r&&s.jsx("button",{type:"button",className:"bpb-address-cancel",onClick:i,children:b("checkoutCancelEdit")})]}):s.jsxs("div",{className:"bpb-address-card",children:[s.jsxs("div",{className:"bpb-address-card__lines",children:[t&&s.jsx("span",{className:"bpb-address-card__name",children:t}),s.jsxs("span",{children:[e.lineOne,e.lineTwo?`, ${e.lineTwo}`:""]}),s.jsxs("span",{children:[e.city," ",e.state??""," ",e.postalCode," ",e.country]})]}),s.jsx("button",{type:"button",className:"bpb-link-button",onClick:o,children:b("checkoutUpdateAddress")})]}),_&&s.jsx("p",{role:"alert",className:"bpb-step__field-error",children:_}),s.jsxs("label",{className:"bpb-checkbox",children:[s.jsx("input",{type:"checkbox",checked:u,onChange:x=>{p(x.target.checked),x.target.checked&&!v&&w[0]&&y(w[0].type)}}),s.jsx("span",{children:b("checkoutIsBusiness")})]}),u&&s.jsxs("div",{className:"bpb-business-fields",children:[s.jsx("h4",{className:"bpb-step__subtitle",children:b("checkoutBusinessDetails")}),s.jsx(fn,{placeholder:b("checkoutBusinessNamePlaceholder"),value:g,onChange:x=>m(x.target.value),autoComplete:"organization"}),w.length>0?s.jsxs(s.Fragment,{children:[s.jsx(br,{"aria-label":b("checkoutTaxIdTypeLabel"),value:v,onChange:x=>y(x.target.value),children:w.map(x=>s.jsxs("option",{value:x.type,children:[x.label," — ",x.description]},x.type))}),s.jsx(fn,{placeholder:z?z.description:b("checkoutTaxIdNumberPlaceholder"),value:C,onChange:x=>N(x.target.value),inputMode:"text"}),I&&s.jsx("p",{role:"alert",className:"bpb-step__field-error",children:I})]}):s.jsx("p",{className:"bpb-business-fields__note",children:b(c?"checkoutNoTaxRequired":"checkoutSelectCountryForTax")})]})]})},Nc=({planId:a,initialInterval:e,onSuccess:t})=>{var Ua;const n=ze.useStripe(),r=ze.useElements(),{email:o,toast:i,analytics:l,isDark:d}=X(),{t:c}=pe(),[u,p]=T.useState(e),[g,m]=T.useState(null),[v,y]=T.useState(!1),[C,N]=T.useState(!1),[_,I]=T.useState(!1),[b,A]=T.useState(void 0),[S,D]=T.useState(!1),[w,z]=T.useState(""),[x,L]=T.useState(""),[Z,j]=T.useState(""),[ee,R]=T.useState(!1),[O,q]=T.useState({}),[W,J]=T.useState(!1),E=Pn(),{data:ce}=Ue(),{data:B}=Fe(),{data:F,isLoading:H}=wn(),{data:V,isLoading:Q,isError:Se}=Tn(),Ce=ce==null?void 0:ce.find(Pe=>Pe.id===a),se=((Ua=F==null?void 0:F.paymentMethod)==null?void 0:Ua.card)??null,Ae=(V==null?void 0:V.address)??null;T.useEffect(()=>{g===null&&!H&&F!==void 0&&m(se?"saved":"new")},[g,H,F,se]),T.useEffect(()=>{b===void 0&&Ae&&A(Ae.country)},[b,Ae]);const fe=T.useMemo(()=>({plan:{planId:a,interval:u}}),[a,u]),P=kn(fe),oe=Dn(),le=xn(),Ne=En(),Oe=Ce?be(Ce.name):"",ma=g==="new"||!se,Je=C||!Ae,et=ma?v:!!se,_r=Je?_:!0,at=et?"address":"payment";T.useEffect(()=>{l.capture(we.CHECKOUT_STEP_VIEWED,{plan_name:Oe,interval:u,step:at})},[l,at]);const Sr=Pe=>{Pe!==u&&l.capture(we.CHECKOUT_INTERVAL_CHANGED,{plan_name:Oe,interval:Pe}),p(Pe)},tt=Pe=>{l.capture(we.PAYMENT_METHOD_SELECTED,{method:Pe==="saved"?"saved_card":"new_card"}),m(Pe)},ia=Pe=>{y(Pe),J(!1)},vn=!!n&&!!r&&!!Ce&&!Q&&!Se&&!P.isError&&!!P.data&&et&&_r&&!ee,Cr=async()=>{var Ba,Bt,_n,Sn;if(!n||!r||!Ce||Q||Se)return;R(!0),q({});const Pe=(Be,Ge)=>l.capture(we.CHECKOUT_ERROR,{plan_name:Oe,interval:u,step:at,reason:Be,message:Ge});try{if(l.capture(we.PAYMENT_DETAILS_CONFIRMED,{plan_name:Oe,interval:u}),ma&&!W){const la=r.getElement(ze.CardElement);if(!la){q({payment:c("checkoutCardNotReady")}),Pe("card_element_not_ready");return}const{clientSecret:kr}=await E.mutateAsync(),{error:ha,setupIntent:Ke}=await n.confirmCardSetup(kr,{payment_method:{card:la}});if(ha){q({payment:ha.message??c("checkoutPaymentSetupFailed")}),l.capture(we.CHECKOUT_ERROR,{plan_name:Oe,interval:u,step:at,reason:ha.code??"card_setup_failed",decline_code:ha.decline_code,message:ha.message});return}if(!(Ke!=null&&Ke.payment_method)||typeof Ke.payment_method!="string"){q({payment:c("checkoutPaymentMethodMissing")}),Pe("payment_method_missing");return}await oe.mutateAsync({paymentMethodId:Ke.payment_method}),J(!0)}let Be,Ge;if(Je){const la=r.getElement("address");if(la){const{complete:kr,value:ha}=await la.getValue();if(!kr||!ha.address){q({address:c("checkoutAddressIncomplete")}),Pe("address_incomplete");return}const{address:Ke}=ha;Ge=((Ba=ha.name)==null?void 0:Ba.trim())||void 0,Be={lineOne:Ke.line1??"",lineTwo:Ke.line2??void 0,city:Ke.city??"",state:Ke.state??void 0,postalCode:Ke.postal_code??"",country:Ke.country??""}}}const wa=S&&w.trim()||Ge||(V==null?void 0:V.name)||void 0,za=S&&x&&Z.trim()?{type:x,value:Z.trim()}:void 0,Cn=za?[...((V==null?void 0:V.taxIds)??[]).filter(la=>la.type!==za.type||la.value!==za.value),za]:V==null?void 0:V.taxIds;(Be||S||wa!==((V==null?void 0:V.name)??void 0))&&await le.mutateAsync({address:Be??Ae??void 0,name:wa,taxIds:Cn});const Nn=((Bt=P.data)==null?void 0:Bt.costs.immediate.amountDue)??0,Nr=((_n=P.data)==null?void 0:_n.costs.nextCycle.total)??0;if((await Ne.mutateAsync({planId:a,interval:u})).pendingUpgrade)return;l.capture(we.PLAN_UPGRADED,{plan_name:Oe,interval:u,amount_paid:Nn,next_cycle_amount:Nr,previous_plan_name:(Sn=ce==null?void 0:ce.find(la=>la.id===(B==null?void 0:B.plan.current.planId)))==null?void 0:Sn.name.replace("Plan - ",""),previous_interval:B==null?void 0:B.plan.current.interval}),i({type:"success",message:c("checkoutSuccessToast")}),t()}catch(Be){const Ge=Be instanceof Error?Be:void 0;q(So(Ge,c("checkoutGenericError"))),Pe((Ge==null?void 0:Ge.type)??"exception",Be instanceof Error?Be.message:void 0),i({type:"error",message:c("checkoutErrorToast")})}finally{R(!1)}};return s.jsxs("div",{className:"bpb-checkout__columns",children:[s.jsxs("div",{className:"bpb-checkout__main",children:[Ce&&s.jsx(_c,{plan:Ce,interval:u,onChange:Sr}),o&&s.jsxs("section",{className:"bpb-checkout__section",children:[s.jsx("h3",{className:"bpb-checkout__section-title",children:c("checkoutContactInfo")}),s.jsxs("div",{className:"bpb-checkout__static-field",children:[s.jsx("span",{className:"bpb-checkout__static-label",children:c("checkoutEmailLabel")}),s.jsx("span",{children:o})]})]}),s.jsx(Sc,{stepNumber:1,savedCard:se,isDark:d,tab:g??"new",onTabChange:tt,onPaymentChange:ia,error:O.payment}),s.jsx(Cc,{stepNumber:2,existingAddress:Ae,customerName:(V==null?void 0:V.name)??null,isLoading:Q,editing:C,onEdit:()=>N(!0),onCancelEdit:Ae?()=>N(!1):void 0,onReady:()=>I(!0),onCountryChange:A,country:b,isBusiness:S,onIsBusinessChange:D,businessName:w,onBusinessNameChange:z,taxType:x,onTaxTypeChange:L,taxValue:Z,onTaxValueChange:j,addressError:O.address,taxIdError:O.taxId})]}),s.jsx("div",{className:"bpb-checkout__aside",children:s.jsx(bc,{plan:Ce,interval:u,preview:P.data,isLoadingPreview:P.isLoading,isPreviewError:P.isError,canSubscribe:vn,isSubmitting:ee,submitError:O.general??null,onSubscribe:()=>void Cr()})})]})},wo=({open:a,onOpenChange:e,planId:t,interval:n,onBack:r,onSuccess:o})=>{const{stripePromise:i,isDark:l,locale:d,isOutdatedBilling:c}=X(),{t:u}=pe(),{data:p}=Le(),g=zt({enabled:a&&!c}),m=T.useMemo(()=>({appearance:ur(l),locale:gr(d)}),[l,d]);return p===!1?null:c?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":u("checkoutTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):g?s.jsx(xe,{open:a,onOpenChange:e,size:"sm","aria-label":u("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(mr,{onClose:()=>e(!1),onSuccess:o})}):s.jsx(xe,{open:a,onOpenChange:e,size:"xl","aria-label":u("checkoutTitle"),className:"bpb-scope",children:s.jsxs("div",{className:"bpb-checkout",children:[s.jsxs("header",{className:"bpb-checkout__header",children:[r&&s.jsx("button",{type:"button",className:"bpb-checkout__back","aria-label":u("checkoutBackLabel"),onClick:r,children:s.jsx(Yn,{size:18})}),s.jsx("h2",{className:"bpb-checkout__title",children:u("checkoutTitle")})]}),s.jsx(ze.Elements,{stripe:i,options:m,children:s.jsx(Nc,{planId:t,initialInterval:n,onSuccess:()=>{e(!1),o==null||o()}})})]})})},To=({value:a,onChange:e,min:t=0,max:n,step:r=1,className:o,...i})=>{const l=()=>e(Math.max(t,a-r)),d=()=>e(n===void 0?a+r:Math.min(n,a+r));return s.jsxs("div",{className:K("bpb-stepper",o),children:[s.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Decrease ${i["aria-label"]}`,onClick:l,disabled:a<=t,children:s.jsx(Gs,{size:14})}),s.jsx("span",{className:"bpb-stepper__value","aria-label":i["aria-label"],children:a}),s.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Increase ${i["aria-label"]}`,onClick:d,disabled:n!==void 0&&a>=n,children:s.jsx(Jn,{size:14})})]})},Io=({title:a,body:e,ctaLabel:t,onUpgrade:n,onClose:r})=>{const{t:o}=pe();return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-upgrade-gate",children:[s.jsx(Rl,{size:28,className:"bpb-upgrade-gate__icon"}),s.jsxs("div",{className:"bpb-upgrade-gate__text",children:[s.jsx("p",{className:"bpb-upgrade-gate__title",children:a}),s.jsx("p",{className:"bpb-upgrade-gate__body",children:e})]})]}),s.jsx("div",{className:"bpb-upgrade-gate__actions",children:n?s.jsx(ve,{variant:"primary",className:"bpb-upgrade-gate__cta",onClick:n,children:t}):s.jsx(ve,{variant:"outline",onClick:r,children:o("close")})})]})},kc=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=X(),{t:o}=pe(),{data:i}=Le(),l=zt({enabled:a&&!r});return i===!1?null:r?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":o("addonsDialogTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):l?s.jsx(xe,{open:a,onOpenChange:e,size:"sm","aria-label":o("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(mr,{onClose:()=>e(!1),onSuccess:t})}):s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":o("addonsDialogTitle"),className:"bpb-scope",children:s.jsx(wc,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},wc=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var E,ce,B;const{toast:n,locale:r}=X(),{t:o}=pe(),{data:i,refetch:l}=Fe(),{data:d}=Qe(),{data:c}=Ue(),{data:u}=In(),p=xr(),[g,m]=T.useState(null),[v,y]=T.useState(!1),C=c==null?void 0:c.find(F=>F.id===(i==null?void 0:i.plan.current.planId)),N=(i==null?void 0:i.plan.current.interval)??"month",_=(u==null?void 0:u.addonsReadonly)??!1,I=T.useMemo(()=>{var H;if(!i||!d)return null;const F={};for(const V of d){const Q=i.addons[V.id];F[V.id]=((H=Q==null?void 0:Q.next)==null?void 0:H.quantity)??(Q==null?void 0:Q.current.quantity)??0}return F},[i,d]),b=g??I,A=T.useMemo(()=>Object.fromEntries(Object.entries((i==null?void 0:i.addons)??{}).map(([F,H])=>[F,H.current.quantity])),[i]),S=T.useMemo(()=>!d||!C?[]:d.flatMap(F=>{const H=dt(F,C,N);return H?[{addon:F,price:H}]:[]}),[d,C,N]),D=!!b&&!!I&&Object.keys(b).some(F=>b[F]!==I[F]),w=S.reduce((F,{addon:H,price:V})=>F+((b==null?void 0:b[H.id])??0)*V.amount,0),z=T.useMemo(()=>C&&b?{plan:{planId:C.id,interval:N},addons:b}:null,[C,N,b]),x=kn(z??{plan:{planId:"",interval:N}},{enabled:!!z&&D}),L=((E=C==null?void 0:C.prices[N])==null?void 0:E.currency)??"usd",Z=((ce=x.data)==null?void 0:ce.costs.immediate.amountDue)??0,j=(B=x.data)==null?void 0:B.nextBillingDate,ee=j&&!hr(j)?je(j,r):null,R=C&&b?Es(C,d,b,A):[],O=(F,H)=>H==="bytes"?Da(F):he(F),q=(F,H)=>{const V=d==null?void 0:d.find(se=>se.id===F),Q=V==null?void 0:V.increments;if(!Q||H<=0)return null;const Se=Q.conversation_sessions??0;if(Se>0)return o("addonsConvos",{n:he(Se*H)});const Ce=Q.file_storage??0;return Ce>0?Da(Ce*H):null},W=async()=>{if(!b)return;y(!0);const{data:F}=await l();y(!1),!(F!=null&&F.pendingUpgrade)&&p.mutate({addons:b},{onSuccess:H=>{H.pendingUpgrade||(n({type:"success",message:o("addonsUpdateSuccess")}),a(!1),e==null||e())},onError:()=>n({type:"error",message:o("addonsUpdateError")})})},J=!i||!d||!c;return s.jsxs("div",{className:"bpb-manage-addons",children:[s.jsx("h2",{className:"bpb-manage-addons__title",children:o("addonsDialogTitle")}),(J||S.length>0)&&s.jsx("p",{className:"bpb-manage-addons__subtitle",children:o("addonsSubtitleGeneric")}),J?s.jsxs("div",{className:"bpb-manage-addons__loading","aria-busy":"true",children:[s.jsx(ue,{height:56}),s.jsx(ue,{height:56})]}):S.length===0?s.jsx(Io,{title:o("addonsRequirePaidPlanTitle"),body:o("addonsRequirePaidPlanBody"),ctaLabel:o("addonsUpgradeCta"),onUpgrade:t?()=>{a(!1),t()}:void 0,onClose:()=>a(!1)}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"bpb-addons",children:S.map(({addon:F,price:H})=>{var fe,P;const V=((fe=i==null?void 0:i.addons[F.id])==null?void 0:fe.current.quantity)??0,Q=(b==null?void 0:b[F.id])??0,Se=(P=i==null?void 0:i.addons[F.id])==null?void 0:P.next,Ce=Se&&Se.quantity===Q?je(Se.effectiveDate,r):ee,se=Q!==V?Q===0?Ce?o("addonRemovedOnDate",{activeNow:V,date:Ce}):o("addonRemoved",{activeNow:V}):Q<V&&Ce?o("addonChangedOnDate",{activeNow:V,pending:Q,date:Ce}):o("addonChanged",{activeNow:V,pending:Q}):V>0?o("addonActiveOnly",{count:V}):null,Ae=q(F.id,Q);return s.jsxs("div",{className:"bpb-addon-row",children:[s.jsxs("div",{className:"bpb-addon-row__info",children:[s.jsx("span",{className:"bpb-addon-row__name",children:$e[F.id]?o($e[F.id]):xa(F.name)}),s.jsx("span",{className:"bpb-addon-row__description",children:Ds[F.id]?o(Ds[F.id]):F.description}),s.jsxs("span",{className:"bpb-addon-row__price",children:[ne(H.amount,H.currency)," ",o("addonsEach")]}),se&&s.jsx("span",{className:K("bpb-addon-row__status",Q!==V&&"bpb-addon-row__status--changed"),children:se})]}),s.jsxs("div",{className:"bpb-addon-row__control",children:[Ae&&s.jsx("span",{className:"bpb-addon-row__grant",children:Ae}),s.jsx(To,{"aria-label":`${$e[F.id]?o($e[F.id]):xa(F.name)} quantity`,value:Q,onChange:oe=>m({...b??{},[F.id]:oe})})]})]},F.id)})}),D&&R.length>0&&s.jsxs("div",{className:"bpb-manage-addons__limits",children:[s.jsx("p",{className:"bpb-manage-addons__limits-title",children:o("addonsNewLimits")}),R.map(F=>{const H={conversation_sessions:"resourceConversations",table_rows:"resourceTableRows",vector_db_storage:"resourceVectorDb",file_storage:"resourceFileStorage"}[F.key];return s.jsxs("div",{className:"bpb-manage-addons__limit-row",children:[s.jsx("span",{className:"bpb-manage-addons__limit-label",children:H?o(H):F.label}),s.jsxs("span",{className:"bpb-manage-addons__limit-values",children:[s.jsx("span",{className:"bpb-manage-addons__limit-now",children:O(F.now,F.unit)}),s.jsx("span",{className:"bpb-manage-addons__limit-arrow","aria-hidden":!0,children:"→"}),s.jsx("span",{className:"bpb-manage-addons__limit-next",children:O(F.next,F.unit)})]})]},F.key)})]}),s.jsxs("div",{className:"bpb-manage-addons__totals",children:[S.map(({addon:F,price:H})=>{const V=(b==null?void 0:b[F.id])??0;return V<=0?null:s.jsxs("div",{className:"bpb-manage-addons__line",children:[s.jsxs("span",{children:[V,"×"," ",$e[F.id]?o($e[F.id]):xa(F.name)]}),s.jsx("span",{children:ne(H.amount*V,L)})]},F.id)}),s.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--total",children:[s.jsx("span",{children:o("addonsTotalMonthly")}),s.jsxs("span",{children:[ne(w,L),s.jsx("span",{className:"bpb-manage-addons__price-suffix",children:o("perMonth")})]})]}),D&&s.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--due",children:[s.jsx("span",{children:o("addonsDueToday")}),s.jsx("span",{children:x.isLoading?"…":x.isError?"—":ne(Math.max(Z,0),L)})]})]}),D&&!x.isError&&s.jsxs("p",{className:"bpb-manage-addons__note",children:[Z>0?o("addonsChargedNow",{amount:ne(Z,L)}):o("addonsNoChargeToday"),ee?o("addonsRenewalWithDate",{date:ee,amount:ne(w,L),interval:o("perMonth")}):o("addonsRenewalNoDate",{amount:ne(w,L),interval:o("perMonth")})]}),_&&s.jsx("p",{className:"bpb-manage-addons__note",role:"alert",children:o("addonsReadonlyNote")}),s.jsxs("div",{className:"bpb-manage-addons__actions",children:[s.jsx(ve,{variant:"outline",onClick:()=>a(!1),disabled:p.isPending,children:o("cancel")}),s.jsx(ve,{variant:"primary",disabled:!D||_||v,loading:v||p.isPending,onClick:W,children:o("addonsUpdateSubscription")})]})]})]})},Ao=({open:a,onOpenChange:e,onSuccess:t})=>{const{isOutdatedBilling:n}=X(),{t:r}=pe(),{data:o}=Le();return o===!1?null:n?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":r("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):s.jsx(xe,{open:a,onOpenChange:e,size:"sm","aria-label":r("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(mr,{onClose:()=>e(!1),onSuccess:t})})},Tc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=X(),{t:n}=pe(),{data:r}=Le(),o=zt({enabled:!t}),[i,l]=T.useState(!1);return r===!1||t||!o?null:s.jsxs(s.Fragment,{children:[s.jsxs("button",{type:"button",className:K("bpb-pending-upgrade-banner bpb-scope",e),onClick:()=>a?a():l(!0),children:[s.jsx(mt,{size:18,className:"bpb-pending-upgrade-banner__icon"}),s.jsx("span",{className:"bpb-pending-upgrade-banner__text",children:n("pendingUpgradeBannerText")}),s.jsxs("span",{className:"bpb-pending-upgrade-banner__cta",children:[n("pendingUpgradeBannerCta")," ",s.jsx(aa,{size:16})]})]}),!a&&s.jsx(Ao,{open:i,onOpenChange:l})]})},Ic=({open:a,onOpenChange:e})=>{const{isOutdatedBilling:t}=X(),{t:n}=pe(),{data:r}=Le();return r===!1?null:t?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:s.jsx(Ac,{open:a})})},Ac=({open:a})=>{const{locale:e,analytics:t}=X(),{t:n}=pe(),{data:r,isLoading:o,isError:i}=Ir({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 s.jsxs("div",{className:"bpb-invoices",children:[s.jsx("h2",{className:"bpb-invoices__title",children:n("invoicesTitle")}),o?s.jsxs("div",{className:"bpb-invoices__loading","aria-busy":"true",children:[s.jsx(ue,{height:52}),s.jsx(ue,{height:52}),s.jsx(ue,{height:52})]}):i?s.jsx("p",{className:"bpb-invoices__empty",role:"alert",children:n("invoicesLoadError")}):l.length===0?s.jsx("p",{className:"bpb-invoices__empty",children:n("invoicesEmpty")}):s.jsx("ul",{className:"bpb-invoices__list",children:l.map(c=>s.jsxs("li",{className:"bpb-invoices__row",children:[s.jsxs("div",{className:"bpb-invoices__row-main",children:[s.jsx("span",{className:"bpb-invoices__date",children:je(c.createdAt,e)}),s.jsx("span",{className:`bpb-invoices__status bpb-invoices__status--${c.status}`,children:d[c.status]})]}),s.jsxs("div",{className:"bpb-invoices__row-end",children:[s.jsx("span",{className:"bpb-invoices__amount",children:ne(c.amount,c.currency)}),c.pdfUrl?s.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(we.INVOICE_DOWNLOADED,{status:c.status}),children:s.jsx(Xn,{size:16})}):s.jsx("span",{className:"bpb-invoices__download bpb-invoices__download--disabled","aria-hidden":!0,children:s.jsx(Xn,{size:16})})]})]},c.id))})]})},Pc=({open:a,onOpenChange:e,onSuccess:t})=>{var v;const{stripePromise:n,isDark:r,locale:o,isOutdatedBilling:i}=X(),{t:l}=pe(),{data:d}=Le(),c=Pn(),u=(v=c.data)==null?void 0:v.clientSecret,{mutate:p,reset:g}=c;T.useEffect(()=>{a&&!i&&d?p():g()},[a,i,d,p,g]);const m=T.useMemo(()=>u?{clientSecret:u,appearance:ur(r),locale:gr(o)}:null,[u,r,o]);return d===!1?null:i?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:s.jsxs("div",{className:"bpb-payment-dialog",children:[s.jsx("h2",{className:"bpb-payment-dialog__title",children:l("paymentDialogTitle")}),c.isError?s.jsxs("div",{className:"bpb-payment-dialog__error",children:[s.jsx("p",{children:l("paymentSessionError")}),s.jsx(ve,{variant:"outline",onClick:()=>p(),children:l("tryAgain")})]}):!m||!u?s.jsxs("div",{className:"bpb-payment-dialog__loading","aria-busy":"true",children:[s.jsx(ue,{height:48}),s.jsx(ue,{height:120})]}):s.jsx(ze.Elements,{stripe:n,options:m,children:s.jsx(Dc,{clientSecret:u,isDark:r,onSuccess:t})})]})})},Dc=({clientSecret:a,isDark:e,onSuccess:t})=>{var fe;const n=ze.useStripe(),r=ze.useElements(),{toast:o,analytics:i}=X(),{t:l}=pe(),{data:d,isLoading:c}=wn(),{data:u,isLoading:p}=Tn(),g=Dn(),m=xn(),v=((fe=d==null?void 0:d.paymentMethod)==null?void 0:fe.card)??null,y=(u==null?void 0:u.address)??null,C=(u==null?void 0:u.taxIds)??[],[N,_]=T.useState(!1),[I,b]=T.useState(!1),[A,S]=T.useState(!1),[D,w]=T.useState(!1),[z,x]=T.useState(null),[L,Z]=T.useState(!1),[j,ee]=T.useState(!1),[R,O]=T.useState({}),[q,W]=T.useState(y==null?void 0:y.country),[J,E]=T.useState(C.length>0),[ce,B]=T.useState(null),F=ce??C.map(P=>({type:P.type,value:P.value})),H=No(q),V=N||!v,Q=(P,oe)=>B(F.map((le,Ne)=>Ne===P?{...le,...oe}:le)),Se=()=>{var P;return B([...F,{type:((P=H[0])==null?void 0:P.type)??"",value:""}])},Ce=P=>B(F.filter((oe,le)=>le!==P)),se=async()=>{if(!n||!r)return;const P=r.getElement(ze.CardElement);if(P){w(!0),x(null);try{const{error:oe,setupIntent:le}=await n.confirmCardSetup(a,{payment_method:{card:P}});if(oe){x(oe.message??l("paymentCardSaveError"));return}if(!(le!=null&&le.payment_method)||typeof le.payment_method!="string"){x(l("paymentMethodMissing"));return}await g.mutateAsync({paymentMethodId:le.payment_method}),i.capture(we.PAYMENT_METHOD_UPDATED),o({type:"success",message:l("paymentCardUpdated")}),_(!1),t==null||t()}catch(oe){x(oe instanceof Error&&oe.message?oe.message:l("paymentCardGenericError"))}finally{w(!1)}}},Ae=async()=>{if(!r)return;const P=r.getElement("address");if(!P)return;const{complete:oe,value:le}=await P.getValue();if(!oe||!le.address){O({address:l("paymentAddressIncomplete")});return}ee(!0),O({});try{const{address:Ne,name:Oe}=le,ma=F.filter(Je=>!!Je.type&&Je.value.trim()!=="").map(Je=>({type:Je.type,value:Je.value.trim()}));await m.mutateAsync({address:{lineOne:Ne.line1??"",lineTwo:Ne.line2??void 0,city:Ne.city??"",state:Ne.state??void 0,postalCode:Ne.postal_code??"",country:Ne.country??""},name:(Oe==null?void 0:Oe.trim())||void 0,taxIds:ma}),i.capture(we.BILLING_ADDRESS_UPDATED),o({type:"success",message:l("paymentDetailsUpdated")}),t==null||t()}catch(Ne){const Oe=Ne instanceof Error?Ne:void 0,ma=So(Oe,l("paymentAddressError"));O(ma),ma.taxId&&E(!0),o({type:"error",message:l("paymentDetailsUpdateError")})}finally{ee(!1)}};return s.jsxs("div",{className:"bpb-payment-dialog__sections",children:[s.jsxs("section",{className:"bpb-payment-dialog__section",children:[s.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentMethodSection")}),c?s.jsx(ue,{height:56}):V?s.jsxs("div",{className:"bpb-payment-element",children:[!I&&s.jsx(ue,{height:48}),s.jsx("div",{className:I?"bpb-card-element":"bpb-payment-element--hidden",children:s.jsx(ze.CardElement,{options:{style:pr(e),hidePostalCode:!0},onReady:()=>b(!0),onChange:P=>S(P.complete)})}),z&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:z}),s.jsxs("div",{className:"bpb-payment-dialog__section-actions",children:[v&&s.jsx(ve,{variant:"ghost",onClick:()=>_(!1),disabled:D,children:l("cancel")}),s.jsx(ve,{variant:"primary",disabled:!A,loading:D,onClick:se,children:l("paymentSaveCard")})]})]}):s.jsxs("div",{className:"bpb-saved-card",children:[s.jsx(er,{brand:v.brand}),s.jsxs("span",{className:"bpb-saved-card__number",children:[s.jsx("span",{className:"bpb-saved-card__brand",children:v.brand})," •••• ",v.lastFour]}),s.jsxs("span",{className:"bpb-saved-card__exp",children:[String(v.expMonth).padStart(2,"0"),"/",String(v.expYear).slice(-2)]}),s.jsx("button",{type:"button",className:"bpb-link-button",onClick:()=>_(!0),children:l("paymentReplace")})]})]}),s.jsxs("section",{className:"bpb-payment-dialog__section",children:[s.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentBillingAddressSection")}),p?s.jsx(ue,{height:72}):s.jsxs("div",{className:"bpb-payment-element",children:[!L&&s.jsx(ue,{height:120}),s.jsx("div",{className:L?void 0:"bpb-payment-element--hidden",children:s.jsx(ze.AddressElement,{options:{mode:"billing",display:{name:"full"},defaultValues:y?{name:(u==null?void 0:u.name)??void 0,address:{line1:y.lineOne,line2:y.lineTwo,city:y.city,state:y.state,postal_code:y.postalCode,country:y.country}}:void 0},onReady:()=>Z(!0),onChange:P=>W(P.value.address.country||void 0)})}),R.address&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:R.address}),s.jsxs("div",{className:"bpb-tax-section",children:[s.jsxs("button",{type:"button",className:"bpb-tax-toggle","aria-expanded":J,onClick:()=>E(P=>!P),children:[s.jsx(Ea,{size:16,className:K("bpb-tax-toggle__chevron",J&&"bpb-tax-toggle__chevron--open")}),l("paymentTaxIds"),C.length>0&&s.jsx("span",{className:"bpb-tax-toggle__count",children:C.length})]}),J&&s.jsxs("div",{className:"bpb-tax",children:[F.length===0&&s.jsx("p",{className:"bpb-tax__empty",children:l("paymentTaxEmpty")}),F.map((P,oe)=>s.jsxs("div",{className:"bpb-tax__row",children:[s.jsxs(br,{"aria-label":l("paymentTaxIdType"),value:P.type,onChange:le=>Q(oe,{type:le.target.value}),children:[s.jsx("option",{value:"",children:l("paymentTaxSelectType")}),H.map(le=>s.jsx("option",{value:le.type,children:le.label},le.type)),P.type&&!H.some(le=>le.type===P.type)&&s.jsx("option",{value:P.type,children:P.type})]}),s.jsx(fn,{placeholder:l("paymentTaxIdNumber"),value:P.value,onChange:le=>Q(oe,{value:le.target.value})}),s.jsx("button",{type:"button",className:"bpb-tax__remove","aria-label":l("paymentTaxRemove"),onClick:()=>Ce(oe),children:s.jsx(gt,{size:14})})]},oe)),s.jsx("button",{type:"button",className:"bpb-link-button bpb-tax__add",onClick:Se,children:l("paymentTaxAdd")}),R.taxId&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:R.taxId})]})]}),R.general&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:R.general}),s.jsx("div",{className:"bpb-payment-dialog__section-actions",children:s.jsx(ve,{variant:"primary",loading:j,onClick:Ae,children:l("paymentSaveBillingDetails")})})]})]})]})},Po=(a,e,t)=>`bpb-dismissed:${a}:${e}:${t}`,Do=()=>new Date().toLocaleDateString("en-CA");function xo(a,e,t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(Po(a,e,t))===Do()}catch{return!1}}function Eo(a,e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(Po(a,e,t),Do())}catch{}}const Lo=[{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 Xa(a,e){return e==="bytes"?Da(a):e==="nano-usd"?`$${(a/qe).toFixed(2)}`:he(a)}function Fo(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 yn(a){return a>=90?"critical":a>=75?"warning":"normal"}const xc=ar.NON_RESETTING_BILLING_FEATURE_IDS;function Ec(a){return!xc.includes(a)}function Ot(a){return a?Lo.flatMap(({key:e,label:t,unit:n})=>{const r=a[e];if(!r||r.quota<=0)return[];const o=r.usage??0,i=Math.max(0,Math.min(100,o/r.quota*100));return[{key:e,label:t,unit:n,used:o,quota:r.quota,remaining:Math.max(0,r.quota-o),pct:i,resets:Ec(e)}]}).sort((e,t)=>t.pct-e.pct):[]}const Mo="outgrow-free",Lc=.75,Fc=5;function Mc(a,e){return a.prices[e]??(e==="month"?a.prices.year:a.prices.month)??null}function Oc(a,e){var r,o;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const n=((o=a.prices.year)==null?void 0:o.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}const Uc=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",interval:r="year",planFeatures:o={},featureDescriptions:i,period:l})=>{var R,O;const{isOutdatedBilling:d,analytics:c,scope:u}=X(),{t:p}=pe(),{data:g}=Le(),{data:m}=Ue(),{data:v}=Qe(),{data:y}=Fe({enabled:!d}),{data:C}=Ta({period:l,enabled:!d}),N=a!==void 0,[_,I]=T.useState(!1),b=m==null?void 0:m.find(q=>q.id===(y==null?void 0:y.plan.current.planId)),A=y?b?ye(b)==="community":!0:!1,S=T.useMemo(()=>Ot(C).find(q=>q.key==="conversation_sessions"),[C]),D=!N&&!d&&A&&!!S&&S.pct/100>=Lc&&!_&&!xo(Mo,u,"modal"),w=N?!!a:D;T.useEffect(()=>{w&&c.capture(we.PLAN_PICKER_VIEWED,{source:N?"outgrow_free":"outgrow_free_auto",interval:r})},[w,N,c]);const z=()=>{N||(Eo(Mo,u,"modal"),I(!0)),e==null||e(!1)},x=T.useMemo(()=>m?m.filter(q=>{const W=ye(q);return W!=="community"&&W!=="enterprise"&&W!=="managed"}).sort((q,W)=>Ia.indexOf(ye(q))-Ia.indexOf(ye(W))):[],[m]),L=((O=(R=m==null?void 0:m.find(q=>ye(q)==="enterprise"))==null?void 0:R.metadata)==null?void 0:O.contact_url)??Ln;if(g===!1||d||!w)return null;const Z=(S==null?void 0:S.quota)??(b==null?void 0:b.features.conversation_sessions)??100,j=(S==null?void 0:S.used)??0,ee=S&&S.pct>0?Math.min(100,Math.max(5,Math.round(S.pct))):0;return s.jsx(xe,{open:w,onOpenChange:z,size:"xl","aria-label":p("outgrowTitle"),children:s.jsxs("div",{className:"bpb-outgrow",children:[s.jsxs("header",{className:"bpb-outgrow__head",children:[s.jsx("h2",{className:"bpb-outgrow__title",children:p("outgrowTitle")}),s.jsx("p",{className:"bpb-outgrow__lede",children:s.jsx(nt,{i18nKey:"outgrowLede",values:{quota:he(Z)},components:{bold:s.jsx("strong",{})}})})]}),s.jsxs("div",{className:"bpb-outgrow__usage",children:[s.jsx("span",{className:"bpb-outgrow__usage-label",children:p("outgrowSoFar")}),s.jsx("span",{className:"bpb-outgrow__usage-bar",role:"progressbar","aria-valuenow":ee,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("span",{className:"bpb-outgrow__usage-fill",style:{width:`${ee}%`}})}),s.jsx("span",{className:"bpb-outgrow__usage-text",children:s.jsx(nt,{i18nKey:"outgrowUsageText",values:{used:he(j),quota:he(Z)},components:{bold:s.jsx("strong",{})}})})]}),s.jsx("div",{className:"bpb-outgrow__grid",children:x.map((q,W)=>{const J=ye(q),E=Mc(q,r),ce=Oc(q,r),B=J===n||q.id===n,F=q.features.conversation_sessions,H=Qt(v,q,r),V=W>0?x[W-1]:void 0,Q=(o[J]??ut[J]).slice(0,Fc);return s.jsxs("div",{className:K("bpb-plan-card",B&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":q.id,children:[s.jsxs("div",{className:"bpb-plan-card__header",children:[s.jsxs("h3",{className:"bpb-plan-card__name",children:[be(q.name),B&&s.jsx(pt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),s.jsx("div",{className:"bpb-plan-card__price",children:ce!==null&&E?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"bpb-plan-card__currency",children:lt(E.currency)}),s.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(ce)?ce:ce.toFixed(2).replace(/\.00$/,"")}),s.jsx("span",{className:"bpb-plan-card__per",children:p("perMonth")})]}):s.jsxs("span",{className:"bpb-plan-card__amount",children:[lt((E==null?void 0:E.currency)??"usd"),"0"]})})]}),F!==void 0&&s.jsxs("div",{className:"bpb-outgrow__allowance",children:[s.jsxs("p",{className:"bpb-outgrow__allowance-value",children:[s.jsxs("strong",{children:[he(F)," ",p("conversationsUnit")]})," ",p("perMonth")]}),s.jsx("p",{className:"bpb-outgrow__allowance-pack",children:H?p("outgrowThenPer",{symbol:lt(H.currency),amount:H.amount,packSize:he(H.packSize)}):p("outgrowNoTopup")})]}),s.jsxs(ve,{variant:B?"accent":"outline",block:!0,onClick:()=>{c.capture(we.PLAN_UPGRADE_INITIATED,{plan_name:be(q.name),interval:r,source:"outgrow_free"}),t(q.id,r),z()},children:[p("outgrowUpgradeTo",{planName:be(q.name)}),B&&s.jsx(Qn,{size:15})]}),s.jsxs("ul",{className:"bpb-plan-card__features",children:[V&&s.jsx("li",{className:"bpb-outgrow__features-lead",children:p("outgrowEverythingIn",{planName:be(V.name)})}),Q.map(Se=>{const Ce=tn(Se),se=ct[Se],Ae=se!==void 0?p(se.label):Se,fe=(i==null?void 0:i[Se])??(se!==void 0?p(se.desc):void 0);return s.jsxs("li",{children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(Ce,{size:13})}),fe?s.jsx(Mt,{label:Ae,children:fe}):s.jsx("span",{children:Ae})]},Se)})]})]},q.id)})}),s.jsxs("footer",{className:"bpb-outgrow__footer",children:[s.jsxs("span",{children:[p("outgrowNeedCustom")," ",s.jsx("a",{href:L,target:"_blank",rel:"noopener noreferrer",children:p("outgrowTalkToSales")})]}),s.jsxs("a",{className:"bpb-outgrow__compare",href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:[p("outgrowCompareAll"),s.jsx(ht,{size:14})]})]})]})})},ga=(a,e)=>e==="bytes"?Da(a):e==="nano-usd"?`$${(a/qe).toFixed(2)}`:he(a),Bc=(a,e)=>{const t=new Date;return Array.from({length:a},(n,r)=>{const o=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()-r,1));return{value:o.toISOString(),label:o.toLocaleDateString(e,{month:"long",year:"numeric",timeZone:"UTC"})}})},zc=({period:a})=>{const{data:e,isLoading:t,isError:n}=Pr("ai_spend",{period:a}),{t:r}=pe();if(n)return null;if(t)return s.jsx(ue,{height:96});if(!e||e.length===0)return s.jsx("p",{className:"bpb-usage__group-hint",children:r("dashboardNoBotSpend")});const o=Math.max(...e.map(i=>i.value),1);return s.jsx("div",{className:"bpb-usage-bots",children:e.map(i=>s.jsxs("div",{className:"bpb-usage-bot",children:[s.jsxs("div",{className:"bpb-usage-bot__head",children:[s.jsx("span",{className:"bpb-usage-bot__name",title:i.name,children:i.name}),s.jsx("span",{className:"bpb-usage-bot__value",children:ga(i.value,"nano-usd")})]}),s.jsx("div",{className:"bpb-usage-bar",role:"presentation",children:s.jsx("div",{className:"bpb-usage-bar__fill bpb-usage-bar__fill--normal",style:{width:`${i.value>0?Math.max(2,Math.round(i.value/o*100)):0}%`}})})]},i.botId))})},fr=({entry:a,metric:e,planAllowance:t,planName:n,stacked:r})=>{const{t:o}=pe(),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),g=p>0?n?o("dashboardFromPlanWithAddons",{amount:ga(u,e.unit),planName:n,addonAmount:ga(p,e.unit)}):o("dashboardFromPlanGenericWithAddons",{amount:ga(u,e.unit),addonAmount:ga(p,e.unit)}):n?o("dashboardFromPlan",{amount:ga(a.quota,e.unit),planName:n}):o("dashboardFromPlanGeneric",{amount:ga(a.quota,e.unit)});return s.jsxs("div",{className:"bpb-usage-row",children:[s.jsxs("div",{className:K("bpb-usage-row__head",r&&"bpb-usage-row__head--stacked"),children:[s.jsx("span",{className:"bpb-usage-row__label",children:e.label}),s.jsxs("span",{className:"bpb-usage-row__value",children:[s.jsx("span",{className:"bpb-usage-row__used",children:ga(i,e.unit)}),s.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",ga(a.quota,e.unit)]})]})]}),s.jsxs("span",{className:"bpb-usage-tip",tabIndex:0,role:"note","aria-label":g,onMouseMove:m=>{const v=m.currentTarget.getBoundingClientRect(),y=(m.clientX-v.left)/v.width*100;m.currentTarget.style.setProperty("--bpb-tip-x",`${y}%`)},children:[s.jsx("div",{className:"bpb-usage-bar",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("div",{className:K("bpb-usage-bar__fill",`bpb-usage-bar__fill--${c}`),style:{width:`${d}%`}})}),s.jsx("span",{className:"bpb-usage-tip__bubble",role:"tooltip",children:g})]})]})},Vc=({period:a,showPeriodSelector:e=!0,periodMonths:t=12,className:n,onIncreaseLimits:r})=>{var Z;const{isOutdatedBilling:o,locale:i}=X(),{t:l}=pe(),d=T.useMemo(()=>Bc(t,i),[t,i]),[c,u]=T.useState(a??((Z=d[0])==null?void 0:Z.value)??""),p=Dr(),g=Math.max(0,d.findIndex(j=>j.value===c)),m=j=>{const ee=d[g+j];ee&&u(ee.value)},{data:v,isLoading:y,isError:C}=Ta({period:c,enabled:!o}),{data:N}=Fe({enabled:!o}),{data:_}=Ue(),I=_==null?void 0:_.find(j=>j.id===(N==null?void 0:N.plan.current.planId)),b=I?be(I.name):void 0,A=I?ye(I):"community",S=A==="enterprise"||A==="managed",D=j=>I==null?void 0:I.features[j];if(o)return s.jsx("div",{className:K("bpb-usage bpb-scope",n),children:s.jsx(pa,{})});if(y)return s.jsxs("div",{className:K("bpb-usage bpb-scope",n),"aria-busy":"true",children:[s.jsx(ue,{height:80}),s.jsx(ue,{height:140})]});if(C||!v)return s.jsx("div",{className:K("bpb-usage bpb-scope",n),children:s.jsx("p",{className:"bpb-usage__error",role:"alert",children:l("dashboardLoadError")})});const w=v.conversation_sessions,z=v.ai_spend,L=[{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=>v[j.key]);return s.jsxs("div",{className:K("bpb-usage bpb-scope",n),children:[S&&s.jsx("p",{className:"bpb-usage__enterprise-note",children:l("dashboardEnterpriseUsageNotice")}),(e&&d.length>1||r)&&s.jsxs("div",{className:"bpb-usage__header",children:[e&&d.length>1&&s.jsxs("div",{className:"bpb-usage__period",children:[s.jsx("span",{className:"bpb-usage__period-label",children:l("dashboardBillingPeriod")}),s.jsxs("div",{className:"bpb-usage__period-control",children:[s.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardPrevMonth"),onClick:()=>m(1),disabled:g>=d.length-1,children:s.jsx(Yn,{size:15})}),s.jsxs("span",{className:"bpb-usage__period-field",children:[s.jsx(Ks,{size:15,className:"bpb-usage__period-icon"}),s.jsx("select",{className:"bpb-usage__period-select","aria-label":l("dashboardBillingPeriod"),value:c,onChange:j=>u(j.target.value),children:d.map(j=>s.jsx("option",{value:j.value,children:j.label},j.value))}),s.jsx(Ea,{size:14,className:"bpb-usage__period-chevron"})]}),s.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardNextMonth"),onClick:()=>m(-1),disabled:g<=0,children:s.jsx(aa,{size:15})})]})]}),r&&s.jsxs(ve,{onClick:r,children:[s.jsx(Jn,{size:15}),l("dashboardIncreaseLimits")]})]}),w&&s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardConversationsTitle")}),s.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardConversationsHint")}),s.jsx("div",{className:"bpb-usage__card",children:s.jsx(fr,{entry:w,metric:{key:"conversation_sessions",label:l("dashboardConversationsMetric"),unit:"count"},planAllowance:D("conversation_sessions"),planName:b,stacked:!0})})]}),L.length>0&&s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardStorageTitle")}),s.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardStorageHint")}),s.jsx("div",{className:"bpb-usage__card",children:L.map(j=>s.jsx(fr,{entry:v[j.key],metric:j,planAllowance:D(j.key),planName:b},j.key))})]}),z&&s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardAiTitle")}),s.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardAiHint")}),s.jsx("div",{className:"bpb-usage__card",children:s.jsx(fr,{entry:z,metric:{key:"ai_spend",label:l("dashboardAiSpend"),unit:"nano-usd"},stacked:!0})}),p&&s.jsxs("div",{className:"bpb-usage__card bpb-usage__card--bots",children:[s.jsx("span",{className:"bpb-usage__subhead",children:l("dashboardAiByBot")}),s.jsx(zc,{period:c})]})]})]})},Oo="usage-banner",jc=({position:a="inline",threshold:e=.9,onUpgrade:t,dismissible:n=!0,cta:r="upgrade",ctaLabel:o,period:i,className:l})=>{const{isOutdatedBilling:d,analytics:c,scope:u}=X(),{t:p}=pe(),{data:g}=Ta({period:i,enabled:!d}),[m,v]=T.useState({}),[y,C]=T.useState(!1),[N,_]=T.useState(null),I=g?Object.entries(g).map(([L,Z])=>({key:L,pct:Z.quota>0?(Z.usage??0)/Z.quota:0})).filter(L=>L.pct>=e).sort((L,Z)=>Z.pct-L.pct)[0]:void 0,b=!!I&&(m[I.key]||xo(Oo,u,I.key));if(d||!I||b)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")}[I.key]??I.key.replace(/_/g," "),D=Math.min(100,Math.round(I.pct*100)),w=I.pct>=1,z=()=>{c.capture(we.UPGRADE_CTA_CLICKED,{source:"usage_banner",metric:I.key,usage_pct:Math.round(I.pct*100)}),t?t():C(!0)},x=w?"critical":"warning";return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:K("bpb-usage-banner bpb-scope",`bpb-usage-banner--${a}`,`bpb-usage-banner--${x}`,l),role:"alert","aria-live":"polite",children:[s.jsx(mt,{size:18,className:"bpb-usage-banner__icon"}),s.jsx("p",{className:"bpb-usage-banner__text",children:w?p("usageBannerLimitReached",{label:S}):p("usageBannerNearLimit",{pct:D,label:S})}),s.jsxs("div",{className:"bpb-usage-banner__actions",children:[s.jsx(ve,{variant:"primary",size:"sm",onClick:z,children:o??p(r==="manage"?"usageBannerManageCta":"usageBannerDefaultCta")}),n&&s.jsx("button",{type:"button",className:"bpb-usage-banner__dismiss","aria-label":p("usageBannerDismiss"),onClick:()=>{Eo(Oo,u,I.key),v(L=>({...L,[I.key]:!0}))},children:s.jsx(gt,{size:16})})]})]}),!t&&s.jsxs(s.Fragment,{children:[s.jsx(vo,{open:y,onOpenChange:C,onSelectPlan:(L,Z)=>{C(!1),_({planId:L,interval:Z})}}),N&&s.jsx(wo,{open:!!N,onOpenChange:L=>!L&&_(null),planId:N.planId,interval:N.interval,onBack:()=>{_(null),C(!0)},onSuccess:()=>_(null)})]})]})},qc=({Icon:a,title:e,description:t,onClick:n,className:r})=>s.jsxs("button",{type:"button",className:K("bpb-action-card bpb-scope",r),onClick:n,children:[s.jsxs("div",{className:"bpb-action-card__header",children:[s.jsx(a,{size:20}),e]}),s.jsx("p",{className:"bpb-action-card__description",children:t})]}),Ut=({children:a})=>s.jsx("span",{className:"bpb-summary-card__icon","aria-hidden":"true",children:a}),Uo=({isAddons:a,className:e})=>{const{manageBillingUrl:t}=X(),{t:n}=pe(),r=()=>t&&window.open(t,"_blank","noopener");return s.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-scope",a?"bpb-summary-card--addons":"bpb-summary-card--plan",e),onClick:r,disabled:!t,children:[s.jsx(Ut,{children:a?s.jsx(an,{size:22}):s.jsx(en,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n(a?"summaryAddonsEyebrow":"summaryCurrentPlan")}),s.jsx("span",{className:"bpb-summary-card__title",children:n("summaryManagedInDashboard")}),s.jsx("span",{className:"bpb-summary-card__meta",children:n("summaryManagedMeta")})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("open"),s.jsx(ht,{size:15})]})]})]})},Zc=({onManage:a,className:e})=>{var C,N;const{isOutdatedBilling:t}=X(),{t:n}=pe(),{data:r}=Le(),{data:o,isLoading:i}=Fe({enabled:!t}),{data:l,isLoading:d}=Ue();if(r===!1)return null;if(t)return s.jsx(Uo,{isAddons:!1,className:e});if(i||d)return s.jsx(ue,{height:84,rounded:!0,className:K("bpb-scope",e)});const c=o==null?void 0:o.plan.current,u=l==null?void 0:l.find(_=>_.id===(c==null?void 0:c.planId)),p=(c==null?void 0:c.interval)??"month",g=((C=u==null?void 0:u.prices[p])==null?void 0:C.amount)??0,m=((N=u==null?void 0:u.prices[p])==null?void 0:N.currency)??"usd",v=u==null?void 0:u.features.conversation_sessions,y=u?ye(u):"community";return s.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-summary-card--plan bpb-scope",`bpb-summary-card--tier-${y==="managed"?"enterprise":y}`,e),onClick:a,children:[s.jsx(Ut,{children:s.jsx(en,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("summaryCurrentPlan")}),s.jsx("span",{className:"bpb-summary-card__title",children:u?be(u.name):n("summaryNoPlan")}),s.jsxs("span",{className:"bpb-summary-card__meta",children:[g>0?`${ne(g,m,0)}${n(p==="year"?"perYear":"perMonth")}`:n("free"),v!==void 0&&` · ${n("summaryConversationsPerMo",{n:he(v)})}`]})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),s.jsx(aa,{size:16})]})]})]})},Wc=({onManage:a,className:e})=>{var I;const{isOutdatedBilling:t,locale:n}=X(),{t:r}=pe(),{data:o}=Le(),{data:i,isLoading:l}=Fe({enabled:!t}),{data:d,isLoading:c}=Qe(),{data:u}=Ue(),p=i==null?void 0:i.plan.current.planId,g=(i==null?void 0:i.plan.current.interval)??"month";if(o===!1)return null;if(t)return s.jsx(Uo,{isAddons:!0,className:e});if(l||c)return s.jsx(ue,{height:84,rounded:!0,className:K("bpb-scope",e)});const m=(d??[]).flatMap(b=>{var S;const A=((S=i==null?void 0:i.addons[b.id])==null?void 0:S.current.quantity)??0;return A>0?[{name:$e[b.id]?r($e[b.id]):xa(b.name),quantity:A}]:[]}),v=u==null?void 0:u.find(b=>b.id===p),y=v?(d??[]).reduce((b,A)=>{var D;const S=dt(A,v,g);return b+(((D=i==null?void 0:i.addons[A.id])==null?void 0:D.current.quantity)??0)*((S==null?void 0:S.amount)??0)},0):0,C=((I=v==null?void 0:v.prices[g])==null?void 0:I.currency)??"usd",N=je(mc(),n),_=!!(i!=null&&i.pendingUpgrade);return s.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-summary-card--addons bpb-scope",m.length>0&&"bpb-summary-card--active",e),onClick:a,disabled:_,title:_?r("pendingUpgradeBlocksManageTooltip"):void 0,children:[s.jsx(Ut,{children:s.jsx(an,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:r("summaryAddonsEyebrow")}),m.length>0?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"bpb-summary-card__title",children:m.length>1?r("summaryActiveAddons",{count:m.length}):r("summaryActiveAddon",{count:m.length})}),s.jsx("span",{className:"bpb-summary-card__meta",children:m.map(b=>`${b.quantity}× ${b.name}`).join(" · ")})]}):s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"bpb-summary-card__title",children:r("summaryNoAddons")}),s.jsx("span",{className:"bpb-summary-card__meta",children:r("summaryNoAddonsMeta")})]})]}),m.length>0&&y>0&&s.jsxs("span",{className:"bpb-summary-card__price",children:[s.jsxs("span",{className:"bpb-summary-card__price-amount",children:[ne(y,C,0),s.jsx("span",{className:"bpb-summary-card__price-suffix",children:r("perMonth")})]}),N&&s.jsx("span",{className:"bpb-summary-card__price-meta",children:r("planBannerRenews",{date:N})})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[r("manage"),s.jsx(aa,{size:16})]})]})]})},Gc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=X(),{t:n}=pe(),{data:r}=Le(),{data:o,isLoading:i,isError:l}=An({enabled:!t});if(r===!1||t)return null;if(i)return s.jsx(ue,{height:84,rounded:!0,className:K("bpb-scope",e)});if(l)return s.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-summary-card--auto-recharge bpb-summary-card--error bpb-scope",e),onClick:a,children:[s.jsx(Ut,{children:s.jsx(mt,{size:20})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("autoRechargeTitle")}),s.jsx("span",{className:"bpb-summary-card__title",children:n("autoRechargeSummaryLoadError")})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),s.jsx(aa,{size:16})]})]})]});const d=o==null?void 0:o.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)/qe,g=(d==null?void 0:d.maxAmount)!=null,m=((d==null?void 0:d.maxAmount)??0)/qe,v=c?u?g?n("autoRechargeSummaryMeta",{amount:ne(p,"usd",0),limit:ne(m,"usd",0)}):n("autoRechargeSummaryMetaNoLimit",{amount:ne(p,"usd",0)}):null:n("autoRechargeDescription");return s.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-summary-card--auto-recharge bpb-scope",c&&"bpb-summary-card--active",e),onClick:a,children:[s.jsx(Ut,{children:s.jsx(Xt,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("autoRechargeTitle")}),s.jsx("span",{className:"bpb-summary-card__title",children:n(c?"autoRechargeSummaryOn":"autoRechargeSummaryOff")}),v&&s.jsx("span",{className:"bpb-summary-card__meta",children:v})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),s.jsx(aa,{size:16})]})]})]})},Kc=({onManage:a,className:e})=>{var W,J;const{isOutdatedBilling:t,locale:n,manageBillingUrl:r,analytics:o}=X(),{t:i}=pe(),{data:l}=Le(),{data:d,isLoading:c}=Fe({enabled:!t}),{data:u,isLoading:p}=Ue(),{data:g,isLoading:m}=Qe();if(l===!1)return null;if(t){const E=()=>r&&window.open(r,"_blank","noopener");return s.jsxs("button",{type:"button",className:K("bpb-plan-banner bpb-plan-banner--community bpb-scope",e),onClick:E,disabled:!r,children:[s.jsxs("div",{className:"bpb-plan-banner__main",children:[s.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),s.jsx("span",{className:"bpb-plan-banner__name",children:i("planBannerManagedTitle")}),s.jsx("span",{className:"bpb-plan-banner__sub",children:i("planBannerManagedSub")})]}),s.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("open")," ",s.jsx(ht,{size:16})]})]})}if(c||p||m)return s.jsx(ue,{height:132,rounded:!0,className:K("bpb-scope",e)});const v=d==null?void 0:d.plan.current,y=u==null?void 0:u.find(E=>E.id===(v==null?void 0:v.planId)),C=(v==null?void 0:v.interval)??"month",N=((W=y==null?void 0:y.prices[C])==null?void 0:W.currency)??"usd",_=y?ye(y):"community",I=Object.fromEntries(Object.entries((d==null?void 0:d.addons)??{}).map(([E,ce])=>{var B;return[E,((B=ce.current)==null?void 0:B.quantity)??0]})),b=((J=y==null?void 0:y.prices[C])==null?void 0:J.amount)??0,A=C==="year"?"/yr":"/mo",S=Ls(y,g,I).find(E=>E.key==="conversation_sessions"),D=i(_==="community"?"conversationsUnit":"conversationsPerMonth"),w=_==="enterprise"||_==="managed",z=_!=="community"&&!w,x=!!(d!=null&&d.pendingUpgrade),L=d==null?void 0:d.plan.next,Z=L&&L.planId!==(v==null?void 0:v.planId),j=v==null?void 0:v.periodEnd,ee=z&&!Z&&j&&!hr(j)?je(j,n):null,R=u==null?void 0:u.find(E=>E.id===(L==null?void 0:L.planId)),O=L==null?void 0:L.effectiveDate,q=Z&&R&&O?i("planBannerDowngradesTo",{plan:be(R.name),date:je(O,n)}):null;return s.jsxs("button",{type:"button",className:K("bpb-plan-banner",`bpb-plan-banner--${_}`,"bpb-scope",e),onClick:()=>{o.capture(we.UPGRADE_CTA_CLICKED,{source:"plan_banner",current_tier:_}),a()},disabled:x,title:x?i("pendingUpgradeBlocksManageTooltip"):void 0,children:[s.jsxs("div",{className:"bpb-plan-banner__main",children:[s.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),s.jsx("span",{className:"bpb-plan-banner__name",children:y?be(y.name):i("planBannerNoPlan")}),w?s.jsx("span",{className:"bpb-plan-banner__sub",children:S&&S.added>0?s.jsxs(s.Fragment,{children:[i("planBannerCustom")," + ",he(S.added)," ",D]}):i("planBannerCustomConversations")}):S&&s.jsx("span",{className:"bpb-plan-banner__sub",children:S.added>0?s.jsxs(s.Fragment,{children:[he(S.base)," + ",he(S.added)," ",D]}):`${he(S.total)} ${D}`})]}),s.jsxs("div",{className:"bpb-plan-banner__summary",children:[w?s.jsx("span",{className:"bpb-plan-banner__price",children:i("planBannerCustomPricing")}):s.jsx("span",{className:"bpb-plan-banner__price",children:b>0&&s.jsxs(s.Fragment,{children:[ne(b,N,0),s.jsx("span",{className:"bpb-plan-banner__price-suffix",children:A})]})}),z&&s.jsx("span",{className:"bpb-plan-banner__meta",children:i(C==="year"?"billedAnnually":"billedMonthly")}),ee&&s.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerRenews",{date:ee})}),q&&s.jsx("span",{className:"bpb-plan-banner__meta",children:q}),x&&s.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerPendingUpgradeNote")})]}),s.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("planBannerManageCta")," ",s.jsx(aa,{size:16})]})]})},$c=({onManage:a,period:e,variant:t="card",showHealthyEnterprise:n=!1,className:r,style:o})=>{const{isOutdatedBilling:i,locale:l}=X(),{t:d}=pe(),{data:c,isLoading:u}=Fe({enabled:!i}),{data:p,isLoading:g}=Ue(),{data:m,isLoading:v}=Ta({period:e,enabled:!i});if(i)return null;if(u||g||v)return s.jsx(ue,{height:72,rounded:!0,className:K("bpb-scope",r)});const y=p==null?void 0:p.find(q=>q.id===(c==null?void 0:c.plan.current.planId)),C=y?ye(y):"community",N=C==="enterprise"||C==="managed",_=Ot(m),I=_.find(q=>q.used>q.quota);if(N&&!I&&!n)return null;const b=_.find(q=>q.key==="conversation_sessions"),A=_[0],S=I??(A&&A.key!=="conversation_sessions"&&A.pct>=75?A:b??A),D=S?Math.round(S.pct):0,w=D>0?Math.max(5,D):0,z=S?yn(S.pct):"normal",x=z!=="normal",L=C==="community",Z=!L&&(S!=null&&S.resets)?je(Co(e??new Date().toISOString()),l):null;let j=null,ee=null;if(S&&x){const q=Xa(S.remaining,S.unit);j=d(z==="critical"?"usageWidgetLimitReached":"usageWidgetRunningLow"),N?ee=d("usageWidgetEnterpriseOverQuota"):L&&S.key==="conversation_sessions"?ee=z==="critical"?d("usageWidgetFreeExhausted"):d("usageWidgetFreeLeft",{left:q}):ee=z==="critical"?d("usageWidgetUpgradeToKeepGoing"):d("usageWidgetOnlyLeft",{left:q})}const R=s.jsx(s.Fragment,{children:S?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-plan-usage__head",children:[x&&s.jsx(mt,{size:16,className:K("bpb-plan-usage__alert",`bpb-plan-usage__alert--${z}`)}),s.jsx("span",{className:"bpb-plan-usage__plan",children:Fo(S.key,d)}),s.jsxs("span",{className:"bpb-plan-usage__count",children:[Xa(S.used,S.unit)," / ",Xa(S.quota,S.unit)]}),a&&!x&&s.jsx(aa,{size:15,className:"bpb-plan-usage__chevron"})]}),s.jsx("div",{className:"bpb-plan-usage__bar",role:"progressbar","aria-valuenow":D,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("div",{className:K("bpb-plan-usage__fill",`bpb-plan-usage__fill--${z}`),style:{width:`${w}%`}})}),j?s.jsxs("p",{className:"bpb-plan-usage__status",children:[s.jsxs("strong",{className:K("bpb-plan-usage__status-word",`bpb-plan-usage__status-word--${z}`),children:[j,"."]})," ",ee&&s.jsx("span",{className:"bpb-plan-usage__status-detail",children:ee})]}):Z&&s.jsx("span",{className:"bpb-plan-usage__reset",children:d("usageWidgetResets",{date:Z})}),a&&x&&!N&&s.jsxs("span",{className:"bpb-plan-usage__cta",children:[d("usageWidgetViewOptions"),s.jsx(Qn,{size:14})]})]}):s.jsxs("div",{className:"bpb-plan-usage__head",children:[s.jsx("span",{className:"bpb-plan-usage__plan",children:y?be(y.name):d("free")}),a&&s.jsx(aa,{size:15,className:"bpb-plan-usage__chevron"})]})}),O=K("bpb-plan-usage bpb-scope",`bpb-plan-usage--${t}`,x&&`bpb-plan-usage--${z}`,a&&"bpb-plan-usage--clickable",r);return a?s.jsx("button",{type:"button",className:O,style:o,onClick:a,children:R}):s.jsx("div",{className:O,style:o,children:R})},Bo=({children:a,delay:e=200,placement:t="top",align:n="center",period:r,onUpgrade:o,block:i=!1,className:l})=>{var q,W;const{isOutdatedBilling:d,locale:c}=X(),{t:u}=pe(),{data:p}=Ta({period:r,enabled:!d}),{data:g}=Fe({enabled:!d}),{data:m}=Ue(),{data:v}=Qe(),[y,C]=T.useState(!1),N=T.useRef(null),_=()=>{N.current&&(clearTimeout(N.current),N.current=null)};T.useEffect(()=>_,[]);const I=m==null?void 0:m.find(J=>J.id===(g==null?void 0:g.plan.current.planId)),b=I?ye(I):"community",A=Ot(p),S=!d&&A.length>0,D=()=>{S&&(_(),N.current=setTimeout(()=>C(!0),Math.max(0,e)))},w=()=>{_(),C(!1)},z=I?be(I.name):u("free"),x=b==="community",L=x?A.find(J=>J.key==="conversation_sessions"):void 0,Z=x?m==null?void 0:m.find(J=>ye(J)==="plus"):void 0,j=Z==null?void 0:Z.features.conversation_sessions,ee=(W=(q=$n(v))==null?void 0:q.increments)==null?void 0:W.conversation_sessions,R=x&&!!o&&!!j&&!!ee,O=je(Co(r??new Date().toISOString()),c);return s.jsxs("span",{className:K("bpb-usage-pop bpb-scope",i&&"bpb-usage-pop--block",l),onMouseEnter:D,onMouseLeave:w,onFocus:D,onBlur:w,children:[a,y&&S&&s.jsxs("span",{className:K("bpb-usage-pop__card",`bpb-usage-pop__card--${t}`,`bpb-usage-pop__card--align-${n}`),role:"tooltip",children:[x?s.jsxs("span",{className:"bpb-usage-pop__header",children:[s.jsx("span",{className:"bpb-usage-pop__plan",children:u("usagePopoverFreeTitle")}),L&&s.jsx("span",{className:"bpb-usage-pop__subtitle",children:s.jsx(nt,{i18nKey:"usagePopoverFreeSubtitle",values:{quota:he(L.quota)},components:{bold:s.jsx("strong",{})}})})]}):s.jsx(s.Fragment,{children:s.jsxs("span",{className:"flex flex-col gap-1 bpb-usage-pop__title",children:[s.jsx("span",{className:"bpb-usage-pop__plan",children:u("usagePopoverPlanName",{planName:z})}),s.jsx("span",{className:"bpb-usage-pop__period",children:u("usagePopoverTitle",{date:O})})]})}),A.map(J=>{const E=J.pct>0?Math.max(5,J.pct):0;return s.jsxs("span",{className:"bpb-usage-pop__item",children:[s.jsxs("span",{className:"bpb-usage-pop__head",children:[s.jsx("span",{className:"bpb-usage-pop__name",children:Fo(J.key,u)}),s.jsxs("span",{className:"bpb-usage-pop__val",children:[Xa(J.used,J.unit)," / ",Xa(J.quota,J.unit)]})]}),s.jsx("span",{className:"bpb-usage-pop__bar",children:s.jsx("span",{className:K("bpb-usage-pop__fill",`bpb-usage-pop__fill--${yn(J.pct)}`),style:{width:`${E}%`}})})]},J.key)}),R&&s.jsx("span",{className:"bpb-usage-pop__nudge",children:s.jsx("span",{className:"bpb-usage-pop__nudge-text",children:s.jsx(nt,{i18nKey:"usagePopoverNudgeText",values:{quota:he(j??0),packSize:he(ee??0)},components:{bold:s.jsx("strong",{})}})})})]})]})},Rc=({size:a=20,thickness:e=3.5,showLabel:t=!1,onClick:n,popoverDelay:r=200,popoverAlign:o="center",trackColor:i="light",period:l,className:d,...c})=>{const{isOutdatedBilling:u}=X(),{data:p}=Ta({period:l,enabled:!u}),g=Ot(p);if(u||g.length===0)return null;const m=g[0],v=yn(m.pct),y=m.pct>0?Math.max(5,m.pct):0,C=(a-e)/2,N=2*Math.PI*C,_=N*(1-y/100),I=c["aria-label"]??`${Math.round(m.pct)}% of your ${m.label.toLowerCase()} used`,b=s.jsxs(s.Fragment,{children:[s.jsxs("svg",{className:"bpb-usage-ring__svg",width:a,height:a,viewBox:`0 0 ${a} ${a}`,"aria-hidden":!0,children:[s.jsx("circle",{className:K("bpb-usage-ring__track",`bpb-usage-ring__track--${i}`),cx:a/2,cy:a/2,r:C,fill:"none",strokeWidth:e}),s.jsx("circle",{className:K("bpb-usage-ring__arc",`bpb-usage-ring__arc--${v}`),cx:a/2,cy:a/2,r:C,fill:"none",strokeWidth:e,strokeLinecap:"round",strokeDasharray:N,strokeDashoffset:_,transform:`rotate(-90 ${a/2} ${a/2})`})]}),t&&s.jsxs("span",{className:"bpb-usage-ring__label",children:[Math.round(m.pct),"%"]})]}),A=K("bpb-usage-ring",n&&"bpb-usage-ring--clickable"),S=n?s.jsx("button",{type:"button",className:A,onClick:n,"aria-label":I,children:b}):s.jsx("span",{className:A,tabIndex:0,role:"img","aria-label":I,children:b});return s.jsx(Bo,{delay:r,align:o,period:l,className:d,children:S})},zo=({checked:a,onChange:e,disabled:t,className:n,...r})=>s.jsx("button",{type:"button",role:"switch","aria-checked":a,"aria-label":r["aria-label"],disabled:t,className:K("bpb-switch",a&&"bpb-switch--checked",n),onClick:()=>e(!a),children:s.jsx("span",{className:"bpb-switch__thumb"})}),Vo="ai_spend",Hc=1,Yc=5,yr=a=>(a??0)/qe,vr=a=>Math.round(a*qe),Jc=a=>Number.isInteger(a)&&a>=Hc,Qc=a=>Number.isInteger(a)&&a>=Yc,Xc=(a,e)=>Number.isInteger(a)&&a>=0&&e>0&&a%e===0,eu=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=X(),{t:o}=pe(),{data:i}=Le();return i===!1?null:r?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":o("autoRechargeTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":o("autoRechargeTitle"),className:"bpb-scope",children:s.jsx(au,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},au=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{const{toast:n,analytics:r}=X(),{t:o}=pe(),{data:i,isLoading:l,isError:d,refetch:c}=Fe(),{data:u,isLoading:p,isError:g,refetch:m}=Ue(),{data:v,isLoading:y,isError:C,refetch:N}=An(),_=Ar(),[I,b]=T.useState(null),[A,S]=T.useState(!1),[D,w]=T.useState(!1),[z,x]=T.useState(!1),L=l||p||y,Z=d||g||C,j=()=>{c(),m(),N()},ee=u==null?void 0:u.find(fe=>fe.id===(i==null?void 0:i.plan.current.planId)),R=i?ee?ye(ee)==="community":!0:!1,O=v==null?void 0:v[Vo],q=T.useMemo(()=>{const fe=(O==null?void 0:O.maxAmount)!=null,oe=(O==null?void 0:O.targetType)==="credit_grant"&&(O==null?void 0:O.thresholdType)==="remaining_amount"?O==null?void 0:O.threshold:null;return{thresholdInput:oe!=null?String(Math.round(yr(oe))):"",chunkInput:(O==null?void 0:O.chunkSize)!=null?String(Math.round(yr(O.chunkSize))):"",limitInput:(O==null?void 0:O.maxAmount)!=null?String(Math.round(yr(O.maxAmount))):"",hasLimit:fe}},[O]),W=I??q,J=fe=>b({...W,...fe}),E=Number(W.thresholdInput),ce=Number(W.chunkInput),B=Number(W.limitInput),F=W.thresholdInput.trim()!==""&&Jc(E),H=Qc(ce),V=!W.hasLimit||W.limitInput.trim()!==""&&Xc(B,ce),Q=A&&!F,Se=D&&!H,Ce=z&&!V,se=W.thresholdInput!==q.thresholdInput||W.chunkInput!==q.chunkInput||W.limitInput!==q.limitInput||W.hasLimit!==q.hasLimit,Ae=()=>{_.mutate({settings:{[Vo]:{targetType:"credit_grant",thresholdType:"remaining_amount",threshold:vr(E),chunkSize:vr(ce),maxAmount:W.hasLimit?vr(B):null}}},{onSuccess:()=>{n({type:"success",message:o("autoRechargeUpdateSuccess")}),r.capture(we.AUTO_RECHARGE_UPDATED),b(null),a(!1),e==null||e()},onError:()=>n({type:"error",message:o("autoRechargeUpdateError")})})};return s.jsxs("div",{className:"bpb-auto-recharge-dialog",children:[s.jsx("h2",{className:"bpb-auto-recharge-dialog__title",children:o("autoRechargeTitle")}),s.jsx("p",{className:"bpb-auto-recharge-dialog__subtitle",children:o("autoRechargeDescription")}),L?s.jsxs("div",{className:"bpb-auto-recharge-dialog__loading","aria-busy":"true",children:[s.jsx(ue,{height:40}),s.jsx(ue,{height:72})]}):Z?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-auto-recharge-dialog__error",role:"alert",children:[s.jsx("span",{className:"bpb-auto-recharge-dialog__error-icon","aria-hidden":"true",children:s.jsx(mt,{size:18})}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__error-text",children:[s.jsx("p",{className:"bpb-auto-recharge-dialog__error-title",children:o("autoRechargeLoadErrorTitle")}),s.jsx("p",{className:"bpb-auto-recharge-dialog__error-body",children:o("autoRechargeLoadError")})]})]}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__actions",children:[s.jsx(ve,{variant:"outline",onClick:()=>a(!1),children:o("close")}),s.jsx(ve,{variant:"primary",onClick:j,children:o("tryAgain")})]})]}):R?s.jsx(Io,{title:o("autoRechargeRequiresPaidPlanTitle"),body:o("autoRechargeRequiresPaidPlanBody"),ctaLabel:o("autoRechargeUpgradeCta"),onUpgrade:t?()=>{a(!1),t()}:void 0,onClose:()=>a(!1)}):s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[s.jsxs("div",{className:K("bpb-auto-recharge-dialog__panel",Q&&"bpb-auto-recharge-dialog__panel--invalid"),children:[s.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-threshold",children:o("autoRechargeThresholdLabel")}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[s.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),s.jsx("input",{id:"auto-recharge-threshold",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:_.isPending,value:W.thresholdInput,onChange:fe=>{J({thresholdInput:fe.target.value}),S(!0)}})]})]}),s.jsx("span",{className:K("bpb-auto-recharge-dialog__hint",Q&&"bpb-auto-recharge-dialog__hint--error"),children:o(Q?"autoRechargeThresholdError":"autoRechargeThresholdHint")})]}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[s.jsxs("div",{className:K("bpb-auto-recharge-dialog__panel",Se&&"bpb-auto-recharge-dialog__panel--invalid"),children:[s.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-chunk",children:o("autoRechargeChunkLabel")}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[s.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),s.jsx("input",{id:"auto-recharge-chunk",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:_.isPending,value:W.chunkInput,onChange:fe=>{J({chunkInput:fe.target.value}),w(!0)}})]})]}),s.jsx("span",{className:K("bpb-auto-recharge-dialog__hint",Se&&"bpb-auto-recharge-dialog__hint--error"),children:o(Se?"autoRechargeChunkError":"autoRechargeChunkHint")})]}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[s.jsxs("div",{className:"bpb-auto-recharge-dialog__panel bpb-auto-recharge-dialog__panel--switch",children:[s.jsxs("div",{className:"bpb-auto-recharge-dialog__row-text",children:[s.jsx("span",{className:"bpb-auto-recharge-dialog__row-label",children:o("autoRechargeSetLimitLabel")}),s.jsx("span",{className:"bpb-auto-recharge-dialog__row-description",children:o("autoRechargeSetLimitHint")})]}),s.jsx(zo,{"aria-label":o("autoRechargeSetLimitLabel"),checked:W.hasLimit,onChange:fe=>J({hasLimit:fe}),disabled:_.isPending})]}),!W.hasLimit&&s.jsx("span",{className:"bpb-auto-recharge-dialog__hint",children:o("autoRechargeNoCapHint")})]}),s.jsx("div",{className:K("bpb-auto-recharge-dialog__collapse",W.hasLimit&&"bpb-auto-recharge-dialog__collapse--open"),children:s.jsx("div",{className:"bpb-auto-recharge-dialog__collapse-inner",children:s.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[s.jsxs("div",{className:K("bpb-auto-recharge-dialog__panel",Ce&&"bpb-auto-recharge-dialog__panel--invalid"),children:[s.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-limit",children:o("autoRechargeLimitLabel")}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[s.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),s.jsx("input",{id:"auto-recharge-limit",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:_.isPending,value:W.limitInput,onChange:fe=>{J({limitInput:fe.target.value}),x(!0)}})]})]}),s.jsx("span",{className:K("bpb-auto-recharge-dialog__hint",Ce&&"bpb-auto-recharge-dialog__hint--error"),children:Ce?o("autoRechargeLimitError",{amount:ne(ce,"usd",0)}):o("autoRechargeLimitHint",{amount:ne(ce,"usd",0)})})]})})}),!(O!=null&&O.enabled)&&(O==null?void 0:O.disabledReason)&&s.jsx("p",{className:"bpb-auto-recharge-dialog__disabled-note",role:"alert",children:o("autoRechargeDisabledReason",{reason:O.disabledReason})}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__actions",children:[s.jsx(ve,{variant:"outline",onClick:()=>a(!1),disabled:_.isPending,children:o("cancel")}),s.jsx(ve,{variant:"primary",disabled:!se||!F||!H||!V,loading:_.isPending,onClick:Ae,children:o("save")})]})]})]})};k.AddonsSummaryCard=Wc,k.AgentsIcon=Vs,k.ArrowRightIcon=Qn,k.AutoRechargeDialog=eu,k.AutoRechargeSummaryCard=Gc,k.BILLING_EVENTS=we,k.Badge=pt,k.BankIcon=Kl,k.BillingActionCard=qc,k.BillingProvider=Yi,k.BoltIcon=an,k.Button=ve,k.CalendarIcon=Ks,k.CancellationSurveyDialog=fo,k.CardBrandBadge=er,k.CardIcon=Hn,k.ChartIcon=qs,k.CheckIcon=Ms,k.CheckoutDialog=wo,k.ChevronDownIcon=Ea,k.ChevronLeftIcon=Yn,k.ChevronRightIcon=aa,k.CloseIcon=gt,k.DEFAULT_FEATURE_LABELS=Ps,k.DEFAULT_PLAN_FEATURES=ut,k.Dialog=xe,k.DownloadIcon=Xn,k.ENTERPRISE_CONTACT_URL=Ln,k.ExternalLinkIcon=ht,k.GlobeIcon=Zs,k.InboxIcon=Us,k.InfinityIcon=zs,k.InfoTooltip=Mt,k.Input=fn,k.InvoicesDialog=Ic,k.LayersIcon=en,k.LockIcon=$l,k.ManageAddonsDialog=kc,k.MessageIcon=Os,k.MinusIcon=Gs,k.NANO_DOLLARS_PER_DOLLAR=qe,k.OutdatedBillingGate=pa,k.OutgrowFreeDialog=Uc,k.PLAN_FEATURE_KEYS=ct,k.PLAN_ORDER=Ia,k.PaintIcon=Ws,k.PaymentMethodDialog=Pc,k.PendingUpgradeBanner=Tc,k.PendingUpgradeDialog=Ao,k.PlanBanner=Kc,k.PlanSummaryCard=Zc,k.PlanUsageWidget=$c,k.PlusIcon=Jn,k.PuzzleIcon=Bs,k.ReceiptIcon=Hl,k.SegmentedControl=yo,k.Select=br,k.ShieldIcon=Rn,k.Skeleton=ue,k.SparkleIcon=Xt,k.Stepper=To,k.Switch=zo,k.USAGE_METRICS=Lo,k.UpgradePlanDialog=vo,k.UsageBanner=jc,k.UsageDashboard=Vc,k.UsagePopover=Bo,k.UsageRing=Rc,k.UsersIcon=js,k.addDays=As,k.addonDisplayName=xa,k.addonLimitsPreview=Es,k.addonPrice=dt,k.billingKeys=ke,k.cn=K,k.conversationPackPrice=Qt,k.conversationsAddon=$n,k.currencySymbol=lt,k.featureLabel=Wl,k.formatBytes=Da,k.formatCurrency=ne,k.formatDate=je,k.formatDateTime=Is,k.formatQuantity=he,k.formatUsage=Xa,k.getCardElementStyle=pr,k.getStripeAppearance=ur,k.getStripePromise=Tr,k.iconForFeature=tn,k.isLegacyBillingVersion=ss,k.planDisplayName=be,k.planEntitlements=Ls,k.planKind=ye,k.toStripeLocale=gr,k.usageItems=Ot,k.usageTier=yn,k.useAddons=Qe,k.useAutoRechargeSettings=An,k.useBilling=X,k.useBillingReadonly=In,k.useCancelPendingSubscriptionUpgrade=Fr,k.useCreatePaymentMethodIntent=Pn,k.useCustomer=Tn,k.useHasPendingUpgrade=zt,k.useInvoices=Ir,k.useIsAuthorized=Le,k.usePayInvoice=Lr,k.usePaymentMethod=wn,k.usePlans=Ue,k.useSaveCancellationFeedback=Er,k.useSetAddons=xr,k.useSetAutoRechargeSettings=Ar,k.useSetCustomer=xn,k.useSetPaymentMethod=Dn,k.useSetSubscription=En,k.useSubscription=Fe,k.useSubscriptionPreview=kn,k.useSupportsUsageByBot=Dr,k.useUsage=Ta,k.useUsageByBot=Pr,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|