import"./DsnmJJEf.js";import{p as q,f as P,d as m,r as u,s as x,g as t,t as H,a as S,b as Q,h as N,e as J,c as C,i as B,m as Y,u as ae,j as A}from"./krC2xWPP.js";import{d as U,s as V,a as O}from"./CddAxf8c.js";import{i as j}from"./DjsWWzyL.js";import{b as ie,s as y,e as G,t as oe}from"./Lvd_r9sp.js";import{i as b}from"./Cu5ilWky.js";import{e as se}from"./Lyt-zgeV.js";import{s as L}from"./j_DJpx8B.js";import{C as de}from"./DEuEFefA.js";import{B as le,C as ue}from"./Ba7Iaged.js";import{M as ce}from"./Uy4Qmey4.js";import{L as me}from"./C_E2vM9U.js";import{C as fe}from"./ZWbUro-G.js";var ve=C('
',1);function Z(X,e){q(e,!0);const f=N(()=>{const r=e.action.name.split(".");let n=e.value;for(const s of r)if(n&&typeof n=="object")n=n[s];else return"unset";return n===!0?"allowed":n===!1?"denied":"unset"}),I=N(()=>e.superAdmin&&e.action.name!=="admin.super"&&(e.action.name.startsWith("admin.")||e.action.name.startsWith("site."))||e.apiSuper&&e.action.name!=="api.super"&&e.action.name.startsWith("api."));var d=ve(),h=P(d),E=m(h),R=m(E,!0);u(E);var D=x(E,2),w=m(D);{var z=r=>{ue(r,{size:14,class:"text-purple-500"})};j(w,r=>{t(I)&&r(z)})}var M=x(w,2),v=m(M),k=m(v);de(k,{size:14}),u(v);var g=x(v,2),F=m(g);le(F,{size:14}),u(g);var _=x(g,2),a=m(_);ce(a,{size:14}),u(_),u(M),u(D),u(h);var i=x(h,2);{var o=r=>{var n=J(),s=P(n);G(s,17,()=>e.action.children,l=>l.name,(l,c)=>{{let T=N(()=>e.depth+1);Z(l,{get action(){return t(c)},get depth(){return t(T)},get value(){return e.value},get superAdmin(){return e.superAdmin},get apiSuper(){return e.apiSuper},get onToggle(){return e.onToggle}})}}),S(r,n)};j(i,r=>{e.action.children&&r(o)})}H((r,n,s,l,c,T)=>{ie(h,`padding-left: ${16+e.depth*24}px`),L(E,1,`text-sm ${e.depth>0?"text-muted-foreground":"text-foreground"}`),V(R,e.action.label),L(v,1,`flex items-center justify-center px-2 py-1.5 transition-colors
${t(f)==="allowed"?"bg-green-500 text-white":"text-muted-foreground hover:bg-muted"}`),y(v,"title",r),y(v,"aria-label",n),L(g,1,`flex items-center justify-center border-x border-border px-2 py-1.5 transition-colors
${t(f)==="denied"?"bg-red-400 text-white":"text-muted-foreground hover:bg-muted"}`),y(g,"title",s),y(g,"aria-label",l),L(_,1,`flex items-center justify-center px-2 py-1.5 transition-colors
${t(f)==="unset"?"bg-muted text-foreground":"text-muted-foreground hover:bg-muted"}`),y(_,"title",c),y(_,"aria-label",T)},[()=>b.t("ADMIN_NEXT.ALLOWED"),()=>b.t("ADMIN_NEXT.ALLOWED"),()=>b.t("ADMIN_NEXT.DENIED"),()=>b.t("ADMIN_NEXT.DENIED"),()=>b.t("ADMIN_NEXT.PERMISSIONS_FIELD.NOT_SET"),()=>b.t("ADMIN_NEXT.PERMISSIONS_FIELD.NOT_SET")]),O("click",v,()=>e.onToggle(e.action.name,t(f)==="allowed"?"unset":"allowed")),O("click",g,()=>e.onToggle(e.action.name,t(f)==="denied"?"unset":"denied")),O("click",_,()=>e.onToggle(e.action.name,"unset")),S(X,d),Q()}U(["click"]);var ge=C(''),_e=C(''),be=C('');function ke(X,e){q(e,!0);let f=B(Y([])),I=B(!0),d=B(Y(new Set));function h(a){return a==="site"?0:a==="api"?1:a==="admin"?3:2}async function E(){A(I,!0);try{const a=await se();A(f,[...a].sort((i,o)=>h(i.name)-h(o.name)),!0);for(const i of t(f))i.name!=="admin"&&t(d).add(i.name);A(d,new Set(t(d)),!0)}catch{oe.error(b.t("ADMIN_NEXT.PERMISSIONS_FIELD.FAILED_TO_LOAD_PERMISSIONS"))}finally{A(I,!1)}}function R(a){return JSON.parse(JSON.stringify(a))}function D(a,i){const o=i.split(".");let r=a;for(const n of o)if(r&&typeof r=="object")r=r[n];else return;return r}const w=N(()=>D(e.value,"admin.super")===!0),z=N(()=>D(e.value,"api.super")===!0);function M(a,i){const o=a.split("."),r=R(e.value);let n=r;for(let l=0;l{E()});var k=J(),g=P(k);{var F=a=>{var i=ge(),o=m(i);me(o,{size:20,class:"animate-spin text-muted-foreground"}),u(i),S(a,i)},_=a=>{var i=be();G(i,21,()=>t(f),o=>o.name,(o,r)=>{var n=_e(),s=m(n),l=m(s);{let p=N(()=>t(d).has(t(r).name)?"":"-rotate-90");fe(l,{size:14,get class(){return`shrink-0 text-muted-foreground transition-transform ${t(p)??""}`}})}var c=x(l,2),T=m(c,!0);u(c),u(s);var $=x(s,2);{var ee=p=>{var K=J(),re=P(K);G(re,17,()=>t(r).children,W=>W.name,(W,ne)=>{Z(W,{get action(){return t(ne)},depth:0,get value(){return e.value},get superAdmin(){return t(w)},get apiSuper(){return t(z)},onToggle:M})}),S(p,K)},te=N(()=>t(d).has(t(r).name)&&t(r).children);j($,p=>{t(te)&&p(ee)})}u(n),H(p=>V(T,p),[()=>t(r).name==="admin"?b.t("ADMIN_NEXT.PERMISSIONS_FIELD.ADMIN_LEGACY"):t(r).label]),O("click",s,()=>v(t(r).name)),S(o,n)}),u(i),S(a,i)};j(g,a=>{t(I)?a(F):a(_,-1)})}S(X,k),Q()}U(["click"]);export{ke as P};