1import{r as f,j as e,n as Ls}from"./react-vendor-DKbO0zba.js";import{a8 as Ze,c as I,t as $,o as W,p as V,B as A,E as F,s as z,q as U,b6 as je,by as ea,D as ce,bA as Ps,X as Ba,a9 as Fs,b1 as ue,bH as Is,J as $s,cF as Ds,d7 as Ka,j as Ts}from"./index-BgbQzHQM.js";import{B as ae,q as Rs,s as ba,D as Os,v as As,w as qs,x as Ms,z as Bs,K as Ks,P as zs,n as Us,o as Hs,p as Gs,T as Re,Z as za,A as Vs}from"./AuthenticatedLayout-VR1oXQE6.js";import{C as xe,u as aa}from"./ConfirmDialog-d8DKbYmV.js";import{a as we,G as Ua}from"./OrgSwitcher-Bhjq4cv1.js";import{a as Qs,l as Oe,b as sa,c as na,p as Ys,P as ke,d as Ws,e as Xs,f as Js,h as Zs,i as en,u as an,j as sn,k as nn,s as tn,m as rn,n as ln,o as cn,q as dn,r as on,t as mn,g as xn,v as gn,w as un,x as Ha,C as Ke,y as Ga,z as pn,A as hn,B as fn,D as yn,E as bn,F as jn,G as kn,H as Nn,I as vn,J as _n,K as wn,L as Va,R as Cn,M as Sn,N as En,O as Ln,Q as Pn,S as Fn,T as In,U as $n,V as ze,W as Dn,X as Tn,Y as Rn,Z as On,_ as Ue,$ as An,a0 as He,a1 as qn,a2 as Mn,a3 as Bn,a4 as Kn,a5 as zn,a6 as Qa,a7 as Un,a8 as Hn}from"./finance-D_hocmAD.js";import{u as Pe}from"./useDebounce-p2IwmFvF.js";import{b as Ya,j as Gn,k as Vn}from"./admin-4s8lppNM.js";import{S as Ae}from"./search-CbGBc7QD.js";import{s as Qn,C as ja,T as R,B as ee,d as de,P as he,f as Yn,g as Wn,h as Xn,j as Jn,k as Zn,l as et,m as at,c as st,n as nt,p as tt,q as Wa,r as it,t as rt,u as Xa,v as Ja,I as ta,w as Za,x as lt,y as ct,z as dt,A as ot}from"./creditIntentDisplay-BlaICxE8.js";import{I as le,h as mt,W as xt}from"./AppTopBar-DvYCtcLp.js";import{m as K,q as ge,d as es}from"./financeFormat-Bux3oD4M.js";import{R as as}from"./refresh-cw-CxisB7-W.js";import{R as gt,B as ut,C as pt,X as ht,Y as ft,T as yt,f as bt}from"./recharts-CiGlJ7Ym.js";import{R as jt}from"./RoleSelectOptions-BWXM76vF.js";import{P as qe}from"./plus-BrfzfEbM.js";import{G as kt}from"./grip-vertical-DGSBbNav.js";import{F as Nt}from"./file-text-CtH7P_MV.js";import{C as vt}from"./LanguageSwitcher-D95GkgE-.js";import{C as _t}from"./chevron-right-DIw15xkI.js";import{u as wt}from"./useUnsavedChangesGuard-BSudDtnc.js";import{C as ss}from"./copy-BoapRWdo.js";import{S as ns}from"./shield-C2V5hVJG.js";import{D as ia}from"./download-D7MHJqLy.js";import{R as Ct}from"./rotate-ccw-BCgWcvgF.js";import{L as St}from"./link-2-DbYgAUuI.js";import{P as Et}from"./pencil-D2MMJH7m.js";import{S as Lt}from"./send-0RaFMrLb.js";import"./usePublicPlans-CvFOroBj.js";import"./framer-motion-DCn40pwX.js";import"./firebase-BWzRhu08.js";import"./invitations-CkPFcIRM.js";import"./download-PqUzjzG9.js";import"./sun-DdCRErpc.js";/** 2 * @license lucide-react v0.577.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Pt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ne=Ze("circle-check",Pt);/** 7 * @license lucide-react v0.577.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const Ft=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],ts=Ze("mail",Ft);/** 12 * @license lucide-react v0.577.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */const It=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],$t=Ze("upload",It),Ge=6,Ve=8,Dt=120;function Tt({body:a,title:s,label:n,size:t="sm",className:r}){const{t:i}=I("common"),d=f.useId(),[c,x]=f.useState(!1),[o,j]=f.useState(!1),[b,p]=f.useState(null),g=f.useRef(null),S=f.useRef(null),_=f.useRef(null),C=f.useCallback(()=>{_.current&&(clearTimeout(_.current),_.current=null)},[]),k=f.useCallback(()=>{C(),x(!1),j(!1)},[C]),T=f.useCallback(()=>{o||(C(),_.current=setTimeout(()=>x(!1),Dt))},[C,o]),w=f.useCallback(()=>{C(),x(!0)},[C]);f.useEffect(()=>C,[C]),f.useLayoutEffect(()=>{var D,G;if(!c){p(null);return}const m=(D=g.current)==null?void 0:D.getBoundingClientRect(),v=(G=S.current)==null?void 0:G.getBoundingClientRect();if(!m||!v)return;const y=document.documentElement.clientWidth,h=document.documentElement.clientHeight,P=m.bottom+Ge+v.height>h,L=y-v.width-Ve;p({top:P?Math.max(Ve,m.top-Ge-v.height):m.bottom+Ge,left:Math.max(Ve,Math.min(L,m.left+m.width/2-v.width/2))})},[c]),f.useEffect(()=>{if(!c)return;const m=y=>{var h,P;!((h=S.current)!=null&&h.contains(y.target))&&!((P=g.current)!=null&&P.contains(y.target))&&k()},v=y=>{y.key==="Escape"&&(o&&y.stopPropagation(),k())};return document.addEventListener("mousedown",m),document.addEventListener("keydown",v,!0),window.addEventListener("scroll",k,!0),window.addEventListener("resize",k),()=>{document.removeEventListener("mousedown",m),document.removeEventListener("keydown",v,!0),window.removeEventListener("scroll",k,!0),window.removeEventListener("resize",k)}},[c,o,k]);const N=n?i("infoTip.labelFor",{label:n}):i("infoTip.label"),H=e.jsxs("div",{ref:S,id:d,role:"tooltip",onPointerEnter:C,onPointerLeave:T,hidden:!c,style:{to
16p:(b==null?void 0:b.top)??-9999,left:(b==null?void 0:b.left)??-9999},className:$("fixed z-[70] w-[19rem] max-w-[calc(100vw-1rem)] px-3.5 py-3","rounded-lg border shadow-xl","border-gray-200 bg-white text-gray-700","dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300"),children:[s&&e.jsx("p",{className:"mb-1 text-xs font-semibold uppercase tracking-wide text-gray-900 dark:text-gray-100",children:s}),e.jsx("div",{className:"text-xs leading-relaxed whitespace-pre-line",children:a})]});return e.jsxs(e.Fragment,{children:[e.jsx("button",{ref:g,type:"button","data-help-exempt":"help-trigger","aria-label":N,"aria-describedby":d,onClick:()=>{if(o){k();return}j(!0),w()},onPointerEnter:w,onPointerLeave:T,onFocus:w,onBlur:k,className:$("inline-flex shrink-0 items-center justify-center rounded-full align-middle","text-gray-400 transition-colors hover:text-fuchsia-600","dark:text-gray-500 dark:hover:text-fuchsia-400","focus:outline-none focus-visible:ring-2 focus-visible:ring-fuchsia-400",c&&"text-fuchsia-600 dark:text-fuchsia-400",t==="md"?"h-4 w-4":"h-3.5 w-3.5",r),children:e.jsx(le,{className:t==="md"?"h-4 w-4":"h-3.5 w-3.5","aria-hidden":"true"})}),Ls.createPortal(H,window.document.body)]})}function ra(a){a.invalidateQueries({queryKey:["admin-organizations"]})}const Rt=300,Ot=20;function is({value:a,onChange:s}){const{t:n}=I("system-admin"),[t,r]=f.useState(""),i=Pe(t,Rt),{data:d=[],isLoading:c}=W({queryKey:["admin-organizations","assign",i],queryFn:()=>Ya({q:i,limit:Ot}),enabled:a===null});return a!==null?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-gray-900 dark:text-gray-100 truncate",children:a.name}),e.jsx("button",{type:"button",onClick:()=>{r(""),s(null)},"data-help":"finance.assign.changeOrganisation",className:"text-sm text-fuchsia-600 dark:text-fuchsia-400 hover:underline shrink-0",children:n("finance.assign.organisation.change")})]}):e.jsxs("div",{children:[e.jsxs("div",{className:"relative",children:[e.jsx(Ae,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),e.jsx("input",{type:"search",value:t,onChange:x=>r(x.target.value),placeholder:n("finance.assign.organisation.searchPlaceholder"),"aria-label":n("finance.assign.organisation.label"),className:"w-full pl-9 pr-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-fuchsia-400"})]}),e.jsxs("ul",{className:"mt-2 max-h-56 overflow-y-auto rounded-lg border border-gray-200 dark:border-gray-700 divide-y divide-gray-100 dark:divide-gray-700",children:[d.map(x=>e.jsx("li",{children:e.jsxs("button",{type:"button",onClick:()=>s(x),"data-help":"finance.assign.pickOrganisation",className:"w-full text-left px-3 py-2 text-sm hover:bg-gray-50 dark:hover:bg-gray-700/50",children:[e.jsx("span",{className:"block text-gray-900 dark:text-gray-100",children:x.name}),x.slug&&e.jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400",children:x.slug})]})},x.id)),d.length===0&&e.jsx("li",{className:"px-3 py-2 text-sm text-gray-500 dark:text-gray-400",children:n(c?"finance.assign.preview.loading":"finance.assign.organisation.empty")})]})]})}const X="w-full px-2 py-1.5 text-sm rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-fuchsia-400 disabled:bg-gray-50 disabled:text-gray-500 dark:disabled:bg-gray-900",Y="block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1",q="text-xs text-gray-500 dark:text-gray-400",la="flex flex-wrap items-start justify-between gap-2 rounded border border-gray-200 dark:border-gray-700 px-3 py-2 text-sm",At={manual_transfer:"finance.assign.collection.manualTransfer",send_link:"finance.assign.collection.sendLink",auto_charge:"finance.assign.collection.autoCharge"},qt={card:"finance.assign.collection.onFileCard",sepa:"finance.assign.collection.onFileSepa",other:"finance.assign.collection.onFileOther"},Mt={manual_transfer:"finance.invoices.payment.byTransfer",send_link:"finance.invoices.payment.byLink",auto_charge:"finance.invoices.payment.byCharge"};function Bt(a){return new Date(`${a}T00:00:00`).toISOString()}function ka(a){if(!a)return"";const s=new Date(a);if(Number.isNaN(s.getTime()))return"";const n=String(s.getMonth()+1).padStart(2,"0"),t=String(s.getDate()).padStart(2,"0");return`${s.getFullYear()}-${n}-${t}`}function l({k:a,label:s,size:n,className:t}){const{t:r}=I("system-admin"),i=r(`finance.help.${a}.body`,{defaultValue:""});if(!i)return null;const d=r(`finance.help.${a}.title`,{defaultValue:""});return e.jsx(Tt,{body:i,title:d||void 0,label:s??(d||void 0),size:n,className:t})}function rs({id:a,value:s,onChange:n,method:t,fieldClassName:r=X,labelClassName:i=Y}){const{t:d}=I("system-admin"),c=t.paymentsEnabled&&t.hasMethod&&t.method?Qn(t.method):null;return e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:a,className:i,children:d("finance.assign.collection.label")}),e.jsx(l,{k:"assign.collectionMethod",label:d("finance.assign.collection.label"),className:"mb-1"})]}),e.jsxs("select",{id:a,value:s,onChange:x=>n(x.target.value),className:r,children:[e.jsx("option",{value:"manual_transfer",children:d("finance.assign.collection.manualTransfer")}),e.jsx("option",{value:"send_link",children:d("finance.assign.collection.sendLink")}),e.jsx("option",{value:"auto_charge",disabled:!t.autoChargeAvailable,children:d("finance.assign.collection.autoCharge")}
16)]}),c&&e.jsx("span",{className:"mt-1 block text-xs text-gray-500 dark:text-gray-400",children:d(qt[c.shape],c.values)})]})}function ls({organizationId:a,organizationName:s,method:n,collectionMethod:t,className:r}){const{t:i}=I("system-admin"),d=V({mutationFn:()=>Gn(a),onSuccess:({notified:c})=>{if(c===0){F.error(i("finance.assign.collection.requested.nobody"));return}F.success(i("finance.assign.collection.requested.sent",{count:c}))},onError:c=>F.error(z(c,i("finance.assign.collection.requested.failed")))});return a===null||t!=="auto_charge"||!n.paymentsEnabled||n.isLoading||n.hasMethod?null:e.jsxs("div",{className:$("rounded-lg border border-amber-300 dark:border-amber-800 bg-amber-50 dark:bg-amber-900/20 p-3",r),children:[e.jsxs("p",{className:"flex items-start gap-2 text-sm font-medium text-amber-800 dark:text-amber-300",children:[e.jsx(mt,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[i("finance.assign.collection.unavailable.title"),e.jsx(l,{k:"assign.collectionMethod",className:"ml-1"})]})]}),e.jsx("p",{className:"mt-1 pl-6 text-sm text-amber-800 dark:text-amber-300",children:n.methodUnknown?i("finance.assign.collection.unavailable.unknown"):i("finance.assign.collection.unavailable.none",{organisation:s})}),e.jsxs("div",{className:"mt-2 pl-6 flex flex-wrap items-center gap-2",children:[!n.methodUnknown&&e.jsx(A,{variant:"secondary",size:"sm",isLoading:d.isPending,onClick:()=>d.mutate(),"data-help":"finance.assign.askForMethod",children:i("finance.assign.collection.unavailable.ask")}),e.jsx(A,{variant:"ghost",size:"sm",isLoading:n.isRefetching,onClick:n.refetch,"data-help":"finance.assign.recheckMethod",children:i("finance.assign.collection.unavailable.recheck")})]})]})}const Kt=["now","next_renewal","date"];function zt(){const a=new Date;a.setDate(a.getDate()+1);const s=String(a.getMonth()+1).padStart(2,"0"),n=String(a.getDate()).padStart(2,"0");return`${a.getFullYear()}-${s}-${n}`}function Ut({effective:a,effectiveDate:s,onEffectiveChange:n,onDateChange:t}){const{t:r}=I("system-admin");return e.jsxs("div",{children:[e.jsxs("span",{className:"block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1",children:[r("finance.assign.effective.label"),e.jsx(l,{k:"assign.effective.mode",className:"ml-1.5"})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1",children:[Kt.map(i=>e.jsxs("label",{className:"flex items-center gap-1.5 text-sm text-gray-800 dark:text-gray-200",children:[e.jsx("input",{type:"radio",name:"assign-effective",value:i,checked:a===i,onChange:()=>n(i)}),r(`finance.assign.effective.${i}`)]},i)),a==="date"&&e.jsxs(e.Fragment,{children:[e.jsx("input",{type:"date",value:s,min:zt(),onChange:i=>t(i.target.value),"aria-label":r("finance.assign.effective.date"),className:"px-2 py-1 text-sm rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-fuchsia-400"}),e.jsx(l,{k:"assign.effective.specificDate",label:r("finance.assign.effective.date"),className:"-ml-2.5"})]})]})]})}function Ht({preview:a,purchaseAcknowledged:s=!1,onPurchaseAcknowledgedChange:n}){const{t}=I("system-admin"),r=new Date(a.starts_at).getTime()>Date.now(),i=U(a.starts_at),d=a.billing_effective_at!==a.entitlements_effective_at,c=a.first_period_predates_start&&!a.first_period_already_billed,x=Math.max(0,Math.floor((new Date(a.starts_at).getTime()-new Date(a.period_start).getTime())/864e5)),o=a.first_period_overlap_end===null?0:Math.max(0,Math.round((new Date(a.first_period_overlap_end).getTime()-new Date(a.period_start).getTime())/864e5)),j=a.first_period_billed_through===null?0:Math.max(0,Math.round((new Date(a.billing_effective_at).getTime()-new Date(a.first_period_billed_through).getTime())/864e5));return e.jsxs("div",{className:"space-y-1.5 text-sm",children:[r&&e.jsxs("p",{className:"flex items-start gap-2 text-amber-700 dark:text-amber-400",children:[e.jsx(ja,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a.current_plan_name?t("finance.assign.effective.scheduled",{plan:a.current_plan_name,date:i}):t("finance.assign.effective.scheduledNoCurrent",{date:i})})]}),e.jsxs("p",{className:"flex items-start gap-2 text-gray-600 dark:text-gray-400",children:[e.jsx(as,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[d?t("finance.assign.effective.billingSplit",{entitlements:U(a.entitlements_effective_at),billing:U(a.billing_effective_at)}):t("finance.assign.effective.sameDate",{date:U(a.entitlements_effective_at)}),e.jsx(l,{k:"assign.effective.timingNotice",className:"ml-1"})]})]}),c&&e.jsxs("p",{className:"flex items-start gap-2 text-amber-700 dark:text-amber-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[a.first_period_overlap_end!==null?t("finance.assign.effective.firstPeriodOverlap",{count:o,start:U(a.period_start),end:U(a.period_end),overlap:U(a.first_period_overlap_end)}):t("finance.assign.effective.firstPeriodUnbilled",{count:x,start:U(a.period_start),end:U(a.period_end)})," ",t("finance.assign.effective.firstPeriodUnbilledAlternative",{date:U(a.period_end)})]})]}),a.defers_past_billed_period&&a.first_period_billed_through!==null&&e.jsxs("p",{className:"flex items-start gap-2 text-red-700 dark:text-red-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[t("finance.assign.effective.deferredUnbilled",{count:j,billed:U(a.first_period_billed_through),book:a.price_book_name,billing:U(a.billing_effective_at)})," ",t("finance.assign.effective.deferredUnbilledAlternative",{date:U(a.first_period_billed_through)})]})]}),a.replaced_purchase_intent_id!=null?e.jsxs("div",{className:"space-y-1.5 rounded-md border border-amber-300 bg-amber-50 px-3 py-2 dark:border-amber-800 dark:bg-amber-900/20",children:[e.jsxs("p",{className:"flex items-start gap-2 text-amber-800 dark:text-amber-300",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[t(a.replaced_purchase_amount==null?"finance.assign.effective.replacesPurchase":"finance.assign.effective.replacesPurchaseAmount",{plan:a.replaced_pending_plan_name??"",amount:K(a.replaced_purchase_amount??"0",a.replaced_purchase_currency??"EUR"),date:a.replaced_pending_starts_at?U(a.replaced_pending_starts_at):""}),e.jsx(l,{k:"assign.effective.replacesPurchase",className:"ml-1"})]})]}),n!==void 0&&e.jsxs("label",{className:"flex items-start gap-2 pl-6 text-amber-800 dark:text-amber-300",children:[e.jsx("input",{type:"checkbox",checked:s,onChange:b=>n(b.target.checked),className:"mt-0.5"}),e.jsx("span",{children:t("finance.assign.effective.acknowledgePurchase")})]})]}):a.replaced_pending_contract_id!==null&&e.jsxs("p",{className:"flex items-start gap-2 text-amber-700 dark:text-amber-400",children:[e.jsx(ja,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[t("finance.assign.effective.replacesPending",{plan:a.replaced_pending_plan_name??"",date:a.replaced_pending_starts_at?U(a.replaced_pending_starts_at):""}),e.jsx(l,{k:"assign.effective.replacesPending",className:"ml-1"})]})]})]})}function Le(a,s,n,t){if(a==null)return(s==null?void 0:s.type)==="numeric_or_null"?n("finance.designer.package.unlimited"):(s==null?void 0:s.type)==="int_or_null"?n("finance.designer.package.noLimit"):n("finance.assign.value.notSet");switch(s==null?void 0:s.type){case"enum":return n(`finance.designer.enumValues.${String(a)}`,{defaultValue:String(a)});case"numeric_or_null":return es(a,t);case"int_or_null":return ge(a,t)}return typeof a=="boolean"?n(a?"finance.assign.value.true":"finance.assign.value.false"):String(a)}const Ee="policy.mode",cs="policy.image_quality_max",ds="feature.source_type.video",os="feature.document_ai_ingest",be="limit.ai_budget_month",Gt=[Ee,cs,ds,os,be];function Vt(a){return`seats.hard_cap.${a}`}function ca(a){return`finance.designer.keys.${a.split(".").join("_")}`}function da(a,s){const n={};for(const t of s){const r=t.key in a?a[t.key]:t.default;switch(t.type){case"bool":n[t.key]=r===!0;break;case"enum":n[t.key]=typeof r=="string"?r:String(t.default??"");break;case"int_or_null":case"numeric_or_null":n[t.key]=r==null?null:String(r);break;default:n[t.key]=r==null?null:String(r)}}return n}function ms(a,s){const n=[];for(const t of s){const r=a[t.key];r===null||typeof r=="boolean"||(t.type==="int_or_null"?/^\d+$/.test(r.trim())||n.push(t.key):t.type==="numeric_or_null"&&(/^\d+([.,]\d{1,2})?$/.test(r.trim())||n.push(t.key)))}return n}function Qt(a,s,n){const t={};for(const r of s)t[r.key]=xs(r,a[r.key],n);return t}function xs(a,s,n={}){switch(a.type){case"bool":return s===!0;case"enum":return s;case"int_or_null":return s===null||typeof s=="boolean"?null:Number.parseInt(s.trim(),10);case"numeric_or_null":return s===null||typeof s=="boolean"?null:s.trim().replace(",",".");default:return a.key in n?n[a.key]:a.default}}function Yt(a,s){return a.key in s?s[a.key]:a.default}const Wt=["flat","per_seat","tiered_seat","one_off"],ve={flat:{role:!1,amount:!0,seatQuantities:!1,tiers:!1},per_seat:{role:!0,amount:!0,seatQuantities:!0,tiers:!1},tiered_seat:{role:!0,amount:!1,seatQuantities:!0,tiers:!0},one_off:{role:!1,amount:!0,seatQuantities:!1,tiers:!1}},Xt=["graduated","volume"];function gs(){return crypto.randomUUID()}function us(){return{uid:gs(),up_to:"",unit_price:""}}function Jt(a){return{uid:gs(),kind:a,label:"",ff_role:"",amount:"",included_count:"0",minimum_quantity:"0",tier_mode:"",tiers:a==="tiered_seat"?[us()]:[]}}function ps(a){return{uid:a.id,kind:a.kind,label:a.label,ff_role:a.ff_role??"",amount:a.amount??"",included_count:String(a.included_count),minimum_quantity:String(a.minimum_quantity),tier_mode:a.tier_mode??"",tiers:a.tiers.map(s=>({uid:s.id,up_to:s.up_to===null?"":String(s.up_to),unit_price:s.unit_price}))}}function Na(a){return a.trim().replace(",",".")}function va(a){const s=Number.parseInt(a.trim(),10);return Number.isFinite(s)&&s>0?s:0}function oa(a){const s=ve[a.kind],n={kind:a.kind,label:a.label.trim()};if(s.role&&(n.ff_role=a.ff_role),s.amount&&(n.amount=Na(a.amount)),s.seatQuantities&&(n.included_count=va(a.included_count),n.minimum_quantity=va(a.minimum_quantity)),s.tiers){a.tier_mode&&(n.tier_mode=a.tier_mode);const t=a.tiers.length-1;n.tiers=a.tiers.map((r,i)=>({up_to:i===t?null:Number.parseInt(r.up_to.trim(),10),unit_price:Na(r.unit_price)}))}return n}const _a=/^\d+([.,]\d{1,2})?$/;function hs(a){const s=[];for(const n of a){const t=ve[n.kind];if(n.label.trim()||s.push({uid:n.uid,key:"finance.designer.errors.labelRequired"}),t.role&&!n.ff_role&&s.push({uid:n.uid,key:"finance.designer.errors.roleRequired"}),t.amount&&!_a.test(n.amount.trim())&&s.push({uid:n.uid,key:"finance.designer.errors.amountRequired"}),!t.tiers)continue;n.tier_mode||s.push({uid:n.uid,key:"finance.designer.errors.tierModeRequired"});const r=n.tiers.slice(0,-1);let i=0;for(const d of r){const c=Number.parseInt(d.up_to.trim(),10);if(!Number.isFinite(c)||c<1){s.push({uid:n.uid,key:"finance.designer.errors.bandBoundRequired"});break}if(c<=i){s.push({uid:n.uid,key:"finance.designer.errors.bandsMustAscend",params:{previous:i,current:c}});break}i=c}n.tiers.some(d=>!_a.test(d.unit_price.trim()))&&s.push({uid:n.uid,key:"finance.designer.errors.bandPriceRequired"})}return s}function fs(a,s){if(s.length===0)return[];const n=new Set(s.filter(t=>ve[t.kind].role&&t.ff_role).map(t=>t.ff_role));return je.filter(t=>{if(n.has(t))return!1;const r=a[Vt(t)];return r==null||r===""})}function Zt({changes:a,reductionCount:s,descriptors:n}){const{t,i18n:r}=I("system-admin"),i=f.useMemo(()=>new Map(n.map(d=>[d.key,d])),[n]);return e.jsxs("section",{"aria-label":t("finance.assign.entitlements.title"),className:"rounded-lg border border-gray-200 dark:border-gray-700 p-4 flex flex-col",children:[e.jsxs("h3",{className:"inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400 mb-3",children:[t("finance.assign.entitlements.title"),e.jsx(l,{k:"assign.entitlements.panel",size:"md"})]}),a.length===0?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 flex-1",children:t("finance.assign.entitlements.none")}):e.jsx("ul",{className:"space-y-2 flex-1",children:a.map(d=>{const c=i.get(d.key);return e.jsxs("li",{className:"text-sm",children:[e.jsx("span",{className:"block text-gray-500 dark:text-gray-400",children:t(ca(d.key),{defaultValue:(c==null?void 0:c.label_hint)??d.key})}),e.jsxs("span",{className:d.is_loss?"flex flex-wrap items-baseline gap-x-2 font-medium text-red-600 dark:text-red-400":"flex flex-wrap items-baseline gap-x-2 text-gray-800 dark:text-gray-200",children:[e.jsx("span",{children:Le(d.before,c,t,r.language)}),e.jsx("span",{"aria-hidden":"true",children:"â"}),e.jsx("span",{className:"font-semibold",children:Le(d.after,c,t,r.language)}),d.is_loss&&e.jsxs("span",{className:"text-xs uppercase tracking-wider",children:[t("finance.assign.entitlements.loss"),e.jsx(l,{k:"assign.entitlements.lossMarker",className:"ml-1"})]})]})]},d.key)})}),e.jsxs("p",{className:s>0?"mt-3 pt-3 border-t border-gray-200 dark:border-gray-700 flex items-start gap-2 text-sm font-medium text-red-600 dark:text-red-400":"mt-3 pt-3 border-t border-gray-200 dark:border-gray-700 text-sm text-gray-500 dark:text-gray-400",children:[s>0?e.jsxs(e.Fragment,{children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:t("finance.assign.entitlements.reduced",{count:s})})]}):t("finance.assign.entitlements.noReductions"),e.jsx(l,{k:"assign.entitlements.reductionCount",className:"ml-1 mt-0.5"})]})]})}const _e="flex items-start gap-2 text-sm text-gray-600 dark:text-gray-400";function ma({invoice:a}){const{t:s,i18n:n}=I("system-admin"),t=a.currency;return e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[e.jsx("th",{scope:"col",className:"text-left font-medium pb-1",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.invoice.columns.line"),e.jsx(l,{k:"invoices.preview.lineColumn",label:s("finance.invoice.columns.line")})]})}),e.jsx("th",{scope:"col",className:"text-right font-medium pb-1",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(l,{k:"invoices.preview.quantityColumn",label:s("finance.invoice.columns.quantity")}),s("finance.invoice.columns.quantity")]})}),e.jsx("th",{scope:"col",className:"text-right font-medium pb-1",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(l,{k:"invoices.preview.unitPriceColumn",label:s("finance.invoice.columns.unitPrice")}),s("finance.invoice.columns.unitPrice")]})}),e.jsx("th",{scope:"col",className:"text-right font-medium pb-1",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(l,{k:"invoices.preview.amountColumn",label:s("finance.invoice.columns.amount")}),s("finance.invoice.columns.amount")]})})]})}),e.jsxs("tbody",{className:"text-gray-800 dark:text-gray-200",children:[a.lines.map(r=>e.jsxs("tr",{className:"border-t border-gray-100 dark:border-gray-700",children:[e.jsx("td",{className:"py-1 pr-3",children:r.label}),e.jsx("td",{className:"py-1 text-right tabular-nums",children:ge(r.quantity,n.language)}),e.jsx("td",{className:"py-1 text-right tabular-nums",children:K(r.unit_price,t)}),e.jsx("td",{className:"py-1 text-right tabular-nums",children:K(r.amount,t)})]},r.position)),a.lines.length===0&&e.jsx("tr",{className:"border-t border-gray-100 dark:border-gray-700",children:e.jsx("td",{colSpan:4,className:"py-1 text-gray-500 dark:text-gray-400",children:s("finance.invoice.nothingBillable")})})]}),e.jsxs("tfoot",{children:[Number(a.tax_total)!==0&&e.jsxs("tr",{className:"border-t border-gray-200 dark:border-gray-700 text-gray-700 dark:text-gray-300",children:[e.jsx("td",{className:"pt-2",colSpan:3,children:e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[s("finance.invoice.tax"),e.jsx(l,{k:"invoices.preview.tax"})]})}),e.jsx("td",{className:"pt-2 text-right tabular-nums",children:K(a.tax_total,t)})]}),e.jsxs("tr",{className:"border-t-2 border-gray-300 dark:border-gray-600 font-semibold text-gray-900 da
16rk:text-white",children:[e.jsx("td",{className:"pt-2",colSpan:3,children:e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[a.tax_treatment===null?s(`finance.invoice.totalNet.${a.billing_interval}`):s(`finance.invoice.total.${a.billing_interval}`),e.jsx(l,{k:a.tax_treatment===null?"invoices.preview.totalNet":"invoices.preview.total"})]})}),e.jsx("td",{className:"pt-2 text-right tabular-nums",children:K(a.total,t)})]}),a.tax_note!==null&&a.tax_note!==""&&e.jsx("tr",{children:e.jsx("td",{colSpan:4,className:"pt-2",children:e.jsxs("span",{className:_e,children:[e.jsx(le,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a.tax_note})]})})})]})]})}function xa({seats:a}){const{t:s,i18n:n}=I("system-admin");return e.jsx(e.Fragment,{children:a.map(t=>e.jsxs("p",{className:_e,children:[e.jsx(le,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[s(t.minimum_quantity>0?"finance.invoice.seatNoteWithMinimum":"finance.invoice.seatNote",{label:t.label,held:ge(t.held,n.language),included:ge(t.included_count,n.language),minimum:ge(t.minimum_quantity,n.language),billable:ge(t.billable,n.language)}),e.jsx(l,{k:"invoices.preview.seatNote",className:"ml-1.5"})]})]},t.charge_line_index))})}function ei({preview:a}){const{t:s,i18n:n}=I("system-admin"),{getRoleLabel:t}=we(),r=je.every(d=>(a.held_counts[d]??0)===0),i=je.map(d=>s("finance.assign.invoice.headcount",{n:ge(a.held_counts[d]??0,n.language),role:t(d)})).join(", ");return e.jsxs("section",{"aria-label":s("finance.assign.invoice.title"),className:"rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsxs("h3",{className:"inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[s("finance.assign.invoice.title"),e.jsx(l,{k:"assign.invoice.panel",size:"md"})]}),e.jsxs("p",{className:"mt-1 mb-3 text-xs text-gray-500 dark:text-gray-400",children:[s("finance.assign.invoice.billedTo",{name:a.organization_legal_name})," · ",s("finance.assign.invoice.pricedAgainst",{counts:i}),r?` ${s("finance.assign.invoice.noSeatsHeld")}`:"",e.jsx(l,{k:"assign.invoice.billedTo",className:"ml-1"})]}),e.jsx(ma,{invoice:a.invoice}),a.invoice.seat_quantities.length>0&&e.jsxs("div",{className:"mt-3 flex items-start gap-1.5",children:[e.jsx("div",{className:"flex-1 space-y-1.5",children:e.jsx(xa,{seats:a.invoice.seat_quantities})}),e.jsx(l,{k:"assign.invoice.seatNotes",className:"mt-1"})]})]})}function ys(a){const{enabled:s}=ea(),{data:n,isLoading:t,isError:r,refetch:i,isFetching:d}=W({queryKey:["admin-org-payment-method",a],queryFn:()=>Vn(a),enabled:a!==null&&s,staleTime:15e3,retry:!1}),c=(n==null?void 0:n.payment_method)??null,x=c!=null;return{paymentsEnabled:s,method:c,hasMethod:x,methodUnknown:(n==null?void 0:n.provider_unavailable)===!0||r,autoChargeAvailable:s&&x,isLoading:t,isRefetching:d,refetch:()=>void i()}}const $e="w-full px-2 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-fuchsia-400 disabled:bg-gray-50 disabled:text-gray-500 dark:disabled:bg-gray-900",Ce="block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1";function ai({planId:a}){var fa,ya;const{t:s}=I("system-admin"),{t:n}=I("common"),t=ce(),{getRoleLabel:r}=we(),[i,d]=f.useState(null),[c,x]=f.useState(void 0),[o,j]=f.useState(null),[b,p]=f.useState("next_renewal"),[g,S]=f.useState(""),[_,C]=f.useState(""),[k,T]=f.useState("manual_transfer"),[w,N]=f.useState(!1),[H,m]=f.useState(null),{data:v=[],isLoading:y}=W({queryKey:["admin-plans","assignable"],queryFn:()=>Oe({status:"active",limit:ke})}),h=c!==void 0?c:v.some(M=>M.id===a)?a:null,P=c===void 0&&a!==null&&!y&&!v.some(M=>M.id===a),{data:L,isLoading:D}=W({queryKey:["admin-plan",h],queryFn:()=>sa(h),enabled:h!==null}),G=f.useMemo(()=>(L==null?void 0:L.price_books)??[],[L]),J=o!==null&&G.some(M=>M.id===o)?o:((fa=G.find(M=>M.is_default))==null?void 0:fa.id)??((ya=G[0])==null?void 0:ya.id)??null,{data:oe=[]}=W({queryKey:["admin-entitlement-keys"],queryFn:na,staleTime:1/0}),u=f.useMemo(()=>h===null||J===null||b==="date"&&g===""?null:{plan_id:h,price_book_id:J,effective:b,...b==="date"?{effective_date:g}:{}},[h,J,b,g]),O=(i==null?void 0:i.id)??null,E=u===null?"":JSON.stringify(u),Z=ys(O),B=k==="auto_charge"&&!Z.autoChargeAvailable?"manual_transfer":k,{data:ne,error:fe,is
16Fetching:Ie}=W({queryKey:["admin-contract-preview",O,E],queryFn:({signal:M})=>Ys(O,u,M),enabled:O!==null&&u!==null,staleTime:3e4,retry:!1}),Q=ne!==void 0&&ne.organization_id===O&&ne.plan_id===h&&ne.price_book_id===J?ne:null,Me=V({mutationFn:()=>Qs(O,{...u,..._.trim()===""?{}:{note:_.trim()},collection_method:B,acknowledge_purchase_cancellation:Be}),onSuccess:M=>{F.success(s(M.contract.status==="pending"?"finance.assign.toast.assignedPending":"finance.assign.toast.assignedNow",{plan:M.contract.plan_name,organisation:M.contract.organization_legal_name,date:U(M.contract.starts_at)})),N(!1),C(""),t.invalidateQueries({queryKey:["admin-plan",h]}),t.invalidateQueries({queryKey:["admin-plans"]}),t.invalidateQueries({queryKey:["admin-contract-preview"]}),ra(t)},onError:M=>{N(!1),F.error(z(M,s("finance.assign.toast.failed")))}}),Ss=f.useMemo(()=>Q===null?"":[s("finance.assign.dialog.summary",{plan:Q.plan_name,priceBook:Q.price_book_name,organisation:Q.organization_name}),new Date(Q.starts_at).getTime()>Date.now()?s("finance.assign.dialog.startsLater",{date:U(Q.starts_at)}):s("finance.assign.dialog.startsNow"),Q.replaced_purchase_intent_id!=null?s("finance.assign.dialog.cancelsPurchase",{plan:Q.replaced_pending_plan_name??"",date:Q.replaced_pending_starts_at?U(Q.replaced_pending_starts_at):""}):null,Q.reduction_count>0?s("finance.assign.dialog.reductions",{count:Q.reduction_count}):null,Q.plan_locked_at===null?s("finance.assign.dialog.lock"):null].filter(M=>M!==null).join(` 17 18`),[Q,s]),ha=k!=="auto_charge"||Z.autoChargeAvailable,Be=Q!==null&&Q.replaced_purchase_intent_id!=null&&H===Q.replaced_purchase_intent_id,Es=Q!==null&&!Q.blocked&&!Ie&&ha&&(Q.replaced_purchase_intent_id==null||Be);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:[s("finance.assign.intro"),e.jsx(l,{k:"assign.overview",className:"ml-1.5"})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-4 items-start",children:[e.jsxs("div",{children:[e.jsxs("span",{className:Ce,children:[s("finance.assign.organisation.label"),e.jsx(l,{k:"assign.organisation",label:s("finance.assign.organisation.label"),className:"ml-1.5"})]}),e.jsx(is,{value:i,onChange:M=>{d(M),T("manual_transfer"),N(!1)}}),Q!==null&&e.jsxs("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:[Q.current_plan_name?Q.current_plan_code?s("finance.assign.organisation.currentPlanWithCode",{name:Q.current_plan_name,code:Q.current_plan_code}):s("finance.assign.organisation.currentPlan",{name:Q.current_plan_name}):s("finance.assign.organisation.noCurrentPlan"),e.jsx(l,{k:"assign.currentPlan",className:"ml-1"})]})]}),e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:"assign-plan",className:Ce,children:s("finance.assign.plan.label")}),e.jsx(l,{k:"assign.plan",label:s("finance.assign.plan.label"),className:"mb-1"})]}),e.jsxs("select",{id:"assign-plan",value:h??"",onChange:M=>{x(M.target.value===""?null:M.target.value),j(null),N(!1)},className:$e,children:[e.jsx("option",{value:"",children:s("finance.assign.plan.placeholder")}),v.map(M=>e.jsxs("option",{value:M.id,children:[M.name," · ",M.code]},M.id))]}),!y&&v.length===0&&e.jsx("span",{className:"mt-1 block text-xs text-amber-700 dark:text-amber-400",children:s("finance.assign.plan.empty")}),P&&e.jsx("span",{className:"mt-1 block text-xs text-amber-700 dark:text-amber-400",children:s("finance.assign.plan.draftPrefill")})]}),e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:"assign-price-book",className:Ce,children:s("finance.assign.priceBook.label")}),e.jsx(l,{k:"assign.priceBook",className:"mb-1"})]}),e.jsx("select",{id:"assign-price-book",value:J??"",disabled:G.length===0,onChange:M=>{j(M.target.value===""?null:M.target.value),N(!1)},className:$e,children:G.map(M=>e.jsxs("option",{value:M.id,children:[M.name,M.is_default?` · ${s("finance.assign.priceBook.default")}`:""]},M.id))}),h!==null&&L!==void 0&&G.length===0&&e.jsx("span",{className:"mt-1 block text-xs text-amber-700 dark:text-amber-400",children:s("finance.assign.priceBook.empty")})]}),e.jsx(rs,{id:"assign-collection-method",value:k,method:Z,fieldClassName:$e,labelClassName:Ce,onChange:M=>{T(M),N(!1)}}),e.jsx(Ut,{effective:b,effectiveDate:g,onEffectiveChange:M=>{p(M),N(!1)},onDateChange:M=>{S(M),N(!1)}})]}),e.jsx(ls,{organizationId:O,organizationName:(i==null?void 0:i.name)??"",method:Z,c
18ollectionMethod:k}),O===null||h===null||J===null&&!D?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("finance.assign.preview.prompt")}):b==="date"&&g===""?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("finance.assign.effective.dateRequired")}):fe?e.jsx("p",{className:"text-sm text-red-600 dark:text-red-400",children:z(fe,s("finance.assign.preview.failed"))}):Q===null?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("finance.assign.preview.loading")}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`grid gap-4 lg:grid-cols-2 items-start ${Ie?"opacity-60 transition-opacity":"transition-opacity"}`,children:[e.jsx(Zt,{changes:Q.entitlement_changes,reductionCount:Q.reduction_count,descriptors:oe}),e.jsx(ei,{preview:Q})]}),e.jsx(Ht,{preview:Q,purchaseAcknowledged:Be,onPurchaseAcknowledgedChange:M=>{m(M?Q.replaced_purchase_intent_id:null),N(!1)}}),Q.hard_cap_violations.length>0&&e.jsxs("div",{className:"rounded-lg border border-red-300 dark:border-red-800 bg-red-50 dark:bg-red-900/20 p-3",children:[e.jsxs("p",{className:"flex items-start gap-2 text-sm font-medium text-red-700 dark:text-red-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[s("finance.assign.blocked.title"),e.jsx(l,{k:"assign.blocked",className:"ml-1"})]})]}),e.jsx("ul",{className:"mt-1 pl-6 space-y-0.5 text-sm text-red-700 dark:text-red-400",children:Q.hard_cap_violations.map(M=>e.jsx("li",{children:s("finance.assign.blocked.violation",{role:r(M.ff_role),count:M.held,cap:M.hard_cap})},M.ff_role))})]}),e.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[e.jsxs("div",{className:"flex-1 min-w-[16rem]",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:"assign-note",className:Ce,children:s("finance.assign.note.label")}),e.jsx(l,{k:"assign.note",className:"mb-1"})]}),e.jsx("textarea",{id:"assign-note",value:_,onChange:M=>C(M.target.value),rows:2,placeholder:s("finance.assign.note.placeholder"),className:$e})]}),e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(A,{variant:"primary",disabled:!Es,isLoading:Me.isPending,onClick:()=>N(!0),"data-help":"finance.assign.submit",children:s("finance.assign.submit")}),e.jsx(l,{k:"assign.submit",label:s("finance.assign.submit")})]})]})]}),e.jsx(xe,{isOpen:w&&Q!==null&&ha,title:s("finance.assign.dialog.title"),body:Ss,confirmLabel:s("finance.assign.submit"),confirmHelpId:"finance.assign.confirm",cancelLabel:n("actions.cancel"),isLoading:Me.isPending,danger:Q!==null&&Q.reduction_count>0,onConfirm:()=>Me.mutate(),onClose:()=>N(!1)})]})}function Fe({title:a,description:s,isEmpty:n,emptyLabel:t,note:r,helpKey:i,children:d}){return e.jsxs("section",{className:"bg-white dark:bg-gray-800 rounded-lg shadow overflow-hidden",children:[e.jsxs("header",{className:"px-4 py-3 border-b border-gray-200 dark:border-gray-700",children:[e.jsxs("h2",{className:"inline-flex items-center gap-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100",children:[a,i?e.jsx(l,{k:i,size:"md",label:a}):null]}),e.jsx("p",{className:"mt-0.5 text-xs text-gray-500 dark:text-gray-400",children:s}),r?e.jsx("p",{className:"mt-2 text-xs text-amber-700 dark:text-amber-400",children:r}):null]}),n?e.jsx("p",{className:"px-4 py-10 text-center text-sm text-gray-500 dark:text-gray-400",children:t}):e.jsx("div",{className:"overflow-x-auto",children:d})]})}const si=[30,60,90,180,365],ni=90,wa={monthly:"finance.book.committed.interval.monthly",annual:"finance.book.committed.interval.annual"},Ca={log:"finance.book.margin.source.log",summary:"finance.book.margin.source.summary",mixed:"finance.book.margin.source.mixed",unavailable:"finance.book.margin.source.unavailable"},Sa={log:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-300",summary:"bg-sky-100 text-sky-800 dark:bg-sky-900/40 dark:text-sky-300",mixed:"bg-indigo-100 text-indigo-800 dark:bg-indigo-900/40 dark:text-indigo-300",unavailable:"bg-amber-100 text-amber-800 dark:bg-amber-900/40 dark:text-amber-300"};function ti(a){return a<=7?"bg-red-100 text-red-800 dark:bg-red-900/40 dark:text-red-300":a<=30?"bg-amber-100 text-amber-800 dark:bg-amber-900/40 dark:text-amber-300":"bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300"}function bs(a){const[s,n,t]=a.split("-").map(Number);return new Date(s,n-1,t)}function ii(a){const s=bs(a);return s.setDate(s.getDate()-1),s}function Ea(a){const s=`${a.getMonth()+1}`.padStart(2,"0"),n=`${a.getDate()}`.padStart(2,"0");return`${a.getFullYear()}-${s}-${n}`}function ri(a=new Date){const s=new Date(a);return s.setFullYear(s.getFullYear()-1),s.setDate(s.getDate()+1),{from:Ea(s),to:Ea(a)}}function li(a){const s=Number(a);return Number.isFinite(s)?s:0}function ci(a){return{grid:a?"#374151":"#e5e7eb",axis:a?"#374151":"#e5e7eb",tick:a?"#9ca3af":"#6b7280",bar:a?"#c026d3":"#d946ef"}}function di({committed:a}){const{t:s,i18n:n}=I("system-admin"),t=Ps(),r=ci(t),i=a.currency,d=i?a.rows.map(o=>({name:`${o.plan_name} (${s(wa[o.billing_interval])})`,value:li(o.annualised_total)})):[],c=d.some(o=>o.value!==0),x=[];return a.contracts_truncated&&x.push(s("finance.book.committed.truncated")),a.unpriced_contract_count>0&&x.push(s("finance.book.committed.unpriced",{count:a.unpriced_contract_count})),!i&&a.rows.length>0&&x.push(s("finance.book.committed.mixedCurrency")),e.jsxs(Fe,{title:s("finance.book.committed.title"),description:s("finance.book.committed.description"),isEmpty:a.rows.length===0,emptyLabel:s("finance.book.committed.empty"),note:x.length>0?x.join(" "):void 0,helpKey:"book.committed.panel",children:[e.jsxs("div",{className:"px-4 py-4",children:[e.jsxs("p",{className:"inline-flex items-center gap-1.5 text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[s("finance.book.committed.annualisedTotal"),e.jsx(l,{k:"book.committed.annualisedTotal"})]}),e.jsx("p",{className:"mt-1 text-2xl font-semibold text-gray-900 dark:text-gray-100",children:i?K(a.annualised_total,i):s("finance.book.committed.noTotal")}),e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:s("finance.book.committed.contractCount",{count:a.contract_count})})]}),c?e.jsx("div",{className:"px-2 pb-4",style:{height:40+d.length*40},children:e.jsx(gt,{width:"100%",height:"100%",children:e.jsxs(ut,{data:d,layout:"vertical",margin:{left:8,right:24},children:[e.jsx(pt,{stroke:r.grid,horizontal:!1}
18),e.jsx(ht,{type:"number",stroke:r.axis,tick:{fill:r.tick,fontSize:11},tickFormatter:o=>K(String(o),i)}),e.jsx(ft,{type:"category",dataKey:"name",width:160,stroke:r.axis,tick:{fill:r.tick,fontSize:11}}),e.jsx(yt,{cursor:{fill:t?"#37415155":"#f3f4f6"},contentStyle:{background:t?"#1f2937":"#ffffff",border:`1px solid ${r.grid}`,borderRadius:8,fontSize:12,color:t?"#f9fafb":"#111827"},formatter:o=>K(String(o),i)}),e.jsx(bt,{dataKey:"value",fill:r.bar,radius:[0,4,4,0]})]})})}):null,e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-900/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:s("finance.book.committed.columns.plan")}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.book.committed.columns.interval"),e.jsx(l,{k:"book.committed.columns.interval",label:s("finance.book.committed.columns.interval")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.book.committed.columns.contracts"),e.jsx(l,{k:"book.committed.columns.contracts",label:s("finance.book.committed.columns.contracts")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.book.committed.columns.periodTotal"),e.jsx(l,{k:"book.committed.columns.periodTotal",label:s("finance.book.committed.columns.periodTotal")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.book.committed.columns.annualised"),e.jsx(l,{k:"book.committed.columns.annualised"})]})})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:a.rows.map(o=>e.jsxs("tr",{children:[e.jsxs("td",{className:"px-4 py-3 text-sm text-gray-900 dark:text-gray-100",children:[e.jsx("span",{className:"font-medium",children:o.plan_name}),e.jsx("span",{className:"ml-2 text-xs text-gray-500 dark:text-gray-400",children:o.plan_code}),o.includes_one_off?e.jsxs("span",{className:$(de,"ml-2"),children:[e.jsx("span",{className:$(ee,"bg-amber-100 text-amber-800 dark:bg-amber-900/40 dark:text-amber-300"),title:s("finance.book.committed.includesOneOffHelp"),children:s("finance.book.committed.includesOneOff")}),e.jsx(l,{k:"book.committed.includesOneOff",label:s("finance.book.committed.includesOneOff")})]}):null]}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:s(wa[o.billing_interval])}),e.jsx("td",{className:"px-4 py-3 text-sm text-right text-gray-600 dark:text-gray-300",children:ge(o.contract_count,n.language)}),e.jsx("td",{className:"px-4 py-3 text-sm text-right text-gray-600 dark:text-gray-300",children:K(o.period_total,o.currency)}),e.jsx("td",{className:"px-4 py-3 text-sm text-right font-medium text-gray-900 dark:text-gray-100",children:K(o.annualised_total,o.currency)})]},`${o.plan_id}-${o.billing_interval}-${o.currency}`))})]})]})}function oi({rows:a,horizonDays:s}){const{t:n}=I("system-admin"),{getRoleLabel:t}=we();return e.jsx(Fe,{title:n("finance.book.commitments.title"),description:n("finance.book.commitments.description"),isEmpty:a.length===0,emptyLabel:n("finance.book.commitments.empty",{days:s}),helpKey:"book.commitments.panel",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-900/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:n("finance.book.commitments.columns.organization")}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.book.commitments.columns.role"),e.jsx(l,{k:"book.commitments.columns.role",label:n("finance.book.commitments.columns.role")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.book.commitments.columns.seats"),e.jsx(l,{k:"book.commitments.columns.seats",label:n("finance.book.commitments.columns.seats")})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.book.commitments.columns.earliest"),e.jsx(l,{k:"book.commitments.columns.earliest",label:n("finance.book.commitments.columns.earliest")})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.book.commitments.columns.latest"),e.jsx(l,{k:"book.commitments.columns.latest",label:n("finance.book.commitments.columns.latest")})]})})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:a.map(r=>e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-900 dark:text-gray-100",children:r.organization_name}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:t(r.ff_role)}),e.jsx("td",{className:"px-4 py-3 text-sm text-right text-gray-600 dark:text-gray-300",children:r.seat_count}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:U(r.earliest_expiry)}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:U(r.latest_expiry)})]},`${r.organization_id}-${r.ff_role}`))})]})})}function mi({margin:a}){var r;const{t:s}=I("system-admin"),n=((r=a.rows[0])==null?void 0:r.currency)||"EUR",t=[];return a.rows_without_cost>0&&t.push(s("finance.book.margin.someUnavailable",{count:a.rows_without_cost})),a.cost_source!=="log"&&t.push(s("finance.book.margin.retentionNote",{logDays:a.log_retention_days,summaryDays:a.summary_retention_days})),e.jsxs(Fe,{title:s("finance.book.margin.title"),description:s("finance.book.margin.description"),isEmpty:a.rows.length===0,emptyLabel:s("finance.book.margin.empty"),note:t.length>0?t.join(" "):void 0,helpKey:"book.margin.panel",children:[e.jsxs("div",{className:"px-4 py-4 grid grid-cols-1 sm:grid-cols-4 gap-4",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"inline-flex items-center gap-1.5 text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[s("finance.book.margin.totals.invoiced"),e.jsx(l,{k:"book.margin.totals.invoiced",label:s("finance.book.margin.totals.invoiced")})]}),e.jsx("p",{className:"mt-1 text-lg font-semibold text-gray-900 dark:text-gray-100",children:K(a.invoiced_revenue,n)})]}),e.jsxs("div",{children:[e.jsxs("p",{className:"inline-flex items-center gap-1.5 text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[s("finance.book.margin.totals.receipts"),e.jsx(l,{k:"book.margin.totals.receipts",label:s("finance.book.margin.totals.receipts")})]}),e.jsx("p",{className:"mt-1 text-lg font-semibold text-gray-900 dark:text-gray-100",children:K(a.receipt_revenue,n)})]}),e.jsxs("div",{children:[e.jsxs("p",{className:"inline-flex items-center gap-1.5 text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[s("finance.book.margin.totals.aiCost"),e.jsx(l,{k:"book.margin.totals.aiCost",label:s("finance.book.margin.totals.aiCost")})]}),e.jsx("p",{className:"mt-1 text-lg font-semibold text-gray-900 dark:text-gray-100",children:a.ai_cost===null?s("finance.book.margin.costUnavailable"):K(a.ai_cost,n)})]}),e.jsxs("div",{children:[e.jsxs("p",{className:"inline-flex items-center gap-1.5 text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[s("finance.book.margin.totals.margin"),e.jsx(l,{k:"book.margin.totals.margin",label:s("finance.book.margin.totals.margin")})]}),e.jsx("p",{className:"mt-1 text-lg font-semibold text-gray-900 dark:text-gray-100",children:a.margin===null?s("finance.book.margin.costUnavailable"):K(a.margin,n)})]})]}),e.jsxs("p",{className:"px-4 pb-3 text-xs text-gray-500 dark:text-gray-400",children:[s("finance.book.margin.window",{from:U(bs(a.window_start)),to:U(ii(a.window_end))}),e.jsx("span",{className:$(ee,"ml-2",Sa[a.cost_source]),children:s(Ca[a.cost_source])})]}),e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-900/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:s("finance.book.margin.columns.organization")}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.book.margin.columns.invoiced"),e.jsx(l,{k:"book.margin.columns.invoiced",label:s("finance.book.margin.columns.invoiced")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.book.margin.columns.seatTopUp"),e.jsx(l,{k:"book.margin.columns.seatTopUp",label:s("finance.book.margin.columns.seatTopUp")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.book.margin.columns.receipts"),e.jsx(l,{k:"book.margin.columns.receipts",label:s("finance.book.margin.columns.receipts")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.book.margin.columns.aiCost"),e.jsx(l,{k:"book.margin.columns.aiCost",label:s("finance.book.margin.columns.aiCost")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.book.margin.columns.margin"),e.jsx(l,{k:"book.margin.columns.margin",label:s("finance.book.margin.columns.margin")})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.book.margin.columns.source"),e.jsx(l,{k:"book.margin.columns.source"})]})})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:a.rows.map(i=>e.jsxs("tr",{children:[e.jsxs("td",{className:"px-4 py-3 text-sm font-medium text-gray-900 dark:text-gray-100",children:[i.organization_legal_name,i.organization_id===null?e.jsxs("span",{className:$(de,"ml-2"),children:[e.jsx("span",{className:"text-xs font-normal text-gray-500 dark:text-gray-400",children:s("finance.book.margin.deletedOrganization")}),e.jsx(l,{k:"book.margin.deletedOrganization",label:s("finance.book.margin.deletedOrganization")})]}):null]}),e.jsx("td",{className:"px-4 py-3 text-sm text-right text-gray-600 dark:text-gray-300",children:K(i.invoiced_revenue,i.currency)}),e.jsx("td",{className:"px-4 py-3 text-sm text-right text-gray-600 dark:text-gray-300",children:K(i.seat_top_up_revenue,i.currency)}),e.jsx("td",{className:"px-4 py-3 text-sm text-right text-gray-600 dark:text-gray-300",children:K(i.receipt_revenue,i.currency)}),e.jsx("td",{className:"px-4 py-3 text-sm text-right text-gray-600 dark:text-gray-300",children:i.ai_cost===null?e.jsx("span",{className:"text-amber-700 dark:text-amber-400",children:s("finance.book.margin.costUnavailable")}):e.jsxs(e.Fragment,{children:[K(i.ai_cost,i.currency),i.ai_cost_from_fallback_pricing!==null&&Number(i.ai_cost_from_fallback_pricing)>0?e.jsxs("span",{className:$(de,"ml-2"),children:[e.jsx("span",{className:$(ee,"bg-amber-100 text-amber-800 dark:bg-amber-900/40 dark:text-amber-300"),title:s("finance.book.margin.fallbackHelp",{amount:K(i.ai_cost_from_fallback_pricing,i.currency)}),children:s("finance.book.margin.fallbackBadge")}),e.jsx(l,{k:"book.margin.fallbackBadge"})]}):null]})}),e.jsx("td",{className:$("px-4 py-3 text-sm text-right font-medium",i.margin===null?"text-amber-700 dark:text-amber-400":Number(i.margin)<0?"text-red-600 dark:text-red-400":"text-gray-900 dark:text-gray-100"),children:i.margin===null?s("finance.book.margin.costUnavailable"):K(i.margin,i.currency)}),e.jsx("td",{className:"px-4 py-3 text-sm",children:e.jsx("span",{className:$(ee,Sa[i.cost_source]),children:s(Ca[i.cost_source])})})]},i.organization_id??`orphan-${i.organization_legal_name}`))})]})]})}function xi({rows:a,truncated:s}){const{t:n}=I("system-admin"),{getRoleLabel:t}=we();return e.jsx(Fe,{title:n("finance.book.overIncluded.title"),description:n("finance.book.overIncluded.description"),isEmpty:a.length===0,emptyLabel:n("finance.book.overIncluded.empty"),note:s?n("finance.book.overIncluded.truncated"):void 0,helpKey:"book.overIncluded.panel",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-900/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:n("finance.book.overIncluded.columns.organization")}),e.jsx("th",{className:R,children:n("finance.book.overIncluded.columns.plan")}),e.jsx("th",{className:R,children:n("finance.book.overIncluded.columns.role")}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.book.overIncluded.columns.held"),e.jsx(l,{k:"book.overIncluded.columns.held"})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.book.overIncluded.columns.included"),e.jsx(l,{k:"book.overIncluded.columns.included",label:n("finance.book.overIncluded.columns.included")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.book.overIncluded.columns.over"),e.jsx(l,{k:"book.overIncluded.columns.over",label:n("finance.book.overIncluded.columns.over")})]})})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:a.flatMap(r=>r.roles.map((i,d)=>e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-900 dark:text-gray-100",children:d===0?r.organization_legal_name:null}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:d===0?r.plan_name:null}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:t(i.ff_role)}),e.jsx("td",{className:"px-4 py-3 text-sm text-right text-gray-600 dark:text-gray-300",children:i.held}),e.jsx("td",{className:"px-4 py-3 text-sm text-right text-gray-600 dark:text-gray-300",children:i.included}),e.jsxs("td",{className:"px-4 py-3 text-sm text-right font-semibold text-emerald-700 dark:text-emerald-400",children:["+",i.over]})]},`${r.contract_id}-${i.ff_role}`)))})]})})}const gi=[{key:"stale_billing_events",label:"finance.book.payments.staleEvents",help:"book.payments.staleEvents"},{key:"unmirrored_invoices",label:"finance.book.payments.unmirrored",help:"book.payments.unmirrored"},{key:"unmirrored_credit_notes",label:"finance.book.payments.unmirroredCreditNotes",help:"book.payments.unmirroredCreditNotes"},{key:"finalization_failures",label:"finance.book.payments.finalizationFailures",help:"book.payments.finalizationFailures"},{key:"open_disputes",label:"finance.book.payments.openDisputes",help:"book.payments.openDisputes"},{key:"retrying_invoices",label:"finance.book.payments.retrying",help:"book.payments.retrying"},{key:"stalled_withdrawals",label:"finance.book.payments.stalledWithdrawals",help:"book.payments.stalledWithdrawals"},{key:"unsettled_payments",label:"finance.book.payments.unsettledPayments",help:"book.payments.unsettledPayments"}];function ui({payments:a}){const{t:s}=I("system-admin");return a===null?null:e.jsxs("section",{className:"bg-white dark:bg-gray-800 rounded-lg shadow overflow-hidden",children:[e.jsxs("header",{className:"px-4 py-3 border-b border-gray-200 dark:border-gray-700",children:[e.jsxs("h2",{className:"inline-flex items-center gap-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100",children:[s("finance.book.payments.title"),e.jsx(l,{k:"book.payments.overview",size:"md",label:s("finance.book.payments.title")})]}),e.jsx("p",{className:"mt-0.5 text-xs text-gray-500 dark:text-gray-400",children:s("finance.book.payments.description")})]}),e.jsxs("p",{className:$("px-4 py-2 flex items-center gap-2 text-xs border-b border-gray-200 dark:border-gray-700",a.healthy?"text-emerald-700 dark:text-emerald-400":"text-red-700 dark:text-red-400"),children:[a.healthy?e.jsx(Ne,{className:"w-4 h-4 shrink-0","aria-hidden":"true"}):e.jsx(ae,{className:"w-4 h-4 shrink-0","aria-hidden":"true"}),s(a.healthy?"finance.book.payments.clear":"finance.book.payments.attention")]}),e.jsx("dl",{className:"grid grid-cols-2 sm:grid-cols-3 gap-px bg-gray-2
1800 dark:bg-gray-700",children:gi.map(n=>{const t=a[n.key];return e.jsxs("div",{className:"bg-white dark:bg-gray-800 px-4 py-3",children:[e.jsxs("dt",{className:"inline-flex items-center gap-1 text-xs text-gray-500 dark:text-gray-400",children:[s(n.label),e.jsx(l,{k:n.help,label:s(n.label)})]}),e.jsx("dd",{className:$("mt-0.5 text-xl font-semibold tabular-nums",t>0?"text-red-600 dark:text-red-400":"text-gray-900 dark:text-gray-100"),children:t})]},n.key)})})]})}function pi({renewals:a,horizonDays:s}){const{t:n}=I("system-admin");return e.jsx(Fe,{title:n("finance.book.renewals.title",{days:s}),description:n("finance.book.renewals.description"),isEmpty:a.length===0,emptyLabel:n("finance.book.renewals.empty",{days:s}),helpKey:"book.renewals.panel",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-900/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:n("finance.book.renewals.columns.organization")}),e.jsx("th",{className:R,children:n("finance.book.renewals.columns.plan")}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.book.renewals.columns.endsAt"),e.jsx(l,{k:"book.renewals.columns.endsAt",label:n("finance.book.renewals.columns.endsAt")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.book.renewals.columns.daysRemaining"),e.jsx(l,{k:"book.renewals.columns.daysRemaining",label:n("finance.book.renewals.columns.daysRemaining")})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.book.renewals.columns.onExpiry"),e.jsx(l,{k:"book.renewals.columns.onExpiry",label:n("finance.book.renewals.columns.onExpiry")})]})})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:a.map(t=>e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-900 dark:text-gray-100",children:t.organization_legal_name}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:t.plan_name}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:U(t.ends_at)}),e.jsx("td",{className:"px-4 py-3 text-sm text-right",children:e.jsx("span",{className:$(ee,ti(t.days_remaining)),children:n("finance.book.renewals.days",{count:t.days_remaining})})}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:t.on_expiry==="auto_renew"?n("finance.designer.term.onExpiry.auto_renew"):n("finance.book.renewals.switchesTo",{plan:t.successor_plan_name||n("finance.book.renewals.unknownSuccessor")})})]},t.contract_id))})]})})}const La="px-2 py-1.5 text-sm rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100";function hi(){const{t:a}=I("system-admin"),{t:s}=I("common"),[n,t]=f.useState(ri),[r,i]=f.useState(ni),d=n.from>n.to,{data:c,isLoading:x,error:o}=W({queryKey:["admin-finance-dashboard",n.from,n.to,r],enabled:!d,staleTime:3e4,queryFn:()=>Ws({from:n.from,to:n.to,horizon_days:r})});return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:[a("finance.book.intro"),e.jsx(l,{k:"book.overview",className:"ml-1.5"})]}),e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-4 flex flex-wrap items-end gap-6",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 dark:text-gray-400 mb-1.5",children:[a("finance.book.window.marginRange"),e.jsx(l,{k:"book.window.marginPeriod",label:a("finance.book.window.marginRange")})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"date","aria-label":a("finance.book.window.from"),className:La,value:n.from,onChange:j=>t(b=>({...b,from:j.target.value}))}),e.jsx("span",{className:"text-gray-400",children:"-"}),e.jsx("input",{type:"date","aria-label":a("finance.book.window.to"),className:La,value:n.to,onChange:j=>t(b=>({...b,to:j.target.value}))})]})]}),e.jsxs("div",{children:[e.jsxs("p",{className:"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 dark:text-gray-400 mb-1.5",children:[a("finance.book.window.horizon"),e.jsx(l,{k:"book.window.horizon",label:a("finance.book.window.horizon")})]}),e.jsx("div",{className:"inline-flex gap-1 bg-gray-100 dark:bg-gray-900/50 rounded-lg p-1",children:si.map(j=>e.jsx("button",{type:"button",onClick:()=>i(j),"data-help":"finance.book.horizon",className:$(he,r===j?"bg-white dark:bg-gray-700 text-fuchsia-600 dark:text-fuchsia-400 shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200"),children:a("finance.book.window.horizonOption",{count:j})},j))})]})]}),d?e.jsx("p",{className:"text-sm text-red-600 dark:text-red-400",children:a("finance.book.window.invalidRange")}):x?e.jsx("div",{className:"text-center py-12 text-gray-500 dark:text-gray-400",children:s("actions.loading")}):o||!c?e.jsx("div",{className:"text-center py-12 text-red-600 dark:text-red-400",children:z(o,a("finance.book.loadFailed"))}):e.jsxs(e.Fragment,{children:[e.jsx(di,{committed:c.committed}),e.jsx(pi,{renewals:c.renewals,horizonDays:c.horizon_days}),e.jsx(xi,{rows:c.over_included,truncated:c.committed.contracts_truncated}),e.jsx(oi,{rows:c.expiring_commitments,horizonDays:c.horizon_days}),e.jsx(mi,{margin:c.margin}),e.jsx(ui,{payments:c.payments})]})]})}const Pa="px-2 py-1 text-sm rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-fuchsia-400 disabled:bg-gray-50 disabled:text-gray-500 dark:disabled:bg-gray-900";
18function fi({line:a,readOnly:s,onTiersChange:n,onTierModeChange:t}){const{t:r}=I("system-admin"),i=a.tiers.length-1,d=x=>{if(x===0)return"1";const o=Number.parseInt(a.tiers[x-1].up_to.trim(),10);return Number.isFinite(o)?String(o+1):"?"},c=(x,o)=>{n(a.tiers.map(j=>j.uid===x?{...j,...o}:j))};return e.jsxs("div",{className:"mt-2 pl-6 border-l-2 border-gray-200 dark:border-gray-700 space-y-2",children:[a.tiers.map((x,o)=>e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"w-10 text-right text-sm tabular-nums text-gray-500 dark:text-gray-400",children:d(o)}),e.jsx("span",{className:"text-gray-400",children:"â"}),o===i?e.jsx("span",{className:"w-24 text-center text-sm text-gray-500 dark:text-gray-400",title:r("finance.designer.tiers.openEnded"),children:"â"}):e.jsxs(e.Fragment,{children:[e.jsx("input",{type:"number",min:1,step:1,value:x.up_to,disabled:s,onChange:j=>c(x.uid,{up_to:j.target.value}),"aria-label":r("finance.designer.tiers.upTo"),className:`${Pa} w-24 tabular-nums`}),e.jsx(l,{k:"pricing.tiers.upTo",label:r("finance.designer.tiers.upTo")})]}),e.jsx("input",{type:"number",min:0,step:"0.01",value:x.unit_price,disabled:s,onChange:j=>c(x.uid,{unit_price:j.target.value}),placeholder:r("finance.designer.tiers.unitPrice"),"aria-label":r("finance.designer.tiers.unitPrice"),className:`${Pa} w-28 tabular-nums`}),e.jsx(l,{k:"pricing.tiers.unitPrice",label:r("finance.designer.tiers.unitPrice")}),!s&&o!==i&&e.jsx("button",{type:"button",onClick:()=>n(a.tiers.filter(j=>j.uid!==x.uid)),"aria-label":r("finance.designer.tiers.removeBand"),"data-help":"finance.tiers.removeBand",className:"p-1 rounded text-gray-400 hover:text-red-600 hover:bg-gray-100 dark:hover:bg-gray-700",children:e.jsx(Ba,{className:"w-3.5 h-3.5"})}),e.jsx(l,{k:"pricing.tiers.ladder",className:"ml-1"})]},x.uid)),!s&&e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsxs("button",{type:"button",onClick:()=>n([...a.tiers.slice(0,i),us(),a.tiers[i]]),"data-help":"finance.tiers.addBand",className:"inline-flex items-center gap-1 text-sm text-fuchsia-600 dark:text-fuchsia-400 hover:underline",children:[e.jsx(qe,{className:"w-3.5 h-3.5"}),r("finance.designer.tiers.addBand")]}),e.jsx(l,{k:"pricing.tiers.addBand",label:r("finance.designer.tiers.addBand")})]}),e.jsxs("fieldset",{className:"pt-1",children:[e.jsx("legend",{className:"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[r("finance.designer.tiers.modeLegend"),e.jsx(l,{k:"pricing.tiers.mode"})]})}),e.jsx("div",{className:"flex flex-wrap gap-4 mt-1",children:Xt.map(x=>e.jsxs("label",{className:"flex items-start gap-2 text-sm",children:[e.jsx("input",{type:"radio",name:`tier-mode-${a.uid}`,value:x,checked:a.tier_mode===x,disabled:s,onChange:()=>t(x),className:"mt-1"}),e.jsxs("span",{children:[e.jsx("span",{className:"font-medium text-gray-900 dark:text-gray-100",children:r(`finance.designer.tiers.mode.${x}`)}),e.jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400",children:r(`finance.designer.tiers.modeHelp.${x}`)})]})]},x))})]})]})}const Se="px-2 py-1 text-sm rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-fuchsia-400 disabled:bg-gray-50 disabled:text-gray-500 dark:disabled:bg-gray-900",yi={flat:"bg-slate-100 text-slate-700 dark:bg-slate-700 dark:text-slate-200",per_seat:"bg-sky-100 text-sky-800 dark:bg-sky-900/30 dark:text-sky-300",tiered_seat:"bg-violet-100 text-violet-800 dark:bg-violet-900/30 dark:text-violet-300",one_off:"bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300"};function bi({line:a,readOnly:s,issues:n,onPatch:t,onRemove:r}){const{t:i}=I("system-admin"),{attributes:d,listeners:c,setNodeRef:x,transform:o,transition:j,isDragging:b}=Hs({id:a.uid,disabled:s}),p=ve[a.kind];return e.jsxs("div",{ref:x,style:{transform:Gs.Translate.toString(o),transition:j??void 0},className:`rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 p-3 ${b?"opacity-40":""}`,children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[!s&&e.jsx("button",{type:"button","aria-label":i("finance.designer.chargeLines.dragHandle"),"data-help":"finance.chargeLines.reorder",className:"shrink-0 p-1 rounded touch-none cursor-grab active:cursor-grabbing text-gray-400 hover:text-gray-700 dark:hover:text-gray-200",...d,...c,children:e.jsx(kt,{className:"w-4 h-4","aria-hidden":"true"})}),e.jsx("span",{className:`shrink-0 px-2 py-0.5 rounded-full text-xs font-medium whitespace-nowrap ${yi[a.kind]}`,children:i(`finance.designer.chargeLines.kind.${a.kind}`)}),e.jsx(l,{k:"pricing.chargeLines.kinds"}),e.jsx("input",{type:"text",maxLength:200,value:a.label,disabled:s,onChange:g=>t(a.uid,{label:g.target.value}),placeholder:i("finance.designer.chargeLines.labelPlaceholder"),"aria-label":i("finance.designer.chargeLines.label"),className:`${Se} flex-1 min-w-[10rem]`}),e.jsx(l,{k:"pricing.chargeLine.label"}),p.role&&e.jsxs(e.Fragment,{children:[e.jsxs("select",{value:a.ff_role,disabled:s,onChange:g=>t(a.uid,{ff_role:g.target.value}),"aria-label":i("finance.designer.chargeLines.role"),className:`${Se} w-32`,children:[e.jsx("option",{value:"",children:i("finance.designer.chargeLines.rolePlaceholder")}),e.jsx(jt,{})]}),e.jsx(l,{k:"pricing.chargeLine.role",label:i("finance.designer.chargeLines.role")})]}),p.amount&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"flex items-center gap-1 text-xs text-gray-500 dark:text-gray-400",children:[i("finance.designer.chargeLines.amount"),e.jsx("input",{type:"number",min:0,step:"0.01",value:a.amount,disabled:s,onChange:g=>t(a.uid,{amount:g.target.value}),className:`${Se} w-28 tabular-nums`})]}),e.jsx(l,{k:"pricing.chargeLine.amount"})]}),p.seatQuantities&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"flex items-center gap-1 text-xs text-gray-500 dark:text-gray-400",title:i("finance.designer.chargeLines.includedHelp"),children:[i("finance.designer.chargeLines.included"),e.jsx("input",{type:"number",min:0,step:1,value:a.included_count,disabled:s,onChange:g=>t(a.uid,{included_count:g.target.value}),className:`${Se} w-20 tabular-nums`})]}),e.jsx(l,{k:"pricing.chargeLine.includedCount"}),e.jsxs("label",{className:"flex items-center gap-1 text-xs text-gray-500 dark:text-gray-400",title:i("finance.designer.chargeLines.minimumHelp"),children:[i("finance.designer.chargeLines.minimum"),e.jsx("input",{type:"number",min:0,step:1,value:a.minimum_quantity,disabled:s,onChange:g=>t(a.uid,{minimum_quantity:g.target.value}),className:`${Se} w-20 tabular-nums`})]}),e.jsx(l,{k:"pricing.chargeLine.minimumQuantity"})]}),!s&&e.jsx("button",{type:"button",onClick:()=>r(a.uid),"aria-label":i("finance.designer.chargeLines.removeLine"),"data-help":"finance.chargeLines.remove",className:"ml-auto p-1 rounded text-gray-400 hover:text-red-600 hover:bg-gray-100 dark:hover:bg-gray-700",children:e.jsx(Ba,{className:"w-4 h-4"})})]}),p.tiers&&e.jsx(fi,{line:a,readOnly:s,onTiersChange:g=>t(a.uid,{tiers:g}),onTierModeChange:g=>t(a.uid,{tier_mode:g})}),n.length>0&&e.jsx("ul",{className:"mt-2 space-y-0.5",children:n.map(g=>e.jsx("li",{className:"text-xs text-red-600 dark:text-red-400",children:i(g.key,g.params??{})},g.key))})]})}function js({lines:a,readOnly:s,issues:n,onChange:t,emptyKey:r="finance.designer.chargeLines.empty"}){const{t:i}=I("system-admin"),d=Rs(ba(zs,{activationConstraint:{distance:8}}),ba(Ks,{coordinateGetter:Bs})),c=f.useMemo(()=>a.map(p=>p.uid),[a]),x=p=>a.findIndex(g=>g.uid===p)+1,o={onDragStart:({active:p})=>i("finance.designer.chargeLines.a11y.pickedUp",{position:x(String(p.id)),total:a.length}),onDragOver:({over:p})=>p?i("finance.designer.chargeLines.a11y.movedOver",{position:x(String(p.id))}):void 0,onDragEnd:({over:p})=>p?i("finance.designer.chargeLines.a11y.dropped",{position:x(String(p.id))}):i("finance.designer.chargeLines.a11y.cancelled"),onDragCancel:()=>i("finance.designer.chargeLines.a11y.cancelled")},j=p=>{const{active:g,over:S}=p;if(!S||g.id===S.id)return;const _=a.findIndex(k=>k.uid===g.id),C=a.findIndex(k=>k.uid===S.id);_<0||C<0||t(Us(a,_,C))},b=(p,g)=>{t(a.map(S=>S.uid===p?{...S,...g}:S))};return e.jsxs("div",{children:[e.jsx(Os,{sensors:d,collisionDetection:As,accessibility:{announcements:o},onDragEnd:j,children:e.jsx("div",{className:"space-y-2",children:e.jsx(qs,{items:c,strategy:Ms,children:a.map(p=>e.jsx(bi,{line:p,readOnly:s,issues:n.filter(g=>g.uid===p.uid),onPatch:b,onRemove:g=>t(a.filter(S=>S.uid!==g))},p.uid))})})}),a.length===0&&e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 py-3",children:i(r)}),!s&&e.jsxs("div",{className:"flex flex-wrap gap-2 mt-3",children:[Wt.map(p=>e.jsxs("button",{type:"button",onClick:()=>t([...a,Jt(p)]),"data-help":"finance.chargeLines.add",className:"inline-flex items-center gap-1 px-2.5 py-1 text-sm rounded-md border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700",children:[e.jsx(qe,{className:"w-3.5 h-3.5"}),i(`finance.designer.chargeLines.kind.${p}`)]},p)),e.jsx(l,{k:"pricing.chargeLines.kinds",className:"self-center"})]})]})}function ga({title:a,hint:s,helpKey:n,children:t,form:r,reason:i="",onReasonChange:d,reasonPlaceholder:c,submitLabel:x,submitHelpId:o,canSubmit:j=!0,isSubmitting:b=!1,onSubmit:p}){const{t:g}=I("system-admin");return e.jsxs("section",{className:"rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsxs("h4",{className:"text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400 inline-flex items-center gap-1.5",children:[a,n!==void 0&&e.jsx(l,{k:n,label:a,size:"md"})]}),e.jsx("p",{className:`${q} mt-1`,children:s}),e.jsx("div",{className:"mt-3 space-y-2",children:t}),r!==void 0&&p!==void 0&&e.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-200 dark:border-gray-700 space-y-3",children:[r,e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"block flex-1 min-w-0",children:[e.jsxs("span",{className:Y,children:[g("finance.contracts.reason.label"),e.jsx("span",{"aria-hidden":"true",className:"text-red-500",children:" *"})]}),e.jsx("textarea",{value:i,onChange:S=>d==null?void 0:d(S.target.value),rows:2,required:!0,placeholder:c??g("finance.contracts.reason.placeholder"),className:X}),e.jsx("span",{className:`${q} mt-1 block`,children:g("finance.contracts.reason.why")})]}),e.jsx(l,{k:"contracts.amendment.reason",className:"mt-0.5"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(A,{size:"sm",disabled:!j||i.trim()==="",isLoading:b,onClick:p,"data-help":o,children:x??g("finance.contracts.add")}),e.jsx(l,{k:"contracts.amendment.submit",label:x??g("finance.contracts.add")})]})]})]})}function ji({contractId:a,currency:s,lines:n,readOnly:t,onChanged:r}){const{t:i}=I("system-admin"),{t:d}=I("common"),c=ce(),[x,o]=f.useState([]),[j,b]=f.useState(""),[p,g]=f.useState(null),S=hs(x),_=V({mutationFn:async()=>{const k=[...x];for(;k.length>0;){try{await Xs(a,{...oa(k[0]),reason:j.trim()})}catch(T){throw o(k),T}k.shift()}return x.length},onSuccess:k=>{F.success(i("finance.contracts.chargeLines.added",{count:k})),o([]),b(""),r()},onError:k=>{c.invalidateQueries({queryKey:["admin-contracts"]}),F.error(z(k,i("finance.contracts.chargeLines.addFailed")))}}),C=V({mutationFn:k=>Js(a,k),onSuccess:()=>{F.success(i("finance.contracts.chargeLines.removed")),g(null),r()},onError:k=>{g(null),F.error(z(k,i("finance.contracts.chargeLines.removeFailed")))}});return e.jsxs(e.Fragment,{children:[e.jsx(ga,{title:i("finance.contracts.chargeLines.title"),hint:i("finance.contracts.chargeLines.hint"),helpKey:"contracts.chargeLines.section",submitHelpId:"finance.contracts.addChargeLine",form:t?void 0:e.jsx(js,{lines:x,readOnly:!1,issues:S,onChange:o,emptyKey:"finance.contracts.chargeLines.draftEmpty"}),reason:j,onReasonChange:b,reasonPlaceholder:i("finance.contracts.chargeLines.reasonPlaceholder"),submitLabel:i("finance.contracts.chargeLines.add"),canSubmit:x.length>0&&S.length===0,isSubmitting:_.isPending,onSubmit:t?void 0:()=>_.mutate(),children:n.length===0?e.jsx("p",{className:q,children:i("finance.contracts.chargeLines.none")}):n.map(k=>e.jsxs("div",{className:la,children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("p",{className:"font-medium text-gray-900 dark:text-gray-100",children:[k.label,e.jsx("span",{className:`${q} ml-2`,children:i(`finance.designer.chargeLines.kind.${k.kind}`)})]}),e.jsxs("p",{className:q,children:[k.amount!==null?K(k.amount,s):i("finance.contracts.chargeLines.tiered",{count:k.tiers.length})," · ",U(k.purchased_at)]}),e.jsx("p",{className:"mt-1 text-gray-700 dark:text-gray-300 whitespace-pre-line",children:k.reason})]}),!t&&e.jsxs("span",{className:"flex items-center gap-1 shrink-0",children:[e.jsx(l,{k:"contracts.chargeLines.remove",label:i("finance.contracts.chargeLines.remove")}),e.jsx("button",{type:"button",onClick:()=>g(k),"aria-label":i("finance.contracts.chargeLines.remove"),"data-help":"finance.contracts.removeChargeLine",className:"p-1 text-gray-400 hover:text-red-600 dark:hover:text-red-400 shrink-0",children:e.jsx(Re,{className:"w-4 h-4"})})]})]},k.id))}),e.jsx(xe,{isOpen:p!==null,title:i("finance.contracts.chargeLines.removeDialog.title"),body:i("finance.contracts.chargeLines.removeDialog.body",{label:(p==null?void 0:p.label)??""}),confirmLabel:i("finance.contracts.chargeLines.remove"),confirmHelpId:"finance.contracts.removeChargeLineConfirm",cancelLabel:d("actions.cancel"),danger:!0,isLoading:C.isPending,onConfirm:()=>p&&C.mutate(p.id),onClose:()=>g(null)})]})}const ki=["percent","absolute"],Ni=["total","charge_line"];function vi({contractId:a,currency:s,discounts:n,contractChargeLines:t,priceBook:r,planLoaded:i,planPending:d,readOnly:c,onChanged:x}){const{t:o,i18n:j}=I("system-admin"),{t:b}=I("common"),[p,g]=f.useState("percent"),[S,_]=f.useState("total"),[C,k]=f.useState(""),[T,w]=f.useState(""),[N,H]=f.useState(""),[m,v]=f.useState(""),[y,h]=f.useState(""),[P,L]=f.useState(null),D=f.useMemo(()=>[...((r==null?void 0:r.charge_lines)??[]).map(ne=>({value:`plan:${ne.id}`,label:ne.label})),...t.map(ne=>({value:`contract:${ne.id}`,label:`${ne.label} · ${o("finance.contracts.discounts.extra")}`}))],[r,t,o]),G=B=>{const ne=B.plan_charge_line_id??B.contract_charge_line_id,fe=D.find(Ie=>Ie.value.endsWith(`:${ne}`));return(fe==null?void 0:fe.label)??o("finance.contracts.discounts.unknownLine")},J=Number(T.replace(",",".")),oe=T.trim()!==""&&Number.isFinite(J)&&J>=0&&(p!=="percent"||J<=100),u=m===""||m>=N,O=V({mutationFn:()=>Zs(a,{kind:p,applies_to:S,...S==="charge_line"&&C.startsWith("plan:")?{plan_charge_line_id:C.slice(5)}:{},...S==="charge_line"&&C.startsWith("contract:")?{contract_charge_line_id:C.slice(9)}:{},value:T.trim().replace(",","."),valid_from:N,...m===""?{}:{valid_until:m},reason:y.trim()}),onSuccess:()=>{F.success(o("finance.contracts.discounts.added")),w(""),H(""),v(""),k(""),_("total"),h(""),x()},onError:B=>F.error(z(B,o("finance.contracts.discounts.addFailed")))}),E=V({mutationFn:B=>en(a,B),onSuccess:()=>{F.success(o("finance.contracts.discounts.removed")),L(null),x()},onError:B=>{L(null),F.error(z(B,o("finance.contracts.discounts.removeFailed")))}}),Z=i?e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:o("finance.contracts.discounts.kind")}),e.jsx("select",{value:p,onChange:B=>g(B.target.value),className:X,children:ki.map(B=>e.jsx("option",{value:B,children:o(`finance.contracts.discounts.kinds.${B}`)},B))})]}),e.jsx(l,{k:"contracts.discounts.kind",label:o("finance.contracts.discounts.kind"),className:"mt-0.5"})]}),e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:p==="percent"?o("finance.contracts.discounts.percentValue"):o("finance.contracts.discounts.absoluteValue",{currency:s})}),e.jsx("input",{type:"number",min:0,max:p==="percent"?100:void 0,step:"0.01",value:T,onChange:B=>w(B.target.value),className:`${X} tabular-nums`})]}),e.jsx(l,{k:"contracts.discounts.value",className
18:"mt-0.5"})]}),e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:o("finance.contracts.discounts.appliesTo")}),e.jsx("select",{value:S,onChange:B=>{_(B.target.value),k("")},className:X,children:Ni.map(B=>e.jsx("option",{value:B,children:o(`finance.contracts.discounts.scopes.${B}`)},B))})]}),e.jsx(l,{k:"contracts.discounts.appliesTo",label:o("finance.contracts.discounts.appliesTo"),className:"mt-0.5"})]}),S==="charge_line"&&e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:o("finance.contracts.discounts.chargeLine")}),e.jsxs("select",{value:C,onChange:B=>k(B.target.value),className:X,children:[e.jsx("option",{value:"",children:o("finance.contracts.discounts.chargeLinePlaceholder")}),D.map(B=>e.jsx("option",{value:B.value,children:B.label},B.value))]}),D.length===0&&e.jsx("span",{className:`${q} mt-1 block`,children:o("finance.contracts.discounts.noChargeLines")})]}),e.jsx(l,{k:"contracts.discounts.target",className:"mt-0.5"})]}),e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:o("finance.contracts.discounts.validFrom")}),e.jsx("input",{type:"date",value:N,onChange:B=>H(B.target.value),className:X})]}),e.jsx(l,{k:"contracts.discounts.validFrom",label:o("finance.contracts.discounts.validFrom"),className:"mt-0.5"})]}),e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:o("finance.contracts.discounts.validUntil")}),e.jsx("input",{type:"date",value:m,min:N||void 0,onChange:B=>v(B.target.value),className:X}),e.jsx("span",{className:`${q} mt-1 block`,children:o("finance.contracts.discounts.validUntilHint")})]}),e.jsx(l,{k:"contracts.discounts.validUntil",className:"mt-0.5"})]})]}):e.jsx("p",{className:q,children:o(d?"finance.contracts.overrides.planLoading":"finance.contracts.overrides.planUnavailable")});return e.jsxs(e.Fragment,{children:[e.jsx(ga,{title:o("finance.contracts.discounts.title"),hint:o("finance.contracts.discounts.hint"),helpKey:"contracts.discounts.section",submitHelpId:"finance.contracts.addDiscount",form:c?void 0:Z,reason:y,onReasonChange:h,reasonPlaceholder:o("finance.contracts.discounts.reasonPlaceholder"),submitLabel:o("finance.contracts.discounts.add"),canSubmit:i&&oe&&N!==""&&u&&(S==="total"||C!==""),isSubmitting:O.isPending,onSubmit:c?void 0:()=>O.mutate(),children:n.length===0?e.jsx("p",{className:q,children:o("finance.contracts.discounts.none")}):n.map(B=>e.jsxs("div",{className:la,children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("p",{className:"font-medium text-gray-900 dark:text-gray-100",children:[B.kind==="percent"?o("finance.contracts.discounts.percentSummary",{value:es(B.value,j.language)}):o("finance.contracts.discounts.absoluteSummary",{value:K(B.value,s)}),e.jsx("span",{className:`${q} ml-2`,children:B.applies_to==="total"?o("finance.contracts.discounts.scopes.total"):G(B)})]}),e.jsx("p",{className:q,children:B.valid_until?o("finance.contracts.discounts.window",{from:U(B.valid_from),until:U(B.valid_until)}):o("finance.contracts.discounts.windowOpen",{from:U(B.valid_from)})}),e.jsx("p",{className:"mt-1 text-gray-700 dark:text-gray-300 whitespace-pre-line",children:B.reason})]}),!c&&e.jsxs("span",{className:"flex items-center gap-1 shrink-0",children:[e.jsx(l,{k:"contracts.discounts.remove",label:o("finance.contracts.discounts.remove")}),e.jsx("button",{type:"button",onClick:()=>L(B),"aria-label":o("finance.contracts.discounts.remove"),"data-help":"finance.contracts.removeDiscount",className:"p-1 text-gray-400 hover:text-red-600 dark:hover:text-red-400 shrink-0",children:e.jsx(Re,{className:"w-4 h-4"})})]})]},B.id))}),e.jsx(xe,{isOpen:P!==null,title:o("finance.contracts.discounts.removeDialog.title"),body:o("finance.contracts.discounts.removeDialog.body",{reason:(P==null?void 0:P.reason)??""}),confirmLabel:o("finance.contracts.discounts.remove"),confirmHelpId:"finance.contracts.removeDiscountConfirm",cancelLabel:b("actions.cancel"),danger:!0,isLoading:E.isPending,onConfirm:()=>P&&E.mutate(P.id),onClose:()=>L(null)})]})}function _i({contractId:a,documentPath:s,onChanged:n}){const{t}=I("system-admin"),{t:r}=I("common"),i=f.useRef(null),[d,c]=f.useState(!1),x=V({mutationFn:b=>an(a,b),onSuccess:()=>{F.success(t("finance.contracts.document.uploaded")),n()},onError:b=>F.error(z(b,t("finance.contracts.document.uploadFailed")))}),o=V({mutationFn:()=>sn(a),onSuccess:()=>{F.success(t("finance.contracts.document.deleted")),c(!1),n()},onError:b=>{c(!1),F.error(z(b,t("finance.contracts.document.deleteFailed")))}}),j=Fs(s);return e.jsxs("section",{className:"rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsxs("h4",{className:"text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400 inline-flex items-center gap-1.5",children:[t("finance.contracts.document.title"),e.jsx(l,{k:"contracts.document.section",label:t("finance.contracts.document.title"),size:"md"})]}),e.jsx("p",{className:`${q} mt-1`,children:t("finance.contracts.document.hint")}),e.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-3",children:[j!==null?e.jsxs("a",{href:j,target:"_blank",rel:"noreferrer","data-help":"finance.contracts.openDocument",className:"inline-flex items-center gap-1.5 text-sm text-fuchsia-600 dark:text-fuchsia-400 hover:underline",children:[e.jsx(Nt,{className:"w-4 h-4","aria-hidden":"true"}),t("finance.contracts.document.open")]}):e.jsx("span",{className:q,children:t("finance.contracts.document.none")}),e.jsx("input",{ref:i,type:"file",accept:"application/pdf",className:"hidden",onChange:b=>{var g;const p=(g=b.target.files)==null?void 0:g[0];b.target.value="",p&&x.mutate(p)}}),e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsxs(A,{size:"sm",variant:"outline",isLoading:x.isPending,onClick:()=>{var b;return(b=i.current)==null?void 0:b.click()},"data-help":j!==null?"finance.contracts.replaceDocument":"finance.contracts.attachDocument",children:[e.jsx($t,{className:"w-3.5 h-3.5 mr-1.5","aria-hidden":"true"}),t(j!==null?"finance.contracts.document.replace":"finance.contracts.document.attach")]}),e.jsx(l,{k:"contracts.document.attach",label:t(j!==null?"finance.contracts.document.replace":"finance.contracts.document.attach")})]}),j!==null&&e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(A,{size:"sm",variant:"ghost",onClick:()=>c(!0),"data-help":"finance.contracts.deleteDocument",children:t("finance.contracts.document.delete")}),e.jsx(l,{k:"contracts.document.delete",label:t("finance.contracts.document.delete")})]})]}),e.jsx(xe,{isOpen:d,title:t("finance.contracts.document.deleteDialog.title"),body:t("finance.contracts.document.deleteDialog.body"),confirmLabel:t("finance.contracts.document.delete"),confirmHelpId:"finance.contracts.deleteDocumentConfirm",cancelLabel:r("actions.cancel"),danger:!0,isLoading:o.isPending,onConfirm:()=>
18o.mutate(),onClose:()=>c(!1)})]})}const wi=["no_refund","credit_note","serve_out"];function Ci({isOpen:a,status:s,planName:n,organisation:t,isLoading:r,onConfirm:i,onClose:d}){const{t:c}=I("system-admin"),{t:x}=I("common"),[o,j]=f.useState("no_refund"),[b,p]=f.useState(""),g=aa({isOpen:a,onClose:d,closeOnEscape:!r});if(!a)return null;const S=_=>_==="serve_out"&&s!=="active"?c("finance.contracts.end.serveOutUnavailable"):null;return e.jsxs("div",{className:"fixed inset-0 z-50 overflow-y-auto",children:[e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 transition-opacity",onClick:()=>!r&&d()}),e.jsx("div",{className:"flex min-h-full items-center justify-center p-4",children:e.jsxs("div",{ref:g,role:"dialog","aria-modal":"true","aria-labelledby":"contract-end-title",className:"relative bg-white dark:bg-gray-900 rounded-xl shadow-xl max-w-lg w-full",children:[e.jsxs("div",{className:"px-6 pt-6 pb-4",children:[e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex-shrink-0 w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:e.jsx(ae,{className:"w-5 h-5 text-amber-600","aria-hidden":"true"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{id:"contract-end-title",className:"text-lg font-semibold text-gray-900 dark:text-gray-100",children:c("finance.contracts.end.title")}),e.jsx("p",{className:"mt-1 text-sm text-gray-600 dark:text-gray-400",children:c("finance.contracts.end.summary",{plan:n,organisation:t})})]})]}),e.jsxs("fieldset",{className:"mt-4",children:[e.jsxs("legend",{className:Y,children:[c("finance.contracts.end.outcome"),e.jsx(l,{k:"contracts.end.outcome",label:c("finance.contracts.end.outcome"),className:"ml-1.5"})]}),e.jsx("div",{className:"space-y-3",children:wi.map(_=>{const C=S(_);return e.jsxs("label",{className:`flex items-start gap-2 text-sm ${C?"opacity-60":""}`,children:[e.jsx("input",{type:"radio",name:"contract-end-outcome",className:"mt-1",value:_,checked:o===_,disabled:C!==null||r,onChange:()=>j(_)}),e.jsxs("span",{children:[e.jsx("span",{className:"block font-medium text-gray-900 dark:text-gray-100",children:c(`finance.contracts.end.outcomes.${_}`)}),e.jsx("span",{className:`${q} block`,children:c(`finance.contracts.end.consequences.${_}`)}),C!==null&&e.jsx("span",{className:"block text-xs text-amber-700 dark:text-amber-400",children:C})]})]},_)})})]}),e.jsxs("div",{className:"mt-4 flex items-start gap-1.5",children:[e.jsxs("label",{className:"block flex-1 min-w-0",children:[e.jsxs("span",{className:Y,children:[c("finance.contracts.end.reason"),e.jsx("span",{"aria-hidden":"true",className:"text-red-500",children:" *"})]}),e.jsx("textarea",{value:b,onChange:_=>p(_.target.value),rows:3,required:!0,placeholder:c("finance.contracts.end.reasonPlaceholder"),className:X})]}),e.jsx(l,{k:"contracts.end.reason",label:c("finance.contracts.end.reason"),className:"mt-0.5"})]})]}),e.jsxs("div",{className:"px-6 py-4 bg-gray-50 dark:bg-gray-800 rounded-b-xl flex items-center justify-end gap-3",children:[e.jsx(A,{variant:"ghost",onClick:d,disabled:r,"data-help":"common.dialog.cancel",children:x("actions.cancel")}),e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(A,{variant:"danger",disabled:r||b.trim()===""||S(o)!==null,isLoading:r,onClick:()=>i(o,b.trim()),"data-help":"finance.contracts.endConfirm","data-help-reason":S(o)??void 0,children:c("finance.contracts.end.confirm")}),e.jsx(l,{k:"contracts.end.confirm",label:c("finance.contracts.end.confirm")})]})]})]})})]})}function Si({contractId:a}){const{t:s}=I("system-admin"),{data:n,error:t,isLoading:r}=W({queryKey:["admin-contract-invoice-preview",a],queryFn:()=>nn(a),staleTime:3e4,retry:!1});return e.jsxs("section",{className:"rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsxs("h4",{className:"text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400 inline-flex items-center gap-1.5",children:[s("finance.contracts.invoice.title"),e.jsx(l,{k:"contracts.invoice.section",size:"md"})]}),t?e.jsx("p",{className:"mt-3 text-sm text-red-600 dark:text-red-400",children:z(t,s("finance.contracts.invoice.failed"))}):r||n===void 0?e.jsx("p",{className:`${q} mt-3`,children:s("finance.contracts.invoice.loading")}):e.jsxs("div",{className:"mt-3 space-y-3",children:[e.jsxs("p",{className:q,children:[s("finance.contracts.invoice.period",{from:U(n.period_start),until:U(n.period_end)}),e.jsx(l,{k:"contracts.invoice.period",className:"ml-1.5"})]}),e.jsx(ma,{invoice:n.invoice}),Number(n.invoice.discount_total)>0&&e.jsxs("p",{className:_e,children:[e.jsx(le,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:s("finance.contracts.invoice.discounted",{amount:K(n.invoice.discount_total,n.invoice.currency)})})]}),n.first_invoice&&e.jsxs("p",{className:_e,children:[e.jsx(le,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:s("finance.contracts.invoice.firstInvoice")})]}),n.invoice.seat_quantities.length>0&&e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsx("div",{className:"min-w-0 flex-1 space-y-3",children:e.jsx(xa,{seats:n.invoice.seat_quantities})}),e.jsx(l,{k:"contracts.invoice.seatNotes",className:"mt-0.5"})]})]})]})}const Ei={seats:{edge:"border-l-indigo-400 dark:border-l-indigo-500",dot:"bg-indigo-400"},limit:{edge:"border-l-amber-400 dark:border-l-amber-500",dot:"bg-
18amber-400"},feature:{edge:"border-l-emerald-400 dark:border-l-emerald-500",dot:"bg-emerald-400"},policy:{edge:"border-l-sky-400 dark:border-l-sky-500",dot:"bg-sky-400"},identity:{edge:"border-l-slate-400 dark:border-l-slate-500",dot:"bg-slate-400"},cycle:{edge:"border-l-teal-400 dark:border-l-teal-500",dot:"bg-teal-400"},credit:{edge:"border-l-lime-500 dark:border-l-lime-500",dot:"bg-lime-500"},money:{edge:"border-l-violet-400 dark:border-l-violet-500",dot:"bg-violet-400"},term:{edge:"border-l-rose-400 dark:border-l-rose-500",dot:"bg-rose-400"}},Li={edge:"border-l-gray-300 dark:border-l-gray-600",dot:"bg-gray-400"};function Pi(a){return Ei[a]??Li}const Fi="rounded-lg border border-gray-200 dark:border-gray-700 border-l-4 px-4 pb-4 pt-1",Ii="text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",$i="rounded-lg border px-3 py-2.5 transition-colors border-gray-200 bg-gray-50/70 dark:border-gray-700 dark:bg-gray-900/40";function se({label:a,htmlFor:s,helpKey:n,invalid:t=!1,children:r,className:i}){return e.jsxs("div",{className:$($i,t&&"border-red-500",i),children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsx("label",{htmlFor:s,className:"text-sm font-medium text-gray-800 dark:text-gray-200",children:a}),n&&e.jsx(l,{k:n,label:a})]}),e.jsx("div",{className:"mt-2",children:r})]})}const Fa="px-2 py-1 text-sm rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-fuchsia-400 disabled:bg-gray-50 disabled:text-gray-500 dark:disabled:bg-gray-900",Di="text-xs text-gray-500 dark:text-gray-400";function Te({descriptor:a,value:s,readOnly:n,invalid:t,onChange:r,variant:i="row",helpKey:d}){const{t:c}=I("system-admin"),x=f.useId(),o=c(ca(a.key),{defaultValue:a.label_hint}),j=i==="card",b=d?e.jsx(l,{k:d,label:o}):null;if(a.type==="bool"){const k=e.jsx("input",{id:x,type:"checkbox",checked:s===!0,disabled:n,onChange:T=>r(T.target.checked)});return j?e.jsx(se,{label:o,htmlFor:x,helpKey:d,invalid:t,children:e.jsxs("label",{htmlFor:x,className:"flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300",children:[k,c(s===!0?"finance.designer.package.includedInPlan":"finance.designer.package.notIncludedInPlan")]})}):e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-800 dark:text-gray-200",children:[e.jsxs("label",{htmlFor:x,className:"flex items-center gap-2",children:[k,o]}),b]})}if(a.type==="enum"){const k=e.jsx("select",{id:x,value:typeof s=="string"?s:"",disabled:n,onChange:T=>r(T.target.value),className:$(Fa,j?"w-full":"w-40"),children:a.values.map(T=>e.jsx("option",{value:T,children:c(`finance.designer.enumValues.${T}`,{defaultValue:T})},T))});return j?e.jsx(se,{label:o,htmlFor:x,helpKey:d,invalid:t,children:k}):e.jsxs("div",{className:"flex items-center justify-between gap-2 text-sm text-gray-800 dark:text-gray-200",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:x,children:o}),b]}),k]})}const p=a.type==="numeric_or_null",g=p||a.type==="int_or_null",S=s===null,_=e.jsx("input",{id:x,type:g?"number":"text",min:0,step:p?"0.01":1,value:s===null||typeof s=="boolean"?"":s,placeholder:S?c(p?"finance.designer.package.unlimited":"finance.designer.package.noLimit"):void 0,disabled:n||S||!g,onChange:k=>r(k.target.value),"aria-label":o,"aria-invalid":t,className:$(Fa,"w-28 tabular-nums",t&&"border-red-500")}),C=e.jsxs("label",{className:$("flex items-center gap-1.5",Di),children:[e.jsx("input",{type:"checkbox",checked:S,disabled:n,onChange:k=>r(k.target.checked?null:"")}),c(p?"finance.designer.package.unlimited":"finance.designer.package.noLimit")]});return j?e.jsx(se,{label:o,htmlFor:x,helpKey:d,invalid:t,children:e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2",children:[_,C]})}):e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 text-sm text-gray-800 dark:text-gray-200",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[o,b]}),e.jsxs("span",{className:"flex items-center gap-2",children:[_,C]})]})}function Ti({contractId:a,overrides:s,plan:n,planPending:t,readOnly:r,onChanged:i}){const{t:d,i18n:c}=I("system-admin"),{t:x}=I("common"),{data:o=[]}=W({queryKey:["admin-entitlement-keys"],queryFn:na,staleTime:1/0}),[j,b]=f.useState(""),[p,g]=f.useState(null),[S,_]=f.useState(""),[C,k]=f.useState(null),T=f.useMemo(()=>new Map(o.map(D=>[D.key,D])),[o]),w=j===""?void 0:T.get(j),N=f.useMemo(()=>{const D=new Map;for(const G of o)D.set(G.group,[...D.get(G.group)??[],G]);return[...D.entries()]},[o]),H=D=>{const G=T.get(D);if(G!==void 0)return Yt(G,(n==null?void 0:n.package)??{})},m=D=>{var G;
18return d(ca(D),{defaultValue:((G=T.get(D))==null?void 0:G.label_hint)??D})},v=D=>{b(D);const G=T.get(D);if(G===void 0){g(null);return}g(da((n==null?void 0:n.package)??{},[G])[D])},y=w!==void 0&&ms({[w.key]:p},[w]).length>0,h=V({mutationFn:()=>w===void 0?Promise.reject(new Error("No entitlement key selected.")):tn(a,{key:w.key,value:xs(w,p,(n==null?void 0:n.package)??{}),reason:S.trim()}),onSuccess:()=>{F.success(d("finance.contracts.overrides.saved")),b(""),g(null),_(""),i()},onError:D=>F.error(z(D,d("finance.contracts.overrides.saveFailed")))}),P=V({mutationFn:D=>rn(a,D),onSuccess:()=>{F.success(d("finance.contracts.overrides.removed")),k(null),i()},onError:D=>{k(null),F.error(z(D,d("finance.contracts.overrides.removeFailed")))}}),L=n===void 0?e.jsx("p",{className:q,children:d(t?"finance.contracts.overrides.planLoading":"finance.contracts.overrides.planUnavailable")}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"block flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:d("finance.contracts.overrides.key")}),e.jsxs("select",{value:j,onChange:D=>v(D.target.value),className:X,children:[e.jsx("option",{value:"",children:d("finance.contracts.overrides.keyPlaceholder")}),N.map(([D,G])=>e.jsx("optgroup",{label:d(`finance.designer.package.groups.${D}`,{defaultValue:D}),children:G.map(J=>e.jsx("option",{value:J.key,children:m(J.key)},J.key))},D))]})]}),e.jsx(l,{k:"contracts.overrides.key",className:"mt-0.5"})]}),w!==void 0&&e.jsxs("div",{className:"rounded border border-gray-200 dark:border-gray-700 p-3 space-y-2",children:[e.jsxs("p",{className:q,children:[d("finance.contracts.overrides.planValue",{value:Le(H(j),w,d,c.language)}),e.jsx(l,{k:"contracts.overrides.planValue",className:"ml-1.5"})]}),e.jsx(Te,{descriptor:w,value:p,readOnly:!1,invalid:y,onChange:g,helpKey:"contracts.overrides.value"})]})]});return e.jsxs(e.Fragment,{children:[e.jsx(ga,{title:d("finance.contracts.overrides.title"),hint:d("finance.contracts.overrides.hint"),helpKey:"contracts.overrides.section",submitHelpId:"finance.contracts.addOverride",form:r?void 0:L,reason:S,onReasonChange:_,reasonPlaceholder:d("finance.contracts.overrides.reasonPlaceholder"),submitLabel:d("finance.contracts.overrides.add"),canSubmit:n!==void 0&&w!==void 0&&!y,isSubmitting:h.isPending,onSubmit:r?void 0:()=>h.mutate(),children:s.length===0?e.jsx("p",{className:q,children:d("finance.contracts.overrides.none")}):s.map(D=>e.jsxs("div",{className:la,children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"font-medium text-gray-900 dark:text-gray-100",children:m(D.key)}),e.jsxs("p",{className:q,children:[e.jsx("span",{children:Le(H(D.key),T.get(D.key),d,c.language)}),e.jsx("span",{"aria-hidden":"true",children:" â "}),e.jsx("span",{className:"font-semibold text-gray-800 dark:text-gray-200",children:Le(D.value,T.get(D.key),d,c.language)})]}),e.jsx("p",{className:"mt-1 text-gray-700 dark:text-gray-300 whitespace-pre-line",children:D.reason})]}),!r&&e.jsxs("span",{className:"flex items-center gap-1 shrink-0",children:[e.jsx(l,{k:"contracts.overrides.remove",label:d("finance.contracts.overrides.remove")}),e.jsx("button",{type:"button",onClick:()=>k(D),"aria-label":d("finance.contracts.overrides.remove"),"data-help":"finance.contracts.removeOverride",className:"p-1 text-gray-400 hover:text-red-600 dark:hover:text-red-400 shrink-0",children:e.jsx(Re,{className:"w-4 h-4"})})]})]},D.id))}),e.jsx(xe,{isOpen:C!==null,title:d("finance.contracts.overrides.removeDialog.title"),body:d("finance.contracts.overrides.removeDialog.body",{key:C===null?"":m(C.key)}),confirmLabel:d("finance.contracts.overrides.remove"),confirmHelpId:"finance.contracts.removeOverrideConfirm",cancelLabel:x("actions.cancel"),danger:!0,isLoading:P.isPending,onConfirm:()=>C&&P.mutate(C.key),onClose:()=>k(null)})]})}const Ri=["auto_renew","switch_to"];function Oi({contract:a,plans:s,noteOnly:n,onChanged:t}){const{t:r}=I("system-admin"),i=ka(a.ends_at),[d,c]=f.useState(i),[x,o]=f.useState(a.note??""),[j,b]=f.useState(a.on_expiry),[p,g]=f.useState(a.successor_plan_id??""),[S,_]=f.useState(String(a.grace_days)),[C,k]=f.useState(a.collection_method),[T,w]=f.useState(""),N=ys(a.organization_id),H=C===a.collection_method||C!=="auto_charge"||N.autoChargeAvailable,v=(()=>{const P={};if(!n&&d!==i&&(P.ends_at=d===""?null:Bt(d)),x!==(a.note??"")&&(P.note=x===""?null:x),!n){j!==a.on_expiry&&(P.on_expiry=j),p!==(a.successor_plan_id??"")&&(P.successor_plan_id=p===""?null:p);const L=Number.parseInt(S,10);Number.isFinite(L)&&L!==a.grace_days&&(P.grace_days=L),C!==a.collection_method&&(P.collection_method=C)}return T.trim()!==""&&(P.amendment_note=T.trim()),P})(),y=Object.keys(v).filter(P=>P!=="amendment_note"),h=V({mutationFn:()=>ln(a.id,v),onSuccess:()=>{F.success(r("finance.contracts.renegotiate.saved")),w(""),t()},onError:P=>F.error(z(P,r("finance.contracts.renegotiate.saveFailed")))});return e.jsxs("section",{className:"rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsxs("h4",{className:"text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400 inline-flex items-center gap-1.5",children:[r("finance.contracts.renegotiate.title"),e.jsx(l,{k:"contracts.renegotiate.section",label:r("finance.contracts.renegotiate.title"),size:"md"})]}),e.jsx("p",{className:`${q} mt-1`,children:r(n?"finance.contracts.renegotiate.hintEnded":"finance.contracts.renegotiate.hint")}),e.jsxs("div",{className:"mt-3 grid gap-3 sm:grid-cols-2",children:[!n&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:r("finance.contracts.renegotiate.endsAt")}),e.jsx("input",{type:"date",value:d,min:ka(a.starts_at),onChange:P=>c(P.target.value),className:X}),e.jsx("span",{className:`${q} mt-1 block`,children:r("finance.contracts.renegotiate.endsAtHint")})]}),e.jsx(l,{k:"contracts.renegotiate.endsAt",label:r("finance.contracts.renegotiate.endsAt"),className:"mt-0.5"})]}),e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:r("finance.contracts.renegotiate.graceDays")}),e.jsx("input",{type:"number",min:0,max:365,value:S,onChange:P=>_(P.target.value),className:`${X} tabular-nums`}),e.jsx("span",{className:`${q} mt-1 block`,children:r("finance.contracts.renegotiate.graceDaysHint")})]}),e.jsx(l,{k:"contracts.renegotiate.graceDays",className:"mt-0.5"})]}),e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:r("finance.contracts.renegotiate.onExpiry")}
18),e.jsx("select",{value:j,onChange:P=>b(P.target.value),className:X,children:Ri.map(P=>e.jsx("option",{value:P,children:r(`finance.designer.term.onExpiry.${P}`)},P))})]}),e.jsx(l,{k:"contracts.renegotiate.onExpiry",label:r("finance.contracts.renegotiate.onExpiry"),className:"mt-0.5"})]}),e.jsx("div",{className:"flex items-start gap-1.5",children:e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx(rs,{id:`contract-collection-${a.id}`,value:C,method:N,onChange:k}),e.jsx("span",{className:`${q} mt-1 block`,children:r("finance.contracts.renegotiate.collectionHint")})]})}),j==="switch_to"&&e.jsxs("div",{className:"flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:r("finance.contracts.renegotiate.successor")}),e.jsxs("select",{value:p,onChange:P=>g(P.target.value),className:X,children:[e.jsx("option",{value:"",children:r("finance.contracts.renegotiate.successorFallback")}),s.map(P=>e.jsxs("option",{value:P.id,children:[P.name," · ",P.code]},P.id))]}),e.jsx("span",{className:`${q} mt-1 block`,children:r("finance.contracts.renegotiate.successorHint")})]}),e.jsx(l,{k:"contracts.renegotiate.successor",className:"mt-0.5"})]})]}),e.jsxs("div",{className:"sm:col-span-2 flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:r("finance.contracts.renegotiate.note")}),e.jsx("textarea",{value:x,onChange:P=>o(P.target.value),rows:5,placeholder:r("finance.contracts.renegotiate.notePlaceholder"),className:X}),e.jsx("span",{className:`${q} mt-1 block`,children:r("finance.contracts.renegotiate.noteHint")})]}),e.jsx(l,{k:"contracts.renegotiate.note",label:r("finance.contracts.renegotiate.note"),className:"mt-0.5"})]}),e.jsxs("div",{className:"sm:col-span-2 flex items-start gap-1.5",children:[e.jsxs("label",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:Y,children:r("finance.contracts.renegotiate.amendmentNote")}),e.jsx("input",{type:"text",value:T,onChange:P=>w(P.target.value),placeholder:r("finance.contracts.renegotiate.amendmentNotePlaceholder"),className:X})]}),e.jsx(l,{k:"contracts.renegotiate.amendmentNote",className:"mt-0.5"})]})]}),!n&&e.jsx(ls,{organizationId:a.organization_id,organizationName:a.organization_legal_name,method:N,collectionMethod:C,className:"mt-3"}),e.jsxs("div",{className:"mt-3 flex items-center gap-3",children:[e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(A,{size:"sm",disabled:y.length===0||!H,isLoading:h.isPending,onClick:()=>h.mutate(),"data-help":"finance.contracts.saveRenegotiation",children:r("finance.contracts.renegotiate.save")}),e.jsx(l,{k:"contracts.renegotiate.save",label:r("finance.contracts.renegotiate.save")})]}),y.length>0&&e.jsx("span",{className:q,children:r("finance.contracts.renegotiate.willLog",{count:y.length})})]})]})}const Ai={active:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-300",pending:"bg-sky-100 text-sky-800 dark:bg-sky-900/30 dark:text-sky-300",ended:"bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-300"};function qi({contract:a,defaultOpen:s,onChanged:n}){const{t}=I("system-admin"),[r,i]=f.useState(s),[d,c]=f.useState(!1),x=a.status!=="ended",{data:o,isPending:j}=W({queryKey:["admin-plan",a.plan_id],queryFn:()=>sa(a.plan_id),enabled:r}),b=o!==void 0,{data:p=[]}=W({queryKey:["admin-plans","assignable"],queryFn:()=>Oe({status:"active",limit:ke}),enabled:r&&x}),g=o==null?void 0:o.price_books.find(_=>_.id===a.price_book_id),S=V({mutationFn:_=>cn(a.id,_),onSuccess:_=>{F.success(_.credit_note_number?t("finance.contracts.end.endedWithCreditNote",{number:_.credit_note_number}):t(_.successor_contract_id?"finance.contracts.end.endedWithSuccessor":"finance.contracts.end.ended")),c(!1),n()},onError:_=>{F.error(z(_,t("finance.contracts.end.failed")))}});return e.jsxs("article",{className:"bg-white dark:bg-gray-800 rounded-lg shadow",children:[e.jsxs("div",{className:"flex items-start",children:[e.jsxs("button",{type:"button",onClick:()=>i(_=>!_),"aria-expanded":r,"data-help":"finance.contracts.toggle",className:"w-full text-left px-4 py-3 flex items-start gap-3",children:[r?e.jsx(vt,{className:"w-4 h-4 mt-1 shrink-0 text-gray-400","aria-hidden":"true"}):e.jsx(_t,{className:"w-4 h-4 mt-1 shrink-0 text-gray-400","aria-hidden":"true"}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsxs("span",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"font-semibold text-gray-900 dark:text-white",children:a.plan_name}),e.jsx("span",{className:q,children:a.plan_code}),e.jsx("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${Ai[a.status]}`,children:t(`finance.contracts.status.${a.status}`)}),a.payment_status!=="current"&&e.jsx("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-300",children:t(`finance.contracts.payment.${a.payment_status}`)})]}),e.jsxs("span",{className:`${q} block mt-0.5`,children:[a.price_book_name," · ",a.ends_at?t("finance.contracts.history.range",{from:U(a.starts_at),until:U(a.ends_at)}):t("finance.contracts.history.open",{from:U(a.starts_at)})]})]})]}),e.jsxs("span",{className:"flex items-center gap-1.5 shrink-0 pt-3 pr-4",children:[e.jsx(l,{k:"contracts.history.card"}),e.jsx(l,{k:"contracts.history.lifecycleBadge"}),a.payment_status!=="current"&&e.jsx(l,{k:"contracts.history.paymentBadge"})]})]}),r&&e.jsxs("div",{className:"px-4 pb-4 space-y-4",children:[e.jsxs("dl",{className:"grid gap-x-6 gap-y-2 sm:grid-cols-2 text-sm",children:[e.jsxs("div",{children:[e.jsxs("dt",{className:`${q} inline-flex items-center gap-1.5`,children:[t("finance.contracts.history.assignedBy"),e.jsx(l,{k:"contracts.history.assignedBy",label:t("finance.contracts.history.assignedBy")})]}),e.jsx("dd",{className:"text-gray-900 dark:text-gray-100",children:a.assigned_by_email??t("finance.contracts.history.assignedBySystem")})]}),e.jsxs("div",{children:[e.jsxs("dt",{className:`${q} inline-flex items-center gap-1.5`,children:[t("finance.contracts.history.billingAnchor"),e.jsx(l,{k:"contracts.history.billingAnchor"})]}),e.jsxs("dd",{className:"text-gray-900 dark:text-gray-100",children:[U(a.billing_anchor_date)," · ",t("finance.contracts.history.graceDays",{count:a.grace_days})]})]}),e.jsxs("div",{children:[e.jsxs("dt",{className:`${q} inline-flex items-center gap-1.5`,children:[t("finance.contracts.history.onExpiry"),e.jsx(l,{k:"contracts.history.onExpiry",label:t("finance.contracts.history.onExpiry")}
18)]}),e.jsx("dd",{className:"text-gray-900 dark:text-gray-100",children:t(`finance.designer.term.onExpiry.${a.on_expiry}`)})]}),e.jsxs("div",{children:[e.jsxs("dt",{className:`${q} inline-flex items-center gap-1.5`,children:[t("finance.assign.collection.label"),e.jsx(l,{k:"assign.collectionMethod",label:t("finance.assign.collection.label")})]}),e.jsx("dd",{className:"text-gray-900 dark:text-gray-100",children:t(At[a.collection_method])})]}),a.ended_reason!==null&&e.jsxs("div",{children:[e.jsxs("dt",{className:`${q} inline-flex items-center gap-1.5`,children:[t("finance.contracts.history.endedReason"),e.jsx(l,{k:"contracts.history.endedReason"})]}),e.jsxs("dd",{className:"text-gray-900 dark:text-gray-100",children:[t(`finance.contracts.endedReason.${a.ended_reason}`),a.end_outcome!==null&&e.jsxs(e.Fragment,{children:[" · ",t(`finance.contracts.end.outcomes.${a.end_outcome}`)]})]})]})]}),a.note!==null&&a.note!==""&&e.jsxs("div",{className:"rounded-lg bg-gray-50 dark:bg-gray-900/40 p-3",children:[e.jsxs("p",{className:`${q} inline-flex items-center gap-1.5`,children:[t("finance.contracts.history.note"),e.jsx(l,{k:"contracts.history.noteDisplay"})]}),e.jsx("p",{className:"mt-1 text-sm text-gray-800 dark:text-gray-200 whitespace-pre-line",children:a.note})]}),e.jsx(_i,{contractId:a.id,documentPath:a.document_path,onChanged:n}),x&&e.jsx(Si,{contractId:a.id}),e.jsx(ji,{contractId:a.id,currency:a.currency,lines:a.charge_lines,readOnly:!x,onChanged:n}),e.jsx(vi,{contractId:a.id,currency:a.currency,discounts:a.discounts,contractChargeLines:a.charge_lines,priceBook:g,planLoaded:b,planPending:j,readOnly:!x,onChanged:n}),e.jsx(Ti,{contractId:a.id,overrides:a.overrides,plan:o,planPending:j,readOnly:!x,onChanged:n}),e.jsx(Oi,{contract:a,plans:p,noteOnly:!x,onChanged:n},[a.ends_at,a.note,a.on_expiry,a.successor_plan_id,a.grace_days,a.collection_method].join("|")),a.contract_amendments.length>0&&e.jsxs("section",{className:"rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsxs("h4",{className:"text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400 inline-flex items-center gap-1.5",children:[t("finance.contracts.log.title"),e.jsx(l,{k:"contracts.history.amendmentLog",label:t("finance.contracts.log.title"),size:"md"})]}),e.jsx("ul",{className:"mt-3 space-y-2 text-sm",children:a.contract_amendments.map(_=>e.jsxs("li",{children:[e.jsx("span",{className:"text-gray-900 dark:text-gray-100",children:t("finance.contracts.log.entry",{field:_.field,from:_.old_value??t("finance.assign.value.notSet"),to:_.new_value??t("finance.assign.value.notSet")})}),e.jsxs("span",{className:`${q} block`,children:[ue(_.created_at)," · ",_.actor_email??t("finance.contracts.history.assignedBySystem"),_.note?` · ${_.note}`:""]})]},_.id))})]}),x&&e.jsx("div",{className:"flex justify-end",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(A,{variant:"danger",size:"sm",onClick:()=>c(!0),"data-help":"finance.contracts.end",children:t("finance.contracts.end.action")}),e.jsx(l,{k:"contracts.end.action"})]})})]}),e.jsx(Ci,{isOpen:d,status:a.status,planName:a.plan_name,organisation:a.organization_legal_name,isLoading:S.isPending,onConfirm:(_,C)=>S.mutate({outcome:_,reason:C}),onClose:()=>c(!1)})]})}function Mi(a){return a.source==="admin_grant"&&Number(a.remaining_balance)>0}function Bi(a){return a.source==="admin_grant"&&a.is_active}function Ki({organizationId:a,onChanged:s}){const{t:n}=I("system-admin"),{t}=I("common"),[r,i]=f.useState(""),[d,c]=f.useState(""),[x,o]=f.useState(null),[j,b]=f.useState(""),{data:p,error:g,isLoading:S}=W({queryKey:["admin-org-credit",a],queryFn:()=>xn(a),staleTime:3e4}),_=(y,h)=>(F.success(h),y.action==="clawed_back"&&(o(null),b("")),s(),y),C=Is(r),k=V({mutationFn:()=>dn(a,{amount:C??"",currency:(p==null?void 0:p.currency)??"",reason:d.trim()}),onSuccess:y=>{i(""),c(""),_(y,n("finance.orgCredit.toasts.granted",{amount:K(y.lot.amount,y.lot.currency)}))},onError:y=>F.error(z(y,n("finance.orgCredit.toasts.grantFailed")))}),T=V({mutationFn:y=>on(a,y),onSuccess:y=>_(y,n("finance.orgCredit.toasts.deactivated",{amount:K(y.lot.remaining_balance,y.lot.currency)})),onError:y=>F.error(z(y,n("finance.orgCredit.toasts.revokeFailed")))}),w=V({mutationFn:y=>mn(a,y,{reason:j.trim()}),onSuccess:y=>_(y,Number(y.shortfall)>0?n("finance.orgCredit.toasts.clawedBackShort",{amount:K(y.clawed_back,y.lot.currency),shortfall:K(y.shortfall,y.lot.currency)}):n("finance.orgCredit.toasts.clawedBack",{amount:K(y.clawed_back,y.lot.currency)})),onError:y=>F.error(z(y,n("finance.orgCredit.toasts.revokeFailed")))}),N=k.isPending||T.isPending||w.isPending,H=(p==null?void 0:p.lots)??[],m=(p==null?void 0:p.journal)??[],v=p!==void 0&&p.currency!==null&&C!==null&&d.trim()!=="";return e.jsxs("section",{className:"rounded-lg bg-white p-4 shadow dark:bg-gray-800",children:[e.jsxs("h3",{className:"inline-flex items-center gap-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100",children:[n("finance.orgCredit.title"),e.jsx(l,{k:"orgCredit.overview",label:n("finance.orgCredit.title")})]}),g?e.jsx("p",{className:"mt-2 text-sm text-red-600 dark:text-red-400",children:z(g,n("finance.orgCredit.loadFailed"))}):S||p===void 0?e.jsx("p",{className:"mt-2 text-sm text-gray-500 dark:text-gray-400",children:t("actions.loading")}):e.jsxs(e.Fragment,{children:[e.jsxs("dl",{className:"mt-3 grid gap-x-6 gap-y-2 text-sm sm:grid-cols-3",children:[e.jsxs("div",{children:[e.jsx("dt",{className:"text-xs font-medium text-gray-500 dark:text-gray-400",children:n("finance.orgCredit.balance")}),e.jsx("dd",{className:"text-base font-semibold text-gray-900 dark:text-gray-100",children:K(p.balance,p.currency??"EUR")})]}),e.jsxs("div",{children:[e.jsxs("dt",{className:"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 dark:text-gray-400",children:[n("finance.orgCredit.activePot"),e.jsx(l,{k:"orgCredit.activePot",label:n("finance.orgCredit.activePot")})]}),e.jsx("dd",{className:"text-gray-900 dark:text-gray-100",children:n(`finance.orgCredit.pot.${p.effective_source}`)})]}),e.jsxs("div",{children:[e.jsx("dt",{className:"text-xs font-medium text-gray-500 dark:text-gray-400",children:n("finance.orgCredit.autoSwitch")}),e.jsx("dd",{className:"text-gray-900 dark:text-gray-100",children:n(p.auto_
18switch_enabled?"finance.orgCredit.autoSwitchOn":"finance.orgCredit.autoSwitchOff")})]})]}),e.jsxs("h4",{className:"mt-4 inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[n("finance.orgCredit.lots.title"),e.jsx(l,{k:"orgCredit.spendOrder",label:n("finance.orgCredit.lots.title")})]}),H.length===0?e.jsx("p",{className:"mt-1 text-sm text-gray-500 dark:text-gray-400",children:n("finance.orgCredit.lots.empty")}):e.jsx("div",{className:"mt-2 overflow-x-auto rounded-lg border border-gray-200 dark:border-gray-700",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-900/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:n("finance.orgCredit.lots.source")}),e.jsx("th",{className:R,children:n("finance.orgCredit.lots.amount")}),e.jsx("th",{className:R,children:n("finance.orgCredit.lots.remaining")}),e.jsx("th",{className:R,children:n("finance.orgCredit.lots.opened")}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[n("finance.orgCredit.lots.actions"),e.jsx(l,{k:"orgCredit.revoke"})]})})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:H.map(y=>e.jsxs("tr",{children:[e.jsxs("td",{className:"px-4 py-3 text-sm text-gray-900 dark:text-gray-100",children:[n(`finance.orgCredit.lots.sourceKind.${y.source}`),!y.is_active&&e.jsx("span",{className:$(ee,"ml-2",y.is_on_hold?"bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300":"bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300"),children:y.is_on_hold?n("finance.orgCredit.lots.onHold"):n("finance.orgCredit.lots.inactive")}),p.effective_source==="purchased"&&y.id===p.next_spend_lot_id&&e.jsx("span",{className:$(ee,"ml-2 bg-indigo-100 text-indigo-800 dark:bg-indigo-900/30 dark:text-indigo-400"),children:n("finance.orgCredit.lots.nextToSpend")}),e.jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400",children:y.created_by_email??n("finance.orgCredit.lots.bySystem")})]}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-700 dark:text-gray-300",children:K(y.amount,y.currency)}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-900 dark:text-gray-100",children:K(y.remaining_balance,y.currency)}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-400",children:U(y.created_at)}),e.jsxs("td",{className:"px-4 py-3 text-right",children:[y.source==="purchase"?e.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:n("finance.orgCredit.lots.purchaseNote")}):e.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[Bi(y)&&e.jsx(A,{variant:"secondary",size:"sm",disabled:N,onClick:()=>T.mutate(y.id),"data-help":"finance.orgCredit.deactivate",children:n("finance.orgCredit.lots.deactivate")}),Mi(y)&&e.jsx(A,{variant:"danger",size:"sm",disabled:N||x===y.id,onClick:()=>{o(y.id),b("")},"data-help":"finance.orgCredit.clawBack",children:n("finance.orgCredit.lots.clawBack")})]}),x===y.id&&e.jsxs("div",{className:"mt-2 text-left",children:[e.jsx("p",{className:"mb-1 text-xs text-gray-600 dark:text-gray-400",children:n("finance.orgCredit.lots.clawBackExplain")}),e.jsx("input",{type:"text",value:j,onChange:h=>b(h.target.value),placeholder:n("finance.orgCredit.reasonPlaceholder"),className:"w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-100"}),e.jsxs("div",{className:"mt-2 flex justify-end gap-2",children:[e.jsx(A,{variant:"ghost",size:"sm",onClick:()=>o(null),"data-help":"common.dialog.cancel",children:t("actions.cancel")}),e.jsx(A,{variant:"danger",size:"sm",disabled:N||j.trim()==="",onClick:()=>w.mutate(y.id),"data-help":"finance.orgCredit.clawBackConfirm",children:n("finance.orgCredit.lots.clawBackConfirm")})]})]})]})]},y.id))})]})}),e.jsxs("h4",{className:"mt-4 inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[n("finance.orgCredit.grant.title"),e.jsx(l,{k:"orgCredit.grant",label:n("finance.orgCredit.grant.title")})]}),e.jsx("p",{className:"mt-1 text-sm text-gray-600 dark:text-gray-400",children:n("finance.orgCredit.grant.free")}),p.currency===null?e.jsx("p",{className:"mt-2 text-sm text-amber-700 dark:text-amber-400",children:n("finance.orgCredit.grant.noDenomination")}):e.jsxs("div",{className:"mt-2 grid gap-3 sm:grid-cols-[10rem_1fr_auto] sm:items-end",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"org-credit-amount",className:"block text-xs font-medium text-gray-600 dark:text-gray-400",children:n("finance.orgCredit.grant.amountLabel",{currency:p.currency})}),e.jsx("input",{id:"org-credit-amount",type:"text",inputMode:"decimal",value:r,onChange:y=>i(y.target.value),placeholder:"50.00",className:"mt-1 w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-100"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"org-credit-reason",className:"block text-xs font-medium text-gray-600 dark:text-gray-400",children:n("finance.orgCredit.grant.reasonLabel")}),e.jsx("input",{id:"org-credit-reason",type:"text",value:d,onChange:y=>c(y.target.value),placeholder:n("finance.orgCredit.reasonPlaceholder"),className:"mt-1 w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-100"})]}),e.jsx(A,{variant:"primary",size:"sm",disabled:!v||N,isLoading:k.isPending,onClick:()=>k.mutate(),"data-help":"finance.orgCredit.grant",children:n("finance.orgCredit.grant.submit")})]}),m.length>0&&e.jsxs(e.Fragment,{children:[e.jsxs("h4",{className:"mt-4 inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[n("finance.orgCredit.journal.title"),e.jsx(l,{k:"orgCredit.journal",label:n("finance.orgCredit.journal.title")})]}),e.jsx("ul",{className:"mt-2 space-y-2 text-sm",children:m.map(y=>e.jsxs("li",{children:[e.jsx("span",{className:"text-gray-900 dark:text-gray-100",children:n("finance.orgCredit.journal.entry",{kind:n(`finance.orgCredit.journal.kind.${y.kind}`),amount:K(y.amount,p.currency??"EUR")})}),e.jsxs("span",{className:"block text-xs text-gray-500 dark:text-gray-400",children:[ue(y.created_at)," · ",y.actor_email??n("finance.orgCredit.lots.bySystem")," · ",y.reason]})]},y.id))})]})]})]})}function zi({organizationId:a,onSelectOrganization:s}){const{t:n}=I("system-admin"),t=ce(),[r,i]=f.useState(null),{data:d}=W({queryKey:["admin-organizations","assign",""],queryFn:()=>Ya({q:"",limit:20}),enabled:a!==null&&r===null});f.useEffect(()=>{a===null||(r==null?void 0:r.id)===a||i((d==null?void 0:d.find(p=>p.id===a))??null)},[a,r,d]);const c=(r==null?void 0:r.id)??a,{data:x=[],error:o,isLoading:j}=W({queryKey:["admin-contracts",c],queryFn:()=>gn(c),enabled:c!==null,staleTime:3e4}),b=()=>{t.invalidateQueries({queryKey:["admin-contracts",c]}),t.invalidateQueries({queryKey:["admin-contract-invoice-preview"]}),t.invalidateQueries({queryKey:["admin-contract-preview"]}),t.invalidateQueries({queryKey:["admin-plans"]}),ra(t),t.invalidateQueries({queryKey:["admin-invoices"]}),t.invalidateQueries({queryKey:["admin-invoice"]}),t.invalidateQueries({queryKey:["admin-org-credit",c]})};return e.jsxs("div",{className:"space-y-6",children:[e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:n("finance.contracts.intro")}),e.jsxs("div",{className:"max-w-md",children:[e.jsxs("span",{className:"block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1",children:[n("finance.assign.organisation.label"),e.jsx(l,{k:"contracts.organisationPicker",className:"ml-1.5"})]}),e.jsx(is,{value:r,onChange:p=>{i(p),s((p==null?void 0:p.id)??null)}})]}),c!==null&&e.jsx(Ki,{organizationId:c,onChanged:b}),c===null?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:n("finance.contracts.prompt")}):o?e.jsx("p",{className:"text-sm text-red-600 dark:text-red-400",children:z(o,n("finance.contracts.failed"))}
18):j?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:n("finance.assign.preview.loading")}):x.length===0?e.jsx("p",{className:"text-sm text-amber-700 dark:text-amber-400",children:n("finance.contracts.empty")}):e.jsx("div",{className:"space-y-3",children:x.map(p=>e.jsx(qi,{contract:p,defaultOpen:p.status!=="ended",onChanged:b},p.id))})]})}function Ui({organizationId:a}){const{t:s}=I("system-admin"),{t:n}=I("common"),t=ce(),[r,i]=f.useState("all"),[d,c]=f.useState("all"),[x,o]=f.useState(""),j=Pe(x,300),[b,p]=f.useState(1),{data:g}=W({queryKey:["admin-finance-manual-queue"],queryFn:Ga,staleTime:3e4}),{data:S,isLoading:_}=W({queryKey:["admin-credit-intents",a,r,d,j,b],staleTime:3e4,queryFn:()=>pn({organization_id:a??void 0,status:r==="all"?void 0:r,scope:d==="all"?void 0:d,q:j,limit:Ke,offset:(b-1)*Ke})}),C=V({mutationFn:v=>un(v),onSuccess:()=>{t.invalidateQueries({queryKey:["admin-credit-intents"]}),t.invalidateQueries({queryKey:["admin-finance-manual-queue"]}),F.success(s("finance.credit.toasts.markedPaid"))},onError:v=>F.error(z(v,s("finance.credit.toasts.markPaidFailed")))}),k=V({mutationFn:v=>Ha(v),onError:v=>F.error(z(v,s("finance.credit.toasts.receiptFailed")))}),T=(S==null?void 0:S.items)??[],w=(S==null?void 0:S.total)??0,N=Math.ceil(w/Ke),H=v=>{i(v),p(1)},m=v=>{c(v),p(1)};return e.jsxs("div",{children:[e.jsxs("p",{className:"mb-4 text-sm text-gray-600 dark:text-gray-400",children:[s("finance.credit.description"),e.jsx(l,{k:"credit.overview",className:"ml-1.5"}),r==="pending"&&((g==null?void 0:g.credit_intents)??0)>0?e.jsxs("span",{className:"ml-1.5 font-medium text-amber-700 dark:text-amber-400",children:[s("finance.credit.pendingCount",{count:(g==null?void 0:g.credit_intents)??0}),((g==null?void 0:g.credit_intents_organization)??0)>0?` ${s("finance.credit.pendingOrgCount",{count:(g==null?void 0:g.credit_intents_organization)??0})}`:null]}):null]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-4",children:[e.jsx("div",{className:"flex items-center gap-1 bg-gray-100 dark:bg-gray-800 p-1 rounded-lg",children:Yn.map(v=>e.jsx("button",{onClick:()=>H(v),"data-help":"finance.credit.filterStatus",className:$(he,r===v?"bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200"),children:s(Wn[v])},v))}),e.jsx(l,{k:"credit.filters.status"}),e.jsx("div",{className:"flex items-center gap-1 bg-gray-100 dark:bg-gray-800 p-1 rounded-lg",children:Xn.map(v=>e.jsx("button",{onClick:()=>m(v),"data-help":"finance.credit.filterScope",className:$(he,d===v?"bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200"),children:s(Jn[v])},v))}),e.jsx(l,{k:"credit.filters.scope"}),e.jsxs("div",{className:"relative flex-1 min-w-[14rem]",children:[e.jsx(Ae,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),e.jsx("input",{type:"search",value:x,onChange:v=>{o(v.target.value),p(1)},placeholder:s("finance.credit.filters.searchPlaceholder"),className:"w-full pl-9 pr-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-fuchsia-400"})]})]}),_?e.jsx("div",{className:"text-center py-12 text-gray-500",children:n("actions.loading")}):T.length===0?e.jsx("div",{className:"text-center py-12 text-gray-500 dark:text-gray-400",children:s("finance.credit.table.emptyState")}):e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow overflow-hidden",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-900/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.credit.table.columns.buyer"),e.jsx(l,{k:"credit.columns.buyer"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.credit.table.columns.organization"),e.jsx(l,{k:"credit.columns.organization",label:s("finance.credit.table.columns.organization")})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.credit.table.columns.scope"),e.jsx(l,{k:"credit.columns.scope",label:s("finance.credit.table.columns.scope")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.credit.table.columns.charged"),e.jsx(l,{k:"credit.columns.charged",label:s("finance.credit.table.columns.charged")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.credit.table.columns.granted"),e.jsx(l,{k:"credit.columns.granted"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.credit.table.columns.status"),e.jsx(l,{k:"credit.columns.status",label:s("finance.credit.table.columns.status")})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.credit.table.columns.requested"),e.jsx(l,{k:"credit.columns.requested",label:s("finance.credit.table.columns.requested")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.credit.table.columns.actions"),e.jsx(l,{k:"credit.actions.markPaid"})]})})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:T.map(v=>e.jsxs("tr",{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50",children:[e.jsxs("td",{className:"px-4 py-3",children:[e.jsx("div",{className:"text-sm text-gray-900 dark:text-gray-100",children:v.user_email??"â"}),e.jsx("div",{className:"font-mono text-xs text-gray-400 dark:text-gray-500",children:v.id.slice(0,8)})]}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-700 dark:text-gray-300",children:v.organization_name??s("finance.credit.table.orphaned")}),e.jsx("td",{className:"px-4 py-3",children:e.jsx("span",{className:$(ee,et[v.scope]),children:s(Zn[v.scope])})}),e.jsx("td",{className:"px-4 py-3 text-right text-sm font-medium text-gray-900 dark:text-gray-100",children:K(v.amount_charged,v.currency)}),e.jsx("td",{className:"px-4 py-3 text-right text-sm text-gray-700 dark:text-gray-300",children:K(v.credit_granted,v.currency)}),e.jsx("td",{className:"px-4 py-3",children:e.jsx("span",{className:$(ee,st[v.status]),children:s(at[v.status])})}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-400",children:U(v.created_at)}),e.jsx("td",{className:"px-4 py-3 text-right",children:nt(v.status)?e.jsx(A,{variant:"secondary",size:"sm",disabled:C.isPending,onClick:()=>C.mutate(v.id),"data-help":"finance.credit.markPaid",children:s("finance.credit.actions.markPaid")}):v.settled_at?e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:s("finance.credit.settledOn",{date:U(v.settled_at)})}),v.scope==="member"&&v.receipt_available?e.jsx(A,{variant:"ghost",size:"sm",disabled:k.isPending,onClick:()=>k.mutate(v),"data-help":"finance.credit.receipt",children:s("finance.credit.actions.receipt")}):null]}):null})]},v.id))})]})}),N>1&&e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t border-gray-200 dark:border-gray-700",children:[e.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:s("finance.credit.table.pageOf",{page:b,pages:N,total:w})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A,{variant:"ghost",size:"sm",disabled:b<=1,onClick:()=>p(v=>v-1),"data-help":"common.pagination.previous",children:n("actions.back")}),e.jsx(A,{variant:"ghost",size:"sm",disabled:b>=N,onClick:()=>p(v=>v+1),"data-help":"common.pagination.next",children:n("actions.next")})]})]})]})]})}function me({title:a,accent:s,helpKey:n,children:t,className:r}){const{edge:i,dot:d}=Pi(s),c=f.useId();return e.jsxs("fieldset",{"aria-labelledby":c,className:$(Fi,i,r),children:[e.jsx("legend",{className:"px-2",children:e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:$("h-2 w-2 rounded-full",d),"aria-hidden":"true"}),e.jsx("span",{id:c,className:Ii,children:a}),n&&e.jsx(l,{k:n,label:a})]})}),e.jsx("div",{className:"mt-1",children:t})]})}const Ia="read_only",Hi="text-xs text-gray-500 dark:text-gray-400";function Qe({children:a}){return e.jsxs("p",{className:`${Hi} flex items-start gap-1.5 mt-1`,children:[e.jsx(le,{className:"w-3.5 h-3.5 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a})]})}function Gi({plan:a,descriptors:s,readOnly:n,onDirtyChange:t}){const{t:r}=I("system-admin"),{t:i}=I("common"),{getRoleLabel:d}=we(),c=ce(),x=f.useMemo(()=>da(a.package,s),[a,s]),[o,j]=f.useState(x),[b,p]=f.useState(!1);f.useEffect(()=>j(x),[x]);const g=f.useMemo(()=>JSON.stringify(o)!==JSON.stringify(x),[o,x]);f.useEffect(()=>(t(g),()=>t(!1)),[g,t]);const S=(h,P)=>j(L=>({...L,[h]:P})),_=f.useMemo(()=>ms(o,s),[o,s]),C=f.useMemo(()=>{const h=new Set;for(const P of a.price_books)for(const L of fs(o,P.charge_lines.map(ps)))h.add(L);return Array.from(h)},[o,a]),{data:k}=W({queryKey:["admin-plan-organizations",a.id],queryFn:()=>fn(a.id),enabled:b}),T=V({mutationFn:()=>hn(a.id,Qt(o,s,a.package)),onSuccess:()=>{c.invalidateQueries({queryKey:["admin-plan",a.id]}),c.invalidateQueries({queryKey:["admin-plans"]}),F.success(r("finance.designer.package.saved"))},onError:h=>F.error(z(h,r("finance.designer.package.saveFailed")))}),w=s.find(h=>h.key===Ee),H=s.filter(h=>!Gt.includes(h.key)).reduce((h,P)=>{var L;
18return(h[L=P.group]??(h[L]=[])).push(P),h},{}),m=[cs,ds,os],v=s.find(h=>h.key===be),y=(k??[]).map(h=>h.organization_name??h.organization_slug??h.contract_id).join(", ");return e.jsxs("section",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-5 space-y-6",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("h2",{className:"flex items-center gap-1.5 text-lg font-semibold text-gray-900 dark:text-white",children:[r("finance.designer.package.title"),e.jsx(l,{k:"designer.package.section",size:"md",label:r("finance.designer.package.title")})]}),!n&&e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(A,{size:"sm",isLoading:T.isPending,disabled:_.length>0,onClick:()=>T.mutate(),"data-help":"finance.package.save",children:r("finance.designer.package.save")}),e.jsx(l,{k:"designer.package.save",label:r("finance.designer.package.save")})]})]}),w&&e.jsxs(me,{title:r("finance.designer.package.mode"),accent:"policy",helpKey:"designer.package.mode",children:[e.jsx("div",{className:"flex flex-wrap gap-4",children:w.values.map(h=>e.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[e.jsx("input",{type:"radio",name:"policy-mode",value:h,checked:o[Ee]===h,disabled:n,onChange:()=>{if(h===Ia){p(!0);return}S(Ee,h)}}),r(`finance.designer.enumValues.${h}`,{defaultValue:h})]},h))}),e.jsx(Qe,{children:r("finance.designer.package.modeHelp")})]}),Object.entries(H).map(([h,P])=>{const L=r(`finance.designer.package.groups.${h}`,{defaultValue:h});return e.jsx(me,{title:L,accent:h,helpKey:`designer.package.groups.${h}`,children:e.jsx("div",{className:"grid gap-2.5 sm:grid-cols-2",children:P.map(D=>e.jsx(Te,{descriptor:D,value:o[D.key],readOnly:n,invalid:_.includes(D.key),onChange:G=>S(D.key,G),variant:"card",helpKey:`designer.package.keys.${D.key.split(".").join("_")}`},D.key))})},h)}),e.jsx(me,{title:r("finance.designer.package.paidCapabilities"),accent:"feature",helpKey:"designer.package.paidCapabilities",children:e.jsx("div",{className:"space-y-2.5",children:m.map(h=>{const P=s.find(L=>L.key===h);return P?e.jsxs("div",{children:[e.jsx(Te,{descriptor:P,value:o[h],readOnly:n,invalid:_.includes(h),onChange:L=>S(h,L),variant:"card",helpKey:`designer.package.keys.${h.split(".").join("_")}`}),e.jsx(Qe,{children:r(`finance.designer.package.paidHelp.${h.split(".").join("_")}`)})]},h):null})})}),v&&e.jsx(me,{title:r("finance.designer.package.aiBudget"),accent:"limit",helpKey:"designer.package.aiBudget",children:e.jsxs("div",{className:"sm:max-w-sm",children:[e.jsx(Te,{descriptor:v,value:o[be],readOnly:n,invalid:_.includes(be),onChange:h=>S(be,h),variant:"card",helpKey:`designer.package.keys.${be.split(".").join("_")}`}),e.jsx(Qe,{children:r("finance.designer.package.aiBudgetHelp")})]})}),C.length>0&&e.jsxs("p",{className:"flex items-start gap-2 text-sm text-amber-700 dark:text-amber-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[r("finance.designer.package.seatsGivenAway",{roles:C.map(d).join(", ")}),e.jsx(l,{k:"designer.package.seatsGivenAway",className:"ml-1"})]})]}),_.length>0&&e.jsx("p",{className:"text-sm text-red-600 dark:text-red-400",children:r("finance.designer.package.invali
18dValues")}),e.jsx(xe,{isOpen:b,title:r("finance.designer.package.readOnlyDialog.title"),body:y?r("finance.designer.package.readOnlyDialog.bodyWithOrgs",{organizations:y}):r("finance.designer.package.readOnlyDialog.body"),confirmLabel:r("finance.designer.package.readOnlyDialog.confirm"),confirmHelpId:"finance.package.readOnlyConfirm",cancelLabel:i("actions.cancel"),danger:!0,onConfirm:()=>{S(Ee,Ia),p(!1)},onClose:()=>p(!1)})]})}const Vi=350,ks=1e8,Qi="px-2 py-1 text-sm rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-fuchsia-400",Yi="block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1";function Wi(a){const s=Number.parseInt(a.trim(),10);return!Number.isFinite(s)||s<0?0:Math.min(s,ks)}function Xi(a,s,n){const t=a.filter(r=>r.label===s&&r.ff_role===n);return t.length===1?t[0].unit_price:null}function Ji({billingInterval:a,lines:s,lineIssues:n,givingAway:t}){const{t:r}=I("system-admin"),{getRoleLabel:i}=we(),[d,c]=f.useState(()=>Object.fromEntries(je.map(w=>[w,"0"]))),x=f.useMemo(()=>n.length>0||s.length===0?null:{price_book:{billing_interval:a},charge_lines:s.map(oa),headcounts:Object.fromEntries(je.map(w=>[w,Wi(d[w])])),first_invoice:!0},[a,s,n,d]),o=Pe(x===null?"":JSON.stringify(x),Vi),j=f.useMemo(()=>o===""?null:JSON.parse(o),[o]),{data:b,error:p,isFetching:g}=W({queryKey:["admin-plan-preview",o],queryFn:({signal:w})=>yn(j,w),enabled:x!==null&&j!==null,staleTime:1/0,gcTime:6e4,retry:!1,placeholderData:w=>w}),S=(b==null?void 0:b.currency)??"EUR",_=f.useMemo(()=>{const w=new Set;for(const N of s)ve[N.kind].tiers&&N.tier_mode&&w.add(N.tier_mode);return w},[s]),C=f.useMemo(()=>s.filter(w=>ve[w.kind].tiers).map(w=>({label:w.label.trim(),ffRole:w.ff_role})).filter(w=>w.label&&w.ffRole),[s]),k=f.useMemo(()=>{const w=(b==null?void 0:b.tier_mode_totals)??[],N=w.filter(m=>Number(m.difference)!==0);if(N.length>0)return N;const H=w.filter(m=>!_.has(m.tier_mode));return(H.length>0?H:w).slice(0,1)},[b,_]),T=s.some(w=>w.kind==="one_off");return e.jsxs("section",{"aria-label":r("finance.designer.preview.title"),className:"border-t border-gray-200 dark:border-gray-700 pt-4 space-y-4",children:[e.jsxs("h3",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[r("finance.designer.preview.title"),e.jsx(l,{k:"pricing.preview.overview",size:"md",label:r("finance.designer.preview.title")})]}),e.jsxs("div",{className:"flex flex-wrap items-end gap-3",children:[e.jsx("span",{className:"text-sm text-gray-600 dark:text-gray-400 pb-1",children:r("finance.designer.preview.tryItWith")}),e.jsx(l,{k:"pricing.preview.headcounts",className:"mb-1.5"}),je.map(w=>e.jsxs("label",{children:[e.jsx("span",{className:Yi,children:i(w)}),e.jsx("input",{type:"number",min:0,max:ks,step:1,value:d[w],onChange:N=>c(H=>({...H,[w]:N.target.value})),className:`${Qi} w-28 tabular-nums`})]},w))]}),s.length===0?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:r("finance.designer.preview.noChargeLines")}):n.length>0?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:r("finance.designer.preview.blockedByErrors")}):p?e.jsx("p",{className:"text-sm text-red-600 dark:text-red-400",children:z(p,r("finance.designer.preview.failed"))}):b?e.jsxs("div",{className:g?"opacity-60 transition-opacity":"transition-opacity",children:[e.jsx(ma,{invoice:b}),e.jsxs("div",{className:"mt-3 space-y-1.5",children:[k.map(w=>{const N=Number(w.difference),H=$s(Math.abs(N),2,S),m=r(`finance.designer.tiers.mode.${w.tier_mode}`),v=N===0?r("finance.designer.preview.tierMode.same",{mode:m,total:K(w.total,S)}):r(N<0?"finance.designer.preview.tierMode.less":"finance.designer.preview.tierMode.more",{mode:m,total:K(w.total,S),difference:H}),y=C.map(h=>({label:h.label,unitPrice:Xi(w.lines,h.label,h.ffRole)})).filter(h=>h.unitPrice!==null).map(h=>r("finance.designer.preview.tierMode.pricesAt",{label:h.label,unitPrice:K(h.unitPrice,S)}));return e.jsxs("p",{className:_e,children:[e.jsx(le,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:[v,...y].join(" ")})]},w.tier_mode)}),e.jsx(xa,{seats:b.seat_quantities}),T&&e.jsxs("p",{className:_e,children:[e.jsx(le,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:r("finance.designer.preview.oneOffNote")})]})]})]}):e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:r("finance.designer.preview.pricing")}),t.length>0&&e.jsxs("p",{className:"flex items-start gap-2 text-sm text-amber-700 dark:text-amber-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:r("finance.designer.package.seatsGivenAway",{roles:t.map(i).join(", ")})})]})]})}const ye="new",Zi=["monthly","annual"],er=["day_of_month","fixed_date","contract_start"],Je=a=>a!=="contract_start",ar={day_of_month:"1",fixed_date:"01-01",contract_start:""},sr=["end_of_period","end_of_month","immediate"],nr=["auto_renew","switch_to"],te="px-2 py-1 text-sm rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-fuchsia-400 disabled:bg-gray-50 disabled:text-gray-500 dark:disabled:bg-gray-900",tr="block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1",ir="text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400";function rr(){return{name:"",billing_interval:"monthly",billing_anchor_kind:"day_of_month",billing_anchor_value:"1",seat_commitment_months:"",seat_removal_effective:"end_of_period",credit_multiplier:"1.000",credit_min_purchase:"",is_default:!1,payment_terms_days:"14",term_months:"",default_grace_days:"7",default_on_expiry:"",default_successor_plan_id:""}}function lr(a){return{name:a.name,billing_interval:a.billing_interval,billing_anchor_kind:a.billing_anchor_kind,billing_anchor_value:a.billing_anchor_value,seat_commitment_months:String(a.seat_commitment_months),seat_removal_effective:a.seat_removal_effective,credit_multiplier:a.credit_multiplier,credit_min_purchase:a.credit_min_purchase??"",is_default:a.is_default,payment_terms_days:String(a.payment_terms_days),term_months:a.term_months===null?"":String(a.term_months),default_grace_days:String(a.default_grace_days),default_on_expiry:a.default_on_expiry,default_successor_plan_id:a.default_successor_plan_id??""}}function cr(a,s){const n=s.trim();if(!Je(a))return null;if(a==="day_of_month"){const d=Number(n);return/^\d+$/.test(n)&&d>=1&&d<=31?null:"finance.designer.errors.anchorDayInvalid"}const t=/^(\d{1,2})-(\d{1,2})$/.exec(n);if(!t)return"finance.designer.errors.anchorDateInvalid";const r=Number(t[1]),i=Number(t[2]);return r>=1&&r<=12&&i>=1&&i<=31?null:"finance.designer.errors.anchorDateInvalid"}function De(a,s){const n=Number.parseInt(a.trim(),10);return Number.isFinite(n)?n:s}function dr(a){return{name:a.name.trim(),billing_interval:a.billing_interval,currency:"EUR",billing_anchor_kind:a.billing_anchor_kind,billing_anchor_value:a.billing_anchor_value.trim(),term_months:a.term_months.trim()?De(a.term_months,1):null,
18seat_commitment_months:De(a.seat_commitment_months,0),seat_removal_effective:a.seat_removal_effective,credit_multiplier:a.credit_multiplier.trim().replace(",","."),credit_min_purchase:a.credit_min_purchase.trim()?a.credit_min_purchase.trim().replace(",","."):null,is_default:a.is_default,payment_terms_days:De(a.payment_terms_days,14),default_grace_days:De(a.default_grace_days,7),default_on_expiry:a.default_on_expiry||"auto_renew",default_successor_plan_id:a.default_successor_plan_id||null}}function or({plan:a,descriptors:s,allPlans:n,readOnly:t,onDirtyChange:r}){const{t:i}=I("system-admin"),{t:d}=I("common"),c=ce(),x=f.useId(),[o,j]=f.useState(()=>{var u;return((u=a.price_books[0])==null?void 0:u.id)??ye}),[b,p]=f.useState(!1),g=a.price_books.find(u=>u.id===o)??null,S=g===null,_=f.useMemo(()=>g?lr(g):rr(),[g]),C=f.useMemo(()=>g?g.charge_lines.map(ps):[],[g]),[k,T]=f.useState(_),[w,N]=f.useState(C);f.useEffect(()=>T(_),[_]),f.useEffect(()=>N(C),[C]),f.useEffect(()=>{var u;o!==ye&&(a.price_books.some(O=>O.id===o)||j(((u=a.price_books[0])==null?void 0:u.id)??ye))},[a.price_books,o]);const H=f.useMemo(()=>JSON.stringify(k)!==JSON.stringify(_)||JSON.stringify(w)!==JSON.stringify(C),[k,_,w,C]);f.useEffect(()=>(r(H),()=>r(!1)),[H,r]);const m=(u,O)=>T(E=>({...E,[u]:O})),v=f.useMemo(()=>hs(w),[w]),y=f.useMemo(()=>{const u=[];k.name.trim()||u.push("finance.designer.errors.bookNameRequired");const O=cr(k.billing_anchor_kind,k.billing_anchor_value);return O&&u.push(O),/^\d+$/.test(k.seat_commitment_months.trim())||u.push("finance.designer.errors.commitmentRequired"),k.default_on_expiry||u.push("finance.designer.errors.onExpiryRequired"),Number(k.credit_multiplier.replace(",","."))>0||u.push("finance.designer.errors.multiplierPositive"),u},[k]),h=f.useMemo(()=>fs(da(a.package,s),w),[a,s,w]),P=async()=>{c.invalidateQueries({queryKey:["admin-plans"]}),await c.invalidateQueries({queryKey:["admin-plan",a.id]})},L=V({mutationFn:async()=>{const u=dr(k),O=g?await bn(g.id,u):await jn(a.id,u);return(g||w.length>0)&&await kn(O.id,w.map(oa)),O},onSuccess:async u=>{await P(),j(u.id),F.success(i("finance.designer.pricing.saved",{name:u.name}))},onError:u=>F.error(z(u,i("finance.designer.pricing.saveFailed")))}),D=V({mutationFn:async()=>{g&&await Nn(g.id)},onSuccess:async()=>{var u;p(!1),j(((u=a.price_books.find(O=>O.id!==o))==null?void 0:u.id)??ye),await P(),F.success(i("finance.designer.pricing.deleted"))},onError:u=>F.error(z(u,i("finance.designer.pricing.deleteFailed")))}),G=n.find(u=>u.is_default_fallback),J=n.filter(u=>u.id!==a.id&&u.status!=="archived"),oe=!t&&y.length===0&&v.length===0;return e.jsxs("section",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-5 space-y-5",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("h2",{className:"inline-flex items-center gap-1.5 text-lg font-semibold text-gray-900 dark:text-white",children:[i("finance.designer.pricing.title"),e.jsx(l,{k:"pricing.section.overview",size:"md",label:i("finance.designer.pricing.title")})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[!t&&!S&&e.jsxs(e.Fragment,{children:[e.jsxs(A,{size:"sm",variant:"ghost",onClick:()=>p(!0),"data-help":"finance.pricing.deleteBook",children:[e.jsx(Re,{className:"w-3.5 h-3.5 mr-1.5"}),i("finance.designer.pricing.deleteBook")]}),e.jsx(l,{k:"pricing.priceBook.delete"})]}),!t&&e.jsxs(e.Fragment,{children:[e.jsx(A,{size:"sm",isLoading:L.isPending,disabled:!oe,onClick:()=>L.mutate(),"data-help":S?"finance.pricing.createBook":"finance.pricing.saveBook",children:i(S?"finance.designer.pricing.create":"finance.designer.pricing.save")}),e.jsx(l,{k:"pricing.priceBook.save",label:i(S?"finance.designer.pricing.create":"finance.designer.pricing.save")})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-b border-gray-200 dark:border-gray-700 pb-2",children:[e.jsxs("span",{className:"flex items-center gap-1.5 mr-1",children:[e.jsx("span",{className:ir,children:i("finance.designer.pricing.booksLabel")}),e.jsx(l,{k:"pricing.priceBook.tabs",label:i("finance.designer.pricing.booksLabel")})]}),a.price_books.map(u=>e.jsxs("button",{type:"button",onClick:()=>j(u.id),"data-help":"finance.pricing.bookTab",className:$("px-3 py-1.5 text-sm font-medium rounded-md",o===u.id?"bg-fuchsia-100 text-fuchsia-800 dark:bg-fuchsia-900/30 dark:text-fuchsia-300":"text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700"),children:[u.name,u.is_default&&e.jsx("span",{title:i("finance.designer.pricing.isDefault"),children:"*"})]},u.id)),!t&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",onClick:()=>j(ye),"data-help":"finance.pricing.newBook",className:$("inline-flex items-center gap-1 px-3 py-1.5 text-sm rounded-md",o===ye?"bg-fuchsia-100 text-fuchsia-800 dark:bg-fuchsia-900/30 dark:text-fuchsia-300":"text-fuchsia-600 dark:text-fuchsia-400 hover:underline"),children:[e.jsx(qe,{className:"w-3.5 h-3.5"}),i("finance.designer.pricing.addBook")]}),e.jsx(l,{k:"pricing.priceBook.add",label:i("finance.designer.pricing.addBook")})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs(me,{title:i("finance.designer.pricing.groups.identity"),accent:"identity",helpKey:"pricing.groups.identity",children:[e.jsxs("div",{className:"grid gap-2.5 sm:grid-cols-2 lg:grid-cols-3",children:[e.jsx(se,{label:i("finance.designer.pricing.name"),htmlFor:`${x}-name`,helpKey:"pricing.priceBook.name",children:e.jsx("input",{id:`${x}
18-name`,type:"text",maxLength:100,value:k.name,disabled:t,onChange:u=>m("name",u.target.value),className:`${te} w-full`})}),e.jsx(se,{label:i("finance.designer.pricing.interval"),htmlFor:`${x}-interval`,helpKey:"pricing.priceBook.interval",children:e.jsx("select",{id:`${x}-interval`,value:k.billing_interval,disabled:t,onChange:u=>m("billing_interval",u.target.value),className:`${te} w-full`,children:Zi.map(u=>e.jsx("option",{value:u,children:i(`finance.designer.pricing.intervals.${u}`)},u))})}),e.jsx(se,{label:i("finance.designer.pricing.currency"),htmlFor:`${x}-currency`,helpKey:"pricing.priceBook.currency",children:e.jsx("select",{id:`${x}-currency`,value:"EUR",disabled:!0,className:`${te} w-full`,children:e.jsx("option",{value:"EUR",children:"EUR"})})})]}),e.jsxs("span",{className:"mt-2.5 flex items-center gap-1.5",children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm text-gray-800 dark:text-gray-200",children:[e.jsx("input",{type:"checkbox",checked:k.is_default,disabled:t,onChange:u=>m("is_default",u.target.checked)}),i("finance.designer.pricing.isDefault")]}),e.jsx(l,{k:"pricing.priceBook.isDefault",label:i("finance.designer.pricing.isDefault")})]})]}),e.jsx(me,{title:i("finance.designer.pricing.groups.cycle"),accent:"cycle",helpKey:"pricing.groups.cycle",children:e.jsxs("div",{className:"grid gap-2.5 sm:grid-cols-2 lg:grid-cols-3",children:[e.jsx(se,{label:i("finance.designer.pricing.anchorKind"),htmlFor:`${x}-anchor-kind`,helpKey:"pricing.priceBook.anchorKind",children:e.jsx("select",{id:`${x}-anchor-kind`,value:k.billing_anchor_kind,disabled:t,onChange:u=>{const O=u.target.value;T(E=>({...E,billing_anchor_kind:O,billing_anchor_value:ar[O]}))},className:`${te} w-full`,children:er.map(u=>e.jsx("option",{value:u,children:i(`finance.designer.pricing.anchorKinds.${u}`)},u))})}),e.jsx(se,{label:i("finance.designer.pricing.anchorValue"),htmlFor:`${x}-anchor-value`,helpKey:"pricing.priceBook.anchorValue",children:e.jsx("input",{id:`${x}-anchor-value`,type:"text",maxLength:10,value:k.billing_anchor_value,disabled:t||!Je(k.billing_anchor_kind),onChange:u=>m("billing_anchor_value",u.target.value),placeholder:Je(k.billing_anchor_kind)?k.billing_anchor_kind==="day_of_month"?i("finance.designer.pricing.anchorDayPlaceholder"):i("finance.designer.pricing.anchorDatePlaceholder"):i("finance.designer.pricing.anchorFromContract"),className:`${te} w-full`})}),e.jsx(se,{label:i("finance.designer.pricing.paymentTerms"),htmlFor:`${x}-payment-terms`,helpKey:"pricing.priceBook.paymentTerms",children:e.jsx("input",{id:`${x}-payment-terms`,type:"number",min:0,max:365,step:1,value:k.payment_terms_days,disabled:t,onChange:u=>m("payment_terms_days",u.target.value),className:`${te} w-full tabular-nums`})})]})}),e.jsx(me,{title:i("finance.designer.pricing.groups.seats"),accent:"seats",helpKey:"pricing.groups.seats",children:e.jsxs("div",{className:"grid gap-2.5 sm:grid-cols-2",children:[e.jsx(se,{label:i("finance.designer.pricing.seatCommitment"),htmlFor:`${x}-seat-commitment`,helpKey:"pricing.priceBook.seatCommitment",children:e.jsx("input",{id:`${x}-seat-commitment`,type:"number",min:0,step:1,value:k.seat_commitment_months,disabled:t,onChange:u=>m("seat_commitment_months",u.target.value),placeholder:i("finance.designer.pricing.chooseValue"),className:`${te} w-full tabular-nums`})}),e.jsx(se,{label:i("finance.designer.pricing.seatRemoval"),htmlFor:`${x}-seat-removal`,helpKey:"pricing.priceBook.seatRemoval",children:e.jsx("select",{id:`${x}-seat-removal`,value:k.seat_removal_effective,disabled:t,onChange:u=>m("seat_removal_effective",u.target.value),className:`${te} w-full`,children:sr.map(u=>e.jsx("option",{value:u,children:i(`finance.designer.pricing.seatRemovals.${u}`)},u))})})]})}),e.jsx(me,{title:i("finance.designer.pricing.groups.credit"),accent:"credit",helpKey:"pricing.groups.credit",children:e.jsxs("div",{className:"grid gap-2.5 sm:grid-cols-2",children:[e.jsx(se,{label:i("finance.designer.pricing.creditMultiplier"),htmlFor:`${x}-credit-multiplier`,helpKey:"pricing.priceBook.creditMultiplier",children:e.jsx("input",{id:`${x}
18-credit-multiplier`,type:"number",min:0,step:"0.001",value:k.credit_multiplier,disabled:t,onChange:u=>m("credit_multiplier",u.target.value),className:`${te} w-full tabular-nums`})}),e.jsx(se,{label:i("finance.designer.pricing.creditMinPurchase"),htmlFor:`${x}-credit-min`,helpKey:"pricing.priceBook.creditMinPurchase",children:e.jsx("input",{id:`${x}-credit-min`,type:"number",min:0,step:"0.01",value:k.credit_min_purchase,disabled:t,onChange:u=>m("credit_min_purchase",u.target.value),placeholder:i("finance.designer.pricing.noMinimum"),className:`${te} w-full tabular-nums`})})]})})]}),e.jsx(me,{title:i("finance.designer.chargeLines.title"),accent:"money",helpKey:"pricing.chargeLines.overview",children:S?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:i("finance.designer.chargeLines.createBookFirst")}):e.jsx(js,{lines:w,readOnly:t,issues:v,onChange:N})}),e.jsxs(me,{title:i("finance.designer.term.title"),accent:"term",helpKey:"pricing.term.overview",children:[e.jsxs("div",{className:"grid gap-2.5 sm:grid-cols-2 lg:grid-cols-3",children:[e.jsx(se,{label:i("finance.designer.term.length"),htmlFor:`${x}-term-months`,helpKey:"pricing.term.length",children:e.jsx("input",{id:`${x}-term-months`,type:"number",min:1,step:1,value:k.term_months,disabled:t,onChange:u=>m("term_months",u.target.value),placeholder:i("finance.designer.term.evergreen"),className:`${te} w-full tabular-nums`})}),e.jsx(se,{label:i("finance.designer.term.grace"),htmlFor:`${x}-grace-days`,helpKey:"pricing.term.graceDays",children:e.jsx("input",{id:`${x}-grace-days`,type:"number",min:0,max:365,step:1,value:k.default_grace_days,disabled:t,onChange:u=>m("default_grace_days",u.target.value),className:`${te} w-full tabular-nums`})})]}),e.jsxs("div",{className:"mt-3",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:tr,children:i("finance.designer.term.atTheEnd")}),e.jsx(l,{k:"pricing.term.onExpiry"})]}),e.jsx("div",{className:"flex flex-wrap gap-4",children:nr.map(u=>e.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[e.jsx("input",{type:"radio",name:"on-expiry",value:u,checked:k.default_on_expiry===u,disabled:t,onChange:()=>m("default_on_expiry",u)}),i(`finance.designer.term.onExpiry.${u}`)]},u))})]}),k.default_on_expiry==="switch_to"&&e.jsx(se,{label:i("finance.designer.term.successor"),htmlFor:`${x}-successor`,helpKey:"pricing.term.successorPlan",className:"mt-3 max-w-md",children:e.jsxs("select",{id:`${x}-successor`,value:k.default_successor_plan_id,disabled:t,onChange:u=>m("default_successor_plan_id",u.target.value),className:`${te} w-full`,children:[e.jsx("option",{value:"",children:G?i("finance.designer.term.fallbackNamed",{code:G.code}):i("finance.designer.term.fallbackUnknown")}),J.map(u=>e.jsxs("option",{value:u.id,children:[u.code," â ",u.name]},u.id))]})})]}),e.jsx(Ji,{billingInterval:k.billing_interval,lines:w,lineIssues:v,givingAway:h}),(y.length>0||v.length>0)&&!t&&e.jsxs("ul",{className:"space-y-0.5",children:[y.map(u=>e.jsx("li",{className:"text-sm text-red-600 dark:text-red-400",children:i(u)},u)),v.length>0&&e.jsx("li",{className:"text-sm text-red-600 dark:text-red-400",children:i("finance.designer.errors.chargeLinesInvalid")})]}),e.jsx(xe,{isOpen:b,title:i("finance.designer.pricing.deleteDialog.title",{name:(g==null?void 0:g.name)??""}),body:i("finance.designer.pricing.deleteDialog.body"),confirmLabel:i("finance.designer.pricing.deleteBook"),confirmHelpId:"finance.pricing.deleteBookConfirm",cancelLabel:d("actions.cancel"),isLoading:D.isPending,danger:!0,onConfirm:()=>D.mutate(),onClose:()=>p(!1)})]})}const $a=["catalogue","custom","system"],mr=["draft","active"],ie="px-2 py-1 text-sm rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-fuchsia-400 disabled:bg-gray-50 disabled:text-gray-500 dark:disabled:bg-gray-900",re="block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1",Ye=Ds,xr=9999;function gr(a){const s=Number(a);return Number.isFinite(s)?Math.min(Math.max(Math.trunc(s),0),xr):0}const We="inline-flex items-center gap-1 px-2.5 py-0.5 rounded-full text-xs font-medium whitespace-nowrap";function ur({planId:a,onSelectPlan:s}){const{t:n}=I("system-admin"),{t}=I("common"),r=ce(),i=f.useId(),[d,c]=f.useState(!1),[x,o]=f.useState(null),[j,b]=f.useState({code:"",name:"",kind:"catalogue"}),[p,g]=f.useState(null),S=f.useRef({}),_=f.useRef(!1),C=f.useCallback((E,Z)=>{S.current[E]=Z,_.current=Object.values(S.current).some(Boolean)},[]),k=f.useCallback(E=>C("package",E),[C]),T=f.useCallback(E=>C("pricing",E),[C]),{pendingNavigation:w,confirmLeave:N,cancelLeave:H}=wt(_),{data:m}=W({queryKey:["admin-plans","designer"],queryFn:()=>Oe({limit:ke})}),{data:v}=W({queryKey:["admin-entitlement-keys"],queryFn:na,staleTime:1/0}),{data:y,isLoading:h}=W({queryKey:["admin-plan",a],queryFn:()=>sa(a),enabled:a!==null}),P=f.useMemo(()=>y?{code:y.code,name:y.name,kind:y.kind,status:y.status==="archived"?"draft":y.status,notes:y.notes??"",publicDescription:Object.fromEntries(Ye.map(E=>{var Z;return[E,((Z=y.public_description)==null?void 0:Z[E])??""]})),publicSortOrder:String(y.public_sort_order??0),publicGroup:y.public_group??""}:null,[y]),L=p??P,D=(y==null?void 0:y.locked_at)!=null;f.useEffect(()=>{const E=p!==null&&JSON.stringify(p)!==JSON.stringify(P);C("header",E)},[p,P,C]),f.useEffect(()=>o(null),[a]);const G=async E=>{r.invalidateQueries({queryKey:["admin-plans"]}),await r.invalidateQueries({queryKey:["admin-plan",E]})},J=V({mutationFn:()=>vn({code:j.code.trim(),name:j.name.trim(),kind:j.kind}),onSuccess:E=>{r.invalidateQueries({queryKey:["admin-plans"]}),c(!1),b({code:"",name:"",kind:"catalogue"}
18),g(null),s(E.id),F.success(n("finance.designer.plan.created",{code:E.code}))},onError:E=>F.error(z(E,n("finance.designer.plan.createFailed")))}),oe=V({mutationFn:()=>_n(y==null?void 0:y.id,{code:L==null?void 0:L.code.trim(),name:L==null?void 0:L.name.trim(),kind:L==null?void 0:L.kind,status:L==null?void 0:L.status,notes:L!=null&&L.notes.trim()?L.notes:null,public_description:(L==null?void 0:L.publicDescription)??{},public_sort_order:gr(L==null?void 0:L.publicSortOrder),public_group:L!=null&&L.publicGroup.trim()?L.publicGroup.trim():null}),onSuccess:async E=>{g(null),await G(E.id),F.success(n("finance.designer.plan.saved"))},onError:E=>F.error(z(E,n("finance.designer.plan.saveFailed")))}),u=V({mutationFn:E=>wn(y==null?void 0:y.id,E),onMutate:()=>o(null),onSuccess:async E=>{await G(E.plan_id),F.success(n(E.is_public?"finance.designer.plan.published":"finance.designer.plan.unpublished")),E.warnings.forEach(Z=>F(Z,{duration:12e3,icon:"â ï¸"}))},onError:E=>{const Z=z(E,n("finance.designer.plan.publishFailed"));o(Z)}}),O=V({mutationFn:()=>Va(y==null?void 0:y.id),onSuccess:E=>{r.invalidateQueries({queryKey:["admin-plans"]}),g(null),s(E.id),F.success(n("finance.plans.toasts.duplicated",{code:E.code}))},onError:E=>F.error(z(E,n("finance.plans.toasts.duplicateFailed")))});return e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-5 space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap items-end gap-3",children:[e.jsxs("div",{className:"min-w-[16rem]",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-picker`,className:re,children:n("finance.designer.plan.picker")}),e.jsx(l,{k:"designer.plan.picker",className:"mb-1"})]}),e.jsxs("select",{id:`${i}-picker`,value:a??"",onChange:E=>{g(null),s(E.target.value)},className:`${ie} w-full`,children:[e.jsx("option",{value:"",children:n("finance.designer.plan.pickerPlaceholder")}),(m??[]).map(E=>e.jsxs("option",{value:E.id,children:[E.code," â ",E.name]},E.id))]})]}),e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsxs(A,{size:"sm",variant:"outline",onClick:()=>c(E=>!E),"data-help":"finance.designer.newPlan",children:[e.jsx(qe,{className:"w-3.5 h-3.5 mr-1.5"}),n("finance.designer.plan.newPlan")]}),e.jsx(l,{k:"designer.plan.newPlanToggle",label:n("finance.designer.plan.newPlan")})]}),y&&e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsxs(A,{size:"sm",variant:D?"primary":"ghost",isLoading:O.isPending,onClick:()=>O.mutate(),"data-help":"finance.plans.duplicate",children:[e.jsx(ss,{className:"w-3.5 h-3.5 mr-1.5"}),n("finance.plans.actions.duplicate")]}),e.jsx(l,{k:"designer.plan.duplicate"})]})]}),d&&e.jsxs("div",{className:"flex flex-wrap items-end gap-3 border-t border-gray-200 dark:border-gray-700 pt-4",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-new-code`,className:re,children:n("finance.designer.plan.code")}),e.jsx(l,{k:"designer.newPlan.code",className:"mb-1"})]}),e.jsx("input",{id:`${i}-new-code`,type:"text",maxLength:64,value:j.code,onChange:E=>b(Z=>({...Z,code:E.target.value})),placeholder:n("finance.designer.plan.codePlaceholder"),className:`${ie} w-56 font-mono`})]}),e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-new-name`,className:re,children:n("finance.designer.plan.name")}),e.jsx(l,{k:"designer.newPlan.name",label:n("finance.designer.plan.name"),className:"mb-1"})]}),e.jsx("input",{id:`${i}-new-name`,type:"text",maxLength:200,value:j.name,onChange:E=>b(Z=>({...Z,name:E.target.value})),className:`${ie} w-64`})]}),e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-new-kind`,className:re,children:n("finance.designer.plan.kind")}),e.jsx(l,{k:"designer.newPlan.kind",className:"mb-1"})]}),e.jsx("select",{id:`${i}-new-kind`,value:j.kind,onChange:E=>b(Z=>({...Z,kind:E.target.value})),className:`${ie} w-40`,children:$a.map(E=>e.jsx("option",{value:E,children:n(`finance.plans.kind.${E}`)},E))})]}),e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(A,{size:"sm",isLoading:J.isPending,disabled:!j.code.trim()||!j.name.trim(),onClick:()=>J.mutate(),"data-help":"finance.designer.createPlan",children:n("finance.designer.plan.create")}),e.jsx(l,{k:"designer.newPlan.create",label:n("finance.designer.plan.create")})]})]})]}),a===null?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:n("finance.designer.plan.noneSelected")}):h||!y||!v||!L?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:t("actions.loading")}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-5 space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("h2",{className:"inline-flex items-center gap-1.5 text-lg font-semibold text-gray-900 dark:text-white font-mono",children:[y.code,e.jsx(l,{k:"designer.plan.headerPanel",size:"md"})]}),D&&e.jsxs("span",{className:de,children:[e.jsxs("span",{className:$(We,"bg-orange-100 text-orange-800 dark:bg-orange-900/30 dark:text-orange-400"),children:[e.jsx(za,{className:"w-3 h-3"}),n("finance.plans.badges.locked")]}),e.jsx(l,{k:"designer.plan.lockedBadge"})]}),y.is_default_fallback&&e.jsxs("span",{className:de,children:[e.jsxs("span",{className:$(We,"bg-indigo-100 text-indigo-800 dark:bg-indigo-900/30 dark:text-indigo-400"),children:[e.jsx(ns,{className:"w-3 h-3"}),n("finance.plans.badges.fallback")]}),e.jsx(l,{k:"designer.plan.fallbackBadge"})]}),y.is_public&&e.jsxs("span",{className:de,children:[e.jsxs("span",{className:$(We,"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"),children:[e.jsx(Ua,{className:"w-3 h-3"}),n("finance.plans.badges.public")]}),e.jsx(l,{k:"designer.plan.publicBadge"})]}),e.jsxs("span",{className:"ml-auto flex items-center gap-1.5",children:[e.jsx(A,{size:"sm",variant:"ghost",isLoading:u.isPending,onClick:()=>u.mutate(!y.is_public),"data-help":y.is_public?"finance.designer.unpublish":"finance.designer.publish",children:n(y.is_public?"finance.designer.plan.unpublish":"finance.designer.plan.publish")}),e.jsx(l,{k:"designer.plan.publish"}),e.jsx(A,{size:"sm",variant:"outline",isLoading:oe.isPending,onClick:()=>oe.mutate(),"data-help":"finance.designer.savePlan",children:n("finance.designer.plan.savePlan")}),e.jsx(l,{k:"designer.plan.savePlan"})]})]}),D&&e.jsx("p",{className:"text-sm text-orange-700 dark:text-orange-400",children:n("finance.designer.plan.lockedExplanation",{count:y.organization_count})}),x!==null&&e.jsxs("div",{className:"rounded-md border border-red-300 bg-red-50 p-3 text-sm text-red-800 dark:border-red-800 dark:bg-red-900/20 dark:text-red-300",children:[e.jsx("p",{className:"font-medium mb-1",children:n("finance.designer.plan.publishRefused")}),e.jsx("ul",{className:"list-disc pl-5 space-y-1",children:x.split(` 19`).map(E=>e.jsx("li",{children:E},E))})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-code`,className:re,children:n("finance.designer.plan.code")}),e.jsx(l,{k:"designer.plan.code",label:n("finance.designer.plan.code"),className:"mb-1"})]}),e.jsx("input",{id:`${i}-code`,type:"text",maxLength:64,value:L.code,disabled:D,onChange:E=>g({...L,code:E.target.value}),className:`${ie} w-full font-mono`})]}),e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-name`,className:re,children:n("finance.designer.plan.name")}
19),e.jsx(l,{k:"designer.plan.name",label:n("finance.designer.plan.name"),className:"mb-1"})]}),e.jsx("input",{id:`${i}-name`,type:"text",maxLength:200,value:L.name,onChange:E=>g({...L,name:E.target.value}),className:`${ie} w-full`})]}),e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-kind`,className:re,children:n("finance.designer.plan.kind")}),e.jsx(l,{k:"designer.plan.kind",label:n("finance.designer.plan.kind"),className:"mb-1"})]}),e.jsx("select",{id:`${i}-kind`,value:L.kind,disabled:D,onChange:E=>g({...L,kind:E.target.value}),className:`${ie} w-full`,children:$a.map(E=>e.jsx("option",{value:E,children:n(`finance.plans.kind.${E}`)},E))})]}),e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-status`,className:re,children:n("finance.designer.plan.status")}),e.jsx(l,{k:"designer.plan.status",className:"mb-1"})]}),e.jsx("select",{id:`${i}-status`,value:L.status,onChange:E=>g({...L,status:E.target.value}),className:`${ie} w-full`,children:mr.map(E=>e.jsx("option",{value:E,children:n(`finance.plans.status.${E}`)},E))})]}),e.jsxs("div",{className:"sm:col-span-2 lg:col-span-4",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-notes`,className:re,children:n("finance.designer.plan.notes")}),e.jsx(l,{k:"designer.plan.notes",className:"mb-1"})]}),e.jsx("textarea",{id:`${i}-notes`,rows:2,value:L.notes,onChange:E=>g({...L,notes:E.target.value}),className:`${ie} w-full`})]})]}),e.jsxs("div",{className:"space-y-3 border-t border-gray-200 pt-4 dark:border-gray-700",children:[e.jsxs("h3",{className:"inline-flex items-center gap-1.5 text-sm font-semibold text-gray-900 dark:text-white",children:[n("finance.designer.plan.shelfHeading"),e.jsx(l,{k:"designer.plan.shelfHeading"})]}),e.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:n("finance.designer.plan.shelfHint")}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-sort`,className:re,children:n("finance.designer.plan.publicSortOrder")}),e.jsx(l,{k:"designer.plan.publicSortOrder",className:"mb-1"})]}),e.jsx("input",{id:`${i}-sort`,type:"number",min:0,max:9999,value:L.publicSortOrder,onChange:E=>g({...L,publicSortOrder:E.target.value}),className:`${ie} w-full`})]}),e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-group`,className:re,children:n("finance.designer.plan.publicGroup")}),e.jsx(l,{k:"designer.plan.publicGroup",className:"mb-1"})]}),e.jsx("input",{id:`${i}-group`,type:"text",maxLength:50,value:L.publicGroup,onChange:E=>g({...L,publicGroup:E.target.value}),placeholder:n("finance.designer.plan.publicGroupPlaceholder"),className:`${ie} w-full`})]})]}),e.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:Ye.map(E=>{var Z;return e.jsxs("div",{children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:`${i}-blurb-${E}`,className:re,children:n("finance.designer.plan.publicDescription",{language:((Z=Ka(E))==null?void 0:Z.nativeLabel)??E.toUpperCase()})}),E===Ye[0]&&e.jsx(l,{k:"designer.plan.publicDescription",className:"mb-1"})]}),e.jsx("textarea",{id:`${i}-blurb-${E}`,rows:3,value:L.publicDescription[E]??"",onChange:B=>g({...L,publicDescription:{...L.publicDescription,[E]:B.target.value}}),className:`${ie} w-full`})]},E)})})]})]}),e.jsx(Gi,{plan:y,descriptors:v,readOnly:D,onDirtyChange:k},`package-${y.id}`),e.jsx(or,{plan:y,descriptors:v,allPlans:m??[],readOnly:D,onDirtyChange:T},`pricing-${y.id}`)]}),e.jsx(xe,{isOpen:w!==null,title:n("finance.designer.unsaved.title"),body:n("finance.designer.unsaved.body"),confirmLabel:n("finance.designer.unsaved.leave"),confirmHelpId:"finance.designer.discardChanges",cancelLabel:t("actions.cancel"),danger:!0,onConfirm:N,onClose:H})]})}function Ns({invoice:a,wrapError:s=!1}){const{t:n}=I("system-admin"),{enabled:t}=ea(),r=tt(a,t),i=Wa(a,t);return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx("span",{className:$(ee,rt[r]),children:n(it[r])}),a.disputed&&e.jsx("span",{className:$(ee,"bg-rose-100 text-rose-800 dark:bg-rose-900/30 dark:text-rose-300"),children:n("finance.invoices.payment.disputed")}),e.jsx(l,{k:"invoices.columns.payment"})]}),a.kind!=="credit_note"&&a.collection_method!==null&&e.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:n("finance.invoices.payment.paidBy",{method:n(Mt[a.collection_method])})}),a.payment_attempt_count>0&&e.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:n("finance.invoices.payment.attempts",{count:a.payment_attempt_count})}),a.last_push_error!==null&&i&&e.jsx("p",{title:a.last_push_error,className:$("text-xs text-red-600 dark:text-red-400",s?"whitespace-pre-line":"max-w-[16rem] truncate"),children:a.last_push_error}),a.last_payment_error!==null&&e.jsx("p",{title:a.last_payment_error,className:$("text-xs text-red-600 dark:text-red-400",s?"whitespace-pre-line":"max-w-[16rem] truncate"),children:a.last_payment_error})]})}function pe({label:a,value:s,helpKey:n}){return e.jsxs("div",{children:[e.jsx("dt",{className:"text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[a,n!==void 0&&e.jsx(l,{k:n,label:a})]})}),e.jsx("dd",{className:"text-sm text-gray-900 dark:text-gray-100",children:s})]})}function pr({invoice:a,isBusy:s,onDownload:n,onSend:t,onMarkPaid:r,onSavePurchaseOrder:i,onClose:d}){const{t:c,i18n:x}=I("system-admin"),{t:o}=I("common"),j=aa({isOpen:!0,onClose:d,closeOnEscape:!s}),[b,p]=f.useState(a.purchase_order_ref??"");f.useEffect(()=>{p(a.purchase_order_ref??"")},[a.purchase_order_ref]);const g=a.currency,S=Xa(a.status,a.number),_=b.trim()!==(a.purchase_order_ref??"");return e.jsxs("div",{className:"fixed inset-0 z-50 overflow-y-auto",children:[e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 transition-opacity",onClick:()=>!s&&d()}),e.jsx("div",{className:"flex min-h-full items-center justify-center p-4",children:e.jsxs("div",{ref:j,role:"dialog","aria-modal":"true","aria-labelledby":"invoice-detail-title",className:"relative bg-white dark:bg-gray-900 rounded-xl shadow-xl max-w-3xl w-full",children:[e.jsxs("div",{className:"px-6 pt-6 pb-4 max-h-[75vh] overflow-y-auto",children:[e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex-shrink-0 w-10 h-10 rounded-full bg-fuchsia-100 dark:bg-fuchsia-900/30 flex items-center justify-center",children:e.jsx(Cn,{className:"w-5 h-5 text-fuchsia-600","aria-hidden":"true"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsxs("h3",{id:"invoice-detail-title",className:"text-lg font-semibold text-gray-900 dark:text-gray-100",children:[c(Ja[a.kind])," ",a.number??"â"]}),e.jsx(l,{k:"invoices.detail.overview",size:"md"})]}),e.jsx("p",{className:"mt-1 text-sm text-gray-600 dark:text-gray-400",children:a.organization_legal_name})]}),e.jsx("span",{className:`${ee} ${ta[a.status]}`,children:c(`finance.invoices.status.${a.status}`)})]}),e.jsxs("dl",{className:"mt-5 grid grid-cols-2 sm:grid-cols-3 gap-4",children:[e.jsx(pe,{label:c("finance.invoices.detail.period"),value:`${U(a.period_start)} â ${U(a.period_end)}`}),e.jsx(pe,{label:c("finance.invoices.detail.issued"),value:a.issued_at?U(a.issued_at):"â"}),e.jsx(pe,{label:c("finance.invoices.detail.due"),value:a.due_at?U(a.due_at):"â"}),e.jsx(pe,{label:c("finance.invoices.detail.paid"),value:a.paid_at?U(a.paid_at):"â"}),e.jsx(pe,{label:c("finance.invoices.detail.delivered"),value:a.email_sent_at?U(a.email_sent_at):c("finance.invoices.detail.notDelivered")}),e.jsx(pe,{label:c("finance.invoices.detail.billingEmail"),value:a.billing_email??c("finance.invoices.detail.noBillingEmail"),helpKey:"invoices.detail.billingEmail"}),a.corrects_number!==null&&e.jsx(pe,{label:c("finance.invoices.detail.corrects"),value:a.corrects_number,helpKey:"invoices.detail.corrects"})]}),e.jsxs("div",{className:"mt-5",children:[e.jsx("p",{className:"text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400",children:c("finance.invoices.table.columns.payment")}),e.jsx("div",{className:"mt-1",children:e.jsx(Ns,{invoice:a,wrapError:!0})}),(a.provider_invoice_id!==null||a.provider_payment_intent_id!==null||a.provider_credit_note_id!==null)&&e.jsx("p",{className:"mt-1 font-mono text-xs text-gray-500 dark:text-gray-400 break-all",children:[a.provider_invoice_id,a.provider_payment_intent_id,a.provider_credit_note_id].filter(C=>C!==null).join(" · ")})]}),a.seller!==null?e.jsxs("div",{className:"mt-5 text-sm text-gray-700 dark:text-gray-300",children:[e.jsxs("p",{className:"font-medium text-gray-900 dark:text-gray-100",children:[a.seller.legal_name,e.jsx(l,{k:"invoices.detail.seller",className:"ml-1.5"})]}),e.jsx("p",{children:a.seller.address}),e.jsxs("p",{children:[c("finance.invoices.detail.vatId"),": ",a.seller.vat_number," ·"," ",a.seller.bank_name," · ",a.seller.iban," (",a.seller.bic,")"]})]}):e.jsxs("p",{className:"mt-5 flex items-start gap-2 text-sm text-amber-700 dark:text-amber-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:c("finance.invoices.detail.sellerMissing",{fields:a.seller_missing.join(", ")})}),e.jsx(l,{k:"invoices.detail.seller",className:"mt-0.5"})]}),e.jsxs("table",{className:"mt-5 w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[e.jsx("th",{scope:"col",className:"text-left font-medium pb-1",children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[c("finance.invoice.columns.line"),e.jsx(l,{k:"invoices.detail.lines"})]})}),e.jsx("th",{scope:"col",className:"text-right font-medium pb-1",children:c("finance.invoice.columns.quantity")}),e.jsx("th",{scope:"col",className:"text-right font-medium pb-1",children:c("finance.invoice.columns.unitPrice")}),e.jsx("th",{scope:"col",className:"text-right font-medium pb-1",children:c("finance.invoice.columns.amount")})]})}),e.jsxs("tbody",{className:"text-gray-800 dark:text-gray-200",children:[a.lines.map(C=>e.jsxs("tr",{className:"border-t border-gray-100 dark:border-gray-700",children:[e.jsx("td",{className:"py-1 pr-3",children:C.label}),e.jsx("td",{className:"py-1 text-right tabular-nums",children:ge(C.quantity,x.language)}),e.jsx("td",{className:"py-1 text-right tabular-nums",children:K(C.unit_price,g)}),e.jsx("td",{className:"py-1 text-right tabular-nums",children:K(C.amount,g)})]},C.id)),a.lines.length===0&&e.jsx("tr",{className:"border-t border-gray-100 dark:border-gray-700",children:e.jsx("td",{colSpan:4,className:"py-1 text-gray-500 dark:text-gray-400",children:c("finance.invoice.nothingBillable")})})]}),e.jsxs("tfoot",{className:"text-gray-800 dark:text-gray-200",children:[e.jsxs("tr",{className:"border-t border-gray-200 dark:border-gray-600",children:[e.jsx("td",{className:"pt-2",colSpan:3,children:c("finance.invoices.detail.subtotal")}),e.jsx("td",{className:"pt-2 text-right tabular-nums",children:K(a.subtotal,g)})]}),e.jsxs("tr",{children:[e.jsx("td",{colSpan:3,children:e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[c("finance.invoices.detail.discount"),e.jsx(l,{k:"invoices.detail.discount",label:c("finance.invoices.detail.discount")}
19)]})}),e.jsx("td",{className:"text-right tabular-nums",children:K(a.discount_total,g)})]}),e.jsxs("tr",{children:[e.jsx("td",{colSpan:3,children:e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[c("finance.invoices.detail.tax"),e.jsx(l,{k:"invoices.detail.tax"})]})}),e.jsx("td",{className:"text-right tabular-nums",children:K(a.tax_total,g)})]}),e.jsxs("tr",{className:"border-t-2 border-gray-300 dark:border-gray-600 font-semibold text-gray-900 dark:text-white",children:[e.jsx("td",{className:"pt-2",colSpan:3,children:c("finance.invoices.detail.total")}),e.jsx("td",{className:"pt-2 text-right tabular-nums",children:K(a.total,g)})]})]})]}),a.tax_note!==null&&e.jsx("p",{className:"mt-4 text-sm text-gray-600 dark:text-gray-400",children:a.tax_note}),e.jsxs("div",{className:"mt-5",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{className:Y,htmlFor:"invoice-purchase-order",children:c("finance.invoices.detail.purchaseOrder")}),e.jsx(l,{k:"invoices.detail.purchaseOrder",className:"mb-1"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{id:"invoice-purchase-order",type:"text",maxLength:64,value:b,onChange:C=>p(C.target.value),placeholder:c("finance.invoices.detail.purchaseOrderPlaceholder"),className:X}),e.jsx(A,{variant:"secondary",disabled:s||!_,onClick:()=>i(b.trim()),"data-help":"finance.invoices.savePurchaseOrder",children:o("actions.save")}),e.jsx(l,{k:"invoices.detail.savePurchaseOrder",label:o("actions.save")})]})]})]}),e.jsxs("div",{className:"px-6 py-4 bg-gray-50 dark:bg-gray-800 rounded-b-xl flex flex-wrap items-center justify-end gap-3",children:[e.jsx(A,{variant:"ghost",onClick:d,disabled:s,"data-help":"common.dialog.close",children:o("actions.close")}),e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsxs(A,{variant:"secondary",disabled:s||!S,onClick:n,"data-help":"finance.invoices.download",children:[e.jsx(ia,{className:"w-4 h-4","aria-hidden":"true"}),c("finance.invoices.actions.download")]}),e.jsx(l,{k:"invoices.detail.download",label:c("finance.invoices.actions.download")})]}),e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsxs(A,{variant:"secondary",disabled:s||!S,onClick:t,"data-help":"finance.invoices.send",children:[e.jsx(ts,{className:"w-4 h-4","aria-hidden":"true"}),c("finance.invoices.actions.send")]}),e.jsx(l,{k:"invoices.detail.send",label:c("finance.invoices.actions.send")})]}),e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(A,{variant:"primary",disabled:s||!Za(a),isLoading:s,onClick:r,"data-help":"finance.invoices.markPaid",children:c("finance.invoices.actions.markPaid")}),e.jsx(l,{k:"invoices.detail.markPaid"})]})]})]})})]})}const hr="bg-sky-100 text-sky-800 dark:bg-sky-900/30 dark:text-sky-300",fr="bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400";function yr({receipt:a,disabled:s,onDownload:n,onDownloadRefund:t}){const{t:r}=I("system-admin"),i=a.status==="cancelled";return e.jsxs("tr",{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50",children:[e.jsxs("td",{className:"px-4 py-3",children:[e.jsx("span",{className:"font-mono text-sm text-gray-500 dark:text-gray-400",children:a.id.slice(0,8)}),e.jsx("div",{className:"mt-1",children:e.jsxs("span",{className:de,children:[e.jsx("span",{className:$(ee,hr),children:r("finance.invoices.kind.receipt")}),e.jsx(l,{k:"invoices.kindBadge"})]})})]}),e.jsxs("td",{className:"px-4 py-3 text-sm text-gray-900 dark:text-gray-100",children:[a.buyer_email??"â",e.jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:a.organization_name??r("finance.invoices.receipt.orphaned")})]}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400 whitespace-nowrap",children:U(a.settled_at)}),e.jsx("td",{className:"px-4 py-3 text-sm text-right tabular-nums text-gray-900 dark:text-gray-100",children:K(a.amount_charged,a.currency)}),e.jsxs("td",{className:"px-4 py-3",children:[e.jsx("span",{className:$(ee,i?fr:ta.paid),children:r(i?"finance.invoices.receipt.refunded":"finance.invoices.status.paid")}),Number(a.refunded_amount)>0?e.jsx("span",{className:"mt-1 block text-xs text-gray-500 dark:text-gray-400",children:r("finance.invoices.receipt.returned",{amount:K(a.refunded_amount,a.currency)})}):null]}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400",children:"â"}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400",children:"â"}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400",children:"â"}),e.jsx("td",{className:"px-4 py-3",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(A,{variant:"ghost",size:"sm",disabled:s,"aria-label":r("finance.invoices.actions.download"),"data-help":"finance.receipts.download",onClick:n,children:e.jsx(ia,{className:"w-4 h-4","aria-hidden":"true"})}),a.refund_document_available&&e.jsx(A,{variant:"ghost",size:"sm",disabled:s,"aria-label":r("finance.invoices.actions.downloadRefund"),"data-help":"finance.receipts.downloadRefund",onClick:t,children:e.jsx(Ct,{className:"w-4 h-4","aria-hidden":"true"})})]})})]})}function br({organizationId:a}){const{t:s}=I("system-admin"),{t:n}=I("common"),t=ce(),{enabled:r}=ea(),[i,d]=f.useState("all"),[c,x]=f.useState(""),o=Pe(c,300),[j,b]=f.useState(1),[p,g]=f.useState(null),S=["admin-invoices",a,i,o,j],{data:_,isLoading:C}=W({queryKey:S,staleTime:3e4,queryFn:()=>Dn({organization_id:a??void 0,status:i==="all"?void 0:i,q:o,include_receipts:!0,limit:ze,offset:(j-1)*ze})}),{data:k}=W({queryKey:["admin-invoice",p],enabled:p!==null,staleTime:3e4,queryFn:()=>Tn(p)}),T=()=>{t.invalidateQueries({queryKey:["admin-invoices"]}),t.invalidateQueries({queryKey:["admin-invoice"]}),t.invalidateQueries({queryKey:["admin-finance-dashboard"]})},w=V({mutationFn:u=>Sn(u),onSuccess:()=>{T(),t.invalidateQueries({queryKey:["admin-contracts"]}),t.invalidateQueries({queryKey:["admin-plans"]}),ra(t),F.success(s("finance.invoices.toasts.markedPaid"))},onError:u=>F.error(z(u,s("finance.invoices.toasts.markPaidFailed")))}),N=V({mutationFn:u=>En(u),onSuccess:()=>{T(),F.success(s("finance.invoices.toasts.sent"))},onError:u=>F.error(z(u,s("finance.invoices.toasts.sendFailed")))}),H=V({mutationFn:u=>Ln(u.invoiceId,u.value),onSuccess:()=>{T(),F.success(s("finance.invoices.toasts.purchaseOrderSaved"))},onError:u=>F.error(z(u,s("finance.invoices.toasts.purchaseOrderFailed")))}),m=V({mutationFn:u=>Pn(u),onError:u=>F.error(z(u,s("finance.invoices.toasts.downloadFailed")))}),v=V({mutationFn:u=>Ha(u),onError:u=>F.error(z(u,s("finance.invoices.toasts.downloadFailed")))}),y=V({mutationFn:u=>Fn(u),onError:u=>F.error(z(u,s("finance.invoices.toasts.downloadFailed")))}),h=V({mutationFn:u=>In(u),onSuccess:u=>{T(),u.pushed?F.success(s("finance.invoices.toasts.pushed")):F(s(`finance.invoices.pushReason.${u.reason}`,{defaultValue:s("finance.invoices.toasts.pushSkipped")}))},onError:u=>{T(),F.error(z(u,s("finance.invoices.toasts.pushFailed")))}}),P=V({mutationFn:u=>$n(u),onSuccess:async({pay_link:u})=>
19{if(u===null){F.error(s("finance.invoices.toasts.payLinkNone"));return}try{await navigator.clipboard.writeText(u),F.success(s("finance.invoices.toasts.payLinkCopied"))}catch{F.error(s("finance.invoices.toasts.payLinkCopyFailed"))}},onError:u=>F.error(z(u,s("finance.invoices.toasts.payLinkFailed")))}),L=(_==null?void 0:_.items)??[],D=(_==null?void 0:_.total)??0,G=Math.ceil(D/ze),J=w.isPending||N.isPending||H.isPending||m.isPending||v.isPending||y.isPending||h.isPending||P.isPending,oe=u=>{d(u),b(1)};return e.jsxs("div",{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-4",children:[e.jsx("div",{className:"flex items-center gap-1 bg-gray-100 dark:bg-gray-800 p-1 rounded-lg",children:lt.map(u=>e.jsx("button",{onClick:()=>oe(u),"data-help":"finance.invoices.filterStatus",className:$(he,i===u?"bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200"),children:s(ct[u])},u))}),e.jsx(l,{k:"invoices.list.statusFilter"}),e.jsxs("div",{className:"relative flex-1 min-w-[14rem]",children:[e.jsx(Ae,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),e.jsx("input",{type:"search",value:c,onChange:u=>{x(u.target.value),b(1)},placeholder:s("finance.invoices.filters.searchPlaceholder"),className:"w-full pl-9 pr-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-fuchsia-400"})]})]}),C?e.jsx("div",{className:"text-center py-12 text-gray-500",children:n("actions.loading")}):L.length===0?e.jsx("div",{className:"text-center py-12 text-gray-500 dark:text-gray-400",children:s("finance.invoices.table.emptyState")}):e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow overflow-hidden",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-900/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.invoices.table.columns.number"),e.jsx(l,{k:"invoices.columns.number"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.invoices.table.columns.organization"),e.jsx(l,{k:"invoices.columns.customer",label:s("finance.invoices.table.columns.organization")})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.invoices.table.columns.period"),e.jsx(l,{k:"invoices.columns.period"})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.invoices.table.columns.total"),e.jsx(l,{k:"invoices.columns.total",label:s("finance.invoices.table.columns.total")})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.invoices.table.columns.status"),e.jsx(l,{k:"invoices.columns.status"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.invoices.table.columns.due"),e.jsx(l,{k:"invoices.columns.due",label:s("finance.invoices.table.columns.due")})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.invoices.table.columns.delivered"),e.jsx(l,{k:"invoices.columns.delivered",label:s("finance.invoices.table.columns.delivered")})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.invoices.table.columns.payment"),e.jsx(l,{k:"invoices.columns.payment",label:s("finance.invoices.table.columns.payment")})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.invoices.table.columns.actions"),e.jsx(l,{k:"invoices.columns.actions"})]})})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:L.map(u=>{if(u.document==="receipt")return e.jsx(yr,{receipt:u,disabled:J,onDownload:()=>v.mutate(u),onDownloadRefund:()=>y.mutate(u)},`receipt-${u.id}`);const O=u,E=Xa(O.status,O.number);return e.jsxs("tr",{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50",children:[e.jsxs("td",{className:"px-4 py-3",children:[e.jsx("button",{onClick:()=>g(O.id),"data-help":"finance.invoices.open",className:"font-mono text-sm font-semibold text-fuchsia-600 dark:text-fuchsia-400 hover:underline",children:O.number??"â"}),e.jsx("div",{className:"mt-1",children:e.jsxs("span",{className:de,children:[e.jsx("span",{className:$(ee,dt[O.kind]),children:s(Ja[O.kind])}),e.jsx(l,{k:"invoices.kindBadge"})]})})]}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-900 dark:text-gray-100",children:O.organization_legal_name}),e.jsxs("td",{className:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400 whitespace-nowrap",children:[U(O.period_start)," â ",U(O.period_end)]}),e.jsx("td",{className:"px-4 py-3 text-sm text-right tabular-nums text-gray-900 dark:text-gray-100",children:K(O.total,O.currency)}),e.jsx("td",{className:"px-4 py-3",children:e.jsx("span",{className:$(ee,ta[O.status]),children:s(`finance.invoices.status.${O.status}`)})}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400 whitespace-nowrap",children:O.due_at?U(O.due_at):"â"}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400 whitespace-nowrap",children:O.email_sent_at?U(O.email_sent_at):s("finance.invoices.detail.notDelivered")}),e.jsx("td",{className:"px-4 py-3",children:e.jsx(Ns,{invoice:O})}),e.jsx("td",{className:"px-4 py-3",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[Wa(O,r)&&e.jsx(A,{variant:"ghost",size:"sm",disabled:J,"aria-label":s("finance.invoices.actions.retryPush"),"data-help":"finance.invoices.retryPush",onClick:()=>h.mutate(O.id),children:e.jsx(as,{className:"w-4 h-4","aria-hidden":"true"})}),ot(O,r)&&e.jsx(A,{variant:"ghost",size:"sm",disabled:J,"aria-label":s("finance.invoices.actions.payLink"),"data-help":"finance.invoices.copyPayLink",onClick:()=>P.mutate(O.id),children:e.jsx(St,{className:"w-4 h-4","aria-hidden":"true"})}),e.jsx(A,{variant:"ghost",size:"sm",disabled:J||!E,"aria-label":s("finance.invoices.actions.download"),"data-help":"finance.invoices.download",onClick:()=>m.mutate(O),children:e.jsx(ia,{className:"w-4 h-4","aria-hidden":"true"})}),e.jsx(A,{variant:"ghost",size:"sm",disabled:J||!E,"aria-label":s("finance.invoices.actions.send"),"data-help":"finance.invoices.send",onClick:()=>N.mutate(O.id),children:e.jsx(ts,{className:"w-4 h-4","aria-hidden":"true"})}),e.jsx(A,{variant:"secondary",size:"sm",disabled:J||!Za(O),onClick:()=>w.mutate(O.id),"data-help":"finance.invoices.markPaid",children:s("finance.invoices.actions.markPaid")})]})})]},O.id)})})]})}),G>1&&e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t border-gray-200 dark:border-gray-700",children:[e.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:s("finance.invoices.table.pageOf",{page:j,pages:G,total:D})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A,{variant:"ghost",size:"sm",disabled:j<=1,onClick:()=>b(u=>u-1),"data-help":"common.pagination.previous",children:n("actions.back")}),e.jsx(A,{variant:"ghost",size:"sm",disabled:j>=G,onClick:()=>b(u=>u+1),"data-help":"common.pagination.next",children:n("actions.next")})]})]})]}),p!==null&&k!==void 0&&e.jsx(pr,{invoice:k,isBusy:J,onDownload:()=>m.mutate(k),onSend:()=>N.mutate(k.id),onMarkPaid:()=>w.mutate(k.id),onSavePurchaseOrder:u=>H.mutate({invoiceId:k.id,value:u}),onClose:()=>g(null)})]})}const jr=[{key:"disputes",count:a=>
19a.health.open_disputes},{key:"withdrawals",count:a=>a.health.stalled_withdrawals},{key:"unsettledPayments",count:a=>a.health.unsettled_payments},{key:"secondPayments",count:a=>a.second_credit_payments},{key:"orphanedPurchases",count:a=>a.orphaned_scheduled_purchases},{key:"creditIntents",count:a=>a.credit_intents,values:a=>({organisation:a.credit_intents_organization}),context:a=>a.credit_intents_organization>0?"split":void 0},{key:"unactivatedPlans",count:a=>a.unactivated_plan_purchases},{key:"creditSettled",count:a=>a.credit_settled_invoices},{key:"staleEvents",count:a=>a.health.stale_billing_events},{key:"unmirroredInvoices",count:a=>a.health.unmirrored_invoices},{key:"unmirroredCreditNotes",count:a=>a.health.unmirrored_credit_notes},{key:"finalizationFailures",count:a=>a.health.finalization_failures},{key:"retryingInvoices",count:a=>a.health.retrying_invoices}];function kr({queue:a}){const{t:s}=I("system-admin");if(a.total<=0)return null;const n=jr.filter(({count:t})=>t(a)>0).map(({key:t,count:r,values:i,context:d})=>s(`finance.manualQueue.conditions.${t}`,{count:r(a),context:d==null?void 0:d(a),...i==null?void 0:i(a)}));return e.jsxs("div",{role:"status",className:"mb-6 flex items-start gap-2 rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 dark:border-amber-800 dark:bg-amber-900/30",children:[e.jsx(ae,{className:"mt-0.5 h-4 w-4 shrink-0 text-amber-600 dark:text-amber-400","aria-hidden":"true"}),e.jsxs("div",{className:"text-sm text-amber-800 dark:text-amber-200",children:[e.jsx("p",{className:"font-medium",children:s("finance.manualQueue.headline",{count:a.total})}),e.jsx("p",{className:"mt-0.5",children:n.join(" · ")})]})]})}function vs(a){const s=a.status==="recorded"||a.status==="refund_pending";return s&&a.trigger==="dispute"?"chargeback":s&&a.trigger==="provider"?"dashboard":a.status==="recorded"&&a.provider_refund_id===null?"manual":a.status==="failed"&&a.subject_kind==="plan"?"dashboard":null}const Nr={chargeback:"chargeback",dashboard:"stripe dashboard",manual:""},vr=120,_r=255,wr=2e3;function Cr({row:a,isLoading:s,error:n,onConfirm:t,onClose:r}){const{t:i}=I("system-admin"),{t:d}=I("common"),c=vs(a),x=c!==null,[o,j]=f.useState(c?Nr[c]:""),[b,p]=f.useState(""),[g,S]=f.useState(""),_=aa({isOpen:x,onClose:r,closeOnEscape:!s});if(c===null)return null;const C=K(a.refund_amount,"EUR"),k=a.organization_name??i("finance.withdrawals.orphaned"),T=o.trim()==="";return e.jsxs("div",{className:"fixed inset-0 z-50 overflow-y-auto",children:[e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 transition-opacity",onClick:()=>!s&&r()}),e.jsx("div",{className:"flex min-h-full items-center justify-center p-4",children:e.jsxs("div",{ref:_,role:"dialog","aria-modal":"true","aria-labelledby":"withdrawal-settle-title",className:"relative bg-white dark:bg-gray-900 rounded-xl shadow-xl max-w-lg w-full",children:[e.jsxs("div",{className:"px-6 pt-6 pb-4",children:[e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex-shrink-0 w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:e.jsx(ae,{className:"w-5 h-5 text-amber-600","aria-hidden":"true"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{id:"withdrawal-settle-title",className:"text-lg font-semibold text-gray-900 dark:text-gray-100",children:i("finance.withdrawals.settleDialog.title")}),e.jsxs("p",{className:"mt-1 text-sm text-gray-600 dark:text-gray-400",children:[i("finance.withdrawals.settleDialog.summary",{customer:k,subject:i(`finance.withdrawals.subject.${a.subject_kind}`),amount:C}),a.requested_by_email?e.jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400",children:a.requested_by_email}):null]})]})]}),e.jsx("p",{className:"mt-4 rounded-lg border border-amber-300 bg-amber-50 p-3 text-sm text-amber-900 dark:border-amber-800 dark:bg-amber-900/20 dark:text-amber-200",children:i(`finance.withdrawals.settleDialog.explain.${c}`,{amount:C})}),e.jsxs("label",{className:"mt-4 block",children:[e.jsxs("span",{className:Y,children:[i("finance.withdrawals.settleDialog.route"),e.jsx("span",{"aria-hidden":"true",className:"text-red-500",children:" *"})]}),e.jsx("input",{type:"text",value:o,onChange:w=>j(w.target.value),maxLength:vr,required:!0,disabled:s,placeholder:i("finance.withdrawals.settleDialog.routePlaceholder"),className:X}),e.jsx("span",{className:`${q} block`,children:i("finance.withdrawals.settleDialog.routeHint")})]}),e.jsxs("label",{className:"mt-3 block",children:[e.jsx("span",{className:Y,children:i("finance.withdrawals.settleDialog.reference")}),e.jsx("input",{type:"text",value:b,onChange:w=>p(w.target.value),maxLength:_r,disabled:s,placeholder:i(`finance.withdrawals.settleDialog.referencePlaceholder.${c}`),className:X})]}),e.jsxs("label",{className:"mt-3 block",children:[e.jsx("span",{className:Y,children:i("finance.withdrawals.settleDialog.note")}),e.jsx("textarea",{value:g,onChange:w=>S(w.target.value),maxLength:wr,rows:3,disabled:s,className:X})]}),e.jsx("p",{className:`${q} mt-3`,children:i("finance.withdrawals.settleDialog.final")}),n?e.jsx("p",{role:"alert",className:"mt-3 rounded-lg border border-red-300 bg-red-50 p-3 text-sm text-red-800 dark:border-red-800 dark:bg-red-900/20 dark:text-red-300",children:n}):null]}),e.jsxs("div",{className:"px-6 py-4 bg-gray-50 dark:bg-gray-800 rounded-b-xl flex items-center justify-end gap-3",children:[e.jsx(A,{variant:"ghost",onClick:r,disabled:s,"data-help":"common.dialog.cancel",children:d("actions.cancel")}),e.jsx(A,{variant:"primary",disabled:s||T,isLoading:s,onClick:()=>t({route:o,reference:b,note:g}),"data-help":"finance.withdrawals.settleConfirm","data-help-reason":T?i("finance.withdrawals.settleDialog.routeRequired"):void 0,children:i("finance.withdrawals.settleDialog.confirm")})]})]})})]})}const Sr=6;function _s(a){return a.status==="recorded"||a.status==="refund_pending"}function Er(a){return _s(a)?"bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300":a.status==="failed"?"bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-300":"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-300"}function Lr(a){return a.acknowledgement_sent_at?{kind:"sent",at:a.acknowledgement_sent_at}:{kind:a.acknowledgement_applies?"notSent":"notOwed"}}function Pr(a){return a.confirmation_sent_at?{kind:"sent",at:a.confirmation_sent_at}:a.confirmation_applies?{kind:"notSent"}:{kind:_s(a)?"notYet":"notOwed"}}const Fr={sent:"text-emerald-700 dark:text-emerald-400",notSent:"text-amber-700 dark:text-amber-400",notOwed:"text-gray-500 dark:text-gray-400",notYet:"text-gray-500 dark:text-gray-400"}
19,Ir={notSent:"finance.withdrawals.emailNotSent",notOwed:"finance.withdrawals.emailNotOwed",notYet:"finance.withdrawals.emailNotYet"};function Da({label:a,state:s}){const{t:n}=I("system-admin");return e.jsxs("span",{className:"block",children:[e.jsx("span",{className:"block text-gray-500 dark:text-gray-400",children:a}),e.jsx("span",{className:$("block whitespace-nowrap",Fr[s.kind]),children:s.kind==="sent"?n("finance.withdrawals.emailSent",{when:ue(s.at)}):n(Ir[s.kind])})]})}function $r(){const{t:a}=I("system-admin"),{t:s}=I("common"),n=ce(),[t,r]=f.useState(1),[i,d]=f.useState(null),{data:c,isLoading:x,error:o}=W({queryKey:["admin-withdrawals",t],staleTime:3e4,queryFn:()=>An({limit:Ue,offset:(t-1)*Ue})}),j=V({mutationFn:N=>Rn(N),onSuccess:N=>{n.invalidateQueries({queryKey:["admin-withdrawals"]}),N.acknowledgement==="sent"||N.confirmation==="sent"?F.success(a("finance.withdrawals.sendNoticesDone")):F(a("finance.withdrawals.sendNoticesNothing"))},onError:N=>{n.invalidateQueries({queryKey:["admin-withdrawals"]}),F.error(z(N,a("finance.withdrawals.sendNoticesFailed")))}}),[b,p]=f.useState(null),[g,S]=f.useState(null),_=V({mutationFn:({requestId:N,input:H})=>On(N,H),onSuccess:N=>{n.invalidateQueries({queryKey:["admin-withdrawals"]}),n.invalidateQueries({queryKey:["admin-finance-manual-queue"]}),n.invalidateQueries({queryKey:["admin-finance-dashboard"]}),p(null),S(null),N.status==="confirmed"?F.success(a("finance.withdrawals.settleDone")):F(a("finance.withdrawals.settleNothing"))},onError:N=>{n.invalidateQueries({queryKey:["admin-withdrawals"]}),S(z(N,a("finance.withdrawals.settleFailed")))}}),C=()=>{_.isPending||(p(null),S(null))},k=(c==null?void 0:c.items)??[],T=(c==null?void 0:c.total)??0,w=Math.ceil(T/Ue);return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsxs("h3",{className:"text-sm font-semibold text-gray-900 dark:text-gray-100",children:[a("finance.withdrawals.title"),e.jsx(l,{k:"withdrawals.overview",className:"ml-1.5"})]}),e.jsx("p",{className:"mt-1 text-sm text-gray-600 dark:text-gray-400",children:a("finance.withdrawals.intro")})]}),o?e.jsx("p",{className:"rounded-lg border border-red-300 bg-red-50 p-3 text-sm text-red-800 dark:border-red-800 dark:bg-red-900/20 dark:text-red-300",children:z(o,a("finance.withdrawals.loadFailed"))}):x?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("actions.loading")}):k.length===0?e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:a("finance.withdrawals.empty")}):e.jsxs("div",{className:"overflow-hidden rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-800",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:a("finance.withdrawals.when")}),e.jsx("th",{className:R,children:a("finance.withdrawals.customer")}),e.jsx("th",{className:R,children:a("finance.withdrawals.what")}),e.jsx("th",{className:R,children:a("finance.withdrawals.amount")}),e.jsx("th",{className:R,children:a("finance.withdrawals.state")}),e.jsxs("th",{className:R,children:[a("finance.withdrawals.emails"),e.jsx(l,{k:"withdrawals.emails",className:"ml-1.5"})]})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 bg-white dark:divide-gray-700 dark:bg-gray-900",children:k.map(N=>{const H=Lr(N),m=Pr(N),v=H.kind==="notSent"||m.kind==="notSent",y=vs(N)!==null;return e.jsxs(f.Fragment,{children:[e.jsxs("tr",{className:"cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800",onClick:()=>d(h=>h===N.id?null:N.id),children:[e.jsx("td",{className:"whitespace-nowrap px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:ue(N.requested_at)}),e.jsxs("td",{className:"px-4 py-3 text-sm text-gray-900 dark:text-gray-100",children:[N.organization_name??a("finance.withdrawals.orphaned"),N.requested_by_email?e.jsx("span",{className:"ml-1 text-xs text-gray-500 dark:text-gray-400",children:N.requested_by_email}):null]}),e.jsxs("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300",children:[a(`finance.withdrawals.subject.${N.subject_kind}`),e.jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400",children:a(`finance.withdrawals.trigger.${N.trigger}`)})]}),e.jsxs("td",{className:"whitespace-nowrap px-4 py-3 text-sm text-gray-900 dark:text-gray-100",children:[a("finance.withdrawals.ofCharged",{refund:K(N.refund_amount,"EUR"),charged:K(N.amount_charged,"EUR")}),e.jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400",children:a("finance.withdrawals.returned",{amount:K(N.refunded_amount,"EUR")})})]}),e.jsx("td",{className:"whitespace-nowrap px-4 py-3 text-sm",children:e.jsx("span",{className:$(ee,Er(N)),children:a(`finance.withdrawals.status.${N.status}`)})}),e.jsxs("td",{className:"space-y-1.5 px-4 py-3 text-xs",children:[e.jsx(Da,{label:a("finance.withdrawals.emailAcknowledgement"),state:H}),e.jsx(Da,{label:a("finance.withdrawals.emailConfirmation"),state:m})]})]}),i===N.id?e.jsx("tr",{children:e.jsxs("td",{colSpan:Sr,className:"bg-gray-50 px-4 py-3 dark:bg-gray-800",children:[v||y?e.jsxs("div",{className:"mb-3 flex flex-wrap gap-2",children:[y?e.jsx(A,{variant:"secondary",size:"sm",onClick:h=>{h.stopPropagation(),S(null),p(N)},"data-help":"finance.withdrawals.settle",children:a("finance.withdrawals.settle")}):null,v?e.jsx(A,{variant:"secondary",size:"sm",disabled:j.isPending,isLoading:j.isPending&&j.variables===N.id,onClick:h=>{h.stopPropagation(),j.mutate(N.id)},"data-help":"finance.withdrawals.sendNotices",children:a("finance.withdrawals.sendNotices")}):null]}):null,e.jsx("p",{className:"mb-1 text-xs font-medium text-gray-700 dark:text-gray-300",children:a("finance.withdrawals.computation")}),e.jsx("pre",{className:"max-h-64 overflow-auto rounded bg-white p-2 text-xs text-gray-700 dark:bg-gray-900 dark:text-gray-300",children:JSON.stringify(N.computation,null,2)})]})}):null]},N.id)})})]})}),w>
191?e.jsxs("div",{className:"flex items-center justify-between border-t border-gray-200 px-4 py-3 dark:border-gray-700",children:[e.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:a("finance.withdrawals.pageOf",{page:t,pages:w,total:T})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A,{variant:"ghost",size:"sm",disabled:t<=1,onClick:()=>r(N=>N-1),"data-help":"common.pagination.previous",children:s("actions.back")}),e.jsx(A,{variant:"ghost",size:"sm",disabled:t>=w,onClick:()=>r(N=>N+1),"data-help":"common.pagination.next",children:s("actions.next")})]})]}):null]}),b?e.jsx(Cr,{row:b,isLoading:_.isPending,error:g,onConfirm:N=>_.mutate({requestId:b.id,input:N}),onClose:C},b.id):null]})}const Dr=["outstanding","all"];function Tr(a){return a.processed_at===null?"outstanding":a.error===null?"processed":a.outcome==="noop"?"noop":"refused"}const Rr={outstanding:"bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400",refused:"bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-400",noop:"bg-gray-100 text-gray-700 dark:bg-gray-700/50 dark:text-gray-300",processed:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"};function Or(){const{t:a}=I("system-admin"),{t:s}=I("common"),[n,t]=f.useState("outstanding"),[r,i]=f.useState(1),{data:d,isLoading:c,error:x}=W({queryKey:["admin-billing-events",n,r],staleTime:3e4,queryFn:()=>qn({outstanding:n==="outstanding",limit:He,offset:(r-1)*He})}),o=(d==null?void 0:d.items)??[],j=(d==null?void 0:d.total)??0,b=Math.ceil(j/He),p=(d==null?void 0:d.outstanding_total)??0;return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:[a("finance.payments.intro"),e.jsx(l,{k:"payments.overview",className:"ml-1.5"})]}),d!==void 0&&e.jsxs("div",{className:$("rounded-lg border p-3 flex items-start gap-2 text-sm",p>0?"border-red-300 dark:border-red-800 bg-red-50 dark:bg-red-900/20 text-red-800 dark:text-red-300":"border-emerald-300 dark:border-emerald-800 bg-emerald-50 dark:bg-emerald-900/20 text-emerald-800 dark:text-emerald-300"),children:[p>0?e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}):e.jsx(Ne,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[p>0?a("finance.payments.outstanding",{count:p}):a("finance.payments.drained"),e.jsx(l,{k:"payments.outstandingTotal",className:"ml-1"})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsx("div",{className:"flex items-center gap-1 bg-gray-100 dark:bg-gray-800 p-1 rounded-lg",children:Dr.map(g=>e.jsx("button",{"data-help":"finance.payments.scope",onClick:()=>{t(g),i(1)},className:$(he,n===g?"bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200"),children:a(`finance.payments.scope.${g}`)},g))}),e.jsx(l,{k:"payments.scope"})]}),c?e.jsx("div",{className:"text-center py-12 text-gray-500",children:s("actions.loading")}):x?e.jsx("div",{className:"text-center py-12 text-red-600 dark:text-red-400",children:z(x,a("finance.payments.loadFailed"))}):o.length===0?e.jsx("div",{className:"text-center py-12 text-gray-500 dark:text-gray-400",children:a(n==="outstanding"?"finance.payments.emptyQueue":"finance.payments.emptyLog")}):e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow overflow-hidden",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-900/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[a("finance.payments.columns.received"),e.jsx(l,{k:"payments.columns.received"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[a("finance.payments.columns.type"),e.jsx(l,{k:"payments.columns.type"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[a("finance.payments.columns.state"),e.jsx(l,{k:"payments.columns.state"})]})}),e.jsx("th",{className:$(R,"text-right"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[a("finance.payments.columns.attempts"),e.jsx(l,{k:"payments.columns.attempts"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[a("finance.payments.columns.error"),e.jsx(l,{k:"payments.columns.error"})]})})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:o.map(g=>{const S=Tr(g);return e.jsxs("tr",{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 align-top",children:[e.jsxs("td",{className:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400 whitespace-nowrap",children:[ue(g.received_at),e.jsx("span",{className:"block font-mono text-xs text-gray-400 dark:text-gray-500",children:g.provider})]}),e.jsxs("td",{className:"px-4 py-3 text-sm font-mono text-gray-900 dark:text-gray-100",children:[g.type,e.jsx("span",{className:"block font-mono text-xs text-gray-400 dark:text-gray-500 break-all",children:g.event_id})]}),e.jsx("td",{className:"px-4 py-3",children:e.jsx("span",{className:$(ee,Rr[
19S]),children:a(`finance.payments.state.${S}`)})}),e.jsx("td",{className:"px-4 py-3 text-sm text-right tabular-nums text-gray-900 dark:text-gray-100",children:g.attempts}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300 whitespace-pre-line",children:g.error??"â"})]},`${g.provider}:${g.event_id}`)})})]})}),b>1&&e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t border-gray-200 dark:border-gray-700",children:[e.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:a("finance.payments.pageOf",{page:r,pages:b,total:j})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A,{variant:"ghost",size:"sm",disabled:r<=1,onClick:()=>i(g=>g-1),"data-help":"common.pagination.previous",children:s("actions.back")}),e.jsx(A,{variant:"ghost",size:"sm",disabled:r>=b,onClick:()=>i(g=>g+1),"data-help":"common.pagination.next",children:s("actions.next")})]})]})]}),e.jsx("div",{className:"pt-2 border-t border-gray-200 dark:border-gray-700",children:e.jsx($r,{})})]})}const Ar=["all","draft","active","archived"],qr=["all","catalogue","custom","system"],Ta={all:"finance.plans.filters.statusAll",draft:"finance.plans.status.draft",active:"finance.plans.status.active",archived:"finance.plans.status.archived"},Ra={all:"finance.plans.filters.kindAll",catalogue:"finance.plans.kind.catalogue",custom:"finance.plans.kind.custom",system:"finance.plans.kind.system"},Mr={draft:"bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300",active:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400",archived:"bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-400"},Br={catalogue:"bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400",custom:"bg-violet-100 text-violet-800 dark:bg-violet-900/30 dark:text-violet-400",system:"bg-slate-100 text-slate-700 dark:bg-slate-700 dark:text-slate-300"};function Kr({onDesign:a}){const{t:s}=I("system-admin"),{t:n}=I("common"),t=ce(),[r,i]=f.useState("all"),[d,c]=f.useState("all"),[x,o]=f.useState(""),j=Pe(x,300),[b,p]=f.useState(null),[g,S]=f.useState(null),[_,C]=f.useState(new Set),{data:k,isLoading:T}=W({queryKey:["admin-plans",r,d,j],queryFn:()=>Oe({status:r==="all"?void 0:r,kind:d==="all"?void 0:d,q:j,limit:ke})}),w=f.useMemo(()=>(k==null?void 0:k.find(h=>h.is_default_fallback))??null,[k]),N=()=>t.invalidateQueries({queryKey:["admin-plans"]}),H=V({mutationFn:h=>Va(h),onMutate:h=>{C(P=>new Set(P).add(h))},onSuccess:h=>{N(),F.success(s("finance.plans.toasts.duplicated",{code:h.code}))},onError:h=>{F.error(z(h,s("finance.plans.toasts.duplicateFailed")))},onSettled:(h,P,L)=>{C(D=>{const G=new Set(D);return G.delete(L),G})}}),m=V({mutationFn:h=>Mn(h.id),onSuccess:(h,P)=>{N(),p(null),F.success(s("finance.plans.toasts.archived",{code:P.code})),h.changed>0&&F.error(s("finance.plans.toasts.archivedChanged",{count:h.changed}),{duration:8e3})},onError:h=>{F.error(z(h,s("finance.plans.toasts.archiveFailed")))}}),v=V({mutationFn:h=>Bn(h.id),onSuccess:(h,P)=>{N(),S(null),F.success(s("finance.plans.toasts.fallbackMoved",{code:P.code}))},onError:h=>{F.error(z(h,s("finance.plans.toasts.fallbackFailed")))}}),y=k??[];return e.jsxs("div",{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-4",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",children:s("finance.plans.filters.label")}),e.jsx(l,{k:"plans.overview",label:s("finance.plans.filters.label")})]}),e.jsx("div",{className:"flex items-center gap-1 bg-gray-100 dark:bg-gray-800 p-1 rounded-lg",children:Ar.map(h=>e.jsx("button",{onClick:()=>i(h),"data-help":"finance.plans.filterStatus",className:$(he,r===h?"bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200"),children:s(Ta[h])},h))}),e.jsx(l,{k:"plans.filters.status",className:"-ml-1.5"}),e.jsx("div",{className:"flex items-center gap-1 bg-gray-100 dark:bg-gray-800 p-1 rounded-lg",children:qr.map(h=>e.jsx("button",{onClick:()=>c(h),"data-help":"finance.plans.filterKind",className:$(he,d===h?"bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200"),children:s(Ra[h])},h))}),e.jsx(l,{k:"plans.filters.kind",className:"-ml-1.5"}),e.jsxs("div",{className:"relative flex-1 min-w-[14rem]",children:[e.jsx(Ae,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),e.jsx("input",{type:"search",value:x,onChange:h=>o(h.target.value),placeholder:s("finance.plans.filters.searchPlaceholder"),className:"w-full pl-9 pr-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-fuchsia-400"})]})]}),T?e.jsx("div",{className:"text-center py-12 text-gray-500",children:n("actions.loading")}):y.length===0?e.jsx("div",{className:"text-center py-12 text-gray-500 dark:text-gray-400",children:s("finance.plans.table.emptyState")}):e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow overflow-hidden",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-900/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.plans.table.columns.plan"),e.jsx(l,{k:"plans.table.planColumn"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.plans.table.columns.kind"),e.jsx(l,{k:"plans.badge.kind"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.plans.table.columns.status"),e.jsx(l,{k:"plans.badge.status"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.plans.table.columns.organizations"),e.jsx(l,{k:"plans.table.orgCount"})]})}),e.jsx("th",{className:R,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s("finance.plans.table.columns.updated"),e.jsx(l,{k:"plans.table.updated",label:s("finance.plans.table.columns.updated")})]})}),e.jsx("th",{className:$(R,"text-right"),children:s("finance.plans.table.columns.actions")})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:y.map(h=>
19{const P=h.locked_at!==null,L=h.status==="archived",D=h.is_default_fallback?s("finance.plans.actions.archiveDisabledFallback"):L?s("finance.plans.actions.archiveDisabledArchived"):void 0;return e.jsxs("tr",{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50",children:[e.jsxs("td",{className:"px-4 py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"font-mono text-sm font-semibold text-gray-900 dark:text-gray-100",children:h.code}),P&&e.jsxs("span",{className:de,children:[e.jsxs("span",{title:s("finance.plans.badges.lockedTooltip"),className:$(ee,"bg-orange-100 text-orange-800 dark:bg-orange-900/30 dark:text-orange-400"),children:[e.jsx(za,{className:"w-3 h-3"}),s("finance.plans.badges.locked")]}),e.jsx(l,{k:"plans.badge.locked"})]}),h.is_default_fallback&&e.jsxs("span",{className:de,children:[e.jsxs("span",{title:s("finance.plans.badges.fallbackTooltip"),className:$(ee,"bg-indigo-100 text-indigo-800 dark:bg-indigo-900/30 dark:text-indigo-400"),children:[e.jsx(ns,{className:"w-3 h-3"}),s("finance.plans.badges.fallback")]}),e.jsx(l,{k:"plans.badge.fallback"})]}),h.is_public&&e.jsxs("span",{className:de,children:[e.jsxs("span",{title:s("finance.plans.badges.publicTooltip"),className:$(ee,"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"),children:[e.jsx(Ua,{className:"w-3 h-3"}),s("finance.plans.badges.public")]}),e.jsx(l,{k:"plans.badge.public"})]})]}),e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:h.name})]}),e.jsx("td",{className:"px-4 py-3",children:e.jsx("span",{className:$(ee,Br[h.kind]),children:s(Ra[h.kind])})}),e.jsx("td",{className:"px-4 py-3",children:e.jsx("span",{className:$(ee,Mr[h.status]),children:s(Ta[h.status])})}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-700 dark:text-gray-300",children:h.organization_count}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400",children:U(h.updated_at)}),e.jsx("td",{className:"px-4 py-3",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsxs(A,{size:"sm",variant:P?"outline":"primary",onClick:()=>a(h.id),"data-help":"finance.plans.design",children:[e.jsx(Et,{className:"w-3.5 h-3.5 mr-1.5"}),s("finance.plans.actions.design")]}),e.jsx(l,{k:"plans.actions.design",label:s("finance.plans.actions.design"),className:"-ml-1.5"}),e.jsxs(A,{size:"sm",variant:P?"primary":"outline",isLoading:_.has(h.id),onClick:()=>H.mutate(h.id),"data-help":"finance.plans.duplicate",children:[e.jsx(ss,{className:"w-3.5 h-3.5 mr-1.5"}),s("finance.plans.actions.duplicate")]}),e.jsx(l,{k:"plans.actions.duplicate",className:"-ml-1.5"}),!h.is_default_fallback&&e.jsxs(e.Fragment,{children:[e.jsx("span",{"data-help-reason":L?s("finance.plans.actions.fallbackDisabledArchived"):void 0,children:e.jsx(A,{size:"sm",variant:"ghost",disabled:L,onClick:()=>S(h),"data-help":"finance.plans.makeFallback",children:s("finance.plans.actions.makeFallback")})}),e.jsx(l,{k:"plans.actions.makeFallback",className:"-ml-1.5"})]}),e.jsx("span",{"data-help-reason":D,children:e.jsx(A,{size:"sm",variant:"ghost",disabled:D!==void 0,onClick:()=>p(h),"data-help":"finance.plans.archive",children:s("finance.plans.actions.archive")})}),e.jsx(l,{k:"plans.actions.archive",className:"-ml-1.5"})]})})]},h.id)})})]})}),y.length>=ke&&e.jsx("p",{className:"px-4 py-3 text-xs text-gray-500 dark:text-gray-400 border-t border-gray-200 dark:border-gray-700",children:s("finance.plans.table.truncated",{count:ke})})]}),e.jsx(xe,{isOpen:b!==null,title:s("finance.plans.archiveDialog.title",{code:(b==null?void 0:b.code)??""}),body:s("finance.plans.archiveDialog.body",{name:(b==null?void 0:b.name)??"",count:(b==null?void 0:b.organization_count)??0}),confirmLabel:s("finance.plans.actions.archive"),confirmHelpId:"finance.plans.archiveConfirm",cancelLabel:n("actions.cancel"),isLoading:m.isPending,danger:!0,onConfirm:()=>b&&m.mutate(b),onClose:()=>p(null)}),e.jsx(xe,{isOpen:g!==null,title:s("finance.plans.fallbackDialog.title",{code:(g==null?void 0:g.code)??""}),body:w?s("finance.plans.fallbackDialog.bodyWithCurrent",{name:(g==null?void 0:g.name)??"",current:w.code}):s("finance.plans.fallbackDialog.body",{name:(g==null?void 0:g.name)??""}
19),confirmLabel:s("finance.plans.actions.makeFallback"),confirmHelpId:"finance.plans.makeFallbackConfirm",cancelLabel:n("actions.cancel"),isLoading:v.isPending,onConfirm:()=>g&&v.mutate(g),onClose:()=>S(null)})]})}const ws=["performance_consent_text","withdrawal_policy_text"],zr=["reduce_proportionally","extinguish_on_consent"],Ur=["declaration_only","vat_id_required","vat_id_validated_required"];function Oa(a){return{withdrawal_window_days:String(a.withdrawal_window_days),consent_mode:a.consent_mode,business_declaration_policy:a.business_declaration_policy,plan_unused_full_refund:a.plan_unused_full_refund,performance_consent_text:{...a.performance_consent_text},withdrawal_policy_text:{...a.withdrawal_policy_text}}}function Hr(a){const s=a.trim();if(!/^\d+$/.test(s))return null;const n=Number(s);return n>=1&&n<=3650?n:null}function Gr(a){const s=Hr(a.withdrawal_window_days);return s===null?null:{withdrawal_window_days:s,consent_mode:a.consent_mode,business_declaration_policy:a.business_declaration_policy,plan_unused_full_refund:a.plan_unused_full_refund,performance_consent_text:a.performance_consent_text,withdrawal_policy_text:a.withdrawal_policy_text}}function Vr(a){const s=a.indexOf(".");return s===-1?{name:a,locale:null}:{name:a.slice(0,s),locale:a.slice(s+1)}}function Qr(a,s){return ws.every(n=>[...new Set([...Object.keys(a[n]),...Object.keys(s[n])])].every(r=>(a[n][r]??"")===(s[n][r]??"")))}const Aa=180,Yr=["acknowledgement","member","organisation","forced"];function ua(a){var s;return((s=Ka(a))==null?void 0:s.nativeLabel)??a.toUpperCase()}function qa(a){return a.length>Aa?`${a.slice(0,Aa)}â¦`:a}function Wr({change:a}){const{t:s}=I("system-admin"),{name:n,locale:t}=Vr(a.field),r=s("finance.seller.policy.history.blank"),i=a.old_value??"",d=a.new_value??"";return e.jsxs("li",{className:"text-xs border-t border-gray-100 dark:border-gray-800 pt-2 first:border-0 first:pt-0",children:[e.jsxs("span",{className:"block font-medium text-gray-800 dark:text-gray-200",children:[s(`finance.seller.policy.fields.${n}`,{defaultValue:n}),t?` (${t.toUpperCase()})`:""]}),e.jsxs("span",{className:"block text-gray-600 dark:text-gray-400",title:`${i} â ${d}`,children:[i?qa(i):r," â ",d?qa(d):r]}),e.jsx("span",{className:q,children:s("finance.seller.policy.history.by",{who:a.actor_email??s("finance.seller.policy.history.unknownActor"),when:ue(a.created_at)})})]})}function Xr({locale:a,consentText:s,consentVersion:n,consentLocale:t,notice:r}){const{t:i}=I("system-admin");return e.jsxs("div",{className:"rounded border border-gray-200 dark:border-gray-700 p-3 space-y-2",children:[e.jsx("span",{className:"block text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",children:ua(a)}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:q,children:i("finance.seller.policy.preview.consentLabel")}),s?e.jsxs("p",{className:"flex items-start gap-2 text-xs text-gray-700 dark:text-gray-300",children:[e.jsx("input",{type:"checkbox",checked:!1,disabled:!0,readOnly:!0,"aria-hidden":"true",className:"mt-0.5 rounded border-gray-300 dark:border-gray-600"}),e.jsx("span",{children:s})]}):e.jsx("p",{className:"text-xs text-red-700 dark:text-red-400",children:i("finance.seller.policy.preview.noConsent")}),s&&t&&t!==a?e.jsx("p",{className:"text-xs text-amber-700 dark:text-amber-400",children:i("finance.seller.policy.preview.consentFallback")}):null,n!==null&&e.jsx("span",{className:q,children:i("finance.seller.policy.preview.version",{version:n})})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:q,children:i("finance.seller.policy.preview.noticeLabel")}),r?e.jsx("p",{className:"text-[11px] leading-relaxed text-gray-500 dark:text-gray-400",children:r}):e.jsx("p",{className:"text-xs text-amber-700 dark:text-amber-400",children:i("finance.seller.policy.preview.noNotice")})]})]})}function Jr({name:a,locales:s,values:n,onChange:t,disabled:r}){const{t:i}=I("system-admin"),d=i(`finance.seller.policy.fields.${a}`);return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:Y,children:d}),e.jsx(l,{k:a==="performance_consent_text"?"seller.policy.consentText":"seller.policy.noticeText",label:d,className:"mb-1"})]}),e.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:s.map(c=>e.jsx(Zr,{locale:c,value:n[c]??"",disabled:r,onChange:x=>t(c,x)},c))})]})}function Zr({locale:a,value:s,disabled:n,onChange:t}){const r=f.useId();return e.jsxs("div",{className:"block",children:[e.jsx("label",{htmlFor:r,className:Y,children:ua(a)}),e.jsx("textarea",{id:r,rows:4,value:s,disabled:n,onChange:i=>t(i.target.value),className:X})]})}function el(){const{t:a}=I("system-admin"),{t:s}=I("common"),n=ce(),{data:t,isLoading:r,isError:i,error:d,refetch:c}=W({queryKey:["admin-seller-policy"],staleTime:3e4,queryFn:zn}),{data:x}=W({queryKey:["admin-seller-identity"],staleTime:3e4,queryFn:Qa}),[o,j]=f.useState(null),b=f.useId(),p=f.useId(),g=f.useId();f.useEffect(()=>{t&&j(m=>m??Oa(t))},[t]);const S=V({mutationFn:m=>Kn(m),onSuccess:m=>{n.setQueryData(["admin-seller-policy"],m),j(Oa(m)),F.success(a("finance.seller.policy.toasts.saved"))},onError:m=>F.error(z(m,a("finance.seller.policy.toasts.saveFailed")))});if(i)return e.jsxs("section",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-5 space-y-3",children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900 dark:text-gray-100",children:a("finance.seller.policy.title")}),e.jsxs("p",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:z(d,a("finance.seller.policy.loadFailed"))})]}),e.jsx(A,{variant:"secondary",onClick:()=>c(),"data-help":"common.action.retry",children:s("actions.retry")})]});if(r||!t||!o)return null;const _=t.preview.map(m=>m.locale),C=S.isPending,k=Gr(o),T=Qr(o,t),w=t.preview.filter(m=>!m.consent_text).map(m=>ua(m.locale)),N=m=>j(v=>v&&{...v,...m}),H=m=>(v,y)=>j(h=>h&&{...h,[m]:{...h[m],[v]:y}});return e.jsxs("section",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-5 space-y-4",children:[e.jsxs("h3",{className:"inline-flex items-center gap-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100",children:[a("finance.seller.policy.title"),e.jsx(l,{k:"seller.policy.section",size:"md"})]}),e.jsx("p",{className:q,children:a("finance.seller.policy.intro")}),e.jsxs("p",{className:`flex items-start gap-2 ${q}`,children:[e.jsx(le,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:t.updated_at===null?a("finance.seller.policy.neverSaved"):a("finance.seller.policy.savedAt",{when:ue(t.updated_at)})})]}),w.length>0&&e.jsxs("p",{className:"flex items-start gap-2 text-sm text-red-700 dark:text-red-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a("finance.seller.policy.status.blocked",{languages:w.join(", ")})})]}),t.gaps.length===0?e.jsxs("p",{className:"flex items-start gap-2 text-sm text-emerald-700 dark:text-emerald-400",children:[e.jsx(Ne,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a("finance.seller.policy.status.written")})]}):e.jsxs("p",{className:"flex items-start gap-2 text-sm text-gray-700 dark:text-gray-300",children:[e.jsx(le,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a("finance.seller.policy.status.unwritten",{fields:t.gaps.map(m=>`${a(`finance.seller.policy.fields.${m.field}`,{defaultValue:m.field})} (${m.locale.toUpperCase()})`).join(", ")})})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"block",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:b,className:Y,children:a("finance.seller.policy.fields.withdrawal_window_days")}),e.jsx(l,{k:"seller.policy.window",className:"mb-1"})]}),e.jsx("input",{id:b,type:"number",min:1,max:3650,step:1,value:o.withdrawal_window_days,disabled:C,onChange:m=>N({withdrawal_window_days:m.target.value}),className:X}),k===null&&e.jsx("span",{className:"block text-xs text-red-600 dark:text-red-400",children:a("finance.seller.policy.windowInvalid")})]}),e.jsxs("div",{className:"block",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:p,className:Y,children:a("finance.seller.policy.fields.consent_mode")}),e.jsx(l,{k:"seller.policy.consentMode",className:"mb-1"})]}),e.jsx("select",{id:p,value:o.consent_mode,disabled:C,onChange:m=>N({consent_mode:m.target.value}),className:X,children:zr.map(m=>e.jsx("option",{value:m,children:a(`finance.seller.policy.consentModes.${m}`)},m))})]}),e.jsxs("div",{className:"block sm:col-span-2",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:g,className:Y,children:a("finance.seller.policy.fields.business_declaration_policy")}),e.jsx(l,{k:"seller.policy.declarationPolicy",className:"mb-1"})]}),e.jsx("select",{id:g,value:o.business_declaration_policy,disabled:C,onChange:m=>N({business_declaration_policy:m.target.value}),className:X,children:Ur.map(m=>e.jsx("option",{value:m,children:a(`finance.seller.policy.declarationPolicies.${m}`)},m))})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm text-gray-800 dark:text-gray-200",children:[e.jsx("input",{type:"checkbox",checked:o.plan_unused_full_refund,disabled:C,onChange:m=>N({plan_unused_full_refund:m.target.checked})}),a("finance.seller.policy.fields.plan_unused_full_refund")]}),e.jsx(l,{k:"seller.policy.unusedFullRefund"})]}),!o.plan_unused_full_refund&&e.jsxs("p",{className:"flex items-start gap-2 text-sm text-amber-700 dark:text-amber-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a("finance.seller.policy.fullRefundOffMeans")})]})]}),ws.map(m=>e.jsxs("div",{className:"space-y-2",children:[e.jsx(Jr,{name:m,locales:_,values:o[m],disabled:C,onChange:H(m)}),m==="performance_consent_text"?e.jsxs("p",{className:`flex items-start gap-2 ${q}`,children:[e.jsx(le,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a("finance.seller.policy.consentRequiredNote")})]}):null]},m)),e.jsxs("p",{className:"flex items-start gap-2 text-sm text-amber-700 dark:text-amber-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a("finance.seller.policy.notRetroactive")})]}),e.jsxs("div",{className:"flex justify-end",children:[e.jsx(l,{k:"seller.policy.save",label:a("finance.seller.policy.save"),className:"self-center mr-2"}),e.jsx(A,{variant:"primary",disabled:C||k===null,isLoading:S.isPending,onClick:()=>k&&S.mutate(k),"data-help":"finance.seller.savePolicy",children:a("finance.seller.policy.save")})]}),e.jsxs("div",{className:"space-y-2 border-t border-gray-100 dark:border-gray-800 pt-4",children:[e.jsxs("h4",{className:"inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[a("finance.seller.policy.notices.title"),e.jsx(l,{k:"seller.policy.notices"})]}),e.jsx("p",{className:q,children:a("finance.seller.policy.notices.intro")}),e.jsx("ul",{className:"list-disc space-y-1 pl-5 text-xs text-gray-700 dark:text-gray-300",children:Yr.map(m=>e.jsx("li",{children:a(`finance.seller.policy.notices.${m}`)},m))}),e.jsx("p",{className:q,children:a("finance.seller.policy.notices.where")}
19),x===void 0?null:x.missing_for_delivery.length>0?e.jsxs("p",{className:"flex items-start gap-2 text-sm text-amber-700 dark:text-amber-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a("finance.seller.policy.notices.mailboxMissing")})]}):e.jsxs("p",{className:"flex items-start gap-2 text-sm text-emerald-700 dark:text-emerald-400",children:[e.jsx(Ne,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a("finance.seller.policy.notices.mailboxReady")})]})]}),e.jsxs("div",{className:"space-y-2 border-t border-gray-100 dark:border-gray-800 pt-4",children:[e.jsxs("h4",{className:"inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[a("finance.seller.policy.preview.title"),e.jsx(l,{k:"seller.policy.preview"})]}),e.jsx("p",{className:q,children:a(T?"finance.seller.policy.preview.hint":"finance.seller.policy.preview.unsaved")}),e.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:t.preview.map(m=>e.jsx(Xr,{locale:m.locale,consentText:m.consent_text,consentVersion:m.consent_version,consentLocale:m.consent_locale,notice:m.withdrawal_notice},m.locale))})]}),e.jsxs("div",{className:"space-y-2 border-t border-gray-100 dark:border-gray-800 pt-4",children:[e.jsxs("h4",{className:"inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400",children:[a("finance.seller.policy.history.title"),e.jsx(l,{k:"seller.policy.history",label:a("finance.seller.policy.history.title")})]}),t.changes.length===0?e.jsx("p",{className:q,children:a("finance.seller.policy.history.none")}):e.jsx("ul",{className:"space-y-2",children:t.changes.map(m=>e.jsx(Wr,{change:m},m.id))})]})]})}const al=["legal_name","address","vat_number","iban","bic","bank_name","statutory_footer"],sl=["smtp_host","smtp_port","smtp_username","invoice_from_email"],nl=["seller_country","standard_rate"],tl=["reverse_charge_enabled","sme_scheme_enabled"],il=["kleinunternehmer_note","reverse_charge_note","sme_scheme_note"],rl=["tls","ssl","none"],ll={legal_name:"",address:"",vat_number:"",iban:"",bic:"",bank_name:"",statutory_footer:"",smtp_host:"",smtp_port:"587",smtp_security:"tls",smtp_username:"",invoice_from_email:"",seller_country:"",standard_rate:"",reverse_charge_enabled:!1,sme_scheme_enabled:!1,kleinunternehmer_note:"",reverse_charge_note:"",sme_scheme_note:""};function cl(a){return{legal_name:a.legal_name,address:a.address,vat_number:a.vat_number,iban:a.iban,bic:a.bic,bank_name:a.bank_name,statutory_footer:a.statutory_footer,smtp_host:a.smtp_host,smtp_port:a.smtp_port,smtp_security:a.smtp_security,smtp_username:a.smtp_username,invoice_from_email:a.invoice_from_email,seller_country:a.seller_country,standard_rate:a.standard_rate,reverse_charge_enabled:a.reverse_charge_enabled,sme_scheme_enabled:a.sme_scheme_enabled,kleinunternehmer_note:a.kleinunternehmer_note,reverse_charge_note:a.reverse_charge_note,sme_scheme_note:a.sme_scheme_note}}const pa={legal_name:"seller.identity.legalName",address:"seller.identity.address",vat_number:"seller.identity.vatNumber",iban:"seller.identity.iban",bic:"seller.identity.bic",bank_name:"seller.identity.bankName",statutory_footer:"seller.identity.statutoryFooter",smtp_host:"seller.mailbox.host",smtp_port:"seller.mailbox.port",smtp_username:"seller.mailbox.username",invoice_from_email:"seller.mailbox.fromEmail",seller_country:"seller.tax.country",standard_rate:"seller.tax.standardRate",reverse_charge_enabled:"seller.tax.reverseCharge",sme_scheme_enabled:"seller.tax.smeScheme",kleinunternehmer_note:"seller.tax.kleinunternehmerNote",reverse_charge_note:"seller.tax.reverseChargeNote",sme_scheme_note:"seller.tax.smeSchemeNote"};function Xe({name:a,value:s,onChange:n,disabled:t}){const{t:r}=I("system-admin"),i=f.useId(),d=r(`finance.seller.fields.${a}`),c=pa[a];return e.jsxs("div",{className:"block",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:i,className:Y,children:d}),c?e.jsx(l,{k:c,label:d,className:"mb-1"}):null]}),e.jsx("input",{id:i,type:"text",value:s,disabled:t,onChange:x=>n(x.target.value),placeholder:r(`finance.seller.placeholders.${a}`),className:X})]})}function dl({name:a,value:s,onChange:n,disabled:t}){const{t:r}=I("system-admin"),i=f.useId(),d=r(`finance.seller.fields.${a}`);return e.jsxs("div",{className:"block",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:i,className:Y,children:d}),e.jsx(l,{k:pa[a],label:d,className:"mb-1"})]}),e.jsx("textarea",{id:i,rows:2,value:s,disabled:t,onChange:c=>n(c.target.value),className:X})]})}function ol({name:a,checked:s,onChange:n,disabled:t}){const{t:r}=I("system-admin"),i=r(`finance.seller.fields.${a}`);return e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm text-gray-800 dark:text-gray-200",children:[e.jsx("input",{type:"checkbox",checked:s,disabled:t,onChange:d=>n(d.target.checked)}),i]}),e.jsx(l,{k:pa[a],label:i})]})}function ml(){const{t:a}=I("system-admin"),{t:s}=I("common"),n=ce(),{data:t,isLoading:r}=W({queryKey:["admin-seller-identity"],staleTime:3e4,queryFn:Qa}),[i,d]=f.useState(ll),[c,x]=f.useState(""),[o,j]=f.useState(""),[b,p]=f.useState(null),g=f.useId(),S=f.useId(),_=f.useId();f.useEffect(()=>{t&&d(cl(t))},[t]);const C=m=>v=>d(y=>({...y,[m]:v})),k=m=>v=>d(y=>({...y,[m]:v})),T=V({mutationFn:()=>Un({...i,smtp_password:c.trim()||void 0}),onSuccess:m=>{n.setQueryData(["admin-seller-identity"],m),x(""),p(null),F.success(a("finance.seller.toasts.saved"))},onError:m=>F.error(z(m,a("finance.seller.toasts.saveFailed")))}),w=V({mutationFn:()=>Hn(o.trim()),onSuccess:m=>p(m),onError:m=>F.error(z(m,a("finance.seller.toasts.testFailed")))});if(r||!t)return e.jsx("div",{className:"text-center py-12 text-gray-500",children:s("actions.loading")});const N=T.isPending||w.isPending,H=(m,v)=>(m!=null&&m.length?m.map(y=>a(`finance.seller.fields.${y}`,{defaultValue:y})):v).join(", ");return e.jsxs("div",{className:"space-y-6 max-w-3xl",children:[e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:a("finance.seller.intro")}),t.is_complete?e.jsxs("p",{className:"flex items-start gap-2 text-sm text-emerald-700 dark:text-emerald-400",children:[e.jsx(Ne,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[a("finance.seller.status.complete"),e.jsx(l,{k:"seller.readiness",className:"ml-1"})]})]}):e.jsxs("p",{className:"flex items-start gap-2 text-sm text-amber-700 dark:text-amber-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[a("finance.seller.status.incomplete",{fields:H(t.missing_keys,t.missing)}),e.jsx(l,{k:"seller.readiness",className:"ml-1"})]})]}),e.jsxs("p",{className:`flex items-start gap-2 ${q}`,children:[e.jsx(le,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:t.updated_at===null?a("finance.seller.neverSaved"):a("finance.seller.savedAt",{when:ue(t.updated_at)})})]}),e.jsxs("section",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-5 space-y-4",children:[e.jsxs("h3",{className:"inline-flex items-center gap-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100",children:[a("finance.seller.sections.identity"),e.jsx(l,{k:"seller.identity.section",size:"md"})]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:al.map(m=>e.jsx(Xe,{name:m,value:i[m],disabled:N,onChange:C(m)},m))})]}),e.jsxs("section",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-5 space-y-4",children:[e.jsxs("h3",{className:"inline-flex items-center gap-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100",children:[a("finance.seller.sections.tax"),e.jsx(l,{k:"seller.tax.section",size:"md"})]}),e.jsx("p",{className:q,children:a("finance.seller.sections.taxHint")}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:nl.map(m=>e.jsx(Xe,{name:m,value:i[m],disabled:N,onChange:C(m)},m))}),e.jsx("div",{className:"flex flex-wrap gap-x-6 gap-y-2",children:tl.map(m=>e.jsx(ol,{name:m,checked:i[m],disabled:N,onChange:k(m)},m))}),e.jsx("div",{className:"space-y-4",children:il.map(m=>e.jsx(dl,{name:m,value:i[m],disabled:N,onChange:C(m)},m))}),e.jsxs("p",{className:"flex items-start gap-2 text-sm text-amber-700 dark:text-amber-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a("finance.seller.status.taxNotRetroactive")})]})]}),e.jsxs("section",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-5 space-y-4",children:[e.jsxs("h3",{className:"inline-flex items-center gap-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100",children:[a("finance.seller.sections.mailbox"),e.jsx(l,{k:"seller.mailbox.section",size:"md"})]}),e.jsx("p",{className:q,children:a("finance.seller.sections.mailboxHint")}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[sl.map(m=>e.jsx(Xe,{name:m,value:i[m],disabled:N,onChange:C(m)},m)),e.jsxs("div",{className:"block",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:g,className:Y,children:a("finance.seller.fields.smtp_security")}),e.jsx(l,{k:"seller.mailbox.security",label:a("finance.seller.fields.smtp_security"),className:"mb-1"})]}),e.jsx("select",{id:g,value:i.smtp_security,disabled:N,onChange:m=>d(v=>({...v,smtp_security:m.target.value})),className:X,children:rl.map(m=>e.jsx("option",{value:m,children:a(`finance.seller.security.${m}`)},m))})]}),e.jsxs("div",{className:"block",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:S,className:Y,children:a("finance.seller.fields.smtp_password")}),e.jsx(l,{k:"seller.mailbox.password",className:"mb-1"})]}),e.jsx("input",{id:S,type:"password",autoComplete:"new-password",value:c,disabled:N,onChange:m=>x(m.target.value),placeholder:t.smtp_password?a("finance.seller.passwordStored"):a("finance.seller.passwordNone"),className:X}),e.jsx("span",{className:q,children:a("finance.seller.passwordHint")})]})]}),t.missing_for_delivery.length>0&&e.jsxs("p",{className:"flex items-start gap-2 text-sm text-amber-700 dark:text-amber-400",children:[e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsx("span",{children:a("finance.seller.status.deliveryIncomplete",{fields:H(t.missing_for_delivery_keys,t.missing_for_delivery)})})]})]}),e.jsxs("div",{className:"flex justify-end",children:[e.jsx(l,{k:"seller.save",label:s("actions.save"),className:"self-center mr-2"}),e.jsx(A,{variant:"primary",disabled:N,isLoading:T.isPending,onClick:()=>T.mutate(),"data-help":"finance.seller.save",children:s("actions.save")})]}),e.jsxs("section",{className:"bg-white dark:bg-gray-800 rounded-lg shadow p-5 space-y-3",children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900 dark:text-gray-100",children:a("finance.seller.sections.test")}),e.jsx("p",{className:q,children:a("finance.seller.sections.testHint")}),e.jsxs("div",{className:"flex flex-wrap items-end gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-[16rem]",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("label",{htmlFor:_,className:Y,children:a("finance.seller.testRecipient")}),e.jsx(l,{k:"seller.test.recipient",label:a("finance.seller.testRecipient"),className:"mb-1"})]}),e.jsx("input",{id:_,type:"email",value:o,disabled:N,onChange:m=>j(m.target.value),placeholder:"[email protected]",className:X})]}),e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsxs(A,{variant:"secondary",disabled:N||o.trim()==="",isLoading:w.isPending,onClick:()=>w.mutate(),"data-help":"finance.seller.sendTest",children:[e.jsx(Lt,{className:"w-4 h-4","aria-hidden":"true"}),a("finance.seller.sendTest")]}),e.jsx(l,{k:"seller.test.send"})]})]}),b!==null&&e.jsxs("p",{className:`flex items-start gap-2 text-sm ${b.success?"text-emerald-700 dark:text-emerald-400":"text-red-700 dark:text-red-400"}`,children:[b.success?e.jsx(Ne,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}):e.jsx(ae,{className:"w-4 h-4 mt-0.5 shrink-0","aria-hidden":"true"}),e.jsxs("span",{children:[b.message,b.error?` â ${b.error}`:""]})]})]}),e.jsx(el,{})]})}const Cs=["plans","designer","assign","contracts","invoices","credit","payments","seller","book"],xl={plans:"finance.tabs.plans",designer:"finance.tabs.designer",assign:"finance.tabs.assign",contracts:"finance.tabs.contracts",book:"finance.tabs.book",invoices:"finance.tabs.invoices",seller:"finance.tabs.seller",credit:"finance.tabs.credit",payments:"finance.tabs.payments"},Ma="plans";function gl(a){return a!==null&&Cs.includes(a)}function Ql(){const{t:a}=I("system-admin"),[s,n]=Ts(),{data:t}=W({queryKey:["admin-finance-manual-queue"],queryFn:Ga,staleTime:3e4}),r=s.get("tab"),i=gl(r)?r:Ma,d=s.get("plan"),c=s.get("org"),x=(j,b)=>{const p=new URLSearchParams(s);j===Ma?p.delete("tab"):p.set("tab",j),b!==void 0&&(b?p.set("plan",b):p.delete("plan")),n(p,{replace:!0})},o=j=>{const b=new URLSearchParams(s);j?b.set("org",j):b.delete("org"),n(b,{replace:!0})};return e.jsx(Vs,{children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(xt,{className:"w-6 h-6 text-fuchsia-500"}),e.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:a("finance.page.title")}),e.jsx(l,{k:"page.overview",size:"md"})]}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mb-6",children:a("finance.page.description")}),t?e.jsx(kr,{queue:t}):null,e.jsx("div",{className:"border-b border-gray-200 dark:border-gray-700 mb-6",children:e.jsx("nav",{className:"flex gap-6 overflow-x-auto",children:Cs.map(j=>e.jsxs("span",{className:"inline-flex items-start gap-1.5",children:[e.jsxs("button",{onClick:()=>x(j),"data-help":xl[j],className:$("pb-3 text-sm font-medium border-b-2 transition-colors whitespace-nowrap",i===j?"border-fuchsia-500 text-fuchsia-600 dark:text-fuchsia-400":"border-transparent text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300"),children:[a(`finance.tabs.${j}`),j==="credit"&&((t==null?void 0:t.credit_intents)??0)>0?e.jsx("span",{className:"ml-1.5 inline-flex items-center rounded-full bg-amber-100 px-1.5 py-0.5 text-xs font-medium text-amber-800 dark:bg-amber-900/40 dark:text-amber-300","aria-label":a("finance.manualQueue.creditBadgeLabel",{count:(t==null?void 0:t.credit_intents)??0}),children:t==null?void 0:t.credit_intents}):null]}),e.jsx(l,{k:`page.tabs.${j}`,label:a(`finance.tabs.${j}`),className:"mt-0.5"})]},j))})}),i==="plans"?e.jsx(Kr,{onDesign:j=>x("designer",j)}):i==="designer"?e.jsx(ur,{planId:d,onSelectPlan:j=>x("designer",j)}):i==="assign"?e.jsx(ai,{planId:d}):i==="contracts"?e.jsx(zi,{organizationId:c,onSelectOrganization:o}):i==="invoices"?e.jsx(br,{organizationId:c}):i==="credit"?e.jsx(Ui,{organizationId:c}):i==="payments"?e.jsx(Or,{}):i==="seller"?e.jsx(ml,{}):e.jsx(hi,{})]})})}export{Ql 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.