1import{u as f,c as h,r as p,j as e,B as b,a5 as w,L as o,h as y,d as k,R as L,b as C}from"./index-CudHG6B4.js";import{S}from"./skeleton-BegiI0pz.js";import{h as O,j as A,k as R}from"./InstitutionRegister-CdUSyHyq.js";import{S as d}from"./shield-check-ic92rXB7.js";import{T as u}from"./triangle-alert-BA2tGhup.js";import{A as x}from"./arrow-up-right-BXOTh62-.js";import{C as g}from"./clock-3-D4RumAKQ.js";import{C as q}from"./circle-check-CTosiqnS.js";import"./alert-kp6gCZ70.js";import"./label-B2onvOiF.js";import"./useMutation-CBAYgnG2.js";import"./input-kx1YXBs7.js";import"./badge-CMf0SrHQ.js";import"./card-5b9UOcPu.js";import"./index-C1iJF-SR.js";import"./chevron-up-qSRaMRim.js";import"./check-D8BjNWtW.js";import"./building-2-CMfa6c9V.js";import"./users-DX1W4CCh.js";const E=["admin","credit","treasury"];function l(t){return E.includes(t)}const j={admin:"Administration",credit:"Credit operations",treasury:"Treasury operations"},T=[{href:"/operations",label:"Operations"},{href:"/admin",label:"Admin",roles:["admin"]},{href:"/credit",label:"Credit",roles:["admin","credit"]},{href:"/treasury",label:"Treasury",roles:["admin","treasury"]}];function _(){const[t]=f(),{user:s}=h(),[r,a]=p.useState(!1),c=l(s==null?void 0:s.role)?s.role:"admin",N=T.filter(n=>!n.roles||n.roles.includes(c)),m=(n=!1)=>N.map(({href:i,label:v})=>e.jsx(o,{href:i,onClick:n?()=>a(!1):void 0,className:y("rounded-md px-3 py-2 text-sm font-medium transition-colors",t===i||i!=="/operations"&&t.startsWith(`${i}/`)?"bg-[#dcebe6] text-[#174d42]":"text-[#52635f] hover:bg-[#edf3f0] hover:text-[#173b35]"),children:v},i));return e.jsx("header",{className:"border-b border-[#d9e4df] bg-[#f8fbf9]",children:e.jsxs("div",{className:"mx-auto flex h-[72px] max-w-[1440px] items-center justify-between px-4 sm:px-8",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs(O,{open:r,onOpenChange:a,children:[e.jsx(A,{asChild:!0,children:e.jsx(b,{variant:"ghost",size:"icon",className:"lg:hidden","aria-label":"Open staff navigation",children:e.jsx(w,{className:"h-5 w-5"})})}),e.jsx(R,{side:"left",className:"w-[280px] bg-[#f8fbf9]",children:e.jsxs("div",{className:"mt-8 flex flex-col gap-2",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-2 px-3 text-[#174d42]",children:[e.jsx(d,{className:"h-5 w-5"}),e.jsx("span",{className:"font-semibold",children:"Land Ledger"})]}),m(!0)]})})]}),e.jsxs(o,{href:"/operations",className:"flex items-center gap-3 text-[#173b35]",children:[e.jsx("span",{className:"grid h-9 w-9 place-items-center rounded-lg bg-[#174d42] text-[#f8fbf9]",children:e.jsx(d,{className:"h-5 w-5","aria-hidden":"true"})}),e.jsx("span",{className:"hidden text-sm font-semibold tracking-[0.02em] sm:block",children:"LAND LEDGER"})]}),e.jsx("nav",{className:"hidden items-center gap-1 lg:flex","aria-label":"Staff navigation",children:m()})]}),e.jsxs("div",{className:"text-right",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[#78908a]",children:"Staff console"}),e.jsx("p",{className:"text-sm font-medium text-[#35564e]",children:j[c]})]})]})})}function B({children:t}){const{user:s,isLoading:r}=h(),[,a]=f();return p.useEffect(()=>{!r&&!l(s==null?void 0:s.role)&&a("/")},[r,s==null?void 0:s.role,a]),r?e.jsx("div",{className:"min-h-[100dvh] bg-[#f4f8f6]","aria-busy":"true"}):l(s==null?void 0:s.role)?e.jsxs("div",{className:"min-h-[100dvh] bg-[#f4f8f6] text-[#173b35]",children:[e.jsx(_,{}),e.jsx("main",{children:t})]}):null}function D({priority:t}){const s=t.toLowerCase()==="critical",r=t.toLowerCase()==="attention"||t.toLowerCase()==="high";return e.jsxs("span",{className:`inline-flex items-center gap-1.5 rounded-full border px-2 py-1 text-[11px] font-semibold uppercase tracking-[0.08em] ${s?"border-[#d39b91] bg-[#fff2ef] text-[#8d3328]":r?"border-[#d8bd78] bg-[#fff9e9] text-[#795b16]":"border-[#c7d9d1] bg-[#f1f7f4] text-[#476a5d]"}`,children:[s?e.jsx(u,{className:"h-3.5 w-3.5","aria-hidden":"true"}):r?e.jsx(g,{className:"h-3.5 w-3.5","aria-hidden":"true"}):e.jsx(q,{className:"h-3.5 w-3.5","aria-hidden":"true"}),s?"Critical":r?"Attention":"Routine"]})}function F({date:t}
1){if(!t)return null;const s=new Date(t);return e.jsxs("p",{className:"flex items-center gap-1.5 text-xs text-[#6e837d]",children:[e.jsx(g,{className:"h-3.5 w-3.5","aria-hidden":"true"}),"Updated ",Number.isNaN(s.getTime())?t:s.toLocaleString(void 0,{dateStyle:"medium",timeStyle:"short"})]})}function ae(){const t=k({queryKey:["/api/operations/summary"],queryFn:async()=>(await C("GET","/api/operations/summary")).json()}),s=t.data,r=l(s==null?void 0:s.role)?s.role:void 0;return e.jsx(B,{children:e.jsxs("div",{className:"mx-auto max-w-[1440px] px-4 py-8 sm:px-8 lg:py-12",children:[e.jsxs("section",{className:"mb-10 flex flex-col justify-between gap-6 border-b border-[#d9e4df] pb-8 md:flex-row md:items-end",children:[e.jsxs("div",{children:[e.jsx("p",{className:"mb-3 text-xs font-semibold uppercase tracking-[0.18em] text-[#67847a]",children:"Command center / daily triage"}),e.jsx("h1",{className:"text-3xl font-semibold tracking-[-0.04em] text-[#173b35] sm:text-4xl",children:"Operations overview"}),e.jsx("p",{className:"mt-3 max-w-2xl text-base text-[#5c726b]",children:"A single starting point for work that needs a decision, a review, or a clear owner."})]}),e.jsxs("div",{className:"rounded-lg border border-[#cdded6] bg-[#edf5f1] px-4 py-3 md:min-w-[210px]",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.13em] text-[#67847a]",children:"Signed-in scope"}),e.jsx("p",{className:"mt-1 font-medium text-[#28574b]",children:r?j[r]:"Staff operations"}),e.jsx(F,{date:s==null?void 0:s.generatedAt})]})]}),t.isLoading&&e.jsx("div",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-3","aria-label":"Loading operations queues",children:[1,2,3].map(a=>e.jsx(S,{className:"h-44 rounded-xl bg-[#e3eee9]"},a))}),t.isError&&e.jsxs("div",{className:"rounded-xl border border-[#d9b4ad] bg-[#fff6f4] p-8 text-center",role:"alert",children:[e.jsx(u,{className:"mx-auto mb-3 h-7 w-7 text-[#9a3b2f]"}),e.jsx("h2",{className:"font-semibold text-[#67332d]",children:"Operations summary unavailable"}),e.jsx("p",{className:"mt-1 text-sm text-[#7f5b56]",children:"We could not retrieve the queues for this scope."}),e.jsxs(b,{variant:"outline",className:"mt-5 border-[#c98d83] text-[#803b31]",onClick:()=>t.refetch(),children:[e.jsx(L,{className:"mr-2 h-4 w-4"}),"Retry"]})]}),s&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{"aria-labelledby":"queues-heading",children:[e.jsxs("div",{className:"mb-4 flex items-baseline justify-between",children:[e.jsx("h2",{id:"queues-heading",className:"text-lg font-semibold",children:"Work queues"}),e.jsxs("span",{className:"text-xs text-[#71877f]",children:[s.queues.length," ",s.queues.length===1?"queue":"queues"]})]}),s.queues.length===0?e.jsxs("div",{className:"rounded-xl border border-dashed border-[#bcd1c7] bg-[#f8fbf9] px-6 py-12 text-center",children:[e.jsx(d,{className:"mx-auto mb-3 h-7 w-7 text-[#75958a]"}),e.jsx("p",{className:"font-medium",children:"No open work in your scope"}),e.jsx("p",{className:"mt-1 text-sm text-[#71877f]",children:"New items will appear here when they require staff attention."})]}):e.jsx("div",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-3",children:s.queues.map(a=>e.jsxs(o,{href:a.href,className:"group rounded-xl border border-[#cfdfd7] bg-[#fbfdfc] p-5 shadow-[0_2px_8px_rgba(31,75,61,0.04)] transition-transform hover:-translate-y-0.5 hover:border-[#8daf9f] focus:outline-none focus:ring-2 focus:ring-[#347d68] focus:ring-offset-2",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsx("div",{className:"grid h-10 w-10 place-items-center rounded-lg bg-[#e3f0ea] font-mono text-lg font-semibold text-[#21604d]",children:a.count}),e.jsx(D,{priority:a.priority})]}),e.jsx("h3",{className:"mt-5 font-semibold text-[#24483f]",children:a.title}),e.jsx("p",{className:"mt-1 text-sm leading-6 text-[#6a8078]",children:a.description}),e.jsxs("span",{className:"mt-4 inline-flex items-center text-sm font-semibold text-[#28705a]",children:["Open queue ",e.jsx(x,{className:"ml-1 h-4 w-4 transition-transform group-hover:translate-x-0.5"})]})]},a.key))})]}),e.jsxs("section",{className:"mt-12","aria-labelledby":"domains-heading",children:[e.jsx("h2",{id:"domains-heading",className:"mb-4 text-lg font-semibold",children:"Operational domains"}),s.domains.length===0?e.jsx("p",{className:"rounded-lg border border-dashed border-[#bcd1c7] p-6 text-sm text-[#71877f]",children:"No domains are available for this scope."}):e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:s.domains.map(a=>e.jsxs(o,{href:a.href,className:"group flex items-center justify-between rounded-lg border border-[#d6e3dd] bg-[#f9fcfa] p-4 hover:border-[#8daf9f] focus:outline-none focus:ring-2 focus:ring-[#347d68]",children:[e.jsxs("span",{children:[e.jsx("span",{className:"block font-medium",children:a.title}),e.jsx("span",{className:"mt-1 block text-sm text-[#71877f]",children:a.description})]}),e.jsx(x,{className:"h-4 w-4 shrink-0 text-[#6e9485] group-hover:text-[#28705a]"})]},a.key))})]})]})]})})}export{ae 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.