1import{a as C,j as e,B as E,N,F as q,x as I,k as b,q as K,b as Q,C as V,o as X,y as Y,c as R,z as re,v as le,R as W,I as oe,A as de,D as ce}from"./index-DykHQTdy.js";import{a as i}from"./react-ai5N7DV-.js";import{u as D,a as me}from"./resource-DV2F2rUy.js";import{I as ee}from"./InvitationPreview-BO4-bTUj.js";import{M as ue,a as xe}from"./CreateMailbox-C_RI33Nn.js";import{m as se}from"./mail-DEBhs_yW.js";import{S as ae}from"./StaffArea-BzzlJDqG.js";import{T as he,a as U}from"./Table-C6VCsVMr.js";import"./motion-BDgCEaEF.js";function ge({job:a,onChange:f,onClose:r}){var c,A;const[d,t]=i.useState(""),[h,w]=i.useState(""),[g,v]=i.useState(!1),[s,l]=i.useState(null),n=D("onboarding-recovery",C.mailboxes.list),j=a.status==="complete",y=a.status==="needs_review",p=!a.mailbox_id&&!a.request.mailbox_id&&!y&&a.status!=="running";i.useEffect(()=>{if(a.status!=="running")return;const o=window.setInterval(()=>{C.onboarding.get(a.id).then(f).catch(()=>{})},4e3);return()=>clearInterval(o)},[a.id,a.status,f]);async function _(){v(!0),l(null);try{f(await C.onboarding.resume(a.id,{password:d||void 0,mailbox_id:h||void 0})),t("")}catch(o){l(o instanceof Error?o.message:String(o))}finally{v(!1)}}return e.jsxs("div",{className:"space-y-4",children:[e.jsx(E,{tone:j?"success":"warning",children:j?"Account & mailbox ready":a.status==="running"?"Setup in progress":"Setup saved · Action needed"}),e.jsx("h3",{className:"font-display text-xl break-words",children:a.request.work_email}),e.jsxs("p",{className:"text-sm text-fg-muted break-words",children:["Work email for ",a.request.display_name||"this staff member",". Google/sign-in identity: ",a.request.sign_in_email,"."]}),e.jsxs("ol",{className:"space-y-2 text-sm",children:[e.jsxs("li",{children:[a.user_id?"â":"1."," Account and mobile number"]}),e.jsxs("li",{children:[a.mailbox_id?"â":"2."," Work mailbox"]}),e.jsxs("li",{children:[j?"â":"3."," Mailbox access and primary work contact"]})]}),e.jsx(N,{tone:"danger",children:s??a.error}),j?e.jsx(N,{tone:"success",children:"They can use their work mailbox in Mail. Their work email is now used in tutor contact details and lesson records."}):e.jsxs(e.Fragment,{children:[p&&e.jsx(q,{label:"Mailbox password",type:"password",autoComplete:"new-password",value:d,onChange:o=>t(o.target.value),hint:"Enter it again to continue. Passwords are never saved with setup progress."}),y&&e.jsxs("div",{className:"space-y-3",children:[e.jsx(N,{tone:"danger",children:n.error??((c=n.data)==null?void 0:c.error)}),e.jsxs(I,{label:"Created work mailbox",value:h,onChange:o=>w(o.target.value),children:[e.jsx("option",{value:"",children:"Select the matching work address"}),(A=n.data)==null?void 0:A.mailboxes.filter(o=>o.address.toLowerCase()===a.request.work_email.toLowerCase()).map(o=>e.jsx("option",{value:o.resource_id,children:o.address},o.resource_id))]}),e.jsx(b,{type:"button",variant:"secondary",disabled:n.loading,onClick:()=>void n.reload(),children:"Refresh mailboxes"}),e.jsx("p",{className:"text-xs text-fg-muted",children:"Check Hostinger if the address is missing. Include it in your Mail token before resuming."})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(b,{type:"button",disabled:g||y&&!h||p&&!d,onClick:()=>void _(),children:g?"Continuingâ¦":"Resume setup"}),e.jsx(K,{variant:"secondary",to:`${Q}/settings#mail`,children:"Mail settings"})]})]}),e.jsx(b,{type:"button",variant:"secondary",disabled:g,onClick:r,children:j?"Add another staff member":"Back to staff setup"})]})}function fe({roles:a,onSaved:f,onAccountOnly:r}){var z,O,G;const d=D("staff-setup-boxes",C.mailboxes.list),t=D("staff-setup-pending",C.onboarding.pending),[h,w]=i.useState(()=>crypto.randomUUID()),[g,v]=i.useState("tutor"),[s,l]=i.useState(""),[n,j]=i.useState("create"),[y,p]=i.useState(""),[_,c]=i.useState({order_id:"",local_part:"",password:""}),[A,o]=i.useState(!1),[M,$]=i.useState(!1),[S,F]=i.useState(!1),[B,m]=i.useState(null),[T,u]=i.useState(null);function k(x){u(x),x.status==="complete"&&f()}async function te(x){x.preventDefault();const L=new FormData(x.currentTarget);F(!0),m(null);try{const P=await C.onboarding.start({request_id:h,sign_in_email:s,role:g,display_name:String(L.get("display_name")??""),mobile:String(L.get("mobile")??""),...n==="create"?_:{mailbox_id:y}});c(ie=>({...ie,password:""})),k(P),t.reload()}
1catch(P){m(P instanceof Error?P.message:String(P)),t.reload()}finally{F(!1)}}function ne(){u(null),w(crypto.randomUUID()),l(""),c({order_id:"",local_part:"",password:""}),t.reload()}return e.jsxs(V,{children:[e.jsx(X,{eyebrow:"Account · Work email · Access",children:"Add a staff member"}),T?e.jsx(ge,{job:T,onChange:k,onClose:ne}):e.jsxs("div",{className:"space-y-5",children:[!!((z=t.data)!=null&&z.length)&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium",children:"Continue a saved setup"}),t.data.map(x=>e.jsx(b,{type:"button",variant:"secondary",className:"max-w-full truncate",onClick:()=>{c(L=>({...L,password:""})),u(x)},children:x.request.work_email},x.id))]}),e.jsx(N,{tone:"danger",children:B??t.error}),e.jsxs("form",{onSubmit:te,className:"space-y-5","data-guide":"users-invite",children:[e.jsxs(Y,{cols:"sm:grid-cols-2",children:[e.jsx(q,{label:"Full name",name:"display_name",placeholder:"Tutor name",disabled:S}),e.jsx(q,{label:"Mobile number",name:"mobile",type:"tel",placeholder:"04xx xxx xxx",hint:"For future SMS communication.",disabled:S}),e.jsx(q,{label:"Google / sign-in email",type:"email",value:s,onChange:x=>l(x.target.value),required:!0,disabled:S,placeholder:"[email protected]",hint:"Account access only. Their work mailbox below is the email used for Artin communication."}),e.jsx(I,{label:"Role",value:g,onChange:x=>v(x.target.value),disabled:S,children:a.map(x=>e.jsx("option",{value:x.name,children:x.label},x.name))})]}),e.jsxs("div",{className:"border-t border-line pt-5 space-y-4",children:[e.jsx("h3",{className:"font-display text-xl",children:"Work email"}),e.jsx("p",{className:"text-sm text-fg-muted",children:"This becomes their primary contact email and assigned mailbox."}),e.jsxs(I,{label:"Mailbox setup",value:n,disabled:S,onChange:x=>j(x.target.value),children:[e.jsx("option",{value:"create",children:"Create a new work mailbox"}),e.jsx("option",{value:"existing",children:"Assign an existing mailbox"})]}),n==="create"?e.jsx(ue,{value:_,onChange:c,busy:S,onReady:o}):e.jsxs(e.Fragment,{children:[e.jsx(N,{tone:"danger",children:d.error??((O=d.data)==null?void 0:O.error)}),e.jsxs(I,{label:"Work mailbox",value:y,disabled:S||d.loading,onChange:x=>p(x.target.value),children:[e.jsx("option",{value:"",children:"Choose a mailbox"}),(G=d.data)==null?void 0:G.mailboxes.map(x=>e.jsx("option",{value:x.resource_id,children:x.address},x.resource_id))]}),e.jsx(b,{type:"button",variant:"ghost",onClick:()=>void d.reload(),children:"Refresh mailboxes"})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(b,{type:"submit",disabled:S||!a.some(x=>x.name===g)||(n==="create"?!A:!y),children:S?"Setting up account & mailboxâ¦":"Create account & work mailbox"}),e.jsx(b,{type:"button",variant:"secondary",disabled:S,onClick:()=>$(!0),children:"Preview invitation"})]}),e.jsx("p",{className:"text-xs text-fg-muted",children:"The sign-in invitation goes to their Google/sign-in email. Work messages use their Artin mailbox. Setup progress is saved if a step needs another attempt."})]}),e.jsx(b,{type:"button",variant:"ghost",disabled:S,onClick:r,children:"Invite an account without mailbox setup"}),M&&e.jsx(ee,{request:{audience:"staff",email:s,role:g},onClose:()=>$(!1)})]})]})}
1function pe({roles:a,me:f,onInvited:r}){var _;const[d,t]=i.useState(!1),[h,w]=i.useState(""),[g,v]=i.useState("tutor"),[s,l]=i.useState(!1),[n,j]=i.useState(null),y=R(f==null?void 0:f.permissions,"settings.manage")&&R((_=a.find(c=>c.name===g))==null?void 0:_.permissions,"mail.read");async function p(c){c.preventDefault();const A=c.currentTarget,o=new FormData(A);l(!0),j(null);try{const M=await C.users.invite({email:String(o.get("email")),role:g,mobile:String(o.get("mobile")??"")});A.reset(),w(""),r(M,y)}catch(M){j(se(M))}finally{l(!1)}}return e.jsxs(V,{children:[e.jsx(X,{eyebrow:y?"Step 1 of 2 · Account":"Invite",children:"Add a staff member"}),e.jsx(N,{tone:"danger",children:n}),e.jsxs(Y,{as:"form",onSubmit:p,"data-guide":"users-invite",cols:"sm:grid-cols-2",children:[e.jsx(q,{label:"Sign-in email",name:"email",type:"email",value:h,onChange:c=>w(c.target.value),required:!0,disabled:s,placeholder:"[email protected]",hint:"Use an email they can already open. Their work mailbox comes next."}),e.jsx(q,{label:"Mobile number",name:"mobile",type:"tel",autoComplete:"tel",disabled:s,placeholder:"04xx xxx xxx",hint:"For future SMS communication."}),e.jsx(I,{label:"Role",name:"role",value:g,onChange:c=>v(c.target.value),disabled:s||!a.length,children:a.map(c=>e.jsx("option",{value:c.name,children:c.label},c.name))}),e.jsxs(re,{children:[e.jsx(b,{type:"submit",disabled:s||!a.some(c=>c.name===g),children:s?"Saving accountâ¦":y?"Invite & set up mailbox":"Send invite"}),e.jsx(b,{type:"button",variant:"secondary",disabled:s||!a.length,onClick:()=>t(!0),children:"Preview invitation"})]})]}),e.jsx("p",{className:"mt-3 text-xs text-fg-muted",children:y?"First, send their sign-in invitation. Next, create or assign their work mailbox.":"An invitation is emailed to their sign-in address."}),d&&e.jsx(ee,{request:{audience:"staff",email:h,role:g},onClose:()=>t(!1)})]})}function be({user:a,invited:f=!1,onClose:r,onSaved:d}){var S,F,B,m,T;const t=D("staff-mailboxes",C.mailboxes.list),[h,w]=i.useState("create"),[g,v]=i.useState(""),[s,l]=i.useState(null),[n,j]=i.useState(!1),[y,p]=i.useState(null),[_,c]=i.useState(null),A=(S=t.data)==null?void 0:S.mailboxes.find(u=>u.resource_id===g),o=((F=t.data)==null?void 0:F.mailboxes.filter(u=>{var k;return(k=u.members)==null?void 0:k.includes(a.user_id)}))??[];async function M(u){j(!0),p(null);try{await C.users.workMailbox(a.user_id,u.resource_id),c(u.address),d(u.address)}catch(k){p(se(k))}finally{j(!1)}}async function $(u){l(u),await M(u)}return e.jsx(ae,{title:_?"Mailbox ready":"Set up their mailbox",onClose:()=>{n||r()},children:e.jsxs("div",{className:"space-y-4","data-guide":"staff-mailbox-setup",children:[f&&e.jsx(E,{tone:"success",children:"Step 1 complete · Account ready"}),e.jsx("p",{className:"text-sm text-fg-muted break-words",children:_?`${a.email??"This staff member"} can now open ${_} from Mail in the portal.`:`Choose a work mailbox for ${a.email??"this staff member"}. This will be their work contact email; their Google/sign-in email stays separate.`}),_?e.jsxs(e.Fragment,{children:[e.jsx(N,{tone:"success",children:"Work email saved and mailbox assigned. Existing staff access has been kept."}),e.jsx(b,{onClick:r,children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsx(N,{tone:"danger",children:y}),s?e.jsxs("div",{className:"space-y-3",children:[e.jsxs(N,{tone:"success",children:[s.address," has been created."]}),e.jsx("p",{className:"text-sm text-fg-muted",children:n?"Assigning their mailboxâ¦":"The account and mailbox are saved. Retry assignment when the new address is available to your Hostinger Mail connection."}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(b,{disabled:n,onClick:()=>void M(s),children:n?"Assigningâ¦":"Retry assignment"}),e.jsx(K,{variant:"secondary",to:`${Q}/settings#mail`,children:"Mail settings"})]})]}):e.jsxs(e.Fragment,{children:[!!o.length&&e.jsxs(N,{tone:"success",children:["Already assigned: ",o.map(u=>u.address).join(", "),"."]}),e.jsxs(I,{label:"Mailbox setup",value:h,disabled:n,onChange:u=>{w(u.target.value),p(null)},children:[e.jsx("option",{value:"create",children:"Create a new work mailbox"}),e.jsx("option",{value:"existing",children:"Assign an existing mailbox"})]}),h==="create"?e.jsx(xe,{submitLabel:"Create & assign mailbox",suggestedName:(((B=a.email)==null?void 0:B.split("@")[0])??"").replace(/[^a-zA-Z0-9._-]/g,"").slice(0,50).toLowerCase(),onCreated:$,onBusy:j}):e.jsxs("div",{className:"space-y-4",children:[e.jsx(N,{tone:"danger",children:t.error??((m=t.data)==null?void 0:m.error)}),e.jsxs(I,{label:"Work mailbox",value:g,disabled:n||t.loading,onChange:u=>v(u.target.value),children:[e.jsx("option",{value:"",children:t.loading?"Checking mailboxesâ¦":"Choose a mailbox"}),(T=t.data)==null?void 0:T.mailboxes.map(u=>{var k;return e.jsxs("option",{value:u.resource_id,children:[u.address,(k=u.members)!=null&&k.includes(a.user_id
1)?" · already assigned":""]},u.resource_id)})]}),e.jsx("p",{className:"text-xs text-fg-muted",children:"Anyone already assigned keeps access. Choose a dedicated mailbox for private tutor email."}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(b,{disabled:n||!A,onClick:()=>{A&&M(A)},children:n?"Assigningâ¦":"Assign mailbox"}),e.jsx(b,{variant:"secondary",disabled:n||t.loading,onClick:()=>void t.reload(),children:"Refresh mailboxes"})]})]})]}),e.jsxs("div",{className:"border-t border-line pt-4",children:[e.jsx(b,{variant:"ghost",disabled:n,onClick:r,children:"Finish later"}),e.jsx("p",{className:"mt-2 text-xs text-fg-muted",children:"Resume from the Mailbox button beside their account. Their account stays saved."})]})]})]})})}function ve({user:a,onClose:f,onSaved:r}){const[d,t]=i.useState(a.mobile??""),[h,w]=i.useState(!1),[g,v]=i.useState(null);async function s(l){l.preventDefault(),w(!0),v(null);try{await C.users.contact(a.user_id,d),r()}catch(n){v(n instanceof Error?n.message:String(n))}finally{w(!1)}}return e.jsxs(ae,{title:"Staff contact",onClose:()=>{h||f()},children:[e.jsx("p",{className:"break-all text-sm",children:a.display_name||a.work_email||a.email}),e.jsxs("p",{className:"break-all text-sm text-fg-muted",children:["Work email: ",a.work_email||"Set using the Mailbox button"]}),e.jsxs("p",{className:"break-all text-xs text-fg-muted",children:["Google/sign-in: ",a.sign_in_email??a.email]}),e.jsxs("form",{onSubmit:s,className:"space-y-4",children:[e.jsx(q,{label:"Mobile number",type:"tel",autoComplete:"tel",value:d,onChange:l=>t(l.target.value),placeholder:"04xx xxx xxx",hint:"Australian mobile or international number with country code. Saved for future SMS communication."}),e.jsx(N,{tone:"danger",children:g}),e.jsx(b,{type:"submit",disabled:h,children:h?"Savingâ¦":"Save contact"})]})]})}function Me({me:a}){const[f,r]=i.useState(!1),[d,t]=i.useState(null),[h,w]=i.useState(null),g=R(a==null?void 0:a.permissions,"users.manage"),{data:v,error:s,reload:l}=D("users",()=>Promise.all([C.users.list(),C.roles.list().catch(()=>[])]).catch(m=>{throw new Error(Z(m))})),n=(v==null?void 0:v[0])??null,j=(v==null?void 0:v[1])??[],{run:y,err:p,ok:_,busy:c,setErr:A,setOk:o}=me(l,Z),M=p??s;async function $(m,T,u){const k=await y(T,u,m);k&&typeof k=="object"&&"auth_synced"in k&&k.auth_synced===!1&&(o(null),A("Portal access is blocked, but Supabase sign-in could not be updated. An owner should retry the ban using the CLI."))}const S=j.filter(m=>m.staff||m.name==="readonly"),F=(n??[]).filter(m=>m.staff),B=(n??[]).filter(m=>!m.staff);return e.jsxs("div",{className:"space-y-8",children:[e.jsx(le,{eyebrow:"Users",title:"Accounts",lede:"Staff are accounts whose role can sign in. Anything else in Supabase Auth (test accounts, future student or guardian logins) is listed separately and cannot use the portal."}),g&&e.jsx(W,{children:R(a==null?void 0:a.permissions,"settings.manage")&&!f?e.jsx(fe,{roles:S.filter(m=>R(m.permissions,"mail.read")),onSaved:()=>{l()},onAccountOnly:()=>r(!0)}):e.jsxs(e.Fragment,{children:[f&&e.jsx(b,{variant:"ghost",onClick:()=>r(!1),children:"Back to account & work mailbox setup"}),e.jsx(pe,{roles:S,me:a,onInvited:(m,T)=>{o(`Account ready for ${m.email}.`),l(),T&&t({user:m,invited:!0})}})]})}),e.jsx(N,{tone:"danger",children:M}),e.jsx(N,{tone:"success",children:_}),e.jsx(J,{title:"Staff",count:F.length,hint:"Roles flagged staff: can sign in to this area.",children:e.jsx(H,{list:F,roles:j,me:a,manage:g,busy:c,act:$,onContact:w,onMailbox:m=>t({user:m,invited:!1}),empty:n?"No staff accounts yet. Invite the first one above.":"Loadingâ¦"})}),e.jsx(J,{title:"Other accounts",count:B.length,hint:"Exist in Supabase Auth but their role cannot sign in (students, guardians, read-only, no profile). Test accounts are flagged; students themselves are managed on the Students screen.",collapsible:!0,children:e.jsx(H,{list:B,roles:j,me:a,manage:g,busy:c,act:$,onContact:w,onMailbox:m=>t({user:m,invited:!1}),empty:n?"None.":"Loadingâ¦"})}),d&&e.jsx(be,{user:d.user,invited:d.invited,onClose:()=>t(null),onSaved:m=>{o(`${m} saved as their work email.`),l()}}),h&&e.jsx(ve,{user:h,onClose:()=>w(null),onSaved:()=>{w(null),o("Staff contact saved."),l()}}),e.jsxs("p",{className:"text-xs text-fg-muted",children:["Same operations for agents and the CLI: ",e.jsxs("code",{className:"font-mono",children:["PUT /api/admin/users/","{email}","/role"]}),", ",e.jsx("code",{className:"font-mono",children:"artin users set-role"}),"."]})]})}function H({list:a,roles:f,me:r,manage:d,busy:t,act:h,empty:w,onContact:g,onMailbox:v}){return e.jsx(he,{head:["User","Role","Status","Last sign-in",d?"Actions":""],empty:a.length===0?w:void 0,children:a.map(s=>{var y;const l=s.email??s.user_id,n=(r==null?void 0:r.user_id)===s.user_id,j=d&&!n&&(s.role!=="owner"||R(r==null?void 0:r.permissions,"*"));return e.jsxs("tr",{className:s.banned?"opacity-60":void 0,children:[e.jsxs(U,{className:"align-middle",children:[e.jsx("div",{className:"whitespace-nowrap font-medium text-fg",children:s.display_name??s.work_email??s.email??"â"}),e.jsx("div",{className:"whitespace-nowrap font-mono text-xs text-fg-muted",children:s.work_email||"No work mailbox set"}),e.jsxs("div",{className:"text-xs text-fg-muted",children:["Sign-in: ",s.sign_in_email??s.email]}),s.staff&&e.jsxs("div",{className:"mt-2 flex items-center gap-2 text-xs text-fg-muted",children:[e.jsx("span",{children:s.mobile||"No mobile number"}),d&&(s.role!=="owner"||R(r==null?void 0:r.permissions,"*"))&&e.jsx(b,{size:"sm",variant:"ghost",onClick:()=>g(s),children:"Contact"}),!s.banned&&(s.role!=="owner"||R(r==null?void 0:r.permissions,"*"))&&R(r==null?void 0:r.permissions,"settings.manage")&&R((y=f.find(p=>p.name===s.role))==null?void 0:y.permissions,"mail.read")&&e.jsx(b,{size:"sm",variant:"ghost",onClick:()=>v(s),children:"Mailbox"})]})]}),e.jsx(U,{className:"align-middle",children:j?e.jsxs(I,{size:"sm","aria-label":`Role for ${l}`,value:s.role??"",disabled:!!t,onChange:p=>h(`role:${s.user_id}`,()=>C.users.setRole(l,p.target.value),`${l} is now ${p.target.value}.`),children:[!s.role&&e.jsx("option",{value:"",children:"no profile"}),f.map(p=>e.jsx("option",{value:p.name,children:p.label},p.name))]}):e.jsx(E,{tone:s.staff?"brand":s.role?"neutral":"warning",children:s.role_label??s.role??"no profile"})}),e.jsx(U,{className:"align-middle",children:e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[s.banned?e.jsx(E,{tone:"danger",children:"banned"}):s.confirmed?e.jsx(E,{tone:"success",children:"active"}):e.jsx(E,{tone:"warning",children:"invited"}),s.state!=="ok"&&e.jsx(E,{tone:"warning",children:s.state}),s.is_test&&e.jsx(E,{tone:"warning",children:"test"}),n&&e.jsx(E,{children:"you"})]})}),e.jsx(U,{className:"whitespace-nowrap align-middle text-fg-muted",children:s.last_sign_in_at?new Date(s.last_sign_in_at).toLocaleStr
1ing():"never"}),e.jsx(U,{className:"whitespace-nowrap align-middle",children:d&&!n&&e.jsxs("div",{className:"flex gap-1.5",children:[e.jsx(b,{size:"sm",variant:"secondary",disabled:!!t,title:s.is_test?"Unflag as a test account":"Flag as a test account",onClick:()=>h(`test:${s.user_id}`,()=>C.users.setTest(l,!s.is_test),`${l} ${s.is_test?"is no longer":"is now"} a test account.`),children:s.is_test?"Unflag test":"Flag test"}),e.jsx(b,{size:"sm",variant:s.banned?"secondary":"danger",disabled:!!t,onClick:()=>{(s.banned||confirm(`Ban ${l}? They will be signed out and cannot sign in again until unbanned.`))&&h(`ban:${s.user_id}`,()=>C.users.setBan(l,!s.banned),`${l} ${s.banned?"unbanned":"banned"}.`)},children:s.banned?"Unban":"Ban"})]})})]},s.user_id)})})}function J({title:a,count:f,hint:r,collapsible:d,children:t}){const h=e.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-1",children:[e.jsx("h2",{className:"text-xl text-fg",children:a}),e.jsx(E,{children:f}),e.jsx("span",{className:"text-sm text-fg-muted",children:r})]});return d?e.jsx(W,{delay:.08,children:e.jsxs("details",{className:"group space-y-3",children:[e.jsxs("summary",{className:"flex cursor-pointer list-none items-start gap-2 [&::-webkit-details-marker]:hidden",children:[e.jsx(oe,{name:"chevron",size:16,className:"mt-1.5 shrink-0 text-fg-muted transition-transform group-open:rotate-90"}),h]}),t]})}):e.jsxs(W,{delay:.05,className:"space-y-3",children:[h,t]})}const Z=a=>a instanceof de&&a.status===403?`Not allowed: ${a.message}`:ce(a);export{Me as StaffUsers};
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.