PageSourceSearch

https://app.nitrosend.com/assets/AccountBillingPlanModal-DnCxYHZx.js

js nitrosend.com collected 2026-10-05 03:21:47 UTC 43,353 bytes, 1 lines download raw bytes

1import{r as L,w as ie,f as o,z as t,A as a,G as e,K as g,L as ne,E as u,o as De,u as v,I as z,F as c,T as J,D as P,M as K,N as xe,n as Pe,W as oe,U as ve,C as ye,as as ge,am as Ne,b as _e,_ as Te,S as je}from"./vendor-vue-B2Izy6S8.js";import{u as Se,S as be}from"./StripeCardInput-CWf4C89I.js";import{cq as $e,aZ as ae,r as Ie,aF as Ee,c as Oe,ab as Be,b as qe,aU as Ae,t as se,cr as Fe,cs as Ve}from"./main-RJ5YQsI2.js";import{r as ze}from"./CheckIcon-B0m_P6uK.js";import{r as Le}from"./ArrowLeftIcon-BNQuCTBz.js";import{r as Re}from"./EnvelopeIcon-DbEoQaXz.js";import{r as Ue}from"./SparklesIcon-DMh-pCz2.js";import{_ as ke}from"./PaymentIcons-DHCJIBUo.js";import{o as Ze}from"./billingApproval-bWgUh-vM.js";import{r as Ge}from"./UserPlusIcon-BEZadKdq.js";function He({plans:r,currentPlanId:D,subscription:b=null,defaultSelectedPlanId:h=D}){const k=[{value:"month",label:"Monthly"},{value:"year",label:"Annually"}],C=L(!1),m=o(()=>{const p=Array.from(new Set(r.value.map(_=>_.interval).filter(Boolean))),y=k.filter(_=>p.includes(_.value));return y.length?y:[k[0]]}),I=L(null),l=o(()=>r.value.find(p=>String(p.id)===String(D.value))),n=o(()=>h.value||l.value?.id||null),x=L(n.value),f=L(null);ie(m,p=>{if(!p.length||I.value&&p.some(_=>_.value===I.value?.value))return;const y=r.value.find(_=>String(_.id)===String(n.value));I.value=p.find(_=>_.value===y?.interval)||p[0]},{immediate:!0});const B=o(()=>{const p=r.value.filter(y=>y.interval===I.value?.value);return p.length===0&&r.value.length>0?r.value:p}),E=o(()=>B.value.filter(p=>p.tier_group==="enterprise").sort((p,y)=>p.base_price_cents-y.base_price_cents)),T=o(()=>r.value.find(p=>String(p.id)===String(x.value))||l.value),S=o(()=>T.value?.tier_group==="enterprise"),q=o(()=>E.value.length?f.value==="custom"?E.value[0]:E.value.find(p=>String(p.id)===String(f.value))||E.value[0]:null),Q=o(()=>S.value&&f.value==="custom");ie(n,p=>{C.value&&x.value!==null||(x.value=p)},{immediate:!0}),ie([T,l,E],([p,y,_])=>{const W=p?.tier_group==="enterprise"?p.id:y?.tier_group==="enterprise"?y.id:_[0]?.id||null;if(!W||f.value==="custom")return;const R=_.some(F=>String(F.id)===String(f.value));(!f.value||!R)&&(f.value=W)},{immediate:!0});const G=o(()=>S.value?f.value==="custom"?null:f.value||T.value?.id||l.value?.id||E.value[0]?.id||null:x.value||l.value?.id||null),N=o(()=>r.value.find(p=>String(p.id)===String(G.value))||null),Y=o(()=>N.value&&String(N.value.id)!==String(l.value?.id)),j=o(()=>$e(b.value)),le=o(()=>!!N.value&&(!j.value||Y.value));function te(p){C.value=!0,x.value=p;const y=r.value.find(_=>String(_.id)===String(p));y?.tier_group==="enterprise"&&!f.value&&(f.value=y.id||E.value[0]?.id||null)}function H(p){C.value=!0,f.value=p,p!=="custom"&&(x.value=p)}function O(p=n.value){C.value=!1,x.value=p,r.value.find(y=>String(y.id)===String(p))?.tier_group==="enterprise"?f.value=p:f.value!=="custom"&&(f.value=E.value[0]?.id||null)}return{frequencies:m,frequency:I,visiblePlans:B,enterprisePlans:E,currentPlan:l,selectedPlan:T,selectedPlanId:x,selectedEnterprisePlan:q,enterpriseRungId:f,resolvedPlanId:G,resolvedPlan:N,isEnterpriseSelection:S,isCustomEnterprise:Q,billingAmountChanged:Y,hasPaidSubscription:j,enableSubmit:le,selectPlan:te,setEnterpriseRung:H,resetSelection:O}}function We(r){const D=o(()=>r.value?r.value.interval==="month"?"Monthly":"Yearly":""),b=o(()=>r.value?r.value.base_price_cents/100:0),h=o(()=>b.value),k=o(()=>r.value?h.value*(r.value.tax_rate||0):0),C=o(()=>h.value+k.value),m=o(()=>r.value?.email_overage_display||null),I=o(()=>r.value?.ai_overage_display||null);return{intervalLabel:D,planPrice:b,subtotal:h,tax:k,total:C,emailOverageDisplay:m,aiOverageDisplay:I}}const Ye={class:"space-y-2"},Ke=["value"],Je=["value"],Ce={__name:"PlanEnterpriseVolumePicker",props:{rungs:{type:Array,required:!0},modelValue:{type:[String,Number],default:null}},emits:["update:modelValue"],setup(r,{emit:D}){const b=D,h=new Intl.NumberFormat("en-US"),k=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0});function C(l){return h.format(l||0)}function m(l){return k.format((l||0)/100)}function I(l){const n=l.target.value;
1b("update:modelValue",n==="custom"?"custom":Number(n))}return(l,n)=>(t(),a("div",Ye,[n[1]||(n[1]=e("label",{class:"text-xs font-medium uppercase tracking-wider text-muted"}," Email volume ",-1)),e("select",{class:"form-input text-sm",value:r.modelValue,onChange:I},[(t(!0),a(g,null,ne(r.rungs,x=>(t(),a("option",{key:x.id,value:x.id},u(C(x.email_monthly_allowance))+" / mo - "+u(m(x.base_price_cents))+"/mo ",9,Je))),128)),n[0]||(n[0]=e("option",{value:"custom"},"4,000,000+ / mo - Custom",-1))],40,Ke)]))}},Qe={class:"space-y-6"},Xe={key:0,class:"flex justify-center"},et={class:"tab-group tab-group--md"},tt=["onClick"],nt={key:1,class:"space-y-6"},at={key:0,class:"py-10 text-center text-sm text-muted"},lt={key:1,class:"flex flex-wrap items-center gap-3 rounded-lg border border-divider bg-red-50/60 p-4 text-sm text-danger dark:bg-red-950/30"},st={class:"min-w-0 flex-1"},rt={key:2,class:"rounded-lg border border-divider bg-surface-sunken p-4 text-sm text-muted"},ot={class:"card-body !p-6 flex h-full flex-col"},it={class:"flex items-start justify-between gap-3"},ut={class:"text-xs font-semibold uppercase tracking-wider text-brand-500"},dt={class:"mt-2 text-xl font-semibold text-default"},ct={key:0,class:"badge green"},pt={class:"mt-3 text-sm leading-6 text-muted"},mt={class:"mt-5 flex items-end gap-1"},vt={class:"text-4xl font-bold tracking-tight text-default"},ft={key:0,class:"pb-1 text-sm text-muted"},yt={key:0,class:"mt-5"},gt={class:"mt-5 space-y-2 text-sm text-muted"},bt={key:1,class:"mt-5 font-mono text-[10px] uppercase tracking-wider text-subtle"},ht={class:"mt-6 pt-2"},xt=["disabled","onClick"],_t={key:0,class:"mt-2 text-center text-xs text-subtle"},kt={key:4,class:"card divide-y divide-divider"},Ct={class:"min-w-0 flex-1"},wt={class:"flex flex-wrap items-center gap-2"},Pt={class:"text-base font-semibold text-default"},St={key:0,class:"badge green"},$t={class:"mt-1 text-sm text-muted"},It={class:"mt-3 flex flex-wrap gap-x-4 gap-y-2 text-xs text-subtle"},Et={key:0,class:"mt-4 max-w-sm"},Bt={class:"flex flex-col gap-3 lg:min-w-[220px] lg:items-end lg:text-right"},qt={class:"text-2xl font-semibold text-default"},At={key:0,class:"text-xs text-muted"},Rt=["disabled","onClick"],Ut={key:0,class:"text-xs text-subtle lg:text-right"},Mt={key:5,class:"flex flex-wrap items-center justify-end gap-3"},Dt=["disabled"],Nt={key:2,class:"card"},Tt={class:"card-body !p-6 space-y-6"},jt={class:"rounded-2xl bg-surface-sunken p-5"},Ot={class:"flex flex-wrap items-start justify-between gap-4"},Ft={class:"text-xs font-semibold uppercase tracking-wider text-brand-500"},Vt={class:"mt-2 text-xl font-semibold text-default"},zt={class:"mt-2 text-sm text-muted"},Lt={class:"text-right"},Zt={class:"text-3xl font-bold text-default"},Gt={key:0,class:"text-sm text-muted"},Ht={key:0,class:"grid gap-3 md:grid-cols-2"},Wt={class:"flex items-center gap-2 text-xs uppercase tracking-wide text-subtle"},Yt={class:"mt-2 text-lg font-semibold text-default"},Kt={key:1,class:"space-y-2 text-sm text-muted"},Jt={key:0},Qt={key:1},Xt={class:"flex flex-wrap items-center justify-end gap-3"},en={key:0,class:"button brand",href:"mailto:[email protected]"},tn=["disabled"],we="4,000,000+",nn={__name:"PlanPicker",props:{mode:{type:String,default:"cards",validator:r=>["cards","list"].includes(r)},steps:{type:String,default:"select",validator:r=>["select","select-and-confirm","select-and-review"].includes(r)},layout:{type:String,default:"page",validator:r=>["page","modal"].includes(r)},currentPlanId:{type:[String,Number],default:null},defaultSelectedPlanId:{type:[String,Number],default:null},requirement:{type:Object,default:null},allowedTierGroups:{type:Array,default:null}},emits:["select","confirm","cancel"],setup(r,{emit:D}){const b=r,h=D,k=Se(),C=L(!1),m=L(null);async function I(){if(!(k.plans.length||C.value)){C.value=!0,m.value=null;try{await k.fetchData()}catch(s){m.value=s?.response?.data?.message||s?.message||"Failed to load plans"}finally{C.value=!1}}}De(I);const l=o(()=>k.plans||[]),n=He({plans:l,currentPlanId:o(()=>b.currentPlanId),defaultSelectedPlanId:o(()=>b.defaultSelectedPlanId)}),x=L("select"),f=We(n.resolvedPlan),B=["free","pro","ultra","enterprise"],E=o(()=>B.map(s=>s==="enterprise"?n.selectedEnterprisePlan.value:n.visiblePlans.value.find(A=>A.tier_group===s)).filter(s=>s&&(!b.allowedTierGroups||b.allowedTierGroups.includes(s.tier_group)))),T=o(()=>n.frequencies.value.length>1),S=o(()=>n.selectedPlan.value?n.isCustomEnterprise.value?!0:!n.resolvedPlanId.value||!R(n.resolvedPlan.value)?!1:String(n.resolvedPlanId.value)!==String(b.currentPlanId):!1),q=o(()=>n.resolvedPlan.value),Q=o(()=>q.value?[{label:"Emails / month",value:j(q.value),icon:Re},{label:"AI actions",value:le(q.value),icon:Ue},{label:"Domains",value:te(q.value),icon:Ie},{label:"Seats",value:H(q.value),icon:Ee}]:[]);function G(s){return new Intl.NumberFormat("en-US").format(s||0)}function N(s){return s?s.tier_group==="enterprise"?"Enterprise":s.name:""}function Y(s){return s?s.tier_group==="enterprise"&&n.isCustomEnterprise.value?"Enterprise pricing tailored to your monthly volume, infrastru
1cture, and support requirements.":s.description:""}function j(s){return s?s.tier_group==="enterprise"&&n.isCustomEnterprise.value?`${we} emails`:`${G(s.email_monthly_allowance)} emails`:""}function le(s){return s?s.unlimited_ai?"Unlimited":`${G(s.ai_monthly_allowance)} AI actions`:""}function te(s){return s?s.max_domains>0?`${s.max_domains} domain${s.max_domains>1?"s":""}`:"Unlimited domains":""}function H(s){return s?s.max_seats>0?`${s.max_seats} seat${s.max_seats>1?"s":""}`:"Unlimited seats":""}function O(s){if(!s)return[];if(s.tier_group==="enterprise"&&n.isCustomEnterprise.value){const A=Array.isArray(s.features)?[...s.features]:[];if(A.length)return A[0]=`${we} emails/mo`,A}return Array.isArray(s.features)&&s.features.length?s.features:[`${j(s)}/mo`,s.unlimited_ai?"Unlimited AI actions":`${G(s.ai_monthly_allowance)} AI actions/mo`,te(s),H(s)]}function p(s){return s?s.tier_group==="enterprise"&&n.isCustomEnterprise.value?"Custom":ae(s.base_price_cents/100,{trimZeros:!0}):null}function y(s){return s?.interval?`USD / ${s.interval}`:""}function _(s){return s?[`${j(s)}/mo`,s.unlimited_ai?"Unlimited AI":`${G(s.ai_monthly_allowance)} AI/mo`,s.email_overage_display||null,s.ai_overage_display||null].filter(Boolean):[]}function W(s){if(!s||s.tier_group==="enterprise")return null;const A=[s.email_overage_display||null,s.ai_overage_display||null].filter(Boolean);return A.length?A.join(" · "):null}function R(s){if(!b.requirement)return!0;if(!s)return!1;const{field:A,min:i,zeroIsUnlimited:V,unlimitedFlag:me}=b.requirement;if(me&&s[me])return!0;const re=s[A]??0;return typeof re=="boolean"?re:V&&re===0?!0:re>=(i??0)}function F(s){return!b.requirement||R(s)?null:`Doesn't include ${b.requirement.label||"this capability"}`}function Z(s){return ue(s,b.currentPlanId)}function X(s){return ue(s,n.selectedPlanId.value)}function ue(s,A){if(!A)return!1;const i=l.value.find(V=>String(V.id)===String(A));return i?s.tier_group==="enterprise"&&i.tier_group==="enterprise"?!0:String(s.id)===String(i.id):!1}function ee(s){return{source:s,planId:n.resolvedPlanId.value,plan:n.resolvedPlan.value,selectedPlanId:n.selectedPlanId.value,tierGroup:n.selectedPlan.value?.tier_group||n.resolvedPlan.value?.tier_group||null,isCustomEnterprise:n.isCustomEnterprise.value}}function M(s){R(s)&&(n.selectPlan(s.id),h("select",ee("button")))}function U(s){n.setEnterpriseRung(s),h("select",ee("rung"))}function de(s){return Z(s)?b.mode==="cards"?"Current plan":"Current":R(s)?s.tier_group==="enterprise"&&X(s)&&n.isCustomEnterprise.value?"Contact sales":b.mode==="list"?"Upgrade":X(s)?"Selected plan":"Select plan":"Not enough capacity"}function pe(){if(S.value){if(b.steps==="select-and-confirm"&&!n.isCustomEnterprise.value){fe();return}x.value="review"}}function ce(){x.value="select"}function fe(){h("confirm",ee("confirm"))}return(s,A)=>(t(),a("div",Qe,[T.value?(t(),a("div",Xe,[e("div",et,[(t(!0),a(g,null,ne(v(n).frequencies.value,i=>(t(),a("button",{key:i.value,type:"button",class:z(["button secondary sm",{active:v(n).frequency.value?.value===i.value}]),onClick:V=>v(n).frequency.value=i},u(i.label),11,tt))),128))])])):c("",!0),x.value==="select"?(t(),a("div",nt,[C.value&&!l.value.length?(t(),a("div",at," Loading plans... ")):m.value?(t(),a("div",lt,[e("span",st,u(m.value),1),e("button",{type:"button",class:"button sm",onClick:I}," Retry ")])):E.value.length?r.mode==="cards"?(t(),a("div",{key:3,class:z(["grid grid-cols-1",[r.layout==="modal"?"gap-4 sm:grid-cols-2":"gap-5 md:grid-cols-2",E.value.length===3?"lg:grid-cols-3":"lg:grid-cols-4"]])},[(t(!0),a(g,null,ne(E.value,i=>(t(),a("article",{key:i.id,class:z(["card border border-border",{"border-brand-500 ring-2 ring-brand-500/25":X(i),"opacity-60":!R(i)&&!Z(i)}])},[e("div",ot,[e("div",it,[e("div",null,[e("p",ut,u(i.tier_group),1),e("h3",dt,u(N(i)),1)]),Z(i)?(t(),a("span",ct,"Current")):c("",!0)]),e("p",pt,u(Y(i)),1),e("div",mt,[e("span",vt,u(p(i)),1),i.tier_group!=="enterprise"||!v(n).isCustomEnterprise.value?(t(),a("span",ft,u(y(i)),1)):c("",!0)]),i.tier_group==="enterprise"?(t(),a("div",yt,[J(Ce,{rungs:v(n).enterprisePlans.value,"model-value":v(n).enterpriseRungId.value,"onUpdate:modelValue":U},null,8,["rungs","model-value"])])):c("",!0),e("ul",gt,[(t(!0),a(g,null,ne(O(i),V=>(t(),a("li",{key:V,class:"flex items-start gap-2"},[J(v(ze),{class:"mt-0.5 h-4 w-4 text-brand-500"}),e("span",null,u(V),1)]))),128))]),W(i)?(t(),a("div",bt," Overage: "+u(W(i)),1)):c("",!0),e("div",ht,[e("button",{type:"button",class:z(["button w-full",X(i)?"brand":"secondary"]),disabled:!R(i)&&!Z(i),onClick:V=>M(i)},u(de(i)),11,xt),F(i)?(t(),a("p",_t,u(F(i)),1)):c("",!0)])])],2))),128))],2)):(t(),a("div",kt,[(t(!0),a(g,null,ne(E.value,i=>(t(),a("div",{key:i.id,class:z(["card-body flex flex-col gap-4 py-5 lg:flex-row lg:items-center lg:justify-between",{"opacity-60":!R(i)&&!Z(i)}])},[e("div",Ct,[e("div",wt,[e("h3",Pt,u(N(i)),1),Z(i)?(t(),a("span",St,"Current")):c("",!0)]),e("p",$t,u(Y(i)),1),e("div",It,[(t(!0),a(g,null,ne(_(i),V=>(t(),a("span",{key:V},u(V),1))),128))]),i.tier_group==="enterprise"?(t(),a("div",Et,[J(Ce,{rungs:v(n).enterprisePlans.value,"model-value":v(n).enterpriseRungId.value,"onUpdate:modelValue":U},null,8,["rungs","model-value"])])):c("",!0)]),e("div",Bt,[e("div",null,[e("div",qt,u(p(i)),1),i.tier_group!=="enterprise"||!v(n).isCustomEnterprise.value?(t(),a("div",At,u(y(i)),1)):c("",!0)]),e("button",{type:"button",class:z(["button",Z(i)?"secondary":"brand"]),disabled:Z(i)||!R(i),onClick:V=>M(i)},u(de(i)),11,Rt),F(i)?(t(),a("p",Ut,u(F(i)),1)):c("",!0)])],2))),128))])):(t(),a("div",rt," No plans available yet. If this persists, contact support. ")),r.steps==="select-and-review"||r.steps==="select-and-confirm"?(t(),a("div",Mt,[e("button",{type:"button",class:"button secondary",onClick:A[0]||(A[0]=i=>h("cancel"))}," Cancel "),e("button",{type:"button",class:"button brand",disabled:!S.value,onClick:pe},[v(n).isCustomEnterprise.value?(t(),a(g,{key:0},[P(" Review enterprise request ")],64)):(t(),a(g,{key:1},[P("Continue")],64))],8,Dt)])):c("",!0)])):(t(),a("div",Nt,[e("div",Tt,[e("button",{type:"button",class:"text-button brand",onClick:ce},[J(v(Le),{class:"h-4 w-4"}),A[1]||(A[1]=P(" Back to plans ",-1))]),e("div",jt,[e("div",Ot,[e("div",null,[e("p",Ft,u(v(n).isCustomEnterprise.value?"Enterprise custom":q.value?.tier_group||"plan"),1),e("h3",Vt,u(v(n).isCustomEnterprise.value?"Custom Enterprise":q.value?.name),1),e("p",zt,[v(n).isCustomEnterprise.value?(t(),a(g,{key:0},[P(" Tell us your required monthly volume, AI usage needs, and sending infrastru
1cture goals. We will put together the right enterprise tier and rollout path. ")],64)):(t(),a(g,{key:1},[P(u(q.value?.description),1)],64))])]),e("div",Lt,[e("div",Zt,u(v(n).isCustomEnterprise.value?"Custom":p(q.value)),1),v(n).isCustomEnterprise.value?c("",!0):(t(),a("div",Gt,u(y(q.value)),1))])])]),v(n).isCustomEnterprise.value?c("",!0):(t(),a("div",Ht,[(t(!0),a(g,null,ne(Q.value,i=>(t(),a("div",{key:i.label,class:"well px-4 py-4"},[e("div",Wt,[(t(),K(xe(i.icon),{class:"h-4 w-4"})),P(" "+u(i.label),1)]),e("div",Yt,u(i.value),1)]))),128))])),q.value?(t(),a("div",Kt,[v(f).emailOverageDisplay.value?(t(),a("p",Jt,u(v(f).emailOverageDisplay.value),1)):c("",!0),v(f).aiOverageDisplay.value?(t(),a("p",Qt,u(v(f).aiOverageDisplay.value),1)):c("",!0)])):c("",!0),e("div",Xt,[e("button",{type:"button",class:"button secondary",onClick:ce}," Back "),v(n).isCustomEnterprise.value?(t(),a("a",en," Contact sales ")):(t(),a("button",{key:1,type:"button",class:"button brand",disabled:!v(n).resolvedPlanId.value,onClick:fe}," Continue to payment ",8,tn))])])]))]))}},an={key:1,class:"w-full"},ln={class:"flex flex-wrap items-center gap-2"},sn=["value","aria-invalid","aria-describedby","disabled"],rn=["disabled"],on=["disabled"],un={__name:"SubscriptionCouponControl",props:{state:{type:String,required:!0},code:{type:String,default:""},error:{type:String,default:null},rowClass:{type:String,default:"py-3"}},emits:["open","apply","cancel","update:code"],setup(r,{emit:D}){const b=r,h=D,k=L(null),C=`coupon-code-${Math.random().toString(36).slice(2,9)}`,m=`${C}-error`,I=o(()=>["editing","applying","invalid"].includes(b.state)),l=o(()=>b.state==="applying");ie(()=>b.state,async x=>{["editing","invalid"].includes(x)&&(await Pe(),k.value?.focus())});function n(x){h("update:code",x.target.value)}return(x,f)=>(t(),a("div",{class:z(["flex items-center justify-between gap-3",r.rowClass])},[I.value?(t(),a("dt",an,[e("form",{class:"flex flex-col gap-2",onSubmit:f[2]||(f[2]=oe(B=>h("apply"),["prevent"]))},[e("label",{for:C,class:"sr-only"},"Coupon code"),e("div",ln,[e("input",{id:C,ref_key:"input",ref:k,value:r.code,type:"text",class:"input min-w-0 flex-1",autocomplete:"off",spellcheck:"false","aria-label":"Coupon code","aria-invalid":!!r.error,"aria-describedby":r.error?m:void 0,disabled:l.value,onInput:n},null,40,sn),e("button",{type:"submit",class:"button secondary sm",disabled:l.value},u(l.value?"Applying":"Apply"),9,rn),e("button",{type:"button",class:"text-button",disabled:l.value,onClick:f[1]||(f[1]=B=>h("cancel"))}," Cancel ",8,on)]),r.error?(t(),a("p",{key:0,id:m,class:"input-error","aria-live":"polite"},u(r.error),1)):c("",!0)],32)])):(t(),a(g,{key:0},[e("dt",null,[e("button",{type:"button",class:"text-button brand",onClick:f[0]||(f[0]=B=>h("open"))}," Add coupon ")]),f[3]||(f[3]=e("dd",null,null,-1))],64))],2))}},dn={class:"font-medium text-default"},cn={class:"block text-muted"},pn={class:"font-medium text-default"},mn={class:"font-medium text-default"},vn={class:"font-medium text-default"},fn={class:"min-w-0"},yn={class:"font-medium text-default"},gn={key:0,class:"block text-muted"},bn={class:"shrink-0 font-medium text-default"},hn={class:"font-semibold text-brand-600"},he={__name:"SubscriptionPaymentSummary",props:{plan:{type:Object,required:!0},intervalWord:{type:String,required:!0},planPrice:{type:Number,required:!0},subtotalPrice:{type:Number,required:!0},taxPrice:{type:Number,required:!0},totalPrice:{type:Number,required:!0},couponPreview:{type:Object,default:null},couponState:{type:String,default:"hidden"},couponCode:{type:String,default:""},couponError:{type:String,default:null},showCoupon:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},emits:["coupon-open","coupon-apply","coupon-cancel","coupon-remove","update:coupon-code"],setup(r,{emit:D}){const b=r,h=D,k=o(()=>b.compact?"py-3":"py-4"),C=o(()=>b.compact?"mt-3":"mt-4"),m=o(()=>(b.couponPreview?.discount_cents||0)/100);return(I,l)=>(t(),a("div",null,[l[9]||(l[9]=e("h4",{class:"text-sm font-medium text-default"},"Payment summary",-1)),e("dl",{class:z([C.value,"divide-y divide-divider border-y border-border-strong text-sm"])},[e("div",{class:z(["flex items-center justify-between",k.value])},[e("dt",null,[e("span",dn,u(r.plan.name),1),e("span",cn,u(r.intervalWord)+" plan",1)]),e("dd",pn,u(v(ae)(r.planPrice,{trimZeros:!0})),1)],2),e("div",{class:z(["flex items-center justify-between",k.value])},[l[5]||(l[5]=e("dt",{class:"text-muted"},"Subtotal",-1)),e("dd",mn,u(v(ae)(r.subtotalPrice,{trimZeros:!0})),1)],2),r.taxPrice>0?(t(),a("div",{key:0,class:z(["flex items-center justify-between",k.value])},[l[6]||(l[6]=e("dt",{class:"text-muted"},"Tax",-1)),e("dd",vn,u(v(ae)(r.taxPrice,{trimZeros:!0})),1)],2)):c("",!0),r.couponPreview?(t(),a("div",{key:1,class:z(["flex items-center justify-between gap-3",k.value])},[e("dt",fn,[e("span",yn," Coupon "+u(r.couponPreview.code),1),e("button",{type:"button",class:"ml-2 text-xs font-medium text-muted hover:text-foreground",onClick:l[0]||(l[0]=n=>h("coupon-remove"))}," Remove "),r.couponPreview.discount_label?(t(),a("span",gn,u(r.couponPreview.discount_label),1)):c("",!0)]),e("dd",bn," -"+u(v(ae)(m.value,{trimZeros:!0})),1)],2)):r.showCoupon?(t(),K(un,{key:2,state:r.couponState,code:r.couponCode,error:r.couponError,"row-class":k.value,onOpen:l[1]||(l[1]=n=>h("coupon-open")),onApply:l[2]||(l[2]=n=>h("coupon-apply")),onCancel:l[3]||(l[3]=n=>h("coupon-cancel")),"onUpdate:code":l[4]||(l[4]=n=>h("update:coupon-code",n))},null,8,["state","code","error","row-class"])):c("",!0),e("div",{class:z(["flex items-center justify-between",k.value])},[l[8]||(l[8]=e("dt",{class:"font-medium text-default"},"Total due today",-1)),e("dd",hn,[P(u(v(ae)(r.totalPrice,{trimZeros:!0}))+" ",1),l[7]||(l[7]=e("span",{class:"ml-1 text-xs font-normal text-muted"}
1,"USD",-1))])],2)],2)]))}},xn={key:0,class:"alert warning mt-6","data-testid":"provider-billing-unavailable"},_n={key:0,class:"space-y-5"},kn={class:"rounded-lg bg-surface-sunken p-5"},Cn={class:"flex flex-wrap items-start justify-between gap-4"},wn={class:"text-xs font-semibold uppercase tracking-wider text-brand-500"},Pn={class:"mt-2 text-xl font-semibold text-default"},Sn={class:"mt-2 text-sm text-muted"},$n={class:"text-right"},In={class:"text-3xl font-bold text-default"},En={class:"text-sm text-muted"},Bn={class:"grid gap-3 md:grid-cols-2"},qn={class:"flex items-center gap-2 text-xs uppercase tracking-wide text-subtle"},An={class:"mt-2 text-lg font-semibold text-default"},Rn={class:"flex flex-col gap-8"},Un={key:1,class:"rounded-lg border border-border-strong p-4 text-sm"},Mn={key:0,class:"mt-3 flex items-center gap-2 text-muted"},Dn={key:1,class:"mt-3 flex flex-wrap items-center gap-3"},Nn={class:"text-muted"},Tn={key:0,class:"capitalize"},jn={key:1},On={key:2},Fn={class:"font-medium text-default"},Vn={key:2,class:"mt-1 text-muted"},zn={key:3,class:"mt-4"},Ln={class:"mt-4 flex flex-wrap gap-2"},Zn={class:"default-form gap-y-7"},Gn={key:0,class:"text-xs text-muted"},Hn={class:"form-actions"},Wn=["disabled"],Yn={key:0,class:"mr-2 inline h-4 w-4 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},Kn=["disabled"],Jn={key:0,class:"mr-2 inline h-4 w-4 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},Qn={key:0,class:"alert warning","data-testid":"provider-billing-unavailable"},Xn={key:0,class:"space-y-5"},ea={class:"rounded-lg bg-surface-sunken p-5"},ta={class:"flex flex-wrap items-start justify-between gap-4"},na={class:"text-xs font-semibold uppercase tracking-wider text-brand-500"},aa={class:"mt-2 text-xl font-semibold text-default"},la={class:"mt-2 text-sm text-muted"},sa={class:"text-right"},ra={class:"text-3xl font-bold text-default"},oa={class:"text-sm text-muted"},ia={class:"grid gap-3 md:grid-cols-2"},ua={class:"flex items-center gap-2 text-xs uppercase tracking-wide text-subtle"},da={class:"mt-2 text-lg font-semibold text-default"},ca={class:"flex flex-col gap-8"},pa={key:"payment-method",class:"rounded-lg border border-border-strong p-4 text-sm overflow-hidden"},ma={key:0,class:"mt-3 flex items-center gap-2 text-muted"},va={key:1,class:"mt-3 flex flex-wrap items-center gap-3"},fa={class:"text-muted"},ya={key:0,class:"capitalize"},ga={key:1},ba={key:2},ha={class:"font-medium text-default"},xa={key:2,class:"mt-1 text-muted"},_a={key:3,class:"mt-4"},ka={class:"mt-4 flex flex-wrap gap-2"},Ca={class:"default-form gap-y-7"},wa={key:0,class:"text-xs text-muted"},Pa={class:"form-actions"},Sa=["disabled"],$a={key:0,class:"mr-2 inline h-4 w-4 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},Ia=["disabled"],Ea={key:0,class:"mr-2 inline h-4 w-4 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},Ba={__name:"SubscriptionPaymentModal",props:{plan:{type:Object,default:null},embedded:{type:Boolean,default:!1},showPlanDetails:{type:Boolean,default:!1}},emits:["back","completed"],setup(r,{expose:D,emit:b}){const h=Oe(),k=Be(),C=qe(),m=r,I=b,l=_e({submitting:!1,cardComplete:!1,replacingCard:!1,replacementCardComplete:!1,processingPayment:!1}),n=_e({state:"hidden",code:"",appliedCode:"",preview:null,error:null}),x=L(null),f=L(null),B=L(null),E=o(()=>m.plan?.interval==="month"?"Monthly":"Yearly"),T=o(()=>(m.plan?.base_price_cents||0)/100),S=o(()=>Number(m.plan?.base_price_cents||0)===0),q=o(()=>T.value),Q=o(()=>q.value*(m.plan?.tax_rate||0)),G=o(()=>q.value+Q.value),N=o(()=>n.preview?(n.preview.total_after_discount_cents||0)/100:G.value),Y=o(()=>ae(N.value,{trimZeros:!0})),j=o(()=>n.preview&&n.appliedCode?n.appliedCode:null),le=o(()=>m.plan?[{label:"Emails / month",value:`${Z(m.plan.email_monthly_allowance)} emails`,icon:Re},{label:"AI actions",value:m.plan.unlimited_ai?"Unlimited":`${Z(m.plan.ai_monthly_allowance)} AI actions`,icon:Ue},{label:"Domains",value:m.plan.max_domains>0?`${m.plan.max_domains} domain${m.plan.max_domains>1?"s":""}`:"Unlimited domains",icon:Ie},{label:"Seats",value:m.plan.max_seats>0?`${m.plan.max_seats} seat${m.plan.max_seats>1?"s":""}`:"Unlimited seats",icon:Ee}]:[]),te=o(()=>m.embedded&&m.showPlanDetails),H=o(()=>C.stripeBillingReady),O=o(()=>$e(k.subscription)),p=o(()=>h.user?.stripe_card_info),y=o(()=>p.value?.brand),_=o(()=>p.value?.last4),W=o(()=>!S.value&&O.value&&!_.value),R=o(()=>!S.value&&O.value&&(l.replacingCard||W.value)),F=o(()=>!H.value||l.submitting||n.state==="applying"||!m.plan||R.value&&!l.replacementCardComplete||!S.value&&!O.value&&!l.cardComplete);function Z(w){return new Intl.NumberFormat("en-US").format(w||0)}const X=()=>{m.embedded||(ee(),x.value.close())},ue=()=>x.value.open();ie(()=>m.plan?.id,()=>ee());
1function ee(){n.state="hidden",n.code="",n.appliedCode="",n.preview=null,n.error=null}function M(){n.state="editing",n.error=null}function U(w){n.code=w,n.state==="invalid"&&(n.state="editing",n.error=null)}function de(){n.state="hidden",n.code="",n.error=null}function pe(){ee()}async function ce(){const w=n.code.trim();if(!w){n.state="invalid",n.error="Enter a coupon code.";return}n.state="applying",n.error=null;try{const d=await k.previewCoupon({plan_id:m.plan.id,coupon_code:w});n.preview=d,n.appliedCode=w,n.code=d.code||w,n.state="applied"}catch(d){n.preview=null,n.appliedCode="",n.state="invalid",n.error=d.response?.data?.message||"Coupon code could not be applied."}}function fe(){const w={plan_id:m.plan.id};return j.value&&(w.coupon_code=j.value),w}function s(w){const d=w.response?.data?.validation_errors?.coupon_code;return Array.isArray(d)&&d.length>0?d[0]:null}function A(w){const d=s(w);if(!d)return!1;const $=j.value||n.code;return n.preview=null,n.appliedCode="",n.code=$,n.state="invalid",n.error=d,!0}function i(){ee(),I("back")}const V=async()=>{if(!H.value||F.value||!m.plan)return;l.submitting=!0,l.processingPayment=R.value;const w=fe();try{R.value&&await Me();const d=await k.changePlan(w);se.success(`You're now on the ${m.plan.name} plan!`),I("completed",d),X()}catch(d){if(A(d))return;d.handled||se.error("Failed to update your subscription. Please contact support")}finally{l.submitting=!1,l.processingPayment=!1}},me=async()=>{if(!(!H.value||F.value||!S.value&&!f.value)){l.submitting=!0,l.processingPayment=!S.value;try{let w=null;if(!S.value){const $=await f.value.createStripeToken();
1if($.error||!$.token?.id){se.error($.error?.message||"Enter valid card details");return}w=$.token.id}const d=await k.createSubscription({plan_id:m.plan.id,stripe_token:w,...j.value?{coupon_code:j.value}:{}});Fe(d),se.success(`You're now on the ${m.plan.name} plan!`),I("completed",d),X()}catch(w){if(A(w))return;se.error("Failed to create your subscription. Please contact support")}finally{l.submitting=!1,l.processingPayment=!1}}},re=()=>{B.value?.clear?.(),l.replacingCard=!1,l.replacementCardComplete=!1},Me=async()=>{if(!l.replacementCardComplete||!B.value){const d=new Error("incomplete_card");throw d.handled=!0,d}const w=await B.value.createStripeToken();if(w.error||!w.token?.id){se.error(w.error?.message||"Enter valid card details");const d=new Error("invalid_card");throw d.handled=!0,d}await h.updatePaymentMethod({stripe_token:w.token.id})};return D({open:ue,close:X}),(w,d)=>r.embedded?r.plan?(t(),a(g,{key:1},[H.value?(t(),a("div",{key:1,class:z(["grid gap-8",te.value?"lg:grid-cols-[1fr_380px]":"md:grid-cols-2"])},[r.showPlanDetails?(t(),a("div",Xn,[e("button",{type:"button",class:"text-button brand self-start",onClick:i}," Back to plans "),e("div",ea,[e("div",ta,[e("div",null,[e("p",na,u(r.plan.tier_group||"plan"),1),e("h3",aa,u(r.plan.name),1),e("p",la,u(r.plan.description),1)]),e("div",sa,[e("div",ra,u(v(ae)(T.value,{trimZeros:!0})),1),e("div",oa,"USD / "+u(r.plan.interval),1)])])]),e("div",ia,[(t(!0),a(g,null,ne(le.value,$=>(t(),a("div",{key:$.label,class:"rounded-lg border border-border bg-surface px-4 py-4"},[e("div",ua,[(t(),K(xe($.icon),{class:"h-4 w-4"})),P(" "+u($.label),1)]),e("div",da,u($.value),1)]))),128))])])):c("",!0),e("div",ca,[r.showPlanDetails?(t(),K(he,{key:0,plan:r.plan,"interval-word":E.value,"plan-price":T.value,"subtotal-price":q.value,"tax-price":Q.value,"total-price":N.value,"coupon-preview":n.preview,"coupon-state":n.state,"coupon-code":n.code,"coupon-error":n.error,"show-coupon":!S.value,compact:"",onCouponOpen:M,onCouponApply:ce,onCouponCancel:de,onCouponRemove:pe,"onUpdate:couponCode":U},null,8,["plan","interval-word","plan-price","subtotal-price","tax-price","total-price","coupon-preview","coupon-state","coupon-code","coupon-error","show-coupon"])):c("",!0),J(Ne,{name:"collapse-height",mode:"out-in"},{default:ve(()=>[S.value?c("",!0):(t(),a("div",pa,[d[12]||(d[12]=e("p",{class:"font-medium text-default"},"Payment method",-1)),l.submitting?(t(),a("div",ma,[...d[11]||(d[11]=[e("svg",{class:"h-4 w-4 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})],-1),e("span",null,"Processing payment",-1)])])):O.value&&p.value&&_.value?(t(),a("div",va,[y.value?(t(),K(ke,{key:0,class:"h-7 w-auto shrink-0",brand:y.value},null,8,["brand"])):c("",!0),e("p",fa,[y.value?(t(),a("span",ya,u(y.value),1)):c("",!0),y.value&&_.value?(t(),a("span",ga," ending in ")):_.value?(t(),a("span",ba,"Card ending in ")):c("",!0),e("span",ha,u(_.value),1)]),l.replacingCard?c("",!0):(t(),a("button",{key:1,type:"button",class:"ml-auto text-xs font-medium text-muted hover:text-foreground",onClick:d[3]||(d[3]=$=>l.replacingCard=!0)}," Update "))])):(t(),a("p",xa," Enter card details securely below. Link appears in the card field when available for this account. ")),R.value?(t(),a("div",_a,[ye(J(be,{ref_key:"replacementStripeInput",ref:B,label:W.value?"Credit card":"New credit card","billing-route":v(C).billingRoute,onComplete:d[4]||(d[4]=$=>l.replacementCardComplete=$)},null,8,["label","billing-route"]),[[ge,!l.submitting]]),e("div",ka,[_.value?(t(),a("button",{key:0,type:"button",class:"button secondary sm",onClick:oe(re,["prevent"])}," Cancel ")):c("",!0)])])):c("",!0)]))]),_:1}),e("form",Ca,[!S.value&&!O.value?(t(),a(g,{key:0},[ye(J(be,{ref_key:"stripeInput",ref:f,label:"Credit card","billing-route":v(C).billingRoute,onComplete:d[5]||(d[5]=$=>l.cardComplete=$)},null,8,["billing-route"]),[[ge,!l.submitting]]),!l.cardComplete&&!l.submitting?(t(),a("p",wa," Complete the secure card field to continue. ")):c("",!0)],64)):c("",!0),e("div",Pa,[O.value?(t(),a("button",{key:0,t
1ype:"button",class:"button brand xl w-full",disabled:F.value,onClick:oe(V,["prevent"])},[l.submitting?(t(),a("svg",$a,[...d[13]||(d[13]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"},null,-1)])])):c("",!0),S.value?(t(),a(g,{key:1},[P("Change Plan")],64)):l.processingPayment||W.value?(t(),a(g,{key:2},[P(" Pay Securely ")],64)):(t(),a(g,{key:3},[P("Pay Securely")],64))],8,Sa)):(t(),a("button",{key:1,type:"button",class:"button brand xl w-full",disabled:F.value,onClick:oe(me,["prevent"])},[l.submitting?(t(),a("svg",Ea,[...d[14]||(d[14]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"},null,-1)])])):c("",!0),S.value?(t(),a(g,{key:1},[P("Change Plan")],64)):l.processingPayment?(t(),a(g,{key:2},[P("Pay Securely")],64)):(t(),a(g,{key:3},[P("Pay "+u(Y.value),1)],64))],8,Ia))])])])],2)):(t(),a("div",Qn," Open billing from the account's provider-managed surface. "))],64)):c("",!0):(t(),K(Ae,{key:0,class:"default-form-modal subscription-payment-modal",ref_key:"modal",ref:x,size:"4xl"},{title:ve(()=>[...d[6]||(d[6]=[P(" Confirm subscription ",-1)])]),default:ve(()=>[r.plan?(t(),a(g,{key:0},[H.value?(t(),a("div",{key:1,class:z(["mt-6 grid gap-8",te.value?"lg:grid-cols-[1fr_380px]":"md:grid-cols-2"])},[r.showPlanDetails?(t(),a("div",_n,[e("button",{type:"button",class:"text-button brand self-start",onClick:i}," Back to plans "),e("div",kn,[e("div",Cn,[e("div",null,[e("p",wn,u(r.plan.tier_group||"plan"),1),e("h3",Pn,u(r.plan.name),1),e("p",Sn,u(r.plan.description),1)]),e("div",$n,[e("div",In,u(v(ae)(T.value,{trimZeros:!0})),1),e("div",En,"USD / "+u(r.plan.interval),1)])])]),e("div",Bn,[(t(!0),a(g,null,ne(le.value,$=>(t(),a("div",{key:$.label,class:"rounded-lg border border-border bg-surface px-4 py-4"},[e("div",qn,[(t(),K(xe($.icon),{class:"h-4 w-4"})),P(" "+u($.label),1)]),e("div",An,u($.value),1)]))),128))])])):(t(),K(he,{key:1,plan:r.plan,"interval-word":E.value,"plan-price":T.value,"subtotal-price":q.value,"tax-price":Q.value,"total-price":N.value,"coupon-preview":n.preview,"coupon-state":n.state,"coupon-code":n.code,"coupon-error":n.error,"show-coupon":!S.value,onCouponOpen:M,onCouponApply:ce,onCouponCancel:de,onCouponRemove:pe,"onUpdate:couponCode":U},null,8,["plan","interval-word","plan-price","subtotal-price","tax-price","total-price","coupon-preview","coupon-state","coupon-code","coupon-error","show-coupon"])),e("div",Rn,[r.showPlanDetails?(t(),K(he,{key:0,plan:r.plan,"interval-word":E.value,"plan-price":T.value,"subtotal-price":q.value,"tax-price":Q.value,"total-price":N.value,"coupon-preview":n.preview,"coupon-state":n.state,"coupon-code":n.code,"coupon-error":n.error,"show-coupon":!S.value,compact:"",onCouponOpen:M,onCouponApply:ce,onCouponCancel:de,onCouponRemove:pe,"onUpdate:couponCode":U},null,8,["plan","interval-word","plan-price","subtotal-price","tax-price","total-price","coupon-preview","coupon-state","coupon-code","coupon-error","show-coupon"])):c("",!0),S.value?c("",!0):(t(),a("div",Un,[d[8]||(d[8]=e("p",{class:"font-medium text-default"},"Payment method",-1)),l.submitting?(t(),a("div",Mn,[...d[7]||(d[7]=[e("svg",{class:"h-4 w-4 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})],-1),e("span",null,"Processing payment",-1)])])):O.value&&p.value&&_.value?(t(),a("div",Dn,[y.value?(t(),K(ke,{key:0,class:"h-7 w-auto shrink-0",brand:y.value},null,8,["brand"])):c("",!0),e("p",Nn,[y.value?(t(),a("span",Tn,u(y.value),1)):c("",!0),y.value&&_.value?(t(),a("span",jn," ending in ")):_.value?(t(),a("span",On,"Card ending in ")):c("",!0),e("span",Fn,u(_.value),1)]),l.replacingCard?c("",!0):(t(),a("button",{key:1,type:"button",class:"ml-auto text-xs font-medium text-muted hover:text-foreground",onClick:d[0]||(d[0]=$=>l.replacingCard=!0)}," Update "))])):(t(),a("p",Vn," Enter card details securely below. Link appears in the card field when available for this account. ")),R.value?(t(),a("div",zn,[ye(J(be,{ref_key:"replacementStripeIn
1put",ref:B,label:W.value?"Credit card":"New credit card","billing-route":v(C).billingRoute,onComplete:d[1]||(d[1]=$=>l.replacementCardComplete=$)},null,8,["label","billing-route"]),[[ge,!l.submitting]]),e("div",Ln,[_.value?(t(),a("button",{key:0,type:"button",class:"button secondary sm",onClick:oe(re,["prevent"])}," Cancel ")):c("",!0)])])):c("",!0)])),e("form",Zn,[!S.value&&!O.value?(t(),a(g,{key:0},[ye(J(be,{ref_key:"stripeInput",ref:f,label:"Credit card","billing-route":v(C).billingRoute,onComplete:d[2]||(d[2]=$=>l.cardComplete=$)},null,8,["billing-route"]),[[ge,!l.submitting]]),!l.cardComplete&&!l.submitting?(t(),a("p",Gn," Complete the secure card field to continue. ")):c("",!0)],64)):c("",!0),e("div",Hn,[O.value?(t(),a("button",{key:0,type:"button",class:"button brand xl w-full",disabled:F.value,onClick:oe(V,["prevent"])},[l.submitting?(t(),a("svg",Yn,[...d[9]||(d[9]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"},null,-1)])])):c("",!0),S.value?(t(),a(g,{key:1},[P("Change Plan")],64)):l.processingPayment||W.value?(t(),a(g,{key:2},[P(" Pay Securely ")],64)):(t(),a(g,{key:3},[P("Pay Securely")],64))],8,Wn)):(t(),a("button",{key:1,type:"button",class:"button brand xl w-full",disabled:F.value,onClick:oe(me,["prevent"])},[l.submitting?(t(),a("svg",Jn,[...d[10]||(d[10]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"},null,-1)])])):c("",!0),S.value?(t(),a(g,{key:1},[P("Change Plan")],64)):l.processingPayment?(t(),a(g,{key:2},[P("Pay Securely")],64)):(t(),a(g,{key:3},[P("Pay "+u(Y.value),1)],64))],8,Kn))])])])],2)):(t(),a("div",xn," Open billing from the account's provider-managed surface. "))],64)):c("",!0)]),_:1},512))}},qa={class:"space-y-6"},Aa={key:0,class:"alert info"},Ra={key:1,class:"card"},Ua={class:"card-body"},Ma={class:"text-sm text-muted"},Da=["href"],Na={key:1,href:"mailto:[email protected]",class:"button primary mt-4"},Ta={key:2,class:"rounded-xl border border-brand-200 bg-brand-50 p-4 dark:border-brand-800 dark:bg-brand-950/30"},ja={class:"flex items-start gap-3"},Oa={class:"flex-shrink-0"},Ja={__name:"AccountBillingPlanModal",props:{routed:{type:Boolean,default:!0},show:{type:Boolean,default:null},defaultSelectedPlanId:{type:[String,Number],default:null},requirement:{type:Object,default:null}},emits:["close"],setup(r,{expose:D,emit:b}){const h=Te(),k=je(),C=r,m=b,I=Se(),l=Be(),n=qe();I.plans.length||I.fetchData(),l.subscription?.id||l.fetchSubscription();const x=L(null),f=L(null),B=L(null),E=L(0),T=o(()=>l.subscription?.plan_id||null),S=o(()=>I.plans.find(M=>M.tier_group==="free")?.id??null),q=o(()=>n.shopifyMigrationRequired?null:Ve(l.subscription,S.value)),Q=o(()=>l.shopifyBilled),G=o(()=>n.stripeBillingReady),N=o(()=>n.shopifySubscriptionCheckoutReady),Y=o(()=>G.value||N.value),j=o(()=>n.currentAccount?.billing?.access_policy==="paid_required"),le=o(()=>N.value?j.value||n.shopifyMigrationRequired?["pro","ultra"]:["free","pro","ultra"]:j.value?["pro","ultra","enterprise"]:null),te=o(()=>C.defaultSelectedPlanId||T.value),H=o(()=>I.plans.find(M=>String(M.id)===String(B.value))||null),O=o(()=>h.query.context==="add-seats"),p=o(()=>h.query.managed_claim==="payment_required"),y=o(()=>h.query.inviteEmail||null),_=o(()=>h.query.inviteRole||null);ie(()=>C.show,M=>{M&&(E.value+=1,B.value=null)},{immediate:!0}),ie(()=>C.defaultSelectedPlanId,()=>{E.value+=1,B.value=null});function W(){x.value?.open()}function R(){x.value?.close()}function F(){B.value=null,E.value+=1,m("close")}function Z(){if(B.value=null,!y.value){R();return}k.push({name:"my-account-team",query:{inviteEmail:y.value,inviteRole:_.value}})}async function X(M){if(!(!Y.value||!M.planId)){if(N.value){try{const U=await l.checkoutPlan({plan_id:M.planId});if(U.approval&&!Ze(U.approval)){se.error("The Shopify approval page could not be opened.");return}if(U.approval)return;Z()}catch(U){se.error(U?.response?.data?.message||"Shopify billing is temporarily unavailable.")}return}M.isCustomEnterprise||(B.value=M.planId,await Pe(),f.value?.focus())}}function ue(){B.value=null}function ee(){if(p.value){B.value=null,k.replace({name:"my-dashboard"});return}Z()}return D({open:W,close:R}),(M,U)=>(t(),K(Ae,{ref_key:"modal",ref:x,routed:r.routed,show:r.show,size:"7xl",onClose:F},{title:ve(()=>
1[P(u(v(l).hasPaidSubscription?"Change plan":"Choose a plan"),1)]),default:ve(()=>[e("div",qa,[v(n).canManageBilling?Y.value?c("",!0):(t(),a("div",Ra,[e("div",Ua,[e("p",Ma,[v(l).manageUrl?(t(),a(g,{key:0},[P(" This subscription is billed through Shopify. Choose upgrades and downgrades from Shopify's plan page. ")],64)):Q.value?(t(),a(g,{key:1},[P(" Shopify billing is temporarily unavailable. Your current plan has not changed. ")],64)):(t(),a(g,{key:2},[P(" Plan changes are managed through this account's billing provider. ")],64))]),v(l).manageUrl?(t(),a("a",{key:0,href:v(l).manageUrl,target:"_top",rel:"noopener",class:"button brand mt-4"}," Manage plan on Shopify ",8,Da)):(t(),a("a",Na," Contact support about your plan "))])])):(t(),a("div",Aa,[...U[0]||(U[0]=[P(" Only an account owner or admin can change this plan. Ask them to upgrade to increase your sending allowance. ",-1),e("a",{href:"mailto:[email protected]",class:"button secondary mt-3"},"Get help with account access",-1)])])),O.value&&G.value?(t(),a("div",Ta,[e("div",ja,[e("div",Oa,[J(v(Ge),{class:"mt-0.5 h-5 w-5 text-brand-600","aria-hidden":"true"})]),U[1]||(U[1]=e("div",null,[e("h3",{class:"text-sm font-semibold text-brand-900 dark:text-brand-100"}," Upgrade to add team seats "),e("p",{class:"mt-1 text-sm text-brand-700 dark:text-brand-300"}," Paid plans include team seats so you can collaborate with others on campaigns. ")],-1))])])):c("",!0),v(n).canManageBilling&&Y.value&&!H.value?(t(),K(nn,{key:E.value,mode:"cards",steps:"select-and-confirm",layout:"modal","current-plan-id":q.value,"default-selected-plan-id":te.value,requirement:r.requirement,"allowed-tier-groups":le.value,onConfirm:X,onCancel:R},null,8,["current-plan-id","default-selected-plan-id","requirement","allowed-tier-groups"])):v(n).canManageBilling&&G.value?(t(),a("div",{key:4,ref_key:"paymentStep",ref:f,class:"outline-none",tabindex:"-1","aria-live":"polite"},[U[2]||(U[2]=e("h3",{class:"sr-only"},"Confirm subscription",-1)),J(Ba,{plan:H.value,embedded:"","show-plan-details":"",onBack:ue,onCompleted:ee},null,8,["plan"])],512)):c("",!0)])]),_:1},8,["routed","show"]))}};export{Ja as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.