@lunora/studio 1.0.0-alpha.153 → 1.0.0-alpha.155
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/packem_chunks/ExportImportPanel.mjs +1 -1
- package/dist/packem_chunks/TableEditor.mjs +1 -1
- package/dist/packem_chunks/organizations-panel.mjs +1 -1
- package/dist/packem_chunks/payments-panel.mjs +1 -1
- package/dist/packem_chunks/users-panel.mjs +1 -1
- package/dist/packem_shared/{DataBrowser-O22nJCCN.mjs → DataBrowser-FiF2tNdq.mjs} +1 -1
- package/dist/packem_shared/use-auth-config-CuM3eJZz.mjs +1 -0
- package/dist/packem_shared/wire-codec-DnslZGxC.mjs +1 -0
- package/dist/standalone/{chunk-S26CQFMN.js → chunk-2GUY4BYT.js} +1 -1
- package/dist/standalone/{chunk-CIEJPCUW.js → chunk-3BOMO6FO.js} +1 -1
- package/dist/standalone/{chunk-GEITRXJJ.js → chunk-3SCT7QG7.js} +1 -1
- package/dist/standalone/{chunk-XJGHAQOK.js → chunk-4YPDEUPJ.js} +1 -1
- package/dist/standalone/{chunk-ACZ62CXX.js → chunk-57JVL7N6.js} +1 -1
- package/dist/standalone/{chunk-Q7UGJSBF.js → chunk-6BI6AL3F.js} +1 -1
- package/dist/standalone/{chunk-PHQZEAGF.js → chunk-6RMHV7CC.js} +1 -1
- package/dist/standalone/{chunk-CQMOOU7U.js → chunk-73S4ZMSC.js} +1 -1
- package/dist/standalone/{chunk-4ECJUS5H.js → chunk-7SA3C6AD.js} +1 -1
- package/dist/standalone/{chunk-C37WBSYD.js → chunk-7SPAXZ55.js} +1 -1
- package/dist/standalone/{chunk-SWQC2USV.js → chunk-7VYWS2FY.js} +1 -1
- package/dist/standalone/{chunk-GWV47763.js → chunk-ANFY2LUW.js} +1 -1
- package/dist/standalone/{chunk-Z4GCX456.js → chunk-B7IXABRK.js} +1 -1
- package/dist/standalone/{chunk-LX3GATRO.js → chunk-BFPZHZ5M.js} +1 -1
- package/dist/standalone/{chunk-G4F3D3I7.js → chunk-BHRODRCE.js} +1 -1
- package/dist/standalone/{chunk-P6P4OBT2.js → chunk-BI3WYQT4.js} +1 -1
- package/dist/standalone/{chunk-R2IHJBT6.js → chunk-CJMZSHN3.js} +1 -1
- package/dist/standalone/chunk-CXNY45A3.js +1 -0
- package/dist/standalone/{chunk-32CGYBP7.js → chunk-D722YMVG.js} +1 -1
- package/dist/standalone/{chunk-23PYJYIE.js → chunk-EFXL7F5E.js} +1 -1
- package/dist/standalone/{chunk-OEGOE365.js → chunk-ENE4N6ZV.js} +1 -1
- package/dist/standalone/chunk-ET6VU4YM.js +11 -0
- package/dist/standalone/{chunk-XUZKCNPR.js → chunk-FAIPFZHS.js} +1 -1
- package/dist/standalone/{chunk-II7XZKMV.js → chunk-FFSMP4KF.js} +1 -1
- package/dist/standalone/{chunk-YUFHPV5Q.js → chunk-FMRAZ6MD.js} +4 -4
- package/dist/standalone/{chunk-HKOSEDH4.js → chunk-HETDJ4ZA.js} +1 -1
- package/dist/standalone/{chunk-ILD64B5N.js → chunk-HMRLSE2Y.js} +1 -1
- package/dist/standalone/{chunk-ZAU7W7ST.js → chunk-IBCJ44SS.js} +1 -1
- package/dist/standalone/{chunk-NITR6C4Q.js → chunk-J2REGA6E.js} +1 -1
- package/dist/standalone/{chunk-3AP7VVQQ.js → chunk-JXCWNZ7T.js} +1 -1
- package/dist/standalone/{chunk-4B2XXMFJ.js → chunk-JXZBR6KQ.js} +1 -1
- package/dist/standalone/{chunk-2UYOGRM4.js → chunk-KEXRHVLN.js} +1 -1
- package/dist/standalone/{chunk-WXDJSSI3.js → chunk-KHIJLXVN.js} +1 -1
- package/dist/standalone/{chunk-5OKOOE7F.js → chunk-KJGAW36O.js} +1 -1
- package/dist/standalone/{chunk-IHFI6CAR.js → chunk-L2PBRJ7G.js} +1 -1
- package/dist/standalone/chunk-LPTEXH2G.js +1 -0
- package/dist/standalone/{chunk-A7FVAGCX.js → chunk-M2KEQODB.js} +1 -1
- package/dist/standalone/{chunk-ALDKIXZV.js → chunk-M55KXW5Z.js} +1 -1
- package/dist/standalone/{chunk-EL76NZKP.js → chunk-M5ITKPZN.js} +1 -1
- package/dist/standalone/{chunk-S6WJJWE2.js → chunk-MAIRKGBC.js} +1 -1
- package/dist/standalone/{chunk-5BHA637G.js → chunk-MMYETC7K.js} +1 -1
- package/dist/standalone/{chunk-TPPJQZRS.js → chunk-NJSJI7SX.js} +1 -1
- package/dist/standalone/{chunk-MDV7YLA4.js → chunk-O3OLYWXH.js} +1 -1
- package/dist/standalone/{chunk-6KU6XZBN.js → chunk-ODULTMQE.js} +1 -1
- package/dist/standalone/{chunk-TLROCZPY.js → chunk-PBMIQYWZ.js} +1 -1
- package/dist/standalone/{chunk-YWC6MTH4.js → chunk-PEC7L2M2.js} +1 -1
- package/dist/standalone/{chunk-IECKH2X5.js → chunk-Q2XPCZNR.js} +1 -1
- package/dist/standalone/{chunk-S7Z5HIXB.js → chunk-QY7ZYGFB.js} +1 -1
- package/dist/standalone/{chunk-SYJSEF4X.js → chunk-RBUZXGW4.js} +1 -1
- package/dist/standalone/{chunk-TWZTDUXT.js → chunk-SZD6O7K2.js} +1 -1
- package/dist/standalone/{chunk-G4Y2UUW4.js → chunk-T3NZUPJT.js} +1 -1
- package/dist/standalone/{chunk-S35A5JDQ.js → chunk-UAA6K2G3.js} +1 -1
- package/dist/standalone/{chunk-YKS246NP.js → chunk-VHFBBAB3.js} +1 -1
- package/dist/standalone/{chunk-IAP6HECV.js → chunk-VP7HSAYW.js} +1 -1
- package/dist/standalone/{chunk-CY3TZEJJ.js → chunk-VVIGMZZI.js} +1 -1
- package/dist/standalone/{chunk-HB4BX7WR.js → chunk-WO3CKCCK.js} +1 -1
- package/dist/standalone/{chunk-PNHK6UE2.js → chunk-X6XVQUHD.js} +2 -2
- package/dist/standalone/chunk-XAG625PN.js +1 -0
- package/dist/standalone/{chunk-EZ5WA3RT.js → chunk-Y4S6PSQJ.js} +1 -1
- package/dist/standalone/{chunk-NLCYWLK6.js → chunk-Y7BODRFB.js} +1 -1
- package/dist/standalone/{chunk-74MH4UBQ.js → chunk-YVNA6TPB.js} +1 -1
- package/dist/standalone/{chunk-XNMDBPSX.js → chunk-ZFT2GFBE.js} +1 -1
- package/dist/standalone/{chunk-TXH6IAVS.js → chunk-ZUFIKCHC.js} +1 -1
- package/dist/standalone/studio.js +1 -1
- package/package.json +6 -6
- package/dist/packem_shared/use-auth-config-BQKGdSFh.mjs +0 -1
- package/dist/packem_shared/wire-codec-oeb8YWV3.mjs +0 -1
- package/dist/standalone/chunk-2AQPSJ2A.js +0 -1
- package/dist/standalone/chunk-FGSNEPHU.js +0 -11
- package/dist/standalone/chunk-G6U7Z75E.js +0 -1
- package/dist/standalone/chunk-OVTMYZN2.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as J}from"react/compiler-runtime";import{useLunora as re}from"@lunora/react";import{useState as j}from"react";import{B as L}from"../packem_shared/button-q0UYSmrn.mjs";import{a as vt,C as yt}from"../packem_shared/card--2hKx4L2.mjs";import{E as Ke}from"../packem_shared/empty-state-D7jEML_T.mjs";import{c as me,a as Ct,b as nt,e as de,d as xt,T as It}from"../packem_shared/table-D0SBiDu-.mjs";import{b as Ge}from"../packem_shared/use-admin-query-BKXiqLci.mjs";import{u as Nt}from"../packem_shared/use-auth-config-BQKGdSFh.mjs";import{useAutoRefresh as kt}from"../packem_shared/DEFAULT_AUTO_REFRESH_MS-DuULO4XM.mjs";import{useT as H}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.mjs";import{i as S,f as At,b as _t,h as Ot}from"../packem_shared/internal-B6haJbiP.mjs";import{I as W}from"../packem_shared/input-CXhxesPC.mjs";import{L as Tt}from"../packem_shared/label-DKFzyHq6.mjs";import{M as $t}from"../packem_shared/modal-shell-CDztwLnv.mjs";import{T as wt}from"../packem_shared/textarea--40GKAyz.mjs";import{u as se}from"../packem_shared/use-async-submit-BTr3w2-K.mjs";import{jsx as n,jsxs as R,Fragment as st}from"react/jsx-runtime";const Dt=t=>{const e=JSON.parse(t);if(typeof e!="object"||e===null||Array.isArray(e))throw new TypeError("Expected a JSON object");return e},Mt=t=>{const e=Dt(t),l={};for(const[d,u]of Object.entries(e)){if(!Array.isArray(u)||u.some(s=>typeof s!="string"))throw new TypeError(`"${d}" must map to an array of action strings`);l[d]=u}return l},St=t=>t==null||t===""?"":typeof t=="string"?t:JSON.stringify(t,null,2),G=t=>{const e=J(6),{children:l,htmlFor:d,label:u}=t;let s;e[0]!==d||e[1]!==u?(s=n(Tt,{htmlFor:d,children:u}),e[0]=d,e[1]=u,e[2]=s):s=e[2];let i;return e[3]!==l||e[4]!==s?(i=R("div",{className:"flex flex-col gap-1",children:[s,l]}),e[3]=l,e[4]=s,e[5]=i):i=e[5],i},ae=({busy:t,canSubmit:e,children:l,destructive:d=!1,error:u,onClose:s,onSubmit:i,submitLabel:o,testId:r,title:a})=>{const m=H();return R($t,{label:a,onClose:s,panelTestId:`${r}-panel`,testId:`${r}-overlay`,variant:"dialog",children:[n("h2",{className:"text-sm font-semibold text-foreground",children:a}),l,u!==null&&n("p",{className:"text-sm text-destructive","data-testid":`${r}-error`,role:"alert",children:u}),R("div",{className:"flex justify-end gap-2 pt-1",children:[n(L,{"data-testid":`${r}-cancel`,onClick:s,size:"sm",type:"button",variant:"outline",children:m("Cancel")}),n(L,{"data-testid":`${r}-submit`,disabled:t||!e,onClick:i,size:"sm",type:"button",variant:d?"destructive":"default",children:t?m("Saving…"):o})]})]})},ht=t=>{const e=J(79),{mode:l,onClose:d,onDone:u,org:s}=t,i=re(),o=H(),{busy:r,error:a,run:m}=se();let g;e[0]!==s?(g=s?S(s.name):"",e[0]=s,e[1]=g):g=e[1];const[c,f]=j(g);let b;e[2]!==s?(b=s?S(s.slug):"",e[2]=s,e[3]=b):b=e[3];const[h,v]=j(b);let k;e[4]!==s?(k=s?S(s.logo):"",e[4]=s,e[5]=k):k=e[5];const[p,C]=j(k),[y,w]=j("");let x;e[6]!==l||e[7]!==s?.metadata?(x=l==="edit"?St(s?.metadata):"",e[6]=l,e[7]=s?.metadata,e[8]=x):x=e[8];const[I,D]=j(x);let _;e[9]!==i||e[10]!==p||e[11]!==I||e[12]!==l||e[13]!==c||e[14]!==d||e[15]!==u||e[16]!==s?.id||e[17]!==y||e[18]!==m||e[19]!==h?(_=()=>{m(async()=>{const F=I.trim()===""?void 0:Dt(I);l==="create"?await i.createAuthOrganization({logo:p.trim()===""?void 0:p.trim(),metadata:F,name:c.trim(),ownerId:y.trim()===""?void 0:y.trim(),slug:h.trim()===""?void 0:h.trim()}):await i.updateAuthOrganization({logo:p.trim()===""?void 0:p.trim(),metadata:F,name:c.trim()===""?void 0:c.trim(),organizationId:S(s?.id),slug:h.trim()===""?void 0:h.trim()}),u(),d()})},e[9]=i,e[10]=p,e[11]=I,e[12]=l,e[13]=c,e[14]=d,e[15]=u,e[16]=s?.id,e[17]=y,e[18]=m,e[19]=h,e[20]=_):_=e[20];const N=_;let z;e[21]!==l||e[22]!==c?(z=c.trim()!==""||l==="edit",e[21]=l,e[22]=c,e[23]=z):z=e[23];let O;e[24]!==l||e[25]!==o?(O=o(l==="create"?"Create":"Save"),e[24]=l,e[25]=o,e[26]=O):O=e[26];let T;e[27]!==l||e[28]!==o?(T=o(l==="create"?"New organization":"Edit organization"),e[27]=l,e[28]=o,e[29]=T):T=e[29];let P;e[30]!==o?(P=o("name"),e[30]=o,e[31]=P):P=e[31];let q;e[32]===Symbol.for("react.memo_cache_sentinel")?(q=F=>{f(F.target.value)},e[32]=q):q=e[32];let B;e[33]!==c?(B=n(W,{"data-testid":"org-form-name",id:"org-form-name",onChange:q,value:c}),e[33]=c,e[34]=B):B=e[34];let E;e[35]!==B||e[36]!==P?(E=n(G,{htmlFor:"org-form-name",label:P,children:B}),e[35]=B,e[36]=P,e[37]=E):E=e[37];let Q;e[38]!==o?(Q=o("Slug (optional — derived from name)"),e[38]=o,e[39]=Q):Q=e[39];let K;e[40]===Symbol.for("react.memo_cache_sentinel")?(K=F=>{v(F.target.value)},e[40]=K):K=e[40];let $;e[41]!==h?($=n(W,{"data-testid":"org-form-slug",id:"org-form-slug",onChange:K,value:h}),e[41]=h,e[42]=$):$=e[42];let M;e[43]!==Q||e[44]!==$?(M=n(G,{htmlFor:"org-form-slug",label:Q,children:$}),e[43]=Q,e[44]=$,e[45]=M):M=e[45];let U;e[46]!==o?(U=o("Logo URL (optional)"),e[46]=o,e[47]=U):U=e[47];let ne;e[48]===Symbol.for("react.memo_cache_sentinel")?(ne=F=>{C(F.target.value)},e[48]=ne):ne=e[48];let X;e[49]!==p?(X=n(W,{"data-testid":"org-form-logo",id:"org-form-logo",onChange:ne,value:p}),e[49]=p,e[50]=X):X=e[50];let ee;e[51]!==U||e[52]!==X?(ee=n(G,{htmlFor:"org-form-logo",label:U,children:X}),e[51]=U,e[52]=X,e[53]=ee):ee=e[53];let Y;e[54]!==l||e[55]!==y||e[56]!==o?(Y=l==="create"&&n(G,{htmlFor:"org-form-owner",label:o("Owner user id (optional)"),children:n(W,{"data-testid":"org-form-owner",id:"org-form-owner",onChange:F=>{w(F.target.value)},value:y})}),e[54]=l,e[55]=y,e[56]=o,e[57]=Y):Y=e[57];let te;e[58]!==o?(te=o("Metadata (JSON, optional)"),e[58]=o,e[59]=te):te=e[59];let le;e[60]===Symbol.for("react.memo_cache_sentinel")?(le=F=>{D(F.target.value)},e[60]=le):le=e[60];let Z;e[61]!==I?(Z=n(wt,{"data-testid":"org-form-metadata",id:"org-form-metadata",onChange:le,value:I}),e[61]=I,e[62]=Z):Z=e[62];let A;e[63]!==te||e[64]!==Z?(A=n(G,{htmlFor:"org-form-metadata",label:te,children:Z}),e[63]=te,e[64]=Z,e[65]=A):A=e[65];let ie;return e[66]!==r||e[67]!==a||e[68]!==d||e[69]!==N||e[70]!==E||e[71]!==M||e[72]!==ee||e[73]!==Y||e[74]!==A||e[75]!==z||e[76]!==O||e[77]!==T?(ie=R(ae,{busy:r,canSubmit:z,error:a,onClose:d,onSubmit:N,submitLabel:O,testId:"org-form",title:T,children:[E,M,ee,Y,A]}),e[66]=r,e[67]=a,e[68]=d,e[69]=N,e[70]=E,e[71]=M,e[72]=ee,e[73]=Y,e[74]=A,e[75]=z,e[76]=O,e[77]=T,e[78]=ie):ie=e[78],ie},Rt=t=>{const e=J(40),{onClose:l,onDone:d,organizationId:u}=t,s=re(),i=H(),{busy:o,error:r,run:a}=se(),[m,g]=j(""),[c,f]=j("");let b;e[0]!==s||e[1]!==l||e[2]!==d||e[3]!==u||e[4]!==c||e[5]!==a||e[6]!==m?(b=()=>{a(async()=>{await s.addAuthOrgMember({organizationId:u,role:c.trim()===""?void 0:c.trim(),userId:m.trim()}),d(),l()})},e[0]=s,e[1]=l,e[2]=d,e[3]=u,e[4]=c,e[5]=a,e[6]=m,e[7]=b):b=e[7];const h=b;let v;e[8]!==m?(v=m.trim(),e[8]=m,e[9]=v):v=e[9];const k=v!=="";let p;e[10]!==i?(p=i("Add member"),e[10]=i,e[11]=p):p=e[11];let C;e[12]!==i?(C=i("Add member"),e[12]=i,e[13]=C):C=e[13];let y;e[14]!==i?(y=i("User id"),e[14]=i,e[15]=y):y=e[15];let w;e[16]===Symbol.for("react.memo_cache_sentinel")?(w=T=>{g(T.target.value)},e[16]=w):w=e[16];let x;e[17]!==m?(x=n(W,{"data-testid":"org-add-member-user",id:"org-add-member-user",onChange:w,value:m}),e[17]=m,e[18]=x):x=e[18];let I;e[19]!==y||e[20]!==x?(I=n(G,{htmlFor:"org-add-member-user",label:y,children:x}),e[19]=y,e[20]=x,e[21]=I):I=e[21];let D;e[22]!==i?(D=i("Role (optional)"),e[22]=i,e[23]=D):D=e[23];let _;e[24]===Symbol.for("react.memo_cache_sentinel")?(_=T=>{f(T.target.value)},e[24]=_):_=e[24];let N;e[25]!==c?(N=n(W,{"data-testid":"org-add-member-role",id:"org-add-member-role",onChange:_,value:c}),e[25]=c,e[26]=N):N=e[26];let z;e[27]!==D||e[28]!==N?(z=n(G,{htmlFor:"org-add-member-role",label:D,children:N}),e[27]=D,e[28]=N,e[29]=z):z=e[29];let O;return e[30]!==o||e[31]!==r||e[32]!==l||e[33]!==h||e[34]!==z||e[35]!==k||e[36]!==p||e[37]!==C||e[38]!==I?(O=R(ae,{busy:o,canSubmit:k,error:r,onClose:l,onSubmit:h,submitLabel:p,testId:"org-add-member",title:C,children:[I,z]}),e[30]=o,e[31]=r,e[32]=l,e[33]=h,e[34]=z,e[35]=k,e[36]=p,e[37]=C,e[38]=I,e[39]=O):O=e[39],O},Ft=t=>{const e=J(40),{onClose:l,onDone:d,organizationId:u}=t,s=re(),i=H(),{busy:o,error:r,run:a}=se(),[m,g]=j(""),[c,f]=j("");let b;e[0]!==s||e[1]!==m||e[2]!==l||e[3]!==d||e[4]!==u||e[5]!==c||e[6]!==a?(b=()=>{a(async()=>{await s.inviteAuthOrgMember({email:m.trim(),organizationId:u,role:c.trim()===""?void 0:c.trim()}),d(),l()})},e[0]=s,e[1]=m,e[2]=l,e[3]=d,e[4]=u,e[5]=c,e[6]=a,e[7]=b):b=e[7];const h=b;let v;e[8]!==m?(v=m.trim(),e[8]=m,e[9]=v):v=e[9];const k=v!=="";let p;e[10]!==i?(p=i("Send invitation"),e[10]=i,e[11]=p):p=e[11];let C;e[12]!==i?(C=i("Invite member"),e[12]=i,e[13]=C):C=e[13];let y;e[14]!==i?(y=i("email"),e[14]=i,e[15]=y):y=e[15];let w;e[16]===Symbol.for("react.memo_cache_sentinel")?(w=T=>{g(T.target.value)},e[16]=w):w=e[16];let x;e[17]!==m?(x=n(W,{"data-testid":"org-invite-member-email",id:"org-invite-member-email",onChange:w,type:"email",value:m}),e[17]=m,e[18]=x):x=e[18];let I;e[19]!==y||e[20]!==x?(I=n(G,{htmlFor:"org-invite-member-email",label:y,children:x}),e[19]=y,e[20]=x,e[21]=I):I=e[21];let D;e[22]!==i?(D=i("Role (optional)"),e[22]=i,e[23]=D):D=e[23];let _;e[24]===Symbol.for("react.memo_cache_sentinel")?(_=T=>{f(T.target.value)},e[24]=_):_=e[24];let N;e[25]!==c?(N=n(W,{"data-testid":"org-invite-member-role",id:"org-invite-member-role",onChange:_,value:c}),e[25]=c,e[26]=N):N=e[26];let z;e[27]!==D||e[28]!==N?(z=n(G,{htmlFor:"org-invite-member-role",label:D,children:N}),e[27]=D,e[28]=N,e[29]=z):z=e[29];let O;return e[30]!==o||e[31]!==r||e[32]!==l||e[33]!==h||e[34]!==z||e[35]!==k||e[36]!==p||e[37]!==C||e[38]!==I?(O=R(ae,{busy:o,canSubmit:k,error:r,onClose:l,onSubmit:h,submitLabel:p,testId:"org-invite-member",title:C,children:[I,z]}),e[30]=o,e[31]=r,e[32]=l,e[33]=h,e[34]=z,e[35]=k,e[36]=p,e[37]=C,e[38]=I,e[39]=O):O=e[39],O},Et=t=>{const e=J(32),{member:l,onClose:d,onDone:u}=t,s=re(),i=H(),{busy:o,error:r,run:a}=se();let m;e[0]!==l.role?(m=()=>S(l.role),e[0]=l.role,e[1]=m):m=e[1];const[g,c]=j(m);let f;e[2]!==s||e[3]!==l.id||e[4]!==d||e[5]!==u||e[6]!==g||e[7]!==a?(f=()=>{a(async()=>{await s.setAuthOrgMemberRole({memberId:S(l.id),role:g.trim()}),u(),d()})},e[2]=s,e[3]=l.id,e[4]=d,e[5]=u,e[6]=g,e[7]=a,e[8]=f):f=e[8];const b=f;let h;e[9]!==g?(h=g.trim(),e[9]=g,e[10]=h):h=e[10];const v=h!=="";let k;e[11]!==i?(k=i("Save"),e[11]=i,e[12]=k):k=e[12];let p;e[13]!==i?(p=i("Change member role"),e[13]=i,e[14]=p):p=e[14];let C;e[15]!==i?(C=i("Role"),e[15]=i,e[16]=C):C=e[16];let y;e[17]===Symbol.for("react.memo_cache_sentinel")?(y=D=>{c(D.target.value)},e[17]=y):y=e[17];let w;e[18]!==g?(w=n(W,{"data-testid":"org-member-role-value",id:"org-member-role-value",onChange:y,value:g}),e[18]=g,e[19]=w):w=e[19];let x;e[20]!==C||e[21]!==w?(x=n(G,{htmlFor:"org-member-role-value",label:C,children:w}),e[20]=C,e[21]=w,e[22]=x):x=e[22];let I;return e[23]!==o||e[24]!==r||e[25]!==d||e[26]!==b||e[27]!==x||e[28]!==v||e[29]!==k||e[30]!==p?(I=n(ae,{busy:o,canSubmit:v,error:r,onClose:d,onSubmit:b,submitLabel:k,testId:"org-member-role",title:p,children:x}),e[23]=o,e[24]=r,e[25]=d,e[26]=b,e[27]=x,e[28]=v,e[29]=k,e[30]=p,e[31]=I):I=e[31],I},bt=t=>{const e=J(36),{mode:l,onClose:d,onDone:u,organizationId:s,team:i}=t,o=re(),r=H(),{busy:a,error:m,run:g}=se();let c;e[0]!==i?(c=i?S(i.name):"",e[0]=i,e[1]=c):c=e[1];const[f,b]=j(c);let h;e[2]!==o||e[3]!==l||e[4]!==f||e[5]!==d||e[6]!==u||e[7]!==s||e[8]!==g||e[9]!==i?.id?(h=()=>{g(async()=>{await(l==="create"?o.createAuthOrgTeam({name:f.trim(),organizationId:s}):o.updateAuthOrgTeam({name:f.trim(),teamId:S(i?.id)})),u(),d()})},e[2]=o,e[3]=l,e[4]=f,e[5]=d,e[6]=u,e[7]=s,e[8]=g,e[9]=i?.id,e[10]=h):h=e[10];const v=h;let k;e[11]!==f?(k=f.trim(),e[11]=f,e[12]=k):k=e[12];const p=k!=="";let C;e[13]!==l||e[14]!==r?(C=r(l==="create"?"Create":"Save"),e[13]=l,e[14]=r,e[15]=C):C=e[15];let y;e[16]!==l||e[17]!==r?(y=r(l==="create"?"New team":"Rename team"),e[16]=l,e[17]=r,e[18]=y):y=e[18];let w;e[19]!==r?(w=r("name"),e[19]=r,e[20]=w):w=e[20];let x;e[21]===Symbol.for("react.memo_cache_sentinel")?(x=N=>{b(N.target.value)},e[21]=x):x=e[21];let I;e[22]!==f?(I=n(W,{"data-testid":"org-team-form-name",id:"org-team-form-name",onChange:x,value:f}),e[22]=f,e[23]=I):I=e[23];let D;e[24]!==w||e[25]!==I?(D=n(G,{htmlFor:"org-team-form-name",label:w,children:I}),e[24]=w,e[25]=I,e[26]=D):D=e[26];let _;return e[27]!==a||e[28]!==m||e[29]!==d||e[30]!==v||e[31]!==D||e[32]!==p||e[33]!==C||e[34]!==y?(_=n(ae,{busy:a,canSubmit:p,error:m,onClose:d,onSubmit:v,submitLabel:C,testId:"org-team-form",title:y,children:D}),e[27]=a,e[28]=m,e[29]=d,e[30]=v,e[31]=D,e[32]=p,e[33]=C,e[34]=y,e[35]=_):_=e[35],_},jt=t=>{const e=J(30),{onClose:l,onDone:d,teamId:u}=t,s=re(),i=H(),{busy:o,error:r,run:a}=se(),[m,g]=j("");let c;e[0]!==s||e[1]!==l||e[2]!==d||e[3]!==a||e[4]!==u||e[5]!==m?(c=()=>{a(async()=>{await s.addAuthOrgTeamMember({teamId:u,userId:m.trim()}),d(),l()})},e[0]=s,e[1]=l,e[2]=d,e[3]=a,e[4]=u,e[5]=m,e[6]=c):c=e[6];const f=c;let b;e[7]!==m?(b=m.trim(),e[7]=m,e[8]=b):b=e[8];const h=b!=="";let v;e[9]!==i?(v=i("Add member"),e[9]=i,e[10]=v):v=e[10];let k;e[11]!==i?(k=i("Add team member"),e[11]=i,e[12]=k):k=e[12];let p;e[13]!==i?(p=i("User id"),e[13]=i,e[14]=p):p=e[14];let C;e[15]===Symbol.for("react.memo_cache_sentinel")?(C=I=>{g(I.target.value)},e[15]=C):C=e[15];let y;e[16]!==m?(y=n(W,{"data-testid":"org-team-add-member-user",id:"org-team-add-member-user",onChange:C,value:m}),e[16]=m,e[17]=y):y=e[17];let w;e[18]!==p||e[19]!==y?(w=n(G,{htmlFor:"org-team-add-member-user",label:p,children:y}),e[18]=p,e[19]=y,e[20]=w):w=e[20];let x;return e[21]!==o||e[22]!==r||e[23]!==l||e[24]!==f||e[25]!==h||e[26]!==v||e[27]!==k||e[28]!==w?(x=n(ae,{busy:o,canSubmit:h,error:r,onClose:l,onSubmit:f,submitLabel:v,testId:"org-team-add-member",title:k,children:w}),e[21]=o,e[22]=r,e[23]=l,e[24]=f,e[25]=h,e[26]=v,e[27]=k,e[28]=w,e[29]=x):x=e[29],x},pt=t=>{const e=J(47),{mode:l,onClose:d,onDone:u,organizationId:s,role:i}=t,o=re(),r=H(),{busy:a,error:m,run:g}=se();let c;e[0]!==i?(c=i?S(i.role):"",e[0]=i,e[1]=c):c=e[1];const[f,b]=j(c);let h;e[2]!==l||e[3]!==i?.permission?(h=l==="edit"?St(i?.permission):"",e[2]=l,e[3]=i?.permission,e[4]=h):h=e[4];const[v,k]=j(h);let p;e[5]!==o||e[6]!==l||e[7]!==f||e[8]!==d||e[9]!==u||e[10]!==s||e[11]!==v||e[12]!==i?.id||e[13]!==g?(p=()=>{g(async()=>{const T=Mt(v);await(l==="create"?o.createAuthOrgRole({organizationId:s,permission:T,role:f.trim()}):o.updateAuthOrgRole({permission:T,roleId:S(i?.id)})),u(),d()})},e[5]=o,e[6]=l,e[7]=f,e[8]=d,e[9]=u,e[10]=s,e[11]=v,e[12]=i?.id,e[13]=g,e[14]=p):p=e[14];const C=p;let y;e[15]!==l||e[16]!==f||e[17]!==v?(y=v.trim()!==""&&(l==="edit"||f.trim()!==""),e[15]=l,e[16]=f,e[17]=v,e[18]=y):y=e[18];let w;e[19]!==l||e[20]!==r?(w=r(l==="create"?"Create":"Save"),e[19]=l,e[20]=r,e[21]=w):w=e[21];let x;e[22]!==l||e[23]!==r?(x=r(l==="create"?"New role":"Edit role"),e[22]=l,e[23]=r,e[24]=x):x=e[24];let I;e[25]!==l||e[26]!==f||e[27]!==r?(I=l==="create"&&n(G,{htmlFor:"org-role-form-name",label:r("Role name"),children:n(W,{"data-testid":"org-role-form-name",id:"org-role-form-name",onChange:T=>{b(T.target.value)},value:f})}),e[25]=l,e[26]=f,e[27]=r,e[28]=I):I=e[28];let D;e[29]!==r?(D=r('Permission (JSON, e.g. {"project":["create","update"]})'),e[29]=r,e[30]=D):D=e[30];let _;e[31]===Symbol.for("react.memo_cache_sentinel")?(_=T=>{k(T.target.value)},e[31]=_):_=e[31];let N;e[32]!==v?(N=n(wt,{"data-testid":"org-role-form-permission",id:"org-role-form-permission",onChange:_,value:v}),e[32]=v,e[33]=N):N=e[33];let z;e[34]!==N||e[35]!==D?(z=n(G,{htmlFor:"org-role-form-permission",label:D,children:N}),e[34]=N,e[35]=D,e[36]=z):z=e[36];let O;return e[37]!==a||e[38]!==m||e[39]!==d||e[40]!==C||e[41]!==z||e[42]!==y||e[43]!==w||e[44]!==x||e[45]!==I?(O=R(ae,{busy:a,canSubmit:y,error:m,onClose:d,onSubmit:C,submitLabel:w,testId:"org-role-form",title:x,children:[I,z]}),e[37]=a,e[38]=m,e[39]=d,e[40]=C,e[41]=z,e[42]=y,e[43]=w,e[44]=x,e[45]=I,e[46]=O):O=e[46],O},zt=t=>{const e=J(18),{action:l,message:d,onClose:u,onDone:s,testId:i,title:o}=t,r=H(),{busy:a,error:m,run:g}=se();let c;e[0]!==l||e[1]!==u||e[2]!==s||e[3]!==g?(c=()=>{g(async()=>{await l(),s(),u()})},e[0]=l,e[1]=u,e[2]=s,e[3]=g,e[4]=c):c=e[4];const f=c;let b;e[5]!==r?(b=r("Delete"),e[5]=r,e[6]=b):b=e[6];let h;e[7]!==d?(h=n("p",{className:"text-sm text-muted-foreground",children:d}),e[7]=d,e[8]=h):h=e[8];let v;return e[9]!==a||e[10]!==m||e[11]!==u||e[12]!==f||e[13]!==b||e[14]!==h||e[15]!==i||e[16]!==o?(v=n(ae,{busy:a,canSubmit:!0,destructive:!0,error:m,onClose:u,onSubmit:f,submitLabel:b,testId:i,title:o,children:h}),e[9]=a,e[10]=m,e[11]=u,e[12]=f,e[13]=b,e[14]=h,e[15]=i,e[16]=o,e[17]=v):v=e[17],v},Ve=t=>{const e=J(13),{action:l,children:d,heading:u,testId:s}=t;let i;e[0]!==u?(i=n("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:u}),e[0]=u,e[1]=i):i=e[1];let o;e[2]!==l?(o=l!==void 0&&n("div",{className:"flex items-center gap-2",children:l}),e[2]=l,e[3]=o):o=e[3];let r;e[4]!==i||e[5]!==o?(r=R("header",{className:"flex items-center justify-between gap-2 border-b border-border px-4 py-3",children:[i,o]}),e[4]=i,e[5]=o,e[6]=r):r=e[6];let a;e[7]!==d?(a=n(vt,{className:"px-0",children:d}),e[7]=d,e[8]=a):a=e[8];let m;return e[9]!==r||e[10]!==a||e[11]!==s?(m=R(yt,{className:"overflow-hidden py-0","data-testid":s,children:[r,a]}),e[9]=r,e[10]=a,e[11]=s,e[12]=m):m=e[12],m},We=t=>{const e=J(23),{columns:l,rowActions:d,rowPrefix:u,rows:s}=t,i=H();let o;e[0]!==l?(o=l.map(Lt),e[0]=l,e[1]=o):o=e[1];let r;e[2]!==i?(r=i("Actions"),e[2]=i,e[3]=r):r=e[3];let a;e[4]!==r?(a=n(me,{"aria-label":r}),e[4]=r,e[5]=a):a=e[5];let m;e[6]!==o||e[7]!==a?(m=n(Ct,{children:R(nt,{children:[o,a]})}),e[6]=o,e[7]=a,e[8]=m):m=e[8];let g;if(e[9]!==l||e[10]!==d||e[11]!==u||e[12]!==s){let b;e[14]!==l||e[15]!==d||e[16]!==u?(b=(h,v)=>{const k=S(h.id),p=k===""?`index-${v.toString()}`:k;return R(nt,{"data-testid":`${u}-${p}`,children:[l.map(C=>n(de,{className:C.className,children:C.render(h)},C.head)),n(de,{children:n("div",{className:"flex justify-end gap-1",children:d(h)})})]},p)},e[14]=l,e[15]=d,e[16]=u,e[17]=b):b=e[17],g=s.map(b),e[9]=l,e[10]=d,e[11]=u,e[12]=s,e[13]=g}else g=e[13];let c;e[18]!==g?(c=n(xt,{children:g}),e[18]=g,e[19]=c):c=e[19];let f;return e[20]!==m||e[21]!==c?(f=R(It,{children:[m,c]}),e[20]=m,e[21]=c,e[22]=f):f=e[22],f};function Lt(t){return n(me,{children:t.head},t.head)}const Pt=t=>{const e=J(30),{actionBusy:l,onRemoveMember:d,memberColumns:u,members:s,onDialog:i}=t,o=H();let r;e[0]!==i?(r=()=>{i({kind:"add-member"})},e[0]=i,e[1]=r):r=e[1];let a;e[2]!==o?(a=o("Add member"),e[2]=o,e[3]=a):a=e[3];let m;e[4]!==r||e[5]!==a?(m=n(L,{"data-testid":"org-open-add-member",onClick:r,size:"xs",type:"button",variant:"outline",children:a}),e[4]=r,e[5]=a,e[6]=m):m=e[6];let g;e[7]!==i?(g=()=>{i({kind:"invite-member"})},e[7]=i,e[8]=g):g=e[8];let c;e[9]!==o?(c=o("Invite member"),e[9]=o,e[10]=c):c=e[10];let f;e[11]!==g||e[12]!==c?(f=n(L,{"data-testid":"org-open-invite-member",onClick:g,size:"xs",type:"button",variant:"outline",children:c}),e[11]=g,e[12]=c,e[13]=f):f=e[13];let b;e[14]!==m||e[15]!==f?(b=R(st,{children:[m,f]}),e[14]=m,e[15]=f,e[16]=b):b=e[16];let h;e[17]!==o?(h=o("Members"),e[17]=o,e[18]=h):h=e[18];let v;e[19]!==l||e[20]!==u||e[21]!==s||e[22]!==i||e[23]!==d||e[24]!==o?(v=s.length===0?n("div",{className:"p-3",children:n(Ke,{testId:"org-members-empty",title:o("No members.")})}):n(We,{columns:u,rowActions:p=>R(st,{children:[n(L,{"data-testid":`org-member-role-${S(p.id)}`,onClick:()=>{i({kind:"member-role",member:p})},size:"xs",type:"button",variant:"ghost",children:o("Change role")}),n(L,{"data-testid":`org-remove-member-${S(p.id)}`,disabled:l,onClick:()=>{d(S(p.id))},size:"xs",type:"button",variant:"ghost",children:o("Remove")})]}),rowPrefix:"org-member",rows:s}),e[19]=l,e[20]=u,e[21]=s,e[22]=i,e[23]=d,e[24]=o,e[25]=v):v=e[25];let k;return e[26]!==b||e[27]!==h||e[28]!==v?(k=n(Ve,{action:b,heading:h,testId:"org-members",children:v}),e[26]=b,e[27]=h,e[28]=v,e[29]=k):k=e[29],k},Bt=t=>{const e=J(21),{onConfirmDeleteTeam:l,onDialog:d,onSelectTeam:u,selectedTeam:s,teamColumns:i,teams:o}=t,r=H();let a;e[0]!==d?(a=()=>{d({kind:"team-create"})},e[0]=d,e[1]=a):a=e[1];let m;e[2]!==r?(m=r("New team"),e[2]=r,e[3]=m):m=e[3];let g;e[4]!==a||e[5]!==m?(g=n(L,{"data-testid":"org-open-create-team",onClick:a,size:"xs",type:"button",variant:"outline",children:m}),e[4]=a,e[5]=m,e[6]=g):g=e[6];let c;e[7]!==r?(c=r("Teams"),e[7]=r,e[8]=c):c=e[8];let f;e[9]!==l||e[10]!==d||e[11]!==u||e[12]!==s||e[13]!==r||e[14]!==i||e[15]!==o?(f=o.length===0?n("div",{className:"p-3",children:n(Ke,{testId:"org-teams-empty",title:r("No teams.")})}):n(We,{columns:i,rowActions:h=>R(st,{children:[n(L,{"aria-pressed":s===S(h.id),"data-testid":`org-team-select-${S(h.id)}`,onClick:()=>{u(S(h.id))},size:"xs",type:"button",variant:"ghost",children:r("Members")}),n(L,{"data-testid":`org-team-rename-${S(h.id)}`,onClick:()=>{d({kind:"team-rename",team:h})},size:"xs",type:"button",variant:"ghost",children:r("Rename")}),n(L,{"data-testid":`org-team-delete-${S(h.id)}`,onClick:()=>{l(h)},size:"xs",type:"button",variant:"ghost",children:r("Delete")})]}),rowPrefix:"org-team",rows:o}),e[9]=l,e[10]=d,e[11]=u,e[12]=s,e[13]=r,e[14]=i,e[15]=o,e[16]=f):f=e[16];let b;return e[17]!==g||e[18]!==c||e[19]!==f?(b=n(Ve,{action:g,heading:c,testId:"org-teams",children:f}),e[17]=g,e[18]=c,e[19]=f,e[20]=b):b=e[20],b},Qt=t=>{const e=J(20),{actionBusy:l,onRemoveTeamMember:d,onDialog:u,selectedTeam:s,teamMemberColumns:i,teamMembers:o}=t,r=H();let a;e[0]!==u||e[1]!==s?(a=()=>{u({kind:"team-add-member",teamId:s})},e[0]=u,e[1]=s,e[2]=a):a=e[2];let m;e[3]!==r?(m=r("Add member"),e[3]=r,e[4]=m):m=e[4];let g;e[5]!==a||e[6]!==m?(g=n(L,{"data-testid":"org-open-add-team-member",onClick:a,size:"xs",type:"button",variant:"outline",children:m}),e[5]=a,e[6]=m,e[7]=g):g=e[7];let c;e[8]!==r?(c=r("Team members"),e[8]=r,e[9]=c):c=e[9];let f;e[10]!==l||e[11]!==d||e[12]!==r||e[13]!==i||e[14]!==o?(f=o.length===0?n("div",{className:"p-3",children:n(Ke,{testId:"org-team-members-empty",title:r("No team members.")})}):n(We,{columns:i,rowActions:h=>n(L,{"data-testid":`org-team-remove-member-${S(h.id)}`,disabled:l,onClick:()=>{d(S(h.id))},size:"xs",type:"button",variant:"ghost",children:r("Remove")}),rowPrefix:"org-team-member",rows:o}),e[10]=l,e[11]=d,e[12]=r,e[13]=i,e[14]=o,e[15]=f):f=e[15];let b;return e[16]!==g||e[17]!==c||e[18]!==f?(b=n(Ve,{action:g,heading:c,testId:"org-team-members",children:f}),e[16]=g,e[17]=c,e[18]=f,e[19]=b):b=e[19],b},Jt=t=>{const e=J(19),{onConfirmDeleteRole:l,onDialog:d,roleColumns:u,roles:s}=t,i=H();let o;e[0]!==d?(o=()=>{d({kind:"role-create"})},e[0]=d,e[1]=o):o=e[1];let r;e[2]!==i?(r=i("New role"),e[2]=i,e[3]=r):r=e[3];let a;e[4]!==o||e[5]!==r?(a=n(L,{"data-testid":"org-open-create-role",onClick:o,size:"xs",type:"button",variant:"outline",children:r}),e[4]=o,e[5]=r,e[6]=a):a=e[6];let m;e[7]!==i?(m=i("Roles"),e[7]=i,e[8]=m):m=e[8];let g;e[9]!==l||e[10]!==d||e[11]!==u||e[12]!==s||e[13]!==i?(g=s.length===0?n("div",{className:"p-3",children:n(Ke,{testId:"org-roles-empty",title:i("No custom roles.")})}):n(We,{columns:u,rowActions:f=>R(st,{children:[n(L,{"data-testid":`org-role-edit-${S(f.id)}`,onClick:()=>{d({kind:"role-edit",role:f})},size:"xs",type:"button",variant:"ghost",children:i("Edit")}),n(L,{"data-testid":`org-role-delete-${S(f.id)}`,onClick:()=>{l(S(f.id))},size:"xs",type:"button",variant:"ghost",children:i("Delete")})]}),rowPrefix:"org-role",rows:s}),e[9]=l,e[10]=d,e[11]=u,e[12]=s,e[13]=i,e[14]=g):g=e[14];let c;return e[15]!==a||e[16]!==m||e[17]!==g?(c=n(Ve,{action:a,heading:m,testId:"org-roles",children:g}),e[15]=a,e[16]=m,e[17]=g,e[18]=c):c=e[18],c},Ut=t=>{const e=J(199),{organizationId:l,rolesEnabled:d,teamsEnabled:u}=t,s=re(),i=H(),[o,r]=j(null),[a,m]=j(null),[g,c]=j(!1),[f,b]=j(null);let h;e[0]!==l?(h=["lunora-auth-org-members",l],e[0]=l,e[1]=h):h=e[1];let v;e[2]!==s||e[3]!==l?(v=()=>s.listAuthOrgMembers({limit:200,organizationId:l}),e[2]=s,e[3]=l,e[4]=v):v=e[4];const k=Ge(h,v);let p;e[5]!==l?(p=["lunora-auth-org-invitations",l],e[5]=l,e[6]=p):p=e[6];let C;e[7]!==s||e[8]!==l?(C=()=>s.listAuthOrgInvitations({limit:200,organizationId:l}),e[7]=s,e[8]=l,e[9]=C):C=e[9];const y=Ge(p,C);let w;e[10]!==l?(w=["lunora-auth-org-teams",l],e[10]=l,e[11]=w):w=e[11];let x;e[12]!==s||e[13]!==l?(x=()=>s.listAuthOrgTeams({limit:200,organizationId:l}),e[12]=s,e[13]=l,e[14]=x):x=e[14];let I;e[15]!==u?(I={enabled:u},e[15]=u,e[16]=I):I=e[16];const D=Ge(w,x,I);let _;e[17]!==l?(_=["lunora-auth-org-roles",l],e[17]=l,e[18]=_):_=e[18];let N;e[19]!==s||e[20]!==l?(N=()=>s.listAuthOrgRoles({limit:200,organizationId:l}),e[19]=s,e[20]=l,e[21]=N):N=e[21];let z;e[22]!==d?(z={enabled:d},e[22]=d,e[23]=z):z=e[23];const O=Ge(_,N,z);let T;e[24]!==a?(T=["lunora-auth-org-team-members",a],e[24]=a,e[25]=T):T=e[25];let P;e[26]!==s||e[27]!==a?(P=()=>s.listAuthOrgTeamMembers({limit:200,teamId:a??""}),e[26]=s,e[27]=a,e[28]=P):P=e[28];const q=a!==null;let B;e[29]!==q?(B={enabled:q},e[29]=q,e[30]=B):B=e[30];const E=Ge(T,P,B);let Q;e[31]!==k.data?.rows?(Q=k.data?.rows??[],e[31]=k.data?.rows,e[32]=Q):Q=e[32];const K=Q;let $;e[33]!==y.data?.rows?($=y.data?.rows??[],e[33]=y.data?.rows,e[34]=$):$=e[34];const M=$;let U;e[35]!==D.data?.rows?(U=D.data?.rows??[],e[35]=D.data?.rows,e[36]=U):U=e[36];const ne=U;let X;e[37]!==O.data?.rows?(X=O.data?.rows??[],e[37]=O.data?.rows,e[38]=X):X=e[38];const ee=X;let Y;e[39]!==a||e[40]!==E?(Y=a===null?[]:E.data?.rows??[],e[39]=a,e[40]=E,e[41]=Y):Y=e[41];const te=Y,le=k.error??y.error??D.error??O.error??E.error;let Z;e[42]!==y||e[43]!==k||e[44]!==d||e[45]!==O||e[46]!==a||e[47]!==E||e[48]!==u||e[49]!==D?(Z=()=>{k.refetch(),y.refetch(),u&&D.refetch(),d&&O.refetch(),a!==null&&E.refetch()},e[42]=y,e[43]=k,e[44]=d,e[45]=O,e[46]=a,e[47]=E,e[48]=u,e[49]=D,e[50]=Z):Z=e[50];const A=Z;kt(A,!0);let ie;e[51]===Symbol.for("react.memo_cache_sentinel")?(ie=()=>{r(null)},e[51]=ie):ie=e[51];const F=ie;let Xe;e[52]!==A?(Xe=V=>{At((async()=>{c(!0),b(null);try{await V(),A(),c(!1)}catch(rt){b(_t(rt)),c(!1)}})())},e[52]=A,e[53]=Xe):Xe=e[53];const oe=Xe;let Ye;e[54]!==s||e[55]!==i?(Ye=V=>{const rt=S(V.id);r({action:async()=>{await s.removeAuthOrgTeam({teamId:rt}),m(gt=>gt===rt?null:gt)},kind:"confirm",message:i("Delete this team and its memberships? This cannot be undone."),testId:"org-team-delete",title:i("Delete team")})},e[54]=s,e[55]=i,e[56]=Ye):Ye=e[56];const at=Ye;let ce;e[57]!==i?(ce=i("userId"),e[57]=i,e[58]=ce):ce=e[58];let fe;e[59]!==ce?(fe={head:ce,render:Ht},e[59]=ce,e[60]=fe):fe=e[60];let ue;e[61]!==i?(ue=i("role"),e[61]=i,e[62]=ue):ue=e[62];let ge;e[63]!==ue?(ge={head:ue,render:qt},e[63]=ue,e[64]=ge):ge=e[64];let Ze;e[65]!==fe||e[66]!==ge?(Ze=[fe,ge],e[65]=fe,e[66]=ge,e[67]=Ze):Ze=e[67];const mt=Ze;let he;e[68]!==i?(he=i("email"),e[68]=i,e[69]=he):he=e[69];let be;e[70]!==he?(be={head:he,render:Gt},e[70]=he,e[71]=be):be=e[71];let pe;e[72]!==i?(pe=i("role"),e[72]=i,e[73]=pe):pe=e[73];let ve;e[74]!==pe?(ve={head:pe,render:Kt},e[74]=pe,e[75]=ve):ve=e[75];let ye;e[76]!==i?(ye=i("status"),e[76]=i,e[77]=ye):ye=e[77];let Ce;e[78]!==ye?(Ce={head:ye,render:Vt},e[78]=ye,e[79]=Ce):Ce=e[79];let et;e[80]!==be||e[81]!==ve||e[82]!==Ce?(et=[be,ve,Ce],e[80]=be,e[81]=ve,e[82]=Ce,e[83]=et):et=e[83];const dt=et;let xe;e[84]!==i?(xe=i("id"),e[84]=i,e[85]=xe):xe=e[85];let Ie;e[86]!==xe?(Ie={className:"font-mono text-xs",head:xe,render:Wt},e[86]=xe,e[87]=Ie):Ie=e[87];let ke;e[88]!==i?(ke=i("name"),e[88]=i,e[89]=ke):ke=e[89];let we;e[90]!==ke?(we={head:ke,render:Xt},e[90]=ke,e[91]=we):we=e[91];let tt;e[92]!==Ie||e[93]!==we?(tt=[Ie,we],e[92]=Ie,e[93]=we,e[94]=tt):tt=e[94];const ct=tt;let De;e[95]!==i?(De=i("userId"),e[95]=i,e[96]=De):De=e[96];let lt;e[97]!==De?(lt=[{head:De,render:Yt}],e[97]=De,e[98]=lt):lt=e[98];const ft=lt;let Se;e[99]!==i?(Se=i("role"),e[99]=i,e[100]=Se):Se=e[100];let ze;e[101]!==Se?(ze={head:Se,render:Zt},e[101]=Se,e[102]=ze):ze=e[102];let Ne;e[103]!==i?(Ne=i("Permission"),e[103]=i,e[104]=Ne):Ne=e[104];let Ae;e[105]!==Ne?(Ae={className:"font-mono text-xs whitespace-pre-wrap",head:Ne,render:el},e[105]=Ne,e[106]=Ae):Ae=e[106];let it;e[107]!==ze||e[108]!==Ae?(it=[ze,Ae],e[107]=ze,e[108]=Ae,e[109]=it):it=e[109];const ut=it;let _e;e[110]!==le?(_e=le!==null&&n("p",{className:"text-sm text-destructive","data-testid":"org-detail-error",role:"alert",children:le}),e[110]=le,e[111]=_e):_e=e[111];let Oe;e[112]!==f?(Oe=f!==null&&n("p",{className:"text-sm text-destructive","data-testid":"org-action-error",role:"alert",children:f}),e[112]=f,e[113]=Oe):Oe=e[113];let Te;e[114]!==s||e[115]!==oe?(Te=V=>{oe(()=>s.removeAuthOrgMember({memberId:V}))},e[114]=s,e[115]=oe,e[116]=Te):Te=e[116];let $e;e[117]!==g||e[118]!==mt||e[119]!==K||e[120]!==Te?($e=n(Pt,{actionBusy:g,memberColumns:mt,members:K,onDialog:r,onRemoveMember:Te}),e[117]=g,e[118]=mt,e[119]=K,e[120]=Te,e[121]=$e):$e=e[121];let Me;e[122]!==g||e[123]!==s||e[124]!==dt||e[125]!==M||e[126]!==oe||e[127]!==i?(Me=M.length>0&&n(Ve,{heading:i("Invitations"),testId:"org-invitations",children:n(We,{columns:dt,rowActions:V=>n(L,{"data-testid":`org-cancel-invitation-${S(V.id)}`,disabled:g,onClick:()=>{oe(()=>s.cancelAuthOrgInvitation({invitationId:S(V.id)}))},size:"xs",type:"button",variant:"ghost",children:i("Cancel")}),rowPrefix:"org-invitation",rows:M})}),e[122]=g,e[123]=s,e[124]=dt,e[125]=M,e[126]=oe,e[127]=i,e[128]=Me):Me=e[128];let Re;e[129]!==at||e[130]!==a||e[131]!==ct||e[132]!==ne||e[133]!==u?(Re=u&&n(Bt,{onConfirmDeleteTeam:at,onDialog:r,onSelectTeam:m,selectedTeam:a,teamColumns:ct,teams:ne}),e[129]=at,e[130]=a,e[131]=ct,e[132]=ne,e[133]=u,e[134]=Re):Re=e[134];let Fe;e[135]!==g||e[136]!==s||e[137]!==oe||e[138]!==a||e[139]!==ft||e[140]!==te||e[141]!==u?(Fe=u&&a!==null&&n(Qt,{actionBusy:g,onDialog:r,onRemoveTeamMember:V=>{oe(()=>s.removeAuthOrgTeamMember({teamMemberId:V}))},selectedTeam:a,teamMemberColumns:ft,teamMembers:te}),e[135]=g,e[136]=s,e[137]=oe,e[138]=a,e[139]=ft,e[140]=te,e[141]=u,e[142]=Fe):Fe=e[142];let Ee;e[143]!==s||e[144]!==ut||e[145]!==ee||e[146]!==d||e[147]!==i?(Ee=d&&n(Jt,{onConfirmDeleteRole:V=>{r({action:()=>s.deleteAuthOrgRole({roleId:V}),kind:"confirm",message:i("Delete this custom role? Members keeping it will lose its grants."),testId:"org-role-delete",title:i("Delete role")})},onDialog:r,roleColumns:ut,roles:ee}),e[143]=s,e[144]=ut,e[145]=ee,e[146]=d,e[147]=i,e[148]=Ee):Ee=e[148];let je;e[149]!==o?.kind||e[150]!==l||e[151]!==A?(je=o?.kind==="add-member"&&n(Rt,{onClose:F,onDone:A,organizationId:l}),e[149]=o?.kind,e[150]=l,e[151]=A,e[152]=je):je=e[152];let Le;e[153]!==o?.kind||e[154]!==l||e[155]!==A?(Le=o?.kind==="invite-member"&&n(Ft,{onClose:F,onDone:A,organizationId:l}),e[153]=o?.kind,e[154]=l,e[155]=A,e[156]=Le):Le=e[156];let Pe;e[157]!==o||e[158]!==A?(Pe=o?.kind==="member-role"&&n(Et,{member:o.member,onClose:F,onDone:A}),e[157]=o,e[158]=A,e[159]=Pe):Pe=e[159];let Be;e[160]!==o?.kind||e[161]!==l||e[162]!==A?(Be=o?.kind==="team-create"&&n(bt,{mode:"create",onClose:F,onDone:A,organizationId:l}),e[160]=o?.kind,e[161]=l,e[162]=A,e[163]=Be):Be=e[163];let Qe;e[164]!==o||e[165]!==l||e[166]!==A?(Qe=o?.kind==="team-rename"&&n(bt,{mode:"edit",onClose:F,onDone:A,organizationId:l,team:o.team}),e[164]=o,e[165]=l,e[166]=A,e[167]=Qe):Qe=e[167];let Je;e[168]!==o||e[169]!==A?(Je=o?.kind==="team-add-member"&&n(jt,{onClose:F,onDone:A,teamId:o.teamId}),e[168]=o,e[169]=A,e[170]=Je):Je=e[170];let Ue;e[171]!==o?.kind||e[172]!==l||e[173]!==A?(Ue=o?.kind==="role-create"&&n(pt,{mode:"create",onClose:F,onDone:A,organizationId:l}),e[171]=o?.kind,e[172]=l,e[173]=A,e[174]=Ue):Ue=e[174];let He;e[175]!==o||e[176]!==l||e[177]!==A?(He=o?.kind==="role-edit"&&n(pt,{mode:"edit",onClose:F,onDone:A,organizationId:l,role:o.role}),e[175]=o,e[176]=l,e[177]=A,e[178]=He):He=e[178];let qe;e[179]!==o||e[180]!==A?(qe=o?.kind==="confirm"&&n(zt,{action:o.action,message:o.message,onClose:F,onDone:A,testId:o.testId,title:o.title}),e[179]=o,e[180]=A,e[181]=qe):qe=e[181];let ot;return e[182]!==_e||e[183]!==Oe||e[184]!==$e||e[185]!==Me||e[186]!==Re||e[187]!==Fe||e[188]!==Ee||e[189]!==je||e[190]!==Le||e[191]!==Pe||e[192]!==Be||e[193]!==Qe||e[194]!==Je||e[195]!==Ue||e[196]!==He||e[197]!==qe?(ot=R("div",{className:"flex flex-col gap-4","data-testid":"org-detail",children:[_e,Oe,$e,Me,Re,Fe,Ee,je,Le,Pe,Be,Qe,Je,Ue,He,qe]}),e[182]=_e,e[183]=Oe,e[184]=$e,e[185]=Me,e[186]=Re,e[187]=Fe,e[188]=Ee,e[189]=je,e[190]=Le,e[191]=Pe,e[192]=Be,e[193]=Qe,e[194]=Je,e[195]=Ue,e[196]=He,e[197]=qe,e[198]=ot):ot=e[198],ot};function Ht(t){return n("span",{className:"font-mono text-xs",children:S(t.userId)})}function qt(t){return S(t.role)}function Gt(t){return S(t.email)}function Kt(t){return S(t.role)}function Vt(t){return S(t.status)}function Wt(t){return S(t.id)}function Xt(t){return S(t.name)}function Yt(t){return n("span",{className:"font-mono text-xs",children:S(t.userId)})}function Zt(t){return S(t.role)}function el(t){return S(t.permission)}const yl=()=>{const t=J(62),e=re(),l=H(),{config:d,ready:u}=Nt(),s=d.capabilities.organization,[i,o]=j(null),[r,a]=j(null);let m;t[0]===Symbol.for("react.memo_cache_sentinel")?(m=["lunora-auth-orgs"],t[0]=m):m=t[0];let g;t[1]!==e?(g=()=>e.listAuthOrganizations({limit:100}),t[1]=e,t[2]=g):g=t[2];let c;t[3]!==s?(c={enabled:s},t[3]=s,t[4]=c):c=t[4];const f=Ge(m,g,c),b=f.data?.rows??null;let h;t[5]!==f?(h=()=>{f.refetch()},t[5]=f,t[6]=h):h=t[6],kt(h,s);let v;t[7]===Symbol.for("react.memo_cache_sentinel")?(v=()=>{a(null)},t[7]=v):v=t[7];const k=v;let p;t[8]!==f?(p=()=>{f.refetch()},t[8]=f,t[9]=p):p=t[9];const C=p;let y;t[10]===Symbol.for("react.memo_cache_sentinel")?(y=$=>{o($)},t[10]=y):y=t[10];const w=y;if(u&&!s){let $;t[11]!==l?($=l("Enable the organization() plugin in your auth config to manage organizations here."),t[11]=l,t[12]=$):$=t[12];let M;t[13]!==l?(M=l("Organizations are not enabled."),t[13]=l,t[14]=M):M=t[14];let U;return t[15]!==$||t[16]!==M?(U=n(Ke,{description:$,testId:"org-disabled",title:M}),t[15]=$,t[16]=M,t[17]=U):U=t[17],U}let x;t[18]!==l?(x=l("Organizations"),t[18]=l,t[19]=x):x=t[19];let I;t[20]!==x?(I=n("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:x}),t[20]=x,t[21]=I):I=t[21];let D;t[22]===Symbol.for("react.memo_cache_sentinel")?(D=()=>{a({kind:"create"})},t[22]=D):D=t[22];let _;t[23]!==l?(_=l("New organization"),t[23]=l,t[24]=_):_=t[24];let N;t[25]!==_?(N=n(L,{"data-testid":"org-new",onClick:D,size:"sm",type:"button",children:_}),t[25]=_,t[26]=N):N=t[26];let z;t[27]!==N||t[28]!==I?(z=R("div",{className:"flex items-center justify-between",children:[I,N]}),t[27]=N,t[28]=I,t[29]=z):z=t[29];let O;t[30]!==f.error?(O=f.error!==null&&n("p",{className:"text-sm text-destructive","data-testid":"org-error",role:"alert",children:f.error}),t[30]=f.error,t[31]=O):O=t[31];let T;t[32]!==b||t[33]!==l?(T=b!==null&&b.length===0&&n(Ke,{testId:"org-empty",title:l("No organizations.")}),t[32]=b,t[33]=l,t[34]=T):T=t[34];let P;t[35]!==b||t[36]!==i||t[37]!==l?(P=b!==null&&b.length>0&&n(yt,{className:"overflow-hidden py-0",children:n(vt,{className:"px-0",children:R(It,{"data-testid":"org-table",children:[n(Ct,{children:R(nt,{children:[n(me,{children:l("id")}),n(me,{children:l("name")}),n(me,{children:l("slug")}),n(me,{children:l("created")}),n(me,{"aria-label":l("Actions")})]})}),n(xt,{children:b.map($=>{const M=S($.id);return R(nt,{"data-testid":`org-row-${M}`,children:[n(de,{className:"font-mono text-xs",children:M}),n(de,{children:S($.name)}),n(de,{children:S($.slug)}),n(de,{className:"text-muted-foreground tabular-nums",children:Ot($.createdAt)}),n(de,{children:R("div",{className:"flex justify-end gap-1",children:[n(L,{"aria-pressed":i===M,"data-testid":`org-select-${M}`,onClick:()=>{w(M)},size:"xs",type:"button",variant:"ghost",children:l("Manage")}),n(L,{"data-testid":`org-edit-${M}`,onClick:()=>{a({kind:"edit",org:$})},size:"xs",type:"button",variant:"ghost",children:l("Edit")}),n(L,{"data-testid":`org-delete-${M}`,onClick:()=>{a({kind:"delete",org:$})},size:"xs",type:"button",variant:"ghost",children:l("Delete")})]})})]},M)})})]})})}),t[35]=b,t[36]=i,t[37]=l,t[38]=P):P=t[38];let q;t[39]!==d.organization||t[40]!==i?(q=i!==null&&n(Ut,{organizationId:i,rolesEnabled:d.organization.roles,teamsEnabled:d.organization.teams}),t[39]=d.organization,t[40]=i,t[41]=q):q=t[41];let B;t[42]!==r?.kind||t[43]!==C?(B=r?.kind==="create"&&n(ht,{mode:"create",onClose:k,onDone:C}),t[42]=r?.kind,t[43]=C,t[44]=B):B=t[44];let E;t[45]!==r||t[46]!==C?(E=r?.kind==="edit"&&n(ht,{mode:"edit",onClose:k,onDone:C,org:r.org}),t[45]=r,t[46]=C,t[47]=E):E=t[47];let Q;t[48]!==e||t[49]!==r||t[50]!==C||t[51]!==l?(Q=r?.kind==="delete"&&n(zt,{action:async()=>{const $=S(r.org.id);await e.deleteAuthOrganization({organizationId:$}),o(M=>M===$?null:M)},message:l("Delete this organization? Its members, invitations, teams, and custom roles are removed. This cannot be undone."),onClose:k,onDone:C,testId:"org-delete",title:l("Delete organization")}),t[48]=e,t[49]=r,t[50]=C,t[51]=l,t[52]=Q):Q=t[52];let K;return t[53]!==z||t[54]!==O||t[55]!==T||t[56]!==P||t[57]!==q||t[58]!==B||t[59]!==E||t[60]!==Q?(K=R("div",{className:"flex flex-col gap-4","data-testid":"lunora-organizations",children:[z,O,T,P,q,B,E,Q]}),t[53]=z,t[54]=O,t[55]=T,t[56]=P,t[57]=q,t[58]=B,t[59]=E,t[60]=Q,t[61]=K):K=t[61],K};export{yl as default};
|
|
1
|
+
import{c as J}from"react/compiler-runtime";import{useLunora as re}from"@lunora/react";import{useState as j}from"react";import{B as L}from"../packem_shared/button-q0UYSmrn.mjs";import{a as vt,C as yt}from"../packem_shared/card--2hKx4L2.mjs";import{E as Ke}from"../packem_shared/empty-state-D7jEML_T.mjs";import{c as me,a as Ct,b as nt,e as de,d as xt,T as It}from"../packem_shared/table-D0SBiDu-.mjs";import{b as Ge}from"../packem_shared/use-admin-query-BKXiqLci.mjs";import{u as Nt}from"../packem_shared/use-auth-config-CuM3eJZz.mjs";import{useAutoRefresh as kt}from"../packem_shared/DEFAULT_AUTO_REFRESH_MS-DuULO4XM.mjs";import{useT as H}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.mjs";import{i as S,f as At,b as _t,h as Ot}from"../packem_shared/internal-B6haJbiP.mjs";import{I as W}from"../packem_shared/input-CXhxesPC.mjs";import{L as Tt}from"../packem_shared/label-DKFzyHq6.mjs";import{M as $t}from"../packem_shared/modal-shell-CDztwLnv.mjs";import{T as wt}from"../packem_shared/textarea--40GKAyz.mjs";import{u as se}from"../packem_shared/use-async-submit-BTr3w2-K.mjs";import{jsx as n,jsxs as R,Fragment as st}from"react/jsx-runtime";const Dt=t=>{const e=JSON.parse(t);if(typeof e!="object"||e===null||Array.isArray(e))throw new TypeError("Expected a JSON object");return e},Mt=t=>{const e=Dt(t),l={};for(const[d,u]of Object.entries(e)){if(!Array.isArray(u)||u.some(s=>typeof s!="string"))throw new TypeError(`"${d}" must map to an array of action strings`);l[d]=u}return l},St=t=>t==null||t===""?"":typeof t=="string"?t:JSON.stringify(t,null,2),G=t=>{const e=J(6),{children:l,htmlFor:d,label:u}=t;let s;e[0]!==d||e[1]!==u?(s=n(Tt,{htmlFor:d,children:u}),e[0]=d,e[1]=u,e[2]=s):s=e[2];let i;return e[3]!==l||e[4]!==s?(i=R("div",{className:"flex flex-col gap-1",children:[s,l]}),e[3]=l,e[4]=s,e[5]=i):i=e[5],i},ae=({busy:t,canSubmit:e,children:l,destructive:d=!1,error:u,onClose:s,onSubmit:i,submitLabel:o,testId:r,title:a})=>{const m=H();return R($t,{label:a,onClose:s,panelTestId:`${r}-panel`,testId:`${r}-overlay`,variant:"dialog",children:[n("h2",{className:"text-sm font-semibold text-foreground",children:a}),l,u!==null&&n("p",{className:"text-sm text-destructive","data-testid":`${r}-error`,role:"alert",children:u}),R("div",{className:"flex justify-end gap-2 pt-1",children:[n(L,{"data-testid":`${r}-cancel`,onClick:s,size:"sm",type:"button",variant:"outline",children:m("Cancel")}),n(L,{"data-testid":`${r}-submit`,disabled:t||!e,onClick:i,size:"sm",type:"button",variant:d?"destructive":"default",children:t?m("Saving…"):o})]})]})},ht=t=>{const e=J(79),{mode:l,onClose:d,onDone:u,org:s}=t,i=re(),o=H(),{busy:r,error:a,run:m}=se();let g;e[0]!==s?(g=s?S(s.name):"",e[0]=s,e[1]=g):g=e[1];const[c,f]=j(g);let b;e[2]!==s?(b=s?S(s.slug):"",e[2]=s,e[3]=b):b=e[3];const[h,v]=j(b);let k;e[4]!==s?(k=s?S(s.logo):"",e[4]=s,e[5]=k):k=e[5];const[p,C]=j(k),[y,w]=j("");let x;e[6]!==l||e[7]!==s?.metadata?(x=l==="edit"?St(s?.metadata):"",e[6]=l,e[7]=s?.metadata,e[8]=x):x=e[8];const[I,D]=j(x);let _;e[9]!==i||e[10]!==p||e[11]!==I||e[12]!==l||e[13]!==c||e[14]!==d||e[15]!==u||e[16]!==s?.id||e[17]!==y||e[18]!==m||e[19]!==h?(_=()=>{m(async()=>{const F=I.trim()===""?void 0:Dt(I);l==="create"?await i.createAuthOrganization({logo:p.trim()===""?void 0:p.trim(),metadata:F,name:c.trim(),ownerId:y.trim()===""?void 0:y.trim(),slug:h.trim()===""?void 0:h.trim()}):await i.updateAuthOrganization({logo:p.trim()===""?void 0:p.trim(),metadata:F,name:c.trim()===""?void 0:c.trim(),organizationId:S(s?.id),slug:h.trim()===""?void 0:h.trim()}),u(),d()})},e[9]=i,e[10]=p,e[11]=I,e[12]=l,e[13]=c,e[14]=d,e[15]=u,e[16]=s?.id,e[17]=y,e[18]=m,e[19]=h,e[20]=_):_=e[20];const N=_;let z;e[21]!==l||e[22]!==c?(z=c.trim()!==""||l==="edit",e[21]=l,e[22]=c,e[23]=z):z=e[23];let O;e[24]!==l||e[25]!==o?(O=o(l==="create"?"Create":"Save"),e[24]=l,e[25]=o,e[26]=O):O=e[26];let T;e[27]!==l||e[28]!==o?(T=o(l==="create"?"New organization":"Edit organization"),e[27]=l,e[28]=o,e[29]=T):T=e[29];let P;e[30]!==o?(P=o("name"),e[30]=o,e[31]=P):P=e[31];let q;e[32]===Symbol.for("react.memo_cache_sentinel")?(q=F=>{f(F.target.value)},e[32]=q):q=e[32];let B;e[33]!==c?(B=n(W,{"data-testid":"org-form-name",id:"org-form-name",onChange:q,value:c}),e[33]=c,e[34]=B):B=e[34];let E;e[35]!==B||e[36]!==P?(E=n(G,{htmlFor:"org-form-name",label:P,children:B}),e[35]=B,e[36]=P,e[37]=E):E=e[37];let Q;e[38]!==o?(Q=o("Slug (optional — derived from name)"),e[38]=o,e[39]=Q):Q=e[39];let K;e[40]===Symbol.for("react.memo_cache_sentinel")?(K=F=>{v(F.target.value)},e[40]=K):K=e[40];let $;e[41]!==h?($=n(W,{"data-testid":"org-form-slug",id:"org-form-slug",onChange:K,value:h}),e[41]=h,e[42]=$):$=e[42];let M;e[43]!==Q||e[44]!==$?(M=n(G,{htmlFor:"org-form-slug",label:Q,children:$}),e[43]=Q,e[44]=$,e[45]=M):M=e[45];let U;e[46]!==o?(U=o("Logo URL (optional)"),e[46]=o,e[47]=U):U=e[47];let ne;e[48]===Symbol.for("react.memo_cache_sentinel")?(ne=F=>{C(F.target.value)},e[48]=ne):ne=e[48];let X;e[49]!==p?(X=n(W,{"data-testid":"org-form-logo",id:"org-form-logo",onChange:ne,value:p}),e[49]=p,e[50]=X):X=e[50];let ee;e[51]!==U||e[52]!==X?(ee=n(G,{htmlFor:"org-form-logo",label:U,children:X}),e[51]=U,e[52]=X,e[53]=ee):ee=e[53];let Y;e[54]!==l||e[55]!==y||e[56]!==o?(Y=l==="create"&&n(G,{htmlFor:"org-form-owner",label:o("Owner user id (optional)"),children:n(W,{"data-testid":"org-form-owner",id:"org-form-owner",onChange:F=>{w(F.target.value)},value:y})}),e[54]=l,e[55]=y,e[56]=o,e[57]=Y):Y=e[57];let te;e[58]!==o?(te=o("Metadata (JSON, optional)"),e[58]=o,e[59]=te):te=e[59];let le;e[60]===Symbol.for("react.memo_cache_sentinel")?(le=F=>{D(F.target.value)},e[60]=le):le=e[60];let Z;e[61]!==I?(Z=n(wt,{"data-testid":"org-form-metadata",id:"org-form-metadata",onChange:le,value:I}),e[61]=I,e[62]=Z):Z=e[62];let A;e[63]!==te||e[64]!==Z?(A=n(G,{htmlFor:"org-form-metadata",label:te,children:Z}),e[63]=te,e[64]=Z,e[65]=A):A=e[65];let ie;return e[66]!==r||e[67]!==a||e[68]!==d||e[69]!==N||e[70]!==E||e[71]!==M||e[72]!==ee||e[73]!==Y||e[74]!==A||e[75]!==z||e[76]!==O||e[77]!==T?(ie=R(ae,{busy:r,canSubmit:z,error:a,onClose:d,onSubmit:N,submitLabel:O,testId:"org-form",title:T,children:[E,M,ee,Y,A]}),e[66]=r,e[67]=a,e[68]=d,e[69]=N,e[70]=E,e[71]=M,e[72]=ee,e[73]=Y,e[74]=A,e[75]=z,e[76]=O,e[77]=T,e[78]=ie):ie=e[78],ie},Rt=t=>{const e=J(40),{onClose:l,onDone:d,organizationId:u}=t,s=re(),i=H(),{busy:o,error:r,run:a}=se(),[m,g]=j(""),[c,f]=j("");let b;e[0]!==s||e[1]!==l||e[2]!==d||e[3]!==u||e[4]!==c||e[5]!==a||e[6]!==m?(b=()=>{a(async()=>{await s.addAuthOrgMember({organizationId:u,role:c.trim()===""?void 0:c.trim(),userId:m.trim()}),d(),l()})},e[0]=s,e[1]=l,e[2]=d,e[3]=u,e[4]=c,e[5]=a,e[6]=m,e[7]=b):b=e[7];const h=b;let v;e[8]!==m?(v=m.trim(),e[8]=m,e[9]=v):v=e[9];const k=v!=="";let p;e[10]!==i?(p=i("Add member"),e[10]=i,e[11]=p):p=e[11];let C;e[12]!==i?(C=i("Add member"),e[12]=i,e[13]=C):C=e[13];let y;e[14]!==i?(y=i("User id"),e[14]=i,e[15]=y):y=e[15];let w;e[16]===Symbol.for("react.memo_cache_sentinel")?(w=T=>{g(T.target.value)},e[16]=w):w=e[16];let x;e[17]!==m?(x=n(W,{"data-testid":"org-add-member-user",id:"org-add-member-user",onChange:w,value:m}),e[17]=m,e[18]=x):x=e[18];let I;e[19]!==y||e[20]!==x?(I=n(G,{htmlFor:"org-add-member-user",label:y,children:x}),e[19]=y,e[20]=x,e[21]=I):I=e[21];let D;e[22]!==i?(D=i("Role (optional)"),e[22]=i,e[23]=D):D=e[23];let _;e[24]===Symbol.for("react.memo_cache_sentinel")?(_=T=>{f(T.target.value)},e[24]=_):_=e[24];let N;e[25]!==c?(N=n(W,{"data-testid":"org-add-member-role",id:"org-add-member-role",onChange:_,value:c}),e[25]=c,e[26]=N):N=e[26];let z;e[27]!==D||e[28]!==N?(z=n(G,{htmlFor:"org-add-member-role",label:D,children:N}),e[27]=D,e[28]=N,e[29]=z):z=e[29];let O;return e[30]!==o||e[31]!==r||e[32]!==l||e[33]!==h||e[34]!==z||e[35]!==k||e[36]!==p||e[37]!==C||e[38]!==I?(O=R(ae,{busy:o,canSubmit:k,error:r,onClose:l,onSubmit:h,submitLabel:p,testId:"org-add-member",title:C,children:[I,z]}),e[30]=o,e[31]=r,e[32]=l,e[33]=h,e[34]=z,e[35]=k,e[36]=p,e[37]=C,e[38]=I,e[39]=O):O=e[39],O},Ft=t=>{const e=J(40),{onClose:l,onDone:d,organizationId:u}=t,s=re(),i=H(),{busy:o,error:r,run:a}=se(),[m,g]=j(""),[c,f]=j("");let b;e[0]!==s||e[1]!==m||e[2]!==l||e[3]!==d||e[4]!==u||e[5]!==c||e[6]!==a?(b=()=>{a(async()=>{await s.inviteAuthOrgMember({email:m.trim(),organizationId:u,role:c.trim()===""?void 0:c.trim()}),d(),l()})},e[0]=s,e[1]=m,e[2]=l,e[3]=d,e[4]=u,e[5]=c,e[6]=a,e[7]=b):b=e[7];const h=b;let v;e[8]!==m?(v=m.trim(),e[8]=m,e[9]=v):v=e[9];const k=v!=="";let p;e[10]!==i?(p=i("Send invitation"),e[10]=i,e[11]=p):p=e[11];let C;e[12]!==i?(C=i("Invite member"),e[12]=i,e[13]=C):C=e[13];let y;e[14]!==i?(y=i("email"),e[14]=i,e[15]=y):y=e[15];let w;e[16]===Symbol.for("react.memo_cache_sentinel")?(w=T=>{g(T.target.value)},e[16]=w):w=e[16];let x;e[17]!==m?(x=n(W,{"data-testid":"org-invite-member-email",id:"org-invite-member-email",onChange:w,type:"email",value:m}),e[17]=m,e[18]=x):x=e[18];let I;e[19]!==y||e[20]!==x?(I=n(G,{htmlFor:"org-invite-member-email",label:y,children:x}),e[19]=y,e[20]=x,e[21]=I):I=e[21];let D;e[22]!==i?(D=i("Role (optional)"),e[22]=i,e[23]=D):D=e[23];let _;e[24]===Symbol.for("react.memo_cache_sentinel")?(_=T=>{f(T.target.value)},e[24]=_):_=e[24];let N;e[25]!==c?(N=n(W,{"data-testid":"org-invite-member-role",id:"org-invite-member-role",onChange:_,value:c}),e[25]=c,e[26]=N):N=e[26];let z;e[27]!==D||e[28]!==N?(z=n(G,{htmlFor:"org-invite-member-role",label:D,children:N}),e[27]=D,e[28]=N,e[29]=z):z=e[29];let O;return e[30]!==o||e[31]!==r||e[32]!==l||e[33]!==h||e[34]!==z||e[35]!==k||e[36]!==p||e[37]!==C||e[38]!==I?(O=R(ae,{busy:o,canSubmit:k,error:r,onClose:l,onSubmit:h,submitLabel:p,testId:"org-invite-member",title:C,children:[I,z]}),e[30]=o,e[31]=r,e[32]=l,e[33]=h,e[34]=z,e[35]=k,e[36]=p,e[37]=C,e[38]=I,e[39]=O):O=e[39],O},Et=t=>{const e=J(32),{member:l,onClose:d,onDone:u}=t,s=re(),i=H(),{busy:o,error:r,run:a}=se();let m;e[0]!==l.role?(m=()=>S(l.role),e[0]=l.role,e[1]=m):m=e[1];const[g,c]=j(m);let f;e[2]!==s||e[3]!==l.id||e[4]!==d||e[5]!==u||e[6]!==g||e[7]!==a?(f=()=>{a(async()=>{await s.setAuthOrgMemberRole({memberId:S(l.id),role:g.trim()}),u(),d()})},e[2]=s,e[3]=l.id,e[4]=d,e[5]=u,e[6]=g,e[7]=a,e[8]=f):f=e[8];const b=f;let h;e[9]!==g?(h=g.trim(),e[9]=g,e[10]=h):h=e[10];const v=h!=="";let k;e[11]!==i?(k=i("Save"),e[11]=i,e[12]=k):k=e[12];let p;e[13]!==i?(p=i("Change member role"),e[13]=i,e[14]=p):p=e[14];let C;e[15]!==i?(C=i("Role"),e[15]=i,e[16]=C):C=e[16];let y;e[17]===Symbol.for("react.memo_cache_sentinel")?(y=D=>{c(D.target.value)},e[17]=y):y=e[17];let w;e[18]!==g?(w=n(W,{"data-testid":"org-member-role-value",id:"org-member-role-value",onChange:y,value:g}),e[18]=g,e[19]=w):w=e[19];let x;e[20]!==C||e[21]!==w?(x=n(G,{htmlFor:"org-member-role-value",label:C,children:w}),e[20]=C,e[21]=w,e[22]=x):x=e[22];let I;return e[23]!==o||e[24]!==r||e[25]!==d||e[26]!==b||e[27]!==x||e[28]!==v||e[29]!==k||e[30]!==p?(I=n(ae,{busy:o,canSubmit:v,error:r,onClose:d,onSubmit:b,submitLabel:k,testId:"org-member-role",title:p,children:x}),e[23]=o,e[24]=r,e[25]=d,e[26]=b,e[27]=x,e[28]=v,e[29]=k,e[30]=p,e[31]=I):I=e[31],I},bt=t=>{const e=J(36),{mode:l,onClose:d,onDone:u,organizationId:s,team:i}=t,o=re(),r=H(),{busy:a,error:m,run:g}=se();let c;e[0]!==i?(c=i?S(i.name):"",e[0]=i,e[1]=c):c=e[1];const[f,b]=j(c);let h;e[2]!==o||e[3]!==l||e[4]!==f||e[5]!==d||e[6]!==u||e[7]!==s||e[8]!==g||e[9]!==i?.id?(h=()=>{g(async()=>{await(l==="create"?o.createAuthOrgTeam({name:f.trim(),organizationId:s}):o.updateAuthOrgTeam({name:f.trim(),teamId:S(i?.id)})),u(),d()})},e[2]=o,e[3]=l,e[4]=f,e[5]=d,e[6]=u,e[7]=s,e[8]=g,e[9]=i?.id,e[10]=h):h=e[10];const v=h;let k;e[11]!==f?(k=f.trim(),e[11]=f,e[12]=k):k=e[12];const p=k!=="";let C;e[13]!==l||e[14]!==r?(C=r(l==="create"?"Create":"Save"),e[13]=l,e[14]=r,e[15]=C):C=e[15];let y;e[16]!==l||e[17]!==r?(y=r(l==="create"?"New team":"Rename team"),e[16]=l,e[17]=r,e[18]=y):y=e[18];let w;e[19]!==r?(w=r("name"),e[19]=r,e[20]=w):w=e[20];let x;e[21]===Symbol.for("react.memo_cache_sentinel")?(x=N=>{b(N.target.value)},e[21]=x):x=e[21];let I;e[22]!==f?(I=n(W,{"data-testid":"org-team-form-name",id:"org-team-form-name",onChange:x,value:f}),e[22]=f,e[23]=I):I=e[23];let D;e[24]!==w||e[25]!==I?(D=n(G,{htmlFor:"org-team-form-name",label:w,children:I}),e[24]=w,e[25]=I,e[26]=D):D=e[26];let _;return e[27]!==a||e[28]!==m||e[29]!==d||e[30]!==v||e[31]!==D||e[32]!==p||e[33]!==C||e[34]!==y?(_=n(ae,{busy:a,canSubmit:p,error:m,onClose:d,onSubmit:v,submitLabel:C,testId:"org-team-form",title:y,children:D}),e[27]=a,e[28]=m,e[29]=d,e[30]=v,e[31]=D,e[32]=p,e[33]=C,e[34]=y,e[35]=_):_=e[35],_},jt=t=>{const e=J(30),{onClose:l,onDone:d,teamId:u}=t,s=re(),i=H(),{busy:o,error:r,run:a}=se(),[m,g]=j("");let c;e[0]!==s||e[1]!==l||e[2]!==d||e[3]!==a||e[4]!==u||e[5]!==m?(c=()=>{a(async()=>{await s.addAuthOrgTeamMember({teamId:u,userId:m.trim()}),d(),l()})},e[0]=s,e[1]=l,e[2]=d,e[3]=a,e[4]=u,e[5]=m,e[6]=c):c=e[6];const f=c;let b;e[7]!==m?(b=m.trim(),e[7]=m,e[8]=b):b=e[8];const h=b!=="";let v;e[9]!==i?(v=i("Add member"),e[9]=i,e[10]=v):v=e[10];let k;e[11]!==i?(k=i("Add team member"),e[11]=i,e[12]=k):k=e[12];let p;e[13]!==i?(p=i("User id"),e[13]=i,e[14]=p):p=e[14];let C;e[15]===Symbol.for("react.memo_cache_sentinel")?(C=I=>{g(I.target.value)},e[15]=C):C=e[15];let y;e[16]!==m?(y=n(W,{"data-testid":"org-team-add-member-user",id:"org-team-add-member-user",onChange:C,value:m}),e[16]=m,e[17]=y):y=e[17];let w;e[18]!==p||e[19]!==y?(w=n(G,{htmlFor:"org-team-add-member-user",label:p,children:y}),e[18]=p,e[19]=y,e[20]=w):w=e[20];let x;return e[21]!==o||e[22]!==r||e[23]!==l||e[24]!==f||e[25]!==h||e[26]!==v||e[27]!==k||e[28]!==w?(x=n(ae,{busy:o,canSubmit:h,error:r,onClose:l,onSubmit:f,submitLabel:v,testId:"org-team-add-member",title:k,children:w}),e[21]=o,e[22]=r,e[23]=l,e[24]=f,e[25]=h,e[26]=v,e[27]=k,e[28]=w,e[29]=x):x=e[29],x},pt=t=>{const e=J(47),{mode:l,onClose:d,onDone:u,organizationId:s,role:i}=t,o=re(),r=H(),{busy:a,error:m,run:g}=se();let c;e[0]!==i?(c=i?S(i.role):"",e[0]=i,e[1]=c):c=e[1];const[f,b]=j(c);let h;e[2]!==l||e[3]!==i?.permission?(h=l==="edit"?St(i?.permission):"",e[2]=l,e[3]=i?.permission,e[4]=h):h=e[4];const[v,k]=j(h);let p;e[5]!==o||e[6]!==l||e[7]!==f||e[8]!==d||e[9]!==u||e[10]!==s||e[11]!==v||e[12]!==i?.id||e[13]!==g?(p=()=>{g(async()=>{const T=Mt(v);await(l==="create"?o.createAuthOrgRole({organizationId:s,permission:T,role:f.trim()}):o.updateAuthOrgRole({permission:T,roleId:S(i?.id)})),u(),d()})},e[5]=o,e[6]=l,e[7]=f,e[8]=d,e[9]=u,e[10]=s,e[11]=v,e[12]=i?.id,e[13]=g,e[14]=p):p=e[14];const C=p;let y;e[15]!==l||e[16]!==f||e[17]!==v?(y=v.trim()!==""&&(l==="edit"||f.trim()!==""),e[15]=l,e[16]=f,e[17]=v,e[18]=y):y=e[18];let w;e[19]!==l||e[20]!==r?(w=r(l==="create"?"Create":"Save"),e[19]=l,e[20]=r,e[21]=w):w=e[21];let x;e[22]!==l||e[23]!==r?(x=r(l==="create"?"New role":"Edit role"),e[22]=l,e[23]=r,e[24]=x):x=e[24];let I;e[25]!==l||e[26]!==f||e[27]!==r?(I=l==="create"&&n(G,{htmlFor:"org-role-form-name",label:r("Role name"),children:n(W,{"data-testid":"org-role-form-name",id:"org-role-form-name",onChange:T=>{b(T.target.value)},value:f})}),e[25]=l,e[26]=f,e[27]=r,e[28]=I):I=e[28];let D;e[29]!==r?(D=r('Permission (JSON, e.g. {"project":["create","update"]})'),e[29]=r,e[30]=D):D=e[30];let _;e[31]===Symbol.for("react.memo_cache_sentinel")?(_=T=>{k(T.target.value)},e[31]=_):_=e[31];let N;e[32]!==v?(N=n(wt,{"data-testid":"org-role-form-permission",id:"org-role-form-permission",onChange:_,value:v}),e[32]=v,e[33]=N):N=e[33];let z;e[34]!==N||e[35]!==D?(z=n(G,{htmlFor:"org-role-form-permission",label:D,children:N}),e[34]=N,e[35]=D,e[36]=z):z=e[36];let O;return e[37]!==a||e[38]!==m||e[39]!==d||e[40]!==C||e[41]!==z||e[42]!==y||e[43]!==w||e[44]!==x||e[45]!==I?(O=R(ae,{busy:a,canSubmit:y,error:m,onClose:d,onSubmit:C,submitLabel:w,testId:"org-role-form",title:x,children:[I,z]}),e[37]=a,e[38]=m,e[39]=d,e[40]=C,e[41]=z,e[42]=y,e[43]=w,e[44]=x,e[45]=I,e[46]=O):O=e[46],O},zt=t=>{const e=J(18),{action:l,message:d,onClose:u,onDone:s,testId:i,title:o}=t,r=H(),{busy:a,error:m,run:g}=se();let c;e[0]!==l||e[1]!==u||e[2]!==s||e[3]!==g?(c=()=>{g(async()=>{await l(),s(),u()})},e[0]=l,e[1]=u,e[2]=s,e[3]=g,e[4]=c):c=e[4];const f=c;let b;e[5]!==r?(b=r("Delete"),e[5]=r,e[6]=b):b=e[6];let h;e[7]!==d?(h=n("p",{className:"text-sm text-muted-foreground",children:d}),e[7]=d,e[8]=h):h=e[8];let v;return e[9]!==a||e[10]!==m||e[11]!==u||e[12]!==f||e[13]!==b||e[14]!==h||e[15]!==i||e[16]!==o?(v=n(ae,{busy:a,canSubmit:!0,destructive:!0,error:m,onClose:u,onSubmit:f,submitLabel:b,testId:i,title:o,children:h}),e[9]=a,e[10]=m,e[11]=u,e[12]=f,e[13]=b,e[14]=h,e[15]=i,e[16]=o,e[17]=v):v=e[17],v},Ve=t=>{const e=J(13),{action:l,children:d,heading:u,testId:s}=t;let i;e[0]!==u?(i=n("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:u}),e[0]=u,e[1]=i):i=e[1];let o;e[2]!==l?(o=l!==void 0&&n("div",{className:"flex items-center gap-2",children:l}),e[2]=l,e[3]=o):o=e[3];let r;e[4]!==i||e[5]!==o?(r=R("header",{className:"flex items-center justify-between gap-2 border-b border-border px-4 py-3",children:[i,o]}),e[4]=i,e[5]=o,e[6]=r):r=e[6];let a;e[7]!==d?(a=n(vt,{className:"px-0",children:d}),e[7]=d,e[8]=a):a=e[8];let m;return e[9]!==r||e[10]!==a||e[11]!==s?(m=R(yt,{className:"overflow-hidden py-0","data-testid":s,children:[r,a]}),e[9]=r,e[10]=a,e[11]=s,e[12]=m):m=e[12],m},We=t=>{const e=J(23),{columns:l,rowActions:d,rowPrefix:u,rows:s}=t,i=H();let o;e[0]!==l?(o=l.map(Lt),e[0]=l,e[1]=o):o=e[1];let r;e[2]!==i?(r=i("Actions"),e[2]=i,e[3]=r):r=e[3];let a;e[4]!==r?(a=n(me,{"aria-label":r}),e[4]=r,e[5]=a):a=e[5];let m;e[6]!==o||e[7]!==a?(m=n(Ct,{children:R(nt,{children:[o,a]})}),e[6]=o,e[7]=a,e[8]=m):m=e[8];let g;if(e[9]!==l||e[10]!==d||e[11]!==u||e[12]!==s){let b;e[14]!==l||e[15]!==d||e[16]!==u?(b=(h,v)=>{const k=S(h.id),p=k===""?`index-${v.toString()}`:k;return R(nt,{"data-testid":`${u}-${p}`,children:[l.map(C=>n(de,{className:C.className,children:C.render(h)},C.head)),n(de,{children:n("div",{className:"flex justify-end gap-1",children:d(h)})})]},p)},e[14]=l,e[15]=d,e[16]=u,e[17]=b):b=e[17],g=s.map(b),e[9]=l,e[10]=d,e[11]=u,e[12]=s,e[13]=g}else g=e[13];let c;e[18]!==g?(c=n(xt,{children:g}),e[18]=g,e[19]=c):c=e[19];let f;return e[20]!==m||e[21]!==c?(f=R(It,{children:[m,c]}),e[20]=m,e[21]=c,e[22]=f):f=e[22],f};function Lt(t){return n(me,{children:t.head},t.head)}const Pt=t=>{const e=J(30),{actionBusy:l,onRemoveMember:d,memberColumns:u,members:s,onDialog:i}=t,o=H();let r;e[0]!==i?(r=()=>{i({kind:"add-member"})},e[0]=i,e[1]=r):r=e[1];let a;e[2]!==o?(a=o("Add member"),e[2]=o,e[3]=a):a=e[3];let m;e[4]!==r||e[5]!==a?(m=n(L,{"data-testid":"org-open-add-member",onClick:r,size:"xs",type:"button",variant:"outline",children:a}),e[4]=r,e[5]=a,e[6]=m):m=e[6];let g;e[7]!==i?(g=()=>{i({kind:"invite-member"})},e[7]=i,e[8]=g):g=e[8];let c;e[9]!==o?(c=o("Invite member"),e[9]=o,e[10]=c):c=e[10];let f;e[11]!==g||e[12]!==c?(f=n(L,{"data-testid":"org-open-invite-member",onClick:g,size:"xs",type:"button",variant:"outline",children:c}),e[11]=g,e[12]=c,e[13]=f):f=e[13];let b;e[14]!==m||e[15]!==f?(b=R(st,{children:[m,f]}),e[14]=m,e[15]=f,e[16]=b):b=e[16];let h;e[17]!==o?(h=o("Members"),e[17]=o,e[18]=h):h=e[18];let v;e[19]!==l||e[20]!==u||e[21]!==s||e[22]!==i||e[23]!==d||e[24]!==o?(v=s.length===0?n("div",{className:"p-3",children:n(Ke,{testId:"org-members-empty",title:o("No members.")})}):n(We,{columns:u,rowActions:p=>R(st,{children:[n(L,{"data-testid":`org-member-role-${S(p.id)}`,onClick:()=>{i({kind:"member-role",member:p})},size:"xs",type:"button",variant:"ghost",children:o("Change role")}),n(L,{"data-testid":`org-remove-member-${S(p.id)}`,disabled:l,onClick:()=>{d(S(p.id))},size:"xs",type:"button",variant:"ghost",children:o("Remove")})]}),rowPrefix:"org-member",rows:s}),e[19]=l,e[20]=u,e[21]=s,e[22]=i,e[23]=d,e[24]=o,e[25]=v):v=e[25];let k;return e[26]!==b||e[27]!==h||e[28]!==v?(k=n(Ve,{action:b,heading:h,testId:"org-members",children:v}),e[26]=b,e[27]=h,e[28]=v,e[29]=k):k=e[29],k},Bt=t=>{const e=J(21),{onConfirmDeleteTeam:l,onDialog:d,onSelectTeam:u,selectedTeam:s,teamColumns:i,teams:o}=t,r=H();let a;e[0]!==d?(a=()=>{d({kind:"team-create"})},e[0]=d,e[1]=a):a=e[1];let m;e[2]!==r?(m=r("New team"),e[2]=r,e[3]=m):m=e[3];let g;e[4]!==a||e[5]!==m?(g=n(L,{"data-testid":"org-open-create-team",onClick:a,size:"xs",type:"button",variant:"outline",children:m}),e[4]=a,e[5]=m,e[6]=g):g=e[6];let c;e[7]!==r?(c=r("Teams"),e[7]=r,e[8]=c):c=e[8];let f;e[9]!==l||e[10]!==d||e[11]!==u||e[12]!==s||e[13]!==r||e[14]!==i||e[15]!==o?(f=o.length===0?n("div",{className:"p-3",children:n(Ke,{testId:"org-teams-empty",title:r("No teams.")})}):n(We,{columns:i,rowActions:h=>R(st,{children:[n(L,{"aria-pressed":s===S(h.id),"data-testid":`org-team-select-${S(h.id)}`,onClick:()=>{u(S(h.id))},size:"xs",type:"button",variant:"ghost",children:r("Members")}),n(L,{"data-testid":`org-team-rename-${S(h.id)}`,onClick:()=>{d({kind:"team-rename",team:h})},size:"xs",type:"button",variant:"ghost",children:r("Rename")}),n(L,{"data-testid":`org-team-delete-${S(h.id)}`,onClick:()=>{l(h)},size:"xs",type:"button",variant:"ghost",children:r("Delete")})]}),rowPrefix:"org-team",rows:o}),e[9]=l,e[10]=d,e[11]=u,e[12]=s,e[13]=r,e[14]=i,e[15]=o,e[16]=f):f=e[16];let b;return e[17]!==g||e[18]!==c||e[19]!==f?(b=n(Ve,{action:g,heading:c,testId:"org-teams",children:f}),e[17]=g,e[18]=c,e[19]=f,e[20]=b):b=e[20],b},Qt=t=>{const e=J(20),{actionBusy:l,onRemoveTeamMember:d,onDialog:u,selectedTeam:s,teamMemberColumns:i,teamMembers:o}=t,r=H();let a;e[0]!==u||e[1]!==s?(a=()=>{u({kind:"team-add-member",teamId:s})},e[0]=u,e[1]=s,e[2]=a):a=e[2];let m;e[3]!==r?(m=r("Add member"),e[3]=r,e[4]=m):m=e[4];let g;e[5]!==a||e[6]!==m?(g=n(L,{"data-testid":"org-open-add-team-member",onClick:a,size:"xs",type:"button",variant:"outline",children:m}),e[5]=a,e[6]=m,e[7]=g):g=e[7];let c;e[8]!==r?(c=r("Team members"),e[8]=r,e[9]=c):c=e[9];let f;e[10]!==l||e[11]!==d||e[12]!==r||e[13]!==i||e[14]!==o?(f=o.length===0?n("div",{className:"p-3",children:n(Ke,{testId:"org-team-members-empty",title:r("No team members.")})}):n(We,{columns:i,rowActions:h=>n(L,{"data-testid":`org-team-remove-member-${S(h.id)}`,disabled:l,onClick:()=>{d(S(h.id))},size:"xs",type:"button",variant:"ghost",children:r("Remove")}),rowPrefix:"org-team-member",rows:o}),e[10]=l,e[11]=d,e[12]=r,e[13]=i,e[14]=o,e[15]=f):f=e[15];let b;return e[16]!==g||e[17]!==c||e[18]!==f?(b=n(Ve,{action:g,heading:c,testId:"org-team-members",children:f}),e[16]=g,e[17]=c,e[18]=f,e[19]=b):b=e[19],b},Jt=t=>{const e=J(19),{onConfirmDeleteRole:l,onDialog:d,roleColumns:u,roles:s}=t,i=H();let o;e[0]!==d?(o=()=>{d({kind:"role-create"})},e[0]=d,e[1]=o):o=e[1];let r;e[2]!==i?(r=i("New role"),e[2]=i,e[3]=r):r=e[3];let a;e[4]!==o||e[5]!==r?(a=n(L,{"data-testid":"org-open-create-role",onClick:o,size:"xs",type:"button",variant:"outline",children:r}),e[4]=o,e[5]=r,e[6]=a):a=e[6];let m;e[7]!==i?(m=i("Roles"),e[7]=i,e[8]=m):m=e[8];let g;e[9]!==l||e[10]!==d||e[11]!==u||e[12]!==s||e[13]!==i?(g=s.length===0?n("div",{className:"p-3",children:n(Ke,{testId:"org-roles-empty",title:i("No custom roles.")})}):n(We,{columns:u,rowActions:f=>R(st,{children:[n(L,{"data-testid":`org-role-edit-${S(f.id)}`,onClick:()=>{d({kind:"role-edit",role:f})},size:"xs",type:"button",variant:"ghost",children:i("Edit")}),n(L,{"data-testid":`org-role-delete-${S(f.id)}`,onClick:()=>{l(S(f.id))},size:"xs",type:"button",variant:"ghost",children:i("Delete")})]}),rowPrefix:"org-role",rows:s}),e[9]=l,e[10]=d,e[11]=u,e[12]=s,e[13]=i,e[14]=g):g=e[14];let c;return e[15]!==a||e[16]!==m||e[17]!==g?(c=n(Ve,{action:a,heading:m,testId:"org-roles",children:g}),e[15]=a,e[16]=m,e[17]=g,e[18]=c):c=e[18],c},Ut=t=>{const e=J(199),{organizationId:l,rolesEnabled:d,teamsEnabled:u}=t,s=re(),i=H(),[o,r]=j(null),[a,m]=j(null),[g,c]=j(!1),[f,b]=j(null);let h;e[0]!==l?(h=["lunora-auth-org-members",l],e[0]=l,e[1]=h):h=e[1];let v;e[2]!==s||e[3]!==l?(v=()=>s.listAuthOrgMembers({limit:200,organizationId:l}),e[2]=s,e[3]=l,e[4]=v):v=e[4];const k=Ge(h,v);let p;e[5]!==l?(p=["lunora-auth-org-invitations",l],e[5]=l,e[6]=p):p=e[6];let C;e[7]!==s||e[8]!==l?(C=()=>s.listAuthOrgInvitations({limit:200,organizationId:l}),e[7]=s,e[8]=l,e[9]=C):C=e[9];const y=Ge(p,C);let w;e[10]!==l?(w=["lunora-auth-org-teams",l],e[10]=l,e[11]=w):w=e[11];let x;e[12]!==s||e[13]!==l?(x=()=>s.listAuthOrgTeams({limit:200,organizationId:l}),e[12]=s,e[13]=l,e[14]=x):x=e[14];let I;e[15]!==u?(I={enabled:u},e[15]=u,e[16]=I):I=e[16];const D=Ge(w,x,I);let _;e[17]!==l?(_=["lunora-auth-org-roles",l],e[17]=l,e[18]=_):_=e[18];let N;e[19]!==s||e[20]!==l?(N=()=>s.listAuthOrgRoles({limit:200,organizationId:l}),e[19]=s,e[20]=l,e[21]=N):N=e[21];let z;e[22]!==d?(z={enabled:d},e[22]=d,e[23]=z):z=e[23];const O=Ge(_,N,z);let T;e[24]!==a?(T=["lunora-auth-org-team-members",a],e[24]=a,e[25]=T):T=e[25];let P;e[26]!==s||e[27]!==a?(P=()=>s.listAuthOrgTeamMembers({limit:200,teamId:a??""}),e[26]=s,e[27]=a,e[28]=P):P=e[28];const q=a!==null;let B;e[29]!==q?(B={enabled:q},e[29]=q,e[30]=B):B=e[30];const E=Ge(T,P,B);let Q;e[31]!==k.data?.rows?(Q=k.data?.rows??[],e[31]=k.data?.rows,e[32]=Q):Q=e[32];const K=Q;let $;e[33]!==y.data?.rows?($=y.data?.rows??[],e[33]=y.data?.rows,e[34]=$):$=e[34];const M=$;let U;e[35]!==D.data?.rows?(U=D.data?.rows??[],e[35]=D.data?.rows,e[36]=U):U=e[36];const ne=U;let X;e[37]!==O.data?.rows?(X=O.data?.rows??[],e[37]=O.data?.rows,e[38]=X):X=e[38];const ee=X;let Y;e[39]!==a||e[40]!==E?(Y=a===null?[]:E.data?.rows??[],e[39]=a,e[40]=E,e[41]=Y):Y=e[41];const te=Y,le=k.error??y.error??D.error??O.error??E.error;let Z;e[42]!==y||e[43]!==k||e[44]!==d||e[45]!==O||e[46]!==a||e[47]!==E||e[48]!==u||e[49]!==D?(Z=()=>{k.refetch(),y.refetch(),u&&D.refetch(),d&&O.refetch(),a!==null&&E.refetch()},e[42]=y,e[43]=k,e[44]=d,e[45]=O,e[46]=a,e[47]=E,e[48]=u,e[49]=D,e[50]=Z):Z=e[50];const A=Z;kt(A,!0);let ie;e[51]===Symbol.for("react.memo_cache_sentinel")?(ie=()=>{r(null)},e[51]=ie):ie=e[51];const F=ie;let Xe;e[52]!==A?(Xe=V=>{At((async()=>{c(!0),b(null);try{await V(),A(),c(!1)}catch(rt){b(_t(rt)),c(!1)}})())},e[52]=A,e[53]=Xe):Xe=e[53];const oe=Xe;let Ye;e[54]!==s||e[55]!==i?(Ye=V=>{const rt=S(V.id);r({action:async()=>{await s.removeAuthOrgTeam({teamId:rt}),m(gt=>gt===rt?null:gt)},kind:"confirm",message:i("Delete this team and its memberships? This cannot be undone."),testId:"org-team-delete",title:i("Delete team")})},e[54]=s,e[55]=i,e[56]=Ye):Ye=e[56];const at=Ye;let ce;e[57]!==i?(ce=i("userId"),e[57]=i,e[58]=ce):ce=e[58];let fe;e[59]!==ce?(fe={head:ce,render:Ht},e[59]=ce,e[60]=fe):fe=e[60];let ue;e[61]!==i?(ue=i("role"),e[61]=i,e[62]=ue):ue=e[62];let ge;e[63]!==ue?(ge={head:ue,render:qt},e[63]=ue,e[64]=ge):ge=e[64];let Ze;e[65]!==fe||e[66]!==ge?(Ze=[fe,ge],e[65]=fe,e[66]=ge,e[67]=Ze):Ze=e[67];const mt=Ze;let he;e[68]!==i?(he=i("email"),e[68]=i,e[69]=he):he=e[69];let be;e[70]!==he?(be={head:he,render:Gt},e[70]=he,e[71]=be):be=e[71];let pe;e[72]!==i?(pe=i("role"),e[72]=i,e[73]=pe):pe=e[73];let ve;e[74]!==pe?(ve={head:pe,render:Kt},e[74]=pe,e[75]=ve):ve=e[75];let ye;e[76]!==i?(ye=i("status"),e[76]=i,e[77]=ye):ye=e[77];let Ce;e[78]!==ye?(Ce={head:ye,render:Vt},e[78]=ye,e[79]=Ce):Ce=e[79];let et;e[80]!==be||e[81]!==ve||e[82]!==Ce?(et=[be,ve,Ce],e[80]=be,e[81]=ve,e[82]=Ce,e[83]=et):et=e[83];const dt=et;let xe;e[84]!==i?(xe=i("id"),e[84]=i,e[85]=xe):xe=e[85];let Ie;e[86]!==xe?(Ie={className:"font-mono text-xs",head:xe,render:Wt},e[86]=xe,e[87]=Ie):Ie=e[87];let ke;e[88]!==i?(ke=i("name"),e[88]=i,e[89]=ke):ke=e[89];let we;e[90]!==ke?(we={head:ke,render:Xt},e[90]=ke,e[91]=we):we=e[91];let tt;e[92]!==Ie||e[93]!==we?(tt=[Ie,we],e[92]=Ie,e[93]=we,e[94]=tt):tt=e[94];const ct=tt;let De;e[95]!==i?(De=i("userId"),e[95]=i,e[96]=De):De=e[96];let lt;e[97]!==De?(lt=[{head:De,render:Yt}],e[97]=De,e[98]=lt):lt=e[98];const ft=lt;let Se;e[99]!==i?(Se=i("role"),e[99]=i,e[100]=Se):Se=e[100];let ze;e[101]!==Se?(ze={head:Se,render:Zt},e[101]=Se,e[102]=ze):ze=e[102];let Ne;e[103]!==i?(Ne=i("Permission"),e[103]=i,e[104]=Ne):Ne=e[104];let Ae;e[105]!==Ne?(Ae={className:"font-mono text-xs whitespace-pre-wrap",head:Ne,render:el},e[105]=Ne,e[106]=Ae):Ae=e[106];let it;e[107]!==ze||e[108]!==Ae?(it=[ze,Ae],e[107]=ze,e[108]=Ae,e[109]=it):it=e[109];const ut=it;let _e;e[110]!==le?(_e=le!==null&&n("p",{className:"text-sm text-destructive","data-testid":"org-detail-error",role:"alert",children:le}),e[110]=le,e[111]=_e):_e=e[111];let Oe;e[112]!==f?(Oe=f!==null&&n("p",{className:"text-sm text-destructive","data-testid":"org-action-error",role:"alert",children:f}),e[112]=f,e[113]=Oe):Oe=e[113];let Te;e[114]!==s||e[115]!==oe?(Te=V=>{oe(()=>s.removeAuthOrgMember({memberId:V}))},e[114]=s,e[115]=oe,e[116]=Te):Te=e[116];let $e;e[117]!==g||e[118]!==mt||e[119]!==K||e[120]!==Te?($e=n(Pt,{actionBusy:g,memberColumns:mt,members:K,onDialog:r,onRemoveMember:Te}),e[117]=g,e[118]=mt,e[119]=K,e[120]=Te,e[121]=$e):$e=e[121];let Me;e[122]!==g||e[123]!==s||e[124]!==dt||e[125]!==M||e[126]!==oe||e[127]!==i?(Me=M.length>0&&n(Ve,{heading:i("Invitations"),testId:"org-invitations",children:n(We,{columns:dt,rowActions:V=>n(L,{"data-testid":`org-cancel-invitation-${S(V.id)}`,disabled:g,onClick:()=>{oe(()=>s.cancelAuthOrgInvitation({invitationId:S(V.id)}))},size:"xs",type:"button",variant:"ghost",children:i("Cancel")}),rowPrefix:"org-invitation",rows:M})}),e[122]=g,e[123]=s,e[124]=dt,e[125]=M,e[126]=oe,e[127]=i,e[128]=Me):Me=e[128];let Re;e[129]!==at||e[130]!==a||e[131]!==ct||e[132]!==ne||e[133]!==u?(Re=u&&n(Bt,{onConfirmDeleteTeam:at,onDialog:r,onSelectTeam:m,selectedTeam:a,teamColumns:ct,teams:ne}),e[129]=at,e[130]=a,e[131]=ct,e[132]=ne,e[133]=u,e[134]=Re):Re=e[134];let Fe;e[135]!==g||e[136]!==s||e[137]!==oe||e[138]!==a||e[139]!==ft||e[140]!==te||e[141]!==u?(Fe=u&&a!==null&&n(Qt,{actionBusy:g,onDialog:r,onRemoveTeamMember:V=>{oe(()=>s.removeAuthOrgTeamMember({teamMemberId:V}))},selectedTeam:a,teamMemberColumns:ft,teamMembers:te}),e[135]=g,e[136]=s,e[137]=oe,e[138]=a,e[139]=ft,e[140]=te,e[141]=u,e[142]=Fe):Fe=e[142];let Ee;e[143]!==s||e[144]!==ut||e[145]!==ee||e[146]!==d||e[147]!==i?(Ee=d&&n(Jt,{onConfirmDeleteRole:V=>{r({action:()=>s.deleteAuthOrgRole({roleId:V}),kind:"confirm",message:i("Delete this custom role? Members keeping it will lose its grants."),testId:"org-role-delete",title:i("Delete role")})},onDialog:r,roleColumns:ut,roles:ee}),e[143]=s,e[144]=ut,e[145]=ee,e[146]=d,e[147]=i,e[148]=Ee):Ee=e[148];let je;e[149]!==o?.kind||e[150]!==l||e[151]!==A?(je=o?.kind==="add-member"&&n(Rt,{onClose:F,onDone:A,organizationId:l}),e[149]=o?.kind,e[150]=l,e[151]=A,e[152]=je):je=e[152];let Le;e[153]!==o?.kind||e[154]!==l||e[155]!==A?(Le=o?.kind==="invite-member"&&n(Ft,{onClose:F,onDone:A,organizationId:l}),e[153]=o?.kind,e[154]=l,e[155]=A,e[156]=Le):Le=e[156];let Pe;e[157]!==o||e[158]!==A?(Pe=o?.kind==="member-role"&&n(Et,{member:o.member,onClose:F,onDone:A}),e[157]=o,e[158]=A,e[159]=Pe):Pe=e[159];let Be;e[160]!==o?.kind||e[161]!==l||e[162]!==A?(Be=o?.kind==="team-create"&&n(bt,{mode:"create",onClose:F,onDone:A,organizationId:l}),e[160]=o?.kind,e[161]=l,e[162]=A,e[163]=Be):Be=e[163];let Qe;e[164]!==o||e[165]!==l||e[166]!==A?(Qe=o?.kind==="team-rename"&&n(bt,{mode:"edit",onClose:F,onDone:A,organizationId:l,team:o.team}),e[164]=o,e[165]=l,e[166]=A,e[167]=Qe):Qe=e[167];let Je;e[168]!==o||e[169]!==A?(Je=o?.kind==="team-add-member"&&n(jt,{onClose:F,onDone:A,teamId:o.teamId}),e[168]=o,e[169]=A,e[170]=Je):Je=e[170];let Ue;e[171]!==o?.kind||e[172]!==l||e[173]!==A?(Ue=o?.kind==="role-create"&&n(pt,{mode:"create",onClose:F,onDone:A,organizationId:l}),e[171]=o?.kind,e[172]=l,e[173]=A,e[174]=Ue):Ue=e[174];let He;e[175]!==o||e[176]!==l||e[177]!==A?(He=o?.kind==="role-edit"&&n(pt,{mode:"edit",onClose:F,onDone:A,organizationId:l,role:o.role}),e[175]=o,e[176]=l,e[177]=A,e[178]=He):He=e[178];let qe;e[179]!==o||e[180]!==A?(qe=o?.kind==="confirm"&&n(zt,{action:o.action,message:o.message,onClose:F,onDone:A,testId:o.testId,title:o.title}),e[179]=o,e[180]=A,e[181]=qe):qe=e[181];let ot;return e[182]!==_e||e[183]!==Oe||e[184]!==$e||e[185]!==Me||e[186]!==Re||e[187]!==Fe||e[188]!==Ee||e[189]!==je||e[190]!==Le||e[191]!==Pe||e[192]!==Be||e[193]!==Qe||e[194]!==Je||e[195]!==Ue||e[196]!==He||e[197]!==qe?(ot=R("div",{className:"flex flex-col gap-4","data-testid":"org-detail",children:[_e,Oe,$e,Me,Re,Fe,Ee,je,Le,Pe,Be,Qe,Je,Ue,He,qe]}),e[182]=_e,e[183]=Oe,e[184]=$e,e[185]=Me,e[186]=Re,e[187]=Fe,e[188]=Ee,e[189]=je,e[190]=Le,e[191]=Pe,e[192]=Be,e[193]=Qe,e[194]=Je,e[195]=Ue,e[196]=He,e[197]=qe,e[198]=ot):ot=e[198],ot};function Ht(t){return n("span",{className:"font-mono text-xs",children:S(t.userId)})}function qt(t){return S(t.role)}function Gt(t){return S(t.email)}function Kt(t){return S(t.role)}function Vt(t){return S(t.status)}function Wt(t){return S(t.id)}function Xt(t){return S(t.name)}function Yt(t){return n("span",{className:"font-mono text-xs",children:S(t.userId)})}function Zt(t){return S(t.role)}function el(t){return S(t.permission)}const yl=()=>{const t=J(62),e=re(),l=H(),{config:d,ready:u}=Nt(),s=d.capabilities.organization,[i,o]=j(null),[r,a]=j(null);let m;t[0]===Symbol.for("react.memo_cache_sentinel")?(m=["lunora-auth-orgs"],t[0]=m):m=t[0];let g;t[1]!==e?(g=()=>e.listAuthOrganizations({limit:100}),t[1]=e,t[2]=g):g=t[2];let c;t[3]!==s?(c={enabled:s},t[3]=s,t[4]=c):c=t[4];const f=Ge(m,g,c),b=f.data?.rows??null;let h;t[5]!==f?(h=()=>{f.refetch()},t[5]=f,t[6]=h):h=t[6],kt(h,s);let v;t[7]===Symbol.for("react.memo_cache_sentinel")?(v=()=>{a(null)},t[7]=v):v=t[7];const k=v;let p;t[8]!==f?(p=()=>{f.refetch()},t[8]=f,t[9]=p):p=t[9];const C=p;let y;t[10]===Symbol.for("react.memo_cache_sentinel")?(y=$=>{o($)},t[10]=y):y=t[10];const w=y;if(u&&!s){let $;t[11]!==l?($=l("Enable the organization() plugin in your auth config to manage organizations here."),t[11]=l,t[12]=$):$=t[12];let M;t[13]!==l?(M=l("Organizations are not enabled."),t[13]=l,t[14]=M):M=t[14];let U;return t[15]!==$||t[16]!==M?(U=n(Ke,{description:$,testId:"org-disabled",title:M}),t[15]=$,t[16]=M,t[17]=U):U=t[17],U}let x;t[18]!==l?(x=l("Organizations"),t[18]=l,t[19]=x):x=t[19];let I;t[20]!==x?(I=n("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:x}),t[20]=x,t[21]=I):I=t[21];let D;t[22]===Symbol.for("react.memo_cache_sentinel")?(D=()=>{a({kind:"create"})},t[22]=D):D=t[22];let _;t[23]!==l?(_=l("New organization"),t[23]=l,t[24]=_):_=t[24];let N;t[25]!==_?(N=n(L,{"data-testid":"org-new",onClick:D,size:"sm",type:"button",children:_}),t[25]=_,t[26]=N):N=t[26];let z;t[27]!==N||t[28]!==I?(z=R("div",{className:"flex items-center justify-between",children:[I,N]}),t[27]=N,t[28]=I,t[29]=z):z=t[29];let O;t[30]!==f.error?(O=f.error!==null&&n("p",{className:"text-sm text-destructive","data-testid":"org-error",role:"alert",children:f.error}),t[30]=f.error,t[31]=O):O=t[31];let T;t[32]!==b||t[33]!==l?(T=b!==null&&b.length===0&&n(Ke,{testId:"org-empty",title:l("No organizations.")}),t[32]=b,t[33]=l,t[34]=T):T=t[34];let P;t[35]!==b||t[36]!==i||t[37]!==l?(P=b!==null&&b.length>0&&n(yt,{className:"overflow-hidden py-0",children:n(vt,{className:"px-0",children:R(It,{"data-testid":"org-table",children:[n(Ct,{children:R(nt,{children:[n(me,{children:l("id")}),n(me,{children:l("name")}),n(me,{children:l("slug")}),n(me,{children:l("created")}),n(me,{"aria-label":l("Actions")})]})}),n(xt,{children:b.map($=>{const M=S($.id);return R(nt,{"data-testid":`org-row-${M}`,children:[n(de,{className:"font-mono text-xs",children:M}),n(de,{children:S($.name)}),n(de,{children:S($.slug)}),n(de,{className:"text-muted-foreground tabular-nums",children:Ot($.createdAt)}),n(de,{children:R("div",{className:"flex justify-end gap-1",children:[n(L,{"aria-pressed":i===M,"data-testid":`org-select-${M}`,onClick:()=>{w(M)},size:"xs",type:"button",variant:"ghost",children:l("Manage")}),n(L,{"data-testid":`org-edit-${M}`,onClick:()=>{a({kind:"edit",org:$})},size:"xs",type:"button",variant:"ghost",children:l("Edit")}),n(L,{"data-testid":`org-delete-${M}`,onClick:()=>{a({kind:"delete",org:$})},size:"xs",type:"button",variant:"ghost",children:l("Delete")})]})})]},M)})})]})})}),t[35]=b,t[36]=i,t[37]=l,t[38]=P):P=t[38];let q;t[39]!==d.organization||t[40]!==i?(q=i!==null&&n(Ut,{organizationId:i,rolesEnabled:d.organization.roles,teamsEnabled:d.organization.teams}),t[39]=d.organization,t[40]=i,t[41]=q):q=t[41];let B;t[42]!==r?.kind||t[43]!==C?(B=r?.kind==="create"&&n(ht,{mode:"create",onClose:k,onDone:C}),t[42]=r?.kind,t[43]=C,t[44]=B):B=t[44];let E;t[45]!==r||t[46]!==C?(E=r?.kind==="edit"&&n(ht,{mode:"edit",onClose:k,onDone:C,org:r.org}),t[45]=r,t[46]=C,t[47]=E):E=t[47];let Q;t[48]!==e||t[49]!==r||t[50]!==C||t[51]!==l?(Q=r?.kind==="delete"&&n(zt,{action:async()=>{const $=S(r.org.id);await e.deleteAuthOrganization({organizationId:$}),o(M=>M===$?null:M)},message:l("Delete this organization? Its members, invitations, teams, and custom roles are removed. This cannot be undone."),onClose:k,onDone:C,testId:"org-delete",title:l("Delete organization")}),t[48]=e,t[49]=r,t[50]=C,t[51]=l,t[52]=Q):Q=t[52];let K;return t[53]!==z||t[54]!==O||t[55]!==T||t[56]!==P||t[57]!==q||t[58]!==B||t[59]!==E||t[60]!==Q?(K=R("div",{className:"flex flex-col gap-4","data-testid":"lunora-organizations",children:[z,O,T,P,q,B,E,Q]}),t[53]=z,t[54]=O,t[55]=T,t[56]=P,t[57]=q,t[58]=B,t[59]=E,t[60]=Q,t[61]=K):K=t[61],K};export{yl as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as j}from"../packem_shared/wire-codec-
|
|
1
|
+
import{a as j}from"../packem_shared/wire-codec-DnslZGxC.mjs";import{E as F}from"../packem_shared/error-alert-tf5zvSLV.mjs";import{B as N}from"../packem_shared/badge-r_5B4LHP.mjs";import{C as b,a as T}from"../packem_shared/card--2hKx4L2.mjs";import{E as S}from"../packem_shared/empty-state-D7jEML_T.mjs";import{T as A,a as L,b as y,c as l,d as E,e as o}from"../packem_shared/table-D0SBiDu-.mjs";import{u as v}from"../packem_shared/use-admin-query-BKXiqLci.mjs";import{useAutoRefresh as Q}from"../packem_shared/DEFAULT_AUTO_REFRESH_MS-DuULO4XM.mjs";import{u as H}from"../packem_shared/home-panel-DCUKd8Uk.mjs";import{useT as M}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.mjs";import{ADMIN_FUNCTIONS as g}from"../packem_shared/ADMIN_FUNCTIONS-B8yyk5BX.mjs";import{h as I}from"../packem_shared/internal-B6haJbiP.mjs";import{jsx as e,jsxs as i}from"react/jsx-runtime";const V=["subscriptions","events"],_={},P=new Set(["active","trialing"]),k=new Set(["past_due","unpaid"]),n=(s,r)=>{if(s[r]!==void 0)return s[r];const m=s.__doc__;return typeof m=="string"?j(m)?.[r]:void 0},a=s=>typeof s=="string"?s:typeof s=="number"||typeof s=="bigint"||typeof s=="boolean"?String(s):"",G=s=>P.has(s)?"default":k.has(s)?"destructive":"outline",se=({limit:s=100})=>{const r=M(),m=H(),{data:h}=v(g.listTables,_,{live:!0}),C=h!==void 0,R=Array.isArray(h)&&V.every(t=>h.some(c=>c.name===t)),p=m.payments&&R,d=v(g.readTablePage,{filters:[],limit:s,offset:0,orderBy:[],search:"",table:"subscriptions"},{enabled:p}),u=v(g.readTablePage,{filters:[],limit:25,offset:0,orderBy:[],search:"",table:"events"},{enabled:p});Q(()=>{p&&(d.refetch(),u.refetch())},!0);const f=d.data?.rows??[],B=u.data?.rows??[],w=d.error??u.error,D=d.error===null?u.errorSource:d.errorSource,x=f.filter(t=>P.has(a(n(t,"state")))).length,O=B.toSorted((t,c)=>Number(n(c,"processedAt")??0)-Number(n(t,"processedAt")??0));return C&&!p?e("div",{className:"flex flex-col gap-4","data-testid":"payments-panel",children:e(S,{description:r("No @lunora/payment tables found in this deployment. Declare the store tables (subscriptions, events, …) in lunora/schema.ts and wire `payment` on createShardDO() to sync customers and subscriptions."),testId:"payments-unconfigured",title:r("No payments configured")})}):i("div",{className:"flex flex-col gap-4","data-testid":"payments-panel",children:[e("div",{className:"flex items-center gap-2","data-testid":"payments-summary",children:i(b,{className:"justify-between gap-0 py-0",children:[i("div",{className:"flex flex-col gap-2.5 p-4",children:[e("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:r("Subscriptions")}),i("div",{className:"flex items-center gap-2",children:[e("span",{className:"text-2xl font-semibold tabular-nums text-foreground",children:x}),e(N,{variant:"default",children:r("{count} active",{count:x})})]})]}),e("div",{className:"border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",children:r("{total} total",{total:f.length})})]})}),w===null?void 0:e(F,{error:D}),f.length===0&&!d.isLoading?e(S,{testId:"payments-empty",title:r("No subscriptions yet")}):e(b,{className:"overflow-hidden py-0",children:e(T,{className:"px-0",children:i(A,{children:[e(L,{children:i(y,{children:[e(l,{children:r("Provider")}),e(l,{children:r("Reference")}),e(l,{children:r("Plan")}),e(l,{children:r("State")}),e(l,{children:r("Renews")})]})}),e(E,{children:f.map(t=>{const c=a(n(t,"state"));return i(y,{"data-testid":"payment-subscription-row",children:[e(o,{children:a(n(t,"provider"))}),e(o,{children:a(n(t,"referenceId"))}),e(o,{children:a(n(t,"priceId"))}),e(o,{children:e(N,{variant:G(c),children:c})}),e(o,{children:I(n(t,"currentPeriodEnd"))})]},a(n(t,"providerSubscriptionId")))})})]})})}),i(b,{className:"overflow-hidden py-0",children:[e("header",{className:"border-b border-border px-4 py-3",children:e("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:r("Recent webhook events")})}),e(T,{className:"px-0",children:e(A,{children:e(E,{children:O.map(t=>i(y,{"data-testid":"payment-event-row",children:[e(o,{children:a(n(t,"provider"))}),e(o,{className:"font-medium",children:a(n(t,"type"))}),e(o,{className:"text-muted-foreground",children:a(n(t,"providerEventId"))}),e(o,{children:I(n(t,"processedAt"))})]},a(n(t,"providerEventId"))))})})})]})]})};export{se as PaymentsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useLunora as ge}from"@lunora/react";import{useState as F,useEffect as Ve}from"react";import{B as M}from"../packem_shared/badge-r_5B4LHP.mjs";import{B as U}from"../packem_shared/button-q0UYSmrn.mjs";import{C as Fe,a as Ie}from"../packem_shared/card--2hKx4L2.mjs";import{E as Qe}from"../packem_shared/empty-state-D7jEML_T.mjs";import{I as B}from"../packem_shared/input-CXhxesPC.mjs";import{T as Re,a as Pe,b as O,c as D,d as Te,e as R}from"../packem_shared/table-D0SBiDu-.mjs";import{b as Ze}from"../packem_shared/use-admin-query-BKXiqLci.mjs";import{c as Ne}from"react/compiler-runtime";import{u as qe,D as We}from"../packem_shared/use-auth-config-BQKGdSFh.mjs";import{useAutoRefresh as Je}from"../packem_shared/DEFAULT_AUTO_REFRESH_MS-DuULO4XM.mjs";import Ke from"../packem_shared/useDebounced-DVeQ5-oW.mjs";import{useT as ke}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.mjs";import{h as Se,i as Ae,f as Ee,b as je}from"../packem_shared/internal-B6haJbiP.mjs";import{C as Xe}from"../packem_shared/checkbox-CnS9cyCz.mjs";import{L as V}from"../packem_shared/label-DKFzyHq6.mjs";import{M as Ye}from"../packem_shared/modal-shell-CDztwLnv.mjs";import{u as _e}from"../packem_shared/use-async-submit-BTr3w2-K.mjs";import{jsxs as i,jsx as t,Fragment as et}from"react/jsx-runtime";We.capabilities;const tt=()=>{const u=Ne(3),{config:e,ready:a}=qe();let l;return u[0]!==e.capabilities||u[1]!==a?(l={capabilities:e.capabilities,ready:a},u[0]=e.capabilities,u[1]=a,u[2]=l):l=u[2],l},st={boolean:"checkbox",date:"datetime-local",number:"number",string:"text"},lt=(u,e)=>u.type==="boolean"?!0:typeof e!="string"||e.trim()===""?!1:u.type!=="number"||!Number.isNaN(Number(e.trim())),at=(u,e)=>{if(u.type==="boolean")return e===!0?{value:!0}:u.required?{value:!1}:void 0;const a=typeof e=="string"?e.trim():"";if(a!==""){if(u.type==="number"){const l=Number(a);return Number.isNaN(l)?void 0:{value:l}}return{value:a}}},nt=u=>{const e=Ne(105),{onClose:a,onCreated:l}=u,c=ge(),s=ke(),{config:d}=qe(),{busy:n,error:r,run:m}=_e(),[k,S]=F(""),[x,w]=F(""),[y,A]=F(""),[h,g]=F("");let b;e[0]===Symbol.for("react.memo_cache_sentinel")?(b={},e[0]=b):b=e[0];const[p,o]=F(b);let C;e[1]===Symbol.for("react.memo_cache_sentinel")?(C=f=>{S(f.target.value)},e[1]=C):C=e[1];const v=C;let I;e[2]===Symbol.for("react.memo_cache_sentinel")?(I=f=>{w(f.target.value)},e[2]=I):I=e[2];const $=I;let T;e[3]===Symbol.for("react.memo_cache_sentinel")?(T=f=>{A(f.target.value)},e[3]=T):T=e[3];const ze=T;let q;e[4]===Symbol.for("react.memo_cache_sentinel")?(q=f=>{g(f.target.value)},e[4]=q):q=e[4];const Be=q;let Y;e[5]===Symbol.for("react.memo_cache_sentinel")?(Y=(f,P)=>{o(H=>({...H,[f]:P}))},e[5]=Y):Y=e[5];const Ue=Y;let G;e[6]!==p?(G=f=>p[f.name]??(f.type==="boolean"?!1:""),e[6]=p,e[7]=G):G=e[7];const E=G;let Q;if(e[8]!==d.userFields||e[9]!==E){let f;e[11]!==E?(f=P=>!P.required||lt(P,E(P)),e[11]=E,e[12]=f):f=e[12],Q=d.userFields.every(f),e[8]=d.userFields,e[9]=E,e[10]=Q}else Q=e[10];const we=Q;let Z;e[13]!==n||e[14]!==k||e[15]!==x||e[16]!==we?(Z=!n&&k.trim()!==""&&x.trim()!==""&&we,e[13]=n,e[14]=k,e[15]=x,e[16]=we,e[17]=Z):Z=e[17];const $e=Z;let W;e[18]!==d.userFields||e[19]!==E?(W=()=>{const f={};for(const P of d.userFields){const H=at(P,E(P));H!==void 0&&(f[P.name]=H.value)}return Object.keys(f).length===0?void 0:f},e[18]=d.userFields,e[19]=E,e[20]=W):W=e[20];const Ce=W;let J;e[21]!==Ce||e[22]!==c||e[23]!==k||e[24]!==x||e[25]!==a||e[26]!==l||e[27]!==y||e[28]!==h||e[29]!==m?(J=()=>{m(async()=>{await c.createAuthUser({data:Ce(),email:k.trim(),name:x.trim(),password:y===""?void 0:y,role:h.trim()===""?void 0:h.trim()}),l(),a()})},e[21]=Ce,e[22]=c,e[23]=k,e[24]=x,e[25]=a,e[26]=l,e[27]=y,e[28]=h,e[29]=m,e[30]=J):J=e[30];const N=J;let z;e[31]!==s?(z=s("Create user"),e[31]=s,e[32]=z):z=e[32];let L;e[33]!==s?(L=s("Create user"),e[33]=s,e[34]=L):L=e[34];let j;e[35]!==L?(j=t("h2",{className:"text-sm font-semibold text-foreground",children:L}),e[35]=L,e[36]=j):j=e[36];let K;e[37]!==s?(K=s("email"),e[37]=s,e[38]=K):K=e[38];let X;e[39]!==K?(X=t(V,{htmlFor:"uc-email",children:K}),e[39]=K,e[40]=X):X=e[40];let _;e[41]!==k?(_=t(B,{"data-testid":"uc-email",id:"uc-email",onChange:v,type:"email",value:k}),e[41]=k,e[42]=_):_=e[42];let ee;e[43]!==X||e[44]!==_?(ee=i("div",{className:"flex flex-col gap-1",children:[X,_]}),e[43]=X,e[44]=_,e[45]=ee):ee=e[45];let te;e[46]!==s?(te=s("name"),e[46]=s,e[47]=te):te=e[47];let se;e[48]!==te?(se=t(V,{htmlFor:"uc-name",children:te}),e[48]=te,e[49]=se):se=e[49];let le;e[50]!==x?(le=t(B,{"data-testid":"uc-name",id:"uc-name",onChange:$,value:x}),e[50]=x,e[51]=le):le=e[51];let ae;e[52]!==se||e[53]!==le?(ae=i("div",{className:"flex flex-col gap-1",children:[se,le]}),e[52]=se,e[53]=le,e[54]=ae):ae=e[54];let ne;e[55]!==s?(ne=s("Password (optional)"),e[55]=s,e[56]=ne):ne=e[56];let re;e[57]!==ne?(re=t(V,{htmlFor:"uc-password",children:ne}),e[57]=ne,e[58]=re):re=e[58];let ie;e[59]!==y?(ie=t(B,{"data-testid":"uc-password",id:"uc-password",onChange:ze,type:"password",value:y}),e[59]=y,e[60]=ie):ie=e[60];let oe;e[61]!==re||e[62]!==ie?(oe=i("div",{className:"flex flex-col gap-1",children:[re,ie]}),e[61]=re,e[62]=ie,e[63]=oe):oe=e[63];let de;e[64]!==s?(de=s("Role (optional)"),e[64]=s,e[65]=de):de=e[65];let ce;e[66]!==de?(ce=t(V,{htmlFor:"uc-role",children:de}),e[66]=de,e[67]=ce):ce=e[67];let ue;e[68]!==h?(ue=t(B,{"data-testid":"uc-role",id:"uc-role",onChange:Be,value:h}),e[68]=h,e[69]=ue):ue=e[69];let me;e[70]!==ce||e[71]!==ue?(me=i("div",{className:"flex flex-col gap-1",children:[ce,ue]}),e[70]=ce,e[71]=ue,e[72]=me):me=e[72];let he;e[73]!==d.userFields||e[74]!==E||e[75]!==s?(he=d.userFields.length>0&&i("div",{className:"flex flex-col gap-3 border-t border-border pt-3","data-testid":"uc-plugin-fields",children:[t("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:s("Plugin fields")}),d.userFields.map(f=>{const P=`uc-field-${f.name}`,H=f.required?"":` (${s("optional")})`;if(f.type==="boolean"){const Me=E(f)===!0;return i("label",{className:"flex items-center gap-2",htmlFor:P,children:[t(Xe,{checked:Me,"data-testid":P,id:P,onCheckedChange:Ge=>{Ue(f.name,Ge)}}),i("span",{className:"text-sm",children:[f.name,H]})]},f.name)}const He=E(f);return i("div",{className:"flex flex-col gap-1",children:[i(V,{htmlFor:P,children:[f.name,H]}),t(B,{"data-testid":P,id:P,onChange:Me=>{Ue(f.name,Me.target.value)},type:st[f.type],value:typeof He=="string"?He:""})]},f.name)})]}),e[73]=d.userFields,e[74]=E,e[75]=s,e[76]=he):he=e[76];let fe;e[77]!==r?(fe=r!==null&&t("p",{className:"text-sm text-destructive","data-testid":"uc-error",role:"alert",children:r}),e[77]=r,e[78]=fe):fe=e[78];let pe;e[79]!==s?(pe=s("Cancel"),e[79]=s,e[80]=pe):pe=e[80];let be;e[81]!==a||e[82]!==pe?(be=t(U,{"data-testid":"uc-cancel",onClick:a,size:"sm",type:"button",variant:"outline",children:pe}),e[81]=a,e[82]=pe,e[83]=be):be=e[83];const Le=!$e;let ve;e[84]!==n||e[85]!==s?(ve=s(n?"Creating…":"Create"),e[84]=n,e[85]=s,e[86]=ve):ve=e[86];let xe;e[87]!==N||e[88]!==Le||e[89]!==ve?(xe=t(U,{"data-testid":"uc-submit",disabled:Le,onClick:N,size:"sm",type:"button",children:ve}),e[87]=N,e[88]=Le,e[89]=ve,e[90]=xe):xe=e[90];let ye;e[91]!==be||e[92]!==xe?(ye=i("div",{className:"flex justify-end gap-2 pt-1",children:[be,xe]}),e[91]=be,e[92]=xe,e[93]=ye):ye=e[93];let De;return e[94]!==a||e[95]!==z||e[96]!==j||e[97]!==ee||e[98]!==ae||e[99]!==oe||e[100]!==me||e[101]!==he||e[102]!==fe||e[103]!==ye?(De=i(Ye,{label:z,onClose:a,panelTestId:"uc-dialog",testId:"uc-overlay",variant:"dialog",children:[j,ee,ae,oe,me,he,fe,ye]}),e[94]=a,e[95]=z,e[96]=j,e[97]=ee,e[98]=ae,e[99]=oe,e[100]=me,e[101]=he,e[102]=fe,e[103]=ye,e[104]=De):De=e[104],De},Oe=u=>{const e=Ne(2),{children:a}=u;let l;return e[0]!==a?(l=t("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a}),e[0]=a,e[1]=l):l=e[1],l},rt=u=>{const e=Ne(29),{busy:a,runAction:l,userId:c,version:s}=u,d=ge(),n=ke(),[r,m]=F(null),[k,S]=F(null);let x;e[0]!==d||e[1]!==c?(x=()=>{Ee((async()=>{S(null);try{const v=await d.listAuthSessions({limit:50,userId:c});m(v.rows)}catch(v){const I=v;m(null),S(je(I))}})())},e[0]=d,e[1]=c,e[2]=x):x=e[2];let w;e[3]!==d||e[4]!==c||e[5]!==s?(w=[d,c,s],e[3]=d,e[4]=c,e[5]=s,e[6]=w):w=e[6],Ve(x,w);let y;e[7]!==d||e[8]!==l?(y=v=>{l(()=>d.revokeAuthSession({sessionId:v}))},e[7]=d,e[8]=l,e[9]=y):y=e[9];const A=y;let h;e[10]!==n?(h=n("Sessions"),e[10]=n,e[11]=h):h=e[11];let g;e[12]!==h?(g=t(Oe,{children:h}),e[12]=h,e[13]=g):g=e[13];let b;e[14]!==k?(b=k!==null&&t("p",{className:"text-sm text-destructive","data-testid":"ud-sessions-error",role:"alert",children:k}),e[14]=k,e[15]=b):b=e[15];let p;e[16]!==r||e[17]!==n?(p=r!==null&&r.length===0&&t("p",{className:"text-sm text-muted-foreground","data-testid":"ud-sessions-empty",children:n("No active sessions.")}),e[16]=r,e[17]=n,e[18]=p):p=e[18];let o;e[19]!==a||e[20]!==A||e[21]!==r||e[22]!==n?(o=r!==null&&r.length>0&&t(Fe,{className:"overflow-hidden py-0",children:t(Ie,{className:"px-0",children:i(Re,{"data-testid":"ud-sessions-table",children:[t(Pe,{children:i(O,{children:[t(D,{children:n("expires")}),t(D,{children:n("ip")}),t(D,{children:n("user agent")}),t(D,{"aria-label":n("Actions")})]})}),t(Te,{children:r.map(v=>i(O,{"data-testid":`ud-session-${v.id}`,children:[t(R,{className:"text-muted-foreground tabular-nums",children:Se(v.expiresAt)}),t(R,{children:v.ipAddress??""}),t(R,{className:"max-w-40 truncate",children:v.userAgent??""}),t(R,{children:t(U,{"data-testid":`ud-revoke-${v.id}`,disabled:a,onClick:()=>{A(v.id)},size:"xs",type:"button",variant:"ghost",children:n("Revoke")})})]},v.id))})]})})}),e[19]=a,e[20]=A,e[21]=r,e[22]=n,e[23]=o):o=e[23];let C;return e[24]!==g||e[25]!==b||e[26]!==p||e[27]!==o?(C=i("div",{className:"flex flex-col gap-2","data-testid":"ud-sessions",children:[g,b,p,o]}),e[24]=g,e[25]=b,e[26]=p,e[27]=o,e[28]=C):C=e[28],C},it=u=>{const e=Ne(30),{busy:a,runAction:l,userId:c,version:s}=u,d=ge(),n=ke(),[r,m]=F(null),[k,S]=F(null);let x;e[0]!==d||e[1]!==c?(x=()=>{Ee((async()=>{S(null);try{m(await d.listAuthAccounts({userId:c}))}catch(v){const I=v;m(null),S(je(I))}})())},e[0]=d,e[1]=c,e[2]=x):x=e[2];let w;e[3]!==d||e[4]!==c||e[5]!==s?(w=[d,c,s],e[3]=d,e[4]=c,e[5]=s,e[6]=w):w=e[6],Ve(x,w);let y;e[7]!==d||e[8]!==l||e[9]!==c?(y=v=>{l(()=>d.unlinkAuthAccount({accountId:v,userId:c}))},e[7]=d,e[8]=l,e[9]=c,e[10]=y):y=e[10];const A=y;let h;e[11]!==n?(h=n("Linked accounts"),e[11]=n,e[12]=h):h=e[12];let g;e[13]!==h?(g=t(Oe,{children:h}),e[13]=h,e[14]=g):g=e[14];let b;e[15]!==k?(b=k!==null&&t("p",{className:"text-sm text-destructive",role:"alert",children:k}),e[15]=k,e[16]=b):b=e[16];let p;e[17]!==r||e[18]!==n?(p=r!==null&&r.length===0&&t("p",{className:"text-sm text-muted-foreground",children:n("No linked accounts.")}),e[17]=r,e[18]=n,e[19]=p):p=e[19];let o;e[20]!==r||e[21]!==a||e[22]!==A||e[23]!==n?(o=r!==null&&r.length>0&&t(Fe,{className:"overflow-hidden py-0",children:t(Ie,{className:"px-0",children:i(Re,{"data-testid":"ud-accounts-table",children:[t(Pe,{children:i(O,{children:[t(D,{children:n("provider")}),t(D,{children:n("created")}),t(D,{"aria-label":n("Actions")})]})}),t(Te,{children:r.map(v=>{const I=Ae(v.id);return i(O,{"data-testid":`ud-account-${I}`,children:[t(R,{children:Ae(v.providerId)}),t(R,{className:"text-muted-foreground tabular-nums",children:Se(v.createdAt)}),t(R,{children:t(U,{"data-testid":`ud-unlink-${I}`,disabled:a,onClick:()=>{A(I)},size:"xs",type:"button",variant:"ghost",children:n("Unlink")})})]},I)})})]})})}),e[20]=r,e[21]=a,e[22]=A,e[23]=n,e[24]=o):o=e[24];let C;return e[25]!==g||e[26]!==b||e[27]!==p||e[28]!==o?(C=i("div",{className:"flex flex-col gap-2","data-testid":"ud-accounts",children:[g,b,p,o]}),e[25]=g,e[26]=b,e[27]=p,e[28]=o,e[29]=C):C=e[29],C},ot=u=>{const e=Ne(40),{busy:a,capabilities:l,runAction:c,userId:s,version:d}=u,n=ge(),r=ke(),[m,k]=F(null);let S;e[0]!==l.passkey||e[1]!==n||e[2]!==s?(S=()=>{l.passkey&&Ee((async()=>{try{k(await n.listAuthPasskeys({userId:s}))}catch{k(null)}})())},e[0]=l.passkey,e[1]=n,e[2]=s,e[3]=S):S=e[3];let x;e[4]!==l.passkey||e[5]!==n||e[6]!==s||e[7]!==d?(x=[l.passkey,n,s,d],e[4]=l.passkey,e[5]=n,e[6]=s,e[7]=d,e[8]=x):x=e[8],Ve(S,x);let w;e[9]!==n||e[10]!==c||e[11]!==s?(w=()=>{c(()=>n.disableAuthTwoFactor({userId:s}))},e[9]=n,e[10]=c,e[11]=s,e[12]=w):w=e[12];const y=w;let A;e[13]!==n||e[14]!==c?(A=I=>{c(()=>n.deleteAuthPasskey({passkeyId:I}))},e[13]=n,e[14]=c,e[15]=A):A=e[15];const h=A;let g;e[16]!==r?(g=r("Security"),e[16]=r,e[17]=g):g=e[17];let b;e[18]!==g?(b=t(Oe,{children:g}),e[18]=g,e[19]=b):b=e[19];let p;e[20]!==a||e[21]!==l.twoFactor||e[22]!==y||e[23]!==r?(p=l.twoFactor&&t(U,{"data-testid":"ud-disable-2fa",disabled:a,onClick:y,size:"sm",type:"button",variant:"outline",children:r("Disable two-factor")}),e[20]=a,e[21]=l.twoFactor,e[22]=y,e[23]=r,e[24]=p):p=e[24];let o;e[25]!==l.passkey||e[26]!==m||e[27]!==r?(o=l.passkey&&m!==null&&m.length===0&&t("p",{className:"text-sm text-muted-foreground",children:r("No passkeys.")}),e[25]=l.passkey,e[26]=m,e[27]=r,e[28]=o):o=e[28];let C;e[29]!==a||e[30]!==l.passkey||e[31]!==h||e[32]!==m||e[33]!==r?(C=l.passkey&&m!==null&&m.length>0&&t(Fe,{className:"overflow-hidden py-0",children:t(Ie,{className:"px-0",children:i(Re,{"data-testid":"ud-passkeys-table",children:[t(Pe,{children:i(O,{children:[t(D,{children:r("name")}),t(D,{children:r("created")}),t(D,{"aria-label":r("Actions")})]})}),t(Te,{children:m.map(I=>{const $=Ae(I.id);return i(O,{"data-testid":`ud-passkey-${$}`,children:[t(R,{children:Ae(I.name)||$}),t(R,{className:"text-muted-foreground tabular-nums",children:Se(I.createdAt)}),t(R,{children:t(U,{"data-testid":`ud-delete-passkey-${$}`,disabled:a,onClick:()=>{h($)},size:"xs",type:"button",variant:"ghost",children:r("Delete")})})]},$)})})]})})}),e[29]=a,e[30]=l.passkey,e[31]=h,e[32]=m,e[33]=r,e[34]=C):C=e[34];let v;return e[35]!==b||e[36]!==p||e[37]!==o||e[38]!==C?(v=i("div",{className:"flex flex-col gap-2","data-testid":"ud-security",children:[b,p,o,C]}),e[35]=b,e[36]=p,e[37]=o,e[38]=C,e[39]=v):v=e[39],v},dt=/(?:at|expires)$/iu,ct=new Set(["banExpires","banned","banReason","email","emailVerified","id","name","role"]),ut=(u,e)=>typeof e=="number"&&dt.test(u)?Se(e):Ae(e),mt=({capabilities:u,onChanged:e,onClose:a,user:l})=>{const c=ge(),s=ke(),d=l.banned===!0,[n,r]=F(null),[m,k]=F(!1),[S,x]=F(0),[w,y]=F(typeof l.role=="string"?l.role:""),[A,h]=F(""),[g,b]=F(""),[p,o]=F(""),[C,v]=F(null),[I,$]=F(!1),T=(N,z)=>{Ee((async()=>{k(!0),r(null);try{const L=await N();z?.refresh!==!1&&(x(j=>j+1),e()),z?.onResult?.(L)}catch(L){r(je(L))}k(!1)})())},ze=N=>{y(N.target.value)},q=N=>{h(N.target.value)},Be=N=>{b(N.target.value)},Y=N=>{o(N.target.value)},Ue=()=>{const N=w.trim();N!==""&&T(async()=>{await c.setAuthUserRole({role:N,userId:l.id})})},G=()=>{const N=Number.parseInt(g,10),z=Number.isFinite(N)&&N>0?N*86400:void 0;T(async()=>{await c.banAuthUser({expiresInSeconds:z,reason:A.trim()===""?void 0:A.trim(),userId:l.id})})},E=()=>{T(async()=>{await c.unbanAuthUser({userId:l.id})})},Q=()=>{T(async()=>{await c.setAuthUserPassword({newPassword:p,userId:l.id}),o("")})},we=()=>{T(()=>c.impersonateAuthUser({userId:l.id}),{onResult:N=>{v(N.token)},refresh:!1})},Z=()=>{T(async()=>{await c.revokeAuthUserSessions({userId:l.id})})},$e=()=>{T(async()=>{await c.removeAuthUser({userId:l.id}),a()})},W=()=>{$(!0)},Ce=()=>{$(!1)},J=Object.entries(l).filter(([N])=>!ct.has(N));return i(Ye,{label:s("User details"),onClose:a,panelTestId:"ud-panel",testId:"ud-overlay",variant:"drawer",children:[i("div",{className:"flex items-start justify-between gap-2",children:[i("div",{className:"flex flex-col gap-1",children:[t("h2",{className:"text-sm font-semibold text-foreground",children:l.name??l.email??l.id}),t("p",{className:"font-mono text-xs text-muted-foreground",children:l.id}),i("div",{className:"flex flex-wrap items-center gap-1.5 pt-1",children:[typeof l.role=="string"&&l.role!==""&&t(M,{variant:"secondary",children:l.role}),d?t(M,{variant:"destructive",children:s("Banned")}):t(M,{variant:"outline",children:s("Active")}),l.emailVerified===!0?t(M,{variant:"secondary",children:s("verified")}):t(M,{variant:"outline",children:s("unverified")})]})]}),t(U,{"data-testid":"ud-close",onClick:a,size:"sm",type:"button",variant:"ghost",children:s("Close")})]}),n!==null&&t("p",{className:"text-sm text-destructive","data-testid":"ud-action-error",role:"alert",children:n}),u.admin&&i(Fe,{className:"gap-0 py-0",children:[t("header",{className:"border-b border-border px-4 py-3",children:t("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:s("Actions")})}),i(Ie,{className:"flex flex-col gap-3 p-3",children:[i("div",{className:"flex items-end gap-2",children:[i("div",{className:"flex flex-1 flex-col gap-1",children:[t(V,{htmlFor:"ud-role",children:s("Role")}),t(B,{"data-testid":"ud-role-input",id:"ud-role",onChange:ze,value:w})]}),t(U,{"data-testid":"ud-set-role",disabled:m||w.trim()==="",onClick:Ue,size:"sm",type:"button",variant:"outline",children:s("Set role")})]}),d?t(U,{"data-testid":"ud-unban",disabled:m,onClick:E,size:"sm",type:"button",variant:"outline",children:s("Unban")}):i("div",{className:"flex items-end gap-2",children:[i("div",{className:"flex flex-1 flex-col gap-1",children:[t(V,{htmlFor:"ud-ban-reason",children:s("Ban reason (optional)")}),t(B,{"data-testid":"ud-ban-reason",id:"ud-ban-reason",onChange:q,value:A})]}),i("div",{className:"flex w-24 flex-col gap-1",children:[t(V,{htmlFor:"ud-ban-days",children:s("Days")}),t(B,{"data-testid":"ud-ban-days",id:"ud-ban-days",onChange:Be,type:"number",value:g})]}),t(U,{"data-testid":"ud-ban",disabled:m,onClick:G,size:"sm",type:"button",variant:"destructive",children:s("Ban user")})]}),i("div",{className:"flex items-end gap-2",children:[i("div",{className:"flex flex-1 flex-col gap-1",children:[t(V,{htmlFor:"ud-password",children:s("New password")}),t(B,{"data-testid":"ud-password",id:"ud-password",onChange:Y,type:"password",value:p})]}),t(U,{"data-testid":"ud-set-password",disabled:m||p==="",onClick:Q,size:"sm",type:"button",variant:"outline",children:s("Set password")})]}),i("div",{className:"flex flex-wrap gap-2",children:[t(U,{"data-testid":"ud-impersonate",disabled:m,onClick:we,size:"sm",type:"button",variant:"outline",children:s("Impersonate")}),t(U,{"data-testid":"ud-revoke-all",disabled:m,onClick:Z,size:"sm",type:"button",variant:"outline",children:s("Revoke all sessions")}),I?i(et,{children:[t(U,{"data-testid":"ud-delete-confirm",disabled:m,onClick:$e,size:"sm",type:"button",variant:"destructive",children:s("Confirm delete")}),t(U,{"data-testid":"ud-delete-cancel",onClick:Ce,size:"sm",type:"button",variant:"ghost",children:s("Cancel")})]}):t(U,{"data-testid":"ud-delete",disabled:m,onClick:W,size:"sm",type:"button",variant:"destructive",children:s("Delete user")})]}),C!==null&&i("div",{className:"flex flex-col gap-1","data-testid":"ud-impersonation",children:[t(V,{htmlFor:"ud-token",children:s("Impersonation token")}),t(B,{"data-testid":"ud-token",id:"ud-token",readOnly:!0,value:C})]})]})]}),t(rt,{busy:m,runAction:T,userId:l.id,version:S}),u.accounts&&t(it,{busy:m,runAction:T,userId:l.id,version:S}),(u.twoFactor||u.passkey)&&t(ot,{busy:m,capabilities:u,runAction:T,userId:l.id,version:S}),i("div",{className:"flex flex-col gap-1","data-testid":"ud-fields",children:[t("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:s("Fields")}),t("dl",{className:"flex flex-col",children:J.map(([N,z])=>i("div",{className:"flex flex-col border-t border-border py-1.5",children:[t("dt",{className:"text-xs font-semibold text-muted-foreground",children:N}),t("dd",{className:"m-0 font-mono text-xs break-words",children:ut(N,z)})]},N))})]})]})},ht=50,Et=({pageSize:u=ht}={})=>{const e=ge(),a=ke(),[l,c]=F(""),[s,d]=F(""),n=Ke(l),[r,m]=F(null),[k,S]=F(!1),{capabilities:x}=tt(),w=n.trim(),y=s.trim(),A=Ze(["lunora-auth-users",w,y,u],()=>e.listAuthUsers({filterField:y===""?void 0:"role",filterValue:y===""?void 0:y,limit:u,search:w===""?void 0:w}),{keepPreviousData:!0}),h=A.data?.rows??null,g=A.error,b=()=>{A.refetch()};Je(()=>{A.refetch()},!0);const p=r===null?null:h?.find(o=>o.id===r)??null;return i("div",{className:"flex flex-col gap-4","data-testid":"lunora-users",children:[i("div",{className:"flex flex-wrap items-center gap-2",children:[t(B,{"aria-label":a("Search users"),className:"w-56","data-testid":"us-search",onChange:o=>{c(o.target.value)},placeholder:a("Search by email or name…"),value:l}),t(B,{"aria-label":a("Filter by role"),className:"w-40","data-testid":"us-role-filter",onChange:o=>{d(o.target.value)},placeholder:a("Filter by role"),value:s}),t(U,{"data-testid":"us-new",onClick:()=>{S(!0)},size:"sm",type:"button",children:a("New user")})]}),g!==null&&t("p",{className:"text-sm text-destructive","data-testid":"us-users-error",role:"alert",children:g}),h!==null&&h.length===0&&t(Qe,{description:a("Users who sign up to your app will appear here."),icon:t("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:t("path",{d:"M16 20v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm11.5 10v-2a4 4 0 0 0-3-3.85"})}),testId:"us-empty",title:a("No users.")}),h!==null&&h.length>0&&t(Fe,{className:"overflow-hidden py-0",children:t(Ie,{className:"px-0",children:i(Re,{"data-testid":"us-table",children:[t(Pe,{children:i(O,{children:[t(D,{children:a("id")}),t(D,{children:a("email")}),t(D,{children:a("name")}),t(D,{children:a("role")}),t(D,{children:a("status")}),t(D,{children:a("verified")}),t(D,{children:a("created")}),t(D,{"aria-label":a("Actions")})]})}),t(Te,{children:h.map(o=>i(O,{"data-testid":`us-row-${o.id}`,children:[t(R,{className:"font-mono text-xs",children:o.id}),t(R,{children:o.email??""}),t(R,{children:o.name??""}),t(R,{children:typeof o.role=="string"&&o.role!==""?t(M,{variant:"secondary",children:o.role}):""}),t(R,{children:o.banned===!0?t(M,{variant:"destructive",children:a("Banned")}):t(M,{variant:"success",children:a("Active")})}),t(R,{children:o.emailVerified===!0?t(M,{variant:"success",children:a("yes")}):t(M,{variant:"outline",children:a("no")})}),t(R,{className:"text-muted-foreground tabular-nums",children:Se(o.createdAt)}),t(R,{children:t(U,{"data-testid":`us-manage-${o.id}`,onClick:()=>{m(o.id)},size:"xs",type:"button",variant:"ghost",children:a("Manage")})})]},o.id))})]})})}),p!==null&&t(mt,{capabilities:x,onChanged:b,onClose:()=>{m(null)},user:p}),k&&t(nt,{onClose:()=>{S(!1)},onCreated:b})]})};export{Et as UsersPanel};
|
|
1
|
+
import{useLunora as Y}from"@lunora/react";import{useState as w,useEffect as Ve}from"react";import{B as M}from"../packem_shared/badge-r_5B4LHP.mjs";import{B as R}from"../packem_shared/button-q0UYSmrn.mjs";import{C as Q,a as _}from"../packem_shared/card--2hKx4L2.mjs";import{E as Qe}from"../packem_shared/empty-state-D7jEML_T.mjs";import{I as $}from"../packem_shared/input-CXhxesPC.mjs";import{T as Ee,a as Re,b as O,c as S,d as Te,e as U}from"../packem_shared/table-D0SBiDu-.mjs";import{b as _e}from"../packem_shared/use-admin-query-BKXiqLci.mjs";import{c as Ae}from"react/compiler-runtime";import{u as Ye,D as We}from"../packem_shared/use-auth-config-CuM3eJZz.mjs";import{useAutoRefresh as Je}from"../packem_shared/DEFAULT_AUTO_REFRESH_MS-DuULO4XM.mjs";import Ke from"../packem_shared/useDebounced-DVeQ5-oW.mjs";import{useT as G}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.mjs";import{h as Ie,f as q,i as Ue,b as Oe}from"../packem_shared/internal-B6haJbiP.mjs";import{jsxs as a,jsx as t,Fragment as Xe}from"react/jsx-runtime";import{C as et}from"../packem_shared/checkbox-CnS9cyCz.mjs";import{L as V}from"../packem_shared/label-DKFzyHq6.mjs";import{M as Ge}from"../packem_shared/modal-shell-CDztwLnv.mjs";import{u as tt}from"../packem_shared/use-async-submit-BTr3w2-K.mjs";We.capabilities;const st=()=>{const m=Ae(3),{config:e,ready:l}=Ye();let n;return m[0]!==e.capabilities||m[1]!==l?(n={capabilities:e.capabilities,ready:l},m[0]=e.capabilities,m[1]=l,m[2]=n):n=m[2],n},nt=(m,e)=>typeof m.acceptedAt=="number"?"spent":typeof m.expiresAt=="number"&&m.expiresAt<=e?"expired":"pending",qe=500,lt=()=>{const m=Y(),e=G(),[l,n]=w(""),[h,s]=w(null),[c,i]=w(null),[o,f]=w(!1),v=_e(["lunora-auth-sign-up-invitations",qe],()=>m.listAuthSignUpInvitations({limit:qe})),C=v.data?.rows??null,b=v.data?.total??0,A=()=>{const r=l.trim();r!==""&&(s(null),q((async()=>{try{const u=await m.createAuthSignUpInvitation({email:r}),p=typeof u.token=="string"?u.token:void 0;i(p===void 0?null:`${globalThis.location.origin}/sign-up?email=${encodeURIComponent(r)}&invite=${encodeURIComponent(p)}`),f(!1),n(""),v.refetch()}catch(u){s(u instanceof Error?u.message:String(u))}})()))},y=()=>{const r="navigator"in globalThis?globalThis.navigator.clipboard:void 0;c===null||r===void 0||q(r.writeText(c).then(()=>(f(!0),!0)))},I=r=>{s(null),q((async()=>{try{await m.revokeAuthSignUpInvitation({email:r}),v.refetch()}catch(u){s(u instanceof Error?u.message:String(u))}})())};return a("div",{className:"flex flex-col gap-4","data-testid":"sign-up-invitations",children:[a("div",{children:[t("h2",{className:"text-base font-medium",children:e("Sign-up invitations")}),t("p",{className:"text-sm text-muted-foreground",children:e("Only invited addresses can create an account. Nothing is emailed — send the invitee the one-time link yourself.")})]}),a("div",{className:"flex gap-2",children:[t($,{"aria-label":e("Email address to invite"),"data-testid":"sign-up-invitation-email",onChange:r=>{n(r.target.value)},placeholder:e("ada@example.com"),type:"email",value:l}),t(R,{"data-testid":"sign-up-invitation-submit",onClick:A,type:"button",children:e("Invite")})]}),c!==null&&t(Q,{children:a(_,{className:"flex flex-col gap-2 p-4",children:[t("p",{className:"text-sm",children:e("Send this link to the invitee. It is shown once and cannot be recovered.")}),a("div",{className:"flex gap-2",children:[t($,{"data-testid":"sign-up-invitation-link",readOnly:!0,value:c}),t(R,{"data-testid":"sign-up-invitation-copy",onClick:y,type:"button",children:e(o?"Copied":"Copy")})]})]})}),(h??v.error)!==null&&t("p",{className:"text-sm text-destructive","data-testid":"sign-up-invitations-error",role:"alert",children:h??v.error}),C!==null&&C.length===0&&t(Qe,{testId:"sign-up-invitations-empty",title:e("Nobody has been invited yet.")}),C!==null&&b>C.length&&t("p",{className:"text-sm text-muted-foreground","data-testid":"sign-up-invitations-truncated",children:e("Showing the most recent invitations. Query the signUpInvitation table directly to see the rest.")}),C!==null&&C.length>0&&t(Q,{children:t(_,{className:"p-0",children:a(Ee,{children:[t(Re,{children:a(O,{children:[t(S,{children:e("Email")}),t(S,{children:e("Status")}),t(S,{children:e("Expires")}),t(S,{children:e("Invited by")}),t(S,{})]})}),t(Te,{children:C.map(r=>{const u=nt(r,Date.now()),p=r.email??"";return a(O,{"data-testid":`sign-up-invitation-${p}`,children:[t(U,{children:p}),a(U,{"data-testid":`sign-up-invitation-status-${p}`,children:[u==="spent"&&e("Accepted"),u==="expired"&&e("Expired"),u==="pending"&&e("Pending")]}),t(U,{children:typeof r.expiresAt=="number"?Ie(r.expiresAt):"—"}),t(U,{children:r.invitedBy??"—"}),t(U,{className:"text-right",children:t(R,{onClick:()=>{I(p)},type:"button",variant:"ghost",children:e("Revoke")})})]},r.id)})})]})})})]})},at={boolean:"checkbox",date:"datetime-local",number:"number",string:"text"},it=(m,e)=>m.type==="boolean"?!0:typeof e!="string"||e.trim()===""?!1:m.type!=="number"||!Number.isNaN(Number(e.trim())),rt=(m,e)=>{if(m.type==="boolean")return e===!0?{value:!0}:m.required?{value:!1}:void 0;const l=typeof e=="string"?e.trim():"";if(l!==""){if(m.type==="number"){const n=Number(l);return Number.isNaN(n)?void 0:{value:n}}return{value:l}}},ot=m=>{const e=Ae(105),{onClose:l,onCreated:n}=m,h=Y(),s=G(),{config:c}=Ye(),{busy:i,error:o,run:f}=tt(),[v,C]=w(""),[b,A]=w(""),[y,I]=w(""),[r,u]=w("");let p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p={},e[0]=p):p=e[0];const[x,d]=w(p);let F;e[1]===Symbol.for("react.memo_cache_sentinel")?(F=g=>{C(g.target.value)},e[1]=F):F=e[1];const N=F;let E;e[2]===Symbol.for("react.memo_cache_sentinel")?(E=g=>{A(g.target.value)},e[2]=E):E=e[2];const z=E;let D;e[3]===Symbol.for("react.memo_cache_sentinel")?(D=g=>{I(g.target.value)},e[3]=D):D=e[3];const $e=D;let Z;e[4]===Symbol.for("react.memo_cache_sentinel")?(Z=g=>{u(g.target.value)},e[4]=Z):Z=e[4];const Be=Z;let W;e[5]===Symbol.for("react.memo_cache_sentinel")?(W=(g,T)=>{d(H=>({...H,[g]:T}))},e[5]=W):W=e[5];const De=W;let J;e[6]!==x?(J=g=>x[g.name]??(g.type==="boolean"?!1:""),e[6]=x,e[7]=J):J=e[7];const P=J;let K;if(e[8]!==c.userFields||e[9]!==P){let g;e[11]!==P?(g=T=>!T.required||it(T,P(T)),e[11]=P,e[12]=g):g=e[12],K=c.userFields.every(g),e[8]=c.userFields,e[9]=P,e[10]=K}else K=e[10];const Fe=K;let X;e[13]!==i||e[14]!==v||e[15]!==b||e[16]!==Fe?(X=!i&&v.trim()!==""&&b.trim()!==""&&Fe,e[13]=i,e[14]=v,e[15]=b,e[16]=Fe,e[17]=X):X=e[17];const ze=X;let ee;e[18]!==c.userFields||e[19]!==P?(ee=()=>{const g={};for(const T of c.userFields){const H=rt(T,P(T));H!==void 0&&(g[T.name]=H.value)}return Object.keys(g).length===0?void 0:g},e[18]=c.userFields,e[19]=P,e[20]=ee):ee=e[20];const Se=ee;let te;e[21]!==Se||e[22]!==h||e[23]!==v||e[24]!==b||e[25]!==l||e[26]!==n||e[27]!==y||e[28]!==r||e[29]!==f?(te=()=>{f(async()=>{await h.createAuthUser({data:Se(),email:v.trim(),name:b.trim(),password:y===""?void 0:y,role:r.trim()===""?void 0:r.trim()}),n(),l()})},e[21]=Se,e[22]=h,e[23]=v,e[24]=b,e[25]=l,e[26]=n,e[27]=y,e[28]=r,e[29]=f,e[30]=te):te=e[30];const k=te;let B;e[31]!==s?(B=s("Create user"),e[31]=s,e[32]=B):B=e[32];let L;e[33]!==s?(L=s("Create user"),e[33]=s,e[34]=L):L=e[34];let j;e[35]!==L?(j=t("h2",{className:"text-sm font-semibold text-foreground",children:L}),e[35]=L,e[36]=j):j=e[36];let se;e[37]!==s?(se=s("email"),e[37]=s,e[38]=se):se=e[38];let ne;e[39]!==se?(ne=t(V,{htmlFor:"uc-email",children:se}),e[39]=se,e[40]=ne):ne=e[40];let le;e[41]!==v?(le=t($,{"data-testid":"uc-email",id:"uc-email",onChange:N,type:"email",value:v}),e[41]=v,e[42]=le):le=e[42];let ae;e[43]!==ne||e[44]!==le?(ae=a("div",{className:"flex flex-col gap-1",children:[ne,le]}),e[43]=ne,e[44]=le,e[45]=ae):ae=e[45];let ie;e[46]!==s?(ie=s("name"),e[46]=s,e[47]=ie):ie=e[47];let re;e[48]!==ie?(re=t(V,{htmlFor:"uc-name",children:ie}),e[48]=ie,e[49]=re):re=e[49];let oe;e[50]!==b?(oe=t($,{"data-testid":"uc-name",id:"uc-name",onChange:z,value:b}),e[50]=b,e[51]=oe):oe=e[51];let de;e[52]!==re||e[53]!==oe?(de=a("div",{className:"flex flex-col gap-1",children:[re,oe]}),e[52]=re,e[53]=oe,e[54]=de):de=e[54];let ce;e[55]!==s?(ce=s("Password (optional)"),e[55]=s,e[56]=ce):ce=e[56];let ue;e[57]!==ce?(ue=t(V,{htmlFor:"uc-password",children:ce}),e[57]=ce,e[58]=ue):ue=e[58];let me;e[59]!==y?(me=t($,{"data-testid":"uc-password",id:"uc-password",onChange:$e,type:"password",value:y}),e[59]=y,e[60]=me):me=e[60];let he;e[61]!==ue||e[62]!==me?(he=a("div",{className:"flex flex-col gap-1",children:[ue,me]}),e[61]=ue,e[62]=me,e[63]=he):he=e[63];let pe;e[64]!==s?(pe=s("Role (optional)"),e[64]=s,e[65]=pe):pe=e[65];let fe;e[66]!==pe?(fe=t(V,{htmlFor:"uc-role",children:pe}),e[66]=pe,e[67]=fe):fe=e[67];let ve;e[68]!==r?(ve=t($,{"data-testid":"uc-role",id:"uc-role",onChange:Be,value:r}),e[68]=r,e[69]=ve):ve=e[69];let ge;e[70]!==fe||e[71]!==ve?(ge=a("div",{className:"flex flex-col gap-1",children:[fe,ve]}),e[70]=fe,e[71]=ve,e[72]=ge):ge=e[72];let be;e[73]!==c.userFields||e[74]!==P||e[75]!==s?(be=c.userFields.length>0&&a("div",{className:"flex flex-col gap-3 border-t border-border pt-3","data-testid":"uc-plugin-fields",children:[t("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:s("Plugin fields")}),c.userFields.map(g=>{const T=`uc-field-${g.name}`,H=g.required?"":` (${s("optional")})`;if(g.type==="boolean"){const Me=P(g)===!0;return a("label",{className:"flex items-center gap-2",htmlFor:T,children:[t(et,{checked:Me,"data-testid":T,id:T,onCheckedChange:Ze=>{De(g.name,Ze)}}),a("span",{className:"text-sm",children:[g.name,H]})]},g.name)}const He=P(g);return a("div",{className:"flex flex-col gap-1",children:[a(V,{htmlFor:T,children:[g.name,H]}),t($,{"data-testid":T,id:T,onChange:Me=>{De(g.name,Me.target.value)},type:at[g.type],value:typeof He=="string"?He:""})]},g.name)})]}),e[73]=c.userFields,e[74]=P,e[75]=s,e[76]=be):be=e[76];let xe;e[77]!==o?(xe=o!==null&&t("p",{className:"text-sm text-destructive","data-testid":"uc-error",role:"alert",children:o}),e[77]=o,e[78]=xe):xe=e[78];let ye;e[79]!==s?(ye=s("Cancel"),e[79]=s,e[80]=ye):ye=e[80];let Ne;e[81]!==l||e[82]!==ye?(Ne=t(R,{"data-testid":"uc-cancel",onClick:l,size:"sm",type:"button",variant:"outline",children:ye}),e[81]=l,e[82]=ye,e[83]=Ne):Ne=e[83];const Le=!ze;let ke;e[84]!==i||e[85]!==s?(ke=s(i?"Creating…":"Create"),e[84]=i,e[85]=s,e[86]=ke):ke=e[86];let Ce;e[87]!==k||e[88]!==Le||e[89]!==ke?(Ce=t(R,{"data-testid":"uc-submit",disabled:Le,onClick:k,size:"sm",type:"button",children:ke}),e[87]=k,e[88]=Le,e[89]=ke,e[90]=Ce):Ce=e[90];let we;e[91]!==Ne||e[92]!==Ce?(we=a("div",{className:"flex justify-end gap-2 pt-1",children:[Ne,Ce]}),e[91]=Ne,e[92]=Ce,e[93]=we):we=e[93];let Pe;return e[94]!==l||e[95]!==B||e[96]!==j||e[97]!==ae||e[98]!==de||e[99]!==he||e[100]!==ge||e[101]!==be||e[102]!==xe||e[103]!==we?(Pe=a(Ge,{label:B,onClose:l,panelTestId:"uc-dialog",testId:"uc-overlay",variant:"dialog",children:[j,ae,de,he,ge,be,xe,we]}),e[94]=l,e[95]=B,e[96]=j,e[97]=ae,e[98]=de,e[99]=he,e[100]=ge,e[101]=be,e[102]=xe,e[103]=we,e[104]=Pe):Pe=e[104],Pe},je=m=>{const e=Ae(2),{children:l}=m;let n;return e[0]!==l?(n=t("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:l}),e[0]=l,e[1]=n):n=e[1],n},dt=m=>{const e=Ae(29),{busy:l,runAction:n,userId:h,version:s}=m,c=Y(),i=G(),[o,f]=w(null),[v,C]=w(null);let b;e[0]!==c||e[1]!==h?(b=()=>{q((async()=>{C(null);try{const N=await c.listAuthSessions({limit:50,userId:h});f(N.rows)}catch(N){const E=N;f(null),C(Oe(E))}})())},e[0]=c,e[1]=h,e[2]=b):b=e[2];let A;e[3]!==c||e[4]!==h||e[5]!==s?(A=[c,h,s],e[3]=c,e[4]=h,e[5]=s,e[6]=A):A=e[6],Ve(b,A);let y;e[7]!==c||e[8]!==n?(y=N=>{n(()=>c.revokeAuthSession({sessionId:N}))},e[7]=c,e[8]=n,e[9]=y):y=e[9];const I=y;let r;e[10]!==i?(r=i("Sessions"),e[10]=i,e[11]=r):r=e[11];let u;e[12]!==r?(u=t(je,{children:r}),e[12]=r,e[13]=u):u=e[13];let p;e[14]!==v?(p=v!==null&&t("p",{className:"text-sm text-destructive","data-testid":"ud-sessions-error",role:"alert",children:v}),e[14]=v,e[15]=p):p=e[15];let x;e[16]!==o||e[17]!==i?(x=o!==null&&o.length===0&&t("p",{className:"text-sm text-muted-foreground","data-testid":"ud-sessions-empty",children:i("No active sessions.")}),e[16]=o,e[17]=i,e[18]=x):x=e[18];let d;e[19]!==l||e[20]!==I||e[21]!==o||e[22]!==i?(d=o!==null&&o.length>0&&t(Q,{className:"overflow-hidden py-0",children:t(_,{className:"px-0",children:a(Ee,{"data-testid":"ud-sessions-table",children:[t(Re,{children:a(O,{children:[t(S,{children:i("expires")}),t(S,{children:i("ip")}),t(S,{children:i("user agent")}),t(S,{"aria-label":i("Actions")})]})}),t(Te,{children:o.map(N=>a(O,{"data-testid":`ud-session-${N.id}`,children:[t(U,{className:"text-muted-foreground tabular-nums",children:Ie(N.expiresAt)}),t(U,{children:N.ipAddress??""}),t(U,{className:"max-w-40 truncate",children:N.userAgent??""}),t(U,{children:t(R,{"data-testid":`ud-revoke-${N.id}`,disabled:l,onClick:()=>{I(N.id)},size:"xs",type:"button",variant:"ghost",children:i("Revoke")})})]},N.id))})]})})}),e[19]=l,e[20]=I,e[21]=o,e[22]=i,e[23]=d):d=e[23];let F;return e[24]!==u||e[25]!==p||e[26]!==x||e[27]!==d?(F=a("div",{className:"flex flex-col gap-2","data-testid":"ud-sessions",children:[u,p,x,d]}),e[24]=u,e[25]=p,e[26]=x,e[27]=d,e[28]=F):F=e[28],F},ct=m=>{const e=Ae(30),{busy:l,runAction:n,userId:h,version:s}=m,c=Y(),i=G(),[o,f]=w(null),[v,C]=w(null);let b;e[0]!==c||e[1]!==h?(b=()=>{q((async()=>{C(null);try{f(await c.listAuthAccounts({userId:h}))}catch(N){const E=N;f(null),C(Oe(E))}})())},e[0]=c,e[1]=h,e[2]=b):b=e[2];let A;e[3]!==c||e[4]!==h||e[5]!==s?(A=[c,h,s],e[3]=c,e[4]=h,e[5]=s,e[6]=A):A=e[6],Ve(b,A);let y;e[7]!==c||e[8]!==n||e[9]!==h?(y=N=>{n(()=>c.unlinkAuthAccount({accountId:N,userId:h}))},e[7]=c,e[8]=n,e[9]=h,e[10]=y):y=e[10];const I=y;let r;e[11]!==i?(r=i("Linked accounts"),e[11]=i,e[12]=r):r=e[12];let u;e[13]!==r?(u=t(je,{children:r}),e[13]=r,e[14]=u):u=e[14];let p;e[15]!==v?(p=v!==null&&t("p",{className:"text-sm text-destructive",role:"alert",children:v}),e[15]=v,e[16]=p):p=e[16];let x;e[17]!==o||e[18]!==i?(x=o!==null&&o.length===0&&t("p",{className:"text-sm text-muted-foreground",children:i("No linked accounts.")}),e[17]=o,e[18]=i,e[19]=x):x=e[19];let d;e[20]!==o||e[21]!==l||e[22]!==I||e[23]!==i?(d=o!==null&&o.length>0&&t(Q,{className:"overflow-hidden py-0",children:t(_,{className:"px-0",children:a(Ee,{"data-testid":"ud-accounts-table",children:[t(Re,{children:a(O,{children:[t(S,{children:i("provider")}),t(S,{children:i("created")}),t(S,{"aria-label":i("Actions")})]})}),t(Te,{children:o.map(N=>{const E=Ue(N.id);return a(O,{"data-testid":`ud-account-${E}`,children:[t(U,{children:Ue(N.providerId)}),t(U,{className:"text-muted-foreground tabular-nums",children:Ie(N.createdAt)}),t(U,{children:t(R,{"data-testid":`ud-unlink-${E}`,disabled:l,onClick:()=>{I(E)},size:"xs",type:"button",variant:"ghost",children:i("Unlink")})})]},E)})})]})})}),e[20]=o,e[21]=l,e[22]=I,e[23]=i,e[24]=d):d=e[24];let F;return e[25]!==u||e[26]!==p||e[27]!==x||e[28]!==d?(F=a("div",{className:"flex flex-col gap-2","data-testid":"ud-accounts",children:[u,p,x,d]}),e[25]=u,e[26]=p,e[27]=x,e[28]=d,e[29]=F):F=e[29],F},ut=m=>{const e=Ae(40),{busy:l,capabilities:n,runAction:h,userId:s,version:c}=m,i=Y(),o=G(),[f,v]=w(null);let C;e[0]!==n.passkey||e[1]!==i||e[2]!==s?(C=()=>{n.passkey&&q((async()=>{try{v(await i.listAuthPasskeys({userId:s}))}catch{v(null)}})())},e[0]=n.passkey,e[1]=i,e[2]=s,e[3]=C):C=e[3];let b;e[4]!==n.passkey||e[5]!==i||e[6]!==s||e[7]!==c?(b=[n.passkey,i,s,c],e[4]=n.passkey,e[5]=i,e[6]=s,e[7]=c,e[8]=b):b=e[8],Ve(C,b);let A;e[9]!==i||e[10]!==h||e[11]!==s?(A=()=>{h(()=>i.disableAuthTwoFactor({userId:s}))},e[9]=i,e[10]=h,e[11]=s,e[12]=A):A=e[12];const y=A;let I;e[13]!==i||e[14]!==h?(I=E=>{h(()=>i.deleteAuthPasskey({passkeyId:E}))},e[13]=i,e[14]=h,e[15]=I):I=e[15];const r=I;let u;e[16]!==o?(u=o("Security"),e[16]=o,e[17]=u):u=e[17];let p;e[18]!==u?(p=t(je,{children:u}),e[18]=u,e[19]=p):p=e[19];let x;e[20]!==l||e[21]!==n.twoFactor||e[22]!==y||e[23]!==o?(x=n.twoFactor&&t(R,{"data-testid":"ud-disable-2fa",disabled:l,onClick:y,size:"sm",type:"button",variant:"outline",children:o("Disable two-factor")}),e[20]=l,e[21]=n.twoFactor,e[22]=y,e[23]=o,e[24]=x):x=e[24];let d;e[25]!==n.passkey||e[26]!==f||e[27]!==o?(d=n.passkey&&f!==null&&f.length===0&&t("p",{className:"text-sm text-muted-foreground",children:o("No passkeys.")}),e[25]=n.passkey,e[26]=f,e[27]=o,e[28]=d):d=e[28];let F;e[29]!==l||e[30]!==n.passkey||e[31]!==r||e[32]!==f||e[33]!==o?(F=n.passkey&&f!==null&&f.length>0&&t(Q,{className:"overflow-hidden py-0",children:t(_,{className:"px-0",children:a(Ee,{"data-testid":"ud-passkeys-table",children:[t(Re,{children:a(O,{children:[t(S,{children:o("name")}),t(S,{children:o("created")}),t(S,{"aria-label":o("Actions")})]})}),t(Te,{children:f.map(E=>{const z=Ue(E.id);return a(O,{"data-testid":`ud-passkey-${z}`,children:[t(U,{children:Ue(E.name)||z}),t(U,{className:"text-muted-foreground tabular-nums",children:Ie(E.createdAt)}),t(U,{children:t(R,{"data-testid":`ud-delete-passkey-${z}`,disabled:l,onClick:()=>{r(z)},size:"xs",type:"button",variant:"ghost",children:o("Delete")})})]},z)})})]})})}),e[29]=l,e[30]=n.passkey,e[31]=r,e[32]=f,e[33]=o,e[34]=F):F=e[34];let N;return e[35]!==p||e[36]!==x||e[37]!==d||e[38]!==F?(N=a("div",{className:"flex flex-col gap-2","data-testid":"ud-security",children:[p,x,d,F]}),e[35]=p,e[36]=x,e[37]=d,e[38]=F,e[39]=N):N=e[39],N},mt=/(?:at|expires)$/iu,ht=new Set(["banExpires","banned","banReason","email","emailVerified","id","name","role"]),pt=(m,e)=>typeof e=="number"&&mt.test(m)?Ie(e):Ue(e),ft=({capabilities:m,onChanged:e,onClose:l,user:n})=>{const h=Y(),s=G(),c=n.banned===!0,[i,o]=w(null),[f,v]=w(!1),[C,b]=w(0),[A,y]=w(typeof n.role=="string"?n.role:""),[I,r]=w(""),[u,p]=w(""),[x,d]=w(""),[F,N]=w(null),[E,z]=w(!1),D=(k,B)=>{q((async()=>{v(!0),o(null);try{const L=await k();B?.refresh!==!1&&(b(j=>j+1),e()),B?.onResult?.(L)}catch(L){o(Oe(L))}v(!1)})())},$e=k=>{y(k.target.value)},Z=k=>{r(k.target.value)},Be=k=>{p(k.target.value)},W=k=>{d(k.target.value)},De=()=>{const k=A.trim();k!==""&&D(async()=>{await h.setAuthUserRole({role:k,userId:n.id})})},J=()=>{const k=Number.parseInt(u,10),B=Number.isFinite(k)&&k>0?k*86400:void 0;D(async()=>{await h.banAuthUser({expiresInSeconds:B,reason:I.trim()===""?void 0:I.trim(),userId:n.id})})},P=()=>{D(async()=>{await h.unbanAuthUser({userId:n.id})})},K=()=>{D(async()=>{await h.setAuthUserPassword({newPassword:x,userId:n.id}),d("")})},Fe=()=>{D(()=>h.impersonateAuthUser({userId:n.id}),{onResult:k=>{N(k.token)},refresh:!1})},X=()=>{D(async()=>{await h.revokeAuthUserSessions({userId:n.id})})},ze=()=>{D(async()=>{await h.removeAuthUser({userId:n.id}),l()})},ee=()=>{z(!0)},Se=()=>{z(!1)},te=Object.entries(n).filter(([k])=>!ht.has(k));return a(Ge,{label:s("User details"),onClose:l,panelTestId:"ud-panel",testId:"ud-overlay",variant:"drawer",children:[a("div",{className:"flex items-start justify-between gap-2",children:[a("div",{className:"flex flex-col gap-1",children:[t("h2",{className:"text-sm font-semibold text-foreground",children:n.name??n.email??n.id}),t("p",{className:"font-mono text-xs text-muted-foreground",children:n.id}),a("div",{className:"flex flex-wrap items-center gap-1.5 pt-1",children:[typeof n.role=="string"&&n.role!==""&&t(M,{variant:"secondary",children:n.role}),c?t(M,{variant:"destructive",children:s("Banned")}):t(M,{variant:"outline",children:s("Active")}),n.emailVerified===!0?t(M,{variant:"secondary",children:s("verified")}):t(M,{variant:"outline",children:s("unverified")})]})]}),t(R,{"data-testid":"ud-close",onClick:l,size:"sm",type:"button",variant:"ghost",children:s("Close")})]}),i!==null&&t("p",{className:"text-sm text-destructive","data-testid":"ud-action-error",role:"alert",children:i}),m.admin&&a(Q,{className:"gap-0 py-0",children:[t("header",{className:"border-b border-border px-4 py-3",children:t("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:s("Actions")})}),a(_,{className:"flex flex-col gap-3 p-3",children:[a("div",{className:"flex items-end gap-2",children:[a("div",{className:"flex flex-1 flex-col gap-1",children:[t(V,{htmlFor:"ud-role",children:s("Role")}),t($,{"data-testid":"ud-role-input",id:"ud-role",onChange:$e,value:A})]}),t(R,{"data-testid":"ud-set-role",disabled:f||A.trim()==="",onClick:De,size:"sm",type:"button",variant:"outline",children:s("Set role")})]}),c?t(R,{"data-testid":"ud-unban",disabled:f,onClick:P,size:"sm",type:"button",variant:"outline",children:s("Unban")}):a("div",{className:"flex items-end gap-2",children:[a("div",{className:"flex flex-1 flex-col gap-1",children:[t(V,{htmlFor:"ud-ban-reason",children:s("Ban reason (optional)")}),t($,{"data-testid":"ud-ban-reason",id:"ud-ban-reason",onChange:Z,value:I})]}),a("div",{className:"flex w-24 flex-col gap-1",children:[t(V,{htmlFor:"ud-ban-days",children:s("Days")}),t($,{"data-testid":"ud-ban-days",id:"ud-ban-days",onChange:Be,type:"number",value:u})]}),t(R,{"data-testid":"ud-ban",disabled:f,onClick:J,size:"sm",type:"button",variant:"destructive",children:s("Ban user")})]}),a("div",{className:"flex items-end gap-2",children:[a("div",{className:"flex flex-1 flex-col gap-1",children:[t(V,{htmlFor:"ud-password",children:s("New password")}),t($,{"data-testid":"ud-password",id:"ud-password",onChange:W,type:"password",value:x})]}),t(R,{"data-testid":"ud-set-password",disabled:f||x==="",onClick:K,size:"sm",type:"button",variant:"outline",children:s("Set password")})]}),a("div",{className:"flex flex-wrap gap-2",children:[t(R,{"data-testid":"ud-impersonate",disabled:f,onClick:Fe,size:"sm",type:"button",variant:"outline",children:s("Impersonate")}),t(R,{"data-testid":"ud-revoke-all",disabled:f,onClick:X,size:"sm",type:"button",variant:"outline",children:s("Revoke all sessions")}),E?a(Xe,{children:[t(R,{"data-testid":"ud-delete-confirm",disabled:f,onClick:ze,size:"sm",type:"button",variant:"destructive",children:s("Confirm delete")}),t(R,{"data-testid":"ud-delete-cancel",onClick:Se,size:"sm",type:"button",variant:"ghost",children:s("Cancel")})]}):t(R,{"data-testid":"ud-delete",disabled:f,onClick:ee,size:"sm",type:"button",variant:"destructive",children:s("Delete user")})]}),F!==null&&a("div",{className:"flex flex-col gap-1","data-testid":"ud-impersonation",children:[t(V,{htmlFor:"ud-token",children:s("Impersonation token")}),t($,{"data-testid":"ud-token",id:"ud-token",readOnly:!0,value:F})]})]})]}),t(dt,{busy:f,runAction:D,userId:n.id,version:C}),m.accounts&&t(ct,{busy:f,runAction:D,userId:n.id,version:C}),(m.twoFactor||m.passkey)&&t(ut,{busy:f,capabilities:m,runAction:D,userId:n.id,version:C}),a("div",{className:"flex flex-col gap-1","data-testid":"ud-fields",children:[t("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:s("Fields")}),t("dl",{className:"flex flex-col",children:te.map(([k,B])=>a("div",{className:"flex flex-col border-t border-border py-1.5",children:[t("dt",{className:"text-xs font-semibold text-muted-foreground",children:k}),t("dd",{className:"m-0 font-mono text-xs break-words",children:pt(k,B)})]},k))})]})]})},vt=50,zt=({pageSize:m=vt}={})=>{const e=Y(),l=G(),[n,h]=w(""),[s,c]=w(""),i=Ke(n),[o,f]=w(null),[v,C]=w(!1),{capabilities:b}=st(),A=i.trim(),y=s.trim(),I=_e(["lunora-auth-users",A,y,m],()=>e.listAuthUsers({filterField:y===""?void 0:"role",filterValue:y===""?void 0:y,limit:m,search:A===""?void 0:A}),{keepPreviousData:!0}),r=I.data?.rows??null,u=I.error,p=()=>{I.refetch()};Je(()=>{I.refetch()},!0);const x=o===null?null:r?.find(d=>d.id===o)??null;return a("div",{className:"flex flex-col gap-4","data-testid":"lunora-users",children:[a("div",{className:"flex flex-wrap items-center gap-2",children:[t($,{"aria-label":l("Search users"),className:"w-56","data-testid":"us-search",onChange:d=>{h(d.target.value)},placeholder:l("Search by email or name…"),value:n}),t($,{"aria-label":l("Filter by role"),className:"w-40","data-testid":"us-role-filter",onChange:d=>{c(d.target.value)},placeholder:l("Filter by role"),value:s}),t(R,{"data-testid":"us-new",onClick:()=>{C(!0)},size:"sm",type:"button",children:l("New user")})]}),u!==null&&t("p",{className:"text-sm text-destructive","data-testid":"us-users-error",role:"alert",children:u}),r!==null&&r.length===0&&t(Qe,{description:l("Users who sign up to your app will appear here."),icon:t("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:t("path",{d:"M16 20v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm11.5 10v-2a4 4 0 0 0-3-3.85"})}),testId:"us-empty",title:l("No users.")}),r!==null&&r.length>0&&t(Q,{className:"overflow-hidden py-0",children:t(_,{className:"px-0",children:a(Ee,{"data-testid":"us-table",children:[t(Re,{children:a(O,{children:[t(S,{children:l("id")}),t(S,{children:l("email")}),t(S,{children:l("name")}),t(S,{children:l("role")}),t(S,{children:l("status")}),t(S,{children:l("verified")}),t(S,{children:l("created")}),t(S,{"aria-label":l("Actions")})]})}),t(Te,{children:r.map(d=>a(O,{"data-testid":`us-row-${d.id}`,children:[t(U,{className:"font-mono text-xs",children:d.id}),t(U,{children:d.email??""}),t(U,{children:d.name??""}),t(U,{children:typeof d.role=="string"&&d.role!==""?t(M,{variant:"secondary",children:d.role}):""}),t(U,{children:d.banned===!0?t(M,{variant:"destructive",children:l("Banned")}):t(M,{variant:"success",children:l("Active")})}),t(U,{children:d.emailVerified===!0?t(M,{variant:"success",children:l("yes")}):t(M,{variant:"outline",children:l("no")})}),t(U,{className:"text-muted-foreground tabular-nums",children:Ie(d.createdAt)}),t(U,{children:t(R,{"data-testid":`us-manage-${d.id}`,onClick:()=>{f(d.id)},size:"xs",type:"button",variant:"ghost",children:l("Manage")})})]},d.id))})]})})}),x!==null&&t(ft,{capabilities:b,onChanged:p,onClose:()=>{f(null)},user:x}),v&&t(ot,{onClose:()=>{C(!1)},onCreated:p}),b.inviteOnly&&t(lt,{})]})};export{zt as UsersPanel};
|