@bpinternal/billing-ui 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- (function(k,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react/jsx-runtime"),require("@tanstack/react-query"),require("react"),require("@stripe/stripe-js"),require("react-dom"),require("@stripe/react-stripe-js")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@tanstack/react-query","react","@stripe/stripe-js","react-dom","@stripe/react-stripe-js"],o):(k=typeof globalThis<"u"?globalThis:k||self,o(k.BillingUI={},k.ReactJsxRuntime,k.ReactQuery,k.React,k.StripeJs,k.ReactDOM,k.ReactStripeJs))})(this,function(k,o,fe,P,mo,ho,Me){"use strict";var uc=Object.defineProperty;var pc=(k,o,fe)=>o in k?uc(k,o,{enumerable:!0,configurable:!0,writable:!0,value:fe}):k[o]=fe;var po=(k,o,fe)=>pc(k,typeof o!="symbol"?o+"":o,fe);const ss=new Map;function rs(a){let e=ss.get(a);return e||(e=mo.loadStripe(a,{developerTools:{assistant:{enabled:!1}}}),ss.set(a,e)),e}var oe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function go(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var fo={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 bo=go(fo);var yo=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function os(a){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=a.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(e.name=t[1],(bo[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 s=new RegExp(yo),r=null;(r=s.exec(a))!==null;)if(r[0].trim())if(r[1]){var i=r[1].trim(),l=[i,""];i.indexOf("=")>-1&&(l=i.split("=")),e.attrs[l[0]]=l[1],s.lastIndex--}else r[2]&&(e.attrs[r[2]]=r[3].trim().substring(1,r[3].length-1));return e}var vo=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,_o=/^\s*$/,Co=Object.create(null);function is(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 s in t)n.push(s+'="'+t[s]+'"');return n.length?" "+n.join(" "):""}(e.attrs):"")+(e.voidElement?"/>":">"),e.voidElement?a:a+e.children.reduce(is,"")+"</"+e.name+">";case"comment":return a+"<!--"+e.comment+"-->"}}var No={parse:function(a,e){e||(e={}),e.components||(e.components=Co);var t,n=[],s=[],r=-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(vo,function(c,d){if(i){if(c!=="</"+t.name+">")return;i=!1}var u,p=c.charAt(1)!=="/",m=c.startsWith("<!--"),h=d+c.length,b=a.charAt(h);if(m){var N=os(c);return r<0?(n.push(N),n):((u=s[r]).children.push(N),n)}if(p&&(r++,(t=os(c)).type==="tag"&&e.components[t.name]&&(t.type="component",i=!0),t.voidElement||i||!b||b==="<"||t.children.push({type:"text",content:a.slice(h,a.indexOf("<",h))}),r===0&&n.push(t),(u=s[r-1])&&u.children.push(t),s[r]=t),(!p||t.voidElement)&&(r>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(r--,t=r===-1?n:s[r]),!i&&b!=="<"&&b)){u=r===-1?n:s[r].children;var C=a.indexOf("<",h),y=a.slice(h,C===-1?void 0:C);_o.test(y)&&(y=" "),(C>-1&&r+u.length>=0||y!==" ")&&u.push({type:"text",content:y})}}),n},stringify:function(a){return a.reduce(function(e,t){return e+is("",t)},"")}};function St(){if(console&&console.warn){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Be(e[0])&&(e[0]=`react-i18next:: ${e[0]}`),console.warn(...e)}}const ls={};function kt(){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Be(e[0])&&ls[e[0]]||(Be(e[0])&&(ls[e[0]]=new Date),St(...e))}const ds=(a,e)=>()=>{if(a.isInitialized)e();else{const t=()=>{setTimeout(()=>{a.off("initialized",t)},0),e()};a.on("initialized",t)}},cs=(a,e,t)=>{a.loadNamespaces(e,ds(a,t))},us=(a,e,t,n)=>{Be(t)&&(t=[t]),t.forEach(s=>{a.options.ns.indexOf(s)<0&&a.options.ns.push(s)}),a.loadLanguages(e,ds(a,n))},So=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=e.languages[0],s=e.options?e.options.fallbackLng:!1,r=e.languages[e.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(l,c)=>{const d=e.services.backendConnector.state[`${l}|${c}`];return d===-1||d===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)&&(!s||i(r,a)))},ko=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(kt("i18n.languages were undefined or empty",e.languages),!0):e.options.ignoreJSONStructure!==void 0?e.hasLoadedNamespace(a,{lng:t.lng,precheck:(s,r)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&s.services.backendConnector.backend&&s.isLanguageChangingTo&&!r(s.isLanguageChangingTo,a))return!1}}):So(a,e,t)},Be=a=>typeof a=="string",Fa=a=>typeof a=="object"&&a!==null,wo=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,To={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},Io=a=>To[a];let un={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:a=>a.replace(wo,Io)};const Ao=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};un={...un,...a}},ps=()=>un;let ms;const Po=a=>{ms=a},pn=()=>ms,mn=(a,e)=>{if(!a)return!1;const t=a.props?a.props.children:a.children;return e?t.length>0:!!t},hn=a=>{if(!a)return[];const e=a.props?a.props.children:a.children;return a.props&&a.props.i18nIsDynamicList?Oa(e):e},xo=a=>Array.isArray(a)&&a.every(P.isValidElement),Oa=a=>Array.isArray(a)?a:[a],Do=(a,e)=>{const t={...e};return t.props=Object.assign(a.props,e.props),t},hs=(a,e)=>{if(!a)return"";let t="";const n=Oa(a),s=e.transSupportBasicHtmlNodes&&e.transKeepBasicHtmlNodesFor?e.transKeepBasicHtmlNodesFor:[];return n.forEach((r,i)=>{if(Be(r))t+=`${r}`;else if(P.isValidElement(r)){const{props:l,type:c}=r,d=Object.keys(l).length,u=s.indexOf(c)>-1,p=l.children;if(!p&&u&&!d)t+=`<${c}/>`;else if(!p&&(!u||d)||l.i18nIsDynamicList)t+=`<${i}></${i}>`;else if(u&&d===1&&Be(p))t+=`<${c}>${p}</${c}>`;else{const m=hs(p,e);t+=`<${i}>${m}</${i}>`}}else if(r===null)St("Trans: the passed in value is invalid - seems you passed in a null child.");else if(Fa(r)){const{format:l,...c}=r,d=Object.keys(c);if(d.length===1){const u=l?`${d[0]}, ${l}`:d[0];t+=`{{${u}}}`}else St("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",r)}else St("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}}.",r)}),t},Eo=(a,e,t,n,s,r)=>{if(e==="")return[];const i=n.transKeepBasicHtmlNodesFor||[],l=e&&new RegExp(i.map(C=>`<${C}`).join("|")).test(e);if(!a&&!l&&!r)return[e];const c={},d=C=>{Oa(C).forEach(v=>{Be(v)||(mn(v)?d(hn(v)):Fa(v)&&!P.isValidElement(v)&&Object.assign(c,v))})};d(a);const u=No.parse(`<0>${e}</0>`),p={...c,...s},m=(C,y,v)=>{const I=hn(C),A=b(I,y.children,v);return xo(I)&&A.length===0||C.props&&C.props.i18nIsDynamicList?I:A},h=(C,y,v,I,A)=>{C.dummy?(C.children=y,v.push(P.cloneElement(C,{key:I},A?void 0:y))):v.push(...P.Children.map([C],w=>{const T={...w.props};return delete T.i18nIsDynamicList,P.createElement(w.type,{...T,key:I,ref:w.ref},A?null:y)}))},b=(C,y,v)=>{const I=Oa(C);return Oa(y).reduce((w,T,x)=>{const _=T.children&&T.children[0]&&T.children[0].content&&t.services.interpolator.interpolate(T.children[0].content,p,t.language);if(T.type==="tag"){let L=I[parseInt(T.name,10)];v.length===1&&!L&&(L=v[0][T.name]),L||(L={});const z=Object.keys(T.attrs).length!==0?Do({props:T.attrs},L):L,O=P.isValidElement(z),H=O&&mn(T,!0)&&!T.voidElement,F=l&&Fa(z)&&z.dummy&&!O,J=Fa(a)&&Object.hasOwnProperty.call(a,T.name);if(Be(z)){const $=t.services.interpolator.interpolate(z,p,t.language);w.push($)}else if(mn(z)||H){const $=m(z,T,v);h(z,$,w,x)}else if(F){const $=b(I,T.children,v);h(z,$,w,x)}else if(Number.isNaN(parseFloat(T.name)))if(J){const $=m(z,T,v);h(z,$,w,x,T.voidElement)}else if(n.transSupportBasicHtmlNodes&&i.indexOf(T.name)>-1)if(T.voidElement)w.push(P.createElement(T.name,{key:`${T.name}-${x}`}));else{const $=b(I,T.children,v);w.push(P.createElement(T.name,{key:`${T.name}-${x}`},$))}else if(T.voidElement)w.push(`<${T.name} />`);else{const $=b(I,T.children,v);w.push(`<${T.name}>${$}</${T.name}>`)}else if(Fa(z)&&!O){const $=T.children[0]?_:null;$&&w.push($)}else h(z,_,w,x,T.children.length!==1||!_)}else if(T.type==="text"){const L=n.transWrapTextNodes,z=r?n.unescape(t.services.interpolator.interpolate(T.content,p,t.language)):t.services.interpolator.interpolate(T.content,p,t.language);L?w.push(P.createElement(L,{key:`${T.name}-${x}`},z)):w.push(z)}return w},[])},N=b([{dummy:!0,children:a||[]}],u,Oa(a||[]));return hn(N[0])};function Lo(a){let{children:e,count:t,parent:n,i18nKey:s,context:r,tOptions:i={},values:l,defaults:c,components:d,ns:u,i18n:p,t:m,shouldUnescape:h,...b}=a;const N=p||pn();if(!N)return kt("You will need to pass in an i18next instance by using i18nextReactModule"),e;const C=m||N.t.bind(N)||(H=>H),y={...ps(),...N.options&&N.options.react};let v=u||C.ns||N.options&&N.options.defaultNS;v=Be(v)?[v]:v||["translation"];const I=hs(e,y),A=c||I||y.transEmptyNodeValue||s,{hashTransKey:w}=y,T=s||(w?w(I||A):I||A);N.options&&N.options.interpolation&&N.options.interpolation.defaultVariables&&(l=l&&Object.keys(l).length>0?{...l,...N.options.interpolation.defaultVariables}:{...N.options.interpolation.defaultVariables});const x=l||t!==void 0||!e?i.interpolation:{interpolation:{...i.interpolation,prefix:"#$?",suffix:"?$#"}},_={...i,context:r||i.context,count:t,...l,...x,defaultValue:A,ns:v},L=T?C(T,_):A;d&&Object.keys(d).forEach(H=>{const F=d[H];if(typeof F.type=="function"||!F.props||!F.props.children||L.indexOf(`${H}/>`)<0&&L.indexOf(`${H} />`)<0)return;function J(){return P.createElement(P.Fragment,null,F)}d[H]=P.createElement(J)});const z=Eo(d||e,L,N,y,_,h),O=n!==void 0?n:y.defaultTransParent;return O?P.createElement(O,b,z):z}const Fo={type:"3rdParty",init(a){Ao(a.options.react),Po(a)}},gn=P.createContext();class Oo{constructor(){po(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}}function wt(a){let{children:e,count:t,parent:n,i18nKey:s,context:r,tOptions:i={},values:l,defaults:c,components:d,ns:u,i18n:p,t:m,shouldUnescape:h,...b}=a;const{i18n:N,defaultNS:C}=P.useContext(gn)||{},y=p||N||pn(),v=m||y&&y.t.bind(y);return Lo({children:e,count:t,parent:n,i18nKey:s,context:r,tOptions:i,values:l,defaults:c,components:d,ns:u||v&&v.ns||C||y&&y.options&&y.options.defaultNS,i18n:y,t:m,shouldUnescape:h,...b})}const Mo=(a,e)=>{const t=P.useRef();return P.useEffect(()=>{t.current=a},[a,e]),t.current},gs=(a,e,t,n)=>a.getFixedT(e,t,n),Bo=(a,e,t,n)=>P.useCallback(gs(a,e,t,n),[a,e,t,n]),ge=function(a){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:n,defaultNS:s}=P.useContext(gn)||{},r=t||n||pn();if(r&&!r.reportNamespaces&&(r.reportNamespaces=new Oo),!r){kt("You will need to pass in an i18next instance by using initReactI18next");const A=(T,x)=>Be(x)?x:Fa(x)&&Be(x.defaultValue)?x.defaultValue:Array.isArray(T)?T[T.length-1]:T,w=[A,{},!1];return w.t=A,w.i18n={},w.ready=!1,w}r.options.react&&r.options.react.wait!==void 0&&kt("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const i={...ps(),...r.options.react,...e},{useSuspense:l,keyPrefix:c}=i;let d=s||r.options&&r.options.defaultNS;d=Be(d)?[d]:d||["translation"],r.reportNamespaces.addUsedNamespaces&&r.reportNamespaces.addUsedNamespaces(d);const u=(r.isInitialized||r.initializedStoreOnce)&&d.every(A=>ko(A,r,i)),p=Bo(r,e.lng||null,i.nsMode==="fallback"?d:d[0],c),m=()=>p,h=()=>gs(r,e.lng||null,i.nsMode==="fallback"?d:d[0],c),[b,N]=P.useState(m);let C=d.join();e.lng&&(C=`${e.lng}${C}`);const y=Mo(C),v=P.useRef(!0);P.useEffect(()=>{const{bindI18n:A,bindI18nStore:w}=i;v.current=!0,!u&&!l&&(e.lng?us(r,e.lng,d,()=>{v.current&&N(h)}):cs(r,d,()=>{v.current&&N(h)})),u&&y&&y!==C&&v.current&&N(h);const T=()=>{v.current&&N(h)};return A&&r&&r.on(A,T),w&&r&&r.store.on(w,T),()=>{v.current=!1,A&&r&&A.split(" ").forEach(x=>r.off(x,T)),w&&r&&w.split(" ").forEach(x=>r.store.off(x,T))}},[r,C]),P.useEffect(()=>{v.current&&u&&N(m)},[r,c,u]);const I=[b,r,u];if(I.t=b,I.i18n=r,I.ready=u,u||!u&&!l)return I;throw new Promise(A=>{e.lng?us(r,e.lng,d,()=>A()):cs(r,d,()=>A())})};function Uo(a){let{i18n:e,defaultNS:t,children:n}=a;const s=P.useMemo(()=>({i18n:e,defaultNS:t}),[e,t]);return P.createElement(gn.Provider,{value:s},n)}const R=a=>typeof a=="string",Ha=()=>{let a,e;const t=new Promise((n,s)=>{a=n,e=s});return t.resolve=a,t.reject=e,t},fs=a=>a==null?"":""+a,zo=(a,e,t)=>{a.forEach(n=>{e[n]&&(t[n]=e[n])})},jo=/###/g,bs=a=>a&&a.indexOf("###")>-1?a.replace(jo,"."):a,ys=a=>!a||R(a),Ra=(a,e,t)=>{const n=R(e)?e.split("."):e;let s=0;for(;s<n.length-1;){if(ys(a))return{};const r=bs(n[s]);!a[r]&&t&&(a[r]=new t),Object.prototype.hasOwnProperty.call(a,r)?a=a[r]:a={},++s}return ys(a)?{}:{obj:a,k:bs(n[s])}},vs=(a,e,t)=>{const{obj:n,k:s}=Ra(a,e,Object);if(n!==void 0||e.length===1){n[s]=t;return}let r=e[e.length-1],i=e.slice(0,e.length-1),l=Ra(a,i,Object);for(;l.obj===void 0&&i.length;)r=`${i[i.length-1]}.${r}`,i=i.slice(0,i.length-1),l=Ra(a,i,Object),l&&l.obj&&typeof l.obj[`${l.k}.${r}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${r}`]=t},Vo=(a,e,t,n)=>{const{obj:s,k:r}=Ra(a,e,Object);s[r]=s[r]||[],s[r].push(t)},Tt=(a,e)=>{const{obj:t,k:n}=Ra(a,e);if(t)return t[n]},Zo=(a,e,t)=>{const n=Tt(a,t);return n!==void 0?n:Tt(e,t)},_s=(a,e,t)=>{for(const n in e)n!=="__proto__"&&n!=="constructor"&&(n in a?R(a[n])||a[n]instanceof String||R(e[n])||e[n]instanceof String?t&&(a[n]=e[n]):_s(a[n],e[n],t):a[n]=e[n]);return a},Ma=a=>a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var qo={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};const Wo=a=>R(a)?a.replace(/[&<>"'\/]/g,e=>qo[e]):a;class Go{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 Ko=[" ",",","?","!",";"],$o=new Go(20),Ho=(a,e,t)=>{e=e||"",t=t||"";const n=Ko.filter(i=>e.indexOf(i)<0&&t.indexOf(i)<0);if(n.length===0)return!0;const s=$o.getRegExp(`(${n.map(i=>i==="?"?"\\?":i).join("|")})`);let r=!s.test(a);if(!r){const i=a.indexOf(t);i>0&&!s.test(a.substring(0,i))&&(r=!0)}return r},fn=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 s=a;for(let r=0;r<n.length;){if(!s||typeof s!="object")return;let i,l="";for(let c=r;c<n.length;++c)if(c!==r&&(l+=t),l+=n[c],i=s[l],i!==void 0){if(["string","number","boolean"].indexOf(typeof i)>-1&&c<n.length-1)continue;r+=c-r+1;break}s=i}return s},It=a=>a&&a.replace("_","-"),Ro={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 At{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||Ro,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,s){return s&&!this.debug?null:(R(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new At(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new At(this.logger,e)}}var Ke=new At;class Pt{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(n=>{this.observers[n]||(this.observers[n]=new Map);const s=this.observers[n].get(t)||0;this.observers[n].set(t,s+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),s=1;s<t;s++)n[s-1]=arguments[s];this.observers[e]&&Array.from(this.observers[e].entries()).forEach(i=>{let[l,c]=i;for(let d=0;d<c;d++)l(...n)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(i=>{let[l,c]=i;for(let d=0;d<c;d++)l.apply(l,[e,...n])})}}class Cs extends Pt{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 s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const r=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,i=s.ignoreJSONStructure!==void 0?s.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;e.indexOf(".")>-1?l=e.split("."):(l=[e,t],n&&(Array.isArray(n)?l.push(...n):R(n)&&r?l.push(...n.split(r)):l.push(n)));const c=Tt(this.data,l);return!c&&!t&&!n&&e.indexOf(".")>-1&&(e=l[0],t=l[1],n=l.slice(2).join(".")),c||!i||!R(n)?c:fn(this.data&&this.data[e]&&this.data[e][t],n,r)}addResource(e,t,n,s){let r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator;let l=[e,t];n&&(l=l.concat(i?n.split(i):n)),e.indexOf(".")>-1&&(l=e.split("."),s=t,t=l[1]),this.addNamespaces(t),vs(this.data,l,s),r.silent||this.emit("added",e,t,n,s)}addResources(e,t,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const r in n)(R(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});s.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,s,r){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},l=[e,t];e.indexOf(".")>-1&&(l=e.split("."),s=n,n=t,t=l[1]),this.addNamespaces(t);let c=Tt(this.data,l)||{};i.skipCopy||(n=JSON.parse(JSON.stringify(n))),s?_s(c,n,r):c={...c,...n},vs(this.data,l,c),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(s=>t[s]&&Object.keys(t[s]).length>0)}toJSON(){return this.data}}var Ns={processors:{},addPostProcessor(a){this.processors[a.name]=a},handle(a,e,t,n,s){return a.forEach(r=>{this.processors[r]&&(e=this.processors[r].process(e,t,n,s))}),e}};const Ss={};class xt extends Pt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),zo(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Ke.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 s=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let r=t.ns||this.options.defaultNS||[];const i=n&&e.indexOf(n)>-1,l=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!Ho(e,n,s);if(i&&!l){const c=e.match(this.interpolator.nestingRegexp);if(c&&c.length>0)return{key:e,namespaces:R(r)?[r]:r};const d=e.split(n);(n!==s||n===s&&this.options.ns.indexOf(d[0])>-1)&&(r=d.shift()),e=d.join(s)}return{key:e,namespaces:R(r)?[r]:r}}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 s=t.returnDetails!==void 0?t.returnDetails:this.options.returnDetails,r=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator,{key:i,namespaces:l}=this.extractFromKey(e[e.length-1],t),c=l[l.length-1],d=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&d.toLowerCase()==="cimode"){if(u){const A=t.nsSeparator||this.options.nsSeparator;return s?{res:`${c}${A}${i}`,usedKey:i,exactUsedKey:i,usedLng:d,usedNS:c,usedParams:this.getUsedParamsDetails(t)}:`${c}${A}${i}`}return s?{res:i,usedKey:i,exactUsedKey:i,usedLng:d,usedNS:c,usedParams:this.getUsedParamsDetails(t)}:i}const p=this.resolve(e,t);let m=p&&p.res;const h=p&&p.usedKey||i,b=p&&p.exactUsedKey||i,N=Object.prototype.toString.apply(m),C=["[object Number]","[object Function]","[object RegExp]"],y=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,v=!this.i18nFormat||this.i18nFormat.handleAsObject,I=!R(m)&&typeof m!="boolean"&&typeof m!="number";if(v&&m&&I&&C.indexOf(N)<0&&!(R(y)&&Array.isArray(m))){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const A=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,m,{...t,ns:l}):`key '${i} (${this.language})' returned an object instead of string.`;return s?(p.res=A,p.usedParams=this.getUsedParamsDetails(t),p):A}if(r){const A=Array.isArray(m),w=A?[]:{},T=A?b:h;for(const x in m)if(Object.prototype.hasOwnProperty.call(m,x)){const _=`${T}${r}${x}`;w[x]=this.translate(_,{...t,joinArrays:!1,ns:l}),w[x]===_&&(w[x]=m[x])}m=w}}else if(v&&R(y)&&Array.isArray(m))m=m.join(y),m&&(m=this.extendTranslation(m,e,t,n));else{let A=!1,w=!1;const T=t.count!==void 0&&!R(t.count),x=xt.hasDefaultValue(t),_=T?this.pluralResolver.getSuffix(d,t.count,t):"",L=t.ordinal&&T?this.pluralResolver.getSuffix(d,t.count,{ordinal:!1}):"",z=T&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),O=z&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${_}`]||t[`defaultValue${L}`]||t.defaultValue;!this.isValidLookup(m)&&x&&(A=!0,m=O),this.isValidLookup(m)||(w=!0,m=i);const F=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&w?void 0:m,J=x&&O!==m&&this.options.updateMissing;if(w||A||J){if(this.logger.log(J?"updateKey":"missingKey",d,c,i,J?O:m),r){const ae=this.resolve(i,{...t,keySeparator:!1});ae&&ae.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 $=[];const j=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&j&&j[0])for(let ae=0;ae<j.length;ae++)$.push(j[ae]);else this.options.saveMissingTo==="all"?$=this.languageUtils.toResolveHierarchy(t.lng||this.language):$.push(t.lng||this.language);const ne=(ae,q,S)=>{const ue=x&&S!==m?S:F;this.options.missingKeyHandler?this.options.missingKeyHandler(ae,c,q,ue,J,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(ae,c,q,ue,J,t),this.emit("missingKey",ae,c,q,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&T?$.forEach(ae=>{const q=this.pluralResolver.getSuffixes(ae,t);z&&t[`defaultValue${this.options.pluralSeparator}zero`]&&q.indexOf(`${this.options.pluralSeparator}zero`)<0&&q.push(`${this.options.pluralSeparator}zero`),q.forEach(S=>{ne([ae],i+S,t[`defaultValue${S}`]||O)})}):ne($,i,O))}m=this.extendTranslation(m,e,t,p,n),w&&m===i&&this.options.appendNamespaceToMissingKey&&(m=`${c}:${i}`),(w||A)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${c}:${i}`:i,A?m:void 0):m=this.options.parseMissingKeyHandler(m))}return s?(p.res=m,p.usedParams=this.getUsedParamsDetails(t),p):m}extendTranslation(e,t,n,s,r){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||s.usedLng,s.usedNS,s.usedKey,{resolved:s});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const d=R(e)&&(n&&n.interpolation&&n.interpolation.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let u;if(d){const m=e.match(this.interpolator.nestingRegexp);u=m&&m.length}let p=n.replace&&!R(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||s.usedLng,n),d){const m=e.match(this.interpolator.nestingRegexp),h=m&&m.length;u<h&&(n.nest=!1)}!n.lng&&this.options.compatibilityAPI!=="v1"&&s&&s.res&&(n.lng=this.language||s.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,function(){for(var m=arguments.length,h=new Array(m),b=0;b<m;b++)h[b]=arguments[b];return r&&r[0]===h[0]&&!n.context?(i.logger.warn(`It seems you are nesting recursively key: ${h[0]} in key: ${t[0]}`),null):i.translate(...h,t)},n)),n.interpolation&&this.interpolator.reset()}const l=n.postProcess||this.options.postProcess,c=R(l)?[l]:l;return e!=null&&c&&c.length&&n.applyPostProcessor!==!1&&(e=Ns.handle(c,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...s,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n,s,r,i,l;return R(e)&&(e=[e]),e.forEach(c=>{if(this.isValidLookup(n))return;const d=this.extractFromKey(c,t),u=d.key;s=u;let p=d.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const m=t.count!==void 0&&!R(t.count),h=m&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),b=t.context!==void 0&&(R(t.context)||typeof t.context=="number")&&t.context!=="",N=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);p.forEach(C=>{this.isValidLookup(n)||(l=C,!Ss[`${N[0]}-${C}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(l)&&(Ss[`${N[0]}-${C}`]=!0,this.logger.warn(`key "${s}" for languages "${N.join(", ")}" won't get resolved as namespace "${l}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),N.forEach(y=>{if(this.isValidLookup(n))return;i=y;const v=[u];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(v,u,y,C,t);else{let A;m&&(A=this.pluralResolver.getSuffix(y,t.count,t));const w=`${this.options.pluralSeparator}zero`,T=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(m&&(v.push(u+A),t.ordinal&&A.indexOf(T)===0&&v.push(u+A.replace(T,this.options.pluralSeparator)),h&&v.push(u+w)),b){const x=`${u}${this.options.contextSeparator}${t.context}`;v.push(x),m&&(v.push(x+A),t.ordinal&&A.indexOf(T)===0&&v.push(x+A.replace(T,this.options.pluralSeparator)),h&&v.push(x+w))}}let I;for(;I=v.pop();)this.isValidLookup(n)||(r=I,n=this.getResource(y,C,I,t))}))})}),{res:n,usedKey:s,exactUsedKey:r,usedLng:i,usedNS:l}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,s):this.resourceStore.getResource(e,t,n,s)}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&&!R(e.replace);let s=n?e.replace:e;if(n&&typeof e.count<"u"&&(s.count=e.count),this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),!n){s={...s};for(const r of t)delete s[r]}return s}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 bn=a=>a.charAt(0).toUpperCase()+a.slice(1);class ks{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ke.create("languageUtils")}getScriptPartFromCode(e){if(e=It(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=It(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(R(e)&&e.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let s=Intl.getCanonicalLocales(e)[0];if(s&&this.options.lowerCaseLng&&(s=s.toLowerCase()),s)return s}catch{}const t=["hans","hant","latn","cyrl","cans","mong","arab"];let n=e.split("-");return this.options.lowerCaseLng?n=n.map(s=>s.toLowerCase()):n.length===2?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=bn(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]=bn(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=bn(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 s=this.formatLanguageCode(n);(!this.options.supportedLngs||this.isSupportedCode(s))&&(t=s)}),!t&&this.options.supportedLngs&&e.forEach(n=>{if(t)return;const s=this.getLanguagePartFromCode(n);if(this.isSupportedCode(s))return t=s;t=this.options.supportedLngs.find(r=>{if(r===s)return r;if(!(r.indexOf("-")<0&&s.indexOf("-")<0)&&(r.indexOf("-")>0&&s.indexOf("-")<0&&r.substring(0,r.indexOf("-"))===s||r.indexOf(s)===0&&s.length>1))return r})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),R(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),s=[],r=i=>{i&&(this.isSupportedCode(i)?s.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return R(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&r(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&r(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&r(this.getLanguagePartFromCode(e))):R(e)&&r(this.formatLanguageCode(e)),n.forEach(i=>{s.indexOf(i)<0&&r(this.formatLanguageCode(i))}),s}}let Yo=[{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}],Jo={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 Qo=["v1","v2","v3"],Xo=["v4"],ws={zero:0,one:1,two:2,few:3,many:4,other:5},ei=()=>{const a={};return Yo.forEach(e=>{e.lngs.forEach(t=>{a[t]={numbers:e.nr,plurals:Jo[e.fc]}})}),a};class ai{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=Ke.create("pluralResolver"),(!this.options.compatibilityJSON||Xo.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=ei(),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=It(e==="dev"?"en":e),s=t.ordinal?"ordinal":"cardinal",r=JSON.stringify({cleanedCode:n,type:s});if(r in this.pluralRulesCache)return this.pluralRulesCache[r];let i;try{i=new Intl.PluralRules(n,{type:s})}catch{if(!e.match(/-|_/))return;const c=this.languageUtils.getLanguagePartFromCode(e);i=this.getRule(c,t)}return this.pluralRulesCache[r]=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(s=>`${t}${s}`)}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((s,r)=>ws[s]-ws[r]).map(s=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${s}`):n.numbers.map(s=>this.getSuffix(e,s,t)):[]}getSuffix(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const s=this.getRule(e,n);return s?this.shouldUseIntlApi()?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${s.select(t)}`:this.getSuffixRetroCompatible(s,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 s=e.numbers[n];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(s===2?s="plural":s===1&&(s=""));const r=()=>this.options.prepend&&s.toString()?this.options.prepend+s.toString():s.toString();return this.options.compatibilityJSON==="v1"?s===1?"":typeof s=="number"?`_plural_${s.toString()}`:r():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?r():this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString()}shouldUseIntlApi(){return!Qo.includes(this.options.compatibilityJSON)}}const Ts=function(a,e,t){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,r=Zo(a,e,t);return!r&&s&&R(t)&&(r=fn(a,t,n),r===void 0&&(r=fn(e,t,n))),r},yn=a=>a.replace(/\$/g,"$$$$");class ti{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ke.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:s,prefix:r,prefixEscaped:i,suffix:l,suffixEscaped:c,formatSeparator:d,unescapeSuffix:u,unescapePrefix:p,nestingPrefix:m,nestingPrefixEscaped:h,nestingSuffix:b,nestingSuffixEscaped:N,nestingOptionsSeparator:C,maxReplaces:y,alwaysFormat:v}=e.interpolation;this.escape=t!==void 0?t:Wo,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=s!==void 0?s:!1,this.prefix=r?Ma(r):i||"{{",this.suffix=l?Ma(l):c||"}}",this.formatSeparator=d||",",this.unescapePrefix=u?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=m?Ma(m):h||Ma("$t("),this.nestingSuffix=b?Ma(b):N||Ma(")"),this.nestingOptionsSeparator=C||",",this.maxReplaces=y||1e3,this.alwaysFormat=v!==void 0?v:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,n)=>t&&t.source===n?(t.lastIndex=0,t):new RegExp(n,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,t,n,s){let r,i,l;const c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},d=h=>{if(h.indexOf(this.formatSeparator)<0){const y=Ts(t,c,h,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(y,void 0,n,{...s,...t,interpolationkey:h}):y}const b=h.split(this.formatSeparator),N=b.shift().trim(),C=b.join(this.formatSeparator).trim();return this.format(Ts(t,c,N,this.options.keySeparator,this.options.ignoreJSONStructure),C,n,{...s,...t,interpolationkey:N})};this.resetRegExp();const u=s&&s.missingInterpolationHandler||this.options.missingInterpolationHandler,p=s&&s.interpolation&&s.interpolation.skipOnVariables!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:h=>yn(h)},{regex:this.regexp,safeValue:h=>this.escapeValue?yn(this.escape(h)):yn(h)}].forEach(h=>{for(l=0;r=h.regex.exec(e);){const b=r[1].trim();if(i=d(b),i===void 0)if(typeof u=="function"){const C=u(e,r,s);i=R(C)?C:""}else if(s&&Object.prototype.hasOwnProperty.call(s,b))i="";else if(p){i=r[0];continue}else this.logger.warn(`missed to pass in variable ${b} for interpolating ${e}`),i="";else!R(i)&&!this.useRawValueToEscape&&(i=fs(i));const N=h.safeValue(i);if(e=e.replace(r[0],N),p?(h.regex.lastIndex+=i.length,h.regex.lastIndex-=r[0].length):h.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),e}nest(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s,r,i;const l=(c,d)=>{const u=this.nestingOptionsSeparator;if(c.indexOf(u)<0)return c;const p=c.split(new RegExp(`${u}[ ]*{`));let m=`{${p[1]}`;c=p[0],m=this.interpolate(m,i);const h=m.match(/'/g),b=m.match(/"/g);(h&&h.length%2===0&&!b||b.length%2!==0)&&(m=m.replace(/'/g,'"'));try{i=JSON.parse(m),d&&(i={...d,...i})}catch(N){return this.logger.warn(`failed parsing options string in nesting for key ${c}`,N),`${c}${u}${m}`}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,c};for(;s=this.nestingRegexp.exec(e);){let c=[];i={...n},i=i.replace&&!R(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;let d=!1;if(s[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(s[1])){const u=s[1].split(this.formatSeparator).map(p=>p.trim());s[1]=u.shift(),c=u,d=!0}if(r=t(l.call(this,s[1].trim(),i),i),r&&s[0]===e&&!R(r))return r;R(r)||(r=fs(r)),r||(this.logger.warn(`missed to resolve ${s[1]} for nesting ${e}`),r=""),d&&(r=c.reduce((u,p)=>this.format(u,p,n.lng,{...n,interpolationkey:s[1].trim()}),r.trim())),e=e.replace(s[0],r),this.regexp.lastIndex=0}return e}}const ni=a=>{let e=a.toLowerCase().trim();const t={};if(a.indexOf("(")>-1){const n=a.split("(");e=n[0].toLowerCase().trim();const s=n[1].substring(0,n[1].length-1);e==="currency"&&s.indexOf(":")<0?t.currency||(t.currency=s.trim()):e==="relativetime"&&s.indexOf(":")<0?t.range||(t.range=s.trim()):s.split(";").forEach(i=>{if(i){const[l,...c]=i.split(":"),d=c.join(":").trim().replace(/^'+|'+$/g,""),u=l.trim();t[u]||(t[u]=d),d==="false"&&(t[u]=!1),d==="true"&&(t[u]=!0),isNaN(d)||(t[u]=parseInt(d,10))}})}return{formatName:e,formatOptions:t}},Ba=a=>{const e={};return(t,n,s)=>{let r=s;s&&s.interpolationkey&&s.formatParams&&s.formatParams[s.interpolationkey]&&s[s.interpolationkey]&&(r={...r,[s.interpolationkey]:void 0});const i=n+JSON.stringify(r);let l=e[i];return l||(l=a(It(n),s),e[i]=l),l(t)}};class si{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ke.create("formatter"),this.options=e,this.formats={number:Ba((t,n)=>{const s=new Intl.NumberFormat(t,{...n});return r=>s.format(r)}),currency:Ba((t,n)=>{const s=new Intl.NumberFormat(t,{...n,style:"currency"});return r=>s.format(r)}),datetime:Ba((t,n)=>{const s=new Intl.DateTimeFormat(t,{...n});return r=>s.format(r)}),relativetime:Ba((t,n)=>{const s=new Intl.RelativeTimeFormat(t,{...n});return r=>s.format(r,n.range||"day")}),list:Ba((t,n)=>{const s=new Intl.ListFormat(t,{...n});return r=>s.format(r)})},this.init(e)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Ba(t)}format(e,t,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const r=t.split(this.formatSeparator);if(r.length>1&&r[0].indexOf("(")>1&&r[0].indexOf(")")<0&&r.find(l=>l.indexOf(")")>-1)){const l=r.findIndex(c=>c.indexOf(")")>-1);r[0]=[r[0],...r.splice(1,l)].join(this.formatSeparator)}return r.reduce((l,c)=>{const{formatName:d,formatOptions:u}=ni(c);if(this.formats[d]){let p=l;try{const m=s&&s.formatParams&&s.formatParams[s.interpolationkey]||{},h=m.locale||m.lng||s.locale||s.lng||n;p=this.formats[d](l,h,{...u,...s,...m})}catch(m){this.logger.warn(m)}return p}else this.logger.warn(`there was no format function for ${d}`);return l},e)}}const ri=(a,e)=>{a.pending[e]!==void 0&&(delete a.pending[e],a.pendingCount--)};class oi extends Pt{constructor(e,t,n){let s=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=s,this.logger=Ke.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=s.maxParallelReads||10,this.readingCalls=0,this.maxRetries=s.maxRetries>=0?s.maxRetries:5,this.retryTimeout=s.retryTimeout>=1?s.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(n,s.backend,s)}queueLoad(e,t,n,s){const r={},i={},l={},c={};return e.forEach(d=>{let u=!0;t.forEach(p=>{const m=`${d}|${p}`;!n.reload&&this.store.hasResourceBundle(d,p)?this.state[m]=2:this.state[m]<0||(this.state[m]===1?i[m]===void 0&&(i[m]=!0):(this.state[m]=1,u=!1,i[m]===void 0&&(i[m]=!0),r[m]===void 0&&(r[m]=!0),c[p]===void 0&&(c[p]=!0)))}),u||(l[d]=!0)}),(Object.keys(r).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:s}),{toLoad:Object.keys(r),pending:Object.keys(i),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(c)}}loaded(e,t,n){const s=e.split("|"),r=s[0],i=s[1];t&&this.emit("failedLoading",r,i,t),!t&&n&&this.store.addResourceBundle(r,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(c=>{Vo(c.loaded,[r],i),ri(c,e),t&&c.errors.push(t),c.pendingCount===0&&!c.done&&(Object.keys(c.loaded).forEach(d=>{l[d]||(l[d]={});const u=c.loaded[d];u.length&&u.forEach(p=>{l[d][p]===void 0&&(l[d][p]=!0)})}),c.done=!0,c.errors.length?c.callback(c.errors):c.callback())}),this.emit("loaded",l),this.queue=this.queue.filter(c=>!c.done)}read(e,t,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,r=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:s,wait:r,callback:i});return}this.readingCalls++;const l=(d,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(d&&u&&s<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,n,s+1,r*2,i)},r);return}i(d,u)},c=this.backend[n].bind(this.backend);if(c.length===2){try{const d=c(e,t);d&&typeof d.then=="function"?d.then(u=>l(null,u)).catch(l):l(null,d)}catch(d){l(d)}return}return c(e,t,l)}prepareLoading(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s=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."),s&&s();R(e)&&(e=this.languageUtils.toResolveHierarchy(e)),R(t)&&(t=[t]);const r=this.queueLoad(e,t,n,s);if(!r.toLoad.length)return r.pending.length||s(),null;r.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("|"),s=n[0],r=n[1];this.read(s,r,"read",void 0,void 0,(i,l)=>{i&&this.logger.warn(`${t}loading namespace ${r} for language ${s} failed`,i),!i&&l&&this.logger.log(`${t}loaded namespace ${r} for language ${s}`,l),this.loaded(e,i,l)})}saveMissing(e,t,n,s,r){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 c={...i,isUpdate:r},d=this.backend.create.bind(this.backend);if(d.length<6)try{let u;d.length===5?u=d(e,t,n,s,c):u=d(e,t,n,s),u&&typeof u.then=="function"?u.then(p=>l(null,p)).catch(l):l(null,u)}catch(u){l(u)}else d(e,t,n,s,l,c)}!e||!e[0]||this.store.addResource(e[0],t,n,s)}}}const Is=()=>({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]),R(a[1])&&(e.defaultValue=a[1]),R(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}}),As=a=>(R(a.ns)&&(a.ns=[a.ns]),R(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),R(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs&&a.supportedLngs.indexOf("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),a),Dt=()=>{},ii=a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(t=>{typeof a[t]=="function"&&(a[t]=a[t].bind(a))})};class Ya extends Pt{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=As(e),this.services={},this.logger=Ke,this.modules={external:[]},ii(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&&(R(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const s=Is();this.options={...s,...this.options,...As(t)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...s.interpolation,...this.options.interpolation}),t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator);const r=u=>u?typeof u=="function"?new u:u:null;if(!this.options.isClone){this.modules.logger?Ke.init(r(this.modules.logger),this.options):Ke.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=si);const p=new ks(this.options);this.store=new Cs(this.options.resources,this.options);const m=this.services;m.logger=Ke,m.resourceStore=this.store,m.languageUtils=p,m.pluralResolver=new ai(p,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),u&&(!this.options.interpolation.format||this.options.interpolation.format===s.interpolation.format)&&(m.formatter=r(u),m.formatter.init(m,this.options),this.options.interpolation.format=m.formatter.format.bind(m.formatter)),m.interpolator=new ti(this.options),m.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},m.backendConnector=new oi(r(this.modules.backend),m.resourceStore,m,this.options),m.backendConnector.on("*",function(h){for(var b=arguments.length,N=new Array(b>1?b-1:0),C=1;C<b;C++)N[C-1]=arguments[C];e.emit(h,...N)}),this.modules.languageDetector&&(m.languageDetector=r(this.modules.languageDetector),m.languageDetector.init&&m.languageDetector.init(m,this.options.detection,this.options)),this.modules.i18nFormat&&(m.i18nFormat=r(this.modules.i18nFormat),m.i18nFormat.init&&m.i18nFormat.init(this)),this.translator=new xt(this.services,this.options),this.translator.on("*",function(h){for(var b=arguments.length,N=new Array(b>1?b-1:0),C=1;C<b;C++)N[C-1]=arguments[C];e.emit(h,...N)}),this.modules.external.forEach(h=>{h.init&&h.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Dt),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 c=Ha(),d=()=>{const u=(p,m)=>{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),c.resolve(m),n(p,m)};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?d():setTimeout(d,0),c}loadResources(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Dt;const s=R(e)?e:this.language;if(typeof e=="function"&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(s&&s.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return n();const r=[],i=l=>{if(!l||l==="cimode")return;this.services.languageUtils.toResolveHierarchy(l).forEach(d=>{d!=="cimode"&&r.indexOf(d)<0&&r.push(d)})};s?i(s):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(c=>i(c)),this.options.preload&&this.options.preload.forEach(l=>i(l)),this.services.backendConnector.load(r,this.options.ns,l=>{!l&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(l)})}else n(null)}reloadResources(e,t,n){const s=Ha();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=Dt),this.services.backendConnector.reload(e,t,r=>{s.resolve(),n(r)}),s}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"&&Ns.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 s=Ha();this.emit("languageChanging",e);const r=c=>{this.language=c,this.languages=this.services.languageUtils.toResolveHierarchy(c),this.resolvedLanguage=void 0,this.setResolvedLanguage(c)},i=(c,d)=>{d?(r(d),this.translator.changeLanguage(d),this.isLanguageChangingTo=void 0,this.emit("languageChanged",d),this.logger.log("languageChanged",d)):this.isLanguageChangingTo=void 0,s.resolve(function(){return n.t(...arguments)}),t&&t(c,function(){return n.t(...arguments)})},l=c=>{!e&&!c&&this.services.languageDetector&&(c=[]);const d=R(c)?c:this.services.languageUtils.getBestMatchFromCodes(c);d&&(this.language||r(d),this.translator.language||this.translator.changeLanguage(d),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(d)),this.loadResources(d,u=>{i(u,d)})};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),s}getFixedT(e,t,n){var s=this;const r=function(i,l){let c;if(typeof l!="object"){for(var d=arguments.length,u=new Array(d>2?d-2:0),p=2;p<d;p++)u[p-2]=arguments[p];c=s.options.overloadTranslationOptionHandler([i,l].concat(u))}else c={...l};c.lng=c.lng||r.lng,c.lngs=c.lngs||r.lngs,c.ns=c.ns||r.ns,c.keyPrefix!==""&&(c.keyPrefix=c.keyPrefix||n||r.keyPrefix);const m=s.options.keySeparator||".";let h;return c.keyPrefix&&Array.isArray(i)?h=i.map(b=>`${c.keyPrefix}${m}${b}`):h=c.keyPrefix?`${c.keyPrefix}${m}${i}`:i,s.t(h,c)};return R(e)?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}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],s=this.options?this.options.fallbackLng:!1,r=this.languages[this.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(l,c)=>{const d=this.services.backendConnector.state[`${l}|${c}`];return d===-1||d===0||d===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)&&(!s||i(r,e)))}loadNamespaces(e,t){const n=Ha();return this.options.ns?(R(e)&&(e=[e]),e.forEach(s=>{this.options.ns.indexOf(s)<0&&this.options.ns.push(s)}),this.loadResources(s=>{n.resolve(),t&&t(s)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){const n=Ha();R(e)&&(e=[e]);const s=this.options.preload||[],r=e.filter(i=>s.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return r.length?(this.options.preload=s.concat(r),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 ks(Is());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 Ya(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Dt;const n=e.forkResourceStore;n&&delete e.forkResourceStore;const s={...this.options,...e,isClone:!0},r=new Ya(s);return(e.debug!==void 0||e.prefix!==void 0)&&(r.logger=r.logger.clone(e)),["store","services","language"].forEach(l=>{r[l]=this[l]}),r.services={...this.services},r.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},n&&(r.store=new Cs(this.store.data,s),r.services.resourceStore=r.store),r.translator=new xt(r.services,s),r.translator.on("*",function(l){for(var c=arguments.length,d=new Array(c>1?c-1:0),u=1;u<c;u++)d[u-1]=arguments[u];r.emit(l,...d)}),r.init(s,t),r.translator.options=s,r.translator.backendConnector.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},r}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Le=Ya.createInstance();Le.createInstance=Ya.createInstance;const li=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 di={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",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",usageBannerDismiss:"Dismiss",planBannerEyebrow:"Current plan",planBannerManagedTitle:"Managed in Dashboard",planBannerManagedSub:"This workspace uses an earlier billing system.",planBannerNoPlan:"No plan",planBannerCustomPricing:"Custom pricing",planBannerCustomConversations:"Custom conversations",planBannerCustom:"Custom",planBannerInclAddons:"· incl. add-ons",planBannerRenews:"Renews {date}",planBannerDowngradesTo:"Downgrades to {plan} on {date}",planBannerManageCta:"Manage plan",checkoutTitle:"Configure your plan",checkoutBackLabel:"Back to plans",checkoutPlanDetails:"Plan details",checkoutMonthlyBilling:"Monthly billing",checkoutAnnualBilling:"Annual billing",checkoutSaveBadge:"Save {savings}%",checkoutPaymentMethodTitle:"Payment method",checkoutSavedCardTab:"Saved",checkoutNewCardTab:"New card",checkoutBillingAddressTitle:"Billing address",checkoutCancelEdit:"Cancel",checkoutUpdateAddress:"Update",checkoutIsBusiness:"I'm purchasing as business",checkoutBusinessDetails:"Business details",checkoutBusinessNamePlaceholder:"Business name",checkoutTaxIdTypeLabel:"Tax ID type",checkoutTaxIdNumberPlaceholder:"Tax ID number",checkoutNoTaxRequired:"No tax ID is required for your billing country.",checkoutSelectCountryForTax:"Select your billing country above to add a tax ID.",checkoutContactInfo:"Contact information",checkoutEmailLabel:"Email",checkoutCardNotReady:"Card field is not ready",checkoutPaymentSetupFailed:"Payment setup failed",checkoutPaymentMethodMissing:"Could not retrieve payment method",checkoutAddressIncomplete:"Please complete your billing address",checkoutGenericError:"Something went wrong while processing your payment. You have not been charged twice.",checkoutSuccessToast:"Subscription activated",checkoutErrorToast:"Payment error",orderTopFeatures:"Top features",orderThen:"then {price} per {packSize}",orderPreviewError:"We couldn't compute your total. Try again in a moment.",orderPlanFromDate:"{plan} plan — from {date}",orderProratedToday:"Prorated for today",orderProratedTodayDesc:"Switching mid-period, we charge only for the time left in your current billing period. The full plan price above is billed at your next renewal, not today.",orderCreditUnusedTime:"Credit for unused time",orderAdjustUnusedTime:"Adjustment for unused time",orderCreditUnusedTimeDesc:"You already paid for time left in your current billing period. We credit that unused time and re-apply it at your new rate, so you're never double-charged.",orderAdjustUnusedTimeDesc:"Switching mid-cycle means we prorate the difference between your old and new plan for the days remaining in your current billing period.",orderAccountCredit:"Account credit",orderDueToday:"Due today",orderCreditTowardNext:"You have {amount} of unused time credited toward your next invoice.",orderBalanceAsCredit:"Your remaining balance of {amount} is applied as credit on your next invoice.",orderSavingsNote:"You're saving {monthlySavings}/month by choosing an annual plan. That's {yearlySavings}/year.",orderSubscribe:"Subscribe",orderPreviewUnavailable:"Preview unavailable",orderIntervalAnnual:"annual",orderIntervalMonthly:"monthly",orderRenewsMonthly:"Renews monthly until cancelled.",orderRenewsAnnually:"Renews annually until cancelled.",orderChargedStarting:"You'll be charged {amount}{period} starting {date}.",orderChargedNoDate:"You'll be charged {amount}{period}.",orderCancelNote:"Cancel anytime in Settings. By subscribing, you authorize Botpress to store and charge your payment method.",invoicesTitle:"Billing history",invoicesLoadError:"We couldn't load your invoices. Try again in a moment.",invoicesEmpty:"No invoices yet. They'll appear here after your first charge.",invoicesDownloadLabel:"Download invoice from {date}",invoiceStatusPaid:"Paid",invoiceStatusDue:"Due",invoiceStatusDraft:"Draft",invoiceStatusUnpaid:"Unpaid",invoiceStatusVoid:"Void",upgradeDialogTitle:"Upgrade your plan",upgradeMonthly:"Monthly",upgradeAnnual:"Annual",upgradeSaveBadge:"Save {savings}%",upgradeRecommended:"Recommended",upgradePerMonthSuffix:"/ month ({currency})",upgradeNoTopup:"No top-up",upgradeCurrentPlan:"Your current plan",upgradeNextPlan:"Next plan",upgradeCancelDowngrade:"Cancel downgrade",upgradeDowngrade:"Downgrade",upgradeSwitchToAnnual:"Switch to annual",upgradeSwitchToMonthly:"Switch to monthly",upgradePlanManaged:"Your plan is managed by Botpress — contact us to change it",upgradeUpgrade:"Upgrade",upgradeEverythingIn:"Everything in {planName}",upgradeContactUs:"Contact us",upgradeFooterEnterprise:"Need more, or running at scale?",upgradeFooterAboutEnterprise:"about Enterprise. Compare plans at",upgradeThenPer:"then {price} per {packSize} more",upgradeDowngradeSuccess:"Plan downgraded",upgradeDowngradeError:"Downgrade failed",upgradeCancelDowngradeSuccess:"Scheduled downgrade canceled",upgradeCancelDowngradeError:"Could not cancel the downgrade",addonsDialogTitle:"Manage add-ons",addonsSubtitleWithPlan:"Additional usage for your {planName} plan. Set a quantity to 0 to remove an add-on.",addonsSubtitleGeneric:"Additional usage for your plan. Set a quantity to 0 to remove an add-on.",addonsRequirePaidPlanTitle:"Add-ons require a paid plan",addonsRequirePaidPlanBody:"Upgrade your plan to unlock extra conversations, storage, and more.",addonsUpgradeCta:"Upgrade plan",addonsEach:"each",addonActiveOnly:"{count} active",addonRemovedNextCycle:"{activeNow} active now · removed next cycle",addonRemovedOnDate:"{activeNow} active now · removed {date}",addonChangedNextCycle:"{activeNow} active now · {pending} next cycle",addonChangedOnDate:"{activeNow} active now · {pending} from {date}",addonsNewLimits:"Your new limits",addonsPlanLine:"{planName} plan",addonsGenericPlan:"Plan",addonsTotalMonthly:"Total monthly cost",addonsTotalYearly:"Total yearly cost",addonsDueToday:"Due today",addonsChargedNow:"You'll be charged {amount} now for the rest of this billing period. ",addonsNoChargeToday:"No charge today — the change is prorated. ",addonsRenewalWithDate:"Add-ons stay active until you remove them and renew with your plan on {date}, when you'll be billed {amount}{interval} for them.",addonsRenewalNoDate:"Add-ons stay active until you remove them and renew with your plan, when you'll be billed {amount}{interval} for them.",addonsReadonlyNote:"Add-ons for this workspace are managed by Botpress — contact us to change them.",addonsUpdateSuccess:"Subscription updated",addonsUpdateError:"Could not update your add-ons",addonsUpdateSubscription:"Update subscription",addonsConvos:"{n} convos",outdatedTitle:"Billing is managed in the Botpress Dashboard",outdatedText:"This workspace is on an earlier billing system, so plan changes and payment details can't be managed here.",outdatedCta:"Open billing in Dashboard",outgrowTitle:"You're about to outgrow the Free plan",outgrowLede:"Free includes <bold>{quota}</bold> conversations total, and they don't renew. Upgrading moves you to a monthly allowance, unlocks more channels, and adds conversation packs, so your agents never stop replying.",outgrowSoFar:"So far",outgrowUsageText:"<bold>{used}</bold> of <bold>{quota}</bold> free conversations used · they don't renew",outgrowNoTopup:"No top-up",outgrowUpgradeTo:"Upgrade to {planName}",outgrowEverythingIn:"Everything in {planName}, and",outgrowNeedCustom:"Need custom volume, SLAs, or voice?",outgrowTalkToSales:"Talk to sales",outgrowCompareAll:"Compare all plans",outgrowThenPer:"then {symbol}{amount} per {packSize} more",paymentDialogTitle:"Payment & billing",paymentSessionError:"We couldn't start a secure session.",paymentMethodSection:"Payment method",paymentCardSaveError:"Could not save your card",paymentMethodMissing:"Could not retrieve payment method",paymentCardGenericError:"We couldn't save your card. Please check your details and try again.",paymentReplace:"Replace",paymentBillingAddressSection:"Billing address",paymentTaxIds:"Tax IDs",paymentTaxEmpty:"Add a VAT or tax registration number to show it on your invoices.",paymentTaxIdType:"Tax ID type",paymentTaxSelectType:"Select type",paymentTaxIdNumber:"Tax ID number",paymentTaxRemove:"Remove tax ID",paymentTaxAdd:"+ Add tax ID",paymentAddressIncomplete:"Please complete your billing address.",paymentAddressError:"Could not update your billing details.",paymentCardUpdated:"Card updated",paymentDetailsUpdated:"Billing details updated",paymentSaveCard:"Save card",paymentSaveBillingDetails:"Save billing details",paymentDetailsUpdateError:"Could not update your billing details",usageWidgetLimitReached:"Limit reached",usageWidgetRunningLow:"Running low",usageWidgetUpgradeToKeepGoing:"Upgrade to keep going.",usageWidgetOnlyLeft:"Only {left} left.",usageWidgetFreeExhausted:"All your free conversations are used, and they don't renew.",usageWidgetFreeLeft:"{left} free conversations left, and they don't renew.",usageWidgetEnterpriseOverQuota:"A Botpress representative will contact you at the end of the usage period.",usageWidgetResets:"Resets {date}",usageWidgetViewOptions:"View plan options",usagePopoverFreeTitle:"Free plan usage",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> included, total. They do not renew, and Free has no top-ups.",usagePopoverPlanName:"{planName} plan",usagePopoverTitle:"Usage this period",usagePopoverNudgeText:"<bold>Need more room?</bold> Plus includes 250 conversations a month, unlimited AI agents, and packs of 100 when you need them.",usagePopoverNudgeCta:"See what you get with Plus",dashboardUsage:"Usage",dashboardBillingPeriod:"Billing period",dashboardPrevMonth:"Previous month",dashboardNextMonth:"Next month",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Each conversation includes AI usage. When you reach your limit, extra conversations are added automatically so service continues.",dashboardStorageTitle:"Storage",dashboardStorageHint:"Shared across files, knowledge base, and tables.",dashboardAiTitle:"AI usage",dashboardAiHint:"Each conversation includes an allowance of AI usage. Track how much of that allowance you've used",dashboardEnterpriseUsageNotice:"Your usage will not be blocked if you go over quota.",dashboardLoadError:"We couldn't load your usage. Try again in a moment.",dashboardNoBotSpend:"No per-bot AI spend this period.",dashboardAiByBot:"AI spend by bot",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Table rows",dashboardVectorDb:"Vector DB storage",dashboardFileStorage:"File storage",dashboardAiSpend:"AI spend",dashboardFromPlan:"{amount} from {planName} plan",dashboardFromPlanGeneric:"{amount} from your plan",dashboardFromPlanWithAddons:"{amount} from {planName} plan + {addonAmount} from add-ons",dashboardFromPlanGenericWithAddons:"{amount} from your plan + {addonAmount} from add-ons",dashboardIncreaseLimits:"Increase limits",planFeatureAiUsageIncluded:"AI usage included",planFeature3Seats:"3 seats",planFeature3AiAgents:"3 AI agents",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Help center",planFeature1kTableRows:"1K table rows",planFeature100kTableRows:"100K table rows",planFeature500kTableRows:"500K table rows",planFeature100mbFileStorage:"100MB file storage",planFeature10gbFileStorage:"10GB file storage",planFeature50gbFileStorage:"50GB file storage",planFeature100mbVectorDb:"100MB vector DB storage",planFeature1gbVectorDb:"1GB vector DB storage",planFeature5gbVectorDb:"5GB vector DB storage",planFeatureCommunitySupport:"Community support",planFeatureUnlimitedAiAgents:"Unlimited AI agents",planFeatureWhatsappChannel:"WhatsApp channel",planFeatureHelpCenterCustomDomain:"Help Center custom domain",planFeatureWhitelabelWebchat:"Whitelabel webchat",planFeatureTechnicalSupportLiveChat:"Technical support via live chat",planFeatureUnlimitedSeats:"Unlimited seats",planFeatureTeamsRoutingRbac:"Teams, routing & RBAC",planFeatureTeamLevelAnalytics:"Team-level analytics",planFeatureVoiceChannel:"Voice channel",planFeatureDedicatedSupport:"Dedicated support",planFeatureSlaSecurity:"SLA & security review",planFeatureCustomStorage:"Custom storage",planFeatureDescAiUsageIncluded:"A monthly allowance of AI model spend is bundled into every plan — no separate AI bill.",planFeatureDesc3Seats:"Up to 3 team members can collaborate in this workspace.",planFeatureDescUnlimitedSeats:"Invite as many team members to the workspace as you need.",planFeatureDesc3AiAgents:"Build and publish up to 3 distinct AI agents.",planFeatureDescUnlimitedAiAgents:"Build and publish as many AI agents as you need.",planFeatureDescBotpressDesk:"The human-handoff inbox where agents triage and reply to live conversations.",planFeatureDescBotpressStudioAdk:"The visual Studio builder plus the Agent Development Kit for building agents in code.",planFeatureDescHelpCenter:"A hosted knowledge base your agent answers from and customers can browse.",planFeatureDescHelpCenterCustomDomain:"Serve your help center from your own domain instead of a Botpress URL.",planFeatureDescWhatsappChannel:"Connect your agent to WhatsApp to chat with customers there.",planFeatureDescVoiceChannel:"Connect your agent to phone/voice so it can handle spoken conversations.",planFeatureDescWhitelabelWebchat:"Remove Botpress branding from the web chat widget so it's fully your own.",planFeatureDescTeamsRoutingRbac:"Organize members into teams, route conversations between them, and control access by role.",planFeatureDescTeamLevelAnalytics:"Performance and volume metrics broken down per team.",planFeatureDescTechnicalSupportLiveChat:"Reach the Botpress support team over live chat for help.",planFeatureDescCommunitySupport:"Get help from the Botpress community forum and Discord.",planFeatureDescDedicatedSupport:"A named contact and priority support channel for your account.",planFeatureDescSlaSecurity:"A contractual uptime SLA and a security/compliance review for your procurement.",planFeatureDescCustomStorage:"Storage limits tailored to your workload, beyond the standard tiers.",planFeatureDesc1kTableRows:"1K rows across all your data tables.",planFeatureDesc100kTableRows:"100K rows across all your data tables.",planFeatureDesc500kTableRows:"500K rows across all your data tables.",planFeatureDesc100mbFileStorage:"100MB of uploaded files (documents, images, attachments).",planFeatureDesc10gbFileStorage:"10GB of uploaded files (documents, images, attachments).",planFeatureDesc50gbFileStorage:"50GB of uploaded files (documents, images, attachments).",planFeatureDesc100mbVectorDb:"100MB of embeddings for knowledge-base search and retrieval.",planFeatureDesc1gbVectorDb:"1GB of embeddings for knowledge-base search and retrieval.",planFeatureDesc5gbVectorDb:"5GB of embeddings for knowledge-base search and retrieval.",planDescriptionCommunity:"Free plan for trying things out",planDescriptionPlus:"For growing businesses",planDescriptionTeam:"For small teams",planDescriptionEnterprise:"Enterprise license subscription",planDescriptionManaged:"Managed license subscription",addonNameConversationSessions:"Conversations",addonNameStorage:"Storage",addonDescriptionConversationSessions:"Adds conversation sessions for the month",addonDescriptionStorage:"Adds table rows, vector DB space and files",summaryCurrentPlan:"Current plan",summaryManagedInDashboard:"Managed in Dashboard",summaryManagedMeta:"This workspace uses an earlier billing system.",summaryNoPlan:"No plan",summaryConversationsPerMo:"{n} conversations/mo",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} active add-on",summaryActiveAddons:"{count} active add-ons",summaryNoAddons:"No add-ons",summaryNoAddonsMeta:"Add extra conversations or storage"},ci={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",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",usageBannerDismiss:"Ignorer",planBannerEyebrow:"Plan actuel",planBannerManagedTitle:"Géré dans le tableau de bord",planBannerManagedSub:"Cet espace de travail utilise un système de facturation antérieur.",planBannerNoPlan:"Aucun plan",planBannerCustomPricing:"Tarification personnalisée",planBannerCustomConversations:"Conversations personnalisées",planBannerCustom:"Personnalisé",planBannerInclAddons:"· add-ons inclus",planBannerRenews:"Renouvellement le {date}",planBannerDowngradesTo:"Passe à {plan} le {date}",planBannerManageCta:"Gérer le plan",checkoutTitle:"Configurer votre plan",checkoutBackLabel:"Retour aux plans",checkoutPlanDetails:"Détails du plan",checkoutMonthlyBilling:"Facturation mensuelle",checkoutAnnualBilling:"Facturation annuelle",checkoutSaveBadge:"Économisez {savings}%",checkoutPaymentMethodTitle:"Moyen de paiement",checkoutSavedCardTab:"Enregistrée",checkoutNewCardTab:"Nouvelle carte",checkoutBillingAddressTitle:"Adresse de facturation",checkoutCancelEdit:"Annuler",checkoutUpdateAddress:"Mettre à jour",checkoutIsBusiness:"J'achète en tant qu'entreprise",checkoutBusinessDetails:"Informations d'entreprise",checkoutBusinessNamePlaceholder:"Nom de l'entreprise",checkoutTaxIdTypeLabel:"Type d'identifiant fiscal",checkoutTaxIdNumberPlaceholder:"Numéro d'identifiant fiscal",checkoutNoTaxRequired:"Aucun identifiant fiscal n'est requis pour votre pays de facturation.",checkoutSelectCountryForTax:"Sélectionnez votre pays de facturation ci-dessus pour ajouter un identifiant fiscal.",checkoutContactInfo:"Coordonnées",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"Le champ de carte n'est pas prêt",checkoutPaymentSetupFailed:"Échec de la configuration du paiement",checkoutPaymentMethodMissing:"Impossible de récupérer le moyen de paiement",checkoutAddressIncomplete:"Veuillez compléter votre adresse de facturation",checkoutGenericError:"Une erreur s'est produite lors du traitement de votre paiement. Vous n'avez pas été débité deux fois.",checkoutSuccessToast:"Abonnement activé",checkoutErrorToast:"Erreur de paiement",orderTopFeatures:"Fonctionnalités principales",orderThen:"puis {price} par {packSize}",orderPreviewError:"Impossible de calculer votre total. Réessayez dans un instant.",orderPlanFromDate:"Plan {plan} — à partir du {date}",orderProratedToday:"Calculé au prorata d'aujourd'hui",orderProratedTodayDesc:"En changeant de plan en milieu de période, vous ne payez que pour le temps restant dans votre période de facturation actuelle. Le prix total du plan ci-dessus est facturé à votre prochain renouvellement, pas aujourd'hui.",orderCreditUnusedTime:"Crédit pour le temps non utilisé",orderAdjustUnusedTime:"Ajustement pour le temps non utilisé",orderCreditUnusedTimeDesc:"Vous avez déjà payé pour le temps restant dans votre période de facturation actuelle. Nous créditons ce temps non utilisé et le réappliquons à votre nouveau tarif, afin que vous ne soyez jamais facturé deux fois.",orderAdjustUnusedTimeDesc:"Le changement en milieu de cycle signifie que nous calculons au prorata la différence entre votre ancien et votre nouveau plan pour les jours restants dans votre période de facturation actuelle.",orderAccountCredit:"Crédit de compte",orderDueToday:"À payer aujourd'hui",orderCreditTowardNext:"Vous avez {amount} de temps non utilisé crédité sur votre prochaine facture.",orderBalanceAsCredit:"Votre solde restant de {amount} est appliqué comme crédit sur votre prochaine facture.",orderSavingsNote:"Vous économisez {monthlySavings}/mois en choisissant un plan annuel. C'est {yearlySavings}/an.",orderSubscribe:"S'abonner",orderPreviewUnavailable:"Aperçu indisponible",orderIntervalAnnual:"annuellement",orderIntervalMonthly:"mensuellement",orderRenewsMonthly:"Renouvellement mensuel jusqu'à annulation.",orderRenewsAnnually:"Renouvellement annuel jusqu'à annulation.",orderChargedStarting:"Vous serez facturé {amount}{period} à partir du {date}.",orderChargedNoDate:"Vous serez facturé {amount}{period}.",orderCancelNote:"Annulez à tout moment dans les paramètres. En vous abonnant, vous autorisez Botpress à stocker et à débiter votre moyen de paiement.",invoicesTitle:"Historique de facturation",invoicesLoadError:"Impossible de charger vos factures. Réessayez dans un instant.",invoicesEmpty:"Aucune facture pour l'instant. Elles apparaîtront ici après votre première facturation.",invoicesDownloadLabel:"Télécharger la facture du {date}",invoiceStatusPaid:"Payée",invoiceStatusDue:"À payer",invoiceStatusDraft:"Brouillon",invoiceStatusUnpaid:"Impayée",invoiceStatusVoid:"Annulée",upgradeDialogTitle:"Mettre à niveau votre plan",upgradeMonthly:"Mensuel",upgradeAnnual:"Annuel",upgradeSaveBadge:"Économisez {savings}%",upgradeRecommended:"Recommandé",upgradePerMonthSuffix:"/ mois ({currency})",upgradeNoTopup:"Aucun forfait supplémentaire",upgradeCurrentPlan:"Votre plan actuel",upgradeNextPlan:"Prochain plan",upgradeCancelDowngrade:"Annuler la rétrogradation",upgradeDowngrade:"Rétrograder",upgradeSwitchToAnnual:"Passer à l'annuel",upgradeSwitchToMonthly:"Passer au mensuel",upgradePlanManaged:"Votre plan est géré par Botpress — contactez-nous pour le modifier",upgradeUpgrade:"Mettre à niveau",upgradeEverythingIn:"Tout ce qui est dans {planName}",upgradeContactUs:"Nous contacter",upgradeFooterEnterprise:"Besoin de plus, ou à grande échelle ?",upgradeFooterAboutEnterprise:"pour l'entreprise. Comparez les plans sur",upgradeThenPer:"puis {price} par {packSize} supplémentaires",upgradeDowngradeSuccess:"Plan rétrogradé",upgradeDowngradeError:"Échec de la rétrogradation",upgradeCancelDowngradeSuccess:"Rétrogradation planifiée annulée",upgradeCancelDowngradeError:"Impossible d'annuler la rétrogradation",addonsDialogTitle:"Gérer les add-ons",addonsSubtitleWithPlan:"Utilisation supplémentaire pour votre plan {planName}. Définissez une quantité à 0 pour supprimer un add-on.",addonsSubtitleGeneric:"Utilisation supplémentaire pour votre plan. Définissez une quantité à 0 pour supprimer un add-on.",addonsRequirePaidPlanTitle:"Les add-ons nécessitent un plan payant",addonsRequirePaidPlanBody:"Mettez à niveau votre plan pour débloquer des conversations, du stockage et plus encore.",addonsUpgradeCta:"Mettre à niveau le plan",addonsEach:"chacun",addonActiveOnly:"{count} actif",addonRemovedNextCycle:"{activeNow} actif maintenant · supprimé au prochain cycle",addonRemovedOnDate:"{activeNow} actif maintenant · supprimé le {date}",addonChangedNextCycle:"{activeNow} actif maintenant · {pending} au prochain cycle",addonChangedOnDate:"{activeNow} actif maintenant · {pending} à partir du {date}",addonsNewLimits:"Vos nouvelles limites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Coût mensuel total",addonsTotalYearly:"Coût annuel total",addonsDueToday:"À payer aujourd'hui",addonsChargedNow:"Vous serez facturé {amount} maintenant pour le reste de cette période de facturation. ",addonsNoChargeToday:"Aucun frais aujourd'hui — la modification est calculée au prorata. ",addonsRenewalWithDate:"Les add-ons restent actifs jusqu'à ce que vous les supprimiez et renouveliez votre plan le {date}, date à laquelle vous serez facturé {amount}{interval} pour ceux-ci.",addonsRenewalNoDate:"Les add-ons restent actifs jusqu'à ce que vous les supprimiez et renouveliez votre plan, date à laquelle vous serez facturé {amount}{interval} pour ceux-ci.",addonsReadonlyNote:"Les add-ons de cet espace de travail sont gérés par Botpress — contactez-nous pour les modifier.",addonsUpdateSuccess:"Abonnement mis à jour",addonsUpdateError:"Impossible de mettre à jour vos add-ons",addonsUpdateSubscription:"Mettre à jour l'abonnement",addonsConvos:"{n} conv.",outdatedTitle:"La facturation est gérée dans le tableau de bord Botpress",outdatedText:"Cet espace de travail utilise un système de facturation antérieur, donc les changements de plan et les informations de paiement ne peuvent pas être gérés ici.",outdatedCta:"Ouvrir la facturation dans le tableau de bord",outgrowTitle:"Vous êtes sur le point de dépasser le plan Gratuit",outgrowLede:"Le plan Gratuit inclut <bold>{quota}</bold> conversations au total, et elles ne se renouvellent pas. La mise à niveau vous donne une allocation mensuelle, débloque plus de canaux et ajoute des packs de conversations, pour que vos agents ne cessent jamais de répondre.",outgrowSoFar:"Jusqu'ici",outgrowUsageText:"<bold>{used}</bold> sur <bold>{quota}</bold> conversations gratuites utilisées · elles ne se renouvellent pas",outgrowNoTopup:"Aucun forfait supplémentaire",outgrowUpgradeTo:"Passer à {planName}",outgrowEverythingIn:"Tout ce qui est dans {planName}, et",outgrowNeedCustom:"Besoin de volume personnalisé, de SLA ou de voix ?",outgrowTalkToSales:"Parlez à nos commerciaux",outgrowCompareAll:"Comparer tous les plans",outgrowThenPer:"puis {symbol}{amount} par {packSize} supplémentaires",paymentDialogTitle:"Paiement et facturation",paymentSessionError:"Impossible de démarrer une session sécurisée.",paymentMethodSection:"Moyen de paiement",paymentCardSaveError:"Impossible d'enregistrer votre carte",paymentMethodMissing:"Impossible de récupérer le moyen de paiement",paymentCardGenericError:"Impossible d'enregistrer votre carte. Veuillez vérifier vos informations et réessayer.",paymentReplace:"Remplacer",paymentBillingAddressSection:"Adresse de facturation",paymentTaxIds:"Identifiants fiscaux",paymentTaxEmpty:"Ajoutez un numéro de TVA ou d'identification fiscale pour qu'il apparaisse sur vos factures.",paymentTaxIdType:"Type d'identifiant fiscal",paymentTaxSelectType:"Sélectionner le type",paymentTaxIdNumber:"Numéro d'identifiant fiscal",paymentTaxRemove:"Supprimer l'identifiant fiscal",paymentTaxAdd:"+ Ajouter un identifiant fiscal",paymentAddressIncomplete:"Veuillez compléter votre adresse de facturation.",paymentAddressError:"Impossible de mettre à jour vos informations de facturation.",paymentCardUpdated:"Carte mise à jour",paymentDetailsUpdated:"Informations de facturation mises à jour",paymentSaveCard:"Enregistrer la carte",paymentSaveBillingDetails:"Enregistrer les informations de facturation",paymentDetailsUpdateError:"Impossible de mettre à jour vos informations de facturation",usageWidgetLimitReached:"Limite atteinte",usageWidgetRunningLow:"Stock faible",usageWidgetUpgradeToKeepGoing:"Mettez à niveau pour continuer.",usageWidgetOnlyLeft:"Plus que {left}.",usageWidgetFreeExhausted:"Toutes vos conversations gratuites sont utilisées et elles ne se renouvellent pas.",usageWidgetFreeLeft:"{left} conversations gratuites restantes, et elles ne se renouvellent pas.",usageWidgetEnterpriseOverQuota:"Un représentant Botpress vous contactera à la fin de la période d’utilisation.",usageWidgetResets:"Réinitialisation le {date}",usageWidgetViewOptions:"Voir les options de plan",usagePopoverFreeTitle:"Utilisation du plan gratuit",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> incluses, au total. Elles ne se renouvellent pas, et le plan Gratuit n’a pas de recharge.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"Utilisation de cette période",usagePopoverNudgeText:"<bold>Besoin de plus d’espace ?</bold> Plus inclut 250 conversations par mois, des agents IA illimités, et des packs de 100 en cas de besoin.",usagePopoverNudgeCta:"Découvrez ce que Plus vous offre",dashboardUsage:"Utilisation",dashboardBillingPeriod:"Période de facturation",dashboardPrevMonth:"Mois précédent",dashboardNextMonth:"Mois suivant",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Chaque conversation inclut l'utilisation de l'IA. Lorsque vous atteignez votre limite, des conversations supplémentaires sont ajoutées automatiquement pour que le service continue.",dashboardStorageTitle:"Stockage",dashboardStorageHint:"Partagé entre les fichiers, la base de connaissances et les tables.",dashboardAiTitle:"Utilisation de l'IA",dashboardAiHint:"Chaque conversation inclut une allocation d'usage IA. Suivez la part de cette allocation que vous avez utilisée",dashboardEnterpriseUsageNotice:"Votre utilisation ne sera pas bloquée si vous dépassez votre quota.",dashboardLoadError:"Impossible de charger votre utilisation. Réessayez dans un instant.",dashboardNoBotSpend:"Aucune dépense IA par bot pour cette période.",dashboardAiByBot:"Dépenses IA par bot",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Lignes de table",dashboardVectorDb:"Stockage vectoriel",dashboardFileStorage:"Stockage de fichiers",dashboardAiSpend:"Dépenses IA",dashboardFromPlan:"{amount} du plan {planName}",dashboardFromPlanGeneric:"{amount} de votre plan",dashboardFromPlanWithAddons:"{amount} du plan {planName} + {addonAmount} des add-ons",dashboardFromPlanGenericWithAddons:"{amount} de votre plan + {addonAmount} des add-ons",dashboardIncreaseLimits:"Augmenter les limites",planFeatureAiUsageIncluded:"Utilisation de l'IA incluse",planFeature3Seats:"3 postes",planFeature3AiAgents:"3 agents IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Centre d'aide",planFeature1kTableRows:"1K lignes de table",planFeature100kTableRows:"100K lignes de table",planFeature500kTableRows:"500K lignes de table",planFeature100mbFileStorage:"100Mo de stockage de fichiers",planFeature10gbFileStorage:"10Go de stockage de fichiers",planFeature50gbFileStorage:"50Go de stockage de fichiers",planFeature100mbVectorDb:"100Mo de stockage vectoriel",planFeature1gbVectorDb:"1Go de stockage vectoriel",planFeature5gbVectorDb:"5Go de stockage vectoriel",planFeatureCommunitySupport:"Support communautaire",planFeatureUnlimitedAiAgents:"Agents IA illimités",planFeatureWhatsappChannel:"Canal WhatsApp",planFeatureHelpCenterCustomDomain:"Domaine personnalisé du centre d'aide",planFeatureWhitelabelWebchat:"Webchat sans marque",planFeatureTechnicalSupportLiveChat:"Support technique par chat en direct",planFeatureUnlimitedSeats:"Postes illimités",planFeatureTeamsRoutingRbac:"Équipes, routage et RBAC",planFeatureTeamLevelAnalytics:"Analytiques par équipe",planFeatureVoiceChannel:"Canal vocal",planFeatureDedicatedSupport:"Support dédié",planFeatureSlaSecurity:"SLA et audit de sécurité",planFeatureCustomStorage:"Stockage personnalisé",planFeatureDescAiUsageIncluded:"Chaque plan inclut une allocation mensuelle de dépenses en modèles IA — aucune facture IA séparée.",planFeatureDesc3Seats:"Jusqu'à 3 membres de l'équipe peuvent collaborer dans cet espace de travail.",planFeatureDescUnlimitedSeats:"Invitez autant de membres d'équipe que nécessaire dans l'espace de travail.",planFeatureDesc3AiAgents:"Créez et publiez jusqu'à 3 agents IA distincts.",planFeatureDescUnlimitedAiAgents:"Créez et publiez autant d'agents IA que nécessaire.",planFeatureDescBotpressDesk:"La boîte de réception de transfert humain où les agents trient et répondent aux conversations en direct.",planFeatureDescBotpressStudioAdk:"Le constructeur visuel Studio plus le Kit de Développement d'Agents pour créer des agents en code.",planFeatureDescHelpCenter:"Une base de connaissances hébergée depuis laquelle votre agent répond et que les clients peuvent consulter.",planFeatureDescHelpCenterCustomDomain:"Publiez votre centre d'aide depuis votre propre domaine plutôt qu'une URL Botpress.",planFeatureDescWhatsappChannel:"Connectez votre agent à WhatsApp pour discuter avec vos clients là-bas.",planFeatureDescVoiceChannel:"Connectez votre agent au téléphone/vocal pour qu'il puisse gérer les conversations parlées.",planFeatureDescWhitelabelWebchat:"Supprimez la marque Botpress du widget de chat web pour qu'il soit entièrement le vôtre.",planFeatureDescTeamsRoutingRbac:"Organisez les membres en équipes, routez les conversations entre elles et contrôlez l'accès par rôle.",planFeatureDescTeamLevelAnalytics:"Métriques de performance et de volume ventilées par équipe.",planFeatureDescTechnicalSupportLiveChat:"Contactez l'équipe de support Botpress par chat en direct pour obtenir de l'aide.",planFeatureDescCommunitySupport:"Obtenez de l'aide sur le forum communautaire Botpress et Discord.",planFeatureDescDedicatedSupport:"Un contact désigné et un canal de support prioritaire pour votre compte.",planFeatureDescSlaSecurity:"Un SLA de disponibilité contractuel et un audit de sécurité/conformité pour votre processus d'achat.",planFeatureDescCustomStorage:"Limites de stockage adaptées à votre charge de travail, au-delà des niveaux standard.",planFeatureDesc1kTableRows:"1K lignes dans toutes vos tables de données.",planFeatureDesc100kTableRows:"100K lignes dans toutes vos tables de données.",planFeatureDesc500kTableRows:"500K lignes dans toutes vos tables de données.",planFeatureDesc100mbFileStorage:"100Mo de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc10gbFileStorage:"10Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc50gbFileStorage:"50Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc100mbVectorDb:"100Mo d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc1gbVectorDb:"1Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc5gbVectorDb:"5Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planDescriptionCommunity:"Plan gratuit pour essayer",planDescriptionPlus:"Pour les entreprises en croissance",planDescriptionTeam:"Pour les petites équipes",planDescriptionEnterprise:"Abonnement à la licence entreprise",planDescriptionManaged:"Abonnement à la licence gérée",addonNameConversationSessions:"Conversations",addonNameStorage:"Stockage",addonDescriptionConversationSessions:"Ajoute des sessions de conversation pour le mois",addonDescriptionStorage:"Ajoute des lignes de table, de l'espace vectoriel et des fichiers",summaryCurrentPlan:"Plan actuel",summaryManagedInDashboard:"Géré dans le tableau de bord",summaryManagedMeta:"Cet espace de travail utilise un système de facturation antérieur.",summaryNoPlan:"Aucun plan",summaryConversationsPerMo:"{n} conversations/mois",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on actif",summaryActiveAddons:"{count} add-ons actifs",summaryNoAddons:"Aucun add-on",summaryNoAddonsMeta:"Ajoutez des conversations ou du stockage supplémentaires"},ui={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",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",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plan actual",planBannerManagedTitle:"Gestionado en el Panel",planBannerManagedSub:"Este espacio de trabajo utiliza un sistema de facturación anterior.",planBannerNoPlan:"Sin plan",planBannerCustomPricing:"Precio personalizado",planBannerCustomConversations:"Conversaciones personalizadas",planBannerCustom:"Personalizado",planBannerInclAddons:"· add-ons incluidos",planBannerRenews:"Renovación el {date}",planBannerDowngradesTo:"Cambia a {plan} el {date}",planBannerManageCta:"Gestionar plan",checkoutTitle:"Configura tu plan",checkoutBackLabel:"Volver a los planes",checkoutPlanDetails:"Detalles del plan",checkoutMonthlyBilling:"Facturación mensual",checkoutAnnualBilling:"Facturación anual",checkoutSaveBadge:"Ahorra un {savings}%",checkoutPaymentMethodTitle:"Método de pago",checkoutSavedCardTab:"Guardada",checkoutNewCardTab:"Nueva tarjeta",checkoutBillingAddressTitle:"Dirección de facturación",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Actualizar",checkoutIsBusiness:"Compro como empresa",checkoutBusinessDetails:"Datos de empresa",checkoutBusinessNamePlaceholder:"Nombre de la empresa",checkoutTaxIdTypeLabel:"Tipo de NIF",checkoutTaxIdNumberPlaceholder:"Número de NIF",checkoutNoTaxRequired:"No se requiere NIF para tu país de facturación.",checkoutSelectCountryForTax:"Selecciona tu país de facturación arriba para añadir un NIF.",checkoutContactInfo:"Información de contacto",checkoutEmailLabel:"Correo electrónico",checkoutCardNotReady:"El campo de tarjeta no está listo",checkoutPaymentSetupFailed:"Error al configurar el pago",checkoutPaymentMethodMissing:"No se pudo obtener el método de pago",checkoutAddressIncomplete:"Completa tu dirección de facturación",checkoutGenericError:"Se produjo un error al procesar tu pago. No se te ha cobrado dos veces.",checkoutSuccessToast:"Suscripción activada",checkoutErrorToast:"Error de pago",orderTopFeatures:"Características principales",orderThen:"luego {price} por {packSize}",orderPreviewError:"No pudimos calcular tu total. Inténtalo de nuevo en un momento.",orderPlanFromDate:"Plan {plan} — desde el {date}",orderProratedToday:"Prorrateo de hoy",orderProratedTodayDesc:"Al cambiar de plan a mitad de período, solo pagas por el tiempo restante en tu período de facturación actual. El precio completo del plan se cobra en tu próxima renovación, no hoy.",orderCreditUnusedTime:"Crédito por tiempo no utilizado",orderAdjustUnusedTime:"Ajuste por tiempo no utilizado",orderCreditUnusedTimeDesc:"Ya pagaste por el tiempo restante en tu período de facturación actual. Acreditamos ese tiempo no utilizado y lo reaplicamos a tu nueva tarifa, para que nunca se te cobre dos veces.",orderAdjustUnusedTimeDesc:"Cambiar a mitad de ciclo significa que prorrateamos la diferencia entre tu plan antiguo y el nuevo por los días restantes en tu período de facturación actual.",orderAccountCredit:"Crédito de cuenta",orderDueToday:"A pagar hoy",orderCreditTowardNext:"Tienes {amount} de tiempo no utilizado acreditado en tu próxima factura.",orderBalanceAsCredit:"Tu saldo restante de {amount} se aplica como crédito en tu próxima factura.",orderSavingsNote:"Estás ahorrando {monthlySavings}/mes al elegir un plan anual. Eso es {yearlySavings}/año.",orderSubscribe:"Suscribirse",orderPreviewUnavailable:"Vista previa no disponible",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensualmente",orderRenewsMonthly:"Se renueva mensualmente hasta que canceles.",orderRenewsAnnually:"Se renueva anualmente hasta que canceles.",orderChargedStarting:"Se te cobrará {amount}{period} a partir del {date}.",orderChargedNoDate:"Se te cobrará {amount}{period}.",orderCancelNote:"Cancela en cualquier momento en la Configuración. Al suscribirte, autorizas a Botpress a almacenar y cobrar tu método de pago.",invoicesTitle:"Historial de facturación",invoicesLoadError:"No pudimos cargar tus facturas. Inténtalo de nuevo en un momento.",invoicesEmpty:"Aún no hay facturas. Aparecerán aquí después de tu primer cargo.",invoicesDownloadLabel:"Descargar factura del {date}",invoiceStatusPaid:"Pagada",invoiceStatusDue:"Pendiente",invoiceStatusDraft:"Borrador",invoiceStatusUnpaid:"Impagada",invoiceStatusVoid:"Anulada",upgradeDialogTitle:"Actualizar tu plan",upgradeMonthly:"Mensual",upgradeAnnual:"Anual",upgradeSaveBadge:"Ahorra un {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mes ({currency})",upgradeNoTopup:"Sin recarga",upgradeCurrentPlan:"Tu plan actual",upgradeNextPlan:"Siguiente plan",upgradeCancelDowngrade:"Cancelar reducción",upgradeDowngrade:"Reducir plan",upgradeSwitchToAnnual:"Cambiar a anual",upgradeSwitchToMonthly:"Cambiar a mensual",upgradePlanManaged:"Tu plan está gestionado por Botpress — contáctanos para cambiarlo",upgradeUpgrade:"Actualizar",upgradeEverythingIn:"Todo lo de {planName}",upgradeContactUs:"Contáctanos",upgradeFooterEnterprise:"¿Necesitas más o trabajas a gran escala?",upgradeFooterAboutEnterprise:"para Enterprise. Compara planes en",upgradeThenPer:"luego {price} por {packSize} adicionales",upgradeDowngradeSuccess:"Plan reducido",upgradeDowngradeError:"Error al reducir el plan",upgradeCancelDowngradeSuccess:"Reducción programada cancelada",upgradeCancelDowngradeError:"No se pudo cancelar la reducción",addonsDialogTitle:"Gestionar add-ons",addonsSubtitleWithPlan:"Uso adicional para tu plan {planName}. Establece una cantidad en 0 para eliminar un add-on.",addonsSubtitleGeneric:"Uso adicional para tu plan. Establece una cantidad en 0 para eliminar un add-on.",addonsRequirePaidPlanTitle:"Los add-ons requieren un plan de pago",addonsRequirePaidPlanBody:"Actualiza tu plan para desbloquear conversaciones adicionales, almacenamiento y más.",addonsUpgradeCta:"Actualizar plan",addonsEach:"c/u",addonActiveOnly:"{count} activo",addonRemovedNextCycle:"{activeNow} activos ahora · eliminados en el próximo ciclo",addonRemovedOnDate:"{activeNow} activos ahora · eliminados el {date}",addonChangedNextCycle:"{activeNow} activos ahora · {pending} en el próximo ciclo",addonChangedOnDate:"{activeNow} activos ahora · {pending} a partir del {date}",addonsNewLimits:"Tus nuevos límites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Costo mensual total",addonsTotalYearly:"Costo anual total",addonsDueToday:"A pagar hoy",addonsChargedNow:"Se te cobrará {amount} ahora por el resto de este período de facturación. ",addonsNoChargeToday:"Sin cargo hoy — el cambio se calcula al prorrateo. ",addonsRenewalWithDate:"Los add-ons permanecen activos hasta que los elimines y renueves tu plan el {date}, fecha en la que se te cobrará {amount}{interval} por ellos.",addonsRenewalNoDate:"Los add-ons permanecen activos hasta que los elimines y renueves tu plan, fecha en la que se te cobrará {amount}{interval} por ellos.",addonsReadonlyNote:"Los add-ons de este espacio de trabajo están gestionados por Botpress — contáctanos para cambiarlos.",addonsUpdateSuccess:"Suscripción actualizada",addonsUpdateError:"No se pudo actualizar tus add-ons",addonsUpdateSubscription:"Actualizar suscripción",addonsConvos:"{n} conv.",outdatedTitle:"La facturación se gestiona en el Panel de Botpress",outdatedText:"Este espacio de trabajo utiliza un sistema de facturación anterior, por lo que los cambios de plan y los datos de pago no se pueden gestionar aquí.",outdatedCta:"Abrir facturación en el Panel",outgrowTitle:"Estás a punto de superar el plan Gratuito",outgrowLede:"El plan Gratuito incluye <bold>{quota}</bold> conversaciones en total, y no se renuevan. Al actualizar, obtienes una asignación mensual, desbloqueas más canales y añades packs de conversaciones, para que tus agentes nunca dejen de responder.",outgrowSoFar:"Hasta ahora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversaciones gratuitas usadas · no se renuevan",outgrowNoTopup:"Sin recarga",outgrowUpgradeTo:"Actualizar a {planName}",outgrowEverythingIn:"Todo lo de {planName}, y",outgrowNeedCustom:"¿Necesitas volumen personalizado, SLAs o voz?",outgrowTalkToSales:"Habla con ventas",outgrowCompareAll:"Comparar todos los planes",outgrowThenPer:"luego {symbol}{amount} por {packSize} adicionales",paymentDialogTitle:"Pago y facturación",paymentSessionError:"No pudimos iniciar una sesión segura.",paymentMethodSection:"Método de pago",paymentCardSaveError:"No se pudo guardar tu tarjeta",paymentMethodMissing:"No se pudo obtener el método de pago",paymentCardGenericError:"No pudimos guardar tu tarjeta. Verifica tus datos e inténtalo de nuevo.",paymentReplace:"Reemplazar",paymentBillingAddressSection:"Dirección de facturación",paymentTaxIds:"Número de identificación fiscal",paymentTaxEmpty:"Añade un número de IVA o identificación fiscal para que aparezca en tus facturas.",paymentTaxIdType:"Tipo de NIF",paymentTaxSelectType:"Seleccionar tipo",paymentTaxIdNumber:"Número de NIF",paymentTaxRemove:"Eliminar NIF",paymentTaxAdd:"+ Añadir NIF",paymentAddressIncomplete:"Completa tu dirección de facturación.",paymentAddressError:"No se pudieron actualizar tus datos de facturación.",paymentCardUpdated:"Tarjeta actualizada",paymentDetailsUpdated:"Datos de facturación actualizados",paymentSaveCard:"Guardar tarjeta",paymentSaveBillingDetails:"Guardar datos de facturación",paymentDetailsUpdateError:"No se pudieron actualizar tus datos de facturación",usageWidgetLimitReached:"Límite alcanzado",usageWidgetRunningLow:"Stock bajo",usageWidgetUpgradeToKeepGoing:"Actualiza para continuar.",usageWidgetOnlyLeft:"Solo quedan {left}.",usageWidgetFreeExhausted:"Todas tus conversaciones gratuitas están agotadas y no se renuevan.",usageWidgetFreeLeft:"Te quedan {left} conversaciones gratuitas y no se renuevan.",usageWidgetEnterpriseOverQuota:"Un representante de Botpress se pondrá en contacto contigo al final del período de uso.",usageWidgetResets:"Se restablece el {date}",usageWidgetViewOptions:"Ver opciones de plan",usagePopoverFreeTitle:"Uso del plan gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversaciones</bold> incluidas, en total. No se renuevan, y el plan Gratis no tiene recargas.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"Uso de este período",usagePopoverNudgeText:"<bold>¿Necesitas más espacio?</bold> Plus incluye 250 conversaciones al mes, agentes de IA ilimitados y paquetes de 100 cuando los necesites.",usagePopoverNudgeCta:"Descubre lo que obtienes con Plus",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de facturación",dashboardPrevMonth:"Mes anterior",dashboardNextMonth:"Mes siguiente",dashboardConversationsTitle:"Conversaciones",dashboardConversationsHint:"Cada conversación incluye uso de IA. Cuando alcanzas tu límite, se añaden conversaciones adicionales automáticamente para que el service continúe.",dashboardStorageTitle:"Almacenamiento",dashboardStorageHint:"Compartido entre archivos, base de conocimiento y tablas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversación incluye una asignación de uso de IA. Controla cuánto de esa asignación has usado",dashboardEnterpriseUsageNotice:"Tu uso no se bloqueará si superas la cuota.",dashboardLoadError:"No pudimos cargar tu uso. Inténtalo de nuevo en un momento.",dashboardNoBotSpend:"Sin gasto de IA por bot en este período.",dashboardAiByBot:"Gasto de IA por bot",dashboardConversationsMetric:"Conversaciones",dashboardTableRows:"Filas de tabla",dashboardVectorDb:"Almacenamiento vectorial",dashboardFileStorage:"Almacenamiento de archivos",dashboardAiSpend:"Gasto en IA",dashboardFromPlan:"{amount} del plan {planName}",dashboardFromPlanGeneric:"{amount} de tu plan",dashboardFromPlanWithAddons:"{amount} del plan {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} de tu plan + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar límites",planFeatureAiUsageIncluded:"Uso de IA incluido",planFeature3Seats:"3 puestos",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Centro de ayuda",planFeature1kTableRows:"1K filas de tabla",planFeature100kTableRows:"100K filas de tabla",planFeature500kTableRows:"500K filas de tabla",planFeature100mbFileStorage:"100MB de almacenamiento de archivos",planFeature10gbFileStorage:"10GB de almacenamiento de archivos",planFeature50gbFileStorage:"50GB de almacenamiento de archivos",planFeature100mbVectorDb:"100MB de almacenamiento vectorial",planFeature1gbVectorDb:"1GB de almacenamiento vectorial",planFeature5gbVectorDb:"5GB de almacenamiento vectorial",planFeatureCommunitySupport:"Soporte comunitario",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal de WhatsApp",planFeatureHelpCenterCustomDomain:"Dominio personalizado del centro de ayuda",planFeatureWhitelabelWebchat:"Webchat sin marca",planFeatureTechnicalSupportLiveChat:"Soporte técnico por chat en vivo",planFeatureUnlimitedSeats:"Puestos ilimitados",planFeatureTeamsRoutingRbac:"Equipos, enrutamiento y RBAC",planFeatureTeamLevelAnalytics:"Analíticas por equipo",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Soporte dedicado",planFeatureSlaSecurity:"SLA y revisión de seguridad",planFeatureCustomStorage:"Almacenamiento personalizado",planFeatureDescAiUsageIncluded:"Cada plan incluye una asignación mensual de gasto en modelos de IA — sin factura de IA adicional.",planFeatureDesc3Seats:"Hasta 3 miembros del equipo pueden colaborar en este espacio de trabajo.",planFeatureDescUnlimitedSeats:"Invita a todos los miembros del equipo que necesites al espacio de trabajo.",planFeatureDesc3AiAgents:"Crea y publica hasta 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crea y publica todos los agentes de IA que necesites.",planFeatureDescBotpressDesk:"La bandeja de entrada de traspaso a humanos donde los agentes gestionan y responden conversaciones en vivo.",planFeatureDescBotpressStudioAdk:"El constructor visual Studio más el Kit de Desarrollo de Agentes para crear agentes en código.",planFeatureDescHelpCenter:"Una base de conocimiento alojada desde la que responde tu agente y que los clientes pueden consultar.",planFeatureDescHelpCenterCustomDomain:"Publica tu centro de ayuda desde tu propio dominio en lugar de una URL de Botpress.",planFeatureDescWhatsappChannel:"Conecta tu agente a WhatsApp para chatear con los clientes allí.",planFeatureDescVoiceChannel:"Conecta tu agente al teléfono/voz para que pueda gestionar conversaciones habladas.",planFeatureDescWhitelabelWebchat:"Elimina la marca de Botpress del widget de chat web para que sea completamente tuyo.",planFeatureDescTeamsRoutingRbac:"Organiza miembros en equipos, enruta conversaciones entre ellos y controla el acceso por rol.",planFeatureDescTeamLevelAnalytics:"Métricas de rendimiento y volumen desglosadas por equipo.",planFeatureDescTechnicalSupportLiveChat:"Contacta al equipo de soporte de Botpress por chat en vivo para obtener ayuda.",planFeatureDescCommunitySupport:"Obtén ayuda del foro de la comunidad de Botpress y Discord.",planFeatureDescDedicatedSupport:"Un contacto designado y un canal de soporte prioritario para tu cuenta.",planFeatureDescSlaSecurity:"Un SLA de disponibilidad contractual y una revisión de seguridad/cumplimiento para tu proceso de adquisición.",planFeatureDescCustomStorage:"Límites de almacenamiento adaptados a tu carga de trabajo, más allá de los niveles estándar.",planFeatureDesc1kTableRows:"1K filas en todas tus tablas de datos.",planFeatureDesc100kTableRows:"100K filas en todas tus tablas de datos.",planFeatureDesc500kTableRows:"500K filas en todas tus tablas de datos.",planFeatureDesc100mbFileStorage:"100MB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc10gbFileStorage:"10GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc50gbFileStorage:"50GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planDescriptionCommunity:"Plan gratuito para explorar",planDescriptionPlus:"Para negocios en crecimiento",planDescriptionTeam:"Para equipos pequeños",planDescriptionEnterprise:"Suscripción de licencia empresarial",planDescriptionManaged:"Suscripción de licencia gestionada",addonNameConversationSessions:"Conversaciones",addonNameStorage:"Almacenamiento",addonDescriptionConversationSessions:"Añade sesiones de conversación para el mes",addonDescriptionStorage:"Añade filas de tabla, espacio de base de datos vectorial y archivos",summaryCurrentPlan:"Plan actual",summaryManagedInDashboard:"Gestionado en el Panel",summaryManagedMeta:"Este espacio de trabajo utiliza un sistema de facturación anterior.",summaryNoPlan:"Sin plan",summaryConversationsPerMo:"{n} conversaciones/mes",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on activo",summaryActiveAddons:"{count} add-ons activos",summaryNoAddons:"Sin add-ons",summaryNoAddonsMeta:"Añade conversaciones o almacenamiento adicional"},pi={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",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",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plano atual",planBannerManagedTitle:"Gerenciado no Painel",planBannerManagedSub:"Este espaço de trabalho usa um sistema de cobrança anterior.",planBannerNoPlan:"Sem plano",planBannerCustomPricing:"Preço personalizado",planBannerCustomConversations:"Conversas personalizadas",planBannerCustom:"Personalizado",planBannerInclAddons:"· add-ons incluídos",planBannerRenews:"Renova em {date}",planBannerDowngradesTo:"Muda para {plan} em {date}",planBannerManageCta:"Gerenciar plano",checkoutTitle:"Configurar seu plano",checkoutBackLabel:"Voltar aos planos",checkoutPlanDetails:"Detalhes do plano",checkoutMonthlyBilling:"Cobrança mensal",checkoutAnnualBilling:"Cobrança anual",checkoutSaveBadge:"Economize {savings}%",checkoutPaymentMethodTitle:"Forma de pagamento",checkoutSavedCardTab:"Salvo",checkoutNewCardTab:"Novo cartão",checkoutBillingAddressTitle:"Endereço de cobrança",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Atualizar",checkoutIsBusiness:"Estou comprando como empresa",checkoutBusinessDetails:"Dados da empresa",checkoutBusinessNamePlaceholder:"Nome da empresa",checkoutTaxIdTypeLabel:"Tipo de CNPJ/CPF",checkoutTaxIdNumberPlaceholder:"Número de CNPJ/CPF",checkoutNoTaxRequired:"Nenhum número fiscal é necessário para seu país de cobrança.",checkoutSelectCountryForTax:"Selecione seu país de cobrança acima para adicionar um número fiscal.",checkoutContactInfo:"Informações de contato",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"O campo do cartão não está pronto",checkoutPaymentSetupFailed:"Falha ao configurar pagamento",checkoutPaymentMethodMissing:"Não foi possível recuperar a forma de pagamento",checkoutAddressIncomplete:"Preencha seu endereço de cobrança",checkoutGenericError:"Ocorreu um erro ao processar seu pagamento. Você não foi cobrado duas vezes.",checkoutSuccessToast:"Assinatura ativada",checkoutErrorToast:"Erro de pagamento",orderTopFeatures:"Principais recursos",orderThen:"depois {price} por {packSize}",orderPreviewError:"Não foi possível calcular seu total. Tente novamente em um momento.",orderPlanFromDate:"Plano {plan} — a partir de {date}",orderProratedToday:"Rateado para hoje",orderProratedTodayDesc:"Ao mudar de plano no meio do período, você paga apenas pelo tempo restante no seu período de cobrança atual. O preço total do plano acima é cobrado na sua próxima renovação, não hoje.",orderCreditUnusedTime:"Crédito por tempo não utilizado",orderAdjustUnusedTime:"Ajuste por tempo não utilizado",orderCreditUnusedTimeDesc:"Você já pagou pelo tempo restante no seu período de cobrança atual. Creditamos esse tempo não utilizado e o reaplicamos na sua nova tarifa, para que você nunca seja cobrado duas vezes.",orderAdjustUnusedTimeDesc:"Mudar no meio do ciclo significa que rateamos a diferença entre seu plano antigo e o novo pelos dias restantes no seu período de cobrança atual.",orderAccountCredit:"Crédito em conta",orderDueToday:"A pagar hoje",orderCreditTowardNext:"Você tem {amount} de tempo não utilizado creditado na sua próxima fatura.",orderBalanceAsCredit:"Seu saldo restante de {amount} é aplicado como crédito na sua próxima fatura.",orderSavingsNote:"Você está economizando {monthlySavings}/mês ao escolher um plano anual. Isso é {yearlySavings}/ano.",orderSubscribe:"Assinar",orderPreviewUnavailable:"Pré-visualização indisponível",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensalmente",orderRenewsMonthly:"Renova mensalmente até ser cancelado.",orderRenewsAnnually:"Renova anualmente até ser cancelado.",orderChargedStarting:"Você será cobrado {amount}{period} a partir de {date}.",orderChargedNoDate:"Você será cobrado {amount}{period}.",orderCancelNote:"Cancele a qualquer momento nas Configurações. Ao assinar, você autoriza a Botpress a armazenar e cobrar sua forma de pagamento.",invoicesTitle:"Histórico de cobrança",invoicesLoadError:"Não foi possível carregar suas faturas. Tente novamente em um momento.",invoicesEmpty:"Nenhuma fatura ainda. Elas aparecerão aqui após seu primeiro pagamento.",invoicesDownloadLabel:"Baixar fatura de {date}",invoiceStatusPaid:"Pago",invoiceStatusDue:"Pendente",invoiceStatusDraft:"Rascunho",invoiceStatusUnpaid:"Não pago",invoiceStatusVoid:"Cancelado",upgradeDialogTitle:"Atualizar seu plano",upgradeMonthly:"Mensal",upgradeAnnual:"Anual",upgradeSaveBadge:"Economize {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mês ({currency})",upgradeNoTopup:"Sem pacote adicional",upgradeCurrentPlan:"Seu plano atual",upgradeNextPlan:"Próximo plano",upgradeCancelDowngrade:"Cancelar redução",upgradeDowngrade:"Reduzir plano",upgradeSwitchToAnnual:"Mudar para anual",upgradeSwitchToMonthly:"Mudar para mensal",upgradePlanManaged:"Seu plano é gerenciado pela Botpress — entre em contato para alterá-lo",upgradeUpgrade:"Atualizar",upgradeEverythingIn:"Tudo do {planName}",upgradeContactUs:"Entre em contato",upgradeFooterEnterprise:"Precisa de mais, ou trabalhando em escala?",upgradeFooterAboutEnterprise:"sobre o Enterprise. Compare planos em",upgradeThenPer:"depois {price} por {packSize} adicionais",upgradeDowngradeSuccess:"Plano reduzido",upgradeDowngradeError:"Falha ao reduzir o plano",upgradeCancelDowngradeSuccess:"Redução agendada cancelada",upgradeCancelDowngradeError:"Não foi possível cancelar a redução",addonsDialogTitle:"Gerenciar add-ons",addonsSubtitleWithPlan:"Uso adicional para seu plano {planName}. Defina uma quantidade como 0 para remover um add-on.",addonsSubtitleGeneric:"Uso adicional para seu plano. Defina uma quantidade como 0 para remover um add-on.",addonsRequirePaidPlanTitle:"Os add-ons requerem um plano pago",addonsRequirePaidPlanBody:"Atualize seu plano para desbloquear conversas adicionais, armazenamento e muito mais.",addonsUpgradeCta:"Atualizar plano",addonsEach:"cada",addonActiveOnly:"{count} ativo",addonRemovedNextCycle:"{activeNow} ativo agora · removido no próximo ciclo",addonRemovedOnDate:"{activeNow} ativo agora · removido em {date}",addonChangedNextCycle:"{activeNow} ativo agora · {pending} no próximo ciclo",addonChangedOnDate:"{activeNow} ativo agora · {pending} a partir de {date}",addonsNewLimits:"Seus novos limites",addonsPlanLine:"Plano {planName}",addonsGenericPlan:"Plano",addonsTotalMonthly:"Custo mensal total",addonsTotalYearly:"Custo anual total",addonsDueToday:"A pagar hoje",addonsChargedNow:"Você será cobrado {amount} agora pelo restante deste período de cobrança. ",addonsNoChargeToday:"Sem cobrança hoje — a mudança é rateada. ",addonsRenewalWithDate:"Os add-ons permanecem ativos até você removê-los e renovar seu plano em {date}, quando você será cobrado {amount}{interval} por eles.",addonsRenewalNoDate:"Os add-ons permanecem ativos até você removê-los e renovar seu plano, quando você será cobrado {amount}{interval} por eles.",addonsReadonlyNote:"Os add-ons deste espaço de trabalho são gerenciados pela Botpress — entre em contato para alterá-los.",addonsUpdateSuccess:"Assinatura atualizada",addonsUpdateError:"Não foi possível atualizar seus add-ons",addonsUpdateSubscription:"Atualizar assinatura",addonsConvos:"{n} conv.",outdatedTitle:"A cobrança é gerenciada no Painel da Botpress",outdatedText:"Este espaço de trabalho usa um sistema de cobrança anterior, portanto, alterações de plano e detalhes de pagamento não podem ser gerenciados aqui.",outdatedCta:"Abrir cobrança no Painel",outgrowTitle:"Você está prestes a superar o plano Gratuito",outgrowLede:"O plano Gratuito inclui <bold>{quota}</bold> conversas no total, e elas não são renovadas. Ao atualizar, você passa para uma cota mensal, desbloqueia mais canais e adiciona pacotes de conversas, para que seus agentes nunca parem de responder.",outgrowSoFar:"Até agora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversas gratuitas usadas · elas não são renovadas",outgrowNoTopup:"Sem pacote adicional",outgrowUpgradeTo:"Atualizar para {planName}",outgrowEverythingIn:"Tudo do {planName}, e",outgrowNeedCustom:"Precisa de volume personalizado, SLAs ou voz?",outgrowTalkToSales:"Fale com vendas",outgrowCompareAll:"Comparar todos os planos",outgrowThenPer:"depois {symbol}{amount} por {packSize} adicionais",paymentDialogTitle:"Pagamento e cobrança",paymentSessionError:"Não foi possível iniciar uma sessão segura.",paymentMethodSection:"Forma de pagamento",paymentCardSaveError:"Não foi possível salvar seu cartão",paymentMethodMissing:"Não foi possível recuperar a forma de pagamento",paymentCardGenericError:"Não foi possível salvar seu cartão. Verifique seus dados e tente novamente.",paymentReplace:"Substituir",paymentBillingAddressSection:"Endereço de cobrança",paymentTaxIds:"Números fiscais",paymentTaxEmpty:"Adicione um número de CNPJ/CPF para que ele apareça em suas faturas.",paymentTaxIdType:"Tipo de número fiscal",paymentTaxSelectType:"Selecionar tipo",paymentTaxIdNumber:"Número fiscal",paymentTaxRemove:"Remover número fiscal",paymentTaxAdd:"+ Adicionar número fiscal",paymentAddressIncomplete:"Preencha seu endereço de cobrança.",paymentAddressError:"Não foi possível atualizar seus dados de cobrança.",paymentCardUpdated:"Cartão atualizado",paymentDetailsUpdated:"Dados de cobrança atualizados",paymentSaveCard:"Salvar cartão",paymentSaveBillingDetails:"Salvar dados de cobrança",paymentDetailsUpdateError:"Não foi possível atualizar seus dados de cobrança",usageWidgetLimitReached:"Limite atingido",usageWidgetRunningLow:"Estoque baixo",usageWidgetUpgradeToKeepGoing:"Atualize para continuar.",usageWidgetOnlyLeft:"Apenas {left} restantes.",usageWidgetFreeExhausted:"Todas as suas conversas gratuitas foram usadas e não são renovadas.",usageWidgetFreeLeft:"{left} conversas gratuitas restantes e elas não são renovadas.",usageWidgetEnterpriseOverQuota:"Um representante da Botpress entrará em contato no fim do período de uso.",usageWidgetResets:"Reinicia em {date}",usageWidgetViewOptions:"Ver opções de plano",usagePopoverFreeTitle:"Uso do plano gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversas</bold> incluídas, no total. Elas não são renovadas, e o plano Gratuito não tem recargas.",usagePopoverPlanName:"Plano {planName}",usagePopoverTitle:"Uso deste período",usagePopoverNudgeText:"<bold>Precisa de mais espaço?</bold> O Plus inclui 250 conversas por mês, agentes de IA ilimitados e pacotes de 100 quando você precisar.",usagePopoverNudgeCta:"Veja o que você ganha com o Plus",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de cobrança",dashboardPrevMonth:"Mês anterior",dashboardNextMonth:"Próximo mês",dashboardConversationsTitle:"Conversas",dashboardConversationsHint:"Cada conversa inclui uso de IA. Quando você atinge seu limite, conversas adicionais são adicionadas automaticamente para que o serviço continue.",dashboardStorageTitle:"Armazenamento",dashboardStorageHint:"Compartilhado entre arquivos, base de conhecimento e tabelas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversa inclui uma cota de uso de IA. Acompanhe quanto dessa cota você já usou",dashboardEnterpriseUsageNotice:"Seu uso não será bloqueado se você ultrapassar a cota.",dashboardLoadError:"Não foi possível carregar seu uso. Tente novamente em um momento.",dashboardNoBotSpend:"Sem gastos de IA por bot neste período.",dashboardAiByBot:"Gastos de IA por bot",dashboardConversationsMetric:"Conversas",dashboardTableRows:"Linhas de tabela",dashboardVectorDb:"Armazenamento vetorial",dashboardFileStorage:"Armazenamento de arquivos",dashboardAiSpend:"Gastos com IA",dashboardFromPlan:"{amount} do plano {planName}",dashboardFromPlanGeneric:"{amount} do seu plano",dashboardFromPlanWithAddons:"{amount} do plano {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} do seu plano + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar limites",planFeatureAiUsageIncluded:"Uso de IA incluído",planFeature3Seats:"3 vagas",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Central de ajuda",planFeature1kTableRows:"1K linhas de tabela",planFeature100kTableRows:"100K linhas de tabela",planFeature500kTableRows:"500K linhas de tabela",planFeature100mbFileStorage:"100MB de armazenamento de arquivos",planFeature10gbFileStorage:"10GB de armazenamento de arquivos",planFeature50gbFileStorage:"50GB de armazenamento de arquivos",planFeature100mbVectorDb:"100MB de armazenamento vetorial",planFeature1gbVectorDb:"1GB de armazenamento vetorial",planFeature5gbVectorDb:"5GB de armazenamento vetorial",planFeatureCommunitySupport:"Suporte da comunidade",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal do WhatsApp",planFeatureHelpCenterCustomDomain:"Domínio personalizado da central de ajuda",planFeatureWhitelabelWebchat:"Webchat sem marca",planFeatureTechnicalSupportLiveChat:"Suporte técnico via chat ao vivo",planFeatureUnlimitedSeats:"Vagas ilimitadas",planFeatureTeamsRoutingRbac:"Equipes, roteamento e RBAC",planFeatureTeamLevelAnalytics:"Análises por equipe",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Suporte dedicado",planFeatureSlaSecurity:"SLA e revisão de segurança",planFeatureCustomStorage:"Armazenamento personalizado",planFeatureDescAiUsageIncluded:"Cada plano inclui uma cota mensal de gastos com modelos de IA — sem cobrança extra de IA.",planFeatureDesc3Seats:"Até 3 membros da equipe podem colaborar neste espaço de trabalho.",planFeatureDescUnlimitedSeats:"Convide quantos membros da equipe precisar para o espaço de trabalho.",planFeatureDesc3AiAgents:"Crie e publique até 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crie e publique quantos agentes de IA precisar.",planFeatureDescBotpressDesk:"A caixa de entrada de transferência para humanos onde os agentes triagem e respondem conversas ao vivo.",planFeatureDescBotpressStudioAdk:"O construtor visual Studio mais o Kit de Desenvolvimento de Agentes para criar agentes em código.",planFeatureDescHelpCenter:"Uma base de conhecimento hospedada da qual seu agente responde e que os clientes podem consultar.",planFeatureDescHelpCenterCustomDomain:"Publique sua central de ajuda a partir do seu próprio domínio em vez de uma URL da Botpress.",planFeatureDescWhatsappChannel:"Conecte seu agente ao WhatsApp para conversar com clientes lá.",planFeatureDescVoiceChannel:"Conecte seu agente ao telefone/voz para que possa lidar com conversas faladas.",planFeatureDescWhitelabelWebchat:"Remova a marca Botpress do widget de chat web para que seja totalmente seu.",planFeatureDescTeamsRoutingRbac:"Organize membros em equipes, roteie conversas entre elas e controle o acesso por função.",planFeatureDescTeamLevelAnalytics:"Métricas de desempenho e volume detalhadas por equipe.",planFeatureDescTechnicalSupportLiveChat:"Entre em contato com a equipe de suporte da Botpress via chat ao vivo para obter ajuda.",planFeatureDescCommunitySupport:"Obtenha ajuda no fórum da comunidade Botpress e no Discord.",planFeatureDescDedicatedSupport:"Um contato designado e canal de suporte prioritário para sua conta.",planFeatureDescSlaSecurity:"Um SLA de disponibilidade contratual e uma revisão de segurança/conformidade para seu processo de aquisição.",planFeatureDescCustomStorage:"Limites de armazenamento adaptados à sua carga de trabalho, além dos níveis padrão.",planFeatureDesc1kTableRows:"1K linhas em todas as suas tabelas de dados.",planFeatureDesc100kTableRows:"100K linhas em todas as suas tabelas de dados.",planFeatureDesc500kTableRows:"500K linhas em todas as suas tabelas de dados.",planFeatureDesc100mbFileStorage:"100MB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc10gbFileStorage:"10GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc50gbFileStorage:"50GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para busca e recuperação na base de conhecimento.",planDescriptionCommunity:"Plano gratuito para experimentar",planDescriptionPlus:"Para negócios em crescimento",planDescriptionTeam:"Para equipes pequenas",planDescriptionEnterprise:"Assinatura de licença corporativa",planDescriptionManaged:"Assinatura de licença gerenciada",addonNameConversationSessions:"Conversas",addonNameStorage:"Armazenamento",addonDescriptionConversationSessions:"Adiciona sessões de conversa para o mês",addonDescriptionStorage:"Adiciona linhas de tabela, espaço de banco de dados vetorial e arquivos",summaryCurrentPlan:"Plano atual",summaryManagedInDashboard:"Gerenciado no Painel",summaryManagedMeta:"Este espaço de trabalho usa um sistema de cobrança anterior.",summaryNoPlan:"Sem plano",summaryConversationsPerMo:"{n} conversas/mês",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on ativo",summaryActiveAddons:"{count} add-ons ativos",summaryNoAddons:"Sem add-ons",summaryNoAddonsMeta:"Adicione conversas ou armazenamento extra"},Ua="billing",vn=li();vn.use(Fo).init({resources:{en:{[Ua]:di},fr:{[Ua]:ci},es:{[Ua]:ui},pt:{[Ua]:pi}},lng:"en",fallbackLng:"en",ns:[Ua],defaultNS:Ua,interpolation:{escapeValue:!1,prefix:"{",suffix:"}"}});const Et=P.createContext(null),mi={capture:()=>{}};function hi(a){const[e,t]=P.useState(()=>typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches);return P.useEffect(()=>{if(a!=="system")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),s=r=>t(r.matches);return n.addEventListener("change",s),()=>n.removeEventListener("change",s)},[a]),a==="system"?e:a==="dark"}const gi=({client:a,stripePublishableKey:e,email:t,locale:n="en",theme:s="light",colorScheme:r="default",onToast:i,analytics:l,featureLabels:c,billingVersion:d,workspaceId:u,persist:p=!0,manageBillingUrl:m,onBillingChange:h,refreshInterval:b=3e4,children:N})=>{const C=u||"default",[y]=P.useState(()=>new fe.QueryClient({defaultOptions:{queries:{retry:1,staleTime:3e4,gcTime:1e3*60*60}}})),v=hi(s),I=P.useMemo(()=>rs(e),[e]);P.useEffect(()=>{if(!p||typeof window>"u")return;const _=`bpb-cache:${C}`;try{const O=window.localStorage.getItem(_);O&&fe.hydrate(y,JSON.parse(O))}catch{window.localStorage.removeItem(_)}let L=null;const z=y.getQueryCache().subscribe(O=>{O.type!=="added"&&O.type!=="removed"&&O.type!=="updated"||(L&&clearTimeout(L),L=setTimeout(()=>{try{window.localStorage.setItem(_,JSON.stringify(fe.dehydrate(y)))}catch{}},250))});return()=>{L&&clearTimeout(L),z()}},[p,C,y]);const A=P.useCallback(()=>y.invalidateQueries({queryKey:["bpb",C]}),[y,C]),w=P.useCallback(_=>h==null?void 0:h(_),[h]),T=b>0?b:!1;vn.changeLanguage(n);const x=P.useMemo(()=>({client:a,queryClient:y,scope:C,stripePromise:I,email:t,locale:n,isDark:v,colorScheme:r,toast:i??(()=>{}),analytics:l??mi,featureLabels:c,isOutdatedBilling:d!==void 0&&d!=="v4",manageBillingUrl:m,refetchInterval:T,refresh:A,notifyBillingChange:w}),[a,y,C,I,t,n,v,r,i,l,c,d,m,T,A,w]);return o.jsx(Et.Provider,{value:x,children:o.jsx(Uo,{i18n:vn,children:o.jsx("div",{className:"bpb-scope","data-bpb-theme":v?"dark":"light","data-bpb-color-scheme":r,style:{display:"contents"},children:N})})})};function Q(){const a=P.useContext(Et);if(!a)throw new Error("@bpinternal/billing-ui components must be rendered inside <BillingProvider>");return a}function fi(){var a;return((a=P.useContext(Et))==null?void 0:a.isDark)??!1}function bi(){var a;return((a=P.useContext(Et))==null?void 0:a.colorScheme)??"default"}const Ne={PLAN_PICKER_VIEWED:"billing_plan_picker_viewed",PLAN_INTERVAL_TOGGLED:"billing_plan_interval_toggled",PLAN_UPGRADE_INITIATED:"billing_plan_upgrade_initiated",PLAN_DOWNGRADED:"billing_plan_downgraded",PLAN_DOWNGRADE_CANCELLED:"billing_plan_downgrade_cancelled",CHECKOUT_STEP_VIEWED:"billing_checkout_step_viewed",CHECKOUT_INTERVAL_CHANGED:"billing_checkout_interval_changed",PAYMENT_METHOD_SELECTED:"billing_payment_method_selected",PAYMENT_DETAILS_CONFIRMED:"billing_payment_details_confirmed",PLAN_UPGRADED:"billing_plan_upgraded",CHECKOUT_ERROR:"billing_checkout_error",PAYMENT_METHOD_UPDATED:"billing_payment_method_updated",BILLING_ADDRESS_UPDATED:"billing_address_updated",INVOICE_DOWNLOADED:"billing_invoice_downloaded",UPGRADE_CTA_CLICKED:"billing_upgrade_cta_clicked"},we={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"],billingAddress:a=>["bpb",a,"billing-address"],customer:a=>["bpb",a,"customer"],invoices:a=>["bpb",a,"invoices"],readonly:a=>["bpb",a,"billing-readonly"],usages:(a,e)=>["bpb",a,"usages",e],bots:a=>["bpb",a,"bots"],usageByBot:(a,e,t)=>["bpb",a,"usage-by-bot",e,t]};function $e(){const{client:a,queryClient:e,scope:t}=Q();return fe.useQuery({queryKey:we.plans(t),queryFn:()=>a.listPlans({})},e)}function ya(){const{client:a,queryClient:e,scope:t}=Q();return fe.useQuery({queryKey:we.addons(t),queryFn:()=>a.listAddons({})},e)}function Ze(a){const{client:e,queryClient:t,scope:n,refetchInterval:s}=Q();return fe.useQuery({queryKey:we.subscription(n),queryFn:()=>e.getSubscription({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:s},t)}function _n(a,e){const{client:t,queryClient:n,scope:s}=Q();return fe.useQuery({queryKey:we.preview(s,a),queryFn:()=>t.previewSubscriptionUpdate(a),enabled:(e==null?void 0:e.enabled)??!0},n)}function Cn(a){const{client:e,queryClient:t,scope:n}=Q();return fe.useQuery({queryKey:we.paymentMethod(n),queryFn:()=>e.getPaymentMethod({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Nn(a){const{client:e,queryClient:t,scope:n}=Q();return fe.useQuery({queryKey:we.billingAddress(n),queryFn:()=>e.getBillingAddress({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Sn(a){const{client:e,queryClient:t,scope:n}=Q();return fe.useQuery({queryKey:we.customer(n),queryFn:()=>e.getCustomer({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Ps(a){const{client:e,queryClient:t,scope:n,refetchInterval:s}=Q();return fe.useQuery({queryKey:we.invoices(n),queryFn:()=>e.listInvoices({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:s},t)}function kn(a){const{client:e,queryClient:t,scope:n}=Q();return fe.useQuery({queryKey:we.readonly(n),queryFn:()=>e.getBillingReadonly({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function va(a){const{client:e,queryClient:t,scope:n,refetchInterval:s}=Q(),r=a!=null&&a.period?new Date(a.period):new Date,i=`${r.getUTCFullYear()}-${String(r.getUTCMonth()+1).padStart(2,"0")}`;return fe.useQuery({queryKey:we.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:s},t)}function xs(a,e){const{client:t,queryClient:n,scope:s,refetchInterval:r}=Q(),i=t.breakDownWorkspaceUsageByBot,l=t.listBots,c=typeof i=="function"&&typeof l=="function",d=e!=null&&e.period?new Date(e.period):new Date,u=`${d.getUTCFullYear()}-${String(d.getUTCMonth()+1).padStart(2,"0")}`;return fe.useQuery({queryKey:we.usageByBot(s,a,u),queryFn:async()=>{const[p,m]=await Promise.all([i({id:s,type:a,period:`${u}-01T00:00:00.000Z`}),l({})]),h=new Map(m.bots.map(b=>[b.id,b.name]));return p.data.map(b=>({botId:b.botId,name:h.get(b.botId)??b.botId,value:b.value})).sort((b,N)=>N.value-b.value)},enabled:c&&((e==null?void 0:e.enabled)??!0),refetchInterval:r},n)}function Ds(){const{client:a}=Q();return typeof a.breakDownWorkspaceUsageByBot=="function"&&typeof a.listBots=="function"}function wn(){const{client:a,queryClient:e}=Q();return fe.useMutation({mutationFn:()=>a.createPaymentMethodIntent({})},e)}function Tn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return fe.useMutation({mutationFn:s=>a.setPaymentMethod(s),onSuccess:async()=>{await e.invalidateQueries({queryKey:we.paymentMethod(t)}),n({type:"payment-method"})}},e)}function In(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return fe.useMutation({mutationFn:async s=>{await a.setBillingAddress(s)},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:we.billingAddress(t)}),e.invalidateQueries({queryKey:we.customer(t)})]),n({type:"billing-address"})}},e)}function An(){const{client:a,queryClient:e,scope:t}=Q();return fe.useMutation({mutationFn:n=>a.setCustomer(n),onSuccess:()=>e.invalidateQueries({queryKey:we.customer(t)})},e)}function Es(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return fe.useMutation({mutationFn:async s=>{await a.setAddons(s)},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:we.subscription(t)}),e.invalidateQueries({queryKey:we.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:"addons"})}},e)}function Pn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return fe.useMutation({mutationFn:async s=>{await a.setPlan({planId:s.planId,interval:s.interval,couponCode:s.couponCode}),s.addons&&Object.keys(s.addons).length>0&&await a.setAddons({addons:s.addons,couponCode:s.couponCode})},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:we.subscription(t)}),e.invalidateQueries({queryKey:we.plans(t)}),e.invalidateQueries({queryKey:we.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:"subscription"})}},e)}function Ls(a){var e,t,n="";if(typeof a=="string"||typeof a=="number")n+=a;else if(typeof a=="object")if(Array.isArray(a)){var s=a.length;for(e=0;e<s;e++)a[e]&&(t=Ls(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="",s=arguments.length;t<s;t++)(a=arguments[t])&&(e=Ls(a))&&(n&&(n+=" "),n+=e);return n}const vi=(a,e)=>{const t=new Array(a.length+e.length);for(let n=0;n<a.length;n++)t[n]=a[n];for(let n=0;n<e.length;n++)t[a.length+n]=e[n];return t},_i=(a,e)=>({classGroupId:a,validator:e}),Fs=(a=new Map,e=null,t)=>({nextPart:a,validators:e,classGroupId:t}),Lt="-",Os=[],Ci="arbitrary..",Ni=a=>{const e=ki(a),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=a;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return Si(i);const l=i.split(Lt),c=l[0]===""&&l.length>1?1:0;return Ms(l,c,e)},getConflictingClassGroupIds:(i,l)=>{if(l){const c=n[i],d=t[i];return c?d?vi(d,c):c:d||Os}return t[i]||Os}}},Ms=(a,e,t)=>{if(a.length-e===0)return t.classGroupId;const s=a[e],r=t.nextPart.get(s);if(r){const d=Ms(a,e+1,r);if(d)return d}const i=t.validators;if(i===null)return;const l=e===0?a.join(Lt):a.slice(e).join(Lt),c=i.length;for(let d=0;d<c;d++){const u=i[d];if(u.validator(l))return u.classGroupId}},Si=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?Ci+n:void 0})(),ki=a=>{const{theme:e,classGroups:t}=a;return wi(t,e)},wi=(a,e)=>{const t=Fs();for(const n in a){const s=a[n];xn(s,t,n,e)}return t},xn=(a,e,t,n)=>{const s=a.length;for(let r=0;r<s;r++){const i=a[r];Ti(i,e,t,n)}},Ti=(a,e,t,n)=>{if(typeof a=="string"){Ii(a,e,t);return}if(typeof a=="function"){Ai(a,e,t,n);return}Pi(a,e,t,n)},Ii=(a,e,t)=>{const n=a===""?e:Bs(e,a);n.classGroupId=t},Ai=(a,e,t,n)=>{if(xi(a)){xn(a(n),e,t,n);return}e.validators===null&&(e.validators=[]),e.validators.push(_i(t,a))},Pi=(a,e,t,n)=>{const s=Object.entries(a),r=s.length;for(let i=0;i<r;i++){const[l,c]=s[i];xn(c,Bs(e,l),t,n)}},Bs=(a,e)=>{let t=a;const n=e.split(Lt),s=n.length;for(let r=0;r<s;r++){const i=n[r];let l=t.nextPart.get(i);l||(l=Fs(),t.nextPart.set(i,l)),t=l}return t},xi=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,Di=a=>{if(a<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),n=Object.create(null);const s=(r,i)=>{t[r]=i,e++,e>a&&(e=0,n=t,t=Object.create(null))};return{get(r){let i=t[r];if(i!==void 0)return i;if((i=n[r])!==void 0)return s(r,i),i},set(r,i){r in t?t[r]=i:s(r,i)}}},Dn="!",Us=":",Ei=[],zs=(a,e,t,n,s)=>({modifiers:a,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:n,isExternal:s}),Li=a=>{const{prefix:e,experimentalParseClassName:t}=a;let n=s=>{const r=[];let i=0,l=0,c=0,d;const u=s.length;for(let N=0;N<u;N++){const C=s[N];if(i===0&&l===0){if(C===Us){r.push(s.slice(c,N)),c=N+1;continue}if(C==="/"){d=N;continue}}C==="["?i++:C==="]"?i--:C==="("?l++:C===")"&&l--}const p=r.length===0?s:s.slice(c);let m=p,h=!1;p.endsWith(Dn)?(m=p.slice(0,-1),h=!0):p.startsWith(Dn)&&(m=p.slice(1),h=!0);const b=d&&d>c?d-c:void 0;return zs(r,h,m,b)};if(e){const s=e+Us,r=n;n=i=>i.startsWith(s)?r(i.slice(s.length)):zs(Ei,!1,i,void 0,!0)}if(t){const s=n;n=r=>t({className:r,parseClassName:s})}return n},Fi=a=>{const e=new Map;return a.orderSensitiveModifiers.forEach((t,n)=>{e.set(t,1e6+n)}),t=>{const n=[];let s=[];for(let r=0;r<t.length;r++){const i=t[r],l=i[0]==="[",c=e.has(i);l||c?(s.length>0&&(s.sort(),n.push(...s),s=[]),n.push(i)):s.push(i)}return s.length>0&&(s.sort(),n.push(...s)),n}},Oi=a=>({cache:Di(a.cacheSize),parseClassName:Li(a),sortModifiers:Fi(a),postfixLookupClassGroupIds:Mi(a),...Ni(a)}),Mi=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},Bi=/\s+/,Ui=(a,e)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:s,sortModifiers:r,postfixLookupClassGroupIds:i}=e,l=[],c=a.trim().split(Bi);let d="";for(let u=c.length-1;u>=0;u-=1){const p=c[u],{isExternal:m,modifiers:h,hasImportantModifier:b,baseClassName:N,maybePostfixModifierPosition:C}=t(p);if(m){d=p+(d.length>0?" "+d:d);continue}let y=!!C,v;if(y){const x=N.substring(0,C);v=n(x);const _=v&&i[v]?n(N):void 0;_&&_!==v&&(v=_,y=!1)}else v=n(N);if(!v){if(!y){d=p+(d.length>0?" "+d:d);continue}if(v=n(N),!v){d=p+(d.length>0?" "+d:d);continue}y=!1}const I=h.length===0?"":h.length===1?h[0]:r(h).join(":"),A=b?I+Dn:I,w=A+v;if(l.indexOf(w)>-1)continue;l.push(w);const T=s(v,y);for(let x=0;x<T.length;++x){const _=T[x];l.push(A+_)}d=p+(d.length>0?" "+d:d)}return d},zi=(...a)=>{let e=0,t,n,s="";for(;e<a.length;)(t=a[e++])&&(n=js(t))&&(s&&(s+=" "),s+=n);return s},js=a=>{if(typeof a=="string")return a;let e,t="";for(let n=0;n<a.length;n++)a[n]&&(e=js(a[n]))&&(t&&(t+=" "),t+=e);return t},ji=(a,...e)=>{let t,n,s,r;const i=c=>{const d=e.reduce((u,p)=>p(u),a());return t=Oi(d),n=t.cache.get,s=t.cache.set,r=l,l(c)},l=c=>{const d=n(c);if(d)return d;const u=Ui(c,t);return s(c,u),u};return r=i,(...c)=>r(zi(...c))},Vi=[],Ie=a=>{const e=t=>t[a]||Vi;return e.isThemeGetter=!0,e},Vs=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Zs=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Zi=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,qi=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Wi=/\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$/,Gi=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ki=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,$i=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,da=a=>Zi.test(a),ee=a=>!!a&&!Number.isNaN(Number(a)),He=a=>!!a&&Number.isInteger(Number(a)),En=a=>a.endsWith("%")&&ee(a.slice(0,-1)),na=a=>qi.test(a),qs=()=>!0,Hi=a=>Wi.test(a)&&!Gi.test(a),Ln=()=>!1,Ri=a=>Ki.test(a),Yi=a=>$i.test(a),Ji=a=>!B(a)&&!U(a),Qi=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)),Xi=a=>ca(a,Rs,Ln),B=a=>Vs.test(a),_a=a=>ca(a,Ys,Hi),Ws=a=>ca(a,il,ee),el=a=>ca(a,Qs,qs),al=a=>ca(a,Js,Ln),Gs=a=>ca(a,$s,Ln),tl=a=>ca(a,Hs,Yi),Ft=a=>ca(a,Xs,Ri),U=a=>Zs.test(a),Ja=a=>Ca(a,Ys),nl=a=>Ca(a,Js),Ks=a=>Ca(a,$s),sl=a=>Ca(a,Rs),rl=a=>Ca(a,Hs),Ot=a=>Ca(a,Xs,!0),ol=a=>Ca(a,Qs,!0),ca=(a,e,t)=>{const n=Vs.exec(a);return n?n[1]?e(n[1]):t(n[2]):!1},Ca=(a,e,t=!1)=>{const n=Zs.exec(a);return n?n[1]?e(n[1]):t:!1},$s=a=>a==="position"||a==="percentage",Hs=a=>a==="image"||a==="url",Rs=a=>a==="length"||a==="size"||a==="bg-size",Ys=a=>a==="length",il=a=>a==="number",Js=a=>a==="family-name",Qs=a=>a==="number"||a==="weight",Xs=a=>a==="shadow",ll=ji(()=>{const a=Ie("color"),e=Ie("font"),t=Ie("text"),n=Ie("font-weight"),s=Ie("tracking"),r=Ie("leading"),i=Ie("breakpoint"),l=Ie("container"),c=Ie("spacing"),d=Ie("radius"),u=Ie("shadow"),p=Ie("inset-shadow"),m=Ie("text-shadow"),h=Ie("drop-shadow"),b=Ie("blur"),N=Ie("perspective"),C=Ie("aspect"),y=Ie("ease"),v=Ie("animate"),I=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...A(),U,B],T=()=>["auto","hidden","clip","visible","scroll"],x=()=>["auto","contain","none"],_=()=>[U,B,c],L=()=>[da,"full","auto",..._()],z=()=>[He,"none","subgrid",U,B],O=()=>["auto",{span:["full",He,U,B]},He,U,B],H=()=>[He,"auto",U,B],F=()=>["auto","min","max","fr",U,B],J=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],$=()=>["start","end","center","stretch","center-safe","end-safe"],j=()=>["auto",..._()],ne=()=>[da,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",..._()],ae=()=>[da,"screen","full","dvw","lvw","svw","min","max","fit",..._()],q=()=>[da,"screen","full","lh","dvh","lvh","svh","min","max","fit",..._()],S=()=>[a,U,B],ue=()=>[...A(),Ks,Gs,{position:[U,B]}],pe=()=>["no-repeat",{repeat:["","x","y","space","round"]}],_e=()=>["auto","cover","contain",sl,Xi,{size:[U,B]}],M=()=>[En,Ja,_a],W=()=>["","none","full",d,U,B],Z=()=>["",ee,Ja,_a],te=()=>["solid","dashed","dotted","double"],Ae=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],se=()=>[ee,En,Ks,Gs],Ce=()=>["","none",b,U,B],Pe=()=>["none",ee,U,B],Se=()=>["none",ee,U,B],ea=()=>[ee,U,B],Ee=()=>[da,"full",..._()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[na],breakpoint:[na],color:[qs],container:[na],"drop-shadow":[na],ease:["in","out","in-out"],font:[Ji],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[na],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[na],shadow:[na],spacing:["px",ee],text:[na],"text-shadow":[na],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",da,B,U,C]}],container:["container"],"container-type":[{"@container":["","normal","size",U,B]}],"container-named":[Qi],columns:[{columns:[ee,B,U,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:w()}],overflow:[{overflow:T()}],"overflow-x":[{"overflow-x":T()}],"overflow-y":[{"overflow-y":T()}],overscroll:[{overscroll:x()}],"overscroll-x":[{"overscroll-x":x()}],"overscroll-y":[{"overscroll-y":x()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:L()}],"inset-x":[{"inset-x":L()}],"inset-y":[{"inset-y":L()}],start:[{"inset-s":L(),start:L()}],end:[{"inset-e":L(),end:L()}],"inset-bs":[{"inset-bs":L()}],"inset-be":[{"inset-be":L()}],top:[{top:L()}],right:[{right:L()}],bottom:[{bottom:L()}],left:[{left:L()}],visibility:["visible","invisible","collapse"],z:[{z:[He,"auto",U,B]}],basis:[{basis:[da,"full","auto",l,..._()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ee,da,"auto","initial","none",B]}],grow:[{grow:["",ee,U,B]}],shrink:[{shrink:["",ee,U,B]}],order:[{order:[He,"first","last","none",U,B]}],"grid-cols":[{"grid-cols":z()}],"col-start-end":[{col:O()}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":z()}],"row-start-end":[{row:O()}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":F()}],"auto-rows":[{"auto-rows":F()}],gap:[{gap:_()}],"gap-x":[{"gap-x":_()}],"gap-y":[{"gap-y":_()}],"justify-content":[{justify:[...J(),"normal"]}],"justify-items":[{"justify-items":[...$(),"normal"]}],"justify-self":[{"justify-self":["auto",...$()]}],"align-content":[{content:["normal",...J()]}],"align-items":[{items:[...$(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...$(),{baseline:["","last"]}]}],"place-content":[{"place-content":J()}],"place-items":[{"place-items":[...$(),"baseline"]}],"place-self":[{"place-self":["auto",...$()]}],p:[{p:_()}],px:[{px:_()}],py:[{py:_()}],ps:[{ps:_()}],pe:[{pe:_()}],pbs:[{pbs:_()}],pbe:[{pbe:_()}],pt:[{pt:_()}],pr:[{pr:_()}],pb:[{pb:_()}],pl:[{pl:_()}],m:[{m:j()}],mx:[{mx:j()}],my:[{my:j()}],ms:[{ms:j()}],me:[{me:j()}],mbs:[{mbs:j()}],mbe:[{mbe:j()}],mt:[{mt:j()}],mr:[{mr:j()}],mb:[{mb:j()}],ml:[{ml:j()}],"space-x":[{"space-x":_()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":_()}],"space-y-reverse":["space-y-reverse"],size:[{size:ne()}],"inline-size":[{inline:["auto",...ae()]}],"min-inline-size":[{"min-inline":["auto",...ae()]}],"max-inline-size":[{"max-inline":["none",...ae()]}],"block-size":[{block:["auto",...q()]}],"min-block-size":[{"min-block":["auto",...q()]}],"max-block-size":[{"max-block":["none",...q()]}],w:[{w:[l,"screen",...ne()]}],"min-w":[{"min-w":[l,"screen","none",...ne()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[i]},...ne()]}],h:[{h:["screen","lh",...ne()]}],"min-h":[{"min-h":["screen","lh","none",...ne()]}],"max-h":[{"max-h":["screen","lh",...ne()]}],"font-size":[{text:["base",t,Ja,_a]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,ol,el]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",En,B]}],"font-family":[{font:[nl,al,e]}],"font-features":[{"font-features":[B]}],"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:[s,U,B]}],"line-clamp":[{"line-clamp":[ee,"none",U,Ws]}],leading:[{leading:[r,..._()]}],"list-image":[{"list-image":["none",U,B]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",U,B]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:S()}],"text-color":[{text:S()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...te(),"wavy"]}],"text-decoration-thickness":[{decoration:[ee,"from-font","auto",U,_a]}],"text-decoration-color":[{decoration:S()}],"underline-offset":[{"underline-offset":[ee,"auto",U,B]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:_()}],"tab-size":[{tab:[He,U,B]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",U,B]}],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",U,B]}],"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:pe()}],"bg-size":[{bg:_e()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},He,U,B],radial:["",U,B],conic:[He,U,B]},rl,tl]}],"bg-color":[{bg:S()}],"gradient-from-pos":[{from:M()}],"gradient-via-pos":[{via:M()}],"gradient-to-pos":[{to:M()}],"gradient-from":[{from:S()}],"gradient-via":[{via:S()}],"gradient-to":[{to:S()}],rounded:[{rounded:W()}],"rounded-s":[{"rounded-s":W()}],"rounded-e":[{"rounded-e":W()}],"rounded-t":[{"rounded-t":W()}],"rounded-r":[{"rounded-r":W()}],"rounded-b":[{"rounded-b":W()}],"rounded-l":[{"rounded-l":W()}],"rounded-ss":[{"rounded-ss":W()}],"rounded-se":[{"rounded-se":W()}],"rounded-ee":[{"rounded-ee":W()}],"rounded-es":[{"rounded-es":W()}],"rounded-tl":[{"rounded-tl":W()}],"rounded-tr":[{"rounded-tr":W()}],"rounded-br":[{"rounded-br":W()}],"rounded-bl":[{"rounded-bl":W()}],"border-w":[{border:Z()}],"border-w-x":[{"border-x":Z()}],"border-w-y":[{"border-y":Z()}],"border-w-s":[{"border-s":Z()}],"border-w-e":[{"border-e":Z()}],"border-w-bs":[{"border-bs":Z()}],"border-w-be":[{"border-be":Z()}],"border-w-t":[{"border-t":Z()}],"border-w-r":[{"border-r":Z()}],"border-w-b":[{"border-b":Z()}],"border-w-l":[{"border-l":Z()}],"divide-x":[{"divide-x":Z()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Z()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...te(),"hidden","none"]}],"divide-style":[{divide:[...te(),"hidden","none"]}],"border-color":[{border:S()}],"border-color-x":[{"border-x":S()}],"border-color-y":[{"border-y":S()}],"border-color-s":[{"border-s":S()}],"border-color-e":[{"border-e":S()}],"border-color-bs":[{"border-bs":S()}],"border-color-be":[{"border-be":S()}],"border-color-t":[{"border-t":S()}],"border-color-r":[{"border-r":S()}],"border-color-b":[{"border-b":S()}],"border-color-l":[{"border-l":S()}],"divide-color":[{divide:S()}],"outline-style":[{outline:[...te(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ee,U,B]}],"outline-w":[{outline:["",ee,Ja,_a]}],"outline-color":[{outline:S()}],shadow:[{shadow:["","none",u,Ot,Ft]}],"shadow-color":[{shadow:S()}],"inset-shadow":[{"inset-shadow":["none",p,Ot,Ft]}],"inset-shadow-color":[{"inset-shadow":S()}],"ring-w":[{ring:Z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:S()}],"ring-offset-w":[{"ring-offset":[ee,_a]}],"ring-offset-color":[{"ring-offset":S()}],"inset-ring-w":[{"inset-ring":Z()}],"inset-ring-color":[{"inset-ring":S()}],"text-shadow":[{"text-shadow":["none",m,Ot,Ft]}],"text-shadow-color":[{"text-shadow":S()}],opacity:[{opacity:[ee,U,B]}],"mix-blend":[{"mix-blend":[...Ae(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ae()}],"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":[ee]}],"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":S()}],"mask-image-linear-to-color":[{"mask-linear-to":S()}],"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":S()}],"mask-image-t-to-color":[{"mask-t-to":S()}],"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":S()}],"mask-image-r-to-color":[{"mask-r-to":S()}],"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":S()}],"mask-image-b-to-color":[{"mask-b-to":S()}],"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":S()}],"mask-image-l-to-color":[{"mask-l-to":S()}],"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":S()}],"mask-image-x-to-color":[{"mask-x-to":S()}],"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":S()}],"mask-image-y-to-color":[{"mask-y-to":S()}],"mask-image-radial":[{"mask-radial":[U,B]}],"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":S()}],"mask-image-radial-to-color":[{"mask-radial-to":S()}],"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":A()}],"mask-image-conic-pos":[{"mask-conic":[ee]}],"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":S()}],"mask-image-conic-to-color":[{"mask-conic-to":S()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ue()}],"mask-repeat":[{mask:pe()}],"mask-size":[{mask:_e()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",U,B]}],filter:[{filter:["","none",U,B]}],blur:[{blur:Ce()}],brightness:[{brightness:[ee,U,B]}],contrast:[{contrast:[ee,U,B]}],"drop-shadow":[{"drop-shadow":["","none",h,Ot,Ft]}],"drop-shadow-color":[{"drop-shadow":S()}],grayscale:[{grayscale:["",ee,U,B]}],"hue-rotate":[{"hue-rotate":[ee,U,B]}],invert:[{invert:["",ee,U,B]}],saturate:[{saturate:[ee,U,B]}],sepia:[{sepia:["",ee,U,B]}],"backdrop-filter":[{"backdrop-filter":["","none",U,B]}],"backdrop-blur":[{"backdrop-blur":Ce()}],"backdrop-brightness":[{"backdrop-brightness":[ee,U,B]}],"backdrop-contrast":[{"backdrop-contrast":[ee,U,B]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ee,U,B]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ee,U,B]}],"backdrop-invert":[{"backdrop-invert":["",ee,U,B]}],"backdrop-opacity":[{"backdrop-opacity":[ee,U,B]}],"backdrop-saturate":[{"backdrop-saturate":[ee,U,B]}],"backdrop-sepia":[{"backdrop-sepia":["",ee,U,B]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":_()}],"border-spacing-x":[{"border-spacing-x":_()}],"border-spacing-y":[{"border-spacing-y":_()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",U,B]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ee,"initial",U,B]}],ease:[{ease:["linear","initial",y,U,B]}],delay:[{delay:[ee,U,B]}],animate:[{animate:["none",v,U,B]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[N,U,B]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:Pe()}],"rotate-x":[{"rotate-x":Pe()}],"rotate-y":[{"rotate-y":Pe()}],"rotate-z":[{"rotate-z":Pe()}],scale:[{scale:Se()}],"scale-x":[{"scale-x":Se()}],"scale-y":[{"scale-y":Se()}],"scale-z":[{"scale-z":Se()}],"scale-3d":["scale-3d"],skew:[{skew:ea()}],"skew-x":[{"skew-x":ea()}],"skew-y":[{"skew-y":ea()}],transform:[{transform:[U,B,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ee()}],"translate-x":[{"translate-x":Ee()}],"translate-y":[{"translate-y":Ee()}],"translate-z":[{"translate-z":Ee()}],"translate-none":["translate-none"],zoom:[{zoom:[He,U,B]}],accent:[{accent:S()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:S()}],"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",U,B]}],"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":S()}],"scrollbar-track-color":[{"scrollbar-track":S()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":_()}],"scroll-mx":[{"scroll-mx":_()}],"scroll-my":[{"scroll-my":_()}],"scroll-ms":[{"scroll-ms":_()}],"scroll-me":[{"scroll-me":_()}],"scroll-mbs":[{"scroll-mbs":_()}],"scroll-mbe":[{"scroll-mbe":_()}],"scroll-mt":[{"scroll-mt":_()}],"scroll-mr":[{"scroll-mr":_()}],"scroll-mb":[{"scroll-mb":_()}],"scroll-ml":[{"scroll-ml":_()}],"scroll-p":[{"scroll-p":_()}],"scroll-px":[{"scroll-px":_()}],"scroll-py":[{"scroll-py":_()}],"scroll-ps":[{"scroll-ps":_()}],"scroll-pe":[{"scroll-pe":_()}],"scroll-pbs":[{"scroll-pbs":_()}],"scroll-pbe":[{"scroll-pbe":_()}],"scroll-pt":[{"scroll-pt":_()}],"scroll-pr":[{"scroll-pr":_()}],"scroll-pb":[{"scroll-pb":_()}],"scroll-pl":[{"scroll-pl":_()}],"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",U,B]}],fill:[{fill:["none",...S()]}],"stroke-w":[{stroke:[ee,Ja,_a,Ws]}],stroke:[{stroke:["none",...S()]}],"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 ll(yi(a))}function ie(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 sa(a,e="en-US"){return new Date(a).toLocaleDateString(e,{month:"short",day:"numeric",year:"numeric"})}function er(a,e){const t=new Date(a);return t.setDate(t.getDate()+e),t.toISOString()}function de(a,e="en-US"){return new Intl.NumberFormat(e).format(a)}function Na(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 he(a){return a.replace("Plan - ","")}function Qa(a){return{usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",jpy:"¥"}[a.toLowerCase()]??`${a.toUpperCase()} `}const Sa=["community","plus","team","enterprise","managed"],dl=["community","plus","team","enterprise","managed"];function be(a){var n;const e=a.name.toLowerCase();if(e.includes("community")||e.includes("pay-as-you-go")||e.includes("free"))return"community";if(e.includes("plus"))return"plus";if(e.includes("team"))return"team";if(e.includes("managed"))return"managed";if(e.includes("enterprise"))return"enterprise";const t=(n=a.metadata)==null?void 0:n.legacyName;return dl.find(s=>s===t)??"community"}const Fn="https://botpress.com/contact-us/managed-plan",ua={conversation_sessions_addon:"addonNameConversationSessions",storage_addon:"addonNameStorage"},ar={conversation_sessions_addon:"addonDescriptionConversationSessions",storage_addon:"addonDescriptionStorage"};function Mt(a,e,t){return a.prices[e.id]??a.prices[be(e)]??a.prices[t]??null}function Xa(a){return a.replace("Add-on - ","")}function tr(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 nr=[{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 sr(a,e,t){var s;if(!e)return[];const n=[];for(const r of nr){const i=a.features[r.key]??0;let l=0;for(const c of e){const d=((s=c.increments)==null?void 0:s[r.key])??0,u=t[c.id]??0;l+=d*u}l>0&&n.push({...r,now:i,next:i+l})}return n}function rr(a,e,t){var s;if(!a)return[];const n=[];for(const r of nr){const i=a.features[r.key]??0;let l=0;for(const c of e??[])l+=(((s=c.increments)==null?void 0:s[r.key])??0)*(t[c.id]??0);(i>0||l>0)&&n.push({...r,base:i,added:l,total:i+l})}return n}function Bt(a,e,t){var i;const n=tr(a);if(!n)return null;const s=((i=n.increments)==null?void 0:i.conversation_sessions)??0,r=Mt(n,e,t);return s<=0||!r||r.amount<=0?null:{packSize:s,amount:r.amount,currency:r.currency}}const On={"AI usage included":{label:"planFeatureAiUsageIncluded",desc:"planFeatureDescAiUsageIncluded"},"3 seats":{label:"planFeature3Seats",desc:"planFeatureDesc3Seats"},"3 AI agents":{label:"planFeature3AiAgents",desc:"planFeatureDesc3AiAgents"},"Botpress Desk":{label:"planFeatureBotpressDesk",desc:"planFeatureDescBotpressDesk"},"Botpress Studio + ADK":{label:"planFeatureBotpressStudioAdk",desc:"planFeatureDescBotpressStudioAdk"},"Help center":{label:"planFeatureHelpCenter",desc:"planFeatureDescHelpCenter"},"1K table rows":{label:"planFeature1kTableRows",desc:"planFeatureDesc1kTableRows"},"100K table rows":{label:"planFeature100kTableRows",desc:"planFeatureDesc100kTableRows"},"500K table rows":{label:"planFeature500kTableRows",desc:"planFeatureDesc500kTableRows"},"100MB file storage":{label:"planFeature100mbFileStorage",desc:"planFeatureDesc100mbFileStorage"},"10GB file storage":{label:"planFeature10gbFileStorage",desc:"planFeatureDesc10gbFileStorage"},"50GB file storage":{label:"planFeature50gbFileStorage",desc:"planFeatureDesc50gbFileStorage"},"100MB vector DB storage":{label:"planFeature100mbVectorDb",desc:"planFeatureDesc100mbVectorDb"},"1GB vector DB storage":{label:"planFeature1gbVectorDb",desc:"planFeatureDesc1gbVectorDb"},"5GB vector DB storage":{label:"planFeature5gbVectorDb",desc:"planFeatureDesc5gbVectorDb"},"Community support":{label:"planFeatureCommunitySupport",desc:"planFeatureDescCommunitySupport"},"Unlimited AI agents":{label:"planFeatureUnlimitedAiAgents",desc:"planFeatureDescUnlimitedAiAgents"},"WhatsApp channel":{label:"planFeatureWhatsappChannel",desc:"planFeatureDescWhatsappChannel"},"Help Center custom domain":{label:"planFeatureHelpCenterCustomDomain",desc:"planFeatureDescHelpCenterCustomDomain"},"Whitelabel webchat":{label:"planFeatureWhitelabelWebchat",desc:"planFeatureDescWhitelabelWebchat"},"Technical support via live chat":{label:"planFeatureTechnicalSupportLiveChat",desc:"planFeatureDescTechnicalSupportLiveChat"},"Unlimited seats":{label:"planFeatureUnlimitedSeats",desc:"planFeatureDescUnlimitedSeats"},"Teams, routing & RBAC":{label:"planFeatureTeamsRoutingRbac",desc:"planFeatureDescTeamsRoutingRbac"},"Team-level analytics":{label:"planFeatureTeamLevelAnalytics",desc:"planFeatureDescTeamLevelAnalytics"},"Voice channel":{label:"planFeatureVoiceChannel",desc:"planFeatureDescVoiceChannel"},"Dedicated support":{label:"planFeatureDedicatedSupport",desc:"planFeatureDescDedicatedSupport"},"SLA & security review":{label:"planFeatureSlaSecurity",desc:"planFeatureDescSlaSecurity"},"Custom storage":{label:"planFeatureCustomStorage",desc:"planFeatureDescCustomStorage"}},cl={community:"planDescriptionCommunity",plus:"planDescriptionPlus",team:"planDescriptionTeam",enterprise:"planDescriptionEnterprise",managed:"planDescriptionManaged"},Ut={community:["AI usage included","3 seats","3 AI agents","Botpress Desk","Botpress Studio + ADK","Help center","1K table rows","100MB file storage","100MB vector DB storage","Community support"],plus:["Unlimited AI agents","WhatsApp channel","Help Center custom domain","Whitelabel webchat","100K table rows","10GB file storage","1GB vector DB storage","Technical support via live chat"],team:["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:[]},zt=({variant:a="accent",children:e,className:t})=>o.jsx("span",{className:G("bpb-badge",`bpb-badge--${a}`,t),children:e}),Te=({variant:a="primary",size:e="md",block:t=!1,loading:n=!1,className:s,disabled:r,children:i,type:l="button",...c})=>o.jsxs("button",{type:l,className:G("bpb-btn",`bpb-btn--${a}`,`bpb-btn--${e}`,t&&"bpb-btn--block",s),disabled:r||n,"data-loading":n||void 0,...c,children:[n&&o.jsx("span",{className:"bpb-btn__spinner","aria-hidden":!0}),o.jsx("span",{className:"bpb-btn__label",children:i})]}),ce=(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}),or=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M3 8.5l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Mn=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),ir=({size:a,...e})=>o.jsx("svg",{...ce(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"})}),Bn=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),lr=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M6 2.5h3v1.6a1.4 1.4 0 102.8 0V2.5h1.7v3h-1.6a1.4 1.4 0 100 2.8h1.6v3h-3v1.6a1.4 1.4 0 11-2.8 0v-1.6h-3v-3h1.6a1.4 1.4 0 100-2.8H2.5v-3H6z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),jt=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),dr=({size:a,...e})=>o.jsx("svg",{...ce(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"})}),Vt=({size:a,...e})=>o.jsx("svg",{...ce(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"})}),cr=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),ur=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),pr=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),mr=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),Un=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),ul=({size:a,...e})=>o.jsx("svg",{...ce(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"})}),pl=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),Zt=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),qt=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M4 6.5L8 10.5l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),zn=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M10 3.5L5.5 8l4.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),ka=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M6 3.5L10.5 8L6 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),hr=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),jn=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),gr=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),et=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M9 3.5h3.5V7M12 4L7 9M11 9.5v2a1 1 0 01-1 1H4.5a1 1 0 01-1-1V6a1 1 0 011-1h2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),ml=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),Wt=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Vn=({size:a,...e})=>o.jsx("svg",{...ce(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"})}),hl=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),fr=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),Zn=({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 Gt(a){const e=a.toLowerCase();return/seat|member|user|team|rbac|rout/.test(e)?cr:/analytic|report|insight|dashboard/.test(e)?ur:/whatsapp|channel|chat|message|conversation|webchat|voice/.test(e)?ir:/storage|table|vector|file|gb|rows|db/.test(e)?jt:/domain|help center|whitelabel|website|url|web/.test(e)?pr:/brand|theme|custom|white-?label/.test(e)?mr:/unlimited|infinit/.test(e)?dr:/security|sla|compliance|soc|audit/.test(e)||/support|sla|dedicated|priority/.test(e)?Bn:/integration|api|plugin|sdk|adk|studio/.test(e)?lr:/ai|agent|model|gpt|llm/.test(e)?Vt:Mn}const Ue=({open:a,onOpenChange:e,size:t="md",children:n,className:s,showClose:r=!0,...i})=>{const l=P.useRef(null),c=fi(),d=bi(),u=P.useCallback(()=>e(!1),[e]);return P.useEffect(()=>{var h;if(!a)return;const p=b=>{b.key==="Escape"&&u()};document.addEventListener("keydown",p);const m=document.body.style.overflow;return document.body.style.overflow="hidden",(h=l.current)==null||h.focus(),()=>{document.removeEventListener("keydown",p),document.body.style.overflow=m}},[a,u]),a?ho.createPortal(o.jsx("div",{className:"bpb-portal bpb-dialog__overlay","data-bpb-theme":c?"dark":"light","data-bpb-color-scheme":d,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}`,s),onClick:p=>p.stopPropagation(),children:[r&&o.jsx("button",{type:"button",className:"bpb-dialog__close","aria-label":"Close",onClick:u,children:o.jsx(Zt,{size:18})}),n]})}),document.body):null},at=({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})]}),wa=()=>{const{manageBillingUrl:a}=Q(),{t:e}=ge();return o.jsxs("div",{className:"bpb-outdated",children:[o.jsx("h3",{className:"bpb-outdated__title",children:e("outdatedTitle")}),o.jsx("p",{className:"bpb-outdated__text",children:e("outdatedText")}),a&&o.jsxs(Te,{variant:"primary",onClick:()=>window.open(a,"_blank","noopener"),children:[e("outdatedCta"),o.jsx(et,{size:15})]})]})},br=({options:a,value:e,onChange:t,className:n,...s})=>o.jsx("div",{role:"radiogroup","aria-label":s["aria-label"],className:G("bpb-segmented",n),children:a.map(r=>{const i=r.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(r.value),children:[r.label,r.badge&&o.jsx("span",{className:"bpb-segmented__badge",children:r.badge})]},r.value)})}),le=({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}});function gl(a,e){const t=a.prices[e];return t||((e==="month"?a.prices.year:a.prices.month)??null)}function fl(a,e){var s,r;const t=(s=a.prices.month)==null?void 0:s.amount;if(e==="month")return t??null;const n=((r=a.prices.year)==null?void 0:r.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}function bl(a){var t,n;let e=0;for(const s of a){const r=(t=s.prices.month)==null?void 0:t.amount,i=(n=s.prices.year)==null?void 0:n.amount;r&&i&&r>0&&(e=Math.max(e,1-i/(r*12)))}return Math.round(e*100)}const yr=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",defaultInterval:s="year",excludePlanIds:r=[],planFeatures:i={},featureDescriptions:l})=>{var ne,ae,q;const{isOutdatedBilling:c,toast:d,analytics:u}=Q(),{t:p}=ge(),[m,h]=P.useState(s),{data:b,isLoading:N}=$e(),{data:C}=ya(),{data:y}=Ze({enabled:a}),{data:v}=kn({enabled:a}),I=Pn(),A=(v==null?void 0:v.planReadonly)??!1;P.useEffect(()=>{a&&u.capture(Ne.PLAN_PICKER_VIEWED,{interval:m})},[a,u]);const w=S=>{S!==m&&u.capture(Ne.PLAN_INTERVAL_TOGGLED,{interval:S}),h(S)},T=y==null?void 0:y.plan.current.interval,x=b==null?void 0:b.find(S=>S.id===(y==null?void 0:y.plan.current.planId)),_=y?x?be(x):"community":void 0,L=((ne=y==null?void 0:y.plan.next)==null?void 0:ne.planId)??null,z=!!L&&L!==(y==null?void 0:y.plan.current.planId),O=A||_==="enterprise"||_==="managed",H=P.useMemo(()=>b?b.filter(S=>be(S)!=="managed"&&be(S)!=="enterprise"&&!r.includes(S.id)).sort((S,ue)=>Sa.indexOf(be(S))-Sa.indexOf(be(ue))):[],[b,r]),F=P.useMemo(()=>bl(H),[H]),J=((q=(ae=b==null?void 0:b.find(S=>be(S)==="enterprise"))==null?void 0:ae.metadata)==null?void 0:q.contact_url)??Fn,$=S=>{I.mutate({planId:S.id,interval:m},{onSuccess:()=>{u.capture(Ne.PLAN_DOWNGRADED,{plan_name:he(S.name),interval:m,previous_plan_name:x?he(x.name):void 0}),d({type:"success",message:p("upgradeDowngradeSuccess")})},onError:()=>d({type:"error",message:p("upgradeDowngradeError")})})},j=()=>{y&&I.mutate({planId:y.plan.current.planId,interval:y.plan.current.interval},{onSuccess:()=>{u.capture(Ne.PLAN_DOWNGRADE_CANCELLED,{plan_name:x?he(x.name):y.plan.current.planId}),d({type:"success",message:p("upgradeCancelDowngradeSuccess")})},onError:()=>d({type:"error",message:p("upgradeCancelDowngradeError")})})};return c?o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:o.jsx(wa,{})}):o.jsx(Ue,{open:a,onOpenChange:e,size:"xl","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:o.jsxs("div",{className:"bpb-upgrade",children:[o.jsx("h2",{className:"bpb-upgrade__title",children:p("upgradeDialogTitle")}),o.jsx("div",{className:"bpb-upgrade__toggle",children:o.jsx(br,{"aria-label":p("dashboardBillingPeriod"),value:m,onChange:w,options:[{value:"month",label:p("upgradeMonthly")},{value:"year",label:p("upgradeAnnual"),badge:F>0?p("upgradeSaveBadge",{savings:F}):void 0}]})}),o.jsxs("div",{className:"bpb-upgrade__grid",children:[N&&[0,1,2].map(S=>o.jsxs("div",{className:"bpb-plan-card","aria-hidden":!0,children:[o.jsx(le,{width:120,height:22}),o.jsx(le,{width:90,height:40}),o.jsx(le,{width:"100%",height:36,rounded:!0}),o.jsx(le,{width:"100%",height:140})]},S)),H.map((S,ue)=>{var me,ke;const pe=be(S),_e=gl(S,m),M=fl(S,m),W=(((me=S.prices.month)==null?void 0:me.amount)??0)<=0,Z=pe===_,te=Z&&(_==="community"||m===T),Ae=pe===_&&_!=="community"&&m!==T,se=!!L&&S.id===L&&!te,Ce=_!==void 0&&Sa.indexOf(pe)<Sa.indexOf(_),Pe=(pe===n||S.id===n)&&!te,Se=Z&&z?"cancel_downgrade":te?"current":Ae?"switch_interval":se?"next":Ce?"downgrade":"upgrade",ea=ue>0?H[ue-1]:void 0,Ee=i[pe]??Ut[pe],xa=S.features.conversation_sessions,re=Bt(C,S,m),xe=I.isPending&&(Se==="downgrade"&&((ke=I.variables)==null?void 0:ke.planId)===S.id||Se==="cancel_downgrade");return o.jsxs("div",{className:G("bpb-plan-card",Pe&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":S.id,children:[o.jsxs("div",{className:"bpb-plan-card__header",children:[o.jsxs("h3",{className:"bpb-plan-card__name",children:[he(S.name),Pe&&o.jsx(zt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("p",{className:"bpb-plan-card__tagline",children:p(cl[be(S)])}),o.jsx("div",{className:"bpb-plan-card__price",children:M!==null&&_e?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-plan-card__currency",children:Qa(_e.currency)}),o.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(M)?M:M.toFixed(2).replace(/\.00$/,"")}),o.jsx("span",{className:"bpb-plan-card__per",children:p("upgradePerMonthSuffix",{currency:_e.currency.toUpperCase()})})]}):o.jsx("span",{className:"bpb-plan-card__amount",children:ie(0,"usd",0)})})]}),xa!==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:de(xa)}),o.jsx("span",{className:"bpb-plan-card__metric-unit",children:p(W?"conversationsUnit":"conversationsPerMonth")})]}),re?o.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeThenPer",{price:ie(re.amount,re.currency,0),packSize:de(re.packSize)})}):o.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeNoTopup")})]}),Se==="current"&&o.jsx(Te,{variant:"outline",block:!0,disabled:!0,children:p("upgradeCurrentPlan")}),Se==="next"&&o.jsx(Te,{variant:"outline",block:!0,disabled:!0,children:p("upgradeNextPlan")}),Se==="cancel_downgrade"&&o.jsx(Te,{variant:"primary",block:!0,loading:xe,onClick:j,children:p("upgradeCancelDowngrade")}),Se==="downgrade"&&o.jsx(Te,{variant:"outline",block:!0,disabled:O||I.isPending,loading:xe,onClick:()=>$(S),children:p("upgradeDowngrade")}),Se==="switch_interval"&&o.jsx(Te,{variant:"primary",block:!0,disabled:O||I.isPending,title:O?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(Ne.PLAN_UPGRADE_INITIATED,{plan_name:he(S.name),interval:m,current_plan_name:x?he(x.name):void 0}),t(S.id,m)},children:p(m==="year"?"upgradeSwitchToAnnual":"upgradeSwitchToMonthly")}),Se==="upgrade"&&o.jsx(Te,{variant:Pe?"accent":"primary",block:!0,disabled:O||I.isPending,title:O?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(Ne.PLAN_UPGRADE_INITIATED,{plan_name:he(S.name),interval:m,current_plan_name:x?he(x.name):void 0}),t(S.id,m)},children:p("upgradeUpgrade")}),o.jsxs("ul",{className:"bpb-plan-card__features",children:[ea&&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(or,{size:13})}),o.jsx("span",{children:p("upgradeEverythingIn",{planName:he(ea.name)})})]}),Ee.map(Oe=>{const Da=Gt(Oe),aa=On[Oe],Nt=aa!==void 0?p(aa.label):Oe,ta=(l==null?void 0:l[Oe])??(aa!==void 0?p(aa.desc):void 0);return o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(Da,{size:13})}),ta?o.jsx(at,{label:Nt,children:ta}):o.jsx("span",{children:Nt})]},Oe)})]})]},S.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"}),"."]})]})})},qn='-apple-system, "ui-sans-serif", "system-ui", "Segoe UI", Helvetica, Arial, sans-serif',Wn="14px",vr="10px";function Gn(a){return a?{theme:"night",variables:{fontFamily:qn,fontSizeBase:Wn,borderRadius:vr,colorPrimary:"#ececec",colorBackground:"#1c1c1c",colorText:"#f9f9f9",colorTextSecondary:"#b4b4b4",colorTextPlaceholder:"#9b9b9b",colorDanger:"#ff8583"},rules:{".Input":{backgroundColor:"#212121",border:"1px solid rgba(255,255,255,0.12)",boxShadow:"none",color:"#f9f9f9"},".Input:focus":{border:"1px solid rgba(255,255,255,0.3)",boxShadow:"none"},".Label":{color:"#ececec",fontWeight:"500",fontSize:"12px"},".Error":{color:"#ff8583"},".Tab":{border:"1px solid rgba(255,255,255,0.12)",boxShadow:"none"}}}:{theme:"stripe",variables:{fontFamily:qn,fontSizeBase:Wn,borderRadius:vr,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 Kn(a){return{base:{fontFamily:qn,fontSize:Wn,color:a?"#f9f9f9":"#0d0d0d","::placeholder":{color:a?"#9b9b9b":"#8f8f8f"}},invalid:{color:a?"#ff8583":"#e02e2a"}}}const yl={pt:"pt-BR",es:"es-419"};function $n(a){const e=a.split("-")[0]??a;return yl[e]??a}function Kt(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 vl(a){const e=new Date(a);return new Date(e.getUTCFullYear(),e.getUTCMonth()+1,0).toISOString()}const _l=4,Cl=({plan:a,interval:e,preview:t,isLoadingPreview:n,isPreviewError:s,canSubscribe:r,isSubmitting:i,onSubscribe:l})=>{var J,$,j,ne,ae;const{locale:c}=Q(),{t:d}=ge(),{data:u}=ya(),p=((J=a==null?void 0:a.prices.month)==null?void 0:J.currency)??(($=a==null?void 0:a.prices.year)==null?void 0:$.currency)??"usd",m=a==null?void 0:a.features.conversation_sessions,h=a&&be(a)==="community"?d("conversationsUnit"):d("conversationsPerMonth"),b=a?Bt(u,a,e):null,N=(t==null?void 0:t.costs.immediate.amountDue)??0,C=(t==null?void 0:t.costs.immediate.accountBalance)??0,y=(t==null?void 0:t.costs.nextCycle.total)??0,v=t!=null&&t.nextBillingDate?er(t.nextBillingDate,1):null,I=v&&!Kt(v)?sa(v,c):null,A=a?Ut[be(a)].slice(0,_l):[],w=a?((j=a.prices[e])==null?void 0:j.amount)??0:0,T=(t==null?void 0:t.costs.immediate.lineItems)??[],x=T.filter(q=>q.type==="discount"),_=T.filter(q=>q.type==="proration_credit"||q.type==="proration_charge").reduce((q,S)=>q+S.amount,0),L=!!(t!=null&&t.subscription.plan.effectiveDate),z=((ne=a==null?void 0:a.prices.month)==null?void 0:ne.amount)??0,O=((ae=a==null?void 0:a.prices.year)==null?void 0:ae.amount)??0,H=e==="year"&&z>0&&O>0?Math.round(z*12-O):0,F=Math.round(H/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?`${he(a.name)} plan`:o.jsx(le,{width:140,height:24})}),m!==void 0&&o.jsxs("div",{className:"bpb-summary__metric",children:[o.jsx("span",{className:"bpb-summary__metric-value",children:de(m)}),o.jsx("span",{className:"bpb-summary__metric-unit",children:h}),b&&o.jsx("span",{className:"bpb-summary__metric-pack",children:d("orderThen",{price:ie(b.amount,b.currency,0),packSize:de(b.packSize)})})]}),A.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"bpb-summary__features-label",children:d("orderTopFeatures")}),o.jsx("ul",{className:"bpb-summary__features",children:A.map(q=>{const S=Gt(q);return o.jsxs("li",{children:[o.jsx(S,{size:16,className:"bpb-summary__feature-icon"}),o.jsx("span",{children:q})]},q)})})]}),o.jsx("hr",{className:"bpb-summary__divider"}),n&&o.jsxs("div",{className:"bpb-summary__lines","aria-busy":"true",children:[o.jsx(le,{height:16}),o.jsx(le,{height:16}),o.jsx(le,{height:20})]}),s&&o.jsx("p",{role:"alert",className:"bpb-summary__error",children:d("orderPreviewError")}),t&&!n&&L&&o.jsxs("div",{className:"bpb-summary__lines",children:[o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:I?d("orderPlanFromDate",{plan:a?he(a.name):"",date:I}):`${a?he(a.name):""} plan`}),o.jsxs("span",{className:"bpb-summary__line-amount",children:[ie(y,p),d(e==="year"?"perYear":"perMonth")]})]}),o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:o.jsx(at,{label:d("orderProratedToday"),children:d("orderProratedTodayDesc")})}),o.jsx("span",{className:"bpb-summary__line-amount",children:ie(N,p)})]}),o.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[o.jsx("span",{children:d("orderDueToday")}),o.jsx("span",{children:ie(N,p)})]}),_<0&&o.jsx("p",{className:"bpb-summary__addon-note",children:d("orderCreditTowardNext",{amount:ie(Math.abs(_),p)})})]}),t&&!n&&!L&&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?he(a.name):""," plan (",d(e==="year"?"orderIntervalAnnual":"orderIntervalMonthly"),")"]}),o.jsxs("span",{className:"bpb-summary__line-amount",children:[ie(w,p),d(e==="year"?"perYear":"perMonth")]})]}),x.map((q,S)=>o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:q.description}),o.jsx("span",{className:"bpb-summary__line-amount",children:ie(q.amount,p)})]},`${q.id}-${S}`)),_!==0&&o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:o.jsx(at,{label:_<0?d("orderCreditUnusedTime"):d("orderAdjustUnusedTime"),children:_<0?d("orderCreditUnusedTimeDesc"):d("orderAdjustUnusedTimeDesc")})}),o.jsx("span",{className:"bpb-summary__line-amount",children:ie(_,p)})]}),C!==0&&o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:d("orderAccountCredit")}),o.jsx("span",{className:"bpb-summary__line-amount",children:ie(C,p)})]}),o.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[o.jsx("span",{children:d("orderDueToday")}),o.jsx("span",{children:ie(N,p)})]}),_<0&&N===0&&o.jsx("p",{className:"bpb-summary__addon-note",children:d("orderBalanceAsCredit",{amount:ie(Math.abs(_),p)})})]}),H>0&&o.jsxs("div",{className:"bpb-summary__savings",children:[o.jsx(Mn,{size:18,className:"bpb-summary__savings-icon"}),o.jsx("span",{children:d("orderSavingsNote",{monthlySavings:ie(F,p,0),yearlySavings:ie(H,p,0)})})]}),o.jsx(Te,{variant:"primary",size:"lg",block:!0,className:"bpb-summary__cta",disabled:!r,loading:i,onClick:l,children:d(s?"orderPreviewUnavailable":"orderSubscribe")})]}),o.jsxs("p",{className:"bpb-summary__fineprint",children:[d(e==="month"?"orderRenewsMonthly":"orderRenewsAnnually"),t&&o.jsxs(o.Fragment,{children:[" ",I?d("orderChargedStarting",{amount:ie(y,p),period:d(e==="month"?"perMonthLong":"perYearLong"),date:I}):d("orderChargedNoDate",{amount:ie(y,p),period:d(e==="month"?"perMonthLong":"perYearLong")})]})," ",d("orderCancelNote")]})]})},Nl=["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"],Sl={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:"gb_vat",label:"GB VAT",description:"United Kingdom VAT number"}],AU:[{type:"au_abn",label:"AU ABN",description:"Australian Business 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"}],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"}],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"}]},kl=[{type:"eu_vat",label:"EU VAT",description:"European VAT number"}];function _r(a){if(!a)return[];const e=a.toUpperCase();return Nl.includes(e)?kl:Sl[e]??[]}const $t=({label:a,className:e,id:t,...n})=>a?o.jsxs("label",{className:G("bpb-input",e),children:[o.jsx("span",{className:"bpb-input__label",children:a}),o.jsx("input",{className:"bpb-input__field bpb-input__field--labeled",id:t,...n})]}):o.jsx("input",{className:G("bpb-input__field",e),id:t,...n}),Hn=({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(qt,{size:16,className:"bpb-input__chevron"})]})]}),wl=({plan:a,interval:e,onChange:t})=>{const{t:n}=ge(),s=a.prices.month,r=a.prices.year,i=s&&r&&s.amount>0?Math.round((1-r.amount/(s.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:[s&&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:[ie(s.amount,s.currency,0)," ",n("perMonth")]})]}),r&&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(zt,{children:n("checkoutSaveBadge",{savings:i})})]}),o.jsxs("span",{className:"bpb-interval-card__price",children:[ie(r.amount/12,r.currency,0)," ",n("perMonth")]})]})]})]})},Cr=({number:a,title:e,onEdit:t})=>{const{t:n}=ge();return o.jsxs("div",{className:"bpb-step__header",children:[t?o.jsxs("button",{type:"button",className:"bpb-step__title bpb-step__title--button",onClick:t,children:[a,". ",e]}):o.jsxs("h3",{className:"bpb-step__title",children:[a,". ",e]}),t&&o.jsx("button",{type:"button",className:"bpb-step__edit",onClick:t,children:n("edit")})]})},Tl=({stepNumber:a,savedCard:e,isDark:t,tab:n,onTabChange:s,onPaymentChange:r})=>{const{t:i}=ge(),[l,c]=P.useState(!1),d=n==="new"||!e;return o.jsxs("section",{className:"bpb-step",children:[o.jsx(Cr,{number:a,title:i("checkoutPaymentMethodTitle")}),e&&o.jsxs("div",{className:"bpb-pay-tabs",role:"tablist","aria-label":i("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:()=>s("saved"),children:[o.jsx(Un,{size:16}),i("checkoutSavedCardTab")]}),o.jsxs("button",{type:"button",role:"tab","aria-selected":n==="new",className:G("bpb-pay-tab",n==="new"&&"bpb-pay-tab--selected"),onClick:()=>s("new"),children:[o.jsx(Un,{size:16}),i("checkoutNewCardTab")]})]}),e&&n==="saved"&&o.jsxs("div",{className:"bpb-saved-card",children:[o.jsx(Zn,{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)]})]}),d&&o.jsxs("div",{className:"bpb-payment-element",children:[!l&&o.jsx("div",{className:"bpb-payment-element__skeleton",children:o.jsx(le,{height:48})}),o.jsx("div",{className:G("bpb-card-element",!l&&"bpb-payment-element--hidden"),children:o.jsx(Me.CardElement,{options:{style:Kn(t),hidePostalCode:!0},onReady:()=>c(!0),onChange:u=>r(u.complete)})})]})]})},Il=({stepNumber:a,existingAddress:e,customerName:t,isLoading:n,editing:s,onEdit:r,onCancelEdit:i,onReady:l,onCountryChange:c,country:d,isBusiness:u,onIsBusinessChange:p,businessName:m,onBusinessNameChange:h,taxType:b,onTaxTypeChange:N,taxValue:C,onTaxValueChange:y})=>{const{t:v}=ge(),[I,A]=P.useState(!1),w=s||!e,T=_r(d),x=T.find(_=>_.type===b);return o.jsxs("section",{className:"bpb-step",children:[o.jsx(Cr,{number:a,title:v("checkoutBillingAddressTitle")}),n?o.jsx(le,{height:72}):w?o.jsxs("div",{className:"bpb-payment-element",children:[!I&&o.jsxs("div",{className:"bpb-payment-element__skeleton",children:[o.jsx(le,{height:48}),o.jsx(le,{height:48})]}),o.jsx("div",{className:G(!I&&"bpb-payment-element--hidden"),children:o.jsx(Me.AddressElement,{options:{mode:"billing",display:{name:"full"},autocomplete:{mode:"disabled"},defaultValues:e?{name:t??void 0,address:{line1:e.lineOne,line2:e.lineTwo,city:e.city,state:e.state,postal_code:e.postalCode,country:e.country}}:void 0},onReady:()=>{A(!0),l()},onChange:_=>{c(_.value.address.country||void 0)}})}),i&&s&&o.jsx("button",{type:"button",className:"bpb-address-cancel",onClick:i,children:v("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:r,children:v("checkoutUpdateAddress")})]}),o.jsxs("label",{className:"bpb-checkbox",children:[o.jsx("input",{type:"checkbox",checked:u,onChange:_=>{p(_.target.checked),_.target.checked&&!b&&T[0]&&N(T[0].type)}}),o.jsx("span",{children:v("checkoutIsBusiness")})]}),u&&o.jsxs("div",{className:"bpb-business-fields",children:[o.jsx("h4",{className:"bpb-step__subtitle",children:v("checkoutBusinessDetails")}),o.jsx($t,{placeholder:v("checkoutBusinessNamePlaceholder"),value:m,onChange:_=>h(_.target.value),autoComplete:"organization"}),T.length>0?o.jsxs(o.Fragment,{children:[o.jsx(Hn,{"aria-label":v("checkoutTaxIdTypeLabel"),value:b,onChange:_=>N(_.target.value),children:T.map(_=>o.jsxs("option",{value:_.type,children:[_.label," — ",_.description]},_.type))}),o.jsx($t,{placeholder:x?x.description:v("checkoutTaxIdNumberPlaceholder"),value:C,onChange:_=>y(_.target.value),inputMode:"text"})]}):o.jsx("p",{className:"bpb-business-fields__note",children:v(d?"checkoutNoTaxRequired":"checkoutSelectCountryForTax")})]})]})},Al=({planId:a,initialInterval:e,onSuccess:t})=>{var ro;const n=Me.useStripe(),s=Me.useElements(),{email:r,toast:i,analytics:l,isDark:c}=Q(),{t:d}=ge(),[u,p]=P.useState(e),[m,h]=P.useState("payment"),[b,N]=P.useState(null),[C,y]=P.useState(!1),[v,I]=P.useState(!1),[A,w]=P.useState(!1),[T,x]=P.useState(void 0),[_,L]=P.useState(!1),[z,O]=P.useState(""),[H,F]=P.useState(""),[J,$]=P.useState(""),[j,ne]=P.useState(!1),[ae,q]=P.useState(null),[S,ue]=P.useState(!1),pe=wn(),{data:_e}=$e(),{data:M}=Ze(),{data:W,isLoading:Z}=Cn(),{data:te,isLoading:Ae}=Nn(),{data:se}=Sn(),Ce=_e==null?void 0:_e.find(Fe=>Fe.id===a),Pe=((ro=W==null?void 0:W.paymentMethod)==null?void 0:ro.card)??null,Se=(te==null?void 0:te.address)??null;P.useEffect(()=>{b===null&&!Z&&W!==void 0&&N(Pe?"saved":"new")},[b,Z,W,Pe]),P.useEffect(()=>{T===void 0&&Se&&x(Se.country)},[T,Se]);const ea=P.useMemo(()=>({plan:{planId:a,interval:u}}),[a,u]),Ee=_n(ea),xa=Tn(),re=In(),xe=An(),me=Pn(),ke=Ce?he(Ce.name):"",Oe=b==="new"||!Pe,Da=v||!Se,aa=Oe?C:!!Pe,Nt=Da?A:!0;P.useEffect(()=>{h(aa?"address":"payment")},[aa]),P.useEffect(()=>{l.capture(Ne.CHECKOUT_STEP_VIEWED,{plan_name:ke,interval:u,step:m})},[l,m]);const ta=Fe=>{Fe!==u&&l.capture(Ne.CHECKOUT_INTERVAL_CHANGED,{plan_name:ke,interval:Fe}),p(Fe)},rc=Fe=>{l.capture(Ne.PAYMENT_METHOD_SELECTED,{method:Fe==="saved"?"saved_card":"new_card"}),N(Fe)},oc=Fe=>{y(Fe),ue(!1)},ic=!!n&&!!s&&!!Ce&&!Ee.isError&&!!Ee.data&&aa&&Nt&&!j,lc=async()=>{var oo,io,lo,co;if(!n||!s||!Ce)return;ne(!0),q(null);const Fe=(Ea,cn)=>l.capture(Ne.CHECKOUT_ERROR,{plan_name:ke,interval:u,step:m,reason:Ea,message:cn});try{if(l.capture(Ne.PAYMENT_DETAILS_CONFIRMED,{plan_name:ke,interval:u}),Oe&&!S){const La=s.getElement(Me.CardElement);if(!La){q(d("checkoutCardNotReady")),Fe("card_element_not_ready");return}const{clientSecret:ns}=await pe.mutateAsync(),{error:la,setupIntent:Ve}=await n.confirmCardSetup(ns,{payment_method:{card:La}});if(la){q(la.message??d("checkoutPaymentSetupFailed")),l.capture(Ne.CHECKOUT_ERROR,{plan_name:ke,interval:u,step:m,reason:la.code??"card_setup_failed",decline_code:la.decline_code,message:la.message});return}if(!(Ve!=null&&Ve.payment_method)||typeof Ve.payment_method!="string"){q(d("checkoutPaymentMethodMissing")),Fe("payment_method_missing");return}await xa.mutateAsync({paymentMethodId:Ve.payment_method}),ue(!0)}let Ea;if(Da){const La=s.getElement("address");if(La){const{complete:ns,value:la}=await La.getValue();if(!ns||!la.address){q(d("checkoutAddressIncomplete")),Fe("address_incomplete");return}const{address:Ve}=la;Ea=((oo=la.name)==null?void 0:oo.trim())||void 0,await re.mutateAsync({lineOne:Ve.line1??"",lineTwo:Ve.line2??void 0,city:Ve.city??"",state:Ve.state??void 0,postalCode:Ve.postal_code??"",country:Ve.country??""})}}const cn=_&&z.trim()||Ea||void 0,uo=_&&H&&J.trim()?[{type:H,value:J.trim()}]:void 0;(cn!==void 0||uo!==void 0)&&await xe.mutateAsync({name:cn,taxIds:uo});const dc=((io=Ee.data)==null?void 0:io.costs.immediate.amountDue)??0,cc=((lo=Ee.data)==null?void 0:lo.costs.nextCycle.total)??0;await me.mutateAsync({planId:a,interval:u}),l.capture(Ne.PLAN_UPGRADED,{plan_name:ke,interval:u,amount_paid:dc,next_cycle_amount:cc,previous_plan_name:(co=_e==null?void 0:_e.find(La=>La.id===(M==null?void 0:M.plan.current.planId)))==null?void 0:co.name.replace("Plan - ",""),previous_interval:M==null?void 0:M.plan.current.interval}),i({type:"success",message:d("checkoutSuccessToast")}),t()}catch(Ea){q(d("checkoutGenericError")),Fe("exception",Ea instanceof Error?Ea.message:void 0),i({type:"error",message:d("checkoutErrorToast")})}finally{ne(!1)}};return o.jsxs("div",{className:"bpb-checkout__columns",children:[o.jsxs("div",{className:"bpb-checkout__main",children:[Ce&&o.jsx(wl,{plan:Ce,interval:u,onChange:ta}),r&&o.jsxs("section",{className:"bpb-checkout__section",children:[o.jsx("h3",{className:"bpb-checkout__section-title",children:d("checkoutContactInfo")}),o.jsxs("div",{className:"bpb-checkout__static-field",children:[o.jsx("span",{className:"bpb-checkout__static-label",children:d("checkoutEmailLabel")}),o.jsx("span",{children:r})]})]}),o.jsx(Tl,{stepNumber:1,savedCard:Pe,isDark:c,tab:b??"new",onTabChange:rc,onPaymentChange:oc}),m==="address"&&o.jsx(Il,{stepNumber:2,existingAddress:Se,customerName:(se==null?void 0:se.name)??null,isLoading:Ae,editing:v,onEdit:()=>I(!0),onCancelEdit:Se?()=>I(!1):void 0,onReady:()=>w(!0),onCountryChange:x,country:T,isBusiness:_,onIsBusinessChange:L,businessName:z,onBusinessNameChange:O,taxType:H,onTaxTypeChange:F,taxValue:J,onTaxValueChange:$}),ae&&o.jsx("p",{role:"alert",className:"bpb-checkout__submit-error",children:ae})]}),o.jsx("div",{className:"bpb-checkout__aside",children:o.jsx(Cl,{plan:Ce,interval:u,preview:Ee.data,isLoadingPreview:Ee.isLoading,isPreviewError:Ee.isError,canSubscribe:ic,isSubmitting:j,onSubscribe:()=>void lc()})})]})},Nr=({open:a,onOpenChange:e,planId:t,interval:n,onBack:s,onSuccess:r})=>{const{stripePromise:i,isDark:l,locale:c,isOutdatedBilling:d}=Q(),{t:u}=ge(),p=P.useMemo(()=>({appearance:Gn(l),locale:$n(c)}),[l,c]);return d?o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":u("checkoutTitle"),className:"bpb-scope",children:o.jsx(wa,{})}):o.jsx(Ue,{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:[s&&o.jsx("button",{type:"button",className:"bpb-checkout__back","aria-label":u("checkoutBackLabel"),onClick:s,children:o.jsx(zn,{size:18})}),o.jsx("h2",{className:"bpb-checkout__title",children:u("checkoutTitle")})]}),o.jsx(Me.Elements,{stripe:i,options:p,children:o.jsx(Al,{planId:t,initialInterval:n,onSuccess:()=>{e(!1),r==null||r()}})})]})})},Sr=({value:a,onChange:e,min:t=0,max:n,step:s=1,className:r,...i})=>{const l=()=>e(Math.max(t,a-s)),c=()=>e(n===void 0?a+s:Math.min(n,a+s));return o.jsxs("div",{className:G("bpb-stepper",r),children:[o.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Decrease ${i["aria-label"]}`,onClick:l,disabled:a<=t,children:o.jsx(hr,{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:c,disabled:n!==void 0&&a>=n,children:o.jsx(jn,{size:14})})]})},Pl=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:s}=Q(),{t:r}=ge();return s?o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":r("addonsDialogTitle"),className:"bpb-scope",children:o.jsx(wa,{})}):o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":r("addonsDialogTitle"),className:"bpb-scope",children:o.jsx(xl,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},xl=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var S,ue,pe,_e;const{toast:n,locale:s}=Q(),{t:r}=ge(),{data:i}=Ze(),{data:l}=ya(),{data:c}=$e(),{data:d}=kn(),u=Es(),[p,m]=P.useState(null),h=c==null?void 0:c.find(M=>M.id===(i==null?void 0:i.plan.current.planId)),b=(i==null?void 0:i.plan.current.interval)??"month",N=(d==null?void 0:d.addonsReadonly)??!1,C=i==null?void 0:i.plan.current.periodEnd,y=C&&!Kt(C)?sa(C,s):null,v=P.useMemo(()=>{var W;if(!i||!l)return null;const M={};for(const Z of l){const te=i.addons[Z.id];M[Z.id]=((W=te==null?void 0:te.next)==null?void 0:W.quantity)??(te==null?void 0:te.current.quantity)??0}return M},[i,l]),I=p??v,A=P.useMemo(()=>!l||!h?[]:l.flatMap(M=>{const W=Mt(M,h,b);return W?[{addon:M,price:W}]:[]}),[l,h,b]),w=!!I&&!!v&&Object.keys(I).some(M=>I[M]!==v[M]),T=A.reduce((M,{addon:W,price:Z})=>M+((I==null?void 0:I[W.id])??0)*Z.amount,0),x=P.useMemo(()=>h&&I?{plan:{planId:h.id,interval:b},addons:I}:null,[h,b,I]),_=_n(x??{plan:{planId:"",interval:b}},{enabled:!!x&&w}),L=((S=h==null?void 0:h.prices[b])==null?void 0:S.currency)??"usd",z=((ue=_.data)==null?void 0:ue.costs.immediate.amountDue)??0,O=(pe=_.data)==null?void 0:pe.nextBillingDate,H=O&&!Kt(O)?sa(O,s):null,F=((_e=h==null?void 0:h.prices[b])==null?void 0:_e.amount)??0,J=F+T,$=h&&I?sr(h,l,I):[],j=(M,W)=>W==="bytes"?Na(M):de(M),ne=(M,W)=>{const Z=l==null?void 0:l.find(Ce=>Ce.id===M),te=Z==null?void 0:Z.increments;if(!te||W<=0)return null;const Ae=te.conversation_sessions??0;if(Ae>0)return r("addonsConvos",{n:de(Ae*W)});const se=te.file_storage??0;return se>0?Na(se*W):null},ae=()=>{I&&u.mutate({addons:I},{onSuccess:()=>{n({type:"success",message:r("addonsUpdateSuccess")}),a(!1),e==null||e()},onError:()=>n({type:"error",message:r("addonsUpdateError")})})},q=!i||!l||!c;return o.jsxs("div",{className:"bpb-manage-addons",children:[o.jsx("h2",{className:"bpb-manage-addons__title",children:r("addonsDialogTitle")}),(q||A.length>0)&&o.jsx("p",{className:"bpb-manage-addons__subtitle",children:h?r("addonsSubtitleWithPlan",{planName:he(h.name)}):r("addonsSubtitleGeneric")}),q?o.jsxs("div",{className:"bpb-manage-addons__loading","aria-busy":"true",children:[o.jsx(le,{height:56}),o.jsx(le,{height:56})]}):A.length===0?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-manage-addons__upgrade-gate",children:[o.jsx(ml,{size:28,className:"bpb-manage-addons__upgrade-icon"}),o.jsxs("div",{className:"bpb-manage-addons__upgrade-text",children:[o.jsx("p",{className:"bpb-manage-addons__upgrade-title",children:r("addonsRequirePaidPlanTitle")}),o.jsx("p",{className:"bpb-manage-addons__upgrade-body",children:r("addonsRequirePaidPlanBody")})]})]}),o.jsx("div",{className:"bpb-manage-addons__actions",children:t?o.jsx(Te,{variant:"primary",className:"bpb-manage-addons__upgrade-cta",onClick:()=>{a(!1),t()},children:r("addonsUpgradeCta")}):o.jsx(Te,{variant:"outline",onClick:()=>a(!1),children:r("close")})})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"bpb-addons",children:A.map(({addon:M,price:W})=>{var Ce;const Z=((Ce=i==null?void 0:i.addons[M.id])==null?void 0:Ce.current.quantity)??0,te=(I==null?void 0:I[M.id])??0,Ae=te!==Z?te===0?y?r("addonRemovedOnDate",{activeNow:Z,date:y}):r("addonRemovedNextCycle",{activeNow:Z}):y?r("addonChangedOnDate",{activeNow:Z,pending:te,date:y}):r("addonChangedNextCycle",{activeNow:Z,pending:te}):Z>0?r("addonActiveOnly",{count:Z}):null,se=ne(M.id,te);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:ua[M.id]?r(ua[M.id]):Xa(M.name)}),o.jsx("span",{className:"bpb-addon-row__description",children:ar[M.id]?r(ar[M.id]):M.description}),o.jsxs("span",{className:"bpb-addon-row__price",children:[ie(W.amount,W.currency)," ",r("addonsEach")]}),Ae&&o.jsx("span",{className:G("bpb-addon-row__status",te!==Z&&"bpb-addon-row__status--changed"),children:Ae})]}),o.jsxs("div",{className:"bpb-addon-row__control",children:[se&&o.jsx("span",{className:"bpb-addon-row__grant",children:se}),o.jsx(Sr,{"aria-label":`${ua[M.id]?r(ua[M.id]):Xa(M.name)} quantity`,value:te,onChange:Pe=>m({...I??{},[M.id]:Pe})})]})]},M.id)})}),$.length>0&&o.jsxs("div",{className:"bpb-manage-addons__limits",children:[o.jsx("p",{className:"bpb-manage-addons__limits-title",children:r("addonsNewLimits")}),$.map(M=>{const W={conversation_sessions:"resourceConversations",table_rows:"resourceTableRows",vector_db_storage:"resourceVectorDb",file_storage:"resourceFileStorage"}[M.key];return o.jsxs("div",{className:"bpb-manage-addons__limit-row",children:[o.jsx("span",{className:"bpb-manage-addons__limit-label",children:W?r(W):M.label}),o.jsxs("span",{className:"bpb-manage-addons__limit-values",children:[o.jsx("span",{className:"bpb-manage-addons__limit-now",children:j(M.now,M.unit)}),o.jsx("span",{className:"bpb-manage-addons__limit-arrow","aria-hidden":!0,children:"→"}),o.jsx("span",{className:"bpb-manage-addons__limit-next",children:j(M.next,M.unit)})]})]},M.key)})]}),o.jsxs("div",{className:"bpb-manage-addons__totals",children:[o.jsxs("div",{className:"bpb-manage-addons__line",children:[o.jsx("span",{children:h?r("addonsPlanLine",{planName:he(h.name)}):r("addonsGenericPlan")}),o.jsx("span",{children:ie(F,L)})]}),A.map(({addon:M,price:W})=>{const Z=(I==null?void 0:I[M.id])??0;return Z<=0?null:o.jsxs("div",{className:"bpb-manage-addons__line",children:[o.jsxs("span",{children:[Z,"×"," ",ua[M.id]?r(ua[M.id]):Xa(M.name)]}),o.jsx("span",{children:ie(W.amount*Z,L)})]},M.id)}),o.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--total",children:[o.jsx("span",{children:r(b==="year"?"addonsTotalYearly":"addonsTotalMonthly")}),o.jsxs("span",{children:[ie(J,L),r(b==="year"?"perYear":"perMonth")]})]}),w&&o.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--due",children:[o.jsx("span",{children:r("addonsDueToday")}),o.jsx("span",{children:_.isLoading?"…":_.isError?"—":ie(Math.max(z,0),L)})]})]}),w&&!_.isError&&o.jsxs("p",{className:"bpb-manage-addons__note",children:[z>0?r("addonsChargedNow",{amount:ie(z,L)}):r("addonsNoChargeToday"),H?r("addonsRenewalWithDate",{date:H,amount:ie(T,L),interval:r(b==="year"?"perYear":"perMonth")}):r("addonsRenewalNoDate",{amount:ie(T,L),interval:r(b==="year"?"perYear":"perMonth")})]}),N&&o.jsx("p",{className:"bpb-manage-addons__note",role:"alert",children:r("addonsReadonlyNote")}),o.jsxs("div",{className:"bpb-manage-addons__actions",children:[o.jsx(Te,{variant:"outline",onClick:()=>a(!1),disabled:u.isPending,children:r("cancel")}),o.jsx(Te,{variant:"primary",disabled:!w||N,loading:u.isPending,onClick:ae,children:r("addonsUpdateSubscription")})]})]})]})},Dl=({open:a,onOpenChange:e})=>{const{isOutdatedBilling:t}=Q(),{t:n}=ge();return t?o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:o.jsx(wa,{})}):o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:o.jsx(El,{open:a})})},El=({open:a})=>{const{locale:e,analytics:t}=Q(),{t:n}=ge(),{data:s,isLoading:r,isError:i}=Ps({enabled:a}),l=(s==null?void 0:s.invoices)??[],c={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")}),r?o.jsxs("div",{className:"bpb-invoices__loading","aria-busy":"true",children:[o.jsx(le,{height:52}),o.jsx(le,{height:52}),o.jsx(le,{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(d=>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:sa(d.createdAt,e)}),o.jsx("span",{className:`bpb-invoices__status bpb-invoices__status--${d.status}`,children:c[d.status]})]}),o.jsxs("div",{className:"bpb-invoices__row-end",children:[o.jsx("span",{className:"bpb-invoices__amount",children:ie(d.amount,d.currency)}),d.pdfUrl?o.jsx("a",{className:"bpb-invoices__download",href:d.pdfUrl,target:"_blank",rel:"noopener noreferrer","aria-label":n("invoicesDownloadLabel",{date:sa(d.createdAt,e)}),onClick:()=>t.capture(Ne.INVOICE_DOWNLOADED,{status:d.status}),children:o.jsx(Vn,{size:16})}):o.jsx("span",{className:"bpb-invoices__download bpb-invoices__download--disabled","aria-hidden":!0,children:o.jsx(Vn,{size:16})})]})]},d.id))})]})},Ll=({open:a,onOpenChange:e,onSuccess:t})=>{var h;const{stripePromise:n,isDark:s,locale:r,isOutdatedBilling:i}=Q(),{t:l}=ge(),c=wn(),d=(h=c.data)==null?void 0:h.clientSecret,{mutate:u,reset:p}=c;P.useEffect(()=>{a&&!i?u():p()},[a,i,u,p]);const m=P.useMemo(()=>d?{clientSecret:d,appearance:Gn(s),locale:$n(r)}:null,[d,s,r]);return i?o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:o.jsx(wa,{})}):o.jsx(Ue,{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(Te,{variant:"outline",onClick:()=>u(),children:l("tryAgain")})]}):!m||!d?o.jsxs("div",{className:"bpb-payment-dialog__loading","aria-busy":"true",children:[o.jsx(le,{height:48}),o.jsx(le,{height:120})]}):o.jsx(Me.Elements,{stripe:n,options:m,children:o.jsx(Fl,{clientSecret:d,isDark:s,onSuccess:t})})]})})},Fl=({clientSecret:a,isDark:e,onSuccess:t})=>{var xa;const n=Me.useStripe(),s=Me.useElements(),{toast:r,analytics:i}=Q(),{t:l}=ge(),{data:c,isLoading:d}=Cn(),{data:u,isLoading:p}=Nn(),{data:m,isLoading:h}=Sn(),b=Tn(),N=In(),C=An(),y=((xa=c==null?void 0:c.paymentMethod)==null?void 0:xa.card)??null,v=(u==null?void 0:u.address)??null,I=(m==null?void 0:m.taxIds)??[],[A,w]=P.useState(!1),[T,x]=P.useState(!1),[_,L]=P.useState(!1),[z,O]=P.useState(!1),[H,F]=P.useState(null),[J,$]=P.useState(!1),[j,ne]=P.useState(!1),[ae,q]=P.useState(null),[S,ue]=P.useState(v==null?void 0:v.country),[pe,_e]=P.useState(I.length>0),[M,W]=P.useState(null),Z=M??I.map(re=>({type:re.type,value:re.value})),te=_r(S),Ae=M!==null,se=A||!y,Ce=(re,xe)=>W(Z.map((me,ke)=>ke===re?{...me,...xe}:me)),Pe=()=>{var re;return W([...Z,{type:((re=te[0])==null?void 0:re.type)??"",value:""}])},Se=re=>W(Z.filter((xe,me)=>me!==re)),ea=async()=>{if(!n||!s)return;const re=s.getElement(Me.CardElement);if(re){O(!0),F(null);try{const{error:xe,setupIntent:me}=await n.confirmCardSetup(a,{payment_method:{card:re}});if(xe){F(xe.message??l("paymentCardSaveError"));return}if(!(me!=null&&me.payment_method)||typeof me.payment_method!="string"){F(l("paymentMethodMissing"));return}await b.mutateAsync({paymentMethodId:me.payment_method}),i.capture(Ne.PAYMENT_METHOD_UPDATED),r({type:"success",message:l("paymentCardUpdated")}),w(!1),t==null||t()}catch{F(l("paymentCardGenericError"))}finally{O(!1)}}},Ee=async()=>{if(!s)return;const re=s.getElement("address");if(!re)return;const{complete:xe,value:me}=await re.getValue();if(!xe||!me.address){q(l("paymentAddressIncomplete"));return}ne(!0),q(null);try{const{address:ke,name:Oe}=me;await N.mutateAsync({lineOne:ke.line1??"",lineTwo:ke.line2??void 0,city:ke.city??"",state:ke.state??void 0,postalCode:ke.postal_code??"",country:ke.country??""});const Da=(Oe==null?void 0:Oe.trim())||void 0,aa=Z.filter(ta=>!!ta.type&&ta.value.trim()!=="").map(ta=>({type:ta.type,value:ta.value.trim()}));(Da!==((m==null?void 0:m.name)??void 0)||Ae)&&await C.mutateAsync({name:Da,taxIds:aa}),i.capture(Ne.BILLING_ADDRESS_UPDATED),r({type:"success",message:l("paymentDetailsUpdated")}),t==null||t()}catch(ke){const Oe=ke instanceof Error&&ke.message?ke.message:l("paymentAddressError");q(Oe),r({type:"error",message:l("paymentDetailsUpdateError")})}finally{ne(!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")}),d?o.jsx(le,{height:56}):se?o.jsxs("div",{className:"bpb-payment-element",children:[!T&&o.jsx(le,{height:48}),o.jsx("div",{className:T?"bpb-card-element":"bpb-payment-element--hidden",children:o.jsx(Me.CardElement,{options:{style:Kn(e),hidePostalCode:!0},onReady:()=>x(!0),onChange:re=>L(re.complete)})}),H&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:H}),o.jsxs("div",{className:"bpb-payment-dialog__section-actions",children:[y&&o.jsx(Te,{variant:"ghost",onClick:()=>w(!1),disabled:z,children:l("cancel")}),o.jsx(Te,{variant:"primary",disabled:!_,loading:z,onClick:ea,children:l("paymentSaveCard")})]})]}):o.jsxs("div",{className:"bpb-saved-card",children:[o.jsx(Zn,{brand:y.brand}),o.jsxs("span",{className:"bpb-saved-card__number",children:[o.jsx("span",{className:"bpb-saved-card__brand",children:y.brand})," •••• ",y.lastFour]}),o.jsxs("span",{className:"bpb-saved-card__exp",children:[String(y.expMonth).padStart(2,"0"),"/",String(y.expYear).slice(-2)]}),o.jsx("button",{type:"button",className:"bpb-link-button",onClick:()=>w(!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||h?o.jsx(le,{height:72}):o.jsxs("div",{className:"bpb-payment-element",children:[!J&&o.jsx(le,{height:120}),o.jsx("div",{className:J?void 0:"bpb-payment-element--hidden",children:o.jsx(Me.AddressElement,{options:{mode:"billing",display:{name:"full"},defaultValues:v?{name:(m==null?void 0:m.name)??void 0,address:{line1:v.lineOne,line2:v.lineTwo,city:v.city,state:v.state,postal_code:v.postalCode,country:v.country}}:void 0},onReady:()=>$(!0),onChange:re=>ue(re.value.address.country||void 0)})}),o.jsxs("div",{className:"bpb-tax-section",children:[o.jsxs("button",{type:"button",className:"bpb-tax-toggle","aria-expanded":pe,onClick:()=>_e(re=>!re),children:[o.jsx(qt,{size:16,className:G("bpb-tax-toggle__chevron",pe&&"bpb-tax-toggle__chevron--open")}),l("paymentTaxIds"),I.length>0&&o.jsx("span",{className:"bpb-tax-toggle__count",children:I.length})]}),pe&&o.jsxs("div",{className:"bpb-tax",children:[Z.length===0&&o.jsx("p",{className:"bpb-tax__empty",children:l("paymentTaxEmpty")}),Z.map((re,xe)=>o.jsxs("div",{className:"bpb-tax__row",children:[o.jsxs(Hn,{"aria-label":l("paymentTaxIdType"),value:re.type,onChange:me=>Ce(xe,{type:me.target.value}),children:[o.jsx("option",{value:"",children:l("paymentTaxSelectType")}),te.map(me=>o.jsx("option",{value:me.type,children:me.label},me.type)),re.type&&!te.some(me=>me.type===re.type)&&o.jsx("option",{value:re.type,children:re.type})]}),o.jsx($t,{placeholder:l("paymentTaxIdNumber"),value:re.value,onChange:me=>Ce(xe,{value:me.target.value})}),o.jsx("button",{type:"button",className:"bpb-tax__remove","aria-label":l("paymentTaxRemove"),onClick:()=>Se(xe),children:o.jsx(Zt,{size:14})})]},xe)),o.jsx("button",{type:"button",className:"bpb-link-button bpb-tax__add",onClick:Pe,children:l("paymentTaxAdd")})]})]}),ae&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:ae}),o.jsx("div",{className:"bpb-payment-dialog__section-actions",children:o.jsx(Te,{variant:"primary",loading:j,onClick:Ee,children:l("paymentSaveBillingDetails")})})]})]})]})},kr=(a,e,t)=>`bpb-dismissed:${a}:${e}:${t}`,wr=()=>new Date().toLocaleDateString("en-CA");function Tr(a,e,t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(kr(a,e,t))===wr()}catch{return!1}}function Ir(a,e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(kr(a,e,t),wr())}catch{}}var Ar={},Ht={};Object.defineProperty(Ht,"__esModule",{value:!0}),Ht.BOT_USE_CASES=void 0,Ht.BOT_USE_CASES={CUSTOMER_SUPPORT:"customer-support",BRAND_ASSISTANT:"brand-assistant",PRODUCT_RECOMMENDATION:"product-recommendation",OTHER:"other"};var Rt={};Object.defineProperty(Rt,"__esModule",{value:!0}),Rt.limitConfigs=void 0,Rt.limitConfigs={bot_configuration_bytes:{value:20480,unit:"bytes"},bot_installed_integrations_count:{value:30,unit:"count"},bot_installed_plugins_count:{value:30,unit:"count"},bot_integration_configuration_bytes:{value:20480,unit:"bytes"},bot_recurring_event_count:{value:50,unit:"count"},bot_recurring_event_payload_bytes:{value:131072,unit:"bytes"},event_definition_count:{value:20,unit:"count"},integration_channel_count:{value:10,unit:"count"},integration_channel_message_type_count:{value:20,unit:"count"},integration_identifier_count:{value:50,unit:"count"},integration_version_count:{value:200,unit:"count"},issue_event_item_payload_bytes:{value:131072,unit:"bytes"},message_payload_bytes:{value:131072,unit:"bytes"},schema_bytes:{value:102400,unit:"bytes"},state_definition_count:{value:20,unit:"count"},state_item_payload_bytes:{value:131072,unit:"bytes"},tag_definition_count:{value:50,unit:"count"},bot_integration_secret_count:{value:25,unit:"count"},files_api_query_bytes:{value:2048,unit:"bytes"},code_payload_bytes:{value:52428800,unit:"bytes"},entity_custom_properties_count:{value:50,unit:"count"}};var za={};Object.defineProperty(za,"__esModule",{value:!0}),za.objectToPrefixMap=za.prefixToObjectMap=void 0,za.prefixToObjectMap={accnt:"account",accntpf:"accountPreference",action:"action",activty:"activity",anlytic:"analytics",audit:"audit",bak:"botApiKey",bot:"bot",card:"card",cfg:"configuration",channel:"channel",conv:"conversation",devbot:"devBot",devint:"devIntegration",evt:"event",file:"file",flow:"flow",iak:"integrationApiKey",int:"integration",iface:"interface",ifver:"interfaceVersion",intver:"integrationVersion",iss:"issue",issevt:"issueEvent",kb:"knowledgeBase",limit:"limit",media:"media",msg:"message",node:"node",notif:"notification",pat:"personalAccessToken",plugin:"plugin",plugver:"pluginVersion",quota:"quota",recevt:"recurringEvent",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",archrg:"autoRechargeSetting",archtx:"autoRechargeTransaction",crgrant:"creditGrant",job:"job",pcrgrant:"pendingCreditGrant",promo:"promoCode",smgevt:"smaugEvent",usage:"usage",user:"user",webhook:"webhook",wkspace:"workspace",wksadd:"workspaceAddon",wksqtaadd:"workspaceQuotaAddition",wksplan:"workspacePlan",wrkflow:"workflow",wkspacepf:"workspacePreference",trial:"trial",evlrun:"evalRun",evlent:"evalEntry",evlres:"evalResult"},za.objectToPrefixMap={account:"accnt",accountPreference:"accntpf",action:"action",activity:"activty",analytics:"anlytic",audit:"audit",bot:"bot",botApiKey:"bak",card:"card",channel:"channel",configuration:"cfg",conversation:"conv",devBot:"devbot",devIntegration:"devint",event:"evt",file:"file",flow:"flow",integration:"int",integrationApiKey:"iak",integrationVersion:"intver",interface:"iface",interfaceVersion:"ifver",issue:"iss",issueEvent:"issevt",knowledgeBase:"kb",limit:"limit",media:"media",message:"msg",node:"node",notification:"notif",personalAccessToken:"pat",plugin:"plugin",pluginVersion:"plugver",quota:"quota",recurringEvent:"recevt",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",autoRechargeSetting:"archrg",autoRechargeTransaction:"archtx",creditGrant:"crgrant",job:"job",pendingCreditGrant:"pcrgrant",promoCode:"promo",smaugEvent:"smgevt",usage:"usage",user:"user",webhook:"webhook",workflow:"wrkflow",workspace:"wkspace",workspaceAddon:"wksadd",workspaceQuotaAddition:"wksqtaadd",workspacePlan:"wksplan",workspacePreference:"wkspacepf",trial:"trial",evalRun:"evlrun",evalEntry:"evlent",evalResult:"evlres"};var Pr={},pa={};Object.defineProperty(pa,"__esModule",{value:!0}),pa.quotaConfigsV3=pa.quotaConfigs=pa.quotaTypes=void 0,pa.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"],pa.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}},pa.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 Re={};Object.defineProperty(Re,"__esModule",{value:!0}),Re.billingFeatureDefs=Re.BILLING_PLAN_IDS=Re.ALLOWED_TRIAL_PLANS=Re.ALLOWED_TRIAL_LENGTHS_IN_DAYS=void 0,Re.ALLOWED_TRIAL_LENGTHS_IN_DAYS=7,Re.ALLOWED_TRIAL_PLANS=["plus","team"],Re.BILLING_PLAN_IDS=["community","plus","team","enterprise","managed"],Re.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=oe&&oe.__createBinding||(Object.create?function(n,s,r,i){i===void 0&&(i=r);var l=Object.getOwnPropertyDescriptor(s,r);(!l||("get"in l?!s.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return s[r]}}),Object.defineProperty(n,i,l)}:function(n,s,r,i){i===void 0&&(i=r),n[i]=s[r]}),t=oe&&oe.__exportStar||function(n,s){for(var r in n)r!=="default"&&!Object.prototype.hasOwnProperty.call(s,r)&&e(s,n,r)};Object.defineProperty(a,"__esModule",{value:!0}),t(pa,a),t(Re,a)}(Pr);var Yt={};Object.defineProperty(Yt,"__esModule",{value:!0}),Yt.Tags=void 0,Yt.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 Jt={};Object.defineProperty(Jt,"__esModule",{value:!0}),Jt.CANCELLATION_REASONS=void 0,Jt.CANCELLATION_REASONS=["too_expensive","not_using_enough","missing_feature","switched_tool","technical_issues","support_expectations","temporary_need"];var xr={},Rn={};(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)})(Rn);var Dr={},tt={},Qt={};(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})(Qt);var nt={},Er={},Yn={},ma={},Xt={},Ye={},st={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.getParsedType=a.ZodParsedType=a.objectUtil=a.util=void 0;var e;(function(s){s.assertEqual=c=>{};function r(c){}s.assertIs=r;function i(c){throw new Error}s.assertNever=i,s.arrayToEnum=c=>{const d={};for(const u of c)d[u]=u;return d},s.getValidEnumValues=c=>{const d=s.objectKeys(c).filter(p=>typeof c[c[p]]!="number"),u={};for(const p of d)u[p]=c[p];return s.objectValues(u)},s.objectValues=c=>s.objectKeys(c).map(function(d){return c[d]}),s.objectKeys=typeof Object.keys=="function"?c=>Object.keys(c):c=>{const d=[];for(const u in c)Object.prototype.hasOwnProperty.call(c,u)&&d.push(u);return d},s.find=(c,d)=>{for(const u of c)if(d(u))return u},s.isInteger=typeof Number.isInteger=="function"?c=>Number.isInteger(c):c=>typeof c=="number"&&Number.isFinite(c)&&Math.floor(c)===c;function l(c,d=" | "){return c.map(u=>typeof u=="string"?`'${u}'`:u).join(d)}s.joinValues=l,s.jsonStringifyReplacer=(c,d)=>typeof d=="bigint"?d.toString():d})(e||(a.util=e={}));var t;(function(s){s.mergeShapes=(r,i)=>({...r,...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=s=>{switch(typeof s){case"undefined":return a.ZodParsedType.undefined;case"string":return a.ZodParsedType.string;case"number":return Number.isNaN(s)?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(s)?a.ZodParsedType.array:s===null?a.ZodParsedType.null:s.then&&typeof s.then=="function"&&s.catch&&typeof s.catch=="function"?a.ZodParsedType.promise:typeof Map<"u"&&s instanceof Map?a.ZodParsedType.map:typeof Set<"u"&&s instanceof Set?a.ZodParsedType.set:typeof Date<"u"&&s instanceof Date?a.ZodParsedType.date:a.ZodParsedType.object;default:return a.ZodParsedType.unknown}};a.getParsedType=n})(st),Object.defineProperty(Ye,"__esModule",{value:!0}),Ye.ZodError=Ye.quotelessJson=Ye.ZodIssueCode=void 0;const Lr=st;Ye.ZodIssueCode=Lr.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 Ol=a=>JSON.stringify(a,null,2).replace(/"([^"]+)":/g,"$1:");Ye.quotelessJson=Ol;class rt 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(r){return r.message},n={_errors:[]},s=r=>{for(const i of r.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let l=n,c=0;for(;c<i.path.length;){const d=i.path[c];c===i.path.length-1?(l[d]=l[d]||{_errors:[]},l[d]._errors.push(t(i))):l[d]=l[d]||{_errors:[]},l=l[d],c++}}};return s(this),n}static assert(e){if(!(e instanceof rt))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Lr.util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const s of this.issues)if(s.path.length>0){const r=s.path[0];t[r]=t[r]||[],t[r].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}Ye.ZodError=rt,rt.create=a=>new rt(a),Object.defineProperty(Xt,"__esModule",{value:!0});const De=Ye,Ta=st,Ml=(a,e)=>{let t;switch(a.code){case De.ZodIssueCode.invalid_type:a.received===Ta.ZodParsedType.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case De.ZodIssueCode.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,Ta.util.jsonStringifyReplacer)}`;break;case De.ZodIssueCode.unrecognized_keys:t=`Unrecognized key(s) in object: ${Ta.util.joinValues(a.keys,", ")}`;break;case De.ZodIssueCode.invalid_union:t="Invalid input";break;case De.ZodIssueCode.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${Ta.util.joinValues(a.options)}`;break;case De.ZodIssueCode.invalid_enum_value:t=`Invalid enum value. Expected ${Ta.util.joinValues(a.options)}, received '${a.received}'`;break;case De.ZodIssueCode.invalid_arguments:t="Invalid function arguments";break;case De.ZodIssueCode.invalid_return_type:t="Invalid function return type";break;case De.ZodIssueCode.invalid_date:t="Invalid date";break;case De.ZodIssueCode.invalid_string:typeof a.validation=="object"?"includes"in a.validation?(t=`Invalid input: must include "${a.validation.includes}"`,typeof a.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${a.validation.position}`)):"startsWith"in a.validation?t=`Invalid input: must start with "${a.validation.startsWith}"`:"endsWith"in a.validation?t=`Invalid input: must end with "${a.validation.endsWith}"`:Ta.util.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case De.ZodIssueCode.too_small:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at least":"more than"} ${a.minimum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at least":"over"} ${a.minimum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="bigint"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(a.minimum))}`:t="Invalid input";break;case De.ZodIssueCode.too_big:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at most":"less than"} ${a.maximum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at most":"under"} ${a.maximum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="bigint"?t=`BigInt must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly":a.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(a.maximum))}`:t="Invalid input";break;case De.ZodIssueCode.custom:t="Invalid input";break;case De.ZodIssueCode.invalid_intersection_types:t="Intersection results could not be merged";break;case De.ZodIssueCode.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case De.ZodIssueCode.not_finite:t="Number must be finite";break;default:t=e.defaultError,Ta.util.assertNever(a)}return{message:t}};Xt.default=Ml;var Bl=oe&&oe.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(ma,"__esModule",{value:!0}),ma.defaultErrorMap=void 0,ma.setErrorMap=Ul,ma.getErrorMap=zl;const Fr=Bl(Xt);ma.defaultErrorMap=Fr.default;let Or=Fr.default;function Ul(a){Or=a}function zl(){return Or}var Jn={};(function(a){var e=oe&&oe.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};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=r;const t=ma,n=e(Xt),s=h=>{const{data:b,path:N,errorMaps:C,issueData:y}=h,v=[...N,...y.path||[]],I={...y,path:v};if(y.message!==void 0)return{...y,path:v,message:y.message};let A="";const w=C.filter(T=>!!T).slice().reverse();for(const T of w)A=T(I,{data:b,defaultError:A}).message;return{...y,path:v,message:A}};a.makeIssue=s,a.EMPTY_PATH=[];function r(h,b){const N=(0,t.getErrorMap)(),C=(0,a.makeIssue)({issueData:b,data:h.data,path:h.path,errorMaps:[h.common.contextualErrorMap,h.schemaErrorMap,N,N===n.default?void 0:n.default].filter(y=>!!y)});h.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(b,N){const C=[];for(const y of N){if(y.status==="aborted")return a.INVALID;y.status==="dirty"&&b.dirty(),C.push(y.value)}return{status:b.value,value:C}}static async mergeObjectAsync(b,N){const C=[];for(const y of N){const v=await y.key,I=await y.value;C.push({key:v,value:I})}return i.mergeObjectSync(b,C)}static mergeObjectSync(b,N){const C={};for(const y of N){const{key:v,value:I}=y;if(v.status==="aborted"||I.status==="aborted")return a.INVALID;v.status==="dirty"&&b.dirty(),I.status==="dirty"&&b.dirty(),v.value!=="__proto__"&&(typeof I.value<"u"||y.alwaysSet)&&(C[v.value]=I.value)}return{status:b.value,value:C}}}a.ParseStatus=i,a.INVALID=Object.freeze({status:"aborted"});const l=h=>({status:"dirty",value:h});a.DIRTY=l;const c=h=>({status:"valid",value:h});a.OK=c;const d=h=>h.status==="aborted";a.isAborted=d;const u=h=>h.status==="dirty";a.isDirty=u;const p=h=>h.status==="valid";a.isValid=p;const m=h=>typeof Promise<"u"&&h instanceof Promise;a.isAsync=m})(Jn);var Mr={};Object.defineProperty(Mr,"__esModule",{value:!0});var g={},en={};Object.defineProperty(en,"__esModule",{value:!0}),en.errorUtil=void 0;var Br;(function(a){a.errToObj=e=>typeof e=="string"?{message:e}:e||{},a.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(Br||(en.errorUtil=Br={})),Object.defineProperty(g,"__esModule",{value:!0}),g.discriminatedUnion=g.date=g.boolean=g.bigint=g.array=g.any=g.coerce=g.ZodFirstPartyTypeKind=g.late=g.ZodSchema=g.Schema=g.ZodReadonly=g.ZodPipeline=g.ZodBranded=g.BRAND=g.ZodNaN=g.ZodCatch=g.ZodDefault=g.ZodNullable=g.ZodOptional=g.ZodTransformer=g.ZodEffects=g.ZodPromise=g.ZodNativeEnum=g.ZodEnum=g.ZodLiteral=g.ZodLazy=g.ZodFunction=g.ZodSet=g.ZodMap=g.ZodRecord=g.ZodTuple=g.ZodIntersection=g.ZodDiscriminatedUnion=g.ZodUnion=g.ZodObject=g.ZodArray=g.ZodVoid=g.ZodNever=g.ZodUnknown=g.ZodAny=g.ZodNull=g.ZodUndefined=g.ZodSymbol=g.ZodDate=g.ZodBoolean=g.ZodBigInt=g.ZodNumber=g.ZodString=g.ZodType=void 0,g.NEVER=g.void=g.unknown=g.union=g.undefined=g.tuple=g.transformer=g.symbol=g.string=g.strictObject=g.set=g.record=g.promise=g.preprocess=g.pipeline=g.ostring=g.optional=g.onumber=g.oboolean=g.object=g.number=g.nullable=g.null=g.never=g.nativeEnum=g.nan=g.map=g.literal=g.lazy=g.intersection=g.instanceof=g.function=g.enum=g.effect=void 0,g.datetimeRegex=Vr,g.custom=Wr;const D=Ye,an=ma,V=en,f=Jn,E=st;class Je{constructor(e,t,n,s){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=s}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 Ur=(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 D.ZodError(a.common.issues);return this._error=t,this._error}}};function Y(a){if(!a)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:s}=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:s}:{errorMap:(i,l)=>{const{message:c}=a;return i.code==="invalid_enum_value"?{message:c??l.defaultError}:typeof l.data>"u"?{message:c??n??l.defaultError}:i.code!=="invalid_type"?{message:l.defaultError}:{message:c??t??l.defaultError}},description:s}}class X{get description(){return this._def.description}_getType(e){return(0,E.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,E.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,E.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,E.getParsedType)(e)},s=this._parseSync({data:e,path:n.path,parent:n});return Ur(n,s)}"~validate"(e){var n,s;const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,E.getParsedType)(e)};if(!this["~standard"].async)try{const r=this._parseSync({data:e,path:[],parent:t});return(0,f.isValid)(r)?{value:r.value}:{issues:t.common.issues}}catch(r){(s=(n=r==null?void 0:r.message)==null?void 0:n.toLowerCase())!=null&&s.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(r=>(0,f.isValid)(r)?{value:r.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,E.getParsedType)(e)},s=this._parse({data:e,path:n.path,parent:n}),r=await((0,f.isAsync)(s)?s:Promise.resolve(s));return Ur(n,r)}refine(e,t){const n=s=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(s):t;return this._refinement((s,r)=>{const i=e(s),l=()=>r.addIssue({code:D.ZodIssueCode.custom,...n(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(l(),!1)):i?!0:(l(),!1)})}refinement(e,t){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof t=="function"?t(n,s):t),!1))}_refinement(e){return new Ge({schema:this,typeName:K.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 Xe.create(this,this._def)}nullable(){return ba.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return We.create(this)}promise(){return qa.create(this,this._def)}or(e){return dt.create([this,e],this._def)}and(e){return ct.create(this,e,this._def)}transform(e){return new Ge({...Y(this._def),schema:this,typeName:K.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new gt({...Y(this._def),innerType:this,defaultValue:t,typeName:K.ZodDefault})}brand(){return new es({typeName:K.ZodBranded,type:this,...Y(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new ft({...Y(this._def),innerType:this,catchValue:t,typeName:K.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return bt.create(this,e)}readonly(){return yt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}g.ZodType=X,g.Schema=X,g.ZodSchema=X;const jl=/^c[^\s-]{8,}$/i,Vl=/^[0-9a-z]+$/,Zl=/^[0-9A-HJKMNP-TV-Z]{26}$/i,ql=/^[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,Wl=/^[a-z0-9_-]{21}$/i,Gl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Kl=/^[-+]?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)?)??$/,$l=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Hl="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Qn;const Rl=/^(?:(?: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])$/,Yl=/^(?:(?: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])$/,Jl=/^(([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]))$/,Ql=/^(([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])$/,Xl=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,ed=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,zr="((\\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])))",ad=new RegExp(`^${zr}$`);function jr(a){let e="[0-5]\\d";a.precision?e=`${e}\\.\\d{${a.precision}}`:a.precision==null&&(e=`${e}(\\.\\d+)?`);const t=a.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function td(a){return new RegExp(`^${jr(a)}$`)}function Vr(a){let e=`${zr}T${jr(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 nd(a,e){return!!((e==="v4"||!e)&&Rl.test(a)||(e==="v6"||!e)&&Jl.test(a))}function sd(a,e){if(!Gl.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,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&(s==null?void 0:s.typ)!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function rd(a,e){return!!((e==="v4"||!e)&&Yl.test(a)||(e==="v6"||!e)&&Ql.test(a))}class qe extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==E.ZodParsedType.string){const r=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.string,received:r.parsedType}),f.INVALID}const n=new f.ParseStatus;let s;for(const r of this._def.checks)if(r.kind==="min")e.data.length<r.value&&(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),n.dirty());else if(r.kind==="max")e.data.length>r.value&&(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),n.dirty());else if(r.kind==="length"){const i=e.data.length>r.value,l=e.data.length<r.value;(i||l)&&(s=this._getOrReturnCtx(e,s),i?(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}):l&&(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}),n.dirty())}else if(r.kind==="email")$l.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"email",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="emoji")Qn||(Qn=new RegExp(Hl,"u")),Qn.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"emoji",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="uuid")ql.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"uuid",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="nanoid")Wl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"nanoid",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="cuid")jl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"cuid",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="cuid2")Vl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"cuid2",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="ulid")Zl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"ulid",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"url",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()}else r.kind==="regex"?(r.regex.lastIndex=0,r.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"regex",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty())):r.kind==="trim"?e.data=e.data.trim():r.kind==="includes"?e.data.includes(r.value,r.position)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),n.dirty()):r.kind==="toLowerCase"?e.data=e.data.toLowerCase():r.kind==="toUpperCase"?e.data=e.data.toUpperCase():r.kind==="startsWith"?e.data.startsWith(r.value)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:{startsWith:r.value},message:r.message}),n.dirty()):r.kind==="endsWith"?e.data.endsWith(r.value)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:{endsWith:r.value},message:r.message}),n.dirty()):r.kind==="datetime"?Vr(r).test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:"datetime",message:r.message}),n.dirty()):r.kind==="date"?ad.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:"date",message:r.message}),n.dirty()):r.kind==="time"?td(r).test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:"time",message:r.message}),n.dirty()):r.kind==="duration"?Kl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"duration",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):r.kind==="ip"?nd(e.data,r.version)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"ip",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):r.kind==="jwt"?sd(e.data,r.alg)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"jwt",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):r.kind==="cidr"?rd(e.data,r.version)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"cidr",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):r.kind==="base64"?Xl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"base64",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):r.kind==="base64url"?ed.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"base64url",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):E.util.assertNever(r);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(s=>e.test(s),{validation:t,code:D.ZodIssueCode.invalid_string,...V.errorUtil.errToObj(n)})}_addCheck(e){return new qe({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...V.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:"url",...V.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...V.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...V.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...V.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...V.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...V.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...V.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...V.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...V.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...V.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...V.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...V.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,...V.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,...V.errorUtil.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...V.errorUtil.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...V.errorUtil.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...V.errorUtil.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...V.errorUtil.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...V.errorUtil.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...V.errorUtil.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...V.errorUtil.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...V.errorUtil.errToObj(t)})}nonempty(e){return this.min(1,V.errorUtil.errToObj(e))}trim(){return new qe({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new qe({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new qe({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}g.ZodString=qe,qe.create=a=>new qe({checks:[],typeName:K.ZodString,coerce:(a==null?void 0:a.coerce)??!1,...Y(a)});function od(a,e){const t=(a.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=t>n?t:n,r=Number.parseInt(a.toFixed(s).replace(".","")),i=Number.parseInt(e.toFixed(s).replace(".",""));return r%i/10**s}class ha extends X{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)!==E.ZodParsedType.number){const r=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.number,received:r.parsedType}),f.INVALID}let n;const s=new f.ParseStatus;for(const r of this._def.checks)r.kind==="int"?E.util.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:"integer",received:"float",message:r.message}),s.dirty()):r.kind==="min"?(r.inclusive?e.data<r.value:e.data<=r.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_small,minimum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),s.dirty()):r.kind==="max"?(r.inclusive?e.data>r.value:e.data>=r.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),s.dirty()):r.kind==="multipleOf"?od(e.data,r.value)!==0&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.not_multiple_of,multipleOf:r.value,message:r.message}),s.dirty()):r.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.not_finite,message:r.message}),s.dirty()):E.util.assertNever(r);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,V.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,V.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,V.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,V.errorUtil.toString(t))}setLimit(e,t,n,s){return new ha({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:V.errorUtil.toString(s)}]})}_addCheck(e){return new ha({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:V.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:V.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:V.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:V.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:V.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:V.errorUtil.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:V.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:V.errorUtil.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:V.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"&&E.util.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}g.ZodNumber=ha,ha.create=a=>new ha({checks:[],typeName:K.ZodNumber,coerce:(a==null?void 0:a.coerce)||!1,...Y(a)});class ga extends X{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)!==E.ZodParsedType.bigint)return this._getInvalidInput(e);let n;const s=new f.ParseStatus;for(const r of this._def.checks)r.kind==="min"?(r.inclusive?e.data<r.value:e.data<=r.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_small,type:"bigint",minimum:r.value,inclusive:r.inclusive,message:r.message}),s.dirty()):r.kind==="max"?(r.inclusive?e.data>r.value:e.data>=r.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_big,type:"bigint",maximum:r.value,inclusive:r.inclusive,message:r.message}),s.dirty()):r.kind==="multipleOf"?e.data%r.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.not_multiple_of,multipleOf:r.value,message:r.message}),s.dirty()):E.util.assertNever(r);return{status:s.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.bigint,received:t.parsedType}),f.INVALID}gte(e,t){return this.setLimit("min",e,!0,V.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,V.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,V.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,V.errorUtil.toString(t))}setLimit(e,t,n,s){return new ga({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:V.errorUtil.toString(s)}]})}_addCheck(e){return new ga({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:V.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:V.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:V.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:V.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:V.errorUtil.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}g.ZodBigInt=ga,ga.create=a=>new ga({checks:[],typeName:K.ZodBigInt,coerce:(a==null?void 0:a.coerce)??!1,...Y(a)});class ot extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==E.ZodParsedType.boolean){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.boolean,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}g.ZodBoolean=ot,ot.create=a=>new ot({typeName:K.ZodBoolean,coerce:(a==null?void 0:a.coerce)||!1,...Y(a)});class Ia extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==E.ZodParsedType.date){const r=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.date,received:r.parsedType}),f.INVALID}if(Number.isNaN(e.data.getTime())){const r=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_date}),f.INVALID}const n=new f.ParseStatus;let s;for(const r of this._def.checks)r.kind==="min"?e.data.getTime()<r.value&&(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:"date"}),n.dirty()):r.kind==="max"?e.data.getTime()>r.value&&(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),n.dirty()):E.util.assertNever(r);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Ia({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:V.errorUtil.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:V.errorUtil.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}g.ZodDate=Ia,Ia.create=a=>new Ia({checks:[],coerce:(a==null?void 0:a.coerce)||!1,typeName:K.ZodDate,...Y(a)});class tn extends X{_parse(e){if(this._getType(e)!==E.ZodParsedType.symbol){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.symbol,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}g.ZodSymbol=tn,tn.create=a=>new tn({typeName:K.ZodSymbol,...Y(a)});class it extends X{_parse(e){if(this._getType(e)!==E.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.undefined,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}g.ZodUndefined=it,it.create=a=>new it({typeName:K.ZodUndefined,...Y(a)});class lt extends X{_parse(e){if(this._getType(e)!==E.ZodParsedType.null){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.null,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}g.ZodNull=lt,lt.create=a=>new lt({typeName:K.ZodNull,...Y(a)});class ja extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,f.OK)(e.data)}}g.ZodAny=ja,ja.create=a=>new ja({typeName:K.ZodAny,...Y(a)});class Aa extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,f.OK)(e.data)}}g.ZodUnknown=Aa,Aa.create=a=>new Aa({typeName:K.ZodUnknown,...Y(a)});class ra extends X{_parse(e){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.never,received:t.parsedType}),f.INVALID}}g.ZodNever=ra,ra.create=a=>new ra({typeName:K.ZodNever,...Y(a)});class nn extends X{_parse(e){if(this._getType(e)!==E.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.void,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}g.ZodVoid=nn,nn.create=a=>new nn({typeName:K.ZodVoid,...Y(a)});class We extends X{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),s=this._def;if(t.parsedType!==E.ZodParsedType.array)return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.array,received:t.parsedType}),f.INVALID;if(s.exactLength!==null){const i=t.data.length>s.exactLength.value,l=t.data.length<s.exactLength.value;(i||l)&&((0,f.addIssueToContext)(t,{code:i?D.ZodIssueCode.too_big:D.ZodIssueCode.too_small,minimum:l?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(s.minLength!==null&&t.data.length<s.minLength.value&&((0,f.addIssueToContext)(t,{code:D.ZodIssueCode.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&&t.data.length>s.maxLength.value&&((0,f.addIssueToContext)(t,{code:D.ZodIssueCode.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((i,l)=>s.type._parseAsync(new Je(t,i,t.path,l)))).then(i=>f.ParseStatus.mergeArray(n,i));const r=[...t.data].map((i,l)=>s.type._parseSync(new Je(t,i,t.path,l)));return f.ParseStatus.mergeArray(n,r)}get element(){return this._def.type}min(e,t){return new We({...this._def,minLength:{value:e,message:V.errorUtil.toString(t)}})}max(e,t){return new We({...this._def,maxLength:{value:e,message:V.errorUtil.toString(t)}})}length(e,t){return new We({...this._def,exactLength:{value:e,message:V.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}g.ZodArray=We,We.create=(a,e)=>new We({type:a,minLength:null,maxLength:null,exactLength:null,typeName:K.ZodArray,...Y(e)});function Va(a){if(a instanceof ye){const e={};for(const t in a.shape){const n=a.shape[t];e[t]=Xe.create(Va(n))}return new ye({...a._def,shape:()=>e})}else return a instanceof We?new We({...a._def,type:Va(a.element)}):a instanceof Xe?Xe.create(Va(a.unwrap())):a instanceof ba?ba.create(Va(a.unwrap())):a instanceof Qe?Qe.create(a.items.map(e=>Va(e))):a}class ye extends X{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=E.util.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==E.ZodParsedType.object){const d=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(d,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.object,received:d.parsedType}),f.INVALID}const{status:n,ctx:s}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),l=[];if(!(this._def.catchall instanceof ra&&this._def.unknownKeys==="strip"))for(const d in s.data)i.includes(d)||l.push(d);const c=[];for(const d of i){const u=r[d],p=s.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new Je(s,p,s.path,d)),alwaysSet:d in s.data})}if(this._def.catchall instanceof ra){const d=this._def.unknownKeys;if(d==="passthrough")for(const u of l)c.push({key:{status:"valid",value:u},value:{status:"valid",value:s.data[u]}});else if(d==="strict")l.length>0&&((0,f.addIssueToContext)(s,{code:D.ZodIssueCode.unrecognized_keys,keys:l}),n.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const d=this._def.catchall;for(const u of l){const p=s.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new Je(s,p,s.path,u)),alwaysSet:u in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const d=[];for(const u of c){const p=await u.key,m=await u.value;d.push({key:p,value:m,alwaysSet:u.alwaysSet})}return d}).then(d=>f.ParseStatus.mergeObjectSync(n,d)):f.ParseStatus.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return V.errorUtil.errToObj,new ye({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var r,i;const s=((i=(r=this._def).errorMap)==null?void 0:i.call(r,t,n).message)??n.defaultError;return t.code==="unrecognized_keys"?{message:V.errorUtil.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new ye({...this._def,unknownKeys:"strip"})}passthrough(){return new ye({...this._def,unknownKeys:"passthrough"})}extend(e){return new ye({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new ye({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:K.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new ye({...this._def,catchall:e})}pick(e){const t={};for(const n of E.util.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new ye({...this._def,shape:()=>t})}omit(e){const t={};for(const n of E.util.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new ye({...this._def,shape:()=>t})}deepPartial(){return Va(this)}partial(e){const t={};for(const n of E.util.objectKeys(this.shape)){const s=this.shape[n];e&&!e[n]?t[n]=s:t[n]=s.optional()}return new ye({...this._def,shape:()=>t})}required(e){const t={};for(const n of E.util.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let r=this.shape[n];for(;r instanceof Xe;)r=r._def.innerType;t[n]=r}return new ye({...this._def,shape:()=>t})}keyof(){return Zr(E.util.objectKeys(this.shape))}}g.ZodObject=ye,ye.create=(a,e)=>new ye({shape:()=>a,unknownKeys:"strip",catchall:ra.create(),typeName:K.ZodObject,...Y(e)}),ye.strictCreate=(a,e)=>new ye({shape:()=>a,unknownKeys:"strict",catchall:ra.create(),typeName:K.ZodObject,...Y(e)}),ye.lazycreate=(a,e)=>new ye({shape:a,unknownKeys:"strip",catchall:ra.create(),typeName:K.ZodObject,...Y(e)});class dt extends X{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function s(r){for(const l of r)if(l.result.status==="valid")return l.result;for(const l of r)if(l.result.status==="dirty")return t.common.issues.push(...l.ctx.common.issues),l.result;const i=r.map(l=>new D.ZodError(l.ctx.common.issues));return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_union,unionErrors:i}),f.INVALID}if(t.common.async)return Promise.all(n.map(async r=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await r._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(s);{let r;const i=[];for(const c of n){const d={...t,common:{...t.common,issues:[]},parent:null},u=c._parseSync({data:t.data,path:t.path,parent:d});if(u.status==="valid")return u;u.status==="dirty"&&!r&&(r={result:u,ctx:d}),d.common.issues.length&&i.push(d.common.issues)}if(r)return t.common.issues.push(...r.ctx.common.issues),r.result;const l=i.map(c=>new D.ZodError(c));return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_union,unionErrors:l}),f.INVALID}}get options(){return this._def.options}}g.ZodUnion=dt,dt.create=(a,e)=>new dt({options:a,typeName:K.ZodUnion,...Y(e)});const oa=a=>a instanceof pt?oa(a.schema):a instanceof Ge?oa(a.innerType()):a instanceof mt?[a.value]:a instanceof fa?a.options:a instanceof ht?E.util.objectValues(a.enum):a instanceof gt?oa(a._def.innerType):a instanceof it?[void 0]:a instanceof lt?[null]:a instanceof Xe?[void 0,...oa(a.unwrap())]:a instanceof ba?[null,...oa(a.unwrap())]:a instanceof es||a instanceof yt?oa(a.unwrap()):a instanceof ft?oa(a._def.innerType):[];class sn extends X{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==E.ZodParsedType.object)return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.object,received:t.parsedType}),f.INVALID;const n=this.discriminator,s=t.data[n],r=this.optionsMap.get(s);return r?t.common.async?r._parseAsync({data:t.data,path:t.path,parent:t}):r._parseSync({data:t.data,path:t.path,parent:t}):((0,f.addIssueToContext)(t,{code:D.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 s=new Map;for(const r of t){const i=oa(r.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(s.has(l))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(l)}`);s.set(l,r)}}return new sn({typeName:K.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:s,...Y(n)})}}g.ZodDiscriminatedUnion=sn;function Xn(a,e){const t=(0,E.getParsedType)(a),n=(0,E.getParsedType)(e);if(a===e)return{valid:!0,data:a};if(t===E.ZodParsedType.object&&n===E.ZodParsedType.object){const s=E.util.objectKeys(e),r=E.util.objectKeys(a).filter(l=>s.indexOf(l)!==-1),i={...a,...e};for(const l of r){const c=Xn(a[l],e[l]);if(!c.valid)return{valid:!1};i[l]=c.data}return{valid:!0,data:i}}else if(t===E.ZodParsedType.array&&n===E.ZodParsedType.array){if(a.length!==e.length)return{valid:!1};const s=[];for(let r=0;r<a.length;r++){const i=a[r],l=e[r],c=Xn(i,l);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return t===E.ZodParsedType.date&&n===E.ZodParsedType.date&&+a==+e?{valid:!0,data:a}:{valid:!1}}class ct extends X{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=(r,i)=>{if((0,f.isAborted)(r)||(0,f.isAborted)(i))return f.INVALID;const l=Xn(r.value,i.value);return l.valid?(((0,f.isDirty)(r)||(0,f.isDirty)(i))&&t.dirty(),{status:t.value,value:l.data}):((0,f.addIssueToContext)(n,{code:D.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(([r,i])=>s(r,i)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}g.ZodIntersection=ct,ct.create=(a,e,t)=>new ct({left:a,right:e,typeName:K.ZodIntersection,...Y(t)});class Qe extends X{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==E.ZodParsedType.array)return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.array,received:n.parsedType}),f.INVALID;if(n.data.length<this._def.items.length)return(0,f.addIssueToContext)(n,{code:D.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:D.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const r=[...n.data].map((i,l)=>{const c=this._def.items[l]||this._def.rest;return c?c._parse(new Je(n,i,n.path,l)):null}).filter(i=>!!i);return n.common.async?Promise.all(r).then(i=>f.ParseStatus.mergeArray(t,i)):f.ParseStatus.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new Qe({...this._def,rest:e})}}g.ZodTuple=Qe,Qe.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Qe({items:a,typeName:K.ZodTuple,rest:null,...Y(e)})};class ut extends X{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!==E.ZodParsedType.object)return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.object,received:n.parsedType}),f.INVALID;const s=[],r=this._def.keyType,i=this._def.valueType;for(const l in n.data)s.push({key:r._parse(new Je(n,l,n.path,l)),value:i._parse(new Je(n,n.data[l],n.path,l)),alwaysSet:l in n.data});return n.common.async?f.ParseStatus.mergeObjectAsync(t,s):f.ParseStatus.mergeObjectSync(t,s)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof X?new ut({keyType:e,valueType:t,typeName:K.ZodRecord,...Y(n)}):new ut({keyType:qe.create(),valueType:e,typeName:K.ZodRecord,...Y(t)})}}g.ZodRecord=ut;class rn extends X{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!==E.ZodParsedType.map)return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.map,received:n.parsedType}),f.INVALID;const s=this._def.keyType,r=this._def.valueType,i=[...n.data.entries()].map(([l,c],d)=>({key:s._parse(new Je(n,l,n.path,[d,"key"])),value:r._parse(new Je(n,c,n.path,[d,"value"]))}));if(n.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const c of i){const d=await c.key,u=await c.value;if(d.status==="aborted"||u.status==="aborted")return f.INVALID;(d.status==="dirty"||u.status==="dirty")&&t.dirty(),l.set(d.value,u.value)}return{status:t.value,value:l}})}else{const l=new Map;for(const c of i){const d=c.key,u=c.value;if(d.status==="aborted"||u.status==="aborted")return f.INVALID;(d.status==="dirty"||u.status==="dirty")&&t.dirty(),l.set(d.value,u.value)}return{status:t.value,value:l}}}}g.ZodMap=rn,rn.create=(a,e,t)=>new rn({valueType:e,keyType:a,typeName:K.ZodMap,...Y(t)});class Pa extends X{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==E.ZodParsedType.set)return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.set,received:n.parsedType}),f.INVALID;const s=this._def;s.minSize!==null&&n.data.size<s.minSize.value&&((0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),t.dirty()),s.maxSize!==null&&n.data.size>s.maxSize.value&&((0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),t.dirty());const r=this._def.valueType;function i(c){const d=new Set;for(const u of c){if(u.status==="aborted")return f.INVALID;u.status==="dirty"&&t.dirty(),d.add(u.value)}return{status:t.value,value:d}}const l=[...n.data.values()].map((c,d)=>r._parse(new Je(n,c,n.path,d)));return n.common.async?Promise.all(l).then(c=>i(c)):i(l)}min(e,t){return new Pa({...this._def,minSize:{value:e,message:V.errorUtil.toString(t)}})}max(e,t){return new Pa({...this._def,maxSize:{value:e,message:V.errorUtil.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}g.ZodSet=Pa,Pa.create=(a,e)=>new Pa({valueType:a,minSize:null,maxSize:null,typeName:K.ZodSet,...Y(e)});class Za extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==E.ZodParsedType.function)return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.function,received:t.parsedType}),f.INVALID;function n(l,c){return(0,f.makeIssue)({data:l,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,an.getErrorMap)(),an.defaultErrorMap].filter(d=>!!d),issueData:{code:D.ZodIssueCode.invalid_arguments,argumentsError:c}})}function s(l,c){return(0,f.makeIssue)({data:l,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,an.getErrorMap)(),an.defaultErrorMap].filter(d=>!!d),issueData:{code:D.ZodIssueCode.invalid_return_type,returnTypeError:c}})}const r={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof qa){const l=this;return(0,f.OK)(async function(...c){const d=new D.ZodError([]),u=await l._def.args.parseAsync(c,r).catch(h=>{throw d.addIssue(n(c,h)),d}),p=await Reflect.apply(i,this,u);return await l._def.returns._def.type.parseAsync(p,r).catch(h=>{throw d.addIssue(s(p,h)),d})})}else{const l=this;return(0,f.OK)(function(...c){const d=l._def.args.safeParse(c,r);if(!d.success)throw new D.ZodError([n(c,d.error)]);const u=Reflect.apply(i,this,d.data),p=l._def.returns.safeParse(u,r);if(!p.success)throw new D.ZodError([s(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Za({...this._def,args:Qe.create(e).rest(Aa.create())})}returns(e){return new Za({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Za({args:e||Qe.create([]).rest(Aa.create()),returns:t||Aa.create(),typeName:K.ZodFunction,...Y(n)})}}g.ZodFunction=Za;class pt extends X{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}g.ZodLazy=pt,pt.create=(a,e)=>new pt({getter:a,typeName:K.ZodLazy,...Y(e)});class mt extends X{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{received:t.data,code:D.ZodIssueCode.invalid_literal,expected:this._def.value}),f.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}}g.ZodLiteral=mt,mt.create=(a,e)=>new mt({value:a,typeName:K.ZodLiteral,...Y(e)});function Zr(a,e){return new fa({values:a,typeName:K.ZodEnum,...Y(e)})}class fa extends X{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,f.addIssueToContext)(t,{expected:E.util.joinValues(n),received:t.parsedType,code:D.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:D.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 fa.create(e,{...this._def,...t})}exclude(e,t=this._def){return fa.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}g.ZodEnum=fa,fa.create=Zr;class ht extends X{_parse(e){const t=E.util.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==E.ZodParsedType.string&&n.parsedType!==E.ZodParsedType.number){const s=E.util.objectValues(t);return(0,f.addIssueToContext)(n,{expected:E.util.joinValues(s),received:n.parsedType,code:D.ZodIssueCode.invalid_type}),f.INVALID}if(this._cache||(this._cache=new Set(E.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const s=E.util.objectValues(t);return(0,f.addIssueToContext)(n,{received:n.data,code:D.ZodIssueCode.invalid_enum_value,options:s}),f.INVALID}return(0,f.OK)(e.data)}get enum(){return this._def.values}}g.ZodNativeEnum=ht,ht.create=(a,e)=>new ht({values:a,typeName:K.ZodNativeEnum,...Y(e)});class qa extends X{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==E.ZodParsedType.promise&&t.common.async===!1)return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.promise,received:t.parsedType}),f.INVALID;const n=t.parsedType===E.ZodParsedType.promise?t.data:Promise.resolve(t.data);return(0,f.OK)(n.then(s=>this._def.type.parseAsync(s,{path:t.path,errorMap:t.common.contextualErrorMap})))}}g.ZodPromise=qa,qa.create=(a,e)=>new qa({type:a,typeName:K.ZodPromise,...Y(e)});class Ge extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===K.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=this._def.effect||null,r={addIssue:i=>{(0,f.addIssueToContext)(n,i),i.fatal?t.abort():t.dirty()},get path(){return n.path}};if(r.addIssue=r.addIssue.bind(r),s.type==="preprocess"){const i=s.transform(n.data,r);if(n.common.async)return Promise.resolve(i).then(async l=>{if(t.value==="aborted")return f.INVALID;const c=await this._def.schema._parseAsync({data:l,path:n.path,parent:n});return c.status==="aborted"?f.INVALID:c.status==="dirty"||t.value==="dirty"?(0,f.DIRTY)(c.value):c});{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(s.type==="refinement"){const i=l=>{const c=s.refinement(l,r);if(n.common.async)return Promise.resolve(c);if(c 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(s.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=s.transform(i.value,r);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(s.transform(i.value,r)).then(l=>({status:t.value,value:l})):f.INVALID);E.util.assertNever(s)}}g.ZodEffects=Ge,g.ZodTransformer=Ge,Ge.create=(a,e,t)=>new Ge({schema:a,typeName:K.ZodEffects,effect:e,...Y(t)}),Ge.createWithPreprocess=(a,e,t)=>new Ge({schema:e,effect:{type:"preprocess",transform:a},typeName:K.ZodEffects,...Y(t)});class Xe extends X{_parse(e){return this._getType(e)===E.ZodParsedType.undefined?(0,f.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}g.ZodOptional=Xe,Xe.create=(a,e)=>new Xe({innerType:a,typeName:K.ZodOptional,...Y(e)});class ba extends X{_parse(e){return this._getType(e)===E.ZodParsedType.null?(0,f.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}g.ZodNullable=ba,ba.create=(a,e)=>new ba({innerType:a,typeName:K.ZodNullable,...Y(e)});class gt extends X{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===E.ZodParsedType.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}g.ZodDefault=gt,gt.create=(a,e)=>new gt({innerType:a,typeName:K.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Y(e)});class ft extends X{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return(0,f.isAsync)(s)?s.then(r=>({status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new D.ZodError(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new D.ZodError(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}g.ZodCatch=ft,ft.create=(a,e)=>new ft({innerType:a,typeName:K.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Y(e)});class on extends X{_parse(e){if(this._getType(e)!==E.ZodParsedType.nan){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.nan,received:n.parsedType}),f.INVALID}return{status:"valid",value:e.data}}}g.ZodNaN=on,on.create=a=>new on({typeName:K.ZodNaN,...Y(a)}),g.BRAND=Symbol("zod_brand");class es extends X{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}g.ZodBranded=es;class bt extends X{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const r=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return r.status==="aborted"?f.INVALID:r.status==="dirty"?(t.dirty(),(0,f.DIRTY)(r.value)):this._def.out._parseAsync({data:r.value,path:n.path,parent:n})})();{const s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?f.INVALID:s.status==="dirty"?(t.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,t){return new bt({in:e,out:t,typeName:K.ZodPipeline})}}g.ZodPipeline=bt;class yt extends X{_parse(e){const t=this._def.innerType._parse(e),n=s=>((0,f.isValid)(s)&&(s.value=Object.freeze(s.value)),s);return(0,f.isAsync)(t)?t.then(s=>n(s)):n(t)}unwrap(){return this._def.innerType}}g.ZodReadonly=yt,yt.create=(a,e)=>new yt({innerType:a,typeName:K.ZodReadonly,...Y(e)});function qr(a,e){const t=typeof a=="function"?a(e):typeof a=="string"?{message:a}:a;return typeof t=="string"?{message:t}:t}function Wr(a,e={},t){return a?ja.create().superRefine((n,s)=>{const r=a(n);if(r instanceof Promise)return r.then(i=>{if(!i){const l=qr(e,n),c=l.fatal??t??!0;s.addIssue({code:"custom",...l,fatal:c})}});if(!r){const i=qr(e,n),l=i.fatal??t??!0;s.addIssue({code:"custom",...i,fatal:l})}}):ja.create()}g.late={object:ye.lazycreate};var K;(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"})(K||(g.ZodFirstPartyTypeKind=K={}));const id=(a,e={message:`Input not instance of ${a.name}`})=>Wr(t=>t instanceof a,e);g.instanceof=id;const Gr=qe.create;g.string=Gr;const Kr=ha.create;g.number=Kr;const ld=on.create;g.nan=ld;const dd=ga.create;g.bigint=dd;const $r=ot.create;g.boolean=$r;const cd=Ia.create;g.date=cd;const ud=tn.create;g.symbol=ud;const pd=it.create;g.undefined=pd;const md=lt.create;g.null=md;const hd=ja.create;g.any=hd;const gd=Aa.create;g.unknown=gd;const fd=ra.create;g.never=fd;const bd=nn.create;g.void=bd;const yd=We.create;g.array=yd;const vd=ye.create;g.object=vd;const _d=ye.strictCreate;g.strictObject=_d;const Cd=dt.create;g.union=Cd;const Nd=sn.create;g.discriminatedUnion=Nd;const Sd=ct.create;g.intersection=Sd;const kd=Qe.create;g.tuple=kd;const wd=ut.create;g.record=wd;const Td=rn.create;g.map=Td;const Id=Pa.create;g.set=Id;const Ad=Za.create;g.function=Ad;const Pd=pt.create;g.lazy=Pd;const xd=mt.create;g.literal=xd;const Dd=fa.create;g.enum=Dd;const Ed=ht.create;g.nativeEnum=Ed;const Ld=qa.create;g.promise=Ld;const Hr=Ge.create;g.effect=Hr,g.transformer=Hr;const Fd=Xe.create;g.optional=Fd;const Od=ba.create;g.nullable=Od;const Md=Ge.createWithPreprocess;g.preprocess=Md;const Bd=bt.create;g.pipeline=Bd;const Ud=()=>Gr().optional();g.ostring=Ud;const zd=()=>Kr().optional();g.onumber=zd;const jd=()=>$r().optional();g.oboolean=jd,g.coerce={string:a=>qe.create({...a,coerce:!0}),number:a=>ha.create({...a,coerce:!0}),boolean:a=>ot.create({...a,coerce:!0}),bigint:a=>ga.create({...a,coerce:!0}),date:a=>Ia.create({...a,coerce:!0})},g.NEVER=f.INVALID,function(a){var e=oe&&oe.__createBinding||(Object.create?function(n,s,r,i){i===void 0&&(i=r);var l=Object.getOwnPropertyDescriptor(s,r);(!l||("get"in l?!s.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return s[r]}}),Object.defineProperty(n,i,l)}:function(n,s,r,i){i===void 0&&(i=r),n[i]=s[r]}),t=oe&&oe.__exportStar||function(n,s){for(var r in n)r!=="default"&&!Object.prototype.hasOwnProperty.call(s,r)&&e(s,n,r)};Object.defineProperty(a,"__esModule",{value:!0}),t(ma,a),t(Jn,a),t(Mr,a),t(st,a),t(g,a),t(Ye,a)}(Yn),function(a){var e=oe&&oe.__createBinding||(Object.create?function(i,l,c,d){d===void 0&&(d=c);var u=Object.getOwnPropertyDescriptor(l,c);(!u||("get"in u?!l.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return l[c]}}),Object.defineProperty(i,d,u)}:function(i,l,c,d){d===void 0&&(d=c),i[d]=l[c]}),t=oe&&oe.__setModuleDefault||(Object.create?function(i,l){Object.defineProperty(i,"default",{enumerable:!0,value:l})}:function(i,l){i.default=l}),n=oe&&oe.__importStar||function(i){if(i&&i.__esModule)return i;var l={};if(i!=null)for(var c in i)c!=="default"&&Object.prototype.hasOwnProperty.call(i,c)&&e(l,i,c);return t(l,i),l},s=oe&&oe.__exportStar||function(i,l){for(var c in i)c!=="default"&&!Object.prototype.hasOwnProperty.call(l,c)&&e(l,i,c)};Object.defineProperty(a,"__esModule",{value:!0}),a.z=void 0;const r=n(Yn);a.z=r,s(Yn,a),a.default=r}(Er),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=Er,t=Rn;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)}(nt),Object.defineProperty(tt,"__esModule",{value:!0}),tt.plans=void 0;const ve=Qt,je=nt,Rr={table_rows:0,bot_count:ve.SMALL_UNLIMITED,collaborator_count:ve.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};tt.plans={community:{id:"community",name:"Plan - Free",description:"Free plan for trying things out",tierIndex:0,prices:{month:{amount:ve.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:{table_rows:1e3,bot_count:3,collaborator_count:3,file_storage:100*ve.MB,vector_db_storage:100*ve.MB,saved_versions:3,indexed_file_count:1e3,incoming_messages_events:100*ve.MESSAGES_PER_CONVERSATION,ai_spend:100*ve.AI_SPEND_PER_CONVERSATION,conversation_sessions:100},providerProductId:je.UNKNOWN_STRIPE_ID},plus:{id:"plus",name:"Plan - Plus",description:"For growing businesses",tierIndex:1,prices:{month:{amount:189,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID},year:{amount:150*ve.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:{table_rows:1e5,bot_count:ve.SMALL_UNLIMITED,collaborator_count:3,file_storage:10*ve.GB,vector_db_storage:1*ve.GB,saved_versions:50,indexed_file_count:2e3,incoming_messages_events:250*ve.MESSAGES_PER_CONVERSATION,ai_spend:250*ve.AI_SPEND_PER_CONVERSATION,conversation_sessions:250},providerProductId:je.UNKNOWN_STRIPE_ID},team:{id:"team",name:"Plan - Team",description:"For small teams",tierIndex:2,prices:{month:{amount:939,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID},year:{amount:750*ve.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:{table_rows:5e5,bot_count:ve.SMALL_UNLIMITED,collaborator_count:ve.SMALL_UNLIMITED,file_storage:50*ve.GB,vector_db_storage:5*ve.GB,saved_versions:100,indexed_file_count:ve.BIG_UNLIMITED,incoming_messages_events:1500*ve.MESSAGES_PER_CONVERSATION,ai_spend:1500*ve.AI_SPEND_PER_CONVERSATION,conversation_sessions:1500},providerProductId:je.UNKNOWN_STRIPE_ID},enterprise:{id:"enterprise",name:"Plan - Enterprise",description:"Enterprise license subscription",tierIndex:3,prices:{month:{amount:ve.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:Rr,providerProductId:je.UNKNOWN_STRIPE_ID},managed:{id:"managed",name:"Plan - Managed",description:"Managed license subscription",tierIndex:4,prices:{month:{amount:ve.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:Rr,providerProductId:je.UNKNOWN_STRIPE_ID}};var vt={};Object.defineProperty(vt,"__esModule",{value:!0}),vt.addons=void 0;const Wa=Qt,Ga=nt,Yr=(a,e=["community","plus","team","enterprise","managed"])=>e.map(t=>({[t]:{amount:a,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID}})).reduce((t,n)=>({...t,...n}),{});vt.addons={conversation_sessions_addon:{id:"conversation_sessions_addon",name:"Add-on - Conversation Sessions",description:"Adds conversations sessions for the month",prices:{plus:{amount:65,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID},team:{amount:50,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID},enterprise:{amount:Wa.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID}},increments:{conversation_sessions:100,ai_spend:100*Wa.AI_SPEND_PER_CONVERSATION,incoming_messages_events:100*Wa.MESSAGES_PER_CONVERSATION},providerProductId:Ga.UNKNOWN_STRIPE_ID,autoRechargeable:!0,prorationDisabled:!0},storage_addon:{id:"storage_addon",name:"Add-on - Storage",description:"Adds table rows, vector db space and files",prices:{...Yr(40,["plus","team"]),...Yr(Wa.FREE_PRICE,["enterprise","managed"])},increments:{table_rows:1e5,vector_db_storage:1*Wa.GB,file_storage:10*Wa.GB},providerProductId:Ga.UNKNOWN_STRIPE_ID}};var _t={};Object.defineProperty(_t,"__esModule",{value:!0}),_t.meters=void 0;const Ka=nt;_t.meters={ai_spend_credit_grant:{id:"ai_spend_credit_grant",name:"AI Spend - Credit grant",description:"Pre-purchased credits applied toward AI usage",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:Ka.UNKNOWN_STRIPE_ID}},meterType:"creditGrant",providerMeterId:Ka.UNKNOWN_STRIPE_ID,providerProductId:Ka.UNKNOWN_STRIPE_ID},ai_spend_pay_as_you_go:{id:"ai_spend_pay_as_you_go",name:"AI Spend - Pay as you go",description:"Usage-based charges for AI spend, billed monthly",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:Ka.UNKNOWN_STRIPE_ID}},meterType:"payAsYouGo",providerMeterId:Ka.UNKNOWN_STRIPE_ID,providerProductId:Ka.UNKNOWN_STRIPE_ID}};var Jr={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingDefinitions=a.billingConfig=void 0;const e=tt,t=vt,n=_t;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})(Jr),function(a){var e=oe&&oe.__createBinding||(Object.create?function(n,s,r,i){i===void 0&&(i=r);var l=Object.getOwnPropertyDescriptor(s,r);(!l||("get"in l?!s.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return s[r]}}),Object.defineProperty(n,i,l)}:function(n,s,r,i){i===void 0&&(i=r),n[i]=s[r]}),t=oe&&oe.__exportStar||function(n,s){for(var r in n)r!=="default"&&!Object.prototype.hasOwnProperty.call(s,r)&&e(s,n,r)};Object.defineProperty(a,"__esModule",{value:!0}),t(tt,a),t(vt,a),t(_t,a),t(nt,a),t(Jr,a)}(Dr),function(a){var e=oe&&oe.__createBinding||(Object.create?function(n,s,r,i){i===void 0&&(i=r);var l=Object.getOwnPropertyDescriptor(s,r);(!l||("get"in l?!s.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return s[r]}}),Object.defineProperty(n,i,l)}:function(n,s,r,i){i===void 0&&(i=r),n[i]=s[r]}),t=oe&&oe.__exportStar||function(n,s){for(var r in n)r!=="default"&&!Object.prototype.hasOwnProperty.call(s,r)&&e(s,n,r)};Object.defineProperty(a,"__esModule",{value:!0}),t(Rn,a),t(Dr,a),t(Qt,a)}(xr),function(a){var e=oe&&oe.__createBinding||(Object.create?function(n,s,r,i){i===void 0&&(i=r);var l=Object.getOwnPropertyDescriptor(s,r);(!l||("get"in l?!s.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return s[r]}}),Object.defineProperty(n,i,l)}:function(n,s,r,i){i===void 0&&(i=r),n[i]=s[r]}),t=oe&&oe.__exportStar||function(n,s){for(var r in n)r!=="default"&&!Object.prototype.hasOwnProperty.call(s,r)&&e(s,n,r)};Object.defineProperty(a,"__esModule",{value:!0}),t(Ht,a),t(Rt,a),t(za,a),t(Pr,a),t(Yt,a),t(ze,a),t(Jt,a),t(xr,a)}(Ar);const ln=1e9,Qr={incoming_messages_events:a=>`${de(a)} incoming messages & events`,conversation_sessions:a=>`${de(a)} conversation sessions`,table_rows:a=>`${de(a)} table rows`,vector_db_storage:a=>`${Na(a)} vector database storage`,file_storage:a=>`${Na(a)} file storage`,collaborator_count:a=>a===1?"1 collaborator":`${de(a)} collaborators`,bot_count:a=>a===1?"1 bot":`${de(a)} bots`,indexed_file_count:a=>`${de(a)} indexed files for RAG`,ai_spend:a=>`${ie(a/ln,"usd",0)} AI credit included`,always_alive:a=>a===1?"1 always-alive bot":`${de(a)} always-alive bots`};function Vd(a,e,t){const n=(t==null?void 0:t[a])??Qr[a];return n?n(e):`${de(e)} ${a.replaceAll("_"," ")}`}const Xr=[{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 $a(a,e){return e==="bytes"?Na(a):e==="nano-usd"?`$${(a/ln).toFixed(2)}`:de(a)}function eo(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 dn(a){return a>=90?"critical":a>=75?"warning":"normal"}const Zd=Ar.NON_RESETTING_BILLING_FEATURE_IDS;function qd(a){return!Zd.includes(a)}function Ct(a){return a?Xr.flatMap(({key:e,label:t,unit:n})=>{const s=a[e];if(!s||s.quota<=0)return[];const r=s.usage??0,i=Math.max(0,Math.min(100,r/s.quota*100));return[{key:e,label:t,unit:n,used:r,quota:s.quota,remaining:Math.max(0,s.quota-r),pct:i,resets:qd(e)}]}).sort((e,t)=>t.pct-e.pct):[]}const ao="outgrow-free",Wd=.75,Gd=5;function Kd(a,e){return a.prices[e]??(e==="month"?a.prices.year:a.prices.month)??null}function $d(a,e){var s,r;const t=(s=a.prices.month)==null?void 0:s.amount;if(e==="month")return t??null;const n=((r=a.prices.year)==null?void 0:r.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}const Hd=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",interval:s="year",planFeatures:r={},featureDescriptions:i,period:l})=>{var J,$;const{isOutdatedBilling:c,analytics:d,scope:u}=Q(),{t:p}=ge(),{data:m}=$e(),{data:h}=ya(),{data:b}=Ze({enabled:!c}),{data:N}=va({period:l,enabled:!c}),C=a!==void 0,[y,v]=P.useState(!1),I=m==null?void 0:m.find(j=>j.id===(b==null?void 0:b.plan.current.planId)),A=b?I?be(I)==="community":!0:!1,w=P.useMemo(()=>Ct(N).find(j=>j.key==="conversation_sessions"),[N]),T=!C&&!c&&A&&!!w&&w.pct/100>=Wd&&!y&&!Tr(ao,u,"modal"),x=C?!!a:T;P.useEffect(()=>{x&&d.capture(Ne.PLAN_PICKER_VIEWED,{source:C?"outgrow_free":"outgrow_free_auto",interval:s})},[x,C,d]);const _=()=>{C||(Ir(ao,u,"modal"),v(!0)),e==null||e(!1)},L=P.useMemo(()=>m?m.filter(j=>{const ne=be(j);return ne!=="community"&&ne!=="enterprise"&&ne!=="managed"}).sort((j,ne)=>Sa.indexOf(be(j))-Sa.indexOf(be(ne))):[],[m]),z=(($=(J=m==null?void 0:m.find(j=>be(j)==="enterprise"))==null?void 0:J.metadata)==null?void 0:$.contact_url)??Fn;if(c||!x)return null;const O=(w==null?void 0:w.quota)??(I==null?void 0:I.features.conversation_sessions)??100,H=(w==null?void 0:w.used)??0,F=w&&w.pct>0?Math.min(100,Math.max(5,Math.round(w.pct))):0;return o.jsx(Ue,{open:x,onOpenChange:_,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(wt,{i18nKey:"outgrowLede",values:{quota:de(O)},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":F,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("span",{className:"bpb-outgrow__usage-fill",style:{width:`${F}%`}})}),o.jsx("span",{className:"bpb-outgrow__usage-text",children:o.jsx(wt,{i18nKey:"outgrowUsageText",values:{used:de(H),quota:de(O)},components:{bold:o.jsx("strong",{})}})})]}),o.jsx("div",{className:"bpb-outgrow__grid",children:L.map((j,ne)=>{const ae=be(j),q=Kd(j,s),S=$d(j,s),ue=ae===n||j.id===n,pe=j.features.conversation_sessions,_e=Bt(h,j,s),M=ne>0?L[ne-1]:void 0,W=(r[ae]??Ut[ae]).slice(0,Gd);return o.jsxs("div",{className:G("bpb-plan-card",ue&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":j.id,children:[o.jsxs("div",{className:"bpb-plan-card__header",children:[o.jsxs("h3",{className:"bpb-plan-card__name",children:[he(j.name),ue&&o.jsx(zt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("div",{className:"bpb-plan-card__price",children:S!==null&&q?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-plan-card__currency",children:Qa(q.currency)}),o.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(S)?S:S.toFixed(2).replace(/\.00$/,"")}),o.jsx("span",{className:"bpb-plan-card__per",children:p("perMonth")})]}):o.jsxs("span",{className:"bpb-plan-card__amount",children:[Qa((q==null?void 0:q.currency)??"usd"),"0"]})})]}),pe!==void 0&&o.jsxs("div",{className:"bpb-outgrow__allowance",children:[o.jsxs("p",{className:"bpb-outgrow__allowance-value",children:[o.jsxs("strong",{children:[de(pe)," ",p("conversationsUnit")]})," ",p("perMonth")]}),o.jsx("p",{className:"bpb-outgrow__allowance-pack",children:_e?p("outgrowThenPer",{symbol:Qa(_e.currency),amount:_e.amount,packSize:de(_e.packSize)}):p("outgrowNoTopup")})]}),o.jsxs(Te,{variant:ue?"accent":"outline",block:!0,onClick:()=>{d.capture(Ne.PLAN_UPGRADE_INITIATED,{plan_name:he(j.name),interval:s,source:"outgrow_free"}),t(j.id,s),_()},children:[p("outgrowUpgradeTo",{planName:he(j.name)}),ue&&o.jsx(Wt,{size:15})]}),o.jsxs("ul",{className:"bpb-plan-card__features",children:[M&&o.jsx("li",{className:"bpb-outgrow__features-lead",children:p("outgrowEverythingIn",{planName:he(M.name)})}),W.map(Z=>{const te=Gt(Z),Ae=On[Z],se=Ae!==void 0?p(Ae.label):Z,Ce=(i==null?void 0:i[Z])??(Ae!==void 0?p(Ae.desc):void 0);return o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(te,{size:13})}),Ce?o.jsx(at,{label:se,children:Ce}):o.jsx("span",{children:se})]},Z)})]})]},j.id)})}),o.jsxs("footer",{className:"bpb-outgrow__footer",children:[o.jsxs("span",{children:[p("outgrowNeedCustom")," ",o.jsx("a",{href:z,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(et,{size:14})]})]})]})})},ia=(a,e)=>e==="bytes"?Na(a):e==="nano-usd"?`$${(a/ln).toFixed(2)}`:de(a),Rd=(a,e)=>{const t=new Date;return Array.from({length:a},(n,s)=>{const r=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()-s,1));return{value:r.toISOString(),label:r.toLocaleDateString(e,{month:"long",year:"numeric",timeZone:"UTC"})}})},Yd=({period:a})=>{const{data:e,isLoading:t,isError:n}=xs("ai_spend",{period:a}),{t:s}=ge();if(n)return null;if(t)return o.jsx(le,{height:96});if(!e||e.length===0)return o.jsx("p",{className:"bpb-usage__group-hint",children:s("dashboardNoBotSpend")});const r=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:ia(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/r*100)):0}%`}})})]},i.botId))})},as=({entry:a,metric:e,planAllowance:t,planName:n,stacked:s})=>{const{t:r}=ge(),i=a.usage??0,l=a.quota>0?Math.max(0,Math.min(100,Math.round(i/a.quota*100))):0,c=l>0?Math.max(5,l):0,d=l>=90?"critical":l>=75?"warning":"normal",u=t??a.quota,p=Math.max(0,a.quota-u),m=p>0?n?r("dashboardFromPlanWithAddons",{amount:ia(u,e.unit),planName:n,addonAmount:ia(p,e.unit)}):r("dashboardFromPlanGenericWithAddons",{amount:ia(u,e.unit),addonAmount:ia(p,e.unit)}):n?r("dashboardFromPlan",{amount:ia(a.quota,e.unit),planName:n}):r("dashboardFromPlanGeneric",{amount:ia(a.quota,e.unit)});return o.jsxs("div",{className:"bpb-usage-row",children:[o.jsxs("div",{className:G("bpb-usage-row__head",s&&"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:ia(i,e.unit)}),o.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",ia(a.quota,e.unit)]})]})]}),o.jsxs("span",{className:"bpb-usage-tip",tabIndex:0,role:"note","aria-label":m,onMouseMove:h=>{const b=h.currentTarget.getBoundingClientRect(),N=(h.clientX-b.left)/b.width*100;h.currentTarget.style.setProperty("--bpb-tip-x",`${N}%`)},children:[o.jsx("div",{className:"bpb-usage-bar",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("div",{className:G("bpb-usage-bar__fill",`bpb-usage-bar__fill--${d}`),style:{width:`${c}%`}})}),o.jsx("span",{className:"bpb-usage-tip__bubble",role:"tooltip",children:m})]})]})},Jd=({period:a,showPeriodSelector:e=!0,periodMonths:t=12,className:n,onIncreaseLimits:s})=>{var H;const{isOutdatedBilling:r,locale:i}=Q(),{t:l}=ge(),c=P.useMemo(()=>Rd(t,i),[t,i]),[d,u]=P.useState(a??((H=c[0])==null?void 0:H.value)??""),p=Ds(),m=Math.max(0,c.findIndex(F=>F.value===d)),h=F=>{const J=c[m+F];J&&u(J.value)},{data:b,isLoading:N,isError:C}=va({period:d,enabled:!r}),{data:y}=Ze({enabled:!r}),{data:v}=$e(),I=v==null?void 0:v.find(F=>F.id===(y==null?void 0:y.plan.current.planId)),A=I?he(I.name):void 0,w=I?be(I):"community",T=w==="enterprise"||w==="managed",x=F=>I==null?void 0:I.features[F];if(r)return o.jsx("div",{className:G("bpb-usage bpb-scope",n),children:o.jsx(wa,{})});if(N)return o.jsxs("div",{className:G("bpb-usage bpb-scope",n),"aria-busy":"true",children:[o.jsx(le,{height:80}),o.jsx(le,{height:140})]});if(C||!b)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 _=b.conversation_sessions,L=b.ai_spend,O=[{key:"table_rows",label:l("dashboardTableRows"),unit:"count"},{key:"vector_db_storage",label:l("dashboardVectorDb"),unit:"bytes"},{key:"file_storage",label:l("dashboardFileStorage"),unit:"bytes"}].filter(F=>b[F.key]);return o.jsxs("div",{className:G("bpb-usage bpb-scope",n),children:[T&&o.jsx("p",{className:"bpb-usage__enterprise-note",children:l("dashboardEnterpriseUsageNotice")}),(e&&c.length>1||s)&&o.jsxs("div",{className:"bpb-usage__header",children:[e&&c.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:()=>h(1),disabled:m>=c.length-1,children:o.jsx(zn,{size:15})}),o.jsxs("span",{className:"bpb-usage__period-field",children:[o.jsx(fr,{size:15,className:"bpb-usage__period-icon"}),o.jsx("select",{className:"bpb-usage__period-select","aria-label":l("dashboardBillingPeriod"),value:d,onChange:F=>u(F.target.value),children:c.map(F=>o.jsx("option",{value:F.value,children:F.label},F.value))}),o.jsx(qt,{size:14,className:"bpb-usage__period-chevron"})]}),o.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardNextMonth"),onClick:()=>h(-1),disabled:m<=0,children:o.jsx(ka,{size:15})})]})]}),s&&o.jsxs(Te,{onClick:s,children:[o.jsx(jn,{size:15}),l("dashboardIncreaseLimits")]})]}),_&&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(as,{entry:_,metric:{key:"conversation_sessions",label:l("dashboardConversationsMetric"),unit:"count"},planAllowance:x("conversation_sessions"),planName:A,stacked:!0})})]}),O.length>0&&o.jsxs("section",{className:"bpb-usage__group",children:[o.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardStorageTitle")}),o.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardStorageHint")}),o.jsx("div",{className:"bpb-usage__card",children:O.map(F=>o.jsx(as,{entry:b[F.key],metric:F,planAllowance:x(F.key),planName:A},F.key))})]}),L&&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(as,{entry:L,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(Yd,{period:d})]})]})]})},to="usage-banner",Qd=({position:a="inline",threshold:e=.9,onUpgrade:t,dismissible:n=!0,ctaLabel:s,period:r,className:i})=>{const{isOutdatedBilling:l,analytics:c,scope:d}=Q(),{t:u}=ge(),{data:p}=va({period:r,enabled:!l}),[m,h]=P.useState({}),[b,N]=P.useState(!1),[C,y]=P.useState(null),v=p?Object.entries(p).map(([z,O])=>({key:z,pct:O.quota>0?(O.usage??0)/O.quota:0})).filter(z=>z.pct>=e).sort((z,O)=>O.pct-z.pct)[0]:void 0,I=!!v&&(m[v.key]||Tr(to,d,v.key));if(l||!v||I)return null;const w={conversation_sessions:u("metricConversations"),table_rows:u("metricTableRows"),vector_db_storage:u("metricVectorDb"),file_storage:u("metricFileStorage"),ai_spend:u("metricAiSpend")}[v.key]??v.key.replace(/_/g," "),T=Math.min(100,Math.round(v.pct*100)),x=v.pct>=1,_=()=>{c.capture(Ne.UPGRADE_CTA_CLICKED,{source:"usage_banner",metric:v.key,usage_pct:Math.round(v.pct*100)}),t?t():N(!0)},L=x?"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--${L}`,i),role:"alert","aria-live":"polite",children:[o.jsx(gr,{size:18,className:"bpb-usage-banner__icon"}),o.jsx("p",{className:"bpb-usage-banner__text",children:x?u("usageBannerLimitReached",{label:w}):u("usageBannerNearLimit",{pct:T,label:w})}),o.jsxs("div",{className:"bpb-usage-banner__actions",children:[o.jsx(Te,{variant:"primary",size:"sm",onClick:_,children:s??u("usageBannerDefaultCta")}),n&&o.jsx("button",{type:"button",className:"bpb-usage-banner__dismiss","aria-label":u("usageBannerDismiss"),onClick:()=>{Ir(to,d,v.key),h(z=>({...z,[v.key]:!0}))},children:o.jsx(Zt,{size:16})})]})]}),!t&&o.jsxs(o.Fragment,{children:[o.jsx(yr,{open:b,onOpenChange:N,onSelectPlan:(z,O)=>{N(!1),y({planId:z,interval:O})}}),C&&o.jsx(Nr,{open:!!C,onOpenChange:z=>!z&&y(null),planId:C.planId,interval:C.interval,onBack:()=>{y(null),N(!0)},onSuccess:()=>y(null)})]})]})},Xd=({Icon:a,title:e,description:t,onClick:n,className:s})=>o.jsxs("button",{type:"button",className:G("bpb-action-card bpb-scope",s),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})]}),ts=({children:a})=>o.jsx("span",{className:"bpb-summary-card__icon","aria-hidden":"true",children:a}),no=({isAddons:a,className:e})=>{const{manageBillingUrl:t}=Q(),{t:n}=ge(),s=()=>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:s,disabled:!t,children:[o.jsx(ts,{children:a?o.jsx(Vt,{size:22}):o.jsx(jt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n(a?"summaryAddonsEyebrow":"summaryCurrentPlan")}),o.jsx("span",{className:"bpb-summary-card__title",children:n("summaryManagedInDashboard")}),o.jsx("span",{className:"bpb-summary-card__meta",children:n("summaryManagedMeta")})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("open"),o.jsx(et,{size:15})]})]})]})},ec=({onManage:a,className:e})=>{var N,C;const{isOutdatedBilling:t}=Q(),{t:n}=ge(),{data:s,isLoading:r}=Ze({enabled:!t}),{data:i,isLoading:l}=$e();if(t)return o.jsx(no,{isAddons:!1,className:e});if(r||l)return o.jsx(le,{height:84,rounded:!0,className:G("bpb-scope",e)});const c=s==null?void 0:s.plan.current,d=i==null?void 0:i.find(y=>y.id===(c==null?void 0:c.planId)),u=(c==null?void 0:c.interval)??"month",p=((N=d==null?void 0:d.prices[u])==null?void 0:N.amount)??0,m=((C=d==null?void 0:d.prices[u])==null?void 0:C.currency)??"usd",h=d==null?void 0:d.features.conversation_sessions,b=d?be(d):"community";return o.jsxs("button",{type:"button",className:G("bpb-summary-card bpb-summary-card--plan bpb-scope",`bpb-summary-card--tier-${b==="managed"?"enterprise":b}`,e),onClick:a,children:[o.jsx(ts,{children:o.jsx(jt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("summaryCurrentPlan")}),o.jsx("span",{className:"bpb-summary-card__title",children:d?he(d.name):n("summaryNoPlan")}),o.jsxs("span",{className:"bpb-summary-card__meta",children:[p>0?`${ie(p,m,0)}${n(u==="year"?"perYear":"perMonth")}`:n("free"),h!==void 0&&` · ${n("summaryConversationsPerMo",{n:de(h)})}`]})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(ka,{size:16})]})]})]})},ac=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=Q(),{t:n}=ge(),{data:s,isLoading:r}=Ze({enabled:!t}),{data:i,isLoading:l}=ya();if(t)return o.jsx(no,{isAddons:!0,className:e});if(r||l)return o.jsx(le,{height:84,rounded:!0,className:G("bpb-scope",e)});const c=(i??[]).flatMap(d=>{var p;const u=((p=s==null?void 0:s.addons[d.id])==null?void 0:p.current.quantity)??0;return u>0?[{name:ua[d.id]?n(ua[d.id]):Xa(d.name),quantity:u}]:[]});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,children:[o.jsx(ts,{children:o.jsx(Vt,{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(d=>`${d.quantity}× ${d.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(ka,{size:16})]})]})]})},tc=({onManage:a,className:e})=>{var ae,q;const{isOutdatedBilling:t,locale:n,manageBillingUrl:s,analytics:r}=Q(),{t:i}=ge(),{data:l,isLoading:c}=Ze({enabled:!t}),{data:d,isLoading:u}=$e(),{data:p,isLoading:m}=ya();if(t){const S=()=>s&&window.open(s,"_blank","noopener");return o.jsxs("button",{type:"button",className:G("bpb-plan-banner bpb-plan-banner--community bpb-scope",e),onClick:S,disabled:!s,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(et,{size:16})]})]})}if(c||u||m)return o.jsx(le,{height:132,rounded:!0,className:G("bpb-scope",e)});const h=l==null?void 0:l.plan.current,b=d==null?void 0:d.find(S=>S.id===(h==null?void 0:h.planId)),N=(h==null?void 0:h.interval)??"month",C=((ae=b==null?void 0:b.prices[N])==null?void 0:ae.currency)??"usd",y=b?be(b):"community",v=Object.fromEntries(Object.entries((l==null?void 0:l.addons)??{}).map(([S,ue])=>{var pe;return[S,((pe=ue.current)==null?void 0:pe.quantity)??0]})),I=((q=b==null?void 0:b.prices[N])==null?void 0:q.amount)??0,A=(p??[]).reduce((S,ue)=>{const pe=b?Mt(ue,b,N):null;return S+(v[ue.id]??0)*((pe==null?void 0:pe.amount)??0)},0),w=I+A,T=N==="year"?"/yr":"/mo",x=rr(b,p,v).find(S=>S.key==="conversation_sessions"),_=i(y==="community"?"conversationsUnit":"conversationsPerMonth"),L=y==="enterprise"||y==="managed",z=y!=="community"&&!L,O=l==null?void 0:l.plan.next,H=O&&O.planId!==(h==null?void 0:h.planId),F=h==null?void 0:h.periodEnd,J=z&&!H&&F&&!Kt(F)?sa(F,n):null,$=d==null?void 0:d.find(S=>S.id===(O==null?void 0:O.planId)),j=O==null?void 0:O.effectiveDate,ne=H&&$&&j?i("planBannerDowngradesTo",{plan:he($.name),date:sa(j,n)}):null;return o.jsxs("button",{type:"button",className:G("bpb-plan-banner",`bpb-plan-banner--${y}`,"bpb-scope",e),onClick:()=>{r.capture(Ne.UPGRADE_CTA_CLICKED,{source:"plan_banner",current_tier:y}),a()},children:[o.jsxs("div",{className:"bpb-plan-banner__main",children:[o.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),o.jsx("span",{className:"bpb-plan-banner__name",children:b?he(b.name):i("planBannerNoPlan")}),L?o.jsx("span",{className:"bpb-plan-banner__sub",children:x&&x.added>0?o.jsxs(o.Fragment,{children:[i("planBannerCustom")," + ",de(x.added)," ",_]}):i("planBannerCustomConversations")}):x&&o.jsx("span",{className:"bpb-plan-banner__sub",children:x.added>0?o.jsxs(o.Fragment,{children:[de(x.base)," + ",de(x.added)," ",_]}):`${de(x.total)} ${_}`})]}),o.jsxs("div",{className:"bpb-plan-banner__summary",children:[L?o.jsx("span",{className:"bpb-plan-banner__price",children:i("planBannerCustomPricing")}):o.jsx("span",{className:"bpb-plan-banner__price",children:w>0&&o.jsxs(o.Fragment,{children:[ie(w,C,0),o.jsx("span",{className:"bpb-plan-banner__price-suffix",children:T})]})}),z&&o.jsxs("span",{className:"bpb-plan-banner__meta",children:[i(N==="year"?"billedAnnually":"billedMonthly"),A>0&&` ${i("planBannerInclAddons")}`]}),J&&o.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerRenews",{date:J})}),ne&&o.jsx("span",{className:"bpb-plan-banner__meta",children:ne})]}),o.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("planBannerManageCta")," ",o.jsx(ka,{size:16})]})]})},nc=({onManage:a,period:e,variant:t="card",className:n,style:s})=>{const{isOutdatedBilling:r,locale:i}=Q(),{t:l}=ge(),{data:c,isLoading:d}=Ze({enabled:!r}),{data:u,isLoading:p}=$e(),{data:m,isLoading:h}=va({period:e,enabled:!r});if(r)return null;if(d||p||h)return o.jsx(le,{height:72,rounded:!0,className:G("bpb-scope",n)});const b=u==null?void 0:u.find(j=>j.id===(c==null?void 0:c.plan.current.planId)),N=b?be(b):"community",C=N==="enterprise"||N==="managed",y=Ct(m),v=y.find(j=>j.used>j.quota);if(C&&!v)return null;const I=y.find(j=>j.key==="conversation_sessions"),A=y[0],w=v??(A&&A.key!=="conversation_sessions"&&A.pct>=75?A:I??A),T=w?Math.round(w.pct):0,x=T>0?Math.max(5,T):0,_=w?dn(w.pct):"normal",L=_!=="normal",z=N==="community",O=!z&&(w!=null&&w.resets)?sa(vl(e??new Date().toISOString()),i):null;let H=null,F=null;if(w&&L){const j=$a(w.remaining,w.unit);H=l(_==="critical"?"usageWidgetLimitReached":"usageWidgetRunningLow"),C?F=l("usageWidgetEnterpriseOverQuota"):z&&w.key==="conversation_sessions"?F=_==="critical"?l("usageWidgetFreeExhausted"):l("usageWidgetFreeLeft",{left:j}):F=_==="critical"?l("usageWidgetUpgradeToKeepGoing"):l("usageWidgetOnlyLeft",{left:j})}const J=o.jsx(o.Fragment,{children:w?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-plan-usage__head",children:[L&&o.jsx(gr,{size:16,className:G("bpb-plan-usage__alert",`bpb-plan-usage__alert--${_}`)}),o.jsx("span",{className:"bpb-plan-usage__plan",children:eo(w.key,l)}),o.jsxs("span",{className:"bpb-plan-usage__count",children:[$a(w.used,w.unit)," / ",$a(w.quota,w.unit)]}),a&&!L&&o.jsx(ka,{size:15,className:"bpb-plan-usage__chevron"})]}),o.jsx("div",{className:"bpb-plan-usage__bar",role:"progressbar","aria-valuenow":T,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("div",{className:G("bpb-plan-usage__fill",`bpb-plan-usage__fill--${_}`),style:{width:`${x}%`}})}),H?o.jsxs("p",{className:"bpb-plan-usage__status",children:[o.jsxs("strong",{className:G("bpb-plan-usage__status-word",`bpb-plan-usage__status-word--${_}`),children:[H,"."]})," ",F&&o.jsx("span",{className:"bpb-plan-usage__status-detail",children:F})]}):O&&o.jsx("span",{className:"bpb-plan-usage__reset",children:l("usageWidgetResets",{date:O})}),a&&L&&!C&&o.jsxs("span",{className:"bpb-plan-usage__cta",children:[l("usageWidgetViewOptions"),o.jsx(Wt,{size:14})]})]}):o.jsxs("div",{className:"bpb-plan-usage__head",children:[o.jsx("span",{className:"bpb-plan-usage__plan",children:b?he(b.name):l("free")}),a&&o.jsx(ka,{size:15,className:"bpb-plan-usage__chevron"})]})}),$=G("bpb-plan-usage bpb-scope",`bpb-plan-usage--${t}`,L&&`bpb-plan-usage--${_}`,a&&"bpb-plan-usage--clickable",n);return a?o.jsx("button",{type:"button",className:$,style:s,onClick:a,children:J}):o.jsx("div",{className:$,style:s,children:J})},so=({children:a,delay:e=200,placement:t="top",align:n="center",period:s,onUpgrade:r,block:i=!1,className:l})=>{const{isOutdatedBilling:c,analytics:d}=Q(),{t:u}=ge(),{data:p}=va({period:s,enabled:!c}),{data:m}=Ze({enabled:!c}),{data:h}=$e(),[b,N]=P.useState(!1),C=P.useRef(null),y=()=>{C.current&&(clearTimeout(C.current),C.current=null)};P.useEffect(()=>y,[]);const v=h==null?void 0:h.find(F=>F.id===(m==null?void 0:m.plan.current.planId)),I=v?be(v):"community",A=Ct(p),w=!c&&A.length>0,T=()=>{w&&(y(),C.current=setTimeout(()=>N(!0),Math.max(0,e)))},x=()=>{y(),N(!1)},_=v?he(v.name):u("free"),L=I==="community",z=L?A.find(F=>F.key==="conversation_sessions"):void 0,O=L&&!!r,H=()=>{d.capture(Ne.UPGRADE_CTA_CLICKED,{source:"usage_popover"}),r==null||r()};return o.jsxs("span",{className:G("bpb-usage-pop bpb-scope",i&&"bpb-usage-pop--block",l),onMouseEnter:T,onMouseLeave:x,onFocus:T,onBlur:x,children:[a,b&&w&&o.jsxs("span",{className:G("bpb-usage-pop__card",`bpb-usage-pop__card--${t}`,`bpb-usage-pop__card--align-${n}`),role:"tooltip",children:[L?o.jsxs("span",{className:"bpb-usage-pop__header",children:[o.jsx("span",{className:"bpb-usage-pop__plan-name",children:u("usagePopoverFreeTitle")}),z&&o.jsx("span",{className:"bpb-usage-pop__subtitle",children:o.jsx(wt,{i18nKey:"usagePopoverFreeSubtitle",values:{quota:de(z.quota)},components:{bold:o.jsx("strong",{})}})})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-usage-pop__plan",children:o.jsx("span",{className:"bpb-usage-pop__plan-name",children:u("usagePopoverPlanName",{planName:_})})}),o.jsx("span",{className:"bpb-usage-pop__title",children:u("usagePopoverTitle")})]}),A.map(F=>{const J=F.pct>0?Math.max(5,F.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:eo(F.key,u)}),o.jsxs("span",{className:"bpb-usage-pop__val",children:[$a(F.used,F.unit)," / ",$a(F.quota,F.unit)]})]}),o.jsx("span",{className:"bpb-usage-pop__bar",children:o.jsx("span",{className:G("bpb-usage-pop__fill",`bpb-usage-pop__fill--${dn(F.pct)}`),style:{width:`${J}%`}})})]},F.key)}),O&&o.jsxs("span",{className:"bpb-usage-pop__nudge",children:[o.jsx("span",{className:"bpb-usage-pop__nudge-text",children:o.jsx(wt,{i18nKey:"usagePopoverNudgeText",components:{bold:o.jsx("strong",{})}})}),o.jsxs("button",{type:"button",className:"bpb-usage-pop__nudge-cta",onClick:H,children:[u("usagePopoverNudgeCta"),o.jsx(Wt,{size:14})]})]})]})]})},sc=({size:a=20,thickness:e=3.5,showLabel:t=!1,onClick:n,popoverDelay:s=200,popoverAlign:r="center",trackColor:i="light",period:l,className:c,...d})=>{const{isOutdatedBilling:u}=Q(),{data:p}=va({period:l,enabled:!u}),m=Ct(p);if(u||m.length===0)return null;const h=m[0],b=dn(h.pct),N=h.pct>0?Math.max(5,h.pct):0,C=(a-e)/2,y=2*Math.PI*C,v=y*(1-N/100),I=d["aria-label"]??`${Math.round(h.pct)}% of your ${h.label.toLowerCase()} used`,A=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:C,fill:"none",strokeWidth:e}),o.jsx("circle",{className:G("bpb-usage-ring__arc",`bpb-usage-ring__arc--${b}`),cx:a/2,cy:a/2,r:C,fill:"none",strokeWidth:e,strokeLinecap:"round",strokeDasharray:y,strokeDashoffset:v,transform:`rotate(-90 ${a/2} ${a/2})`})]}),t&&o.jsxs("span",{className:"bpb-usage-ring__label",children:[Math.round(h.pct),"%"]})]}),w=G("bpb-usage-ring",n&&"bpb-usage-ring--clickable"),T=n?o.jsx("button",{type:"button",className:w,onClick:n,"aria-label":I,children:A}):o.jsx("span",{className:w,tabIndex:0,role:"img","aria-label":I,children:A});return o.jsx(so,{delay:s,align:r,period:l,className:c,children:T})};k.AddonsSummaryCard=ac,k.ArrowRightIcon=Wt,k.BILLING_EVENTS=Ne,k.Badge=zt,k.BankIcon=ul,k.BillingActionCard=Xd,k.BillingProvider=gi,k.BoltIcon=Vt,k.Button=Te,k.CalendarIcon=fr,k.CardBrandBadge=Zn,k.CardIcon=Un,k.ChartIcon=ur,k.CheckIcon=or,k.CheckoutDialog=Nr,k.ChevronDownIcon=qt,k.ChevronLeftIcon=zn,k.ChevronRightIcon=ka,k.CloseIcon=Zt,k.DEFAULT_FEATURE_LABELS=Qr,k.DEFAULT_PLAN_FEATURES=Ut,k.Dialog=Ue,k.DownloadIcon=Vn,k.ENTERPRISE_CONTACT_URL=Fn,k.ExternalLinkIcon=et,k.GlobeIcon=pr,k.InfinityIcon=dr,k.InfoTooltip=at,k.Input=$t,k.InvoicesDialog=Dl,k.LayersIcon=jt,k.LockIcon=pl,k.ManageAddonsDialog=Pl,k.MessageIcon=ir,k.MinusIcon=hr,k.NANO_DOLLARS_PER_DOLLAR=ln,k.OutdatedBillingGate=wa,k.OutgrowFreeDialog=Hd,k.PLAN_FEATURE_KEYS=On,k.PLAN_ORDER=Sa,k.PaintIcon=mr,k.PaymentMethodDialog=Ll,k.PlanBanner=tc,k.PlanSummaryCard=ec,k.PlanUsageWidget=nc,k.PlusIcon=jn,k.PuzzleIcon=lr,k.ReceiptIcon=hl,k.SegmentedControl=br,k.Select=Hn,k.ShieldIcon=Bn,k.Skeleton=le,k.SparkleIcon=Mn,k.Stepper=Sr,k.USAGE_METRICS=Xr,k.UpgradePlanDialog=yr,k.UsageBanner=Qd,k.UsageDashboard=Jd,k.UsagePopover=so,k.UsageRing=sc,k.UsersIcon=cr,k.addDays=er,k.addonDisplayName=Xa,k.addonLimitsPreview=sr,k.addonPrice=Mt,k.billingKeys=we,k.cn=G,k.conversationPackPrice=Bt,k.conversationsAddon=tr,k.currencySymbol=Qa,k.featureLabel=Vd,k.formatBytes=Na,k.formatCurrency=ie,k.formatDate=sa,k.formatQuantity=de,k.formatUsage=$a,k.getCardElementStyle=Kn,k.getStripeAppearance=Gn,k.getStripePromise=rs,k.iconForFeature=Gt,k.planDisplayName=he,k.planEntitlements=rr,k.planKind=be,k.toStripeLocale=$n,k.usageItems=Ct,k.usageTier=dn,k.useAddons=ya,k.useBilling=Q,k.useBillingAddress=Nn,k.useBillingReadonly=kn,k.useCreatePaymentMethodIntent=wn,k.useCustomer=Sn,k.useInvoices=Ps,k.usePaymentMethod=Cn,k.usePlans=$e,k.useSetAddons=Es,k.useSetBillingAddress=In,k.useSetCustomer=An,k.useSetPaymentMethod=Tn,k.useSetSubscription=Pn,k.useSubscription=Ze,k.useSubscriptionPreview=_n,k.useSupportsUsageByBot=Ds,k.useUsage=va,k.useUsageByBot=xs,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
1
+ (function(k,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react/jsx-runtime"),require("@tanstack/react-query"),require("react"),require("@stripe/stripe-js"),require("react-dom"),require("@stripe/react-stripe-js")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@tanstack/react-query","react","@stripe/stripe-js","react-dom","@stripe/react-stripe-js"],o):(k=typeof globalThis<"u"?globalThis:k||self,o(k.BillingUI={},k.ReactJsxRuntime,k.ReactQuery,k.React,k.StripeJs,k.ReactDOM,k.ReactStripeJs))})(this,function(k,o,fe,P,mo,ho,Me){"use strict";var uc=Object.defineProperty;var pc=(k,o,fe)=>o in k?uc(k,o,{enumerable:!0,configurable:!0,writable:!0,value:fe}):k[o]=fe;var po=(k,o,fe)=>pc(k,typeof o!="symbol"?o+"":o,fe);const ss=new Map;function rs(a){let e=ss.get(a);return e||(e=mo.loadStripe(a,{developerTools:{assistant:{enabled:!1}}}),ss.set(a,e)),e}var oe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function go(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var fo={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 bo=go(fo);var yo=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function os(a){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=a.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(e.name=t[1],(bo[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 s=new RegExp(yo),r=null;(r=s.exec(a))!==null;)if(r[0].trim())if(r[1]){var i=r[1].trim(),l=[i,""];i.indexOf("=")>-1&&(l=i.split("=")),e.attrs[l[0]]=l[1],s.lastIndex--}else r[2]&&(e.attrs[r[2]]=r[3].trim().substring(1,r[3].length-1));return e}var vo=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,_o=/^\s*$/,Co=Object.create(null);function is(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 s in t)n.push(s+'="'+t[s]+'"');return n.length?" "+n.join(" "):""}(e.attrs):"")+(e.voidElement?"/>":">"),e.voidElement?a:a+e.children.reduce(is,"")+"</"+e.name+">";case"comment":return a+"<!--"+e.comment+"-->"}}var No={parse:function(a,e){e||(e={}),e.components||(e.components=Co);var t,n=[],s=[],r=-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(vo,function(c,d){if(i){if(c!=="</"+t.name+">")return;i=!1}var u,p=c.charAt(1)!=="/",m=c.startsWith("<!--"),h=d+c.length,b=a.charAt(h);if(m){var w=os(c);return r<0?(n.push(w),n):((u=s[r]).children.push(w),n)}if(p&&(r++,(t=os(c)).type==="tag"&&e.components[t.name]&&(t.type="component",i=!0),t.voidElement||i||!b||b==="<"||t.children.push({type:"text",content:a.slice(h,a.indexOf("<",h))}),r===0&&n.push(t),(u=s[r-1])&&u.children.push(t),s[r]=t),(!p||t.voidElement)&&(r>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(r--,t=r===-1?n:s[r]),!i&&b!=="<"&&b)){u=r===-1?n:s[r].children;var C=a.indexOf("<",h),y=a.slice(h,C===-1?void 0:C);_o.test(y)&&(y=" "),(C>-1&&r+u.length>=0||y!==" ")&&u.push({type:"text",content:y})}}),n},stringify:function(a){return a.reduce(function(e,t){return e+is("",t)},"")}};function St(){if(console&&console.warn){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Be(e[0])&&(e[0]=`react-i18next:: ${e[0]}`),console.warn(...e)}}const ls={};function kt(){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Be(e[0])&&ls[e[0]]||(Be(e[0])&&(ls[e[0]]=new Date),St(...e))}const ds=(a,e)=>()=>{if(a.isInitialized)e();else{const t=()=>{setTimeout(()=>{a.off("initialized",t)},0),e()};a.on("initialized",t)}},cs=(a,e,t)=>{a.loadNamespaces(e,ds(a,t))},us=(a,e,t,n)=>{Be(t)&&(t=[t]),t.forEach(s=>{a.options.ns.indexOf(s)<0&&a.options.ns.push(s)}),a.loadLanguages(e,ds(a,n))},So=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=e.languages[0],s=e.options?e.options.fallbackLng:!1,r=e.languages[e.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(l,c)=>{const d=e.services.backendConnector.state[`${l}|${c}`];return d===-1||d===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)&&(!s||i(r,a)))},ko=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(kt("i18n.languages were undefined or empty",e.languages),!0):e.options.ignoreJSONStructure!==void 0?e.hasLoadedNamespace(a,{lng:t.lng,precheck:(s,r)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&s.services.backendConnector.backend&&s.isLanguageChangingTo&&!r(s.isLanguageChangingTo,a))return!1}}):So(a,e,t)},Be=a=>typeof a=="string",Fa=a=>typeof a=="object"&&a!==null,wo=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,To={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},Io=a=>To[a];let un={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:a=>a.replace(wo,Io)};const Ao=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};un={...un,...a}},ps=()=>un;let ms;const Po=a=>{ms=a},pn=()=>ms,mn=(a,e)=>{if(!a)return!1;const t=a.props?a.props.children:a.children;return e?t.length>0:!!t},hn=a=>{if(!a)return[];const e=a.props?a.props.children:a.children;return a.props&&a.props.i18nIsDynamicList?Oa(e):e},xo=a=>Array.isArray(a)&&a.every(P.isValidElement),Oa=a=>Array.isArray(a)?a:[a],Do=(a,e)=>{const t={...e};return t.props=Object.assign(a.props,e.props),t},hs=(a,e)=>{if(!a)return"";let t="";const n=Oa(a),s=e.transSupportBasicHtmlNodes&&e.transKeepBasicHtmlNodesFor?e.transKeepBasicHtmlNodesFor:[];return n.forEach((r,i)=>{if(Be(r))t+=`${r}`;else if(P.isValidElement(r)){const{props:l,type:c}=r,d=Object.keys(l).length,u=s.indexOf(c)>-1,p=l.children;if(!p&&u&&!d)t+=`<${c}/>`;else if(!p&&(!u||d)||l.i18nIsDynamicList)t+=`<${i}></${i}>`;else if(u&&d===1&&Be(p))t+=`<${c}>${p}</${c}>`;else{const m=hs(p,e);t+=`<${i}>${m}</${i}>`}}else if(r===null)St("Trans: the passed in value is invalid - seems you passed in a null child.");else if(Fa(r)){const{format:l,...c}=r,d=Object.keys(c);if(d.length===1){const u=l?`${d[0]}, ${l}`:d[0];t+=`{{${u}}}`}else St("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",r)}else St("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}}.",r)}),t},Eo=(a,e,t,n,s,r)=>{if(e==="")return[];const i=n.transKeepBasicHtmlNodesFor||[],l=e&&new RegExp(i.map(C=>`<${C}`).join("|")).test(e);if(!a&&!l&&!r)return[e];const c={},d=C=>{Oa(C).forEach(_=>{Be(_)||(mn(_)?d(hn(_)):Fa(_)&&!P.isValidElement(_)&&Object.assign(c,_))})};d(a);const u=No.parse(`<0>${e}</0>`),p={...c,...s},m=(C,y,_)=>{const N=hn(C),A=b(N,y.children,_);return xo(N)&&A.length===0||C.props&&C.props.i18nIsDynamicList?N:A},h=(C,y,_,N,A)=>{C.dummy?(C.children=y,_.push(P.cloneElement(C,{key:N},A?void 0:y))):_.push(...P.Children.map([C],I=>{const T={...I.props};return delete T.i18nIsDynamicList,P.createElement(I.type,{...T,key:N,ref:I.ref},A?null:y)}))},b=(C,y,_)=>{const N=Oa(C);return Oa(y).reduce((I,T,x)=>{const v=T.children&&T.children[0]&&T.children[0].content&&t.services.interpolator.interpolate(T.children[0].content,p,t.language);if(T.type==="tag"){let L=N[parseInt(T.name,10)];_.length===1&&!L&&(L=_[0][T.name]),L||(L={});const V=Object.keys(T.attrs).length!==0?Do({props:T.attrs},L):L,O=P.isValidElement(V),q=O&&mn(T,!0)&&!T.voidElement,F=l&&Fa(V)&&V.dummy&&!O,J=Fa(a)&&Object.hasOwnProperty.call(a,T.name);if(Be(V)){const H=t.services.interpolator.interpolate(V,p,t.language);I.push(H)}else if(mn(V)||q){const H=m(V,T,_);h(V,H,I,x)}else if(F){const H=b(N,T.children,_);h(V,H,I,x)}else if(Number.isNaN(parseFloat(T.name)))if(J){const H=m(V,T,_);h(V,H,I,x,T.voidElement)}else if(n.transSupportBasicHtmlNodes&&i.indexOf(T.name)>-1)if(T.voidElement)I.push(P.createElement(T.name,{key:`${T.name}-${x}`}));else{const H=b(N,T.children,_);I.push(P.createElement(T.name,{key:`${T.name}-${x}`},H))}else if(T.voidElement)I.push(`<${T.name} />`);else{const H=b(N,T.children,_);I.push(`<${T.name}>${H}</${T.name}>`)}else if(Fa(V)&&!O){const H=T.children[0]?v:null;H&&I.push(H)}else h(V,v,I,x,T.children.length!==1||!v)}else if(T.type==="text"){const L=n.transWrapTextNodes,V=r?n.unescape(t.services.interpolator.interpolate(T.content,p,t.language)):t.services.interpolator.interpolate(T.content,p,t.language);L?I.push(P.createElement(L,{key:`${T.name}-${x}`},V)):I.push(V)}return I},[])},w=b([{dummy:!0,children:a||[]}],u,Oa(a||[]));return hn(w[0])};function Lo(a){let{children:e,count:t,parent:n,i18nKey:s,context:r,tOptions:i={},values:l,defaults:c,components:d,ns:u,i18n:p,t:m,shouldUnescape:h,...b}=a;const w=p||pn();if(!w)return kt("You will need to pass in an i18next instance by using i18nextReactModule"),e;const C=m||w.t.bind(w)||(q=>q),y={...ps(),...w.options&&w.options.react};let _=u||C.ns||w.options&&w.options.defaultNS;_=Be(_)?[_]:_||["translation"];const N=hs(e,y),A=c||N||y.transEmptyNodeValue||s,{hashTransKey:I}=y,T=s||(I?I(N||A):N||A);w.options&&w.options.interpolation&&w.options.interpolation.defaultVariables&&(l=l&&Object.keys(l).length>0?{...l,...w.options.interpolation.defaultVariables}:{...w.options.interpolation.defaultVariables});const x=l||t!==void 0||!e?i.interpolation:{interpolation:{...i.interpolation,prefix:"#$?",suffix:"?$#"}},v={...i,context:r||i.context,count:t,...l,...x,defaultValue:A,ns:_},L=T?C(T,v):A;d&&Object.keys(d).forEach(q=>{const F=d[q];if(typeof F.type=="function"||!F.props||!F.props.children||L.indexOf(`${q}/>`)<0&&L.indexOf(`${q} />`)<0)return;function J(){return P.createElement(P.Fragment,null,F)}d[q]=P.createElement(J)});const V=Eo(d||e,L,w,y,v,h),O=n!==void 0?n:y.defaultTransParent;return O?P.createElement(O,b,V):V}const Fo={type:"3rdParty",init(a){Ao(a.options.react),Po(a)}},gn=P.createContext();class Oo{constructor(){po(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}}function wt(a){let{children:e,count:t,parent:n,i18nKey:s,context:r,tOptions:i={},values:l,defaults:c,components:d,ns:u,i18n:p,t:m,shouldUnescape:h,...b}=a;const{i18n:w,defaultNS:C}=P.useContext(gn)||{},y=p||w||pn(),_=m||y&&y.t.bind(y);return Lo({children:e,count:t,parent:n,i18nKey:s,context:r,tOptions:i,values:l,defaults:c,components:d,ns:u||_&&_.ns||C||y&&y.options&&y.options.defaultNS,i18n:y,t:m,shouldUnescape:h,...b})}const Mo=(a,e)=>{const t=P.useRef();return P.useEffect(()=>{t.current=a},[a,e]),t.current},gs=(a,e,t,n)=>a.getFixedT(e,t,n),Bo=(a,e,t,n)=>P.useCallback(gs(a,e,t,n),[a,e,t,n]),ge=function(a){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:n,defaultNS:s}=P.useContext(gn)||{},r=t||n||pn();if(r&&!r.reportNamespaces&&(r.reportNamespaces=new Oo),!r){kt("You will need to pass in an i18next instance by using initReactI18next");const A=(T,x)=>Be(x)?x:Fa(x)&&Be(x.defaultValue)?x.defaultValue:Array.isArray(T)?T[T.length-1]:T,I=[A,{},!1];return I.t=A,I.i18n={},I.ready=!1,I}r.options.react&&r.options.react.wait!==void 0&&kt("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const i={...ps(),...r.options.react,...e},{useSuspense:l,keyPrefix:c}=i;let d=s||r.options&&r.options.defaultNS;d=Be(d)?[d]:d||["translation"],r.reportNamespaces.addUsedNamespaces&&r.reportNamespaces.addUsedNamespaces(d);const u=(r.isInitialized||r.initializedStoreOnce)&&d.every(A=>ko(A,r,i)),p=Bo(r,e.lng||null,i.nsMode==="fallback"?d:d[0],c),m=()=>p,h=()=>gs(r,e.lng||null,i.nsMode==="fallback"?d:d[0],c),[b,w]=P.useState(m);let C=d.join();e.lng&&(C=`${e.lng}${C}`);const y=Mo(C),_=P.useRef(!0);P.useEffect(()=>{const{bindI18n:A,bindI18nStore:I}=i;_.current=!0,!u&&!l&&(e.lng?us(r,e.lng,d,()=>{_.current&&w(h)}):cs(r,d,()=>{_.current&&w(h)})),u&&y&&y!==C&&_.current&&w(h);const T=()=>{_.current&&w(h)};return A&&r&&r.on(A,T),I&&r&&r.store.on(I,T),()=>{_.current=!1,A&&r&&A.split(" ").forEach(x=>r.off(x,T)),I&&r&&I.split(" ").forEach(x=>r.store.off(x,T))}},[r,C]),P.useEffect(()=>{_.current&&u&&w(m)},[r,c,u]);const N=[b,r,u];if(N.t=b,N.i18n=r,N.ready=u,u||!u&&!l)return N;throw new Promise(A=>{e.lng?us(r,e.lng,d,()=>A()):cs(r,d,()=>A())})};function Uo(a){let{i18n:e,defaultNS:t,children:n}=a;const s=P.useMemo(()=>({i18n:e,defaultNS:t}),[e,t]);return P.createElement(gn.Provider,{value:s},n)}const R=a=>typeof a=="string",Ha=()=>{let a,e;const t=new Promise((n,s)=>{a=n,e=s});return t.resolve=a,t.reject=e,t},fs=a=>a==null?"":""+a,zo=(a,e,t)=>{a.forEach(n=>{e[n]&&(t[n]=e[n])})},jo=/###/g,bs=a=>a&&a.indexOf("###")>-1?a.replace(jo,"."):a,ys=a=>!a||R(a),Ra=(a,e,t)=>{const n=R(e)?e.split("."):e;let s=0;for(;s<n.length-1;){if(ys(a))return{};const r=bs(n[s]);!a[r]&&t&&(a[r]=new t),Object.prototype.hasOwnProperty.call(a,r)?a=a[r]:a={},++s}return ys(a)?{}:{obj:a,k:bs(n[s])}},vs=(a,e,t)=>{const{obj:n,k:s}=Ra(a,e,Object);if(n!==void 0||e.length===1){n[s]=t;return}let r=e[e.length-1],i=e.slice(0,e.length-1),l=Ra(a,i,Object);for(;l.obj===void 0&&i.length;)r=`${i[i.length-1]}.${r}`,i=i.slice(0,i.length-1),l=Ra(a,i,Object),l&&l.obj&&typeof l.obj[`${l.k}.${r}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${r}`]=t},Vo=(a,e,t,n)=>{const{obj:s,k:r}=Ra(a,e,Object);s[r]=s[r]||[],s[r].push(t)},Tt=(a,e)=>{const{obj:t,k:n}=Ra(a,e);if(t)return t[n]},Zo=(a,e,t)=>{const n=Tt(a,t);return n!==void 0?n:Tt(e,t)},_s=(a,e,t)=>{for(const n in e)n!=="__proto__"&&n!=="constructor"&&(n in a?R(a[n])||a[n]instanceof String||R(e[n])||e[n]instanceof String?t&&(a[n]=e[n]):_s(a[n],e[n],t):a[n]=e[n]);return a},Ma=a=>a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var qo={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};const Wo=a=>R(a)?a.replace(/[&<>"'\/]/g,e=>qo[e]):a;class Go{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 Ko=[" ",",","?","!",";"],$o=new Go(20),Ho=(a,e,t)=>{e=e||"",t=t||"";const n=Ko.filter(i=>e.indexOf(i)<0&&t.indexOf(i)<0);if(n.length===0)return!0;const s=$o.getRegExp(`(${n.map(i=>i==="?"?"\\?":i).join("|")})`);let r=!s.test(a);if(!r){const i=a.indexOf(t);i>0&&!s.test(a.substring(0,i))&&(r=!0)}return r},fn=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 s=a;for(let r=0;r<n.length;){if(!s||typeof s!="object")return;let i,l="";for(let c=r;c<n.length;++c)if(c!==r&&(l+=t),l+=n[c],i=s[l],i!==void 0){if(["string","number","boolean"].indexOf(typeof i)>-1&&c<n.length-1)continue;r+=c-r+1;break}s=i}return s},It=a=>a&&a.replace("_","-"),Ro={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 At{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||Ro,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,s){return s&&!this.debug?null:(R(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new At(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new At(this.logger,e)}}var Ke=new At;class Pt{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(n=>{this.observers[n]||(this.observers[n]=new Map);const s=this.observers[n].get(t)||0;this.observers[n].set(t,s+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),s=1;s<t;s++)n[s-1]=arguments[s];this.observers[e]&&Array.from(this.observers[e].entries()).forEach(i=>{let[l,c]=i;for(let d=0;d<c;d++)l(...n)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(i=>{let[l,c]=i;for(let d=0;d<c;d++)l.apply(l,[e,...n])})}}class Cs extends Pt{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 s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const r=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,i=s.ignoreJSONStructure!==void 0?s.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;e.indexOf(".")>-1?l=e.split("."):(l=[e,t],n&&(Array.isArray(n)?l.push(...n):R(n)&&r?l.push(...n.split(r)):l.push(n)));const c=Tt(this.data,l);return!c&&!t&&!n&&e.indexOf(".")>-1&&(e=l[0],t=l[1],n=l.slice(2).join(".")),c||!i||!R(n)?c:fn(this.data&&this.data[e]&&this.data[e][t],n,r)}addResource(e,t,n,s){let r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator;let l=[e,t];n&&(l=l.concat(i?n.split(i):n)),e.indexOf(".")>-1&&(l=e.split("."),s=t,t=l[1]),this.addNamespaces(t),vs(this.data,l,s),r.silent||this.emit("added",e,t,n,s)}addResources(e,t,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const r in n)(R(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});s.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,s,r){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},l=[e,t];e.indexOf(".")>-1&&(l=e.split("."),s=n,n=t,t=l[1]),this.addNamespaces(t);let c=Tt(this.data,l)||{};i.skipCopy||(n=JSON.parse(JSON.stringify(n))),s?_s(c,n,r):c={...c,...n},vs(this.data,l,c),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(s=>t[s]&&Object.keys(t[s]).length>0)}toJSON(){return this.data}}var Ns={processors:{},addPostProcessor(a){this.processors[a.name]=a},handle(a,e,t,n,s){return a.forEach(r=>{this.processors[r]&&(e=this.processors[r].process(e,t,n,s))}),e}};const Ss={};class xt extends Pt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),zo(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Ke.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 s=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let r=t.ns||this.options.defaultNS||[];const i=n&&e.indexOf(n)>-1,l=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!Ho(e,n,s);if(i&&!l){const c=e.match(this.interpolator.nestingRegexp);if(c&&c.length>0)return{key:e,namespaces:R(r)?[r]:r};const d=e.split(n);(n!==s||n===s&&this.options.ns.indexOf(d[0])>-1)&&(r=d.shift()),e=d.join(s)}return{key:e,namespaces:R(r)?[r]:r}}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 s=t.returnDetails!==void 0?t.returnDetails:this.options.returnDetails,r=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator,{key:i,namespaces:l}=this.extractFromKey(e[e.length-1],t),c=l[l.length-1],d=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&d.toLowerCase()==="cimode"){if(u){const A=t.nsSeparator||this.options.nsSeparator;return s?{res:`${c}${A}${i}`,usedKey:i,exactUsedKey:i,usedLng:d,usedNS:c,usedParams:this.getUsedParamsDetails(t)}:`${c}${A}${i}`}return s?{res:i,usedKey:i,exactUsedKey:i,usedLng:d,usedNS:c,usedParams:this.getUsedParamsDetails(t)}:i}const p=this.resolve(e,t);let m=p&&p.res;const h=p&&p.usedKey||i,b=p&&p.exactUsedKey||i,w=Object.prototype.toString.apply(m),C=["[object Number]","[object Function]","[object RegExp]"],y=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,_=!this.i18nFormat||this.i18nFormat.handleAsObject,N=!R(m)&&typeof m!="boolean"&&typeof m!="number";if(_&&m&&N&&C.indexOf(w)<0&&!(R(y)&&Array.isArray(m))){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const A=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,m,{...t,ns:l}):`key '${i} (${this.language})' returned an object instead of string.`;return s?(p.res=A,p.usedParams=this.getUsedParamsDetails(t),p):A}if(r){const A=Array.isArray(m),I=A?[]:{},T=A?b:h;for(const x in m)if(Object.prototype.hasOwnProperty.call(m,x)){const v=`${T}${r}${x}`;I[x]=this.translate(v,{...t,joinArrays:!1,ns:l}),I[x]===v&&(I[x]=m[x])}m=I}}else if(_&&R(y)&&Array.isArray(m))m=m.join(y),m&&(m=this.extendTranslation(m,e,t,n));else{let A=!1,I=!1;const T=t.count!==void 0&&!R(t.count),x=xt.hasDefaultValue(t),v=T?this.pluralResolver.getSuffix(d,t.count,t):"",L=t.ordinal&&T?this.pluralResolver.getSuffix(d,t.count,{ordinal:!1}):"",V=T&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),O=V&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${v}`]||t[`defaultValue${L}`]||t.defaultValue;!this.isValidLookup(m)&&x&&(A=!0,m=O),this.isValidLookup(m)||(I=!0,m=i);const F=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&I?void 0:m,J=x&&O!==m&&this.options.updateMissing;if(I||A||J){if(this.logger.log(J?"updateKey":"missingKey",d,c,i,J?O:m),r){const ae=this.resolve(i,{...t,keySeparator:!1});ae&&ae.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 H=[];const z=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&z&&z[0])for(let ae=0;ae<z.length;ae++)H.push(z[ae]);else this.options.saveMissingTo==="all"?H=this.languageUtils.toResolveHierarchy(t.lng||this.language):H.push(t.lng||this.language);const ne=(ae,W,S)=>{const ue=x&&S!==m?S:F;this.options.missingKeyHandler?this.options.missingKeyHandler(ae,c,W,ue,J,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(ae,c,W,ue,J,t),this.emit("missingKey",ae,c,W,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&T?H.forEach(ae=>{const W=this.pluralResolver.getSuffixes(ae,t);V&&t[`defaultValue${this.options.pluralSeparator}zero`]&&W.indexOf(`${this.options.pluralSeparator}zero`)<0&&W.push(`${this.options.pluralSeparator}zero`),W.forEach(S=>{ne([ae],i+S,t[`defaultValue${S}`]||O)})}):ne(H,i,O))}m=this.extendTranslation(m,e,t,p,n),I&&m===i&&this.options.appendNamespaceToMissingKey&&(m=`${c}:${i}`),(I||A)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${c}:${i}`:i,A?m:void 0):m=this.options.parseMissingKeyHandler(m))}return s?(p.res=m,p.usedParams=this.getUsedParamsDetails(t),p):m}extendTranslation(e,t,n,s,r){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||s.usedLng,s.usedNS,s.usedKey,{resolved:s});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const d=R(e)&&(n&&n.interpolation&&n.interpolation.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let u;if(d){const m=e.match(this.interpolator.nestingRegexp);u=m&&m.length}let p=n.replace&&!R(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||s.usedLng,n),d){const m=e.match(this.interpolator.nestingRegexp),h=m&&m.length;u<h&&(n.nest=!1)}!n.lng&&this.options.compatibilityAPI!=="v1"&&s&&s.res&&(n.lng=this.language||s.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,function(){for(var m=arguments.length,h=new Array(m),b=0;b<m;b++)h[b]=arguments[b];return r&&r[0]===h[0]&&!n.context?(i.logger.warn(`It seems you are nesting recursively key: ${h[0]} in key: ${t[0]}`),null):i.translate(...h,t)},n)),n.interpolation&&this.interpolator.reset()}const l=n.postProcess||this.options.postProcess,c=R(l)?[l]:l;return e!=null&&c&&c.length&&n.applyPostProcessor!==!1&&(e=Ns.handle(c,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...s,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n,s,r,i,l;return R(e)&&(e=[e]),e.forEach(c=>{if(this.isValidLookup(n))return;const d=this.extractFromKey(c,t),u=d.key;s=u;let p=d.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const m=t.count!==void 0&&!R(t.count),h=m&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),b=t.context!==void 0&&(R(t.context)||typeof t.context=="number")&&t.context!=="",w=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);p.forEach(C=>{this.isValidLookup(n)||(l=C,!Ss[`${w[0]}-${C}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(l)&&(Ss[`${w[0]}-${C}`]=!0,this.logger.warn(`key "${s}" for languages "${w.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!!!")),w.forEach(y=>{if(this.isValidLookup(n))return;i=y;const _=[u];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(_,u,y,C,t);else{let A;m&&(A=this.pluralResolver.getSuffix(y,t.count,t));const I=`${this.options.pluralSeparator}zero`,T=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(m&&(_.push(u+A),t.ordinal&&A.indexOf(T)===0&&_.push(u+A.replace(T,this.options.pluralSeparator)),h&&_.push(u+I)),b){const x=`${u}${this.options.contextSeparator}${t.context}`;_.push(x),m&&(_.push(x+A),t.ordinal&&A.indexOf(T)===0&&_.push(x+A.replace(T,this.options.pluralSeparator)),h&&_.push(x+I))}}let N;for(;N=_.pop();)this.isValidLookup(n)||(r=N,n=this.getResource(y,C,N,t))}))})}),{res:n,usedKey:s,exactUsedKey:r,usedLng:i,usedNS:l}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,s):this.resourceStore.getResource(e,t,n,s)}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&&!R(e.replace);let s=n?e.replace:e;if(n&&typeof e.count<"u"&&(s.count=e.count),this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),!n){s={...s};for(const r of t)delete s[r]}return s}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 bn=a=>a.charAt(0).toUpperCase()+a.slice(1);class ks{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ke.create("languageUtils")}getScriptPartFromCode(e){if(e=It(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=It(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(R(e)&&e.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let s=Intl.getCanonicalLocales(e)[0];if(s&&this.options.lowerCaseLng&&(s=s.toLowerCase()),s)return s}catch{}const t=["hans","hant","latn","cyrl","cans","mong","arab"];let n=e.split("-");return this.options.lowerCaseLng?n=n.map(s=>s.toLowerCase()):n.length===2?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=bn(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]=bn(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=bn(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 s=this.formatLanguageCode(n);(!this.options.supportedLngs||this.isSupportedCode(s))&&(t=s)}),!t&&this.options.supportedLngs&&e.forEach(n=>{if(t)return;const s=this.getLanguagePartFromCode(n);if(this.isSupportedCode(s))return t=s;t=this.options.supportedLngs.find(r=>{if(r===s)return r;if(!(r.indexOf("-")<0&&s.indexOf("-")<0)&&(r.indexOf("-")>0&&s.indexOf("-")<0&&r.substring(0,r.indexOf("-"))===s||r.indexOf(s)===0&&s.length>1))return r})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),R(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),s=[],r=i=>{i&&(this.isSupportedCode(i)?s.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return R(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&r(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&r(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&r(this.getLanguagePartFromCode(e))):R(e)&&r(this.formatLanguageCode(e)),n.forEach(i=>{s.indexOf(i)<0&&r(this.formatLanguageCode(i))}),s}}let Yo=[{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}],Jo={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 Qo=["v1","v2","v3"],Xo=["v4"],ws={zero:0,one:1,two:2,few:3,many:4,other:5},ei=()=>{const a={};return Yo.forEach(e=>{e.lngs.forEach(t=>{a[t]={numbers:e.nr,plurals:Jo[e.fc]}})}),a};class ai{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=Ke.create("pluralResolver"),(!this.options.compatibilityJSON||Xo.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=ei(),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=It(e==="dev"?"en":e),s=t.ordinal?"ordinal":"cardinal",r=JSON.stringify({cleanedCode:n,type:s});if(r in this.pluralRulesCache)return this.pluralRulesCache[r];let i;try{i=new Intl.PluralRules(n,{type:s})}catch{if(!e.match(/-|_/))return;const c=this.languageUtils.getLanguagePartFromCode(e);i=this.getRule(c,t)}return this.pluralRulesCache[r]=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(s=>`${t}${s}`)}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((s,r)=>ws[s]-ws[r]).map(s=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${s}`):n.numbers.map(s=>this.getSuffix(e,s,t)):[]}getSuffix(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const s=this.getRule(e,n);return s?this.shouldUseIntlApi()?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${s.select(t)}`:this.getSuffixRetroCompatible(s,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 s=e.numbers[n];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(s===2?s="plural":s===1&&(s=""));const r=()=>this.options.prepend&&s.toString()?this.options.prepend+s.toString():s.toString();return this.options.compatibilityJSON==="v1"?s===1?"":typeof s=="number"?`_plural_${s.toString()}`:r():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?r():this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString()}shouldUseIntlApi(){return!Qo.includes(this.options.compatibilityJSON)}}const Ts=function(a,e,t){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,r=Zo(a,e,t);return!r&&s&&R(t)&&(r=fn(a,t,n),r===void 0&&(r=fn(e,t,n))),r},yn=a=>a.replace(/\$/g,"$$$$");class ti{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ke.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:s,prefix:r,prefixEscaped:i,suffix:l,suffixEscaped:c,formatSeparator:d,unescapeSuffix:u,unescapePrefix:p,nestingPrefix:m,nestingPrefixEscaped:h,nestingSuffix:b,nestingSuffixEscaped:w,nestingOptionsSeparator:C,maxReplaces:y,alwaysFormat:_}=e.interpolation;this.escape=t!==void 0?t:Wo,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=s!==void 0?s:!1,this.prefix=r?Ma(r):i||"{{",this.suffix=l?Ma(l):c||"}}",this.formatSeparator=d||",",this.unescapePrefix=u?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=m?Ma(m):h||Ma("$t("),this.nestingSuffix=b?Ma(b):w||Ma(")"),this.nestingOptionsSeparator=C||",",this.maxReplaces=y||1e3,this.alwaysFormat=_!==void 0?_:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,n)=>t&&t.source===n?(t.lastIndex=0,t):new RegExp(n,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,t,n,s){let r,i,l;const c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},d=h=>{if(h.indexOf(this.formatSeparator)<0){const y=Ts(t,c,h,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(y,void 0,n,{...s,...t,interpolationkey:h}):y}const b=h.split(this.formatSeparator),w=b.shift().trim(),C=b.join(this.formatSeparator).trim();return this.format(Ts(t,c,w,this.options.keySeparator,this.options.ignoreJSONStructure),C,n,{...s,...t,interpolationkey:w})};this.resetRegExp();const u=s&&s.missingInterpolationHandler||this.options.missingInterpolationHandler,p=s&&s.interpolation&&s.interpolation.skipOnVariables!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:h=>yn(h)},{regex:this.regexp,safeValue:h=>this.escapeValue?yn(this.escape(h)):yn(h)}].forEach(h=>{for(l=0;r=h.regex.exec(e);){const b=r[1].trim();if(i=d(b),i===void 0)if(typeof u=="function"){const C=u(e,r,s);i=R(C)?C:""}else if(s&&Object.prototype.hasOwnProperty.call(s,b))i="";else if(p){i=r[0];continue}else this.logger.warn(`missed to pass in variable ${b} for interpolating ${e}`),i="";else!R(i)&&!this.useRawValueToEscape&&(i=fs(i));const w=h.safeValue(i);if(e=e.replace(r[0],w),p?(h.regex.lastIndex+=i.length,h.regex.lastIndex-=r[0].length):h.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),e}nest(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s,r,i;const l=(c,d)=>{const u=this.nestingOptionsSeparator;if(c.indexOf(u)<0)return c;const p=c.split(new RegExp(`${u}[ ]*{`));let m=`{${p[1]}`;c=p[0],m=this.interpolate(m,i);const h=m.match(/'/g),b=m.match(/"/g);(h&&h.length%2===0&&!b||b.length%2!==0)&&(m=m.replace(/'/g,'"'));try{i=JSON.parse(m),d&&(i={...d,...i})}catch(w){return this.logger.warn(`failed parsing options string in nesting for key ${c}`,w),`${c}${u}${m}`}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,c};for(;s=this.nestingRegexp.exec(e);){let c=[];i={...n},i=i.replace&&!R(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;let d=!1;if(s[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(s[1])){const u=s[1].split(this.formatSeparator).map(p=>p.trim());s[1]=u.shift(),c=u,d=!0}if(r=t(l.call(this,s[1].trim(),i),i),r&&s[0]===e&&!R(r))return r;R(r)||(r=fs(r)),r||(this.logger.warn(`missed to resolve ${s[1]} for nesting ${e}`),r=""),d&&(r=c.reduce((u,p)=>this.format(u,p,n.lng,{...n,interpolationkey:s[1].trim()}),r.trim())),e=e.replace(s[0],r),this.regexp.lastIndex=0}return e}}const ni=a=>{let e=a.toLowerCase().trim();const t={};if(a.indexOf("(")>-1){const n=a.split("(");e=n[0].toLowerCase().trim();const s=n[1].substring(0,n[1].length-1);e==="currency"&&s.indexOf(":")<0?t.currency||(t.currency=s.trim()):e==="relativetime"&&s.indexOf(":")<0?t.range||(t.range=s.trim()):s.split(";").forEach(i=>{if(i){const[l,...c]=i.split(":"),d=c.join(":").trim().replace(/^'+|'+$/g,""),u=l.trim();t[u]||(t[u]=d),d==="false"&&(t[u]=!1),d==="true"&&(t[u]=!0),isNaN(d)||(t[u]=parseInt(d,10))}})}return{formatName:e,formatOptions:t}},Ba=a=>{const e={};return(t,n,s)=>{let r=s;s&&s.interpolationkey&&s.formatParams&&s.formatParams[s.interpolationkey]&&s[s.interpolationkey]&&(r={...r,[s.interpolationkey]:void 0});const i=n+JSON.stringify(r);let l=e[i];return l||(l=a(It(n),s),e[i]=l),l(t)}};class si{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ke.create("formatter"),this.options=e,this.formats={number:Ba((t,n)=>{const s=new Intl.NumberFormat(t,{...n});return r=>s.format(r)}),currency:Ba((t,n)=>{const s=new Intl.NumberFormat(t,{...n,style:"currency"});return r=>s.format(r)}),datetime:Ba((t,n)=>{const s=new Intl.DateTimeFormat(t,{...n});return r=>s.format(r)}),relativetime:Ba((t,n)=>{const s=new Intl.RelativeTimeFormat(t,{...n});return r=>s.format(r,n.range||"day")}),list:Ba((t,n)=>{const s=new Intl.ListFormat(t,{...n});return r=>s.format(r)})},this.init(e)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Ba(t)}format(e,t,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const r=t.split(this.formatSeparator);if(r.length>1&&r[0].indexOf("(")>1&&r[0].indexOf(")")<0&&r.find(l=>l.indexOf(")")>-1)){const l=r.findIndex(c=>c.indexOf(")")>-1);r[0]=[r[0],...r.splice(1,l)].join(this.formatSeparator)}return r.reduce((l,c)=>{const{formatName:d,formatOptions:u}=ni(c);if(this.formats[d]){let p=l;try{const m=s&&s.formatParams&&s.formatParams[s.interpolationkey]||{},h=m.locale||m.lng||s.locale||s.lng||n;p=this.formats[d](l,h,{...u,...s,...m})}catch(m){this.logger.warn(m)}return p}else this.logger.warn(`there was no format function for ${d}`);return l},e)}}const ri=(a,e)=>{a.pending[e]!==void 0&&(delete a.pending[e],a.pendingCount--)};class oi extends Pt{constructor(e,t,n){let s=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=s,this.logger=Ke.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=s.maxParallelReads||10,this.readingCalls=0,this.maxRetries=s.maxRetries>=0?s.maxRetries:5,this.retryTimeout=s.retryTimeout>=1?s.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(n,s.backend,s)}queueLoad(e,t,n,s){const r={},i={},l={},c={};return e.forEach(d=>{let u=!0;t.forEach(p=>{const m=`${d}|${p}`;!n.reload&&this.store.hasResourceBundle(d,p)?this.state[m]=2:this.state[m]<0||(this.state[m]===1?i[m]===void 0&&(i[m]=!0):(this.state[m]=1,u=!1,i[m]===void 0&&(i[m]=!0),r[m]===void 0&&(r[m]=!0),c[p]===void 0&&(c[p]=!0)))}),u||(l[d]=!0)}),(Object.keys(r).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:s}),{toLoad:Object.keys(r),pending:Object.keys(i),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(c)}}loaded(e,t,n){const s=e.split("|"),r=s[0],i=s[1];t&&this.emit("failedLoading",r,i,t),!t&&n&&this.store.addResourceBundle(r,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(c=>{Vo(c.loaded,[r],i),ri(c,e),t&&c.errors.push(t),c.pendingCount===0&&!c.done&&(Object.keys(c.loaded).forEach(d=>{l[d]||(l[d]={});const u=c.loaded[d];u.length&&u.forEach(p=>{l[d][p]===void 0&&(l[d][p]=!0)})}),c.done=!0,c.errors.length?c.callback(c.errors):c.callback())}),this.emit("loaded",l),this.queue=this.queue.filter(c=>!c.done)}read(e,t,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,r=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:s,wait:r,callback:i});return}this.readingCalls++;const l=(d,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(d&&u&&s<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,n,s+1,r*2,i)},r);return}i(d,u)},c=this.backend[n].bind(this.backend);if(c.length===2){try{const d=c(e,t);d&&typeof d.then=="function"?d.then(u=>l(null,u)).catch(l):l(null,d)}catch(d){l(d)}return}return c(e,t,l)}prepareLoading(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s=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."),s&&s();R(e)&&(e=this.languageUtils.toResolveHierarchy(e)),R(t)&&(t=[t]);const r=this.queueLoad(e,t,n,s);if(!r.toLoad.length)return r.pending.length||s(),null;r.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("|"),s=n[0],r=n[1];this.read(s,r,"read",void 0,void 0,(i,l)=>{i&&this.logger.warn(`${t}loading namespace ${r} for language ${s} failed`,i),!i&&l&&this.logger.log(`${t}loaded namespace ${r} for language ${s}`,l),this.loaded(e,i,l)})}saveMissing(e,t,n,s,r){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 c={...i,isUpdate:r},d=this.backend.create.bind(this.backend);if(d.length<6)try{let u;d.length===5?u=d(e,t,n,s,c):u=d(e,t,n,s),u&&typeof u.then=="function"?u.then(p=>l(null,p)).catch(l):l(null,u)}catch(u){l(u)}else d(e,t,n,s,l,c)}!e||!e[0]||this.store.addResource(e[0],t,n,s)}}}const Is=()=>({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]),R(a[1])&&(e.defaultValue=a[1]),R(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}}),As=a=>(R(a.ns)&&(a.ns=[a.ns]),R(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),R(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs&&a.supportedLngs.indexOf("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),a),Dt=()=>{},ii=a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(t=>{typeof a[t]=="function"&&(a[t]=a[t].bind(a))})};class Ya extends Pt{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=As(e),this.services={},this.logger=Ke,this.modules={external:[]},ii(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&&(R(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const s=Is();this.options={...s,...this.options,...As(t)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...s.interpolation,...this.options.interpolation}),t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator);const r=u=>u?typeof u=="function"?new u:u:null;if(!this.options.isClone){this.modules.logger?Ke.init(r(this.modules.logger),this.options):Ke.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=si);const p=new ks(this.options);this.store=new Cs(this.options.resources,this.options);const m=this.services;m.logger=Ke,m.resourceStore=this.store,m.languageUtils=p,m.pluralResolver=new ai(p,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),u&&(!this.options.interpolation.format||this.options.interpolation.format===s.interpolation.format)&&(m.formatter=r(u),m.formatter.init(m,this.options),this.options.interpolation.format=m.formatter.format.bind(m.formatter)),m.interpolator=new ti(this.options),m.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},m.backendConnector=new oi(r(this.modules.backend),m.resourceStore,m,this.options),m.backendConnector.on("*",function(h){for(var b=arguments.length,w=new Array(b>1?b-1:0),C=1;C<b;C++)w[C-1]=arguments[C];e.emit(h,...w)}),this.modules.languageDetector&&(m.languageDetector=r(this.modules.languageDetector),m.languageDetector.init&&m.languageDetector.init(m,this.options.detection,this.options)),this.modules.i18nFormat&&(m.i18nFormat=r(this.modules.i18nFormat),m.i18nFormat.init&&m.i18nFormat.init(this)),this.translator=new xt(this.services,this.options),this.translator.on("*",function(h){for(var b=arguments.length,w=new Array(b>1?b-1:0),C=1;C<b;C++)w[C-1]=arguments[C];e.emit(h,...w)}),this.modules.external.forEach(h=>{h.init&&h.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Dt),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 c=Ha(),d=()=>{const u=(p,m)=>{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),c.resolve(m),n(p,m)};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?d():setTimeout(d,0),c}loadResources(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Dt;const s=R(e)?e:this.language;if(typeof e=="function"&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(s&&s.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return n();const r=[],i=l=>{if(!l||l==="cimode")return;this.services.languageUtils.toResolveHierarchy(l).forEach(d=>{d!=="cimode"&&r.indexOf(d)<0&&r.push(d)})};s?i(s):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(c=>i(c)),this.options.preload&&this.options.preload.forEach(l=>i(l)),this.services.backendConnector.load(r,this.options.ns,l=>{!l&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(l)})}else n(null)}reloadResources(e,t,n){const s=Ha();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=Dt),this.services.backendConnector.reload(e,t,r=>{s.resolve(),n(r)}),s}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"&&Ns.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 s=Ha();this.emit("languageChanging",e);const r=c=>{this.language=c,this.languages=this.services.languageUtils.toResolveHierarchy(c),this.resolvedLanguage=void 0,this.setResolvedLanguage(c)},i=(c,d)=>{d?(r(d),this.translator.changeLanguage(d),this.isLanguageChangingTo=void 0,this.emit("languageChanged",d),this.logger.log("languageChanged",d)):this.isLanguageChangingTo=void 0,s.resolve(function(){return n.t(...arguments)}),t&&t(c,function(){return n.t(...arguments)})},l=c=>{!e&&!c&&this.services.languageDetector&&(c=[]);const d=R(c)?c:this.services.languageUtils.getBestMatchFromCodes(c);d&&(this.language||r(d),this.translator.language||this.translator.changeLanguage(d),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(d)),this.loadResources(d,u=>{i(u,d)})};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),s}getFixedT(e,t,n){var s=this;const r=function(i,l){let c;if(typeof l!="object"){for(var d=arguments.length,u=new Array(d>2?d-2:0),p=2;p<d;p++)u[p-2]=arguments[p];c=s.options.overloadTranslationOptionHandler([i,l].concat(u))}else c={...l};c.lng=c.lng||r.lng,c.lngs=c.lngs||r.lngs,c.ns=c.ns||r.ns,c.keyPrefix!==""&&(c.keyPrefix=c.keyPrefix||n||r.keyPrefix);const m=s.options.keySeparator||".";let h;return c.keyPrefix&&Array.isArray(i)?h=i.map(b=>`${c.keyPrefix}${m}${b}`):h=c.keyPrefix?`${c.keyPrefix}${m}${i}`:i,s.t(h,c)};return R(e)?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}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],s=this.options?this.options.fallbackLng:!1,r=this.languages[this.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(l,c)=>{const d=this.services.backendConnector.state[`${l}|${c}`];return d===-1||d===0||d===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)&&(!s||i(r,e)))}loadNamespaces(e,t){const n=Ha();return this.options.ns?(R(e)&&(e=[e]),e.forEach(s=>{this.options.ns.indexOf(s)<0&&this.options.ns.push(s)}),this.loadResources(s=>{n.resolve(),t&&t(s)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){const n=Ha();R(e)&&(e=[e]);const s=this.options.preload||[],r=e.filter(i=>s.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return r.length?(this.options.preload=s.concat(r),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 ks(Is());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 Ya(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Dt;const n=e.forkResourceStore;n&&delete e.forkResourceStore;const s={...this.options,...e,isClone:!0},r=new Ya(s);return(e.debug!==void 0||e.prefix!==void 0)&&(r.logger=r.logger.clone(e)),["store","services","language"].forEach(l=>{r[l]=this[l]}),r.services={...this.services},r.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},n&&(r.store=new Cs(this.store.data,s),r.services.resourceStore=r.store),r.translator=new xt(r.services,s),r.translator.on("*",function(l){for(var c=arguments.length,d=new Array(c>1?c-1:0),u=1;u<c;u++)d[u-1]=arguments[u];r.emit(l,...d)}),r.init(s,t),r.translator.options=s,r.translator.backendConnector.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},r}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Le=Ya.createInstance();Le.createInstance=Ya.createInstance;const li=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 di={free:"Free",manage:"Manage",cancel:"Cancel",close:"Close",open:"Open",edit:"Edit",update:"Update",tryAgain:"Try again",save:"Save",upgrade:"Upgrade",downgrade:"Downgrade",billingIntervalLabel:"Billing interval",billedMonthly:"Billed monthly",billedAnnually:"Billed annually",conversationsUnit:"conversations",conversationsPerMonth:"conversations / month",perMonth:"/mo",perYear:"/yr",perMonthLong:"/month",perYearLong:"/year",resourceConversations:"Conversations / month",resourceTableRows:"Table rows",resourceVectorDb:"Vector DB storage",resourceFileStorage:"File storage",metricConversations:"monthly conversations",metricTableRows:"table rows",metricVectorDb:"vector DB storage",metricFileStorage:"file storage",metricAiSpend:"AI spend",metricBotCount:"agents",usageBannerLimitReached:"You've reached your {label} limit. Upgrade now to avoid interruptions.",usageBannerNearLimit:"You've used {pct}% of your {label}. Upgrade to avoid hitting your limit.",usageBannerDefaultCta:"Upgrade plan",usageBannerManageCta:"Manage plan",usageBannerDismiss:"Dismiss",planBannerEyebrow:"Current plan",planBannerManagedTitle:"Managed in Dashboard",planBannerManagedSub:"This workspace uses an earlier billing system.",planBannerNoPlan:"No plan",planBannerCustomPricing:"Custom pricing",planBannerCustomConversations:"Custom conversations",planBannerCustom:"Custom",planBannerInclAddons:"· incl. add-ons",planBannerRenews:"Renews {date}",planBannerDowngradesTo:"Downgrades to {plan} on {date}",planBannerManageCta:"Manage plan",checkoutTitle:"Configure your plan",checkoutBackLabel:"Back to plans",checkoutPlanDetails:"Plan details",checkoutMonthlyBilling:"Monthly billing",checkoutAnnualBilling:"Annual billing",checkoutSaveBadge:"Save {savings}%",checkoutPaymentMethodTitle:"Payment method",checkoutSavedCardTab:"Saved",checkoutNewCardTab:"New card",checkoutBillingAddressTitle:"Billing address",checkoutCancelEdit:"Cancel",checkoutUpdateAddress:"Update",checkoutIsBusiness:"I'm purchasing as business",checkoutBusinessDetails:"Business details",checkoutBusinessNamePlaceholder:"Business name",checkoutTaxIdTypeLabel:"Tax ID type",checkoutTaxIdNumberPlaceholder:"Tax ID number",checkoutNoTaxRequired:"No tax ID is required for your billing country.",checkoutSelectCountryForTax:"Select your billing country above to add a tax ID.",checkoutContactInfo:"Contact information",checkoutEmailLabel:"Email",checkoutCardNotReady:"Card field is not ready",checkoutPaymentSetupFailed:"Payment setup failed",checkoutPaymentMethodMissing:"Could not retrieve payment method",checkoutAddressIncomplete:"Please complete your billing address",checkoutGenericError:"Something went wrong while processing your payment. You have not been charged twice.",checkoutSuccessToast:"Subscription activated",checkoutErrorToast:"Payment error",orderTopFeatures:"Top features",orderThen:"then {price} per {packSize}",orderPreviewError:"We couldn't compute your total. Try again in a moment.",orderPlanFromDate:"{plan} plan — from {date}",orderProratedToday:"Prorated for today",orderProratedTodayDesc:"Switching mid-period, we charge only for the time left in your current billing period. The full plan price above is billed at your next renewal, not today.",orderCreditUnusedTime:"Credit for unused time",orderAdjustUnusedTime:"Adjustment for unused time",orderCreditUnusedTimeDesc:"You already paid for time left in your current billing period. We credit that unused time and re-apply it at your new rate, so you're never double-charged.",orderAdjustUnusedTimeDesc:"Switching mid-cycle means we prorate the difference between your old and new plan for the days remaining in your current billing period.",orderAccountCredit:"Account credit",orderDueToday:"Due today",orderCreditTowardNext:"You have {amount} of unused time credited toward your next invoice.",orderBalanceAsCredit:"Your remaining balance of {amount} is applied as credit on your next invoice.",orderSavingsNote:"You're saving {monthlySavings}/month by choosing an annual plan. That's {yearlySavings}/year.",orderSubscribe:"Subscribe",orderPreviewUnavailable:"Preview unavailable",orderIntervalAnnual:"annual",orderIntervalMonthly:"monthly",orderRenewsMonthly:"Renews monthly until cancelled.",orderRenewsAnnually:"Renews annually until cancelled.",orderChargedStarting:"You'll be charged {amount}{period} starting {date}.",orderChargedNoDate:"You'll be charged {amount}{period}.",orderCancelNote:"Cancel anytime in Settings. By subscribing, you authorize Botpress to store and charge your payment method.",invoicesTitle:"Billing history",invoicesLoadError:"We couldn't load your invoices. Try again in a moment.",invoicesEmpty:"No invoices yet. They'll appear here after your first charge.",invoicesDownloadLabel:"Download invoice from {date}",invoiceStatusPaid:"Paid",invoiceStatusDue:"Due",invoiceStatusDraft:"Draft",invoiceStatusUnpaid:"Unpaid",invoiceStatusVoid:"Void",upgradeDialogTitle:"Upgrade your plan",upgradeMonthly:"Monthly",upgradeAnnual:"Annual",upgradeSaveBadge:"Save {savings}%",upgradeRecommended:"Recommended",upgradePerMonthSuffix:"/ month ({currency})",upgradeNoTopup:"No top-up",upgradeCurrentPlan:"Your current plan",upgradeNextPlan:"Next plan",upgradeCancelDowngrade:"Cancel downgrade",upgradeDowngrade:"Downgrade",upgradeSwitchToAnnual:"Switch to annual",upgradeSwitchToMonthly:"Switch to monthly",upgradePlanManaged:"Your plan is managed by Botpress — contact us to change it",upgradeUpgrade:"Upgrade",upgradeEverythingIn:"Everything in {planName}",upgradeContactUs:"Contact us",upgradeFooterEnterprise:"Need more, or running at scale?",upgradeFooterAboutEnterprise:"about Enterprise. Compare plans at",upgradeThenPer:"then {price} per {packSize} more",upgradeDowngradeSuccess:"Plan downgraded",upgradeDowngradeError:"Downgrade failed",upgradeCancelDowngradeSuccess:"Scheduled downgrade canceled",upgradeCancelDowngradeError:"Could not cancel the downgrade",addonsDialogTitle:"Manage add-ons",addonsSubtitleWithPlan:"Additional usage for your {planName} plan. Set a quantity to 0 to remove an add-on.",addonsSubtitleGeneric:"Additional usage for your plan. Set a quantity to 0 to remove an add-on.",addonsRequirePaidPlanTitle:"Add-ons require a paid plan",addonsRequirePaidPlanBody:"Upgrade your plan to unlock extra conversations, storage, and more.",addonsUpgradeCta:"Upgrade plan",addonsEach:"each",addonActiveOnly:"{count} active",addonRemovedNextCycle:"{activeNow} active now · removed next cycle",addonRemovedOnDate:"{activeNow} active now · removed {date}",addonChangedNextCycle:"{activeNow} active now · {pending} next cycle",addonChangedOnDate:"{activeNow} active now · {pending} from {date}",addonsNewLimits:"Your new limits",addonsPlanLine:"{planName} plan",addonsGenericPlan:"Plan",addonsTotalMonthly:"Total monthly cost",addonsTotalYearly:"Total yearly cost",addonsDueToday:"Due today",addonsChargedNow:"You'll be charged {amount} now for the rest of this billing period. ",addonsNoChargeToday:"No charge today — the change is prorated. ",addonsRenewalWithDate:"Add-ons stay active until you remove them and renew with your plan on {date}, when you'll be billed {amount}{interval} for them.",addonsRenewalNoDate:"Add-ons stay active until you remove them and renew with your plan, when you'll be billed {amount}{interval} for them.",addonsReadonlyNote:"Add-ons for this workspace are managed by Botpress — contact us to change them.",addonsUpdateSuccess:"Subscription updated",addonsUpdateError:"Could not update your add-ons",addonsUpdateSubscription:"Update subscription",addonsConvos:"{n} convos",outdatedTitle:"Billing is managed in the Botpress Dashboard",outdatedText:"This workspace is on an earlier billing system, so plan changes and payment details can't be managed here.",outdatedCta:"Open billing in Dashboard",outgrowTitle:"You're about to outgrow the Free plan",outgrowLede:"Free includes <bold>{quota}</bold> conversations total, and they don't renew. Upgrading moves you to a monthly allowance, unlocks more channels, and adds conversation packs, so your agents never stop replying.",outgrowSoFar:"So far",outgrowUsageText:"<bold>{used}</bold> of <bold>{quota}</bold> free conversations used · they don't renew",outgrowNoTopup:"No top-up",outgrowUpgradeTo:"Upgrade to {planName}",outgrowEverythingIn:"Everything in {planName}, and",outgrowNeedCustom:"Need custom volume, SLAs, or voice?",outgrowTalkToSales:"Talk to sales",outgrowCompareAll:"Compare all plans",outgrowThenPer:"then {symbol}{amount} per {packSize} more",paymentDialogTitle:"Payment & billing",paymentSessionError:"We couldn't start a secure session.",paymentMethodSection:"Payment method",paymentCardSaveError:"Could not save your card",paymentMethodMissing:"Could not retrieve payment method",paymentCardGenericError:"We couldn't save your card. Please check your details and try again.",paymentReplace:"Replace",paymentBillingAddressSection:"Billing address",paymentTaxIds:"Tax IDs",paymentTaxEmpty:"Add a VAT or tax registration number to show it on your invoices.",paymentTaxIdType:"Tax ID type",paymentTaxSelectType:"Select type",paymentTaxIdNumber:"Tax ID number",paymentTaxRemove:"Remove tax ID",paymentTaxAdd:"+ Add tax ID",paymentAddressIncomplete:"Please complete your billing address.",paymentAddressError:"Could not update your billing details.",paymentCardUpdated:"Card updated",paymentDetailsUpdated:"Billing details updated",paymentSaveCard:"Save card",paymentSaveBillingDetails:"Save billing details",paymentDetailsUpdateError:"Could not update your billing details",usageWidgetLimitReached:"Limit reached",usageWidgetRunningLow:"Running low",usageWidgetUpgradeToKeepGoing:"Upgrade to keep going.",usageWidgetOnlyLeft:"Only {left} left.",usageWidgetFreeExhausted:"All your free conversations are used, and they don't renew.",usageWidgetFreeLeft:"{left} free conversations left, and they don't renew.",usageWidgetEnterpriseOverQuota:"A Botpress representative will contact you at the end of the usage period.",usageWidgetResets:"Resets {date}",usageWidgetViewOptions:"View plan options",usagePopoverFreeTitle:"Free plan usage",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> included, total. They do not renew, and Free has no top-ups.",usagePopoverPlanName:"{planName} plan",usagePopoverTitle:"Usage this period",usagePopoverNudgeText:"<bold>Need more room?</bold> Plus includes 250 conversations a month, unlimited AI agents, and packs of 100 when you need them.",usagePopoverNudgeCta:"See what you get with Plus",dashboardUsage:"Usage",dashboardBillingPeriod:"Billing period",dashboardPrevMonth:"Previous month",dashboardNextMonth:"Next month",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Each conversation includes AI usage. When you reach your limit, extra conversations are added automatically so service continues.",dashboardStorageTitle:"Storage",dashboardStorageHint:"Shared across files, knowledge base, and tables.",dashboardAiTitle:"AI usage",dashboardAiHint:"Each conversation includes an allowance of AI usage. Track how much of that allowance you've used",dashboardEnterpriseUsageNotice:"Your usage will not be blocked if you go over quota.",dashboardLoadError:"We couldn't load your usage. Try again in a moment.",dashboardNoBotSpend:"No per-bot AI spend this period.",dashboardAiByBot:"AI spend by bot",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Table rows",dashboardVectorDb:"Vector DB storage",dashboardFileStorage:"File storage",dashboardAiSpend:"AI spend",dashboardFromPlan:"{amount} from {planName} plan",dashboardFromPlanGeneric:"{amount} from your plan",dashboardFromPlanWithAddons:"{amount} from {planName} plan + {addonAmount} from add-ons",dashboardFromPlanGenericWithAddons:"{amount} from your plan + {addonAmount} from add-ons",dashboardIncreaseLimits:"Increase limits",planFeatureAiUsageIncluded:"AI usage included",planFeature3Seats:"3 seats",planFeature3AiAgents:"3 AI agents",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Help center",planFeature1kTableRows:"1K table rows",planFeature100kTableRows:"100K table rows",planFeature500kTableRows:"500K table rows",planFeature100mbFileStorage:"100MB file storage",planFeature10gbFileStorage:"10GB file storage",planFeature50gbFileStorage:"50GB file storage",planFeature100mbVectorDb:"100MB vector DB storage",planFeature1gbVectorDb:"1GB vector DB storage",planFeature5gbVectorDb:"5GB vector DB storage",planFeatureCommunitySupport:"Community support",planFeatureUnlimitedAiAgents:"Unlimited AI agents",planFeatureWhatsappChannel:"WhatsApp channel",planFeatureHelpCenterCustomDomain:"Help Center custom domain",planFeatureWhitelabelWebchat:"Whitelabel webchat",planFeatureTechnicalSupportLiveChat:"Technical support via live chat",planFeatureUnlimitedSeats:"Unlimited seats",planFeatureTeamsRoutingRbac:"Teams, routing & RBAC",planFeatureTeamLevelAnalytics:"Team-level analytics",planFeatureVoiceChannel:"Voice channel",planFeatureDedicatedSupport:"Dedicated support",planFeatureSlaSecurity:"SLA & security review",planFeatureCustomStorage:"Custom storage",planFeatureDescAiUsageIncluded:"A monthly allowance of AI model spend is bundled into every plan — no separate AI bill.",planFeatureDesc3Seats:"Up to 3 team members can collaborate in this workspace.",planFeatureDescUnlimitedSeats:"Invite as many team members to the workspace as you need.",planFeatureDesc3AiAgents:"Build and publish up to 3 distinct AI agents.",planFeatureDescUnlimitedAiAgents:"Build and publish as many AI agents as you need.",planFeatureDescBotpressDesk:"The human-handoff inbox where agents triage and reply to live conversations.",planFeatureDescBotpressStudioAdk:"The visual Studio builder plus the Agent Development Kit for building agents in code.",planFeatureDescHelpCenter:"A hosted knowledge base your agent answers from and customers can browse.",planFeatureDescHelpCenterCustomDomain:"Serve your help center from your own domain instead of a Botpress URL.",planFeatureDescWhatsappChannel:"Connect your agent to WhatsApp to chat with customers there.",planFeatureDescVoiceChannel:"Connect your agent to phone/voice so it can handle spoken conversations.",planFeatureDescWhitelabelWebchat:"Remove Botpress branding from the web chat widget so it's fully your own.",planFeatureDescTeamsRoutingRbac:"Organize members into teams, route conversations between them, and control access by role.",planFeatureDescTeamLevelAnalytics:"Performance and volume metrics broken down per team.",planFeatureDescTechnicalSupportLiveChat:"Reach the Botpress support team over live chat for help.",planFeatureDescCommunitySupport:"Get help from the Botpress community forum and Discord.",planFeatureDescDedicatedSupport:"A named contact and priority support channel for your account.",planFeatureDescSlaSecurity:"A contractual uptime SLA and a security/compliance review for your procurement.",planFeatureDescCustomStorage:"Storage limits tailored to your workload, beyond the standard tiers.",planFeatureDesc1kTableRows:"1K rows across all your data tables.",planFeatureDesc100kTableRows:"100K rows across all your data tables.",planFeatureDesc500kTableRows:"500K rows across all your data tables.",planFeatureDesc100mbFileStorage:"100MB of uploaded files (documents, images, attachments).",planFeatureDesc10gbFileStorage:"10GB of uploaded files (documents, images, attachments).",planFeatureDesc50gbFileStorage:"50GB of uploaded files (documents, images, attachments).",planFeatureDesc100mbVectorDb:"100MB of embeddings for knowledge-base search and retrieval.",planFeatureDesc1gbVectorDb:"1GB of embeddings for knowledge-base search and retrieval.",planFeatureDesc5gbVectorDb:"5GB of embeddings for knowledge-base search and retrieval.",planDescriptionCommunity:"Free plan for trying things out",planDescriptionPlus:"For growing businesses",planDescriptionTeam:"For small teams",planDescriptionEnterprise:"Enterprise license subscription",planDescriptionManaged:"Managed license subscription",addonNameConversationSessions:"Conversations",addonNameStorage:"Storage",addonDescriptionConversationSessions:"Adds conversation sessions for the month",addonDescriptionStorage:"Adds table rows, vector DB space and files",summaryCurrentPlan:"Current plan",summaryManagedInDashboard:"Managed in Dashboard",summaryManagedMeta:"This workspace uses an earlier billing system.",summaryNoPlan:"No plan",summaryConversationsPerMo:"{n} conversations/mo",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} active add-on",summaryActiveAddons:"{count} active add-ons",summaryNoAddons:"No add-ons",summaryNoAddonsMeta:"Add extra conversations or storage"},ci={free:"Gratuit",manage:"Gérer",cancel:"Annuler",close:"Fermer",open:"Ouvrir",edit:"Modifier",update:"Mettre à jour",tryAgain:"Réessayer",save:"Enregistrer",upgrade:"Mettre à niveau",downgrade:"Rétrograder",billingIntervalLabel:"Intervalle de facturation",billedMonthly:"Facturé mensuellement",billedAnnually:"Facturé annuellement",conversationsUnit:"conversations",conversationsPerMonth:"conversations / mois",perMonth:"/mois",perYear:"/an",perMonthLong:"/mois",perYearLong:"/an",resourceConversations:"Conversations / mois",resourceTableRows:"Lignes de table",resourceVectorDb:"Stockage vectoriel",resourceFileStorage:"Stockage de fichiers",metricConversations:"conversations mensuelles",metricTableRows:"lignes de table",metricVectorDb:"stockage vectoriel",metricFileStorage:"stockage de fichiers",metricAiSpend:"dépenses IA",metricBotCount:"agents",usageBannerLimitReached:"Vous avez atteint votre limite de {label}. Mettez à niveau maintenant pour éviter les interruptions.",usageBannerNearLimit:"Vous avez utilisé {pct}% de votre {label}. Mettez à niveau pour éviter d'atteindre votre limite.",usageBannerDefaultCta:"Mettre à niveau",usageBannerManageCta:"Gérer le plan",usageBannerDismiss:"Ignorer",planBannerEyebrow:"Plan actuel",planBannerManagedTitle:"Géré dans le tableau de bord",planBannerManagedSub:"Cet espace de travail utilise un système de facturation antérieur.",planBannerNoPlan:"Aucun plan",planBannerCustomPricing:"Tarification personnalisée",planBannerCustomConversations:"Conversations personnalisées",planBannerCustom:"Personnalisé",planBannerInclAddons:"· add-ons inclus",planBannerRenews:"Renouvellement le {date}",planBannerDowngradesTo:"Passe à {plan} le {date}",planBannerManageCta:"Gérer le plan",checkoutTitle:"Configurer votre plan",checkoutBackLabel:"Retour aux plans",checkoutPlanDetails:"Détails du plan",checkoutMonthlyBilling:"Facturation mensuelle",checkoutAnnualBilling:"Facturation annuelle",checkoutSaveBadge:"Économisez {savings}%",checkoutPaymentMethodTitle:"Moyen de paiement",checkoutSavedCardTab:"Enregistrée",checkoutNewCardTab:"Nouvelle carte",checkoutBillingAddressTitle:"Adresse de facturation",checkoutCancelEdit:"Annuler",checkoutUpdateAddress:"Mettre à jour",checkoutIsBusiness:"J'achète en tant qu'entreprise",checkoutBusinessDetails:"Informations d'entreprise",checkoutBusinessNamePlaceholder:"Nom de l'entreprise",checkoutTaxIdTypeLabel:"Type d'identifiant fiscal",checkoutTaxIdNumberPlaceholder:"Numéro d'identifiant fiscal",checkoutNoTaxRequired:"Aucun identifiant fiscal n'est requis pour votre pays de facturation.",checkoutSelectCountryForTax:"Sélectionnez votre pays de facturation ci-dessus pour ajouter un identifiant fiscal.",checkoutContactInfo:"Coordonnées",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"Le champ de carte n'est pas prêt",checkoutPaymentSetupFailed:"Échec de la configuration du paiement",checkoutPaymentMethodMissing:"Impossible de récupérer le moyen de paiement",checkoutAddressIncomplete:"Veuillez compléter votre adresse de facturation",checkoutGenericError:"Une erreur s'est produite lors du traitement de votre paiement. Vous n'avez pas été débité deux fois.",checkoutSuccessToast:"Abonnement activé",checkoutErrorToast:"Erreur de paiement",orderTopFeatures:"Fonctionnalités principales",orderThen:"puis {price} par {packSize}",orderPreviewError:"Impossible de calculer votre total. Réessayez dans un instant.",orderPlanFromDate:"Plan {plan} — à partir du {date}",orderProratedToday:"Calculé au prorata d'aujourd'hui",orderProratedTodayDesc:"En changeant de plan en milieu de période, vous ne payez que pour le temps restant dans votre période de facturation actuelle. Le prix total du plan ci-dessus est facturé à votre prochain renouvellement, pas aujourd'hui.",orderCreditUnusedTime:"Crédit pour le temps non utilisé",orderAdjustUnusedTime:"Ajustement pour le temps non utilisé",orderCreditUnusedTimeDesc:"Vous avez déjà payé pour le temps restant dans votre période de facturation actuelle. Nous créditons ce temps non utilisé et le réappliquons à votre nouveau tarif, afin que vous ne soyez jamais facturé deux fois.",orderAdjustUnusedTimeDesc:"Le changement en milieu de cycle signifie que nous calculons au prorata la différence entre votre ancien et votre nouveau plan pour les jours restants dans votre période de facturation actuelle.",orderAccountCredit:"Crédit de compte",orderDueToday:"À payer aujourd'hui",orderCreditTowardNext:"Vous avez {amount} de temps non utilisé crédité sur votre prochaine facture.",orderBalanceAsCredit:"Votre solde restant de {amount} est appliqué comme crédit sur votre prochaine facture.",orderSavingsNote:"Vous économisez {monthlySavings}/mois en choisissant un plan annuel. C'est {yearlySavings}/an.",orderSubscribe:"S'abonner",orderPreviewUnavailable:"Aperçu indisponible",orderIntervalAnnual:"annuellement",orderIntervalMonthly:"mensuellement",orderRenewsMonthly:"Renouvellement mensuel jusqu'à annulation.",orderRenewsAnnually:"Renouvellement annuel jusqu'à annulation.",orderChargedStarting:"Vous serez facturé {amount}{period} à partir du {date}.",orderChargedNoDate:"Vous serez facturé {amount}{period}.",orderCancelNote:"Annulez à tout moment dans les paramètres. En vous abonnant, vous autorisez Botpress à stocker et à débiter votre moyen de paiement.",invoicesTitle:"Historique de facturation",invoicesLoadError:"Impossible de charger vos factures. Réessayez dans un instant.",invoicesEmpty:"Aucune facture pour l'instant. Elles apparaîtront ici après votre première facturation.",invoicesDownloadLabel:"Télécharger la facture du {date}",invoiceStatusPaid:"Payée",invoiceStatusDue:"À payer",invoiceStatusDraft:"Brouillon",invoiceStatusUnpaid:"Impayée",invoiceStatusVoid:"Annulée",upgradeDialogTitle:"Mettre à niveau votre plan",upgradeMonthly:"Mensuel",upgradeAnnual:"Annuel",upgradeSaveBadge:"Économisez {savings}%",upgradeRecommended:"Recommandé",upgradePerMonthSuffix:"/ mois ({currency})",upgradeNoTopup:"Aucun forfait supplémentaire",upgradeCurrentPlan:"Votre plan actuel",upgradeNextPlan:"Prochain plan",upgradeCancelDowngrade:"Annuler la rétrogradation",upgradeDowngrade:"Rétrograder",upgradeSwitchToAnnual:"Passer à l'annuel",upgradeSwitchToMonthly:"Passer au mensuel",upgradePlanManaged:"Votre plan est géré par Botpress — contactez-nous pour le modifier",upgradeUpgrade:"Mettre à niveau",upgradeEverythingIn:"Tout ce qui est dans {planName}",upgradeContactUs:"Nous contacter",upgradeFooterEnterprise:"Besoin de plus, ou à grande échelle ?",upgradeFooterAboutEnterprise:"pour l'entreprise. Comparez les plans sur",upgradeThenPer:"puis {price} par {packSize} supplémentaires",upgradeDowngradeSuccess:"Plan rétrogradé",upgradeDowngradeError:"Échec de la rétrogradation",upgradeCancelDowngradeSuccess:"Rétrogradation planifiée annulée",upgradeCancelDowngradeError:"Impossible d'annuler la rétrogradation",addonsDialogTitle:"Gérer les add-ons",addonsSubtitleWithPlan:"Utilisation supplémentaire pour votre plan {planName}. Définissez une quantité à 0 pour supprimer un add-on.",addonsSubtitleGeneric:"Utilisation supplémentaire pour votre plan. Définissez une quantité à 0 pour supprimer un add-on.",addonsRequirePaidPlanTitle:"Les add-ons nécessitent un plan payant",addonsRequirePaidPlanBody:"Mettez à niveau votre plan pour débloquer des conversations, du stockage et plus encore.",addonsUpgradeCta:"Mettre à niveau le plan",addonsEach:"chacun",addonActiveOnly:"{count} actif",addonRemovedNextCycle:"{activeNow} actif maintenant · supprimé au prochain cycle",addonRemovedOnDate:"{activeNow} actif maintenant · supprimé le {date}",addonChangedNextCycle:"{activeNow} actif maintenant · {pending} au prochain cycle",addonChangedOnDate:"{activeNow} actif maintenant · {pending} à partir du {date}",addonsNewLimits:"Vos nouvelles limites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Coût mensuel total",addonsTotalYearly:"Coût annuel total",addonsDueToday:"À payer aujourd'hui",addonsChargedNow:"Vous serez facturé {amount} maintenant pour le reste de cette période de facturation. ",addonsNoChargeToday:"Aucun frais aujourd'hui — la modification est calculée au prorata. ",addonsRenewalWithDate:"Les add-ons restent actifs jusqu'à ce que vous les supprimiez et renouveliez votre plan le {date}, date à laquelle vous serez facturé {amount}{interval} pour ceux-ci.",addonsRenewalNoDate:"Les add-ons restent actifs jusqu'à ce que vous les supprimiez et renouveliez votre plan, date à laquelle vous serez facturé {amount}{interval} pour ceux-ci.",addonsReadonlyNote:"Les add-ons de cet espace de travail sont gérés par Botpress — contactez-nous pour les modifier.",addonsUpdateSuccess:"Abonnement mis à jour",addonsUpdateError:"Impossible de mettre à jour vos add-ons",addonsUpdateSubscription:"Mettre à jour l'abonnement",addonsConvos:"{n} conv.",outdatedTitle:"La facturation est gérée dans le tableau de bord Botpress",outdatedText:"Cet espace de travail utilise un système de facturation antérieur, donc les changements de plan et les informations de paiement ne peuvent pas être gérés ici.",outdatedCta:"Ouvrir la facturation dans le tableau de bord",outgrowTitle:"Vous êtes sur le point de dépasser le plan Gratuit",outgrowLede:"Le plan Gratuit inclut <bold>{quota}</bold> conversations au total, et elles ne se renouvellent pas. La mise à niveau vous donne une allocation mensuelle, débloque plus de canaux et ajoute des packs de conversations, pour que vos agents ne cessent jamais de répondre.",outgrowSoFar:"Jusqu'ici",outgrowUsageText:"<bold>{used}</bold> sur <bold>{quota}</bold> conversations gratuites utilisées · elles ne se renouvellent pas",outgrowNoTopup:"Aucun forfait supplémentaire",outgrowUpgradeTo:"Passer à {planName}",outgrowEverythingIn:"Tout ce qui est dans {planName}, et",outgrowNeedCustom:"Besoin de volume personnalisé, de SLA ou de voix ?",outgrowTalkToSales:"Parlez à nos commerciaux",outgrowCompareAll:"Comparer tous les plans",outgrowThenPer:"puis {symbol}{amount} par {packSize} supplémentaires",paymentDialogTitle:"Paiement et facturation",paymentSessionError:"Impossible de démarrer une session sécurisée.",paymentMethodSection:"Moyen de paiement",paymentCardSaveError:"Impossible d'enregistrer votre carte",paymentMethodMissing:"Impossible de récupérer le moyen de paiement",paymentCardGenericError:"Impossible d'enregistrer votre carte. Veuillez vérifier vos informations et réessayer.",paymentReplace:"Remplacer",paymentBillingAddressSection:"Adresse de facturation",paymentTaxIds:"Identifiants fiscaux",paymentTaxEmpty:"Ajoutez un numéro de TVA ou d'identification fiscale pour qu'il apparaisse sur vos factures.",paymentTaxIdType:"Type d'identifiant fiscal",paymentTaxSelectType:"Sélectionner le type",paymentTaxIdNumber:"Numéro d'identifiant fiscal",paymentTaxRemove:"Supprimer l'identifiant fiscal",paymentTaxAdd:"+ Ajouter un identifiant fiscal",paymentAddressIncomplete:"Veuillez compléter votre adresse de facturation.",paymentAddressError:"Impossible de mettre à jour vos informations de facturation.",paymentCardUpdated:"Carte mise à jour",paymentDetailsUpdated:"Informations de facturation mises à jour",paymentSaveCard:"Enregistrer la carte",paymentSaveBillingDetails:"Enregistrer les informations de facturation",paymentDetailsUpdateError:"Impossible de mettre à jour vos informations de facturation",usageWidgetLimitReached:"Limite atteinte",usageWidgetRunningLow:"Stock faible",usageWidgetUpgradeToKeepGoing:"Mettez à niveau pour continuer.",usageWidgetOnlyLeft:"Plus que {left}.",usageWidgetFreeExhausted:"Toutes vos conversations gratuites sont utilisées et elles ne se renouvellent pas.",usageWidgetFreeLeft:"{left} conversations gratuites restantes, et elles ne se renouvellent pas.",usageWidgetEnterpriseOverQuota:"Un représentant Botpress vous contactera à la fin de la période d’utilisation.",usageWidgetResets:"Réinitialisation le {date}",usageWidgetViewOptions:"Voir les options de plan",usagePopoverFreeTitle:"Utilisation du plan gratuit",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> incluses, au total. Elles ne se renouvellent pas, et le plan Gratuit n’a pas de recharge.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"Utilisation de cette période",usagePopoverNudgeText:"<bold>Besoin de plus d’espace ?</bold> Plus inclut 250 conversations par mois, des agents IA illimités, et des packs de 100 en cas de besoin.",usagePopoverNudgeCta:"Découvrez ce que Plus vous offre",dashboardUsage:"Utilisation",dashboardBillingPeriod:"Période de facturation",dashboardPrevMonth:"Mois précédent",dashboardNextMonth:"Mois suivant",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Chaque conversation inclut l'utilisation de l'IA. Lorsque vous atteignez votre limite, des conversations supplémentaires sont ajoutées automatiquement pour que le service continue.",dashboardStorageTitle:"Stockage",dashboardStorageHint:"Partagé entre les fichiers, la base de connaissances et les tables.",dashboardAiTitle:"Utilisation de l'IA",dashboardAiHint:"Chaque conversation inclut une allocation d'usage IA. Suivez la part de cette allocation que vous avez utilisée",dashboardEnterpriseUsageNotice:"Votre utilisation ne sera pas bloquée si vous dépassez votre quota.",dashboardLoadError:"Impossible de charger votre utilisation. Réessayez dans un instant.",dashboardNoBotSpend:"Aucune dépense IA par bot pour cette période.",dashboardAiByBot:"Dépenses IA par bot",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Lignes de table",dashboardVectorDb:"Stockage vectoriel",dashboardFileStorage:"Stockage de fichiers",dashboardAiSpend:"Dépenses IA",dashboardFromPlan:"{amount} du plan {planName}",dashboardFromPlanGeneric:"{amount} de votre plan",dashboardFromPlanWithAddons:"{amount} du plan {planName} + {addonAmount} des add-ons",dashboardFromPlanGenericWithAddons:"{amount} de votre plan + {addonAmount} des add-ons",dashboardIncreaseLimits:"Augmenter les limites",planFeatureAiUsageIncluded:"Utilisation de l'IA incluse",planFeature3Seats:"3 postes",planFeature3AiAgents:"3 agents IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Centre d'aide",planFeature1kTableRows:"1K lignes de table",planFeature100kTableRows:"100K lignes de table",planFeature500kTableRows:"500K lignes de table",planFeature100mbFileStorage:"100Mo de stockage de fichiers",planFeature10gbFileStorage:"10Go de stockage de fichiers",planFeature50gbFileStorage:"50Go de stockage de fichiers",planFeature100mbVectorDb:"100Mo de stockage vectoriel",planFeature1gbVectorDb:"1Go de stockage vectoriel",planFeature5gbVectorDb:"5Go de stockage vectoriel",planFeatureCommunitySupport:"Support communautaire",planFeatureUnlimitedAiAgents:"Agents IA illimités",planFeatureWhatsappChannel:"Canal WhatsApp",planFeatureHelpCenterCustomDomain:"Domaine personnalisé du centre d'aide",planFeatureWhitelabelWebchat:"Webchat sans marque",planFeatureTechnicalSupportLiveChat:"Support technique par chat en direct",planFeatureUnlimitedSeats:"Postes illimités",planFeatureTeamsRoutingRbac:"Équipes, routage et RBAC",planFeatureTeamLevelAnalytics:"Analytiques par équipe",planFeatureVoiceChannel:"Canal vocal",planFeatureDedicatedSupport:"Support dédié",planFeatureSlaSecurity:"SLA et audit de sécurité",planFeatureCustomStorage:"Stockage personnalisé",planFeatureDescAiUsageIncluded:"Chaque plan inclut une allocation mensuelle de dépenses en modèles IA — aucune facture IA séparée.",planFeatureDesc3Seats:"Jusqu'à 3 membres de l'équipe peuvent collaborer dans cet espace de travail.",planFeatureDescUnlimitedSeats:"Invitez autant de membres d'équipe que nécessaire dans l'espace de travail.",planFeatureDesc3AiAgents:"Créez et publiez jusqu'à 3 agents IA distincts.",planFeatureDescUnlimitedAiAgents:"Créez et publiez autant d'agents IA que nécessaire.",planFeatureDescBotpressDesk:"La boîte de réception de transfert humain où les agents trient et répondent aux conversations en direct.",planFeatureDescBotpressStudioAdk:"Le constructeur visuel Studio plus le Kit de Développement d'Agents pour créer des agents en code.",planFeatureDescHelpCenter:"Une base de connaissances hébergée depuis laquelle votre agent répond et que les clients peuvent consulter.",planFeatureDescHelpCenterCustomDomain:"Publiez votre centre d'aide depuis votre propre domaine plutôt qu'une URL Botpress.",planFeatureDescWhatsappChannel:"Connectez votre agent à WhatsApp pour discuter avec vos clients là-bas.",planFeatureDescVoiceChannel:"Connectez votre agent au téléphone/vocal pour qu'il puisse gérer les conversations parlées.",planFeatureDescWhitelabelWebchat:"Supprimez la marque Botpress du widget de chat web pour qu'il soit entièrement le vôtre.",planFeatureDescTeamsRoutingRbac:"Organisez les membres en équipes, routez les conversations entre elles et contrôlez l'accès par rôle.",planFeatureDescTeamLevelAnalytics:"Métriques de performance et de volume ventilées par équipe.",planFeatureDescTechnicalSupportLiveChat:"Contactez l'équipe de support Botpress par chat en direct pour obtenir de l'aide.",planFeatureDescCommunitySupport:"Obtenez de l'aide sur le forum communautaire Botpress et Discord.",planFeatureDescDedicatedSupport:"Un contact désigné et un canal de support prioritaire pour votre compte.",planFeatureDescSlaSecurity:"Un SLA de disponibilité contractuel et un audit de sécurité/conformité pour votre processus d'achat.",planFeatureDescCustomStorage:"Limites de stockage adaptées à votre charge de travail, au-delà des niveaux standard.",planFeatureDesc1kTableRows:"1K lignes dans toutes vos tables de données.",planFeatureDesc100kTableRows:"100K lignes dans toutes vos tables de données.",planFeatureDesc500kTableRows:"500K lignes dans toutes vos tables de données.",planFeatureDesc100mbFileStorage:"100Mo de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc10gbFileStorage:"10Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc50gbFileStorage:"50Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc100mbVectorDb:"100Mo d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc1gbVectorDb:"1Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc5gbVectorDb:"5Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planDescriptionCommunity:"Plan gratuit pour essayer",planDescriptionPlus:"Pour les entreprises en croissance",planDescriptionTeam:"Pour les petites équipes",planDescriptionEnterprise:"Abonnement à la licence entreprise",planDescriptionManaged:"Abonnement à la licence gérée",addonNameConversationSessions:"Conversations",addonNameStorage:"Stockage",addonDescriptionConversationSessions:"Ajoute des sessions de conversation pour le mois",addonDescriptionStorage:"Ajoute des lignes de table, de l'espace vectoriel et des fichiers",summaryCurrentPlan:"Plan actuel",summaryManagedInDashboard:"Géré dans le tableau de bord",summaryManagedMeta:"Cet espace de travail utilise un système de facturation antérieur.",summaryNoPlan:"Aucun plan",summaryConversationsPerMo:"{n} conversations/mois",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on actif",summaryActiveAddons:"{count} add-ons actifs",summaryNoAddons:"Aucun add-on",summaryNoAddonsMeta:"Ajoutez des conversations ou du stockage supplémentaires"},ui={free:"Gratis",manage:"Gestionar",cancel:"Cancelar",close:"Cerrar",open:"Abrir",edit:"Editar",update:"Actualizar",tryAgain:"Reintentar",save:"Guardar",upgrade:"Actualizar plan",downgrade:"Reducir plan",billingIntervalLabel:"Intervalo de facturación",billedMonthly:"Facturado mensualmente",billedAnnually:"Facturado anualmente",conversationsUnit:"conversaciones",conversationsPerMonth:"conversaciones / mes",perMonth:"/mes",perYear:"/año",perMonthLong:"/mes",perYearLong:"/año",resourceConversations:"Conversaciones / mes",resourceTableRows:"Filas de tabla",resourceVectorDb:"Almacenamiento vectorial",resourceFileStorage:"Almacenamiento de archivos",metricConversations:"conversaciones mensuales",metricTableRows:"filas de tabla",metricVectorDb:"almacenamiento vectorial",metricFileStorage:"almacenamiento de archivos",metricAiSpend:"gasto en IA",metricBotCount:"agentes",usageBannerLimitReached:"Has alcanzado tu límite de {label}. Actualiza ahora para evitar interrupciones.",usageBannerNearLimit:"Has usado el {pct}% de tu {label}. Actualiza para evitar alcanzar tu límite.",usageBannerDefaultCta:"Actualizar plan",usageBannerManageCta:"Gestionar plan",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plan actual",planBannerManagedTitle:"Gestionado en el Panel",planBannerManagedSub:"Este espacio de trabajo utiliza un sistema de facturación anterior.",planBannerNoPlan:"Sin plan",planBannerCustomPricing:"Precio personalizado",planBannerCustomConversations:"Conversaciones personalizadas",planBannerCustom:"Personalizado",planBannerInclAddons:"· add-ons incluidos",planBannerRenews:"Renovación el {date}",planBannerDowngradesTo:"Cambia a {plan} el {date}",planBannerManageCta:"Gestionar plan",checkoutTitle:"Configura tu plan",checkoutBackLabel:"Volver a los planes",checkoutPlanDetails:"Detalles del plan",checkoutMonthlyBilling:"Facturación mensual",checkoutAnnualBilling:"Facturación anual",checkoutSaveBadge:"Ahorra un {savings}%",checkoutPaymentMethodTitle:"Método de pago",checkoutSavedCardTab:"Guardada",checkoutNewCardTab:"Nueva tarjeta",checkoutBillingAddressTitle:"Dirección de facturación",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Actualizar",checkoutIsBusiness:"Compro como empresa",checkoutBusinessDetails:"Datos de empresa",checkoutBusinessNamePlaceholder:"Nombre de la empresa",checkoutTaxIdTypeLabel:"Tipo de NIF",checkoutTaxIdNumberPlaceholder:"Número de NIF",checkoutNoTaxRequired:"No se requiere NIF para tu país de facturación.",checkoutSelectCountryForTax:"Selecciona tu país de facturación arriba para añadir un NIF.",checkoutContactInfo:"Información de contacto",checkoutEmailLabel:"Correo electrónico",checkoutCardNotReady:"El campo de tarjeta no está listo",checkoutPaymentSetupFailed:"Error al configurar el pago",checkoutPaymentMethodMissing:"No se pudo obtener el método de pago",checkoutAddressIncomplete:"Completa tu dirección de facturación",checkoutGenericError:"Se produjo un error al procesar tu pago. No se te ha cobrado dos veces.",checkoutSuccessToast:"Suscripción activada",checkoutErrorToast:"Error de pago",orderTopFeatures:"Características principales",orderThen:"luego {price} por {packSize}",orderPreviewError:"No pudimos calcular tu total. Inténtalo de nuevo en un momento.",orderPlanFromDate:"Plan {plan} — desde el {date}",orderProratedToday:"Prorrateo de hoy",orderProratedTodayDesc:"Al cambiar de plan a mitad de período, solo pagas por el tiempo restante en tu período de facturación actual. El precio completo del plan se cobra en tu próxima renovación, no hoy.",orderCreditUnusedTime:"Crédito por tiempo no utilizado",orderAdjustUnusedTime:"Ajuste por tiempo no utilizado",orderCreditUnusedTimeDesc:"Ya pagaste por el tiempo restante en tu período de facturación actual. Acreditamos ese tiempo no utilizado y lo reaplicamos a tu nueva tarifa, para que nunca se te cobre dos veces.",orderAdjustUnusedTimeDesc:"Cambiar a mitad de ciclo significa que prorrateamos la diferencia entre tu plan antiguo y el nuevo por los días restantes en tu período de facturación actual.",orderAccountCredit:"Crédito de cuenta",orderDueToday:"A pagar hoy",orderCreditTowardNext:"Tienes {amount} de tiempo no utilizado acreditado en tu próxima factura.",orderBalanceAsCredit:"Tu saldo restante de {amount} se aplica como crédito en tu próxima factura.",orderSavingsNote:"Estás ahorrando {monthlySavings}/mes al elegir un plan anual. Eso es {yearlySavings}/año.",orderSubscribe:"Suscribirse",orderPreviewUnavailable:"Vista previa no disponible",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensualmente",orderRenewsMonthly:"Se renueva mensualmente hasta que canceles.",orderRenewsAnnually:"Se renueva anualmente hasta que canceles.",orderChargedStarting:"Se te cobrará {amount}{period} a partir del {date}.",orderChargedNoDate:"Se te cobrará {amount}{period}.",orderCancelNote:"Cancela en cualquier momento en la Configuración. Al suscribirte, autorizas a Botpress a almacenar y cobrar tu método de pago.",invoicesTitle:"Historial de facturación",invoicesLoadError:"No pudimos cargar tus facturas. Inténtalo de nuevo en un momento.",invoicesEmpty:"Aún no hay facturas. Aparecerán aquí después de tu primer cargo.",invoicesDownloadLabel:"Descargar factura del {date}",invoiceStatusPaid:"Pagada",invoiceStatusDue:"Pendiente",invoiceStatusDraft:"Borrador",invoiceStatusUnpaid:"Impagada",invoiceStatusVoid:"Anulada",upgradeDialogTitle:"Actualizar tu plan",upgradeMonthly:"Mensual",upgradeAnnual:"Anual",upgradeSaveBadge:"Ahorra un {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mes ({currency})",upgradeNoTopup:"Sin recarga",upgradeCurrentPlan:"Tu plan actual",upgradeNextPlan:"Siguiente plan",upgradeCancelDowngrade:"Cancelar reducción",upgradeDowngrade:"Reducir plan",upgradeSwitchToAnnual:"Cambiar a anual",upgradeSwitchToMonthly:"Cambiar a mensual",upgradePlanManaged:"Tu plan está gestionado por Botpress — contáctanos para cambiarlo",upgradeUpgrade:"Actualizar",upgradeEverythingIn:"Todo lo de {planName}",upgradeContactUs:"Contáctanos",upgradeFooterEnterprise:"¿Necesitas más o trabajas a gran escala?",upgradeFooterAboutEnterprise:"para Enterprise. Compara planes en",upgradeThenPer:"luego {price} por {packSize} adicionales",upgradeDowngradeSuccess:"Plan reducido",upgradeDowngradeError:"Error al reducir el plan",upgradeCancelDowngradeSuccess:"Reducción programada cancelada",upgradeCancelDowngradeError:"No se pudo cancelar la reducción",addonsDialogTitle:"Gestionar add-ons",addonsSubtitleWithPlan:"Uso adicional para tu plan {planName}. Establece una cantidad en 0 para eliminar un add-on.",addonsSubtitleGeneric:"Uso adicional para tu plan. Establece una cantidad en 0 para eliminar un add-on.",addonsRequirePaidPlanTitle:"Los add-ons requieren un plan de pago",addonsRequirePaidPlanBody:"Actualiza tu plan para desbloquear conversaciones adicionales, almacenamiento y más.",addonsUpgradeCta:"Actualizar plan",addonsEach:"c/u",addonActiveOnly:"{count} activo",addonRemovedNextCycle:"{activeNow} activos ahora · eliminados en el próximo ciclo",addonRemovedOnDate:"{activeNow} activos ahora · eliminados el {date}",addonChangedNextCycle:"{activeNow} activos ahora · {pending} en el próximo ciclo",addonChangedOnDate:"{activeNow} activos ahora · {pending} a partir del {date}",addonsNewLimits:"Tus nuevos límites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Costo mensual total",addonsTotalYearly:"Costo anual total",addonsDueToday:"A pagar hoy",addonsChargedNow:"Se te cobrará {amount} ahora por el resto de este período de facturación. ",addonsNoChargeToday:"Sin cargo hoy — el cambio se calcula al prorrateo. ",addonsRenewalWithDate:"Los add-ons permanecen activos hasta que los elimines y renueves tu plan el {date}, fecha en la que se te cobrará {amount}{interval} por ellos.",addonsRenewalNoDate:"Los add-ons permanecen activos hasta que los elimines y renueves tu plan, fecha en la que se te cobrará {amount}{interval} por ellos.",addonsReadonlyNote:"Los add-ons de este espacio de trabajo están gestionados por Botpress — contáctanos para cambiarlos.",addonsUpdateSuccess:"Suscripción actualizada",addonsUpdateError:"No se pudo actualizar tus add-ons",addonsUpdateSubscription:"Actualizar suscripción",addonsConvos:"{n} conv.",outdatedTitle:"La facturación se gestiona en el Panel de Botpress",outdatedText:"Este espacio de trabajo utiliza un sistema de facturación anterior, por lo que los cambios de plan y los datos de pago no se pueden gestionar aquí.",outdatedCta:"Abrir facturación en el Panel",outgrowTitle:"Estás a punto de superar el plan Gratuito",outgrowLede:"El plan Gratuito incluye <bold>{quota}</bold> conversaciones en total, y no se renuevan. Al actualizar, obtienes una asignación mensual, desbloqueas más canales y añades packs de conversaciones, para que tus agentes nunca dejen de responder.",outgrowSoFar:"Hasta ahora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversaciones gratuitas usadas · no se renuevan",outgrowNoTopup:"Sin recarga",outgrowUpgradeTo:"Actualizar a {planName}",outgrowEverythingIn:"Todo lo de {planName}, y",outgrowNeedCustom:"¿Necesitas volumen personalizado, SLAs o voz?",outgrowTalkToSales:"Habla con ventas",outgrowCompareAll:"Comparar todos los planes",outgrowThenPer:"luego {symbol}{amount} por {packSize} adicionales",paymentDialogTitle:"Pago y facturación",paymentSessionError:"No pudimos iniciar una sesión segura.",paymentMethodSection:"Método de pago",paymentCardSaveError:"No se pudo guardar tu tarjeta",paymentMethodMissing:"No se pudo obtener el método de pago",paymentCardGenericError:"No pudimos guardar tu tarjeta. Verifica tus datos e inténtalo de nuevo.",paymentReplace:"Reemplazar",paymentBillingAddressSection:"Dirección de facturación",paymentTaxIds:"Número de identificación fiscal",paymentTaxEmpty:"Añade un número de IVA o identificación fiscal para que aparezca en tus facturas.",paymentTaxIdType:"Tipo de NIF",paymentTaxSelectType:"Seleccionar tipo",paymentTaxIdNumber:"Número de NIF",paymentTaxRemove:"Eliminar NIF",paymentTaxAdd:"+ Añadir NIF",paymentAddressIncomplete:"Completa tu dirección de facturación.",paymentAddressError:"No se pudieron actualizar tus datos de facturación.",paymentCardUpdated:"Tarjeta actualizada",paymentDetailsUpdated:"Datos de facturación actualizados",paymentSaveCard:"Guardar tarjeta",paymentSaveBillingDetails:"Guardar datos de facturación",paymentDetailsUpdateError:"No se pudieron actualizar tus datos de facturación",usageWidgetLimitReached:"Límite alcanzado",usageWidgetRunningLow:"Stock bajo",usageWidgetUpgradeToKeepGoing:"Actualiza para continuar.",usageWidgetOnlyLeft:"Solo quedan {left}.",usageWidgetFreeExhausted:"Todas tus conversaciones gratuitas están agotadas y no se renuevan.",usageWidgetFreeLeft:"Te quedan {left} conversaciones gratuitas y no se renuevan.",usageWidgetEnterpriseOverQuota:"Un representante de Botpress se pondrá en contacto contigo al final del período de uso.",usageWidgetResets:"Se restablece el {date}",usageWidgetViewOptions:"Ver opciones de plan",usagePopoverFreeTitle:"Uso del plan gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversaciones</bold> incluidas, en total. No se renuevan, y el plan Gratis no tiene recargas.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"Uso de este período",usagePopoverNudgeText:"<bold>¿Necesitas más espacio?</bold> Plus incluye 250 conversaciones al mes, agentes de IA ilimitados y paquetes de 100 cuando los necesites.",usagePopoverNudgeCta:"Descubre lo que obtienes con Plus",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de facturación",dashboardPrevMonth:"Mes anterior",dashboardNextMonth:"Mes siguiente",dashboardConversationsTitle:"Conversaciones",dashboardConversationsHint:"Cada conversación incluye uso de IA. Cuando alcanzas tu límite, se añaden conversaciones adicionales automáticamente para que el service continúe.",dashboardStorageTitle:"Almacenamiento",dashboardStorageHint:"Compartido entre archivos, base de conocimiento y tablas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversación incluye una asignación de uso de IA. Controla cuánto de esa asignación has usado",dashboardEnterpriseUsageNotice:"Tu uso no se bloqueará si superas la cuota.",dashboardLoadError:"No pudimos cargar tu uso. Inténtalo de nuevo en un momento.",dashboardNoBotSpend:"Sin gasto de IA por bot en este período.",dashboardAiByBot:"Gasto de IA por bot",dashboardConversationsMetric:"Conversaciones",dashboardTableRows:"Filas de tabla",dashboardVectorDb:"Almacenamiento vectorial",dashboardFileStorage:"Almacenamiento de archivos",dashboardAiSpend:"Gasto en IA",dashboardFromPlan:"{amount} del plan {planName}",dashboardFromPlanGeneric:"{amount} de tu plan",dashboardFromPlanWithAddons:"{amount} del plan {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} de tu plan + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar límites",planFeatureAiUsageIncluded:"Uso de IA incluido",planFeature3Seats:"3 puestos",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Centro de ayuda",planFeature1kTableRows:"1K filas de tabla",planFeature100kTableRows:"100K filas de tabla",planFeature500kTableRows:"500K filas de tabla",planFeature100mbFileStorage:"100MB de almacenamiento de archivos",planFeature10gbFileStorage:"10GB de almacenamiento de archivos",planFeature50gbFileStorage:"50GB de almacenamiento de archivos",planFeature100mbVectorDb:"100MB de almacenamiento vectorial",planFeature1gbVectorDb:"1GB de almacenamiento vectorial",planFeature5gbVectorDb:"5GB de almacenamiento vectorial",planFeatureCommunitySupport:"Soporte comunitario",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal de WhatsApp",planFeatureHelpCenterCustomDomain:"Dominio personalizado del centro de ayuda",planFeatureWhitelabelWebchat:"Webchat sin marca",planFeatureTechnicalSupportLiveChat:"Soporte técnico por chat en vivo",planFeatureUnlimitedSeats:"Puestos ilimitados",planFeatureTeamsRoutingRbac:"Equipos, enrutamiento y RBAC",planFeatureTeamLevelAnalytics:"Analíticas por equipo",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Soporte dedicado",planFeatureSlaSecurity:"SLA y revisión de seguridad",planFeatureCustomStorage:"Almacenamiento personalizado",planFeatureDescAiUsageIncluded:"Cada plan incluye una asignación mensual de gasto en modelos de IA — sin factura de IA adicional.",planFeatureDesc3Seats:"Hasta 3 miembros del equipo pueden colaborar en este espacio de trabajo.",planFeatureDescUnlimitedSeats:"Invita a todos los miembros del equipo que necesites al espacio de trabajo.",planFeatureDesc3AiAgents:"Crea y publica hasta 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crea y publica todos los agentes de IA que necesites.",planFeatureDescBotpressDesk:"La bandeja de entrada de traspaso a humanos donde los agentes gestionan y responden conversaciones en vivo.",planFeatureDescBotpressStudioAdk:"El constructor visual Studio más el Kit de Desarrollo de Agentes para crear agentes en código.",planFeatureDescHelpCenter:"Una base de conocimiento alojada desde la que responde tu agente y que los clientes pueden consultar.",planFeatureDescHelpCenterCustomDomain:"Publica tu centro de ayuda desde tu propio dominio en lugar de una URL de Botpress.",planFeatureDescWhatsappChannel:"Conecta tu agente a WhatsApp para chatear con los clientes allí.",planFeatureDescVoiceChannel:"Conecta tu agente al teléfono/voz para que pueda gestionar conversaciones habladas.",planFeatureDescWhitelabelWebchat:"Elimina la marca de Botpress del widget de chat web para que sea completamente tuyo.",planFeatureDescTeamsRoutingRbac:"Organiza miembros en equipos, enruta conversaciones entre ellos y controla el acceso por rol.",planFeatureDescTeamLevelAnalytics:"Métricas de rendimiento y volumen desglosadas por equipo.",planFeatureDescTechnicalSupportLiveChat:"Contacta al equipo de soporte de Botpress por chat en vivo para obtener ayuda.",planFeatureDescCommunitySupport:"Obtén ayuda del foro de la comunidad de Botpress y Discord.",planFeatureDescDedicatedSupport:"Un contacto designado y un canal de soporte prioritario para tu cuenta.",planFeatureDescSlaSecurity:"Un SLA de disponibilidad contractual y una revisión de seguridad/cumplimiento para tu proceso de adquisición.",planFeatureDescCustomStorage:"Límites de almacenamiento adaptados a tu carga de trabajo, más allá de los niveles estándar.",planFeatureDesc1kTableRows:"1K filas en todas tus tablas de datos.",planFeatureDesc100kTableRows:"100K filas en todas tus tablas de datos.",planFeatureDesc500kTableRows:"500K filas en todas tus tablas de datos.",planFeatureDesc100mbFileStorage:"100MB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc10gbFileStorage:"10GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc50gbFileStorage:"50GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planDescriptionCommunity:"Plan gratuito para explorar",planDescriptionPlus:"Para negocios en crecimiento",planDescriptionTeam:"Para equipos pequeños",planDescriptionEnterprise:"Suscripción de licencia empresarial",planDescriptionManaged:"Suscripción de licencia gestionada",addonNameConversationSessions:"Conversaciones",addonNameStorage:"Almacenamiento",addonDescriptionConversationSessions:"Añade sesiones de conversación para el mes",addonDescriptionStorage:"Añade filas de tabla, espacio de base de datos vectorial y archivos",summaryCurrentPlan:"Plan actual",summaryManagedInDashboard:"Gestionado en el Panel",summaryManagedMeta:"Este espacio de trabajo utiliza un sistema de facturación anterior.",summaryNoPlan:"Sin plan",summaryConversationsPerMo:"{n} conversaciones/mes",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on activo",summaryActiveAddons:"{count} add-ons activos",summaryNoAddons:"Sin add-ons",summaryNoAddonsMeta:"Añade conversaciones o almacenamiento adicional"},pi={free:"Gratuito",manage:"Gerenciar",cancel:"Cancelar",close:"Fechar",open:"Abrir",edit:"Editar",update:"Atualizar",tryAgain:"Tentar novamente",save:"Salvar",upgrade:"Atualizar plano",downgrade:"Reduzir plano",billingIntervalLabel:"Intervalo de cobrança",billedMonthly:"Cobrado mensalmente",billedAnnually:"Cobrado anualmente",conversationsUnit:"conversas",conversationsPerMonth:"conversas / mês",perMonth:"/mês",perYear:"/ano",perMonthLong:"/mês",perYearLong:"/ano",resourceConversations:"Conversas / mês",resourceTableRows:"Linhas de tabela",resourceVectorDb:"Armazenamento vetorial",resourceFileStorage:"Armazenamento de arquivos",metricConversations:"conversas mensais",metricTableRows:"linhas de tabela",metricVectorDb:"armazenamento vetorial",metricFileStorage:"armazenamento de arquivos",metricAiSpend:"gastos com IA",metricBotCount:"agentes",usageBannerLimitReached:"Você atingiu seu limite de {label}. Atualize agora para evitar interrupções.",usageBannerNearLimit:"Você usou {pct}% de sua {label}. Atualize para evitar atingir seu limite.",usageBannerDefaultCta:"Atualizar plano",usageBannerManageCta:"Gerenciar plano",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plano atual",planBannerManagedTitle:"Gerenciado no Painel",planBannerManagedSub:"Este espaço de trabalho usa um sistema de cobrança anterior.",planBannerNoPlan:"Sem plano",planBannerCustomPricing:"Preço personalizado",planBannerCustomConversations:"Conversas personalizadas",planBannerCustom:"Personalizado",planBannerInclAddons:"· add-ons incluídos",planBannerRenews:"Renova em {date}",planBannerDowngradesTo:"Muda para {plan} em {date}",planBannerManageCta:"Gerenciar plano",checkoutTitle:"Configurar seu plano",checkoutBackLabel:"Voltar aos planos",checkoutPlanDetails:"Detalhes do plano",checkoutMonthlyBilling:"Cobrança mensal",checkoutAnnualBilling:"Cobrança anual",checkoutSaveBadge:"Economize {savings}%",checkoutPaymentMethodTitle:"Forma de pagamento",checkoutSavedCardTab:"Salvo",checkoutNewCardTab:"Novo cartão",checkoutBillingAddressTitle:"Endereço de cobrança",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Atualizar",checkoutIsBusiness:"Estou comprando como empresa",checkoutBusinessDetails:"Dados da empresa",checkoutBusinessNamePlaceholder:"Nome da empresa",checkoutTaxIdTypeLabel:"Tipo de CNPJ/CPF",checkoutTaxIdNumberPlaceholder:"Número de CNPJ/CPF",checkoutNoTaxRequired:"Nenhum número fiscal é necessário para seu país de cobrança.",checkoutSelectCountryForTax:"Selecione seu país de cobrança acima para adicionar um número fiscal.",checkoutContactInfo:"Informações de contato",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"O campo do cartão não está pronto",checkoutPaymentSetupFailed:"Falha ao configurar pagamento",checkoutPaymentMethodMissing:"Não foi possível recuperar a forma de pagamento",checkoutAddressIncomplete:"Preencha seu endereço de cobrança",checkoutGenericError:"Ocorreu um erro ao processar seu pagamento. Você não foi cobrado duas vezes.",checkoutSuccessToast:"Assinatura ativada",checkoutErrorToast:"Erro de pagamento",orderTopFeatures:"Principais recursos",orderThen:"depois {price} por {packSize}",orderPreviewError:"Não foi possível calcular seu total. Tente novamente em um momento.",orderPlanFromDate:"Plano {plan} — a partir de {date}",orderProratedToday:"Rateado para hoje",orderProratedTodayDesc:"Ao mudar de plano no meio do período, você paga apenas pelo tempo restante no seu período de cobrança atual. O preço total do plano acima é cobrado na sua próxima renovação, não hoje.",orderCreditUnusedTime:"Crédito por tempo não utilizado",orderAdjustUnusedTime:"Ajuste por tempo não utilizado",orderCreditUnusedTimeDesc:"Você já pagou pelo tempo restante no seu período de cobrança atual. Creditamos esse tempo não utilizado e o reaplicamos na sua nova tarifa, para que você nunca seja cobrado duas vezes.",orderAdjustUnusedTimeDesc:"Mudar no meio do ciclo significa que rateamos a diferença entre seu plano antigo e o novo pelos dias restantes no seu período de cobrança atual.",orderAccountCredit:"Crédito em conta",orderDueToday:"A pagar hoje",orderCreditTowardNext:"Você tem {amount} de tempo não utilizado creditado na sua próxima fatura.",orderBalanceAsCredit:"Seu saldo restante de {amount} é aplicado como crédito na sua próxima fatura.",orderSavingsNote:"Você está economizando {monthlySavings}/mês ao escolher um plano anual. Isso é {yearlySavings}/ano.",orderSubscribe:"Assinar",orderPreviewUnavailable:"Pré-visualização indisponível",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensalmente",orderRenewsMonthly:"Renova mensalmente até ser cancelado.",orderRenewsAnnually:"Renova anualmente até ser cancelado.",orderChargedStarting:"Você será cobrado {amount}{period} a partir de {date}.",orderChargedNoDate:"Você será cobrado {amount}{period}.",orderCancelNote:"Cancele a qualquer momento nas Configurações. Ao assinar, você autoriza a Botpress a armazenar e cobrar sua forma de pagamento.",invoicesTitle:"Histórico de cobrança",invoicesLoadError:"Não foi possível carregar suas faturas. Tente novamente em um momento.",invoicesEmpty:"Nenhuma fatura ainda. Elas aparecerão aqui após seu primeiro pagamento.",invoicesDownloadLabel:"Baixar fatura de {date}",invoiceStatusPaid:"Pago",invoiceStatusDue:"Pendente",invoiceStatusDraft:"Rascunho",invoiceStatusUnpaid:"Não pago",invoiceStatusVoid:"Cancelado",upgradeDialogTitle:"Atualizar seu plano",upgradeMonthly:"Mensal",upgradeAnnual:"Anual",upgradeSaveBadge:"Economize {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mês ({currency})",upgradeNoTopup:"Sem pacote adicional",upgradeCurrentPlan:"Seu plano atual",upgradeNextPlan:"Próximo plano",upgradeCancelDowngrade:"Cancelar redução",upgradeDowngrade:"Reduzir plano",upgradeSwitchToAnnual:"Mudar para anual",upgradeSwitchToMonthly:"Mudar para mensal",upgradePlanManaged:"Seu plano é gerenciado pela Botpress — entre em contato para alterá-lo",upgradeUpgrade:"Atualizar",upgradeEverythingIn:"Tudo do {planName}",upgradeContactUs:"Entre em contato",upgradeFooterEnterprise:"Precisa de mais, ou trabalhando em escala?",upgradeFooterAboutEnterprise:"sobre o Enterprise. Compare planos em",upgradeThenPer:"depois {price} por {packSize} adicionais",upgradeDowngradeSuccess:"Plano reduzido",upgradeDowngradeError:"Falha ao reduzir o plano",upgradeCancelDowngradeSuccess:"Redução agendada cancelada",upgradeCancelDowngradeError:"Não foi possível cancelar a redução",addonsDialogTitle:"Gerenciar add-ons",addonsSubtitleWithPlan:"Uso adicional para seu plano {planName}. Defina uma quantidade como 0 para remover um add-on.",addonsSubtitleGeneric:"Uso adicional para seu plano. Defina uma quantidade como 0 para remover um add-on.",addonsRequirePaidPlanTitle:"Os add-ons requerem um plano pago",addonsRequirePaidPlanBody:"Atualize seu plano para desbloquear conversas adicionais, armazenamento e muito mais.",addonsUpgradeCta:"Atualizar plano",addonsEach:"cada",addonActiveOnly:"{count} ativo",addonRemovedNextCycle:"{activeNow} ativo agora · removido no próximo ciclo",addonRemovedOnDate:"{activeNow} ativo agora · removido em {date}",addonChangedNextCycle:"{activeNow} ativo agora · {pending} no próximo ciclo",addonChangedOnDate:"{activeNow} ativo agora · {pending} a partir de {date}",addonsNewLimits:"Seus novos limites",addonsPlanLine:"Plano {planName}",addonsGenericPlan:"Plano",addonsTotalMonthly:"Custo mensal total",addonsTotalYearly:"Custo anual total",addonsDueToday:"A pagar hoje",addonsChargedNow:"Você será cobrado {amount} agora pelo restante deste período de cobrança. ",addonsNoChargeToday:"Sem cobrança hoje — a mudança é rateada. ",addonsRenewalWithDate:"Os add-ons permanecem ativos até você removê-los e renovar seu plano em {date}, quando você será cobrado {amount}{interval} por eles.",addonsRenewalNoDate:"Os add-ons permanecem ativos até você removê-los e renovar seu plano, quando você será cobrado {amount}{interval} por eles.",addonsReadonlyNote:"Os add-ons deste espaço de trabalho são gerenciados pela Botpress — entre em contato para alterá-los.",addonsUpdateSuccess:"Assinatura atualizada",addonsUpdateError:"Não foi possível atualizar seus add-ons",addonsUpdateSubscription:"Atualizar assinatura",addonsConvos:"{n} conv.",outdatedTitle:"A cobrança é gerenciada no Painel da Botpress",outdatedText:"Este espaço de trabalho usa um sistema de cobrança anterior, portanto, alterações de plano e detalhes de pagamento não podem ser gerenciados aqui.",outdatedCta:"Abrir cobrança no Painel",outgrowTitle:"Você está prestes a superar o plano Gratuito",outgrowLede:"O plano Gratuito inclui <bold>{quota}</bold> conversas no total, e elas não são renovadas. Ao atualizar, você passa para uma cota mensal, desbloqueia mais canais e adiciona pacotes de conversas, para que seus agentes nunca parem de responder.",outgrowSoFar:"Até agora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversas gratuitas usadas · elas não são renovadas",outgrowNoTopup:"Sem pacote adicional",outgrowUpgradeTo:"Atualizar para {planName}",outgrowEverythingIn:"Tudo do {planName}, e",outgrowNeedCustom:"Precisa de volume personalizado, SLAs ou voz?",outgrowTalkToSales:"Fale com vendas",outgrowCompareAll:"Comparar todos os planos",outgrowThenPer:"depois {symbol}{amount} por {packSize} adicionais",paymentDialogTitle:"Pagamento e cobrança",paymentSessionError:"Não foi possível iniciar uma sessão segura.",paymentMethodSection:"Forma de pagamento",paymentCardSaveError:"Não foi possível salvar seu cartão",paymentMethodMissing:"Não foi possível recuperar a forma de pagamento",paymentCardGenericError:"Não foi possível salvar seu cartão. Verifique seus dados e tente novamente.",paymentReplace:"Substituir",paymentBillingAddressSection:"Endereço de cobrança",paymentTaxIds:"Números fiscais",paymentTaxEmpty:"Adicione um número de CNPJ/CPF para que ele apareça em suas faturas.",paymentTaxIdType:"Tipo de número fiscal",paymentTaxSelectType:"Selecionar tipo",paymentTaxIdNumber:"Número fiscal",paymentTaxRemove:"Remover número fiscal",paymentTaxAdd:"+ Adicionar número fiscal",paymentAddressIncomplete:"Preencha seu endereço de cobrança.",paymentAddressError:"Não foi possível atualizar seus dados de cobrança.",paymentCardUpdated:"Cartão atualizado",paymentDetailsUpdated:"Dados de cobrança atualizados",paymentSaveCard:"Salvar cartão",paymentSaveBillingDetails:"Salvar dados de cobrança",paymentDetailsUpdateError:"Não foi possível atualizar seus dados de cobrança",usageWidgetLimitReached:"Limite atingido",usageWidgetRunningLow:"Estoque baixo",usageWidgetUpgradeToKeepGoing:"Atualize para continuar.",usageWidgetOnlyLeft:"Apenas {left} restantes.",usageWidgetFreeExhausted:"Todas as suas conversas gratuitas foram usadas e não são renovadas.",usageWidgetFreeLeft:"{left} conversas gratuitas restantes e elas não são renovadas.",usageWidgetEnterpriseOverQuota:"Um representante da Botpress entrará em contato no fim do período de uso.",usageWidgetResets:"Reinicia em {date}",usageWidgetViewOptions:"Ver opções de plano",usagePopoverFreeTitle:"Uso do plano gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversas</bold> incluídas, no total. Elas não são renovadas, e o plano Gratuito não tem recargas.",usagePopoverPlanName:"Plano {planName}",usagePopoverTitle:"Uso deste período",usagePopoverNudgeText:"<bold>Precisa de mais espaço?</bold> O Plus inclui 250 conversas por mês, agentes de IA ilimitados e pacotes de 100 quando você precisar.",usagePopoverNudgeCta:"Veja o que você ganha com o Plus",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de cobrança",dashboardPrevMonth:"Mês anterior",dashboardNextMonth:"Próximo mês",dashboardConversationsTitle:"Conversas",dashboardConversationsHint:"Cada conversa inclui uso de IA. Quando você atinge seu limite, conversas adicionais são adicionadas automaticamente para que o serviço continue.",dashboardStorageTitle:"Armazenamento",dashboardStorageHint:"Compartilhado entre arquivos, base de conhecimento e tabelas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversa inclui uma cota de uso de IA. Acompanhe quanto dessa cota você já usou",dashboardEnterpriseUsageNotice:"Seu uso não será bloqueado se você ultrapassar a cota.",dashboardLoadError:"Não foi possível carregar seu uso. Tente novamente em um momento.",dashboardNoBotSpend:"Sem gastos de IA por bot neste período.",dashboardAiByBot:"Gastos de IA por bot",dashboardConversationsMetric:"Conversas",dashboardTableRows:"Linhas de tabela",dashboardVectorDb:"Armazenamento vetorial",dashboardFileStorage:"Armazenamento de arquivos",dashboardAiSpend:"Gastos com IA",dashboardFromPlan:"{amount} do plano {planName}",dashboardFromPlanGeneric:"{amount} do seu plano",dashboardFromPlanWithAddons:"{amount} do plano {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} do seu plano + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar limites",planFeatureAiUsageIncluded:"Uso de IA incluído",planFeature3Seats:"3 vagas",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureHelpCenter:"Central de ajuda",planFeature1kTableRows:"1K linhas de tabela",planFeature100kTableRows:"100K linhas de tabela",planFeature500kTableRows:"500K linhas de tabela",planFeature100mbFileStorage:"100MB de armazenamento de arquivos",planFeature10gbFileStorage:"10GB de armazenamento de arquivos",planFeature50gbFileStorage:"50GB de armazenamento de arquivos",planFeature100mbVectorDb:"100MB de armazenamento vetorial",planFeature1gbVectorDb:"1GB de armazenamento vetorial",planFeature5gbVectorDb:"5GB de armazenamento vetorial",planFeatureCommunitySupport:"Suporte da comunidade",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal do WhatsApp",planFeatureHelpCenterCustomDomain:"Domínio personalizado da central de ajuda",planFeatureWhitelabelWebchat:"Webchat sem marca",planFeatureTechnicalSupportLiveChat:"Suporte técnico via chat ao vivo",planFeatureUnlimitedSeats:"Vagas ilimitadas",planFeatureTeamsRoutingRbac:"Equipes, roteamento e RBAC",planFeatureTeamLevelAnalytics:"Análises por equipe",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Suporte dedicado",planFeatureSlaSecurity:"SLA e revisão de segurança",planFeatureCustomStorage:"Armazenamento personalizado",planFeatureDescAiUsageIncluded:"Cada plano inclui uma cota mensal de gastos com modelos de IA — sem cobrança extra de IA.",planFeatureDesc3Seats:"Até 3 membros da equipe podem colaborar neste espaço de trabalho.",planFeatureDescUnlimitedSeats:"Convide quantos membros da equipe precisar para o espaço de trabalho.",planFeatureDesc3AiAgents:"Crie e publique até 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crie e publique quantos agentes de IA precisar.",planFeatureDescBotpressDesk:"A caixa de entrada de transferência para humanos onde os agentes triagem e respondem conversas ao vivo.",planFeatureDescBotpressStudioAdk:"O construtor visual Studio mais o Kit de Desenvolvimento de Agentes para criar agentes em código.",planFeatureDescHelpCenter:"Uma base de conhecimento hospedada da qual seu agente responde e que os clientes podem consultar.",planFeatureDescHelpCenterCustomDomain:"Publique sua central de ajuda a partir do seu próprio domínio em vez de uma URL da Botpress.",planFeatureDescWhatsappChannel:"Conecte seu agente ao WhatsApp para conversar com clientes lá.",planFeatureDescVoiceChannel:"Conecte seu agente ao telefone/voz para que possa lidar com conversas faladas.",planFeatureDescWhitelabelWebchat:"Remova a marca Botpress do widget de chat web para que seja totalmente seu.",planFeatureDescTeamsRoutingRbac:"Organize membros em equipes, roteie conversas entre elas e controle o acesso por função.",planFeatureDescTeamLevelAnalytics:"Métricas de desempenho e volume detalhadas por equipe.",planFeatureDescTechnicalSupportLiveChat:"Entre em contato com a equipe de suporte da Botpress via chat ao vivo para obter ajuda.",planFeatureDescCommunitySupport:"Obtenha ajuda no fórum da comunidade Botpress e no Discord.",planFeatureDescDedicatedSupport:"Um contato designado e canal de suporte prioritário para sua conta.",planFeatureDescSlaSecurity:"Um SLA de disponibilidade contratual e uma revisão de segurança/conformidade para seu processo de aquisição.",planFeatureDescCustomStorage:"Limites de armazenamento adaptados à sua carga de trabalho, além dos níveis padrão.",planFeatureDesc1kTableRows:"1K linhas em todas as suas tabelas de dados.",planFeatureDesc100kTableRows:"100K linhas em todas as suas tabelas de dados.",planFeatureDesc500kTableRows:"500K linhas em todas as suas tabelas de dados.",planFeatureDesc100mbFileStorage:"100MB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc10gbFileStorage:"10GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc50gbFileStorage:"50GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para busca e recuperação na base de conhecimento.",planDescriptionCommunity:"Plano gratuito para experimentar",planDescriptionPlus:"Para negócios em crescimento",planDescriptionTeam:"Para equipes pequenas",planDescriptionEnterprise:"Assinatura de licença corporativa",planDescriptionManaged:"Assinatura de licença gerenciada",addonNameConversationSessions:"Conversas",addonNameStorage:"Armazenamento",addonDescriptionConversationSessions:"Adiciona sessões de conversa para o mês",addonDescriptionStorage:"Adiciona linhas de tabela, espaço de banco de dados vetorial e arquivos",summaryCurrentPlan:"Plano atual",summaryManagedInDashboard:"Gerenciado no Painel",summaryManagedMeta:"Este espaço de trabalho usa um sistema de cobrança anterior.",summaryNoPlan:"Sem plano",summaryConversationsPerMo:"{n} conversas/mês",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on ativo",summaryActiveAddons:"{count} add-ons ativos",summaryNoAddons:"Sem add-ons",summaryNoAddonsMeta:"Adicione conversas ou armazenamento extra"},Ua="billing",vn=li();vn.use(Fo).init({resources:{en:{[Ua]:di},fr:{[Ua]:ci},es:{[Ua]:ui},pt:{[Ua]:pi}},lng:"en",fallbackLng:"en",ns:[Ua],defaultNS:Ua,interpolation:{escapeValue:!1,prefix:"{",suffix:"}"}});const Et=P.createContext(null),mi={capture:()=>{}};function hi(a){const[e,t]=P.useState(()=>typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches);return P.useEffect(()=>{if(a!=="system")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),s=r=>t(r.matches);return n.addEventListener("change",s),()=>n.removeEventListener("change",s)},[a]),a==="system"?e:a==="dark"}const gi=({client:a,stripePublishableKey:e,email:t,locale:n="en",theme:s="light",colorScheme:r="default",onToast:i,analytics:l,featureLabels:c,billingVersion:d,workspaceId:u,persist:p=!0,manageBillingUrl:m,onBillingChange:h,refreshInterval:b=3e4,children:w})=>{const C=u||"default",[y]=P.useState(()=>new fe.QueryClient({defaultOptions:{queries:{retry:1,staleTime:3e4,gcTime:1e3*60*60}}})),_=hi(s),N=P.useMemo(()=>rs(e),[e]);P.useEffect(()=>{if(!p||typeof window>"u")return;const v=`bpb-cache:${C}`;try{const O=window.localStorage.getItem(v);O&&fe.hydrate(y,JSON.parse(O))}catch{window.localStorage.removeItem(v)}let L=null;const V=y.getQueryCache().subscribe(O=>{O.type!=="added"&&O.type!=="removed"&&O.type!=="updated"||(L&&clearTimeout(L),L=setTimeout(()=>{try{window.localStorage.setItem(v,JSON.stringify(fe.dehydrate(y)))}catch{}},250))});return()=>{L&&clearTimeout(L),V()}},[p,C,y]);const A=P.useCallback(()=>y.invalidateQueries({queryKey:["bpb",C]}),[y,C]),I=P.useCallback(v=>h==null?void 0:h(v),[h]),T=b>0?b:!1;vn.changeLanguage(n);const x=P.useMemo(()=>({client:a,queryClient:y,scope:C,stripePromise:N,email:t,locale:n,isDark:_,colorScheme:r,toast:i??(()=>{}),analytics:l??mi,featureLabels:c,isOutdatedBilling:d!==void 0&&d!=="v4",manageBillingUrl:m,refetchInterval:T,refresh:A,notifyBillingChange:I}),[a,y,C,N,t,n,_,r,i,l,c,d,m,T,A,I]);return o.jsx(Et.Provider,{value:x,children:o.jsx(Uo,{i18n:vn,children:o.jsx("div",{className:"bpb-scope","data-bpb-theme":_?"dark":"light","data-bpb-color-scheme":r,style:{display:"contents"},children:w})})})};function Q(){const a=P.useContext(Et);if(!a)throw new Error("@bpinternal/billing-ui components must be rendered inside <BillingProvider>");return a}function fi(){var a;return((a=P.useContext(Et))==null?void 0:a.isDark)??!1}function bi(){var a;return((a=P.useContext(Et))==null?void 0:a.colorScheme)??"default"}const Ne={PLAN_PICKER_VIEWED:"billing_plan_picker_viewed",PLAN_INTERVAL_TOGGLED:"billing_plan_interval_toggled",PLAN_UPGRADE_INITIATED:"billing_plan_upgrade_initiated",PLAN_DOWNGRADED:"billing_plan_downgraded",PLAN_DOWNGRADE_CANCELLED:"billing_plan_downgrade_cancelled",CHECKOUT_STEP_VIEWED:"billing_checkout_step_viewed",CHECKOUT_INTERVAL_CHANGED:"billing_checkout_interval_changed",PAYMENT_METHOD_SELECTED:"billing_payment_method_selected",PAYMENT_DETAILS_CONFIRMED:"billing_payment_details_confirmed",PLAN_UPGRADED:"billing_plan_upgraded",CHECKOUT_ERROR:"billing_checkout_error",PAYMENT_METHOD_UPDATED:"billing_payment_method_updated",BILLING_ADDRESS_UPDATED:"billing_address_updated",INVOICE_DOWNLOADED:"billing_invoice_downloaded",UPGRADE_CTA_CLICKED:"billing_upgrade_cta_clicked"},we={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"],billingAddress:a=>["bpb",a,"billing-address"],customer:a=>["bpb",a,"customer"],invoices:a=>["bpb",a,"invoices"],readonly:a=>["bpb",a,"billing-readonly"],usages:(a,e)=>["bpb",a,"usages",e],bots:a=>["bpb",a,"bots"],usageByBot:(a,e,t)=>["bpb",a,"usage-by-bot",e,t]};function $e(){const{client:a,queryClient:e,scope:t}=Q();return fe.useQuery({queryKey:we.plans(t),queryFn:()=>a.listPlans({})},e)}function ya(){const{client:a,queryClient:e,scope:t}=Q();return fe.useQuery({queryKey:we.addons(t),queryFn:()=>a.listAddons({})},e)}function Ze(a){const{client:e,queryClient:t,scope:n,refetchInterval:s}=Q();return fe.useQuery({queryKey:we.subscription(n),queryFn:()=>e.getSubscription({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:s},t)}function _n(a,e){const{client:t,queryClient:n,scope:s}=Q();return fe.useQuery({queryKey:we.preview(s,a),queryFn:()=>t.previewSubscriptionUpdate(a),enabled:(e==null?void 0:e.enabled)??!0},n)}function Cn(a){const{client:e,queryClient:t,scope:n}=Q();return fe.useQuery({queryKey:we.paymentMethod(n),queryFn:()=>e.getPaymentMethod({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Nn(a){const{client:e,queryClient:t,scope:n}=Q();return fe.useQuery({queryKey:we.billingAddress(n),queryFn:()=>e.getBillingAddress({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Sn(a){const{client:e,queryClient:t,scope:n}=Q();return fe.useQuery({queryKey:we.customer(n),queryFn:()=>e.getCustomer({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Ps(a){const{client:e,queryClient:t,scope:n,refetchInterval:s}=Q();return fe.useQuery({queryKey:we.invoices(n),queryFn:()=>e.listInvoices({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:s},t)}function kn(a){const{client:e,queryClient:t,scope:n}=Q();return fe.useQuery({queryKey:we.readonly(n),queryFn:()=>e.getBillingReadonly({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function va(a){const{client:e,queryClient:t,scope:n,refetchInterval:s}=Q(),r=a!=null&&a.period?new Date(a.period):new Date,i=`${r.getUTCFullYear()}-${String(r.getUTCMonth()+1).padStart(2,"0")}`;return fe.useQuery({queryKey:we.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:s},t)}function xs(a,e){const{client:t,queryClient:n,scope:s,refetchInterval:r}=Q(),i=t.breakDownWorkspaceUsageByBot,l=t.listBots,c=typeof i=="function"&&typeof l=="function",d=e!=null&&e.period?new Date(e.period):new Date,u=`${d.getUTCFullYear()}-${String(d.getUTCMonth()+1).padStart(2,"0")}`;return fe.useQuery({queryKey:we.usageByBot(s,a,u),queryFn:async()=>{const[p,m]=await Promise.all([i({id:s,type:a,period:`${u}-01T00:00:00.000Z`}),l({})]),h=new Map(m.bots.map(b=>[b.id,b.name]));return p.data.map(b=>({botId:b.botId,name:h.get(b.botId)??b.botId,value:b.value})).sort((b,w)=>w.value-b.value)},enabled:c&&((e==null?void 0:e.enabled)??!0),refetchInterval:r},n)}function Ds(){const{client:a}=Q();return typeof a.breakDownWorkspaceUsageByBot=="function"&&typeof a.listBots=="function"}function wn(){const{client:a,queryClient:e}=Q();return fe.useMutation({mutationFn:()=>a.createPaymentMethodIntent({})},e)}function Tn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return fe.useMutation({mutationFn:s=>a.setPaymentMethod(s),onSuccess:async()=>{await e.invalidateQueries({queryKey:we.paymentMethod(t)}),n({type:"payment-method"})}},e)}function In(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return fe.useMutation({mutationFn:async s=>{await a.setBillingAddress(s)},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:we.billingAddress(t)}),e.invalidateQueries({queryKey:we.customer(t)})]),n({type:"billing-address"})}},e)}function An(){const{client:a,queryClient:e,scope:t}=Q();return fe.useMutation({mutationFn:n=>a.setCustomer(n),onSuccess:()=>e.invalidateQueries({queryKey:we.customer(t)})},e)}function Es(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return fe.useMutation({mutationFn:async s=>{await a.setAddons(s)},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:we.subscription(t)}),e.invalidateQueries({queryKey:we.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:"addons"})}},e)}function Pn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Q();return fe.useMutation({mutationFn:async s=>{await a.setPlan({planId:s.planId,interval:s.interval,couponCode:s.couponCode}),s.addons&&Object.keys(s.addons).length>0&&await a.setAddons({addons:s.addons,couponCode:s.couponCode})},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:we.subscription(t)}),e.invalidateQueries({queryKey:we.plans(t)}),e.invalidateQueries({queryKey:we.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:"subscription"})}},e)}function Ls(a){var e,t,n="";if(typeof a=="string"||typeof a=="number")n+=a;else if(typeof a=="object")if(Array.isArray(a)){var s=a.length;for(e=0;e<s;e++)a[e]&&(t=Ls(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="",s=arguments.length;t<s;t++)(a=arguments[t])&&(e=Ls(a))&&(n&&(n+=" "),n+=e);return n}const vi=(a,e)=>{const t=new Array(a.length+e.length);for(let n=0;n<a.length;n++)t[n]=a[n];for(let n=0;n<e.length;n++)t[a.length+n]=e[n];return t},_i=(a,e)=>({classGroupId:a,validator:e}),Fs=(a=new Map,e=null,t)=>({nextPart:a,validators:e,classGroupId:t}),Lt="-",Os=[],Ci="arbitrary..",Ni=a=>{const e=ki(a),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=a;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return Si(i);const l=i.split(Lt),c=l[0]===""&&l.length>1?1:0;return Ms(l,c,e)},getConflictingClassGroupIds:(i,l)=>{if(l){const c=n[i],d=t[i];return c?d?vi(d,c):c:d||Os}return t[i]||Os}}},Ms=(a,e,t)=>{if(a.length-e===0)return t.classGroupId;const s=a[e],r=t.nextPart.get(s);if(r){const d=Ms(a,e+1,r);if(d)return d}const i=t.validators;if(i===null)return;const l=e===0?a.join(Lt):a.slice(e).join(Lt),c=i.length;for(let d=0;d<c;d++){const u=i[d];if(u.validator(l))return u.classGroupId}},Si=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?Ci+n:void 0})(),ki=a=>{const{theme:e,classGroups:t}=a;return wi(t,e)},wi=(a,e)=>{const t=Fs();for(const n in a){const s=a[n];xn(s,t,n,e)}return t},xn=(a,e,t,n)=>{const s=a.length;for(let r=0;r<s;r++){const i=a[r];Ti(i,e,t,n)}},Ti=(a,e,t,n)=>{if(typeof a=="string"){Ii(a,e,t);return}if(typeof a=="function"){Ai(a,e,t,n);return}Pi(a,e,t,n)},Ii=(a,e,t)=>{const n=a===""?e:Bs(e,a);n.classGroupId=t},Ai=(a,e,t,n)=>{if(xi(a)){xn(a(n),e,t,n);return}e.validators===null&&(e.validators=[]),e.validators.push(_i(t,a))},Pi=(a,e,t,n)=>{const s=Object.entries(a),r=s.length;for(let i=0;i<r;i++){const[l,c]=s[i];xn(c,Bs(e,l),t,n)}},Bs=(a,e)=>{let t=a;const n=e.split(Lt),s=n.length;for(let r=0;r<s;r++){const i=n[r];let l=t.nextPart.get(i);l||(l=Fs(),t.nextPart.set(i,l)),t=l}return t},xi=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,Di=a=>{if(a<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),n=Object.create(null);const s=(r,i)=>{t[r]=i,e++,e>a&&(e=0,n=t,t=Object.create(null))};return{get(r){let i=t[r];if(i!==void 0)return i;if((i=n[r])!==void 0)return s(r,i),i},set(r,i){r in t?t[r]=i:s(r,i)}}},Dn="!",Us=":",Ei=[],zs=(a,e,t,n,s)=>({modifiers:a,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:n,isExternal:s}),Li=a=>{const{prefix:e,experimentalParseClassName:t}=a;let n=s=>{const r=[];let i=0,l=0,c=0,d;const u=s.length;for(let w=0;w<u;w++){const C=s[w];if(i===0&&l===0){if(C===Us){r.push(s.slice(c,w)),c=w+1;continue}if(C==="/"){d=w;continue}}C==="["?i++:C==="]"?i--:C==="("?l++:C===")"&&l--}const p=r.length===0?s:s.slice(c);let m=p,h=!1;p.endsWith(Dn)?(m=p.slice(0,-1),h=!0):p.startsWith(Dn)&&(m=p.slice(1),h=!0);const b=d&&d>c?d-c:void 0;return zs(r,h,m,b)};if(e){const s=e+Us,r=n;n=i=>i.startsWith(s)?r(i.slice(s.length)):zs(Ei,!1,i,void 0,!0)}if(t){const s=n;n=r=>t({className:r,parseClassName:s})}return n},Fi=a=>{const e=new Map;return a.orderSensitiveModifiers.forEach((t,n)=>{e.set(t,1e6+n)}),t=>{const n=[];let s=[];for(let r=0;r<t.length;r++){const i=t[r],l=i[0]==="[",c=e.has(i);l||c?(s.length>0&&(s.sort(),n.push(...s),s=[]),n.push(i)):s.push(i)}return s.length>0&&(s.sort(),n.push(...s)),n}},Oi=a=>({cache:Di(a.cacheSize),parseClassName:Li(a),sortModifiers:Fi(a),postfixLookupClassGroupIds:Mi(a),...Ni(a)}),Mi=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},Bi=/\s+/,Ui=(a,e)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:s,sortModifiers:r,postfixLookupClassGroupIds:i}=e,l=[],c=a.trim().split(Bi);let d="";for(let u=c.length-1;u>=0;u-=1){const p=c[u],{isExternal:m,modifiers:h,hasImportantModifier:b,baseClassName:w,maybePostfixModifierPosition:C}=t(p);if(m){d=p+(d.length>0?" "+d:d);continue}let y=!!C,_;if(y){const x=w.substring(0,C);_=n(x);const v=_&&i[_]?n(w):void 0;v&&v!==_&&(_=v,y=!1)}else _=n(w);if(!_){if(!y){d=p+(d.length>0?" "+d:d);continue}if(_=n(w),!_){d=p+(d.length>0?" "+d:d);continue}y=!1}const N=h.length===0?"":h.length===1?h[0]:r(h).join(":"),A=b?N+Dn:N,I=A+_;if(l.indexOf(I)>-1)continue;l.push(I);const T=s(_,y);for(let x=0;x<T.length;++x){const v=T[x];l.push(A+v)}d=p+(d.length>0?" "+d:d)}return d},zi=(...a)=>{let e=0,t,n,s="";for(;e<a.length;)(t=a[e++])&&(n=js(t))&&(s&&(s+=" "),s+=n);return s},js=a=>{if(typeof a=="string")return a;let e,t="";for(let n=0;n<a.length;n++)a[n]&&(e=js(a[n]))&&(t&&(t+=" "),t+=e);return t},ji=(a,...e)=>{let t,n,s,r;const i=c=>{const d=e.reduce((u,p)=>p(u),a());return t=Oi(d),n=t.cache.get,s=t.cache.set,r=l,l(c)},l=c=>{const d=n(c);if(d)return d;const u=Ui(c,t);return s(c,u),u};return r=i,(...c)=>r(zi(...c))},Vi=[],Ie=a=>{const e=t=>t[a]||Vi;return e.isThemeGetter=!0,e},Vs=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Zs=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Zi=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,qi=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Wi=/\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$/,Gi=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ki=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,$i=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,da=a=>Zi.test(a),ee=a=>!!a&&!Number.isNaN(Number(a)),He=a=>!!a&&Number.isInteger(Number(a)),En=a=>a.endsWith("%")&&ee(a.slice(0,-1)),na=a=>qi.test(a),qs=()=>!0,Hi=a=>Wi.test(a)&&!Gi.test(a),Ln=()=>!1,Ri=a=>Ki.test(a),Yi=a=>$i.test(a),Ji=a=>!B(a)&&!U(a),Qi=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)),Xi=a=>ca(a,Rs,Ln),B=a=>Vs.test(a),_a=a=>ca(a,Ys,Hi),Ws=a=>ca(a,il,ee),el=a=>ca(a,Qs,qs),al=a=>ca(a,Js,Ln),Gs=a=>ca(a,$s,Ln),tl=a=>ca(a,Hs,Yi),Ft=a=>ca(a,Xs,Ri),U=a=>Zs.test(a),Ja=a=>Ca(a,Ys),nl=a=>Ca(a,Js),Ks=a=>Ca(a,$s),sl=a=>Ca(a,Rs),rl=a=>Ca(a,Hs),Ot=a=>Ca(a,Xs,!0),ol=a=>Ca(a,Qs,!0),ca=(a,e,t)=>{const n=Vs.exec(a);return n?n[1]?e(n[1]):t(n[2]):!1},Ca=(a,e,t=!1)=>{const n=Zs.exec(a);return n?n[1]?e(n[1]):t:!1},$s=a=>a==="position"||a==="percentage",Hs=a=>a==="image"||a==="url",Rs=a=>a==="length"||a==="size"||a==="bg-size",Ys=a=>a==="length",il=a=>a==="number",Js=a=>a==="family-name",Qs=a=>a==="number"||a==="weight",Xs=a=>a==="shadow",ll=ji(()=>{const a=Ie("color"),e=Ie("font"),t=Ie("text"),n=Ie("font-weight"),s=Ie("tracking"),r=Ie("leading"),i=Ie("breakpoint"),l=Ie("container"),c=Ie("spacing"),d=Ie("radius"),u=Ie("shadow"),p=Ie("inset-shadow"),m=Ie("text-shadow"),h=Ie("drop-shadow"),b=Ie("blur"),w=Ie("perspective"),C=Ie("aspect"),y=Ie("ease"),_=Ie("animate"),N=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],I=()=>[...A(),U,B],T=()=>["auto","hidden","clip","visible","scroll"],x=()=>["auto","contain","none"],v=()=>[U,B,c],L=()=>[da,"full","auto",...v()],V=()=>[He,"none","subgrid",U,B],O=()=>["auto",{span:["full",He,U,B]},He,U,B],q=()=>[He,"auto",U,B],F=()=>["auto","min","max","fr",U,B],J=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],H=()=>["start","end","center","stretch","center-safe","end-safe"],z=()=>["auto",...v()],ne=()=>[da,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...v()],ae=()=>[da,"screen","full","dvw","lvw","svw","min","max","fit",...v()],W=()=>[da,"screen","full","lh","dvh","lvh","svh","min","max","fit",...v()],S=()=>[a,U,B],ue=()=>[...A(),Ks,Gs,{position:[U,B]}],pe=()=>["no-repeat",{repeat:["","x","y","space","round"]}],_e=()=>["auto","cover","contain",sl,Xi,{size:[U,B]}],M=()=>[En,Ja,_a],G=()=>["","none","full",d,U,B],Z=()=>["",ee,Ja,_a],te=()=>["solid","dashed","dotted","double"],Ae=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],se=()=>[ee,En,Ks,Gs],Ce=()=>["","none",b,U,B],Pe=()=>["none",ee,U,B],Se=()=>["none",ee,U,B],ea=()=>[ee,U,B],Ee=()=>[da,"full",...v()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[na],breakpoint:[na],color:[qs],container:[na],"drop-shadow":[na],ease:["in","out","in-out"],font:[Ji],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[na],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[na],shadow:[na],spacing:["px",ee],text:[na],"text-shadow":[na],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",da,B,U,C]}],container:["container"],"container-type":[{"@container":["","normal","size",U,B]}],"container-named":[Qi],columns:[{columns:[ee,B,U,l]}],"break-after":[{"break-after":N()}],"break-before":[{"break-before":N()}],"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:I()}],overflow:[{overflow:T()}],"overflow-x":[{"overflow-x":T()}],"overflow-y":[{"overflow-y":T()}],overscroll:[{overscroll:x()}],"overscroll-x":[{"overscroll-x":x()}],"overscroll-y":[{"overscroll-y":x()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:L()}],"inset-x":[{"inset-x":L()}],"inset-y":[{"inset-y":L()}],start:[{"inset-s":L(),start:L()}],end:[{"inset-e":L(),end:L()}],"inset-bs":[{"inset-bs":L()}],"inset-be":[{"inset-be":L()}],top:[{top:L()}],right:[{right:L()}],bottom:[{bottom:L()}],left:[{left:L()}],visibility:["visible","invisible","collapse"],z:[{z:[He,"auto",U,B]}],basis:[{basis:[da,"full","auto",l,...v()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ee,da,"auto","initial","none",B]}],grow:[{grow:["",ee,U,B]}],shrink:[{shrink:["",ee,U,B]}],order:[{order:[He,"first","last","none",U,B]}],"grid-cols":[{"grid-cols":V()}],"col-start-end":[{col:O()}],"col-start":[{"col-start":q()}],"col-end":[{"col-end":q()}],"grid-rows":[{"grid-rows":V()}],"row-start-end":[{row:O()}],"row-start":[{"row-start":q()}],"row-end":[{"row-end":q()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":F()}],"auto-rows":[{"auto-rows":F()}],gap:[{gap:v()}],"gap-x":[{"gap-x":v()}],"gap-y":[{"gap-y":v()}],"justify-content":[{justify:[...J(),"normal"]}],"justify-items":[{"justify-items":[...H(),"normal"]}],"justify-self":[{"justify-self":["auto",...H()]}],"align-content":[{content:["normal",...J()]}],"align-items":[{items:[...H(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...H(),{baseline:["","last"]}]}],"place-content":[{"place-content":J()}],"place-items":[{"place-items":[...H(),"baseline"]}],"place-self":[{"place-self":["auto",...H()]}],p:[{p:v()}],px:[{px:v()}],py:[{py:v()}],ps:[{ps:v()}],pe:[{pe:v()}],pbs:[{pbs:v()}],pbe:[{pbe:v()}],pt:[{pt:v()}],pr:[{pr:v()}],pb:[{pb:v()}],pl:[{pl:v()}],m:[{m:z()}],mx:[{mx:z()}],my:[{my:z()}],ms:[{ms:z()}],me:[{me:z()}],mbs:[{mbs:z()}],mbe:[{mbe:z()}],mt:[{mt:z()}],mr:[{mr:z()}],mb:[{mb:z()}],ml:[{ml:z()}],"space-x":[{"space-x":v()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":v()}],"space-y-reverse":["space-y-reverse"],size:[{size:ne()}],"inline-size":[{inline:["auto",...ae()]}],"min-inline-size":[{"min-inline":["auto",...ae()]}],"max-inline-size":[{"max-inline":["none",...ae()]}],"block-size":[{block:["auto",...W()]}],"min-block-size":[{"min-block":["auto",...W()]}],"max-block-size":[{"max-block":["none",...W()]}],w:[{w:[l,"screen",...ne()]}],"min-w":[{"min-w":[l,"screen","none",...ne()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[i]},...ne()]}],h:[{h:["screen","lh",...ne()]}],"min-h":[{"min-h":["screen","lh","none",...ne()]}],"max-h":[{"max-h":["screen","lh",...ne()]}],"font-size":[{text:["base",t,Ja,_a]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,ol,el]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",En,B]}],"font-family":[{font:[nl,al,e]}],"font-features":[{"font-features":[B]}],"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:[s,U,B]}],"line-clamp":[{"line-clamp":[ee,"none",U,Ws]}],leading:[{leading:[r,...v()]}],"list-image":[{"list-image":["none",U,B]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",U,B]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:S()}],"text-color":[{text:S()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...te(),"wavy"]}],"text-decoration-thickness":[{decoration:[ee,"from-font","auto",U,_a]}],"text-decoration-color":[{decoration:S()}],"underline-offset":[{"underline-offset":[ee,"auto",U,B]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:v()}],"tab-size":[{tab:[He,U,B]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",U,B]}],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",U,B]}],"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:pe()}],"bg-size":[{bg:_e()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},He,U,B],radial:["",U,B],conic:[He,U,B]},rl,tl]}],"bg-color":[{bg:S()}],"gradient-from-pos":[{from:M()}],"gradient-via-pos":[{via:M()}],"gradient-to-pos":[{to:M()}],"gradient-from":[{from:S()}],"gradient-via":[{via:S()}],"gradient-to":[{to:S()}],rounded:[{rounded:G()}],"rounded-s":[{"rounded-s":G()}],"rounded-e":[{"rounded-e":G()}],"rounded-t":[{"rounded-t":G()}],"rounded-r":[{"rounded-r":G()}],"rounded-b":[{"rounded-b":G()}],"rounded-l":[{"rounded-l":G()}],"rounded-ss":[{"rounded-ss":G()}],"rounded-se":[{"rounded-se":G()}],"rounded-ee":[{"rounded-ee":G()}],"rounded-es":[{"rounded-es":G()}],"rounded-tl":[{"rounded-tl":G()}],"rounded-tr":[{"rounded-tr":G()}],"rounded-br":[{"rounded-br":G()}],"rounded-bl":[{"rounded-bl":G()}],"border-w":[{border:Z()}],"border-w-x":[{"border-x":Z()}],"border-w-y":[{"border-y":Z()}],"border-w-s":[{"border-s":Z()}],"border-w-e":[{"border-e":Z()}],"border-w-bs":[{"border-bs":Z()}],"border-w-be":[{"border-be":Z()}],"border-w-t":[{"border-t":Z()}],"border-w-r":[{"border-r":Z()}],"border-w-b":[{"border-b":Z()}],"border-w-l":[{"border-l":Z()}],"divide-x":[{"divide-x":Z()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Z()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...te(),"hidden","none"]}],"divide-style":[{divide:[...te(),"hidden","none"]}],"border-color":[{border:S()}],"border-color-x":[{"border-x":S()}],"border-color-y":[{"border-y":S()}],"border-color-s":[{"border-s":S()}],"border-color-e":[{"border-e":S()}],"border-color-bs":[{"border-bs":S()}],"border-color-be":[{"border-be":S()}],"border-color-t":[{"border-t":S()}],"border-color-r":[{"border-r":S()}],"border-color-b":[{"border-b":S()}],"border-color-l":[{"border-l":S()}],"divide-color":[{divide:S()}],"outline-style":[{outline:[...te(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ee,U,B]}],"outline-w":[{outline:["",ee,Ja,_a]}],"outline-color":[{outline:S()}],shadow:[{shadow:["","none",u,Ot,Ft]}],"shadow-color":[{shadow:S()}],"inset-shadow":[{"inset-shadow":["none",p,Ot,Ft]}],"inset-shadow-color":[{"inset-shadow":S()}],"ring-w":[{ring:Z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:S()}],"ring-offset-w":[{"ring-offset":[ee,_a]}],"ring-offset-color":[{"ring-offset":S()}],"inset-ring-w":[{"inset-ring":Z()}],"inset-ring-color":[{"inset-ring":S()}],"text-shadow":[{"text-shadow":["none",m,Ot,Ft]}],"text-shadow-color":[{"text-shadow":S()}],opacity:[{opacity:[ee,U,B]}],"mix-blend":[{"mix-blend":[...Ae(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ae()}],"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":[ee]}],"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":S()}],"mask-image-linear-to-color":[{"mask-linear-to":S()}],"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":S()}],"mask-image-t-to-color":[{"mask-t-to":S()}],"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":S()}],"mask-image-r-to-color":[{"mask-r-to":S()}],"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":S()}],"mask-image-b-to-color":[{"mask-b-to":S()}],"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":S()}],"mask-image-l-to-color":[{"mask-l-to":S()}],"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":S()}],"mask-image-x-to-color":[{"mask-x-to":S()}],"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":S()}],"mask-image-y-to-color":[{"mask-y-to":S()}],"mask-image-radial":[{"mask-radial":[U,B]}],"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":S()}],"mask-image-radial-to-color":[{"mask-radial-to":S()}],"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":A()}],"mask-image-conic-pos":[{"mask-conic":[ee]}],"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":S()}],"mask-image-conic-to-color":[{"mask-conic-to":S()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ue()}],"mask-repeat":[{mask:pe()}],"mask-size":[{mask:_e()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",U,B]}],filter:[{filter:["","none",U,B]}],blur:[{blur:Ce()}],brightness:[{brightness:[ee,U,B]}],contrast:[{contrast:[ee,U,B]}],"drop-shadow":[{"drop-shadow":["","none",h,Ot,Ft]}],"drop-shadow-color":[{"drop-shadow":S()}],grayscale:[{grayscale:["",ee,U,B]}],"hue-rotate":[{"hue-rotate":[ee,U,B]}],invert:[{invert:["",ee,U,B]}],saturate:[{saturate:[ee,U,B]}],sepia:[{sepia:["",ee,U,B]}],"backdrop-filter":[{"backdrop-filter":["","none",U,B]}],"backdrop-blur":[{"backdrop-blur":Ce()}],"backdrop-brightness":[{"backdrop-brightness":[ee,U,B]}],"backdrop-contrast":[{"backdrop-contrast":[ee,U,B]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ee,U,B]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ee,U,B]}],"backdrop-invert":[{"backdrop-invert":["",ee,U,B]}],"backdrop-opacity":[{"backdrop-opacity":[ee,U,B]}],"backdrop-saturate":[{"backdrop-saturate":[ee,U,B]}],"backdrop-sepia":[{"backdrop-sepia":["",ee,U,B]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":v()}],"border-spacing-x":[{"border-spacing-x":v()}],"border-spacing-y":[{"border-spacing-y":v()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",U,B]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ee,"initial",U,B]}],ease:[{ease:["linear","initial",y,U,B]}],delay:[{delay:[ee,U,B]}],animate:[{animate:["none",_,U,B]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,U,B]}],"perspective-origin":[{"perspective-origin":I()}],rotate:[{rotate:Pe()}],"rotate-x":[{"rotate-x":Pe()}],"rotate-y":[{"rotate-y":Pe()}],"rotate-z":[{"rotate-z":Pe()}],scale:[{scale:Se()}],"scale-x":[{"scale-x":Se()}],"scale-y":[{"scale-y":Se()}],"scale-z":[{"scale-z":Se()}],"scale-3d":["scale-3d"],skew:[{skew:ea()}],"skew-x":[{"skew-x":ea()}],"skew-y":[{"skew-y":ea()}],transform:[{transform:[U,B,"","none","gpu","cpu"]}],"transform-origin":[{origin:I()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ee()}],"translate-x":[{"translate-x":Ee()}],"translate-y":[{"translate-y":Ee()}],"translate-z":[{"translate-z":Ee()}],"translate-none":["translate-none"],zoom:[{zoom:[He,U,B]}],accent:[{accent:S()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:S()}],"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",U,B]}],"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":S()}],"scrollbar-track-color":[{"scrollbar-track":S()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":v()}],"scroll-mx":[{"scroll-mx":v()}],"scroll-my":[{"scroll-my":v()}],"scroll-ms":[{"scroll-ms":v()}],"scroll-me":[{"scroll-me":v()}],"scroll-mbs":[{"scroll-mbs":v()}],"scroll-mbe":[{"scroll-mbe":v()}],"scroll-mt":[{"scroll-mt":v()}],"scroll-mr":[{"scroll-mr":v()}],"scroll-mb":[{"scroll-mb":v()}],"scroll-ml":[{"scroll-ml":v()}],"scroll-p":[{"scroll-p":v()}],"scroll-px":[{"scroll-px":v()}],"scroll-py":[{"scroll-py":v()}],"scroll-ps":[{"scroll-ps":v()}],"scroll-pe":[{"scroll-pe":v()}],"scroll-pbs":[{"scroll-pbs":v()}],"scroll-pbe":[{"scroll-pbe":v()}],"scroll-pt":[{"scroll-pt":v()}],"scroll-pr":[{"scroll-pr":v()}],"scroll-pb":[{"scroll-pb":v()}],"scroll-pl":[{"scroll-pl":v()}],"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",U,B]}],fill:[{fill:["none",...S()]}],"stroke-w":[{stroke:[ee,Ja,_a,Ws]}],stroke:[{stroke:["none",...S()]}],"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 ll(yi(a))}function ie(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 sa(a,e="en-US"){return new Date(a).toLocaleDateString(e,{month:"short",day:"numeric",year:"numeric"})}function er(a,e){const t=new Date(a);return t.setDate(t.getDate()+e),t.toISOString()}function de(a,e="en-US"){return new Intl.NumberFormat(e).format(a)}function Na(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 he(a){return a.replace("Plan - ","")}function Qa(a){return{usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",jpy:"¥"}[a.toLowerCase()]??`${a.toUpperCase()} `}const Sa=["community","plus","team","enterprise","managed"],dl=["community","plus","team","enterprise","managed"];function be(a){var n;const e=a.name.toLowerCase();if(e.includes("community")||e.includes("pay-as-you-go")||e.includes("free"))return"community";if(e.includes("plus"))return"plus";if(e.includes("team"))return"team";if(e.includes("managed"))return"managed";if(e.includes("enterprise"))return"enterprise";const t=(n=a.metadata)==null?void 0:n.legacyName;return dl.find(s=>s===t)??"community"}const Fn="https://botpress.com/contact-us/managed-plan",ua={conversation_sessions_addon:"addonNameConversationSessions",storage_addon:"addonNameStorage"},ar={conversation_sessions_addon:"addonDescriptionConversationSessions",storage_addon:"addonDescriptionStorage"};function Mt(a,e,t){return a.prices[e.id]??a.prices[be(e)]??a.prices[t]??null}function Xa(a){return a.replace("Add-on - ","")}function tr(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 nr=[{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 sr(a,e,t){var s;if(!e)return[];const n=[];for(const r of nr){const i=a.features[r.key]??0;let l=0;for(const c of e){const d=((s=c.increments)==null?void 0:s[r.key])??0,u=t[c.id]??0;l+=d*u}l>0&&n.push({...r,now:i,next:i+l})}return n}function rr(a,e,t){var s;if(!a)return[];const n=[];for(const r of nr){const i=a.features[r.key]??0;let l=0;for(const c of e??[])l+=(((s=c.increments)==null?void 0:s[r.key])??0)*(t[c.id]??0);(i>0||l>0)&&n.push({...r,base:i,added:l,total:i+l})}return n}function Bt(a,e,t){var i;const n=tr(a);if(!n)return null;const s=((i=n.increments)==null?void 0:i.conversation_sessions)??0,r=Mt(n,e,t);return s<=0||!r||r.amount<=0?null:{packSize:s,amount:r.amount,currency:r.currency}}const On={"AI usage included":{label:"planFeatureAiUsageIncluded",desc:"planFeatureDescAiUsageIncluded"},"3 seats":{label:"planFeature3Seats",desc:"planFeatureDesc3Seats"},"3 AI agents":{label:"planFeature3AiAgents",desc:"planFeatureDesc3AiAgents"},"Botpress Desk":{label:"planFeatureBotpressDesk",desc:"planFeatureDescBotpressDesk"},"Botpress Studio + ADK":{label:"planFeatureBotpressStudioAdk",desc:"planFeatureDescBotpressStudioAdk"},"Help center":{label:"planFeatureHelpCenter",desc:"planFeatureDescHelpCenter"},"1K table rows":{label:"planFeature1kTableRows",desc:"planFeatureDesc1kTableRows"},"100K table rows":{label:"planFeature100kTableRows",desc:"planFeatureDesc100kTableRows"},"500K table rows":{label:"planFeature500kTableRows",desc:"planFeatureDesc500kTableRows"},"100MB file storage":{label:"planFeature100mbFileStorage",desc:"planFeatureDesc100mbFileStorage"},"10GB file storage":{label:"planFeature10gbFileStorage",desc:"planFeatureDesc10gbFileStorage"},"50GB file storage":{label:"planFeature50gbFileStorage",desc:"planFeatureDesc50gbFileStorage"},"100MB vector DB storage":{label:"planFeature100mbVectorDb",desc:"planFeatureDesc100mbVectorDb"},"1GB vector DB storage":{label:"planFeature1gbVectorDb",desc:"planFeatureDesc1gbVectorDb"},"5GB vector DB storage":{label:"planFeature5gbVectorDb",desc:"planFeatureDesc5gbVectorDb"},"Community support":{label:"planFeatureCommunitySupport",desc:"planFeatureDescCommunitySupport"},"Unlimited AI agents":{label:"planFeatureUnlimitedAiAgents",desc:"planFeatureDescUnlimitedAiAgents"},"WhatsApp channel":{label:"planFeatureWhatsappChannel",desc:"planFeatureDescWhatsappChannel"},"Help Center custom domain":{label:"planFeatureHelpCenterCustomDomain",desc:"planFeatureDescHelpCenterCustomDomain"},"Whitelabel webchat":{label:"planFeatureWhitelabelWebchat",desc:"planFeatureDescWhitelabelWebchat"},"Technical support via live chat":{label:"planFeatureTechnicalSupportLiveChat",desc:"planFeatureDescTechnicalSupportLiveChat"},"Unlimited seats":{label:"planFeatureUnlimitedSeats",desc:"planFeatureDescUnlimitedSeats"},"Teams, routing & RBAC":{label:"planFeatureTeamsRoutingRbac",desc:"planFeatureDescTeamsRoutingRbac"},"Team-level analytics":{label:"planFeatureTeamLevelAnalytics",desc:"planFeatureDescTeamLevelAnalytics"},"Voice channel":{label:"planFeatureVoiceChannel",desc:"planFeatureDescVoiceChannel"},"Dedicated support":{label:"planFeatureDedicatedSupport",desc:"planFeatureDescDedicatedSupport"},"SLA & security review":{label:"planFeatureSlaSecurity",desc:"planFeatureDescSlaSecurity"},"Custom storage":{label:"planFeatureCustomStorage",desc:"planFeatureDescCustomStorage"}},cl={community:"planDescriptionCommunity",plus:"planDescriptionPlus",team:"planDescriptionTeam",enterprise:"planDescriptionEnterprise",managed:"planDescriptionManaged"},Ut={community:["AI usage included","3 seats","3 AI agents","Botpress Desk","Botpress Studio + ADK","Help center","1K table rows","100MB file storage","100MB vector DB storage","Community support"],plus:["Unlimited AI agents","WhatsApp channel","Help Center custom domain","Whitelabel webchat","100K table rows","10GB file storage","1GB vector DB storage","Technical support via live chat"],team:["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:[]},zt=({variant:a="accent",children:e,className:t})=>o.jsx("span",{className:K("bpb-badge",`bpb-badge--${a}`,t),children:e}),Te=({variant:a="primary",size:e="md",block:t=!1,loading:n=!1,className:s,disabled:r,children:i,type:l="button",...c})=>o.jsxs("button",{type:l,className:K("bpb-btn",`bpb-btn--${a}`,`bpb-btn--${e}`,t&&"bpb-btn--block",s),disabled:r||n,"data-loading":n||void 0,...c,children:[n&&o.jsx("span",{className:"bpb-btn__spinner","aria-hidden":!0}),o.jsx("span",{className:"bpb-btn__label",children:i})]}),ce=(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}),or=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M3 8.5l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Mn=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),ir=({size:a,...e})=>o.jsx("svg",{...ce(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"})}),Bn=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),lr=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M6 2.5h3v1.6a1.4 1.4 0 102.8 0V2.5h1.7v3h-1.6a1.4 1.4 0 100 2.8h1.6v3h-3v1.6a1.4 1.4 0 11-2.8 0v-1.6h-3v-3h1.6a1.4 1.4 0 100-2.8H2.5v-3H6z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),jt=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),dr=({size:a,...e})=>o.jsx("svg",{...ce(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"})}),Vt=({size:a,...e})=>o.jsx("svg",{...ce(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"})}),cr=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),ur=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),pr=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),mr=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),Un=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),ul=({size:a,...e})=>o.jsx("svg",{...ce(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"})}),pl=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),Zt=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),qt=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M4 6.5L8 10.5l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),zn=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M10 3.5L5.5 8l4.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),ka=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M6 3.5L10.5 8L6 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),hr=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),jn=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),gr=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),et=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M9 3.5h3.5V7M12 4L7 9M11 9.5v2a1 1 0 01-1 1H4.5a1 1 0 01-1-1V6a1 1 0 011-1h2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),ml=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),Wt=({size:a,...e})=>o.jsx("svg",{...ce(a,e),children:o.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Vn=({size:a,...e})=>o.jsx("svg",{...ce(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"})}),hl=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),fr=({size:a,...e})=>o.jsxs("svg",{...ce(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"})]}),Zn=({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 Gt(a){const e=a.toLowerCase();return/seat|member|user|team|rbac|rout/.test(e)?cr:/analytic|report|insight|dashboard/.test(e)?ur:/whatsapp|channel|chat|message|conversation|webchat|voice/.test(e)?ir:/storage|table|vector|file|gb|rows|db/.test(e)?jt:/domain|help center|whitelabel|website|url|web/.test(e)?pr:/brand|theme|custom|white-?label/.test(e)?mr:/unlimited|infinit/.test(e)?dr:/security|sla|compliance|soc|audit/.test(e)||/support|sla|dedicated|priority/.test(e)?Bn:/integration|api|plugin|sdk|adk|studio/.test(e)?lr:/ai|agent|model|gpt|llm/.test(e)?Vt:Mn}const Ue=({open:a,onOpenChange:e,size:t="md",children:n,className:s,showClose:r=!0,...i})=>{const l=P.useRef(null),c=fi(),d=bi(),u=P.useCallback(()=>e(!1),[e]);return P.useEffect(()=>{var h;if(!a)return;const p=b=>{b.key==="Escape"&&u()};document.addEventListener("keydown",p);const m=document.body.style.overflow;return document.body.style.overflow="hidden",(h=l.current)==null||h.focus(),()=>{document.removeEventListener("keydown",p),document.body.style.overflow=m}},[a,u]),a?ho.createPortal(o.jsx("div",{className:"bpb-portal bpb-dialog__overlay","data-bpb-theme":c?"dark":"light","data-bpb-color-scheme":d,onClick:u,children:o.jsxs("div",{ref:l,role:"dialog","aria-modal":"true","aria-label":i["aria-label"],tabIndex:-1,className:K("bpb-dialog",`bpb-dialog--${t}`,s),onClick:p=>p.stopPropagation(),children:[r&&o.jsx("button",{type:"button",className:"bpb-dialog__close","aria-label":"Close",onClick:u,children:o.jsx(Zt,{size:18})}),n]})}),document.body):null},at=({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})]}),wa=()=>{const{manageBillingUrl:a}=Q(),{t:e}=ge();return o.jsxs("div",{className:"bpb-outdated",children:[o.jsx("h3",{className:"bpb-outdated__title",children:e("outdatedTitle")}),o.jsx("p",{className:"bpb-outdated__text",children:e("outdatedText")}),a&&o.jsxs(Te,{variant:"primary",onClick:()=>window.open(a,"_blank","noopener"),children:[e("outdatedCta"),o.jsx(et,{size:15})]})]})},br=({options:a,value:e,onChange:t,className:n,...s})=>o.jsx("div",{role:"radiogroup","aria-label":s["aria-label"],className:K("bpb-segmented",n),children:a.map(r=>{const i=r.value===e;return o.jsxs("button",{type:"button",role:"radio","aria-checked":i,className:K("bpb-segmented__option",i&&"bpb-segmented__option--selected"),onClick:()=>t(r.value),children:[r.label,r.badge&&o.jsx("span",{className:"bpb-segmented__badge",children:r.badge})]},r.value)})}),le=({width:a,height:e=14,rounded:t=!1,className:n})=>o.jsx("span",{"aria-hidden":!0,className:K("bpb-skeleton",t&&"bpb-skeleton--rounded",n),style:{width:a??"100%",height:e}});function gl(a,e){const t=a.prices[e];return t||((e==="month"?a.prices.year:a.prices.month)??null)}function fl(a,e){var s,r;const t=(s=a.prices.month)==null?void 0:s.amount;if(e==="month")return t??null;const n=((r=a.prices.year)==null?void 0:r.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}function bl(a){var t,n;let e=0;for(const s of a){const r=(t=s.prices.month)==null?void 0:t.amount,i=(n=s.prices.year)==null?void 0:n.amount;r&&i&&r>0&&(e=Math.max(e,1-i/(r*12)))}return Math.round(e*100)}const yr=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",defaultInterval:s="year",excludePlanIds:r=[],planFeatures:i={},featureDescriptions:l})=>{var ne,ae,W;const{isOutdatedBilling:c,toast:d,analytics:u}=Q(),{t:p}=ge(),[m,h]=P.useState(s),{data:b,isLoading:w}=$e(),{data:C}=ya(),{data:y}=Ze({enabled:a}),{data:_}=kn({enabled:a}),N=Pn(),A=(_==null?void 0:_.planReadonly)??!1;P.useEffect(()=>{a&&u.capture(Ne.PLAN_PICKER_VIEWED,{interval:m})},[a,u]);const I=S=>{S!==m&&u.capture(Ne.PLAN_INTERVAL_TOGGLED,{interval:S}),h(S)},T=y==null?void 0:y.plan.current.interval,x=b==null?void 0:b.find(S=>S.id===(y==null?void 0:y.plan.current.planId)),v=y?x?be(x):"community":void 0,L=((ne=y==null?void 0:y.plan.next)==null?void 0:ne.planId)??null,V=!!L&&L!==(y==null?void 0:y.plan.current.planId),O=A||v==="enterprise"||v==="managed",q=P.useMemo(()=>b?b.filter(S=>be(S)!=="managed"&&be(S)!=="enterprise"&&!r.includes(S.id)).sort((S,ue)=>Sa.indexOf(be(S))-Sa.indexOf(be(ue))):[],[b,r]),F=P.useMemo(()=>bl(q),[q]),J=((W=(ae=b==null?void 0:b.find(S=>be(S)==="enterprise"))==null?void 0:ae.metadata)==null?void 0:W.contact_url)??Fn,H=S=>{N.mutate({planId:S.id,interval:m},{onSuccess:()=>{u.capture(Ne.PLAN_DOWNGRADED,{plan_name:he(S.name),interval:m,previous_plan_name:x?he(x.name):void 0}),d({type:"success",message:p("upgradeDowngradeSuccess")})},onError:()=>d({type:"error",message:p("upgradeDowngradeError")})})},z=()=>{y&&N.mutate({planId:y.plan.current.planId,interval:y.plan.current.interval},{onSuccess:()=>{u.capture(Ne.PLAN_DOWNGRADE_CANCELLED,{plan_name:x?he(x.name):y.plan.current.planId}),d({type:"success",message:p("upgradeCancelDowngradeSuccess")})},onError:()=>d({type:"error",message:p("upgradeCancelDowngradeError")})})};return c?o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:o.jsx(wa,{})}):o.jsx(Ue,{open:a,onOpenChange:e,size:"xl","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:o.jsxs("div",{className:"bpb-upgrade",children:[o.jsx("h2",{className:"bpb-upgrade__title",children:p("upgradeDialogTitle")}),o.jsx("div",{className:"bpb-upgrade__toggle",children:o.jsx(br,{"aria-label":p("dashboardBillingPeriod"),value:m,onChange:I,options:[{value:"month",label:p("upgradeMonthly")},{value:"year",label:p("upgradeAnnual"),badge:F>0?p("upgradeSaveBadge",{savings:F}):void 0}]})}),o.jsxs("div",{className:"bpb-upgrade__grid",children:[w&&[0,1,2].map(S=>o.jsxs("div",{className:"bpb-plan-card","aria-hidden":!0,children:[o.jsx(le,{width:120,height:22}),o.jsx(le,{width:90,height:40}),o.jsx(le,{width:"100%",height:36,rounded:!0}),o.jsx(le,{width:"100%",height:140})]},S)),q.map((S,ue)=>{var me,ke;const pe=be(S),_e=gl(S,m),M=fl(S,m),G=(((me=S.prices.month)==null?void 0:me.amount)??0)<=0,Z=pe===v,te=Z&&(v==="community"||m===T),Ae=pe===v&&v!=="community"&&m!==T,se=!!L&&S.id===L&&!te,Ce=v!==void 0&&Sa.indexOf(pe)<Sa.indexOf(v),Pe=(pe===n||S.id===n)&&!te,Se=Z&&V?"cancel_downgrade":te?"current":Ae?"switch_interval":se?"next":Ce?"downgrade":"upgrade",ea=ue>0?q[ue-1]:void 0,Ee=i[pe]??Ut[pe],xa=S.features.conversation_sessions,re=Bt(C,S,m),xe=N.isPending&&(Se==="downgrade"&&((ke=N.variables)==null?void 0:ke.planId)===S.id||Se==="cancel_downgrade");return o.jsxs("div",{className:K("bpb-plan-card",Pe&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":S.id,children:[o.jsxs("div",{className:"bpb-plan-card__header",children:[o.jsxs("h3",{className:"bpb-plan-card__name",children:[he(S.name),Pe&&o.jsx(zt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("p",{className:"bpb-plan-card__tagline",children:p(cl[be(S)])}),o.jsx("div",{className:"bpb-plan-card__price",children:M!==null&&_e?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-plan-card__currency",children:Qa(_e.currency)}),o.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(M)?M:M.toFixed(2).replace(/\.00$/,"")}),o.jsx("span",{className:"bpb-plan-card__per",children:p("upgradePerMonthSuffix",{currency:_e.currency.toUpperCase()})})]}):o.jsx("span",{className:"bpb-plan-card__amount",children:ie(0,"usd",0)})})]}),xa!==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:de(xa)}),o.jsx("span",{className:"bpb-plan-card__metric-unit",children:p(G?"conversationsUnit":"conversationsPerMonth")})]}),re?o.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeThenPer",{price:ie(re.amount,re.currency,0),packSize:de(re.packSize)})}):o.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeNoTopup")})]}),Se==="current"&&o.jsx(Te,{variant:"outline",block:!0,disabled:!0,children:p("upgradeCurrentPlan")}),Se==="next"&&o.jsx(Te,{variant:"outline",block:!0,disabled:!0,children:p("upgradeNextPlan")}),Se==="cancel_downgrade"&&o.jsx(Te,{variant:"primary",block:!0,loading:xe,onClick:z,children:p("upgradeCancelDowngrade")}),Se==="downgrade"&&o.jsx(Te,{variant:"outline",block:!0,disabled:O||N.isPending,loading:xe,onClick:()=>H(S),children:p("upgradeDowngrade")}),Se==="switch_interval"&&o.jsx(Te,{variant:"primary",block:!0,disabled:O||N.isPending,title:O?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(Ne.PLAN_UPGRADE_INITIATED,{plan_name:he(S.name),interval:m,current_plan_name:x?he(x.name):void 0}),t(S.id,m)},children:p(m==="year"?"upgradeSwitchToAnnual":"upgradeSwitchToMonthly")}),Se==="upgrade"&&o.jsx(Te,{variant:Pe?"accent":"primary",block:!0,disabled:O||N.isPending,title:O?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(Ne.PLAN_UPGRADE_INITIATED,{plan_name:he(S.name),interval:m,current_plan_name:x?he(x.name):void 0}),t(S.id,m)},children:p("upgradeUpgrade")}),o.jsxs("ul",{className:"bpb-plan-card__features",children:[ea&&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(or,{size:13})}),o.jsx("span",{children:p("upgradeEverythingIn",{planName:he(ea.name)})})]}),Ee.map(Oe=>{const Da=Gt(Oe),aa=On[Oe],Nt=aa!==void 0?p(aa.label):Oe,ta=(l==null?void 0:l[Oe])??(aa!==void 0?p(aa.desc):void 0);return o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(Da,{size:13})}),ta?o.jsx(at,{label:Nt,children:ta}):o.jsx("span",{children:Nt})]},Oe)})]})]},S.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"}),"."]})]})})},qn='-apple-system, "ui-sans-serif", "system-ui", "Segoe UI", Helvetica, Arial, sans-serif',Wn="14px",vr="10px";function Gn(a){return a?{theme:"night",variables:{fontFamily:qn,fontSizeBase:Wn,borderRadius:vr,colorPrimary:"#ececec",colorBackground:"#1c1c1c",colorText:"#f9f9f9",colorTextSecondary:"#b4b4b4",colorTextPlaceholder:"#9b9b9b",colorDanger:"#ff8583"},rules:{".Input":{backgroundColor:"#212121",border:"1px solid rgba(255,255,255,0.12)",boxShadow:"none",color:"#f9f9f9"},".Input:focus":{border:"1px solid rgba(255,255,255,0.3)",boxShadow:"none"},".Label":{color:"#ececec",fontWeight:"500",fontSize:"12px"},".Error":{color:"#ff8583"},".Tab":{border:"1px solid rgba(255,255,255,0.12)",boxShadow:"none"}}}:{theme:"stripe",variables:{fontFamily:qn,fontSizeBase:Wn,borderRadius:vr,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 Kn(a){return{base:{fontFamily:qn,fontSize:Wn,color:a?"#f9f9f9":"#0d0d0d","::placeholder":{color:a?"#9b9b9b":"#8f8f8f"}},invalid:{color:a?"#ff8583":"#e02e2a"}}}const yl={pt:"pt-BR",es:"es-419"};function $n(a){const e=a.split("-")[0]??a;return yl[e]??a}function Kt(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 vl(a){const e=new Date(a);return new Date(e.getUTCFullYear(),e.getUTCMonth()+1,0).toISOString()}const _l=4,Cl=({plan:a,interval:e,preview:t,isLoadingPreview:n,isPreviewError:s,canSubscribe:r,isSubmitting:i,onSubscribe:l})=>{var J,H,z,ne,ae;const{locale:c}=Q(),{t:d}=ge(),{data:u}=ya(),p=((J=a==null?void 0:a.prices.month)==null?void 0:J.currency)??((H=a==null?void 0:a.prices.year)==null?void 0:H.currency)??"usd",m=a==null?void 0:a.features.conversation_sessions,h=a&&be(a)==="community"?d("conversationsUnit"):d("conversationsPerMonth"),b=a?Bt(u,a,e):null,w=(t==null?void 0:t.costs.immediate.amountDue)??0,C=(t==null?void 0:t.costs.immediate.accountBalance)??0,y=(t==null?void 0:t.costs.nextCycle.total)??0,_=t!=null&&t.nextBillingDate?er(t.nextBillingDate,1):null,N=_&&!Kt(_)?sa(_,c):null,A=a?Ut[be(a)].slice(0,_l):[],I=a?((z=a.prices[e])==null?void 0:z.amount)??0:0,T=(t==null?void 0:t.costs.immediate.lineItems)??[],x=T.filter(W=>W.type==="discount"),v=T.filter(W=>W.type==="proration_credit"||W.type==="proration_charge").reduce((W,S)=>W+S.amount,0),L=!!(t!=null&&t.subscription.plan.effectiveDate),V=((ne=a==null?void 0:a.prices.month)==null?void 0:ne.amount)??0,O=((ae=a==null?void 0:a.prices.year)==null?void 0:ae.amount)??0,q=e==="year"&&V>0&&O>0?Math.round(V*12-O):0,F=Math.round(q/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?`${he(a.name)} plan`:o.jsx(le,{width:140,height:24})}),m!==void 0&&o.jsxs("div",{className:"bpb-summary__metric",children:[o.jsx("span",{className:"bpb-summary__metric-value",children:de(m)}),o.jsx("span",{className:"bpb-summary__metric-unit",children:h}),b&&o.jsx("span",{className:"bpb-summary__metric-pack",children:d("orderThen",{price:ie(b.amount,b.currency,0),packSize:de(b.packSize)})})]}),A.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"bpb-summary__features-label",children:d("orderTopFeatures")}),o.jsx("ul",{className:"bpb-summary__features",children:A.map(W=>{const S=Gt(W);return o.jsxs("li",{children:[o.jsx(S,{size:16,className:"bpb-summary__feature-icon"}),o.jsx("span",{children:W})]},W)})})]}),o.jsx("hr",{className:"bpb-summary__divider"}),n&&o.jsxs("div",{className:"bpb-summary__lines","aria-busy":"true",children:[o.jsx(le,{height:16}),o.jsx(le,{height:16}),o.jsx(le,{height:20})]}),s&&o.jsx("p",{role:"alert",className:"bpb-summary__error",children:d("orderPreviewError")}),t&&!n&&L&&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:N?d("orderPlanFromDate",{plan:a?he(a.name):"",date:N}):`${a?he(a.name):""} plan`}),o.jsxs("span",{className:"bpb-summary__line-amount",children:[ie(y,p),d(e==="year"?"perYear":"perMonth")]})]}),o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:o.jsx(at,{label:d("orderProratedToday"),children:d("orderProratedTodayDesc")})}),o.jsx("span",{className:"bpb-summary__line-amount",children:ie(w,p)})]}),o.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[o.jsx("span",{children:d("orderDueToday")}),o.jsx("span",{children:ie(w,p)})]}),v<0&&o.jsx("p",{className:"bpb-summary__addon-note",children:d("orderCreditTowardNext",{amount:ie(Math.abs(v),p)})})]}),t&&!n&&!L&&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?he(a.name):""," plan (",d(e==="year"?"orderIntervalAnnual":"orderIntervalMonthly"),")"]}),o.jsxs("span",{className:"bpb-summary__line-amount",children:[ie(I,p),d(e==="year"?"perYear":"perMonth")]})]}),x.map((W,S)=>o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:W.description}),o.jsx("span",{className:"bpb-summary__line-amount",children:ie(W.amount,p)})]},`${W.id}-${S}`)),v!==0&&o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:o.jsx(at,{label:v<0?d("orderCreditUnusedTime"):d("orderAdjustUnusedTime"),children:v<0?d("orderCreditUnusedTimeDesc"):d("orderAdjustUnusedTimeDesc")})}),o.jsx("span",{className:"bpb-summary__line-amount",children:ie(v,p)})]}),C!==0&&o.jsxs("div",{className:"bpb-summary__line",children:[o.jsx("span",{className:"bpb-summary__line-label",children:d("orderAccountCredit")}),o.jsx("span",{className:"bpb-summary__line-amount",children:ie(C,p)})]}),o.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[o.jsx("span",{children:d("orderDueToday")}),o.jsx("span",{children:ie(w,p)})]}),v<0&&w===0&&o.jsx("p",{className:"bpb-summary__addon-note",children:d("orderBalanceAsCredit",{amount:ie(Math.abs(v),p)})})]}),q>0&&o.jsxs("div",{className:"bpb-summary__savings",children:[o.jsx(Mn,{size:18,className:"bpb-summary__savings-icon"}),o.jsx("span",{children:d("orderSavingsNote",{monthlySavings:ie(F,p,0),yearlySavings:ie(q,p,0)})})]}),o.jsx(Te,{variant:"primary",size:"lg",block:!0,className:"bpb-summary__cta",disabled:!r,loading:i,onClick:l,children:d(s?"orderPreviewUnavailable":"orderSubscribe")})]}),o.jsxs("p",{className:"bpb-summary__fineprint",children:[d(e==="month"?"orderRenewsMonthly":"orderRenewsAnnually"),t&&o.jsxs(o.Fragment,{children:[" ",N?d("orderChargedStarting",{amount:ie(y,p),period:d(e==="month"?"perMonthLong":"perYearLong"),date:N}):d("orderChargedNoDate",{amount:ie(y,p),period:d(e==="month"?"perMonthLong":"perYearLong")})]})," ",d("orderCancelNote")]})]})},Nl=["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"],Sl={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:"gb_vat",label:"GB VAT",description:"United Kingdom VAT number"}],AU:[{type:"au_abn",label:"AU ABN",description:"Australian Business 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"}],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"}],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"}]},kl=[{type:"eu_vat",label:"EU VAT",description:"European VAT number"}];function _r(a){if(!a)return[];const e=a.toUpperCase();return Nl.includes(e)?kl:Sl[e]??[]}const $t=({label:a,className:e,id:t,...n})=>a?o.jsxs("label",{className:K("bpb-input",e),children:[o.jsx("span",{className:"bpb-input__label",children:a}),o.jsx("input",{className:"bpb-input__field bpb-input__field--labeled",id:t,...n})]}):o.jsx("input",{className:K("bpb-input__field",e),id:t,...n}),Hn=({label:a,className:e,children:t,...n})=>o.jsxs("label",{className:K("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:K("bpb-input__field bpb-input__field--select",a&&"bpb-input__field--labeled"),...n,children:t}),o.jsx(qt,{size:16,className:"bpb-input__chevron"})]})]}),wl=({plan:a,interval:e,onChange:t})=>{const{t:n}=ge(),s=a.prices.month,r=a.prices.year,i=s&&r&&s.amount>0?Math.round((1-r.amount/(s.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:[s&&o.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:[o.jsx("span",{className:"bpb-interval-card__title",children:n("checkoutMonthlyBilling")}),o.jsxs("span",{className:"bpb-interval-card__price",children:[ie(s.amount,s.currency,0)," ",n("perMonth")]})]}),r&&o.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:[o.jsxs("span",{className:"bpb-interval-card__title",children:[n("checkoutAnnualBilling"),i>0&&o.jsx(zt,{children:n("checkoutSaveBadge",{savings:i})})]}),o.jsxs("span",{className:"bpb-interval-card__price",children:[ie(r.amount/12,r.currency,0)," ",n("perMonth")]})]})]})]})},Cr=({number:a,title:e,onEdit:t})=>{const{t:n}=ge();return o.jsxs("div",{className:"bpb-step__header",children:[t?o.jsxs("button",{type:"button",className:"bpb-step__title bpb-step__title--button",onClick:t,children:[a,". ",e]}):o.jsxs("h3",{className:"bpb-step__title",children:[a,". ",e]}),t&&o.jsx("button",{type:"button",className:"bpb-step__edit",onClick:t,children:n("edit")})]})},Tl=({stepNumber:a,savedCard:e,isDark:t,tab:n,onTabChange:s,onPaymentChange:r})=>{const{t:i}=ge(),[l,c]=P.useState(!1),d=n==="new"||!e;return o.jsxs("section",{className:"bpb-step",children:[o.jsx(Cr,{number:a,title:i("checkoutPaymentMethodTitle")}),e&&o.jsxs("div",{className:"bpb-pay-tabs",role:"tablist","aria-label":i("checkoutPaymentMethodTitle"),children:[o.jsxs("button",{type:"button",role:"tab","aria-selected":n==="saved",className:K("bpb-pay-tab",n==="saved"&&"bpb-pay-tab--selected"),onClick:()=>s("saved"),children:[o.jsx(Un,{size:16}),i("checkoutSavedCardTab")]}),o.jsxs("button",{type:"button",role:"tab","aria-selected":n==="new",className:K("bpb-pay-tab",n==="new"&&"bpb-pay-tab--selected"),onClick:()=>s("new"),children:[o.jsx(Un,{size:16}),i("checkoutNewCardTab")]})]}),e&&n==="saved"&&o.jsxs("div",{className:"bpb-saved-card",children:[o.jsx(Zn,{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)]})]}),d&&o.jsxs("div",{className:"bpb-payment-element",children:[!l&&o.jsx("div",{className:"bpb-payment-element__skeleton",children:o.jsx(le,{height:48})}),o.jsx("div",{className:K("bpb-card-element",!l&&"bpb-payment-element--hidden"),children:o.jsx(Me.CardElement,{options:{style:Kn(t),hidePostalCode:!0},onReady:()=>c(!0),onChange:u=>r(u.complete)})})]})]})},Il=({stepNumber:a,existingAddress:e,customerName:t,isLoading:n,editing:s,onEdit:r,onCancelEdit:i,onReady:l,onCountryChange:c,country:d,isBusiness:u,onIsBusinessChange:p,businessName:m,onBusinessNameChange:h,taxType:b,onTaxTypeChange:w,taxValue:C,onTaxValueChange:y})=>{const{t:_}=ge(),[N,A]=P.useState(!1),I=s||!e,T=_r(d),x=T.find(v=>v.type===b);return o.jsxs("section",{className:"bpb-step",children:[o.jsx(Cr,{number:a,title:_("checkoutBillingAddressTitle")}),n?o.jsx(le,{height:72}):I?o.jsxs("div",{className:"bpb-payment-element",children:[!N&&o.jsxs("div",{className:"bpb-payment-element__skeleton",children:[o.jsx(le,{height:48}),o.jsx(le,{height:48})]}),o.jsx("div",{className:K(!N&&"bpb-payment-element--hidden"),children:o.jsx(Me.AddressElement,{options:{mode:"billing",display:{name:"full"},autocomplete:{mode:"disabled"},defaultValues:e?{name:t??void 0,address:{line1:e.lineOne,line2:e.lineTwo,city:e.city,state:e.state,postal_code:e.postalCode,country:e.country}}:void 0},onReady:()=>{A(!0),l()},onChange:v=>{c(v.value.address.country||void 0)}})}),i&&s&&o.jsx("button",{type:"button",className:"bpb-address-cancel",onClick:i,children:_("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:r,children:_("checkoutUpdateAddress")})]}),o.jsxs("label",{className:"bpb-checkbox",children:[o.jsx("input",{type:"checkbox",checked:u,onChange:v=>{p(v.target.checked),v.target.checked&&!b&&T[0]&&w(T[0].type)}}),o.jsx("span",{children:_("checkoutIsBusiness")})]}),u&&o.jsxs("div",{className:"bpb-business-fields",children:[o.jsx("h4",{className:"bpb-step__subtitle",children:_("checkoutBusinessDetails")}),o.jsx($t,{placeholder:_("checkoutBusinessNamePlaceholder"),value:m,onChange:v=>h(v.target.value),autoComplete:"organization"}),T.length>0?o.jsxs(o.Fragment,{children:[o.jsx(Hn,{"aria-label":_("checkoutTaxIdTypeLabel"),value:b,onChange:v=>w(v.target.value),children:T.map(v=>o.jsxs("option",{value:v.type,children:[v.label," — ",v.description]},v.type))}),o.jsx($t,{placeholder:x?x.description:_("checkoutTaxIdNumberPlaceholder"),value:C,onChange:v=>y(v.target.value),inputMode:"text"})]}):o.jsx("p",{className:"bpb-business-fields__note",children:_(d?"checkoutNoTaxRequired":"checkoutSelectCountryForTax")})]})]})},Al=({planId:a,initialInterval:e,onSuccess:t})=>{var ro;const n=Me.useStripe(),s=Me.useElements(),{email:r,toast:i,analytics:l,isDark:c}=Q(),{t:d}=ge(),[u,p]=P.useState(e),[m,h]=P.useState("payment"),[b,w]=P.useState(null),[C,y]=P.useState(!1),[_,N]=P.useState(!1),[A,I]=P.useState(!1),[T,x]=P.useState(void 0),[v,L]=P.useState(!1),[V,O]=P.useState(""),[q,F]=P.useState(""),[J,H]=P.useState(""),[z,ne]=P.useState(!1),[ae,W]=P.useState(null),[S,ue]=P.useState(!1),pe=wn(),{data:_e}=$e(),{data:M}=Ze(),{data:G,isLoading:Z}=Cn(),{data:te,isLoading:Ae}=Nn(),{data:se}=Sn(),Ce=_e==null?void 0:_e.find(Fe=>Fe.id===a),Pe=((ro=G==null?void 0:G.paymentMethod)==null?void 0:ro.card)??null,Se=(te==null?void 0:te.address)??null;P.useEffect(()=>{b===null&&!Z&&G!==void 0&&w(Pe?"saved":"new")},[b,Z,G,Pe]),P.useEffect(()=>{T===void 0&&Se&&x(Se.country)},[T,Se]);const ea=P.useMemo(()=>({plan:{planId:a,interval:u}}),[a,u]),Ee=_n(ea),xa=Tn(),re=In(),xe=An(),me=Pn(),ke=Ce?he(Ce.name):"",Oe=b==="new"||!Pe,Da=_||!Se,aa=Oe?C:!!Pe,Nt=Da?A:!0;P.useEffect(()=>{h(aa?"address":"payment")},[aa]),P.useEffect(()=>{l.capture(Ne.CHECKOUT_STEP_VIEWED,{plan_name:ke,interval:u,step:m})},[l,m]);const ta=Fe=>{Fe!==u&&l.capture(Ne.CHECKOUT_INTERVAL_CHANGED,{plan_name:ke,interval:Fe}),p(Fe)},rc=Fe=>{l.capture(Ne.PAYMENT_METHOD_SELECTED,{method:Fe==="saved"?"saved_card":"new_card"}),w(Fe)},oc=Fe=>{y(Fe),ue(!1)},ic=!!n&&!!s&&!!Ce&&!Ee.isError&&!!Ee.data&&aa&&Nt&&!z,lc=async()=>{var oo,io,lo,co;if(!n||!s||!Ce)return;ne(!0),W(null);const Fe=(Ea,cn)=>l.capture(Ne.CHECKOUT_ERROR,{plan_name:ke,interval:u,step:m,reason:Ea,message:cn});try{if(l.capture(Ne.PAYMENT_DETAILS_CONFIRMED,{plan_name:ke,interval:u}),Oe&&!S){const La=s.getElement(Me.CardElement);if(!La){W(d("checkoutCardNotReady")),Fe("card_element_not_ready");return}const{clientSecret:ns}=await pe.mutateAsync(),{error:la,setupIntent:Ve}=await n.confirmCardSetup(ns,{payment_method:{card:La}});if(la){W(la.message??d("checkoutPaymentSetupFailed")),l.capture(Ne.CHECKOUT_ERROR,{plan_name:ke,interval:u,step:m,reason:la.code??"card_setup_failed",decline_code:la.decline_code,message:la.message});return}if(!(Ve!=null&&Ve.payment_method)||typeof Ve.payment_method!="string"){W(d("checkoutPaymentMethodMissing")),Fe("payment_method_missing");return}await xa.mutateAsync({paymentMethodId:Ve.payment_method}),ue(!0)}let Ea;if(Da){const La=s.getElement("address");if(La){const{complete:ns,value:la}=await La.getValue();if(!ns||!la.address){W(d("checkoutAddressIncomplete")),Fe("address_incomplete");return}const{address:Ve}=la;Ea=((oo=la.name)==null?void 0:oo.trim())||void 0,await re.mutateAsync({lineOne:Ve.line1??"",lineTwo:Ve.line2??void 0,city:Ve.city??"",state:Ve.state??void 0,postalCode:Ve.postal_code??"",country:Ve.country??""})}}const cn=v&&V.trim()||Ea||void 0,uo=v&&q&&J.trim()?[{type:q,value:J.trim()}]:void 0;(cn!==void 0||uo!==void 0)&&await xe.mutateAsync({name:cn,taxIds:uo});const dc=((io=Ee.data)==null?void 0:io.costs.immediate.amountDue)??0,cc=((lo=Ee.data)==null?void 0:lo.costs.nextCycle.total)??0;await me.mutateAsync({planId:a,interval:u}),l.capture(Ne.PLAN_UPGRADED,{plan_name:ke,interval:u,amount_paid:dc,next_cycle_amount:cc,previous_plan_name:(co=_e==null?void 0:_e.find(La=>La.id===(M==null?void 0:M.plan.current.planId)))==null?void 0:co.name.replace("Plan - ",""),previous_interval:M==null?void 0:M.plan.current.interval}),i({type:"success",message:d("checkoutSuccessToast")}),t()}catch(Ea){W(d("checkoutGenericError")),Fe("exception",Ea instanceof Error?Ea.message:void 0),i({type:"error",message:d("checkoutErrorToast")})}finally{ne(!1)}};return o.jsxs("div",{className:"bpb-checkout__columns",children:[o.jsxs("div",{className:"bpb-checkout__main",children:[Ce&&o.jsx(wl,{plan:Ce,interval:u,onChange:ta}),r&&o.jsxs("section",{className:"bpb-checkout__section",children:[o.jsx("h3",{className:"bpb-checkout__section-title",children:d("checkoutContactInfo")}),o.jsxs("div",{className:"bpb-checkout__static-field",children:[o.jsx("span",{className:"bpb-checkout__static-label",children:d("checkoutEmailLabel")}),o.jsx("span",{children:r})]})]}),o.jsx(Tl,{stepNumber:1,savedCard:Pe,isDark:c,tab:b??"new",onTabChange:rc,onPaymentChange:oc}),m==="address"&&o.jsx(Il,{stepNumber:2,existingAddress:Se,customerName:(se==null?void 0:se.name)??null,isLoading:Ae,editing:_,onEdit:()=>N(!0),onCancelEdit:Se?()=>N(!1):void 0,onReady:()=>I(!0),onCountryChange:x,country:T,isBusiness:v,onIsBusinessChange:L,businessName:V,onBusinessNameChange:O,taxType:q,onTaxTypeChange:F,taxValue:J,onTaxValueChange:H}),ae&&o.jsx("p",{role:"alert",className:"bpb-checkout__submit-error",children:ae})]}),o.jsx("div",{className:"bpb-checkout__aside",children:o.jsx(Cl,{plan:Ce,interval:u,preview:Ee.data,isLoadingPreview:Ee.isLoading,isPreviewError:Ee.isError,canSubscribe:ic,isSubmitting:z,onSubscribe:()=>void lc()})})]})},Nr=({open:a,onOpenChange:e,planId:t,interval:n,onBack:s,onSuccess:r})=>{const{stripePromise:i,isDark:l,locale:c,isOutdatedBilling:d}=Q(),{t:u}=ge(),p=P.useMemo(()=>({appearance:Gn(l),locale:$n(c)}),[l,c]);return d?o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":u("checkoutTitle"),className:"bpb-scope",children:o.jsx(wa,{})}):o.jsx(Ue,{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:[s&&o.jsx("button",{type:"button",className:"bpb-checkout__back","aria-label":u("checkoutBackLabel"),onClick:s,children:o.jsx(zn,{size:18})}),o.jsx("h2",{className:"bpb-checkout__title",children:u("checkoutTitle")})]}),o.jsx(Me.Elements,{stripe:i,options:p,children:o.jsx(Al,{planId:t,initialInterval:n,onSuccess:()=>{e(!1),r==null||r()}})})]})})},Sr=({value:a,onChange:e,min:t=0,max:n,step:s=1,className:r,...i})=>{const l=()=>e(Math.max(t,a-s)),c=()=>e(n===void 0?a+s:Math.min(n,a+s));return o.jsxs("div",{className:K("bpb-stepper",r),children:[o.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Decrease ${i["aria-label"]}`,onClick:l,disabled:a<=t,children:o.jsx(hr,{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:c,disabled:n!==void 0&&a>=n,children:o.jsx(jn,{size:14})})]})},Pl=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:s}=Q(),{t:r}=ge();return s?o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":r("addonsDialogTitle"),className:"bpb-scope",children:o.jsx(wa,{})}):o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":r("addonsDialogTitle"),className:"bpb-scope",children:o.jsx(xl,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},xl=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var S,ue,pe,_e;const{toast:n,locale:s}=Q(),{t:r}=ge(),{data:i}=Ze(),{data:l}=ya(),{data:c}=$e(),{data:d}=kn(),u=Es(),[p,m]=P.useState(null),h=c==null?void 0:c.find(M=>M.id===(i==null?void 0:i.plan.current.planId)),b=(i==null?void 0:i.plan.current.interval)??"month",w=(d==null?void 0:d.addonsReadonly)??!1,C=i==null?void 0:i.plan.current.periodEnd,y=C&&!Kt(C)?sa(C,s):null,_=P.useMemo(()=>{var G;if(!i||!l)return null;const M={};for(const Z of l){const te=i.addons[Z.id];M[Z.id]=((G=te==null?void 0:te.next)==null?void 0:G.quantity)??(te==null?void 0:te.current.quantity)??0}return M},[i,l]),N=p??_,A=P.useMemo(()=>!l||!h?[]:l.flatMap(M=>{const G=Mt(M,h,b);return G?[{addon:M,price:G}]:[]}),[l,h,b]),I=!!N&&!!_&&Object.keys(N).some(M=>N[M]!==_[M]),T=A.reduce((M,{addon:G,price:Z})=>M+((N==null?void 0:N[G.id])??0)*Z.amount,0),x=P.useMemo(()=>h&&N?{plan:{planId:h.id,interval:b},addons:N}:null,[h,b,N]),v=_n(x??{plan:{planId:"",interval:b}},{enabled:!!x&&I}),L=((S=h==null?void 0:h.prices[b])==null?void 0:S.currency)??"usd",V=((ue=v.data)==null?void 0:ue.costs.immediate.amountDue)??0,O=(pe=v.data)==null?void 0:pe.nextBillingDate,q=O&&!Kt(O)?sa(O,s):null,F=((_e=h==null?void 0:h.prices[b])==null?void 0:_e.amount)??0,J=F+T,H=h&&N?sr(h,l,N):[],z=(M,G)=>G==="bytes"?Na(M):de(M),ne=(M,G)=>{const Z=l==null?void 0:l.find(Ce=>Ce.id===M),te=Z==null?void 0:Z.increments;if(!te||G<=0)return null;const Ae=te.conversation_sessions??0;if(Ae>0)return r("addonsConvos",{n:de(Ae*G)});const se=te.file_storage??0;return se>0?Na(se*G):null},ae=()=>{N&&u.mutate({addons:N},{onSuccess:()=>{n({type:"success",message:r("addonsUpdateSuccess")}),a(!1),e==null||e()},onError:()=>n({type:"error",message:r("addonsUpdateError")})})},W=!i||!l||!c;return o.jsxs("div",{className:"bpb-manage-addons",children:[o.jsx("h2",{className:"bpb-manage-addons__title",children:r("addonsDialogTitle")}),(W||A.length>0)&&o.jsx("p",{className:"bpb-manage-addons__subtitle",children:h?r("addonsSubtitleWithPlan",{planName:he(h.name)}):r("addonsSubtitleGeneric")}),W?o.jsxs("div",{className:"bpb-manage-addons__loading","aria-busy":"true",children:[o.jsx(le,{height:56}),o.jsx(le,{height:56})]}):A.length===0?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-manage-addons__upgrade-gate",children:[o.jsx(ml,{size:28,className:"bpb-manage-addons__upgrade-icon"}),o.jsxs("div",{className:"bpb-manage-addons__upgrade-text",children:[o.jsx("p",{className:"bpb-manage-addons__upgrade-title",children:r("addonsRequirePaidPlanTitle")}),o.jsx("p",{className:"bpb-manage-addons__upgrade-body",children:r("addonsRequirePaidPlanBody")})]})]}),o.jsx("div",{className:"bpb-manage-addons__actions",children:t?o.jsx(Te,{variant:"primary",className:"bpb-manage-addons__upgrade-cta",onClick:()=>{a(!1),t()},children:r("addonsUpgradeCta")}):o.jsx(Te,{variant:"outline",onClick:()=>a(!1),children:r("close")})})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"bpb-addons",children:A.map(({addon:M,price:G})=>{var Ce;const Z=((Ce=i==null?void 0:i.addons[M.id])==null?void 0:Ce.current.quantity)??0,te=(N==null?void 0:N[M.id])??0,Ae=te!==Z?te===0?y?r("addonRemovedOnDate",{activeNow:Z,date:y}):r("addonRemovedNextCycle",{activeNow:Z}):y?r("addonChangedOnDate",{activeNow:Z,pending:te,date:y}):r("addonChangedNextCycle",{activeNow:Z,pending:te}):Z>0?r("addonActiveOnly",{count:Z}):null,se=ne(M.id,te);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:ua[M.id]?r(ua[M.id]):Xa(M.name)}),o.jsx("span",{className:"bpb-addon-row__description",children:ar[M.id]?r(ar[M.id]):M.description}),o.jsxs("span",{className:"bpb-addon-row__price",children:[ie(G.amount,G.currency)," ",r("addonsEach")]}),Ae&&o.jsx("span",{className:K("bpb-addon-row__status",te!==Z&&"bpb-addon-row__status--changed"),children:Ae})]}),o.jsxs("div",{className:"bpb-addon-row__control",children:[se&&o.jsx("span",{className:"bpb-addon-row__grant",children:se}),o.jsx(Sr,{"aria-label":`${ua[M.id]?r(ua[M.id]):Xa(M.name)} quantity`,value:te,onChange:Pe=>m({...N??{},[M.id]:Pe})})]})]},M.id)})}),H.length>0&&o.jsxs("div",{className:"bpb-manage-addons__limits",children:[o.jsx("p",{className:"bpb-manage-addons__limits-title",children:r("addonsNewLimits")}),H.map(M=>{const G={conversation_sessions:"resourceConversations",table_rows:"resourceTableRows",vector_db_storage:"resourceVectorDb",file_storage:"resourceFileStorage"}[M.key];return o.jsxs("div",{className:"bpb-manage-addons__limit-row",children:[o.jsx("span",{className:"bpb-manage-addons__limit-label",children:G?r(G):M.label}),o.jsxs("span",{className:"bpb-manage-addons__limit-values",children:[o.jsx("span",{className:"bpb-manage-addons__limit-now",children:z(M.now,M.unit)}),o.jsx("span",{className:"bpb-manage-addons__limit-arrow","aria-hidden":!0,children:"→"}),o.jsx("span",{className:"bpb-manage-addons__limit-next",children:z(M.next,M.unit)})]})]},M.key)})]}),o.jsxs("div",{className:"bpb-manage-addons__totals",children:[o.jsxs("div",{className:"bpb-manage-addons__line",children:[o.jsx("span",{children:h?r("addonsPlanLine",{planName:he(h.name)}):r("addonsGenericPlan")}),o.jsx("span",{children:ie(F,L)})]}),A.map(({addon:M,price:G})=>{const Z=(N==null?void 0:N[M.id])??0;return Z<=0?null:o.jsxs("div",{className:"bpb-manage-addons__line",children:[o.jsxs("span",{children:[Z,"×"," ",ua[M.id]?r(ua[M.id]):Xa(M.name)]}),o.jsx("span",{children:ie(G.amount*Z,L)})]},M.id)}),o.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--total",children:[o.jsx("span",{children:r(b==="year"?"addonsTotalYearly":"addonsTotalMonthly")}),o.jsxs("span",{children:[ie(J,L),r(b==="year"?"perYear":"perMonth")]})]}),I&&o.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--due",children:[o.jsx("span",{children:r("addonsDueToday")}),o.jsx("span",{children:v.isLoading?"…":v.isError?"—":ie(Math.max(V,0),L)})]})]}),I&&!v.isError&&o.jsxs("p",{className:"bpb-manage-addons__note",children:[V>0?r("addonsChargedNow",{amount:ie(V,L)}):r("addonsNoChargeToday"),q?r("addonsRenewalWithDate",{date:q,amount:ie(T,L),interval:r(b==="year"?"perYear":"perMonth")}):r("addonsRenewalNoDate",{amount:ie(T,L),interval:r(b==="year"?"perYear":"perMonth")})]}),w&&o.jsx("p",{className:"bpb-manage-addons__note",role:"alert",children:r("addonsReadonlyNote")}),o.jsxs("div",{className:"bpb-manage-addons__actions",children:[o.jsx(Te,{variant:"outline",onClick:()=>a(!1),disabled:u.isPending,children:r("cancel")}),o.jsx(Te,{variant:"primary",disabled:!I||w,loading:u.isPending,onClick:ae,children:r("addonsUpdateSubscription")})]})]})]})},Dl=({open:a,onOpenChange:e})=>{const{isOutdatedBilling:t}=Q(),{t:n}=ge();return t?o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:o.jsx(wa,{})}):o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:o.jsx(El,{open:a})})},El=({open:a})=>{const{locale:e,analytics:t}=Q(),{t:n}=ge(),{data:s,isLoading:r,isError:i}=Ps({enabled:a}),l=(s==null?void 0:s.invoices)??[],c={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")}),r?o.jsxs("div",{className:"bpb-invoices__loading","aria-busy":"true",children:[o.jsx(le,{height:52}),o.jsx(le,{height:52}),o.jsx(le,{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(d=>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:sa(d.createdAt,e)}),o.jsx("span",{className:`bpb-invoices__status bpb-invoices__status--${d.status}`,children:c[d.status]})]}),o.jsxs("div",{className:"bpb-invoices__row-end",children:[o.jsx("span",{className:"bpb-invoices__amount",children:ie(d.amount,d.currency)}),d.pdfUrl?o.jsx("a",{className:"bpb-invoices__download",href:d.pdfUrl,target:"_blank",rel:"noopener noreferrer","aria-label":n("invoicesDownloadLabel",{date:sa(d.createdAt,e)}),onClick:()=>t.capture(Ne.INVOICE_DOWNLOADED,{status:d.status}),children:o.jsx(Vn,{size:16})}):o.jsx("span",{className:"bpb-invoices__download bpb-invoices__download--disabled","aria-hidden":!0,children:o.jsx(Vn,{size:16})})]})]},d.id))})]})},Ll=({open:a,onOpenChange:e,onSuccess:t})=>{var h;const{stripePromise:n,isDark:s,locale:r,isOutdatedBilling:i}=Q(),{t:l}=ge(),c=wn(),d=(h=c.data)==null?void 0:h.clientSecret,{mutate:u,reset:p}=c;P.useEffect(()=>{a&&!i?u():p()},[a,i,u,p]);const m=P.useMemo(()=>d?{clientSecret:d,appearance:Gn(s),locale:$n(r)}:null,[d,s,r]);return i?o.jsx(Ue,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:o.jsx(wa,{})}):o.jsx(Ue,{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(Te,{variant:"outline",onClick:()=>u(),children:l("tryAgain")})]}):!m||!d?o.jsxs("div",{className:"bpb-payment-dialog__loading","aria-busy":"true",children:[o.jsx(le,{height:48}),o.jsx(le,{height:120})]}):o.jsx(Me.Elements,{stripe:n,options:m,children:o.jsx(Fl,{clientSecret:d,isDark:s,onSuccess:t})})]})})},Fl=({clientSecret:a,isDark:e,onSuccess:t})=>{var xa;const n=Me.useStripe(),s=Me.useElements(),{toast:r,analytics:i}=Q(),{t:l}=ge(),{data:c,isLoading:d}=Cn(),{data:u,isLoading:p}=Nn(),{data:m,isLoading:h}=Sn(),b=Tn(),w=In(),C=An(),y=((xa=c==null?void 0:c.paymentMethod)==null?void 0:xa.card)??null,_=(u==null?void 0:u.address)??null,N=(m==null?void 0:m.taxIds)??[],[A,I]=P.useState(!1),[T,x]=P.useState(!1),[v,L]=P.useState(!1),[V,O]=P.useState(!1),[q,F]=P.useState(null),[J,H]=P.useState(!1),[z,ne]=P.useState(!1),[ae,W]=P.useState(null),[S,ue]=P.useState(_==null?void 0:_.country),[pe,_e]=P.useState(N.length>0),[M,G]=P.useState(null),Z=M??N.map(re=>({type:re.type,value:re.value})),te=_r(S),Ae=M!==null,se=A||!y,Ce=(re,xe)=>G(Z.map((me,ke)=>ke===re?{...me,...xe}:me)),Pe=()=>{var re;return G([...Z,{type:((re=te[0])==null?void 0:re.type)??"",value:""}])},Se=re=>G(Z.filter((xe,me)=>me!==re)),ea=async()=>{if(!n||!s)return;const re=s.getElement(Me.CardElement);if(re){O(!0),F(null);try{const{error:xe,setupIntent:me}=await n.confirmCardSetup(a,{payment_method:{card:re}});if(xe){F(xe.message??l("paymentCardSaveError"));return}if(!(me!=null&&me.payment_method)||typeof me.payment_method!="string"){F(l("paymentMethodMissing"));return}await b.mutateAsync({paymentMethodId:me.payment_method}),i.capture(Ne.PAYMENT_METHOD_UPDATED),r({type:"success",message:l("paymentCardUpdated")}),I(!1),t==null||t()}catch{F(l("paymentCardGenericError"))}finally{O(!1)}}},Ee=async()=>{if(!s)return;const re=s.getElement("address");if(!re)return;const{complete:xe,value:me}=await re.getValue();if(!xe||!me.address){W(l("paymentAddressIncomplete"));return}ne(!0),W(null);try{const{address:ke,name:Oe}=me;await w.mutateAsync({lineOne:ke.line1??"",lineTwo:ke.line2??void 0,city:ke.city??"",state:ke.state??void 0,postalCode:ke.postal_code??"",country:ke.country??""});const Da=(Oe==null?void 0:Oe.trim())||void 0,aa=Z.filter(ta=>!!ta.type&&ta.value.trim()!=="").map(ta=>({type:ta.type,value:ta.value.trim()}));(Da!==((m==null?void 0:m.name)??void 0)||Ae)&&await C.mutateAsync({name:Da,taxIds:aa}),i.capture(Ne.BILLING_ADDRESS_UPDATED),r({type:"success",message:l("paymentDetailsUpdated")}),t==null||t()}catch(ke){const Oe=ke instanceof Error&&ke.message?ke.message:l("paymentAddressError");W(Oe),r({type:"error",message:l("paymentDetailsUpdateError")})}finally{ne(!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")}),d?o.jsx(le,{height:56}):se?o.jsxs("div",{className:"bpb-payment-element",children:[!T&&o.jsx(le,{height:48}),o.jsx("div",{className:T?"bpb-card-element":"bpb-payment-element--hidden",children:o.jsx(Me.CardElement,{options:{style:Kn(e),hidePostalCode:!0},onReady:()=>x(!0),onChange:re=>L(re.complete)})}),q&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:q}),o.jsxs("div",{className:"bpb-payment-dialog__section-actions",children:[y&&o.jsx(Te,{variant:"ghost",onClick:()=>I(!1),disabled:V,children:l("cancel")}),o.jsx(Te,{variant:"primary",disabled:!v,loading:V,onClick:ea,children:l("paymentSaveCard")})]})]}):o.jsxs("div",{className:"bpb-saved-card",children:[o.jsx(Zn,{brand:y.brand}),o.jsxs("span",{className:"bpb-saved-card__number",children:[o.jsx("span",{className:"bpb-saved-card__brand",children:y.brand})," •••• ",y.lastFour]}),o.jsxs("span",{className:"bpb-saved-card__exp",children:[String(y.expMonth).padStart(2,"0"),"/",String(y.expYear).slice(-2)]}),o.jsx("button",{type:"button",className:"bpb-link-button",onClick:()=>I(!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||h?o.jsx(le,{height:72}):o.jsxs("div",{className:"bpb-payment-element",children:[!J&&o.jsx(le,{height:120}),o.jsx("div",{className:J?void 0:"bpb-payment-element--hidden",children:o.jsx(Me.AddressElement,{options:{mode:"billing",display:{name:"full"},defaultValues:_?{name:(m==null?void 0:m.name)??void 0,address:{line1:_.lineOne,line2:_.lineTwo,city:_.city,state:_.state,postal_code:_.postalCode,country:_.country}}:void 0},onReady:()=>H(!0),onChange:re=>ue(re.value.address.country||void 0)})}),o.jsxs("div",{className:"bpb-tax-section",children:[o.jsxs("button",{type:"button",className:"bpb-tax-toggle","aria-expanded":pe,onClick:()=>_e(re=>!re),children:[o.jsx(qt,{size:16,className:K("bpb-tax-toggle__chevron",pe&&"bpb-tax-toggle__chevron--open")}),l("paymentTaxIds"),N.length>0&&o.jsx("span",{className:"bpb-tax-toggle__count",children:N.length})]}),pe&&o.jsxs("div",{className:"bpb-tax",children:[Z.length===0&&o.jsx("p",{className:"bpb-tax__empty",children:l("paymentTaxEmpty")}),Z.map((re,xe)=>o.jsxs("div",{className:"bpb-tax__row",children:[o.jsxs(Hn,{"aria-label":l("paymentTaxIdType"),value:re.type,onChange:me=>Ce(xe,{type:me.target.value}),children:[o.jsx("option",{value:"",children:l("paymentTaxSelectType")}),te.map(me=>o.jsx("option",{value:me.type,children:me.label},me.type)),re.type&&!te.some(me=>me.type===re.type)&&o.jsx("option",{value:re.type,children:re.type})]}),o.jsx($t,{placeholder:l("paymentTaxIdNumber"),value:re.value,onChange:me=>Ce(xe,{value:me.target.value})}),o.jsx("button",{type:"button",className:"bpb-tax__remove","aria-label":l("paymentTaxRemove"),onClick:()=>Se(xe),children:o.jsx(Zt,{size:14})})]},xe)),o.jsx("button",{type:"button",className:"bpb-link-button bpb-tax__add",onClick:Pe,children:l("paymentTaxAdd")})]})]}),ae&&o.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:ae}),o.jsx("div",{className:"bpb-payment-dialog__section-actions",children:o.jsx(Te,{variant:"primary",loading:z,onClick:Ee,children:l("paymentSaveBillingDetails")})})]})]})]})},kr=(a,e,t)=>`bpb-dismissed:${a}:${e}:${t}`,wr=()=>new Date().toLocaleDateString("en-CA");function Tr(a,e,t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(kr(a,e,t))===wr()}catch{return!1}}function Ir(a,e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(kr(a,e,t),wr())}catch{}}var Ar={},Ht={};Object.defineProperty(Ht,"__esModule",{value:!0}),Ht.BOT_USE_CASES=void 0,Ht.BOT_USE_CASES={CUSTOMER_SUPPORT:"customer-support",BRAND_ASSISTANT:"brand-assistant",PRODUCT_RECOMMENDATION:"product-recommendation",OTHER:"other"};var Rt={};Object.defineProperty(Rt,"__esModule",{value:!0}),Rt.limitConfigs=void 0,Rt.limitConfigs={bot_configuration_bytes:{value:20480,unit:"bytes"},bot_installed_integrations_count:{value:30,unit:"count"},bot_installed_plugins_count:{value:30,unit:"count"},bot_integration_configuration_bytes:{value:20480,unit:"bytes"},bot_recurring_event_count:{value:50,unit:"count"},bot_recurring_event_payload_bytes:{value:131072,unit:"bytes"},event_definition_count:{value:20,unit:"count"},integration_channel_count:{value:10,unit:"count"},integration_channel_message_type_count:{value:20,unit:"count"},integration_identifier_count:{value:50,unit:"count"},integration_version_count:{value:200,unit:"count"},issue_event_item_payload_bytes:{value:131072,unit:"bytes"},message_payload_bytes:{value:131072,unit:"bytes"},schema_bytes:{value:102400,unit:"bytes"},state_definition_count:{value:20,unit:"count"},state_item_payload_bytes:{value:131072,unit:"bytes"},tag_definition_count:{value:50,unit:"count"},bot_integration_secret_count:{value:25,unit:"count"},files_api_query_bytes:{value:2048,unit:"bytes"},code_payload_bytes:{value:52428800,unit:"bytes"},entity_custom_properties_count:{value:50,unit:"count"}};var za={};Object.defineProperty(za,"__esModule",{value:!0}),za.objectToPrefixMap=za.prefixToObjectMap=void 0,za.prefixToObjectMap={accnt:"account",accntpf:"accountPreference",action:"action",activty:"activity",anlytic:"analytics",audit:"audit",bak:"botApiKey",bot:"bot",card:"card",cfg:"configuration",channel:"channel",conv:"conversation",devbot:"devBot",devint:"devIntegration",evt:"event",file:"file",flow:"flow",iak:"integrationApiKey",int:"integration",iface:"interface",ifver:"interfaceVersion",intver:"integrationVersion",iss:"issue",issevt:"issueEvent",kb:"knowledgeBase",limit:"limit",media:"media",msg:"message",node:"node",notif:"notification",pat:"personalAccessToken",plugin:"plugin",plugver:"pluginVersion",quota:"quota",recevt:"recurringEvent",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",archrg:"autoRechargeSetting",archtx:"autoRechargeTransaction",crgrant:"creditGrant",job:"job",pcrgrant:"pendingCreditGrant",promo:"promoCode",smgevt:"smaugEvent",usage:"usage",user:"user",webhook:"webhook",wkspace:"workspace",wksadd:"workspaceAddon",wksqtaadd:"workspaceQuotaAddition",wksplan:"workspacePlan",wrkflow:"workflow",wkspacepf:"workspacePreference",trial:"trial",evlrun:"evalRun",evlent:"evalEntry",evlres:"evalResult"},za.objectToPrefixMap={account:"accnt",accountPreference:"accntpf",action:"action",activity:"activty",analytics:"anlytic",audit:"audit",bot:"bot",botApiKey:"bak",card:"card",channel:"channel",configuration:"cfg",conversation:"conv",devBot:"devbot",devIntegration:"devint",event:"evt",file:"file",flow:"flow",integration:"int",integrationApiKey:"iak",integrationVersion:"intver",interface:"iface",interfaceVersion:"ifver",issue:"iss",issueEvent:"issevt",knowledgeBase:"kb",limit:"limit",media:"media",message:"msg",node:"node",notification:"notif",personalAccessToken:"pat",plugin:"plugin",pluginVersion:"plugver",quota:"quota",recurringEvent:"recevt",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",autoRechargeSetting:"archrg",autoRechargeTransaction:"archtx",creditGrant:"crgrant",job:"job",pendingCreditGrant:"pcrgrant",promoCode:"promo",smaugEvent:"smgevt",usage:"usage",user:"user",webhook:"webhook",workflow:"wrkflow",workspace:"wkspace",workspaceAddon:"wksadd",workspaceQuotaAddition:"wksqtaadd",workspacePlan:"wksplan",workspacePreference:"wkspacepf",trial:"trial",evalRun:"evlrun",evalEntry:"evlent",evalResult:"evlres"};var Pr={},pa={};Object.defineProperty(pa,"__esModule",{value:!0}),pa.quotaConfigsV3=pa.quotaConfigs=pa.quotaTypes=void 0,pa.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"],pa.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}},pa.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 Re={};Object.defineProperty(Re,"__esModule",{value:!0}),Re.billingFeatureDefs=Re.BILLING_PLAN_IDS=Re.ALLOWED_TRIAL_PLANS=Re.ALLOWED_TRIAL_LENGTHS_IN_DAYS=void 0,Re.ALLOWED_TRIAL_LENGTHS_IN_DAYS=7,Re.ALLOWED_TRIAL_PLANS=["plus","team"],Re.BILLING_PLAN_IDS=["community","plus","team","enterprise","managed"],Re.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=oe&&oe.__createBinding||(Object.create?function(n,s,r,i){i===void 0&&(i=r);var l=Object.getOwnPropertyDescriptor(s,r);(!l||("get"in l?!s.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return s[r]}}),Object.defineProperty(n,i,l)}:function(n,s,r,i){i===void 0&&(i=r),n[i]=s[r]}),t=oe&&oe.__exportStar||function(n,s){for(var r in n)r!=="default"&&!Object.prototype.hasOwnProperty.call(s,r)&&e(s,n,r)};Object.defineProperty(a,"__esModule",{value:!0}),t(pa,a),t(Re,a)}(Pr);var Yt={};Object.defineProperty(Yt,"__esModule",{value:!0}),Yt.Tags=void 0,Yt.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 Jt={};Object.defineProperty(Jt,"__esModule",{value:!0}),Jt.CANCELLATION_REASONS=void 0,Jt.CANCELLATION_REASONS=["too_expensive","not_using_enough","missing_feature","switched_tool","technical_issues","support_expectations","temporary_need"];var xr={},Rn={};(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)})(Rn);var Dr={},tt={},Qt={};(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})(Qt);var nt={},Er={},Yn={},ma={},Xt={},Ye={},st={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.getParsedType=a.ZodParsedType=a.objectUtil=a.util=void 0;var e;(function(s){s.assertEqual=c=>{};function r(c){}s.assertIs=r;function i(c){throw new Error}s.assertNever=i,s.arrayToEnum=c=>{const d={};for(const u of c)d[u]=u;return d},s.getValidEnumValues=c=>{const d=s.objectKeys(c).filter(p=>typeof c[c[p]]!="number"),u={};for(const p of d)u[p]=c[p];return s.objectValues(u)},s.objectValues=c=>s.objectKeys(c).map(function(d){return c[d]}),s.objectKeys=typeof Object.keys=="function"?c=>Object.keys(c):c=>{const d=[];for(const u in c)Object.prototype.hasOwnProperty.call(c,u)&&d.push(u);return d},s.find=(c,d)=>{for(const u of c)if(d(u))return u},s.isInteger=typeof Number.isInteger=="function"?c=>Number.isInteger(c):c=>typeof c=="number"&&Number.isFinite(c)&&Math.floor(c)===c;function l(c,d=" | "){return c.map(u=>typeof u=="string"?`'${u}'`:u).join(d)}s.joinValues=l,s.jsonStringifyReplacer=(c,d)=>typeof d=="bigint"?d.toString():d})(e||(a.util=e={}));var t;(function(s){s.mergeShapes=(r,i)=>({...r,...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=s=>{switch(typeof s){case"undefined":return a.ZodParsedType.undefined;case"string":return a.ZodParsedType.string;case"number":return Number.isNaN(s)?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(s)?a.ZodParsedType.array:s===null?a.ZodParsedType.null:s.then&&typeof s.then=="function"&&s.catch&&typeof s.catch=="function"?a.ZodParsedType.promise:typeof Map<"u"&&s instanceof Map?a.ZodParsedType.map:typeof Set<"u"&&s instanceof Set?a.ZodParsedType.set:typeof Date<"u"&&s instanceof Date?a.ZodParsedType.date:a.ZodParsedType.object;default:return a.ZodParsedType.unknown}};a.getParsedType=n})(st),Object.defineProperty(Ye,"__esModule",{value:!0}),Ye.ZodError=Ye.quotelessJson=Ye.ZodIssueCode=void 0;const Lr=st;Ye.ZodIssueCode=Lr.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 Ol=a=>JSON.stringify(a,null,2).replace(/"([^"]+)":/g,"$1:");Ye.quotelessJson=Ol;class rt 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(r){return r.message},n={_errors:[]},s=r=>{for(const i of r.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let l=n,c=0;for(;c<i.path.length;){const d=i.path[c];c===i.path.length-1?(l[d]=l[d]||{_errors:[]},l[d]._errors.push(t(i))):l[d]=l[d]||{_errors:[]},l=l[d],c++}}};return s(this),n}static assert(e){if(!(e instanceof rt))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Lr.util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const s of this.issues)if(s.path.length>0){const r=s.path[0];t[r]=t[r]||[],t[r].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}Ye.ZodError=rt,rt.create=a=>new rt(a),Object.defineProperty(Xt,"__esModule",{value:!0});const De=Ye,Ta=st,Ml=(a,e)=>{let t;switch(a.code){case De.ZodIssueCode.invalid_type:a.received===Ta.ZodParsedType.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case De.ZodIssueCode.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,Ta.util.jsonStringifyReplacer)}`;break;case De.ZodIssueCode.unrecognized_keys:t=`Unrecognized key(s) in object: ${Ta.util.joinValues(a.keys,", ")}`;break;case De.ZodIssueCode.invalid_union:t="Invalid input";break;case De.ZodIssueCode.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${Ta.util.joinValues(a.options)}`;break;case De.ZodIssueCode.invalid_enum_value:t=`Invalid enum value. Expected ${Ta.util.joinValues(a.options)}, received '${a.received}'`;break;case De.ZodIssueCode.invalid_arguments:t="Invalid function arguments";break;case De.ZodIssueCode.invalid_return_type:t="Invalid function return type";break;case De.ZodIssueCode.invalid_date:t="Invalid date";break;case De.ZodIssueCode.invalid_string:typeof a.validation=="object"?"includes"in a.validation?(t=`Invalid input: must include "${a.validation.includes}"`,typeof a.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${a.validation.position}`)):"startsWith"in a.validation?t=`Invalid input: must start with "${a.validation.startsWith}"`:"endsWith"in a.validation?t=`Invalid input: must end with "${a.validation.endsWith}"`:Ta.util.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case De.ZodIssueCode.too_small:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at least":"more than"} ${a.minimum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at least":"over"} ${a.minimum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="bigint"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(a.minimum))}`:t="Invalid input";break;case De.ZodIssueCode.too_big:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at most":"less than"} ${a.maximum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at most":"under"} ${a.maximum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="bigint"?t=`BigInt must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly":a.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(a.maximum))}`:t="Invalid input";break;case De.ZodIssueCode.custom:t="Invalid input";break;case De.ZodIssueCode.invalid_intersection_types:t="Intersection results could not be merged";break;case De.ZodIssueCode.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case De.ZodIssueCode.not_finite:t="Number must be finite";break;default:t=e.defaultError,Ta.util.assertNever(a)}return{message:t}};Xt.default=Ml;var Bl=oe&&oe.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(ma,"__esModule",{value:!0}),ma.defaultErrorMap=void 0,ma.setErrorMap=Ul,ma.getErrorMap=zl;const Fr=Bl(Xt);ma.defaultErrorMap=Fr.default;let Or=Fr.default;function Ul(a){Or=a}function zl(){return Or}var Jn={};(function(a){var e=oe&&oe.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};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=r;const t=ma,n=e(Xt),s=h=>{const{data:b,path:w,errorMaps:C,issueData:y}=h,_=[...w,...y.path||[]],N={...y,path:_};if(y.message!==void 0)return{...y,path:_,message:y.message};let A="";const I=C.filter(T=>!!T).slice().reverse();for(const T of I)A=T(N,{data:b,defaultError:A}).message;return{...y,path:_,message:A}};a.makeIssue=s,a.EMPTY_PATH=[];function r(h,b){const w=(0,t.getErrorMap)(),C=(0,a.makeIssue)({issueData:b,data:h.data,path:h.path,errorMaps:[h.common.contextualErrorMap,h.schemaErrorMap,w,w===n.default?void 0:n.default].filter(y=>!!y)});h.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(b,w){const C=[];for(const y of w){if(y.status==="aborted")return a.INVALID;y.status==="dirty"&&b.dirty(),C.push(y.value)}return{status:b.value,value:C}}static async mergeObjectAsync(b,w){const C=[];for(const y of w){const _=await y.key,N=await y.value;C.push({key:_,value:N})}return i.mergeObjectSync(b,C)}static mergeObjectSync(b,w){const C={};for(const y of w){const{key:_,value:N}=y;if(_.status==="aborted"||N.status==="aborted")return a.INVALID;_.status==="dirty"&&b.dirty(),N.status==="dirty"&&b.dirty(),_.value!=="__proto__"&&(typeof N.value<"u"||y.alwaysSet)&&(C[_.value]=N.value)}return{status:b.value,value:C}}}a.ParseStatus=i,a.INVALID=Object.freeze({status:"aborted"});const l=h=>({status:"dirty",value:h});a.DIRTY=l;const c=h=>({status:"valid",value:h});a.OK=c;const d=h=>h.status==="aborted";a.isAborted=d;const u=h=>h.status==="dirty";a.isDirty=u;const p=h=>h.status==="valid";a.isValid=p;const m=h=>typeof Promise<"u"&&h instanceof Promise;a.isAsync=m})(Jn);var Mr={};Object.defineProperty(Mr,"__esModule",{value:!0});var g={},en={};Object.defineProperty(en,"__esModule",{value:!0}),en.errorUtil=void 0;var Br;(function(a){a.errToObj=e=>typeof e=="string"?{message:e}:e||{},a.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(Br||(en.errorUtil=Br={})),Object.defineProperty(g,"__esModule",{value:!0}),g.discriminatedUnion=g.date=g.boolean=g.bigint=g.array=g.any=g.coerce=g.ZodFirstPartyTypeKind=g.late=g.ZodSchema=g.Schema=g.ZodReadonly=g.ZodPipeline=g.ZodBranded=g.BRAND=g.ZodNaN=g.ZodCatch=g.ZodDefault=g.ZodNullable=g.ZodOptional=g.ZodTransformer=g.ZodEffects=g.ZodPromise=g.ZodNativeEnum=g.ZodEnum=g.ZodLiteral=g.ZodLazy=g.ZodFunction=g.ZodSet=g.ZodMap=g.ZodRecord=g.ZodTuple=g.ZodIntersection=g.ZodDiscriminatedUnion=g.ZodUnion=g.ZodObject=g.ZodArray=g.ZodVoid=g.ZodNever=g.ZodUnknown=g.ZodAny=g.ZodNull=g.ZodUndefined=g.ZodSymbol=g.ZodDate=g.ZodBoolean=g.ZodBigInt=g.ZodNumber=g.ZodString=g.ZodType=void 0,g.NEVER=g.void=g.unknown=g.union=g.undefined=g.tuple=g.transformer=g.symbol=g.string=g.strictObject=g.set=g.record=g.promise=g.preprocess=g.pipeline=g.ostring=g.optional=g.onumber=g.oboolean=g.object=g.number=g.nullable=g.null=g.never=g.nativeEnum=g.nan=g.map=g.literal=g.lazy=g.intersection=g.instanceof=g.function=g.enum=g.effect=void 0,g.datetimeRegex=Vr,g.custom=Wr;const D=Ye,an=ma,j=en,f=Jn,E=st;class Je{constructor(e,t,n,s){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=s}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 Ur=(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 D.ZodError(a.common.issues);return this._error=t,this._error}}};function Y(a){if(!a)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:s}=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:s}:{errorMap:(i,l)=>{const{message:c}=a;return i.code==="invalid_enum_value"?{message:c??l.defaultError}:typeof l.data>"u"?{message:c??n??l.defaultError}:i.code!=="invalid_type"?{message:l.defaultError}:{message:c??t??l.defaultError}},description:s}}class X{get description(){return this._def.description}_getType(e){return(0,E.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,E.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,E.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,E.getParsedType)(e)},s=this._parseSync({data:e,path:n.path,parent:n});return Ur(n,s)}"~validate"(e){var n,s;const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,E.getParsedType)(e)};if(!this["~standard"].async)try{const r=this._parseSync({data:e,path:[],parent:t});return(0,f.isValid)(r)?{value:r.value}:{issues:t.common.issues}}catch(r){(s=(n=r==null?void 0:r.message)==null?void 0:n.toLowerCase())!=null&&s.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(r=>(0,f.isValid)(r)?{value:r.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,E.getParsedType)(e)},s=this._parse({data:e,path:n.path,parent:n}),r=await((0,f.isAsync)(s)?s:Promise.resolve(s));return Ur(n,r)}refine(e,t){const n=s=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(s):t;return this._refinement((s,r)=>{const i=e(s),l=()=>r.addIssue({code:D.ZodIssueCode.custom,...n(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(l(),!1)):i?!0:(l(),!1)})}refinement(e,t){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof t=="function"?t(n,s):t),!1))}_refinement(e){return new Ge({schema:this,typeName:$.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 Xe.create(this,this._def)}nullable(){return ba.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return We.create(this)}promise(){return qa.create(this,this._def)}or(e){return dt.create([this,e],this._def)}and(e){return ct.create(this,e,this._def)}transform(e){return new Ge({...Y(this._def),schema:this,typeName:$.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new gt({...Y(this._def),innerType:this,defaultValue:t,typeName:$.ZodDefault})}brand(){return new es({typeName:$.ZodBranded,type:this,...Y(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new ft({...Y(this._def),innerType:this,catchValue:t,typeName:$.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return bt.create(this,e)}readonly(){return yt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}g.ZodType=X,g.Schema=X,g.ZodSchema=X;const jl=/^c[^\s-]{8,}$/i,Vl=/^[0-9a-z]+$/,Zl=/^[0-9A-HJKMNP-TV-Z]{26}$/i,ql=/^[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,Wl=/^[a-z0-9_-]{21}$/i,Gl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Kl=/^[-+]?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)?)??$/,$l=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Hl="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Qn;const Rl=/^(?:(?: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])$/,Yl=/^(?:(?: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])$/,Jl=/^(([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]))$/,Ql=/^(([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])$/,Xl=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,ed=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,zr="((\\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])))",ad=new RegExp(`^${zr}$`);function jr(a){let e="[0-5]\\d";a.precision?e=`${e}\\.\\d{${a.precision}}`:a.precision==null&&(e=`${e}(\\.\\d+)?`);const t=a.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function td(a){return new RegExp(`^${jr(a)}$`)}function Vr(a){let e=`${zr}T${jr(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 nd(a,e){return!!((e==="v4"||!e)&&Rl.test(a)||(e==="v6"||!e)&&Jl.test(a))}function sd(a,e){if(!Gl.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,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&(s==null?void 0:s.typ)!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function rd(a,e){return!!((e==="v4"||!e)&&Yl.test(a)||(e==="v6"||!e)&&Ql.test(a))}class qe extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==E.ZodParsedType.string){const r=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.string,received:r.parsedType}),f.INVALID}const n=new f.ParseStatus;let s;for(const r of this._def.checks)if(r.kind==="min")e.data.length<r.value&&(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),n.dirty());else if(r.kind==="max")e.data.length>r.value&&(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),n.dirty());else if(r.kind==="length"){const i=e.data.length>r.value,l=e.data.length<r.value;(i||l)&&(s=this._getOrReturnCtx(e,s),i?(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}):l&&(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}),n.dirty())}else if(r.kind==="email")$l.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"email",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="emoji")Qn||(Qn=new RegExp(Hl,"u")),Qn.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"emoji",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="uuid")ql.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"uuid",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="nanoid")Wl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"nanoid",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="cuid")jl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"cuid",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="cuid2")Vl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"cuid2",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="ulid")Zl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"ulid",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty());else if(r.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"url",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()}else r.kind==="regex"?(r.regex.lastIndex=0,r.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"regex",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty())):r.kind==="trim"?e.data=e.data.trim():r.kind==="includes"?e.data.includes(r.value,r.position)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),n.dirty()):r.kind==="toLowerCase"?e.data=e.data.toLowerCase():r.kind==="toUpperCase"?e.data=e.data.toUpperCase():r.kind==="startsWith"?e.data.startsWith(r.value)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:{startsWith:r.value},message:r.message}),n.dirty()):r.kind==="endsWith"?e.data.endsWith(r.value)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:{endsWith:r.value},message:r.message}),n.dirty()):r.kind==="datetime"?Vr(r).test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:"datetime",message:r.message}),n.dirty()):r.kind==="date"?ad.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:"date",message:r.message}),n.dirty()):r.kind==="time"?td(r).test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.invalid_string,validation:"time",message:r.message}),n.dirty()):r.kind==="duration"?Kl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"duration",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):r.kind==="ip"?nd(e.data,r.version)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"ip",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):r.kind==="jwt"?sd(e.data,r.alg)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"jwt",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):r.kind==="cidr"?rd(e.data,r.version)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"cidr",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):r.kind==="base64"?Xl.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"base64",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):r.kind==="base64url"?ed.test(e.data)||(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{validation:"base64url",code:D.ZodIssueCode.invalid_string,message:r.message}),n.dirty()):E.util.assertNever(r);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(s=>e.test(s),{validation:t,code:D.ZodIssueCode.invalid_string,...j.errorUtil.errToObj(n)})}_addCheck(e){return new qe({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...j.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:"url",...j.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...j.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...j.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...j.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...j.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...j.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...j.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...j.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...j.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...j.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...j.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...j.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,...j.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,...j.errorUtil.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...j.errorUtil.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...j.errorUtil.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...j.errorUtil.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...j.errorUtil.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...j.errorUtil.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...j.errorUtil.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...j.errorUtil.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...j.errorUtil.errToObj(t)})}nonempty(e){return this.min(1,j.errorUtil.errToObj(e))}trim(){return new qe({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new qe({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new qe({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}g.ZodString=qe,qe.create=a=>new qe({checks:[],typeName:$.ZodString,coerce:(a==null?void 0:a.coerce)??!1,...Y(a)});function od(a,e){const t=(a.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=t>n?t:n,r=Number.parseInt(a.toFixed(s).replace(".","")),i=Number.parseInt(e.toFixed(s).replace(".",""));return r%i/10**s}class ha extends X{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)!==E.ZodParsedType.number){const r=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.number,received:r.parsedType}),f.INVALID}let n;const s=new f.ParseStatus;for(const r of this._def.checks)r.kind==="int"?E.util.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:"integer",received:"float",message:r.message}),s.dirty()):r.kind==="min"?(r.inclusive?e.data<r.value:e.data<=r.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_small,minimum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),s.dirty()):r.kind==="max"?(r.inclusive?e.data>r.value:e.data>=r.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),s.dirty()):r.kind==="multipleOf"?od(e.data,r.value)!==0&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.not_multiple_of,multipleOf:r.value,message:r.message}),s.dirty()):r.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.not_finite,message:r.message}),s.dirty()):E.util.assertNever(r);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,j.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,j.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,j.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,j.errorUtil.toString(t))}setLimit(e,t,n,s){return new ha({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:j.errorUtil.toString(s)}]})}_addCheck(e){return new ha({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:j.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:j.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:j.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:j.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:j.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:j.errorUtil.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:j.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:j.errorUtil.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:j.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"&&E.util.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}g.ZodNumber=ha,ha.create=a=>new ha({checks:[],typeName:$.ZodNumber,coerce:(a==null?void 0:a.coerce)||!1,...Y(a)});class ga extends X{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)!==E.ZodParsedType.bigint)return this._getInvalidInput(e);let n;const s=new f.ParseStatus;for(const r of this._def.checks)r.kind==="min"?(r.inclusive?e.data<r.value:e.data<=r.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_small,type:"bigint",minimum:r.value,inclusive:r.inclusive,message:r.message}),s.dirty()):r.kind==="max"?(r.inclusive?e.data>r.value:e.data>=r.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_big,type:"bigint",maximum:r.value,inclusive:r.inclusive,message:r.message}),s.dirty()):r.kind==="multipleOf"?e.data%r.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.not_multiple_of,multipleOf:r.value,message:r.message}),s.dirty()):E.util.assertNever(r);return{status:s.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.bigint,received:t.parsedType}),f.INVALID}gte(e,t){return this.setLimit("min",e,!0,j.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,j.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,j.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,j.errorUtil.toString(t))}setLimit(e,t,n,s){return new ga({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:j.errorUtil.toString(s)}]})}_addCheck(e){return new ga({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:j.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:j.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:j.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:j.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:j.errorUtil.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}g.ZodBigInt=ga,ga.create=a=>new ga({checks:[],typeName:$.ZodBigInt,coerce:(a==null?void 0:a.coerce)??!1,...Y(a)});class ot extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==E.ZodParsedType.boolean){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.boolean,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}g.ZodBoolean=ot,ot.create=a=>new ot({typeName:$.ZodBoolean,coerce:(a==null?void 0:a.coerce)||!1,...Y(a)});class Ia extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==E.ZodParsedType.date){const r=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.date,received:r.parsedType}),f.INVALID}if(Number.isNaN(e.data.getTime())){const r=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(r,{code:D.ZodIssueCode.invalid_date}),f.INVALID}const n=new f.ParseStatus;let s;for(const r of this._def.checks)r.kind==="min"?e.data.getTime()<r.value&&(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:"date"}),n.dirty()):r.kind==="max"?e.data.getTime()>r.value&&(s=this._getOrReturnCtx(e,s),(0,f.addIssueToContext)(s,{code:D.ZodIssueCode.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),n.dirty()):E.util.assertNever(r);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Ia({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:j.errorUtil.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:j.errorUtil.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}g.ZodDate=Ia,Ia.create=a=>new Ia({checks:[],coerce:(a==null?void 0:a.coerce)||!1,typeName:$.ZodDate,...Y(a)});class tn extends X{_parse(e){if(this._getType(e)!==E.ZodParsedType.symbol){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.symbol,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}g.ZodSymbol=tn,tn.create=a=>new tn({typeName:$.ZodSymbol,...Y(a)});class it extends X{_parse(e){if(this._getType(e)!==E.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.undefined,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}g.ZodUndefined=it,it.create=a=>new it({typeName:$.ZodUndefined,...Y(a)});class lt extends X{_parse(e){if(this._getType(e)!==E.ZodParsedType.null){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.null,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}g.ZodNull=lt,lt.create=a=>new lt({typeName:$.ZodNull,...Y(a)});class ja extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,f.OK)(e.data)}}g.ZodAny=ja,ja.create=a=>new ja({typeName:$.ZodAny,...Y(a)});class Aa extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,f.OK)(e.data)}}g.ZodUnknown=Aa,Aa.create=a=>new Aa({typeName:$.ZodUnknown,...Y(a)});class ra extends X{_parse(e){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.never,received:t.parsedType}),f.INVALID}}g.ZodNever=ra,ra.create=a=>new ra({typeName:$.ZodNever,...Y(a)});class nn extends X{_parse(e){if(this._getType(e)!==E.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.void,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}g.ZodVoid=nn,nn.create=a=>new nn({typeName:$.ZodVoid,...Y(a)});class We extends X{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),s=this._def;if(t.parsedType!==E.ZodParsedType.array)return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.array,received:t.parsedType}),f.INVALID;if(s.exactLength!==null){const i=t.data.length>s.exactLength.value,l=t.data.length<s.exactLength.value;(i||l)&&((0,f.addIssueToContext)(t,{code:i?D.ZodIssueCode.too_big:D.ZodIssueCode.too_small,minimum:l?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(s.minLength!==null&&t.data.length<s.minLength.value&&((0,f.addIssueToContext)(t,{code:D.ZodIssueCode.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&&t.data.length>s.maxLength.value&&((0,f.addIssueToContext)(t,{code:D.ZodIssueCode.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((i,l)=>s.type._parseAsync(new Je(t,i,t.path,l)))).then(i=>f.ParseStatus.mergeArray(n,i));const r=[...t.data].map((i,l)=>s.type._parseSync(new Je(t,i,t.path,l)));return f.ParseStatus.mergeArray(n,r)}get element(){return this._def.type}min(e,t){return new We({...this._def,minLength:{value:e,message:j.errorUtil.toString(t)}})}max(e,t){return new We({...this._def,maxLength:{value:e,message:j.errorUtil.toString(t)}})}length(e,t){return new We({...this._def,exactLength:{value:e,message:j.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}g.ZodArray=We,We.create=(a,e)=>new We({type:a,minLength:null,maxLength:null,exactLength:null,typeName:$.ZodArray,...Y(e)});function Va(a){if(a instanceof ye){const e={};for(const t in a.shape){const n=a.shape[t];e[t]=Xe.create(Va(n))}return new ye({...a._def,shape:()=>e})}else return a instanceof We?new We({...a._def,type:Va(a.element)}):a instanceof Xe?Xe.create(Va(a.unwrap())):a instanceof ba?ba.create(Va(a.unwrap())):a instanceof Qe?Qe.create(a.items.map(e=>Va(e))):a}class ye extends X{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=E.util.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==E.ZodParsedType.object){const d=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(d,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.object,received:d.parsedType}),f.INVALID}const{status:n,ctx:s}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),l=[];if(!(this._def.catchall instanceof ra&&this._def.unknownKeys==="strip"))for(const d in s.data)i.includes(d)||l.push(d);const c=[];for(const d of i){const u=r[d],p=s.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new Je(s,p,s.path,d)),alwaysSet:d in s.data})}if(this._def.catchall instanceof ra){const d=this._def.unknownKeys;if(d==="passthrough")for(const u of l)c.push({key:{status:"valid",value:u},value:{status:"valid",value:s.data[u]}});else if(d==="strict")l.length>0&&((0,f.addIssueToContext)(s,{code:D.ZodIssueCode.unrecognized_keys,keys:l}),n.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const d=this._def.catchall;for(const u of l){const p=s.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new Je(s,p,s.path,u)),alwaysSet:u in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const d=[];for(const u of c){const p=await u.key,m=await u.value;d.push({key:p,value:m,alwaysSet:u.alwaysSet})}return d}).then(d=>f.ParseStatus.mergeObjectSync(n,d)):f.ParseStatus.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return j.errorUtil.errToObj,new ye({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var r,i;const s=((i=(r=this._def).errorMap)==null?void 0:i.call(r,t,n).message)??n.defaultError;return t.code==="unrecognized_keys"?{message:j.errorUtil.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new ye({...this._def,unknownKeys:"strip"})}passthrough(){return new ye({...this._def,unknownKeys:"passthrough"})}extend(e){return new ye({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new ye({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:$.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new ye({...this._def,catchall:e})}pick(e){const t={};for(const n of E.util.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new ye({...this._def,shape:()=>t})}omit(e){const t={};for(const n of E.util.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new ye({...this._def,shape:()=>t})}deepPartial(){return Va(this)}partial(e){const t={};for(const n of E.util.objectKeys(this.shape)){const s=this.shape[n];e&&!e[n]?t[n]=s:t[n]=s.optional()}return new ye({...this._def,shape:()=>t})}required(e){const t={};for(const n of E.util.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let r=this.shape[n];for(;r instanceof Xe;)r=r._def.innerType;t[n]=r}return new ye({...this._def,shape:()=>t})}keyof(){return Zr(E.util.objectKeys(this.shape))}}g.ZodObject=ye,ye.create=(a,e)=>new ye({shape:()=>a,unknownKeys:"strip",catchall:ra.create(),typeName:$.ZodObject,...Y(e)}),ye.strictCreate=(a,e)=>new ye({shape:()=>a,unknownKeys:"strict",catchall:ra.create(),typeName:$.ZodObject,...Y(e)}),ye.lazycreate=(a,e)=>new ye({shape:a,unknownKeys:"strip",catchall:ra.create(),typeName:$.ZodObject,...Y(e)});class dt extends X{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function s(r){for(const l of r)if(l.result.status==="valid")return l.result;for(const l of r)if(l.result.status==="dirty")return t.common.issues.push(...l.ctx.common.issues),l.result;const i=r.map(l=>new D.ZodError(l.ctx.common.issues));return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_union,unionErrors:i}),f.INVALID}if(t.common.async)return Promise.all(n.map(async r=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await r._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(s);{let r;const i=[];for(const c of n){const d={...t,common:{...t.common,issues:[]},parent:null},u=c._parseSync({data:t.data,path:t.path,parent:d});if(u.status==="valid")return u;u.status==="dirty"&&!r&&(r={result:u,ctx:d}),d.common.issues.length&&i.push(d.common.issues)}if(r)return t.common.issues.push(...r.ctx.common.issues),r.result;const l=i.map(c=>new D.ZodError(c));return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_union,unionErrors:l}),f.INVALID}}get options(){return this._def.options}}g.ZodUnion=dt,dt.create=(a,e)=>new dt({options:a,typeName:$.ZodUnion,...Y(e)});const oa=a=>a instanceof pt?oa(a.schema):a instanceof Ge?oa(a.innerType()):a instanceof mt?[a.value]:a instanceof fa?a.options:a instanceof ht?E.util.objectValues(a.enum):a instanceof gt?oa(a._def.innerType):a instanceof it?[void 0]:a instanceof lt?[null]:a instanceof Xe?[void 0,...oa(a.unwrap())]:a instanceof ba?[null,...oa(a.unwrap())]:a instanceof es||a instanceof yt?oa(a.unwrap()):a instanceof ft?oa(a._def.innerType):[];class sn extends X{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==E.ZodParsedType.object)return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.object,received:t.parsedType}),f.INVALID;const n=this.discriminator,s=t.data[n],r=this.optionsMap.get(s);return r?t.common.async?r._parseAsync({data:t.data,path:t.path,parent:t}):r._parseSync({data:t.data,path:t.path,parent:t}):((0,f.addIssueToContext)(t,{code:D.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 s=new Map;for(const r of t){const i=oa(r.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(s.has(l))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(l)}`);s.set(l,r)}}return new sn({typeName:$.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:s,...Y(n)})}}g.ZodDiscriminatedUnion=sn;function Xn(a,e){const t=(0,E.getParsedType)(a),n=(0,E.getParsedType)(e);if(a===e)return{valid:!0,data:a};if(t===E.ZodParsedType.object&&n===E.ZodParsedType.object){const s=E.util.objectKeys(e),r=E.util.objectKeys(a).filter(l=>s.indexOf(l)!==-1),i={...a,...e};for(const l of r){const c=Xn(a[l],e[l]);if(!c.valid)return{valid:!1};i[l]=c.data}return{valid:!0,data:i}}else if(t===E.ZodParsedType.array&&n===E.ZodParsedType.array){if(a.length!==e.length)return{valid:!1};const s=[];for(let r=0;r<a.length;r++){const i=a[r],l=e[r],c=Xn(i,l);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return t===E.ZodParsedType.date&&n===E.ZodParsedType.date&&+a==+e?{valid:!0,data:a}:{valid:!1}}class ct extends X{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=(r,i)=>{if((0,f.isAborted)(r)||(0,f.isAborted)(i))return f.INVALID;const l=Xn(r.value,i.value);return l.valid?(((0,f.isDirty)(r)||(0,f.isDirty)(i))&&t.dirty(),{status:t.value,value:l.data}):((0,f.addIssueToContext)(n,{code:D.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(([r,i])=>s(r,i)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}g.ZodIntersection=ct,ct.create=(a,e,t)=>new ct({left:a,right:e,typeName:$.ZodIntersection,...Y(t)});class Qe extends X{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==E.ZodParsedType.array)return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.array,received:n.parsedType}),f.INVALID;if(n.data.length<this._def.items.length)return(0,f.addIssueToContext)(n,{code:D.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:D.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const r=[...n.data].map((i,l)=>{const c=this._def.items[l]||this._def.rest;return c?c._parse(new Je(n,i,n.path,l)):null}).filter(i=>!!i);return n.common.async?Promise.all(r).then(i=>f.ParseStatus.mergeArray(t,i)):f.ParseStatus.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new Qe({...this._def,rest:e})}}g.ZodTuple=Qe,Qe.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Qe({items:a,typeName:$.ZodTuple,rest:null,...Y(e)})};class ut extends X{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!==E.ZodParsedType.object)return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.object,received:n.parsedType}),f.INVALID;const s=[],r=this._def.keyType,i=this._def.valueType;for(const l in n.data)s.push({key:r._parse(new Je(n,l,n.path,l)),value:i._parse(new Je(n,n.data[l],n.path,l)),alwaysSet:l in n.data});return n.common.async?f.ParseStatus.mergeObjectAsync(t,s):f.ParseStatus.mergeObjectSync(t,s)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof X?new ut({keyType:e,valueType:t,typeName:$.ZodRecord,...Y(n)}):new ut({keyType:qe.create(),valueType:e,typeName:$.ZodRecord,...Y(t)})}}g.ZodRecord=ut;class rn extends X{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!==E.ZodParsedType.map)return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.map,received:n.parsedType}),f.INVALID;const s=this._def.keyType,r=this._def.valueType,i=[...n.data.entries()].map(([l,c],d)=>({key:s._parse(new Je(n,l,n.path,[d,"key"])),value:r._parse(new Je(n,c,n.path,[d,"value"]))}));if(n.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const c of i){const d=await c.key,u=await c.value;if(d.status==="aborted"||u.status==="aborted")return f.INVALID;(d.status==="dirty"||u.status==="dirty")&&t.dirty(),l.set(d.value,u.value)}return{status:t.value,value:l}})}else{const l=new Map;for(const c of i){const d=c.key,u=c.value;if(d.status==="aborted"||u.status==="aborted")return f.INVALID;(d.status==="dirty"||u.status==="dirty")&&t.dirty(),l.set(d.value,u.value)}return{status:t.value,value:l}}}}g.ZodMap=rn,rn.create=(a,e,t)=>new rn({valueType:e,keyType:a,typeName:$.ZodMap,...Y(t)});class Pa extends X{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==E.ZodParsedType.set)return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.set,received:n.parsedType}),f.INVALID;const s=this._def;s.minSize!==null&&n.data.size<s.minSize.value&&((0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),t.dirty()),s.maxSize!==null&&n.data.size>s.maxSize.value&&((0,f.addIssueToContext)(n,{code:D.ZodIssueCode.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),t.dirty());const r=this._def.valueType;function i(c){const d=new Set;for(const u of c){if(u.status==="aborted")return f.INVALID;u.status==="dirty"&&t.dirty(),d.add(u.value)}return{status:t.value,value:d}}const l=[...n.data.values()].map((c,d)=>r._parse(new Je(n,c,n.path,d)));return n.common.async?Promise.all(l).then(c=>i(c)):i(l)}min(e,t){return new Pa({...this._def,minSize:{value:e,message:j.errorUtil.toString(t)}})}max(e,t){return new Pa({...this._def,maxSize:{value:e,message:j.errorUtil.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}g.ZodSet=Pa,Pa.create=(a,e)=>new Pa({valueType:a,minSize:null,maxSize:null,typeName:$.ZodSet,...Y(e)});class Za extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==E.ZodParsedType.function)return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.function,received:t.parsedType}),f.INVALID;function n(l,c){return(0,f.makeIssue)({data:l,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,an.getErrorMap)(),an.defaultErrorMap].filter(d=>!!d),issueData:{code:D.ZodIssueCode.invalid_arguments,argumentsError:c}})}function s(l,c){return(0,f.makeIssue)({data:l,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,an.getErrorMap)(),an.defaultErrorMap].filter(d=>!!d),issueData:{code:D.ZodIssueCode.invalid_return_type,returnTypeError:c}})}const r={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof qa){const l=this;return(0,f.OK)(async function(...c){const d=new D.ZodError([]),u=await l._def.args.parseAsync(c,r).catch(h=>{throw d.addIssue(n(c,h)),d}),p=await Reflect.apply(i,this,u);return await l._def.returns._def.type.parseAsync(p,r).catch(h=>{throw d.addIssue(s(p,h)),d})})}else{const l=this;return(0,f.OK)(function(...c){const d=l._def.args.safeParse(c,r);if(!d.success)throw new D.ZodError([n(c,d.error)]);const u=Reflect.apply(i,this,d.data),p=l._def.returns.safeParse(u,r);if(!p.success)throw new D.ZodError([s(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Za({...this._def,args:Qe.create(e).rest(Aa.create())})}returns(e){return new Za({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Za({args:e||Qe.create([]).rest(Aa.create()),returns:t||Aa.create(),typeName:$.ZodFunction,...Y(n)})}}g.ZodFunction=Za;class pt extends X{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}g.ZodLazy=pt,pt.create=(a,e)=>new pt({getter:a,typeName:$.ZodLazy,...Y(e)});class mt extends X{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{received:t.data,code:D.ZodIssueCode.invalid_literal,expected:this._def.value}),f.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}}g.ZodLiteral=mt,mt.create=(a,e)=>new mt({value:a,typeName:$.ZodLiteral,...Y(e)});function Zr(a,e){return new fa({values:a,typeName:$.ZodEnum,...Y(e)})}class fa extends X{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,f.addIssueToContext)(t,{expected:E.util.joinValues(n),received:t.parsedType,code:D.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:D.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 fa.create(e,{...this._def,...t})}exclude(e,t=this._def){return fa.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}g.ZodEnum=fa,fa.create=Zr;class ht extends X{_parse(e){const t=E.util.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==E.ZodParsedType.string&&n.parsedType!==E.ZodParsedType.number){const s=E.util.objectValues(t);return(0,f.addIssueToContext)(n,{expected:E.util.joinValues(s),received:n.parsedType,code:D.ZodIssueCode.invalid_type}),f.INVALID}if(this._cache||(this._cache=new Set(E.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const s=E.util.objectValues(t);return(0,f.addIssueToContext)(n,{received:n.data,code:D.ZodIssueCode.invalid_enum_value,options:s}),f.INVALID}return(0,f.OK)(e.data)}get enum(){return this._def.values}}g.ZodNativeEnum=ht,ht.create=(a,e)=>new ht({values:a,typeName:$.ZodNativeEnum,...Y(e)});class qa extends X{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==E.ZodParsedType.promise&&t.common.async===!1)return(0,f.addIssueToContext)(t,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.promise,received:t.parsedType}),f.INVALID;const n=t.parsedType===E.ZodParsedType.promise?t.data:Promise.resolve(t.data);return(0,f.OK)(n.then(s=>this._def.type.parseAsync(s,{path:t.path,errorMap:t.common.contextualErrorMap})))}}g.ZodPromise=qa,qa.create=(a,e)=>new qa({type:a,typeName:$.ZodPromise,...Y(e)});class Ge extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=this._def.effect||null,r={addIssue:i=>{(0,f.addIssueToContext)(n,i),i.fatal?t.abort():t.dirty()},get path(){return n.path}};if(r.addIssue=r.addIssue.bind(r),s.type==="preprocess"){const i=s.transform(n.data,r);if(n.common.async)return Promise.resolve(i).then(async l=>{if(t.value==="aborted")return f.INVALID;const c=await this._def.schema._parseAsync({data:l,path:n.path,parent:n});return c.status==="aborted"?f.INVALID:c.status==="dirty"||t.value==="dirty"?(0,f.DIRTY)(c.value):c});{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(s.type==="refinement"){const i=l=>{const c=s.refinement(l,r);if(n.common.async)return Promise.resolve(c);if(c 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(s.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=s.transform(i.value,r);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(s.transform(i.value,r)).then(l=>({status:t.value,value:l})):f.INVALID);E.util.assertNever(s)}}g.ZodEffects=Ge,g.ZodTransformer=Ge,Ge.create=(a,e,t)=>new Ge({schema:a,typeName:$.ZodEffects,effect:e,...Y(t)}),Ge.createWithPreprocess=(a,e,t)=>new Ge({schema:e,effect:{type:"preprocess",transform:a},typeName:$.ZodEffects,...Y(t)});class Xe extends X{_parse(e){return this._getType(e)===E.ZodParsedType.undefined?(0,f.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}g.ZodOptional=Xe,Xe.create=(a,e)=>new Xe({innerType:a,typeName:$.ZodOptional,...Y(e)});class ba extends X{_parse(e){return this._getType(e)===E.ZodParsedType.null?(0,f.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}g.ZodNullable=ba,ba.create=(a,e)=>new ba({innerType:a,typeName:$.ZodNullable,...Y(e)});class gt extends X{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===E.ZodParsedType.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}g.ZodDefault=gt,gt.create=(a,e)=>new gt({innerType:a,typeName:$.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Y(e)});class ft extends X{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return(0,f.isAsync)(s)?s.then(r=>({status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new D.ZodError(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new D.ZodError(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}g.ZodCatch=ft,ft.create=(a,e)=>new ft({innerType:a,typeName:$.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Y(e)});class on extends X{_parse(e){if(this._getType(e)!==E.ZodParsedType.nan){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:D.ZodIssueCode.invalid_type,expected:E.ZodParsedType.nan,received:n.parsedType}),f.INVALID}return{status:"valid",value:e.data}}}g.ZodNaN=on,on.create=a=>new on({typeName:$.ZodNaN,...Y(a)}),g.BRAND=Symbol("zod_brand");class es extends X{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}g.ZodBranded=es;class bt extends X{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const r=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return r.status==="aborted"?f.INVALID:r.status==="dirty"?(t.dirty(),(0,f.DIRTY)(r.value)):this._def.out._parseAsync({data:r.value,path:n.path,parent:n})})();{const s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?f.INVALID:s.status==="dirty"?(t.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,t){return new bt({in:e,out:t,typeName:$.ZodPipeline})}}g.ZodPipeline=bt;class yt extends X{_parse(e){const t=this._def.innerType._parse(e),n=s=>((0,f.isValid)(s)&&(s.value=Object.freeze(s.value)),s);return(0,f.isAsync)(t)?t.then(s=>n(s)):n(t)}unwrap(){return this._def.innerType}}g.ZodReadonly=yt,yt.create=(a,e)=>new yt({innerType:a,typeName:$.ZodReadonly,...Y(e)});function qr(a,e){const t=typeof a=="function"?a(e):typeof a=="string"?{message:a}:a;return typeof t=="string"?{message:t}:t}function Wr(a,e={},t){return a?ja.create().superRefine((n,s)=>{const r=a(n);if(r instanceof Promise)return r.then(i=>{if(!i){const l=qr(e,n),c=l.fatal??t??!0;s.addIssue({code:"custom",...l,fatal:c})}});if(!r){const i=qr(e,n),l=i.fatal??t??!0;s.addIssue({code:"custom",...i,fatal:l})}}):ja.create()}g.late={object:ye.lazycreate};var $;(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"})($||(g.ZodFirstPartyTypeKind=$={}));const id=(a,e={message:`Input not instance of ${a.name}`})=>Wr(t=>t instanceof a,e);g.instanceof=id;const Gr=qe.create;g.string=Gr;const Kr=ha.create;g.number=Kr;const ld=on.create;g.nan=ld;const dd=ga.create;g.bigint=dd;const $r=ot.create;g.boolean=$r;const cd=Ia.create;g.date=cd;const ud=tn.create;g.symbol=ud;const pd=it.create;g.undefined=pd;const md=lt.create;g.null=md;const hd=ja.create;g.any=hd;const gd=Aa.create;g.unknown=gd;const fd=ra.create;g.never=fd;const bd=nn.create;g.void=bd;const yd=We.create;g.array=yd;const vd=ye.create;g.object=vd;const _d=ye.strictCreate;g.strictObject=_d;const Cd=dt.create;g.union=Cd;const Nd=sn.create;g.discriminatedUnion=Nd;const Sd=ct.create;g.intersection=Sd;const kd=Qe.create;g.tuple=kd;const wd=ut.create;g.record=wd;const Td=rn.create;g.map=Td;const Id=Pa.create;g.set=Id;const Ad=Za.create;g.function=Ad;const Pd=pt.create;g.lazy=Pd;const xd=mt.create;g.literal=xd;const Dd=fa.create;g.enum=Dd;const Ed=ht.create;g.nativeEnum=Ed;const Ld=qa.create;g.promise=Ld;const Hr=Ge.create;g.effect=Hr,g.transformer=Hr;const Fd=Xe.create;g.optional=Fd;const Od=ba.create;g.nullable=Od;const Md=Ge.createWithPreprocess;g.preprocess=Md;const Bd=bt.create;g.pipeline=Bd;const Ud=()=>Gr().optional();g.ostring=Ud;const zd=()=>Kr().optional();g.onumber=zd;const jd=()=>$r().optional();g.oboolean=jd,g.coerce={string:a=>qe.create({...a,coerce:!0}),number:a=>ha.create({...a,coerce:!0}),boolean:a=>ot.create({...a,coerce:!0}),bigint:a=>ga.create({...a,coerce:!0}),date:a=>Ia.create({...a,coerce:!0})},g.NEVER=f.INVALID,function(a){var e=oe&&oe.__createBinding||(Object.create?function(n,s,r,i){i===void 0&&(i=r);var l=Object.getOwnPropertyDescriptor(s,r);(!l||("get"in l?!s.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return s[r]}}),Object.defineProperty(n,i,l)}:function(n,s,r,i){i===void 0&&(i=r),n[i]=s[r]}),t=oe&&oe.__exportStar||function(n,s){for(var r in n)r!=="default"&&!Object.prototype.hasOwnProperty.call(s,r)&&e(s,n,r)};Object.defineProperty(a,"__esModule",{value:!0}),t(ma,a),t(Jn,a),t(Mr,a),t(st,a),t(g,a),t(Ye,a)}(Yn),function(a){var e=oe&&oe.__createBinding||(Object.create?function(i,l,c,d){d===void 0&&(d=c);var u=Object.getOwnPropertyDescriptor(l,c);(!u||("get"in u?!l.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return l[c]}}),Object.defineProperty(i,d,u)}:function(i,l,c,d){d===void 0&&(d=c),i[d]=l[c]}),t=oe&&oe.__setModuleDefault||(Object.create?function(i,l){Object.defineProperty(i,"default",{enumerable:!0,value:l})}:function(i,l){i.default=l}),n=oe&&oe.__importStar||function(i){if(i&&i.__esModule)return i;var l={};if(i!=null)for(var c in i)c!=="default"&&Object.prototype.hasOwnProperty.call(i,c)&&e(l,i,c);return t(l,i),l},s=oe&&oe.__exportStar||function(i,l){for(var c in i)c!=="default"&&!Object.prototype.hasOwnProperty.call(l,c)&&e(l,i,c)};Object.defineProperty(a,"__esModule",{value:!0}),a.z=void 0;const r=n(Yn);a.z=r,s(Yn,a),a.default=r}(Er),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=Er,t=Rn;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)}(nt),Object.defineProperty(tt,"__esModule",{value:!0}),tt.plans=void 0;const ve=Qt,je=nt,Rr={table_rows:0,bot_count:ve.SMALL_UNLIMITED,collaborator_count:ve.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};tt.plans={community:{id:"community",name:"Plan - Free",description:"Free plan for trying things out",tierIndex:0,prices:{month:{amount:ve.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:{table_rows:1e3,bot_count:3,collaborator_count:3,file_storage:100*ve.MB,vector_db_storage:100*ve.MB,saved_versions:3,indexed_file_count:1e3,incoming_messages_events:100*ve.MESSAGES_PER_CONVERSATION,ai_spend:100*ve.AI_SPEND_PER_CONVERSATION,conversation_sessions:100},providerProductId:je.UNKNOWN_STRIPE_ID},plus:{id:"plus",name:"Plan - Plus",description:"For growing businesses",tierIndex:1,prices:{month:{amount:189,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID},year:{amount:150*ve.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:{table_rows:1e5,bot_count:ve.SMALL_UNLIMITED,collaborator_count:3,file_storage:10*ve.GB,vector_db_storage:1*ve.GB,saved_versions:50,indexed_file_count:2e3,incoming_messages_events:250*ve.MESSAGES_PER_CONVERSATION,ai_spend:250*ve.AI_SPEND_PER_CONVERSATION,conversation_sessions:250},providerProductId:je.UNKNOWN_STRIPE_ID},team:{id:"team",name:"Plan - Team",description:"For small teams",tierIndex:2,prices:{month:{amount:939,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID},year:{amount:750*ve.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:{table_rows:5e5,bot_count:ve.SMALL_UNLIMITED,collaborator_count:ve.SMALL_UNLIMITED,file_storage:50*ve.GB,vector_db_storage:5*ve.GB,saved_versions:100,indexed_file_count:ve.BIG_UNLIMITED,incoming_messages_events:1500*ve.MESSAGES_PER_CONVERSATION,ai_spend:1500*ve.AI_SPEND_PER_CONVERSATION,conversation_sessions:1500},providerProductId:je.UNKNOWN_STRIPE_ID},enterprise:{id:"enterprise",name:"Plan - Enterprise",description:"Enterprise license subscription",tierIndex:3,prices:{month:{amount:ve.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:Rr,providerProductId:je.UNKNOWN_STRIPE_ID},managed:{id:"managed",name:"Plan - Managed",description:"Managed license subscription",tierIndex:4,prices:{month:{amount:ve.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:je.UNKNOWN_STRIPE_ID}},features:Rr,providerProductId:je.UNKNOWN_STRIPE_ID}};var vt={};Object.defineProperty(vt,"__esModule",{value:!0}),vt.addons=void 0;const Wa=Qt,Ga=nt,Yr=(a,e=["community","plus","team","enterprise","managed"])=>e.map(t=>({[t]:{amount:a,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID}})).reduce((t,n)=>({...t,...n}),{});vt.addons={conversation_sessions_addon:{id:"conversation_sessions_addon",name:"Add-on - Conversation Sessions",description:"Adds conversations sessions for the month",prices:{plus:{amount:65,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID},team:{amount:50,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID},enterprise:{amount:Wa.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ga.UNKNOWN_STRIPE_ID}},increments:{conversation_sessions:100,ai_spend:100*Wa.AI_SPEND_PER_CONVERSATION,incoming_messages_events:100*Wa.MESSAGES_PER_CONVERSATION},providerProductId:Ga.UNKNOWN_STRIPE_ID,autoRechargeable:!0,prorationDisabled:!0},storage_addon:{id:"storage_addon",name:"Add-on - Storage",description:"Adds table rows, vector db space and files",prices:{...Yr(40,["plus","team"]),...Yr(Wa.FREE_PRICE,["enterprise","managed"])},increments:{table_rows:1e5,vector_db_storage:1*Wa.GB,file_storage:10*Wa.GB},providerProductId:Ga.UNKNOWN_STRIPE_ID}};var _t={};Object.defineProperty(_t,"__esModule",{value:!0}),_t.meters=void 0;const Ka=nt;_t.meters={ai_spend_credit_grant:{id:"ai_spend_credit_grant",name:"AI Spend - Credit grant",description:"Pre-purchased credits applied toward AI usage",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:Ka.UNKNOWN_STRIPE_ID}},meterType:"creditGrant",providerMeterId:Ka.UNKNOWN_STRIPE_ID,providerProductId:Ka.UNKNOWN_STRIPE_ID},ai_spend_pay_as_you_go:{id:"ai_spend_pay_as_you_go",name:"AI Spend - Pay as you go",description:"Usage-based charges for AI spend, billed monthly",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:Ka.UNKNOWN_STRIPE_ID}},meterType:"payAsYouGo",providerMeterId:Ka.UNKNOWN_STRIPE_ID,providerProductId:Ka.UNKNOWN_STRIPE_ID}};var Jr={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingDefinitions=a.billingConfig=void 0;const e=tt,t=vt,n=_t;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})(Jr),function(a){var e=oe&&oe.__createBinding||(Object.create?function(n,s,r,i){i===void 0&&(i=r);var l=Object.getOwnPropertyDescriptor(s,r);(!l||("get"in l?!s.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return s[r]}}),Object.defineProperty(n,i,l)}:function(n,s,r,i){i===void 0&&(i=r),n[i]=s[r]}),t=oe&&oe.__exportStar||function(n,s){for(var r in n)r!=="default"&&!Object.prototype.hasOwnProperty.call(s,r)&&e(s,n,r)};Object.defineProperty(a,"__esModule",{value:!0}),t(tt,a),t(vt,a),t(_t,a),t(nt,a),t(Jr,a)}(Dr),function(a){var e=oe&&oe.__createBinding||(Object.create?function(n,s,r,i){i===void 0&&(i=r);var l=Object.getOwnPropertyDescriptor(s,r);(!l||("get"in l?!s.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return s[r]}}),Object.defineProperty(n,i,l)}:function(n,s,r,i){i===void 0&&(i=r),n[i]=s[r]}),t=oe&&oe.__exportStar||function(n,s){for(var r in n)r!=="default"&&!Object.prototype.hasOwnProperty.call(s,r)&&e(s,n,r)};Object.defineProperty(a,"__esModule",{value:!0}),t(Rn,a),t(Dr,a),t(Qt,a)}(xr),function(a){var e=oe&&oe.__createBinding||(Object.create?function(n,s,r,i){i===void 0&&(i=r);var l=Object.getOwnPropertyDescriptor(s,r);(!l||("get"in l?!s.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return s[r]}}),Object.defineProperty(n,i,l)}:function(n,s,r,i){i===void 0&&(i=r),n[i]=s[r]}),t=oe&&oe.__exportStar||function(n,s){for(var r in n)r!=="default"&&!Object.prototype.hasOwnProperty.call(s,r)&&e(s,n,r)};Object.defineProperty(a,"__esModule",{value:!0}),t(Ht,a),t(Rt,a),t(za,a),t(Pr,a),t(Yt,a),t(ze,a),t(Jt,a),t(xr,a)}(Ar);const ln=1e9,Qr={incoming_messages_events:a=>`${de(a)} incoming messages & events`,conversation_sessions:a=>`${de(a)} conversation sessions`,table_rows:a=>`${de(a)} table rows`,vector_db_storage:a=>`${Na(a)} vector database storage`,file_storage:a=>`${Na(a)} file storage`,collaborator_count:a=>a===1?"1 collaborator":`${de(a)} collaborators`,bot_count:a=>a===1?"1 bot":`${de(a)} bots`,indexed_file_count:a=>`${de(a)} indexed files for RAG`,ai_spend:a=>`${ie(a/ln,"usd",0)} AI credit included`,always_alive:a=>a===1?"1 always-alive bot":`${de(a)} always-alive bots`};function Vd(a,e,t){const n=(t==null?void 0:t[a])??Qr[a];return n?n(e):`${de(e)} ${a.replaceAll("_"," ")}`}const Xr=[{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 $a(a,e){return e==="bytes"?Na(a):e==="nano-usd"?`$${(a/ln).toFixed(2)}`:de(a)}function eo(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 dn(a){return a>=90?"critical":a>=75?"warning":"normal"}const Zd=Ar.NON_RESETTING_BILLING_FEATURE_IDS;function qd(a){return!Zd.includes(a)}function Ct(a){return a?Xr.flatMap(({key:e,label:t,unit:n})=>{const s=a[e];if(!s||s.quota<=0)return[];const r=s.usage??0,i=Math.max(0,Math.min(100,r/s.quota*100));return[{key:e,label:t,unit:n,used:r,quota:s.quota,remaining:Math.max(0,s.quota-r),pct:i,resets:qd(e)}]}).sort((e,t)=>t.pct-e.pct):[]}const ao="outgrow-free",Wd=.75,Gd=5;function Kd(a,e){return a.prices[e]??(e==="month"?a.prices.year:a.prices.month)??null}function $d(a,e){var s,r;const t=(s=a.prices.month)==null?void 0:s.amount;if(e==="month")return t??null;const n=((r=a.prices.year)==null?void 0:r.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}const Hd=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",interval:s="year",planFeatures:r={},featureDescriptions:i,period:l})=>{var J,H;const{isOutdatedBilling:c,analytics:d,scope:u}=Q(),{t:p}=ge(),{data:m}=$e(),{data:h}=ya(),{data:b}=Ze({enabled:!c}),{data:w}=va({period:l,enabled:!c}),C=a!==void 0,[y,_]=P.useState(!1),N=m==null?void 0:m.find(z=>z.id===(b==null?void 0:b.plan.current.planId)),A=b?N?be(N)==="community":!0:!1,I=P.useMemo(()=>Ct(w).find(z=>z.key==="conversation_sessions"),[w]),T=!C&&!c&&A&&!!I&&I.pct/100>=Wd&&!y&&!Tr(ao,u,"modal"),x=C?!!a:T;P.useEffect(()=>{x&&d.capture(Ne.PLAN_PICKER_VIEWED,{source:C?"outgrow_free":"outgrow_free_auto",interval:s})},[x,C,d]);const v=()=>{C||(Ir(ao,u,"modal"),_(!0)),e==null||e(!1)},L=P.useMemo(()=>m?m.filter(z=>{const ne=be(z);return ne!=="community"&&ne!=="enterprise"&&ne!=="managed"}).sort((z,ne)=>Sa.indexOf(be(z))-Sa.indexOf(be(ne))):[],[m]),V=((H=(J=m==null?void 0:m.find(z=>be(z)==="enterprise"))==null?void 0:J.metadata)==null?void 0:H.contact_url)??Fn;if(c||!x)return null;const O=(I==null?void 0:I.quota)??(N==null?void 0:N.features.conversation_sessions)??100,q=(I==null?void 0:I.used)??0,F=I&&I.pct>0?Math.min(100,Math.max(5,Math.round(I.pct))):0;return o.jsx(Ue,{open:x,onOpenChange:v,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(wt,{i18nKey:"outgrowLede",values:{quota:de(O)},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":F,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("span",{className:"bpb-outgrow__usage-fill",style:{width:`${F}%`}})}),o.jsx("span",{className:"bpb-outgrow__usage-text",children:o.jsx(wt,{i18nKey:"outgrowUsageText",values:{used:de(q),quota:de(O)},components:{bold:o.jsx("strong",{})}})})]}),o.jsx("div",{className:"bpb-outgrow__grid",children:L.map((z,ne)=>{const ae=be(z),W=Kd(z,s),S=$d(z,s),ue=ae===n||z.id===n,pe=z.features.conversation_sessions,_e=Bt(h,z,s),M=ne>0?L[ne-1]:void 0,G=(r[ae]??Ut[ae]).slice(0,Gd);return o.jsxs("div",{className:K("bpb-plan-card",ue&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":z.id,children:[o.jsxs("div",{className:"bpb-plan-card__header",children:[o.jsxs("h3",{className:"bpb-plan-card__name",children:[he(z.name),ue&&o.jsx(zt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),o.jsx("div",{className:"bpb-plan-card__price",children:S!==null&&W?o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-plan-card__currency",children:Qa(W.currency)}),o.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(S)?S:S.toFixed(2).replace(/\.00$/,"")}),o.jsx("span",{className:"bpb-plan-card__per",children:p("perMonth")})]}):o.jsxs("span",{className:"bpb-plan-card__amount",children:[Qa((W==null?void 0:W.currency)??"usd"),"0"]})})]}),pe!==void 0&&o.jsxs("div",{className:"bpb-outgrow__allowance",children:[o.jsxs("p",{className:"bpb-outgrow__allowance-value",children:[o.jsxs("strong",{children:[de(pe)," ",p("conversationsUnit")]})," ",p("perMonth")]}),o.jsx("p",{className:"bpb-outgrow__allowance-pack",children:_e?p("outgrowThenPer",{symbol:Qa(_e.currency),amount:_e.amount,packSize:de(_e.packSize)}):p("outgrowNoTopup")})]}),o.jsxs(Te,{variant:ue?"accent":"outline",block:!0,onClick:()=>{d.capture(Ne.PLAN_UPGRADE_INITIATED,{plan_name:he(z.name),interval:s,source:"outgrow_free"}),t(z.id,s),v()},children:[p("outgrowUpgradeTo",{planName:he(z.name)}),ue&&o.jsx(Wt,{size:15})]}),o.jsxs("ul",{className:"bpb-plan-card__features",children:[M&&o.jsx("li",{className:"bpb-outgrow__features-lead",children:p("outgrowEverythingIn",{planName:he(M.name)})}),G.map(Z=>{const te=Gt(Z),Ae=On[Z],se=Ae!==void 0?p(Ae.label):Z,Ce=(i==null?void 0:i[Z])??(Ae!==void 0?p(Ae.desc):void 0);return o.jsxs("li",{children:[o.jsx("span",{className:"bpb-plan-card__feature-chip",children:o.jsx(te,{size:13})}),Ce?o.jsx(at,{label:se,children:Ce}):o.jsx("span",{children:se})]},Z)})]})]},z.id)})}),o.jsxs("footer",{className:"bpb-outgrow__footer",children:[o.jsxs("span",{children:[p("outgrowNeedCustom")," ",o.jsx("a",{href:V,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(et,{size:14})]})]})]})})},ia=(a,e)=>e==="bytes"?Na(a):e==="nano-usd"?`$${(a/ln).toFixed(2)}`:de(a),Rd=(a,e)=>{const t=new Date;return Array.from({length:a},(n,s)=>{const r=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()-s,1));return{value:r.toISOString(),label:r.toLocaleDateString(e,{month:"long",year:"numeric",timeZone:"UTC"})}})},Yd=({period:a})=>{const{data:e,isLoading:t,isError:n}=xs("ai_spend",{period:a}),{t:s}=ge();if(n)return null;if(t)return o.jsx(le,{height:96});if(!e||e.length===0)return o.jsx("p",{className:"bpb-usage__group-hint",children:s("dashboardNoBotSpend")});const r=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:ia(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/r*100)):0}%`}})})]},i.botId))})},as=({entry:a,metric:e,planAllowance:t,planName:n,stacked:s})=>{const{t:r}=ge(),i=a.usage??0,l=a.quota>0?Math.max(0,Math.min(100,Math.round(i/a.quota*100))):0,c=l>0?Math.max(5,l):0,d=l>=90?"critical":l>=75?"warning":"normal",u=t??a.quota,p=Math.max(0,a.quota-u),m=p>0?n?r("dashboardFromPlanWithAddons",{amount:ia(u,e.unit),planName:n,addonAmount:ia(p,e.unit)}):r("dashboardFromPlanGenericWithAddons",{amount:ia(u,e.unit),addonAmount:ia(p,e.unit)}):n?r("dashboardFromPlan",{amount:ia(a.quota,e.unit),planName:n}):r("dashboardFromPlanGeneric",{amount:ia(a.quota,e.unit)});return o.jsxs("div",{className:"bpb-usage-row",children:[o.jsxs("div",{className:K("bpb-usage-row__head",s&&"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:ia(i,e.unit)}),o.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",ia(a.quota,e.unit)]})]})]}),o.jsxs("span",{className:"bpb-usage-tip",tabIndex:0,role:"note","aria-label":m,onMouseMove:h=>{const b=h.currentTarget.getBoundingClientRect(),w=(h.clientX-b.left)/b.width*100;h.currentTarget.style.setProperty("--bpb-tip-x",`${w}%`)},children:[o.jsx("div",{className:"bpb-usage-bar",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("div",{className:K("bpb-usage-bar__fill",`bpb-usage-bar__fill--${d}`),style:{width:`${c}%`}})}),o.jsx("span",{className:"bpb-usage-tip__bubble",role:"tooltip",children:m})]})]})},Jd=({period:a,showPeriodSelector:e=!0,periodMonths:t=12,className:n,onIncreaseLimits:s})=>{var q;const{isOutdatedBilling:r,locale:i}=Q(),{t:l}=ge(),c=P.useMemo(()=>Rd(t,i),[t,i]),[d,u]=P.useState(a??((q=c[0])==null?void 0:q.value)??""),p=Ds(),m=Math.max(0,c.findIndex(F=>F.value===d)),h=F=>{const J=c[m+F];J&&u(J.value)},{data:b,isLoading:w,isError:C}=va({period:d,enabled:!r}),{data:y}=Ze({enabled:!r}),{data:_}=$e(),N=_==null?void 0:_.find(F=>F.id===(y==null?void 0:y.plan.current.planId)),A=N?he(N.name):void 0,I=N?be(N):"community",T=I==="enterprise"||I==="managed",x=F=>N==null?void 0:N.features[F];if(r)return o.jsx("div",{className:K("bpb-usage bpb-scope",n),children:o.jsx(wa,{})});if(w)return o.jsxs("div",{className:K("bpb-usage bpb-scope",n),"aria-busy":"true",children:[o.jsx(le,{height:80}),o.jsx(le,{height:140})]});if(C||!b)return o.jsx("div",{className:K("bpb-usage bpb-scope",n),children:o.jsx("p",{className:"bpb-usage__error",role:"alert",children:l("dashboardLoadError")})});const v=b.conversation_sessions,L=b.ai_spend,O=[{key:"table_rows",label:l("dashboardTableRows"),unit:"count"},{key:"vector_db_storage",label:l("dashboardVectorDb"),unit:"bytes"},{key:"file_storage",label:l("dashboardFileStorage"),unit:"bytes"}].filter(F=>b[F.key]);return o.jsxs("div",{className:K("bpb-usage bpb-scope",n),children:[T&&o.jsx("p",{className:"bpb-usage__enterprise-note",children:l("dashboardEnterpriseUsageNotice")}),(e&&c.length>1||s)&&o.jsxs("div",{className:"bpb-usage__header",children:[e&&c.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:()=>h(1),disabled:m>=c.length-1,children:o.jsx(zn,{size:15})}),o.jsxs("span",{className:"bpb-usage__period-field",children:[o.jsx(fr,{size:15,className:"bpb-usage__period-icon"}),o.jsx("select",{className:"bpb-usage__period-select","aria-label":l("dashboardBillingPeriod"),value:d,onChange:F=>u(F.target.value),children:c.map(F=>o.jsx("option",{value:F.value,children:F.label},F.value))}),o.jsx(qt,{size:14,className:"bpb-usage__period-chevron"})]}),o.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardNextMonth"),onClick:()=>h(-1),disabled:m<=0,children:o.jsx(ka,{size:15})})]})]}),s&&o.jsxs(Te,{onClick:s,children:[o.jsx(jn,{size:15}),l("dashboardIncreaseLimits")]})]}),v&&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(as,{entry:v,metric:{key:"conversation_sessions",label:l("dashboardConversationsMetric"),unit:"count"},planAllowance:x("conversation_sessions"),planName:A,stacked:!0})})]}),O.length>0&&o.jsxs("section",{className:"bpb-usage__group",children:[o.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardStorageTitle")}),o.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardStorageHint")}),o.jsx("div",{className:"bpb-usage__card",children:O.map(F=>o.jsx(as,{entry:b[F.key],metric:F,planAllowance:x(F.key),planName:A},F.key))})]}),L&&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(as,{entry:L,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(Yd,{period:d})]})]})]})},to="usage-banner",Qd=({position:a="inline",threshold:e=.9,onUpgrade:t,dismissible:n=!0,cta:s="upgrade",ctaLabel:r,period:i,className:l})=>{const{isOutdatedBilling:c,analytics:d,scope:u}=Q(),{t:p}=ge(),{data:m}=va({period:i,enabled:!c}),[h,b]=P.useState({}),[w,C]=P.useState(!1),[y,_]=P.useState(null),N=m?Object.entries(m).map(([O,q])=>({key:O,pct:q.quota>0?(q.usage??0)/q.quota:0})).filter(O=>O.pct>=e).sort((O,q)=>q.pct-O.pct)[0]:void 0,A=!!N&&(h[N.key]||Tr(to,u,N.key));if(c||!N||A)return null;const T={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")}[N.key]??N.key.replace(/_/g," "),x=Math.min(100,Math.round(N.pct*100)),v=N.pct>=1,L=()=>{d.capture(Ne.UPGRADE_CTA_CLICKED,{source:"usage_banner",metric:N.key,usage_pct:Math.round(N.pct*100)}),t?t():C(!0)},V=v?"critical":"warning";return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:K("bpb-usage-banner bpb-scope",`bpb-usage-banner--${a}`,`bpb-usage-banner--${V}`,l),role:"alert","aria-live":"polite",children:[o.jsx(gr,{size:18,className:"bpb-usage-banner__icon"}),o.jsx("p",{className:"bpb-usage-banner__text",children:v?p("usageBannerLimitReached",{label:T}):p("usageBannerNearLimit",{pct:x,label:T})}),o.jsxs("div",{className:"bpb-usage-banner__actions",children:[o.jsx(Te,{variant:"primary",size:"sm",onClick:L,children:r??p(s==="manage"?"usageBannerManageCta":"usageBannerDefaultCta")}),n&&o.jsx("button",{type:"button",className:"bpb-usage-banner__dismiss","aria-label":p("usageBannerDismiss"),onClick:()=>{Ir(to,u,N.key),b(O=>({...O,[N.key]:!0}))},children:o.jsx(Zt,{size:16})})]})]}),!t&&o.jsxs(o.Fragment,{children:[o.jsx(yr,{open:w,onOpenChange:C,onSelectPlan:(O,q)=>{C(!1),_({planId:O,interval:q})}}),y&&o.jsx(Nr,{open:!!y,onOpenChange:O=>!O&&_(null),planId:y.planId,interval:y.interval,onBack:()=>{_(null),C(!0)},onSuccess:()=>_(null)})]})]})},Xd=({Icon:a,title:e,description:t,onClick:n,className:s})=>o.jsxs("button",{type:"button",className:K("bpb-action-card bpb-scope",s),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})]}),ts=({children:a})=>o.jsx("span",{className:"bpb-summary-card__icon","aria-hidden":"true",children:a}),no=({isAddons:a,className:e})=>{const{manageBillingUrl:t}=Q(),{t:n}=ge(),s=()=>t&&window.open(t,"_blank","noopener");return o.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-scope",a?"bpb-summary-card--addons":"bpb-summary-card--plan",e),onClick:s,disabled:!t,children:[o.jsx(ts,{children:a?o.jsx(Vt,{size:22}):o.jsx(jt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n(a?"summaryAddonsEyebrow":"summaryCurrentPlan")}),o.jsx("span",{className:"bpb-summary-card__title",children:n("summaryManagedInDashboard")}),o.jsx("span",{className:"bpb-summary-card__meta",children:n("summaryManagedMeta")})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("open"),o.jsx(et,{size:15})]})]})]})},ec=({onManage:a,className:e})=>{var w,C;const{isOutdatedBilling:t}=Q(),{t:n}=ge(),{data:s,isLoading:r}=Ze({enabled:!t}),{data:i,isLoading:l}=$e();if(t)return o.jsx(no,{isAddons:!1,className:e});if(r||l)return o.jsx(le,{height:84,rounded:!0,className:K("bpb-scope",e)});const c=s==null?void 0:s.plan.current,d=i==null?void 0:i.find(y=>y.id===(c==null?void 0:c.planId)),u=(c==null?void 0:c.interval)??"month",p=((w=d==null?void 0:d.prices[u])==null?void 0:w.amount)??0,m=((C=d==null?void 0:d.prices[u])==null?void 0:C.currency)??"usd",h=d==null?void 0:d.features.conversation_sessions,b=d?be(d):"community";return o.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-summary-card--plan bpb-scope",`bpb-summary-card--tier-${b==="managed"?"enterprise":b}`,e),onClick:a,children:[o.jsx(ts,{children:o.jsx(jt,{size:22})}),o.jsxs("div",{className:"bpb-summary-card__content",children:[o.jsxs("div",{className:"bpb-summary-card__body",children:[o.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("summaryCurrentPlan")}),o.jsx("span",{className:"bpb-summary-card__title",children:d?he(d.name):n("summaryNoPlan")}),o.jsxs("span",{className:"bpb-summary-card__meta",children:[p>0?`${ie(p,m,0)}${n(u==="year"?"perYear":"perMonth")}`:n("free"),h!==void 0&&` · ${n("summaryConversationsPerMo",{n:de(h)})}`]})]}),o.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),o.jsx(ka,{size:16})]})]})]})},ac=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=Q(),{t:n}=ge(),{data:s,isLoading:r}=Ze({enabled:!t}),{data:i,isLoading:l}=ya();if(t)return o.jsx(no,{isAddons:!0,className:e});if(r||l)return o.jsx(le,{height:84,rounded:!0,className:K("bpb-scope",e)});const c=(i??[]).flatMap(d=>{var p;const u=((p=s==null?void 0:s.addons[d.id])==null?void 0:p.current.quantity)??0;return u>0?[{name:ua[d.id]?n(ua[d.id]):Xa(d.name),quantity:u}]:[]});return o.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-summary-card--addons bpb-scope",c.length>0&&"bpb-summary-card--active",e),onClick:a,children:[o.jsx(ts,{children:o.jsx(Vt,{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(d=>`${d.quantity}× ${d.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(ka,{size:16})]})]})]})},tc=({onManage:a,className:e})=>{var ae,W;const{isOutdatedBilling:t,locale:n,manageBillingUrl:s,analytics:r}=Q(),{t:i}=ge(),{data:l,isLoading:c}=Ze({enabled:!t}),{data:d,isLoading:u}=$e(),{data:p,isLoading:m}=ya();if(t){const S=()=>s&&window.open(s,"_blank","noopener");return o.jsxs("button",{type:"button",className:K("bpb-plan-banner bpb-plan-banner--community bpb-scope",e),onClick:S,disabled:!s,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(et,{size:16})]})]})}if(c||u||m)return o.jsx(le,{height:132,rounded:!0,className:K("bpb-scope",e)});const h=l==null?void 0:l.plan.current,b=d==null?void 0:d.find(S=>S.id===(h==null?void 0:h.planId)),w=(h==null?void 0:h.interval)??"month",C=((ae=b==null?void 0:b.prices[w])==null?void 0:ae.currency)??"usd",y=b?be(b):"community",_=Object.fromEntries(Object.entries((l==null?void 0:l.addons)??{}).map(([S,ue])=>{var pe;return[S,((pe=ue.current)==null?void 0:pe.quantity)??0]})),N=((W=b==null?void 0:b.prices[w])==null?void 0:W.amount)??0,A=(p??[]).reduce((S,ue)=>{const pe=b?Mt(ue,b,w):null;return S+(_[ue.id]??0)*((pe==null?void 0:pe.amount)??0)},0),I=N+A,T=w==="year"?"/yr":"/mo",x=rr(b,p,_).find(S=>S.key==="conversation_sessions"),v=i(y==="community"?"conversationsUnit":"conversationsPerMonth"),L=y==="enterprise"||y==="managed",V=y!=="community"&&!L,O=l==null?void 0:l.plan.next,q=O&&O.planId!==(h==null?void 0:h.planId),F=h==null?void 0:h.periodEnd,J=V&&!q&&F&&!Kt(F)?sa(F,n):null,H=d==null?void 0:d.find(S=>S.id===(O==null?void 0:O.planId)),z=O==null?void 0:O.effectiveDate,ne=q&&H&&z?i("planBannerDowngradesTo",{plan:he(H.name),date:sa(z,n)}):null;return o.jsxs("button",{type:"button",className:K("bpb-plan-banner",`bpb-plan-banner--${y}`,"bpb-scope",e),onClick:()=>{r.capture(Ne.UPGRADE_CTA_CLICKED,{source:"plan_banner",current_tier:y}),a()},children:[o.jsxs("div",{className:"bpb-plan-banner__main",children:[o.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),o.jsx("span",{className:"bpb-plan-banner__name",children:b?he(b.name):i("planBannerNoPlan")}),L?o.jsx("span",{className:"bpb-plan-banner__sub",children:x&&x.added>0?o.jsxs(o.Fragment,{children:[i("planBannerCustom")," + ",de(x.added)," ",v]}):i("planBannerCustomConversations")}):x&&o.jsx("span",{className:"bpb-plan-banner__sub",children:x.added>0?o.jsxs(o.Fragment,{children:[de(x.base)," + ",de(x.added)," ",v]}):`${de(x.total)} ${v}`})]}),o.jsxs("div",{className:"bpb-plan-banner__summary",children:[L?o.jsx("span",{className:"bpb-plan-banner__price",children:i("planBannerCustomPricing")}):o.jsx("span",{className:"bpb-plan-banner__price",children:I>0&&o.jsxs(o.Fragment,{children:[ie(I,C,0),o.jsx("span",{className:"bpb-plan-banner__price-suffix",children:T})]})}),V&&o.jsxs("span",{className:"bpb-plan-banner__meta",children:[i(w==="year"?"billedAnnually":"billedMonthly"),A>0&&` ${i("planBannerInclAddons")}`]}),J&&o.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerRenews",{date:J})}),ne&&o.jsx("span",{className:"bpb-plan-banner__meta",children:ne})]}),o.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("planBannerManageCta")," ",o.jsx(ka,{size:16})]})]})},nc=({onManage:a,period:e,variant:t="card",className:n,style:s})=>{const{isOutdatedBilling:r,locale:i}=Q(),{t:l}=ge(),{data:c,isLoading:d}=Ze({enabled:!r}),{data:u,isLoading:p}=$e(),{data:m,isLoading:h}=va({period:e,enabled:!r});if(r)return null;if(d||p||h)return o.jsx(le,{height:72,rounded:!0,className:K("bpb-scope",n)});const b=u==null?void 0:u.find(z=>z.id===(c==null?void 0:c.plan.current.planId)),w=b?be(b):"community",C=w==="enterprise"||w==="managed",y=Ct(m),_=y.find(z=>z.used>z.quota);if(C&&!_)return null;const N=y.find(z=>z.key==="conversation_sessions"),A=y[0],I=_??(A&&A.key!=="conversation_sessions"&&A.pct>=75?A:N??A),T=I?Math.round(I.pct):0,x=T>0?Math.max(5,T):0,v=I?dn(I.pct):"normal",L=v!=="normal",V=w==="community",O=!V&&(I!=null&&I.resets)?sa(vl(e??new Date().toISOString()),i):null;let q=null,F=null;if(I&&L){const z=$a(I.remaining,I.unit);q=l(v==="critical"?"usageWidgetLimitReached":"usageWidgetRunningLow"),C?F=l("usageWidgetEnterpriseOverQuota"):V&&I.key==="conversation_sessions"?F=v==="critical"?l("usageWidgetFreeExhausted"):l("usageWidgetFreeLeft",{left:z}):F=v==="critical"?l("usageWidgetUpgradeToKeepGoing"):l("usageWidgetOnlyLeft",{left:z})}const J=o.jsx(o.Fragment,{children:I?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"bpb-plan-usage__head",children:[L&&o.jsx(gr,{size:16,className:K("bpb-plan-usage__alert",`bpb-plan-usage__alert--${v}`)}),o.jsx("span",{className:"bpb-plan-usage__plan",children:eo(I.key,l)}),o.jsxs("span",{className:"bpb-plan-usage__count",children:[$a(I.used,I.unit)," / ",$a(I.quota,I.unit)]}),a&&!L&&o.jsx(ka,{size:15,className:"bpb-plan-usage__chevron"})]}),o.jsx("div",{className:"bpb-plan-usage__bar",role:"progressbar","aria-valuenow":T,"aria-valuemin":0,"aria-valuemax":100,children:o.jsx("div",{className:K("bpb-plan-usage__fill",`bpb-plan-usage__fill--${v}`),style:{width:`${x}%`}})}),q?o.jsxs("p",{className:"bpb-plan-usage__status",children:[o.jsxs("strong",{className:K("bpb-plan-usage__status-word",`bpb-plan-usage__status-word--${v}`),children:[q,"."]})," ",F&&o.jsx("span",{className:"bpb-plan-usage__status-detail",children:F})]}):O&&o.jsx("span",{className:"bpb-plan-usage__reset",children:l("usageWidgetResets",{date:O})}),a&&L&&!C&&o.jsxs("span",{className:"bpb-plan-usage__cta",children:[l("usageWidgetViewOptions"),o.jsx(Wt,{size:14})]})]}):o.jsxs("div",{className:"bpb-plan-usage__head",children:[o.jsx("span",{className:"bpb-plan-usage__plan",children:b?he(b.name):l("free")}),a&&o.jsx(ka,{size:15,className:"bpb-plan-usage__chevron"})]})}),H=K("bpb-plan-usage bpb-scope",`bpb-plan-usage--${t}`,L&&`bpb-plan-usage--${v}`,a&&"bpb-plan-usage--clickable",n);return a?o.jsx("button",{type:"button",className:H,style:s,onClick:a,children:J}):o.jsx("div",{className:H,style:s,children:J})},so=({children:a,delay:e=200,placement:t="top",align:n="center",period:s,onUpgrade:r,block:i=!1,className:l})=>{const{isOutdatedBilling:c,analytics:d}=Q(),{t:u}=ge(),{data:p}=va({period:s,enabled:!c}),{data:m}=Ze({enabled:!c}),{data:h}=$e(),[b,w]=P.useState(!1),C=P.useRef(null),y=()=>{C.current&&(clearTimeout(C.current),C.current=null)};P.useEffect(()=>y,[]);const _=h==null?void 0:h.find(F=>F.id===(m==null?void 0:m.plan.current.planId)),N=_?be(_):"community",A=Ct(p),I=!c&&A.length>0,T=()=>{I&&(y(),C.current=setTimeout(()=>w(!0),Math.max(0,e)))},x=()=>{y(),w(!1)},v=_?he(_.name):u("free"),L=N==="community",V=L?A.find(F=>F.key==="conversation_sessions"):void 0,O=L&&!!r,q=()=>{d.capture(Ne.UPGRADE_CTA_CLICKED,{source:"usage_popover"}),r==null||r()};return o.jsxs("span",{className:K("bpb-usage-pop bpb-scope",i&&"bpb-usage-pop--block",l),onMouseEnter:T,onMouseLeave:x,onFocus:T,onBlur:x,children:[a,b&&I&&o.jsxs("span",{className:K("bpb-usage-pop__card",`bpb-usage-pop__card--${t}`,`bpb-usage-pop__card--align-${n}`),role:"tooltip",children:[L?o.jsxs("span",{className:"bpb-usage-pop__header",children:[o.jsx("span",{className:"bpb-usage-pop__plan-name",children:u("usagePopoverFreeTitle")}),V&&o.jsx("span",{className:"bpb-usage-pop__subtitle",children:o.jsx(wt,{i18nKey:"usagePopoverFreeSubtitle",values:{quota:de(V.quota)},components:{bold:o.jsx("strong",{})}})})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"bpb-usage-pop__plan",children:o.jsx("span",{className:"bpb-usage-pop__plan-name",children:u("usagePopoverPlanName",{planName:v})})}),o.jsx("span",{className:"bpb-usage-pop__title",children:u("usagePopoverTitle")})]}),A.map(F=>{const J=F.pct>0?Math.max(5,F.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:eo(F.key,u)}),o.jsxs("span",{className:"bpb-usage-pop__val",children:[$a(F.used,F.unit)," / ",$a(F.quota,F.unit)]})]}),o.jsx("span",{className:"bpb-usage-pop__bar",children:o.jsx("span",{className:K("bpb-usage-pop__fill",`bpb-usage-pop__fill--${dn(F.pct)}`),style:{width:`${J}%`}})})]},F.key)}),O&&o.jsxs("span",{className:"bpb-usage-pop__nudge",children:[o.jsx("span",{className:"bpb-usage-pop__nudge-text",children:o.jsx(wt,{i18nKey:"usagePopoverNudgeText",components:{bold:o.jsx("strong",{})}})}),o.jsxs("button",{type:"button",className:"bpb-usage-pop__nudge-cta",onClick:q,children:[u("usagePopoverNudgeCta"),o.jsx(Wt,{size:14})]})]})]})]})},sc=({size:a=20,thickness:e=3.5,showLabel:t=!1,onClick:n,popoverDelay:s=200,popoverAlign:r="center",trackColor:i="light",period:l,className:c,...d})=>{const{isOutdatedBilling:u}=Q(),{data:p}=va({period:l,enabled:!u}),m=Ct(p);if(u||m.length===0)return null;const h=m[0],b=dn(h.pct),w=h.pct>0?Math.max(5,h.pct):0,C=(a-e)/2,y=2*Math.PI*C,_=y*(1-w/100),N=d["aria-label"]??`${Math.round(h.pct)}% of your ${h.label.toLowerCase()} used`,A=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:K("bpb-usage-ring__track",`bpb-usage-ring__track--${i}`),cx:a/2,cy:a/2,r:C,fill:"none",strokeWidth:e}),o.jsx("circle",{className:K("bpb-usage-ring__arc",`bpb-usage-ring__arc--${b}`),cx:a/2,cy:a/2,r:C,fill:"none",strokeWidth:e,strokeLinecap:"round",strokeDasharray:y,strokeDashoffset:_,transform:`rotate(-90 ${a/2} ${a/2})`})]}),t&&o.jsxs("span",{className:"bpb-usage-ring__label",children:[Math.round(h.pct),"%"]})]}),I=K("bpb-usage-ring",n&&"bpb-usage-ring--clickable"),T=n?o.jsx("button",{type:"button",className:I,onClick:n,"aria-label":N,children:A}):o.jsx("span",{className:I,tabIndex:0,role:"img","aria-label":N,children:A});return o.jsx(so,{delay:s,align:r,period:l,className:c,children:T})};k.AddonsSummaryCard=ac,k.ArrowRightIcon=Wt,k.BILLING_EVENTS=Ne,k.Badge=zt,k.BankIcon=ul,k.BillingActionCard=Xd,k.BillingProvider=gi,k.BoltIcon=Vt,k.Button=Te,k.CalendarIcon=fr,k.CardBrandBadge=Zn,k.CardIcon=Un,k.ChartIcon=ur,k.CheckIcon=or,k.CheckoutDialog=Nr,k.ChevronDownIcon=qt,k.ChevronLeftIcon=zn,k.ChevronRightIcon=ka,k.CloseIcon=Zt,k.DEFAULT_FEATURE_LABELS=Qr,k.DEFAULT_PLAN_FEATURES=Ut,k.Dialog=Ue,k.DownloadIcon=Vn,k.ENTERPRISE_CONTACT_URL=Fn,k.ExternalLinkIcon=et,k.GlobeIcon=pr,k.InfinityIcon=dr,k.InfoTooltip=at,k.Input=$t,k.InvoicesDialog=Dl,k.LayersIcon=jt,k.LockIcon=pl,k.ManageAddonsDialog=Pl,k.MessageIcon=ir,k.MinusIcon=hr,k.NANO_DOLLARS_PER_DOLLAR=ln,k.OutdatedBillingGate=wa,k.OutgrowFreeDialog=Hd,k.PLAN_FEATURE_KEYS=On,k.PLAN_ORDER=Sa,k.PaintIcon=mr,k.PaymentMethodDialog=Ll,k.PlanBanner=tc,k.PlanSummaryCard=ec,k.PlanUsageWidget=nc,k.PlusIcon=jn,k.PuzzleIcon=lr,k.ReceiptIcon=hl,k.SegmentedControl=br,k.Select=Hn,k.ShieldIcon=Bn,k.Skeleton=le,k.SparkleIcon=Mn,k.Stepper=Sr,k.USAGE_METRICS=Xr,k.UpgradePlanDialog=yr,k.UsageBanner=Qd,k.UsageDashboard=Jd,k.UsagePopover=so,k.UsageRing=sc,k.UsersIcon=cr,k.addDays=er,k.addonDisplayName=Xa,k.addonLimitsPreview=sr,k.addonPrice=Mt,k.billingKeys=we,k.cn=K,k.conversationPackPrice=Bt,k.conversationsAddon=tr,k.currencySymbol=Qa,k.featureLabel=Vd,k.formatBytes=Na,k.formatCurrency=ie,k.formatDate=sa,k.formatQuantity=de,k.formatUsage=$a,k.getCardElementStyle=Kn,k.getStripeAppearance=Gn,k.getStripePromise=rs,k.iconForFeature=Gt,k.planDisplayName=he,k.planEntitlements=rr,k.planKind=be,k.toStripeLocale=$n,k.usageItems=Ct,k.usageTier=dn,k.useAddons=ya,k.useBilling=Q,k.useBillingAddress=Nn,k.useBillingReadonly=kn,k.useCreatePaymentMethodIntent=wn,k.useCustomer=Sn,k.useInvoices=Ps,k.usePaymentMethod=Cn,k.usePlans=$e,k.useSetAddons=Es,k.useSetBillingAddress=In,k.useSetCustomer=An,k.useSetPaymentMethod=Tn,k.useSetSubscription=Pn,k.useSubscription=Ze,k.useSubscriptionPreview=_n,k.useSupportsUsageByBot=Ds,k.useUsage=va,k.useUsageByBot=xs,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});