(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,6655,e=>{"use strict";let n=e.i(47167).default.env.NEXT_PUBLIC_API_URL??"/admin/api/v1";e.s(["ADMIN_API_BASE",0,n])},91182,e=>{"use strict";var n=e.i(43476),t=e.i(71645),a=e.i(51224),s=e.i(6655);let i={ACTIVE:"text-emerald-300 bg-emerald-500/15",TRIALING:"text-sky-300 bg-sky-500/15",PAYMENT_PENDING:"text-amber-300 bg-amber-500/15",PAST_DUE:"text-rose-300 bg-rose-500/15",SUSPENDED:"text-red-300 bg-red-500/15",CANCELLED:"text-zinc-300 bg-zinc-700/60",UNPAID:"text-red-300 bg-red-500/15"},l={DRAFT:"text-zinc-300 bg-zinc-700/60",OPEN:"text-amber-300 bg-amber-500/15",PAYMENT_PENDING:"text-amber-300 bg-amber-500/15",PARTIALLY_PAID:"text-sky-300 bg-sky-500/15",PAID:"text-emerald-300 bg-emerald-500/15",PAST_DUE:"text-rose-300 bg-rose-500/15",VOID:"text-zinc-300 bg-zinc-700/60",UNCOLLECTIBLE:"text-red-200 bg-red-950/60",REFUNDED:"text-zinc-300 bg-zinc-700/60",PARTIALLY_REFUNDED:"text-zinc-300 bg-zinc-700/60"},c="w-full rounded-xl border border-zinc-800 bg-zinc-950 px-3 py-2 text-sm text-zinc-100 outline-none transition focus:border-emerald-500",r="rounded-xl bg-emerald-500 px-4 py-2 text-sm font-semibold text-black hover:bg-emerald-400",o="rounded-xl border border-zinc-700 px-4 py-2 text-sm font-semibold text-zinc-200 hover:border-zinc-500",d=()=>({type:"PROFESSIONAL_SERVICES",description:"",quantity:1,unitAmount:0});function u(e,n){return new Intl.NumberFormat("en-GB",{style:"currency",currency:n,minimumFractionDigits:2}).format(e/100)}function m(e){return e?new Date(e).toLocaleDateString("en-GB",{day:"2-digit",month:"short",year:"numeric"}):"—"}function x(e,n){return"DUE_ON_RECEIPT"===e?"Due on receipt":`Net ${n||e.replace("NET_","")}`}function p({label:e,value:t,tone:a}){return(0,n.jsxs)("div",{className:"panel p-4",children:[(0,n.jsx)("p",{className:"text-xs uppercase tracking-[0.18em] text-zinc-500",children:e}),(0,n.jsx)("p",{className:`mt-2 text-2xl font-black ${a}`,children:t})]})}function g({label:e,value:t}){return(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-[11px] uppercase tracking-[0.16em] text-zinc-500",children:e}),(0,n.jsx)("p",{className:"mt-1 text-sm font-semibold text-zinc-100",children:t})]})}function v({label:e,children:t}){return(0,n.jsxs)("label",{className:"block",children:[(0,n.jsx)("span",{className:"mb-2 block text-xs uppercase tracking-[0.16em] text-zinc-500",children:e}),t]})}function b({title:e,items:t}){return(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"mb-2 text-xs uppercase tracking-[0.16em] text-zinc-500",children:e}),0===t.length?(0,n.jsx)("div",{className:"rounded-xl border border-zinc-800 px-3 py-3 text-sm text-zinc-500",children:"—"}):(0,n.jsx)("div",{className:"space-y-2",children:t.map(e=>(0,n.jsxs)("div",{className:"rounded-xl border border-zinc-800 px-3 py-3",children:[(0,n.jsx)("p",{className:"text-sm text-zinc-100",children:e.primary}),(0,n.jsx)("p",{className:"mt-1 text-xs text-zinc-500",children:e.secondary})]},e.id))})]})}e.s(["default",0,function(){let{language:e}=(0,a.useAdminI18n)(),[h,N]=(0,t.useTransition)(),j={en:{title:"Billing Console",eyebrow:"Platform Finance",searchPlaceholder:"Search company, billing contact, or slug",all:"All",active:"Active",pastDue:"Past Due",suspended:"Suspended",cancelled:"Cancelled",accounts:"Accounts",receivables:"Receivables",openInvoices:"Open invoices",paidInvoices:"Paid invoices",revenue:"Revenue",billingAccounts:"Billing Accounts",selectAccount:"Select a billing account to manage invoices, credits, dunning, and payment history.",company:"Company",plan:"Plan",subscription:"Subscription",openBalance:"Open balance",credit:"Credit",dunning:"Dunning",accountDetails:"Billing Account",invoiceFeed:"Invoices",draftInvoice:"Create Draft Invoice",saveAccount:"Save account",pauseDunning:"Pause dunning",resumeDunning:"Resume dunning",createDraft:"Create draft",loading:"Loading…",noAccounts:"No billing accounts found",amountDue:"Amount due",amountPaid:"Amount paid",dueDate:"Due date",issueDate:"Issue date",actions:"Actions",lineItems:"Line items",payments:"Payment attempts",credits:"Credits",refunds:"Refunds",timeline:"Timeline",finalize:"Finalize",pay:"Record payment",retry:"Retry payment",void:"Void",writeoff:"Write off",refund:"Refund",creditNote:"Credit note",downloadPdf:"PDF",invoiceType:"Invoice type",blocking:"Blocking invoice",reason:"Reason",billingEmail:"Billing email",legalName:"Legal name",taxId:"Tax ID",taxExempt:"Tax exempt",invoiceTerms:"Invoice terms",selectedInvoice:"Selected invoice",noInvoices:"No invoices yet"},fr:{title:"Console de facturation",eyebrow:"Finance plateforme",searchPlaceholder:"Rechercher une entreprise, un contact facturation ou un slug",all:"Tous",active:"Actifs",pastDue:"En retard",suspended:"Suspendus",cancelled:"Annulés",accounts:"Comptes",receivables:"Créances",openInvoices:"Factures ouvertes",paidInvoices:"Factures payées",revenue:"Revenu",billingAccounts:"Comptes de facturation",selectAccount:"Sélectionnez un compte de facturation pour gérer factures, crédits, relances et paiements.",company:"Entreprise",plan:"Plan",subscription:"Abonnement",openBalance:"Solde ouvert",credit:"Crédit",dunning:"Relance",accountDetails:"Compte de facturation",invoiceFeed:"Factures",draftInvoice:"Créer un brouillon",saveAccount:"Enregistrer",pauseDunning:"Mettre en pause",resumeDunning:"Reprendre",createDraft:"Créer le brouillon",loading:"Chargement…",noAccounts:"Aucun compte trouvé",amountDue:"Montant dû",amountPaid:"Montant payé",dueDate:"Échéance",issueDate:"Date émission",actions:"Actions",lineItems:"Lignes",payments:"Tentatives de paiement",credits:"Crédits",refunds:"Remboursements",timeline:"Historique",finalize:"Finaliser",pay:"Enregistrer paiement",retry:"Relancer paiement",void:"Annuler",writeoff:"Passer en perte",refund:"Rembourser",creditNote:"Avoir",downloadPdf:"PDF",invoiceType:"Type de facture",blocking:"Facture bloquante",reason:"Raison",billingEmail:"Email de facturation",legalName:"Raison sociale",taxId:"Identifiant fiscal",taxExempt:"Exonéré de taxe",invoiceTerms:"Conditions",selectedInvoice:"Facture sélectionnée",noInvoices:"Aucune facture"},ar:{title:"لوحة الفوترة",eyebrow:"مالية المنصة",searchPlaceholder:"ابحث عن الشركة أو جهة الفوترة أو الرابط",all:"الكل",active:"نشط",pastDue:"متأخر",suspended:"معلق",cancelled:"ملغى",accounts:"الحسابات",receivables:"الذمم",openInvoices:"الفواتير المفتوحة",paidInvoices:"الفواتير المدفوعة",revenue:"الإيراد",billingAccounts:"حسابات الفوترة",selectAccount:"اختر حساب فوترة لإدارة الفواتير والأرصدة ومحاولات الدفع.",company:"الشركة",plan:"الخطة",subscription:"الاشتراك",openBalance:"الرصيد المفتوح",credit:"الرصيد",dunning:"المتابعة",accountDetails:"حساب الفوترة",invoiceFeed:"الفواتير",draftInvoice:"إنشاء مسودة فاتورة",saveAccount:"حفظ",pauseDunning:"إيقاف المتابعة",resumeDunning:"استئناف المتابعة",createDraft:"إنشاء المسودة",loading:"جارٍ التحميل…",noAccounts:"لا توجد حسابات فوترة",amountDue:"المبلغ المستحق",amountPaid:"المبلغ المدفوع",dueDate:"تاريخ الاستحقاق",issueDate:"تاريخ الإصدار",actions:"الإجراءات",lineItems:"البنود",payments:"محاولات الدفع",credits:"الأرصدة",refunds:"الاستردادات",timeline:"السجل",finalize:"اعتماد",pay:"تسجيل الدفع",retry:"إعادة المحاولة",void:"إلغاء",writeoff:"شطب",refund:"استرداد",creditNote:"إشعار دائن",downloadPdf:"PDF",invoiceType:"نوع الفاتورة",blocking:"فاتورة حاجزة",reason:"السبب",billingEmail:"بريد الفوترة",legalName:"الاسم القانوني",taxId:"الرقم الضريبي",taxExempt:"معفى من الضريبة",invoiceTerms:"شروط الفاتورة",selectedInvoice:"الفاتورة المحددة",noInvoices:"لا توجد فواتير"}}[e],[y,f]=(0,t.useState)([]),[I,D]=(0,t.useState)(null),[z,E]=(0,t.useState)(""),[A,T]=(0,t.useState)(""),[C,S]=(0,t.useState)(!0),[P,k]=(0,t.useState)(null),[R,w]=(0,t.useState)(null),[_,L]=(0,t.useState)(null),[B,O]=(0,t.useState)(!1),[$,U]=(0,t.useState)(null),[F,M]=(0,t.useState)({legalName:"",billingEmail:"",taxId:"",taxExempt:!1,invoiceTerms:"DUE_ON_RECEIPT",netTermsDays:0}),[q,V]=(0,t.useState)({invoiceType:"MANUAL",isSubscriptionBlocking:!1,adminReason:"",lineItems:[d()]}),[Y,G]=(0,t.useState)(null),[J,H]=(0,t.useState)(""),[K,W]=(0,t.useState)(""),[X,Q]=(0,t.useState)(""),[Z,ee]=(0,t.useState)(""),[en,et]=(0,t.useState)(""),[ea,es]=(0,t.useState)(""),[ei,el]=(0,t.useState)(""),[ec,er]=(0,t.useState)(null),[eo,ed]=(0,t.useState)(null),eu=[{key:"",label:j.all},{key:"ACTIVE",label:j.active},{key:"PAST_DUE",label:j.pastDue},{key:"SUSPENDED",label:j.suspended},{key:"CANCELLED",label:j.cancelled}],em=(0,t.useMemo)(()=>_?.invoices.find(e=>e.id===Y)??_?.invoices[0]??null,[_,Y]);async function ex(e,n){let t=await fetch(`${s.ADMIN_API_BASE}${e}`,{...n,headers:{"Content-Type":"application/json",...n?.headers??{}},credentials:"include",cache:"no-store"});if(t.headers.get("content-type")?.includes("application/pdf"))return await t.blob();let a=await t.json();if(!t.ok)throw Error(a?.message??`Request failed (${t.status})`);return a.data}async function ep(e,n){S(!0),k(null);try{let t=new URLSearchParams({pageSize:"100"});e&&t.set("q",e),n&&t.set("status",n);let a=await ex(`/admin/billing?${t.toString()}`);f(a.data),D(a.stats??null),w(e=>e??a.data[0]?.company.id??null)}catch(e){k(e.message)}finally{S(!1)}}async function eg(e){O(!0),U(null);try{let n=await ex(`/admin/billing/${e}`);L(n),M({legalName:n.legalName,billingEmail:n.billingEmail,taxId:n.taxId??"",taxExempt:n.taxExempt,invoiceTerms:n.invoiceTerms,netTermsDays:n.netTermsDays}),G(n.invoices[0]?.id??null)}catch(e){U(e.message)}finally{O(!1)}}async function ev(){await ep(z||void 0,A||void 0),R&&await eg(R)}function eb(e,n,t){V(a=>({...a,lineItems:a.lineItems.map((a,s)=>s===e?{...a,[n]:t}:a)}))}async function eh(){if(_){er(null),ed(null);try{await ex(`/admin/billing/accounts/${_.id}`,{method:"PATCH",body:JSON.stringify({legalName:F.legalName,billingEmail:F.billingEmail,taxId:F.taxId||null,taxExempt:F.taxExempt,invoiceTerms:F.invoiceTerms,netTermsDays:F.netTermsDays})}),ed("Billing account updated."),await ev()}catch(e){er(e.message)}}}async function eN(e){if(_){er(null),ed(null);try{await ex(`/admin/billing/accounts/${_.id}/${e?"pause-dunning":"resume-dunning"}`,{method:"POST",body:JSON.stringify({})}),ed(e?"Dunning paused.":"Dunning resumed."),await ev()}catch(e){er(e.message)}}}async function ej(){if(_){er(null),ed(null);try{await ex(`/admin/billing/accounts/${_.id}/invoices`,{method:"POST",body:JSON.stringify({invoiceType:q.invoiceType,isSubscriptionBlocking:q.isSubscriptionBlocking,adminReason:q.adminReason||null,lineItems:q.lineItems.map(e=>({...e,unitAmount:Number(e.unitAmount),quantity:Number(e.quantity)}))})}),V({invoiceType:"MANUAL",isSubscriptionBlocking:!1,adminReason:"",lineItems:[d()]}),ed("Draft invoice created."),await ev()}catch(e){er(e.message)}}}async function ey(e,n){if(em){er(null),ed(null);try{await ex(`/admin/billing/invoices/${em.id}/${e}`,{method:"POST",body:JSON.stringify(n??{})}),ed("Invoice action completed."),await ev()}catch(e){er(e.message)}}}async function ef(){if(em){er(null);try{let e=await ex(`/admin/billing/invoices/${em.id}/pdf`),n=URL.createObjectURL(e),t=document.createElement("a");t.href=n,t.download=`${em.invoiceNumber??em.id}.pdf`,t.click(),URL.revokeObjectURL(n)}catch(e){er(e.message)}}}return(0,t.useEffect)(()=>{let e=setTimeout(()=>{ep(z||void 0,A||void 0)},200);return()=>clearTimeout(e)},[z,A]),(0,t.useEffect)(()=>{R&&eg(R)},[R]),(0,n.jsxs)("div",{className:"shell space-y-6 py-8",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-end lg:justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-xs uppercase tracking-[0.24em] text-emerald-400",children:j.eyebrow}),(0,n.jsx)("h1",{className:"mt-2 text-3xl font-black text-zinc-50",children:j.title})]}),(0,n.jsx)("div",{className:"w-full max-w-md",children:(0,n.jsx)("input",{value:z,onChange:e=>E(e.target.value),placeholder:j.searchPlaceholder,className:"w-full rounded-2xl border border-zinc-800 bg-zinc-950 px-4 py-3 text-sm text-zinc-100 outline-none transition focus:border-emerald-500"})})]}),I&&(0,n.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2 xl:grid-cols-5",children:[(0,n.jsx)(p,{label:j.accounts,value:String(I.billingAccountCount),tone:"text-zinc-50"}),(0,n.jsx)(p,{label:j.receivables,value:u(I.accountsReceivableTotal,"MAD"),tone:"text-amber-300"}),(0,n.jsx)(p,{label:j.openInvoices,value:String(I.openInvoiceCount),tone:"text-amber-300"}),(0,n.jsx)(p,{label:j.paidInvoices,value:String(I.paidInvoiceCount),tone:"text-emerald-300"}),(0,n.jsx)(p,{label:j.revenue,value:u(I.recognizedRevenueTotal,"MAD"),tone:"text-sky-300"})]}),(0,n.jsx)("div",{className:"flex flex-wrap gap-2",children:eu.map(e=>(0,n.jsx)("button",{onClick:()=>N(()=>T(e.key)),className:`rounded-full px-3 py-1.5 text-xs font-semibold transition ${A===e.key?"bg-emerald-500 text-black":"bg-zinc-900 text-zinc-400 hover:bg-zinc-800 hover:text-zinc-200"}`,children:e.label},e.key))}),(0,n.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[1.15fr,1.85fr]",children:[(0,n.jsxs)("section",{className:"panel overflow-hidden",children:[(0,n.jsx)("div",{className:"border-b border-zinc-800 px-5 py-4",children:(0,n.jsx)("h2",{className:"text-sm font-semibold text-zinc-100",children:j.billingAccounts})}),(0,n.jsx)("div",{className:"max-h-[76vh] overflow-y-auto",children:C?(0,n.jsx)("div",{className:"px-5 py-10 text-sm text-zinc-500",children:j.loading}):P?(0,n.jsx)("div",{className:"px-5 py-10 text-sm text-red-400",children:P}):0===y.length?(0,n.jsx)("div",{className:"px-5 py-10 text-sm text-zinc-500",children:j.noAccounts}):(0,n.jsx)("div",{className:"divide-y divide-zinc-800",children:y.map(e=>{let t=R===e.company.id,a=e.company.subscription;return(0,n.jsxs)("button",{onClick:()=>w(e.company.id),className:`w-full px-5 py-4 text-left transition ${t?"bg-emerald-500/8":"hover:bg-zinc-900/80"}`,children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"font-semibold text-zinc-100",children:e.company.name}),(0,n.jsx)("p",{className:"mt-1 text-xs text-zinc-500",children:e.billingEmail})]}),(0,n.jsx)("span",{className:`rounded-full px-2 py-0.5 text-[11px] font-semibold ${i[a?.status??"CANCELLED"]??"text-zinc-300 bg-zinc-700/60"}`,children:a?.status??"NO_SUBSCRIPTION"})]}),(0,n.jsxs)("div",{className:"mt-4 grid grid-cols-3 gap-3 text-xs",children:[(0,n.jsx)(g,{label:j.plan,value:a?.plan??"—"}),(0,n.jsx)(g,{label:j.openBalance,value:u(e.openBalance,e.creditBalances[0]?.currency??"MAD")}),(0,n.jsx)(g,{label:j.credit,value:u(e.creditBalance,e.creditBalances[0]?.currency??"MAD")})]}),(0,n.jsxs)("div",{className:"mt-3 flex items-center justify-between text-[11px] text-zinc-500",children:[(0,n.jsx)("span",{children:x(e.invoiceTerms,e.netTermsDays)}),(0,n.jsx)("span",{children:e.dunningPaused?`${j.dunning}: paused`:`${j.dunning}: live`})]})]},e.id)})})})]}),(0,n.jsx)("section",{className:"space-y-6",children:R?B&&!_?(0,n.jsx)("div",{className:"panel px-6 py-10 text-sm text-zinc-500",children:j.loading}):$?(0,n.jsx)("div",{className:"panel px-6 py-10 text-sm text-red-400",children:$}):_?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("section",{className:"panel p-5",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-4 border-b border-zinc-800 pb-5 lg:flex-row lg:items-start lg:justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-zinc-500",children:j.accountDetails}),(0,n.jsx)("h2",{className:"mt-2 text-2xl font-bold text-zinc-50",children:_.company.name}),(0,n.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2 text-xs",children:[(0,n.jsx)("span",{className:`rounded-full px-2 py-1 font-semibold ${i[_.company.subscription?.status??"CANCELLED"]??"text-zinc-300 bg-zinc-700/60"}`,children:_.company.subscription?.status??"NO_SUBSCRIPTION"}),(0,n.jsxs)("span",{className:"rounded-full bg-zinc-900 px-2 py-1 text-zinc-300",children:[_.company.subscription?.plan??"No plan"," / ",_.company.subscription?.billingPeriod??"—"]}),(0,n.jsx)("span",{className:"rounded-full bg-zinc-900 px-2 py-1 text-zinc-300",children:x(_.invoiceTerms,_.netTermsDays)})]})]}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-3 text-right text-sm sm:grid-cols-4",children:[(0,n.jsx)(g,{label:j.openBalance,value:u(_.openBalance,_.creditBalances[0]?.currency??"MAD")}),(0,n.jsx)(g,{label:j.credit,value:u(_.creditBalance,_.creditBalances[0]?.currency??"MAD")}),(0,n.jsx)(g,{label:j.amountPaid,value:u(_.paidBalance,_.creditBalances[0]?.currency??"MAD")}),(0,n.jsx)(g,{label:j.dunning,value:_.dunningPaused?"Paused":"Live"})]})]}),(0,n.jsxs)("div",{className:"mt-5 grid gap-4 lg:grid-cols-2",children:[(0,n.jsx)(v,{label:j.legalName,children:(0,n.jsx)("input",{value:F.legalName,onChange:e=>M(n=>({...n,legalName:e.target.value})),className:c})}),(0,n.jsx)(v,{label:j.billingEmail,children:(0,n.jsx)("input",{value:F.billingEmail,onChange:e=>M(n=>({...n,billingEmail:e.target.value})),className:c})}),(0,n.jsx)(v,{label:j.taxId,children:(0,n.jsx)("input",{value:F.taxId,onChange:e=>M(n=>({...n,taxId:e.target.value})),className:c})}),(0,n.jsx)(v,{label:j.invoiceTerms,children:(0,n.jsxs)("select",{value:F.invoiceTerms,onChange:e=>M(n=>({...n,invoiceTerms:e.target.value,netTermsDays:"DUE_ON_RECEIPT"===e.target.value?0:n.netTermsDays||Number(e.target.value.replace("NET_",""))})),className:c,children:[(0,n.jsx)("option",{value:"DUE_ON_RECEIPT",children:"Due on receipt"}),(0,n.jsx)("option",{value:"NET_7",children:"Net 7"}),(0,n.jsx)("option",{value:"NET_15",children:"Net 15"}),(0,n.jsx)("option",{value:"NET_30",children:"Net 30"}),(0,n.jsx)("option",{value:"NET_45",children:"Net 45"}),(0,n.jsx)("option",{value:"NET_60",children:"Net 60"})]})})]}),(0,n.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[(0,n.jsxs)("label",{className:"flex items-center gap-2 text-sm text-zinc-300",children:[(0,n.jsx)("input",{type:"checkbox",checked:F.taxExempt,onChange:e=>M(n=>({...n,taxExempt:e.target.checked})),className:"rounded border-zinc-700 bg-zinc-950 text-emerald-500"}),j.taxExempt]}),(0,n.jsx)("button",{onClick:eh,className:"rounded-xl bg-emerald-500 px-4 py-2 text-sm font-semibold text-black hover:bg-emerald-400",children:j.saveAccount}),(0,n.jsx)("button",{onClick:()=>eN(!_.dunningPaused),className:"rounded-xl border border-zinc-700 px-4 py-2 text-sm font-semibold text-zinc-200 hover:border-zinc-500",children:_.dunningPaused?j.resumeDunning:j.pauseDunning})]})]}),(0,n.jsxs)("section",{className:"panel p-5",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-zinc-100",children:j.invoiceFeed}),h||B?(0,n.jsx)("span",{className:"text-xs text-zinc-500",children:j.loading}):null]}),0===_.invoices.length?(0,n.jsx)("div",{className:"mt-4 text-sm text-zinc-500",children:j.noInvoices}):(0,n.jsxs)("div",{className:"mt-4 grid gap-4 xl:grid-cols-[1.2fr,0.8fr]",children:[(0,n.jsx)("div",{className:"overflow-hidden rounded-2xl border border-zinc-800",children:(0,n.jsxs)("table",{className:"w-full text-sm",children:[(0,n.jsx)("thead",{className:"bg-zinc-950/80",children:(0,n.jsxs)("tr",{className:"text-left text-xs uppercase tracking-[0.16em] text-zinc-500",children:[(0,n.jsx)("th",{className:"px-4 py-3",children:"Invoice"}),(0,n.jsx)("th",{className:"px-4 py-3",children:j.amountDue}),(0,n.jsx)("th",{className:"px-4 py-3",children:j.dueDate}),(0,n.jsx)("th",{className:"px-4 py-3",children:j.actions})]})}),(0,n.jsx)("tbody",{className:"divide-y divide-zinc-800",children:_.invoices.map(e=>(0,n.jsxs)("tr",{className:`cursor-pointer transition hover:bg-zinc-900/80 ${em?.id===e.id?"bg-emerald-500/8":""}`,onClick:()=>G(e.id),children:[(0,n.jsx)("td",{className:"px-4 py-3",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"font-medium text-zinc-100",children:e.invoiceNumber??e.invoiceType}),(0,n.jsx)("p",{className:"mt-1 text-xs text-zinc-500",children:m(e.invoiceDate??e.createdAt)})]})}),(0,n.jsx)("td",{className:"px-4 py-3 text-zinc-200",children:u(e.amountDue,e.currency)}),(0,n.jsx)("td",{className:"px-4 py-3 text-zinc-400",children:m(e.dueAt)}),(0,n.jsx)("td",{className:"px-4 py-3",children:(0,n.jsx)("span",{className:`rounded-full px-2 py-0.5 text-[11px] font-semibold ${l[e.status]??"text-zinc-300 bg-zinc-700/60"}`,children:e.status})})]},e.id))})]})}),em&&(0,n.jsxs)("div",{className:"space-y-4 rounded-2xl border border-zinc-800 bg-zinc-950/80 p-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-xs uppercase tracking-[0.16em] text-zinc-500",children:j.selectedInvoice}),(0,n.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h4",{className:"text-lg font-semibold text-zinc-50",children:em.invoiceNumber??em.invoiceType}),(0,n.jsxs)("p",{className:"mt-1 text-sm text-zinc-400",children:[j.issueDate,": ",m(em.invoiceDate??em.createdAt)]})]}),(0,n.jsx)("span",{className:`rounded-full px-2 py-1 text-xs font-semibold ${l[em.status]??"text-zinc-300 bg-zinc-700/60"}`,children:em.status})]})]}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-3 text-sm",children:[(0,n.jsx)(g,{label:j.amountDue,value:u(em.amountDue,em.currency)}),(0,n.jsx)(g,{label:j.amountPaid,value:u(em.amountPaid,em.currency)})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"mb-2 text-xs uppercase tracking-[0.16em] text-zinc-500",children:j.lineItems}),(0,n.jsx)("div",{className:"space-y-2",children:em.lineItems.map((e,t)=>(0,n.jsx)("div",{className:"rounded-xl border border-zinc-800 px-3 py-2",children:(0,n.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-sm text-zinc-100",children:e.description}),(0,n.jsxs)("p",{className:"text-xs text-zinc-500",children:[e.quantity," × ",u(e.unitAmount,e.currency)]})]}),(0,n.jsx)("p",{className:"text-sm font-medium text-zinc-200",children:u(e.amount,e.currency)})]})},`${em.id}-${t}`))})]}),(0,n.jsxs)("div",{className:"grid gap-2",children:["DRAFT"===em.status?(0,n.jsx)("button",{onClick:()=>ey("finalize"),className:r,children:j.finalize}):null,["OPEN","PAYMENT_PENDING","PAST_DUE","PARTIALLY_PAID"].includes(em.status)?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"grid grid-cols-[1fr,auto] gap-2",children:[(0,n.jsx)("input",{value:J,onChange:e=>H(e.target.value),placeholder:"Amount in cents",className:c}),(0,n.jsx)("button",{onClick:()=>ey("pay",J?{amount:Number(J)}:{}),className:r,children:j.pay})]}),(0,n.jsx)("button",{onClick:()=>ey("retry-payment"),className:o,children:j.retry}),(0,n.jsxs)("div",{className:"grid gap-2 sm:grid-cols-[1fr,auto]",children:[(0,n.jsx)("input",{value:ea,onChange:e=>es(e.target.value),placeholder:j.reason,className:c}),(0,n.jsx)("button",{onClick:()=>ey("void",{reason:ea}),className:o,children:j.void})]}),(0,n.jsxs)("div",{className:"grid gap-2 sm:grid-cols-[1fr,auto]",children:[(0,n.jsx)("input",{value:ei,onChange:e=>el(e.target.value),placeholder:j.reason,className:c}),(0,n.jsx)("button",{onClick:()=>ey("uncollectible",{reason:ei}),className:o,children:j.writeoff})]}),(0,n.jsxs)("div",{className:"grid gap-2 sm:grid-cols-[120px,1fr,auto]",children:[(0,n.jsx)("input",{value:K,onChange:e=>W(e.target.value),placeholder:"Cents",className:c}),(0,n.jsx)("input",{value:X,onChange:e=>Q(e.target.value),placeholder:j.reason,className:c}),(0,n.jsx)("button",{onClick:()=>ey("credit-notes",{amount:Number(K),reason:X}),className:o,children:j.creditNote})]})]}):null,["PAID","PARTIALLY_REFUNDED","REFUNDED"].includes(em.status)?(0,n.jsxs)("div",{className:"grid gap-2 sm:grid-cols-[120px,1fr,auto]",children:[(0,n.jsx)("input",{value:Z,onChange:e=>ee(e.target.value),placeholder:"Cents",className:c}),(0,n.jsx)("input",{value:en,onChange:e=>et(e.target.value),placeholder:j.reason,className:c}),(0,n.jsx)("button",{onClick:()=>ey("refunds",{amount:Number(Z),reason:en}),className:o,children:j.refund})]}):null,em.invoiceNumber?(0,n.jsx)("button",{onClick:ef,className:o,children:j.downloadPdf}):null]}),(0,n.jsx)(b,{title:j.payments,items:em.paymentAttempts.map(e=>({id:e.id,primary:`${e.status} \xb7 ${u(e.amount,e.currency)}`,secondary:`${m(e.attemptedAt)}${e.failureMessage?` \xb7 ${e.failureMessage}`:""}`}))}),(0,n.jsx)(b,{title:j.credits,items:em.creditNotes.map(e=>({id:e.id,primary:`${u(e.amount,e.currency)} \xb7 ${e.status}`,secondary:e.reason}))}),(0,n.jsx)(b,{title:j.refunds,items:em.refunds.map(e=>({id:e.id,primary:`${u(e.amount,e.currency)} \xb7 ${e.status}`,secondary:e.reason}))})]})]})]}),(0,n.jsxs)("section",{className:"panel p-5",children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-zinc-100",children:j.draftInvoice}),(0,n.jsxs)("div",{className:"mt-4 grid gap-4 lg:grid-cols-[1fr,1fr,auto]",children:[(0,n.jsx)(v,{label:j.invoiceType,children:(0,n.jsxs)("select",{value:q.invoiceType,onChange:e=>V(n=>({...n,invoiceType:e.target.value})),className:c,children:[(0,n.jsx)("option",{value:"MANUAL",children:"Manual"}),(0,n.jsx)("option",{value:"ONE_TIME",children:"One time"}),(0,n.jsx)("option",{value:"SUBSCRIPTION_RENEWAL",children:"Subscription renewal"}),(0,n.jsx)("option",{value:"SUBSCRIPTION_INITIAL",children:"Subscription initial"}),(0,n.jsx)("option",{value:"TRIAL_CONVERSION",children:"Trial conversion"}),(0,n.jsx)("option",{value:"CORRECTION",children:"Correction"})]})}),(0,n.jsx)(v,{label:j.reason,children:(0,n.jsx)("input",{value:q.adminReason,onChange:e=>V(n=>({...n,adminReason:e.target.value})),className:c})}),(0,n.jsxs)("label",{className:"flex items-end gap-2 text-sm text-zinc-300",children:[(0,n.jsx)("input",{type:"checkbox",checked:q.isSubscriptionBlocking,onChange:e=>V(n=>({...n,isSubscriptionBlocking:e.target.checked})),className:"mb-3 rounded border-zinc-700 bg-zinc-950 text-emerald-500"}),(0,n.jsx)("span",{className:"mb-2",children:j.blocking})]})]}),(0,n.jsx)("div",{className:"mt-4 space-y-3",children:q.lineItems.map((e,t)=>(0,n.jsxs)("div",{className:"grid gap-3 rounded-2xl border border-zinc-800 bg-zinc-950/60 p-4 lg:grid-cols-[180px,1fr,100px,140px,auto]",children:[(0,n.jsxs)("select",{value:e.type,onChange:e=>eb(t,"type",e.target.value),className:c,children:[(0,n.jsx)("option",{value:"PROFESSIONAL_SERVICES",children:"Professional services"}),(0,n.jsx)("option",{value:"SETUP_FEE",children:"Setup fee"}),(0,n.jsx)("option",{value:"SUBSCRIPTION_FEE",children:"Subscription fee"}),(0,n.jsx)("option",{value:"MANUAL_ADJUSTMENT",children:"Manual adjustment"}),(0,n.jsx)("option",{value:"DISCOUNT",children:"Discount"})]}),(0,n.jsx)("input",{value:e.description,onChange:e=>eb(t,"description",e.target.value),placeholder:"Description",className:c}),(0,n.jsx)("input",{type:"number",min:1,value:e.quantity,onChange:e=>eb(t,"quantity",Number(e.target.value)),className:c}),(0,n.jsx)("input",{type:"number",value:e.unitAmount,onChange:e=>eb(t,"unitAmount",Number(e.target.value)),placeholder:"Unit amount (cents)",className:c}),(0,n.jsx)("button",{onClick:()=>V(e=>({...e,lineItems:1===e.lineItems.length?e.lineItems:e.lineItems.filter((e,n)=>n!==t)})),className:"rounded-xl border border-zinc-700 px-3 py-2 text-sm text-zinc-300 hover:border-zinc-500",children:"Remove"})]},t))}),(0,n.jsxs)("div",{className:"mt-4 flex flex-wrap gap-3",children:[(0,n.jsx)("button",{onClick:()=>V(e=>({...e,lineItems:[...e.lineItems,d()]})),className:"rounded-xl border border-zinc-700 px-4 py-2 text-sm font-semibold text-zinc-200 hover:border-zinc-500",children:"Add line"}),(0,n.jsx)("button",{onClick:ej,className:r,children:j.createDraft})]})]}),(0,n.jsx)("section",{className:"panel p-5",children:(0,n.jsxs)("div",{className:"grid gap-5 xl:grid-cols-2",children:[(0,n.jsx)(b,{title:j.timeline,items:_.events.map(e=>({id:e.id,primary:e.eventType,secondary:`${e.source} \xb7 ${m(e.createdAt)}`}))}),(0,n.jsx)(b,{title:j.credits,items:_.creditLedgerEntries.map(e=>({id:e.id,primary:`${u(e.amount,e.currency)} \xb7 ${e.type}`,secondary:e.reason}))})]})})]}):null:(0,n.jsx)("div",{className:"panel px-6 py-10 text-sm text-zinc-500",children:j.selectAccount})})]}),ec?(0,n.jsx)("div",{className:"panel p-4 text-sm text-red-400",children:ec}):null,eo?(0,n.jsx)("div",{className:"panel p-4 text-sm text-emerald-300",children:eo}):null]})}])}]);