1import{a8 as p,V as j,k as v,r as N,j as e,D as b,B as y,L as w,A as k,z as C,y as E,a2 as q,a3 as B,C as o,e as D,f as L,g as x}from"./index-Be4gAEuA.js";import{B as A}from"./badge-D5_7Q6FE.js";import{i as I}from"./isSameDay-irDm6Qrd.js";function _(){const{data:t}=p(),{allItems:u}=j("owner",!1),l=v();N.useEffect(()=>{const s=setInterval(()=>l.invalidateQueries({queryKey:["work_queue_data"]}),6e4);return()=>clearInterval(s)},[l]);const n=new Date,i=((t==null?void 0:t.shifts)||[]).filter(s=>I(new Date(s.scheduled_start),n)),c=i.filter(s=>!s.caregiver_id&&s.status!=="cancelled"),d=(u||[]).filter(s=>s.urgency===3),m=((t==null?void 0:t.caregivers)||[]).filter(s=>s.status==="new").length,h=((t==null?void 0:t.clients)||[]).filter(s=>s.stage==="inquiry").length,a=({icon:s,label:f,value:g,danger:r})=>e.jsx(o,{className:r?"border-destructive/40":"",children:e.jsxs(x,{className:"flex flex-col items-center gap-1 py-6",children:[e.jsx(s,{className:`h-6 w-6 ${r?"text-destructive":"text-primary"}`}),e.jsx("div",{className:`font-data text-5xl font-bold ${r?"text-destructive":"text-foreground"}`,children:g}),e.jsx("div",{className:"text-xs uppercase tracking-widest text-muted-foreground",children:f})]})});return e.jsx("div",{className:"min-h-screen bg-background p-6",children:e.jsxs("div",{className:"mx-auto max-w-6xl space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold text-foreground",children:"Live ops board"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[b(n,"EEEE, MMMM d")," · refreshes every minute"]})]}),e.jsx(y,{asChild:!0,variant:"outline",size:"sm",className:"gap-2",children:e.jsxs(w,{to:"/dashboard",children:[e.jsx(k,{className:"h-4 w-4"})," Back"]})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4 md:grid-cols-4",children:[e.jsx(a,{icon:C,label:"Unfilled today",value:c.length,danger:c.length>0}),e.jsx(a,{icon:E,label:"Shifts today",value:i.length}),e.jsx(a,{icon:q,label:"New applicants",value:m}),e.jsx(a,{icon:B,label:"New inquiries",value:h})]}),e.jsxs(o,{children:[e.jsx(D,{className:"pb-2",children:e.jsx(L,{className:"text-base",children:"Needs attention now"})}),e.jsx(x,{className:"space-y-2",children:d.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Nothing overdue. The board is green."}):d.slice(0,10).map(s=>e.jsxs("div",{className:"flex items-center gap-3 border-b border-border/50 py-2 last:border-0",children:[e.jsx(A,{variant:"destructive",className:"text-[10px]",children:s.dueLabel}),e.jsx("span",{className:"truncate font-medium text-foreground",children:s.title}),e.jsx("span",{className:"ml-auto hidden truncate text-xs text-muted-foreground sm:block",children:s.context})]},s.key))})]})]})})}export{_ 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.