import{r as M,j as e,i as P,u as oe,a as ce,b as i,I as V,M as $e,C as H,V as Ie,W as Me,t as de,S as h,c as le,B as p,T as j,l as Pe,o as ne,e as Re,h as ke,X as De,D as Ee,U as we}from"./index-D7LVXeIK.js";import{D as xe,a as ue,e as Ae,b as me,c as he,d as Ue}from"./Close-D3HB9j5y.js";import{d as Oe}from"./Refresh-DA6RLQV4.js";import{d as pe}from"./EditOutlined-DS7hq7Cq.js";import{d as je,T as We}from"./DeleteOutline-Dhk3Cr2d.js";import{d as fe,D as Le}from"./PhoneOutlined-Uvrb40S4.js";import{T as qe,d as Be}from"./TabLabelCount-1dep75sI.js";import{A as ge,G as x,P as Fe,C as ve}from"./PageHeader-naLAT9xr.js";import{S as O,E as Ne}from"./EmptyState-B9FcYx_n.js";import{T as z}from"./TextField-Sd_pshci.js";import{B as b}from"./Button-Bqp5awT1.js";import{C as Ve,L as q}from"./Link-BEif5YS2.js";import{I as He}from"./InputAdornment-CMIlL2rx.js";import{T as Ge,a as Qe}from"./Tabs-BUgAhQiL.js";import{T as Ke,a as Xe,b as Ye,c as ie,d as Je}from"./TableRow-jBgitpDf.js";import{T as d}from"./TableCell-DreGbAeW.js";var G={},Ze=P;Object.defineProperty(G,"__esModule",{value:!0});var Q=G.default=void 0,es=Ze(M()),ss=e;Q=G.default=(0,es.default)((0,ss.jsx)("path",{d:"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m0 14H4V8l8 5 8-5zm-8-7L4 6h16z"}),"MailOutline");var K={},rs=P;Object.defineProperty(K,"__esModule",{value:!0});var X=K.default=void 0,ts=rs(M()),W=e;X=K.default=(0,ts.default)((0,W.jsxs)("g",{fillRule:"evenodd",children:[(0,W.jsx)("circle",{cx:"17",cy:"15.5",r:"1.12"}),(0,W.jsx)("path",{d:"M17 17.5c-.73 0-2.19.36-2.24 1.08.5.71 1.32 1.17 2.24 1.17s1.74-.46 2.24-1.17c-.05-.72-1.51-1.08-2.24-1.08"}),(0,W.jsx)("path",{d:"M18 11.09V6.27L10.5 3 3 6.27v4.91c0 4.54 3.2 8.79 7.5 9.82.55-.13 1.08-.32 1.6-.55C13.18 21.99 14.97 23 17 23c3.31 0 6-2.69 6-6 0-2.97-2.16-5.43-5-5.91M11 17c0 .56.08 1.11.23 1.62-.24.11-.48.22-.73.3-3.17-1-5.5-4.24-5.5-7.74v-3.6l5.5-2.4 5.5 2.4v3.51c-2.84.48-5 2.94-5 5.91m6 4c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4"})]}),"AdminPanelSettingsOutlined");var Y={},ls=P;Object.defineProperty(Y,"__esModule",{value:!0});var J=Y.default=void 0,ns=ls(M()),L=e;J=Y.default=(0,ns.default)([(0,L.jsx)("path",{d:"M21 12.22C21 6.73 16.74 3 12 3c-4.69 0-9 3.65-9 9.28-.6.34-1 .98-1 1.72v2c0 1.1.9 2 2 2h1v-6.1c0-3.87 3.13-7 7-7s7 3.13 7 7V19h-8v2h8c1.1 0 2-.9 2-2v-1.22c.59-.31 1-.92 1-1.64v-2.3c0-.7-.41-1.31-1-1.62"},"0"),(0,L.jsx)("circle",{cx:"9",cy:"13",r:"1"},"1"),(0,L.jsx)("circle",{cx:"15",cy:"13",r:"1"},"2"),(0,L.jsx)("path",{d:"M18 11.03C17.52 8.18 15.04 6 12.05 6c-3.03 0-6.29 2.51-6.03 6.45 2.47-1.01 4.33-3.21 4.86-5.89 1.31 2.63 4 4.44 7.12 4.47"},"3")],"SupportAgentOutlined");var Z={},is=P;Object.defineProperty(Z,"__esModule",{value:!0});var ee=Z.default=void 0,as=is(M()),os=e;ee=Z.default=(0,as.default)((0,os.jsx)("path",{d:"M4 18v-.65c0-.34.16-.66.41-.81C6.1 15.53 8.03 15 10 15c.03 0 .05 0 .08.01.1-.7.3-1.37.59-1.98-.22-.02-.44-.03-.67-.03-2.42 0-4.68.67-6.61 1.82-.88.52-1.39 1.5-1.39 2.53V20h9.26c-.42-.6-.75-1.28-.97-2zm6-6c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m10.75 10c0-.22-.03-.42-.06-.63l1.14-1.01-1-1.73-1.45.49c-.32-.27-.68-.48-1.08-.63L18 11h-2l-.3 1.49c-.4.15-.76.36-1.08.63l-1.45-.49-1 1.73 1.14 1.01c-.03.21-.06.41-.06.63s.03.42.06.63l-1.14 1.01 1 1.73 1.45-.49c.32.27.68.48 1.08.63L16 21h2l.3-1.49c.4-.15.76-.36 1.08-.63l1.45.49 1-1.73-1.14-1.01c.03-.21.06-.41.06-.63M17 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2"}),"ManageAccountsOutlined");var se={},cs=P;Object.defineProperty(se,"__esModule",{value:!0});var be=se.default=void 0,ds=cs(M()),xs=e;be=se.default=(0,ds.default)((0,xs.jsx)("path",{d:"M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4"}),"PersonOutlineOutlined");const us=["admin","rep","manager"],ae={name:"",email:"",phone:"",role:"rep",pin:"",password:""},ms=(r,a)=>a&&!r.includes(a)?[a,...r]:r;function hs({open:r,mode:a,initial:n,onClose:f,onSaved:C}){const u=a==="edit",R=oe(),T=ce(R.breakpoints.down("sm")),[t,k]=i.useState(ae),[g,D]=i.useState(!1),[y,m]=i.useState(null);i.useEffect(()=>{r&&(k({...ae,...n||{}}),m(null))},[r,n]);const o=c=>v=>k(_=>({..._,[c]:v.target.value})),B=async()=>{if(!t.name.trim()){m("Name is required.");return}if(!t.email.trim()){m("Email is required.");return}if(!u&&!t.password.trim()){m("Password is required.");return}D(!0),m(null);const c={first_name:t.name.trim(),email:t.email.trim(),phone:t.phone,role:t.role,...t.password?{password:t.password}:{},...t.pin?{pin:String(t.pin)}:{}};try{u?await Ie(n.id,c):await Me(c),C()}catch(v){m(v.message||"Failed to save user")}finally{D(!1)}};return e.jsxs(xe,{open:r,onClose:g?void 0:f,maxWidth:"sm",fullWidth:!0,fullScreen:T,children:[e.jsxs(ue,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[u?"Edit Team User":"Add Team User",e.jsx(V,{onClick:f,size:"small",disabled:g,children:e.jsx(Ae,{})})]}),e.jsxs(me,{dividers:!0,children:[y&&e.jsx(ge,{severity:"error",sx:{mb:2},children:y}),e.jsxs(x,{container:!0,spacing:2,sx:{mt:0},children:[e.jsx(x,{item:!0,xs:12,sm:6,children:e.jsx(z,{fullWidth:!0,size:"small",label:"Name *",value:t.name,onChange:o("name")})}),e.jsx(x,{item:!0,xs:12,sm:6,children:e.jsx(z,{fullWidth:!0,size:"small",label:"Email *",value:t.email,onChange:o("email")})}),e.jsx(x,{item:!0,xs:12,sm:6,children:e.jsx(z,{fullWidth:!0,size:"small",label:"Phone",value:t.phone,onChange:o("phone")})}),e.jsx(x,{item:!0,xs:12,sm:6,children:e.jsx(z,{select:!0,fullWidth:!0,size:"small",label:"Role",value:t.role,onChange:o("role"),children:ms(us,t.role).map(c=>e.jsx($e,{value:c,children:c},c))})}),e.jsx(x,{item:!0,xs:12,sm:6,children:e.jsx(z,{fullWidth:!0,size:"small",label:"PIN",value:t.pin,onChange:o("pin")})}),e.jsx(x,{item:!0,xs:12,sm:6,children:e.jsx(z,{fullWidth:!0,size:"small",type:"password",label:u?"New Password (optional)":"Password *",value:t.password,onChange:o("password")})})]})]}),e.jsxs(he,{sx:{px:3,py:2},children:[e.jsx(b,{onClick:f,disabled:g,children:"Cancel"}),e.jsx(b,{variant:"contained",onClick:B,disabled:g,startIcon:g?e.jsx(H,{size:16,color:"inherit"}):null,children:u?"Save Changes":"Create User"})]})]})}const ps={admin:{color:"primary",icon:X},manager:{color:"success",icon:ee},rep:{color:"info",icon:Be},support:{color:"warning",icon:J}},ye=r=>ps[String(r||"").toLowerCase()]||{color:"secondary",icon:be};function Se({name:r,email:a,role:n}){const{color:f,icon:C}=ye(n),u=a?a.split("@")[0]:"";return e.jsxs(h,{direction:"row",spacing:1.5,alignItems:"center",children:[e.jsxs(p,{sx:{position:"relative",display:"inline-flex"},children:[e.jsx(we,{name:r,size:40,sx:{border:"2px solid",borderColor:`${f}.lighter`}}),e.jsx(p,{sx:{position:"absolute",right:-3,bottom:-3,width:18,height:18,borderRadius:"50%",bgcolor:`${f}.main`,color:"#fff",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"2px solid #fff"},children:e.jsx(C,{sx:{fontSize:11}})})]}),e.jsxs(p,{sx:{minWidth:0},children:[e.jsx(j,{variant:"body2",sx:{fontWeight:600,color:"grey.800",lineHeight:1.25},children:r}),u&&e.jsxs(j,{variant:"caption",color:"text.secondary",children:["@",u]})]})]})}function Ce({role:r}){const{color:a,icon:n}=ye(r);return e.jsx(ve,{size:"small",icon:e.jsx(n,{sx:{fontSize:15,ml:.5}}),label:de(r),sx:{fontWeight:600,bgcolor:`${a==="secondary"?"grey.100":`${a}.lighter`}`,color:`${a==="secondary"?"grey.700":`${a}.dark`}`,"& .MuiChip-icon":{color:"inherit"}}})}function js({row:r,index:a,onEdit:n,onDelete:f}){return e.jsxs(p,{sx:{p:2,borderRadius:3,border:1,borderColor:"divider",bgcolor:"background.paper"},children:[e.jsxs(h,{direction:"row",spacing:1.25,alignItems:"flex-start",children:[e.jsx(p,{sx:{flexGrow:1,minWidth:0},children:e.jsx(Se,{name:r.name,email:r.email,role:r.role})}),e.jsx(Ce,{role:r.role})]}),e.jsxs(h,{spacing:1,sx:{mt:1.75},children:[e.jsxs(h,{direction:"row",spacing:1,alignItems:"center",sx:{minWidth:0},children:[e.jsx(Q,{sx:{fontSize:16,color:"grey.400",flexShrink:0}}),r.email?e.jsx(q,{href:`mailto:${r.email}`,underline:"hover",color:"text.primary",noWrap:!0,sx:{fontSize:"0.8125rem"},children:r.email}):e.jsx(j,{variant:"body2",color:"text.disabled",children:"No email"})]}),e.jsxs(h,{direction:"row",spacing:1,alignItems:"center",children:[e.jsx(fe,{sx:{fontSize:16,color:"grey.400",flexShrink:0}}),r.phone?e.jsx(q,{href:`tel:${r.phone}`,underline:"hover",color:"text.primary",sx:{fontSize:"0.8125rem"},children:r.phone}):e.jsx(j,{variant:"body2",color:"text.disabled",children:"No phone"})]})]}),e.jsx(Ee,{sx:{my:1.5}}),e.jsxs(h,{direction:"row",spacing:1,justifyContent:"space-between",alignItems:"center",children:[e.jsxs(j,{variant:"caption",color:"text.secondary",children:["#",a]}),e.jsxs(h,{direction:"row",spacing:1,children:[e.jsx(b,{size:"small",variant:"outlined",startIcon:e.jsx(pe,{fontSize:"small"}),onClick:()=>n(r),children:"Edit"}),e.jsx(b,{size:"small",variant:"outlined",color:"error",startIcon:e.jsx(je,{fontSize:"small"}),onClick:()=>f(r),children:"Delete"})]})]})]})}function Ds(){var te;const r=oe(),a=ce(r.breakpoints.down("md")),[n,f]=i.useState([]),[C,u]=i.useState(!0),[R,T]=i.useState(null),[t,k]=i.useState(0),[g,D]=i.useState(""),[y,m]=i.useState(0),[o,B]=i.useState(10),[c,v]=i.useState({open:!1,mode:"add",initial:null}),[_,$]=i.useState(null),[E,re]=i.useState(!1),I=()=>{u(!0),T(null),Re().then(s=>f(s.map(ke))).catch(s=>T(s.message||"Failed to load team users")).finally(()=>u(!1))};i.useEffect(()=>{I()},[]);const w=i.useMemo(()=>{const s=[];return n.forEach(l=>{s.includes(l.role)||s.push(l.role)}),[{key:"all",label:"All"},...s.map(l=>({key:l,label:de(l)}))]},[n]),F=((te=w[Math.min(t,w.length-1)])==null?void 0:te.key)||"all",_e=i.useMemo(()=>{const s={all:n.length};return n.forEach(l=>{s[l.role]=(s[l.role]||0)+1}),s},[n]),A=i.useMemo(()=>{const s={admin:0,manager:0,rep:0,support:0};return n.forEach(l=>{const S=String(l.role||"").toLowerCase();S in s&&(s[S]+=1)}),s},[n]),U=i.useMemo(()=>n.filter(s=>{const l=F==="all"||s.role===F,S=!g||[s.name,s.email,s.phone,s.role].join(" ").toLowerCase().includes(g.toLowerCase());return l&&S}),[n,F,g]),N=U.slice(y*o,y*o+o),ze=()=>{v({open:!1,mode:"add",initial:null}),I()},Te=async()=>{re(!0);try{await De(_.id),$(null),I()}catch(s){T(s.message||"Failed to delete user")}finally{re(!1)}};return e.jsxs(e.Fragment,{children:[e.jsx(Fe,{title:"App Users",breadcrumbs:[{label:"App Users"}],action:e.jsxs(h,{direction:"row",spacing:1.5,sx:{width:{xs:"100%",sm:"auto"}},children:[e.jsx(b,{variant:"outlined",startIcon:e.jsx(Oe,{}),onClick:I,disabled:C,sx:{flex:{xs:1,sm:"none"}},children:"Refresh"}),e.jsx(b,{variant:"contained",startIcon:e.jsx(Ue,{}),onClick:()=>v({open:!0,mode:"add",initial:null}),sx:{flex:{xs:1,sm:"none"}},children:"Add User"})]})}),e.jsxs(x,{container:!0,spacing:2.5,sx:{mb:3},children:[e.jsx(x,{item:!0,xs:12,sm:6,lg:3,children:e.jsx(O,{accent:!0,title:"Total Users",value:n.length,icon:le,color:"primary",caption:"All console members"})}),e.jsx(x,{item:!0,xs:12,sm:6,lg:3,children:e.jsx(O,{accent:!0,title:"Admins",value:A.admin,icon:X,color:"primary",caption:"Full access"})}),e.jsx(x,{item:!0,xs:12,sm:6,lg:3,children:e.jsx(O,{accent:!0,title:"Managers",value:A.manager,icon:ee,color:"primary",caption:"Team oversight"})}),e.jsx(x,{item:!0,xs:12,sm:6,lg:3,children:e.jsx(O,{accent:!0,title:"Reps & Support",value:A.rep+A.support,icon:J,color:"primary",caption:"Frontline staff"})})]}),e.jsxs(Ve,{sx:{overflow:"hidden"},children:[e.jsxs(p,{sx:{px:{xs:2,sm:2.5},py:2,borderBottom:1,borderColor:"divider",display:"flex",alignItems:"center",gap:1.5,background:s=>`linear-gradient(90deg, ${s.palette.primary.lighter}66 0%, ${s.palette.background.paper} 70%)`},children:[e.jsx(p,{sx:{width:40,height:40,borderRadius:2,bgcolor:"primary.lighter",color:"primary.main",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:e.jsx(le,{fontSize:"small"})}),e.jsxs(p,{children:[e.jsx(j,{variant:"subtitle1",sx:{fontWeight:700,color:"grey.800",lineHeight:1.2},children:"App Users Directory"}),e.jsx(j,{variant:"caption",color:"text.secondary",children:"Manage console members, roles and access"})]})]}),e.jsxs(h,{direction:{xs:"column",md:"row"},spacing:1.5,sx:{p:2},alignItems:{md:"center"},children:[e.jsx(z,{size:"small",placeholder:"Search by name, email, phone…",value:g,onChange:s=>{D(s.target.value),m(0)},sx:{width:{xs:"100%",md:300}},InputProps:{startAdornment:e.jsx(He,{position:"start",children:e.jsx(Pe,{fontSize:"small"})})}}),e.jsx(p,{sx:{flexGrow:1}}),!C&&e.jsxs(h,{direction:"row",spacing:1,alignItems:"center",children:[e.jsxs(j,{variant:"body2",color:"text.secondary",children:[U.length," ",U.length===1?"user":"users"]}),e.jsx(ve,{size:"small",label:"live · PostgreSQL",sx:{height:22,fontSize:"0.7rem",bgcolor:"success.lighter",color:"success.dark",fontWeight:600}})]})]}),e.jsx(p,{sx:{px:2,borderBottom:1,borderColor:"divider"},children:e.jsx(Ge,{value:Math.min(t,w.length-1),onChange:(s,l)=>{k(l),m(0)},variant:"scrollable",scrollButtons:"auto",children:w.map((s,l)=>e.jsx(Qe,{label:e.jsx(qe,{label:s.label,count:_e[s.key]||0,active:t===l})},s.key))})}),R&&e.jsx(ge,{severity:"error",sx:{m:2},action:e.jsx(b,{color:"inherit",size:"small",onClick:I,children:"Retry"}),children:R}),C?e.jsx(p,{sx:{display:"flex",justifyContent:"center",py:6},children:e.jsx(H,{})}):N.length===0?e.jsx(Ne,{title:"No team users found",caption:"Try a different role or search term, or add a user."}):a?e.jsx(h,{spacing:1.5,sx:{p:2},children:N.map((s,l)=>e.jsx(js,{row:s,index:y*o+l+1,onEdit:S=>v({open:!0,mode:"edit",initial:S}),onDelete:S=>$(S)},s.id))}):e.jsx(Ke,{children:e.jsxs(Xe,{sx:{minWidth:800},children:[e.jsx(Ye,{children:e.jsxs(ie,{sx:{"& th":{bgcolor:"grey.50",fontWeight:700,color:"grey.700",textTransform:"uppercase",fontSize:"0.72rem",letterSpacing:.4}},children:[e.jsx(d,{sx:{width:64},children:"S.No"}),e.jsx(d,{children:"User"}),e.jsx(d,{children:"Email"}),e.jsx(d,{children:"Phone"}),e.jsx(d,{children:"Role"}),e.jsx(d,{align:"right",children:"Actions"})]})}),e.jsx(Je,{children:N.map((s,l)=>e.jsxs(ie,{hover:!0,children:[e.jsx(d,{children:e.jsx(j,{variant:"body2",color:"text.secondary",children:y*o+l+1})}),e.jsx(d,{children:e.jsx(Se,{name:s.name,email:s.email,role:s.role})}),e.jsx(d,{children:s.email?e.jsxs(q,{href:`mailto:${s.email}`,underline:"hover",color:"text.primary",sx:{display:"inline-flex",alignItems:"center",gap:.75,fontSize:"0.8125rem"},children:[e.jsx(Q,{sx:{fontSize:15,color:"grey.400"}}),s.email]}):e.jsx(j,{variant:"body2",color:"text.disabled",children:"—"})}),e.jsx(d,{children:s.phone?e.jsxs(q,{href:`tel:${s.phone}`,underline:"hover",color:"text.primary",sx:{display:"inline-flex",alignItems:"center",gap:.75,fontSize:"0.8125rem"},children:[e.jsx(fe,{sx:{fontSize:15,color:"grey.400"}}),s.phone]}):e.jsx(j,{variant:"body2",color:"text.disabled",children:"—"})}),e.jsx(d,{children:e.jsx(Ce,{role:s.role})}),e.jsxs(d,{align:"right",children:[e.jsx(ne,{title:"Edit",children:e.jsx(V,{size:"small",onClick:()=>v({open:!0,mode:"edit",initial:s}),children:e.jsx(pe,{fontSize:"small"})})}),e.jsx(ne,{title:"Delete",children:e.jsx(V,{size:"small",color:"error",onClick:()=>$(s),children:e.jsx(je,{fontSize:"small"})})})]})]},s.id))})]})}),e.jsx(We,{component:"div",count:U.length,page:y,onPageChange:(s,l)=>m(l),rowsPerPage:o,onRowsPerPageChange:s=>{B(+s.target.value),m(0)},rowsPerPageOptions:[5,10,25]})]}),e.jsx(hs,{open:c.open,mode:c.mode,initial:c.initial,onClose:()=>v({open:!1,mode:"add",initial:null}),onSaved:ze}),e.jsxs(xe,{open:!!_,onClose:E?void 0:()=>$(null),children:[e.jsx(ue,{children:"Delete user?"}),e.jsx(me,{children:e.jsxs(Le,{children:["This will permanently remove ",e.jsx("strong",{children:_==null?void 0:_.name})," from the PostgreSQL database. This cannot be undone."]})}),e.jsxs(he,{sx:{px:3,py:2},children:[e.jsx(b,{onClick:()=>$(null),disabled:E,children:"Cancel"}),e.jsx(b,{color:"error",variant:"contained",onClick:Te,disabled:E,startIcon:E?e.jsx(H,{size:16,color:"inherit"}):null,children:"Delete"})]})]})]})}export{Ds as default};