1import{j as e}from"./vendor-query-DUki8u-D.js";import{e as G,r as f}from"./vendor-react-DHU755GE.js";import{g as I,D as J,a as K,b as Q,d as R,c as W,s as B,o as T,w as E,B as k,A as X,C as Y,E as Z,G as ee}from"./App-DQmYVKnt.js";import{S as ae,a as se,b as ne,c as re,d as te}from"./sheet-IP_txfAa.js";import{supabase as M}from"./client-CNze1gAi.js";import{C as q}from"./ClaimParticipants-Bi3GBsQ9.js";import{a as ie,S as le}from"./claim-constants-F6TZxwZ5.js";import{ClaimConversation as me}from"./ClaimConversation-24gAWsn5.js";import{g as oe,E as y,ao as ce,n as de,aF as ue,v as pe,q as he,B as fe,F as j}from"./vendor-icons-DQUIN5dH.js";import"./vendor-pdf-BQwOdAin.js";import"./error-reporter-CRL-ULrG.js";import"./breadcrumbs-CN3GC8vy.js";import"./vendor-charts-DsctC1NR.js";import"./useTheme-CHHwG8SV.js";import"./vendor-supabase-D2XPrbcR.js";import"./vendor-motion-DoyUfQ58.js";import"./formatDistanceToNowStrict-B0_ltmaX.js";import"./en-US-BqCXNUOZ.js";import"./getRoundingMethod-Cs3-IipQ.js";import"./textarea-B-TTCajr.js";import"./select-DEQ3_uib.js";import"./index-BdQq_4o_.js";import"./index-BFcYZw7s.js";import"./popover-C6o8MEOf.js";function m(d,u){switch(d){case"admin":case"case_manager":return`/command/leads/${u}`;case"partner":return`/partner/leads/${u}`;case"broker":return`/brokers/claims/${u}`;case"funder":return"/funding";case"client":default:return`/client/claims/${u}`}}function xe(d){return`/brokers/apply/${d}`}const ge=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function He({open:d,onOpenChange:u,leadId:i,viewerRole:h,initialCompanyName:N,initialCaseNumber:C}){const U=G(),{roles:o}=I(),[s,$]=f.useState(N||C?{id:i,company_name:N||null,case_number:C||null,status:null,contact_name:null}:null),[P,_]=f.useState(i),[z,S]=f.useState(!0);f.useEffect(()=>{if(!d||!i)return;let a=!1;return(async()=>{S(!0);const p=ge.test(i);let c=null;p&&(c=(await M.from("leads").select("id, company_name, case_number, status, contact_name").eq("id",i).maybeSingle()).data??null),c||(c=(await M.from("leads").select("id, company_name, case_number, status, contact_name").eq("case_number",i).maybeSingle()).data??null),!a&&(c?($(c),_(c.id)):_(i),S(!1))})(),()=>{a=!0}},[d,i]);const L=s!=null&&s.status?ie[s.status]||s.status.replace(/_/g," "):null,F=s!=null&&s.status?le[s.status]:null,n=(s==null?void 0:s.id)||P||i,w=f.useMemo(()=>{const a=new Set;h&&a.add(h),o.includes("admin")&&a.add("admin"),o.includes("case_manager")&&a.add("case_manager"),(o.includes("affiliate")||o.includes("affiliate_staff"))&&a.add("partner"),o.includes("broker")&&a.add("broker"),o.includes("funder")&&a.add("funder"),o.includes("client")&&a.add("client");const p=a.has("admin")||a.has("case_manager"),c=a.has("broker"),x=a.has("partner"),v=a.has("client"),l=[],t=[],O=new Set,r=(V,b)=>{!b||O.has(b.key)||(O.add(b.key),V.push(b))},g=p?{key:"admin",href:m(a.has("case_manager")?"case_manager":"admin",n),label:"Open in Admin",menuLabel:"Admin claim page",icon:oe,variant:"outline"}:null;return c?(r(l,{key:"broker-application",href:xe(n),label:"Open Claim",menuLabel:"Broker application",icon:fe}),r(l,{key:"broker-summary",href:m("broker",n),label:"View Summary",menuLabel:"Broker claim summary",icon:j,variant:"outline"}),r(t,g),x&&r(t,{key:"partner",href:m("partner",n),label:"Open Partner Claim",menuLabel:"Partner claim page",icon:j,variant:"outline"}),v&&r(t,{key:"client",href:m("client",n),label:"Open Client Claim",menuLabel:"Client claim page",icon:j,variant:"outline"}),{primary:l,overflow:t}):x?(r(l,{key:"partner",href:m("partner",n),label:"Open Claim",menuLabel:"Partner claim page",icon:y}),r(t,g),v&&r(t,{key:"client",href:m("client",n),label:"Open Client Claim",menuLabel:"Client claim page",icon:j,variant:"outline"}),{primary:l,overflow:t}):v?(r(l,{key:"client",href:m("client",n),label:"Open Claim",menuLabel:"Client claim page",icon:y}),r(t,g),{primary:l,overflow:t}):(r(l,g??{key:"default",href:m(h,n),label:"Open Claim",menuLabel:"Open claim",icon:y}),{primary:l,overflow:t})},[n,o,h]),H=w.primary.length>0?w.primary:[{key:"fallback",href:m(h,n),label:"Open Claim",menuLabel:"Open claim",icon:y,variant:"default"}],A=w.overflow,D=a=>{u(!1),U(a)};return e.jsx(J,{open:d,onOpenChange:u,children:e.jsxs(K,{className:"max-w-6xl w-[100vw] sm:w-[96vw] p-0 gap-0 h-[100dvh] sm:h-auto sm:max-h-[92vh] flex flex-col overflow-hidden border-border/60 shadow-2xl rounded-none sm:rounded-lg",children:[e.jsxs(Q,{className:"px-3 sm:px-6 py-3 sm:py-4 pr-12 sm:pr-20 border-b border-border/60 bg-gradient-to-r from-primary/[0.04] via-card to-gold/[0.04] relative",children:[e.jsx("div",{className:"absolute inset-x-0 bottom-0 h-px bg-gradient-to-r from-transparent via-primary/20 to-transparent"}),e.jsx(R,{className:"sr-only",children:"Claim conversation for secure messaging, updates, and attachments related to this case."}),e.jsxs("div",{className:"flex items-start justify-between gap-2 sm:gap-4",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs(W,{className:"flex items-center gap-2 sm:gap-2.5 text-sm sm:text-base font-display",children:[e.jsx("span",{className:"inline-flex h-7 w-7 sm:h-8 sm:w-8 items-center justify-center rounded-lg bg-gradient-to-br from-primary to-primary/70 text-primary-foreground shadow-sm ring-1 ring-primary/20 shrink-0",children:e.jsx(ce,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4"})}),e.jsx("span",{className:"truncate bg-gradient-to-r from-foreground to-foreground
1/70 bg-clip-text",children:"Claim Communications"})]}),z&&!s?e.jsxs("div",{className:"mt-2 flex gap-2",children:[e.jsx(B,{className:"h-4 w-40"}),e.jsx(B,{className:"h-4 w-20"})]}):e.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-1.5 sm:gap-2 text-xs sm:text-sm text-muted-foreground",children:[(s==null?void 0:s.company_name)&&e.jsxs("span",{className:"inline-flex items-center gap-1.5 font-semibold text-foreground truncate max-w-[60vw] sm:max-w-none",children:[e.jsx(de,{className:"h-3.5 w-3.5 text-primary shrink-0"}),e.jsx("span",{className:"truncate",children:s.company_name})]}),(s==null?void 0:s.case_number)&&e.jsxs(T,{variant:"outline",className:"gap-1 font-mono text-[10px] bg-background/60",children:[e.jsx(ue,{className:"h-3 w-3"}),s.case_number]}),L&&e.jsx(T,{className:E("text-[10px] capitalize shadow-sm",F),children:L}),(s==null?void 0:s.contact_name)&&e.jsxs("span",{className:"hidden sm:inline truncate text-xs",children:["· ",s.contact_name]})]})]}),e.jsxs("div",{className:"shrink-0 mt-0.5 sm:mt-1 sm:mr-2 flex items-center gap-1.5 sm:gap-2 max-w-full flex-wrap justify-end pr-1 sm:pr-0",children:[e.jsxs(ae,{children:[e.jsx(se,{asChild:!0,children:e.jsx(k,{type:"button",variant:"outline",size:"sm",className:"md:hidden bg-background/80 hover:bg-background shadow-sm h-8 w-8 p-0","aria-label":"View claim participants",children:e.jsx(pe,{className:"h-4 w-4"})})}),e.jsxs(ne,{side:"right",className:"w-[88vw] max-w-sm p-0 flex flex-col",children:[e.jsx(re,{className:"px-4 py-3 border-b border-border/60",children:e.jsx(te,{className:"text-sm",children:"On this claim"})}),e.jsx("div",{className:"flex-1 overflow-hidden p-3",children:e.jsx(q,{leadId:n})})]})]}),H.map(a=>{const p=a.icon;return e.jsxs(k,{type:"button",size:"sm",variant:a.variant??"default",className:E("shadow-sm h-8 px-2.5 sm:px-3 min-w-0",(a.variant??"default")==="default"?"bg-primary text-primary-foreground hover:bg-primary/90":"bg-background/80 hover:bg-background"),onClick:()=>D(a.href),children:[e.jsx(p,{className:"h-3.5 w-3.5 sm:mr-1.5"}),e.jsx("span",{className:"hidden sm:inline",children:a.label})]},a.key)}),A.length>0&&e.jsxs(X,{children:[e.jsx(Y,{asChild:!0,children:e.jsxs(k,{type:"button",variant:"outline",size:"sm",className:"bg-background/80 hover:bg-background shadow-sm h-8 px-2.5",children:[e.jsx("span",{className:"hidden sm:inline",children:"More actions"}),e.jsx(he,{className:"h-3.5 w-3.5 sm:ml-1.5"})]})}),e.jsx(Z,{align:"end",className:"w-52",children:A.map(a=>{const p=a.icon;return e.jsxs(ee,{onSelect:()=>D(a.href),children:[e.jsx(p,{className:"h-3.5 w-3.5 mr-2"}),a.menuLabel]},a.key)})})]})]})]})]}),e.jsxs("div",{className:"flex-1 overflow-hidden p-3 sm:p-4 md:p-5 grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_300px] gap-3 sm:gap-4 min-h-0 bg-gradient-to-b from-muted/20 to-muted/40",children:[e.jsx("div",{className:"min-w-0 overflow-hidden",children:e.jsx(me,{leadId:n,viewerRole:h,maxHeight:"100%"})}),e.jsx("div",{className:"hidden md:block min-h-0",children:e.jsx(q,{leadId:n})})]})]})})}export{He as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.