1import{j as e}from"./vendor-motion-C5VlCyLx.js";import{r as a,k as Z,L as A}from"./vendor-router-DYDLAwsF.js";import{u as ee,C as te,Y as F,O as m,a0 as x,G as se,W as b,J as E,Q as g,N as re}from"./index-BmvrsGgJ.js";import{a as ae,b as ie,d as le}from"./billing-CgdTsrTQ.js";import{l as de,g as ne,p as ce}from"./creditPacks-DYaBTYK_.js";try{let r=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},l=new r.Error().stack;l&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[l]="fdc95523-7a7e-44a5-b465-64c997fdd123",r._sentryDebugIdIdentifier="sentry-dbid-fdc95523-7a7e-44a5-b465-64c997fdd123")}catch{}const M="A/B variant testing (coming soon)",y=[{tier:"free",name:"Free",visible:!0,description:"Perfect for trying out AI video generation",features:["Draft quality","10-second clips","720p video output","Basic template (SocialClip)","Watermarked output","Auto-generated captions"]},{tier:"starter",name:"Starter",visible:!0,description:"For creators who publish regularly",features:["All quality tiers (draft, standard, premium)","10-second clips","1080p video output","Voice-over & lip-sync","2 templates","1 retry per video","Publish to Instagram & TikTok"]},{tier:"pro",name:"Pro",visible:!0,description:"For teams and power users",highlighted:!0,features:["All quality tiers + audio","1080p HD video output","All 4 templates","Expression transfer & face swap","3 retries per video","Multiple brand kits + brand memory","Priority generation queue",M]},{tier:"agency",name:"Agency",visible:!1,purchasable:!1,description:"For agencies managing multiple brands",accentColor:"olive",features:["All quality tiers + audio","1080p HD video output","All templates + custom","Full face enhancement suite","5 retries per video","Unlimited brand kits","Priority queue",M,"Multi-shot sequencing"]}];function he(){const r=ee(),l=te(r.facts),[s,j]=a.useState(null),[v,I]=a.useState([]),[u,T]=a.useState(null),[N,$]=a.useState(null),[q,U]=a.useState([]),[d,W]=a.useState(null),[H,R]=a.useState(null),[z,Y]=a.useState(!0),[p,w]=a.useState(!1),[_,k]=a.useState(!1),[C,P]=a.useState(null),[O,h]=a.useState(!1),[V,S]=a.useState(!1),[L]=Z();a.useEffect(()=>{L.get("credit_pack")==="success"&&(S(!0),setTimeout(()=>S(!1),5e3))},[L]),a.useEffect(()=>{(async()=>{try{const[t,i,o,Q,K]=await Promise.all([F(),ae().catch(X=>(T(m(X)??x.invoiceHistoryUnavailable),[])),de().catch(()=>[]),ne().catch(()=>null),se().catch(()=>null)]);j(t),I(i),U(o),W(Q),R(K)}catch(t){$(m(t)??x.planUnavailable),b(t,{code:"subscription_load_failed"})}finally{Y(!1)}})()},[]);const D=async()=>{w(!0);try{const t=await ie();window.location.href=t}catch{g.error(x.billingPortalFailed),w(!1)}},G=async t=>{P(t);try{const{checkout_url:i}=await ce(t);window.location.href=i}catch(i){g.error(m(i)??re.generic),b(i,{code:"credit_pack_checkout_failed",extra:{packId:t}}),P(null)}},J=async()=>{k(!0);try{await le();const t=await F();j(t),h(!1)}catch(t){g.error(m(t)??x.downgradeFailed),b(t,{code:"downgrade_failed"})}finally{k(!1)}};if(z)return e.jsxs("div",{children:[e.jsx("h1",{className:"mb-6 text-2xl font-bold font-display text-text-primary",children:"Subscription"}),e.jsxs("div",{className:"animate-pulse space-y-4",children:[e.jsx("div",{className:"h-48 rounded-xl bg-surface-sunken"}),e.jsx("div",{className:"h-32 rounded-xl bg-surface-sunken"})]})]});const f=y.find(t=>t.tier===(s?.tier||"free"))??y[0],c=H?.balance??null,B=r.facts?.credit_costs?.standard?.["5s"]??null,n=s?.tier&&s.tier!=="free";return e.jsxs("div",{className:"mx-auto max-w-4xl",children:[e.jsx("h1",{className:"mb-6 text-2xl font-bold font-display text-text-primary",children:"Subscription"}),N&&e.jsx("div",{role:"status",className:"mb-6 rounded-xl border border-border-default bg-surface-raised p-4",children:e.jsx("p",{className:"text-sm text-text-secondary",children:N})}),s?.is_trialing&&s.trial_ends_at&&e.jsx("div",{className:"mb-6 rounded-xl border border-olive-300 bg-olive-400/10 p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("svg",{className:"h-5 w-5 text-olive-400",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-olive-400",children:"Free Trial Active"}),e.jsxs("p",{className:"text-sm text-olive-400",children:["Your 7-day free trial ends on ",new Date(s.tri
1al_ends_at).toLocaleDateString()]})]})]})}),s?.is_canceled&&n&&e.jsx("div",{className:"mb-6 rounded-xl border border-crail-200 bg-crail-400/10 p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("svg",{className:"h-5 w-5 text-crail-400",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-crail-400",children:"Cancellation Pending"}),e.jsxs("p",{className:"text-sm text-crail-400",children:["Your plan will end on ",s.period_end?new Date(s.period_end).toLocaleDateString():"the end of the billing period",". You can reactivate via the billing portal."]})]})]}),e.jsx("button",{onClick:D,disabled:p,className:"shrink-0 rounded-lg bg-crail-400 px-3 py-1.5 text-sm font-medium text-text-inverted hover:bg-crail-400 disabled:opacity-50",children:"Reactivate"})]})}),e.jsxs("div",{className:"mb-6 rounded-xl bg-surface-raised p-6 shadow-warm-md",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("h2",{className:"text-lg font-semibold font-display text-text-primary",children:[f.name," Plan"]}),e.jsx("span",{className:"rounded-full bg-primary/15 px-2.5 py-0.5 text-xs font-medium text-primary-hover",children:"Current"})]}),e.jsx("p",{className:"mt-1 text-sm text-text-muted",children:f.description})]}),e.jsxs("div",{className:"text-right",children:[e.jsxs("p",{className:"text-2xl font-bold font-display text-text-primary",children:[(()=>{const t=r.facts?.plans?.[s?.tier??"free"];return t?`$${s?.billing_cycle==="annual"?t.annual_price_usd??t.price_usd:t.price_usd}`:"â"})(),e.jsx("span",{className:"text-sm font-normal text-text-muted",children:"/mo"})]}),n&&s?.billing_cycle&&e.jsxs("p",{className:"text-xs text-text-muted capitalize",children:[s.billing_cycle," billing"]}),n&&s?.period_end&&!s.is_canceled&&e.jsxs("p",{className:"text-xs text-text-muted",children:["Next billing: ",new Date(s.period_end).toLocaleDateString()]})]})]}),e.jsx("div",{className:"mt-4 border-t border-border-default pt-4",children:e.jsx("ul",{className:"grid gap-2 sm:grid-cols-2",children:f.features.map(t=>e.jsxs("li",{className:"flex items-center gap-2 text-sm text-text-muted",children:[e.jsx("svg",{className:"h-4 w-4 shrink-0 text-accent",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),t]},t))})})]}),V&&e.jsx("div",{className:"mb-6 rounded-xl border border-accent bg-accent/10 p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("svg",{className:"h-5 w-5 text-accent",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),e.jsx("p",{className:"font-medium text-accent",children:"Credit pack purchased successfully! Your bonus videos are ready to use."})]})}),e.jsxs("div",{className:"mb-6 rounded-xl bg-surface-raised p-6 shadow-warm-md",children:[e.jsx("h2",{className:"text-lg font-semibold font-display text-text-primary",children:"Credits"}),e.jsxs("div",{className:"mt-4",children:[e.jsxs("div",{className:"flex items-baseline justify-between",children:[e.jsx("p",{className:"text-sm text-text-muted",children:"Credits remaining"}),e.jsx("p",{className:"text-sm font-medium text-text-primary",children:c===null?"â":c.toLocaleString()})]}),c!==null&&B!==null&&e.jsxs("p",{className:"mt-2 text-xs text-text-muted",children:["About ",Math.floor(c/B)," standard 5-second renders. Longer or higher-quality clips cost more."]}),r.unavailable&&e.jsx("p",{className:"mt-2 text-xs text-text-muted",children:"We canât show your balance right now â reload to try again."})]}),s?.max_resolution&&e.jsxs("div",{className:"mt-4 flex items-center justify-between border-t border-border-default pt-4",children:[e.jsx("p",{className:"text-sm text-text-muted",children:"Max resolution"}),e.jsxs("p",{className:"text-sm font-medium text-text-primary",children:[s.max_resolution,"p"]})]})]}),e.jsxs("div",{className:"mb-6 rounded-xl bg-surface-raised p-6 shadow-warm-md",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h2",{className:"text-lg font-semibold font-display text-text-primary",children:"Credit Packs"}),(d?.bonus_videos||0)>0&&e.jsxs("span",{className:"rounded-full bg-primary/15 px-3 py-1 text-sm font-medium text-primary-hover",children:[d?.bonus_videos," bonus video",(d?.bonus_videos||0)!==1?"s":""]})]}),e.jsx("p",{className:"mt-1 text-sm text-text-muted","data-testid":"subscription-packs-subheading",children:l?"Buy extra credits on any plan. Credits never expire.":E.packsNotice}),l&&e.jsx("div",{className:"mt-4 grid gap-4 sm:grid-cols-3",children:q.map(t=>e.jsxs("div",{className:"rounded-lg border border-border-default p-4 text-center",children:[e.jsx("h3",{className:"font-semibold text-text-primary",children:t.name}),e.jsx("p",{className:"mt-1 text-2xl font-bold font-display text-text-primary",children:t.price_display}),e.jsxs("p",{className:"text-sm text-text-primary",children:[t.credits," credits"]}),e.jsxs("p",{className:"text-xs text-text-muted",children:["â ",t.videos," standard clips"]}),e.jsx("button",{onClick:()=>G(t.id),disabled:C===t.id,className:"mt-3 w-full rounded-lg bg-primary text-primary-foreground hover:bg-primary-hover disabled:opacity-50","data-testid":`subscription-pack-buy-${t.id}`,children:C===t.id?"Redirecting...":"Buy Now"})]},t.id))}),d&&d.purchases.length>0&&e.jsxs("div",{className:"mt-6 border-t border-border-default pt-4",children:[e.jsx("h3",{className:"mb-2 text-sm font-medium text-text-primary",children:"Purchase History"}),e.jsx("div",{className:"space-y-2",children:d.purchases.map(t=>e.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-border-default px-3 py-2",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"text-sm font-medium text-text-primary capitalize",children:[t.pack_id," pack"]}),e.jsxs("span",{className:"ml-2 text-xs text-text-muted",children:["+",t.videos_added," videos"]})]}),e.jsxs("div",{className:"text-right",children:[e.jsxs("span",{className:"text-sm font-medium text-text-primary",children:["$",(t.amount_cents/100).toFixed(2)]}),e.jsx("span",{className:"ml-2 text-xs text-text-muted",children:new Date(t.created_at).toLocaleDateString()})]})]},t.id))})]})]}),e.jsxs("div",{className:"mb-8 rounded-xl bg-surface-raised p-6 shadow-warm-md",children:[e.jsx("h2",{className:"mb-4 text-lg font-semibold font-display text-text-primary",children:"Manage Plan"}),e.jsxs("div",{className:"flex flex-wrap gap-3",children:[!n&&l&&e.jsx(A,{to:"/app/pricing",className:"rounded-lg bg-primary text-primary-foreground hover:bg-primary-hover","data-testid":"subscription-upgrade-plan",children:"Upgrade Plan"}),!n&&!l&&e.jsx("p",{className:"text-sm text-text-muted","data-testid":"subscription-upgrade-paused",children:E.upgradeNotice}),n&&e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:D,disabled:p,className:"rounded-lg bg-primary text-primary-foreground hover:bg-primary-hover disabled:opacity-50",children:p?"Opening...":"Manage Billing"}),!s?.is_canceled&&e.jsx(e.Fragment,{children:O?e.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-error bg-error/10 px-4 py-2",children:[e.jsx("span",{className:"text-sm text-error",children:"Are you sure?"}),e.jsx("button",{onClick:J,disabled:_,className:"rounded bg-error text-primary-foreground hover:bg-error disabled:opacity-50",children:_?"...":"Confirm"}),e.jsx("button",{onClick:()=>h(!1),className:"rounded bg-surface-sunken px-3 py-1 text-xs font-medium text-text-primary hover:bg-surface-sunken",children:"Cancel"})]}):e.jsx("button",{onClick:()=>h(!0),className:"rounded-lg border border-border-default px-5 py-2.5 text-sm font-medium text-text-primary hover:bg-surface",children:"Downgrade to Free"})})]})]})]}),u&&e.jsxs("div",{className:"mb-8 rounded-xl bg-surface-raised p-6 shadow-warm-md",children:[e.jsx("h2",{className:"mb-2 text-lg font-semibold font-display text-text-primary",children:"Invoice History"}),e.jsx("p",{className:"text-sm text-text-muted",children:u})]}),!u&&v.length>0&&e.jsxs("div",{className:"mb-8 rounded-xl bg-surface-raised p-6 shadow-warm-md",children:[e.jsx("h2",{className:"mb-4 text-lg font-semibold font-display text-text-primary",children:"Invoice History"}),e.jsx("div",{className:"space-y-2",children:v.map(t=>e.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-border-default px-4 py-3",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-text-primary",children:new Date(t.created*1e3).toLocaleDateString()}),e.jsxs("p",{className:"text-xs text-text-muted",children:["$",(t.amount_paid/100).toFixed(2)," ",t.currency.toUpperCase()]})]}),e.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${t.status==="paid"?"bg-accent/15 text-accent":t.status==="open"?"bg-crail-100 text-crail-500":"bg-surface-sunken text-text-primary"}`,children:t.status})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[t.hosted_invoice_url&&e.jsx("a",{href:t.hosted_invoice_url,target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-primary hover:text-primary-hover",children:"View"}),t.invoice_pdf&&e.jsx("a",{href:t.invoice_pdf,target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-text-muted hover:text-text-primary",children:"PDF"})]})]},t.id))})]}),e.jsxs("div",{className:"rounded-xl bg-surface-raised p-6 shadow-warm-md",children:[e.jsx("h2",{className:"mb-4 text-lg font-semibold font-display text-text-primary",children:"Compare Plans"}),e.jsx("div",{className:"grid gap-4 md:grid-cols-3",children:y.filter(t=>t.visible).map(t=>{const i=t.tier===(s?.tier||"free");return e.jsxs("div",{className:`rounded-lg border p-5 ${i?"border-primary bg-primary/10/50":"border-border-default"}`,children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h3",{className:"font-semibold text-text-primary",children:t.name}),i&&e.jsx("span",{className:"rounded-full bg-primary/15 px-2 py-0.5 text-xs font-medium text-primary-hover",children:"Current"})]}),e.jsxs("p",{className:"mt-1 text-2xl font-bold font-display text-text-primary",children:[r.facts?.plans?.[t.tier]?`$${r.facts.plans[t.tier].price_usd}`:"â",e.jsx("span",{className:"text-sm font-normal text-text-muted",children:"/mo"})]}),e.jsx("ul",{className:"mt-3 space-y-1.5",children:t.features.slice(0,4).map(o=>e.jsxs("li",{className:"flex items-start gap-1.5 text-xs text-text-muted",children:[e.jsx("svg",{className:"mt-0.5 h-3 w-3 shrink-0 text-accent",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),o]},o))}),!i&&t.tier!=="free"&&l&&e.jsx(A,{to:"/app/pricing",className:"mt-4 block rounded-lg bg-primary text-primary-foreground hover:bg-primary-hover",children:(r.facts?.plans?.[t.tier]?.price_usd??0)>(r.facts?.plans?.[s?.tier??"free"]?.price_usd??0)?"Upgrade":"Switch"})]},t.tier)})})]})]})}export{he 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.