@bpinternal/billing-ui 0.5.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +8 -6
- package/dist/index.js +2059 -2052
- package/dist/index.umd.cjs +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(v,n){typeof exports=="object"&&typeof module<"u"?n(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"],n):(v=typeof globalThis<"u"?globalThis:v||self,n(v.BillingUI={},v.ReactJsxRuntime,v.ReactQuery,v.React,v.StripeJs,v.ReactDOM,v.ReactStripeJs))})(this,function(v,n,oe,A,ms,hs,Ne){"use strict";var ai=Object.defineProperty;var ti=(v,n,oe)=>n in v?ai(v,n,{enumerable:!0,configurable:!0,writable:!0,value:oe}):v[n]=oe;var gs=(v,n,oe)=>ti(v,typeof n!="symbol"?n+"":n,oe);const Dt=new Map;function xt(a){let e=Dt.get(a);return e||(e=ms.loadStripe(a,{developerTools:{assistant:{enabled:!1}}}),Dt.set(a,e)),e}function bs(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var fs={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 ys=bs(fs);var vs=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function Pt(a){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=a.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(e.name=t[1],(ys[t[1]]||a.charAt(a.length-2)==="/")&&(e.voidElement=!0),e.name.startsWith("!--"))){var s=a.indexOf("-->");return{type:"comment",comment:s!==-1?a.slice(4,s):""}}for(var r=new RegExp(vs),o=null;(o=r.exec(a))!==null;)if(o[0].trim())if(o[1]){var i=o[1].trim(),l=[i,""];i.indexOf("=")>-1&&(l=i.split("=")),e.attrs[l[0]]=l[1],r.lastIndex--}else o[2]&&(e.attrs[o[2]]=o[3].trim().substring(1,o[3].length-1));return e}var Cs=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,Ss=/^\s*$/,Ns=Object.create(null);function Ft(a,e){switch(e.type){case"text":return a+e.content;case"tag":return a+="<"+e.name+(e.attrs?function(t){var s=[];for(var r in t)s.push(r+'="'+t[r]+'"');return s.length?" "+s.join(" "):""}(e.attrs):"")+(e.voidElement?"/>":">"),e.voidElement?a:a+e.children.reduce(Ft,"")+"</"+e.name+">";case"comment":return a+"<!--"+e.comment+"-->"}}var _s={parse:function(a,e){e||(e={}),e.components||(e.components=Ns);var t,s=[],r=[],o=-1,i=!1;if(a.indexOf("<")!==0){var l=a.indexOf("<");s.push({type:"text",content:l===-1?a:a.substring(0,l)})}return a.replace(Cs,function(c,d){if(i){if(c!=="</"+t.name+">")return;i=!1}var p,u=c.charAt(1)!=="/",g=c.startsWith("<!--"),h=d+c.length,b=a.charAt(h);if(g){var C=Pt(c);return o<0?(s.push(C),s):((p=r[o]).children.push(C),s)}if(u&&(o++,(t=Pt(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))}),o===0&&s.push(t),(p=r[o-1])&&p.children.push(t),r[o]=t),(!u||t.voidElement)&&(o>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(o--,t=o===-1?s:r[o]),!i&&b!=="<"&&b)){p=o===-1?s:r[o].children;var S=a.indexOf("<",h),y=a.slice(h,S===-1?void 0:S);Ss.test(y)&&(y=" "),(S>-1&&o+p.length>=0||y!==" ")&&p.push({type:"text",content:y})}}),s},stringify:function(a){return a.reduce(function(e,t){return e+Ft("",t)},"")}};function fa(){if(console&&console.warn){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];_e(e[0])&&(e[0]=`react-i18next:: ${e[0]}`),console.warn(...e)}}const Et={};function ya(){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];_e(e[0])&&Et[e[0]]||(_e(e[0])&&(Et[e[0]]=new Date),fa(...e))}const It=(a,e)=>()=>{if(a.isInitialized)e();else{const t=()=>{setTimeout(()=>{a.off("initialized",t)},0),e()};a.on("initialized",t)}},Lt=(a,e,t)=>{a.loadNamespaces(e,It(a,t))},Mt=(a,e,t,s)=>{_e(t)&&(t=[t]),t.forEach(r=>{a.options.ns.indexOf(r)<0&&a.options.ns.push(r)}),a.loadLanguages(e,It(a,s))},ks=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const s=e.languages[0],r=e.options?e.options.fallbackLng:!1,o=e.languages[e.languages.length-1];if(s.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(s,a)||!e.services.backendConnector.backend||e.options.resources&&!e.options.partialBundledLanguages||i(s,a)&&(!r||i(o,a)))},ws=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(ya("i18n.languages were undefined or empty",e.languages),!0):e.options.ignoreJSONStructure!==void 0?e.hasLoadedNamespace(a,{lng:t.lng,precheck:(r,o)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&r.services.backendConnector.backend&&r.isLanguageChangingTo&&!o(r.isLanguageChangingTo,a))return!1}}):ks(a,e,t)},_e=a=>typeof a=="string",Re=a=>typeof a=="object"&&a!==null,As=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Ts={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},Ds=a=>Ts[a];let ja={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:a=>a.replace(As,Ds)};const xs=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ja={...ja,...a}},Bt=()=>ja;let Ot;const Ps=a=>{Ot=a},Wa=()=>Ot,Ga=(a,e)=>{if(!a)return!1;const t=a.props?a.props.children:a.children;return e?t.length>0:!!t},Ka=a=>{if(!a)return[];const e=a.props?a.props.children:a.children;return a.props&&a.props.i18nIsDynamicList?ea(e):e},Fs=a=>Array.isArray(a)&&a.every(A.isValidElement),ea=a=>Array.isArray(a)?a:[a],Es=(a,e)=>{const t={...e};return t.props=Object.assign(a.props,e.props),t},zt=(a,e)=>{if(!a)return"";let t="";const s=ea(a),r=e.transSupportBasicHtmlNodes&&e.transKeepBasicHtmlNodesFor?e.transKeepBasicHtmlNodesFor:[];return s.forEach((o,i)=>{if(_e(o))t+=`${o}`;else if(A.isValidElement(o)){const{props:l,type:c}=o,d=Object.keys(l).length,p=r.indexOf(c)>-1,u=l.children;if(!u&&p&&!d)t+=`<${c}/>`;else if(!u&&(!p||d)||l.i18nIsDynamicList)t+=`<${i}></${i}>`;else if(p&&d===1&&_e(u))t+=`<${c}>${u}</${c}>`;else{const g=zt(u,e);t+=`<${i}>${g}</${i}>`}}else if(o===null)fa("Trans: the passed in value is invalid - seems you passed in a null child.");else if(Re(o)){const{format:l,...c}=o,d=Object.keys(c);if(d.length===1){const p=l?`${d[0]}, ${l}`:d[0];t+=`{{${p}}}`}else fa("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",o)}else fa("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",o)}),t},Is=(a,e,t,s,r,o)=>{if(e==="")return[];const i=s.transKeepBasicHtmlNodesFor||[],l=e&&new RegExp(i.map(S=>`<${S}`).join("|")).test(e);if(!a&&!l&&!o)return[e];const c={},d=S=>{ea(S).forEach(m=>{_e(m)||(Ga(m)?d(Ka(m)):Re(m)&&!A.isValidElement(m)&&Object.assign(c,m))})};d(a);const p=_s.parse(`<0>${e}</0>`),u={...c,...r},g=(S,y,m)=>{const D=Ka(S),T=b(D,y.children,m);return Fs(D)&&T.length===0||S.props&&S.props.i18nIsDynamicList?D:T},h=(S,y,m,D,T)=>{S.dummy?(S.children=y,m.push(A.cloneElement(S,{key:D},T?void 0:y))):m.push(...A.Children.map([S],k=>{const _={...k.props};return delete _.i18nIsDynamicList,A.createElement(k.type,{..._,key:D,ref:k.ref},T?null:y)}))},b=(S,y,m)=>{const D=ea(S);return ea(y).reduce((k,_,w)=>{const f=_.children&&_.children[0]&&_.children[0].content&&t.services.interpolator.interpolate(_.children[0].content,u,t.language);if(_.type==="tag"){let P=D[parseInt(_.name,10)];m.length===1&&!P&&(P=m[0][_.name]),P||(P={});const x=Object.keys(_.attrs).length!==0?Es({props:_.attrs},P):P,L=A.isValidElement(x),B=L&&Ga(_,!0)&&!_.voidElement,M=l&&Re(x)&&x.dummy&&!L,Q=Re(a)&&Object.hasOwnProperty.call(a,_.name);if(_e(x)){const O=t.services.interpolator.interpolate(x,u,t.language);k.push(O)}else if(Ga(x)||B){const O=g(x,_,m);h(x,O,k,w)}else if(M){const O=b(D,_.children,m);h(x,O,k,w)}else if(Number.isNaN(parseFloat(_.name)))if(Q){const O=g(x,_,m);h(x,O,k,w,_.voidElement)}else if(s.transSupportBasicHtmlNodes&&i.indexOf(_.name)>-1)if(_.voidElement)k.push(A.createElement(_.name,{key:`${_.name}-${w}`}));else{const O=b(D,_.children,m);k.push(A.createElement(_.name,{key:`${_.name}-${w}`},O))}else if(_.voidElement)k.push(`<${_.name} />`);else{const O=b(D,_.children,m);k.push(`<${_.name}>${O}</${_.name}>`)}else if(Re(x)&&!L){const O=_.children[0]?f:null;O&&k.push(O)}else h(x,f,k,w,_.children.length!==1||!f)}else if(_.type==="text"){const P=s.transWrapTextNodes,x=o?s.unescape(t.services.interpolator.interpolate(_.content,u,t.language)):t.services.interpolator.interpolate(_.content,u,t.language);P?k.push(A.createElement(P,{key:`${_.name}-${w}`},x)):k.push(x)}return k},[])},C=b([{dummy:!0,children:a||[]}],p,ea(a||[]));return Ka(C[0])};function Ls(a){let{children:e,count:t,parent:s,i18nKey:r,context:o,tOptions:i={},values:l,defaults:c,components:d,ns:p,i18n:u,t:g,shouldUnescape:h,...b}=a;const C=u||Wa();if(!C)return ya("You will need to pass in an i18next instance by using i18nextReactModule"),e;const S=g||C.t.bind(C)||(B=>B),y={...Bt(),...C.options&&C.options.react};let m=p||S.ns||C.options&&C.options.defaultNS;m=_e(m)?[m]:m||["translation"];const D=zt(e,y),T=c||D||y.transEmptyNodeValue||r,{hashTransKey:k}=y,_=r||(k?k(D||T):D||T);C.options&&C.options.interpolation&&C.options.interpolation.defaultVariables&&(l=l&&Object.keys(l).length>0?{...l,...C.options.interpolation.defaultVariables}:{...C.options.interpolation.defaultVariables});const w=l||t!==void 0||!e?i.interpolation:{interpolation:{...i.interpolation,prefix:"#$?",suffix:"?$#"}},f={...i,context:o||i.context,count:t,...l,...w,defaultValue:T,ns:m},P=_?S(_,f):T;d&&Object.keys(d).forEach(B=>{const M=d[B];if(typeof M.type=="function"||!M.props||!M.props.children||P.indexOf(`${B}/>`)<0&&P.indexOf(`${B} />`)<0)return;function Q(){return A.createElement(A.Fragment,null,M)}d[B]=A.createElement(Q)});const x=Is(d||e,P,C,y,f,h),L=s!==void 0?s:y.defaultTransParent;return L?A.createElement(L,b,x):x}const Ms={type:"3rdParty",init(a){xs(a.options.react),Ps(a)}},Ha=A.createContext();class Bs{constructor(){gs(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}}function Ut(a){let{children:e,count:t,parent:s,i18nKey:r,context:o,tOptions:i={},values:l,defaults:c,components:d,ns:p,i18n:u,t:g,shouldUnescape:h,...b}=a;const{i18n:C,defaultNS:S}=A.useContext(Ha)||{},y=u||C||Wa(),m=g||y&&y.t.bind(y);return Ls({children:e,count:t,parent:s,i18nKey:r,context:o,tOptions:i,values:l,defaults:c,components:d,ns:p||m&&m.ns||S||y&&y.options&&y.options.defaultNS,i18n:y,t:g,shouldUnescape:h,...b})}const Os=(a,e)=>{const t=A.useRef();return A.useEffect(()=>{t.current=a},[a,e]),t.current},qt=(a,e,t,s)=>a.getFixedT(e,t,s),zs=(a,e,t,s)=>A.useCallback(qt(a,e,t,s),[a,e,t,s]),ie=function(a){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:s,defaultNS:r}=A.useContext(Ha)||{},o=t||s||Wa();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new Bs),!o){ya("You will need to pass in an i18next instance by using initReactI18next");const T=(_,w)=>_e(w)?w:Re(w)&&_e(w.defaultValue)?w.defaultValue:Array.isArray(_)?_[_.length-1]:_,k=[T,{},!1];return k.t=T,k.i18n={},k.ready=!1,k}o.options.react&&o.options.react.wait!==void 0&&ya("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const i={...Bt(),...o.options.react,...e},{useSuspense:l,keyPrefix:c}=i;let d=r||o.options&&o.options.defaultNS;d=_e(d)?[d]:d||["translation"],o.reportNamespaces.addUsedNamespaces&&o.reportNamespaces.addUsedNamespaces(d);const p=(o.isInitialized||o.initializedStoreOnce)&&d.every(T=>ws(T,o,i)),u=zs(o,e.lng||null,i.nsMode==="fallback"?d:d[0],c),g=()=>u,h=()=>qt(o,e.lng||null,i.nsMode==="fallback"?d:d[0],c),[b,C]=A.useState(g);let S=d.join();e.lng&&(S=`${e.lng}${S}`);const y=Os(S),m=A.useRef(!0);A.useEffect(()=>{const{bindI18n:T,bindI18nStore:k}=i;m.current=!0,!p&&!l&&(e.lng?Mt(o,e.lng,d,()=>{m.current&&C(h)}):Lt(o,d,()=>{m.current&&C(h)})),p&&y&&y!==S&&m.current&&C(h);const _=()=>{m.current&&C(h)};return T&&o&&o.on(T,_),k&&o&&o.store.on(k,_),()=>{m.current=!1,T&&o&&T.split(" ").forEach(w=>o.off(w,_)),k&&o&&k.split(" ").forEach(w=>o.store.off(w,_))}},[o,S]),A.useEffect(()=>{m.current&&p&&C(g)},[o,c,p]);const D=[b,o,p];if(D.t=b,D.i18n=o,D.ready=p,p||!p&&!l)return D;throw new Promise(T=>{e.lng?Mt(o,e.lng,d,()=>T()):Lt(o,d,()=>T())})};function Us(a){let{i18n:e,defaultNS:t,children:s}=a;const r=A.useMemo(()=>({i18n:e,defaultNS:t}),[e,t]);return A.createElement(Ha.Provider,{value:r},s)}const V=a=>typeof a=="string",ia=()=>{let a,e;const t=new Promise((s,r)=>{a=s,e=r});return t.resolve=a,t.reject=e,t},$t=a=>a==null?"":""+a,qs=(a,e,t)=>{a.forEach(s=>{e[s]&&(t[s]=e[s])})},$s=/###/g,Vt=a=>a&&a.indexOf("###")>-1?a.replace($s,"."):a,jt=a=>!a||V(a),la=(a,e,t)=>{const s=V(e)?e.split("."):e;let r=0;for(;r<s.length-1;){if(jt(a))return{};const o=Vt(s[r]);!a[o]&&t&&(a[o]=new t),Object.prototype.hasOwnProperty.call(a,o)?a=a[o]:a={},++r}return jt(a)?{}:{obj:a,k:Vt(s[r])}},Wt=(a,e,t)=>{const{obj:s,k:r}=la(a,e,Object);if(s!==void 0||e.length===1){s[r]=t;return}let o=e[e.length-1],i=e.slice(0,e.length-1),l=la(a,i,Object);for(;l.obj===void 0&&i.length;)o=`${i[i.length-1]}.${o}`,i=i.slice(0,i.length-1),l=la(a,i,Object),l&&l.obj&&typeof l.obj[`${l.k}.${o}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${o}`]=t},Vs=(a,e,t,s)=>{const{obj:r,k:o}=la(a,e,Object);r[o]=r[o]||[],r[o].push(t)},va=(a,e)=>{const{obj:t,k:s}=la(a,e);if(t)return t[s]},js=(a,e,t)=>{const s=va(a,t);return s!==void 0?s:va(e,t)},Gt=(a,e,t)=>{for(const s in e)s!=="__proto__"&&s!=="constructor"&&(s in a?V(a[s])||a[s]instanceof String||V(e[s])||e[s]instanceof String?t&&(a[s]=e[s]):Gt(a[s],e[s],t):a[s]=e[s]);return a},aa=a=>a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var Ws={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const Gs=a=>V(a)?a.replace(/[&<>"'\/]/g,e=>Ws[e]):a;class Ks{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 s=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,s),this.regExpQueue.push(e),s}}const Hs=[" ",",","?","!",";"],Ys=new Ks(20),Js=(a,e,t)=>{e=e||"",t=t||"";const s=Hs.filter(i=>e.indexOf(i)<0&&t.indexOf(i)<0);if(s.length===0)return!0;const r=Ys.getRegExp(`(${s.map(i=>i==="?"?"\\?":i).join("|")})`);let o=!r.test(a);if(!o){const i=a.indexOf(t);i>0&&!r.test(a.substring(0,i))&&(o=!0)}return o},Ya=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!a)return;if(a[e])return a[e];const s=e.split(t);let r=a;for(let o=0;o<s.length;){if(!r||typeof r!="object")return;let i,l="";for(let c=o;c<s.length;++c)if(c!==o&&(l+=t),l+=s[c],i=r[l],i!==void 0){if(["string","number","boolean"].indexOf(typeof i)>-1&&c<s.length-1)continue;o+=c-o+1;break}r=i}return r},Ca=a=>a&&a.replace("_","-"),Qs={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 Sa{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||Qs,this.options=t,this.debug=t.debug}log(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"log","",!0)}warn(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"warn","",!0)}error(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"error","")}deprecate(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,s,r){return r&&!this.debug?null:(V(e[0])&&(e[0]=`${s}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new Sa(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new Sa(this.logger,e)}}var De=new Sa;class Na{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(s=>{this.observers[s]||(this.observers[s]=new Map);const r=this.observers[s].get(t)||0;this.observers[s].set(t,r+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),r=1;r<t;r++)s[r-1]=arguments[r];this.observers[e]&&Array.from(this.observers[e].entries()).forEach(i=>{let[l,c]=i;for(let d=0;d<c;d++)l(...s)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(i=>{let[l,c]=i;for(let d=0;d<c;d++)l.apply(l,[e,...s])})}}class Kt extends Na{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,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,i=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;e.indexOf(".")>-1?l=e.split("."):(l=[e,t],s&&(Array.isArray(s)?l.push(...s):V(s)&&o?l.push(...s.split(o)):l.push(s)));const c=va(this.data,l);return!c&&!t&&!s&&e.indexOf(".")>-1&&(e=l[0],t=l[1],s=l.slice(2).join(".")),c||!i||!V(s)?c:Ya(this.data&&this.data[e]&&this.data[e][t],s,o)}addResource(e,t,s,r){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator;let l=[e,t];s&&(l=l.concat(i?s.split(i):s)),e.indexOf(".")>-1&&(l=e.split("."),r=t,t=l[1]),this.addNamespaces(t),Wt(this.data,l,r),o.silent||this.emit("added",e,t,s,r)}addResources(e,t,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const o in s)(V(s[o])||Array.isArray(s[o]))&&this.addResource(e,t,o,s[o],{silent:!0});r.silent||this.emit("added",e,t,s)}addResourceBundle(e,t,s,r,o){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},l=[e,t];e.indexOf(".")>-1&&(l=e.split("."),r=s,s=t,t=l[1]),this.addNamespaces(t);let c=va(this.data,l)||{};i.skipCopy||(s=JSON.parse(JSON.stringify(s))),r?Gt(c,s,o):c={...c,...s},Wt(this.data,l,c),i.silent||this.emit("added",e,t,s)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(e,t)}:this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(r=>t[r]&&Object.keys(t[r]).length>0)}toJSON(){return this.data}}var Ht={processors:{},addPostProcessor(a){this.processors[a.name]=a},handle(a,e,t,s,r){return a.forEach(o=>{this.processors[o]&&(e=this.processors[o].process(e,t,s,r))}),e}};const Yt={};class _a extends Na{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),qs(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=De.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 s=this.resolve(e,t);return s&&s.res!==void 0}extractFromKey(e,t){let s=t.nsSeparator!==void 0?t.nsSeparator:this.options.nsSeparator;s===void 0&&(s=":");const r=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let o=t.ns||this.options.defaultNS||[];const i=s&&e.indexOf(s)>-1,l=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!Js(e,s,r);if(i&&!l){const c=e.match(this.interpolator.nestingRegexp);if(c&&c.length>0)return{key:e,namespaces:V(o)?[o]:o};const d=e.split(s);(s!==r||s===r&&this.options.ns.indexOf(d[0])>-1)&&(o=d.shift()),e=d.join(r)}return{key:e,namespaces:V(o)?[o]:o}}translate(e,t,s){if(typeof t!="object"&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),typeof t=="object"&&(t={...t}),t||(t={}),e==null)return"";Array.isArray(e)||(e=[String(e)]);const r=t.returnDetails!==void 0?t.returnDetails:this.options.returnDetails,o=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator,{key:i,namespaces:l}=this.extractFromKey(e[e.length-1],t),c=l[l.length-1],d=t.lng||this.language,p=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&d.toLowerCase()==="cimode"){if(p){const T=t.nsSeparator||this.options.nsSeparator;return r?{res:`${c}${T}${i}`,usedKey:i,exactUsedKey:i,usedLng:d,usedNS:c,usedParams:this.getUsedParamsDetails(t)}:`${c}${T}${i}`}return r?{res:i,usedKey:i,exactUsedKey:i,usedLng:d,usedNS:c,usedParams:this.getUsedParamsDetails(t)}:i}const u=this.resolve(e,t);let g=u&&u.res;const h=u&&u.usedKey||i,b=u&&u.exactUsedKey||i,C=Object.prototype.toString.apply(g),S=["[object Number]","[object Function]","[object RegExp]"],y=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,m=!this.i18nFormat||this.i18nFormat.handleAsObject,D=!V(g)&&typeof g!="boolean"&&typeof g!="number";if(m&&g&&D&&S.indexOf(C)<0&&!(V(y)&&Array.isArray(g))){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const T=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,g,{...t,ns:l}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(u.res=T,u.usedParams=this.getUsedParamsDetails(t),u):T}if(o){const T=Array.isArray(g),k=T?[]:{},_=T?b:h;for(const w in g)if(Object.prototype.hasOwnProperty.call(g,w)){const f=`${_}${o}${w}`;k[w]=this.translate(f,{...t,joinArrays:!1,ns:l}),k[w]===f&&(k[w]=g[w])}g=k}}else if(m&&V(y)&&Array.isArray(g))g=g.join(y),g&&(g=this.extendTranslation(g,e,t,s));else{let T=!1,k=!1;const _=t.count!==void 0&&!V(t.count),w=_a.hasDefaultValue(t),f=_?this.pluralResolver.getSuffix(d,t.count,t):"",P=t.ordinal&&_?this.pluralResolver.getSuffix(d,t.count,{ordinal:!1}):"",x=_&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),L=x&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${f}`]||t[`defaultValue${P}`]||t.defaultValue;!this.isValidLookup(g)&&w&&(T=!0,g=L),this.isValidLookup(g)||(k=!0,g=i);const M=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&k?void 0:g,Q=w&&L!==g&&this.options.updateMissing;if(k||T||Q){if(this.logger.log(Q?"updateKey":"missingKey",d,c,i,Q?L:g),o){const q=this.resolve(i,{...t,keySeparator:!1});q&&q.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 O=[];const z=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&z&&z[0])for(let q=0;q<z.length;q++)O.push(z[q]);else this.options.saveMissingTo==="all"?O=this.languageUtils.toResolveHierarchy(t.lng||this.language):O.push(t.lng||this.language);const Z=(q,J,N)=>{const se=w&&N!==g?N:M;this.options.missingKeyHandler?this.options.missingKeyHandler(q,c,J,se,Q,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(q,c,J,se,Q,t),this.emit("missingKey",q,c,J,g)};this.options.saveMissing&&(this.options.saveMissingPlurals&&_?O.forEach(q=>{const J=this.pluralResolver.getSuffixes(q,t);x&&t[`defaultValue${this.options.pluralSeparator}zero`]&&J.indexOf(`${this.options.pluralSeparator}zero`)<0&&J.push(`${this.options.pluralSeparator}zero`),J.forEach(N=>{Z([q],i+N,t[`defaultValue${N}`]||L)})}):Z(O,i,L))}g=this.extendTranslation(g,e,t,u,s),k&&g===i&&this.options.appendNamespaceToMissingKey&&(g=`${c}:${i}`),(k||T)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?g=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${c}:${i}`:i,T?g:void 0):g=this.options.parseMissingKeyHandler(g))}return r?(u.res=g,u.usedParams=this.getUsedParamsDetails(t),u):g}extendTranslation(e,t,s,r,o){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...s},s.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!s.skipInterpolation){s.interpolation&&this.interpolator.init({...s,interpolation:{...this.options.interpolation,...s.interpolation}});const d=V(e)&&(s&&s.interpolation&&s.interpolation.skipOnVariables!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let p;if(d){const g=e.match(this.interpolator.nestingRegexp);p=g&&g.length}let u=s.replace&&!V(s.replace)?s.replace:s;if(this.options.interpolation.defaultVariables&&(u={...this.options.interpolation.defaultVariables,...u}),e=this.interpolator.interpolate(e,u,s.lng||this.language||r.usedLng,s),d){const g=e.match(this.interpolator.nestingRegexp),h=g&&g.length;p<h&&(s.nest=!1)}!s.lng&&this.options.compatibilityAPI!=="v1"&&r&&r.res&&(s.lng=this.language||r.usedLng),s.nest!==!1&&(e=this.interpolator.nest(e,function(){for(var g=arguments.length,h=new Array(g),b=0;b<g;b++)h[b]=arguments[b];return o&&o[0]===h[0]&&!s.context?(i.logger.warn(`It seems you are nesting recursively key: ${h[0]} in key: ${t[0]}`),null):i.translate(...h,t)},s)),s.interpolation&&this.interpolator.reset()}const l=s.postProcess||this.options.postProcess,c=V(l)?[l]:l;return e!=null&&c&&c.length&&s.applyPostProcessor!==!1&&(e=Ht.handle(c,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(s)},...s}:s,this)),e}resolve(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s,r,o,i,l;return V(e)&&(e=[e]),e.forEach(c=>{if(this.isValidLookup(s))return;const d=this.extractFromKey(c,t),p=d.key;r=p;let u=d.namespaces;this.options.fallbackNS&&(u=u.concat(this.options.fallbackNS));const g=t.count!==void 0&&!V(t.count),h=g&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),b=t.context!==void 0&&(V(t.context)||typeof t.context=="number")&&t.context!=="",C=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);u.forEach(S=>{this.isValidLookup(s)||(l=S,!Yt[`${C[0]}-${S}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(l)&&(Yt[`${C[0]}-${S}`]=!0,this.logger.warn(`key "${r}" for languages "${C.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!!!")),C.forEach(y=>{if(this.isValidLookup(s))return;i=y;const m=[p];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(m,p,y,S,t);else{let T;g&&(T=this.pluralResolver.getSuffix(y,t.count,t));const k=`${this.options.pluralSeparator}zero`,_=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(g&&(m.push(p+T),t.ordinal&&T.indexOf(_)===0&&m.push(p+T.replace(_,this.options.pluralSeparator)),h&&m.push(p+k)),b){const w=`${p}${this.options.contextSeparator}${t.context}`;m.push(w),g&&(m.push(w+T),t.ordinal&&T.indexOf(_)===0&&m.push(w+T.replace(_,this.options.pluralSeparator)),h&&m.push(w+k))}}let D;for(;D=m.pop();)this.isValidLookup(s)||(o=D,s=this.getResource(y,S,D,t))}))})}),{res:s,usedKey:r,exactUsedKey:o,usedLng:i,usedNS:l}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,s,r):this.resourceStore.getResource(e,t,s,r)}getUsedParamsDetails(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],s=e.replace&&!V(e.replace);let r=s?e.replace:e;if(s&&typeof e.count<"u"&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!s){r={...r};for(const o of t)delete r[o]}return r}static hasDefaultValue(e){const t="defaultValue";for(const s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&t===s.substring(0,t.length)&&e[s]!==void 0)return!0;return!1}}const Ja=a=>a.charAt(0).toUpperCase()+a.slice(1);class Jt{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=De.create("languageUtils")}getScriptPartFromCode(e){if(e=Ca(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=Ca(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(V(e)&&e.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let r=Intl.getCanonicalLocales(e)[0];if(r&&this.options.lowerCaseLng&&(r=r.toLowerCase()),r)return r}catch{}const t=["hans","hant","latn","cyrl","cans","mong","arab"];let s=e.split("-");return this.options.lowerCaseLng?s=s.map(r=>r.toLowerCase()):s.length===2?(s[0]=s[0].toLowerCase(),s[1]=s[1].toUpperCase(),t.indexOf(s[1].toLowerCase())>-1&&(s[1]=Ja(s[1].toLowerCase()))):s.length===3&&(s[0]=s[0].toLowerCase(),s[1].length===2&&(s[1]=s[1].toUpperCase()),s[0]!=="sgn"&&s[2].length===2&&(s[2]=s[2].toUpperCase()),t.indexOf(s[1].toLowerCase())>-1&&(s[1]=Ja(s[1].toLowerCase())),t.indexOf(s[2].toLowerCase())>-1&&(s[2]=Ja(s[2].toLowerCase()))),s.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(s=>{if(t)return;const r=this.formatLanguageCode(s);(!this.options.supportedLngs||this.isSupportedCode(r))&&(t=r)}),!t&&this.options.supportedLngs&&e.forEach(s=>{if(t)return;const r=this.getLanguagePartFromCode(s);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(o=>{if(o===r)return o;if(!(o.indexOf("-")<0&&r.indexOf("-")<0)&&(o.indexOf("-")>0&&r.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===r||o.indexOf(r)===0&&r.length>1))return o})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),V(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let s=e[t];return s||(s=e[this.getScriptPartFromCode(t)]),s||(s=e[this.formatLanguageCode(t)]),s||(s=e[this.getLanguagePartFromCode(t)]),s||(s=e.default),s||[]}toResolveHierarchy(e,t){const s=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],o=i=>{i&&(this.isSupportedCode(i)?r.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return V(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(e))):V(e)&&o(this.formatLanguageCode(e)),s.forEach(i=>{r.indexOf(i)<0&&o(this.formatLanguageCode(i))}),r}}let Zs=[{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}],Xs={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 Rs=["v1","v2","v3"],er=["v4"],Qt={zero:0,one:1,two:2,few:3,many:4,other:5},ar=()=>{const a={};return Zs.forEach(e=>{e.lngs.forEach(t=>{a[t]={numbers:e.nr,plurals:Xs[e.fc]}})}),a};class tr{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=De.create("pluralResolver"),(!this.options.compatibilityJSON||er.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=ar(),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 s=Ca(e==="dev"?"en":e),r=t.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:s,type:r});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];let i;try{i=new Intl.PluralRules(s,{type:r})}catch{if(!e.match(/-|_/))return;const c=this.languageUtils.getLanguagePartFromCode(e);i=this.getRule(c,t)}return this.pluralRulesCache[o]=i,i}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const s=this.getRule(e,t);return this.shouldUseIntlApi()?s&&s.resolvedOptions().pluralCategories.length>1:s&&s.numbers.length>1}getPluralFormsOfKey(e,t){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(e,s).map(r=>`${t}${r}`)}getSuffixes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const s=this.getRule(e,t);return s?this.shouldUseIntlApi()?s.resolvedOptions().pluralCategories.sort((r,o)=>Qt[r]-Qt[o]).map(r=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${r}`):s.numbers.map(r=>this.getSuffix(e,r,t)):[]}getSuffix(e,t){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=this.getRule(e,s);return r?this.shouldUseIntlApi()?`${this.options.prepend}${s.ordinal?`ordinal${this.options.prepend}`:""}${r.select(t)}`:this.getSuffixRetroCompatible(r,t):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,t){const s=e.noAbs?e.plurals(t):e.plurals(Math.abs(t));let r=e.numbers[s];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(r===2?r="plural":r===1&&(r=""));const o=()=>this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString();return this.options.compatibilityJSON==="v1"?r===1?"":typeof r=="number"?`_plural_${r.toString()}`:o():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?o():this.options.prepend&&s.toString()?this.options.prepend+s.toString():s.toString()}shouldUseIntlApi(){return!Rs.includes(this.options.compatibilityJSON)}}const Zt=function(a,e,t){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=js(a,e,t);return!o&&r&&V(t)&&(o=Ya(a,t,s),o===void 0&&(o=Ya(e,t,s))),o},Qa=a=>a.replace(/\$/g,"$$$$");class nr{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=De.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:s,useRawValueToEscape:r,prefix:o,prefixEscaped:i,suffix:l,suffixEscaped:c,formatSeparator:d,unescapeSuffix:p,unescapePrefix:u,nestingPrefix:g,nestingPrefixEscaped:h,nestingSuffix:b,nestingSuffixEscaped:C,nestingOptionsSeparator:S,maxReplaces:y,alwaysFormat:m}=e.interpolation;this.escape=t!==void 0?t:Gs,this.escapeValue=s!==void 0?s:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=o?aa(o):i||"{{",this.suffix=l?aa(l):c||"}}",this.formatSeparator=d||",",this.unescapePrefix=p?"":u||"-",this.unescapeSuffix=this.unescapePrefix?"":p||"",this.nestingPrefix=g?aa(g):h||aa("$t("),this.nestingSuffix=b?aa(b):C||aa(")"),this.nestingOptionsSeparator=S||",",this.maxReplaces=y||1e3,this.alwaysFormat=m!==void 0?m:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,s)=>t&&t.source===s?(t.lastIndex=0,t):new RegExp(s,"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,s,r){let o,i,l;const c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},d=h=>{if(h.indexOf(this.formatSeparator)<0){const y=Zt(t,c,h,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(y,void 0,s,{...r,...t,interpolationkey:h}):y}const b=h.split(this.formatSeparator),C=b.shift().trim(),S=b.join(this.formatSeparator).trim();return this.format(Zt(t,c,C,this.options.keySeparator,this.options.ignoreJSONStructure),S,s,{...r,...t,interpolationkey:C})};this.resetRegExp();const p=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,u=r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:h=>Qa(h)},{regex:this.regexp,safeValue:h=>this.escapeValue?Qa(this.escape(h)):Qa(h)}].forEach(h=>{for(l=0;o=h.regex.exec(e);){const b=o[1].trim();if(i=d(b),i===void 0)if(typeof p=="function"){const S=p(e,o,r);i=V(S)?S:""}else if(r&&Object.prototype.hasOwnProperty.call(r,b))i="";else if(u){i=o[0];continue}else this.logger.warn(`missed to pass in variable ${b} for interpolating ${e}`),i="";else!V(i)&&!this.useRawValueToEscape&&(i=$t(i));const C=h.safeValue(i);if(e=e.replace(o[0],C),u?(h.regex.lastIndex+=i.length,h.regex.lastIndex-=o[0].length):h.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),e}nest(e,t){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,o,i;const l=(c,d)=>{const p=this.nestingOptionsSeparator;if(c.indexOf(p)<0)return c;const u=c.split(new RegExp(`${p}[ ]*{`));let g=`{${u[1]}`;c=u[0],g=this.interpolate(g,i);const h=g.match(/'/g),b=g.match(/"/g);(h&&h.length%2===0&&!b||b.length%2!==0)&&(g=g.replace(/'/g,'"'));try{i=JSON.parse(g),d&&(i={...d,...i})}catch(C){return this.logger.warn(`failed parsing options string in nesting for key ${c}`,C),`${c}${p}${g}`}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,c};for(;r=this.nestingRegexp.exec(e);){let c=[];i={...s},i=i.replace&&!V(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;let d=!1;if(r[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(r[1])){const p=r[1].split(this.formatSeparator).map(u=>u.trim());r[1]=p.shift(),c=p,d=!0}if(o=t(l.call(this,r[1].trim(),i),i),o&&r[0]===e&&!V(o))return o;V(o)||(o=$t(o)),o||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),o=""),d&&(o=c.reduce((p,u)=>this.format(p,u,s.lng,{...s,interpolationkey:r[1].trim()}),o.trim())),e=e.replace(r[0],o),this.regexp.lastIndex=0}return e}}const sr=a=>{let e=a.toLowerCase().trim();const t={};if(a.indexOf("(")>-1){const s=a.split("(");e=s[0].toLowerCase().trim();const r=s[1].substring(0,s[1].length-1);e==="currency"&&r.indexOf(":")<0?t.currency||(t.currency=r.trim()):e==="relativetime"&&r.indexOf(":")<0?t.range||(t.range=r.trim()):r.split(";").forEach(i=>{if(i){const[l,...c]=i.split(":"),d=c.join(":").trim().replace(/^'+|'+$/g,""),p=l.trim();t[p]||(t[p]=d),d==="false"&&(t[p]=!1),d==="true"&&(t[p]=!0),isNaN(d)||(t[p]=parseInt(d,10))}})}return{formatName:e,formatOptions:t}},ta=a=>{const e={};return(t,s,r)=>{let o=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(o={...o,[r.interpolationkey]:void 0});const i=s+JSON.stringify(o);let l=e[i];return l||(l=a(Ca(s),r),e[i]=l),l(t)}};class rr{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=De.create("formatter"),this.options=e,this.formats={number:ta((t,s)=>{const r=new Intl.NumberFormat(t,{...s});return o=>r.format(o)}),currency:ta((t,s)=>{const r=new Intl.NumberFormat(t,{...s,style:"currency"});return o=>r.format(o)}),datetime:ta((t,s)=>{const r=new Intl.DateTimeFormat(t,{...s});return o=>r.format(o)}),relativetime:ta((t,s)=>{const r=new Intl.RelativeTimeFormat(t,{...s});return o=>r.format(o,s.range||"day")}),list:ta((t,s)=>{const r=new Intl.ListFormat(t,{...s});return o=>r.format(o)})},this.init(e)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=ta(t)}format(e,t,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=t.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&o[0].indexOf(")")<0&&o.find(l=>l.indexOf(")")>-1)){const l=o.findIndex(c=>c.indexOf(")")>-1);o[0]=[o[0],...o.splice(1,l)].join(this.formatSeparator)}return o.reduce((l,c)=>{const{formatName:d,formatOptions:p}=sr(c);if(this.formats[d]){let u=l;try{const g=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},h=g.locale||g.lng||r.locale||r.lng||s;u=this.formats[d](l,h,{...p,...r,...g})}catch(g){this.logger.warn(g)}return u}else this.logger.warn(`there was no format function for ${d}`);return l},e)}}const or=(a,e)=>{a.pending[e]!==void 0&&(delete a.pending[e],a.pendingCount--)};class ir extends Na{constructor(e,t,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=e,this.store=t,this.services=s,this.languageUtils=s.languageUtils,this.options=r,this.logger=De.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(s,r.backend,r)}queueLoad(e,t,s,r){const o={},i={},l={},c={};return e.forEach(d=>{let p=!0;t.forEach(u=>{const g=`${d}|${u}`;!s.reload&&this.store.hasResourceBundle(d,u)?this.state[g]=2:this.state[g]<0||(this.state[g]===1?i[g]===void 0&&(i[g]=!0):(this.state[g]=1,p=!1,i[g]===void 0&&(i[g]=!0),o[g]===void 0&&(o[g]=!0),c[u]===void 0&&(c[u]=!0)))}),p||(l[d]=!0)}),(Object.keys(o).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(o),pending:Object.keys(i),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(c)}}loaded(e,t,s){const r=e.split("|"),o=r[0],i=r[1];t&&this.emit("failedLoading",o,i,t),!t&&s&&this.store.addResourceBundle(o,i,s,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&s&&(this.state[e]=0);const l={};this.queue.forEach(c=>{Vs(c.loaded,[o],i),or(c,e),t&&c.errors.push(t),c.pendingCount===0&&!c.done&&(Object.keys(c.loaded).forEach(d=>{l[d]||(l[d]={});const p=c.loaded[d];p.length&&p.forEach(u=>{l[d][u]===void 0&&(l[d][u]=!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,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:s,tried:r,wait:o,callback:i});return}this.readingCalls++;const l=(d,p)=>{if(this.readingCalls--,this.waitingReads.length>0){const u=this.waitingReads.shift();this.read(u.lng,u.ns,u.fcName,u.tried,u.wait,u.callback)}if(d&&p&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,s,r+1,o*2,i)},o);return}i(d,p)},c=this.backend[s].bind(this.backend);if(c.length===2){try{const d=c(e,t);d&&typeof d.then=="function"?d.then(p=>l(null,p)).catch(l):l(null,d)}catch(d){l(d)}return}return c(e,t,l)}prepareLoading(e,t){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();V(e)&&(e=this.languageUtils.toResolveHierarchy(e)),V(t)&&(t=[t]);const o=this.queueLoad(e,t,s,r);if(!o.toLoad.length)return o.pending.length||r(),null;o.toLoad.forEach(i=>{this.loadOne(i)})}load(e,t,s){this.prepareLoading(e,t,{},s)}reload(e,t,s){this.prepareLoading(e,t,{reload:!0},s)}loadOne(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const s=e.split("|"),r=s[0],o=s[1];this.read(r,o,"read",void 0,void 0,(i,l)=>{i&&this.logger.warn(`${t}loading namespace ${o} for language ${r} failed`,i),!i&&l&&this.logger.log(`${t}loaded namespace ${o} for language ${r}`,l),this.loaded(e,i,l)})}saveMissing(e,t,s,r,o){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},l=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${s}" 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(!(s==null||s==="")){if(this.backend&&this.backend.create){const c={...i,isUpdate:o},d=this.backend.create.bind(this.backend);if(d.length<6)try{let p;d.length===5?p=d(e,t,s,r,c):p=d(e,t,s,r),p&&typeof p.then=="function"?p.then(u=>l(null,u)).catch(l):l(null,p)}catch(p){l(p)}else d(e,t,s,r,l,c)}!e||!e[0]||this.store.addResource(e[0],t,s,r)}}}const Xt=()=>({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]),V(a[1])&&(e.defaultValue=a[1]),V(a[2])&&(e.tDescription=a[2]),typeof a[2]=="object"||typeof a[3]=="object"){const t=a[3]||a[2];Object.keys(t).forEach(s=>{e[s]=t[s]})}return e},interpolation:{escapeValue:!0,format:a=>a,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),Rt=a=>(V(a.ns)&&(a.ns=[a.ns]),V(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),V(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs&&a.supportedLngs.indexOf("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),a),ka=()=>{},lr=a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(t=>{typeof a[t]=="function"&&(a[t]=a[t].bind(a))})};class da extends Na{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=Rt(e),this.services={},this.logger=De,this.modules={external:[]},lr(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]:{},s=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof t=="function"&&(s=t,t={}),!t.defaultNS&&t.defaultNS!==!1&&t.ns&&(V(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=Xt();this.options={...r,...this.options,...Rt(t)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...r.interpolation,...this.options.interpolation}),t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator);const o=p=>p?typeof p=="function"?new p:p:null;if(!this.options.isClone){this.modules.logger?De.init(o(this.modules.logger),this.options):De.init(null,this.options);let p;this.modules.formatter?p=this.modules.formatter:typeof Intl<"u"&&(p=rr);const u=new Jt(this.options);this.store=new Kt(this.options.resources,this.options);const g=this.services;g.logger=De,g.resourceStore=this.store,g.languageUtils=u,g.pluralResolver=new tr(u,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),p&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(g.formatter=o(p),g.formatter.init(g,this.options),this.options.interpolation.format=g.formatter.format.bind(g.formatter)),g.interpolator=new nr(this.options),g.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},g.backendConnector=new ir(o(this.modules.backend),g.resourceStore,g,this.options),g.backendConnector.on("*",function(h){for(var b=arguments.length,C=new Array(b>1?b-1:0),S=1;S<b;S++)C[S-1]=arguments[S];e.emit(h,...C)}),this.modules.languageDetector&&(g.languageDetector=o(this.modules.languageDetector),g.languageDetector.init&&g.languageDetector.init(g,this.options.detection,this.options)),this.modules.i18nFormat&&(g.i18nFormat=o(this.modules.i18nFormat),g.i18nFormat.init&&g.i18nFormat.init(this)),this.translator=new _a(this.services,this.options),this.translator.on("*",function(h){for(var b=arguments.length,C=new Array(b>1?b-1:0),S=1;S<b;S++)C[S-1]=arguments[S];e.emit(h,...C)}),this.modules.external.forEach(h=>{h.init&&h.init(this)})}if(this.format=this.options.interpolation.format,s||(s=ka),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const p=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);p.length>0&&p[0]!=="dev"&&(this.options.lng=p[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(p=>{this[p]=function(){return e.store[p](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(p=>{this[p]=function(){return e.store[p](...arguments),e}});const c=ia(),d=()=>{const p=(u,g)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),c.resolve(g),s(u,g)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return p(null,this.t.bind(this));this.changeLanguage(this.options.lng,p)};return this.options.resources||!this.options.initImmediate?d():setTimeout(d,0),c}loadResources(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ka;const r=V(e)?e:this.language;if(typeof e=="function"&&(s=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&r.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return s();const o=[],i=l=>{if(!l||l==="cimode")return;this.services.languageUtils.toResolveHierarchy(l).forEach(d=>{d!=="cimode"&&o.indexOf(d)<0&&o.push(d)})};r?i(r):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(o,this.options.ns,l=>{!l&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),s(l)})}else s(null)}reloadResources(e,t,s){const r=ia();return typeof e=="function"&&(s=e,e=void 0),typeof t=="function"&&(s=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),s||(s=ka),this.services.backendConnector.reload(e,t,o=>{r.resolve(),s(o)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&Ht.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 s=this.languages[t];if(!(["cimode","dev"].indexOf(s)>-1)&&this.store.hasLanguageSomeTranslations(s)){this.resolvedLanguage=s;break}}}changeLanguage(e,t){var s=this;this.isLanguageChangingTo=e;const r=ia();this.emit("languageChanging",e);const o=c=>{this.language=c,this.languages=this.services.languageUtils.toResolveHierarchy(c),this.resolvedLanguage=void 0,this.setResolvedLanguage(c)},i=(c,d)=>{d?(o(d),this.translator.changeLanguage(d),this.isLanguageChangingTo=void 0,this.emit("languageChanged",d),this.logger.log("languageChanged",d)):this.isLanguageChangingTo=void 0,r.resolve(function(){return s.t(...arguments)}),t&&t(c,function(){return s.t(...arguments)})},l=c=>{!e&&!c&&this.services.languageDetector&&(c=[]);const d=V(c)?c:this.services.languageUtils.getBestMatchFromCodes(c);d&&(this.language||o(d),this.translator.language||this.translator.changeLanguage(d),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(d)),this.loadResources(d,p=>{i(p,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),r}getFixedT(e,t,s){var r=this;const o=function(i,l){let c;if(typeof l!="object"){for(var d=arguments.length,p=new Array(d>2?d-2:0),u=2;u<d;u++)p[u-2]=arguments[u];c=r.options.overloadTranslationOptionHandler([i,l].concat(p))}else c={...l};c.lng=c.lng||o.lng,c.lngs=c.lngs||o.lngs,c.ns=c.ns||o.ns,c.keyPrefix!==""&&(c.keyPrefix=c.keyPrefix||s||o.keyPrefix);const g=r.options.keySeparator||".";let h;return c.keyPrefix&&Array.isArray(i)?h=i.map(b=>`${c.keyPrefix}${g}${b}`):h=c.keyPrefix?`${c.keyPrefix}${g}${i}`:i,r.t(h,c)};return V(e)?o.lng=e:o.lngs=e,o.ns=t,o.keyPrefix=s,o}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const s=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,o=this.languages[this.languages.length-1];if(s.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(s,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(s,e)&&(!r||i(o,e)))}loadNamespaces(e,t){const s=ia();return this.options.ns?(V(e)&&(e=[e]),e.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{s.resolve(),t&&t(r)}),s):(t&&t(),Promise.resolve())}loadLanguages(e,t){const s=ia();V(e)&&(e=[e]);const r=this.options.preload||[],o=e.filter(i=>r.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return o.length?(this.options.preload=r.concat(o),this.loadResources(i=>{s.resolve(),t&&t(i)}),s):(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"],s=this.services&&this.services.languageUtils||new Jt(Xt());return t.indexOf(s.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 da(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ka;const s=e.forkResourceStore;s&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},o=new da(r);return(e.debug!==void 0||e.prefix!==void 0)&&(o.logger=o.logger.clone(e)),["store","services","language"].forEach(l=>{o[l]=this[l]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},s&&(o.store=new Kt(this.store.data,r),o.services.resourceStore=o.store),o.translator=new _a(o.services,r),o.translator.on("*",function(l){for(var c=arguments.length,d=new Array(c>1?c-1:0),p=1;p<c;p++)d[p-1]=arguments[p];o.emit(l,...d)}),o.init(r,t),o.translator.options=r,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Ce=da.createInstance();Ce.createInstance=da.createInstance;const dr=Ce.createInstance;Ce.dir,Ce.init,Ce.loadResources,Ce.reloadResources,Ce.use,Ce.changeLanguage,Ce.getFixedT,Ce.t,Ce.exists,Ce.setDefaultNamespace,Ce.hasLoadedNamespace,Ce.loadNamespaces,Ce.loadLanguages;const cr={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",planBannerInclAddons:"· incl. add-ons",planBannerRenews:"Renews {date}",planBannerManageCta:"Manage plan",checkoutTitle:"Configure your plan",checkoutBackLabel:"Back to plans",checkoutSessionError:"We couldn't start the payment session.",checkoutSessionErrorDetail:"If this persists, the workspace may not exist in this environment or may not be on billing v4.",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.",usageWidgetResets:"Resets {date}",usageWidgetViewOptions:"View plan options",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",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",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"},ur={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",planBannerInclAddons:"· add-ons inclus",planBannerRenews:"Renouvellement le {date}",planBannerManageCta:"Gérer le plan",checkoutTitle:"Configurer votre plan",checkoutBackLabel:"Retour aux plans",checkoutSessionError:"Impossible de démarrer la session de paiement.",checkoutSessionErrorDetail:"Si le problème persiste, l'espace de travail n'existe peut-être pas dans cet environnement ou n'est pas sur la facturation v4.",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.",usageWidgetResets:"Réinitialisation le {date}",usageWidgetViewOptions:"Voir les options de plan",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",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",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"},pr={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",planBannerInclAddons:"· add-ons incluidos",planBannerRenews:"Renovación el {date}",planBannerManageCta:"Gestionar plan",checkoutTitle:"Configura tu plan",checkoutBackLabel:"Volver a los planes",checkoutSessionError:"No pudimos iniciar la sesión de pago.",checkoutSessionErrorDetail:"Si el problema persiste, puede que el espacio de trabajo no exista en este entorno o que no esté en facturación v4.",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.",usageWidgetResets:"Se restablece el {date}",usageWidgetViewOptions:"Ver opciones de plan",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",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",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"},gr={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",planBannerInclAddons:"· add-ons incluídos",planBannerRenews:"Renova em {date}",planBannerManageCta:"Gerenciar plano",checkoutTitle:"Configurar seu plano",checkoutBackLabel:"Voltar aos planos",checkoutSessionError:"Não foi possível iniciar a sessão de pagamento.",checkoutSessionErrorDetail:"Se o problema persistir, o espaço de trabalho pode não existir neste ambiente ou pode não estar na cobrança v4.",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.",usageWidgetResets:"Reinicia em {date}",usageWidgetViewOptions:"Ver opções de plano",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",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",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"},na="billing",Za=dr();Za.use(Ms).init({resources:{en:{[na]:cr},fr:{[na]:ur},es:{[na]:pr},pt:{[na]:gr}},lng:"en",fallbackLng:"en",ns:[na],defaultNS:na,interpolation:{escapeValue:!1,prefix:"{",suffix:"}"}});const wa=A.createContext(null),mr={capture:()=>{}};function hr(a){const[e,t]=A.useState(()=>typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches);return A.useEffect(()=>{if(a!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),r=o=>t(o.matches);return s.addEventListener("change",r),()=>s.removeEventListener("change",r)},[a]),a==="system"?e:a==="dark"}const br=({client:a,stripePublishableKey:e,email:t,locale:s="en",theme:r="light",colorScheme:o="default",onToast:i,analytics:l,featureLabels:c,billingVersion:d,workspaceId:p,persist:u=!0,manageBillingUrl:g,onBillingChange:h,refreshInterval:b=3e4,children:C})=>{const S=p||"default",[y]=A.useState(()=>new oe.QueryClient({defaultOptions:{queries:{retry:1,staleTime:3e4,gcTime:1e3*60*60}}})),m=hr(r),D=A.useMemo(()=>xt(e),[e]);A.useEffect(()=>{if(!u||typeof window>"u")return;const f=`bpb-cache:${S}`;try{const L=window.localStorage.getItem(f);L&&oe.hydrate(y,JSON.parse(L))}catch{window.localStorage.removeItem(f)}let P=null;const x=y.getQueryCache().subscribe(L=>{L.type!=="added"&&L.type!=="removed"&&L.type!=="updated"||(P&&clearTimeout(P),P=setTimeout(()=>{try{window.localStorage.setItem(f,JSON.stringify(oe.dehydrate(y)))}catch{}},250))});return()=>{P&&clearTimeout(P),x()}},[u,S,y]);const T=A.useCallback(()=>y.invalidateQueries({queryKey:["bpb",S]}),[y,S]),k=A.useCallback(f=>h==null?void 0:h(f),[h]),_=b>0?b:!1;Za.changeLanguage(s);const w=A.useMemo(()=>({client:a,queryClient:y,scope:S,stripePromise:D,email:t,locale:s,isDark:m,colorScheme:o,toast:i??(()=>{}),analytics:l??mr,featureLabels:c,isOutdatedBilling:d!==void 0&&d!=="v4",manageBillingUrl:g,refetchInterval:_,refresh:T,notifyBillingChange:k}),[a,y,S,D,t,s,m,o,i,l,c,d,g,_,T,k]);return n.jsx(wa.Provider,{value:w,children:n.jsx(Us,{i18n:Za,children:n.jsx("div",{className:"bpb-scope","data-bpb-theme":m?"dark":"light","data-bpb-color-scheme":o,style:{display:"contents"},children:C})})})};function G(){const a=A.useContext(wa);if(!a)throw new Error("@bpinternal/billing-ui components must be rendered inside <BillingProvider>");return a}function fr(){var a;return((a=A.useContext(wa))==null?void 0:a.isDark)??!1}function yr(){var a;return((a=A.useContext(wa))==null?void 0:a.colorScheme)??"default"}const de={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"},ge={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 xe(){const{client:a,queryClient:e,scope:t}=G();return oe.useQuery({queryKey:ge.plans(t),queryFn:()=>a.listPlans({})},e)}function $e(){const{client:a,queryClient:e,scope:t}=G();return oe.useQuery({queryKey:ge.addons(t),queryFn:()=>a.listAddons({})},e)}function we(a){const{client:e,queryClient:t,scope:s,refetchInterval:r}=G();return oe.useQuery({queryKey:ge.subscription(s),queryFn:()=>e.getSubscription({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function Xa(a,e){const{client:t,queryClient:s,scope:r}=G();return oe.useQuery({queryKey:ge.preview(r,a),queryFn:()=>t.previewSubscriptionUpdate(a),enabled:(e==null?void 0:e.enabled)??!0},s)}function Ra(a){const{client:e,queryClient:t,scope:s}=G();return oe.useQuery({queryKey:ge.paymentMethod(s),queryFn:()=>e.getPaymentMethod({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function et(a){const{client:e,queryClient:t,scope:s}=G();return oe.useQuery({queryKey:ge.billingAddress(s),queryFn:()=>e.getBillingAddress({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function at(a){const{client:e,queryClient:t,scope:s}=G();return oe.useQuery({queryKey:ge.customer(s),queryFn:()=>e.getCustomer({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function en(a){const{client:e,queryClient:t,scope:s,refetchInterval:r}=G();return oe.useQuery({queryKey:ge.invoices(s),queryFn:()=>e.listInvoices({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function tt(a){const{client:e,queryClient:t,scope:s}=G();return oe.useQuery({queryKey:ge.readonly(s),queryFn:()=>e.getBillingReadonly({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Ve(a){const{client:e,queryClient:t,scope:s,refetchInterval:r}=G(),o=a!=null&&a.period?new Date(a.period):new Date,i=`${o.getUTCFullYear()}-${String(o.getUTCMonth()+1).padStart(2,"0")}`;return oe.useQuery({queryKey:ge.usages(s,i),queryFn:()=>e.getWorkspaceUsages({period:`${i}-01T00:00:00.000Z`}).then(l=>l.quotas),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function an(a,e){const{client:t,queryClient:s,scope:r,refetchInterval:o}=G(),i=t.breakDownWorkspaceUsageByBot,l=t.listBots,c=typeof i=="function"&&typeof l=="function",d=e!=null&&e.period?new Date(e.period):new Date,p=`${d.getUTCFullYear()}-${String(d.getUTCMonth()+1).padStart(2,"0")}`;return oe.useQuery({queryKey:ge.usageByBot(r,a,p),queryFn:async()=>{const[u,g]=await Promise.all([i({id:r,type:a,period:`${p}-01T00:00:00.000Z`}),l({})]),h=new Map(g.bots.map(b=>[b.id,b.name]));return u.data.map(b=>({botId:b.botId,name:h.get(b.botId)??b.botId,value:b.value})).sort((b,C)=>C.value-b.value)},enabled:c&&((e==null?void 0:e.enabled)??!0),refetchInterval:o},s)}function tn(){const{client:a}=G();return typeof a.breakDownWorkspaceUsageByBot=="function"&&typeof a.listBots=="function"}function nt(){const{client:a,queryClient:e}=G();return oe.useMutation({mutationFn:()=>a.createPaymentMethodIntent({})},e)}function st(){const{client:a,queryClient:e,scope:t,notifyBillingChange:s}=G();return oe.useMutation({mutationFn:r=>a.setPaymentMethod(r),onSuccess:async()=>{await e.invalidateQueries({queryKey:ge.paymentMethod(t)}),s({type:"payment-method"})}},e)}function rt(){const{client:a,queryClient:e,scope:t,notifyBillingChange:s}=G();return oe.useMutation({mutationFn:async r=>{await a.setBillingAddress(r)},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:ge.billingAddress(t)}),e.invalidateQueries({queryKey:ge.customer(t)})]),s({type:"billing-address"})}},e)}function ot(){const{client:a,queryClient:e,scope:t}=G();return oe.useMutation({mutationFn:s=>a.setCustomer(s),onSuccess:()=>e.invalidateQueries({queryKey:ge.customer(t)})},e)}function nn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:s}=G();return oe.useMutation({mutationFn:async r=>{await a.setAddons(r)},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:ge.subscription(t)}),e.invalidateQueries({queryKey:ge.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),s({type:"addons"})}},e)}function it(){const{client:a,queryClient:e,scope:t,notifyBillingChange:s}=G();return oe.useMutation({mutationFn:async r=>{await a.setPlan({planId:r.planId,interval:r.interval,couponCode:r.couponCode}),r.addons&&Object.keys(r.addons).length>0&&await a.setAddons({addons:r.addons,couponCode:r.couponCode})},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:ge.subscription(t)}),e.invalidateQueries({queryKey:ge.plans(t)}),e.invalidateQueries({queryKey:ge.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),s({type:"subscription"})}},e)}function sn(a){var e,t,s="";if(typeof a=="string"||typeof a=="number")s+=a;else if(typeof a=="object")if(Array.isArray(a)){var r=a.length;for(e=0;e<r;e++)a[e]&&(t=sn(a[e]))&&(s&&(s+=" "),s+=t)}else for(t in a)a[t]&&(s&&(s+=" "),s+=t);return s}function vr(){for(var a,e,t=0,s="",r=arguments.length;t<r;t++)(a=arguments[t])&&(e=sn(a))&&(s&&(s+=" "),s+=e);return s}const Cr=(a,e)=>{const t=new Array(a.length+e.length);for(let s=0;s<a.length;s++)t[s]=a[s];for(let s=0;s<e.length;s++)t[a.length+s]=e[s];return t},Sr=(a,e)=>({classGroupId:a,validator:e}),rn=(a=new Map,e=null,t)=>({nextPart:a,validators:e,classGroupId:t}),Aa="-",on=[],Nr="arbitrary..",_r=a=>{const e=wr(a),{conflictingClassGroups:t,conflictingClassGroupModifiers:s}=a;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return kr(i);const l=i.split(Aa),c=l[0]===""&&l.length>1?1:0;return ln(l,c,e)},getConflictingClassGroupIds:(i,l)=>{if(l){const c=s[i],d=t[i];return c?d?Cr(d,c):c:d||on}return t[i]||on}}},ln=(a,e,t)=>{if(a.length-e===0)return t.classGroupId;const r=a[e],o=t.nextPart.get(r);if(o){const d=ln(a,e+1,o);if(d)return d}const i=t.validators;if(i===null)return;const l=e===0?a.join(Aa):a.slice(e).join(Aa),c=i.length;for(let d=0;d<c;d++){const p=i[d];if(p.validator(l))return p.classGroupId}},kr=a=>a.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=a.slice(1,-1),t=e.indexOf(":"),s=e.slice(0,t);return s?Nr+s:void 0})(),wr=a=>{const{theme:e,classGroups:t}=a;return Ar(t,e)},Ar=(a,e)=>{const t=rn();for(const s in a){const r=a[s];lt(r,t,s,e)}return t},lt=(a,e,t,s)=>{const r=a.length;for(let o=0;o<r;o++){const i=a[o];Tr(i,e,t,s)}},Tr=(a,e,t,s)=>{if(typeof a=="string"){Dr(a,e,t);return}if(typeof a=="function"){xr(a,e,t,s);return}Pr(a,e,t,s)},Dr=(a,e,t)=>{const s=a===""?e:dn(e,a);s.classGroupId=t},xr=(a,e,t,s)=>{if(Fr(a)){lt(a(s),e,t,s);return}e.validators===null&&(e.validators=[]),e.validators.push(Sr(t,a))},Pr=(a,e,t,s)=>{const r=Object.entries(a),o=r.length;for(let i=0;i<o;i++){const[l,c]=r[i];lt(c,dn(e,l),t,s)}},dn=(a,e)=>{let t=a;const s=e.split(Aa),r=s.length;for(let o=0;o<r;o++){const i=s[o];let l=t.nextPart.get(i);l||(l=rn(),t.nextPart.set(i,l)),t=l}return t},Fr=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,Er=a=>{if(a<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),s=Object.create(null);const r=(o,i)=>{t[o]=i,e++,e>a&&(e=0,s=t,t=Object.create(null))};return{get(o){let i=t[o];if(i!==void 0)return i;if((i=s[o])!==void 0)return r(o,i),i},set(o,i){o in t?t[o]=i:r(o,i)}}},dt="!",cn=":",Ir=[],un=(a,e,t,s,r)=>({modifiers:a,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:s,isExternal:r}),Lr=a=>{const{prefix:e,experimentalParseClassName:t}=a;let s=r=>{const o=[];let i=0,l=0,c=0,d;const p=r.length;for(let C=0;C<p;C++){const S=r[C];if(i===0&&l===0){if(S===cn){o.push(r.slice(c,C)),c=C+1;continue}if(S==="/"){d=C;continue}}S==="["?i++:S==="]"?i--:S==="("?l++:S===")"&&l--}const u=o.length===0?r:r.slice(c);let g=u,h=!1;u.endsWith(dt)?(g=u.slice(0,-1),h=!0):u.startsWith(dt)&&(g=u.slice(1),h=!0);const b=d&&d>c?d-c:void 0;return un(o,h,g,b)};if(e){const r=e+cn,o=s;s=i=>i.startsWith(r)?o(i.slice(r.length)):un(Ir,!1,i,void 0,!0)}if(t){const r=s;s=o=>t({className:o,parseClassName:r})}return s},Mr=a=>{const e=new Map;return a.orderSensitiveModifiers.forEach((t,s)=>{e.set(t,1e6+s)}),t=>{const s=[];let r=[];for(let o=0;o<t.length;o++){const i=t[o],l=i[0]==="[",c=e.has(i);l||c?(r.length>0&&(r.sort(),s.push(...r),r=[]),s.push(i)):r.push(i)}return r.length>0&&(r.sort(),s.push(...r)),s}},Br=a=>({cache:Er(a.cacheSize),parseClassName:Lr(a),sortModifiers:Mr(a),postfixLookupClassGroupIds:Or(a),..._r(a)}),Or=a=>{const e=Object.create(null),t=a.postfixLookupClassGroups;if(t)for(let s=0;s<t.length;s++)e[t[s]]=!0;return e},zr=/\s+/,Ur=(a,e)=>{const{parseClassName:t,getClassGroupId:s,getConflictingClassGroupIds:r,sortModifiers:o,postfixLookupClassGroupIds:i}=e,l=[],c=a.trim().split(zr);let d="";for(let p=c.length-1;p>=0;p-=1){const u=c[p],{isExternal:g,modifiers:h,hasImportantModifier:b,baseClassName:C,maybePostfixModifierPosition:S}=t(u);if(g){d=u+(d.length>0?" "+d:d);continue}let y=!!S,m;if(y){const w=C.substring(0,S);m=s(w);const f=m&&i[m]?s(C):void 0;f&&f!==m&&(m=f,y=!1)}else m=s(C);if(!m){if(!y){d=u+(d.length>0?" "+d:d);continue}if(m=s(C),!m){d=u+(d.length>0?" "+d:d);continue}y=!1}const D=h.length===0?"":h.length===1?h[0]:o(h).join(":"),T=b?D+dt:D,k=T+m;if(l.indexOf(k)>-1)continue;l.push(k);const _=r(m,y);for(let w=0;w<_.length;++w){const f=_[w];l.push(T+f)}d=u+(d.length>0?" "+d:d)}return d},qr=(...a)=>{let e=0,t,s,r="";for(;e<a.length;)(t=a[e++])&&(s=pn(t))&&(r&&(r+=" "),r+=s);return r},pn=a=>{if(typeof a=="string")return a;let e,t="";for(let s=0;s<a.length;s++)a[s]&&(e=pn(a[s]))&&(t&&(t+=" "),t+=e);return t},$r=(a,...e)=>{let t,s,r,o;const i=c=>{const d=e.reduce((p,u)=>u(p),a());return t=Br(d),s=t.cache.get,r=t.cache.set,o=l,l(c)},l=c=>{const d=s(c);if(d)return d;const p=Ur(c,t);return r(c,p),p};return o=i,(...c)=>o(qr(...c))},Vr=[],be=a=>{const e=t=>t[a]||Vr;return e.isThemeGetter=!0,e},gn=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,mn=/^\((?:(\w[\w-]*):)?(.+)\)$/i,jr=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Wr=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Gr=/\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$/,Kr=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Hr=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Yr=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ze=a=>jr.test(a),K=a=>!!a&&!Number.isNaN(Number(a)),Pe=a=>!!a&&Number.isInteger(Number(a)),ct=a=>a.endsWith("%")&&K(a.slice(0,-1)),Fe=a=>Wr.test(a),hn=()=>!0,Jr=a=>Gr.test(a)&&!Kr.test(a),ut=()=>!1,Qr=a=>Hr.test(a),Zr=a=>Yr.test(a),Xr=a=>!E(a)&&!I(a),Rr=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)),eo=a=>Ue(a,Sn,ut),E=a=>gn.test(a),je=a=>Ue(a,Nn,Jr),bn=a=>Ue(a,lo,K),ao=a=>Ue(a,kn,hn),to=a=>Ue(a,_n,ut),fn=a=>Ue(a,vn,ut),no=a=>Ue(a,Cn,Zr),Ta=a=>Ue(a,wn,Qr),I=a=>mn.test(a),ca=a=>We(a,Nn),so=a=>We(a,_n),yn=a=>We(a,vn),ro=a=>We(a,Sn),oo=a=>We(a,Cn),Da=a=>We(a,wn,!0),io=a=>We(a,kn,!0),Ue=(a,e,t)=>{const s=gn.exec(a);return s?s[1]?e(s[1]):t(s[2]):!1},We=(a,e,t=!1)=>{const s=mn.exec(a);return s?s[1]?e(s[1]):t:!1},vn=a=>a==="position"||a==="percentage",Cn=a=>a==="image"||a==="url",Sn=a=>a==="length"||a==="size"||a==="bg-size",Nn=a=>a==="length",lo=a=>a==="number",_n=a=>a==="family-name",kn=a=>a==="number"||a==="weight",wn=a=>a==="shadow",co=$r(()=>{const a=be("color"),e=be("font"),t=be("text"),s=be("font-weight"),r=be("tracking"),o=be("leading"),i=be("breakpoint"),l=be("container"),c=be("spacing"),d=be("radius"),p=be("shadow"),u=be("inset-shadow"),g=be("text-shadow"),h=be("drop-shadow"),b=be("blur"),C=be("perspective"),S=be("aspect"),y=be("ease"),m=be("animate"),D=()=>["auto","avoid","all","avoid-page","page","left","right","column"],T=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],k=()=>[...T(),I,E],_=()=>["auto","hidden","clip","visible","scroll"],w=()=>["auto","contain","none"],f=()=>[I,E,c],P=()=>[ze,"full","auto",...f()],x=()=>[Pe,"none","subgrid",I,E],L=()=>["auto",{span:["full",Pe,I,E]},Pe,I,E],B=()=>[Pe,"auto",I,E],M=()=>["auto","min","max","fr",I,E],Q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],O=()=>["start","end","center","stretch","center-safe","end-safe"],z=()=>["auto",...f()],Z=()=>[ze,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...f()],q=()=>[ze,"screen","full","dvw","lvw","svw","min","max","fit",...f()],J=()=>[ze,"screen","full","lh","dvh","lvh","svh","min","max","fit",...f()],N=()=>[a,I,E],se=()=>[...T(),yn,fn,{position:[I,E]}],F=()=>["no-repeat",{repeat:["","x","y","space","round"]}],j=()=>["auto","cover","contain",ro,eo,{size:[I,E]}],H=()=>[ct,ca,je],$=()=>["","none","full",d,I,E],W=()=>["",K,ca,je],ue=()=>["solid","dashed","dotted","double"],le=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],X=()=>[K,ct,yn,fn],fe=()=>["","none",b,I,E],ye=()=>["none",K,I,E],ve=()=>["none",K,I,E],Le=()=>[K,I,E],Ae=()=>[ze,"full",...f()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Fe],breakpoint:[Fe],color:[hn],container:[Fe],"drop-shadow":[Fe],ease:["in","out","in-out"],font:[Xr],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Fe],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Fe],shadow:[Fe],spacing:["px",K],text:[Fe],"text-shadow":[Fe],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ze,E,I,S]}],container:["container"],"container-type":[{"@container":["","normal","size",I,E]}],"container-named":[Rr],columns:[{columns:[K,E,I,l]}],"break-after":[{"break-after":D()}],"break-before":[{"break-before":D()}],"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:k()}],overflow:[{overflow:_()}],"overflow-x":[{"overflow-x":_()}],"overflow-y":[{"overflow-y":_()}],overscroll:[{overscroll:w()}],"overscroll-x":[{"overscroll-x":w()}],"overscroll-y":[{"overscroll-y":w()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:P()}],"inset-x":[{"inset-x":P()}],"inset-y":[{"inset-y":P()}],start:[{"inset-s":P(),start:P()}],end:[{"inset-e":P(),end:P()}],"inset-bs":[{"inset-bs":P()}],"inset-be":[{"inset-be":P()}],top:[{top:P()}],right:[{right:P()}],bottom:[{bottom:P()}],left:[{left:P()}],visibility:["visible","invisible","collapse"],z:[{z:[Pe,"auto",I,E]}],basis:[{basis:[ze,"full","auto",l,...f()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[K,ze,"auto","initial","none",E]}],grow:[{grow:["",K,I,E]}],shrink:[{shrink:["",K,I,E]}],order:[{order:[Pe,"first","last","none",I,E]}],"grid-cols":[{"grid-cols":x()}],"col-start-end":[{col:L()}],"col-start":[{"col-start":B()}],"col-end":[{"col-end":B()}],"grid-rows":[{"grid-rows":x()}],"row-start-end":[{row:L()}],"row-start":[{"row-start":B()}],"row-end":[{"row-end":B()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":M()}],"auto-rows":[{"auto-rows":M()}],gap:[{gap:f()}],"gap-x":[{"gap-x":f()}],"gap-y":[{"gap-y":f()}],"justify-content":[{justify:[...Q(),"normal"]}],"justify-items":[{"justify-items":[...O(),"normal"]}],"justify-self":[{"justify-self":["auto",...O()]}],"align-content":[{content:["normal",...Q()]}],"align-items":[{items:[...O(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...O(),{baseline:["","last"]}]}],"place-content":[{"place-content":Q()}],"place-items":[{"place-items":[...O(),"baseline"]}],"place-self":[{"place-self":["auto",...O()]}],p:[{p:f()}],px:[{px:f()}],py:[{py:f()}],ps:[{ps:f()}],pe:[{pe:f()}],pbs:[{pbs:f()}],pbe:[{pbe:f()}],pt:[{pt:f()}],pr:[{pr:f()}],pb:[{pb:f()}],pl:[{pl:f()}],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":f()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":f()}],"space-y-reverse":["space-y-reverse"],size:[{size:Z()}],"inline-size":[{inline:["auto",...q()]}],"min-inline-size":[{"min-inline":["auto",...q()]}],"max-inline-size":[{"max-inline":["none",...q()]}],"block-size":[{block:["auto",...J()]}],"min-block-size":[{"min-block":["auto",...J()]}],"max-block-size":[{"max-block":["none",...J()]}],w:[{w:[l,"screen",...Z()]}],"min-w":[{"min-w":[l,"screen","none",...Z()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[i]},...Z()]}],h:[{h:["screen","lh",...Z()]}],"min-h":[{"min-h":["screen","lh","none",...Z()]}],"max-h":[{"max-h":["screen","lh",...Z()]}],"font-size":[{text:["base",t,ca,je]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[s,io,ao]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ct,E]}],"font-family":[{font:[so,to,e]}],"font-features":[{"font-features":[E]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,I,E]}],"line-clamp":[{"line-clamp":[K,"none",I,bn]}],leading:[{leading:[o,...f()]}],"list-image":[{"list-image":["none",I,E]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",I,E]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:N()}],"text-color":[{text:N()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ue(),"wavy"]}],"text-decoration-thickness":[{decoration:[K,"from-font","auto",I,je]}],"text-decoration-color":[{decoration:N()}],"underline-offset":[{"underline-offset":[K,"auto",I,E]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:f()}],"tab-size":[{tab:[Pe,I,E]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",I,E]}],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",I,E]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:se()}],"bg-repeat":[{bg:F()}],"bg-size":[{bg:j()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Pe,I,E],radial:["",I,E],conic:[Pe,I,E]},oo,no]}],"bg-color":[{bg:N()}],"gradient-from-pos":[{from:H()}],"gradient-via-pos":[{via:H()}],"gradient-to-pos":[{to:H()}],"gradient-from":[{from:N()}],"gradient-via":[{via:N()}],"gradient-to":[{to:N()}],rounded:[{rounded:$()}],"rounded-s":[{"rounded-s":$()}],"rounded-e":[{"rounded-e":$()}],"rounded-t":[{"rounded-t":$()}],"rounded-r":[{"rounded-r":$()}],"rounded-b":[{"rounded-b":$()}],"rounded-l":[{"rounded-l":$()}],"rounded-ss":[{"rounded-ss":$()}],"rounded-se":[{"rounded-se":$()}],"rounded-ee":[{"rounded-ee":$()}],"rounded-es":[{"rounded-es":$()}],"rounded-tl":[{"rounded-tl":$()}],"rounded-tr":[{"rounded-tr":$()}],"rounded-br":[{"rounded-br":$()}],"rounded-bl":[{"rounded-bl":$()}],"border-w":[{border:W()}],"border-w-x":[{"border-x":W()}],"border-w-y":[{"border-y":W()}],"border-w-s":[{"border-s":W()}],"border-w-e":[{"border-e":W()}],"border-w-bs":[{"border-bs":W()}],"border-w-be":[{"border-be":W()}],"border-w-t":[{"border-t":W()}],"border-w-r":[{"border-r":W()}],"border-w-b":[{"border-b":W()}],"border-w-l":[{"border-l":W()}],"divide-x":[{"divide-x":W()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":W()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ue(),"hidden","none"]}],"divide-style":[{divide:[...ue(),"hidden","none"]}],"border-color":[{border:N()}],"border-color-x":[{"border-x":N()}],"border-color-y":[{"border-y":N()}],"border-color-s":[{"border-s":N()}],"border-color-e":[{"border-e":N()}],"border-color-bs":[{"border-bs":N()}],"border-color-be":[{"border-be":N()}],"border-color-t":[{"border-t":N()}],"border-color-r":[{"border-r":N()}],"border-color-b":[{"border-b":N()}],"border-color-l":[{"border-l":N()}],"divide-color":[{divide:N()}],"outline-style":[{outline:[...ue(),"none","hidden"]}],"outline-offset":[{"outline-offset":[K,I,E]}],"outline-w":[{outline:["",K,ca,je]}],"outline-color":[{outline:N()}],shadow:[{shadow:["","none",p,Da,Ta]}],"shadow-color":[{shadow:N()}],"inset-shadow":[{"inset-shadow":["none",u,Da,Ta]}],"inset-shadow-color":[{"inset-shadow":N()}],"ring-w":[{ring:W()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:N()}],"ring-offset-w":[{"ring-offset":[K,je]}],"ring-offset-color":[{"ring-offset":N()}],"inset-ring-w":[{"inset-ring":W()}],"inset-ring-color":[{"inset-ring":N()}],"text-shadow":[{"text-shadow":["none",g,Da,Ta]}],"text-shadow-color":[{"text-shadow":N()}],opacity:[{opacity:[K,I,E]}],"mix-blend":[{"mix-blend":[...le(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":le()}],"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":[K]}],"mask-image-linear-from-pos":[{"mask-linear-from":X()}],"mask-image-linear-to-pos":[{"mask-linear-to":X()}],"mask-image-linear-from-color":[{"mask-linear-from":N()}],"mask-image-linear-to-color":[{"mask-linear-to":N()}],"mask-image-t-from-pos":[{"mask-t-from":X()}],"mask-image-t-to-pos":[{"mask-t-to":X()}],"mask-image-t-from-color":[{"mask-t-from":N()}],"mask-image-t-to-color":[{"mask-t-to":N()}],"mask-image-r-from-pos":[{"mask-r-from":X()}],"mask-image-r-to-pos":[{"mask-r-to":X()}],"mask-image-r-from-color":[{"mask-r-from":N()}],"mask-image-r-to-color":[{"mask-r-to":N()}],"mask-image-b-from-pos":[{"mask-b-from":X()}],"mask-image-b-to-pos":[{"mask-b-to":X()}],"mask-image-b-from-color":[{"mask-b-from":N()}],"mask-image-b-to-color":[{"mask-b-to":N()}],"mask-image-l-from-pos":[{"mask-l-from":X()}],"mask-image-l-to-pos":[{"mask-l-to":X()}],"mask-image-l-from-color":[{"mask-l-from":N()}],"mask-image-l-to-color":[{"mask-l-to":N()}],"mask-image-x-from-pos":[{"mask-x-from":X()}],"mask-image-x-to-pos":[{"mask-x-to":X()}],"mask-image-x-from-color":[{"mask-x-from":N()}],"mask-image-x-to-color":[{"mask-x-to":N()}],"mask-image-y-from-pos":[{"mask-y-from":X()}],"mask-image-y-to-pos":[{"mask-y-to":X()}],"mask-image-y-from-color":[{"mask-y-from":N()}],"mask-image-y-to-color":[{"mask-y-to":N()}],"mask-image-radial":[{"mask-radial":[I,E]}],"mask-image-radial-from-pos":[{"mask-radial-from":X()}],"mask-image-radial-to-pos":[{"mask-radial-to":X()}],"mask-image-radial-from-color":[{"mask-radial-from":N()}],"mask-image-radial-to-color":[{"mask-radial-to":N()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":T()}],"mask-image-conic-pos":[{"mask-conic":[K]}],"mask-image-conic-from-pos":[{"mask-conic-from":X()}],"mask-image-conic-to-pos":[{"mask-conic-to":X()}],"mask-image-conic-from-color":[{"mask-conic-from":N()}],"mask-image-conic-to-color":[{"mask-conic-to":N()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:se()}],"mask-repeat":[{mask:F()}],"mask-size":[{mask:j()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",I,E]}],filter:[{filter:["","none",I,E]}],blur:[{blur:fe()}],brightness:[{brightness:[K,I,E]}],contrast:[{contrast:[K,I,E]}],"drop-shadow":[{"drop-shadow":["","none",h,Da,Ta]}],"drop-shadow-color":[{"drop-shadow":N()}],grayscale:[{grayscale:["",K,I,E]}],"hue-rotate":[{"hue-rotate":[K,I,E]}],invert:[{invert:["",K,I,E]}],saturate:[{saturate:[K,I,E]}],sepia:[{sepia:["",K,I,E]}],"backdrop-filter":[{"backdrop-filter":["","none",I,E]}],"backdrop-blur":[{"backdrop-blur":fe()}],"backdrop-brightness":[{"backdrop-brightness":[K,I,E]}],"backdrop-contrast":[{"backdrop-contrast":[K,I,E]}],"backdrop-grayscale":[{"backdrop-grayscale":["",K,I,E]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[K,I,E]}],"backdrop-invert":[{"backdrop-invert":["",K,I,E]}],"backdrop-opacity":[{"backdrop-opacity":[K,I,E]}],"backdrop-saturate":[{"backdrop-saturate":[K,I,E]}],"backdrop-sepia":[{"backdrop-sepia":["",K,I,E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":f()}],"border-spacing-x":[{"border-spacing-x":f()}],"border-spacing-y":[{"border-spacing-y":f()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",I,E]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[K,"initial",I,E]}],ease:[{ease:["linear","initial",y,I,E]}],delay:[{delay:[K,I,E]}],animate:[{animate:["none",m,I,E]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[C,I,E]}],"perspective-origin":[{"perspective-origin":k()}],rotate:[{rotate:ye()}],"rotate-x":[{"rotate-x":ye()}],"rotate-y":[{"rotate-y":ye()}],"rotate-z":[{"rotate-z":ye()}],scale:[{scale:ve()}],"scale-x":[{"scale-x":ve()}],"scale-y":[{"scale-y":ve()}],"scale-z":[{"scale-z":ve()}],"scale-3d":["scale-3d"],skew:[{skew:Le()}],"skew-x":[{"skew-x":Le()}],"skew-y":[{"skew-y":Le()}],transform:[{transform:[I,E,"","none","gpu","cpu"]}],"transform-origin":[{origin:k()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ae()}],"translate-x":[{"translate-x":Ae()}],"translate-y":[{"translate-y":Ae()}],"translate-z":[{"translate-z":Ae()}],"translate-none":["translate-none"],zoom:[{zoom:[Pe,I,E]}],accent:[{accent:N()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:N()}],"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",I,E]}],"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":N()}],"scrollbar-track-color":[{"scrollbar-track":N()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":f()}],"scroll-mx":[{"scroll-mx":f()}],"scroll-my":[{"scroll-my":f()}],"scroll-ms":[{"scroll-ms":f()}],"scroll-me":[{"scroll-me":f()}],"scroll-mbs":[{"scroll-mbs":f()}],"scroll-mbe":[{"scroll-mbe":f()}],"scroll-mt":[{"scroll-mt":f()}],"scroll-mr":[{"scroll-mr":f()}],"scroll-mb":[{"scroll-mb":f()}],"scroll-ml":[{"scroll-ml":f()}],"scroll-p":[{"scroll-p":f()}],"scroll-px":[{"scroll-px":f()}],"scroll-py":[{"scroll-py":f()}],"scroll-ps":[{"scroll-ps":f()}],"scroll-pe":[{"scroll-pe":f()}],"scroll-pbs":[{"scroll-pbs":f()}],"scroll-pbe":[{"scroll-pbe":f()}],"scroll-pt":[{"scroll-pt":f()}],"scroll-pr":[{"scroll-pr":f()}],"scroll-pb":[{"scroll-pb":f()}],"scroll-pl":[{"scroll-pl":f()}],"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",I,E]}],fill:[{fill:["none",...N()]}],"stroke-w":[{stroke:[K,ca,je,bn]}],stroke:[{stroke:["none",...N()]}],"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 U(...a){return co(vr(a))}function ee(a,e="usd",t=2,s="en-US"){return new Intl.NumberFormat(s,{style:"currency",currency:e.toUpperCase(),minimumFractionDigits:t,maximumFractionDigits:t}).format(a)}function Ee(a,e="en-US"){return new Date(a).toLocaleDateString(e,{month:"short",day:"numeric",year:"numeric"})}function An(a,e){const t=new Date(a);return t.setDate(t.getDate()+e),t.toISOString()}function ne(a,e="en-US"){return new Intl.NumberFormat(e).format(a)}function Ge(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 re(a){return a.replace("Plan - ","")}function ua(a){return{usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",jpy:"¥"}[a.toLowerCase()]??`${a.toUpperCase()} `}const Ke=["community","plus","team","enterprise","managed"],uo=["community","plus","team","enterprise","managed"];function ce(a){var s;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=(s=a.metadata)==null?void 0:s.legacyName;return uo.find(r=>r===t)??"community"}const pt="https://botpress.com/contact-us/managed-plan",qe={conversation_sessions_addon:"addonNameConversationSessions",storage_addon:"addonNameStorage"},Tn={conversation_sessions_addon:"addonDescriptionConversationSessions",storage_addon:"addonDescriptionStorage"};function xa(a,e,t){return a.prices[e.id]??a.prices[ce(e)]??a.prices[t]??null}function pa(a){return a.replace("Add-on - ","")}function Dn(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 xn=[{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 Pn(a,e,t){var r;if(!e)return[];const s=[];for(const o of xn){const i=a.features[o.key]??0;let l=0;for(const c of e){const d=((r=c.increments)==null?void 0:r[o.key])??0,p=t[c.id]??0;l+=d*p}l>0&&s.push({...o,now:i,next:i+l})}return s}function Fn(a,e,t){var r;if(!a)return[];const s=[];for(const o of xn){const i=a.features[o.key]??0;let l=0;for(const c of e??[])l+=(((r=c.increments)==null?void 0:r[o.key])??0)*(t[c.id]??0);(i>0||l>0)&&s.push({...o,base:i,added:l,total:i+l})}return s}function Pa(a,e,t){var i;const s=Dn(a);if(!s)return null;const r=((i=s.increments)==null?void 0:i.conversation_sessions)??0,o=xa(s,e,t);return r<=0||!o||o.amount<=0?null:{packSize:r,amount:o.amount,currency:o.currency}}const gt={"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"}},po={community:"planDescriptionCommunity",plus:"planDescriptionPlus",team:"planDescriptionTeam",enterprise:"planDescriptionEnterprise",managed:"planDescriptionManaged"},Fa={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:[]},Ea=({variant:a="accent",children:e,className:t})=>n.jsx("span",{className:U("bpb-badge",`bpb-badge--${a}`,t),children:e}),he=({variant:a="primary",size:e="md",block:t=!1,loading:s=!1,className:r,disabled:o,children:i,type:l="button",...c})=>n.jsxs("button",{type:l,className:U("bpb-btn",`bpb-btn--${a}`,`bpb-btn--${e}`,t&&"bpb-btn--block",r),disabled:o||s,"data-loading":s||void 0,...c,children:[s&&n.jsx("span",{className:"bpb-btn__spinner","aria-hidden":!0}),n.jsx("span",{className:"bpb-btn__label",children:i})]}),te=(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}),En=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M3 8.5l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),mt=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.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"}),n.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"})]}),In=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.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"})}),ht=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.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"}),n.jsx("path",{d:"M5.8 8l1.6 1.6 2.8-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Ln=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.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"})}),Ia=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("path",{d:"M8 2l6 3-6 3-6-3 6-3z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),n.jsx("path",{d:"M2 8l6 3 6-3M2 11l6 3 6-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),Mn=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.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"})}),La=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M8.5 1.5L3 9h4l-.5 5.5L12 7H8l.5-5.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),Bn=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("circle",{cx:"6",cy:"5.5",r:"2.2",stroke:"currentColor",strokeWidth:"1.3"}),n.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"}),n.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"})]}),On=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("path",{d:"M2.5 2.5v11h11",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),n.jsx("path",{d:"M5 10l2.2-2.4 2 1.6L12.5 5.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),zn=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),n.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"})]}),Un=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("path",{d:"M2.5 11.5L9 5l2 2-6.5 6.5H2.5v-2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),n.jsx("path",{d:"M9 5l1.8-1.8a1.4 1.4 0 012 2L11 7",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),bt=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("rect",{x:"1.8",y:"3.5",width:"12.4",height:"9",rx:"1.6",stroke:"currentColor",strokeWidth:"1.3"}),n.jsx("path",{d:"M1.8 6.4h12.4",stroke:"currentColor",strokeWidth:"1.3"})]}),go=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M2 6l6-3.5L14 6v1H2V6zM3 7v5M6.3 7v5M9.7 7v5M13 7v5M2 12.5h12",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),mo=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("rect",{x:"3.5",y:"7",width:"9",height:"6.5",rx:"1.4",stroke:"currentColor",strokeWidth:"1.3"}),n.jsx("path",{d:"M5.5 7V5.5a2.5 2.5 0 015 0V7",stroke:"currentColor",strokeWidth:"1.3"})]}),Ma=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Ba=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M4 6.5L8 10.5l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),ft=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M10 3.5L5.5 8l4.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),He=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M6 3.5L10.5 8L6 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),qn=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),$n=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Vn=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.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"}),n.jsx("path",{d:"M8 6.3v3.1",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),n.jsx("circle",{cx:"8",cy:"11.6",r:"0.85",fill:"currentColor"})]}),ga=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.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"})}),ho=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),n.jsx("path",{d:"M8 10.5V5.5M5.5 8l2.5-2.5L10.5 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Oa=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),yt=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M8 2.5v7M5 7l3 3 3-3M3 12.5h10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),bo=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.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"}),n.jsx("path",{d:"M6.2 5.5h3.6M6.2 8h3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),jn=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),n.jsx("path",{d:"M2.5 6.5h11M5.5 2v2.5M10.5 2v2.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),vt=({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 n.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 za(a){const e=a.toLowerCase();return/seat|member|user|team|rbac|rout/.test(e)?Bn:/analytic|report|insight|dashboard/.test(e)?On:/whatsapp|channel|chat|message|conversation|webchat|voice/.test(e)?In:/storage|table|vector|file|gb|rows|db/.test(e)?Ia:/domain|help center|whitelabel|website|url|web/.test(e)?zn:/brand|theme|custom|white-?label/.test(e)?Un:/unlimited|infinit/.test(e)?Mn:/security|sla|compliance|soc|audit/.test(e)||/support|sla|dedicated|priority/.test(e)?ht:/integration|api|plugin|sdk|adk|studio/.test(e)?Ln:/ai|agent|model|gpt|llm/.test(e)?La:mt}const ke=({open:a,onOpenChange:e,size:t="md",children:s,className:r,showClose:o=!0,...i})=>{const l=A.useRef(null),c=fr(),d=yr(),p=A.useCallback(()=>e(!1),[e]);return A.useEffect(()=>{var h;if(!a)return;const u=b=>{b.key==="Escape"&&p()};document.addEventListener("keydown",u);const g=document.body.style.overflow;return document.body.style.overflow="hidden",(h=l.current)==null||h.focus(),()=>{document.removeEventListener("keydown",u),document.body.style.overflow=g}},[a,p]),a?hs.createPortal(n.jsx("div",{className:"bpb-portal bpb-dialog__overlay","data-bpb-theme":c?"dark":"light","data-bpb-color-scheme":d,onClick:p,children:n.jsxs("div",{ref:l,role:"dialog","aria-modal":"true","aria-label":i["aria-label"],tabIndex:-1,className:U("bpb-dialog",`bpb-dialog--${t}`,r),onClick:u=>u.stopPropagation(),children:[o&&n.jsx("button",{type:"button",className:"bpb-dialog__close","aria-label":"Close",onClick:p,children:n.jsx(Ma,{size:18})}),s]})}),document.body):null},ma=({label:a,children:e})=>n.jsxs("span",{className:"bpb-tooltip",tabIndex:0,role:"note",children:[n.jsx("span",{className:"bpb-tooltip__term",children:a}),n.jsx("span",{className:"bpb-tooltip__bubble",role:"tooltip",children:e})]}),Ye=()=>{const{manageBillingUrl:a}=G(),{t:e}=ie();return n.jsxs("div",{className:"bpb-outdated",children:[n.jsx("h3",{className:"bpb-outdated__title",children:e("outdatedTitle")}),n.jsx("p",{className:"bpb-outdated__text",children:e("outdatedText")}),a&&n.jsxs(he,{variant:"primary",onClick:()=>window.open(a,"_blank","noopener"),children:[e("outdatedCta"),n.jsx(ga,{size:15})]})]})},Wn=({options:a,value:e,onChange:t,className:s,...r})=>n.jsx("div",{role:"radiogroup","aria-label":r["aria-label"],className:U("bpb-segmented",s),children:a.map(o=>{const i=o.value===e;return n.jsxs("button",{type:"button",role:"radio","aria-checked":i,className:U("bpb-segmented__option",i&&"bpb-segmented__option--selected"),onClick:()=>t(o.value),children:[o.label,o.badge&&n.jsx("span",{className:"bpb-segmented__badge",children:o.badge})]},o.value)})}),Y=({width:a,height:e=14,rounded:t=!1,className:s})=>n.jsx("span",{"aria-hidden":!0,className:U("bpb-skeleton",t&&"bpb-skeleton--rounded",s),style:{width:a??"100%",height:e}});function fo(a,e){const t=a.prices[e];return t||((e==="month"?a.prices.year:a.prices.month)??null)}function yo(a,e){var r,o;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const s=((o=a.prices.year)==null?void 0:o.amount)??(t===void 0?void 0:t*12);return s===void 0?null:s/12}function vo(a){var t,s;let e=0;for(const r of a){const o=(t=r.prices.month)==null?void 0:t.amount,i=(s=r.prices.year)==null?void 0:s.amount;o&&i&&o>0&&(e=Math.max(e,1-i/(o*12)))}return Math.round(e*100)}const Gn=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:s="team",defaultInterval:r="year",excludePlanIds:o=[],planFeatures:i={},featureDescriptions:l})=>{var Z,q,J;const{isOutdatedBilling:c,toast:d,analytics:p}=G(),{t:u}=ie(),[g,h]=A.useState(r),{data:b,isLoading:C}=xe(),{data:S}=$e(),{data:y}=we({enabled:a}),{data:m}=tt({enabled:a}),D=it(),T=(m==null?void 0:m.planReadonly)??!1;A.useEffect(()=>{a&&p.capture(de.PLAN_PICKER_VIEWED,{interval:g})},[a,p]);const k=N=>{N!==g&&p.capture(de.PLAN_INTERVAL_TOGGLED,{interval:N}),h(N)},_=y==null?void 0:y.plan.current.interval,w=b==null?void 0:b.find(N=>N.id===(y==null?void 0:y.plan.current.planId)),f=y?w?ce(w):"community":void 0,P=((Z=y==null?void 0:y.plan.next)==null?void 0:Z.planId)??null,x=!!P&&P!==(y==null?void 0:y.plan.current.planId),L=T||f==="enterprise"||f==="managed",B=A.useMemo(()=>b?b.filter(N=>ce(N)!=="managed"&&ce(N)!=="enterprise"&&!o.includes(N.id)).sort((N,se)=>Ke.indexOf(ce(N))-Ke.indexOf(ce(se))):[],[b,o]),M=A.useMemo(()=>vo(B),[B]),Q=((J=(q=b==null?void 0:b.find(N=>ce(N)==="enterprise"))==null?void 0:q.metadata)==null?void 0:J.contact_url)??pt,O=N=>{D.mutate({planId:N.id,interval:g},{onSuccess:()=>{p.capture(de.PLAN_DOWNGRADED,{plan_name:re(N.name),interval:g,previous_plan_name:w?re(w.name):void 0}),d({type:"success",message:u("upgradeDowngradeSuccess")})},onError:()=>d({type:"error",message:u("upgradeDowngradeError")})})},z=()=>{y&&D.mutate({planId:y.plan.current.planId,interval:y.plan.current.interval},{onSuccess:()=>{p.capture(de.PLAN_DOWNGRADE_CANCELLED,{plan_name:w?re(w.name):y.plan.current.planId}),d({type:"success",message:u("upgradeCancelDowngradeSuccess")})},onError:()=>d({type:"error",message:u("upgradeCancelDowngradeError")})})};return c?n.jsx(ke,{open:a,onOpenChange:e,size:"md","aria-label":u("upgradeDialogTitle"),className:"bpb-scope",children:n.jsx(Ye,{})}):n.jsx(ke,{open:a,onOpenChange:e,size:"xl","aria-label":u("upgradeDialogTitle"),className:"bpb-scope",children:n.jsxs("div",{className:"bpb-upgrade",children:[n.jsx("h2",{className:"bpb-upgrade__title",children:u("upgradeDialogTitle")}),n.jsx("div",{className:"bpb-upgrade__toggle",children:n.jsx(Wn,{"aria-label":u("dashboardBillingPeriod"),value:g,onChange:k,options:[{value:"month",label:u("upgradeMonthly")},{value:"year",label:u("upgradeAnnual"),badge:M>0?u("upgradeSaveBadge",{savings:M}):void 0}]})}),n.jsxs("div",{className:"bpb-upgrade__grid",children:[C&&[0,1,2].map(N=>n.jsxs("div",{className:"bpb-plan-card","aria-hidden":!0,children:[n.jsx(Y,{width:120,height:22}),n.jsx(Y,{width:90,height:40}),n.jsx(Y,{width:"100%",height:36,rounded:!0}),n.jsx(Y,{width:"100%",height:140})]},N)),B.map((N,se)=>{var pe,ae;const F=ce(N),j=fo(N,g),H=yo(N,g),$=(((pe=N.prices.month)==null?void 0:pe.amount)??0)<=0,W=F===f&&(f==="community"||g===_),ue=F===f&&f!=="community"&&g!==_,le=!!P&&N.id===P&&!W,X=f!==void 0&&Ke.indexOf(F)<Ke.indexOf(f),fe=(F===s||N.id===s)&&!W,ye=W&&x?"cancel_downgrade":W?"current":ue?"switch_interval":le?"next":X?"downgrade":"upgrade",ve=se>0?B[se-1]:void 0,Le=i[F]??Fa[F],Ae=N.features.conversation_sessions,Me=Pa(S,N,g),R=D.isPending&&(ye==="downgrade"&&((ae=D.variables)==null?void 0:ae.planId)===N.id||ye==="cancel_downgrade");return n.jsxs("div",{className:U("bpb-plan-card",fe&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":N.id,children:[n.jsxs("div",{className:"bpb-plan-card__header",children:[n.jsxs("h3",{className:"bpb-plan-card__name",children:[re(N.name),fe&&n.jsx(Ea,{className:"bpb-plan-card__badge",children:u("upgradeRecommended")})]}),n.jsx("p",{className:"bpb-plan-card__tagline",children:u(po[ce(N)])}),n.jsx("div",{className:"bpb-plan-card__price",children:H!==null&&j?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"bpb-plan-card__currency",children:ua(j.currency)}),n.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(H)?H:H.toFixed(2).replace(/\.00$/,"")}),n.jsx("span",{className:"bpb-plan-card__per",children:u("upgradePerMonthSuffix",{currency:j.currency.toUpperCase()})})]}):n.jsx("span",{className:"bpb-plan-card__amount",children:ee(0,"usd",0)})})]}),Ae!==void 0&&n.jsxs("div",{className:"bpb-plan-card__allowance",children:[n.jsxs("div",{className:"bpb-plan-card__metric",children:[n.jsx("span",{className:"bpb-plan-card__metric-value",children:ne(Ae)}),n.jsx("span",{className:"bpb-plan-card__metric-unit",children:u($?"conversationsUnit":"conversationsPerMonth")})]}),Me?n.jsx("p",{className:"bpb-plan-card__pack",children:u("upgradeThenPer",{price:ee(Me.amount,Me.currency,0),packSize:ne(Me.packSize)})}):n.jsx("p",{className:"bpb-plan-card__pack",children:u("upgradeNoTopup")})]}),ye==="current"&&n.jsx(he,{variant:"outline",block:!0,disabled:!0,children:u("upgradeCurrentPlan")}),ye==="next"&&n.jsx(he,{variant:"outline",block:!0,disabled:!0,children:u("upgradeNextPlan")}),ye==="cancel_downgrade"&&n.jsx(he,{variant:"primary",block:!0,loading:R,onClick:z,children:u("upgradeCancelDowngrade")}),ye==="downgrade"&&n.jsx(he,{variant:"outline",block:!0,disabled:L||D.isPending,loading:R,onClick:()=>O(N),children:u("upgradeDowngrade")}),ye==="switch_interval"&&n.jsx(he,{variant:"primary",block:!0,disabled:L||D.isPending,title:L?u("upgradePlanManaged"):void 0,onClick:()=>{p.capture(de.PLAN_UPGRADE_INITIATED,{plan_name:re(N.name),interval:g,current_plan_name:w?re(w.name):void 0}),t(N.id,g)},children:u(g==="year"?"upgradeSwitchToAnnual":"upgradeSwitchToMonthly")}),ye==="upgrade"&&n.jsx(he,{variant:fe?"accent":"primary",block:!0,disabled:L||D.isPending,title:L?u("upgradePlanManaged"):void 0,onClick:()=>{p.capture(de.PLAN_UPGRADE_INITIATED,{plan_name:re(N.name),interval:g,current_plan_name:w?re(w.name):void 0}),t(N.id,g)},children:u("upgradeUpgrade")}),n.jsxs("ul",{className:"bpb-plan-card__features",children:[ve&&n.jsxs("li",{className:"bpb-plan-card__features-lead",children:[n.jsx("span",{className:"bpb-plan-card__feature-chip bpb-plan-card__feature-chip--lead",children:n.jsx(En,{size:13})}),n.jsx("span",{children:u("upgradeEverythingIn",{planName:re(ve.name)})})]}),Le.map(me=>{const Te=za(me),Be=gt[me],ra=Be!==void 0?u(Be.label):me,ba=(l==null?void 0:l[me])??(Be!==void 0?u(Be.desc):void 0);return n.jsxs("li",{children:[n.jsx("span",{className:"bpb-plan-card__feature-chip",children:n.jsx(Te,{size:13})}),ba?n.jsx(ma,{label:ra,children:ba}):n.jsx("span",{children:ra})]},me)})]})]},N.id)})]}),n.jsxs("p",{className:"bpb-upgrade__footer",children:[u("upgradeFooterEnterprise")," ",n.jsx("a",{href:Q,target:"_blank",rel:"noopener noreferrer",children:u("upgradeContactUs")})," ",u("upgradeFooterAboutEnterprise")," ",n.jsx("a",{href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:"botpress.com/pricing"}),"."]})]})})},Ct='-apple-system, "ui-sans-serif", "system-ui", "Segoe UI", Helvetica, Arial, sans-serif',St="14px",Kn="10px";function Nt(a){return a?{theme:"night",variables:{fontFamily:Ct,fontSizeBase:St,borderRadius:Kn,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:Ct,fontSizeBase:St,borderRadius:Kn,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 _t(a){return{base:{fontFamily:Ct,fontSize:St,color:a?"#f9f9f9":"#0d0d0d","::placeholder":{color:a?"#9b9b9b":"#8f8f8f"}},invalid:{color:a?"#ff8583":"#e02e2a"}}}const Co={pt:"pt-BR",es:"es-419"};function kt(a){const e=a.split("-")[0]??a;return Co[e]??a}const So=4,No=({plan:a,interval:e,preview:t,isLoadingPreview:s,isPreviewError:r,canSubscribe:o,isSubmitting:i,onSubscribe:l})=>{var M,Q,O,z,Z;const{locale:c}=G(),{t:d}=ie(),{data:p}=$e(),u=((M=a==null?void 0:a.prices.month)==null?void 0:M.currency)??((Q=a==null?void 0:a.prices.year)==null?void 0:Q.currency)??"usd",g=a==null?void 0:a.features.conversation_sessions,h=a&&ce(a)==="community"?d("conversationsUnit"):d("conversationsPerMonth"),b=a?Pa(p,a,e):null,C=(t==null?void 0:t.costs.immediate.amountDue)??0,S=(t==null?void 0:t.costs.immediate.accountBalance)??0,y=(t==null?void 0:t.costs.nextCycle.total)??0,m=t!=null&&t.nextBillingDate?Ee(An(t.nextBillingDate,1),c):null,D=a?Fa[ce(a)].slice(0,So):[],T=a?((O=a.prices[e])==null?void 0:O.amount)??0:0,k=(t==null?void 0:t.costs.immediate.lineItems)??[],_=k.filter(q=>q.type==="discount"),w=k.filter(q=>q.type==="proration_credit"||q.type==="proration_charge").reduce((q,J)=>q+J.amount,0),f=!!(t!=null&&t.subscription.plan.effectiveDate),P=((z=a==null?void 0:a.prices.month)==null?void 0:z.amount)??0,x=((Z=a==null?void 0:a.prices.year)==null?void 0:Z.amount)??0,L=e==="year"&&P>0&&x>0?Math.round(P*12-x):0,B=Math.round(L/12);return n.jsxs("div",{className:"bpb-summary-wrap",children:[n.jsxs("div",{className:"bpb-summary bpb-glow",children:[n.jsx("h3",{className:"bpb-summary__title",children:a?`${re(a.name)} plan`:n.jsx(Y,{width:140,height:24})}),g!==void 0&&n.jsxs("div",{className:"bpb-summary__metric",children:[n.jsx("span",{className:"bpb-summary__metric-value",children:ne(g)}),n.jsx("span",{className:"bpb-summary__metric-unit",children:h}),b&&n.jsx("span",{className:"bpb-summary__metric-pack",children:d("orderThen",{price:ee(b.amount,b.currency,0),packSize:ne(b.packSize)})})]}),D.length>0&&n.jsxs(n.Fragment,{children:[n.jsx("p",{className:"bpb-summary__features-label",children:d("orderTopFeatures")}),n.jsx("ul",{className:"bpb-summary__features",children:D.map(q=>{const J=za(q);return n.jsxs("li",{children:[n.jsx(J,{size:16,className:"bpb-summary__feature-icon"}),n.jsx("span",{children:q})]},q)})})]}),n.jsx("hr",{className:"bpb-summary__divider"}),s&&n.jsxs("div",{className:"bpb-summary__lines","aria-busy":"true",children:[n.jsx(Y,{height:16}),n.jsx(Y,{height:16}),n.jsx(Y,{height:20})]}),r&&n.jsx("p",{role:"alert",className:"bpb-summary__error",children:d("orderPreviewError")}),t&&!s&&f&&n.jsxs("div",{className:"bpb-summary__lines",children:[n.jsxs("div",{className:"bpb-summary__line",children:[n.jsx("span",{className:"bpb-summary__line-label",children:m?d("orderPlanFromDate",{plan:a?re(a.name):"",date:m}):`${a?re(a.name):""} plan`}),n.jsxs("span",{className:"bpb-summary__line-amount",children:[ee(y,u),d(e==="year"?"perYear":"perMonth")]})]}),n.jsxs("div",{className:"bpb-summary__line",children:[n.jsx("span",{className:"bpb-summary__line-label",children:n.jsx(ma,{label:d("orderProratedToday"),children:d("orderProratedTodayDesc")})}),n.jsx("span",{className:"bpb-summary__line-amount",children:ee(C,u)})]}),n.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[n.jsx("span",{children:d("orderDueToday")}),n.jsx("span",{children:ee(C,u)})]}),w<0&&n.jsx("p",{className:"bpb-summary__addon-note",children:d("orderCreditTowardNext",{amount:ee(Math.abs(w),u)})})]}),t&&!s&&!f&&n.jsxs("div",{className:"bpb-summary__lines",children:[n.jsxs("div",{className:"bpb-summary__line",children:[n.jsxs("span",{className:"bpb-summary__line-label",children:[a?re(a.name):""," plan (",d(e==="year"?"orderIntervalAnnual":"orderIntervalMonthly"),")"]}),n.jsxs("span",{className:"bpb-summary__line-amount",children:[ee(T,u),d(e==="year"?"perYear":"perMonth")]})]}),_.map((q,J)=>n.jsxs("div",{className:"bpb-summary__line",children:[n.jsx("span",{className:"bpb-summary__line-label",children:q.description}),n.jsx("span",{className:"bpb-summary__line-amount",children:ee(q.amount,u)})]},`${q.id}-${J}`)),w!==0&&n.jsxs("div",{className:"bpb-summary__line",children:[n.jsx("span",{className:"bpb-summary__line-label",children:n.jsx(ma,{label:w<0?d("orderCreditUnusedTime"):d("orderAdjustUnusedTime"),children:w<0?d("orderCreditUnusedTimeDesc"):d("orderAdjustUnusedTimeDesc")})}),n.jsx("span",{className:"bpb-summary__line-amount",children:ee(w,u)})]}),S!==0&&n.jsxs("div",{className:"bpb-summary__line",children:[n.jsx("span",{className:"bpb-summary__line-label",children:d("orderAccountCredit")}),n.jsx("span",{className:"bpb-summary__line-amount",children:ee(S,u)})]}),n.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[n.jsx("span",{children:d("orderDueToday")}),n.jsx("span",{children:ee(C,u)})]}),w<0&&C===0&&n.jsx("p",{className:"bpb-summary__addon-note",children:d("orderBalanceAsCredit",{amount:ee(Math.abs(w),u)})})]}),L>0&&n.jsxs("div",{className:"bpb-summary__savings",children:[n.jsx(mt,{size:18,className:"bpb-summary__savings-icon"}),n.jsx("span",{children:d("orderSavingsNote",{monthlySavings:ee(B,u,0),yearlySavings:ee(L,u,0)})})]}),n.jsx(he,{variant:"primary",size:"lg",block:!0,className:"bpb-summary__cta",disabled:!o,loading:i,onClick:l,children:d(r?"orderPreviewUnavailable":"orderSubscribe")})]}),n.jsxs("p",{className:"bpb-summary__fineprint",children:[d(e==="month"?"orderRenewsMonthly":"orderRenewsAnnually"),t&&n.jsxs(n.Fragment,{children:[" ",m?d("orderChargedStarting",{amount:ee(y,u),period:d(e==="month"?"perMonthLong":"perYearLong"),date:m}):d("orderChargedNoDate",{amount:ee(y,u),period:d(e==="month"?"perMonthLong":"perYearLong")})]})," ",d("orderCancelNote")]})]})},_o=["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"],ko={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"}]},wo=[{type:"eu_vat",label:"EU VAT",description:"European VAT number"}];function Hn(a){if(!a)return[];const e=a.toUpperCase();return _o.includes(e)?wo:ko[e]??[]}const Ua=({label:a,className:e,id:t,...s})=>a?n.jsxs("label",{className:U("bpb-input",e),children:[n.jsx("span",{className:"bpb-input__label",children:a}),n.jsx("input",{className:"bpb-input__field bpb-input__field--labeled",id:t,...s})]}):n.jsx("input",{className:U("bpb-input__field",e),id:t,...s}),wt=({label:a,className:e,children:t,...s})=>n.jsxs("label",{className:U("bpb-input",e),children:[a&&n.jsx("span",{className:"bpb-input__label",children:a}),n.jsxs("span",{className:"bpb-input__select-wrap",children:[n.jsx("select",{className:U("bpb-input__field bpb-input__field--select",a&&"bpb-input__field--labeled"),...s,children:t}),n.jsx(Ba,{size:16,className:"bpb-input__chevron"})]})]}),Ao=({plan:a,interval:e,onChange:t})=>{const{t:s}=ie(),r=a.prices.month,o=a.prices.year,i=r&&o&&r.amount>0?Math.round((1-o.amount/(r.amount*12))*100):0;return n.jsxs("section",{className:"bpb-checkout__section",children:[n.jsx("h3",{className:"bpb-checkout__section-title",children:s("checkoutPlanDetails")}),n.jsxs("div",{className:"bpb-interval-cards",role:"radiogroup","aria-label":s("billingIntervalLabel"),children:[r&&n.jsxs("button",{type:"button",role:"radio","aria-checked":e==="month",className:U("bpb-interval-card",e==="month"&&"bpb-interval-card--selected"),onClick:()=>t("month"),children:[n.jsx("span",{className:"bpb-interval-card__title",children:s("checkoutMonthlyBilling")}),n.jsxs("span",{className:"bpb-interval-card__price",children:[ee(r.amount,r.currency,0)," ",s("perMonth")]})]}),o&&n.jsxs("button",{type:"button",role:"radio","aria-checked":e==="year",className:U("bpb-interval-card",e==="year"&&"bpb-interval-card--selected"),onClick:()=>t("year"),children:[n.jsxs("span",{className:"bpb-interval-card__title",children:[s("checkoutAnnualBilling"),i>0&&n.jsx(Ea,{children:s("checkoutSaveBadge",{savings:i})})]}),n.jsxs("span",{className:"bpb-interval-card__price",children:[ee(o.amount/12,o.currency,0)," ",s("perMonth")]})]})]})]})},Yn=({number:a,title:e,onEdit:t})=>{const{t:s}=ie();return n.jsxs("div",{className:"bpb-step__header",children:[t?n.jsxs("button",{type:"button",className:"bpb-step__title bpb-step__title--button",onClick:t,children:[a,". ",e]}):n.jsxs("h3",{className:"bpb-step__title",children:[a,". ",e]}),t&&n.jsx("button",{type:"button",className:"bpb-step__edit",onClick:t,children:s("edit")})]})},To=({stepNumber:a,savedCard:e,isDark:t,tab:s,onTabChange:r,onPaymentChange:o})=>{const{t:i}=ie(),[l,c]=A.useState(!1),d=s==="new"||!e;return n.jsxs("section",{className:"bpb-step",children:[n.jsx(Yn,{number:a,title:i("checkoutPaymentMethodTitle")}),e&&n.jsxs("div",{className:"bpb-pay-tabs",role:"tablist","aria-label":i("checkoutPaymentMethodTitle"),children:[n.jsxs("button",{type:"button",role:"tab","aria-selected":s==="saved",className:U("bpb-pay-tab",s==="saved"&&"bpb-pay-tab--selected"),onClick:()=>r("saved"),children:[n.jsx(bt,{size:16}),i("checkoutSavedCardTab")]}),n.jsxs("button",{type:"button",role:"tab","aria-selected":s==="new",className:U("bpb-pay-tab",s==="new"&&"bpb-pay-tab--selected"),onClick:()=>r("new"),children:[n.jsx(bt,{size:16}),i("checkoutNewCardTab")]})]}),e&&s==="saved"&&n.jsxs("div",{className:"bpb-saved-card",children:[n.jsx(vt,{brand:e.brand}),n.jsxs("span",{className:"bpb-saved-card__number",children:[n.jsx("span",{className:"bpb-saved-card__brand",children:e.brand})," •••• ",e.lastFour]}),n.jsxs("span",{className:"bpb-saved-card__exp",children:[String(e.expMonth).padStart(2,"0"),"/",String(e.expYear).slice(-2)]})]}),d&&n.jsxs("div",{className:"bpb-payment-element",children:[!l&&n.jsx("div",{className:"bpb-payment-element__skeleton",children:n.jsx(Y,{height:48})}),n.jsx("div",{className:U("bpb-card-element",!l&&"bpb-payment-element--hidden"),children:n.jsx(Ne.CardElement,{options:{style:_t(t),hidePostalCode:!0},onReady:()=>c(!0),onChange:p=>o(p.complete)})})]})]})},Do=({stepNumber:a,existingAddress:e,customerName:t,isLoading:s,editing:r,onEdit:o,onCancelEdit:i,onReady:l,onCountryChange:c,country:d,isBusiness:p,onIsBusinessChange:u,businessName:g,onBusinessNameChange:h,taxType:b,onTaxTypeChange:C,taxValue:S,onTaxValueChange:y})=>{const{t:m}=ie(),[D,T]=A.useState(!1),k=r||!e,_=Hn(d),w=_.find(f=>f.type===b);return n.jsxs("section",{className:"bpb-step",children:[n.jsx(Yn,{number:a,title:m("checkoutBillingAddressTitle")}),s?n.jsx(Y,{height:72}):k?n.jsxs("div",{className:"bpb-payment-element",children:[!D&&n.jsxs("div",{className:"bpb-payment-element__skeleton",children:[n.jsx(Y,{height:48}),n.jsx(Y,{height:48})]}),n.jsx("div",{className:U(!D&&"bpb-payment-element--hidden"),children:n.jsx(Ne.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:()=>{T(!0),l()},onChange:f=>{c(f.value.address.country||void 0)}})}),i&&r&&n.jsx("button",{type:"button",className:"bpb-address-cancel",onClick:i,children:m("checkoutCancelEdit")})]}):n.jsxs("div",{className:"bpb-address-card",children:[n.jsxs("div",{className:"bpb-address-card__lines",children:[t&&n.jsx("span",{className:"bpb-address-card__name",children:t}),n.jsxs("span",{children:[e.lineOne,e.lineTwo?`, ${e.lineTwo}`:""]}),n.jsxs("span",{children:[e.city," ",e.state??""," ",e.postalCode," ",e.country]})]}),n.jsx("button",{type:"button",className:"bpb-link-button",onClick:o,children:m("checkoutUpdateAddress")})]}),n.jsxs("label",{className:"bpb-checkbox",children:[n.jsx("input",{type:"checkbox",checked:p,onChange:f=>{u(f.target.checked),f.target.checked&&!b&&_[0]&&C(_[0].type)}}),n.jsx("span",{children:m("checkoutIsBusiness")})]}),p&&n.jsxs("div",{className:"bpb-business-fields",children:[n.jsx("h4",{className:"bpb-step__subtitle",children:m("checkoutBusinessDetails")}),n.jsx(Ua,{placeholder:m("checkoutBusinessNamePlaceholder"),value:g,onChange:f=>h(f.target.value),autoComplete:"organization"}),_.length>0?n.jsxs(n.Fragment,{children:[n.jsx(wt,{"aria-label":m("checkoutTaxIdTypeLabel"),value:b,onChange:f=>C(f.target.value),children:_.map(f=>n.jsxs("option",{value:f.type,children:[f.label," — ",f.description]},f.type))}),n.jsx(Ua,{placeholder:w?w.description:m("checkoutTaxIdNumberPlaceholder"),value:S,onChange:f=>y(f.target.value),inputMode:"text"})]}):n.jsx("p",{className:"bpb-business-fields__note",children:m(d?"checkoutNoTaxRequired":"checkoutSelectCountryForTax")})]})]})},xo=({planId:a,initialInterval:e,clientSecret:t,onSuccess:s})=>{var is;const r=Ne.useStripe(),o=Ne.useElements(),{email:i,toast:l,analytics:c,isDark:d}=G(),{t:p}=ie(),[u,g]=A.useState(e),[h,b]=A.useState("payment"),[C,S]=A.useState(null),[y,m]=A.useState(!1),[D,T]=A.useState(!1),[k,_]=A.useState(!1),[w,f]=A.useState(void 0),[P,x]=A.useState(!1),[L,B]=A.useState(""),[M,Q]=A.useState(""),[O,z]=A.useState(""),[Z,q]=A.useState(!1),[J,N]=A.useState(null),{data:se}=xe(),{data:F}=we(),{data:j,isLoading:H}=Ra(),{data:$,isLoading:W}=et(),{data:ue}=at(),le=se==null?void 0:se.find(Se=>Se.id===a),X=((is=j==null?void 0:j.paymentMethod)==null?void 0:is.card)??null,fe=($==null?void 0:$.address)??null;A.useEffect(()=>{C===null&&!H&&j!==void 0&&S(X?"saved":"new")},[C,H,j,X]),A.useEffect(()=>{w===void 0&&fe&&f(fe.country)},[w,fe]);const ye=A.useMemo(()=>({plan:{planId:a,interval:u}}),[a,u]),ve=Xa(ye),Le=st(),Ae=rt(),Me=ot(),R=it(),pe=le?re(le.name):"",ae=C==="new"||!X,me=D||!fe,Te=ae?y:!!X,Be=me?k:!0;A.useEffect(()=>{b(Te?"address":"payment")},[Te]),A.useEffect(()=>{c.capture(de.CHECKOUT_STEP_VIEWED,{plan_name:pe,interval:u,step:h})},[c,h]);const ra=Se=>{Se!==u&&c.capture(de.CHECKOUT_INTERVAL_CHANGED,{plan_name:pe,interval:Se}),g(Se)},ba=Se=>{c.capture(de.PAYMENT_METHOD_SELECTED,{method:Se==="saved"?"saved_card":"new_card"}),S(Se)},Je=!!r&&!!o&&!!le&&!ve.isError&&!!ve.data&&Te&&Be&&!Z,Xo=async()=>{var ls,ds,cs,us;if(!r||!o||!le)return;q(!0),N(null);const Se=(Qe,Va)=>c.capture(de.CHECKOUT_ERROR,{plan_name:pe,interval:u,step:h,reason:Qe,message:Va});try{if(c.capture(de.PAYMENT_DETAILS_CONFIRMED,{plan_name:pe,interval:u}),ae){const Ze=o.getElement(Ne.CardElement);if(!Ze){N(p("checkoutCardNotReady")),Se("card_element_not_ready");return}const{error:Xe,setupIntent:Oe}=await r.confirmCardSetup(t,{payment_method:{card:Ze}});if(Xe){N(Xe.message??p("checkoutPaymentSetupFailed")),c.capture(de.CHECKOUT_ERROR,{plan_name:pe,interval:u,step:h,reason:Xe.code??"card_setup_failed",decline_code:Xe.decline_code,message:Xe.message});return}if(!(Oe!=null&&Oe.payment_method)||typeof Oe.payment_method!="string"){N(p("checkoutPaymentMethodMissing")),Se("payment_method_missing");return}await Le.mutateAsync({paymentMethodId:Oe.payment_method})}let Qe;if(me){const Ze=o.getElement("address");if(Ze){const{complete:Xe,value:Oe}=await Ze.getValue();if(!Xe||!Oe.address){N(p("checkoutAddressIncomplete")),Se("address_incomplete");return}const{address:oa}=Oe;Qe=((ls=Oe.name)==null?void 0:ls.trim())||void 0,await Ae.mutateAsync({lineOne:oa.line1??"",lineTwo:oa.line2??void 0,city:oa.city??"",state:oa.state??void 0,postalCode:oa.postal_code??"",country:oa.country??""})}}const Va=P&&L.trim()||Qe||void 0,ps=P&&M&&O.trim()?[{type:M,value:O.trim()}]:void 0;(Va!==void 0||ps!==void 0)&&await Me.mutateAsync({name:Va,taxIds:ps});const Ro=((ds=ve.data)==null?void 0:ds.costs.immediate.amountDue)??0,ei=((cs=ve.data)==null?void 0:cs.costs.nextCycle.total)??0;await R.mutateAsync({planId:a,interval:u}),c.capture(de.PLAN_UPGRADED,{plan_name:pe,interval:u,amount_paid:Ro,next_cycle_amount:ei,previous_plan_name:(us=se==null?void 0:se.find(Ze=>Ze.id===(F==null?void 0:F.plan.current.planId)))==null?void 0:us.name.replace("Plan - ",""),previous_interval:F==null?void 0:F.plan.current.interval}),l({type:"success",message:p("checkoutSuccessToast")}),s()}catch(Qe){N(p("checkoutGenericError")),Se("exception",Qe instanceof Error?Qe.message:void 0),l({type:"error",message:p("checkoutErrorToast")})}finally{q(!1)}};return n.jsxs("div",{className:"bpb-checkout__columns",children:[n.jsxs("div",{className:"bpb-checkout__main",children:[le&&n.jsx(Ao,{plan:le,interval:u,onChange:ra}),i&&n.jsxs("section",{className:"bpb-checkout__section",children:[n.jsx("h3",{className:"bpb-checkout__section-title",children:p("checkoutContactInfo")}),n.jsxs("div",{className:"bpb-checkout__static-field",children:[n.jsx("span",{className:"bpb-checkout__static-label",children:p("checkoutEmailLabel")}),n.jsx("span",{children:i})]})]}),n.jsx(To,{stepNumber:1,savedCard:X,isDark:d,tab:C??"new",onTabChange:ba,onPaymentChange:m}),h==="address"&&n.jsx(Do,{stepNumber:2,existingAddress:fe,customerName:(ue==null?void 0:ue.name)??null,isLoading:W,editing:D,onEdit:()=>T(!0),onCancelEdit:fe?()=>T(!1):void 0,onReady:()=>_(!0),onCountryChange:f,country:w,isBusiness:P,onIsBusinessChange:x,businessName:L,onBusinessNameChange:B,taxType:M,onTaxTypeChange:Q,taxValue:O,onTaxValueChange:z}),J&&n.jsx("p",{role:"alert",className:"bpb-checkout__submit-error",children:J})]}),n.jsx("div",{className:"bpb-checkout__aside",children:n.jsx(No,{plan:le,interval:u,preview:ve.data,isLoadingPreview:ve.isLoading,isPreviewError:ve.isError,canSubscribe:Je,isSubmitting:Z,onSubscribe:()=>void Xo()})})]})},Jn=({open:a,onOpenChange:e,planId:t,interval:s,onBack:r,onSuccess:o})=>{var S;const{stripePromise:i,isDark:l,locale:c,isOutdatedBilling:d}=G(),{t:p}=ie(),u=nt(),g=(S=u.data)==null?void 0:S.clientSecret,{mutate:h,reset:b}=u;A.useEffect(()=>{a&&!d?h():b()},[a,d,h,b]);const C=A.useMemo(()=>g?{clientSecret:g,appearance:Nt(l),locale:kt(c)}:null,[g,l,c]);return d?n.jsx(ke,{open:a,onOpenChange:e,size:"md","aria-label":p("checkoutTitle"),className:"bpb-scope",children:n.jsx(Ye,{})}):n.jsx(ke,{open:a,onOpenChange:e,size:"xl","aria-label":p("checkoutTitle"),className:"bpb-scope",children:n.jsxs("div",{className:"bpb-checkout",children:[n.jsxs("header",{className:"bpb-checkout__header",children:[r&&n.jsx("button",{type:"button",className:"bpb-checkout__back","aria-label":p("checkoutBackLabel"),onClick:r,children:n.jsx(ft,{size:18})}),n.jsx("h2",{className:"bpb-checkout__title",children:p("checkoutTitle")})]}),u.isError?n.jsxs("div",{className:"bpb-checkout__error-state",children:[n.jsx("p",{children:p("checkoutSessionError")}),u.error instanceof Error&&u.error.message&&n.jsx("p",{className:"bpb-checkout__error-detail",children:u.error.message}),n.jsx("p",{className:"bpb-checkout__error-detail",children:p("checkoutSessionErrorDetail")}),n.jsx(he,{variant:"outline",onClick:()=>h(),children:p("tryAgain")})]}):!C||!g?n.jsxs("div",{className:"bpb-checkout__columns","aria-busy":"true",children:[n.jsxs("div",{className:"bpb-checkout__main",children:[n.jsx(Y,{height:56}),n.jsx(Y,{height:56}),n.jsx(Y,{height:120}),n.jsx(Y,{height:56})]}),n.jsx("div",{className:"bpb-checkout__aside",children:n.jsx(Y,{height:320})})]}):n.jsx(Ne.Elements,{stripe:i,options:C,children:n.jsx(xo,{planId:t,initialInterval:s,clientSecret:g,onSuccess:()=>{e(!1),o==null||o()}})})]})})},Qn=({value:a,onChange:e,min:t=0,max:s,step:r=1,className:o,...i})=>{const l=()=>e(Math.max(t,a-r)),c=()=>e(s===void 0?a+r:Math.min(s,a+r));return n.jsxs("div",{className:U("bpb-stepper",o),children:[n.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Decrease ${i["aria-label"]}`,onClick:l,disabled:a<=t,children:n.jsx(qn,{size:14})}),n.jsx("span",{className:"bpb-stepper__value","aria-label":i["aria-label"],children:a}),n.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Increase ${i["aria-label"]}`,onClick:c,disabled:s!==void 0&&a>=s,children:n.jsx($n,{size:14})})]})},Po=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:s})=>{const{isOutdatedBilling:r}=G(),{t:o}=ie();return r?n.jsx(ke,{open:a,onOpenChange:e,size:"md","aria-label":o("addonsDialogTitle"),className:"bpb-scope",children:n.jsx(Ye,{})}):n.jsx(ke,{open:a,onOpenChange:e,size:"md","aria-label":o("addonsDialogTitle"),className:"bpb-scope",children:n.jsx(Fo,{onOpenChange:e,onSuccess:t,onUpgrade:s})})},Fo=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var q,J,N,se;const{toast:s,locale:r}=G(),{t:o}=ie(),{data:i}=we(),{data:l}=$e(),{data:c}=xe(),{data:d}=tt(),p=nn(),[u,g]=A.useState(null),h=c==null?void 0:c.find(F=>F.id===(i==null?void 0:i.plan.current.planId)),b=(i==null?void 0:i.plan.current.interval)??"month",C=(d==null?void 0:d.addonsReadonly)??!1,S=i!=null&&i.plan.current.periodEnd?Ee(i.plan.current.periodEnd,r):null,y=A.useMemo(()=>{var j;if(!i||!l)return null;const F={};for(const H of l){const $=i.addons[H.id];F[H.id]=((j=$==null?void 0:$.next)==null?void 0:j.quantity)??($==null?void 0:$.current.quantity)??0}return F},[i,l]),m=u??y,D=A.useMemo(()=>!l||!h?[]:l.flatMap(F=>{const j=xa(F,h,b);return j?[{addon:F,price:j}]:[]}),[l,h,b]),T=!!m&&!!y&&Object.keys(m).some(F=>m[F]!==y[F]),k=D.reduce((F,{addon:j,price:H})=>F+((m==null?void 0:m[j.id])??0)*H.amount,0),_=A.useMemo(()=>h&&m?{plan:{planId:h.id,interval:b},addons:m}:null,[h,b,m]),w=Xa(_??{plan:{planId:"",interval:b}},{enabled:!!_&&T}),f=((q=h==null?void 0:h.prices[b])==null?void 0:q.currency)??"usd",P=((J=w.data)==null?void 0:J.costs.immediate.amountDue)??0,x=(N=w.data)!=null&&N.nextBillingDate?Ee(w.data.nextBillingDate,r):null,L=((se=h==null?void 0:h.prices[b])==null?void 0:se.amount)??0,B=L+k,M=h&&m?Pn(h,l,m):[],Q=(F,j)=>j==="bytes"?Ge(F):ne(F),O=(F,j)=>{const H=l==null?void 0:l.find(le=>le.id===F),$=H==null?void 0:H.increments;if(!$||j<=0)return null;const W=$.conversation_sessions??0;if(W>0)return o("addonsConvos",{n:ne(W*j)});const ue=$.file_storage??0;return ue>0?Ge(ue*j):null},z=()=>{m&&p.mutate({addons:m},{onSuccess:()=>{s({type:"success",message:o("addonsUpdateSuccess")}),a(!1),e==null||e()},onError:()=>s({type:"error",message:o("addonsUpdateError")})})},Z=!i||!l||!c;return n.jsxs("div",{className:"bpb-manage-addons",children:[n.jsx("h2",{className:"bpb-manage-addons__title",children:o("addonsDialogTitle")}),(Z||D.length>0)&&n.jsx("p",{className:"bpb-manage-addons__subtitle",children:h?o("addonsSubtitleWithPlan",{planName:re(h.name)}):o("addonsSubtitleGeneric")}),Z?n.jsxs("div",{className:"bpb-manage-addons__loading","aria-busy":"true",children:[n.jsx(Y,{height:56}),n.jsx(Y,{height:56})]}):D.length===0?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"bpb-manage-addons__upgrade-gate",children:[n.jsx(ho,{size:28,className:"bpb-manage-addons__upgrade-icon"}),n.jsxs("div",{className:"bpb-manage-addons__upgrade-text",children:[n.jsx("p",{className:"bpb-manage-addons__upgrade-title",children:o("addonsRequirePaidPlanTitle")}),n.jsx("p",{className:"bpb-manage-addons__upgrade-body",children:o("addonsRequirePaidPlanBody")})]})]}),n.jsx("div",{className:"bpb-manage-addons__actions",children:t?n.jsx(he,{variant:"primary",className:"bpb-manage-addons__upgrade-cta",onClick:()=>{a(!1),t()},children:o("addonsUpgradeCta")}):n.jsx(he,{variant:"outline",onClick:()=>a(!1),children:o("close")})})]}):n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"bpb-addons",children:D.map(({addon:F,price:j})=>{var le;const H=((le=i==null?void 0:i.addons[F.id])==null?void 0:le.current.quantity)??0,$=(m==null?void 0:m[F.id])??0,W=$!==H?$===0?S?o("addonRemovedOnDate",{activeNow:H,date:S}):o("addonRemovedNextCycle",{activeNow:H}):S?o("addonChangedOnDate",{activeNow:H,pending:$,date:S}):o("addonChangedNextCycle",{activeNow:H,pending:$}):H>0?o("addonActiveOnly",{count:H}):null,ue=O(F.id,$);return n.jsxs("div",{className:"bpb-addon-row",children:[n.jsxs("div",{className:"bpb-addon-row__info",children:[n.jsx("span",{className:"bpb-addon-row__name",children:qe[F.id]?o(qe[F.id]):pa(F.name)}),n.jsx("span",{className:"bpb-addon-row__description",children:Tn[F.id]?o(Tn[F.id]):F.description}),n.jsxs("span",{className:"bpb-addon-row__price",children:[ee(j.amount,j.currency)," ",o("addonsEach")]}),W&&n.jsx("span",{className:U("bpb-addon-row__status",$!==H&&"bpb-addon-row__status--changed"),children:W})]}),n.jsxs("div",{className:"bpb-addon-row__control",children:[ue&&n.jsx("span",{className:"bpb-addon-row__grant",children:ue}),n.jsx(Qn,{"aria-label":`${qe[F.id]?o(qe[F.id]):pa(F.name)} quantity`,value:$,onChange:X=>g({...m??{},[F.id]:X})})]})]},F.id)})}),M.length>0&&n.jsxs("div",{className:"bpb-manage-addons__limits",children:[n.jsx("p",{className:"bpb-manage-addons__limits-title",children:o("addonsNewLimits")}),M.map(F=>{const j={conversation_sessions:"resourceConversations",table_rows:"resourceTableRows",vector_db_storage:"resourceVectorDb",file_storage:"resourceFileStorage"}[F.key];return n.jsxs("div",{className:"bpb-manage-addons__limit-row",children:[n.jsx("span",{className:"bpb-manage-addons__limit-label",children:j?o(j):F.label}),n.jsxs("span",{className:"bpb-manage-addons__limit-values",children:[n.jsx("span",{className:"bpb-manage-addons__limit-now",children:Q(F.now,F.unit)}),n.jsx("span",{className:"bpb-manage-addons__limit-arrow","aria-hidden":!0,children:"→"}),n.jsx("span",{className:"bpb-manage-addons__limit-next",children:Q(F.next,F.unit)})]})]},F.key)})]}),n.jsxs("div",{className:"bpb-manage-addons__totals",children:[n.jsxs("div",{className:"bpb-manage-addons__line",children:[n.jsx("span",{children:h?o("addonsPlanLine",{planName:re(h.name)}):o("addonsGenericPlan")}),n.jsx("span",{children:ee(L,f)})]}),D.map(({addon:F,price:j})=>{const H=(m==null?void 0:m[F.id])??0;return H<=0?null:n.jsxs("div",{className:"bpb-manage-addons__line",children:[n.jsxs("span",{children:[H,"×"," ",qe[F.id]?o(qe[F.id]):pa(F.name)]}),n.jsx("span",{children:ee(j.amount*H,f)})]},F.id)}),n.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--total",children:[n.jsx("span",{children:o(b==="year"?"addonsTotalYearly":"addonsTotalMonthly")}),n.jsxs("span",{children:[ee(B,f),o(b==="year"?"perYear":"perMonth")]})]}),T&&n.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--due",children:[n.jsx("span",{children:o("addonsDueToday")}),n.jsx("span",{children:w.isLoading?"…":w.isError?"—":ee(Math.max(P,0),f)})]})]}),T&&!w.isError&&n.jsxs("p",{className:"bpb-manage-addons__note",children:[P>0?o("addonsChargedNow",{amount:ee(P,f)}):o("addonsNoChargeToday"),x?o("addonsRenewalWithDate",{date:x,amount:ee(k,f),interval:o(b==="year"?"perYear":"perMonth")}):o("addonsRenewalNoDate",{amount:ee(k,f),interval:o(b==="year"?"perYear":"perMonth")})]}),C&&n.jsx("p",{className:"bpb-manage-addons__note",role:"alert",children:o("addonsReadonlyNote")}),n.jsxs("div",{className:"bpb-manage-addons__actions",children:[n.jsx(he,{variant:"outline",onClick:()=>a(!1),disabled:p.isPending,children:o("cancel")}),n.jsx(he,{variant:"primary",disabled:!T||C,loading:p.isPending,onClick:z,children:o("addonsUpdateSubscription")})]})]})]})},Eo=({open:a,onOpenChange:e})=>{const{isOutdatedBilling:t}=G(),{t:s}=ie();return t?n.jsx(ke,{open:a,onOpenChange:e,size:"md","aria-label":s("invoicesTitle"),className:"bpb-scope",children:n.jsx(Ye,{})}):n.jsx(ke,{open:a,onOpenChange:e,size:"md","aria-label":s("invoicesTitle"),className:"bpb-scope",children:n.jsx(Io,{open:a})})},Io=({open:a})=>{const{locale:e,analytics:t}=G(),{t:s}=ie(),{data:r,isLoading:o,isError:i}=en({enabled:a}),l=(r==null?void 0:r.invoices)??[],c={paid:s("invoiceStatusPaid"),open:s("invoiceStatusDue"),draft:s("invoiceStatusDraft"),uncollectible:s("invoiceStatusUnpaid"),void:s("invoiceStatusVoid")};return n.jsxs("div",{className:"bpb-invoices",children:[n.jsx("h2",{className:"bpb-invoices__title",children:s("invoicesTitle")}),o?n.jsxs("div",{className:"bpb-invoices__loading","aria-busy":"true",children:[n.jsx(Y,{height:52}),n.jsx(Y,{height:52}),n.jsx(Y,{height:52})]}):i?n.jsx("p",{className:"bpb-invoices__empty",role:"alert",children:s("invoicesLoadError")}):l.length===0?n.jsx("p",{className:"bpb-invoices__empty",children:s("invoicesEmpty")}):n.jsx("ul",{className:"bpb-invoices__list",children:l.map(d=>n.jsxs("li",{className:"bpb-invoices__row",children:[n.jsxs("div",{className:"bpb-invoices__row-main",children:[n.jsx("span",{className:"bpb-invoices__date",children:Ee(d.createdAt,e)}),n.jsx("span",{className:`bpb-invoices__status bpb-invoices__status--${d.status}`,children:c[d.status]})]}),n.jsxs("div",{className:"bpb-invoices__row-end",children:[n.jsx("span",{className:"bpb-invoices__amount",children:ee(d.amount,d.currency)}),d.pdfUrl?n.jsx("a",{className:"bpb-invoices__download",href:d.pdfUrl,target:"_blank",rel:"noopener noreferrer","aria-label":s("invoicesDownloadLabel",{date:Ee(d.createdAt,e)}),onClick:()=>t.capture(de.INVOICE_DOWNLOADED,{status:d.status}),children:n.jsx(yt,{size:16})}):n.jsx("span",{className:"bpb-invoices__download bpb-invoices__download--disabled","aria-hidden":!0,children:n.jsx(yt,{size:16})})]})]},d.id))})]})},Lo=({open:a,onOpenChange:e,onSuccess:t})=>{var h;const{stripePromise:s,isDark:r,locale:o,isOutdatedBilling:i}=G(),{t:l}=ie(),c=nt(),d=(h=c.data)==null?void 0:h.clientSecret,{mutate:p,reset:u}=c;A.useEffect(()=>{a&&!i?p():u()},[a,i,p,u]);const g=A.useMemo(()=>d?{clientSecret:d,appearance:Nt(r),locale:kt(o)}:null,[d,r,o]);return i?n.jsx(ke,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:n.jsx(Ye,{})}):n.jsx(ke,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:n.jsxs("div",{className:"bpb-payment-dialog",children:[n.jsx("h2",{className:"bpb-payment-dialog__title",children:l("paymentDialogTitle")}),c.isError?n.jsxs("div",{className:"bpb-payment-dialog__error",children:[n.jsx("p",{children:l("paymentSessionError")}),n.jsx(he,{variant:"outline",onClick:()=>p(),children:l("tryAgain")})]}):!g||!d?n.jsxs("div",{className:"bpb-payment-dialog__loading","aria-busy":"true",children:[n.jsx(Y,{height:48}),n.jsx(Y,{height:120})]}):n.jsx(Ne.Elements,{stripe:s,options:g,children:n.jsx(Mo,{clientSecret:d,isDark:r,onSuccess:t})})]})})},Mo=({clientSecret:a,isDark:e,onSuccess:t})=>{var Me;const s=Ne.useStripe(),r=Ne.useElements(),{toast:o,analytics:i}=G(),{t:l}=ie(),{data:c,isLoading:d}=Ra(),{data:p,isLoading:u}=et(),{data:g,isLoading:h}=at(),b=st(),C=rt(),S=ot(),y=((Me=c==null?void 0:c.paymentMethod)==null?void 0:Me.card)??null,m=(p==null?void 0:p.address)??null,D=(g==null?void 0:g.taxIds)??[],[T,k]=A.useState(!1),[_,w]=A.useState(!1),[f,P]=A.useState(!1),[x,L]=A.useState(!1),[B,M]=A.useState(null),[Q,O]=A.useState(!1),[z,Z]=A.useState(!1),[q,J]=A.useState(null),[N,se]=A.useState(m==null?void 0:m.country),[F,j]=A.useState(D.length>0),[H,$]=A.useState(null),W=H??D.map(R=>({type:R.type,value:R.value})),ue=Hn(N),le=H!==null,X=T||!y,fe=(R,pe)=>$(W.map((ae,me)=>me===R?{...ae,...pe}:ae)),ye=()=>{var R;return $([...W,{type:((R=ue[0])==null?void 0:R.type)??"",value:""}])},ve=R=>$(W.filter((pe,ae)=>ae!==R)),Le=async()=>{if(!s||!r)return;const R=r.getElement(Ne.CardElement);if(R){L(!0),M(null);try{const{error:pe,setupIntent:ae}=await s.confirmCardSetup(a,{payment_method:{card:R}});if(pe){M(pe.message??l("paymentCardSaveError"));return}if(!(ae!=null&&ae.payment_method)||typeof ae.payment_method!="string"){M(l("paymentMethodMissing"));return}await b.mutateAsync({paymentMethodId:ae.payment_method}),i.capture(de.PAYMENT_METHOD_UPDATED),o({type:"success",message:l("paymentCardUpdated")}),k(!1),t==null||t()}catch{M(l("paymentCardGenericError"))}finally{L(!1)}}},Ae=async()=>{if(!r)return;const R=r.getElement("address");if(!R)return;const{complete:pe,value:ae}=await R.getValue();if(!pe||!ae.address){J(l("paymentAddressIncomplete"));return}Z(!0),J(null);try{const{address:me,name:Te}=ae;await C.mutateAsync({lineOne:me.line1??"",lineTwo:me.line2??void 0,city:me.city??"",state:me.state??void 0,postalCode:me.postal_code??"",country:me.country??""});const Be=(Te==null?void 0:Te.trim())||void 0,ra=W.filter(Je=>!!Je.type&&Je.value.trim()!=="").map(Je=>({type:Je.type,value:Je.value.trim()}));(Be!==((g==null?void 0:g.name)??void 0)||le)&&await S.mutateAsync({name:Be,taxIds:ra}),i.capture(de.BILLING_ADDRESS_UPDATED),o({type:"success",message:l("paymentDetailsUpdated")}),t==null||t()}catch(me){const Te=me instanceof Error&&me.message?me.message:l("paymentAddressError");J(Te),o({type:"error",message:l("paymentDetailsUpdateError")})}finally{Z(!1)}};return n.jsxs("div",{className:"bpb-payment-dialog__sections",children:[n.jsxs("section",{className:"bpb-payment-dialog__section",children:[n.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentMethodSection")}),d?n.jsx(Y,{height:56}):X?n.jsxs("div",{className:"bpb-payment-element",children:[!_&&n.jsx(Y,{height:48}),n.jsx("div",{className:_?"bpb-card-element":"bpb-payment-element--hidden",children:n.jsx(Ne.CardElement,{options:{style:_t(e),hidePostalCode:!0},onReady:()=>w(!0),onChange:R=>P(R.complete)})}),B&&n.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:B}),n.jsxs("div",{className:"bpb-payment-dialog__section-actions",children:[y&&n.jsx(he,{variant:"ghost",onClick:()=>k(!1),disabled:x,children:l("cancel")}),n.jsx(he,{variant:"primary",disabled:!f,loading:x,onClick:Le,children:l("paymentSaveCard")})]})]}):n.jsxs("div",{className:"bpb-saved-card",children:[n.jsx(vt,{brand:y.brand}),n.jsxs("span",{className:"bpb-saved-card__number",children:[n.jsx("span",{className:"bpb-saved-card__brand",children:y.brand})," •••• ",y.lastFour]}),n.jsxs("span",{className:"bpb-saved-card__exp",children:[String(y.expMonth).padStart(2,"0"),"/",String(y.expYear).slice(-2)]}),n.jsx("button",{type:"button",className:"bpb-link-button",onClick:()=>k(!0),children:l("paymentReplace")})]})]}),n.jsxs("section",{className:"bpb-payment-dialog__section",children:[n.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentBillingAddressSection")}),u||h?n.jsx(Y,{height:72}):n.jsxs("div",{className:"bpb-payment-element",children:[!Q&&n.jsx(Y,{height:120}),n.jsx("div",{className:Q?void 0:"bpb-payment-element--hidden",children:n.jsx(Ne.AddressElement,{options:{mode:"billing",display:{name:"full"},defaultValues:m?{name:(g==null?void 0:g.name)??void 0,address:{line1:m.lineOne,line2:m.lineTwo,city:m.city,state:m.state,postal_code:m.postalCode,country:m.country}}:void 0},onReady:()=>O(!0),onChange:R=>se(R.value.address.country||void 0)})}),n.jsxs("div",{className:"bpb-tax-section",children:[n.jsxs("button",{type:"button",className:"bpb-tax-toggle","aria-expanded":F,onClick:()=>j(R=>!R),children:[n.jsx(Ba,{size:16,className:U("bpb-tax-toggle__chevron",F&&"bpb-tax-toggle__chevron--open")}),l("paymentTaxIds"),D.length>0&&n.jsx("span",{className:"bpb-tax-toggle__count",children:D.length})]}),F&&n.jsxs("div",{className:"bpb-tax",children:[W.length===0&&n.jsx("p",{className:"bpb-tax__empty",children:l("paymentTaxEmpty")}),W.map((R,pe)=>n.jsxs("div",{className:"bpb-tax__row",children:[n.jsxs(wt,{"aria-label":l("paymentTaxIdType"),value:R.type,onChange:ae=>fe(pe,{type:ae.target.value}),children:[n.jsx("option",{value:"",children:l("paymentTaxSelectType")}),ue.map(ae=>n.jsx("option",{value:ae.type,children:ae.label},ae.type)),R.type&&!ue.some(ae=>ae.type===R.type)&&n.jsx("option",{value:R.type,children:R.type})]}),n.jsx(Ua,{placeholder:l("paymentTaxIdNumber"),value:R.value,onChange:ae=>fe(pe,{value:ae.target.value})}),n.jsx("button",{type:"button",className:"bpb-tax__remove","aria-label":l("paymentTaxRemove"),onClick:()=>ve(pe),children:n.jsx(Ma,{size:14})})]},pe)),n.jsx("button",{type:"button",className:"bpb-link-button bpb-tax__add",onClick:ye,children:l("paymentTaxAdd")})]})]}),q&&n.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:q}),n.jsx("div",{className:"bpb-payment-dialog__section-actions",children:n.jsx(he,{variant:"primary",loading:z,onClick:Ae,children:l("paymentSaveBillingDetails")})})]})]})]})},Zn=(a,e,t)=>`bpb-dismissed:${a}:${e}:${t}`,Xn=()=>new Date().toLocaleDateString("en-CA");function Rn(a,e,t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(Zn(a,e,t))===Xn()}catch{return!1}}function es(a,e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(Zn(a,e,t),Xn())}catch{}}const qa=1e9,as={incoming_messages_events:a=>`${ne(a)} incoming messages & events`,conversation_sessions:a=>`${ne(a)} conversation sessions`,table_rows:a=>`${ne(a)} table rows`,vector_db_storage:a=>`${Ge(a)} vector database storage`,file_storage:a=>`${Ge(a)} file storage`,collaborator_count:a=>a===1?"1 collaborator":`${ne(a)} collaborators`,bot_count:a=>a===1?"1 bot":`${ne(a)} bots`,indexed_file_count:a=>`${ne(a)} indexed files for RAG`,ai_spend:a=>`${ee(a/qa,"usd",0)} AI credit included`,always_alive:a=>a===1?"1 always-alive bot":`${ne(a)} always-alive bots`};function Bo(a,e,t){const s=(t==null?void 0:t[a])??as[a];return s?s(e):`${ne(e)} ${a.replaceAll("_"," ")}`}const ts=[{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 sa(a,e){return e==="bytes"?Ge(a):e==="nano-usd"?`$${(a/qa).toFixed(2)}`:ne(a)}function $a(a){return a>=90?"critical":a>=75?"warning":"normal"}function ha(a){return a?ts.flatMap(({key:e,label:t,unit:s})=>{const r=a[e];if(!r||r.quota<=0)return[];const o=r.usage??0,i=Math.max(0,Math.min(100,o/r.quota*100));return[{key:e,label:t,unit:s,used:o,quota:r.quota,remaining:Math.max(0,r.quota-o),pct:i}]}).sort((e,t)=>t.pct-e.pct):[]}const ns="outgrow-free",Oo=.75,zo=5;function Uo(a,e){return a.prices[e]??(e==="month"?a.prices.year:a.prices.month)??null}function qo(a,e){var r,o;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const s=((o=a.prices.year)==null?void 0:o.amount)??(t===void 0?void 0:t*12);return s===void 0?null:s/12}const $o=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:s="team",interval:r="year",planFeatures:o={},featureDescriptions:i,period:l})=>{var Q,O;const{isOutdatedBilling:c,analytics:d,scope:p}=G(),{t:u}=ie(),{data:g}=xe(),{data:h}=$e(),{data:b}=we({enabled:!c}),{data:C}=Ve({period:l,enabled:!c}),S=a!==void 0,[y,m]=A.useState(!1),D=g==null?void 0:g.find(z=>z.id===(b==null?void 0:b.plan.current.planId)),T=b?D?ce(D)==="community":!0:!1,k=A.useMemo(()=>ha(C).find(z=>z.key==="conversation_sessions"),[C]),_=!S&&!c&&T&&!!k&&k.pct/100>=Oo&&!y&&!Rn(ns,p,"modal"),w=S?!!a:_;A.useEffect(()=>{w&&d.capture(de.PLAN_PICKER_VIEWED,{source:S?"outgrow_free":"outgrow_free_auto",interval:r})},[w,S,d]);const f=()=>{S||(es(ns,p,"modal"),m(!0)),e==null||e(!1)},P=A.useMemo(()=>g?g.filter(z=>{const Z=ce(z);return Z!=="community"&&Z!=="enterprise"&&Z!=="managed"}).sort((z,Z)=>Ke.indexOf(ce(z))-Ke.indexOf(ce(Z))):[],[g]),x=((O=(Q=g==null?void 0:g.find(z=>ce(z)==="enterprise"))==null?void 0:Q.metadata)==null?void 0:O.contact_url)??pt;if(c||!w)return null;const L=(k==null?void 0:k.quota)??(D==null?void 0:D.features.conversation_sessions)??100,B=(k==null?void 0:k.used)??0,M=k&&k.pct>0?Math.min(100,Math.max(5,Math.round(k.pct))):0;return n.jsx(ke,{open:w,onOpenChange:f,size:"xl","aria-label":u("outgrowTitle"),children:n.jsxs("div",{className:"bpb-outgrow",children:[n.jsxs("header",{className:"bpb-outgrow__head",children:[n.jsx("h2",{className:"bpb-outgrow__title",children:u("outgrowTitle")}),n.jsx("p",{className:"bpb-outgrow__lede",children:n.jsx(Ut,{i18nKey:"outgrowLede",values:{quota:ne(L)},components:{bold:n.jsx("strong",{})}})})]}),n.jsxs("div",{className:"bpb-outgrow__usage",children:[n.jsx("span",{className:"bpb-outgrow__usage-label",children:u("outgrowSoFar")}),n.jsx("span",{className:"bpb-outgrow__usage-bar",role:"progressbar","aria-valuenow":M,"aria-valuemin":0,"aria-valuemax":100,children:n.jsx("span",{className:"bpb-outgrow__usage-fill",style:{width:`${M}%`}})}),n.jsx("span",{className:"bpb-outgrow__usage-text",children:n.jsx(Ut,{i18nKey:"outgrowUsageText",values:{used:ne(B),quota:ne(L)},components:{bold:n.jsx("strong",{})}})})]}),n.jsx("div",{className:"bpb-outgrow__grid",children:P.map((z,Z)=>{const q=ce(z),J=Uo(z,r),N=qo(z,r),se=q===s||z.id===s,F=z.features.conversation_sessions,j=Pa(h,z,r),H=Z>0?P[Z-1]:void 0,$=(o[q]??Fa[q]).slice(0,zo);return n.jsxs("div",{className:U("bpb-plan-card",se&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":z.id,children:[n.jsxs("div",{className:"bpb-plan-card__header",children:[n.jsxs("h3",{className:"bpb-plan-card__name",children:[re(z.name),se&&n.jsx(Ea,{className:"bpb-plan-card__badge",children:u("upgradeRecommended")})]}),n.jsx("div",{className:"bpb-plan-card__price",children:N!==null&&J?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"bpb-plan-card__currency",children:ua(J.currency)}),n.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(N)?N:N.toFixed(2).replace(/\.00$/,"")}),n.jsx("span",{className:"bpb-plan-card__per",children:u("perMonth")})]}):n.jsxs("span",{className:"bpb-plan-card__amount",children:[ua((J==null?void 0:J.currency)??"usd"),"0"]})})]}),F!==void 0&&n.jsxs("div",{className:"bpb-outgrow__allowance",children:[n.jsxs("p",{className:"bpb-outgrow__allowance-value",children:[n.jsxs("strong",{children:[ne(F)," ",u("conversationsUnit")]})," ",u("perMonth")]}),n.jsx("p",{className:"bpb-outgrow__allowance-pack",children:j?u("outgrowThenPer",{symbol:ua(j.currency),amount:j.amount,packSize:ne(j.packSize)}):u("outgrowNoTopup")})]}),n.jsxs(he,{variant:se?"accent":"outline",block:!0,onClick:()=>{d.capture(de.PLAN_UPGRADE_INITIATED,{plan_name:re(z.name),interval:r,source:"outgrow_free"}),t(z.id,r),f()},children:[u("outgrowUpgradeTo",{planName:re(z.name)}),se&&n.jsx(Oa,{size:15})]}),n.jsxs("ul",{className:"bpb-plan-card__features",children:[H&&n.jsx("li",{className:"bpb-outgrow__features-lead",children:u("outgrowEverythingIn",{planName:re(H.name)})}),$.map(W=>{const ue=za(W),le=gt[W],X=le!==void 0?u(le.label):W,fe=(i==null?void 0:i[W])??(le!==void 0?u(le.desc):void 0);return n.jsxs("li",{children:[n.jsx("span",{className:"bpb-plan-card__feature-chip",children:n.jsx(ue,{size:13})}),fe?n.jsx(ma,{label:X,children:fe}):n.jsx("span",{children:X})]},W)})]})]},z.id)})}),n.jsxs("footer",{className:"bpb-outgrow__footer",children:[n.jsxs("span",{children:[u("outgrowNeedCustom")," ",n.jsx("a",{href:x,target:"_blank",rel:"noopener noreferrer",children:u("outgrowTalkToSales")})]}),n.jsxs("a",{className:"bpb-outgrow__compare",href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:[u("outgrowCompareAll"),n.jsx(ga,{size:14})]})]})]})})},Ie=(a,e)=>e==="bytes"?Ge(a):e==="nano-usd"?`$${(a/qa).toFixed(2)}`:ne(a),Vo=(a,e)=>{const t=new Date;return Array.from({length:a},(s,r)=>{const o=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()-r,1));return{value:o.toISOString(),label:o.toLocaleDateString(e,{month:"long",year:"numeric",timeZone:"UTC"})}})},jo=({period:a})=>{const{data:e,isLoading:t,isError:s}=an("ai_spend",{period:a}),{t:r}=ie();if(s)return null;if(t)return n.jsx(Y,{height:96});if(!e||e.length===0)return n.jsx("p",{className:"bpb-usage__group-hint",children:r("dashboardNoBotSpend")});const o=Math.max(...e.map(i=>i.value),1);return n.jsx("div",{className:"bpb-usage-bots",children:e.map(i=>n.jsxs("div",{className:"bpb-usage-bot",children:[n.jsxs("div",{className:"bpb-usage-bot__head",children:[n.jsx("span",{className:"bpb-usage-bot__name",title:i.name,children:i.name}),n.jsx("span",{className:"bpb-usage-bot__value",children:Ie(i.value,"nano-usd")})]}),n.jsx("div",{className:"bpb-usage-bar",role:"presentation",children:n.jsx("div",{className:"bpb-usage-bar__fill bpb-usage-bar__fill--normal",style:{width:`${i.value>0?Math.max(2,Math.round(i.value/o*100)):0}%`}})})]},i.botId))})},At=({entry:a,metric:e,planAllowance:t,planName:s,stacked:r})=>{const{t:o}=ie(),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",p=t??a.quota,u=Math.max(0,a.quota-p),g=u>0?s?o("dashboardFromPlanWithAddons",{amount:Ie(p,e.unit),planName:s,addonAmount:Ie(u,e.unit)}):o("dashboardFromPlanGenericWithAddons",{amount:Ie(p,e.unit),addonAmount:Ie(u,e.unit)}):s?o("dashboardFromPlan",{amount:Ie(a.quota,e.unit),planName:s}):o("dashboardFromPlanGeneric",{amount:Ie(a.quota,e.unit)});return n.jsxs("div",{className:"bpb-usage-row",children:[n.jsxs("div",{className:U("bpb-usage-row__head",r&&"bpb-usage-row__head--stacked"),children:[n.jsx("span",{className:"bpb-usage-row__label",children:e.label}),n.jsxs("span",{className:"bpb-usage-row__value",children:[n.jsx("span",{className:"bpb-usage-row__used",children:Ie(i,e.unit)}),n.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",Ie(a.quota,e.unit)]})]})]}),n.jsxs("span",{className:"bpb-usage-tip",tabIndex:0,role:"note","aria-label":g,onMouseMove:h=>{const b=h.currentTarget.getBoundingClientRect(),C=(h.clientX-b.left)/b.width*100;h.currentTarget.style.setProperty("--bpb-tip-x",`${C}%`)},children:[n.jsx("div",{className:"bpb-usage-bar",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,children:n.jsx("div",{className:U("bpb-usage-bar__fill",`bpb-usage-bar__fill--${d}`),style:{width:`${c}%`}})}),n.jsx("span",{className:"bpb-usage-tip__bubble",role:"tooltip",children:g})]})]})},Wo=({period:a,showPeriodSelector:e=!0,periodMonths:t=12,className:s})=>{var P;const{isOutdatedBilling:r,locale:o}=G(),{t:i}=ie(),l=A.useMemo(()=>Vo(t,o),[t,o]),[c,d]=A.useState(a??((P=l[0])==null?void 0:P.value)??""),p=tn(),u=Math.max(0,l.findIndex(x=>x.value===c)),g=x=>{const L=l[u+x];L&&d(L.value)},{data:h,isLoading:b,isError:C}=Ve({period:c,enabled:!r}),{data:S}=we({enabled:!r}),{data:y}=xe(),m=y==null?void 0:y.find(x=>x.id===(S==null?void 0:S.plan.current.planId)),D=m?re(m.name):void 0,T=x=>m==null?void 0:m.features[x];if(r)return n.jsx("div",{className:U("bpb-usage bpb-scope",s),children:n.jsx(Ye,{})});if(b)return n.jsxs("div",{className:U("bpb-usage bpb-scope",s),"aria-busy":"true",children:[n.jsx(Y,{height:80}),n.jsx(Y,{height:140})]});if(C||!h)return n.jsx("div",{className:U("bpb-usage bpb-scope",s),children:n.jsx("p",{className:"bpb-usage__error",role:"alert",children:i("dashboardLoadError")})});const k=h.conversation_sessions,_=h.ai_spend,f=[{key:"table_rows",label:i("dashboardTableRows"),unit:"count"},{key:"vector_db_storage",label:i("dashboardVectorDb"),unit:"bytes"},{key:"file_storage",label:i("dashboardFileStorage"),unit:"bytes"}].filter(x=>h[x.key]);return n.jsxs("div",{className:U("bpb-usage bpb-scope",s),children:[e&&l.length>1&&n.jsx("div",{className:"bpb-usage__header",children:n.jsxs("div",{className:"bpb-usage__period",children:[n.jsx("span",{className:"bpb-usage__period-label",children:i("dashboardBillingPeriod")}),n.jsxs("div",{className:"bpb-usage__period-control",children:[n.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":i("dashboardPrevMonth"),onClick:()=>g(1),disabled:u>=l.length-1,children:n.jsx(ft,{size:15})}),n.jsxs("span",{className:"bpb-usage__period-field",children:[n.jsx(jn,{size:15,className:"bpb-usage__period-icon"}),n.jsx("select",{className:"bpb-usage__period-select","aria-label":i("dashboardBillingPeriod"),value:c,onChange:x=>d(x.target.value),children:l.map(x=>n.jsx("option",{value:x.value,children:x.label},x.value))}),n.jsx(Ba,{size:14,className:"bpb-usage__period-chevron"})]}),n.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":i("dashboardNextMonth"),onClick:()=>g(-1),disabled:u<=0,children:n.jsx(He,{size:15})})]})]})}),k&&n.jsxs("section",{className:"bpb-usage__group",children:[n.jsx("h3",{className:"bpb-usage__group-title",children:i("dashboardConversationsTitle")}),n.jsx("p",{className:"bpb-usage__group-hint",children:i("dashboardConversationsHint")}),n.jsx("div",{className:"bpb-usage__card",children:n.jsx(At,{entry:k,metric:{key:"conversation_sessions",label:i("dashboardConversationsMetric"),unit:"count"},planAllowance:T("conversation_sessions"),planName:D,stacked:!0})})]}),f.length>0&&n.jsxs("section",{className:"bpb-usage__group",children:[n.jsx("h3",{className:"bpb-usage__group-title",children:i("dashboardStorageTitle")}),n.jsx("p",{className:"bpb-usage__group-hint",children:i("dashboardStorageHint")}),n.jsx("div",{className:"bpb-usage__card",children:f.map(x=>n.jsx(At,{entry:h[x.key],metric:x,planAllowance:T(x.key),planName:D},x.key))})]}),_&&n.jsxs("section",{className:"bpb-usage__group",children:[n.jsx("h3",{className:"bpb-usage__group-title",children:i("dashboardAiTitle")}),n.jsx("p",{className:"bpb-usage__group-hint",children:i("dashboardAiHint")}),n.jsx("div",{className:"bpb-usage__card",children:n.jsx(At,{entry:_,metric:{key:"ai_spend",label:i("dashboardAiSpend"),unit:"nano-usd"},stacked:!0})}),p&&n.jsxs("div",{className:"bpb-usage__card bpb-usage__card--bots",children:[n.jsx("span",{className:"bpb-usage__subhead",children:i("dashboardAiByBot")}),n.jsx(jo,{period:c})]})]})]})},ss="usage-banner",Go=({position:a="inline",threshold:e=.9,onUpgrade:t,dismissible:s=!0,ctaLabel:r,period:o,className:i})=>{const{isOutdatedBilling:l,analytics:c,scope:d}=G(),{t:p}=ie(),{data:u}=Ve({period:o,enabled:!l}),[g,h]=A.useState({}),[b,C]=A.useState(!1),[S,y]=A.useState(null),m=u?Object.entries(u).map(([x,L])=>({key:x,pct:L.quota>0?(L.usage??0)/L.quota:0})).filter(x=>x.pct>=e).sort((x,L)=>L.pct-x.pct)[0]:void 0,D=!!m&&(g[m.key]||Rn(ss,d,m.key));if(l||!m||D)return null;const k={conversation_sessions:p("metricConversations"),table_rows:p("metricTableRows"),vector_db_storage:p("metricVectorDb"),file_storage:p("metricFileStorage"),ai_spend:p("metricAiSpend")}[m.key]??m.key.replace(/_/g," "),_=Math.min(100,Math.round(m.pct*100)),w=m.pct>=1,f=()=>{c.capture(de.UPGRADE_CTA_CLICKED,{source:"usage_banner",metric:m.key,usage_pct:Math.round(m.pct*100)}),t?t():C(!0)},P=w?"critical":"warning";return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:U("bpb-usage-banner bpb-scope",`bpb-usage-banner--${a}`,`bpb-usage-banner--${P}`,i),role:"alert","aria-live":"polite",children:[n.jsx(Vn,{size:18,className:"bpb-usage-banner__icon"}),n.jsx("p",{className:"bpb-usage-banner__text",children:w?p("usageBannerLimitReached",{label:k}):p("usageBannerNearLimit",{pct:_,label:k})}),n.jsxs("div",{className:"bpb-usage-banner__actions",children:[n.jsx(he,{variant:"primary",size:"sm",onClick:f,children:r??p("usageBannerDefaultCta")}),s&&n.jsx("button",{type:"button",className:"bpb-usage-banner__dismiss","aria-label":p("usageBannerDismiss"),onClick:()=>{es(ss,d,m.key),h(x=>({...x,[m.key]:!0}))},children:n.jsx(Ma,{size:16})})]})]}),!t&&n.jsxs(n.Fragment,{children:[n.jsx(Gn,{open:b,onOpenChange:C,onSelectPlan:(x,L)=>{C(!1),y({planId:x,interval:L})}}),S&&n.jsx(Jn,{open:!!S,onOpenChange:x=>!x&&y(null),planId:S.planId,interval:S.interval,onBack:()=>{y(null),C(!0)},onSuccess:()=>y(null)})]})]})},Ko=({Icon:a,title:e,description:t,onClick:s,className:r})=>n.jsxs("button",{type:"button",className:U("bpb-action-card bpb-scope",r),onClick:s,children:[n.jsxs("div",{className:"bpb-action-card__header",children:[n.jsx(a,{size:20}),e]}),n.jsx("p",{className:"bpb-action-card__description",children:t})]}),Tt=({children:a})=>n.jsx("span",{className:"bpb-summary-card__icon","aria-hidden":"true",children:a}),rs=({isAddons:a,className:e})=>{const{manageBillingUrl:t}=G(),{t:s}=ie(),r=()=>t&&window.open(t,"_blank","noopener");return n.jsxs("button",{type:"button",className:U("bpb-summary-card bpb-scope",a?"bpb-summary-card--addons":"bpb-summary-card--plan",e),onClick:r,disabled:!t,children:[n.jsx(Tt,{children:a?n.jsx(La,{size:22}):n.jsx(Ia,{size:22})}),n.jsxs("div",{className:"bpb-summary-card__content",children:[n.jsxs("div",{className:"bpb-summary-card__body",children:[n.jsx("span",{className:"bpb-summary-card__eyebrow",children:s(a?"summaryAddonsEyebrow":"summaryCurrentPlan")}),n.jsx("span",{className:"bpb-summary-card__title",children:s("summaryManagedInDashboard")}),n.jsx("span",{className:"bpb-summary-card__meta",children:s("summaryManagedMeta")})]}),n.jsxs("span",{className:"bpb-summary-card__action",children:[s("open"),n.jsx(ga,{size:15})]})]})]})},Ho=({onManage:a,className:e})=>{var C,S;const{isOutdatedBilling:t}=G(),{t:s}=ie(),{data:r,isLoading:o}=we({enabled:!t}),{data:i,isLoading:l}=xe();if(t)return n.jsx(rs,{isAddons:!1,className:e});if(o||l)return n.jsx(Y,{height:84,rounded:!0,className:U("bpb-scope",e)});const c=r==null?void 0:r.plan.current,d=i==null?void 0:i.find(y=>y.id===(c==null?void 0:c.planId)),p=(c==null?void 0:c.interval)??"month",u=((C=d==null?void 0:d.prices[p])==null?void 0:C.amount)??0,g=((S=d==null?void 0:d.prices[p])==null?void 0:S.currency)??"usd",h=d==null?void 0:d.features.conversation_sessions,b=d?ce(d):"community";return n.jsxs("button",{type:"button",className:U("bpb-summary-card bpb-summary-card--plan bpb-scope",`bpb-summary-card--tier-${b==="managed"?"enterprise":b}`,e),onClick:a,children:[n.jsx(Tt,{children:n.jsx(Ia,{size:22})}),n.jsxs("div",{className:"bpb-summary-card__content",children:[n.jsxs("div",{className:"bpb-summary-card__body",children:[n.jsx("span",{className:"bpb-summary-card__eyebrow",children:s("summaryCurrentPlan")}),n.jsx("span",{className:"bpb-summary-card__title",children:d?re(d.name):s("summaryNoPlan")}),n.jsxs("span",{className:"bpb-summary-card__meta",children:[u>0?`${ee(u,g,0)}${s(p==="year"?"perYear":"perMonth")}`:s("free"),h!==void 0&&` · ${s("summaryConversationsPerMo",{n:ne(h)})}`]})]}),n.jsxs("span",{className:"bpb-summary-card__action",children:[s("manage"),n.jsx(He,{size:16})]})]})]})},Yo=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=G(),{t:s}=ie(),{data:r,isLoading:o}=we({enabled:!t}),{data:i,isLoading:l}=$e();if(t)return n.jsx(rs,{isAddons:!0,className:e});if(o||l)return n.jsx(Y,{height:84,rounded:!0,className:U("bpb-scope",e)});const c=(i??[]).flatMap(d=>{var u;const p=((u=r==null?void 0:r.addons[d.id])==null?void 0:u.current.quantity)??0;return p>0?[{name:qe[d.id]?s(qe[d.id]):pa(d.name),quantity:p}]:[]});return n.jsxs("button",{type:"button",className:U("bpb-summary-card bpb-summary-card--addons bpb-scope",c.length>0&&"bpb-summary-card--active",e),onClick:a,children:[n.jsx(Tt,{children:n.jsx(La,{size:22})}),n.jsxs("div",{className:"bpb-summary-card__content",children:[n.jsxs("div",{className:"bpb-summary-card__body",children:[n.jsx("span",{className:"bpb-summary-card__eyebrow",children:s("summaryAddonsEyebrow")}),c.length>0?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"bpb-summary-card__title",children:c.length>1?s("summaryActiveAddons",{count:c.length}):s("summaryActiveAddon",{count:c.length})}),n.jsx("span",{className:"bpb-summary-card__meta",children:c.map(d=>`${d.quantity}× ${d.name}`).join(" · ")})]}):n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"bpb-summary-card__title",children:s("summaryNoAddons")}),n.jsx("span",{className:"bpb-summary-card__meta",children:s("summaryNoAddonsMeta")})]})]}),n.jsxs("span",{className:"bpb-summary-card__action",children:[s("manage"),n.jsx(He,{size:16})]})]})]})},Jo=({onManage:a,className:e})=>{var L,B;const{isOutdatedBilling:t,locale:s,manageBillingUrl:r,analytics:o}=G(),{t:i}=ie(),{data:l,isLoading:c}=we({enabled:!t}),{data:d,isLoading:p}=xe(),{data:u,isLoading:g}=$e();if(t){const M=()=>r&&window.open(r,"_blank","noopener");return n.jsxs("button",{type:"button",className:U("bpb-plan-banner bpb-plan-banner--community bpb-scope",e),onClick:M,disabled:!r,children:[n.jsxs("div",{className:"bpb-plan-banner__main",children:[n.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),n.jsx("span",{className:"bpb-plan-banner__name",children:i("planBannerManagedTitle")}),n.jsx("span",{className:"bpb-plan-banner__sub",children:i("planBannerManagedSub")})]}),n.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("open")," ",n.jsx(ga,{size:16})]})]})}if(c||p||g)return n.jsx(Y,{height:132,rounded:!0,className:U("bpb-scope",e)});const h=l==null?void 0:l.plan.current,b=d==null?void 0:d.find(M=>M.id===(h==null?void 0:h.planId)),C=(h==null?void 0:h.interval)??"month",S=((L=b==null?void 0:b.prices[C])==null?void 0:L.currency)??"usd",y=b?ce(b):"community",m=Object.fromEntries(Object.entries((l==null?void 0:l.addons)??{}).map(([M,Q])=>{var O;return[M,((O=Q.current)==null?void 0:O.quantity)??0]})),D=((B=b==null?void 0:b.prices[C])==null?void 0:B.amount)??0,T=(u??[]).reduce((M,Q)=>{const O=b?xa(Q,b,C):null;return M+(m[Q.id]??0)*((O==null?void 0:O.amount)??0)},0),k=D+T,_=C==="year"?"/yr":"/mo",w=Fn(b,u,m).find(M=>M.key==="conversation_sessions"),f=i(y==="community"?"conversationsUnit":"conversationsPerMonth"),P=h!=null&&h.periodEnd?Ee(h.periodEnd,s):null,x=y==="enterprise"||y==="managed";return n.jsxs("button",{type:"button",className:U("bpb-plan-banner",`bpb-plan-banner--${y}`,"bpb-scope",e),onClick:()=>{o.capture(de.UPGRADE_CTA_CLICKED,{source:"plan_banner",current_tier:y}),a()},children:[n.jsxs("div",{className:"bpb-plan-banner__main",children:[n.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),n.jsx("span",{className:"bpb-plan-banner__name",children:b?re(b.name):i("planBannerNoPlan")}),w&&n.jsx("span",{className:"bpb-plan-banner__sub",children:w.added>0?n.jsxs(n.Fragment,{children:[ne(w.base)," + ",ne(w.added)," ",f]}):`${ne(w.total)} ${f}`})]}),n.jsxs("div",{className:"bpb-plan-banner__summary",children:[x?n.jsx("span",{className:"bpb-plan-banner__price",children:i("planBannerCustomPricing")}):n.jsxs("span",{className:"bpb-plan-banner__price",children:[k>0?ee(k,S,0):i("free"),k>0&&n.jsx("span",{className:"bpb-plan-banner__price-suffix",children:_})]}),n.jsxs("span",{className:"bpb-plan-banner__meta",children:[i(C==="year"?"billedAnnually":"billedMonthly"),T>0&&` ${i("planBannerInclAddons")}`]}),P&&n.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerRenews",{date:P})})]}),n.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("planBannerManageCta")," ",n.jsx(He,{size:16})]})]})},Qo=({onManage:a,period:e,variant:t="card",className:s,style:r})=>{const{isOutdatedBilling:o,locale:i}=G(),{t:l}=ie(),{data:c,isLoading:d}=we({enabled:!o}),{data:p,isLoading:u}=xe(),{data:g,isLoading:h}=Ve({period:e,enabled:!o});if(o)return null;if(d||u||h)return n.jsx(Y,{height:72,rounded:!0,className:U("bpb-scope",s)});const b=p==null?void 0:p.find(M=>M.id===(c==null?void 0:c.plan.current.planId)),C=ha(g),S=C.find(M=>M.key==="conversation_sessions"),y=C[0],m=y&&y.key!=="conversation_sessions"&&y.pct>=75?y:S??y,D=m?Math.round(m.pct):0,T=D>0?Math.max(5,D):0,k=m?$a(m.pct):"normal",_=k!=="normal",w=b?ce(b)==="community":!1,f=c!=null&&c.plan.current.periodEnd?Ee(c.plan.current.periodEnd,i):null;let P=null,x=null;if(m&&_){const M=sa(m.remaining,m.unit);P=l(k==="critical"?"usageWidgetLimitReached":"usageWidgetRunningLow"),w&&m.key==="conversation_sessions"?x=k==="critical"?l("usageWidgetFreeExhausted"):l("usageWidgetFreeLeft",{left:M}):x=k==="critical"?l("usageWidgetUpgradeToKeepGoing"):l("usageWidgetOnlyLeft",{left:M})}const L=n.jsx(n.Fragment,{children:m?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"bpb-plan-usage__head",children:[_&&n.jsx(Vn,{size:16,className:U("bpb-plan-usage__alert",`bpb-plan-usage__alert--${k}`)}),n.jsx("span",{className:"bpb-plan-usage__plan",children:m.label}),n.jsxs("span",{className:"bpb-plan-usage__count",children:[sa(m.used,m.unit)," / ",sa(m.quota,m.unit)]}),a&&!_&&n.jsx(He,{size:15,className:"bpb-plan-usage__chevron"})]}),n.jsx("div",{className:"bpb-plan-usage__bar",role:"progressbar","aria-valuenow":D,"aria-valuemin":0,"aria-valuemax":100,children:n.jsx("div",{className:U("bpb-plan-usage__fill",`bpb-plan-usage__fill--${k}`),style:{width:`${T}%`}})}),P?n.jsxs("p",{className:"bpb-plan-usage__status",children:[n.jsxs("strong",{className:U("bpb-plan-usage__status-word",`bpb-plan-usage__status-word--${k}`),children:[P,"."]})," ",x&&n.jsx("span",{className:"bpb-plan-usage__status-detail",children:x})]}):f&&n.jsx("span",{className:"bpb-plan-usage__reset",children:l("usageWidgetResets",{date:f})}),a&&_&&n.jsxs("span",{className:"bpb-plan-usage__cta",children:[l("usageWidgetViewOptions"),n.jsx(Oa,{size:14})]})]}):n.jsxs("div",{className:"bpb-plan-usage__head",children:[n.jsx("span",{className:"bpb-plan-usage__plan",children:b?re(b.name):l("free")}),a&&n.jsx(He,{size:15,className:"bpb-plan-usage__chevron"})]})}),B=U("bpb-plan-usage bpb-scope",`bpb-plan-usage--${t}`,_&&`bpb-plan-usage--${k}`,a&&"bpb-plan-usage--clickable",s);return a?n.jsx("button",{type:"button",className:B,style:r,onClick:a,children:L}):n.jsx("div",{className:B,style:r,children:L})},os=({children:a,delay:e=200,placement:t="top",period:s,onUpgrade:r,block:o=!1,className:i})=>{const{isOutdatedBilling:l,locale:c,analytics:d}=G(),{data:p}=Ve({period:s,enabled:!l}),{data:u}=we({enabled:!l}),{data:g}=xe(),[h,b]=A.useState(!1),C=A.useRef(null),S=()=>{C.current&&(clearTimeout(C.current),C.current=null)};A.useEffect(()=>S,[]);const y=ha(p),m=!l&&y.length>0,D=()=>{m&&(S(),C.current=setTimeout(()=>b(!0),Math.max(0,e)))},T=()=>{S(),b(!1)},k=g==null?void 0:g.find(B=>B.id===(u==null?void 0:u.plan.current.planId)),_=k?re(k.name):"Free",w=u!=null&&u.plan.current.periodEnd?Ee(u.plan.current.periodEnd,c):null,f=k?ce(k)==="community":!k,P=f?y.find(B=>B.key==="conversation_sessions"):void 0,x=f&&!!r,L=()=>{d.capture(de.UPGRADE_CTA_CLICKED,{source:"usage_popover"}),r==null||r()};return n.jsxs("span",{className:U("bpb-usage-pop bpb-scope",o&&"bpb-usage-pop--block",i),onMouseEnter:D,onMouseLeave:T,onFocus:D,onBlur:T,children:[a,h&&m&&n.jsxs("span",{className:U("bpb-usage-pop__card",`bpb-usage-pop__card--${t}`),role:"tooltip",children:[f?n.jsxs("span",{className:"bpb-usage-pop__header",children:[n.jsx("span",{className:"bpb-usage-pop__plan-name",children:"Free plan usage"}),P&&n.jsxs("span",{className:"bpb-usage-pop__subtitle",children:[n.jsxs("strong",{children:[ne(P.quota)," conversations"]})," included, total. They do not renew, and Free has no top-ups."]})]}):n.jsxs(n.Fragment,{children:[n.jsxs("span",{className:"bpb-usage-pop__plan",children:[n.jsxs("span",{className:"bpb-usage-pop__plan-name",children:[_," plan"]}),w&&n.jsxs("span",{className:"bpb-usage-pop__reset",children:["Resets ",w]})]}),n.jsx("span",{className:"bpb-usage-pop__title",children:"Usage this period"})]}),y.map(B=>{const M=B.pct>0?Math.max(5,B.pct):0;return n.jsxs("span",{className:"bpb-usage-pop__item",children:[n.jsxs("span",{className:"bpb-usage-pop__head",children:[n.jsx("span",{className:"bpb-usage-pop__name",children:B.label}),n.jsxs("span",{className:"bpb-usage-pop__val",children:[sa(B.used,B.unit)," / ",sa(B.quota,B.unit)]})]}),n.jsx("span",{className:"bpb-usage-pop__bar",children:n.jsx("span",{className:U("bpb-usage-pop__fill",`bpb-usage-pop__fill--${$a(B.pct)}`),style:{width:`${M}%`}})})]},B.key)}),x&&n.jsxs("span",{className:"bpb-usage-pop__nudge",children:[n.jsxs("span",{className:"bpb-usage-pop__nudge-text",children:[n.jsx("strong",{children:"Need more room?"})," Plus includes 250 conversations a month, unlimited AI agents, and packs of 100 when you need them."]}),n.jsxs("button",{type:"button",className:"bpb-usage-pop__nudge-cta",onClick:L,children:["See what you get with Plus",n.jsx(Oa,{size:14})]})]})]})]})},Zo=({size:a=20,thickness:e=3.5,showLabel:t=!1,onClick:s,popoverDelay:r=200,period:o,className:i,...l})=>{const{isOutdatedBilling:c}=G(),{data:d}=Ve({period:o,enabled:!c}),p=ha(d);if(c||p.length===0)return null;const u=p[0],g=$a(u.pct),h=u.pct>0?Math.max(5,u.pct):0,b=(a-e)/2,C=2*Math.PI*b,S=C*(1-h/100),y=l["aria-label"]??`${Math.round(u.pct)}% of your ${u.label.toLowerCase()} used`,m=n.jsxs(n.Fragment,{children:[n.jsxs("svg",{className:"bpb-usage-ring__svg",width:a,height:a,viewBox:`0 0 ${a} ${a}`,"aria-hidden":!0,children:[n.jsx("circle",{className:"bpb-usage-ring__track",cx:a/2,cy:a/2,r:b,fill:"none",strokeWidth:e}),n.jsx("circle",{className:U("bpb-usage-ring__arc",`bpb-usage-ring__arc--${g}`),cx:a/2,cy:a/2,r:b,fill:"none",strokeWidth:e,strokeLinecap:"round",strokeDasharray:C,strokeDashoffset:S,transform:`rotate(-90 ${a/2} ${a/2})`})]}),t&&n.jsxs("span",{className:"bpb-usage-ring__label",children:[Math.round(u.pct),"%"]})]}),D=U("bpb-usage-ring",s&&"bpb-usage-ring--clickable"),T=s?n.jsx("button",{type:"button",className:D,onClick:s,"aria-label":y,children:m}):n.jsx("span",{className:D,tabIndex:0,role:"img","aria-label":y,children:m});return n.jsx(os,{delay:r,period:o,className:i,children:T})};v.AddonsSummaryCard=Yo,v.ArrowRightIcon=Oa,v.BILLING_EVENTS=de,v.Badge=Ea,v.BankIcon=go,v.BillingActionCard=Ko,v.BillingProvider=br,v.BoltIcon=La,v.Button=he,v.CalendarIcon=jn,v.CardBrandBadge=vt,v.CardIcon=bt,v.ChartIcon=On,v.CheckIcon=En,v.CheckoutDialog=Jn,v.ChevronDownIcon=Ba,v.ChevronLeftIcon=ft,v.ChevronRightIcon=He,v.CloseIcon=Ma,v.DEFAULT_FEATURE_LABELS=as,v.DEFAULT_PLAN_FEATURES=Fa,v.Dialog=ke,v.DownloadIcon=yt,v.ENTERPRISE_CONTACT_URL=pt,v.ExternalLinkIcon=ga,v.GlobeIcon=zn,v.InfinityIcon=Mn,v.InfoTooltip=ma,v.Input=Ua,v.InvoicesDialog=Eo,v.LayersIcon=Ia,v.LockIcon=mo,v.ManageAddonsDialog=Po,v.MessageIcon=In,v.MinusIcon=qn,v.NANO_DOLLARS_PER_DOLLAR=qa,v.OutdatedBillingGate=Ye,v.OutgrowFreeDialog=$o,v.PLAN_FEATURE_KEYS=gt,v.PLAN_ORDER=Ke,v.PaintIcon=Un,v.PaymentMethodDialog=Lo,v.PlanBanner=Jo,v.PlanSummaryCard=Ho,v.PlanUsageWidget=Qo,v.PlusIcon=$n,v.PuzzleIcon=Ln,v.ReceiptIcon=bo,v.SegmentedControl=Wn,v.Select=wt,v.ShieldIcon=ht,v.Skeleton=Y,v.SparkleIcon=mt,v.Stepper=Qn,v.USAGE_METRICS=ts,v.UpgradePlanDialog=Gn,v.UsageBanner=Go,v.UsageDashboard=Wo,v.UsagePopover=os,v.UsageRing=Zo,v.UsersIcon=Bn,v.addDays=An,v.addonDisplayName=pa,v.addonLimitsPreview=Pn,v.addonPrice=xa,v.billingKeys=ge,v.cn=U,v.conversationPackPrice=Pa,v.conversationsAddon=Dn,v.currencySymbol=ua,v.featureLabel=Bo,v.formatBytes=Ge,v.formatCurrency=ee,v.formatDate=Ee,v.formatQuantity=ne,v.formatUsage=sa,v.getCardElementStyle=_t,v.getStripeAppearance=Nt,v.getStripePromise=xt,v.iconForFeature=za,v.planDisplayName=re,v.planEntitlements=Fn,v.planKind=ce,v.toStripeLocale=kt,v.usageItems=ha,v.usageTier=$a,v.useAddons=$e,v.useBilling=G,v.useBillingAddress=et,v.useBillingReadonly=tt,v.useCreatePaymentMethodIntent=nt,v.useCustomer=at,v.useInvoices=en,v.usePaymentMethod=Ra,v.usePlans=xe,v.useSetAddons=nn,v.useSetBillingAddress=rt,v.useSetCustomer=ot,v.useSetPaymentMethod=st,v.useSetSubscription=it,v.useSubscription=we,v.useSubscriptionPreview=Xa,v.useSupportsUsageByBot=tn,v.useUsage=Ve,v.useUsageByBot=an,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(v,n){typeof exports=="object"&&typeof module<"u"?n(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"],n):(v=typeof globalThis<"u"?globalThis:v||self,n(v.BillingUI={},v.ReactJsxRuntime,v.ReactQuery,v.React,v.StripeJs,v.ReactDOM,v.ReactStripeJs))})(this,function(v,n,re,A,gs,hs,we){"use strict";var si=Object.defineProperty;var ri=(v,n,re)=>n in v?si(v,n,{enumerable:!0,configurable:!0,writable:!0,value:re}):v[n]=re;var ms=(v,n,re)=>ri(v,typeof n!="symbol"?n+"":n,re);const xt=new Map;function Pt(a){let e=xt.get(a);return e||(e=gs.loadStripe(a,{developerTools:{assistant:{enabled:!1}}}),xt.set(a,e)),e}function bs(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var fs={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 ys=bs(fs);var vs=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function Ft(a){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=a.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(e.name=t[1],(ys[t[1]]||a.charAt(a.length-2)==="/")&&(e.voidElement=!0),e.name.startsWith("!--"))){var s=a.indexOf("-->");return{type:"comment",comment:s!==-1?a.slice(4,s):""}}for(var r=new RegExp(vs),o=null;(o=r.exec(a))!==null;)if(o[0].trim())if(o[1]){var i=o[1].trim(),l=[i,""];i.indexOf("=")>-1&&(l=i.split("=")),e.attrs[l[0]]=l[1],r.lastIndex--}else o[2]&&(e.attrs[o[2]]=o[3].trim().substring(1,o[3].length-1));return e}var Cs=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,Ss=/^\s*$/,Ns=Object.create(null);function It(a,e){switch(e.type){case"text":return a+e.content;case"tag":return a+="<"+e.name+(e.attrs?function(t){var s=[];for(var r in t)s.push(r+'="'+t[r]+'"');return s.length?" "+s.join(" "):""}(e.attrs):"")+(e.voidElement?"/>":">"),e.voidElement?a:a+e.children.reduce(It,"")+"</"+e.name+">";case"comment":return a+"<!--"+e.comment+"-->"}}var _s={parse:function(a,e){e||(e={}),e.components||(e.components=Ns);var t,s=[],r=[],o=-1,i=!1;if(a.indexOf("<")!==0){var l=a.indexOf("<");s.push({type:"text",content:l===-1?a:a.substring(0,l)})}return a.replace(Cs,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 C=Ft(c);return o<0?(s.push(C),s):((u=r[o]).children.push(C),s)}if(p&&(o++,(t=Ft(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))}),o===0&&s.push(t),(u=r[o-1])&&u.children.push(t),r[o]=t),(!p||t.voidElement)&&(o>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(o--,t=o===-1?s:r[o]),!i&&b!=="<"&&b)){u=o===-1?s:r[o].children;var S=a.indexOf("<",h),y=a.slice(h,S===-1?void 0:S);Ss.test(y)&&(y=" "),(S>-1&&o+u.length>=0||y!==" ")&&u.push({type:"text",content:y})}}),s},stringify:function(a){return a.reduce(function(e,t){return e+It("",t)},"")}};function ba(){if(console&&console.warn){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];ke(e[0])&&(e[0]=`react-i18next:: ${e[0]}`),console.warn(...e)}}const Lt={};function fa(){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];ke(e[0])&&Lt[e[0]]||(ke(e[0])&&(Lt[e[0]]=new Date),ba(...e))}const Et=(a,e)=>()=>{if(a.isInitialized)e();else{const t=()=>{setTimeout(()=>{a.off("initialized",t)},0),e()};a.on("initialized",t)}},Bt=(a,e,t)=>{a.loadNamespaces(e,Et(a,t))},Mt=(a,e,t,s)=>{ke(t)&&(t=[t]),t.forEach(r=>{a.options.ns.indexOf(r)<0&&a.options.ns.push(r)}),a.loadLanguages(e,Et(a,s))},ws=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const s=e.languages[0],r=e.options?e.options.fallbackLng:!1,o=e.languages[e.languages.length-1];if(s.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(s,a)||!e.services.backendConnector.backend||e.options.resources&&!e.options.partialBundledLanguages||i(s,a)&&(!r||i(o,a)))},ks=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(fa("i18n.languages were undefined or empty",e.languages),!0):e.options.ignoreJSONStructure!==void 0?e.hasLoadedNamespace(a,{lng:t.lng,precheck:(r,o)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&r.services.backendConnector.backend&&r.isLanguageChangingTo&&!o(r.isLanguageChangingTo,a))return!1}}):ws(a,e,t)},ke=a=>typeof a=="string",ea=a=>typeof a=="object"&&a!==null,As=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Ts={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},Ds=a=>Ts[a];let Va={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:a=>a.replace(As,Ds)};const xs=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Va={...Va,...a}},zt=()=>Va;let Ot;const Ps=a=>{Ot=a},ja=()=>Ot,Wa=(a,e)=>{if(!a)return!1;const t=a.props?a.props.children:a.children;return e?t.length>0:!!t},Ga=a=>{if(!a)return[];const e=a.props?a.props.children:a.children;return a.props&&a.props.i18nIsDynamicList?aa(e):e},Fs=a=>Array.isArray(a)&&a.every(A.isValidElement),aa=a=>Array.isArray(a)?a:[a],Is=(a,e)=>{const t={...e};return t.props=Object.assign(a.props,e.props),t},Ut=(a,e)=>{if(!a)return"";let t="";const s=aa(a),r=e.transSupportBasicHtmlNodes&&e.transKeepBasicHtmlNodesFor?e.transKeepBasicHtmlNodesFor:[];return s.forEach((o,i)=>{if(ke(o))t+=`${o}`;else if(A.isValidElement(o)){const{props:l,type:c}=o,d=Object.keys(l).length,u=r.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&&ke(p))t+=`<${c}>${p}</${c}>`;else{const m=Ut(p,e);t+=`<${i}>${m}</${i}>`}}else if(o===null)ba("Trans: the passed in value is invalid - seems you passed in a null child.");else if(ea(o)){const{format:l,...c}=o,d=Object.keys(c);if(d.length===1){const u=l?`${d[0]}, ${l}`:d[0];t+=`{{${u}}}`}else ba("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",o)}else ba("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",o)}),t},Ls=(a,e,t,s,r,o)=>{if(e==="")return[];const i=s.transKeepBasicHtmlNodesFor||[],l=e&&new RegExp(i.map(S=>`<${S}`).join("|")).test(e);if(!a&&!l&&!o)return[e];const c={},d=S=>{aa(S).forEach(g=>{ke(g)||(Wa(g)?d(Ga(g)):ea(g)&&!A.isValidElement(g)&&Object.assign(c,g))})};d(a);const u=_s.parse(`<0>${e}</0>`),p={...c,...r},m=(S,y,g)=>{const T=Ga(S),D=b(T,y.children,g);return Fs(T)&&D.length===0||S.props&&S.props.i18nIsDynamicList?T:D},h=(S,y,g,T,D)=>{S.dummy?(S.children=y,g.push(A.cloneElement(S,{key:T},D?void 0:y))):g.push(...A.Children.map([S],w=>{const _={...w.props};return delete _.i18nIsDynamicList,A.createElement(w.type,{..._,key:T,ref:w.ref},D?null:y)}))},b=(S,y,g)=>{const T=aa(S);return aa(y).reduce((w,_,k)=>{const f=_.children&&_.children[0]&&_.children[0].content&&t.services.interpolator.interpolate(_.children[0].content,p,t.language);if(_.type==="tag"){let P=T[parseInt(_.name,10)];g.length===1&&!P&&(P=g[0][_.name]),P||(P={});const F=Object.keys(_.attrs).length!==0?Is({props:_.attrs},P):P,x=A.isValidElement(F),M=x&&Wa(_,!0)&&!_.voidElement,W=l&&ea(F)&&F.dummy&&!x,Z=ea(a)&&Object.hasOwnProperty.call(a,_.name);if(ke(F)){const V=t.services.interpolator.interpolate(F,p,t.language);w.push(V)}else if(Wa(F)||M){const V=m(F,_,g);h(F,V,w,k)}else if(W){const V=b(T,_.children,g);h(F,V,w,k)}else if(Number.isNaN(parseFloat(_.name)))if(Z){const V=m(F,_,g);h(F,V,w,k,_.voidElement)}else if(s.transSupportBasicHtmlNodes&&i.indexOf(_.name)>-1)if(_.voidElement)w.push(A.createElement(_.name,{key:`${_.name}-${k}`}));else{const V=b(T,_.children,g);w.push(A.createElement(_.name,{key:`${_.name}-${k}`},V))}else if(_.voidElement)w.push(`<${_.name} />`);else{const V=b(T,_.children,g);w.push(`<${_.name}>${V}</${_.name}>`)}else if(ea(F)&&!x){const V=_.children[0]?f:null;V&&w.push(V)}else h(F,f,w,k,_.children.length!==1||!f)}else if(_.type==="text"){const P=s.transWrapTextNodes,F=o?s.unescape(t.services.interpolator.interpolate(_.content,p,t.language)):t.services.interpolator.interpolate(_.content,p,t.language);P?w.push(A.createElement(P,{key:`${_.name}-${k}`},F)):w.push(F)}return w},[])},C=b([{dummy:!0,children:a||[]}],u,aa(a||[]));return Ga(C[0])};function Es(a){let{children:e,count:t,parent:s,i18nKey:r,context:o,tOptions:i={},values:l,defaults:c,components:d,ns:u,i18n:p,t:m,shouldUnescape:h,...b}=a;const C=p||ja();if(!C)return fa("You will need to pass in an i18next instance by using i18nextReactModule"),e;const S=m||C.t.bind(C)||(M=>M),y={...zt(),...C.options&&C.options.react};let g=u||S.ns||C.options&&C.options.defaultNS;g=ke(g)?[g]:g||["translation"];const T=Ut(e,y),D=c||T||y.transEmptyNodeValue||r,{hashTransKey:w}=y,_=r||(w?w(T||D):T||D);C.options&&C.options.interpolation&&C.options.interpolation.defaultVariables&&(l=l&&Object.keys(l).length>0?{...l,...C.options.interpolation.defaultVariables}:{...C.options.interpolation.defaultVariables});const k=l||t!==void 0||!e?i.interpolation:{interpolation:{...i.interpolation,prefix:"#$?",suffix:"?$#"}},f={...i,context:o||i.context,count:t,...l,...k,defaultValue:D,ns:g},P=_?S(_,f):D;d&&Object.keys(d).forEach(M=>{const W=d[M];if(typeof W.type=="function"||!W.props||!W.props.children||P.indexOf(`${M}/>`)<0&&P.indexOf(`${M} />`)<0)return;function Z(){return A.createElement(A.Fragment,null,W)}d[M]=A.createElement(Z)});const F=Ls(d||e,P,C,y,f,h),x=s!==void 0?s:y.defaultTransParent;return x?A.createElement(x,b,F):F}const Bs={type:"3rdParty",init(a){xs(a.options.react),Ps(a)}},Ka=A.createContext();class Ms{constructor(){ms(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}}function qt(a){let{children:e,count:t,parent:s,i18nKey:r,context:o,tOptions:i={},values:l,defaults:c,components:d,ns:u,i18n:p,t:m,shouldUnescape:h,...b}=a;const{i18n:C,defaultNS:S}=A.useContext(Ka)||{},y=p||C||ja(),g=m||y&&y.t.bind(y);return Es({children:e,count:t,parent:s,i18nKey:r,context:o,tOptions:i,values:l,defaults:c,components:d,ns:u||g&&g.ns||S||y&&y.options&&y.options.defaultNS,i18n:y,t:m,shouldUnescape:h,...b})}const zs=(a,e)=>{const t=A.useRef();return A.useEffect(()=>{t.current=a},[a,e]),t.current},$t=(a,e,t,s)=>a.getFixedT(e,t,s),Os=(a,e,t,s)=>A.useCallback($t(a,e,t,s),[a,e,t,s]),oe=function(a){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:s,defaultNS:r}=A.useContext(Ka)||{},o=t||s||ja();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new Ms),!o){fa("You will need to pass in an i18next instance by using initReactI18next");const D=(_,k)=>ke(k)?k:ea(k)&&ke(k.defaultValue)?k.defaultValue:Array.isArray(_)?_[_.length-1]:_,w=[D,{},!1];return w.t=D,w.i18n={},w.ready=!1,w}o.options.react&&o.options.react.wait!==void 0&&fa("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const i={...zt(),...o.options.react,...e},{useSuspense:l,keyPrefix:c}=i;let d=r||o.options&&o.options.defaultNS;d=ke(d)?[d]:d||["translation"],o.reportNamespaces.addUsedNamespaces&&o.reportNamespaces.addUsedNamespaces(d);const u=(o.isInitialized||o.initializedStoreOnce)&&d.every(D=>ks(D,o,i)),p=Os(o,e.lng||null,i.nsMode==="fallback"?d:d[0],c),m=()=>p,h=()=>$t(o,e.lng||null,i.nsMode==="fallback"?d:d[0],c),[b,C]=A.useState(m);let S=d.join();e.lng&&(S=`${e.lng}${S}`);const y=zs(S),g=A.useRef(!0);A.useEffect(()=>{const{bindI18n:D,bindI18nStore:w}=i;g.current=!0,!u&&!l&&(e.lng?Mt(o,e.lng,d,()=>{g.current&&C(h)}):Bt(o,d,()=>{g.current&&C(h)})),u&&y&&y!==S&&g.current&&C(h);const _=()=>{g.current&&C(h)};return D&&o&&o.on(D,_),w&&o&&o.store.on(w,_),()=>{g.current=!1,D&&o&&D.split(" ").forEach(k=>o.off(k,_)),w&&o&&w.split(" ").forEach(k=>o.store.off(k,_))}},[o,S]),A.useEffect(()=>{g.current&&u&&C(m)},[o,c,u]);const T=[b,o,u];if(T.t=b,T.i18n=o,T.ready=u,u||!u&&!l)return T;throw new Promise(D=>{e.lng?Mt(o,e.lng,d,()=>D()):Bt(o,d,()=>D())})};function Us(a){let{i18n:e,defaultNS:t,children:s}=a;const r=A.useMemo(()=>({i18n:e,defaultNS:t}),[e,t]);return A.createElement(Ka.Provider,{value:r},s)}const q=a=>typeof a=="string",oa=()=>{let a,e;const t=new Promise((s,r)=>{a=s,e=r});return t.resolve=a,t.reject=e,t},Vt=a=>a==null?"":""+a,qs=(a,e,t)=>{a.forEach(s=>{e[s]&&(t[s]=e[s])})},$s=/###/g,jt=a=>a&&a.indexOf("###")>-1?a.replace($s,"."):a,Wt=a=>!a||q(a),ia=(a,e,t)=>{const s=q(e)?e.split("."):e;let r=0;for(;r<s.length-1;){if(Wt(a))return{};const o=jt(s[r]);!a[o]&&t&&(a[o]=new t),Object.prototype.hasOwnProperty.call(a,o)?a=a[o]:a={},++r}return Wt(a)?{}:{obj:a,k:jt(s[r])}},Gt=(a,e,t)=>{const{obj:s,k:r}=ia(a,e,Object);if(s!==void 0||e.length===1){s[r]=t;return}let o=e[e.length-1],i=e.slice(0,e.length-1),l=ia(a,i,Object);for(;l.obj===void 0&&i.length;)o=`${i[i.length-1]}.${o}`,i=i.slice(0,i.length-1),l=ia(a,i,Object),l&&l.obj&&typeof l.obj[`${l.k}.${o}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${o}`]=t},Vs=(a,e,t,s)=>{const{obj:r,k:o}=ia(a,e,Object);r[o]=r[o]||[],r[o].push(t)},ya=(a,e)=>{const{obj:t,k:s}=ia(a,e);if(t)return t[s]},js=(a,e,t)=>{const s=ya(a,t);return s!==void 0?s:ya(e,t)},Kt=(a,e,t)=>{for(const s in e)s!=="__proto__"&&s!=="constructor"&&(s in a?q(a[s])||a[s]instanceof String||q(e[s])||e[s]instanceof String?t&&(a[s]=e[s]):Kt(a[s],e[s],t):a[s]=e[s]);return a},ta=a=>a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var Ws={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const Gs=a=>q(a)?a.replace(/[&<>"'\/]/g,e=>Ws[e]):a;class Ks{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 s=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,s),this.regExpQueue.push(e),s}}const Hs=[" ",",","?","!",";"],Ys=new Ks(20),Js=(a,e,t)=>{e=e||"",t=t||"";const s=Hs.filter(i=>e.indexOf(i)<0&&t.indexOf(i)<0);if(s.length===0)return!0;const r=Ys.getRegExp(`(${s.map(i=>i==="?"?"\\?":i).join("|")})`);let o=!r.test(a);if(!o){const i=a.indexOf(t);i>0&&!r.test(a.substring(0,i))&&(o=!0)}return o},Ha=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!a)return;if(a[e])return a[e];const s=e.split(t);let r=a;for(let o=0;o<s.length;){if(!r||typeof r!="object")return;let i,l="";for(let c=o;c<s.length;++c)if(c!==o&&(l+=t),l+=s[c],i=r[l],i!==void 0){if(["string","number","boolean"].indexOf(typeof i)>-1&&c<s.length-1)continue;o+=c-o+1;break}r=i}return r},va=a=>a&&a.replace("_","-"),Qs={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 Ca{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||Qs,this.options=t,this.debug=t.debug}log(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"log","",!0)}warn(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"warn","",!0)}error(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"error","")}deprecate(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,s,r){return r&&!this.debug?null:(q(e[0])&&(e[0]=`${s}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new Ca(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new Ca(this.logger,e)}}var xe=new Ca;class Sa{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(s=>{this.observers[s]||(this.observers[s]=new Map);const r=this.observers[s].get(t)||0;this.observers[s].set(t,r+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),r=1;r<t;r++)s[r-1]=arguments[r];this.observers[e]&&Array.from(this.observers[e].entries()).forEach(i=>{let[l,c]=i;for(let d=0;d<c;d++)l(...s)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(i=>{let[l,c]=i;for(let d=0;d<c;d++)l.apply(l,[e,...s])})}}class Ht extends Sa{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,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,i=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;e.indexOf(".")>-1?l=e.split("."):(l=[e,t],s&&(Array.isArray(s)?l.push(...s):q(s)&&o?l.push(...s.split(o)):l.push(s)));const c=ya(this.data,l);return!c&&!t&&!s&&e.indexOf(".")>-1&&(e=l[0],t=l[1],s=l.slice(2).join(".")),c||!i||!q(s)?c:Ha(this.data&&this.data[e]&&this.data[e][t],s,o)}addResource(e,t,s,r){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator;let l=[e,t];s&&(l=l.concat(i?s.split(i):s)),e.indexOf(".")>-1&&(l=e.split("."),r=t,t=l[1]),this.addNamespaces(t),Gt(this.data,l,r),o.silent||this.emit("added",e,t,s,r)}addResources(e,t,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const o in s)(q(s[o])||Array.isArray(s[o]))&&this.addResource(e,t,o,s[o],{silent:!0});r.silent||this.emit("added",e,t,s)}addResourceBundle(e,t,s,r,o){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},l=[e,t];e.indexOf(".")>-1&&(l=e.split("."),r=s,s=t,t=l[1]),this.addNamespaces(t);let c=ya(this.data,l)||{};i.skipCopy||(s=JSON.parse(JSON.stringify(s))),r?Kt(c,s,o):c={...c,...s},Gt(this.data,l,c),i.silent||this.emit("added",e,t,s)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(e,t)}:this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(r=>t[r]&&Object.keys(t[r]).length>0)}toJSON(){return this.data}}var Yt={processors:{},addPostProcessor(a){this.processors[a.name]=a},handle(a,e,t,s,r){return a.forEach(o=>{this.processors[o]&&(e=this.processors[o].process(e,t,s,r))}),e}};const Jt={};class Na extends Sa{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),qs(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=xe.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(e==null)return!1;const s=this.resolve(e,t);return s&&s.res!==void 0}extractFromKey(e,t){let s=t.nsSeparator!==void 0?t.nsSeparator:this.options.nsSeparator;s===void 0&&(s=":");const r=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let o=t.ns||this.options.defaultNS||[];const i=s&&e.indexOf(s)>-1,l=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!Js(e,s,r);if(i&&!l){const c=e.match(this.interpolator.nestingRegexp);if(c&&c.length>0)return{key:e,namespaces:q(o)?[o]:o};const d=e.split(s);(s!==r||s===r&&this.options.ns.indexOf(d[0])>-1)&&(o=d.shift()),e=d.join(r)}return{key:e,namespaces:q(o)?[o]:o}}translate(e,t,s){if(typeof t!="object"&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),typeof t=="object"&&(t={...t}),t||(t={}),e==null)return"";Array.isArray(e)||(e=[String(e)]);const r=t.returnDetails!==void 0?t.returnDetails:this.options.returnDetails,o=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator,{key:i,namespaces:l}=this.extractFromKey(e[e.length-1],t),c=l[l.length-1],d=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&d.toLowerCase()==="cimode"){if(u){const D=t.nsSeparator||this.options.nsSeparator;return r?{res:`${c}${D}${i}`,usedKey:i,exactUsedKey:i,usedLng:d,usedNS:c,usedParams:this.getUsedParamsDetails(t)}:`${c}${D}${i}`}return r?{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,C=Object.prototype.toString.apply(m),S=["[object Number]","[object Function]","[object RegExp]"],y=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,g=!this.i18nFormat||this.i18nFormat.handleAsObject,T=!q(m)&&typeof m!="boolean"&&typeof m!="number";if(g&&m&&T&&S.indexOf(C)<0&&!(q(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 D=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,m,{...t,ns:l}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(p.res=D,p.usedParams=this.getUsedParamsDetails(t),p):D}if(o){const D=Array.isArray(m),w=D?[]:{},_=D?b:h;for(const k in m)if(Object.prototype.hasOwnProperty.call(m,k)){const f=`${_}${o}${k}`;w[k]=this.translate(f,{...t,joinArrays:!1,ns:l}),w[k]===f&&(w[k]=m[k])}m=w}}else if(g&&q(y)&&Array.isArray(m))m=m.join(y),m&&(m=this.extendTranslation(m,e,t,s));else{let D=!1,w=!1;const _=t.count!==void 0&&!q(t.count),k=Na.hasDefaultValue(t),f=_?this.pluralResolver.getSuffix(d,t.count,t):"",P=t.ordinal&&_?this.pluralResolver.getSuffix(d,t.count,{ordinal:!1}):"",F=_&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),x=F&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${f}`]||t[`defaultValue${P}`]||t.defaultValue;!this.isValidLookup(m)&&k&&(D=!0,m=x),this.isValidLookup(m)||(w=!0,m=i);const W=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&w?void 0:m,Z=k&&x!==m&&this.options.updateMissing;if(w||D||Z){if(this.logger.log(Z?"updateKey":"missingKey",d,c,i,Z?x:m),o){const B=this.resolve(i,{...t,keySeparator:!1});B&&B.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 V=[];const z=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&z&&z[0])for(let B=0;B<z.length;B++)V.push(z[B]);else this.options.saveMissingTo==="all"?V=this.languageUtils.toResolveHierarchy(t.lng||this.language):V.push(t.lng||this.language);const J=(B,$,N)=>{const le=k&&N!==m?N:W;this.options.missingKeyHandler?this.options.missingKeyHandler(B,c,$,le,Z,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(B,c,$,le,Z,t),this.emit("missingKey",B,c,$,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&_?V.forEach(B=>{const $=this.pluralResolver.getSuffixes(B,t);F&&t[`defaultValue${this.options.pluralSeparator}zero`]&&$.indexOf(`${this.options.pluralSeparator}zero`)<0&&$.push(`${this.options.pluralSeparator}zero`),$.forEach(N=>{J([B],i+N,t[`defaultValue${N}`]||x)})}):J(V,i,x))}m=this.extendTranslation(m,e,t,p,s),w&&m===i&&this.options.appendNamespaceToMissingKey&&(m=`${c}:${i}`),(w||D)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${c}:${i}`:i,D?m:void 0):m=this.options.parseMissingKeyHandler(m))}return r?(p.res=m,p.usedParams=this.getUsedParamsDetails(t),p):m}extendTranslation(e,t,s,r,o){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...s},s.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!s.skipInterpolation){s.interpolation&&this.interpolator.init({...s,interpolation:{...this.options.interpolation,...s.interpolation}});const d=q(e)&&(s&&s.interpolation&&s.interpolation.skipOnVariables!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let u;if(d){const m=e.match(this.interpolator.nestingRegexp);u=m&&m.length}let p=s.replace&&!q(s.replace)?s.replace:s;if(this.options.interpolation.defaultVariables&&(p={...this.options.interpolation.defaultVariables,...p}),e=this.interpolator.interpolate(e,p,s.lng||this.language||r.usedLng,s),d){const m=e.match(this.interpolator.nestingRegexp),h=m&&m.length;u<h&&(s.nest=!1)}!s.lng&&this.options.compatibilityAPI!=="v1"&&r&&r.res&&(s.lng=this.language||r.usedLng),s.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 o&&o[0]===h[0]&&!s.context?(i.logger.warn(`It seems you are nesting recursively key: ${h[0]} in key: ${t[0]}`),null):i.translate(...h,t)},s)),s.interpolation&&this.interpolator.reset()}const l=s.postProcess||this.options.postProcess,c=q(l)?[l]:l;return e!=null&&c&&c.length&&s.applyPostProcessor!==!1&&(e=Yt.handle(c,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(s)},...s}:s,this)),e}resolve(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s,r,o,i,l;return q(e)&&(e=[e]),e.forEach(c=>{if(this.isValidLookup(s))return;const d=this.extractFromKey(c,t),u=d.key;r=u;let p=d.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const m=t.count!==void 0&&!q(t.count),h=m&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),b=t.context!==void 0&&(q(t.context)||typeof t.context=="number")&&t.context!=="",C=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);p.forEach(S=>{this.isValidLookup(s)||(l=S,!Jt[`${C[0]}-${S}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(l)&&(Jt[`${C[0]}-${S}`]=!0,this.logger.warn(`key "${r}" for languages "${C.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!!!")),C.forEach(y=>{if(this.isValidLookup(s))return;i=y;const g=[u];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(g,u,y,S,t);else{let D;m&&(D=this.pluralResolver.getSuffix(y,t.count,t));const w=`${this.options.pluralSeparator}zero`,_=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(m&&(g.push(u+D),t.ordinal&&D.indexOf(_)===0&&g.push(u+D.replace(_,this.options.pluralSeparator)),h&&g.push(u+w)),b){const k=`${u}${this.options.contextSeparator}${t.context}`;g.push(k),m&&(g.push(k+D),t.ordinal&&D.indexOf(_)===0&&g.push(k+D.replace(_,this.options.pluralSeparator)),h&&g.push(k+w))}}let T;for(;T=g.pop();)this.isValidLookup(s)||(o=T,s=this.getResource(y,S,T,t))}))})}),{res:s,usedKey:r,exactUsedKey:o,usedLng:i,usedNS:l}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,s,r):this.resourceStore.getResource(e,t,s,r)}getUsedParamsDetails(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],s=e.replace&&!q(e.replace);let r=s?e.replace:e;if(s&&typeof e.count<"u"&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!s){r={...r};for(const o of t)delete r[o]}return r}static hasDefaultValue(e){const t="defaultValue";for(const s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&t===s.substring(0,t.length)&&e[s]!==void 0)return!0;return!1}}const Ya=a=>a.charAt(0).toUpperCase()+a.slice(1);class Qt{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=xe.create("languageUtils")}getScriptPartFromCode(e){if(e=va(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=va(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(q(e)&&e.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let r=Intl.getCanonicalLocales(e)[0];if(r&&this.options.lowerCaseLng&&(r=r.toLowerCase()),r)return r}catch{}const t=["hans","hant","latn","cyrl","cans","mong","arab"];let s=e.split("-");return this.options.lowerCaseLng?s=s.map(r=>r.toLowerCase()):s.length===2?(s[0]=s[0].toLowerCase(),s[1]=s[1].toUpperCase(),t.indexOf(s[1].toLowerCase())>-1&&(s[1]=Ya(s[1].toLowerCase()))):s.length===3&&(s[0]=s[0].toLowerCase(),s[1].length===2&&(s[1]=s[1].toUpperCase()),s[0]!=="sgn"&&s[2].length===2&&(s[2]=s[2].toUpperCase()),t.indexOf(s[1].toLowerCase())>-1&&(s[1]=Ya(s[1].toLowerCase())),t.indexOf(s[2].toLowerCase())>-1&&(s[2]=Ya(s[2].toLowerCase()))),s.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(s=>{if(t)return;const r=this.formatLanguageCode(s);(!this.options.supportedLngs||this.isSupportedCode(r))&&(t=r)}),!t&&this.options.supportedLngs&&e.forEach(s=>{if(t)return;const r=this.getLanguagePartFromCode(s);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(o=>{if(o===r)return o;if(!(o.indexOf("-")<0&&r.indexOf("-")<0)&&(o.indexOf("-")>0&&r.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===r||o.indexOf(r)===0&&r.length>1))return o})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),q(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let s=e[t];return s||(s=e[this.getScriptPartFromCode(t)]),s||(s=e[this.formatLanguageCode(t)]),s||(s=e[this.getLanguagePartFromCode(t)]),s||(s=e.default),s||[]}toResolveHierarchy(e,t){const s=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],o=i=>{i&&(this.isSupportedCode(i)?r.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return q(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(e))):q(e)&&o(this.formatLanguageCode(e)),s.forEach(i=>{r.indexOf(i)<0&&o(this.formatLanguageCode(i))}),r}}let Zs=[{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}],Xs={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 Rs=["v1","v2","v3"],er=["v4"],Zt={zero:0,one:1,two:2,few:3,many:4,other:5},ar=()=>{const a={};return Zs.forEach(e=>{e.lngs.forEach(t=>{a[t]={numbers:e.nr,plurals:Xs[e.fc]}})}),a};class tr{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=xe.create("pluralResolver"),(!this.options.compatibilityJSON||er.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=ar(),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 s=va(e==="dev"?"en":e),r=t.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:s,type:r});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];let i;try{i=new Intl.PluralRules(s,{type:r})}catch{if(!e.match(/-|_/))return;const c=this.languageUtils.getLanguagePartFromCode(e);i=this.getRule(c,t)}return this.pluralRulesCache[o]=i,i}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const s=this.getRule(e,t);return this.shouldUseIntlApi()?s&&s.resolvedOptions().pluralCategories.length>1:s&&s.numbers.length>1}getPluralFormsOfKey(e,t){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(e,s).map(r=>`${t}${r}`)}getSuffixes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const s=this.getRule(e,t);return s?this.shouldUseIntlApi()?s.resolvedOptions().pluralCategories.sort((r,o)=>Zt[r]-Zt[o]).map(r=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${r}`):s.numbers.map(r=>this.getSuffix(e,r,t)):[]}getSuffix(e,t){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=this.getRule(e,s);return r?this.shouldUseIntlApi()?`${this.options.prepend}${s.ordinal?`ordinal${this.options.prepend}`:""}${r.select(t)}`:this.getSuffixRetroCompatible(r,t):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,t){const s=e.noAbs?e.plurals(t):e.plurals(Math.abs(t));let r=e.numbers[s];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(r===2?r="plural":r===1&&(r=""));const o=()=>this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString();return this.options.compatibilityJSON==="v1"?r===1?"":typeof r=="number"?`_plural_${r.toString()}`:o():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?o():this.options.prepend&&s.toString()?this.options.prepend+s.toString():s.toString()}shouldUseIntlApi(){return!Rs.includes(this.options.compatibilityJSON)}}const Xt=function(a,e,t){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=js(a,e,t);return!o&&r&&q(t)&&(o=Ha(a,t,s),o===void 0&&(o=Ha(e,t,s))),o},Ja=a=>a.replace(/\$/g,"$$$$");class nr{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=xe.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(t=>t),this.init(e)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:s,useRawValueToEscape:r,prefix:o,prefixEscaped:i,suffix:l,suffixEscaped:c,formatSeparator:d,unescapeSuffix:u,unescapePrefix:p,nestingPrefix:m,nestingPrefixEscaped:h,nestingSuffix:b,nestingSuffixEscaped:C,nestingOptionsSeparator:S,maxReplaces:y,alwaysFormat:g}=e.interpolation;this.escape=t!==void 0?t:Gs,this.escapeValue=s!==void 0?s:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=o?ta(o):i||"{{",this.suffix=l?ta(l):c||"}}",this.formatSeparator=d||",",this.unescapePrefix=u?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=m?ta(m):h||ta("$t("),this.nestingSuffix=b?ta(b):C||ta(")"),this.nestingOptionsSeparator=S||",",this.maxReplaces=y||1e3,this.alwaysFormat=g!==void 0?g:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,s)=>t&&t.source===s?(t.lastIndex=0,t):new RegExp(s,"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,s,r){let o,i,l;const c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},d=h=>{if(h.indexOf(this.formatSeparator)<0){const y=Xt(t,c,h,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(y,void 0,s,{...r,...t,interpolationkey:h}):y}const b=h.split(this.formatSeparator),C=b.shift().trim(),S=b.join(this.formatSeparator).trim();return this.format(Xt(t,c,C,this.options.keySeparator,this.options.ignoreJSONStructure),S,s,{...r,...t,interpolationkey:C})};this.resetRegExp();const u=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,p=r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:h=>Ja(h)},{regex:this.regexp,safeValue:h=>this.escapeValue?Ja(this.escape(h)):Ja(h)}].forEach(h=>{for(l=0;o=h.regex.exec(e);){const b=o[1].trim();if(i=d(b),i===void 0)if(typeof u=="function"){const S=u(e,o,r);i=q(S)?S:""}else if(r&&Object.prototype.hasOwnProperty.call(r,b))i="";else if(p){i=o[0];continue}else this.logger.warn(`missed to pass in variable ${b} for interpolating ${e}`),i="";else!q(i)&&!this.useRawValueToEscape&&(i=Vt(i));const C=h.safeValue(i);if(e=e.replace(o[0],C),p?(h.regex.lastIndex+=i.length,h.regex.lastIndex-=o[0].length):h.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),e}nest(e,t){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,o,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(C){return this.logger.warn(`failed parsing options string in nesting for key ${c}`,C),`${c}${u}${m}`}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,c};for(;r=this.nestingRegexp.exec(e);){let c=[];i={...s},i=i.replace&&!q(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;let d=!1;if(r[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(r[1])){const u=r[1].split(this.formatSeparator).map(p=>p.trim());r[1]=u.shift(),c=u,d=!0}if(o=t(l.call(this,r[1].trim(),i),i),o&&r[0]===e&&!q(o))return o;q(o)||(o=Vt(o)),o||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),o=""),d&&(o=c.reduce((u,p)=>this.format(u,p,s.lng,{...s,interpolationkey:r[1].trim()}),o.trim())),e=e.replace(r[0],o),this.regexp.lastIndex=0}return e}}const sr=a=>{let e=a.toLowerCase().trim();const t={};if(a.indexOf("(")>-1){const s=a.split("(");e=s[0].toLowerCase().trim();const r=s[1].substring(0,s[1].length-1);e==="currency"&&r.indexOf(":")<0?t.currency||(t.currency=r.trim()):e==="relativetime"&&r.indexOf(":")<0?t.range||(t.range=r.trim()):r.split(";").forEach(i=>{if(i){const[l,...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}},na=a=>{const e={};return(t,s,r)=>{let o=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(o={...o,[r.interpolationkey]:void 0});const i=s+JSON.stringify(o);let l=e[i];return l||(l=a(va(s),r),e[i]=l),l(t)}};class rr{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=xe.create("formatter"),this.options=e,this.formats={number:na((t,s)=>{const r=new Intl.NumberFormat(t,{...s});return o=>r.format(o)}),currency:na((t,s)=>{const r=new Intl.NumberFormat(t,{...s,style:"currency"});return o=>r.format(o)}),datetime:na((t,s)=>{const r=new Intl.DateTimeFormat(t,{...s});return o=>r.format(o)}),relativetime:na((t,s)=>{const r=new Intl.RelativeTimeFormat(t,{...s});return o=>r.format(o,s.range||"day")}),list:na((t,s)=>{const r=new Intl.ListFormat(t,{...s});return o=>r.format(o)})},this.init(e)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=na(t)}format(e,t,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=t.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&o[0].indexOf(")")<0&&o.find(l=>l.indexOf(")")>-1)){const l=o.findIndex(c=>c.indexOf(")")>-1);o[0]=[o[0],...o.splice(1,l)].join(this.formatSeparator)}return o.reduce((l,c)=>{const{formatName:d,formatOptions:u}=sr(c);if(this.formats[d]){let p=l;try{const m=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},h=m.locale||m.lng||r.locale||r.lng||s;p=this.formats[d](l,h,{...u,...r,...m})}catch(m){this.logger.warn(m)}return p}else this.logger.warn(`there was no format function for ${d}`);return l},e)}}const or=(a,e)=>{a.pending[e]!==void 0&&(delete a.pending[e],a.pendingCount--)};class ir extends Sa{constructor(e,t,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=e,this.store=t,this.services=s,this.languageUtils=s.languageUtils,this.options=r,this.logger=xe.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(s,r.backend,r)}queueLoad(e,t,s,r){const o={},i={},l={},c={};return e.forEach(d=>{let u=!0;t.forEach(p=>{const m=`${d}|${p}`;!s.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),o[m]===void 0&&(o[m]=!0),c[p]===void 0&&(c[p]=!0)))}),u||(l[d]=!0)}),(Object.keys(o).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(o),pending:Object.keys(i),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(c)}}loaded(e,t,s){const r=e.split("|"),o=r[0],i=r[1];t&&this.emit("failedLoading",o,i,t),!t&&s&&this.store.addResourceBundle(o,i,s,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&s&&(this.state[e]=0);const l={};this.queue.forEach(c=>{Vs(c.loaded,[o],i),or(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,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:s,tried:r,wait:o,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&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,s,r+1,o*2,i)},o);return}i(d,u)},c=this.backend[s].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 s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();q(e)&&(e=this.languageUtils.toResolveHierarchy(e)),q(t)&&(t=[t]);const o=this.queueLoad(e,t,s,r);if(!o.toLoad.length)return o.pending.length||r(),null;o.toLoad.forEach(i=>{this.loadOne(i)})}load(e,t,s){this.prepareLoading(e,t,{},s)}reload(e,t,s){this.prepareLoading(e,t,{reload:!0},s)}loadOne(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const s=e.split("|"),r=s[0],o=s[1];this.read(r,o,"read",void 0,void 0,(i,l)=>{i&&this.logger.warn(`${t}loading namespace ${o} for language ${r} failed`,i),!i&&l&&this.logger.log(`${t}loaded namespace ${o} for language ${r}`,l),this.loaded(e,i,l)})}saveMissing(e,t,s,r,o){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},l=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${s}" 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(!(s==null||s==="")){if(this.backend&&this.backend.create){const c={...i,isUpdate:o},d=this.backend.create.bind(this.backend);if(d.length<6)try{let u;d.length===5?u=d(e,t,s,r,c):u=d(e,t,s,r),u&&typeof u.then=="function"?u.then(p=>l(null,p)).catch(l):l(null,u)}catch(u){l(u)}else d(e,t,s,r,l,c)}!e||!e[0]||this.store.addResource(e[0],t,s,r)}}}const Rt=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:a=>{let e={};if(typeof a[1]=="object"&&(e=a[1]),q(a[1])&&(e.defaultValue=a[1]),q(a[2])&&(e.tDescription=a[2]),typeof a[2]=="object"||typeof a[3]=="object"){const t=a[3]||a[2];Object.keys(t).forEach(s=>{e[s]=t[s]})}return e},interpolation:{escapeValue:!0,format:a=>a,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),en=a=>(q(a.ns)&&(a.ns=[a.ns]),q(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),q(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs&&a.supportedLngs.indexOf("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),a),_a=()=>{},lr=a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(t=>{typeof a[t]=="function"&&(a[t]=a[t].bind(a))})};class la extends Sa{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=en(e),this.services={},this.logger=xe,this.modules={external:[]},lr(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]:{},s=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof t=="function"&&(s=t,t={}),!t.defaultNS&&t.defaultNS!==!1&&t.ns&&(q(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=Rt();this.options={...r,...this.options,...en(t)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...r.interpolation,...this.options.interpolation}),t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator);const o=u=>u?typeof u=="function"?new u:u:null;if(!this.options.isClone){this.modules.logger?xe.init(o(this.modules.logger),this.options):xe.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=rr);const p=new Qt(this.options);this.store=new Ht(this.options.resources,this.options);const m=this.services;m.logger=xe,m.resourceStore=this.store,m.languageUtils=p,m.pluralResolver=new tr(p,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),u&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(m.formatter=o(u),m.formatter.init(m,this.options),this.options.interpolation.format=m.formatter.format.bind(m.formatter)),m.interpolator=new nr(this.options),m.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},m.backendConnector=new ir(o(this.modules.backend),m.resourceStore,m,this.options),m.backendConnector.on("*",function(h){for(var b=arguments.length,C=new Array(b>1?b-1:0),S=1;S<b;S++)C[S-1]=arguments[S];e.emit(h,...C)}),this.modules.languageDetector&&(m.languageDetector=o(this.modules.languageDetector),m.languageDetector.init&&m.languageDetector.init(m,this.options.detection,this.options)),this.modules.i18nFormat&&(m.i18nFormat=o(this.modules.i18nFormat),m.i18nFormat.init&&m.i18nFormat.init(this)),this.translator=new Na(this.services,this.options),this.translator.on("*",function(h){for(var b=arguments.length,C=new Array(b>1?b-1:0),S=1;S<b;S++)C[S-1]=arguments[S];e.emit(h,...C)}),this.modules.external.forEach(h=>{h.init&&h.init(this)})}if(this.format=this.options.interpolation.format,s||(s=_a),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=oa(),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),s(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 s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:_a;const r=q(e)?e:this.language;if(typeof e=="function"&&(s=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&r.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return s();const o=[],i=l=>{if(!l||l==="cimode")return;this.services.languageUtils.toResolveHierarchy(l).forEach(d=>{d!=="cimode"&&o.indexOf(d)<0&&o.push(d)})};r?i(r):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(o,this.options.ns,l=>{!l&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),s(l)})}else s(null)}reloadResources(e,t,s){const r=oa();return typeof e=="function"&&(s=e,e=void 0),typeof t=="function"&&(s=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),s||(s=_a),this.services.backendConnector.reload(e,t,o=>{r.resolve(),s(o)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&Yt.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 s=this.languages[t];if(!(["cimode","dev"].indexOf(s)>-1)&&this.store.hasLanguageSomeTranslations(s)){this.resolvedLanguage=s;break}}}changeLanguage(e,t){var s=this;this.isLanguageChangingTo=e;const r=oa();this.emit("languageChanging",e);const o=c=>{this.language=c,this.languages=this.services.languageUtils.toResolveHierarchy(c),this.resolvedLanguage=void 0,this.setResolvedLanguage(c)},i=(c,d)=>{d?(o(d),this.translator.changeLanguage(d),this.isLanguageChangingTo=void 0,this.emit("languageChanged",d),this.logger.log("languageChanged",d)):this.isLanguageChangingTo=void 0,r.resolve(function(){return s.t(...arguments)}),t&&t(c,function(){return s.t(...arguments)})},l=c=>{!e&&!c&&this.services.languageDetector&&(c=[]);const d=q(c)?c:this.services.languageUtils.getBestMatchFromCodes(c);d&&(this.language||o(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),r}getFixedT(e,t,s){var r=this;const o=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=r.options.overloadTranslationOptionHandler([i,l].concat(u))}else c={...l};c.lng=c.lng||o.lng,c.lngs=c.lngs||o.lngs,c.ns=c.ns||o.ns,c.keyPrefix!==""&&(c.keyPrefix=c.keyPrefix||s||o.keyPrefix);const m=r.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,r.t(h,c)};return q(e)?o.lng=e:o.lngs=e,o.ns=t,o.keyPrefix=s,o}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const s=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,o=this.languages[this.languages.length-1];if(s.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(s,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(s,e)&&(!r||i(o,e)))}loadNamespaces(e,t){const s=oa();return this.options.ns?(q(e)&&(e=[e]),e.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{s.resolve(),t&&t(r)}),s):(t&&t(),Promise.resolve())}loadLanguages(e,t){const s=oa();q(e)&&(e=[e]);const r=this.options.preload||[],o=e.filter(i=>r.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return o.length?(this.options.preload=r.concat(o),this.loadResources(i=>{s.resolve(),t&&t(i)}),s):(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"],s=this.services&&this.services.languageUtils||new Qt(Rt());return t.indexOf(s.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 la(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:_a;const s=e.forkResourceStore;s&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},o=new la(r);return(e.debug!==void 0||e.prefix!==void 0)&&(o.logger=o.logger.clone(e)),["store","services","language"].forEach(l=>{o[l]=this[l]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},s&&(o.store=new Ht(this.store.data,r),o.services.resourceStore=o.store),o.translator=new Na(o.services,r),o.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];o.emit(l,...d)}),o.init(r,t),o.translator.options=r,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Se=la.createInstance();Se.createInstance=la.createInstance;const dr=Se.createInstance;Se.dir,Se.init,Se.loadResources,Se.reloadResources,Se.use,Se.changeLanguage,Se.getFixedT,Se.t,Se.exists,Se.setDefaultNamespace,Se.hasLoadedNamespace,Se.loadNamespaces,Se.loadLanguages;const cr={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.",usageWidgetResets:"Resets {date}",usageWidgetViewOptions:"View plan options",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",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"},ur={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.",usageWidgetResets:"Réinitialisation le {date}",usageWidgetViewOptions:"Voir les options de plan",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",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"},pr={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.",usageWidgetResets:"Se restablece el {date}",usageWidgetViewOptions:"Ver opciones de plan",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",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"},mr={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.",usageWidgetResets:"Reinicia em {date}",usageWidgetViewOptions:"Ver opções de plano",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",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"},sa="billing",Qa=dr();Qa.use(Bs).init({resources:{en:{[sa]:cr},fr:{[sa]:ur},es:{[sa]:pr},pt:{[sa]:mr}},lng:"en",fallbackLng:"en",ns:[sa],defaultNS:sa,interpolation:{escapeValue:!1,prefix:"{",suffix:"}"}});const wa=A.createContext(null),gr={capture:()=>{}};function hr(a){const[e,t]=A.useState(()=>typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches);return A.useEffect(()=>{if(a!=="system")return;const s=window.matchMedia("(prefers-color-scheme: dark)"),r=o=>t(o.matches);return s.addEventListener("change",r),()=>s.removeEventListener("change",r)},[a]),a==="system"?e:a==="dark"}const br=({client:a,stripePublishableKey:e,email:t,locale:s="en",theme:r="light",colorScheme:o="default",onToast:i,analytics:l,featureLabels:c,billingVersion:d,workspaceId:u,persist:p=!0,manageBillingUrl:m,onBillingChange:h,refreshInterval:b=3e4,children:C})=>{const S=u||"default",[y]=A.useState(()=>new re.QueryClient({defaultOptions:{queries:{retry:1,staleTime:3e4,gcTime:1e3*60*60}}})),g=hr(r),T=A.useMemo(()=>Pt(e),[e]);A.useEffect(()=>{if(!p||typeof window>"u")return;const f=`bpb-cache:${S}`;try{const x=window.localStorage.getItem(f);x&&re.hydrate(y,JSON.parse(x))}catch{window.localStorage.removeItem(f)}let P=null;const F=y.getQueryCache().subscribe(x=>{x.type!=="added"&&x.type!=="removed"&&x.type!=="updated"||(P&&clearTimeout(P),P=setTimeout(()=>{try{window.localStorage.setItem(f,JSON.stringify(re.dehydrate(y)))}catch{}},250))});return()=>{P&&clearTimeout(P),F()}},[p,S,y]);const D=A.useCallback(()=>y.invalidateQueries({queryKey:["bpb",S]}),[y,S]),w=A.useCallback(f=>h==null?void 0:h(f),[h]),_=b>0?b:!1;Qa.changeLanguage(s);const k=A.useMemo(()=>({client:a,queryClient:y,scope:S,stripePromise:T,email:t,locale:s,isDark:g,colorScheme:o,toast:i??(()=>{}),analytics:l??gr,featureLabels:c,isOutdatedBilling:d!==void 0&&d!=="v4",manageBillingUrl:m,refetchInterval:_,refresh:D,notifyBillingChange:w}),[a,y,S,T,t,s,g,o,i,l,c,d,m,_,D,w]);return n.jsx(wa.Provider,{value:k,children:n.jsx(Us,{i18n:Qa,children:n.jsx("div",{className:"bpb-scope","data-bpb-theme":g?"dark":"light","data-bpb-color-scheme":o,style:{display:"contents"},children:C})})})};function K(){const a=A.useContext(wa);if(!a)throw new Error("@bpinternal/billing-ui components must be rendered inside <BillingProvider>");return a}function fr(){var a;return((a=A.useContext(wa))==null?void 0:a.isDark)??!1}function yr(){var a;return((a=A.useContext(wa))==null?void 0:a.colorScheme)??"default"}const de={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"},me={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 Pe(){const{client:a,queryClient:e,scope:t}=K();return re.useQuery({queryKey:me.plans(t),queryFn:()=>a.listPlans({})},e)}function Ve(){const{client:a,queryClient:e,scope:t}=K();return re.useQuery({queryKey:me.addons(t),queryFn:()=>a.listAddons({})},e)}function De(a){const{client:e,queryClient:t,scope:s,refetchInterval:r}=K();return re.useQuery({queryKey:me.subscription(s),queryFn:()=>e.getSubscription({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function Za(a,e){const{client:t,queryClient:s,scope:r}=K();return re.useQuery({queryKey:me.preview(r,a),queryFn:()=>t.previewSubscriptionUpdate(a),enabled:(e==null?void 0:e.enabled)??!0},s)}function Xa(a){const{client:e,queryClient:t,scope:s}=K();return re.useQuery({queryKey:me.paymentMethod(s),queryFn:()=>e.getPaymentMethod({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function Ra(a){const{client:e,queryClient:t,scope:s}=K();return re.useQuery({queryKey:me.billingAddress(s),queryFn:()=>e.getBillingAddress({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function et(a){const{client:e,queryClient:t,scope:s}=K();return re.useQuery({queryKey:me.customer(s),queryFn:()=>e.getCustomer({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function an(a){const{client:e,queryClient:t,scope:s,refetchInterval:r}=K();return re.useQuery({queryKey:me.invoices(s),queryFn:()=>e.listInvoices({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function at(a){const{client:e,queryClient:t,scope:s}=K();return re.useQuery({queryKey:me.readonly(s),queryFn:()=>e.getBillingReadonly({}),enabled:(a==null?void 0:a.enabled)??!0},t)}function je(a){const{client:e,queryClient:t,scope:s,refetchInterval:r}=K(),o=a!=null&&a.period?new Date(a.period):new Date,i=`${o.getUTCFullYear()}-${String(o.getUTCMonth()+1).padStart(2,"0")}`;return re.useQuery({queryKey:me.usages(s,i),queryFn:()=>e.getWorkspaceUsages({period:`${i}-01T00:00:00.000Z`}).then(l=>l.quotas),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function tn(a,e){const{client:t,queryClient:s,scope:r,refetchInterval:o}=K(),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 re.useQuery({queryKey:me.usageByBot(r,a,u),queryFn:async()=>{const[p,m]=await Promise.all([i({id:r,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,C)=>C.value-b.value)},enabled:c&&((e==null?void 0:e.enabled)??!0),refetchInterval:o},s)}function nn(){const{client:a}=K();return typeof a.breakDownWorkspaceUsageByBot=="function"&&typeof a.listBots=="function"}function tt(){const{client:a,queryClient:e}=K();return re.useMutation({mutationFn:()=>a.createPaymentMethodIntent({})},e)}function nt(){const{client:a,queryClient:e,scope:t,notifyBillingChange:s}=K();return re.useMutation({mutationFn:r=>a.setPaymentMethod(r),onSuccess:async()=>{await e.invalidateQueries({queryKey:me.paymentMethod(t)}),s({type:"payment-method"})}},e)}function st(){const{client:a,queryClient:e,scope:t,notifyBillingChange:s}=K();return re.useMutation({mutationFn:async r=>{await a.setBillingAddress(r)},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:me.billingAddress(t)}),e.invalidateQueries({queryKey:me.customer(t)})]),s({type:"billing-address"})}},e)}function rt(){const{client:a,queryClient:e,scope:t}=K();return re.useMutation({mutationFn:s=>a.setCustomer(s),onSuccess:()=>e.invalidateQueries({queryKey:me.customer(t)})},e)}function sn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:s}=K();return re.useMutation({mutationFn:async r=>{await a.setAddons(r)},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:me.subscription(t)}),e.invalidateQueries({queryKey:me.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),s({type:"addons"})}},e)}function ot(){const{client:a,queryClient:e,scope:t,notifyBillingChange:s}=K();return re.useMutation({mutationFn:async r=>{await a.setPlan({planId:r.planId,interval:r.interval,couponCode:r.couponCode}),r.addons&&Object.keys(r.addons).length>0&&await a.setAddons({addons:r.addons,couponCode:r.couponCode})},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:me.subscription(t)}),e.invalidateQueries({queryKey:me.plans(t)}),e.invalidateQueries({queryKey:me.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),s({type:"subscription"})}},e)}function rn(a){var e,t,s="";if(typeof a=="string"||typeof a=="number")s+=a;else if(typeof a=="object")if(Array.isArray(a)){var r=a.length;for(e=0;e<r;e++)a[e]&&(t=rn(a[e]))&&(s&&(s+=" "),s+=t)}else for(t in a)a[t]&&(s&&(s+=" "),s+=t);return s}function vr(){for(var a,e,t=0,s="",r=arguments.length;t<r;t++)(a=arguments[t])&&(e=rn(a))&&(s&&(s+=" "),s+=e);return s}const Cr=(a,e)=>{const t=new Array(a.length+e.length);for(let s=0;s<a.length;s++)t[s]=a[s];for(let s=0;s<e.length;s++)t[a.length+s]=e[s];return t},Sr=(a,e)=>({classGroupId:a,validator:e}),on=(a=new Map,e=null,t)=>({nextPart:a,validators:e,classGroupId:t}),ka="-",ln=[],Nr="arbitrary..",_r=a=>{const e=kr(a),{conflictingClassGroups:t,conflictingClassGroupModifiers:s}=a;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return wr(i);const l=i.split(ka),c=l[0]===""&&l.length>1?1:0;return dn(l,c,e)},getConflictingClassGroupIds:(i,l)=>{if(l){const c=s[i],d=t[i];return c?d?Cr(d,c):c:d||ln}return t[i]||ln}}},dn=(a,e,t)=>{if(a.length-e===0)return t.classGroupId;const r=a[e],o=t.nextPart.get(r);if(o){const d=dn(a,e+1,o);if(d)return d}const i=t.validators;if(i===null)return;const l=e===0?a.join(ka):a.slice(e).join(ka),c=i.length;for(let d=0;d<c;d++){const u=i[d];if(u.validator(l))return u.classGroupId}},wr=a=>a.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=a.slice(1,-1),t=e.indexOf(":"),s=e.slice(0,t);return s?Nr+s:void 0})(),kr=a=>{const{theme:e,classGroups:t}=a;return Ar(t,e)},Ar=(a,e)=>{const t=on();for(const s in a){const r=a[s];it(r,t,s,e)}return t},it=(a,e,t,s)=>{const r=a.length;for(let o=0;o<r;o++){const i=a[o];Tr(i,e,t,s)}},Tr=(a,e,t,s)=>{if(typeof a=="string"){Dr(a,e,t);return}if(typeof a=="function"){xr(a,e,t,s);return}Pr(a,e,t,s)},Dr=(a,e,t)=>{const s=a===""?e:cn(e,a);s.classGroupId=t},xr=(a,e,t,s)=>{if(Fr(a)){it(a(s),e,t,s);return}e.validators===null&&(e.validators=[]),e.validators.push(Sr(t,a))},Pr=(a,e,t,s)=>{const r=Object.entries(a),o=r.length;for(let i=0;i<o;i++){const[l,c]=r[i];it(c,cn(e,l),t,s)}},cn=(a,e)=>{let t=a;const s=e.split(ka),r=s.length;for(let o=0;o<r;o++){const i=s[o];let l=t.nextPart.get(i);l||(l=on(),t.nextPart.set(i,l)),t=l}return t},Fr=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,Ir=a=>{if(a<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),s=Object.create(null);const r=(o,i)=>{t[o]=i,e++,e>a&&(e=0,s=t,t=Object.create(null))};return{get(o){let i=t[o];if(i!==void 0)return i;if((i=s[o])!==void 0)return r(o,i),i},set(o,i){o in t?t[o]=i:r(o,i)}}},lt="!",un=":",Lr=[],pn=(a,e,t,s,r)=>({modifiers:a,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:s,isExternal:r}),Er=a=>{const{prefix:e,experimentalParseClassName:t}=a;let s=r=>{const o=[];let i=0,l=0,c=0,d;const u=r.length;for(let C=0;C<u;C++){const S=r[C];if(i===0&&l===0){if(S===un){o.push(r.slice(c,C)),c=C+1;continue}if(S==="/"){d=C;continue}}S==="["?i++:S==="]"?i--:S==="("?l++:S===")"&&l--}const p=o.length===0?r:r.slice(c);let m=p,h=!1;p.endsWith(lt)?(m=p.slice(0,-1),h=!0):p.startsWith(lt)&&(m=p.slice(1),h=!0);const b=d&&d>c?d-c:void 0;return pn(o,h,m,b)};if(e){const r=e+un,o=s;s=i=>i.startsWith(r)?o(i.slice(r.length)):pn(Lr,!1,i,void 0,!0)}if(t){const r=s;s=o=>t({className:o,parseClassName:r})}return s},Br=a=>{const e=new Map;return a.orderSensitiveModifiers.forEach((t,s)=>{e.set(t,1e6+s)}),t=>{const s=[];let r=[];for(let o=0;o<t.length;o++){const i=t[o],l=i[0]==="[",c=e.has(i);l||c?(r.length>0&&(r.sort(),s.push(...r),r=[]),s.push(i)):r.push(i)}return r.length>0&&(r.sort(),s.push(...r)),s}},Mr=a=>({cache:Ir(a.cacheSize),parseClassName:Er(a),sortModifiers:Br(a),postfixLookupClassGroupIds:zr(a),..._r(a)}),zr=a=>{const e=Object.create(null),t=a.postfixLookupClassGroups;if(t)for(let s=0;s<t.length;s++)e[t[s]]=!0;return e},Or=/\s+/,Ur=(a,e)=>{const{parseClassName:t,getClassGroupId:s,getConflictingClassGroupIds:r,sortModifiers:o,postfixLookupClassGroupIds:i}=e,l=[],c=a.trim().split(Or);let d="";for(let u=c.length-1;u>=0;u-=1){const p=c[u],{isExternal:m,modifiers:h,hasImportantModifier:b,baseClassName:C,maybePostfixModifierPosition:S}=t(p);if(m){d=p+(d.length>0?" "+d:d);continue}let y=!!S,g;if(y){const k=C.substring(0,S);g=s(k);const f=g&&i[g]?s(C):void 0;f&&f!==g&&(g=f,y=!1)}else g=s(C);if(!g){if(!y){d=p+(d.length>0?" "+d:d);continue}if(g=s(C),!g){d=p+(d.length>0?" "+d:d);continue}y=!1}const T=h.length===0?"":h.length===1?h[0]:o(h).join(":"),D=b?T+lt:T,w=D+g;if(l.indexOf(w)>-1)continue;l.push(w);const _=r(g,y);for(let k=0;k<_.length;++k){const f=_[k];l.push(D+f)}d=p+(d.length>0?" "+d:d)}return d},qr=(...a)=>{let e=0,t,s,r="";for(;e<a.length;)(t=a[e++])&&(s=mn(t))&&(r&&(r+=" "),r+=s);return r},mn=a=>{if(typeof a=="string")return a;let e,t="";for(let s=0;s<a.length;s++)a[s]&&(e=mn(a[s]))&&(t&&(t+=" "),t+=e);return t},$r=(a,...e)=>{let t,s,r,o;const i=c=>{const d=e.reduce((u,p)=>p(u),a());return t=Mr(d),s=t.cache.get,r=t.cache.set,o=l,l(c)},l=c=>{const d=s(c);if(d)return d;const u=Ur(c,t);return r(c,u),u};return o=i,(...c)=>o(qr(...c))},Vr=[],he=a=>{const e=t=>t[a]||Vr;return e.isThemeGetter=!0,e},gn=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,hn=/^\((?:(\w[\w-]*):)?(.+)\)$/i,jr=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Wr=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Gr=/\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$/,Kr=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Hr=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Yr=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ue=a=>jr.test(a),Y=a=>!!a&&!Number.isNaN(Number(a)),Fe=a=>!!a&&Number.isInteger(Number(a)),dt=a=>a.endsWith("%")&&Y(a.slice(0,-1)),Me=a=>Wr.test(a),bn=()=>!0,Jr=a=>Gr.test(a)&&!Kr.test(a),ct=()=>!1,Qr=a=>Hr.test(a),Zr=a=>Yr.test(a),Xr=a=>!I(a)&&!L(a),Rr=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)),eo=a=>qe(a,Nn,ct),I=a=>gn.test(a),We=a=>qe(a,_n,Jr),fn=a=>qe(a,lo,Y),ao=a=>qe(a,kn,bn),to=a=>qe(a,wn,ct),yn=a=>qe(a,Cn,ct),no=a=>qe(a,Sn,Zr),Aa=a=>qe(a,An,Qr),L=a=>hn.test(a),da=a=>Ge(a,_n),so=a=>Ge(a,wn),vn=a=>Ge(a,Cn),ro=a=>Ge(a,Nn),oo=a=>Ge(a,Sn),Ta=a=>Ge(a,An,!0),io=a=>Ge(a,kn,!0),qe=(a,e,t)=>{const s=gn.exec(a);return s?s[1]?e(s[1]):t(s[2]):!1},Ge=(a,e,t=!1)=>{const s=hn.exec(a);return s?s[1]?e(s[1]):t:!1},Cn=a=>a==="position"||a==="percentage",Sn=a=>a==="image"||a==="url",Nn=a=>a==="length"||a==="size"||a==="bg-size",_n=a=>a==="length",lo=a=>a==="number",wn=a=>a==="family-name",kn=a=>a==="number"||a==="weight",An=a=>a==="shadow",co=$r(()=>{const a=he("color"),e=he("font"),t=he("text"),s=he("font-weight"),r=he("tracking"),o=he("leading"),i=he("breakpoint"),l=he("container"),c=he("spacing"),d=he("radius"),u=he("shadow"),p=he("inset-shadow"),m=he("text-shadow"),h=he("drop-shadow"),b=he("blur"),C=he("perspective"),S=he("aspect"),y=he("ease"),g=he("animate"),T=()=>["auto","avoid","all","avoid-page","page","left","right","column"],D=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...D(),L,I],_=()=>["auto","hidden","clip","visible","scroll"],k=()=>["auto","contain","none"],f=()=>[L,I,c],P=()=>[Ue,"full","auto",...f()],F=()=>[Fe,"none","subgrid",L,I],x=()=>["auto",{span:["full",Fe,L,I]},Fe,L,I],M=()=>[Fe,"auto",L,I],W=()=>["auto","min","max","fr",L,I],Z=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],V=()=>["start","end","center","stretch","center-safe","end-safe"],z=()=>["auto",...f()],J=()=>[Ue,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...f()],B=()=>[Ue,"screen","full","dvw","lvw","svw","min","max","fit",...f()],$=()=>[Ue,"screen","full","lh","dvh","lvh","svh","min","max","fit",...f()],N=()=>[a,L,I],le=()=>[...D(),vn,yn,{position:[L,I]}],E=()=>["no-repeat",{repeat:["","x","y","space","round"]}],G=()=>["auto","cover","contain",ro,eo,{size:[L,I]}],j=()=>[dt,da,We],U=()=>["","none","full",d,L,I],H=()=>["",Y,da,We],ie=()=>["solid","dashed","dotted","double"],be=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ee=()=>[Y,dt,vn,yn],fe=()=>["","none",b,L,I],ve=()=>["none",Y,L,I],ue=()=>["none",Y,L,I],Le=()=>[Y,L,I],Ce=()=>[Ue,"full",...f()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Me],breakpoint:[Me],color:[bn],container:[Me],"drop-shadow":[Me],ease:["in","out","in-out"],font:[Xr],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Me],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Me],shadow:[Me],spacing:["px",Y],text:[Me],"text-shadow":[Me],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ue,I,L,S]}],container:["container"],"container-type":[{"@container":["","normal","size",L,I]}],"container-named":[Rr],columns:[{columns:[Y,I,L,l]}],"break-after":[{"break-after":T()}],"break-before":[{"break-before":T()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:w()}],overflow:[{overflow:_()}],"overflow-x":[{"overflow-x":_()}],"overflow-y":[{"overflow-y":_()}],overscroll:[{overscroll:k()}],"overscroll-x":[{"overscroll-x":k()}],"overscroll-y":[{"overscroll-y":k()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:P()}],"inset-x":[{"inset-x":P()}],"inset-y":[{"inset-y":P()}],start:[{"inset-s":P(),start:P()}],end:[{"inset-e":P(),end:P()}],"inset-bs":[{"inset-bs":P()}],"inset-be":[{"inset-be":P()}],top:[{top:P()}],right:[{right:P()}],bottom:[{bottom:P()}],left:[{left:P()}],visibility:["visible","invisible","collapse"],z:[{z:[Fe,"auto",L,I]}],basis:[{basis:[Ue,"full","auto",l,...f()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Y,Ue,"auto","initial","none",I]}],grow:[{grow:["",Y,L,I]}],shrink:[{shrink:["",Y,L,I]}],order:[{order:[Fe,"first","last","none",L,I]}],"grid-cols":[{"grid-cols":F()}],"col-start-end":[{col:x()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":F()}],"row-start-end":[{row:x()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":W()}],"auto-rows":[{"auto-rows":W()}],gap:[{gap:f()}],"gap-x":[{"gap-x":f()}],"gap-y":[{"gap-y":f()}],"justify-content":[{justify:[...Z(),"normal"]}],"justify-items":[{"justify-items":[...V(),"normal"]}],"justify-self":[{"justify-self":["auto",...V()]}],"align-content":[{content:["normal",...Z()]}],"align-items":[{items:[...V(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...V(),{baseline:["","last"]}]}],"place-content":[{"place-content":Z()}],"place-items":[{"place-items":[...V(),"baseline"]}],"place-self":[{"place-self":["auto",...V()]}],p:[{p:f()}],px:[{px:f()}],py:[{py:f()}],ps:[{ps:f()}],pe:[{pe:f()}],pbs:[{pbs:f()}],pbe:[{pbe:f()}],pt:[{pt:f()}],pr:[{pr:f()}],pb:[{pb:f()}],pl:[{pl:f()}],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":f()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":f()}],"space-y-reverse":["space-y-reverse"],size:[{size:J()}],"inline-size":[{inline:["auto",...B()]}],"min-inline-size":[{"min-inline":["auto",...B()]}],"max-inline-size":[{"max-inline":["none",...B()]}],"block-size":[{block:["auto",...$()]}],"min-block-size":[{"min-block":["auto",...$()]}],"max-block-size":[{"max-block":["none",...$()]}],w:[{w:[l,"screen",...J()]}],"min-w":[{"min-w":[l,"screen","none",...J()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[i]},...J()]}],h:[{h:["screen","lh",...J()]}],"min-h":[{"min-h":["screen","lh","none",...J()]}],"max-h":[{"max-h":["screen","lh",...J()]}],"font-size":[{text:["base",t,da,We]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[s,io,ao]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",dt,I]}],"font-family":[{font:[so,to,e]}],"font-features":[{"font-features":[I]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,L,I]}],"line-clamp":[{"line-clamp":[Y,"none",L,fn]}],leading:[{leading:[o,...f()]}],"list-image":[{"list-image":["none",L,I]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",L,I]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:N()}],"text-color":[{text:N()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ie(),"wavy"]}],"text-decoration-thickness":[{decoration:[Y,"from-font","auto",L,We]}],"text-decoration-color":[{decoration:N()}],"underline-offset":[{"underline-offset":[Y,"auto",L,I]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:f()}],"tab-size":[{tab:[Fe,L,I]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",L,I]}],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",L,I]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:le()}],"bg-repeat":[{bg:E()}],"bg-size":[{bg:G()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Fe,L,I],radial:["",L,I],conic:[Fe,L,I]},oo,no]}],"bg-color":[{bg:N()}],"gradient-from-pos":[{from:j()}],"gradient-via-pos":[{via:j()}],"gradient-to-pos":[{to:j()}],"gradient-from":[{from:N()}],"gradient-via":[{via:N()}],"gradient-to":[{to:N()}],rounded:[{rounded:U()}],"rounded-s":[{"rounded-s":U()}],"rounded-e":[{"rounded-e":U()}],"rounded-t":[{"rounded-t":U()}],"rounded-r":[{"rounded-r":U()}],"rounded-b":[{"rounded-b":U()}],"rounded-l":[{"rounded-l":U()}],"rounded-ss":[{"rounded-ss":U()}],"rounded-se":[{"rounded-se":U()}],"rounded-ee":[{"rounded-ee":U()}],"rounded-es":[{"rounded-es":U()}],"rounded-tl":[{"rounded-tl":U()}],"rounded-tr":[{"rounded-tr":U()}],"rounded-br":[{"rounded-br":U()}],"rounded-bl":[{"rounded-bl":U()}],"border-w":[{border:H()}],"border-w-x":[{"border-x":H()}],"border-w-y":[{"border-y":H()}],"border-w-s":[{"border-s":H()}],"border-w-e":[{"border-e":H()}],"border-w-bs":[{"border-bs":H()}],"border-w-be":[{"border-be":H()}],"border-w-t":[{"border-t":H()}],"border-w-r":[{"border-r":H()}],"border-w-b":[{"border-b":H()}],"border-w-l":[{"border-l":H()}],"divide-x":[{"divide-x":H()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":H()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ie(),"hidden","none"]}],"divide-style":[{divide:[...ie(),"hidden","none"]}],"border-color":[{border:N()}],"border-color-x":[{"border-x":N()}],"border-color-y":[{"border-y":N()}],"border-color-s":[{"border-s":N()}],"border-color-e":[{"border-e":N()}],"border-color-bs":[{"border-bs":N()}],"border-color-be":[{"border-be":N()}],"border-color-t":[{"border-t":N()}],"border-color-r":[{"border-r":N()}],"border-color-b":[{"border-b":N()}],"border-color-l":[{"border-l":N()}],"divide-color":[{divide:N()}],"outline-style":[{outline:[...ie(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Y,L,I]}],"outline-w":[{outline:["",Y,da,We]}],"outline-color":[{outline:N()}],shadow:[{shadow:["","none",u,Ta,Aa]}],"shadow-color":[{shadow:N()}],"inset-shadow":[{"inset-shadow":["none",p,Ta,Aa]}],"inset-shadow-color":[{"inset-shadow":N()}],"ring-w":[{ring:H()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:N()}],"ring-offset-w":[{"ring-offset":[Y,We]}],"ring-offset-color":[{"ring-offset":N()}],"inset-ring-w":[{"inset-ring":H()}],"inset-ring-color":[{"inset-ring":N()}],"text-shadow":[{"text-shadow":["none",m,Ta,Aa]}],"text-shadow-color":[{"text-shadow":N()}],opacity:[{opacity:[Y,L,I]}],"mix-blend":[{"mix-blend":[...be(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":be()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Y]}],"mask-image-linear-from-pos":[{"mask-linear-from":ee()}],"mask-image-linear-to-pos":[{"mask-linear-to":ee()}],"mask-image-linear-from-color":[{"mask-linear-from":N()}],"mask-image-linear-to-color":[{"mask-linear-to":N()}],"mask-image-t-from-pos":[{"mask-t-from":ee()}],"mask-image-t-to-pos":[{"mask-t-to":ee()}],"mask-image-t-from-color":[{"mask-t-from":N()}],"mask-image-t-to-color":[{"mask-t-to":N()}],"mask-image-r-from-pos":[{"mask-r-from":ee()}],"mask-image-r-to-pos":[{"mask-r-to":ee()}],"mask-image-r-from-color":[{"mask-r-from":N()}],"mask-image-r-to-color":[{"mask-r-to":N()}],"mask-image-b-from-pos":[{"mask-b-from":ee()}],"mask-image-b-to-pos":[{"mask-b-to":ee()}],"mask-image-b-from-color":[{"mask-b-from":N()}],"mask-image-b-to-color":[{"mask-b-to":N()}],"mask-image-l-from-pos":[{"mask-l-from":ee()}],"mask-image-l-to-pos":[{"mask-l-to":ee()}],"mask-image-l-from-color":[{"mask-l-from":N()}],"mask-image-l-to-color":[{"mask-l-to":N()}],"mask-image-x-from-pos":[{"mask-x-from":ee()}],"mask-image-x-to-pos":[{"mask-x-to":ee()}],"mask-image-x-from-color":[{"mask-x-from":N()}],"mask-image-x-to-color":[{"mask-x-to":N()}],"mask-image-y-from-pos":[{"mask-y-from":ee()}],"mask-image-y-to-pos":[{"mask-y-to":ee()}],"mask-image-y-from-color":[{"mask-y-from":N()}],"mask-image-y-to-color":[{"mask-y-to":N()}],"mask-image-radial":[{"mask-radial":[L,I]}],"mask-image-radial-from-pos":[{"mask-radial-from":ee()}],"mask-image-radial-to-pos":[{"mask-radial-to":ee()}],"mask-image-radial-from-color":[{"mask-radial-from":N()}],"mask-image-radial-to-color":[{"mask-radial-to":N()}],"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":D()}],"mask-image-conic-pos":[{"mask-conic":[Y]}],"mask-image-conic-from-pos":[{"mask-conic-from":ee()}],"mask-image-conic-to-pos":[{"mask-conic-to":ee()}],"mask-image-conic-from-color":[{"mask-conic-from":N()}],"mask-image-conic-to-color":[{"mask-conic-to":N()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:le()}],"mask-repeat":[{mask:E()}],"mask-size":[{mask:G()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",L,I]}],filter:[{filter:["","none",L,I]}],blur:[{blur:fe()}],brightness:[{brightness:[Y,L,I]}],contrast:[{contrast:[Y,L,I]}],"drop-shadow":[{"drop-shadow":["","none",h,Ta,Aa]}],"drop-shadow-color":[{"drop-shadow":N()}],grayscale:[{grayscale:["",Y,L,I]}],"hue-rotate":[{"hue-rotate":[Y,L,I]}],invert:[{invert:["",Y,L,I]}],saturate:[{saturate:[Y,L,I]}],sepia:[{sepia:["",Y,L,I]}],"backdrop-filter":[{"backdrop-filter":["","none",L,I]}],"backdrop-blur":[{"backdrop-blur":fe()}],"backdrop-brightness":[{"backdrop-brightness":[Y,L,I]}],"backdrop-contrast":[{"backdrop-contrast":[Y,L,I]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Y,L,I]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Y,L,I]}],"backdrop-invert":[{"backdrop-invert":["",Y,L,I]}],"backdrop-opacity":[{"backdrop-opacity":[Y,L,I]}],"backdrop-saturate":[{"backdrop-saturate":[Y,L,I]}],"backdrop-sepia":[{"backdrop-sepia":["",Y,L,I]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":f()}],"border-spacing-x":[{"border-spacing-x":f()}],"border-spacing-y":[{"border-spacing-y":f()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",L,I]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Y,"initial",L,I]}],ease:[{ease:["linear","initial",y,L,I]}],delay:[{delay:[Y,L,I]}],animate:[{animate:["none",g,L,I]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[C,L,I]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:ve()}],"rotate-x":[{"rotate-x":ve()}],"rotate-y":[{"rotate-y":ve()}],"rotate-z":[{"rotate-z":ve()}],scale:[{scale:ue()}],"scale-x":[{"scale-x":ue()}],"scale-y":[{"scale-y":ue()}],"scale-z":[{"scale-z":ue()}],"scale-3d":["scale-3d"],skew:[{skew:Le()}],"skew-x":[{"skew-x":Le()}],"skew-y":[{"skew-y":Le()}],transform:[{transform:[L,I,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ce()}],"translate-x":[{"translate-x":Ce()}],"translate-y":[{"translate-y":Ce()}],"translate-z":[{"translate-z":Ce()}],"translate-none":["translate-none"],zoom:[{zoom:[Fe,L,I]}],accent:[{accent:N()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:N()}],"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",L,I]}],"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":N()}],"scrollbar-track-color":[{"scrollbar-track":N()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":f()}],"scroll-mx":[{"scroll-mx":f()}],"scroll-my":[{"scroll-my":f()}],"scroll-ms":[{"scroll-ms":f()}],"scroll-me":[{"scroll-me":f()}],"scroll-mbs":[{"scroll-mbs":f()}],"scroll-mbe":[{"scroll-mbe":f()}],"scroll-mt":[{"scroll-mt":f()}],"scroll-mr":[{"scroll-mr":f()}],"scroll-mb":[{"scroll-mb":f()}],"scroll-ml":[{"scroll-ml":f()}],"scroll-p":[{"scroll-p":f()}],"scroll-px":[{"scroll-px":f()}],"scroll-py":[{"scroll-py":f()}],"scroll-ps":[{"scroll-ps":f()}],"scroll-pe":[{"scroll-pe":f()}],"scroll-pbs":[{"scroll-pbs":f()}],"scroll-pbe":[{"scroll-pbe":f()}],"scroll-pt":[{"scroll-pt":f()}],"scroll-pr":[{"scroll-pr":f()}],"scroll-pb":[{"scroll-pb":f()}],"scroll-pl":[{"scroll-pl":f()}],"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",L,I]}],fill:[{fill:["none",...N()]}],"stroke-w":[{stroke:[Y,da,We,fn]}],stroke:[{stroke:["none",...N()]}],"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 O(...a){return co(vr(a))}function X(a,e="usd",t=2,s="en-US"){return new Intl.NumberFormat(s,{style:"currency",currency:e.toUpperCase(),minimumFractionDigits:t,maximumFractionDigits:t}).format(a)}function Ie(a,e="en-US"){return new Date(a).toLocaleDateString(e,{month:"short",day:"numeric",year:"numeric"})}function Tn(a,e){const t=new Date(a);return t.setDate(t.getDate()+e),t.toISOString()}function ae(a,e="en-US"){return new Intl.NumberFormat(e).format(a)}function Ke(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 se(a){return a.replace("Plan - ","")}function ca(a){return{usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",jpy:"¥"}[a.toLowerCase()]??`${a.toUpperCase()} `}const He=["community","plus","team","enterprise","managed"],uo=["community","plus","team","enterprise","managed"];function ce(a){var s;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=(s=a.metadata)==null?void 0:s.legacyName;return uo.find(r=>r===t)??"community"}const ut="https://botpress.com/contact-us/managed-plan",$e={conversation_sessions_addon:"addonNameConversationSessions",storage_addon:"addonNameStorage"},Dn={conversation_sessions_addon:"addonDescriptionConversationSessions",storage_addon:"addonDescriptionStorage"};function Da(a,e,t){return a.prices[e.id]??a.prices[ce(e)]??a.prices[t]??null}function ua(a){return a.replace("Add-on - ","")}function xn(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 Pn=[{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 Fn(a,e,t){var r;if(!e)return[];const s=[];for(const o of Pn){const i=a.features[o.key]??0;let l=0;for(const c of e){const d=((r=c.increments)==null?void 0:r[o.key])??0,u=t[c.id]??0;l+=d*u}l>0&&s.push({...o,now:i,next:i+l})}return s}function In(a,e,t){var r;if(!a)return[];const s=[];for(const o of Pn){const i=a.features[o.key]??0;let l=0;for(const c of e??[])l+=(((r=c.increments)==null?void 0:r[o.key])??0)*(t[c.id]??0);(i>0||l>0)&&s.push({...o,base:i,added:l,total:i+l})}return s}function xa(a,e,t){var i;const s=xn(a);if(!s)return null;const r=((i=s.increments)==null?void 0:i.conversation_sessions)??0,o=Da(s,e,t);return r<=0||!o||o.amount<=0?null:{packSize:r,amount:o.amount,currency:o.currency}}const pt={"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"}},po={community:"planDescriptionCommunity",plus:"planDescriptionPlus",team:"planDescriptionTeam",enterprise:"planDescriptionEnterprise",managed:"planDescriptionManaged"},Pa={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:[]},Fa=({variant:a="accent",children:e,className:t})=>n.jsx("span",{className:O("bpb-badge",`bpb-badge--${a}`,t),children:e}),ge=({variant:a="primary",size:e="md",block:t=!1,loading:s=!1,className:r,disabled:o,children:i,type:l="button",...c})=>n.jsxs("button",{type:l,className:O("bpb-btn",`bpb-btn--${a}`,`bpb-btn--${e}`,t&&"bpb-btn--block",r),disabled:o||s,"data-loading":s||void 0,...c,children:[s&&n.jsx("span",{className:"bpb-btn__spinner","aria-hidden":!0}),n.jsx("span",{className:"bpb-btn__label",children:i})]}),te=(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}),Ln=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M3 8.5l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),mt=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.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"}),n.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"})]}),En=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.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"})}),gt=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.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"}),n.jsx("path",{d:"M5.8 8l1.6 1.6 2.8-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Bn=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.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"})}),Ia=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("path",{d:"M8 2l6 3-6 3-6-3 6-3z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),n.jsx("path",{d:"M2 8l6 3 6-3M2 11l6 3 6-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),Mn=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.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"})}),La=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M8.5 1.5L3 9h4l-.5 5.5L12 7H8l.5-5.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),zn=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("circle",{cx:"6",cy:"5.5",r:"2.2",stroke:"currentColor",strokeWidth:"1.3"}),n.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"}),n.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"})]}),On=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("path",{d:"M2.5 2.5v11h11",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),n.jsx("path",{d:"M5 10l2.2-2.4 2 1.6L12.5 5.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Un=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),n.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"})]}),qn=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("path",{d:"M2.5 11.5L9 5l2 2-6.5 6.5H2.5v-2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),n.jsx("path",{d:"M9 5l1.8-1.8a1.4 1.4 0 012 2L11 7",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),ht=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("rect",{x:"1.8",y:"3.5",width:"12.4",height:"9",rx:"1.6",stroke:"currentColor",strokeWidth:"1.3"}),n.jsx("path",{d:"M1.8 6.4h12.4",stroke:"currentColor",strokeWidth:"1.3"})]}),mo=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M2 6l6-3.5L14 6v1H2V6zM3 7v5M6.3 7v5M9.7 7v5M13 7v5M2 12.5h12",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),go=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("rect",{x:"3.5",y:"7",width:"9",height:"6.5",rx:"1.4",stroke:"currentColor",strokeWidth:"1.3"}),n.jsx("path",{d:"M5.5 7V5.5a2.5 2.5 0 015 0V7",stroke:"currentColor",strokeWidth:"1.3"})]}),Ea=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Ba=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M4 6.5L8 10.5l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),bt=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M10 3.5L5.5 8l4.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Ye=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M6 3.5L10.5 8L6 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),$n=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),ft=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Vn=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.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"}),n.jsx("path",{d:"M8 6.3v3.1",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),n.jsx("circle",{cx:"8",cy:"11.6",r:"0.85",fill:"currentColor"})]}),pa=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.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"})}),ho=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),n.jsx("path",{d:"M8 10.5V5.5M5.5 8l2.5-2.5L10.5 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Ma=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),yt=({size:a,...e})=>n.jsx("svg",{...te(a,e),children:n.jsx("path",{d:"M8 2.5v7M5 7l3 3 3-3M3 12.5h10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),bo=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.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"}),n.jsx("path",{d:"M6.2 5.5h3.6M6.2 8h3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),jn=({size:a,...e})=>n.jsxs("svg",{...te(a,e),children:[n.jsx("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),n.jsx("path",{d:"M2.5 6.5h11M5.5 2v2.5M10.5 2v2.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),vt=({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 n.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 za(a){const e=a.toLowerCase();return/seat|member|user|team|rbac|rout/.test(e)?zn:/analytic|report|insight|dashboard/.test(e)?On:/whatsapp|channel|chat|message|conversation|webchat|voice/.test(e)?En:/storage|table|vector|file|gb|rows|db/.test(e)?Ia:/domain|help center|whitelabel|website|url|web/.test(e)?Un:/brand|theme|custom|white-?label/.test(e)?qn:/unlimited|infinit/.test(e)?Mn:/security|sla|compliance|soc|audit/.test(e)||/support|sla|dedicated|priority/.test(e)?gt:/integration|api|plugin|sdk|adk|studio/.test(e)?Bn:/ai|agent|model|gpt|llm/.test(e)?La:mt}const Ae=({open:a,onOpenChange:e,size:t="md",children:s,className:r,showClose:o=!0,...i})=>{const l=A.useRef(null),c=fr(),d=yr(),u=A.useCallback(()=>e(!1),[e]);return A.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?hs.createPortal(n.jsx("div",{className:"bpb-portal bpb-dialog__overlay","data-bpb-theme":c?"dark":"light","data-bpb-color-scheme":d,onClick:u,children:n.jsxs("div",{ref:l,role:"dialog","aria-modal":"true","aria-label":i["aria-label"],tabIndex:-1,className:O("bpb-dialog",`bpb-dialog--${t}`,r),onClick:p=>p.stopPropagation(),children:[o&&n.jsx("button",{type:"button",className:"bpb-dialog__close","aria-label":"Close",onClick:u,children:n.jsx(Ea,{size:18})}),s]})}),document.body):null},ma=({label:a,children:e})=>n.jsxs("span",{className:"bpb-tooltip",tabIndex:0,role:"note",children:[n.jsx("span",{className:"bpb-tooltip__term",children:a}),n.jsx("span",{className:"bpb-tooltip__bubble",role:"tooltip",children:e})]}),Je=()=>{const{manageBillingUrl:a}=K(),{t:e}=oe();return n.jsxs("div",{className:"bpb-outdated",children:[n.jsx("h3",{className:"bpb-outdated__title",children:e("outdatedTitle")}),n.jsx("p",{className:"bpb-outdated__text",children:e("outdatedText")}),a&&n.jsxs(ge,{variant:"primary",onClick:()=>window.open(a,"_blank","noopener"),children:[e("outdatedCta"),n.jsx(pa,{size:15})]})]})},Wn=({options:a,value:e,onChange:t,className:s,...r})=>n.jsx("div",{role:"radiogroup","aria-label":r["aria-label"],className:O("bpb-segmented",s),children:a.map(o=>{const i=o.value===e;return n.jsxs("button",{type:"button",role:"radio","aria-checked":i,className:O("bpb-segmented__option",i&&"bpb-segmented__option--selected"),onClick:()=>t(o.value),children:[o.label,o.badge&&n.jsx("span",{className:"bpb-segmented__badge",children:o.badge})]},o.value)})}),R=({width:a,height:e=14,rounded:t=!1,className:s})=>n.jsx("span",{"aria-hidden":!0,className:O("bpb-skeleton",t&&"bpb-skeleton--rounded",s),style:{width:a??"100%",height:e}});function fo(a,e){const t=a.prices[e];return t||((e==="month"?a.prices.year:a.prices.month)??null)}function yo(a,e){var r,o;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const s=((o=a.prices.year)==null?void 0:o.amount)??(t===void 0?void 0:t*12);return s===void 0?null:s/12}function vo(a){var t,s;let e=0;for(const r of a){const o=(t=r.prices.month)==null?void 0:t.amount,i=(s=r.prices.year)==null?void 0:s.amount;o&&i&&o>0&&(e=Math.max(e,1-i/(o*12)))}return Math.round(e*100)}const Gn=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:s="team",defaultInterval:r="year",excludePlanIds:o=[],planFeatures:i={},featureDescriptions:l})=>{var J,B,$;const{isOutdatedBilling:c,toast:d,analytics:u}=K(),{t:p}=oe(),[m,h]=A.useState(r),{data:b,isLoading:C}=Pe(),{data:S}=Ve(),{data:y}=De({enabled:a}),{data:g}=at({enabled:a}),T=ot(),D=(g==null?void 0:g.planReadonly)??!1;A.useEffect(()=>{a&&u.capture(de.PLAN_PICKER_VIEWED,{interval:m})},[a,u]);const w=N=>{N!==m&&u.capture(de.PLAN_INTERVAL_TOGGLED,{interval:N}),h(N)},_=y==null?void 0:y.plan.current.interval,k=b==null?void 0:b.find(N=>N.id===(y==null?void 0:y.plan.current.planId)),f=y?k?ce(k):"community":void 0,P=((J=y==null?void 0:y.plan.next)==null?void 0:J.planId)??null,F=!!P&&P!==(y==null?void 0:y.plan.current.planId),x=D||f==="enterprise"||f==="managed",M=A.useMemo(()=>b?b.filter(N=>ce(N)!=="managed"&&ce(N)!=="enterprise"&&!o.includes(N.id)).sort((N,le)=>He.indexOf(ce(N))-He.indexOf(ce(le))):[],[b,o]),W=A.useMemo(()=>vo(M),[M]),Z=(($=(B=b==null?void 0:b.find(N=>ce(N)==="enterprise"))==null?void 0:B.metadata)==null?void 0:$.contact_url)??ut,V=N=>{T.mutate({planId:N.id,interval:m},{onSuccess:()=>{u.capture(de.PLAN_DOWNGRADED,{plan_name:se(N.name),interval:m,previous_plan_name:k?se(k.name):void 0}),d({type:"success",message:p("upgradeDowngradeSuccess")})},onError:()=>d({type:"error",message:p("upgradeDowngradeError")})})},z=()=>{y&&T.mutate({planId:y.plan.current.planId,interval:y.plan.current.interval},{onSuccess:()=>{u.capture(de.PLAN_DOWNGRADE_CANCELLED,{plan_name:k?se(k.name):y.plan.current.planId}),d({type:"success",message:p("upgradeCancelDowngradeSuccess")})},onError:()=>d({type:"error",message:p("upgradeCancelDowngradeError")})})};return c?n.jsx(Ae,{open:a,onOpenChange:e,size:"md","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:n.jsx(Je,{})}):n.jsx(Ae,{open:a,onOpenChange:e,size:"xl","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:n.jsxs("div",{className:"bpb-upgrade",children:[n.jsx("h2",{className:"bpb-upgrade__title",children:p("upgradeDialogTitle")}),n.jsx("div",{className:"bpb-upgrade__toggle",children:n.jsx(Wn,{"aria-label":p("dashboardBillingPeriod"),value:m,onChange:w,options:[{value:"month",label:p("upgradeMonthly")},{value:"year",label:p("upgradeAnnual"),badge:W>0?p("upgradeSaveBadge",{savings:W}):void 0}]})}),n.jsxs("div",{className:"bpb-upgrade__grid",children:[C&&[0,1,2].map(N=>n.jsxs("div",{className:"bpb-plan-card","aria-hidden":!0,children:[n.jsx(R,{width:120,height:22}),n.jsx(R,{width:90,height:40}),n.jsx(R,{width:"100%",height:36,rounded:!0}),n.jsx(R,{width:"100%",height:140})]},N)),M.map((N,le)=>{var ne,pe;const E=ce(N),G=fo(N,m),j=yo(N,m),U=(((ne=N.prices.month)==null?void 0:ne.amount)??0)<=0,H=E===f,ie=H&&(f==="community"||m===_),be=E===f&&f!=="community"&&m!==_,ee=!!P&&N.id===P&&!ie,fe=f!==void 0&&He.indexOf(E)<He.indexOf(f),ve=(E===s||N.id===s)&&!ie,ue=H&&F?"cancel_downgrade":ie?"current":be?"switch_interval":ee?"next":fe?"downgrade":"upgrade",Le=le>0?M[le-1]:void 0,Ce=i[E]??Pa[E],Qe=N.features.conversation_sessions,Q=xa(S,N,m),ye=T.isPending&&(ue==="downgrade"&&((pe=T.variables)==null?void 0:pe.planId)===N.id||ue==="cancel_downgrade");return n.jsxs("div",{className:O("bpb-plan-card",ve&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":N.id,children:[n.jsxs("div",{className:"bpb-plan-card__header",children:[n.jsxs("h3",{className:"bpb-plan-card__name",children:[se(N.name),ve&&n.jsx(Fa,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),n.jsx("p",{className:"bpb-plan-card__tagline",children:p(po[ce(N)])}),n.jsx("div",{className:"bpb-plan-card__price",children:j!==null&&G?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"bpb-plan-card__currency",children:ca(G.currency)}),n.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(j)?j:j.toFixed(2).replace(/\.00$/,"")}),n.jsx("span",{className:"bpb-plan-card__per",children:p("upgradePerMonthSuffix",{currency:G.currency.toUpperCase()})})]}):n.jsx("span",{className:"bpb-plan-card__amount",children:X(0,"usd",0)})})]}),Qe!==void 0&&n.jsxs("div",{className:"bpb-plan-card__allowance",children:[n.jsxs("div",{className:"bpb-plan-card__metric",children:[n.jsx("span",{className:"bpb-plan-card__metric-value",children:ae(Qe)}),n.jsx("span",{className:"bpb-plan-card__metric-unit",children:p(U?"conversationsUnit":"conversationsPerMonth")})]}),Q?n.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeThenPer",{price:X(Q.amount,Q.currency,0),packSize:ae(Q.packSize)})}):n.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeNoTopup")})]}),ue==="current"&&n.jsx(ge,{variant:"outline",block:!0,disabled:!0,children:p("upgradeCurrentPlan")}),ue==="next"&&n.jsx(ge,{variant:"outline",block:!0,disabled:!0,children:p("upgradeNextPlan")}),ue==="cancel_downgrade"&&n.jsx(ge,{variant:"primary",block:!0,loading:ye,onClick:z,children:p("upgradeCancelDowngrade")}),ue==="downgrade"&&n.jsx(ge,{variant:"outline",block:!0,disabled:x||T.isPending,loading:ye,onClick:()=>V(N),children:p("upgradeDowngrade")}),ue==="switch_interval"&&n.jsx(ge,{variant:"primary",block:!0,disabled:x||T.isPending,title:x?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(de.PLAN_UPGRADE_INITIATED,{plan_name:se(N.name),interval:m,current_plan_name:k?se(k.name):void 0}),t(N.id,m)},children:p(m==="year"?"upgradeSwitchToAnnual":"upgradeSwitchToMonthly")}),ue==="upgrade"&&n.jsx(ge,{variant:ve?"accent":"primary",block:!0,disabled:x||T.isPending,title:x?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(de.PLAN_UPGRADE_INITIATED,{plan_name:se(N.name),interval:m,current_plan_name:k?se(k.name):void 0}),t(N.id,m)},children:p("upgradeUpgrade")}),n.jsxs("ul",{className:"bpb-plan-card__features",children:[Le&&n.jsxs("li",{className:"bpb-plan-card__features-lead",children:[n.jsx("span",{className:"bpb-plan-card__feature-chip bpb-plan-card__feature-chip--lead",children:n.jsx(Ln,{size:13})}),n.jsx("span",{children:p("upgradeEverythingIn",{planName:se(Le.name)})})]}),Ce.map(_e=>{const Ze=za(_e),Ee=pt[_e],ha=Ee!==void 0?p(Ee.label):_e,Be=(l==null?void 0:l[_e])??(Ee!==void 0?p(Ee.desc):void 0);return n.jsxs("li",{children:[n.jsx("span",{className:"bpb-plan-card__feature-chip",children:n.jsx(Ze,{size:13})}),Be?n.jsx(ma,{label:ha,children:Be}):n.jsx("span",{children:ha})]},_e)})]})]},N.id)})]}),n.jsxs("p",{className:"bpb-upgrade__footer",children:[p("upgradeFooterEnterprise")," ",n.jsx("a",{href:Z,target:"_blank",rel:"noopener noreferrer",children:p("upgradeContactUs")})," ",p("upgradeFooterAboutEnterprise")," ",n.jsx("a",{href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:"botpress.com/pricing"}),"."]})]})})},Ct='-apple-system, "ui-sans-serif", "system-ui", "Segoe UI", Helvetica, Arial, sans-serif',St="14px",Kn="10px";function Nt(a){return a?{theme:"night",variables:{fontFamily:Ct,fontSizeBase:St,borderRadius:Kn,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:Ct,fontSizeBase:St,borderRadius:Kn,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 _t(a){return{base:{fontFamily:Ct,fontSize:St,color:a?"#f9f9f9":"#0d0d0d","::placeholder":{color:a?"#9b9b9b":"#8f8f8f"}},invalid:{color:a?"#ff8583":"#e02e2a"}}}const Co={pt:"pt-BR",es:"es-419"};function wt(a){const e=a.split("-")[0]??a;return Co[e]??a}const So=4,No=({plan:a,interval:e,preview:t,isLoadingPreview:s,isPreviewError:r,canSubscribe:o,isSubmitting:i,onSubscribe:l})=>{var W,Z,V,z,J;const{locale:c}=K(),{t:d}=oe(),{data:u}=Ve(),p=((W=a==null?void 0:a.prices.month)==null?void 0:W.currency)??((Z=a==null?void 0:a.prices.year)==null?void 0:Z.currency)??"usd",m=a==null?void 0:a.features.conversation_sessions,h=a&&ce(a)==="community"?d("conversationsUnit"):d("conversationsPerMonth"),b=a?xa(u,a,e):null,C=(t==null?void 0:t.costs.immediate.amountDue)??0,S=(t==null?void 0:t.costs.immediate.accountBalance)??0,y=(t==null?void 0:t.costs.nextCycle.total)??0,g=t!=null&&t.nextBillingDate?Ie(Tn(t.nextBillingDate,1),c):null,T=a?Pa[ce(a)].slice(0,So):[],D=a?((V=a.prices[e])==null?void 0:V.amount)??0:0,w=(t==null?void 0:t.costs.immediate.lineItems)??[],_=w.filter(B=>B.type==="discount"),k=w.filter(B=>B.type==="proration_credit"||B.type==="proration_charge").reduce((B,$)=>B+$.amount,0),f=!!(t!=null&&t.subscription.plan.effectiveDate),P=((z=a==null?void 0:a.prices.month)==null?void 0:z.amount)??0,F=((J=a==null?void 0:a.prices.year)==null?void 0:J.amount)??0,x=e==="year"&&P>0&&F>0?Math.round(P*12-F):0,M=Math.round(x/12);return n.jsxs("div",{className:"bpb-summary-wrap",children:[n.jsxs("div",{className:"bpb-summary bpb-glow",children:[n.jsx("h3",{className:"bpb-summary__title",children:a?`${se(a.name)} plan`:n.jsx(R,{width:140,height:24})}),m!==void 0&&n.jsxs("div",{className:"bpb-summary__metric",children:[n.jsx("span",{className:"bpb-summary__metric-value",children:ae(m)}),n.jsx("span",{className:"bpb-summary__metric-unit",children:h}),b&&n.jsx("span",{className:"bpb-summary__metric-pack",children:d("orderThen",{price:X(b.amount,b.currency,0),packSize:ae(b.packSize)})})]}),T.length>0&&n.jsxs(n.Fragment,{children:[n.jsx("p",{className:"bpb-summary__features-label",children:d("orderTopFeatures")}),n.jsx("ul",{className:"bpb-summary__features",children:T.map(B=>{const $=za(B);return n.jsxs("li",{children:[n.jsx($,{size:16,className:"bpb-summary__feature-icon"}),n.jsx("span",{children:B})]},B)})})]}),n.jsx("hr",{className:"bpb-summary__divider"}),s&&n.jsxs("div",{className:"bpb-summary__lines","aria-busy":"true",children:[n.jsx(R,{height:16}),n.jsx(R,{height:16}),n.jsx(R,{height:20})]}),r&&n.jsx("p",{role:"alert",className:"bpb-summary__error",children:d("orderPreviewError")}),t&&!s&&f&&n.jsxs("div",{className:"bpb-summary__lines",children:[n.jsxs("div",{className:"bpb-summary__line",children:[n.jsx("span",{className:"bpb-summary__line-label",children:g?d("orderPlanFromDate",{plan:a?se(a.name):"",date:g}):`${a?se(a.name):""} plan`}),n.jsxs("span",{className:"bpb-summary__line-amount",children:[X(y,p),d(e==="year"?"perYear":"perMonth")]})]}),n.jsxs("div",{className:"bpb-summary__line",children:[n.jsx("span",{className:"bpb-summary__line-label",children:n.jsx(ma,{label:d("orderProratedToday"),children:d("orderProratedTodayDesc")})}),n.jsx("span",{className:"bpb-summary__line-amount",children:X(C,p)})]}),n.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[n.jsx("span",{children:d("orderDueToday")}),n.jsx("span",{children:X(C,p)})]}),k<0&&n.jsx("p",{className:"bpb-summary__addon-note",children:d("orderCreditTowardNext",{amount:X(Math.abs(k),p)})})]}),t&&!s&&!f&&n.jsxs("div",{className:"bpb-summary__lines",children:[n.jsxs("div",{className:"bpb-summary__line",children:[n.jsxs("span",{className:"bpb-summary__line-label",children:[a?se(a.name):""," plan (",d(e==="year"?"orderIntervalAnnual":"orderIntervalMonthly"),")"]}),n.jsxs("span",{className:"bpb-summary__line-amount",children:[X(D,p),d(e==="year"?"perYear":"perMonth")]})]}),_.map((B,$)=>n.jsxs("div",{className:"bpb-summary__line",children:[n.jsx("span",{className:"bpb-summary__line-label",children:B.description}),n.jsx("span",{className:"bpb-summary__line-amount",children:X(B.amount,p)})]},`${B.id}-${$}`)),k!==0&&n.jsxs("div",{className:"bpb-summary__line",children:[n.jsx("span",{className:"bpb-summary__line-label",children:n.jsx(ma,{label:k<0?d("orderCreditUnusedTime"):d("orderAdjustUnusedTime"),children:k<0?d("orderCreditUnusedTimeDesc"):d("orderAdjustUnusedTimeDesc")})}),n.jsx("span",{className:"bpb-summary__line-amount",children:X(k,p)})]}),S!==0&&n.jsxs("div",{className:"bpb-summary__line",children:[n.jsx("span",{className:"bpb-summary__line-label",children:d("orderAccountCredit")}),n.jsx("span",{className:"bpb-summary__line-amount",children:X(S,p)})]}),n.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[n.jsx("span",{children:d("orderDueToday")}),n.jsx("span",{children:X(C,p)})]}),k<0&&C===0&&n.jsx("p",{className:"bpb-summary__addon-note",children:d("orderBalanceAsCredit",{amount:X(Math.abs(k),p)})})]}),x>0&&n.jsxs("div",{className:"bpb-summary__savings",children:[n.jsx(mt,{size:18,className:"bpb-summary__savings-icon"}),n.jsx("span",{children:d("orderSavingsNote",{monthlySavings:X(M,p,0),yearlySavings:X(x,p,0)})})]}),n.jsx(ge,{variant:"primary",size:"lg",block:!0,className:"bpb-summary__cta",disabled:!o,loading:i,onClick:l,children:d(r?"orderPreviewUnavailable":"orderSubscribe")})]}),n.jsxs("p",{className:"bpb-summary__fineprint",children:[d(e==="month"?"orderRenewsMonthly":"orderRenewsAnnually"),t&&n.jsxs(n.Fragment,{children:[" ",g?d("orderChargedStarting",{amount:X(y,p),period:d(e==="month"?"perMonthLong":"perYearLong"),date:g}):d("orderChargedNoDate",{amount:X(y,p),period:d(e==="month"?"perMonthLong":"perYearLong")})]})," ",d("orderCancelNote")]})]})},_o=["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"],wo={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"}]},ko=[{type:"eu_vat",label:"EU VAT",description:"European VAT number"}];function Hn(a){if(!a)return[];const e=a.toUpperCase();return _o.includes(e)?ko:wo[e]??[]}const Oa=({label:a,className:e,id:t,...s})=>a?n.jsxs("label",{className:O("bpb-input",e),children:[n.jsx("span",{className:"bpb-input__label",children:a}),n.jsx("input",{className:"bpb-input__field bpb-input__field--labeled",id:t,...s})]}):n.jsx("input",{className:O("bpb-input__field",e),id:t,...s}),kt=({label:a,className:e,children:t,...s})=>n.jsxs("label",{className:O("bpb-input",e),children:[a&&n.jsx("span",{className:"bpb-input__label",children:a}),n.jsxs("span",{className:"bpb-input__select-wrap",children:[n.jsx("select",{className:O("bpb-input__field bpb-input__field--select",a&&"bpb-input__field--labeled"),...s,children:t}),n.jsx(Ba,{size:16,className:"bpb-input__chevron"})]})]}),Ao=({plan:a,interval:e,onChange:t})=>{const{t:s}=oe(),r=a.prices.month,o=a.prices.year,i=r&&o&&r.amount>0?Math.round((1-o.amount/(r.amount*12))*100):0;return n.jsxs("section",{className:"bpb-checkout__section",children:[n.jsx("h3",{className:"bpb-checkout__section-title",children:s("checkoutPlanDetails")}),n.jsxs("div",{className:"bpb-interval-cards",role:"radiogroup","aria-label":s("billingIntervalLabel"),children:[r&&n.jsxs("button",{type:"button",role:"radio","aria-checked":e==="month",className:O("bpb-interval-card",e==="month"&&"bpb-interval-card--selected"),onClick:()=>t("month"),children:[n.jsx("span",{className:"bpb-interval-card__title",children:s("checkoutMonthlyBilling")}),n.jsxs("span",{className:"bpb-interval-card__price",children:[X(r.amount,r.currency,0)," ",s("perMonth")]})]}),o&&n.jsxs("button",{type:"button",role:"radio","aria-checked":e==="year",className:O("bpb-interval-card",e==="year"&&"bpb-interval-card--selected"),onClick:()=>t("year"),children:[n.jsxs("span",{className:"bpb-interval-card__title",children:[s("checkoutAnnualBilling"),i>0&&n.jsx(Fa,{children:s("checkoutSaveBadge",{savings:i})})]}),n.jsxs("span",{className:"bpb-interval-card__price",children:[X(o.amount/12,o.currency,0)," ",s("perMonth")]})]})]})]})},Yn=({number:a,title:e,onEdit:t})=>{const{t:s}=oe();return n.jsxs("div",{className:"bpb-step__header",children:[t?n.jsxs("button",{type:"button",className:"bpb-step__title bpb-step__title--button",onClick:t,children:[a,". ",e]}):n.jsxs("h3",{className:"bpb-step__title",children:[a,". ",e]}),t&&n.jsx("button",{type:"button",className:"bpb-step__edit",onClick:t,children:s("edit")})]})},To=({stepNumber:a,savedCard:e,isDark:t,tab:s,onTabChange:r,onPaymentChange:o})=>{const{t:i}=oe(),[l,c]=A.useState(!1),d=s==="new"||!e;return n.jsxs("section",{className:"bpb-step",children:[n.jsx(Yn,{number:a,title:i("checkoutPaymentMethodTitle")}),e&&n.jsxs("div",{className:"bpb-pay-tabs",role:"tablist","aria-label":i("checkoutPaymentMethodTitle"),children:[n.jsxs("button",{type:"button",role:"tab","aria-selected":s==="saved",className:O("bpb-pay-tab",s==="saved"&&"bpb-pay-tab--selected"),onClick:()=>r("saved"),children:[n.jsx(ht,{size:16}),i("checkoutSavedCardTab")]}),n.jsxs("button",{type:"button",role:"tab","aria-selected":s==="new",className:O("bpb-pay-tab",s==="new"&&"bpb-pay-tab--selected"),onClick:()=>r("new"),children:[n.jsx(ht,{size:16}),i("checkoutNewCardTab")]})]}),e&&s==="saved"&&n.jsxs("div",{className:"bpb-saved-card",children:[n.jsx(vt,{brand:e.brand}),n.jsxs("span",{className:"bpb-saved-card__number",children:[n.jsx("span",{className:"bpb-saved-card__brand",children:e.brand})," •••• ",e.lastFour]}),n.jsxs("span",{className:"bpb-saved-card__exp",children:[String(e.expMonth).padStart(2,"0"),"/",String(e.expYear).slice(-2)]})]}),d&&n.jsxs("div",{className:"bpb-payment-element",children:[!l&&n.jsx("div",{className:"bpb-payment-element__skeleton",children:n.jsx(R,{height:48})}),n.jsx("div",{className:O("bpb-card-element",!l&&"bpb-payment-element--hidden"),children:n.jsx(we.CardElement,{options:{style:_t(t),hidePostalCode:!0},onReady:()=>c(!0),onChange:u=>o(u.complete)})})]})]})},Do=({stepNumber:a,existingAddress:e,customerName:t,isLoading:s,editing:r,onEdit:o,onCancelEdit:i,onReady:l,onCountryChange:c,country:d,isBusiness:u,onIsBusinessChange:p,businessName:m,onBusinessNameChange:h,taxType:b,onTaxTypeChange:C,taxValue:S,onTaxValueChange:y})=>{const{t:g}=oe(),[T,D]=A.useState(!1),w=r||!e,_=Hn(d),k=_.find(f=>f.type===b);return n.jsxs("section",{className:"bpb-step",children:[n.jsx(Yn,{number:a,title:g("checkoutBillingAddressTitle")}),s?n.jsx(R,{height:72}):w?n.jsxs("div",{className:"bpb-payment-element",children:[!T&&n.jsxs("div",{className:"bpb-payment-element__skeleton",children:[n.jsx(R,{height:48}),n.jsx(R,{height:48})]}),n.jsx("div",{className:O(!T&&"bpb-payment-element--hidden"),children:n.jsx(we.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:()=>{D(!0),l()},onChange:f=>{c(f.value.address.country||void 0)}})}),i&&r&&n.jsx("button",{type:"button",className:"bpb-address-cancel",onClick:i,children:g("checkoutCancelEdit")})]}):n.jsxs("div",{className:"bpb-address-card",children:[n.jsxs("div",{className:"bpb-address-card__lines",children:[t&&n.jsx("span",{className:"bpb-address-card__name",children:t}),n.jsxs("span",{children:[e.lineOne,e.lineTwo?`, ${e.lineTwo}`:""]}),n.jsxs("span",{children:[e.city," ",e.state??""," ",e.postalCode," ",e.country]})]}),n.jsx("button",{type:"button",className:"bpb-link-button",onClick:o,children:g("checkoutUpdateAddress")})]}),n.jsxs("label",{className:"bpb-checkbox",children:[n.jsx("input",{type:"checkbox",checked:u,onChange:f=>{p(f.target.checked),f.target.checked&&!b&&_[0]&&C(_[0].type)}}),n.jsx("span",{children:g("checkoutIsBusiness")})]}),u&&n.jsxs("div",{className:"bpb-business-fields",children:[n.jsx("h4",{className:"bpb-step__subtitle",children:g("checkoutBusinessDetails")}),n.jsx(Oa,{placeholder:g("checkoutBusinessNamePlaceholder"),value:m,onChange:f=>h(f.target.value),autoComplete:"organization"}),_.length>0?n.jsxs(n.Fragment,{children:[n.jsx(kt,{"aria-label":g("checkoutTaxIdTypeLabel"),value:b,onChange:f=>C(f.target.value),children:_.map(f=>n.jsxs("option",{value:f.type,children:[f.label," — ",f.description]},f.type))}),n.jsx(Oa,{placeholder:k?k.description:g("checkoutTaxIdNumberPlaceholder"),value:S,onChange:f=>y(f.target.value),inputMode:"text"})]}):n.jsx("p",{className:"bpb-business-fields__note",children:g(d?"checkoutNoTaxRequired":"checkoutSelectCountryForTax")})]})]})},xo=({planId:a,initialInterval:e,onSuccess:t})=>{var is;const s=we.useStripe(),r=we.useElements(),{email:o,toast:i,analytics:l,isDark:c}=K(),{t:d}=oe(),[u,p]=A.useState(e),[m,h]=A.useState("payment"),[b,C]=A.useState(null),[S,y]=A.useState(!1),[g,T]=A.useState(!1),[D,w]=A.useState(!1),[_,k]=A.useState(void 0),[f,P]=A.useState(!1),[F,x]=A.useState(""),[M,W]=A.useState(""),[Z,V]=A.useState(""),[z,J]=A.useState(!1),[B,$]=A.useState(null),[N,le]=A.useState(!1),E=tt(),{data:G}=Pe(),{data:j}=De(),{data:U,isLoading:H}=Xa(),{data:ie,isLoading:be}=Ra(),{data:ee}=et(),fe=G==null?void 0:G.find(Ne=>Ne.id===a),ve=((is=U==null?void 0:U.paymentMethod)==null?void 0:is.card)??null,ue=(ie==null?void 0:ie.address)??null;A.useEffect(()=>{b===null&&!H&&U!==void 0&&C(ve?"saved":"new")},[b,H,U,ve]),A.useEffect(()=>{_===void 0&&ue&&k(ue.country)},[_,ue]);const Le=A.useMemo(()=>({plan:{planId:a,interval:u}}),[a,u]),Ce=Za(Le),Qe=nt(),Q=st(),ye=rt(),ne=ot(),pe=fe?se(fe.name):"",_e=b==="new"||!ve,Ze=g||!ue,Ee=_e?S:!!ve,ha=Ze?D:!0;A.useEffect(()=>{h(Ee?"address":"payment")},[Ee]),A.useEffect(()=>{l.capture(de.CHECKOUT_STEP_VIEWED,{plan_name:pe,interval:u,step:m})},[l,m]);const Be=Ne=>{Ne!==u&&l.capture(de.CHECKOUT_INTERVAL_CHANGED,{plan_name:pe,interval:Ne}),p(Ne)},Xo=Ne=>{l.capture(de.PAYMENT_METHOD_SELECTED,{method:Ne==="saved"?"saved_card":"new_card"}),C(Ne)},Ro=Ne=>{y(Ne),le(!1)},ei=!!s&&!!r&&!!fe&&!Ce.isError&&!!Ce.data&&Ee&&ha&&!z,ai=async()=>{var ls,ds,cs,us;if(!s||!r||!fe)return;J(!0),$(null);const Ne=(Xe,$a)=>l.capture(de.CHECKOUT_ERROR,{plan_name:pe,interval:u,step:m,reason:Xe,message:$a});try{if(l.capture(de.PAYMENT_DETAILS_CONFIRMED,{plan_name:pe,interval:u}),_e&&!N){const Re=r.getElement(we.CardElement);if(!Re){$(d("checkoutCardNotReady")),Ne("card_element_not_ready");return}const{clientSecret:Dt}=await E.mutateAsync(),{error:Oe,setupIntent:Te}=await s.confirmCardSetup(Dt,{payment_method:{card:Re}});if(Oe){$(Oe.message??d("checkoutPaymentSetupFailed")),l.capture(de.CHECKOUT_ERROR,{plan_name:pe,interval:u,step:m,reason:Oe.code??"card_setup_failed",decline_code:Oe.decline_code,message:Oe.message});return}if(!(Te!=null&&Te.payment_method)||typeof Te.payment_method!="string"){$(d("checkoutPaymentMethodMissing")),Ne("payment_method_missing");return}await Qe.mutateAsync({paymentMethodId:Te.payment_method}),le(!0)}let Xe;if(Ze){const Re=r.getElement("address");if(Re){const{complete:Dt,value:Oe}=await Re.getValue();if(!Dt||!Oe.address){$(d("checkoutAddressIncomplete")),Ne("address_incomplete");return}const{address:Te}=Oe;Xe=((ls=Oe.name)==null?void 0:ls.trim())||void 0,await Q.mutateAsync({lineOne:Te.line1??"",lineTwo:Te.line2??void 0,city:Te.city??"",state:Te.state??void 0,postalCode:Te.postal_code??"",country:Te.country??""})}}const $a=f&&F.trim()||Xe||void 0,ps=f&&M&&Z.trim()?[{type:M,value:Z.trim()}]:void 0;($a!==void 0||ps!==void 0)&&await ye.mutateAsync({name:$a,taxIds:ps});const ti=((ds=Ce.data)==null?void 0:ds.costs.immediate.amountDue)??0,ni=((cs=Ce.data)==null?void 0:cs.costs.nextCycle.total)??0;await ne.mutateAsync({planId:a,interval:u}),l.capture(de.PLAN_UPGRADED,{plan_name:pe,interval:u,amount_paid:ti,next_cycle_amount:ni,previous_plan_name:(us=G==null?void 0:G.find(Re=>Re.id===(j==null?void 0:j.plan.current.planId)))==null?void 0:us.name.replace("Plan - ",""),previous_interval:j==null?void 0:j.plan.current.interval}),i({type:"success",message:d("checkoutSuccessToast")}),t()}catch(Xe){$(d("checkoutGenericError")),Ne("exception",Xe instanceof Error?Xe.message:void 0),i({type:"error",message:d("checkoutErrorToast")})}finally{J(!1)}};return n.jsxs("div",{className:"bpb-checkout__columns",children:[n.jsxs("div",{className:"bpb-checkout__main",children:[fe&&n.jsx(Ao,{plan:fe,interval:u,onChange:Be}),o&&n.jsxs("section",{className:"bpb-checkout__section",children:[n.jsx("h3",{className:"bpb-checkout__section-title",children:d("checkoutContactInfo")}),n.jsxs("div",{className:"bpb-checkout__static-field",children:[n.jsx("span",{className:"bpb-checkout__static-label",children:d("checkoutEmailLabel")}),n.jsx("span",{children:o})]})]}),n.jsx(To,{stepNumber:1,savedCard:ve,isDark:c,tab:b??"new",onTabChange:Xo,onPaymentChange:Ro}),m==="address"&&n.jsx(Do,{stepNumber:2,existingAddress:ue,customerName:(ee==null?void 0:ee.name)??null,isLoading:be,editing:g,onEdit:()=>T(!0),onCancelEdit:ue?()=>T(!1):void 0,onReady:()=>w(!0),onCountryChange:k,country:_,isBusiness:f,onIsBusinessChange:P,businessName:F,onBusinessNameChange:x,taxType:M,onTaxTypeChange:W,taxValue:Z,onTaxValueChange:V}),B&&n.jsx("p",{role:"alert",className:"bpb-checkout__submit-error",children:B})]}),n.jsx("div",{className:"bpb-checkout__aside",children:n.jsx(No,{plan:fe,interval:u,preview:Ce.data,isLoadingPreview:Ce.isLoading,isPreviewError:Ce.isError,canSubscribe:ei,isSubmitting:z,onSubscribe:()=>void ai()})})]})},Jn=({open:a,onOpenChange:e,planId:t,interval:s,onBack:r,onSuccess:o})=>{const{stripePromise:i,isDark:l,locale:c,isOutdatedBilling:d}=K(),{t:u}=oe(),p=A.useMemo(()=>({appearance:Nt(l),locale:wt(c)}),[l,c]);return d?n.jsx(Ae,{open:a,onOpenChange:e,size:"md","aria-label":u("checkoutTitle"),className:"bpb-scope",children:n.jsx(Je,{})}):n.jsx(Ae,{open:a,onOpenChange:e,size:"xl","aria-label":u("checkoutTitle"),className:"bpb-scope",children:n.jsxs("div",{className:"bpb-checkout",children:[n.jsxs("header",{className:"bpb-checkout__header",children:[r&&n.jsx("button",{type:"button",className:"bpb-checkout__back","aria-label":u("checkoutBackLabel"),onClick:r,children:n.jsx(bt,{size:18})}),n.jsx("h2",{className:"bpb-checkout__title",children:u("checkoutTitle")})]}),n.jsx(we.Elements,{stripe:i,options:p,children:n.jsx(xo,{planId:t,initialInterval:s,onSuccess:()=>{e(!1),o==null||o()}})})]})})},Qn=({value:a,onChange:e,min:t=0,max:s,step:r=1,className:o,...i})=>{const l=()=>e(Math.max(t,a-r)),c=()=>e(s===void 0?a+r:Math.min(s,a+r));return n.jsxs("div",{className:O("bpb-stepper",o),children:[n.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Decrease ${i["aria-label"]}`,onClick:l,disabled:a<=t,children:n.jsx($n,{size:14})}),n.jsx("span",{className:"bpb-stepper__value","aria-label":i["aria-label"],children:a}),n.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Increase ${i["aria-label"]}`,onClick:c,disabled:s!==void 0&&a>=s,children:n.jsx(ft,{size:14})})]})},Po=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:s})=>{const{isOutdatedBilling:r}=K(),{t:o}=oe();return r?n.jsx(Ae,{open:a,onOpenChange:e,size:"md","aria-label":o("addonsDialogTitle"),className:"bpb-scope",children:n.jsx(Je,{})}):n.jsx(Ae,{open:a,onOpenChange:e,size:"md","aria-label":o("addonsDialogTitle"),className:"bpb-scope",children:n.jsx(Fo,{onOpenChange:e,onSuccess:t,onUpgrade:s})})},Fo=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var B,$,N,le;const{toast:s,locale:r}=K(),{t:o}=oe(),{data:i}=De(),{data:l}=Ve(),{data:c}=Pe(),{data:d}=at(),u=sn(),[p,m]=A.useState(null),h=c==null?void 0:c.find(E=>E.id===(i==null?void 0:i.plan.current.planId)),b=(i==null?void 0:i.plan.current.interval)??"month",C=(d==null?void 0:d.addonsReadonly)??!1,S=i!=null&&i.plan.current.periodEnd?Ie(i.plan.current.periodEnd,r):null,y=A.useMemo(()=>{var G;if(!i||!l)return null;const E={};for(const j of l){const U=i.addons[j.id];E[j.id]=((G=U==null?void 0:U.next)==null?void 0:G.quantity)??(U==null?void 0:U.current.quantity)??0}return E},[i,l]),g=p??y,T=A.useMemo(()=>!l||!h?[]:l.flatMap(E=>{const G=Da(E,h,b);return G?[{addon:E,price:G}]:[]}),[l,h,b]),D=!!g&&!!y&&Object.keys(g).some(E=>g[E]!==y[E]),w=T.reduce((E,{addon:G,price:j})=>E+((g==null?void 0:g[G.id])??0)*j.amount,0),_=A.useMemo(()=>h&&g?{plan:{planId:h.id,interval:b},addons:g}:null,[h,b,g]),k=Za(_??{plan:{planId:"",interval:b}},{enabled:!!_&&D}),f=((B=h==null?void 0:h.prices[b])==null?void 0:B.currency)??"usd",P=(($=k.data)==null?void 0:$.costs.immediate.amountDue)??0,F=(N=k.data)!=null&&N.nextBillingDate?Ie(k.data.nextBillingDate,r):null,x=((le=h==null?void 0:h.prices[b])==null?void 0:le.amount)??0,M=x+w,W=h&&g?Fn(h,l,g):[],Z=(E,G)=>G==="bytes"?Ke(E):ae(E),V=(E,G)=>{const j=l==null?void 0:l.find(be=>be.id===E),U=j==null?void 0:j.increments;if(!U||G<=0)return null;const H=U.conversation_sessions??0;if(H>0)return o("addonsConvos",{n:ae(H*G)});const ie=U.file_storage??0;return ie>0?Ke(ie*G):null},z=()=>{g&&u.mutate({addons:g},{onSuccess:()=>{s({type:"success",message:o("addonsUpdateSuccess")}),a(!1),e==null||e()},onError:()=>s({type:"error",message:o("addonsUpdateError")})})},J=!i||!l||!c;return n.jsxs("div",{className:"bpb-manage-addons",children:[n.jsx("h2",{className:"bpb-manage-addons__title",children:o("addonsDialogTitle")}),(J||T.length>0)&&n.jsx("p",{className:"bpb-manage-addons__subtitle",children:h?o("addonsSubtitleWithPlan",{planName:se(h.name)}):o("addonsSubtitleGeneric")}),J?n.jsxs("div",{className:"bpb-manage-addons__loading","aria-busy":"true",children:[n.jsx(R,{height:56}),n.jsx(R,{height:56})]}):T.length===0?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"bpb-manage-addons__upgrade-gate",children:[n.jsx(ho,{size:28,className:"bpb-manage-addons__upgrade-icon"}),n.jsxs("div",{className:"bpb-manage-addons__upgrade-text",children:[n.jsx("p",{className:"bpb-manage-addons__upgrade-title",children:o("addonsRequirePaidPlanTitle")}),n.jsx("p",{className:"bpb-manage-addons__upgrade-body",children:o("addonsRequirePaidPlanBody")})]})]}),n.jsx("div",{className:"bpb-manage-addons__actions",children:t?n.jsx(ge,{variant:"primary",className:"bpb-manage-addons__upgrade-cta",onClick:()=>{a(!1),t()},children:o("addonsUpgradeCta")}):n.jsx(ge,{variant:"outline",onClick:()=>a(!1),children:o("close")})})]}):n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"bpb-addons",children:T.map(({addon:E,price:G})=>{var be;const j=((be=i==null?void 0:i.addons[E.id])==null?void 0:be.current.quantity)??0,U=(g==null?void 0:g[E.id])??0,H=U!==j?U===0?S?o("addonRemovedOnDate",{activeNow:j,date:S}):o("addonRemovedNextCycle",{activeNow:j}):S?o("addonChangedOnDate",{activeNow:j,pending:U,date:S}):o("addonChangedNextCycle",{activeNow:j,pending:U}):j>0?o("addonActiveOnly",{count:j}):null,ie=V(E.id,U);return n.jsxs("div",{className:"bpb-addon-row",children:[n.jsxs("div",{className:"bpb-addon-row__info",children:[n.jsx("span",{className:"bpb-addon-row__name",children:$e[E.id]?o($e[E.id]):ua(E.name)}),n.jsx("span",{className:"bpb-addon-row__description",children:Dn[E.id]?o(Dn[E.id]):E.description}),n.jsxs("span",{className:"bpb-addon-row__price",children:[X(G.amount,G.currency)," ",o("addonsEach")]}),H&&n.jsx("span",{className:O("bpb-addon-row__status",U!==j&&"bpb-addon-row__status--changed"),children:H})]}),n.jsxs("div",{className:"bpb-addon-row__control",children:[ie&&n.jsx("span",{className:"bpb-addon-row__grant",children:ie}),n.jsx(Qn,{"aria-label":`${$e[E.id]?o($e[E.id]):ua(E.name)} quantity`,value:U,onChange:ee=>m({...g??{},[E.id]:ee})})]})]},E.id)})}),W.length>0&&n.jsxs("div",{className:"bpb-manage-addons__limits",children:[n.jsx("p",{className:"bpb-manage-addons__limits-title",children:o("addonsNewLimits")}),W.map(E=>{const G={conversation_sessions:"resourceConversations",table_rows:"resourceTableRows",vector_db_storage:"resourceVectorDb",file_storage:"resourceFileStorage"}[E.key];return n.jsxs("div",{className:"bpb-manage-addons__limit-row",children:[n.jsx("span",{className:"bpb-manage-addons__limit-label",children:G?o(G):E.label}),n.jsxs("span",{className:"bpb-manage-addons__limit-values",children:[n.jsx("span",{className:"bpb-manage-addons__limit-now",children:Z(E.now,E.unit)}),n.jsx("span",{className:"bpb-manage-addons__limit-arrow","aria-hidden":!0,children:"→"}),n.jsx("span",{className:"bpb-manage-addons__limit-next",children:Z(E.next,E.unit)})]})]},E.key)})]}),n.jsxs("div",{className:"bpb-manage-addons__totals",children:[n.jsxs("div",{className:"bpb-manage-addons__line",children:[n.jsx("span",{children:h?o("addonsPlanLine",{planName:se(h.name)}):o("addonsGenericPlan")}),n.jsx("span",{children:X(x,f)})]}),T.map(({addon:E,price:G})=>{const j=(g==null?void 0:g[E.id])??0;return j<=0?null:n.jsxs("div",{className:"bpb-manage-addons__line",children:[n.jsxs("span",{children:[j,"×"," ",$e[E.id]?o($e[E.id]):ua(E.name)]}),n.jsx("span",{children:X(G.amount*j,f)})]},E.id)}),n.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--total",children:[n.jsx("span",{children:o(b==="year"?"addonsTotalYearly":"addonsTotalMonthly")}),n.jsxs("span",{children:[X(M,f),o(b==="year"?"perYear":"perMonth")]})]}),D&&n.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--due",children:[n.jsx("span",{children:o("addonsDueToday")}),n.jsx("span",{children:k.isLoading?"…":k.isError?"—":X(Math.max(P,0),f)})]})]}),D&&!k.isError&&n.jsxs("p",{className:"bpb-manage-addons__note",children:[P>0?o("addonsChargedNow",{amount:X(P,f)}):o("addonsNoChargeToday"),F?o("addonsRenewalWithDate",{date:F,amount:X(w,f),interval:o(b==="year"?"perYear":"perMonth")}):o("addonsRenewalNoDate",{amount:X(w,f),interval:o(b==="year"?"perYear":"perMonth")})]}),C&&n.jsx("p",{className:"bpb-manage-addons__note",role:"alert",children:o("addonsReadonlyNote")}),n.jsxs("div",{className:"bpb-manage-addons__actions",children:[n.jsx(ge,{variant:"outline",onClick:()=>a(!1),disabled:u.isPending,children:o("cancel")}),n.jsx(ge,{variant:"primary",disabled:!D||C,loading:u.isPending,onClick:z,children:o("addonsUpdateSubscription")})]})]})]})},Io=({open:a,onOpenChange:e})=>{const{isOutdatedBilling:t}=K(),{t:s}=oe();return t?n.jsx(Ae,{open:a,onOpenChange:e,size:"md","aria-label":s("invoicesTitle"),className:"bpb-scope",children:n.jsx(Je,{})}):n.jsx(Ae,{open:a,onOpenChange:e,size:"md","aria-label":s("invoicesTitle"),className:"bpb-scope",children:n.jsx(Lo,{open:a})})},Lo=({open:a})=>{const{locale:e,analytics:t}=K(),{t:s}=oe(),{data:r,isLoading:o,isError:i}=an({enabled:a}),l=(r==null?void 0:r.invoices)??[],c={paid:s("invoiceStatusPaid"),open:s("invoiceStatusDue"),draft:s("invoiceStatusDraft"),uncollectible:s("invoiceStatusUnpaid"),void:s("invoiceStatusVoid")};return n.jsxs("div",{className:"bpb-invoices",children:[n.jsx("h2",{className:"bpb-invoices__title",children:s("invoicesTitle")}),o?n.jsxs("div",{className:"bpb-invoices__loading","aria-busy":"true",children:[n.jsx(R,{height:52}),n.jsx(R,{height:52}),n.jsx(R,{height:52})]}):i?n.jsx("p",{className:"bpb-invoices__empty",role:"alert",children:s("invoicesLoadError")}):l.length===0?n.jsx("p",{className:"bpb-invoices__empty",children:s("invoicesEmpty")}):n.jsx("ul",{className:"bpb-invoices__list",children:l.map(d=>n.jsxs("li",{className:"bpb-invoices__row",children:[n.jsxs("div",{className:"bpb-invoices__row-main",children:[n.jsx("span",{className:"bpb-invoices__date",children:Ie(d.createdAt,e)}),n.jsx("span",{className:`bpb-invoices__status bpb-invoices__status--${d.status}`,children:c[d.status]})]}),n.jsxs("div",{className:"bpb-invoices__row-end",children:[n.jsx("span",{className:"bpb-invoices__amount",children:X(d.amount,d.currency)}),d.pdfUrl?n.jsx("a",{className:"bpb-invoices__download",href:d.pdfUrl,target:"_blank",rel:"noopener noreferrer","aria-label":s("invoicesDownloadLabel",{date:Ie(d.createdAt,e)}),onClick:()=>t.capture(de.INVOICE_DOWNLOADED,{status:d.status}),children:n.jsx(yt,{size:16})}):n.jsx("span",{className:"bpb-invoices__download bpb-invoices__download--disabled","aria-hidden":!0,children:n.jsx(yt,{size:16})})]})]},d.id))})]})},Eo=({open:a,onOpenChange:e,onSuccess:t})=>{var h;const{stripePromise:s,isDark:r,locale:o,isOutdatedBilling:i}=K(),{t:l}=oe(),c=tt(),d=(h=c.data)==null?void 0:h.clientSecret,{mutate:u,reset:p}=c;A.useEffect(()=>{a&&!i?u():p()},[a,i,u,p]);const m=A.useMemo(()=>d?{clientSecret:d,appearance:Nt(r),locale:wt(o)}:null,[d,r,o]);return i?n.jsx(Ae,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:n.jsx(Je,{})}):n.jsx(Ae,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:n.jsxs("div",{className:"bpb-payment-dialog",children:[n.jsx("h2",{className:"bpb-payment-dialog__title",children:l("paymentDialogTitle")}),c.isError?n.jsxs("div",{className:"bpb-payment-dialog__error",children:[n.jsx("p",{children:l("paymentSessionError")}),n.jsx(ge,{variant:"outline",onClick:()=>u(),children:l("tryAgain")})]}):!m||!d?n.jsxs("div",{className:"bpb-payment-dialog__loading","aria-busy":"true",children:[n.jsx(R,{height:48}),n.jsx(R,{height:120})]}):n.jsx(we.Elements,{stripe:s,options:m,children:n.jsx(Bo,{clientSecret:d,isDark:r,onSuccess:t})})]})})},Bo=({clientSecret:a,isDark:e,onSuccess:t})=>{var Qe;const s=we.useStripe(),r=we.useElements(),{toast:o,analytics:i}=K(),{t:l}=oe(),{data:c,isLoading:d}=Xa(),{data:u,isLoading:p}=Ra(),{data:m,isLoading:h}=et(),b=nt(),C=st(),S=rt(),y=((Qe=c==null?void 0:c.paymentMethod)==null?void 0:Qe.card)??null,g=(u==null?void 0:u.address)??null,T=(m==null?void 0:m.taxIds)??[],[D,w]=A.useState(!1),[_,k]=A.useState(!1),[f,P]=A.useState(!1),[F,x]=A.useState(!1),[M,W]=A.useState(null),[Z,V]=A.useState(!1),[z,J]=A.useState(!1),[B,$]=A.useState(null),[N,le]=A.useState(g==null?void 0:g.country),[E,G]=A.useState(T.length>0),[j,U]=A.useState(null),H=j??T.map(Q=>({type:Q.type,value:Q.value})),ie=Hn(N),be=j!==null,ee=D||!y,fe=(Q,ye)=>U(H.map((ne,pe)=>pe===Q?{...ne,...ye}:ne)),ve=()=>{var Q;return U([...H,{type:((Q=ie[0])==null?void 0:Q.type)??"",value:""}])},ue=Q=>U(H.filter((ye,ne)=>ne!==Q)),Le=async()=>{if(!s||!r)return;const Q=r.getElement(we.CardElement);if(Q){x(!0),W(null);try{const{error:ye,setupIntent:ne}=await s.confirmCardSetup(a,{payment_method:{card:Q}});if(ye){W(ye.message??l("paymentCardSaveError"));return}if(!(ne!=null&&ne.payment_method)||typeof ne.payment_method!="string"){W(l("paymentMethodMissing"));return}await b.mutateAsync({paymentMethodId:ne.payment_method}),i.capture(de.PAYMENT_METHOD_UPDATED),o({type:"success",message:l("paymentCardUpdated")}),w(!1),t==null||t()}catch{W(l("paymentCardGenericError"))}finally{x(!1)}}},Ce=async()=>{if(!r)return;const Q=r.getElement("address");if(!Q)return;const{complete:ye,value:ne}=await Q.getValue();if(!ye||!ne.address){$(l("paymentAddressIncomplete"));return}J(!0),$(null);try{const{address:pe,name:_e}=ne;await C.mutateAsync({lineOne:pe.line1??"",lineTwo:pe.line2??void 0,city:pe.city??"",state:pe.state??void 0,postalCode:pe.postal_code??"",country:pe.country??""});const Ze=(_e==null?void 0:_e.trim())||void 0,Ee=H.filter(Be=>!!Be.type&&Be.value.trim()!=="").map(Be=>({type:Be.type,value:Be.value.trim()}));(Ze!==((m==null?void 0:m.name)??void 0)||be)&&await S.mutateAsync({name:Ze,taxIds:Ee}),i.capture(de.BILLING_ADDRESS_UPDATED),o({type:"success",message:l("paymentDetailsUpdated")}),t==null||t()}catch(pe){const _e=pe instanceof Error&&pe.message?pe.message:l("paymentAddressError");$(_e),o({type:"error",message:l("paymentDetailsUpdateError")})}finally{J(!1)}};return n.jsxs("div",{className:"bpb-payment-dialog__sections",children:[n.jsxs("section",{className:"bpb-payment-dialog__section",children:[n.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentMethodSection")}),d?n.jsx(R,{height:56}):ee?n.jsxs("div",{className:"bpb-payment-element",children:[!_&&n.jsx(R,{height:48}),n.jsx("div",{className:_?"bpb-card-element":"bpb-payment-element--hidden",children:n.jsx(we.CardElement,{options:{style:_t(e),hidePostalCode:!0},onReady:()=>k(!0),onChange:Q=>P(Q.complete)})}),M&&n.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:M}),n.jsxs("div",{className:"bpb-payment-dialog__section-actions",children:[y&&n.jsx(ge,{variant:"ghost",onClick:()=>w(!1),disabled:F,children:l("cancel")}),n.jsx(ge,{variant:"primary",disabled:!f,loading:F,onClick:Le,children:l("paymentSaveCard")})]})]}):n.jsxs("div",{className:"bpb-saved-card",children:[n.jsx(vt,{brand:y.brand}),n.jsxs("span",{className:"bpb-saved-card__number",children:[n.jsx("span",{className:"bpb-saved-card__brand",children:y.brand})," •••• ",y.lastFour]}),n.jsxs("span",{className:"bpb-saved-card__exp",children:[String(y.expMonth).padStart(2,"0"),"/",String(y.expYear).slice(-2)]}),n.jsx("button",{type:"button",className:"bpb-link-button",onClick:()=>w(!0),children:l("paymentReplace")})]})]}),n.jsxs("section",{className:"bpb-payment-dialog__section",children:[n.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentBillingAddressSection")}),p||h?n.jsx(R,{height:72}):n.jsxs("div",{className:"bpb-payment-element",children:[!Z&&n.jsx(R,{height:120}),n.jsx("div",{className:Z?void 0:"bpb-payment-element--hidden",children:n.jsx(we.AddressElement,{options:{mode:"billing",display:{name:"full"},defaultValues:g?{name:(m==null?void 0:m.name)??void 0,address:{line1:g.lineOne,line2:g.lineTwo,city:g.city,state:g.state,postal_code:g.postalCode,country:g.country}}:void 0},onReady:()=>V(!0),onChange:Q=>le(Q.value.address.country||void 0)})}),n.jsxs("div",{className:"bpb-tax-section",children:[n.jsxs("button",{type:"button",className:"bpb-tax-toggle","aria-expanded":E,onClick:()=>G(Q=>!Q),children:[n.jsx(Ba,{size:16,className:O("bpb-tax-toggle__chevron",E&&"bpb-tax-toggle__chevron--open")}),l("paymentTaxIds"),T.length>0&&n.jsx("span",{className:"bpb-tax-toggle__count",children:T.length})]}),E&&n.jsxs("div",{className:"bpb-tax",children:[H.length===0&&n.jsx("p",{className:"bpb-tax__empty",children:l("paymentTaxEmpty")}),H.map((Q,ye)=>n.jsxs("div",{className:"bpb-tax__row",children:[n.jsxs(kt,{"aria-label":l("paymentTaxIdType"),value:Q.type,onChange:ne=>fe(ye,{type:ne.target.value}),children:[n.jsx("option",{value:"",children:l("paymentTaxSelectType")}),ie.map(ne=>n.jsx("option",{value:ne.type,children:ne.label},ne.type)),Q.type&&!ie.some(ne=>ne.type===Q.type)&&n.jsx("option",{value:Q.type,children:Q.type})]}),n.jsx(Oa,{placeholder:l("paymentTaxIdNumber"),value:Q.value,onChange:ne=>fe(ye,{value:ne.target.value})}),n.jsx("button",{type:"button",className:"bpb-tax__remove","aria-label":l("paymentTaxRemove"),onClick:()=>ue(ye),children:n.jsx(Ea,{size:14})})]},ye)),n.jsx("button",{type:"button",className:"bpb-link-button bpb-tax__add",onClick:ve,children:l("paymentTaxAdd")})]})]}),B&&n.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:B}),n.jsx("div",{className:"bpb-payment-dialog__section-actions",children:n.jsx(ge,{variant:"primary",loading:z,onClick:Ce,children:l("paymentSaveBillingDetails")})})]})]})]})},Zn=(a,e,t)=>`bpb-dismissed:${a}:${e}:${t}`,Xn=()=>new Date().toLocaleDateString("en-CA");function Rn(a,e,t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(Zn(a,e,t))===Xn()}catch{return!1}}function es(a,e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(Zn(a,e,t),Xn())}catch{}}const Ua=1e9,as={incoming_messages_events:a=>`${ae(a)} incoming messages & events`,conversation_sessions:a=>`${ae(a)} conversation sessions`,table_rows:a=>`${ae(a)} table rows`,vector_db_storage:a=>`${Ke(a)} vector database storage`,file_storage:a=>`${Ke(a)} file storage`,collaborator_count:a=>a===1?"1 collaborator":`${ae(a)} collaborators`,bot_count:a=>a===1?"1 bot":`${ae(a)} bots`,indexed_file_count:a=>`${ae(a)} indexed files for RAG`,ai_spend:a=>`${X(a/Ua,"usd",0)} AI credit included`,always_alive:a=>a===1?"1 always-alive bot":`${ae(a)} always-alive bots`};function Mo(a,e,t){const s=(t==null?void 0:t[a])??as[a];return s?s(e):`${ae(e)} ${a.replaceAll("_"," ")}`}const ts=[{key:"conversation_sessions",label:"Conversations",unit:"count"},{key:"ai_spend",label:"AI spend",unit:"nano-usd"},{key:"table_rows",label:"Table rows",unit:"count"},{key:"vector_db_storage",label:"Vector DB storage",unit:"bytes"},{key:"file_storage",label:"File storage",unit:"bytes"}];function ra(a,e){return e==="bytes"?Ke(a):e==="nano-usd"?`$${(a/Ua).toFixed(2)}`:ae(a)}function qa(a){return a>=90?"critical":a>=75?"warning":"normal"}function ga(a){return a?ts.flatMap(({key:e,label:t,unit:s})=>{const r=a[e];if(!r||r.quota<=0)return[];const o=r.usage??0,i=Math.max(0,Math.min(100,o/r.quota*100));return[{key:e,label:t,unit:s,used:o,quota:r.quota,remaining:Math.max(0,r.quota-o),pct:i}]}).sort((e,t)=>t.pct-e.pct):[]}const ns="outgrow-free",zo=.75,Oo=5;function Uo(a,e){return a.prices[e]??(e==="month"?a.prices.year:a.prices.month)??null}function qo(a,e){var r,o;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const s=((o=a.prices.year)==null?void 0:o.amount)??(t===void 0?void 0:t*12);return s===void 0?null:s/12}const $o=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:s="team",interval:r="year",planFeatures:o={},featureDescriptions:i,period:l})=>{var Z,V;const{isOutdatedBilling:c,analytics:d,scope:u}=K(),{t:p}=oe(),{data:m}=Pe(),{data:h}=Ve(),{data:b}=De({enabled:!c}),{data:C}=je({period:l,enabled:!c}),S=a!==void 0,[y,g]=A.useState(!1),T=m==null?void 0:m.find(z=>z.id===(b==null?void 0:b.plan.current.planId)),D=b?T?ce(T)==="community":!0:!1,w=A.useMemo(()=>ga(C).find(z=>z.key==="conversation_sessions"),[C]),_=!S&&!c&&D&&!!w&&w.pct/100>=zo&&!y&&!Rn(ns,u,"modal"),k=S?!!a:_;A.useEffect(()=>{k&&d.capture(de.PLAN_PICKER_VIEWED,{source:S?"outgrow_free":"outgrow_free_auto",interval:r})},[k,S,d]);const f=()=>{S||(es(ns,u,"modal"),g(!0)),e==null||e(!1)},P=A.useMemo(()=>m?m.filter(z=>{const J=ce(z);return J!=="community"&&J!=="enterprise"&&J!=="managed"}).sort((z,J)=>He.indexOf(ce(z))-He.indexOf(ce(J))):[],[m]),F=((V=(Z=m==null?void 0:m.find(z=>ce(z)==="enterprise"))==null?void 0:Z.metadata)==null?void 0:V.contact_url)??ut;if(c||!k)return null;const x=(w==null?void 0:w.quota)??(T==null?void 0:T.features.conversation_sessions)??100,M=(w==null?void 0:w.used)??0,W=w&&w.pct>0?Math.min(100,Math.max(5,Math.round(w.pct))):0;return n.jsx(Ae,{open:k,onOpenChange:f,size:"xl","aria-label":p("outgrowTitle"),children:n.jsxs("div",{className:"bpb-outgrow",children:[n.jsxs("header",{className:"bpb-outgrow__head",children:[n.jsx("h2",{className:"bpb-outgrow__title",children:p("outgrowTitle")}),n.jsx("p",{className:"bpb-outgrow__lede",children:n.jsx(qt,{i18nKey:"outgrowLede",values:{quota:ae(x)},components:{bold:n.jsx("strong",{})}})})]}),n.jsxs("div",{className:"bpb-outgrow__usage",children:[n.jsx("span",{className:"bpb-outgrow__usage-label",children:p("outgrowSoFar")}),n.jsx("span",{className:"bpb-outgrow__usage-bar",role:"progressbar","aria-valuenow":W,"aria-valuemin":0,"aria-valuemax":100,children:n.jsx("span",{className:"bpb-outgrow__usage-fill",style:{width:`${W}%`}})}),n.jsx("span",{className:"bpb-outgrow__usage-text",children:n.jsx(qt,{i18nKey:"outgrowUsageText",values:{used:ae(M),quota:ae(x)},components:{bold:n.jsx("strong",{})}})})]}),n.jsx("div",{className:"bpb-outgrow__grid",children:P.map((z,J)=>{const B=ce(z),$=Uo(z,r),N=qo(z,r),le=B===s||z.id===s,E=z.features.conversation_sessions,G=xa(h,z,r),j=J>0?P[J-1]:void 0,U=(o[B]??Pa[B]).slice(0,Oo);return n.jsxs("div",{className:O("bpb-plan-card",le&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":z.id,children:[n.jsxs("div",{className:"bpb-plan-card__header",children:[n.jsxs("h3",{className:"bpb-plan-card__name",children:[se(z.name),le&&n.jsx(Fa,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),n.jsx("div",{className:"bpb-plan-card__price",children:N!==null&&$?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"bpb-plan-card__currency",children:ca($.currency)}),n.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(N)?N:N.toFixed(2).replace(/\.00$/,"")}),n.jsx("span",{className:"bpb-plan-card__per",children:p("perMonth")})]}):n.jsxs("span",{className:"bpb-plan-card__amount",children:[ca(($==null?void 0:$.currency)??"usd"),"0"]})})]}),E!==void 0&&n.jsxs("div",{className:"bpb-outgrow__allowance",children:[n.jsxs("p",{className:"bpb-outgrow__allowance-value",children:[n.jsxs("strong",{children:[ae(E)," ",p("conversationsUnit")]})," ",p("perMonth")]}),n.jsx("p",{className:"bpb-outgrow__allowance-pack",children:G?p("outgrowThenPer",{symbol:ca(G.currency),amount:G.amount,packSize:ae(G.packSize)}):p("outgrowNoTopup")})]}),n.jsxs(ge,{variant:le?"accent":"outline",block:!0,onClick:()=>{d.capture(de.PLAN_UPGRADE_INITIATED,{plan_name:se(z.name),interval:r,source:"outgrow_free"}),t(z.id,r),f()},children:[p("outgrowUpgradeTo",{planName:se(z.name)}),le&&n.jsx(Ma,{size:15})]}),n.jsxs("ul",{className:"bpb-plan-card__features",children:[j&&n.jsx("li",{className:"bpb-outgrow__features-lead",children:p("outgrowEverythingIn",{planName:se(j.name)})}),U.map(H=>{const ie=za(H),be=pt[H],ee=be!==void 0?p(be.label):H,fe=(i==null?void 0:i[H])??(be!==void 0?p(be.desc):void 0);return n.jsxs("li",{children:[n.jsx("span",{className:"bpb-plan-card__feature-chip",children:n.jsx(ie,{size:13})}),fe?n.jsx(ma,{label:ee,children:fe}):n.jsx("span",{children:ee})]},H)})]})]},z.id)})}),n.jsxs("footer",{className:"bpb-outgrow__footer",children:[n.jsxs("span",{children:[p("outgrowNeedCustom")," ",n.jsx("a",{href:F,target:"_blank",rel:"noopener noreferrer",children:p("outgrowTalkToSales")})]}),n.jsxs("a",{className:"bpb-outgrow__compare",href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:[p("outgrowCompareAll"),n.jsx(pa,{size:14})]})]})]})})},ze=(a,e)=>e==="bytes"?Ke(a):e==="nano-usd"?`$${(a/Ua).toFixed(2)}`:ae(a),Vo=(a,e)=>{const t=new Date;return Array.from({length:a},(s,r)=>{const o=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()-r,1));return{value:o.toISOString(),label:o.toLocaleDateString(e,{month:"long",year:"numeric",timeZone:"UTC"})}})},jo=({period:a})=>{const{data:e,isLoading:t,isError:s}=tn("ai_spend",{period:a}),{t:r}=oe();if(s)return null;if(t)return n.jsx(R,{height:96});if(!e||e.length===0)return n.jsx("p",{className:"bpb-usage__group-hint",children:r("dashboardNoBotSpend")});const o=Math.max(...e.map(i=>i.value),1);return n.jsx("div",{className:"bpb-usage-bots",children:e.map(i=>n.jsxs("div",{className:"bpb-usage-bot",children:[n.jsxs("div",{className:"bpb-usage-bot__head",children:[n.jsx("span",{className:"bpb-usage-bot__name",title:i.name,children:i.name}),n.jsx("span",{className:"bpb-usage-bot__value",children:ze(i.value,"nano-usd")})]}),n.jsx("div",{className:"bpb-usage-bar",role:"presentation",children:n.jsx("div",{className:"bpb-usage-bar__fill bpb-usage-bar__fill--normal",style:{width:`${i.value>0?Math.max(2,Math.round(i.value/o*100)):0}%`}})})]},i.botId))})},At=({entry:a,metric:e,planAllowance:t,planName:s,stacked:r})=>{const{t:o}=oe(),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?s?o("dashboardFromPlanWithAddons",{amount:ze(u,e.unit),planName:s,addonAmount:ze(p,e.unit)}):o("dashboardFromPlanGenericWithAddons",{amount:ze(u,e.unit),addonAmount:ze(p,e.unit)}):s?o("dashboardFromPlan",{amount:ze(a.quota,e.unit),planName:s}):o("dashboardFromPlanGeneric",{amount:ze(a.quota,e.unit)});return n.jsxs("div",{className:"bpb-usage-row",children:[n.jsxs("div",{className:O("bpb-usage-row__head",r&&"bpb-usage-row__head--stacked"),children:[n.jsx("span",{className:"bpb-usage-row__label",children:e.label}),n.jsxs("span",{className:"bpb-usage-row__value",children:[n.jsx("span",{className:"bpb-usage-row__used",children:ze(i,e.unit)}),n.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",ze(a.quota,e.unit)]})]})]}),n.jsxs("span",{className:"bpb-usage-tip",tabIndex:0,role:"note","aria-label":m,onMouseMove:h=>{const b=h.currentTarget.getBoundingClientRect(),C=(h.clientX-b.left)/b.width*100;h.currentTarget.style.setProperty("--bpb-tip-x",`${C}%`)},children:[n.jsx("div",{className:"bpb-usage-bar",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,children:n.jsx("div",{className:O("bpb-usage-bar__fill",`bpb-usage-bar__fill--${d}`),style:{width:`${c}%`}})}),n.jsx("span",{className:"bpb-usage-tip__bubble",role:"tooltip",children:m})]})]})},Wo=({period:a,showPeriodSelector:e=!0,periodMonths:t=12,className:s,onIncreaseLimits:r})=>{var F;const{isOutdatedBilling:o,locale:i}=K(),{t:l}=oe(),c=A.useMemo(()=>Vo(t,i),[t,i]),[d,u]=A.useState(a??((F=c[0])==null?void 0:F.value)??""),p=nn(),m=Math.max(0,c.findIndex(x=>x.value===d)),h=x=>{const M=c[m+x];M&&u(M.value)},{data:b,isLoading:C,isError:S}=je({period:d,enabled:!o}),{data:y}=De({enabled:!o}),{data:g}=Pe(),T=g==null?void 0:g.find(x=>x.id===(y==null?void 0:y.plan.current.planId)),D=T?se(T.name):void 0,w=x=>T==null?void 0:T.features[x];if(o)return n.jsx("div",{className:O("bpb-usage bpb-scope",s),children:n.jsx(Je,{})});if(C)return n.jsxs("div",{className:O("bpb-usage bpb-scope",s),"aria-busy":"true",children:[n.jsx(R,{height:80}),n.jsx(R,{height:140})]});if(S||!b)return n.jsx("div",{className:O("bpb-usage bpb-scope",s),children:n.jsx("p",{className:"bpb-usage__error",role:"alert",children:l("dashboardLoadError")})});const _=b.conversation_sessions,k=b.ai_spend,P=[{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(x=>b[x.key]);return n.jsxs("div",{className:O("bpb-usage bpb-scope",s),children:[(e&&c.length>1||r)&&n.jsxs("div",{className:"bpb-usage__header",children:[e&&c.length>1&&n.jsxs("div",{className:"bpb-usage__period",children:[n.jsx("span",{className:"bpb-usage__period-label",children:l("dashboardBillingPeriod")}),n.jsxs("div",{className:"bpb-usage__period-control",children:[n.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardPrevMonth"),onClick:()=>h(1),disabled:m>=c.length-1,children:n.jsx(bt,{size:15})}),n.jsxs("span",{className:"bpb-usage__period-field",children:[n.jsx(jn,{size:15,className:"bpb-usage__period-icon"}),n.jsx("select",{className:"bpb-usage__period-select","aria-label":l("dashboardBillingPeriod"),value:d,onChange:x=>u(x.target.value),children:c.map(x=>n.jsx("option",{value:x.value,children:x.label},x.value))}),n.jsx(Ba,{size:14,className:"bpb-usage__period-chevron"})]}),n.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardNextMonth"),onClick:()=>h(-1),disabled:m<=0,children:n.jsx(Ye,{size:15})})]})]}),r&&n.jsxs(ge,{onClick:r,children:[n.jsx(ft,{size:15}),l("dashboardIncreaseLimits")]})]}),_&&n.jsxs("section",{className:"bpb-usage__group",children:[n.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardConversationsTitle")}),n.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardConversationsHint")}),n.jsx("div",{className:"bpb-usage__card",children:n.jsx(At,{entry:_,metric:{key:"conversation_sessions",label:l("dashboardConversationsMetric"),unit:"count"},planAllowance:w("conversation_sessions"),planName:D,stacked:!0})})]}),P.length>0&&n.jsxs("section",{className:"bpb-usage__group",children:[n.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardStorageTitle")}),n.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardStorageHint")}),n.jsx("div",{className:"bpb-usage__card",children:P.map(x=>n.jsx(At,{entry:b[x.key],metric:x,planAllowance:w(x.key),planName:D},x.key))})]}),k&&n.jsxs("section",{className:"bpb-usage__group",children:[n.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardAiTitle")}),n.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardAiHint")}),n.jsx("div",{className:"bpb-usage__card",children:n.jsx(At,{entry:k,metric:{key:"ai_spend",label:l("dashboardAiSpend"),unit:"nano-usd"},stacked:!0})}),p&&n.jsxs("div",{className:"bpb-usage__card bpb-usage__card--bots",children:[n.jsx("span",{className:"bpb-usage__subhead",children:l("dashboardAiByBot")}),n.jsx(jo,{period:d})]})]})]})},ss="usage-banner",Go=({position:a="inline",threshold:e=.9,onUpgrade:t,dismissible:s=!0,ctaLabel:r,period:o,className:i})=>{const{isOutdatedBilling:l,analytics:c,scope:d}=K(),{t:u}=oe(),{data:p}=je({period:o,enabled:!l}),[m,h]=A.useState({}),[b,C]=A.useState(!1),[S,y]=A.useState(null),g=p?Object.entries(p).map(([F,x])=>({key:F,pct:x.quota>0?(x.usage??0)/x.quota:0})).filter(F=>F.pct>=e).sort((F,x)=>x.pct-F.pct)[0]:void 0,T=!!g&&(m[g.key]||Rn(ss,d,g.key));if(l||!g||T)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")}[g.key]??g.key.replace(/_/g," "),_=Math.min(100,Math.round(g.pct*100)),k=g.pct>=1,f=()=>{c.capture(de.UPGRADE_CTA_CLICKED,{source:"usage_banner",metric:g.key,usage_pct:Math.round(g.pct*100)}),t?t():C(!0)},P=k?"critical":"warning";return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:O("bpb-usage-banner bpb-scope",`bpb-usage-banner--${a}`,`bpb-usage-banner--${P}`,i),role:"alert","aria-live":"polite",children:[n.jsx(Vn,{size:18,className:"bpb-usage-banner__icon"}),n.jsx("p",{className:"bpb-usage-banner__text",children:k?u("usageBannerLimitReached",{label:w}):u("usageBannerNearLimit",{pct:_,label:w})}),n.jsxs("div",{className:"bpb-usage-banner__actions",children:[n.jsx(ge,{variant:"primary",size:"sm",onClick:f,children:r??u("usageBannerDefaultCta")}),s&&n.jsx("button",{type:"button",className:"bpb-usage-banner__dismiss","aria-label":u("usageBannerDismiss"),onClick:()=>{es(ss,d,g.key),h(F=>({...F,[g.key]:!0}))},children:n.jsx(Ea,{size:16})})]})]}),!t&&n.jsxs(n.Fragment,{children:[n.jsx(Gn,{open:b,onOpenChange:C,onSelectPlan:(F,x)=>{C(!1),y({planId:F,interval:x})}}),S&&n.jsx(Jn,{open:!!S,onOpenChange:F=>!F&&y(null),planId:S.planId,interval:S.interval,onBack:()=>{y(null),C(!0)},onSuccess:()=>y(null)})]})]})},Ko=({Icon:a,title:e,description:t,onClick:s,className:r})=>n.jsxs("button",{type:"button",className:O("bpb-action-card bpb-scope",r),onClick:s,children:[n.jsxs("div",{className:"bpb-action-card__header",children:[n.jsx(a,{size:20}),e]}),n.jsx("p",{className:"bpb-action-card__description",children:t})]}),Tt=({children:a})=>n.jsx("span",{className:"bpb-summary-card__icon","aria-hidden":"true",children:a}),rs=({isAddons:a,className:e})=>{const{manageBillingUrl:t}=K(),{t:s}=oe(),r=()=>t&&window.open(t,"_blank","noopener");return n.jsxs("button",{type:"button",className:O("bpb-summary-card bpb-scope",a?"bpb-summary-card--addons":"bpb-summary-card--plan",e),onClick:r,disabled:!t,children:[n.jsx(Tt,{children:a?n.jsx(La,{size:22}):n.jsx(Ia,{size:22})}),n.jsxs("div",{className:"bpb-summary-card__content",children:[n.jsxs("div",{className:"bpb-summary-card__body",children:[n.jsx("span",{className:"bpb-summary-card__eyebrow",children:s(a?"summaryAddonsEyebrow":"summaryCurrentPlan")}),n.jsx("span",{className:"bpb-summary-card__title",children:s("summaryManagedInDashboard")}),n.jsx("span",{className:"bpb-summary-card__meta",children:s("summaryManagedMeta")})]}),n.jsxs("span",{className:"bpb-summary-card__action",children:[s("open"),n.jsx(pa,{size:15})]})]})]})},Ho=({onManage:a,className:e})=>{var C,S;const{isOutdatedBilling:t}=K(),{t:s}=oe(),{data:r,isLoading:o}=De({enabled:!t}),{data:i,isLoading:l}=Pe();if(t)return n.jsx(rs,{isAddons:!1,className:e});if(o||l)return n.jsx(R,{height:84,rounded:!0,className:O("bpb-scope",e)});const c=r==null?void 0:r.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=((C=d==null?void 0:d.prices[u])==null?void 0:C.amount)??0,m=((S=d==null?void 0:d.prices[u])==null?void 0:S.currency)??"usd",h=d==null?void 0:d.features.conversation_sessions,b=d?ce(d):"community";return n.jsxs("button",{type:"button",className:O("bpb-summary-card bpb-summary-card--plan bpb-scope",`bpb-summary-card--tier-${b==="managed"?"enterprise":b}`,e),onClick:a,children:[n.jsx(Tt,{children:n.jsx(Ia,{size:22})}),n.jsxs("div",{className:"bpb-summary-card__content",children:[n.jsxs("div",{className:"bpb-summary-card__body",children:[n.jsx("span",{className:"bpb-summary-card__eyebrow",children:s("summaryCurrentPlan")}),n.jsx("span",{className:"bpb-summary-card__title",children:d?se(d.name):s("summaryNoPlan")}),n.jsxs("span",{className:"bpb-summary-card__meta",children:[p>0?`${X(p,m,0)}${s(u==="year"?"perYear":"perMonth")}`:s("free"),h!==void 0&&` · ${s("summaryConversationsPerMo",{n:ae(h)})}`]})]}),n.jsxs("span",{className:"bpb-summary-card__action",children:[s("manage"),n.jsx(Ye,{size:16})]})]})]})},Yo=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=K(),{t:s}=oe(),{data:r,isLoading:o}=De({enabled:!t}),{data:i,isLoading:l}=Ve();if(t)return n.jsx(rs,{isAddons:!0,className:e});if(o||l)return n.jsx(R,{height:84,rounded:!0,className:O("bpb-scope",e)});const c=(i??[]).flatMap(d=>{var p;const u=((p=r==null?void 0:r.addons[d.id])==null?void 0:p.current.quantity)??0;return u>0?[{name:$e[d.id]?s($e[d.id]):ua(d.name),quantity:u}]:[]});return n.jsxs("button",{type:"button",className:O("bpb-summary-card bpb-summary-card--addons bpb-scope",c.length>0&&"bpb-summary-card--active",e),onClick:a,children:[n.jsx(Tt,{children:n.jsx(La,{size:22})}),n.jsxs("div",{className:"bpb-summary-card__content",children:[n.jsxs("div",{className:"bpb-summary-card__body",children:[n.jsx("span",{className:"bpb-summary-card__eyebrow",children:s("summaryAddonsEyebrow")}),c.length>0?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"bpb-summary-card__title",children:c.length>1?s("summaryActiveAddons",{count:c.length}):s("summaryActiveAddon",{count:c.length})}),n.jsx("span",{className:"bpb-summary-card__meta",children:c.map(d=>`${d.quantity}× ${d.name}`).join(" · ")})]}):n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"bpb-summary-card__title",children:s("summaryNoAddons")}),n.jsx("span",{className:"bpb-summary-card__meta",children:s("summaryNoAddonsMeta")})]})]}),n.jsxs("span",{className:"bpb-summary-card__action",children:[s("manage"),n.jsx(Ye,{size:16})]})]})]})},Jo=({onManage:a,className:e})=>{var z,J;const{isOutdatedBilling:t,locale:s,manageBillingUrl:r,analytics:o}=K(),{t:i}=oe(),{data:l,isLoading:c}=De({enabled:!t}),{data:d,isLoading:u}=Pe(),{data:p,isLoading:m}=Ve();if(t){const B=()=>r&&window.open(r,"_blank","noopener");return n.jsxs("button",{type:"button",className:O("bpb-plan-banner bpb-plan-banner--community bpb-scope",e),onClick:B,disabled:!r,children:[n.jsxs("div",{className:"bpb-plan-banner__main",children:[n.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),n.jsx("span",{className:"bpb-plan-banner__name",children:i("planBannerManagedTitle")}),n.jsx("span",{className:"bpb-plan-banner__sub",children:i("planBannerManagedSub")})]}),n.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("open")," ",n.jsx(pa,{size:16})]})]})}if(c||u||m)return n.jsx(R,{height:132,rounded:!0,className:O("bpb-scope",e)});const h=l==null?void 0:l.plan.current,b=d==null?void 0:d.find(B=>B.id===(h==null?void 0:h.planId)),C=(h==null?void 0:h.interval)??"month",S=((z=b==null?void 0:b.prices[C])==null?void 0:z.currency)??"usd",y=b?ce(b):"community",g=Object.fromEntries(Object.entries((l==null?void 0:l.addons)??{}).map(([B,$])=>{var N;return[B,((N=$.current)==null?void 0:N.quantity)??0]})),T=((J=b==null?void 0:b.prices[C])==null?void 0:J.amount)??0,D=(p??[]).reduce((B,$)=>{const N=b?Da($,b,C):null;return B+(g[$.id]??0)*((N==null?void 0:N.amount)??0)},0),w=T+D,_=C==="year"?"/yr":"/mo",k=In(b,p,g).find(B=>B.key==="conversation_sessions"),f=i(y==="community"?"conversationsUnit":"conversationsPerMonth"),P=y==="enterprise"||y==="managed",F=y!=="community"&&!P,x=l==null?void 0:l.plan.next,M=x&&x.planId!==(h==null?void 0:h.planId),W=F&&!M&&(h!=null&&h.periodEnd)?Ie(h.periodEnd,s):null,Z=d==null?void 0:d.find(B=>B.id===(x==null?void 0:x.planId)),V=M&&Z?i("planBannerDowngradesTo",{plan:se(Z.name),date:Ie(x.effectiveDate,s)}):null;return n.jsxs("button",{type:"button",className:O("bpb-plan-banner",`bpb-plan-banner--${y}`,"bpb-scope",e),onClick:()=>{o.capture(de.UPGRADE_CTA_CLICKED,{source:"plan_banner",current_tier:y}),a()},children:[n.jsxs("div",{className:"bpb-plan-banner__main",children:[n.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),n.jsx("span",{className:"bpb-plan-banner__name",children:b?se(b.name):i("planBannerNoPlan")}),P?n.jsx("span",{className:"bpb-plan-banner__sub",children:k&&k.added>0?n.jsxs(n.Fragment,{children:[i("planBannerCustom")," + ",ae(k.added)," ",f]}):i("planBannerCustomConversations")}):k&&n.jsx("span",{className:"bpb-plan-banner__sub",children:k.added>0?n.jsxs(n.Fragment,{children:[ae(k.base)," + ",ae(k.added)," ",f]}):`${ae(k.total)} ${f}`})]}),n.jsxs("div",{className:"bpb-plan-banner__summary",children:[P?n.jsx("span",{className:"bpb-plan-banner__price",children:i("planBannerCustomPricing")}):n.jsx("span",{className:"bpb-plan-banner__price",children:w>0&&n.jsxs(n.Fragment,{children:[X(w,S,0),n.jsx("span",{className:"bpb-plan-banner__price-suffix",children:_})]})}),F&&n.jsxs("span",{className:"bpb-plan-banner__meta",children:[i(C==="year"?"billedAnnually":"billedMonthly"),D>0&&` ${i("planBannerInclAddons")}`]}),W&&n.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerRenews",{date:W})}),V&&n.jsx("span",{className:"bpb-plan-banner__meta",children:V})]}),n.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("planBannerManageCta")," ",n.jsx(Ye,{size:16})]})]})},Qo=({onManage:a,period:e,variant:t="card",className:s,style:r})=>{const{isOutdatedBilling:o,locale:i}=K(),{t:l}=oe(),{data:c,isLoading:d}=De({enabled:!o}),{data:u,isLoading:p}=Pe(),{data:m,isLoading:h}=je({period:e,enabled:!o});if(o)return null;if(d||p||h)return n.jsx(R,{height:72,rounded:!0,className:O("bpb-scope",s)});const b=u==null?void 0:u.find(W=>W.id===(c==null?void 0:c.plan.current.planId)),C=ga(m),S=C.find(W=>W.key==="conversation_sessions"),y=C[0],g=y&&y.key!=="conversation_sessions"&&y.pct>=75?y:S??y,T=g?Math.round(g.pct):0,D=T>0?Math.max(5,T):0,w=g?qa(g.pct):"normal",_=w!=="normal",k=b?ce(b)==="community":!1,f=c!=null&&c.plan.current.periodEnd?Ie(c.plan.current.periodEnd,i):null;let P=null,F=null;if(g&&_){const W=ra(g.remaining,g.unit);P=l(w==="critical"?"usageWidgetLimitReached":"usageWidgetRunningLow"),k&&g.key==="conversation_sessions"?F=w==="critical"?l("usageWidgetFreeExhausted"):l("usageWidgetFreeLeft",{left:W}):F=w==="critical"?l("usageWidgetUpgradeToKeepGoing"):l("usageWidgetOnlyLeft",{left:W})}const x=n.jsx(n.Fragment,{children:g?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"bpb-plan-usage__head",children:[_&&n.jsx(Vn,{size:16,className:O("bpb-plan-usage__alert",`bpb-plan-usage__alert--${w}`)}),n.jsx("span",{className:"bpb-plan-usage__plan",children:g.label}),n.jsxs("span",{className:"bpb-plan-usage__count",children:[ra(g.used,g.unit)," / ",ra(g.quota,g.unit)]}),a&&!_&&n.jsx(Ye,{size:15,className:"bpb-plan-usage__chevron"})]}),n.jsx("div",{className:"bpb-plan-usage__bar",role:"progressbar","aria-valuenow":T,"aria-valuemin":0,"aria-valuemax":100,children:n.jsx("div",{className:O("bpb-plan-usage__fill",`bpb-plan-usage__fill--${w}`),style:{width:`${D}%`}})}),P?n.jsxs("p",{className:"bpb-plan-usage__status",children:[n.jsxs("strong",{className:O("bpb-plan-usage__status-word",`bpb-plan-usage__status-word--${w}`),children:[P,"."]})," ",F&&n.jsx("span",{className:"bpb-plan-usage__status-detail",children:F})]}):f&&n.jsx("span",{className:"bpb-plan-usage__reset",children:l("usageWidgetResets",{date:f})}),a&&_&&n.jsxs("span",{className:"bpb-plan-usage__cta",children:[l("usageWidgetViewOptions"),n.jsx(Ma,{size:14})]})]}):n.jsxs("div",{className:"bpb-plan-usage__head",children:[n.jsx("span",{className:"bpb-plan-usage__plan",children:b?se(b.name):l("free")}),a&&n.jsx(Ye,{size:15,className:"bpb-plan-usage__chevron"})]})}),M=O("bpb-plan-usage bpb-scope",`bpb-plan-usage--${t}`,_&&`bpb-plan-usage--${w}`,a&&"bpb-plan-usage--clickable",s);return a?n.jsx("button",{type:"button",className:M,style:r,onClick:a,children:x}):n.jsx("div",{className:M,style:r,children:x})},os=({children:a,delay:e=200,placement:t="top",period:s,onUpgrade:r,block:o=!1,className:i})=>{const{isOutdatedBilling:l,locale:c,analytics:d}=K(),{data:u}=je({period:s,enabled:!l}),{data:p}=De({enabled:!l}),{data:m}=Pe(),[h,b]=A.useState(!1),C=A.useRef(null),S=()=>{C.current&&(clearTimeout(C.current),C.current=null)};A.useEffect(()=>S,[]);const y=ga(u),g=!l&&y.length>0,T=()=>{g&&(S(),C.current=setTimeout(()=>b(!0),Math.max(0,e)))},D=()=>{S(),b(!1)},w=m==null?void 0:m.find(M=>M.id===(p==null?void 0:p.plan.current.planId)),_=w?se(w.name):"Free",k=p!=null&&p.plan.current.periodEnd?Ie(p.plan.current.periodEnd,c):null,f=w?ce(w)==="community":!w,P=f?y.find(M=>M.key==="conversation_sessions"):void 0,F=f&&!!r,x=()=>{d.capture(de.UPGRADE_CTA_CLICKED,{source:"usage_popover"}),r==null||r()};return n.jsxs("span",{className:O("bpb-usage-pop bpb-scope",o&&"bpb-usage-pop--block",i),onMouseEnter:T,onMouseLeave:D,onFocus:T,onBlur:D,children:[a,h&&g&&n.jsxs("span",{className:O("bpb-usage-pop__card",`bpb-usage-pop__card--${t}`),role:"tooltip",children:[f?n.jsxs("span",{className:"bpb-usage-pop__header",children:[n.jsx("span",{className:"bpb-usage-pop__plan-name",children:"Free plan usage"}),P&&n.jsxs("span",{className:"bpb-usage-pop__subtitle",children:[n.jsxs("strong",{children:[ae(P.quota)," conversations"]})," included, total. They do not renew, and Free has no top-ups."]})]}):n.jsxs(n.Fragment,{children:[n.jsxs("span",{className:"bpb-usage-pop__plan",children:[n.jsxs("span",{className:"bpb-usage-pop__plan-name",children:[_," plan"]}),k&&n.jsxs("span",{className:"bpb-usage-pop__reset",children:["Resets ",k]})]}),n.jsx("span",{className:"bpb-usage-pop__title",children:"Usage this period"})]}),y.map(M=>{const W=M.pct>0?Math.max(5,M.pct):0;return n.jsxs("span",{className:"bpb-usage-pop__item",children:[n.jsxs("span",{className:"bpb-usage-pop__head",children:[n.jsx("span",{className:"bpb-usage-pop__name",children:M.label}),n.jsxs("span",{className:"bpb-usage-pop__val",children:[ra(M.used,M.unit)," / ",ra(M.quota,M.unit)]})]}),n.jsx("span",{className:"bpb-usage-pop__bar",children:n.jsx("span",{className:O("bpb-usage-pop__fill",`bpb-usage-pop__fill--${qa(M.pct)}`),style:{width:`${W}%`}})})]},M.key)}),F&&n.jsxs("span",{className:"bpb-usage-pop__nudge",children:[n.jsxs("span",{className:"bpb-usage-pop__nudge-text",children:[n.jsx("strong",{children:"Need more room?"})," Plus includes 250 conversations a month, unlimited AI agents, and packs of 100 when you need them."]}),n.jsxs("button",{type:"button",className:"bpb-usage-pop__nudge-cta",onClick:x,children:["See what you get with Plus",n.jsx(Ma,{size:14})]})]})]})]})},Zo=({size:a=20,thickness:e=3.5,showLabel:t=!1,onClick:s,popoverDelay:r=200,period:o,className:i,...l})=>{const{isOutdatedBilling:c}=K(),{data:d}=je({period:o,enabled:!c}),u=ga(d);if(c||u.length===0)return null;const p=u[0],m=qa(p.pct),h=p.pct>0?Math.max(5,p.pct):0,b=(a-e)/2,C=2*Math.PI*b,S=C*(1-h/100),y=l["aria-label"]??`${Math.round(p.pct)}% of your ${p.label.toLowerCase()} used`,g=n.jsxs(n.Fragment,{children:[n.jsxs("svg",{className:"bpb-usage-ring__svg",width:a,height:a,viewBox:`0 0 ${a} ${a}`,"aria-hidden":!0,children:[n.jsx("circle",{className:"bpb-usage-ring__track",cx:a/2,cy:a/2,r:b,fill:"none",strokeWidth:e}),n.jsx("circle",{className:O("bpb-usage-ring__arc",`bpb-usage-ring__arc--${m}`),cx:a/2,cy:a/2,r:b,fill:"none",strokeWidth:e,strokeLinecap:"round",strokeDasharray:C,strokeDashoffset:S,transform:`rotate(-90 ${a/2} ${a/2})`})]}),t&&n.jsxs("span",{className:"bpb-usage-ring__label",children:[Math.round(p.pct),"%"]})]}),T=O("bpb-usage-ring",s&&"bpb-usage-ring--clickable"),D=s?n.jsx("button",{type:"button",className:T,onClick:s,"aria-label":y,children:g}):n.jsx("span",{className:T,tabIndex:0,role:"img","aria-label":y,children:g});return n.jsx(os,{delay:r,period:o,className:i,children:D})};v.AddonsSummaryCard=Yo,v.ArrowRightIcon=Ma,v.BILLING_EVENTS=de,v.Badge=Fa,v.BankIcon=mo,v.BillingActionCard=Ko,v.BillingProvider=br,v.BoltIcon=La,v.Button=ge,v.CalendarIcon=jn,v.CardBrandBadge=vt,v.CardIcon=ht,v.ChartIcon=On,v.CheckIcon=Ln,v.CheckoutDialog=Jn,v.ChevronDownIcon=Ba,v.ChevronLeftIcon=bt,v.ChevronRightIcon=Ye,v.CloseIcon=Ea,v.DEFAULT_FEATURE_LABELS=as,v.DEFAULT_PLAN_FEATURES=Pa,v.Dialog=Ae,v.DownloadIcon=yt,v.ENTERPRISE_CONTACT_URL=ut,v.ExternalLinkIcon=pa,v.GlobeIcon=Un,v.InfinityIcon=Mn,v.InfoTooltip=ma,v.Input=Oa,v.InvoicesDialog=Io,v.LayersIcon=Ia,v.LockIcon=go,v.ManageAddonsDialog=Po,v.MessageIcon=En,v.MinusIcon=$n,v.NANO_DOLLARS_PER_DOLLAR=Ua,v.OutdatedBillingGate=Je,v.OutgrowFreeDialog=$o,v.PLAN_FEATURE_KEYS=pt,v.PLAN_ORDER=He,v.PaintIcon=qn,v.PaymentMethodDialog=Eo,v.PlanBanner=Jo,v.PlanSummaryCard=Ho,v.PlanUsageWidget=Qo,v.PlusIcon=ft,v.PuzzleIcon=Bn,v.ReceiptIcon=bo,v.SegmentedControl=Wn,v.Select=kt,v.ShieldIcon=gt,v.Skeleton=R,v.SparkleIcon=mt,v.Stepper=Qn,v.USAGE_METRICS=ts,v.UpgradePlanDialog=Gn,v.UsageBanner=Go,v.UsageDashboard=Wo,v.UsagePopover=os,v.UsageRing=Zo,v.UsersIcon=zn,v.addDays=Tn,v.addonDisplayName=ua,v.addonLimitsPreview=Fn,v.addonPrice=Da,v.billingKeys=me,v.cn=O,v.conversationPackPrice=xa,v.conversationsAddon=xn,v.currencySymbol=ca,v.featureLabel=Mo,v.formatBytes=Ke,v.formatCurrency=X,v.formatDate=Ie,v.formatQuantity=ae,v.formatUsage=ra,v.getCardElementStyle=_t,v.getStripeAppearance=Nt,v.getStripePromise=Pt,v.iconForFeature=za,v.planDisplayName=se,v.planEntitlements=In,v.planKind=ce,v.toStripeLocale=wt,v.usageItems=ga,v.usageTier=qa,v.useAddons=Ve,v.useBilling=K,v.useBillingAddress=Ra,v.useBillingReadonly=at,v.useCreatePaymentMethodIntent=tt,v.useCustomer=et,v.useInvoices=an,v.usePaymentMethod=Xa,v.usePlans=Pe,v.useSetAddons=sn,v.useSetBillingAddress=st,v.useSetCustomer=rt,v.useSetPaymentMethod=nt,v.useSetSubscription=ot,v.useSubscription=De,v.useSubscriptionPreview=Za,v.useSupportsUsageByBot=nn,v.useUsage=je,v.useUsageByBot=tn,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
|