import{r as $,j as e,i as T,a,I as w,M as je,C as q,s as fe,c as U,e as ge,S as D,B as p,b as ve,T as f,g as be,k as J,f as ye,h as Ce,U as Se}from"./index-D5YLj2UL.js";import{D as Z,a as ee,d as _e,b as se,c as le,e as $e,T as Te,f as Me,g as ze,h as Ie,k as Pe,l as Re,m as ke,i as Ee,j as Oe,n as Ae}from"./Close-eRCqxR-v.js";import{d as De,T as Ue,a as Le,b as E,c as i,e as We,E as we}from"./EmptyState-D4iekmIG.js";import{A as te,G as C,P as qe,C as re}from"./PageHeader-XoX0cOz3.js";import{T as S}from"./TextField-u3avXgBK.js";import{B as b}from"./Button-DwYdzZig.js";import{C as Be,L as Q}from"./Link-JpzXpIh3.js";import{I as Fe}from"./InputAdornment-faOW2dLA.js";var B={},He=T;Object.defineProperty(B,"__esModule",{value:!0});var ne=B.default=void 0,Ve=He($()),Ne=e;ne=B.default=(0,Ve.default)((0,Ne.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 F={},Ge=T;Object.defineProperty(F,"__esModule",{value:!0});var ae=F.default=void 0,Ke=Ge($()),O=e;ae=F.default=(0,Ke.default)((0,O.jsxs)("g",{fillRule:"evenodd",children:[(0,O.jsx)("circle",{cx:"17",cy:"15.5",r:"1.12"}),(0,O.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,O.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 H={},Ye=T;Object.defineProperty(H,"__esModule",{value:!0});var ie=H.default=void 0,Je=Ye($()),A=e;ie=H.default=(0,Je.default)([(0,A.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,A.jsx)("circle",{cx:"9",cy:"13",r:"1"},"1"),(0,A.jsx)("circle",{cx:"15",cy:"13",r:"1"},"2"),(0,A.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 V={},Qe=T;Object.defineProperty(V,"__esModule",{value:!0});var oe=V.default=void 0,Xe=Qe($()),Ze=e;oe=V.default=(0,Xe.default)((0,Ze.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 N={},es=T;Object.defineProperty(N,"__esModule",{value:!0});var ce=N.default=void 0,ss=es($()),ls=e;ce=N.default=(0,ss.default)((0,ls.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 ts=["admin","rep","manager"],X={name:"",email:"",phone:"",role:"rep",pin:""},rs=(l,t)=>t&&!l.includes(t)?[t,...l]:l;function ns({open:l,mode:t,initial:c,onClose:m,onSaved:y}){const u=t==="edit",[r,M]=a.useState(X),[h,z]=a.useState(!1),[g,x]=a.useState(null);a.useEffect(()=>{l&&(M({...X,...c||{}}),x(null))},[l,c]);const d=o=>j=>M(v=>({...v,[o]:j.target.value})),L=async()=>{if(!r.name.trim()){x("Name is required.");return}if(!r.email.trim()){x("Email is required.");return}z(!0),x(null);const o={name:r.name.trim(),email:r.email.trim(),phone:r.phone,role:r.role,...r.pin?{pin:String(r.pin)}:{}};try{u?await fe(U.teamUsers,c.id,o):await ge(U.teamUsers,o),y()}catch(j){x(j.message||"Failed to save user")}finally{z(!1)}};return e.jsxs(Z,{open:l,onClose:h?void 0:m,maxWidth:"sm",fullWidth:!0,children:[e.jsxs(ee,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[u?"Edit Team User":"Add Team User",e.jsx(w,{onClick:m,size:"small",disabled:h,children:e.jsx(_e,{})})]}),e.jsxs(se,{dividers:!0,children:[g&&e.jsx(te,{severity:"error",sx:{mb:2},children:g}),e.jsxs(C,{container:!0,spacing:2,sx:{mt:0},children:[e.jsx(C,{item:!0,xs:12,sm:6,children:e.jsx(S,{fullWidth:!0,size:"small",label:"Name *",value:r.name,onChange:d("name")})}),e.jsx(C,{item:!0,xs:12,sm:6,children:e.jsx(S,{fullWidth:!0,size:"small",label:"Email *",value:r.email,onChange:d("email")})}),e.jsx(C,{item:!0,xs:12,sm:6,children:e.jsx(S,{fullWidth:!0,size:"small",label:"Phone",value:r.phone,onChange:d("phone")})}),e.jsx(C,{item:!0,xs:12,sm:6,children:e.jsx(S,{select:!0,fullWidth:!0,size:"small",label:"Role",value:r.role,onChange:d("role"),children:rs(ts,r.role).map(o=>e.jsx(je,{value:o,children:o},o))})}),e.jsx(C,{item:!0,xs:12,sm:6,children:e.jsx(S,{fullWidth:!0,size:"small",label:"PIN",value:r.pin,onChange:d("pin")})})]})]}),e.jsxs(le,{sx:{px:3,py:2},children:[e.jsx(b,{onClick:m,disabled:h,children:"Cancel"}),e.jsx(b,{variant:"contained",onClick:L,disabled:h,startIcon:h?e.jsx(q,{size:16,color:"inherit"}):null,children:u?"Save Changes":"Create User"})]})]})}function as(l){const t=l.payload||{};return{id:l.id,name:t.name||"—",email:t.email||"",phone:t.phone||"",role:t.role||"unknown",pin:t.pin||""}}const de=l=>String(l||"").replace(/[_-]+/g," ").replace(/\b\w/g,t=>t.toUpperCase()),is={admin:{color:"primary",icon:ae},manager:{color:"success",icon:oe},rep:{color:"info",icon:Ae},support:{color:"warning",icon:ie}},ue=l=>is[String(l||"").toLowerCase()]||{color:"secondary",icon:ce};function os({name:l,email:t,role:c}){const{color:m,icon:y}=ue(c),u=t?t.split("@")[0]:"";return e.jsxs(D,{direction:"row",spacing:1.5,alignItems:"center",children:[e.jsxs(p,{sx:{position:"relative",display:"inline-flex"},children:[e.jsx(Se,{name:l,size:40,sx:{border:"2px solid",borderColor:`${m}.lighter`}}),e.jsx(p,{sx:{position:"absolute",right:-3,bottom:-3,width:18,height:18,borderRadius:"50%",bgcolor:`${m}.main`,color:"#fff",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"2px solid #fff"},children:e.jsx(y,{sx:{fontSize:11}})})]}),e.jsxs(p,{sx:{minWidth:0},children:[e.jsx(f,{variant:"body2",sx:{fontWeight:600,color:"grey.800",lineHeight:1.25},children:l}),u&&e.jsxs(f,{variant:"caption",color:"text.secondary",children:["@",u]})]})]})}function cs({role:l}){const{color:t,icon:c}=ue(l);return e.jsx(re,{size:"small",icon:e.jsx(c,{sx:{fontSize:15,ml:.5}}),label:de(l),sx:{fontWeight:600,bgcolor:`${t==="secondary"?"grey.100":`${t}.lighter`}`,color:`${t==="secondary"?"grey.700":`${t}.dark`}`,"& .MuiChip-icon":{color:"inherit"}}})}function gs(){var Y;const[l,t]=a.useState([]),[c,m]=a.useState(!0),[y,u]=a.useState(null),[r,M]=a.useState(0),[h,z]=a.useState(""),[g,x]=a.useState(0),[d,L]=a.useState(10),[o,j]=a.useState({open:!1,mode:"add",initial:null}),[v,I]=a.useState(null),[P,G]=a.useState(!1),_=()=>{m(!0),u(null),ye(U.teamUsers).then(s=>t(s.map(as))).catch(s=>u(s.message||"Failed to load team users")).finally(()=>m(!1))};a.useEffect(()=>{_()},[]);const R=a.useMemo(()=>{const s=[];return l.forEach(n=>{s.includes(n.role)||s.push(n.role)}),[{key:"all",label:"All"},...s.map(n=>({key:n,label:de(n)}))]},[l]),W=((Y=R[Math.min(r,R.length-1)])==null?void 0:Y.key)||"all",he=a.useMemo(()=>{const s={all:l.length};return l.forEach(n=>{s[n.role]=(s[n.role]||0)+1}),s},[l]),k=a.useMemo(()=>l.filter(s=>{const n=W==="all"||s.role===W,pe=!h||[s.name,s.email,s.phone,s.role].join(" ").toLowerCase().includes(h.toLowerCase());return n&&pe}),[l,W,h]),K=k.slice(g*d,g*d+d),xe=()=>{j({open:!1,mode:"add",initial:null}),_()},me=async()=>{G(!0);try{await Ce(U.teamUsers,v.id),I(null),_()}catch(s){u(s.message||"Failed to delete user")}finally{G(!1)}};return e.jsxs(e.Fragment,{children:[e.jsx(qe,{title:"App Users",breadcrumbs:[{label:"App Users"}],action:e.jsxs(D,{direction:"row",spacing:1.5,children:[e.jsx(b,{variant:"outlined",startIcon:e.jsx(De,{}),onClick:_,disabled:c,children:"Refresh"}),e.jsx(b,{variant:"contained",startIcon:e.jsx($e,{}),onClick:()=>j({open:!0,mode:"add",initial:null}),children:"Add User"})]})}),e.jsxs(Be,{sx:{overflow:"hidden"},children:[e.jsxs(p,{sx:{px: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(ve,{fontSize:"small"})}),e.jsxs(p,{children:[e.jsx(f,{variant:"subtitle1",sx:{fontWeight:700,color:"grey.800",lineHeight:1.2},children:"App Users Directory"}),e.jsx(f,{variant:"caption",color:"text.secondary",children:"Manage console members, roles and access"})]})]}),e.jsxs(D,{direction:{xs:"column",md:"row"},spacing:1.5,sx:{p:2},alignItems:{md:"center"},children:[e.jsx(S,{size:"small",placeholder:"Search by name, email, phone…",value:h,onChange:s=>{z(s.target.value),x(0)},sx:{minWidth:300},InputProps:{startAdornment:e.jsx(Fe,{position:"start",children:e.jsx(be,{fontSize:"small"})})}}),e.jsx(p,{sx:{flexGrow:1}}),!c&&e.jsxs(D,{direction:"row",spacing:1,alignItems:"center",children:[e.jsxs(f,{variant:"body2",color:"text.secondary",children:[k.length," ",k.length===1?"user":"users"]}),e.jsx(re,{size:"small",label:"live · doormile_auth",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(Te,{value:Math.min(r,R.length-1),onChange:(s,n)=>{M(n),x(0)},variant:"scrollable",scrollButtons:"auto",children:R.map((s,n)=>e.jsx(Me,{label:e.jsx(ze,{label:s.label,count:he[s.key]||0,active:r===n})},s.key))})}),y&&e.jsx(te,{severity:"error",sx:{m:2},action:e.jsx(b,{color:"inherit",size:"small",onClick:_,children:"Retry"}),children:y}),e.jsx(Ie,{children:e.jsxs(Ue,{sx:{minWidth:800},children:[e.jsx(Le,{children:e.jsxs(E,{sx:{"& th":{bgcolor:"grey.50",fontWeight:700,color:"grey.700",textTransform:"uppercase",fontSize:"0.72rem",letterSpacing:.4}},children:[e.jsx(i,{sx:{width:64},children:"S.No"}),e.jsx(i,{children:"User"}),e.jsx(i,{children:"Email"}),e.jsx(i,{children:"Phone"}),e.jsx(i,{children:"Role"}),e.jsx(i,{align:"right",children:"Actions"})]})}),e.jsx(We,{children:c?e.jsx(E,{children:e.jsx(i,{colSpan:6,sx:{border:"none"},children:e.jsx(p,{sx:{display:"flex",justifyContent:"center",py:6},children:e.jsx(q,{})})})}):K.length===0?e.jsx(E,{children:e.jsx(i,{colSpan:6,sx:{border:"none"},children:e.jsx(we,{title:"No team users found",caption:"Try a different role or search term, or add a user."})})}):K.map((s,n)=>e.jsxs(E,{hover:!0,children:[e.jsx(i,{children:e.jsx(f,{variant:"body2",color:"text.secondary",children:g*d+n+1})}),e.jsx(i,{children:e.jsx(os,{name:s.name,email:s.email,role:s.role})}),e.jsx(i,{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(ne,{sx:{fontSize:15,color:"grey.400"}}),s.email]}):e.jsx(f,{variant:"body2",color:"text.disabled",children:"—"})}),e.jsx(i,{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(Pe,{sx:{fontSize:15,color:"grey.400"}}),s.phone]}):e.jsx(f,{variant:"body2",color:"text.disabled",children:"—"})}),e.jsx(i,{children:e.jsx(cs,{role:s.role})}),e.jsxs(i,{align:"right",children:[e.jsx(J,{title:"Edit",children:e.jsx(w,{size:"small",onClick:()=>j({open:!0,mode:"edit",initial:s}),children:e.jsx(Re,{fontSize:"small"})})}),e.jsx(J,{title:"Delete",children:e.jsx(w,{size:"small",color:"error",onClick:()=>I(s),children:e.jsx(ke,{fontSize:"small"})})})]})]},s.id))})]})}),e.jsx(Ee,{component:"div",count:k.length,page:g,onPageChange:(s,n)=>x(n),rowsPerPage:d,onRowsPerPageChange:s=>{L(+s.target.value),x(0)},rowsPerPageOptions:[5,10,25]})]}),e.jsx(ns,{open:o.open,mode:o.mode,initial:o.initial,onClose:()=>j({open:!1,mode:"add",initial:null}),onSaved:xe}),e.jsxs(Z,{open:!!v,onClose:P?void 0:()=>I(null),children:[e.jsx(ee,{children:"Delete user?"}),e.jsx(se,{children:e.jsxs(Oe,{children:["This will permanently remove ",e.jsx("strong",{children:v==null?void 0:v.name})," from the doormile_auth collection. This cannot be undone."]})}),e.jsxs(le,{sx:{px:3,py:2},children:[e.jsx(b,{onClick:()=>I(null),disabled:P,children:"Cancel"}),e.jsx(b,{color:"error",variant:"contained",onClick:me,disabled:P,startIcon:P?e.jsx(q,{size:16,color:"inherit"}):null,children:"Delete"})]})]})]})}export{gs as default};