1import{j as e,a as U,c as k,u as O}from"./chunk-Cl_8PWDN.js";import{r as h}from"./chunk-Bzo9Tunx.js";import{k as w,u as z,a as T,A as H}from"./chunk-DUErHPP3.js";import{B as $}from"./chunk-Dwamq1GJ.js";import{c as D,B as v,t as C}from"./index-5yA9CUzc.js";import{C as V,d as K,a as Y,b as G,c as J}from"./chunk-D0e1vpx_.js";import{I as p}from"./chunk-BIJpGMWs.js";import{L as d}from"./chunk-Cswqrut6.js";import{S as N,a as S,b as M,c as F,d as g}from"./chunk-Y6PacCAK.js";import{T as X,a as Z,b as Q,c as B,d as ee,e as R}from"./chunk-BLT6yKBQ.js";import{b9 as W,R as te,aw as ie,L as A,ba as se,bb as ae,s as re,bc as le,W as ne}from"./chunk-mAyixyGg.js";import{A as oe}from"./chunk-C9hHCnAK.js";import"./chunk-DHVgiofg.js";import"./chunk-DaCLkmJg.js";import"./chunk-BNWfZVZZ.js";import"./chunk-DOYwYJoF.js";import"./chunk-Cpk34r19.js";import"./chunk-sOoSo9Bm.js";import"./chunk-C7gcEKhI.js";import"./chunk-ClMkenV-.js";import"./chunk-me0vpg0v.js";import"./chunk-CD0_quAU.js";import"./chunk-YrvLZ4fv.js";import"./chunk-DBTYFX8p.js";import"./chunk-x6H3mB14.js";import"./chunk-CbG3gslG.js";import"./chunk-BeHpvERE.js";import"./chunk-PeZDclay.js";const q={owner:"border-transparent bg-blue-100 text-blue-700",admin:"border-transparent bg-zinc-100 text-zinc-600",advisor:"border-transparent bg-zinc-100 text-zinc-600",support:"border-transparent bg-zinc-100 text-zinc-600",contractor:"border-transparent bg-amber-100 text-amber-700",viewer:"border-transparent bg-zinc-50 text-zinc-400"},ce={owner:"Owner",admin:"Admin",advisor:"Advisor",support:"Support Staff",contractor:"Contractor",viewer:"Viewer"};function de({role:t}){return e.jsx($,{className:D("font-normal",q[t]??q.advisor),children:ce[t]??t})}const I={active:"border-transparent bg-green-50 text-green-600",inactive:"border-transparent bg-zinc-50 text-zinc-400"};function me({status:t}){return e.jsx($,{variant:"secondary",className:D("text-[10px] px-1.5 py-0 font-normal capitalize",I[t]??I.inactive),children:t})}function pe({status:t}){const s=t==="active",i=t==="onboarding";return e.jsx($,{className:D("capitalize font-normal",s?"border-transparent bg-green-100 text-green-700":i?"border-transparent bg-sky-100 text-sky-700":"border-transparent bg-zinc-100 text-zinc-500"),children:t.replace(/_/g," ")})}const ue=h.memo(function({member:s}){const i=`${s.first_name} ${s.last_name}`.trim()||s.email;return e.jsxs(Q,{children:[e.jsx(R,{className:"pl-6",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"flex size-8 items-center justify-center rounded-full bg-slate-100",children:e.jsx(le,{className:"size-5 text-slate-500"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:i}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s.email})]})]})}),e.jsx(R,{children:e.jsx(de,{role:s.role})}),e.jsx(R,{className:"pr-6",children:e.jsx(me,{status:s.status})})]})}),xe=h.memo(function({agency:s,isUpdating:i,isDeleting:o,onUpdate:a,onDelete:r,onConvertPilot:u}){const[n,x]=h.useState(!1),[f,c]=h.useState(!1),[l,b]=h.useState(!1),m=s.billing,P=i||o;return e.jsxs(V,{children:[e.jsx(Y,{children:e.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"flex size-10 items-center justify-center rounded-lg bg-slate-100",children:e.jsx(W,{className:"size-5 text-slate-500"})}),e.jsxs("div",{children:[e.jsx(G,{className:"text-xl",children:s.name}),e.jsxs(J,{children:[s.member_count," member",s.member_count!==1?"s":""," · ",s.advisor_count," advisor",s.advisor_count!==1?"s":""]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(pe,{status:s.status}),m?.pricing_mode==="pilot"&&e.jsx($,{className:D("font-normal",m.pilot_expired?"border-transparent bg-red-100 text-red-700":"border-transparent bg-amber-100 text-amber-700"),children:m.pilot_expired?"Pilot expired":`Pilot â ${m.pilot_days_remaining??0} days left`}),s.terms?.terms_amended_at&&!s.terms.terms_amendment_signed_at&&e.jsx($,{className:"border-transparent bg-amber-100 font-normal text-amber-700",children:"Signature pending"}),m?.pricing_mode==="pilot"&&e.jsxs(v,{type:"button",size:"sm",variant:"outline",disabled:P,onClick:()=>c(!0),children:[e.jsx(te,{className:"size-4"}),"Convert to flat fee"]}),e.jsxs(v,{type:"button",size:"sm",variant:"outline",disabled:P,onClick:()=>x(!0),children:[e.jsx(ie,{className:"size-4"}),"Edit"]}),s.status==="inactive"?e.jsxs(v,{type:"button",size:"sm",variant:"outline",disabled:P,onClick:()=>a(s.id,{status:"active"}),children:[i?e.jsx(A,{className:"size-4 animate-spin"}):e.jsx(se,{className:"size-4"}),"Reactivate"]}):e.jsxs(v,{type:"button",size:"sm",variant:"outline",disabled:P,onClick:()=>a(s.id,{status:"inactive"}),children:[i?e.jsx(A,{className:"size-4 animate-spin"}):e.jsx(ae,{className:"size-4"}),"Suspend"]}),e.jsxs(v,{type:"button",size:"sm",variant:"destructive",disabled:P,onClick:()=>b(!0),children:[e.jsx(re,{className:"size-4"}),"Delete"]})]})]})}),e.jsxs(K,{className:"space-y-5 px-0 pb-0",children:[m&&e.jsxs("div",{className:"mx-6 grid gap-3 rounded-lg border border-slate-200 bg-slate-50 p-4 text-sm sm:grid-cols-2 lg:grid-cols-4",children:[e.jsx(y,{label:"Agency commission",value:`${(100-Number(m.cp_commission_split_pct)).toFixed(2)}%`}),m.pricing_mode==="pilot"?e.jsxs(e.Fragment,{children:[e.jsx(y,{label:"Pricing",value:`Pilot $${m.pilot_fee}`}),e.jsx(y,{label:"Pilot term",value:m.pilot_expired?"Expired":`${m.pilot_days_remaining??0} days left`})]}):m.pricing_mode==="flat"?e.jsxs(e.Fragment,{children:[e.jsx(y,{label:"Pricing",value:`Flat $${m.flat_monthly_price??"â"}/mo`}),e.jsx(y,{label:"Ceilings",value:`${m.advisor_seat_cap} advisor · ${m.support_seat_cap} support`})]}):e.jsxs(e.Fragment,{children:[e.jsx(y,{label:"Advisor seats",value:`${m.advisor_seat_cap} @ $${m.agent_seat_price}`}),e.jsx(y,{label:"Support seats",value:`${m.support_seat_cap} @ $${m.support_seat_price}`})]}),e.jsx(y,{label:"Payouts",value:m.payout_mode==="direct"?"Direct to sub-agents":"Agency collects"}),e.jsx(y,{label:"Territory",value:m.authorized_territory.join(", ")||"All"})]}),s.members.length===0?e.jsx("p",{className:"px-6 pb-6 text-sm text-muted-foreground",children:"No active members."}):e.jsxs(X,{children:[e.jsx(Z,{children:e.jsxs(Q,{className:"bg-muted/30",children:[e.jsx(B,{className:"pl-6",children:"Member"}),e.jsx(B,{children:"Role"}),e.jsx(B,{className:"pr-6",children:"Status"})]})}),e.jsx(ee,{children:s.members.map(_=>e.jsx(ue,{member:_},_.id))})]})]}),e.jsx(he,{agency:s,open:n,isPending:i,onClose:()=>x(!1),onSubmit:_=>{a(s.id,_),x(!1)}}),e.jsx(ge,{agency:s,open:f,isPending:i,onClose:()=>c(!1),onSubmit:_=>{u(s.id,_),c(!1)}}),e.jsx(ve,{agency:s,open:l,isPending:o,onClose:()=>b(!1),onConfirm:()=>{r(s.id),b(!1)}})]})});function y({label:t,value:s}){return e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:t}),e.jsx("p",{className:"mt-1 font-medium text-slate-900",children:s})]})}const j={status:"onboarding",pricingMode:"per_seat",payoutMode:"agency_collect",flatMonthlyPrice:"",pilotFee:"500.00",agencyCommissionPct:"90.00",agentSeatPrice:"50.00",supp
1ortSeatPrice:"25.00",advisorSeatCap:0,supportSeatCap:0,authorizedTerritory:""};function he({agency:t,open:s,isPending:i,onClose:o,onSubmit:a}){const[r,u]=h.useState(j);h.useEffect(()=>{s&&u({status:t.status,pricingMode:t.billing?.pricing_mode??j.pricingMode,payoutMode:t.billing?.payout_mode??j.payoutMode,flatMonthlyPrice:t.billing?.flat_monthly_price??j.flatMonthlyPrice,pilotFee:t.billing?.pilot_fee??j.pilotFee,agencyCommissionPct:t.billing?(100-Number(t.billing.cp_commission_split_pct)).toFixed(2):j.agencyCommissionPct,agentSeatPrice:t.billing?.agent_seat_price??j.agentSeatPrice,supportSeatPrice:t.billing?.support_seat_price??j.supportSeatPrice,advisorSeatCap:t.billing?.advisor_seat_cap??j.advisorSeatCap,supportSeatCap:t.billing?.support_seat_cap??j.supportSeatCap,authorizedTerritory:t.billing?.authorized_territory.join(", ")??j.authorizedTerritory})},[t,s]);function n(c,l){u(b=>({...b,[c]:l}))}function x(c){u(l=>({...l,pricingMode:c,advisorSeatCap:c==="flat"?500:t.billing?.advisor_seat_cap??j.advisorSeatCap,supportSeatCap:c==="flat"?50:t.billing?.support_seat_cap??j.supportSeatCap}))}const f=r.advisorSeatCap>=0&&r.supportSeatCap>=0&&r.agencyCommissionPct.trim().length>0&&(r.pricingMode!=="pilot"||r.pilotFee.trim().length>0&&Number(r.pilotFee)>0)&&(r.pricingMode==="flat"?r.flatMonthlyPrice.trim().length>0:r.agentSeatPrice.trim().length>0&&r.supportSeatPrice.trim().length>0)&&!i;return e.jsx(w,{isOpen:s,onClose:o,title:`Manage ${t.name}`,subtitle:"Change agency status, commission split, seat pricing, and hard caps",maxWidth:680,fitContent:!0,children:e.jsxs("form",{className:"space-y-6 px-8 pb-8 pt-2",onSubmit:c=>{c.preventDefault(),f&&a({status:r.status,pricing_mode:r.pricingMode,payout_mode:r.payoutMode,...r.pricingMode==="flat"?{flat_monthly_price:r.flatMonthlyPrice.trim()}:{},...r.pricingMode==="pilot"?{pilot_fee:r.pilotFee.trim()}:{},cp_commission_split_pct:(100-Number(r.agencyCommissionPct)).toFixed(2),agent_seat_price:r.agentSeatPrice.trim(),support_seat_price:r.supportSeatPrice.trim(),advisor_seat_cap:r.advisorSeatCap,support_seat_cap:r.supportSeatCap,authorized_territory:r.authorizedTerritory.split(",").map(l=>l.trim().toUpperCase()).filter(Boolean)})},children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{children:"Status"}),e.jsxs(N,{value:r.status,onValueChange:c=>n("status",c),disabled:i,children:[e.jsx(S,{children:e.jsx(M,{})}),e.jsxs(F,{children:[e.jsx(g,{value:"onboarding",children:"Onboarding"}),e.jsx(g,{value:"active",children:"Active"}),e.jsx(g,{value:"inactive",children:"Suspended"})]})]})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{id:`${t.id}-pricing-mode`,children:"Pricing"}),e.jsxs(N,{value:r.pricingMode,onValueChange:c=>x(c),disabled:i,children:[e.jsx(S,{"aria-labelledby":`${t.id}-pricing-mode`,children:e.jsx(M,{})}),e.jsxs(F,{children:[e.jsx(g,{value:"per_seat",children:"Per-seat"}),e.jsx(g,{value:"flat",children:"Flat fee (unlimited seats)"}),e.jsx(g,{value:"pilot",children:"30-day pilot"})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-split`,children:"Agency commission %"}),e.jsx(p,{id:`${t.id}-split`,inputMode:"decimal",value:r.agencyCommissionPct,onChange:c=>n("agencyCommissionPct",c.target.value),disabled:i})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{id:`${t.id}-payout-mode`,children:"Payout mode"}),e.jsxs(N,{value:r.payoutMode,onValueChange:c=>n("payoutMode",c),disabled:i,children:[e.jsx(S,{"aria-labelledby":`${t.id}-payout-mode`,children:e.jsx(M,{})}),e.jsxs(F,{children:[e.jsx(g,{value:"agency_collect",children:"Agency collects all commissions"}),e.jsxs(g,{value:"direct",disabled:!0,children:["Pay sub-agents directly"," (coming soon)"]})]})]})]}),r.pricingMode==="per_seat"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-advisor-rate`,children:"Advisor seat"}),e.jsx(p,{id:`${t.id}-advisor-rate`,inputMode:"decimal",value:r.agentSeatPrice,onChange:c=>n("agentSeatPrice",c.target.value),disabled:i})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-support-rate`,children:"Support seat"}),e.jsx(p,{id:`${t.id}-support-rate`,inputMode:"decimal",value:r.supportSeatPrice,onChange:c=>n("supportSeatPrice",c.target.value),disabled:i})]})]}),r.pricingMode==="flat"&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-flat-monthly-fee`,children:"Flat monthly fee"}),e.jsx(p,{id:`${t.id}-flat-monthly-fee`,inputMode:"decimal",value:r.flatMonthlyPrice,onChange:c=>n("flatMonthlyPrice",c.target.value),disabled:i})]}),r.pricingMode==="pilot"&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-pilot-fee`,children:"Pilot fee"}),e.jsx(p,{id:`${t.id}-pilot-fee`,inputMode:"decimal",value:r.pilotFee,onChange:c=>n("pilotFee",c.target.value),disabled:i})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-advisor-cap`,children:r.pricingMode==="flat"?"Advisor ceiling":"Advisor cap"}),e.jsx(p,{id:`${t.id}
1-advisor-cap`,type:"number",min:0,value:r.advisorSeatCap,onChange:c=>n("advisorSeatCap",Number(c.target.value)),disabled:i})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-support-cap`,children:r.pricingMode==="flat"?"Support ceiling":"Support cap"}),e.jsx(p,{id:`${t.id}-support-cap`,type:"number",min:0,value:r.supportSeatCap,onChange:c=>n("supportSeatCap",Number(c.target.value)),disabled:i})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-territory`,children:"Territory"}),e.jsx(p,{id:`${t.id}-territory`,value:r.authorizedTerritory,onChange:c=>n("authorizedTerritory",c.target.value),disabled:i,placeholder:"US, CA"})]})]}),r.pricingMode==="flat"&&e.jsx("p",{className:"text-xs text-muted-foreground",children:"Ceilings are a safety limit, not a billed quantity. The flat fee covers all seats up to the ceilings."}),e.jsx("div",{className:"rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800",children:"Changing signed commercial terms updates the agency record now. Stripe subscription proration still needs the billing integration pass."}),t.terms?.order_form_signed_at&&e.jsx("p",{className:"rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-900",children:"This agency signed its order form. A change to the pricing, the split, the seat caps, or the territory amends the terms. The agency admin must sign the new order form before the next charge."}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(v,{type:"button",variant:"outline",onClick:o,disabled:i,children:"Cancel"}),e.jsxs(v,{type:"submit",disabled:!f,children:[i&&e.jsx(A,{className:"size-4 animate-spin"}),"Save changes"]})]})]})})}function ge({agency:t,open:s,isPending:i,onClose:o,onSubmit:a}){const[r,u]=h.useState(""),[n,x]=h.useState("");h.useEffect(()=>{s&&(u(""),x(t.billing?(100-Number(t.billing.cp_commission_split_pct)).toFixed(2):"100.00"))},[t,s]);const f=r.trim().length>0&&Number(r)>0&&!i;return e.jsx(w,{isOpen:s,onClose:o,title:`Convert ${t.name} to flat fee`,subtitle:"The agency signs the flat-fee order form before the next charge",maxWidth:480,fitContent:!0,children:e.jsxs("form",{className:"space-y-6 px-8 pb-8 pt-2",onSubmit:c=>{c.preventDefault(),f&&a({flat_monthly_price:r.trim(),...n.trim().length>0?{cp_commission_split_pct:(100-Number(n)).toFixed(2)}:{}})},children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-convert-price`,children:"Flat monthly fee"}),e.jsx(p,{id:`${t.id}-convert-price`,inputMode:"decimal",value:r,onChange:c=>u(c.target.value),disabled:i,autoFocus:!0})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-convert-split`,children:"Agency commission %"}),e.jsx(p,{id:`${t.id}-convert-split`,inputMode:"decimal",value:n,onChange:c=>x(c.target.value),disabled:i})]}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(v,{type:"button",variant:"outline",onClick:o,children:"Cancel"}),e.jsx(v,{type:"submit",disabled:!f,children:"Convert"})]})]})})}function ve({agency:t,open:s,isPending:i,onClose:o,onConfirm:a}){const[r,u]=h.useState("");h.useEffect(()=>{s||u("")},[s]);const n=r==="delete"&&!i;return e.jsx(w,{isOpen:s,onClose:o,title:`Delete ${t.name}`,subtitle:"This permanently removes the agency and its onboarding records",maxWidth:520,fitContent:!0,children:e.jsxs("div",{className:"space-y-5 px-8 pb-8 pt-2",children:[e.jsxs("div",{className:"rounded-md border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700",children:["This is permanent. Type ",e.jsx("span",{className:"font-semibold",children:"delete"})," ","to enable the delete button."]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:`${t.id}-delete-confirm`,children:"Confirmation"}),e.jsx(p,{id:`${t.id}-delete-confirm`,value:r,onChange:x=>u(x.target.value),disabled:i,placeholder:"delete"})]}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(v,{type:"button",variant:"outline",onClick:o,disabled:i,children:"Cancel"}),e.jsxs(v,{type:"button",variant:"destructive",disabled:!n,onClick:a,children:[i&&e.jsx(A,{className:"size-4 animate-spin"}),"Delete agency"]})]})]})})}const je=h.memo(function({agencies:s,updatingAgencyId:i,deletingAgencyId:o,onUpdate:a,onDelete:r,onConvertPilot:u}){return s.length===0?e.jsx(V,{children:e.jsx(K,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx("div",{className:"mb-4 rounded-full bg-slate-100 p-4",children:e.jsx(W,{className:"size-8 text-slate-400"})}),e.jsx("h3",{className:"text-lg font-medium",children:"No advisor agencies"}),e.jsx("p",{className:"mt-1 max-w-sm text-sm text-muted-foreground",children:"No advisor agencies exist yet. Agencies appear here once they are created."})]})})}):e.jsx("div",{className:"space-y-6",children:s.map(n=>
1e.jsx(xe,{agency:n,isUpdating:i===n.id,isDeleting:o===n.id,onUpdate:a,onDelete:r,onConvertPilot:u},n.id))})}),L={name:"",adminFirstName:"",adminLastName:"",adminEmail:"",pricingMode:"per_seat",payoutMode:"agency_collect",flatMonthlyPrice:"",pilotFee:"500.00",agencyCommissionPct:"90.00",agentSeatPrice:"50.00",supportSeatPrice:"25.00",advisorSeatCap:5,supportSeatCap:2,pilotConversionCredit:!0,eoElection:"agency_policy",authorizedTerritory:"US"};function be({open:t,onClose:s,onSubmit:i,isPending:o}){const[a,r]=h.useState(L);h.useEffect(()=>{t||r(L)},[t]);const u=a.name.trim().length>0&&a.adminFirstName.trim().length>0&&a.adminLastName.trim().length>0&&a.adminEmail.trim().length>0&&(a.pricingMode!=="flat"||a.flatMonthlyPrice.trim().length>0)&&(a.pricingMode!=="pilot"||a.pilotFee.trim().length>0&&Number(a.pilotFee)>0)&&a.advisorSeatCap>=0&&a.supportSeatCap>=0&&!o;function n(l,b){r(m=>({...m,[l]:b}))}function x(l){r(b=>({...b,pricingMode:l,agencyCommissionPct:l==="per_seat"?"90.00":"100.00",advisorSeatCap:l==="flat"?500:l==="pilot"?10:L.advisorSeatCap,supportSeatCap:l==="flat"?50:l==="pilot"?2:L.supportSeatCap}))}function f(l){l.preventDefault(),u&&i({name:a.name.trim(),admin_first_name:a.adminFirstName.trim(),admin_last_name:a.adminLastName.trim(),admin_email:a.adminEmail.trim(),pricing_mode:a.pricingMode,payout_mode:a.payoutMode,eo_election:a.eoElection,...a.pricingMode==="flat"?{flat_monthly_price:a.flatMonthlyPrice.trim()}:{},...a.pricingMode==="pilot"?{pilot_conversion_credit:a.pilotConversionCredit,pilot_fee:a.pilotFee.trim()}:{},advisor_seat_cap:a.advisorSeatCap,support_seat_cap:a.supportSeatCap,cp_commission_split_pct:(100-Number(a.agencyCommissionPct)).toFixed(2),agent_seat_price:a.agentSeatPrice.trim(),support_seat_price:a.supportSeatPrice.trim(),authorized_territory:a.authorizedTerritory.split(",").map(b=>b.trim().toUpperCase()).filter(Boolean)})}function c(){o||s()}return e.jsx(w,{isOpen:t,onClose:c,title:"Provision Agency",subtitle:"Creates the agency, billing terms, and 72-hour admin onboarding invite",maxWidth:680,fitContent:!0,children:e.jsxs("form",{onSubmit:f,className:"space-y-6 px-8 pb-8 pt-2",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1.5 md:col-span-2",children:[e.jsx(d,{htmlFor:"agency-name",children:"Agency name"}),e.jsx(p,{id:"agency-name",value:a.name,onChange:l=>n("name",l.target.value),disabled:o,autoFocus:!0})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:"admin-first-name",children:"Admin first name"}),e.jsx(p,{id:"admin-first-name",value:a.adminFirstName,onChange:l=>n("adminFirstName",l.target.value),disabled:o})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:"admin-last-name",children:"Admin last name"}),e.jsx(p,{id:"admin-last-name",value:a.adminLastName,onChange:l=>n("adminLastName",l.target.value),disabled:o})]}),e.jsxs("div",{className:"space-y-1.5 md:col-span-2",children:[e.jsx(d,{htmlFor:"admin-email",children:"Admin email"}),e.jsx(p,{id:"admin-email",type:"email",value:a.adminEmail,onChange:l=>n("adminEmail",l.target.value),disabled:o})]})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{id:"pricing-mode-label",children:"Pricing"}),e.jsxs(N,{value:a.pricingMode,onValueChange:l=>x(l),disabled:o,children:[e.jsx(S,{"aria-labelledby":"pricing-mode-label",children:e.jsx(M,{})}),e.jsxs(F,{children:[e.jsx(g,{value:"per_seat",children:"Per-seat"}),e.jsx(g,{value:"flat",children:"Flat fee (unlimited seats)"}),e.jsx(g,{value:"pilot",children:"30-day pilot"})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:"split-pct",children:"Agency commission %"}),e.jsx(p,{id:"split-pct",inputMode:"decimal",value:a.agencyCommissionPct,onChange:l=>n("agencyCommissionPct",l.target.value),disabled:o}),e.jsx("p",{className:"text-xs text-muted-foreground",children:Number(a.agencyCommissionPct)===100?"100% â full commission pass-through, Cruise Pirate keeps 0%.":`Cruise Pirate keeps ${(100-Number(a.agencyCommissionPct)).toFixed(2)}% of base commissions.`})]}),a.pricingMode==="per_seat"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:"advisor-rate",children:"Adv
1isor seat"}),e.jsx(p,{id:"advisor-rate",inputMode:"decimal",value:a.agentSeatPrice,onChange:l=>n("agentSeatPrice",l.target.value),disabled:o})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:"support-rate",children:"Support seat"}),e.jsx(p,{id:"support-rate",inputMode:"decimal",value:a.supportSeatPrice,onChange:l=>n("supportSeatPrice",l.target.value),disabled:o})]})]}),a.pricingMode==="flat"&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:"flat-monthly-fee",children:"Flat monthly fee"}),e.jsx(p,{id:"flat-monthly-fee",inputMode:"decimal",value:a.flatMonthlyPrice,onChange:l=>n("flatMonthlyPrice",l.target.value),disabled:o})]}),a.pricingMode==="pilot"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:"pilot-fee",children:"Pilot fee"}),e.jsx(p,{id:"pilot-fee",inputMode:"decimal",value:a.pilotFee,onChange:l=>n("pilotFee",l.target.value),disabled:o})]}),e.jsxs("div",{className:"space-y-2 rounded-md border border-slate-200 bg-slate-50 px-3 py-2 md:col-span-2",children:[e.jsx("p",{className:"text-sm font-medium",children:"One-time fee · 30-day term starts at activation"}),e.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[e.jsx("input",{type:"checkbox",checked:a.pilotConversionCredit,onChange:l=>n("pilotConversionCredit",l.target.checked),disabled:o}),"Credit the pilot fee on conversion"]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:"advisor-cap",children:a.pricingMode==="flat"?"Advisor ceiling":"Advisor cap"}),e.jsx(p,{id:"advisor-cap",type:"number",min:0,value:a.advisorSeatCap,onChange:l=>n("advisorSeatCap",Number(l.target.value)),disabled:o})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:"support-cap",children:a.pricingMode==="flat"?"Support ceiling":"Support cap"}),e.jsx(p,{id:"support-cap",type:"number",min:0,value:a.supportSeatCap,onChange:l=>n("supportSeatCap",Number(l.target.value)),disabled:o})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{htmlFor:"territory",children:"Territory"}),e.jsx(p,{id:"territory",value:a.authorizedTerritory,onChange:l=>n("authorizedTerritory",l.target.value),disabled:o})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{id:"eo-election-label",children:"E&O election"}),e.jsxs(N,{value:a.eoElection,onValueChange:l=>n("eoElection",l),disabled:o,children:[e.jsx(S,{"aria-labelledby":"eo-election-label",children:e.jsx(M,{})}),e.jsxs(F,{children:[e.jsx(g,{value:"agency_policy",children:"Agency policy"}),e.jsx(g,{value:"per_ic_policies",children:"Per-IC policies"})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(d,{id:"payout-mode-label",children:"Payout mode"}),e.jsxs(N,{value:a.payoutMode,onValueChange:l=>n("payoutMode",l),disabled:o,children:[e.jsx(S,{"aria-labelledby":"payout-mode-label",children:e.jsx(M,{})}),e.jsxs(F,{children:[e.jsx(g,{value:"agency_collect",children:"Agency collects all commissions"}),e.jsxs(g,{value:"direct",disabled:!0,children:["Pay sub-agents directly"," (coming soon)"]})]})]})]})]}),a.pricingMode==="flat"&&e.jsx("p",{className:"text-xs text-muted-foreground",children:"Ceilings are a safety limit, not a billed quantity. The flat fee covers all seats up to the ceilings."}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(v,{type:"button",variant:"outline",onClick:c,disabled:o,children:"Cancel"}),e.jsxs(v,{type:"submit",disabled:!u,children:[o&&e.jsx(A,{className:"size-4 animate-spin"}),"Provision"]})]})]})})}const E={list(t,s){return t.get("/api/admin/advisor-agencies/",void 0,void 0,s)},create(t,s,i){return t.post("/api/admin/advisor-agencies/",s,void 0,i)},update(t,s,i,o){return t.patch(`/api/admin/advisor-agencies/${s}/`,i,void 0,o)},delete(t,s,i){return t.delete(`/api/admin/advisor-agencies/${s}/?confirm=delete`,void 0,i)},convertPilot(t,s,i,o){return t.post(`/api/admin/advisor-agencies/${s}/convert-pilot/`,i,void 0,o)}};function fe(){const t=z();return U({queryKey:T.agencies.list(),queryFn:({signal:s})=>E.list(t,{signal:s}),staleTime:3e4})}function ye(){const t=z(),s=k();return O({mutationFn:i=>E.create(t,i),onSuccess:i=>{C.success(`${i.agency.name} provisioned`),s.invalidateQueries({queryKey:T.agencies.all()})},onError:i=>C.error(`Agency provisioning failed: ${i.message}`)})}function Ce(){const t=z(),s=k();return O({mutationFn:({agencyId:i,payload:o})=>E.update(t,i,o),onSuccess:i=>{C.success(`${i.agency.name} updated`),s.invalidateQueries({queryKey:T.agencies.all()})},onError:i=>C.error(`Agency update failed: ${i.message}`)})}function _e(){const t=z(),s=k();return O({mutationFn:i=>E.delete(t,i),onSuccess:()=>{C.success("Agency deleted"),s.invalidateQueries({queryKey:T.agencies.all()})},onError:i=>C.error(`Agency delete failed: ${i.message}`)})}function Ne(){const t=z(),s=k();return O({mutationFn:({agencyId:i,payload:o})=>E.convertPilot(t,i,o),onSuccess:i=>{C.success(`${i.agency.name} converted to flat fee`),s.invalidateQueries({queryKey:T.agencies.all()})},onError:i=>C.error(`Pilot conversion failed: ${i.message}`)})}function Se(){const[t,s]=h.useState(!1),i=fe(),o=ye(),a=Ce(),r=_e(),u=Ne();return e.jsxs(e.Fragment,{children:[e.jsx(oe,{title:"Advisor Agencies",subtitle:"Provision agencies and view their members",actions:e.jsxs(v,{size:"sm",onClick:()=>s(!0),children:[e.jsx(ne,{className:"size-4"}),"Agency"]}),children:i.isLoading?e.jsxs("div",{className:"flex items-center justify-center gap-2 py-12 text-muted-foreground",children:[e.jsx(A,{className:"size-5 animate-spin"}),"Loading agencies..."]}):i.error?e.jsxs("p",{className:"text-sm text-red-600",children:["Failed to load advisor agencies: ",i.error.message]}):i.data?e.jsx(je,{agencies:i.data.agencies,updatingAgencyId:a.isPending?a.variables?.agencyId:void 0,deletingAgencyId:r.isPending?r.variables:void 0,onUpdate:(n,x)=>a.mutate({agencyId:n,payload:x}),onDelete:n=>r.mutate(n),onConvertPilot:(n,x)=>u.mutate({agencyId:n,payload:x})}):null}),e.jsx(be,{open:t,onClose:()=>s(!1),isPending:o.isPending,onSubmit:n=>{o.mutate(n,{onSuccess:()=>s(!1)})}})]})}function et(){return e.jsx(H,{children:e.jsx(Se,{})})}
1export{et 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.