1import{j as e}from"./vendor-ui-core.DP8knyZn.js";import{r}from"./vendor-react.BBoGJFYM.js";import{a as t,d as i,s as a,t as o,S as n,D as l,K as s,o as d,q as c,r as g,C as p,E as h,F as u,G as b,J as m}from"./index.CdjOtu-m.js";import{A as x,a as f,b as y,c as j,d as v,e as w,f as k,g as S}from"./alert-dialog.DmbxRrbo.js";import{R as C,c as B,e as _,P as T,aN as R,x as z,a$ as E,E as I,f as W,A as M,b4 as F,T as $}from"./vendor-icons.BjAWwE8z.js";import"./vendor-supabase.DS-aP8MZ.js";import"./vendor-ui-forms.CjLBxE3d.js";import"./vendor-utils.BlEnRQrd.js";import"./vendor-ui-display.BT2Z6Vpo.js";import"./vendor-query.CfjDb5WU.js";import"./vendor-media.DY6E_qVO.js";import"./vendor-charts.RWeJ_I16.js";import"./vendor-motion.DCvbjL6b.js";const A={email:"",name:"",password:"",role:"placement_officer"};const D={dark:{pageBg:"none",cardBg:"rgba(255,255,255,0.05)",cardBorder:"rgba(255,255,255,0.09)",cardHover:"rgba(255,255,255,0.09)",cardBlur:"blur(20px) saturate(180%)",cardShadow:"0 4px 24px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.07)",cardHoverShadow:"0 8px 40px rgba(99,102,241,0.20), inset 0 1px 0 rgba(255,255,255,0.10)",labelColor:"rgba(255,255,255,0.92)",descColor:"rgba(255,255,255,0.60)",mutedColor:"rgba(255,255,255,0.45)",inputBg:"rgba(255,255,255,0.07)",inputBorder:"rgba(255,255,255,0.14)",tableTh:"rgba(255,255,255,0.04)",tableRowHover:"rgba(99,102,241,0.06)",successColor:"#34d399",successBg:"rgba(52,211,153,0.10)",successBorder:"rgba(52,211,153,0.22)",dangerColor:"#f87171",dangerBg:"rgba(248,113,113,0.10)",dangerBorder:"rgba(248,113,113,0.25)",refreshBg:"rgba(255,255,255,0.05)",refreshBorder:"rgba(255,255,255,0.12)",refreshText:"rgba(255,255,255,0.50)",skeletonBase:"rgba(255,255,255,0.06)",divider:"rgba(255,255,255,0.08)",cancelBg:"rgba(255,255,255,0.07)",cancelBorder:"rgba(255,255,255,0.12)",dialogBg:"rgba(10,8,30,0.97)",dialogBorder:"rgba(99,102,241,0.18)",titleColor:"rgba(255,255,255,0.95)",subtitleColor:"rgba(255,255,255,0.45)"},light:{pageBg:"none",cardBg:"rgba(255,255,255,0.62)",cardBorder:"rgba(0,0,0,0.06)",cardHover:"rgba(255,255,255,0.82)",cardBlur:"blur(20px) saturate(200%)",cardShadow:"0 4px 20px rgba(0,0,0,0.07), inset 0 1px 0 rgba(255,255,255,0.90)",cardHoverShadow:"0 8px 36px rgba(99,102,241,0.14), inset 0 1px 0 rgba(255,255,255,0.95)",labelColor:"#1e293b",descColor:"rgba(15,23,42,0.65)",mutedColor:"rgba(15,23,42,0.52)",inputBg:"rgba(255,255,255,0.70)",inputBorder:"rgba(0,0,0,0.10)",tableTh:"rgba(99,102,241,0.05)",tableRowHover:"rgba(99,102,241,0.04)",successColor:"#059669",successBg:"rgba(16,185,129,0.08)",successBorder:"rgba(16,185,129,0.22)",dangerColor:"#dc2626",dangerBg:"rgba(239,68,68,0.08)",dangerBorder:"rgba(239,68,68,0.22)",refreshBg:"rgba(0,0,0,0.04)",refreshBorder:"rgba(0,0,0,0.10)",refreshText:"rgba(15,23,42,0.50)",skeletonBase:"rgba(15,23,42,0.06)",divider:"rgba(0,0,0,0.07)",cancelBg:"rgba(0,0,0,0.04)",cancelBorder:"rgba(0,0,0,0.10)",dialogBg:"rgba(255,255,255,0.92)",dialogBorder:"rgba(99,102,241,0.22)",titleColor:"#0f172a",subtitleColor:"rgba(15,23,42,0.50)"}},L="#6366f1",P="linear-gradient(135deg, #4f46e5 0%, #6366f1 50%, #818cf8 100%)",N="rgba(99,102,241,0.28)",O="rgba(99,102,241,0.12)";function H(e){const r=function(e){var r;return(null==(r=e.filter(e=>"admin"===e.role).sort((e,r)=>new Date(e.created_at??0).getTime()-new Date(r.created_at??0).getTime())[0])?void 0:r.id)??null}(e);return e.map(e=>({...e,is_main_admin:e.id===r}))}function q({width:r,height:t,style:i,p:a}){return e.jsx("div",{className:"animate-pulse",style:{width:r??"100%",height:t??14,borderRadius:6,background:a.skeletonBase,...i}})}function Y({label:r,children:t,p:i}){return e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[e.jsx("label",{style:{fontSize:"0.72rem",fontWeight:600,color:i.descColor,letterSpacing:"0.03em"},children:r}),t]})}function J({value:r,onChange:t,type:i="text",placeholder:a,autoComplete:o,p:n,extraStyle:l,disabled:s}){return e.jsx("input",{value:r,onChange:e=>t(e.target.value),type:i,placeholder:a,autoComplete:o,disabled:s,style:{width:"100%",padding:"9px 12px",background:n.inputBg,border:`1px solid ${n.inputBorder}`,borderRadius:9,color:n.labelColor,fontSize:"0.84rem",outline:"none",boxSizing:"border-box",transition:"border-color 150ms",cursor:s?"not-allowed":"text",opacity:s?.55:1,...l},onFocus:e=>{s||(e.currentTarget.style.borderColor="rgba(99,102,241,0.55)")},onBlur:e=>e.currentTarget.style.borderColor=n.inputBorder})}function U({onCancel:r,onConfirm:t,confirmLabel:i,confirming:a,confirmingLabel:o,disabled:n,p:l}){return e.jsxs("div",{style:{display:"flex",gap:8,paddingTop:8,borderTop:`1px solid ${l.divider}`,marginTop:2},children:[e.jsx("button",{type:"button",onClick:r,style:{flex:1,padding:"9px 0",background:l.cancelBg,border:`1px solid ${l.cancelBorder}`,borderRadius:10,color:l.descColor,fontSize:"0.84rem",fontWeight:500,cursor:"pointer"},children:"Cancel"}),e.jsx("button",{onClick:t,disabled:a||n,style:{flex:1,padding:"9px 0",background:n||a?l.cancelBg:P,border:"none",borderRadius:10,color:"#fff",fontSize:"0.84rem",fontWeight:700,cursor:a||n?"not-allowed":"pointer",display:"flex",alignItems:"center",justifyContent:"center",gap:7,opacity:a||n?.5:1,boxShadow:n||a?"none":`0 4px 14px ${N}`,transition:"opacity 200ms"},children:a?e.jsxs(e.Fragment,{children:[e.jsx(C,{style:{width:13,height:13,animation:"spin 1s linear infinite"}})," ",o]}):i})]})}function V({open:t,onOpenChange:i,form:a,onChange:o,onSubmit:n,creating:x,isValid:f,p:y}
1){const[j,v]=r.useState(!1);return e.jsxs(l,{open:t,onOpenChange:i,children:[e.jsx(s,{asChild:!0,children:e.jsxs("button",{style:{display:"inline-flex",alignItems:"center",gap:7,padding:"7px 14px",background:P,border:"none",borderRadius:10,color:"#fff",fontSize:"0.75rem",fontWeight:700,cursor:"pointer",boxShadow:`0 4px 14px ${N}`,letterSpacing:"0.01em"},children:[e.jsx(E,{style:{width:13,height:13}})," Add Member"]})}),e.jsxs(d,{style:{background:y.dialogBg,border:`1.5px solid ${y.dialogBorder}`,borderRadius:18,color:"rgba(255,255,255,0.92)",maxWidth:440,boxShadow:"0 24px 60px rgba(0,0,0,0.65), 0 0 0 1px rgba(99,102,241,0.10)",backdropFilter:"blur(24px) saturate(180%)",WebkitBackdropFilter:"blur(24px) saturate(180%)",overflow:"hidden"},children:[e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:0,left:0,right:0,height:3,background:P,borderRadius:"18px 18px 0 0"}}),e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:3,left:0,right:0,height:"30%",background:"linear-gradient(180deg, rgba(255,255,255,0.06) 0%, transparent 100%)",pointerEvents:"none"}}),e.jsx(c,{style:{paddingTop:8},children:e.jsx(g,{style:{color:"rgba(255,255,255,0.95)",fontSize:"1rem",fontWeight:800,letterSpacing:"-0.01em"},children:"Add Team Member"})}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:14,marginTop:8},children:[e.jsx(Y,{label:"Full Name *",p:y,children:e.jsx(J,{value:a.name,onChange:e=>o({name:e}),placeholder:"Jane Smith",autoComplete:"off",p:y})}),e.jsx(Y,{label:"Email *",p:y,children:e.jsx(J,{value:a.email,onChange:e=>o({email:e}),type:"email",placeholder:"[email protected]",autoComplete:"off",p:y})}),e.jsx(Y,{label:"Password *",p:y,children:e.jsxs("div",{style:{position:"relative"},children:[e.jsx(J,{value:a.password,onChange:e=>o({password:e}),type:j?"text":"password",placeholder:"Min 6 characters",autoComplete:"new-password",p:y,extraStyle:{paddingRight:40}}),e.jsx("button",{type:"button","aria-label":j?"Hide password":"Show password",onClick:()=>v(e=>!e),style:{position:"absolute",right:11,top:"50%",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",color:"rgba(255,255,255,0.40)",display:"flex",alignItems:"center"},children:j?e.jsx(I,{style:{width:15,height:15}}):e.jsx(W,{style:{width:15,height:15}})})]})}),e.jsx(Y,{label:"Role *",p:y,children:e.jsxs(p,{value:a.role,onValueChange:e=>o({role:e}),children:[e.jsx(h,{style:{background:"rgba(255,255,255,0.07)",border:"1px solid rgba(255,255,255,0.14)",color:"rgba(255,255,255,0.92)",borderRadius:9,fontSize:"0.84rem"},children:e.jsx(u,{})}),e.jsxs(b,{style:{background:y.dialogBg,border:`1px solid ${y.dialogBorder}`,color:"rgba(255,255,255,0.92)"},children:[e.jsx(m,{value:"admin",children:"Admin"}),e.jsx(m,{value:"placement_officer",children:"Placement Officer"})]})]})}),e.jsx(U,{onCancel:()=>i(!1),onConfirm:n,confirmLabel:"Add Member",confirming:x,confirmingLabel:"Addingâ¦",disabled:!f,p:y})]})]})]})}function X({member:t,form:i,onChange:a,onSubmit:o,onClose:n,saving:s,p:x}){const[f,y]=r.useState(!1);return e.jsx(l,{open:!!t,onOpenChange:e=>{e||n()},children:e.jsxs(d,{style:{background:x.dialogBg,border:`1.5px solid ${x.dialogBorder}`,borderRadius:18,color:"rgba(255,255,255,0.92)",maxWidth:440,boxShadow:"0 24px 60px rgba(0,0,0,0.65), 0 0 0 1px rgba(99,102,241,0.10)",backdropFilter:"blur(24px) saturate(180%)",WebkitBackdropFilter:"blur(24px) saturate(180%)",overflow:"hidden"},children:[e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:0,left:0,right:0,height:3,background:P,borderRadius:"18px 18px 0 0"}}),e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:3,left:0,right:0,height:"30%",background:"linear-gradient(180deg, rgba(255,255,255,0.06) 0%, transparent 100%)",pointerEvents:"none"}}),e.jsx(c,{style:{paddingTop:8},children:e.jsx(g,{style:{color:"rgba(255,255,255,0.95)",fontSize:"1rem",fontWeight:800,letterSpacing:"-0.01em"},children:"Edit Team Member"})}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:14,marginTop:8},children:[e.jsx(Y,{label:"Full Name",p:x,children:e.jsx(J,{value:i.name,onChange:e=>a({name:e}),placeholder:"Member name",p:x})}),e.jsx(Y,{label:"Email",p:x,children:e.jsx(J,{value:i.email,onChange:()=>{},type:"email",p:x,disabled:!0})}),e.jsx(Y,{label:"New Password (optional)",p:x,children:e.jsxs("div",{style:{position:"relative"},children:[e.jsx(J,{value:i.newPassword,onChange:e=>a({newPassword:e}),type:f?"text":"password",placeholder:"Leave blank to keep current",autoComplete:"new-password",p:x,extraStyle:{paddingRight:40}}),e.jsx("button",{type:"button","aria-label":f?"Hide password":"Show password",onClick:()=>y(e=>!e),style:{position:"absolute",right:11,top:"50%",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",color:"rgba(255,255,255,0.40)",display:"flex",alignItems:"center"},children:f?e.jsx(I,{style:{width:15,height:15}}):e.jsx(W,{style:{width:15,height:15}})})]})}),e.jsx(Y,{label:"Role",p:x,children:e.jsxs(p,{value:i.role,onValueChange:e=>a({role:e}),children:[e.jsx(h,{style:{background:"rgba(255,255,255,0.07)",border:"1px solid rgba(255,255,255,0.14)",color:"rgba(255,255,255,0.92)",borderRadius:9,fontSize:"0.84rem"},children:e.jsx(u,{})}),e.jsxs(b,{style:{background:x.dialogBg,border:`1px solid ${x.dialogBorder}`,color:"rgba(255,255,255,0.92)"},children:[e.jsx(m,{value:"admin",children:"Admin"}),e.jsx(m,{value:"placement_officer",children:"Placement Officer"})]})]})}
1),e.jsx(U,{onCancel:n,onConfirm:o,confirmLabel:"Save Changes",confirming:s,confirmingLabel:"Savingâ¦",p:x})]})]})})}function Z({member:t,isAdmin:i,isDeleting:a,onEdit:o,onDelete:n,p:l}){const s="active"===t.status,[d,c]=r.useState(!1);return e.jsxs("div",{onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),style:{background:d?l.cardHover:l.cardBg,backdropFilter:l.cardBlur,WebkitBackdropFilter:l.cardBlur,border:`1px solid ${d?"rgba(99,102,241,0.25)":l.cardBorder}`,borderRadius:18,padding:"1rem",display:"flex",flexDirection:"column",gap:12,position:"relative",overflow:"hidden",boxShadow:d?l.cardHoverShadow:l.cardShadow,transition:"all 0.28s cubic-bezier(.4,0,.2,1)",transform:d?"translateY(-2px)":"translateY(0)"},children:[e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:0,left:0,right:0,height:3,background:s?P:"rgba(255,255,255,0.12)",borderRadius:"18px 18px 0 0",opacity:d?1:.8,transition:"opacity 0.28s"}}),e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:3,left:0,right:0,height:"35%",background:"linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 100%)",pointerEvents:"none"}}),e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[e.jsx("div",{style:{width:36,height:36,borderRadius:"50%",background:O,border:"1px solid rgba(99,102,241,0.28)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,fontSize:"0.72rem",fontWeight:700,color:"#818cf8",boxShadow:`0 2px 8px ${N}`},children:(g=t.full_name,g?g.split(" ").map(e=>e[0]).slice(0,2).join("").toUpperCase():"?")}),e.jsxs("div",{style:{flex:1,minWidth:0},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:5},children:[t.is_main_admin&&e.jsx(M,{style:{width:12,height:12,color:L,flexShrink:0}}),e.jsx("p",{style:{fontSize:"0.84rem",fontWeight:600,color:l.labelColor,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",margin:0},children:t.full_name??"Unnamed User"})]}),e.jsx("p",{style:{fontSize:"0.7rem",color:l.mutedColor,marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.email??"â"})]}),i&&!t.is_main_admin&&e.jsxs("div",{style:{display:"flex",gap:6,flexShrink:0},children:[e.jsx("button",{onClick:o,style:{width:28,height:28,borderRadius:8,background:"rgba(99,102,241,0.10)",border:"1px solid rgba(99,102,241,0.22)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"background 0.2s"},onMouseEnter:e=>e.currentTarget.style.background="rgba(99,102,241,0.22)",onMouseLeave:e=>e.currentTarget.style.background="rgba(99,102,241,0.10)",children:e.jsx(F,{style:{width:12,height:12,color:"#818cf8"}})}),e.jsx("button",{onClick:n,disabled:a,style:{width:28,height:28,borderRadius:8,background:"rgba(239,68,68,0.10)",border:"1px solid rgba(239,68,68,0.22)",cursor:a?"not-allowed":"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:a?e.jsx(C,{style:{width:12,height:12,color:"#f87171",animation:"spin 1s linear infinite"}}):e.jsx($,{style:{width:12,height:12,color:"#f87171"}})})]}),i&&t.is_main_admin&&e.jsx("span",{style:{fontSize:"0.65rem",color:l.mutedColor,flexShrink:0,paddingTop:6},children:"Main Admin"})]}),e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:6,paddingLeft:46},children:[e.jsx("span",{style:{fontSize:"0.65rem",fontWeight:600,padding:"3px 10px",borderRadius:99,background:"rgba(99,102,241,0.12)",border:"1px solid rgba(99,102,241,0.25)",color:"#818cf8",textTransform:"capitalize",letterSpacing:"0.01em"},children:t.role.replace("_"," ")}),e.jsx("span",{style:{fontSize:"0.65rem",fontWeight:600,padding:"3px 10px",borderRadius:99,background:s?l.successBg:"rgba(255,255,255,0.06)",border:`1px solid ${s?l.successBorder:l.cardBorder}`,color:s?l.successColor:l.mutedColor},children:t.status??"unknown"})]})]});var g}function G({member:r,isAdmin:t,isDeleting:i,onEdit:a,onDelete:o,p:n}){const l="active"===r.status;return e.jsxs("tr",{style:{borderBottom:`1px solid ${n.divider}`,transition:"background 150ms"},onMouseEnter:e=>e.currentTarget.style.background=n.tableRowHover,onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[e.jsx("td",{style:{padding:"10px 12px"},children:e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[r.is_main_admin&&e.jsx(M,{style:{width:12,height:12,color:L,flexShrink:0}}),e.jsx("span",{style:{fontSize:"0.8rem",fontWeight:600,color:n.labelColor},children:r.full_name??"Unnamed User"})]})}),e.jsx("td",{style:{padding:"10px 12px",fontSize:"0.78rem",color:n.descColor},children:r.email??"â"}),e.jsx("td",{style:{padding:"10px 12px"},children:e.jsx("span",{style:{fontSize:"0.65rem",fontWeight:600,padding:"3px 10px",borderRadius:99,background:"rgba(99,102,241,0.12)",border:"1px solid rgba(99,102,241,0.25)",color:"#818cf8",textTransform:"capitalize",letterSpacing:"0.01em"},children:r.role.replace("_"," ")})}),e.jsx("td",{style:{padding:"10px 12px"},children:e.jsx("span",{style:{fontSize:"0.65rem",fontWeight:600,padding:"3px 10px",borderRadius:99,background:l?n.successBg:"rgba(255,255,255,0.06)",border:`1px solid ${l?n.successBorder:n.cardBorder}`,color:l?n.successColor:n.mutedColor},children:r.status??"unknown"})}),t&&e.jsx("td",{style:{padding:"10px 12px",textAlign:"center"},children:r.is_main_admin?e.jsx("span",{style:{fontSize:"0.65rem",color:n.mutedColor},children:"Main Admin"}):e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:4},children:[e.jsx("button",{onClick:a,style:{width:28,height:28,borderRadius:8,background:"rgba(99,102,241,0.10)",border:"1px solid rgba(99,102,241,0.22)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"background 0.2s"},onMouseEnter:e=>e.currentTarget.style.background="rgba(99,102,241,0.22)",onMouseLeave:e=>e.currentTarget.style.background="rgba(99,102,241,0.10)",children:e.jsx(F,{style:{width:12,height:12,color:"#818cf8"}})}),e.jsx("button",{onClick:o,disabled:i,style:{width:28,height:28,borderRadius:8,background:"rgba(239,68,68,0.10)",border:"1px solid rgba(239,68,68,0.22)",cursor:i?"not-allowed":"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:i?e.jsx(C,{style:{width:12,height:12,color:"#f87171",animation:"spin 1s linear infinite"}}):e.jsx($,{style:{width:12,height:12,color:"#f87171"}})})]})})]})}const Q=()=>{t();const{collegeId:l,role:s}=i(),d=function(){const e=r.useCallback(()=>
1{if("undefined"!=typeof document){const e=document.documentElement.getAttribute("data-theme")??document.documentElement.getAttribute("class")??"";if(e.includes("light"))return"light";if(e.includes("dark"))return"dark"}return"undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"},[]),[t,i]=r.useState(e);return r.useEffect(()=>{var r,t;const a=null==(r=window.matchMedia)?void 0:r.call(window,"(prefers-color-scheme: light)"),o=new MutationObserver(()=>i(e()));o.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme","class"]});const n=()=>i(e());return null==(t=null==a?void 0:a.addEventListener)||t.call(a,"change",n),()=>{var e;o.disconnect(),null==(e=null==a?void 0:a.removeEventListener)||e.call(a,"change",n)}},[e]),t}(),c=D[d],g=function(e=768){const[t,i]=r.useState(()=>"undefined"!=typeof window&&window.innerWidth<e);return r.useEffect(()=>{const r=window.matchMedia(`(max-width: ${e-1}px)`),t=e=>i(e.matches);return i(r.matches),r.addEventListener("change",t),()=>r.removeEventListener("change",t)},[e]),t}(768),[p,h]=r.useState(null),[u,b]=r.useState([]),[m,E]=r.useState(!0),[I,W]=r.useState(!1),[M,F]=r.useState(A),[$,O]=r.useState(!1),[Y,J]=r.useState(null),[U,Q]=r.useState({name:"",role:"",email:"",newPassword:""}),[K,ee]=r.useState(!1),[re,te]=r.useState(null),[ie,ae]=r.useState(!1),oe=r.useCallback(async(e,r)=>{var t;let{data:{session:i}}=await a.auth.getSession();if(!(null==i?void 0:i.access_token)||!i.expires_at||i.expires_at-Date.now()/1e3<60){const{data:e,error:r}=await a.auth.refreshSession();if(r||!(null==(t=e.session)?void 0:t.access_token))throw new Error("Your session expired. Please sign in again.");i=e.session}const o=await fetch(`https://qzsjapqjvrpoctacudud.supabase.co/functions/v1/${e}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i.access_token}`,apikey:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InF6c2phcHFqdnJwb2N0YWN1ZHVkIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTcyMzY5MTAsImV4cCI6MjA3MjgxMjkxMH0.n_hYgnmNEek1O1uzPUFXq1oJEVIpMnkq6acXsYP4SVQ"},body:JSON.stringify(r)}),n=await o.json().catch(()=>({}));if(!o.ok||n.error)throw new Error(n.error||`Edge function error: ${o.status}`);return n},[]),ne=r.useCallback(async()=>{if(l){E(!0);try{const[e,r]=await Promise.all([a.from("colleges").select("name,contact_email,contact_phone,city,state,max_students").eq("id",l).single(),oe("college-create-admin",{action:"list_members",college_id:l})]);if(e.error)throw e.error;h(e.data??null);const t=Array.isArray(null==r?void 0:r.members)?r.members:[];b(H(t))}catch(e){o({title:"Error",description:e instanceof Error?e.message:"Failed to load settings",variant:"destructive"})}finally{E(!1)}}},[l,oe]);r.useEffect(()=>{ne()},[ne]);const le=""!==M.name.trim()&&(se=M.email.trim(),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(se))&&M.password.trim().length>=6&&""!==M.role;var se;const de=e=>{J(e),Q({name:e.full_name??"",role:e.role,email:e.email??"",newPassword:""})};return e.jsxs(e.Fragment,{children:[e.jsx(n,{title:"Settings | College Portal",description:"College settings and team management."}),e.jsx("style",{children:"\n @keyframes spin { to { transform: rotate(360deg); } }\n @keyframes csFadeUp { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }\n .cs-fade-up { animation: csFadeUp 0.45s cubic-bezier(.22,.68,0,1.2) both; }\n .cs-scrollbar::-webkit-scrollbar { height: 4px; }\n .cs-scrollbar::-webkit-scrollbar-thumb { background: rgba(99,102,241,0.25); border-radius: 4px; }\n "}),e.jsx("div",{style:{position:"relative",background:c.pageBg,transition:"background 400ms ease"},children:e.jsxs("div",{className:"cs-fade-up",style:{position:"relative",zIndex:1,padding:"0 0 16px 0",display:"flex",flexDirection:"column",gap:12},children:[e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8},children:[e.jsxs("div",{children:[e.jsx("h1",{style:{fontSize:g?"1.18rem":"clamp(1rem, 2vw, 1.4rem)",fontWeight:800,color:c.labelColor,margin:0,letterSpacing:"-0.02em"},children:"Profile Management"}),e.jsx("p",{style:{fontSize:12,color:c.subtitleColor,marginTop:3,marginBottom:0,letterSpacing:"0.01em"},children:"Manage institution profile and team."})]}),e.jsxs("button",{onClick:ne,disabled:m,"aria-label":"Refresh",style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 13px",background:c.refreshBg,backdropFilter:c.cardBlur,WebkitBackdropFilter:c.cardBlur,border:`1px solid ${c.refreshBorder}`,borderRadius:10,color:c.refreshText,fontSize:11,fontWeight:600,cursor:m?"not-allowed":"pointer",opacity:m?.55:1,flexShrink:0,marginTop:20,transition:"all 0.2s",boxShadow:"0 2px 8px rgba(0,0,0,0.08)",letterSpacing:"0.01em"},onMouseEnter:e=>{e.currentTarget.style.background=c.cardHover,e.currentTarget.style.color=c.labelColor},onMouseLeave:e=>{e.currentTarget.style.background=c.refreshBg,e.currentTarget.style.color=c.refreshText},children:[e.jsx(C,{style:{width:12,height:12,animation:m?"spin 1s linear infinite":"none"}}),"Refresh"]})]}),e.jsxs("div",{style:{background:c.cardBg,backdropFilter:c.cardBlur,WebkitBackdropFilter:c.cardBlur,border:`1px solid ${c.cardBorder}`,borderRadius:18,boxShadow:c.cardShadow,overflow:"hidden",position:"relative"},children:[e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:0,left:0,right:0,height:3,background:P,borderRadius:"18px 18px 0 0"}}),e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:3,left:0,right:0,height:"35%",background:"linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 100%)",pointerEvents:"none"}}),e.jsx("div",{style:{padding:"14px 16px",borderBottom:`1px solid ${c.divider}`,display:"flex",alignItems:"center",gap:8,marginTop:3},children:e.jsx("h2",{style:{fontSize:"0.875rem",fontWeight:700,color:c.labelColor,margin:0,letterSpacing:"-0.01em"},children:"Institution Profile"})}),e.jsx("div",{style:{padding:"16px"},children:m||!p?e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(140px, 1fr))",gap:14},children:[0,1,2,3].map(r=>
1e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:8},children:[e.jsx(q,{width:13,height:13,style:{marginTop:2,flexShrink:0,borderRadius:4},p:c}),e.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[e.jsx(q,{width:"50%",height:10,p:c}),e.jsx(q,{width:"80%",height:14,p:c})]})]},r))}):e.jsx("dl",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(140px, 1fr))",gap:14,margin:0},children:[{icon:e.jsx(B,{style:{width:13,height:13}}),label:"College Name",value:p.name},{icon:e.jsx(_,{style:{width:13,height:13}}),label:"Contact Email",value:p.contact_email},{icon:e.jsx(T,{style:{width:13,height:13}}),label:"Contact Phone",value:p.contact_phone},{icon:e.jsx(R,{style:{width:13,height:13}}),label:"Location",value:[p.city,p.state].filter(Boolean).join(", ")||null}].map(({icon:r,label:t,value:i})=>e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:8},children:[e.jsx("span",{style:{color:L,marginTop:1,flexShrink:0},children:r}),e.jsxs("div",{style:{minWidth:0},children:[e.jsx("dt",{style:{fontSize:10,fontWeight:600,color:c.mutedColor,textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:3},children:t}),e.jsx("dd",{style:{fontSize:"0.8rem",fontWeight:600,color:c.labelColor,margin:0,wordBreak:"break-word"},children:i??"â"})]})]},t))})})]}),e.jsxs("div",{style:{background:c.cardBg,backdropFilter:c.cardBlur,WebkitBackdropFilter:c.cardBlur,border:`1px solid ${c.cardBorder}`,borderRadius:18,boxShadow:c.cardShadow,overflow:"hidden",position:"relative"},children:[e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:0,left:0,right:0,height:3,background:P,borderRadius:"18px 18px 0 0"}}),e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:3,left:0,right:0,height:"35%",background:"linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 100%)",pointerEvents:"none"}}),e.jsxs("div",{style:{padding:"14px 16px",borderBottom:`1px solid ${c.divider}`,display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,marginTop:3},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[e.jsx("div",{style:{width:28,height:28,borderRadius:8,background:"rgba(99,102,241,0.15)",border:"1px solid rgba(99,102,241,0.22)",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:`0 3px 10px ${N}`},children:e.jsx(z,{style:{width:13,height:13,color:"#818cf8"}})}),e.jsxs("div",{children:[e.jsx("h2",{style:{fontSize:"0.875rem",fontWeight:700,color:c.labelColor,margin:0,letterSpacing:"-0.01em"},children:"Team Members"}),e.jsxs("p",{style:{fontSize:"0.68rem",color:c.mutedColor,margin:0},children:[u.length," member",1!==u.length?"s":"",(null==p?void 0:p.max_students)?` / ${p.max_students} max`:""]})]})]}),"college_admin"===s&&e.jsx(V,{open:I,onOpenChange:W,form:M,onChange:e=>F(r=>({...r,...e})),onSubmit:async()=>{if(!l)return;const e=(null==p?void 0:p.max_students)??100;if(u.length>=e)o({title:"Limit reached",description:`Maximum user limit (${e}) reached.`,variant:"destructive"});else{O(!0);try{await oe("college-create-admin",{email:M.email.trim().toLowerCase(),full_name:M.name.trim(),password:M.password,college_id:l,member_role:M.role}),o({title:"Team member added!"}),F(A),W(!1),ne()}catch(r){o({title:"Error",description:r instanceof Error?r.message:"Failed to add member",variant:"destructive"})}finally{O(!1)}}},creating:$,isValid:le,p:c})]}),e.jsx("div",{style:{padding:"14px 16px"},children:m?e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[0,1,2].map(r=>e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px",borderRadius:12,background:c.cardBg,backdropFilter:c.cardBlur,WebkitBackdropFilter:c.cardBlur,border:`1px solid ${c.cardBorder}`,animation:"smPulse 1.5s ease-in-out infinite",animationDelay:.12*r+"s"},children:[e.jsx(q,{width:32,height:32,style:{borderRadius:"50%",flexShrink:0},p:c}),e.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[e.jsx(q,{width:"40%",height:12,p:c}),e.jsx(q,{width:"60%",height:10,p:c})]}),e.jsx(q,{width:60,height:22,style:{borderRadius:99},p:c})]},r))}):0===u.length?e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:8,padding:"32px 0",textAlign:"center"},children:[e.jsx(z,{style:{width:20,height:20,color:c.mutedColor}}),e.jsx("p",{style:{fontSize:"0.78rem",color:c.mutedColor},children:"No team members yet."})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{display:g?"flex":"none",flexDirection:"column",gap:10},children:u.map(r=>e.jsx(Z,{member:r,isAdmin:"college_admin"===s,isDeleting:ie&&(null==re?void 0:re.id)===r.id,onEdit:()=>de(r),onDelete:()=>te(r),p:c},r.id))}),e.jsx("div",{className:"cs-scrollbar",style:{display:g?"none":"block",overflowX:"auto"},children:e.jsxs("table",{style:{width:"100%",fontSize:"0.8rem",borderCollapse:"collapse",minWidth:520},children:[e.jsx("thead",{children:e.jsx("tr",{style:{background:c.tableTh,backdropFilter:"blur(8px)"},children:["Name","Email","Role","Status","college_admin"===s?"Actions":null].filter(
1Boolean).map(r=>e.jsx("th",{style:{padding:"10px 12px",fontWeight:600,fontSize:"0.63rem",letterSpacing:"0.07em",textTransform:"uppercase",color:c.mutedColor,textAlign:"left",whiteSpace:"nowrap",borderBottom:`1px solid ${c.cardBorder}`},children:r},r))})}),e.jsx("tbody",{children:u.map(r=>e.jsx(G,{member:r,isAdmin:"college_admin"===s,isDeleting:ie&&(null==re?void 0:re.id)===r.id,onEdit:()=>de(r),onDelete:()=>te(r),p:c},r.id))})]})})]})})]})]})}),e.jsx(X,{member:Y,form:U,onChange:e=>Q(r=>({...r,...e})),onSubmit:async()=>{if(Y&&l){ee(!0);try{const{error:r}=await a.from("college_members").update({role:U.role}).eq("id",Y.id).eq("college_id",l);if(r)throw r;if(U.name.trim()&&U.name.trim()!==Y.full_name){const{error:e}=await a.from("profiles").update({full_name:U.name.trim()}).eq("user_id",Y.user_id)}if(U.role!==Y.role){const e="admin"===U.role?"college_admin":"placement_officer",{error:r}=await a.from("user_roles").update({role:e}).eq("user_id",Y.user_id)}if(U.newPassword.trim().length>=6)try{await oe("college-create-admin",{action:"update_password",user_id:Y.user_id,new_password:U.newPassword.trim(),college_id:l})}catch(e){o({title:"Warning",description:"Member updated but password change failed.",variant:"destructive"})}o({title:"Member updated"}),J(null),ne()}catch(r){o({title:"Error",description:r instanceof Error?r.message:"Failed to update member",variant:"destructive"})}finally{ee(!1)}}},onClose:()=>J(null),saving:K,p:c}),e.jsx(x,{open:!!re,onOpenChange:e=>{e||te(null)},children:e.jsxs(f,{style:{background:"rgba(10,8,30,0.97)",backdropFilter:"blur(24px) saturate(180%)",WebkitBackdropFilter:"blur(24px) saturate(180%)",border:"1.5px solid rgba(239,68,68,0.30)",borderRadius:18,color:"rgba(255,255,255,0.92)",boxShadow:"0 24px 60px rgba(0,0,0,0.65), inset 0 1px 0 rgba(255,255,255,0.07)",position:"relative",overflow:"hidden"},children:[e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:0,left:0,right:0,height:3,background:"linear-gradient(135deg, #ef4444 0%, #dc2626 100%)",borderRadius:"18px 18px 0 0"}}),e.jsxs(y,{style:{paddingTop:8},children:[e.jsx(j,{style:{color:"rgba(255,255,255,0.95)",fontWeight:800,letterSpacing:"-0.01em"},children:"Remove Team Member"}),e.jsxs(v,{style:{color:"rgba(255,255,255,0.55)"},children:["Are you sure you want to remove"," ",e.jsx("strong",{style:{color:"rgba(255,255,255,0.92)"},children:(null==re?void 0:re.full_name)??"this member"}),"? This action cannot be undone."]})]}),e.jsxs(w,{style:{borderTop:"1px solid rgba(255,255,255,0.08)",paddingTop:12,marginTop:4},children:[e.jsx(k,{disabled:ie,style:{background:"rgba(255,255,255,0.07)",border:"1px solid rgba(255,255,255,0.12)",borderRadius:10,color:"rgba(255,255,255,0.60)",fontSize:"0.84rem",fontWeight:500},children:"Cancel"}),e.jsx(S,{onClick:async()=>{if(re&&l){ae(!0);try{const{error:e,data:r}=await a.from("college_members").delete().eq("id",re.id).eq("college_id",l).select();if(e)throw e;if(!r||0===r.length)throw new Error("Could not delete member. You may not have permission.");o({title:"Member removed"}),ne()}catch(e){o({title:"Error",description:e instanceof Error?e.message:"Failed to remove member",variant:"destructive"})}finally{ae(!1),te(null)}}},disabled:ie,style:{background:"linear-gradient(135deg,#ef4444 0%,#dc2626 100%)",border:"none",borderRadius:10,color:"#fff",fontSize:"0.84rem",fontWeight:700,display:"flex",alignItems:"center",gap:6,boxShadow:"0 4px 14px rgba(239,68,68,0.30)"},children:ie?e.jsxs(e.Fragment,{children:[e.jsx(C,{style:{width:12,height:12,animation:"spin 1s linear infinite"}}),"Removingâ¦"]}):"Remove"})]})]})})]})};export{Q 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.