@lunora/studio 1.0.0-alpha.37 → 1.0.0-alpha.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -10
- package/dist/mount.js +1 -1
- package/dist/packem_chunks/ApiTab.js +3 -3
- package/dist/packem_chunks/AuditPanel.js +3 -3
- package/dist/packem_chunks/ExportImportPanel.js +2 -2
- package/dist/packem_chunks/FileBrowser.js +2 -2
- package/dist/packem_chunks/FunctionRunner.js +1 -1
- package/dist/packem_chunks/FunctionStatsPanel.js +3 -3
- package/dist/packem_chunks/HealthPanel.js +2 -2
- package/dist/packem_chunks/InsightsPanel.js +3 -3
- package/dist/packem_chunks/LogsPanel.js +2 -2
- package/dist/packem_chunks/MailPanel.js +3 -3
- package/dist/packem_chunks/MetricsPanel.js +2 -2
- package/dist/packem_chunks/MigrationsPanel.js +3 -3
- package/dist/packem_chunks/PitrPanel.js +1 -1
- package/dist/packem_chunks/SchemaViewer.js +1 -1
- package/dist/packem_chunks/SecurityAdvisorPanel.js +2 -2
- package/dist/packem_chunks/SettingsPanel.js +2 -2
- package/dist/packem_chunks/SqlEditorPanel.js +149 -139
- package/dist/packem_chunks/TableEditor.js +3 -3
- package/dist/packem_chunks/analytics-panel.js +1 -1
- package/dist/packem_chunks/auth-config-panel.js +291 -105
- package/dist/packem_chunks/auth-sessions-panel.js +2 -2
- package/dist/packem_chunks/containers-panel.js +1 -1
- package/dist/packem_chunks/dashboards-panel.js +2 -2
- package/dist/packem_chunks/fanout-panel.js +2 -2
- package/dist/packem_chunks/flags-panel.js +2 -2
- package/dist/packem_chunks/kv-browser.js +2 -2
- package/dist/packem_chunks/log-drains-panel.js +1 -1
- package/dist/packem_chunks/organizations-panel.js +3003 -495
- package/dist/packem_chunks/payments-panel.js +3 -3
- package/dist/packem_chunks/permissions-panel.js +3 -3
- package/dist/packem_chunks/queues-panel.js +242 -219
- package/dist/packem_chunks/rls-panel.js +2 -2
- package/dist/packem_chunks/schedule-panel.js +3 -3
- package/dist/packem_chunks/storage-rules-panel.js +2 -2
- package/dist/packem_chunks/subscriptions-panel.js +2 -2
- package/dist/packem_chunks/users-panel.js +577 -111
- package/dist/packem_chunks/vector-browser.js +1 -1
- package/dist/packem_chunks/workflows-panel.js +2 -2
- package/dist/packem_shared/{ApiDocsPanel-D4CJf2ad.js → ApiDocsPanel-CBma-lnp.js} +1 -1
- package/dist/packem_shared/{ApiReferencePanel-Co_wpRF2.js → ApiReferencePanel-CQM3pPN7.js} +1 -1
- package/dist/packem_shared/{CommandPalette-BUPpbpMc.js → CommandPalette-X2tkbyHk.js} +1 -1
- package/dist/packem_shared/{DataBrowser-BeVNxSVm.js → DataBrowser-D2ywrdId.js} +5 -5
- package/dist/packem_shared/{GlobalDataBrowser-ErfvIs1S.js → GlobalDataBrowser-BkTPLzAY.js} +3 -3
- package/dist/packem_shared/{HomePanel-D9MQk8I7.js → HomePanel-D1Q9LZgK.js} +3 -3
- package/dist/packem_shared/{OpenRpcReferencePanel-DLWzrIx9.js → OpenRpcReferencePanel-Dno-hfDb.js} +1 -1
- package/dist/packem_shared/{ScheduledJobs-ClaNpZsg.js → ScheduledJobs-Ctw4jYtU.js} +2 -2
- package/dist/packem_shared/{Studio-C48P1K5W.js → Studio-lJhzDAze.js} +4 -4
- package/dist/packem_shared/{StudioApp-Cqh-SYm2.js → StudioApp-DiMkupvZ.js} +3 -12
- package/dist/packem_shared/{advisor-view-D3-U4kRR.js → advisor-view-BX8OhG0w.js} +1 -1
- package/dist/packem_shared/{browser-storage-tLOxkIHd.js → browser-storage-BTrX4y3B.js} +32 -2
- package/dist/packem_shared/{data-grid-Jz8FqQ2C.js → data-grid-CdXztApG.js} +1 -1
- package/dist/packem_shared/{error-alert-BBT6D22d.js → error-alert-CXjqyGw9.js} +1 -1
- package/dist/packem_shared/{grid-features-CUr8Z1_O.js → grid-features-BF-KBDFz.js} +128 -65
- package/dist/packem_shared/{home-panel-CoGxi-oj.js → home-panel-TFcRf9Ui.js} +272 -22
- package/dist/packem_shared/{internal-DTsYVn-g.js → internal-CYcbqMjX.js} +15 -3
- package/dist/packem_shared/{reference-view-CSKyUyPl.js → reference-view-DUiJcILV.js} +1 -1
- package/dist/packem_shared/{studio-CPHA_-3I.js → studio-Dh9UlaF_.js} +3 -3
- package/dist/packem_shared/{table-list-sidebar-B5psdSV1.js → table-list-sidebar-UVIXQJdU.js} +1 -1
- package/dist/packem_shared/{use-admin-query-BHPKmPuj.js → use-admin-query-CfHYWx5n.js} +1 -1
- package/dist/packem_shared/use-async-submit-DJQiPc-_.js +91 -0
- package/dist/standalone/{chunk-M55U7NHO.js → chunk-23C4TCRO.js} +1 -1
- package/dist/standalone/{chunk-TO4JQX7W.js → chunk-5ZAA2PVR.js} +1 -1
- package/dist/standalone/{chunk-MPTM7ZU3.js → chunk-676HEBIR.js} +1 -1
- package/dist/standalone/{chunk-Y2ZPNDL7.js → chunk-6VO23MMW.js} +1 -1
- package/dist/standalone/{chunk-OIZ4CHPN.js → chunk-7RE5UW27.js} +1 -1
- package/dist/standalone/chunk-7YXOPTWI.js +1 -0
- package/dist/standalone/{chunk-QLM6FYZW.js → chunk-AAVIFQ4Y.js} +1 -1
- package/dist/standalone/{chunk-ATYUMPDM.js → chunk-AJFQ3LNM.js} +1 -1
- package/dist/standalone/chunk-AJULNB46.js +4 -0
- package/dist/standalone/{chunk-6GFEVKJP.js → chunk-BGXOXASQ.js} +1 -1
- package/dist/standalone/{chunk-2THHW7BC.js → chunk-BKW7FFEO.js} +1 -1
- package/dist/standalone/{chunk-YEVCU7TB.js → chunk-BXOYVWJR.js} +1 -1
- package/dist/standalone/{chunk-DVKPRFIJ.js → chunk-C7WTJLC3.js} +1 -1
- package/dist/standalone/{chunk-AJIUI7DD.js → chunk-CACB34RQ.js} +1 -1
- package/dist/standalone/{chunk-DVC6YWVP.js → chunk-CICVBMEN.js} +1 -1
- package/dist/standalone/{chunk-DWTBY343.js → chunk-CWEAJUHW.js} +1 -1
- package/dist/standalone/{chunk-TOJ3TC35.js → chunk-DECHEGIC.js} +1 -1
- package/dist/standalone/{chunk-PVZI3CXP.js → chunk-E75ANNWX.js} +7 -7
- package/dist/standalone/{chunk-OCHNCAXJ.js → chunk-ERJNDIXC.js} +1 -1
- package/dist/standalone/{chunk-RRAFQ5G2.js → chunk-FKACHRWO.js} +1 -1
- package/dist/standalone/{chunk-46K3NKPA.js → chunk-FSGCANAU.js} +1 -1
- package/dist/standalone/chunk-GLUNBZRI.js +1 -0
- package/dist/standalone/{chunk-5OH3VPZF.js → chunk-H6RKXQZU.js} +1 -1
- package/dist/standalone/chunk-HZTGDL4L.js +1 -0
- package/dist/standalone/{chunk-FCSPAJW4.js → chunk-I7ZZRM7I.js} +1 -1
- package/dist/standalone/{chunk-764T6X6X.js → chunk-IXDH4GL5.js} +1 -1
- package/dist/standalone/{chunk-ZU4DZ6NK.js → chunk-J46WXQYL.js} +1 -1
- package/dist/standalone/{chunk-PACH5AHG.js → chunk-JVODY4EP.js} +1 -1
- package/dist/standalone/chunk-KSKXW5PX.js +1 -0
- package/dist/standalone/chunk-L7SK4ZZD.js +1 -0
- package/dist/standalone/chunk-LNZIB2MD.js +1 -0
- package/dist/standalone/{chunk-LD2R263D.js → chunk-LYB5L53X.js} +1 -1
- package/dist/standalone/chunk-MJWVMKQ4.js +6 -0
- package/dist/standalone/chunk-MT2J3H7O.js +3 -0
- package/dist/standalone/{chunk-VTGBPW24.js → chunk-N746FOQP.js} +1 -1
- package/dist/standalone/{chunk-U4OAQPBT.js → chunk-NC6MBMSI.js} +1 -1
- package/dist/standalone/chunk-NN27EDQB.js +1 -0
- package/dist/standalone/chunk-NY6GDADQ.js +1 -0
- package/dist/standalone/{chunk-JE2YOAB7.js → chunk-OY3HD7BJ.js} +1 -1
- package/dist/standalone/{chunk-ILCTSAOB.js → chunk-P5HJXCZS.js} +1 -1
- package/dist/standalone/chunk-PTS5TW3J.js +1 -0
- package/dist/standalone/chunk-QDBOPDJ7.js +1 -0
- package/dist/standalone/{chunk-7SLSB2TS.js → chunk-QHFTGJPS.js} +2 -2
- package/dist/standalone/chunk-SSI4G2MY.js +1 -0
- package/dist/standalone/chunk-TH45YG6Q.js +1 -0
- package/dist/standalone/{chunk-WXPWVBIY.js → chunk-UGUEC6BC.js} +1 -1
- package/dist/standalone/{chunk-K3GNLVYK.js → chunk-UKDJ4H7I.js} +1 -1
- package/dist/standalone/chunk-V6IWFYAQ.js +1 -0
- package/dist/standalone/{chunk-BQUQS7QN.js → chunk-V7SRH36W.js} +1 -1
- package/dist/standalone/chunk-VON7JUPG.js +1 -0
- package/dist/standalone/{chunk-X5P2WRYI.js → chunk-WPNXY7IS.js} +1 -1
- package/dist/standalone/{chunk-PZ7HD5T2.js → chunk-X33MSJPP.js} +1 -1
- package/dist/standalone/{chunk-BI35RXKQ.js → chunk-XRNXOIVZ.js} +1 -1
- package/dist/standalone/{chunk-TDL7NEWA.js → chunk-YBGC4PPD.js} +1 -1
- package/dist/standalone/{chunk-XLQ4BHBD.js → chunk-YNZ7ARWW.js} +1 -1
- package/dist/standalone/{chunk-SLKF2L74.js → chunk-YTO65GHS.js} +1 -1
- package/dist/standalone/{chunk-6WRZP62V.js → chunk-ZE6FT5Z3.js} +1 -1
- package/dist/standalone/studio.js +31 -31
- package/dist/styles.css +1 -1
- package/package.json +4 -4
- package/dist/packem_shared/use-auth-capabilities-C-VH0oJJ.js +0 -32
- package/dist/standalone/chunk-22W5VKZ6.js +0 -1
- package/dist/standalone/chunk-2GGMGPEP.js +0 -1
- package/dist/standalone/chunk-7VF3IAAW.js +0 -2
- package/dist/standalone/chunk-BACPICH6.js +0 -1
- package/dist/standalone/chunk-DORBUITF.js +0 -1
- package/dist/standalone/chunk-EUIHTPKI.js +0 -1
- package/dist/standalone/chunk-IOFMK4D7.js +0 -1
- package/dist/standalone/chunk-LI43EKM6.js +0 -1
- package/dist/standalone/chunk-MPYFGAOW.js +0 -1
- package/dist/standalone/chunk-NKJDGOM3.js +0 -1
- package/dist/standalone/chunk-OY3GVYS7.js +0 -4
- package/dist/standalone/chunk-PN5NCZDX.js +0 -1
- package/dist/standalone/chunk-RSEEHNFI.js +0 -1
- package/dist/standalone/chunk-X7MMBSNW.js +0 -1
- package/dist/standalone/chunk-XUGSA2NG.js +0 -1
- package/dist/standalone/chunk-ZYRGPDZB.js +0 -1
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { useLunora } from '@lunora/react';
|
|
2
|
-
import { useState, useEffect } from 'react';
|
|
3
|
-
import { f as fireAndForget } from './internal-DTsYVn-g.js';
|
|
4
|
-
|
|
5
|
-
const DEFAULT_CAPABILITIES = {
|
|
6
|
-
accounts: true,
|
|
7
|
-
admin: true,
|
|
8
|
-
organization: false,
|
|
9
|
-
passkey: false,
|
|
10
|
-
twoFactor: false
|
|
11
|
-
};
|
|
12
|
-
const useAuthCapabilities = () => {
|
|
13
|
-
const client = useLunora();
|
|
14
|
-
const [capabilities, setCapabilities] = useState(DEFAULT_CAPABILITIES);
|
|
15
|
-
const [ready, setReady] = useState(false);
|
|
16
|
-
useEffect(() => {
|
|
17
|
-
fireAndForget((async () => {
|
|
18
|
-
try {
|
|
19
|
-
setCapabilities(await client.getAuthCapabilities());
|
|
20
|
-
} catch {
|
|
21
|
-
} finally {
|
|
22
|
-
setReady(true);
|
|
23
|
-
}
|
|
24
|
-
})());
|
|
25
|
-
}, [client]);
|
|
26
|
-
return {
|
|
27
|
-
capabilities,
|
|
28
|
-
ready
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export { useAuthCapabilities as u };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as be,b as ge,c as xe,d as Ne,e as Ce}from"./chunk-LI43EKM6.js";import"./chunk-DWDILV2E.js";import{a as ue}from"./chunk-BACPICH6.js";import"./chunk-QBAT52GB.js";import"./chunk-QAFAJBAW.js";import{g as me,h as ve,i as fe,j as pe}from"./chunk-IOFMK4D7.js";import"./chunk-ZPUO7FNI.js";import"./chunk-764T6X6X.js";import"./chunk-XUGSA2NG.js";import"./chunk-5OIBXYZM.js";import"./chunk-ZIGWVHCS.js";import"./chunk-7TJJXVSE.js";import"./chunk-WI7GWFEG.js";import"./chunk-KEGAWN6Y.js";import{a as de,b as ne,c as oe,d as q,e as Q,f as X}from"./chunk-GTM65MVX.js";import{a as ce}from"./chunk-VLXV72QE.js";import{a as W}from"./chunk-JSEXCW5Q.js";import"./chunk-KZ6INM5M.js";import"./chunk-4QHKBC77.js";import{R as le}from"./chunk-3CJW6NWG.js";import{c as $}from"./chunk-UK64ZSUW.js";import"./chunk-O3NAGRTR.js";import"./chunk-HV7G6DFP.js";import"./chunk-BOXSWNXZ.js";import{a as ye}from"./chunk-TAD43CG5.js";import"./chunk-DVKPRFIJ.js";import{a as re,e as se}from"./chunk-SEU5V7I6.js";import{b as he}from"./chunk-ZPP2KOR4.js";import"./chunk-CKSHCYGC.js";import{f as Y}from"./chunk-X7MMBSNW.js";import"./chunk-ZHVTQ37P.js";import"./chunk-3OA7PECS.js";import{d as U,g as z,k as H,l as ie,m as ke}from"./chunk-PVZI3CXP.js";import"./chunk-GMSGZDDH.js";import{a as n,e as ae,f as Me,g as Le,h as Be}from"./chunk-RRCPZMC2.js";var J=ae(Me(),1);var ee=ae(Le(),1);var l=ae(Be(),1);var De=n(r=>{let e=r.trim();if(e==="")return;let s=Number(e);return Number.isFinite(s)&&s>0?Math.floor(s):void 0},"parseTtl"),Oe=n(r=>r===void 0?"\u2014":new Date(r*1e3).toISOString(),"formatExpiration"),Ae=n(r=>new TextEncoder().encode(r).length,"byteLength"),Te=n(r=>{if(r.trim()!=="")try{return JSON.stringify(JSON.parse(r),void 0,2)}catch{return}},"tryFormatJson"),Ee=n(r=>{if(r.trim()==="")return!0;try{return JSON.parse(r),!0}catch{return!1}},"isJsonOrEmpty"),Fe=[{key:"seconds",seconds:1},{key:"minutes",seconds:60},{key:"hours",seconds:3600},{key:"days",seconds:86400}],Se=n((r,e)=>{let s=r.trim();if(s==="")return"";let u=Number(s),d=Fe.find(f=>f.key===e)?.seconds??1;return Number.isFinite(u)&&u>0?String(Math.round(u*d)):s},"ttlToSeconds"),Ke=n(r=>{let e=r.trim();if(e==="")return!0;let s=Number(e);return Number.isInteger(s)&&s>=60},"isTtlValid"),Ve=n((r,e,s,u)=>{let d=De(r.ttl);return{expiration:d===void 0?u:void 0,expirationTtl:d,key:e,metadata:r.metadata.trim()===""?void 0:JSON.parse(r.metadata),namespace:s,value:r.value}},"buildKvPutOptions"),Ie=n(r=>{let e=(0,ee.c)(60),{helper:s,id:u,invalid:d,onChange:f,testId:o}=r,t=U(),[a,p]=(0,J.useState)(""),[c,x]=(0,J.useState)("seconds"),b;e[0]!==f||e[1]!==c?(b=n(g=>{p(g.target.value),f(Se(g.target.value,c))},"t1"),e[0]=f,e[1]=c,e[2]=b):b=e[2];let M=b,V;e[3]!==a||e[4]!==f?(V=n(g=>{g!==null&&(x(g),f(Se(a,g)))},"t2"),e[3]=a,e[4]=f,e[5]=V):V=e[5];let L=V,h;e[6]!==t?(h=t("days"),e[6]=t,e[7]=h):h=e[7];let v;e[8]!==t?(v=t("hours"),e[8]=t,e[9]=v):v=e[9];let y;e[10]!==t?(y=t("minutes"),e[10]=t,e[11]=y):y=e[11];let N;e[12]!==t?(N=t("seconds"),e[12]=t,e[13]=N):N=e[13];let C;e[14]!==h||e[15]!==v||e[16]!==y||e[17]!==N?(C={days:h,hours:v,minutes:y,seconds:N},e[14]=h,e[15]=v,e[16]=y,e[17]=N,e[18]=C):C=e[18];let S=C,k;e[19]!==t?(k=t("Expires after"),e[19]=t,e[20]=k):k=e[20];let w;e[21]!==u||e[22]!==k?(w=(0,l.jsxDEV)(W,{className:"text-xs",htmlFor:u,children:k},void 0,!1),e[21]=u,e[22]=k,e[23]=w):w=e[23];let E;e[24]!==t?(E=t("No expiration"),e[24]=t,e[25]=E):E=e[25];let B;e[26]!==a||e[27]!==u||e[28]!==d||e[29]!==M||e[30]!==E||e[31]!==o?(B=(0,l.jsxDEV)(le,{"aria-invalid":d,className:"flex-1","data-testid":o,id:u,inputMode:"numeric",onChange:M,placeholder:E,value:a},void 0,!1),e[26]=a,e[27]=u,e[28]=d,e[29]=M,e[30]=E,e[31]=o,e[32]=B):B=e[32];let I;e[33]!==t?(I=t("TTL unit"),e[33]=t,e[34]=I):I=e[34];let O=`${o}-unit`,D;e[35]===Symbol.for("react.memo_cache_sentinel")?(D=(0,l.jsxDEV)(ge,{},void 0,!1),e[35]=D):D=e[35];let i;e[36]!==I||e[37]!==O?(i=(0,l.jsxDEV)(xe,{"aria-label":I,className:"w-[7.5rem]","data-testid":O,children:D},void 0,!1),e[36]=I,e[37]=O,e[38]=i):i=e[38];let m;e[39]!==S?(m=Fe.map(g=>(0,l.jsxDEV)(Ce,{value:g.key,children:S[g.key]},g.key,!1)),e[39]=S,e[40]=m):m=e[40];let K;e[41]!==m?(K=(0,l.jsxDEV)(Ne,{children:m},void 0,!1),e[41]=m,e[42]=K):K=e[42];let T;e[43]!==L||e[44]!==i||e[45]!==K||e[46]!==c?(T=(0,l.jsxDEV)(be,{onValueChange:L,value:c,children:[i,K]},void 0,!0),e[43]=L,e[44]=i,e[45]=K,e[46]=c,e[47]=T):T=e[47];let _;e[48]!==B||e[49]!==T?(_=(0,l.jsxDEV)("div",{className:"flex gap-2",children:[B,T]},void 0,!0),e[48]=B,e[49]=T,e[50]=_):_=e[50];let F;e[51]!==s||e[52]!==d||e[53]!==t||e[54]!==o?(F=d?(0,l.jsxDEV)("p",{className:"text-xs text-destructive","data-testid":`${o}-invalid`,children:t("TTL must be at least 60 seconds.")},void 0,!1):s!==void 0&&(0,l.jsxDEV)("p",{className:"text-xs text-muted-foreground",children:s},void 0,!1),e[51]=s,e[52]=d,e[53]=t,e[54]=o,e[55]=F):F=e[55];let A;return e[56]!==_||e[57]!==F||e[58]!==w?(A=(0,l.jsxDEV)("div",{className:"mb-3 grid gap-1",children:[w,_,F]},void 0,!0),e[56]=_,e[57]=F,e[58]=w,e[59]=A):A=e[59],A},"TtlField"),_e=n(r=>{let e=(0,ee.c)(36),{id:s,invalidTestId:u,onChange:d,testId:f,valid:o,value:t}=r,a=U(),p;e[0]!==t?(p=Te(t),e[0]=t,e[1]=p):p=e[1];let c=p,x;e[2]!==a?(x=a("Metadata (JSON)"),e[2]=a,e[3]=x):x=e[3];let b;e[4]!==s||e[5]!==x?(b=(0,l.jsxDEV)(W,{className:"text-xs",htmlFor:s,children:x},void 0,!1),e[4]=s,e[5]=x,e[6]=b):b=e[6];let M=`${f}-format`,V=c===void 0,L;e[7]!==c||e[8]!==d?(L=n(()=>{c!==void 0&&d(c)},"t6"),e[7]=c,e[8]=d,e[9]=L):L=e[9];let h;e[10]!==a?(h=a("Format JSON"),e[10]=a,e[11]=h):h=e[11];let v;e[12]!==M||e[13]!==V||e[14]!==L||e[15]!==h?(v=(0,l.jsxDEV)($,{"data-testid":M,disabled:V,onClick:L,size:"sm",variant:"outline",children:h},void 0,!1),e[12]=M,e[13]=V,e[14]=L,e[15]=h,e[16]=v):v=e[16];let y;e[17]!==b||e[18]!==v?(y=(0,l.jsxDEV)("div",{className:"flex items-center justify-between gap-2",children:[b,v]},void 0,!0),e[17]=b,e[18]=v,e[19]=y):y=e[19];let N=!o,C;e[20]!==d?(C=n(E=>{d(E.target.value)},"t11"),e[20]=d,e[21]=C):C=e[21];let S;e[22]!==s||e[23]!==N||e[24]!==C||e[25]!==f||e[26]!==t?(S=(0,l.jsxDEV)(ce,{"aria-invalid":N,className:"min-h-[4rem] font-mono text-xs","data-testid":f,id:s,onChange:C,value:t},void 0,!1),e[22]=s,e[23]=N,e[24]=C,e[25]=f,e[26]=t,e[27]=S):S=e[27];let k;e[28]!==u||e[29]!==a||e[30]!==o?(k=!o&&(0,l.jsxDEV)("p",{className:"text-xs text-destructive","data-testid":u,children:a("Metadata must be valid JSON.")},void 0,!1),e[28]=u,e[29]=a,e[30]=o,e[31]=k):k=e[31];let w;return e[32]!==S||e[33]!==k||e[34]!==y?(w=(0,l.jsxDEV)("div",{className:"mb-3 grid gap-1",children:[y,S,k]},void 0,!0),e[32]=S,e[33]=k,e[34]=y,e[35]=w):w=e[35],w},"MetadataField"),Je={busy:!1,error:null,metadata:"",name:"",ttl:"",value:""},Pe=n((r,e)=>{switch(e.type){case"setField":return{...r,[e.field]:e.value};case"submitFailed":return{...r,busy:!1,error:e.error};case"submitStart":return{...r,busy:!0,error:null};default:return r}},"createReducer"),$e=n(r=>{let e=(0,ee.c)(73),{namespace:s,onCancel:u,onCreated:d}=r,f=Y(),o=U(),[t,a]=(0,J.useReducer)(Pe,Je),p;e[0]!==t.metadata?(p=Ee(t.metadata),e[0]=t.metadata,e[1]=p):p=e[1];let c=p,x;e[2]!==t.ttl?(x=Ke(t.ttl),e[2]=t.ttl,e[3]=x):x=e[3];let b=x,M;e[4]!==c||e[5]!==t.busy||e[6]!==t.name||e[7]!==b?(M=t.name.trim()!==""&&c&&b&&!t.busy,e[4]=c,e[5]=t.busy,e[6]=t.name,e[7]=b,e[8]=M):M=e[8];let V=M,L;e[9]!==V||e[10]!==f||e[11]!==s||e[12]!==d||e[13]!==t.metadata||e[14]!==t.name||e[15]!==t.ttl||e[16]!==t.value?(L=n(()=>{V&&(a({type:"submitStart"}),H((async()=>{try{await f.putKvValue(Ve({metadata:t.metadata,ttl:t.ttl,value:t.value},t.name,s)),d()}catch(j){a({error:z(j),type:"submitFailed"})}})()))},"t4"),e[9]=V,e[10]=f,e[11]=s,e[12]=d,e[13]=t.metadata,e[14]=t.name,e[15]=t.ttl,e[16]=t.value,e[17]=L):L=e[17];let h=L,v;e[18]!==o?(v=o("Key name"),e[18]=o,e[19]=v):v=e[19];let y;e[20]!==v?(y=(0,l.jsxDEV)(W,{className:"text-xs",htmlFor:"kv-create-name",children:v},void 0,!1),e[20]=v,e[21]=y):y=e[21];let N;e[22]===Symbol.for("react.memo_cache_sentinel")?(N=n(j=>{a({field:"name",type:"setField",value:j.target.value})},"t7"),e[22]=N):N=e[22];let C;e[23]!==o?(C=o("Key name"),e[23]=o,e[24]=C):C=e[24];let S;e[25]!==t.name||e[26]!==C?(S=(0,l.jsxDEV)(le,{autoFocus:!0,"data-testid":"kv-create-name",id:"kv-create-name",onChange:N,placeholder:C,value:t.name},void 0,!1),e[25]=t.name,e[26]=C,e[27]=S):S=e[27];let k;e[28]!==y||e[29]!==S?(k=(0,l.jsxDEV)("div",{className:"grid gap-1",children:[y,S]},void 0,!0),e[28]=y,e[29]=S,e[30]=k):k=e[30];let w;e[31]!==o?(w=o("Value"),e[31]=o,e[32]=w):w=e[32];let E;e[33]!==w?(E=(0,l.jsxDEV)(W,{className:"text-xs",htmlFor:"kv-create-value",children:w},void 0,!1),e[33]=w,e[34]=E):E=e[34];let B;e[35]===Symbol.for("react.memo_cache_sentinel")?(B=n(j=>{a({field:"value",type:"setField",value:j.target.value})},"t13"),e[35]=B):B=e[35];let I;e[36]!==t.value?(I=(0,l.jsxDEV)(ce,{className:"min-h-[6rem] font-mono text-xs","data-testid":"kv-create-value",id:"kv-create-value",onChange:B,value:t.value},void 0,!1),e[36]=t.value,e[37]=I):I=e[37];let O;e[38]!==E||e[39]!==I?(O=(0,l.jsxDEV)("div",{className:"grid gap-1",children:[E,I]},void 0,!0),e[38]=E,e[39]=I,e[40]=O):O=e[40];let D=!b,i;e[41]===Symbol.for("react.memo_cache_sentinel")?(i=n(j=>{a({field:"ttl",type:"setField",value:j})},"t17"),e[41]=i):i=e[41];let m;e[42]!==D?(m=(0,l.jsxDEV)(Ie,{id:"kv-create-ttl",invalid:D,onChange:i,testId:"kv-create-ttl"},void 0,!1),e[42]=D,e[43]=m):m=e[43];let K;e[44]===Symbol.for("react.memo_cache_sentinel")?(K=n(j=>{a({field:"metadata",type:"setField",value:j})},"t19"),e[44]=K):K=e[44];let T;e[45]!==c||e[46]!==t.metadata?(T=(0,l.jsxDEV)(_e,{id:"kv-create-metadata",invalidTestId:"kv-create-metadata-invalid",onChange:K,testId:"kv-create-metadata",valid:c,value:t.metadata},void 0,!1),e[45]=c,e[46]=t.metadata,e[47]=T):T=e[47];let _=!V,F;e[48]!==t.busy||e[49]!==o?(F=t.busy?o("Creating\u2026"):o("Create key"),e[48]=t.busy,e[49]=o,e[50]=F):F=e[50];let A;e[51]!==h||e[52]!==_||e[53]!==F?(A=(0,l.jsxDEV)($,{"data-testid":"kv-create-submit",disabled:_,onClick:h,children:F},void 0,!1),e[51]=h,e[52]=_,e[53]=F,e[54]=A):A=e[54];let g=t.busy,P;e[55]!==o?(P=o("Cancel"),e[55]=o,e[56]=P):P=e[56];let R;e[57]!==u||e[58]!==t.busy||e[59]!==P?(R=(0,l.jsxDEV)($,{"data-testid":"kv-create-cancel",disabled:g,onClick:u,variant:"outline",children:P},void 0,!1),e[57]=u,e[58]=t.busy,e[59]=P,e[60]=R):R=e[60];let Z;e[61]!==A||e[62]!==R?(Z=(0,l.jsxDEV)("div",{className:"flex flex-wrap gap-2",children:[A,R]},void 0,!0),e[61]=A,e[62]=R,e[63]=Z):Z=e[63];let G;e[64]!==t.error?(G=t.error!==null&&(0,l.jsxDEV)("p",{className:"text-sm text-destructive","data-testid":"kv-create-error",role:"alert",children:t.error},void 0,!1),e[64]=t.error,e[65]=G):G=e[65];let te;return e[66]!==k||e[67]!==O||e[68]!==m||e[69]!==T||e[70]!==Z||e[71]!==G?(te=(0,l.jsxDEV)("div",{className:"grid gap-3 px-4 pb-4","data-testid":"kv-create-form",children:[k,O,m,T,Z,G]},void 0,!0),e[66]=k,e[67]=O,e[68]=m,e[69]=T,e[70]=Z,e[71]=G,e[72]=te):te=e[72],te},"KvCreateForm"),je={busy:"",editedMetadata:"",editedTtl:"",editedValue:"",loadError:null,loading:!0,value:null,writeError:null},He=n((r,e)=>{switch(e.type){case"deleteStart":return{...r,busy:"deleting",writeError:null};case"editMetadata":return{...r,editedMetadata:e.value};case"editTtl":return{...r,editedTtl:e.value};case"editValue":return{...r,editedValue:e.value};case"loaded":return{...r,editedMetadata:e.metadata===null||e.metadata===void 0?"":JSON.stringify(e.metadata,null,2),editedValue:e.value??"",loading:!1,value:e.value};case"loadFailed":return{...r,loadError:e.error,loading:!1};case"saveOk":return{...r,busy:"",value:r.editedValue};case"saveStart":return{...r,busy:"saving",writeError:null};case"writeFailed":return{...r,busy:"",writeError:e.error};default:return r}},"valueReducer"),Re=n(r=>{let e=(0,ee.c)(67),{expiration:s,keyName:u,namespace:d,onDeleted:f}=r,o=Y(),t=U(),[a,p]=(0,J.useReducer)(He,je),c,x;e[0]!==o||e[1]!==u||e[2]!==d?(c=n(()=>{let g={cancelled:!1};return H((async()=>{try{let P=await o.getKvValue({key:u,namespace:d});g.cancelled||p({metadata:P.metadata,type:"loaded",value:P.value})}catch(P){let R=P;g.cancelled||p({error:z(R),type:"loadFailed"})}})()),()=>{g.cancelled=!0}},"t1"),x=[o,d,u],e[0]=o,e[1]=u,e[2]=d,e[3]=c,e[4]=x):(c=e[3],x=e[4]),(0,J.useEffect)(c,x);let b;e[5]===Symbol.for("react.memo_cache_sentinel")?(b=n(g=>{p({type:"editValue",value:g.target.value})},"t3"),e[5]=b):b=e[5];let M=b,V;e[6]===Symbol.for("react.memo_cache_sentinel")?(V=n(g=>{p({type:"editMetadata",value:g})},"t4"),e[6]=V):V=e[6];let L=V,h;e[7]!==a.editedValue?(h=Te(a.editedValue),e[7]=a.editedValue,e[8]=h):h=e[8];let v=h,y;e[9]!==a.editedMetadata?(y=Ee(a.editedMetadata),e[9]=a.editedMetadata,e[10]=y):y=e[10];let N=y,C;e[11]!==a.editedTtl?(C=Ke(a.editedTtl),e[11]=a.editedTtl,e[12]=C):C=e[12];let S=C,k;e[13]!==v?(k=n(()=>{v!==void 0&&p({type:"editValue",value:v})},"t8"),e[13]=v,e[14]=k):k=e[14];let w=k,E;e[15]!==o||e[16]!==s||e[17]!==u||e[18]!==N||e[19]!==d||e[20]!==a.editedMetadata||e[21]!==a.editedTtl||e[22]!==a.editedValue||e[23]!==t?(E=n(()=>{if(!N){p({error:t("Metadata must be valid JSON."),type:"writeFailed"});return}p({type:"saveStart"}),H((async()=>{try{await o.putKvValue(Ve({metadata:a.editedMetadata,ttl:a.editedTtl,value:a.editedValue},u,d,s)),p({type:"saveOk"})}catch(g){p({error:z(g),type:"writeFailed"})}})())},"t9"),e[15]=o,e[16]=s,e[17]=u,e[18]=N,e[19]=d,e[20]=a.editedMetadata,e[21]=a.editedTtl,e[22]=a.editedValue,e[23]=t,e[24]=E):E=e[24];let B=E,I;e[25]!==o||e[26]!==u||e[27]!==d||e[28]!==f?(I=n(()=>{p({type:"deleteStart"}),H((async()=>{try{await o.deleteKvKey({key:u,namespace:d}),f(u)}catch(g){p({error:z(g),type:"writeFailed"})}})())},"t10"),e[25]=o,e[26]=u,e[27]=d,e[28]=f,e[29]=I):I=e[29];let O=I,D;e[30]!==u?(D=n(()=>{ie(u)},"t11"),e[30]=u,e[31]=D):D=e[31];let i;e[32]!==t?(i=t("Copy key"),e[32]=t,e[33]=i):i=e[33];let m;e[34]!==D||e[35]!==i?(m=(0,l.jsxDEV)("div",{className:"mb-2 flex justify-end",children:(0,l.jsxDEV)($,{"data-testid":"kv-copy-key-btn",onClick:D,size:"sm",variant:"outline",children:i},void 0,!1)},void 0,!1),e[34]=D,e[35]=i,e[36]=m):m=e[36];let K;e[37]!==a.loadError?(K=a.loadError!==null&&(0,l.jsxDEV)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-value-error",role:"alert",children:a.loadError},void 0,!1),e[37]=a.loadError,e[38]=K):K=e[38];let T;e[39]!==a.loading||e[40]!==t?(T=a.loading&&(0,l.jsxDEV)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-value-loading",children:t("Loading\u2026")},void 0,!1),e[39]=a.loading,e[40]=t,e[41]=T):T=e[41];let _;e[42]!==v||e[43]!==N||e[44]!==O||e[45]!==w||e[46]!==B||e[47]!==a.busy||e[48]!==a.editedMetadata||e[49]!==a.editedValue||e[50]!==a.loading||e[51]!==a.value||e[52]!==a.writeError||e[53]!==t||e[54]!==S?(_=!a.loading&&a.value!==null&&(0,l.jsxDEV)(l.Fragment,{children:[(0,l.jsxDEV)("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[(0,l.jsxDEV)(W,{className:"text-xs",htmlFor:"kv-value-editor",children:t("Value")},void 0,!1),v!==void 0&&(0,l.jsxDEV)(he,{variant:"secondary",children:t("JSON")},void 0,!1),(0,l.jsxDEV)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground","data-testid":"kv-value-size",children:ke(Ae(a.editedValue))},void 0,!1)]},void 0,!0),(0,l.jsxDEV)("textarea",{"aria-label":t("KV value"),className:"mb-2 min-h-[8rem] w-full rounded border border-border bg-muted/30 p-2 font-mono text-xs","data-testid":"kv-value-editor",id:"kv-value-editor",onChange:M,value:a.editedValue},void 0,!1),(0,l.jsxDEV)("div",{className:"mb-3 flex flex-wrap gap-2",children:[(0,l.jsxDEV)($,{"data-testid":"kv-format-btn",disabled:v===void 0,onClick:w,size:"sm",variant:"outline",children:t("Format JSON")},void 0,!1),(0,l.jsxDEV)($,{"data-testid":"kv-copy-value-btn",onClick:n(()=>{ie(a.editedValue)},"onClick"),size:"sm",variant:"outline",children:t("Copy value")},void 0,!1)]},void 0,!0),(0,l.jsxDEV)(Ie,{helper:t("Leave blank to keep the current expiration."),id:"kv-ttl-input",invalid:!S,onChange:n(g=>{p({type:"editTtl",value:g})},"onChange"),testId:"kv-ttl-input"},void 0,!1),(0,l.jsxDEV)(_e,{id:"kv-metadata-editor",invalidTestId:"kv-metadata-invalid",onChange:L,testId:"kv-metadata-editor",valid:N,value:a.editedMetadata},void 0,!1),(0,l.jsxDEV)("div",{className:"flex flex-wrap gap-2",children:[(0,l.jsxDEV)($,{"data-testid":"kv-save-btn",disabled:a.busy!==""||!N||!S,onClick:B,children:a.busy==="saving"?t("Saving\u2026"):t("Save")},void 0,!1),(0,l.jsxDEV)($,{"data-testid":"kv-delete-btn",disabled:a.busy!=="",onClick:O,variant:"destructive",children:a.busy==="deleting"?t("Deleting\u2026"):t("Delete")},void 0,!1)]},void 0,!0),a.writeError!==null&&(0,l.jsxDEV)("p",{className:"mt-2 text-sm text-destructive","data-testid":"kv-save-error",role:"alert",children:a.writeError},void 0,!1)]},void 0,!0),e[42]=v,e[43]=N,e[44]=O,e[45]=w,e[46]=B,e[47]=a.busy,e[48]=a.editedMetadata,e[49]=a.editedValue,e[50]=a.loading,e[51]=a.value,e[52]=a.writeError,e[53]=t,e[54]=S,e[55]=_):_=e[55];let F;e[56]!==a.loadError||e[57]!==a.loading||e[58]!==a.value||e[59]!==t?(F=!a.loading&&a.value===null&&a.loadError===null&&(0,l.jsxDEV)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-absent",children:t("Key is absent or has no value.")},void 0,!1),e[56]=a.loadError,e[57]=a.loading,e[58]=a.value,e[59]=t,e[60]=F):F=e[60];let A;return e[61]!==m||e[62]!==K||e[63]!==T||e[64]!==_||e[65]!==F?(A=(0,l.jsxDEV)("div",{className:"px-4 pb-4","data-testid":"kv-value-section",children:[m,K,T,_,F]},void 0,!0),e[61]=m,e[62]=K,e[63]=T,e[64]=_,e[65]=F,e[66]=A):A=e[66],A},"KvValueEditor"),we=100,ze={appliedPrefix:"",bulk:[],bulkBusy:!1,bulkError:null,cursor:null,keys:null,listComplete:!1,loadError:null,loading:!1,prefixInput:"",reloadNonce:0,selectedKey:null},Ue=n((r,e)=>{switch(e.type){case"appendPage":return{...r,cursor:e.cursor,keys:[...r.keys??[],...e.keys],listComplete:e.listComplete,loading:!1};case"applyFilter":return{...r,appliedPrefix:r.prefixInput,bulk:[],bulkError:null,cursor:null,keys:null,listComplete:!1,selectedKey:null};case"bulkDeleted":{let s=new Set(e.deleted);return{...r,bulk:r.bulk.filter(u=>!s.has(u)),bulkBusy:!1,bulkError:e.error,keys:r.keys===null?null:r.keys.filter(u=>!s.has(u.name)),selectedKey:r.selectedKey!==null&&s.has(r.selectedKey)?null:r.selectedKey}}case"bulkDeleteStart":return{...r,bulkBusy:!0,bulkError:null};case"firstPage":return{...r,cursor:e.cursor,keys:e.keys,listComplete:e.listComplete,loading:!1};case"keyDeleted":return{...r,bulk:r.bulk.filter(s=>s!==e.name),keys:r.keys===null?null:r.keys.filter(s=>s.name!==e.name),selectedKey:null};case"loadFailed":return{...r,loadError:e.error,loading:!1};case"loadStart":return{...r,loadError:null,loading:!0};case"prefixInput":return{...r,prefixInput:e.value};case"reload":return{...r,bulk:[],bulkError:null,reloadNonce:r.reloadNonce+1,selectedKey:null};case"selectKey":return{...r,selectedKey:e.name};case"toggleAllBulk":return{...r,bulk:e.names};case"toggleBulk":return{...r,bulk:r.bulk.includes(e.name)?r.bulk.filter(s=>s!==e.name):[...r.bulk,e.name]};default:return r}},"keyListReducer"),Ze=n(({namespace:r})=>{let e=Y(),s=U(),[u,d]=(0,J.useReducer)(Ue,ze),{appliedPrefix:f,bulk:o,bulkBusy:t,bulkError:a,cursor:p,keys:c,listComplete:x,loadError:b,loading:M,prefixInput:V,reloadNonce:L,selectedKey:h}=u,[v,y]=(0,J.useState)(!1);(0,J.useEffect)(()=>{let i={cancelled:!1};return H((async()=>{d({type:"loadStart"});try{let m=await e.listKvKeys({limit:we,namespace:r,prefix:f===""?void 0:f});i.cancelled||d({cursor:m.cursor??null,keys:m.keys,listComplete:m.listComplete,type:"firstPage"})}catch(m){i.cancelled||d({error:z(m),type:"loadFailed"})}})()),()=>{i.cancelled=!0}},[e,r,f,L]);let N=n(i=>{d({type:"prefixInput",value:i.target.value})},"onPrefixChange"),C=n(()=>{d({type:"applyFilter"})},"onFilter"),S=n(i=>{d({name:i.currentTarget.dataset.key??null,type:"selectKey"})},"onSelectKey"),k=n(()=>{p!==null&&(d({type:"loadStart"}),H((async()=>{try{let i=await e.listKvKeys({cursor:p,limit:we,namespace:r,prefix:f===""?void 0:f});d({cursor:i.cursor??null,keys:i.keys,listComplete:i.listComplete,type:"appendPage"})}catch(i){d({error:z(i),type:"loadFailed"})}})()))},"onLoadMore"),w=n(i=>{d({name:i,type:"keyDeleted"})},"onKeyDeleted"),E=n(i=>{d({name:i,type:"toggleBulk"})},"onToggleBulk"),B=n(i=>{d({names:i&&c!==null?c.map(m=>m.name):[],type:"toggleAllBulk"})},"onToggleAll"),I=n(()=>{if(o.length===0)return;let i=[...o];d({type:"bulkDeleteStart"}),H((async()=>{let m=await Promise.allSettled(i.map(_=>e.deleteKvKey({key:_,namespace:r}))),K=i.filter((_,F)=>m[F]?.status==="fulfilled"),T=i.length-K.length;d({deleted:K,error:T>0?s("Failed to delete {count} keys.",{count:T}):null,type:"bulkDeleted"})})())},"onBulkDelete"),O=n(()=>{y(!1),d({type:"reload"})},"onCreated"),D=c!==null&&c.length>0&&o.length===c.length;return(0,l.jsxDEV)(l.Fragment,{children:[(0,l.jsxDEV)("section",{className:"border border-border bg-card p-3","data-testid":"kv-keys-section",children:[(0,l.jsxDEV)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[(0,l.jsxDEV)(le,{"aria-label":s("Filter keys by prefix"),className:"min-w-[16rem] flex-1","data-testid":"kv-prefix-input",onChange:N,placeholder:s("Filter by prefix\u2026"),value:V},void 0,!1),(0,l.jsxDEV)($,{"data-testid":"kv-filter-btn",disabled:M,onClick:C,children:s("Filter")},void 0,!1),(0,l.jsxDEV)($,{"data-testid":"kv-new-key-btn",onClick:n(()=>{y(i=>!i)},"onClick"),variant:"outline",children:s("New key")},void 0,!1),o.length>0&&(0,l.jsxDEV)($,{"data-testid":"kv-bulk-delete-btn",disabled:t,onClick:I,variant:"destructive",children:t?s("Deleting\u2026"):s("Delete {count}",{count:o.length})},void 0,!1)]},void 0,!0),a!==null&&(0,l.jsxDEV)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-bulk-error",role:"alert",children:a},void 0,!1),b!==null&&(0,l.jsxDEV)("p",{className:"text-sm text-destructive","data-testid":"kv-keys-error",role:"alert",children:b},void 0,!1),c!==null&&c.length===0&&!M&&(0,l.jsxDEV)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-no-keys",children:s("No keys.")},void 0,!1),c!==null&&c.length>0&&(0,l.jsxDEV)(re,{className:"overflow-hidden py-0",children:(0,l.jsxDEV)(se,{className:"px-0",children:(0,l.jsxDEV)(de,{"data-testid":"kv-key-table",children:[(0,l.jsxDEV)(ne,{children:(0,l.jsxDEV)(q,{children:[(0,l.jsxDEV)(Q,{className:"w-10",children:(0,l.jsxDEV)(ue,{"aria-label":s("Select all"),checked:D,"data-testid":"kv-select-all",onCheckedChange:B},void 0,!1)},void 0,!1),(0,l.jsxDEV)(Q,{children:s("Key")},void 0,!1),(0,l.jsxDEV)(Q,{children:s("Expiration")},void 0,!1)]},void 0,!0)},void 0,!1),(0,l.jsxDEV)(oe,{children:c.map(i=>(0,l.jsxDEV)(q,{className:i.name===h?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-key":i.name,"data-testid":`kv-key-row-${i.name}`,onClick:S,children:[(0,l.jsxDEV)(X,{onClick:n(m=>{m.stopPropagation()},"onClick"),children:(0,l.jsxDEV)(ue,{"aria-label":s("Select {name}",{name:i.name}),checked:o.includes(i.name),"data-testid":`kv-select-${i.name}`,onCheckedChange:n(()=>{E(i.name)},"onCheckedChange")},void 0,!1)},void 0,!1),(0,l.jsxDEV)(X,{className:"font-mono text-xs",children:i.name},void 0,!1),(0,l.jsxDEV)(X,{className:"tabular-nums text-xs",children:Oe(i.expiration)},void 0,!1)]},i.name,!0))},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1),!x&&p!==null&&(0,l.jsxDEV)("div",{className:"mt-2",children:(0,l.jsxDEV)($,{"data-testid":"kv-load-more",disabled:M,onClick:k,variant:"outline",children:s(M?"Loading\u2026":"Load more")},void 0,!1)},void 0,!1)]},void 0,!0),(0,l.jsxDEV)(me,{onOpenChange:n(i=>{i||y(!1)},"onOpenChange"),open:v,children:(0,l.jsxDEV)(ve,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-create-sheet",side:"right",children:[(0,l.jsxDEV)(fe,{children:(0,l.jsxDEV)(pe,{children:s("New key")},void 0,!1)},void 0,!1),(0,l.jsxDEV)($e,{namespace:r,onCancel:n(()=>{y(!1)},"onCancel"),onCreated:O},void 0,!1)]},void 0,!0)},void 0,!1),(0,l.jsxDEV)(me,{onOpenChange:n(i=>{i||d({name:null,type:"selectKey"})},"onOpenChange"),open:h!==null,children:(0,l.jsxDEV)(ve,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-editor-sheet",side:"right",children:[(0,l.jsxDEV)(fe,{children:(0,l.jsxDEV)(pe,{className:"truncate font-mono text-xs",children:h},void 0,!1)},void 0,!1),h!==null&&(0,l.jsxDEV)(Re,{expiration:c?.find(i=>i.name===h)?.expiration,keyName:h,namespace:r,onDeleted:w},`${r}:${h}`,!1)]},void 0,!0)},void 0,!1)]},void 0,!0)},"KvKeyList"),ot=n(({loadNamespaces:r}={})=>{let e=Y(),s=U(),[u,d]=(0,J.useState)(null),[f,o]=(0,J.useState)(null),[t,a]=(0,J.useState)(null);(0,J.useEffect)(()=>{let c={cancelled:!1};return H((async()=>{try{let x=await(r??(()=>e.listKvNamespaces()))();c.cancelled||(d(x),o(null),a(b=>b??x[0]?.binding??null))}catch(x){c.cancelled||(d(null),o(z(x)))}})()),()=>{c.cancelled=!0}},[e,r]);let p=n(c=>{a(c.currentTarget.dataset.ns??null)},"onSelectNs");return(0,l.jsxDEV)("div",{className:"flex flex-col gap-4","data-testid":"lunora-kv-browser",children:[f!==null&&(0,l.jsxDEV)("p",{className:"text-sm text-destructive","data-testid":"kv-ns-error",role:"alert",children:f},void 0,!1),u!==null&&u.length===0&&(0,l.jsxDEV)(ye,{description:s("Add a kv_namespaces binding to wrangler.jsonc \u2014 it appears here automatically, no wiring needed."),icon:(0,l.jsxDEV)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,l.jsxDEV)("path",{d:"M5 5h14v4H5V5Zm0 5h14v4H5v-4Zm0 5h14v4H5v-4Z"},void 0,!1)},void 0,!1),testId:"kv-empty",title:s("No KV namespaces.")},void 0,!1),u!==null&&u.length>0&&(0,l.jsxDEV)(re,{className:"overflow-hidden py-0",children:(0,l.jsxDEV)(se,{className:"px-0",children:(0,l.jsxDEV)(de,{"data-testid":"kv-namespace-table",children:[(0,l.jsxDEV)(ne,{children:(0,l.jsxDEV)(q,{children:(0,l.jsxDEV)(Q,{children:s("Namespace")},void 0,!1)},void 0,!1)},void 0,!1),(0,l.jsxDEV)(oe,{children:u.map(c=>(0,l.jsxDEV)(q,{className:c.binding===t?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-ns":c.binding,"data-testid":`kv-ns-row-${c.binding}`,onClick:p,children:(0,l.jsxDEV)(X,{className:"font-mono text-xs",children:c.binding},void 0,!1)},c.binding,!1))},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1),t!==null&&(0,l.jsxDEV)(Ze,{namespace:t},t,!1)]},void 0,!0)},"KvBrowser");export{ot as KvBrowser};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as Ae}from"./chunk-MPYFGAOW.js";import{a as we}from"./chunk-J6J54MBP.js";import{a as ve,b as ge,c as pe,d as K,e as O,f as T}from"./chunk-GTM65MVX.js";import{c as fe}from"./chunk-UK64ZSUW.js";import"./chunk-O3NAGRTR.js";import{a as he}from"./chunk-TAD43CG5.js";import{a as re}from"./chunk-DVKPRFIJ.js";import{a as me,e as ue}from"./chunk-SEU5V7I6.js";import"./chunk-CKSHCYGC.js";import{f as xe}from"./chunk-X7MMBSNW.js";import"./chunk-ZHVTQ37P.js";import"./chunk-3OA7PECS.js";import{d as ce,j as w,k as ye,n as ze}from"./chunk-PVZI3CXP.js";import"./chunk-GMSGZDDH.js";import{a as o,e as de,f as Oe,g as Te,h as _e}from"./chunk-RRCPZMC2.js";var be=de(Te(),1);var Ie=de(Oe(),1);var i=de(_e(),1);var Ce=o(e=>{let t=(0,be.c)(35),{actionLabel:l,actionPrefix:f,columns:p,heading:r,onAction:_,rowPrefix:b,rows:I,testId:N}=e,A=ce(),n;t[0]!==r?(n=(0,i.jsxDEV)("header",{className:"border-b border-border px-4 py-3",children:(0,i.jsxDEV)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:r},void 0,!1)},void 0,!1),t[0]=r,t[1]=n):n=t[1];let m;t[2]!==p?(m=p.map($e),t[2]=p,t[3]=m):m=t[3];let u;t[4]!==A?(u=A("Actions"),t[4]=A,t[5]=u):u=t[5];let x;t[6]!==u?(x=(0,i.jsxDEV)(O,{"aria-label":u},void 0,!1),t[6]=u,t[7]=x):x=t[7];let h;t[8]!==m||t[9]!==x?(h=(0,i.jsxDEV)(ge,{children:(0,i.jsxDEV)(K,{children:[m,x]},void 0,!0)},void 0,!1),t[8]=m,t[9]=x,t[10]=h):h=t[10];let s;if(t[11]!==l||t[12]!==f||t[13]!==p||t[14]!==_||t[15]!==b||t[16]!==I){let d;t[18]!==l||t[19]!==f||t[20]!==p||t[21]!==_||t[22]!==b?(d=o($=>{let z=w($.id);return(0,i.jsxDEV)(K,{"data-testid":`${b}-${z}`,children:[p.map(P=>(0,i.jsxDEV)(T,{children:P.render($)},P.head,!1)),(0,i.jsxDEV)(T,{children:(0,i.jsxDEV)(fe,{"data-testid":`${f}-${z}`,onClick:o(()=>{_(z)},"onClick"),size:"xs",type:"button",variant:"ghost",children:l},void 0,!1)},void 0,!1)]},z,!0)},"t72"),t[18]=l,t[19]=f,t[20]=p,t[21]=_,t[22]=b,t[23]=d):d=t[23],s=I.map(d),t[11]=l,t[12]=f,t[13]=p,t[14]=_,t[15]=b,t[16]=I,t[17]=s}else s=t[17];let v;t[24]!==s?(v=(0,i.jsxDEV)(pe,{children:s},void 0,!1),t[24]=s,t[25]=v):v=t[25];let g;t[26]!==h||t[27]!==v?(g=(0,i.jsxDEV)(ue,{className:"px-0",children:(0,i.jsxDEV)(ve,{children:[h,v]},void 0,!0)},void 0,!1),t[26]=h,t[27]=v,t[28]=g):g=t[28];let y;t[29]!==n||t[30]!==g?(y=(0,i.jsxDEV)(me,{className:"overflow-hidden py-0",children:[n,g]},void 0,!0),t[29]=n,t[30]=g,t[31]=y):y=t[31];let C;return t[32]!==y||t[33]!==N?(C=(0,i.jsxDEV)("div",{className:"flex flex-col gap-2","data-testid":N,children:y},void 0,!1),t[32]=y,t[33]=N,t[34]=C):C=t[34],C},"OrgRowTable"),Ge=o(()=>{let e=(0,be.c)(95),t=xe(),l=ce(),{capabilities:f,ready:p}=Ae(),[r,_]=(0,Ie.useState)(null),b;e[0]===Symbol.for("react.memo_cache_sentinel")?(b=["lunora-auth-orgs"],e[0]=b):b=e[0];let I;e[1]!==t?(I=o(()=>t.listAuthOrganizations({limit:100}),"t1"),e[1]=t,e[2]=I):I=e[2];let N;e[3]!==f.organization?(N={enabled:f.organization},e[3]=f.organization,e[4]=N):N=e[4];let A=re(b,I,N),n=A.data?.rows??null,m;e[5]!==r?(m=["lunora-auth-org-members",r],e[5]=r,e[6]=m):m=e[6];let u;e[7]!==t||e[8]!==r?(u=o(()=>t.listAuthOrgMembers({limit:200,organizationId:r??""}),"t4"),e[7]=t,e[8]=r,e[9]=u):u=e[9];let x=r!==null,h;e[10]!==x?(h={enabled:x},e[10]=x,e[11]=h):h=e[11];let s=re(m,u,h),v;e[12]!==r?(v=["lunora-auth-org-invitations",r],e[12]=r,e[13]=v):v=e[13];let g;e[14]!==t||e[15]!==r?(g=o(()=>t.listAuthOrgInvitations({limit:200,organizationId:r??""}),"t8"),e[14]=t,e[15]=r,e[16]=g):g=e[16];let y=r!==null,C;e[17]!==y?(C={enabled:y},e[17]=y,e[18]=C):C=e[18];let d=re(v,g,C),$=r===null?null:s.data?.rows??null,z=r===null?null:d.data?.rows??null,P=A.error??s.error??d.error,U;e[19]!==d||e[20]!==s||e[21]!==A||e[22]!==r?(U=o(()=>{A.refetch(),r!==null&&(s.refetch(),d.refetch())},"t11"),e[19]=d,e[20]=s,e[21]=A,e[22]=r,e[23]=U):U=e[23],we(U,f.organization);let W;e[24]===Symbol.for("react.memo_cache_sentinel")?(W=o(a=>{_(a)},"t12"),e[24]=W):W=e[24];let Ne=W,X;e[25]!==d||e[26]!==s?(X=o(a=>{ye((async()=>{await a(),s.refetch(),d.refetch()})())},"t13"),e[25]=d,e[26]=s,e[27]=X):X=e[27];let S=X,Y;e[28]!==t||e[29]!==S?(Y=o(a=>{S(()=>t.removeAuthOrgMember({memberId:a}))},"t14"),e[28]=t,e[29]=S,e[30]=Y):Y=e[30];let oe=Y,Z;e[31]!==t||e[32]!==S?(Z=o(a=>{S(()=>t.cancelAuthOrgInvitation({invitationId:a}))},"t15"),e[31]=t,e[32]=S,e[33]=Z):Z=e[33];let ae=Z,M;e[34]!==l?(M=l("userId"),e[34]=l,e[35]=M):M=e[35];let R;e[36]!==M?(R={head:M,render:Pe},e[36]=M,e[37]=R):R=e[37];let E;e[38]!==l?(E=l("role"),e[38]=l,e[39]=E):E=e[39];let L;e[40]!==E?(L={head:E,render:Se},e[40]=E,e[41]=L):L=e[41];let ee;e[42]!==R||e[43]!==L?(ee=[R,L],e[42]=R,e[43]=L,e[44]=ee):ee=e[44];let ne=ee,Q;e[45]!==l?(Q=l("email"),e[45]=l,e[46]=Q):Q=e[46];let k;e[47]!==Q?(k={head:Q,render:Me},e[47]=Q,e[48]=k):k=e[48];let B;e[49]!==l?(B=l("role"),e[49]=l,e[50]=B):B=e[50];let H;e[51]!==B?(H={head:B,render:Re},e[51]=B,e[52]=H):H=e[52];let j;e[53]!==l?(j=l("status"),e[53]=l,e[54]=j):j=e[54];let D;e[55]!==j?(D={head:j,render:Ee},e[55]=j,e[56]=D):D=e[56];let te;e[57]!==k||e[58]!==H||e[59]!==D?(te=[k,H,D],e[57]=k,e[58]=H,e[59]=D,e[60]=te):te=e[60];let se=te;if(p&&!f.organization){let a;e[61]!==l?(a=l("Enable the organization() plugin in your auth config to manage organizations here."),e[61]=l,e[62]=a):a=e[62];let c;e[63]!==l?(c=l("Organizations are not enabled."),e[63]=l,e[64]=c):c=e[64];let ie;return e[65]!==a||e[66]!==c?(ie=(0,i.jsxDEV)(he,{description:a,testId:"org-disabled",title:c},void 0,!1),e[65]=a,e[66]=c,e[67]=ie):ie=e[67],ie}let F;e[68]!==P?(F=P!==null&&(0,i.jsxDEV)("p",{className:"text-sm text-destructive","data-testid":"org-error",role:"alert",children:P},void 0,!1),e[68]=P,e[69]=F):F=e[69];let V;e[70]!==n||e[71]!==l?(V=n!==null&&n.length===0&&(0,i.jsxDEV)(he,{testId:"org-empty",title:l("No organizations.")},void 0,!1),e[70]=n,e[71]=l,e[72]=V):V=e[72];let q;e[73]!==n||e[74]!==r||e[75]!==l?(q=n!==null&&n.length>0&&(0,i.jsxDEV)(me,{className:"overflow-hidden py-0",children:(0,i.jsxDEV)(ue,{className:"px-0",children:(0,i.jsxDEV)(ve,{"data-testid":"org-table",children:[(0,i.jsxDEV)(ge,{children:(0,i.jsxDEV)(K,{children:[(0,i.jsxDEV)(O,{children:l("id")},void 0,!1),(0,i.jsxDEV)(O,{children:l("name")},void 0,!1),(0,i.jsxDEV)(O,{children:l("slug")},void 0,!1),(0,i.jsxDEV)(O,{children:l("created")},void 0,!1),(0,i.jsxDEV)(O,{"aria-label":l("Actions")},void 0,!1)]},void 0,!0)},void 0,!1),(0,i.jsxDEV)(pe,{children:n.map(a=>{let c=w(a.id);return(0,i.jsxDEV)(K,{"data-testid":`org-row-${c}`,children:[(0,i.jsxDEV)(T,{className:"font-mono text-xs",children:c},void 0,!1),(0,i.jsxDEV)(T,{children:w(a.name)},void 0,!1),(0,i.jsxDEV)(T,{children:w(a.slug)},void 0,!1),(0,i.jsxDEV)(T,{className:"text-muted-foreground tabular-nums",children:ze(a.createdAt)},void 0,!1),(0,i.jsxDEV)(T,{children:(0,i.jsxDEV)(fe,{"aria-pressed":r===c,"data-testid":`org-select-${c}`,onClick:o(()=>{Ne(c)},"onClick"),size:"xs",type:"button",variant:"ghost",children:l("Members")},void 0,!1)},void 0,!1)]},c,!0)})},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1),e[73]=n,e[74]=r,e[75]=l,e[76]=q):q=e[76];let G;e[77]!==ne||e[78]!==$||e[79]!==oe||e[80]!==r||e[81]!==l?(G=r!==null&&$!==null&&(0,i.jsxDEV)(Ce,{actionLabel:l("Remove"),actionPrefix:"org-remove-member",columns:ne,heading:l("Members"),onAction:oe,rowPrefix:"org-member",rows:$,testId:"org-members"},void 0,!1),e[77]=ne,e[78]=$,e[79]=oe,e[80]=r,e[81]=l,e[82]=G):G=e[82];let J;e[83]!==se||e[84]!==z||e[85]!==ae||e[86]!==r||e[87]!==l?(J=r!==null&&z!==null&&z.length>0&&(0,i.jsxDEV)(Ce,{actionLabel:l("Cancel"),actionPrefix:"org-cancel-invitation",columns:se,heading:l("Invitations"),onAction:ae,rowPrefix:"org-invitation",rows:z,testId:"org-invitations"},void 0,!1),e[83]=se,e[84]=z,e[85]=ae,e[86]=r,e[87]=l,e[88]=J):J=e[88];let le;return e[89]!==F||e[90]!==V||e[91]!==q||e[92]!==G||e[93]!==J?(le=(0,i.jsxDEV)("div",{className:"flex flex-col gap-4","data-testid":"lunora-organizations",children:[F,V,q,G,J]},void 0,!0),e[89]=F,e[90]=V,e[91]=q,e[92]=G,e[93]=J,e[94]=le):le=e[94],le},"OrganizationsPanel");function $e(e){return(0,i.jsxDEV)(O,{children:e.head},e.head,!1)}o($e,"_temp");function Pe(e){return w(e.userId)}o(Pe,"_temp2");function Se(e){return w(e.role)}o(Se,"_temp3");function Me(e){return w(e.email)}o(Me,"_temp4");function Re(e){return w(e.role)}o(Re,"_temp5");function Ee(e){return w(e.status)}o(Ee,"_temp6");export{Ge as OrganizationsPanel};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as O,b as $,c as E,d as J,e as R,f as _,g as L,h as U}from"./chunk-PN5NCZDX.js";import{a as B}from"./chunk-AHILM3ZP.js";import{a as I}from"./chunk-TDL7NEWA.js";import{d as D,j as V,k as A}from"./chunk-PVZI3CXP.js";import{a as C,e as j,f as Q,g as q,h as z}from"./chunk-RRCPZMC2.js";var S=j(q(),1),H=j(Q(),1);var a=j(z(),1);var k="inline-flex items-center gap-1 rounded-md border border-border px-2.5 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50",K=/["\n,]/u,G=C(n=>{if(n==null)return"";let e;return typeof n=="string"?e=n:typeof n=="number"||typeof n=="boolean"||typeof n=="bigint"?e=String(n):e=JSON.stringify(n),K.test(e)?`"${e.replaceAll('"','""')}"`:e},"csvCell"),P=C((n,e)=>{let t=n.map(s=>G(s)).join(","),o=e.map(s=>n.map(l=>G(s[l])).join(","));return[t,...o].join(`
|
|
2
|
-
`)},"toCsv"),W=C(n=>JSON.stringify(n,null,2),"toJson"),F=C((n,e,t)=>{if(!("document"in globalThis))return;let o=globalThis.URL.createObjectURL(new globalThis.Blob([e],{type:t})),s=globalThis.document.createElement("a");s.href=o,s.download=n,globalThis.document.body.append(s),s.click(),s.remove(),globalThis.URL.revokeObjectURL(o)},"downloadFile"),X=C(n=>{let e=(0,S.c)(26),{columns:t,name:o,rows:s}=n,l=D(),r;e[0]!==t||e[1]!==o||e[2]!==s?(r=C(()=>{F(`${o}.csv`,P(t,s),"text/csv;charset=utf-8")},"t1"),e[0]=t,e[1]=o,e[2]=s,e[3]=r):r=e[3];let u=r,i;e[4]!==o||e[5]!==s?(i=C(()=>{F(`${o}.json`,W(s),"application/json")},"t2"),e[4]=o,e[5]=s,e[6]=i):i=e[6];let m=i,c=s.length===0,f;e[7]!==c?(f=(0,a.jsxDEV)($,{className:k,"data-testid":"grid-export",disabled:c,title:"Exports only the rows loaded on the current page, not the whole table",children:"Export page"},void 0,!1),e[7]=c,e[8]=f):f=e[8];let d;e[9]===Symbol.for("react.memo_cache_sentinel")?(d=(0,a.jsxDEV)(R,{children:"Export loaded rows"},void 0,!1),e[9]=d):d=e[9];let p;e[10]!==l?(p=l("CSV"),e[10]=l,e[11]=p):p=e[11];let v;e[12]!==u||e[13]!==p?(v=(0,a.jsxDEV)(_,{"data-testid":"grid-export-csv",onClick:u,children:p},void 0,!1),e[12]=u,e[13]=p,e[14]=v):v=e[14];let g;e[15]!==l?(g=l("JSON"),e[15]=l,e[16]=g):g=e[16];let b;e[17]!==m||e[18]!==g?(b=(0,a.jsxDEV)(_,{"data-testid":"grid-export-json",onClick:m,children:g},void 0,!1),e[17]=m,e[18]=g,e[19]=b):b=e[19];let h;e[20]!==v||e[21]!==b?(h=(0,a.jsxDEV)(E,{align:"end",children:[d,v,b]},void 0,!0),e[20]=v,e[21]=b,e[22]=h):h=e[22];let x;return e[23]!==h||e[24]!==f?(x=(0,a.jsxDEV)(O,{children:[f,h]},void 0,!0),e[23]=h,e[24]=f,e[25]=x):x=e[25],x},"ExportMenu"),Y=C(n=>{let e=(0,S.c)(9),{column:t}=n,o;e[0]!==t?(o=C(()=>{t.toggleVisibility()},"t1"),e[0]=t,e[1]=o):o=e[1];let s=o,l;e[2]!==t?(l=t.getIsVisible(),e[2]=t,e[3]=l):l=e[3];let r=`grid-column-${t.id}`,u;return e[4]!==t.id||e[5]!==s||e[6]!==l||e[7]!==r?(u=(0,a.jsxDEV)(L,{checked:l,closeOnClick:!1,"data-testid":r,onCheckedChange:s,children:t.id},void 0,!1),e[4]=t.id,e[5]=s,e[6]=l,e[7]=r,e[8]=u):u=e[8],u},"ColumnToggle"),Z=C(n=>{let e=(0,S.c)(30),{table:t}=n,o=D(),s;e[0]!==t?(s=t.getIsAllColumnsVisible(),e[0]=t,e[1]=s):s=e[1];let l=s,r;e[2]!==l||e[3]!==t?(r=C(()=>{t.toggleAllColumnsVisible(!l)},"t2"),e[2]=l,e[3]=t,e[4]=r):r=e[4];let u=r,i;e[5]!==o?(i=o("Columns"),e[5]=o,e[6]=i):i=e[6];let m;e[7]!==i?(m=(0,a.jsxDEV)($,{className:k,"data-testid":"grid-columns",children:i},void 0,!1),e[7]=i,e[8]=m):m=e[8];let c;e[9]!==o?(c=o("Columns"),e[9]=o,e[10]=c):c=e[10];let f;e[11]!==c?(f=(0,a.jsxDEV)(R,{children:c},void 0,!1),e[11]=c,e[12]=f):f=e[12];let d;e[13]!==l||e[14]!==o?(d=o(l?"Hide all":"Show all"),e[13]=l,e[14]=o,e[15]=d):d=e[15];let p;e[16]!==l||e[17]!==u||e[18]!==d?(p=(0,a.jsxDEV)(L,{checked:l,closeOnClick:!1,"data-testid":"grid-columns-all",onCheckedChange:u,children:d},void 0,!1),e[16]=l,e[17]=u,e[18]=d,e[19]=p):p=e[19];let v;e[20]===Symbol.for("react.memo_cache_sentinel")?(v=(0,a.jsxDEV)(U,{},void 0,!1),e[20]=v):v=e[20];let g;e[21]!==t?(g=t.getAllLeafColumns().map(te),e[21]=t,e[22]=g):g=e[22];let b;e[23]!==g||e[24]!==f||e[25]!==p?(b=(0,a.jsxDEV)(E,{align:"end",className:"max-h-80 overflow-y-auto",children:(0,a.jsxDEV)(J,{children:[f,p,v,g]},void 0,!0)},void 0,!1),e[23]=g,e[24]=f,e[25]=p,e[26]=b):b=e[26];let h;return e[27]!==b||e[28]!==m?(h=(0,a.jsxDEV)(O,{children:[m,b]},void 0,!0),e[27]=b,e[28]=m,e[29]=h):h=e[29],h},"ColumnsMenu"),ee=C(n=>{let e=(0,S.c)(19),{count:t,editable:o,onClear:s,onDelete:l}=n,r=D(),u;e[0]!==t||e[1]!==r?(u=r("{count} selected",{count:t}),e[0]=t,e[1]=r,e[2]=u):u=e[2];let i;e[3]!==u?(i=(0,a.jsxDEV)("span",{className:"font-medium tabular-nums","data-testid":"grid-selection-count",children:u},void 0,!1),e[3]=u,e[4]=i):i=e[4];let m;e[5]!==r?(m=r("Clear"),e[5]=r,e[6]=m):m=e[6];let c;e[7]!==s||e[8]!==m?(c=(0,a.jsxDEV)("button",{className:k,"data-testid":"grid-selection-clear",onClick:s,type:"button",children:m},void 0,!1),e[7]=s,e[8]=m,e[9]=c):c=e[9];let f;e[10]!==t||e[11]!==o||e[12]!==l||e[13]!==r?(f=o&&(0,a.jsxDEV)(I,{confirmLabel:r("Delete {count} rows?",{count:t}),onConfirm:l,testId:"grid-selection-delete",children:r("Delete {count}",{count:t})},void 0,!1),e[10]=t,e[11]=o,e[12]=l,e[13]=r,e[14]=f):f=e[14];let d;return e[15]!==i||e[16]!==c||e[17]!==f?(d=(0,a.jsxDEV)("div",{className:"flex items-center gap-2 rounded-md border border-border bg-accent/40 px-3 py-1.5 text-xs","data-testid":"grid-selection-bar",children:[i,c,f]},void 0,!0),e[15]=i,e[16]=c,e[17]=f,e[18]=d):d=e[18],d},"SelectionBar"),ae=C(n=>{let e=(0,S.c)(32),{column:t,onClose:o,value:s}=n,l=D(),[r,u]=(0,H.useState)(!1),i;e[0]!==s?(i=V(s),e[0]=s,e[1]=i):i=e[1];let m=i,c;e[2]!==m?(c=C(()=>{let T="navigator"in globalThis?globalThis.navigator.clipboard:void 0;T!==void 0&&(A(T.writeText(m)),u(!0))},"t2"),e[2]=m,e[3]=c):c=e[3];let f=c,d;e[4]!==l?(d=l("Cell value"),e[4]=l,e[5]=d):d=e[5];let p;e[6]!==t?(p=(0,a.jsxDEV)("h2",{className:"truncate font-mono text-sm font-semibold text-foreground",children:t},void 0,!1),e[6]=t,e[7]=p):p=e[7];let v;e[8]!==r||e[9]!==l?(v=l(r?"Copied":"Copy"),e[8]=r,e[9]=l,e[10]=v):v=e[10];let g;e[11]!==f||e[12]!==v?(g=(0,a.jsxDEV)("button",{className:k,"data-testid":"grid-cell-copy",onClick:f,type:"button",children:v},void 0,!1),e[11]=f,e[12]=v,e[13]=g):g=e[13];let b;e[14]!==l?(b=l("Close"),e[14]=l,e[15]=b):b=e[15];let h;e[16]!==o||e[17]!==b?(h=(0,a.jsxDEV)("button",{className:k,"data-testid":"grid-cell-close",onClick:o,type:"button",children:b},void 0,!1),e[16]=o,e[17]=b,e[18]=h):h=e[18];let x;e[19]!==g||e[20]!==h?(x=(0,a.jsxDEV)("div",{className:"flex items-center gap-1.5",children:[g,h]},void 0,!0),e[19]=g,e[20]=h,e[21]=x):x=e[21];let w;e[22]!==p||e[23]!==x?(w=(0,a.jsxDEV)("div",{className:"flex items-center justify-between",children:[p,x]},void 0,!0),e[22]=p,e[23]=x,e[24]=w):w=e[24];let y;e[25]!==m?(y=(0,a.jsxDEV)("pre",{className:"min-h-0 flex-1 overflow-auto rounded-md border border-border bg-muted/30 p-3 font-mono text-xs whitespace-pre-wrap","data-testid":"grid-cell-value",children:m},void 0,!1),e[25]=m,e[26]=y):y=e[26];let N;return e[27]!==o||e[28]!==w||e[29]!==y||e[30]!==d?(N=(0,a.jsxDEV)(B,{className:"max-h-[70vh] w-[min(40rem,90vw)]",label:d,onClose:o,panelTestId:"grid-cell-dialog",testId:"grid-cell-dialog-overlay",variant:"dialog",children:[w,y]},void 0,!0),e[27]=o,e[28]=w,e[29]=y,e[30]=d,e[31]=N):N=e[31],N},"CellDetailDialog"),de=C(n=>{let e=(0,S.c)(33),{columns:t,editable:o,name:s,onBulkDelete:l,onToggleTranspose:r,rows:u,table:i,transposed:m}=n,c=D(),f;e[0]!==i?(f=i.getSelectedRowModel(),e[0]=i,e[1]=f):f=e[1];let d=f.rows,p;e[2]!==i?(p=C(()=>{i.resetRowSelection()},"t2"),e[2]=i,e[3]=p):p=e[3];let v=p,g;e[4]!==l||e[5]!==d||e[6]!==i?(g=C(()=>{l(d.map(le)),i.resetRowSelection()},"t3"),e[4]=l,e[5]=d,e[6]=i,e[7]=g):g=e[7];let b=g,h;e[8]!==t||e[9]!==s||e[10]!==u?(h=(0,a.jsxDEV)(X,{columns:t,name:s,rows:u},void 0,!1),e[8]=t,e[9]=s,e[10]=u,e[11]=h):h=e[11];let x;e[12]!==i?(x=(0,a.jsxDEV)(Z,{table:i},void 0,!1),e[12]=i,e[13]=x):x=e[13];let w;e[14]!==c?(w=c("Swap rows and columns"),e[14]=c,e[15]=w):w=e[15];let y;e[16]!==c?(y=c("Transpose"),e[16]=c,e[17]=y):y=e[17];let N;e[18]!==r||e[19]!==w||e[20]!==y||e[21]!==m?(N=(0,a.jsxDEV)("button",{"aria-pressed":m,className:k,"data-testid":"grid-transpose",onClick:r,title:w,type:"button",children:y},void 0,!1),e[18]=r,e[19]=w,e[20]=y,e[21]=m,e[22]=N):N=e[22];let T;e[23]!==o||e[24]!==v||e[25]!==b||e[26]!==d.length?(T=d.length>0&&(0,a.jsxDEV)(ee,{count:d.length,editable:o,onClear:v,onDelete:b},void 0,!1),e[23]=o,e[24]=v,e[25]=b,e[26]=d.length,e[27]=T):T=e[27];let M;return e[28]!==h||e[29]!==x||e[30]!==N||e[31]!==T?(M=(0,a.jsxDEV)("div",{className:"flex flex-wrap items-center gap-1.5","data-testid":"grid-actions",children:[h,x,N,T]},void 0,!0),e[28]=h,e[29]=x,e[30]=N,e[31]=T,e[32]=M):M=e[32],M},"GridActionsBar");function te(n){return(0,a.jsxDEV)(Y,{column:n},n.id,!1)}C(te,"_temp");function le(n){return n.id}C(le,"_temp2");export{X as a,ee as b,ae as c,de as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as we,m as Ke,ma as je}from"./chunk-XUGSA2NG.js";import{i as Ge,k as He}from"./chunk-4QHKBC77.js";import{D as Me,I as Se,K as Ve,L as De,M as Le,N as Oe,O as Te,P as Fe,Q as _e,a as $,b as Ie,c as Ne,e as F,f as Be}from"./chunk-3CJW6NWG.js";import{b as Ae}from"./chunk-UK64ZSUW.js";import{a as T,e as ce}from"./chunk-O3NAGRTR.js";import{a as ve,c as Re,d as Ee,g as de,i as Pe,j as W}from"./chunk-CKSHCYGC.js";import{a as vt}from"./chunk-3OA7PECS.js";import{a as i,d as Ct,e as k,f as O,g as yt,h as Rt,j as ye}from"./chunk-RRCPZMC2.js";var Je=k(yt(),1);var w={};Ct(w,{Indicator:()=>fe,Root:()=>ue});var u=k(O(),1);function Ue(t){if(!t)return null;for(let e of t.elements){let n=e.tagName;if(n==="BUTTON"||n==="INPUT"){let o=e;if(o.type==="submit")return o}}return null}i(Ue,"getDefaultFormSubmitter");var qe=k(O(),1);var le=(function(t){return t.checked="data-checked",t.unchecked="data-unchecked",t.indeterminate="data-indeterminate",t.disabled="data-disabled",t.readonly="data-readonly",t.required="data-required",t.valid="data-valid",t.invalid="data-invalid",t.touched="data-touched",t.dirty="data-dirty",t.filled="data-filled",t.focused="data-focused",t})({});function z(t){return qe.useMemo(()=>({checked(e){return t.indeterminate?{}:e?{[le.checked]:""}:{[le.unchecked]:""}},...$}),[t.indeterminate])}i(z,"useStateAttributesMapping");var We=k(O(),1);function $e(t,e,n,o=!0,a){let[f,p]=We.useState(),M=F(a?`${a}-label`:void 0),b=t??e??f;return T(()=>{let g=t||e||!o?void 0:Et(n.current,M);f!==g&&p(g)}),b}i($e,"useAriaLabelledBy");function Et(t,e){let n=Pt(t);if(n)return!n.id&&e&&(n.id=e),n.id||void 0}i(Et,"getAriaLabelledBy");function Pt(t){if(!t)return;let e=t.parentElement;if(e&&e.tagName==="LABEL")return e;let n=t.id;if(n){let a=t.nextElementSibling;if(a&&a.htmlFor===n)return a}let o=t.labels;return o&&o[0]}i(Pt,"findAssociatedLabel");var J=k(O(),1);var X=J.createContext(void 0);X.displayName="CheckboxRootContext";function ze(){let t=J.useContext(X);if(t===void 0)throw new Error("Base UI: CheckboxRootContext is missing. Checkbox parts must be placed within <Checkbox.Root>.");return t}i(ze,"useCheckboxRootContext");var _=k(vt(),1);var It="data-parent",ue=u.forwardRef(i(function(e,n){let{checked:o,className:a,defaultChecked:f=!1,"aria-labelledby":p,disabled:M=!1,form:b,id:g,indeterminate:S=!1,inputRef:Z,name:K,onCheckedChange:A,parent:m=!1,readOnly:R=!1,render:pe,required:E=!1,uncheckedValue:j,value:G,nativeButton:H=!1,style:Nt,...Xe}=e,{clearErrors:Ye}=Ne(),{disabled:Qe,name:Ze,setDirty:et,setFilled:ee,setFocused:me,setTouched:tt,state:he,validationMode:rt,validityData:nt,validation:ot}=Ie(),it=Me(),{labelId:at,controlId:st,registerControlId:P,getDescriptionProps:be}=Be(),s=_e(),V=s?.parent,D=V&&s.allValues,c=Qe||it.disabled||s?.disabled||M,I=Ze??K,d=G??I,ge=F(),dt=F(),x=st;D?x=m?dt:`${V.id}-${d}`:g&&(x=g);let te={};D&&(m?te=s.parent.getParentProps():d&&(te=s.parent.getChildProps(d)));let{checked:ke=o,indeterminate:ct=S,onCheckedChange:lt,...ut}=te,N=s?.value,xe=s?.setValue,Ce=s?.defaultValue,re=u.useRef(null),U=Re(()=>Symbol("checkbox-control")),ne=u.useRef(!1),{getButtonProps:ft,buttonRef:pt}=Ae({disabled:c,native:H}),B=s?.validation??ot,[l,mt]=Le({controlled:d&&N&&!m?N.includes(d):ke,default:d&&Ce&&!m?Ce.includes(d):f,name:"Checkbox",state:"checked"}),oe=D?!!ke:l,L=D&&ct||S;T(()=>{P!==de&&(ne.current=!0,P(U.current,x))},[x,P,U]),u.useEffect(()=>{let r=U.current;return()=>{!ne.current||P===de||(ne.current=!1,P(r,void 0))}},[P,U]),Oe(re,ge,l,void 0,!s&&!c,K);let C=u.useRef(null),ht=Ee(Z,C,B.inputRef,B.registerInput),bt=$e(p,at,C,!H,x??void 0);T(()=>{C.current&&(C.current.indeterminate=L,l&&ee(!0))},[l,L,ee]),je(l,()=>{s||(Ye(I),ee(l),et(l!==nt.initialValue),B.change(l))});let gt=ve({checked:l,disabled:c,form:b,name:m?void 0:I,id:H?void 0:x??void 0,required:E,ref:ht,style:I?Ke:we,tabIndex:-1,type:"checkbox","aria-hidden":!0,onChange(r){if(r.nativeEvent.defaultPrevented)return;if(R){r.preventDefault();return}let h=r.currentTarget.checked,y=Fe(Te.none,r.nativeEvent);if(A?.(h,y),!y.isCanceled&&(lt?.(h,y),!y.isCanceled&&(mt(h),d&&N&&xe&&!m&&!D))){let v=h?[...N,d]:N.filter(q=>q!==d);xe(v,y)}},onFocus(){re.current?.focus()}},G!==void 0?{value:(s?l&&G:G)||""}:Pe,be,r=>B.getValidationProps(c,r));u.useEffect(()=>{if(!V||!d)return;let r=V.disabledStatesRef.current;return r.set(d,c),()=>{r.delete(d)}},[V,c,d]);let ie=u.useMemo(()=>({...he,checked:oe,disabled:c,readOnly:R,required:E,indeterminate:L}),[he,oe,c,R,E,L]),kt=z(ie),xt=W("span",e,{state:ie,ref:[pt,re,n,s?.registerControlRef],props:[{id:H?x??void 0:ge,role:"checkbox","aria-checked":L?"mixed":oe,"aria-readonly":R||void 0,"aria-required":E||void 0,"aria-labelledby":bt,[It]:m?"":void 0,onFocus(){c||me(!0)},onBlur(){let r=C.current;r&&(tt(!0),me(!1),rt==="onBlur"&&B.commit(s?N:r.checked))},onKeyDown(r){if(r.key!=="Enter"||(r.preventBaseUIHandler(),r.defaultPrevented))return;let h=C.current?.form??null,y=r.currentTarget,v=r.nativeEvent,q=r.preventDefault,ae=v.preventDefault,se=!1;r.preventDefault=()=>{se=!0,q.call(r)},v.preventDefault=()=>{se=!0,ae.call(v)},ae.call(v),ce(y).queueMicrotask(()=>{r.preventDefault=q,v.preventDefault=ae,se||Ue(h)?.click()})},onClick(r){if(R||c)return;r.preventDefault();let h=C.current;h&&h.dispatchEvent(new(ce(h)).PointerEvent("click",{bubbles:!0,shiftKey:r.shiftKey,ctrlKey:r.ctrlKey,altKey:r.altKey,metaKey:r.metaKey}))}},Xe,ut,ft,be,r=>B.getValidationProps(c,r)],stateAttributesMapping:kt});return(0,_.jsxs)(X.Provider,{value:ie,children:[xt,!l&&!s&&I&&!m&&j!==void 0&&(0,_.jsx)("input",{type:"hidden",form:b,name:I,value:j,disabled:c}),(0,_.jsx)("input",{...gt,suppressHydrationWarning:!0})]})},"CheckboxRoot"));ue.displayName="CheckboxRoot";var Y=k(O(),1);var fe=Y.forwardRef(i(function(e,n){let{render:o,className:a,style:f,keepMounted:p=!1,...M}=e,b=ze(),g=b.checked||b.indeterminate,{mounted:S,transitionStatus:Z,setMounted:K}=De(g),A=Y.useRef(null),m={...b,transitionStatus:Z};Ve({open:g,ref:A,onComplete(){g||K(!1)}});let pe={...z(b),...Se,...$},E=p||S,j=W("span",e,{ref:[n,A],state:m,stateAttributesMapping:pe,props:M});return E?j:null},"CheckboxIndicator"));fe.displayName="CheckboxIndicator";var Q=k(Rt(),1);function Sr(t){let e=(0,Je.c)(9),n,o;e[0]!==t?({className:n,...o}=t,e[0]=t,e[1]=n,e[2]=o):(n=e[1],o=e[2]);let a;e[3]!==n?(a=ye("peer relative flex size-4 shrink-0 items-center justify-center rounded-md border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",n),e[3]=n,e[4]=a):a=e[4];let f;e[5]===Symbol.for("react.memo_cache_sentinel")?(f=(0,Q.jsxDEV)(w.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none [&>svg]:size-3.5",children:(0,Q.jsxDEV)(He,{icon:Ge,strokeWidth:2},void 0,!1)},void 0,!1),e[5]=f):f=e[5];let p;return e[6]!==o||e[7]!==a?(p=(0,Q.jsxDEV)(w.Root,{"data-slot":"checkbox",className:a,...o,children:f},void 0,!1),e[6]=o,e[7]=a,e[8]=p):p=e[8],p}i(Sr,"Checkbox");export{Sr as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as le}from"./chunk-MPYFGAOW.js";import{a as X}from"./chunk-AHILM3ZP.js";import{a as ae}from"./chunk-J6J54MBP.js";import{a as se}from"./chunk-2K47A3P6.js";import{a as G,b as W,c as Y,d as B,e as F,f as U}from"./chunk-GTM65MVX.js";import{a as z}from"./chunk-JSEXCW5Q.js";import{R as D}from"./chunk-3CJW6NWG.js";import{c as S}from"./chunk-UK64ZSUW.js";import"./chunk-O3NAGRTR.js";import"./chunk-HV7G6DFP.js";import{a as ee}from"./chunk-TAD43CG5.js";import{a as te}from"./chunk-DVKPRFIJ.js";import{a as V,e as j}from"./chunk-SEU5V7I6.js";import{b as E}from"./chunk-ZPP2KOR4.js";import"./chunk-CKSHCYGC.js";import{f as $}from"./chunk-X7MMBSNW.js";import"./chunk-ZHVTQ37P.js";import"./chunk-3OA7PECS.js";import{d as M,g as Z,j as H,k as O,n as Q}from"./chunk-PVZI3CXP.js";import"./chunk-GMSGZDDH.js";import{a,e as K,f as ge,g as Ne,h as we}from"./chunk-RRCPZMC2.js";var m=K(ge(),1);var t=K(we(),1),q=K(Ne(),1);var ke=a(({onClose:w,onCreated:e})=>{let i=$(),s=M(),[c,d]=(0,m.useState)(""),[u,l]=(0,m.useState)(""),[o,f]=(0,m.useState)(""),[k,I]=(0,m.useState)(""),[C,b]=(0,m.useState)(!1),[N,y]=(0,m.useState)(null),h=a(r=>{d(r.target.value)},"onEmailChange"),p=a(r=>{l(r.target.value)},"onNameChange"),x=a(r=>{f(r.target.value)},"onPasswordChange"),v=a(r=>{I(r.target.value)},"onRoleChange"),n=a(async()=>{b(!0),y(null);try{await i.createAuthUser({email:c.trim(),name:u.trim(),password:o===""?void 0:o,role:k.trim()===""?void 0:k.trim()}),e(),w()}catch(r){y(Z(r))}finally{b(!1)}},"submit"),A=a(()=>{O(n())},"onSubmit");return(0,t.jsxDEV)(X,{label:s("Create user"),onClose:w,panelTestId:"uc-dialog",testId:"uc-overlay",variant:"dialog",children:[(0,t.jsxDEV)("h2",{className:"text-sm font-semibold text-foreground",children:s("Create user")},void 0,!1),(0,t.jsxDEV)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxDEV)(z,{htmlFor:"uc-email",children:s("email")},void 0,!1),(0,t.jsxDEV)(D,{"data-testid":"uc-email",id:"uc-email",onChange:h,type:"email",value:c},void 0,!1)]},void 0,!0),(0,t.jsxDEV)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxDEV)(z,{htmlFor:"uc-name",children:s("name")},void 0,!1),(0,t.jsxDEV)(D,{"data-testid":"uc-name",id:"uc-name",onChange:p,value:u},void 0,!1)]},void 0,!0),(0,t.jsxDEV)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxDEV)(z,{htmlFor:"uc-password",children:s("Password (optional)")},void 0,!1),(0,t.jsxDEV)(D,{"data-testid":"uc-password",id:"uc-password",onChange:x,type:"password",value:o},void 0,!1)]},void 0,!0),(0,t.jsxDEV)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxDEV)(z,{htmlFor:"uc-role",children:s("Role (optional)")},void 0,!1),(0,t.jsxDEV)(D,{"data-testid":"uc-role",id:"uc-role",onChange:v,value:k},void 0,!1)]},void 0,!0),N!==null&&(0,t.jsxDEV)("p",{className:"text-sm text-destructive","data-testid":"uc-error",role:"alert",children:N},void 0,!1),(0,t.jsxDEV)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,t.jsxDEV)(S,{"data-testid":"uc-cancel",onClick:w,size:"sm",type:"button",variant:"outline",children:s("Cancel")},void 0,!1),(0,t.jsxDEV)(S,{"data-testid":"uc-submit",disabled:C||c.trim()===""||u.trim()==="",onClick:A,size:"sm",type:"button",children:s(C?"Creating\u2026":"Create")},void 0,!1)]},void 0,!0)]},void 0,!0)},"UserCreateDialog"),_=a(w=>{let e=(0,q.c)(2),{children:i}=w,s;return e[0]!==i?(s=(0,t.jsxDEV)("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:i},void 0,!1),e[0]=i,e[1]=s):s=e[1],s},"SectionHeading"),Ce=a(w=>{let e=(0,q.c)(29),{busy:i,runAction:s,userId:c,version:d}=w,u=$(),l=M(),[o,f]=(0,m.useState)(null),[k,I]=(0,m.useState)(null),C;e[0]!==u||e[1]!==c?(C=a(()=>{O((async()=>{I(null);try{let r=await u.listAuthSessions({limit:50,userId:c});f(r.rows)}catch(r){let R=r;f(null),I(Z(R))}})())},"t1"),e[0]=u,e[1]=c,e[2]=C):C=e[2];let b;e[3]!==u||e[4]!==c||e[5]!==d?(b=[u,c,d],e[3]=u,e[4]=c,e[5]=d,e[6]=b):b=e[6],(0,m.useEffect)(C,b);let N;e[7]!==u||e[8]!==s?(N=a(r=>{s(()=>u.revokeAuthSession({sessionId:r}))},"t3"),e[7]=u,e[8]=s,e[9]=N):N=e[9];let y=N,h;e[10]!==l?(h=l("Sessions"),e[10]=l,e[11]=h):h=e[11];let p;e[12]!==h?(p=(0,t.jsxDEV)(_,{children:h},void 0,!1),e[12]=h,e[13]=p):p=e[13];let x;e[14]!==k?(x=k!==null&&(0,t.jsxDEV)("p",{className:"text-sm text-destructive","data-testid":"ud-sessions-error",role:"alert",children:k},void 0,!1),e[14]=k,e[15]=x):x=e[15];let v;e[16]!==o||e[17]!==l?(v=o!==null&&o.length===0&&(0,t.jsxDEV)("p",{className:"text-sm text-muted-foreground","data-testid":"ud-sessions-empty",children:l("No active sessions.")},void 0,!1),e[16]=o,e[17]=l,e[18]=v):v=e[18];let n;e[19]!==i||e[20]!==y||e[21]!==o||e[22]!==l?(n=o!==null&&o.length>0&&(0,t.jsxDEV)(V,{className:"overflow-hidden py-0",children:(0,t.jsxDEV)(j,{className:"px-0",children:(0,t.jsxDEV)(G,{"data-testid":"ud-sessions-table",children:[(0,t.jsxDEV)(W,{children:(0,t.jsxDEV)(B,{children:[(0,t.jsxDEV)(F,{children:l("expires")},void 0,!1),(0,t.jsxDEV)(F,{children:l("ip")},void 0,!1),(0,t.jsxDEV)(F,{children:l("user agent")},void 0,!1),(0,t.jsxDEV)(F,{"aria-label":l("Actions")},void 0,!1)]},void 0,!0)},void 0,!1),(0,t.jsxDEV)(Y,{children:o.map(r=>(0,t.jsxDEV)(B,{"data-testid":`ud-session-${r.id}`,children:[(0,t.jsxDEV)(U,{className:"text-muted-foreground tabular-nums",children:Q(r.expiresAt)},void 0,!1),(0,t.jsxDEV)(U,{children:r.ipAddress??""},void 0,!1),(0,t.jsxDEV)(U,{className:"max-w-40 truncate",children:r.userAgent??""},void 0,!1),(0,t.jsxDEV)(U,{children:(0,t.jsxDEV)(S,{"data-testid":`ud-revoke-${r.id}`,disabled:i,onClick:a(()=>{y(r.id)},"onClick"),size:"xs",type:"button",variant:"ghost",children:l("Revoke")},void 0,!1)},void 0,!1)]},r.id,!0))},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1),e[19]=i,e[20]=y,e[21]=o,e[22]=l,e[23]=n):n=e[23];let A;return e[24]!==p||e[25]!==x||e[26]!==v||e[27]!==n?(A=(0,t.jsxDEV)("div",{className:"flex flex-col gap-2","data-testid":"ud-sessions",children:[p,x,v,n]},void 0,!0),e[24]=p,e[25]=x,e[26]=v,e[27]=n,e[28]=A):A=e[28],A},"UserSessionsPanel"),Ae=a(w=>{let e=(0,q.c)(30),{busy:i,runAction:s,userId:c,version:d}=w,u=$(),l=M(),[o,f]=(0,m.useState)(null),[k,I]=(0,m.useState)(null),C;e[0]!==u||e[1]!==c?(C=a(()=>{O((async()=>{I(null);try{f(await u.listAuthAccounts({userId:c}))}catch(r){let R=r;f(null),I(Z(R))}})())},"t1"),e[0]=u,e[1]=c,e[2]=C):C=e[2];let b;e[3]!==u||e[4]!==c||e[5]!==d?(b=[u,c,d],e[3]=u,e[4]=c,e[5]=d,e[6]=b):b=e[6],(0,m.useEffect)(C,b);let N;e[7]!==u||e[8]!==s||e[9]!==c?(N=a(r=>{s(()=>u.unlinkAuthAccount({accountId:r,userId:c}))},"t3"),e[7]=u,e[8]=s,e[9]=c,e[10]=N):N=e[10];let y=N,h;e[11]!==l?(h=l("Linked accounts"),e[11]=l,e[12]=h):h=e[12];let p;e[13]!==h?(p=(0,t.jsxDEV)(_,{children:h},void 0,!1),e[13]=h,e[14]=p):p=e[14];let x;e[15]!==k?(x=k!==null&&(0,t.jsxDEV)("p",{className:"text-sm text-destructive",role:"alert",children:k},void 0,!1),e[15]=k,e[16]=x):x=e[16];let v;e[17]!==o||e[18]!==l?(v=o!==null&&o.length===0&&(0,t.jsxDEV)("p",{className:"text-sm text-muted-foreground",children:l("No linked accounts.")},void 0,!1),e[17]=o,e[18]=l,e[19]=v):v=e[19];let n;e[20]!==o||e[21]!==i||e[22]!==y||e[23]!==l?(n=o!==null&&o.length>0&&(0,t.jsxDEV)(V,{className:"overflow-hidden py-0",children:(0,t.jsxDEV)(j,{className:"px-0",children:(0,t.jsxDEV)(G,{"data-testid":"ud-accounts-table",children:[(0,t.jsxDEV)(W,{children:(0,t.jsxDEV)(B,{children:[(0,t.jsxDEV)(F,{children:l("provider")},void 0,!1),(0,t.jsxDEV)(F,{children:l("created")},void 0,!1),(0,t.jsxDEV)(F,{"aria-label":l("Actions")},void 0,!1)]},void 0,!0)},void 0,!1),(0,t.jsxDEV)(Y,{children:o.map(r=>{let R=H(r.id);return(0,t.jsxDEV)(B,{"data-testid":`ud-account-${R}`,children:[(0,t.jsxDEV)(U,{children:H(r.providerId)},void 0,!1),(0,t.jsxDEV)(U,{className:"text-muted-foreground tabular-nums",children:Q(r.createdAt)},void 0,!1),(0,t.jsxDEV)(U,{children:(0,t.jsxDEV)(S,{"data-testid":`ud-unlink-${R}`,disabled:i,onClick:a(()=>{y(R)},"onClick"),size:"xs",type:"button",variant:"ghost",children:l("Unlink")},void 0,!1)},void 0,!1)]},R,!0)})},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1),e[20]=o,e[21]=i,e[22]=y,e[23]=l,e[24]=n):n=e[24];let A;return e[25]!==p||e[26]!==x||e[27]!==v||e[28]!==n?(A=(0,t.jsxDEV)("div",{className:"flex flex-col gap-2","data-testid":"ud-accounts",children:[p,x,v,n]},void 0,!0),e[25]=p,e[26]=x,e[27]=v,e[28]=n,e[29]=A):A=e[29],A},"UserAccountsPanel"),Ie=a(w=>{let e=(0,q.c)(40),{busy:i,capabilities:s,runAction:c,userId:d,version:u}=w,l=$(),o=M(),[f,k]=(0,m.useState)(null),I;e[0]!==s.passkey||e[1]!==l||e[2]!==d?(I=a(()=>{s.passkey&&O((async()=>{try{k(await l.listAuthPasskeys({userId:d}))}catch{k(null)}})())},"t1"),e[0]=s.passkey,e[1]=l,e[2]=d,e[3]=I):I=e[3];let C;e[4]!==s.passkey||e[5]!==l||e[6]!==d||e[7]!==u?(C=[s.passkey,l,d,u],e[4]=s.passkey,e[5]=l,e[6]=d,e[7]=u,e[8]=C):C=e[8],(0,m.useEffect)(I,C);let b;e[9]!==l||e[10]!==c||e[11]!==d?(b=a(()=>{c(()=>l.disableAuthTwoFactor({userId:d}))},"t3"),e[9]=l,e[10]=c,e[11]=d,e[12]=b):b=e[12];let N=b,y;e[13]!==l||e[14]!==c?(y=a(R=>{c(()=>l.deleteAuthPasskey({passkeyId:R}))},"t4"),e[13]=l,e[14]=c,e[15]=y):y=e[15];let h=y,p;e[16]!==o?(p=o("Security"),e[16]=o,e[17]=p):p=e[17];let x;e[18]!==p?(x=(0,t.jsxDEV)(_,{children:p},void 0,!1),e[18]=p,e[19]=x):x=e[19];let v;e[20]!==i||e[21]!==s.twoFactor||e[22]!==N||e[23]!==o?(v=s.twoFactor&&(0,t.jsxDEV)(S,{"data-testid":"ud-disable-2fa",disabled:i,onClick:N,size:"sm",type:"button",variant:"outline",children:o("Disable two-factor")},void 0,!1),e[20]=i,e[21]=s.twoFactor,e[22]=N,e[23]=o,e[24]=v):v=e[24];let n;e[25]!==s.passkey||e[26]!==f||e[27]!==o?(n=s.passkey&&f!==null&&f.length===0&&(0,t.jsxDEV)("p",{className:"text-sm text-muted-foreground",children:o("No passkeys.")},void 0,!1),e[25]=s.passkey,e[26]=f,e[27]=o,e[28]=n):n=e[28];let A;e[29]!==i||e[30]!==s.passkey||e[31]!==h||e[32]!==f||e[33]!==o?(A=s.passkey&&f!==null&&f.length>0&&(0,t.jsxDEV)(V,{className:"overflow-hidden py-0",children:(0,t.jsxDEV)(j,{className:"px-0",children:(0,t.jsxDEV)(G,{"data-testid":"ud-passkeys-table",children:[(0,t.jsxDEV)(W,{children:(0,t.jsxDEV)(B,{children:[(0,t.jsxDEV)(F,{children:o("name")},void 0,!1),(0,t.jsxDEV)(F,{children:o("created")},void 0,!1),(0,t.jsxDEV)(F,{"aria-label":o("Actions")},void 0,!1)]},void 0,!0)},void 0,!1),(0,t.jsxDEV)(Y,{children:f.map(R=>{let T=H(R.id);return(0,t.jsxDEV)(B,{"data-testid":`ud-passkey-${T}`,children:[(0,t.jsxDEV)(U,{children:H(R.name)||T},void 0,!1),(0,t.jsxDEV)(U,{className:"text-muted-foreground tabular-nums",children:Q(R.createdAt)},void 0,!1),(0,t.jsxDEV)(U,{children:(0,t.jsxDEV)(S,{"data-testid":`ud-delete-passkey-${T}`,disabled:i,onClick:a(()=>{h(T)},"onClick"),size:"xs",type:"button",variant:"ghost",children:o("Delete")},void 0,!1)},void 0,!1)]},T,!0)})},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1),e[29]=i,e[30]=s.passkey,e[31]=h,e[32]=f,e[33]=o,e[34]=A):A=e[34];let r;return e[35]!==x||e[36]!==v||e[37]!==n||e[38]!==A?(r=(0,t.jsxDEV)("div",{className:"flex flex-col gap-2","data-testid":"ud-security",children:[x,v,n,A]},void 0,!0),e[35]=x,e[36]=v,e[37]=n,e[38]=A,e[39]=r):r=e[39],r},"UserSecurityPanel"),Se=/(?:at|expires)$/iu,Fe=new Set(["banExpires","banned","banReason","email","emailVerified","id","name","role"]),Ue=a((w,e)=>typeof e=="number"&&Se.test(w)?Q(e):H(e),"formatField"),Re=a(({capabilities:w,onChanged:e,onClose:i,user:s})=>{let c=$(),d=M(),u=s.banned===!0,[l,o]=(0,m.useState)(null),[f,k]=(0,m.useState)(!1),[I,C]=(0,m.useState)(0),[b,N]=(0,m.useState)(typeof s.role=="string"?s.role:""),[y,h]=(0,m.useState)(""),[p,x]=(0,m.useState)(""),[v,n]=(0,m.useState)(""),[A,r]=(0,m.useState)(null),[R,T]=(0,m.useState)(!1),P=a((g,L)=>{O((async()=>{k(!0),o(null);try{let J=await g();L?.refresh!==!1&&(C(ye=>ye+1),e()),L?.onResult?.(J)}catch(J){o(Z(J))}finally{k(!1)}})())},"runAction"),ie=a(g=>{N(g.target.value)},"onRoleInputChange"),de=a(g=>{h(g.target.value)},"onBanReasonChange"),oe=a(g=>{x(g.target.value)},"onBanDaysChange"),ne=a(g=>{n(g.target.value)},"onNewPasswordChange"),re=a(()=>{let g=b.trim();g!==""&&P(async()=>{await c.setAuthUserRole({role:g,userId:s.id})})},"onSetRole"),ce=a(()=>{let g=Number.parseInt(p,10),L=Number.isFinite(g)&&g>0?g*86400:void 0;P(async()=>{await c.banAuthUser({expiresInSeconds:L,reason:y.trim()===""?void 0:y.trim(),userId:s.id})})},"onBan"),ue=a(()=>{P(async()=>{await c.unbanAuthUser({userId:s.id})})},"onUnban"),fe=a(()=>{P(async()=>{await c.setAuthUserPassword({newPassword:v,userId:s.id}),n("")})},"onSetPassword"),ve=a(()=>{P(()=>c.impersonateAuthUser({userId:s.id}),{onResult:a(g=>{r(g.token)},"onResult"),refresh:!1})},"onImpersonate"),me=a(()=>{P(async()=>{await c.revokeAuthUserSessions({userId:s.id})})},"onRevokeAll"),he=a(()=>{P(async()=>{await c.removeAuthUser({userId:s.id}),i()})},"onDelete"),pe=a(()=>{T(!0)},"onConfirmDelete"),xe=a(()=>{T(!1)},"onCancelDelete"),be=Object.entries(s).filter(([g])=>!Fe.has(g));return(0,t.jsxDEV)(X,{label:d("User details"),onClose:i,panelTestId:"ud-panel",testId:"ud-overlay",variant:"drawer",children:[(0,t.jsxDEV)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxDEV)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxDEV)("h2",{className:"text-sm font-semibold text-foreground",children:s.name??s.email??s.id},void 0,!1),(0,t.jsxDEV)("p",{className:"font-mono text-xs text-muted-foreground",children:s.id},void 0,!1),(0,t.jsxDEV)("div",{className:"flex flex-wrap items-center gap-1.5 pt-1",children:[typeof s.role=="string"&&s.role!==""&&(0,t.jsxDEV)(E,{variant:"secondary",children:s.role},void 0,!1),u?(0,t.jsxDEV)(E,{variant:"destructive",children:d("Banned")},void 0,!1):(0,t.jsxDEV)(E,{variant:"outline",children:d("Active")},void 0,!1),s.emailVerified===!0?(0,t.jsxDEV)(E,{variant:"secondary",children:d("verified")},void 0,!1):(0,t.jsxDEV)(E,{variant:"outline",children:d("unverified")},void 0,!1)]},void 0,!0)]},void 0,!0),(0,t.jsxDEV)(S,{"data-testid":"ud-close",onClick:i,size:"sm",type:"button",variant:"ghost",children:d("Close")},void 0,!1)]},void 0,!0),l!==null&&(0,t.jsxDEV)("p",{className:"text-sm text-destructive","data-testid":"ud-action-error",role:"alert",children:l},void 0,!1),w.admin&&(0,t.jsxDEV)(V,{className:"gap-0 py-0",children:[(0,t.jsxDEV)("header",{className:"border-b border-border px-4 py-3",children:(0,t.jsxDEV)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:d("Actions")},void 0,!1)},void 0,!1),(0,t.jsxDEV)(j,{className:"flex flex-col gap-3 p-3",children:[(0,t.jsxDEV)("div",{className:"flex items-end gap-2",children:[(0,t.jsxDEV)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsxDEV)(z,{htmlFor:"ud-role",children:d("Role")},void 0,!1),(0,t.jsxDEV)(D,{"data-testid":"ud-role-input",id:"ud-role",onChange:ie,value:b},void 0,!1)]},void 0,!0),(0,t.jsxDEV)(S,{"data-testid":"ud-set-role",disabled:f||b.trim()==="",onClick:re,size:"sm",type:"button",variant:"outline",children:d("Set role")},void 0,!1)]},void 0,!0),u?(0,t.jsxDEV)(S,{"data-testid":"ud-unban",disabled:f,onClick:ue,size:"sm",type:"button",variant:"outline",children:d("Unban")},void 0,!1):(0,t.jsxDEV)("div",{className:"flex items-end gap-2",children:[(0,t.jsxDEV)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsxDEV)(z,{htmlFor:"ud-ban-reason",children:d("Ban reason (optional)")},void 0,!1),(0,t.jsxDEV)(D,{"data-testid":"ud-ban-reason",id:"ud-ban-reason",onChange:de,value:y},void 0,!1)]},void 0,!0),(0,t.jsxDEV)("div",{className:"flex w-24 flex-col gap-1",children:[(0,t.jsxDEV)(z,{htmlFor:"ud-ban-days",children:d("Days")},void 0,!1),(0,t.jsxDEV)(D,{"data-testid":"ud-ban-days",id:"ud-ban-days",onChange:oe,type:"number",value:p},void 0,!1)]},void 0,!0),(0,t.jsxDEV)(S,{"data-testid":"ud-ban",disabled:f,onClick:ce,size:"sm",type:"button",variant:"destructive",children:d("Ban user")},void 0,!1)]},void 0,!0),(0,t.jsxDEV)("div",{className:"flex items-end gap-2",children:[(0,t.jsxDEV)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsxDEV)(z,{htmlFor:"ud-password",children:d("New password")},void 0,!1),(0,t.jsxDEV)(D,{"data-testid":"ud-password",id:"ud-password",onChange:ne,type:"password",value:v},void 0,!1)]},void 0,!0),(0,t.jsxDEV)(S,{"data-testid":"ud-set-password",disabled:f||v==="",onClick:fe,size:"sm",type:"button",variant:"outline",children:d("Set password")},void 0,!1)]},void 0,!0),(0,t.jsxDEV)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsxDEV)(S,{"data-testid":"ud-impersonate",disabled:f,onClick:ve,size:"sm",type:"button",variant:"outline",children:d("Impersonate")},void 0,!1),(0,t.jsxDEV)(S,{"data-testid":"ud-revoke-all",disabled:f,onClick:me,size:"sm",type:"button",variant:"outline",children:d("Revoke all sessions")},void 0,!1),R?(0,t.jsxDEV)(t.Fragment,{children:[(0,t.jsxDEV)(S,{"data-testid":"ud-delete-confirm",disabled:f,onClick:he,size:"sm",type:"button",variant:"destructive",children:d("Confirm delete")},void 0,!1),(0,t.jsxDEV)(S,{"data-testid":"ud-delete-cancel",onClick:xe,size:"sm",type:"button",variant:"ghost",children:d("Cancel")},void 0,!1)]},void 0,!0):(0,t.jsxDEV)(S,{"data-testid":"ud-delete",disabled:f,onClick:pe,size:"sm",type:"button",variant:"destructive",children:d("Delete user")},void 0,!1)]},void 0,!0),A!==null&&(0,t.jsxDEV)("div",{className:"flex flex-col gap-1","data-testid":"ud-impersonation",children:[(0,t.jsxDEV)(z,{htmlFor:"ud-token",children:d("Impersonation token")},void 0,!1),(0,t.jsxDEV)(D,{"data-testid":"ud-token",id:"ud-token",readOnly:!0,value:A},void 0,!1)]},void 0,!0)]},void 0,!0)]},void 0,!0),(0,t.jsxDEV)(Ce,{busy:f,runAction:P,userId:s.id,version:I},void 0,!1),w.accounts&&(0,t.jsxDEV)(Ae,{busy:f,runAction:P,userId:s.id,version:I},void 0,!1),(w.twoFactor||w.passkey)&&(0,t.jsxDEV)(Ie,{busy:f,capabilities:w,runAction:P,userId:s.id,version:I},void 0,!1),(0,t.jsxDEV)("div",{className:"flex flex-col gap-1","data-testid":"ud-fields",children:[(0,t.jsxDEV)("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:d("Fields")},void 0,!1),(0,t.jsxDEV)("dl",{className:"flex flex-col",children:be.map(([g,L])=>(0,t.jsxDEV)("div",{className:"flex flex-col border-t border-border py-1.5",children:[(0,t.jsxDEV)("dt",{className:"text-xs font-semibold text-muted-foreground",children:g},void 0,!1),(0,t.jsxDEV)("dd",{className:"m-0 font-mono text-xs break-words",children:Ue(g,L)},void 0,!1)]},g,!0))},void 0,!1)]},void 0,!0)]},void 0,!0)},"UserDetailDrawer"),De=50,We=a(({pageSize:w=De}={})=>{let e=$(),i=M(),[s,c]=(0,m.useState)(""),[d,u]=(0,m.useState)(""),l=se(s),[o,f]=(0,m.useState)(null),[k,I]=(0,m.useState)(!1),{capabilities:C}=le(),b=l.trim(),N=d.trim(),y=te(["lunora-auth-users",b,N,w],()=>e.listAuthUsers({filterField:N===""?void 0:"role",filterValue:N===""?void 0:N,limit:w,search:b===""?void 0:b}),{keepPreviousData:!0}),h=y.data?.rows??null,p=y.error,x=a(()=>{y.refetch()},"reloadUsers");ae(()=>{y.refetch()},!0);let v=o===null?null:h?.find(n=>n.id===o)??null;return(0,t.jsxDEV)("div",{className:"flex flex-col gap-4","data-testid":"lunora-users",children:[(0,t.jsxDEV)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxDEV)(D,{"aria-label":i("Search users"),className:"w-56","data-testid":"us-search",onChange:a(n=>{c(n.target.value)},"onChange"),placeholder:i("Search by email or name\u2026"),value:s},void 0,!1),(0,t.jsxDEV)(D,{"aria-label":i("Filter by role"),className:"w-40","data-testid":"us-role-filter",onChange:a(n=>{u(n.target.value)},"onChange"),placeholder:i("Filter by role"),value:d},void 0,!1),(0,t.jsxDEV)(S,{"data-testid":"us-new",onClick:a(()=>{I(!0)},"onClick"),size:"sm",type:"button",children:i("New user")},void 0,!1)]},void 0,!0),p!==null&&(0,t.jsxDEV)("p",{className:"text-sm text-destructive","data-testid":"us-users-error",role:"alert",children:p},void 0,!1),h!==null&&h.length===0&&(0,t.jsxDEV)(ee,{description:i("Users who sign up to your app will appear here."),icon:(0,t.jsxDEV)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsxDEV)("path",{d:"M16 20v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm11.5 10v-2a4 4 0 0 0-3-3.85"},void 0,!1)},void 0,!1),testId:"us-empty",title:i("No users.")},void 0,!1),h!==null&&h.length>0&&(0,t.jsxDEV)(V,{className:"overflow-hidden py-0",children:(0,t.jsxDEV)(j,{className:"px-0",children:(0,t.jsxDEV)(G,{"data-testid":"us-table",children:[(0,t.jsxDEV)(W,{children:(0,t.jsxDEV)(B,{children:[(0,t.jsxDEV)(F,{children:i("id")},void 0,!1),(0,t.jsxDEV)(F,{children:i("email")},void 0,!1),(0,t.jsxDEV)(F,{children:i("name")},void 0,!1),(0,t.jsxDEV)(F,{children:i("role")},void 0,!1),(0,t.jsxDEV)(F,{children:i("status")},void 0,!1),(0,t.jsxDEV)(F,{children:i("verified")},void 0,!1),(0,t.jsxDEV)(F,{children:i("created")},void 0,!1),(0,t.jsxDEV)(F,{"aria-label":i("Actions")},void 0,!1)]},void 0,!0)},void 0,!1),(0,t.jsxDEV)(Y,{children:h.map(n=>(0,t.jsxDEV)(B,{"data-testid":`us-row-${n.id}`,children:[(0,t.jsxDEV)(U,{className:"font-mono text-xs",children:n.id},void 0,!1),(0,t.jsxDEV)(U,{children:n.email??""},void 0,!1),(0,t.jsxDEV)(U,{children:n.name??""},void 0,!1),(0,t.jsxDEV)(U,{children:typeof n.role=="string"&&n.role!==""?(0,t.jsxDEV)(E,{variant:"secondary",children:n.role},void 0,!1):""},void 0,!1),(0,t.jsxDEV)(U,{children:n.banned===!0?(0,t.jsxDEV)(E,{variant:"destructive",children:i("Banned")},void 0,!1):(0,t.jsxDEV)(E,{variant:"success",children:i("Active")},void 0,!1)},void 0,!1),(0,t.jsxDEV)(U,{children:n.emailVerified===!0?(0,t.jsxDEV)(E,{variant:"success",children:i("yes")},void 0,!1):(0,t.jsxDEV)(E,{variant:"outline",children:i("no")},void 0,!1)},void 0,!1),(0,t.jsxDEV)(U,{className:"text-muted-foreground tabular-nums",children:Q(n.createdAt)},void 0,!1),(0,t.jsxDEV)(U,{children:(0,t.jsxDEV)(S,{"data-testid":`us-manage-${n.id}`,onClick:a(()=>{f(n.id)},"onClick"),size:"xs",type:"button",variant:"ghost",children:i("Manage")},void 0,!1)},void 0,!1)]},n.id,!0))},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1),v!==null&&(0,t.jsxDEV)(Re,{capabilities:C,onChanged:x,onClose:a(()=>{f(null)},"onClose"),user:v},void 0,!1),k&&(0,t.jsxDEV)(ke,{onClose:a(()=>{I(!1)},"onClose"),onCreated:x},void 0,!1)]},void 0,!0)},"UsersPanel");export{We as UsersPanel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as He}from"./chunk-YAECF5LW.js";import"./chunk-DWDILV2E.js";import{a as Ve}from"./chunk-J6J54MBP.js";import"./chunk-5OIBXYZM.js";import{a as Ge}from"./chunk-AJIUI7DD.js";import"./chunk-XNJNSCLM.js";import{a as Re,b as $e,c as Oe,d as Y,e as q,f as T}from"./chunk-GTM65MVX.js";import{a as Pe}from"./chunk-VLXV72QE.js";import{R as Fe}from"./chunk-3CJW6NWG.js";import{c as H}from"./chunk-UK64ZSUW.js";import"./chunk-O3NAGRTR.js";import"./chunk-HV7G6DFP.js";import{a as G}from"./chunk-BOXSWNXZ.js";import{a as ue}from"./chunk-TAD43CG5.js";import{b as Le}from"./chunk-DVKPRFIJ.js";import{a as De,e as Be}from"./chunk-SEU5V7I6.js";import{b as ce}from"./chunk-ZPP2KOR4.js";import"./chunk-CKSHCYGC.js";import{f as Je}from"./chunk-X7MMBSNW.js";import"./chunk-ZHVTQ37P.js";import"./chunk-3OA7PECS.js";import{d as z,e as me,f as fe,g as he,k as pe,n as ze}from"./chunk-PVZI3CXP.js";import"./chunk-GMSGZDDH.js";import{a as p,e as we,f as Ke,g as Ze,h as et}from"./chunk-RRCPZMC2.js";var P=we(Ze(),1);var D=we(Ke(),1);var t=we(et(),1);var tt=200,st=me(G.sendQueueMessage),at=me(G.replayQueueMessage),ot=me(G.clearQueueMessages),Ye=96,rt=p(r=>{if(r===void 0)return"\u2014";try{return JSON.stringify(r)}catch{return"[unserializable]"}},"formatBody"),lt=p(r=>r.length>Ye?`${r.slice(0,Ye)}\u2026`:r,"truncate"),nt=p(r=>r==="error"?"destructive":r==="retry"?"outline":"secondary","outcomeVariant"),dt=p((r,e)=>e(r==="messages"?"Messages":r==="send"?"Send":"Declared"),"tabLabel"),it=p(r=>{let e=(0,P.c)(11),{loaded:s,queues:m}=r,l=z(),n;e[0]!==l?(n=l("Queues are declared in code with defineQueue. Enqueue from a mutation or action with ctx.queues.<name>.send(...); push consumers process batches in the worker."),e[0]=l,e[1]=n):n=e[1];let o;e[2]!==n?(o=(0,t.jsxDEV)("p",{className:"text-sm text-muted-foreground",children:n},void 0,!1),e[2]=n,e[3]=o):o=e[3];let a;e[4]!==s||e[5]!==m||e[6]!==l?(a=s&&m.length===0?(0,t.jsxDEV)(ue,{description:l("No defineQueue is declared in lunora/queues.ts in this deployment. Add one to offload async work to a Cloudflare Queue."),testId:"queues-empty",title:l("No queues defined")},void 0,!1):(0,t.jsxDEV)(De,{className:"overflow-hidden py-0",children:(0,t.jsxDEV)(Be,{className:"px-0",children:(0,t.jsxDEV)(Re,{"data-testid":"queues-table",children:[(0,t.jsxDEV)($e,{children:(0,t.jsxDEV)(Y,{children:[(0,t.jsxDEV)(q,{children:l("Export")},void 0,!1),(0,t.jsxDEV)(q,{children:l("Queue")},void 0,!1),(0,t.jsxDEV)(q,{children:l("Mode")},void 0,!1),(0,t.jsxDEV)(q,{children:l("Binding")},void 0,!1),(0,t.jsxDEV)(q,{children:l("Dead-letter")},void 0,!1)]},void 0,!0)},void 0,!1),(0,t.jsxDEV)(Oe,{children:m.map(ft)},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1),e[4]=s,e[5]=m,e[6]=l,e[7]=a):a=e[7];let h;return e[8]!==o||e[9]!==a?(h=(0,t.jsxDEV)("div",{className:"flex flex-col gap-4","data-testid":"queues-declared",children:[o,a]},void 0,!0),e[8]=o,e[9]=a,e[10]=h):h=e[10],h},"QueuesDeclaredTab"),ct=p(r=>{let e=(0,P.c)(67),{message:s,onReplay:m,replayingId:l}=r,n=z(),o,a,h,c,y,g,x,d,u,f;if(e[0]!==s.attempts||e[1]!==s.body||e[2]!==s.deadLettered||e[3]!==s.exportName||e[4]!==s.id||e[5]!==s.messageId||e[6]!==s.outcome||e[7]!==s.queue||e[8]!==n){let w=rt(s.body);a=Y,g=`queues-message-${s.id}`;let R=s.exportName??s.queue;e[19]!==R?(x=(0,t.jsxDEV)(T,{className:"font-mono text-xs",children:R},void 0,!1),e[19]=R,e[20]=x):x=e[20],e[21]!==s.messageId?(d=(0,t.jsxDEV)(T,{className:"max-w-[16ch] truncate font-mono text-xs text-muted-foreground",title:s.messageId,children:s.messageId},void 0,!1),e[21]=s.messageId,e[22]=d):d=e[22],e[23]!==s.attempts?(u=(0,t.jsxDEV)(T,{className:"font-mono text-xs tabular-nums",children:s.attempts},void 0,!1),e[23]=s.attempts,e[24]=u):u=e[24];let A=`queues-outcome-${s.id}`,Q;e[25]!==s.outcome?(Q=nt(s.outcome),e[25]=s.outcome,e[26]=Q):Q=e[26];let E;e[27]!==s.outcome||e[28]!==A||e[29]!==Q?(E=(0,t.jsxDEV)(ce,{"data-testid":A,variant:Q,children:s.outcome},void 0,!1),e[27]=s.outcome,e[28]=A,e[29]=Q,e[30]=E):E=e[30];let M;e[31]!==s.deadLettered||e[32]!==s.id||e[33]!==n?(M=s.deadLettered&&(0,t.jsxDEV)(ce,{"data-testid":`queues-dlq-${s.id}`,variant:"destructive",children:n("DLQ")},void 0,!1),e[31]=s.deadLettered,e[32]=s.id,e[33]=n,e[34]=M):M=e[34],e[35]!==E||e[36]!==M?(f=(0,t.jsxDEV)(T,{children:(0,t.jsxDEV)("span",{className:"inline-flex items-center gap-1",children:[E,M]},void 0,!0)},void 0,!1),e[35]=E,e[36]=M,e[37]=f):f=e[37],o=T,h="max-w-[32ch] truncate font-mono text-xs text-muted-foreground",c=w,y=lt(w),e[0]=s.attempts,e[1]=s.body,e[2]=s.deadLettered,e[3]=s.exportName,e[4]=s.id,e[5]=s.messageId,e[6]=s.outcome,e[7]=s.queue,e[8]=n,e[9]=o,e[10]=a,e[11]=h,e[12]=c,e[13]=y,e[14]=g,e[15]=x,e[16]=d,e[17]=u,e[18]=f}else o=e[9],a=e[10],h=e[11],c=e[12],y=e[13],g=e[14],x=e[15],d=e[16],u=e[17],f=e[18];let v;e[38]!==o||e[39]!==h||e[40]!==c||e[41]!==y?(v=(0,t.jsxDEV)(o,{className:h,title:c,children:y},void 0,!1),e[38]=o,e[39]=h,e[40]=c,e[41]=y,e[42]=v):v=e[42];let N;e[43]!==s.capturedAt?(N=ze(s.capturedAt,"\u2014"),e[43]=s.capturedAt,e[44]=N):N=e[44];let b;e[45]!==N?(b=(0,t.jsxDEV)(T,{className:"text-xs text-muted-foreground tabular-nums",children:N},void 0,!1),e[45]=N,e[46]=b):b=e[46];let C=`queues-replay-${s.id}`,B=l!==null,_;e[47]!==s.id||e[48]!==l||e[49]!==n?(_=l===s.id?n("Replaying\u2026"):n("Replay"),e[47]=s.id,e[48]=l,e[49]=n,e[50]=_):_=e[50];let I;e[51]!==s.id||e[52]!==m||e[53]!==C||e[54]!==B||e[55]!==_?(I=(0,t.jsxDEV)(T,{children:(0,t.jsxDEV)(H,{"data-id":s.id,"data-testid":C,disabled:B,onClick:m,size:"xs",type:"button",variant:"outline",children:_},void 0,!1)},void 0,!1),e[51]=s.id,e[52]=m,e[53]=C,e[54]=B,e[55]=_,e[56]=I):I=e[56];let L;return e[57]!==a||e[58]!==b||e[59]!==I||e[60]!==g||e[61]!==x||e[62]!==d||e[63]!==u||e[64]!==f||e[65]!==v?(L=(0,t.jsxDEV)(a,{"data-testid":g,children:[x,d,u,f,v,b,I]},void 0,!0),e[57]=a,e[58]=b,e[59]=I,e[60]=g,e[61]=x,e[62]=d,e[63]=u,e[64]=f,e[65]=v,e[66]=L):L=e[66],L},"QueueLogRow"),ut=p(r=>{let e=(0,P.c)(26),{hasError:s,messages:m,onClear:l,onReplay:n,replayingId:o}=r,a=z(),h;e[0]!==a?(h=a("Cloudflare Queues have no peek API, so this is what push consumers actually processed \u2014 not pending depth."),e[0]=a,e[1]=h):h=e[1];let c;e[2]!==h?(c=(0,t.jsxDEV)("p",{className:"text-sm text-muted-foreground",children:h},void 0,!1),e[2]=h,e[3]=c):c=e[3];let y=m.length===0,g;e[4]!==a?(g=a("Clear log"),e[4]=a,e[5]=g):g=e[5];let x;e[6]!==l||e[7]!==y||e[8]!==g?(x=(0,t.jsxDEV)(H,{className:"ml-auto","data-testid":"queues-clear",disabled:y,onClick:l,size:"sm",type:"button",variant:"outline",children:g},void 0,!1),e[6]=l,e[7]=y,e[8]=g,e[9]=x):x=e[9];let d;e[10]!==m.length||e[11]!==a?(d=m.length>0&&(0,t.jsxDEV)(ce,{"data-testid":"queues-count",variant:"secondary",children:a("{count} messages",{count:m.length})},void 0,!1),e[10]=m.length,e[11]=a,e[12]=d):d=e[12];let u;e[13]!==c||e[14]!==x||e[15]!==d?(u=(0,t.jsxDEV)("div",{className:"flex flex-wrap items-center gap-2",children:[c,x,d]},void 0,!0),e[13]=c,e[14]=x,e[15]=d,e[16]=u):u=e[16];let f;e[17]!==s||e[18]!==m||e[19]!==n||e[20]!==o||e[21]!==a?(f=!s&&m.length===0?(0,t.jsxDEV)(ue,{description:a("Consumed messages appear here once a push consumer processes a batch in dev. Send one from the Send tab to see it captured."),testId:"queues-messages-empty",title:a("No consumed messages yet.")},void 0,!1):(0,t.jsxDEV)(De,{className:"overflow-hidden py-0",children:(0,t.jsxDEV)(Be,{className:"px-0",children:(0,t.jsxDEV)(He,{className:"max-h-[32rem]","data-testid":"queues-messages-scroll",children:(0,t.jsxDEV)(Re,{"data-testid":"queues-messages-table",children:[(0,t.jsxDEV)($e,{children:(0,t.jsxDEV)(Y,{children:[(0,t.jsxDEV)(q,{children:a("Export")},void 0,!1),(0,t.jsxDEV)(q,{children:a("Message")},void 0,!1),(0,t.jsxDEV)(q,{children:a("Attempts")},void 0,!1),(0,t.jsxDEV)(q,{children:a("Outcome")},void 0,!1),(0,t.jsxDEV)(q,{children:a("Body")},void 0,!1),(0,t.jsxDEV)(q,{children:a("Captured")},void 0,!1),(0,t.jsxDEV)(q,{},void 0,!1)]},void 0,!0)},void 0,!1),(0,t.jsxDEV)(Oe,{children:m.map(N=>(0,t.jsxDEV)(ct,{message:N,onReplay:n,replayingId:o},N.id,!1))},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1)},void 0,!1),e[17]=s,e[18]=m,e[19]=n,e[20]=o,e[21]=a,e[22]=f):f=e[22];let v;return e[23]!==u||e[24]!==f?(v=(0,t.jsxDEV)("div",{className:"flex flex-col gap-4","data-testid":"queues-messages",children:[u,f]},void 0,!0),e[23]=u,e[24]=f,e[25]=v):v=e[25],v},"QueuesMessagesTab"),mt=p(r=>{let e=(0,P.c)(20),{batchMode:s,bodyText:m,delayText:l,onBatchModeChange:n,onBodyChange:o,onDelayChange:a,onSelectExport:h,onSend:c,queues:y,selectedExportName:g,sending:x}=r,d=z(),u;e[0]!==d?(u=d("Enqueue a JSON message to a declared producer to exercise its consumer. Nothing is captured until the consumer processes it."),e[0]=d,e[1]=u):u=e[1];let f;e[2]!==u?(f=(0,t.jsxDEV)("p",{className:"text-sm text-muted-foreground",children:u},void 0,!1),e[2]=u,e[3]=f):f=e[3];let v;e[4]!==s||e[5]!==m||e[6]!==l||e[7]!==n||e[8]!==o||e[9]!==a||e[10]!==h||e[11]!==c||e[12]!==y||e[13]!==g||e[14]!==x||e[15]!==d?(v=y.length===0?(0,t.jsxDEV)(ue,{description:d("Declare a queue with defineQueue in lunora/queues.ts to enqueue a test message."),testId:"queues-send-empty",title:d("No queues to send to")},void 0,!1):(0,t.jsxDEV)(t.Fragment,{children:[(0,t.jsxDEV)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxDEV)("select",{"aria-label":d("Queue"),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":"queues-send-select",onChange:h,value:g,children:y.map(ht)},void 0,!1),(0,t.jsxDEV)(Fe,{"aria-label":d("Delay (seconds)"),className:"max-w-36","data-testid":"queues-send-delay",min:0,onChange:a,placeholder:d("Delay (s)"),type:"number",value:l},void 0,!1),(0,t.jsxDEV)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"queues-send-batch",children:[(0,t.jsxDEV)("input",{checked:s,"data-testid":"queues-send-batch",id:"queues-send-batch",onChange:n,type:"checkbox"},void 0,!1),d("Send as batch (JSON array)")]},void 0,!0),(0,t.jsxDEV)(H,{className:"ml-auto","data-testid":"queues-send-button",disabled:x||g==="",onClick:c,type:"button",children:d(x?"Sending\u2026":"Send message")},void 0,!1)]},void 0,!0),(0,t.jsxDEV)(Pe,{"aria-label":d("Message body (JSON)"),className:"font-mono","data-testid":"queues-send-body",onChange:o,placeholder:s?'[ { "hello": "world" } ]':'{ "hello": "world" }',value:m},void 0,!1)]},void 0,!0),e[4]=s,e[5]=m,e[6]=l,e[7]=n,e[8]=o,e[9]=a,e[10]=h,e[11]=c,e[12]=y,e[13]=g,e[14]=x,e[15]=d,e[16]=v):v=e[16];let N;return e[17]!==f||e[18]!==v?(N=(0,t.jsxDEV)("div",{className:"flex flex-col gap-3","data-testid":"queues-send",children:[f,v]},void 0,!0),e[17]=f,e[18]=v,e[19]=N):N=e[19],N},"QueuesSendTab"),wt=p(r=>{let e=(0,P.c)(74),{limit:s}=r,m=s??tt,l=Je(),n=z(),[o,a]=(0,D.useState)("declared"),[h,c]=(0,D.useState)(null),y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y={},e[0]=y):y=e[0];let{data:g,error:x,errorSource:d}=Le(G.listQueues,y),u;e[1]!==m?(u={limit:m},e[1]=m,e[2]=u):u=e[2];let{data:f,error:v,errorSource:N,refetch:b}=Le(G.getQueueMessages,u),C=Array.isArray(g?.queues)?[...g.queues].toSorted(pt):[],B;e[3]!==f?.entries?(B=f?.entries??[],e[3]=f?.entries,e[4]=B):B=e[4];let _=B,[I,L]=(0,D.useState)(""),[w,R]=(0,D.useState)(""),[A,Q]=(0,D.useState)(""),[E,M]=(0,D.useState)(!1),[ge,j]=(0,D.useState)(!1),[ve,W]=(0,D.useState)(null),$=C.some(i=>i.exportName===I)?I:C[0]?.exportName??"",ke=o==="messages"?v:x,je=o==="messages"?N:d,xe=ke??h,ye=ke===null?h:je,X;e[5]!==b?(X=p(()=>{b()},"t4"),e[5]=b,e[6]=X):X=e[6],Ve(X,o==="messages");let K;e[7]!==E||e[8]!==w||e[9]!==l||e[10]!==A||e[11]!==b||e[12]!==$||e[13]!==j||e[14]!==n?(K=p(async()=>{c(null);let i=$;if(i==="")return;let S=null,Me=w.trim();if(Me!=="")try{S=JSON.parse(Me)}catch{c(n("Body must be valid JSON."));return}let Ie,Ue=A.trim();if(Ue!==""){let V=Number(Ue);if(!Number.isFinite(V)||V<0){c(n("Delay must be a non-negative number of seconds."));return}Ie=V}if(E&&!Array.isArray(S)){c(n("Batch mode needs a JSON array body \u2014 each element is enqueued as one message."));return}j(!0);let Xe=E?{batch:S,delaySeconds:Ie,exportName:i}:{body:S,delaySeconds:Ie,exportName:i};try{await l.query(st,Xe,fe("")),b()}catch(V){c(he(V))}j(!1)},"t5"),e[7]=E,e[8]=w,e[9]=l,e[10]=A,e[11]=b,e[12]=$,e[13]=j,e[14]=n,e[15]=K):K=e[15];let be=K,Z;e[16]!==l||e[17]!==b||e[18]!==W?(Z=p(async i=>{c(null),W(i);try{await l.query(at,{id:i},fe("")),b()}catch(S){c(he(S))}W(null)},"t6"),e[16]=l,e[17]=b,e[18]=W,e[19]=Z):Z=e[19];let Ne=Z,ee;e[20]!==l||e[21]!==b?(ee=p(async()=>{c(null);try{await l.query(ot,{},fe("")),b()}catch(i){c(he(i))}},"t7"),e[20]=l,e[21]=b,e[22]=ee):ee=e[22];let Se=ee,te;e[23]===Symbol.for("react.memo_cache_sentinel")?(te=p(i=>{let S=i.currentTarget.dataset.tab;(S==="declared"||S==="messages"||S==="send")&&a(S)},"t8"),e[23]=te):te=e[23];let We=te,se;e[24]!==L?(se=p(i=>{L(i.currentTarget.value)},"t9"),e[24]=L,e[25]=se):se=e[25];let Ee=se,ae;e[26]!==R?(ae=p(i=>{R(i.currentTarget.value)},"t10"),e[26]=R,e[27]=ae):ae=e[27];let qe=ae,oe;e[28]!==Q?(oe=p(i=>{Q(i.currentTarget.value)},"t11"),e[28]=Q,e[29]=oe):oe=e[29];let Te=oe,re;e[30]!==M?(re=p(i=>{M(i.currentTarget.checked)},"t12"),e[30]=M,e[31]=re):re=e[31];let Ce=re,le;e[32]!==be?(le=p(()=>{pe(be())},"t13"),e[32]=be,e[33]=le):le=e[33];let _e=le,ne;e[34]!==Ne?(ne=p(i=>{let{id:S}=i.currentTarget.dataset;S!==void 0&&pe(Ne(S))},"t14"),e[34]=Ne,e[35]=ne):ne=e[35];let Ae=ne,de;e[36]!==Se?(de=p(()=>{pe(Se())},"t15"),e[36]=Se,e[37]=de):de=e[37];let Qe=de,O;e[38]!==n||e[39]!==o?(O=(0,t.jsxDEV)("div",{className:"flex items-center gap-1","data-testid":"queues-tabs",role:"tablist",children:["declared","messages","send"].map(i=>(0,t.jsxDEV)(H,{"aria-selected":o===i,"data-tab":i,"data-testid":`queues-tab-${i}`,onClick:We,role:"tab",size:"sm",type:"button",variant:o===i?"secondary":"ghost",children:dt(i,n)},i,!1))},void 0,!1),e[38]=n,e[39]=o,e[40]=O):O=e[40];let k;e[41]!==xe||e[42]!==ye?(k=xe!==null&&(0,t.jsxDEV)(Ge,{error:ye,testId:"queues-error"},void 0,!1),e[41]=xe,e[42]=ye,e[43]=k):k=e[43];let U;e[44]!==C||e[45]!==g||e[46]!==o?(U=o==="declared"&&(0,t.jsxDEV)(it,{loaded:g!==void 0,queues:C},void 0,!1),e[44]=C,e[45]=g,e[46]=o,e[47]=U):U=e[47];let J;e[48]!==_||e[49]!==v||e[50]!==Qe||e[51]!==Ae||e[52]!==ve||e[53]!==o?(J=o==="messages"&&(0,t.jsxDEV)(ut,{hasError:v!==null,messages:_,onClear:Qe,onReplay:Ae,replayingId:ve},void 0,!1),e[48]=_,e[49]=v,e[50]=Qe,e[51]=Ae,e[52]=ve,e[53]=o,e[54]=J):J=e[54];let F;e[55]!==E||e[56]!==w||e[57]!==A||e[58]!==Ce||e[59]!==qe||e[60]!==Te||e[61]!==Ee||e[62]!==_e||e[63]!==C||e[64]!==$||e[65]!==ge||e[66]!==o?(F=o==="send"&&(0,t.jsxDEV)(mt,{batchMode:E,bodyText:w,delayText:A,onBatchModeChange:Ce,onBodyChange:qe,onDelayChange:Te,onSelectExport:Ee,onSend:_e,queues:C,selectedExportName:$,sending:ge},void 0,!1),e[55]=E,e[56]=w,e[57]=A,e[58]=Ce,e[59]=qe,e[60]=Te,e[61]=Ee,e[62]=_e,e[63]=C,e[64]=$,e[65]=ge,e[66]=o,e[67]=F):F=e[67];let ie;return e[68]!==O||e[69]!==k||e[70]!==U||e[71]!==J||e[72]!==F?(ie=(0,t.jsxDEV)("div",{className:"flex flex-col gap-6","data-testid":"lunora-queues-panel",children:[O,k,U,J,F]},void 0,!0),e[68]=O,e[69]=k,e[70]=U,e[71]=J,e[72]=F,e[73]=ie):ie=e[73],ie},"QueuesPanel");function ft(r){return(0,t.jsxDEV)(Y,{"data-testid":`queues-row-${r.exportName}`,children:[(0,t.jsxDEV)(T,{className:"font-mono text-xs",children:r.exportName},void 0,!1),(0,t.jsxDEV)(T,{className:"font-mono text-xs text-muted-foreground",children:r.name},void 0,!1),(0,t.jsxDEV)(T,{className:"font-mono text-xs text-muted-foreground",children:r.mode},void 0,!1),(0,t.jsxDEV)(T,{className:"font-mono text-xs text-muted-foreground",children:r.binding},void 0,!1),(0,t.jsxDEV)(T,{className:"font-mono text-xs text-muted-foreground",children:r.deadLetterQueue??"\u2014"},void 0,!1)]},r.exportName,!0)}p(ft,"_temp");function ht(r){return(0,t.jsxDEV)("option",{value:r.exportName,children:r.exportName},r.exportName,!1)}p(ht,"_temp2");function pt(r,e){return r.exportName.localeCompare(e.exportName)}p(pt,"_temp3");export{wt as default};
|