@bpinternal/billing-ui 0.24.0 → 0.25.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 +12 -8
- package/dist/index.js +4063 -3744
- package/dist/index.umd.cjs +1 -1
- package/dist/style.css +1 -1
- package/package.json +3 -3
package/dist/index.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(k,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("react/jsx-runtime"),require("@tanstack/react-query"),require("react"),require("@stripe/stripe-js"),require("react-dom"),require("@stripe/react-stripe-js")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@tanstack/react-query","react","@stripe/stripe-js","react-dom","@stripe/react-stripe-js"],s):(k=typeof globalThis<"u"?globalThis:k||self,s(k.BillingUI={},k.ReactJsxRuntime,k.ReactQuery,k.React,k.StripeJs,k.ReactDOM,k.ReactStripeJs))})(this,function(k,s,ge,T,Zo,Wo,ze){"use strict";var tu=Object.defineProperty;var nu=(k,s,ge)=>s in k?tu(k,s,{enumerable:!0,configurable:!0,writable:!0,value:ge}):k[s]=ge;var qo=(k,s,ge)=>nu(k,typeof s!="symbol"?s+"":s,ge);const wr=new Map;function Tr(a){let e=wr.get(a);return e||(e=Zo.loadStripe(a,{developerTools:{assistant:{enabled:!1}}}),wr.set(a,e)),e}const ke={root:a=>["bpb",a],plans:a=>["bpb",a,"plans"],addons:a=>["bpb",a,"addons"],subscription:a=>["bpb",a,"subscription"],preview:(a,e)=>["bpb",a,"preview",e],paymentMethod:a=>["bpb",a,"payment-method"],customer:a=>["bpb",a,"customer"],invoices:a=>["bpb",a,"invoices"],readonly:a=>["bpb",a,"billing-readonly"],isAuthorized:a=>["bpb",a,"is-authorized"],autoRecharge:a=>["bpb",a,"auto-recharge"],usages:(a,e)=>["bpb",a,"usages",e],bots:a=>["bpb",a,"bots"],usageByBot:(a,e,t)=>["bpb",a,"usage-by-bot",e,t]},Go=["billing","manager","administrator","owner"];function Le(a){const{client:e,refetchInterval:t,queryClient:n,scope:r}=X();return ge.useQuery({queryKey:ke.isAuthorized(r),queryFn:async()=>{const o=await e.getWorkspaceMember({});return Go.includes(o.role)},enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:t},n)}function ba(a=!0){const{data:e}=Le();return a&&e===!0}function Ue(){const{client:a,queryClient:e,scope:t}=X();return ge.useQuery({queryKey:ke.plans(t),queryFn:()=>a.listPlans({})},e)}function Qe(){const{client:a,queryClient:e,scope:t}=X();return ge.useQuery({queryKey:ke.addons(t),queryFn:()=>a.listAddons({})},e)}function Fe(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=X();return ge.useQuery({queryKey:ke.subscription(n),queryFn:()=>e.getSubscription({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function zt(a){const{data:e}=Fe(a);return!!(e!=null&&e.pendingUpgrade)}function kn(a,e){const{client:t,queryClient:n,scope:r}=X(),o=ba(e==null?void 0:e.enabled);return ge.useQuery({queryKey:ke.preview(r,a),queryFn:()=>t.previewSubscriptionUpdate(a),enabled:o},n)}function wn(a){const{client:e,queryClient:t,scope:n}=X(),r=ba(a==null?void 0:a.enabled);return ge.useQuery({queryKey:ke.paymentMethod(n),queryFn:()=>e.getPaymentMethod({}),enabled:r},t)}function Tn(a){const{client:e,queryClient:t,scope:n}=X(),r=ba(a==null?void 0:a.enabled);return ge.useQuery({queryKey:ke.customer(n),queryFn:()=>e.getCustomer({}),enabled:r},t)}function Ir(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=X(),o=ba(a==null?void 0:a.enabled);return ge.useQuery({queryKey:ke.invoices(n),queryFn:()=>e.listInvoices({}),enabled:o,refetchInterval:r},t)}function Ko(a){const{client:e,queryClient:t,scope:n}=X(),r=ba(!!a);return ge.useQuery({queryKey:["bpb",n,"pending-invoice",a],queryFn:async()=>{let o;for(let i=0;i<20;i++){const{invoices:l,meta:d}=await e.listInvoices({nextToken:o}),c=l.find(u=>u.id===a);if(c)return c;if(!d.nextToken)return null;o=d.nextToken}return null},enabled:r},t)}function In(a){const{client:e,queryClient:t,scope:n}=X(),r=ba(a==null?void 0:a.enabled);return ge.useQuery({queryKey:ke.readonly(n),queryFn:()=>e.getBillingReadonly({}),enabled:r},t)}function An(a){const{client:e,queryClient:t,scope:n}=X(),r=ba(a==null?void 0:a.enabled);return ge.useQuery({queryKey:ke.autoRecharge(n),queryFn:()=>e.getAutoRechargeSettings({}).then(o=>o.settings),enabled:r},t)}function Ar(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:r=>a.setAutoRechargeSettings(r).then(o=>o.settings),onSuccess:async r=>{e.setQueryData(ke.autoRecharge(t),r),n({type:"auto-recharge"})}},e)}function Ta(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=X(),o=a!=null&&a.period?new Date(a.period):new Date,i=`${o.getUTCFullYear()}-${String(o.getUTCMonth()+1).padStart(2,"0")}`;return ge.useQuery({queryKey:ke.usages(n,i),queryFn:()=>e.getWorkspaceUsages({period:`${i}-01T00:00:00.000Z`}).then(l=>l.quotas),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function Pr(a,e){const{client:t,queryClient:n,scope:r,refetchInterval:o}=X(),i=ba(e==null?void 0:e.enabled),l=t.breakDownWorkspaceUsageByBot,d=t.listBots,c=typeof l=="function"&&typeof d=="function",u=e!=null&&e.period?new Date(e.period):new Date,p=`${u.getUTCFullYear()}-${String(u.getUTCMonth()+1).padStart(2,"0")}`;return ge.useQuery({queryKey:ke.usageByBot(r,a,p),queryFn:async()=>{const[g,m]=await Promise.all([l({id:r,type:a,period:`${p}-01T00:00:00.000Z`}),d({})]),v=new Map(m.bots.map(y=>[y.id,y.name]));return g.data.map(y=>({botId:y.botId,name:v.get(y.botId)??y.botId,value:y.value})).sort((y,C)=>C.value-y.value)},enabled:c&&i,refetchInterval:o},n)}function Dr(){const{client:a}=X();return typeof a.breakDownWorkspaceUsageByBot=="function"&&typeof a.listBots=="function"}function Pn(){const{client:a,queryClient:e}=X();return ge.useMutation({mutationFn:()=>a.createPaymentMethodIntent({})},e)}function Dn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:r=>a.setPaymentMethod(r),onSuccess:async()=>{await e.invalidateQueries({queryKey:ke.paymentMethod(t)}),n({type:"payment-method"})}},e)}function xn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:r=>a.setCustomer(r),onSuccess:async(r,o)=>{await e.invalidateQueries({queryKey:ke.customer(t)}),o.address&&n({type:"billing-address"})}},e)}function xr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:r=>a.setAddons(r),onSuccess:async r=>{e.setQueryData(ke.subscription(t),r),await Promise.all([e.invalidateQueries({queryKey:ke.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:r.pendingUpgrade?"pending-upgrade":"addons"})}},e)}function En(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:async r=>{const o=await a.setPlan({planId:r.planId,interval:r.interval,couponCode:r.couponCode});return r.addons&&Object.keys(r.addons).length>0?await a.setAddons({addons:r.addons,couponCode:r.couponCode}):o},onSuccess:async r=>{e.setQueryData(ke.subscription(t),r),await Promise.all([e.invalidateQueries({queryKey:ke.plans(t)}),e.invalidateQueries({queryKey:ke.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:r.pendingUpgrade?"pending-upgrade":"subscription"})}},e)}function Er(){const{client:a,queryClient:e,scope:t}=X();return ge.useMutation({mutationFn:async n=>{t!=="default"&&await a.saveWorkspaceCancellationReasons({id:t,reasons:[n.reason],comment:n.comment})}},e)}function Lr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:r=>a.payInvoice(r),onSuccess:async()=>{await new Promise(r=>setTimeout(r,1e3)),await Promise.all([e.invalidateQueries({queryKey:ke.subscription(t)}),e.invalidateQueries({queryKey:ke.invoices(t)})]),n({type:"pending-upgrade"})}},e)}function Fr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=X();return ge.useMutation({mutationFn:async()=>{await a.cancelPendingSubscriptionUpgrade({})},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:ke.subscription(t)}),e.invalidateQueries({queryKey:ke.invoices(t)})]),n({type:"pending-upgrade"})}},e)}const Ia=["community","plus","team","enterprise","managed"],$o=["community","plus","team","enterprise","managed"];function ye(a){var n;const e=a.name.toLowerCase();if(e.includes("community")||e.includes("pay-as-you-go")||e.includes("free"))return"community";if(e.includes("plus"))return"plus";if(e.includes("team"))return"team";if(e.includes("managed"))return"managed";if(e.includes("enterprise"))return"enterprise";const t=(n=a.metadata)==null?void 0:n.legacyName;return $o.find(r=>r===t)??"community"}const Ln="https://botpress.com/contact-us/managed-plan",Ro={capture:()=>{}},Mr=(a,e)=>({...a!==void 0&&{workspace_billing_version:a},...e&&{workspace_plan:e,workspace_is_paid:e!=="community"}});function Ho({analytics:a,client:e,queryClient:t,scope:n,billingVersion:r,isOutdatedBilling:o}){const i=!!a&&r!==void 0&&!o,{data:l}=ge.useQuery({queryKey:ke.subscription(n),queryFn:()=>e.getSubscription({}),enabled:i},t),{data:d}=ge.useQuery({queryKey:ke.plans(n),queryFn:()=>e.listPlans({}),enabled:i},t),c=d==null?void 0:d.find(g=>g.id===(l==null?void 0:l.plan.current.planId)),u=!o&&c?ye(c):void 0,p=T.useRef(Mr(r,u));return T.useEffect(()=>{p.current=Mr(r,u)},[r,u]),T.useMemo(()=>a?{capture:(g,m)=>a.capture(g,{...p.current,...m})}:Ro,[a])}var me=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Yo(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Jo={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};const Qo=Yo(Jo);var Xo=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function Or(a){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=a.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(e.name=t[1],(Qo[t[1]]||a.charAt(a.length-2)==="/")&&(e.voidElement=!0),e.name.startsWith("!--"))){var n=a.indexOf("-->");return{type:"comment",comment:n!==-1?a.slice(4,n):""}}for(var r=new RegExp(Xo),o=null;(o=r.exec(a))!==null;)if(o[0].trim())if(o[1]){var i=o[1].trim(),l=[i,""];i.indexOf("=")>-1&&(l=i.split("=")),e.attrs[l[0]]=l[1],r.lastIndex--}else o[2]&&(e.attrs[o[2]]=o[3].trim().substring(1,o[3].length-1));return e}var ei=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,ai=/^\s*$/,ti=Object.create(null);function Ur(a,e){switch(e.type){case"text":return a+e.content;case"tag":return a+="<"+e.name+(e.attrs?function(t){var n=[];for(var r in t)n.push(r+'="'+t[r]+'"');return n.length?" "+n.join(" "):""}(e.attrs):"")+(e.voidElement?"/>":">"),e.voidElement?a:a+e.children.reduce(Ur,"")+"</"+e.name+">";case"comment":return a+"<!--"+e.comment+"-->"}}var ni={parse:function(a,e){e||(e={}),e.components||(e.components=ti);var t,n=[],r=[],o=-1,i=!1;if(a.indexOf("<")!==0){var l=a.indexOf("<");n.push({type:"text",content:l===-1?a:a.substring(0,l)})}return a.replace(ei,function(d,c){if(i){if(d!=="</"+t.name+">")return;i=!1}var u,p=d.charAt(1)!=="/",g=d.startsWith("<!--"),m=c+d.length,v=a.charAt(m);if(g){var y=Or(d);return o<0?(n.push(y),n):((u=r[o]).children.push(y),n)}if(p&&(o++,(t=Or(d)).type==="tag"&&e.components[t.name]&&(t.type="component",i=!0),t.voidElement||i||!v||v==="<"||t.children.push({type:"text",content:a.slice(m,a.indexOf("<",m))}),o===0&&n.push(t),(u=r[o-1])&&u.children.push(t),r[o]=t),(!p||t.voidElement)&&(o>-1&&(t.voidElement||t.name===d.slice(2,-1))&&(o--,t=o===-1?n:r[o]),!i&&v!=="<"&&v)){u=o===-1?n:r[o].children;var C=a.indexOf("<",m),N=a.slice(m,C===-1?void 0:C);ai.test(N)&&(N=" "),(C>-1&&o+u.length>=0||N!==" ")&&u.push({type:"text",content:N})}}),n},stringify:function(a){return a.reduce(function(e,t){return e+Ur("",t)},"")}};function Vt(){if(console&&console.warn){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Ve(e[0])&&(e[0]=`react-i18next:: ${e[0]}`),console.warn(...e)}}const Br={};function jt(){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];Ve(e[0])&&Br[e[0]]||(Ve(e[0])&&(Br[e[0]]=new Date),Vt(...e))}const zr=(a,e)=>()=>{if(a.isInitialized)e();else{const t=()=>{setTimeout(()=>{a.off("initialized",t)},0),e()};a.on("initialized",t)}},Vr=(a,e,t)=>{a.loadNamespaces(e,zr(a,t))},jr=(a,e,t,n)=>{Ve(t)&&(t=[t]),t.forEach(r=>{a.options.ns.indexOf(r)<0&&a.options.ns.push(r)}),a.loadLanguages(e,zr(a,n))},ri=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=e.languages[0],r=e.options?e.options.fallbackLng:!1,o=e.languages[e.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(l,d)=>{const c=e.services.backendConnector.state[`${l}|${d}`];return c===-1||c===2};return t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!i(e.isLanguageChangingTo,a)?!1:!!(e.hasResourceBundle(n,a)||!e.services.backendConnector.backend||e.options.resources&&!e.options.partialBundledLanguages||i(n,a)&&(!r||i(o,a)))},si=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(jt("i18n.languages were undefined or empty",e.languages),!0):e.options.ignoreJSONStructure!==void 0?e.hasLoadedNamespace(a,{lng:t.lng,precheck:(r,o)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&r.services.backendConnector.backend&&r.isLanguageChangingTo&&!o(r.isLanguageChangingTo,a))return!1}}):ri(a,e,t)},Ve=a=>typeof a=="string",Va=a=>typeof a=="object"&&a!==null,oi=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,ii={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},li=a=>ii[a];let Fn={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:a=>a.replace(oi,li)};const di=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Fn={...Fn,...a}},qr=()=>Fn;let Zr;const ci=a=>{Zr=a},Mn=()=>Zr,On=(a,e)=>{if(!a)return!1;const t=a.props?a.props.children:a.children;return e?t.length>0:!!t},Un=a=>{if(!a)return[];const e=a.props?a.props.children:a.children;return a.props&&a.props.i18nIsDynamicList?ja(e):e},ui=a=>Array.isArray(a)&&a.every(T.isValidElement),ja=a=>Array.isArray(a)?a:[a],pi=(a,e)=>{const t={...e};return t.props=Object.assign(a.props,e.props),t},Wr=(a,e)=>{if(!a)return"";let t="";const n=ja(a),r=e.transSupportBasicHtmlNodes&&e.transKeepBasicHtmlNodesFor?e.transKeepBasicHtmlNodesFor:[];return n.forEach((o,i)=>{if(Ve(o))t+=`${o}`;else if(T.isValidElement(o)){const{props:l,type:d}=o,c=Object.keys(l).length,u=r.indexOf(d)>-1,p=l.children;if(!p&&u&&!c)t+=`<${d}/>`;else if(!p&&(!u||c)||l.i18nIsDynamicList)t+=`<${i}></${i}>`;else if(u&&c===1&&Ve(p))t+=`<${d}>${p}</${d}>`;else{const g=Wr(p,e);t+=`<${i}>${g}</${i}>`}}else if(o===null)Vt("Trans: the passed in value is invalid - seems you passed in a null child.");else if(Va(o)){const{format:l,...d}=o,c=Object.keys(d);if(c.length===1){const u=l?`${c[0]}, ${l}`:c[0];t+=`{{${u}}}`}else Vt("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",o)}else Vt("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",o)}),t},gi=(a,e,t,n,r,o)=>{if(e==="")return[];const i=n.transKeepBasicHtmlNodesFor||[],l=e&&new RegExp(i.map(C=>`<${C}`).join("|")).test(e);if(!a&&!l&&!o)return[e];const d={},c=C=>{ja(C).forEach(_=>{Ve(_)||(On(_)?c(Un(_)):Va(_)&&!T.isValidElement(_)&&Object.assign(d,_))})};c(a);const u=ni.parse(`<0>${e}</0>`),p={...d,...r},g=(C,N,_)=>{const I=Un(C),b=v(I,N.children,_);return ui(I)&&b.length===0||C.props&&C.props.i18nIsDynamicList?I:b},m=(C,N,_,I,b)=>{C.dummy?(C.children=N,_.push(T.cloneElement(C,{key:I},b?void 0:N))):_.push(...T.Children.map([C],A=>{const S={...A.props};return delete S.i18nIsDynamicList,T.createElement(A.type,{...S,key:I,ref:A.ref},b?null:N)}))},v=(C,N,_)=>{const I=ja(C);return ja(N).reduce((A,S,D)=>{const w=S.children&&S.children[0]&&S.children[0].content&&t.services.interpolator.interpolate(S.children[0].content,p,t.language);if(S.type==="tag"){let z=I[parseInt(S.name,10)];_.length===1&&!z&&(z=_[0][S.name]),z||(z={});const x=Object.keys(S.attrs).length!==0?pi({props:S.attrs},z):z,L=T.isValidElement(x),Z=L&&On(S,!0)&&!S.voidElement,j=l&&Va(x)&&x.dummy&&!L,ee=Va(a)&&Object.hasOwnProperty.call(a,S.name);if(Ve(x)){const R=t.services.interpolator.interpolate(x,p,t.language);A.push(R)}else if(On(x)||Z){const R=g(x,S,_);m(x,R,A,D)}else if(j){const R=v(I,S.children,_);m(x,R,A,D)}else if(Number.isNaN(parseFloat(S.name)))if(ee){const R=g(x,S,_);m(x,R,A,D,S.voidElement)}else if(n.transSupportBasicHtmlNodes&&i.indexOf(S.name)>-1)if(S.voidElement)A.push(T.createElement(S.name,{key:`${S.name}-${D}`}));else{const R=v(I,S.children,_);A.push(T.createElement(S.name,{key:`${S.name}-${D}`},R))}else if(S.voidElement)A.push(`<${S.name} />`);else{const R=v(I,S.children,_);A.push(`<${S.name}>${R}</${S.name}>`)}else if(Va(x)&&!L){const R=S.children[0]?w:null;R&&A.push(R)}else m(x,w,A,D,S.children.length!==1||!w)}else if(S.type==="text"){const z=n.transWrapTextNodes,x=o?n.unescape(t.services.interpolator.interpolate(S.content,p,t.language)):t.services.interpolator.interpolate(S.content,p,t.language);z?A.push(T.createElement(z,{key:`${S.name}-${D}`},x)):A.push(x)}return A},[])},y=v([{dummy:!0,children:a||[]}],u,ja(a||[]));return Un(y[0])};function mi(a){let{children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:i={},values:l,defaults:d,components:c,ns:u,i18n:p,t:g,shouldUnescape:m,...v}=a;const y=p||Mn();if(!y)return jt("You will need to pass in an i18next instance by using i18nextReactModule"),e;const C=g||y.t.bind(y)||(Z=>Z),N={...qr(),...y.options&&y.options.react};let _=u||C.ns||y.options&&y.options.defaultNS;_=Ve(_)?[_]:_||["translation"];const I=Wr(e,N),b=d||I||N.transEmptyNodeValue||r,{hashTransKey:A}=N,S=r||(A?A(I||b):I||b);y.options&&y.options.interpolation&&y.options.interpolation.defaultVariables&&(l=l&&Object.keys(l).length>0?{...l,...y.options.interpolation.defaultVariables}:{...y.options.interpolation.defaultVariables});const D=l||t!==void 0||!e?i.interpolation:{interpolation:{...i.interpolation,prefix:"#$?",suffix:"?$#"}},w={...i,context:o||i.context,count:t,...l,...D,defaultValue:b,ns:_},z=S?C(S,w):b;c&&Object.keys(c).forEach(Z=>{const j=c[Z];if(typeof j.type=="function"||!j.props||!j.props.children||z.indexOf(`${Z}/>`)<0&&z.indexOf(`${Z} />`)<0)return;function ee(){return T.createElement(T.Fragment,null,j)}c[Z]=T.createElement(ee)});const x=gi(c||e,z,y,N,w,m),L=n!==void 0?n:N.defaultTransParent;return L?T.createElement(L,v,x):x}const hi={type:"3rdParty",init(a){di(a.options.react),ci(a)}},Bn=T.createContext();class bi{constructor(){qo(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}}function nt(a){let{children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:i={},values:l,defaults:d,components:c,ns:u,i18n:p,t:g,shouldUnescape:m,...v}=a;const{i18n:y,defaultNS:C}=T.useContext(Bn)||{},N=p||y||Mn(),_=g||N&&N.t.bind(N);return mi({children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:i,values:l,defaults:d,components:c,ns:u||_&&_.ns||C||N&&N.options&&N.options.defaultNS,i18n:N,t:g,shouldUnescape:m,...v})}const fi=(a,e)=>{const t=T.useRef();return T.useEffect(()=>{t.current=a},[a,e]),t.current},Gr=(a,e,t,n)=>a.getFixedT(e,t,n),yi=(a,e,t,n)=>T.useCallback(Gr(a,e,t,n),[a,e,t,n]),pe=function(a){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:n,defaultNS:r}=T.useContext(Bn)||{},o=t||n||Mn();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new bi),!o){jt("You will need to pass in an i18next instance by using initReactI18next");const b=(S,D)=>Ve(D)?D:Va(D)&&Ve(D.defaultValue)?D.defaultValue:Array.isArray(S)?S[S.length-1]:S,A=[b,{},!1];return A.t=b,A.i18n={},A.ready=!1,A}o.options.react&&o.options.react.wait!==void 0&&jt("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const i={...qr(),...o.options.react,...e},{useSuspense:l,keyPrefix:d}=i;let c=r||o.options&&o.options.defaultNS;c=Ve(c)?[c]:c||["translation"],o.reportNamespaces.addUsedNamespaces&&o.reportNamespaces.addUsedNamespaces(c);const u=(o.isInitialized||o.initializedStoreOnce)&&c.every(b=>si(b,o,i)),p=yi(o,e.lng||null,i.nsMode==="fallback"?c:c[0],d),g=()=>p,m=()=>Gr(o,e.lng||null,i.nsMode==="fallback"?c:c[0],d),[v,y]=T.useState(g);let C=c.join();e.lng&&(C=`${e.lng}${C}`);const N=fi(C),_=T.useRef(!0);T.useEffect(()=>{const{bindI18n:b,bindI18nStore:A}=i;_.current=!0,!u&&!l&&(e.lng?jr(o,e.lng,c,()=>{_.current&&y(m)}):Vr(o,c,()=>{_.current&&y(m)})),u&&N&&N!==C&&_.current&&y(m);const S=()=>{_.current&&y(m)};return b&&o&&o.on(b,S),A&&o&&o.store.on(A,S),()=>{_.current=!1,b&&o&&b.split(" ").forEach(D=>o.off(D,S)),A&&o&&A.split(" ").forEach(D=>o.store.off(D,S))}},[o,C]),T.useEffect(()=>{_.current&&u&&y(g)},[o,d,u]);const I=[v,o,u];if(I.t=v,I.i18n=o,I.ready=u,u||!u&&!l)return I;throw new Promise(b=>{e.lng?jr(o,e.lng,c,()=>b()):Vr(o,c,()=>b())})};function vi(a){let{i18n:e,defaultNS:t,children:n}=a;const r=T.useMemo(()=>({i18n:e,defaultNS:t}),[e,t]);return T.createElement(Bn.Provider,{value:r},n)}const te=a=>typeof a=="string",rt=()=>{let a,e;const t=new Promise((n,r)=>{a=n,e=r});return t.resolve=a,t.reject=e,t},Kr=a=>a==null?"":""+a,_i=(a,e,t)=>{a.forEach(n=>{e[n]&&(t[n]=e[n])})},Si=/###/g,$r=a=>a&&a.indexOf("###")>-1?a.replace(Si,"."):a,Rr=a=>!a||te(a),st=(a,e,t)=>{const n=te(e)?e.split("."):e;let r=0;for(;r<n.length-1;){if(Rr(a))return{};const o=$r(n[r]);!a[o]&&t&&(a[o]=new t),Object.prototype.hasOwnProperty.call(a,o)?a=a[o]:a={},++r}return Rr(a)?{}:{obj:a,k:$r(n[r])}},Hr=(a,e,t)=>{const{obj:n,k:r}=st(a,e,Object);if(n!==void 0||e.length===1){n[r]=t;return}let o=e[e.length-1],i=e.slice(0,e.length-1),l=st(a,i,Object);for(;l.obj===void 0&&i.length;)o=`${i[i.length-1]}.${o}`,i=i.slice(0,i.length-1),l=st(a,i,Object),l&&l.obj&&typeof l.obj[`${l.k}.${o}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${o}`]=t},Ci=(a,e,t,n)=>{const{obj:r,k:o}=st(a,e,Object);r[o]=r[o]||[],r[o].push(t)},qt=(a,e)=>{const{obj:t,k:n}=st(a,e);if(t)return t[n]},Ni=(a,e,t)=>{const n=qt(a,t);return n!==void 0?n:qt(e,t)},Yr=(a,e,t)=>{for(const n in e)n!=="__proto__"&&n!=="constructor"&&(n in a?te(a[n])||a[n]instanceof String||te(e[n])||e[n]instanceof String?t&&(a[n]=e[n]):Yr(a[n],e[n],t):a[n]=e[n]);return a},qa=a=>a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var ki={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const wi=a=>te(a)?a.replace(/[&<>"'\/]/g,e=>ki[e]):a;class Ti{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(t!==void 0)return t;const n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}}const Ii=[" ",",","?","!",";"],Ai=new Ti(20),Pi=(a,e,t)=>{e=e||"",t=t||"";const n=Ii.filter(i=>e.indexOf(i)<0&&t.indexOf(i)<0);if(n.length===0)return!0;const r=Ai.getRegExp(`(${n.map(i=>i==="?"?"\\?":i).join("|")})`);let o=!r.test(a);if(!o){const i=a.indexOf(t);i>0&&!r.test(a.substring(0,i))&&(o=!0)}return o},zn=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!a)return;if(a[e])return a[e];const n=e.split(t);let r=a;for(let o=0;o<n.length;){if(!r||typeof r!="object")return;let i,l="";for(let d=o;d<n.length;++d)if(d!==o&&(l+=t),l+=n[d],i=r[l],i!==void 0){if(["string","number","boolean"].indexOf(typeof i)>-1&&d<n.length-1)continue;o+=d-o+1;break}r=i}return r},Zt=a=>a&&a.replace("_","-"),Di={type:"logger",log(a){this.output("log",a)},warn(a){this.output("warn",a)},error(a){this.output("error",a)},output(a,e){console&&console[a]&&console[a].apply(console,e)}};class Wt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(e,t)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||Di,this.options=t,this.debug=t.debug}log(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}deprecate(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,n,r){return r&&!this.debug?null:(te(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new Wt(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new Wt(this.logger,e)}}var Xe=new Wt;class Gt{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(n=>{this.observers[n]||(this.observers[n]=new Map);const r=this.observers[n].get(t)||0;this.observers[n].set(t,r+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this.observers[e]&&Array.from(this.observers[e].entries()).forEach(i=>{let[l,d]=i;for(let c=0;c<d;c++)l(...n)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(i=>{let[l,d]=i;for(let c=0;c<d;c++)l.apply(l,[e,...n])})}}class Jr extends Gt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,i=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;e.indexOf(".")>-1?l=e.split("."):(l=[e,t],n&&(Array.isArray(n)?l.push(...n):te(n)&&o?l.push(...n.split(o)):l.push(n)));const d=qt(this.data,l);return!d&&!t&&!n&&e.indexOf(".")>-1&&(e=l[0],t=l[1],n=l.slice(2).join(".")),d||!i||!te(n)?d:zn(this.data&&this.data[e]&&this.data[e][t],n,o)}addResource(e,t,n,r){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator;let l=[e,t];n&&(l=l.concat(i?n.split(i):n)),e.indexOf(".")>-1&&(l=e.split("."),r=t,t=l[1]),this.addNamespaces(t),Hr(this.data,l,r),o.silent||this.emit("added",e,t,n,r)}addResources(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const o in n)(te(n[o])||Array.isArray(n[o]))&&this.addResource(e,t,o,n[o],{silent:!0});r.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,r,o){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},l=[e,t];e.indexOf(".")>-1&&(l=e.split("."),r=n,n=t,t=l[1]),this.addNamespaces(t);let d=qt(this.data,l)||{};i.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?Yr(d,n,o):d={...d,...n},Hr(this.data,l,d),i.silent||this.emit("added",e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(e,t)}:this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(r=>t[r]&&Object.keys(t[r]).length>0)}toJSON(){return this.data}}var Qr={processors:{},addPostProcessor(a){this.processors[a.name]=a},handle(a,e,t,n,r){return a.forEach(o=>{this.processors[o]&&(e=this.processors[o].process(e,t,n,r))}),e}};const Xr={};class Kt extends Gt{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),_i(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Xe.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(e==null)return!1;const n=this.resolve(e,t);return n&&n.res!==void 0}extractFromKey(e,t){let n=t.nsSeparator!==void 0?t.nsSeparator:this.options.nsSeparator;n===void 0&&(n=":");const r=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let o=t.ns||this.options.defaultNS||[];const i=n&&e.indexOf(n)>-1,l=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!Pi(e,n,r);if(i&&!l){const d=e.match(this.interpolator.nestingRegexp);if(d&&d.length>0)return{key:e,namespaces:te(o)?[o]:o};const c=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(c[0])>-1)&&(o=c.shift()),e=c.join(r)}return{key:e,namespaces:te(o)?[o]:o}}translate(e,t,n){if(typeof t!="object"&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),typeof t=="object"&&(t={...t}),t||(t={}),e==null)return"";Array.isArray(e)||(e=[String(e)]);const r=t.returnDetails!==void 0?t.returnDetails:this.options.returnDetails,o=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator,{key:i,namespaces:l}=this.extractFromKey(e[e.length-1],t),d=l[l.length-1],c=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(c&&c.toLowerCase()==="cimode"){if(u){const b=t.nsSeparator||this.options.nsSeparator;return r?{res:`${d}${b}${i}`,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:d,usedParams:this.getUsedParamsDetails(t)}:`${d}${b}${i}`}return r?{res:i,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:d,usedParams:this.getUsedParamsDetails(t)}:i}const p=this.resolve(e,t);let g=p&&p.res;const m=p&&p.usedKey||i,v=p&&p.exactUsedKey||i,y=Object.prototype.toString.apply(g),C=["[object Number]","[object Function]","[object RegExp]"],N=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,_=!this.i18nFormat||this.i18nFormat.handleAsObject,I=!te(g)&&typeof g!="boolean"&&typeof g!="number";if(_&&g&&I&&C.indexOf(y)<0&&!(te(N)&&Array.isArray(g))){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const b=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,g,{...t,ns:l}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(p.res=b,p.usedParams=this.getUsedParamsDetails(t),p):b}if(o){const b=Array.isArray(g),A=b?[]:{},S=b?v:m;for(const D in g)if(Object.prototype.hasOwnProperty.call(g,D)){const w=`${S}${o}${D}`;A[D]=this.translate(w,{...t,joinArrays:!1,ns:l}),A[D]===w&&(A[D]=g[D])}g=A}}else if(_&&te(N)&&Array.isArray(g))g=g.join(N),g&&(g=this.extendTranslation(g,e,t,n));else{let b=!1,A=!1;const S=t.count!==void 0&&!te(t.count),D=Kt.hasDefaultValue(t),w=S?this.pluralResolver.getSuffix(c,t.count,t):"",z=t.ordinal&&S?this.pluralResolver.getSuffix(c,t.count,{ordinal:!1}):"",x=S&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),L=x&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${w}`]||t[`defaultValue${z}`]||t.defaultValue;!this.isValidLookup(g)&&D&&(b=!0,g=L),this.isValidLookup(g)||(A=!0,g=i);const j=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&A?void 0:g,ee=D&&L!==g&&this.options.updateMissing;if(A||b||ee){if(this.logger.log(ee?"updateKey":"missingKey",c,d,i,ee?L:g),o){const W=this.resolve(i,{...t,keySeparator:!1});W&&W.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let R=[];const O=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&O&&O[0])for(let W=0;W<O.length;W++)R.push(O[W]);else this.options.saveMissingTo==="all"?R=this.languageUtils.toResolveHierarchy(t.lng||this.language):R.push(t.lng||this.language);const q=(W,J,E)=>{const ce=D&&E!==g?E:j;this.options.missingKeyHandler?this.options.missingKeyHandler(W,d,J,ce,ee,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(W,d,J,ce,ee,t),this.emit("missingKey",W,d,J,g)};this.options.saveMissing&&(this.options.saveMissingPlurals&&S?R.forEach(W=>{const J=this.pluralResolver.getSuffixes(W,t);x&&t[`defaultValue${this.options.pluralSeparator}zero`]&&J.indexOf(`${this.options.pluralSeparator}zero`)<0&&J.push(`${this.options.pluralSeparator}zero`),J.forEach(E=>{q([W],i+E,t[`defaultValue${E}`]||L)})}):q(R,i,L))}g=this.extendTranslation(g,e,t,p,n),A&&g===i&&this.options.appendNamespaceToMissingKey&&(g=`${d}:${i}`),(A||b)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?g=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${d}:${i}`:i,b?g:void 0):g=this.options.parseMissingKeyHandler(g))}return r?(p.res=g,p.usedParams=this.getUsedParamsDetails(t),p):g}extendTranslation(e,t,n,r,o){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const c=te(e)&&(n&&n.interpolation&&n.interpolation.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let u;if(c){const g=e.match(this.interpolator.nestingRegexp);u=g&&g.length}let p=n.replace&&!te(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(p={...this.options.interpolation.defaultVariables,...p}),e=this.interpolator.interpolate(e,p,n.lng||this.language||r.usedLng,n),c){const g=e.match(this.interpolator.nestingRegexp),m=g&&g.length;u<m&&(n.nest=!1)}!n.lng&&this.options.compatibilityAPI!=="v1"&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,function(){for(var g=arguments.length,m=new Array(g),v=0;v<g;v++)m[v]=arguments[v];return o&&o[0]===m[0]&&!n.context?(i.logger.warn(`It seems you are nesting recursively key: ${m[0]} in key: ${t[0]}`),null):i.translate(...m,t)},n)),n.interpolation&&this.interpolator.reset()}const l=n.postProcess||this.options.postProcess,d=te(l)?[l]:l;return e!=null&&d&&d.length&&n.applyPostProcessor!==!1&&(e=Qr.handle(d,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n,r,o,i,l;return te(e)&&(e=[e]),e.forEach(d=>{if(this.isValidLookup(n))return;const c=this.extractFromKey(d,t),u=c.key;r=u;let p=c.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const g=t.count!==void 0&&!te(t.count),m=g&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),v=t.context!==void 0&&(te(t.context)||typeof t.context=="number")&&t.context!=="",y=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);p.forEach(C=>{this.isValidLookup(n)||(l=C,!Xr[`${y[0]}-${C}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(l)&&(Xr[`${y[0]}-${C}`]=!0,this.logger.warn(`key "${r}" for languages "${y.join(", ")}" won't get resolved as namespace "${l}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),y.forEach(N=>{if(this.isValidLookup(n))return;i=N;const _=[u];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(_,u,N,C,t);else{let b;g&&(b=this.pluralResolver.getSuffix(N,t.count,t));const A=`${this.options.pluralSeparator}zero`,S=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(g&&(_.push(u+b),t.ordinal&&b.indexOf(S)===0&&_.push(u+b.replace(S,this.options.pluralSeparator)),m&&_.push(u+A)),v){const D=`${u}${this.options.contextSeparator}${t.context}`;_.push(D),g&&(_.push(D+b),t.ordinal&&b.indexOf(S)===0&&_.push(D+b.replace(S,this.options.pluralSeparator)),m&&_.push(D+A))}}let I;for(;I=_.pop();)this.isValidLookup(n)||(o=I,n=this.getResource(N,C,I,t))}))})}),{res:n,usedKey:r,exactUsedKey:o,usedLng:i,usedNS:l}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=e.replace&&!te(e.replace);let r=n?e.replace:e;if(n&&typeof e.count<"u"&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(const o of t)delete r[o]}return r}static hasDefaultValue(e){const t="defaultValue";for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&e[n]!==void 0)return!0;return!1}}const Vn=a=>a.charAt(0).toUpperCase()+a.slice(1);class es{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Xe.create("languageUtils")}getScriptPartFromCode(e){if(e=Zt(e),!e||e.indexOf("-")<0)return null;const t=e.split("-");return t.length===2||(t.pop(),t[t.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(t.join("-"))}getLanguagePartFromCode(e){if(e=Zt(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(te(e)&&e.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let r=Intl.getCanonicalLocales(e)[0];if(r&&this.options.lowerCaseLng&&(r=r.toLowerCase()),r)return r}catch{}const t=["hans","hant","latn","cyrl","cans","mong","arab"];let n=e.split("-");return this.options.lowerCaseLng?n=n.map(r=>r.toLowerCase()):n.length===2?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=Vn(n[1].toLowerCase()))):n.length===3&&(n[0]=n[0].toLowerCase(),n[1].length===2&&(n[1]=n[1].toUpperCase()),n[0]!=="sgn"&&n[2].length===2&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=Vn(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=Vn(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(n=>{if(t)return;const r=this.formatLanguageCode(n);(!this.options.supportedLngs||this.isSupportedCode(r))&&(t=r)}),!t&&this.options.supportedLngs&&e.forEach(n=>{if(t)return;const r=this.getLanguagePartFromCode(n);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(o=>{if(o===r)return o;if(!(o.indexOf("-")<0&&r.indexOf("-")<0)&&(o.indexOf("-")>0&&r.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===r||o.indexOf(r)===0&&r.length>1))return o})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),te(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}toResolveHierarchy(e,t){const n=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],o=i=>{i&&(this.isSupportedCode(i)?r.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return te(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(e))):te(e)&&o(this.formatLanguageCode(e)),n.forEach(i=>{r.indexOf(i)<0&&o(this.formatLanguageCode(i))}),r}}let xi=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],Ei={1:a=>+(a>1),2:a=>+(a!=1),3:a=>0,4:a=>a%10==1&&a%100!=11?0:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?1:2,5:a=>a==0?0:a==1?1:a==2?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5,6:a=>a==1?0:a>=2&&a<=4?1:2,7:a=>a==1?0:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?1:2,8:a=>a==1?0:a==2?1:a!=8&&a!=11?2:3,9:a=>+(a>=2),10:a=>a==1?0:a==2?1:a<7?2:a<11?3:4,11:a=>a==1||a==11?0:a==2||a==12?1:a>2&&a<20?2:3,12:a=>+(a%10!=1||a%100==11),13:a=>+(a!==0),14:a=>a==1?0:a==2?1:a==3?2:3,15:a=>a%10==1&&a%100!=11?0:a%10>=2&&(a%100<10||a%100>=20)?1:2,16:a=>a%10==1&&a%100!=11?0:a!==0?1:2,17:a=>a==1||a%10==1&&a%100!=11?0:1,18:a=>a==0?0:a==1?1:2,19:a=>a==1?0:a==0||a%100>1&&a%100<11?1:a%100>10&&a%100<20?2:3,20:a=>a==1?0:a==0||a%100>0&&a%100<20?1:2,21:a=>a%100==1?1:a%100==2?2:a%100==3||a%100==4?3:0,22:a=>a==1?0:a==2?1:(a<0||a>10)&&a%10==0?2:3};const Li=["v1","v2","v3"],Fi=["v4"],as={zero:0,one:1,two:2,few:3,many:4,other:5},Mi=()=>{const a={};return xi.forEach(e=>{e.lngs.forEach(t=>{a[t]={numbers:e.nr,plurals:Ei[e.fc]}})}),a};class Oi{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=Xe.create("pluralResolver"),(!this.options.compatibilityJSON||Fi.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=Mi(),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi()){const n=Zt(e==="dev"?"en":e),r=t.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:n,type:r});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];let i;try{i=new Intl.PluralRules(n,{type:r})}catch{if(!e.match(/-|_/))return;const d=this.languageUtils.getLanguagePartFromCode(e);i=this.getRule(d,t)}return this.pluralRulesCache[o]=i,i}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}getPluralFormsOfKey(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(e,n).map(r=>`${t}${r}`)}getSuffixes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=this.getRule(e,t);return n?this.shouldUseIntlApi()?n.resolvedOptions().pluralCategories.sort((r,o)=>as[r]-as[o]).map(r=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${r}`):n.numbers.map(r=>this.getSuffix(e,r,t)):[]}getSuffix(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=this.getRule(e,n);return r?this.shouldUseIntlApi()?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r.select(t)}`:this.getSuffixRetroCompatible(r,t):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,t){const n=e.noAbs?e.plurals(t):e.plurals(Math.abs(t));let r=e.numbers[n];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(r===2?r="plural":r===1&&(r=""));const o=()=>this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString();return this.options.compatibilityJSON==="v1"?r===1?"":typeof r=="number"?`_plural_${r.toString()}`:o():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?o():this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString()}shouldUseIntlApi(){return!Li.includes(this.options.compatibilityJSON)}}const ts=function(a,e,t){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=Ni(a,e,t);return!o&&r&&te(t)&&(o=zn(a,t,n),o===void 0&&(o=zn(e,t,n))),o},jn=a=>a.replace(/\$/g,"$$$$");class Ui{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Xe.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(t=>t),this.init(e)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:o,prefixEscaped:i,suffix:l,suffixEscaped:d,formatSeparator:c,unescapeSuffix:u,unescapePrefix:p,nestingPrefix:g,nestingPrefixEscaped:m,nestingSuffix:v,nestingSuffixEscaped:y,nestingOptionsSeparator:C,maxReplaces:N,alwaysFormat:_}=e.interpolation;this.escape=t!==void 0?t:wi,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=o?qa(o):i||"{{",this.suffix=l?qa(l):d||"}}",this.formatSeparator=c||",",this.unescapePrefix=u?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=g?qa(g):m||qa("$t("),this.nestingSuffix=v?qa(v):y||qa(")"),this.nestingOptionsSeparator=C||",",this.maxReplaces=N||1e3,this.alwaysFormat=_!==void 0?_:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,n)=>t&&t.source===n?(t.lastIndex=0,t):new RegExp(n,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let o,i,l;const d=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=m=>{if(m.indexOf(this.formatSeparator)<0){const N=ts(t,d,m,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(N,void 0,n,{...r,...t,interpolationkey:m}):N}const v=m.split(this.formatSeparator),y=v.shift().trim(),C=v.join(this.formatSeparator).trim();return this.format(ts(t,d,y,this.options.keySeparator,this.options.ignoreJSONStructure),C,n,{...r,...t,interpolationkey:y})};this.resetRegExp();const u=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,p=r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:m=>jn(m)},{regex:this.regexp,safeValue:m=>this.escapeValue?jn(this.escape(m)):jn(m)}].forEach(m=>{for(l=0;o=m.regex.exec(e);){const v=o[1].trim();if(i=c(v),i===void 0)if(typeof u=="function"){const C=u(e,o,r);i=te(C)?C:""}else if(r&&Object.prototype.hasOwnProperty.call(r,v))i="";else if(p){i=o[0];continue}else this.logger.warn(`missed to pass in variable ${v} for interpolating ${e}`),i="";else!te(i)&&!this.useRawValueToEscape&&(i=Kr(i));const y=m.safeValue(i);if(e=e.replace(o[0],y),p?(m.regex.lastIndex+=i.length,m.regex.lastIndex-=o[0].length):m.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),e}nest(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,o,i;const l=(d,c)=>{const u=this.nestingOptionsSeparator;if(d.indexOf(u)<0)return d;const p=d.split(new RegExp(`${u}[ ]*{`));let g=`{${p[1]}`;d=p[0],g=this.interpolate(g,i);const m=g.match(/'/g),v=g.match(/"/g);(m&&m.length%2===0&&!v||v.length%2!==0)&&(g=g.replace(/'/g,'"'));try{i=JSON.parse(g),c&&(i={...c,...i})}catch(y){return this.logger.warn(`failed parsing options string in nesting for key ${d}`,y),`${d}${u}${g}`}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,d};for(;r=this.nestingRegexp.exec(e);){let d=[];i={...n},i=i.replace&&!te(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;let c=!1;if(r[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(r[1])){const u=r[1].split(this.formatSeparator).map(p=>p.trim());r[1]=u.shift(),d=u,c=!0}if(o=t(l.call(this,r[1].trim(),i),i),o&&r[0]===e&&!te(o))return o;te(o)||(o=Kr(o)),o||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),o=""),c&&(o=d.reduce((u,p)=>this.format(u,p,n.lng,{...n,interpolationkey:r[1].trim()}),o.trim())),e=e.replace(r[0],o),this.regexp.lastIndex=0}return e}}const Bi=a=>{let e=a.toLowerCase().trim();const t={};if(a.indexOf("(")>-1){const n=a.split("(");e=n[0].toLowerCase().trim();const r=n[1].substring(0,n[1].length-1);e==="currency"&&r.indexOf(":")<0?t.currency||(t.currency=r.trim()):e==="relativetime"&&r.indexOf(":")<0?t.range||(t.range=r.trim()):r.split(";").forEach(i=>{if(i){const[l,...d]=i.split(":"),c=d.join(":").trim().replace(/^'+|'+$/g,""),u=l.trim();t[u]||(t[u]=c),c==="false"&&(t[u]=!1),c==="true"&&(t[u]=!0),isNaN(c)||(t[u]=parseInt(c,10))}})}return{formatName:e,formatOptions:t}},Za=a=>{const e={};return(t,n,r)=>{let o=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(o={...o,[r.interpolationkey]:void 0});const i=n+JSON.stringify(o);let l=e[i];return l||(l=a(Zt(n),r),e[i]=l),l(t)}};class zi{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Xe.create("formatter"),this.options=e,this.formats={number:Za((t,n)=>{const r=new Intl.NumberFormat(t,{...n});return o=>r.format(o)}),currency:Za((t,n)=>{const r=new Intl.NumberFormat(t,{...n,style:"currency"});return o=>r.format(o)}),datetime:Za((t,n)=>{const r=new Intl.DateTimeFormat(t,{...n});return o=>r.format(o)}),relativetime:Za((t,n)=>{const r=new Intl.RelativeTimeFormat(t,{...n});return o=>r.format(o,n.range||"day")}),list:Za((t,n)=>{const r=new Intl.ListFormat(t,{...n});return o=>r.format(o)})},this.init(e)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Za(t)}format(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=t.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&o[0].indexOf(")")<0&&o.find(l=>l.indexOf(")")>-1)){const l=o.findIndex(d=>d.indexOf(")")>-1);o[0]=[o[0],...o.splice(1,l)].join(this.formatSeparator)}return o.reduce((l,d)=>{const{formatName:c,formatOptions:u}=Bi(d);if(this.formats[c]){let p=l;try{const g=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},m=g.locale||g.lng||r.locale||r.lng||n;p=this.formats[c](l,m,{...u,...r,...g})}catch(g){this.logger.warn(g)}return p}else this.logger.warn(`there was no format function for ${c}`);return l},e)}}const Vi=(a,e)=>{a.pending[e]!==void 0&&(delete a.pending[e],a.pendingCount--)};class ji extends Gt{constructor(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=Xe.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(n,r.backend,r)}queueLoad(e,t,n,r){const o={},i={},l={},d={};return e.forEach(c=>{let u=!0;t.forEach(p=>{const g=`${c}|${p}`;!n.reload&&this.store.hasResourceBundle(c,p)?this.state[g]=2:this.state[g]<0||(this.state[g]===1?i[g]===void 0&&(i[g]=!0):(this.state[g]=1,u=!1,i[g]===void 0&&(i[g]=!0),o[g]===void 0&&(o[g]=!0),d[p]===void 0&&(d[p]=!0)))}),u||(l[c]=!0)}),(Object.keys(o).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(o),pending:Object.keys(i),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(d)}}loaded(e,t,n){const r=e.split("|"),o=r[0],i=r[1];t&&this.emit("failedLoading",o,i,t),!t&&n&&this.store.addResourceBundle(o,i,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);const l={};this.queue.forEach(d=>{Ci(d.loaded,[o],i),Vi(d,e),t&&d.errors.push(t),d.pendingCount===0&&!d.done&&(Object.keys(d.loaded).forEach(c=>{l[c]||(l[c]={});const u=d.loaded[c];u.length&&u.forEach(p=>{l[c][p]===void 0&&(l[c][p]=!0)})}),d.done=!0,d.errors.length?d.callback(d.errors):d.callback())}),this.emit("loaded",l),this.queue=this.queue.filter(d=>!d.done)}read(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:o,callback:i});return}this.readingCalls++;const l=(c,u)=>{if(this.readingCalls--,this.waitingReads.length>0){const p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(c&&u&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,n,r+1,o*2,i)},o);return}i(c,u)},d=this.backend[n].bind(this.backend);if(d.length===2){try{const c=d(e,t);c&&typeof c.then=="function"?c.then(u=>l(null,u)).catch(l):l(null,c)}catch(c){l(c)}return}return d(e,t,l)}prepareLoading(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();te(e)&&(e=this.languageUtils.toResolveHierarchy(e)),te(t)&&(t=[t]);const o=this.queueLoad(e,t,n,r);if(!o.toLoad.length)return o.pending.length||r(),null;o.toLoad.forEach(i=>{this.loadOne(i)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const n=e.split("|"),r=n[0],o=n[1];this.read(r,o,"read",void 0,void 0,(i,l)=>{i&&this.logger.warn(`${t}loading namespace ${o} for language ${r} failed`,i),!i&&l&&this.logger.log(`${t}loaded namespace ${o} for language ${r}`,l),this.loaded(e,i,l)})}saveMissing(e,t,n,r,o){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},l=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(n==null||n==="")){if(this.backend&&this.backend.create){const d={...i,isUpdate:o},c=this.backend.create.bind(this.backend);if(c.length<6)try{let u;c.length===5?u=c(e,t,n,r,d):u=c(e,t,n,r),u&&typeof u.then=="function"?u.then(p=>l(null,p)).catch(l):l(null,u)}catch(u){l(u)}else c(e,t,n,r,l,d)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}}const ns=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:a=>{let e={};if(typeof a[1]=="object"&&(e=a[1]),te(a[1])&&(e.defaultValue=a[1]),te(a[2])&&(e.tDescription=a[2]),typeof a[2]=="object"||typeof a[3]=="object"){const t=a[3]||a[2];Object.keys(t).forEach(n=>{e[n]=t[n]})}return e},interpolation:{escapeValue:!0,format:a=>a,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),rs=a=>(te(a.ns)&&(a.ns=[a.ns]),te(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),te(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs&&a.supportedLngs.indexOf("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),a),$t=()=>{},qi=a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(t=>{typeof a[t]=="function"&&(a[t]=a[t].bind(a))})};class ot extends Gt{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=rs(e),this.services={},this.logger=Xe,this.modules={external:[]},qi(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initImmediate)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof t=="function"&&(n=t,t={}),!t.defaultNS&&t.defaultNS!==!1&&t.ns&&(te(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=ns();this.options={...r,...this.options,...rs(t)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...r.interpolation,...this.options.interpolation}),t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator);const o=u=>u?typeof u=="function"?new u:u:null;if(!this.options.isClone){this.modules.logger?Xe.init(o(this.modules.logger),this.options):Xe.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=zi);const p=new es(this.options);this.store=new Jr(this.options.resources,this.options);const g=this.services;g.logger=Xe,g.resourceStore=this.store,g.languageUtils=p,g.pluralResolver=new Oi(p,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),u&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(g.formatter=o(u),g.formatter.init(g,this.options),this.options.interpolation.format=g.formatter.format.bind(g.formatter)),g.interpolator=new Ui(this.options),g.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},g.backendConnector=new ji(o(this.modules.backend),g.resourceStore,g,this.options),g.backendConnector.on("*",function(m){for(var v=arguments.length,y=new Array(v>1?v-1:0),C=1;C<v;C++)y[C-1]=arguments[C];e.emit(m,...y)}),this.modules.languageDetector&&(g.languageDetector=o(this.modules.languageDetector),g.languageDetector.init&&g.languageDetector.init(g,this.options.detection,this.options)),this.modules.i18nFormat&&(g.i18nFormat=o(this.modules.i18nFormat),g.i18nFormat.init&&g.i18nFormat.init(this)),this.translator=new Kt(this.services,this.options),this.translator.on("*",function(m){for(var v=arguments.length,y=new Array(v>1?v-1:0),C=1;C<v;C++)y[C-1]=arguments[C];e.emit(m,...y)}),this.modules.external.forEach(m=>{m.init&&m.init(this)})}if(this.format=this.options.interpolation.format,n||(n=$t),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.length>0&&u[0]!=="dev"&&(this.options.lng=u[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(u=>{this[u]=function(){return e.store[u](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(u=>{this[u]=function(){return e.store[u](...arguments),e}});const d=rt(),c=()=>{const u=(p,g)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),d.resolve(g),n(p,g)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return u(null,this.t.bind(this));this.changeLanguage(this.options.lng,u)};return this.options.resources||!this.options.initImmediate?c():setTimeout(c,0),d}loadResources(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:$t;const r=te(e)?e:this.language;if(typeof e=="function"&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&r.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return n();const o=[],i=l=>{if(!l||l==="cimode")return;this.services.languageUtils.toResolveHierarchy(l).forEach(c=>{c!=="cimode"&&o.indexOf(c)<0&&o.push(c)})};r?i(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(d=>i(d)),this.options.preload&&this.options.preload.forEach(l=>i(l)),this.services.backendConnector.load(o,this.options.ns,l=>{!l&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(l)})}else n(null)}reloadResources(e,t,n){const r=rt();return typeof e=="function"&&(n=e,e=void 0),typeof t=="function"&&(n=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),n||(n=$t),this.services.backendConnector.reload(e,t,o=>{r.resolve(),n(o)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&Qr.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1))for(let t=0;t<this.languages.length;t++){const n=this.languages[t];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}changeLanguage(e,t){var n=this;this.isLanguageChangingTo=e;const r=rt();this.emit("languageChanging",e);const o=d=>{this.language=d,this.languages=this.services.languageUtils.toResolveHierarchy(d),this.resolvedLanguage=void 0,this.setResolvedLanguage(d)},i=(d,c)=>{c?(o(c),this.translator.changeLanguage(c),this.isLanguageChangingTo=void 0,this.emit("languageChanged",c),this.logger.log("languageChanged",c)):this.isLanguageChangingTo=void 0,r.resolve(function(){return n.t(...arguments)}),t&&t(d,function(){return n.t(...arguments)})},l=d=>{!e&&!d&&this.services.languageDetector&&(d=[]);const c=te(d)?d:this.services.languageUtils.getBestMatchFromCodes(d);c&&(this.language||o(c),this.translator.language||this.translator.changeLanguage(c),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(c)),this.loadResources(c,u=>{i(u,c)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?l(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(l):this.services.languageDetector.detect(l):l(e),r}getFixedT(e,t,n){var r=this;const o=function(i,l){let d;if(typeof l!="object"){for(var c=arguments.length,u=new Array(c>2?c-2:0),p=2;p<c;p++)u[p-2]=arguments[p];d=r.options.overloadTranslationOptionHandler([i,l].concat(u))}else d={...l};d.lng=d.lng||o.lng,d.lngs=d.lngs||o.lngs,d.ns=d.ns||o.ns,d.keyPrefix!==""&&(d.keyPrefix=d.keyPrefix||n||o.keyPrefix);const g=r.options.keySeparator||".";let m;return d.keyPrefix&&Array.isArray(i)?m=i.map(v=>`${d.keyPrefix}${g}${v}`):m=d.keyPrefix?`${d.keyPrefix}${g}${i}`:i,r.t(m,d)};return te(e)?o.lng=e:o.lngs=e,o.ns=t,o.keyPrefix=n,o}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,o=this.languages[this.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(l,d)=>{const c=this.services.backendConnector.state[`${l}|${d}`];return c===-1||c===0||c===2};if(t.precheck){const l=t.precheck(this,i);if(l!==void 0)return l}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(n,e)&&(!r||i(o,e)))}loadNamespaces(e,t){const n=rt();return this.options.ns?(te(e)&&(e=[e]),e.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{n.resolve(),t&&t(r)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){const n=rt();te(e)&&(e=[e]);const r=this.options.preload||[],o=e.filter(i=>r.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return o.length?(this.options.preload=r.concat(o),this.loadResources(i=>{n.resolve(),t&&t(i)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";const t=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],n=this.services&&this.services.languageUtils||new es(ns());return t.indexOf(n.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new ot(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:$t;const n=e.forkResourceStore;n&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},o=new ot(r);return(e.debug!==void 0||e.prefix!==void 0)&&(o.logger=o.logger.clone(e)),["store","services","language"].forEach(l=>{o[l]=this[l]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},n&&(o.store=new Jr(this.store.data,r),o.services.resourceStore=o.store),o.translator=new Kt(o.services,r),o.translator.on("*",function(l){for(var d=arguments.length,c=new Array(d>1?d-1:0),u=1;u<d;u++)c[u-1]=arguments[u];o.emit(l,...c)}),o.init(r,t),o.translator.options=r,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Me=ot.createInstance();Me.createInstance=ot.createInstance;const Zi=Me.createInstance;Me.dir,Me.init,Me.loadResources,Me.reloadResources,Me.use,Me.changeLanguage,Me.getFixedT,Me.t,Me.exists,Me.setDefaultNamespace,Me.hasLoadedNamespace,Me.loadNamespaces,Me.loadLanguages;const Wi={free:"Free",manage:"Manage",cancel:"Cancel",close:"Close",open:"Open",edit:"Edit",update:"Update",tryAgain:"Try again",save:"Save",upgrade:"Upgrade",downgrade:"Downgrade",billingIntervalLabel:"Billing interval",billedMonthly:"Billed monthly",billedAnnually:"Billed annually",conversationsUnit:"conversations",conversationsPerMonth:"conversations / month",perMonth:"/mo",perYear:"/yr",perMonthLong:"/month",perYearLong:"/year",resourceConversations:"Conversations / month",resourceTableRows:"Table rows",resourceVectorDb:"Vector DB storage",resourceFileStorage:"File storage",metricConversations:"monthly conversations",metricTableRows:"table rows",metricVectorDb:"vector DB storage",metricFileStorage:"file storage",metricAiSpend:"AI spend",metricBotCount:"agents",usageBannerLimitReached:"You've reached your {label} limit. Upgrade now to avoid interruptions.",usageBannerNearLimit:"You've used {pct}% of your {label}. Upgrade to avoid hitting your limit.",usageBannerDefaultCta:"Upgrade plan",usageBannerManageCta:"Manage plan",usageBannerDismiss:"Dismiss",planBannerEyebrow:"Current plan",planBannerManagedTitle:"Managed in Dashboard",planBannerManagedSub:"This workspace uses an earlier billing system.",planBannerNoPlan:"No plan",planBannerCustomPricing:"Custom pricing",planBannerCustomConversations:"Custom conversations",planBannerCustom:"Custom",planBannerRenews:"Renews {date}",planBannerDowngradesTo:"Downgrades to {plan} on {date}",planBannerManageCta:"Manage plan",planBannerPendingUpgradeNote:"Pending upgrade — awaiting payment",pendingUpgradeBannerText:"Your last payment failed — this subscription upgrade is on hold until it goes through.",pendingUpgradeBannerCta:"View pending upgrade",pendingUpgradeBlocksManageTooltip:"Resolve your pending upgrade before making more changes",pendingUpgradeTitle:"Pending upgrade",pendingUpgradeFailedLabel:"Payment failed",pendingUpgradeSubtitle:"Review your payment method and make sure you have sufficient funds, then try again.",pendingUpgradeItemsLabel:"Items",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Amount due",pendingUpgradeAmountUnavailable:"Could not load the amount due — try again shortly.",pendingUpgradeExpiresOn:"If unpaid by {date}, this upgrade will be cancelled automatically",pendingUpgradePayCta:"Pay invoice",pendingUpgradeCancelCta:"Cancel upgrade",pendingUpgradePaySuccess:"Payment confirmed",pendingUpgradePayError:"Could not pay the invoice",pendingUpgradeCancelSuccess:"Pending upgrade cancelled",pendingUpgradeCancelError:"Could not cancel the pending upgrade",checkoutTitle:"Configure your plan",checkoutBackLabel:"Back to plans",checkoutPlanDetails:"Plan details",checkoutMonthlyBilling:"Monthly billing",checkoutAnnualBilling:"Annual billing",checkoutSaveBadge:"Save {savings}%",checkoutPaymentMethodTitle:"Payment method",checkoutSavedCardTab:"Saved",checkoutNewCardTab:"New card",checkoutBillingAddressTitle:"Billing address",checkoutCancelEdit:"Cancel",checkoutUpdateAddress:"Update",checkoutIsBusiness:"I'm purchasing as business",checkoutBusinessDetails:"Business details",checkoutBusinessNamePlaceholder:"Business name",checkoutTaxIdTypeLabel:"Tax ID type",checkoutTaxIdNumberPlaceholder:"Tax ID number",checkoutNoTaxRequired:"No tax ID is required for your billing country.",checkoutSelectCountryForTax:"Select your billing country above to add a tax ID.",checkoutContactInfo:"Contact information",checkoutEmailLabel:"Email",checkoutCardNotReady:"Card field is not ready",checkoutPaymentSetupFailed:"Payment setup failed",checkoutPaymentMethodMissing:"Could not retrieve payment method",checkoutAddressIncomplete:"Please complete your billing address",checkoutGenericError:"Something went wrong while processing your payment. You have not been charged twice.",checkoutSuccessToast:"Subscription activated",checkoutErrorToast:"Payment error",orderTopFeatures:"Top features",orderThen:"then {price} per {packSize}",orderPreviewError:"We couldn't compute your total. Try again in a moment.",orderPlanFromDate:"{plan} plan — from {date}",orderProratedToday:"Prorated for today",orderProratedTodayDesc:"Switching mid-period, we charge only for the time left in your current billing period. The full plan price above is billed at your next renewal, not today.",orderCreditUnusedTime:"Credit for unused time",orderAdjustUnusedTime:"Adjustment for unused time",orderCreditUnusedTimeDesc:"You already paid for time left in your current billing period. We credit that unused time and re-apply it at your new rate, so you're never double-charged.",orderAdjustUnusedTimeDesc:"Switching mid-cycle means we prorate the difference between your old and new plan for the days remaining in your current billing period.",orderAccountCredit:"Account credit",orderDueToday:"Due today",orderCreditTowardNext:"You have {amount} of unused time credited toward your next invoice.",orderBalanceAsCredit:"Your remaining balance of {amount} is applied as credit on your next invoice.",orderSavingsNote:"You're saving {monthlySavings}/month by choosing an annual plan. That's {yearlySavings}/year.",orderSubscribe:"Subscribe",orderPreviewUnavailable:"Preview unavailable",orderIntervalAnnual:"annual",orderIntervalMonthly:"monthly",orderRenewsMonthly:"Renews monthly until cancelled.",orderRenewsAnnually:"Renews annually until cancelled.",orderChargedStarting:"You'll be charged {amount}{period} starting {date}.",orderChargedNoDate:"You'll be charged {amount}{period}.",orderCancelNote:"Cancel anytime in Settings. By subscribing, you authorize Botpress to store and charge your payment method.",invoicesTitle:"Billing history",invoicesLoadError:"We couldn't load your invoices. Try again in a moment.",invoicesEmpty:"No invoices yet. They'll appear here after your first charge.",invoicesDownloadLabel:"Download invoice from {date}",invoiceStatusPaid:"Paid",invoiceStatusDue:"Due",invoiceStatusDraft:"Draft",invoiceStatusUnpaid:"Unpaid",invoiceStatusVoid:"Void",upgradeDialogTitle:"Upgrade your plan",upgradeMonthly:"Monthly",upgradeAnnual:"Annual",upgradeSaveBadge:"Save {savings}%",upgradeRecommended:"Recommended",upgradePerMonthSuffix:"/ month ({currency})",upgradeNoTopup:"No top-up",upgradeCurrentPlan:"Your current plan",upgradeNextPlan:"Next plan",upgradeCancelDowngrade:"Cancel downgrade",upgradeDowngrade:"Downgrade",upgradeSwitchToAnnual:"Switch to annual",upgradeSwitchToMonthly:"Switch to monthly",upgradePlanManaged:"Your plan is managed by Botpress — contact us to change it",upgradeUpgrade:"Upgrade",upgradeEverythingIn:"Everything in {planName}",upgradeSeeAllFeatures:"See all {total} features",upgradeShowFewerFeatures:"Show fewer features",upgradeContactUs:"Contact us",upgradeFooterEnterprise:"Need more, or running at scale?",upgradeFooterAboutEnterprise:"about Enterprise. Compare plans at",upgradeThenPer:"then {price} per {packSize} more",upgradeDowngradeSuccess:"Plan downgraded",upgradeDowngradeError:"Downgrade failed",upgradeCancelDowngradeSuccess:"Scheduled downgrade canceled",upgradeCancelDowngradeError:"Could not cancel the downgrade",cancelSurveyConfirmTitle:"Are you sure you want to cancel?",cancelSurveyConfirmLede:"Your {plan} features remain available <bold>until this billing cycle ends on {date}.</bold> After that, you'll lose access to:",cancelSurveyConfirmLedeNoDate:"Your {plan} features remain available until this billing cycle ends. After that, you'll lose access to:",cancelSurveyCurrentPlan:"Your current plan",cancelSurveyCurrentAddons:"Your current add-ons",cancelSurveyAddonPack:"{name} pack ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversations",cancelSurveyKeep:"Keep my subscription",cancelSurveyContinue:"Continue",cancelSurveyFeedbackTitle:"Before you go, we'd love to hear your feedback.",cancelSurveyFeedbackLede:"Your feedback helps us make Botpress better. What's the main reason you're canceling your subscription?",cancelSurveyReasonTooExpensive:"Too expensive for my current needs",cancelSurveyReasonNotUsingEnough:"Not using Botpress enough",cancelSurveyReasonMissingFeature:"Missing a key feature I need",cancelSurveyReasonSwitchedTool:"Switched to a different tool or platform",cancelSurveyReasonTechnicalIssues:"Experienced technical issues or bugs",cancelSurveyReasonSupportExpectations:"Support or guidance did not meet my expectations",cancelSurveyReasonTemporaryNeed:"Only needed Botpress temporarily",cancelSurveyCommentLabel:"Additional comments",cancelSurveyOptional:"(optional)",cancelSurveyCommentPlaceholder:"Please share any additional feedback...",cancelSurveyConfirm:"Confirm cancellation",addonsDialogTitle:"Manage add-ons",addonsSubtitleWithPlan:"Additional usage for your {planName} plan. Set a quantity to 0 to remove an add-on.",addonsSubtitleGeneric:"Additional usage for your plan. Set a quantity to 0 to remove an add-on.",addonsRequirePaidPlanTitle:"Add-ons require a paid plan",addonsRequirePaidPlanBody:"Upgrade your plan to unlock extra conversations, storage, and more.",addonsUpgradeCta:"Upgrade plan",addonsEach:"each",addonActiveOnly:"{count} active",addonRemoved:"{activeNow} active now · removed",addonRemovedOnDate:"{activeNow} active now · removed on {date}",addonChanged:"{activeNow} active now · {pending} after update",addonChangedOnDate:"{activeNow} active now · {pending} on {date}",addonsNewLimits:"Your new limits",addonsPlanLine:"{planName} plan",addonsGenericPlan:"Plan",addonsTotalMonthly:"Total monthly cost",addonsTotalYearly:"Total yearly cost",addonsDueToday:"Due today",addonsChargedNow:"You'll be charged {amount} now for the rest of this billing period. ",addonsNoChargeToday:"No charge today — the change is prorated. ",addonsRenewalWithDate:"Your add-ons then cost {amount}{interval} until you remove them, starting {date}.",addonsRenewalNoDate:"Your add-ons then cost {amount}{interval} until you remove them.",addonsReadonlyNote:"Add-ons for this workspace are managed by Botpress — contact us to change them.",addonsUpdateSuccess:"Subscription updated",addonsUpdateError:"Could not update your add-ons",addonsUpdateSubscription:"Update subscription",addonsConvos:"{n} convos",outdatedTitle:"Billing is managed in the Botpress Dashboard",outdatedText:"This workspace is on an earlier billing system, so plan changes and payment details can't be managed here.",outdatedCta:"Open billing in Dashboard",outgrowTitle:"You're about to outgrow the Free plan",outgrowLede:"Free includes <bold>{quota}</bold> conversations total, and they don't renew. Upgrading moves you to a monthly allowance, unlocks more channels, and adds conversation packs, so your agents never stop replying.",outgrowSoFar:"So far",outgrowUsageText:"<bold>{used}</bold> of <bold>{quota}</bold> free conversations used · they don't renew",outgrowNoTopup:"No top-up",outgrowUpgradeTo:"Upgrade to {planName}",outgrowEverythingIn:"Everything in {planName}, and",outgrowNeedCustom:"Need custom volume, SLAs, or voice?",outgrowTalkToSales:"Talk to sales",outgrowCompareAll:"Compare all plans",outgrowThenPer:"then {symbol}{amount} per {packSize} more",paymentDialogTitle:"Payment & billing",paymentSessionError:"We couldn't start a secure session.",paymentMethodSection:"Payment method",paymentCardSaveError:"Could not save your card",paymentMethodMissing:"Could not retrieve payment method",paymentCardGenericError:"We couldn't save your card. Please check your details and try again.",paymentReplace:"Replace",paymentBillingAddressSection:"Billing address",paymentTaxIds:"Tax IDs",paymentTaxEmpty:"Add a VAT or tax registration number to show it on your invoices.",paymentTaxIdType:"Tax ID type",paymentTaxSelectType:"Select type",paymentTaxIdNumber:"Tax ID number",paymentTaxRemove:"Remove tax ID",paymentTaxAdd:"+ Add tax ID",paymentAddressIncomplete:"Please complete your billing address.",paymentAddressError:"Could not update your billing details.",paymentCardUpdated:"Card updated",paymentDetailsUpdated:"Billing details updated",paymentSaveCard:"Save card",paymentSaveBillingDetails:"Save billing details",paymentDetailsUpdateError:"Could not update your billing details",usageWidgetLimitReached:"Limit reached",usageWidgetRunningLow:"Running low",usageWidgetUpgradeToKeepGoing:"Upgrade to keep going.",usageWidgetOnlyLeft:"Only {left} left.",usageWidgetFreeExhausted:"All your free conversations are used, and they don't renew.",usageWidgetFreeLeft:"{left} free conversations left, and they don't renew.",usageWidgetEnterpriseOverQuota:"A Botpress representative will contact you at the end of the usage period.",usageWidgetResets:"Resets {date}",usageWidgetViewOptions:"View plan options",usagePopoverFreeTitle:"Free plan usage",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> included, total. They do not renew, and Free has no top-ups.",usagePopoverPlanName:"{planName} plan",usagePopoverTitle:"Current period ends {date}",usagePopoverNudgeText:"<bold>Need more room?</bold> Plus includes unlimited agents, {quota} conversations per month and packs of {packSize} extra when you need them.",dashboardUsage:"Usage",dashboardBillingPeriod:"Billing period",dashboardPrevMonth:"Previous month",dashboardNextMonth:"Next month",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Each conversation includes AI usage. When you reach your limit, extra conversations are added automatically so service continues.",dashboardStorageTitle:"Storage",dashboardStorageHint:"Shared across files, knowledge base, and tables.",dashboardAiTitle:"AI usage",dashboardAiHint:"Each conversation includes an allowance of AI usage. Track how much of that allowance you've used",dashboardEnterpriseUsageNotice:"Your usage will not be blocked if you go over quota.",dashboardLoadError:"We couldn't load your usage. Try again in a moment.",dashboardNoBotSpend:"No per-bot AI spend this period.",dashboardAiByBot:"AI spend by bot",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Table rows",dashboardVectorDb:"Vector DB storage",dashboardFileStorage:"File storage",dashboardAiSpend:"AI spend",dashboardFromPlan:"{amount} from {planName} plan",dashboardFromPlanGeneric:"{amount} from your plan",dashboardFromPlanWithAddons:"{amount} from {planName} plan + {addonAmount} from add-ons",dashboardFromPlanGenericWithAddons:"{amount} from your plan + {addonAmount} from add-ons",dashboardIncreaseLimits:"Increase limits",planFeatureAiUsageIncluded:"{amount} AI usage included",planFeature3Seats:"3 seats",planFeature3AiAgents:"3 AI agents",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Help center",planFeature1kTableRows:"1K table rows",planFeature100kTableRows:"100K table rows",planFeature500kTableRows:"500K table rows",planFeature100mbFileStorage:"100MB file storage",planFeature10gbFileStorage:"10GB file storage",planFeature50gbFileStorage:"50GB file storage",planFeature100mbVectorDb:"100MB vector DB storage",planFeature1gbVectorDb:"1GB vector DB storage",planFeature5gbVectorDb:"5GB vector DB storage",planFeatureCommunitySupport:"Community support",planFeatureUnlimitedAiAgents:"Unlimited AI agents",planFeatureWhatsappChannel:"WhatsApp channel",planFeatureHelpCenterCustomDomain:"Help Center custom domain",planFeatureWhitelabelWebchat:"Whitelabel webchat",planFeatureTechnicalSupportLiveChat:"Technical support via live chat",planFeatureUnlimitedSeats:"Unlimited seats",planFeatureTeamsRoutingRbac:"Teams, routing & RBAC",planFeatureTeamLevelAnalytics:"Team-level analytics",planFeatureVoiceChannel:"Voice channel",planFeatureDedicatedSupport:"Dedicated support",planFeatureSlaSecurity:"SLA & security review",planFeatureCustomStorage:"Custom storage",planFeatureDescAiUsageIncluded:"AI usage is the cost of calling an LLM. Every conversation includes {rate}. We pay it for you.",planFeatureDesc3Seats:"Up to 3 team members can collaborate in this workspace.",planFeatureDescUnlimitedSeats:"Invite as many team members to the workspace as you need.",planFeatureDesc3AiAgents:"Build and publish up to 3 distinct AI agents.",planFeatureDescUnlimitedAiAgents:"Build and publish as many AI agents as you need.",planFeatureDescBotpressDesk:"The human-handoff inbox where agents triage and reply to live conversations.",planFeatureDescBotpressStudioAdk:"The visual Studio builder plus the Agent Development Kit for building agents in code.",planFeatureDescBotpressViber:"Build AI agents by chatting with Vibe — no code required.",planFeatureDescHelpCenter:"A hosted knowledge base your agent answers from and customers can browse.",planFeatureDescHelpCenterCustomDomain:"Serve your help center from your own domain instead of a Botpress URL.",planFeatureDescWhatsappChannel:"Connect your agent to WhatsApp to chat with customers there.",planFeatureDescVoiceChannel:"Connect your agent to phone/voice so it can handle spoken conversations.",planFeatureDescWhitelabelWebchat:"Remove Botpress branding from the web chat widget so it's fully your own.",planFeatureDescTeamsRoutingRbac:"Organize members into teams, route conversations between them, and control access by role.",planFeatureDescTeamLevelAnalytics:"Performance and volume metrics broken down per team.",planFeatureDescTechnicalSupportLiveChat:"Reach the Botpress support team over live chat for help.",planFeatureDescCommunitySupport:"Get help from the Botpress community forum and Discord.",planFeatureDescDedicatedSupport:"A named contact and priority support channel for your account.",planFeatureDescSlaSecurity:"A contractual uptime SLA and a security/compliance review for your procurement.",planFeatureDescCustomStorage:"Storage limits tailored to your workload, beyond the standard tiers.",planFeatureDesc1kTableRows:"1K rows across all your data tables.",planFeatureDesc100kTableRows:"100K rows across all your data tables.",planFeatureDesc500kTableRows:"500K rows across all your data tables.",planFeatureDesc100mbFileStorage:"100MB of uploaded files (documents, images, attachments).",planFeatureDesc10gbFileStorage:"10GB of uploaded files (documents, images, attachments).",planFeatureDesc50gbFileStorage:"50GB of uploaded files (documents, images, attachments).",planFeatureDesc100mbVectorDb:"100MB of embeddings for knowledge-base search and retrieval.",planFeatureDesc1gbVectorDb:"1GB of embeddings for knowledge-base search and retrieval.",planFeatureDesc5gbVectorDb:"5GB of embeddings for knowledge-base search and retrieval.",planDescriptionCommunity:"Free plan for trying things out",planDescriptionPlus:"For growing businesses",planDescriptionTeam:"For small teams",planDescriptionEnterprise:"Enterprise license subscription",planDescriptionManaged:"Managed license subscription",addonNameConversationSessions:"Conversations",addonNameStorage:"Storage",addonDescriptionConversationSessions:"Adds conversation sessions for the month",addonDescriptionStorage:"Adds table rows, vector DB space and files",summaryCurrentPlan:"Current plan",summaryManagedInDashboard:"Managed in Dashboard",summaryManagedMeta:"This workspace uses an earlier billing system.",summaryNoPlan:"No plan",summaryConversationsPerMo:"{n} conversations/mo",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} active add-on",summaryActiveAddons:"{count} active add-ons",summaryNoAddons:"No add-ons",summaryNoAddonsMeta:"Add extra conversations or storage",autoRechargeTitle:"AI spend auto-recharge",autoRechargeDescription:"Automatically top up your AI usage credit when your balance runs low.",autoRechargeLoadErrorTitle:"We couldn't load your settings",autoRechargeLoadError:"Something went wrong while fetching your auto-recharge settings. Check your connection and try again.",autoRechargeThresholdLabel:"Recharge threshold",autoRechargeThresholdHint:"Recharge triggers when your balance falls below this amount, $1 or more.",autoRechargeThresholdError:"Must be a whole-dollar amount of at least $1.",autoRechargeChunkLabel:"Recharge amount",autoRechargeChunkHint:"Whole-dollar amount, $5 or more.",autoRechargeChunkError:"Must be a whole-dollar amount of at least $5.",autoRechargeLimitLabel:"Monthly limit (USD)",autoRechargeLimitHint:"Won't recharge more than this in a billing month. Must be a multiple of the recharge amount ({amount}).",autoRechargeLimitError:"Must be a multiple of the recharge amount ({amount}).",autoRechargeSetLimitLabel:"Set a monthly limit",autoRechargeSetLimitHint:"Cap how much auto-recharge can spend each billing month.",autoRechargeNoCapHint:"Auto-recharge has no monthly cap.",autoRechargeDisabledReason:"Auto-recharge is off: {reason}",autoRechargeUpdateSuccess:"Auto-recharge settings updated",autoRechargeUpdateError:"Could not update your auto-recharge settings",autoRechargeSummaryOn:"Enabled",autoRechargeSummaryOff:"Disabled",autoRechargeSummaryMeta:"{amount} recharge · up to {limit}/mo",autoRechargeSummaryMetaNoLimit:"{amount} recharge · no limit",autoRechargeSummaryLoadError:"Couldn't load status",autoRechargeRequiresPaidPlanTitle:"Auto-recharge requires a paid plan",autoRechargeRequiresPaidPlanBody:"Upgrade your plan to automatically top up your AI usage credit.",autoRechargeUpgradeCta:"Upgrade plan"},Gi={free:"Gratuit",manage:"Gérer",cancel:"Annuler",close:"Fermer",open:"Ouvrir",edit:"Modifier",update:"Mettre à jour",tryAgain:"Réessayer",save:"Enregistrer",upgrade:"Mettre à niveau",downgrade:"Rétrograder",billingIntervalLabel:"Intervalle de facturation",billedMonthly:"Facturé mensuellement",billedAnnually:"Facturé annuellement",conversationsUnit:"conversations",conversationsPerMonth:"conversations / mois",perMonth:"/mois",perYear:"/an",perMonthLong:"/mois",perYearLong:"/an",resourceConversations:"Conversations / mois",resourceTableRows:"Lignes de table",resourceVectorDb:"Stockage vectoriel",resourceFileStorage:"Stockage de fichiers",metricConversations:"conversations mensuelles",metricTableRows:"lignes de table",metricVectorDb:"stockage vectoriel",metricFileStorage:"stockage de fichiers",metricAiSpend:"dépenses IA",metricBotCount:"agents",usageBannerLimitReached:"Vous avez atteint votre limite de {label}. Mettez à niveau maintenant pour éviter les interruptions.",usageBannerNearLimit:"Vous avez utilisé {pct}% de votre {label}. Mettez à niveau pour éviter d'atteindre votre limite.",usageBannerDefaultCta:"Mettre à niveau",usageBannerManageCta:"Gérer le plan",usageBannerDismiss:"Ignorer",planBannerEyebrow:"Plan actuel",planBannerManagedTitle:"Géré dans le tableau de bord",planBannerManagedSub:"Cet espace de travail utilise un système de facturation antérieur.",planBannerNoPlan:"Aucun plan",planBannerCustomPricing:"Tarification personnalisée",planBannerCustomConversations:"Conversations personnalisées",planBannerCustom:"Personnalisé",planBannerRenews:"Renouvellement le {date}",planBannerDowngradesTo:"Passe à {plan} le {date}",planBannerManageCta:"Gérer le plan",planBannerPendingUpgradeNote:"Mise à niveau en attente — paiement à confirmer",pendingUpgradeBannerText:"Votre dernier paiement a échoué — cette mise à niveau de l’abonnement est en attente jusqu’à son traitement.",pendingUpgradeBannerCta:"Voir la mise à niveau en attente",pendingUpgradeBlocksManageTooltip:"Résolvez votre mise à niveau en attente avant de faire d’autres changements",pendingUpgradeTitle:"Mise à niveau en attente",pendingUpgradeFailedLabel:"Paiement échoué",pendingUpgradeSubtitle:"Vérifiez votre moyen de paiement et assurez-vous d’avoir des fonds suffisants, puis réessayez.",pendingUpgradeItemsLabel:"Éléments",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Montant dû",pendingUpgradeAmountUnavailable:"Impossible de charger le montant dû — réessayez dans un instant.",pendingUpgradeExpiresOn:"Si elle n’est pas payée avant le {date}, cette mise à niveau sera annulée automatiquement",pendingUpgradePayCta:"Payer la facture",pendingUpgradeCancelCta:"Annuler la mise à niveau",pendingUpgradePaySuccess:"Paiement confirmé",pendingUpgradePayError:"Impossible de payer la facture",pendingUpgradeCancelSuccess:"Mise à niveau en attente annulée",pendingUpgradeCancelError:"Impossible d'annuler la mise à niveau en attente",checkoutTitle:"Configurer votre plan",checkoutBackLabel:"Retour aux plans",checkoutPlanDetails:"Détails du plan",checkoutMonthlyBilling:"Facturation mensuelle",checkoutAnnualBilling:"Facturation annuelle",checkoutSaveBadge:"Économisez {savings}%",checkoutPaymentMethodTitle:"Moyen de paiement",checkoutSavedCardTab:"Enregistrée",checkoutNewCardTab:"Nouvelle carte",checkoutBillingAddressTitle:"Adresse de facturation",checkoutCancelEdit:"Annuler",checkoutUpdateAddress:"Mettre à jour",checkoutIsBusiness:"J'achète en tant qu'entreprise",checkoutBusinessDetails:"Informations d'entreprise",checkoutBusinessNamePlaceholder:"Nom de l'entreprise",checkoutTaxIdTypeLabel:"Type d'identifiant fiscal",checkoutTaxIdNumberPlaceholder:"Numéro d'identifiant fiscal",checkoutNoTaxRequired:"Aucun identifiant fiscal n'est requis pour votre pays de facturation.",checkoutSelectCountryForTax:"Sélectionnez votre pays de facturation ci-dessus pour ajouter un identifiant fiscal.",checkoutContactInfo:"Coordonnées",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"Le champ de carte n'est pas prêt",checkoutPaymentSetupFailed:"Échec de la configuration du paiement",checkoutPaymentMethodMissing:"Impossible de récupérer le moyen de paiement",checkoutAddressIncomplete:"Veuillez compléter votre adresse de facturation",checkoutGenericError:"Une erreur s'est produite lors du traitement de votre paiement. Vous n'avez pas été débité deux fois.",checkoutSuccessToast:"Abonnement activé",checkoutErrorToast:"Erreur de paiement",orderTopFeatures:"Fonctionnalités principales",orderThen:"puis {price} par {packSize}",orderPreviewError:"Impossible de calculer votre total. Réessayez dans un instant.",orderPlanFromDate:"Plan {plan} — à partir du {date}",orderProratedToday:"Calculé au prorata d'aujourd'hui",orderProratedTodayDesc:"En changeant de plan en milieu de période, vous ne payez que pour le temps restant dans votre période de facturation actuelle. Le prix total du plan ci-dessus est facturé à votre prochain renouvellement, pas aujourd'hui.",orderCreditUnusedTime:"Crédit pour le temps non utilisé",orderAdjustUnusedTime:"Ajustement pour le temps non utilisé",orderCreditUnusedTimeDesc:"Vous avez déjà payé pour le temps restant dans votre période de facturation actuelle. Nous créditons ce temps non utilisé et le réappliquons à votre nouveau tarif, afin que vous ne soyez jamais facturé deux fois.",orderAdjustUnusedTimeDesc:"Le changement en milieu de cycle signifie que nous calculons au prorata la différence entre votre ancien et votre nouveau plan pour les jours restants dans votre période de facturation actuelle.",orderAccountCredit:"Crédit de compte",orderDueToday:"À payer aujourd'hui",orderCreditTowardNext:"Vous avez {amount} de temps non utilisé crédité sur votre prochaine facture.",orderBalanceAsCredit:"Votre solde restant de {amount} est appliqué comme crédit sur votre prochaine facture.",orderSavingsNote:"Vous économisez {monthlySavings}/mois en choisissant un plan annuel. C'est {yearlySavings}/an.",orderSubscribe:"S'abonner",orderPreviewUnavailable:"Aperçu indisponible",orderIntervalAnnual:"annuellement",orderIntervalMonthly:"mensuellement",orderRenewsMonthly:"Renouvellement mensuel jusqu'à annulation.",orderRenewsAnnually:"Renouvellement annuel jusqu'à annulation.",orderChargedStarting:"Vous serez facturé {amount}{period} à partir du {date}.",orderChargedNoDate:"Vous serez facturé {amount}{period}.",orderCancelNote:"Annulez à tout moment dans les paramètres. En vous abonnant, vous autorisez Botpress à stocker et à débiter votre moyen de paiement.",invoicesTitle:"Historique de facturation",invoicesLoadError:"Impossible de charger vos factures. Réessayez dans un instant.",invoicesEmpty:"Aucune facture pour l'instant. Elles apparaîtront ici après votre première facturation.",invoicesDownloadLabel:"Télécharger la facture du {date}",invoiceStatusPaid:"Payée",invoiceStatusDue:"À payer",invoiceStatusDraft:"Brouillon",invoiceStatusUnpaid:"Impayée",invoiceStatusVoid:"Annulée",upgradeDialogTitle:"Mettre à niveau votre plan",upgradeMonthly:"Mensuel",upgradeAnnual:"Annuel",upgradeSaveBadge:"Économisez {savings}%",upgradeRecommended:"Recommandé",upgradePerMonthSuffix:"/ mois ({currency})",upgradeNoTopup:"Aucun forfait supplémentaire",upgradeCurrentPlan:"Votre plan actuel",upgradeNextPlan:"Prochain plan",upgradeCancelDowngrade:"Annuler la rétrogradation",upgradeDowngrade:"Rétrograder",upgradeSwitchToAnnual:"Passer à l'annuel",upgradeSwitchToMonthly:"Passer au mensuel",upgradePlanManaged:"Votre plan est géré par Botpress — contactez-nous pour le modifier",upgradeUpgrade:"Mettre à niveau",upgradeEverythingIn:"Tout ce qui est dans {planName}",upgradeSeeAllFeatures:"Voir les {total} fonctionnalités",upgradeShowFewerFeatures:"Afficher moins de fonctionnalités",upgradeContactUs:"Nous contacter",upgradeFooterEnterprise:"Besoin de plus, ou à grande échelle ?",upgradeFooterAboutEnterprise:"pour l'entreprise. Comparez les plans sur",upgradeThenPer:"puis {price} par {packSize} supplémentaires",upgradeDowngradeSuccess:"Plan rétrogradé",upgradeDowngradeError:"Échec de la rétrogradation",upgradeCancelDowngradeSuccess:"Rétrogradation planifiée annulée",upgradeCancelDowngradeError:"Impossible d'annuler la rétrogradation",cancelSurveyConfirmTitle:"Voulez-vous vraiment annuler ?",cancelSurveyConfirmLede:"Les fonctionnalités {plan} restent disponibles <bold>jusqu'à la fin de ce cycle de facturation, le {date}.</bold> Ensuite, vous perdrez l'accès à :",cancelSurveyConfirmLedeNoDate:"Les fonctionnalités {plan} restent disponibles jusqu'à la fin de ce cycle de facturation. Ensuite, vous perdrez l'accès à :",cancelSurveyCurrentPlan:"Votre plan actuel",cancelSurveyCurrentAddons:"Vos modules actuels",cancelSurveyAddonPack:"Pack {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversations",cancelSurveyKeep:"Conserver mon abonnement",cancelSurveyContinue:"Continuer",cancelSurveyFeedbackTitle:"Avant de partir, nous aimerions avoir votre avis.",cancelSurveyFeedbackLede:"Vos commentaires nous aident à améliorer Botpress. Quelle est la principale raison de l'annulation de votre abonnement ?",cancelSurveyReasonTooExpensive:"Trop cher pour mes besoins actuels",cancelSurveyReasonNotUsingEnough:"Je n'utilise pas assez Botpress",cancelSurveyReasonMissingFeature:"Il manque une fonctionnalité dont j'ai besoin",cancelSurveyReasonSwitchedTool:"Je suis passé à un autre outil ou une autre plateforme",cancelSurveyReasonTechnicalIssues:"J'ai rencontré des problèmes techniques ou des bogues",cancelSurveyReasonSupportExpectations:"Le support ou l'accompagnement n'a pas répondu à mes attentes",cancelSurveyReasonTemporaryNeed:"Je n'avais besoin de Botpress que temporairement",cancelSurveyCommentLabel:"Commentaires supplémentaires",cancelSurveyOptional:"(facultatif)",cancelSurveyCommentPlaceholder:"Partagez tout commentaire supplémentaire...",cancelSurveyConfirm:"Confirmer l'annulation",addonsDialogTitle:"Gérer les add-ons",addonsSubtitleWithPlan:"Utilisation supplémentaire pour votre plan {planName}. Définissez une quantité à 0 pour supprimer un add-on.",addonsSubtitleGeneric:"Utilisation supplémentaire pour votre plan. Définissez une quantité à 0 pour supprimer un add-on.",addonsRequirePaidPlanTitle:"Les add-ons nécessitent un plan payant",addonsRequirePaidPlanBody:"Mettez à niveau votre plan pour débloquer des conversations, du stockage et plus encore.",addonsUpgradeCta:"Mettre à niveau le plan",addonsEach:"chacun",addonActiveOnly:"{count} actif",addonRemoved:"{activeNow} actif maintenant · supprimé",addonRemovedOnDate:"{activeNow} actif maintenant · supprimé le {date}",addonChanged:"{activeNow} actif maintenant · {pending} après la mise à jour",addonChangedOnDate:"{activeNow} actif maintenant · {pending} le {date}",addonsNewLimits:"Vos nouvelles limites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Coût mensuel total",addonsTotalYearly:"Coût annuel total",addonsDueToday:"À payer aujourd'hui",addonsChargedNow:"Vous serez facturé {amount} maintenant pour le reste de cette période de facturation. ",addonsNoChargeToday:"Aucun frais aujourd'hui — la modification est calculée au prorata. ",addonsRenewalWithDate:"Vos add-ons coûteront ensuite {amount}{interval} jusqu'à ce que vous les supprimiez, à partir du {date}.",addonsRenewalNoDate:"Vos add-ons coûteront ensuite {amount}{interval} jusqu'à ce que vous les supprimiez.",addonsReadonlyNote:"Les add-ons de cet espace de travail sont gérés par Botpress — contactez-nous pour les modifier.",addonsUpdateSuccess:"Abonnement mis à jour",addonsUpdateError:"Impossible de mettre à jour vos add-ons",addonsUpdateSubscription:"Mettre à jour l'abonnement",addonsConvos:"{n} conv.",outdatedTitle:"La facturation est gérée dans le tableau de bord Botpress",outdatedText:"Cet espace de travail utilise un système de facturation antérieur, donc les changements de plan et les informations de paiement ne peuvent pas être gérés ici.",outdatedCta:"Ouvrir la facturation dans le tableau de bord",outgrowTitle:"Vous êtes sur le point de dépasser le plan Gratuit",outgrowLede:"Le plan Gratuit inclut <bold>{quota}</bold> conversations au total, et elles ne se renouvellent pas. La mise à niveau vous donne une allocation mensuelle, débloque plus de canaux et ajoute des packs de conversations, pour que vos agents ne cessent jamais de répondre.",outgrowSoFar:"Jusqu'ici",outgrowUsageText:"<bold>{used}</bold> sur <bold>{quota}</bold> conversations gratuites utilisées · elles ne se renouvellent pas",outgrowNoTopup:"Aucun forfait supplémentaire",outgrowUpgradeTo:"Passer à {planName}",outgrowEverythingIn:"Tout ce qui est dans {planName}, et",outgrowNeedCustom:"Besoin de volume personnalisé, de SLA ou de voix ?",outgrowTalkToSales:"Parlez à nos commerciaux",outgrowCompareAll:"Comparer tous les plans",outgrowThenPer:"puis {symbol}{amount} par {packSize} supplémentaires",paymentDialogTitle:"Paiement et facturation",paymentSessionError:"Impossible de démarrer une session sécurisée.",paymentMethodSection:"Moyen de paiement",paymentCardSaveError:"Impossible d'enregistrer votre carte",paymentMethodMissing:"Impossible de récupérer le moyen de paiement",paymentCardGenericError:"Impossible d'enregistrer votre carte. Veuillez vérifier vos informations et réessayer.",paymentReplace:"Remplacer",paymentBillingAddressSection:"Adresse de facturation",paymentTaxIds:"Identifiants fiscaux",paymentTaxEmpty:"Ajoutez un numéro de TVA ou d'identification fiscale pour qu'il apparaisse sur vos factures.",paymentTaxIdType:"Type d'identifiant fiscal",paymentTaxSelectType:"Sélectionner le type",paymentTaxIdNumber:"Numéro d'identifiant fiscal",paymentTaxRemove:"Supprimer l'identifiant fiscal",paymentTaxAdd:"+ Ajouter un identifiant fiscal",paymentAddressIncomplete:"Veuillez compléter votre adresse de facturation.",paymentAddressError:"Impossible de mettre à jour vos informations de facturation.",paymentCardUpdated:"Carte mise à jour",paymentDetailsUpdated:"Informations de facturation mises à jour",paymentSaveCard:"Enregistrer la carte",paymentSaveBillingDetails:"Enregistrer les informations de facturation",paymentDetailsUpdateError:"Impossible de mettre à jour vos informations de facturation",usageWidgetLimitReached:"Limite atteinte",usageWidgetRunningLow:"Stock faible",usageWidgetUpgradeToKeepGoing:"Mettez à niveau pour continuer.",usageWidgetOnlyLeft:"Plus que {left}.",usageWidgetFreeExhausted:"Toutes vos conversations gratuites sont utilisées et elles ne se renouvellent pas.",usageWidgetFreeLeft:"{left} conversations gratuites restantes, et elles ne se renouvellent pas.",usageWidgetEnterpriseOverQuota:"Un représentant Botpress vous contactera à la fin de la période d’utilisation.",usageWidgetResets:"Réinitialisation le {date}",usageWidgetViewOptions:"Voir les options de plan",usagePopoverFreeTitle:"Utilisation du plan gratuit",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> incluses, au total. Elles ne se renouvellent pas, et le plan Gratuit n’a pas de recharge.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"La période actuelle se termine le {date}",usagePopoverNudgeText:"<bold>Besoin de plus d’espace ?</bold> Plus inclut des agents illimités, {quota} conversations par mois et des packs de {packSize} supplémentaires en cas de besoin.",dashboardUsage:"Utilisation",dashboardBillingPeriod:"Période de facturation",dashboardPrevMonth:"Mois précédent",dashboardNextMonth:"Mois suivant",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Chaque conversation inclut l'utilisation de l'IA. Lorsque vous atteignez votre limite, des conversations supplémentaires sont ajoutées automatiquement pour que le service continue.",dashboardStorageTitle:"Stockage",dashboardStorageHint:"Partagé entre les fichiers, la base de connaissances et les tables.",dashboardAiTitle:"Utilisation de l'IA",dashboardAiHint:"Chaque conversation inclut une allocation d'usage IA. Suivez la part de cette allocation que vous avez utilisée",dashboardEnterpriseUsageNotice:"Votre utilisation ne sera pas bloquée si vous dépassez votre quota.",dashboardLoadError:"Impossible de charger votre utilisation. Réessayez dans un instant.",dashboardNoBotSpend:"Aucune dépense IA par bot pour cette période.",dashboardAiByBot:"Dépenses IA par bot",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Lignes de table",dashboardVectorDb:"Stockage vectoriel",dashboardFileStorage:"Stockage de fichiers",dashboardAiSpend:"Dépenses IA",dashboardFromPlan:"{amount} du plan {planName}",dashboardFromPlanGeneric:"{amount} de votre plan",dashboardFromPlanWithAddons:"{amount} du plan {planName} + {addonAmount} des add-ons",dashboardFromPlanGenericWithAddons:"{amount} de votre plan + {addonAmount} des add-ons",dashboardIncreaseLimits:"Augmenter les limites",planFeatureAiUsageIncluded:"Utilisation de l'IA incluse : {amount}",planFeature3Seats:"3 postes",planFeature3AiAgents:"3 agents IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Centre d'aide",planFeature1kTableRows:"1K lignes de table",planFeature100kTableRows:"100K lignes de table",planFeature500kTableRows:"500K lignes de table",planFeature100mbFileStorage:"100Mo de stockage de fichiers",planFeature10gbFileStorage:"10Go de stockage de fichiers",planFeature50gbFileStorage:"50Go de stockage de fichiers",planFeature100mbVectorDb:"100Mo de stockage vectoriel",planFeature1gbVectorDb:"1Go de stockage vectoriel",planFeature5gbVectorDb:"5Go de stockage vectoriel",planFeatureCommunitySupport:"Support communautaire",planFeatureUnlimitedAiAgents:"Agents IA illimités",planFeatureWhatsappChannel:"Canal WhatsApp",planFeatureHelpCenterCustomDomain:"Domaine personnalisé du centre d'aide",planFeatureWhitelabelWebchat:"Webchat sans marque",planFeatureTechnicalSupportLiveChat:"Support technique par chat en direct",planFeatureUnlimitedSeats:"Postes illimités",planFeatureTeamsRoutingRbac:"Équipes, routage et RBAC",planFeatureTeamLevelAnalytics:"Analytiques par équipe",planFeatureVoiceChannel:"Canal vocal",planFeatureDedicatedSupport:"Support dédié",planFeatureSlaSecurity:"SLA et audit de sécurité",planFeatureCustomStorage:"Stockage personnalisé",planFeatureDescAiUsageIncluded:"L'utilisation de l'IA est le coût d'un appel à un LLM. Chaque conversation inclut {rate}. Nous le prenons en charge.",planFeatureDesc3Seats:"Jusqu'à 3 membres de l'équipe peuvent collaborer dans cet espace de travail.",planFeatureDescUnlimitedSeats:"Invitez autant de membres d'équipe que nécessaire dans l'espace de travail.",planFeatureDesc3AiAgents:"Créez et publiez jusqu'à 3 agents IA distincts.",planFeatureDescUnlimitedAiAgents:"Créez et publiez autant d'agents IA que nécessaire.",planFeatureDescBotpressDesk:"La boîte de réception de transfert humain où les agents trient et répondent aux conversations en direct.",planFeatureDescBotpressStudioAdk:"Le constructeur visuel Studio plus le Kit de Développement d'Agents pour créer des agents en code.",planFeatureDescBotpressViber:"Créez des agents IA en discutant avec Vibe — sans code requis.",planFeatureDescHelpCenter:"Une base de connaissances hébergée depuis laquelle votre agent répond et que les clients peuvent consulter.",planFeatureDescHelpCenterCustomDomain:"Publiez votre centre d'aide depuis votre propre domaine plutôt qu'une URL Botpress.",planFeatureDescWhatsappChannel:"Connectez votre agent à WhatsApp pour discuter avec vos clients là-bas.",planFeatureDescVoiceChannel:"Connectez votre agent au téléphone/vocal pour qu'il puisse gérer les conversations parlées.",planFeatureDescWhitelabelWebchat:"Supprimez la marque Botpress du widget de chat web pour qu'il soit entièrement le vôtre.",planFeatureDescTeamsRoutingRbac:"Organisez les membres en équipes, routez les conversations entre elles et contrôlez l'accès par rôle.",planFeatureDescTeamLevelAnalytics:"Métriques de performance et de volume ventilées par équipe.",planFeatureDescTechnicalSupportLiveChat:"Contactez l'équipe de support Botpress par chat en direct pour obtenir de l'aide.",planFeatureDescCommunitySupport:"Obtenez de l'aide sur le forum communautaire Botpress et Discord.",planFeatureDescDedicatedSupport:"Un contact désigné et un canal de support prioritaire pour votre compte.",planFeatureDescSlaSecurity:"Un SLA de disponibilité contractuel et un audit de sécurité/conformité pour votre processus d'achat.",planFeatureDescCustomStorage:"Limites de stockage adaptées à votre charge de travail, au-delà des niveaux standard.",planFeatureDesc1kTableRows:"1K lignes dans toutes vos tables de données.",planFeatureDesc100kTableRows:"100K lignes dans toutes vos tables de données.",planFeatureDesc500kTableRows:"500K lignes dans toutes vos tables de données.",planFeatureDesc100mbFileStorage:"100Mo de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc10gbFileStorage:"10Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc50gbFileStorage:"50Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc100mbVectorDb:"100Mo d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc1gbVectorDb:"1Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc5gbVectorDb:"5Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planDescriptionCommunity:"Plan gratuit pour essayer",planDescriptionPlus:"Pour les entreprises en croissance",planDescriptionTeam:"Pour les petites équipes",planDescriptionEnterprise:"Abonnement à la licence entreprise",planDescriptionManaged:"Abonnement à la licence gérée",addonNameConversationSessions:"Conversations",addonNameStorage:"Stockage",addonDescriptionConversationSessions:"Ajoute des sessions de conversation pour le mois",addonDescriptionStorage:"Ajoute des lignes de table, de l'espace vectoriel et des fichiers",summaryCurrentPlan:"Plan actuel",summaryManagedInDashboard:"Géré dans le tableau de bord",summaryManagedMeta:"Cet espace de travail utilise un système de facturation antérieur.",summaryNoPlan:"Aucun plan",summaryConversationsPerMo:"{n} conversations/mois",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on actif",summaryActiveAddons:"{count} add-ons actifs",summaryNoAddons:"Aucun add-on",summaryNoAddonsMeta:"Ajoutez des conversations ou du stockage supplémentaires",autoRechargeTitle:"Recharge automatique des dépenses IA",autoRechargeDescription:"Recharge automatiquement votre crédit d’usage IA lorsque votre solde est bas.",autoRechargeLoadErrorTitle:"Impossible de charger vos paramètres",autoRechargeLoadError:"Une erreur s'est produite lors du chargement de vos paramètres de recharge automatique. Vérifiez votre connexion et réessayez.",autoRechargeThresholdLabel:"Seuil de recharge",autoRechargeThresholdHint:"La recharge se déclenche lorsque votre solde passe sous ce montant, 1 $ ou plus.",autoRechargeThresholdError:"Doit être un montant entier d’au moins 1 $.",autoRechargeChunkLabel:"Montant de recharge",autoRechargeChunkHint:"Montant en dollars entiers, 5 $ ou plus.",autoRechargeChunkError:"Doit être un montant en dollars entiers d’au moins 5 $.",autoRechargeLimitLabel:"Limite mensuelle (USD)",autoRechargeLimitHint:"Ne rechargera pas plus que ce montant par mois de facturation. Doit être un multiple du montant de recharge ({amount}).",autoRechargeLimitError:"Doit être un multiple du montant de recharge ({amount}).",autoRechargeSetLimitLabel:"Définir une limite mensuelle",autoRechargeSetLimitHint:"Plafonner les dépenses de la recharge automatique chaque mois de facturation.",autoRechargeNoCapHint:"La recharge automatique n'a pas de plafond mensuel.",autoRechargeDisabledReason:"La recharge automatique est désactivée : {reason}",autoRechargeUpdateSuccess:"Paramètres de recharge automatique mis à jour",autoRechargeUpdateError:"Impossible de mettre à jour vos paramètres de recharge automatique",autoRechargeSummaryOn:"Activée",autoRechargeSummaryOff:"Désactivée",autoRechargeSummaryMeta:"{amount} de recharge · jusqu’à {limit}/mois",autoRechargeSummaryMetaNoLimit:"{amount} de recharge · sans limite",autoRechargeSummaryLoadError:"Impossible de charger l'état",autoRechargeRequiresPaidPlanTitle:"La recharge automatique nécessite un plan payant",autoRechargeRequiresPaidPlanBody:"Mettez à niveau votre plan pour recharger automatiquement votre crédit IA.",autoRechargeUpgradeCta:"Mettre à niveau le plan"},Ki={free:"Gratis",manage:"Gestionar",cancel:"Cancelar",close:"Cerrar",open:"Abrir",edit:"Editar",update:"Actualizar",tryAgain:"Reintentar",save:"Guardar",upgrade:"Actualizar plan",downgrade:"Reducir plan",billingIntervalLabel:"Intervalo de facturación",billedMonthly:"Facturado mensualmente",billedAnnually:"Facturado anualmente",conversationsUnit:"conversaciones",conversationsPerMonth:"conversaciones / mes",perMonth:"/mes",perYear:"/año",perMonthLong:"/mes",perYearLong:"/año",resourceConversations:"Conversaciones / mes",resourceTableRows:"Filas de tabla",resourceVectorDb:"Almacenamiento vectorial",resourceFileStorage:"Almacenamiento de archivos",metricConversations:"conversaciones mensuales",metricTableRows:"filas de tabla",metricVectorDb:"almacenamiento vectorial",metricFileStorage:"almacenamiento de archivos",metricAiSpend:"gasto en IA",metricBotCount:"agentes",usageBannerLimitReached:"Has alcanzado tu límite de {label}. Actualiza ahora para evitar interrupciones.",usageBannerNearLimit:"Has usado el {pct}% de tu {label}. Actualiza para evitar alcanzar tu límite.",usageBannerDefaultCta:"Actualizar plan",usageBannerManageCta:"Gestionar plan",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plan actual",planBannerManagedTitle:"Gestionado en el Panel",planBannerManagedSub:"Este espacio de trabajo utiliza un sistema de facturación anterior.",planBannerNoPlan:"Sin plan",planBannerCustomPricing:"Precio personalizado",planBannerCustomConversations:"Conversaciones personalizadas",planBannerCustom:"Personalizado",planBannerRenews:"Renovación el {date}",planBannerDowngradesTo:"Cambia a {plan} el {date}",planBannerManageCta:"Gestionar plan",planBannerPendingUpgradeNote:"Actualización pendiente — esperando el pago",pendingUpgradeBannerText:"Tu último pago falló — esta actualización de suscripción está en espera hasta que se procese.",pendingUpgradeBannerCta:"Ver actualización pendiente",pendingUpgradeBlocksManageTooltip:"Resuelve tu actualización pendiente antes de hacer más cambios",pendingUpgradeTitle:"Actualización pendiente",pendingUpgradeFailedLabel:"Pago fallido",pendingUpgradeSubtitle:"Revisa tu método de pago y asegúrate de tener fondos suficientes, luego inténtalo de nuevo.",pendingUpgradeItemsLabel:"Elementos",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Monto a pagar",pendingUpgradeAmountUnavailable:"No se pudo cargar el monto a pagar — inténtalo de nuevo en un momento.",pendingUpgradeExpiresOn:"Si no se paga antes del {date}, esta actualización se cancelará automáticamente",pendingUpgradePayCta:"Pagar factura",pendingUpgradeCancelCta:"Cancelar actualización",pendingUpgradePaySuccess:"Pago confirmado",pendingUpgradePayError:"No se pudo pagar la factura",pendingUpgradeCancelSuccess:"Actualización pendiente cancelada",pendingUpgradeCancelError:"No se pudo cancelar la actualización pendiente",checkoutTitle:"Configura tu plan",checkoutBackLabel:"Volver a los planes",checkoutPlanDetails:"Detalles del plan",checkoutMonthlyBilling:"Facturación mensual",checkoutAnnualBilling:"Facturación anual",checkoutSaveBadge:"Ahorra un {savings}%",checkoutPaymentMethodTitle:"Método de pago",checkoutSavedCardTab:"Guardada",checkoutNewCardTab:"Nueva tarjeta",checkoutBillingAddressTitle:"Dirección de facturación",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Actualizar",checkoutIsBusiness:"Compro como empresa",checkoutBusinessDetails:"Datos de empresa",checkoutBusinessNamePlaceholder:"Nombre de la empresa",checkoutTaxIdTypeLabel:"Tipo de NIF",checkoutTaxIdNumberPlaceholder:"Número de NIF",checkoutNoTaxRequired:"No se requiere NIF para tu país de facturación.",checkoutSelectCountryForTax:"Selecciona tu país de facturación arriba para añadir un NIF.",checkoutContactInfo:"Información de contacto",checkoutEmailLabel:"Correo electrónico",checkoutCardNotReady:"El campo de tarjeta no está listo",checkoutPaymentSetupFailed:"Error al configurar el pago",checkoutPaymentMethodMissing:"No se pudo obtener el método de pago",checkoutAddressIncomplete:"Completa tu dirección de facturación",checkoutGenericError:"Se produjo un error al procesar tu pago. No se te ha cobrado dos veces.",checkoutSuccessToast:"Suscripción activada",checkoutErrorToast:"Error de pago",orderTopFeatures:"Características principales",orderThen:"luego {price} por {packSize}",orderPreviewError:"No pudimos calcular tu total. Inténtalo de nuevo en un momento.",orderPlanFromDate:"Plan {plan} — desde el {date}",orderProratedToday:"Prorrateo de hoy",orderProratedTodayDesc:"Al cambiar de plan a mitad de período, solo pagas por el tiempo restante en tu período de facturación actual. El precio completo del plan se cobra en tu próxima renovación, no hoy.",orderCreditUnusedTime:"Crédito por tiempo no utilizado",orderAdjustUnusedTime:"Ajuste por tiempo no utilizado",orderCreditUnusedTimeDesc:"Ya pagaste por el tiempo restante en tu período de facturación actual. Acreditamos ese tiempo no utilizado y lo reaplicamos a tu nueva tarifa, para que nunca se te cobre dos veces.",orderAdjustUnusedTimeDesc:"Cambiar a mitad de ciclo significa que prorrateamos la diferencia entre tu plan antiguo y el nuevo por los días restantes en tu período de facturación actual.",orderAccountCredit:"Crédito de cuenta",orderDueToday:"A pagar hoy",orderCreditTowardNext:"Tienes {amount} de tiempo no utilizado acreditado en tu próxima factura.",orderBalanceAsCredit:"Tu saldo restante de {amount} se aplica como crédito en tu próxima factura.",orderSavingsNote:"Estás ahorrando {monthlySavings}/mes al elegir un plan anual. Eso es {yearlySavings}/año.",orderSubscribe:"Suscribirse",orderPreviewUnavailable:"Vista previa no disponible",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensualmente",orderRenewsMonthly:"Se renueva mensualmente hasta que canceles.",orderRenewsAnnually:"Se renueva anualmente hasta que canceles.",orderChargedStarting:"Se te cobrará {amount}{period} a partir del {date}.",orderChargedNoDate:"Se te cobrará {amount}{period}.",orderCancelNote:"Cancela en cualquier momento en la Configuración. Al suscribirte, autorizas a Botpress a almacenar y cobrar tu método de pago.",invoicesTitle:"Historial de facturación",invoicesLoadError:"No pudimos cargar tus facturas. Inténtalo de nuevo en un momento.",invoicesEmpty:"Aún no hay facturas. Aparecerán aquí después de tu primer cargo.",invoicesDownloadLabel:"Descargar factura del {date}",invoiceStatusPaid:"Pagada",invoiceStatusDue:"Pendiente",invoiceStatusDraft:"Borrador",invoiceStatusUnpaid:"Impagada",invoiceStatusVoid:"Anulada",upgradeDialogTitle:"Actualizar tu plan",upgradeMonthly:"Mensual",upgradeAnnual:"Anual",upgradeSaveBadge:"Ahorra un {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mes ({currency})",upgradeNoTopup:"Sin recarga",upgradeCurrentPlan:"Tu plan actual",upgradeNextPlan:"Siguiente plan",upgradeCancelDowngrade:"Cancelar reducción",upgradeDowngrade:"Reducir plan",upgradeSwitchToAnnual:"Cambiar a anual",upgradeSwitchToMonthly:"Cambiar a mensual",upgradePlanManaged:"Tu plan está gestionado por Botpress — contáctanos para cambiarlo",upgradeUpgrade:"Actualizar",upgradeEverythingIn:"Todo lo de {planName}",upgradeSeeAllFeatures:"Ver las {total} funciones",upgradeShowFewerFeatures:"Mostrar menos funciones",upgradeContactUs:"Contáctanos",upgradeFooterEnterprise:"¿Necesitas más o trabajas a gran escala?",upgradeFooterAboutEnterprise:"para Enterprise. Compara planes en",upgradeThenPer:"luego {price} por {packSize} adicionales",upgradeDowngradeSuccess:"Plan reducido",upgradeDowngradeError:"Error al reducir el plan",upgradeCancelDowngradeSuccess:"Reducción programada cancelada",upgradeCancelDowngradeError:"No se pudo cancelar la reducción",cancelSurveyConfirmTitle:"¿Seguro que quieres cancelar?",cancelSurveyConfirmLede:"Las funciones de {plan} siguen disponibles <bold>hasta que termine este ciclo de facturación, el {date}.</bold> Después, perderás el acceso a:",cancelSurveyConfirmLedeNoDate:"Las funciones de {plan} siguen disponibles hasta que termine este ciclo de facturación. Después, perderás el acceso a:",cancelSurveyCurrentPlan:"Tu plan actual",cancelSurveyCurrentAddons:"Tus complementos actuales",cancelSurveyAddonPack:"Paquete de {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversaciones",cancelSurveyKeep:"Mantener mi suscripción",cancelSurveyContinue:"Continuar",cancelSurveyFeedbackTitle:"Antes de que te vayas, nos encantaría conocer tu opinión.",cancelSurveyFeedbackLede:"Tu opinión nos ayuda a mejorar Botpress. ¿Cuál es el motivo principal por el que cancelas tu suscripción?",cancelSurveyReasonTooExpensive:"Demasiado caro para mis necesidades actuales",cancelSurveyReasonNotUsingEnough:"No uso Botpress lo suficiente",cancelSurveyReasonMissingFeature:"Falta una función clave que necesito",cancelSurveyReasonSwitchedTool:"Me cambié a otra herramienta o plataforma",cancelSurveyReasonTechnicalIssues:"Tuve problemas técnicos o errores",cancelSurveyReasonSupportExpectations:"El soporte o la orientación no cumplieron mis expectativas",cancelSurveyReasonTemporaryNeed:"Solo necesitaba Botpress temporalmente",cancelSurveyCommentLabel:"Comentarios adicionales",cancelSurveyOptional:"(opcional)",cancelSurveyCommentPlaceholder:"Comparte cualquier comentario adicional...",cancelSurveyConfirm:"Confirmar cancelación",addonsDialogTitle:"Gestionar add-ons",addonsSubtitleWithPlan:"Uso adicional para tu plan {planName}. Establece una cantidad en 0 para eliminar un add-on.",addonsSubtitleGeneric:"Uso adicional para tu plan. Establece una cantidad en 0 para eliminar un add-on.",addonsRequirePaidPlanTitle:"Los add-ons requieren un plan de pago",addonsRequirePaidPlanBody:"Actualiza tu plan para desbloquear conversaciones adicionales, almacenamiento y más.",addonsUpgradeCta:"Actualizar plan",addonsEach:"c/u",addonActiveOnly:"{count} activo",addonRemoved:"{activeNow} activos ahora · eliminados",addonRemovedOnDate:"{activeNow} activos ahora · eliminados el {date}",addonChanged:"{activeNow} activos ahora · {pending} tras actualizar",addonChangedOnDate:"{activeNow} activos ahora · {pending} el {date}",addonsNewLimits:"Tus nuevos límites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Costo mensual total",addonsTotalYearly:"Costo anual total",addonsDueToday:"A pagar hoy",addonsChargedNow:"Se te cobrará {amount} ahora por el resto de este período de facturación. ",addonsNoChargeToday:"Sin cargo hoy — el cambio se calcula al prorrateo. ",addonsRenewalWithDate:"Tus add-ons costarán entonces {amount}{interval} hasta que los elimines, a partir del {date}.",addonsRenewalNoDate:"Tus add-ons costarán entonces {amount}{interval} hasta que los elimines.",addonsReadonlyNote:"Los add-ons de este espacio de trabajo están gestionados por Botpress — contáctanos para cambiarlos.",addonsUpdateSuccess:"Suscripción actualizada",addonsUpdateError:"No se pudo actualizar tus add-ons",addonsUpdateSubscription:"Actualizar suscripción",addonsConvos:"{n} conv.",outdatedTitle:"La facturación se gestiona en el Panel de Botpress",outdatedText:"Este espacio de trabajo utiliza un sistema de facturación anterior, por lo que los cambios de plan y los datos de pago no se pueden gestionar aquí.",outdatedCta:"Abrir facturación en el Panel",outgrowTitle:"Estás a punto de superar el plan Gratuito",outgrowLede:"El plan Gratuito incluye <bold>{quota}</bold> conversaciones en total, y no se renuevan. Al actualizar, obtienes una asignación mensual, desbloqueas más canales y añades packs de conversaciones, para que tus agentes nunca dejen de responder.",outgrowSoFar:"Hasta ahora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversaciones gratuitas usadas · no se renuevan",outgrowNoTopup:"Sin recarga",outgrowUpgradeTo:"Actualizar a {planName}",outgrowEverythingIn:"Todo lo de {planName}, y",outgrowNeedCustom:"¿Necesitas volumen personalizado, SLAs o voz?",outgrowTalkToSales:"Habla con ventas",outgrowCompareAll:"Comparar todos los planes",outgrowThenPer:"luego {symbol}{amount} por {packSize} adicionales",paymentDialogTitle:"Pago y facturación",paymentSessionError:"No pudimos iniciar una sesión segura.",paymentMethodSection:"Método de pago",paymentCardSaveError:"No se pudo guardar tu tarjeta",paymentMethodMissing:"No se pudo obtener el método de pago",paymentCardGenericError:"No pudimos guardar tu tarjeta. Verifica tus datos e inténtalo de nuevo.",paymentReplace:"Reemplazar",paymentBillingAddressSection:"Dirección de facturación",paymentTaxIds:"Número de identificación fiscal",paymentTaxEmpty:"Añade un número de IVA o identificación fiscal para que aparezca en tus facturas.",paymentTaxIdType:"Tipo de NIF",paymentTaxSelectType:"Seleccionar tipo",paymentTaxIdNumber:"Número de NIF",paymentTaxRemove:"Eliminar NIF",paymentTaxAdd:"+ Añadir NIF",paymentAddressIncomplete:"Completa tu dirección de facturación.",paymentAddressError:"No se pudieron actualizar tus datos de facturación.",paymentCardUpdated:"Tarjeta actualizada",paymentDetailsUpdated:"Datos de facturación actualizados",paymentSaveCard:"Guardar tarjeta",paymentSaveBillingDetails:"Guardar datos de facturación",paymentDetailsUpdateError:"No se pudieron actualizar tus datos de facturación",usageWidgetLimitReached:"Límite alcanzado",usageWidgetRunningLow:"Stock bajo",usageWidgetUpgradeToKeepGoing:"Actualiza para continuar.",usageWidgetOnlyLeft:"Solo quedan {left}.",usageWidgetFreeExhausted:"Todas tus conversaciones gratuitas están agotadas y no se renuevan.",usageWidgetFreeLeft:"Te quedan {left} conversaciones gratuitas y no se renuevan.",usageWidgetEnterpriseOverQuota:"Un representante de Botpress se pondrá en contacto contigo al final del período de uso.",usageWidgetResets:"Se restablece el {date}",usageWidgetViewOptions:"Ver opciones de plan",usagePopoverFreeTitle:"Uso del plan gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversaciones</bold> incluidas, en total. No se renuevan, y el plan Gratis no tiene recargas.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"El período actual termina el {date}",usagePopoverNudgeText:"<bold>¿Necesitas más espacio?</bold> Plus incluye agentes ilimitados, {quota} conversaciones al mes y paquetes de {packSize} adicionales cuando los necesites.",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de facturación",dashboardPrevMonth:"Mes anterior",dashboardNextMonth:"Mes siguiente",dashboardConversationsTitle:"Conversaciones",dashboardConversationsHint:"Cada conversación incluye uso de IA. Cuando alcanzas tu límite, se añaden conversaciones adicionales automáticamente para que el service continúe.",dashboardStorageTitle:"Almacenamiento",dashboardStorageHint:"Compartido entre archivos, base de conocimiento y tablas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversación incluye una asignación de uso de IA. Controla cuánto de esa asignación has usado",dashboardEnterpriseUsageNotice:"Tu uso no se bloqueará si superas la cuota.",dashboardLoadError:"No pudimos cargar tu uso. Inténtalo de nuevo en un momento.",dashboardNoBotSpend:"Sin gasto de IA por bot en este período.",dashboardAiByBot:"Gasto de IA por bot",dashboardConversationsMetric:"Conversaciones",dashboardTableRows:"Filas de tabla",dashboardVectorDb:"Almacenamiento vectorial",dashboardFileStorage:"Almacenamiento de archivos",dashboardAiSpend:"Gasto en IA",dashboardFromPlan:"{amount} del plan {planName}",dashboardFromPlanGeneric:"{amount} de tu plan",dashboardFromPlanWithAddons:"{amount} del plan {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} de tu plan + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar límites",planFeatureAiUsageIncluded:"Uso de IA incluido: {amount}",planFeature3Seats:"3 puestos",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Centro de ayuda",planFeature1kTableRows:"1K filas de tabla",planFeature100kTableRows:"100K filas de tabla",planFeature500kTableRows:"500K filas de tabla",planFeature100mbFileStorage:"100MB de almacenamiento de archivos",planFeature10gbFileStorage:"10GB de almacenamiento de archivos",planFeature50gbFileStorage:"50GB de almacenamiento de archivos",planFeature100mbVectorDb:"100MB de almacenamiento vectorial",planFeature1gbVectorDb:"1GB de almacenamiento vectorial",planFeature5gbVectorDb:"5GB de almacenamiento vectorial",planFeatureCommunitySupport:"Soporte comunitario",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal de WhatsApp",planFeatureHelpCenterCustomDomain:"Dominio personalizado del centro de ayuda",planFeatureWhitelabelWebchat:"Webchat sin marca",planFeatureTechnicalSupportLiveChat:"Soporte técnico por chat en vivo",planFeatureUnlimitedSeats:"Puestos ilimitados",planFeatureTeamsRoutingRbac:"Equipos, enrutamiento y RBAC",planFeatureTeamLevelAnalytics:"Analíticas por equipo",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Soporte dedicado",planFeatureSlaSecurity:"SLA y revisión de seguridad",planFeatureCustomStorage:"Almacenamiento personalizado",planFeatureDescAiUsageIncluded:"El uso de IA es el costo de llamar a un LLM. Cada conversación incluye {rate}. Nosotros lo pagamos.",planFeatureDesc3Seats:"Hasta 3 miembros del equipo pueden colaborar en este espacio de trabajo.",planFeatureDescUnlimitedSeats:"Invita a todos los miembros del equipo que necesites al espacio de trabajo.",planFeatureDesc3AiAgents:"Crea y publica hasta 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crea y publica todos los agentes de IA que necesites.",planFeatureDescBotpressDesk:"La bandeja de entrada de traspaso a humanos donde los agentes gestionan y responden conversaciones en vivo.",planFeatureDescBotpressStudioAdk:"El constructor visual Studio más el Kit de Desarrollo de Agentes para crear agentes en código.",planFeatureDescBotpressViber:"Crea agentes de IA chateando con Vibe, sin necesidad de programar.",planFeatureDescHelpCenter:"Una base de conocimiento alojada desde la que responde tu agente y que los clientes pueden consultar.",planFeatureDescHelpCenterCustomDomain:"Publica tu centro de ayuda desde tu propio dominio en lugar de una URL de Botpress.",planFeatureDescWhatsappChannel:"Conecta tu agente a WhatsApp para chatear con los clientes allí.",planFeatureDescVoiceChannel:"Conecta tu agente al teléfono/voz para que pueda gestionar conversaciones habladas.",planFeatureDescWhitelabelWebchat:"Elimina la marca de Botpress del widget de chat web para que sea completamente tuyo.",planFeatureDescTeamsRoutingRbac:"Organiza miembros en equipos, enruta conversaciones entre ellos y controla el acceso por rol.",planFeatureDescTeamLevelAnalytics:"Métricas de rendimiento y volumen desglosadas por equipo.",planFeatureDescTechnicalSupportLiveChat:"Contacta al equipo de soporte de Botpress por chat en vivo para obtener ayuda.",planFeatureDescCommunitySupport:"Obtén ayuda del foro de la comunidad de Botpress y Discord.",planFeatureDescDedicatedSupport:"Un contacto designado y un canal de soporte prioritario para tu cuenta.",planFeatureDescSlaSecurity:"Un SLA de disponibilidad contractual y una revisión de seguridad/cumplimiento para tu proceso de adquisición.",planFeatureDescCustomStorage:"Límites de almacenamiento adaptados a tu carga de trabajo, más allá de los niveles estándar.",planFeatureDesc1kTableRows:"1K filas en todas tus tablas de datos.",planFeatureDesc100kTableRows:"100K filas en todas tus tablas de datos.",planFeatureDesc500kTableRows:"500K filas en todas tus tablas de datos.",planFeatureDesc100mbFileStorage:"100MB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc10gbFileStorage:"10GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc50gbFileStorage:"50GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planDescriptionCommunity:"Plan gratuito para explorar",planDescriptionPlus:"Para negocios en crecimiento",planDescriptionTeam:"Para equipos pequeños",planDescriptionEnterprise:"Suscripción de licencia empresarial",planDescriptionManaged:"Suscripción de licencia gestionada",addonNameConversationSessions:"Conversaciones",addonNameStorage:"Almacenamiento",addonDescriptionConversationSessions:"Añade sesiones de conversación para el mes",addonDescriptionStorage:"Añade filas de tabla, espacio de base de datos vectorial y archivos",summaryCurrentPlan:"Plan actual",summaryManagedInDashboard:"Gestionado en el Panel",summaryManagedMeta:"Este espacio de trabajo utiliza un sistema de facturación anterior.",summaryNoPlan:"Sin plan",summaryConversationsPerMo:"{n} conversaciones/mes",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on activo",summaryActiveAddons:"{count} add-ons activos",summaryNoAddons:"Sin add-ons",summaryNoAddonsMeta:"Añade conversaciones o almacenamiento adicional",autoRechargeTitle:"Recarga automática de gastos de IA",autoRechargeDescription:"Recarga automáticamente tu crédito de uso de IA cuando tu saldo sea bajo.",autoRechargeLoadErrorTitle:"No pudimos cargar tu configuración",autoRechargeLoadError:"Algo salió mal al obtener tu configuración de auto-recarga. Revisa tu conexión e inténtalo de nuevo.",autoRechargeThresholdLabel:"Umbral de recarga",autoRechargeThresholdHint:"La recarga se activa cuando tu saldo cae por debajo de este monto, $1 o más.",autoRechargeThresholdError:"Debe ser un monto entero de al menos $1.",autoRechargeChunkLabel:"Monto de recarga",autoRechargeChunkHint:"Monto en dólares enteros, $5 o más.",autoRechargeChunkError:"Debe ser un monto en dólares enteros de al menos $5.",autoRechargeLimitLabel:"Límite mensual (USD)",autoRechargeLimitHint:"No recargará más que esto en un mes de facturación. Debe ser un múltiplo del monto de recarga ({amount}).",autoRechargeLimitError:"Debe ser un múltiplo del monto de recarga ({amount}).",autoRechargeSetLimitLabel:"Establecer un límite mensual",autoRechargeSetLimitHint:"Limita cuánto puede gastar la recarga automática cada mes de facturación.",autoRechargeNoCapHint:"La recarga automática no tiene un límite mensual.",autoRechargeDisabledReason:"La recarga automática está desactivada: {reason}",autoRechargeUpdateSuccess:"Configuración de recarga automática actualizada",autoRechargeUpdateError:"No se pudo actualizar tu configuración de recarga automática",autoRechargeSummaryOn:"Activada",autoRechargeSummaryOff:"Desactivada",autoRechargeSummaryMeta:"{amount} de recarga · hasta {limit}/mes",autoRechargeSummaryMetaNoLimit:"{amount} de recarga · sin límite",autoRechargeSummaryLoadError:"No se pudo cargar el estado",autoRechargeRequiresPaidPlanTitle:"La auto-recarga requiere un plan de pago",autoRechargeRequiresPaidPlanBody:"Actualiza tu plan para recargar automáticamente tu crédito de uso de IA.",autoRechargeUpgradeCta:"Actualizar plan"},$i={free:"Gratuito",manage:"Gerenciar",cancel:"Cancelar",close:"Fechar",open:"Abrir",edit:"Editar",update:"Atualizar",tryAgain:"Tentar novamente",save:"Salvar",upgrade:"Atualizar plano",downgrade:"Reduzir plano",billingIntervalLabel:"Intervalo de cobrança",billedMonthly:"Cobrado mensalmente",billedAnnually:"Cobrado anualmente",conversationsUnit:"conversas",conversationsPerMonth:"conversas / mês",perMonth:"/mês",perYear:"/ano",perMonthLong:"/mês",perYearLong:"/ano",resourceConversations:"Conversas / mês",resourceTableRows:"Linhas de tabela",resourceVectorDb:"Armazenamento vetorial",resourceFileStorage:"Armazenamento de arquivos",metricConversations:"conversas mensais",metricTableRows:"linhas de tabela",metricVectorDb:"armazenamento vetorial",metricFileStorage:"armazenamento de arquivos",metricAiSpend:"gastos com IA",metricBotCount:"agentes",usageBannerLimitReached:"Você atingiu seu limite de {label}. Atualize agora para evitar interrupções.",usageBannerNearLimit:"Você usou {pct}% de sua {label}. Atualize para evitar atingir seu limite.",usageBannerDefaultCta:"Atualizar plano",usageBannerManageCta:"Gerenciar plano",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plano atual",planBannerManagedTitle:"Gerenciado no Painel",planBannerManagedSub:"Este espaço de trabalho usa um sistema de cobrança anterior.",planBannerNoPlan:"Sem plano",planBannerCustomPricing:"Preço personalizado",planBannerCustomConversations:"Conversas personalizadas",planBannerCustom:"Personalizado",planBannerRenews:"Renova em {date}",planBannerDowngradesTo:"Muda para {plan} em {date}",planBannerManageCta:"Gerenciar plano",planBannerPendingUpgradeNote:"Atualização pendente — aguardando pagamento",pendingUpgradeBannerText:"Seu último pagamento falhou — esta atualização de assinatura está em espera até ser processada.",pendingUpgradeBannerCta:"Ver atualização pendente",pendingUpgradeBlocksManageTooltip:"Resolva sua atualização pendente antes de fazer mais alterações",pendingUpgradeTitle:"Atualização pendente",pendingUpgradeFailedLabel:"Pagamento falhou",pendingUpgradeSubtitle:"Revise sua forma de pagamento e verifique se há saldo suficiente, depois tente novamente.",pendingUpgradeItemsLabel:"Itens",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Valor a pagar",pendingUpgradeAmountUnavailable:"Não foi possível carregar o valor a pagar — tente novamente em instantes.",pendingUpgradeExpiresOn:"Se não for paga até {date}, esta atualização será cancelada automaticamente",pendingUpgradePayCta:"Pagar fatura",pendingUpgradeCancelCta:"Cancelar atualização",pendingUpgradePaySuccess:"Pagamento confirmado",pendingUpgradePayError:"Não foi possível pagar a fatura",pendingUpgradeCancelSuccess:"Atualização pendente cancelada",pendingUpgradeCancelError:"Não foi possível cancelar a atualização pendente",checkoutTitle:"Configurar seu plano",checkoutBackLabel:"Voltar aos planos",checkoutPlanDetails:"Detalhes do plano",checkoutMonthlyBilling:"Cobrança mensal",checkoutAnnualBilling:"Cobrança anual",checkoutSaveBadge:"Economize {savings}%",checkoutPaymentMethodTitle:"Forma de pagamento",checkoutSavedCardTab:"Salvo",checkoutNewCardTab:"Novo cartão",checkoutBillingAddressTitle:"Endereço de cobrança",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Atualizar",checkoutIsBusiness:"Estou comprando como empresa",checkoutBusinessDetails:"Dados da empresa",checkoutBusinessNamePlaceholder:"Nome da empresa",checkoutTaxIdTypeLabel:"Tipo de CNPJ/CPF",checkoutTaxIdNumberPlaceholder:"Número de CNPJ/CPF",checkoutNoTaxRequired:"Nenhum número fiscal é necessário para seu país de cobrança.",checkoutSelectCountryForTax:"Selecione seu país de cobrança acima para adicionar um número fiscal.",checkoutContactInfo:"Informações de contato",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"O campo do cartão não está pronto",checkoutPaymentSetupFailed:"Falha ao configurar pagamento",checkoutPaymentMethodMissing:"Não foi possível recuperar a forma de pagamento",checkoutAddressIncomplete:"Preencha seu endereço de cobrança",checkoutGenericError:"Ocorreu um erro ao processar seu pagamento. Você não foi cobrado duas vezes.",checkoutSuccessToast:"Assinatura ativada",checkoutErrorToast:"Erro de pagamento",orderTopFeatures:"Principais recursos",orderThen:"depois {price} por {packSize}",orderPreviewError:"Não foi possível calcular seu total. Tente novamente em um momento.",orderPlanFromDate:"Plano {plan} — a partir de {date}",orderProratedToday:"Rateado para hoje",orderProratedTodayDesc:"Ao mudar de plano no meio do período, você paga apenas pelo tempo restante no seu período de cobrança atual. O preço total do plano acima é cobrado na sua próxima renovação, não hoje.",orderCreditUnusedTime:"Crédito por tempo não utilizado",orderAdjustUnusedTime:"Ajuste por tempo não utilizado",orderCreditUnusedTimeDesc:"Você já pagou pelo tempo restante no seu período de cobrança atual. Creditamos esse tempo não utilizado e o reaplicamos na sua nova tarifa, para que você nunca seja cobrado duas vezes.",orderAdjustUnusedTimeDesc:"Mudar no meio do ciclo significa que rateamos a diferença entre seu plano antigo e o novo pelos dias restantes no seu período de cobrança atual.",orderAccountCredit:"Crédito em conta",orderDueToday:"A pagar hoje",orderCreditTowardNext:"Você tem {amount} de tempo não utilizado creditado na sua próxima fatura.",orderBalanceAsCredit:"Seu saldo restante de {amount} é aplicado como crédito na sua próxima fatura.",orderSavingsNote:"Você está economizando {monthlySavings}/mês ao escolher um plano anual. Isso é {yearlySavings}/ano.",orderSubscribe:"Assinar",orderPreviewUnavailable:"Pré-visualização indisponível",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensalmente",orderRenewsMonthly:"Renova mensalmente até ser cancelado.",orderRenewsAnnually:"Renova anualmente até ser cancelado.",orderChargedStarting:"Você será cobrado {amount}{period} a partir de {date}.",orderChargedNoDate:"Você será cobrado {amount}{period}.",orderCancelNote:"Cancele a qualquer momento nas Configurações. Ao assinar, você autoriza a Botpress a armazenar e cobrar sua forma de pagamento.",invoicesTitle:"Histórico de cobrança",invoicesLoadError:"Não foi possível carregar suas faturas. Tente novamente em um momento.",invoicesEmpty:"Nenhuma fatura ainda. Elas aparecerão aqui após seu primeiro pagamento.",invoicesDownloadLabel:"Baixar fatura de {date}",invoiceStatusPaid:"Pago",invoiceStatusDue:"Pendente",invoiceStatusDraft:"Rascunho",invoiceStatusUnpaid:"Não pago",invoiceStatusVoid:"Cancelado",upgradeDialogTitle:"Atualizar seu plano",upgradeMonthly:"Mensal",upgradeAnnual:"Anual",upgradeSaveBadge:"Economize {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mês ({currency})",upgradeNoTopup:"Sem pacote adicional",upgradeCurrentPlan:"Seu plano atual",upgradeNextPlan:"Próximo plano",upgradeCancelDowngrade:"Cancelar redução",upgradeDowngrade:"Reduzir plano",upgradeSwitchToAnnual:"Mudar para anual",upgradeSwitchToMonthly:"Mudar para mensal",upgradePlanManaged:"Seu plano é gerenciado pela Botpress — entre em contato para alterá-lo",upgradeUpgrade:"Atualizar",upgradeEverythingIn:"Tudo do {planName}",upgradeSeeAllFeatures:"Ver todos os {total} recursos",upgradeShowFewerFeatures:"Mostrar menos recursos",upgradeContactUs:"Entre em contato",upgradeFooterEnterprise:"Precisa de mais, ou trabalhando em escala?",upgradeFooterAboutEnterprise:"sobre o Enterprise. Compare planos em",upgradeThenPer:"depois {price} por {packSize} adicionais",upgradeDowngradeSuccess:"Plano reduzido",upgradeDowngradeError:"Falha ao reduzir o plano",upgradeCancelDowngradeSuccess:"Redução agendada cancelada",upgradeCancelDowngradeError:"Não foi possível cancelar a redução",cancelSurveyConfirmTitle:"Tem certeza de que deseja cancelar?",cancelSurveyConfirmLede:"Os recursos do {plan} continuam disponíveis <bold>até o fim deste ciclo de cobrança, em {date}.</bold> Depois disso, você perderá o acesso a:",cancelSurveyConfirmLedeNoDate:"Os recursos do {plan} continuam disponíveis até o fim deste ciclo de cobrança. Depois disso, você perderá o acesso a:",cancelSurveyCurrentPlan:"Seu plano atual",cancelSurveyCurrentAddons:"Seus complementos atuais",cancelSurveyAddonPack:"Pacote de {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversas",cancelSurveyKeep:"Manter minha assinatura",cancelSurveyContinue:"Continuar",cancelSurveyFeedbackTitle:"Antes de você ir, adoraríamos ouvir sua opinião.",cancelSurveyFeedbackLede:"Sua opinião nos ajuda a melhorar o Botpress. Qual é o principal motivo do cancelamento da sua assinatura?",cancelSurveyReasonTooExpensive:"Caro demais para minhas necessidades atuais",cancelSurveyReasonNotUsingEnough:"Não uso o Botpress o suficiente",cancelSurveyReasonMissingFeature:"Falta um recurso importante de que preciso",cancelSurveyReasonSwitchedTool:"Mudei para outra ferramenta ou plataforma",cancelSurveyReasonTechnicalIssues:"Tive problemas técnicos ou bugs",cancelSurveyReasonSupportExpectations:"O suporte ou a orientação não atenderam às minhas expectativas",cancelSurveyReasonTemporaryNeed:"Só precisei do Botpress temporariamente",cancelSurveyCommentLabel:"Comentários adicionais",cancelSurveyOptional:"(opcional)",cancelSurveyCommentPlaceholder:"Compartilhe qualquer comentário adicional...",cancelSurveyConfirm:"Confirmar cancelamento",addonsDialogTitle:"Gerenciar add-ons",addonsSubtitleWithPlan:"Uso adicional para seu plano {planName}. Defina uma quantidade como 0 para remover um add-on.",addonsSubtitleGeneric:"Uso adicional para seu plano. Defina uma quantidade como 0 para remover um add-on.",addonsRequirePaidPlanTitle:"Os add-ons requerem um plano pago",addonsRequirePaidPlanBody:"Atualize seu plano para desbloquear conversas adicionais, armazenamento e muito mais.",addonsUpgradeCta:"Atualizar plano",addonsEach:"cada",addonActiveOnly:"{count} ativo",addonRemoved:"{activeNow} ativo agora · removido",addonRemovedOnDate:"{activeNow} ativo agora · removido em {date}",addonChanged:"{activeNow} ativo agora · {pending} após atualizar",addonChangedOnDate:"{activeNow} ativo agora · {pending} em {date}",addonsNewLimits:"Seus novos limites",addonsPlanLine:"Plano {planName}",addonsGenericPlan:"Plano",addonsTotalMonthly:"Custo mensal total",addonsTotalYearly:"Custo anual total",addonsDueToday:"A pagar hoje",addonsChargedNow:"Você será cobrado {amount} agora pelo restante deste período de cobrança. ",addonsNoChargeToday:"Sem cobrança hoje — a mudança é rateada. ",addonsRenewalWithDate:"Seus add-ons passarão então a custar {amount}{interval} até você removê-los, a partir de {date}.",addonsRenewalNoDate:"Seus add-ons passarão então a custar {amount}{interval} até você removê-los.",addonsReadonlyNote:"Os add-ons deste espaço de trabalho são gerenciados pela Botpress — entre em contato para alterá-los.",addonsUpdateSuccess:"Assinatura atualizada",addonsUpdateError:"Não foi possível atualizar seus add-ons",addonsUpdateSubscription:"Atualizar assinatura",addonsConvos:"{n} conv.",outdatedTitle:"A cobrança é gerenciada no Painel da Botpress",outdatedText:"Este espaço de trabalho usa um sistema de cobrança anterior, portanto, alterações de plano e detalhes de pagamento não podem ser gerenciados aqui.",outdatedCta:"Abrir cobrança no Painel",outgrowTitle:"Você está prestes a superar o plano Gratuito",outgrowLede:"O plano Gratuito inclui <bold>{quota}</bold> conversas no total, e elas não são renovadas. Ao atualizar, você passa para uma cota mensal, desbloqueia mais canais e adiciona pacotes de conversas, para que seus agentes nunca parem de responder.",outgrowSoFar:"Até agora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversas gratuitas usadas · elas não são renovadas",outgrowNoTopup:"Sem pacote adicional",outgrowUpgradeTo:"Atualizar para {planName}",outgrowEverythingIn:"Tudo do {planName}, e",outgrowNeedCustom:"Precisa de volume personalizado, SLAs ou voz?",outgrowTalkToSales:"Fale com vendas",outgrowCompareAll:"Comparar todos os planos",outgrowThenPer:"depois {symbol}{amount} por {packSize} adicionais",paymentDialogTitle:"Pagamento e cobrança",paymentSessionError:"Não foi possível iniciar uma sessão segura.",paymentMethodSection:"Forma de pagamento",paymentCardSaveError:"Não foi possível salvar seu cartão",paymentMethodMissing:"Não foi possível recuperar a forma de pagamento",paymentCardGenericError:"Não foi possível salvar seu cartão. Verifique seus dados e tente novamente.",paymentReplace:"Substituir",paymentBillingAddressSection:"Endereço de cobrança",paymentTaxIds:"Números fiscais",paymentTaxEmpty:"Adicione um número de CNPJ/CPF para que ele apareça em suas faturas.",paymentTaxIdType:"Tipo de número fiscal",paymentTaxSelectType:"Selecionar tipo",paymentTaxIdNumber:"Número fiscal",paymentTaxRemove:"Remover número fiscal",paymentTaxAdd:"+ Adicionar número fiscal",paymentAddressIncomplete:"Preencha seu endereço de cobrança.",paymentAddressError:"Não foi possível atualizar seus dados de cobrança.",paymentCardUpdated:"Cartão atualizado",paymentDetailsUpdated:"Dados de cobrança atualizados",paymentSaveCard:"Salvar cartão",paymentSaveBillingDetails:"Salvar dados de cobrança",paymentDetailsUpdateError:"Não foi possível atualizar seus dados de cobrança",usageWidgetLimitReached:"Limite atingido",usageWidgetRunningLow:"Estoque baixo",usageWidgetUpgradeToKeepGoing:"Atualize para continuar.",usageWidgetOnlyLeft:"Apenas {left} restantes.",usageWidgetFreeExhausted:"Todas as suas conversas gratuitas foram usadas e não são renovadas.",usageWidgetFreeLeft:"{left} conversas gratuitas restantes e elas não são renovadas.",usageWidgetEnterpriseOverQuota:"Um representante da Botpress entrará em contato no fim do período de uso.",usageWidgetResets:"Reinicia em {date}",usageWidgetViewOptions:"Ver opções de plano",usagePopoverFreeTitle:"Uso do plano gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversas</bold> incluídas, no total. Elas não são renovadas, e o plano Gratuito não tem recargas.",usagePopoverPlanName:"Plano {planName}",usagePopoverTitle:"O período atual termina em {date}",usagePopoverNudgeText:"<bold>Precisa de mais espaço?</bold> O Plus inclui agentes ilimitados, {quota} conversas por mês e pacotes de {packSize} extras quando você precisar.",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de cobrança",dashboardPrevMonth:"Mês anterior",dashboardNextMonth:"Próximo mês",dashboardConversationsTitle:"Conversas",dashboardConversationsHint:"Cada conversa inclui uso de IA. Quando você atinge seu limite, conversas adicionais são adicionadas automaticamente para que o serviço continue.",dashboardStorageTitle:"Armazenamento",dashboardStorageHint:"Compartilhado entre arquivos, base de conhecimento e tabelas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversa inclui uma cota de uso de IA. Acompanhe quanto dessa cota você já usou",dashboardEnterpriseUsageNotice:"Seu uso não será bloqueado se você ultrapassar a cota.",dashboardLoadError:"Não foi possível carregar seu uso. Tente novamente em um momento.",dashboardNoBotSpend:"Sem gastos de IA por bot neste período.",dashboardAiByBot:"Gastos de IA por bot",dashboardConversationsMetric:"Conversas",dashboardTableRows:"Linhas de tabela",dashboardVectorDb:"Armazenamento vetorial",dashboardFileStorage:"Armazenamento de arquivos",dashboardAiSpend:"Gastos com IA",dashboardFromPlan:"{amount} do plano {planName}",dashboardFromPlanGeneric:"{amount} do seu plano",dashboardFromPlanWithAddons:"{amount} do plano {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} do seu plano + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar limites",planFeatureAiUsageIncluded:"Uso de IA incluído: {amount}",planFeature3Seats:"3 vagas",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Central de ajuda",planFeature1kTableRows:"1K linhas de tabela",planFeature100kTableRows:"100K linhas de tabela",planFeature500kTableRows:"500K linhas de tabela",planFeature100mbFileStorage:"100MB de armazenamento de arquivos",planFeature10gbFileStorage:"10GB de armazenamento de arquivos",planFeature50gbFileStorage:"50GB de armazenamento de arquivos",planFeature100mbVectorDb:"100MB de armazenamento vetorial",planFeature1gbVectorDb:"1GB de armazenamento vetorial",planFeature5gbVectorDb:"5GB de armazenamento vetorial",planFeatureCommunitySupport:"Suporte da comunidade",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal do WhatsApp",planFeatureHelpCenterCustomDomain:"Domínio personalizado da central de ajuda",planFeatureWhitelabelWebchat:"Webchat sem marca",planFeatureTechnicalSupportLiveChat:"Suporte técnico via chat ao vivo",planFeatureUnlimitedSeats:"Vagas ilimitadas",planFeatureTeamsRoutingRbac:"Equipes, roteamento e RBAC",planFeatureTeamLevelAnalytics:"Análises por equipe",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Suporte dedicado",planFeatureSlaSecurity:"SLA e revisão de segurança",planFeatureCustomStorage:"Armazenamento personalizado",planFeatureDescAiUsageIncluded:"O uso de IA é o custo de chamar um LLM. Cada conversa inclui {rate}. Nós pagamos por você.",planFeatureDesc3Seats:"Até 3 membros da equipe podem colaborar neste espaço de trabalho.",planFeatureDescUnlimitedSeats:"Convide quantos membros da equipe precisar para o espaço de trabalho.",planFeatureDesc3AiAgents:"Crie e publique até 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crie e publique quantos agentes de IA precisar.",planFeatureDescBotpressDesk:"A caixa de entrada de transferência para humanos onde os agentes triagem e respondem conversas ao vivo.",planFeatureDescBotpressStudioAdk:"O construtor visual Studio mais o Kit de Desenvolvimento de Agentes para criar agentes em código.",planFeatureDescBotpressViber:"Crie agentes de IA conversando com o Vibe, sem precisar programar.",planFeatureDescHelpCenter:"Uma base de conhecimento hospedada da qual seu agente responde e que os clientes podem consultar.",planFeatureDescHelpCenterCustomDomain:"Publique sua central de ajuda a partir do seu próprio domínio em vez de uma URL da Botpress.",planFeatureDescWhatsappChannel:"Conecte seu agente ao WhatsApp para conversar com clientes lá.",planFeatureDescVoiceChannel:"Conecte seu agente ao telefone/voz para que possa lidar com conversas faladas.",planFeatureDescWhitelabelWebchat:"Remova a marca Botpress do widget de chat web para que seja totalmente seu.",planFeatureDescTeamsRoutingRbac:"Organize membros em equipes, roteie conversas entre elas e controle o acesso por função.",planFeatureDescTeamLevelAnalytics:"Métricas de desempenho e volume detalhadas por equipe.",planFeatureDescTechnicalSupportLiveChat:"Entre em contato com a equipe de suporte da Botpress via chat ao vivo para obter ajuda.",planFeatureDescCommunitySupport:"Obtenha ajuda no fórum da comunidade Botpress e no Discord.",planFeatureDescDedicatedSupport:"Um contato designado e canal de suporte prioritário para sua conta.",planFeatureDescSlaSecurity:"Um SLA de disponibilidade contratual e uma revisão de segurança/conformidade para seu processo de aquisição.",planFeatureDescCustomStorage:"Limites de armazenamento adaptados à sua carga de trabalho, além dos níveis padrão.",planFeatureDesc1kTableRows:"1K linhas em todas as suas tabelas de dados.",planFeatureDesc100kTableRows:"100K linhas em todas as suas tabelas de dados.",planFeatureDesc500kTableRows:"500K linhas em todas as suas tabelas de dados.",planFeatureDesc100mbFileStorage:"100MB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc10gbFileStorage:"10GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc50gbFileStorage:"50GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para busca e recuperação na base de conhecimento.",planDescriptionCommunity:"Plano gratuito para experimentar",planDescriptionPlus:"Para negócios em crescimento",planDescriptionTeam:"Para equipes pequenas",planDescriptionEnterprise:"Assinatura de licença corporativa",planDescriptionManaged:"Assinatura de licença gerenciada",addonNameConversationSessions:"Conversas",addonNameStorage:"Armazenamento",addonDescriptionConversationSessions:"Adiciona sessões de conversa para o mês",addonDescriptionStorage:"Adiciona linhas de tabela, espaço de banco de dados vetorial e arquivos",summaryCurrentPlan:"Plano atual",summaryManagedInDashboard:"Gerenciado no Painel",summaryManagedMeta:"Este espaço de trabalho usa um sistema de cobrança anterior.",summaryNoPlan:"Sem plano",summaryConversationsPerMo:"{n} conversas/mês",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on ativo",summaryActiveAddons:"{count} add-ons ativos",summaryNoAddons:"Sem add-ons",summaryNoAddonsMeta:"Adicione conversas ou armazenamento extra",autoRechargeTitle:"Recarga automática de gastos com IA",autoRechargeDescription:"Recarrega automaticamente seu crédito de uso de IA quando o saldo estiver baixo.",autoRechargeLoadErrorTitle:"Não foi possível carregar suas configurações",autoRechargeLoadError:"Algo deu errado ao buscar suas configurações de auto-recarga. Verifique sua conexão e tente novamente.",autoRechargeThresholdLabel:"Limite para recarga",autoRechargeThresholdHint:"A recarga é acionada quando seu saldo cair abaixo desse valor, $1 ou mais.",autoRechargeThresholdError:"Deve ser um valor inteiro de pelo menos $1.",autoRechargeChunkLabel:"Valor da recarga",autoRechargeChunkHint:"Valor em dólares inteiros, $5 ou mais.",autoRechargeChunkError:"Deve ser um valor em dólares inteiros de pelo menos $5.",autoRechargeLimitLabel:"Limite mensal (USD)",autoRechargeLimitHint:"Não recarregará mais do que isso em um mês de cobrança. Deve ser um múltiplo do valor da recarga ({amount}).",autoRechargeLimitError:"Deve ser um múltiplo do valor da recarga ({amount}).",autoRechargeSetLimitLabel:"Definir um limite mensal",autoRechargeSetLimitHint:"Limite quanto a recarga automática pode gastar a cada mês de cobrança.",autoRechargeNoCapHint:"A recarga automática não tem um limite mensal.",autoRechargeDisabledReason:"A recarga automática está desativada: {reason}",autoRechargeUpdateSuccess:"Configurações de recarga automática atualizadas",autoRechargeUpdateError:"Não foi possível atualizar suas configurações de recarga automática",autoRechargeSummaryOn:"Ativada",autoRechargeSummaryOff:"Desativada",autoRechargeSummaryMeta:"{amount} de recarga · até {limit}/mês",autoRechargeSummaryMetaNoLimit:"{amount} de recarga · sem limite",autoRechargeSummaryLoadError:"Não foi possível carregar o status",autoRechargeRequiresPaidPlanTitle:"A recarga automática requer um plano pago",autoRechargeRequiresPaidPlanBody:"Atualize seu plano para recarregar automaticamente seu crédito de uso de IA.",autoRechargeUpgradeCta:"Atualizar plano"},Wa="billing",qn=Zi();qn.use(hi).init({resources:{en:{[Wa]:Wi},fr:{[Wa]:Gi},es:{[Wa]:Ki},pt:{[Wa]:$i}},lng:"en",fallbackLng:"en",ns:[Wa],defaultNS:Wa,interpolation:{escapeValue:!1,prefix:"{",suffix:"}"}});const Ri=new Set(["v1","v2","v3"]);function ss(a){return Ri.has(a)}const Rt=T.createContext(null);function Hi(a){const[e,t]=T.useState(()=>typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches);return T.useEffect(()=>{if(a!=="system")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),r=o=>t(o.matches);return n.addEventListener("change",r),()=>n.removeEventListener("change",r)},[a]),a==="system"?e:a==="dark"}const Yi=({client:a,stripePublishableKey:e,email:t,locale:n="en",theme:r="light",colorScheme:o="default",onToast:i,analytics:l,featureLabels:d,billingVersion:c,workspaceId:u,persist:p=!0,manageBillingUrl:g,onBillingChange:m,refreshInterval:v=3e4,children:y})=>{const C=u||"default",[N]=T.useState(()=>new ge.QueryClient({defaultOptions:{queries:{retry:1,staleTime:3e4,gcTime:1e3*60*60}}})),_=Hi(r),I=T.useMemo(()=>Tr(e),[e]);T.useEffect(()=>{if(!p||typeof window>"u")return;const x=`bpb-cache:${C}`;try{const j=window.localStorage.getItem(x);j&&ge.hydrate(N,JSON.parse(j))}catch{window.localStorage.removeItem(x)}let L=null;const Z=N.getQueryCache().subscribe(j=>{j.type!=="added"&&j.type!=="removed"&&j.type!=="updated"||(L&&clearTimeout(L),L=setTimeout(()=>{try{window.localStorage.setItem(x,JSON.stringify(ge.dehydrate(N)))}catch{}},250))});return()=>{L&&clearTimeout(L),Z()}},[p,C,N]);const b=T.useCallback(()=>N.invalidateQueries({queryKey:["bpb",C]}),[N,C]),A=T.useCallback(x=>m==null?void 0:m(x),[m]),S=v>0?v:!1,D=c!==void 0&&ss(c),w=Ho({analytics:l,client:a,queryClient:N,scope:C,billingVersion:c,isOutdatedBilling:D});qn.changeLanguage(n);const z=T.useMemo(()=>({client:a,queryClient:N,scope:C,stripePromise:I,email:t,locale:n,isDark:_,colorScheme:o,toast:i??(()=>{}),analytics:w,featureLabels:d,isOutdatedBilling:D,manageBillingUrl:g,refetchInterval:S,refresh:b,notifyBillingChange:A}),[a,N,C,I,t,n,_,o,i,w,d,D,g,S,b,A]);return s.jsx(Rt.Provider,{value:z,children:s.jsx(vi,{i18n:qn,children:s.jsx("div",{className:"bpb-scope","data-bpb-theme":_?"dark":"light","data-bpb-color-scheme":o,style:{display:"contents"},children:y})})})};function X(){const a=T.useContext(Rt);if(!a)throw new Error("@bpinternal/billing-ui components must be rendered inside <BillingProvider>");return a}function Ji(){var a;return((a=T.useContext(Rt))==null?void 0:a.isDark)??!1}function Qi(){var a;return((a=T.useContext(Rt))==null?void 0:a.colorScheme)??"default"}const we={PLAN_PICKER_VIEWED:"billing_plan_picker_viewed",PLAN_INTERVAL_TOGGLED:"billing_plan_interval_toggled",PLAN_UPGRADE_INITIATED:"billing_plan_upgrade_initiated",PLAN_DOWNGRADED:"billing_plan_downgraded",PLAN_DOWNGRADE_CANCELLED:"billing_plan_downgrade_cancelled",DOWNGRADE_CONFIRM_VIEWED:"billing_downgrade_confirm_viewed",DOWNGRADE_SURVEY_VIEWED:"billing_downgrade_survey_viewed",DOWNGRADE_SURVEY_SUBMITTED:"billing_downgrade_survey_submitted",CHECKOUT_STEP_VIEWED:"billing_checkout_step_viewed",CHECKOUT_INTERVAL_CHANGED:"billing_checkout_interval_changed",PAYMENT_METHOD_SELECTED:"billing_payment_method_selected",PAYMENT_DETAILS_CONFIRMED:"billing_payment_details_confirmed",PLAN_UPGRADED:"billing_plan_upgraded",CHECKOUT_ERROR:"billing_checkout_error",PAYMENT_METHOD_UPDATED:"billing_payment_method_updated",BILLING_ADDRESS_UPDATED:"billing_address_updated",INVOICE_DOWNLOADED:"billing_invoice_downloaded",UPGRADE_CTA_CLICKED:"billing_upgrade_cta_clicked",AUTO_RECHARGE_UPDATED:"billing_auto_recharge_updated"};function os(a){var e,t,n="";if(typeof a=="string"||typeof a=="number")n+=a;else if(typeof a=="object")if(Array.isArray(a)){var r=a.length;for(e=0;e<r;e++)a[e]&&(t=os(a[e]))&&(n&&(n+=" "),n+=t)}else for(t in a)a[t]&&(n&&(n+=" "),n+=t);return n}function Xi(){for(var a,e,t=0,n="",r=arguments.length;t<r;t++)(a=arguments[t])&&(e=os(a))&&(n&&(n+=" "),n+=e);return n}const el=(a,e)=>{const t=new Array(a.length+e.length);for(let n=0;n<a.length;n++)t[n]=a[n];for(let n=0;n<e.length;n++)t[a.length+n]=e[n];return t},al=(a,e)=>({classGroupId:a,validator:e}),is=(a=new Map,e=null,t)=>({nextPart:a,validators:e,classGroupId:t}),Ht="-",ls=[],tl="arbitrary..",nl=a=>{const e=sl(a),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=a;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return rl(i);const l=i.split(Ht),d=l[0]===""&&l.length>1?1:0;return ds(l,d,e)},getConflictingClassGroupIds:(i,l)=>{if(l){const d=n[i],c=t[i];return d?c?el(c,d):d:c||ls}return t[i]||ls}}},ds=(a,e,t)=>{if(a.length-e===0)return t.classGroupId;const r=a[e],o=t.nextPart.get(r);if(o){const c=ds(a,e+1,o);if(c)return c}const i=t.validators;if(i===null)return;const l=e===0?a.join(Ht):a.slice(e).join(Ht),d=i.length;for(let c=0;c<d;c++){const u=i[c];if(u.validator(l))return u.classGroupId}},rl=a=>a.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=a.slice(1,-1),t=e.indexOf(":"),n=e.slice(0,t);return n?tl+n:void 0})(),sl=a=>{const{theme:e,classGroups:t}=a;return ol(t,e)},ol=(a,e)=>{const t=is();for(const n in a){const r=a[n];Zn(r,t,n,e)}return t},Zn=(a,e,t,n)=>{const r=a.length;for(let o=0;o<r;o++){const i=a[o];il(i,e,t,n)}},il=(a,e,t,n)=>{if(typeof a=="string"){ll(a,e,t);return}if(typeof a=="function"){dl(a,e,t,n);return}cl(a,e,t,n)},ll=(a,e,t)=>{const n=a===""?e:cs(e,a);n.classGroupId=t},dl=(a,e,t,n)=>{if(ul(a)){Zn(a(n),e,t,n);return}e.validators===null&&(e.validators=[]),e.validators.push(al(t,a))},cl=(a,e,t,n)=>{const r=Object.entries(a),o=r.length;for(let i=0;i<o;i++){const[l,d]=r[i];Zn(d,cs(e,l),t,n)}},cs=(a,e)=>{let t=a;const n=e.split(Ht),r=n.length;for(let o=0;o<r;o++){const i=n[o];let l=t.nextPart.get(i);l||(l=is(),t.nextPart.set(i,l)),t=l}return t},ul=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,pl=a=>{if(a<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),n=Object.create(null);const r=(o,i)=>{t[o]=i,e++,e>a&&(e=0,n=t,t=Object.create(null))};return{get(o){let i=t[o];if(i!==void 0)return i;if((i=n[o])!==void 0)return r(o,i),i},set(o,i){o in t?t[o]=i:r(o,i)}}},Wn="!",us=":",gl=[],ps=(a,e,t,n,r)=>({modifiers:a,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:n,isExternal:r}),ml=a=>{const{prefix:e,experimentalParseClassName:t}=a;let n=r=>{const o=[];let i=0,l=0,d=0,c;const u=r.length;for(let y=0;y<u;y++){const C=r[y];if(i===0&&l===0){if(C===us){o.push(r.slice(d,y)),d=y+1;continue}if(C==="/"){c=y;continue}}C==="["?i++:C==="]"?i--:C==="("?l++:C===")"&&l--}const p=o.length===0?r:r.slice(d);let g=p,m=!1;p.endsWith(Wn)?(g=p.slice(0,-1),m=!0):p.startsWith(Wn)&&(g=p.slice(1),m=!0);const v=c&&c>d?c-d:void 0;return ps(o,m,g,v)};if(e){const r=e+us,o=n;n=i=>i.startsWith(r)?o(i.slice(r.length)):ps(gl,!1,i,void 0,!0)}if(t){const r=n;n=o=>t({className:o,parseClassName:r})}return n},hl=a=>{const e=new Map;return a.orderSensitiveModifiers.forEach((t,n)=>{e.set(t,1e6+n)}),t=>{const n=[];let r=[];for(let o=0;o<t.length;o++){const i=t[o],l=i[0]==="[",d=e.has(i);l||d?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(i)):r.push(i)}return r.length>0&&(r.sort(),n.push(...r)),n}},bl=a=>({cache:pl(a.cacheSize),parseClassName:ml(a),sortModifiers:hl(a),postfixLookupClassGroupIds:fl(a),...nl(a)}),fl=a=>{const e=Object.create(null),t=a.postfixLookupClassGroups;if(t)for(let n=0;n<t.length;n++)e[t[n]]=!0;return e},yl=/\s+/,vl=(a,e)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:r,sortModifiers:o,postfixLookupClassGroupIds:i}=e,l=[],d=a.trim().split(yl);let c="";for(let u=d.length-1;u>=0;u-=1){const p=d[u],{isExternal:g,modifiers:m,hasImportantModifier:v,baseClassName:y,maybePostfixModifierPosition:C}=t(p);if(g){c=p+(c.length>0?" "+c:c);continue}let N=!!C,_;if(N){const D=y.substring(0,C);_=n(D);const w=_&&i[_]?n(y):void 0;w&&w!==_&&(_=w,N=!1)}else _=n(y);if(!_){if(!N){c=p+(c.length>0?" "+c:c);continue}if(_=n(y),!_){c=p+(c.length>0?" "+c:c);continue}N=!1}const I=m.length===0?"":m.length===1?m[0]:o(m).join(":"),b=v?I+Wn:I,A=b+_;if(l.indexOf(A)>-1)continue;l.push(A);const S=r(_,N);for(let D=0;D<S.length;++D){const w=S[D];l.push(b+w)}c=p+(c.length>0?" "+c:c)}return c},_l=(...a)=>{let e=0,t,n,r="";for(;e<a.length;)(t=a[e++])&&(n=gs(t))&&(r&&(r+=" "),r+=n);return r},gs=a=>{if(typeof a=="string")return a;let e,t="";for(let n=0;n<a.length;n++)a[n]&&(e=gs(a[n]))&&(t&&(t+=" "),t+=e);return t},Sl=(a,...e)=>{let t,n,r,o;const i=d=>{const c=e.reduce((u,p)=>p(u),a());return t=bl(c),n=t.cache.get,r=t.cache.set,o=l,l(d)},l=d=>{const c=n(d);if(c)return c;const u=vl(d,t);return r(d,u),u};return o=i,(...d)=>o(_l(...d))},Cl=[],De=a=>{const e=t=>t[a]||Cl;return e.isThemeGetter=!0,e},ms=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,hs=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Nl=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,kl=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,wl=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Tl=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Il=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Al=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,fa=a=>Nl.test(a),de=a=>!!a&&!Number.isNaN(Number(a)),ea=a=>!!a&&Number.isInteger(Number(a)),Gn=a=>a.endsWith("%")&&de(a.slice(0,-1)),da=a=>kl.test(a),bs=()=>!0,Pl=a=>wl.test(a)&&!Tl.test(a),Kn=()=>!1,Dl=a=>Il.test(a),xl=a=>Al.test(a),El=a=>!G(a)&&!$(a),Ll=a=>a.startsWith("@container")&&(a[10]==="/"&&a[11]!==void 0||a[11]==="s"&&a[16]!==void 0&&a.startsWith("-size/",10)||a[11]==="n"&&a[18]!==void 0&&a.startsWith("-normal/",10)),Fl=a=>ya(a,Cs,Kn),G=a=>ms.test(a),Aa=a=>ya(a,Ns,Pl),fs=a=>ya(a,ql,de),Ml=a=>ya(a,ws,bs),Ol=a=>ya(a,ks,Kn),ys=a=>ya(a,_s,Kn),Ul=a=>ya(a,Ss,xl),Yt=a=>ya(a,Ts,Dl),$=a=>hs.test(a),it=a=>Pa(a,Ns),Bl=a=>Pa(a,ks),vs=a=>Pa(a,_s),zl=a=>Pa(a,Cs),Vl=a=>Pa(a,Ss),Jt=a=>Pa(a,Ts,!0),jl=a=>Pa(a,ws,!0),ya=(a,e,t)=>{const n=ms.exec(a);return n?n[1]?e(n[1]):t(n[2]):!1},Pa=(a,e,t=!1)=>{const n=hs.exec(a);return n?n[1]?e(n[1]):t:!1},_s=a=>a==="position"||a==="percentage",Ss=a=>a==="image"||a==="url",Cs=a=>a==="length"||a==="size"||a==="bg-size",Ns=a=>a==="length",ql=a=>a==="number",ks=a=>a==="family-name",ws=a=>a==="number"||a==="weight",Ts=a=>a==="shadow",Zl=Sl(()=>{const a=De("color"),e=De("font"),t=De("text"),n=De("font-weight"),r=De("tracking"),o=De("leading"),i=De("breakpoint"),l=De("container"),d=De("spacing"),c=De("radius"),u=De("shadow"),p=De("inset-shadow"),g=De("text-shadow"),m=De("drop-shadow"),v=De("blur"),y=De("perspective"),C=De("aspect"),N=De("ease"),_=De("animate"),I=()=>["auto","avoid","all","avoid-page","page","left","right","column"],b=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],A=()=>[...b(),$,G],S=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],w=()=>[$,G,d],z=()=>[fa,"full","auto",...w()],x=()=>[ea,"none","subgrid",$,G],L=()=>["auto",{span:["full",ea,$,G]},ea,$,G],Z=()=>[ea,"auto",$,G],j=()=>["auto","min","max","fr",$,G],ee=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],R=()=>["start","end","center","stretch","center-safe","end-safe"],O=()=>["auto",...w()],q=()=>[fa,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...w()],W=()=>[fa,"screen","full","dvw","lvw","svw","min","max","fit",...w()],J=()=>[fa,"screen","full","lh","dvh","lvh","svh","min","max","fit",...w()],E=()=>[a,$,G],ce=()=>[...b(),vs,ys,{position:[$,G]}],B=()=>["no-repeat",{repeat:["","x","y","space","round"]}],F=()=>["auto","cover","contain",zl,Fl,{size:[$,G]}],H=()=>[Gn,it,Aa],V=()=>["","none","full",c,$,G],Q=()=>["",de,it,Aa],Se=()=>["solid","dashed","dotted","double"],Ce=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],se=()=>[de,Gn,vs,ys],Ae=()=>["","none",v,$,G],fe=()=>["none",de,$,G],P=()=>["none",de,$,G],oe=()=>[de,$,G],le=()=>[fa,"full",...w()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[da],breakpoint:[da],color:[bs],container:[da],"drop-shadow":[da],ease:["in","out","in-out"],font:[El],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[da],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[da],shadow:[da],spacing:["px",de],text:[da],"text-shadow":[da],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",fa,G,$,C]}],container:["container"],"container-type":[{"@container":["","normal","size",$,G]}],"container-named":[Ll],columns:[{columns:[de,G,$,l]}],"break-after":[{"break-after":I()}],"break-before":[{"break-before":I()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:A()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:z()}],"inset-x":[{"inset-x":z()}],"inset-y":[{"inset-y":z()}],start:[{"inset-s":z(),start:z()}],end:[{"inset-e":z(),end:z()}],"inset-bs":[{"inset-bs":z()}],"inset-be":[{"inset-be":z()}],top:[{top:z()}],right:[{right:z()}],bottom:[{bottom:z()}],left:[{left:z()}],visibility:["visible","invisible","collapse"],z:[{z:[ea,"auto",$,G]}],basis:[{basis:[fa,"full","auto",l,...w()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[de,fa,"auto","initial","none",G]}],grow:[{grow:["",de,$,G]}],shrink:[{shrink:["",de,$,G]}],order:[{order:[ea,"first","last","none",$,G]}],"grid-cols":[{"grid-cols":x()}],"col-start-end":[{col:L()}],"col-start":[{"col-start":Z()}],"col-end":[{"col-end":Z()}],"grid-rows":[{"grid-rows":x()}],"row-start-end":[{row:L()}],"row-start":[{"row-start":Z()}],"row-end":[{"row-end":Z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":j()}],"auto-rows":[{"auto-rows":j()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...ee(),"normal"]}],"justify-items":[{"justify-items":[...R(),"normal"]}],"justify-self":[{"justify-self":["auto",...R()]}],"align-content":[{content:["normal",...ee()]}],"align-items":[{items:[...R(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...R(),{baseline:["","last"]}]}],"place-content":[{"place-content":ee()}],"place-items":[{"place-items":[...R(),"baseline"]}],"place-self":[{"place-self":["auto",...R()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:O()}],mx:[{mx:O()}],my:[{my:O()}],ms:[{ms:O()}],me:[{me:O()}],mbs:[{mbs:O()}],mbe:[{mbe:O()}],mt:[{mt:O()}],mr:[{mr:O()}],mb:[{mb:O()}],ml:[{ml:O()}],"space-x":[{"space-x":w()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":w()}],"space-y-reverse":["space-y-reverse"],size:[{size:q()}],"inline-size":[{inline:["auto",...W()]}],"min-inline-size":[{"min-inline":["auto",...W()]}],"max-inline-size":[{"max-inline":["none",...W()]}],"block-size":[{block:["auto",...J()]}],"min-block-size":[{"min-block":["auto",...J()]}],"max-block-size":[{"max-block":["none",...J()]}],w:[{w:[l,"screen",...q()]}],"min-w":[{"min-w":[l,"screen","none",...q()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[i]},...q()]}],h:[{h:["screen","lh",...q()]}],"min-h":[{"min-h":["screen","lh","none",...q()]}],"max-h":[{"max-h":["screen","lh",...q()]}],"font-size":[{text:["base",t,it,Aa]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,jl,Ml]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Gn,G]}],"font-family":[{font:[Bl,Ol,e]}],"font-features":[{"font-features":[G]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,$,G]}],"line-clamp":[{"line-clamp":[de,"none",$,fs]}],leading:[{leading:[o,...w()]}],"list-image":[{"list-image":["none",$,G]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",$,G]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:E()}],"text-color":[{text:E()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Se(),"wavy"]}],"text-decoration-thickness":[{decoration:[de,"from-font","auto",$,Aa]}],"text-decoration-color":[{decoration:E()}],"underline-offset":[{"underline-offset":[de,"auto",$,G]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:w()}],"tab-size":[{tab:[ea,$,G]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",$,G]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",$,G]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ce()}],"bg-repeat":[{bg:B()}],"bg-size":[{bg:F()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ea,$,G],radial:["",$,G],conic:[ea,$,G]},Vl,Ul]}],"bg-color":[{bg:E()}],"gradient-from-pos":[{from:H()}],"gradient-via-pos":[{via:H()}],"gradient-to-pos":[{to:H()}],"gradient-from":[{from:E()}],"gradient-via":[{via:E()}],"gradient-to":[{to:E()}],rounded:[{rounded:V()}],"rounded-s":[{"rounded-s":V()}],"rounded-e":[{"rounded-e":V()}],"rounded-t":[{"rounded-t":V()}],"rounded-r":[{"rounded-r":V()}],"rounded-b":[{"rounded-b":V()}],"rounded-l":[{"rounded-l":V()}],"rounded-ss":[{"rounded-ss":V()}],"rounded-se":[{"rounded-se":V()}],"rounded-ee":[{"rounded-ee":V()}],"rounded-es":[{"rounded-es":V()}],"rounded-tl":[{"rounded-tl":V()}],"rounded-tr":[{"rounded-tr":V()}],"rounded-br":[{"rounded-br":V()}],"rounded-bl":[{"rounded-bl":V()}],"border-w":[{border:Q()}],"border-w-x":[{"border-x":Q()}],"border-w-y":[{"border-y":Q()}],"border-w-s":[{"border-s":Q()}],"border-w-e":[{"border-e":Q()}],"border-w-bs":[{"border-bs":Q()}],"border-w-be":[{"border-be":Q()}],"border-w-t":[{"border-t":Q()}],"border-w-r":[{"border-r":Q()}],"border-w-b":[{"border-b":Q()}],"border-w-l":[{"border-l":Q()}],"divide-x":[{"divide-x":Q()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Q()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Se(),"hidden","none"]}],"divide-style":[{divide:[...Se(),"hidden","none"]}],"border-color":[{border:E()}],"border-color-x":[{"border-x":E()}],"border-color-y":[{"border-y":E()}],"border-color-s":[{"border-s":E()}],"border-color-e":[{"border-e":E()}],"border-color-bs":[{"border-bs":E()}],"border-color-be":[{"border-be":E()}],"border-color-t":[{"border-t":E()}],"border-color-r":[{"border-r":E()}],"border-color-b":[{"border-b":E()}],"border-color-l":[{"border-l":E()}],"divide-color":[{divide:E()}],"outline-style":[{outline:[...Se(),"none","hidden"]}],"outline-offset":[{"outline-offset":[de,$,G]}],"outline-w":[{outline:["",de,it,Aa]}],"outline-color":[{outline:E()}],shadow:[{shadow:["","none",u,Jt,Yt]}],"shadow-color":[{shadow:E()}],"inset-shadow":[{"inset-shadow":["none",p,Jt,Yt]}],"inset-shadow-color":[{"inset-shadow":E()}],"ring-w":[{ring:Q()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:E()}],"ring-offset-w":[{"ring-offset":[de,Aa]}],"ring-offset-color":[{"ring-offset":E()}],"inset-ring-w":[{"inset-ring":Q()}],"inset-ring-color":[{"inset-ring":E()}],"text-shadow":[{"text-shadow":["none",g,Jt,Yt]}],"text-shadow-color":[{"text-shadow":E()}],opacity:[{opacity:[de,$,G]}],"mix-blend":[{"mix-blend":[...Ce(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ce()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[de]}],"mask-image-linear-from-pos":[{"mask-linear-from":se()}],"mask-image-linear-to-pos":[{"mask-linear-to":se()}],"mask-image-linear-from-color":[{"mask-linear-from":E()}],"mask-image-linear-to-color":[{"mask-linear-to":E()}],"mask-image-t-from-pos":[{"mask-t-from":se()}],"mask-image-t-to-pos":[{"mask-t-to":se()}],"mask-image-t-from-color":[{"mask-t-from":E()}],"mask-image-t-to-color":[{"mask-t-to":E()}],"mask-image-r-from-pos":[{"mask-r-from":se()}],"mask-image-r-to-pos":[{"mask-r-to":se()}],"mask-image-r-from-color":[{"mask-r-from":E()}],"mask-image-r-to-color":[{"mask-r-to":E()}],"mask-image-b-from-pos":[{"mask-b-from":se()}],"mask-image-b-to-pos":[{"mask-b-to":se()}],"mask-image-b-from-color":[{"mask-b-from":E()}],"mask-image-b-to-color":[{"mask-b-to":E()}],"mask-image-l-from-pos":[{"mask-l-from":se()}],"mask-image-l-to-pos":[{"mask-l-to":se()}],"mask-image-l-from-color":[{"mask-l-from":E()}],"mask-image-l-to-color":[{"mask-l-to":E()}],"mask-image-x-from-pos":[{"mask-x-from":se()}],"mask-image-x-to-pos":[{"mask-x-to":se()}],"mask-image-x-from-color":[{"mask-x-from":E()}],"mask-image-x-to-color":[{"mask-x-to":E()}],"mask-image-y-from-pos":[{"mask-y-from":se()}],"mask-image-y-to-pos":[{"mask-y-to":se()}],"mask-image-y-from-color":[{"mask-y-from":E()}],"mask-image-y-to-color":[{"mask-y-to":E()}],"mask-image-radial":[{"mask-radial":[$,G]}],"mask-image-radial-from-pos":[{"mask-radial-from":se()}],"mask-image-radial-to-pos":[{"mask-radial-to":se()}],"mask-image-radial-from-color":[{"mask-radial-from":E()}],"mask-image-radial-to-color":[{"mask-radial-to":E()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[de]}],"mask-image-conic-from-pos":[{"mask-conic-from":se()}],"mask-image-conic-to-pos":[{"mask-conic-to":se()}],"mask-image-conic-from-color":[{"mask-conic-from":E()}],"mask-image-conic-to-color":[{"mask-conic-to":E()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ce()}],"mask-repeat":[{mask:B()}],"mask-size":[{mask:F()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",$,G]}],filter:[{filter:["","none",$,G]}],blur:[{blur:Ae()}],brightness:[{brightness:[de,$,G]}],contrast:[{contrast:[de,$,G]}],"drop-shadow":[{"drop-shadow":["","none",m,Jt,Yt]}],"drop-shadow-color":[{"drop-shadow":E()}],grayscale:[{grayscale:["",de,$,G]}],"hue-rotate":[{"hue-rotate":[de,$,G]}],invert:[{invert:["",de,$,G]}],saturate:[{saturate:[de,$,G]}],sepia:[{sepia:["",de,$,G]}],"backdrop-filter":[{"backdrop-filter":["","none",$,G]}],"backdrop-blur":[{"backdrop-blur":Ae()}],"backdrop-brightness":[{"backdrop-brightness":[de,$,G]}],"backdrop-contrast":[{"backdrop-contrast":[de,$,G]}],"backdrop-grayscale":[{"backdrop-grayscale":["",de,$,G]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[de,$,G]}],"backdrop-invert":[{"backdrop-invert":["",de,$,G]}],"backdrop-opacity":[{"backdrop-opacity":[de,$,G]}],"backdrop-saturate":[{"backdrop-saturate":[de,$,G]}],"backdrop-sepia":[{"backdrop-sepia":["",de,$,G]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",$,G]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[de,"initial",$,G]}],ease:[{ease:["linear","initial",N,$,G]}],delay:[{delay:[de,$,G]}],animate:[{animate:["none",_,$,G]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[y,$,G]}],"perspective-origin":[{"perspective-origin":A()}],rotate:[{rotate:fe()}],"rotate-x":[{"rotate-x":fe()}],"rotate-y":[{"rotate-y":fe()}],"rotate-z":[{"rotate-z":fe()}],scale:[{scale:P()}],"scale-x":[{"scale-x":P()}],"scale-y":[{"scale-y":P()}],"scale-z":[{"scale-z":P()}],"scale-3d":["scale-3d"],skew:[{skew:oe()}],"skew-x":[{"skew-x":oe()}],"skew-y":[{"skew-y":oe()}],transform:[{transform:[$,G,"","none","gpu","cpu"]}],"transform-origin":[{origin:A()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:le()}],"translate-x":[{"translate-x":le()}],"translate-y":[{"translate-y":le()}],"translate-z":[{"translate-z":le()}],"translate-none":["translate-none"],zoom:[{zoom:[ea,$,G]}],accent:[{accent:E()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:E()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",$,G]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":E()}],"scrollbar-track-color":[{"scrollbar-track":E()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",$,G]}],fill:[{fill:["none",...E()]}],"stroke-w":[{stroke:[de,it,Aa,fs]}],stroke:[{stroke:["none",...E()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function K(...a){return Zl(Xi(a))}function ne(a,e="usd",t=2,n="en-US"){return new Intl.NumberFormat(n,{style:"currency",currency:e.toUpperCase(),minimumFractionDigits:t,maximumFractionDigits:t}).format(a)}function je(a,e="en-US"){return new Date(a).toLocaleDateString(e,{month:"short",day:"numeric",year:"numeric"})}function Is(a,e="en-US"){return new Date(a).toLocaleString(e,{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"})}function As(a,e){const t=new Date(a);return t.setDate(t.getDate()+e),t.toISOString()}function he(a,e="en-US"){return new Intl.NumberFormat(e).format(a)}function Da(a){if(a<=0)return"0 MB";const e=a/1e9;if(e>=1)return`${Number.isInteger(e)?e:e.toFixed(1)} GB`;const t=a/1e6;return`${Number.isInteger(t)?t:t.toFixed(0)} MB`}function be(a){return a.replace("Plan - ","")}function lt(a){return{usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",jpy:"¥"}[a.toLowerCase()]??`${a.toUpperCase()} `}const qe=1e9,Ps={incoming_messages_events:a=>`${he(a)} incoming messages & events`,conversation_sessions:a=>`${he(a)} conversation sessions`,table_rows:a=>`${he(a)} table rows`,vector_db_storage:a=>`${Da(a)} vector database storage`,file_storage:a=>`${Da(a)} file storage`,collaborator_count:a=>a===1?"1 collaborator":`${he(a)} collaborators`,bot_count:a=>a===1?"1 bot":`${he(a)} bots`,indexed_file_count:a=>`${he(a)} indexed files for RAG`,ai_spend:a=>`${ne(a/qe,"usd",1)} AI credit included`,always_alive:a=>a===1?"1 always-alive bot":`${he(a)} always-alive bots`};function Wl(a,e,t){const n=(t==null?void 0:t[a])??Ps[a];return n?n(e):`${he(e)} ${a.replaceAll("_"," ")}`}const $e={conversation_sessions_addon:"addonNameConversationSessions",storage_addon:"addonNameStorage"},Ds={conversation_sessions_addon:"addonDescriptionConversationSessions",storage_addon:"addonDescriptionStorage"};function dt(a,e,t){return a.prices[e.id]??a.prices[ye(e)]??a.prices[t]??null}function xa(a){return a.replace("Add-on - ","")}function $n(a){return(a==null?void 0:a.find(e=>{var t;return(((t=e.increments)==null?void 0:t.conversation_sessions)??0)>0}))??null}const xs=[{key:"conversation_sessions",label:"Conversations / month",unit:"count"},{key:"table_rows",label:"Table rows",unit:"count"},{key:"vector_db_storage",label:"Vector DB storage",unit:"bytes"},{key:"file_storage",label:"File storage",unit:"bytes"}];function Es(a,e,t,n={}){if(!e)return[];const r=(i,l)=>(a.features[i]??0)+e.reduce((d,c)=>{var u;return d+(((u=c.increments)==null?void 0:u[i])??0)*(l[c.id]??0)},0),o=[];for(const i of xs){const l=r(i.key,n),d=r(i.key,t);e.some(c=>{var u;return(((u=c.increments)==null?void 0:u[i.key])??0)>0})&&o.push({...i,now:l,next:d})}return o}function Ls(a,e,t){var r;if(!a)return[];const n=[];for(const o of xs){const i=a.features[o.key]??0;let l=0;for(const d of e??[])l+=(((r=d.increments)==null?void 0:r[o.key])??0)*(t[d.id]??0);(i>0||l>0)&&n.push({...o,base:i,added:l,total:i+l})}return n}function Qt(a,e,t){var i;const n=$n(a);if(!n)return null;const r=((i=n.increments)==null?void 0:i.conversation_sessions)??0,o=dt(n,e,t);return r<=0||!o||o.amount<=0?null:{packSize:r,amount:o.amount,currency:o.currency}}const ct={"AI usage included":{label:"planFeatureAiUsageIncluded",desc:"planFeatureDescAiUsageIncluded"},"3 seats":{label:"planFeature3Seats",desc:"planFeatureDesc3Seats"},"3 AI agents":{label:"planFeature3AiAgents",desc:"planFeatureDesc3AiAgents"},"Botpress Desk":{label:"planFeatureBotpressDesk",desc:"planFeatureDescBotpressDesk"},"Botpress Studio + ADK":{label:"planFeatureBotpressStudioAdk",desc:"planFeatureDescBotpressStudioAdk"},"Botpress Viber":{label:"planFeatureBotpressViber",desc:"planFeatureDescBotpressViber"},"Help center":{label:"planFeatureHelpCenter",desc:"planFeatureDescHelpCenter"},"1K table rows":{label:"planFeature1kTableRows",desc:"planFeatureDesc1kTableRows"},"100K table rows":{label:"planFeature100kTableRows",desc:"planFeatureDesc100kTableRows"},"500K table rows":{label:"planFeature500kTableRows",desc:"planFeatureDesc500kTableRows"},"100MB file storage":{label:"planFeature100mbFileStorage",desc:"planFeatureDesc100mbFileStorage"},"10GB file storage":{label:"planFeature10gbFileStorage",desc:"planFeatureDesc10gbFileStorage"},"50GB file storage":{label:"planFeature50gbFileStorage",desc:"planFeatureDesc50gbFileStorage"},"100MB vector DB storage":{label:"planFeature100mbVectorDb",desc:"planFeatureDesc100mbVectorDb"},"1GB vector DB storage":{label:"planFeature1gbVectorDb",desc:"planFeatureDesc1gbVectorDb"},"5GB vector DB storage":{label:"planFeature5gbVectorDb",desc:"planFeatureDesc5gbVectorDb"},"Unlimited AI agents":{label:"planFeatureUnlimitedAiAgents",desc:"planFeatureDescUnlimitedAiAgents"},"WhatsApp channel":{label:"planFeatureWhatsappChannel",desc:"planFeatureDescWhatsappChannel"},"Help Center custom domain":{label:"planFeatureHelpCenterCustomDomain",desc:"planFeatureDescHelpCenterCustomDomain"},"Whitelabel webchat":{label:"planFeatureWhitelabelWebchat",desc:"planFeatureDescWhitelabelWebchat"},"Technical support via live chat":{label:"planFeatureTechnicalSupportLiveChat",desc:"planFeatureDescTechnicalSupportLiveChat"},"Unlimited seats":{label:"planFeatureUnlimitedSeats",desc:"planFeatureDescUnlimitedSeats"},"Teams, routing & RBAC":{label:"planFeatureTeamsRoutingRbac",desc:"planFeatureDescTeamsRoutingRbac"},"Team-level analytics":{label:"planFeatureTeamLevelAnalytics",desc:"planFeatureDescTeamLevelAnalytics"},"Voice channel":{label:"planFeatureVoiceChannel",desc:"planFeatureDescVoiceChannel"},"Dedicated support":{label:"planFeatureDedicatedSupport",desc:"planFeatureDescDedicatedSupport"},"SLA & security review":{label:"planFeatureSlaSecurity",desc:"planFeatureDescSlaSecurity"},"Custom storage":{label:"planFeatureCustomStorage",desc:"planFeatureDescCustomStorage"}},Fs={community:"planDescriptionCommunity",plus:"planDescriptionPlus",team:"planDescriptionTeam",enterprise:"planDescriptionEnterprise",managed:"planDescriptionManaged"},ut={community:["3 seats","AI usage included","3 AI agents","Botpress Desk","Botpress Viber","Botpress Studio + ADK","Help center","1K table rows","100MB file storage","100MB vector DB storage"],plus:["AI usage included","Unlimited AI agents","Help Center custom domain","Whitelabel webchat","100K table rows","10GB file storage","1GB vector DB storage","Technical support via live chat"],team:["AI usage included","Unlimited seats","Teams, routing & RBAC","Team-level analytics","500K table rows","50GB file storage","5GB vector DB storage"],enterprise:["Voice channel","Dedicated support","SLA & security review","Custom storage"],managed:[]},pt=({variant:a="accent",children:e,className:t})=>s.jsx("span",{className:K("bpb-badge",`bpb-badge--${a}`,t),children:e}),ve=({variant:a="primary",size:e="md",block:t=!1,loading:n=!1,className:r,disabled:o,children:i,type:l="button",...d})=>s.jsxs("button",{type:l,className:K("bpb-btn",`bpb-btn--${a}`,`bpb-btn--${e}`,t&&"bpb-btn--block",r),disabled:o||n,"data-loading":n||void 0,...d,children:[n&&s.jsx("span",{className:"bpb-btn__spinner","aria-hidden":!0}),s.jsx("span",{className:"bpb-btn__label",children:i})]}),_e=(a,e)=>({width:a??16,height:a??16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,...e}),Ms=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M3 8.5l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Xt=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M8 1.5l1.4 3.6a1 1 0 00.6.6L13.5 7l-3.5 1.4a1 1 0 00-.6.6L8 12.5 6.6 9a1 1 0 00-.6-.6L2.5 7 6 5.7a1 1 0 00.6-.6L8 1.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M12.8 11l.5 1.2 1.2.5-1.2.5-.5 1.3-.5-1.3-1.2-.5 1.2-.5.5-1.2z",fill:"currentColor"})]}),Os=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M2.5 8a5.5 5.5 0 115.5 5.5c-.9 0-1.8-.2-2.5-.6L2.5 13.5l.6-3A5.5 5.5 0 012.5 8z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),Us=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M14.67 8h-4l-1.33 2h-2.67l-1.33-2H1.33",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),s.jsx("path",{d:"M3.63 3.41L1.33 8v4a1.33 1.33 0 001.33 1.33h10.67a1.33 1.33 0 001.33-1.33v-4l-2.3-4.59a1.33 1.33 0 00-1.19-.74H4.83a1.33 1.33 0 00-1.19.74z",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Rn=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M8 1.8l5 1.8v4c0 3.2-2.1 5.4-5 6.6-2.9-1.2-5-3.4-5-6.6v-4l5-1.8z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M5.8 8l1.6 1.6 2.8-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Bs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M6 2.5h3v1.6a1.4 1.4 0 102.8 0V2.5h1.7v3h-1.6a1.4 1.4 0 100 2.8h1.6v3h-3v1.6a1.4 1.4 0 11-2.8 0v-1.6h-3v-3h1.6a1.4 1.4 0 100-2.8H2.5v-3H6z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),en=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M8 2l6 3-6 3-6-3 6-3z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M2 8l6 3 6-3M2 11l6 3 6-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),zs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8 8c-1.2-1.6-2-2.4-3.3-2.4a2.4 2.4 0 100 4.8C6 10.4 6.8 9.6 8 8zm0 0c1.2 1.6 2 2.4 3.3 2.4a2.4 2.4 0 100-4.8C10 5.6 9.2 6.4 8 8z",stroke:"currentColor",strokeWidth:"1.3"})}),an=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8.5 1.5L3 9h4l-.5 5.5L12 7H8l.5-5.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),Gl=[{rotate:0,y:-5.9,height:3.7},{rotate:90,y:-5.9,height:3.7},{rotate:180,y:-5.9,height:3.7},{rotate:270,y:-5.9,height:3.7},{rotate:45,y:-7,height:4.3},{rotate:135,y:-7,height:4.3},{rotate:225,y:-7,height:4.3},{rotate:315,y:-7,height:4.3}],Vs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("g",{transform:"translate(8,8)",fill:"currentColor",children:Gl.map(t=>s.jsx("g",{transform:`rotate(${t.rotate})`,children:s.jsx("rect",{x:-.75,y:t.y,width:1.5,height:t.height,rx:.75})},t.rotate))})}),js=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("circle",{cx:"6",cy:"5.5",r:"2.2",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M2 13c0-2.2 1.8-3.6 4-3.6s4 1.4 4 3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),s.jsx("path",{d:"M10.5 3.6a2.2 2.2 0 010 4.1M11 9.6c1.7.3 3 1.6 3 3.4",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),qs=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M2.5 2.5v11h11",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),s.jsx("path",{d:"M5 10l2.2-2.4 2 1.6L12.5 5.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Zs=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M2 8h12M8 2c1.8 1.6 2.8 3.8 2.8 6S9.8 12.4 8 14C6.2 12.4 5.2 10.2 5.2 8S6.2 3.6 8 2z",stroke:"currentColor",strokeWidth:"1.3"})]}),Ws=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M2.5 11.5L9 5l2 2-6.5 6.5H2.5v-2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M9 5l1.8-1.8a1.4 1.4 0 012 2L11 7",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),Hn=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("rect",{x:"1.8",y:"3.5",width:"12.4",height:"9",rx:"1.6",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M1.8 6.4h12.4",stroke:"currentColor",strokeWidth:"1.3"})]}),Kl=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M2 6l6-3.5L14 6v1H2V6zM3 7v5M6.3 7v5M9.7 7v5M13 7v5M2 12.5h12",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),$l=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("rect",{x:"3.5",y:"7",width:"9",height:"6.5",rx:"1.4",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M5.5 7V5.5a2.5 2.5 0 015 0V7",stroke:"currentColor",strokeWidth:"1.3"})]}),gt=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Ea=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M4 6.5L8 10.5l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Yn=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M10 3.5L5.5 8l4.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),aa=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M6 3.5L10.5 8L6 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Gs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Jn=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),mt=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M8 2.2L14.5 13.2a.7.7 0 01-.6 1H2.1a.7.7 0 01-.6-1L8 2.2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M8 6.3v3.1",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),s.jsx("circle",{cx:"8",cy:"11.6",r:"0.85",fill:"currentColor"})]}),ht=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M9 3.5h3.5V7M12 4L7 9M11 9.5v2a1 1 0 01-1 1H4.5a1 1 0 01-1-1V6a1 1 0 011-1h2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),Rl=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M8 10.5V5.5M5.5 8l2.5-2.5L10.5 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Qn=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Xn=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8 2.5v7M5 7l3 3 3-3M3 12.5h10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),Hl=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M4 2h8v12l-1.5-1-1.5 1-1.5-1-1.5 1L4 14V2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M6.2 5.5h3.6M6.2 8h3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),Ks=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M2.5 6.5h11M5.5 2v2.5M10.5 2v2.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),er=({brand:a})=>{const e=a==="visa"?"VISA":a==="mastercard"?"MC":a==="amex"?"AMEX":a==="discover"?"DISC":a.slice(0,4).toUpperCase(),t=a==="visa"?"#1a1f71":a==="mastercard"?"#252525":a==="amex"?"#016fd0":"#5d5d5d";return s.jsx("span",{"aria-hidden":!0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:34,height:22,padding:"0 4px",borderRadius:4,background:t,color:"#fff",fontSize:9,fontWeight:700,letterSpacing:"0.04em"},children:e})};function tn(a){const e=a.toLowerCase();return/desk|inbox|handoff/.test(e)?Us:/seat|member|user|team|rbac|rout/.test(e)?js:/analytic|report|insight|dashboard/.test(e)?qs:/whatsapp|channel|chat|message|conversation|webchat|voice/.test(e)?Os:/storage|table|vector|file|gb|rows|db/.test(e)?en:/domain|help center|whitelabel|website|url|web/.test(e)?Zs:/brand|theme|custom|white-?label/.test(e)?Ws:/unlimited|infinit/.test(e)?zs:/security|sla|compliance|soc|audit/.test(e)||/support|sla|dedicated|priority/.test(e)?Rn:/integration|api|plugin|sdk|adk|studio/.test(e)?Bs:/agent/.test(e)?Vs:/ai|model|gpt|llm/.test(e)?an:Xt}const xe=({open:a,onOpenChange:e,size:t="md",children:n,className:r,showClose:o=!0,...i})=>{const l=T.useRef(null),d=Ji(),c=Qi(),u=T.useCallback(()=>e(!1),[e]);return T.useEffect(()=>{var m;if(!a)return;const p=v=>{v.key==="Escape"&&u()};document.addEventListener("keydown",p);const g=document.body.style.overflow;return document.body.style.overflow="hidden",(m=l.current)==null||m.focus(),()=>{document.removeEventListener("keydown",p),document.body.style.overflow=g}},[a,u]),a?Wo.createPortal(s.jsx("div",{className:"bpb-portal bpb-dialog__overlay","data-bpb-theme":d?"dark":"light","data-bpb-color-scheme":c,onClick:u,children:s.jsxs("div",{ref:l,role:"dialog","aria-modal":"true","aria-label":i["aria-label"],tabIndex:-1,className:K("bpb-dialog",`bpb-dialog--${t}`,r),onClick:p=>p.stopPropagation(),children:[o&&s.jsx("button",{type:"button",className:"bpb-dialog__close","aria-label":"Close",onClick:u,children:s.jsx(gt,{size:18})}),n]})}),document.body):null};var ar={},nn={};Object.defineProperty(nn,"__esModule",{value:!0}),nn.BOT_USE_CASES=void 0,nn.BOT_USE_CASES={CUSTOMER_SUPPORT:"customer-support",BRAND_ASSISTANT:"brand-assistant",PRODUCT_RECOMMENDATION:"product-recommendation",OTHER:"other"};var rn={};Object.defineProperty(rn,"__esModule",{value:!0}),rn.limitConfigs=void 0,rn.limitConfigs={bot_configuration_bytes:{value:20480,unit:"bytes"},bot_installed_integrations_count:{value:30,unit:"count"},bot_installed_plugins_count:{value:30,unit:"count"},bot_integration_configuration_bytes:{value:20480,unit:"bytes"},bot_recurring_event_count:{value:50,unit:"count"},bot_recurring_event_payload_bytes:{value:131072,unit:"bytes"},event_definition_count:{value:20,unit:"count"},integration_channel_count:{value:10,unit:"count"},integration_channel_message_type_count:{value:20,unit:"count"},integration_identifier_count:{value:50,unit:"count"},integration_version_count:{value:200,unit:"count"},issue_event_item_payload_bytes:{value:131072,unit:"bytes"},message_payload_bytes:{value:131072,unit:"bytes"},schema_bytes:{value:102400,unit:"bytes"},state_definition_count:{value:20,unit:"count"},state_item_payload_bytes:{value:131072,unit:"bytes"},tag_definition_count:{value:50,unit:"count"},bot_integration_secret_count:{value:25,unit:"count"},files_api_query_bytes:{value:2048,unit:"bytes"},code_payload_bytes:{value:52428800,unit:"bytes"},entity_custom_properties_count:{value:50,unit:"count"}};var Ga={};Object.defineProperty(Ga,"__esModule",{value:!0}),Ga.objectToPrefixMap=Ga.prefixToObjectMap=void 0,Ga.prefixToObjectMap={accnt:"account",accntpf:"accountPreference",action:"action",activty:"activity",anlytic:"analytics",audit:"audit",bak:"botApiKey",bot:"bot",card:"card",cfg:"configuration",channel:"channel",conv:"conversation",devbot:"devBot",devint:"devIntegration",evt:"event",file:"file",flow:"flow",iak:"integrationApiKey",int:"integration",iface:"interface",ifver:"interfaceVersion",intver:"integrationVersion",iss:"issue",issevt:"issueEvent",kb:"knowledgeBase",limit:"limit",media:"media",msg:"message",node:"node",notif:"notification",pat:"personalAccessToken",plugin:"plugin",plugver:"pluginVersion",quota:"quota",recevt:"recurringEvent",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",archrg:"autoRechargeSetting",archtx:"autoRechargeTransaction",crgrant:"creditGrant",job:"job",pcrgrant:"pendingCreditGrant",promo:"promoCode",smgevt:"smaugEvent",usage:"usage",user:"user",webhook:"webhook",wkspace:"workspace",wksadd:"workspaceAddon",wksqtaadd:"workspaceQuotaAddition",wksplan:"workspacePlan",wrkflow:"workflow",wkspacepf:"workspacePreference",trial:"trial",evlrun:"evalRun",evlent:"evalEntry",evlres:"evalResult"},Ga.objectToPrefixMap={account:"accnt",accountPreference:"accntpf",action:"action",activity:"activty",analytics:"anlytic",audit:"audit",bot:"bot",botApiKey:"bak",card:"card",channel:"channel",configuration:"cfg",conversation:"conv",devBot:"devbot",devIntegration:"devint",event:"evt",file:"file",flow:"flow",integration:"int",integrationApiKey:"iak",integrationVersion:"intver",interface:"iface",interfaceVersion:"ifver",issue:"iss",issueEvent:"issevt",knowledgeBase:"kb",limit:"limit",media:"media",message:"msg",node:"node",notification:"notif",personalAccessToken:"pat",plugin:"plugin",pluginVersion:"plugver",quota:"quota",recurringEvent:"recevt",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",autoRechargeSetting:"archrg",autoRechargeTransaction:"archtx",creditGrant:"crgrant",job:"job",pendingCreditGrant:"pcrgrant",promoCode:"promo",smaugEvent:"smgevt",usage:"usage",user:"user",webhook:"webhook",workflow:"wrkflow",workspace:"wkspace",workspaceAddon:"wksadd",workspaceQuotaAddition:"wksqtaadd",workspacePlan:"wksplan",workspacePreference:"wkspacepf",trial:"trial",evalRun:"evlrun",evalEntry:"evlent",evalResult:"evlres"};var $s={},va={};Object.defineProperty(va,"__esModule",{value:!0}),va.quotaConfigsV3=va.quotaConfigs=va.quotaTypes=void 0,va.quotaTypes=["invocation_timeout","invocation_calls","storage_count","bot_count","knowledgebase_vector_storage","workspace_ratelimit","table_row_count","workspace_member_count","integrations_owned_count","ai_spend","openai_spend","bing_search_spend","always_alive","indexed_file_count","file_max_size_bytes"],va.quotaConfigs={invocation_timeout:{name:"Invocation Timeout",description:"Maximum time in milliseconds a bot can run before timing out.",default:6e4,kind:"workspace",category:"timeout",trackUsagePerBot:!1},storage_count:{name:"Storage Count",description:"Maximum number of storage bytes that can be stored.",default:5e8,kind:"workspace",category:"count",trackUsagePerBot:!0},bot_count:{name:"Bot Count",description:"Maximum number of bots that can be created.",default:5,kind:"workspace",category:"count",trackUsagePerBot:!1},workspace_member_count:{name:"Workspace Member Count",description:"Maximum number of members that can be added to a workspace.",default:3,kind:"workspace",category:"count",trackUsagePerBot:!1},knowledgebase_vector_storage:{name:"Knowledgebase Vector Storage",description:"Maximum size of knowledge base documents",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},table_row_count:{name:"Table Row Count",description:"Maximum number of rows that can be stored in a table.",default:5e3,kind:"workspace",category:"count",trackUsagePerBot:!0},invocation_calls:{name:"Messages",description:"Maximum number of messages sent to a bot in a month.",default:2e3,kind:"workspace",category:"calls",trackUsagePerBot:!0},workspace_ratelimit:{name:"Workspace Ratelimit",description:"Maximum number of API calls per second for a workspace.",default:100,kind:"workspace",category:"ratelimit",trackUsagePerBot:!1},integrations_owned_count:{name:"Owned Integrations Count",description:"Maximum number of integrations that can be created.",default:20,kind:"workspace",category:"count",trackUsagePerBot:!1},ai_spend:{name:"AI Spend",description:"Maximum amount of AI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0},openai_spend:{name:"OpenAI Spend",description:"Maximum amount of OpenAI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},bing_search_spend:{name:"Bing Search Spend",description:"Maximum amount of Bing Search spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},always_alive:{name:"Always Alive",description:"Maximum number of bots that can be in always alive mode.",default:0,kind:"workspace",category:"count",trackUsagePerBot:!1},indexed_file_count:{name:"Indexed File Count",description:"Maximum number of files that can be indexed.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},file_max_size_bytes:{name:"Max File Size",description:"Maximum size of a file in bytes.",default:1e8,kind:"workspace",category:"limit",trackUsagePerBot:!0}},va.quotaConfigsV3={invocation_timeout:{name:"Invocation Timeout",description:"Maximum time in milliseconds a bot can run before timing out.",default:6e4,kind:"workspace",category:"timeout",trackUsagePerBot:!1},storage_count:{name:"Storage Count",description:"Maximum number of storage bytes that can be stored.",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},bot_count:{name:"Bot Count",description:"Maximum number of bots that can be created.",default:1,kind:"workspace",category:"count",trackUsagePerBot:!1},workspace_member_count:{name:"Workspace Member Count",description:"Maximum number of members that can be added to a workspace.",default:1,kind:"workspace",category:"count",trackUsagePerBot:!1},knowledgebase_vector_storage:{name:"Knowledgebase Vector Storage",description:"Maximum size of knowledge base documents",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},table_row_count:{name:"Table Row Count",description:"Maximum number of rows that can be stored in a table.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},invocation_calls:{name:"Messages",description:"Maximum number of messages sent to a bot in a month.",default:500,kind:"workspace",category:"calls",trackUsagePerBot:!0},workspace_ratelimit:{name:"Workspace Ratelimit",description:"Maximum number of API calls per second for a workspace.",default:100,kind:"workspace",category:"ratelimit",trackUsagePerBot:!1},integrations_owned_count:{name:"Owned Integrations Count",description:"Maximum number of integrations that can be created.",default:20,kind:"workspace",category:"count",trackUsagePerBot:!1},ai_spend:{name:"AI Spend",description:"Maximum amount of AI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0},openai_spend:{name:"OpenAI Spend",description:"Maximum amount of OpenAI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},bing_search_spend:{name:"Bing Search Spend",description:"Maximum amount of Bing Search spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},always_alive:{name:"Always Alive",description:"Maximum number of bots that can be in always alive mode.",default:0,kind:"workspace",category:"count",trackUsagePerBot:!1},indexed_file_count:{name:"Indexed File Count",description:"Maximum number of files that can be indexed.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},file_max_size_bytes:{name:"Max File Size",description:"Maximum size of a file in bytes.",default:1e8,kind:"workspace",category:"limit",trackUsagePerBot:!0}};var ta={};Object.defineProperty(ta,"__esModule",{value:!0}),ta.billingFeatureDefs=ta.BILLING_PLAN_IDS=ta.ALLOWED_TRIAL_PLANS=ta.ALLOWED_TRIAL_LENGTHS_IN_DAYS=void 0,ta.ALLOWED_TRIAL_LENGTHS_IN_DAYS=7,ta.ALLOWED_TRIAL_PLANS=["plus","team"],ta.BILLING_PLAN_IDS=["community","plus","team","enterprise","managed"],ta.billingFeatureDefs={human_in_the_loop:{name:"Human in the Loop"},ratelimit:{name:"Rate Limit"},incoming_messages_events:{name:"Incoming Messages/Events"},integration_spend:{name:"Integration Spend"},integration_subscription:{name:"Integration Subscription"},table_rows:{name:"Table Rows"},bot_count:{name:"Bot Count"},always_alive_count:{name:"Always Alive Count"},always_alive_concurrency:{name:"Always Alive Concurrency"},collaborator_count:{name:"Collaborator Count"},file_storage:{name:"File Storage"},vector_db_storage:{name:"Vector DB Storage"},saved_versions:{name:"Saved Versions"},indexed_file_count:{name:"Indexed File Count"}},function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var l=Object.getOwnPropertyDescriptor(r,o);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,l)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=me&&me.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(va,a),t(ta,a)}($s);var sn={};Object.defineProperty(sn,"__esModule",{value:!0}),sn.Tags=void 0,sn.Tags={bot:{},conversation:{upstream:{description:"Used for HITL as a convention. The upstream conversation ID, ie. the conversation ID of the original conversation"},downstream:{description:"Used for HITL as a convention. The downstream conversation ID, ie. the conversation ID of conversation in HITL channel"}},message:{origin:{description:'The origin location of the message in the bot, eg. "workflow://[id]/node/[id]"'},iteration:{description:"The LLMz iteration ID of the message, for tracking and debugging purposes"}},event:{},workflow:{},user:{},file:{system:{type:"boolean",description:"System files are managed by Botpress and should not be modified"},purpose:{description:'The purpose of the file, eg. "swap"'},source:{description:'The source of the file, eg. "knowledge-base"'},kbId:{description:"The ID of the knowledge base"},favicon:{description:'The favicon URL to display for the file, eg. "https://example.com/favicon.ico"'},pageUrl:{description:'The original page URL of the file, eg. "https://example.com/page"'},integrationName:{description:"The name of the integration that created the file"},webchatInjectConfigVersion:{description:"The version of the webchat inject configuration (used by the dashboard)"}},table:{system:{type:"boolean",description:"System tables are managed by Botpress and should not be modified"},"x-studio-title":{description:"Overrides the table title in the Studio"},"x-studio-readonly":{type:"boolean",description:"Prevents the table from being modified by the user in the Studio"},"x-studio-icon":{description:'Overrides the table icon in the Studio. The value can be a lucide icon URL, eg. "lucide://atom"'},"x-studio-color":{description:"Overrides the table color in the Studio."},"x-studio-folder":{description:"Groups the table in a folder in the Studio"},"x-studio-deletable":{type:"boolean",description:"Prevents the table from being deleted by the user in the Studio"}}};var Ze={};Object.defineProperty(Ze,"__esModule",{value:!0}),Ze.KNOWLEDGE_WORKFLOW=Ze.IDENTITY_WEBSITE_WORKFLOW=Ze.IDENTITY_TEXT_WORKFLOW=Ze.ONBOARDING_DEPLOY_WORKFLOW=Ze.WEBSITE_CRAWL_WORKFLOW=void 0,Ze.WEBSITE_CRAWL_WORKFLOW="website-crawl",Ze.ONBOARDING_DEPLOY_WORKFLOW="onboarding-deploy",Ze.IDENTITY_TEXT_WORKFLOW="identity-text-workflow",Ze.IDENTITY_WEBSITE_WORKFLOW="identity-website-workflow",Ze.KNOWLEDGE_WORKFLOW="knowledge-workflow";var on={};Object.defineProperty(on,"__esModule",{value:!0}),on.CANCELLATION_REASONS=void 0,on.CANCELLATION_REASONS=["too_expensive","not_using_enough","missing_feature","switched_tool","technical_issues","support_expectations","temporary_need"];var Rs={},tr={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.CREDIT_GRANT_BILLING_FEATURE_IDS=a.NON_RESETTING_BILLING_FEATURE_IDS=a.NON_ATOMIC_BILLING_FEATURE_IDS=a.ATOMIC_BILLING_FEATURE_IDS=a.BILLING_FEATURE_IDS=a.billingFeatureDefinitions=void 0,a.billingFeatureDefinitions=[{id:"incoming_messages_events",name:"Incoming Messages/Events",description:"Number of incoming messages and events processed per month",resetPeriod:"monthly",consistency:"eventual",dimensions:{botId:"Bot ID",type:"Message or Event type"}},{id:"integration_spend",name:"Integration Spend",description:"Credits spent on integrations (AI, third-party services)",resetPeriod:"monthly",consistency:"eventual",dimensions:{botId:"Bot ID",integrationName:"Integration name",integrationVersionId:"Integration version ID",actionName:"Action name"}},{id:"table_rows",name:"Table Rows",description:"Number of table rows that can be stored",resetPeriod:"never",consistency:"eventual"},{id:"bot_count",name:"Bot Count",description:"Number of bots that can be created",resetPeriod:"never",consistency:"atomic"},{id:"collaborator_count",name:"Collaborator Count",description:"Number of collaborators that can be added to workspace",resetPeriod:"never",consistency:"atomic"},{id:"file_storage",name:"File Storage",description:"Amount of file storage available",resetPeriod:"never",consistency:"eventual"},{id:"vector_db_storage",name:"Vector DB Storage",description:"Amount of vector database storage available",resetPeriod:"never",consistency:"eventual"},{id:"saved_versions",name:"Saved Versions",description:"Number of bot versions that can be saved",resetPeriod:"never",consistency:"atomic"},{id:"indexed_file_count",name:"Indexed File Count",description:"The number of indexed files in the files api",resetPeriod:"never",consistency:"eventual"},{id:"conversation_sessions",name:"Conversations",description:"Number of conversation sessions that can occur",resetPeriod:"monthly",consistency:"eventual"},{id:"ai_spend",name:"AI Spend",description:"Amount that is useable for AI in nano-dollars",resetPeriod:"monthly",consistency:"eventual",grantable:!0}],a.BILLING_FEATURE_IDS=a.billingFeatureDefinitions.map(e=>e.id),a.ATOMIC_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.consistency==="atomic").map(e=>e.id),a.NON_ATOMIC_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.consistency==="eventual").map(e=>e.id),a.NON_RESETTING_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.resetPeriod==="never").map(e=>e.id),a.CREDIT_GRANT_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.grantable).map(e=>e.id)})(tr);var Hs={},bt={},ln={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.AI_SPEND_PER_CONVERSATION=a.MESSAGES_PER_CONVERSATION=a.YEAR_MONTHS=a.NANO_DOLLAR_PER_CENT=a.BIG_UNLIMITED=a.SMALL_UNLIMITED=a.MB=a.GB=a.FREE_PRICE=void 0,a.FREE_PRICE=-1,a.GB=1e9,a.MB=1e6,a.SMALL_UNLIMITED=5e3,a.BIG_UNLIMITED=5e6,a.NANO_DOLLAR_PER_CENT=1e7,a.YEAR_MONTHS=12,a.MESSAGES_PER_CONVERSATION=3e4,a.AI_SPEND_PER_CONVERSATION=10*a.NANO_DOLLAR_PER_CENT})(ln);var ft={},Ys={},nr={},_a={},dn={},na={},yt={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.getParsedType=a.ZodParsedType=a.objectUtil=a.util=void 0;var e;(function(r){r.assertEqual=d=>{};function o(d){}r.assertIs=o;function i(d){throw new Error}r.assertNever=i,r.arrayToEnum=d=>{const c={};for(const u of d)c[u]=u;return c},r.getValidEnumValues=d=>{const c=r.objectKeys(d).filter(p=>typeof d[d[p]]!="number"),u={};for(const p of c)u[p]=d[p];return r.objectValues(u)},r.objectValues=d=>r.objectKeys(d).map(function(c){return d[c]}),r.objectKeys=typeof Object.keys=="function"?d=>Object.keys(d):d=>{const c=[];for(const u in d)Object.prototype.hasOwnProperty.call(d,u)&&c.push(u);return c},r.find=(d,c)=>{for(const u of d)if(c(u))return u},r.isInteger=typeof Number.isInteger=="function"?d=>Number.isInteger(d):d=>typeof d=="number"&&Number.isFinite(d)&&Math.floor(d)===d;function l(d,c=" | "){return d.map(u=>typeof u=="string"?`'${u}'`:u).join(c)}r.joinValues=l,r.jsonStringifyReplacer=(d,c)=>typeof c=="bigint"?c.toString():c})(e||(a.util=e={}));var t;(function(r){r.mergeShapes=(o,i)=>({...o,...i})})(t||(a.objectUtil=t={})),a.ZodParsedType=e.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]);const n=r=>{switch(typeof r){case"undefined":return a.ZodParsedType.undefined;case"string":return a.ZodParsedType.string;case"number":return Number.isNaN(r)?a.ZodParsedType.nan:a.ZodParsedType.number;case"boolean":return a.ZodParsedType.boolean;case"function":return a.ZodParsedType.function;case"bigint":return a.ZodParsedType.bigint;case"symbol":return a.ZodParsedType.symbol;case"object":return Array.isArray(r)?a.ZodParsedType.array:r===null?a.ZodParsedType.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?a.ZodParsedType.promise:typeof Map<"u"&&r instanceof Map?a.ZodParsedType.map:typeof Set<"u"&&r instanceof Set?a.ZodParsedType.set:typeof Date<"u"&&r instanceof Date?a.ZodParsedType.date:a.ZodParsedType.object;default:return a.ZodParsedType.unknown}};a.getParsedType=n})(yt),Object.defineProperty(na,"__esModule",{value:!0}),na.ZodError=na.quotelessJson=na.ZodIssueCode=void 0;const Js=yt;na.ZodIssueCode=Js.util.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);const Yl=a=>JSON.stringify(a,null,2).replace(/"([^"]+)":/g,"$1:");na.quotelessJson=Yl;class vt extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(o){return o.message},n={_errors:[]},r=o=>{for(const i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(r);else if(i.code==="invalid_return_type")r(i.returnTypeError);else if(i.code==="invalid_arguments")r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let l=n,d=0;for(;d<i.path.length;){const c=i.path[d];d===i.path.length-1?(l[c]=l[c]||{_errors:[]},l[c]._errors.push(t(i))):l[c]=l[c]||{_errors:[]},l=l[c],d++}}};return r(this),n}static assert(e){if(!(e instanceof vt))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Js.util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const r of this.issues)if(r.path.length>0){const o=r.path[0];t[o]=t[o]||[],t[o].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}na.ZodError=vt,vt.create=a=>new vt(a),Object.defineProperty(dn,"__esModule",{value:!0});const Ee=na,La=yt,Jl=(a,e)=>{let t;switch(a.code){case Ee.ZodIssueCode.invalid_type:a.received===La.ZodParsedType.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case Ee.ZodIssueCode.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,La.util.jsonStringifyReplacer)}`;break;case Ee.ZodIssueCode.unrecognized_keys:t=`Unrecognized key(s) in object: ${La.util.joinValues(a.keys,", ")}`;break;case Ee.ZodIssueCode.invalid_union:t="Invalid input";break;case Ee.ZodIssueCode.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${La.util.joinValues(a.options)}`;break;case Ee.ZodIssueCode.invalid_enum_value:t=`Invalid enum value. Expected ${La.util.joinValues(a.options)}, received '${a.received}'`;break;case Ee.ZodIssueCode.invalid_arguments:t="Invalid function arguments";break;case Ee.ZodIssueCode.invalid_return_type:t="Invalid function return type";break;case Ee.ZodIssueCode.invalid_date:t="Invalid date";break;case Ee.ZodIssueCode.invalid_string:typeof a.validation=="object"?"includes"in a.validation?(t=`Invalid input: must include "${a.validation.includes}"`,typeof a.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${a.validation.position}`)):"startsWith"in a.validation?t=`Invalid input: must start with "${a.validation.startsWith}"`:"endsWith"in a.validation?t=`Invalid input: must end with "${a.validation.endsWith}"`:La.util.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case Ee.ZodIssueCode.too_small:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at least":"more than"} ${a.minimum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at least":"over"} ${a.minimum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="bigint"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(a.minimum))}`:t="Invalid input";break;case Ee.ZodIssueCode.too_big:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at most":"less than"} ${a.maximum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at most":"under"} ${a.maximum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="bigint"?t=`BigInt must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly":a.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(a.maximum))}`:t="Invalid input";break;case Ee.ZodIssueCode.custom:t="Invalid input";break;case Ee.ZodIssueCode.invalid_intersection_types:t="Intersection results could not be merged";break;case Ee.ZodIssueCode.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case Ee.ZodIssueCode.not_finite:t="Number must be finite";break;default:t=e.defaultError,La.util.assertNever(a)}return{message:t}};dn.default=Jl;var Ql=me&&me.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(_a,"__esModule",{value:!0}),_a.defaultErrorMap=void 0,_a.setErrorMap=Xl,_a.getErrorMap=ed;const Qs=Ql(dn);_a.defaultErrorMap=Qs.default;let Xs=Qs.default;function Xl(a){Xs=a}function ed(){return Xs}var rr={};(function(a){var e=me&&me.__importDefault||function(m){return m&&m.__esModule?m:{default:m}};Object.defineProperty(a,"__esModule",{value:!0}),a.isAsync=a.isValid=a.isDirty=a.isAborted=a.OK=a.DIRTY=a.INVALID=a.ParseStatus=a.EMPTY_PATH=a.makeIssue=void 0,a.addIssueToContext=o;const t=_a,n=e(dn),r=m=>{const{data:v,path:y,errorMaps:C,issueData:N}=m,_=[...y,...N.path||[]],I={...N,path:_};if(N.message!==void 0)return{...N,path:_,message:N.message};let b="";const A=C.filter(S=>!!S).slice().reverse();for(const S of A)b=S(I,{data:v,defaultError:b}).message;return{...N,path:_,message:b}};a.makeIssue=r,a.EMPTY_PATH=[];function o(m,v){const y=(0,t.getErrorMap)(),C=(0,a.makeIssue)({issueData:v,data:m.data,path:m.path,errorMaps:[m.common.contextualErrorMap,m.schemaErrorMap,y,y===n.default?void 0:n.default].filter(N=>!!N)});m.common.issues.push(C)}class i{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(v,y){const C=[];for(const N of y){if(N.status==="aborted")return a.INVALID;N.status==="dirty"&&v.dirty(),C.push(N.value)}return{status:v.value,value:C}}static async mergeObjectAsync(v,y){const C=[];for(const N of y){const _=await N.key,I=await N.value;C.push({key:_,value:I})}return i.mergeObjectSync(v,C)}static mergeObjectSync(v,y){const C={};for(const N of y){const{key:_,value:I}=N;if(_.status==="aborted"||I.status==="aborted")return a.INVALID;_.status==="dirty"&&v.dirty(),I.status==="dirty"&&v.dirty(),_.value!=="__proto__"&&(typeof I.value<"u"||N.alwaysSet)&&(C[_.value]=I.value)}return{status:v.value,value:C}}}a.ParseStatus=i,a.INVALID=Object.freeze({status:"aborted"});const l=m=>({status:"dirty",value:m});a.DIRTY=l;const d=m=>({status:"valid",value:m});a.OK=d;const c=m=>m.status==="aborted";a.isAborted=c;const u=m=>m.status==="dirty";a.isDirty=u;const p=m=>m.status==="valid";a.isValid=p;const g=m=>typeof Promise<"u"&&m instanceof Promise;a.isAsync=g})(rr);var eo={};Object.defineProperty(eo,"__esModule",{value:!0});var h={},cn={};Object.defineProperty(cn,"__esModule",{value:!0}),cn.errorUtil=void 0;var ao;(function(a){a.errToObj=e=>typeof e=="string"?{message:e}:e||{},a.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(ao||(cn.errorUtil=ao={})),Object.defineProperty(h,"__esModule",{value:!0}),h.discriminatedUnion=h.date=h.boolean=h.bigint=h.array=h.any=h.coerce=h.ZodFirstPartyTypeKind=h.late=h.ZodSchema=h.Schema=h.ZodReadonly=h.ZodPipeline=h.ZodBranded=h.BRAND=h.ZodNaN=h.ZodCatch=h.ZodDefault=h.ZodNullable=h.ZodOptional=h.ZodTransformer=h.ZodEffects=h.ZodPromise=h.ZodNativeEnum=h.ZodEnum=h.ZodLiteral=h.ZodLazy=h.ZodFunction=h.ZodSet=h.ZodMap=h.ZodRecord=h.ZodTuple=h.ZodIntersection=h.ZodDiscriminatedUnion=h.ZodUnion=h.ZodObject=h.ZodArray=h.ZodVoid=h.ZodNever=h.ZodUnknown=h.ZodAny=h.ZodNull=h.ZodUndefined=h.ZodSymbol=h.ZodDate=h.ZodBoolean=h.ZodBigInt=h.ZodNumber=h.ZodString=h.ZodType=void 0,h.NEVER=h.void=h.unknown=h.union=h.undefined=h.tuple=h.transformer=h.symbol=h.string=h.strictObject=h.set=h.record=h.promise=h.preprocess=h.pipeline=h.ostring=h.optional=h.onumber=h.oboolean=h.object=h.number=h.nullable=h.null=h.never=h.nativeEnum=h.nan=h.map=h.literal=h.lazy=h.intersection=h.instanceof=h.function=h.enum=h.effect=void 0,h.datetimeRegex=so,h.custom=lo;const M=na,un=_a,Y=cn,f=rr,U=yt;class ra{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const to=(a,e)=>{if((0,f.isValid)(e))return{success:!0,data:e.value};if(!a.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new M.ZodError(a.common.issues);return this._error=t,this._error}}};function re(a){if(!a)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:r}=a;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(i,l)=>{const{message:d}=a;return i.code==="invalid_enum_value"?{message:d??l.defaultError}:typeof l.data>"u"?{message:d??n??l.defaultError}:i.code!=="invalid_type"?{message:l.defaultError}:{message:d??t??l.defaultError}},description:r}}class ie{get description(){return this._def.description}_getType(e){return(0,U.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,U.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new f.ParseStatus,ctx:{common:e.parent.common,data:e.data,parsedType:(0,U.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if((0,f.isAsync)(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){const n={common:{issues:[],async:(t==null?void 0:t.async)??!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,U.getParsedType)(e)},r=this._parseSync({data:e,path:n.path,parent:n});return to(n,r)}"~validate"(e){var n,r;const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,U.getParsedType)(e)};if(!this["~standard"].async)try{const o=this._parseSync({data:e,path:[],parent:t});return(0,f.isValid)(o)?{value:o.value}:{issues:t.common.issues}}catch(o){(r=(n=o==null?void 0:o.message)==null?void 0:n.toLowerCase())!=null&&r.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(o=>(0,f.isValid)(o)?{value:o.value}:{issues:t.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,U.getParsedType)(e)},r=this._parse({data:e,path:n.path,parent:n}),o=await((0,f.isAsync)(r)?r:Promise.resolve(r));return to(n,o)}refine(e,t){const n=r=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(r):t;return this._refinement((r,o)=>{const i=e(r),l=()=>o.addIssue({code:M.ZodIssueCode.custom,...n(r)});return typeof Promise<"u"&&i instanceof Promise?i.then(d=>d?!0:(l(),!1)):i?!0:(l(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t=="function"?t(n,r):t),!1))}_refinement(e){return new Ye({schema:this,typeName:ae.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return oa.create(this,this._def)}nullable(){return ka.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return He.create(this)}promise(){return Ha.create(this,this._def)}or(e){return Nt.create([this,e],this._def)}and(e){return kt.create(this,e,this._def)}transform(e){return new Ye({...re(this._def),schema:this,typeName:ae.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new Pt({...re(this._def),innerType:this,defaultValue:t,typeName:ae.ZodDefault})}brand(){return new ir({typeName:ae.ZodBranded,type:this,...re(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new Dt({...re(this._def),innerType:this,catchValue:t,typeName:ae.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return xt.create(this,e)}readonly(){return Et.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}h.ZodType=ie,h.Schema=ie,h.ZodSchema=ie;const ad=/^c[^\s-]{8,}$/i,td=/^[0-9a-z]+$/,nd=/^[0-9A-HJKMNP-TV-Z]{26}$/i,rd=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,sd=/^[a-z0-9_-]{21}$/i,od=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,id=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,ld=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,dd="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let sr;const cd=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ud=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,pd=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,gd=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,md=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,hd=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,no="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",bd=new RegExp(`^${no}$`);function ro(a){let e="[0-5]\\d";a.precision?e=`${e}\\.\\d{${a.precision}}`:a.precision==null&&(e=`${e}(\\.\\d+)?`);const t=a.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function fd(a){return new RegExp(`^${ro(a)}$`)}function so(a){let e=`${no}T${ro(a)}`;const t=[];return t.push(a.local?"Z?":"Z"),a.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function yd(a,e){return!!((e==="v4"||!e)&&cd.test(a)||(e==="v6"||!e)&&pd.test(a))}function vd(a,e){if(!od.test(a))return!1;try{const[t]=a.split(".");if(!t)return!1;const n=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),r=JSON.parse(atob(n));return!(typeof r!="object"||r===null||"typ"in r&&(r==null?void 0:r.typ)!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function _d(a,e){return!!((e==="v4"||!e)&&ud.test(a)||(e==="v6"||!e)&&gd.test(a))}class Re extends ie{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==U.ZodParsedType.string){const o=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(o,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.string,received:o.parsedType}),f.INVALID}const n=new f.ParseStatus;let r;for(const o of this._def.checks)if(o.kind==="min")e.data.length<o.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="max")e.data.length>o.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="length"){const i=e.data.length>o.value,l=e.data.length<o.value;(i||l)&&(r=this._getOrReturnCtx(e,r),i?(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):l&&(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),n.dirty())}else if(o.kind==="email")ld.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"email",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="emoji")sr||(sr=new RegExp(dd,"u")),sr.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"emoji",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="uuid")rd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"uuid",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="nanoid")sd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"nanoid",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid")ad.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"cuid",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid2")td.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"cuid2",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="ulid")nd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"ulid",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"url",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"regex",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty())):o.kind==="trim"?e.data=e.data.trim():o.kind==="includes"?e.data.includes(o.value,o.position)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),n.dirty()):o.kind==="toLowerCase"?e.data=e.data.toLowerCase():o.kind==="toUpperCase"?e.data=e.data.toUpperCase():o.kind==="startsWith"?e.data.startsWith(o.value)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:{startsWith:o.value},message:o.message}),n.dirty()):o.kind==="endsWith"?e.data.endsWith(o.value)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:{endsWith:o.value},message:o.message}),n.dirty()):o.kind==="datetime"?so(o).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:"datetime",message:o.message}),n.dirty()):o.kind==="date"?bd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?fd(o).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.invalid_string,validation:"time",message:o.message}),n.dirty()):o.kind==="duration"?id.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"duration",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?yd(e.data,o.version)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"ip",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="jwt"?vd(e.data,o.alg)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"jwt",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="cidr"?_d(e.data,o.version)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"cidr",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="base64"?md.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"base64",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?hd.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{validation:"base64url",code:M.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):U.util.assertNever(o);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(r=>e.test(r),{validation:t,code:M.ZodIssueCode.invalid_string,...Y.errorUtil.errToObj(n)})}_addCheck(e){return new Re({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Y.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Y.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Y.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Y.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Y.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Y.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Y.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Y.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Y.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Y.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Y.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Y.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Y.errorUtil.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...Y.errorUtil.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...Y.errorUtil.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Y.errorUtil.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Y.errorUtil.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...Y.errorUtil.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Y.errorUtil.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Y.errorUtil.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Y.errorUtil.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Y.errorUtil.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Y.errorUtil.errToObj(t)})}nonempty(e){return this.min(1,Y.errorUtil.errToObj(e))}trim(){return new Re({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Re({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Re({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}h.ZodString=Re,Re.create=a=>new Re({checks:[],typeName:ae.ZodString,coerce:(a==null?void 0:a.coerce)??!1,...re(a)});function Sd(a,e){const t=(a.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,r=t>n?t:n,o=Number.parseInt(a.toFixed(r).replace(".","")),i=Number.parseInt(e.toFixed(r).replace(".",""));return o%i/10**r}class Sa extends ie{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==U.ZodParsedType.number){const o=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(o,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.number,received:o.parsedType}),f.INVALID}let n;const r=new f.ParseStatus;for(const o of this._def.checks)o.kind==="int"?U.util.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:"integer",received:"float",message:o.message}),r.dirty()):o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),r.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),r.dirty()):o.kind==="multipleOf"?Sd(e.data,o.value)!==0&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.not_multiple_of,multipleOf:o.value,message:o.message}),r.dirty()):o.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.not_finite,message:o.message}),r.dirty()):U.util.assertNever(o);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Y.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Y.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Y.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Y.errorUtil.toString(t))}setLimit(e,t,n,r){return new Sa({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Y.errorUtil.toString(r)}]})}_addCheck(e){return new Sa({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Y.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Y.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Y.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Y.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Y.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Y.errorUtil.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Y.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Y.errorUtil.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Y.errorUtil.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&U.util.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}h.ZodNumber=Sa,Sa.create=a=>new Sa({checks:[],typeName:ae.ZodNumber,coerce:(a==null?void 0:a.coerce)||!1,...re(a)});class Ca extends ie{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==U.ZodParsedType.bigint)return this._getInvalidInput(e);let n;const r=new f.ParseStatus;for(const o of this._def.checks)o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),r.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),r.dirty()):o.kind==="multipleOf"?e.data%o.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.not_multiple_of,multipleOf:o.value,message:o.message}),r.dirty()):U.util.assertNever(o);return{status:r.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.bigint,received:t.parsedType}),f.INVALID}gte(e,t){return this.setLimit("min",e,!0,Y.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Y.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Y.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Y.errorUtil.toString(t))}setLimit(e,t,n,r){return new Ca({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Y.errorUtil.toString(r)}]})}_addCheck(e){return new Ca({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Y.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Y.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Y.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Y.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Y.errorUtil.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}h.ZodBigInt=Ca,Ca.create=a=>new Ca({checks:[],typeName:ae.ZodBigInt,coerce:(a==null?void 0:a.coerce)??!1,...re(a)});class _t extends ie{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==U.ZodParsedType.boolean){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.boolean,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}h.ZodBoolean=_t,_t.create=a=>new _t({typeName:ae.ZodBoolean,coerce:(a==null?void 0:a.coerce)||!1,...re(a)});class Fa extends ie{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==U.ZodParsedType.date){const o=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(o,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.date,received:o.parsedType}),f.INVALID}if(Number.isNaN(e.data.getTime())){const o=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(o,{code:M.ZodIssueCode.invalid_date}),f.INVALID}const n=new f.ParseStatus;let r;for(const o of this._def.checks)o.kind==="min"?e.data.getTime()<o.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),n.dirty()):o.kind==="max"?e.data.getTime()>o.value&&(r=this._getOrReturnCtx(e,r),(0,f.addIssueToContext)(r,{code:M.ZodIssueCode.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),n.dirty()):U.util.assertNever(o);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Fa({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Y.errorUtil.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Y.errorUtil.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}h.ZodDate=Fa,Fa.create=a=>new Fa({checks:[],coerce:(a==null?void 0:a.coerce)||!1,typeName:ae.ZodDate,...re(a)});class pn extends ie{_parse(e){if(this._getType(e)!==U.ZodParsedType.symbol){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.symbol,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}h.ZodSymbol=pn,pn.create=a=>new pn({typeName:ae.ZodSymbol,...re(a)});class St extends ie{_parse(e){if(this._getType(e)!==U.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.undefined,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}h.ZodUndefined=St,St.create=a=>new St({typeName:ae.ZodUndefined,...re(a)});class Ct extends ie{_parse(e){if(this._getType(e)!==U.ZodParsedType.null){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.null,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}h.ZodNull=Ct,Ct.create=a=>new Ct({typeName:ae.ZodNull,...re(a)});class Ka extends ie{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,f.OK)(e.data)}}h.ZodAny=Ka,Ka.create=a=>new Ka({typeName:ae.ZodAny,...re(a)});class Ma extends ie{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,f.OK)(e.data)}}h.ZodUnknown=Ma,Ma.create=a=>new Ma({typeName:ae.ZodUnknown,...re(a)});class ca extends ie{_parse(e){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.never,received:t.parsedType}),f.INVALID}}h.ZodNever=ca,ca.create=a=>new ca({typeName:ae.ZodNever,...re(a)});class gn extends ie{_parse(e){if(this._getType(e)!==U.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.void,received:n.parsedType}),f.INVALID}return(0,f.OK)(e.data)}}h.ZodVoid=gn,gn.create=a=>new gn({typeName:ae.ZodVoid,...re(a)});class He extends ie{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==U.ZodParsedType.array)return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.array,received:t.parsedType}),f.INVALID;if(r.exactLength!==null){const i=t.data.length>r.exactLength.value,l=t.data.length<r.exactLength.value;(i||l)&&((0,f.addIssueToContext)(t,{code:i?M.ZodIssueCode.too_big:M.ZodIssueCode.too_small,minimum:l?r.exactLength.value:void 0,maximum:i?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&((0,f.addIssueToContext)(t,{code:M.ZodIssueCode.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&((0,f.addIssueToContext)(t,{code:M.ZodIssueCode.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((i,l)=>r.type._parseAsync(new ra(t,i,t.path,l)))).then(i=>f.ParseStatus.mergeArray(n,i));const o=[...t.data].map((i,l)=>r.type._parseSync(new ra(t,i,t.path,l)));return f.ParseStatus.mergeArray(n,o)}get element(){return this._def.type}min(e,t){return new He({...this._def,minLength:{value:e,message:Y.errorUtil.toString(t)}})}max(e,t){return new He({...this._def,maxLength:{value:e,message:Y.errorUtil.toString(t)}})}length(e,t){return new He({...this._def,exactLength:{value:e,message:Y.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}h.ZodArray=He,He.create=(a,e)=>new He({type:a,minLength:null,maxLength:null,exactLength:null,typeName:ae.ZodArray,...re(e)});function $a(a){if(a instanceof Te){const e={};for(const t in a.shape){const n=a.shape[t];e[t]=oa.create($a(n))}return new Te({...a._def,shape:()=>e})}else return a instanceof He?new He({...a._def,type:$a(a.element)}):a instanceof oa?oa.create($a(a.unwrap())):a instanceof ka?ka.create($a(a.unwrap())):a instanceof sa?sa.create(a.items.map(e=>$a(e))):a}class Te extends ie{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=U.util.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==U.ZodParsedType.object){const c=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(c,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.object,received:c.parsedType}),f.INVALID}const{status:n,ctx:r}=this._processInputParams(e),{shape:o,keys:i}=this._getCached(),l=[];if(!(this._def.catchall instanceof ca&&this._def.unknownKeys==="strip"))for(const c in r.data)i.includes(c)||l.push(c);const d=[];for(const c of i){const u=o[c],p=r.data[c];d.push({key:{status:"valid",value:c},value:u._parse(new ra(r,p,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof ca){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of l)d.push({key:{status:"valid",value:u},value:{status:"valid",value:r.data[u]}});else if(c==="strict")l.length>0&&((0,f.addIssueToContext)(r,{code:M.ZodIssueCode.unrecognized_keys,keys:l}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of l){const p=r.data[u];d.push({key:{status:"valid",value:u},value:c._parse(new ra(r,p,r.path,u)),alwaysSet:u in r.data})}}return r.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of d){const p=await u.key,g=await u.value;c.push({key:p,value:g,alwaysSet:u.alwaysSet})}return c}).then(c=>f.ParseStatus.mergeObjectSync(n,c)):f.ParseStatus.mergeObjectSync(n,d)}get shape(){return this._def.shape()}strict(e){return Y.errorUtil.errToObj,new Te({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var o,i;const r=((i=(o=this._def).errorMap)==null?void 0:i.call(o,t,n).message)??n.defaultError;return t.code==="unrecognized_keys"?{message:Y.errorUtil.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new Te({...this._def,unknownKeys:"strip"})}passthrough(){return new Te({...this._def,unknownKeys:"passthrough"})}extend(e){return new Te({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Te({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:ae.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Te({...this._def,catchall:e})}pick(e){const t={};for(const n of U.util.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new Te({...this._def,shape:()=>t})}omit(e){const t={};for(const n of U.util.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new Te({...this._def,shape:()=>t})}deepPartial(){return $a(this)}partial(e){const t={};for(const n of U.util.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new Te({...this._def,shape:()=>t})}required(e){const t={};for(const n of U.util.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let o=this.shape[n];for(;o instanceof oa;)o=o._def.innerType;t[n]=o}return new Te({...this._def,shape:()=>t})}keyof(){return oo(U.util.objectKeys(this.shape))}}h.ZodObject=Te,Te.create=(a,e)=>new Te({shape:()=>a,unknownKeys:"strip",catchall:ca.create(),typeName:ae.ZodObject,...re(e)}),Te.strictCreate=(a,e)=>new Te({shape:()=>a,unknownKeys:"strict",catchall:ca.create(),typeName:ae.ZodObject,...re(e)}),Te.lazycreate=(a,e)=>new Te({shape:a,unknownKeys:"strip",catchall:ca.create(),typeName:ae.ZodObject,...re(e)});class Nt extends ie{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function r(o){for(const l of o)if(l.result.status==="valid")return l.result;for(const l of o)if(l.result.status==="dirty")return t.common.issues.push(...l.ctx.common.issues),l.result;const i=o.map(l=>new M.ZodError(l.ctx.common.issues));return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_union,unionErrors:i}),f.INVALID}if(t.common.async)return Promise.all(n.map(async o=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await o._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(r);{let o;const i=[];for(const d of n){const c={...t,common:{...t.common,issues:[]},parent:null},u=d._parseSync({data:t.data,path:t.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!o&&(o={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(o)return t.common.issues.push(...o.ctx.common.issues),o.result;const l=i.map(d=>new M.ZodError(d));return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_union,unionErrors:l}),f.INVALID}}get options(){return this._def.options}}h.ZodUnion=Nt,Nt.create=(a,e)=>new Nt({options:a,typeName:ae.ZodUnion,...re(e)});const ua=a=>a instanceof Tt?ua(a.schema):a instanceof Ye?ua(a.innerType()):a instanceof It?[a.value]:a instanceof Na?a.options:a instanceof At?U.util.objectValues(a.enum):a instanceof Pt?ua(a._def.innerType):a instanceof St?[void 0]:a instanceof Ct?[null]:a instanceof oa?[void 0,...ua(a.unwrap())]:a instanceof ka?[null,...ua(a.unwrap())]:a instanceof ir||a instanceof Et?ua(a.unwrap()):a instanceof Dt?ua(a._def.innerType):[];class mn extends ie{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==U.ZodParsedType.object)return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.object,received:t.parsedType}),f.INVALID;const n=this.discriminator,r=t.data[n],o=this.optionsMap.get(r);return o?t.common.async?o._parseAsync({data:t.data,path:t.path,parent:t}):o._parseSync({data:t.data,path:t.path,parent:t}):((0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),f.INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const r=new Map;for(const o of t){const i=ua(o.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const l of i){if(r.has(l))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(l)}`);r.set(l,o)}}return new mn({typeName:ae.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...re(n)})}}h.ZodDiscriminatedUnion=mn;function or(a,e){const t=(0,U.getParsedType)(a),n=(0,U.getParsedType)(e);if(a===e)return{valid:!0,data:a};if(t===U.ZodParsedType.object&&n===U.ZodParsedType.object){const r=U.util.objectKeys(e),o=U.util.objectKeys(a).filter(l=>r.indexOf(l)!==-1),i={...a,...e};for(const l of o){const d=or(a[l],e[l]);if(!d.valid)return{valid:!1};i[l]=d.data}return{valid:!0,data:i}}else if(t===U.ZodParsedType.array&&n===U.ZodParsedType.array){if(a.length!==e.length)return{valid:!1};const r=[];for(let o=0;o<a.length;o++){const i=a[o],l=e[o],d=or(i,l);if(!d.valid)return{valid:!1};r.push(d.data)}return{valid:!0,data:r}}else return t===U.ZodParsedType.date&&n===U.ZodParsedType.date&&+a==+e?{valid:!0,data:a}:{valid:!1}}class kt extends ie{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(o,i)=>{if((0,f.isAborted)(o)||(0,f.isAborted)(i))return f.INVALID;const l=or(o.value,i.value);return l.valid?(((0,f.isDirty)(o)||(0,f.isDirty)(i))&&t.dirty(),{status:t.value,value:l.data}):((0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_intersection_types}),f.INVALID)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([o,i])=>r(o,i)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}h.ZodIntersection=kt,kt.create=(a,e,t)=>new kt({left:a,right:e,typeName:ae.ZodIntersection,...re(t)});class sa extends ie{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==U.ZodParsedType.array)return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.array,received:n.parsedType}),f.INVALID;if(n.data.length<this._def.items.length)return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),f.INVALID;!this._def.rest&&n.data.length>this._def.items.length&&((0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const o=[...n.data].map((i,l)=>{const d=this._def.items[l]||this._def.rest;return d?d._parse(new ra(n,i,n.path,l)):null}).filter(i=>!!i);return n.common.async?Promise.all(o).then(i=>f.ParseStatus.mergeArray(t,i)):f.ParseStatus.mergeArray(t,o)}get items(){return this._def.items}rest(e){return new sa({...this._def,rest:e})}}h.ZodTuple=sa,sa.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new sa({items:a,typeName:ae.ZodTuple,rest:null,...re(e)})};class wt extends ie{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==U.ZodParsedType.object)return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.object,received:n.parsedType}),f.INVALID;const r=[],o=this._def.keyType,i=this._def.valueType;for(const l in n.data)r.push({key:o._parse(new ra(n,l,n.path,l)),value:i._parse(new ra(n,n.data[l],n.path,l)),alwaysSet:l in n.data});return n.common.async?f.ParseStatus.mergeObjectAsync(t,r):f.ParseStatus.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof ie?new wt({keyType:e,valueType:t,typeName:ae.ZodRecord,...re(n)}):new wt({keyType:Re.create(),valueType:e,typeName:ae.ZodRecord,...re(t)})}}h.ZodRecord=wt;class hn extends ie{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==U.ZodParsedType.map)return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.map,received:n.parsedType}),f.INVALID;const r=this._def.keyType,o=this._def.valueType,i=[...n.data.entries()].map(([l,d],c)=>({key:r._parse(new ra(n,l,n.path,[c,"key"])),value:o._parse(new ra(n,d,n.path,[c,"value"]))}));if(n.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const d of i){const c=await d.key,u=await d.value;if(c.status==="aborted"||u.status==="aborted")return f.INVALID;(c.status==="dirty"||u.status==="dirty")&&t.dirty(),l.set(c.value,u.value)}return{status:t.value,value:l}})}else{const l=new Map;for(const d of i){const c=d.key,u=d.value;if(c.status==="aborted"||u.status==="aborted")return f.INVALID;(c.status==="dirty"||u.status==="dirty")&&t.dirty(),l.set(c.value,u.value)}return{status:t.value,value:l}}}}h.ZodMap=hn,hn.create=(a,e,t)=>new hn({valueType:e,keyType:a,typeName:ae.ZodMap,...re(t)});class Oa extends ie{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==U.ZodParsedType.set)return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.set,received:n.parsedType}),f.INVALID;const r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&((0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&((0,f.addIssueToContext)(n,{code:M.ZodIssueCode.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const o=this._def.valueType;function i(d){const c=new Set;for(const u of d){if(u.status==="aborted")return f.INVALID;u.status==="dirty"&&t.dirty(),c.add(u.value)}return{status:t.value,value:c}}const l=[...n.data.values()].map((d,c)=>o._parse(new ra(n,d,n.path,c)));return n.common.async?Promise.all(l).then(d=>i(d)):i(l)}min(e,t){return new Oa({...this._def,minSize:{value:e,message:Y.errorUtil.toString(t)}})}max(e,t){return new Oa({...this._def,maxSize:{value:e,message:Y.errorUtil.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}h.ZodSet=Oa,Oa.create=(a,e)=>new Oa({valueType:a,minSize:null,maxSize:null,typeName:ae.ZodSet,...re(e)});class Ra extends ie{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==U.ZodParsedType.function)return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.function,received:t.parsedType}),f.INVALID;function n(l,d){return(0,f.makeIssue)({data:l,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,un.getErrorMap)(),un.defaultErrorMap].filter(c=>!!c),issueData:{code:M.ZodIssueCode.invalid_arguments,argumentsError:d}})}function r(l,d){return(0,f.makeIssue)({data:l,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,un.getErrorMap)(),un.defaultErrorMap].filter(c=>!!c),issueData:{code:M.ZodIssueCode.invalid_return_type,returnTypeError:d}})}const o={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof Ha){const l=this;return(0,f.OK)(async function(...d){const c=new M.ZodError([]),u=await l._def.args.parseAsync(d,o).catch(m=>{throw c.addIssue(n(d,m)),c}),p=await Reflect.apply(i,this,u);return await l._def.returns._def.type.parseAsync(p,o).catch(m=>{throw c.addIssue(r(p,m)),c})})}else{const l=this;return(0,f.OK)(function(...d){const c=l._def.args.safeParse(d,o);if(!c.success)throw new M.ZodError([n(d,c.error)]);const u=Reflect.apply(i,this,c.data),p=l._def.returns.safeParse(u,o);if(!p.success)throw new M.ZodError([r(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Ra({...this._def,args:sa.create(e).rest(Ma.create())})}returns(e){return new Ra({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Ra({args:e||sa.create([]).rest(Ma.create()),returns:t||Ma.create(),typeName:ae.ZodFunction,...re(n)})}}h.ZodFunction=Ra;class Tt extends ie{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}h.ZodLazy=Tt,Tt.create=(a,e)=>new Tt({getter:a,typeName:ae.ZodLazy,...re(e)});class It extends ie{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(t,{received:t.data,code:M.ZodIssueCode.invalid_literal,expected:this._def.value}),f.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}}h.ZodLiteral=It,It.create=(a,e)=>new It({value:a,typeName:ae.ZodLiteral,...re(e)});function oo(a,e){return new Na({values:a,typeName:ae.ZodEnum,...re(e)})}class Na extends ie{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,f.addIssueToContext)(t,{expected:U.util.joinValues(n),received:t.parsedType,code:M.ZodIssueCode.invalid_type}),f.INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,f.addIssueToContext)(t,{received:t.data,code:M.ZodIssueCode.invalid_enum_value,options:n}),f.INVALID}return(0,f.OK)(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Na.create(e,{...this._def,...t})}exclude(e,t=this._def){return Na.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}h.ZodEnum=Na,Na.create=oo;class At extends ie{_parse(e){const t=U.util.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==U.ZodParsedType.string&&n.parsedType!==U.ZodParsedType.number){const r=U.util.objectValues(t);return(0,f.addIssueToContext)(n,{expected:U.util.joinValues(r),received:n.parsedType,code:M.ZodIssueCode.invalid_type}),f.INVALID}if(this._cache||(this._cache=new Set(U.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=U.util.objectValues(t);return(0,f.addIssueToContext)(n,{received:n.data,code:M.ZodIssueCode.invalid_enum_value,options:r}),f.INVALID}return(0,f.OK)(e.data)}get enum(){return this._def.values}}h.ZodNativeEnum=At,At.create=(a,e)=>new At({values:a,typeName:ae.ZodNativeEnum,...re(e)});class Ha extends ie{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==U.ZodParsedType.promise&&t.common.async===!1)return(0,f.addIssueToContext)(t,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.promise,received:t.parsedType}),f.INVALID;const n=t.parsedType===U.ZodParsedType.promise?t.data:Promise.resolve(t.data);return(0,f.OK)(n.then(r=>this._def.type.parseAsync(r,{path:t.path,errorMap:t.common.contextualErrorMap})))}}h.ZodPromise=Ha,Ha.create=(a,e)=>new Ha({type:a,typeName:ae.ZodPromise,...re(e)});class Ye extends ie{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ae.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,o={addIssue:i=>{(0,f.addIssueToContext)(n,i),i.fatal?t.abort():t.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),r.type==="preprocess"){const i=r.transform(n.data,o);if(n.common.async)return Promise.resolve(i).then(async l=>{if(t.value==="aborted")return f.INVALID;const d=await this._def.schema._parseAsync({data:l,path:n.path,parent:n});return d.status==="aborted"?f.INVALID:d.status==="dirty"||t.value==="dirty"?(0,f.DIRTY)(d.value):d});{if(t.value==="aborted")return f.INVALID;const l=this._def.schema._parseSync({data:i,path:n.path,parent:n});return l.status==="aborted"?f.INVALID:l.status==="dirty"||t.value==="dirty"?(0,f.DIRTY)(l.value):l}}if(r.type==="refinement"){const i=l=>{const d=r.refinement(l,o);if(n.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(n.common.async===!1){const l=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return l.status==="aborted"?f.INVALID:(l.status==="dirty"&&t.dirty(),i(l.value),{status:t.value,value:l.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(l=>l.status==="aborted"?f.INVALID:(l.status==="dirty"&&t.dirty(),i(l.value).then(()=>({status:t.value,value:l.value}))))}if(r.type==="transform")if(n.common.async===!1){const i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!(0,f.isValid)(i))return f.INVALID;const l=r.transform(i.value,o);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:l}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>(0,f.isValid)(i)?Promise.resolve(r.transform(i.value,o)).then(l=>({status:t.value,value:l})):f.INVALID);U.util.assertNever(r)}}h.ZodEffects=Ye,h.ZodTransformer=Ye,Ye.create=(a,e,t)=>new Ye({schema:a,typeName:ae.ZodEffects,effect:e,...re(t)}),Ye.createWithPreprocess=(a,e,t)=>new Ye({schema:e,effect:{type:"preprocess",transform:a},typeName:ae.ZodEffects,...re(t)});class oa extends ie{_parse(e){return this._getType(e)===U.ZodParsedType.undefined?(0,f.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}h.ZodOptional=oa,oa.create=(a,e)=>new oa({innerType:a,typeName:ae.ZodOptional,...re(e)});class ka extends ie{_parse(e){return this._getType(e)===U.ZodParsedType.null?(0,f.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}h.ZodNullable=ka,ka.create=(a,e)=>new ka({innerType:a,typeName:ae.ZodNullable,...re(e)});class Pt extends ie{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===U.ZodParsedType.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}h.ZodDefault=Pt,Pt.create=(a,e)=>new Pt({innerType:a,typeName:ae.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...re(e)});class Dt extends ie{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return(0,f.isAsync)(r)?r.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new M.ZodError(n.common.issues)},input:n.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new M.ZodError(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}h.ZodCatch=Dt,Dt.create=(a,e)=>new Dt({innerType:a,typeName:ae.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...re(e)});class bn extends ie{_parse(e){if(this._getType(e)!==U.ZodParsedType.nan){const n=this._getOrReturnCtx(e);return(0,f.addIssueToContext)(n,{code:M.ZodIssueCode.invalid_type,expected:U.ZodParsedType.nan,received:n.parsedType}),f.INVALID}return{status:"valid",value:e.data}}}h.ZodNaN=bn,bn.create=a=>new bn({typeName:ae.ZodNaN,...re(a)}),h.BRAND=Symbol("zod_brand");class ir extends ie{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}h.ZodBranded=ir;class xt extends ie{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const o=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?f.INVALID:o.status==="dirty"?(t.dirty(),(0,f.DIRTY)(o.value)):this._def.out._parseAsync({data:o.value,path:n.path,parent:n})})();{const r=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return r.status==="aborted"?f.INVALID:r.status==="dirty"?(t.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:n.path,parent:n})}}static create(e,t){return new xt({in:e,out:t,typeName:ae.ZodPipeline})}}h.ZodPipeline=xt;class Et extends ie{_parse(e){const t=this._def.innerType._parse(e),n=r=>((0,f.isValid)(r)&&(r.value=Object.freeze(r.value)),r);return(0,f.isAsync)(t)?t.then(r=>n(r)):n(t)}unwrap(){return this._def.innerType}}h.ZodReadonly=Et,Et.create=(a,e)=>new Et({innerType:a,typeName:ae.ZodReadonly,...re(e)});function io(a,e){const t=typeof a=="function"?a(e):typeof a=="string"?{message:a}:a;return typeof t=="string"?{message:t}:t}function lo(a,e={},t){return a?Ka.create().superRefine((n,r)=>{const o=a(n);if(o instanceof Promise)return o.then(i=>{if(!i){const l=io(e,n),d=l.fatal??t??!0;r.addIssue({code:"custom",...l,fatal:d})}});if(!o){const i=io(e,n),l=i.fatal??t??!0;r.addIssue({code:"custom",...i,fatal:l})}}):Ka.create()}h.late={object:Te.lazycreate};var ae;(function(a){a.ZodString="ZodString",a.ZodNumber="ZodNumber",a.ZodNaN="ZodNaN",a.ZodBigInt="ZodBigInt",a.ZodBoolean="ZodBoolean",a.ZodDate="ZodDate",a.ZodSymbol="ZodSymbol",a.ZodUndefined="ZodUndefined",a.ZodNull="ZodNull",a.ZodAny="ZodAny",a.ZodUnknown="ZodUnknown",a.ZodNever="ZodNever",a.ZodVoid="ZodVoid",a.ZodArray="ZodArray",a.ZodObject="ZodObject",a.ZodUnion="ZodUnion",a.ZodDiscriminatedUnion="ZodDiscriminatedUnion",a.ZodIntersection="ZodIntersection",a.ZodTuple="ZodTuple",a.ZodRecord="ZodRecord",a.ZodMap="ZodMap",a.ZodSet="ZodSet",a.ZodFunction="ZodFunction",a.ZodLazy="ZodLazy",a.ZodLiteral="ZodLiteral",a.ZodEnum="ZodEnum",a.ZodEffects="ZodEffects",a.ZodNativeEnum="ZodNativeEnum",a.ZodOptional="ZodOptional",a.ZodNullable="ZodNullable",a.ZodDefault="ZodDefault",a.ZodCatch="ZodCatch",a.ZodPromise="ZodPromise",a.ZodBranded="ZodBranded",a.ZodPipeline="ZodPipeline",a.ZodReadonly="ZodReadonly"})(ae||(h.ZodFirstPartyTypeKind=ae={}));const Cd=(a,e={message:`Input not instance of ${a.name}`})=>lo(t=>t instanceof a,e);h.instanceof=Cd;const co=Re.create;h.string=co;const uo=Sa.create;h.number=uo;const Nd=bn.create;h.nan=Nd;const kd=Ca.create;h.bigint=kd;const po=_t.create;h.boolean=po;const wd=Fa.create;h.date=wd;const Td=pn.create;h.symbol=Td;const Id=St.create;h.undefined=Id;const Ad=Ct.create;h.null=Ad;const Pd=Ka.create;h.any=Pd;const Dd=Ma.create;h.unknown=Dd;const xd=ca.create;h.never=xd;const Ed=gn.create;h.void=Ed;const Ld=He.create;h.array=Ld;const Fd=Te.create;h.object=Fd;const Md=Te.strictCreate;h.strictObject=Md;const Od=Nt.create;h.union=Od;const Ud=mn.create;h.discriminatedUnion=Ud;const Bd=kt.create;h.intersection=Bd;const zd=sa.create;h.tuple=zd;const Vd=wt.create;h.record=Vd;const jd=hn.create;h.map=jd;const qd=Oa.create;h.set=qd;const Zd=Ra.create;h.function=Zd;const Wd=Tt.create;h.lazy=Wd;const Gd=It.create;h.literal=Gd;const Kd=Na.create;h.enum=Kd;const $d=At.create;h.nativeEnum=$d;const Rd=Ha.create;h.promise=Rd;const go=Ye.create;h.effect=go,h.transformer=go;const Hd=oa.create;h.optional=Hd;const Yd=ka.create;h.nullable=Yd;const Jd=Ye.createWithPreprocess;h.preprocess=Jd;const Qd=xt.create;h.pipeline=Qd;const Xd=()=>co().optional();h.ostring=Xd;const ec=()=>uo().optional();h.onumber=ec;const ac=()=>po().optional();h.oboolean=ac,h.coerce={string:a=>Re.create({...a,coerce:!0}),number:a=>Sa.create({...a,coerce:!0}),boolean:a=>_t.create({...a,coerce:!0}),bigint:a=>Ca.create({...a,coerce:!0}),date:a=>Fa.create({...a,coerce:!0})},h.NEVER=f.INVALID,function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var l=Object.getOwnPropertyDescriptor(r,o);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,l)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=me&&me.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(_a,a),t(rr,a),t(eo,a),t(yt,a),t(h,a),t(na,a)}(nr),function(a){var e=me&&me.__createBinding||(Object.create?function(i,l,d,c){c===void 0&&(c=d);var u=Object.getOwnPropertyDescriptor(l,d);(!u||("get"in u?!l.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return l[d]}}),Object.defineProperty(i,c,u)}:function(i,l,d,c){c===void 0&&(c=d),i[c]=l[d]}),t=me&&me.__setModuleDefault||(Object.create?function(i,l){Object.defineProperty(i,"default",{enumerable:!0,value:l})}:function(i,l){i.default=l}),n=me&&me.__importStar||function(i){if(i&&i.__esModule)return i;var l={};if(i!=null)for(var d in i)d!=="default"&&Object.prototype.hasOwnProperty.call(i,d)&&e(l,i,d);return t(l,i),l},r=me&&me.__exportStar||function(i,l){for(var d in i)d!=="default"&&!Object.prototype.hasOwnProperty.call(l,d)&&e(l,i,d)};Object.defineProperty(a,"__esModule",{value:!0}),a.z=void 0;const o=n(nr);a.z=o,r(nr,a),a.default=o}(Ys),function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingConfigSchema=a.billingVersionConfigSchema=a.meterSchema=a.addOnSchema=a.planSchema=a.meteredPriceSchema=a.priceSchema=a.meterTypeSchema=a.aggregationSchema=a.unitAmountSchema=a.intervalSchema=a.featureSchema=a.UNKNOWN_STRIPE_ID=void 0;const e=Ys,t=tr;a.UNKNOWN_STRIPE_ID="__UNKNOWN_STRIPE_ID__",a.featureSchema=e.z.enum(t.BILLING_FEATURE_IDS),a.intervalSchema=e.z.enum(["month","year"]),a.unitAmountSchema=e.z.number().int().min(1),a.aggregationSchema=e.z.enum(["sum","count"]),a.meterTypeSchema=e.z.enum(["payAsYouGo","creditGrant"]),a.priceSchema=e.z.object({amount:e.z.number(),currency:e.z.enum(["usd"]),interval:a.intervalSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerPriceId:e.z.string()}),a.meteredPriceSchema=e.z.object({unitAmount:a.unitAmountSchema,currency:e.z.enum(["usd"]),interval:a.intervalSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerPriceId:e.z.string()}),a.planSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),tierIndex:e.z.number(),prices:e.z.record(a.intervalSchema,a.priceSchema),features:e.z.record(a.featureSchema,e.z.union([e.z.number(),e.z.boolean()])),metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerProductId:e.z.string()}),a.addOnSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),prices:e.z.record(e.z.string(),a.priceSchema),increments:e.z.record(a.featureSchema,e.z.number().positive()),prorationDisabled:e.z.boolean().optional(),metadata:e.z.record(e.z.string(),e.z.string()).optional(),autoRechargeable:e.z.boolean().optional(),hidden:e.z.boolean().optional(),providerProductId:e.z.string()}),a.meterSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),defaultAggregation:e.z.object({formula:a.aggregationSchema}).optional(),customerMapping:e.z.object({eventPayloadKey:e.z.literal("stripe_customer_id"),type:e.z.literal("by_id")}).optional(),valueSettings:e.z.object({eventPayloadKey:e.z.literal("value")}).optional(),prices:e.z.record(a.intervalSchema,a.meteredPriceSchema),meterType:a.meterTypeSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerProductId:e.z.string(),providerMeterId:e.z.string()}),a.billingVersionConfigSchema=e.z.object({version:e.z.string(),name:e.z.string(),description:e.z.string(),plans:e.z.record(e.z.string(),a.planSchema),addons:e.z.record(e.z.string(),a.addOnSchema),meters:e.z.record(e.z.string(),a.meterSchema),isActive:e.z.boolean(),createdAt:e.z.string()}),a.billingConfigSchema=e.z.record(e.z.string(),a.billingVersionConfigSchema)}(ft),Object.defineProperty(bt,"__esModule",{value:!0}),bt.plans=void 0;const Ie=ln,We=ft,mo={table_rows:0,bot_count:Ie.SMALL_UNLIMITED,collaborator_count:Ie.SMALL_UNLIMITED,file_storage:0,vector_db_storage:0,saved_versions:0,indexed_file_count:0,incoming_messages_events:0,ai_spend:0,conversation_sessions:0};bt.plans={community:{id:"community",name:"Plan - Free",description:"Free plan for trying things out",tierIndex:0,prices:{month:{amount:Ie.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:We.UNKNOWN_STRIPE_ID}},features:{table_rows:1e3,bot_count:3,collaborator_count:3,file_storage:100*Ie.MB,vector_db_storage:100*Ie.MB,saved_versions:3,indexed_file_count:1e3,incoming_messages_events:100*Ie.MESSAGES_PER_CONVERSATION,ai_spend:100*Ie.AI_SPEND_PER_CONVERSATION,conversation_sessions:100},providerProductId:We.UNKNOWN_STRIPE_ID},plus:{id:"plus",name:"Plan - Plus",description:"For growing businesses",tierIndex:1,prices:{month:{amount:189,currency:"usd",interval:"month",providerPriceId:We.UNKNOWN_STRIPE_ID},year:{amount:150*Ie.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:We.UNKNOWN_STRIPE_ID}},features:{table_rows:1e5,bot_count:Ie.SMALL_UNLIMITED,collaborator_count:3,file_storage:10*Ie.GB,vector_db_storage:1*Ie.GB,saved_versions:50,indexed_file_count:2e3,incoming_messages_events:250*Ie.MESSAGES_PER_CONVERSATION,ai_spend:250*Ie.AI_SPEND_PER_CONVERSATION,conversation_sessions:250},providerProductId:We.UNKNOWN_STRIPE_ID},team:{id:"team",name:"Plan - Team",description:"For small teams",tierIndex:2,prices:{month:{amount:939,currency:"usd",interval:"month",providerPriceId:We.UNKNOWN_STRIPE_ID},year:{amount:750*Ie.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:We.UNKNOWN_STRIPE_ID}},features:{table_rows:5e5,bot_count:Ie.SMALL_UNLIMITED,collaborator_count:Ie.SMALL_UNLIMITED,file_storage:50*Ie.GB,vector_db_storage:5*Ie.GB,saved_versions:100,indexed_file_count:Ie.BIG_UNLIMITED,incoming_messages_events:1500*Ie.MESSAGES_PER_CONVERSATION,ai_spend:1500*Ie.AI_SPEND_PER_CONVERSATION,conversation_sessions:1500},providerProductId:We.UNKNOWN_STRIPE_ID},enterprise:{id:"enterprise",name:"Plan - Enterprise",description:"Enterprise license subscription",tierIndex:3,prices:{month:{amount:Ie.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:We.UNKNOWN_STRIPE_ID}},features:mo,providerProductId:We.UNKNOWN_STRIPE_ID},managed:{id:"managed",name:"Plan - Managed",description:"Managed license subscription",tierIndex:4,prices:{month:{amount:Ie.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:We.UNKNOWN_STRIPE_ID}},features:mo,providerProductId:We.UNKNOWN_STRIPE_ID}};var Lt={};Object.defineProperty(Lt,"__esModule",{value:!0}),Lt.addons=void 0;const Ya=ln,Ja=ft,ho=(a,e=["community","plus","team","enterprise","managed"])=>e.map(t=>({[t]:{amount:a,currency:"usd",interval:"month",providerPriceId:Ja.UNKNOWN_STRIPE_ID}})).reduce((t,n)=>({...t,...n}),{});Lt.addons={conversation_sessions_addon:{id:"conversation_sessions_addon",name:"Add-on - Conversation Sessions",description:"Adds conversations sessions for the month",prices:{plus:{amount:65,currency:"usd",interval:"month",providerPriceId:Ja.UNKNOWN_STRIPE_ID},team:{amount:50,currency:"usd",interval:"month",providerPriceId:Ja.UNKNOWN_STRIPE_ID},enterprise:{amount:Ya.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ja.UNKNOWN_STRIPE_ID}},increments:{conversation_sessions:100,ai_spend:100*Ya.AI_SPEND_PER_CONVERSATION,incoming_messages_events:100*Ya.MESSAGES_PER_CONVERSATION},providerProductId:Ja.UNKNOWN_STRIPE_ID,autoRechargeable:!0,prorationDisabled:!0},storage_addon:{id:"storage_addon",name:"Add-on - Storage",description:"Adds table rows, vector db space and files",prices:{...ho(40,["plus","team"]),...ho(Ya.FREE_PRICE,["enterprise","managed"])},increments:{table_rows:1e5,vector_db_storage:1*Ya.GB,file_storage:10*Ya.GB},providerProductId:Ja.UNKNOWN_STRIPE_ID}};var Ft={};Object.defineProperty(Ft,"__esModule",{value:!0}),Ft.meters=void 0;const Qa=ft;Ft.meters={ai_spend_credit_grant:{id:"ai_spend_credit_grant",name:"AI Spend - Credit grant",description:"Pre-purchased credits applied toward AI usage",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:Qa.UNKNOWN_STRIPE_ID}},meterType:"creditGrant",providerMeterId:Qa.UNKNOWN_STRIPE_ID,providerProductId:Qa.UNKNOWN_STRIPE_ID},ai_spend_pay_as_you_go:{id:"ai_spend_pay_as_you_go",name:"AI Spend - Pay as you go",description:"Usage-based charges for AI spend, billed monthly",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:Qa.UNKNOWN_STRIPE_ID}},meterType:"payAsYouGo",providerMeterId:Qa.UNKNOWN_STRIPE_ID,providerProductId:Qa.UNKNOWN_STRIPE_ID}};var bo={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingDefinitions=a.billingConfig=void 0;const e=bt,t=Lt,n=Ft;a.billingConfig={v4:{version:"v4",name:"Billing Version 4",description:"New billing system with credit grants and entitlements",plans:e.plans,addons:t.addons,meters:n.meters,isActive:!0,createdAt:new Date().toISOString()}},a.billingDefinitions=a.billingConfig})(bo),function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var l=Object.getOwnPropertyDescriptor(r,o);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,l)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=me&&me.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(bt,a),t(Lt,a),t(Ft,a),t(ft,a),t(bo,a)}(Hs),function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var l=Object.getOwnPropertyDescriptor(r,o);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,l)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=me&&me.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(tr,a),t(Hs,a),t(ln,a)}(Rs),function(a){var e=me&&me.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var l=Object.getOwnPropertyDescriptor(r,o);(!l||("get"in l?!r.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,l)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=me&&me.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(nn,a),t(rn,a),t(Ga,a),t($s,a),t(sn,a),t(Ze,a),t(on,a),t(Rs,a)}(ar);const tc={too_expensive:"cancelSurveyReasonTooExpensive",not_using_enough:"cancelSurveyReasonNotUsingEnough",missing_feature:"cancelSurveyReasonMissingFeature",switched_tool:"cancelSurveyReasonSwitchedTool",technical_issues:"cancelSurveyReasonTechnicalIssues",support_expectations:"cancelSurveyReasonSupportExpectations",temporary_need:"cancelSurveyReasonTemporaryNeed"},fo=({open:a,onOpenChange:e,planId:t,onConfirm:n,loading:r=!1,planFeatures:o={}})=>{var E,ce;const{t:i}=pe(),{locale:l,analytics:d}=X(),{data:c}=Ue(),{data:u}=Qe(),{data:p}=Fe({enabled:a}),[g,m]=T.useState("confirm"),[v,y]=T.useState(null),[C,N]=T.useState(""),_=T.useId(),I=p==null?void 0:p.plan.current,b=c==null?void 0:c.find(B=>B.id===(I==null?void 0:I.planId)),A=(I==null?void 0:I.interval)??"month",S=b?ye(b):"community",D=b?be(b.name):"",w=(u??[]).flatMap(B=>{var H;const F=((H=p==null?void 0:p.addons[B.id])==null?void 0:H.current.quantity)??0;return F>0?[{addon:B,quantity:F}]:[]}),z=((E=b==null?void 0:b.prices[A])==null?void 0:E.currency)??"usd",x=(((ce=b==null?void 0:b.prices[A])==null?void 0:ce.amount)??0)+w.reduce((B,{addon:F,quantity:H})=>{var V;return B+H*(b&&((V=dt(F,b,A))==null?void 0:V.amount)||0)},0),L=b==null?void 0:b.features.conversation_sessions,Z=b==null?void 0:b.features.ai_spend,j=[...L!==void 0?[`${he(L)} ${i("conversationsPerMonth")}`]:[],...(o[S]??ut[S]).map(B=>{if(B==="AI usage included"&&Z!==void 0)return i("planFeatureAiUsageIncluded",{amount:ne(Z/qe,z,0)});const F=ct[B];return F!==void 0?i(F.label):B})],ee=I==null?void 0:I.periodEnd,R=c==null?void 0:c.find(B=>B.id===t),O={plan_name:R?be(R.name):void 0,current_plan_name:b?be(b.name):void 0},q=()=>{d.capture(we.DOWNGRADE_SURVEY_VIEWED,O),m("feedback")},W=()=>{if(!v||!I)return;const B=C.trim();d.capture(we.DOWNGRADE_SURVEY_SUBMITTED,{reason:v,has_comment:B.length>0,comment_length:B.length}),n({reason:v,comment:B||void 0,previousPlanId:I.planId,planId:t})},J=()=>e(!1);return s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":i(g==="confirm"?"cancelSurveyConfirmTitle":"cancelSurveyFeedbackTitle"),className:"bpb-scope",children:g==="confirm"?s.jsxs("div",{className:"bpb-cancel-survey",children:[s.jsxs("header",{className:"bpb-cancel-survey__head",children:[s.jsx("h2",{className:"bpb-cancel-survey__title",children:i("cancelSurveyConfirmTitle")}),s.jsx("p",{className:"bpb-cancel-survey__lede",children:ee?s.jsx(nt,{i18nKey:"cancelSurveyConfirmLede",values:{plan:D,date:je(ee,l)},components:{bold:s.jsx("strong",{})}}):i("cancelSurveyConfirmLedeNoDate",{plan:D})})]}),s.jsxs("div",{className:K("bpb-cancel-survey__plan",`bpb-cancel-survey__plan--${S}`),children:[s.jsxs("div",{children:[s.jsx("span",{className:"bpb-cancel-survey__eyebrow",children:i("cancelSurveyCurrentPlan")}),s.jsx("span",{className:"bpb-cancel-survey__plan-name",children:D})]}),s.jsxs("span",{className:"bpb-cancel-survey__plan-price",children:[ne(x,z,0),A==="year"?"/yr":"/mo"]})]}),s.jsx("ul",{className:"bpb-cancel-survey__losses",children:j.map(B=>s.jsxs("li",{children:[s.jsx(gt,{size:16,className:"bpb-cancel-survey__loss-icon","aria-hidden":!0}),s.jsx("span",{children:B})]},B))}),w.length>0&&s.jsxs("div",{className:"bpb-cancel-survey__addons",children:[s.jsx("span",{className:"bpb-cancel-survey__eyebrow bpb-cancel-survey__eyebrow--muted",children:i("cancelSurveyCurrentAddons")}),w.map(({addon:B,quantity:F})=>{var Q;const H=$e[B.id],V=(((Q=B.increments)==null?void 0:Q.conversation_sessions)??0)*F;return s.jsxs("p",{className:"bpb-cancel-survey__addon",children:[s.jsx("strong",{children:i("cancelSurveyAddonPack",{name:H?i(H):xa(B.name),quantity:F})}),V>0&&s.jsxs("span",{children:[" · ",i("cancelSurveyAddonConversations",{amount:he(V)})]})]},B.id)})]}),s.jsxs("footer",{className:"bpb-cancel-survey__footer",children:[s.jsx(ve,{variant:"outline",size:"lg",onClick:J,children:i("cancelSurveyKeep")}),s.jsx(ve,{variant:"primary",size:"lg",onClick:q,children:i("cancelSurveyContinue")})]})]}):s.jsxs("div",{className:"bpb-cancel-survey",children:[s.jsxs("header",{className:"bpb-cancel-survey__head",children:[s.jsx("h2",{className:"bpb-cancel-survey__title",children:i("cancelSurveyFeedbackTitle")}),s.jsx("p",{className:"bpb-cancel-survey__lede",children:i("cancelSurveyFeedbackLede")})]}),s.jsx("div",{className:"bpb-cancel-survey__reasons",role:"radiogroup",children:ar.CANCELLATION_REASONS.map(B=>s.jsxs("label",{className:"bpb-cancel-survey__reason",children:[s.jsx("input",{type:"radio",name:"bpb-cancel-reason",value:B,checked:v===B,onChange:()=>y(B)}),s.jsx("span",{children:i(tc[B])})]},B))}),s.jsxs("label",{htmlFor:_,className:"bpb-cancel-survey__comment-label",children:[i("cancelSurveyCommentLabel")," ",s.jsx("span",{children:i("cancelSurveyOptional")})]}),s.jsx("textarea",{id:_,className:"bpb-cancel-survey__comment",rows:3,placeholder:i("cancelSurveyCommentPlaceholder"),value:C,onChange:B=>N(B.target.value)}),s.jsxs("footer",{className:"bpb-cancel-survey__footer",children:[s.jsx(ve,{variant:"outline",size:"lg",onClick:J,children:i("cancelSurveyKeep")}),s.jsx(ve,{variant:"primary",size:"lg",disabled:!v,loading:r,onClick:W,children:i("cancelSurveyConfirm")})]})]})})},pa=()=>{const{manageBillingUrl:a}=X(),{t:e}=pe();return s.jsxs("div",{className:"bpb-outdated",children:[s.jsx("h3",{className:"bpb-outdated__title",children:e("outdatedTitle")}),s.jsx("p",{className:"bpb-outdated__text",children:e("outdatedText")}),a&&s.jsxs(ve,{variant:"primary",onClick:()=>window.open(a,"_blank","noopener"),children:[e("outdatedCta"),s.jsx(ht,{size:15})]})]})},yo=({options:a,value:e,onChange:t,className:n,...r})=>s.jsx("div",{role:"radiogroup","aria-label":r["aria-label"],className:K("bpb-segmented",n),children:a.map(o=>{const i=o.value===e;return s.jsxs("button",{type:"button",role:"radio","aria-checked":i,className:K("bpb-segmented__option",i&&"bpb-segmented__option--selected"),onClick:()=>t(o.value),children:[o.label,o.badge&&s.jsx("span",{className:"bpb-segmented__badge",children:o.badge})]},o.value)})}),ue=({width:a,height:e=14,rounded:t=!1,className:n})=>s.jsx("span",{"aria-hidden":!0,className:K("bpb-skeleton",t&&"bpb-skeleton--rounded",n),style:{width:a??"100%",height:e}}),nc="(max-width: 560px)",rc=()=>{};function sc(a){const e=T.useCallback(r=>{if(typeof window>"u")return rc;const o=window.matchMedia(a);return o.addEventListener("change",r),()=>o.removeEventListener("change",r)},[a]),t=T.useCallback(()=>typeof window<"u"&&window.matchMedia(a).matches,[a]),n=T.useCallback(()=>!1,[]);return T.useSyncExternalStore(e,t,n)}function oc(){return sc(nc)}const Mt=({label:a,children:e})=>s.jsxs("span",{className:"bpb-tooltip",tabIndex:0,role:"note",children:[s.jsx("span",{className:"bpb-tooltip__term",children:a}),s.jsx("span",{className:"bpb-tooltip__bubble",role:"tooltip",children:e})]}),lr=3,ic=({label:a,description:e,Icon:t})=>{const[n,r]=T.useState(!1),o=T.useId();return s.jsxs("li",{className:"bpb-plan-card__feature--expandable",children:[s.jsxs("button",{type:"button",className:"bpb-plan-card__feature-trigger","aria-expanded":n,"aria-controls":o,onClick:()=>r(i=>!i),children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(t,{size:13})}),s.jsx("span",{className:"bpb-plan-card__feature-label",children:a}),s.jsx("span",{className:K("bpb-plan-card__feature-caret",n&&"is-open"),"aria-hidden":!0,children:s.jsx(Ea,{size:14})})]}),n&&s.jsx("p",{id:o,className:"bpb-plan-card__feature-desc",children:e})]})},lc=({features:a,previousPlanName:e,overrides:t,isMobile:n})=>{const{t:r}=pe(),[o,i]=T.useState(!1),d=n&&!o&&a.length>lr?a.slice(0,lr):a;return s.jsxs(s.Fragment,{children:[s.jsxs("ul",{className:K("bpb-plan-card__features",n&&"bpb-plan-card__features--mobile"),children:[e&&s.jsxs("li",{className:"bpb-plan-card__features-lead",children:[s.jsx("span",{className:"bpb-plan-card__feature-chip bpb-plan-card__feature-chip--lead",children:s.jsx(Ms,{size:13})}),s.jsx("span",{children:r("upgradeEverythingIn",{planName:e})})]}),d.map(c=>{const u=tn(c),p=ct[c],g=t==null?void 0:t[c],m=(g==null?void 0:g.label)??(p!==void 0?r(p.label):c),v=(g==null?void 0:g.description)??(p!==void 0?r(p.desc):void 0);return n?v?s.jsx(ic,{label:m,description:v,Icon:u},c):s.jsxs("li",{children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(u,{size:13})}),s.jsx("span",{className:"bpb-plan-card__feature-label",children:m})]},c):s.jsxs("li",{children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(u,{size:13})}),v?s.jsx(Mt,{label:m,children:v}):s.jsx("span",{children:m})]},c)})]}),n&&a.length>lr&&s.jsxs("button",{type:"button",className:"bpb-plan-card__features-toggle",onClick:()=>i(c=>!c),children:[o?r("upgradeShowFewerFeatures"):r("upgradeSeeAllFeatures",{total:a.length}),s.jsx("span",{className:K("bpb-plan-card__feature-caret",o&&"is-open"),"aria-hidden":!0,children:s.jsx(Ea,{size:14})})]})]})};function dc(a,e){const t=a.prices[e];return t||((e==="month"?a.prices.year:a.prices.month)??null)}function cc(a,e){var r,o;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const n=((o=a.prices.year)==null?void 0:o.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}function uc(a){var t,n;let e=0;for(const r of a){const o=(t=r.prices.month)==null?void 0:t.amount,i=(n=r.prices.year)==null?void 0:n.amount;o&&i&&o>0&&(e=Math.max(e,1-i/(o*12)))}return Math.round(e*100)}const vo=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",defaultInterval:r="month",excludePlanIds:o=[],planFeatures:i={},featureDescriptions:l})=>{var se,Ae,fe;const{isOutdatedBilling:d,toast:c,analytics:u}=X(),{t:p}=pe(),{data:g}=Le(),[m,v]=T.useState(r),{data:y,isLoading:C}=Ue(),{data:N}=Qe(),{data:_}=Fe({enabled:a}),{data:I}=In({enabled:a}),b=En(),A=Er(),S=(I==null?void 0:I.planReadonly)??!1,[D,w]=T.useState(null);T.useEffect(()=>{a&&u.capture(we.PLAN_PICKER_VIEWED,{interval:m})},[a,u]);const z=P=>{P!==m&&u.capture(we.PLAN_INTERVAL_TOGGLED,{interval:P}),v(P)},x=_==null?void 0:_.plan.current.interval,L=y==null?void 0:y.find(P=>P.id===(_==null?void 0:_.plan.current.planId)),Z=_?L?ye(L):"community":void 0,j=((se=_==null?void 0:_.plan.next)==null?void 0:se.planId)??null,ee=!!j&&j!==(_==null?void 0:_.plan.current.planId),R=S||Z==="enterprise"||Z==="managed",O=T.useMemo(()=>y?y.filter(P=>ye(P)!=="managed"&&ye(P)!=="enterprise"&&!o.includes(P.id)).sort((P,oe)=>Ia.indexOf(ye(P))-Ia.indexOf(ye(oe))):[],[y,o]),q=T.useMemo(()=>uc(O),[O]),W=oc(),J=T.useMemo(()=>{var le;if(O.length===0)return null;const P=O.find(Ne=>ye(Ne)===n||Ne.id===n),oe=O.find(Ne=>ye(Ne)===Z);return((le=P??oe??O[0])==null?void 0:le.id)??null},[O,n,Z]),[E,ce]=T.useState(void 0),[B,F]=T.useState(a);B!==a&&(F(a),ce(void 0));const H=E===void 0?J:E,V=((fe=(Ae=y==null?void 0:y.find(P=>ye(P)==="enterprise"))==null?void 0:Ae.metadata)==null?void 0:fe.contact_url)??Ln,Q=(P,oe)=>{b.mutate({planId:P.id,interval:m},{onSuccess:()=>{u.capture(we.PLAN_DOWNGRADED,{plan_name:be(P.name),interval:m,previous_plan_name:L?be(L.name):void 0,reason:oe==null?void 0:oe.reason,survey_submitted:!!oe}),oe&&A.mutate(oe),w(null),c({type:"success",message:p("upgradeDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeDowngradeError")})})},Se=P=>{if(ye(P)!=="community"){Q(P);return}u.capture(we.DOWNGRADE_CONFIRM_VIEWED,{plan_name:be(P.name),current_plan_name:L?be(L.name):void 0,interval:m,is_cancellation:!0}),w(P)},Ce=()=>{_&&b.mutate({planId:_.plan.current.planId,interval:_.plan.current.interval},{onSuccess:()=>{u.capture(we.PLAN_DOWNGRADE_CANCELLED,{plan_name:L?be(L.name):_.plan.current.planId}),c({type:"success",message:p("upgradeCancelDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeCancelDowngradeError")})})};return g===!1?null:d?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):s.jsxs(xe,{open:a,onOpenChange:P=>!D&&e(P),size:"xl","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:[s.jsxs("div",{className:"bpb-upgrade",children:[s.jsx("h2",{className:"bpb-upgrade__title",children:p("upgradeDialogTitle")}),s.jsx("div",{className:"bpb-upgrade__toggle",children:s.jsx(yo,{"aria-label":p("dashboardBillingPeriod"),value:m,onChange:z,options:[{value:"month",label:p("upgradeMonthly")},{value:"year",label:p("upgradeAnnual"),badge:q>0?p("upgradeSaveBadge",{savings:q}):void 0}]})}),s.jsxs("div",{className:"bpb-upgrade__grid",children:[C&&[0,1,2].map(P=>s.jsxs("div",{className:"bpb-plan-card","aria-hidden":!0,children:[s.jsx(ue,{width:120,height:22}),s.jsx(ue,{width:90,height:40}),s.jsx(ue,{width:"100%",height:36,rounded:!0}),s.jsx(ue,{width:"100%",height:140})]},P)),O.map((P,oe)=>{var Cn,Nn;const le=ye(P),Ne=dc(P,m),Oe=cc(P,m),ma=(((Cn=P.prices.month)==null?void 0:Cn.amount)??0)<=0,Je=le===Z,et=Je&&(Z==="community"||m===x),_r=le===Z&&Z!=="community"&&m!==x,at=!!j&&P.id===j&&!et,Sr=Z!==void 0&&Ia.indexOf(le)<Ia.indexOf(Z),tt=(le===n||P.id===n)&&!et,ia=Je&&ee?"cancel_downgrade":et?"current":_r?"switch_interval":at?"next":Sr?"downgrade":"upgrade",vn=oe>0?O[oe-1]:void 0,Cr=i[le]??ut[le],Ua=P.features.conversation_sessions,Pe=Qt(N,P,m),Ba=P.features.ai_spend,Bt=Ba!==void 0?p("planFeatureAiUsageIncluded",{amount:ne(Ba/qe,(Ne==null?void 0:Ne.currency)??"usd",1)}):void 0,_n=Ba!==void 0&&Ua?p("planFeatureDescAiUsageIncluded",{rate:ne(Ba/Ua/qe,(Ne==null?void 0:Ne.currency)??"usd",2)}):void 0,Sn={...Object.fromEntries(Object.entries(l??{}).map(([Nr,jo])=>[Nr,{description:jo}])),...Bt!==void 0?{"AI usage included":{label:Bt,description:(l==null?void 0:l["AI usage included"])??_n}}:{}},Be=b.isPending&&(ia==="downgrade"&&((Nn=b.variables)==null?void 0:Nn.planId)===P.id||ia==="cancel_downgrade"),Ge=be(P.name),wa=!W||H===P.id,za=Oe!==null&&Ne?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"bpb-plan-card__currency",children:lt(Ne.currency)}),s.jsx("span",{className:"bpb-plan-card__amount",children:Math.round(Oe)}),s.jsx("span",{className:"bpb-plan-card__per",children:p("upgradePerMonthSuffix",{currency:Ne.currency.toUpperCase()})})]}):s.jsx("span",{className:"bpb-plan-card__amount",children:ne(0,"usd",0)});return s.jsxs("div",{className:K("bpb-plan-card",tt&&"bpb-plan-card--highlighted bpb-glow",W&&"bpb-plan-card--accordion",W&&wa&&"is-expanded"),"data-plan-id":P.id,children:[W?s.jsxs("button",{type:"button",className:"bpb-plan-card__summary","aria-expanded":wa,onClick:()=>ce(wa?null:P.id),children:[s.jsxs("span",{className:"bpb-plan-card__summary-text",children:[s.jsxs("span",{className:"bpb-plan-card__name",children:[Ge,tt&&s.jsx(pt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),s.jsx("span",{className:"bpb-plan-card__price",children:za})]}),s.jsx("span",{className:K("bpb-plan-card__feature-caret",wa&&"is-open"),"aria-hidden":!0,children:s.jsx(Ea,{size:16})})]}):s.jsxs("div",{className:"bpb-plan-card__header",children:[s.jsxs("h3",{className:"bpb-plan-card__name",children:[Ge,tt&&s.jsx(pt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),s.jsx("p",{className:"bpb-plan-card__tagline",children:p(Fs[ye(P)])}),s.jsx("div",{className:"bpb-plan-card__price",children:za})]}),wa&&s.jsxs(s.Fragment,{children:[W&&s.jsx("p",{className:"bpb-plan-card__tagline",children:p(Fs[ye(P)])}),Ua!==void 0&&s.jsxs("div",{className:"bpb-plan-card__allowance",children:[s.jsxs("div",{className:"bpb-plan-card__metric",children:[s.jsx("span",{className:"bpb-plan-card__metric-value",children:he(Ua)}),s.jsx("span",{className:"bpb-plan-card__metric-unit",children:p(ma?"conversationsUnit":"conversationsPerMonth")})]}),Pe?s.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeThenPer",{price:ne(Pe.amount,Pe.currency,0),packSize:he(Pe.packSize)})}):s.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeNoTopup")})]}),ia==="current"&&s.jsx(ve,{variant:"outline",block:!0,disabled:!0,children:p("upgradeCurrentPlan")}),ia==="next"&&s.jsx(ve,{variant:"outline",block:!0,disabled:!0,children:p("upgradeNextPlan")}),ia==="cancel_downgrade"&&s.jsx(ve,{variant:"primary",block:!0,loading:Be,onClick:Ce,children:p("upgradeCancelDowngrade")}),ia==="downgrade"&&s.jsx(ve,{variant:"outline",block:!0,disabled:R||b.isPending,loading:Be,onClick:()=>Se(P),children:p("upgradeDowngrade")}),ia==="switch_interval"&&s.jsx(ve,{variant:"primary",block:!0,disabled:R||b.isPending,title:R?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(we.PLAN_UPGRADE_INITIATED,{plan_name:be(P.name),interval:m,current_plan_name:L?be(L.name):void 0}),t(P.id,m)},children:p(m==="year"?"upgradeSwitchToAnnual":"upgradeSwitchToMonthly")}),ia==="upgrade"&&s.jsx(ve,{variant:tt?"accent":"primary",block:!0,disabled:R||b.isPending,title:R?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(we.PLAN_UPGRADE_INITIATED,{plan_name:be(P.name),interval:m,current_plan_name:L?be(L.name):void 0}),t(P.id,m)},children:p("upgradeUpgrade")}),s.jsx(lc,{features:Cr,previousPlanName:vn?be(vn.name):void 0,overrides:Sn,isMobile:W})]})]},P.id)})]}),s.jsxs("p",{className:"bpb-upgrade__footer",children:[p("upgradeFooterEnterprise")," ",s.jsx("a",{href:V,target:"_blank",rel:"noopener noreferrer",children:p("upgradeContactUs")})," ",p("upgradeFooterAboutEnterprise")," ",s.jsx("a",{href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:"botpress.com/pricing"}),"."]})]}),D&&s.jsx(fo,{open:a,onOpenChange:P=>!P&&!b.isPending&&w(null),planId:D.id,onConfirm:P=>Q(D,P),loading:b.isPending,planFeatures:i})]})},dr='-apple-system, "ui-sans-serif", "system-ui", "Segoe UI", Helvetica, Arial, sans-serif',cr="14px",_o="10px";function ur(a){return a?{theme:"night",variables:{fontFamily:dr,fontSizeBase:cr,borderRadius:_o,colorPrimary:"#ececec",colorBackground:"#1c1c1c",colorText:"#f9f9f9",colorTextSecondary:"#b4b4b4",colorTextPlaceholder:"#9b9b9b",colorDanger:"#ff8583"},rules:{".Input":{backgroundColor:"#212121",border:"1px solid rgba(255,255,255,0.12)",boxShadow:"none",color:"#f9f9f9"},".Input:focus":{border:"1px solid rgba(255,255,255,0.3)",boxShadow:"none"},".Label":{color:"#ececec",fontWeight:"500",fontSize:"12px"},".Error":{color:"#ff8583"},".Tab":{border:"1px solid rgba(255,255,255,0.12)",boxShadow:"none"}}}:{theme:"stripe",variables:{fontFamily:dr,fontSizeBase:cr,borderRadius:_o,colorPrimary:"#0d0d0d",colorBackground:"#f7f7f7",colorText:"#0d0d0d",colorTextSecondary:"#5d5d5d",colorTextPlaceholder:"#8f8f8f",colorDanger:"#e02e2a"},rules:{".Input":{backgroundColor:"#f7f7f7",border:"1px solid transparent",boxShadow:"none",color:"#0d0d0d"},".Input:focus":{backgroundColor:"#fff",border:"1px solid #0d0d0d",boxShadow:"none"},".Label":{color:"#5d5d5d",fontWeight:"500",fontSize:"12px"},".Error":{color:"#e02e2a"},".Tab":{border:"1px solid #0d0d0d1a",boxShadow:"none",backgroundColor:"#f7f7f7"},".Tab--selected":{border:"1px solid #0d0d0d",backgroundColor:"#fff"},".Block":{backgroundColor:"#f9f9f9",boxShadow:"none"}}}}function pr(a){return{base:{fontFamily:dr,fontSize:cr,color:a?"#f9f9f9":"#0d0d0d","::placeholder":{color:a?"#9b9b9b":"#8f8f8f"}},invalid:{color:a?"#ff8583":"#e02e2a"}}}const pc={pt:"pt-BR",es:"es-419"};function gr(a){const e=a.split("-")[0]??a;return pc[e]??a}const mr=({onClose:a,onSuccess:e})=>{var D;const{toast:t,locale:n}=X(),{t:r}=pe(),{data:o,isLoading:i}=Fe(),{data:l,isLoading:d}=Ue(),{data:c,isLoading:u}=Qe(),{data:p,isLoading:g}=Ko((D=o==null?void 0:o.pendingUpgrade)==null?void 0:D.invoiceId),m=Lr(),v=Fr(),[y,C]=T.useState(null),N=o==null?void 0:o.pendingUpgrade;if(i||d||u||g)return s.jsxs("div",{className:"bpb-pending-upgrade","aria-busy":"true",children:[s.jsx(ue,{height:20,width:160}),s.jsx(ue,{height:56}),s.jsx(ue,{height:40})]});if(!N)return null;const _=l==null?void 0:l.find(w=>w.id===(o==null?void 0:o.plan.current.planId)),I=N.planId?l==null?void 0:l.find(w=>w.id===N.planId):void 0,b=Object.entries(N.addons).flatMap(([w,z])=>{var Z;const x=c==null?void 0:c.find(j=>j.id===w);if(!x||z<=0)return[];const L=((Z=o==null?void 0:o.addons[w])==null?void 0:Z.current.quantity)??0;return[{addon:x,currentQuantity:L,nextQuantity:z}]}),A=()=>{C(null),m.mutate({invoiceId:N.invoiceId},{onSuccess:()=>{t({type:"success",message:r("pendingUpgradePaySuccess")}),e==null||e(),a==null||a()},onError:w=>{C(w instanceof Error&&w.message?w.message:r("pendingUpgradePayError")),t({type:"error",message:r("pendingUpgradePayError")})}})},S=()=>{v.mutate(void 0,{onSuccess:()=>{t({type:"success",message:r("pendingUpgradeCancelSuccess")}),a==null||a()},onError:()=>t({type:"error",message:r("pendingUpgradeCancelError")})})};return s.jsxs("div",{className:"bpb-pending-upgrade",children:[s.jsx("h2",{className:"bpb-pending-upgrade__title",children:r("pendingUpgradeTitle")}),s.jsx("div",{className:"bpb-pending-upgrade__alert",children:s.jsxs("div",{children:[s.jsx("p",{className:"bpb-pending-upgrade__alert-title",children:r("pendingUpgradeFailedLabel")}),s.jsx("p",{className:"bpb-pending-upgrade__alert-body",children:r("pendingUpgradeSubtitle")})]})}),s.jsx("p",{className:"bpb-pending-upgrade__list-title",children:r("pendingUpgradeItemsLabel")}),s.jsxs("div",{className:"bpb-pending-upgrade__list",children:[I&&s.jsx("div",{className:"bpb-pending-upgrade__row",children:s.jsx("span",{children:r("pendingUpgradePlanChange",{currentPlan:_?be(_.name):r("planBannerNoPlan"),nextPlan:be(I.name)})})}),b.map(({addon:w,currentQuantity:z,nextQuantity:x})=>s.jsx("div",{className:"bpb-pending-upgrade__row",children:s.jsx("span",{children:r("pendingUpgradeAddonChange",{currentQuantity:z,nextQuantity:x,name:$e[w.id]?r($e[w.id]):xa(w.name)})})},w.id))]}),p?s.jsxs("div",{className:"bpb-pending-upgrade__total",children:[s.jsx("span",{children:r("pendingUpgradeAmountDue")}),s.jsx("span",{children:ne(p.amount,p.currency)})]}):s.jsx("p",{className:"bpb-pending-upgrade__error",children:r("pendingUpgradeAmountUnavailable")}),y&&s.jsx("p",{className:"bpb-pending-upgrade__error",children:y}),N.expiresAt&&s.jsx("p",{className:"bpb-pending-upgrade__expires",children:r("pendingUpgradeExpiresOn",{date:Is(N.expiresAt,n)})}),s.jsxs("div",{className:"bpb-pending-upgrade__actions",children:[s.jsx(ve,{variant:"outline",onClick:S,loading:v.isPending,disabled:m.isPending,children:r("pendingUpgradeCancelCta")}),s.jsx(ve,{variant:"primary",onClick:A,loading:m.isPending,disabled:v.isPending||!p,children:r("pendingUpgradePayCta")})]})]})},gc={address:"address",name:"address",taxId:"taxId",payment:"payment"};function So(a,e){var r;const t=(r=a==null?void 0:a.metadata)==null?void 0:r.errors;if(!(t!=null&&t.length))return{general:(a==null?void 0:a.message)||e};const n={};for(const o of t)o.message&&(n[gc[o.scope??""]??"general"]=o.message);return Object.keys(n).length>0?n:{general:(a==null?void 0:a.message)||e}}function hr(a){const e=new Date(a);if(Number.isNaN(e.getTime()))return!1;const t=new Date;return t.setFullYear(t.getFullYear()+2),e>t}function Co(a){const e=new Date(a);return new Date(e.getUTCFullYear(),e.getUTCMonth()+1,0).toISOString()}function mc(a=new Date){return new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth()+1,1)).toISOString()}const hc=4,bc=({plan:a,interval:e,preview:t,isLoadingPreview:n,isPreviewError:r,canSubscribe:o,isSubmitting:i,submitError:l,onSubscribe:d})=>{var q,W,J,E,ce;const{locale:c}=X(),{t:u}=pe(),{data:p}=Qe(),g=((q=a==null?void 0:a.prices.month)==null?void 0:q.currency)??((W=a==null?void 0:a.prices.year)==null?void 0:W.currency)??"usd",m=a==null?void 0:a.features.conversation_sessions,v=a&&ye(a)==="community"?u("conversationsUnit"):u("conversationsPerMonth"),y=a?Qt(p,a,e):null,C=(t==null?void 0:t.costs.immediate.amountDue)??0,N=(t==null?void 0:t.costs.immediate.accountBalance)??0,_=(t==null?void 0:t.costs.nextCycle.total)??0,I=t!=null&&t.nextBillingDate?As(t.nextBillingDate,1):null,b=I&&!hr(I)?je(I,c):null,A=a?ut[ye(a)].slice(0,hc):[],S=a==null?void 0:a.features.ai_spend,D=S!==void 0?u("planFeatureAiUsageIncluded",{amount:ne(S/qe,g,1)}):void 0,w=a?((J=a.prices[e])==null?void 0:J.amount)??0:0,z=(t==null?void 0:t.costs.immediate.lineItems)??[],x=z.filter(B=>B.type==="discount"),L=z.filter(B=>B.type==="proration_credit"||B.type==="proration_charge").reduce((B,F)=>B+F.amount,0),Z=!!(t!=null&&t.subscription.plan.effectiveDate),j=((E=a==null?void 0:a.prices.month)==null?void 0:E.amount)??0,ee=((ce=a==null?void 0:a.prices.year)==null?void 0:ce.amount)??0,R=e==="year"&&j>0&&ee>0?Math.round(j*12-ee):0,O=Math.round(R/12);return s.jsxs("div",{className:"bpb-summary-wrap",children:[s.jsxs("div",{className:"bpb-summary bpb-glow",children:[s.jsx("h3",{className:"bpb-summary__title",children:a?`${be(a.name)} plan`:s.jsx(ue,{width:140,height:24})}),m!==void 0&&s.jsxs("div",{className:"bpb-summary__metric",children:[s.jsx("span",{className:"bpb-summary__metric-value",children:he(m)}),s.jsx("span",{className:"bpb-summary__metric-unit",children:v}),y&&s.jsx("span",{className:"bpb-summary__metric-pack",children:u("orderThen",{price:ne(y.amount,y.currency,0),packSize:he(y.packSize)})})]}),A.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("p",{className:"bpb-summary__features-label",children:u("orderTopFeatures")}),s.jsx("ul",{className:"bpb-summary__features",children:A.map(B=>{const F=tn(B),H=ct[B],V=B==="AI usage included"?D??(H!==void 0?u(H.label):B):H!==void 0?u(H.label):B;return s.jsxs("li",{children:[s.jsx(F,{size:16,className:"bpb-summary__feature-icon"}),s.jsx("span",{children:V})]},B)})})]}),s.jsx("hr",{className:"bpb-summary__divider"}),n&&s.jsxs("div",{className:"bpb-summary__lines","aria-busy":"true",children:[s.jsx(ue,{height:16}),s.jsx(ue,{height:16}),s.jsx(ue,{height:20})]}),r&&s.jsx("p",{role:"alert",className:"bpb-summary__error",children:u("orderPreviewError")}),t&&!n&&Z&&s.jsxs("div",{className:"bpb-summary__lines",children:[s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:b?u("orderPlanFromDate",{plan:a?be(a.name):"",date:b}):`${a?be(a.name):""} plan`}),s.jsxs("span",{className:"bpb-summary__line-amount",children:[ne(_,g),u(e==="year"?"perYear":"perMonth")]})]}),s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:s.jsx(Mt,{label:u("orderProratedToday"),children:u("orderProratedTodayDesc")})}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(C,g)})]}),s.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[s.jsx("span",{children:u("orderDueToday")}),s.jsx("span",{children:ne(C,g)})]}),L<0&&s.jsx("p",{className:"bpb-summary__addon-note",children:u("orderCreditTowardNext",{amount:ne(Math.abs(L),g)})})]}),t&&!n&&!Z&&s.jsxs("div",{className:"bpb-summary__lines",children:[s.jsxs("div",{className:"bpb-summary__line",children:[s.jsxs("span",{className:"bpb-summary__line-label",children:[a?be(a.name):""," plan (",u(e==="year"?"orderIntervalAnnual":"orderIntervalMonthly"),")"]}),s.jsxs("span",{className:"bpb-summary__line-amount",children:[ne(w,g),u(e==="year"?"perYear":"perMonth")]})]}),x.map((B,F)=>s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:B.description}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(B.amount,g)})]},`${B.id}-${F}`)),L!==0&&s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:s.jsx(Mt,{label:L<0?u("orderCreditUnusedTime"):u("orderAdjustUnusedTime"),children:L<0?u("orderCreditUnusedTimeDesc"):u("orderAdjustUnusedTimeDesc")})}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(L,g)})]}),N!==0&&s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:u("orderAccountCredit")}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(N,g)})]}),s.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[s.jsx("span",{children:u("orderDueToday")}),s.jsx("span",{children:ne(C,g)})]}),L<0&&C===0&&s.jsx("p",{className:"bpb-summary__addon-note",children:u("orderBalanceAsCredit",{amount:ne(Math.abs(L),g)})})]}),R>0&&s.jsxs("div",{className:"bpb-summary__savings",children:[s.jsx(Xt,{size:18,className:"bpb-summary__savings-icon"}),s.jsx("span",{children:u("orderSavingsNote",{monthlySavings:ne(O,g,0),yearlySavings:ne(R,g,0)})})]}),s.jsx(ve,{variant:"primary",size:"lg",block:!0,className:"bpb-summary__cta",disabled:!o,loading:i,onClick:d,children:u(r?"orderPreviewUnavailable":"orderSubscribe")}),l&&s.jsx("p",{role:"alert",className:"bpb-summary__submit-error",children:l})]}),s.jsxs("p",{className:"bpb-summary__fineprint",children:[u(e==="month"?"orderRenewsMonthly":"orderRenewsAnnually"),t&&s.jsxs(s.Fragment,{children:[" ",b?u("orderChargedStarting",{amount:ne(_,g),period:u(e==="month"?"perMonthLong":"perYearLong"),date:b}):u("orderChargedNoDate",{amount:ne(_,g),period:u(e==="month"?"perMonthLong":"perYearLong")})]})," ",u("orderCancelNote")]})]})},fc=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE"],yc={CA:[{type:"ca_bn",label:"CA BN",description:"Canadian BN"},{type:"ca_gst_hst",label:"CA GST/HST",description:"Canadian GST/HST number"},{type:"ca_qst",label:"CA QST",description:"Canadian QST number (Québec)"},{type:"ca_pst_bc",label:"CA PST-BC",description:"Canadian PST number (British Columbia)"},{type:"ca_pst_mb",label:"CA PST-MB",description:"Canadian PST number (Manitoba)"},{type:"ca_pst_sk",label:"CA PST-SK",description:"Canadian PST number (Saskatchewan)"}],US:[{type:"us_ein",label:"US EIN",description:"United States EIN"}],GB:[{type:"eu_vat",label:"XI VAT",description:"Northern Ireland VAT number"},{type:"gb_vat",label:"GB VAT",description:"United Kingdom VAT number"}],AU:[{type:"au_abn",label:"AU ABN",description:"Australian Business Number"},{type:"au_arn",label:"AU ARN",description:"Australian Taxation Office Reference Number"}],NZ:[{type:"nz_gst",label:"NZ GST",description:"New Zealand GST number"}],IN:[{type:"in_gst",label:"IN GST",description:"Indian GST number"}],JP:[{type:"jp_cn",label:"JP CN",description:"Japanese Corporate Number"},{type:"jp_rn",label:"JP RN",description:"Japanese Registered Foreign Businesses' Registration Number"},{type:"jp_trn",label:"JP TRN",description:"Japanese Tax Registration Number"}],BR:[{type:"br_cnpj",label:"BR CNPJ",description:"Brazilian CNPJ number"},{type:"br_cpf",label:"BR CPF",description:"Brazilian CPF number"}],MX:[{type:"mx_rfc",label:"MX RFC",description:"Mexican RFC number"}],CH:[{type:"ch_vat",label:"CH VAT",description:"Switzerland VAT number"},{type:"ch_uid",label:"CH UID",description:"Switzerland UID number"}],AE:[{type:"ae_trn",label:"AE TRN",description:"United Arab Emirates TRN"}],SG:[{type:"sg_gst",label:"SG GST",description:"Singaporean GST number"},{type:"sg_uen",label:"SG UEN",description:"Singaporean UEN"}],ZA:[{type:"za_vat",label:"ZA VAT",description:"South African VAT number"}],ES:[{type:"es_cif",label:"ES CIF",description:"Spanish NIF number"}],BG:[{type:"bg_uic",label:"BG UIC",description:"Bulgaria Unified Identification Code"}],HR:[{type:"hr_oib",label:"HR OIB",description:"Croatian Personal Identification Number"}],DE:[{type:"de_stn",label:"DE STN",description:"German Tax Number (Steuernummer)"}],HU:[{type:"hu_tin",label:"HU TIN",description:"Hungary tax number (adószám)"}],RO:[{type:"ro_tin",label:"RO TIN",description:"Romanian tax ID number"}],SI:[{type:"si_tin",label:"SI TIN",description:"Slovenia tax number (davčna številka)"}]},vc=[{type:"eu_vat",label:"EU VAT",description:"European VAT number"}];function No(a){if(!a)return[];const e=a.toUpperCase(),t=yc[e]??[];return fc.includes(e)?[...vc,...t]:t}const fn=({label:a,invalid:e,className:t,id:n,...r})=>a?s.jsxs("label",{className:K("bpb-input",t),children:[s.jsx("span",{className:"bpb-input__label",children:a}),s.jsx("input",{className:K("bpb-input__field bpb-input__field--labeled",e&&"bpb-input__field--invalid"),id:n,"aria-invalid":e||void 0,...r})]}):s.jsx("input",{className:K("bpb-input__field",e&&"bpb-input__field--invalid",t),id:n,"aria-invalid":e||void 0,...r}),br=({label:a,className:e,children:t,...n})=>s.jsxs("label",{className:K("bpb-input",e),children:[a&&s.jsx("span",{className:"bpb-input__label",children:a}),s.jsxs("span",{className:"bpb-input__select-wrap",children:[s.jsx("select",{className:K("bpb-input__field bpb-input__field--select",a&&"bpb-input__field--labeled"),...n,children:t}),s.jsx(Ea,{size:16,className:"bpb-input__chevron"})]})]}),_c=({plan:a,interval:e,onChange:t})=>{const{t:n}=pe(),r=a.prices.month,o=a.prices.year,i=r&&o&&r.amount>0?Math.round((1-o.amount/(r.amount*12))*100):0;return s.jsxs("section",{className:"bpb-checkout__section",children:[s.jsx("h3",{className:"bpb-checkout__section-title",children:n("checkoutPlanDetails")}),s.jsxs("div",{className:"bpb-interval-cards",role:"radiogroup","aria-label":n("billingIntervalLabel"),children:[r&&s.jsxs("button",{type:"button",role:"radio","aria-checked":e==="month",className:K("bpb-interval-card",e==="month"&&"bpb-interval-card--selected"),onClick:()=>t("month"),children:[s.jsx("span",{className:"bpb-interval-card__title",children:n("checkoutMonthlyBilling")}),s.jsxs("span",{className:"bpb-interval-card__price",children:[ne(r.amount,r.currency,0)," ",n("perMonth")]})]}),o&&s.jsxs("button",{type:"button",role:"radio","aria-checked":e==="year",className:K("bpb-interval-card",e==="year"&&"bpb-interval-card--selected"),onClick:()=>t("year"),children:[s.jsxs("span",{className:"bpb-interval-card__title",children:[n("checkoutAnnualBilling"),i>0&&s.jsx(pt,{children:n("checkoutSaveBadge",{savings:i})})]}),s.jsxs("span",{className:"bpb-interval-card__price",children:[ne(o.amount/12,o.currency,0)," ",n("perMonth")]})]})]})]})},ko=({number:a,title:e,onEdit:t})=>{const{t:n}=pe();return s.jsxs("div",{className:"bpb-step__header",children:[t?s.jsxs("button",{type:"button",className:"bpb-step__title bpb-step__title--button",onClick:t,children:[a,". ",e]}):s.jsxs("h3",{className:"bpb-step__title",children:[a,". ",e]}),t&&s.jsx("button",{type:"button",className:"bpb-step__edit",onClick:t,children:n("edit")})]})},Sc=({stepNumber:a,savedCard:e,isDark:t,tab:n,onTabChange:r,onPaymentChange:o,error:i})=>{const{t:l}=pe(),[d,c]=T.useState(!1),u=n==="new"||!e;return s.jsxs("section",{className:"bpb-step",children:[s.jsx(ko,{number:a,title:l("checkoutPaymentMethodTitle")}),e&&s.jsxs("div",{className:"bpb-pay-tabs",role:"tablist","aria-label":l("checkoutPaymentMethodTitle"),children:[s.jsxs("button",{type:"button",role:"tab","aria-selected":n==="saved",className:K("bpb-pay-tab",n==="saved"&&"bpb-pay-tab--selected"),onClick:()=>r("saved"),children:[s.jsx(Hn,{size:16}),l("checkoutSavedCardTab")]}),s.jsxs("button",{type:"button",role:"tab","aria-selected":n==="new",className:K("bpb-pay-tab",n==="new"&&"bpb-pay-tab--selected"),onClick:()=>r("new"),children:[s.jsx(Hn,{size:16}),l("checkoutNewCardTab")]})]}),e&&n==="saved"&&s.jsxs("div",{className:"bpb-saved-card",children:[s.jsx(er,{brand:e.brand}),s.jsxs("span",{className:"bpb-saved-card__number",children:[s.jsx("span",{className:"bpb-saved-card__brand",children:e.brand})," •••• ",e.lastFour]}),s.jsxs("span",{className:"bpb-saved-card__exp",children:[String(e.expMonth).padStart(2,"0"),"/",String(e.expYear).slice(-2)]})]}),u&&s.jsxs("div",{className:"bpb-payment-element",children:[!d&&s.jsx("div",{className:"bpb-payment-element__skeleton",children:s.jsx(ue,{height:48})}),s.jsx("div",{className:K("bpb-card-element",!d&&"bpb-payment-element--hidden"),children:s.jsx(ze.CardElement,{options:{style:pr(t),hidePostalCode:!0},onReady:()=>c(!0),onChange:p=>o(p.complete)})})]}),i&&s.jsx("p",{role:"alert",className:"bpb-step__field-error",children:i})]})},Cc=({stepNumber:a,existingAddress:e,customerName:t,isLoading:n,editing:r,onEdit:o,onCancelEdit:i,onReady:l,onCountryChange:d,country:c,isBusiness:u,onIsBusinessChange:p,businessName:g,onBusinessNameChange:m,taxType:v,onTaxTypeChange:y,taxValue:C,onTaxValueChange:N,addressError:_,taxIdError:I})=>{const{t:b}=pe(),[A,S]=T.useState(!1),D=r||!e,w=No(c),z=w.find(x=>x.type===v);return s.jsxs("section",{className:"bpb-step",children:[s.jsx(ko,{number:a,title:b("checkoutBillingAddressTitle")}),n?s.jsx(ue,{height:72}):D?s.jsxs("div",{className:"bpb-payment-element",children:[!A&&s.jsxs("div",{className:"bpb-payment-element__skeleton",children:[s.jsx(ue,{height:48}),s.jsx(ue,{height:48})]}),s.jsx("div",{className:K(!A&&"bpb-payment-element--hidden"),children:s.jsx(ze.AddressElement,{options:{mode:"billing",display:{name:"full"},autocomplete:{mode:"disabled"},defaultValues:e?{name:t??void 0,address:{line1:e.lineOne,line2:e.lineTwo,city:e.city,state:e.state,postal_code:e.postalCode,country:e.country}}:void 0},onReady:()=>{S(!0),l()},onChange:x=>{d(x.value.address.country||void 0)}})}),i&&r&&s.jsx("button",{type:"button",className:"bpb-address-cancel",onClick:i,children:b("checkoutCancelEdit")})]}):s.jsxs("div",{className:"bpb-address-card",children:[s.jsxs("div",{className:"bpb-address-card__lines",children:[t&&s.jsx("span",{className:"bpb-address-card__name",children:t}),s.jsxs("span",{children:[e.lineOne,e.lineTwo?`, ${e.lineTwo}`:""]}),s.jsxs("span",{children:[e.city," ",e.state??""," ",e.postalCode," ",e.country]})]}),s.jsx("button",{type:"button",className:"bpb-link-button",onClick:o,children:b("checkoutUpdateAddress")})]}),_&&s.jsx("p",{role:"alert",className:"bpb-step__field-error",children:_}),s.jsxs("label",{className:"bpb-checkbox",children:[s.jsx("input",{type:"checkbox",checked:u,onChange:x=>{p(x.target.checked),x.target.checked&&!v&&w[0]&&y(w[0].type)}}),s.jsx("span",{children:b("checkoutIsBusiness")})]}),u&&s.jsxs("div",{className:"bpb-business-fields",children:[s.jsx("h4",{className:"bpb-step__subtitle",children:b("checkoutBusinessDetails")}),s.jsx(fn,{placeholder:b("checkoutBusinessNamePlaceholder"),value:g,onChange:x=>m(x.target.value),autoComplete:"organization"}),w.length>0?s.jsxs(s.Fragment,{children:[s.jsx(br,{"aria-label":b("checkoutTaxIdTypeLabel"),value:v,onChange:x=>y(x.target.value),children:w.map(x=>s.jsxs("option",{value:x.type,children:[x.label," — ",x.description]},x.type))}),s.jsx(fn,{placeholder:z?z.description:b("checkoutTaxIdNumberPlaceholder"),value:C,onChange:x=>N(x.target.value),inputMode:"text"}),I&&s.jsx("p",{role:"alert",className:"bpb-step__field-error",children:I})]}):s.jsx("p",{className:"bpb-business-fields__note",children:b(c?"checkoutNoTaxRequired":"checkoutSelectCountryForTax")})]})]})},Nc=({planId:a,initialInterval:e,onSuccess:t})=>{var Ua;const n=ze.useStripe(),r=ze.useElements(),{email:o,toast:i,analytics:l,isDark:d}=X(),{t:c}=pe(),[u,p]=T.useState(e),[g,m]=T.useState(null),[v,y]=T.useState(!1),[C,N]=T.useState(!1),[_,I]=T.useState(!1),[b,A]=T.useState(void 0),[S,D]=T.useState(!1),[w,z]=T.useState(""),[x,L]=T.useState(""),[Z,j]=T.useState(""),[ee,R]=T.useState(!1),[O,q]=T.useState({}),[W,J]=T.useState(!1),E=Pn(),{data:ce}=Ue(),{data:B}=Fe(),{data:F,isLoading:H}=wn(),{data:V,isLoading:Q,isError:Se}=Tn(),Ce=ce==null?void 0:ce.find(Pe=>Pe.id===a),se=((Ua=F==null?void 0:F.paymentMethod)==null?void 0:Ua.card)??null,Ae=(V==null?void 0:V.address)??null;T.useEffect(()=>{g===null&&!H&&F!==void 0&&m(se?"saved":"new")},[g,H,F,se]),T.useEffect(()=>{b===void 0&&Ae&&A(Ae.country)},[b,Ae]);const fe=T.useMemo(()=>({plan:{planId:a,interval:u}}),[a,u]),P=kn(fe),oe=Dn(),le=xn(),Ne=En(),Oe=Ce?be(Ce.name):"",ma=g==="new"||!se,Je=C||!Ae,et=ma?v:!!se,_r=Je?_:!0,at=et?"address":"payment";T.useEffect(()=>{l.capture(we.CHECKOUT_STEP_VIEWED,{plan_name:Oe,interval:u,step:at})},[l,at]);const Sr=Pe=>{Pe!==u&&l.capture(we.CHECKOUT_INTERVAL_CHANGED,{plan_name:Oe,interval:Pe}),p(Pe)},tt=Pe=>{l.capture(we.PAYMENT_METHOD_SELECTED,{method:Pe==="saved"?"saved_card":"new_card"}),m(Pe)},ia=Pe=>{y(Pe),J(!1)},vn=!!n&&!!r&&!!Ce&&!Q&&!Se&&!P.isError&&!!P.data&&et&&_r&&!ee,Cr=async()=>{var Ba,Bt,_n,Sn;if(!n||!r||!Ce||Q||Se)return;R(!0),q({});const Pe=(Be,Ge)=>l.capture(we.CHECKOUT_ERROR,{plan_name:Oe,interval:u,step:at,reason:Be,message:Ge});try{if(l.capture(we.PAYMENT_DETAILS_CONFIRMED,{plan_name:Oe,interval:u}),ma&&!W){const la=r.getElement(ze.CardElement);if(!la){q({payment:c("checkoutCardNotReady")}),Pe("card_element_not_ready");return}const{clientSecret:kr}=await E.mutateAsync(),{error:ha,setupIntent:Ke}=await n.confirmCardSetup(kr,{payment_method:{card:la}});if(ha){q({payment:ha.message??c("checkoutPaymentSetupFailed")}),l.capture(we.CHECKOUT_ERROR,{plan_name:Oe,interval:u,step:at,reason:ha.code??"card_setup_failed",decline_code:ha.decline_code,message:ha.message});return}if(!(Ke!=null&&Ke.payment_method)||typeof Ke.payment_method!="string"){q({payment:c("checkoutPaymentMethodMissing")}),Pe("payment_method_missing");return}await oe.mutateAsync({paymentMethodId:Ke.payment_method}),J(!0)}let Be,Ge;if(Je){const la=r.getElement("address");if(la){const{complete:kr,value:ha}=await la.getValue();if(!kr||!ha.address){q({address:c("checkoutAddressIncomplete")}),Pe("address_incomplete");return}const{address:Ke}=ha;Ge=((Ba=ha.name)==null?void 0:Ba.trim())||void 0,Be={lineOne:Ke.line1??"",lineTwo:Ke.line2??void 0,city:Ke.city??"",state:Ke.state??void 0,postalCode:Ke.postal_code??"",country:Ke.country??""}}}const wa=S&&w.trim()||Ge||(V==null?void 0:V.name)||void 0,za=S&&x&&Z.trim()?{type:x,value:Z.trim()}:void 0,Cn=za?[...((V==null?void 0:V.taxIds)??[]).filter(la=>la.type!==za.type||la.value!==za.value),za]:V==null?void 0:V.taxIds;(Be||S||wa!==((V==null?void 0:V.name)??void 0))&&await le.mutateAsync({address:Be??Ae??void 0,name:wa,taxIds:Cn});const Nn=((Bt=P.data)==null?void 0:Bt.costs.immediate.amountDue)??0,Nr=((_n=P.data)==null?void 0:_n.costs.nextCycle.total)??0;if((await Ne.mutateAsync({planId:a,interval:u})).pendingUpgrade)return;l.capture(we.PLAN_UPGRADED,{plan_name:Oe,interval:u,amount_paid:Nn,next_cycle_amount:Nr,previous_plan_name:(Sn=ce==null?void 0:ce.find(la=>la.id===(B==null?void 0:B.plan.current.planId)))==null?void 0:Sn.name.replace("Plan - ",""),previous_interval:B==null?void 0:B.plan.current.interval}),i({type:"success",message:c("checkoutSuccessToast")}),t()}catch(Be){const Ge=Be instanceof Error?Be:void 0;q(So(Ge,c("checkoutGenericError"))),Pe((Ge==null?void 0:Ge.type)??"exception",Be instanceof Error?Be.message:void 0),i({type:"error",message:c("checkoutErrorToast")})}finally{R(!1)}};return s.jsxs("div",{className:"bpb-checkout__columns",children:[s.jsxs("div",{className:"bpb-checkout__main",children:[Ce&&s.jsx(_c,{plan:Ce,interval:u,onChange:Sr}),o&&s.jsxs("section",{className:"bpb-checkout__section",children:[s.jsx("h3",{className:"bpb-checkout__section-title",children:c("checkoutContactInfo")}),s.jsxs("div",{className:"bpb-checkout__static-field",children:[s.jsx("span",{className:"bpb-checkout__static-label",children:c("checkoutEmailLabel")}),s.jsx("span",{children:o})]})]}),s.jsx(Sc,{stepNumber:1,savedCard:se,isDark:d,tab:g??"new",onTabChange:tt,onPaymentChange:ia,error:O.payment}),s.jsx(Cc,{stepNumber:2,existingAddress:Ae,customerName:(V==null?void 0:V.name)??null,isLoading:Q,editing:C,onEdit:()=>N(!0),onCancelEdit:Ae?()=>N(!1):void 0,onReady:()=>I(!0),onCountryChange:A,country:b,isBusiness:S,onIsBusinessChange:D,businessName:w,onBusinessNameChange:z,taxType:x,onTaxTypeChange:L,taxValue:Z,onTaxValueChange:j,addressError:O.address,taxIdError:O.taxId})]}),s.jsx("div",{className:"bpb-checkout__aside",children:s.jsx(bc,{plan:Ce,interval:u,preview:P.data,isLoadingPreview:P.isLoading,isPreviewError:P.isError,canSubscribe:vn,isSubmitting:ee,submitError:O.general??null,onSubscribe:()=>void Cr()})})]})},wo=({open:a,onOpenChange:e,planId:t,interval:n,onBack:r,onSuccess:o})=>{const{stripePromise:i,isDark:l,locale:d,isOutdatedBilling:c}=X(),{t:u}=pe(),{data:p}=Le(),g=zt({enabled:a&&!c}),m=T.useMemo(()=>({appearance:ur(l),locale:gr(d)}),[l,d]);return p===!1?null:c?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":u("checkoutTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):g?s.jsx(xe,{open:a,onOpenChange:e,size:"sm","aria-label":u("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(mr,{onClose:()=>e(!1),onSuccess:o})}):s.jsx(xe,{open:a,onOpenChange:e,size:"xl","aria-label":u("checkoutTitle"),className:"bpb-scope",children:s.jsxs("div",{className:"bpb-checkout",children:[s.jsxs("header",{className:"bpb-checkout__header",children:[r&&s.jsx("button",{type:"button",className:"bpb-checkout__back","aria-label":u("checkoutBackLabel"),onClick:r,children:s.jsx(Yn,{size:18})}),s.jsx("h2",{className:"bpb-checkout__title",children:u("checkoutTitle")})]}),s.jsx(ze.Elements,{stripe:i,options:m,children:s.jsx(Nc,{planId:t,initialInterval:n,onSuccess:()=>{e(!1),o==null||o()}})})]})})},To=({value:a,onChange:e,min:t=0,max:n,step:r=1,className:o,...i})=>{const l=()=>e(Math.max(t,a-r)),d=()=>e(n===void 0?a+r:Math.min(n,a+r));return s.jsxs("div",{className:K("bpb-stepper",o),children:[s.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Decrease ${i["aria-label"]}`,onClick:l,disabled:a<=t,children:s.jsx(Gs,{size:14})}),s.jsx("span",{className:"bpb-stepper__value","aria-label":i["aria-label"],children:a}),s.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Increase ${i["aria-label"]}`,onClick:d,disabled:n!==void 0&&a>=n,children:s.jsx(Jn,{size:14})})]})},Io=({title:a,body:e,ctaLabel:t,onUpgrade:n,onClose:r})=>{const{t:o}=pe();return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-upgrade-gate",children:[s.jsx(Rl,{size:28,className:"bpb-upgrade-gate__icon"}),s.jsxs("div",{className:"bpb-upgrade-gate__text",children:[s.jsx("p",{className:"bpb-upgrade-gate__title",children:a}),s.jsx("p",{className:"bpb-upgrade-gate__body",children:e})]})]}),s.jsx("div",{className:"bpb-upgrade-gate__actions",children:n?s.jsx(ve,{variant:"primary",className:"bpb-upgrade-gate__cta",onClick:n,children:t}):s.jsx(ve,{variant:"outline",onClick:r,children:o("close")})})]})},kc=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=X(),{t:o}=pe(),{data:i}=Le(),l=zt({enabled:a&&!r});return i===!1?null:r?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":o("addonsDialogTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):l?s.jsx(xe,{open:a,onOpenChange:e,size:"sm","aria-label":o("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(mr,{onClose:()=>e(!1),onSuccess:t})}):s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":o("addonsDialogTitle"),className:"bpb-scope",children:s.jsx(wc,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},wc=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var E,ce,B;const{toast:n,locale:r}=X(),{t:o}=pe(),{data:i,refetch:l}=Fe(),{data:d}=Qe(),{data:c}=Ue(),{data:u}=In(),p=xr(),[g,m]=T.useState(null),[v,y]=T.useState(!1),C=c==null?void 0:c.find(F=>F.id===(i==null?void 0:i.plan.current.planId)),N=(i==null?void 0:i.plan.current.interval)??"month",_=(u==null?void 0:u.addonsReadonly)??!1,I=T.useMemo(()=>{var H;if(!i||!d)return null;const F={};for(const V of d){const Q=i.addons[V.id];F[V.id]=((H=Q==null?void 0:Q.next)==null?void 0:H.quantity)??(Q==null?void 0:Q.current.quantity)??0}return F},[i,d]),b=g??I,A=T.useMemo(()=>Object.fromEntries(Object.entries((i==null?void 0:i.addons)??{}).map(([F,H])=>[F,H.current.quantity])),[i]),S=T.useMemo(()=>!d||!C?[]:d.flatMap(F=>{const H=dt(F,C,N);return H?[{addon:F,price:H}]:[]}),[d,C,N]),D=!!b&&!!I&&Object.keys(b).some(F=>b[F]!==I[F]),w=S.reduce((F,{addon:H,price:V})=>F+((b==null?void 0:b[H.id])??0)*V.amount,0),z=T.useMemo(()=>C&&b?{plan:{planId:C.id,interval:N},addons:b}:null,[C,N,b]),x=kn(z??{plan:{planId:"",interval:N}},{enabled:!!z&&D}),L=((E=C==null?void 0:C.prices[N])==null?void 0:E.currency)??"usd",Z=((ce=x.data)==null?void 0:ce.costs.immediate.amountDue)??0,j=(B=x.data)==null?void 0:B.nextBillingDate,ee=j&&!hr(j)?je(j,r):null,R=C&&b?Es(C,d,b,A):[],O=(F,H)=>H==="bytes"?Da(F):he(F),q=(F,H)=>{const V=d==null?void 0:d.find(se=>se.id===F),Q=V==null?void 0:V.increments;if(!Q||H<=0)return null;const Se=Q.conversation_sessions??0;if(Se>0)return o("addonsConvos",{n:he(Se*H)});const Ce=Q.file_storage??0;return Ce>0?Da(Ce*H):null},W=async()=>{if(!b)return;y(!0);const{data:F}=await l();y(!1),!(F!=null&&F.pendingUpgrade)&&p.mutate({addons:b},{onSuccess:H=>{H.pendingUpgrade||(n({type:"success",message:o("addonsUpdateSuccess")}),a(!1),e==null||e())},onError:()=>n({type:"error",message:o("addonsUpdateError")})})},J=!i||!d||!c;return s.jsxs("div",{className:"bpb-manage-addons",children:[s.jsx("h2",{className:"bpb-manage-addons__title",children:o("addonsDialogTitle")}),(J||S.length>0)&&s.jsx("p",{className:"bpb-manage-addons__subtitle",children:o("addonsSubtitleGeneric")}),J?s.jsxs("div",{className:"bpb-manage-addons__loading","aria-busy":"true",children:[s.jsx(ue,{height:56}),s.jsx(ue,{height:56})]}):S.length===0?s.jsx(Io,{title:o("addonsRequirePaidPlanTitle"),body:o("addonsRequirePaidPlanBody"),ctaLabel:o("addonsUpgradeCta"),onUpgrade:t?()=>{a(!1),t()}:void 0,onClose:()=>a(!1)}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"bpb-addons",children:S.map(({addon:F,price:H})=>{var fe,P;const V=((fe=i==null?void 0:i.addons[F.id])==null?void 0:fe.current.quantity)??0,Q=(b==null?void 0:b[F.id])??0,Se=(P=i==null?void 0:i.addons[F.id])==null?void 0:P.next,Ce=Se&&Se.quantity===Q?je(Se.effectiveDate,r):ee,se=Q!==V?Q===0?Ce?o("addonRemovedOnDate",{activeNow:V,date:Ce}):o("addonRemoved",{activeNow:V}):Q<V&&Ce?o("addonChangedOnDate",{activeNow:V,pending:Q,date:Ce}):o("addonChanged",{activeNow:V,pending:Q}):V>0?o("addonActiveOnly",{count:V}):null,Ae=q(F.id,Q);return s.jsxs("div",{className:"bpb-addon-row",children:[s.jsxs("div",{className:"bpb-addon-row__info",children:[s.jsx("span",{className:"bpb-addon-row__name",children:$e[F.id]?o($e[F.id]):xa(F.name)}),s.jsx("span",{className:"bpb-addon-row__description",children:Ds[F.id]?o(Ds[F.id]):F.description}),s.jsxs("span",{className:"bpb-addon-row__price",children:[ne(H.amount,H.currency)," ",o("addonsEach")]}),se&&s.jsx("span",{className:K("bpb-addon-row__status",Q!==V&&"bpb-addon-row__status--changed"),children:se})]}),s.jsxs("div",{className:"bpb-addon-row__control",children:[Ae&&s.jsx("span",{className:"bpb-addon-row__grant",children:Ae}),s.jsx(To,{"aria-label":`${$e[F.id]?o($e[F.id]):xa(F.name)} quantity`,value:Q,onChange:oe=>m({...b??{},[F.id]:oe})})]})]},F.id)})}),D&&R.length>0&&s.jsxs("div",{className:"bpb-manage-addons__limits",children:[s.jsx("p",{className:"bpb-manage-addons__limits-title",children:o("addonsNewLimits")}),R.map(F=>{const H={conversation_sessions:"resourceConversations",table_rows:"resourceTableRows",vector_db_storage:"resourceVectorDb",file_storage:"resourceFileStorage"}[F.key];return s.jsxs("div",{className:"bpb-manage-addons__limit-row",children:[s.jsx("span",{className:"bpb-manage-addons__limit-label",children:H?o(H):F.label}),s.jsxs("span",{className:"bpb-manage-addons__limit-values",children:[s.jsx("span",{className:"bpb-manage-addons__limit-now",children:O(F.now,F.unit)}),s.jsx("span",{className:"bpb-manage-addons__limit-arrow","aria-hidden":!0,children:"→"}),s.jsx("span",{className:"bpb-manage-addons__limit-next",children:O(F.next,F.unit)})]})]},F.key)})]}),s.jsxs("div",{className:"bpb-manage-addons__totals",children:[S.map(({addon:F,price:H})=>{const V=(b==null?void 0:b[F.id])??0;return V<=0?null:s.jsxs("div",{className:"bpb-manage-addons__line",children:[s.jsxs("span",{children:[V,"×"," ",$e[F.id]?o($e[F.id]):xa(F.name)]}),s.jsx("span",{children:ne(H.amount*V,L)})]},F.id)}),s.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--total",children:[s.jsx("span",{children:o("addonsTotalMonthly")}),s.jsxs("span",{children:[ne(w,L),s.jsx("span",{className:"bpb-manage-addons__price-suffix",children:o("perMonth")})]})]}),D&&s.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--due",children:[s.jsx("span",{children:o("addonsDueToday")}),s.jsx("span",{children:x.isLoading?"…":x.isError?"—":ne(Math.max(Z,0),L)})]})]}),D&&!x.isError&&s.jsxs("p",{className:"bpb-manage-addons__note",children:[Z>0?o("addonsChargedNow",{amount:ne(Z,L)}):o("addonsNoChargeToday"),ee?o("addonsRenewalWithDate",{date:ee,amount:ne(w,L),interval:o("perMonth")}):o("addonsRenewalNoDate",{amount:ne(w,L),interval:o("perMonth")})]}),_&&s.jsx("p",{className:"bpb-manage-addons__note",role:"alert",children:o("addonsReadonlyNote")}),s.jsxs("div",{className:"bpb-manage-addons__actions",children:[s.jsx(ve,{variant:"outline",onClick:()=>a(!1),disabled:p.isPending,children:o("cancel")}),s.jsx(ve,{variant:"primary",disabled:!D||_||v,loading:v||p.isPending,onClick:W,children:o("addonsUpdateSubscription")})]})]})]})},Ao=({open:a,onOpenChange:e,onSuccess:t})=>{const{isOutdatedBilling:n}=X(),{t:r}=pe(),{data:o}=Le();return o===!1?null:n?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":r("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):s.jsx(xe,{open:a,onOpenChange:e,size:"sm","aria-label":r("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(mr,{onClose:()=>e(!1),onSuccess:t})})},Tc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=X(),{t:n}=pe(),{data:r}=Le(),o=zt({enabled:!t}),[i,l]=T.useState(!1);return r===!1||t||!o?null:s.jsxs(s.Fragment,{children:[s.jsxs("button",{type:"button",className:K("bpb-pending-upgrade-banner bpb-scope",e),onClick:()=>a?a():l(!0),children:[s.jsx(mt,{size:18,className:"bpb-pending-upgrade-banner__icon"}),s.jsx("span",{className:"bpb-pending-upgrade-banner__text",children:n("pendingUpgradeBannerText")}),s.jsxs("span",{className:"bpb-pending-upgrade-banner__cta",children:[n("pendingUpgradeBannerCta")," ",s.jsx(aa,{size:16})]})]}),!a&&s.jsx(Ao,{open:i,onOpenChange:l})]})},Ic=({open:a,onOpenChange:e})=>{const{isOutdatedBilling:t}=X(),{t:n}=pe(),{data:r}=Le();return r===!1?null:t?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:s.jsx(Ac,{open:a})})},Ac=({open:a})=>{const{locale:e,analytics:t}=X(),{t:n}=pe(),{data:r,isLoading:o,isError:i}=Ir({enabled:a}),l=(r==null?void 0:r.invoices)??[],d={paid:n("invoiceStatusPaid"),open:n("invoiceStatusDue"),draft:n("invoiceStatusDraft"),uncollectible:n("invoiceStatusUnpaid"),void:n("invoiceStatusVoid")};return s.jsxs("div",{className:"bpb-invoices",children:[s.jsx("h2",{className:"bpb-invoices__title",children:n("invoicesTitle")}),o?s.jsxs("div",{className:"bpb-invoices__loading","aria-busy":"true",children:[s.jsx(ue,{height:52}),s.jsx(ue,{height:52}),s.jsx(ue,{height:52})]}):i?s.jsx("p",{className:"bpb-invoices__empty",role:"alert",children:n("invoicesLoadError")}):l.length===0?s.jsx("p",{className:"bpb-invoices__empty",children:n("invoicesEmpty")}):s.jsx("ul",{className:"bpb-invoices__list",children:l.map(c=>s.jsxs("li",{className:"bpb-invoices__row",children:[s.jsxs("div",{className:"bpb-invoices__row-main",children:[s.jsx("span",{className:"bpb-invoices__date",children:je(c.createdAt,e)}),s.jsx("span",{className:`bpb-invoices__status bpb-invoices__status--${c.status}`,children:d[c.status]})]}),s.jsxs("div",{className:"bpb-invoices__row-end",children:[s.jsx("span",{className:"bpb-invoices__amount",children:ne(c.amount,c.currency)}),c.pdfUrl?s.jsx("a",{className:"bpb-invoices__download",href:c.pdfUrl,target:"_blank",rel:"noopener noreferrer","aria-label":n("invoicesDownloadLabel",{date:je(c.createdAt,e)}),onClick:()=>t.capture(we.INVOICE_DOWNLOADED,{status:c.status}),children:s.jsx(Xn,{size:16})}):s.jsx("span",{className:"bpb-invoices__download bpb-invoices__download--disabled","aria-hidden":!0,children:s.jsx(Xn,{size:16})})]})]},c.id))})]})},Pc=({open:a,onOpenChange:e,onSuccess:t})=>{var v;const{stripePromise:n,isDark:r,locale:o,isOutdatedBilling:i}=X(),{t:l}=pe(),{data:d}=Le(),c=Pn(),u=(v=c.data)==null?void 0:v.clientSecret,{mutate:p,reset:g}=c;T.useEffect(()=>{a&&!i&&d?p():g()},[a,i,d,p,g]);const m=T.useMemo(()=>u?{clientSecret:u,appearance:ur(r),locale:gr(o)}:null,[u,r,o]);return d===!1?null:i?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":l("paymentDialogTitle"),className:"bpb-scope",children:s.jsxs("div",{className:"bpb-payment-dialog",children:[s.jsx("h2",{className:"bpb-payment-dialog__title",children:l("paymentDialogTitle")}),c.isError?s.jsxs("div",{className:"bpb-payment-dialog__error",children:[s.jsx("p",{children:l("paymentSessionError")}),s.jsx(ve,{variant:"outline",onClick:()=>p(),children:l("tryAgain")})]}):!m||!u?s.jsxs("div",{className:"bpb-payment-dialog__loading","aria-busy":"true",children:[s.jsx(ue,{height:48}),s.jsx(ue,{height:120})]}):s.jsx(ze.Elements,{stripe:n,options:m,children:s.jsx(Dc,{clientSecret:u,isDark:r,onSuccess:t})})]})})},Dc=({clientSecret:a,isDark:e,onSuccess:t})=>{var fe;const n=ze.useStripe(),r=ze.useElements(),{toast:o,analytics:i}=X(),{t:l}=pe(),{data:d,isLoading:c}=wn(),{data:u,isLoading:p}=Tn(),g=Dn(),m=xn(),v=((fe=d==null?void 0:d.paymentMethod)==null?void 0:fe.card)??null,y=(u==null?void 0:u.address)??null,C=(u==null?void 0:u.taxIds)??[],[N,_]=T.useState(!1),[I,b]=T.useState(!1),[A,S]=T.useState(!1),[D,w]=T.useState(!1),[z,x]=T.useState(null),[L,Z]=T.useState(!1),[j,ee]=T.useState(!1),[R,O]=T.useState({}),[q,W]=T.useState(y==null?void 0:y.country),[J,E]=T.useState(C.length>0),[ce,B]=T.useState(null),F=ce??C.map(P=>({type:P.type,value:P.value})),H=No(q),V=N||!v,Q=(P,oe)=>B(F.map((le,Ne)=>Ne===P?{...le,...oe}:le)),Se=()=>{var P;return B([...F,{type:((P=H[0])==null?void 0:P.type)??"",value:""}])},Ce=P=>B(F.filter((oe,le)=>le!==P)),se=async()=>{if(!n||!r)return;const P=r.getElement(ze.CardElement);if(P){w(!0),x(null);try{const{error:oe,setupIntent:le}=await n.confirmCardSetup(a,{payment_method:{card:P}});if(oe){x(oe.message??l("paymentCardSaveError"));return}if(!(le!=null&&le.payment_method)||typeof le.payment_method!="string"){x(l("paymentMethodMissing"));return}await g.mutateAsync({paymentMethodId:le.payment_method}),i.capture(we.PAYMENT_METHOD_UPDATED),o({type:"success",message:l("paymentCardUpdated")}),_(!1),t==null||t()}catch(oe){x(oe instanceof Error&&oe.message?oe.message:l("paymentCardGenericError"))}finally{w(!1)}}},Ae=async()=>{if(!r)return;const P=r.getElement("address");if(!P)return;const{complete:oe,value:le}=await P.getValue();if(!oe||!le.address){O({address:l("paymentAddressIncomplete")});return}ee(!0),O({});try{const{address:Ne,name:Oe}=le,ma=F.filter(Je=>!!Je.type&&Je.value.trim()!=="").map(Je=>({type:Je.type,value:Je.value.trim()}));await m.mutateAsync({address:{lineOne:Ne.line1??"",lineTwo:Ne.line2??void 0,city:Ne.city??"",state:Ne.state??void 0,postalCode:Ne.postal_code??"",country:Ne.country??""},name:(Oe==null?void 0:Oe.trim())||void 0,taxIds:ma}),i.capture(we.BILLING_ADDRESS_UPDATED),o({type:"success",message:l("paymentDetailsUpdated")}),t==null||t()}catch(Ne){const Oe=Ne instanceof Error?Ne:void 0,ma=So(Oe,l("paymentAddressError"));O(ma),ma.taxId&&E(!0),o({type:"error",message:l("paymentDetailsUpdateError")})}finally{ee(!1)}};return s.jsxs("div",{className:"bpb-payment-dialog__sections",children:[s.jsxs("section",{className:"bpb-payment-dialog__section",children:[s.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentMethodSection")}),c?s.jsx(ue,{height:56}):V?s.jsxs("div",{className:"bpb-payment-element",children:[!I&&s.jsx(ue,{height:48}),s.jsx("div",{className:I?"bpb-card-element":"bpb-payment-element--hidden",children:s.jsx(ze.CardElement,{options:{style:pr(e),hidePostalCode:!0},onReady:()=>b(!0),onChange:P=>S(P.complete)})}),z&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:z}),s.jsxs("div",{className:"bpb-payment-dialog__section-actions",children:[v&&s.jsx(ve,{variant:"ghost",onClick:()=>_(!1),disabled:D,children:l("cancel")}),s.jsx(ve,{variant:"primary",disabled:!A,loading:D,onClick:se,children:l("paymentSaveCard")})]})]}):s.jsxs("div",{className:"bpb-saved-card",children:[s.jsx(er,{brand:v.brand}),s.jsxs("span",{className:"bpb-saved-card__number",children:[s.jsx("span",{className:"bpb-saved-card__brand",children:v.brand})," •••• ",v.lastFour]}),s.jsxs("span",{className:"bpb-saved-card__exp",children:[String(v.expMonth).padStart(2,"0"),"/",String(v.expYear).slice(-2)]}),s.jsx("button",{type:"button",className:"bpb-link-button",onClick:()=>_(!0),children:l("paymentReplace")})]})]}),s.jsxs("section",{className:"bpb-payment-dialog__section",children:[s.jsx("h3",{className:"bpb-payment-dialog__section-title",children:l("paymentBillingAddressSection")}),p?s.jsx(ue,{height:72}):s.jsxs("div",{className:"bpb-payment-element",children:[!L&&s.jsx(ue,{height:120}),s.jsx("div",{className:L?void 0:"bpb-payment-element--hidden",children:s.jsx(ze.AddressElement,{options:{mode:"billing",display:{name:"full"},defaultValues:y?{name:(u==null?void 0:u.name)??void 0,address:{line1:y.lineOne,line2:y.lineTwo,city:y.city,state:y.state,postal_code:y.postalCode,country:y.country}}:void 0},onReady:()=>Z(!0),onChange:P=>W(P.value.address.country||void 0)})}),R.address&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:R.address}),s.jsxs("div",{className:"bpb-tax-section",children:[s.jsxs("button",{type:"button",className:"bpb-tax-toggle","aria-expanded":J,onClick:()=>E(P=>!P),children:[s.jsx(Ea,{size:16,className:K("bpb-tax-toggle__chevron",J&&"bpb-tax-toggle__chevron--open")}),l("paymentTaxIds"),C.length>0&&s.jsx("span",{className:"bpb-tax-toggle__count",children:C.length})]}),J&&s.jsxs("div",{className:"bpb-tax",children:[F.length===0&&s.jsx("p",{className:"bpb-tax__empty",children:l("paymentTaxEmpty")}),F.map((P,oe)=>s.jsxs("div",{className:"bpb-tax__row",children:[s.jsxs(br,{"aria-label":l("paymentTaxIdType"),value:P.type,onChange:le=>Q(oe,{type:le.target.value}),children:[s.jsx("option",{value:"",children:l("paymentTaxSelectType")}),H.map(le=>s.jsx("option",{value:le.type,children:le.label},le.type)),P.type&&!H.some(le=>le.type===P.type)&&s.jsx("option",{value:P.type,children:P.type})]}),s.jsx(fn,{placeholder:l("paymentTaxIdNumber"),value:P.value,onChange:le=>Q(oe,{value:le.target.value})}),s.jsx("button",{type:"button",className:"bpb-tax__remove","aria-label":l("paymentTaxRemove"),onClick:()=>Ce(oe),children:s.jsx(gt,{size:14})})]},oe)),s.jsx("button",{type:"button",className:"bpb-link-button bpb-tax__add",onClick:Se,children:l("paymentTaxAdd")}),R.taxId&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:R.taxId})]})]}),R.general&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:R.general}),s.jsx("div",{className:"bpb-payment-dialog__section-actions",children:s.jsx(ve,{variant:"primary",loading:j,onClick:Ae,children:l("paymentSaveBillingDetails")})})]})]})]})},Po=(a,e,t)=>`bpb-dismissed:${a}:${e}:${t}`,Do=()=>new Date().toLocaleDateString("en-CA");function xo(a,e,t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(Po(a,e,t))===Do()}catch{return!1}}function Eo(a,e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(Po(a,e,t),Do())}catch{}}const Lo=[{key:"conversation_sessions",label:"Conversations",unit:"count"},{key:"ai_spend",label:"AI spend",unit:"nano-usd"},{key:"table_rows",label:"Table rows",unit:"count"},{key:"vector_db_storage",label:"Vector DB storage",unit:"bytes"},{key:"file_storage",label:"File storage",unit:"bytes"}];function Xa(a,e){return e==="bytes"?Da(a):e==="nano-usd"?`$${(a/qe).toFixed(2)}`:he(a)}function Fo(a,e){switch(a){case"conversation_sessions":return e("dashboardConversationsMetric");case"ai_spend":return e("dashboardAiSpend");case"table_rows":return e("dashboardTableRows");case"vector_db_storage":return e("dashboardVectorDb");case"file_storage":return e("dashboardFileStorage");default:return a}}function yn(a){return a>=90?"critical":a>=75?"warning":"normal"}const xc=ar.NON_RESETTING_BILLING_FEATURE_IDS;function Ec(a){return!xc.includes(a)}function Ot(a){return a?Lo.flatMap(({key:e,label:t,unit:n})=>{const r=a[e];if(!r||r.quota<=0)return[];const o=r.usage??0,i=Math.max(0,Math.min(100,o/r.quota*100));return[{key:e,label:t,unit:n,used:o,quota:r.quota,remaining:Math.max(0,r.quota-o),pct:i,resets:Ec(e)}]}).sort((e,t)=>t.pct-e.pct):[]}const Mo="outgrow-free",Lc=.75,Fc=5;function Mc(a,e){return a.prices[e]??(e==="month"?a.prices.year:a.prices.month)??null}function Oc(a,e){var r,o;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const n=((o=a.prices.year)==null?void 0:o.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}const Uc=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",interval:r="year",planFeatures:o={},featureDescriptions:i,period:l})=>{var R,O;const{isOutdatedBilling:d,analytics:c,scope:u}=X(),{t:p}=pe(),{data:g}=Le(),{data:m}=Ue(),{data:v}=Qe(),{data:y}=Fe({enabled:!d}),{data:C}=Ta({period:l,enabled:!d}),N=a!==void 0,[_,I]=T.useState(!1),b=m==null?void 0:m.find(q=>q.id===(y==null?void 0:y.plan.current.planId)),A=y?b?ye(b)==="community":!0:!1,S=T.useMemo(()=>Ot(C).find(q=>q.key==="conversation_sessions"),[C]),D=!N&&!d&&A&&!!S&&S.pct/100>=Lc&&!_&&!xo(Mo,u,"modal"),w=N?!!a:D;T.useEffect(()=>{w&&c.capture(we.PLAN_PICKER_VIEWED,{source:N?"outgrow_free":"outgrow_free_auto",interval:r})},[w,N,c]);const z=()=>{N||(Eo(Mo,u,"modal"),I(!0)),e==null||e(!1)},x=T.useMemo(()=>m?m.filter(q=>{const W=ye(q);return W!=="community"&&W!=="enterprise"&&W!=="managed"}).sort((q,W)=>Ia.indexOf(ye(q))-Ia.indexOf(ye(W))):[],[m]),L=((O=(R=m==null?void 0:m.find(q=>ye(q)==="enterprise"))==null?void 0:R.metadata)==null?void 0:O.contact_url)??Ln;if(g===!1||d||!w)return null;const Z=(S==null?void 0:S.quota)??(b==null?void 0:b.features.conversation_sessions)??100,j=(S==null?void 0:S.used)??0,ee=S&&S.pct>0?Math.min(100,Math.max(5,Math.round(S.pct))):0;return s.jsx(xe,{open:w,onOpenChange:z,size:"xl","aria-label":p("outgrowTitle"),children:s.jsxs("div",{className:"bpb-outgrow",children:[s.jsxs("header",{className:"bpb-outgrow__head",children:[s.jsx("h2",{className:"bpb-outgrow__title",children:p("outgrowTitle")}),s.jsx("p",{className:"bpb-outgrow__lede",children:s.jsx(nt,{i18nKey:"outgrowLede",values:{quota:he(Z)},components:{bold:s.jsx("strong",{})}})})]}),s.jsxs("div",{className:"bpb-outgrow__usage",children:[s.jsx("span",{className:"bpb-outgrow__usage-label",children:p("outgrowSoFar")}),s.jsx("span",{className:"bpb-outgrow__usage-bar",role:"progressbar","aria-valuenow":ee,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("span",{className:"bpb-outgrow__usage-fill",style:{width:`${ee}%`}})}),s.jsx("span",{className:"bpb-outgrow__usage-text",children:s.jsx(nt,{i18nKey:"outgrowUsageText",values:{used:he(j),quota:he(Z)},components:{bold:s.jsx("strong",{})}})})]}),s.jsx("div",{className:"bpb-outgrow__grid",children:x.map((q,W)=>{const J=ye(q),E=Mc(q,r),ce=Oc(q,r),B=J===n||q.id===n,F=q.features.conversation_sessions,H=Qt(v,q,r),V=W>0?x[W-1]:void 0,Q=(o[J]??ut[J]).slice(0,Fc);return s.jsxs("div",{className:K("bpb-plan-card",B&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":q.id,children:[s.jsxs("div",{className:"bpb-plan-card__header",children:[s.jsxs("h3",{className:"bpb-plan-card__name",children:[be(q.name),B&&s.jsx(pt,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),s.jsx("div",{className:"bpb-plan-card__price",children:ce!==null&&E?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"bpb-plan-card__currency",children:lt(E.currency)}),s.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(ce)?ce:ce.toFixed(2).replace(/\.00$/,"")}),s.jsx("span",{className:"bpb-plan-card__per",children:p("perMonth")})]}):s.jsxs("span",{className:"bpb-plan-card__amount",children:[lt((E==null?void 0:E.currency)??"usd"),"0"]})})]}),F!==void 0&&s.jsxs("div",{className:"bpb-outgrow__allowance",children:[s.jsxs("p",{className:"bpb-outgrow__allowance-value",children:[s.jsxs("strong",{children:[he(F)," ",p("conversationsUnit")]})," ",p("perMonth")]}),s.jsx("p",{className:"bpb-outgrow__allowance-pack",children:H?p("outgrowThenPer",{symbol:lt(H.currency),amount:H.amount,packSize:he(H.packSize)}):p("outgrowNoTopup")})]}),s.jsxs(ve,{variant:B?"accent":"outline",block:!0,onClick:()=>{c.capture(we.PLAN_UPGRADE_INITIATED,{plan_name:be(q.name),interval:r,source:"outgrow_free"}),t(q.id,r),z()},children:[p("outgrowUpgradeTo",{planName:be(q.name)}),B&&s.jsx(Qn,{size:15})]}),s.jsxs("ul",{className:"bpb-plan-card__features",children:[V&&s.jsx("li",{className:"bpb-outgrow__features-lead",children:p("outgrowEverythingIn",{planName:be(V.name)})}),Q.map(Se=>{const Ce=tn(Se),se=ct[Se],Ae=se!==void 0?p(se.label):Se,fe=(i==null?void 0:i[Se])??(se!==void 0?p(se.desc):void 0);return s.jsxs("li",{children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(Ce,{size:13})}),fe?s.jsx(Mt,{label:Ae,children:fe}):s.jsx("span",{children:Ae})]},Se)})]})]},q.id)})}),s.jsxs("footer",{className:"bpb-outgrow__footer",children:[s.jsxs("span",{children:[p("outgrowNeedCustom")," ",s.jsx("a",{href:L,target:"_blank",rel:"noopener noreferrer",children:p("outgrowTalkToSales")})]}),s.jsxs("a",{className:"bpb-outgrow__compare",href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:[p("outgrowCompareAll"),s.jsx(ht,{size:14})]})]})]})})},ga=(a,e)=>e==="bytes"?Da(a):e==="nano-usd"?`$${(a/qe).toFixed(2)}`:he(a),Bc=(a,e)=>{const t=new Date;return Array.from({length:a},(n,r)=>{const o=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()-r,1));return{value:o.toISOString(),label:o.toLocaleDateString(e,{month:"long",year:"numeric",timeZone:"UTC"})}})},zc=({period:a})=>{const{data:e,isLoading:t,isError:n}=Pr("ai_spend",{period:a}),{t:r}=pe();if(n)return null;if(t)return s.jsx(ue,{height:96});if(!e||e.length===0)return s.jsx("p",{className:"bpb-usage__group-hint",children:r("dashboardNoBotSpend")});const o=Math.max(...e.map(i=>i.value),1);return s.jsx("div",{className:"bpb-usage-bots",children:e.map(i=>s.jsxs("div",{className:"bpb-usage-bot",children:[s.jsxs("div",{className:"bpb-usage-bot__head",children:[s.jsx("span",{className:"bpb-usage-bot__name",title:i.name,children:i.name}),s.jsx("span",{className:"bpb-usage-bot__value",children:ga(i.value,"nano-usd")})]}),s.jsx("div",{className:"bpb-usage-bar",role:"presentation",children:s.jsx("div",{className:"bpb-usage-bar__fill bpb-usage-bar__fill--normal",style:{width:`${i.value>0?Math.max(2,Math.round(i.value/o*100)):0}%`}})})]},i.botId))})},fr=({entry:a,metric:e,planAllowance:t,planName:n,stacked:r})=>{const{t:o}=pe(),i=a.quota>0?Math.min(a.usage??0,a.quota):a.usage??0,l=a.quota>0?Math.max(0,Math.min(100,Math.round(i/a.quota*100))):0,d=l>0?Math.max(5,l):0,c=l>=90?"critical":l>=75?"warning":"normal",u=t??a.quota,p=Math.max(0,a.quota-u),g=p>0?n?o("dashboardFromPlanWithAddons",{amount:ga(u,e.unit),planName:n,addonAmount:ga(p,e.unit)}):o("dashboardFromPlanGenericWithAddons",{amount:ga(u,e.unit),addonAmount:ga(p,e.unit)}):n?o("dashboardFromPlan",{amount:ga(a.quota,e.unit),planName:n}):o("dashboardFromPlanGeneric",{amount:ga(a.quota,e.unit)});return s.jsxs("div",{className:"bpb-usage-row",children:[s.jsxs("div",{className:K("bpb-usage-row__head",r&&"bpb-usage-row__head--stacked"),children:[s.jsx("span",{className:"bpb-usage-row__label",children:e.label}),s.jsxs("span",{className:"bpb-usage-row__value",children:[s.jsx("span",{className:"bpb-usage-row__used",children:ga(i,e.unit)}),s.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",ga(a.quota,e.unit)]})]})]}),s.jsxs("span",{className:"bpb-usage-tip",tabIndex:0,role:"note","aria-label":g,onMouseMove:m=>{const v=m.currentTarget.getBoundingClientRect(),y=(m.clientX-v.left)/v.width*100;m.currentTarget.style.setProperty("--bpb-tip-x",`${y}%`)},children:[s.jsx("div",{className:"bpb-usage-bar",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("div",{className:K("bpb-usage-bar__fill",`bpb-usage-bar__fill--${c}`),style:{width:`${d}%`}})}),s.jsx("span",{className:"bpb-usage-tip__bubble",role:"tooltip",children:g})]})]})},Vc=({period:a,showPeriodSelector:e=!0,periodMonths:t=12,className:n,onIncreaseLimits:r})=>{var Z;const{isOutdatedBilling:o,locale:i}=X(),{t:l}=pe(),d=T.useMemo(()=>Bc(t,i),[t,i]),[c,u]=T.useState(a??((Z=d[0])==null?void 0:Z.value)??""),p=Dr(),g=Math.max(0,d.findIndex(j=>j.value===c)),m=j=>{const ee=d[g+j];ee&&u(ee.value)},{data:v,isLoading:y,isError:C}=Ta({period:c,enabled:!o}),{data:N}=Fe({enabled:!o}),{data:_}=Ue(),I=_==null?void 0:_.find(j=>j.id===(N==null?void 0:N.plan.current.planId)),b=I?be(I.name):void 0,A=I?ye(I):"community",S=A==="enterprise"||A==="managed",D=j=>I==null?void 0:I.features[j];if(o)return s.jsx("div",{className:K("bpb-usage bpb-scope",n),children:s.jsx(pa,{})});if(y)return s.jsxs("div",{className:K("bpb-usage bpb-scope",n),"aria-busy":"true",children:[s.jsx(ue,{height:80}),s.jsx(ue,{height:140})]});if(C||!v)return s.jsx("div",{className:K("bpb-usage bpb-scope",n),children:s.jsx("p",{className:"bpb-usage__error",role:"alert",children:l("dashboardLoadError")})});const w=v.conversation_sessions,z=v.ai_spend,L=[{key:"table_rows",label:l("dashboardTableRows"),unit:"count"},{key:"vector_db_storage",label:l("dashboardVectorDb"),unit:"bytes"},{key:"file_storage",label:l("dashboardFileStorage"),unit:"bytes"}].filter(j=>v[j.key]);return s.jsxs("div",{className:K("bpb-usage bpb-scope",n),children:[S&&s.jsx("p",{className:"bpb-usage__enterprise-note",children:l("dashboardEnterpriseUsageNotice")}),(e&&d.length>1||r)&&s.jsxs("div",{className:"bpb-usage__header",children:[e&&d.length>1&&s.jsxs("div",{className:"bpb-usage__period",children:[s.jsx("span",{className:"bpb-usage__period-label",children:l("dashboardBillingPeriod")}),s.jsxs("div",{className:"bpb-usage__period-control",children:[s.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardPrevMonth"),onClick:()=>m(1),disabled:g>=d.length-1,children:s.jsx(Yn,{size:15})}),s.jsxs("span",{className:"bpb-usage__period-field",children:[s.jsx(Ks,{size:15,className:"bpb-usage__period-icon"}),s.jsx("select",{className:"bpb-usage__period-select","aria-label":l("dashboardBillingPeriod"),value:c,onChange:j=>u(j.target.value),children:d.map(j=>s.jsx("option",{value:j.value,children:j.label},j.value))}),s.jsx(Ea,{size:14,className:"bpb-usage__period-chevron"})]}),s.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":l("dashboardNextMonth"),onClick:()=>m(-1),disabled:g<=0,children:s.jsx(aa,{size:15})})]})]}),r&&s.jsxs(ve,{onClick:r,children:[s.jsx(Jn,{size:15}),l("dashboardIncreaseLimits")]})]}),w&&s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardConversationsTitle")}),s.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardConversationsHint")}),s.jsx("div",{className:"bpb-usage__card",children:s.jsx(fr,{entry:w,metric:{key:"conversation_sessions",label:l("dashboardConversationsMetric"),unit:"count"},planAllowance:D("conversation_sessions"),planName:b,stacked:!0})})]}),L.length>0&&s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardStorageTitle")}),s.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardStorageHint")}),s.jsx("div",{className:"bpb-usage__card",children:L.map(j=>s.jsx(fr,{entry:v[j.key],metric:j,planAllowance:D(j.key),planName:b},j.key))})]}),z&&s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:l("dashboardAiTitle")}),s.jsx("p",{className:"bpb-usage__group-hint",children:l("dashboardAiHint")}),s.jsx("div",{className:"bpb-usage__card",children:s.jsx(fr,{entry:z,metric:{key:"ai_spend",label:l("dashboardAiSpend"),unit:"nano-usd"},stacked:!0})}),p&&s.jsxs("div",{className:"bpb-usage__card bpb-usage__card--bots",children:[s.jsx("span",{className:"bpb-usage__subhead",children:l("dashboardAiByBot")}),s.jsx(zc,{period:c})]})]})]})},Oo="usage-banner",jc=({position:a="inline",threshold:e=.9,onUpgrade:t,dismissible:n=!0,cta:r="upgrade",ctaLabel:o,period:i,className:l})=>{const{isOutdatedBilling:d,analytics:c,scope:u}=X(),{t:p}=pe(),{data:g}=Ta({period:i,enabled:!d}),[m,v]=T.useState({}),[y,C]=T.useState(!1),[N,_]=T.useState(null),I=g?Object.entries(g).map(([L,Z])=>({key:L,pct:Z.quota>0?(Z.usage??0)/Z.quota:0})).filter(L=>L.pct>=e).sort((L,Z)=>Z.pct-L.pct)[0]:void 0,b=!!I&&(m[I.key]||xo(Oo,u,I.key));if(d||!I||b)return null;const S={conversation_sessions:p("metricConversations"),table_rows:p("metricTableRows"),vector_db_storage:p("metricVectorDb"),file_storage:p("metricFileStorage"),ai_spend:p("metricAiSpend"),bot_count:p("metricBotCount")}[I.key]??I.key.replace(/_/g," "),D=Math.min(100,Math.round(I.pct*100)),w=I.pct>=1,z=()=>{c.capture(we.UPGRADE_CTA_CLICKED,{source:"usage_banner",metric:I.key,usage_pct:Math.round(I.pct*100)}),t?t():C(!0)},x=w?"critical":"warning";return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:K("bpb-usage-banner bpb-scope",`bpb-usage-banner--${a}`,`bpb-usage-banner--${x}`,l),role:"alert","aria-live":"polite",children:[s.jsx(mt,{size:18,className:"bpb-usage-banner__icon"}),s.jsx("p",{className:"bpb-usage-banner__text",children:w?p("usageBannerLimitReached",{label:S}):p("usageBannerNearLimit",{pct:D,label:S})}),s.jsxs("div",{className:"bpb-usage-banner__actions",children:[s.jsx(ve,{variant:"primary",size:"sm",onClick:z,children:o??p(r==="manage"?"usageBannerManageCta":"usageBannerDefaultCta")}),n&&s.jsx("button",{type:"button",className:"bpb-usage-banner__dismiss","aria-label":p("usageBannerDismiss"),onClick:()=>{Eo(Oo,u,I.key),v(L=>({...L,[I.key]:!0}))},children:s.jsx(gt,{size:16})})]})]}),!t&&s.jsxs(s.Fragment,{children:[s.jsx(vo,{open:y,onOpenChange:C,onSelectPlan:(L,Z)=>{C(!1),_({planId:L,interval:Z})}}),N&&s.jsx(wo,{open:!!N,onOpenChange:L=>!L&&_(null),planId:N.planId,interval:N.interval,onBack:()=>{_(null),C(!0)},onSuccess:()=>_(null)})]})]})},qc=({Icon:a,title:e,description:t,onClick:n,className:r})=>s.jsxs("button",{type:"button",className:K("bpb-action-card bpb-scope",r),onClick:n,children:[s.jsxs("div",{className:"bpb-action-card__header",children:[s.jsx(a,{size:20}),e]}),s.jsx("p",{className:"bpb-action-card__description",children:t})]}),Ut=({children:a})=>s.jsx("span",{className:"bpb-summary-card__icon","aria-hidden":"true",children:a}),Uo=({isAddons:a,className:e})=>{const{manageBillingUrl:t}=X(),{t:n}=pe(),r=()=>t&&window.open(t,"_blank","noopener");return s.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-scope",a?"bpb-summary-card--addons":"bpb-summary-card--plan",e),onClick:r,disabled:!t,children:[s.jsx(Ut,{children:a?s.jsx(an,{size:22}):s.jsx(en,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n(a?"summaryAddonsEyebrow":"summaryCurrentPlan")}),s.jsx("span",{className:"bpb-summary-card__title",children:n("summaryManagedInDashboard")}),s.jsx("span",{className:"bpb-summary-card__meta",children:n("summaryManagedMeta")})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("open"),s.jsx(ht,{size:15})]})]})]})},Zc=({onManage:a,className:e})=>{var C,N;const{isOutdatedBilling:t}=X(),{t:n}=pe(),{data:r}=Le(),{data:o,isLoading:i}=Fe({enabled:!t}),{data:l,isLoading:d}=Ue();if(r===!1)return null;if(t)return s.jsx(Uo,{isAddons:!1,className:e});if(i||d)return s.jsx(ue,{height:84,rounded:!0,className:K("bpb-scope",e)});const c=o==null?void 0:o.plan.current,u=l==null?void 0:l.find(_=>_.id===(c==null?void 0:c.planId)),p=(c==null?void 0:c.interval)??"month",g=((C=u==null?void 0:u.prices[p])==null?void 0:C.amount)??0,m=((N=u==null?void 0:u.prices[p])==null?void 0:N.currency)??"usd",v=u==null?void 0:u.features.conversation_sessions,y=u?ye(u):"community";return s.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-summary-card--plan bpb-scope",`bpb-summary-card--tier-${y==="managed"?"enterprise":y}`,e),onClick:a,children:[s.jsx(Ut,{children:s.jsx(en,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("summaryCurrentPlan")}),s.jsx("span",{className:"bpb-summary-card__title",children:u?be(u.name):n("summaryNoPlan")}),s.jsxs("span",{className:"bpb-summary-card__meta",children:[g>0?`${ne(g,m,0)}${n(p==="year"?"perYear":"perMonth")}`:n("free"),v!==void 0&&` · ${n("summaryConversationsPerMo",{n:he(v)})}`]})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),s.jsx(aa,{size:16})]})]})]})},Wc=({onManage:a,className:e})=>{var I;const{isOutdatedBilling:t,locale:n}=X(),{t:r}=pe(),{data:o}=Le(),{data:i,isLoading:l}=Fe({enabled:!t}),{data:d,isLoading:c}=Qe(),{data:u}=Ue(),p=i==null?void 0:i.plan.current.planId,g=(i==null?void 0:i.plan.current.interval)??"month";if(o===!1)return null;if(t)return s.jsx(Uo,{isAddons:!0,className:e});if(l||c)return s.jsx(ue,{height:84,rounded:!0,className:K("bpb-scope",e)});const m=(d??[]).flatMap(b=>{var S;const A=((S=i==null?void 0:i.addons[b.id])==null?void 0:S.current.quantity)??0;return A>0?[{name:$e[b.id]?r($e[b.id]):xa(b.name),quantity:A}]:[]}),v=u==null?void 0:u.find(b=>b.id===p),y=v?(d??[]).reduce((b,A)=>{var D;const S=dt(A,v,g);return b+(((D=i==null?void 0:i.addons[A.id])==null?void 0:D.current.quantity)??0)*((S==null?void 0:S.amount)??0)},0):0,C=((I=v==null?void 0:v.prices[g])==null?void 0:I.currency)??"usd",N=je(mc(),n),_=!!(i!=null&&i.pendingUpgrade);return s.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-summary-card--addons bpb-scope",m.length>0&&"bpb-summary-card--active",e),onClick:a,disabled:_,title:_?r("pendingUpgradeBlocksManageTooltip"):void 0,children:[s.jsx(Ut,{children:s.jsx(an,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:r("summaryAddonsEyebrow")}),m.length>0?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"bpb-summary-card__title",children:m.length>1?r("summaryActiveAddons",{count:m.length}):r("summaryActiveAddon",{count:m.length})}),s.jsx("span",{className:"bpb-summary-card__meta",children:m.map(b=>`${b.quantity}× ${b.name}`).join(" · ")})]}):s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"bpb-summary-card__title",children:r("summaryNoAddons")}),s.jsx("span",{className:"bpb-summary-card__meta",children:r("summaryNoAddonsMeta")})]})]}),m.length>0&&y>0&&s.jsxs("span",{className:"bpb-summary-card__price",children:[s.jsxs("span",{className:"bpb-summary-card__price-amount",children:[ne(y,C,0),s.jsx("span",{className:"bpb-summary-card__price-suffix",children:r("perMonth")})]}),N&&s.jsx("span",{className:"bpb-summary-card__price-meta",children:r("planBannerRenews",{date:N})})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[r("manage"),s.jsx(aa,{size:16})]})]})]})},Gc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=X(),{t:n}=pe(),{data:r}=Le(),{data:o,isLoading:i,isError:l}=An({enabled:!t});if(r===!1||t)return null;if(i)return s.jsx(ue,{height:84,rounded:!0,className:K("bpb-scope",e)});if(l)return s.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-summary-card--auto-recharge bpb-summary-card--error bpb-scope",e),onClick:a,children:[s.jsx(Ut,{children:s.jsx(mt,{size:20})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("autoRechargeTitle")}),s.jsx("span",{className:"bpb-summary-card__title",children:n("autoRechargeSummaryLoadError")})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),s.jsx(aa,{size:16})]})]})]});const d=o==null?void 0:o.ai_spend,c=(d==null?void 0:d.enabled)??!1,u=(d==null?void 0:d.chunkSize)!=null,p=((d==null?void 0:d.chunkSize)??0)/qe,g=(d==null?void 0:d.maxAmount)!=null,m=((d==null?void 0:d.maxAmount)??0)/qe,v=c?u?g?n("autoRechargeSummaryMeta",{amount:ne(p,"usd",0),limit:ne(m,"usd",0)}):n("autoRechargeSummaryMetaNoLimit",{amount:ne(p,"usd",0)}):null:n("autoRechargeDescription");return s.jsxs("button",{type:"button",className:K("bpb-summary-card bpb-summary-card--auto-recharge bpb-scope",c&&"bpb-summary-card--active",e),onClick:a,children:[s.jsx(Ut,{children:s.jsx(Xt,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("autoRechargeTitle")}),s.jsx("span",{className:"bpb-summary-card__title",children:n(c?"autoRechargeSummaryOn":"autoRechargeSummaryOff")}),v&&s.jsx("span",{className:"bpb-summary-card__meta",children:v})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),s.jsx(aa,{size:16})]})]})]})},Kc=({onManage:a,className:e})=>{var W,J;const{isOutdatedBilling:t,locale:n,manageBillingUrl:r,analytics:o}=X(),{t:i}=pe(),{data:l}=Le(),{data:d,isLoading:c}=Fe({enabled:!t}),{data:u,isLoading:p}=Ue(),{data:g,isLoading:m}=Qe();if(l===!1)return null;if(t){const E=()=>r&&window.open(r,"_blank","noopener");return s.jsxs("button",{type:"button",className:K("bpb-plan-banner bpb-plan-banner--community bpb-scope",e),onClick:E,disabled:!r,children:[s.jsxs("div",{className:"bpb-plan-banner__main",children:[s.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),s.jsx("span",{className:"bpb-plan-banner__name",children:i("planBannerManagedTitle")}),s.jsx("span",{className:"bpb-plan-banner__sub",children:i("planBannerManagedSub")})]}),s.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("open")," ",s.jsx(ht,{size:16})]})]})}if(c||p||m)return s.jsx(ue,{height:132,rounded:!0,className:K("bpb-scope",e)});const v=d==null?void 0:d.plan.current,y=u==null?void 0:u.find(E=>E.id===(v==null?void 0:v.planId)),C=(v==null?void 0:v.interval)??"month",N=((W=y==null?void 0:y.prices[C])==null?void 0:W.currency)??"usd",_=y?ye(y):"community",I=Object.fromEntries(Object.entries((d==null?void 0:d.addons)??{}).map(([E,ce])=>{var B;return[E,((B=ce.current)==null?void 0:B.quantity)??0]})),b=((J=y==null?void 0:y.prices[C])==null?void 0:J.amount)??0,A=C==="year"?"/yr":"/mo",S=Ls(y,g,I).find(E=>E.key==="conversation_sessions"),D=i(_==="community"?"conversationsUnit":"conversationsPerMonth"),w=_==="enterprise"||_==="managed",z=_!=="community"&&!w,x=!!(d!=null&&d.pendingUpgrade),L=d==null?void 0:d.plan.next,Z=L&&L.planId!==(v==null?void 0:v.planId),j=v==null?void 0:v.periodEnd,ee=z&&!Z&&j&&!hr(j)?je(j,n):null,R=u==null?void 0:u.find(E=>E.id===(L==null?void 0:L.planId)),O=L==null?void 0:L.effectiveDate,q=Z&&R&&O?i("planBannerDowngradesTo",{plan:be(R.name),date:je(O,n)}):null;return s.jsxs("button",{type:"button",className:K("bpb-plan-banner",`bpb-plan-banner--${_}`,"bpb-scope",e),onClick:()=>{o.capture(we.UPGRADE_CTA_CLICKED,{source:"plan_banner",current_tier:_}),a()},disabled:x,title:x?i("pendingUpgradeBlocksManageTooltip"):void 0,children:[s.jsxs("div",{className:"bpb-plan-banner__main",children:[s.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),s.jsx("span",{className:"bpb-plan-banner__name",children:y?be(y.name):i("planBannerNoPlan")}),w?s.jsx("span",{className:"bpb-plan-banner__sub",children:S&&S.added>0?s.jsxs(s.Fragment,{children:[i("planBannerCustom")," + ",he(S.added)," ",D]}):i("planBannerCustomConversations")}):S&&s.jsx("span",{className:"bpb-plan-banner__sub",children:S.added>0?s.jsxs(s.Fragment,{children:[he(S.base)," + ",he(S.added)," ",D]}):`${he(S.total)} ${D}`})]}),s.jsxs("div",{className:"bpb-plan-banner__summary",children:[w?s.jsx("span",{className:"bpb-plan-banner__price",children:i("planBannerCustomPricing")}):s.jsx("span",{className:"bpb-plan-banner__price",children:b>0&&s.jsxs(s.Fragment,{children:[ne(b,N,0),s.jsx("span",{className:"bpb-plan-banner__price-suffix",children:A})]})}),z&&s.jsx("span",{className:"bpb-plan-banner__meta",children:i(C==="year"?"billedAnnually":"billedMonthly")}),ee&&s.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerRenews",{date:ee})}),q&&s.jsx("span",{className:"bpb-plan-banner__meta",children:q}),x&&s.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerPendingUpgradeNote")})]}),s.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("planBannerManageCta")," ",s.jsx(aa,{size:16})]})]})},$c=({onManage:a,period:e,variant:t="card",showHealthyEnterprise:n=!1,className:r,style:o})=>{const{isOutdatedBilling:i,locale:l}=X(),{t:d}=pe(),{data:c,isLoading:u}=Fe({enabled:!i}),{data:p,isLoading:g}=Ue(),{data:m,isLoading:v}=Ta({period:e,enabled:!i});if(i)return null;if(u||g||v)return s.jsx(ue,{height:72,rounded:!0,className:K("bpb-scope",r)});const y=p==null?void 0:p.find(q=>q.id===(c==null?void 0:c.plan.current.planId)),C=y?ye(y):"community",N=C==="enterprise"||C==="managed",_=Ot(m),I=_.find(q=>q.used>q.quota);if(N&&!I&&!n)return null;const b=_.find(q=>q.key==="conversation_sessions"),A=_[0],S=I??(A&&A.key!=="conversation_sessions"&&A.pct>=75?A:b??A),D=S?Math.round(S.pct):0,w=D>0?Math.max(5,D):0,z=S?yn(S.pct):"normal",x=z!=="normal",L=C==="community",Z=!L&&(S!=null&&S.resets)?je(Co(e??new Date().toISOString()),l):null;let j=null,ee=null;if(S&&x){const q=Xa(S.remaining,S.unit);j=d(z==="critical"?"usageWidgetLimitReached":"usageWidgetRunningLow"),N?ee=d("usageWidgetEnterpriseOverQuota"):L&&S.key==="conversation_sessions"?ee=z==="critical"?d("usageWidgetFreeExhausted"):d("usageWidgetFreeLeft",{left:q}):ee=z==="critical"?d("usageWidgetUpgradeToKeepGoing"):d("usageWidgetOnlyLeft",{left:q})}const R=s.jsx(s.Fragment,{children:S?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-plan-usage__head",children:[x&&s.jsx(mt,{size:16,className:K("bpb-plan-usage__alert",`bpb-plan-usage__alert--${z}`)}),s.jsx("span",{className:"bpb-plan-usage__plan",children:Fo(S.key,d)}),s.jsxs("span",{className:"bpb-plan-usage__count",children:[Xa(S.used,S.unit)," / ",Xa(S.quota,S.unit)]}),a&&!x&&s.jsx(aa,{size:15,className:"bpb-plan-usage__chevron"})]}),s.jsx("div",{className:"bpb-plan-usage__bar",role:"progressbar","aria-valuenow":D,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("div",{className:K("bpb-plan-usage__fill",`bpb-plan-usage__fill--${z}`),style:{width:`${w}%`}})}),j?s.jsxs("p",{className:"bpb-plan-usage__status",children:[s.jsxs("strong",{className:K("bpb-plan-usage__status-word",`bpb-plan-usage__status-word--${z}`),children:[j,"."]})," ",ee&&s.jsx("span",{className:"bpb-plan-usage__status-detail",children:ee})]}):Z&&s.jsx("span",{className:"bpb-plan-usage__reset",children:d("usageWidgetResets",{date:Z})}),a&&x&&!N&&s.jsxs("span",{className:"bpb-plan-usage__cta",children:[d("usageWidgetViewOptions"),s.jsx(Qn,{size:14})]})]}):s.jsxs("div",{className:"bpb-plan-usage__head",children:[s.jsx("span",{className:"bpb-plan-usage__plan",children:y?be(y.name):d("free")}),a&&s.jsx(aa,{size:15,className:"bpb-plan-usage__chevron"})]})}),O=K("bpb-plan-usage bpb-scope",`bpb-plan-usage--${t}`,x&&`bpb-plan-usage--${z}`,a&&"bpb-plan-usage--clickable",r);return a?s.jsx("button",{type:"button",className:O,style:o,onClick:a,children:R}):s.jsx("div",{className:O,style:o,children:R})},Bo=({children:a,delay:e=200,placement:t="top",align:n="center",period:r,onUpgrade:o,block:i=!1,className:l})=>{var q,W;const{isOutdatedBilling:d,locale:c}=X(),{t:u}=pe(),{data:p}=Ta({period:r,enabled:!d}),{data:g}=Fe({enabled:!d}),{data:m}=Ue(),{data:v}=Qe(),[y,C]=T.useState(!1),N=T.useRef(null),_=()=>{N.current&&(clearTimeout(N.current),N.current=null)};T.useEffect(()=>_,[]);const I=m==null?void 0:m.find(J=>J.id===(g==null?void 0:g.plan.current.planId)),b=I?ye(I):"community",A=Ot(p),S=!d&&A.length>0,D=()=>{S&&(_(),N.current=setTimeout(()=>C(!0),Math.max(0,e)))},w=()=>{_(),C(!1)},z=I?be(I.name):u("free"),x=b==="community",L=x?A.find(J=>J.key==="conversation_sessions"):void 0,Z=x?m==null?void 0:m.find(J=>ye(J)==="plus"):void 0,j=Z==null?void 0:Z.features.conversation_sessions,ee=(W=(q=$n(v))==null?void 0:q.increments)==null?void 0:W.conversation_sessions,R=x&&!!o&&!!j&&!!ee,O=je(Co(r??new Date().toISOString()),c);return s.jsxs("span",{className:K("bpb-usage-pop bpb-scope",i&&"bpb-usage-pop--block",l),onMouseEnter:D,onMouseLeave:w,onFocus:D,onBlur:w,children:[a,y&&S&&s.jsxs("span",{className:K("bpb-usage-pop__card",`bpb-usage-pop__card--${t}`,`bpb-usage-pop__card--align-${n}`),role:"tooltip",children:[x?s.jsxs("span",{className:"bpb-usage-pop__header",children:[s.jsx("span",{className:"bpb-usage-pop__plan",children:u("usagePopoverFreeTitle")}),L&&s.jsx("span",{className:"bpb-usage-pop__subtitle",children:s.jsx(nt,{i18nKey:"usagePopoverFreeSubtitle",values:{quota:he(L.quota)},components:{bold:s.jsx("strong",{})}})})]}):s.jsx(s.Fragment,{children:s.jsxs("span",{className:"flex flex-col gap-1 bpb-usage-pop__title",children:[s.jsx("span",{className:"bpb-usage-pop__plan",children:u("usagePopoverPlanName",{planName:z})}),s.jsx("span",{className:"bpb-usage-pop__period",children:u("usagePopoverTitle",{date:O})})]})}),A.map(J=>{const E=J.pct>0?Math.max(5,J.pct):0;return s.jsxs("span",{className:"bpb-usage-pop__item",children:[s.jsxs("span",{className:"bpb-usage-pop__head",children:[s.jsx("span",{className:"bpb-usage-pop__name",children:Fo(J.key,u)}),s.jsxs("span",{className:"bpb-usage-pop__val",children:[Xa(J.used,J.unit)," / ",Xa(J.quota,J.unit)]})]}),s.jsx("span",{className:"bpb-usage-pop__bar",children:s.jsx("span",{className:K("bpb-usage-pop__fill",`bpb-usage-pop__fill--${yn(J.pct)}`),style:{width:`${E}%`}})})]},J.key)}),R&&s.jsx("span",{className:"bpb-usage-pop__nudge",children:s.jsx("span",{className:"bpb-usage-pop__nudge-text",children:s.jsx(nt,{i18nKey:"usagePopoverNudgeText",values:{quota:he(j??0),packSize:he(ee??0)},components:{bold:s.jsx("strong",{})}})})})]})]})},Rc=({size:a=20,thickness:e=3.5,showLabel:t=!1,onClick:n,popoverDelay:r=200,popoverAlign:o="center",trackColor:i="light",period:l,className:d,...c})=>{const{isOutdatedBilling:u}=X(),{data:p}=Ta({period:l,enabled:!u}),g=Ot(p);if(u||g.length===0)return null;const m=g[0],v=yn(m.pct),y=m.pct>0?Math.max(5,m.pct):0,C=(a-e)/2,N=2*Math.PI*C,_=N*(1-y/100),I=c["aria-label"]??`${Math.round(m.pct)}% of your ${m.label.toLowerCase()} used`,b=s.jsxs(s.Fragment,{children:[s.jsxs("svg",{className:"bpb-usage-ring__svg",width:a,height:a,viewBox:`0 0 ${a} ${a}`,"aria-hidden":!0,children:[s.jsx("circle",{className:K("bpb-usage-ring__track",`bpb-usage-ring__track--${i}`),cx:a/2,cy:a/2,r:C,fill:"none",strokeWidth:e}),s.jsx("circle",{className:K("bpb-usage-ring__arc",`bpb-usage-ring__arc--${v}`),cx:a/2,cy:a/2,r:C,fill:"none",strokeWidth:e,strokeLinecap:"round",strokeDasharray:N,strokeDashoffset:_,transform:`rotate(-90 ${a/2} ${a/2})`})]}),t&&s.jsxs("span",{className:"bpb-usage-ring__label",children:[Math.round(m.pct),"%"]})]}),A=K("bpb-usage-ring",n&&"bpb-usage-ring--clickable"),S=n?s.jsx("button",{type:"button",className:A,onClick:n,"aria-label":I,children:b}):s.jsx("span",{className:A,tabIndex:0,role:"img","aria-label":I,children:b});return s.jsx(Bo,{delay:r,align:o,period:l,className:d,children:S})},zo=({checked:a,onChange:e,disabled:t,className:n,...r})=>s.jsx("button",{type:"button",role:"switch","aria-checked":a,"aria-label":r["aria-label"],disabled:t,className:K("bpb-switch",a&&"bpb-switch--checked",n),onClick:()=>e(!a),children:s.jsx("span",{className:"bpb-switch__thumb"})}),Vo="ai_spend",Hc=1,Yc=5,yr=a=>(a??0)/qe,vr=a=>Math.round(a*qe),Jc=a=>Number.isInteger(a)&&a>=Hc,Qc=a=>Number.isInteger(a)&&a>=Yc,Xc=(a,e)=>Number.isInteger(a)&&a>=0&&e>0&&a%e===0,eu=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=X(),{t:o}=pe(),{data:i}=Le();return i===!1?null:r?s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":o("autoRechargeTitle"),className:"bpb-scope",children:s.jsx(pa,{})}):s.jsx(xe,{open:a,onOpenChange:e,size:"md","aria-label":o("autoRechargeTitle"),className:"bpb-scope",children:s.jsx(au,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},au=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{const{toast:n,analytics:r}=X(),{t:o}=pe(),{data:i,isLoading:l,isError:d,refetch:c}=Fe(),{data:u,isLoading:p,isError:g,refetch:m}=Ue(),{data:v,isLoading:y,isError:C,refetch:N}=An(),_=Ar(),[I,b]=T.useState(null),[A,S]=T.useState(!1),[D,w]=T.useState(!1),[z,x]=T.useState(!1),L=l||p||y,Z=d||g||C,j=()=>{c(),m(),N()},ee=u==null?void 0:u.find(fe=>fe.id===(i==null?void 0:i.plan.current.planId)),R=i?ee?ye(ee)==="community":!0:!1,O=v==null?void 0:v[Vo],q=T.useMemo(()=>{const fe=(O==null?void 0:O.maxAmount)!=null,oe=(O==null?void 0:O.targetType)==="credit_grant"&&(O==null?void 0:O.thresholdType)==="remaining_amount"?O==null?void 0:O.threshold:null;return{thresholdInput:oe!=null?String(Math.round(yr(oe))):"",chunkInput:(O==null?void 0:O.chunkSize)!=null?String(Math.round(yr(O.chunkSize))):"",limitInput:(O==null?void 0:O.maxAmount)!=null?String(Math.round(yr(O.maxAmount))):"",hasLimit:fe}},[O]),W=I??q,J=fe=>b({...W,...fe}),E=Number(W.thresholdInput),ce=Number(W.chunkInput),B=Number(W.limitInput),F=W.thresholdInput.trim()!==""&&Jc(E),H=Qc(ce),V=!W.hasLimit||W.limitInput.trim()!==""&&Xc(B,ce),Q=A&&!F,Se=D&&!H,Ce=z&&!V,se=W.thresholdInput!==q.thresholdInput||W.chunkInput!==q.chunkInput||W.limitInput!==q.limitInput||W.hasLimit!==q.hasLimit,Ae=()=>{_.mutate({settings:{[Vo]:{targetType:"credit_grant",thresholdType:"remaining_amount",threshold:vr(E),chunkSize:vr(ce),maxAmount:W.hasLimit?vr(B):null}}},{onSuccess:()=>{n({type:"success",message:o("autoRechargeUpdateSuccess")}),r.capture(we.AUTO_RECHARGE_UPDATED),b(null),a(!1),e==null||e()},onError:()=>n({type:"error",message:o("autoRechargeUpdateError")})})};return s.jsxs("div",{className:"bpb-auto-recharge-dialog",children:[s.jsx("h2",{className:"bpb-auto-recharge-dialog__title",children:o("autoRechargeTitle")}),s.jsx("p",{className:"bpb-auto-recharge-dialog__subtitle",children:o("autoRechargeDescription")}),L?s.jsxs("div",{className:"bpb-auto-recharge-dialog__loading","aria-busy":"true",children:[s.jsx(ue,{height:40}),s.jsx(ue,{height:72})]}):Z?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-auto-recharge-dialog__error",role:"alert",children:[s.jsx("span",{className:"bpb-auto-recharge-dialog__error-icon","aria-hidden":"true",children:s.jsx(mt,{size:18})}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__error-text",children:[s.jsx("p",{className:"bpb-auto-recharge-dialog__error-title",children:o("autoRechargeLoadErrorTitle")}),s.jsx("p",{className:"bpb-auto-recharge-dialog__error-body",children:o("autoRechargeLoadError")})]})]}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__actions",children:[s.jsx(ve,{variant:"outline",onClick:()=>a(!1),children:o("close")}),s.jsx(ve,{variant:"primary",onClick:j,children:o("tryAgain")})]})]}):R?s.jsx(Io,{title:o("autoRechargeRequiresPaidPlanTitle"),body:o("autoRechargeRequiresPaidPlanBody"),ctaLabel:o("autoRechargeUpgradeCta"),onUpgrade:t?()=>{a(!1),t()}:void 0,onClose:()=>a(!1)}):s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[s.jsxs("div",{className:K("bpb-auto-recharge-dialog__panel",Q&&"bpb-auto-recharge-dialog__panel--invalid"),children:[s.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-threshold",children:o("autoRechargeThresholdLabel")}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[s.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),s.jsx("input",{id:"auto-recharge-threshold",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:_.isPending,value:W.thresholdInput,onChange:fe=>{J({thresholdInput:fe.target.value}),S(!0)}})]})]}),s.jsx("span",{className:K("bpb-auto-recharge-dialog__hint",Q&&"bpb-auto-recharge-dialog__hint--error"),children:o(Q?"autoRechargeThresholdError":"autoRechargeThresholdHint")})]}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[s.jsxs("div",{className:K("bpb-auto-recharge-dialog__panel",Se&&"bpb-auto-recharge-dialog__panel--invalid"),children:[s.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-chunk",children:o("autoRechargeChunkLabel")}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[s.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),s.jsx("input",{id:"auto-recharge-chunk",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:_.isPending,value:W.chunkInput,onChange:fe=>{J({chunkInput:fe.target.value}),w(!0)}})]})]}),s.jsx("span",{className:K("bpb-auto-recharge-dialog__hint",Se&&"bpb-auto-recharge-dialog__hint--error"),children:o(Se?"autoRechargeChunkError":"autoRechargeChunkHint")})]}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[s.jsxs("div",{className:"bpb-auto-recharge-dialog__panel bpb-auto-recharge-dialog__panel--switch",children:[s.jsxs("div",{className:"bpb-auto-recharge-dialog__row-text",children:[s.jsx("span",{className:"bpb-auto-recharge-dialog__row-label",children:o("autoRechargeSetLimitLabel")}),s.jsx("span",{className:"bpb-auto-recharge-dialog__row-description",children:o("autoRechargeSetLimitHint")})]}),s.jsx(zo,{"aria-label":o("autoRechargeSetLimitLabel"),checked:W.hasLimit,onChange:fe=>J({hasLimit:fe}),disabled:_.isPending})]}),!W.hasLimit&&s.jsx("span",{className:"bpb-auto-recharge-dialog__hint",children:o("autoRechargeNoCapHint")})]}),s.jsx("div",{className:K("bpb-auto-recharge-dialog__collapse",W.hasLimit&&"bpb-auto-recharge-dialog__collapse--open"),children:s.jsx("div",{className:"bpb-auto-recharge-dialog__collapse-inner",children:s.jsxs("div",{className:"bpb-auto-recharge-dialog__row",children:[s.jsxs("div",{className:K("bpb-auto-recharge-dialog__panel",Ce&&"bpb-auto-recharge-dialog__panel--invalid"),children:[s.jsx("label",{className:"bpb-auto-recharge-dialog__amount-label",htmlFor:"auto-recharge-limit",children:o("autoRechargeLimitLabel")}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__amount-value",children:[s.jsx("span",{className:"bpb-auto-recharge-dialog__currency",children:"$"}),s.jsx("input",{id:"auto-recharge-limit",className:"bpb-auto-recharge-dialog__amount-input",type:"number",inputMode:"numeric",disabled:_.isPending,value:W.limitInput,onChange:fe=>{J({limitInput:fe.target.value}),x(!0)}})]})]}),s.jsx("span",{className:K("bpb-auto-recharge-dialog__hint",Ce&&"bpb-auto-recharge-dialog__hint--error"),children:Ce?o("autoRechargeLimitError",{amount:ne(ce,"usd",0)}):o("autoRechargeLimitHint",{amount:ne(ce,"usd",0)})})]})})}),!(O!=null&&O.enabled)&&(O==null?void 0:O.disabledReason)&&s.jsx("p",{className:"bpb-auto-recharge-dialog__disabled-note",role:"alert",children:o("autoRechargeDisabledReason",{reason:O.disabledReason})}),s.jsxs("div",{className:"bpb-auto-recharge-dialog__actions",children:[s.jsx(ve,{variant:"outline",onClick:()=>a(!1),disabled:_.isPending,children:o("cancel")}),s.jsx(ve,{variant:"primary",disabled:!se||!F||!H||!V,loading:_.isPending,onClick:Ae,children:o("save")})]})]})]})};k.AddonsSummaryCard=Wc,k.AgentsIcon=Vs,k.ArrowRightIcon=Qn,k.AutoRechargeDialog=eu,k.AutoRechargeSummaryCard=Gc,k.BILLING_EVENTS=we,k.Badge=pt,k.BankIcon=Kl,k.BillingActionCard=qc,k.BillingProvider=Yi,k.BoltIcon=an,k.Button=ve,k.CalendarIcon=Ks,k.CancellationSurveyDialog=fo,k.CardBrandBadge=er,k.CardIcon=Hn,k.ChartIcon=qs,k.CheckIcon=Ms,k.CheckoutDialog=wo,k.ChevronDownIcon=Ea,k.ChevronLeftIcon=Yn,k.ChevronRightIcon=aa,k.CloseIcon=gt,k.DEFAULT_FEATURE_LABELS=Ps,k.DEFAULT_PLAN_FEATURES=ut,k.Dialog=xe,k.DownloadIcon=Xn,k.ENTERPRISE_CONTACT_URL=Ln,k.ExternalLinkIcon=ht,k.GlobeIcon=Zs,k.InboxIcon=Us,k.InfinityIcon=zs,k.InfoTooltip=Mt,k.Input=fn,k.InvoicesDialog=Ic,k.LayersIcon=en,k.LockIcon=$l,k.ManageAddonsDialog=kc,k.MessageIcon=Os,k.MinusIcon=Gs,k.NANO_DOLLARS_PER_DOLLAR=qe,k.OutdatedBillingGate=pa,k.OutgrowFreeDialog=Uc,k.PLAN_FEATURE_KEYS=ct,k.PLAN_ORDER=Ia,k.PaintIcon=Ws,k.PaymentMethodDialog=Pc,k.PendingUpgradeBanner=Tc,k.PendingUpgradeDialog=Ao,k.PlanBanner=Kc,k.PlanSummaryCard=Zc,k.PlanUsageWidget=$c,k.PlusIcon=Jn,k.PuzzleIcon=Bs,k.ReceiptIcon=Hl,k.SegmentedControl=yo,k.Select=br,k.ShieldIcon=Rn,k.Skeleton=ue,k.SparkleIcon=Xt,k.Stepper=To,k.Switch=zo,k.USAGE_METRICS=Lo,k.UpgradePlanDialog=vo,k.UsageBanner=jc,k.UsageDashboard=Vc,k.UsagePopover=Bo,k.UsageRing=Rc,k.UsersIcon=js,k.addDays=As,k.addonDisplayName=xa,k.addonLimitsPreview=Es,k.addonPrice=dt,k.billingKeys=ke,k.cn=K,k.conversationPackPrice=Qt,k.conversationsAddon=$n,k.currencySymbol=lt,k.featureLabel=Wl,k.formatBytes=Da,k.formatCurrency=ne,k.formatDate=je,k.formatDateTime=Is,k.formatQuantity=he,k.formatUsage=Xa,k.getCardElementStyle=pr,k.getStripeAppearance=ur,k.getStripePromise=Tr,k.iconForFeature=tn,k.isLegacyBillingVersion=ss,k.planDisplayName=be,k.planEntitlements=Ls,k.planKind=ye,k.toStripeLocale=gr,k.usageItems=Ot,k.usageTier=yn,k.useAddons=Qe,k.useAutoRechargeSettings=An,k.useBilling=X,k.useBillingReadonly=In,k.useCancelPendingSubscriptionUpgrade=Fr,k.useCreatePaymentMethodIntent=Pn,k.useCustomer=Tn,k.useHasPendingUpgrade=zt,k.useInvoices=Ir,k.useIsAuthorized=Le,k.usePayInvoice=Lr,k.usePaymentMethod=wn,k.usePlans=Ue,k.useSaveCancellationFeedback=Er,k.useSetAddons=xr,k.useSetAutoRechargeSettings=Ar,k.useSetCustomer=xn,k.useSetPaymentMethod=Dn,k.useSetSubscription=En,k.useSubscription=Fe,k.useSubscriptionPreview=kn,k.useSupportsUsageByBot=Dr,k.useUsage=Ta,k.useUsageByBot=Pr,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(T,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("react/jsx-runtime"),require("@tanstack/react-query"),require("react"),require("@stripe/stripe-js"),require("react-dom"),require("@stripe/react-stripe-js")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@tanstack/react-query","react","@stripe/stripe-js","react-dom","@stripe/react-stripe-js"],s):(T=typeof globalThis<"u"?globalThis:T||self,s(T.BillingUI={},T.ReactJsxRuntime,T.ReactQuery,T.React,T.StripeJs,T.ReactDOM,T.ReactStripeJs))})(this,function(T,s,ge,I,$o,Ho,je){"use strict";var vu=Object.defineProperty;var _u=(T,s,ge)=>s in T?vu(T,s,{enumerable:!0,configurable:!0,writable:!0,value:ge}):T[s]=ge;var Ko=(T,s,ge)=>_u(T,typeof s!="symbol"?s+"":s,ge);const Ir=new Map;function Ar(a){let e=Ir.get(a);return e||(e=$o.loadStripe(a,{developerTools:{assistant:{enabled:!1}}}),Ir.set(a,e)),e}const Pn=a=>!!a&&!a.enabled&&a.disabledReason==="payment_failed",he={root:a=>["bpb",a],plans:a=>["bpb",a,"plans"],addons:a=>["bpb",a,"addons"],subscription:a=>["bpb",a,"subscription"],preview:(a,e)=>["bpb",a,"preview",e],paymentMethod:a=>["bpb",a,"payment-method"],customer:a=>["bpb",a,"customer"],invoices:a=>["bpb",a,"invoices"],readonly:a=>["bpb",a,"billing-readonly"],isAuthorized:a=>["bpb",a,"is-authorized"],autoRecharge:a=>["bpb",a,"auto-recharge"],usages:(a,e)=>["bpb",a,"usages",e],bots:a=>["bpb",a,"bots"],creditGrants:a=>["bpb",a,"credit-grants","paged"],usageByBot:(a,e,t)=>["bpb",a,"usage-by-bot",e,t]},Ro=["billing","manager","administrator","owner"];function Le(a){const{client:e,refetchInterval:t,queryClient:n,scope:r}=Y();return ge.useQuery({queryKey:he.isAuthorized(r),queryFn:async()=>{const o=await e.getWorkspaceMember({});return Ro.includes(o.role)},enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:t},n)}function ca(a=!0){const{data:e}=Le();return a&&e===!0}function Be(){const{client:a,queryClient:e,scope:t}=Y();return ge.useQuery({queryKey:he.plans(t),queryFn:()=>a.listPlans({})},e)}function Xe(){const{client:a,queryClient:e,scope:t}=Y();return ge.useQuery({queryKey:he.addons(t),queryFn:()=>a.listAddons({})},e)}function Fe(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=Y();return ge.useQuery({queryKey:he.subscription(n),queryFn:()=>e.getSubscription({}),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function st(a){const{data:e}=Fe(a);return!!(e!=null&&e.pendingUpgrade)}function Yo(a){const e=st(a),{data:t}=jt(a);return e||Object.values(t??{}).some(Pn)}function En(a,e){const{client:t,queryClient:n,scope:r}=Y(),o=ca(e==null?void 0:e.enabled);return ge.useQuery({queryKey:he.preview(r,a),queryFn:()=>t.previewSubscriptionUpdate(a),enabled:o},n)}function Vt(a){const{client:e,queryClient:t,scope:n}=Y(),r=ca(a==null?void 0:a.enabled);return ge.useQuery({queryKey:he.paymentMethod(n),queryFn:()=>e.getPaymentMethod({}),enabled:r},t)}function xn(a){const{client:e,queryClient:t,scope:n}=Y(),r=ca(a==null?void 0:a.enabled);return ge.useQuery({queryKey:he.customer(n),queryFn:()=>e.getCustomer({}),enabled:r},t)}function Pr(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=Y(),o=ca(a==null?void 0:a.enabled);return ge.useQuery({queryKey:he.invoices(n),queryFn:()=>e.listInvoices({}),enabled:o,refetchInterval:r},t)}function Jo(a){const{client:e,queryClient:t,scope:n}=Y(),r=ca(!!a);return ge.useQuery({queryKey:["bpb",n,"pending-invoice",a],queryFn:async()=>{let o;for(let i=0;i<20;i++){const{invoices:d,meta:l}=await e.listInvoices({nextToken:o}),c=d.find(u=>u.id===a);if(c)return c;if(!l.nextToken)return null;o=l.nextToken}return null},enabled:r},t)}function Dn(a){const{client:e,queryClient:t,scope:n}=Y(),r=ca(a==null?void 0:a.enabled);return ge.useQuery({queryKey:he.readonly(n),queryFn:()=>e.getBillingReadonly({}),enabled:r},t)}function jt(a){const{client:e,queryClient:t,scope:n}=Y(),r=ca(a==null?void 0:a.enabled);return ge.useQuery({queryKey:he.autoRecharge(n),queryFn:()=>e.getAutoRechargeSettings({}).then(o=>o.settings),enabled:r},t)}function Er(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Y();return ge.useMutation({mutationFn:r=>a.setAutoRechargeSettings(r).then(o=>o.settings),onSuccess:async r=>{e.setQueryData(he.autoRecharge(t),r),n({type:"auto-recharge"})}},e)}function wa(a){const{client:e,queryClient:t,scope:n,refetchInterval:r}=Y(),o=a!=null&&a.period?new Date(a.period):new Date,i=`${o.getUTCFullYear()}-${String(o.getUTCMonth()+1).padStart(2,"0")}`;return ge.useQuery({queryKey:he.usages(n,i),queryFn:()=>e.getWorkspaceUsages({period:`${i}-01T00:00:00.000Z`}).then(d=>d.quotas),enabled:(a==null?void 0:a.enabled)??!0,refetchInterval:r},t)}function xr(a,e){const{client:t,queryClient:n,scope:r,refetchInterval:o}=Y(),i=ca(e==null?void 0:e.enabled),d=t.breakDownWorkspaceUsageByBot,l=t.listBots,c=typeof d=="function"&&typeof l=="function",u=e!=null&&e.period?new Date(e.period):new Date,p=`${u.getUTCFullYear()}-${String(u.getUTCMonth()+1).padStart(2,"0")}`;return ge.useQuery({queryKey:he.usageByBot(r,a,p),queryFn:async()=>{const[m,g]=await Promise.all([d({id:r,type:a,period:`${p}-01T00:00:00.000Z`}),l({})]),_=new Map(g.bots.map(b=>[b.id,b.name]));return m.data.map(b=>({botId:b.botId,name:_.get(b.botId)??b.botId,value:b.value})).sort((b,h)=>h.value-b.value)},enabled:c&&i,refetchInterval:o},n)}function Dr(){const{client:a}=Y();return typeof a.breakDownWorkspaceUsageByBot=="function"&&typeof a.listBots=="function"}const Qo=5;function Xo(a){const{client:e,queryClient:t,scope:n}=Y(),r=ca(a==null?void 0:a.enabled);return ge.useInfiniteQuery({queryKey:he.creditGrants(n),queryFn:({pageParam:o})=>e.listCreditGrants({nextToken:o,pageSize:Qo}),initialPageParam:void 0,getNextPageParam:o=>o.meta.nextToken,enabled:r,refetchInterval:!1},t)}function ei(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Y();return ge.useMutation({mutationFn:r=>a.createCreditGrant({...r,feature:"ai_spend"}),onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:he.creditGrants(t)}),e.invalidateQueries({queryKey:he.invoices(t)}),e.invalidateQueries({queryKey:[...he.root(t),"usages"]})]),await new Promise(r=>setTimeout(r,1e3)),await e.invalidateQueries({queryKey:he.autoRecharge(t)}),n({type:"credit-grant"})}},e)}function Ln(){const{client:a,queryClient:e}=Y();return ge.useMutation({mutationFn:()=>a.createPaymentMethodIntent({})},e)}function Fn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Y();return ge.useMutation({mutationFn:r=>a.setPaymentMethod(r),onSuccess:async()=>{await e.invalidateQueries({queryKey:he.paymentMethod(t)}),n({type:"payment-method"})}},e)}function Mn(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Y();return ge.useMutation({mutationFn:r=>a.setCustomer(r),onSuccess:async(r,o)=>{await e.invalidateQueries({queryKey:he.customer(t)}),o.address&&n({type:"billing-address"})}},e)}function Lr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Y();return ge.useMutation({mutationFn:r=>a.setAddons(r),onSuccess:async r=>{e.setQueryData(he.subscription(t),r),await Promise.all([e.invalidateQueries({queryKey:he.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:r.pendingUpgrade?"pending-upgrade":"addons"})}},e)}function Un(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Y();return ge.useMutation({mutationFn:async r=>{const o=await a.setPlan({planId:r.planId,interval:r.interval,couponCode:r.couponCode});return r.addons&&Object.keys(r.addons).length>0?await a.setAddons({addons:r.addons,couponCode:r.couponCode}):o},onSuccess:async r=>{e.setQueryData(he.subscription(t),r),await Promise.all([e.invalidateQueries({queryKey:he.plans(t)}),e.invalidateQueries({queryKey:he.invoices(t)}),e.invalidateQueries({queryKey:["bpb",t,"preview"]})]),n({type:r.pendingUpgrade?"pending-upgrade":"subscription"})}},e)}function Fr(){const{client:a,queryClient:e,scope:t}=Y();return ge.useMutation({mutationFn:async n=>{t!=="default"&&await a.saveWorkspaceCancellationReasons({id:t,reasons:[n.reason],comment:n.comment})}},e)}function Mr(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Y();return ge.useMutation({mutationFn:r=>a.payInvoice(r),onSuccess:async()=>{await new Promise(r=>setTimeout(r,1e3)),await Promise.all([e.invalidateQueries({queryKey:he.subscription(t)}),e.invalidateQueries({queryKey:he.invoices(t)})]),n({type:"pending-upgrade"})}},e)}function Ur(){const{client:a,queryClient:e,scope:t,notifyBillingChange:n}=Y();return ge.useMutation({mutationFn:async()=>{await a.cancelPendingSubscriptionUpgrade({})},onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:he.subscription(t)}),e.invalidateQueries({queryKey:he.invoices(t)})]),n({type:"pending-upgrade"})}},e)}const Ia=["community","plus","team","enterprise","managed"],ai=["community","plus","team","enterprise","managed"];function ve(a){var n;const e=a.name.toLowerCase();if(e.includes("community")||e.includes("pay-as-you-go")||e.includes("free"))return"community";if(e.includes("plus"))return"plus";if(e.includes("team"))return"team";if(e.includes("managed"))return"managed";if(e.includes("enterprise"))return"enterprise";const t=(n=a.metadata)==null?void 0:n.legacyName;return ai.find(r=>r===t)??"community"}const On="https://botpress.com/contact-us/managed-plan",ti={capture:()=>{}},Or=(a,e)=>({...a!==void 0&&{workspace_billing_version:a},...e&&{workspace_plan:e,workspace_is_paid:e!=="community"}});function ni({analytics:a,client:e,queryClient:t,scope:n,billingVersion:r,isOutdatedBilling:o}){const i=!!a&&r!==void 0&&!o,{data:d}=ge.useQuery({queryKey:he.subscription(n),queryFn:()=>e.getSubscription({}),enabled:i},t),{data:l}=ge.useQuery({queryKey:he.plans(n),queryFn:()=>e.listPlans({}),enabled:i},t),c=l==null?void 0:l.find(m=>m.id===(d==null?void 0:d.plan.current.planId)),u=!o&&c?ve(c):void 0,p=I.useRef(Or(r,u));return I.useEffect(()=>{p.current=Or(r,u)},[r,u]),I.useMemo(()=>a?{capture:(m,g)=>a.capture(m,{...p.current,...g})}:ti,[a])}var be=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ri(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var si={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 oi=ri(si);var ii=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function Br(a){var e={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=a.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(e.name=t[1],(oi[t[1]]||a.charAt(a.length-2)==="/")&&(e.voidElement=!0),e.name.startsWith("!--"))){var n=a.indexOf("-->");return{type:"comment",comment:n!==-1?a.slice(4,n):""}}for(var r=new RegExp(ii),o=null;(o=r.exec(a))!==null;)if(o[0].trim())if(o[1]){var i=o[1].trim(),d=[i,""];i.indexOf("=")>-1&&(d=i.split("=")),e.attrs[d[0]]=d[1],r.lastIndex--}else o[2]&&(e.attrs[o[2]]=o[3].trim().substring(1,o[3].length-1));return e}var di=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,li=/^\s*$/,ci=Object.create(null);function zr(a,e){switch(e.type){case"text":return a+e.content;case"tag":return a+="<"+e.name+(e.attrs?function(t){var n=[];for(var r in t)n.push(r+'="'+t[r]+'"');return n.length?" "+n.join(" "):""}(e.attrs):"")+(e.voidElement?"/>":">"),e.voidElement?a:a+e.children.reduce(zr,"")+"</"+e.name+">";case"comment":return a+"<!--"+e.comment+"-->"}}var ui={parse:function(a,e){e||(e={}),e.components||(e.components=ci);var t,n=[],r=[],o=-1,i=!1;if(a.indexOf("<")!==0){var d=a.indexOf("<");n.push({type:"text",content:d===-1?a:a.substring(0,d)})}return a.replace(di,function(l,c){if(i){if(l!=="</"+t.name+">")return;i=!1}var u,p=l.charAt(1)!=="/",m=l.startsWith("<!--"),g=c+l.length,_=a.charAt(g);if(m){var b=Br(l);return o<0?(n.push(b),n):((u=r[o]).children.push(b),n)}if(p&&(o++,(t=Br(l)).type==="tag"&&e.components[t.name]&&(t.type="component",i=!0),t.voidElement||i||!_||_==="<"||t.children.push({type:"text",content:a.slice(g,a.indexOf("<",g))}),o===0&&n.push(t),(u=r[o-1])&&u.children.push(t),r[o]=t),(!p||t.voidElement)&&(o>-1&&(t.voidElement||t.name===l.slice(2,-1))&&(o--,t=o===-1?n:r[o]),!i&&_!=="<"&&_)){u=o===-1?n:r[o].children;var h=a.indexOf("<",g),k=a.slice(g,h===-1?void 0:h);li.test(k)&&(k=" "),(h>-1&&o+u.length>=0||k!==" ")&&u.push({type:"text",content:k})}}),n},stringify:function(a){return a.reduce(function(e,t){return e+zr("",t)},"")}};function qt(){if(console&&console.warn){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];qe(e[0])&&(e[0]=`react-i18next:: ${e[0]}`),console.warn(...e)}}const Vr={};function Zt(){for(var a=arguments.length,e=new Array(a),t=0;t<a;t++)e[t]=arguments[t];qe(e[0])&&Vr[e[0]]||(qe(e[0])&&(Vr[e[0]]=new Date),qt(...e))}const jr=(a,e)=>()=>{if(a.isInitialized)e();else{const t=()=>{setTimeout(()=>{a.off("initialized",t)},0),e()};a.on("initialized",t)}},qr=(a,e,t)=>{a.loadNamespaces(e,jr(a,t))},Zr=(a,e,t,n)=>{qe(t)&&(t=[t]),t.forEach(r=>{a.options.ns.indexOf(r)<0&&a.options.ns.push(r)}),a.loadLanguages(e,jr(a,n))},pi=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=e.languages[0],r=e.options?e.options.fallbackLng:!1,o=e.languages[e.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(d,l)=>{const c=e.services.backendConnector.state[`${d}|${l}`];return c===-1||c===2};return t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!i(e.isLanguageChangingTo,a)?!1:!!(e.hasResourceBundle(n,a)||!e.services.backendConnector.backend||e.options.resources&&!e.options.partialBundledLanguages||i(n,a)&&(!r||i(o,a)))},mi=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(Zt("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}}):pi(a,e,t)},qe=a=>typeof a=="string",Va=a=>typeof a=="object"&&a!==null,gi=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,hi={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},bi=a=>hi[a];let Bn={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:a=>a.replace(gi,bi)};const fi=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Bn={...Bn,...a}},Wr=()=>Bn;let Gr;const yi=a=>{Gr=a},zn=()=>Gr,Vn=(a,e)=>{if(!a)return!1;const t=a.props?a.props.children:a.children;return e?t.length>0:!!t},jn=a=>{if(!a)return[];const e=a.props?a.props.children:a.children;return a.props&&a.props.i18nIsDynamicList?ja(e):e},vi=a=>Array.isArray(a)&&a.every(I.isValidElement),ja=a=>Array.isArray(a)?a:[a],_i=(a,e)=>{const t={...e};return t.props=Object.assign(a.props,e.props),t},Kr=(a,e)=>{if(!a)return"";let t="";const n=ja(a),r=e.transSupportBasicHtmlNodes&&e.transKeepBasicHtmlNodesFor?e.transKeepBasicHtmlNodesFor:[];return n.forEach((o,i)=>{if(qe(o))t+=`${o}`;else if(I.isValidElement(o)){const{props:d,type:l}=o,c=Object.keys(d).length,u=r.indexOf(l)>-1,p=d.children;if(!p&&u&&!c)t+=`<${l}/>`;else if(!p&&(!u||c)||d.i18nIsDynamicList)t+=`<${i}></${i}>`;else if(u&&c===1&&qe(p))t+=`<${l}>${p}</${l}>`;else{const m=Kr(p,e);t+=`<${i}>${m}</${i}>`}}else if(o===null)qt("Trans: the passed in value is invalid - seems you passed in a null child.");else if(Va(o)){const{format:d,...l}=o,c=Object.keys(l);if(c.length===1){const u=d?`${c[0]}, ${d}`:c[0];t+=`{{${u}}}`}else qt("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",o)}else qt("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},Ci=(a,e,t,n,r,o)=>{if(e==="")return[];const i=n.transKeepBasicHtmlNodesFor||[],d=e&&new RegExp(i.map(h=>`<${h}`).join("|")).test(e);if(!a&&!d&&!o)return[e];const l={},c=h=>{ja(h).forEach(C=>{qe(C)||(Vn(C)?c(jn(C)):Va(C)&&!I.isValidElement(C)&&Object.assign(l,C))})};c(a);const u=ui.parse(`<0>${e}</0>`),p={...l,...r},m=(h,k,C)=>{const w=jn(h),v=_(w,k.children,C);return vi(w)&&v.length===0||h.props&&h.props.i18nIsDynamicList?w:v},g=(h,k,C,w,v)=>{h.dummy?(h.children=k,C.push(I.cloneElement(h,{key:w},v?void 0:k))):C.push(...I.Children.map([h],P=>{const N={...P.props};return delete N.i18nIsDynamicList,I.createElement(P.type,{...N,key:w,ref:P.ref},v?null:k)}))},_=(h,k,C)=>{const w=ja(h);return ja(k).reduce((P,N,A)=>{const S=N.children&&N.children[0]&&N.children[0].content&&t.services.interpolator.interpolate(N.children[0].content,p,t.language);if(N.type==="tag"){let M=w[parseInt(N.name,10)];C.length===1&&!M&&(M=C[0][N.name]),M||(M={});const E=Object.keys(N.attrs).length!==0?_i({props:N.attrs},M):M,L=I.isValidElement(E),V=L&&Vn(N,!0)&&!N.voidElement,z=d&&Va(E)&&E.dummy&&!L,Q=Va(a)&&Object.hasOwnProperty.call(a,N.name);if(qe(E)){const j=t.services.interpolator.interpolate(E,p,t.language);P.push(j)}else if(Vn(E)||V){const j=m(E,N,C);g(E,j,P,A)}else if(z){const j=_(w,N.children,C);g(E,j,P,A)}else if(Number.isNaN(parseFloat(N.name)))if(Q){const j=m(E,N,C);g(E,j,P,A,N.voidElement)}else if(n.transSupportBasicHtmlNodes&&i.indexOf(N.name)>-1)if(N.voidElement)P.push(I.createElement(N.name,{key:`${N.name}-${A}`}));else{const j=_(w,N.children,C);P.push(I.createElement(N.name,{key:`${N.name}-${A}`},j))}else if(N.voidElement)P.push(`<${N.name} />`);else{const j=_(w,N.children,C);P.push(`<${N.name}>${j}</${N.name}>`)}else if(Va(E)&&!L){const j=N.children[0]?S:null;j&&P.push(j)}else g(E,S,P,A,N.children.length!==1||!S)}else if(N.type==="text"){const M=n.transWrapTextNodes,E=o?n.unescape(t.services.interpolator.interpolate(N.content,p,t.language)):t.services.interpolator.interpolate(N.content,p,t.language);M?P.push(I.createElement(M,{key:`${N.name}-${A}`},E)):P.push(E)}return P},[])},b=_([{dummy:!0,children:a||[]}],u,ja(a||[]));return jn(b[0])};function Si(a){let{children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:i={},values:d,defaults:l,components:c,ns:u,i18n:p,t:m,shouldUnescape:g,..._}=a;const b=p||zn();if(!b)return Zt("You will need to pass in an i18next instance by using i18nextReactModule"),e;const h=m||b.t.bind(b)||(V=>V),k={...Wr(),...b.options&&b.options.react};let C=u||h.ns||b.options&&b.options.defaultNS;C=qe(C)?[C]:C||["translation"];const w=Kr(e,k),v=l||w||k.transEmptyNodeValue||r,{hashTransKey:P}=k,N=r||(P?P(w||v):w||v);b.options&&b.options.interpolation&&b.options.interpolation.defaultVariables&&(d=d&&Object.keys(d).length>0?{...d,...b.options.interpolation.defaultVariables}:{...b.options.interpolation.defaultVariables});const A=d||t!==void 0||!e?i.interpolation:{interpolation:{...i.interpolation,prefix:"#$?",suffix:"?$#"}},S={...i,context:o||i.context,count:t,...d,...A,defaultValue:v,ns:C},M=N?h(N,S):v;c&&Object.keys(c).forEach(V=>{const z=c[V];if(typeof z.type=="function"||!z.props||!z.props.children||M.indexOf(`${V}/>`)<0&&M.indexOf(`${V} />`)<0)return;function Q(){return I.createElement(I.Fragment,null,z)}c[V]=I.createElement(Q)});const E=Ci(c||e,M,b,k,S,g),L=n!==void 0?n:k.defaultTransParent;return L?I.createElement(L,_,E):E}const Ni={type:"3rdParty",init(a){fi(a.options.react),yi(a)}},qn=I.createContext();class ki{constructor(){Ko(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}}function ot(a){let{children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:i={},values:d,defaults:l,components:c,ns:u,i18n:p,t:m,shouldUnescape:g,..._}=a;const{i18n:b,defaultNS:h}=I.useContext(qn)||{},k=p||b||zn(),C=m||k&&k.t.bind(k);return Si({children:e,count:t,parent:n,i18nKey:r,context:o,tOptions:i,values:d,defaults:l,components:c,ns:u||C&&C.ns||h||k&&k.options&&k.options.defaultNS,i18n:k,t:m,shouldUnescape:g,..._})}const Ti=(a,e)=>{const t=I.useRef();return I.useEffect(()=>{t.current=a},[a,e]),t.current},$r=(a,e,t,n)=>a.getFixedT(e,t,n),wi=(a,e,t,n)=>I.useCallback($r(a,e,t,n),[a,e,t,n]),se=function(a){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:n,defaultNS:r}=I.useContext(qn)||{},o=t||n||zn();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new ki),!o){Zt("You will need to pass in an i18next instance by using initReactI18next");const v=(N,A)=>qe(A)?A:Va(A)&&qe(A.defaultValue)?A.defaultValue:Array.isArray(N)?N[N.length-1]:N,P=[v,{},!1];return P.t=v,P.i18n={},P.ready=!1,P}o.options.react&&o.options.react.wait!==void 0&&Zt("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const i={...Wr(),...o.options.react,...e},{useSuspense:d,keyPrefix:l}=i;let c=r||o.options&&o.options.defaultNS;c=qe(c)?[c]:c||["translation"],o.reportNamespaces.addUsedNamespaces&&o.reportNamespaces.addUsedNamespaces(c);const u=(o.isInitialized||o.initializedStoreOnce)&&c.every(v=>mi(v,o,i)),p=wi(o,e.lng||null,i.nsMode==="fallback"?c:c[0],l),m=()=>p,g=()=>$r(o,e.lng||null,i.nsMode==="fallback"?c:c[0],l),[_,b]=I.useState(m);let h=c.join();e.lng&&(h=`${e.lng}${h}`);const k=Ti(h),C=I.useRef(!0);I.useEffect(()=>{const{bindI18n:v,bindI18nStore:P}=i;C.current=!0,!u&&!d&&(e.lng?Zr(o,e.lng,c,()=>{C.current&&b(g)}):qr(o,c,()=>{C.current&&b(g)})),u&&k&&k!==h&&C.current&&b(g);const N=()=>{C.current&&b(g)};return v&&o&&o.on(v,N),P&&o&&o.store.on(P,N),()=>{C.current=!1,v&&o&&v.split(" ").forEach(A=>o.off(A,N)),P&&o&&P.split(" ").forEach(A=>o.store.off(A,N))}},[o,h]),I.useEffect(()=>{C.current&&u&&b(m)},[o,l,u]);const w=[_,o,u];if(w.t=_,w.i18n=o,w.ready=u,u||!u&&!d)return w;throw new Promise(v=>{e.lng?Zr(o,e.lng,c,()=>v()):qr(o,c,()=>v())})};function Ii(a){let{i18n:e,defaultNS:t,children:n}=a;const r=I.useMemo(()=>({i18n:e,defaultNS:t}),[e,t]);return I.createElement(qn.Provider,{value:r},n)}const te=a=>typeof a=="string",it=()=>{let a,e;const t=new Promise((n,r)=>{a=n,e=r});return t.resolve=a,t.reject=e,t},Hr=a=>a==null?"":""+a,Ai=(a,e,t)=>{a.forEach(n=>{e[n]&&(t[n]=e[n])})},Pi=/###/g,Rr=a=>a&&a.indexOf("###")>-1?a.replace(Pi,"."):a,Yr=a=>!a||te(a),dt=(a,e,t)=>{const n=te(e)?e.split("."):e;let r=0;for(;r<n.length-1;){if(Yr(a))return{};const o=Rr(n[r]);!a[o]&&t&&(a[o]=new t),Object.prototype.hasOwnProperty.call(a,o)?a=a[o]:a={},++r}return Yr(a)?{}:{obj:a,k:Rr(n[r])}},Jr=(a,e,t)=>{const{obj:n,k:r}=dt(a,e,Object);if(n!==void 0||e.length===1){n[r]=t;return}let o=e[e.length-1],i=e.slice(0,e.length-1),d=dt(a,i,Object);for(;d.obj===void 0&&i.length;)o=`${i[i.length-1]}.${o}`,i=i.slice(0,i.length-1),d=dt(a,i,Object),d&&d.obj&&typeof d.obj[`${d.k}.${o}`]<"u"&&(d.obj=void 0);d.obj[`${d.k}.${o}`]=t},Ei=(a,e,t,n)=>{const{obj:r,k:o}=dt(a,e,Object);r[o]=r[o]||[],r[o].push(t)},Wt=(a,e)=>{const{obj:t,k:n}=dt(a,e);if(t)return t[n]},xi=(a,e,t)=>{const n=Wt(a,t);return n!==void 0?n:Wt(e,t)},Qr=(a,e,t)=>{for(const n in e)n!=="__proto__"&&n!=="constructor"&&(n in a?te(a[n])||a[n]instanceof String||te(e[n])||e[n]instanceof String?t&&(a[n]=e[n]):Qr(a[n],e[n],t):a[n]=e[n]);return a},qa=a=>a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var Di={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const Li=a=>te(a)?a.replace(/[&<>"'\/]/g,e=>Di[e]):a;class Fi{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(t!==void 0)return t;const n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}}const Mi=[" ",",","?","!",";"],Ui=new Fi(20),Oi=(a,e,t)=>{e=e||"",t=t||"";const n=Mi.filter(i=>e.indexOf(i)<0&&t.indexOf(i)<0);if(n.length===0)return!0;const r=Ui.getRegExp(`(${n.map(i=>i==="?"?"\\?":i).join("|")})`);let o=!r.test(a);if(!o){const i=a.indexOf(t);i>0&&!r.test(a.substring(0,i))&&(o=!0)}return o},Zn=function(a,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!a)return;if(a[e])return a[e];const n=e.split(t);let r=a;for(let o=0;o<n.length;){if(!r||typeof r!="object")return;let i,d="";for(let l=o;l<n.length;++l)if(l!==o&&(d+=t),d+=n[l],i=r[d],i!==void 0){if(["string","number","boolean"].indexOf(typeof i)>-1&&l<n.length-1)continue;o+=l-o+1;break}r=i}return r},Gt=a=>a&&a.replace("_","-"),Bi={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 Kt{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||Bi,this.options=t,this.debug=t.debug}log(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}warn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}error(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}deprecate(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,n,r){return r&&!this.debug?null:(te(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new Kt(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new Kt(this.logger,e)}}var ea=new Kt;class $t{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(n=>{this.observers[n]||(this.observers[n]=new Map);const r=this.observers[n].get(t)||0;this.observers[n].set(t,r+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this.observers[e]&&Array.from(this.observers[e].entries()).forEach(i=>{let[d,l]=i;for(let c=0;c<l;c++)d(...n)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(i=>{let[d,l]=i;for(let c=0;c<l;c++)d.apply(d,[e,...n])})}}class Xr extends $t{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,i=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let d;e.indexOf(".")>-1?d=e.split("."):(d=[e,t],n&&(Array.isArray(n)?d.push(...n):te(n)&&o?d.push(...n.split(o)):d.push(n)));const l=Wt(this.data,d);return!l&&!t&&!n&&e.indexOf(".")>-1&&(e=d[0],t=d[1],n=d.slice(2).join(".")),l||!i||!te(n)?l:Zn(this.data&&this.data[e]&&this.data[e][t],n,o)}addResource(e,t,n,r){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const i=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator;let d=[e,t];n&&(d=d.concat(i?n.split(i):n)),e.indexOf(".")>-1&&(d=e.split("."),r=t,t=d[1]),this.addNamespaces(t),Jr(this.data,d,r),o.silent||this.emit("added",e,t,n,r)}addResources(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const o in n)(te(n[o])||Array.isArray(n[o]))&&this.addResource(e,t,o,n[o],{silent:!0});r.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,r,o){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},d=[e,t];e.indexOf(".")>-1&&(d=e.split("."),r=n,n=t,t=d[1]),this.addNamespaces(t);let l=Wt(this.data,d)||{};i.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?Qr(l,n,o):l={...l,...n},Jr(this.data,d,l),i.silent||this.emit("added",e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(e,t)}:this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(r=>t[r]&&Object.keys(t[r]).length>0)}toJSON(){return this.data}}var es={processors:{},addPostProcessor(a){this.processors[a.name]=a},handle(a,e,t,n,r){return a.forEach(o=>{this.processors[o]&&(e=this.processors[o].process(e,t,n,r))}),e}};const as={};class Ht extends $t{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),Ai(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=ea.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(e==null)return!1;const n=this.resolve(e,t);return n&&n.res!==void 0}extractFromKey(e,t){let n=t.nsSeparator!==void 0?t.nsSeparator:this.options.nsSeparator;n===void 0&&(n=":");const r=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let o=t.ns||this.options.defaultNS||[];const i=n&&e.indexOf(n)>-1,d=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!Oi(e,n,r);if(i&&!d){const l=e.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:e,namespaces:te(o)?[o]:o};const c=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(c[0])>-1)&&(o=c.shift()),e=c.join(r)}return{key:e,namespaces:te(o)?[o]:o}}translate(e,t,n){if(typeof t!="object"&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),typeof t=="object"&&(t={...t}),t||(t={}),e==null)return"";Array.isArray(e)||(e=[String(e)]);const r=t.returnDetails!==void 0?t.returnDetails:this.options.returnDetails,o=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator,{key:i,namespaces:d}=this.extractFromKey(e[e.length-1],t),l=d[d.length-1],c=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(c&&c.toLowerCase()==="cimode"){if(u){const v=t.nsSeparator||this.options.nsSeparator;return r?{res:`${l}${v}${i}`,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:l,usedParams:this.getUsedParamsDetails(t)}:`${l}${v}${i}`}return r?{res:i,usedKey:i,exactUsedKey:i,usedLng:c,usedNS:l,usedParams:this.getUsedParamsDetails(t)}:i}const p=this.resolve(e,t);let m=p&&p.res;const g=p&&p.usedKey||i,_=p&&p.exactUsedKey||i,b=Object.prototype.toString.apply(m),h=["[object Number]","[object Function]","[object RegExp]"],k=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,C=!this.i18nFormat||this.i18nFormat.handleAsObject,w=!te(m)&&typeof m!="boolean"&&typeof m!="number";if(C&&m&&w&&h.indexOf(b)<0&&!(te(k)&&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 v=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,m,{...t,ns:d}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(p.res=v,p.usedParams=this.getUsedParamsDetails(t),p):v}if(o){const v=Array.isArray(m),P=v?[]:{},N=v?_:g;for(const A in m)if(Object.prototype.hasOwnProperty.call(m,A)){const S=`${N}${o}${A}`;P[A]=this.translate(S,{...t,joinArrays:!1,ns:d}),P[A]===S&&(P[A]=m[A])}m=P}}else if(C&&te(k)&&Array.isArray(m))m=m.join(k),m&&(m=this.extendTranslation(m,e,t,n));else{let v=!1,P=!1;const N=t.count!==void 0&&!te(t.count),A=Ht.hasDefaultValue(t),S=N?this.pluralResolver.getSuffix(c,t.count,t):"",M=t.ordinal&&N?this.pluralResolver.getSuffix(c,t.count,{ordinal:!1}):"",E=N&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),L=E&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${S}`]||t[`defaultValue${M}`]||t.defaultValue;!this.isValidLookup(m)&&A&&(v=!0,m=L),this.isValidLookup(m)||(P=!0,m=i);const z=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&P?void 0:m,Q=A&&L!==m&&this.options.updateMissing;if(P||v||Q){if(this.logger.log(Q?"updateKey":"missingKey",c,l,i,Q?L:m),o){const G=this.resolve(i,{...t,keySeparator:!1});G&&G.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 j=[];const R=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&R&&R[0])for(let G=0;G<R.length;G++)j.push(R[G]);else this.options.saveMissingTo==="all"?j=this.languageUtils.toResolveHierarchy(t.lng||this.language):j.push(t.lng||this.language);const q=(G,X,x)=>{const me=A&&x!==m?x:z;this.options.missingKeyHandler?this.options.missingKeyHandler(G,l,X,me,Q,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(G,l,X,me,Q,t),this.emit("missingKey",G,l,X,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&N?j.forEach(G=>{const X=this.pluralResolver.getSuffixes(G,t);E&&t[`defaultValue${this.options.pluralSeparator}zero`]&&X.indexOf(`${this.options.pluralSeparator}zero`)<0&&X.push(`${this.options.pluralSeparator}zero`),X.forEach(x=>{q([G],i+x,t[`defaultValue${x}`]||L)})}):q(j,i,L))}m=this.extendTranslation(m,e,t,p,n),P&&m===i&&this.options.appendNamespaceToMissingKey&&(m=`${l}:${i}`),(P||v)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${i}`:i,v?m:void 0):m=this.options.parseMissingKeyHandler(m))}return r?(p.res=m,p.usedParams=this.getUsedParamsDetails(t),p):m}extendTranslation(e,t,n,r,o){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const c=te(e)&&(n&&n.interpolation&&n.interpolation.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let u;if(c){const m=e.match(this.interpolator.nestingRegexp);u=m&&m.length}let p=n.replace&&!te(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(p={...this.options.interpolation.defaultVariables,...p}),e=this.interpolator.interpolate(e,p,n.lng||this.language||r.usedLng,n),c){const m=e.match(this.interpolator.nestingRegexp),g=m&&m.length;u<g&&(n.nest=!1)}!n.lng&&this.options.compatibilityAPI!=="v1"&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,function(){for(var m=arguments.length,g=new Array(m),_=0;_<m;_++)g[_]=arguments[_];return o&&o[0]===g[0]&&!n.context?(i.logger.warn(`It seems you are nesting recursively key: ${g[0]} in key: ${t[0]}`),null):i.translate(...g,t)},n)),n.interpolation&&this.interpolator.reset()}const d=n.postProcess||this.options.postProcess,l=te(d)?[d]:d;return e!=null&&l&&l.length&&n.applyPostProcessor!==!1&&(e=es.handle(l,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n,r,o,i,d;return te(e)&&(e=[e]),e.forEach(l=>{if(this.isValidLookup(n))return;const c=this.extractFromKey(l,t),u=c.key;r=u;let p=c.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const m=t.count!==void 0&&!te(t.count),g=m&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),_=t.context!==void 0&&(te(t.context)||typeof t.context=="number")&&t.context!=="",b=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);p.forEach(h=>{this.isValidLookup(n)||(d=h,!as[`${b[0]}-${h}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(d)&&(as[`${b[0]}-${h}`]=!0,this.logger.warn(`key "${r}" for languages "${b.join(", ")}" won't get resolved as namespace "${d}" 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!!!")),b.forEach(k=>{if(this.isValidLookup(n))return;i=k;const C=[u];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(C,u,k,h,t);else{let v;m&&(v=this.pluralResolver.getSuffix(k,t.count,t));const P=`${this.options.pluralSeparator}zero`,N=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(m&&(C.push(u+v),t.ordinal&&v.indexOf(N)===0&&C.push(u+v.replace(N,this.options.pluralSeparator)),g&&C.push(u+P)),_){const A=`${u}${this.options.contextSeparator}${t.context}`;C.push(A),m&&(C.push(A+v),t.ordinal&&v.indexOf(N)===0&&C.push(A+v.replace(N,this.options.pluralSeparator)),g&&C.push(A+P))}}let w;for(;w=C.pop();)this.isValidLookup(n)||(o=w,n=this.getResource(k,h,w,t))}))})}),{res:n,usedKey:r,exactUsedKey:o,usedLng:i,usedNS:d}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=e.replace&&!te(e.replace);let r=n?e.replace:e;if(n&&typeof e.count<"u"&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(const o of t)delete r[o]}return r}static hasDefaultValue(e){const t="defaultValue";for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&e[n]!==void 0)return!0;return!1}}const Wn=a=>a.charAt(0).toUpperCase()+a.slice(1);class ts{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=ea.create("languageUtils")}getScriptPartFromCode(e){if(e=Gt(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=Gt(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(te(e)&&e.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let r=Intl.getCanonicalLocales(e)[0];if(r&&this.options.lowerCaseLng&&(r=r.toLowerCase()),r)return r}catch{}const t=["hans","hant","latn","cyrl","cans","mong","arab"];let n=e.split("-");return this.options.lowerCaseLng?n=n.map(r=>r.toLowerCase()):n.length===2?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=Wn(n[1].toLowerCase()))):n.length===3&&(n[0]=n[0].toLowerCase(),n[1].length===2&&(n[1]=n[1].toUpperCase()),n[0]!=="sgn"&&n[2].length===2&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=Wn(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=Wn(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(n=>{if(t)return;const r=this.formatLanguageCode(n);(!this.options.supportedLngs||this.isSupportedCode(r))&&(t=r)}),!t&&this.options.supportedLngs&&e.forEach(n=>{if(t)return;const r=this.getLanguagePartFromCode(n);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(o=>{if(o===r)return o;if(!(o.indexOf("-")<0&&r.indexOf("-")<0)&&(o.indexOf("-")>0&&r.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===r||o.indexOf(r)===0&&r.length>1))return o})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),te(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}toResolveHierarchy(e,t){const n=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],o=i=>{i&&(this.isSupportedCode(i)?r.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return te(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(e))):te(e)&&o(this.formatLanguageCode(e)),n.forEach(i=>{r.indexOf(i)<0&&o(this.formatLanguageCode(i))}),r}}let zi=[{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}],Vi={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 ji=["v1","v2","v3"],qi=["v4"],ns={zero:0,one:1,two:2,few:3,many:4,other:5},Zi=()=>{const a={};return zi.forEach(e=>{e.lngs.forEach(t=>{a[t]={numbers:e.nr,plurals:Vi[e.fc]}})}),a};class Wi{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=ea.create("pluralResolver"),(!this.options.compatibilityJSON||qi.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=Zi(),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi()){const n=Gt(e==="dev"?"en":e),r=t.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:n,type:r});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];let i;try{i=new Intl.PluralRules(n,{type:r})}catch{if(!e.match(/-|_/))return;const l=this.languageUtils.getLanguagePartFromCode(e);i=this.getRule(l,t)}return this.pluralRulesCache[o]=i,i}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}getPluralFormsOfKey(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(e,n).map(r=>`${t}${r}`)}getSuffixes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=this.getRule(e,t);return n?this.shouldUseIntlApi()?n.resolvedOptions().pluralCategories.sort((r,o)=>ns[r]-ns[o]).map(r=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${r}`):n.numbers.map(r=>this.getSuffix(e,r,t)):[]}getSuffix(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=this.getRule(e,n);return r?this.shouldUseIntlApi()?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r.select(t)}`:this.getSuffixRetroCompatible(r,t):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,t){const n=e.noAbs?e.plurals(t):e.plurals(Math.abs(t));let r=e.numbers[n];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(r===2?r="plural":r===1&&(r=""));const o=()=>this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString();return this.options.compatibilityJSON==="v1"?r===1?"":typeof r=="number"?`_plural_${r.toString()}`:o():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?o():this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString()}shouldUseIntlApi(){return!ji.includes(this.options.compatibilityJSON)}}const rs=function(a,e,t){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=xi(a,e,t);return!o&&r&&te(t)&&(o=Zn(a,t,n),o===void 0&&(o=Zn(e,t,n))),o},Gn=a=>a.replace(/\$/g,"$$$$");class Gi{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=ea.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(t=>t),this.init(e)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:o,prefixEscaped:i,suffix:d,suffixEscaped:l,formatSeparator:c,unescapeSuffix:u,unescapePrefix:p,nestingPrefix:m,nestingPrefixEscaped:g,nestingSuffix:_,nestingSuffixEscaped:b,nestingOptionsSeparator:h,maxReplaces:k,alwaysFormat:C}=e.interpolation;this.escape=t!==void 0?t:Li,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=o?qa(o):i||"{{",this.suffix=d?qa(d):l||"}}",this.formatSeparator=c||",",this.unescapePrefix=u?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=m?qa(m):g||qa("$t("),this.nestingSuffix=_?qa(_):b||qa(")"),this.nestingOptionsSeparator=h||",",this.maxReplaces=k||1e3,this.alwaysFormat=C!==void 0?C:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,n)=>t&&t.source===n?(t.lastIndex=0,t):new RegExp(n,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let o,i,d;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=g=>{if(g.indexOf(this.formatSeparator)<0){const k=rs(t,l,g,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(k,void 0,n,{...r,...t,interpolationkey:g}):k}const _=g.split(this.formatSeparator),b=_.shift().trim(),h=_.join(this.formatSeparator).trim();return this.format(rs(t,l,b,this.options.keySeparator,this.options.ignoreJSONStructure),h,n,{...r,...t,interpolationkey:b})};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:g=>Gn(g)},{regex:this.regexp,safeValue:g=>this.escapeValue?Gn(this.escape(g)):Gn(g)}].forEach(g=>{for(d=0;o=g.regex.exec(e);){const _=o[1].trim();if(i=c(_),i===void 0)if(typeof u=="function"){const h=u(e,o,r);i=te(h)?h:""}else if(r&&Object.prototype.hasOwnProperty.call(r,_))i="";else if(p){i=o[0];continue}else this.logger.warn(`missed to pass in variable ${_} for interpolating ${e}`),i="";else!te(i)&&!this.useRawValueToEscape&&(i=Hr(i));const b=g.safeValue(i);if(e=e.replace(o[0],b),p?(g.regex.lastIndex+=i.length,g.regex.lastIndex-=o[0].length):g.regex.lastIndex=0,d++,d>=this.maxReplaces)break}}),e}nest(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,o,i;const d=(l,c)=>{const u=this.nestingOptionsSeparator;if(l.indexOf(u)<0)return l;const p=l.split(new RegExp(`${u}[ ]*{`));let m=`{${p[1]}`;l=p[0],m=this.interpolate(m,i);const g=m.match(/'/g),_=m.match(/"/g);(g&&g.length%2===0&&!_||_.length%2!==0)&&(m=m.replace(/'/g,'"'));try{i=JSON.parse(m),c&&(i={...c,...i})}catch(b){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,b),`${l}${u}${m}`}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,l};for(;r=this.nestingRegexp.exec(e);){let l=[];i={...n},i=i.replace&&!te(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;let c=!1;if(r[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(r[1])){const u=r[1].split(this.formatSeparator).map(p=>p.trim());r[1]=u.shift(),l=u,c=!0}if(o=t(d.call(this,r[1].trim(),i),i),o&&r[0]===e&&!te(o))return o;te(o)||(o=Hr(o)),o||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),o=""),c&&(o=l.reduce((u,p)=>this.format(u,p,n.lng,{...n,interpolationkey:r[1].trim()}),o.trim())),e=e.replace(r[0],o),this.regexp.lastIndex=0}return e}}const Ki=a=>{let e=a.toLowerCase().trim();const t={};if(a.indexOf("(")>-1){const n=a.split("(");e=n[0].toLowerCase().trim();const r=n[1].substring(0,n[1].length-1);e==="currency"&&r.indexOf(":")<0?t.currency||(t.currency=r.trim()):e==="relativetime"&&r.indexOf(":")<0?t.range||(t.range=r.trim()):r.split(";").forEach(i=>{if(i){const[d,...l]=i.split(":"),c=l.join(":").trim().replace(/^'+|'+$/g,""),u=d.trim();t[u]||(t[u]=c),c==="false"&&(t[u]=!1),c==="true"&&(t[u]=!0),isNaN(c)||(t[u]=parseInt(c,10))}})}return{formatName:e,formatOptions:t}},Za=a=>{const e={};return(t,n,r)=>{let o=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(o={...o,[r.interpolationkey]:void 0});const i=n+JSON.stringify(o);let d=e[i];return d||(d=a(Gt(n),r),e[i]=d),d(t)}};class $i{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=ea.create("formatter"),this.options=e,this.formats={number:Za((t,n)=>{const r=new Intl.NumberFormat(t,{...n});return o=>r.format(o)}),currency:Za((t,n)=>{const r=new Intl.NumberFormat(t,{...n,style:"currency"});return o=>r.format(o)}),datetime:Za((t,n)=>{const r=new Intl.DateTimeFormat(t,{...n});return o=>r.format(o)}),relativetime:Za((t,n)=>{const r=new Intl.RelativeTimeFormat(t,{...n});return o=>r.format(o,n.range||"day")}),list:Za((t,n)=>{const r=new Intl.ListFormat(t,{...n});return o=>r.format(o)})},this.init(e)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Za(t)}format(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=t.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&o[0].indexOf(")")<0&&o.find(d=>d.indexOf(")")>-1)){const d=o.findIndex(l=>l.indexOf(")")>-1);o[0]=[o[0],...o.splice(1,d)].join(this.formatSeparator)}return o.reduce((d,l)=>{const{formatName:c,formatOptions:u}=Ki(l);if(this.formats[c]){let p=d;try{const m=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},g=m.locale||m.lng||r.locale||r.lng||n;p=this.formats[c](d,g,{...u,...r,...m})}catch(m){this.logger.warn(m)}return p}else this.logger.warn(`there was no format function for ${c}`);return d},e)}}const Hi=(a,e)=>{a.pending[e]!==void 0&&(delete a.pending[e],a.pendingCount--)};class Ri extends $t{constructor(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=ea.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(n,r.backend,r)}queueLoad(e,t,n,r){const o={},i={},d={},l={};return e.forEach(c=>{let u=!0;t.forEach(p=>{const m=`${c}|${p}`;!n.reload&&this.store.hasResourceBundle(c,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),l[p]===void 0&&(l[p]=!0)))}),u||(d[c]=!0)}),(Object.keys(o).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(o),pending:Object.keys(i),toLoadLanguages:Object.keys(d),toLoadNamespaces:Object.keys(l)}}loaded(e,t,n){const r=e.split("|"),o=r[0],i=r[1];t&&this.emit("failedLoading",o,i,t),!t&&n&&this.store.addResourceBundle(o,i,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);const d={};this.queue.forEach(l=>{Ei(l.loaded,[o],i),Hi(l,e),t&&l.errors.push(t),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(c=>{d[c]||(d[c]={});const u=l.loaded[c];u.length&&u.forEach(p=>{d[c][p]===void 0&&(d[c][p]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",d),this.queue=this.queue.filter(l=>!l.done)}read(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:o,callback:i});return}this.readingCalls++;const d=(c,u)=>{if(this.readingCalls--,this.waitingReads.length>0){const p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(c&&u&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,n,r+1,o*2,i)},o);return}i(c,u)},l=this.backend[n].bind(this.backend);if(l.length===2){try{const c=l(e,t);c&&typeof c.then=="function"?c.then(u=>d(null,u)).catch(d):d(null,c)}catch(c){d(c)}return}return l(e,t,d)}prepareLoading(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();te(e)&&(e=this.languageUtils.toResolveHierarchy(e)),te(t)&&(t=[t]);const o=this.queueLoad(e,t,n,r);if(!o.toLoad.length)return o.pending.length||r(),null;o.toLoad.forEach(i=>{this.loadOne(i)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const n=e.split("|"),r=n[0],o=n[1];this.read(r,o,"read",void 0,void 0,(i,d)=>{i&&this.logger.warn(`${t}loading namespace ${o} for language ${r} failed`,i),!i&&d&&this.logger.log(`${t}loaded namespace ${o} for language ${r}`,d),this.loaded(e,i,d)})}saveMissing(e,t,n,r,o){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},d=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(n==null||n==="")){if(this.backend&&this.backend.create){const l={...i,isUpdate:o},c=this.backend.create.bind(this.backend);if(c.length<6)try{let u;c.length===5?u=c(e,t,n,r,l):u=c(e,t,n,r),u&&typeof u.then=="function"?u.then(p=>d(null,p)).catch(d):d(null,u)}catch(u){d(u)}else c(e,t,n,r,d,l)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}}const ss=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:a=>{let e={};if(typeof a[1]=="object"&&(e=a[1]),te(a[1])&&(e.defaultValue=a[1]),te(a[2])&&(e.tDescription=a[2]),typeof a[2]=="object"||typeof a[3]=="object"){const t=a[3]||a[2];Object.keys(t).forEach(n=>{e[n]=t[n]})}return e},interpolation:{escapeValue:!0,format:a=>a,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),os=a=>(te(a.ns)&&(a.ns=[a.ns]),te(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),te(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs&&a.supportedLngs.indexOf("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),a),Rt=()=>{},Yi=a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(t=>{typeof a[t]=="function"&&(a[t]=a[t].bind(a))})};class lt extends $t{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=os(e),this.services={},this.logger=ea,this.modules={external:[]},Yi(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initImmediate)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof t=="function"&&(n=t,t={}),!t.defaultNS&&t.defaultNS!==!1&&t.ns&&(te(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=ss();this.options={...r,...this.options,...os(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?ea.init(o(this.modules.logger),this.options):ea.init(null,this.options);let u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=$i);const p=new ts(this.options);this.store=new Xr(this.options.resources,this.options);const m=this.services;m.logger=ea,m.resourceStore=this.store,m.languageUtils=p,m.pluralResolver=new Wi(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 Gi(this.options),m.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},m.backendConnector=new Ri(o(this.modules.backend),m.resourceStore,m,this.options),m.backendConnector.on("*",function(g){for(var _=arguments.length,b=new Array(_>1?_-1:0),h=1;h<_;h++)b[h-1]=arguments[h];e.emit(g,...b)}),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 Ht(this.services,this.options),this.translator.on("*",function(g){for(var _=arguments.length,b=new Array(_>1?_-1:0),h=1;h<_;h++)b[h-1]=arguments[h];e.emit(g,...b)}),this.modules.external.forEach(g=>{g.init&&g.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Rt),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 l=it(),c=()=>{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),l.resolve(m),n(p,m)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return u(null,this.t.bind(this));this.changeLanguage(this.options.lng,u)};return this.options.resources||!this.options.initImmediate?c():setTimeout(c,0),l}loadResources(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Rt;const r=te(e)?e:this.language;if(typeof e=="function"&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&r.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return n();const o=[],i=d=>{if(!d||d==="cimode")return;this.services.languageUtils.toResolveHierarchy(d).forEach(c=>{c!=="cimode"&&o.indexOf(c)<0&&o.push(c)})};r?i(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>i(l)),this.options.preload&&this.options.preload.forEach(d=>i(d)),this.services.backendConnector.load(o,this.options.ns,d=>{!d&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(d)})}else n(null)}reloadResources(e,t,n){const r=it();return typeof e=="function"&&(n=e,e=void 0),typeof t=="function"&&(n=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),n||(n=Rt),this.services.backendConnector.reload(e,t,o=>{r.resolve(),n(o)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&es.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1))for(let t=0;t<this.languages.length;t++){const n=this.languages[t];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}changeLanguage(e,t){var n=this;this.isLanguageChangingTo=e;const r=it();this.emit("languageChanging",e);const o=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},i=(l,c)=>{c?(o(c),this.translator.changeLanguage(c),this.isLanguageChangingTo=void 0,this.emit("languageChanged",c),this.logger.log("languageChanged",c)):this.isLanguageChangingTo=void 0,r.resolve(function(){return n.t(...arguments)}),t&&t(l,function(){return n.t(...arguments)})},d=l=>{!e&&!l&&this.services.languageDetector&&(l=[]);const c=te(l)?l:this.services.languageUtils.getBestMatchFromCodes(l);c&&(this.language||o(c),this.translator.language||this.translator.changeLanguage(c),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(c)),this.loadResources(c,u=>{i(u,c)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?d(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(d):this.services.languageDetector.detect(d):d(e),r}getFixedT(e,t,n){var r=this;const o=function(i,d){let l;if(typeof d!="object"){for(var c=arguments.length,u=new Array(c>2?c-2:0),p=2;p<c;p++)u[p-2]=arguments[p];l=r.options.overloadTranslationOptionHandler([i,d].concat(u))}else l={...d};l.lng=l.lng||o.lng,l.lngs=l.lngs||o.lngs,l.ns=l.ns||o.ns,l.keyPrefix!==""&&(l.keyPrefix=l.keyPrefix||n||o.keyPrefix);const m=r.options.keySeparator||".";let g;return l.keyPrefix&&Array.isArray(i)?g=i.map(_=>`${l.keyPrefix}${m}${_}`):g=l.keyPrefix?`${l.keyPrefix}${m}${i}`:i,r.t(g,l)};return te(e)?o.lng=e:o.lngs=e,o.ns=t,o.keyPrefix=n,o}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,o=this.languages[this.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const i=(d,l)=>{const c=this.services.backendConnector.state[`${d}|${l}`];return c===-1||c===0||c===2};if(t.precheck){const d=t.precheck(this,i);if(d!==void 0)return d}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(n,e)&&(!r||i(o,e)))}loadNamespaces(e,t){const n=it();return this.options.ns?(te(e)&&(e=[e]),e.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{n.resolve(),t&&t(r)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){const n=it();te(e)&&(e=[e]);const r=this.options.preload||[],o=e.filter(i=>r.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return o.length?(this.options.preload=r.concat(o),this.loadResources(i=>{n.resolve(),t&&t(i)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";const t=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],n=this.services&&this.services.languageUtils||new ts(ss());return t.indexOf(n.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new lt(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Rt;const n=e.forkResourceStore;n&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},o=new lt(r);return(e.debug!==void 0||e.prefix!==void 0)&&(o.logger=o.logger.clone(e)),["store","services","language"].forEach(d=>{o[d]=this[d]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},n&&(o.store=new Xr(this.store.data,r),o.services.resourceStore=o.store),o.translator=new Ht(o.services,r),o.translator.on("*",function(d){for(var l=arguments.length,c=new Array(l>1?l-1:0),u=1;u<l;u++)c[u-1]=arguments[u];o.emit(d,...c)}),o.init(r,t),o.translator.options=r,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Me=lt.createInstance();Me.createInstance=lt.createInstance;const Ji=Me.createInstance;Me.dir,Me.init,Me.loadResources,Me.reloadResources,Me.use,Me.changeLanguage,Me.getFixedT,Me.t,Me.exists,Me.setDefaultNamespace,Me.hasLoadedNamespace,Me.loadNamespaces,Me.loadLanguages;const Qi={free:"Free",manage:"Manage",cancel:"Cancel",close:"Close",open:"Open",edit:"Edit",update:"Update",tryAgain:"Try again",save:"Save",upgrade:"Upgrade",downgrade:"Downgrade",billingIntervalLabel:"Billing interval",billedMonthly:"Billed monthly",billedAnnually:"Billed annually",conversationsUnit:"conversations",conversationsPerMonth:"conversations / month",perMonth:"/mo",perYear:"/yr",perMonthLong:"/month",perYearLong:"/year",resourceConversations:"Conversations / month",resourceTableRows:"Table rows",resourceVectorDb:"Vector DB storage",resourceFileStorage:"File storage",metricConversations:"monthly conversations",metricTableRows:"table rows",metricVectorDb:"vector DB storage",metricFileStorage:"file storage",metricAiSpend:"AI spend",metricBotCount:"agents",usageBannerLimitReached:"You've reached your {label} limit. Upgrade now to avoid interruptions.",usageBannerNearLimit:"You've used {pct}% of your {label}. Upgrade to avoid hitting your limit.",usageBannerDefaultCta:"Upgrade plan",usageBannerManageCta:"Manage plan",usageBannerDismiss:"Dismiss",planBannerEyebrow:"Current plan",planBannerManagedTitle:"Managed in Dashboard",planBannerManagedSub:"This workspace uses an earlier billing system.",planBannerNoPlan:"No plan",planBannerCustomPricing:"Custom pricing",planBannerCustomConversations:"Custom conversations",planBannerCustom:"Custom",planBannerRenews:"Renews {date}",planBannerDowngradesTo:"Downgrades to {plan} on {date}",planBannerManageCta:"Manage plan",planBannerPendingUpgradeNote:"Pending upgrade — awaiting payment",pendingUpgradeBannerText:"Your last payment failed — this subscription upgrade is on hold until it goes through.",pendingUpgradeBannerCta:"View pending upgrade",pendingUpgradeBlocksManageTooltip:"Resolve your pending upgrade before making more changes",pendingUpgradeTitle:"Pending upgrade",pendingUpgradeFailedLabel:"Payment failed",pendingUpgradeSubtitle:"Review your payment method and make sure you have sufficient funds, then try again.",pendingUpgradeItemsLabel:"Items",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Amount due",pendingUpgradeAmountUnavailable:"Could not load the amount due — try again shortly.",pendingUpgradeExpiresOn:"If unpaid by {date}, this upgrade will be cancelled automatically",pendingUpgradePayCta:"Pay invoice",pendingUpgradeCancelCta:"Cancel upgrade",pendingUpgradePaySuccess:"Payment confirmed",pendingUpgradePayError:"Could not pay the invoice",pendingUpgradeCancelSuccess:"Pending upgrade cancelled",pendingUpgradeCancelError:"Could not cancel the pending upgrade",checkoutTitle:"Configure your plan",checkoutBackLabel:"Back to plans",checkoutPlanDetails:"Plan details",checkoutMonthlyBilling:"Monthly billing",checkoutAnnualBilling:"Annual billing",checkoutSaveBadge:"Save {savings}%",checkoutPaymentMethodTitle:"Payment method",checkoutSavedCardTab:"Saved",checkoutNewCardTab:"New card",checkoutBillingAddressTitle:"Billing address",checkoutCancelEdit:"Cancel",checkoutUpdateAddress:"Update",checkoutIsBusiness:"I'm purchasing as business",checkoutBusinessDetails:"Business details",checkoutBusinessNamePlaceholder:"Business name",checkoutTaxIdTypeLabel:"Tax ID type",checkoutTaxIdNumberPlaceholder:"Tax ID number",checkoutNoTaxRequired:"No tax ID is required for your billing country.",checkoutSelectCountryForTax:"Select your billing country above to add a tax ID.",checkoutContactInfo:"Contact information",checkoutEmailLabel:"Email",checkoutCardNotReady:"Card field is not ready",checkoutPaymentSetupFailed:"Payment setup failed",checkoutPaymentMethodMissing:"Could not retrieve payment method",checkoutAddressIncomplete:"Please complete your billing address",checkoutGenericError:"Something went wrong while processing your payment. You have not been charged twice.",checkoutSuccessToast:"Subscription activated",checkoutErrorToast:"Payment error",orderTopFeatures:"Top features",orderThen:"then {price} per {packSize}",orderPreviewError:"We couldn't compute your total. Try again in a moment.",orderPlanFromDate:"{plan} plan — from {date}",orderProratedToday:"Prorated for today",orderProratedTodayDesc:"Switching mid-period, we charge only for the time left in your current billing period. The full plan price above is billed at your next renewal, not today.",orderCreditUnusedTime:"Credit for unused time",orderAdjustUnusedTime:"Adjustment for unused time",orderCreditUnusedTimeDesc:"You already paid for time left in your current billing period. We credit that unused time and re-apply it at your new rate, so you're never double-charged.",orderAdjustUnusedTimeDesc:"Switching mid-cycle means we prorate the difference between your old and new plan for the days remaining in your current billing period.",orderAccountCredit:"Account credit",orderDueToday:"Due today",orderCreditTowardNext:"You have {amount} of unused time credited toward your next invoice.",orderBalanceAsCredit:"Your remaining balance of {amount} is applied as credit on your next invoice.",orderSavingsNote:"You're saving {monthlySavings}/month by choosing an annual plan. That's {yearlySavings}/year.",orderSubscribe:"Subscribe",orderPreviewUnavailable:"Preview unavailable",orderIntervalAnnual:"annual",orderIntervalMonthly:"monthly",orderRenewsMonthly:"Renews monthly until cancelled.",orderRenewsAnnually:"Renews annually until cancelled.",orderChargedStarting:"You'll be charged {amount}{period} starting {date}.",orderChargedNoDate:"You'll be charged {amount}{period}.",orderCancelNote:"Cancel anytime in Settings. By subscribing, you authorize Botpress to store and charge your payment method.",invoicesTitle:"Billing history",invoicesLoadError:"We couldn't load your invoices. Try again in a moment.",invoicesEmpty:"No invoices yet. They'll appear here after your first charge.",invoicesDownloadLabel:"Download invoice from {date}",invoiceStatusPaid:"Paid",invoiceStatusDue:"Due",invoiceStatusDraft:"Draft",invoiceStatusUnpaid:"Unpaid",invoiceStatusVoid:"Void",upgradeDialogTitle:"Upgrade your plan",upgradeMonthly:"Monthly",upgradeAnnual:"Annual",upgradeSaveBadge:"Save {savings}%",upgradeRecommended:"Recommended",upgradePerMonthSuffix:"/ month ({currency})",upgradeNoTopup:"No top-up",upgradeCurrentPlan:"Your current plan",upgradeNextPlan:"Next plan",upgradeCancelDowngrade:"Cancel downgrade",upgradeDowngrade:"Downgrade",upgradeSwitchToAnnual:"Switch to annual",upgradeSwitchToMonthly:"Switch to monthly",upgradePlanManaged:"Your plan is managed by Botpress — contact us to change it",upgradeUpgrade:"Upgrade",upgradeEverythingIn:"Everything in {planName}",upgradeSeeAllFeatures:"See all {total} features",upgradeShowFewerFeatures:"Show fewer features",upgradeContactUs:"Contact us",upgradeFooterEnterprise:"Need more, or running at scale?",upgradeFooterAboutEnterprise:"about Enterprise. Compare plans at",upgradeThenPer:"then {price} per {packSize} more",upgradeDowngradeSuccess:"Plan downgraded",upgradeDowngradeError:"Downgrade failed",upgradeCancelDowngradeSuccess:"Scheduled downgrade canceled",upgradeCancelDowngradeError:"Could not cancel the downgrade",cancelSurveyConfirmTitle:"Are you sure you want to cancel?",cancelSurveyConfirmLede:"Your {plan} features remain available <bold>until this billing cycle ends on {date}.</bold> After that, you'll lose access to:",cancelSurveyConfirmLedeNoDate:"Your {plan} features remain available until this billing cycle ends. After that, you'll lose access to:",cancelSurveyCurrentPlan:"Your current plan",cancelSurveyCurrentAddons:"Your current add-ons",cancelSurveyAddonPack:"{name} pack ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversations",cancelSurveyKeep:"Keep my subscription",cancelSurveyContinue:"Continue",cancelSurveyFeedbackTitle:"Before you go, we'd love to hear your feedback.",cancelSurveyFeedbackLede:"Your feedback helps us make Botpress better. What's the main reason you're canceling your subscription?",cancelSurveyReasonTooExpensive:"Too expensive for my current needs",cancelSurveyReasonNotUsingEnough:"Not using Botpress enough",cancelSurveyReasonMissingFeature:"Missing a key feature I need",cancelSurveyReasonSwitchedTool:"Switched to a different tool or platform",cancelSurveyReasonTechnicalIssues:"Experienced technical issues or bugs",cancelSurveyReasonSupportExpectations:"Support or guidance did not meet my expectations",cancelSurveyReasonTemporaryNeed:"Only needed Botpress temporarily",cancelSurveyCommentLabel:"Additional comments",cancelSurveyOptional:"(optional)",cancelSurveyCommentPlaceholder:"Please share any additional feedback...",cancelSurveyConfirm:"Confirm cancellation",addonsDialogTitle:"Manage add-ons",addonsSubtitleWithPlan:"Additional usage for your {planName} plan. Set a quantity to 0 to remove an add-on.",addonsSubtitleGeneric:"Additional usage for your plan. Set a quantity to 0 to remove an add-on.",addonsRequirePaidPlanTitle:"Add-ons require a paid plan",addonsRequirePaidPlanBody:"Upgrade your plan to unlock extra conversations, storage, and more.",addonsUpgradeCta:"Upgrade plan",addonsEach:"each",addonActiveOnly:"{count} active",addonRemoved:"{activeNow} active now · removed",addonRemovedOnDate:"{activeNow} active now · removed on {date}",addonChanged:"{activeNow} active now · {pending} after update",addonChangedOnDate:"{activeNow} active now · {pending} on {date}",addonsNewLimits:"Your new limits",addonsPlanLine:"{planName} plan",addonsGenericPlan:"Plan",addonsTotalMonthly:"Total monthly cost",addonsTotalYearly:"Total yearly cost",addonsDueToday:"Due today",addonsChargedNow:"You'll be charged {amount} now for the rest of this billing period. ",addonsNoChargeToday:"No charge today — the change is prorated. ",addonsRenewalWithDate:"Your add-ons then cost {amount}{interval} until you remove them, starting {date}.",addonsRenewalNoDate:"Your add-ons then cost {amount}{interval} until you remove them.",addonsReadonlyNote:"Add-ons for this workspace are managed by Botpress — contact us to change them.",addonsUpdateSuccess:"Subscription updated",addonsUpdateError:"Could not update your add-ons",addonsUpdateSubscription:"Update subscription",addonsConvos:"{n} convos",outdatedTitle:"Billing is managed in the Botpress Dashboard",outdatedText:"This workspace is on an earlier billing system, so plan changes and payment details can't be managed here.",outdatedCta:"Open billing in Dashboard",outgrowTitle:"You're about to outgrow the Free plan",outgrowLede:"Free includes <bold>{quota}</bold> conversations total, and they don't renew. Upgrading moves you to a monthly allowance, unlocks more channels, and adds conversation packs, so your agents never stop replying.",outgrowSoFar:"So far",outgrowUsageText:"<bold>{used}</bold> of <bold>{quota}</bold> free conversations used · they don't renew",outgrowNoTopup:"No top-up",outgrowUpgradeTo:"Upgrade to {planName}",outgrowEverythingIn:"Everything in {planName}, and",outgrowNeedCustom:"Need custom volume, SLAs, or voice?",outgrowTalkToSales:"Talk to sales",outgrowCompareAll:"Compare all plans",outgrowThenPer:"then {symbol}{amount} per {packSize} more",paymentDialogTitle:"Payment & billing",paymentSessionError:"We couldn't start a secure session.",paymentMethodSection:"Payment method",paymentCardSaveError:"Could not save your card",paymentMethodMissing:"Could not retrieve payment method",paymentCardGenericError:"We couldn't save your card. Please check your details and try again.",paymentReplace:"Replace",paymentBillingAddressSection:"Billing address",paymentTaxIds:"Tax IDs",paymentTaxEmpty:"Add a VAT or tax registration number to show it on your invoices.",paymentTaxIdType:"Tax ID type",paymentTaxSelectType:"Select type",paymentTaxIdNumber:"Tax ID number",paymentTaxRemove:"Remove tax ID",paymentTaxAdd:"+ Add tax ID",paymentAddressIncomplete:"Please complete your billing address.",paymentAddressError:"Could not update your billing details.",paymentCardUpdated:"Card updated",paymentDetailsUpdated:"Billing details updated",paymentSaveCard:"Save card",paymentSaveBillingDetails:"Save billing details",paymentDetailsUpdateError:"Could not update your billing details",usageWidgetLimitReached:"Limit reached",usageWidgetRunningLow:"Running low",usageWidgetUpgradeToKeepGoing:"Upgrade to keep going.",usageWidgetOnlyLeft:"Only {left} left.",usageWidgetFreeExhausted:"All your free conversations are used, and they don't renew.",usageWidgetFreeLeft:"{left} free conversations left, and they don't renew.",usageWidgetEnterpriseOverQuota:"A Botpress representative will contact you at the end of the usage period.",usageWidgetResets:"Resets {date}",usageWidgetViewOptions:"View plan options",usagePopoverFreeTitle:"Free plan usage",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> included, total. They do not renew, and Free has no top-ups.",usagePopoverPlanName:"{planName} plan",usagePopoverTitle:"Current period ends {date}",usagePopoverNudgeText:"<bold>Need more room?</bold> Plus includes unlimited agents, {quota} conversations per month and packs of {packSize} extra when you need them.",dashboardUsage:"Usage",dashboardBillingPeriod:"Billing period",dashboardPrevMonth:"Previous month",dashboardNextMonth:"Next month",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Conversations used this month. On paid plans, extra conversations are added automatically when you reach your limit so service continues.",dashboardStorageTitle:"Storage",dashboardStorageHint:"Shared across files, knowledge base, and tables.",dashboardAiTitle:"AI usage",dashboardAiHint:"Each conversation includes an allowance of AI usage. Track how much of that allowance you've used",dashboardEnterpriseUsageNotice:"Your usage will not be blocked if you go over quota.",dashboardLoadError:"We couldn't load your usage. Try again in a moment.",dashboardNoBotSpend:"No per-bot AI spend this period.",dashboardAiByBot:"AI spend by bot",dashboardCreditsTitle:"Credits",dashboardCreditsHint:"Credits applied to your AI spend. This section is updated daily.",dashboardCreditsStarts:"Starts",dashboardCreditsExpires:"Expires",dashboardCreditsPastUsage:"Used before this month",dashboardCreditsCurrentUsage:"Used this month",dashboardCreditsShowMore:"Show more",dashboardCreditsLoadError:"We couldn't load your credits. Try again in a moment.",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Table rows",dashboardVectorDb:"Vector DB storage",dashboardFileStorage:"File storage",dashboardAiSpend:"AI spend",dashboardFromPlan:"{amount} from {planName} plan",dashboardFromPlanGeneric:"{amount} from your plan",dashboardFromPlanWithAddons:"{amount} from {planName} plan + {addonAmount} from add-ons",dashboardFromPlanGenericWithAddons:"{amount} from your plan + {addonAmount} from add-ons",dashboardIncreaseLimits:"Increase limits",planFeatureAiUsageIncluded:"{amount} AI usage included",planFeature3Seats:"3 seats",planFeature3AiAgents:"3 AI agents",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Help center",planFeature1kTableRows:"1K table rows",planFeature100kTableRows:"100K table rows",planFeature500kTableRows:"500K table rows",planFeature100mbFileStorage:"100MB file storage",planFeature10gbFileStorage:"10GB file storage",planFeature50gbFileStorage:"50GB file storage",planFeature100mbVectorDb:"100MB vector DB storage",planFeature1gbVectorDb:"1GB vector DB storage",planFeature5gbVectorDb:"5GB vector DB storage",planFeatureCommunitySupport:"Community support",planFeatureUnlimitedAiAgents:"Unlimited AI agents",planFeatureWhatsappChannel:"WhatsApp channel",planFeatureHelpCenterCustomDomain:"Help Center custom domain",planFeatureWhitelabelWebchat:"Whitelabel webchat",planFeatureTechnicalSupportLiveChat:"Technical support via live chat",planFeatureUnlimitedSeats:"Unlimited seats",planFeatureTeamsRoutingRbac:"Teams, routing & RBAC",planFeatureTeamLevelAnalytics:"Team-level analytics",planFeatureVoiceChannel:"Voice channel",planFeatureDedicatedSupport:"Dedicated support",planFeatureSlaSecurity:"SLA & security review",planFeatureCustomStorage:"Custom storage",planFeatureDescAiUsageIncluded:"AI usage is the cost of calling an LLM. Every conversation includes {rate}. We pay it for you.",planFeatureDesc3Seats:"Up to 3 team members can collaborate in this workspace.",planFeatureDescUnlimitedSeats:"Invite as many team members to the workspace as you need.",planFeatureDesc3AiAgents:"Build and publish up to 3 distinct AI agents.",planFeatureDescUnlimitedAiAgents:"Build and publish as many AI agents as you need.",planFeatureDescBotpressDesk:"The human-handoff inbox where agents triage and reply to live conversations.",planFeatureDescBotpressStudioAdk:"The visual Studio builder plus the Agent Development Kit for building agents in code.",planFeatureDescBotpressViber:"Build AI agents by chatting with Vibe — no code required.",planFeatureDescHelpCenter:"A hosted knowledge base your agent answers from and customers can browse.",planFeatureDescHelpCenterCustomDomain:"Serve your help center from your own domain instead of a Botpress URL.",planFeatureDescWhatsappChannel:"Connect your agent to WhatsApp to chat with customers there.",planFeatureDescVoiceChannel:"Connect your agent to phone/voice so it can handle spoken conversations.",planFeatureDescWhitelabelWebchat:"Remove Botpress branding from the web chat widget so it's fully your own.",planFeatureDescTeamsRoutingRbac:"Organize members into teams, route conversations between them, and control access by role.",planFeatureDescTeamLevelAnalytics:"Performance and volume metrics broken down per team.",planFeatureDescTechnicalSupportLiveChat:"Reach the Botpress support team over live chat for help.",planFeatureDescCommunitySupport:"Get help from the Botpress community forum and Discord.",planFeatureDescDedicatedSupport:"A named contact and priority support channel for your account.",planFeatureDescSlaSecurity:"A contractual uptime SLA and a security/compliance review for your procurement.",planFeatureDescCustomStorage:"Storage limits tailored to your workload, beyond the standard tiers.",planFeatureDesc1kTableRows:"1K rows across all your data tables.",planFeatureDesc100kTableRows:"100K rows across all your data tables.",planFeatureDesc500kTableRows:"500K rows across all your data tables.",planFeatureDesc100mbFileStorage:"100MB of uploaded files (documents, images, attachments).",planFeatureDesc10gbFileStorage:"10GB of uploaded files (documents, images, attachments).",planFeatureDesc50gbFileStorage:"50GB of uploaded files (documents, images, attachments).",planFeatureDesc100mbVectorDb:"100MB of embeddings for knowledge-base search and retrieval.",planFeatureDesc1gbVectorDb:"1GB of embeddings for knowledge-base search and retrieval.",planFeatureDesc5gbVectorDb:"5GB of embeddings for knowledge-base search and retrieval.",planDescriptionCommunity:"Free plan for trying things out",planDescriptionPlus:"For growing businesses",planDescriptionTeam:"For small teams",planDescriptionEnterprise:"Enterprise license subscription",planDescriptionManaged:"Managed license subscription",addonNameConversationSessions:"Conversations",addonNameStorage:"Storage",addonDescriptionConversationSessions:"Adds conversation sessions for the month",addonDescriptionStorage:"Adds table rows, vector DB space and files",summaryCurrentPlan:"Current plan",summaryManagedInDashboard:"Managed in Dashboard",summaryManagedMeta:"This workspace uses an earlier billing system.",summaryNoPlan:"No plan",summaryConversationsPerMo:"{n} conversations/mo",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} active add-on",summaryActiveAddons:"{count} active add-ons",summaryNoAddons:"No add-ons",summaryNoAddonsMeta:"Add extra conversations or storage",summaryAddonsUpdates:"Updates to {amount} on {date}",autoRechargeTitle:"Auto-recharge",autoRechargeDescription:"Automatically top up your AI usage credit when your balance runs low.",autoRechargeEnableLabel:"Enable auto-recharge",autoRechargeLoadErrorTitle:"We couldn't load your settings",autoRechargeLoadError:"Something went wrong while fetching your auto-recharge settings. Check your connection and try again.",autoRechargeThresholdLabel:"Recharge threshold",autoRechargeThresholdHint:"Recharge triggers when your balance falls below this amount, $1 or more.",autoRechargeThresholdError:"Must be a whole-dollar amount of at least $1.",autoRechargeChunkLabel:"Recharge amount",autoRechargeChunkHint:"Whole-dollar amount, $5 or more.",autoRechargeChunkError:"Must be a whole-dollar amount of at least $5.",autoRechargeLimitLabel:"Monthly limit (USD)",autoRechargeLimitHint:"Won't recharge more than this in a billing month. Must be a multiple of the recharge amount ({amount}).",autoRechargeLimitError:"Must be a multiple of the recharge amount ({amount}).",autoRechargeSetLimitLabel:"Set a monthly limit",autoRechargeSetLimitHint:"Cap how much auto-recharge can spend each billing month.",autoRechargeNoCapHint:"Auto-recharge has no monthly cap.",autoRechargePaymentFailed:"Auto-recharge was disabled after a failed payment. Make sure your payment method has sufficient funds, then buy credits manually to re-enable it automatically.",autoRechargeUpdateSuccess:"Auto-recharge settings updated",autoRechargeUpdateError:"Could not update your auto-recharge settings",autoRechargeSummaryOn:"Auto-recharge on",autoRechargeSummaryOff:"Auto-recharge off",autoRechargeSummaryEyebrow:"AI credits",autoRechargeSummaryMeta:"{amount} recharge · up to {limit}/mo",autoRechargeSummaryMetaNoLimit:"{amount} recharge · no limit",autoRechargeSummaryLoadError:"Couldn't load status",autoRechargeRequiresPaidPlanTitle:"Auto-recharge requires a paid plan",autoRechargeRequiresPaidPlanBody:"Upgrade your plan to automatically top up your AI usage credit.",autoRechargeUpgradeCta:"Upgrade plan",aiSpendDialogTitle:"AI spend",buyCreditsTitle:"Buy AI credits",buyCreditsDescription:"Add AI spend credit to your balance right now. One-off purchase, charged to your payment method.",buyCreditsAmountLabel:"Credit amount",buyCreditsAmountHint:"Amount in dollars and cents, $5 or more.",buyCreditsAmountError:"Must be at least $5, with no more than 2 decimal places.",buyCreditsCta:"Buy",buyConfirmTitle:"Confirm purchase",buyConfirmItem:"AI credits",buyConfirmTotal:"Total",buyConfirmNoCard:"Add a payment method to continue.",buyConfirmBack:"Back",buyConfirmCta:"Pay {amount}",buyCreditsSuccess:"Credits purchased",buyCreditsError:"Could not purchase credits"},Xi={free:"Gratuit",manage:"Gérer",cancel:"Annuler",close:"Fermer",open:"Ouvrir",edit:"Modifier",update:"Mettre à jour",tryAgain:"Réessayer",save:"Enregistrer",upgrade:"Mettre à niveau",downgrade:"Rétrograder",billingIntervalLabel:"Intervalle de facturation",billedMonthly:"Facturé mensuellement",billedAnnually:"Facturé annuellement",conversationsUnit:"conversations",conversationsPerMonth:"conversations / mois",perMonth:"/mois",perYear:"/an",perMonthLong:"/mois",perYearLong:"/an",resourceConversations:"Conversations / mois",resourceTableRows:"Lignes de table",resourceVectorDb:"Stockage vectoriel",resourceFileStorage:"Stockage de fichiers",metricConversations:"conversations mensuelles",metricTableRows:"lignes de table",metricVectorDb:"stockage vectoriel",metricFileStorage:"stockage de fichiers",metricAiSpend:"dépenses IA",metricBotCount:"agents",usageBannerLimitReached:"Vous avez atteint votre limite de {label}. Mettez à niveau maintenant pour éviter les interruptions.",usageBannerNearLimit:"Vous avez utilisé {pct}% de votre {label}. Mettez à niveau pour éviter d'atteindre votre limite.",usageBannerDefaultCta:"Mettre à niveau",usageBannerManageCta:"Gérer le plan",usageBannerDismiss:"Ignorer",planBannerEyebrow:"Plan actuel",planBannerManagedTitle:"Géré dans le tableau de bord",planBannerManagedSub:"Cet espace de travail utilise un système de facturation antérieur.",planBannerNoPlan:"Aucun plan",planBannerCustomPricing:"Tarification personnalisée",planBannerCustomConversations:"Conversations personnalisées",planBannerCustom:"Personnalisé",planBannerRenews:"Renouvellement le {date}",planBannerDowngradesTo:"Passe à {plan} le {date}",planBannerManageCta:"Gérer le plan",planBannerPendingUpgradeNote:"Mise à niveau en attente — paiement à confirmer",pendingUpgradeBannerText:"Votre dernier paiement a échoué — cette mise à niveau de l’abonnement est en attente jusqu’à son traitement.",pendingUpgradeBannerCta:"Voir la mise à niveau en attente",pendingUpgradeBlocksManageTooltip:"Résolvez votre mise à niveau en attente avant de faire d’autres changements",pendingUpgradeTitle:"Mise à niveau en attente",pendingUpgradeFailedLabel:"Paiement échoué",pendingUpgradeSubtitle:"Vérifiez votre moyen de paiement et assurez-vous d’avoir des fonds suffisants, puis réessayez.",pendingUpgradeItemsLabel:"Éléments",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Montant dû",pendingUpgradeAmountUnavailable:"Impossible de charger le montant dû — réessayez dans un instant.",pendingUpgradeExpiresOn:"Si elle n’est pas payée avant le {date}, cette mise à niveau sera annulée automatiquement",pendingUpgradePayCta:"Payer la facture",pendingUpgradeCancelCta:"Annuler la mise à niveau",pendingUpgradePaySuccess:"Paiement confirmé",pendingUpgradePayError:"Impossible de payer la facture",pendingUpgradeCancelSuccess:"Mise à niveau en attente annulée",pendingUpgradeCancelError:"Impossible d'annuler la mise à niveau en attente",checkoutTitle:"Configurer votre plan",checkoutBackLabel:"Retour aux plans",checkoutPlanDetails:"Détails du plan",checkoutMonthlyBilling:"Facturation mensuelle",checkoutAnnualBilling:"Facturation annuelle",checkoutSaveBadge:"Économisez {savings}%",checkoutPaymentMethodTitle:"Moyen de paiement",checkoutSavedCardTab:"Enregistrée",checkoutNewCardTab:"Nouvelle carte",checkoutBillingAddressTitle:"Adresse de facturation",checkoutCancelEdit:"Annuler",checkoutUpdateAddress:"Mettre à jour",checkoutIsBusiness:"J'achète en tant qu'entreprise",checkoutBusinessDetails:"Informations d'entreprise",checkoutBusinessNamePlaceholder:"Nom de l'entreprise",checkoutTaxIdTypeLabel:"Type d'identifiant fiscal",checkoutTaxIdNumberPlaceholder:"Numéro d'identifiant fiscal",checkoutNoTaxRequired:"Aucun identifiant fiscal n'est requis pour votre pays de facturation.",checkoutSelectCountryForTax:"Sélectionnez votre pays de facturation ci-dessus pour ajouter un identifiant fiscal.",checkoutContactInfo:"Coordonnées",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"Le champ de carte n'est pas prêt",checkoutPaymentSetupFailed:"Échec de la configuration du paiement",checkoutPaymentMethodMissing:"Impossible de récupérer le moyen de paiement",checkoutAddressIncomplete:"Veuillez compléter votre adresse de facturation",checkoutGenericError:"Une erreur s'est produite lors du traitement de votre paiement. Vous n'avez pas été débité deux fois.",checkoutSuccessToast:"Abonnement activé",checkoutErrorToast:"Erreur de paiement",orderTopFeatures:"Fonctionnalités principales",orderThen:"puis {price} par {packSize}",orderPreviewError:"Impossible de calculer votre total. Réessayez dans un instant.",orderPlanFromDate:"Plan {plan} — à partir du {date}",orderProratedToday:"Calculé au prorata d'aujourd'hui",orderProratedTodayDesc:"En changeant de plan en milieu de période, vous ne payez que pour le temps restant dans votre période de facturation actuelle. Le prix total du plan ci-dessus est facturé à votre prochain renouvellement, pas aujourd'hui.",orderCreditUnusedTime:"Crédit pour le temps non utilisé",orderAdjustUnusedTime:"Ajustement pour le temps non utilisé",orderCreditUnusedTimeDesc:"Vous avez déjà payé pour le temps restant dans votre période de facturation actuelle. Nous créditons ce temps non utilisé et le réappliquons à votre nouveau tarif, afin que vous ne soyez jamais facturé deux fois.",orderAdjustUnusedTimeDesc:"Le changement en milieu de cycle signifie que nous calculons au prorata la différence entre votre ancien et votre nouveau plan pour les jours restants dans votre période de facturation actuelle.",orderAccountCredit:"Crédit de compte",orderDueToday:"À payer aujourd'hui",orderCreditTowardNext:"Vous avez {amount} de temps non utilisé crédité sur votre prochaine facture.",orderBalanceAsCredit:"Votre solde restant de {amount} est appliqué comme crédit sur votre prochaine facture.",orderSavingsNote:"Vous économisez {monthlySavings}/mois en choisissant un plan annuel. C'est {yearlySavings}/an.",orderSubscribe:"S'abonner",orderPreviewUnavailable:"Aperçu indisponible",orderIntervalAnnual:"annuellement",orderIntervalMonthly:"mensuellement",orderRenewsMonthly:"Renouvellement mensuel jusqu'à annulation.",orderRenewsAnnually:"Renouvellement annuel jusqu'à annulation.",orderChargedStarting:"Vous serez facturé {amount}{period} à partir du {date}.",orderChargedNoDate:"Vous serez facturé {amount}{period}.",orderCancelNote:"Annulez à tout moment dans les paramètres. En vous abonnant, vous autorisez Botpress à stocker et à débiter votre moyen de paiement.",invoicesTitle:"Historique de facturation",invoicesLoadError:"Impossible de charger vos factures. Réessayez dans un instant.",invoicesEmpty:"Aucune facture pour l'instant. Elles apparaîtront ici après votre première facturation.",invoicesDownloadLabel:"Télécharger la facture du {date}",invoiceStatusPaid:"Payée",invoiceStatusDue:"À payer",invoiceStatusDraft:"Brouillon",invoiceStatusUnpaid:"Impayée",invoiceStatusVoid:"Annulée",upgradeDialogTitle:"Mettre à niveau votre plan",upgradeMonthly:"Mensuel",upgradeAnnual:"Annuel",upgradeSaveBadge:"Économisez {savings}%",upgradeRecommended:"Recommandé",upgradePerMonthSuffix:"/ mois ({currency})",upgradeNoTopup:"Aucun forfait supplémentaire",upgradeCurrentPlan:"Votre plan actuel",upgradeNextPlan:"Prochain plan",upgradeCancelDowngrade:"Annuler la rétrogradation",upgradeDowngrade:"Rétrograder",upgradeSwitchToAnnual:"Passer à l'annuel",upgradeSwitchToMonthly:"Passer au mensuel",upgradePlanManaged:"Votre plan est géré par Botpress — contactez-nous pour le modifier",upgradeUpgrade:"Mettre à niveau",upgradeEverythingIn:"Tout ce qui est dans {planName}",upgradeSeeAllFeatures:"Voir les {total} fonctionnalités",upgradeShowFewerFeatures:"Afficher moins de fonctionnalités",upgradeContactUs:"Nous contacter",upgradeFooterEnterprise:"Besoin de plus, ou à grande échelle ?",upgradeFooterAboutEnterprise:"pour l'entreprise. Comparez les plans sur",upgradeThenPer:"puis {price} par {packSize} supplémentaires",upgradeDowngradeSuccess:"Plan rétrogradé",upgradeDowngradeError:"Échec de la rétrogradation",upgradeCancelDowngradeSuccess:"Rétrogradation planifiée annulée",upgradeCancelDowngradeError:"Impossible d'annuler la rétrogradation",cancelSurveyConfirmTitle:"Voulez-vous vraiment annuler ?",cancelSurveyConfirmLede:"Les fonctionnalités {plan} restent disponibles <bold>jusqu'à la fin de ce cycle de facturation, le {date}.</bold> Ensuite, vous perdrez l'accès à :",cancelSurveyConfirmLedeNoDate:"Les fonctionnalités {plan} restent disponibles jusqu'à la fin de ce cycle de facturation. Ensuite, vous perdrez l'accès à :",cancelSurveyCurrentPlan:"Votre plan actuel",cancelSurveyCurrentAddons:"Vos modules actuels",cancelSurveyAddonPack:"Pack {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversations",cancelSurveyKeep:"Conserver mon abonnement",cancelSurveyContinue:"Continuer",cancelSurveyFeedbackTitle:"Avant de partir, nous aimerions avoir votre avis.",cancelSurveyFeedbackLede:"Vos commentaires nous aident à améliorer Botpress. Quelle est la principale raison de l'annulation de votre abonnement ?",cancelSurveyReasonTooExpensive:"Trop cher pour mes besoins actuels",cancelSurveyReasonNotUsingEnough:"Je n'utilise pas assez Botpress",cancelSurveyReasonMissingFeature:"Il manque une fonctionnalité dont j'ai besoin",cancelSurveyReasonSwitchedTool:"Je suis passé à un autre outil ou une autre plateforme",cancelSurveyReasonTechnicalIssues:"J'ai rencontré des problèmes techniques ou des bogues",cancelSurveyReasonSupportExpectations:"Le support ou l'accompagnement n'a pas répondu à mes attentes",cancelSurveyReasonTemporaryNeed:"Je n'avais besoin de Botpress que temporairement",cancelSurveyCommentLabel:"Commentaires supplémentaires",cancelSurveyOptional:"(facultatif)",cancelSurveyCommentPlaceholder:"Partagez tout commentaire supplémentaire...",cancelSurveyConfirm:"Confirmer l'annulation",addonsDialogTitle:"Gérer les add-ons",addonsSubtitleWithPlan:"Utilisation supplémentaire pour votre plan {planName}. Définissez une quantité à 0 pour supprimer un add-on.",addonsSubtitleGeneric:"Utilisation supplémentaire pour votre plan. Définissez une quantité à 0 pour supprimer un add-on.",addonsRequirePaidPlanTitle:"Les add-ons nécessitent un plan payant",addonsRequirePaidPlanBody:"Mettez à niveau votre plan pour débloquer des conversations, du stockage et plus encore.",addonsUpgradeCta:"Mettre à niveau le plan",addonsEach:"chacun",addonActiveOnly:"{count} actif",addonRemoved:"{activeNow} actif maintenant · supprimé",addonRemovedOnDate:"{activeNow} actif maintenant · supprimé le {date}",addonChanged:"{activeNow} actif maintenant · {pending} après la mise à jour",addonChangedOnDate:"{activeNow} actif maintenant · {pending} le {date}",addonsNewLimits:"Vos nouvelles limites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Coût mensuel total",addonsTotalYearly:"Coût annuel total",addonsDueToday:"À payer aujourd'hui",addonsChargedNow:"Vous serez facturé {amount} maintenant pour le reste de cette période de facturation. ",addonsNoChargeToday:"Aucun frais aujourd'hui — la modification est calculée au prorata. ",addonsRenewalWithDate:"Vos add-ons coûteront ensuite {amount}{interval} jusqu'à ce que vous les supprimiez, à partir du {date}.",addonsRenewalNoDate:"Vos add-ons coûteront ensuite {amount}{interval} jusqu'à ce que vous les supprimiez.",addonsReadonlyNote:"Les add-ons de cet espace de travail sont gérés par Botpress — contactez-nous pour les modifier.",addonsUpdateSuccess:"Abonnement mis à jour",addonsUpdateError:"Impossible de mettre à jour vos add-ons",addonsUpdateSubscription:"Mettre à jour l'abonnement",addonsConvos:"{n} conv.",outdatedTitle:"La facturation est gérée dans le tableau de bord Botpress",outdatedText:"Cet espace de travail utilise un système de facturation antérieur, donc les changements de plan et les informations de paiement ne peuvent pas être gérés ici.",outdatedCta:"Ouvrir la facturation dans le tableau de bord",outgrowTitle:"Vous êtes sur le point de dépasser le plan Gratuit",outgrowLede:"Le plan Gratuit inclut <bold>{quota}</bold> conversations au total, et elles ne se renouvellent pas. La mise à niveau vous donne une allocation mensuelle, débloque plus de canaux et ajoute des packs de conversations, pour que vos agents ne cessent jamais de répondre.",outgrowSoFar:"Jusqu'ici",outgrowUsageText:"<bold>{used}</bold> sur <bold>{quota}</bold> conversations gratuites utilisées · elles ne se renouvellent pas",outgrowNoTopup:"Aucun forfait supplémentaire",outgrowUpgradeTo:"Passer à {planName}",outgrowEverythingIn:"Tout ce qui est dans {planName}, et",outgrowNeedCustom:"Besoin de volume personnalisé, de SLA ou de voix ?",outgrowTalkToSales:"Parlez à nos commerciaux",outgrowCompareAll:"Comparer tous les plans",outgrowThenPer:"puis {symbol}{amount} par {packSize} supplémentaires",paymentDialogTitle:"Paiement et facturation",paymentSessionError:"Impossible de démarrer une session sécurisée.",paymentMethodSection:"Moyen de paiement",paymentCardSaveError:"Impossible d'enregistrer votre carte",paymentMethodMissing:"Impossible de récupérer le moyen de paiement",paymentCardGenericError:"Impossible d'enregistrer votre carte. Veuillez vérifier vos informations et réessayer.",paymentReplace:"Remplacer",paymentBillingAddressSection:"Adresse de facturation",paymentTaxIds:"Identifiants fiscaux",paymentTaxEmpty:"Ajoutez un numéro de TVA ou d'identification fiscale pour qu'il apparaisse sur vos factures.",paymentTaxIdType:"Type d'identifiant fiscal",paymentTaxSelectType:"Sélectionner le type",paymentTaxIdNumber:"Numéro d'identifiant fiscal",paymentTaxRemove:"Supprimer l'identifiant fiscal",paymentTaxAdd:"+ Ajouter un identifiant fiscal",paymentAddressIncomplete:"Veuillez compléter votre adresse de facturation.",paymentAddressError:"Impossible de mettre à jour vos informations de facturation.",paymentCardUpdated:"Carte mise à jour",paymentDetailsUpdated:"Informations de facturation mises à jour",paymentSaveCard:"Enregistrer la carte",paymentSaveBillingDetails:"Enregistrer les informations de facturation",paymentDetailsUpdateError:"Impossible de mettre à jour vos informations de facturation",usageWidgetLimitReached:"Limite atteinte",usageWidgetRunningLow:"Stock faible",usageWidgetUpgradeToKeepGoing:"Mettez à niveau pour continuer.",usageWidgetOnlyLeft:"Plus que {left}.",usageWidgetFreeExhausted:"Toutes vos conversations gratuites sont utilisées et elles ne se renouvellent pas.",usageWidgetFreeLeft:"{left} conversations gratuites restantes, et elles ne se renouvellent pas.",usageWidgetEnterpriseOverQuota:"Un représentant Botpress vous contactera à la fin de la période d’utilisation.",usageWidgetResets:"Réinitialisation le {date}",usageWidgetViewOptions:"Voir les options de plan",usagePopoverFreeTitle:"Utilisation du plan gratuit",usagePopoverFreeSubtitle:"<bold>{quota} conversations</bold> incluses, au total. Elles ne se renouvellent pas, et le plan Gratuit n’a pas de recharge.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"La période actuelle se termine le {date}",usagePopoverNudgeText:"<bold>Besoin de plus d’espace ?</bold> Plus inclut des agents illimités, {quota} conversations par mois et des packs de {packSize} supplémentaires en cas de besoin.",dashboardUsage:"Utilisation",dashboardBillingPeriod:"Période de facturation",dashboardPrevMonth:"Mois précédent",dashboardNextMonth:"Mois suivant",dashboardConversationsTitle:"Conversations",dashboardConversationsHint:"Conversations utilisées ce mois-ci. Avec les forfaits payants, des conversations supplémentaires sont ajoutées automatiquement lorsque vous atteignez votre limite pour que le service continue.",dashboardStorageTitle:"Stockage",dashboardStorageHint:"Partagé entre les fichiers, la base de connaissances et les tables.",dashboardAiTitle:"Utilisation de l'IA",dashboardAiHint:"Chaque conversation inclut une allocation d'usage IA. Suivez la part de cette allocation que vous avez utilisée",dashboardEnterpriseUsageNotice:"Votre utilisation ne sera pas bloquée si vous dépassez votre quota.",dashboardLoadError:"Impossible de charger votre utilisation. Réessayez dans un instant.",dashboardNoBotSpend:"Aucune dépense IA par bot pour cette période.",dashboardAiByBot:"Dépenses IA par bot",dashboardCreditsTitle:"Crédits",dashboardCreditsHint:"Crédits appliqués à vos dépenses IA. Cette section est mise à jour quotidiennement.",dashboardCreditsStarts:"Début",dashboardCreditsExpires:"Expiration",dashboardCreditsPastUsage:"Utilisé avant ce mois-ci",dashboardCreditsCurrentUsage:"Utilisé ce mois-ci",dashboardCreditsShowMore:"Afficher plus",dashboardCreditsLoadError:"Impossible de charger vos crédits. Réessayez dans un instant.",dashboardConversationsMetric:"Conversations",dashboardTableRows:"Lignes de table",dashboardVectorDb:"Stockage vectoriel",dashboardFileStorage:"Stockage de fichiers",dashboardAiSpend:"Dépenses IA",dashboardFromPlan:"{amount} du plan {planName}",dashboardFromPlanGeneric:"{amount} de votre plan",dashboardFromPlanWithAddons:"{amount} du plan {planName} + {addonAmount} des add-ons",dashboardFromPlanGenericWithAddons:"{amount} de votre plan + {addonAmount} des add-ons",dashboardIncreaseLimits:"Augmenter les limites",planFeatureAiUsageIncluded:"Utilisation de l'IA incluse : {amount}",planFeature3Seats:"3 postes",planFeature3AiAgents:"3 agents IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Centre d'aide",planFeature1kTableRows:"1K lignes de table",planFeature100kTableRows:"100K lignes de table",planFeature500kTableRows:"500K lignes de table",planFeature100mbFileStorage:"100Mo de stockage de fichiers",planFeature10gbFileStorage:"10Go de stockage de fichiers",planFeature50gbFileStorage:"50Go de stockage de fichiers",planFeature100mbVectorDb:"100Mo de stockage vectoriel",planFeature1gbVectorDb:"1Go de stockage vectoriel",planFeature5gbVectorDb:"5Go de stockage vectoriel",planFeatureCommunitySupport:"Support communautaire",planFeatureUnlimitedAiAgents:"Agents IA illimités",planFeatureWhatsappChannel:"Canal WhatsApp",planFeatureHelpCenterCustomDomain:"Domaine personnalisé du centre d'aide",planFeatureWhitelabelWebchat:"Webchat sans marque",planFeatureTechnicalSupportLiveChat:"Support technique par chat en direct",planFeatureUnlimitedSeats:"Postes illimités",planFeatureTeamsRoutingRbac:"Équipes, routage et RBAC",planFeatureTeamLevelAnalytics:"Analytiques par équipe",planFeatureVoiceChannel:"Canal vocal",planFeatureDedicatedSupport:"Support dédié",planFeatureSlaSecurity:"SLA et audit de sécurité",planFeatureCustomStorage:"Stockage personnalisé",planFeatureDescAiUsageIncluded:"L'utilisation de l'IA est le coût d'un appel à un LLM. Chaque conversation inclut {rate}. Nous le prenons en charge.",planFeatureDesc3Seats:"Jusqu'à 3 membres de l'équipe peuvent collaborer dans cet espace de travail.",planFeatureDescUnlimitedSeats:"Invitez autant de membres d'équipe que nécessaire dans l'espace de travail.",planFeatureDesc3AiAgents:"Créez et publiez jusqu'à 3 agents IA distincts.",planFeatureDescUnlimitedAiAgents:"Créez et publiez autant d'agents IA que nécessaire.",planFeatureDescBotpressDesk:"La boîte de réception de transfert humain où les agents trient et répondent aux conversations en direct.",planFeatureDescBotpressStudioAdk:"Le constructeur visuel Studio plus le Kit de Développement d'Agents pour créer des agents en code.",planFeatureDescBotpressViber:"Créez des agents IA en discutant avec Vibe — sans code requis.",planFeatureDescHelpCenter:"Une base de connaissances hébergée depuis laquelle votre agent répond et que les clients peuvent consulter.",planFeatureDescHelpCenterCustomDomain:"Publiez votre centre d'aide depuis votre propre domaine plutôt qu'une URL Botpress.",planFeatureDescWhatsappChannel:"Connectez votre agent à WhatsApp pour discuter avec vos clients là-bas.",planFeatureDescVoiceChannel:"Connectez votre agent au téléphone/vocal pour qu'il puisse gérer les conversations parlées.",planFeatureDescWhitelabelWebchat:"Supprimez la marque Botpress du widget de chat web pour qu'il soit entièrement le vôtre.",planFeatureDescTeamsRoutingRbac:"Organisez les membres en équipes, routez les conversations entre elles et contrôlez l'accès par rôle.",planFeatureDescTeamLevelAnalytics:"Métriques de performance et de volume ventilées par équipe.",planFeatureDescTechnicalSupportLiveChat:"Contactez l'équipe de support Botpress par chat en direct pour obtenir de l'aide.",planFeatureDescCommunitySupport:"Obtenez de l'aide sur le forum communautaire Botpress et Discord.",planFeatureDescDedicatedSupport:"Un contact désigné et un canal de support prioritaire pour votre compte.",planFeatureDescSlaSecurity:"Un SLA de disponibilité contractuel et un audit de sécurité/conformité pour votre processus d'achat.",planFeatureDescCustomStorage:"Limites de stockage adaptées à votre charge de travail, au-delà des niveaux standard.",planFeatureDesc1kTableRows:"1K lignes dans toutes vos tables de données.",planFeatureDesc100kTableRows:"100K lignes dans toutes vos tables de données.",planFeatureDesc500kTableRows:"500K lignes dans toutes vos tables de données.",planFeatureDesc100mbFileStorage:"100Mo de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc10gbFileStorage:"10Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc50gbFileStorage:"50Go de fichiers téléchargés (documents, images, pièces jointes).",planFeatureDesc100mbVectorDb:"100Mo d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc1gbVectorDb:"1Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planFeatureDesc5gbVectorDb:"5Go d'embeddings pour la recherche et la récupération dans la base de connaissances.",planDescriptionCommunity:"Plan gratuit pour essayer",planDescriptionPlus:"Pour les entreprises en croissance",planDescriptionTeam:"Pour les petites équipes",planDescriptionEnterprise:"Abonnement à la licence entreprise",planDescriptionManaged:"Abonnement à la licence gérée",addonNameConversationSessions:"Conversations",addonNameStorage:"Stockage",addonDescriptionConversationSessions:"Ajoute des sessions de conversation pour le mois",addonDescriptionStorage:"Ajoute des lignes de table, de l'espace vectoriel et des fichiers",summaryCurrentPlan:"Plan actuel",summaryManagedInDashboard:"Géré dans le tableau de bord",summaryManagedMeta:"Cet espace de travail utilise un système de facturation antérieur.",summaryNoPlan:"Aucun plan",summaryConversationsPerMo:"{n} conversations/mois",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on actif",summaryActiveAddons:"{count} add-ons actifs",summaryNoAddons:"Aucun add-on",summaryNoAddonsMeta:"Ajoutez des conversations ou du stockage supplémentaires",summaryAddonsUpdates:"Passe à {amount} le {date}",autoRechargeTitle:"Recharge automatique",autoRechargeDescription:"Recharge automatiquement votre crédit d’usage IA lorsque votre solde est bas.",autoRechargeEnableLabel:"Activer la recharge automatique",autoRechargeLoadErrorTitle:"Impossible de charger vos paramètres",autoRechargeLoadError:"Une erreur s'est produite lors du chargement de vos paramètres de recharge automatique. Vérifiez votre connexion et réessayez.",autoRechargeThresholdLabel:"Seuil de recharge",autoRechargeThresholdHint:"La recharge se déclenche lorsque votre solde passe sous ce montant, 1 $ ou plus.",autoRechargeThresholdError:"Doit être un montant entier d’au moins 1 $.",autoRechargeChunkLabel:"Montant de recharge",autoRechargeChunkHint:"Montant en dollars entiers, 5 $ ou plus.",autoRechargeChunkError:"Doit être un montant en dollars entiers d’au moins 5 $.",autoRechargeLimitLabel:"Limite mensuelle (USD)",autoRechargeLimitHint:"Ne rechargera pas plus que ce montant par mois de facturation. Doit être un multiple du montant de recharge ({amount}).",autoRechargeLimitError:"Doit être un multiple du montant de recharge ({amount}).",autoRechargeSetLimitLabel:"Définir une limite mensuelle",autoRechargeSetLimitHint:"Plafonner les dépenses de la recharge automatique chaque mois de facturation.",autoRechargeNoCapHint:"La recharge automatique n'a pas de plafond mensuel.",autoRechargePaymentFailed:"La recharge automatique a été désactivée après un échec de paiement. Assurez-vous que votre moyen de paiement dispose de fonds suffisants, puis achetez des crédits manuellement pour la réactiver automatiquement.",autoRechargeUpdateSuccess:"Paramètres de recharge automatique mis à jour",autoRechargeUpdateError:"Impossible de mettre à jour vos paramètres de recharge automatique",autoRechargeSummaryOn:"Recharge auto activée",autoRechargeSummaryOff:"Recharge auto désactivée",autoRechargeSummaryEyebrow:"Crédits IA",autoRechargeSummaryMeta:"{amount} de recharge · jusqu’à {limit}/mois",autoRechargeSummaryMetaNoLimit:"{amount} de recharge · sans limite",autoRechargeSummaryLoadError:"Impossible de charger l'état",autoRechargeRequiresPaidPlanTitle:"La recharge automatique nécessite un plan payant",autoRechargeRequiresPaidPlanBody:"Mettez à niveau votre plan pour recharger automatiquement votre crédit IA.",autoRechargeUpgradeCta:"Mettre à niveau le plan",aiSpendDialogTitle:"Dépenses IA",buyCreditsTitle:"Acheter des crédits IA",buyCreditsDescription:"Ajoutez dès maintenant du crédit IA à votre solde. Achat unique, débité sur votre moyen de paiement.",buyCreditsAmountLabel:"Montant du crédit",buyCreditsAmountHint:"Montant en dollars et cents, 5 $ ou plus.",buyCreditsAmountError:"Doit être d'au moins 5 $, avec 2 décimales maximum.",buyCreditsCta:"Acheter",buyConfirmTitle:"Confirmer l'achat",buyConfirmItem:"Crédits IA",buyConfirmTotal:"Total",buyConfirmNoCard:"Ajoutez un moyen de paiement pour continuer.",buyConfirmBack:"Retour",buyConfirmCta:"Payer {amount}",buyCreditsSuccess:"Crédits achetés",buyCreditsError:"Impossible d'acheter les crédits"},ed={free:"Gratis",manage:"Gestionar",cancel:"Cancelar",close:"Cerrar",open:"Abrir",edit:"Editar",update:"Actualizar",tryAgain:"Reintentar",save:"Guardar",upgrade:"Actualizar plan",downgrade:"Reducir plan",billingIntervalLabel:"Intervalo de facturación",billedMonthly:"Facturado mensualmente",billedAnnually:"Facturado anualmente",conversationsUnit:"conversaciones",conversationsPerMonth:"conversaciones / mes",perMonth:"/mes",perYear:"/año",perMonthLong:"/mes",perYearLong:"/año",resourceConversations:"Conversaciones / mes",resourceTableRows:"Filas de tabla",resourceVectorDb:"Almacenamiento vectorial",resourceFileStorage:"Almacenamiento de archivos",metricConversations:"conversaciones mensuales",metricTableRows:"filas de tabla",metricVectorDb:"almacenamiento vectorial",metricFileStorage:"almacenamiento de archivos",metricAiSpend:"gasto en IA",metricBotCount:"agentes",usageBannerLimitReached:"Has alcanzado tu límite de {label}. Actualiza ahora para evitar interrupciones.",usageBannerNearLimit:"Has usado el {pct}% de tu {label}. Actualiza para evitar alcanzar tu límite.",usageBannerDefaultCta:"Actualizar plan",usageBannerManageCta:"Gestionar plan",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plan actual",planBannerManagedTitle:"Gestionado en el Panel",planBannerManagedSub:"Este espacio de trabajo utiliza un sistema de facturación anterior.",planBannerNoPlan:"Sin plan",planBannerCustomPricing:"Precio personalizado",planBannerCustomConversations:"Conversaciones personalizadas",planBannerCustom:"Personalizado",planBannerRenews:"Renovación el {date}",planBannerDowngradesTo:"Cambia a {plan} el {date}",planBannerManageCta:"Gestionar plan",planBannerPendingUpgradeNote:"Actualización pendiente — esperando el pago",pendingUpgradeBannerText:"Tu último pago falló — esta actualización de suscripción está en espera hasta que se procese.",pendingUpgradeBannerCta:"Ver actualización pendiente",pendingUpgradeBlocksManageTooltip:"Resuelve tu actualización pendiente antes de hacer más cambios",pendingUpgradeTitle:"Actualización pendiente",pendingUpgradeFailedLabel:"Pago fallido",pendingUpgradeSubtitle:"Revisa tu método de pago y asegúrate de tener fondos suficientes, luego inténtalo de nuevo.",pendingUpgradeItemsLabel:"Elementos",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Monto a pagar",pendingUpgradeAmountUnavailable:"No se pudo cargar el monto a pagar — inténtalo de nuevo en un momento.",pendingUpgradeExpiresOn:"Si no se paga antes del {date}, esta actualización se cancelará automáticamente",pendingUpgradePayCta:"Pagar factura",pendingUpgradeCancelCta:"Cancelar actualización",pendingUpgradePaySuccess:"Pago confirmado",pendingUpgradePayError:"No se pudo pagar la factura",pendingUpgradeCancelSuccess:"Actualización pendiente cancelada",pendingUpgradeCancelError:"No se pudo cancelar la actualización pendiente",checkoutTitle:"Configura tu plan",checkoutBackLabel:"Volver a los planes",checkoutPlanDetails:"Detalles del plan",checkoutMonthlyBilling:"Facturación mensual",checkoutAnnualBilling:"Facturación anual",checkoutSaveBadge:"Ahorra un {savings}%",checkoutPaymentMethodTitle:"Método de pago",checkoutSavedCardTab:"Guardada",checkoutNewCardTab:"Nueva tarjeta",checkoutBillingAddressTitle:"Dirección de facturación",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Actualizar",checkoutIsBusiness:"Compro como empresa",checkoutBusinessDetails:"Datos de empresa",checkoutBusinessNamePlaceholder:"Nombre de la empresa",checkoutTaxIdTypeLabel:"Tipo de NIF",checkoutTaxIdNumberPlaceholder:"Número de NIF",checkoutNoTaxRequired:"No se requiere NIF para tu país de facturación.",checkoutSelectCountryForTax:"Selecciona tu país de facturación arriba para añadir un NIF.",checkoutContactInfo:"Información de contacto",checkoutEmailLabel:"Correo electrónico",checkoutCardNotReady:"El campo de tarjeta no está listo",checkoutPaymentSetupFailed:"Error al configurar el pago",checkoutPaymentMethodMissing:"No se pudo obtener el método de pago",checkoutAddressIncomplete:"Completa tu dirección de facturación",checkoutGenericError:"Se produjo un error al procesar tu pago. No se te ha cobrado dos veces.",checkoutSuccessToast:"Suscripción activada",checkoutErrorToast:"Error de pago",orderTopFeatures:"Características principales",orderThen:"luego {price} por {packSize}",orderPreviewError:"No pudimos calcular tu total. Inténtalo de nuevo en un momento.",orderPlanFromDate:"Plan {plan} — desde el {date}",orderProratedToday:"Prorrateo de hoy",orderProratedTodayDesc:"Al cambiar de plan a mitad de período, solo pagas por el tiempo restante en tu período de facturación actual. El precio completo del plan se cobra en tu próxima renovación, no hoy.",orderCreditUnusedTime:"Crédito por tiempo no utilizado",orderAdjustUnusedTime:"Ajuste por tiempo no utilizado",orderCreditUnusedTimeDesc:"Ya pagaste por el tiempo restante en tu período de facturación actual. Acreditamos ese tiempo no utilizado y lo reaplicamos a tu nueva tarifa, para que nunca se te cobre dos veces.",orderAdjustUnusedTimeDesc:"Cambiar a mitad de ciclo significa que prorrateamos la diferencia entre tu plan antiguo y el nuevo por los días restantes en tu período de facturación actual.",orderAccountCredit:"Crédito de cuenta",orderDueToday:"A pagar hoy",orderCreditTowardNext:"Tienes {amount} de tiempo no utilizado acreditado en tu próxima factura.",orderBalanceAsCredit:"Tu saldo restante de {amount} se aplica como crédito en tu próxima factura.",orderSavingsNote:"Estás ahorrando {monthlySavings}/mes al elegir un plan anual. Eso es {yearlySavings}/año.",orderSubscribe:"Suscribirse",orderPreviewUnavailable:"Vista previa no disponible",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensualmente",orderRenewsMonthly:"Se renueva mensualmente hasta que canceles.",orderRenewsAnnually:"Se renueva anualmente hasta que canceles.",orderChargedStarting:"Se te cobrará {amount}{period} a partir del {date}.",orderChargedNoDate:"Se te cobrará {amount}{period}.",orderCancelNote:"Cancela en cualquier momento en la Configuración. Al suscribirte, autorizas a Botpress a almacenar y cobrar tu método de pago.",invoicesTitle:"Historial de facturación",invoicesLoadError:"No pudimos cargar tus facturas. Inténtalo de nuevo en un momento.",invoicesEmpty:"Aún no hay facturas. Aparecerán aquí después de tu primer cargo.",invoicesDownloadLabel:"Descargar factura del {date}",invoiceStatusPaid:"Pagada",invoiceStatusDue:"Pendiente",invoiceStatusDraft:"Borrador",invoiceStatusUnpaid:"Impagada",invoiceStatusVoid:"Anulada",upgradeDialogTitle:"Actualizar tu plan",upgradeMonthly:"Mensual",upgradeAnnual:"Anual",upgradeSaveBadge:"Ahorra un {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mes ({currency})",upgradeNoTopup:"Sin recarga",upgradeCurrentPlan:"Tu plan actual",upgradeNextPlan:"Siguiente plan",upgradeCancelDowngrade:"Cancelar reducción",upgradeDowngrade:"Reducir plan",upgradeSwitchToAnnual:"Cambiar a anual",upgradeSwitchToMonthly:"Cambiar a mensual",upgradePlanManaged:"Tu plan está gestionado por Botpress — contáctanos para cambiarlo",upgradeUpgrade:"Actualizar",upgradeEverythingIn:"Todo lo de {planName}",upgradeSeeAllFeatures:"Ver las {total} funciones",upgradeShowFewerFeatures:"Mostrar menos funciones",upgradeContactUs:"Contáctanos",upgradeFooterEnterprise:"¿Necesitas más o trabajas a gran escala?",upgradeFooterAboutEnterprise:"para Enterprise. Compara planes en",upgradeThenPer:"luego {price} por {packSize} adicionales",upgradeDowngradeSuccess:"Plan reducido",upgradeDowngradeError:"Error al reducir el plan",upgradeCancelDowngradeSuccess:"Reducción programada cancelada",upgradeCancelDowngradeError:"No se pudo cancelar la reducción",cancelSurveyConfirmTitle:"¿Seguro que quieres cancelar?",cancelSurveyConfirmLede:"Las funciones de {plan} siguen disponibles <bold>hasta que termine este ciclo de facturación, el {date}.</bold> Después, perderás el acceso a:",cancelSurveyConfirmLedeNoDate:"Las funciones de {plan} siguen disponibles hasta que termine este ciclo de facturación. Después, perderás el acceso a:",cancelSurveyCurrentPlan:"Tu plan actual",cancelSurveyCurrentAddons:"Tus complementos actuales",cancelSurveyAddonPack:"Paquete de {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversaciones",cancelSurveyKeep:"Mantener mi suscripción",cancelSurveyContinue:"Continuar",cancelSurveyFeedbackTitle:"Antes de que te vayas, nos encantaría conocer tu opinión.",cancelSurveyFeedbackLede:"Tu opinión nos ayuda a mejorar Botpress. ¿Cuál es el motivo principal por el que cancelas tu suscripción?",cancelSurveyReasonTooExpensive:"Demasiado caro para mis necesidades actuales",cancelSurveyReasonNotUsingEnough:"No uso Botpress lo suficiente",cancelSurveyReasonMissingFeature:"Falta una función clave que necesito",cancelSurveyReasonSwitchedTool:"Me cambié a otra herramienta o plataforma",cancelSurveyReasonTechnicalIssues:"Tuve problemas técnicos o errores",cancelSurveyReasonSupportExpectations:"El soporte o la orientación no cumplieron mis expectativas",cancelSurveyReasonTemporaryNeed:"Solo necesitaba Botpress temporalmente",cancelSurveyCommentLabel:"Comentarios adicionales",cancelSurveyOptional:"(opcional)",cancelSurveyCommentPlaceholder:"Comparte cualquier comentario adicional...",cancelSurveyConfirm:"Confirmar cancelación",addonsDialogTitle:"Gestionar add-ons",addonsSubtitleWithPlan:"Uso adicional para tu plan {planName}. Establece una cantidad en 0 para eliminar un add-on.",addonsSubtitleGeneric:"Uso adicional para tu plan. Establece una cantidad en 0 para eliminar un add-on.",addonsRequirePaidPlanTitle:"Los add-ons requieren un plan de pago",addonsRequirePaidPlanBody:"Actualiza tu plan para desbloquear conversaciones adicionales, almacenamiento y más.",addonsUpgradeCta:"Actualizar plan",addonsEach:"c/u",addonActiveOnly:"{count} activo",addonRemoved:"{activeNow} activos ahora · eliminados",addonRemovedOnDate:"{activeNow} activos ahora · eliminados el {date}",addonChanged:"{activeNow} activos ahora · {pending} tras actualizar",addonChangedOnDate:"{activeNow} activos ahora · {pending} el {date}",addonsNewLimits:"Tus nuevos límites",addonsPlanLine:"Plan {planName}",addonsGenericPlan:"Plan",addonsTotalMonthly:"Costo mensual total",addonsTotalYearly:"Costo anual total",addonsDueToday:"A pagar hoy",addonsChargedNow:"Se te cobrará {amount} ahora por el resto de este período de facturación. ",addonsNoChargeToday:"Sin cargo hoy — el cambio se calcula al prorrateo. ",addonsRenewalWithDate:"Tus add-ons costarán entonces {amount}{interval} hasta que los elimines, a partir del {date}.",addonsRenewalNoDate:"Tus add-ons costarán entonces {amount}{interval} hasta que los elimines.",addonsReadonlyNote:"Los add-ons de este espacio de trabajo están gestionados por Botpress — contáctanos para cambiarlos.",addonsUpdateSuccess:"Suscripción actualizada",addonsUpdateError:"No se pudo actualizar tus add-ons",addonsUpdateSubscription:"Actualizar suscripción",addonsConvos:"{n} conv.",outdatedTitle:"La facturación se gestiona en el Panel de Botpress",outdatedText:"Este espacio de trabajo utiliza un sistema de facturación anterior, por lo que los cambios de plan y los datos de pago no se pueden gestionar aquí.",outdatedCta:"Abrir facturación en el Panel",outgrowTitle:"Estás a punto de superar el plan Gratuito",outgrowLede:"El plan Gratuito incluye <bold>{quota}</bold> conversaciones en total, y no se renuevan. Al actualizar, obtienes una asignación mensual, desbloqueas más canales y añades packs de conversaciones, para que tus agentes nunca dejen de responder.",outgrowSoFar:"Hasta ahora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversaciones gratuitas usadas · no se renuevan",outgrowNoTopup:"Sin recarga",outgrowUpgradeTo:"Actualizar a {planName}",outgrowEverythingIn:"Todo lo de {planName}, y",outgrowNeedCustom:"¿Necesitas volumen personalizado, SLAs o voz?",outgrowTalkToSales:"Habla con ventas",outgrowCompareAll:"Comparar todos los planes",outgrowThenPer:"luego {symbol}{amount} por {packSize} adicionales",paymentDialogTitle:"Pago y facturación",paymentSessionError:"No pudimos iniciar una sesión segura.",paymentMethodSection:"Método de pago",paymentCardSaveError:"No se pudo guardar tu tarjeta",paymentMethodMissing:"No se pudo obtener el método de pago",paymentCardGenericError:"No pudimos guardar tu tarjeta. Verifica tus datos e inténtalo de nuevo.",paymentReplace:"Reemplazar",paymentBillingAddressSection:"Dirección de facturación",paymentTaxIds:"Número de identificación fiscal",paymentTaxEmpty:"Añade un número de IVA o identificación fiscal para que aparezca en tus facturas.",paymentTaxIdType:"Tipo de NIF",paymentTaxSelectType:"Seleccionar tipo",paymentTaxIdNumber:"Número de NIF",paymentTaxRemove:"Eliminar NIF",paymentTaxAdd:"+ Añadir NIF",paymentAddressIncomplete:"Completa tu dirección de facturación.",paymentAddressError:"No se pudieron actualizar tus datos de facturación.",paymentCardUpdated:"Tarjeta actualizada",paymentDetailsUpdated:"Datos de facturación actualizados",paymentSaveCard:"Guardar tarjeta",paymentSaveBillingDetails:"Guardar datos de facturación",paymentDetailsUpdateError:"No se pudieron actualizar tus datos de facturación",usageWidgetLimitReached:"Límite alcanzado",usageWidgetRunningLow:"Stock bajo",usageWidgetUpgradeToKeepGoing:"Actualiza para continuar.",usageWidgetOnlyLeft:"Solo quedan {left}.",usageWidgetFreeExhausted:"Todas tus conversaciones gratuitas están agotadas y no se renuevan.",usageWidgetFreeLeft:"Te quedan {left} conversaciones gratuitas y no se renuevan.",usageWidgetEnterpriseOverQuota:"Un representante de Botpress se pondrá en contacto contigo al final del período de uso.",usageWidgetResets:"Se restablece el {date}",usageWidgetViewOptions:"Ver opciones de plan",usagePopoverFreeTitle:"Uso del plan gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversaciones</bold> incluidas, en total. No se renuevan, y el plan Gratis no tiene recargas.",usagePopoverPlanName:"Plan {planName}",usagePopoverTitle:"El período actual termina el {date}",usagePopoverNudgeText:"<bold>¿Necesitas más espacio?</bold> Plus incluye agentes ilimitados, {quota} conversaciones al mes y paquetes de {packSize} adicionales cuando los necesites.",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de facturación",dashboardPrevMonth:"Mes anterior",dashboardNextMonth:"Mes siguiente",dashboardConversationsTitle:"Conversaciones",dashboardConversationsHint:"Conversaciones utilizadas este mes. En los planes de pago, se añaden conversaciones adicionales automáticamente cuando alcanzas tu límite para que el servicio continúe.",dashboardStorageTitle:"Almacenamiento",dashboardStorageHint:"Compartido entre archivos, base de conocimiento y tablas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversación incluye una asignación de uso de IA. Controla cuánto de esa asignación has usado",dashboardEnterpriseUsageNotice:"Tu uso no se bloqueará si superas la cuota.",dashboardLoadError:"No pudimos cargar tu uso. Inténtalo de nuevo en un momento.",dashboardNoBotSpend:"Sin gasto de IA por bot en este período.",dashboardAiByBot:"Gasto de IA por bot",dashboardCreditsTitle:"Créditos",dashboardCreditsHint:"Créditos aplicados a tu gasto de IA. Esta sección se actualiza diariamente.",dashboardCreditsStarts:"Inicio",dashboardCreditsExpires:"Vencimiento",dashboardCreditsPastUsage:"Usado antes de este mes",dashboardCreditsCurrentUsage:"Usado este mes",dashboardCreditsShowMore:"Mostrar más",dashboardCreditsLoadError:"No pudimos cargar tus créditos. Inténtalo de nuevo en un momento.",dashboardConversationsMetric:"Conversaciones",dashboardTableRows:"Filas de tabla",dashboardVectorDb:"Almacenamiento vectorial",dashboardFileStorage:"Almacenamiento de archivos",dashboardAiSpend:"Gasto en IA",dashboardFromPlan:"{amount} del plan {planName}",dashboardFromPlanGeneric:"{amount} de tu plan",dashboardFromPlanWithAddons:"{amount} del plan {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} de tu plan + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar límites",planFeatureAiUsageIncluded:"Uso de IA incluido: {amount}",planFeature3Seats:"3 puestos",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Centro de ayuda",planFeature1kTableRows:"1K filas de tabla",planFeature100kTableRows:"100K filas de tabla",planFeature500kTableRows:"500K filas de tabla",planFeature100mbFileStorage:"100MB de almacenamiento de archivos",planFeature10gbFileStorage:"10GB de almacenamiento de archivos",planFeature50gbFileStorage:"50GB de almacenamiento de archivos",planFeature100mbVectorDb:"100MB de almacenamiento vectorial",planFeature1gbVectorDb:"1GB de almacenamiento vectorial",planFeature5gbVectorDb:"5GB de almacenamiento vectorial",planFeatureCommunitySupport:"Soporte comunitario",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal de WhatsApp",planFeatureHelpCenterCustomDomain:"Dominio personalizado del centro de ayuda",planFeatureWhitelabelWebchat:"Webchat sin marca",planFeatureTechnicalSupportLiveChat:"Soporte técnico por chat en vivo",planFeatureUnlimitedSeats:"Puestos ilimitados",planFeatureTeamsRoutingRbac:"Equipos, enrutamiento y RBAC",planFeatureTeamLevelAnalytics:"Analíticas por equipo",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Soporte dedicado",planFeatureSlaSecurity:"SLA y revisión de seguridad",planFeatureCustomStorage:"Almacenamiento personalizado",planFeatureDescAiUsageIncluded:"El uso de IA es el costo de llamar a un LLM. Cada conversación incluye {rate}. Nosotros lo pagamos.",planFeatureDesc3Seats:"Hasta 3 miembros del equipo pueden colaborar en este espacio de trabajo.",planFeatureDescUnlimitedSeats:"Invita a todos los miembros del equipo que necesites al espacio de trabajo.",planFeatureDesc3AiAgents:"Crea y publica hasta 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crea y publica todos los agentes de IA que necesites.",planFeatureDescBotpressDesk:"La bandeja de entrada de traspaso a humanos donde los agentes gestionan y responden conversaciones en vivo.",planFeatureDescBotpressStudioAdk:"El constructor visual Studio más el Kit de Desarrollo de Agentes para crear agentes en código.",planFeatureDescBotpressViber:"Crea agentes de IA chateando con Vibe, sin necesidad de programar.",planFeatureDescHelpCenter:"Una base de conocimiento alojada desde la que responde tu agente y que los clientes pueden consultar.",planFeatureDescHelpCenterCustomDomain:"Publica tu centro de ayuda desde tu propio dominio en lugar de una URL de Botpress.",planFeatureDescWhatsappChannel:"Conecta tu agente a WhatsApp para chatear con los clientes allí.",planFeatureDescVoiceChannel:"Conecta tu agente al teléfono/voz para que pueda gestionar conversaciones habladas.",planFeatureDescWhitelabelWebchat:"Elimina la marca de Botpress del widget de chat web para que sea completamente tuyo.",planFeatureDescTeamsRoutingRbac:"Organiza miembros en equipos, enruta conversaciones entre ellos y controla el acceso por rol.",planFeatureDescTeamLevelAnalytics:"Métricas de rendimiento y volumen desglosadas por equipo.",planFeatureDescTechnicalSupportLiveChat:"Contacta al equipo de soporte de Botpress por chat en vivo para obtener ayuda.",planFeatureDescCommunitySupport:"Obtén ayuda del foro de la comunidad de Botpress y Discord.",planFeatureDescDedicatedSupport:"Un contacto designado y un canal de soporte prioritario para tu cuenta.",planFeatureDescSlaSecurity:"Un SLA de disponibilidad contractual y una revisión de seguridad/cumplimiento para tu proceso de adquisición.",planFeatureDescCustomStorage:"Límites de almacenamiento adaptados a tu carga de trabajo, más allá de los niveles estándar.",planFeatureDesc1kTableRows:"1K filas en todas tus tablas de datos.",planFeatureDesc100kTableRows:"100K filas en todas tus tablas de datos.",planFeatureDesc500kTableRows:"500K filas en todas tus tablas de datos.",planFeatureDesc100mbFileStorage:"100MB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc10gbFileStorage:"10GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc50gbFileStorage:"50GB de archivos subidos (documentos, imágenes, adjuntos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para búsqueda y recuperación en la base de conocimiento.",planDescriptionCommunity:"Plan gratuito para explorar",planDescriptionPlus:"Para negocios en crecimiento",planDescriptionTeam:"Para equipos pequeños",planDescriptionEnterprise:"Suscripción de licencia empresarial",planDescriptionManaged:"Suscripción de licencia gestionada",addonNameConversationSessions:"Conversaciones",addonNameStorage:"Almacenamiento",addonDescriptionConversationSessions:"Añade sesiones de conversación para el mes",addonDescriptionStorage:"Añade filas de tabla, espacio de base de datos vectorial y archivos",summaryCurrentPlan:"Plan actual",summaryManagedInDashboard:"Gestionado en el Panel",summaryManagedMeta:"Este espacio de trabajo utiliza un sistema de facturación anterior.",summaryNoPlan:"Sin plan",summaryConversationsPerMo:"{n} conversaciones/mes",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on activo",summaryActiveAddons:"{count} add-ons activos",summaryNoAddons:"Sin add-ons",summaryNoAddonsMeta:"Añade conversaciones o almacenamiento adicional",summaryAddonsUpdates:"Cambia a {amount} el {date}",autoRechargeTitle:"Recarga automática",autoRechargeDescription:"Recarga automáticamente tu crédito de uso de IA cuando tu saldo sea bajo.",autoRechargeEnableLabel:"Activar la recarga automática",autoRechargeLoadErrorTitle:"No pudimos cargar tu configuración",autoRechargeLoadError:"Algo salió mal al obtener tu configuración de auto-recarga. Revisa tu conexión e inténtalo de nuevo.",autoRechargeThresholdLabel:"Umbral de recarga",autoRechargeThresholdHint:"La recarga se activa cuando tu saldo cae por debajo de este monto, $1 o más.",autoRechargeThresholdError:"Debe ser un monto entero de al menos $1.",autoRechargeChunkLabel:"Monto de recarga",autoRechargeChunkHint:"Monto en dólares enteros, $5 o más.",autoRechargeChunkError:"Debe ser un monto en dólares enteros de al menos $5.",autoRechargeLimitLabel:"Límite mensual (USD)",autoRechargeLimitHint:"No recargará más que esto en un mes de facturación. Debe ser un múltiplo del monto de recarga ({amount}).",autoRechargeLimitError:"Debe ser un múltiplo del monto de recarga ({amount}).",autoRechargeSetLimitLabel:"Establecer un límite mensual",autoRechargeSetLimitHint:"Limita cuánto puede gastar la recarga automática cada mes de facturación.",autoRechargeNoCapHint:"La recarga automática no tiene un límite mensual.",autoRechargePaymentFailed:"La recarga automática se desactivó tras un pago fallido. Asegúrate de que tu método de pago tenga fondos suficientes y compra créditos manualmente para volver a activarla automáticamente.",autoRechargeUpdateSuccess:"Configuración de recarga automática actualizada",autoRechargeUpdateError:"No se pudo actualizar tu configuración de recarga automática",autoRechargeSummaryOn:"Recarga auto activada",autoRechargeSummaryOff:"Recarga auto desactivada",autoRechargeSummaryEyebrow:"Créditos de IA",autoRechargeSummaryMeta:"{amount} de recarga · hasta {limit}/mes",autoRechargeSummaryMetaNoLimit:"{amount} de recarga · sin límite",autoRechargeSummaryLoadError:"No se pudo cargar el estado",autoRechargeRequiresPaidPlanTitle:"La auto-recarga requiere un plan de pago",autoRechargeRequiresPaidPlanBody:"Actualiza tu plan para recargar automáticamente tu crédito de uso de IA.",autoRechargeUpgradeCta:"Actualizar plan",aiSpendDialogTitle:"Gasto de IA",buyCreditsTitle:"Comprar créditos de IA",buyCreditsDescription:"Agrega crédito de uso de IA a tu saldo ahora. Compra única, cobrada a tu método de pago.",buyCreditsAmountLabel:"Monto del crédito",buyCreditsAmountHint:"Monto en dólares y centavos, $5 o más.",buyCreditsAmountError:"Debe ser de al menos $5, con un máximo de 2 decimales.",buyCreditsCta:"Comprar",buyConfirmTitle:"Confirmar compra",buyConfirmItem:"Créditos de IA",buyConfirmTotal:"Total",buyConfirmNoCard:"Añade un método de pago para continuar.",buyConfirmBack:"Atrás",buyConfirmCta:"Pagar {amount}",buyCreditsSuccess:"Créditos comprados",buyCreditsError:"No se pudieron comprar los créditos"},ad={free:"Gratuito",manage:"Gerenciar",cancel:"Cancelar",close:"Fechar",open:"Abrir",edit:"Editar",update:"Atualizar",tryAgain:"Tentar novamente",save:"Salvar",upgrade:"Atualizar plano",downgrade:"Reduzir plano",billingIntervalLabel:"Intervalo de cobrança",billedMonthly:"Cobrado mensalmente",billedAnnually:"Cobrado anualmente",conversationsUnit:"conversas",conversationsPerMonth:"conversas / mês",perMonth:"/mês",perYear:"/ano",perMonthLong:"/mês",perYearLong:"/ano",resourceConversations:"Conversas / mês",resourceTableRows:"Linhas de tabela",resourceVectorDb:"Armazenamento vetorial",resourceFileStorage:"Armazenamento de arquivos",metricConversations:"conversas mensais",metricTableRows:"linhas de tabela",metricVectorDb:"armazenamento vetorial",metricFileStorage:"armazenamento de arquivos",metricAiSpend:"gastos com IA",metricBotCount:"agentes",usageBannerLimitReached:"Você atingiu seu limite de {label}. Atualize agora para evitar interrupções.",usageBannerNearLimit:"Você usou {pct}% de sua {label}. Atualize para evitar atingir seu limite.",usageBannerDefaultCta:"Atualizar plano",usageBannerManageCta:"Gerenciar plano",usageBannerDismiss:"Ignorar",planBannerEyebrow:"Plano atual",planBannerManagedTitle:"Gerenciado no Painel",planBannerManagedSub:"Este espaço de trabalho usa um sistema de cobrança anterior.",planBannerNoPlan:"Sem plano",planBannerCustomPricing:"Preço personalizado",planBannerCustomConversations:"Conversas personalizadas",planBannerCustom:"Personalizado",planBannerRenews:"Renova em {date}",planBannerDowngradesTo:"Muda para {plan} em {date}",planBannerManageCta:"Gerenciar plano",planBannerPendingUpgradeNote:"Atualização pendente — aguardando pagamento",pendingUpgradeBannerText:"Seu último pagamento falhou — esta atualização de assinatura está em espera até ser processada.",pendingUpgradeBannerCta:"Ver atualização pendente",pendingUpgradeBlocksManageTooltip:"Resolva sua atualização pendente antes de fazer mais alterações",pendingUpgradeTitle:"Atualização pendente",pendingUpgradeFailedLabel:"Pagamento falhou",pendingUpgradeSubtitle:"Revise sua forma de pagamento e verifique se há saldo suficiente, depois tente novamente.",pendingUpgradeItemsLabel:"Itens",pendingUpgradePlanChange:"{currentPlan} → {nextPlan}",pendingUpgradeAddonChange:"{currentQuantity}× {name} → {nextQuantity}× {name}",pendingUpgradeAmountDue:"Valor a pagar",pendingUpgradeAmountUnavailable:"Não foi possível carregar o valor a pagar — tente novamente em instantes.",pendingUpgradeExpiresOn:"Se não for paga até {date}, esta atualização será cancelada automaticamente",pendingUpgradePayCta:"Pagar fatura",pendingUpgradeCancelCta:"Cancelar atualização",pendingUpgradePaySuccess:"Pagamento confirmado",pendingUpgradePayError:"Não foi possível pagar a fatura",pendingUpgradeCancelSuccess:"Atualização pendente cancelada",pendingUpgradeCancelError:"Não foi possível cancelar a atualização pendente",checkoutTitle:"Configurar seu plano",checkoutBackLabel:"Voltar aos planos",checkoutPlanDetails:"Detalhes do plano",checkoutMonthlyBilling:"Cobrança mensal",checkoutAnnualBilling:"Cobrança anual",checkoutSaveBadge:"Economize {savings}%",checkoutPaymentMethodTitle:"Forma de pagamento",checkoutSavedCardTab:"Salvo",checkoutNewCardTab:"Novo cartão",checkoutBillingAddressTitle:"Endereço de cobrança",checkoutCancelEdit:"Cancelar",checkoutUpdateAddress:"Atualizar",checkoutIsBusiness:"Estou comprando como empresa",checkoutBusinessDetails:"Dados da empresa",checkoutBusinessNamePlaceholder:"Nome da empresa",checkoutTaxIdTypeLabel:"Tipo de CNPJ/CPF",checkoutTaxIdNumberPlaceholder:"Número de CNPJ/CPF",checkoutNoTaxRequired:"Nenhum número fiscal é necessário para seu país de cobrança.",checkoutSelectCountryForTax:"Selecione seu país de cobrança acima para adicionar um número fiscal.",checkoutContactInfo:"Informações de contato",checkoutEmailLabel:"E-mail",checkoutCardNotReady:"O campo do cartão não está pronto",checkoutPaymentSetupFailed:"Falha ao configurar pagamento",checkoutPaymentMethodMissing:"Não foi possível recuperar a forma de pagamento",checkoutAddressIncomplete:"Preencha seu endereço de cobrança",checkoutGenericError:"Ocorreu um erro ao processar seu pagamento. Você não foi cobrado duas vezes.",checkoutSuccessToast:"Assinatura ativada",checkoutErrorToast:"Erro de pagamento",orderTopFeatures:"Principais recursos",orderThen:"depois {price} por {packSize}",orderPreviewError:"Não foi possível calcular seu total. Tente novamente em um momento.",orderPlanFromDate:"Plano {plan} — a partir de {date}",orderProratedToday:"Rateado para hoje",orderProratedTodayDesc:"Ao mudar de plano no meio do período, você paga apenas pelo tempo restante no seu período de cobrança atual. O preço total do plano acima é cobrado na sua próxima renovação, não hoje.",orderCreditUnusedTime:"Crédito por tempo não utilizado",orderAdjustUnusedTime:"Ajuste por tempo não utilizado",orderCreditUnusedTimeDesc:"Você já pagou pelo tempo restante no seu período de cobrança atual. Creditamos esse tempo não utilizado e o reaplicamos na sua nova tarifa, para que você nunca seja cobrado duas vezes.",orderAdjustUnusedTimeDesc:"Mudar no meio do ciclo significa que rateamos a diferença entre seu plano antigo e o novo pelos dias restantes no seu período de cobrança atual.",orderAccountCredit:"Crédito em conta",orderDueToday:"A pagar hoje",orderCreditTowardNext:"Você tem {amount} de tempo não utilizado creditado na sua próxima fatura.",orderBalanceAsCredit:"Seu saldo restante de {amount} é aplicado como crédito na sua próxima fatura.",orderSavingsNote:"Você está economizando {monthlySavings}/mês ao escolher um plano anual. Isso é {yearlySavings}/ano.",orderSubscribe:"Assinar",orderPreviewUnavailable:"Pré-visualização indisponível",orderIntervalAnnual:"anualmente",orderIntervalMonthly:"mensalmente",orderRenewsMonthly:"Renova mensalmente até ser cancelado.",orderRenewsAnnually:"Renova anualmente até ser cancelado.",orderChargedStarting:"Você será cobrado {amount}{period} a partir de {date}.",orderChargedNoDate:"Você será cobrado {amount}{period}.",orderCancelNote:"Cancele a qualquer momento nas Configurações. Ao assinar, você autoriza a Botpress a armazenar e cobrar sua forma de pagamento.",invoicesTitle:"Histórico de cobrança",invoicesLoadError:"Não foi possível carregar suas faturas. Tente novamente em um momento.",invoicesEmpty:"Nenhuma fatura ainda. Elas aparecerão aqui após seu primeiro pagamento.",invoicesDownloadLabel:"Baixar fatura de {date}",invoiceStatusPaid:"Pago",invoiceStatusDue:"Pendente",invoiceStatusDraft:"Rascunho",invoiceStatusUnpaid:"Não pago",invoiceStatusVoid:"Cancelado",upgradeDialogTitle:"Atualizar seu plano",upgradeMonthly:"Mensal",upgradeAnnual:"Anual",upgradeSaveBadge:"Economize {savings}%",upgradeRecommended:"Recomendado",upgradePerMonthSuffix:"/ mês ({currency})",upgradeNoTopup:"Sem pacote adicional",upgradeCurrentPlan:"Seu plano atual",upgradeNextPlan:"Próximo plano",upgradeCancelDowngrade:"Cancelar redução",upgradeDowngrade:"Reduzir plano",upgradeSwitchToAnnual:"Mudar para anual",upgradeSwitchToMonthly:"Mudar para mensal",upgradePlanManaged:"Seu plano é gerenciado pela Botpress — entre em contato para alterá-lo",upgradeUpgrade:"Atualizar",upgradeEverythingIn:"Tudo do {planName}",upgradeSeeAllFeatures:"Ver todos os {total} recursos",upgradeShowFewerFeatures:"Mostrar menos recursos",upgradeContactUs:"Entre em contato",upgradeFooterEnterprise:"Precisa de mais, ou trabalhando em escala?",upgradeFooterAboutEnterprise:"sobre o Enterprise. Compare planos em",upgradeThenPer:"depois {price} por {packSize} adicionais",upgradeDowngradeSuccess:"Plano reduzido",upgradeDowngradeError:"Falha ao reduzir o plano",upgradeCancelDowngradeSuccess:"Redução agendada cancelada",upgradeCancelDowngradeError:"Não foi possível cancelar a redução",cancelSurveyConfirmTitle:"Tem certeza de que deseja cancelar?",cancelSurveyConfirmLede:"Os recursos do {plan} continuam disponíveis <bold>até o fim deste ciclo de cobrança, em {date}.</bold> Depois disso, você perderá o acesso a:",cancelSurveyConfirmLedeNoDate:"Os recursos do {plan} continuam disponíveis até o fim deste ciclo de cobrança. Depois disso, você perderá o acesso a:",cancelSurveyCurrentPlan:"Seu plano atual",cancelSurveyCurrentAddons:"Seus complementos atuais",cancelSurveyAddonPack:"Pacote de {name} ×{quantity}",cancelSurveyAddonConversations:"+{amount} conversas",cancelSurveyKeep:"Manter minha assinatura",cancelSurveyContinue:"Continuar",cancelSurveyFeedbackTitle:"Antes de você ir, adoraríamos ouvir sua opinião.",cancelSurveyFeedbackLede:"Sua opinião nos ajuda a melhorar o Botpress. Qual é o principal motivo do cancelamento da sua assinatura?",cancelSurveyReasonTooExpensive:"Caro demais para minhas necessidades atuais",cancelSurveyReasonNotUsingEnough:"Não uso o Botpress o suficiente",cancelSurveyReasonMissingFeature:"Falta um recurso importante de que preciso",cancelSurveyReasonSwitchedTool:"Mudei para outra ferramenta ou plataforma",cancelSurveyReasonTechnicalIssues:"Tive problemas técnicos ou bugs",cancelSurveyReasonSupportExpectations:"O suporte ou a orientação não atenderam às minhas expectativas",cancelSurveyReasonTemporaryNeed:"Só precisei do Botpress temporariamente",cancelSurveyCommentLabel:"Comentários adicionais",cancelSurveyOptional:"(opcional)",cancelSurveyCommentPlaceholder:"Compartilhe qualquer comentário adicional...",cancelSurveyConfirm:"Confirmar cancelamento",addonsDialogTitle:"Gerenciar add-ons",addonsSubtitleWithPlan:"Uso adicional para seu plano {planName}. Defina uma quantidade como 0 para remover um add-on.",addonsSubtitleGeneric:"Uso adicional para seu plano. Defina uma quantidade como 0 para remover um add-on.",addonsRequirePaidPlanTitle:"Os add-ons requerem um plano pago",addonsRequirePaidPlanBody:"Atualize seu plano para desbloquear conversas adicionais, armazenamento e muito mais.",addonsUpgradeCta:"Atualizar plano",addonsEach:"cada",addonActiveOnly:"{count} ativo",addonRemoved:"{activeNow} ativo agora · removido",addonRemovedOnDate:"{activeNow} ativo agora · removido em {date}",addonChanged:"{activeNow} ativo agora · {pending} após atualizar",addonChangedOnDate:"{activeNow} ativo agora · {pending} em {date}",addonsNewLimits:"Seus novos limites",addonsPlanLine:"Plano {planName}",addonsGenericPlan:"Plano",addonsTotalMonthly:"Custo mensal total",addonsTotalYearly:"Custo anual total",addonsDueToday:"A pagar hoje",addonsChargedNow:"Você será cobrado {amount} agora pelo restante deste período de cobrança. ",addonsNoChargeToday:"Sem cobrança hoje — a mudança é rateada. ",addonsRenewalWithDate:"Seus add-ons passarão então a custar {amount}{interval} até você removê-los, a partir de {date}.",addonsRenewalNoDate:"Seus add-ons passarão então a custar {amount}{interval} até você removê-los.",addonsReadonlyNote:"Os add-ons deste espaço de trabalho são gerenciados pela Botpress — entre em contato para alterá-los.",addonsUpdateSuccess:"Assinatura atualizada",addonsUpdateError:"Não foi possível atualizar seus add-ons",addonsUpdateSubscription:"Atualizar assinatura",addonsConvos:"{n} conv.",outdatedTitle:"A cobrança é gerenciada no Painel da Botpress",outdatedText:"Este espaço de trabalho usa um sistema de cobrança anterior, portanto, alterações de plano e detalhes de pagamento não podem ser gerenciados aqui.",outdatedCta:"Abrir cobrança no Painel",outgrowTitle:"Você está prestes a superar o plano Gratuito",outgrowLede:"O plano Gratuito inclui <bold>{quota}</bold> conversas no total, e elas não são renovadas. Ao atualizar, você passa para uma cota mensal, desbloqueia mais canais e adiciona pacotes de conversas, para que seus agentes nunca parem de responder.",outgrowSoFar:"Até agora",outgrowUsageText:"<bold>{used}</bold> de <bold>{quota}</bold> conversas gratuitas usadas · elas não são renovadas",outgrowNoTopup:"Sem pacote adicional",outgrowUpgradeTo:"Atualizar para {planName}",outgrowEverythingIn:"Tudo do {planName}, e",outgrowNeedCustom:"Precisa de volume personalizado, SLAs ou voz?",outgrowTalkToSales:"Fale com vendas",outgrowCompareAll:"Comparar todos os planos",outgrowThenPer:"depois {symbol}{amount} por {packSize} adicionais",paymentDialogTitle:"Pagamento e cobrança",paymentSessionError:"Não foi possível iniciar uma sessão segura.",paymentMethodSection:"Forma de pagamento",paymentCardSaveError:"Não foi possível salvar seu cartão",paymentMethodMissing:"Não foi possível recuperar a forma de pagamento",paymentCardGenericError:"Não foi possível salvar seu cartão. Verifique seus dados e tente novamente.",paymentReplace:"Substituir",paymentBillingAddressSection:"Endereço de cobrança",paymentTaxIds:"Números fiscais",paymentTaxEmpty:"Adicione um número de CNPJ/CPF para que ele apareça em suas faturas.",paymentTaxIdType:"Tipo de número fiscal",paymentTaxSelectType:"Selecionar tipo",paymentTaxIdNumber:"Número fiscal",paymentTaxRemove:"Remover número fiscal",paymentTaxAdd:"+ Adicionar número fiscal",paymentAddressIncomplete:"Preencha seu endereço de cobrança.",paymentAddressError:"Não foi possível atualizar seus dados de cobrança.",paymentCardUpdated:"Cartão atualizado",paymentDetailsUpdated:"Dados de cobrança atualizados",paymentSaveCard:"Salvar cartão",paymentSaveBillingDetails:"Salvar dados de cobrança",paymentDetailsUpdateError:"Não foi possível atualizar seus dados de cobrança",usageWidgetLimitReached:"Limite atingido",usageWidgetRunningLow:"Estoque baixo",usageWidgetUpgradeToKeepGoing:"Atualize para continuar.",usageWidgetOnlyLeft:"Apenas {left} restantes.",usageWidgetFreeExhausted:"Todas as suas conversas gratuitas foram usadas e não são renovadas.",usageWidgetFreeLeft:"{left} conversas gratuitas restantes e elas não são renovadas.",usageWidgetEnterpriseOverQuota:"Um representante da Botpress entrará em contato no fim do período de uso.",usageWidgetResets:"Reinicia em {date}",usageWidgetViewOptions:"Ver opções de plano",usagePopoverFreeTitle:"Uso do plano gratuito",usagePopoverFreeSubtitle:"<bold>{quota} conversas</bold> incluídas, no total. Elas não são renovadas, e o plano Gratuito não tem recargas.",usagePopoverPlanName:"Plano {planName}",usagePopoverTitle:"O período atual termina em {date}",usagePopoverNudgeText:"<bold>Precisa de mais espaço?</bold> O Plus inclui agentes ilimitados, {quota} conversas por mês e pacotes de {packSize} extras quando você precisar.",dashboardUsage:"Uso",dashboardBillingPeriod:"Período de cobrança",dashboardPrevMonth:"Mês anterior",dashboardNextMonth:"Próximo mês",dashboardConversationsTitle:"Conversas",dashboardConversationsHint:"Conversas usadas neste mês. Nos planos pagos, conversas adicionais são adicionadas automaticamente quando você atinge seu limite para que o serviço continue.",dashboardStorageTitle:"Armazenamento",dashboardStorageHint:"Compartilhado entre arquivos, base de conhecimento e tabelas.",dashboardAiTitle:"Uso de IA",dashboardAiHint:"Cada conversa inclui uma cota de uso de IA. Acompanhe quanto dessa cota você já usou",dashboardEnterpriseUsageNotice:"Seu uso não será bloqueado se você ultrapassar a cota.",dashboardLoadError:"Não foi possível carregar seu uso. Tente novamente em um momento.",dashboardNoBotSpend:"Sem gastos de IA por bot neste período.",dashboardAiByBot:"Gastos de IA por bot",dashboardCreditsTitle:"Créditos",dashboardCreditsHint:"Créditos aplicados aos seus gastos com IA. Esta seção é atualizada diariamente.",dashboardCreditsStarts:"Início",dashboardCreditsExpires:"Expiração",dashboardCreditsPastUsage:"Usado antes deste mês",dashboardCreditsCurrentUsage:"Usado este mês",dashboardCreditsShowMore:"Mostrar mais",dashboardCreditsLoadError:"Não foi possível carregar seus créditos. Tente novamente em instantes.",dashboardConversationsMetric:"Conversas",dashboardTableRows:"Linhas de tabela",dashboardVectorDb:"Armazenamento vetorial",dashboardFileStorage:"Armazenamento de arquivos",dashboardAiSpend:"Gastos com IA",dashboardFromPlan:"{amount} do plano {planName}",dashboardFromPlanGeneric:"{amount} do seu plano",dashboardFromPlanWithAddons:"{amount} do plano {planName} + {addonAmount} de add-ons",dashboardFromPlanGenericWithAddons:"{amount} do seu plano + {addonAmount} de add-ons",dashboardIncreaseLimits:"Aumentar limites",planFeatureAiUsageIncluded:"Uso de IA incluído: {amount}",planFeature3Seats:"3 vagas",planFeature3AiAgents:"3 agentes de IA",planFeatureBotpressDesk:"Botpress Desk",planFeatureBotpressStudioAdk:"Botpress Studio + ADK",planFeatureBotpressViber:"Botpress Viber",planFeatureHelpCenter:"Central de ajuda",planFeature1kTableRows:"1K linhas de tabela",planFeature100kTableRows:"100K linhas de tabela",planFeature500kTableRows:"500K linhas de tabela",planFeature100mbFileStorage:"100MB de armazenamento de arquivos",planFeature10gbFileStorage:"10GB de armazenamento de arquivos",planFeature50gbFileStorage:"50GB de armazenamento de arquivos",planFeature100mbVectorDb:"100MB de armazenamento vetorial",planFeature1gbVectorDb:"1GB de armazenamento vetorial",planFeature5gbVectorDb:"5GB de armazenamento vetorial",planFeatureCommunitySupport:"Suporte da comunidade",planFeatureUnlimitedAiAgents:"Agentes de IA ilimitados",planFeatureWhatsappChannel:"Canal do WhatsApp",planFeatureHelpCenterCustomDomain:"Domínio personalizado da central de ajuda",planFeatureWhitelabelWebchat:"Webchat sem marca",planFeatureTechnicalSupportLiveChat:"Suporte técnico via chat ao vivo",planFeatureUnlimitedSeats:"Vagas ilimitadas",planFeatureTeamsRoutingRbac:"Equipes, roteamento e RBAC",planFeatureTeamLevelAnalytics:"Análises por equipe",planFeatureVoiceChannel:"Canal de voz",planFeatureDedicatedSupport:"Suporte dedicado",planFeatureSlaSecurity:"SLA e revisão de segurança",planFeatureCustomStorage:"Armazenamento personalizado",planFeatureDescAiUsageIncluded:"O uso de IA é o custo de chamar um LLM. Cada conversa inclui {rate}. Nós pagamos por você.",planFeatureDesc3Seats:"Até 3 membros da equipe podem colaborar neste espaço de trabalho.",planFeatureDescUnlimitedSeats:"Convide quantos membros da equipe precisar para o espaço de trabalho.",planFeatureDesc3AiAgents:"Crie e publique até 3 agentes de IA distintos.",planFeatureDescUnlimitedAiAgents:"Crie e publique quantos agentes de IA precisar.",planFeatureDescBotpressDesk:"A caixa de entrada de transferência para humanos onde os agentes triagem e respondem conversas ao vivo.",planFeatureDescBotpressStudioAdk:"O construtor visual Studio mais o Kit de Desenvolvimento de Agentes para criar agentes em código.",planFeatureDescBotpressViber:"Crie agentes de IA conversando com o Vibe, sem precisar programar.",planFeatureDescHelpCenter:"Uma base de conhecimento hospedada da qual seu agente responde e que os clientes podem consultar.",planFeatureDescHelpCenterCustomDomain:"Publique sua central de ajuda a partir do seu próprio domínio em vez de uma URL da Botpress.",planFeatureDescWhatsappChannel:"Conecte seu agente ao WhatsApp para conversar com clientes lá.",planFeatureDescVoiceChannel:"Conecte seu agente ao telefone/voz para que possa lidar com conversas faladas.",planFeatureDescWhitelabelWebchat:"Remova a marca Botpress do widget de chat web para que seja totalmente seu.",planFeatureDescTeamsRoutingRbac:"Organize membros em equipes, roteie conversas entre elas e controle o acesso por função.",planFeatureDescTeamLevelAnalytics:"Métricas de desempenho e volume detalhadas por equipe.",planFeatureDescTechnicalSupportLiveChat:"Entre em contato com a equipe de suporte da Botpress via chat ao vivo para obter ajuda.",planFeatureDescCommunitySupport:"Obtenha ajuda no fórum da comunidade Botpress e no Discord.",planFeatureDescDedicatedSupport:"Um contato designado e canal de suporte prioritário para sua conta.",planFeatureDescSlaSecurity:"Um SLA de disponibilidade contratual e uma revisão de segurança/conformidade para seu processo de aquisição.",planFeatureDescCustomStorage:"Limites de armazenamento adaptados à sua carga de trabalho, além dos níveis padrão.",planFeatureDesc1kTableRows:"1K linhas em todas as suas tabelas de dados.",planFeatureDesc100kTableRows:"100K linhas em todas as suas tabelas de dados.",planFeatureDesc500kTableRows:"500K linhas em todas as suas tabelas de dados.",planFeatureDesc100mbFileStorage:"100MB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc10gbFileStorage:"10GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc50gbFileStorage:"50GB de arquivos carregados (documentos, imagens, anexos).",planFeatureDesc100mbVectorDb:"100MB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc1gbVectorDb:"1GB de embeddings para busca e recuperação na base de conhecimento.",planFeatureDesc5gbVectorDb:"5GB de embeddings para busca e recuperação na base de conhecimento.",planDescriptionCommunity:"Plano gratuito para experimentar",planDescriptionPlus:"Para negócios em crescimento",planDescriptionTeam:"Para equipes pequenas",planDescriptionEnterprise:"Assinatura de licença corporativa",planDescriptionManaged:"Assinatura de licença gerenciada",addonNameConversationSessions:"Conversas",addonNameStorage:"Armazenamento",addonDescriptionConversationSessions:"Adiciona sessões de conversa para o mês",addonDescriptionStorage:"Adiciona linhas de tabela, espaço de banco de dados vetorial e arquivos",summaryCurrentPlan:"Plano atual",summaryManagedInDashboard:"Gerenciado no Painel",summaryManagedMeta:"Este espaço de trabalho usa um sistema de cobrança anterior.",summaryNoPlan:"Sem plano",summaryConversationsPerMo:"{n} conversas/mês",summaryAddonsEyebrow:"Add-ons",summaryActiveAddon:"{count} add-on ativo",summaryActiveAddons:"{count} add-ons ativos",summaryNoAddons:"Sem add-ons",summaryNoAddonsMeta:"Adicione conversas ou armazenamento extra",summaryAddonsUpdates:"Muda para {amount} em {date}",autoRechargeTitle:"Recarga automática",autoRechargeDescription:"Recarrega automaticamente seu crédito de uso de IA quando o saldo estiver baixo.",autoRechargeEnableLabel:"Ativar a recarga automática",autoRechargeLoadErrorTitle:"Não foi possível carregar suas configurações",autoRechargeLoadError:"Algo deu errado ao buscar suas configurações de auto-recarga. Verifique sua conexão e tente novamente.",autoRechargeThresholdLabel:"Limite para recarga",autoRechargeThresholdHint:"A recarga é acionada quando seu saldo cair abaixo desse valor, $1 ou mais.",autoRechargeThresholdError:"Deve ser um valor inteiro de pelo menos $1.",autoRechargeChunkLabel:"Valor da recarga",autoRechargeChunkHint:"Valor em dólares inteiros, $5 ou mais.",autoRechargeChunkError:"Deve ser um valor em dólares inteiros de pelo menos $5.",autoRechargeLimitLabel:"Limite mensal (USD)",autoRechargeLimitHint:"Não recarregará mais do que isso em um mês de cobrança. Deve ser um múltiplo do valor da recarga ({amount}).",autoRechargeLimitError:"Deve ser um múltiplo do valor da recarga ({amount}).",autoRechargeSetLimitLabel:"Definir um limite mensal",autoRechargeSetLimitHint:"Limite quanto a recarga automática pode gastar a cada mês de cobrança.",autoRechargeNoCapHint:"A recarga automática não tem um limite mensal.",autoRechargePaymentFailed:"A recarga automática foi desativada após um pagamento falhado. Verifique se o seu método de pagamento tem saldo suficiente e compre créditos manualmente para a reativar automaticamente.",autoRechargeUpdateSuccess:"Configurações de recarga automática atualizadas",autoRechargeUpdateError:"Não foi possível atualizar suas configurações de recarga automática",autoRechargeSummaryOn:"Recarga auto ativada",autoRechargeSummaryOff:"Recarga auto desativada",autoRechargeSummaryEyebrow:"Créditos de IA",autoRechargeSummaryMeta:"{amount} de recarga · até {limit}/mês",autoRechargeSummaryMetaNoLimit:"{amount} de recarga · sem limite",autoRechargeSummaryLoadError:"Não foi possível carregar o status",autoRechargeRequiresPaidPlanTitle:"A recarga automática requer um plano pago",autoRechargeRequiresPaidPlanBody:"Atualize seu plano para recarregar automaticamente seu crédito de uso de IA.",autoRechargeUpgradeCta:"Atualizar plano",aiSpendDialogTitle:"Gastos com IA",buyCreditsTitle:"Comprar créditos de IA",buyCreditsDescription:"Adicione crédito de uso de IA ao seu saldo agora. Compra única, cobrada no seu método de pagamento.",buyCreditsAmountLabel:"Valor do crédito",buyCreditsAmountHint:"Valor em dólares e centavos, $5 ou mais.",buyCreditsAmountError:"Deve ser de pelo menos $5, com no máximo 2 casas decimais.",buyCreditsCta:"Comprar",buyConfirmTitle:"Confirmar compra",buyConfirmItem:"Créditos de IA",buyConfirmTotal:"Total",buyConfirmNoCard:"Adicione um método de pagamento para continuar.",buyConfirmBack:"Voltar",buyConfirmCta:"Pagar {amount}",buyCreditsSuccess:"Créditos comprados",buyCreditsError:"Não foi possível comprar os créditos"},Wa="billing",Kn=Ji();Kn.use(Ni).init({resources:{en:{[Wa]:Qi},fr:{[Wa]:Xi},es:{[Wa]:ed},pt:{[Wa]:ad}},lng:"en",fallbackLng:"en",ns:[Wa],defaultNS:Wa,interpolation:{escapeValue:!1,prefix:"{",suffix:"}"}});const td=new Set(["v1","v2","v3"]);function is(a){return td.has(a)}const Yt=I.createContext(null);function nd(a){const[e,t]=I.useState(()=>typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches);return I.useEffect(()=>{if(a!=="system")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),r=o=>t(o.matches);return n.addEventListener("change",r),()=>n.removeEventListener("change",r)},[a]),a==="system"?e:a==="dark"}const rd=({client:a,stripePublishableKey:e,email:t,locale:n="en",theme:r="light",colorScheme:o="default",onToast:i,analytics:d,featureLabels:l,billingVersion:c,workspaceId:u,persist:p=!0,manageBillingUrl:m,onBillingChange:g,refreshInterval:_=3e4,children:b})=>{const h=u||"default",[k]=I.useState(()=>new ge.QueryClient({defaultOptions:{queries:{retry:1,staleTime:3e4,gcTime:1e3*60*60}}})),C=nd(r),w=I.useMemo(()=>Ar(e),[e]);I.useEffect(()=>{if(!p||typeof window>"u")return;const E=`bpb-cache:${h}`;try{const z=window.localStorage.getItem(E);z&&ge.hydrate(k,JSON.parse(z))}catch{window.localStorage.removeItem(E)}let L=null;const V=k.getQueryCache().subscribe(z=>{z.type!=="added"&&z.type!=="removed"&&z.type!=="updated"||(L&&clearTimeout(L),L=setTimeout(()=>{try{window.localStorage.setItem(E,JSON.stringify(ge.dehydrate(k)))}catch{}},250))});return()=>{L&&clearTimeout(L),V()}},[p,h,k]);const v=I.useCallback(()=>k.invalidateQueries({queryKey:["bpb",h]}),[k,h]),P=I.useCallback(E=>g==null?void 0:g(E),[g]),N=_>0?_:!1,A=c!==void 0&&is(c),S=ni({analytics:d,client:a,queryClient:k,scope:h,billingVersion:c,isOutdatedBilling:A});Kn.changeLanguage(n);const M=I.useMemo(()=>({client:a,queryClient:k,scope:h,stripePromise:w,email:t,locale:n,isDark:C,colorScheme:o,toast:i??(()=>{}),analytics:S,featureLabels:l,isOutdatedBilling:A,manageBillingUrl:m,refetchInterval:N,refresh:v,notifyBillingChange:P}),[a,k,h,w,t,n,C,o,i,S,l,A,m,N,v,P]);return s.jsx(Yt.Provider,{value:M,children:s.jsx(Ii,{i18n:Kn,children:s.jsx("div",{className:"bpb-scope","data-bpb-theme":C?"dark":"light","data-bpb-color-scheme":o,style:{display:"contents"},children:b})})})};function Y(){const a=I.useContext(Yt);if(!a)throw new Error("@bpinternal/billing-ui components must be rendered inside <BillingProvider>");return a}function sd(){var a;return((a=I.useContext(Yt))==null?void 0:a.isDark)??!1}function od(){var a;return((a=I.useContext(Yt))==null?void 0:a.colorScheme)??"default"}const Se={PLAN_PICKER_VIEWED:"billing_plan_picker_viewed",PLAN_INTERVAL_TOGGLED:"billing_plan_interval_toggled",PLAN_UPGRADE_INITIATED:"billing_plan_upgrade_initiated",PLAN_DOWNGRADED:"billing_plan_downgraded",PLAN_DOWNGRADE_CANCELLED:"billing_plan_downgrade_cancelled",DOWNGRADE_CONFIRM_VIEWED:"billing_downgrade_confirm_viewed",DOWNGRADE_SURVEY_VIEWED:"billing_downgrade_survey_viewed",DOWNGRADE_SURVEY_SUBMITTED:"billing_downgrade_survey_submitted",CHECKOUT_STEP_VIEWED:"billing_checkout_step_viewed",CHECKOUT_INTERVAL_CHANGED:"billing_checkout_interval_changed",PAYMENT_METHOD_SELECTED:"billing_payment_method_selected",PAYMENT_DETAILS_CONFIRMED:"billing_payment_details_confirmed",PLAN_UPGRADED:"billing_plan_upgraded",CHECKOUT_ERROR:"billing_checkout_error",PAYMENT_METHOD_UPDATED:"billing_payment_method_updated",BILLING_ADDRESS_UPDATED:"billing_address_updated",INVOICE_DOWNLOADED:"billing_invoice_downloaded",UPGRADE_CTA_CLICKED:"billing_upgrade_cta_clicked",AUTO_RECHARGE_UPDATED:"billing_auto_recharge_updated"};function ds(a){var e,t,n="";if(typeof a=="string"||typeof a=="number")n+=a;else if(typeof a=="object")if(Array.isArray(a)){var r=a.length;for(e=0;e<r;e++)a[e]&&(t=ds(a[e]))&&(n&&(n+=" "),n+=t)}else for(t in a)a[t]&&(n&&(n+=" "),n+=t);return n}function id(){for(var a,e,t=0,n="",r=arguments.length;t<r;t++)(a=arguments[t])&&(e=ds(a))&&(n&&(n+=" "),n+=e);return n}const dd=(a,e)=>{const t=new Array(a.length+e.length);for(let n=0;n<a.length;n++)t[n]=a[n];for(let n=0;n<e.length;n++)t[a.length+n]=e[n];return t},ld=(a,e)=>({classGroupId:a,validator:e}),ls=(a=new Map,e=null,t)=>({nextPart:a,validators:e,classGroupId:t}),Jt="-",cs=[],cd="arbitrary..",ud=a=>{const e=md(a),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=a;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return pd(i);const d=i.split(Jt),l=d[0]===""&&d.length>1?1:0;return us(d,l,e)},getConflictingClassGroupIds:(i,d)=>{if(d){const l=n[i],c=t[i];return l?c?dd(c,l):l:c||cs}return t[i]||cs}}},us=(a,e,t)=>{if(a.length-e===0)return t.classGroupId;const r=a[e],o=t.nextPart.get(r);if(o){const c=us(a,e+1,o);if(c)return c}const i=t.validators;if(i===null)return;const d=e===0?a.join(Jt):a.slice(e).join(Jt),l=i.length;for(let c=0;c<l;c++){const u=i[c];if(u.validator(d))return u.classGroupId}},pd=a=>a.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=a.slice(1,-1),t=e.indexOf(":"),n=e.slice(0,t);return n?cd+n:void 0})(),md=a=>{const{theme:e,classGroups:t}=a;return gd(t,e)},gd=(a,e)=>{const t=ls();for(const n in a){const r=a[n];$n(r,t,n,e)}return t},$n=(a,e,t,n)=>{const r=a.length;for(let o=0;o<r;o++){const i=a[o];hd(i,e,t,n)}},hd=(a,e,t,n)=>{if(typeof a=="string"){bd(a,e,t);return}if(typeof a=="function"){fd(a,e,t,n);return}yd(a,e,t,n)},bd=(a,e,t)=>{const n=a===""?e:ps(e,a);n.classGroupId=t},fd=(a,e,t,n)=>{if(vd(a)){$n(a(n),e,t,n);return}e.validators===null&&(e.validators=[]),e.validators.push(ld(t,a))},yd=(a,e,t,n)=>{const r=Object.entries(a),o=r.length;for(let i=0;i<o;i++){const[d,l]=r[i];$n(l,ps(e,d),t,n)}},ps=(a,e)=>{let t=a;const n=e.split(Jt),r=n.length;for(let o=0;o<r;o++){const i=n[o];let d=t.nextPart.get(i);d||(d=ls(),t.nextPart.set(i,d)),t=d}return t},vd=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,_d=a=>{if(a<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),n=Object.create(null);const r=(o,i)=>{t[o]=i,e++,e>a&&(e=0,n=t,t=Object.create(null))};return{get(o){let i=t[o];if(i!==void 0)return i;if((i=n[o])!==void 0)return r(o,i),i},set(o,i){o in t?t[o]=i:r(o,i)}}},Hn="!",ms=":",Cd=[],gs=(a,e,t,n,r)=>({modifiers:a,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:n,isExternal:r}),Sd=a=>{const{prefix:e,experimentalParseClassName:t}=a;let n=r=>{const o=[];let i=0,d=0,l=0,c;const u=r.length;for(let b=0;b<u;b++){const h=r[b];if(i===0&&d===0){if(h===ms){o.push(r.slice(l,b)),l=b+1;continue}if(h==="/"){c=b;continue}}h==="["?i++:h==="]"?i--:h==="("?d++:h===")"&&d--}const p=o.length===0?r:r.slice(l);let m=p,g=!1;p.endsWith(Hn)?(m=p.slice(0,-1),g=!0):p.startsWith(Hn)&&(m=p.slice(1),g=!0);const _=c&&c>l?c-l:void 0;return gs(o,g,m,_)};if(e){const r=e+ms,o=n;n=i=>i.startsWith(r)?o(i.slice(r.length)):gs(Cd,!1,i,void 0,!0)}if(t){const r=n;n=o=>t({className:o,parseClassName:r})}return n},Nd=a=>{const e=new Map;return a.orderSensitiveModifiers.forEach((t,n)=>{e.set(t,1e6+n)}),t=>{const n=[];let r=[];for(let o=0;o<t.length;o++){const i=t[o],d=i[0]==="[",l=e.has(i);d||l?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(i)):r.push(i)}return r.length>0&&(r.sort(),n.push(...r)),n}},kd=a=>({cache:_d(a.cacheSize),parseClassName:Sd(a),sortModifiers:Nd(a),postfixLookupClassGroupIds:Td(a),...ud(a)}),Td=a=>{const e=Object.create(null),t=a.postfixLookupClassGroups;if(t)for(let n=0;n<t.length;n++)e[t[n]]=!0;return e},wd=/\s+/,Id=(a,e)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:r,sortModifiers:o,postfixLookupClassGroupIds:i}=e,d=[],l=a.trim().split(wd);let c="";for(let u=l.length-1;u>=0;u-=1){const p=l[u],{isExternal:m,modifiers:g,hasImportantModifier:_,baseClassName:b,maybePostfixModifierPosition:h}=t(p);if(m){c=p+(c.length>0?" "+c:c);continue}let k=!!h,C;if(k){const A=b.substring(0,h);C=n(A);const S=C&&i[C]?n(b):void 0;S&&S!==C&&(C=S,k=!1)}else C=n(b);if(!C){if(!k){c=p+(c.length>0?" "+c:c);continue}if(C=n(b),!C){c=p+(c.length>0?" "+c:c);continue}k=!1}const w=g.length===0?"":g.length===1?g[0]:o(g).join(":"),v=_?w+Hn:w,P=v+C;if(d.indexOf(P)>-1)continue;d.push(P);const N=r(C,k);for(let A=0;A<N.length;++A){const S=N[A];d.push(v+S)}c=p+(c.length>0?" "+c:c)}return c},Ad=(...a)=>{let e=0,t,n,r="";for(;e<a.length;)(t=a[e++])&&(n=hs(t))&&(r&&(r+=" "),r+=n);return r},hs=a=>{if(typeof a=="string")return a;let e,t="";for(let n=0;n<a.length;n++)a[n]&&(e=hs(a[n]))&&(t&&(t+=" "),t+=e);return t},Pd=(a,...e)=>{let t,n,r,o;const i=l=>{const c=e.reduce((u,p)=>p(u),a());return t=kd(c),n=t.cache.get,r=t.cache.set,o=d,d(l)},d=l=>{const c=n(l);if(c)return c;const u=Id(l,t);return r(l,u),u};return o=i,(...l)=>o(Ad(...l))},Ed=[],Pe=a=>{const e=t=>t[a]||Ed;return e.isThemeGetter=!0,e},bs=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,fs=/^\((?:(\w[\w-]*):)?(.+)\)$/i,xd=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Dd=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ld=/\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$/,Fd=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Md=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ud=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,fa=a=>xd.test(a),de=a=>!!a&&!Number.isNaN(Number(a)),aa=a=>!!a&&Number.isInteger(Number(a)),Rn=a=>a.endsWith("%")&&de(a.slice(0,-1)),ua=a=>Dd.test(a),ys=()=>!0,Od=a=>Ld.test(a)&&!Fd.test(a),Yn=()=>!1,Bd=a=>Md.test(a),zd=a=>Ud.test(a),Vd=a=>!W(a)&&!K(a),jd=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)),qd=a=>ya(a,ks,Yn),W=a=>bs.test(a),Aa=a=>ya(a,Ts,Od),vs=a=>ya(a,Yd,de),Zd=a=>ya(a,Is,ys),Wd=a=>ya(a,ws,Yn),_s=a=>ya(a,Ss,Yn),Gd=a=>ya(a,Ns,zd),Qt=a=>ya(a,As,Bd),K=a=>fs.test(a),ct=a=>Pa(a,Ts),Kd=a=>Pa(a,ws),Cs=a=>Pa(a,Ss),$d=a=>Pa(a,ks),Hd=a=>Pa(a,Ns),Xt=a=>Pa(a,As,!0),Rd=a=>Pa(a,Is,!0),ya=(a,e,t)=>{const n=bs.exec(a);return n?n[1]?e(n[1]):t(n[2]):!1},Pa=(a,e,t=!1)=>{const n=fs.exec(a);return n?n[1]?e(n[1]):t:!1},Ss=a=>a==="position"||a==="percentage",Ns=a=>a==="image"||a==="url",ks=a=>a==="length"||a==="size"||a==="bg-size",Ts=a=>a==="length",Yd=a=>a==="number",ws=a=>a==="family-name",Is=a=>a==="number"||a==="weight",As=a=>a==="shadow",Jd=Pd(()=>{const a=Pe("color"),e=Pe("font"),t=Pe("text"),n=Pe("font-weight"),r=Pe("tracking"),o=Pe("leading"),i=Pe("breakpoint"),d=Pe("container"),l=Pe("spacing"),c=Pe("radius"),u=Pe("shadow"),p=Pe("inset-shadow"),m=Pe("text-shadow"),g=Pe("drop-shadow"),_=Pe("blur"),b=Pe("perspective"),h=Pe("aspect"),k=Pe("ease"),C=Pe("animate"),w=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],P=()=>[...v(),K,W],N=()=>["auto","hidden","clip","visible","scroll"],A=()=>["auto","contain","none"],S=()=>[K,W,l],M=()=>[fa,"full","auto",...S()],E=()=>[aa,"none","subgrid",K,W],L=()=>["auto",{span:["full",aa,K,W]},aa,K,W],V=()=>[aa,"auto",K,W],z=()=>["auto","min","max","fr",K,W],Q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],j=()=>["start","end","center","stretch","center-safe","end-safe"],R=()=>["auto",...S()],q=()=>[fa,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...S()],G=()=>[fa,"screen","full","dvw","lvw","svw","min","max","fit",...S()],X=()=>[fa,"screen","full","lh","dvh","lvh","svh","min","max","fit",...S()],x=()=>[a,K,W],me=()=>[...v(),Cs,_s,{position:[K,W]}],B=()=>["no-repeat",{repeat:["","x","y","space","round"]}],F=()=>["auto","cover","contain",$d,qd,{size:[K,W]}],J=()=>[Rn,ct,Aa],Z=()=>["","none","full",c,K,W],ee=()=>["",de,ct,Aa],Ne=()=>["solid","dashed","dotted","double"],ke=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],le=()=>[de,Rn,Cs,_s],Ie=()=>["","none",_,K,W],xe=()=>["none",de,K,W],D=()=>["none",de,K,W],ce=()=>[de,K,W],ie=()=>[fa,"full",...S()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ua],breakpoint:[ua],color:[ys],container:[ua],"drop-shadow":[ua],ease:["in","out","in-out"],font:[Vd],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ua],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ua],shadow:[ua],spacing:["px",de],text:[ua],"text-shadow":[ua],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",fa,W,K,h]}],container:["container"],"container-type":[{"@container":["","normal","size",K,W]}],"container-named":[jd],columns:[{columns:[de,W,K,d]}],"break-after":[{"break-after":w()}],"break-before":[{"break-before":w()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:P()}],overflow:[{overflow:N()}],"overflow-x":[{"overflow-x":N()}],"overflow-y":[{"overflow-y":N()}],overscroll:[{overscroll:A()}],"overscroll-x":[{"overscroll-x":A()}],"overscroll-y":[{"overscroll-y":A()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:M()}],"inset-x":[{"inset-x":M()}],"inset-y":[{"inset-y":M()}],start:[{"inset-s":M(),start:M()}],end:[{"inset-e":M(),end:M()}],"inset-bs":[{"inset-bs":M()}],"inset-be":[{"inset-be":M()}],top:[{top:M()}],right:[{right:M()}],bottom:[{bottom:M()}],left:[{left:M()}],visibility:["visible","invisible","collapse"],z:[{z:[aa,"auto",K,W]}],basis:[{basis:[fa,"full","auto",d,...S()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[de,fa,"auto","initial","none",W]}],grow:[{grow:["",de,K,W]}],shrink:[{shrink:["",de,K,W]}],order:[{order:[aa,"first","last","none",K,W]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:L()}],"col-start":[{"col-start":V()}],"col-end":[{"col-end":V()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:L()}],"row-start":[{"row-start":V()}],"row-end":[{"row-end":V()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":z()}],"auto-rows":[{"auto-rows":z()}],gap:[{gap:S()}],"gap-x":[{"gap-x":S()}],"gap-y":[{"gap-y":S()}],"justify-content":[{justify:[...Q(),"normal"]}],"justify-items":[{"justify-items":[...j(),"normal"]}],"justify-self":[{"justify-self":["auto",...j()]}],"align-content":[{content:["normal",...Q()]}],"align-items":[{items:[...j(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...j(),{baseline:["","last"]}]}],"place-content":[{"place-content":Q()}],"place-items":[{"place-items":[...j(),"baseline"]}],"place-self":[{"place-self":["auto",...j()]}],p:[{p:S()}],px:[{px:S()}],py:[{py:S()}],ps:[{ps:S()}],pe:[{pe:S()}],pbs:[{pbs:S()}],pbe:[{pbe:S()}],pt:[{pt:S()}],pr:[{pr:S()}],pb:[{pb:S()}],pl:[{pl:S()}],m:[{m:R()}],mx:[{mx:R()}],my:[{my:R()}],ms:[{ms:R()}],me:[{me:R()}],mbs:[{mbs:R()}],mbe:[{mbe:R()}],mt:[{mt:R()}],mr:[{mr:R()}],mb:[{mb:R()}],ml:[{ml:R()}],"space-x":[{"space-x":S()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":S()}],"space-y-reverse":["space-y-reverse"],size:[{size:q()}],"inline-size":[{inline:["auto",...G()]}],"min-inline-size":[{"min-inline":["auto",...G()]}],"max-inline-size":[{"max-inline":["none",...G()]}],"block-size":[{block:["auto",...X()]}],"min-block-size":[{"min-block":["auto",...X()]}],"max-block-size":[{"max-block":["none",...X()]}],w:[{w:[d,"screen",...q()]}],"min-w":[{"min-w":[d,"screen","none",...q()]}],"max-w":[{"max-w":[d,"screen","none","prose",{screen:[i]},...q()]}],h:[{h:["screen","lh",...q()]}],"min-h":[{"min-h":["screen","lh","none",...q()]}],"max-h":[{"max-h":["screen","lh",...q()]}],"font-size":[{text:["base",t,ct,Aa]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,Rd,Zd]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Rn,W]}],"font-family":[{font:[Kd,Wd,e]}],"font-features":[{"font-features":[W]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,K,W]}],"line-clamp":[{"line-clamp":[de,"none",K,vs]}],leading:[{leading:[o,...S()]}],"list-image":[{"list-image":["none",K,W]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",K,W]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:x()}],"text-color":[{text:x()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ne(),"wavy"]}],"text-decoration-thickness":[{decoration:[de,"from-font","auto",K,Aa]}],"text-decoration-color":[{decoration:x()}],"underline-offset":[{"underline-offset":[de,"auto",K,W]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"tab-size":[{tab:[aa,K,W]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",K,W]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",K,W]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:me()}],"bg-repeat":[{bg:B()}],"bg-size":[{bg:F()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},aa,K,W],radial:["",K,W],conic:[aa,K,W]},Hd,Gd]}],"bg-color":[{bg:x()}],"gradient-from-pos":[{from:J()}],"gradient-via-pos":[{via:J()}],"gradient-to-pos":[{to:J()}],"gradient-from":[{from:x()}],"gradient-via":[{via:x()}],"gradient-to":[{to:x()}],rounded:[{rounded:Z()}],"rounded-s":[{"rounded-s":Z()}],"rounded-e":[{"rounded-e":Z()}],"rounded-t":[{"rounded-t":Z()}],"rounded-r":[{"rounded-r":Z()}],"rounded-b":[{"rounded-b":Z()}],"rounded-l":[{"rounded-l":Z()}],"rounded-ss":[{"rounded-ss":Z()}],"rounded-se":[{"rounded-se":Z()}],"rounded-ee":[{"rounded-ee":Z()}],"rounded-es":[{"rounded-es":Z()}],"rounded-tl":[{"rounded-tl":Z()}],"rounded-tr":[{"rounded-tr":Z()}],"rounded-br":[{"rounded-br":Z()}],"rounded-bl":[{"rounded-bl":Z()}],"border-w":[{border:ee()}],"border-w-x":[{"border-x":ee()}],"border-w-y":[{"border-y":ee()}],"border-w-s":[{"border-s":ee()}],"border-w-e":[{"border-e":ee()}],"border-w-bs":[{"border-bs":ee()}],"border-w-be":[{"border-be":ee()}],"border-w-t":[{"border-t":ee()}],"border-w-r":[{"border-r":ee()}],"border-w-b":[{"border-b":ee()}],"border-w-l":[{"border-l":ee()}],"divide-x":[{"divide-x":ee()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ee()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ne(),"hidden","none"]}],"divide-style":[{divide:[...Ne(),"hidden","none"]}],"border-color":[{border:x()}],"border-color-x":[{"border-x":x()}],"border-color-y":[{"border-y":x()}],"border-color-s":[{"border-s":x()}],"border-color-e":[{"border-e":x()}],"border-color-bs":[{"border-bs":x()}],"border-color-be":[{"border-be":x()}],"border-color-t":[{"border-t":x()}],"border-color-r":[{"border-r":x()}],"border-color-b":[{"border-b":x()}],"border-color-l":[{"border-l":x()}],"divide-color":[{divide:x()}],"outline-style":[{outline:[...Ne(),"none","hidden"]}],"outline-offset":[{"outline-offset":[de,K,W]}],"outline-w":[{outline:["",de,ct,Aa]}],"outline-color":[{outline:x()}],shadow:[{shadow:["","none",u,Xt,Qt]}],"shadow-color":[{shadow:x()}],"inset-shadow":[{"inset-shadow":["none",p,Xt,Qt]}],"inset-shadow-color":[{"inset-shadow":x()}],"ring-w":[{ring:ee()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:x()}],"ring-offset-w":[{"ring-offset":[de,Aa]}],"ring-offset-color":[{"ring-offset":x()}],"inset-ring-w":[{"inset-ring":ee()}],"inset-ring-color":[{"inset-ring":x()}],"text-shadow":[{"text-shadow":["none",m,Xt,Qt]}],"text-shadow-color":[{"text-shadow":x()}],opacity:[{opacity:[de,K,W]}],"mix-blend":[{"mix-blend":[...ke(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ke()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[de]}],"mask-image-linear-from-pos":[{"mask-linear-from":le()}],"mask-image-linear-to-pos":[{"mask-linear-to":le()}],"mask-image-linear-from-color":[{"mask-linear-from":x()}],"mask-image-linear-to-color":[{"mask-linear-to":x()}],"mask-image-t-from-pos":[{"mask-t-from":le()}],"mask-image-t-to-pos":[{"mask-t-to":le()}],"mask-image-t-from-color":[{"mask-t-from":x()}],"mask-image-t-to-color":[{"mask-t-to":x()}],"mask-image-r-from-pos":[{"mask-r-from":le()}],"mask-image-r-to-pos":[{"mask-r-to":le()}],"mask-image-r-from-color":[{"mask-r-from":x()}],"mask-image-r-to-color":[{"mask-r-to":x()}],"mask-image-b-from-pos":[{"mask-b-from":le()}],"mask-image-b-to-pos":[{"mask-b-to":le()}],"mask-image-b-from-color":[{"mask-b-from":x()}],"mask-image-b-to-color":[{"mask-b-to":x()}],"mask-image-l-from-pos":[{"mask-l-from":le()}],"mask-image-l-to-pos":[{"mask-l-to":le()}],"mask-image-l-from-color":[{"mask-l-from":x()}],"mask-image-l-to-color":[{"mask-l-to":x()}],"mask-image-x-from-pos":[{"mask-x-from":le()}],"mask-image-x-to-pos":[{"mask-x-to":le()}],"mask-image-x-from-color":[{"mask-x-from":x()}],"mask-image-x-to-color":[{"mask-x-to":x()}],"mask-image-y-from-pos":[{"mask-y-from":le()}],"mask-image-y-to-pos":[{"mask-y-to":le()}],"mask-image-y-from-color":[{"mask-y-from":x()}],"mask-image-y-to-color":[{"mask-y-to":x()}],"mask-image-radial":[{"mask-radial":[K,W]}],"mask-image-radial-from-pos":[{"mask-radial-from":le()}],"mask-image-radial-to-pos":[{"mask-radial-to":le()}],"mask-image-radial-from-color":[{"mask-radial-from":x()}],"mask-image-radial-to-color":[{"mask-radial-to":x()}],"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":v()}],"mask-image-conic-pos":[{"mask-conic":[de]}],"mask-image-conic-from-pos":[{"mask-conic-from":le()}],"mask-image-conic-to-pos":[{"mask-conic-to":le()}],"mask-image-conic-from-color":[{"mask-conic-from":x()}],"mask-image-conic-to-color":[{"mask-conic-to":x()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:me()}],"mask-repeat":[{mask:B()}],"mask-size":[{mask:F()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",K,W]}],filter:[{filter:["","none",K,W]}],blur:[{blur:Ie()}],brightness:[{brightness:[de,K,W]}],contrast:[{contrast:[de,K,W]}],"drop-shadow":[{"drop-shadow":["","none",g,Xt,Qt]}],"drop-shadow-color":[{"drop-shadow":x()}],grayscale:[{grayscale:["",de,K,W]}],"hue-rotate":[{"hue-rotate":[de,K,W]}],invert:[{invert:["",de,K,W]}],saturate:[{saturate:[de,K,W]}],sepia:[{sepia:["",de,K,W]}],"backdrop-filter":[{"backdrop-filter":["","none",K,W]}],"backdrop-blur":[{"backdrop-blur":Ie()}],"backdrop-brightness":[{"backdrop-brightness":[de,K,W]}],"backdrop-contrast":[{"backdrop-contrast":[de,K,W]}],"backdrop-grayscale":[{"backdrop-grayscale":["",de,K,W]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[de,K,W]}],"backdrop-invert":[{"backdrop-invert":["",de,K,W]}],"backdrop-opacity":[{"backdrop-opacity":[de,K,W]}],"backdrop-saturate":[{"backdrop-saturate":[de,K,W]}],"backdrop-sepia":[{"backdrop-sepia":["",de,K,W]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":S()}],"border-spacing-x":[{"border-spacing-x":S()}],"border-spacing-y":[{"border-spacing-y":S()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",K,W]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[de,"initial",K,W]}],ease:[{ease:["linear","initial",k,K,W]}],delay:[{delay:[de,K,W]}],animate:[{animate:["none",C,K,W]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[b,K,W]}],"perspective-origin":[{"perspective-origin":P()}],rotate:[{rotate:xe()}],"rotate-x":[{"rotate-x":xe()}],"rotate-y":[{"rotate-y":xe()}],"rotate-z":[{"rotate-z":xe()}],scale:[{scale:D()}],"scale-x":[{"scale-x":D()}],"scale-y":[{"scale-y":D()}],"scale-z":[{"scale-z":D()}],"scale-3d":["scale-3d"],skew:[{skew:ce()}],"skew-x":[{"skew-x":ce()}],"skew-y":[{"skew-y":ce()}],transform:[{transform:[K,W,"","none","gpu","cpu"]}],"transform-origin":[{origin:P()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ie()}],"translate-x":[{"translate-x":ie()}],"translate-y":[{"translate-y":ie()}],"translate-z":[{"translate-z":ie()}],"translate-none":["translate-none"],zoom:[{zoom:[aa,K,W]}],accent:[{accent:x()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:x()}],"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",K,W]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":x()}],"scrollbar-track-color":[{"scrollbar-track":x()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mbs":[{"scroll-mbs":S()}],"scroll-mbe":[{"scroll-mbe":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pbs":[{"scroll-pbs":S()}],"scroll-pbe":[{"scroll-pbe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"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",K,W]}],fill:[{fill:["none",...x()]}],"stroke-w":[{stroke:[de,ct,Aa,vs]}],stroke:[{stroke:["none",...x()]}],"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 $(...a){return Jd(id(a))}function ne(a,e="usd",t=2,n="en-US"){return new Intl.NumberFormat(n,{style:"currency",currency:e.toUpperCase(),minimumFractionDigits:t,maximumFractionDigits:t}).format(a)}function Ue(a,e="en-US"){return new Date(a).toLocaleDateString(e,{month:"short",day:"numeric",year:"numeric"})}function Ps(a,e="en-US"){return new Date(a).toLocaleString(e,{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"})}function Es(a,e){const t=new Date(a);return t.setDate(t.getDate()+e),t.toISOString()}function fe(a,e="en-US"){return new Intl.NumberFormat(e).format(a)}function Ea(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 ye(a){return a.replace("Plan - ","")}function ut(a){return{usd:"$",eur:"€",gbp:"£",cad:"$",aud:"$",jpy:"¥"}[a.toLowerCase()]??`${a.toUpperCase()} `}const Ze=1e9,xs={incoming_messages_events:a=>`${fe(a)} incoming messages & events`,conversation_sessions:a=>`${fe(a)} conversation sessions`,table_rows:a=>`${fe(a)} table rows`,vector_db_storage:a=>`${Ea(a)} vector database storage`,file_storage:a=>`${Ea(a)} file storage`,collaborator_count:a=>a===1?"1 collaborator":`${fe(a)} collaborators`,bot_count:a=>a===1?"1 bot":`${fe(a)} bots`,indexed_file_count:a=>`${fe(a)} indexed files for RAG`,ai_spend:a=>`${ne(a/Ze,"usd",1)} AI credit included`,always_alive:a=>a===1?"1 always-alive bot":`${fe(a)} always-alive bots`};function Qd(a,e,t){const n=(t==null?void 0:t[a])??xs[a];return n?n(e):`${fe(e)} ${a.replaceAll("_"," ")}`}const He={conversation_sessions_addon:"addonNameConversationSessions",storage_addon:"addonNameStorage"},Ds={conversation_sessions_addon:"addonDescriptionConversationSessions",storage_addon:"addonDescriptionStorage"};function pt(a,e,t){return a.prices[e.id]??a.prices[ve(e)]??a.prices[t]??null}function xa(a){return a.replace("Add-on - ","")}function Jn(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 Ls=[{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 Fs(a,e,t,n={}){if(!e)return[];const r=(i,d)=>(a.features[i]??0)+e.reduce((l,c)=>{var u;return l+(((u=c.increments)==null?void 0:u[i])??0)*(d[c.id]??0)},0),o=[];for(const i of Ls){const d=r(i.key,n),l=r(i.key,t);e.some(c=>{var u;return(((u=c.increments)==null?void 0:u[i.key])??0)>0})&&o.push({...i,now:d,next:l})}return o}function Ms(a,e,t){var r;if(!a)return[];const n=[];for(const o of Ls){const i=a.features[o.key]??0;let d=0;for(const l of e??[])d+=(((r=l.increments)==null?void 0:r[o.key])??0)*(t[l.id]??0);(i>0||d>0)&&n.push({...o,base:i,added:d,total:i+d})}return n}function en(a,e,t){var i;const n=Jn(a);if(!n)return null;const r=((i=n.increments)==null?void 0:i.conversation_sessions)??0,o=pt(n,e,t);return r<=0||!o||o.amount<=0?null:{packSize:r,amount:o.amount,currency:o.currency}}const mt={"AI usage included":{label:"planFeatureAiUsageIncluded",desc:"planFeatureDescAiUsageIncluded"},"3 seats":{label:"planFeature3Seats",desc:"planFeatureDesc3Seats"},"3 AI agents":{label:"planFeature3AiAgents",desc:"planFeatureDesc3AiAgents"},"Botpress Desk":{label:"planFeatureBotpressDesk",desc:"planFeatureDescBotpressDesk"},"Botpress Studio + ADK":{label:"planFeatureBotpressStudioAdk",desc:"planFeatureDescBotpressStudioAdk"},"Botpress Viber":{label:"planFeatureBotpressViber",desc:"planFeatureDescBotpressViber"},"Help center":{label:"planFeatureHelpCenter",desc:"planFeatureDescHelpCenter"},"1K table rows":{label:"planFeature1kTableRows",desc:"planFeatureDesc1kTableRows"},"100K table rows":{label:"planFeature100kTableRows",desc:"planFeatureDesc100kTableRows"},"500K table rows":{label:"planFeature500kTableRows",desc:"planFeatureDesc500kTableRows"},"100MB file storage":{label:"planFeature100mbFileStorage",desc:"planFeatureDesc100mbFileStorage"},"10GB file storage":{label:"planFeature10gbFileStorage",desc:"planFeatureDesc10gbFileStorage"},"50GB file storage":{label:"planFeature50gbFileStorage",desc:"planFeatureDesc50gbFileStorage"},"100MB vector DB storage":{label:"planFeature100mbVectorDb",desc:"planFeatureDesc100mbVectorDb"},"1GB vector DB storage":{label:"planFeature1gbVectorDb",desc:"planFeatureDesc1gbVectorDb"},"5GB vector DB storage":{label:"planFeature5gbVectorDb",desc:"planFeatureDesc5gbVectorDb"},"Unlimited AI agents":{label:"planFeatureUnlimitedAiAgents",desc:"planFeatureDescUnlimitedAiAgents"},"WhatsApp channel":{label:"planFeatureWhatsappChannel",desc:"planFeatureDescWhatsappChannel"},"Help Center custom domain":{label:"planFeatureHelpCenterCustomDomain",desc:"planFeatureDescHelpCenterCustomDomain"},"Whitelabel webchat":{label:"planFeatureWhitelabelWebchat",desc:"planFeatureDescWhitelabelWebchat"},"Technical support via live chat":{label:"planFeatureTechnicalSupportLiveChat",desc:"planFeatureDescTechnicalSupportLiveChat"},"Unlimited seats":{label:"planFeatureUnlimitedSeats",desc:"planFeatureDescUnlimitedSeats"},"Teams, routing & RBAC":{label:"planFeatureTeamsRoutingRbac",desc:"planFeatureDescTeamsRoutingRbac"},"Team-level analytics":{label:"planFeatureTeamLevelAnalytics",desc:"planFeatureDescTeamLevelAnalytics"},"Voice channel":{label:"planFeatureVoiceChannel",desc:"planFeatureDescVoiceChannel"},"Dedicated support":{label:"planFeatureDedicatedSupport",desc:"planFeatureDescDedicatedSupport"},"SLA & security review":{label:"planFeatureSlaSecurity",desc:"planFeatureDescSlaSecurity"},"Custom storage":{label:"planFeatureCustomStorage",desc:"planFeatureDescCustomStorage"}},Us={community:"planDescriptionCommunity",plus:"planDescriptionPlus",team:"planDescriptionTeam",enterprise:"planDescriptionEnterprise",managed:"planDescriptionManaged"},gt={community:["3 seats","AI usage included","3 AI agents","Botpress Desk","Botpress Viber","Botpress Studio + ADK","Help center","1K table rows","100MB file storage","100MB vector DB storage"],plus:["AI usage included","Unlimited AI agents","Help Center custom domain","Whitelabel webchat","100K table rows","10GB file storage","1GB vector DB storage","Technical support via live chat"],team:["AI usage included","Unlimited seats","Teams, routing & RBAC","Team-level analytics","500K table rows","50GB file storage","5GB vector DB storage"],enterprise:["Voice channel","Dedicated support","SLA & security review","Custom storage"],managed:[]},Ga=({variant:a="accent",children:e,className:t})=>s.jsx("span",{className:$("bpb-badge",`bpb-badge--${a}`,t),children:e}),pe=({variant:a="primary",size:e="md",block:t=!1,loading:n=!1,className:r,disabled:o,children:i,type:d="button",...l})=>s.jsxs("button",{type:d,className:$("bpb-btn",`bpb-btn--${a}`,`bpb-btn--${e}`,t&&"bpb-btn--block",r),disabled:o||n,"data-loading":n||void 0,...l,children:[n&&s.jsx("span",{className:"bpb-btn__spinner","aria-hidden":!0}),s.jsx("span",{className:"bpb-btn__label",children:i})]}),_e=(a,e)=>({width:a??16,height:a??16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,...e}),Os=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M3 8.5l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),an=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M8 1.5l1.4 3.6a1 1 0 00.6.6L13.5 7l-3.5 1.4a1 1 0 00-.6.6L8 12.5 6.6 9a1 1 0 00-.6-.6L2.5 7 6 5.7a1 1 0 00.6-.6L8 1.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M12.8 11l.5 1.2 1.2.5-1.2.5-.5 1.3-.5-1.3-1.2-.5 1.2-.5.5-1.2z",fill:"currentColor"})]}),Bs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M2.5 8a5.5 5.5 0 115.5 5.5c-.9 0-1.8-.2-2.5-.6L2.5 13.5l.6-3A5.5 5.5 0 012.5 8z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),zs=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M14.67 8h-4l-1.33 2h-2.67l-1.33-2H1.33",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),s.jsx("path",{d:"M3.63 3.41L1.33 8v4a1.33 1.33 0 001.33 1.33h10.67a1.33 1.33 0 001.33-1.33v-4l-2.3-4.59a1.33 1.33 0 00-1.19-.74H4.83a1.33 1.33 0 00-1.19.74z",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Qn=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M8 1.8l5 1.8v4c0 3.2-2.1 5.4-5 6.6-2.9-1.2-5-3.4-5-6.6v-4l5-1.8z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M5.8 8l1.6 1.6 2.8-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Vs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M6 2.5h3v1.6a1.4 1.4 0 102.8 0V2.5h1.7v3h-1.6a1.4 1.4 0 100 2.8h1.6v3h-3v1.6a1.4 1.4 0 11-2.8 0v-1.6h-3v-3h1.6a1.4 1.4 0 100-2.8H2.5v-3H6z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),tn=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M8 2l6 3-6 3-6-3 6-3z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M2 8l6 3 6-3M2 11l6 3 6-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),js=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8 8c-1.2-1.6-2-2.4-3.3-2.4a2.4 2.4 0 100 4.8C6 10.4 6.8 9.6 8 8zm0 0c1.2 1.6 2 2.4 3.3 2.4a2.4 2.4 0 100-4.8C10 5.6 9.2 6.4 8 8z",stroke:"currentColor",strokeWidth:"1.3"})}),nn=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8.5 1.5L3 9h4l-.5 5.5L12 7H8l.5-5.5z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})}),Xd=[{rotate:0,y:-5.9,height:3.7},{rotate:90,y:-5.9,height:3.7},{rotate:180,y:-5.9,height:3.7},{rotate:270,y:-5.9,height:3.7},{rotate:45,y:-7,height:4.3},{rotate:135,y:-7,height:4.3},{rotate:225,y:-7,height:4.3},{rotate:315,y:-7,height:4.3}],qs=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("g",{transform:"translate(8,8)",fill:"currentColor",children:Xd.map(t=>s.jsx("g",{transform:`rotate(${t.rotate})`,children:s.jsx("rect",{x:-.75,y:t.y,width:1.5,height:t.height,rx:.75})},t.rotate))})}),Zs=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("circle",{cx:"6",cy:"5.5",r:"2.2",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M2 13c0-2.2 1.8-3.6 4-3.6s4 1.4 4 3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),s.jsx("path",{d:"M10.5 3.6a2.2 2.2 0 010 4.1M11 9.6c1.7.3 3 1.6 3 3.4",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),Ws=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M2.5 2.5v11h11",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),s.jsx("path",{d:"M5 10l2.2-2.4 2 1.6L12.5 5.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Gs=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M2 8h12M8 2c1.8 1.6 2.8 3.8 2.8 6S9.8 12.4 8 14C6.2 12.4 5.2 10.2 5.2 8S6.2 3.6 8 2z",stroke:"currentColor",strokeWidth:"1.3"})]}),Ks=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M2.5 11.5L9 5l2 2-6.5 6.5H2.5v-2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M9 5l1.8-1.8a1.4 1.4 0 012 2L11 7",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})]}),Xn=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("rect",{x:"1.8",y:"3.5",width:"12.4",height:"9",rx:"1.6",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M1.8 6.4h12.4",stroke:"currentColor",strokeWidth:"1.3"})]}),el=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M2 6l6-3.5L14 6v1H2V6zM3 7v5M6.3 7v5M9.7 7v5M13 7v5M2 12.5h12",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})}),al=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("rect",{x:"3.5",y:"7",width:"9",height:"6.5",rx:"1.4",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M5.5 7V5.5a2.5 2.5 0 015 0V7",stroke:"currentColor",strokeWidth:"1.3"})]}),ht=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Da=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M4 6.5L8 10.5l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),er=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M10 3.5L5.5 8l4.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),ta=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M6 3.5L10.5 8L6 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),$s=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),ar=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Ka=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M8 2.2L14.5 13.2a.7.7 0 01-.6 1H2.1a.7.7 0 01-.6-1L8 2.2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M8 6.3v3.1",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),s.jsx("circle",{cx:"8",cy:"11.6",r:"0.85",fill:"currentColor"})]}),bt=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M9 3.5h3.5V7M12 4L7 9M11 9.5v2a1 1 0 01-1 1H4.5a1 1 0 01-1-1V6a1 1 0 011-1h2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),tl=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M8 10.5V5.5M5.5 8l2.5-2.5L10.5 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),tr=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),nr=({size:a,...e})=>s.jsx("svg",{..._e(a,e),children:s.jsx("path",{d:"M8 2.5v7M5 7l3 3 3-3M3 12.5h10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})}),nl=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("path",{d:"M4 2h8v12l-1.5-1-1.5 1-1.5-1-1.5 1L4 14V2z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),s.jsx("path",{d:"M6.2 5.5h3.6M6.2 8h3.6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),Hs=({size:a,...e})=>s.jsxs("svg",{..._e(a,e),children:[s.jsx("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),s.jsx("path",{d:"M2.5 6.5h11M5.5 2v2.5M10.5 2v2.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),rn=({brand:a})=>{const e=a==="visa"?"VISA":a==="mastercard"?"MC":a==="amex"?"AMEX":a==="discover"?"DISC":a.slice(0,4).toUpperCase(),t=a==="visa"?"#1a1f71":a==="mastercard"?"#252525":a==="amex"?"#016fd0":"#5d5d5d";return s.jsx("span",{"aria-hidden":!0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:34,height:22,padding:"0 4px",borderRadius:4,background:t,color:"#fff",fontSize:9,fontWeight:700,letterSpacing:"0.04em"},children:e})};function sn(a){const e=a.toLowerCase();return/desk|inbox|handoff/.test(e)?zs:/seat|member|user|team|rbac|rout/.test(e)?Zs:/analytic|report|insight|dashboard/.test(e)?Ws:/whatsapp|channel|chat|message|conversation|webchat|voice/.test(e)?Bs:/storage|table|vector|file|gb|rows|db/.test(e)?tn:/domain|help center|whitelabel|website|url|web/.test(e)?Gs:/brand|theme|custom|white-?label/.test(e)?Ks:/unlimited|infinit/.test(e)?js:/security|sla|compliance|soc|audit/.test(e)||/support|sla|dedicated|priority/.test(e)?Qn:/integration|api|plugin|sdk|adk|studio/.test(e)?Vs:/agent/.test(e)?qs:/ai|model|gpt|llm/.test(e)?nn:an}const Ee=({open:a,onOpenChange:e,size:t="md",children:n,className:r,showClose:o=!0,...i})=>{const d=I.useRef(null),l=sd(),c=od(),u=I.useCallback(()=>e(!1),[e]);return I.useEffect(()=>{var g;if(!a)return;const p=_=>{_.key==="Escape"&&u()};document.addEventListener("keydown",p);const m=document.body.style.overflow;return document.body.style.overflow="hidden",(g=d.current)==null||g.focus(),()=>{document.removeEventListener("keydown",p),document.body.style.overflow=m}},[a,u]),a?Ho.createPortal(s.jsx("div",{className:"bpb-portal bpb-dialog__overlay","data-bpb-theme":l?"dark":"light","data-bpb-color-scheme":c,onClick:u,children:s.jsxs("div",{ref:d,role:"dialog","aria-modal":"true","aria-label":i["aria-label"],tabIndex:-1,className:$("bpb-dialog",`bpb-dialog--${t}`,r),onClick:p=>p.stopPropagation(),children:[o&&s.jsx("button",{type:"button",className:"bpb-dialog__close","aria-label":"Close",onClick:u,children:s.jsx(ht,{size:18})}),n]})}),document.body):null};var rr={},on={};Object.defineProperty(on,"__esModule",{value:!0}),on.BOT_USE_CASES=void 0,on.BOT_USE_CASES={CUSTOMER_SUPPORT:"customer-support",BRAND_ASSISTANT:"brand-assistant",PRODUCT_RECOMMENDATION:"product-recommendation",OTHER:"other"};var dn={};Object.defineProperty(dn,"__esModule",{value:!0}),dn.limitConfigs=void 0,dn.limitConfigs={bot_configuration_bytes:{value:20480,unit:"bytes"},bot_installed_integrations_count:{value:30,unit:"count"},bot_installed_plugins_count:{value:30,unit:"count"},bot_integration_configuration_bytes:{value:20480,unit:"bytes"},bot_recurring_event_count:{value:50,unit:"count"},bot_recurring_event_payload_bytes:{value:131072,unit:"bytes"},event_definition_count:{value:20,unit:"count"},integration_channel_count:{value:10,unit:"count"},integration_channel_message_type_count:{value:20,unit:"count"},integration_identifier_count:{value:50,unit:"count"},integration_version_count:{value:200,unit:"count"},issue_event_item_payload_bytes:{value:131072,unit:"bytes"},message_payload_bytes:{value:131072,unit:"bytes"},schema_bytes:{value:102400,unit:"bytes"},state_definition_count:{value:20,unit:"count"},state_item_payload_bytes:{value:131072,unit:"bytes"},tag_definition_count:{value:50,unit:"count"},bot_integration_secret_count:{value:25,unit:"count"},files_api_query_bytes:{value:2048,unit:"bytes"},code_payload_bytes:{value:52428800,unit:"bytes"},entity_custom_properties_count:{value:50,unit:"count"}};var $a={};Object.defineProperty($a,"__esModule",{value:!0}),$a.objectToPrefixMap=$a.prefixToObjectMap=void 0,$a.prefixToObjectMap={accnt:"account",accntpf:"accountPreference",action:"action",activty:"activity",anlytic:"analytics",audit:"audit",bak:"botApiKey",bot:"bot",card:"card",cfg:"configuration",channel:"channel",conv:"conversation",devbot:"devBot",devint:"devIntegration",evt:"event",file:"file",flow:"flow",iak:"integrationApiKey",int:"integration",iface:"interface",ifver:"interfaceVersion",intver:"integrationVersion",iss:"issue",issevt:"issueEvent",kb:"knowledgeBase",limit:"limit",media:"media",msg:"message",node:"node",notif:"notification",pat:"personalAccessToken",plugin:"plugin",plugver:"pluginVersion",quota:"quota",recevt:"recurringEvent",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",archrg:"autoRechargeSetting",archtx:"autoRechargeTransaction",crgrant:"creditGrant",job:"job",pcrgrant:"pendingCreditGrant",promo:"promoCode",smgevt:"smaugEvent",usage:"usage",user:"user",webhook:"webhook",wkspace:"workspace",wksadd:"workspaceAddon",wksqtaadd:"workspaceQuotaAddition",wksplan:"workspacePlan",wrkflow:"workflow",wkspacepf:"workspacePreference",trial:"trial",evlrun:"evalRun",evlent:"evalEntry",evlres:"evalResult"},$a.objectToPrefixMap={account:"accnt",accountPreference:"accntpf",action:"action",activity:"activty",analytics:"anlytic",audit:"audit",bot:"bot",botApiKey:"bak",card:"card",channel:"channel",configuration:"cfg",conversation:"conv",devBot:"devbot",devIntegration:"devint",event:"evt",file:"file",flow:"flow",integration:"int",integrationApiKey:"iak",integrationVersion:"intver",interface:"iface",interfaceVersion:"ifver",issue:"iss",issueEvent:"issevt",knowledgeBase:"kb",limit:"limit",media:"media",message:"msg",node:"node",notification:"notif",personalAccessToken:"pat",plugin:"plugin",pluginVersion:"plugver",quota:"quota",recurringEvent:"recevt",report:"report",sandbox:"sandbox",schema:"schema",script:"script",state:"state",table:"table",tag:"tag",task:"task",autoRechargeSetting:"archrg",autoRechargeTransaction:"archtx",creditGrant:"crgrant",job:"job",pendingCreditGrant:"pcrgrant",promoCode:"promo",smaugEvent:"smgevt",usage:"usage",user:"user",webhook:"webhook",workflow:"wrkflow",workspace:"wkspace",workspaceAddon:"wksadd",workspaceQuotaAddition:"wksqtaadd",workspacePlan:"wksplan",workspacePreference:"wkspacepf",trial:"trial",evalRun:"evlrun",evalEntry:"evlent",evalResult:"evlres"};var Rs={},va={};Object.defineProperty(va,"__esModule",{value:!0}),va.quotaConfigsV3=va.quotaConfigs=va.quotaTypes=void 0,va.quotaTypes=["invocation_timeout","invocation_calls","storage_count","bot_count","knowledgebase_vector_storage","workspace_ratelimit","table_row_count","workspace_member_count","integrations_owned_count","ai_spend","openai_spend","bing_search_spend","always_alive","indexed_file_count","file_max_size_bytes"],va.quotaConfigs={invocation_timeout:{name:"Invocation Timeout",description:"Maximum time in milliseconds a bot can run before timing out.",default:6e4,kind:"workspace",category:"timeout",trackUsagePerBot:!1},storage_count:{name:"Storage Count",description:"Maximum number of storage bytes that can be stored.",default:5e8,kind:"workspace",category:"count",trackUsagePerBot:!0},bot_count:{name:"Bot Count",description:"Maximum number of bots that can be created.",default:5,kind:"workspace",category:"count",trackUsagePerBot:!1},workspace_member_count:{name:"Workspace Member Count",description:"Maximum number of members that can be added to a workspace.",default:3,kind:"workspace",category:"count",trackUsagePerBot:!1},knowledgebase_vector_storage:{name:"Knowledgebase Vector Storage",description:"Maximum size of knowledge base documents",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},table_row_count:{name:"Table Row Count",description:"Maximum number of rows that can be stored in a table.",default:5e3,kind:"workspace",category:"count",trackUsagePerBot:!0},invocation_calls:{name:"Messages",description:"Maximum number of messages sent to a bot in a month.",default:2e3,kind:"workspace",category:"calls",trackUsagePerBot:!0},workspace_ratelimit:{name:"Workspace Ratelimit",description:"Maximum number of API calls per second for a workspace.",default:100,kind:"workspace",category:"ratelimit",trackUsagePerBot:!1},integrations_owned_count:{name:"Owned Integrations Count",description:"Maximum number of integrations that can be created.",default:20,kind:"workspace",category:"count",trackUsagePerBot:!1},ai_spend:{name:"AI Spend",description:"Maximum amount of AI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0},openai_spend:{name:"OpenAI Spend",description:"Maximum amount of OpenAI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},bing_search_spend:{name:"Bing Search Spend",description:"Maximum amount of Bing Search spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},always_alive:{name:"Always Alive",description:"Maximum number of bots that can be in always alive mode.",default:0,kind:"workspace",category:"count",trackUsagePerBot:!1},indexed_file_count:{name:"Indexed File Count",description:"Maximum number of files that can be indexed.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},file_max_size_bytes:{name:"Max File Size",description:"Maximum size of a file in bytes.",default:1e8,kind:"workspace",category:"limit",trackUsagePerBot:!0}},va.quotaConfigsV3={invocation_timeout:{name:"Invocation Timeout",description:"Maximum time in milliseconds a bot can run before timing out.",default:6e4,kind:"workspace",category:"timeout",trackUsagePerBot:!1},storage_count:{name:"Storage Count",description:"Maximum number of storage bytes that can be stored.",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},bot_count:{name:"Bot Count",description:"Maximum number of bots that can be created.",default:1,kind:"workspace",category:"count",trackUsagePerBot:!1},workspace_member_count:{name:"Workspace Member Count",description:"Maximum number of members that can be added to a workspace.",default:1,kind:"workspace",category:"count",trackUsagePerBot:!1},knowledgebase_vector_storage:{name:"Knowledgebase Vector Storage",description:"Maximum size of knowledge base documents",default:1e8,kind:"workspace",category:"count",trackUsagePerBot:!0},table_row_count:{name:"Table Row Count",description:"Maximum number of rows that can be stored in a table.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},invocation_calls:{name:"Messages",description:"Maximum number of messages sent to a bot in a month.",default:500,kind:"workspace",category:"calls",trackUsagePerBot:!0},workspace_ratelimit:{name:"Workspace Ratelimit",description:"Maximum number of API calls per second for a workspace.",default:100,kind:"workspace",category:"ratelimit",trackUsagePerBot:!1},integrations_owned_count:{name:"Owned Integrations Count",description:"Maximum number of integrations that can be created.",default:20,kind:"workspace",category:"count",trackUsagePerBot:!1},ai_spend:{name:"AI Spend",description:"Maximum amount of AI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0},openai_spend:{name:"OpenAI Spend",description:"Maximum amount of OpenAI spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},bing_search_spend:{name:"Bing Search Spend",description:"Maximum amount of Bing Search spend, expressed in nano-dollars (1 nano-dollar = $0.000000001) that can be used in a month.",default:5e9,kind:"workspace",category:"credit",trackUsagePerBot:!0,parent:"ai_spend"},always_alive:{name:"Always Alive",description:"Maximum number of bots that can be in always alive mode.",default:0,kind:"workspace",category:"count",trackUsagePerBot:!1},indexed_file_count:{name:"Indexed File Count",description:"Maximum number of files that can be indexed.",default:1e3,kind:"workspace",category:"count",trackUsagePerBot:!0},file_max_size_bytes:{name:"Max File Size",description:"Maximum size of a file in bytes.",default:1e8,kind:"workspace",category:"limit",trackUsagePerBot:!0}};var na={};Object.defineProperty(na,"__esModule",{value:!0}),na.billingFeatureDefs=na.BILLING_PLAN_IDS=na.ALLOWED_TRIAL_PLANS=na.ALLOWED_TRIAL_LENGTHS_IN_DAYS=void 0,na.ALLOWED_TRIAL_LENGTHS_IN_DAYS=7,na.ALLOWED_TRIAL_PLANS=["plus","team"],na.BILLING_PLAN_IDS=["community","plus","team","enterprise","managed"],na.billingFeatureDefs={human_in_the_loop:{name:"Human in the Loop"},ratelimit:{name:"Rate Limit"},incoming_messages_events:{name:"Incoming Messages/Events"},integration_spend:{name:"Integration Spend"},integration_subscription:{name:"Integration Subscription"},table_rows:{name:"Table Rows"},bot_count:{name:"Bot Count"},always_alive_count:{name:"Always Alive Count"},always_alive_concurrency:{name:"Always Alive Concurrency"},collaborator_count:{name:"Collaborator Count"},file_storage:{name:"File Storage"},vector_db_storage:{name:"Vector DB Storage"},saved_versions:{name:"Saved Versions"},indexed_file_count:{name:"Indexed File Count"}},function(a){var e=be&&be.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var d=Object.getOwnPropertyDescriptor(r,o);(!d||("get"in d?!r.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,d)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=be&&be.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(va,a),t(na,a)}(Rs);var ln={};Object.defineProperty(ln,"__esModule",{value:!0}),ln.Tags=void 0,ln.Tags={bot:{},conversation:{upstream:{description:"Used for HITL as a convention. The upstream conversation ID, ie. the conversation ID of the original conversation"},downstream:{description:"Used for HITL as a convention. The downstream conversation ID, ie. the conversation ID of conversation in HITL channel"}},message:{origin:{description:'The origin location of the message in the bot, eg. "workflow://[id]/node/[id]"'},iteration:{description:"The LLMz iteration ID of the message, for tracking and debugging purposes"}},event:{},workflow:{},user:{},file:{system:{type:"boolean",description:"System files are managed by Botpress and should not be modified"},purpose:{description:'The purpose of the file, eg. "swap"'},source:{description:'The source of the file, eg. "knowledge-base"'},kbId:{description:"The ID of the knowledge base"},favicon:{description:'The favicon URL to display for the file, eg. "https://example.com/favicon.ico"'},pageUrl:{description:'The original page URL of the file, eg. "https://example.com/page"'},integrationName:{description:"The name of the integration that created the file"},webchatInjectConfigVersion:{description:"The version of the webchat inject configuration (used by the dashboard)"}},table:{system:{type:"boolean",description:"System tables are managed by Botpress and should not be modified"},"x-studio-title":{description:"Overrides the table title in the Studio"},"x-studio-readonly":{type:"boolean",description:"Prevents the table from being modified by the user in the Studio"},"x-studio-icon":{description:'Overrides the table icon in the Studio. The value can be a lucide icon URL, eg. "lucide://atom"'},"x-studio-color":{description:"Overrides the table color in the Studio."},"x-studio-folder":{description:"Groups the table in a folder in the Studio"},"x-studio-deletable":{type:"boolean",description:"Prevents the table from being deleted by the user in the Studio"}}};var We={};Object.defineProperty(We,"__esModule",{value:!0}),We.KNOWLEDGE_WORKFLOW=We.IDENTITY_WEBSITE_WORKFLOW=We.IDENTITY_TEXT_WORKFLOW=We.ONBOARDING_DEPLOY_WORKFLOW=We.WEBSITE_CRAWL_WORKFLOW=void 0,We.WEBSITE_CRAWL_WORKFLOW="website-crawl",We.ONBOARDING_DEPLOY_WORKFLOW="onboarding-deploy",We.IDENTITY_TEXT_WORKFLOW="identity-text-workflow",We.IDENTITY_WEBSITE_WORKFLOW="identity-website-workflow",We.KNOWLEDGE_WORKFLOW="knowledge-workflow";var cn={};Object.defineProperty(cn,"__esModule",{value:!0}),cn.CANCELLATION_REASONS=void 0,cn.CANCELLATION_REASONS=["too_expensive","not_using_enough","missing_feature","switched_tool","technical_issues","support_expectations","temporary_need"];var Ys={},sr={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.CREDIT_GRANT_BILLING_FEATURE_IDS=a.NON_RESETTING_BILLING_FEATURE_IDS=a.NON_ATOMIC_BILLING_FEATURE_IDS=a.ATOMIC_BILLING_FEATURE_IDS=a.BILLING_FEATURE_IDS=a.billingFeatureDefinitions=void 0,a.billingFeatureDefinitions=[{id:"incoming_messages_events",name:"Incoming Messages/Events",description:"Number of incoming messages and events processed per month",resetPeriod:"monthly",consistency:"eventual",dimensions:{botId:"Bot ID",type:"Message or Event type"}},{id:"integration_spend",name:"Integration Spend",description:"Credits spent on integrations (AI, third-party services)",resetPeriod:"monthly",consistency:"eventual",dimensions:{botId:"Bot ID",integrationName:"Integration name",integrationVersionId:"Integration version ID",actionName:"Action name"}},{id:"table_rows",name:"Table Rows",description:"Number of table rows that can be stored",resetPeriod:"never",consistency:"eventual"},{id:"bot_count",name:"Bot Count",description:"Number of bots that can be created",resetPeriod:"never",consistency:"atomic"},{id:"collaborator_count",name:"Collaborator Count",description:"Number of collaborators that can be added to workspace",resetPeriod:"never",consistency:"atomic"},{id:"file_storage",name:"File Storage",description:"Amount of file storage available",resetPeriod:"never",consistency:"eventual"},{id:"vector_db_storage",name:"Vector DB Storage",description:"Amount of vector database storage available",resetPeriod:"never",consistency:"eventual"},{id:"saved_versions",name:"Saved Versions",description:"Number of bot versions that can be saved",resetPeriod:"never",consistency:"atomic"},{id:"indexed_file_count",name:"Indexed File Count",description:"The number of indexed files in the files api",resetPeriod:"never",consistency:"eventual"},{id:"conversation_sessions",name:"Conversations",description:"Number of conversation sessions that can occur",resetPeriod:"monthly",consistency:"eventual"},{id:"ai_spend",name:"AI Spend",description:"Amount that is useable for AI in nano-dollars",resetPeriod:"monthly",consistency:"eventual",grantable:!0}],a.BILLING_FEATURE_IDS=a.billingFeatureDefinitions.map(e=>e.id),a.ATOMIC_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.consistency==="atomic").map(e=>e.id),a.NON_ATOMIC_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.consistency==="eventual").map(e=>e.id),a.NON_RESETTING_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.resetPeriod==="never").map(e=>e.id),a.CREDIT_GRANT_BILLING_FEATURE_IDS=a.billingFeatureDefinitions.filter(e=>e.grantable).map(e=>e.id)})(sr);var Js={},ft={},un={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.AI_SPEND_PER_CONVERSATION=a.MESSAGES_PER_CONVERSATION=a.YEAR_MONTHS=a.NANO_DOLLAR_PER_CENT=a.BIG_UNLIMITED=a.SMALL_UNLIMITED=a.MB=a.GB=a.FREE_PRICE=void 0,a.FREE_PRICE=-1,a.GB=1e9,a.MB=1e6,a.SMALL_UNLIMITED=5e3,a.BIG_UNLIMITED=5e6,a.NANO_DOLLAR_PER_CENT=1e7,a.YEAR_MONTHS=12,a.MESSAGES_PER_CONVERSATION=3e4,a.AI_SPEND_PER_CONVERSATION=10*a.NANO_DOLLAR_PER_CENT})(un);var yt={},Qs={},or={},_a={},pn={},ra={},vt={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.getParsedType=a.ZodParsedType=a.objectUtil=a.util=void 0;var e;(function(r){r.assertEqual=l=>{};function o(l){}r.assertIs=o;function i(l){throw new Error}r.assertNever=i,r.arrayToEnum=l=>{const c={};for(const u of l)c[u]=u;return c},r.getValidEnumValues=l=>{const c=r.objectKeys(l).filter(p=>typeof l[l[p]]!="number"),u={};for(const p of c)u[p]=l[p];return r.objectValues(u)},r.objectValues=l=>r.objectKeys(l).map(function(c){return l[c]}),r.objectKeys=typeof Object.keys=="function"?l=>Object.keys(l):l=>{const c=[];for(const u in l)Object.prototype.hasOwnProperty.call(l,u)&&c.push(u);return c},r.find=(l,c)=>{for(const u of l)if(c(u))return u},r.isInteger=typeof Number.isInteger=="function"?l=>Number.isInteger(l):l=>typeof l=="number"&&Number.isFinite(l)&&Math.floor(l)===l;function d(l,c=" | "){return l.map(u=>typeof u=="string"?`'${u}'`:u).join(c)}r.joinValues=d,r.jsonStringifyReplacer=(l,c)=>typeof c=="bigint"?c.toString():c})(e||(a.util=e={}));var t;(function(r){r.mergeShapes=(o,i)=>({...o,...i})})(t||(a.objectUtil=t={})),a.ZodParsedType=e.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]);const n=r=>{switch(typeof r){case"undefined":return a.ZodParsedType.undefined;case"string":return a.ZodParsedType.string;case"number":return Number.isNaN(r)?a.ZodParsedType.nan:a.ZodParsedType.number;case"boolean":return a.ZodParsedType.boolean;case"function":return a.ZodParsedType.function;case"bigint":return a.ZodParsedType.bigint;case"symbol":return a.ZodParsedType.symbol;case"object":return Array.isArray(r)?a.ZodParsedType.array:r===null?a.ZodParsedType.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?a.ZodParsedType.promise:typeof Map<"u"&&r instanceof Map?a.ZodParsedType.map:typeof Set<"u"&&r instanceof Set?a.ZodParsedType.set:typeof Date<"u"&&r instanceof Date?a.ZodParsedType.date:a.ZodParsedType.object;default:return a.ZodParsedType.unknown}};a.getParsedType=n})(vt),Object.defineProperty(ra,"__esModule",{value:!0}),ra.ZodError=ra.quotelessJson=ra.ZodIssueCode=void 0;const Xs=vt;ra.ZodIssueCode=Xs.util.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);const rl=a=>JSON.stringify(a,null,2).replace(/"([^"]+)":/g,"$1:");ra.quotelessJson=rl;class _t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(o){return o.message},n={_errors:[]},r=o=>{for(const i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(r);else if(i.code==="invalid_return_type")r(i.returnTypeError);else if(i.code==="invalid_arguments")r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let d=n,l=0;for(;l<i.path.length;){const c=i.path[l];l===i.path.length-1?(d[c]=d[c]||{_errors:[]},d[c]._errors.push(t(i))):d[c]=d[c]||{_errors:[]},d=d[c],l++}}};return r(this),n}static assert(e){if(!(e instanceof _t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Xs.util.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const r of this.issues)if(r.path.length>0){const o=r.path[0];t[o]=t[o]||[],t[o].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}ra.ZodError=_t,_t.create=a=>new _t(a),Object.defineProperty(pn,"__esModule",{value:!0});const De=ra,La=vt,sl=(a,e)=>{let t;switch(a.code){case De.ZodIssueCode.invalid_type:a.received===La.ZodParsedType.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case De.ZodIssueCode.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,La.util.jsonStringifyReplacer)}`;break;case De.ZodIssueCode.unrecognized_keys:t=`Unrecognized key(s) in object: ${La.util.joinValues(a.keys,", ")}`;break;case De.ZodIssueCode.invalid_union:t="Invalid input";break;case De.ZodIssueCode.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${La.util.joinValues(a.options)}`;break;case De.ZodIssueCode.invalid_enum_value:t=`Invalid enum value. Expected ${La.util.joinValues(a.options)}, received '${a.received}'`;break;case De.ZodIssueCode.invalid_arguments:t="Invalid function arguments";break;case De.ZodIssueCode.invalid_return_type:t="Invalid function return type";break;case De.ZodIssueCode.invalid_date:t="Invalid date";break;case De.ZodIssueCode.invalid_string:typeof a.validation=="object"?"includes"in a.validation?(t=`Invalid input: must include "${a.validation.includes}"`,typeof a.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${a.validation.position}`)):"startsWith"in a.validation?t=`Invalid input: must start with "${a.validation.startsWith}"`:"endsWith"in a.validation?t=`Invalid input: must end with "${a.validation.endsWith}"`:La.util.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case De.ZodIssueCode.too_small:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at least":"more than"} ${a.minimum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at least":"over"} ${a.minimum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="bigint"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(a.minimum))}`:t="Invalid input";break;case De.ZodIssueCode.too_big:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at most":"less than"} ${a.maximum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at most":"under"} ${a.maximum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="bigint"?t=`BigInt must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly":a.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(a.maximum))}`:t="Invalid input";break;case De.ZodIssueCode.custom:t="Invalid input";break;case De.ZodIssueCode.invalid_intersection_types:t="Intersection results could not be merged";break;case De.ZodIssueCode.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case De.ZodIssueCode.not_finite:t="Number must be finite";break;default:t=e.defaultError,La.util.assertNever(a)}return{message:t}};pn.default=sl;var ol=be&&be.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(_a,"__esModule",{value:!0}),_a.defaultErrorMap=void 0,_a.setErrorMap=il,_a.getErrorMap=dl;const eo=ol(pn);_a.defaultErrorMap=eo.default;let ao=eo.default;function il(a){ao=a}function dl(){return ao}var ir={};(function(a){var e=be&&be.__importDefault||function(g){return g&&g.__esModule?g:{default:g}};Object.defineProperty(a,"__esModule",{value:!0}),a.isAsync=a.isValid=a.isDirty=a.isAborted=a.OK=a.DIRTY=a.INVALID=a.ParseStatus=a.EMPTY_PATH=a.makeIssue=void 0,a.addIssueToContext=o;const t=_a,n=e(pn),r=g=>{const{data:_,path:b,errorMaps:h,issueData:k}=g,C=[...b,...k.path||[]],w={...k,path:C};if(k.message!==void 0)return{...k,path:C,message:k.message};let v="";const P=h.filter(N=>!!N).slice().reverse();for(const N of P)v=N(w,{data:_,defaultError:v}).message;return{...k,path:C,message:v}};a.makeIssue=r,a.EMPTY_PATH=[];function o(g,_){const b=(0,t.getErrorMap)(),h=(0,a.makeIssue)({issueData:_,data:g.data,path:g.path,errorMaps:[g.common.contextualErrorMap,g.schemaErrorMap,b,b===n.default?void 0:n.default].filter(k=>!!k)});g.common.issues.push(h)}class i{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(_,b){const h=[];for(const k of b){if(k.status==="aborted")return a.INVALID;k.status==="dirty"&&_.dirty(),h.push(k.value)}return{status:_.value,value:h}}static async mergeObjectAsync(_,b){const h=[];for(const k of b){const C=await k.key,w=await k.value;h.push({key:C,value:w})}return i.mergeObjectSync(_,h)}static mergeObjectSync(_,b){const h={};for(const k of b){const{key:C,value:w}=k;if(C.status==="aborted"||w.status==="aborted")return a.INVALID;C.status==="dirty"&&_.dirty(),w.status==="dirty"&&_.dirty(),C.value!=="__proto__"&&(typeof w.value<"u"||k.alwaysSet)&&(h[C.value]=w.value)}return{status:_.value,value:h}}}a.ParseStatus=i,a.INVALID=Object.freeze({status:"aborted"});const d=g=>({status:"dirty",value:g});a.DIRTY=d;const l=g=>({status:"valid",value:g});a.OK=l;const c=g=>g.status==="aborted";a.isAborted=c;const u=g=>g.status==="dirty";a.isDirty=u;const p=g=>g.status==="valid";a.isValid=p;const m=g=>typeof Promise<"u"&&g instanceof Promise;a.isAsync=m})(ir);var to={};Object.defineProperty(to,"__esModule",{value:!0});var f={},mn={};Object.defineProperty(mn,"__esModule",{value:!0}),mn.errorUtil=void 0;var no;(function(a){a.errToObj=e=>typeof e=="string"?{message:e}:e||{},a.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(no||(mn.errorUtil=no={})),Object.defineProperty(f,"__esModule",{value:!0}),f.discriminatedUnion=f.date=f.boolean=f.bigint=f.array=f.any=f.coerce=f.ZodFirstPartyTypeKind=f.late=f.ZodSchema=f.Schema=f.ZodReadonly=f.ZodPipeline=f.ZodBranded=f.BRAND=f.ZodNaN=f.ZodCatch=f.ZodDefault=f.ZodNullable=f.ZodOptional=f.ZodTransformer=f.ZodEffects=f.ZodPromise=f.ZodNativeEnum=f.ZodEnum=f.ZodLiteral=f.ZodLazy=f.ZodFunction=f.ZodSet=f.ZodMap=f.ZodRecord=f.ZodTuple=f.ZodIntersection=f.ZodDiscriminatedUnion=f.ZodUnion=f.ZodObject=f.ZodArray=f.ZodVoid=f.ZodNever=f.ZodUnknown=f.ZodAny=f.ZodNull=f.ZodUndefined=f.ZodSymbol=f.ZodDate=f.ZodBoolean=f.ZodBigInt=f.ZodNumber=f.ZodString=f.ZodType=void 0,f.NEVER=f.void=f.unknown=f.union=f.undefined=f.tuple=f.transformer=f.symbol=f.string=f.strictObject=f.set=f.record=f.promise=f.preprocess=f.pipeline=f.ostring=f.optional=f.onumber=f.oboolean=f.object=f.number=f.nullable=f.null=f.never=f.nativeEnum=f.nan=f.map=f.literal=f.lazy=f.intersection=f.instanceof=f.function=f.enum=f.effect=void 0,f.datetimeRegex=io,f.custom=uo;const U=ra,gn=_a,H=mn,y=ir,O=vt;class sa{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const ro=(a,e)=>{if((0,y.isValid)(e))return{success:!0,data:e.value};if(!a.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new U.ZodError(a.common.issues);return this._error=t,this._error}}};function re(a){if(!a)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:r}=a;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(i,d)=>{const{message:l}=a;return i.code==="invalid_enum_value"?{message:l??d.defaultError}:typeof d.data>"u"?{message:l??n??d.defaultError}:i.code!=="invalid_type"?{message:d.defaultError}:{message:l??t??d.defaultError}},description:r}}class oe{get description(){return this._def.description}_getType(e){return(0,O.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,O.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new y.ParseStatus,ctx:{common:e.parent.common,data:e.data,parsedType:(0,O.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if((0,y.isAsync)(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){const n={common:{issues:[],async:(t==null?void 0:t.async)??!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,O.getParsedType)(e)},r=this._parseSync({data:e,path:n.path,parent:n});return ro(n,r)}"~validate"(e){var n,r;const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,O.getParsedType)(e)};if(!this["~standard"].async)try{const o=this._parseSync({data:e,path:[],parent:t});return(0,y.isValid)(o)?{value:o.value}:{issues:t.common.issues}}catch(o){(r=(n=o==null?void 0:o.message)==null?void 0:n.toLowerCase())!=null&&r.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(o=>(0,y.isValid)(o)?{value:o.value}:{issues:t.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,O.getParsedType)(e)},r=this._parse({data:e,path:n.path,parent:n}),o=await((0,y.isAsync)(r)?r:Promise.resolve(r));return ro(n,o)}refine(e,t){const n=r=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(r):t;return this._refinement((r,o)=>{const i=e(r),d=()=>o.addIssue({code:U.ZodIssueCode.custom,...n(r)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(d(),!1)):i?!0:(d(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t=="function"?t(n,r):t),!1))}_refinement(e){return new Je({schema:this,typeName:ae.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return ia.create(this,this._def)}nullable(){return ka.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Ye.create(this)}promise(){return Ja.create(this,this._def)}or(e){return kt.create([this,e],this._def)}and(e){return Tt.create(this,e,this._def)}transform(e){return new Je({...re(this._def),schema:this,typeName:ae.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new Et({...re(this._def),innerType:this,defaultValue:t,typeName:ae.ZodDefault})}brand(){return new cr({typeName:ae.ZodBranded,type:this,...re(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new xt({...re(this._def),innerType:this,catchValue:t,typeName:ae.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return Dt.create(this,e)}readonly(){return Lt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}f.ZodType=oe,f.Schema=oe,f.ZodSchema=oe;const ll=/^c[^\s-]{8,}$/i,cl=/^[0-9a-z]+$/,ul=/^[0-9A-HJKMNP-TV-Z]{26}$/i,pl=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,ml=/^[a-z0-9_-]{21}$/i,gl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,hl=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,bl=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,fl="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let dr;const yl=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,vl=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,_l=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Cl=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Sl=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Nl=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,so="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",kl=new RegExp(`^${so}$`);function oo(a){let e="[0-5]\\d";a.precision?e=`${e}\\.\\d{${a.precision}}`:a.precision==null&&(e=`${e}(\\.\\d+)?`);const t=a.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function Tl(a){return new RegExp(`^${oo(a)}$`)}function io(a){let e=`${so}T${oo(a)}`;const t=[];return t.push(a.local?"Z?":"Z"),a.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function wl(a,e){return!!((e==="v4"||!e)&&yl.test(a)||(e==="v6"||!e)&&_l.test(a))}function Il(a,e){if(!gl.test(a))return!1;try{const[t]=a.split(".");if(!t)return!1;const n=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),r=JSON.parse(atob(n));return!(typeof r!="object"||r===null||"typ"in r&&(r==null?void 0:r.typ)!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function Al(a,e){return!!((e==="v4"||!e)&&vl.test(a)||(e==="v6"||!e)&&Cl.test(a))}class Re extends oe{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==O.ZodParsedType.string){const o=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(o,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.string,received:o.parsedType}),y.INVALID}const n=new y.ParseStatus;let r;for(const o of this._def.checks)if(o.kind==="min")e.data.length<o.value&&(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="max")e.data.length>o.value&&(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),n.dirty());else if(o.kind==="length"){const i=e.data.length>o.value,d=e.data.length<o.value;(i||d)&&(r=this._getOrReturnCtx(e,r),i?(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):d&&(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),n.dirty())}else if(o.kind==="email")bl.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"email",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="emoji")dr||(dr=new RegExp(fl,"u")),dr.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"emoji",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="uuid")pl.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"uuid",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="nanoid")ml.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"nanoid",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid")ll.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"cuid",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="cuid2")cl.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"cuid2",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="ulid")ul.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"ulid",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty());else if(o.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"url",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"regex",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty())):o.kind==="trim"?e.data=e.data.trim():o.kind==="includes"?e.data.includes(o.value,o.position)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),n.dirty()):o.kind==="toLowerCase"?e.data=e.data.toLowerCase():o.kind==="toUpperCase"?e.data=e.data.toUpperCase():o.kind==="startsWith"?e.data.startsWith(o.value)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.invalid_string,validation:{startsWith:o.value},message:o.message}),n.dirty()):o.kind==="endsWith"?e.data.endsWith(o.value)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.invalid_string,validation:{endsWith:o.value},message:o.message}),n.dirty()):o.kind==="datetime"?io(o).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.invalid_string,validation:"datetime",message:o.message}),n.dirty()):o.kind==="date"?kl.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.invalid_string,validation:"date",message:o.message}),n.dirty()):o.kind==="time"?Tl(o).test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.invalid_string,validation:"time",message:o.message}),n.dirty()):o.kind==="duration"?hl.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"duration",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="ip"?wl(e.data,o.version)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"ip",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="jwt"?Il(e.data,o.alg)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"jwt",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="cidr"?Al(e.data,o.version)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"cidr",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="base64"?Sl.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"base64",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):o.kind==="base64url"?Nl.test(e.data)||(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{validation:"base64url",code:U.ZodIssueCode.invalid_string,message:o.message}),n.dirty()):O.util.assertNever(o);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(r=>e.test(r),{validation:t,code:U.ZodIssueCode.invalid_string,...H.errorUtil.errToObj(n)})}_addCheck(e){return new Re({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...H.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:"url",...H.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...H.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...H.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...H.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...H.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...H.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...H.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...H.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...H.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...H.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...H.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...H.errorUtil.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...H.errorUtil.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...H.errorUtil.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...H.errorUtil.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...H.errorUtil.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...H.errorUtil.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...H.errorUtil.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...H.errorUtil.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...H.errorUtil.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...H.errorUtil.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...H.errorUtil.errToObj(t)})}nonempty(e){return this.min(1,H.errorUtil.errToObj(e))}trim(){return new Re({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Re({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Re({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}f.ZodString=Re,Re.create=a=>new Re({checks:[],typeName:ae.ZodString,coerce:(a==null?void 0:a.coerce)??!1,...re(a)});function Pl(a,e){const t=(a.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,r=t>n?t:n,o=Number.parseInt(a.toFixed(r).replace(".","")),i=Number.parseInt(e.toFixed(r).replace(".",""));return o%i/10**r}class Ca extends oe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==O.ZodParsedType.number){const o=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(o,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.number,received:o.parsedType}),y.INVALID}let n;const r=new y.ParseStatus;for(const o of this._def.checks)o.kind==="int"?O.util.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:"integer",received:"float",message:o.message}),r.dirty()):o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),r.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),r.dirty()):o.kind==="multipleOf"?Pl(e.data,o.value)!==0&&(n=this._getOrReturnCtx(e,n),(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.not_multiple_of,multipleOf:o.value,message:o.message}),r.dirty()):o.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.not_finite,message:o.message}),r.dirty()):O.util.assertNever(o);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,H.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,H.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,H.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,H.errorUtil.toString(t))}setLimit(e,t,n,r){return new Ca({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:H.errorUtil.toString(r)}]})}_addCheck(e){return new Ca({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:H.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:H.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:H.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:H.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:H.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:H.errorUtil.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:H.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:H.errorUtil.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:H.errorUtil.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&O.util.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}f.ZodNumber=Ca,Ca.create=a=>new Ca({checks:[],typeName:ae.ZodNumber,coerce:(a==null?void 0:a.coerce)||!1,...re(a)});class Sa extends oe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==O.ZodParsedType.bigint)return this._getInvalidInput(e);let n;const r=new y.ParseStatus;for(const o of this._def.checks)o.kind==="min"?(o.inclusive?e.data<o.value:e.data<=o.value)&&(n=this._getOrReturnCtx(e,n),(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),r.dirty()):o.kind==="max"?(o.inclusive?e.data>o.value:e.data>=o.value)&&(n=this._getOrReturnCtx(e,n),(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),r.dirty()):o.kind==="multipleOf"?e.data%o.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.not_multiple_of,multipleOf:o.value,message:o.message}),r.dirty()):O.util.assertNever(o);return{status:r.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(t,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.bigint,received:t.parsedType}),y.INVALID}gte(e,t){return this.setLimit("min",e,!0,H.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,!1,H.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,!0,H.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,!1,H.errorUtil.toString(t))}setLimit(e,t,n,r){return new Sa({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:H.errorUtil.toString(r)}]})}_addCheck(e){return new Sa({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:H.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:H.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:H.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:H.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:H.errorUtil.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}f.ZodBigInt=Sa,Sa.create=a=>new Sa({checks:[],typeName:ae.ZodBigInt,coerce:(a==null?void 0:a.coerce)??!1,...re(a)});class Ct extends oe{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==O.ZodParsedType.boolean){const n=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.boolean,received:n.parsedType}),y.INVALID}return(0,y.OK)(e.data)}}f.ZodBoolean=Ct,Ct.create=a=>new Ct({typeName:ae.ZodBoolean,coerce:(a==null?void 0:a.coerce)||!1,...re(a)});class Fa extends oe{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==O.ZodParsedType.date){const o=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(o,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.date,received:o.parsedType}),y.INVALID}if(Number.isNaN(e.data.getTime())){const o=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(o,{code:U.ZodIssueCode.invalid_date}),y.INVALID}const n=new y.ParseStatus;let r;for(const o of this._def.checks)o.kind==="min"?e.data.getTime()<o.value&&(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),n.dirty()):o.kind==="max"?e.data.getTime()>o.value&&(r=this._getOrReturnCtx(e,r),(0,y.addIssueToContext)(r,{code:U.ZodIssueCode.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),n.dirty()):O.util.assertNever(o);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Fa({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:H.errorUtil.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:H.errorUtil.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}f.ZodDate=Fa,Fa.create=a=>new Fa({checks:[],coerce:(a==null?void 0:a.coerce)||!1,typeName:ae.ZodDate,...re(a)});class hn extends oe{_parse(e){if(this._getType(e)!==O.ZodParsedType.symbol){const n=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.symbol,received:n.parsedType}),y.INVALID}return(0,y.OK)(e.data)}}f.ZodSymbol=hn,hn.create=a=>new hn({typeName:ae.ZodSymbol,...re(a)});class St extends oe{_parse(e){if(this._getType(e)!==O.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.undefined,received:n.parsedType}),y.INVALID}return(0,y.OK)(e.data)}}f.ZodUndefined=St,St.create=a=>new St({typeName:ae.ZodUndefined,...re(a)});class Nt extends oe{_parse(e){if(this._getType(e)!==O.ZodParsedType.null){const n=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.null,received:n.parsedType}),y.INVALID}return(0,y.OK)(e.data)}}f.ZodNull=Nt,Nt.create=a=>new Nt({typeName:ae.ZodNull,...re(a)});class Ha extends oe{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,y.OK)(e.data)}}f.ZodAny=Ha,Ha.create=a=>new Ha({typeName:ae.ZodAny,...re(a)});class Ma extends oe{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,y.OK)(e.data)}}f.ZodUnknown=Ma,Ma.create=a=>new Ma({typeName:ae.ZodUnknown,...re(a)});class pa extends oe{_parse(e){const t=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(t,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.never,received:t.parsedType}),y.INVALID}}f.ZodNever=pa,pa.create=a=>new pa({typeName:ae.ZodNever,...re(a)});class bn extends oe{_parse(e){if(this._getType(e)!==O.ZodParsedType.undefined){const n=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.void,received:n.parsedType}),y.INVALID}return(0,y.OK)(e.data)}}f.ZodVoid=bn,bn.create=a=>new bn({typeName:ae.ZodVoid,...re(a)});class Ye extends oe{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==O.ZodParsedType.array)return(0,y.addIssueToContext)(t,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.array,received:t.parsedType}),y.INVALID;if(r.exactLength!==null){const i=t.data.length>r.exactLength.value,d=t.data.length<r.exactLength.value;(i||d)&&((0,y.addIssueToContext)(t,{code:i?U.ZodIssueCode.too_big:U.ZodIssueCode.too_small,minimum:d?r.exactLength.value:void 0,maximum:i?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&((0,y.addIssueToContext)(t,{code:U.ZodIssueCode.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&((0,y.addIssueToContext)(t,{code:U.ZodIssueCode.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((i,d)=>r.type._parseAsync(new sa(t,i,t.path,d)))).then(i=>y.ParseStatus.mergeArray(n,i));const o=[...t.data].map((i,d)=>r.type._parseSync(new sa(t,i,t.path,d)));return y.ParseStatus.mergeArray(n,o)}get element(){return this._def.type}min(e,t){return new Ye({...this._def,minLength:{value:e,message:H.errorUtil.toString(t)}})}max(e,t){return new Ye({...this._def,maxLength:{value:e,message:H.errorUtil.toString(t)}})}length(e,t){return new Ye({...this._def,exactLength:{value:e,message:H.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}f.ZodArray=Ye,Ye.create=(a,e)=>new Ye({type:a,minLength:null,maxLength:null,exactLength:null,typeName:ae.ZodArray,...re(e)});function Ra(a){if(a instanceof Te){const e={};for(const t in a.shape){const n=a.shape[t];e[t]=ia.create(Ra(n))}return new Te({...a._def,shape:()=>e})}else return a instanceof Ye?new Ye({...a._def,type:Ra(a.element)}):a instanceof ia?ia.create(Ra(a.unwrap())):a instanceof ka?ka.create(Ra(a.unwrap())):a instanceof oa?oa.create(a.items.map(e=>Ra(e))):a}class Te extends oe{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=O.util.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==O.ZodParsedType.object){const c=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(c,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.object,received:c.parsedType}),y.INVALID}const{status:n,ctx:r}=this._processInputParams(e),{shape:o,keys:i}=this._getCached(),d=[];if(!(this._def.catchall instanceof pa&&this._def.unknownKeys==="strip"))for(const c in r.data)i.includes(c)||d.push(c);const l=[];for(const c of i){const u=o[c],p=r.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new sa(r,p,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof pa){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of d)l.push({key:{status:"valid",value:u},value:{status:"valid",value:r.data[u]}});else if(c==="strict")d.length>0&&((0,y.addIssueToContext)(r,{code:U.ZodIssueCode.unrecognized_keys,keys:d}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of d){const p=r.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new sa(r,p,r.path,u)),alwaysSet:u in r.data})}}return r.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of l){const p=await u.key,m=await u.value;c.push({key:p,value:m,alwaysSet:u.alwaysSet})}return c}).then(c=>y.ParseStatus.mergeObjectSync(n,c)):y.ParseStatus.mergeObjectSync(n,l)}get shape(){return this._def.shape()}strict(e){return H.errorUtil.errToObj,new Te({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var o,i;const r=((i=(o=this._def).errorMap)==null?void 0:i.call(o,t,n).message)??n.defaultError;return t.code==="unrecognized_keys"?{message:H.errorUtil.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new Te({...this._def,unknownKeys:"strip"})}passthrough(){return new Te({...this._def,unknownKeys:"passthrough"})}extend(e){return new Te({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Te({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:ae.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Te({...this._def,catchall:e})}pick(e){const t={};for(const n of O.util.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new Te({...this._def,shape:()=>t})}omit(e){const t={};for(const n of O.util.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new Te({...this._def,shape:()=>t})}deepPartial(){return Ra(this)}partial(e){const t={};for(const n of O.util.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new Te({...this._def,shape:()=>t})}required(e){const t={};for(const n of O.util.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let o=this.shape[n];for(;o instanceof ia;)o=o._def.innerType;t[n]=o}return new Te({...this._def,shape:()=>t})}keyof(){return lo(O.util.objectKeys(this.shape))}}f.ZodObject=Te,Te.create=(a,e)=>new Te({shape:()=>a,unknownKeys:"strip",catchall:pa.create(),typeName:ae.ZodObject,...re(e)}),Te.strictCreate=(a,e)=>new Te({shape:()=>a,unknownKeys:"strict",catchall:pa.create(),typeName:ae.ZodObject,...re(e)}),Te.lazycreate=(a,e)=>new Te({shape:a,unknownKeys:"strip",catchall:pa.create(),typeName:ae.ZodObject,...re(e)});class kt extends oe{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function r(o){for(const d of o)if(d.result.status==="valid")return d.result;for(const d of o)if(d.result.status==="dirty")return t.common.issues.push(...d.ctx.common.issues),d.result;const i=o.map(d=>new U.ZodError(d.ctx.common.issues));return(0,y.addIssueToContext)(t,{code:U.ZodIssueCode.invalid_union,unionErrors:i}),y.INVALID}if(t.common.async)return Promise.all(n.map(async o=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await o._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(r);{let o;const i=[];for(const l of n){const c={...t,common:{...t.common,issues:[]},parent:null},u=l._parseSync({data:t.data,path:t.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!o&&(o={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(o)return t.common.issues.push(...o.ctx.common.issues),o.result;const d=i.map(l=>new U.ZodError(l));return(0,y.addIssueToContext)(t,{code:U.ZodIssueCode.invalid_union,unionErrors:d}),y.INVALID}}get options(){return this._def.options}}f.ZodUnion=kt,kt.create=(a,e)=>new kt({options:a,typeName:ae.ZodUnion,...re(e)});const ma=a=>a instanceof It?ma(a.schema):a instanceof Je?ma(a.innerType()):a instanceof At?[a.value]:a instanceof Na?a.options:a instanceof Pt?O.util.objectValues(a.enum):a instanceof Et?ma(a._def.innerType):a instanceof St?[void 0]:a instanceof Nt?[null]:a instanceof ia?[void 0,...ma(a.unwrap())]:a instanceof ka?[null,...ma(a.unwrap())]:a instanceof cr||a instanceof Lt?ma(a.unwrap()):a instanceof xt?ma(a._def.innerType):[];class fn extends oe{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==O.ZodParsedType.object)return(0,y.addIssueToContext)(t,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.object,received:t.parsedType}),y.INVALID;const n=this.discriminator,r=t.data[n],o=this.optionsMap.get(r);return o?t.common.async?o._parseAsync({data:t.data,path:t.path,parent:t}):o._parseSync({data:t.data,path:t.path,parent:t}):((0,y.addIssueToContext)(t,{code:U.ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),y.INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const r=new Map;for(const o of t){const i=ma(o.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const d of i){if(r.has(d))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(d)}`);r.set(d,o)}}return new fn({typeName:ae.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...re(n)})}}f.ZodDiscriminatedUnion=fn;function lr(a,e){const t=(0,O.getParsedType)(a),n=(0,O.getParsedType)(e);if(a===e)return{valid:!0,data:a};if(t===O.ZodParsedType.object&&n===O.ZodParsedType.object){const r=O.util.objectKeys(e),o=O.util.objectKeys(a).filter(d=>r.indexOf(d)!==-1),i={...a,...e};for(const d of o){const l=lr(a[d],e[d]);if(!l.valid)return{valid:!1};i[d]=l.data}return{valid:!0,data:i}}else if(t===O.ZodParsedType.array&&n===O.ZodParsedType.array){if(a.length!==e.length)return{valid:!1};const r=[];for(let o=0;o<a.length;o++){const i=a[o],d=e[o],l=lr(i,d);if(!l.valid)return{valid:!1};r.push(l.data)}return{valid:!0,data:r}}else return t===O.ZodParsedType.date&&n===O.ZodParsedType.date&&+a==+e?{valid:!0,data:a}:{valid:!1}}class Tt extends oe{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(o,i)=>{if((0,y.isAborted)(o)||(0,y.isAborted)(i))return y.INVALID;const d=lr(o.value,i.value);return d.valid?(((0,y.isDirty)(o)||(0,y.isDirty)(i))&&t.dirty(),{status:t.value,value:d.data}):((0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_intersection_types}),y.INVALID)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([o,i])=>r(o,i)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}f.ZodIntersection=Tt,Tt.create=(a,e,t)=>new Tt({left:a,right:e,typeName:ae.ZodIntersection,...re(t)});class oa extends oe{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==O.ZodParsedType.array)return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.array,received:n.parsedType}),y.INVALID;if(n.data.length<this._def.items.length)return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),y.INVALID;!this._def.rest&&n.data.length>this._def.items.length&&((0,y.addIssueToContext)(n,{code:U.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const o=[...n.data].map((i,d)=>{const l=this._def.items[d]||this._def.rest;return l?l._parse(new sa(n,i,n.path,d)):null}).filter(i=>!!i);return n.common.async?Promise.all(o).then(i=>y.ParseStatus.mergeArray(t,i)):y.ParseStatus.mergeArray(t,o)}get items(){return this._def.items}rest(e){return new oa({...this._def,rest:e})}}f.ZodTuple=oa,oa.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new oa({items:a,typeName:ae.ZodTuple,rest:null,...re(e)})};class wt extends oe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==O.ZodParsedType.object)return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.object,received:n.parsedType}),y.INVALID;const r=[],o=this._def.keyType,i=this._def.valueType;for(const d in n.data)r.push({key:o._parse(new sa(n,d,n.path,d)),value:i._parse(new sa(n,n.data[d],n.path,d)),alwaysSet:d in n.data});return n.common.async?y.ParseStatus.mergeObjectAsync(t,r):y.ParseStatus.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof oe?new wt({keyType:e,valueType:t,typeName:ae.ZodRecord,...re(n)}):new wt({keyType:Re.create(),valueType:e,typeName:ae.ZodRecord,...re(t)})}}f.ZodRecord=wt;class yn extends oe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==O.ZodParsedType.map)return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.map,received:n.parsedType}),y.INVALID;const r=this._def.keyType,o=this._def.valueType,i=[...n.data.entries()].map(([d,l],c)=>({key:r._parse(new sa(n,d,n.path,[c,"key"])),value:o._parse(new sa(n,l,n.path,[c,"value"]))}));if(n.common.async){const d=new Map;return Promise.resolve().then(async()=>{for(const l of i){const c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return y.INVALID;(c.status==="dirty"||u.status==="dirty")&&t.dirty(),d.set(c.value,u.value)}return{status:t.value,value:d}})}else{const d=new Map;for(const l of i){const c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return y.INVALID;(c.status==="dirty"||u.status==="dirty")&&t.dirty(),d.set(c.value,u.value)}return{status:t.value,value:d}}}}f.ZodMap=yn,yn.create=(a,e,t)=>new yn({valueType:e,keyType:a,typeName:ae.ZodMap,...re(t)});class Ua extends oe{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==O.ZodParsedType.set)return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.set,received:n.parsedType}),y.INVALID;const r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&((0,y.addIssueToContext)(n,{code:U.ZodIssueCode.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&((0,y.addIssueToContext)(n,{code:U.ZodIssueCode.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const o=this._def.valueType;function i(l){const c=new Set;for(const u of l){if(u.status==="aborted")return y.INVALID;u.status==="dirty"&&t.dirty(),c.add(u.value)}return{status:t.value,value:c}}const d=[...n.data.values()].map((l,c)=>o._parse(new sa(n,l,n.path,c)));return n.common.async?Promise.all(d).then(l=>i(l)):i(d)}min(e,t){return new Ua({...this._def,minSize:{value:e,message:H.errorUtil.toString(t)}})}max(e,t){return new Ua({...this._def,maxSize:{value:e,message:H.errorUtil.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}f.ZodSet=Ua,Ua.create=(a,e)=>new Ua({valueType:a,minSize:null,maxSize:null,typeName:ae.ZodSet,...re(e)});class Ya extends oe{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==O.ZodParsedType.function)return(0,y.addIssueToContext)(t,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.function,received:t.parsedType}),y.INVALID;function n(d,l){return(0,y.makeIssue)({data:d,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,gn.getErrorMap)(),gn.defaultErrorMap].filter(c=>!!c),issueData:{code:U.ZodIssueCode.invalid_arguments,argumentsError:l}})}function r(d,l){return(0,y.makeIssue)({data:d,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,gn.getErrorMap)(),gn.defaultErrorMap].filter(c=>!!c),issueData:{code:U.ZodIssueCode.invalid_return_type,returnTypeError:l}})}const o={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof Ja){const d=this;return(0,y.OK)(async function(...l){const c=new U.ZodError([]),u=await d._def.args.parseAsync(l,o).catch(g=>{throw c.addIssue(n(l,g)),c}),p=await Reflect.apply(i,this,u);return await d._def.returns._def.type.parseAsync(p,o).catch(g=>{throw c.addIssue(r(p,g)),c})})}else{const d=this;return(0,y.OK)(function(...l){const c=d._def.args.safeParse(l,o);if(!c.success)throw new U.ZodError([n(l,c.error)]);const u=Reflect.apply(i,this,c.data),p=d._def.returns.safeParse(u,o);if(!p.success)throw new U.ZodError([r(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Ya({...this._def,args:oa.create(e).rest(Ma.create())})}returns(e){return new Ya({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Ya({args:e||oa.create([]).rest(Ma.create()),returns:t||Ma.create(),typeName:ae.ZodFunction,...re(n)})}}f.ZodFunction=Ya;class It extends oe{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}f.ZodLazy=It,It.create=(a,e)=>new It({getter:a,typeName:ae.ZodLazy,...re(e)});class At extends oe{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(t,{received:t.data,code:U.ZodIssueCode.invalid_literal,expected:this._def.value}),y.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}}f.ZodLiteral=At,At.create=(a,e)=>new At({value:a,typeName:ae.ZodLiteral,...re(e)});function lo(a,e){return new Na({values:a,typeName:ae.ZodEnum,...re(e)})}class Na extends oe{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,y.addIssueToContext)(t,{expected:O.util.joinValues(n),received:t.parsedType,code:U.ZodIssueCode.invalid_type}),y.INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return(0,y.addIssueToContext)(t,{received:t.data,code:U.ZodIssueCode.invalid_enum_value,options:n}),y.INVALID}return(0,y.OK)(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Na.create(e,{...this._def,...t})}exclude(e,t=this._def){return Na.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}f.ZodEnum=Na,Na.create=lo;class Pt extends oe{_parse(e){const t=O.util.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==O.ZodParsedType.string&&n.parsedType!==O.ZodParsedType.number){const r=O.util.objectValues(t);return(0,y.addIssueToContext)(n,{expected:O.util.joinValues(r),received:n.parsedType,code:U.ZodIssueCode.invalid_type}),y.INVALID}if(this._cache||(this._cache=new Set(O.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=O.util.objectValues(t);return(0,y.addIssueToContext)(n,{received:n.data,code:U.ZodIssueCode.invalid_enum_value,options:r}),y.INVALID}return(0,y.OK)(e.data)}get enum(){return this._def.values}}f.ZodNativeEnum=Pt,Pt.create=(a,e)=>new Pt({values:a,typeName:ae.ZodNativeEnum,...re(e)});class Ja extends oe{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==O.ZodParsedType.promise&&t.common.async===!1)return(0,y.addIssueToContext)(t,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.promise,received:t.parsedType}),y.INVALID;const n=t.parsedType===O.ZodParsedType.promise?t.data:Promise.resolve(t.data);return(0,y.OK)(n.then(r=>this._def.type.parseAsync(r,{path:t.path,errorMap:t.common.contextualErrorMap})))}}f.ZodPromise=Ja,Ja.create=(a,e)=>new Ja({type:a,typeName:ae.ZodPromise,...re(e)});class Je extends oe{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ae.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,o={addIssue:i=>{(0,y.addIssueToContext)(n,i),i.fatal?t.abort():t.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),r.type==="preprocess"){const i=r.transform(n.data,o);if(n.common.async)return Promise.resolve(i).then(async d=>{if(t.value==="aborted")return y.INVALID;const l=await this._def.schema._parseAsync({data:d,path:n.path,parent:n});return l.status==="aborted"?y.INVALID:l.status==="dirty"||t.value==="dirty"?(0,y.DIRTY)(l.value):l});{if(t.value==="aborted")return y.INVALID;const d=this._def.schema._parseSync({data:i,path:n.path,parent:n});return d.status==="aborted"?y.INVALID:d.status==="dirty"||t.value==="dirty"?(0,y.DIRTY)(d.value):d}}if(r.type==="refinement"){const i=d=>{const l=r.refinement(d,o);if(n.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return d};if(n.common.async===!1){const d=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return d.status==="aborted"?y.INVALID:(d.status==="dirty"&&t.dirty(),i(d.value),{status:t.value,value:d.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(d=>d.status==="aborted"?y.INVALID:(d.status==="dirty"&&t.dirty(),i(d.value).then(()=>({status:t.value,value:d.value}))))}if(r.type==="transform")if(n.common.async===!1){const i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!(0,y.isValid)(i))return y.INVALID;const d=r.transform(i.value,o);if(d instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:d}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>(0,y.isValid)(i)?Promise.resolve(r.transform(i.value,o)).then(d=>({status:t.value,value:d})):y.INVALID);O.util.assertNever(r)}}f.ZodEffects=Je,f.ZodTransformer=Je,Je.create=(a,e,t)=>new Je({schema:a,typeName:ae.ZodEffects,effect:e,...re(t)}),Je.createWithPreprocess=(a,e,t)=>new Je({schema:e,effect:{type:"preprocess",transform:a},typeName:ae.ZodEffects,...re(t)});class ia extends oe{_parse(e){return this._getType(e)===O.ZodParsedType.undefined?(0,y.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}f.ZodOptional=ia,ia.create=(a,e)=>new ia({innerType:a,typeName:ae.ZodOptional,...re(e)});class ka extends oe{_parse(e){return this._getType(e)===O.ZodParsedType.null?(0,y.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}f.ZodNullable=ka,ka.create=(a,e)=>new ka({innerType:a,typeName:ae.ZodNullable,...re(e)});class Et extends oe{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===O.ZodParsedType.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}f.ZodDefault=Et,Et.create=(a,e)=>new Et({innerType:a,typeName:ae.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...re(e)});class xt extends oe{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return(0,y.isAsync)(r)?r.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new U.ZodError(n.common.issues)},input:n.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new U.ZodError(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}f.ZodCatch=xt,xt.create=(a,e)=>new xt({innerType:a,typeName:ae.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...re(e)});class vn extends oe{_parse(e){if(this._getType(e)!==O.ZodParsedType.nan){const n=this._getOrReturnCtx(e);return(0,y.addIssueToContext)(n,{code:U.ZodIssueCode.invalid_type,expected:O.ZodParsedType.nan,received:n.parsedType}),y.INVALID}return{status:"valid",value:e.data}}}f.ZodNaN=vn,vn.create=a=>new vn({typeName:ae.ZodNaN,...re(a)}),f.BRAND=Symbol("zod_brand");class cr extends oe{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}f.ZodBranded=cr;class Dt extends oe{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const o=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?y.INVALID:o.status==="dirty"?(t.dirty(),(0,y.DIRTY)(o.value)):this._def.out._parseAsync({data:o.value,path:n.path,parent:n})})();{const r=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return r.status==="aborted"?y.INVALID:r.status==="dirty"?(t.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:n.path,parent:n})}}static create(e,t){return new Dt({in:e,out:t,typeName:ae.ZodPipeline})}}f.ZodPipeline=Dt;class Lt extends oe{_parse(e){const t=this._def.innerType._parse(e),n=r=>((0,y.isValid)(r)&&(r.value=Object.freeze(r.value)),r);return(0,y.isAsync)(t)?t.then(r=>n(r)):n(t)}unwrap(){return this._def.innerType}}f.ZodReadonly=Lt,Lt.create=(a,e)=>new Lt({innerType:a,typeName:ae.ZodReadonly,...re(e)});function co(a,e){const t=typeof a=="function"?a(e):typeof a=="string"?{message:a}:a;return typeof t=="string"?{message:t}:t}function uo(a,e={},t){return a?Ha.create().superRefine((n,r)=>{const o=a(n);if(o instanceof Promise)return o.then(i=>{if(!i){const d=co(e,n),l=d.fatal??t??!0;r.addIssue({code:"custom",...d,fatal:l})}});if(!o){const i=co(e,n),d=i.fatal??t??!0;r.addIssue({code:"custom",...i,fatal:d})}}):Ha.create()}f.late={object:Te.lazycreate};var ae;(function(a){a.ZodString="ZodString",a.ZodNumber="ZodNumber",a.ZodNaN="ZodNaN",a.ZodBigInt="ZodBigInt",a.ZodBoolean="ZodBoolean",a.ZodDate="ZodDate",a.ZodSymbol="ZodSymbol",a.ZodUndefined="ZodUndefined",a.ZodNull="ZodNull",a.ZodAny="ZodAny",a.ZodUnknown="ZodUnknown",a.ZodNever="ZodNever",a.ZodVoid="ZodVoid",a.ZodArray="ZodArray",a.ZodObject="ZodObject",a.ZodUnion="ZodUnion",a.ZodDiscriminatedUnion="ZodDiscriminatedUnion",a.ZodIntersection="ZodIntersection",a.ZodTuple="ZodTuple",a.ZodRecord="ZodRecord",a.ZodMap="ZodMap",a.ZodSet="ZodSet",a.ZodFunction="ZodFunction",a.ZodLazy="ZodLazy",a.ZodLiteral="ZodLiteral",a.ZodEnum="ZodEnum",a.ZodEffects="ZodEffects",a.ZodNativeEnum="ZodNativeEnum",a.ZodOptional="ZodOptional",a.ZodNullable="ZodNullable",a.ZodDefault="ZodDefault",a.ZodCatch="ZodCatch",a.ZodPromise="ZodPromise",a.ZodBranded="ZodBranded",a.ZodPipeline="ZodPipeline",a.ZodReadonly="ZodReadonly"})(ae||(f.ZodFirstPartyTypeKind=ae={}));const El=(a,e={message:`Input not instance of ${a.name}`})=>uo(t=>t instanceof a,e);f.instanceof=El;const po=Re.create;f.string=po;const mo=Ca.create;f.number=mo;const xl=vn.create;f.nan=xl;const Dl=Sa.create;f.bigint=Dl;const go=Ct.create;f.boolean=go;const Ll=Fa.create;f.date=Ll;const Fl=hn.create;f.symbol=Fl;const Ml=St.create;f.undefined=Ml;const Ul=Nt.create;f.null=Ul;const Ol=Ha.create;f.any=Ol;const Bl=Ma.create;f.unknown=Bl;const zl=pa.create;f.never=zl;const Vl=bn.create;f.void=Vl;const jl=Ye.create;f.array=jl;const ql=Te.create;f.object=ql;const Zl=Te.strictCreate;f.strictObject=Zl;const Wl=kt.create;f.union=Wl;const Gl=fn.create;f.discriminatedUnion=Gl;const Kl=Tt.create;f.intersection=Kl;const $l=oa.create;f.tuple=$l;const Hl=wt.create;f.record=Hl;const Rl=yn.create;f.map=Rl;const Yl=Ua.create;f.set=Yl;const Jl=Ya.create;f.function=Jl;const Ql=It.create;f.lazy=Ql;const Xl=At.create;f.literal=Xl;const ec=Na.create;f.enum=ec;const ac=Pt.create;f.nativeEnum=ac;const tc=Ja.create;f.promise=tc;const ho=Je.create;f.effect=ho,f.transformer=ho;const nc=ia.create;f.optional=nc;const rc=ka.create;f.nullable=rc;const sc=Je.createWithPreprocess;f.preprocess=sc;const oc=Dt.create;f.pipeline=oc;const ic=()=>po().optional();f.ostring=ic;const dc=()=>mo().optional();f.onumber=dc;const lc=()=>go().optional();f.oboolean=lc,f.coerce={string:a=>Re.create({...a,coerce:!0}),number:a=>Ca.create({...a,coerce:!0}),boolean:a=>Ct.create({...a,coerce:!0}),bigint:a=>Sa.create({...a,coerce:!0}),date:a=>Fa.create({...a,coerce:!0})},f.NEVER=y.INVALID,function(a){var e=be&&be.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var d=Object.getOwnPropertyDescriptor(r,o);(!d||("get"in d?!r.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,d)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=be&&be.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(_a,a),t(ir,a),t(to,a),t(vt,a),t(f,a),t(ra,a)}(or),function(a){var e=be&&be.__createBinding||(Object.create?function(i,d,l,c){c===void 0&&(c=l);var u=Object.getOwnPropertyDescriptor(d,l);(!u||("get"in u?!d.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return d[l]}}),Object.defineProperty(i,c,u)}:function(i,d,l,c){c===void 0&&(c=l),i[c]=d[l]}),t=be&&be.__setModuleDefault||(Object.create?function(i,d){Object.defineProperty(i,"default",{enumerable:!0,value:d})}:function(i,d){i.default=d}),n=be&&be.__importStar||function(i){if(i&&i.__esModule)return i;var d={};if(i!=null)for(var l in i)l!=="default"&&Object.prototype.hasOwnProperty.call(i,l)&&e(d,i,l);return t(d,i),d},r=be&&be.__exportStar||function(i,d){for(var l in i)l!=="default"&&!Object.prototype.hasOwnProperty.call(d,l)&&e(d,i,l)};Object.defineProperty(a,"__esModule",{value:!0}),a.z=void 0;const o=n(or);a.z=o,r(or,a),a.default=o}(Qs),function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingConfigSchema=a.billingVersionConfigSchema=a.meterSchema=a.addOnSchema=a.planSchema=a.meteredPriceSchema=a.priceSchema=a.meterTypeSchema=a.aggregationSchema=a.unitAmountSchema=a.intervalSchema=a.featureSchema=a.UNKNOWN_STRIPE_ID=void 0;const e=Qs,t=sr;a.UNKNOWN_STRIPE_ID="__UNKNOWN_STRIPE_ID__",a.featureSchema=e.z.enum(t.BILLING_FEATURE_IDS),a.intervalSchema=e.z.enum(["month","year"]),a.unitAmountSchema=e.z.number().int().min(1),a.aggregationSchema=e.z.enum(["sum","count"]),a.meterTypeSchema=e.z.enum(["payAsYouGo","creditGrant"]),a.priceSchema=e.z.object({amount:e.z.number(),currency:e.z.enum(["usd"]),interval:a.intervalSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerPriceId:e.z.string()}),a.meteredPriceSchema=e.z.object({unitAmount:a.unitAmountSchema,currency:e.z.enum(["usd"]),interval:a.intervalSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerPriceId:e.z.string()}),a.planSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),tierIndex:e.z.number(),prices:e.z.record(a.intervalSchema,a.priceSchema),features:e.z.record(a.featureSchema,e.z.union([e.z.number(),e.z.boolean()])),metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerProductId:e.z.string()}),a.addOnSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),prices:e.z.record(e.z.string(),a.priceSchema),increments:e.z.record(a.featureSchema,e.z.number().positive()),prorationDisabled:e.z.boolean().optional(),metadata:e.z.record(e.z.string(),e.z.string()).optional(),autoRechargeable:e.z.boolean().optional(),hidden:e.z.boolean().optional(),providerProductId:e.z.string()}),a.meterSchema=e.z.object({id:e.z.string(),name:e.z.string(),description:e.z.string(),defaultAggregation:e.z.object({formula:a.aggregationSchema}).optional(),customerMapping:e.z.object({eventPayloadKey:e.z.literal("stripe_customer_id"),type:e.z.literal("by_id")}).optional(),valueSettings:e.z.object({eventPayloadKey:e.z.literal("value")}).optional(),prices:e.z.record(a.intervalSchema,a.meteredPriceSchema),meterType:a.meterTypeSchema,metadata:e.z.record(e.z.string(),e.z.string()).optional(),providerProductId:e.z.string(),providerMeterId:e.z.string()}),a.billingVersionConfigSchema=e.z.object({version:e.z.string(),name:e.z.string(),description:e.z.string(),plans:e.z.record(e.z.string(),a.planSchema),addons:e.z.record(e.z.string(),a.addOnSchema),meters:e.z.record(e.z.string(),a.meterSchema),isActive:e.z.boolean(),createdAt:e.z.string()}),a.billingConfigSchema=e.z.record(e.z.string(),a.billingVersionConfigSchema)}(yt),Object.defineProperty(ft,"__esModule",{value:!0}),ft.plans=void 0;const we=un,Ge=yt,bo={table_rows:0,bot_count:we.SMALL_UNLIMITED,collaborator_count:we.SMALL_UNLIMITED,file_storage:0,vector_db_storage:0,saved_versions:0,indexed_file_count:0,incoming_messages_events:0,ai_spend:0,conversation_sessions:0};ft.plans={community:{id:"community",name:"Plan - Free",description:"Free plan for trying things out",tierIndex:0,prices:{month:{amount:we.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ge.UNKNOWN_STRIPE_ID}},features:{table_rows:1e3,bot_count:3,collaborator_count:3,file_storage:100*we.MB,vector_db_storage:100*we.MB,saved_versions:3,indexed_file_count:1e3,incoming_messages_events:100*we.MESSAGES_PER_CONVERSATION,ai_spend:100*we.AI_SPEND_PER_CONVERSATION,conversation_sessions:100},providerProductId:Ge.UNKNOWN_STRIPE_ID},plus:{id:"plus",name:"Plan - Plus",description:"For growing businesses",tierIndex:1,prices:{month:{amount:189,currency:"usd",interval:"month",providerPriceId:Ge.UNKNOWN_STRIPE_ID},year:{amount:150*we.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:Ge.UNKNOWN_STRIPE_ID}},features:{table_rows:1e5,bot_count:we.SMALL_UNLIMITED,collaborator_count:3,file_storage:10*we.GB,vector_db_storage:1*we.GB,saved_versions:50,indexed_file_count:2e3,incoming_messages_events:250*we.MESSAGES_PER_CONVERSATION,ai_spend:250*we.AI_SPEND_PER_CONVERSATION,conversation_sessions:250},providerProductId:Ge.UNKNOWN_STRIPE_ID},team:{id:"team",name:"Plan - Team",description:"For small teams",tierIndex:2,prices:{month:{amount:939,currency:"usd",interval:"month",providerPriceId:Ge.UNKNOWN_STRIPE_ID},year:{amount:750*we.YEAR_MONTHS,currency:"usd",interval:"year",providerPriceId:Ge.UNKNOWN_STRIPE_ID}},features:{table_rows:5e5,bot_count:we.SMALL_UNLIMITED,collaborator_count:we.SMALL_UNLIMITED,file_storage:50*we.GB,vector_db_storage:5*we.GB,saved_versions:100,indexed_file_count:we.BIG_UNLIMITED,incoming_messages_events:1500*we.MESSAGES_PER_CONVERSATION,ai_spend:1500*we.AI_SPEND_PER_CONVERSATION,conversation_sessions:1500},providerProductId:Ge.UNKNOWN_STRIPE_ID},enterprise:{id:"enterprise",name:"Plan - Enterprise",description:"Enterprise license subscription",tierIndex:3,prices:{month:{amount:we.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ge.UNKNOWN_STRIPE_ID}},features:bo,providerProductId:Ge.UNKNOWN_STRIPE_ID},managed:{id:"managed",name:"Plan - Managed",description:"Managed license subscription",tierIndex:4,prices:{month:{amount:we.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Ge.UNKNOWN_STRIPE_ID}},features:bo,providerProductId:Ge.UNKNOWN_STRIPE_ID}};var Ft={};Object.defineProperty(Ft,"__esModule",{value:!0}),Ft.addons=void 0;const Qa=un,Xa=yt,fo=(a,e=["community","plus","team","enterprise","managed"])=>e.map(t=>({[t]:{amount:a,currency:"usd",interval:"month",providerPriceId:Xa.UNKNOWN_STRIPE_ID}})).reduce((t,n)=>({...t,...n}),{});Ft.addons={conversation_sessions_addon:{id:"conversation_sessions_addon",name:"Add-on - Conversation Sessions",description:"Adds conversations sessions for the month",prices:{plus:{amount:65,currency:"usd",interval:"month",providerPriceId:Xa.UNKNOWN_STRIPE_ID},team:{amount:50,currency:"usd",interval:"month",providerPriceId:Xa.UNKNOWN_STRIPE_ID},enterprise:{amount:Qa.FREE_PRICE,currency:"usd",interval:"month",providerPriceId:Xa.UNKNOWN_STRIPE_ID}},increments:{conversation_sessions:100,ai_spend:100*Qa.AI_SPEND_PER_CONVERSATION,incoming_messages_events:100*Qa.MESSAGES_PER_CONVERSATION},providerProductId:Xa.UNKNOWN_STRIPE_ID,autoRechargeable:!0,prorationDisabled:!0},storage_addon:{id:"storage_addon",name:"Add-on - Storage",description:"Adds table rows, vector db space and files",prices:{...fo(40,["plus","team"]),...fo(Qa.FREE_PRICE,["enterprise","managed"])},increments:{table_rows:1e5,vector_db_storage:1*Qa.GB,file_storage:10*Qa.GB},providerProductId:Xa.UNKNOWN_STRIPE_ID}};var Mt={};Object.defineProperty(Mt,"__esModule",{value:!0}),Mt.meters=void 0;const et=yt;Mt.meters={ai_spend_credit_grant:{id:"ai_spend_credit_grant",name:"AI Spend - Credit grant",description:"Pre-purchased credits applied toward AI usage",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:et.UNKNOWN_STRIPE_ID}},meterType:"creditGrant",providerMeterId:et.UNKNOWN_STRIPE_ID,providerProductId:et.UNKNOWN_STRIPE_ID},ai_spend_pay_as_you_go:{id:"ai_spend_pay_as_you_go",name:"AI Spend - Pay as you go",description:"Usage-based charges for AI spend, billed monthly",defaultAggregation:{formula:"sum"},customerMapping:{eventPayloadKey:"stripe_customer_id",type:"by_id"},valueSettings:{eventPayloadKey:"value"},prices:{month:{unitAmount:1,currency:"usd",interval:"month",providerPriceId:et.UNKNOWN_STRIPE_ID}},meterType:"payAsYouGo",providerMeterId:et.UNKNOWN_STRIPE_ID,providerProductId:et.UNKNOWN_STRIPE_ID}};var yo={};(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.billingDefinitions=a.billingConfig=void 0;const e=ft,t=Ft,n=Mt;a.billingConfig={v4:{version:"v4",name:"Billing Version 4",description:"New billing system with credit grants and entitlements",plans:e.plans,addons:t.addons,meters:n.meters,isActive:!0,createdAt:new Date().toISOString()}},a.billingDefinitions=a.billingConfig})(yo),function(a){var e=be&&be.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var d=Object.getOwnPropertyDescriptor(r,o);(!d||("get"in d?!r.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,d)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=be&&be.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(ft,a),t(Ft,a),t(Mt,a),t(yt,a),t(yo,a)}(Js),function(a){var e=be&&be.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var d=Object.getOwnPropertyDescriptor(r,o);(!d||("get"in d?!r.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,d)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=be&&be.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(sr,a),t(Js,a),t(un,a)}(Ys),function(a){var e=be&&be.__createBinding||(Object.create?function(n,r,o,i){i===void 0&&(i=o);var d=Object.getOwnPropertyDescriptor(r,o);(!d||("get"in d?!r.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(n,i,d)}:function(n,r,o,i){i===void 0&&(i=o),n[i]=r[o]}),t=be&&be.__exportStar||function(n,r){for(var o in n)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&e(r,n,o)};Object.defineProperty(a,"__esModule",{value:!0}),t(on,a),t(dn,a),t($a,a),t(Rs,a),t(ln,a),t(We,a),t(cn,a),t(Ys,a)}(rr);const cc={too_expensive:"cancelSurveyReasonTooExpensive",not_using_enough:"cancelSurveyReasonNotUsingEnough",missing_feature:"cancelSurveyReasonMissingFeature",switched_tool:"cancelSurveyReasonSwitchedTool",technical_issues:"cancelSurveyReasonTechnicalIssues",support_expectations:"cancelSurveyReasonSupportExpectations",temporary_need:"cancelSurveyReasonTemporaryNeed"},vo=({open:a,onOpenChange:e,planId:t,onConfirm:n,loading:r=!1,planFeatures:o={}})=>{var x,me;const{t:i}=se(),{locale:d,analytics:l}=Y(),{data:c}=Be(),{data:u}=Xe(),{data:p}=Fe({enabled:a}),[m,g]=I.useState("confirm"),[_,b]=I.useState(null),[h,k]=I.useState(""),C=I.useId(),w=p==null?void 0:p.plan.current,v=c==null?void 0:c.find(B=>B.id===(w==null?void 0:w.planId)),P=(w==null?void 0:w.interval)??"month",N=v?ve(v):"community",A=v?ye(v.name):"",S=(u??[]).flatMap(B=>{var J;const F=((J=p==null?void 0:p.addons[B.id])==null?void 0:J.current.quantity)??0;return F>0?[{addon:B,quantity:F}]:[]}),M=((x=v==null?void 0:v.prices[P])==null?void 0:x.currency)??"usd",E=(((me=v==null?void 0:v.prices[P])==null?void 0:me.amount)??0)+S.reduce((B,{addon:F,quantity:J})=>{var Z;return B+J*(v&&((Z=pt(F,v,P))==null?void 0:Z.amount)||0)},0),L=v==null?void 0:v.features.conversation_sessions,V=v==null?void 0:v.features.ai_spend,z=[...L!==void 0?[`${fe(L)} ${i("conversationsPerMonth")}`]:[],...(o[N]??gt[N]).map(B=>{if(B==="AI usage included"&&V!==void 0)return i("planFeatureAiUsageIncluded",{amount:ne(V/Ze,M,0)});const F=mt[B];return F!==void 0?i(F.label):B})],Q=w==null?void 0:w.periodEnd,j=c==null?void 0:c.find(B=>B.id===t),R={plan_name:j?ye(j.name):void 0,current_plan_name:v?ye(v.name):void 0},q=()=>{l.capture(Se.DOWNGRADE_SURVEY_VIEWED,R),g("feedback")},G=()=>{if(!_||!w)return;const B=h.trim();l.capture(Se.DOWNGRADE_SURVEY_SUBMITTED,{reason:_,has_comment:B.length>0,comment_length:B.length}),n({reason:_,comment:B||void 0,previousPlanId:w.planId,planId:t})},X=()=>e(!1);return s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":i(m==="confirm"?"cancelSurveyConfirmTitle":"cancelSurveyFeedbackTitle"),className:"bpb-scope",children:m==="confirm"?s.jsxs("div",{className:"bpb-cancel-survey",children:[s.jsxs("header",{className:"bpb-cancel-survey__head",children:[s.jsx("h2",{className:"bpb-cancel-survey__title",children:i("cancelSurveyConfirmTitle")}),s.jsx("p",{className:"bpb-cancel-survey__lede",children:Q?s.jsx(ot,{i18nKey:"cancelSurveyConfirmLede",values:{plan:A,date:Ue(Q,d)},components:{bold:s.jsx("strong",{})}}):i("cancelSurveyConfirmLedeNoDate",{plan:A})})]}),s.jsxs("div",{className:$("bpb-cancel-survey__plan",`bpb-cancel-survey__plan--${N}`),children:[s.jsxs("div",{children:[s.jsx("span",{className:"bpb-cancel-survey__eyebrow",children:i("cancelSurveyCurrentPlan")}),s.jsx("span",{className:"bpb-cancel-survey__plan-name",children:A})]}),s.jsxs("span",{className:"bpb-cancel-survey__plan-price",children:[ne(E,M,0),P==="year"?"/yr":"/mo"]})]}),s.jsx("ul",{className:"bpb-cancel-survey__losses",children:z.map(B=>s.jsxs("li",{children:[s.jsx(ht,{size:16,className:"bpb-cancel-survey__loss-icon","aria-hidden":!0}),s.jsx("span",{children:B})]},B))}),S.length>0&&s.jsxs("div",{className:"bpb-cancel-survey__addons",children:[s.jsx("span",{className:"bpb-cancel-survey__eyebrow bpb-cancel-survey__eyebrow--muted",children:i("cancelSurveyCurrentAddons")}),S.map(({addon:B,quantity:F})=>{var ee;const J=He[B.id],Z=(((ee=B.increments)==null?void 0:ee.conversation_sessions)??0)*F;return s.jsxs("p",{className:"bpb-cancel-survey__addon",children:[s.jsx("strong",{children:i("cancelSurveyAddonPack",{name:J?i(J):xa(B.name),quantity:F})}),Z>0&&s.jsxs("span",{children:[" · ",i("cancelSurveyAddonConversations",{amount:fe(Z)})]})]},B.id)})]}),s.jsxs("footer",{className:"bpb-cancel-survey__footer",children:[s.jsx(pe,{variant:"outline",size:"lg",onClick:X,children:i("cancelSurveyKeep")}),s.jsx(pe,{variant:"primary",size:"lg",onClick:q,children:i("cancelSurveyContinue")})]})]}):s.jsxs("div",{className:"bpb-cancel-survey",children:[s.jsxs("header",{className:"bpb-cancel-survey__head",children:[s.jsx("h2",{className:"bpb-cancel-survey__title",children:i("cancelSurveyFeedbackTitle")}),s.jsx("p",{className:"bpb-cancel-survey__lede",children:i("cancelSurveyFeedbackLede")})]}),s.jsx("div",{className:"bpb-cancel-survey__reasons",role:"radiogroup",children:rr.CANCELLATION_REASONS.map(B=>s.jsxs("label",{className:"bpb-cancel-survey__reason",children:[s.jsx("input",{type:"radio",name:"bpb-cancel-reason",value:B,checked:_===B,onChange:()=>b(B)}),s.jsx("span",{children:i(cc[B])})]},B))}),s.jsxs("label",{htmlFor:C,className:"bpb-cancel-survey__comment-label",children:[i("cancelSurveyCommentLabel")," ",s.jsx("span",{children:i("cancelSurveyOptional")})]}),s.jsx("textarea",{id:C,className:"bpb-cancel-survey__comment",rows:3,placeholder:i("cancelSurveyCommentPlaceholder"),value:h,onChange:B=>k(B.target.value)}),s.jsxs("footer",{className:"bpb-cancel-survey__footer",children:[s.jsx(pe,{variant:"outline",size:"lg",onClick:X,children:i("cancelSurveyKeep")}),s.jsx(pe,{variant:"primary",size:"lg",disabled:!_,loading:r,onClick:G,children:i("cancelSurveyConfirm")})]})]})})},ga=()=>{const{manageBillingUrl:a}=Y(),{t:e}=se();return s.jsxs("div",{className:"bpb-outdated",children:[s.jsx("h3",{className:"bpb-outdated__title",children:e("outdatedTitle")}),s.jsx("p",{className:"bpb-outdated__text",children:e("outdatedText")}),a&&s.jsxs(pe,{variant:"primary",onClick:()=>window.open(a,"_blank","noopener"),children:[e("outdatedCta"),s.jsx(bt,{size:15})]})]})},_o=({options:a,value:e,onChange:t,className:n,...r})=>s.jsx("div",{role:"radiogroup","aria-label":r["aria-label"],className:$("bpb-segmented",n),children:a.map(o=>{const i=o.value===e;return s.jsxs("button",{type:"button",role:"radio","aria-checked":i,className:$("bpb-segmented__option",i&&"bpb-segmented__option--selected"),onClick:()=>t(o.value),children:[o.label,o.badge&&s.jsx("span",{className:"bpb-segmented__badge",children:o.badge})]},o.value)})}),ue=({width:a,height:e=14,rounded:t=!1,className:n})=>s.jsx("span",{"aria-hidden":!0,className:$("bpb-skeleton",t&&"bpb-skeleton--rounded",n),style:{width:a??"100%",height:e}}),uc="(max-width: 560px)",pc=()=>{};function mc(a){const e=I.useCallback(r=>{if(typeof window>"u")return pc;const o=window.matchMedia(a);return o.addEventListener("change",r),()=>o.removeEventListener("change",r)},[a]),t=I.useCallback(()=>typeof window<"u"&&window.matchMedia(a).matches,[a]),n=I.useCallback(()=>!1,[]);return I.useSyncExternalStore(e,t,n)}function gc(){return mc(uc)}const Ut=({label:a,children:e})=>s.jsxs("span",{className:"bpb-tooltip",tabIndex:0,role:"note",children:[s.jsx("span",{className:"bpb-tooltip__term",children:a}),s.jsx("span",{className:"bpb-tooltip__bubble",role:"tooltip",children:e})]}),ur=3,hc=({label:a,description:e,Icon:t})=>{const[n,r]=I.useState(!1),o=I.useId();return s.jsxs("li",{className:"bpb-plan-card__feature--expandable",children:[s.jsxs("button",{type:"button",className:"bpb-plan-card__feature-trigger","aria-expanded":n,"aria-controls":o,onClick:()=>r(i=>!i),children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(t,{size:13})}),s.jsx("span",{className:"bpb-plan-card__feature-label",children:a}),s.jsx("span",{className:$("bpb-plan-card__feature-caret",n&&"is-open"),"aria-hidden":!0,children:s.jsx(Da,{size:14})})]}),n&&s.jsx("p",{id:o,className:"bpb-plan-card__feature-desc",children:e})]})},bc=({features:a,previousPlanName:e,overrides:t,isMobile:n})=>{const{t:r}=se(),[o,i]=I.useState(!1),l=n&&!o&&a.length>ur?a.slice(0,ur):a;return s.jsxs(s.Fragment,{children:[s.jsxs("ul",{className:$("bpb-plan-card__features",n&&"bpb-plan-card__features--mobile"),children:[e&&s.jsxs("li",{className:"bpb-plan-card__features-lead",children:[s.jsx("span",{className:"bpb-plan-card__feature-chip bpb-plan-card__feature-chip--lead",children:s.jsx(Os,{size:13})}),s.jsx("span",{children:r("upgradeEverythingIn",{planName:e})})]}),l.map(c=>{const u=sn(c),p=mt[c],m=t==null?void 0:t[c],g=(m==null?void 0:m.label)??(p!==void 0?r(p.label):c),_=(m==null?void 0:m.description)??(p!==void 0?r(p.desc):void 0);return n?_?s.jsx(hc,{label:g,description:_,Icon:u},c):s.jsxs("li",{children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(u,{size:13})}),s.jsx("span",{className:"bpb-plan-card__feature-label",children:g})]},c):s.jsxs("li",{children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(u,{size:13})}),_?s.jsx(Ut,{label:g,children:_}):s.jsx("span",{children:g})]},c)})]}),n&&a.length>ur&&s.jsxs("button",{type:"button",className:"bpb-plan-card__features-toggle",onClick:()=>i(c=>!c),children:[o?r("upgradeShowFewerFeatures"):r("upgradeSeeAllFeatures",{total:a.length}),s.jsx("span",{className:$("bpb-plan-card__feature-caret",o&&"is-open"),"aria-hidden":!0,children:s.jsx(Da,{size:14})})]})]})};function fc(a,e){const t=a.prices[e];return t||((e==="month"?a.prices.year:a.prices.month)??null)}function yc(a,e){var r,o;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const n=((o=a.prices.year)==null?void 0:o.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}function vc(a){var t,n;let e=0;for(const r of a){const o=(t=r.prices.month)==null?void 0:t.amount,i=(n=r.prices.year)==null?void 0:n.amount;o&&i&&o>0&&(e=Math.max(e,1-i/(o*12)))}return Math.round(e*100)}const Co=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",defaultInterval:r="month",excludePlanIds:o=[],planFeatures:i={},featureDescriptions:d})=>{var le,Ie,xe;const{isOutdatedBilling:l,toast:c,analytics:u}=Y(),{t:p}=se(),{data:m}=Le(),[g,_]=I.useState(r),{data:b,isLoading:h}=Be(),{data:k}=Xe(),{data:C}=Fe({enabled:a}),{data:w}=Dn({enabled:a}),v=Un(),P=Fr(),N=(w==null?void 0:w.planReadonly)??!1,[A,S]=I.useState(null);I.useEffect(()=>{a&&u.capture(Se.PLAN_PICKER_VIEWED,{interval:g})},[a,u]);const M=D=>{D!==g&&u.capture(Se.PLAN_INTERVAL_TOGGLED,{interval:D}),_(D)},E=C==null?void 0:C.plan.current.interval,L=b==null?void 0:b.find(D=>D.id===(C==null?void 0:C.plan.current.planId)),V=C?L?ve(L):"community":void 0,z=((le=C==null?void 0:C.plan.next)==null?void 0:le.planId)??null,Q=!!z&&z!==(C==null?void 0:C.plan.current.planId),j=N||V==="enterprise"||V==="managed",R=I.useMemo(()=>b?b.filter(D=>ve(D)!=="managed"&&ve(D)!=="enterprise"&&!o.includes(D.id)).sort((D,ce)=>Ia.indexOf(ve(D))-Ia.indexOf(ve(ce))):[],[b,o]),q=I.useMemo(()=>vc(R),[R]),G=gc(),X=I.useMemo(()=>{var ie;if(R.length===0)return null;const D=R.find(Ce=>ve(Ce)===n||Ce.id===n),ce=R.find(Ce=>ve(Ce)===V);return((ie=D??ce??R[0])==null?void 0:ie.id)??null},[R,n,V]),[x,me]=I.useState(void 0),[B,F]=I.useState(a);B!==a&&(F(a),me(void 0));const J=x===void 0?X:x,Z=((xe=(Ie=b==null?void 0:b.find(D=>ve(D)==="enterprise"))==null?void 0:Ie.metadata)==null?void 0:xe.contact_url)??On,ee=(D,ce)=>{v.mutate({planId:D.id,interval:g},{onSuccess:()=>{u.capture(Se.PLAN_DOWNGRADED,{plan_name:ye(D.name),interval:g,previous_plan_name:L?ye(L.name):void 0,reason:ce==null?void 0:ce.reason,survey_submitted:!!ce}),ce&&P.mutate(ce),S(null),c({type:"success",message:p("upgradeDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeDowngradeError")})})},Ne=D=>{if(ve(D)!=="community"){ee(D);return}u.capture(Se.DOWNGRADE_CONFIRM_VIEWED,{plan_name:ye(D.name),current_plan_name:L?ye(L.name):void 0,interval:g,is_cancellation:!0}),S(D)},ke=()=>{C&&v.mutate({planId:C.plan.current.planId,interval:C.plan.current.interval},{onSuccess:()=>{u.capture(Se.PLAN_DOWNGRADE_CANCELLED,{plan_name:L?ye(L.name):C.plan.current.planId}),c({type:"success",message:p("upgradeCancelDowngradeSuccess")})},onError:()=>c({type:"error",message:p("upgradeCancelDowngradeError")})})};return m===!1?null:l?s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:s.jsx(ga,{})}):s.jsxs(Ee,{open:a,onOpenChange:D=>!A&&e(D),size:"xl","aria-label":p("upgradeDialogTitle"),className:"bpb-scope",children:[s.jsxs("div",{className:"bpb-upgrade",children:[s.jsx("h2",{className:"bpb-upgrade__title",children:p("upgradeDialogTitle")}),s.jsx("div",{className:"bpb-upgrade__toggle",children:s.jsx(_o,{"aria-label":p("dashboardBillingPeriod"),value:g,onChange:M,options:[{value:"month",label:p("upgradeMonthly")},{value:"year",label:p("upgradeAnnual"),badge:q>0?p("upgradeSaveBadge",{savings:q}):void 0}]})}),s.jsxs("div",{className:"bpb-upgrade__grid",children:[h&&[0,1,2].map(D=>s.jsxs("div",{className:"bpb-plan-card","aria-hidden":!0,children:[s.jsx(ue,{width:120,height:22}),s.jsx(ue,{width:90,height:40}),s.jsx(ue,{width:"100%",height:36,rounded:!0}),s.jsx(ue,{width:"100%",height:140})]},D)),R.map((D,ce)=>{var In,An;const ie=ve(D),Ce=fc(D,g),Oe=yc(D,g),ha=(((In=D.prices.month)==null?void 0:In.amount)??0)<=0,Qe=ie===V,tt=Qe&&(V==="community"||g===E),Sr=ie===V&&V!=="community"&&g!==E,nt=!!z&&D.id===z&&!tt,Nr=V!==void 0&&Ia.indexOf(ie)<Ia.indexOf(V),rt=(ie===n||D.id===n)&&!tt,da=Qe&&Q?"cancel_downgrade":tt?"current":Sr?"switch_interval":nt?"next":Nr?"downgrade":"upgrade",kn=ce>0?R[ce-1]:void 0,kr=i[ie]??gt[ie],Oa=D.features.conversation_sessions,Ae=en(k,D,g),Ba=D.features.ai_spend,zt=Ba!==void 0?p("planFeatureAiUsageIncluded",{amount:ne(Ba/Ze,(Ce==null?void 0:Ce.currency)??"usd",1)}):void 0,Tn=Ba!==void 0&&Oa?p("planFeatureDescAiUsageIncluded",{rate:ne(Ba/Oa/Ze,(Ce==null?void 0:Ce.currency)??"usd",2)}):void 0,wn={...Object.fromEntries(Object.entries(d??{}).map(([Tr,Go])=>[Tr,{description:Go}])),...zt!==void 0?{"AI usage included":{label:zt,description:(d==null?void 0:d["AI usage included"])??Tn}}:{}},Ve=v.isPending&&(da==="downgrade"&&((An=v.variables)==null?void 0:An.planId)===D.id||da==="cancel_downgrade"),Ke=ye(D.name),Ta=!G||J===D.id,za=Oe!==null&&Ce?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"bpb-plan-card__currency",children:ut(Ce.currency)}),s.jsx("span",{className:"bpb-plan-card__amount",children:Math.round(Oe)}),s.jsx("span",{className:"bpb-plan-card__per",children:p("upgradePerMonthSuffix",{currency:Ce.currency.toUpperCase()})})]}):s.jsx("span",{className:"bpb-plan-card__amount",children:ne(0,"usd",0)});return s.jsxs("div",{className:$("bpb-plan-card",rt&&"bpb-plan-card--highlighted bpb-glow",G&&"bpb-plan-card--accordion",G&&Ta&&"is-expanded"),"data-plan-id":D.id,children:[G?s.jsxs("button",{type:"button",className:"bpb-plan-card__summary","aria-expanded":Ta,onClick:()=>me(Ta?null:D.id),children:[s.jsxs("span",{className:"bpb-plan-card__summary-text",children:[s.jsxs("span",{className:"bpb-plan-card__name",children:[Ke,rt&&s.jsx(Ga,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),s.jsx("span",{className:"bpb-plan-card__price",children:za})]}),s.jsx("span",{className:$("bpb-plan-card__feature-caret",Ta&&"is-open"),"aria-hidden":!0,children:s.jsx(Da,{size:16})})]}):s.jsxs("div",{className:"bpb-plan-card__header",children:[s.jsxs("h3",{className:"bpb-plan-card__name",children:[Ke,rt&&s.jsx(Ga,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),s.jsx("p",{className:"bpb-plan-card__tagline",children:p(Us[ve(D)])}),s.jsx("div",{className:"bpb-plan-card__price",children:za})]}),Ta&&s.jsxs(s.Fragment,{children:[G&&s.jsx("p",{className:"bpb-plan-card__tagline",children:p(Us[ve(D)])}),Oa!==void 0&&s.jsxs("div",{className:"bpb-plan-card__allowance",children:[s.jsxs("div",{className:"bpb-plan-card__metric",children:[s.jsx("span",{className:"bpb-plan-card__metric-value",children:fe(Oa)}),s.jsx("span",{className:"bpb-plan-card__metric-unit",children:p(ha?"conversationsUnit":"conversationsPerMonth")})]}),Ae?s.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeThenPer",{price:ne(Ae.amount,Ae.currency,0),packSize:fe(Ae.packSize)})}):s.jsx("p",{className:"bpb-plan-card__pack",children:p("upgradeNoTopup")})]}),da==="current"&&s.jsx(pe,{variant:"outline",block:!0,disabled:!0,children:p("upgradeCurrentPlan")}),da==="next"&&s.jsx(pe,{variant:"outline",block:!0,disabled:!0,children:p("upgradeNextPlan")}),da==="cancel_downgrade"&&s.jsx(pe,{variant:"primary",block:!0,loading:Ve,onClick:ke,children:p("upgradeCancelDowngrade")}),da==="downgrade"&&s.jsx(pe,{variant:"outline",block:!0,disabled:j||v.isPending,loading:Ve,onClick:()=>Ne(D),children:p("upgradeDowngrade")}),da==="switch_interval"&&s.jsx(pe,{variant:"primary",block:!0,disabled:j||v.isPending,title:j?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(Se.PLAN_UPGRADE_INITIATED,{plan_name:ye(D.name),interval:g,current_plan_name:L?ye(L.name):void 0}),t(D.id,g)},children:p(g==="year"?"upgradeSwitchToAnnual":"upgradeSwitchToMonthly")}),da==="upgrade"&&s.jsx(pe,{variant:rt?"accent":"primary",block:!0,disabled:j||v.isPending,title:j?p("upgradePlanManaged"):void 0,onClick:()=>{u.capture(Se.PLAN_UPGRADE_INITIATED,{plan_name:ye(D.name),interval:g,current_plan_name:L?ye(L.name):void 0}),t(D.id,g)},children:p("upgradeUpgrade")}),s.jsx(bc,{features:kr,previousPlanName:kn?ye(kn.name):void 0,overrides:wn,isMobile:G})]})]},D.id)})]}),s.jsxs("p",{className:"bpb-upgrade__footer",children:[p("upgradeFooterEnterprise")," ",s.jsx("a",{href:Z,target:"_blank",rel:"noopener noreferrer",children:p("upgradeContactUs")})," ",p("upgradeFooterAboutEnterprise")," ",s.jsx("a",{href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:"botpress.com/pricing"}),"."]})]}),A&&s.jsx(vo,{open:a,onOpenChange:D=>!D&&!v.isPending&&S(null),planId:A.id,onConfirm:D=>ee(A,D),loading:v.isPending,planFeatures:i})]})},pr='-apple-system, "ui-sans-serif", "system-ui", "Segoe UI", Helvetica, Arial, sans-serif',mr="14px",So="10px";function gr(a){return a?{theme:"night",variables:{fontFamily:pr,fontSizeBase:mr,borderRadius:So,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:pr,fontSizeBase:mr,borderRadius:So,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 hr(a){return{base:{fontFamily:pr,fontSize:mr,color:a?"#f9f9f9":"#0d0d0d","::placeholder":{color:a?"#9b9b9b":"#8f8f8f"}},invalid:{color:a?"#ff8583":"#e02e2a"}}}const _c={pt:"pt-BR",es:"es-419"};function br(a){const e=a.split("-")[0]??a;return _c[e]??a}const fr=({onClose:a,onSuccess:e})=>{var A;const{toast:t,locale:n}=Y(),{t:r}=se(),{data:o,isLoading:i}=Fe(),{data:d,isLoading:l}=Be(),{data:c,isLoading:u}=Xe(),{data:p,isLoading:m}=Jo((A=o==null?void 0:o.pendingUpgrade)==null?void 0:A.invoiceId),g=Mr(),_=Ur(),[b,h]=I.useState(null),k=o==null?void 0:o.pendingUpgrade;if(i||l||u||m)return s.jsxs("div",{className:"bpb-pending-upgrade","aria-busy":"true",children:[s.jsx(ue,{height:20,width:160}),s.jsx(ue,{height:56}),s.jsx(ue,{height:40})]});if(!k)return null;const C=d==null?void 0:d.find(S=>S.id===(o==null?void 0:o.plan.current.planId)),w=k.planId?d==null?void 0:d.find(S=>S.id===k.planId):void 0,v=Object.entries(k.addons).flatMap(([S,M])=>{var V;const E=c==null?void 0:c.find(z=>z.id===S);if(!E||M<=0)return[];const L=((V=o==null?void 0:o.addons[S])==null?void 0:V.current.quantity)??0;return[{addon:E,currentQuantity:L,nextQuantity:M}]}),P=()=>{h(null),g.mutate({invoiceId:k.invoiceId},{onSuccess:()=>{t({type:"success",message:r("pendingUpgradePaySuccess")}),e==null||e(),a==null||a()},onError:S=>{h(S instanceof Error&&S.message?S.message:r("pendingUpgradePayError")),t({type:"error",message:r("pendingUpgradePayError")})}})},N=()=>{_.mutate(void 0,{onSuccess:()=>{t({type:"success",message:r("pendingUpgradeCancelSuccess")}),a==null||a()},onError:()=>t({type:"error",message:r("pendingUpgradeCancelError")})})};return s.jsxs("div",{className:"bpb-pending-upgrade",children:[s.jsx("h2",{className:"bpb-pending-upgrade__title",children:r("pendingUpgradeTitle")}),s.jsx("div",{className:"bpb-pending-upgrade__alert",children:s.jsxs("div",{children:[s.jsx("p",{className:"bpb-pending-upgrade__alert-title",children:r("pendingUpgradeFailedLabel")}),s.jsx("p",{className:"bpb-pending-upgrade__alert-body",children:r("pendingUpgradeSubtitle")})]})}),s.jsx("p",{className:"bpb-pending-upgrade__list-title",children:r("pendingUpgradeItemsLabel")}),s.jsxs("div",{className:"bpb-pending-upgrade__list",children:[w&&s.jsx("div",{className:"bpb-pending-upgrade__row",children:s.jsx("span",{children:r("pendingUpgradePlanChange",{currentPlan:C?ye(C.name):r("planBannerNoPlan"),nextPlan:ye(w.name)})})}),v.map(({addon:S,currentQuantity:M,nextQuantity:E})=>s.jsx("div",{className:"bpb-pending-upgrade__row",children:s.jsx("span",{children:r("pendingUpgradeAddonChange",{currentQuantity:M,nextQuantity:E,name:He[S.id]?r(He[S.id]):xa(S.name)})})},S.id))]}),p?s.jsxs("div",{className:"bpb-pending-upgrade__total",children:[s.jsx("span",{children:r("pendingUpgradeAmountDue")}),s.jsx("span",{children:ne(p.amount,p.currency)})]}):s.jsx("p",{className:"bpb-pending-upgrade__error",children:r("pendingUpgradeAmountUnavailable")}),b&&s.jsx("p",{className:"bpb-pending-upgrade__error",children:b}),k.expiresAt&&s.jsx("p",{className:"bpb-pending-upgrade__expires",children:r("pendingUpgradeExpiresOn",{date:Ps(k.expiresAt,n)})}),s.jsxs("div",{className:"bpb-pending-upgrade__actions",children:[s.jsx(pe,{variant:"outline",onClick:N,loading:_.isPending,disabled:g.isPending,children:r("pendingUpgradeCancelCta")}),s.jsx(pe,{variant:"primary",onClick:P,loading:g.isPending,disabled:_.isPending||!p,children:r("pendingUpgradePayCta")})]})]})},Cc={address:"address",name:"address",taxId:"taxId",payment:"payment"};function No(a,e){var r;const t=(r=a==null?void 0:a.metadata)==null?void 0:r.errors;if(!(t!=null&&t.length))return{general:(a==null?void 0:a.message)||e};const n={};for(const o of t)o.message&&(n[Cc[o.scope??""]??"general"]=o.message);return Object.keys(n).length>0?n:{general:(a==null?void 0:a.message)||e}}function yr(a){const e=new Date(a);if(Number.isNaN(e.getTime()))return!1;const t=new Date;return t.setFullYear(t.getFullYear()+2),e>t}function ko(a){const e=new Date(a);return new Date(e.getUTCFullYear(),e.getUTCMonth()+1,0).toISOString()}function Sc(a=new Date){return new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth()+1,1)).toISOString()}const Nc=4,kc=({plan:a,interval:e,preview:t,isLoadingPreview:n,isPreviewError:r,canSubscribe:o,isSubmitting:i,submitError:d,onSubscribe:l})=>{var q,G,X,x,me;const{locale:c}=Y(),{t:u}=se(),{data:p}=Xe(),m=((q=a==null?void 0:a.prices.month)==null?void 0:q.currency)??((G=a==null?void 0:a.prices.year)==null?void 0:G.currency)??"usd",g=a==null?void 0:a.features.conversation_sessions,_=a&&ve(a)==="community"?u("conversationsUnit"):u("conversationsPerMonth"),b=a?en(p,a,e):null,h=(t==null?void 0:t.costs.immediate.amountDue)??0,k=(t==null?void 0:t.costs.immediate.accountBalance)??0,C=(t==null?void 0:t.costs.nextCycle.total)??0,w=t!=null&&t.nextBillingDate?Es(t.nextBillingDate,1):null,v=w&&!yr(w)?Ue(w,c):null,P=a?gt[ve(a)].slice(0,Nc):[],N=a==null?void 0:a.features.ai_spend,A=N!==void 0?u("planFeatureAiUsageIncluded",{amount:ne(N/Ze,m,1)}):void 0,S=a?((X=a.prices[e])==null?void 0:X.amount)??0:0,M=(t==null?void 0:t.costs.immediate.lineItems)??[],E=M.filter(B=>B.type==="discount"),L=M.filter(B=>B.type==="proration_credit"||B.type==="proration_charge").reduce((B,F)=>B+F.amount,0),V=!!(t!=null&&t.subscription.plan.effectiveDate),z=((x=a==null?void 0:a.prices.month)==null?void 0:x.amount)??0,Q=((me=a==null?void 0:a.prices.year)==null?void 0:me.amount)??0,j=e==="year"&&z>0&&Q>0?Math.round(z*12-Q):0,R=Math.round(j/12);return s.jsxs("div",{className:"bpb-summary-wrap",children:[s.jsxs("div",{className:"bpb-summary bpb-glow",children:[s.jsx("h3",{className:"bpb-summary__title",children:a?`${ye(a.name)} plan`:s.jsx(ue,{width:140,height:24})}),g!==void 0&&s.jsxs("div",{className:"bpb-summary__metric",children:[s.jsx("span",{className:"bpb-summary__metric-value",children:fe(g)}),s.jsx("span",{className:"bpb-summary__metric-unit",children:_}),b&&s.jsx("span",{className:"bpb-summary__metric-pack",children:u("orderThen",{price:ne(b.amount,b.currency,0),packSize:fe(b.packSize)})})]}),P.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("p",{className:"bpb-summary__features-label",children:u("orderTopFeatures")}),s.jsx("ul",{className:"bpb-summary__features",children:P.map(B=>{const F=sn(B),J=mt[B],Z=B==="AI usage included"?A??(J!==void 0?u(J.label):B):J!==void 0?u(J.label):B;return s.jsxs("li",{children:[s.jsx(F,{size:16,className:"bpb-summary__feature-icon"}),s.jsx("span",{children:Z})]},B)})})]}),s.jsx("hr",{className:"bpb-summary__divider"}),n&&s.jsxs("div",{className:"bpb-summary__lines","aria-busy":"true",children:[s.jsx(ue,{height:16}),s.jsx(ue,{height:16}),s.jsx(ue,{height:20})]}),r&&s.jsx("p",{role:"alert",className:"bpb-summary__error",children:u("orderPreviewError")}),t&&!n&&V&&s.jsxs("div",{className:"bpb-summary__lines",children:[s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:v?u("orderPlanFromDate",{plan:a?ye(a.name):"",date:v}):`${a?ye(a.name):""} plan`}),s.jsxs("span",{className:"bpb-summary__line-amount",children:[ne(C,m),u(e==="year"?"perYear":"perMonth")]})]}),s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:s.jsx(Ut,{label:u("orderProratedToday"),children:u("orderProratedTodayDesc")})}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(h,m)})]}),s.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[s.jsx("span",{children:u("orderDueToday")}),s.jsx("span",{children:ne(h,m)})]}),L<0&&s.jsx("p",{className:"bpb-summary__addon-note",children:u("orderCreditTowardNext",{amount:ne(Math.abs(L),m)})})]}),t&&!n&&!V&&s.jsxs("div",{className:"bpb-summary__lines",children:[s.jsxs("div",{className:"bpb-summary__line",children:[s.jsxs("span",{className:"bpb-summary__line-label",children:[a?ye(a.name):""," plan (",u(e==="year"?"orderIntervalAnnual":"orderIntervalMonthly"),")"]}),s.jsxs("span",{className:"bpb-summary__line-amount",children:[ne(S,m),u(e==="year"?"perYear":"perMonth")]})]}),E.map((B,F)=>s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:B.description}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(B.amount,m)})]},`${B.id}-${F}`)),L!==0&&s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:s.jsx(Ut,{label:L<0?u("orderCreditUnusedTime"):u("orderAdjustUnusedTime"),children:L<0?u("orderCreditUnusedTimeDesc"):u("orderAdjustUnusedTimeDesc")})}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(L,m)})]}),k!==0&&s.jsxs("div",{className:"bpb-summary__line",children:[s.jsx("span",{className:"bpb-summary__line-label",children:u("orderAccountCredit")}),s.jsx("span",{className:"bpb-summary__line-amount",children:ne(k,m)})]}),s.jsxs("div",{className:"bpb-summary__line bpb-summary__line--total",children:[s.jsx("span",{children:u("orderDueToday")}),s.jsx("span",{children:ne(h,m)})]}),L<0&&h===0&&s.jsx("p",{className:"bpb-summary__addon-note",children:u("orderBalanceAsCredit",{amount:ne(Math.abs(L),m)})})]}),j>0&&s.jsxs("div",{className:"bpb-summary__savings",children:[s.jsx(an,{size:18,className:"bpb-summary__savings-icon"}),s.jsx("span",{children:u("orderSavingsNote",{monthlySavings:ne(R,m,0),yearlySavings:ne(j,m,0)})})]}),s.jsx(pe,{variant:"primary",size:"lg",block:!0,className:"bpb-summary__cta",disabled:!o,loading:i,onClick:l,children:u(r?"orderPreviewUnavailable":"orderSubscribe")}),d&&s.jsx("p",{role:"alert",className:"bpb-summary__submit-error",children:d})]}),s.jsxs("p",{className:"bpb-summary__fineprint",children:[u(e==="month"?"orderRenewsMonthly":"orderRenewsAnnually"),t&&s.jsxs(s.Fragment,{children:[" ",v?u("orderChargedStarting",{amount:ne(C,m),period:u(e==="month"?"perMonthLong":"perYearLong"),date:v}):u("orderChargedNoDate",{amount:ne(C,m),period:u(e==="month"?"perMonthLong":"perYearLong")})]})," ",u("orderCancelNote")]})]})},Tc=["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"],wc={CA:[{type:"ca_bn",label:"CA BN",description:"Canadian BN"},{type:"ca_gst_hst",label:"CA GST/HST",description:"Canadian GST/HST number"},{type:"ca_qst",label:"CA QST",description:"Canadian QST number (Québec)"},{type:"ca_pst_bc",label:"CA PST-BC",description:"Canadian PST number (British Columbia)"},{type:"ca_pst_mb",label:"CA PST-MB",description:"Canadian PST number (Manitoba)"},{type:"ca_pst_sk",label:"CA PST-SK",description:"Canadian PST number (Saskatchewan)"}],US:[{type:"us_ein",label:"US EIN",description:"United States EIN"}],GB:[{type:"eu_vat",label:"XI VAT",description:"Northern Ireland VAT number"},{type:"gb_vat",label:"GB VAT",description:"United Kingdom VAT number"}],AU:[{type:"au_abn",label:"AU ABN",description:"Australian Business Number"},{type:"au_arn",label:"AU ARN",description:"Australian Taxation Office Reference Number"}],NZ:[{type:"nz_gst",label:"NZ GST",description:"New Zealand GST number"}],IN:[{type:"in_gst",label:"IN GST",description:"Indian GST number"}],JP:[{type:"jp_cn",label:"JP CN",description:"Japanese Corporate Number"},{type:"jp_rn",label:"JP RN",description:"Japanese Registered Foreign Businesses' Registration Number"},{type:"jp_trn",label:"JP TRN",description:"Japanese Tax Registration Number"}],BR:[{type:"br_cnpj",label:"BR CNPJ",description:"Brazilian CNPJ number"},{type:"br_cpf",label:"BR CPF",description:"Brazilian CPF number"}],MX:[{type:"mx_rfc",label:"MX RFC",description:"Mexican RFC number"}],CH:[{type:"ch_vat",label:"CH VAT",description:"Switzerland VAT number"},{type:"ch_uid",label:"CH UID",description:"Switzerland UID number"}],AE:[{type:"ae_trn",label:"AE TRN",description:"United Arab Emirates TRN"}],SG:[{type:"sg_gst",label:"SG GST",description:"Singaporean GST number"},{type:"sg_uen",label:"SG UEN",description:"Singaporean UEN"}],ZA:[{type:"za_vat",label:"ZA VAT",description:"South African VAT number"}],ES:[{type:"es_cif",label:"ES CIF",description:"Spanish NIF number"}],BG:[{type:"bg_uic",label:"BG UIC",description:"Bulgaria Unified Identification Code"}],HR:[{type:"hr_oib",label:"HR OIB",description:"Croatian Personal Identification Number"}],DE:[{type:"de_stn",label:"DE STN",description:"German Tax Number (Steuernummer)"}],HU:[{type:"hu_tin",label:"HU TIN",description:"Hungary tax number (adószám)"}],RO:[{type:"ro_tin",label:"RO TIN",description:"Romanian tax ID number"}],SI:[{type:"si_tin",label:"SI TIN",description:"Slovenia tax number (davčna številka)"}]},Ic=[{type:"eu_vat",label:"EU VAT",description:"European VAT number"}];function To(a){if(!a)return[];const e=a.toUpperCase(),t=wc[e]??[];return Tc.includes(e)?[...Ic,...t]:t}const _n=({label:a,invalid:e,className:t,id:n,...r})=>a?s.jsxs("label",{className:$("bpb-input",t),children:[s.jsx("span",{className:"bpb-input__label",children:a}),s.jsx("input",{className:$("bpb-input__field bpb-input__field--labeled",e&&"bpb-input__field--invalid"),id:n,"aria-invalid":e||void 0,...r})]}):s.jsx("input",{className:$("bpb-input__field",e&&"bpb-input__field--invalid",t),id:n,"aria-invalid":e||void 0,...r}),vr=({label:a,className:e,children:t,...n})=>s.jsxs("label",{className:$("bpb-input",e),children:[a&&s.jsx("span",{className:"bpb-input__label",children:a}),s.jsxs("span",{className:"bpb-input__select-wrap",children:[s.jsx("select",{className:$("bpb-input__field bpb-input__field--select",a&&"bpb-input__field--labeled"),...n,children:t}),s.jsx(Da,{size:16,className:"bpb-input__chevron"})]})]}),Ac=({plan:a,interval:e,onChange:t})=>{const{t:n}=se(),r=a.prices.month,o=a.prices.year,i=r&&o&&r.amount>0?Math.round((1-o.amount/(r.amount*12))*100):0;return s.jsxs("section",{className:"bpb-checkout__section",children:[s.jsx("h3",{className:"bpb-checkout__section-title",children:n("checkoutPlanDetails")}),s.jsxs("div",{className:"bpb-interval-cards",role:"radiogroup","aria-label":n("billingIntervalLabel"),children:[r&&s.jsxs("button",{type:"button",role:"radio","aria-checked":e==="month",className:$("bpb-interval-card",e==="month"&&"bpb-interval-card--selected"),onClick:()=>t("month"),children:[s.jsx("span",{className:"bpb-interval-card__title",children:n("checkoutMonthlyBilling")}),s.jsxs("span",{className:"bpb-interval-card__price",children:[ne(r.amount,r.currency,0)," ",n("perMonth")]})]}),o&&s.jsxs("button",{type:"button",role:"radio","aria-checked":e==="year",className:$("bpb-interval-card",e==="year"&&"bpb-interval-card--selected"),onClick:()=>t("year"),children:[s.jsxs("span",{className:"bpb-interval-card__title",children:[n("checkoutAnnualBilling"),i>0&&s.jsx(Ga,{children:n("checkoutSaveBadge",{savings:i})})]}),s.jsxs("span",{className:"bpb-interval-card__price",children:[ne(o.amount/12,o.currency,0)," ",n("perMonth")]})]})]})]})},wo=({number:a,title:e,onEdit:t})=>{const{t:n}=se();return s.jsxs("div",{className:"bpb-step__header",children:[t?s.jsxs("button",{type:"button",className:"bpb-step__title bpb-step__title--button",onClick:t,children:[a,". ",e]}):s.jsxs("h3",{className:"bpb-step__title",children:[a,". ",e]}),t&&s.jsx("button",{type:"button",className:"bpb-step__edit",onClick:t,children:n("edit")})]})},Pc=({stepNumber:a,savedCard:e,isDark:t,tab:n,onTabChange:r,onPaymentChange:o,error:i})=>{const{t:d}=se(),[l,c]=I.useState(!1),u=n==="new"||!e;return s.jsxs("section",{className:"bpb-step",children:[s.jsx(wo,{number:a,title:d("checkoutPaymentMethodTitle")}),e&&s.jsxs("div",{className:"bpb-pay-tabs",role:"tablist","aria-label":d("checkoutPaymentMethodTitle"),children:[s.jsxs("button",{type:"button",role:"tab","aria-selected":n==="saved",className:$("bpb-pay-tab",n==="saved"&&"bpb-pay-tab--selected"),onClick:()=>r("saved"),children:[s.jsx(Xn,{size:16}),d("checkoutSavedCardTab")]}),s.jsxs("button",{type:"button",role:"tab","aria-selected":n==="new",className:$("bpb-pay-tab",n==="new"&&"bpb-pay-tab--selected"),onClick:()=>r("new"),children:[s.jsx(Xn,{size:16}),d("checkoutNewCardTab")]})]}),e&&n==="saved"&&s.jsxs("div",{className:"bpb-saved-card",children:[s.jsx(rn,{brand:e.brand}),s.jsxs("span",{className:"bpb-saved-card__number",children:[s.jsx("span",{className:"bpb-saved-card__brand",children:e.brand})," •••• ",e.lastFour]}),s.jsxs("span",{className:"bpb-saved-card__exp",children:[String(e.expMonth).padStart(2,"0"),"/",String(e.expYear).slice(-2)]})]}),u&&s.jsxs("div",{className:"bpb-payment-element",children:[!l&&s.jsx("div",{className:"bpb-payment-element__skeleton",children:s.jsx(ue,{height:48})}),s.jsx("div",{className:$("bpb-card-element",!l&&"bpb-payment-element--hidden"),children:s.jsx(je.CardElement,{options:{style:hr(t),hidePostalCode:!0},onReady:()=>c(!0),onChange:p=>o(p.complete)})})]}),i&&s.jsx("p",{role:"alert",className:"bpb-step__field-error",children:i})]})},Ec=({stepNumber:a,existingAddress:e,customerName:t,isLoading:n,editing:r,onEdit:o,onCancelEdit:i,onReady:d,onCountryChange:l,country:c,isBusiness:u,onIsBusinessChange:p,businessName:m,onBusinessNameChange:g,taxType:_,onTaxTypeChange:b,taxValue:h,onTaxValueChange:k,addressError:C,taxIdError:w})=>{const{t:v}=se(),[P,N]=I.useState(!1),A=r||!e,S=To(c),M=S.find(E=>E.type===_);return s.jsxs("section",{className:"bpb-step",children:[s.jsx(wo,{number:a,title:v("checkoutBillingAddressTitle")}),n?s.jsx(ue,{height:72}):A?s.jsxs("div",{className:"bpb-payment-element",children:[!P&&s.jsxs("div",{className:"bpb-payment-element__skeleton",children:[s.jsx(ue,{height:48}),s.jsx(ue,{height:48})]}),s.jsx("div",{className:$(!P&&"bpb-payment-element--hidden"),children:s.jsx(je.AddressElement,{options:{mode:"billing",display:{name:"full"},autocomplete:{mode:"disabled"},defaultValues:e?{name:t??void 0,address:{line1:e.lineOne,line2:e.lineTwo,city:e.city,state:e.state,postal_code:e.postalCode,country:e.country}}:void 0},onReady:()=>{N(!0),d()},onChange:E=>{l(E.value.address.country||void 0)}})}),i&&r&&s.jsx("button",{type:"button",className:"bpb-address-cancel",onClick:i,children:v("checkoutCancelEdit")})]}):s.jsxs("div",{className:"bpb-address-card",children:[s.jsxs("div",{className:"bpb-address-card__lines",children:[t&&s.jsx("span",{className:"bpb-address-card__name",children:t}),s.jsxs("span",{children:[e.lineOne,e.lineTwo?`, ${e.lineTwo}`:""]}),s.jsxs("span",{children:[e.city," ",e.state??""," ",e.postalCode," ",e.country]})]}),s.jsx("button",{type:"button",className:"bpb-link-button",onClick:o,children:v("checkoutUpdateAddress")})]}),C&&s.jsx("p",{role:"alert",className:"bpb-step__field-error",children:C}),s.jsxs("label",{className:"bpb-checkbox",children:[s.jsx("input",{type:"checkbox",checked:u,onChange:E=>{p(E.target.checked),E.target.checked&&!_&&S[0]&&b(S[0].type)}}),s.jsx("span",{children:v("checkoutIsBusiness")})]}),u&&s.jsxs("div",{className:"bpb-business-fields",children:[s.jsx("h4",{className:"bpb-step__subtitle",children:v("checkoutBusinessDetails")}),s.jsx(_n,{placeholder:v("checkoutBusinessNamePlaceholder"),value:m,onChange:E=>g(E.target.value),autoComplete:"organization"}),S.length>0?s.jsxs(s.Fragment,{children:[s.jsx(vr,{"aria-label":v("checkoutTaxIdTypeLabel"),value:_,onChange:E=>b(E.target.value),children:S.map(E=>s.jsxs("option",{value:E.type,children:[E.label," — ",E.description]},E.type))}),s.jsx(_n,{placeholder:M?M.description:v("checkoutTaxIdNumberPlaceholder"),value:h,onChange:E=>k(E.target.value),inputMode:"text"}),w&&s.jsx("p",{role:"alert",className:"bpb-step__field-error",children:w})]}):s.jsx("p",{className:"bpb-business-fields__note",children:v(c?"checkoutNoTaxRequired":"checkoutSelectCountryForTax")})]})]})},xc=({planId:a,initialInterval:e,onSuccess:t})=>{var Oa;const n=je.useStripe(),r=je.useElements(),{email:o,toast:i,analytics:d,isDark:l}=Y(),{t:c}=se(),[u,p]=I.useState(e),[m,g]=I.useState(null),[_,b]=I.useState(!1),[h,k]=I.useState(!1),[C,w]=I.useState(!1),[v,P]=I.useState(void 0),[N,A]=I.useState(!1),[S,M]=I.useState(""),[E,L]=I.useState(""),[V,z]=I.useState(""),[Q,j]=I.useState(!1),[R,q]=I.useState({}),[G,X]=I.useState(!1),x=Ln(),{data:me}=Be(),{data:B}=Fe(),{data:F,isLoading:J}=Vt(),{data:Z,isLoading:ee,isError:Ne}=xn(),ke=me==null?void 0:me.find(Ae=>Ae.id===a),le=((Oa=F==null?void 0:F.paymentMethod)==null?void 0:Oa.card)??null,Ie=(Z==null?void 0:Z.address)??null;I.useEffect(()=>{m===null&&!J&&F!==void 0&&g(le?"saved":"new")},[m,J,F,le]),I.useEffect(()=>{v===void 0&&Ie&&P(Ie.country)},[v,Ie]);const xe=I.useMemo(()=>({plan:{planId:a,interval:u}}),[a,u]),D=En(xe),ce=Fn(),ie=Mn(),Ce=Un(),Oe=ke?ye(ke.name):"",ha=m==="new"||!le,Qe=h||!Ie,tt=ha?_:!!le,Sr=Qe?C:!0,nt=tt?"address":"payment";I.useEffect(()=>{d.capture(Se.CHECKOUT_STEP_VIEWED,{plan_name:Oe,interval:u,step:nt})},[d,nt]);const Nr=Ae=>{Ae!==u&&d.capture(Se.CHECKOUT_INTERVAL_CHANGED,{plan_name:Oe,interval:Ae}),p(Ae)},rt=Ae=>{d.capture(Se.PAYMENT_METHOD_SELECTED,{method:Ae==="saved"?"saved_card":"new_card"}),g(Ae)},da=Ae=>{b(Ae),X(!1)},kn=!!n&&!!r&&!!ke&&!ee&&!Ne&&!D.isError&&!!D.data&&tt&&Sr&&!Q,kr=async()=>{var Ba,zt,Tn,wn;if(!n||!r||!ke||ee||Ne)return;j(!0),q({});const Ae=(Ve,Ke)=>d.capture(Se.CHECKOUT_ERROR,{plan_name:Oe,interval:u,step:nt,reason:Ve,message:Ke});try{if(d.capture(Se.PAYMENT_DETAILS_CONFIRMED,{plan_name:Oe,interval:u}),ha&&!G){const la=r.getElement(je.CardElement);if(!la){q({payment:c("checkoutCardNotReady")}),Ae("card_element_not_ready");return}const{clientSecret:wr}=await x.mutateAsync(),{error:ba,setupIntent:$e}=await n.confirmCardSetup(wr,{payment_method:{card:la}});if(ba){q({payment:ba.message??c("checkoutPaymentSetupFailed")}),d.capture(Se.CHECKOUT_ERROR,{plan_name:Oe,interval:u,step:nt,reason:ba.code??"card_setup_failed",decline_code:ba.decline_code,message:ba.message});return}if(!($e!=null&&$e.payment_method)||typeof $e.payment_method!="string"){q({payment:c("checkoutPaymentMethodMissing")}),Ae("payment_method_missing");return}await ce.mutateAsync({paymentMethodId:$e.payment_method}),X(!0)}let Ve,Ke;if(Qe){const la=r.getElement("address");if(la){const{complete:wr,value:ba}=await la.getValue();if(!wr||!ba.address){q({address:c("checkoutAddressIncomplete")}),Ae("address_incomplete");return}const{address:$e}=ba;Ke=((Ba=ba.name)==null?void 0:Ba.trim())||void 0,Ve={lineOne:$e.line1??"",lineTwo:$e.line2??void 0,city:$e.city??"",state:$e.state??void 0,postalCode:$e.postal_code??"",country:$e.country??""}}}const Ta=N&&S.trim()||Ke||(Z==null?void 0:Z.name)||void 0,za=N&&E&&V.trim()?{type:E,value:V.trim()}:void 0,In=za?[...((Z==null?void 0:Z.taxIds)??[]).filter(la=>la.type!==za.type||la.value!==za.value),za]:Z==null?void 0:Z.taxIds;(Ve||N||Ta!==((Z==null?void 0:Z.name)??void 0))&&await ie.mutateAsync({address:Ve??Ie??void 0,name:Ta,taxIds:In});const An=((zt=D.data)==null?void 0:zt.costs.immediate.amountDue)??0,Tr=((Tn=D.data)==null?void 0:Tn.costs.nextCycle.total)??0;if((await Ce.mutateAsync({planId:a,interval:u})).pendingUpgrade)return;d.capture(Se.PLAN_UPGRADED,{plan_name:Oe,interval:u,amount_paid:An,next_cycle_amount:Tr,previous_plan_name:(wn=me==null?void 0:me.find(la=>la.id===(B==null?void 0:B.plan.current.planId)))==null?void 0:wn.name.replace("Plan - ",""),previous_interval:B==null?void 0:B.plan.current.interval}),i({type:"success",message:c("checkoutSuccessToast")}),t()}catch(Ve){const Ke=Ve instanceof Error?Ve:void 0;q(No(Ke,c("checkoutGenericError"))),Ae((Ke==null?void 0:Ke.type)??"exception",Ve instanceof Error?Ve.message:void 0),i({type:"error",message:c("checkoutErrorToast")})}finally{j(!1)}};return s.jsxs("div",{className:"bpb-checkout__columns",children:[s.jsxs("div",{className:"bpb-checkout__main",children:[ke&&s.jsx(Ac,{plan:ke,interval:u,onChange:Nr}),o&&s.jsxs("section",{className:"bpb-checkout__section",children:[s.jsx("h3",{className:"bpb-checkout__section-title",children:c("checkoutContactInfo")}),s.jsxs("div",{className:"bpb-checkout__static-field",children:[s.jsx("span",{className:"bpb-checkout__static-label",children:c("checkoutEmailLabel")}),s.jsx("span",{children:o})]})]}),s.jsx(Pc,{stepNumber:1,savedCard:le,isDark:l,tab:m??"new",onTabChange:rt,onPaymentChange:da,error:R.payment}),s.jsx(Ec,{stepNumber:2,existingAddress:Ie,customerName:(Z==null?void 0:Z.name)??null,isLoading:ee,editing:h,onEdit:()=>k(!0),onCancelEdit:Ie?()=>k(!1):void 0,onReady:()=>w(!0),onCountryChange:P,country:v,isBusiness:N,onIsBusinessChange:A,businessName:S,onBusinessNameChange:M,taxType:E,onTaxTypeChange:L,taxValue:V,onTaxValueChange:z,addressError:R.address,taxIdError:R.taxId})]}),s.jsx("div",{className:"bpb-checkout__aside",children:s.jsx(kc,{plan:ke,interval:u,preview:D.data,isLoadingPreview:D.isLoading,isPreviewError:D.isError,canSubscribe:kn,isSubmitting:Q,submitError:R.general??null,onSubscribe:()=>void kr()})})]})},Io=({open:a,onOpenChange:e,planId:t,interval:n,onBack:r,onSuccess:o})=>{const{stripePromise:i,isDark:d,locale:l,isOutdatedBilling:c}=Y(),{t:u}=se(),{data:p}=Le(),m=st({enabled:a&&!c}),g=I.useMemo(()=>({appearance:gr(d),locale:br(l)}),[d,l]);return p===!1?null:c?s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":u("checkoutTitle"),className:"bpb-scope",children:s.jsx(ga,{})}):m?s.jsx(Ee,{open:a,onOpenChange:e,size:"sm","aria-label":u("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(fr,{onClose:()=>e(!1),onSuccess:o})}):s.jsx(Ee,{open:a,onOpenChange:e,size:"xl","aria-label":u("checkoutTitle"),className:"bpb-scope",children:s.jsxs("div",{className:"bpb-checkout",children:[s.jsxs("header",{className:"bpb-checkout__header",children:[r&&s.jsx("button",{type:"button",className:"bpb-checkout__back","aria-label":u("checkoutBackLabel"),onClick:r,children:s.jsx(er,{size:18})}),s.jsx("h2",{className:"bpb-checkout__title",children:u("checkoutTitle")})]}),s.jsx(je.Elements,{stripe:i,options:g,children:s.jsx(xc,{planId:t,initialInterval:n,onSuccess:()=>{e(!1),o==null||o()}})})]})})},Ao=({value:a,onChange:e,min:t=0,max:n,step:r=1,className:o,...i})=>{const d=()=>e(Math.max(t,a-r)),l=()=>e(n===void 0?a+r:Math.min(n,a+r));return s.jsxs("div",{className:$("bpb-stepper",o),children:[s.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Decrease ${i["aria-label"]}`,onClick:d,disabled:a<=t,children:s.jsx($s,{size:14})}),s.jsx("span",{className:"bpb-stepper__value","aria-label":i["aria-label"],children:a}),s.jsx("button",{type:"button",className:"bpb-stepper__btn","aria-label":`Increase ${i["aria-label"]}`,onClick:l,disabled:n!==void 0&&a>=n,children:s.jsx(ar,{size:14})})]})},Po=({title:a,body:e,ctaLabel:t,onUpgrade:n,onClose:r})=>{const{t:o}=se();return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-upgrade-gate",children:[s.jsx(tl,{size:28,className:"bpb-upgrade-gate__icon"}),s.jsxs("div",{className:"bpb-upgrade-gate__text",children:[s.jsx("p",{className:"bpb-upgrade-gate__title",children:a}),s.jsx("p",{className:"bpb-upgrade-gate__body",children:e})]})]}),s.jsx("div",{className:"bpb-upgrade-gate__actions",children:n?s.jsx(pe,{variant:"primary",className:"bpb-upgrade-gate__cta",onClick:n,children:t}):s.jsx(pe,{variant:"outline",onClick:r,children:o("close")})})]})},Dc=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=Y(),{t:o}=se(),{data:i}=Le(),d=st({enabled:a&&!r});return i===!1?null:r?s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":o("addonsDialogTitle"),className:"bpb-scope",children:s.jsx(ga,{})}):d?s.jsx(Ee,{open:a,onOpenChange:e,size:"sm","aria-label":o("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(fr,{onClose:()=>e(!1),onSuccess:t})}):s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":o("addonsDialogTitle"),className:"bpb-scope",children:s.jsx(Lc,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},Lc=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var x,me,B;const{toast:n,locale:r}=Y(),{t:o}=se(),{data:i,refetch:d}=Fe(),{data:l}=Xe(),{data:c}=Be(),{data:u}=Dn(),p=Lr(),[m,g]=I.useState(null),[_,b]=I.useState(!1),h=c==null?void 0:c.find(F=>F.id===(i==null?void 0:i.plan.current.planId)),k=(i==null?void 0:i.plan.current.interval)??"month",C=(u==null?void 0:u.addonsReadonly)??!1,w=I.useMemo(()=>{var J;if(!i||!l)return null;const F={};for(const Z of l){const ee=i.addons[Z.id];F[Z.id]=((J=ee==null?void 0:ee.next)==null?void 0:J.quantity)??(ee==null?void 0:ee.current.quantity)??0}return F},[i,l]),v=m??w,P=I.useMemo(()=>Object.fromEntries(Object.entries((i==null?void 0:i.addons)??{}).map(([F,J])=>[F,J.current.quantity])),[i]),N=I.useMemo(()=>!l||!h?[]:l.flatMap(F=>{const J=pt(F,h,k);return J?[{addon:F,price:J}]:[]}),[l,h,k]),A=!!v&&!!w&&Object.keys(v).some(F=>v[F]!==w[F]),S=N.reduce((F,{addon:J,price:Z})=>F+((v==null?void 0:v[J.id])??0)*Z.amount,0),M=I.useMemo(()=>h&&v?{plan:{planId:h.id,interval:k},addons:v}:null,[h,k,v]),E=En(M??{plan:{planId:"",interval:k}},{enabled:!!M&&A}),L=((x=h==null?void 0:h.prices[k])==null?void 0:x.currency)??"usd",V=((me=E.data)==null?void 0:me.costs.immediate.amountDue)??0,z=(B=E.data)==null?void 0:B.nextBillingDate,Q=z&&!yr(z)?Ue(z,r):null,j=h&&v?Fs(h,l,v,P):[],R=(F,J)=>J==="bytes"?Ea(F):fe(F),q=(F,J)=>{const Z=l==null?void 0:l.find(le=>le.id===F),ee=Z==null?void 0:Z.increments;if(!ee||J<=0)return null;const Ne=ee.conversation_sessions??0;if(Ne>0)return o("addonsConvos",{n:fe(Ne*J)});const ke=ee.file_storage??0;return ke>0?Ea(ke*J):null},G=async()=>{if(!v)return;b(!0);const{data:F}=await d();b(!1),!(F!=null&&F.pendingUpgrade)&&p.mutate({addons:v},{onSuccess:J=>{J.pendingUpgrade||(n({type:"success",message:o("addonsUpdateSuccess")}),a(!1),e==null||e())},onError:()=>n({type:"error",message:o("addonsUpdateError")})})},X=!i||!l||!c;return s.jsxs("div",{className:"bpb-manage-addons",children:[s.jsx("h2",{className:"bpb-manage-addons__title",children:o("addonsDialogTitle")}),(X||N.length>0)&&s.jsx("p",{className:"bpb-manage-addons__subtitle",children:o("addonsSubtitleGeneric")}),X?s.jsxs("div",{className:"bpb-manage-addons__loading","aria-busy":"true",children:[s.jsx(ue,{height:56}),s.jsx(ue,{height:56})]}):N.length===0?s.jsx(Po,{title:o("addonsRequirePaidPlanTitle"),body:o("addonsRequirePaidPlanBody"),ctaLabel:o("addonsUpgradeCta"),onUpgrade:t?()=>{a(!1),t()}:void 0,onClose:()=>a(!1)}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"bpb-addons",children:N.map(({addon:F,price:J})=>{var xe,D;const Z=((xe=i==null?void 0:i.addons[F.id])==null?void 0:xe.current.quantity)??0,ee=(v==null?void 0:v[F.id])??0,Ne=(D=i==null?void 0:i.addons[F.id])==null?void 0:D.next,ke=Ne&&Ne.quantity===ee?Ue(Ne.effectiveDate,r):Q,le=ee!==Z?ee===0?ke?o("addonRemovedOnDate",{activeNow:Z,date:ke}):o("addonRemoved",{activeNow:Z}):ee<Z&&ke?o("addonChangedOnDate",{activeNow:Z,pending:ee,date:ke}):o("addonChanged",{activeNow:Z,pending:ee}):Z>0?o("addonActiveOnly",{count:Z}):null,Ie=q(F.id,ee);return s.jsxs("div",{className:"bpb-addon-row",children:[s.jsxs("div",{className:"bpb-addon-row__info",children:[s.jsx("span",{className:"bpb-addon-row__name",children:He[F.id]?o(He[F.id]):xa(F.name)}),s.jsx("span",{className:"bpb-addon-row__description",children:Ds[F.id]?o(Ds[F.id]):F.description}),s.jsxs("span",{className:"bpb-addon-row__price",children:[ne(J.amount,J.currency)," ",o("addonsEach")]}),le&&s.jsx("span",{className:$("bpb-addon-row__status",ee!==Z&&"bpb-addon-row__status--changed"),children:le})]}),s.jsxs("div",{className:"bpb-addon-row__control",children:[Ie&&s.jsx("span",{className:"bpb-addon-row__grant",children:Ie}),s.jsx(Ao,{"aria-label":`${He[F.id]?o(He[F.id]):xa(F.name)} quantity`,value:ee,onChange:ce=>g({...v??{},[F.id]:ce})})]})]},F.id)})}),A&&j.length>0&&s.jsxs("div",{className:"bpb-manage-addons__limits",children:[s.jsx("p",{className:"bpb-manage-addons__limits-title",children:o("addonsNewLimits")}),j.map(F=>{const J={conversation_sessions:"resourceConversations",table_rows:"resourceTableRows",vector_db_storage:"resourceVectorDb",file_storage:"resourceFileStorage"}[F.key];return s.jsxs("div",{className:"bpb-manage-addons__limit-row",children:[s.jsx("span",{className:"bpb-manage-addons__limit-label",children:J?o(J):F.label}),s.jsxs("span",{className:"bpb-manage-addons__limit-values",children:[s.jsx("span",{className:"bpb-manage-addons__limit-now",children:R(F.now,F.unit)}),s.jsx("span",{className:"bpb-manage-addons__limit-arrow","aria-hidden":!0,children:"→"}),s.jsx("span",{className:"bpb-manage-addons__limit-next",children:R(F.next,F.unit)})]})]},F.key)})]}),s.jsxs("div",{className:"bpb-manage-addons__totals",children:[N.map(({addon:F,price:J})=>{const Z=(v==null?void 0:v[F.id])??0;return Z<=0?null:s.jsxs("div",{className:"bpb-manage-addons__line",children:[s.jsxs("span",{children:[Z,"×"," ",He[F.id]?o(He[F.id]):xa(F.name)]}),s.jsx("span",{children:ne(J.amount*Z,L)})]},F.id)}),s.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--total",children:[s.jsx("span",{children:o("addonsTotalMonthly")}),s.jsxs("span",{children:[ne(S,L),s.jsx("span",{className:"bpb-manage-addons__price-suffix",children:o("perMonth")})]})]}),A&&s.jsxs("div",{className:"bpb-manage-addons__line bpb-manage-addons__line--due",children:[s.jsx("span",{children:o("addonsDueToday")}),s.jsx("span",{children:E.isLoading?"…":E.isError?"—":ne(Math.max(V,0),L)})]})]}),A&&!E.isError&&s.jsxs("p",{className:"bpb-manage-addons__note",children:[V>0?o("addonsChargedNow",{amount:ne(V,L)}):o("addonsNoChargeToday"),Q?o("addonsRenewalWithDate",{date:Q,amount:ne(S,L),interval:o("perMonth")}):o("addonsRenewalNoDate",{amount:ne(S,L),interval:o("perMonth")})]}),C&&s.jsx("p",{className:"bpb-manage-addons__note",role:"alert",children:o("addonsReadonlyNote")}),s.jsxs("div",{className:"bpb-manage-addons__actions",children:[s.jsx(pe,{variant:"outline",onClick:()=>a(!1),disabled:p.isPending,children:o("cancel")}),s.jsx(pe,{variant:"primary",disabled:!A||C||_,loading:_||p.isPending,onClick:G,children:o("addonsUpdateSubscription")})]})]})]})},Eo=({open:a,onOpenChange:e,onSuccess:t})=>{const{isOutdatedBilling:n}=Y(),{t:r}=se(),{data:o}=Le();return o===!1?null:n?s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":r("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(ga,{})}):s.jsx(Ee,{open:a,onOpenChange:e,size:"sm","aria-label":r("pendingUpgradeTitle"),className:"bpb-scope",children:s.jsx(fr,{onClose:()=>e(!1),onSuccess:t})})},Fc=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=Y(),{t:n}=se(),{data:r}=Le(),o=st({enabled:!t}),[i,d]=I.useState(!1);return r===!1||t||!o?null:s.jsxs(s.Fragment,{children:[s.jsxs("button",{type:"button",className:$("bpb-pending-upgrade-banner bpb-scope",e),onClick:()=>a?a():d(!0),children:[s.jsx(Ka,{size:18,className:"bpb-pending-upgrade-banner__icon"}),s.jsx("span",{className:"bpb-pending-upgrade-banner__text",children:n("pendingUpgradeBannerText")}),s.jsxs("span",{className:"bpb-pending-upgrade-banner__cta",children:[n("pendingUpgradeBannerCta")," ",s.jsx(ta,{size:16})]})]}),!a&&s.jsx(Eo,{open:i,onOpenChange:d})]})},Mc=({open:a,onOpenChange:e})=>{const{isOutdatedBilling:t}=Y(),{t:n}=se(),{data:r}=Le();return r===!1?null:t?s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:s.jsx(ga,{})}):s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":n("invoicesTitle"),className:"bpb-scope",children:s.jsx(Uc,{open:a})})},Uc=({open:a})=>{const{locale:e,analytics:t}=Y(),{t:n}=se(),{data:r,isLoading:o,isError:i}=Pr({enabled:a}),d=(r==null?void 0:r.invoices)??[],l={paid:n("invoiceStatusPaid"),open:n("invoiceStatusDue"),draft:n("invoiceStatusDraft"),uncollectible:n("invoiceStatusUnpaid"),void:n("invoiceStatusVoid")};return s.jsxs("div",{className:"bpb-invoices",children:[s.jsx("h2",{className:"bpb-invoices__title",children:n("invoicesTitle")}),o?s.jsxs("div",{className:"bpb-invoices__loading","aria-busy":"true",children:[s.jsx(ue,{height:52}),s.jsx(ue,{height:52}),s.jsx(ue,{height:52})]}):i?s.jsx("p",{className:"bpb-invoices__empty",role:"alert",children:n("invoicesLoadError")}):d.length===0?s.jsx("p",{className:"bpb-invoices__empty",children:n("invoicesEmpty")}):s.jsx("ul",{className:"bpb-invoices__list",children:d.map(c=>s.jsxs("li",{className:"bpb-invoices__row",children:[s.jsxs("div",{className:"bpb-invoices__row-main",children:[s.jsx("span",{className:"bpb-invoices__date",children:Ue(c.createdAt,e)}),s.jsx("span",{className:`bpb-invoices__status bpb-invoices__status--${c.status}`,children:l[c.status]})]}),s.jsxs("div",{className:"bpb-invoices__row-end",children:[s.jsx("span",{className:"bpb-invoices__amount",children:ne(c.amount,c.currency)}),c.pdfUrl?s.jsx("a",{className:"bpb-invoices__download",href:c.pdfUrl,target:"_blank",rel:"noopener noreferrer","aria-label":n("invoicesDownloadLabel",{date:Ue(c.createdAt,e)}),onClick:()=>t.capture(Se.INVOICE_DOWNLOADED,{status:c.status}),children:s.jsx(nr,{size:16})}):s.jsx("span",{className:"bpb-invoices__download bpb-invoices__download--disabled","aria-hidden":!0,children:s.jsx(nr,{size:16})})]})]},c.id))})]})},Oc=({open:a,onOpenChange:e,onSuccess:t})=>{var _;const{stripePromise:n,isDark:r,locale:o,isOutdatedBilling:i}=Y(),{t:d}=se(),{data:l}=Le(),c=Ln(),u=(_=c.data)==null?void 0:_.clientSecret,{mutate:p,reset:m}=c;I.useEffect(()=>{a&&!i&&l?p():m()},[a,i,l,p,m]);const g=I.useMemo(()=>u?{clientSecret:u,appearance:gr(r),locale:br(o)}:null,[u,r,o]);return l===!1?null:i?s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":d("paymentDialogTitle"),className:"bpb-scope",children:s.jsx(ga,{})}):s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":d("paymentDialogTitle"),className:"bpb-scope",children:s.jsxs("div",{className:"bpb-payment-dialog",children:[s.jsx("h2",{className:"bpb-payment-dialog__title",children:d("paymentDialogTitle")}),c.isError?s.jsxs("div",{className:"bpb-payment-dialog__error",children:[s.jsx("p",{children:d("paymentSessionError")}),s.jsx(pe,{variant:"outline",onClick:()=>p(),children:d("tryAgain")})]}):!g||!u?s.jsxs("div",{className:"bpb-payment-dialog__loading","aria-busy":"true",children:[s.jsx(ue,{height:48}),s.jsx(ue,{height:120})]}):s.jsx(je.Elements,{stripe:n,options:g,children:s.jsx(Bc,{clientSecret:u,isDark:r,onSuccess:t})})]})})},Bc=({clientSecret:a,isDark:e,onSuccess:t})=>{var xe;const n=je.useStripe(),r=je.useElements(),{toast:o,analytics:i}=Y(),{t:d}=se(),{data:l,isLoading:c}=Vt(),{data:u,isLoading:p}=xn(),m=Fn(),g=Mn(),_=((xe=l==null?void 0:l.paymentMethod)==null?void 0:xe.card)??null,b=(u==null?void 0:u.address)??null,h=(u==null?void 0:u.taxIds)??[],[k,C]=I.useState(!1),[w,v]=I.useState(!1),[P,N]=I.useState(!1),[A,S]=I.useState(!1),[M,E]=I.useState(null),[L,V]=I.useState(!1),[z,Q]=I.useState(!1),[j,R]=I.useState({}),[q,G]=I.useState(b==null?void 0:b.country),[X,x]=I.useState(h.length>0),[me,B]=I.useState(null),F=me??h.map(D=>({type:D.type,value:D.value})),J=To(q),Z=k||!_,ee=(D,ce)=>B(F.map((ie,Ce)=>Ce===D?{...ie,...ce}:ie)),Ne=()=>{var D;return B([...F,{type:((D=J[0])==null?void 0:D.type)??"",value:""}])},ke=D=>B(F.filter((ce,ie)=>ie!==D)),le=async()=>{if(!n||!r)return;const D=r.getElement(je.CardElement);if(D){S(!0),E(null);try{const{error:ce,setupIntent:ie}=await n.confirmCardSetup(a,{payment_method:{card:D}});if(ce){E(ce.message??d("paymentCardSaveError"));return}if(!(ie!=null&&ie.payment_method)||typeof ie.payment_method!="string"){E(d("paymentMethodMissing"));return}await m.mutateAsync({paymentMethodId:ie.payment_method}),i.capture(Se.PAYMENT_METHOD_UPDATED),o({type:"success",message:d("paymentCardUpdated")}),C(!1),t==null||t()}catch(ce){E(ce instanceof Error&&ce.message?ce.message:d("paymentCardGenericError"))}finally{S(!1)}}},Ie=async()=>{if(!r)return;const D=r.getElement("address");if(!D)return;const{complete:ce,value:ie}=await D.getValue();if(!ce||!ie.address){R({address:d("paymentAddressIncomplete")});return}Q(!0),R({});try{const{address:Ce,name:Oe}=ie,ha=F.filter(Qe=>!!Qe.type&&Qe.value.trim()!=="").map(Qe=>({type:Qe.type,value:Qe.value.trim()}));await g.mutateAsync({address:{lineOne:Ce.line1??"",lineTwo:Ce.line2??void 0,city:Ce.city??"",state:Ce.state??void 0,postalCode:Ce.postal_code??"",country:Ce.country??""},name:(Oe==null?void 0:Oe.trim())||void 0,taxIds:ha}),i.capture(Se.BILLING_ADDRESS_UPDATED),o({type:"success",message:d("paymentDetailsUpdated")}),t==null||t()}catch(Ce){const Oe=Ce instanceof Error?Ce:void 0,ha=No(Oe,d("paymentAddressError"));R(ha),ha.taxId&&x(!0),o({type:"error",message:d("paymentDetailsUpdateError")})}finally{Q(!1)}};return s.jsxs("div",{className:"bpb-payment-dialog__sections",children:[s.jsxs("section",{className:"bpb-payment-dialog__section",children:[s.jsx("h3",{className:"bpb-payment-dialog__section-title",children:d("paymentMethodSection")}),c?s.jsx(ue,{height:56}):Z?s.jsxs("div",{className:"bpb-payment-element",children:[!w&&s.jsx(ue,{height:48}),s.jsx("div",{className:w?"bpb-card-element":"bpb-payment-element--hidden",children:s.jsx(je.CardElement,{options:{style:hr(e),hidePostalCode:!0},onReady:()=>v(!0),onChange:D=>N(D.complete)})}),M&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:M}),s.jsxs("div",{className:"bpb-payment-dialog__section-actions",children:[_&&s.jsx(pe,{variant:"ghost",onClick:()=>C(!1),disabled:A,children:d("cancel")}),s.jsx(pe,{variant:"primary",disabled:!P,loading:A,onClick:le,children:d("paymentSaveCard")})]})]}):s.jsxs("div",{className:"bpb-saved-card",children:[s.jsx(rn,{brand:_.brand}),s.jsxs("span",{className:"bpb-saved-card__number",children:[s.jsx("span",{className:"bpb-saved-card__brand",children:_.brand})," •••• ",_.lastFour]}),s.jsxs("span",{className:"bpb-saved-card__exp",children:[String(_.expMonth).padStart(2,"0"),"/",String(_.expYear).slice(-2)]}),s.jsx("button",{type:"button",className:"bpb-link-button",onClick:()=>C(!0),children:d("paymentReplace")})]})]}),s.jsxs("section",{className:"bpb-payment-dialog__section",children:[s.jsx("h3",{className:"bpb-payment-dialog__section-title",children:d("paymentBillingAddressSection")}),p?s.jsx(ue,{height:72}):s.jsxs("div",{className:"bpb-payment-element",children:[!L&&s.jsx(ue,{height:120}),s.jsx("div",{className:L?void 0:"bpb-payment-element--hidden",children:s.jsx(je.AddressElement,{options:{mode:"billing",display:{name:"full"},defaultValues:b?{name:(u==null?void 0:u.name)??void 0,address:{line1:b.lineOne,line2:b.lineTwo,city:b.city,state:b.state,postal_code:b.postalCode,country:b.country}}:void 0},onReady:()=>V(!0),onChange:D=>G(D.value.address.country||void 0)})}),j.address&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:j.address}),s.jsxs("div",{className:"bpb-tax-section",children:[s.jsxs("button",{type:"button",className:"bpb-tax-toggle","aria-expanded":X,onClick:()=>x(D=>!D),children:[s.jsx(Da,{size:16,className:$("bpb-tax-toggle__chevron",X&&"bpb-tax-toggle__chevron--open")}),d("paymentTaxIds"),h.length>0&&s.jsx("span",{className:"bpb-tax-toggle__count",children:h.length})]}),X&&s.jsxs("div",{className:"bpb-tax",children:[F.length===0&&s.jsx("p",{className:"bpb-tax__empty",children:d("paymentTaxEmpty")}),F.map((D,ce)=>s.jsxs("div",{className:"bpb-tax__row",children:[s.jsxs(vr,{"aria-label":d("paymentTaxIdType"),value:D.type,onChange:ie=>ee(ce,{type:ie.target.value}),children:[s.jsx("option",{value:"",children:d("paymentTaxSelectType")}),J.map(ie=>s.jsx("option",{value:ie.type,children:ie.label},ie.type)),D.type&&!J.some(ie=>ie.type===D.type)&&s.jsx("option",{value:D.type,children:D.type})]}),s.jsx(_n,{placeholder:d("paymentTaxIdNumber"),value:D.value,onChange:ie=>ee(ce,{value:ie.target.value})}),s.jsx("button",{type:"button",className:"bpb-tax__remove","aria-label":d("paymentTaxRemove"),onClick:()=>ke(ce),children:s.jsx(ht,{size:14})})]},ce)),s.jsx("button",{type:"button",className:"bpb-link-button bpb-tax__add",onClick:Ne,children:d("paymentTaxAdd")}),j.taxId&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:j.taxId})]})]}),j.general&&s.jsx("p",{role:"alert",className:"bpb-payment-dialog__field-error",children:j.general}),s.jsx("div",{className:"bpb-payment-dialog__section-actions",children:s.jsx(pe,{variant:"primary",loading:z,onClick:Ie,children:d("paymentSaveBillingDetails")})})]})]})]})},xo=(a,e,t)=>`bpb-dismissed:${a}:${e}:${t}`,Do=()=>new Date().toLocaleDateString("en-CA");function Lo(a,e,t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(xo(a,e,t))===Do()}catch{return!1}}function Fo(a,e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(xo(a,e,t),Do())}catch{}}const Mo=[{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 at(a,e){return e==="bytes"?Ea(a):e==="nano-usd"?`$${(a/Ze).toFixed(2)}`:fe(a)}function Uo(a,e){switch(a){case"conversation_sessions":return e("dashboardConversationsMetric");case"ai_spend":return e("dashboardAiSpend");case"table_rows":return e("dashboardTableRows");case"vector_db_storage":return e("dashboardVectorDb");case"file_storage":return e("dashboardFileStorage");default:return a}}function Cn(a){return a>=90?"critical":a>=75?"warning":"normal"}const zc=rr.NON_RESETTING_BILLING_FEATURE_IDS;function Vc(a){return!zc.includes(a)}function Ot(a){return a?Mo.flatMap(({key:e,label:t,unit:n})=>{const r=a[e];if(!r||r.quota<=0)return[];const o=r.usage??0,i=Math.max(0,Math.min(100,o/r.quota*100));return[{key:e,label:t,unit:n,used:o,quota:r.quota,remaining:Math.max(0,r.quota-o),pct:i,resets:Vc(e)}]}).sort((e,t)=>t.pct-e.pct):[]}const Oo="outgrow-free",jc=.75,qc=5;function Zc(a,e){return a.prices[e]??(e==="month"?a.prices.year:a.prices.month)??null}function Wc(a,e){var r,o;const t=(r=a.prices.month)==null?void 0:r.amount;if(e==="month")return t??null;const n=((o=a.prices.year)==null?void 0:o.amount)??(t===void 0?void 0:t*12);return n===void 0?null:n/12}const Gc=({open:a,onOpenChange:e,onSelectPlan:t,recommendedPlanId:n="team",interval:r="year",planFeatures:o={},featureDescriptions:i,period:d})=>{var j,R;const{isOutdatedBilling:l,analytics:c,scope:u}=Y(),{t:p}=se(),{data:m}=Le(),{data:g}=Be(),{data:_}=Xe(),{data:b}=Fe({enabled:!l}),{data:h}=wa({period:d,enabled:!l}),k=a!==void 0,[C,w]=I.useState(!1),v=g==null?void 0:g.find(q=>q.id===(b==null?void 0:b.plan.current.planId)),P=b?v?ve(v)==="community":!0:!1,N=I.useMemo(()=>Ot(h).find(q=>q.key==="conversation_sessions"),[h]),A=!k&&!l&&P&&!!N&&N.pct/100>=jc&&!C&&!Lo(Oo,u,"modal"),S=k?!!a:A;I.useEffect(()=>{S&&c.capture(Se.PLAN_PICKER_VIEWED,{source:k?"outgrow_free":"outgrow_free_auto",interval:r})},[S,k,c]);const M=()=>{k||(Fo(Oo,u,"modal"),w(!0)),e==null||e(!1)},E=I.useMemo(()=>g?g.filter(q=>{const G=ve(q);return G!=="community"&&G!=="enterprise"&&G!=="managed"}).sort((q,G)=>Ia.indexOf(ve(q))-Ia.indexOf(ve(G))):[],[g]),L=((R=(j=g==null?void 0:g.find(q=>ve(q)==="enterprise"))==null?void 0:j.metadata)==null?void 0:R.contact_url)??On;if(m===!1||l||!S)return null;const V=(N==null?void 0:N.quota)??(v==null?void 0:v.features.conversation_sessions)??100,z=(N==null?void 0:N.used)??0,Q=N&&N.pct>0?Math.min(100,Math.max(5,Math.round(N.pct))):0;return s.jsx(Ee,{open:S,onOpenChange:M,size:"xl","aria-label":p("outgrowTitle"),children:s.jsxs("div",{className:"bpb-outgrow",children:[s.jsxs("header",{className:"bpb-outgrow__head",children:[s.jsx("h2",{className:"bpb-outgrow__title",children:p("outgrowTitle")}),s.jsx("p",{className:"bpb-outgrow__lede",children:s.jsx(ot,{i18nKey:"outgrowLede",values:{quota:fe(V)},components:{bold:s.jsx("strong",{})}})})]}),s.jsxs("div",{className:"bpb-outgrow__usage",children:[s.jsx("span",{className:"bpb-outgrow__usage-label",children:p("outgrowSoFar")}),s.jsx("span",{className:"bpb-outgrow__usage-bar",role:"progressbar","aria-valuenow":Q,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("span",{className:"bpb-outgrow__usage-fill",style:{width:`${Q}%`}})}),s.jsx("span",{className:"bpb-outgrow__usage-text",children:s.jsx(ot,{i18nKey:"outgrowUsageText",values:{used:fe(z),quota:fe(V)},components:{bold:s.jsx("strong",{})}})})]}),s.jsx("div",{className:"bpb-outgrow__grid",children:E.map((q,G)=>{const X=ve(q),x=Zc(q,r),me=Wc(q,r),B=X===n||q.id===n,F=q.features.conversation_sessions,J=en(_,q,r),Z=G>0?E[G-1]:void 0,ee=(o[X]??gt[X]).slice(0,qc);return s.jsxs("div",{className:$("bpb-plan-card",B&&"bpb-plan-card--highlighted bpb-glow"),"data-plan-id":q.id,children:[s.jsxs("div",{className:"bpb-plan-card__header",children:[s.jsxs("h3",{className:"bpb-plan-card__name",children:[ye(q.name),B&&s.jsx(Ga,{className:"bpb-plan-card__badge",children:p("upgradeRecommended")})]}),s.jsx("div",{className:"bpb-plan-card__price",children:me!==null&&x?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"bpb-plan-card__currency",children:ut(x.currency)}),s.jsx("span",{className:"bpb-plan-card__amount",children:Number.isInteger(me)?me:me.toFixed(2).replace(/\.00$/,"")}),s.jsx("span",{className:"bpb-plan-card__per",children:p("perMonth")})]}):s.jsxs("span",{className:"bpb-plan-card__amount",children:[ut((x==null?void 0:x.currency)??"usd"),"0"]})})]}),F!==void 0&&s.jsxs("div",{className:"bpb-outgrow__allowance",children:[s.jsxs("p",{className:"bpb-outgrow__allowance-value",children:[s.jsxs("strong",{children:[fe(F)," ",p("conversationsUnit")]})," ",p("perMonth")]}),s.jsx("p",{className:"bpb-outgrow__allowance-pack",children:J?p("outgrowThenPer",{symbol:ut(J.currency),amount:J.amount,packSize:fe(J.packSize)}):p("outgrowNoTopup")})]}),s.jsxs(pe,{variant:B?"accent":"outline",block:!0,onClick:()=>{c.capture(Se.PLAN_UPGRADE_INITIATED,{plan_name:ye(q.name),interval:r,source:"outgrow_free"}),t(q.id,r),M()},children:[p("outgrowUpgradeTo",{planName:ye(q.name)}),B&&s.jsx(tr,{size:15})]}),s.jsxs("ul",{className:"bpb-plan-card__features",children:[Z&&s.jsx("li",{className:"bpb-outgrow__features-lead",children:p("outgrowEverythingIn",{planName:ye(Z.name)})}),ee.map(Ne=>{const ke=sn(Ne),le=mt[Ne],Ie=le!==void 0?p(le.label):Ne,xe=(i==null?void 0:i[Ne])??(le!==void 0?p(le.desc):void 0);return s.jsxs("li",{children:[s.jsx("span",{className:"bpb-plan-card__feature-chip",children:s.jsx(ke,{size:13})}),xe?s.jsx(Ut,{label:Ie,children:xe}):s.jsx("span",{children:Ie})]},Ne)})]})]},q.id)})}),s.jsxs("footer",{className:"bpb-outgrow__footer",children:[s.jsxs("span",{children:[p("outgrowNeedCustom")," ",s.jsx("a",{href:L,target:"_blank",rel:"noopener noreferrer",children:p("outgrowTalkToSales")})]}),s.jsxs("a",{className:"bpb-outgrow__compare",href:"https://botpress.com/pricing",target:"_blank",rel:"noopener noreferrer",children:[p("outgrowCompareAll"),s.jsx(bt,{size:14})]})]})]})})},ze=(a,e)=>e==="bytes"?Ea(a):e==="nano-usd"?`$${(a/Ze).toFixed(2)}`:fe(a),Kc=(a,e)=>{const t=new Date;return Array.from({length:a},(n,r)=>{const o=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()-r,1));return{value:o.toISOString(),label:o.toLocaleDateString(e,{month:"long",year:"numeric",timeZone:"UTC"})}})},$c=({period:a})=>{const{data:e,isLoading:t,isError:n}=xr("ai_spend",{period:a}),{t:r}=se();if(n)return null;if(t)return s.jsx(ue,{height:96});if(!e||e.length===0)return s.jsx("p",{className:"bpb-usage__group-hint",children:r("dashboardNoBotSpend")});const o=Math.max(...e.map(i=>i.value),1);return s.jsx("div",{className:"bpb-usage-bots",children:e.map(i=>s.jsxs("div",{className:"bpb-usage-bot",children:[s.jsxs("div",{className:"bpb-usage-bot__head",children:[s.jsx("span",{className:"bpb-usage-bot__name",title:i.name,children:i.name}),s.jsx("span",{className:"bpb-usage-bot__value",children:ze(i.value,"nano-usd")})]}),s.jsx("div",{className:"bpb-usage-bar",role:"presentation",children:s.jsx("div",{className:"bpb-usage-bar__fill bpb-usage-bar__fill--normal",style:{width:`${i.value>0?Math.max(2,Math.round(i.value/o*100)):0}%`}})})]},i.botId))})},Hc=()=>{const{data:a,isError:e,isFetchNextPageError:t,isFetching:n,refetch:r,hasNextPage:o,isFetchingNextPage:i,fetchNextPage:d}=Xo(),{locale:l}=Y(),{t:c}=se(),u=(a==null?void 0:a.pages.flatMap(p=>p.creditGrants))??[];return e&&u.length===0?s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:c("dashboardCreditsTitle")}),s.jsxs("div",{className:"bpb-usage__card bpb-usage__card--error",role:"alert",children:[s.jsx("span",{className:"bpb-usage__card-error-icon","aria-hidden":"true",children:s.jsx(Ka,{size:18})}),s.jsx("span",{className:"bpb-usage__card-error-text",children:c("dashboardCreditsLoadError")}),s.jsx(pe,{variant:"outline",onClick:()=>r(),loading:n,children:c("tryAgain")})]})]}):u.length===0?null:s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:c("dashboardCreditsTitle")}),s.jsx("p",{className:"bpb-usage__group-hint",children:c("dashboardCreditsHint")}),s.jsxs("div",{className:"bpb-usage__legend",children:[s.jsxs("span",{className:"bpb-usage__legend-item",children:[s.jsx("span",{className:"bpb-usage__legend-dot bpb-usage-bar__fill--past"}),c("dashboardCreditsPastUsage")]}),s.jsxs("span",{className:"bpb-usage__legend-item",children:[s.jsx("span",{className:"bpb-usage__legend-dot bpb-usage-bar__fill--current"}),c("dashboardCreditsCurrentUsage")]})]}),s.jsxs("div",{className:"bpb-usage__card",children:[u.map(p=>{const m=Math.min(p.amount,Math.max(0,p.amount-p.remaining_amount)),g=Math.min(p.amount-m,Math.max(0,p.current_period_usage)),_=m+g,b=k=>p.amount>0?k/p.amount*100:0,h=Math.round(b(_));return s.jsxs("div",{className:"bpb-usage-row",children:[s.jsxs("div",{className:"bpb-usage-row__head",children:[s.jsxs("dl",{className:"bpb-usage-grant__dates",children:[s.jsx("dt",{children:c("dashboardCreditsStarts")}),s.jsx("dd",{children:Ue(p.period_start,l)}),s.jsx("dt",{children:c("dashboardCreditsExpires")}),s.jsx("dd",{children:Ue(p.period_end,l)})]}),s.jsxs("span",{className:"bpb-usage-row__value",children:[s.jsx("span",{className:"bpb-usage-row__used",children:ze(_<p.amount?_:p.amount,"nano-usd")}),s.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",ze(p.amount,"nano-usd")]})]})]}),s.jsxs("div",{className:"bpb-usage-bar",role:"progressbar","aria-valuenow":h,"aria-valuemin":0,"aria-valuemax":100,children:[s.jsx("div",{className:"bpb-usage-bar__fill bpb-usage-bar__fill--past",style:{width:`${b(m)}%`},title:`${c("dashboardCreditsPastUsage")}: ${ze(m,"nano-usd")}`}),s.jsx("div",{className:"bpb-usage-bar__fill bpb-usage-bar__fill--current",style:{width:`${b(g)}%`},title:`${c("dashboardCreditsCurrentUsage")}: ${ze(g,"nano-usd")}`})]})]},p.id)}),t&&s.jsx("p",{className:"bpb-usage__error",role:"alert",children:c("dashboardCreditsLoadError")}),o&&s.jsx(pe,{variant:"ghost",onClick:()=>d(),disabled:i,children:c("dashboardCreditsShowMore")})]})]})},_r=({entry:a,metric:e,planAllowance:t,planName:n,stacked:r})=>{const{t:o}=se(),i=a.quota>0?Math.min(a.usage??0,a.quota):a.usage??0,d=a.quota>0?Math.max(0,Math.min(100,Math.round(i/a.quota*100))):0,l=d>0?Math.max(5,d):0,c=d>=90?"critical":d>=75?"warning":"normal",u=t??a.quota,p=Math.max(0,a.quota-u),m=p>0?n?o("dashboardFromPlanWithAddons",{amount:ze(u,e.unit),planName:n,addonAmount:ze(p,e.unit)}):o("dashboardFromPlanGenericWithAddons",{amount:ze(u,e.unit),addonAmount:ze(p,e.unit)}):n?o("dashboardFromPlan",{amount:ze(a.quota,e.unit),planName:n}):o("dashboardFromPlanGeneric",{amount:ze(a.quota,e.unit)});return s.jsxs("div",{className:"bpb-usage-row",children:[s.jsxs("div",{className:$("bpb-usage-row__head",r&&"bpb-usage-row__head--stacked"),children:[s.jsx("span",{className:"bpb-usage-row__label",children:e.label}),s.jsxs("span",{className:"bpb-usage-row__value",children:[s.jsx("span",{className:"bpb-usage-row__used",children:ze(i,e.unit)}),s.jsxs("span",{className:"bpb-usage-row__quota",children:[" / ",ze(a.quota,e.unit)]})]})]}),s.jsxs("span",{className:"bpb-usage-tip",tabIndex:0,role:"note","aria-label":m,onMouseMove:g=>{const _=g.currentTarget.getBoundingClientRect(),b=(g.clientX-_.left)/_.width*100;g.currentTarget.style.setProperty("--bpb-tip-x",`${b}%`)},children:[s.jsx("div",{className:"bpb-usage-bar",role:"progressbar","aria-valuenow":d,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("div",{className:$("bpb-usage-bar__fill",`bpb-usage-bar__fill--${c}`),style:{width:`${l}%`}})}),s.jsx("span",{className:"bpb-usage-tip__bubble",role:"tooltip",children:m})]})]})},Rc=({period:a,showPeriodSelector:e=!0,periodMonths:t=12,className:n,onIncreaseLimits:r})=>{var V;const{isOutdatedBilling:o,locale:i}=Y(),{t:d}=se(),l=I.useMemo(()=>Kc(t,i),[t,i]),[c,u]=I.useState(a??((V=l[0])==null?void 0:V.value)??""),p=Dr(),m=Math.max(0,l.findIndex(z=>z.value===c)),g=z=>{const Q=l[m+z];Q&&u(Q.value)},{data:_,isLoading:b,isError:h}=wa({period:c,enabled:!o}),{data:k}=Fe({enabled:!o}),{data:C}=Be(),w=C==null?void 0:C.find(z=>z.id===(k==null?void 0:k.plan.current.planId)),v=w?ye(w.name):void 0,P=w?ve(w):"community",N=P==="enterprise"||P==="managed",A=z=>w==null?void 0:w.features[z];if(o)return s.jsx("div",{className:$("bpb-usage bpb-scope",n),children:s.jsx(ga,{})});if(b)return s.jsxs("div",{className:$("bpb-usage bpb-scope",n),"aria-busy":"true",children:[s.jsx(ue,{height:80}),s.jsx(ue,{height:140})]});if(h||!_)return s.jsx("div",{className:$("bpb-usage bpb-scope",n),children:s.jsx("p",{className:"bpb-usage__error",role:"alert",children:d("dashboardLoadError")})});const S=_.conversation_sessions,M=_.ai_spend,L=[{key:"table_rows",label:d("dashboardTableRows"),unit:"count"},{key:"vector_db_storage",label:d("dashboardVectorDb"),unit:"bytes"},{key:"file_storage",label:d("dashboardFileStorage"),unit:"bytes"}].filter(z=>_[z.key]);return s.jsxs("div",{className:$("bpb-usage bpb-scope",n),children:[N&&s.jsx("p",{className:"bpb-usage__enterprise-note",children:d("dashboardEnterpriseUsageNotice")}),(e&&l.length>1||r)&&s.jsxs("div",{className:"bpb-usage__header",children:[e&&l.length>1&&s.jsxs("div",{className:"bpb-usage__period",children:[s.jsx("span",{className:"bpb-usage__period-label",children:d("dashboardBillingPeriod")}),s.jsxs("div",{className:"bpb-usage__period-control",children:[s.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":d("dashboardPrevMonth"),onClick:()=>g(1),disabled:m>=l.length-1,children:s.jsx(er,{size:15})}),s.jsxs("span",{className:"bpb-usage__period-field",children:[s.jsx(Hs,{size:15,className:"bpb-usage__period-icon"}),s.jsx("select",{className:"bpb-usage__period-select","aria-label":d("dashboardBillingPeriod"),value:c,onChange:z=>u(z.target.value),children:l.map(z=>s.jsx("option",{value:z.value,children:z.label},z.value))}),s.jsx(Da,{size:14,className:"bpb-usage__period-chevron"})]}),s.jsx("button",{type:"button",className:"bpb-usage__period-step","aria-label":d("dashboardNextMonth"),onClick:()=>g(-1),disabled:m<=0,children:s.jsx(ta,{size:15})})]})]}),r&&s.jsxs(pe,{onClick:r,children:[s.jsx(ar,{size:15}),d("dashboardIncreaseLimits")]})]}),S&&s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:d("dashboardConversationsTitle")}),s.jsx("p",{className:"bpb-usage__group-hint",children:d("dashboardConversationsHint")}),s.jsx("div",{className:"bpb-usage__card",children:s.jsx(_r,{entry:S,metric:{key:"conversation_sessions",label:d("dashboardConversationsMetric"),unit:"count"},planAllowance:A("conversation_sessions"),planName:v,stacked:!0})})]}),L.length>0&&s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:d("dashboardStorageTitle")}),s.jsx("p",{className:"bpb-usage__group-hint",children:d("dashboardStorageHint")}),s.jsx("div",{className:"bpb-usage__card",children:L.map(z=>s.jsx(_r,{entry:_[z.key],metric:z,planAllowance:A(z.key),planName:v},z.key))})]}),M&&s.jsxs("section",{className:"bpb-usage__group",children:[s.jsx("h3",{className:"bpb-usage__group-title",children:d("dashboardAiTitle")}),s.jsx("p",{className:"bpb-usage__group-hint",children:d("dashboardAiHint")}),s.jsx("div",{className:"bpb-usage__card",children:s.jsx(_r,{entry:M,metric:{key:"ai_spend",label:d("dashboardAiSpend"),unit:"nano-usd"},stacked:!0})}),p&&s.jsxs("div",{className:"bpb-usage__card bpb-usage__card--bots",children:[s.jsx("span",{className:"bpb-usage__subhead",children:d("dashboardAiByBot")}),s.jsx($c,{period:c})]})]}),s.jsx(Hc,{})]})},Bo="usage-banner",Yc=({position:a="inline",threshold:e=.9,onUpgrade:t,dismissible:n=!0,cta:r="upgrade",ctaLabel:o,period:i,className:d})=>{const{isOutdatedBilling:l,analytics:c,scope:u}=Y(),{t:p}=se(),{data:m}=wa({period:i,enabled:!l}),[g,_]=I.useState({}),[b,h]=I.useState(!1),[k,C]=I.useState(null),w=m?Object.entries(m).map(([L,V])=>({key:L,pct:V.quota>0?(V.usage??0)/V.quota:0})).filter(L=>L.pct>=e).sort((L,V)=>V.pct-L.pct)[0]:void 0,v=!!w&&(g[w.key]||Lo(Bo,u,w.key));if(l||!w||v)return null;const N={conversation_sessions:p("metricConversations"),table_rows:p("metricTableRows"),vector_db_storage:p("metricVectorDb"),file_storage:p("metricFileStorage"),ai_spend:p("metricAiSpend"),bot_count:p("metricBotCount")}[w.key]??w.key.replace(/_/g," "),A=Math.min(100,Math.round(w.pct*100)),S=w.pct>=1,M=()=>{c.capture(Se.UPGRADE_CTA_CLICKED,{source:"usage_banner",metric:w.key,usage_pct:Math.round(w.pct*100)}),t?t():h(!0)},E=S?"critical":"warning";return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:$("bpb-usage-banner bpb-scope",`bpb-usage-banner--${a}`,`bpb-usage-banner--${E}`,d),role:"alert","aria-live":"polite",children:[s.jsx(Ka,{size:18,className:"bpb-usage-banner__icon"}),s.jsx("p",{className:"bpb-usage-banner__text",children:S?p("usageBannerLimitReached",{label:N}):p("usageBannerNearLimit",{pct:A,label:N})}),s.jsxs("div",{className:"bpb-usage-banner__actions",children:[s.jsx(pe,{variant:"primary",size:"sm",onClick:M,children:o??p(r==="manage"?"usageBannerManageCta":"usageBannerDefaultCta")}),n&&s.jsx("button",{type:"button",className:"bpb-usage-banner__dismiss","aria-label":p("usageBannerDismiss"),onClick:()=>{Fo(Bo,u,w.key),_(L=>({...L,[w.key]:!0}))},children:s.jsx(ht,{size:16})})]})]}),!t&&s.jsxs(s.Fragment,{children:[s.jsx(Co,{open:b,onOpenChange:h,onSelectPlan:(L,V)=>{h(!1),C({planId:L,interval:V})}}),k&&s.jsx(Io,{open:!!k,onOpenChange:L=>!L&&C(null),planId:k.planId,interval:k.interval,onBack:()=>{C(null),h(!0)},onSuccess:()=>C(null)})]})]})},Jc=({Icon:a,title:e,description:t,onClick:n,className:r})=>s.jsxs("button",{type:"button",className:$("bpb-action-card bpb-scope",r),onClick:n,children:[s.jsxs("div",{className:"bpb-action-card__header",children:[s.jsx(a,{size:20}),e]}),s.jsx("p",{className:"bpb-action-card__description",children:t})]}),Bt=({children:a})=>s.jsx("span",{className:"bpb-summary-card__icon","aria-hidden":"true",children:a}),zo=({isAddons:a,className:e})=>{const{manageBillingUrl:t}=Y(),{t:n}=se(),r=()=>t&&window.open(t,"_blank","noopener");return s.jsxs("button",{type:"button",className:$("bpb-summary-card bpb-scope",a?"bpb-summary-card--addons":"bpb-summary-card--plan",e),onClick:r,disabled:!t,children:[s.jsx(Bt,{children:a?s.jsx(nn,{size:22}):s.jsx(tn,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n(a?"summaryAddonsEyebrow":"summaryCurrentPlan")}),s.jsx("span",{className:"bpb-summary-card__title",children:n("summaryManagedInDashboard")}),s.jsx("span",{className:"bpb-summary-card__meta",children:n("summaryManagedMeta")})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("open"),s.jsx(bt,{size:15})]})]})]})},Qc=({onManage:a,className:e})=>{var h,k;const{isOutdatedBilling:t}=Y(),{t:n}=se(),{data:r}=Le(),{data:o,isLoading:i}=Fe({enabled:!t}),{data:d,isLoading:l}=Be();if(r===!1)return null;if(t)return s.jsx(zo,{isAddons:!1,className:e});if(i||l)return s.jsx(ue,{height:84,rounded:!0,className:$("bpb-scope",e)});const c=o==null?void 0:o.plan.current,u=d==null?void 0:d.find(C=>C.id===(c==null?void 0:c.planId)),p=(c==null?void 0:c.interval)??"month",m=((h=u==null?void 0:u.prices[p])==null?void 0:h.amount)??0,g=((k=u==null?void 0:u.prices[p])==null?void 0:k.currency)??"usd",_=u==null?void 0:u.features.conversation_sessions,b=u?ve(u):"community";return s.jsxs("button",{type:"button",className:$("bpb-summary-card bpb-summary-card--plan bpb-scope",`bpb-summary-card--tier-${b==="managed"?"enterprise":b}`,e),onClick:a,children:[s.jsx(Bt,{children:s.jsx(tn,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("summaryCurrentPlan")}),s.jsx("span",{className:"bpb-summary-card__title",children:u?ye(u.name):n("summaryNoPlan")}),s.jsxs("span",{className:"bpb-summary-card__meta",children:[m>0?`${ne(m,g,0)}${n(p==="year"?"perYear":"perMonth")}`:n("free"),_!==void 0&&` · ${n("summaryConversationsPerMo",{n:fe(_)})}`]})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),s.jsx(ta,{size:16})]})]})]})},Xc=({onManage:a,className:e})=>{var N;const{isOutdatedBilling:t,locale:n}=Y(),{t:r}=se(),{data:o}=Le(),{data:i,isLoading:d}=Fe({enabled:!t}),{data:l,isLoading:c}=Xe(),{data:u}=Be(),p=i==null?void 0:i.plan.current.planId,m=(i==null?void 0:i.plan.current.interval)??"month";if(o===!1)return null;if(t)return s.jsx(zo,{isAddons:!0,className:e});if(d||c)return s.jsx(ue,{height:84,rounded:!0,className:$("bpb-scope",e)});const g=(l??[]).flatMap(A=>{var M;const S=((M=i==null?void 0:i.addons[A.id])==null?void 0:M.current.quantity)??0;return S>0?[{name:He[A.id]?r(He[A.id]):xa(A.name),quantity:S}]:[]}),_=u==null?void 0:u.find(A=>A.id===p),b=A=>_?(l??[]).reduce((S,M)=>{var E;return S+A(M.id)*(((E=pt(M,_,m))==null?void 0:E.amount)??0)},0):0,h=b(A=>{var S;return((S=i==null?void 0:i.addons[A])==null?void 0:S.current.quantity)??0}),k=((N=_==null?void 0:_.prices[m])==null?void 0:N.currency)??"usd",C=Ue(Sc(),n),w=(l??[]).flatMap(A=>{const S=i==null?void 0:i.addons[A.id];return S!=null&&S.next&&S.next.quantity!==S.current.quantity?[S.next.effectiveDate]:[]}).sort()[0],v=b(A=>{var M;const S=i==null?void 0:i.addons[A];return((M=S==null?void 0:S.next)==null?void 0:M.quantity)??(S==null?void 0:S.current.quantity)??0}),P=!!(i!=null&&i.pendingUpgrade);return s.jsxs("button",{type:"button",className:$("bpb-summary-card bpb-summary-card--addons bpb-scope",g.length>0&&"bpb-summary-card--active",e),onClick:a,disabled:P,title:P?r("pendingUpgradeBlocksManageTooltip"):void 0,children:[s.jsx(Bt,{children:s.jsx(nn,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__title",children:r("summaryAddonsEyebrow")}),s.jsx("span",{className:"bpb-summary-card__meta",children:g.length>0?g.map(A=>`${A.quantity}× ${A.name}`).join(" · "):r("summaryNoAddonsMeta")})]}),g.length>0&&h>0&&s.jsxs("span",{className:"bpb-summary-card__price",children:[s.jsxs("span",{className:"bpb-summary-card__price-amount",children:[ne(h,k,0),s.jsx("span",{className:"bpb-summary-card__price-suffix",children:r("perMonth")})]}),w?s.jsx("span",{className:"bpb-summary-card__price-meta",children:r("summaryAddonsUpdates",{amount:`${ne(v,k,0)}${r("perMonth")}`,date:Ue(w,n)})}):C&&s.jsx("span",{className:"bpb-summary-card__price-meta",children:r("planBannerRenews",{date:C})})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[r("manage"),s.jsx(ta,{size:16})]})]})]})},eu=({onManage:a,className:e})=>{const{isOutdatedBilling:t}=Y(),{t:n}=se(),{data:r}=Le(),{data:o,isLoading:i,isError:d}=jt({enabled:!t});if(r===!1||t)return null;if(i)return s.jsx(ue,{height:84,rounded:!0,className:$("bpb-scope",e)});if(d)return s.jsxs("button",{type:"button",className:$("bpb-summary-card bpb-summary-card--auto-recharge bpb-summary-card--error bpb-scope",e),onClick:a,children:[s.jsx(Bt,{children:s.jsx(Ka,{size:20})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__eyebrow",children:n("autoRechargeSummaryEyebrow")}),s.jsx("span",{className:"bpb-summary-card__title",children:n("autoRechargeSummaryLoadError")})]}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),s.jsx(ta,{size:16})]})]})]});const l=o==null?void 0:o.ai_spend,c=(l==null?void 0:l.enabled)??!1,u=Pn(l),p=(l==null?void 0:l.chunkSize)!=null,m=((l==null?void 0:l.chunkSize)??0)/Ze,g=(l==null?void 0:l.maxAmount)!=null,_=((l==null?void 0:l.maxAmount)??0)/Ze,b=p?g?n("autoRechargeSummaryMeta",{amount:ne(m,"usd",0),limit:ne(_,"usd",0)}):n("autoRechargeSummaryMetaNoLimit",{amount:ne(m,"usd",0)}):null;return s.jsxs("button",{type:"button",className:$("bpb-summary-card bpb-summary-card--auto-recharge bpb-scope",c&&"bpb-summary-card--active",e),onClick:a,children:[s.jsx(Bt,{children:s.jsx(an,{size:22})}),s.jsxs("div",{className:"bpb-summary-card__content",children:[s.jsxs("div",{className:"bpb-summary-card__body",children:[s.jsx("span",{className:"bpb-summary-card__title",children:n("autoRechargeSummaryEyebrow")}),b&&s.jsx("span",{className:"bpb-summary-card__meta",children:b})]}),s.jsx(Ga,{variant:c?"success":u?"danger":"neutral",className:"bpb-summary-card__status-badge",children:n(c?"autoRechargeSummaryOn":"autoRechargeSummaryOff")}),s.jsxs("span",{className:"bpb-summary-card__action",children:[n("manage"),s.jsx(ta,{size:16})]})]})]})},au=({onManage:a,className:e})=>{var G,X;const{isOutdatedBilling:t,locale:n,manageBillingUrl:r,analytics:o}=Y(),{t:i}=se(),{data:d}=Le(),{data:l,isLoading:c}=Fe({enabled:!t}),{data:u,isLoading:p}=Be(),{data:m,isLoading:g}=Xe();if(d===!1)return null;if(t){const x=()=>r&&window.open(r,"_blank","noopener");return s.jsxs("button",{type:"button",className:$("bpb-plan-banner bpb-plan-banner--community bpb-scope",e),onClick:x,disabled:!r,children:[s.jsxs("div",{className:"bpb-plan-banner__main",children:[s.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),s.jsx("span",{className:"bpb-plan-banner__name",children:i("planBannerManagedTitle")}),s.jsx("span",{className:"bpb-plan-banner__sub",children:i("planBannerManagedSub")})]}),s.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("open")," ",s.jsx(bt,{size:16})]})]})}if(c||p||g)return s.jsx(ue,{height:132,rounded:!0,className:$("bpb-scope",e)});const _=l==null?void 0:l.plan.current,b=u==null?void 0:u.find(x=>x.id===(_==null?void 0:_.planId)),h=(_==null?void 0:_.interval)??"month",k=((G=b==null?void 0:b.prices[h])==null?void 0:G.currency)??"usd",C=b?ve(b):"community",w=Object.fromEntries(Object.entries((l==null?void 0:l.addons)??{}).map(([x,me])=>{var B;return[x,((B=me.current)==null?void 0:B.quantity)??0]})),v=((X=b==null?void 0:b.prices[h])==null?void 0:X.amount)??0,P=h==="year"?"/yr":"/mo",N=Ms(b,m,w).find(x=>x.key==="conversation_sessions"),A=i(C==="community"?"conversationsUnit":"conversationsPerMonth"),S=C==="enterprise"||C==="managed",M=C!=="community"&&!S,E=!!(l!=null&&l.pendingUpgrade),L=l==null?void 0:l.plan.next,V=L&&L.planId!==(_==null?void 0:_.planId),z=_==null?void 0:_.periodEnd,Q=M&&!V&&z&&!yr(z)?Ue(z,n):null,j=u==null?void 0:u.find(x=>x.id===(L==null?void 0:L.planId)),R=L==null?void 0:L.effectiveDate,q=V&&j&&R?i("planBannerDowngradesTo",{plan:ye(j.name),date:Ue(R,n)}):null;return s.jsxs("button",{type:"button",className:$("bpb-plan-banner",`bpb-plan-banner--${C}`,"bpb-scope",e),onClick:()=>{o.capture(Se.UPGRADE_CTA_CLICKED,{source:"plan_banner",current_tier:C}),a()},disabled:E,title:E?i("pendingUpgradeBlocksManageTooltip"):void 0,children:[s.jsxs("div",{className:"bpb-plan-banner__main",children:[s.jsx("span",{className:"bpb-plan-banner__eyebrow",children:i("planBannerEyebrow")}),s.jsx("span",{className:"bpb-plan-banner__name",children:b?ye(b.name):i("planBannerNoPlan")}),S?s.jsx("span",{className:"bpb-plan-banner__sub",children:N&&N.added>0?s.jsxs(s.Fragment,{children:[i("planBannerCustom")," + ",fe(N.added)," ",A]}):i("planBannerCustomConversations")}):N&&s.jsx("span",{className:"bpb-plan-banner__sub",children:N.added>0?s.jsxs(s.Fragment,{children:[fe(N.base)," + ",fe(N.added)," ",A]}):`${fe(N.total)} ${A}`})]}),s.jsxs("div",{className:"bpb-plan-banner__summary",children:[S?s.jsx("span",{className:"bpb-plan-banner__price",children:i("planBannerCustomPricing")}):s.jsx("span",{className:"bpb-plan-banner__price",children:v>0&&s.jsxs(s.Fragment,{children:[ne(v,k,0),s.jsx("span",{className:"bpb-plan-banner__price-suffix",children:P})]})}),M&&s.jsx("span",{className:"bpb-plan-banner__meta",children:i(h==="year"?"billedAnnually":"billedMonthly")}),Q&&s.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerRenews",{date:Q})}),q&&s.jsx("span",{className:"bpb-plan-banner__meta",children:q}),E&&s.jsx("span",{className:"bpb-plan-banner__meta",children:i("planBannerPendingUpgradeNote")})]}),s.jsxs("span",{className:"bpb-plan-banner__cta",children:[i("planBannerManageCta")," ",s.jsx(ta,{size:16})]})]})},tu=({onManage:a,period:e,variant:t="card",showHealthyEnterprise:n=!1,className:r,style:o})=>{const{isOutdatedBilling:i,locale:d}=Y(),{t:l}=se(),{data:c,isLoading:u}=Fe({enabled:!i}),{data:p,isLoading:m}=Be(),{data:g,isLoading:_}=wa({period:e,enabled:!i});if(i)return null;if(u||m||_)return s.jsx(ue,{height:72,rounded:!0,className:$("bpb-scope",r)});const b=p==null?void 0:p.find(q=>q.id===(c==null?void 0:c.plan.current.planId)),h=b?ve(b):"community",k=h==="enterprise"||h==="managed",C=Ot(g),w=C.find(q=>q.used>q.quota);if(k&&!w&&!n)return null;const v=C.find(q=>q.key==="conversation_sessions"),P=C[0],N=w??(P&&P.key!=="conversation_sessions"&&P.pct>=75?P:v??P),A=N?Math.round(N.pct):0,S=A>0?Math.max(5,A):0,M=N?Cn(N.pct):"normal",E=M!=="normal",L=h==="community",V=!L&&(N!=null&&N.resets)?Ue(ko(e??new Date().toISOString()),d):null;let z=null,Q=null;if(N&&E){const q=at(N.remaining,N.unit);z=l(M==="critical"?"usageWidgetLimitReached":"usageWidgetRunningLow"),k?Q=l("usageWidgetEnterpriseOverQuota"):L&&N.key==="conversation_sessions"?Q=M==="critical"?l("usageWidgetFreeExhausted"):l("usageWidgetFreeLeft",{left:q}):Q=M==="critical"?l("usageWidgetUpgradeToKeepGoing"):l("usageWidgetOnlyLeft",{left:q})}const j=s.jsx(s.Fragment,{children:N?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-plan-usage__head",children:[E&&s.jsx(Ka,{size:16,className:$("bpb-plan-usage__alert",`bpb-plan-usage__alert--${M}`)}),s.jsx("span",{className:"bpb-plan-usage__plan",children:Uo(N.key,l)}),s.jsxs("span",{className:"bpb-plan-usage__count",children:[at(N.used,N.unit)," / ",at(N.quota,N.unit)]}),a&&!E&&s.jsx(ta,{size:15,className:"bpb-plan-usage__chevron"})]}),s.jsx("div",{className:"bpb-plan-usage__bar",role:"progressbar","aria-valuenow":A,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("div",{className:$("bpb-plan-usage__fill",`bpb-plan-usage__fill--${M}`),style:{width:`${S}%`}})}),z?s.jsxs("p",{className:"bpb-plan-usage__status",children:[s.jsxs("strong",{className:$("bpb-plan-usage__status-word",`bpb-plan-usage__status-word--${M}`),children:[z,"."]})," ",Q&&s.jsx("span",{className:"bpb-plan-usage__status-detail",children:Q})]}):V&&s.jsx("span",{className:"bpb-plan-usage__reset",children:l("usageWidgetResets",{date:V})}),a&&E&&!k&&s.jsxs("span",{className:"bpb-plan-usage__cta",children:[l("usageWidgetViewOptions"),s.jsx(tr,{size:14})]})]}):s.jsxs("div",{className:"bpb-plan-usage__head",children:[s.jsx("span",{className:"bpb-plan-usage__plan",children:b?ye(b.name):l("free")}),a&&s.jsx(ta,{size:15,className:"bpb-plan-usage__chevron"})]})}),R=$("bpb-plan-usage bpb-scope",`bpb-plan-usage--${t}`,E&&`bpb-plan-usage--${M}`,a&&"bpb-plan-usage--clickable",r);return a?s.jsx("button",{type:"button",className:R,style:o,onClick:a,children:j}):s.jsx("div",{className:R,style:o,children:j})},Vo=({children:a,delay:e=200,placement:t="top",align:n="center",period:r,onUpgrade:o,block:i=!1,className:d})=>{var q,G;const{isOutdatedBilling:l,locale:c}=Y(),{t:u}=se(),{data:p}=wa({period:r,enabled:!l}),{data:m}=Fe({enabled:!l}),{data:g}=Be(),{data:_}=Xe(),[b,h]=I.useState(!1),k=I.useRef(null),C=()=>{k.current&&(clearTimeout(k.current),k.current=null)};I.useEffect(()=>C,[]);const w=g==null?void 0:g.find(X=>X.id===(m==null?void 0:m.plan.current.planId)),v=w?ve(w):"community",P=Ot(p),N=!l&&P.length>0,A=()=>{N&&(C(),k.current=setTimeout(()=>h(!0),Math.max(0,e)))},S=()=>{C(),h(!1)},M=w?ye(w.name):u("free"),E=v==="community",L=E?P.find(X=>X.key==="conversation_sessions"):void 0,V=E?g==null?void 0:g.find(X=>ve(X)==="plus"):void 0,z=V==null?void 0:V.features.conversation_sessions,Q=(G=(q=Jn(_))==null?void 0:q.increments)==null?void 0:G.conversation_sessions,j=E&&!!o&&!!z&&!!Q,R=Ue(ko(r??new Date().toISOString()),c);return s.jsxs("span",{className:$("bpb-usage-pop bpb-scope",i&&"bpb-usage-pop--block",d),onMouseEnter:A,onMouseLeave:S,onFocus:A,onBlur:S,children:[a,b&&N&&s.jsxs("span",{className:$("bpb-usage-pop__card",`bpb-usage-pop__card--${t}`,`bpb-usage-pop__card--align-${n}`),role:"tooltip",children:[E?s.jsxs("span",{className:"bpb-usage-pop__header",children:[s.jsx("span",{className:"bpb-usage-pop__plan",children:u("usagePopoverFreeTitle")}),L&&s.jsx("span",{className:"bpb-usage-pop__subtitle",children:s.jsx(ot,{i18nKey:"usagePopoverFreeSubtitle",values:{quota:fe(L.quota)},components:{bold:s.jsx("strong",{})}})})]}):s.jsx(s.Fragment,{children:s.jsxs("span",{className:"flex flex-col gap-1 bpb-usage-pop__title",children:[s.jsx("span",{className:"bpb-usage-pop__plan",children:u("usagePopoverPlanName",{planName:M})}),s.jsx("span",{className:"bpb-usage-pop__period",children:u("usagePopoverTitle",{date:R})})]})}),P.map(X=>{const x=X.pct>0?Math.max(5,X.pct):0;return s.jsxs("span",{className:"bpb-usage-pop__item",children:[s.jsxs("span",{className:"bpb-usage-pop__head",children:[s.jsx("span",{className:"bpb-usage-pop__name",children:Uo(X.key,u)}),s.jsxs("span",{className:"bpb-usage-pop__val",children:[at(X.used,X.unit)," / ",at(X.quota,X.unit)]})]}),s.jsx("span",{className:"bpb-usage-pop__bar",children:s.jsx("span",{className:$("bpb-usage-pop__fill",`bpb-usage-pop__fill--${Cn(X.pct)}`),style:{width:`${x}%`}})})]},X.key)}),j&&s.jsx("span",{className:"bpb-usage-pop__nudge",children:s.jsx("span",{className:"bpb-usage-pop__nudge-text",children:s.jsx(ot,{i18nKey:"usagePopoverNudgeText",values:{quota:fe(z??0),packSize:fe(Q??0)},components:{bold:s.jsx("strong",{})}})})})]})]})},nu=({size:a=20,thickness:e=3.5,showLabel:t=!1,onClick:n,popoverDelay:r=200,popoverAlign:o="center",trackColor:i="light",period:d,className:l,...c})=>{const{isOutdatedBilling:u}=Y(),{data:p}=wa({period:d,enabled:!u}),m=Ot(p);if(u||m.length===0)return null;const g=m[0],_=Cn(g.pct),b=g.pct>0?Math.max(5,g.pct):0,h=(a-e)/2,k=2*Math.PI*h,C=k*(1-b/100),w=c["aria-label"]??`${Math.round(g.pct)}% of your ${g.label.toLowerCase()} used`,v=s.jsxs(s.Fragment,{children:[s.jsxs("svg",{className:"bpb-usage-ring__svg",width:a,height:a,viewBox:`0 0 ${a} ${a}`,"aria-hidden":!0,children:[s.jsx("circle",{className:$("bpb-usage-ring__track",`bpb-usage-ring__track--${i}`),cx:a/2,cy:a/2,r:h,fill:"none",strokeWidth:e}),s.jsx("circle",{className:$("bpb-usage-ring__arc",`bpb-usage-ring__arc--${_}`),cx:a/2,cy:a/2,r:h,fill:"none",strokeWidth:e,strokeLinecap:"round",strokeDasharray:k,strokeDashoffset:C,transform:`rotate(-90 ${a/2} ${a/2})`})]}),t&&s.jsxs("span",{className:"bpb-usage-ring__label",children:[Math.round(g.pct),"%"]})]}),P=$("bpb-usage-ring",n&&"bpb-usage-ring--clickable"),N=n?s.jsx("button",{type:"button",className:P,onClick:n,"aria-label":w,children:v}):s.jsx("span",{className:P,tabIndex:0,role:"img","aria-label":w,children:v});return s.jsx(Vo,{delay:r,align:o,period:d,className:l,children:N})},jo=({checked:a,onChange:e,disabled:t,className:n,...r})=>s.jsx("button",{type:"button",role:"switch","aria-checked":a,"aria-label":r["aria-label"],disabled:t,className:$("bpb-switch",a&&"bpb-switch--checked",n),onClick:()=>e(!a),children:s.jsx("span",{className:"bpb-switch__thumb"})}),qo="ai_spend",ru=5,su=1,ou=5,iu=10,du=/^\d+(\.\d{1,2})?$/,Cr=a=>(a??0)/Ze,Sn=a=>Math.round(a*Ze),lu=a=>du.test(a)&&Number(a)>=ru,cu=a=>Number.isInteger(a)&&a>=su,uu=a=>Number.isInteger(a)&&a>=ou,pu=(a,e)=>Number.isInteger(a)&&a>=0&&e>0&&a%e===0,mu=({open:a,onOpenChange:e,onSuccess:t,onUpgrade:n})=>{const{isOutdatedBilling:r}=Y(),{t:o}=se(),{data:i}=Le();return i===!1?null:r?s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":o("aiSpendDialogTitle"),className:"bpb-scope",children:s.jsx(ga,{})}):s.jsx(Ee,{open:a,onOpenChange:e,size:"md","aria-label":o("aiSpendDialogTitle"),className:"bpb-scope",children:s.jsx(yu,{onOpenChange:e,onSuccess:t,onUpgrade:n})})},Nn=({id:a,label:e,value:t,onChange:n,hint:r,invalid:o,disabled:i,step:d,inputMode:l="numeric",action:c})=>s.jsxs("div",{className:"bpb-ai-credits-dialog__row",children:[s.jsxs("div",{className:$("bpb-ai-credits-dialog__panel",c&&"bpb-ai-credits-dialog__panel--buy",o&&"bpb-ai-credits-dialog__panel--invalid"),children:[s.jsxs("div",{children:[s.jsx("label",{className:"bpb-ai-credits-dialog__amount-label",htmlFor:a,children:e}),s.jsxs("div",{className:"bpb-ai-credits-dialog__amount-value",children:[s.jsx("span",{className:"bpb-ai-credits-dialog__currency",children:"$"}),s.jsx("input",{id:a,className:"bpb-ai-credits-dialog__amount-input",type:"number",step:d,inputMode:l,disabled:i,value:t,onChange:u=>n(u.target.value)})]})]}),c]}),s.jsx("span",{className:$("bpb-ai-credits-dialog__hint",o&&"bpb-ai-credits-dialog__hint--error"),children:r})]}),Zo=({label:a,description:e,checked:t,onChange:n,disabled:r})=>s.jsxs("div",{className:"bpb-ai-credits-dialog__panel bpb-ai-credits-dialog__panel--switch",children:[s.jsxs("div",{className:"bpb-ai-credits-dialog__row-text",children:[s.jsx("span",{className:"bpb-ai-credits-dialog__row-label",children:a}),e&&s.jsx("span",{className:"bpb-ai-credits-dialog__row-description",children:e})]}),s.jsx(jo,{"aria-label":a,checked:t,onChange:n,disabled:r})]}),Wo=({open:a,children:e})=>s.jsx("div",{className:$("bpb-ai-credits-dialog__collapse",a&&"bpb-ai-credits-dialog__collapse--open"),children:s.jsx("div",{className:"bpb-ai-credits-dialog__collapse-inner",children:e})}),gu=({onClose:a,onRetry:e})=>{const{t}=se();return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"bpb-ai-credits-dialog__error",role:"alert",children:[s.jsx("span",{className:"bpb-ai-credits-dialog__error-icon","aria-hidden":"true",children:s.jsx(Ka,{size:18})}),s.jsxs("div",{className:"bpb-ai-credits-dialog__error-text",children:[s.jsx("p",{className:"bpb-ai-credits-dialog__error-title",children:t("autoRechargeLoadErrorTitle")}),s.jsx("p",{className:"bpb-ai-credits-dialog__error-body",children:t("autoRechargeLoadError")})]})]}),s.jsxs("div",{className:"bpb-ai-credits-dialog__actions",children:[s.jsx(pe,{variant:"outline",onClick:a,children:t("close")}),s.jsx(pe,{variant:"primary",onClick:e,children:t("tryAgain")})]})]})},hu=({input:a,onInputChange:e,valid:t,showError:n,pending:r,onBuy:o})=>{const{t:i}=se();return s.jsxs("div",{className:"bpb-ai-credits-dialog__buy",children:[s.jsx("h3",{className:"bpb-ai-credits-dialog__section-title",children:i("buyCreditsTitle")}),s.jsx("p",{className:"bpb-ai-credits-dialog__section-description",children:i("buyCreditsDescription")}),s.jsx(Nn,{id:"buy-credits-amount",label:i("buyCreditsAmountLabel"),value:a,onChange:e,hint:i(n?"buyCreditsAmountError":"buyCreditsAmountHint"),invalid:n,disabled:r,step:"0.01",inputMode:"decimal",action:s.jsx(pe,{variant:"primary",disabled:!t,loading:r,onClick:o,children:i("buyCreditsCta")})})]})},bu=({amountDollars:a,savedCard:e,isPending:t,onBack:n,onConfirm:r})=>{const{t:o}=se(),i=ne(a,"usd");return s.jsxs("div",{className:"bpb-ai-credits-dialog__confirm",children:[s.jsx("h3",{className:"bpb-ai-credits-dialog__section-title",children:o("buyConfirmTitle")}),e?s.jsxs("div",{className:"bpb-saved-card bpb-saved-card--readonly",children:[s.jsx(rn,{brand:e.brand}),s.jsxs("span",{className:"bpb-saved-card__number",children:[s.jsx("span",{className:"bpb-saved-card__brand",children:e.brand})," •••• ",e.lastFour]})]}):s.jsx("p",{className:"bpb-ai-credits-dialog__section-description",role:"alert",children:o("buyConfirmNoCard")}),s.jsxs("div",{className:"bpb-ai-credits-dialog__confirm-lines",children:[s.jsxs("div",{className:"bpb-ai-credits-dialog__confirm-line",children:[s.jsx("span",{children:o("buyConfirmItem")}),s.jsx("span",{children:i})]}),s.jsxs("div",{className:"bpb-ai-credits-dialog__confirm-line bpb-ai-credits-dialog__confirm-line--total",children:[s.jsx("span",{children:o("buyConfirmTotal")}),s.jsx("span",{children:i})]})]}),s.jsxs("div",{className:"bpb-ai-credits-dialog__actions",children:[s.jsx(pe,{variant:"outline",onClick:n,disabled:t,children:o("buyConfirmBack")}),s.jsx(pe,{variant:"primary",disabled:!e,loading:t,onClick:r,children:o("buyConfirmCta",{amount:i})})]})]})},fu=({current:a,onClose:e,onSuccess:t})=>{const{toast:n,analytics:r}=Y(),{t:o}=se(),i=Er(),[d,l]=I.useState(null),[c,u]=I.useState(!1),[p,m]=I.useState(!1),[g,_]=I.useState(!1),b=I.useMemo(()=>{const G=(a==null?void 0:a.maxAmount)!=null,x=(a==null?void 0:a.targetType)==="credit_grant"&&(a==null?void 0:a.thresholdType)==="remaining_amount"?a==null?void 0:a.threshold:null;return{enabled:(a==null?void 0:a.enabled)??!1,thresholdInput:x!=null?String(Math.round(Cr(x))):"",chunkInput:(a==null?void 0:a.chunkSize)!=null?String(Math.round(Cr(a.chunkSize))):"",limitInput:(a==null?void 0:a.maxAmount)!=null?String(Math.round(Cr(a.maxAmount))):"",hasLimit:G}},[a]),h=d??b,k=G=>l({...h,...G}),C=Number(h.thresholdInput),w=Number(h.chunkInput),v=Number(h.limitInput),P=h.thresholdInput.trim()!==""&&cu(C),N=uu(w),A=!h.hasLimit||h.limitInput.trim()!==""&&pu(v,w),S=h.enabled!==b.enabled,M=h.thresholdInput!==b.thresholdInput||h.chunkInput!==b.chunkInput||h.limitInput!==b.limitInput||h.hasLimit!==b.hasLimit,E=h.enabled?(S||M)&&P&&N&&A:S,L=()=>{i.mutate({settings:{[qo]:h.enabled?{...S&&{enabled:!0},targetType:"credit_grant",thresholdType:"remaining_amount",threshold:Sn(C),chunkSize:Sn(w),maxAmount:h.hasLimit?Sn(v):null}:{enabled:!1}}},{onSuccess:()=>{n({type:"success",message:o("autoRechargeUpdateSuccess")}),r.capture(Se.AUTO_RECHARGE_UPDATED),l(null),e(),t==null||t()},onError:()=>n({type:"error",message:o("autoRechargeUpdateError")})})},V=c&&!P,z=p&&!N,Q=g&&!A,j=i.isPending,R=ne(w,"usd",0),q=Pn(a);return s.jsxs("div",{className:"bpb-ai-credits-dialog__section",children:[s.jsx("h3",{className:"bpb-ai-credits-dialog__section-title",children:o("autoRechargeTitle")}),s.jsx("p",{className:"bpb-ai-credits-dialog__section-description",children:o("autoRechargeDescription")}),s.jsx(Zo,{label:o("autoRechargeEnableLabel"),checked:h.enabled,onChange:G=>k({enabled:G}),disabled:j||q}),q&&s.jsx("p",{className:"bpb-ai-credits-dialog__hint bpb-ai-credits-dialog__hint--error",role:"alert",children:o("autoRechargePaymentFailed")}),s.jsxs(Wo,{open:h.enabled,children:[s.jsx(Nn,{id:"auto-recharge-threshold",label:o("autoRechargeThresholdLabel"),value:h.thresholdInput,onChange:G=>{k({thresholdInput:G}),u(!0)},hint:o(V?"autoRechargeThresholdError":"autoRechargeThresholdHint"),invalid:V,disabled:j}),s.jsx(Nn,{id:"auto-recharge-chunk",label:o("autoRechargeChunkLabel"),value:h.chunkInput,onChange:G=>{k({chunkInput:G}),m(!0)},hint:o(z?"autoRechargeChunkError":"autoRechargeChunkHint"),invalid:z,disabled:j}),s.jsxs("div",{className:"bpb-ai-credits-dialog__row",children:[s.jsx(Zo,{label:o("autoRechargeSetLimitLabel"),description:o("autoRechargeSetLimitHint"),checked:h.hasLimit,onChange:G=>k({hasLimit:G}),disabled:j}),!h.hasLimit&&s.jsx("span",{className:"bpb-ai-credits-dialog__hint",children:o("autoRechargeNoCapHint")})]}),s.jsx(Wo,{open:h.hasLimit,children:s.jsx(Nn,{id:"auto-recharge-limit",label:o("autoRechargeLimitLabel"),value:h.limitInput,onChange:G=>{k({limitInput:G}),_(!0)},hint:Q?o("autoRechargeLimitError",{amount:R}):o("autoRechargeLimitHint",{amount:R}),invalid:Q,disabled:j})})]}),s.jsxs("div",{className:"bpb-ai-credits-dialog__actions",children:[s.jsx(pe,{variant:"outline",onClick:e,disabled:j,children:o("cancel")}),s.jsx(pe,{variant:"primary",disabled:!E,loading:j,onClick:L,children:o("save")})]})]})},yu=({onOpenChange:a,onSuccess:e,onUpgrade:t})=>{var B;const{toast:n}=Y(),{t:r}=se(),{data:o,isLoading:i,isError:d,refetch:l}=Fe(),{data:c,isLoading:u,isError:p,refetch:m}=Be(),{data:g,isLoading:_,isError:b,refetch:h}=jt(),k=ei(),{data:C}=Vt(),[w,v]=I.useState(!1),[P,N]=I.useState(""),[A,S]=I.useState(String(iu)),[M,E]=I.useState(!1),L=i||u||_,V=d||p||b,z=()=>{l(),m(),h()},Q=c==null?void 0:c.find(F=>F.id===(o==null?void 0:o.plan.current.planId)),j=o?Q?ve(Q)==="community":!0:!1,R=((B=C==null?void 0:C.paymentMethod)==null?void 0:B.card)??null,q=Number(A),G=lu(A),X=()=>{k.mutate({amount:Sn(q),idempotencyKey:P},{onSuccess:()=>{n({type:"success",message:r("buyCreditsSuccess")}),v(!1)},onError:()=>n({type:"error",message:r("buyCreditsError")})})},x=()=>a(!1),me=()=>L?s.jsxs("div",{className:"bpb-ai-credits-dialog__loading","aria-busy":"true",children:[s.jsx(ue,{height:40}),s.jsx(ue,{height:72})]}):V?s.jsx(gu,{onClose:x,onRetry:z}):j?s.jsx(Po,{title:r("autoRechargeRequiresPaidPlanTitle"),body:r("autoRechargeRequiresPaidPlanBody"),ctaLabel:r("autoRechargeUpgradeCta"),onUpgrade:t?()=>{x(),t()}:void 0,onClose:x}):s.jsxs(s.Fragment,{children:[w&&s.jsx(bu,{amountDollars:q,savedCard:R,isPending:k.isPending,onBack:()=>v(!1),onConfirm:X}),s.jsxs("div",{className:$("bpb-ai-credits-dialog__form",w&&"bpb-ai-credits-dialog__form--hidden"),children:[s.jsx(hu,{input:A,onInputChange:F=>{S(F),E(!0)},valid:G,showError:M&&!G,pending:k.isPending,onBuy:()=>{N(crypto.randomUUID()),v(!0)}}),s.jsx(fu,{current:g==null?void 0:g[qo],onClose:x,onSuccess:e})]})]});return s.jsx("div",{className:"bpb-ai-credits-dialog",children:me()})};T.AddonsSummaryCard=Xc,T.AgentsIcon=qs,T.AiCreditsDialog=mu,T.ArrowRightIcon=tr,T.AutoRechargeSummaryCard=eu,T.BILLING_EVENTS=Se,T.Badge=Ga,T.BankIcon=el,T.BillingActionCard=Jc,T.BillingProvider=rd,T.BoltIcon=nn,T.Button=pe,T.CalendarIcon=Hs,T.CancellationSurveyDialog=vo,T.CardBrandBadge=rn,T.CardIcon=Xn,T.ChartIcon=Ws,T.CheckIcon=Os,T.CheckoutDialog=Io,T.ChevronDownIcon=Da,T.ChevronLeftIcon=er,T.ChevronRightIcon=ta,T.CloseIcon=ht,T.DEFAULT_FEATURE_LABELS=xs,T.DEFAULT_PLAN_FEATURES=gt,T.Dialog=Ee,T.DownloadIcon=nr,T.ENTERPRISE_CONTACT_URL=On,T.ExternalLinkIcon=bt,T.GlobeIcon=Gs,T.InboxIcon=zs,T.InfinityIcon=js,T.InfoTooltip=Ut,T.Input=_n,T.InvoicesDialog=Mc,T.LayersIcon=tn,T.LockIcon=al,T.ManageAddonsDialog=Dc,T.MessageIcon=Bs,T.MinusIcon=$s,T.NANO_DOLLARS_PER_DOLLAR=Ze,T.OutdatedBillingGate=ga,T.OutgrowFreeDialog=Gc,T.PLAN_FEATURE_KEYS=mt,T.PLAN_ORDER=Ia,T.PaintIcon=Ks,T.PaymentMethodDialog=Oc,T.PendingUpgradeBanner=Fc,T.PendingUpgradeDialog=Eo,T.PlanBanner=au,T.PlanSummaryCard=Qc,T.PlanUsageWidget=tu,T.PlusIcon=ar,T.PuzzleIcon=Vs,T.ReceiptIcon=nl,T.SegmentedControl=_o,T.Select=vr,T.ShieldIcon=Qn,T.Skeleton=ue,T.SparkleIcon=an,T.Stepper=Ao,T.Switch=jo,T.USAGE_METRICS=Mo,T.UpgradePlanDialog=Co,T.UsageBanner=Yc,T.UsageDashboard=Rc,T.UsagePopover=Vo,T.UsageRing=nu,T.UsersIcon=Zs,T.addDays=Es,T.addonDisplayName=xa,T.addonLimitsPreview=Fs,T.addonPrice=pt,T.billingKeys=he,T.cn=$,T.conversationPackPrice=en,T.conversationsAddon=Jn,T.currencySymbol=ut,T.featureLabel=Qd,T.formatBytes=Ea,T.formatCurrency=ne,T.formatDate=Ue,T.formatDateTime=Ps,T.formatQuantity=fe,T.formatUsage=at,T.getCardElementStyle=hr,T.getStripeAppearance=gr,T.getStripePromise=Ar,T.iconForFeature=sn,T.isLegacyBillingVersion=is,T.planDisplayName=ye,T.planEntitlements=Ms,T.planKind=ve,T.toStripeLocale=br,T.usageItems=Ot,T.usageTier=Cn,T.useAddons=Xe,T.useAutoRechargeSettings=jt,T.useBilling=Y,T.useBillingReadonly=Dn,T.useCancelPendingSubscriptionUpgrade=Ur,T.useCreatePaymentMethodIntent=Ln,T.useCustomer=xn,T.useHasPaymentFailure=Yo,T.useHasPendingUpgrade=st,T.useInvoices=Pr,T.useIsAuthorized=Le,T.usePayInvoice=Mr,T.usePaymentMethod=Vt,T.usePlans=Be,T.useSaveCancellationFeedback=Fr,T.useSetAddons=Lr,T.useSetAutoRechargeSettings=Er,T.useSetCustomer=Mn,T.useSetPaymentMethod=Fn,T.useSetSubscription=Un,T.useSubscription=Fe,T.useSubscriptionPreview=En,T.useSupportsUsageByBot=Dr,T.useUsage=wa,T.useUsageByBot=xr,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
|