1import{c as l,r as n,u as m,m as x,j as e,N as p,a as h,B as u,X as f,v as g,w as b}from"./index-Bx5zKZla.js";import{B as v}from"./BrandLogo-EmTXoLyB.js";import{u as j}from"./use-mobile-DZa33Elc.js";import{S as y}from"./shield-BLvebhQc.js";import{A as N}from"./arrow-left-p8HMf10_.js";import{M as k,L as w}from"./menu-neFZWZfC.js";import{U as A}from"./users-oI2vQFmU.js";import{A as M}from"./archive-CLWlz_J1.js";import{M as S}from"./message-square-plus-CZDd2pLb.js";import{C as L}from"./chart-column-Bj6Jz5zT.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const z=l("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** 7 * @license lucide-react v0.462.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const C=l("ScrollText",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]),B=[{title:"Overview",to:"/admin",icon:w,end:!0},{title:"Users",to:"/admin/users",icon:A},{title:"Stored items",to:"/admin/items",icon:M},{title:"Feedback",to:"/admin/feedback",icon:S},{title:"Analytics",to:"/admin/analytics",icon:L},{title:"System",to:"/admin/system",icon:z},{title:"Audit log",to:"/admin/audit-log",icon:C}];function F(){const[r,o]=n.useState(!1),s=j(),{user:t}=m(),c=x(),i=e.jsxs("nav",{className:"flex flex-col gap-0.5 p-3",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 px-2 py-1.5",children:[e.jsx(y,{className:"h-4 w-4 text-primary"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-semibold tracking-wide uppercase text-muted-foreground",children:"Internal"}),e.jsx("p",{className:"text-sm font-bold",children:"Admin"})]})]}),B.map(a=>e.jsxs(p,{to:a.to,end:a.end,onClick:()=>o(!1),className:({isActive:d})=>h("flex items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm transition-colors",d?"bg-primary/10 text-primary font-medium":"text-muted-foreground hover:bg-accent hover:text-foreground"),children:[e.jsx(a.icon,{className:"h-4 w-4 shrink-0"}),a.title]},a.to)),e.jsx("div",{className:"my-3 border-t border-border/60"}),e.jsxs("button",{type:"button",onClick:()=>c("/app"),className:"flex items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-muted-foreground hover:bg-accent hover:text-foreground",children:[e.jsx(N,{className:"h-4 w-4"}),"Back to VaultShelf"]})]});return e.jsxs("div",{className:"min-h-screen bg-[hsl(220,33%,98%)] text-foreground",children:[e.jsxs("header",{className:"sticky top-0 z-40 flex h-12 items-center gap-3 border-b border-border/70 bg-background/90 px-3 backdrop-blur md:px-4",children:[s&&e.jsx(u,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>o(a=>!a),"aria-label":"Toggle admin nav",children:r?e.jsx(f,{className:"h-4 w-4"}):e.jsx(k,{className:"h-4 w-4"})}),e.jsx(v,{size:24}),e.jsx("span",{className:"text-sm font-bold tracking-tight",children:"VaultShelf"}),e.jsx("span",{className:"rounded-md border border-primary/20 bg-primary/8 px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-primary",children:"Admin"}),e.jsx("div",{className:"ml-auto truncate text-xs text-muted-foreground",children:t==null?void 0:t.email})]}),e.jsxs("div",{className:"mx-auto flex w-full max-w-[1600px]",children:[!s&&e.jsx("aside",{className:"sticky top-12 h-[calc(100vh-3rem)] w-56 shrink-0 border-r border-border/60 bg-background/60",children:i}),s&&r&&e.jsx("div",{className:"fixed inset-0 z-50 bg-background/95 pt-12",children:i}),e.jsx("main",{className:"flex min-h-[calc(100vh-3rem)] min-w-0 flex-1 flex-col p-3 sm:p-5 lg:p-6",children:e.jsx(n.Suspense,{fallback:e.jsx(g,{className:"min-h-[calc(100vh-6rem)]"}),children:e.jsx(b,{})})})]})]})}export{F 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.