@lunora/studio 1.0.0-alpha.63 → 1.0.0-alpha.64

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.
Files changed (60) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/packem_chunks/MetricsPanel.js +1 -1
  3. package/dist/packem_chunks/issues-panel.js +1 -1
  4. package/dist/packem_chunks/payments-panel.js +1 -1
  5. package/dist/standalone/{chunk-SM67QXQI.js → chunk-2F7G7IWQ.js} +1 -1
  6. package/dist/standalone/chunk-34UVAASH.js +1 -0
  7. package/dist/standalone/chunk-35II7U25.js +11 -0
  8. package/dist/standalone/{chunk-UVDPQU7J.js → chunk-3FUFEZ65.js} +1 -1
  9. package/dist/standalone/{chunk-VSS7NFZJ.js → chunk-3QRTYSSX.js} +1 -1
  10. package/dist/standalone/{chunk-PZPFWABF.js → chunk-4WLYA3XE.js} +1 -1
  11. package/dist/standalone/{chunk-TDE4AR5O.js → chunk-5OWIOACV.js} +1 -1
  12. package/dist/standalone/{chunk-ZSWWTXVW.js → chunk-5U2THBI7.js} +1 -1
  13. package/dist/standalone/{chunk-DY7CLL2H.js → chunk-65OTWFS3.js} +1 -1
  14. package/dist/standalone/chunk-6DWCIIHE.js +1 -0
  15. package/dist/standalone/{chunk-IJFCOWEQ.js → chunk-7J5N6DGQ.js} +1 -1
  16. package/dist/standalone/{chunk-M7QCL3ZP.js → chunk-B43FTQJ7.js} +1 -1
  17. package/dist/standalone/{chunk-TCQEDMAQ.js → chunk-BNUJ7QMG.js} +1 -1
  18. package/dist/standalone/{chunk-RLEENOIX.js → chunk-C43X4M5U.js} +1 -1
  19. package/dist/standalone/{chunk-JGY4NGFW.js → chunk-D7XXWV4E.js} +1 -1
  20. package/dist/standalone/{chunk-4MSKCWUL.js → chunk-DVOBKIUX.js} +1 -1
  21. package/dist/standalone/{chunk-K7M4SMQ7.js → chunk-EKRN4ZQM.js} +1 -1
  22. package/dist/standalone/{chunk-IGBEXNXY.js → chunk-EVN46TVV.js} +1 -1
  23. package/dist/standalone/{chunk-NPIULIRO.js → chunk-EXFBIISG.js} +1 -1
  24. package/dist/standalone/{chunk-OZGWNJXD.js → chunk-F5QWLENA.js} +1 -1
  25. package/dist/standalone/chunk-F6GOKFMU.js +3 -0
  26. package/dist/standalone/{chunk-PYXZLNG2.js → chunk-FGTK44LR.js} +1 -1
  27. package/dist/standalone/{chunk-XBGJVK32.js → chunk-GSPTEMYN.js} +1 -1
  28. package/dist/standalone/{chunk-XITDHIVL.js → chunk-HP2UCWND.js} +1 -1
  29. package/dist/standalone/{chunk-WQTUQZUM.js → chunk-IDNNI63H.js} +1 -1
  30. package/dist/standalone/{chunk-ZKEVSU66.js → chunk-KDOC2DP5.js} +1 -1
  31. package/dist/standalone/{chunk-P4J3Z3SA.js → chunk-L7N7F3DA.js} +1 -1
  32. package/dist/standalone/{chunk-IPHXIGYP.js → chunk-LJDP7NRB.js} +1 -1
  33. package/dist/standalone/{chunk-GBQHGYGH.js → chunk-OHKRN65U.js} +1 -1
  34. package/dist/standalone/{chunk-LA3HEESS.js → chunk-P24JBHEZ.js} +1 -1
  35. package/dist/standalone/chunk-PWWHP76O.js +1 -0
  36. package/dist/standalone/{chunk-IUW24D4X.js → chunk-QGKAJTQQ.js} +1 -1
  37. package/dist/standalone/{chunk-AX4PAEGP.js → chunk-QVEHPYA5.js} +1 -1
  38. package/dist/standalone/{chunk-7YAUSG6S.js → chunk-QWJ3NPE3.js} +1 -1
  39. package/dist/standalone/{chunk-H3V2QQ4K.js → chunk-RAA2RGG6.js} +1 -1
  40. package/dist/standalone/chunk-RBU52M5T.js +1 -0
  41. package/dist/standalone/{chunk-RWZKO2P6.js → chunk-SA3MDZC3.js} +1 -1
  42. package/dist/standalone/{chunk-66TS6K5F.js → chunk-T2JIUFOD.js} +1 -1
  43. package/dist/standalone/chunk-TJ2WZ5OP.js +1 -0
  44. package/dist/standalone/{chunk-37RIZFJ4.js → chunk-TLHJRWNK.js} +1 -1
  45. package/dist/standalone/{chunk-YQP2EYOC.js → chunk-UIS34ZPB.js} +1 -1
  46. package/dist/standalone/{chunk-P4DHFWH7.js → chunk-VPAXCQ2Y.js} +1 -1
  47. package/dist/standalone/{chunk-V4RWA7QI.js → chunk-XEDU5FO4.js} +1 -1
  48. package/dist/standalone/{chunk-M2B3MDFJ.js → chunk-XQBTNJUQ.js} +1 -1
  49. package/dist/standalone/{chunk-OWADN6BI.js → chunk-XSD4Y6SQ.js} +1 -1
  50. package/dist/standalone/{chunk-BY4QROKU.js → chunk-YD5NF6UT.js} +1 -1
  51. package/dist/standalone/{chunk-DCJKCERP.js → chunk-YI3WYUXK.js} +1 -1
  52. package/dist/standalone/{chunk-26TQSVUV.js → chunk-ZNNAGR6N.js} +1 -1
  53. package/dist/standalone/studio.js +1 -1
  54. package/package.json +4 -4
  55. package/dist/standalone/chunk-3NHORZCK.js +0 -1
  56. package/dist/standalone/chunk-B5E7GQHG.js +0 -1
  57. package/dist/standalone/chunk-F6LUZVVI.js +0 -1
  58. package/dist/standalone/chunk-GHUPW2Y5.js +0 -1
  59. package/dist/standalone/chunk-LWECXQWP.js +0 -11
  60. package/dist/standalone/chunk-TRHTFGFW.js +0 -3
@@ -0,0 +1 @@
1
+ import{a as wt}from"./chunk-KUVMORDQ.js";import{a as bt,b as vt,c as Nt,d as yt,e as Ve}from"./chunk-5L2MD6F6.js";import{a as pt}from"./chunk-QWGT25SE.js";import{a as ht,b as gt,c as ft,d as xt,e as je}from"./chunk-3RTTXLMU.js";import"./chunk-2PJNAWB3.js";import{a as mt}from"./chunk-X2FQ6B5V.js";import{e as ut}from"./chunk-SKHEGARW.js";import"./chunk-SD4BERSA.js";import"./chunk-IC4L6G56.js";import"./chunk-7YEFOSPH.js";import"./chunk-BGBLQ563.js";import"./chunk-IVFHIQOT.js";import"./chunk-PF7V3G2Z.js";import"./chunk-4UOFSGUS.js";import"./chunk-ILNELDFC.js";import{e as tt}from"./chunk-SMIESS7P.js";import{a as dt}from"./chunk-LFKCLLPT.js";import"./chunk-T6VMSOBB.js";import{b as Le}from"./chunk-XSD4Y6SQ.js";import{a as We,b as Be,c as Ge,d as Re,e as se,f as E}from"./chunk-MIQTKZAR.js";import{a as he,b as Oe,c as Ce,d as rt,e as fe}from"./chunk-UZERI5YC.js";import"./chunk-QBWRC5YX.js";import{a as ct}from"./chunk-LFXFP4IF.js";import{a as it,b as ot}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as Ue}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as Qe}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as De}from"./chunk-GXZAXNZI.js";import{f as et}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{d as Te,f as at,g as lt,h as st,i as nt,m as He,p as Ke}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as o,e as Je,f as $t,g as kt,h as _t}from"./chunk-3XIESWL4.js";var Fe=Je(kt(),1);var O=Je($t(),1);var t=Je(_t(),1);var It=o((s,e)=>s<e?-1:s>e?1:0,"Mt"),Ze=o(s=>{if(s===void 0)return"null";if(typeof s=="bigint")throw new TypeError("stableStringify: cannot use a bigint in a stable JSON cache key \u2014 pass it as a string, or use stableWireKey");if(s===null||typeof s!="object")return JSON.stringify(s);if(Array.isArray(s))return`[${s.map(p=>Ze(p)).join(",")}]`;let e=Object.getPrototypeOf(s);if(e!==null&&e!==Object.prototype){let p=s.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${p} in a stable JSON cache key \u2014 only plain objects, arrays, and JSON primitives are supported (wire-typed values key via stableWireKey)`)}let l=s,r=Object.keys(l).toSorted(It),a=[];for(let p of r){let b=l[p];b!==void 0&&a.push(`${JSON.stringify(p)}:${Ze(b)}`)}return`{${a.join(",")}}`},"We"),St=o((s,e,l)=>`${s}:${e}:${Ze(l??{})}`,"rt"),qt=o((s,e)=>s==="gauge"?e.last:s==="histogram"?e.sum/Math.max(1,e.count):e.sum,"at"),Mt=o((s,e)=>qt(s,e),"It"),Ft=o(s=>qt(s.kind,s),"Ft"),Xe=o(s=>Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:2}),"Je"),Tt=o(s=>Array.isArray(s?.series)?s.series:[],"Ct"),Ot="FUNCTION_NOT_FOUND",Ct=o(s=>{let e=new Map;if(!Array.isArray(s?.series))return e;for(let l of s.series)e.set(St(l.kind,l.name,l.attributes),l.points);return e},"Tt"),Dt={counter:"secondary",gauge:"default",histogram:"outline"},Rt=o(s=>{let e=(0,Fe.c)(18),{name:l,onOpenTrace:r,traceId:a}=s,p=Te();if(a===void 0){let m;return e[0]===Symbol.for("react.memo_cache_sentinel")?(m=(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),e[0]=m):m=e[0],m}let b;e[1]!==a?(b=a.slice(0,8),e[1]=a,e[2]=b):b=e[2];let f=b;if(r===void 0){let m=`mt-instrument-trace-${l}`,N;return e[3]!==f||e[4]!==m||e[5]!==a?(N=(0,t.jsx)("span",{className:"text-muted-foreground","data-testid":m,title:a,children:f}),e[3]=f,e[4]=m,e[5]=a,e[6]=N):N=e[6],N}let h=`mt-instrument-trace-${l}`,g;e[7]!==r||e[8]!==a?(g=o(()=>{r(a)},"g"),e[7]=r,e[8]=a,e[9]=g):g=e[9];let v;e[10]!==p||e[11]!==a?(v=p("Open the exemplar trace {trace}",{trace:a}),e[10]=p,e[11]=a,e[12]=v):v=e[12];let u;return e[13]!==f||e[14]!==h||e[15]!==g||e[16]!==v?(u=(0,t.jsx)("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":h,onClick:g,title:v,type:"button",children:f}),e[13]=f,e[14]=h,e[15]=g,e[16]=v,e[17]=u):u=e[17],u},"Dt"),jt=o(s=>{let e=(0,Fe.c)(105),{onOpenTrace:l,shardKey:r}=s,a=Te(),p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p={},e[0]=p):p=e[0];let b;e[1]!==r?(b={live:!0,shardKey:r},e[1]=r,e[2]=b):b=e[2];let{data:f,error:h,errorSource:g}=Le(De.getMetricSeries,p,b),v;e[3]===Symbol.for("react.memo_cache_sentinel")?(v={},e[3]=v):v=e[3];let u;e[4]!==r?(u={live:!0,shardKey:r},e[4]=r,e[5]=u):u=e[5];let{data:m}=Le(De.getMetricHistory,v,u),N,ne,C,P,J,c,q,ie,D,R,M,x,j;if(e[6]!==f||e[7]!==h||e[8]!==g||e[9]!==m||e[10]!==l||e[11]!==a){ie=Symbol.for("react.early_return_sentinel");e:{let ce=Tt(f),me=nt(g)===Ot;if(h!==null&&!me){let i;e[25]!==a?(i=a("Instruments"),e[25]=a,e[26]=i):i=e[26];let F;e[27]!==i?(F=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:i}),e[27]=i,e[28]=F):F=e[28];let A;e[29]!==h||e[30]!==a?(A=a("Instruments unavailable: {error}",{error:h}),e[29]=h,e[30]=a,e[31]=A):A=e[31];let K;e[32]!==A?(K=(0,t.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"mt-instruments-error",role:"status",children:A}),e[32]=A,e[33]=K):K=e[33];let le;e[34]!==F||e[35]!==K?(le=(0,t.jsxs)("section",{className:"flex flex-col gap-2","data-testid":"mt-instruments",children:[F,K]}),e[34]=F,e[35]=K,e[36]=le):le=e[36],ie=le;break e}if(ce.length===0){ie=null;break e}let ue=Ct(m),Q;e[37]!==a?(Q=o(i=>a(i==="counter"?"Counter":i==="gauge"?"Gauge":"Histogram"),"P"),e[37]=a,e[38]=Q):Q=e[38];let n=Q;J="flex flex-col gap-2",c="mt-instruments";let k;e[39]!==a?(k=a("Instruments"),e[39]=a,e[40]=k):k=e[40],e[41]!==k?(q=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:k}),e[41]=k,e[42]=q):q=e[42],P=he,j="overflow-hidden py-0",C=fe,x="px-0",ne=We,R="mt-instruments-table";let y;e[43]!==a?(y=a("name"),e[43]=a,e[44]=y):y=e[44];let S;e[45]!==y?(S=(0,t.jsx)(se,{children:y}),e[45]=y,e[46]=S):S=e[46];let U;e[47]!==a?(U=a("kind"),e[47]=a,e[48]=U):U=e[48];let H;e[49]!==U?(H=(0,t.jsx)(se,{children:U}),e[49]=U,e[50]=H):H=e[50];let W;e[51]!==a?(W=a("value"),e[51]=a,e[52]=W):W=e[52];let B;e[53]!==W?(B=(0,t.jsx)(se,{className:"text-right",children:W}),e[53]=W,e[54]=B):B=e[54];let G;e[55]!==a?(G=a("count"),e[55]=a,e[56]=G):G=e[56];let V;e[57]!==G?(V=(0,t.jsx)(se,{className:"text-right",children:G}),e[57]=G,e[58]=V):V=e[58];let X;e[59]!==a?(X=a("range"),e[59]=a,e[60]=X):X=e[60];let Y;e[61]!==X?(Y=(0,t.jsx)(se,{className:"text-right",children:X}),e[61]=X,e[62]=Y):Y=e[62];let Z;e[63]!==a?(Z=a("trend"),e[63]=a,e[64]=Z):Z=e[64];let ee;e[65]!==Z?(ee=(0,t.jsx)(se,{children:Z}),e[65]=Z,e[66]=ee):ee=e[66];let te;e[67]!==a?(te=a("trace"),e[67]=a,e[68]=te):te=e[68];let re;e[69]!==te?(re=(0,t.jsx)(se,{children:te}),e[69]=te,e[70]=re):re=e[70];let de;e[71]!==a?(de=a("dimensions"),e[71]=a,e[72]=de):de=e[72];let ae;e[73]!==de?(ae=(0,t.jsx)(se,{children:de}),e[73]=de,e[74]=ae):ae=e[74],e[75]!==S||e[76]!==H||e[77]!==B||e[78]!==V||e[79]!==Y||e[80]!==ee||e[81]!==re||e[82]!==ae?(M=(0,t.jsx)(Be,{children:(0,t.jsxs)(Re,{children:[S,H,B,V,Y,ee,re,ae]})}),e[75]=S,e[76]=H,e[77]=B,e[78]=V,e[79]=Y,e[80]=ee,e[81]=re,e[82]=ae,e[83]=M):M=e[83],N=Ge,D=ce.map(i=>{let F=pt(i.attributes),A=St(i.kind,i.name,i.attributes),K=(ue.get(A)??[]).map(le=>Mt(i.kind,le));return(0,t.jsxs)(Re,{"data-testid":`mt-instrument-${i.name}`,children:[(0,t.jsx)(E,{className:"font-mono text-xs",title:i.functionPath,children:i.name}),(0,t.jsx)(E,{children:(0,t.jsx)(Qe,{variant:Dt[i.kind],children:n(i.kind)})}),(0,t.jsx)(E,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${i.name}`,children:Xe(Ft(i))}),(0,t.jsx)(E,{className:"text-right tabular-nums text-muted-foreground",children:i.count.toLocaleString()}),(0,t.jsx)(E,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:i.min===i.max?"\u2014":`${Xe(i.min)}\u2013${Xe(i.max)}`}),(0,t.jsx)(E,{children:K.length>=2?(0,t.jsx)(Ve,{ariaLabel:a("{name} trend",{name:i.name}),className:"h-6 w-24 text-foreground",series:K,testId:`mt-instrument-trend-${i.name}`}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"\u2014"})}),(0,t.jsx)(E,{className:"font-mono text-xs",children:(0,t.jsx)(Rt,{name:i.name,onOpenTrace:l,traceId:i.exemplarTraceId})}),(0,t.jsx)(E,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:F,children:F===""?"\u2014":F})]},A)})}e[6]=f,e[7]=h,e[8]=g,e[9]=m,e[10]=l,e[11]=a,e[12]=N,e[13]=ne,e[14]=C,e[15]=P,e[16]=J,e[17]=c,e[18]=q,e[19]=ie,e[20]=D,e[21]=R,e[22]=M,e[23]=x,e[24]=j}else N=e[12],ne=e[13],C=e[14],P=e[15],J=e[16],c=e[17],q=e[18],ie=e[19],D=e[20],R=e[21],M=e[22],x=e[23],j=e[24];if(ie!==Symbol.for("react.early_return_sentinel"))return ie;let L;e[84]!==N||e[85]!==D?(L=(0,t.jsx)(N,{children:D}),e[84]=N,e[85]=D,e[86]=L):L=e[86];let I;e[87]!==ne||e[88]!==L||e[89]!==R||e[90]!==M?(I=(0,t.jsxs)(ne,{"data-testid":R,children:[M,L]}),e[87]=ne,e[88]=L,e[89]=R,e[90]=M,e[91]=I):I=e[91];let z;e[92]!==C||e[93]!==I||e[94]!==x?(z=(0,t.jsx)(C,{className:x,children:I}),e[92]=C,e[93]=I,e[94]=x,e[95]=z):z=e[95];let w;e[96]!==P||e[97]!==z||e[98]!==j?(w=(0,t.jsx)(P,{className:j,children:z}),e[96]=P,e[97]=z,e[98]=j,e[99]=w):w=e[99];let $;return e[100]!==J||e[101]!==c||e[102]!==q||e[103]!==w?($=(0,t.jsxs)("section",{className:J,"data-testid":c,children:[q,w]}),e[100]=J,e[101]=c,e[102]=q,e[103]=w,e[104]=$):$=e[104],$},"Lt"),Pe=o(s=>s>=100?"critical":s>=50?"warning":"good","je"),Ye=o(s=>s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"Qe"),Ee=o(s=>s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString(),"Le"),zt=o(s=>{let e=(0,Fe.c)(3),{level:l}=s;if(l==="critical"){let a;return e[0]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)(Qe,{variant:"destructive",children:"Slow"}),e[0]=a):a=e[0],a}if(l==="warning"){let a;return e[1]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",children:"Moderate"}),e[1]=a):a=e[1],a}let r;return e[2]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-success/10 px-2 py-0.5 text-xs font-medium text-success",children:"Fast"}),e[2]=r):r=e[2],r},"At"),At=o(s=>{let e=(0,Fe.c)(152),{queryStats:l}=s,r=Te(),[a,p]=(0,O.useState)("totalTime"),b;e[0]===Symbol.for("react.memo_cache_sentinel")?(b=new Set,e[0]=b):b=e[0];let[f,h]=(0,O.useState)(b),g;e[1]===Symbol.for("react.memo_cache_sentinel")?(g=o(d=>{d!==null&&p(d)},"g"),e[1]=g):g=e[1];let v=g,u;if(e[2]!==l||e[3]!==a){u=[...l];let d;e[5]!==a?(d=o((T,_)=>{switch(a){case"avgTime":return _.avgDurationMs-T.avgDurationMs;case"execCount":return _.execCount-T.execCount;case"rowsRead":return _.rowsRead-T.rowsRead;default:return _.totalDurationMs-T.totalDurationMs}},"d"),e[5]=a,e[6]=d):d=e[6],u.sort(d),e[2]=l,e[3]=a,e[4]=u}else u=e[4];let m=u,N;e[7]!==l?(N=l.filter(Kt),e[7]=l,e[8]=N):N=e[8];let ne=N.length,C;e[9]!==l?(C=l.filter(Lt),e[9]=l,e[10]=C):C=e[10];let P=C.length,J;e[11]!==l?(J=l.filter(Et),e[11]=l,e[12]=J):J=e[12];let c=J.length,q;e[13]===Symbol.for("react.memo_cache_sentinel")?(q=o(d=>{h(T=>{let _=new Set(T);return _.has(d)?_.delete(d):_.add(d),_})},"S"),e[13]=q):q=e[13];let ie=q;if(l.length===0){let d;e[14]!==r?(d=r("No query insights yet"),e[14]=r,e[15]=d):d=e[15];let T;e[16]!==d?(T=(0,t.jsx)("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:d}),e[16]=d,e[17]=T):T=e[17];let _;e[18]!==r?(_=r("Query insights appear once statements are executed against this shard."),e[18]=r,e[19]=_):_=e[19];let ge;e[20]!==_?(ge=(0,t.jsx)("p",{className:"mt-1 text-sm",children:_}),e[20]=_,e[21]=ge):ge=e[21];let Ae;return e[22]!==ge||e[23]!==T?(Ae=(0,t.jsx)(he,{children:(0,t.jsx)(fe,{className:"py-12",children:(0,t.jsxs)("div",{className:"text-center text-muted-foreground",children:[T,ge]})})}),e[22]=ge,e[23]=T,e[24]=Ae):Ae=e[24],Ae}let D;e[25]!==r?(D=r("Critical queries"),e[25]=r,e[26]=D):D=e[26];let R;e[27]!==D?(R=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Ce,{className:"text-sm font-medium",children:D})}),e[27]=D,e[28]=R):R=e[28];let M;e[29]!==ne?(M=(0,t.jsx)("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:ne}),e[29]=ne,e[30]=M):M=e[30];let x;e[31]!==r?(x=r(">100ms avg execution"),e[31]=r,e[32]=x):x=e[32];let j;e[33]!==x?(j=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:x}),e[33]=x,e[34]=j):j=e[34];let L;e[35]!==j||e[36]!==M?(L=(0,t.jsxs)(fe,{children:[M,j]}),e[35]=j,e[36]=M,e[37]=L):L=e[37];let I;e[38]!==L||e[39]!==R?(I=(0,t.jsxs)(he,{children:[R,L]}),e[38]=L,e[39]=R,e[40]=I):I=e[40];let z;e[41]!==r?(z=r("Moderate queries"),e[41]=r,e[42]=z):z=e[42];let w;e[43]!==z?(w=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Ce,{className:"text-sm font-medium",children:z})}),e[43]=z,e[44]=w):w=e[44];let $;e[45]!==P?($=(0,t.jsx)("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:P}),e[45]=P,e[46]=$):$=e[46];let ce;e[47]!==r?(ce=r("50\u2013100ms avg execution"),e[47]=r,e[48]=ce):ce=e[48];let me;e[49]!==ce?(me=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:ce}),e[49]=ce,e[50]=me):me=e[50];let ue;e[51]!==$||e[52]!==me?(ue=(0,t.jsxs)(fe,{children:[$,me]}),e[51]=$,e[52]=me,e[53]=ue):ue=e[53];let Q;e[54]!==w||e[55]!==ue?(Q=(0,t.jsxs)(he,{children:[w,ue]}),e[54]=w,e[55]=ue,e[56]=Q):Q=e[56];let n;e[57]!==r?(n=r("Fast queries"),e[57]=r,e[58]=n):n=e[58];let k;e[59]!==n?(k=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Ce,{className:"text-sm font-medium",children:n})}),e[59]=n,e[60]=k):k=e[60];let y;e[61]!==c?(y=(0,t.jsx)("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:c}),e[61]=c,e[62]=y):y=e[62];let S;e[63]!==r?(S=r("<50ms avg execution"),e[63]=r,e[64]=S):S=e[64];let U;e[65]!==S?(U=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:S}),e[65]=S,e[66]=U):U=e[66];let H;e[67]!==y||e[68]!==U?(H=(0,t.jsxs)(fe,{children:[y,U]}),e[67]=y,e[68]=U,e[69]=H):H=e[69];let W;e[70]!==k||e[71]!==H?(W=(0,t.jsxs)(he,{children:[k,H]}),e[70]=k,e[71]=H,e[72]=W):W=e[72];let B;e[73]!==I||e[74]!==Q||e[75]!==W?(B=(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[I,Q,W]}),e[73]=I,e[74]=Q,e[75]=W,e[76]=B):B=e[76];let G;e[77]!==r?(G=r("Query leaderboard"),e[77]=r,e[78]=G):G=e[78];let V;e[79]!==G?(V=(0,t.jsx)("h3",{className:"text-lg font-semibold",children:G}),e[79]=G,e[80]=V):V=e[80];let X;e[81]!==a||e[82]!==r?(X=r("Slow queries sorted by {sortField}",{sortField:r(a)}),e[81]=a,e[82]=r,e[83]=X):X=e[83];let Y;e[84]!==X?(Y=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:X}),e[84]=X,e[85]=Y):Y=e[85];let Z;e[86]!==V||e[87]!==Y?(Z=(0,t.jsxs)("div",{children:[V,Y]}),e[86]=V,e[87]=Y,e[88]=Z):Z=e[88];let ee;e[89]!==r?(ee=r("Sort by"),e[89]=r,e[90]=ee):ee=e[90];let te;e[91]!==ee?(te=(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:ee}),e[91]=ee,e[92]=te):te=e[92];let re;e[93]!==r?(re=r("Sort queries by"),e[93]=r,e[94]=re):re=e[94];let de;e[95]===Symbol.for("react.memo_cache_sentinel")?(de=(0,t.jsx)(gt,{}),e[95]=de):de=e[95];let ae;e[96]!==re?(ae=(0,t.jsx)(ft,{"aria-label":re,className:"w-[140px]","data-testid":"qi-sort",children:de}),e[96]=re,e[97]=ae):ae=e[97];let i;e[98]!==r?(i=r("Total time"),e[98]=r,e[99]=i):i=e[99];let F;e[100]!==i?(F=(0,t.jsx)(je,{value:"totalTime",children:i}),e[100]=i,e[101]=F):F=e[101];let A;e[102]!==r?(A=r("Avg time"),e[102]=r,e[103]=A):A=e[103];let K;e[104]!==A?(K=(0,t.jsx)(je,{value:"avgTime",children:A}),e[104]=A,e[105]=K):K=e[105];let le;e[106]!==r?(le=r("Execution count"),e[106]=r,e[107]=le):le=e[107];let xe;e[108]!==le?(xe=(0,t.jsx)(je,{value:"execCount",children:le}),e[108]=le,e[109]=xe):xe=e[109];let pe;e[110]!==r?(pe=r("Rows read"),e[110]=r,e[111]=pe):pe=e[111];let be;e[112]!==pe?(be=(0,t.jsx)(je,{value:"rowsRead",children:pe}),e[112]=pe,e[113]=be):be=e[113];let ve;e[114]!==F||e[115]!==K||e[116]!==xe||e[117]!==be?(ve=(0,t.jsxs)(xt,{children:[F,K,xe,be]}),e[114]=F,e[115]=K,e[116]=xe,e[117]=be,e[118]=ve):ve=e[118];let Ne;e[119]!==a||e[120]!==ae||e[121]!==ve?(Ne=(0,t.jsxs)(ht,{onValueChange:v,value:a,children:[ae,ve]}),e[119]=a,e[120]=ae,e[121]=ve,e[122]=Ne):Ne=e[122];let ye;e[123]!==te||e[124]!==Ne?(ye=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[te,Ne]}),e[123]=te,e[124]=Ne,e[125]=ye):ye=e[125];let we;e[126]!==Z||e[127]!==ye?(we=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[Z,ye]}),e[126]=Z,e[127]=ye,e[128]=we):we=e[128];let Se;e[129]!==r?(Se=r("Statements"),e[129]=r,e[130]=Se):Se=e[130];let qe;e[131]!==Se?(qe=(0,t.jsx)(Ce,{children:Se}),e[131]=Se,e[132]=qe):qe=e[132];let $e;e[133]!==m.length||e[134]!==r?($e=r("{count} tracked statements",{count:m.length}),e[133]=m.length,e[134]=r,e[135]=$e):$e=e[135];let ke;e[136]!==$e?(ke=(0,t.jsx)(rt,{children:$e}),e[136]=$e,e[137]=ke):ke=e[137];let _e;e[138]!==qe||e[139]!==ke?(_e=(0,t.jsxs)(Oe,{children:[qe,ke]}),e[138]=qe,e[139]=ke,e[140]=_e):_e=e[140];let Ie;e[141]!==f||e[142]!==m||e[143]!==r?(Ie=(0,t.jsx)(fe,{children:(0,t.jsx)("div",{className:"space-y-2",children:m.map(d=>{let T=d.normalizedSql,_=f.has(T),ge=Pe(d.avgDurationMs);return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[(0,t.jsxs)("button",{"aria-expanded":_,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:o(()=>{ie(T)},"onClick"),type:"button",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)(zt,{level:ge}),(0,t.jsx)("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:d.normalizedSql})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ye(d.totalDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("total")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ye(d.avgDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("avg")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ee(d.execCount)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("calls")})]})]})]}),_&&(0,t.jsxs)("div",{className:"space-y-3 border-t bg-muted/30 p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-sm font-medium",children:r("Full statement")}),(0,t.jsx)("pre",{className:"overflow-x-auto rounded-md bg-muted p-3 font-mono text-sm whitespace-pre-wrap break-all",children:d.normalizedSql})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Exec count")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.execCount)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Total time")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ye(d.totalDurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Rows read")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.rowsRead)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Rows written")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.rowsWritten)})]})]})]})]},T)})})}),e[141]=f,e[142]=m,e[143]=r,e[144]=Ie):Ie=e[144];let Me;e[145]!==_e||e[146]!==Ie?(Me=(0,t.jsxs)(he,{children:[_e,Ie]}),e[145]=_e,e[146]=Ie,e[147]=Me):Me=e[147];let ze;return e[148]!==B||e[149]!==we||e[150]!==Me?(ze=(0,t.jsxs)("div",{className:"space-y-4","data-testid":"qi-root",children:[B,we,Me]}),e[148]=B,e[149]=we,e[150]=Me,e[151]=ze):ze=e[151],ze},"zt");function Kt(s){return Pe(s.avgDurationMs)==="critical"}o(Kt,"Et");function Lt(s){return Pe(s.avgDurationMs)==="warning"}o(Lt,"jt");function Et(s){return Pe(s.avgDurationMs)==="good"}o(Et,"Kt");var Pt=at(De.getMetrics),Jt=o(s=>{let e=Math.floor(s/1e3),l=Math.floor(e/3600),r=Math.floor(e%3600/60),a=e%60;return l>0?`${l.toString()}h ${r.toString()}m`:r>0?`${r.toString()}m ${a.toString()}s`:`${a.toString()}s`},"Ut"),Qt=o((s,e)=>s?e:"overview","Jt"),Ut=o((s,e)=>{let l=s+e;return l===0?"\u2014":`${(s/l*100).toFixed(1)}%`},"Qt"),oe=o(s=>{let e=(0,Fe.c)(16),{chart:l,footer:r,label:a,testId:p,value:b}=s,f;e[0]!==a?(f=(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a}),e[0]=a,e[1]=f):f=e[1];let h;e[2]!==p||e[3]!==b?(h=(0,t.jsx)("span",{className:"truncate text-2xl font-semibold tabular-nums text-foreground","data-testid":p,children:b}),e[2]=p,e[3]=b,e[4]=h):h=e[4];let g;e[5]!==l||e[6]!==h?(g=(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[h,l]}),e[5]=l,e[6]=h,e[7]=g):g=e[7];let v;e[8]!==f||e[9]!==g?(v=(0,t.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[f,g]}),e[8]=f,e[9]=g,e[10]=v):v=e[10];let u;e[11]!==r?(u=r!=null&&(0,t.jsx)("div",{className:"border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",children:r}),e[11]=r,e[12]=u):u=e[12];let m;return e[13]!==v||e[14]!==u?(m=(0,t.jsxs)(he,{className:"justify-between gap-0 py-0",children:[v,u]}),e[13]=v,e[14]=u,e[15]=m):m=e[15],m},"ne"),ur=o(({initialShardKey:s})=>{let e=et(),l=Te(),r=tt(),[a,p]=(0,O.useState)(s??""),[b,f]=(0,O.useState)("overview"),[h,g]=(0,O.useState)([]),v=(0,O.useRef)(null),u=(0,O.useRef)(null),m=(0,O.useRef)(!0);(0,O.useEffect)(()=>(m.current=!0,()=>{m.current=!1}),[]);let N=dt(a.trim(),400),ne=o(n=>{wt({shardKey:N,traceId:n}),He(r({to:"/traces"}))},"le"),{data:C,error:P,liveError:J}=Le(De.getMetrics,{},{live:!0,shardKey:N}),c=C??null;(0,O.useEffect)(()=>{if(C===void 0)return;ot(N);let n=C,k=v.current,y=u.current!==null&&u.current!==n.shard;if(u.current=n.shard,v.current=n.requests,y){g([]);return}k!==null&&n.requests>=k&&g(S=>[...S,n.requests-k].slice(-30))},[C,N]);let[q,ie]=(0,O.useState)(null),[D,R]=(0,O.useState)(!1),M=o(async()=>{R(!0);let n=vt(a,it());try{let k=await Promise.all(n.map(async y=>{try{let S=await e.query(Pt,{},lt(y));return{error:null,metrics:S,shard:y===""?S.shard:y}}catch(S){return{error:st(S),metrics:null,shard:y===""?"__root__":y}}}));m.current&&ie(k)}finally{m.current&&R(!1)}},"I"),x=q===null?null:bt(q),j=c===null||c.requests===0?"\u2014":`${(c.errors/c.requests*100).toFixed(1)}%`,L=h.length>0?h.at(-1):0,I=c?Nt(c):{p90:0,p95:0},z=o(n=>n<=0?"\u2014":n<1?`${(n*1e3).toFixed(0)}\u03BCs`:n<1e3?`${n.toFixed(1)}ms`:`${(n/1e3).toFixed(2)}s`,"L"),w=(0,O.useMemo)(()=>{if(!c||!("queryStats"in c))return;let n=c.queryStats;if(!(!n||!Array.isArray(n)))return yt(n)},[c]),$=Qt(w!==void 0,b),ce=o(()=>{He(M())},"oe"),me=o(()=>{ie(null)},"de"),ue=o(()=>{f("overview")},"me"),Q=o(()=>{f("query-insights")},"P");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-metrics",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(ct,{onChange:p,testId:"mt-shard-input",value:a}),(0,t.jsx)(mt,{message:J,prefix:"mt"}),(0,t.jsx)(Ue,{"data-testid":"mt-aggregate",disabled:D,onClick:ce,size:"sm",type:"button",variant:"secondary",children:l(D?"Aggregating\u2026":"All shards")}),q!==null&&(0,t.jsx)(Ue,{"data-testid":"mt-aggregate-clear",onClick:me,size:"sm",type:"button",variant:"ghost",children:l("Hide")}),(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"mt-cf-link",href:ut,rel:"noreferrer",target:"_blank",children:l("Open in Cloudflare")})]}),P!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:P}),w!==void 0&&(0,t.jsxs)("div",{className:"flex gap-2 border-b","data-testid":"mt-tabs",children:[(0,t.jsx)("button",{className:`pb-2 text-sm font-medium transition-colors ${$==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:ue,type:"button",children:l("Overview")}),(0,t.jsxs)("button",{className:`pb-2 text-sm font-medium transition-colors ${$==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:Q,type:"button",children:[l("Query insights"),w.length>0&&(0,t.jsx)("span",{className:"ml-1.5 rounded-full bg-primary/10 px-1.5 py-0.5 text-xs text-primary",children:w.length})]})]}),$==="query-insights"&&w!==void 0&&(0,t.jsx)(At,{queryStats:w}),$==="overview"&&c!==null&&(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","data-testid":"mt-stats",children:[(0,t.jsx)(oe,{chart:h.length>=2?(0,t.jsx)(Ve,{ariaLabel:l("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:h,testId:"mt-sparkline"}):void 0,footer:h.length>=2?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:`+${L.toLocaleString()}`})," ",l("last interval")]}):(0,t.jsx)("span",{"data-testid":"mt-sparkline-empty",children:l("collecting samples\u2026")}),label:l("Requests"),testId:"mt-requests",value:c.requests}),(0,t.jsx)(oe,{footer:l("{rate} error rate",{rate:j}),label:l("Errors"),testId:"mt-errors",value:(0,t.jsxs)(t.Fragment,{children:[c.errors," (",j,")"]})}),(0,t.jsx)(oe,{footer:I.p90>0?`P90 ${z(I.p90)}`:void 0,label:l("P95 latency"),testId:"mt-p95",value:I.p95>0?z(I.p95):"\u2014"}),(0,t.jsx)(oe,{footer:c.cache===null?void 0:`${c.cache.entries.toLocaleString()} ${l("cache entries")}`,label:l("Database size"),testId:"mt-db-size",value:Ke(c.databaseSize)}),(0,t.jsx)(oe,{label:l("Shard"),testId:"mt-shard",value:c.shard}),(0,t.jsx)(oe,{label:l("Uptime"),testId:"mt-uptime",value:Jt(c.uptimeMs)}),(0,t.jsx)(oe,{label:l("Cache hit rate"),testId:"mt-cache",value:c.cache===null?l("no cache configured"):l("{rate} ({count} entries)",{count:c.cache.entries,rate:Ut(c.cache.hits,c.cache.misses)})})]}),$==="overview"&&c===null&&null,$==="overview"&&(0,t.jsx)(jt,{onOpenTrace:ne,shardKey:N}),$==="overview"&&x!==null&&q!==null&&(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[(0,t.jsx)(oe,{label:l("Shards"),testId:"mt-agg-shards",value:x.failed>0?l("{reachable} reachable, {failed} unreachable",{failed:x.failed,reachable:x.reachable}):l("{reachable} reachable",{reachable:x.reachable})}),(0,t.jsx)(oe,{label:l("Total requests"),testId:"mt-agg-requests",value:x.totalRequests}),(0,t.jsx)(oe,{label:l("Total errors"),testId:"mt-agg-errors",value:x.totalErrors}),(0,t.jsx)(oe,{label:l("Total database size"),testId:"mt-agg-db-size",value:Ke(x.totalDatabaseSize)}),(0,t.jsx)(oe,{label:l("Combined cache hit rate"),testId:"mt-agg-cache",value:x.hitRate===null?l("no cache configured"):`${(x.hitRate*100).toFixed(1)}%`})]}),(0,t.jsx)(he,{className:"overflow-hidden py-0",children:(0,t.jsx)(fe,{className:"px-0",children:(0,t.jsxs)(We,{"data-testid":"mt-agg-table",children:[(0,t.jsx)(Be,{children:(0,t.jsxs)(Re,{children:[(0,t.jsx)(se,{children:l("shard")}),(0,t.jsx)(se,{children:l("requests")}),(0,t.jsx)(se,{children:l("errors")}),(0,t.jsx)(se,{children:l("db size")})]})}),(0,t.jsx)(Ge,{children:q.map(n=>(0,t.jsxs)(Re,{"data-testid":`mt-agg-row-${n.shard}`,children:[(0,t.jsx)(E,{children:n.shard}),n.metrics===null?(0,t.jsx)(E,{className:"text-destructive",colSpan:3,children:n.error??l("unreachable")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(E,{className:"tabular-nums",children:n.metrics.requests}),(0,t.jsx)(E,{className:"tabular-nums",children:n.metrics.errors}),(0,t.jsx)(E,{className:"tabular-nums",children:Ke(n.metrics.databaseSize)})]})]},n.shard))})]})})})]})]})},"fr");export{ur as MetricsPanel};
@@ -1 +1 @@
1
- import{a as S}from"./chunk-OWADN6BI.js";import{a as y,e as A}from"./chunk-UZERI5YC.js";import{b as h}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{f as k}from"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{d as I}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as u,e as w,g as $,h as j}from"./chunk-3XIESWL4.js";var N=w($(),1);var a=w(j(),1);var z=[{key:"accounts",label:"Accounts"},{key:"admin",label:"Admin"},{key:"organization",label:"Organizations"},{key:"passkey",label:"Passkeys"},{key:"twoFactor",label:"Two-factor"}],v=u(e=>{if(e===void 0)return"\u2014";let i=[[86400,"d"],[3600,"h"],[60,"m"]];for(let[t,d]of i)if(e>=t&&e%t===0)return`${String(e/t)}${d}`;return`${String(e)}s`},"v"),g=u(e=>{let i=(0,N.c)(8),{children:t,heading:d,testId:r}=e,l;i[0]!==d?(l=(0,a.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,a.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:d})}),i[0]=d,i[1]=l):l=i[1];let n;i[2]!==t?(n=(0,a.jsx)(A,{className:"p-3",children:t}),i[2]=t,i[3]=n):n=i[3];let c;return i[4]!==l||i[5]!==n||i[6]!==r?(c=(0,a.jsxs)(y,{className:"gap-0 py-0","data-testid":r,children:[l,n]}),i[4]=l,i[5]=n,i[6]=r,i[7]=c):c=i[7],c},"h"),o=u(e=>{let i=(0,N.c)(7),{label:t,value:d}=e,r;i[0]!==t?(r=(0,a.jsx)("span",{className:"text-sm",children:t}),i[0]=t,i[1]=r):r=i[1];let l;i[2]!==d?(l=(0,a.jsx)("span",{className:"text-sm text-muted-foreground tabular-nums",children:d}),i[2]=d,i[3]=l):l=i[3];let n;return i[4]!==r||i[5]!==l?(n=(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-xl border border-border bg-card p-2 shadow-xs",children:[r,l]}),i[4]=r,i[5]=l,i[6]=n):n=i[6],n},"c"),O=u(()=>{let e=(0,N.c)(20),i=k(),t=I(),d;e[0]===Symbol.for("react.memo_cache_sentinel")?(d=["lunora-auth-config"],e[0]=d):d=e[0];let r;e[1]!==i?(r=u(()=>i.getAuthConfig(),"s"),e[1]=i,e[2]=r):r=e[2];let{data:l,error:n}=S(d,r),c;e[3]!==t?(c=u(s=>(0,a.jsx)(h,{variant:s?"success":"outline",children:t(s?"Enabled":"Disabled")}),"u"),e[3]=t,e[4]=c):c=e[4];let m=c,p;e[5]!==n?(p=n!==null&&(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-destructive","data-testid":"auth-config-error",role:"alert",children:n}),e[5]=n,e[6]=p):p=e[6];let f;e[7]!==l||e[8]!==n||e[9]!==t?(f=n===null&&l===void 0&&(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"auth-config-loading",children:t("Loading auth configuration\u2026")}),e[7]=l,e[8]=n,e[9]=t,e[10]=f):f=e[10];let x;e[11]!==l||e[12]!==n||e[13]!==m||e[14]!==t?(x=n===null&&l!==void 0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g,{heading:t("Enabled capabilities"),testId:"auth-config-capabilities",children:(0,a.jsx)("ul",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:z.map(s=>{let P=l.capabilities[s.key];return(0,a.jsxs)("li",{className:"flex items-center justify-between gap-2 rounded-xl border border-border bg-card p-2 shadow-xs","data-testid":`auth-config-cap-${s.key}`,children:[(0,a.jsx)("span",{className:"text-sm",children:t(s.label)}),m(P)]},s.key)})})}),(0,a.jsx)(g,{heading:t("Plugins"),testId:"auth-config-plugins",children:l.plugins.length===0?(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:t("No plugins enabled.")}):(0,a.jsx)("div",{className:"flex flex-wrap gap-2",children:l.plugins.map(L)})}),(0,a.jsx)(g,{heading:t("Sign-in methods"),testId:"auth-config-signin",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(o,{label:t("Email & password"),value:m(l.emailAndPassword)}),(0,a.jsx)(o,{label:t("Social providers"),value:l.socialProviders.length===0?t("None"):(0,a.jsx)("span",{className:"flex flex-wrap justify-end gap-1",children:l.socialProviders.map(q)})})]})}),l.organization.enabled&&(0,a.jsx)(g,{heading:t("Organizations"),testId:"auth-config-org",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(o,{label:t("Teams"),value:m(l.organization.teams)}),(0,a.jsx)(o,{label:t("Custom roles"),value:m(l.organization.roles)})]})}),(0,a.jsx)(g,{heading:t("Session policy"),testId:"auth-config-session",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(o,{label:t("Expires in"),value:v(l.session.expiresIn)}),(0,a.jsx)(o,{label:t("Refresh after"),value:v(l.session.updateAge)}),(0,a.jsx)(o,{label:t("Fresh window"),value:v(l.session.freshAge)}),(0,a.jsx)(o,{label:t("Cookie cache"),value:m(l.session.cookieCache===!0)})]})}),(0,a.jsx)(g,{heading:t("Rate limit"),testId:"auth-config-ratelimit",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(o,{label:t("Status"),value:m(l.rateLimit.enabled)}),l.rateLimit.enabled&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o,{label:t("Max requests"),value:l.rateLimit.max??"\u2014"}),(0,a.jsx)(o,{label:t("Window"),value:v(l.rateLimit.window)})]})]})}),l.userFields.length>0&&(0,a.jsx)(g,{heading:t("Plugin user fields"),testId:"auth-config-user-fields",children:(0,a.jsx)("ul",{className:"flex flex-col gap-2",children:l.userFields.map(s=>(0,a.jsxs)("li",{className:"flex items-center justify-between gap-2 rounded-xl border border-border bg-card p-2 shadow-xs","data-testid":`auth-config-user-field-${s.name}`,children:[(0,a.jsxs)("span",{className:"flex flex-col",children:[(0,a.jsx)("span",{className:"font-mono text-xs",children:s.name}),s.plugin!==void 0&&(0,a.jsx)("span",{className:"text-[11px] text-muted-foreground",children:s.plugin})]}),(0,a.jsxs)("span",{className:"flex items-center gap-1",children:[(0,a.jsx)(h,{variant:"outline",children:s.type}),s.required&&(0,a.jsx)(h,{variant:"secondary",children:t("required")}),s.unique&&(0,a.jsx)(h,{variant:"secondary",children:t("unique")})]})]},s.name))})}),(0,a.jsx)(y,{className:"gap-0 py-0",children:(0,a.jsx)("p",{className:"px-4 py-3 text-xs text-muted-foreground","data-testid":"auth-config-note",children:t("OAuth providers, email templates, and rate limits are configured at deploy time in the better-auth setup and aren't editable here. See the Mail tab for email output.")})})]}),e[11]=l,e[12]=n,e[13]=m,e[14]=t,e[15]=x):x=e[15];let b;return e[16]!==p||e[17]!==f||e[18]!==x?(b=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"auth-config",children:[p,f,x]}),e[16]=p,e[17]=f,e[18]=x,e[19]=b):b=e[19],b},"M");function L(e){return(0,a.jsx)(h,{"data-testid":`auth-config-plugin-${e}`,variant:"outline",children:e},e)}u(L,"P");function q(e){return(0,a.jsx)(h,{"data-testid":`auth-config-provider-${e}`,variant:"outline",children:e},e)}u(q,"z");export{O as AuthConfigPanel};
1
+ import{a as S}from"./chunk-XSD4Y6SQ.js";import{a as y,e as A}from"./chunk-UZERI5YC.js";import{b as h}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{f as k}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{d as I}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as u,e as w,g as $,h as j}from"./chunk-3XIESWL4.js";var N=w($(),1);var a=w(j(),1);var z=[{key:"accounts",label:"Accounts"},{key:"admin",label:"Admin"},{key:"organization",label:"Organizations"},{key:"passkey",label:"Passkeys"},{key:"twoFactor",label:"Two-factor"}],v=u(e=>{if(e===void 0)return"\u2014";let i=[[86400,"d"],[3600,"h"],[60,"m"]];for(let[t,d]of i)if(e>=t&&e%t===0)return`${String(e/t)}${d}`;return`${String(e)}s`},"v"),g=u(e=>{let i=(0,N.c)(8),{children:t,heading:d,testId:r}=e,l;i[0]!==d?(l=(0,a.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,a.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:d})}),i[0]=d,i[1]=l):l=i[1];let n;i[2]!==t?(n=(0,a.jsx)(A,{className:"p-3",children:t}),i[2]=t,i[3]=n):n=i[3];let c;return i[4]!==l||i[5]!==n||i[6]!==r?(c=(0,a.jsxs)(y,{className:"gap-0 py-0","data-testid":r,children:[l,n]}),i[4]=l,i[5]=n,i[6]=r,i[7]=c):c=i[7],c},"h"),o=u(e=>{let i=(0,N.c)(7),{label:t,value:d}=e,r;i[0]!==t?(r=(0,a.jsx)("span",{className:"text-sm",children:t}),i[0]=t,i[1]=r):r=i[1];let l;i[2]!==d?(l=(0,a.jsx)("span",{className:"text-sm text-muted-foreground tabular-nums",children:d}),i[2]=d,i[3]=l):l=i[3];let n;return i[4]!==r||i[5]!==l?(n=(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-xl border border-border bg-card p-2 shadow-xs",children:[r,l]}),i[4]=r,i[5]=l,i[6]=n):n=i[6],n},"c"),O=u(()=>{let e=(0,N.c)(20),i=k(),t=I(),d;e[0]===Symbol.for("react.memo_cache_sentinel")?(d=["lunora-auth-config"],e[0]=d):d=e[0];let r;e[1]!==i?(r=u(()=>i.getAuthConfig(),"s"),e[1]=i,e[2]=r):r=e[2];let{data:l,error:n}=S(d,r),c;e[3]!==t?(c=u(s=>(0,a.jsx)(h,{variant:s?"success":"outline",children:t(s?"Enabled":"Disabled")}),"u"),e[3]=t,e[4]=c):c=e[4];let m=c,p;e[5]!==n?(p=n!==null&&(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-destructive","data-testid":"auth-config-error",role:"alert",children:n}),e[5]=n,e[6]=p):p=e[6];let f;e[7]!==l||e[8]!==n||e[9]!==t?(f=n===null&&l===void 0&&(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"auth-config-loading",children:t("Loading auth configuration\u2026")}),e[7]=l,e[8]=n,e[9]=t,e[10]=f):f=e[10];let x;e[11]!==l||e[12]!==n||e[13]!==m||e[14]!==t?(x=n===null&&l!==void 0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g,{heading:t("Enabled capabilities"),testId:"auth-config-capabilities",children:(0,a.jsx)("ul",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:z.map(s=>{let P=l.capabilities[s.key];return(0,a.jsxs)("li",{className:"flex items-center justify-between gap-2 rounded-xl border border-border bg-card p-2 shadow-xs","data-testid":`auth-config-cap-${s.key}`,children:[(0,a.jsx)("span",{className:"text-sm",children:t(s.label)}),m(P)]},s.key)})})}),(0,a.jsx)(g,{heading:t("Plugins"),testId:"auth-config-plugins",children:l.plugins.length===0?(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:t("No plugins enabled.")}):(0,a.jsx)("div",{className:"flex flex-wrap gap-2",children:l.plugins.map(L)})}),(0,a.jsx)(g,{heading:t("Sign-in methods"),testId:"auth-config-signin",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(o,{label:t("Email & password"),value:m(l.emailAndPassword)}),(0,a.jsx)(o,{label:t("Social providers"),value:l.socialProviders.length===0?t("None"):(0,a.jsx)("span",{className:"flex flex-wrap justify-end gap-1",children:l.socialProviders.map(q)})})]})}),l.organization.enabled&&(0,a.jsx)(g,{heading:t("Organizations"),testId:"auth-config-org",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(o,{label:t("Teams"),value:m(l.organization.teams)}),(0,a.jsx)(o,{label:t("Custom roles"),value:m(l.organization.roles)})]})}),(0,a.jsx)(g,{heading:t("Session policy"),testId:"auth-config-session",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(o,{label:t("Expires in"),value:v(l.session.expiresIn)}),(0,a.jsx)(o,{label:t("Refresh after"),value:v(l.session.updateAge)}),(0,a.jsx)(o,{label:t("Fresh window"),value:v(l.session.freshAge)}),(0,a.jsx)(o,{label:t("Cookie cache"),value:m(l.session.cookieCache===!0)})]})}),(0,a.jsx)(g,{heading:t("Rate limit"),testId:"auth-config-ratelimit",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(o,{label:t("Status"),value:m(l.rateLimit.enabled)}),l.rateLimit.enabled&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o,{label:t("Max requests"),value:l.rateLimit.max??"\u2014"}),(0,a.jsx)(o,{label:t("Window"),value:v(l.rateLimit.window)})]})]})}),l.userFields.length>0&&(0,a.jsx)(g,{heading:t("Plugin user fields"),testId:"auth-config-user-fields",children:(0,a.jsx)("ul",{className:"flex flex-col gap-2",children:l.userFields.map(s=>(0,a.jsxs)("li",{className:"flex items-center justify-between gap-2 rounded-xl border border-border bg-card p-2 shadow-xs","data-testid":`auth-config-user-field-${s.name}`,children:[(0,a.jsxs)("span",{className:"flex flex-col",children:[(0,a.jsx)("span",{className:"font-mono text-xs",children:s.name}),s.plugin!==void 0&&(0,a.jsx)("span",{className:"text-[11px] text-muted-foreground",children:s.plugin})]}),(0,a.jsxs)("span",{className:"flex items-center gap-1",children:[(0,a.jsx)(h,{variant:"outline",children:s.type}),s.required&&(0,a.jsx)(h,{variant:"secondary",children:t("required")}),s.unique&&(0,a.jsx)(h,{variant:"secondary",children:t("unique")})]})]},s.name))})}),(0,a.jsx)(y,{className:"gap-0 py-0",children:(0,a.jsx)("p",{className:"px-4 py-3 text-xs text-muted-foreground","data-testid":"auth-config-note",children:t("OAuth providers, email templates, and rate limits are configured at deploy time in the better-auth setup and aren't editable here. See the Mail tab for email output.")})})]}),e[11]=l,e[12]=n,e[13]=m,e[14]=t,e[15]=x):x=e[15];let b;return e[16]!==p||e[17]!==f||e[18]!==x?(b=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"auth-config",children:[p,f,x]}),e[16]=p,e[17]=f,e[18]=x,e[19]=b):b=e[19],b},"M");function L(e){return(0,a.jsx)(h,{"data-testid":`auth-config-plugin-${e}`,variant:"outline",children:e},e)}u(L,"P");function q(e){return(0,a.jsx)(h,{"data-testid":`auth-config-provider-${e}`,variant:"outline",children:e},e)}u(q,"z");export{O as AuthConfigPanel};
@@ -1 +1 @@
1
- import{a as Ft,b as ie}from"./chunk-VSS7NFZJ.js";import{a as Mt}from"./chunk-ESVP44Y3.js";import{a as At}from"./chunk-54MMVNPT.js";import{a as ue}from"./chunk-OWADN6BI.js";import{a as zt,b as kt,c as Nt,d as tt,e as se,f as de}from"./chunk-MIQTKZAR.js";import{a as xt,e as wt}from"./chunk-UZERI5YC.js";import{a as St}from"./chunk-V53KNYRN.js";import{a as Rt}from"./chunk-5Y3QLNWX.js";import{R as G}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as P}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{f as re}from"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{a as ce}from"./chunk-XQCVZAGU.js";import{d as Z,h as Ot,l as S,m as Dt,q as $t}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as i,e as Ct,f as qt,g as Bt,h as Ht}from"./chunk-3XIESWL4.js";var Y=Ct(Bt(),1);var J=Ct(qt(),1);var a=Ct(Ht(),1);var Pt=i(t=>{let e=JSON.parse(t);if(typeof e!="object"||e===null||Array.isArray(e))throw new TypeError("Expected a JSON object");return e},"Ft"),Kt=i(t=>{let e=Pt(t),r={};for(let[d,u]of Object.entries(e)){if(!Array.isArray(u)||u.some(l=>typeof l!="string"))throw new TypeError(`"${d}" must map to an array of action strings`);r[d]=u}return r},"Ut"),Jt=i(t=>t==null||t===""?"":typeof t=="string"?t:JSON.stringify(t,null,2),"Rt"),X=i(t=>{let e=(0,Y.c)(6),{children:r,htmlFor:d,label:u}=t,l;e[0]!==d||e[1]!==u?(l=(0,a.jsx)(Rt,{htmlFor:d,children:u}),e[0]=d,e[1]=u,e[2]=l):l=e[2];let o;return e[3]!==r||e[4]!==l?(o=(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[l,r]}),e[3]=r,e[4]=l,e[5]=o):o=e[5],o},"Q"),me=i(({busy:t,canSubmit:e,children:r,destructive:d=!1,error:u,onClose:l,onSubmit:o,submitLabel:n,testId:s,title:m})=>{let c=Z();return(0,a.jsxs)(Mt,{label:m,onClose:l,panelTestId:`${s}-panel`,testId:`${s}-overlay`,variant:"dialog",children:[(0,a.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:m}),r,u!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":`${s}-error`,role:"alert",children:u}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,a.jsx)(P,{"data-testid":`${s}-cancel`,onClick:l,size:"sm",type:"button",variant:"outline",children:c("Cancel")}),(0,a.jsx)(P,{"data-testid":`${s}-submit`,disabled:t||!e,onClick:o,size:"sm",type:"button",variant:d?"destructive":"default",children:t?c("Saving\u2026"):n})]})]})},"se"),Et=i(t=>{let e=(0,Y.c)(79),{mode:r,onClose:d,onDone:u,org:l}=t,o=re(),n=Z(),{busy:s,error:m,run:c}=ie(),v;e[0]!==l?(v=l?S(l.name):"",e[0]=l,e[1]=v):v=e[1];let[g,h]=(0,J.useState)(v),w;e[2]!==l?(w=l?S(l.slug):"",e[2]=l,e[3]=w):w=e[3];let[f,y]=(0,J.useState)(w),z;e[4]!==l?(z=l?S(l.logo):"",e[4]=l,e[5]=z):z=e[5];let[p,x]=(0,J.useState)(z),[b,k]=(0,J.useState)(""),I;e[6]!==r||e[7]!==l?.metadata?(I=r==="edit"?Jt(l?.metadata):"",e[6]=r,e[7]=l?.metadata,e[8]=I):I=e[8];let[C,N]=(0,J.useState)(I),D;e[9]!==o||e[10]!==p||e[11]!==C||e[12]!==r||e[13]!==g||e[14]!==d||e[15]!==u||e[16]!==l?.id||e[17]!==b||e[18]!==c||e[19]!==f?(D=i(()=>{c(async()=>{let L=C.trim()===""?void 0:Pt(C);r==="create"?await o.createAuthOrganization({logo:p.trim()===""?void 0:p.trim(),metadata:L,name:g.trim(),ownerId:b.trim()===""?void 0:b.trim(),slug:f.trim()===""?void 0:f.trim()}):await o.updateAuthOrganization({logo:p.trim()===""?void 0:p.trim(),metadata:L,name:g.trim()===""?void 0:g.trim(),organizationId:S(l?.id),slug:f.trim()===""?void 0:f.trim()}),u(),d()})},"O"),e[9]=o,e[10]=p,e[11]=C,e[12]=r,e[13]=g,e[14]=d,e[15]=u,e[16]=l?.id,e[17]=b,e[18]=c,e[19]=f,e[20]=D):D=e[20];let _=D,A;e[21]!==r||e[22]!==g?(A=g.trim()!==""||r==="edit",e[21]=r,e[22]=g,e[23]=A):A=e[23];let $;e[24]!==r||e[25]!==n?($=n(r==="create"?"Create":"Save"),e[24]=r,e[25]=n,e[26]=$):$=e[26];let R;e[27]!==r||e[28]!==n?(R=n(r==="create"?"New organization":"Edit organization"),e[27]=r,e[28]=n,e[29]=R):R=e[29];let U;e[30]!==n?(U=n("name"),e[30]=n,e[31]=U):U=e[31];let K;e[32]===Symbol.for("react.memo_cache_sentinel")?(K=i(L=>{h(L.target.value)},"q"),e[32]=K):K=e[32];let q;e[33]!==g?(q=(0,a.jsx)(G,{"data-testid":"org-form-name",id:"org-form-name",onChange:K,value:g}),e[33]=g,e[34]=q):q=e[34];let j;e[35]!==q||e[36]!==U?(j=(0,a.jsx)(X,{htmlFor:"org-form-name",label:U,children:q}),e[35]=q,e[36]=U,e[37]=j):j=e[37];let B;e[38]!==n?(B=n("Slug (optional \u2014 derived from name)"),e[38]=n,e[39]=B):B=e[39];let T;e[40]===Symbol.for("react.memo_cache_sentinel")?(T=i(L=>{y(L.target.value)},"K"),e[40]=T):T=e[40];let F;e[41]!==f?(F=(0,a.jsx)(G,{"data-testid":"org-form-slug",id:"org-form-slug",onChange:T,value:f}),e[41]=f,e[42]=F):F=e[42];let M;e[43]!==B||e[44]!==F?(M=(0,a.jsx)(X,{htmlFor:"org-form-slug",label:B,children:F}),e[43]=B,e[44]=F,e[45]=M):M=e[45];let H;e[46]!==n?(H=n("Logo URL (optional)"),e[46]=n,e[47]=H):H=e[47];let oe;e[48]===Symbol.for("react.memo_cache_sentinel")?(oe=i(L=>{x(L.target.value)},"re"),e[48]=oe):oe=e[48];let Q;e[49]!==p?(Q=(0,a.jsx)(G,{"data-testid":"org-form-logo",id:"org-form-logo",onChange:oe,value:p}),e[49]=p,e[50]=Q):Q=e[50];let V;e[51]!==H||e[52]!==Q?(V=(0,a.jsx)(X,{htmlFor:"org-form-logo",label:H,children:Q}),e[51]=H,e[52]=Q,e[53]=V):V=e[53];let W;e[54]!==r||e[55]!==b||e[56]!==n?(W=r==="create"&&(0,a.jsx)(X,{htmlFor:"org-form-owner",label:n("Owner user id (optional)"),children:(0,a.jsx)(G,{"data-testid":"org-form-owner",id:"org-form-owner",onChange:i(L=>{k(L.target.value)},"onChange"),value:b})}),e[54]=r,e[55]=b,e[56]=n,e[57]=W):W=e[57];let ee;e[58]!==n?(ee=n("Metadata (JSON, optional)"),e[58]=n,e[59]=ee):ee=e[59];let ae;e[60]===Symbol.for("react.memo_cache_sentinel")?(ae=i(L=>{N(L.target.value)},"oe"),e[60]=ae):ae=e[60];let te;e[61]!==C?(te=(0,a.jsx)(St,{"data-testid":"org-form-metadata",id:"org-form-metadata",onChange:ae,value:C}),e[61]=C,e[62]=te):te=e[62];let O;e[63]!==ee||e[64]!==te?(O=(0,a.jsx)(X,{htmlFor:"org-form-metadata",label:ee,children:te}),e[63]=ee,e[64]=te,e[65]=O):O=e[65];let ne;return e[66]!==s||e[67]!==m||e[68]!==d||e[69]!==_||e[70]!==j||e[71]!==M||e[72]!==V||e[73]!==W||e[74]!==O||e[75]!==A||e[76]!==$||e[77]!==R?(ne=(0,a.jsxs)(me,{busy:s,canSubmit:A,error:m,onClose:d,onSubmit:_,submitLabel:$,testId:"org-form",title:R,children:[j,M,V,W,O]}),e[66]=s,e[67]=m,e[68]=d,e[69]=_,e[70]=j,e[71]=M,e[72]=V,e[73]=W,e[74]=O,e[75]=A,e[76]=$,e[77]=R,e[78]=ne):ne=e[78],ne},"$t"),Tt=i(t=>{let e=(0,Y.c)(40),{onClose:r,onDone:d,organizationId:u}=t,l=re(),o=Z(),{busy:n,error:s,run:m}=ie(),[c,v]=(0,J.useState)(""),[g,h]=(0,J.useState)(""),w;e[0]!==l||e[1]!==r||e[2]!==d||e[3]!==u||e[4]!==g||e[5]!==m||e[6]!==c?(w=i(()=>{m(async()=>{await l.addAuthOrgMember({organizationId:u,role:g.trim()===""?void 0:g.trim(),userId:c.trim()}),d(),r()})},"C"),e[0]=l,e[1]=r,e[2]=d,e[3]=u,e[4]=g,e[5]=m,e[6]=c,e[7]=w):w=e[7];let f=w,y;e[8]!==c?(y=c.trim(),e[8]=c,e[9]=y):y=e[9];let z=y!=="",p;e[10]!==o?(p=o("Add member"),e[10]=o,e[11]=p):p=e[11];let x;e[12]!==o?(x=o("Add member"),e[12]=o,e[13]=x):x=e[13];let b;e[14]!==o?(b=o("User id"),e[14]=o,e[15]=b):b=e[15];let k;e[16]===Symbol.for("react.memo_cache_sentinel")?(k=i(R=>{v(R.target.value)},"x"),e[16]=k):k=e[16];let I;e[17]!==c?(I=(0,a.jsx)(G,{"data-testid":"org-add-member-user",id:"org-add-member-user",onChange:k,value:c}),e[17]=c,e[18]=I):I=e[18];let C;e[19]!==b||e[20]!==I?(C=(0,a.jsx)(X,{htmlFor:"org-add-member-user",label:b,children:I}),e[19]=b,e[20]=I,e[21]=C):C=e[21];let N;e[22]!==o?(N=o("Role (optional)"),e[22]=o,e[23]=N):N=e[23];let D;e[24]===Symbol.for("react.memo_cache_sentinel")?(D=i(R=>{h(R.target.value)},"O"),e[24]=D):D=e[24];let _;e[25]!==g?(_=(0,a.jsx)(G,{"data-testid":"org-add-member-role",id:"org-add-member-role",onChange:D,value:g}),e[25]=g,e[26]=_):_=e[26];let A;e[27]!==N||e[28]!==_?(A=(0,a.jsx)(X,{htmlFor:"org-add-member-role",label:N,children:_}),e[27]=N,e[28]=_,e[29]=A):A=e[29];let $;return e[30]!==n||e[31]!==s||e[32]!==r||e[33]!==f||e[34]!==A||e[35]!==z||e[36]!==p||e[37]!==x||e[38]!==C?($=(0,a.jsxs)(me,{busy:n,canSubmit:z,error:s,onClose:r,onSubmit:f,submitLabel:p,testId:"org-add-member",title:x,children:[C,A]}),e[30]=n,e[31]=s,e[32]=r,e[33]=f,e[34]=A,e[35]=z,e[36]=p,e[37]=x,e[38]=C,e[39]=$):$=e[39],$},"Bt"),Xt=i(t=>{let e=(0,Y.c)(40),{onClose:r,onDone:d,organizationId:u}=t,l=re(),o=Z(),{busy:n,error:s,run:m}=ie(),[c,v]=(0,J.useState)(""),[g,h]=(0,J.useState)(""),w;e[0]!==l||e[1]!==c||e[2]!==r||e[3]!==d||e[4]!==u||e[5]!==g||e[6]!==m?(w=i(()=>{m(async()=>{await l.inviteAuthOrgMember({email:c.trim(),organizationId:u,role:g.trim()===""?void 0:g.trim()}),d(),r()})},"C"),e[0]=l,e[1]=c,e[2]=r,e[3]=d,e[4]=u,e[5]=g,e[6]=m,e[7]=w):w=e[7];let f=w,y;e[8]!==c?(y=c.trim(),e[8]=c,e[9]=y):y=e[9];let z=y!=="",p;e[10]!==o?(p=o("Send invitation"),e[10]=o,e[11]=p):p=e[11];let x;e[12]!==o?(x=o("Invite member"),e[12]=o,e[13]=x):x=e[13];let b;e[14]!==o?(b=o("email"),e[14]=o,e[15]=b):b=e[15];let k;e[16]===Symbol.for("react.memo_cache_sentinel")?(k=i(R=>{v(R.target.value)},"x"),e[16]=k):k=e[16];let I;e[17]!==c?(I=(0,a.jsx)(G,{"data-testid":"org-invite-member-email",id:"org-invite-member-email",onChange:k,type:"email",value:c}),e[17]=c,e[18]=I):I=e[18];let C;e[19]!==b||e[20]!==I?(C=(0,a.jsx)(X,{htmlFor:"org-invite-member-email",label:b,children:I}),e[19]=b,e[20]=I,e[21]=C):C=e[21];let N;e[22]!==o?(N=o("Role (optional)"),e[22]=o,e[23]=N):N=e[23];let D;e[24]===Symbol.for("react.memo_cache_sentinel")?(D=i(R=>{h(R.target.value)},"O"),e[24]=D):D=e[24];let _;e[25]!==g?(_=(0,a.jsx)(G,{"data-testid":"org-invite-member-role",id:"org-invite-member-role",onChange:D,value:g}),e[25]=g,e[26]=_):_=e[26];let A;e[27]!==N||e[28]!==_?(A=(0,a.jsx)(X,{htmlFor:"org-invite-member-role",label:N,children:_}),e[27]=N,e[28]=_,e[29]=A):A=e[29];let $;return e[30]!==n||e[31]!==s||e[32]!==r||e[33]!==f||e[34]!==A||e[35]!==z||e[36]!==p||e[37]!==x||e[38]!==C?($=(0,a.jsxs)(me,{busy:n,canSubmit:z,error:s,onClose:r,onSubmit:f,submitLabel:p,testId:"org-invite-member",title:x,children:[C,A]}),e[30]=n,e[31]=s,e[32]=r,e[33]=f,e[34]=A,e[35]=z,e[36]=p,e[37]=x,e[38]=C,e[39]=$):$=e[39],$},"Ht"),Yt=i(t=>{let e=(0,Y.c)(32),{member:r,onClose:d,onDone:u}=t,l=re(),o=Z(),{busy:n,error:s,run:m}=ie(),c;e[0]!==r.role?(c=S(r.role),e[0]=r.role,e[1]=c):c=e[1];let[v,g]=(0,J.useState)(c),h;e[2]!==l||e[3]!==r.id||e[4]!==d||e[5]!==u||e[6]!==v||e[7]!==m?(h=i(()=>{m(async()=>{await l.setAuthOrgMemberRole({memberId:S(r.id),role:v.trim()}),u(),d()})},"g"),e[2]=l,e[3]=r.id,e[4]=d,e[5]=u,e[6]=v,e[7]=m,e[8]=h):h=e[8];let w=h,f;e[9]!==v?(f=v.trim(),e[9]=v,e[10]=f):f=e[10];let y=f!=="",z;e[11]!==o?(z=o("Save"),e[11]=o,e[12]=z):z=e[12];let p;e[13]!==o?(p=o("Change member role"),e[13]=o,e[14]=p):p=e[14];let x;e[15]!==o?(x=o("Role"),e[15]=o,e[16]=x):x=e[16];let b;e[17]===Symbol.for("react.memo_cache_sentinel")?(b=i(N=>{g(N.target.value)},"h"),e[17]=b):b=e[17];let k;e[18]!==v?(k=(0,a.jsx)(G,{"data-testid":"org-member-role-value",id:"org-member-role-value",onChange:b,value:v}),e[18]=v,e[19]=k):k=e[19];let I;e[20]!==x||e[21]!==k?(I=(0,a.jsx)(X,{htmlFor:"org-member-role-value",label:x,children:k}),e[20]=x,e[21]=k,e[22]=I):I=e[22];let C;return e[23]!==n||e[24]!==s||e[25]!==d||e[26]!==w||e[27]!==I||e[28]!==y||e[29]!==z||e[30]!==p?(C=(0,a.jsx)(me,{busy:n,canSubmit:y,error:s,onClose:d,onSubmit:w,submitLabel:z,testId:"org-member-role",title:p,children:I}),e[23]=n,e[24]=s,e[25]=d,e[26]=w,e[27]=I,e[28]=y,e[29]=z,e[30]=p,e[31]=C):C=e[31],C},"qt"),Lt=i(t=>{let e=(0,Y.c)(36),{mode:r,onClose:d,onDone:u,organizationId:l,team:o}=t,n=re(),s=Z(),{busy:m,error:c,run:v}=ie(),g;e[0]!==o?(g=o?S(o.name):"",e[0]=o,e[1]=g):g=e[1];let[h,w]=(0,J.useState)(g),f;e[2]!==n||e[3]!==r||e[4]!==h||e[5]!==d||e[6]!==u||e[7]!==l||e[8]!==v||e[9]!==o?.id?(f=i(()=>{v(async()=>{await(r==="create"?n.createAuthOrgTeam({name:h.trim(),organizationId:l}):n.updateAuthOrgTeam({name:h.trim(),teamId:S(o?.id)})),u(),d()})},"b"),e[2]=n,e[3]=r,e[4]=h,e[5]=d,e[6]=u,e[7]=l,e[8]=v,e[9]=o?.id,e[10]=f):f=e[10];let y=f,z;e[11]!==h?(z=h.trim(),e[11]=h,e[12]=z):z=e[12];let p=z!=="",x;e[13]!==r||e[14]!==s?(x=s(r==="create"?"Create":"Save"),e[13]=r,e[14]=s,e[15]=x):x=e[15];let b;e[16]!==r||e[17]!==s?(b=s(r==="create"?"New team":"Rename team"),e[16]=r,e[17]=s,e[18]=b):b=e[18];let k;e[19]!==s?(k=s("name"),e[19]=s,e[20]=k):k=e[20];let I;e[21]===Symbol.for("react.memo_cache_sentinel")?(I=i(_=>{w(_.target.value)},"y"),e[21]=I):I=e[21];let C;e[22]!==h?(C=(0,a.jsx)(G,{"data-testid":"org-team-form-name",id:"org-team-form-name",onChange:I,value:h}),e[22]=h,e[23]=C):C=e[23];let N;e[24]!==k||e[25]!==C?(N=(0,a.jsx)(X,{htmlFor:"org-team-form-name",label:k,children:C}),e[24]=k,e[25]=C,e[26]=N):N=e[26];let D;return e[27]!==m||e[28]!==c||e[29]!==d||e[30]!==y||e[31]!==N||e[32]!==p||e[33]!==x||e[34]!==b?(D=(0,a.jsx)(me,{busy:m,canSubmit:p,error:c,onClose:d,onSubmit:y,submitLabel:x,testId:"org-team-form",title:b,children:N}),e[27]=m,e[28]=c,e[29]=d,e[30]=y,e[31]=N,e[32]=p,e[33]=x,e[34]=b,e[35]=D):D=e[35],D},"xt"),Zt=i(t=>{let e=(0,Y.c)(30),{onClose:r,onDone:d,teamId:u}=t,l=re(),o=Z(),{busy:n,error:s,run:m}=ie(),[c,v]=(0,J.useState)(""),g;e[0]!==l||e[1]!==r||e[2]!==d||e[3]!==m||e[4]!==u||e[5]!==c?(g=i(()=>{m(async()=>{await l.addAuthOrgTeamMember({teamId:u,userId:c.trim()}),d(),r()})},"u"),e[0]=l,e[1]=r,e[2]=d,e[3]=m,e[4]=u,e[5]=c,e[6]=g):g=e[6];let h=g,w;e[7]!==c?(w=c.trim(),e[7]=c,e[8]=w):w=e[8];let f=w!=="",y;e[9]!==o?(y=o("Add member"),e[9]=o,e[10]=y):y=e[10];let z;e[11]!==o?(z=o("Add team member"),e[11]=o,e[12]=z):z=e[12];let p;e[13]!==o?(p=o("User id"),e[13]=o,e[14]=p):p=e[14];let x;e[15]===Symbol.for("react.memo_cache_sentinel")?(x=i(C=>{v(C.target.value)},"w"),e[15]=x):x=e[15];let b;e[16]!==c?(b=(0,a.jsx)(G,{"data-testid":"org-team-add-member-user",id:"org-team-add-member-user",onChange:x,value:c}),e[16]=c,e[17]=b):b=e[17];let k;e[18]!==p||e[19]!==b?(k=(0,a.jsx)(X,{htmlFor:"org-team-add-member-user",label:p,children:b}),e[18]=p,e[19]=b,e[20]=k):k=e[20];let I;return e[21]!==n||e[22]!==s||e[23]!==r||e[24]!==h||e[25]!==f||e[26]!==y||e[27]!==z||e[28]!==k?(I=(0,a.jsx)(me,{busy:n,canSubmit:f,error:s,onClose:r,onSubmit:h,submitLabel:y,testId:"org-team-add-member",title:z,children:k}),e[21]=n,e[22]=s,e[23]=r,e[24]=h,e[25]=f,e[26]=y,e[27]=z,e[28]=k,e[29]=I):I=e[29],I},"Kt"),jt=i(t=>{let e=(0,Y.c)(47),{mode:r,onClose:d,onDone:u,organizationId:l,role:o}=t,n=re(),s=Z(),{busy:m,error:c,run:v}=ie(),g;e[0]!==o?(g=o?S(o.role):"",e[0]=o,e[1]=g):g=e[1];let[h,w]=(0,J.useState)(g),f;e[2]!==r||e[3]!==o?.permission?(f=r==="edit"?Jt(o?.permission):"",e[2]=r,e[3]=o?.permission,e[4]=f):f=e[4];let[y,z]=(0,J.useState)(f),p;e[5]!==n||e[6]!==r||e[7]!==h||e[8]!==d||e[9]!==u||e[10]!==l||e[11]!==y||e[12]!==o?.id||e[13]!==v?(p=i(()=>{v(async()=>{let R=Kt(y);await(r==="create"?n.createAuthOrgRole({organizationId:l,permission:R,role:h.trim()}):n.updateAuthOrgRole({permission:R,roleId:S(o?.id)})),u(),d()})},"f"),e[5]=n,e[6]=r,e[7]=h,e[8]=d,e[9]=u,e[10]=l,e[11]=y,e[12]=o?.id,e[13]=v,e[14]=p):p=e[14];let x=p,b;e[15]!==r||e[16]!==h||e[17]!==y?(b=y.trim()!==""&&(r==="edit"||h.trim()!==""),e[15]=r,e[16]=h,e[17]=y,e[18]=b):b=e[18];let k;e[19]!==r||e[20]!==s?(k=s(r==="create"?"Create":"Save"),e[19]=r,e[20]=s,e[21]=k):k=e[21];let I;e[22]!==r||e[23]!==s?(I=s(r==="create"?"New role":"Edit role"),e[22]=r,e[23]=s,e[24]=I):I=e[24];let C;e[25]!==r||e[26]!==h||e[27]!==s?(C=r==="create"&&(0,a.jsx)(X,{htmlFor:"org-role-form-name",label:s("Role name"),children:(0,a.jsx)(G,{"data-testid":"org-role-form-name",id:"org-role-form-name",onChange:i(R=>{w(R.target.value)},"onChange"),value:h})}),e[25]=r,e[26]=h,e[27]=s,e[28]=C):C=e[28];let N;e[29]!==s?(N=s('Permission (JSON, e.g. {"project":["create","update"]})'),e[29]=s,e[30]=N):N=e[30];let D;e[31]===Symbol.for("react.memo_cache_sentinel")?(D=i(R=>{z(R.target.value)},"O"),e[31]=D):D=e[31];let _;e[32]!==y?(_=(0,a.jsx)(St,{"data-testid":"org-role-form-permission",id:"org-role-form-permission",onChange:D,value:y}),e[32]=y,e[33]=_):_=e[33];let A;e[34]!==_||e[35]!==N?(A=(0,a.jsx)(X,{htmlFor:"org-role-form-permission",label:N,children:_}),e[34]=_,e[35]=N,e[36]=A):A=e[36];let $;return e[37]!==m||e[38]!==c||e[39]!==d||e[40]!==x||e[41]!==A||e[42]!==b||e[43]!==k||e[44]!==I||e[45]!==C?($=(0,a.jsxs)(me,{busy:m,canSubmit:b,error:c,onClose:d,onSubmit:x,submitLabel:k,testId:"org-role-form",title:I,children:[C,A]}),e[37]=m,e[38]=c,e[39]=d,e[40]=x,e[41]=A,e[42]=b,e[43]=k,e[44]=I,e[45]=C,e[46]=$):$=e[46],$},"zt"),Ut=i(t=>{let e=(0,Y.c)(18),{action:r,message:d,onClose:u,onDone:l,testId:o,title:n}=t,s=Z(),{busy:m,error:c,run:v}=ie(),g;e[0]!==r||e[1]!==u||e[2]!==l||e[3]!==v?(g=i(()=>{v(async()=>{await r(),l(),u()})},"u"),e[0]=r,e[1]=u,e[2]=l,e[3]=v,e[4]=g):g=e[4];let h=g,w;e[5]!==s?(w=s("Delete"),e[5]=s,e[6]=w):w=e[6];let f;e[7]!==d?(f=(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:d}),e[7]=d,e[8]=f):f=e[8];let y;return e[9]!==m||e[10]!==c||e[11]!==u||e[12]!==h||e[13]!==w||e[14]!==f||e[15]!==o||e[16]!==n?(y=(0,a.jsx)(me,{busy:m,canSubmit:!0,destructive:!0,error:c,onClose:u,onSubmit:h,submitLabel:w,testId:o,title:n,children:f}),e[9]=m,e[10]=c,e[11]=u,e[12]=h,e[13]=w,e[14]=f,e[15]=o,e[16]=n,e[17]=y):y=e[17],y},"Tt"),rt=i(t=>{let e=(0,Y.c)(13),{action:r,children:d,heading:u,testId:l}=t,o;e[0]!==u?(o=(0,a.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:u}),e[0]=u,e[1]=o):o=e[1];let n;e[2]!==r?(n=r!==void 0&&(0,a.jsx)("div",{className:"flex items-center gap-2",children:r}),e[2]=r,e[3]=n):n=e[3];let s;e[4]!==o||e[5]!==n?(s=(0,a.jsxs)("header",{className:"flex items-center justify-between gap-2 border-b border-border px-4 py-3",children:[o,n]}),e[4]=o,e[5]=n,e[6]=s):s=e[6];let m;e[7]!==d?(m=(0,a.jsx)(wt,{className:"px-0",children:d}),e[7]=d,e[8]=m):m=e[8];let c;return e[9]!==s||e[10]!==m||e[11]!==l?(c=(0,a.jsxs)(xt,{className:"overflow-hidden py-0","data-testid":l,children:[s,m]}),e[9]=s,e[10]=m,e[11]=l,e[12]=c):c=e[12],c},"tt"),ot=i(t=>{let e=(0,Y.c)(23),{columns:r,rowActions:d,rowPrefix:u,rows:l}=t,o=Z(),n;e[0]!==r?(n=r.map(Qt),e[0]=r,e[1]=n):n=e[1];let s;e[2]!==o?(s=o("Actions"),e[2]=o,e[3]=s):s=e[3];let m;e[4]!==s?(m=(0,a.jsx)(se,{"aria-label":s}),e[4]=s,e[5]=m):m=e[5];let c;e[6]!==n||e[7]!==m?(c=(0,a.jsx)(kt,{children:(0,a.jsxs)(tt,{children:[n,m]})}),e[6]=n,e[7]=m,e[8]=c):c=e[8];let v;if(e[9]!==r||e[10]!==d||e[11]!==u||e[12]!==l){let w;e[14]!==r||e[15]!==d||e[16]!==u?(w=i(f=>{let y=S(f.id);return(0,a.jsxs)(tt,{"data-testid":`${u}-${y}`,children:[r.map(z=>(0,a.jsx)(de,{className:z.className,children:z.render(f)},z.head)),(0,a.jsx)(de,{children:(0,a.jsx)("div",{className:"flex justify-end gap-1",children:d(f)})})]},y)},"C"),e[14]=r,e[15]=d,e[16]=u,e[17]=w):w=e[17],v=l.map(w),e[9]=r,e[10]=d,e[11]=u,e[12]=l,e[13]=v}else v=e[13];let g;e[18]!==v?(g=(0,a.jsx)(Nt,{children:v}),e[18]=v,e[19]=g):g=e[19];let h;return e[20]!==c||e[21]!==g?(h=(0,a.jsxs)(zt,{children:[c,g]}),e[20]=c,e[21]=g,e[22]=h):h=e[22],h},"rt"),Gt=i(t=>{let e=(0,Y.c)(219),{organizationId:r,rolesEnabled:d,teamsEnabled:u}=t,l=re(),o=Z(),[n,s]=(0,J.useState)(null),[m,c]=(0,J.useState)(null),[v,g]=(0,J.useState)(!1),[h,w]=(0,J.useState)(null),f;e[0]!==r?(f=["lunora-auth-org-members",r],e[0]=r,e[1]=f):f=e[1];let y;e[2]!==l||e[3]!==r?(y=i(()=>l.listAuthOrgMembers({limit:200,organizationId:r}),"v"),e[2]=l,e[3]=r,e[4]=y):y=e[4];let z=ue(f,y),p;e[5]!==r?(p=["lunora-auth-org-invitations",r],e[5]=r,e[6]=p):p=e[6];let x;e[7]!==l||e[8]!==r?(x=i(()=>l.listAuthOrgInvitations({limit:200,organizationId:r}),"w"),e[7]=l,e[8]=r,e[9]=x):x=e[9];let b=ue(p,x),k;e[10]!==r?(k=["lunora-auth-org-teams",r],e[10]=r,e[11]=k):k=e[11];let I;e[12]!==l||e[13]!==r?(I=i(()=>l.listAuthOrgTeams({limit:200,organizationId:r}),"y"),e[12]=l,e[13]=r,e[14]=I):I=e[14];let C;e[15]!==u?(C={enabled:u},e[15]=u,e[16]=C):C=e[16];let N=ue(k,I,C),D;e[17]!==r?(D=["lunora-auth-org-roles",r],e[17]=r,e[18]=D):D=e[18];let _;e[19]!==l||e[20]!==r?(_=i(()=>l.listAuthOrgRoles({limit:200,organizationId:r}),"N"),e[19]=l,e[20]=r,e[21]=_):_=e[21];let A;e[22]!==d?(A={enabled:d},e[22]=d,e[23]=A):A=e[23];let $=ue(D,_,A),R;e[24]!==m?(R=["lunora-auth-org-team-members",m],e[24]=m,e[25]=R):R=e[25];let U;e[26]!==l||e[27]!==m?(U=i(()=>l.listAuthOrgTeamMembers({limit:200,teamId:m??""}),"J"),e[26]=l,e[27]=m,e[28]=U):U=e[28];let K=m!==null,q;e[29]!==K?(q={enabled:K},e[29]=K,e[30]=q):q=e[30];let j=ue(R,U,q),B;e[31]!==z.data?.rows?(B=z.data?.rows??[],e[31]=z.data?.rows,e[32]=B):B=e[32];let T=B,F;e[33]!==b.data?.rows?(F=b.data?.rows??[],e[33]=b.data?.rows,e[34]=F):F=e[34];let M=F,H;e[35]!==N.data?.rows?(H=N.data?.rows??[],e[35]=N.data?.rows,e[36]=H):H=e[36];let oe=H,Q;e[37]!==$.data?.rows?(Q=$.data?.rows??[],e[37]=$.data?.rows,e[38]=Q):Q=e[38];let V=Q,W;e[39]!==m||e[40]!==j?(W=m===null?[]:j.data?.rows??[],e[39]=m,e[40]=j,e[41]=W):W=e[41];let ee=W,ae=z.error??b.error??N.error??$.error??j.error,te;e[42]!==b||e[43]!==z||e[44]!==d||e[45]!==$||e[46]!==m||e[47]!==j||e[48]!==u||e[49]!==N?(te=i(()=>{z.refetch(),b.refetch(),u&&N.refetch(),d&&$.refetch(),m!==null&&j.refetch()},"te"),e[42]=b,e[43]=z,e[44]=d,e[45]=$,e[46]=m,e[47]=j,e[48]=u,e[49]=N,e[50]=te):te=e[50];let O=te;At(O,!0);let ne;e[51]===Symbol.for("react.memo_cache_sentinel")?(ne=i(()=>{s(null)},"ne"),e[51]=ne):ne=e[51];let L=ne,at;e[52]!==O?(at=i(E=>{Dt((async()=>{g(!0),w(null);try{await E(),O(),g(!1)}catch(ht){w(Ot(ht)),g(!1)}})())},"ot"),e[52]=O,e[53]=at):at=e[53];let le=at,nt;e[54]!==l||e[55]!==o?(nt=i(E=>{let ht=S(E.id);s({action:i(async()=>{await l.removeAuthOrgTeam({teamId:ht}),c(_t=>_t===ht?null:_t)},"action"),kind:"confirm",message:o("Delete this team and its memberships? This cannot be undone."),testId:"org-team-delete",title:o("Delete team")})},"nt"),e[54]=l,e[55]=o,e[56]=nt):nt=e[56];let bt=nt,ge;e[57]!==o?(ge=o("userId"),e[57]=o,e[58]=ge):ge=e[58];let he;e[59]!==ge?(he={head:ge,render:Vt},e[59]=ge,e[60]=he):he=e[60];let be;e[61]!==o?(be=o("role"),e[61]=o,e[62]=be):be=e[62];let fe;e[63]!==be?(fe={head:be,render:Wt},e[63]=be,e[64]=fe):fe=e[64];let lt;e[65]!==he||e[66]!==fe?(lt=[he,fe],e[65]=he,e[66]=fe,e[67]=lt):lt=e[67];let ft=lt,pe;e[68]!==o?(pe=o("email"),e[68]=o,e[69]=pe):pe=e[69];let ve;e[70]!==pe?(ve={head:pe,render:er},e[70]=pe,e[71]=ve):ve=e[71];let ye;e[72]!==o?(ye=o("role"),e[72]=o,e[73]=ye):ye=e[73];let Ie;e[74]!==ye?(Ie={head:ye,render:tr},e[74]=ye,e[75]=Ie):Ie=e[75];let Ce;e[76]!==o?(Ce=o("status"),e[76]=o,e[77]=Ce):Ce=e[77];let xe;e[78]!==Ce?(xe={head:Ce,render:rr},e[78]=Ce,e[79]=xe):xe=e[79];let it;e[80]!==ve||e[81]!==Ie||e[82]!==xe?(it=[ve,Ie,xe],e[80]=ve,e[81]=Ie,e[82]=xe,e[83]=it):it=e[83];let pt=it,we;e[84]!==o?(we=o("id"),e[84]=o,e[85]=we):we=e[85];let ze;e[86]!==we?(ze={className:"font-mono text-xs",head:we,render:or},e[86]=we,e[87]=ze):ze=e[87];let ke;e[88]!==o?(ke=o("name"),e[88]=o,e[89]=ke):ke=e[89];let Ne;e[90]!==ke?(Ne={head:ke,render:ar},e[90]=ke,e[91]=Ne):Ne=e[91];let st;e[92]!==ze||e[93]!==Ne?(st=[ze,Ne],e[92]=ze,e[93]=Ne,e[94]=st):st=e[94];let vt=st,Se;e[95]!==o?(Se=o("userId"),e[95]=o,e[96]=Se):Se=e[96];let dt;e[97]!==Se?(dt=[{head:Se,render:nr}],e[97]=Se,e[98]=dt):dt=e[98];let yt=dt,Ae;e[99]!==o?(Ae=o("role"),e[99]=o,e[100]=Ae):Ae=e[100];let _e;e[101]!==Ae?(_e={head:Ae,render:lr},e[101]=Ae,e[102]=_e):_e=e[102];let Oe;e[103]!==o?(Oe=o("Permission"),e[103]=o,e[104]=Oe):Oe=e[104];let De;e[105]!==Oe?(De={className:"font-mono text-xs whitespace-pre-wrap",head:Oe,render:ir},e[105]=Oe,e[106]=De):De=e[106];let mt;e[107]!==_e||e[108]!==De?(mt=[_e,De],e[107]=_e,e[108]=De,e[109]=mt):mt=e[109];let It=mt,$e;e[110]!==ae?($e=ae!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"org-detail-error",role:"alert",children:ae}),e[110]=ae,e[111]=$e):$e=e[111];let Re;e[112]!==h?(Re=h!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"org-action-error",role:"alert",children:h}),e[112]=h,e[113]=Re):Re=e[113];let ct;e[114]===Symbol.for("react.memo_cache_sentinel")?(ct=i(()=>{s({kind:"add-member"})},"dt"),e[114]=ct):ct=e[114];let Fe;e[115]!==o?(Fe=o("Add member"),e[115]=o,e[116]=Fe):Fe=e[116];let Me;e[117]!==Fe?(Me=(0,a.jsx)(P,{"data-testid":"org-open-add-member",onClick:ct,size:"xs",type:"button",variant:"outline",children:Fe}),e[117]=Fe,e[118]=Me):Me=e[118];let ut;e[119]===Symbol.for("react.memo_cache_sentinel")?(ut=i(()=>{s({kind:"invite-member"})},"ct"),e[119]=ut):ut=e[119];let Ee;e[120]!==o?(Ee=o("Invite member"),e[120]=o,e[121]=Ee):Ee=e[121];let Le;e[122]!==Ee?(Le=(0,a.jsx)(P,{"data-testid":"org-open-invite-member",onClick:ut,size:"xs",type:"button",variant:"outline",children:Ee}),e[122]=Ee,e[123]=Le):Le=e[123];let je;e[124]!==Me||e[125]!==Le?(je=(0,a.jsxs)(a.Fragment,{children:[Me,Le]}),e[124]=Me,e[125]=Le,e[126]=je):je=e[126];let Pe;e[127]!==o?(Pe=o("Members"),e[127]=o,e[128]=Pe):Pe=e[128];let Je;e[129]!==v||e[130]!==l||e[131]!==ft||e[132]!==T||e[133]!==le||e[134]!==o?(Je=T.length===0?(0,a.jsx)("div",{className:"p-3",children:(0,a.jsx)(ce,{testId:"org-members-empty",title:o("No members.")})}):(0,a.jsx)(ot,{columns:ft,rowActions:i(E=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{"data-testid":`org-member-role-${S(E.id)}`,onClick:i(()=>{s({kind:"member-role",member:E})},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Change role")}),(0,a.jsx)(P,{"data-testid":`org-remove-member-${S(E.id)}`,disabled:v,onClick:i(()=>{le(()=>l.removeAuthOrgMember({memberId:S(E.id)}))},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Remove")})]}),"rowActions"),rowPrefix:"org-member",rows:T}),e[129]=v,e[130]=l,e[131]=ft,e[132]=T,e[133]=le,e[134]=o,e[135]=Je):Je=e[135];let Ue;e[136]!==je||e[137]!==Pe||e[138]!==Je?(Ue=(0,a.jsx)(rt,{action:je,heading:Pe,testId:"org-members",children:Je}),e[136]=je,e[137]=Pe,e[138]=Je,e[139]=Ue):Ue=e[139];let qe;e[140]!==v||e[141]!==l||e[142]!==pt||e[143]!==M||e[144]!==le||e[145]!==o?(qe=M.length>0&&(0,a.jsx)(rt,{heading:o("Invitations"),testId:"org-invitations",children:(0,a.jsx)(ot,{columns:pt,rowActions:i(E=>(0,a.jsx)(P,{"data-testid":`org-cancel-invitation-${S(E.id)}`,disabled:v,onClick:i(()=>{le(()=>l.cancelAuthOrgInvitation({invitationId:S(E.id)}))},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Cancel")}),"rowActions"),rowPrefix:"org-invitation",rows:M})}),e[140]=v,e[141]=l,e[142]=pt,e[143]=M,e[144]=le,e[145]=o,e[146]=qe):qe=e[146];let Be;e[147]!==bt||e[148]!==m||e[149]!==o||e[150]!==vt||e[151]!==oe||e[152]!==u?(Be=u&&(0,a.jsx)(rt,{action:(0,a.jsx)(P,{"data-testid":"org-open-create-team",onClick:i(()=>{s({kind:"team-create"})},"onClick"),size:"xs",type:"button",variant:"outline",children:o("New team")}),heading:o("Teams"),testId:"org-teams",children:oe.length===0?(0,a.jsx)("div",{className:"p-3",children:(0,a.jsx)(ce,{testId:"org-teams-empty",title:o("No teams.")})}):(0,a.jsx)(ot,{columns:vt,rowActions:i(E=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{"aria-pressed":m===S(E.id),"data-testid":`org-team-select-${S(E.id)}`,onClick:i(()=>{c(S(E.id))},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Members")}),(0,a.jsx)(P,{"data-testid":`org-team-rename-${S(E.id)}`,onClick:i(()=>{s({kind:"team-rename",team:E})},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Rename")}),(0,a.jsx)(P,{"data-testid":`org-team-delete-${S(E.id)}`,onClick:i(()=>{bt(E)},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Delete")})]}),"rowActions"),rowPrefix:"org-team",rows:oe})}),e[147]=bt,e[148]=m,e[149]=o,e[150]=vt,e[151]=oe,e[152]=u,e[153]=Be):Be=e[153];let He;e[154]!==v||e[155]!==l||e[156]!==le||e[157]!==m||e[158]!==o||e[159]!==yt||e[160]!==ee||e[161]!==u?(He=u&&m!==null&&(0,a.jsx)(rt,{action:(0,a.jsx)(P,{"data-testid":"org-open-add-team-member",onClick:i(()=>{s({kind:"team-add-member",teamId:m})},"onClick"),size:"xs",type:"button",variant:"outline",children:o("Add member")}),heading:o("Team members"),testId:"org-team-members",children:ee.length===0?(0,a.jsx)("div",{className:"p-3",children:(0,a.jsx)(ce,{testId:"org-team-members-empty",title:o("No team members.")})}):(0,a.jsx)(ot,{columns:yt,rowActions:i(E=>(0,a.jsx)(P,{"data-testid":`org-team-remove-member-${S(E.id)}`,disabled:v,onClick:i(()=>{le(()=>l.removeAuthOrgTeamMember({teamMemberId:S(E.id)}))},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Remove")}),"rowActions"),rowPrefix:"org-team-member",rows:ee})}),e[154]=v,e[155]=l,e[156]=le,e[157]=m,e[158]=o,e[159]=yt,e[160]=ee,e[161]=u,e[162]=He):He=e[162];let Ke;e[163]!==l||e[164]!==It||e[165]!==V||e[166]!==d||e[167]!==o?(Ke=d&&(0,a.jsx)(rt,{action:(0,a.jsx)(P,{"data-testid":"org-open-create-role",onClick:i(()=>{s({kind:"role-create"})},"onClick"),size:"xs",type:"button",variant:"outline",children:o("New role")}),heading:o("Roles"),testId:"org-roles",children:V.length===0?(0,a.jsx)("div",{className:"p-3",children:(0,a.jsx)(ce,{testId:"org-roles-empty",title:o("No custom roles.")})}):(0,a.jsx)(ot,{columns:It,rowActions:i(E=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{"data-testid":`org-role-edit-${S(E.id)}`,onClick:i(()=>{s({kind:"role-edit",role:E})},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Edit")}),(0,a.jsx)(P,{"data-testid":`org-role-delete-${S(E.id)}`,onClick:i(()=>{s({action:i(()=>l.deleteAuthOrgRole({roleId:S(E.id)}),"action"),kind:"confirm",message:o("Delete this custom role? Members keeping it will lose its grants."),testId:"org-role-delete",title:o("Delete role")})},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Delete")})]}),"rowActions"),rowPrefix:"org-role",rows:V})}),e[163]=l,e[164]=It,e[165]=V,e[166]=d,e[167]=o,e[168]=Ke):Ke=e[168];let Te;e[169]!==n?.kind||e[170]!==r||e[171]!==O?(Te=n?.kind==="add-member"&&(0,a.jsx)(Tt,{onClose:L,onDone:O,organizationId:r}),e[169]=n?.kind,e[170]=r,e[171]=O,e[172]=Te):Te=e[172];let Xe;e[173]!==n?.kind||e[174]!==r||e[175]!==O?(Xe=n?.kind==="invite-member"&&(0,a.jsx)(Xt,{onClose:L,onDone:O,organizationId:r}),e[173]=n?.kind,e[174]=r,e[175]=O,e[176]=Xe):Xe=e[176];let Ye;e[177]!==n||e[178]!==O?(Ye=n?.kind==="member-role"&&(0,a.jsx)(Yt,{member:n.member,onClose:L,onDone:O}),e[177]=n,e[178]=O,e[179]=Ye):Ye=e[179];let Ze;e[180]!==n?.kind||e[181]!==r||e[182]!==O?(Ze=n?.kind==="team-create"&&(0,a.jsx)(Lt,{mode:"create",onClose:L,onDone:O,organizationId:r}),e[180]=n?.kind,e[181]=r,e[182]=O,e[183]=Ze):Ze=e[183];let Ge;e[184]!==n||e[185]!==r||e[186]!==O?(Ge=n?.kind==="team-rename"&&(0,a.jsx)(Lt,{mode:"edit",onClose:L,onDone:O,organizationId:r,team:n.team}),e[184]=n,e[185]=r,e[186]=O,e[187]=Ge):Ge=e[187];let Qe;e[188]!==n||e[189]!==O?(Qe=n?.kind==="team-add-member"&&(0,a.jsx)(Zt,{onClose:L,onDone:O,teamId:n.teamId}),e[188]=n,e[189]=O,e[190]=Qe):Qe=e[190];let Ve;e[191]!==n?.kind||e[192]!==r||e[193]!==O?(Ve=n?.kind==="role-create"&&(0,a.jsx)(jt,{mode:"create",onClose:L,onDone:O,organizationId:r}),e[191]=n?.kind,e[192]=r,e[193]=O,e[194]=Ve):Ve=e[194];let We;e[195]!==n||e[196]!==r||e[197]!==O?(We=n?.kind==="role-edit"&&(0,a.jsx)(jt,{mode:"edit",onClose:L,onDone:O,organizationId:r,role:n.role}),e[195]=n,e[196]=r,e[197]=O,e[198]=We):We=e[198];let et;e[199]!==n||e[200]!==O?(et=n?.kind==="confirm"&&(0,a.jsx)(Ut,{action:n.action,message:n.message,onClose:L,onDone:O,testId:n.testId,title:n.title}),e[199]=n,e[200]=O,e[201]=et):et=e[201];let gt;return e[202]!==$e||e[203]!==Re||e[204]!==Ue||e[205]!==qe||e[206]!==Be||e[207]!==He||e[208]!==Ke||e[209]!==Te||e[210]!==Xe||e[211]!==Ye||e[212]!==Ze||e[213]!==Ge||e[214]!==Qe||e[215]!==Ve||e[216]!==We||e[217]!==et?(gt=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"org-detail",children:[$e,Re,Ue,qe,Be,He,Ke,Te,Xe,Ye,Ze,Ge,Qe,Ve,We,et]}),e[202]=$e,e[203]=Re,e[204]=Ue,e[205]=qe,e[206]=Be,e[207]=He,e[208]=Ke,e[209]=Te,e[210]=Xe,e[211]=Ye,e[212]=Ze,e[213]=Ge,e[214]=Qe,e[215]=Ve,e[216]=We,e[217]=et,e[218]=gt):gt=e[218],gt},"Qt");function Qt(t){return(0,a.jsx)(se,{children:t.head},t.head)}i(Qt,"Gt");function Vt(t){return(0,a.jsx)("span",{className:"font-mono text-xs",children:S(t.userId)})}i(Vt,"Vt");function Wt(t){return S(t.role)}i(Wt,"Wt");function er(t){return S(t.email)}i(er,"Xt");function tr(t){return S(t.role)}i(tr,"Yt");function rr(t){return S(t.status)}i(rr,"Zt");function or(t){return S(t.id)}i(or,"er");function ar(t){return S(t.name)}i(ar,"tr");function nr(t){return(0,a.jsx)("span",{className:"font-mono text-xs",children:S(t.userId)})}i(nr,"rr");function lr(t){return S(t.role)}i(lr,"or");function ir(t){return S(t.permission)}i(ir,"nr");var xr=i(()=>{let t=(0,Y.c)(62),e=re(),r=Z(),{config:d,ready:u}=Ft(),l=d.capabilities.organization,[o,n]=(0,J.useState)(null),[s,m]=(0,J.useState)(null),c;t[0]===Symbol.for("react.memo_cache_sentinel")?(c=["lunora-auth-orgs"],t[0]=c):c=t[0];let v;t[1]!==e?(v=i(()=>e.listAuthOrganizations({limit:100}),"p"),t[1]=e,t[2]=v):v=t[2];let g;t[3]!==l?(g={enabled:l},t[3]=l,t[4]=g):g=t[4];let h=ue(c,v,g),w=h.data?.rows??null,f;t[5]!==h?(f=i(()=>{h.refetch()},"b"),t[5]=h,t[6]=f):f=t[6],At(f,l);let y;t[7]===Symbol.for("react.memo_cache_sentinel")?(y=i(()=>{m(null)},"v"),t[7]=y):y=t[7];let z=y,p;t[8]!==h?(p=i(()=>{h.refetch()},"f"),t[8]=h,t[9]=p):p=t[9];let x=p,b;t[10]===Symbol.for("react.memo_cache_sentinel")?(b=i(F=>{n(F)},"h"),t[10]=b):b=t[10];let k=b;if(u&&!l){let F;t[11]!==r?(F=r("Enable the organization() plugin in your auth config to manage organizations here."),t[11]=r,t[12]=F):F=t[12];let M;t[13]!==r?(M=r("Organizations are not enabled."),t[13]=r,t[14]=M):M=t[14];let H;return t[15]!==F||t[16]!==M?(H=(0,a.jsx)(ce,{description:F,testId:"org-disabled",title:M}),t[15]=F,t[16]=M,t[17]=H):H=t[17],H}let I;t[18]!==r?(I=r("Organizations"),t[18]=r,t[19]=I):I=t[19];let C;t[20]!==I?(C=(0,a.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:I}),t[20]=I,t[21]=C):C=t[21];let N;t[22]===Symbol.for("react.memo_cache_sentinel")?(N=i(()=>{m({kind:"create"})},"z"),t[22]=N):N=t[22];let D;t[23]!==r?(D=r("New organization"),t[23]=r,t[24]=D):D=t[24];let _;t[25]!==D?(_=(0,a.jsx)(P,{"data-testid":"org-new",onClick:N,size:"sm",type:"button",children:D}),t[25]=D,t[26]=_):_=t[26];let A;t[27]!==_||t[28]!==C?(A=(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[C,_]}),t[27]=_,t[28]=C,t[29]=A):A=t[29];let $;t[30]!==h.error?($=h.error!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"org-error",role:"alert",children:h.error}),t[30]=h.error,t[31]=$):$=t[31];let R;t[32]!==w||t[33]!==r?(R=w!==null&&w.length===0&&(0,a.jsx)(ce,{testId:"org-empty",title:r("No organizations.")}),t[32]=w,t[33]=r,t[34]=R):R=t[34];let U;t[35]!==w||t[36]!==o||t[37]!==r?(U=w!==null&&w.length>0&&(0,a.jsx)(xt,{className:"overflow-hidden py-0",children:(0,a.jsx)(wt,{className:"px-0",children:(0,a.jsxs)(zt,{"data-testid":"org-table",children:[(0,a.jsx)(kt,{children:(0,a.jsxs)(tt,{children:[(0,a.jsx)(se,{children:r("id")}),(0,a.jsx)(se,{children:r("name")}),(0,a.jsx)(se,{children:r("slug")}),(0,a.jsx)(se,{children:r("created")}),(0,a.jsx)(se,{"aria-label":r("Actions")})]})}),(0,a.jsx)(Nt,{children:w.map(F=>{let M=S(F.id);return(0,a.jsxs)(tt,{"data-testid":`org-row-${M}`,children:[(0,a.jsx)(de,{className:"font-mono text-xs",children:M}),(0,a.jsx)(de,{children:S(F.name)}),(0,a.jsx)(de,{children:S(F.slug)}),(0,a.jsx)(de,{className:"text-muted-foreground tabular-nums",children:$t(F.createdAt)}),(0,a.jsx)(de,{children:(0,a.jsxs)("div",{className:"flex justify-end gap-1",children:[(0,a.jsx)(P,{"aria-pressed":o===M,"data-testid":`org-select-${M}`,onClick:i(()=>{k(M)},"onClick"),size:"xs",type:"button",variant:"ghost",children:r("Manage")}),(0,a.jsx)(P,{"data-testid":`org-edit-${M}`,onClick:i(()=>{m({kind:"edit",org:F})},"onClick"),size:"xs",type:"button",variant:"ghost",children:r("Edit")}),(0,a.jsx)(P,{"data-testid":`org-delete-${M}`,onClick:i(()=>{m({kind:"delete",org:F})},"onClick"),size:"xs",type:"button",variant:"ghost",children:r("Delete")})]})})]},M)})})]})})}),t[35]=w,t[36]=o,t[37]=r,t[38]=U):U=t[38];let K;t[39]!==d.organization||t[40]!==o?(K=o!==null&&(0,a.jsx)(Gt,{organizationId:o,rolesEnabled:d.organization.roles,teamsEnabled:d.organization.teams}),t[39]=d.organization,t[40]=o,t[41]=K):K=t[41];let q;t[42]!==s?.kind||t[43]!==x?(q=s?.kind==="create"&&(0,a.jsx)(Et,{mode:"create",onClose:z,onDone:x}),t[42]=s?.kind,t[43]=x,t[44]=q):q=t[44];let j;t[45]!==s||t[46]!==x?(j=s?.kind==="edit"&&(0,a.jsx)(Et,{mode:"edit",onClose:z,onDone:x,org:s.org}),t[45]=s,t[46]=x,t[47]=j):j=t[47];let B;t[48]!==e||t[49]!==s||t[50]!==x||t[51]!==r?(B=s?.kind==="delete"&&(0,a.jsx)(Ut,{action:i(async()=>{let F=S(s.org.id);await e.deleteAuthOrganization({organizationId:F}),n(M=>M===F?null:M)},"action"),message:r("Delete this organization? Its members, invitations, teams, and custom roles are removed. This cannot be undone."),onClose:z,onDone:x,testId:"org-delete",title:r("Delete organization")}),t[48]=e,t[49]=s,t[50]=x,t[51]=r,t[52]=B):B=t[52];let T;return t[53]!==A||t[54]!==$||t[55]!==R||t[56]!==U||t[57]!==K||t[58]!==q||t[59]!==j||t[60]!==B?(T=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-organizations",children:[A,$,R,U,K,q,j,B]}),t[53]=A,t[54]=$,t[55]=R,t[56]=U,t[57]=K,t[58]=q,t[59]=j,t[60]=B,t[61]=T):T=t[61],T},"Cr");export{xr as OrganizationsPanel};
1
+ import{a as Ft,b as ie}from"./chunk-3QRTYSSX.js";import{a as Mt}from"./chunk-ESVP44Y3.js";import{a as At}from"./chunk-54MMVNPT.js";import{a as ue}from"./chunk-XSD4Y6SQ.js";import{a as zt,b as kt,c as Nt,d as tt,e as se,f as de}from"./chunk-MIQTKZAR.js";import{a as xt,e as wt}from"./chunk-UZERI5YC.js";import{a as St}from"./chunk-V53KNYRN.js";import{a as Rt}from"./chunk-5Y3QLNWX.js";import{R as G}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as P}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{f as re}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{a as ce}from"./chunk-XQCVZAGU.js";import{d as Z,h as Ot,l as S,m as Dt,q as $t}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as i,e as Ct,f as qt,g as Bt,h as Ht}from"./chunk-3XIESWL4.js";var Y=Ct(Bt(),1);var J=Ct(qt(),1);var a=Ct(Ht(),1);var Pt=i(t=>{let e=JSON.parse(t);if(typeof e!="object"||e===null||Array.isArray(e))throw new TypeError("Expected a JSON object");return e},"Ft"),Kt=i(t=>{let e=Pt(t),r={};for(let[d,u]of Object.entries(e)){if(!Array.isArray(u)||u.some(l=>typeof l!="string"))throw new TypeError(`"${d}" must map to an array of action strings`);r[d]=u}return r},"Ut"),Jt=i(t=>t==null||t===""?"":typeof t=="string"?t:JSON.stringify(t,null,2),"Rt"),X=i(t=>{let e=(0,Y.c)(6),{children:r,htmlFor:d,label:u}=t,l;e[0]!==d||e[1]!==u?(l=(0,a.jsx)(Rt,{htmlFor:d,children:u}),e[0]=d,e[1]=u,e[2]=l):l=e[2];let o;return e[3]!==r||e[4]!==l?(o=(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[l,r]}),e[3]=r,e[4]=l,e[5]=o):o=e[5],o},"Q"),me=i(({busy:t,canSubmit:e,children:r,destructive:d=!1,error:u,onClose:l,onSubmit:o,submitLabel:n,testId:s,title:m})=>{let c=Z();return(0,a.jsxs)(Mt,{label:m,onClose:l,panelTestId:`${s}-panel`,testId:`${s}-overlay`,variant:"dialog",children:[(0,a.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:m}),r,u!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":`${s}-error`,role:"alert",children:u}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,a.jsx)(P,{"data-testid":`${s}-cancel`,onClick:l,size:"sm",type:"button",variant:"outline",children:c("Cancel")}),(0,a.jsx)(P,{"data-testid":`${s}-submit`,disabled:t||!e,onClick:o,size:"sm",type:"button",variant:d?"destructive":"default",children:t?c("Saving\u2026"):n})]})]})},"se"),Et=i(t=>{let e=(0,Y.c)(79),{mode:r,onClose:d,onDone:u,org:l}=t,o=re(),n=Z(),{busy:s,error:m,run:c}=ie(),v;e[0]!==l?(v=l?S(l.name):"",e[0]=l,e[1]=v):v=e[1];let[g,h]=(0,J.useState)(v),w;e[2]!==l?(w=l?S(l.slug):"",e[2]=l,e[3]=w):w=e[3];let[f,y]=(0,J.useState)(w),z;e[4]!==l?(z=l?S(l.logo):"",e[4]=l,e[5]=z):z=e[5];let[p,x]=(0,J.useState)(z),[b,k]=(0,J.useState)(""),I;e[6]!==r||e[7]!==l?.metadata?(I=r==="edit"?Jt(l?.metadata):"",e[6]=r,e[7]=l?.metadata,e[8]=I):I=e[8];let[C,N]=(0,J.useState)(I),D;e[9]!==o||e[10]!==p||e[11]!==C||e[12]!==r||e[13]!==g||e[14]!==d||e[15]!==u||e[16]!==l?.id||e[17]!==b||e[18]!==c||e[19]!==f?(D=i(()=>{c(async()=>{let L=C.trim()===""?void 0:Pt(C);r==="create"?await o.createAuthOrganization({logo:p.trim()===""?void 0:p.trim(),metadata:L,name:g.trim(),ownerId:b.trim()===""?void 0:b.trim(),slug:f.trim()===""?void 0:f.trim()}):await o.updateAuthOrganization({logo:p.trim()===""?void 0:p.trim(),metadata:L,name:g.trim()===""?void 0:g.trim(),organizationId:S(l?.id),slug:f.trim()===""?void 0:f.trim()}),u(),d()})},"O"),e[9]=o,e[10]=p,e[11]=C,e[12]=r,e[13]=g,e[14]=d,e[15]=u,e[16]=l?.id,e[17]=b,e[18]=c,e[19]=f,e[20]=D):D=e[20];let _=D,A;e[21]!==r||e[22]!==g?(A=g.trim()!==""||r==="edit",e[21]=r,e[22]=g,e[23]=A):A=e[23];let $;e[24]!==r||e[25]!==n?($=n(r==="create"?"Create":"Save"),e[24]=r,e[25]=n,e[26]=$):$=e[26];let R;e[27]!==r||e[28]!==n?(R=n(r==="create"?"New organization":"Edit organization"),e[27]=r,e[28]=n,e[29]=R):R=e[29];let U;e[30]!==n?(U=n("name"),e[30]=n,e[31]=U):U=e[31];let K;e[32]===Symbol.for("react.memo_cache_sentinel")?(K=i(L=>{h(L.target.value)},"q"),e[32]=K):K=e[32];let q;e[33]!==g?(q=(0,a.jsx)(G,{"data-testid":"org-form-name",id:"org-form-name",onChange:K,value:g}),e[33]=g,e[34]=q):q=e[34];let j;e[35]!==q||e[36]!==U?(j=(0,a.jsx)(X,{htmlFor:"org-form-name",label:U,children:q}),e[35]=q,e[36]=U,e[37]=j):j=e[37];let B;e[38]!==n?(B=n("Slug (optional \u2014 derived from name)"),e[38]=n,e[39]=B):B=e[39];let T;e[40]===Symbol.for("react.memo_cache_sentinel")?(T=i(L=>{y(L.target.value)},"K"),e[40]=T):T=e[40];let F;e[41]!==f?(F=(0,a.jsx)(G,{"data-testid":"org-form-slug",id:"org-form-slug",onChange:T,value:f}),e[41]=f,e[42]=F):F=e[42];let M;e[43]!==B||e[44]!==F?(M=(0,a.jsx)(X,{htmlFor:"org-form-slug",label:B,children:F}),e[43]=B,e[44]=F,e[45]=M):M=e[45];let H;e[46]!==n?(H=n("Logo URL (optional)"),e[46]=n,e[47]=H):H=e[47];let oe;e[48]===Symbol.for("react.memo_cache_sentinel")?(oe=i(L=>{x(L.target.value)},"re"),e[48]=oe):oe=e[48];let Q;e[49]!==p?(Q=(0,a.jsx)(G,{"data-testid":"org-form-logo",id:"org-form-logo",onChange:oe,value:p}),e[49]=p,e[50]=Q):Q=e[50];let V;e[51]!==H||e[52]!==Q?(V=(0,a.jsx)(X,{htmlFor:"org-form-logo",label:H,children:Q}),e[51]=H,e[52]=Q,e[53]=V):V=e[53];let W;e[54]!==r||e[55]!==b||e[56]!==n?(W=r==="create"&&(0,a.jsx)(X,{htmlFor:"org-form-owner",label:n("Owner user id (optional)"),children:(0,a.jsx)(G,{"data-testid":"org-form-owner",id:"org-form-owner",onChange:i(L=>{k(L.target.value)},"onChange"),value:b})}),e[54]=r,e[55]=b,e[56]=n,e[57]=W):W=e[57];let ee;e[58]!==n?(ee=n("Metadata (JSON, optional)"),e[58]=n,e[59]=ee):ee=e[59];let ae;e[60]===Symbol.for("react.memo_cache_sentinel")?(ae=i(L=>{N(L.target.value)},"oe"),e[60]=ae):ae=e[60];let te;e[61]!==C?(te=(0,a.jsx)(St,{"data-testid":"org-form-metadata",id:"org-form-metadata",onChange:ae,value:C}),e[61]=C,e[62]=te):te=e[62];let O;e[63]!==ee||e[64]!==te?(O=(0,a.jsx)(X,{htmlFor:"org-form-metadata",label:ee,children:te}),e[63]=ee,e[64]=te,e[65]=O):O=e[65];let ne;return e[66]!==s||e[67]!==m||e[68]!==d||e[69]!==_||e[70]!==j||e[71]!==M||e[72]!==V||e[73]!==W||e[74]!==O||e[75]!==A||e[76]!==$||e[77]!==R?(ne=(0,a.jsxs)(me,{busy:s,canSubmit:A,error:m,onClose:d,onSubmit:_,submitLabel:$,testId:"org-form",title:R,children:[j,M,V,W,O]}),e[66]=s,e[67]=m,e[68]=d,e[69]=_,e[70]=j,e[71]=M,e[72]=V,e[73]=W,e[74]=O,e[75]=A,e[76]=$,e[77]=R,e[78]=ne):ne=e[78],ne},"$t"),Tt=i(t=>{let e=(0,Y.c)(40),{onClose:r,onDone:d,organizationId:u}=t,l=re(),o=Z(),{busy:n,error:s,run:m}=ie(),[c,v]=(0,J.useState)(""),[g,h]=(0,J.useState)(""),w;e[0]!==l||e[1]!==r||e[2]!==d||e[3]!==u||e[4]!==g||e[5]!==m||e[6]!==c?(w=i(()=>{m(async()=>{await l.addAuthOrgMember({organizationId:u,role:g.trim()===""?void 0:g.trim(),userId:c.trim()}),d(),r()})},"C"),e[0]=l,e[1]=r,e[2]=d,e[3]=u,e[4]=g,e[5]=m,e[6]=c,e[7]=w):w=e[7];let f=w,y;e[8]!==c?(y=c.trim(),e[8]=c,e[9]=y):y=e[9];let z=y!=="",p;e[10]!==o?(p=o("Add member"),e[10]=o,e[11]=p):p=e[11];let x;e[12]!==o?(x=o("Add member"),e[12]=o,e[13]=x):x=e[13];let b;e[14]!==o?(b=o("User id"),e[14]=o,e[15]=b):b=e[15];let k;e[16]===Symbol.for("react.memo_cache_sentinel")?(k=i(R=>{v(R.target.value)},"x"),e[16]=k):k=e[16];let I;e[17]!==c?(I=(0,a.jsx)(G,{"data-testid":"org-add-member-user",id:"org-add-member-user",onChange:k,value:c}),e[17]=c,e[18]=I):I=e[18];let C;e[19]!==b||e[20]!==I?(C=(0,a.jsx)(X,{htmlFor:"org-add-member-user",label:b,children:I}),e[19]=b,e[20]=I,e[21]=C):C=e[21];let N;e[22]!==o?(N=o("Role (optional)"),e[22]=o,e[23]=N):N=e[23];let D;e[24]===Symbol.for("react.memo_cache_sentinel")?(D=i(R=>{h(R.target.value)},"O"),e[24]=D):D=e[24];let _;e[25]!==g?(_=(0,a.jsx)(G,{"data-testid":"org-add-member-role",id:"org-add-member-role",onChange:D,value:g}),e[25]=g,e[26]=_):_=e[26];let A;e[27]!==N||e[28]!==_?(A=(0,a.jsx)(X,{htmlFor:"org-add-member-role",label:N,children:_}),e[27]=N,e[28]=_,e[29]=A):A=e[29];let $;return e[30]!==n||e[31]!==s||e[32]!==r||e[33]!==f||e[34]!==A||e[35]!==z||e[36]!==p||e[37]!==x||e[38]!==C?($=(0,a.jsxs)(me,{busy:n,canSubmit:z,error:s,onClose:r,onSubmit:f,submitLabel:p,testId:"org-add-member",title:x,children:[C,A]}),e[30]=n,e[31]=s,e[32]=r,e[33]=f,e[34]=A,e[35]=z,e[36]=p,e[37]=x,e[38]=C,e[39]=$):$=e[39],$},"Bt"),Xt=i(t=>{let e=(0,Y.c)(40),{onClose:r,onDone:d,organizationId:u}=t,l=re(),o=Z(),{busy:n,error:s,run:m}=ie(),[c,v]=(0,J.useState)(""),[g,h]=(0,J.useState)(""),w;e[0]!==l||e[1]!==c||e[2]!==r||e[3]!==d||e[4]!==u||e[5]!==g||e[6]!==m?(w=i(()=>{m(async()=>{await l.inviteAuthOrgMember({email:c.trim(),organizationId:u,role:g.trim()===""?void 0:g.trim()}),d(),r()})},"C"),e[0]=l,e[1]=c,e[2]=r,e[3]=d,e[4]=u,e[5]=g,e[6]=m,e[7]=w):w=e[7];let f=w,y;e[8]!==c?(y=c.trim(),e[8]=c,e[9]=y):y=e[9];let z=y!=="",p;e[10]!==o?(p=o("Send invitation"),e[10]=o,e[11]=p):p=e[11];let x;e[12]!==o?(x=o("Invite member"),e[12]=o,e[13]=x):x=e[13];let b;e[14]!==o?(b=o("email"),e[14]=o,e[15]=b):b=e[15];let k;e[16]===Symbol.for("react.memo_cache_sentinel")?(k=i(R=>{v(R.target.value)},"x"),e[16]=k):k=e[16];let I;e[17]!==c?(I=(0,a.jsx)(G,{"data-testid":"org-invite-member-email",id:"org-invite-member-email",onChange:k,type:"email",value:c}),e[17]=c,e[18]=I):I=e[18];let C;e[19]!==b||e[20]!==I?(C=(0,a.jsx)(X,{htmlFor:"org-invite-member-email",label:b,children:I}),e[19]=b,e[20]=I,e[21]=C):C=e[21];let N;e[22]!==o?(N=o("Role (optional)"),e[22]=o,e[23]=N):N=e[23];let D;e[24]===Symbol.for("react.memo_cache_sentinel")?(D=i(R=>{h(R.target.value)},"O"),e[24]=D):D=e[24];let _;e[25]!==g?(_=(0,a.jsx)(G,{"data-testid":"org-invite-member-role",id:"org-invite-member-role",onChange:D,value:g}),e[25]=g,e[26]=_):_=e[26];let A;e[27]!==N||e[28]!==_?(A=(0,a.jsx)(X,{htmlFor:"org-invite-member-role",label:N,children:_}),e[27]=N,e[28]=_,e[29]=A):A=e[29];let $;return e[30]!==n||e[31]!==s||e[32]!==r||e[33]!==f||e[34]!==A||e[35]!==z||e[36]!==p||e[37]!==x||e[38]!==C?($=(0,a.jsxs)(me,{busy:n,canSubmit:z,error:s,onClose:r,onSubmit:f,submitLabel:p,testId:"org-invite-member",title:x,children:[C,A]}),e[30]=n,e[31]=s,e[32]=r,e[33]=f,e[34]=A,e[35]=z,e[36]=p,e[37]=x,e[38]=C,e[39]=$):$=e[39],$},"Ht"),Yt=i(t=>{let e=(0,Y.c)(32),{member:r,onClose:d,onDone:u}=t,l=re(),o=Z(),{busy:n,error:s,run:m}=ie(),c;e[0]!==r.role?(c=S(r.role),e[0]=r.role,e[1]=c):c=e[1];let[v,g]=(0,J.useState)(c),h;e[2]!==l||e[3]!==r.id||e[4]!==d||e[5]!==u||e[6]!==v||e[7]!==m?(h=i(()=>{m(async()=>{await l.setAuthOrgMemberRole({memberId:S(r.id),role:v.trim()}),u(),d()})},"g"),e[2]=l,e[3]=r.id,e[4]=d,e[5]=u,e[6]=v,e[7]=m,e[8]=h):h=e[8];let w=h,f;e[9]!==v?(f=v.trim(),e[9]=v,e[10]=f):f=e[10];let y=f!=="",z;e[11]!==o?(z=o("Save"),e[11]=o,e[12]=z):z=e[12];let p;e[13]!==o?(p=o("Change member role"),e[13]=o,e[14]=p):p=e[14];let x;e[15]!==o?(x=o("Role"),e[15]=o,e[16]=x):x=e[16];let b;e[17]===Symbol.for("react.memo_cache_sentinel")?(b=i(N=>{g(N.target.value)},"h"),e[17]=b):b=e[17];let k;e[18]!==v?(k=(0,a.jsx)(G,{"data-testid":"org-member-role-value",id:"org-member-role-value",onChange:b,value:v}),e[18]=v,e[19]=k):k=e[19];let I;e[20]!==x||e[21]!==k?(I=(0,a.jsx)(X,{htmlFor:"org-member-role-value",label:x,children:k}),e[20]=x,e[21]=k,e[22]=I):I=e[22];let C;return e[23]!==n||e[24]!==s||e[25]!==d||e[26]!==w||e[27]!==I||e[28]!==y||e[29]!==z||e[30]!==p?(C=(0,a.jsx)(me,{busy:n,canSubmit:y,error:s,onClose:d,onSubmit:w,submitLabel:z,testId:"org-member-role",title:p,children:I}),e[23]=n,e[24]=s,e[25]=d,e[26]=w,e[27]=I,e[28]=y,e[29]=z,e[30]=p,e[31]=C):C=e[31],C},"qt"),Lt=i(t=>{let e=(0,Y.c)(36),{mode:r,onClose:d,onDone:u,organizationId:l,team:o}=t,n=re(),s=Z(),{busy:m,error:c,run:v}=ie(),g;e[0]!==o?(g=o?S(o.name):"",e[0]=o,e[1]=g):g=e[1];let[h,w]=(0,J.useState)(g),f;e[2]!==n||e[3]!==r||e[4]!==h||e[5]!==d||e[6]!==u||e[7]!==l||e[8]!==v||e[9]!==o?.id?(f=i(()=>{v(async()=>{await(r==="create"?n.createAuthOrgTeam({name:h.trim(),organizationId:l}):n.updateAuthOrgTeam({name:h.trim(),teamId:S(o?.id)})),u(),d()})},"b"),e[2]=n,e[3]=r,e[4]=h,e[5]=d,e[6]=u,e[7]=l,e[8]=v,e[9]=o?.id,e[10]=f):f=e[10];let y=f,z;e[11]!==h?(z=h.trim(),e[11]=h,e[12]=z):z=e[12];let p=z!=="",x;e[13]!==r||e[14]!==s?(x=s(r==="create"?"Create":"Save"),e[13]=r,e[14]=s,e[15]=x):x=e[15];let b;e[16]!==r||e[17]!==s?(b=s(r==="create"?"New team":"Rename team"),e[16]=r,e[17]=s,e[18]=b):b=e[18];let k;e[19]!==s?(k=s("name"),e[19]=s,e[20]=k):k=e[20];let I;e[21]===Symbol.for("react.memo_cache_sentinel")?(I=i(_=>{w(_.target.value)},"y"),e[21]=I):I=e[21];let C;e[22]!==h?(C=(0,a.jsx)(G,{"data-testid":"org-team-form-name",id:"org-team-form-name",onChange:I,value:h}),e[22]=h,e[23]=C):C=e[23];let N;e[24]!==k||e[25]!==C?(N=(0,a.jsx)(X,{htmlFor:"org-team-form-name",label:k,children:C}),e[24]=k,e[25]=C,e[26]=N):N=e[26];let D;return e[27]!==m||e[28]!==c||e[29]!==d||e[30]!==y||e[31]!==N||e[32]!==p||e[33]!==x||e[34]!==b?(D=(0,a.jsx)(me,{busy:m,canSubmit:p,error:c,onClose:d,onSubmit:y,submitLabel:x,testId:"org-team-form",title:b,children:N}),e[27]=m,e[28]=c,e[29]=d,e[30]=y,e[31]=N,e[32]=p,e[33]=x,e[34]=b,e[35]=D):D=e[35],D},"xt"),Zt=i(t=>{let e=(0,Y.c)(30),{onClose:r,onDone:d,teamId:u}=t,l=re(),o=Z(),{busy:n,error:s,run:m}=ie(),[c,v]=(0,J.useState)(""),g;e[0]!==l||e[1]!==r||e[2]!==d||e[3]!==m||e[4]!==u||e[5]!==c?(g=i(()=>{m(async()=>{await l.addAuthOrgTeamMember({teamId:u,userId:c.trim()}),d(),r()})},"u"),e[0]=l,e[1]=r,e[2]=d,e[3]=m,e[4]=u,e[5]=c,e[6]=g):g=e[6];let h=g,w;e[7]!==c?(w=c.trim(),e[7]=c,e[8]=w):w=e[8];let f=w!=="",y;e[9]!==o?(y=o("Add member"),e[9]=o,e[10]=y):y=e[10];let z;e[11]!==o?(z=o("Add team member"),e[11]=o,e[12]=z):z=e[12];let p;e[13]!==o?(p=o("User id"),e[13]=o,e[14]=p):p=e[14];let x;e[15]===Symbol.for("react.memo_cache_sentinel")?(x=i(C=>{v(C.target.value)},"w"),e[15]=x):x=e[15];let b;e[16]!==c?(b=(0,a.jsx)(G,{"data-testid":"org-team-add-member-user",id:"org-team-add-member-user",onChange:x,value:c}),e[16]=c,e[17]=b):b=e[17];let k;e[18]!==p||e[19]!==b?(k=(0,a.jsx)(X,{htmlFor:"org-team-add-member-user",label:p,children:b}),e[18]=p,e[19]=b,e[20]=k):k=e[20];let I;return e[21]!==n||e[22]!==s||e[23]!==r||e[24]!==h||e[25]!==f||e[26]!==y||e[27]!==z||e[28]!==k?(I=(0,a.jsx)(me,{busy:n,canSubmit:f,error:s,onClose:r,onSubmit:h,submitLabel:y,testId:"org-team-add-member",title:z,children:k}),e[21]=n,e[22]=s,e[23]=r,e[24]=h,e[25]=f,e[26]=y,e[27]=z,e[28]=k,e[29]=I):I=e[29],I},"Kt"),jt=i(t=>{let e=(0,Y.c)(47),{mode:r,onClose:d,onDone:u,organizationId:l,role:o}=t,n=re(),s=Z(),{busy:m,error:c,run:v}=ie(),g;e[0]!==o?(g=o?S(o.role):"",e[0]=o,e[1]=g):g=e[1];let[h,w]=(0,J.useState)(g),f;e[2]!==r||e[3]!==o?.permission?(f=r==="edit"?Jt(o?.permission):"",e[2]=r,e[3]=o?.permission,e[4]=f):f=e[4];let[y,z]=(0,J.useState)(f),p;e[5]!==n||e[6]!==r||e[7]!==h||e[8]!==d||e[9]!==u||e[10]!==l||e[11]!==y||e[12]!==o?.id||e[13]!==v?(p=i(()=>{v(async()=>{let R=Kt(y);await(r==="create"?n.createAuthOrgRole({organizationId:l,permission:R,role:h.trim()}):n.updateAuthOrgRole({permission:R,roleId:S(o?.id)})),u(),d()})},"f"),e[5]=n,e[6]=r,e[7]=h,e[8]=d,e[9]=u,e[10]=l,e[11]=y,e[12]=o?.id,e[13]=v,e[14]=p):p=e[14];let x=p,b;e[15]!==r||e[16]!==h||e[17]!==y?(b=y.trim()!==""&&(r==="edit"||h.trim()!==""),e[15]=r,e[16]=h,e[17]=y,e[18]=b):b=e[18];let k;e[19]!==r||e[20]!==s?(k=s(r==="create"?"Create":"Save"),e[19]=r,e[20]=s,e[21]=k):k=e[21];let I;e[22]!==r||e[23]!==s?(I=s(r==="create"?"New role":"Edit role"),e[22]=r,e[23]=s,e[24]=I):I=e[24];let C;e[25]!==r||e[26]!==h||e[27]!==s?(C=r==="create"&&(0,a.jsx)(X,{htmlFor:"org-role-form-name",label:s("Role name"),children:(0,a.jsx)(G,{"data-testid":"org-role-form-name",id:"org-role-form-name",onChange:i(R=>{w(R.target.value)},"onChange"),value:h})}),e[25]=r,e[26]=h,e[27]=s,e[28]=C):C=e[28];let N;e[29]!==s?(N=s('Permission (JSON, e.g. {"project":["create","update"]})'),e[29]=s,e[30]=N):N=e[30];let D;e[31]===Symbol.for("react.memo_cache_sentinel")?(D=i(R=>{z(R.target.value)},"O"),e[31]=D):D=e[31];let _;e[32]!==y?(_=(0,a.jsx)(St,{"data-testid":"org-role-form-permission",id:"org-role-form-permission",onChange:D,value:y}),e[32]=y,e[33]=_):_=e[33];let A;e[34]!==_||e[35]!==N?(A=(0,a.jsx)(X,{htmlFor:"org-role-form-permission",label:N,children:_}),e[34]=_,e[35]=N,e[36]=A):A=e[36];let $;return e[37]!==m||e[38]!==c||e[39]!==d||e[40]!==x||e[41]!==A||e[42]!==b||e[43]!==k||e[44]!==I||e[45]!==C?($=(0,a.jsxs)(me,{busy:m,canSubmit:b,error:c,onClose:d,onSubmit:x,submitLabel:k,testId:"org-role-form",title:I,children:[C,A]}),e[37]=m,e[38]=c,e[39]=d,e[40]=x,e[41]=A,e[42]=b,e[43]=k,e[44]=I,e[45]=C,e[46]=$):$=e[46],$},"zt"),Ut=i(t=>{let e=(0,Y.c)(18),{action:r,message:d,onClose:u,onDone:l,testId:o,title:n}=t,s=Z(),{busy:m,error:c,run:v}=ie(),g;e[0]!==r||e[1]!==u||e[2]!==l||e[3]!==v?(g=i(()=>{v(async()=>{await r(),l(),u()})},"u"),e[0]=r,e[1]=u,e[2]=l,e[3]=v,e[4]=g):g=e[4];let h=g,w;e[5]!==s?(w=s("Delete"),e[5]=s,e[6]=w):w=e[6];let f;e[7]!==d?(f=(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:d}),e[7]=d,e[8]=f):f=e[8];let y;return e[9]!==m||e[10]!==c||e[11]!==u||e[12]!==h||e[13]!==w||e[14]!==f||e[15]!==o||e[16]!==n?(y=(0,a.jsx)(me,{busy:m,canSubmit:!0,destructive:!0,error:c,onClose:u,onSubmit:h,submitLabel:w,testId:o,title:n,children:f}),e[9]=m,e[10]=c,e[11]=u,e[12]=h,e[13]=w,e[14]=f,e[15]=o,e[16]=n,e[17]=y):y=e[17],y},"Tt"),rt=i(t=>{let e=(0,Y.c)(13),{action:r,children:d,heading:u,testId:l}=t,o;e[0]!==u?(o=(0,a.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:u}),e[0]=u,e[1]=o):o=e[1];let n;e[2]!==r?(n=r!==void 0&&(0,a.jsx)("div",{className:"flex items-center gap-2",children:r}),e[2]=r,e[3]=n):n=e[3];let s;e[4]!==o||e[5]!==n?(s=(0,a.jsxs)("header",{className:"flex items-center justify-between gap-2 border-b border-border px-4 py-3",children:[o,n]}),e[4]=o,e[5]=n,e[6]=s):s=e[6];let m;e[7]!==d?(m=(0,a.jsx)(wt,{className:"px-0",children:d}),e[7]=d,e[8]=m):m=e[8];let c;return e[9]!==s||e[10]!==m||e[11]!==l?(c=(0,a.jsxs)(xt,{className:"overflow-hidden py-0","data-testid":l,children:[s,m]}),e[9]=s,e[10]=m,e[11]=l,e[12]=c):c=e[12],c},"tt"),ot=i(t=>{let e=(0,Y.c)(23),{columns:r,rowActions:d,rowPrefix:u,rows:l}=t,o=Z(),n;e[0]!==r?(n=r.map(Qt),e[0]=r,e[1]=n):n=e[1];let s;e[2]!==o?(s=o("Actions"),e[2]=o,e[3]=s):s=e[3];let m;e[4]!==s?(m=(0,a.jsx)(se,{"aria-label":s}),e[4]=s,e[5]=m):m=e[5];let c;e[6]!==n||e[7]!==m?(c=(0,a.jsx)(kt,{children:(0,a.jsxs)(tt,{children:[n,m]})}),e[6]=n,e[7]=m,e[8]=c):c=e[8];let v;if(e[9]!==r||e[10]!==d||e[11]!==u||e[12]!==l){let w;e[14]!==r||e[15]!==d||e[16]!==u?(w=i(f=>{let y=S(f.id);return(0,a.jsxs)(tt,{"data-testid":`${u}-${y}`,children:[r.map(z=>(0,a.jsx)(de,{className:z.className,children:z.render(f)},z.head)),(0,a.jsx)(de,{children:(0,a.jsx)("div",{className:"flex justify-end gap-1",children:d(f)})})]},y)},"C"),e[14]=r,e[15]=d,e[16]=u,e[17]=w):w=e[17],v=l.map(w),e[9]=r,e[10]=d,e[11]=u,e[12]=l,e[13]=v}else v=e[13];let g;e[18]!==v?(g=(0,a.jsx)(Nt,{children:v}),e[18]=v,e[19]=g):g=e[19];let h;return e[20]!==c||e[21]!==g?(h=(0,a.jsxs)(zt,{children:[c,g]}),e[20]=c,e[21]=g,e[22]=h):h=e[22],h},"rt"),Gt=i(t=>{let e=(0,Y.c)(219),{organizationId:r,rolesEnabled:d,teamsEnabled:u}=t,l=re(),o=Z(),[n,s]=(0,J.useState)(null),[m,c]=(0,J.useState)(null),[v,g]=(0,J.useState)(!1),[h,w]=(0,J.useState)(null),f;e[0]!==r?(f=["lunora-auth-org-members",r],e[0]=r,e[1]=f):f=e[1];let y;e[2]!==l||e[3]!==r?(y=i(()=>l.listAuthOrgMembers({limit:200,organizationId:r}),"v"),e[2]=l,e[3]=r,e[4]=y):y=e[4];let z=ue(f,y),p;e[5]!==r?(p=["lunora-auth-org-invitations",r],e[5]=r,e[6]=p):p=e[6];let x;e[7]!==l||e[8]!==r?(x=i(()=>l.listAuthOrgInvitations({limit:200,organizationId:r}),"w"),e[7]=l,e[8]=r,e[9]=x):x=e[9];let b=ue(p,x),k;e[10]!==r?(k=["lunora-auth-org-teams",r],e[10]=r,e[11]=k):k=e[11];let I;e[12]!==l||e[13]!==r?(I=i(()=>l.listAuthOrgTeams({limit:200,organizationId:r}),"y"),e[12]=l,e[13]=r,e[14]=I):I=e[14];let C;e[15]!==u?(C={enabled:u},e[15]=u,e[16]=C):C=e[16];let N=ue(k,I,C),D;e[17]!==r?(D=["lunora-auth-org-roles",r],e[17]=r,e[18]=D):D=e[18];let _;e[19]!==l||e[20]!==r?(_=i(()=>l.listAuthOrgRoles({limit:200,organizationId:r}),"N"),e[19]=l,e[20]=r,e[21]=_):_=e[21];let A;e[22]!==d?(A={enabled:d},e[22]=d,e[23]=A):A=e[23];let $=ue(D,_,A),R;e[24]!==m?(R=["lunora-auth-org-team-members",m],e[24]=m,e[25]=R):R=e[25];let U;e[26]!==l||e[27]!==m?(U=i(()=>l.listAuthOrgTeamMembers({limit:200,teamId:m??""}),"J"),e[26]=l,e[27]=m,e[28]=U):U=e[28];let K=m!==null,q;e[29]!==K?(q={enabled:K},e[29]=K,e[30]=q):q=e[30];let j=ue(R,U,q),B;e[31]!==z.data?.rows?(B=z.data?.rows??[],e[31]=z.data?.rows,e[32]=B):B=e[32];let T=B,F;e[33]!==b.data?.rows?(F=b.data?.rows??[],e[33]=b.data?.rows,e[34]=F):F=e[34];let M=F,H;e[35]!==N.data?.rows?(H=N.data?.rows??[],e[35]=N.data?.rows,e[36]=H):H=e[36];let oe=H,Q;e[37]!==$.data?.rows?(Q=$.data?.rows??[],e[37]=$.data?.rows,e[38]=Q):Q=e[38];let V=Q,W;e[39]!==m||e[40]!==j?(W=m===null?[]:j.data?.rows??[],e[39]=m,e[40]=j,e[41]=W):W=e[41];let ee=W,ae=z.error??b.error??N.error??$.error??j.error,te;e[42]!==b||e[43]!==z||e[44]!==d||e[45]!==$||e[46]!==m||e[47]!==j||e[48]!==u||e[49]!==N?(te=i(()=>{z.refetch(),b.refetch(),u&&N.refetch(),d&&$.refetch(),m!==null&&j.refetch()},"te"),e[42]=b,e[43]=z,e[44]=d,e[45]=$,e[46]=m,e[47]=j,e[48]=u,e[49]=N,e[50]=te):te=e[50];let O=te;At(O,!0);let ne;e[51]===Symbol.for("react.memo_cache_sentinel")?(ne=i(()=>{s(null)},"ne"),e[51]=ne):ne=e[51];let L=ne,at;e[52]!==O?(at=i(E=>{Dt((async()=>{g(!0),w(null);try{await E(),O(),g(!1)}catch(ht){w(Ot(ht)),g(!1)}})())},"ot"),e[52]=O,e[53]=at):at=e[53];let le=at,nt;e[54]!==l||e[55]!==o?(nt=i(E=>{let ht=S(E.id);s({action:i(async()=>{await l.removeAuthOrgTeam({teamId:ht}),c(_t=>_t===ht?null:_t)},"action"),kind:"confirm",message:o("Delete this team and its memberships? This cannot be undone."),testId:"org-team-delete",title:o("Delete team")})},"nt"),e[54]=l,e[55]=o,e[56]=nt):nt=e[56];let bt=nt,ge;e[57]!==o?(ge=o("userId"),e[57]=o,e[58]=ge):ge=e[58];let he;e[59]!==ge?(he={head:ge,render:Vt},e[59]=ge,e[60]=he):he=e[60];let be;e[61]!==o?(be=o("role"),e[61]=o,e[62]=be):be=e[62];let fe;e[63]!==be?(fe={head:be,render:Wt},e[63]=be,e[64]=fe):fe=e[64];let lt;e[65]!==he||e[66]!==fe?(lt=[he,fe],e[65]=he,e[66]=fe,e[67]=lt):lt=e[67];let ft=lt,pe;e[68]!==o?(pe=o("email"),e[68]=o,e[69]=pe):pe=e[69];let ve;e[70]!==pe?(ve={head:pe,render:er},e[70]=pe,e[71]=ve):ve=e[71];let ye;e[72]!==o?(ye=o("role"),e[72]=o,e[73]=ye):ye=e[73];let Ie;e[74]!==ye?(Ie={head:ye,render:tr},e[74]=ye,e[75]=Ie):Ie=e[75];let Ce;e[76]!==o?(Ce=o("status"),e[76]=o,e[77]=Ce):Ce=e[77];let xe;e[78]!==Ce?(xe={head:Ce,render:rr},e[78]=Ce,e[79]=xe):xe=e[79];let it;e[80]!==ve||e[81]!==Ie||e[82]!==xe?(it=[ve,Ie,xe],e[80]=ve,e[81]=Ie,e[82]=xe,e[83]=it):it=e[83];let pt=it,we;e[84]!==o?(we=o("id"),e[84]=o,e[85]=we):we=e[85];let ze;e[86]!==we?(ze={className:"font-mono text-xs",head:we,render:or},e[86]=we,e[87]=ze):ze=e[87];let ke;e[88]!==o?(ke=o("name"),e[88]=o,e[89]=ke):ke=e[89];let Ne;e[90]!==ke?(Ne={head:ke,render:ar},e[90]=ke,e[91]=Ne):Ne=e[91];let st;e[92]!==ze||e[93]!==Ne?(st=[ze,Ne],e[92]=ze,e[93]=Ne,e[94]=st):st=e[94];let vt=st,Se;e[95]!==o?(Se=o("userId"),e[95]=o,e[96]=Se):Se=e[96];let dt;e[97]!==Se?(dt=[{head:Se,render:nr}],e[97]=Se,e[98]=dt):dt=e[98];let yt=dt,Ae;e[99]!==o?(Ae=o("role"),e[99]=o,e[100]=Ae):Ae=e[100];let _e;e[101]!==Ae?(_e={head:Ae,render:lr},e[101]=Ae,e[102]=_e):_e=e[102];let Oe;e[103]!==o?(Oe=o("Permission"),e[103]=o,e[104]=Oe):Oe=e[104];let De;e[105]!==Oe?(De={className:"font-mono text-xs whitespace-pre-wrap",head:Oe,render:ir},e[105]=Oe,e[106]=De):De=e[106];let mt;e[107]!==_e||e[108]!==De?(mt=[_e,De],e[107]=_e,e[108]=De,e[109]=mt):mt=e[109];let It=mt,$e;e[110]!==ae?($e=ae!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"org-detail-error",role:"alert",children:ae}),e[110]=ae,e[111]=$e):$e=e[111];let Re;e[112]!==h?(Re=h!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"org-action-error",role:"alert",children:h}),e[112]=h,e[113]=Re):Re=e[113];let ct;e[114]===Symbol.for("react.memo_cache_sentinel")?(ct=i(()=>{s({kind:"add-member"})},"dt"),e[114]=ct):ct=e[114];let Fe;e[115]!==o?(Fe=o("Add member"),e[115]=o,e[116]=Fe):Fe=e[116];let Me;e[117]!==Fe?(Me=(0,a.jsx)(P,{"data-testid":"org-open-add-member",onClick:ct,size:"xs",type:"button",variant:"outline",children:Fe}),e[117]=Fe,e[118]=Me):Me=e[118];let ut;e[119]===Symbol.for("react.memo_cache_sentinel")?(ut=i(()=>{s({kind:"invite-member"})},"ct"),e[119]=ut):ut=e[119];let Ee;e[120]!==o?(Ee=o("Invite member"),e[120]=o,e[121]=Ee):Ee=e[121];let Le;e[122]!==Ee?(Le=(0,a.jsx)(P,{"data-testid":"org-open-invite-member",onClick:ut,size:"xs",type:"button",variant:"outline",children:Ee}),e[122]=Ee,e[123]=Le):Le=e[123];let je;e[124]!==Me||e[125]!==Le?(je=(0,a.jsxs)(a.Fragment,{children:[Me,Le]}),e[124]=Me,e[125]=Le,e[126]=je):je=e[126];let Pe;e[127]!==o?(Pe=o("Members"),e[127]=o,e[128]=Pe):Pe=e[128];let Je;e[129]!==v||e[130]!==l||e[131]!==ft||e[132]!==T||e[133]!==le||e[134]!==o?(Je=T.length===0?(0,a.jsx)("div",{className:"p-3",children:(0,a.jsx)(ce,{testId:"org-members-empty",title:o("No members.")})}):(0,a.jsx)(ot,{columns:ft,rowActions:i(E=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{"data-testid":`org-member-role-${S(E.id)}`,onClick:i(()=>{s({kind:"member-role",member:E})},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Change role")}),(0,a.jsx)(P,{"data-testid":`org-remove-member-${S(E.id)}`,disabled:v,onClick:i(()=>{le(()=>l.removeAuthOrgMember({memberId:S(E.id)}))},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Remove")})]}),"rowActions"),rowPrefix:"org-member",rows:T}),e[129]=v,e[130]=l,e[131]=ft,e[132]=T,e[133]=le,e[134]=o,e[135]=Je):Je=e[135];let Ue;e[136]!==je||e[137]!==Pe||e[138]!==Je?(Ue=(0,a.jsx)(rt,{action:je,heading:Pe,testId:"org-members",children:Je}),e[136]=je,e[137]=Pe,e[138]=Je,e[139]=Ue):Ue=e[139];let qe;e[140]!==v||e[141]!==l||e[142]!==pt||e[143]!==M||e[144]!==le||e[145]!==o?(qe=M.length>0&&(0,a.jsx)(rt,{heading:o("Invitations"),testId:"org-invitations",children:(0,a.jsx)(ot,{columns:pt,rowActions:i(E=>(0,a.jsx)(P,{"data-testid":`org-cancel-invitation-${S(E.id)}`,disabled:v,onClick:i(()=>{le(()=>l.cancelAuthOrgInvitation({invitationId:S(E.id)}))},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Cancel")}),"rowActions"),rowPrefix:"org-invitation",rows:M})}),e[140]=v,e[141]=l,e[142]=pt,e[143]=M,e[144]=le,e[145]=o,e[146]=qe):qe=e[146];let Be;e[147]!==bt||e[148]!==m||e[149]!==o||e[150]!==vt||e[151]!==oe||e[152]!==u?(Be=u&&(0,a.jsx)(rt,{action:(0,a.jsx)(P,{"data-testid":"org-open-create-team",onClick:i(()=>{s({kind:"team-create"})},"onClick"),size:"xs",type:"button",variant:"outline",children:o("New team")}),heading:o("Teams"),testId:"org-teams",children:oe.length===0?(0,a.jsx)("div",{className:"p-3",children:(0,a.jsx)(ce,{testId:"org-teams-empty",title:o("No teams.")})}):(0,a.jsx)(ot,{columns:vt,rowActions:i(E=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{"aria-pressed":m===S(E.id),"data-testid":`org-team-select-${S(E.id)}`,onClick:i(()=>{c(S(E.id))},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Members")}),(0,a.jsx)(P,{"data-testid":`org-team-rename-${S(E.id)}`,onClick:i(()=>{s({kind:"team-rename",team:E})},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Rename")}),(0,a.jsx)(P,{"data-testid":`org-team-delete-${S(E.id)}`,onClick:i(()=>{bt(E)},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Delete")})]}),"rowActions"),rowPrefix:"org-team",rows:oe})}),e[147]=bt,e[148]=m,e[149]=o,e[150]=vt,e[151]=oe,e[152]=u,e[153]=Be):Be=e[153];let He;e[154]!==v||e[155]!==l||e[156]!==le||e[157]!==m||e[158]!==o||e[159]!==yt||e[160]!==ee||e[161]!==u?(He=u&&m!==null&&(0,a.jsx)(rt,{action:(0,a.jsx)(P,{"data-testid":"org-open-add-team-member",onClick:i(()=>{s({kind:"team-add-member",teamId:m})},"onClick"),size:"xs",type:"button",variant:"outline",children:o("Add member")}),heading:o("Team members"),testId:"org-team-members",children:ee.length===0?(0,a.jsx)("div",{className:"p-3",children:(0,a.jsx)(ce,{testId:"org-team-members-empty",title:o("No team members.")})}):(0,a.jsx)(ot,{columns:yt,rowActions:i(E=>(0,a.jsx)(P,{"data-testid":`org-team-remove-member-${S(E.id)}`,disabled:v,onClick:i(()=>{le(()=>l.removeAuthOrgTeamMember({teamMemberId:S(E.id)}))},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Remove")}),"rowActions"),rowPrefix:"org-team-member",rows:ee})}),e[154]=v,e[155]=l,e[156]=le,e[157]=m,e[158]=o,e[159]=yt,e[160]=ee,e[161]=u,e[162]=He):He=e[162];let Ke;e[163]!==l||e[164]!==It||e[165]!==V||e[166]!==d||e[167]!==o?(Ke=d&&(0,a.jsx)(rt,{action:(0,a.jsx)(P,{"data-testid":"org-open-create-role",onClick:i(()=>{s({kind:"role-create"})},"onClick"),size:"xs",type:"button",variant:"outline",children:o("New role")}),heading:o("Roles"),testId:"org-roles",children:V.length===0?(0,a.jsx)("div",{className:"p-3",children:(0,a.jsx)(ce,{testId:"org-roles-empty",title:o("No custom roles.")})}):(0,a.jsx)(ot,{columns:It,rowActions:i(E=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{"data-testid":`org-role-edit-${S(E.id)}`,onClick:i(()=>{s({kind:"role-edit",role:E})},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Edit")}),(0,a.jsx)(P,{"data-testid":`org-role-delete-${S(E.id)}`,onClick:i(()=>{s({action:i(()=>l.deleteAuthOrgRole({roleId:S(E.id)}),"action"),kind:"confirm",message:o("Delete this custom role? Members keeping it will lose its grants."),testId:"org-role-delete",title:o("Delete role")})},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Delete")})]}),"rowActions"),rowPrefix:"org-role",rows:V})}),e[163]=l,e[164]=It,e[165]=V,e[166]=d,e[167]=o,e[168]=Ke):Ke=e[168];let Te;e[169]!==n?.kind||e[170]!==r||e[171]!==O?(Te=n?.kind==="add-member"&&(0,a.jsx)(Tt,{onClose:L,onDone:O,organizationId:r}),e[169]=n?.kind,e[170]=r,e[171]=O,e[172]=Te):Te=e[172];let Xe;e[173]!==n?.kind||e[174]!==r||e[175]!==O?(Xe=n?.kind==="invite-member"&&(0,a.jsx)(Xt,{onClose:L,onDone:O,organizationId:r}),e[173]=n?.kind,e[174]=r,e[175]=O,e[176]=Xe):Xe=e[176];let Ye;e[177]!==n||e[178]!==O?(Ye=n?.kind==="member-role"&&(0,a.jsx)(Yt,{member:n.member,onClose:L,onDone:O}),e[177]=n,e[178]=O,e[179]=Ye):Ye=e[179];let Ze;e[180]!==n?.kind||e[181]!==r||e[182]!==O?(Ze=n?.kind==="team-create"&&(0,a.jsx)(Lt,{mode:"create",onClose:L,onDone:O,organizationId:r}),e[180]=n?.kind,e[181]=r,e[182]=O,e[183]=Ze):Ze=e[183];let Ge;e[184]!==n||e[185]!==r||e[186]!==O?(Ge=n?.kind==="team-rename"&&(0,a.jsx)(Lt,{mode:"edit",onClose:L,onDone:O,organizationId:r,team:n.team}),e[184]=n,e[185]=r,e[186]=O,e[187]=Ge):Ge=e[187];let Qe;e[188]!==n||e[189]!==O?(Qe=n?.kind==="team-add-member"&&(0,a.jsx)(Zt,{onClose:L,onDone:O,teamId:n.teamId}),e[188]=n,e[189]=O,e[190]=Qe):Qe=e[190];let Ve;e[191]!==n?.kind||e[192]!==r||e[193]!==O?(Ve=n?.kind==="role-create"&&(0,a.jsx)(jt,{mode:"create",onClose:L,onDone:O,organizationId:r}),e[191]=n?.kind,e[192]=r,e[193]=O,e[194]=Ve):Ve=e[194];let We;e[195]!==n||e[196]!==r||e[197]!==O?(We=n?.kind==="role-edit"&&(0,a.jsx)(jt,{mode:"edit",onClose:L,onDone:O,organizationId:r,role:n.role}),e[195]=n,e[196]=r,e[197]=O,e[198]=We):We=e[198];let et;e[199]!==n||e[200]!==O?(et=n?.kind==="confirm"&&(0,a.jsx)(Ut,{action:n.action,message:n.message,onClose:L,onDone:O,testId:n.testId,title:n.title}),e[199]=n,e[200]=O,e[201]=et):et=e[201];let gt;return e[202]!==$e||e[203]!==Re||e[204]!==Ue||e[205]!==qe||e[206]!==Be||e[207]!==He||e[208]!==Ke||e[209]!==Te||e[210]!==Xe||e[211]!==Ye||e[212]!==Ze||e[213]!==Ge||e[214]!==Qe||e[215]!==Ve||e[216]!==We||e[217]!==et?(gt=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"org-detail",children:[$e,Re,Ue,qe,Be,He,Ke,Te,Xe,Ye,Ze,Ge,Qe,Ve,We,et]}),e[202]=$e,e[203]=Re,e[204]=Ue,e[205]=qe,e[206]=Be,e[207]=He,e[208]=Ke,e[209]=Te,e[210]=Xe,e[211]=Ye,e[212]=Ze,e[213]=Ge,e[214]=Qe,e[215]=Ve,e[216]=We,e[217]=et,e[218]=gt):gt=e[218],gt},"Qt");function Qt(t){return(0,a.jsx)(se,{children:t.head},t.head)}i(Qt,"Gt");function Vt(t){return(0,a.jsx)("span",{className:"font-mono text-xs",children:S(t.userId)})}i(Vt,"Vt");function Wt(t){return S(t.role)}i(Wt,"Wt");function er(t){return S(t.email)}i(er,"Xt");function tr(t){return S(t.role)}i(tr,"Yt");function rr(t){return S(t.status)}i(rr,"Zt");function or(t){return S(t.id)}i(or,"er");function ar(t){return S(t.name)}i(ar,"tr");function nr(t){return(0,a.jsx)("span",{className:"font-mono text-xs",children:S(t.userId)})}i(nr,"rr");function lr(t){return S(t.role)}i(lr,"or");function ir(t){return S(t.permission)}i(ir,"nr");var xr=i(()=>{let t=(0,Y.c)(62),e=re(),r=Z(),{config:d,ready:u}=Ft(),l=d.capabilities.organization,[o,n]=(0,J.useState)(null),[s,m]=(0,J.useState)(null),c;t[0]===Symbol.for("react.memo_cache_sentinel")?(c=["lunora-auth-orgs"],t[0]=c):c=t[0];let v;t[1]!==e?(v=i(()=>e.listAuthOrganizations({limit:100}),"p"),t[1]=e,t[2]=v):v=t[2];let g;t[3]!==l?(g={enabled:l},t[3]=l,t[4]=g):g=t[4];let h=ue(c,v,g),w=h.data?.rows??null,f;t[5]!==h?(f=i(()=>{h.refetch()},"b"),t[5]=h,t[6]=f):f=t[6],At(f,l);let y;t[7]===Symbol.for("react.memo_cache_sentinel")?(y=i(()=>{m(null)},"v"),t[7]=y):y=t[7];let z=y,p;t[8]!==h?(p=i(()=>{h.refetch()},"f"),t[8]=h,t[9]=p):p=t[9];let x=p,b;t[10]===Symbol.for("react.memo_cache_sentinel")?(b=i(F=>{n(F)},"h"),t[10]=b):b=t[10];let k=b;if(u&&!l){let F;t[11]!==r?(F=r("Enable the organization() plugin in your auth config to manage organizations here."),t[11]=r,t[12]=F):F=t[12];let M;t[13]!==r?(M=r("Organizations are not enabled."),t[13]=r,t[14]=M):M=t[14];let H;return t[15]!==F||t[16]!==M?(H=(0,a.jsx)(ce,{description:F,testId:"org-disabled",title:M}),t[15]=F,t[16]=M,t[17]=H):H=t[17],H}let I;t[18]!==r?(I=r("Organizations"),t[18]=r,t[19]=I):I=t[19];let C;t[20]!==I?(C=(0,a.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:I}),t[20]=I,t[21]=C):C=t[21];let N;t[22]===Symbol.for("react.memo_cache_sentinel")?(N=i(()=>{m({kind:"create"})},"z"),t[22]=N):N=t[22];let D;t[23]!==r?(D=r("New organization"),t[23]=r,t[24]=D):D=t[24];let _;t[25]!==D?(_=(0,a.jsx)(P,{"data-testid":"org-new",onClick:N,size:"sm",type:"button",children:D}),t[25]=D,t[26]=_):_=t[26];let A;t[27]!==_||t[28]!==C?(A=(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[C,_]}),t[27]=_,t[28]=C,t[29]=A):A=t[29];let $;t[30]!==h.error?($=h.error!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"org-error",role:"alert",children:h.error}),t[30]=h.error,t[31]=$):$=t[31];let R;t[32]!==w||t[33]!==r?(R=w!==null&&w.length===0&&(0,a.jsx)(ce,{testId:"org-empty",title:r("No organizations.")}),t[32]=w,t[33]=r,t[34]=R):R=t[34];let U;t[35]!==w||t[36]!==o||t[37]!==r?(U=w!==null&&w.length>0&&(0,a.jsx)(xt,{className:"overflow-hidden py-0",children:(0,a.jsx)(wt,{className:"px-0",children:(0,a.jsxs)(zt,{"data-testid":"org-table",children:[(0,a.jsx)(kt,{children:(0,a.jsxs)(tt,{children:[(0,a.jsx)(se,{children:r("id")}),(0,a.jsx)(se,{children:r("name")}),(0,a.jsx)(se,{children:r("slug")}),(0,a.jsx)(se,{children:r("created")}),(0,a.jsx)(se,{"aria-label":r("Actions")})]})}),(0,a.jsx)(Nt,{children:w.map(F=>{let M=S(F.id);return(0,a.jsxs)(tt,{"data-testid":`org-row-${M}`,children:[(0,a.jsx)(de,{className:"font-mono text-xs",children:M}),(0,a.jsx)(de,{children:S(F.name)}),(0,a.jsx)(de,{children:S(F.slug)}),(0,a.jsx)(de,{className:"text-muted-foreground tabular-nums",children:$t(F.createdAt)}),(0,a.jsx)(de,{children:(0,a.jsxs)("div",{className:"flex justify-end gap-1",children:[(0,a.jsx)(P,{"aria-pressed":o===M,"data-testid":`org-select-${M}`,onClick:i(()=>{k(M)},"onClick"),size:"xs",type:"button",variant:"ghost",children:r("Manage")}),(0,a.jsx)(P,{"data-testid":`org-edit-${M}`,onClick:i(()=>{m({kind:"edit",org:F})},"onClick"),size:"xs",type:"button",variant:"ghost",children:r("Edit")}),(0,a.jsx)(P,{"data-testid":`org-delete-${M}`,onClick:i(()=>{m({kind:"delete",org:F})},"onClick"),size:"xs",type:"button",variant:"ghost",children:r("Delete")})]})})]},M)})})]})})}),t[35]=w,t[36]=o,t[37]=r,t[38]=U):U=t[38];let K;t[39]!==d.organization||t[40]!==o?(K=o!==null&&(0,a.jsx)(Gt,{organizationId:o,rolesEnabled:d.organization.roles,teamsEnabled:d.organization.teams}),t[39]=d.organization,t[40]=o,t[41]=K):K=t[41];let q;t[42]!==s?.kind||t[43]!==x?(q=s?.kind==="create"&&(0,a.jsx)(Et,{mode:"create",onClose:z,onDone:x}),t[42]=s?.kind,t[43]=x,t[44]=q):q=t[44];let j;t[45]!==s||t[46]!==x?(j=s?.kind==="edit"&&(0,a.jsx)(Et,{mode:"edit",onClose:z,onDone:x,org:s.org}),t[45]=s,t[46]=x,t[47]=j):j=t[47];let B;t[48]!==e||t[49]!==s||t[50]!==x||t[51]!==r?(B=s?.kind==="delete"&&(0,a.jsx)(Ut,{action:i(async()=>{let F=S(s.org.id);await e.deleteAuthOrganization({organizationId:F}),n(M=>M===F?null:M)},"action"),message:r("Delete this organization? Its members, invitations, teams, and custom roles are removed. This cannot be undone."),onClose:z,onDone:x,testId:"org-delete",title:r("Delete organization")}),t[48]=e,t[49]=s,t[50]=x,t[51]=r,t[52]=B):B=t[52];let T;return t[53]!==A||t[54]!==$||t[55]!==R||t[56]!==U||t[57]!==K||t[58]!==q||t[59]!==j||t[60]!==B?(T=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-organizations",children:[A,$,R,U,K,q,j,B]}),t[53]=A,t[54]=$,t[55]=R,t[56]=U,t[57]=K,t[58]=q,t[59]=j,t[60]=B,t[61]=T):T=t[61],T},"Cr");export{xr as OrganizationsPanel};
@@ -1,3 +1,3 @@
1
- import{a as q}from"./chunk-7LQWFOEU.js";import{c as k}from"./chunk-OWADN6BI.js";import{a as y,e as w}from"./chunk-UZERI5YC.js";import{a as P}from"./chunk-V53KNYRN.js";import{a as D}from"./chunk-LFXFP4IF.js";import{b as j}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as $}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{a as f}from"./chunk-GXZAXNZI.js";import{f as L}from"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{d as J,f as I,g as S,h as b,m as v}from"./chunk-4CGALXS3.js";import{b as N}from"./chunk-LE56LPNH.js";import{a,e as A,f as U,h as z}from"./chunk-3XIESWL4.js";var c=A(U(),1);var e=A(z(),1);var X=I(f.exportShard),G=I(f.importShard),H=a(m=>m.map(s=>JSON.stringify(s)).join(`
1
+ import{a as q}from"./chunk-7LQWFOEU.js";import{c as k}from"./chunk-XSD4Y6SQ.js";import{a as y,e as w}from"./chunk-UZERI5YC.js";import{a as P}from"./chunk-V53KNYRN.js";import{a as D}from"./chunk-LFXFP4IF.js";import{b as j}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as $}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{a as f}from"./chunk-GXZAXNZI.js";import{f as L}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{d as J,f as I,g as S,h as b,m as v}from"./chunk-4CGALXS3.js";import{b as N}from"./chunk-LE56LPNH.js";import{a,e as A,f as U,h as z}from"./chunk-3XIESWL4.js";var c=A(U(),1);var e=A(z(),1);var X=I(f.exportShard),G=I(f.importShard),H=a(m=>m.map(s=>JSON.stringify(s)).join(`
2
2
  `),"X"),Q=a(m=>{let s=[],x=m.split(`
3
3
  `);for(let[t,l]of x.entries()){let h=l.trim();if(h==="")continue;let n=JSON.parse(h);if(typeof n!="object"||n===null)throw new N("INTERNAL",`line ${(t+1).toString()}: expected a { table, doc } object`);let o=n;if(typeof o.table!="string"||typeof o.doc!="object"||o.doc===null||Array.isArray(o.doc))throw new N("INTERNAL",`line ${(t+1).toString()}: expected a { table, doc } object`);s.push(o)}return s},"z"),ie=a(({initialShardKey:m})=>{let s=L(),x=k(),t=J(),[l,h]=(0,c.useState)(m??""),[n,o]=(0,c.useState)(""),[E,p]=(0,c.useState)(!1),[C,u]=(0,c.useState)(null),[i,g]=(0,c.useState)(null),[O,T]=(0,c.useState)(null),R=a(async()=>{p(!0),u(null),g(null);try{let r=await s.query(X,{},S(l));j(l),o(H(r.rows)),T(r.rows.length)}catch(r){u(b(r))}finally{p(!1)}},"T"),_=a(async()=>{p(!0),u(null),g(null),T(null);let r;try{r=Q(n)}catch(d){u(t("Invalid NDJSON: {message}",{message:b(d)})),p(!1);return}try{let d=await s.query(G,{rows:r},S(l));j(l),g(d),x(f.readTablePage),x(f.listTables)}catch(d){u(b(d))}finally{p(!1)}},"C"),B=i===null?0:Object.values(i.inserted).reduce((r,d)=>r+d,0),F=a(()=>{v(R())},"k"),K=a(()=>{v(_())},"J"),M=a(r=>{o(r.target.value)},"q");return(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-export-import",children:[(0,e.jsxs)(y,{className:"rounded-xl border border-border bg-card shadow-xs",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Export")})}),(0,e.jsxs)(w,{className:"flex flex-col gap-3 p-4",children:[(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,e.jsx)(D,{onChange:h,testId:"ei-shard-input",value:l}),(0,e.jsx)($,{"data-testid":"ei-export",disabled:E,onClick:F,type:"button",children:t("Export")})]}),O!==null&&(0,e.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"ei-export-result",children:t("Exported {count} rows.",{count:O})})]})]}),(0,e.jsxs)(y,{className:"rounded-xl border border-border bg-card shadow-xs",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Import")})}),(0,e.jsxs)(w,{className:"flex flex-col gap-3 p-4",children:[(0,e.jsx)(P,{"aria-label":"NDJSON",className:"font-mono text-xs min-h-40 rounded-md","data-testid":"ei-ndjson",onChange:M,placeholder:'{"table":"messages","doc":{\u2026}}',value:n}),(0,e.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,e.jsx)(q,{confirmLabel:t("Import (writes rows)?"),disabled:E||n.trim()==="",onConfirm:K,testId:"ei-import",children:t("Import")})}),i!==null&&(0,e.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ei-import-result",children:[(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:t("Inserted {inserted}, {conflicts} conflicts, {errors} errors.",{conflicts:i.conflicts,errors:i.errors.length,inserted:B})}),i.errors.length>0&&(0,e.jsx)("ul",{className:"flex flex-col gap-1","data-testid":"ei-import-errors",children:i.errors.map(r=>(0,e.jsx)("li",{className:"text-xs text-destructive",children:t("line {line} ({table}): {message}",{line:r.line,message:r.message,table:r.table})},`${r.table}-${r.line.toString()}`))})]})]})]}),C!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"ei-error",role:"alert",children:C})]})},"ne");export{ie as ExportImportPanel};
@@ -1 +1 @@
1
- import{a as z}from"./chunk-QWGT25SE.js";import{a as be}from"./chunk-X2FQ6B5V.js";import{a as we}from"./chunk-ZJGP6EKR.js";import{a as te}from"./chunk-SKHEGARW.js";import{b as xe}from"./chunk-AVAC26HJ.js";import{a as U}from"./chunk-LFKCLLPT.js";import{a as ge}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b as Z}from"./chunk-OWADN6BI.js";import{a as fe,b as pe,c as ve,d as re,e as T,f as M}from"./chunk-MIQTKZAR.js";import{a as he}from"./chunk-LFXFP4IF.js";import{b as me}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as q}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as ce}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as $}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as ee}from"./chunk-GXZAXNZI.js";import{f as de}from"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{a as D}from"./chunk-XQCVZAGU.js";import{d as H,h as J,i as ue,m as X}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as n,e as Y,f as Be,g as Ve,h as Ge,j as _}from"./chunk-3XIESWL4.js";var F=Y(Ve(),1);var b=Y(Be(),1);var t=Y(Ge(),1);var Ce=["trace","debug","log","info","warn","error","fatal"],Qe="LOG_ARCHIVE_NOT_CONFIGURED",Le={debug:"secondary",error:"destructive",fatal:"destructive",info:"outline",log:"outline",trace:"outline",warn:"secondary"},Ye={cursor:void 0,error:null,loading:!1,notConfigured:!1,rows:null},He=n((l,e)=>{switch(e.type){case"append":return{...l,cursor:e.cursor,error:null,loading:!1,rows:[...l.rows??[],...e.rows]};case"failed":return{cursor:void 0,error:e.message,loading:!1,notConfigured:!1,rows:null};case"loaded":return{cursor:e.cursor,error:null,loading:!1,notConfigured:!1,rows:e.rows};case"loading":return{...l,error:null,loading:!0,notConfigured:!1};case"notConfigured":return{cursor:void 0,error:null,loading:!1,notConfigured:!0,rows:null};case"pageFailed":return{...l,error:e.message,loading:!1};default:return l}},"Je"),Je=n(l=>{let e=(0,F.c)(33),{row:r}=l,o;e[0]!==r.fields?(o=z(r.fields),e[0]=r.fields,e[1]=o):o=e[1];let i=o,a=`lg-archive-row-${String(r.ts)}`,d;e[2]!==r.ts?(d=new Date(r.ts).toLocaleString(),e[2]=r.ts,e[3]=d):d=e[3];let m;e[4]!==d?(m=(0,t.jsx)(M,{className:"tabular-nums whitespace-nowrap text-xs text-muted-foreground",children:d}),e[4]=d,e[5]=m):m=e[5];let x=Le[r.level],u;e[6]!==r.level||e[7]!==x?(u=(0,t.jsx)(M,{children:(0,t.jsx)($,{variant:x,children:r.level})}),e[6]=r.level,e[7]=x,e[8]=u):u=e[8];let c;e[9]!==r.functionPath?(c=(0,t.jsx)(M,{className:"font-mono text-xs",children:r.functionPath}),e[9]=r.functionPath,e[10]=c):c=e[10];let w;e[11]!==r.message?(w=(0,t.jsx)("div",{className:"truncate",title:r.message,children:r.message}),e[11]=r.message,e[12]=w):w=e[12];let p;e[13]!==i?(p=i!==""&&(0,t.jsx)("div",{className:"truncate font-mono text-[11px] text-muted-foreground",title:i,children:i}),e[13]=i,e[14]=p):p=e[14];let h;e[15]!==w||e[16]!==p?(h=(0,t.jsxs)(M,{className:"max-w-md",children:[w,p]}),e[15]=w,e[16]=p,e[17]=h):h=e[17];let g=r.traceId??"\u2014",v;e[18]!==g?(v=(0,t.jsx)(M,{className:"font-mono text-[11px] text-muted-foreground",children:g}),e[18]=g,e[19]=v):v=e[19];let C=r.shardKey??"\u2014",f;e[20]!==C?(f=(0,t.jsx)(M,{className:"font-mono text-[11px] text-muted-foreground",children:C}),e[20]=C,e[21]=f):f=e[21];let y=r.userId??"\u2014",N;e[22]!==y?(N=(0,t.jsx)(M,{className:"font-mono text-[11px] text-muted-foreground",children:y}),e[22]=y,e[23]=N):N=e[23];let L;return e[24]!==h||e[25]!==v||e[26]!==f||e[27]!==N||e[28]!==a||e[29]!==m||e[30]!==u||e[31]!==c?(L=(0,t.jsxs)(re,{"data-testid":a,children:[m,u,c,h,v,f,N]}),e[24]=h,e[25]=v,e[26]=f,e[27]=N,e[28]=a,e[29]=m,e[30]=u,e[31]=c,e[32]=L):L=e[32],L},"Xe"),Xe=n(({shardKey:l})=>{let e=de(),r=H(),[o,i]=(0,b.useState)(""),[a,d]=(0,b.useState)(""),[m,x]=(0,b.useState)(""),[{cursor:u,error:c,loading:w,notConfigured:p,rows:h},g]=(0,b.useReducer)(He,Ye),v=U(o.trim(),400),C=U(a.trim(),400),f={...v===""?{}:{functionPathPrefix:v},...m===""?{}:{minLevel:m},...l===""?{}:{shardKey:l},...C===""?{}:{userId:C}},y=JSON.stringify(f),N=(0,b.useRef)(y);(0,b.useEffect)(()=>{let k={cancelled:!1};return N.current=y,X((async()=>{g({type:"loading"});try{let S=await e.queryLogArchive(f);k.cancelled||g({cursor:S.nextCursor,rows:S.rows,type:"loaded"})}catch(S){k.cancelled||g(ue(S)===Qe?{type:"notConfigured"}:{message:J(S),type:"failed"})}})()),()=>{k.cancelled=!0}},[e,y]);let L=n(async()=>{if(u===void 0)return;let k=y;g({type:"loading"});try{let S=await e.queryLogArchive({...f,cursor:u});N.current===k&&g({cursor:S.nextCursor,rows:S.rows,type:"append"})}catch(S){N.current===k&&g({message:J(S),type:"pageFailed"})}},"C"),P=n(k=>{i(k.target.value)},"R"),I=n(k=>{d(k.target.value)},"S"),R=n(k=>{x(k.target.value)},"I"),E=n(()=>{X(L())},"E");return p?(0,t.jsx)(D,{action:(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline",href:te,rel:"noreferrer",target:"_blank",children:r("Open in Cloudflare")}),description:r("Wire pipelineLogSink to a Cloudflare Pipeline \u2192 R2 Data Catalog table and set R2_SQL_ACCOUNT_ID, R2_SQL_TOKEN, R2_SQL_BUCKET to browse the durable log archive here."),testId:"lg-archive-not-configured",title:r("Log archive not configured")}):(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lg-archive",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(q,{"aria-label":r("Function path prefix"),className:"h-8 w-48","data-testid":"lg-archive-path",onChange:P,placeholder:r("function path\u2026"),value:o}),(0,t.jsx)(q,{"aria-label":r("User id"),className:"h-8 w-40","data-testid":"lg-archive-user",onChange:I,placeholder:r("user id\u2026"),value:a}),(0,t.jsxs)("select",{"aria-label":r("Minimum level"),className:"h-8 rounded-md border border-border bg-background px-2 text-sm","data-testid":"lg-archive-min-level",onChange:R,value:m,children:[(0,t.jsx)("option",{value:"",children:r("min level")}),Ce.map(k=>(0,t.jsx)("option",{value:k,children:k},k))]})]}),c!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"lg-archive-error",role:"alert",children:c}),w&&h===null&&c===null&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"lg-archive-loading",children:r("Loading\u2026")}),h!==null&&h.length===0&&(0,t.jsx)(D,{description:r("No archived logs match these filters. The durable archive fills as pipelineLogSink flushes records to R2."),testId:"lg-archive-empty",title:r("No archived logs.")}),h!==null&&h.length>0&&(0,t.jsx)("div",{className:"overflow-hidden rounded-xl border border-border shadow-xs",children:(0,t.jsxs)(fe,{"data-testid":"lg-archive-table",children:[(0,t.jsx)(pe,{children:(0,t.jsxs)(re,{children:[(0,t.jsx)(T,{children:r("Time")}),(0,t.jsx)(T,{children:r("Level")}),(0,t.jsx)(T,{children:r("Function")}),(0,t.jsx)(T,{children:r("Message")}),(0,t.jsx)(T,{children:r("Trace")}),(0,t.jsx)(T,{children:r("Shard")}),(0,t.jsx)(T,{children:r("User")})]})}),(0,t.jsx)(ve,{children:h.map((k,S)=>(0,t.jsx)(Je,{row:k},`${String(k.ts)}-${String(S)}`))})]})}),u!==void 0&&(0,t.jsx)("div",{children:(0,t.jsx)(ce,{"data-testid":"lg-archive-more",disabled:w,onClick:E,size:"sm",variant:"outline",children:r(w?"Loading\u2026":"Load more")})})]})},"Ze"),ae=400,Ze=36,er={height:ae,overflow:"auto"},Se={left:0,position:"absolute",top:0,width:"100%"},rr={error:"destructive",ok:"secondary"},tr=n(l=>{let e=(0,F.c)(26),{entry:r,index:o,measureRef:i,start:a}=l,d=`translateY(${String(a)}px)`,m;e[0]!==d?(m={...Se,transform:d},e[0]=d,e[1]=m):m=e[1];let x=m,u;e[2]!==r.fields?(u=z(r.fields),e[2]=r.fields,e[3]=u):u=e[3];let c=u,w;e[4]!==r.timestamp?(w=new Date(r.timestamp).toLocaleString(),e[4]=r.timestamp,e[5]=w):w=e[5];let p;e[6]!==w?(p=(0,t.jsx)("span",{className:"w-44 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:w}),e[6]=w,e[7]=p):p=e[7];let h=Le[r.level],g;e[8]!==r.level||e[9]!==h?(g=(0,t.jsx)("span",{className:"w-20 shrink-0",role:"gridcell",children:(0,t.jsx)($,{variant:h,children:r.level})}),e[8]=r.level,e[9]=h,e[10]=g):g=e[10];let v=r.functionPath??"\u2014",C;e[11]!==v?(C=(0,t.jsx)("span",{className:"w-48 shrink-0 truncate text-muted-foreground",role:"gridcell",children:v}),e[11]=v,e[12]=C):C=e[12];let f;e[13]!==c?(f=c===""?null:(0,t.jsx)("span",{className:"ml-2 text-muted-foreground","data-testid":"lg-fields",children:c}),e[13]=c,e[14]=f):f=e[14];let y;e[15]!==r.message||e[16]!==f?(y=(0,t.jsxs)("span",{className:"flex-1 truncate",role:"gridcell",children:[r.message,f]}),e[15]=r.message,e[16]=f,e[17]=y):y=e[17];let N;return e[18]!==o||e[19]!==i||e[20]!==x||e[21]!==y||e[22]!==p||e[23]!==g||e[24]!==C?(N=(0,t.jsxs)("div",{className:"flex items-center border-b border-border px-3 py-1.5 font-mono text-xs hover:bg-muted/50","data-index":o,"data-testid":"lg-row",ref:i,role:"row",style:x,children:[p,g,C,y]}),e[18]=o,e[19]=i,e[20]=x,e[21]=y,e[22]=p,e[23]=g,e[24]=C,e[25]=N):N=e[25],N},"ar"),ye=n(l=>l.length===0?"\u2014":l.join(", "),"oe"),ar=n(l=>{let e=(0,F.c)(37),{entry:r,index:o,measureRef:i,start:a}=l,d=`translateY(${String(a)}px)`,m;e[0]!==d?(m={...Se,transform:d},e[0]=d,e[1]=m):m=e[1];let x=m,u;e[2]!==r.ts?(u=new Date(r.ts).toLocaleString(),e[2]=r.ts,e[3]=u):u=e[3];let c;e[4]!==u?(c=(0,t.jsx)("span",{className:"w-40 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:u}),e[4]=u,e[5]=c):c=e[5];let w=rr[r.outcome],p;e[6]!==r.outcome||e[7]!==w?(p=(0,t.jsx)("span",{className:"w-16 shrink-0",role:"gridcell",children:(0,t.jsx)($,{variant:w,children:r.outcome})}),e[6]=r.outcome,e[7]=w,e[8]=p):p=e[8];let h;e[9]!==r.functionPath?(h=(0,t.jsx)("span",{className:"w-44 shrink-0 truncate",role:"gridcell",title:r.functionPath,children:r.functionPath}),e[9]=r.functionPath,e[10]=h):h=e[10];let g=r.shardKey??"\u2014",v;e[11]!==g?(v=(0,t.jsx)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",role:"gridcell",children:g}),e[11]=g,e[12]=v):v=e[12];let C=r.userId??"\u2014",f;e[13]!==C?(f=(0,t.jsx)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",role:"gridcell",children:C}),e[13]=C,e[14]=f):f=e[14];let y;e[15]!==r.durationMs?(y=Math.round(r.durationMs),e[15]=r.durationMs,e[16]=y):y=e[16];let N=`${String(y)}ms`,L;e[17]!==N?(L=(0,t.jsx)("span",{className:"w-16 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:N}),e[17]=N,e[18]=L):L=e[18];let P;e[19]!==r.errorMessage||e[20]!==r.outcome||e[21]!==r.tablesRead||e[22]!==r.tablesWritten?(P=r.outcome==="error"&&r.errorMessage!==void 0?r.errorMessage:`r:${ye(r.tablesRead)} \xB7 w:${ye(r.tablesWritten)}`,e[19]=r.errorMessage,e[20]=r.outcome,e[21]=r.tablesRead,e[22]=r.tablesWritten,e[23]=P):P=e[23];let I;e[24]!==P?(I=(0,t.jsx)("span",{className:"flex-1 truncate text-muted-foreground",role:"gridcell",children:P}),e[24]=P,e[25]=I):I=e[25];let R;return e[26]!==o||e[27]!==i||e[28]!==x||e[29]!==f||e[30]!==L||e[31]!==I||e[32]!==c||e[33]!==p||e[34]!==h||e[35]!==v?(R=(0,t.jsxs)("div",{className:"flex items-center border-b border-border px-3 py-1.5 font-mono text-xs hover:bg-muted/50","data-index":o,"data-testid":"lg-req-row",ref:i,role:"row",style:x,children:[c,p,h,v,f,L,I]}),e[26]=o,e[27]=i,e[28]=x,e[29]=f,e[30]=L,e[31]=I,e[32]=c,e[33]=p,e[34]=h,e[35]=v,e[36]=R):R=e[36],R},"lr"),Ne=n(l=>{let{entries:e}=l??{};return Array.isArray(e)?e:[]},"se"),lr=n(l=>{let e={};return l.functionPathPrefix.trim()!==""&&(e.functionPathPrefix=l.functionPathPrefix.trim()),l.userId.trim()!==""&&(e.userId=l.userId.trim()),l.tableTouched.trim()!==""&&(e.tableTouched=l.tableTouched.trim()),(l.outcome==="ok"||l.outcome==="error")&&(e.outcome=l.outcome),e},"or"),Ie=Ce,sr={"5m":300*1e3,"15m":900*1e3,"1h":3600*1e3},or=n((l,e)=>{let r=e.search.trim().toLowerCase(),o=e.path.trim().toLowerCase(),i=e.range==="all"?Number.NEGATIVE_INFINITY:e.now-sr[e.range];return l.filter(a=>e.levels.size>0&&!e.levels.has(a.level)||a.timestamp<i||o!==""&&!(a.functionPath??"").toLowerCase().includes(o)?!1:r===""||a.message.toLowerCase().includes(r)||z(a.fields).toLowerCase().includes(r))},"nr"),nr="\u2014",ir=n(l=>{let e=new Map,r=new Map;for(let a of l){e.set(a.level,(e.get(a.level)??0)+1);let d=a.functionPath??nr;r.set(d,(r.get(d)??0)+1)}let o=Ie.filter(a=>e.has(a)).map(a=>({count:e.get(a)??0,key:a})),i=[...r.entries()].map(([a,d])=>({count:d,key:a})).toSorted((a,d)=>d.count===a.count?a.key.localeCompare(d.key):d.count-a.count);return{byLevel:o,byPath:i,total:l.length}},"dr"),dr=n(l=>{let e=(0,F.c)(11),{level:r,onToggle:o,selected:i}=l,a;e[0]!==r||e[1]!==o?(a=n(()=>{o(r)},"a"),e[0]=r,e[1]=o,e[2]=a):a=e[2];let d=a,m=i?"border-border bg-muted font-medium":"border-input text-muted-foreground",x;e[3]!==m?(x=_("rounded-md border px-2 py-1 text-xs",m),e[3]=m,e[4]=x):x=e[4];let u=`logs-level-${r}`,c;return e[5]!==r||e[6]!==d||e[7]!==i||e[8]!==x||e[9]!==u?(c=(0,t.jsx)("button",{"aria-pressed":i,className:x,"data-testid":u,onClick:d,type:"button",children:r}),e[5]=r,e[6]=d,e[7]=i,e[8]=x,e[9]=u,e[10]=c):c=e[10],c},"cr"),ke=n(l=>{let e=(0,F.c)(7),{bucket:r}=l,o;e[0]!==r.key?(o=(0,t.jsx)("span",{className:"truncate text-muted-foreground",role:"gridcell",children:r.key}),e[0]=r.key,e[1]=o):o=e[1];let i;e[2]!==r.count?(i=(0,t.jsx)("span",{className:"shrink-0 tabular-nums",role:"gridcell",children:r.count}),e[2]=r.count,e[3]=i):i=e[3];let a;return e[4]!==o||e[5]!==i?(a=(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 px-3 py-1 font-mono text-xs","data-testid":"logs-summary-row",role:"row",children:[o,i]}),e[4]=o,e[5]=i,e[6]=a):a=e[6],a},"ne"),qr=n(({initialShardKey:l})=>{let e=H(),[r,o]=(0,b.useState)("requests"),[i,a]=(0,b.useState)(l??""),[d,m]=(0,b.useState)(""),[x,u]=(0,b.useState)(()=>new Set),[c,w]=(0,b.useState)(""),[p,h]=(0,b.useState)("all"),[g,v]=(0,b.useState)(!1),[C,f]=(0,b.useState)(""),[y,N]=(0,b.useState)(""),[L,P]=(0,b.useState)(""),[I,R]=(0,b.useState)("all"),E=U(i.trim(),400),k=lr({functionPathPrefix:C,outcome:I,tableTouched:L,userId:y}),S=Z(ee.getRequestLog,k,{enabled:r==="requests",live:!0,shardKey:E}),le=Z(ee.getLogs,{},{enabled:r==="errors",live:!0,shardKey:E}),W=r==="requests"?S:le,{error:se,errorSource:Pe,isLoading:oe,liveError:Re}=W,qe=Ne(le.data),ne=Ne(S.data);(0,b.useEffect)(()=>{W.data!==void 0&&me(E)},[W.data,E]);let j=or(qe,{levels:x,now:Date.now(),path:c,range:p,search:d}),B=ir(j),V=r==="requests"?ne.length:j.length,G=r==="errors"&&g,K=(0,b.useMemo)(()=>se!==null?"error":V===0?oe?G?"summary":"list":"empty":G?"summary":"list",[V,oe,se,G]),ie=(0,b.useRef)(null),A=xe({count:V,estimateSize:n(()=>Ze,"estimateSize"),getScrollElement:n(()=>ie.current,"getScrollElement"),initialRect:{height:ae,width:800},observeElementRect:n((s,Q)=>we(s,Q,ae),"observeElementRect"),overscan:8}),Te=A.getVirtualItems(),Me={height:A.getTotalSize(),position:"relative",width:"100%"},Ee=n(s=>{m(s.target.value)},"Ne"),_e=n(s=>{u(Q=>{let O=new Set(Q);return O.has(s)?O.delete(s):O.add(s),O})},"Le"),Fe=n(s=>{w(s.target.value)},"Ce"),Ke=n(s=>{h(s.target.value)},"ke"),Ae=n(()=>{v(s=>!s)},"$e"),Oe=n(s=>{f(s.target.value)},"Se"),$e=n(s=>{N(s.target.value)},"Re"),De=n(s=>{P(s.target.value)},"Ie"),Ue=n(s=>{R(s.target.value)},"Ee"),ze=n(()=>{o("requests"),v(!1)},"Pe"),We=n(()=>{o("errors"),v(!1)},"Te"),je=n(()=>{o("archive"),v(!1)},"_e");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-logs",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("div",{className:"inline-flex overflow-hidden rounded-lg border border-border",role:"tablist",children:[(0,t.jsx)("button",{"aria-selected":r==="requests",className:_("px-3 py-1 text-sm",r==="requests"?"bg-muted font-medium":"text-muted-foreground"),"data-testid":"lg-view-requests",onClick:ze,role:"tab",type:"button",children:e("Requests")}),(0,t.jsx)("button",{"aria-selected":r==="errors",className:_("px-3 py-1 text-sm",r==="errors"?"bg-muted font-medium":"text-muted-foreground"),"data-testid":"lg-view-errors",onClick:We,role:"tab",type:"button",children:e("Errors")}),(0,t.jsx)("button",{"aria-selected":r==="archive",className:_("px-3 py-1 text-sm",r==="archive"?"bg-muted font-medium":"text-muted-foreground"),"data-testid":"lg-view-archive",onClick:je,role:"tab",type:"button",children:e("Archive")})]}),(0,t.jsx)(he,{onChange:a,testId:"lg-shard-input",value:i}),r!=="archive"&&(0,t.jsx)(be,{message:Re,prefix:"lg"}),(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"lg-cf-link",href:te,rel:"noreferrer",target:"_blank",children:e("Open in Cloudflare")})]}),r==="errors"&&(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(q,{"aria-label":e("Search messages"),className:"h-8 w-48","data-testid":"lg-search",onChange:Ee,placeholder:e("search message"),value:d}),(0,t.jsx)(q,{"aria-label":e("Function path"),className:"h-8 w-40","data-testid":"logs-path-filter",onChange:Fe,placeholder:e("filter path"),value:c}),(0,t.jsx)("div",{"aria-label":e("Level filter"),className:"inline-flex items-center gap-1","data-testid":"logs-level-filter",role:"group",children:Ie.map(s=>(0,t.jsx)(dr,{level:s,onToggle:_e,selected:x.has(s)},s))}),(0,t.jsxs)("select",{"aria-label":e("Time range"),className:"h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none","data-testid":"logs-time-range",onChange:Ke,value:p,children:[(0,t.jsx)("option",{value:"all",children:e("All time")}),(0,t.jsx)("option",{value:"5m",children:e("Last 5m")}),(0,t.jsx)("option",{value:"15m",children:e("Last 15m")}),(0,t.jsx)("option",{value:"1h",children:e("Last hour")})]}),(0,t.jsx)("button",{"aria-pressed":g,className:_("h-8 rounded-md border px-3 text-sm",g?"border-border bg-muted font-medium":"border-input text-muted-foreground"),"data-testid":"logs-summary-toggle",onClick:Ae,type:"button",children:e(g?"List":"Summary")})]}),r==="requests"&&(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(q,{"aria-label":e("Function path"),className:"h-8 w-44","data-testid":"lg-req-path",onChange:Oe,placeholder:e("file:function"),value:C}),(0,t.jsx)(q,{"aria-label":e("User id"),className:"h-8 w-32","data-testid":"lg-req-user",onChange:$e,placeholder:e("userId"),value:y}),(0,t.jsx)(q,{"aria-label":e("Table touched"),className:"h-8 w-32","data-testid":"lg-req-table",onChange:De,placeholder:e("table"),value:L}),(0,t.jsxs)("select",{"aria-label":e("Outcome filter"),className:"h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none","data-testid":"lg-req-outcome",onChange:Ue,value:I,children:[(0,t.jsx)("option",{value:"all",children:e("all")}),(0,t.jsx)("option",{value:"ok",children:e("ok")}),(0,t.jsx)("option",{value:"error",children:e("error")})]})]}),r==="archive"?(0,t.jsx)(Xe,{shardKey:E}):(0,t.jsxs)(t.Fragment,{children:[K==="error"&&(0,t.jsx)(ge,{error:Pe,testId:"lg-error"}),K==="empty"&&(0,t.jsx)(D,{description:e("Function and request logs for this shard show up here as your app handles traffic."),icon:(0,t.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsx)("path",{d:"M4 5h16M4 12h16M4 19h10"})}),testId:"lg-empty",title:e("No logs.")}),K==="summary"&&(0,t.jsxs)("div",{className:"flex flex-col gap-4 rounded-xl border border-border bg-card p-4 shadow-xs","data-testid":"logs-summary",children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"logs-summary-total",children:e("{count} entries",{count:B.total})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"mb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:e("By level")}),(0,t.jsx)("div",{className:"overflow-hidden rounded-lg border border-border","data-testid":"logs-summary-levels",role:"grid",children:B.byLevel.map(s=>(0,t.jsx)(ke,{bucket:s},s.key))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"mb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:e("By function")}),(0,t.jsx)("div",{className:"overflow-hidden rounded-lg border border-border","data-testid":"logs-summary-paths",role:"grid",children:B.byPath.map(s=>(0,t.jsx)(ke,{bucket:s},s.key))})]})]}),K==="list"&&(0,t.jsx)("div",{className:"rounded-xl border border-border shadow-xs","data-testid":"lg-scroll",ref:ie,style:er,children:(0,t.jsx)("div",{"aria-label":e("Recent logs"),"data-testid":"lg-table",role:"grid",style:Me,children:Te.map(s=>r==="requests"?(0,t.jsx)(ar,{entry:ne[s.index],index:s.index,measureRef:A.measureElement,start:s.start},s.key):(0,t.jsx)(tr,{entry:j[s.index],index:s.index,measureRef:A.measureElement,start:s.start},s.key))})})]})]})},"qr");export{qr as LogsPanel,or as filterLogs,ir as summarizeLogs};
1
+ import{a as z}from"./chunk-QWGT25SE.js";import{a as be}from"./chunk-X2FQ6B5V.js";import{a as we}from"./chunk-ZJGP6EKR.js";import{a as te}from"./chunk-SKHEGARW.js";import{b as xe}from"./chunk-AVAC26HJ.js";import{a as U}from"./chunk-LFKCLLPT.js";import{a as ge}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b as Z}from"./chunk-XSD4Y6SQ.js";import{a as fe,b as pe,c as ve,d as re,e as T,f as M}from"./chunk-MIQTKZAR.js";import{a as he}from"./chunk-LFXFP4IF.js";import{b as me}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as q}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as ce}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as $}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as ee}from"./chunk-GXZAXNZI.js";import{f as de}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{a as D}from"./chunk-XQCVZAGU.js";import{d as H,h as J,i as ue,m as X}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as n,e as Y,f as Be,g as Ve,h as Ge,j as _}from"./chunk-3XIESWL4.js";var F=Y(Ve(),1);var b=Y(Be(),1);var t=Y(Ge(),1);var Ce=["trace","debug","log","info","warn","error","fatal"],Qe="LOG_ARCHIVE_NOT_CONFIGURED",Le={debug:"secondary",error:"destructive",fatal:"destructive",info:"outline",log:"outline",trace:"outline",warn:"secondary"},Ye={cursor:void 0,error:null,loading:!1,notConfigured:!1,rows:null},He=n((l,e)=>{switch(e.type){case"append":return{...l,cursor:e.cursor,error:null,loading:!1,rows:[...l.rows??[],...e.rows]};case"failed":return{cursor:void 0,error:e.message,loading:!1,notConfigured:!1,rows:null};case"loaded":return{cursor:e.cursor,error:null,loading:!1,notConfigured:!1,rows:e.rows};case"loading":return{...l,error:null,loading:!0,notConfigured:!1};case"notConfigured":return{cursor:void 0,error:null,loading:!1,notConfigured:!0,rows:null};case"pageFailed":return{...l,error:e.message,loading:!1};default:return l}},"Je"),Je=n(l=>{let e=(0,F.c)(33),{row:r}=l,o;e[0]!==r.fields?(o=z(r.fields),e[0]=r.fields,e[1]=o):o=e[1];let i=o,a=`lg-archive-row-${String(r.ts)}`,d;e[2]!==r.ts?(d=new Date(r.ts).toLocaleString(),e[2]=r.ts,e[3]=d):d=e[3];let m;e[4]!==d?(m=(0,t.jsx)(M,{className:"tabular-nums whitespace-nowrap text-xs text-muted-foreground",children:d}),e[4]=d,e[5]=m):m=e[5];let x=Le[r.level],u;e[6]!==r.level||e[7]!==x?(u=(0,t.jsx)(M,{children:(0,t.jsx)($,{variant:x,children:r.level})}),e[6]=r.level,e[7]=x,e[8]=u):u=e[8];let c;e[9]!==r.functionPath?(c=(0,t.jsx)(M,{className:"font-mono text-xs",children:r.functionPath}),e[9]=r.functionPath,e[10]=c):c=e[10];let w;e[11]!==r.message?(w=(0,t.jsx)("div",{className:"truncate",title:r.message,children:r.message}),e[11]=r.message,e[12]=w):w=e[12];let p;e[13]!==i?(p=i!==""&&(0,t.jsx)("div",{className:"truncate font-mono text-[11px] text-muted-foreground",title:i,children:i}),e[13]=i,e[14]=p):p=e[14];let h;e[15]!==w||e[16]!==p?(h=(0,t.jsxs)(M,{className:"max-w-md",children:[w,p]}),e[15]=w,e[16]=p,e[17]=h):h=e[17];let g=r.traceId??"\u2014",v;e[18]!==g?(v=(0,t.jsx)(M,{className:"font-mono text-[11px] text-muted-foreground",children:g}),e[18]=g,e[19]=v):v=e[19];let C=r.shardKey??"\u2014",f;e[20]!==C?(f=(0,t.jsx)(M,{className:"font-mono text-[11px] text-muted-foreground",children:C}),e[20]=C,e[21]=f):f=e[21];let y=r.userId??"\u2014",N;e[22]!==y?(N=(0,t.jsx)(M,{className:"font-mono text-[11px] text-muted-foreground",children:y}),e[22]=y,e[23]=N):N=e[23];let L;return e[24]!==h||e[25]!==v||e[26]!==f||e[27]!==N||e[28]!==a||e[29]!==m||e[30]!==u||e[31]!==c?(L=(0,t.jsxs)(re,{"data-testid":a,children:[m,u,c,h,v,f,N]}),e[24]=h,e[25]=v,e[26]=f,e[27]=N,e[28]=a,e[29]=m,e[30]=u,e[31]=c,e[32]=L):L=e[32],L},"Xe"),Xe=n(({shardKey:l})=>{let e=de(),r=H(),[o,i]=(0,b.useState)(""),[a,d]=(0,b.useState)(""),[m,x]=(0,b.useState)(""),[{cursor:u,error:c,loading:w,notConfigured:p,rows:h},g]=(0,b.useReducer)(He,Ye),v=U(o.trim(),400),C=U(a.trim(),400),f={...v===""?{}:{functionPathPrefix:v},...m===""?{}:{minLevel:m},...l===""?{}:{shardKey:l},...C===""?{}:{userId:C}},y=JSON.stringify(f),N=(0,b.useRef)(y);(0,b.useEffect)(()=>{let k={cancelled:!1};return N.current=y,X((async()=>{g({type:"loading"});try{let S=await e.queryLogArchive(f);k.cancelled||g({cursor:S.nextCursor,rows:S.rows,type:"loaded"})}catch(S){k.cancelled||g(ue(S)===Qe?{type:"notConfigured"}:{message:J(S),type:"failed"})}})()),()=>{k.cancelled=!0}},[e,y]);let L=n(async()=>{if(u===void 0)return;let k=y;g({type:"loading"});try{let S=await e.queryLogArchive({...f,cursor:u});N.current===k&&g({cursor:S.nextCursor,rows:S.rows,type:"append"})}catch(S){N.current===k&&g({message:J(S),type:"pageFailed"})}},"C"),P=n(k=>{i(k.target.value)},"R"),I=n(k=>{d(k.target.value)},"S"),R=n(k=>{x(k.target.value)},"I"),E=n(()=>{X(L())},"E");return p?(0,t.jsx)(D,{action:(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline",href:te,rel:"noreferrer",target:"_blank",children:r("Open in Cloudflare")}),description:r("Wire pipelineLogSink to a Cloudflare Pipeline \u2192 R2 Data Catalog table and set R2_SQL_ACCOUNT_ID, R2_SQL_TOKEN, R2_SQL_BUCKET to browse the durable log archive here."),testId:"lg-archive-not-configured",title:r("Log archive not configured")}):(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lg-archive",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(q,{"aria-label":r("Function path prefix"),className:"h-8 w-48","data-testid":"lg-archive-path",onChange:P,placeholder:r("function path\u2026"),value:o}),(0,t.jsx)(q,{"aria-label":r("User id"),className:"h-8 w-40","data-testid":"lg-archive-user",onChange:I,placeholder:r("user id\u2026"),value:a}),(0,t.jsxs)("select",{"aria-label":r("Minimum level"),className:"h-8 rounded-md border border-border bg-background px-2 text-sm","data-testid":"lg-archive-min-level",onChange:R,value:m,children:[(0,t.jsx)("option",{value:"",children:r("min level")}),Ce.map(k=>(0,t.jsx)("option",{value:k,children:k},k))]})]}),c!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"lg-archive-error",role:"alert",children:c}),w&&h===null&&c===null&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"lg-archive-loading",children:r("Loading\u2026")}),h!==null&&h.length===0&&(0,t.jsx)(D,{description:r("No archived logs match these filters. The durable archive fills as pipelineLogSink flushes records to R2."),testId:"lg-archive-empty",title:r("No archived logs.")}),h!==null&&h.length>0&&(0,t.jsx)("div",{className:"overflow-hidden rounded-xl border border-border shadow-xs",children:(0,t.jsxs)(fe,{"data-testid":"lg-archive-table",children:[(0,t.jsx)(pe,{children:(0,t.jsxs)(re,{children:[(0,t.jsx)(T,{children:r("Time")}),(0,t.jsx)(T,{children:r("Level")}),(0,t.jsx)(T,{children:r("Function")}),(0,t.jsx)(T,{children:r("Message")}),(0,t.jsx)(T,{children:r("Trace")}),(0,t.jsx)(T,{children:r("Shard")}),(0,t.jsx)(T,{children:r("User")})]})}),(0,t.jsx)(ve,{children:h.map((k,S)=>(0,t.jsx)(Je,{row:k},`${String(k.ts)}-${String(S)}`))})]})}),u!==void 0&&(0,t.jsx)("div",{children:(0,t.jsx)(ce,{"data-testid":"lg-archive-more",disabled:w,onClick:E,size:"sm",variant:"outline",children:r(w?"Loading\u2026":"Load more")})})]})},"Ze"),ae=400,Ze=36,er={height:ae,overflow:"auto"},Se={left:0,position:"absolute",top:0,width:"100%"},rr={error:"destructive",ok:"secondary"},tr=n(l=>{let e=(0,F.c)(26),{entry:r,index:o,measureRef:i,start:a}=l,d=`translateY(${String(a)}px)`,m;e[0]!==d?(m={...Se,transform:d},e[0]=d,e[1]=m):m=e[1];let x=m,u;e[2]!==r.fields?(u=z(r.fields),e[2]=r.fields,e[3]=u):u=e[3];let c=u,w;e[4]!==r.timestamp?(w=new Date(r.timestamp).toLocaleString(),e[4]=r.timestamp,e[5]=w):w=e[5];let p;e[6]!==w?(p=(0,t.jsx)("span",{className:"w-44 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:w}),e[6]=w,e[7]=p):p=e[7];let h=Le[r.level],g;e[8]!==r.level||e[9]!==h?(g=(0,t.jsx)("span",{className:"w-20 shrink-0",role:"gridcell",children:(0,t.jsx)($,{variant:h,children:r.level})}),e[8]=r.level,e[9]=h,e[10]=g):g=e[10];let v=r.functionPath??"\u2014",C;e[11]!==v?(C=(0,t.jsx)("span",{className:"w-48 shrink-0 truncate text-muted-foreground",role:"gridcell",children:v}),e[11]=v,e[12]=C):C=e[12];let f;e[13]!==c?(f=c===""?null:(0,t.jsx)("span",{className:"ml-2 text-muted-foreground","data-testid":"lg-fields",children:c}),e[13]=c,e[14]=f):f=e[14];let y;e[15]!==r.message||e[16]!==f?(y=(0,t.jsxs)("span",{className:"flex-1 truncate",role:"gridcell",children:[r.message,f]}),e[15]=r.message,e[16]=f,e[17]=y):y=e[17];let N;return e[18]!==o||e[19]!==i||e[20]!==x||e[21]!==y||e[22]!==p||e[23]!==g||e[24]!==C?(N=(0,t.jsxs)("div",{className:"flex items-center border-b border-border px-3 py-1.5 font-mono text-xs hover:bg-muted/50","data-index":o,"data-testid":"lg-row",ref:i,role:"row",style:x,children:[p,g,C,y]}),e[18]=o,e[19]=i,e[20]=x,e[21]=y,e[22]=p,e[23]=g,e[24]=C,e[25]=N):N=e[25],N},"ar"),ye=n(l=>l.length===0?"\u2014":l.join(", "),"oe"),ar=n(l=>{let e=(0,F.c)(37),{entry:r,index:o,measureRef:i,start:a}=l,d=`translateY(${String(a)}px)`,m;e[0]!==d?(m={...Se,transform:d},e[0]=d,e[1]=m):m=e[1];let x=m,u;e[2]!==r.ts?(u=new Date(r.ts).toLocaleString(),e[2]=r.ts,e[3]=u):u=e[3];let c;e[4]!==u?(c=(0,t.jsx)("span",{className:"w-40 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:u}),e[4]=u,e[5]=c):c=e[5];let w=rr[r.outcome],p;e[6]!==r.outcome||e[7]!==w?(p=(0,t.jsx)("span",{className:"w-16 shrink-0",role:"gridcell",children:(0,t.jsx)($,{variant:w,children:r.outcome})}),e[6]=r.outcome,e[7]=w,e[8]=p):p=e[8];let h;e[9]!==r.functionPath?(h=(0,t.jsx)("span",{className:"w-44 shrink-0 truncate",role:"gridcell",title:r.functionPath,children:r.functionPath}),e[9]=r.functionPath,e[10]=h):h=e[10];let g=r.shardKey??"\u2014",v;e[11]!==g?(v=(0,t.jsx)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",role:"gridcell",children:g}),e[11]=g,e[12]=v):v=e[12];let C=r.userId??"\u2014",f;e[13]!==C?(f=(0,t.jsx)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",role:"gridcell",children:C}),e[13]=C,e[14]=f):f=e[14];let y;e[15]!==r.durationMs?(y=Math.round(r.durationMs),e[15]=r.durationMs,e[16]=y):y=e[16];let N=`${String(y)}ms`,L;e[17]!==N?(L=(0,t.jsx)("span",{className:"w-16 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:N}),e[17]=N,e[18]=L):L=e[18];let P;e[19]!==r.errorMessage||e[20]!==r.outcome||e[21]!==r.tablesRead||e[22]!==r.tablesWritten?(P=r.outcome==="error"&&r.errorMessage!==void 0?r.errorMessage:`r:${ye(r.tablesRead)} \xB7 w:${ye(r.tablesWritten)}`,e[19]=r.errorMessage,e[20]=r.outcome,e[21]=r.tablesRead,e[22]=r.tablesWritten,e[23]=P):P=e[23];let I;e[24]!==P?(I=(0,t.jsx)("span",{className:"flex-1 truncate text-muted-foreground",role:"gridcell",children:P}),e[24]=P,e[25]=I):I=e[25];let R;return e[26]!==o||e[27]!==i||e[28]!==x||e[29]!==f||e[30]!==L||e[31]!==I||e[32]!==c||e[33]!==p||e[34]!==h||e[35]!==v?(R=(0,t.jsxs)("div",{className:"flex items-center border-b border-border px-3 py-1.5 font-mono text-xs hover:bg-muted/50","data-index":o,"data-testid":"lg-req-row",ref:i,role:"row",style:x,children:[c,p,h,v,f,L,I]}),e[26]=o,e[27]=i,e[28]=x,e[29]=f,e[30]=L,e[31]=I,e[32]=c,e[33]=p,e[34]=h,e[35]=v,e[36]=R):R=e[36],R},"lr"),Ne=n(l=>{let{entries:e}=l??{};return Array.isArray(e)?e:[]},"se"),lr=n(l=>{let e={};return l.functionPathPrefix.trim()!==""&&(e.functionPathPrefix=l.functionPathPrefix.trim()),l.userId.trim()!==""&&(e.userId=l.userId.trim()),l.tableTouched.trim()!==""&&(e.tableTouched=l.tableTouched.trim()),(l.outcome==="ok"||l.outcome==="error")&&(e.outcome=l.outcome),e},"or"),Ie=Ce,sr={"5m":300*1e3,"15m":900*1e3,"1h":3600*1e3},or=n((l,e)=>{let r=e.search.trim().toLowerCase(),o=e.path.trim().toLowerCase(),i=e.range==="all"?Number.NEGATIVE_INFINITY:e.now-sr[e.range];return l.filter(a=>e.levels.size>0&&!e.levels.has(a.level)||a.timestamp<i||o!==""&&!(a.functionPath??"").toLowerCase().includes(o)?!1:r===""||a.message.toLowerCase().includes(r)||z(a.fields).toLowerCase().includes(r))},"nr"),nr="\u2014",ir=n(l=>{let e=new Map,r=new Map;for(let a of l){e.set(a.level,(e.get(a.level)??0)+1);let d=a.functionPath??nr;r.set(d,(r.get(d)??0)+1)}let o=Ie.filter(a=>e.has(a)).map(a=>({count:e.get(a)??0,key:a})),i=[...r.entries()].map(([a,d])=>({count:d,key:a})).toSorted((a,d)=>d.count===a.count?a.key.localeCompare(d.key):d.count-a.count);return{byLevel:o,byPath:i,total:l.length}},"dr"),dr=n(l=>{let e=(0,F.c)(11),{level:r,onToggle:o,selected:i}=l,a;e[0]!==r||e[1]!==o?(a=n(()=>{o(r)},"a"),e[0]=r,e[1]=o,e[2]=a):a=e[2];let d=a,m=i?"border-border bg-muted font-medium":"border-input text-muted-foreground",x;e[3]!==m?(x=_("rounded-md border px-2 py-1 text-xs",m),e[3]=m,e[4]=x):x=e[4];let u=`logs-level-${r}`,c;return e[5]!==r||e[6]!==d||e[7]!==i||e[8]!==x||e[9]!==u?(c=(0,t.jsx)("button",{"aria-pressed":i,className:x,"data-testid":u,onClick:d,type:"button",children:r}),e[5]=r,e[6]=d,e[7]=i,e[8]=x,e[9]=u,e[10]=c):c=e[10],c},"cr"),ke=n(l=>{let e=(0,F.c)(7),{bucket:r}=l,o;e[0]!==r.key?(o=(0,t.jsx)("span",{className:"truncate text-muted-foreground",role:"gridcell",children:r.key}),e[0]=r.key,e[1]=o):o=e[1];let i;e[2]!==r.count?(i=(0,t.jsx)("span",{className:"shrink-0 tabular-nums",role:"gridcell",children:r.count}),e[2]=r.count,e[3]=i):i=e[3];let a;return e[4]!==o||e[5]!==i?(a=(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 px-3 py-1 font-mono text-xs","data-testid":"logs-summary-row",role:"row",children:[o,i]}),e[4]=o,e[5]=i,e[6]=a):a=e[6],a},"ne"),qr=n(({initialShardKey:l})=>{let e=H(),[r,o]=(0,b.useState)("requests"),[i,a]=(0,b.useState)(l??""),[d,m]=(0,b.useState)(""),[x,u]=(0,b.useState)(()=>new Set),[c,w]=(0,b.useState)(""),[p,h]=(0,b.useState)("all"),[g,v]=(0,b.useState)(!1),[C,f]=(0,b.useState)(""),[y,N]=(0,b.useState)(""),[L,P]=(0,b.useState)(""),[I,R]=(0,b.useState)("all"),E=U(i.trim(),400),k=lr({functionPathPrefix:C,outcome:I,tableTouched:L,userId:y}),S=Z(ee.getRequestLog,k,{enabled:r==="requests",live:!0,shardKey:E}),le=Z(ee.getLogs,{},{enabled:r==="errors",live:!0,shardKey:E}),W=r==="requests"?S:le,{error:se,errorSource:Pe,isLoading:oe,liveError:Re}=W,qe=Ne(le.data),ne=Ne(S.data);(0,b.useEffect)(()=>{W.data!==void 0&&me(E)},[W.data,E]);let j=or(qe,{levels:x,now:Date.now(),path:c,range:p,search:d}),B=ir(j),V=r==="requests"?ne.length:j.length,G=r==="errors"&&g,K=(0,b.useMemo)(()=>se!==null?"error":V===0?oe?G?"summary":"list":"empty":G?"summary":"list",[V,oe,se,G]),ie=(0,b.useRef)(null),A=xe({count:V,estimateSize:n(()=>Ze,"estimateSize"),getScrollElement:n(()=>ie.current,"getScrollElement"),initialRect:{height:ae,width:800},observeElementRect:n((s,Q)=>we(s,Q,ae),"observeElementRect"),overscan:8}),Te=A.getVirtualItems(),Me={height:A.getTotalSize(),position:"relative",width:"100%"},Ee=n(s=>{m(s.target.value)},"Ne"),_e=n(s=>{u(Q=>{let O=new Set(Q);return O.has(s)?O.delete(s):O.add(s),O})},"Le"),Fe=n(s=>{w(s.target.value)},"Ce"),Ke=n(s=>{h(s.target.value)},"ke"),Ae=n(()=>{v(s=>!s)},"$e"),Oe=n(s=>{f(s.target.value)},"Se"),$e=n(s=>{N(s.target.value)},"Re"),De=n(s=>{P(s.target.value)},"Ie"),Ue=n(s=>{R(s.target.value)},"Ee"),ze=n(()=>{o("requests"),v(!1)},"Pe"),We=n(()=>{o("errors"),v(!1)},"Te"),je=n(()=>{o("archive"),v(!1)},"_e");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-logs",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("div",{className:"inline-flex overflow-hidden rounded-lg border border-border",role:"tablist",children:[(0,t.jsx)("button",{"aria-selected":r==="requests",className:_("px-3 py-1 text-sm",r==="requests"?"bg-muted font-medium":"text-muted-foreground"),"data-testid":"lg-view-requests",onClick:ze,role:"tab",type:"button",children:e("Requests")}),(0,t.jsx)("button",{"aria-selected":r==="errors",className:_("px-3 py-1 text-sm",r==="errors"?"bg-muted font-medium":"text-muted-foreground"),"data-testid":"lg-view-errors",onClick:We,role:"tab",type:"button",children:e("Errors")}),(0,t.jsx)("button",{"aria-selected":r==="archive",className:_("px-3 py-1 text-sm",r==="archive"?"bg-muted font-medium":"text-muted-foreground"),"data-testid":"lg-view-archive",onClick:je,role:"tab",type:"button",children:e("Archive")})]}),(0,t.jsx)(he,{onChange:a,testId:"lg-shard-input",value:i}),r!=="archive"&&(0,t.jsx)(be,{message:Re,prefix:"lg"}),(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"lg-cf-link",href:te,rel:"noreferrer",target:"_blank",children:e("Open in Cloudflare")})]}),r==="errors"&&(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(q,{"aria-label":e("Search messages"),className:"h-8 w-48","data-testid":"lg-search",onChange:Ee,placeholder:e("search message"),value:d}),(0,t.jsx)(q,{"aria-label":e("Function path"),className:"h-8 w-40","data-testid":"logs-path-filter",onChange:Fe,placeholder:e("filter path"),value:c}),(0,t.jsx)("div",{"aria-label":e("Level filter"),className:"inline-flex items-center gap-1","data-testid":"logs-level-filter",role:"group",children:Ie.map(s=>(0,t.jsx)(dr,{level:s,onToggle:_e,selected:x.has(s)},s))}),(0,t.jsxs)("select",{"aria-label":e("Time range"),className:"h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none","data-testid":"logs-time-range",onChange:Ke,value:p,children:[(0,t.jsx)("option",{value:"all",children:e("All time")}),(0,t.jsx)("option",{value:"5m",children:e("Last 5m")}),(0,t.jsx)("option",{value:"15m",children:e("Last 15m")}),(0,t.jsx)("option",{value:"1h",children:e("Last hour")})]}),(0,t.jsx)("button",{"aria-pressed":g,className:_("h-8 rounded-md border px-3 text-sm",g?"border-border bg-muted font-medium":"border-input text-muted-foreground"),"data-testid":"logs-summary-toggle",onClick:Ae,type:"button",children:e(g?"List":"Summary")})]}),r==="requests"&&(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(q,{"aria-label":e("Function path"),className:"h-8 w-44","data-testid":"lg-req-path",onChange:Oe,placeholder:e("file:function"),value:C}),(0,t.jsx)(q,{"aria-label":e("User id"),className:"h-8 w-32","data-testid":"lg-req-user",onChange:$e,placeholder:e("userId"),value:y}),(0,t.jsx)(q,{"aria-label":e("Table touched"),className:"h-8 w-32","data-testid":"lg-req-table",onChange:De,placeholder:e("table"),value:L}),(0,t.jsxs)("select",{"aria-label":e("Outcome filter"),className:"h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none","data-testid":"lg-req-outcome",onChange:Ue,value:I,children:[(0,t.jsx)("option",{value:"all",children:e("all")}),(0,t.jsx)("option",{value:"ok",children:e("ok")}),(0,t.jsx)("option",{value:"error",children:e("error")})]})]}),r==="archive"?(0,t.jsx)(Xe,{shardKey:E}):(0,t.jsxs)(t.Fragment,{children:[K==="error"&&(0,t.jsx)(ge,{error:Pe,testId:"lg-error"}),K==="empty"&&(0,t.jsx)(D,{description:e("Function and request logs for this shard show up here as your app handles traffic."),icon:(0,t.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsx)("path",{d:"M4 5h16M4 12h16M4 19h10"})}),testId:"lg-empty",title:e("No logs.")}),K==="summary"&&(0,t.jsxs)("div",{className:"flex flex-col gap-4 rounded-xl border border-border bg-card p-4 shadow-xs","data-testid":"logs-summary",children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"logs-summary-total",children:e("{count} entries",{count:B.total})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"mb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:e("By level")}),(0,t.jsx)("div",{className:"overflow-hidden rounded-lg border border-border","data-testid":"logs-summary-levels",role:"grid",children:B.byLevel.map(s=>(0,t.jsx)(ke,{bucket:s},s.key))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"mb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:e("By function")}),(0,t.jsx)("div",{className:"overflow-hidden rounded-lg border border-border","data-testid":"logs-summary-paths",role:"grid",children:B.byPath.map(s=>(0,t.jsx)(ke,{bucket:s},s.key))})]})]}),K==="list"&&(0,t.jsx)("div",{className:"rounded-xl border border-border shadow-xs","data-testid":"lg-scroll",ref:ie,style:er,children:(0,t.jsx)("div",{"aria-label":e("Recent logs"),"data-testid":"lg-table",role:"grid",style:Me,children:Te.map(s=>r==="requests"?(0,t.jsx)(ar,{entry:ne[s.index],index:s.index,measureRef:A.measureElement,start:s.start},s.key):(0,t.jsx)(tr,{entry:j[s.index],index:s.index,measureRef:A.measureElement,start:s.start},s.key))})})]})]})},"qr");export{qr as LogsPanel,or as filterLogs,ir as summarizeLogs};
@@ -1 +1 @@
1
- import{b as ee}from"./chunk-OWADN6BI.js";import{a as z,b as D,c as F,d as w,e as l,f as o}from"./chunk-MIQTKZAR.js";import{a as E,e as j}from"./chunk-UZERI5YC.js";import{a as te}from"./chunk-V53KNYRN.js";import{R as Z}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as I}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{a as K}from"./chunk-GXZAXNZI.js";import{f as G}from"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{a as P}from"./chunk-XQCVZAGU.js";import{d as H,f as Q,g as V,h as W,m as $}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as n,e as Y,f as ne,h as le}from"./chunk-3XIESWL4.js";var i=Y(ne(),1);var e=Y(le(),1);var oe=["queued","running","paused","waiting","complete","errored","terminated"],ie=["pause","resume","terminate"],de="WORKFLOWS_NOT_CONFIGURED",ce=n(c=>typeof c=="object"&&c!==null&&c.code===de,"de"),me=n(c=>{let r=c.error??c.output;if(r===void 0)return"\u2014";try{return JSON.stringify(r)}catch{return"(unserializable)"}},"ce"),ue=n(({loadDetail:c,loadInstances:r,readOnly:b,runAction:_,workflowName:h})=>{let A=G(),s=H(),[N,g]=(0,i.useState)(null),[S,O]=(0,i.useState)(null),[k,J]=(0,i.useState)(""),[v,p]=(0,i.useState)(null),[L,C]=(0,i.useState)(!1),[R,U]=(0,i.useState)(null),f=c??(a=>A.getWorkflowInstance(a)),x=b?void 0:_??(r===void 0?a=>A.setWorkflowInstanceStatus(a):void 0),T=n(async()=>{p(null),C(!1);let a=k===""?void 0:k;try{if(r===void 0){let d=await A.listWorkflowInstances({name:h,status:a});if(d.configured===!1){g(null),C(!0);return}g(d.instances);return}g(await r({name:h,status:a}))}catch(d){g(null),ce(d)?C(!0):p(W(d))}},"O");(0,i.useEffect)(()=>{O(null),$(T())},[h,k]);let q=n(async a=>{p(null);try{O(await f({id:a,name:h}))}catch(d){p(W(d))}},"D"),M=n(async(a,d)=>{if(x!==void 0){U(a),p(null);try{await x({action:d,id:a,name:h}),await T()}catch(B){p(W(B))}finally{U(null)}}},"q");return(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-workflow-instances",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:s("Instance history")}),(0,e.jsxs)("select",{"aria-label":s("Filter by status"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"workflow-instances-filter",onChange:n(a=>{J(a.target.value)},"onChange"),value:k,children:[(0,e.jsx)("option",{value:"",children:s("All statuses")}),oe.map(a=>(0,e.jsx)("option",{value:a,children:a},a))]})]}),v!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflow-instances-error",role:"alert",children:v}),L&&(0,e.jsx)(P,{description:s("Set CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN in your .dev.vars to enable workflow instance history."),testId:"workflow-instances-unconfigured",title:s("Workflow inspection not configured")}),!L&&N!==null&&N.length===0&&(0,e.jsx)(P,{description:s("No instances match this filter for the selected workflow."),testId:"workflow-instances-empty",title:s("No instances")}),N!==null&&N.length>0&&(0,e.jsx)(E,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflow-instances-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(w,{children:[(0,e.jsx)(l,{children:s("Instance id")}),(0,e.jsx)(l,{children:s("Status")}),(0,e.jsx)(l,{children:s("Created")}),(0,e.jsx)(l,{children:s("Ended")}),(0,e.jsx)(l,{"aria-label":s("Actions")})]})}),(0,e.jsx)(F,{children:N.map(a=>(0,e.jsxs)(w,{"data-testid":`workflow-instance-${a.id}`,children:[(0,e.jsx)(o,{className:"font-mono text-xs",children:a.id}),(0,e.jsx)(o,{className:"font-mono text-xs",children:a.status}),(0,e.jsx)(o,{className:"text-muted-foreground tabular-nums",children:a.createdOn??"\u2014"}),(0,e.jsx)(o,{className:"text-muted-foreground tabular-nums",children:a.endedOn??"\u2014"}),(0,e.jsx)(o,{className:"text-right",children:(0,e.jsxs)("div",{className:"flex justify-end gap-1.5",children:[(0,e.jsx)(I,{"data-testid":`workflow-instance-steps-${a.id}`,onClick:n(()=>{$(q(a.id))},"onClick"),size:"sm",type:"button",variant:"outline",children:s("Steps")}),x!==void 0&&ie.map(d=>(0,e.jsx)(I,{"data-testid":`workflow-instance-${d}-${a.id}`,disabled:R===a.id,onClick:n(()=>{$(M(a.id,d))},"onClick"),size:"sm",type:"button",variant:"ghost",children:s(d)},d))]})})]},a.id))})]})})}),S!==null&&(0,e.jsx)(E,{className:"overflow-hidden py-0","data-testid":"workflow-instance-detail",children:(0,e.jsxs)(j,{className:"flex flex-col gap-2 px-4 py-3",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsxs)("span",{className:"font-mono text-xs",children:[s("Steps")," \xB7 ",S.id]}),(0,e.jsx)(I,{"data-testid":"workflow-instance-detail-close",onClick:n(()=>{O(null)},"onClick"),size:"xs",type:"button",variant:"ghost",children:s("Close")})]}),S.steps.length===0?(0,e.jsx)("p",{className:"text-xs text-muted-foreground",children:s("This instance has no recorded steps yet.")}):(0,e.jsxs)(z,{"data-testid":"workflow-instance-steps",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(w,{children:[(0,e.jsx)(l,{children:s("Step")}),(0,e.jsx)(l,{children:s("Type")}),(0,e.jsx)(l,{children:s("Attempts")}),(0,e.jsx)(l,{children:s("Started")}),(0,e.jsx)(l,{children:s("Output")})]})}),(0,e.jsx)(F,{children:S.steps.map((a,d)=>(0,e.jsxs)(w,{"data-testid":`workflow-step-${String(d)}`,children:[(0,e.jsx)(o,{className:"font-mono text-xs",children:a.name}),(0,e.jsx)(o,{className:"text-xs text-muted-foreground",children:a.type??"\u2014"}),(0,e.jsx)(o,{className:"tabular-nums",children:a.attempts??"\u2014"}),(0,e.jsx)(o,{className:"text-muted-foreground tabular-nums",children:a.start??"\u2014"}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:me(a)})]},`${a.name}:${String(d)}`))})]})]})})]})},"me"),fe=Q(K.createWorkflowInstance),he=Q(K.getWorkflowInstanceStatus),pe=n(c=>{if(c.error)return`${c.error.name}: ${c.error.message}`;if(c.output===void 0)return"\u2014";try{return JSON.stringify(c.output)}catch{return"(unserializable)"}},"he"),Ie=n(()=>{let c=G(),r=H(),{data:b,error:_}=ee(K.listWorkflows,{}),[h,A]=(0,i.useState)(""),[s,N]=(0,i.useState)(""),[g,S]=(0,i.useState)(""),[O,k]=(0,i.useState)(!1),[J,v]=(0,i.useState)(null),[p,L]=(0,i.useState)([]),[C,R]=(0,i.useState)(null),U=b!==void 0,f=(0,i.useMemo)(()=>Array.isArray(b?.workflows)?[...b.workflows].toSorted((t,u)=>t.exportName.localeCompare(u.exportName)):[],[b]),x=(0,i.useMemo)(()=>f.some(t=>t.exportName===h)?h:f[0]?.exportName??"",[f,h]),T=(0,i.useMemo)(()=>f.find(t=>t.exportName===x),[f,x]),q=n(t=>{L(u=>{let m=u.filter(y=>!(y.exportName===t.exportName&&y.id===t.id));return[t,...m]})},"D"),M=n(async()=>{let t=x;if(t==="")return;let u,m=g.trim();if(m!=="")try{u=JSON.parse(m)}catch{v(r("Params must be valid JSON"));return}k(!0),v(null);try{let y=s.trim(),X=await c.query(fe,{exportName:t,id:y===""?void 0:y,params:u},V(""));q({exportName:t,id:X.id,status:X.status}),N("")}catch(y){v(W(y))}finally{k(!1)}},"q"),a=n(()=>{$(M())},"a"),d=n(async(t,u)=>{R(u);try{let m=await c.query(he,{exportName:t,id:u},V(""));q({error:m.error,exportName:t,id:m.id,output:m.output,status:m.status})}catch(m){v(W(m))}finally{R(null)}},"l"),B=n(t=>{A(t.target.value)},"M"),ae=n(t=>{N(t.target.value)},"Z"),re=n(t=>{S(t.target.value)},"ee"),se=n(t=>{let{export:u,id:m}=t.currentTarget.dataset;u!==void 0&&m!==void 0&&$(d(u,m))},"te");return(0,e.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-workflows-panel",children:[_!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflows-error",role:"alert",children:_}),(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:r("Workflows are declared in code with defineWorkflow and run as durable Cloudflare Workflows. Start an instance and observe its status below.")}),U&&f.length===0?(0,e.jsx)(P,{description:r("No defineWorkflow is declared in lunora/workflows.ts in this deployment. Add one to run a durable, multi-step workflow."),testId:"workflows-empty",title:r("No workflows defined")}):(0,e.jsx)(E,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflows-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(w,{children:[(0,e.jsx)(l,{children:r("Export")}),(0,e.jsx)(l,{children:r("Name")}),(0,e.jsx)(l,{children:r("Class")}),(0,e.jsx)(l,{children:r("Binding")})]})}),(0,e.jsx)(F,{children:f.map(t=>(0,e.jsxs)(w,{"data-testid":`workflows-row-${t.exportName}`,children:[(0,e.jsx)(o,{className:"font-mono text-xs",children:t.exportName}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:t.name}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:t.className}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:t.binding})]},t.exportName))})]})})}),f.length>0&&(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"workflows-start",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:r("Start instance")}),J!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflows-start-error",role:"alert",children:J}),(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,e.jsx)("select",{"aria-label":r("Workflow"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"workflows-start-select",onChange:B,value:x,children:f.map(t=>(0,e.jsx)("option",{value:t.exportName,children:t.exportName},t.exportName))}),(0,e.jsx)(Z,{"aria-label":r("Instance id (optional)"),className:"max-w-48","data-testid":"workflows-start-id",onChange:ae,placeholder:r("Instance id (optional)"),value:s}),(0,e.jsx)(I,{"data-testid":"workflows-start-button",disabled:O||x==="",onClick:a,children:r(O?"Starting\u2026":"Start instance")})]}),(0,e.jsx)(te,{"aria-label":r("Params (JSON)"),className:"font-mono","data-testid":"workflows-start-params",onChange:re,placeholder:r("Params (JSON, optional)"),value:g})]}),p.length>0&&(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"workflows-instances",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:r("Instances")}),(0,e.jsx)(E,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflows-instances-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(w,{children:[(0,e.jsx)(l,{children:r("Workflow")}),(0,e.jsx)(l,{children:r("Instance id")}),(0,e.jsx)(l,{children:r("Status")}),(0,e.jsx)(l,{children:r("Output")}),(0,e.jsx)(l,{})]})}),(0,e.jsx)(F,{children:p.map(t=>(0,e.jsxs)(w,{"data-testid":`workflows-instance-${t.id}`,children:[(0,e.jsx)(o,{className:"font-mono text-xs",children:t.exportName}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:t.id}),(0,e.jsx)(o,{className:"font-mono text-xs",children:t.status}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:pe(t)}),(0,e.jsx)(o,{children:(0,e.jsx)(I,{"data-export":t.exportName,"data-id":t.id,"data-testid":`workflows-instance-refresh-${t.id}`,disabled:C===t.id,onClick:se,size:"xs",variant:"outline",children:C===t.id?r("Refreshing\u2026"):r("Refresh")})})]},`${t.exportName}:${t.id}`))})]})})})]}),T!==void 0&&(0,e.jsx)(ue,{workflowName:T.name})]})},"Oe");export{Ie as default};
1
+ import{b as ee}from"./chunk-XSD4Y6SQ.js";import{a as z,b as D,c as F,d as w,e as l,f as o}from"./chunk-MIQTKZAR.js";import{a as E,e as j}from"./chunk-UZERI5YC.js";import{a as te}from"./chunk-V53KNYRN.js";import{R as Z}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as I}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{a as K}from"./chunk-GXZAXNZI.js";import{f as G}from"./chunk-35II7U25.js";import"./chunk-XBDKZZ67.js";import{a as P}from"./chunk-XQCVZAGU.js";import{d as H,f as Q,g as V,h as W,m as $}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as n,e as Y,f as ne,h as le}from"./chunk-3XIESWL4.js";var i=Y(ne(),1);var e=Y(le(),1);var oe=["queued","running","paused","waiting","complete","errored","terminated"],ie=["pause","resume","terminate"],de="WORKFLOWS_NOT_CONFIGURED",ce=n(c=>typeof c=="object"&&c!==null&&c.code===de,"de"),me=n(c=>{let r=c.error??c.output;if(r===void 0)return"\u2014";try{return JSON.stringify(r)}catch{return"(unserializable)"}},"ce"),ue=n(({loadDetail:c,loadInstances:r,readOnly:b,runAction:_,workflowName:h})=>{let A=G(),s=H(),[N,g]=(0,i.useState)(null),[S,O]=(0,i.useState)(null),[k,J]=(0,i.useState)(""),[v,p]=(0,i.useState)(null),[L,C]=(0,i.useState)(!1),[R,U]=(0,i.useState)(null),f=c??(a=>A.getWorkflowInstance(a)),x=b?void 0:_??(r===void 0?a=>A.setWorkflowInstanceStatus(a):void 0),T=n(async()=>{p(null),C(!1);let a=k===""?void 0:k;try{if(r===void 0){let d=await A.listWorkflowInstances({name:h,status:a});if(d.configured===!1){g(null),C(!0);return}g(d.instances);return}g(await r({name:h,status:a}))}catch(d){g(null),ce(d)?C(!0):p(W(d))}},"O");(0,i.useEffect)(()=>{O(null),$(T())},[h,k]);let q=n(async a=>{p(null);try{O(await f({id:a,name:h}))}catch(d){p(W(d))}},"D"),M=n(async(a,d)=>{if(x!==void 0){U(a),p(null);try{await x({action:d,id:a,name:h}),await T()}catch(B){p(W(B))}finally{U(null)}}},"q");return(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-workflow-instances",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:s("Instance history")}),(0,e.jsxs)("select",{"aria-label":s("Filter by status"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"workflow-instances-filter",onChange:n(a=>{J(a.target.value)},"onChange"),value:k,children:[(0,e.jsx)("option",{value:"",children:s("All statuses")}),oe.map(a=>(0,e.jsx)("option",{value:a,children:a},a))]})]}),v!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflow-instances-error",role:"alert",children:v}),L&&(0,e.jsx)(P,{description:s("Set CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN in your .dev.vars to enable workflow instance history."),testId:"workflow-instances-unconfigured",title:s("Workflow inspection not configured")}),!L&&N!==null&&N.length===0&&(0,e.jsx)(P,{description:s("No instances match this filter for the selected workflow."),testId:"workflow-instances-empty",title:s("No instances")}),N!==null&&N.length>0&&(0,e.jsx)(E,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflow-instances-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(w,{children:[(0,e.jsx)(l,{children:s("Instance id")}),(0,e.jsx)(l,{children:s("Status")}),(0,e.jsx)(l,{children:s("Created")}),(0,e.jsx)(l,{children:s("Ended")}),(0,e.jsx)(l,{"aria-label":s("Actions")})]})}),(0,e.jsx)(F,{children:N.map(a=>(0,e.jsxs)(w,{"data-testid":`workflow-instance-${a.id}`,children:[(0,e.jsx)(o,{className:"font-mono text-xs",children:a.id}),(0,e.jsx)(o,{className:"font-mono text-xs",children:a.status}),(0,e.jsx)(o,{className:"text-muted-foreground tabular-nums",children:a.createdOn??"\u2014"}),(0,e.jsx)(o,{className:"text-muted-foreground tabular-nums",children:a.endedOn??"\u2014"}),(0,e.jsx)(o,{className:"text-right",children:(0,e.jsxs)("div",{className:"flex justify-end gap-1.5",children:[(0,e.jsx)(I,{"data-testid":`workflow-instance-steps-${a.id}`,onClick:n(()=>{$(q(a.id))},"onClick"),size:"sm",type:"button",variant:"outline",children:s("Steps")}),x!==void 0&&ie.map(d=>(0,e.jsx)(I,{"data-testid":`workflow-instance-${d}-${a.id}`,disabled:R===a.id,onClick:n(()=>{$(M(a.id,d))},"onClick"),size:"sm",type:"button",variant:"ghost",children:s(d)},d))]})})]},a.id))})]})})}),S!==null&&(0,e.jsx)(E,{className:"overflow-hidden py-0","data-testid":"workflow-instance-detail",children:(0,e.jsxs)(j,{className:"flex flex-col gap-2 px-4 py-3",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsxs)("span",{className:"font-mono text-xs",children:[s("Steps")," \xB7 ",S.id]}),(0,e.jsx)(I,{"data-testid":"workflow-instance-detail-close",onClick:n(()=>{O(null)},"onClick"),size:"xs",type:"button",variant:"ghost",children:s("Close")})]}),S.steps.length===0?(0,e.jsx)("p",{className:"text-xs text-muted-foreground",children:s("This instance has no recorded steps yet.")}):(0,e.jsxs)(z,{"data-testid":"workflow-instance-steps",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(w,{children:[(0,e.jsx)(l,{children:s("Step")}),(0,e.jsx)(l,{children:s("Type")}),(0,e.jsx)(l,{children:s("Attempts")}),(0,e.jsx)(l,{children:s("Started")}),(0,e.jsx)(l,{children:s("Output")})]})}),(0,e.jsx)(F,{children:S.steps.map((a,d)=>(0,e.jsxs)(w,{"data-testid":`workflow-step-${String(d)}`,children:[(0,e.jsx)(o,{className:"font-mono text-xs",children:a.name}),(0,e.jsx)(o,{className:"text-xs text-muted-foreground",children:a.type??"\u2014"}),(0,e.jsx)(o,{className:"tabular-nums",children:a.attempts??"\u2014"}),(0,e.jsx)(o,{className:"text-muted-foreground tabular-nums",children:a.start??"\u2014"}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:me(a)})]},`${a.name}:${String(d)}`))})]})]})})]})},"me"),fe=Q(K.createWorkflowInstance),he=Q(K.getWorkflowInstanceStatus),pe=n(c=>{if(c.error)return`${c.error.name}: ${c.error.message}`;if(c.output===void 0)return"\u2014";try{return JSON.stringify(c.output)}catch{return"(unserializable)"}},"he"),Ie=n(()=>{let c=G(),r=H(),{data:b,error:_}=ee(K.listWorkflows,{}),[h,A]=(0,i.useState)(""),[s,N]=(0,i.useState)(""),[g,S]=(0,i.useState)(""),[O,k]=(0,i.useState)(!1),[J,v]=(0,i.useState)(null),[p,L]=(0,i.useState)([]),[C,R]=(0,i.useState)(null),U=b!==void 0,f=(0,i.useMemo)(()=>Array.isArray(b?.workflows)?[...b.workflows].toSorted((t,u)=>t.exportName.localeCompare(u.exportName)):[],[b]),x=(0,i.useMemo)(()=>f.some(t=>t.exportName===h)?h:f[0]?.exportName??"",[f,h]),T=(0,i.useMemo)(()=>f.find(t=>t.exportName===x),[f,x]),q=n(t=>{L(u=>{let m=u.filter(y=>!(y.exportName===t.exportName&&y.id===t.id));return[t,...m]})},"D"),M=n(async()=>{let t=x;if(t==="")return;let u,m=g.trim();if(m!=="")try{u=JSON.parse(m)}catch{v(r("Params must be valid JSON"));return}k(!0),v(null);try{let y=s.trim(),X=await c.query(fe,{exportName:t,id:y===""?void 0:y,params:u},V(""));q({exportName:t,id:X.id,status:X.status}),N("")}catch(y){v(W(y))}finally{k(!1)}},"q"),a=n(()=>{$(M())},"a"),d=n(async(t,u)=>{R(u);try{let m=await c.query(he,{exportName:t,id:u},V(""));q({error:m.error,exportName:t,id:m.id,output:m.output,status:m.status})}catch(m){v(W(m))}finally{R(null)}},"l"),B=n(t=>{A(t.target.value)},"M"),ae=n(t=>{N(t.target.value)},"Z"),re=n(t=>{S(t.target.value)},"ee"),se=n(t=>{let{export:u,id:m}=t.currentTarget.dataset;u!==void 0&&m!==void 0&&$(d(u,m))},"te");return(0,e.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-workflows-panel",children:[_!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflows-error",role:"alert",children:_}),(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:r("Workflows are declared in code with defineWorkflow and run as durable Cloudflare Workflows. Start an instance and observe its status below.")}),U&&f.length===0?(0,e.jsx)(P,{description:r("No defineWorkflow is declared in lunora/workflows.ts in this deployment. Add one to run a durable, multi-step workflow."),testId:"workflows-empty",title:r("No workflows defined")}):(0,e.jsx)(E,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflows-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(w,{children:[(0,e.jsx)(l,{children:r("Export")}),(0,e.jsx)(l,{children:r("Name")}),(0,e.jsx)(l,{children:r("Class")}),(0,e.jsx)(l,{children:r("Binding")})]})}),(0,e.jsx)(F,{children:f.map(t=>(0,e.jsxs)(w,{"data-testid":`workflows-row-${t.exportName}`,children:[(0,e.jsx)(o,{className:"font-mono text-xs",children:t.exportName}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:t.name}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:t.className}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:t.binding})]},t.exportName))})]})})}),f.length>0&&(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"workflows-start",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:r("Start instance")}),J!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflows-start-error",role:"alert",children:J}),(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,e.jsx)("select",{"aria-label":r("Workflow"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"workflows-start-select",onChange:B,value:x,children:f.map(t=>(0,e.jsx)("option",{value:t.exportName,children:t.exportName},t.exportName))}),(0,e.jsx)(Z,{"aria-label":r("Instance id (optional)"),className:"max-w-48","data-testid":"workflows-start-id",onChange:ae,placeholder:r("Instance id (optional)"),value:s}),(0,e.jsx)(I,{"data-testid":"workflows-start-button",disabled:O||x==="",onClick:a,children:r(O?"Starting\u2026":"Start instance")})]}),(0,e.jsx)(te,{"aria-label":r("Params (JSON)"),className:"font-mono","data-testid":"workflows-start-params",onChange:re,placeholder:r("Params (JSON, optional)"),value:g})]}),p.length>0&&(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"workflows-instances",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:r("Instances")}),(0,e.jsx)(E,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflows-instances-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(w,{children:[(0,e.jsx)(l,{children:r("Workflow")}),(0,e.jsx)(l,{children:r("Instance id")}),(0,e.jsx)(l,{children:r("Status")}),(0,e.jsx)(l,{children:r("Output")}),(0,e.jsx)(l,{})]})}),(0,e.jsx)(F,{children:p.map(t=>(0,e.jsxs)(w,{"data-testid":`workflows-instance-${t.id}`,children:[(0,e.jsx)(o,{className:"font-mono text-xs",children:t.exportName}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:t.id}),(0,e.jsx)(o,{className:"font-mono text-xs",children:t.status}),(0,e.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:pe(t)}),(0,e.jsx)(o,{children:(0,e.jsx)(I,{"data-export":t.exportName,"data-id":t.id,"data-testid":`workflows-instance-refresh-${t.id}`,disabled:C===t.id,onClick:se,size:"xs",variant:"outline",children:C===t.id?r("Refreshing\u2026"):r("Refresh")})})]},`${t.exportName}:${t.id}`))})]})})})]}),T!==void 0&&(0,e.jsx)(ue,{workflowName:T.name})]})},"Oe");export{Ie as default};