1import{u as c,r as d,j as e,ax as m,m as i}from"./vendor-react-rek8h2h5.js";import{u as x,a as h}from"./useAdminAuth-B8COym5q.js";import{S as u,N as p,d as g}from"./index-BR7q7R49.js";import"./vendor-Bh18py35.js";function N(){const[,t]=c(),{session:a,loading:n,isAuthenticated:r}=x();if(d.useEffect(()=>{!n&&!r&&t("/admin/login")},[n,r,t]),n)return e.jsx("div",{className:"min-h-screen bg-[#0a0f1e] flex items-center justify-center",children:e.jsx("div",{className:"w-8 h-8 border-2 border-blue-500 border-t-transparent rounded-full animate-spin"})});if(!r)return e.jsx("div",{className:"min-h-screen bg-[#0a0f1e] flex items-center justify-center",children:e.jsx("p",{className:"text-gray-400 text-sm",children:"Redirecting to loginâ¦"})});const o=[{title:"Leads Dashboard",description:"View and manage all inbound project quote requests from the website.",href:"/admin/leads",icon:e.jsx("svg",{className:"w-8 h-8",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z"})})},{title:"Phone Calls",description:"Review call logs and full transcripts from Cookie, the AI phone agent. Mark calls as reviewed or followed up.",href:"/admin/calls",icon:e.jsx("svg",{className:"w-8 h-8",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"})})},{title:"Contractor Applications",description:"Review, approve, or reject contractor bid applications with AI-screened COI documents.",href:"/admin/contractors",icon:e.jsx("svg",{className:"w-8 h-8",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"})})}];async function l(){await h(),t("/admin/login")}return e.jsxs(e.Fragment,{children:[e.jsx(u,{lang:"en",title:"Admin â Pineland Engineering",description:"Internal admin dashboard for Pineland Engineering / Designda Inc.",canonical:"https://pinelandengineering.com/admin",enUrl:"https://pinelandengineering.com/admin",noindex:!0}),e.jsx(p,{}),e.jsx("main",{className:"min-h-screen bg-[#0a0f1e] pt-24 pb-20",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4",children:[e.jsxs("div",{className:"mb-10 flex items-start justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-blue-400 text-xs font-semibold tracking-widest uppercase mb-2",children:"Internal"}),e.jsx("h1",{className:"text-3xl font-bold text-white mb-2",children:"Admin Dashboard"}),e.jsxs("p",{className:"text-gray-400 text-sm",children:["Welcome back, ",e.jsx("span",{className:"text-gray-300 font-medium capitalize",children:a?.username??"Admin"}),". Select a panel below."]})]}),e.jsxs("button",{onClick:l,className:"flex items-center gap-1.5 text-gray-500 hover:text-gray-300 text-xs transition-colors mt-1",children:[e.jsx(m,{className:"w-3.5 h-3.5"}),"Sign out"]})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:o.map(s=>e.jsx(i,{href:s.href,children:e.jsxs("div",{className:"group bg-[#111827] border border-gray-800 hover:border-blue-600 rounded-xl p-6 cursor-pointer transition-all duration-200 hover:shadow-lg hover:shadow-blue-900/20",children:[e.jsx("div",{className:"text-blue-400 mb-4 group-hover:text-blue-300 transition-colors",children:s.icon}),e.jsx("h2",{className:"text-white font-semibold text-lg mb-2 group-hover:text-blue-100 transition-colors",children:s.title}),e.jsx("p",{className:"text-gray-400 text-sm leading-relaxed",children:s.description}),e.jsxs("div",{className:"mt-4 flex items-center gap-1 text-blue-400 text-xs font-medium group-hover:gap-2 transition-all",children:["Open",e.jsx("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})]})},s.href))}),e.jsx("div",{className:"mt-10 text-center",children:e.jsx(i,{href:"/",children:e.jsx("span",{className:"text-gray-600 text-xs hover:text-gray-400 transition-colors cursor-pointer",children:"â Back to site"})})})]})}),e.jsx(g,{})]})}
1export{N 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.