1import{j as a}from"./vendor-motion-COWzbZXj.js";import{d as D,r as n}from"./vendor-react-DabW9_xZ.js";import{u as W,aw as B,ax as U,ay as T,R,X as M,az as G,aA as F}from"./index-DIyBAkHf.js";import{a as $}from"./autores-DJ1ChzQO.js";import{L as j,I as A}from"./ui-p4zgnDPv.js";import{S as q}from"./shield-check-B2wcbjPL.js";import{P as H}from"./pencil-VWtoZNP6.js";import{T as V}from"./trash-2-Bi-HkpXS.js";import"./vendor-supabase-otNoK39h.js";const k={super_admin:"Super Admin",admin:"Admin",editor:"Editor",colaborador:"Colaborador"},I={super_admin:"adm-badge adm-badge-purple",admin:"adm-badge adm-badge-blue",editor:"adm-badge adm-badge-green",colaborador:"adm-badge adm-badge-yellow"},O=[{group:"Visão Geral",items:[{key:"dashboard",label:"Dashboard"},{key:"estatisticas",label:"EstatÃsticas"},{key:"meta_mensal",label:"Meta mensal"}]},{group:"Financeiro e Comercial",items:[{key:"relatorios",label:"Relatórios Financeiros"},{key:"assinantes",label:"Comercial/Assinantes"},{key:"cupons",label:"Cupons"}]},{group:"Pauta",items:[{key:"pautas",label:"Pauta"}]},{group:"Conteúdo",items:[{key:"artigos",label:"Matérias"},{key:"edicoes",label:"Edições e Banca"},{key:"autores",label:"Colaboradores"},{key:"podcast",label:"Podcast"},{key:"categorias",label:"Categorias"},{key:"livros",label:"Mais vendidos"},{key:"lancamentos",label:"Lançamentos"},{key:"x_libris",label:"X-lÃbris"},{key:"lendo",label:"O que você está lendo?"}]},{group:"Curadoria",items:[{key:"agenda",label:"Agenda"},{key:"frases",label:"Frases"},{key:"frases_palavras",label:"Palavra do Dia"}]},{group:"Home & Sistema",items:[{key:"home",label:"Configurar Home"},{key:"home_destaques",label:"Hero & Destaques"},{key:"home_guia",label:"Guia de Tamanhos"},{key:"home_caca",label:"Caça Palavras"},{key:"home_autor",label:"Conheça o Autor"},{key:"home_carousel",label:"Carousel"},{key:"home_colabore",label:"Colabore (Home)"},{key:"links_curtos",label:"Encurtador de Link"}]},{group:"Colabore",items:[{key:"colabore",label:"Submissões"},{key:"newsletter",label:"Newsletter"}]},{group:"Acervo",items:[{key:"acervo",label:"Acervo"}]},{group:"Páginas Institucionais",items:[{key:"expediente",label:"Expediente"},{key:"onde_comprar",label:"Onde Comprar"}]},{group:"Administração",items:[{key:"usuarios",label:"Usuários"},{key:"chamados",label:"Chamados"}]}];function X({usuario:o,autores:u,onClose:l,onSaved:p}){var v,w,N,_;const c=!o,E=()=>{var e,s;return(e=o==null?void 0:o.permissions)!=null&&e.length?new Set(o.permissions):new Set(R[(s=o==null?void 0:o.role)!=null?s:"colaborador"])},[t,x]=n.useState({email:(v=o==null?void 0:o.email)!=null?v:"",nome:(w=o==null?void 0:o.nome)!=null?w:"",role:(N=o==null?void 0:o.role)!=null?N:"colaborador",autor_id:(_=o==null?void 0:o.autor_id)!=null?_:"",permissions:E()}),[b,g]=n.useState(!1),[f,d]=n.useState(null);n.useEffect(()=>{const e=s=>{s.key==="Escape"&&l()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[l]);function m(e,s){x(r=>({...r,[e]:s}))}function S(e){x(s=>({...s,role:e,permissions:new Set(R[e])}))}function C(e){x(s=>{const r=new Set(s.permissions);return r.has(e)?r.delete(e):r.add(e),{...s,permissions:r}})}function y(e){const s=e.every(r=>t.permissions.has(r.key));x(r=>{const h=new Set(r.permissions);return e.forEach(i=>s?h.delete(i.key):h.add(i.key)),{...r,permissions:h}})}async function z(){var s;if(!t.email.trim()){d("E-mail é obrigatório.");return}if(t.permissions.size===0){d("Selecione pelo menos uma permissão.");return}g(!0),d(null);const e=[...t.permissions];try{c?await F({email:t.email.trim().toLowerCase(),role:t.role,nome:t.nome||void 0,autor_id:t.autor_id||void 0,permissions:e}):await T(o.id,{role:t.role,nome:t.nome||void 0,autor_id:t.autor_id||null,permissions:e}),p(),l()}catch(r){d((s=r.message)!=null?s:"Erro ao salvar.")}finally{g(!1)}}return a.jsx("div",{className:"adm-modal-overlay",children:a.jsxs("div",{className:"adm-modal",style:{maxWidth:"560px"},children:[a.jsxs("div",{className:"adm-modal-header",children:[a.jsx("h2",{className:"adm-modal-title",children:c?"Novo usuário admin":"Editar acesso"}),a.jsx("button",{onClick:l,style:{background:"none",border:"none",cursor:"pointer",color:"var(--adm-text-faint)"},children:a.jsx(M,{size:14})})]}),a.jsxs("div",{className:"adm-modal-body",style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[a.jsxs("div",{children:[a.jsx("label",{className:j,children:"E-mail *"}),a.jsx("input",{type:"email",value:t.email,onChange:e=>m("email",e.target.value),disabled:!c,className:A,placeholder:"[email protected]",style:c?{}:{background:"#f0f0ef",cursor:"not-allowed",color:"#6b7280"}}),c&&a.jsx("p",{style:{fontSize:"0.6875rem",color:"var(--adm-text-faint)",marginTop:"0.25rem"},children:"O usuário precisa ter uma conta cadastrada no site antes de receber acesso."})]}),a.jsxs("div",{children:[a.jsx("label",{className:j,children:"Nome (exibição)"}),a.jsx("input",{type:"text",value:t.nome,onChange:e=>m("nome",e.target.value),className:A,placeholder:"Nome do usuário"})]}),a.jsxs("div",{children:[a.jsx("label",{className:j,children:"Perfil base"}),a.jsx("div",{style:{display:"flex",gap:"0.5rem"},children:["super_admin","admin","editor","colaborador"].map(e=>a.jsx("button",{type:"button",onClick:()=>
1S(e),style:{flex:1,padding:"0.5rem",border:"2px solid ".concat(t.role===e?"var(--adm-accent)":"var(--adm-border)"),background:t.role===e?"var(--adm-accent-light)":"#fff",borderRadius:"0.375rem",cursor:"pointer",fontSize:"0.75rem",fontWeight:t.role===e?700:400,color:t.role===e?"var(--adm-accent)":"var(--adm-text-muted)",transition:"all 0.15s"},children:k[e]},e))}),a.jsx("p",{style:{fontSize:"0.6875rem",color:"var(--adm-text-faint)",marginTop:"0.25rem"},children:"Clique para pré-selecionar as permissões do perfil. Você pode ajustar abaixo."})]}),a.jsxs("div",{children:[a.jsxs("label",{className:j,style:{marginBottom:"0.625rem"},children:["Acessos (",t.permissions.size,"/",G.length,")"]}),a.jsx("div",{style:{border:"1px solid var(--adm-border)",borderRadius:"0.375rem",overflow:"hidden"},children:O.map((e,s)=>{const r=e.items.every(i=>t.permissions.has(i.key)),h=e.items.some(i=>t.permissions.has(i.key));return a.jsxs("div",{style:{borderBottom:s<O.length-1?"1px solid var(--adm-border)":"none"},children:[a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.625rem",padding:"0.5rem 0.875rem",background:"#f8fafc",cursor:"pointer"},onClick:()=>y(e.items),children:[a.jsx("input",{type:"checkbox",readOnly:!0,checked:r,ref:i=>{i&&(i.indeterminate=h&&!r)},style:{accentColor:"var(--adm-accent)",cursor:"pointer",width:"0.875rem",he
1ight:"0.875rem"}}),a.jsx("span",{style:{fontSize:"0.6875rem",fontWeight:700,textTransform:"uppercase",letterSpacing:"0.08em",color:"var(--adm-text-muted)"},children:e.group})]}),a.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(180px, 1fr))",gap:"0",padding:"0.375rem 0.875rem 0.625rem"},children:e.items.map(i=>a.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"0.5rem",padding:"0.3rem 0",cursor:"pointer",fontSize:"0.8125rem",color:"var(--adm-text)"},children:[a.jsx("input",{type:"checkbox",checked:t.permissions.has(i.key),onChange:()=>C(i.key),style:{accentColor:"var(--adm-accent)",cursor:"pointer",width:"0.875rem",height:"0.875rem",flexShrink:0}}),i.label]},i.key))})]},e.group)})})]}),a.jsxs("div",{children:[a.jsx("label",{className:j,children:"Perfil de autor vinculado"}),a.jsxs("select",{value:t.autor_id,onChange:e=>m("autor_id",e.target.value),className:A,children:[a.jsx("option",{value:"",children:"â Nenhum â"}),u.map(e=>a.jsx("option",{value:e.id,children:e.nome},e.id))]}),a.jsx("p",{style:{fontSize:"0.6875rem",color:"var(--adm-text-faint)",marginTop:"0.25rem"},children:"Opcional. Se vinculado, filtra as matérias que o usuário pode editar."})]})]}),f&&a.jsx("div",{className:"adm-alert adm-alert-error",style:{margin:"0 1.5rem 0.75rem"},children:f}),a.jsxs("div",{className:"adm-modal-footer",children:[a.jsx("button",{onClick:l,className:"adm-btn adm-btn-secondary",children:"Cancelar"}),a.jsx("button",{onClick:z,disabled:b,className:"adm-btn adm-btn-primary",children:b?"Salvandoâ¦":c?"Adicionar acesso":"Salvar"})]})]})})}function te(){const o=D(),{adminRole:u,adminUser:l}=W(),[p,c]=n.useState([]),[E,t]=n.useState([]),[x,b]=n.useState(!0),[g,f]=n.useState({aberto:!1,usuario:null}),[d,m]=n.useState(new Set),[S,C]=n.useState(!1);n.useEffect(()=>{u&&u!=="super_admin"&&o("/admin/artigos",{replace:!0})},[u]);async function y(){b(!0);try{const[e,s]=await Promise.all([B(),$()]);c(e),t(s)}catch(e){console.error(e)}finally{b(!1)}}n.useEffect(()=>{y()},[]);async function z(e){if(e.user_id===(l==null?void 0:l.user_id)){alert("Não é possÃvel remover seu próprio acesso.");return}if(confirm('Remover acesso de "'.concat(e.email,'"?\n\nO usuário perderá o acesso ao painel imediatamente.')))try{await U(e.id),c(s=>s.filter(r=>r.id!==e.id)),m(s=>{const r=new Set(s);return r.delete(e.id),r})}catch(s){alert("Erro: "+s.message)}}const v=p.length>0&&p.every(e=>d.has(e.id));function w(){m(v?new Set:new Set(p.map(e=>e.id)))}function N(e){m(s=>{const r=new Set(s);return r.has(e)?r.delete(e):r.add(e),r})}async function _(e){const s=[...d];if(s.length!==0&&confirm('Aplicar o perfil "'.concat(k[e],'" para ').concat(s.length," usuário").concat(s.length!==1?"s":""," selecionado").concat(s.length!==1?"s":"","?"))){C(!0);try{await Promise.all(s.map(r=>T(r,{role:e,permissions:R[e]}))),m(new Set),await y()}catch(r){alert("Erro ao aplicar em lote: "+r.message)}finally{C(!1)}}}return a.jsxs("div",{className:"fi-page",children:[a.jsxs("div",{className:"fi-page-header",children:[a.jsxs("div",{children:[a.jsxs("h1",{className:"fi-page-heading",style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[a.jsx(q,{size:20,strokeWidth:1.75})," Usuários Admin"]}),a.jsxs("p",{className:"fi-page-subheading",children:[p.length," usuário",p.length!==1?"s":""," com acesso ao painel"]})]}),a.jsx("button",{onClick:()=>f({aberto:!0,usuario:null}),className:"adm-btn adm-btn-primary",children:"+ Adicionar usuário"})]}),a.jsx("div",{style:{display:"flex",gap:"1.5rem",flexWrap:"wrap",marginBottom:"1.25rem",padding:"1rem 1.25rem",background:"#f8fafc",border:"1px solid var(--adm-border)"},children:Object.entries(k).map(([e,s])=>a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[a.jsx("span",{className:I[e],children:s}),a.jsxs("span",{style:{fontSize:"0.75rem",color:"var(--adm-text-muted)"},children:[e==="super_admin"&&"Acesso total, gerencia usuários",e==="admin"&&"Gestão editorial completa (não gerencia usuários/permissões)",e==="editor"&&"Gestão editorial completa",e==="colaborador"&&"Apenas suas próprias matérias (sem publicar)"]})]},e))}),d.size>0&&a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",flexWrap:"wrap",marginBottom:"1rem",padding:"0.75rem 1rem",background:"#eef2ff",border:"1px solid #c7d2fe",borderRadius:"0.5rem"},children:[a.jsxs("span",{style:{fontSize:"0.8125rem",fontWeight:600,color:"var(--adm-accent)"},children:[d.size," selecionado",d.size!==1?"s":""]}),a.jsx("span",{style:{fontSize:"0.75rem",color:"var(--adm-text-muted)"},children:"Aplicar perfil:"}),a.jsx("div",{style:{display:"flex",gap:"0.5rem"},children:["super_admin","admin","editor","colaborador"].map(e=>a.jsx("button",{type:"button",disabled:S,onClick:()=>_(e),className:"adm-btn adm-btn-secondary",style:{fontSize:"0.75rem",padding:"0.375rem 0.75rem"},children:k[e]},e))}),a.jsx("button",{type:"button",onClick:()=>m(new Set),disabled:S,style:{marginLeft:"auto",background:"none",border:"none",cursor:"pointer",fontSize:"0.75rem",color:"var(--adm-text-faint)",textDecoration:"underline"},children:"Limpar seleção"})]}),x?a.jsx("div",{style:{display:"flex",justifyContent:"center",padding:"5rem 0"},children:a.jsxs("div",{className:"adm-dots",children:[a.jsx("span",{}),a.jsx("span",{}),a.jsx("span",{})]})}):a.jsx("div",{className:"fi-section",children:a.jsxs("table",{className:"adm-table",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{style:{width:"2.5rem"},children:a.jsx("input",{type:"checkbox",checked:v,onChange:w,style:{accentColor:"var(--adm-accent)",cursor:"pointer",width:"0.875rem",he
1ight:"0.875rem"}})}),a.jsx("th",{children:"Usuário"}),a.jsx("th",{style:{width:"8rem"},children:"Role"}),a.jsx("th",{style:{width:"12rem"},children:"Autor vinculado"}),a.jsx("th",{style:{width:"8rem"},children:"Desde"}),a.jsx("th",{style:{width:"5rem"}})]})}),a.jsx("tbody",{children:p.map(e=>{var r,h,i,L,P;const s=e.user_id===(l==null?void 0:l.user_id)||e.email===(l==null?void 0:l.email);return a.jsxs("tr",{style:{background:s?"#f0f9ff":void 0},children:[a.jsx("td",{children:a.jsx("input",{type:"checkbox",checked:d.has(e.id),onChange:()=>N(e.id),style:{accentColor:"var(--adm-accent)",cursor:"pointer",width:"0.875rem",height:"0.875rem"}})}),a.jsx("td",{children:a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem"},children:[a.jsx("div",{style:{width:"2rem",height:"2rem",borderRadius:"9999px",background:"linear-gradient(135deg, #6366f1, #8b5cf6)",display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:"0.75rem",fontWeight:700,flexShrink:0},children:(e.nome||e.email).charAt(0).toUpperCase()}),a.jsxs("div",{children:[a.jsxs("p",{style:{fontWeight:500,color:"var(--adm-text)",fontSize:"0.875rem"},children:[e.nome||"â",s&&a.jsx("span",{style:{marginLeft:"0.5rem",fontSize:"0.5625rem",fontWeight:700,background:"#dbeafe",color:"#1d4ed8",padding:"1px 6px",borderRadius:"0.25rem"},children:"você"})]}),a.jsx("p",{style:{fontSize:"0.75rem",color:"var(--adm-text-muted)"},children:e.email}),!e.user_id&&a.jsx("p",{style:{fontSize:"0.625rem",color:"#f59e0b",fontWeight:600,marginTop:"0.125rem"},children:"Aguardando primeiro login"})]})]})}),a.jsxs("td",{children:[a.jsx("span",{className:I[e.role],children:k[e.role]}),((r=e.permissions)==null?void 0:r.length)!=null&&a.jsxs("div",{style:{fontSize:"0.625rem",color:"var(--adm-text-faint)",marginTop:"0.25rem"},children:[e.permissions.length," acesso",e.permissions.length!==1?"s":""]})]}),a.jsx("td",{children:a.jsx("span",{style:{fontSize:"0.8125rem",color:(h=e.autor)!=null&&h.nome?"var(--adm-text-muted)":"var(--adm-text-faint)",fontStyle:(i=e.autor)!=null&&i.nome?"normal":"italic"},children:(P=(L=e.autor)==null?void 0:L.nome)!=null?P:"â"})}),a.jsx("td",{children:a.jsx("span",{style:{fontSize:"0.8125rem",color:"var(--adm-text-muted)"},children:e.created_at?new Date(e.created_at).toLocaleDateString("pt-BR",{day:"2-digit",month:"short",year:"numeric"}):"â"})}),a.jsx("td",{children:a.jsxs("div",{className:"fi-row-actions",children:[a.jsx("button",{onClick:()=>f({aberto:!0,usuario:e}),title:"Editar",className:"fi-action-btn",children:a.jsx(H,{size:14})}),!s&&a.jsx("button",{onClick:()=>z(e),title:"Remover acesso",className:"fi-action-btn fi-action-btn-danger",children:a.jsx(V,{size:14})})]})})]},e.id)})})]})}),g.aberto&&a.jsx(X,{usuario:g.usuario,autores:E,onClose:()=>f({aberto:!1,usuario:null}),onSaved:y})]})}export{te 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.