@lunora/studio 1.0.0-alpha.90 → 1.0.0-alpha.91
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.js +1 -1
- package/dist/mount.js +1 -1
- package/dist/packem_chunks/AdvisorHealthPanel.js +1 -1
- package/dist/packem_chunks/ApiTab.js +1 -1
- package/dist/packem_chunks/AuditPanel.js +1 -1
- package/dist/packem_chunks/DeploymentHealthPanel.js +1 -1
- package/dist/packem_chunks/ExportImportPanel.js +1 -1
- package/dist/packem_chunks/FileBrowser.js +1 -1
- package/dist/packem_chunks/FunctionRunner.js +1 -1
- package/dist/packem_chunks/FunctionStatsPanel.js +1 -1
- package/dist/packem_chunks/HealthPanel.js +1 -1
- package/dist/packem_chunks/InsightsPanel.js +1 -1
- package/dist/packem_chunks/LogsPanel.js +1 -1
- package/dist/packem_chunks/MailPanel.js +1 -1
- package/dist/packem_chunks/MetricsPanel.js +1 -1
- package/dist/packem_chunks/NotificationsPanel.js +1 -1
- package/dist/packem_chunks/PitrPanel.js +1 -1
- package/dist/packem_chunks/SchemaViewer.js +1 -1
- package/dist/packem_chunks/SecurityAdvisorPanel.js +1 -1
- package/dist/packem_chunks/SettingsPanel.js +1 -1
- package/dist/packem_chunks/SqlEditorPanel.js +1 -1
- package/dist/packem_chunks/TableEditor.js +1 -1
- package/dist/packem_chunks/agents-panel.js +1 -1
- package/dist/packem_chunks/analytics-panel.js +1 -1
- package/dist/packem_chunks/auth-audit-panel.js +1 -1
- package/dist/packem_chunks/auth-config-panel.js +1 -1
- package/dist/packem_chunks/auth-sessions-panel.js +1 -1
- package/dist/packem_chunks/containers-panel.js +1 -1
- package/dist/packem_chunks/dashboards-panel.js +1 -1
- package/dist/packem_chunks/fanout-panel.js +1 -1
- package/dist/packem_chunks/flags-panel.js +1 -1
- package/dist/packem_chunks/issues-panel.js +1 -1
- package/dist/packem_chunks/kv-browser.js +1 -1
- package/dist/packem_chunks/log-drains-panel.js +1 -1
- package/dist/packem_chunks/migrations-route.js +1 -1
- package/dist/packem_chunks/organizations-panel.js +1 -1
- package/dist/packem_chunks/payments-panel.js +1 -1
- package/dist/packem_chunks/permissions-panel.js +1 -1
- package/dist/packem_chunks/queues-panel.js +1 -1
- package/dist/packem_chunks/rls-panel.js +1 -1
- package/dist/packem_chunks/schedule-panel.js +1 -1
- package/dist/packem_chunks/storage-rules-panel.js +1 -1
- package/dist/packem_chunks/subscriptions-panel.js +1 -1
- package/dist/packem_chunks/sync-client-panel.js +1 -1
- package/dist/packem_chunks/traces-panel.js +1 -1
- package/dist/packem_chunks/users-panel.js +1 -1
- package/dist/packem_chunks/vector-browser.js +1 -1
- package/dist/packem_chunks/workflows-panel.js +1 -1
- package/dist/packem_shared/{ApiDocsPanel-DLMeLZ5-.js → ApiDocsPanel-Cu_QmzO0.js} +1 -1
- package/dist/packem_shared/{ApiReferencePanel-9q8BbJl-.js → ApiReferencePanel-DuIU1P8B.js} +1 -1
- package/dist/packem_shared/{CommandPalette--SQwfTW1.js → CommandPalette-mPR8-vIm.js} +1 -1
- package/dist/packem_shared/DataBrowser-BPRDaOHx.js +1 -0
- package/dist/packem_shared/{GlobalDataBrowser-DpkjHfDg.js → GlobalDataBrowser-CeA8bDjX.js} +1 -1
- package/dist/packem_shared/HomePanel-DLP1nQdC.js +1 -0
- package/dist/packem_shared/{MigrationsPanel-dygzHUvg.js → MigrationsPanel-dm_M75mR.js} +1 -1
- package/dist/packem_shared/{OpenRpcReferencePanel-qOZcWXMs.js → OpenRpcReferencePanel-DXeffPFr.js} +1 -1
- package/dist/packem_shared/{ScheduledJobs-D8kBZWBu.js → ScheduledJobs-DDJG9Je7.js} +1 -1
- package/dist/packem_shared/{Studio-forQt-PC.js → Studio-BYg65qWq.js} +1 -1
- package/dist/packem_shared/{StudioApp-B1AWsBzi.js → StudioApp-D0UOg0a_.js} +1 -1
- package/dist/packem_shared/{advisor-view-Pa8HLtBv.js → advisor-view-Coipc04R.js} +1 -1
- package/dist/packem_shared/{data-grid-DcxyIXwG.js → data-grid-Ci4-tZkk.js} +1 -1
- package/dist/packem_shared/{error-alert-t6cpEi0z.js → error-alert--Ie7ofJ0.js} +1 -1
- package/dist/packem_shared/{grid-features-jnrD0SpX.js → grid-features-Db_BNYRo.js} +3 -3
- package/dist/packem_shared/{home-panel-CeeqqV0z.js → home-panel-BtxdqXDe.js} +1 -1
- package/dist/packem_shared/internal-zkEvTqy8.js +2 -0
- package/dist/packem_shared/{recording-client-DRAZEmzE.js → recording-client-DtUxwVNY.js} +1 -1
- package/dist/packem_shared/{reference-view-DnYYWr7I.js → reference-view-DncEStdm.js} +1 -1
- package/dist/packem_shared/{result-chart-DzJOVsaw.js → result-chart-Gywg9DOk.js} +1 -1
- package/dist/packem_shared/{schema-diagram-cg-bz_VL.js → schema-diagram-DTRaCp6Y.js} +1 -1
- package/dist/packem_shared/{studio-BtC7WPbz.js → studio-Drf4en3j.js} +1 -1
- package/dist/packem_shared/{table-list-sidebar-D9Bd4qgi.js → table-list-sidebar-fz0m_4I4.js} +1 -1
- package/dist/packem_shared/{use-admin-query-QJ-ibl5u.js → use-admin-query-CnnyWJXM.js} +1 -1
- package/dist/packem_shared/{use-async-submit-q3ymBJkD.js → use-async-submit-BFIMhRqh.js} +1 -1
- package/dist/packem_shared/{use-auth-config-BObBpdsi.js → use-auth-config-0EnNCdLu.js} +1 -1
- package/dist/packem_shared/{use-sql-assistant-C6dl2_Ty.js → use-sql-assistant-Dtw55kKM.js} +1 -1
- package/dist/packem_shared/wire-codec-BUrWLklj.js +1 -0
- package/dist/standalone/{chunk-ZPLWCC4I.js → chunk-2NX5QU44.js} +1 -1
- package/dist/standalone/{chunk-WB5IUUUU.js → chunk-2QWHVQ6P.js} +1 -1
- package/dist/standalone/{chunk-WLZ7YPBH.js → chunk-3FIN5PH4.js} +4 -4
- package/dist/standalone/{chunk-XZSGE5ST.js → chunk-3XQMTTW2.js} +1 -1
- package/dist/standalone/{chunk-SHMNA6UL.js → chunk-4D7XIQ5Q.js} +1 -1
- package/dist/standalone/{chunk-SF4MF2FT.js → chunk-4PLB4ZNI.js} +1 -1
- package/dist/standalone/{chunk-PB7FNRDB.js → chunk-4VEAVSAZ.js} +1 -1
- package/dist/standalone/{chunk-3AV5CV6K.js → chunk-6QKJ6JPJ.js} +1 -1
- package/dist/standalone/{chunk-IC64YIX5.js → chunk-6WWX4FJB.js} +1 -1
- package/dist/standalone/{chunk-62EKHKTS.js → chunk-6XKVQES4.js} +1 -1
- package/dist/standalone/{chunk-C3HXK3A5.js → chunk-7QMX3D4D.js} +1 -1
- package/dist/standalone/{chunk-ULCZDGWQ.js → chunk-7YXDJXNL.js} +1 -1
- package/dist/standalone/{chunk-DMCYISRF.js → chunk-A7647FJE.js} +1 -1
- package/dist/standalone/{chunk-D3HXVA33.js → chunk-AQT6EPZT.js} +1 -1
- package/dist/standalone/{chunk-QXXIJAD5.js → chunk-AREBQI6D.js} +1 -1
- package/dist/standalone/{chunk-TBBJPPZ3.js → chunk-BCGEI67L.js} +1 -1
- package/dist/standalone/chunk-BENJFRZL.js +1 -0
- package/dist/standalone/{chunk-LQAKPCFX.js → chunk-BYIS2KWZ.js} +1 -1
- package/dist/standalone/{chunk-QYIOW7CD.js → chunk-C6GLTSPO.js} +1 -1
- package/dist/standalone/{chunk-JFW3YNVQ.js → chunk-CMP33R3N.js} +1 -1
- package/dist/standalone/{chunk-5ZXDB6LB.js → chunk-CRHCAN4W.js} +1 -1
- package/dist/standalone/{chunk-BRQMMGOS.js → chunk-CUAGAM2B.js} +1 -1
- package/dist/standalone/chunk-DBWOWJYT.js +11 -0
- package/dist/standalone/{chunk-QV6KV4SD.js → chunk-ESEEVSPC.js} +1 -1
- package/dist/standalone/chunk-F3TP5L34.js +1 -0
- package/dist/standalone/{chunk-6MKDYZ7A.js → chunk-FBNRATNR.js} +1 -1
- package/dist/standalone/{chunk-LAHYLAT4.js → chunk-HKG5I64M.js} +1 -1
- package/dist/standalone/{chunk-GKSRVABT.js → chunk-HWOD25QD.js} +1 -1
- package/dist/standalone/{chunk-XR7RBXKA.js → chunk-IBVBIKUI.js} +1 -1
- package/dist/standalone/{chunk-CTNB2KIA.js → chunk-IGCNMZSB.js} +1 -1
- package/dist/standalone/{chunk-IAKPXGTQ.js → chunk-IUUSMC2R.js} +1 -1
- package/dist/standalone/{chunk-OG4N2XHD.js → chunk-IUYFXK4X.js} +9 -9
- package/dist/standalone/{chunk-E7TB4USI.js → chunk-IZ3ISXSM.js} +1 -1
- package/dist/standalone/{chunk-BUTBQGUU.js → chunk-J3FR2XBV.js} +1 -1
- package/dist/standalone/{chunk-QP7IQOKF.js → chunk-JWXKUXYA.js} +1 -1
- package/dist/standalone/{chunk-OG2AMGOC.js → chunk-KUFAOKU3.js} +1 -1
- package/dist/standalone/{chunk-PM37X2V3.js → chunk-LDYOCGEG.js} +1 -1
- package/dist/standalone/{chunk-CT6ZDXLL.js → chunk-LUU4SDHW.js} +1 -1
- package/dist/standalone/chunk-LYQY7L72.js +4 -0
- package/dist/standalone/{chunk-GSKOAKQ2.js → chunk-LZH7RDRV.js} +1 -1
- package/dist/standalone/{chunk-LJISXTZJ.js → chunk-ML5IJMH6.js} +1 -1
- package/dist/standalone/{chunk-DG7YINFM.js → chunk-N233NOIN.js} +1 -1
- package/dist/standalone/{chunk-QWBRD6PX.js → chunk-NH3VWHCL.js} +1 -1
- package/dist/standalone/{chunk-ARP36PTE.js → chunk-NNRFDPSD.js} +1 -1
- package/dist/standalone/{chunk-AQX2QFCN.js → chunk-O2QUUHGF.js} +1 -1
- package/dist/standalone/{chunk-U6TNNM5U.js → chunk-Q2Q7FR3R.js} +1 -1
- package/dist/standalone/{chunk-Z7G74IH4.js → chunk-Q4AI6JRP.js} +1 -1
- package/dist/standalone/{chunk-AZAGCJVI.js → chunk-QGA2HITH.js} +1 -1
- package/dist/standalone/{chunk-6VTLIGVX.js → chunk-QWJ4HKPY.js} +1 -1
- package/dist/standalone/{chunk-Y7JXGNXD.js → chunk-QZGTDXV5.js} +1 -1
- package/dist/standalone/{chunk-24JLZ2Z5.js → chunk-RHPP74O4.js} +1 -1
- package/dist/standalone/{chunk-AUQKJYHL.js → chunk-RKGCSNAW.js} +1 -1
- package/dist/standalone/{chunk-X665E2HU.js → chunk-RMN2JN4S.js} +1 -1
- package/dist/standalone/{chunk-S4ILMYP5.js → chunk-RNOSWEMO.js} +1 -1
- package/dist/standalone/{chunk-MHAXZQVO.js → chunk-ULYM26IH.js} +1 -1
- package/dist/standalone/{chunk-PGC523I2.js → chunk-WOEGO5M6.js} +1 -1
- package/dist/standalone/{chunk-67DKQC23.js → chunk-XDEDCAYN.js} +1 -1
- package/dist/standalone/{chunk-YOUKADZH.js → chunk-XGMZESWC.js} +1 -1
- package/dist/standalone/{chunk-T6OAYQTX.js → chunk-XKKP2VFZ.js} +1 -1
- package/dist/standalone/{chunk-SP5SBO2W.js → chunk-XTEWLG3J.js} +2 -2
- package/dist/standalone/{chunk-BL6NO3U3.js → chunk-XXXMUP6L.js} +1 -1
- package/dist/standalone/{chunk-LJIFMW67.js → chunk-ZKTWHB7Q.js} +1 -1
- package/dist/standalone/{chunk-53KJRSHE.js → chunk-ZNMZQXWN.js} +1 -1
- package/dist/standalone/{chunk-YU5CI2FD.js → chunk-ZWSTXAG3.js} +1 -1
- package/dist/standalone/studio.js +1 -1
- package/package.json +1 -1
- package/dist/packem_shared/DataBrowser-CZZ_WkJ-.js +0 -1
- package/dist/packem_shared/HomePanel-3baDsDBU.js +0 -1
- package/dist/packem_shared/internal-BSIsQVC6.js +0 -2
- package/dist/standalone/chunk-4COKHD2C.js +0 -1
- package/dist/standalone/chunk-V2U5CL3S.js +0 -11
- package/dist/standalone/chunk-VFQDHG7I.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as le}from"./chunk-HPFLBYRI.js";import{b as re}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{d as de,f as oe}from"./chunk-
|
|
1
|
+
import{a as le}from"./chunk-HPFLBYRI.js";import{b as re}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{d as de,f as oe}from"./chunk-DBWOWJYT.js";import"./chunk-XBDKZZ67.js";import{a as me}from"./chunk-XQCVZAGU.js";import{a as ae}from"./chunk-UZERI5YC.js";import{d as ce,r as pe}from"./chunk-IUYFXK4X.js";import"./chunk-XNGYYOLS.js";import{a as k,e as ie,g as xe,h as ge,j as Z}from"./chunk-3XIESWL4.js";var ne=ie(xe(),1);var a=ie(ge(),1);var ye="/_lunora/health",Ne="/_lunora/health/ready",ve=k((n,e)=>(n.endsWith("/")?n.slice(0,-1):n)+e,"xe"),be=k(()=>{let n=oe();return async e=>{let w=e==="ready"?Ne:ye,t=n.getAuthToken(),_=ve(n.url,w);try{let l=await fetch(_,{headers:t===null?{}:{authorization:`Bearer ${t}`}}),d=null;try{d=await l.json()}catch{d=null}return{body:d,ok:l.ok,status:l.status}}catch(l){return{body:null,error:l instanceof Error?l.message:String(l),ok:!1,status:0}}}},"Ne"),he={crit:"bg-destructive",ok:"bg-success",warn:"bg-warning"},ke={crit:"bg-destructive/10 text-destructive",ok:"bg-success/10 text-success",warn:"bg-warning/10 text-warning"},we=k(n=>n==="unhealthy"?"crit":n==="degraded"?"warn":"ok","ye"),ue=k(n=>{let e=(0,ne.c)(13),{label:w,level:t,testId:_,value:l}=n,d=he[t],o;e[0]!==d?(o=Z("size-1.5 shrink-0 rounded-full",d),e[0]=d,e[1]=o):o=e[1];let c;e[2]!==o?(c=(0,a.jsx)("span",{"aria-hidden":"true",className:o}),e[2]=o,e[3]=c):c=e[3];let x;e[4]!==w||e[5]!==c?(x=(0,a.jsxs)("span",{className:"flex items-center gap-1.5 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:[c,w]}),e[4]=w,e[5]=c,e[6]=x):x=e[6];let g;e[7]!==_||e[8]!==l?(g=(0,a.jsx)("span",{className:"text-lg font-semibold text-foreground","data-testid":_,children:l}),e[7]=_,e[8]=l,e[9]=g):g=e[9];let u;return e[10]!==x||e[11]!==g?(u=(0,a.jsx)(ae,{className:"gap-0 py-0",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[x,g]})}),e[10]=x,e[11]=g,e[12]=u):u=e[12],u},"ne"),De=k(n=>{let e=(0,ne.c)(115),{probe:w}=n,t=ce(),_=be(),l=w??_,d;e[0]!==l?(d=k(async()=>{let[s,i]=await Promise.all([l("live"),l("ready")]);return{live:s,ready:i}},"d"),e[0]=l,e[1]=d):d=e[1];let o;e[2]===Symbol.for("react.memo_cache_sentinel")?(o=["deployment-health"],e[2]=o):o=e[2];let c;e[3]!==d?(c={queryFn:d,queryKey:o},e[3]=d,e[4]=c):c=e[4];let{data:x,isPending:g}=de(c),u=x?.live??null,fe=x?.ready??null;if(g){let s;return e[5]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"deployment-health-loading",children:[(0,a.jsx)(le,{className:"h-16 w-full"}),(0,a.jsx)(le,{className:"h-40 w-full"})]}),e[5]=s):s=e[5],s}let r=u?.body??null;if(r===null){let s=u?.status===403,i;e[6]!==s||e[7]!==u?.error||e[8]!==t?(i=s?t("The health endpoint is in the admin posture. Paste a valid admin token in the connect popover, or set its auth to public."):t("Couldn't reach the health endpoint: {message}",{message:u?.error??t("no response")}),e[6]=s,e[7]=u?.error,e[8]=t,e[9]=i):i=e[9];let h;e[10]!==t?(h=t("Health endpoint unavailable"),e[10]=t,e[11]=h):h=e[11];let p;return e[12]!==i||e[13]!==h?(p=(0,a.jsx)(me,{description:i,testId:"deployment-health-error",title:h}),e[12]=i,e[13]=h,e[14]=p):p=e[14],p}let ee;e[15]!==r.status?(ee=we(r.status),e[15]=r.status,e[16]=ee):ee=e[16];let j=ee,m;if(r.status==="unhealthy"){let s;e[17]!==t?(s=t("Unhealthy"),e[17]=t,e[18]=s):s=e[18],m=s}else if(r.status==="degraded"){let s;e[19]!==t?(s=t("Degraded"),e[19]=t,e[20]=s):s=e[20],m=s}else{let s;e[21]!==t?(s=t("Healthy"),e[21]=t,e[22]=s):s=e[22],m=s}let C=fe?.ok??!1,Y=C?"ok":"crit",z,I,y,N,v,S,V,b,$,H;if(e[23]!==r.appName||e[24]!==r.appVersion||e[25]!==r.checks||e[26]!==r.timestamp||e[27]!==j||e[28]!==Y||e[29]!==C||e[30]!==m||e[31]!==t){let s=[...r.checks].toSorted(_e);H="flex flex-col gap-6",I="deployment-health";let i;e[42]!==t?(i=t("Live liveness, readiness, and per-binding health from the deployment's /_lunora/health endpoint \u2014 wire an uptime monitor or a Cloudflare Health Check at it."),e[42]=t,e[43]=i):i=e[43],e[44]!==i?(y=(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:i}),e[44]=i,e[45]=y):y=e[45];let h=ke[j],p;e[46]!==h?(p=Z("flex size-10 shrink-0 items-center justify-center rounded-full",h),e[46]=h,e[47]=p):p=e[47];let se=he[j],D;e[48]!==se?(D=Z("size-3 rounded-full",se),e[48]=se,e[49]=D):D=e[49];let L;e[50]!==D?(L=(0,a.jsx)("span",{className:D}),e[50]=D,e[51]=L):L=e[51];let T;e[52]!==p||e[53]!==L?(T=(0,a.jsx)("span",{"aria-hidden":"true",className:p,children:L}),e[52]=p,e[53]=L,e[54]=T):T=e[54];let q;e[55]!==m?(q=(0,a.jsx)("span",{className:"text-sm font-semibold text-foreground","data-testid":"dh-status",children:m}),e[55]=m,e[56]=q):q=e[56];let E;e[57]!==r.appName||e[58]!==r.appVersion?(E=(0,a.jsxs)("span",{className:"font-mono text-[13px] text-muted-foreground","data-testid":"dh-app",children:[r.appName," \xB7 ",r.appVersion]}),e[57]=r.appName,e[58]=r.appVersion,e[59]=E):E=e[59];let R;e[60]!==q||e[61]!==E?(R=(0,a.jsxs)("div",{className:"grid leading-tight",children:[q,E]}),e[60]=q,e[61]=E,e[62]=R):R=e[62];let U;e[63]!==T||e[64]!==R?(U=(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[T,R]}),e[63]=T,e[64]=R,e[65]=U):U=e[65];let A;e[66]!==t?(A=t("Checked"),e[66]=t,e[67]=A):A=e[67];let B;e[68]!==A?(B=(0,a.jsx)("div",{className:"font-mono text-[10px] tracking-wide text-muted-foreground uppercase",children:A}),e[68]=A,e[69]=B):B=e[69];let F;e[70]!==r.timestamp?(F=pe(r.timestamp),e[70]=r.timestamp,e[71]=F):F=e[71];let K;e[72]!==F?(K=(0,a.jsx)("time",{className:"text-[13px] text-muted-foreground","data-testid":"dh-timestamp",children:F}),e[72]=F,e[73]=K):K=e[73];let Q;e[74]!==B||e[75]!==K?(Q=(0,a.jsxs)("div",{className:"text-end",children:[B,K]}),e[74]=B,e[75]=K,e[76]=Q):Q=e[76],e[77]!==U||e[78]!==Q?(N=(0,a.jsx)(ae,{className:"gap-0 py-0",children:(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4 p-4",children:[U,Q]})}),e[77]=U,e[78]=Q,e[79]=N):N=e[79];let W;e[80]!==t?(W=t("Liveness"),e[80]=t,e[81]=W):W=e[81];let G;e[82]!==j||e[83]!==m||e[84]!==W?(G=(0,a.jsx)(ue,{label:W,level:j,testId:"dh-liveness",value:m}),e[82]=j,e[83]=m,e[84]=W,e[85]=G):G=e[85];let J;e[86]!==t?(J=t("Readiness"),e[86]=t,e[87]=J):J=e[87];let M;e[88]!==C||e[89]!==t?(M=t(C?"Ready":"Not ready"),e[88]=C,e[89]=t,e[90]=M):M=e[90];let O;e[91]!==Y||e[92]!==J||e[93]!==M?(O=(0,a.jsx)(ue,{label:J,level:Y,testId:"dh-readiness",value:M}),e[91]=Y,e[92]=J,e[93]=M,e[94]=O):O=e[94],e[95]!==G||e[96]!==O?(v=(0,a.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2","data-testid":"dh-probes",children:[G,O]}),e[95]=G,e[96]=O,e[97]=v):v=e[97],z=ae,S="gap-0 py-0",V="dh-checks";let X;e[98]!==t?(X=t("Subsystem checks"),e[98]=t,e[99]=X):X=e[99],e[100]!==X?(b=(0,a.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,a.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:X})}),e[100]=X,e[101]=b):b=e[101],$=s.length===0?(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"dh-checks-empty",children:t("No checks reported.")}):(0,a.jsx)("ul",{className:"divide-y divide-border",children:s.map(f=>(0,a.jsxs)("li",{className:"flex flex-wrap items-center justify-between gap-2 px-4 py-2.5 text-xs","data-testid":`dh-check-${f.name}`,children:[(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{"aria-hidden":"true",className:Z("size-1.5 shrink-0 rounded-full",f.status==="up"?"bg-success":"bg-destructive")}),(0,a.jsx)("span",{className:"font-mono text-foreground",children:f.name}),f.critical&&(0,a.jsx)(re,{variant:"outline",children:t("Critical")})]}),(0,a.jsxs)("span",{className:"flex shrink-0 items-center gap-2",children:[f.message!==void 0&&(0,a.jsx)("span",{className:"text-muted-foreground",children:f.message}),(0,a.jsx)(re,{"data-testid":`dh-check-status-${f.name}`,variant:f.status==="up"?"secondary":"destructive",children:f.status==="up"?t("Up"):t("Down")})]})]},f.name))}),e[23]=r.appName,e[24]=r.appVersion,e[25]=r.checks,e[26]=r.timestamp,e[27]=j,e[28]=Y,e[29]=C,e[30]=m,e[31]=t,e[32]=z,e[33]=I,e[34]=y,e[35]=N,e[36]=v,e[37]=S,e[38]=V,e[39]=b,e[40]=$,e[41]=H}else z=e[32],I=e[33],y=e[34],N=e[35],v=e[36],S=e[37],V=e[38],b=e[39],$=e[40],H=e[41];let P;e[102]!==z||e[103]!==S||e[104]!==V||e[105]!==b||e[106]!==$?(P=(0,a.jsxs)(z,{className:S,"data-testid":V,children:[b,$]}),e[102]=z,e[103]=S,e[104]=V,e[105]=b,e[106]=$,e[107]=P):P=e[107];let te;return e[108]!==I||e[109]!==y||e[110]!==N||e[111]!==v||e[112]!==P||e[113]!==H?(te=(0,a.jsxs)("div",{className:H,"data-testid":I,children:[y,N,v,P]}),e[108]=I,e[109]=y,e[110]=N,e[111]=v,e[112]=P,e[113]=H,e[114]=te):te=e[114],te},"Ie");function _e(n,e){return n.name.localeCompare(e.name)}k(_e,"be");export{De as DeploymentHealthPanel};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Ze}from"./chunk-
|
|
1
|
+
import{a as Ze}from"./chunk-IBVBIKUI.js";import{a as Je,b as Ve}from"./chunk-2QWHVQ6P.js";import{a as Xe}from"./chunk-3FIN5PH4.js";import"./chunk-7H7LZRLP.js";import"./chunk-SD4BERSA.js";import"./chunk-IC4L6G56.js";import"./chunk-ESVP44Y3.js";import"./chunk-I6A5C46N.js";import"./chunk-2QSHLBCO.js";import"./chunk-BGBLQ563.js";import{a as Ge}from"./chunk-FURI47Z2.js";import"./chunk-IVFHIQOT.js";import"./chunk-QBWRC5YX.js";import"./chunk-S3DWUXGY.js";import"./chunk-4UOFSGUS.js";import"./chunk-ILNELDFC.js";import"./chunk-AREBQI6D.js";import{a as Qe}from"./chunk-RMN2JN4S.js";import{b as Pe}from"./chunk-GRL5MG3Z.js";import{d as Ce,e as Oe,f as Me}from"./chunk-7T7UOTYK.js";import{R as Fe}from"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{a as We}from"./chunk-XXQUMVWH.js";import{a as we}from"./chunk-VDW32UET.js";import"./chunk-4D7XIQ5Q.js";import{f as ke}from"./chunk-DBWOWJYT.js";import"./chunk-XBDKZZ67.js";import{a as He,b as je,c as Ke,d as De,e as Ye,f as Ue}from"./chunk-MIQTKZAR.js";import{d as oe,f as ve,g as ye,h as _e,o as ie}from"./chunk-IUYFXK4X.js";import"./chunk-XNGYYOLS.js";import{a as i,e as Ee,f as dt,g as ut,h as mt,j as ue}from"./chunk-3XIESWL4.js";var K=Ee(ut(),1);var P=Ee(dt(),1);var c=Ee(mt(),1);var ht=["ORDER BY","GROUP BY","LEFT JOIN","RIGHT JOIN","INNER JOIN","OUTER JOIN","CROSS JOIN","EXPLAIN QUERY PLAN","SELECT","DISTINCT","FROM","WHERE","HAVING","LIMIT","OFFSET","JOIN","ON","AND","OR","AS","ASC","DESC","WITH","UNION","EXPLAIN"],ft=["FROM","WHERE","ORDER BY","GROUP BY","HAVING","LIMIT","OFFSET","UNION","JOIN","LEFT JOIN","RIGHT JOIN","INNER JOIN","OUTER JOIN","CROSS JOIN"],Ie=String.fromCodePoint(0),pt=new RegExp(`${Ie}${String.raw`(\d+)`}${Ie}`,"gu"),bt=ht.map(l=>({pattern:new RegExp(String.raw`\b${l.replaceAll(" ",String.raw`\s+`)}\b`,"giu"),replacement:l})),gt=ft.map(l=>({pattern:new RegExp(String.raw`\s+${l.replaceAll(" ",String.raw`\s+`)}\b`,"gu"),replacement:`
|
|
2
2
|
${l}`})),xt=i(l=>{let e=[],t=l.replaceAll(/'(?:[^']|'')*'/gu,n=>(e.push(n),`${Ie}${(e.length-1).toString()}${Ie}`)).replaceAll(/\s+/gu," ").trim();for(let{pattern:n,replacement:r}of bt)t=t.replaceAll(n,r);for(let{pattern:n,replacement:r}of gt)t=t.replaceAll(n,r);return t=t.replaceAll(pt,(n,r)=>e[Number(r)]??""),t},"yt"),vt=/^(?:explain\s+(?:query\s+plan\s+)?)?(?:select|with)\b/iu,yt=/\b(?:alter|attach|create|delete|detach|drop|insert|pragma|reindex|replace|truncate|update|vacuum)\b/iu,wt=/^\w+/u,St=/;\s*$/u,Nt=/\s/u,kt=i((l,e)=>{let t=e+2;for(;t<l.length&&l[t]!==`
|
|
3
3
|
`;)t+=1;return t},"qt"),Ct=i((l,e)=>{let t=l.indexOf("*/",e+2);return t===-1?-1:t+2},"$t"),qt=i(l=>{let e=0;for(;e<l.length;){let t=l[e];if(t!==void 0&&Nt.test(t))e+=1;else if(t==="-"&&l[e+1]==="-")e=kt(l,e);else if(t==="/"&&l[e+1]==="*"){let n=Ct(l,e);if(n===-1)break;e=n}else break}return e},"Tt"),Tt=i(l=>{let e=qt(l),t=l.slice(e).trimEnd();if(t==="")return{code:"SQL_EMPTY",message:"the query is empty"};let n=t.replace(St,""),r=n.indexOf(";");if(r!==-1)return{code:"SQL_MULTIPLE_STATEMENTS",length:1,message:"only a single statement may be run",offset:e+r};let o="the SQL editor is read-only \u2014 only SELECT / WITH / EXPLAIN queries are allowed";if(!vt.test(n))return{code:"SQL_NOT_READONLY",length:wt.exec(n)?.[0].length??1,message:o,offset:e};let s=yt.exec(n);if(s!==null)return{code:"SQL_NOT_READONLY",length:s[0].length,message:`${o} (\`${s[0].toUpperCase()}\` is not allowed)`,offset:e+s.index}},"Rt"),It=/\b(?:from|join)\s+([a-z_][\w$]*)(?:\s+(?:as\s+)?([a-z_][\w$]*))?/giu,Rt=/(?:\bwith\s+(?:recursive\s+)?|,\s*)([a-z_][\w$]*)\s+as\s*\(/giu,Lt=new Set(["cross","full","group","having","inner","join","left","limit","offset","on","order","right","union","using","where","window"]),Et=/[^\n]/gu,_t=i((l,e)=>{let t=l[e];if(t==="'"){let n=e+1;for(;n<l.length&&l[n]!=="'";)n+=1;return Math.min(n+1,l.length)}if(t==="-"&&l[e+1]==="-"){let n=l.indexOf(`
|
|
4
4
|
`,e);return n===-1?l.length:n}if(t==="/"&&l[e+1]==="*"){let n=l.indexOf("*/",e+2);return n===-1?l.length:n+2}return-1},"Ot"),Ot=i(l=>{let e="",t=0;for(;t<l.length;){let n=_t(l,t);n===-1?(e+=l.slice(t,t+1),t+=1):(e+=l.slice(t,n).replaceAll(Et," "),t=n)}return e},"Mt"),Mt=i(l=>{let e=new Set;for(let t of l.matchAll(Rt))e.add((t[1]??"").toLowerCase());return e},"Dt"),Dt=i((l,e)=>{let t=new Map;for(let n of l.matchAll(It)){let r=(n[1]??"").toLowerCase(),o=(n[2]??"").toLowerCase();e.has(r)&&(t.set(r,r),o!==""&&!Lt.has(o)&&t.set(o,r))}return t},"At"),ot=i((l,e)=>{let t=Ot(l),n=new Set(e.map(r=>r.toLowerCase()));return{ctes:Mt(t),masked:t,targets:Dt(t,n)}},"Ke"),At=/^(?:__lunora|sqlite_)/iu,Bt=/\b(?:from|join)\s+([a-z_][\w$]*)/giu,$t=/\b([a-z_][\w$]*)\.([a-z_][\w$]*)/giu,zt=new Set(["cross","full","group","having","inner","join","lateral","left","limit","offset","order","right","select","union","where","window"]),Ft=i((l,e,t)=>{let n=[];for(let r of l.matchAll(Bt)){let o=r[1]??"",s=o.toLowerCase();!e.has(s)&&!t.has(s)&&!zt.has(s)&&!At.test(o)&&n.push({length:o.length,message:`unknown table \`${o}\``,offset:r.index+r[0].length-o.length,severity:"error",source:"schema"})}return n},"Ft"),Pt=i((l,e,t)=>{let n=[],r=new Map;for(let[o,s]of Object.entries(e.columns))r.set(o.toLowerCase(),new Set(s.map(m=>m.toLowerCase())));for(let o of l.matchAll($t)){let s=(o[1]??"").toLowerCase(),m=o[2]??"",a=t.get(s),d=a===void 0?void 0:r.get(a);d!==void 0&&!d.has(m.toLowerCase())&&n.push({length:m.length,message:`\`${a??""}\` has no column \`${m}\``,offset:o.index+o[0].length-m.length,severity:"error",source:"schema"})}return n},"Qt"),Qt=i((l,e)=>{if(l.trim()==="")return[];let t=Tt(l);if(t!==void 0)return t.code==="SQL_EMPTY"?[]:[{length:t.length,message:t.message,offset:t.offset,severity:"error",source:"gate"}];let{ctes:n,masked:r,targets:o}=ot(l,e.tables),s=new Set(e.tables.map(m=>m.toLowerCase()));return[...Ft(r,s,n),...Pt(r,e,o)]},"jt"),Wt=ve(we.lintSql),Ht=600,jt=i((l,e,t)=>{let n=ke(),[r,o]=(0,P.useState)([]),s=(0,P.useMemo)(()=>Qt(l,e),[l,e]),m=Ge(l,Ht),a=s.some(p=>p.source==="gate")||m.trim()==="",d=(0,P.useCallback)(async p=>{try{let b=await n.query(Wt,{sql:m},ye(t));p.cancelled||o(b.diagnostics??[])}catch{p.cancelled||o([])}},[n,m,t]);(0,P.useEffect)(()=>{if(a){o([]);return}let p={cancelled:!1};return ie(d(p)),()=>{p.cancelled=!0}},[d,a]);let f=m===l;return(0,P.useMemo)(()=>f?[...s,...r]:s,[s,r,f])},"Ut"),qe=8,Kt=["AND","ASC","AS","BY","COUNT","DESC","DISTINCT","EXPLAIN","FROM","GROUP","HAVING","INNER","JOIN","LEFT","LIKE","LIMIT","NOT","NULL","OFFSET","ON","ORDER","OR","QUERY","SELECT","WHERE","WITH"],Yt=new Set(["AND","BY","HAVING","ON","OR","SELECT","WHERE"]),Ut=/[\w$]/,rt=i(l=>l!==void 0&&Ut.test(l),"Ue"),lt=i(l=>{let e=l.length;for(;e>0&&rt(l[e-1]);)e-=1;return l.slice(e)},"Ye"),st=i((l,e)=>{let t=e;for(;t>0&&rt(l[t-1]);)t-=1;return{end:e,start:t,text:l.slice(t,e)}},"Je"),et=i((l,e)=>{let t=l.slice(0,e).trimEnd();return t.endsWith(".")||Yt.has(lt(t).toUpperCase())},"Pe"),Gt=i((l,e,t)=>{let n=l.slice(0,e);if(!n.endsWith("."))return;let r=lt(n.slice(0,-1));if(r!=="")return ot(l,t).targets.get(r.toLowerCase())??r},"Vt"),Be=i((l,e)=>l.toLowerCase().startsWith(e.toLowerCase()),"Me"),tt=i((l,e,t,n)=>{let r=[];for(let o of l)if(Be(o,e)&&(r.push(n(o)),r.length>=t))break;return r},"Fe"),Jt=i((l,e,t)=>{let n=new Map;for(let[r,o]of Object.entries(l.columns))for(let s of o)if(Be(s,e)&&!n.has(s)&&(n.set(s,r),n.size>=t))return[...n].map(([m,a])=>({detail:a,kind:"column",label:m}));return[...n].map(([r,o])=>({detail:o,kind:"column",label:r}))},"Xt"),Vt=i((l,e,t)=>{let n=st(l,e),r=Gt(l,n.start,t.tables);if(r!==void 0){let a=t.columns[r]??t.columns[r.toLowerCase()]??[];return tt(a,n.text,qe,d=>({detail:r,kind:"column",label:d}))}if(n.text===""&&!et(l,n.start))return[];let o=tt(t.tables,n.text,qe,a=>({kind:"table",label:a})),s=Jt(t,n.text,qe),m=Kt.flatMap(a=>n.text!==""&&Be(a,n.text)&&a.toLowerCase()!==n.text.toLowerCase()?[{kind:"keyword",label:a}]:[]);return(et(l,n.start)?[...s,...o,...m]:[...o,...s,...m]).slice(0,qe)},"Zt"),Xt=i((l,e,t)=>{let n=st(l,e),r=l.slice(0,n.start)+t.label+l.slice(n.end);return{caret:n.start+t.label.length,value:r}},"en"),Zt=["boxSizing","borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textTransform","width","wordSpacing"],en=i((l,e)=>{let t=globalThis.getComputedStyle(l),n=globalThis.document.createElement("div"),{style:r}=n;r.position="absolute",r.visibility="hidden",r.whiteSpace="pre-wrap",r.overflowWrap="break-word";for(let a of Zt)r[a]=t[a];n.textContent=l.value.slice(0,Math.max(0,e));let o=globalThis.document.createElement("span");o.textContent=l.value.slice(Math.max(0,e))||".",n.append(o),globalThis.document.body.append(n);let s=o.offsetLeft-l.scrollLeft,m=o.offsetTop-l.scrollTop;return n.remove(),{left:s,top:m}},"nn"),tn=i((l,e,t)=>{let n=(0,K.c)(16),[r,o]=(0,P.useState)(null),s;n[0]!==l||n[1]!==e?(s=i((w,g)=>{let h=Vt(w,g,l);if(h.length===0){o(null);return}let S=e.current,{left:k,top:N}=S===null?{left:0,top:0}:en(S,g);o(C=>C!==null&&C.active===0&&C.left===k&&C.top===N&&C.suggestions.length===h.length&&C.suggestions.every((L,R)=>{let E=h.at(R);return L.kind===E?.kind&&L.label===E.label&&L.detail===E.detail})?C:{active:0,left:k,suggestions:h,top:N})},"s"),n[0]=l,n[1]=e,n[2]=s):s=n[2];let m=s,a;n[3]===Symbol.for("react.memo_cache_sentinel")?(a=i(()=>{o(null)},"a"),n[3]=a):a=n[3];let d=a,f;n[4]===Symbol.for("react.memo_cache_sentinel")?(f=i(w=>{o(g=>{if(g===null)return g;let h=g.suggestions.length,S=(g.active+w+h)%h;return{...g,active:S}})},"f"),n[4]=f):f=n[4];let p=f,b;n[5]!==t||n[6]!==r||n[7]!==e?(b=i(w=>{let g=e.current;if(r===null||g===null)return!1;let h=r.suggestions[w??r.active];if(h===void 0)return!1;let S=Xt(g.value,g.selectionStart,h);return t(S.value),o(null),requestAnimationFrame(()=>{let k=e.current;k!==null&&(k.focus(),k.setSelectionRange(S.caret,S.caret))}),!0},"p"),n[5]=t,n[6]=r,n[7]=e,n[8]=b):b=n[8];let v=b,u;n[9]!==v?(u=i(()=>v(),"c"),n[9]=v,n[10]=u):u=n[10];let x=u,y;return n[11]!==x||n[12]!==v||n[13]!==m||n[14]!==r?(y={close:d,commit:x,commitAt:v,move:p,refresh:m,state:r},n[11]=x,n[12]=v,n[13]=m,n[14]=r,n[15]=y):y=n[15],y},"on"),nn={column:"column",keyword:"keyword",table:"table"},on=20,rn=i(l=>{let e=(0,K.c)(17),{listboxId:t,onPick:n,state:r}=l,o=oe(),s;e[0]!==r?(s=r===null?void 0:{left:r.left,top:r.top+on},e[0]=r,e[1]=s):s=e[1];let m=s;if(r===null)return null;let a;if(e[2]!==t||e[3]!==n||e[4]!==r.active||e[5]!==r.suggestions||e[6]!==o){let f;e[8]!==t||e[9]!==n||e[10]!==r.active||e[11]!==o?(f=i((p,b)=>(0,c.jsxs)("li",{"aria-selected":b===r.active,className:ue("flex cursor-pointer items-center gap-2 px-2 py-1 text-[13px]",b===r.active?"bg-accent text-accent-foreground":"text-foreground"),"data-testid":"sql-autocomplete-item",id:`${t}-opt-${b.toString()}`,onMouseDown:i(v=>{v.preventDefault(),n(b)},"onMouseDown"),role:"option",children:[(0,c.jsx)("span",{className:"truncate font-mono",children:p.label}),p.detail!==void 0&&(0,c.jsx)("span",{className:"ms-auto truncate text-xs text-muted-foreground",children:p.detail}),(0,c.jsx)("span",{className:"shrink-0 font-mono text-[10px] tracking-wide text-muted-foreground/70 uppercase",children:o(nn[p.kind])})]},`${p.kind}:${p.label}`),"f"),e[8]=t,e[9]=n,e[10]=r.active,e[11]=o,e[12]=f):f=e[12],a=r.suggestions.map(f),e[2]=t,e[3]=n,e[4]=r.active,e[5]=r.suggestions,e[6]=o,e[7]=a}else a=e[7];let d;return e[13]!==t||e[14]!==m||e[15]!==a?(d=(0,c.jsx)("ul",{className:"absolute z-30 max-h-56 w-72 overflow-auto rounded-md border border-border bg-popover py-1 text-popover-foreground shadow-md","data-testid":"sql-autocomplete",id:t,role:"listbox",style:m,children:a}),e[13]=t,e[14]=m,e[15]=a,e[16]=d):d=e[16],d},"sn"),ln=ve(we.listTables),sn=ve(we.readTablePage),an=i(l=>{let e=(0,K.c)(16),t=ke(),n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];let[r,o]=(0,P.useState)(n),s;e[1]===Symbol.for("react.memo_cache_sentinel")?(s={},e[1]=s):s=e[1];let[m,a]=(0,P.useState)(s),d;e[2]===Symbol.for("react.memo_cache_sentinel")?(d=new Set,e[2]=d):d=e[2];let f=(0,P.useRef)(d),p,b;e[3]!==t||e[4]!==l?(p=i(()=>{let g={cancelled:!1};return ie((async()=>{try{let h=await t.query(ln,{},ye(l));g.cancelled||(o(h.map(dn)),a({}),f.current=new Set)}catch{g.cancelled||(o([]),a({}),f.current=new Set)}})()),()=>{g.cancelled=!0}},"h"),b=[t,l],e[3]=t,e[4]=l,e[5]=p,e[6]=b):(p=e[5],b=e[6]),(0,P.useEffect)(p,b);let v;e[7]!==t||e[8]!==l?(v=i(g=>{f.current.has(g)||(f.current.add(g),ie((async()=>{try{let h=await t.query(sn,{limit:1,offset:0,table:g},ye(l));a(S=>({...S,[g]:h.columns}))}catch{f.current.delete(g)}})()))},"x"),e[7]=t,e[8]=l,e[9]=v):v=e[9];let u=v,x;e[10]!==m||e[11]!==r?(x={columns:m,tables:r},e[10]=m,e[11]=r,e[12]=x):x=e[12];let y=x,w;return e[13]!==u||e[14]!==y?(w={probe:u,schema:y},e[13]=u,e[14]=y,e[15]=w):w=e[15],w},"dn"),Ae=/\b(?:from|join|update|into)\s+([a-z_][\w$]*)|\b([a-z_][\w$]*)\s*\./gi,cn=i(l=>{let e=new Set;Ae.lastIndex=0;let t=Ae.exec(l);for(;t!==null;)e.add(t[1]??t[2]),t=Ae.exec(l);return[...e]},"un");function dn(l){return l.name}i(dn,"mn");var un=i(l=>{let e=(0,K.c)(34),{onSubmit:t,probe:n,schema:r,setDraft:o}=l,s=(0,P.useId)(),m=(0,P.useRef)(null),a=(0,P.useRef)(null),d=(0,P.useRef)(null),f=tn(r,d,o),{close:p,commit:b,commitAt:v,move:u,refresh:x,state:y}=f,w;e[0]!==v?(w=i(I=>{v(I)},"y"),e[0]=v,e[1]=w):w=e[1];let g=w,h;e[2]!==x?(h=i(()=>{let I=d.current;I!==null&&I===document.activeElement&&x(I.value,I.selectionStart)},"m"),e[2]=x,e[3]=h):h=e[3];let S;e[4]!==x||e[5]!==r?(S=[x,r],e[4]=x,e[5]=r,e[6]=S):S=e[6],(0,P.useEffect)(h,S);let k;e[7]!==n||e[8]!==x||e[9]!==o?(k=i(I=>{let{selectionStart:$,value:W}=I.target;o(W);for(let Q of cn(W))n(Q);x(W,$)},"N"),e[7]=n,e[8]=x,e[9]=o,e[10]=k):k=e[10];let N=k,C;e[11]!==x?(C=i(I=>{let $=I.currentTarget;x($.value,$.selectionStart)},"k"),e[11]=x,e[12]=C):C=e[12];let L=C,R;e[13]!==y||e[14]!==p||e[15]!==b||e[16]!==u||e[17]!==t?(R=i(I=>{if(y!==null){if(I.key==="ArrowDown"){I.preventDefault(),u(1);return}if(I.key==="ArrowUp"){I.preventDefault(),u(-1);return}if(I.key==="Escape"){I.preventDefault(),p();return}if((I.key==="Enter"||I.key==="Tab")&&!I.metaKey&&!I.ctrlKey&&b()){I.preventDefault();return}}(I.metaKey||I.ctrlKey)&&I.key==="Enter"&&(I.preventDefault(),t())},"T"),e[13]=y,e[14]=p,e[15]=b,e[16]=u,e[17]=t,e[18]=R):R=e[18];let E=R,q;e[19]!==p?(q=i(()=>{requestAnimationFrame(()=>{p()})},"C"),e[19]=p,e[20]=q):q=e[20];let O=q,M;e[21]===Symbol.for("react.memo_cache_sentinel")?(M=i(I=>{let{scrollLeft:$,scrollTop:W}=I.currentTarget;m.current!==null&&(m.current.scrollTop=W),a.current!==null&&(a.current.scrollTop=W,a.current.scrollLeft=$)},"_"),e[21]=M):M=e[21];let D=M,T;e[22]===Symbol.for("react.memo_cache_sentinel")?(T=i(I=>{let $=d.current;$===null||I.offset===void 0||($.focus(),$.setSelectionRange(I.offset,I.offset+(I.length??0)))},"q"),e[22]=T):T=e[22];let _=T,A;e[23]!==N||e[24]!==O||e[25]!==E||e[26]!==L?(A={onBlur:O,onChange:N,onKeyDown:E,onScroll:D,onSelect:L},e[23]=N,e[24]=O,e[25]=E,e[26]=L,e[27]=A):A=e[27];let B;return e[28]!==y||e[29]!==p||e[30]!==s||e[31]!==g||e[32]!==A?(B={autocompleteState:y,closeAutocomplete:p,handlers:A,listboxId:s,onPickSuggestion:g,editorRef:d,gutterRef:m,overlayRef:a,revealDiagnostic:_},e[28]=y,e[29]=p,e[30]=s,e[31]=g,e[32]=A,e[33]=B):B=e[33],B},"fn"),mn="lunora-studio-sql-tabs",hn="lunora-studio-sql-active-tab",$e=12,Se=i((l="",e="")=>({activeId:null,id:Me("tab"),name:e,sql:l}),"ve"),fn=i(()=>Oe(hn,""),"bn"),pn=i(l=>{let e=(0,K.c)(16),[t,n]=Ce(mn),[r,o]=fn(),[s]=(0,P.useState)(l),m,a;e[0]!==s||e[1]!==n||e[2]!==t.length?(m=i(()=>{t.length===0&&n([s])},"d"),a=[s,n,t.length],e[0]=s,e[1]=n,e[2]=t.length,e[3]=m,e[4]=a):(m=e[3],a=e[4]),(0,P.useEffect)(m,a);let d;e[5]!==s||e[6]!==t?(d=t.length===0?[s]:t,e[5]=s,e[6]=t,e[7]=d):d=e[7];let f=d,p;e[8]!==r||e[9]!==f?(p=f.some(u=>u.id===r)?r:f[0]?.id??"",e[8]=r,e[9]=f,e[10]=p):p=e[10];let b=p,v;return e[11]!==b||e[12]!==o||e[13]!==n||e[14]!==f?(v={activeId:b,setActiveId:o,setTabs:n,tabs:f},e[11]=b,e[12]=o,e[13]=n,e[14]=f,e[15]=v):v=e[15],v},"gn"),at=i(l=>l.activeId===null&&l.sql.trim()!=="","Ge"),bn=i((l,e)=>[...l,e].slice(-$e),"xn"),gn=i((l,e,t)=>{let n=l.findIndex(o=>o.id===e);if(n===-1)return{activeId:l[0]?.id??"",tabs:[...l]};let r=l.filter(o=>o.id!==e);if(r.length===0){let o=t();return{activeId:o.id,tabs:[o]}}return{activeId:r[Math.min(n,r.length-1)].id,tabs:r}},"vn"),xn=i((l,e)=>{let t=l.filter(n=>n.id===e);return t.length===0?{activeId:l[0]?.id??"",tabs:[...l]}:{activeId:e,tabs:t}},"yn"),vn=i((l,e,t)=>{let n=l.findIndex(o=>o.id===e);if(n===-1)return{activeId:t,tabs:[...l]};let r=l.slice(0,n+1);return{activeId:r.some(o=>o.id===t)?t:e,tabs:r}},"wn"),yn=i(l=>{let e=l();return{activeId:e.id,tabs:[e]}},"Sn"),wn=i((l,e,t)=>{if(l==="others")return e.filter(n=>n.id!==t);if(l==="right"){let n=e.findIndex(r=>r.id===t);return n===-1?[]:e.slice(n+1)}return[...e]},"Nn"),nt={error:null,pane:"results",result:null,running:!1},Sn=i(l=>{let e=(0,K.c)(66),{activeId:t,setActiveId:n,setTabs:r,tabs:o}=pn(l),s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s={},e[0]=s):s=e[0];let[m,a]=(0,P.useState)(s),[d,f]=(0,P.useState)(null),[p,b]=(0,P.useState)(null),v;e[1]!==t||e[2]!==o?(v=o.find(F=>F.id===t)??o[0]??Se(),e[1]=t,e[2]=o,e[3]=v):v=e[3];let u=v,x=m[u.id]??nt,y;e[4]!==u.id||e[5]!==r?(y=i(F=>{r(j=>j.map(U=>U.id===u.id?{...U,...F}:U))},"v"),e[4]=u.id,e[5]=r,e[6]=y):y=e[6];let w=y,g;e[7]!==u.id?(g=i(F=>{a(j=>{let U=j[u.id]??nt;return{...j,[u.id]:{...U,...F}}})},"b"),e[7]=u.id,e[8]=g):g=e[8];let h=g,S;e[9]!==n||e[10]!==r||e[11]!==o.length?(S=i(()=>{if(o.length>=$e)return;let F=Se();r(j=>bn(j,F)),n(F.id)},"w"),e[9]=n,e[10]=r,e[11]=o.length,e[12]=S):S=e[12];let k=S,N;e[13]!==n||e[14]!==r?(N=i(F=>{f(null),b(null),r(F.tabs),n(F.activeId);let j=new Set(F.tabs.map(Nn));a(U=>Object.fromEntries(Object.entries(U).filter(ae=>{let[xe]=ae;return j.has(xe)})))},"S"),e[13]=n,e[14]=r,e[15]=N):N=e[15];let C=N,L;e[16]!==C||e[17]!==o?(L=i(F=>{C(gn(o,F,Se))},"R"),e[16]=C,e[17]=o,e[18]=L):L=e[18];let R=L,E;e[19]!==t||e[20]!==C||e[21]!==o?(E=i((F,j)=>{C(F==="others"?xn(o,j):F==="right"?vn(o,j,t):yn(Se))},"I"),e[19]=t,e[20]=C,e[21]=o,e[22]=E):E=e[22];let q=E,O;e[23]!==q||e[24]!==d||e[25]!==o?(O=i(F=>{d!==null&&(wn(F,o,d.id).some(kn)?b(F):q(F,d.id))},"L"),e[23]=q,e[24]=d,e[25]=o,e[26]=O):O=e[26];let M=O,D;e[27]===Symbol.for("react.memo_cache_sentinel")?(D=i((F,j)=>{j.preventDefault(),b(null),f({id:F,x:j.clientX,y:j.clientY})},"O"),e[27]=D):D=e[27];let T=D,_;e[28]===Symbol.for("react.memo_cache_sentinel")?(_=i(()=>{f(null),b(null)},"E"),e[28]=_):_=e[28];let A=_,B;e[29]===Symbol.for("react.memo_cache_sentinel")?(B=i(F=>{F.preventDefault(),f(null),b(null)},"D"),e[29]=B):B=e[29];let I=B,$;e[30]!==M?($=i(()=>{M("others")},"B"),e[30]=M,e[31]=$):$=e[31];let W=$,Q;e[32]!==M?(Q=i(()=>{M("right")},"P"),e[32]=M,e[33]=Q):Q=e[33];let Y=Q,H;e[34]!==M?(H=i(()=>{M("all")},"Q"),e[34]=M,e[35]=H):H=e[35];let G=H,J;e[36]!==q||e[37]!==p||e[38]!==d?(J=i(()=>{d!==null&&p!==null&&q(p,d.id),b(null)},"J"),e[36]=q,e[37]=p,e[38]=d,e[39]=J):J=e[39];let z=J,V;e[40]===Symbol.for("react.memo_cache_sentinel")?(V=i(()=>{b(null)},"G"),e[40]=V):V=e[40];let re=V,X;e[41]!==d?(X=d===null?void 0:{left:d.x,top:d.y},e[41]=d,e[42]=X):X=e[42];let Z=X,ee;e[43]!==r?(ee=i(F=>{r(j=>j.map(U=>U.activeId===F?{...U,activeId:null}:U))},"Z"),e[43]=r,e[44]=ee):ee=e[44];let te=ee,ne;e[45]!==r?(ne=i((F,j)=>{r(U=>U.map(ae=>ae.id===F?{...ae,name:j}:ae))},"te"),e[45]=r,e[46]=ne):ne=e[46];let le=ne,ce;return e[47]!==u||e[48]!==t||e[49]!==k||e[50]!==R||e[51]!==z||e[52]!==G||e[53]!==W||e[54]!==Y||e[55]!==x||e[56]!==h||e[57]!==w||e[58]!==p||e[59]!==le||e[60]!==n||e[61]!==d||e[62]!==Z||e[63]!==o||e[64]!==te?(ce={activeTab:u,activeTabId:t,addEditorTab:k,cancelBulk:re,closeEditorTab:R,closeTabMenu:A,confirmBulk:z,menuStyle:Z,onBackdropContextMenu:I,onCloseAll:G,onCloseOthers:W,onCloseToRight:Y,openTabMenu:T,output:x,patchActiveOutput:h,patchActiveTab:w,pendingBulk:p,renameTab:le,setActiveTabId:n,tabMenu:d,tabs:o,unlinkQuery:te},e[47]=u,e[48]=t,e[49]=k,e[50]=R,e[51]=z,e[52]=G,e[53]=W,e[54]=Y,e[55]=x,e[56]=h,e[57]=w,e[58]=p,e[59]=le,e[60]=n,e[61]=d,e[62]=Z,e[63]=o,e[64]=te,e[65]=ce):ce=e[65],ce},"kn");function Nn(l){return l.id}i(Nn,"Cn");function kn(l){return at(l)}i(kn,"qn");var Cn="lunora-studio-sql-queries",qn="lunora-studio-sql-history",Tn=25,In=i(l=>{let e=(0,K.c)(33),{loadIntoActiveTab:t,unlinkQuery:n}=l,r=oe(),[o,s]=Ce(Cn),[m,a]=Ce(qn),[d,f]=(0,P.useState)(""),p=(0,P.useRef)(null),b;e[0]!==a?(b=i(T=>{a(_=>_[0]?.sql===T?_:[{at:Date.now(),sql:T},..._.filter(A=>A.sql!==T)].slice(0,Tn))},"p"),e[0]=a,e[1]=b):b=e[1];let v=b,u;e[2]!==t||e[3]!==s||e[4]!==r?(u=i(()=>{let T={id:Me("q"),name:r("Untitled query"),sql:""};s(_=>[T,..._]),t("",T.id)},"c"),e[2]=t,e[3]=s,e[4]=r,e[5]=u):u=e[5];let x=u,y;e[6]!==t||e[7]!==o?(y=i(T=>{let _=o.find(A=>A.id===T);_!==void 0&&(t(_.sql,T),p.current?.querySelector(`[data-testid="sql-query-${T}"]`)?.scrollIntoView({block:"nearest"}))},"v"),e[6]=t,e[7]=o,e[8]=y):y=e[8];let w=y,g;e[9]!==s||e[10]!==n?(g=i(T=>{s(_=>_.filter(A=>A.id!==T)),n(T)},"b"),e[9]=s,e[10]=n,e[11]=g):g=e[11];let h=g,S;e[12]!==t?(S=i(T=>{t(T.currentTarget.dataset.sql??"",null)},"w"),e[12]=t,e[13]=S):S=e[13];let k=S,N;e[14]!==t?(N=i(T=>{t(T.currentTarget.dataset.sql??"",null)},"S"),e[14]=t,e[15]=N):N=e[15];let C=N,L;e[16]!==a?(L=i(()=>{a([])},"R"),e[16]=a,e[17]=L):L=e[17];let R=L,E;e[18]===Symbol.for("react.memo_cache_sentinel")?(E=i(T=>{f(T.target.value)},"I"),e[18]=E):E=e[18];let q=E,O;e[19]!==s?(O=i((T,_)=>{s(A=>A.map(B=>B.id===T?{...B,sql:_}:B))},"L"),e[19]=s,e[20]=O):O=e[20];let M=O,D;return e[21]!==R||e[22]!==h||e[23]!==m||e[24]!==C||e[25]!==k||e[26]!==x||e[27]!==o||e[28]!==v||e[29]!==d||e[30]!==w||e[31]!==M?(D={clearHistory:R,deleteQuery:h,history:m,listRef:p,loadFromHistory:C,loadTemplate:k,newQuery:x,onSearchChange:q,queries:o,recordHistory:v,search:d,selectQuery:w,updateQuerySql:M},e[21]=R,e[22]=h,e[23]=m,e[24]=C,e[25]=k,e[26]=x,e[27]=o,e[28]=v,e[29]=d,e[30]=w,e[31]=M,e[32]=D):D=e[32],D},"In"),it="p-3 font-mono text-xs leading-5 whitespace-pre-wrap break-words",Rn=i((l,e)=>{let t=[];for(let r of l){if(r.offset===void 0||r.length===void 0||r.length<=0)continue;let o=Math.max(0,Math.min(r.offset,e)),s=Math.max(o,Math.min(r.offset+r.length,e));o!==s&&t.push({end:s,severity:r.severity,start:o})}t.sort((r,o)=>r.start-o.start);let n=[];for(let r of t)r.start>=(n.at(-1)?.end??0)&&n.push(r);return n},"En"),Ln=i(l=>l==="unsafe-response"?"The model returned a statement that is not read-only, so it was discarded.":l==="empty-response"?"The model returned nothing usable.":"The model could not be reached.","Ln"),En=i(l=>{let e=(0,K.c)(51),{assistant:t,failed:n,onGenerated:r}=l,o=oe(),[s,m]=(0,P.useState)("");if(t.unavailable)return null;let a;e[0]!==t?(a=t.pending("sql"),e[0]=t,e[1]=a):a=e[1];let d=a,f;if(e[2]!==t||e[3]!==n||e[4]!==r||e[5]!==d||e[6]!==s||e[7]!==o){let p=t.reason("sql"),b;e[9]!==t||e[10]!==n||e[11]!==r||e[12]!==s?(b=i(q=>{let O=s.trim();O===""&&!q||ie((async()=>{let M=await t.generate(O===""?"fix the failing statement":O,q?n:void 0);M!==void 0&&r(M)})())},"p"),e[9]=t,e[10]=n,e[11]=r,e[12]=s,e[13]=b):b=e[13];let v=b,u;e[14]!==o?(u=o("Describe the query you want"),e[14]=o,e[15]=u):u=e[15];let x;e[16]===Symbol.for("react.memo_cache_sentinel")?(x=i(q=>{m(q.target.value)},"g"),e[16]=x):x=e[16];let y;e[17]!==v?(y=i(q=>{q.key==="Enter"&&(q.preventDefault(),v(!1))},"v"),e[17]=v,e[18]=y):y=e[18];let w;e[19]!==o?(w=o("Describe the query you want"),e[19]=o,e[20]=w):w=e[20];let g;e[21]!==d||e[22]!==s||e[23]!==u||e[24]!==y||e[25]!==w?(g=(0,c.jsx)(Fe,{"aria-label":u,className:"h-7 flex-1 text-xs","data-testid":"sql-assistant-prompt",disabled:d,onChange:x,onKeyDown:y,placeholder:w,value:s}),e[21]=d,e[22]=s,e[23]=u,e[24]=y,e[25]=w,e[26]=g):g=e[26];let h=d&&"opacity-60",S;e[27]!==h?(S=ue("rounded-md border border-border px-2 py-1 text-xs outline-none transition-colors hover:bg-accent focus-visible:bg-accent",h),e[27]=h,e[28]=S):S=e[28];let k;e[29]!==d||e[30]!==s?(k=d||s.trim()==="",e[29]=d,e[30]=s,e[31]=k):k=e[31];let N;e[32]!==v?(N=i(()=>{v(!1)},"S"),e[32]=v,e[33]=N):N=e[33];let C;e[34]!==d||e[35]!==o?(C=o(d?"Thinking\u2026":"Draft SQL"),e[34]=d,e[35]=o,e[36]=C):C=e[36];let L;e[37]!==S||e[38]!==k||e[39]!==N||e[40]!==C?(L=(0,c.jsx)("button",{className:S,"data-testid":"sql-assistant-generate",disabled:k,onClick:N,type:"button",children:C}),e[37]=S,e[38]=k,e[39]=N,e[40]=C,e[41]=L):L=e[41];let R;e[42]!==n||e[43]!==d||e[44]!==v||e[45]!==o?(R=n!==void 0&&(0,c.jsx)("button",{className:"rounded-md border border-border px-2 py-1 text-xs outline-none transition-colors hover:bg-accent focus-visible:bg-accent","data-testid":"sql-assistant-fix",disabled:d,onClick:i(()=>{v(!0)},"onClick"),type:"button",children:o("Fix this")}),e[42]=n,e[43]=d,e[44]=v,e[45]=o,e[46]=R):R=e[46];let E;e[47]!==L||e[48]!==R||e[49]!==g?(E=(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[g,L,R]}),e[47]=L,e[48]=R,e[49]=g,e[50]=E):E=e[50],f=(0,c.jsxs)("div",{className:"flex flex-col gap-1 border-b border-border px-3 py-2","data-testid":"sql-assistant",children:[E,p!==void 0&&(0,c.jsx)("p",{className:"text-[11px] text-muted-foreground","data-testid":"sql-assistant-reason",role:"status",children:Ln(p)})]}),e[2]=t,e[3]=n,e[4]=r,e[5]=d,e[6]=s,e[7]=o,e[8]=f}else f=e[8];return f},"_n"),_n=i(l=>{let e=(0,K.c)(8),{diagnostics:t,draft:n,scrollRef:r}=l,o,s;if(e[0]!==t||e[1]!==n){s=Symbol.for("react.early_return_sentinel");e:{let d=Rn(t,n.length);if(d.length===0){s=null;break e}o=[];let f=0;for(let[p,b]of d.entries())b.start>f&&o.push(n.slice(f,b.start)),o.push((0,c.jsx)("span",{className:ue("decoration-wavy underline underline-offset-4",b.severity==="error"?"decoration-destructive":"decoration-amber-500"),children:n.slice(b.start,b.end)},`${b.start.toString()}-${p.toString()}`)),f=b.end;o.push(n.slice(f))}e[0]=t,e[1]=n,e[2]=o,e[3]=s}else o=e[2],s=e[3];if(s!==Symbol.for("react.early_return_sentinel"))return s;let m;e[4]===Symbol.for("react.memo_cache_sentinel")?(m=ue("pointer-events-none absolute inset-0 overflow-hidden text-transparent",it),e[4]=m):m=e[4];let a;return e[5]!==o||e[6]!==r?(a=(0,c.jsx)("div",{"aria-hidden":"true",className:m,"data-testid":"sql-diagnostics-overlay",ref:r,children:o}),e[5]=o,e[6]=r,e[7]=a):a=e[7],a},"On"),On={gate:"read-only",plan:"plan",schema:"schema",syntax:"syntax"},Mn=i(l=>{let e=(0,K.c)(10),{diagnostics:t,onSelect:n}=l,r=oe();if(t.length===0)return null;let o;e[0]!==r?(o=r("SQL problems"),e[0]=r,e[1]=o):o=e[1];let s;if(e[2]!==t||e[3]!==n){let a;e[5]!==n?(a=i((d,f)=>(0,c.jsx)("li",{children:(0,c.jsxs)("button",{className:"flex w-full items-start gap-2 px-3 py-1 text-start text-xs outline-none hover:bg-accent focus-visible:bg-accent","data-testid":"sql-problem",onClick:i(()=>{n(d)},"onClick"),type:"button",children:[(0,c.jsx)("span",{className:ue("mt-px shrink-0 rounded px-1 font-mono text-[10px] uppercase",d.severity==="error"?"bg-destructive/15 text-destructive":"bg-amber-500/15 text-amber-600"),children:On[d.source]}),(0,c.jsx)("span",{className:"min-w-0 text-muted-foreground",children:d.message})]})},`${d.source}-${(d.offset??f).toString()}-${f.toString()}`),"a"),e[5]=n,e[6]=a):a=e[6],s=t.map(a),e[2]=t,e[3]=n,e[4]=s}else s=e[4];let m;return e[7]!==o||e[8]!==s?(m=(0,c.jsx)("ul",{"aria-label":o,className:"max-h-24 shrink-0 overflow-y-auto border-t border-border bg-muted/30","data-testid":"sql-problems",children:s}),e[7]=o,e[8]=s,e[9]=m):m=e[9],m},"Dn"),Dn={minWidth:"2.75rem",paddingInline:"0.5rem"},An=i(l=>{let e=(0,K.c)(64),{assistant:t,autocomplete:n,diagnostics:r,draft:o,failed:s,handlers:m,editorRef:a,gutterRef:d,listboxId:f,onGenerated:p,onPickSuggestion:b,onRevealDiagnostic:v,overlayRef:u}=l,x=oe(),y,w,g,h,S,k,N,C;if(e[0]!==t||e[1]!==o||e[2]!==s||e[3]!==d||e[4]!==p){let $=o.split(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Yi,b as Ve,c as Ri,d as Je,e as Zi,f as xi,k as ji}from"./chunk-
|
|
1
|
+
import{a as Yi,b as Ve,c as Ri,d as Je,e as Zi,f as xi,k as ji}from"./chunk-4VEAVSAZ.js";import"./chunk-XTEWLG3J.js";import"./chunk-3C3CG7ZK.js";import"./chunk-I6A5C46N.js";import"./chunk-2QSHLBCO.js";import"./chunk-BGBLQ563.js";import{a as Ci}from"./chunk-FURI47Z2.js";import"./chunk-IVFHIQOT.js";import"./chunk-QBWRC5YX.js";import"./chunk-HPFLBYRI.js";import"./chunk-ILNELDFC.js";import"./chunk-SFDOII3B.js";import"./chunk-SMIESS7P.js";import{a as Le}from"./chunk-7T7UOTYK.js";import{R as Xi}from"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import{a as zd}from"./chunk-7QIFDWQV.js";import{c as Gi}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{b as Ke}from"./chunk-NH3VWHCL.js";import"./chunk-QLQADHFE.js";import"./chunk-VDW32UET.js";import"./chunk-4D7XIQ5Q.js";import{a as Hi,e as qi}from"./chunk-DBWOWJYT.js";import"./chunk-XBDKZZ67.js";import"./chunk-XQCVZAGU.js";import"./chunk-UZERI5YC.js";import{a as Qi,d as je,p as pi}from"./chunk-IUYFXK4X.js";import{c as _i}from"./chunk-XNGYYOLS.js";import{a as c,c as vn,e as fu,f as Ni,g as Ad,h as Bi,j as xe}from"./chunk-3XIESWL4.js";var ri=vn(w=>{"use strict";function $e(l,t){var a=l.length;l.push(t);l:for(;0<a;){var u=a-1>>>1,n=l[u];if(0<dn(n,t))l[u]=t,l[a]=n,a=u;else break l}}c($e,"push");function wl(l){return l.length===0?null:l[0]}c(wl,"peek");function hn(l){if(l.length===0)return null;var t=l[0],a=l.pop();if(a!==t){l[0]=a;l:for(var u=0,n=l.length,e=n>>>1;u<e;){var f=2*(u+1)-1,i=l[f],m=f+1,y=l[m];if(0>dn(i,a))m<n&&0>dn(y,i)?(l[u]=y,l[m]=a,u=m):(l[u]=i,l[f]=a,u=f);else if(m<n&&0>dn(y,a))l[u]=y,l[m]=a,u=m;else break l}}return t}c(hn,"pop");function dn(l,t){var a=l.sortIndex-t.sortIndex;return a!==0?a:l.id-t.id}c(dn,"compare");w.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Vi=performance,w.unstable_now=function(){return Vi.now()}):(We=Date,Li=We.now(),w.unstable_now=function(){return We.now()-Li});var Vi,We,Li,tt=[],Et=[],Td=1,Ql=null,Sl=3,ke=!1,iu=!1,mu=!1,re=!1,Wi=typeof setTimeout=="function"?setTimeout:null,wi=typeof clearTimeout=="function"?clearTimeout:null,Ki=typeof setImmediate<"u"?setImmediate:null;function yn(l){for(var t=wl(Et);t!==null;){if(t.callback===null)hn(Et);else if(t.startTime<=l)hn(Et),t.sortIndex=t.expirationTime,$e(tt,t);else break;t=wl(Et)}}c(yn,"advanceTimers");function Ie(l){if(mu=!1,yn(l),!iu)if(wl(tt)!==null)iu=!0,oa||(oa=!0,ga());else{var t=wl(Et);t!==null&&Pe(Ie,t.startTime-l)}}c(Ie,"handleTimeout");var oa=!1,vu=-1,Fi=5,$i=-1;function ki(){return re?!0:!(w.unstable_now()-$i<Fi)}c(ki,"shouldYieldToHost");function we(){if(re=!1,oa){var l=w.unstable_now();$i=l;var t=!0;try{l:{iu=!1,mu&&(mu=!1,wi(vu),vu=-1),ke=!0;var a=Sl;try{t:{for(yn(l),Ql=wl(tt);Ql!==null&&!(Ql.expirationTime>l&&ki());){var u=Ql.callback;if(typeof u=="function"){Ql.callback=null,Sl=Ql.priorityLevel;var n=u(Ql.expirationTime<=l);if(l=w.unstable_now(),typeof n=="function"){Ql.callback=n,yn(l),t=!0;break t}Ql===wl(tt)&&hn(tt),yn(l)}else hn(tt);Ql=wl(tt)}if(Ql!==null)t=!0;else{var e=wl(Et);e!==null&&Pe(Ie,e.startTime-l),t=!1}}break l}finally{Ql=null,Sl=a,ke=!1}t=void 0}}finally{t?ga():oa=!1}}}c(we,"performWorkUntilDeadline");var ga;typeof Ki=="function"?ga=c(function(){Ki(we)},"schedulePerformWorkUntilDeadline"):typeof MessageChannel<"u"?(Fe=new MessageChannel,Ji=Fe.port2,Fe.port1.onmessage=we,ga=c(function(){Ji.postMessage(null)},"schedulePerformWorkUntilDeadline")):ga=c(function(){Wi(we,0)},"schedulePerformWorkUntilDeadline");var Fe,Ji;function Pe(l,t){vu=Wi(function(){l(w.unstable_now())},t)}c(Pe,"requestHostTimeout");w.unstable_IdlePriority=5;w.unstable_ImmediatePriority=1;w.unstable_LowPriority=4;w.unstable_NormalPriority=3;w.unstable_Profiling=null;w.unstable_UserBlockingPriority=2;w.unstable_cancelCallback=function(l){l.callback=null};w.unstable_forceFrameRate=function(l){0>l||125<l?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Fi=0<l?Math.floor(1e3/l):5};w.unstable_getCurrentPriorityLevel=function(){return Sl};w.unstable_next=function(l){switch(Sl){case 1:case 2:case 3:var t=3;break;default:t=Sl}var a=Sl;Sl=t;try{return l()}finally{Sl=a}};w.unstable_requestPaint=function(){re=!0};w.unstable_runWithPriority=function(l,t){switch(l){case 1:case 2:case 3:case 4:case 5:break;default:l=3}var a=Sl;Sl=l;try{return t()}finally{Sl=a}};w.unstable_scheduleCallback=function(l,t,a){var u=w.unstable_now();switch(typeof a=="object"&&a!==null?(a=a.delay,a=typeof a=="number"&&0<a?u+a:u):a=u,l){case 1:var n=-1;break;case 2:n=250;break;case 5:n=1073741823;break;case 4:n=1e4;break;default:n=5e3}return n=a+n,l={id:Td++,callback:t,priorityLevel:l,startTime:a,expirationTime:n,sortIndex:-1},a>u?(l.sortIndex=a,$e(Et,l),wl(tt)===null&&l===wl(Et)&&(mu?(wi(vu),vu=-1):mu=!0,Pe(Ie,a-u))):(l.sortIndex=n,$e(tt,l),iu||ke||(iu=!0,oa||(oa=!0,ga()))),l};w.unstable_shouldYield=ki;w.unstable_wrapCallback=function(l){var t=Sl;return function(){var a=Sl;Sl=t;try{return l.apply(this,arguments)}finally{Sl=a}}}});var Pi=vn((n2,Ii)=>{"use strict";Ii.exports=ri()});var dd=vn(Re=>{"use strict";var el=Pi(),U1=Ni(),Ed=zd();function z(l){var t="https://react.dev/errors/"+l;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var a=2;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a])}return"Minified React error #"+l+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}c(z,"formatProdErrorMessage");function D1(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}c(D1,"isValidContainer");function ku(l){var t=l,a=l;if(l.alternate)for(;t.return;)t=t.return;else{l=t;do t=l,(t.flags&4098)!==0&&(a=t.return),l=t.return;while(l)}return t.tag===3?a:null}c(ku,"getNearestMountedFiber");function _1(l){if(l.tag===13){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}c(_1,"getSuspenseInstanceFromFiber");function N1(l){if(l.tag===31){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}c(N1,"getActivityInstanceFromFiber");function l0(l){if(ku(l)!==l)throw Error(z(188))}c(l0,"assertIsMounted");function Md(l){var t=l.alternate;if(!t){if(t=ku(l),t===null)throw Error(z(188));return t!==l?null:l}for(var a=l,u=t;;){var n=a.return;if(n===null)break;var e=n.alternate;if(e===null){if(u=n.return,u!==null){a=u;continue}break}if(n.child===e.child){for(e=n.child;e;){if(e===a)return l0(n),l;if(e===u)return l0(n),t;e=e.sibling}throw Error(z(188))}if(a.return!==u.return)a=n,u=e;else{for(var f=!1,i=n.child;i;){if(i===a){f=!0,a=n,u=e;break}if(i===u){f=!0,u=n,a=e;break}i=i.sibling}if(!f){for(i=e.child;i;){if(i===a){f=!0,a=e,u=n;break}if(i===u){f=!0,u=e,a=n;break}i=i.sibling}if(!f)throw Error(z(189))}}if(a.alternate!==u)throw Error(z(190))}if(a.tag!==3)throw Error(z(188));return a.stateNode.current===a?l:t}c(Md,"findCurrentFiberUsingSlowPath");function H1(l){var t=l.tag;if(t===5||t===26||t===27||t===6)return l;for(l=l.child;l!==null;){if(t=H1(l),t!==null)return t;l=l.sibling}return null}c(H1,"findCurrentHostFiberImpl");var W=Object.assign,Od=Symbol.for("react.element"),Sn=Symbol.for("react.transitional.element"),su=Symbol.for("react.portal"),Ea=Symbol.for("react.fragment"),B1=Symbol.for("react.strict_mode"),Qc=Symbol.for("react.profiler"),q1=Symbol.for("react.consumer"),mt=Symbol.for("react.context"),Hf=Symbol.for("react.forward_ref"),Xc=Symbol.for("react.suspense"),Gc=Symbol.for("react.suspense_list"),Bf=Symbol.for("react.memo"),Mt=Symbol.for("react.lazy"),pc=Symbol.for("react.activity"),Ud=Symbol.for("react.memo_cache_sentinel"),t0=Symbol.iterator;function du(l){return l===null||typeof l!="object"?null:(l=t0&&l[t0]||l["@@iterator"],typeof l=="function"?l:null)}c(du,"getIteratorFn");var Dd=Symbol.for("react.client.reference");function Cc(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===Dd?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case Ea:return"Fragment";case Qc:return"Profiler";case B1:return"StrictMode";case Xc:return"Suspense";case Gc:return"SuspenseList";case pc:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case su:return"Portal";case mt:return l.displayName||"Context";case q1:return(l._context.displayName||"Context")+".Consumer";case Hf:var t=l.render;return l=l.displayName,l||(l=t.displayName||t.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case Bf:return t=l.displayName||null,t!==null?t:Cc(l.type)||"Memo";case Mt:t=l._payload,l=l._init;try{return Cc(l(t))}catch{}}return null}c(Cc,"getComponentNameFromType");var zu=Array.isArray,_=U1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,p=Ed.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,la={pending:!1,data:null,method:null,action:null},Rc=[],Ma=-1;function Il(l){return{current:l}}c(Il,"createCursor");function il(l){0>Ma||(l.current=Rc[Ma],Rc[Ma]=null,Ma--)}c(il,"pop");function L(l,t){Ma++,Rc[Ma]=l.current,l.current=t}c(L,"push");var rl=Il(null),pu=Il(null),Xt=Il(null),wn=Il(null);function Fn(l,t){switch(L(Xt,t),L(pu,l),L(rl,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?i1(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=i1(t),l=rv(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}il(rl),L(rl,l)}c(Fn,"pushHostContainer");function ja(){il(rl),il(pu),il(Xt)}c(ja,"popHostContainer");function Zc(l){l.memoizedState!==null&&L(wn,l);var t=rl.current,a=rv(t,l.type);t!==a&&(L(pu,l),L(rl,a))}c(Zc,"pushHostContext");function $n(l){pu.current===l&&(il(rl),il(pu)),wn.current===l&&(il(wn),wu._currentValue=la)}c($n,"popHostContext");var lc,a0;function kt(l){if(lc===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);lc=t&&t[1]||"",a0=-1<a.stack.indexOf(`
|
|
2
2
|
at`)?" (<anonymous>)":-1<a.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
3
3
|
`+lc+l+a0}c(kt,"describeBuiltInComponentFrame");var tc=!1;function ac(l,t){if(!l||tc)return"";tc=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var u={DetermineComponentFrameRoot:c(function(){try{if(t){var b=c(function(){throw Error()},"Fake");if(Object.defineProperty(b.prototype,"props",{set:c(function(){throw Error()},"set")}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(b,[])}catch(g){var S=g}Reflect.construct(l,[],b)}else{try{b.call()}catch(g){S=g}l.call(b.prototype)}}else{try{throw Error()}catch(g){S=g}(b=l())&&typeof b.catch=="function"&&b.catch(function(){})}}catch(g){if(g&&S&&typeof g.stack=="string")return[g.stack,S.stack]}return[null,null]},"DetermineComponentFrameRoot")};u.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(u.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(u.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var e=u.DetermineComponentFrameRoot(),f=e[0],i=e[1];if(f&&i){var m=f.split(`
|
|
4
4
|
`),y=i.split(`
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as j}from"react/compiler-runtime";import{useLunora as qe}from"@lunora/react";import{useState as P,useMemo as nt,useRef as ze,useCallback as ot,useEffect as _e}from"react";import{ShardInput as dn}from"./ShardInput-BVn2iCU0.js";import{N as Fe}from"./use-admin-query-QJ-ibl5u.js";import{ADMIN_FUNCTIONS as ee}from"./ADMIN_FUNCTIONS-4aE59aDq.js";import{b as kt}from"./browser-storage-xjTyMKY0.js";import{h as Re,f as se,d as ue,g as ve,i as cn}from"./internal-BSIsQVC6.js";import{k as un}from"./use-sql-assistant-C6dl2_Ty.js";import{ConfirmButton as rt}from"./ConfirmButton-CTL3f3kr.js";import{E as mn}from"./empty-state-Cg7t_8qu.js";import{useT as me}from"./DEFAULT_LOCALE-BZ4NojpD.js";import{useReactTable as gn,getSortedRowModel as fn,getCoreRowModel as bn,flexRender as pn}from"@tanstack/react-table";import{useVirtualizer as hn}from"@tanstack/react-virtual";import{f as st}from"./checkbox-StT4Gob6.js";import{c as Be}from"./utils-bhneXptQ.js";import{l as xn}from"./virtual-rect-1o1veP7R.js";import{g as Xe,k as vn,v as yn}from"./data-grid-DcxyIXwG.js";import{jsx as m,jsxs as T,Fragment as Ve}from"react/jsx-runtime";import{DataFilters as wn,toFilterClauses as Ee}from"./DataFilters-B26ZeqBZ.js";import{r as Sn,i as Nn}from"./grid-features-jnrD0SpX.js";import{_ as Cn,u as kn,i as Ye,a as $n,$ as Tn}from"./table-list-sidebar-D9Bd4qgi.js";import{M as $t}from"./modal-shell-CUwwWC2o.js";import ft from"./useDebounced-CU-uftxO.js";import{r as En,l as _n}from"./shard-history-DMEW5VBE.js";const bt=(r,e)=>{const n=[];for(const[o,t]of Object.entries(e))for(const l of t)l.ref===r&&n.push({column:l.name,table:o});return n.sort((o,t)=>o.table.localeCompare(t.table)||o.column.localeCompare(t.column)),n},it=r=>`${r.table}.${r.column}`,Rn=/([a-z\d])([A-Z])/gu,Mn=/[\s_-]+/u,Pn=new Set(["access_token","api_key","apikey","card_number","client_secret","credit_card","cvv","passwd","password","private_key","pwd","refresh_token","secret","ssn","token"]),Dn=r=>{const e=r.replaceAll(Rn,"$1 $2").split(Mn).map(o=>o.toLowerCase()).filter(o=>o.length>0),n=new Set(e);for(let o=0;o<e.length-1;o+=1){const t=e[o],l=e[o+1];t===void 0||l===void 0||(n.add(`${t}${l}`),n.add(`${t}_${l}`))}return[...n]},pt="•••",In=r=>{let e=2166136261;for(let n=0;n<r.length;n+=1)e^=r.codePointAt(n)??0,e=Math.imul(e,16777619);return(e>>>0).toString(16).padStart(8,"0")},Tt=(r,e)=>{try{return e==="redact"?null:e==="hash"?r==null?r:In(typeof r=="string"?r:JSON.stringify(r)):pt}catch{return pt}},On=(r,e)=>{const n=new Map;for(const o of r)o.table===e&&n.set(o.column,o.strategy);return n},Fn=r=>{for(const e of Dn(r))if(Pn.has(e))return!0;return!1},zn=(r,e)=>{const n=e.filter(t=>!r.has(t)&&Fn(t));if(n.length===0)return r;const o=new Map(r);for(const t of n)o.set(t,"redact");return o},jn=(r,e,n)=>{if(!n.enabled)return r;const o=n.columns.get(e);return o===void 0?r:Tt(r,o)},ht=(r,e)=>!e.enabled||e.columns.size===0?r:r.map(n=>{const o={...n};for(const[t,l]of e.columns)t in o&&(o[t]=Tt(o[t],l));return o}),An=(r,e,n,o,t=300)=>{if(o<=0)return{ids:new Set(r.map(c=>c.id)),leadPx:0,tailPx:0};const l=n-t,i=n+o+t,a=new Set;let d=0,s=0,g=0;for(const c of r){const u=c.getSize(),b=e.has(c.id),f=d+u>l&&d<i;b||f?a.add(c.id):d<l?s+=u:g+=u,d+=u}return{ids:a,leadPx:s,tailPx:g}},Ln=(r,e)=>{const n=new Map;let o=0;for(const t of r)e.has(t.id)&&(n.set(t.id,o),o+=t.getSize());return n},Bn=()=>{const r=j(11);let e;r[0]===Symbol.for("react.memo_cache_sentinel")?(e={},r[0]=e):e=r[0];const[n,o]=P(e);let t;r[1]===Symbol.for("react.memo_cache_sentinel")?(t=(b,f,p)=>{o(v=>({...v,[b]:{...v[b],[f]:p}}))},r[1]=t):t=r[1];const l=t;let i;r[2]===Symbol.for("react.memo_cache_sentinel")?(i=()=>{o({})},r[2]=i):i=r[2];const a=i;let d;r[3]!==n?(d=(b,f)=>{const p=n[b];return p!==void 0&&f in p?{value:p[f]}:void 0},r[3]=n,r[4]=d):d=r[4];const s=d;let g;r[5]!==n?(g=Object.values(n).reduce(Jn,0),r[5]=n,r[6]=g):g=r[6];const c=g;let u;return r[7]!==c||r[8]!==n||r[9]!==s?(u={clear:a,count:c,stage:l,staged:n,stagedValue:s},r[7]=c,r[8]=n,r[9]=s,r[10]=u):u=r[10],u},Vn=(r,e)=>{if(typeof e=="number"){const n=Number(r);return r.trim()===""||Number.isNaN(n)?r:n}if(typeof e=="boolean"){if(r==="true")return!0;if(r==="false")return!1}return r},qn=r=>{const e=j(29),{changes:n,committing:o,onCommit:t,onDiscard:l}=r,i=me();let a;e[0]!==n.length||e[1]!==i?(a=i("{count} pending changes",{count:n.length}),e[0]=n.length,e[1]=i,e[2]=a):a=e[2];let d;e[3]!==a?(d=m("span",{className:"font-mono text-[11px] tracking-wide uppercase text-warning","data-testid":"db-staged-count",children:a}),e[3]=a,e[4]=d):d=e[4];let s;e[5]!==o||e[6]!==i?(s=i(o?"Committing…":"Commit"),e[5]=o,e[6]=i,e[7]=s):s=e[7];let g;e[8]!==o||e[9]!==t||e[10]!==s?(g=m("button",{className:"ms-auto rounded-md bg-primary px-2.5 py-1 text-xs font-medium text-primary-foreground outline-none transition-colors hover:bg-primary/90 focus-visible:bg-primary/90 disabled:pointer-events-none disabled:opacity-50","data-testid":"db-staged-commit",disabled:o,onClick:t,type:"button",children:s}),e[8]=o,e[9]=t,e[10]=s,e[11]=g):g=e[11];let c;e[12]!==i?(c=i("Discard"),e[12]=i,e[13]=c):c=e[13];let u;e[14]!==o||e[15]!==l||e[16]!==c?(u=m("button",{className:"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","data-testid":"db-staged-discard",disabled:o,onClick:l,type:"button",children:c}),e[14]=o,e[15]=l,e[16]=c,e[17]=u):u=e[17];let b;e[18]!==d||e[19]!==g||e[20]!==u?(b=T("div",{className:"flex flex-wrap items-center gap-2",children:[d,g,u]}),e[18]=d,e[19]=g,e[20]=u,e[21]=b):b=e[21];let f;e[22]!==n?(f=n.map(Kn),e[22]=n,e[23]=f):f=e[23];let p;e[24]!==f?(p=m("ul",{className:"flex flex-col gap-1","data-testid":"db-staged-list",children:f}),e[24]=f,e[25]=p):p=e[25];let v;return e[26]!==b||e[27]!==p?(v=T("div",{className:"flex flex-col gap-2 border border-warning/40 bg-warning/5 p-3","data-testid":"db-staged",children:[b,p]}),e[26]=b,e[27]=p,e[28]=v):v=e[28],v};function Jn(r,e){return r+Object.keys(e).length}function Kn(r){return T("li",{className:"flex flex-wrap items-center gap-2 font-mono text-xs",children:[T("span",{className:"text-muted-foreground",children:[r.rowId,".",r.column]}),m("span",{className:"text-destructive line-through",children:Re(r.oldValue)}),m("span",{"aria-hidden":"true",className:"text-muted-foreground",children:"→"}),m("span",{className:"text-foreground",children:Re(r.newValue)})]},`${r.rowId}:${r.column}`)}const xt=400,Gn=36,Hn={flex:"1 1 0%",minHeight:0,overflow:"auto",position:"relative"},Wn={width:"100%"},Qn={alignItems:"center",display:"flex",left:0,position:"absolute",top:0,width:"100%"},Un={display:"flex",width:"100%"},vt={flex:"0 0 8.5rem",padding:"0.375rem 0.75rem"},Zn="2.5rem",Et={alignItems:"center",display:"flex",flex:"0 0 2.5rem",justifyContent:"center",left:0,padding:"0.375rem 0",position:"sticky",zIndex:2},dt=r=>({flex:"0 0 auto",overflow:"hidden",padding:"0.375rem 0.75rem",position:"relative",textOverflow:"ellipsis",whiteSpace:"nowrap",width:`${r.toString()}px`}),_t=(r,e)=>({...dt(r),left:`calc(${Zn} + ${e.toString()}px)`,position:"sticky",zIndex:2}),yt="rounded-md px-2 py-0.5 text-xs font-medium text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50",Xn=(r,e,n)=>e.enabled&&e.columns.has(n)?void 0:r,lt="__back__:",Yn=r=>`${lt}${r.table}.${r.column}`,eo=r=>{const e=j(3),{counts:n,rowId:o}=r;if(n===void 0){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=m("span",{className:"text-muted-foreground/50",children:"—"}),e[0]=i):i=e[0],i}const t=n[o]??0;let l;return e[1]!==t?(l=m("span",{className:"tabular-nums",children:t}),e[1]=t,e[2]=l):l=e[2],l},we=r=>{for(const e of["id","__id__","_id"]){const n=r[e];if(typeof n=="string"||typeof n=="number")return String(n)}return null},Rt=(r,e)=>we(r)??`row-${e.toString()}`,to=8,no=r=>{const e=j(16),{anchor:n,state:o}=r,t=me();let l;e[0]!==n.left||e[1]!==n.top?(l={left:n.left,position:"fixed",top:n.top,zIndex:50},e[0]=n.left,e[1]=n.top,e[2]=l):l=e[2];const i=l;let a;if(o==="loading"){let s;e[3]!==t?(s=t("Loading…"),e[3]=t,e[4]=s):s=e[4];let g;e[5]!==s?(g=m("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:s}),e[5]=s,e[6]=g):g=e[6],a=g}else if(o.row===null){let s;e[7]!==t?(s=t("No matching row."),e[7]=t,e[8]=s):s=e[8];let g;e[9]!==s?(g=m("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:s}),e[9]=s,e[10]=g):g=e[10],a=g}else{let s;if(e[11]!==o.row){const g=Object.entries(o.row).slice(0,to);s=m("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 px-3 py-2",children:g.map(bo)}),e[11]=o.row,e[12]=s}else s=e[12];a=s}let d;return e[13]!==a||e[14]!==i?(d=m("div",{className:"pointer-events-none w-72 overflow-hidden rounded-md border border-border bg-popover text-popover-foreground","data-testid":"db-ref-preview",role:"tooltip",style:i,children:a}),e[13]=a,e[14]=i,e[15]=d):d=e[15],d},oo=r=>{const e=j(22),{column:n,id:o,onNavigate:t,onPreview:l,target:i}=r,[a,d]=P(null),[s,g]=P("idle");let c;e[0]!==o||e[1]!==t||e[2]!==i?(c=()=>{t(i,o)},e[0]=o,e[1]=t,e[2]=i,e[3]=c):c=e[3];const u=c;let b;e[4]!==o||e[5]!==l||e[6]!==s||e[7]!==i?(b=$=>{const h=$.currentTarget.getBoundingClientRect();d({left:h.left,top:h.bottom+4}),s==="idle"&&(g("loading"),se((async()=>{try{g({row:await l(i,o)})}catch{g({row:null})}})()))},e[4]=o,e[5]=l,e[6]=s,e[7]=i,e[8]=b):b=e[8];const f=b;let p;e[9]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{d(null)},e[9]=p):p=e[9];const v=p,x=`db-ref-${n}`,y=`Open ${i} ${o}`;let w;e[10]!==o||e[11]!==u||e[12]!==f||e[13]!==x||e[14]!==y?(w=T("button",{"data-testid":x,onBlur:v,onClick:u,onFocus:f,onMouseEnter:f,onMouseLeave:v,title:y,type:"button",children:[o," ↗"]}),e[10]=o,e[11]=u,e[12]=f,e[13]=x,e[14]=y,e[15]=w):w=e[15];let S;e[16]!==a||e[17]!==s?(S=a!==null&&s!=="idle"&&m(no,{anchor:a,state:s}),e[16]=a,e[17]=s,e[18]=S):S=e[18];let N;return e[19]!==w||e[20]!==S?(N=T(Ve,{children:[w,S]}),e[19]=w,e[20]=S,e[21]=N):N=e[21],N},ro=r=>r==="asc"?" ▲":r==="desc"?" ▼":"",lo="absolute end-1 top-1/2 hidden -translate-y-1/2 items-center justify-center rounded text-muted-foreground outline-none group-hover/cell:flex hover:text-foreground focus-visible:flex",wt=r=>{const e=j(8),{column:n,onExpand:o,value:t}=r;let l;e[0]!==n||e[1]!==o||e[2]!==t?(l=()=>{o(n,t)},e[0]=n,e[1]=o,e[2]=t,e[3]=l):l=e[3];const i=l,a=`db-expand-${n}`;let d;e[4]===Symbol.for("react.memo_cache_sentinel")?(d=m("svg",{"aria-hidden":"true",className:"size-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.8,viewBox:"0 0 24 24",children:m("path",{d:"M9 21H5a2 2 0 0 1-2-2v-4m18 0v4a2 2 0 0 1-2 2h-4M3 9V5a2 2 0 0 1 2-2h4m6 0h4a2 2 0 0 1 2 2v4"})}),e[4]=d):d=e[4];let s;return e[5]!==i||e[6]!==a?(s=m("button",{"aria-label":"Expand cell",className:lo,"data-testid":a,onClick:i,type:"button",children:d}),e[5]=i,e[6]=a,e[7]=s):s=e[7],s},ao=r=>{const e=j(15),{column:n,initial:o,onCancel:t,onCommit:l,recordId:i}=r,a=ze(null);let d,s;e[0]===Symbol.for("react.memo_cache_sentinel")?(d=()=>{a.current?.select()},s=[],e[0]=d,e[1]=s):(d=e[0],s=e[1]),_e(d,s);let g;e[2]!==t||e[3]!==l?(g=x=>{x.key==="Enter"?(x.preventDefault(),l(x.currentTarget.value)):x.key==="Escape"&&(x.preventDefault(),t())},e[2]=t,e[3]=l,e[4]=g):g=e[4];const c=g;let u;e[5]!==l?(u=x=>{l(x.currentTarget.value)},e[5]=l,e[6]=u):u=e[6];const b=u,f=`db-cell-input-${i}-${n}`;let p;e[7]!==o?(p=Re(o),e[7]=o,e[8]=p):p=e[8];let v;return e[9]!==n||e[10]!==b||e[11]!==c||e[12]!==f||e[13]!==p?(v=m("input",{"aria-label":n,className:"w-full rounded border border-ring bg-background px-1 py-0.5 font-mono text-xs outline-none","data-testid":f,defaultValue:p,onBlur:b,onKeyDown:c,ref:a}),e[9]=n,e[10]=b,e[11]=c,e[12]=f,e[13]=p,e[14]=v):v=e[14],v},so=r=>{const e=j(68),{cell:n,edit:o,highlight:t,mask:l,refs:i}=r,a=n.column.id;let d,s,g,c;if(e[0]!==n||e[1]!==a||e[2]!==o||e[3]!==l||e[4]!==i.columns||e[5]!==i.onNavigate||e[6]!==i.onPreview){c=Symbol.for("react.early_return_sentinel");e:{s=n.getValue(),d=we(n.row.original);const E=i.columns?.[a];if(l.enabled&&l.columns.has(a)){const _=`db-masked-${a}`,R=m(Xe,{value:jn(s,a,l)});let k;e[11]!==_||e[12]!==R?(k=m("span",{className:"text-muted-foreground italic","data-testid":_,title:"Masked (preview)",children:R}),e[11]=_,e[12]=R,e[13]=k):k=e[13],c=k;break e}if(E!==void 0&&(typeof s=="string"||typeof s=="number")&&String(s)!==""){const _=String(s),R=`${E}:${String(s)}`;let k;e[14]!==a||e[15]!==i.onNavigate||e[16]!==i.onPreview||e[17]!==_||e[18]!==R||e[19]!==E?(k=m(oo,{column:a,id:_,onNavigate:i.onNavigate,onPreview:i.onPreview,target:E},R),e[14]=a,e[15]=i.onNavigate,e[16]=i.onPreview,e[17]=_,e[18]=R,e[19]=E,e[20]=k):k=e[20],c=k;break e}if(d===null){let _;e[21]!==s?(_=m(Xe,{value:s}),e[21]=s,e[22]=_):_=e[22];let R;e[23]!==a||e[24]!==o.onExpandCell||e[25]!==s?(R=m(wt,{column:a,onExpand:o.onExpandCell,value:s}),e[23]=a,e[24]=o.onExpandCell,e[25]=s,e[26]=R):R=e[26];let k;e[27]!==_||e[28]!==R?(k=T(Ve,{children:[_,R]}),e[27]=_,e[28]=R,e[29]=k):k=e[29],c=k;break e}g=o.stagedValue(d,a)}e[0]=n,e[1]=a,e[2]=o,e[3]=l,e[4]=i.columns,e[5]=i.onNavigate,e[6]=i.onPreview,e[7]=d,e[8]=s,e[9]=g,e[10]=c}else d=e[7],s=e[8],g=e[9],c=e[10];if(c!==Symbol.for("react.early_return_sentinel"))return c;const u=g,b=u===void 0?s:u.value;let f;e[30]!==a||e[31]!==o?(f=o.editable&&o.editableColumn(a),e[30]=a,e[31]=o,e[32]=f):f=e[32];const p=f;if(o.editingCell!==null&&o.editingCell.rowId===d&&o.editingCell.column===a){let E;e[33]!==a||e[34]!==o||e[35]!==d||e[36]!==s?(E=R=>{o.stage(d,a,Vn(R,s)),o.cancelEdit()},e[33]=a,e[34]=o,e[35]=d,e[36]=s,e[37]=E):E=e[37];let _;return e[38]!==a||e[39]!==b||e[40]!==o.cancelEdit||e[41]!==d||e[42]!==E?(_=m(ao,{column:a,initial:b,onCancel:o.cancelEdit,onCommit:E,recordId:d}),e[38]=a,e[39]=b,e[40]=o.cancelEdit,e[41]=d,e[42]=E,e[43]=_):_=e[43],_}let v;u!==void 0?v="rounded bg-warning/15 px-1":p&&(v="cursor-text");let x;e[44]!==p||e[45]!==a||e[46]!==o||e[47]!==d?(x=p?()=>{o.startEdit(d,a)}:void 0,e[44]=p,e[45]=a,e[46]=o,e[47]=d,e[48]=x):x=e[48];const y=x,w=v,S=`db-cell-${d}-${a}`;let N;e[49]!==a||e[50]!==t||e[51]!==l?(N=Xn(t,l,a),e[49]=a,e[50]=t,e[51]=l,e[52]=N):N=e[52];let $;e[53]!==b||e[54]!==N?($=m(Xe,{highlight:N,value:b}),e[53]=b,e[54]=N,e[55]=$):$=e[55];let h;e[56]!==v||e[57]!==y||e[58]!==S||e[59]!==$?(h=m("span",{className:w,"data-testid":S,onDoubleClick:y,children:$}),e[56]=v,e[57]=y,e[58]=S,e[59]=$,e[60]=h):h=e[60];let C;e[61]!==a||e[62]!==b||e[63]!==o.onExpandCell?(C=m(wt,{column:a,onExpand:o.onExpandCell,value:b}),e[61]=a,e[62]=b,e[63]=o.onExpandCell,e[64]=C):C=e[64];let D;return e[65]!==C||e[66]!==h?(D=T(Ve,{children:[h,C]}),e[65]=C,e[66]=h,e[67]=D):D=e[67],D},io=r=>{r.preventDefault()},co=({draggedRef:r,header:e,masked:n=!1,onTogglePin:o,pinnedOffset:t,table:l})=>{const i=()=>{r.current=e.column.id},a=()=>{const d=r.current,s=e.column.id;if(r.current=null,d===null||d===s)return;const g=l.getState().columnOrder,c=(g.length>0?g:l.getAllLeafColumns().map(b=>b.id)).filter(b=>b!==d),u=c.indexOf(s);c.splice(u===-1?c.length:u,0,d),l.setColumnOrder(c)};return T("th",{className:Be("group/head text-start text-xs font-medium text-muted-foreground",t!==void 0&&"border-e border-border bg-muted"),draggable:!0,onDragOver:io,onDragStart:i,onDrop:a,style:t===void 0?dt(e.getSize()):_t(e.getSize(),t),children:[T("button",{className:"inline-flex max-w-full cursor-grab items-center gap-1 truncate outline-none hover:text-foreground","data-testid":`db-sort-${e.column.id}`,onClick:e.column.getToggleSortingHandler(),type:"button",children:[pn(e.column.columnDef.header,e.getContext()),ro(e.column.getIsSorted())]}),n&&m("span",{className:"ms-1 inline-flex items-center rounded-sm bg-warning/15 px-1 text-[0.625rem] font-medium uppercase text-warning","data-testid":`db-mask-chip-${e.column.id}`,title:"This column is masked by a mask() policy",children:"masked"}),m("button",{"aria-label":t===void 0?`Pin ${e.column.id}`:`Unpin ${e.column.id}`,"aria-pressed":t!==void 0,className:Be("ms-1 rounded-sm px-1 text-[0.625rem] outline-none transition-opacity hover:bg-accent focus-visible:bg-accent",t===void 0?"opacity-0 group-hover/head:opacity-100 focus-visible:opacity-100":"opacity-100 text-foreground"),"data-testid":`db-pin-${e.column.id}`,onClick:()=>{o(e.column.id)},type:"button",children:"📌"}),m("span",{"aria-hidden":"true",className:"absolute inset-y-0 end-0 w-1 cursor-col-resize touch-none select-none hover:bg-ring/60 data-[resizing=true]:bg-ring","data-resizing":e.column.getIsResizing(),"data-testid":`db-resize-${e.column.id}`,onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler()})]})},uo=r=>{const e=j(13),{table:n}=r,o=me();let t;e[0]!==n?(t=g=>{n.toggleAllRowsSelected(g)},e[0]=n,e[1]=t):t=e[1];const l=t;let i;e[2]!==o?(i=o("Select all rows"),e[2]=o,e[3]=i):i=e[3];let a;e[4]!==n?(a=n.getIsAllRowsSelected(),e[4]=n,e[5]=a):a=e[5];let d;e[6]!==n?(d=n.getIsSomeRowsSelected()&&!n.getIsAllRowsSelected(),e[6]=n,e[7]=d):d=e[7];let s;return e[8]!==l||e[9]!==i||e[10]!==a||e[11]!==d?(s=m("th",{className:"bg-muted",style:Et,children:m(st,{"aria-label":i,checked:a,"data-testid":"db-select-all",indeterminate:d,onCheckedChange:l})}),e[8]=l,e[9]=i,e[10]=a,e[11]=d,e[12]=s):s=e[12],s},mo=r=>{const e=j(17),{row:n}=r,o=me();let t;e[0]!==n.original?(t=we(n.original),e[0]=n.original,e[1]=t):t=e[1];const l=t;let i;e[2]!==n?(i=f=>{n.toggleSelected(f)},e[2]=n,e[3]=i):i=e[3];const a=i;let d;e[4]!==o?(d=o("Select row"),e[4]=o,e[5]=d):d=e[5];let s;e[6]!==n?(s=n.getIsSelected(),e[6]=n,e[7]=s):s=e[7];let g;e[8]!==n.index||e[9]!==n.original?(g=Rt(n.original,n.index),e[8]=n.index,e[9]=n.original,e[10]=g):g=e[10];const c=`db-select-${g}`,u=l===null;let b;return e[11]!==a||e[12]!==d||e[13]!==s||e[14]!==c||e[15]!==u?(b=m("td",{className:"bg-background",style:Et,children:m(st,{"aria-label":d,checked:s,"data-testid":c,disabled:u,onCheckedChange:a})}),e[11]=a,e[12]=d,e[13]=s,e[14]=c,e[15]=u,e[16]=b):b=e[16],b},go=r=>{const e=j(70),{edit:n,editable:o,mask:t,onDelete:l,onEdit:i,onInspect:a,highlight:d,backRelationCounts:s,onTogglePin:g,pinnedColumns:c,refs:u,tableModel:b}=r,{attachScroll:f,scrollLeft:p,scrollToIndex:v,table:x,tableRows:y,tbodyStyle:w,viewportWidth:S,virtualRows:N}=b,$=ze(null),[h,C]=P(null);let D;e[0]!==x?(D=x.getVisibleLeafColumns(),e[0]=x,e[1]=D):D=e[1];const E=D.length;let _;e[2]!==h||e[3]!==E||e[4]!==n||e[5]!==x||e[6]!==y?(_=pe=>{if(!["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Enter"].includes(pe.key))return;pe.preventDefault();const Q=h??{col:0,row:0};if(pe.key==="Enter"){const L=y[Q.row],Y=x.getVisibleLeafColumns()[Q.col];if(L!==void 0&&Y!==void 0){const q=we(L.original);q!==null&&n.editableColumn(Y.id)&&n.startEdit(q,Y.id)}C(Q);return}let{col:te,row:W}=Q;e:switch(pe.key){case"ArrowDown":{W=Math.min(W+1,y.length-1);break e}case"ArrowRight":{te=Math.min(te+1,E-1);break e}case"ArrowUp":{W=Math.max(W-1,0);break e}default:te=Math.max(te-1,0)}C({col:te,row:W})},e[2]=h,e[3]=E,e[4]=n,e[5]=x,e[6]=y,e[7]=_):_=e[7];const R=_;let k,F;e[8]!==h||e[9]!==v?(k=()=>{h!==null&&v(h.row)},F=[h,v],e[8]=h,e[9]=v,e[10]=k,e[11]=F):(k=e[10],F=e[11]),_e(k,F);let B,O,I,G,A,V,H,Z,ge,oe,re,fe,ie,de;if(e[12]!==h||e[13]!==f||e[14]!==s||e[15]!==n||e[16]!==o||e[17]!==d||e[18]!==t||e[19]!==l||e[20]!==i||e[21]!==R||e[22]!==a||e[23]!==g||e[24]!==c||e[25]!==u||e[26]!==p||e[27]!==x||e[28]!==y||e[29]!==w||e[30]!==S||e[31]!==N){const pe=x.getVisibleLeafColumns().map(po),Q=An(pe,c,p,S),te=Ln(x.getVisibleLeafColumns().map(ho),c),W=q=>{const Se=y[q.index],{original:Ne}=Se,Ce=we(Ne),ke=Rt(Ne,q.index),ae={...Qn,height:`${q.size.toString()}px`,transform:`translateY(${q.start.toString()}px)`};return T("tr",{className:"border-b border-border text-xs transition-colors hover:bg-muted/50","data-testid":"db-row",style:ae,children:[m(mo,{row:Se}),Q.leadPx>0&&m("td",{"aria-hidden":"true",style:{flex:`0 0 ${Q.leadPx.toString()}px`}}),Se.getVisibleCells().map((J,Me)=>{if(!Q.ids.has(J.column.id))return null;const $e=te.get(J.column.id),Pe=h!==null&&h.row===q.index&&h.col===Me?" ring-1 ring-ring ring-inset":"";return m("td",{className:Be("group/cell truncate font-mono text-muted-foreground",$e!==void 0&&"border-e border-border bg-background",Pe),style:$e===void 0?dt(J.column.getSize()):_t(J.column.getSize(),$e),children:J.column.id.startsWith(lt)?m(eo,{counts:s[J.column.id.slice(lt.length)],rowId:ke}):m(so,{cell:J,edit:n,highlight:d,mask:t,refs:u})},J.id)}),Q.tailPx>0&&m("td",{"aria-hidden":"true",style:{flex:`0 0 ${Q.tailPx.toString()}px`}}),T("td",{className:"flex items-center gap-1",style:vt,children:[m("button",{className:yt,"data-testid":`db-inspect-${ke}`,onClick:()=>{a(Ne)},type:"button",children:"Details"}),o&&T(Ve,{children:[m("button",{className:yt,"data-testid":`db-edit-${ke}`,disabled:Ce===null,onClick:()=>{i(Ce,Ne)},type:"button",children:"Edit"}),m(rt,{confirmLabel:"Delete?",disabled:Ce===null,onConfirm:()=>{l(Ce)},testId:`db-delete-${ke}`,children:"Delete"})]})]})]},Se.id)};B=vn,ge="fill",I="db-scroll",G=R,A=f,V="grid",H=Hn,Z=0,fe="w-full text-xs",ie="db-rows",de=Wn;let L;e[46]!==x?(L=m(uo,{table:x}),e[46]=x,e[47]=L):L=e[47];let Y;e[48]===Symbol.for("react.memo_cache_sentinel")?(Y=m("th",{"aria-label":"Row actions",style:vt}),e[48]=Y):Y=e[48],O=m("thead",{className:"bg-muted/50",children:T("tr",{className:"border-b border-border",style:Un,children:[L,Q.leadPx>0&&m("th",{"aria-hidden":"true",style:{flex:`0 0 ${Q.leadPx.toString()}px`}}),x.getFlatHeaders().map(q=>Q.ids.has(q.column.id)?m(co,{draggedRef:$,header:q,masked:t.columns.has(q.column.id),onTogglePin:g,pinnedOffset:te.get(q.column.id),table:x},q.id):null),Q.tailPx>0&&m("th",{"aria-hidden":"true",style:{flex:`0 0 ${Q.tailPx.toString()}px`}}),Y]})}),oe=w,re=N.map(q=>W(q)),e[12]=h,e[13]=f,e[14]=s,e[15]=n,e[16]=o,e[17]=d,e[18]=t,e[19]=l,e[20]=i,e[21]=R,e[22]=a,e[23]=g,e[24]=c,e[25]=u,e[26]=p,e[27]=x,e[28]=y,e[29]=w,e[30]=S,e[31]=N,e[32]=B,e[33]=O,e[34]=I,e[35]=G,e[36]=A,e[37]=V,e[38]=H,e[39]=Z,e[40]=ge,e[41]=oe,e[42]=re,e[43]=fe,e[44]=ie,e[45]=de}else B=e[32],O=e[33],I=e[34],G=e[35],A=e[36],V=e[37],H=e[38],Z=e[39],ge=e[40],oe=e[41],re=e[42],fe=e[43],ie=e[44],de=e[45];let ce;e[49]!==oe||e[50]!==re?(ce=m("tbody",{style:oe,children:re}),e[49]=oe,e[50]=re,e[51]=ce):ce=e[51];let le;e[52]!==O||e[53]!==ce||e[54]!==fe||e[55]!==ie||e[56]!==de?(le=T("table",{className:fe,"data-testid":ie,style:de,children:[O,ce]}),e[52]=O,e[53]=ce,e[54]=fe,e[55]=ie,e[56]=de,e[57]=le):le=e[57];let X;e[58]!==I||e[59]!==G||e[60]!==A||e[61]!==V||e[62]!==H||e[63]!==Z||e[64]!==le?(X=m("div",{"data-testid":I,onKeyDown:G,ref:A,role:V,style:H,tabIndex:Z,children:le}),e[58]=I,e[59]=G,e[60]=A,e[61]=V,e[62]=H,e[63]=Z,e[64]=le,e[65]=X):X=e[65];let be;return e[66]!==B||e[67]!==ge||e[68]!==X?(be=m(B,{layout:ge,children:X}),e[66]=B,e[67]=ge,e[68]=X,e[69]=be):be=e[69],be},fo=(r,e,n,o=[])=>{const t=r?.columns,l=r?.rows,i=r?.refs,a=nt(()=>{if(t===void 0)return[];const h=t.map(C=>({accessorFn:D=>D[C],header:i?.[C]===void 0?C:`${C} →`,id:C}));for(const C of o)h.push({accessorFn:()=>{},enableSorting:!1,header:`← ${C.table}`,id:Yn(C)});return h},[o,t,i]),d=nt(()=>l??[],[l]),[s,g]=P({}),[c,u]=P({}),b=gn({columnResizeMode:"onChange",columns:a,data:d,defaultColumn:{minSize:80,size:200},enableColumnResizing:!0,enableRowSelection:h=>we(h.original)!==null,getCoreRowModel:bn(),getRowId:(h,C)=>we(h)??`row-${C.toString()}`,getSortedRowModel:fn(),manualSorting:!0,onColumnVisibilityChange:u,onRowSelectionChange:g,onSortingChange:n,state:{columnVisibility:c,rowSelection:s,sorting:e}}),f=b.getRowModel().rows,p=ze(null),v=hn({count:f.length,estimateSize:()=>Gn,getScrollElement:()=>p.current,initialRect:{height:xt,width:0},observeElementRect:(h,C)=>xn(h,C,xt),overscan:8}),x=ot(h=>{v.scrollToIndex(h)},[v]),[y,w]=P({left:0,width:0}),S=ot(h=>{if(p.current=h,h===null)return;const C=()=>{w(E=>E.left===h.scrollLeft&&E.width===h.clientWidth?E:{left:h.scrollLeft,width:h.clientWidth})};h.addEventListener("scroll",C,{passive:!0});const D=new ResizeObserver(C);return D.observe(h),()=>{h.removeEventListener("scroll",C),D.disconnect(),p.current=null}},[]),N=v.getVirtualItems(),$={display:"block",height:`${v.getTotalSize().toString()}px`,position:"relative"};return{attachScroll:S,scrollLeft:y.left,scrollToIndex:x,table:b,tableRows:f,tbodyStyle:$,viewportWidth:y.width,virtualRows:N}};function bo(r){const[e,n]=r;return T("div",{className:"contents",children:[m("dt",{className:"truncate font-mono text-[11px] text-muted-foreground",children:e}),m("dd",{className:"truncate font-mono text-[11px] text-foreground",title:Re(n),children:Re(n)})]},e)}function po(r){return{getSize:()=>r.getSize(),id:r.id}}function ho(r){return{getSize:()=>r.getSize(),id:r.id}}const at="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",xo=r=>{const e=j(22),{onCommit:n}=r,o=me(),[t,l]=P(""),i=ze(null);let a,d;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=()=>{i.current?.focus()},d=[],e[0]=a,e[1]=d):(a=e[0],d=e[1]),_e(a,d);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=w=>{l(w.target.value)},e[2]=s):s=e[2];const g=s;let c;e[3]!==t||e[4]!==n?(c=()=>{const w=t.trim();w!==""&&n(w)},e[3]=t,e[4]=n,e[5]=c):c=e[5];const u=c;let b;e[6]!==o?(b=o("Query name"),e[6]=o,e[7]=b):b=e[7];let f;e[8]!==o?(f=o("Query name"),e[8]=o,e[9]=f):f=e[9];let p;e[10]!==t||e[11]!==b||e[12]!==f?(p=m("input",{"aria-label":b,className:"h-7 rounded-md border border-border bg-background px-2 text-xs outline-none focus-visible:border-ring","data-testid":"db-save-query-name",onChange:g,placeholder:f,ref:i,value:t}),e[10]=t,e[11]=b,e[12]=f,e[13]=p):p=e[13];let v;e[14]!==o?(v=o("Save"),e[14]=o,e[15]=v):v=e[15];let x;e[16]!==u||e[17]!==v?(x=m("button",{className:at,"data-testid":"db-save-query-confirm",onClick:u,type:"button",children:v}),e[16]=u,e[17]=v,e[18]=x):x=e[18];let y;return e[19]!==p||e[20]!==x?(y=T("span",{className:"inline-flex items-center gap-1",children:[p,x]}),e[19]=p,e[20]=x,e[21]=y):y=e[21],y},vo=r=>{const e=j(27),{onApply:n,onCopyLink:o,onDelete:t,onSave:l,saved:i}=r,a=me(),[d,s]=P(!1);let g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g=()=>{s(!0)},e[0]=g):g=e[0];const c=g;let u;e[1]!==l?(u=h=>{l(h),s(!1)},e[1]=l,e[2]=u):u=e[2];const b=u;let f;e[3]!==n||e[4]!==i?(f=h=>{const C=i[Number(h.currentTarget.dataset.index)];C!==void 0&&n(C)},e[3]=n,e[4]=i,e[5]=f):f=e[5];const p=f;let v;e[6]!==t||e[7]!==i?(v=h=>{const C=i[Number(h.currentTarget.dataset.index)];C!==void 0&&t(C.name)},e[6]=t,e[7]=i,e[8]=v):v=e[8];const x=v;let y;e[9]!==a?(y=a("Copy link"),e[9]=a,e[10]=y):y=e[10];let w;e[11]!==o||e[12]!==y?(w=m("button",{className:at,"data-testid":"db-copy-link",onClick:o,type:"button",children:y}),e[11]=o,e[12]=y,e[13]=w):w=e[13];let S;e[14]!==b||e[15]!==d||e[16]!==a?(S=d?m(xo,{onCommit:b}):m("button",{className:at,"data-testid":"db-save-query",onClick:c,type:"button",children:a("Save query")}),e[14]=b,e[15]=d,e[16]=a,e[17]=S):S=e[17];let N;e[18]!==p||e[19]!==x||e[20]!==i||e[21]!==a?(N=i.length>0&&T("div",{className:"flex flex-wrap items-center gap-1","data-testid":"db-saved-queries",children:[m("span",{className:"font-mono text-[11px] tracking-wide uppercase text-muted-foreground",children:a("Saved")}),i.map((h,C)=>T("span",{className:"inline-flex items-center overflow-hidden rounded-md border border-border",children:[m("button",{className:"px-2 py-0.5 text-xs text-foreground transition-colors hover:bg-accent","data-index":C,"data-testid":`db-saved-query-${h.name}`,onClick:p,type:"button",children:h.name}),m("button",{"aria-label":a("Delete saved query {name}",{name:h.name}),className:"border-l border-border px-1 py-0.5 text-xs text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive","data-index":C,"data-testid":`db-saved-query-delete-${h.name}`,onClick:x,type:"button",children:"✕"})]},h.name))]}),e[18]=p,e[19]=x,e[20]=i,e[21]=a,e[22]=N):N=e[22];let $;return e[23]!==w||e[24]!==S||e[25]!==N?($=T("div",{className:"flex flex-wrap items-center gap-1.5","data-testid":"db-query-bar",children:[w,S,N]}),e[23]=w,e[24]=S,e[25]=N,e[26]=$):$=e[26],$},je="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 aria-pressed:bg-accent aria-pressed:text-accent-foreground disabled:pointer-events-none disabled:opacity-50",Je="w-full rounded-md border border-border bg-background px-2 py-1 font-mono text-xs outline-none focus-visible:border-ring",yo=/(?:_creationtime|(?:^|[a-z])(?:time|at))$/iu,wo=(r,e)=>typeof e=="boolean"?"boolean":typeof e=="number"?yo.test(r)?"date":"number":e!==null&&typeof e=="object"?"json":"text",So=r=>{try{const e=JSON.parse(r);return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}catch{return null}},No=r=>{const e=new Date(r),n=o=>String(o).padStart(2,"0");return`${e.getFullYear().toString()}-${n(e.getMonth()+1)}-${n(e.getDate())}T${n(e.getHours())}:${n(e.getMinutes())}`},Co=r=>{const e=j(8),{column:n,onChange:o,value:t}=r;let l;e[0]!==n||e[1]!==o?(l=g=>{o(n,g)},e[0]=n,e[1]=o,e[2]=l):l=e[2];const i=l,a=t===!0,d=`db-field-${n}`;let s;return e[3]!==n||e[4]!==i||e[5]!==a||e[6]!==d?(s=m(st,{"aria-label":n,checked:a,"data-testid":d,onCheckedChange:i}),e[3]=n,e[4]=i,e[5]=a,e[6]=d,e[7]=s):s=e[7],s},ko=r=>{const e=j(8),{column:n,onChange:o,value:t}=r;let l;e[0]!==n||e[1]!==o?(l=g=>{const c=Number(g.target.value);g.target.value!==""&&!Number.isNaN(c)&&o(n,c)},e[0]=n,e[1]=o,e[2]=l):l=e[2];const i=l,a=`db-field-${n}`,d=typeof t=="number"?t:"";let s;return e[3]!==n||e[4]!==i||e[5]!==a||e[6]!==d?(s=m("input",{"aria-label":n,className:Je,"data-testid":a,onChange:i,type:"number",value:d}),e[3]=n,e[4]=i,e[5]=a,e[6]=d,e[7]=s):s=e[7],s},$o=r=>{const e=j(10),{column:n,onChange:o,value:t}=r;let l;e[0]!==n||e[1]!==o?(l=g=>{const c=new Date(g.target.value).getTime();Number.isNaN(c)||o(n,c)},e[0]=n,e[1]=o,e[2]=l):l=e[2];const i=l,a=`db-field-${n}`;let d;e[3]!==t?(d=typeof t=="number"?No(t):"",e[3]=t,e[4]=d):d=e[4];let s;return e[5]!==n||e[6]!==i||e[7]!==a||e[8]!==d?(s=m("input",{"aria-label":n,className:Je,"data-testid":a,onChange:i,type:"datetime-local",value:d}),e[5]=n,e[6]=i,e[7]=a,e[8]=d,e[9]=s):s=e[9],s},To=r=>{const e=j(8),{column:n,onChange:o,value:t}=r;let l;e[0]!==n||e[1]!==o?(l=g=>{o(n,g.target.value)},e[0]=n,e[1]=o,e[2]=l):l=e[2];const i=l,a=`db-field-${n}`,d=typeof t=="string"?t:"";let s;return e[3]!==n||e[4]!==i||e[5]!==a||e[6]!==d?(s=m("input",{"aria-label":n,className:Je,"data-testid":a,onChange:i,type:"text",value:d}),e[3]=n,e[4]=i,e[5]=a,e[6]=d,e[7]=s):s=e[7],s},Eo=r=>{const e=j(20),{column:n,onChange:o,value:t}=r,l=me();let i;e[0]!==t?(i=()=>JSON.stringify(t,null,2),e[0]=t,e[1]=i):i=e[1];const[a,d]=P(i),[s,g]=P(!1);let c;e[2]!==n||e[3]!==o?(c=w=>{const S=w.target.value;d(S);try{o(n,JSON.parse(S)),g(!1)}catch{g(!0)}},e[2]=n,e[3]=o,e[4]=c):c=e[4];const u=c,b=s&&"border-destructive";let f;e[5]!==b?(f=Be(Je,"min-h-16",b),e[5]=b,e[6]=f):f=e[6];const p=`db-field-${n}`;let v;e[7]!==n||e[8]!==u||e[9]!==f||e[10]!==p||e[11]!==a?(v=m("textarea",{"aria-label":n,className:f,"data-testid":p,onChange:u,value:a}),e[7]=n,e[8]=u,e[9]=f,e[10]=p,e[11]=a,e[12]=v):v=e[12];let x;e[13]!==n||e[14]!==s||e[15]!==l?(x=s&&m("span",{className:"text-xs text-destructive","data-testid":`db-field-error-${n}`,children:l("Invalid JSON")}),e[13]=n,e[14]=s,e[15]=l,e[16]=x):x=e[16];let y;return e[17]!==v||e[18]!==x?(y=T("div",{className:"flex flex-col gap-1",children:[v,x]}),e[17]=v,e[18]=x,e[19]=y):y=e[19],y},_o=r=>{const e=j(43),{column:n,onChange:o,target:t,value:l}=r;let i;e[0]!==n||e[1]!==l?(i=wo(n,l),e[0]=n,e[1]=l,e[2]=i):i=e[2];const a=i,d=`db-field-${n}`;let s;e[3]!==n?(s=m("span",{className:"font-mono",children:n}),e[3]=n,e[4]=s):s=e[4];let g;e[5]!==t?(g=t!==void 0&&T("span",{className:"rounded bg-muted px-1 font-mono text-[10px] tracking-wide uppercase",children:["→ ",t]}),e[5]=t,e[6]=g):g=e[6];let c;e[7]!==s||e[8]!==g?(c=T("span",{className:"flex items-center gap-1.5 font-medium text-muted-foreground",children:[s,g]}),e[7]=s,e[8]=g,e[9]=c):c=e[9];let u;e[10]!==n||e[11]!==a||e[12]!==o||e[13]!==l?(u=a==="boolean"&&m(Co,{column:n,onChange:o,value:l}),e[10]=n,e[11]=a,e[12]=o,e[13]=l,e[14]=u):u=e[14];let b;e[15]!==n||e[16]!==a||e[17]!==o||e[18]!==l?(b=a==="number"&&m(ko,{column:n,onChange:o,value:l}),e[15]=n,e[16]=a,e[17]=o,e[18]=l,e[19]=b):b=e[19];let f;e[20]!==n||e[21]!==a||e[22]!==o||e[23]!==l?(f=a==="date"&&m($o,{column:n,onChange:o,value:l}),e[20]=n,e[21]=a,e[22]=o,e[23]=l,e[24]=f):f=e[24];let p;e[25]!==n||e[26]!==a||e[27]!==o||e[28]!==l?(p=a==="json"&&m(Eo,{column:n,onChange:o,value:l}),e[25]=n,e[26]=a,e[27]=o,e[28]=l,e[29]=p):p=e[29];let v;e[30]!==n||e[31]!==a||e[32]!==o||e[33]!==l?(v=a==="text"&&m(To,{column:n,onChange:o,value:l}),e[30]=n,e[31]=a,e[32]=o,e[33]=l,e[34]=v):v=e[34];let x;return e[35]!==v||e[36]!==d||e[37]!==c||e[38]!==u||e[39]!==b||e[40]!==f||e[41]!==p?(x=T("label",{className:"flex flex-col gap-1 text-xs",htmlFor:d,children:[c,u,b,f,p,v]}),e[35]=v,e[36]=d,e[37]=c,e[38]=u,e[39]=b,e[40]=f,e[41]=p,e[42]=x):x=e[42],x},Ro=r=>{const e=j(48),{documentText:n,onCancel:o,onDocumentTextChange:t,onSave:l,refs:i}=r,a=me();let d;e[0]!==n?(d=So(n),e[0]=n,e[1]=d):d=e[1];const s=d,[g,c]=P(!1),u=!g&&s!==null;let b;e[2]!==s||e[3]!==t?(b=(A,V)=>{t(JSON.stringify({...s,[A]:V},null,2))},e[2]=s,e[3]=t,e[4]=b):b=e[4];const f=b;let p;e[5]!==t?(p=A=>{t(A.target.value)},e[5]=t,e[6]=p):p=e[6];const v=p;let x;e[7]===Symbol.for("react.memo_cache_sentinel")?(x=()=>{c(!1)},e[7]=x):x=e[7];const y=x;let w;e[8]===Symbol.for("react.memo_cache_sentinel")?(w=()=>{c(!0)},e[8]=w):w=e[8];const S=w,N=s===null;let $;e[9]!==a?($=a("Form"),e[9]=a,e[10]=$):$=e[10];let h;e[11]!==u||e[12]!==N||e[13]!==$?(h=m("button",{"aria-pressed":u,className:je,"data-testid":"db-editor-form",disabled:N,onClick:y,type:"button",children:$}),e[11]=u,e[12]=N,e[13]=$,e[14]=h):h=e[14];const C=!u;let D;e[15]!==a?(D=a("JSON"),e[15]=a,e[16]=D):D=e[16];let E;e[17]!==D||e[18]!==C?(E=m("button",{"aria-pressed":C,className:je,"data-testid":"db-editor-json",onClick:S,type:"button",children:D}),e[17]=D,e[18]=C,e[19]=E):E=e[19];let _;e[20]!==E||e[21]!==h?(_=T("div",{className:"flex items-center gap-1.5",children:[h,E]}),e[20]=E,e[21]=h,e[22]=_):_=e[22];let R;e[23]!==n||e[24]!==s||e[25]!==f||e[26]!==v||e[27]!==i||e[28]!==u||e[29]!==a?(R=u?m("div",{className:"flex flex-col gap-3","data-testid":"db-editor-fields",children:Object.entries(s).map(A=>{const[V,H]=A;return m(_o,{column:V,onChange:f,target:i?.[V],value:H},V)})}):m("textarea",{"aria-label":a("Row document JSON"),className:"min-h-28 w-full rounded-md border border-border bg-background px-2 py-1.5 font-mono text-xs outline-none focus-visible:border-ring","data-testid":"db-editor-doc",onChange:v,value:n}),e[23]=n,e[24]=s,e[25]=f,e[26]=v,e[27]=i,e[28]=u,e[29]=a,e[30]=R):R=e[30];let k;e[31]!==a?(k=a("Save"),e[31]=a,e[32]=k):k=e[32];let F;e[33]!==l||e[34]!==k?(F=m("button",{className:je,"data-testid":"db-editor-save",onClick:l,type:"button",children:k}),e[33]=l,e[34]=k,e[35]=F):F=e[35];let B;e[36]!==a?(B=a("Cancel"),e[36]=a,e[37]=B):B=e[37];let O;e[38]!==o||e[39]!==B?(O=m("button",{className:je,"data-testid":"db-editor-cancel",onClick:o,type:"button",children:B}),e[38]=o,e[39]=B,e[40]=O):O=e[40];let I;e[41]!==F||e[42]!==O?(I=T("div",{className:"flex items-center gap-1.5",children:[F,O]}),e[41]=F,e[42]=O,e[43]=I):I=e[43];let G;return e[44]!==_||e[45]!==R||e[46]!==I?(G=T("div",{className:"flex flex-col gap-2 border border-border bg-card p-3","data-testid":"db-editor",children:[_,R,I]}),e[44]=_,e[45]=R,e[46]=I,e[47]=G):G=e[47],G},Oe="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 aria-pressed:bg-accent aria-pressed:text-accent-foreground",Mo=r=>{const e=j(61),{columns:n,editable:o,filter:t,filters:l,hasMaskedColumns:i,liveError:a,maskOn:d,onAddRow:s,onBulkDelete:g,onAskAiFilter:c,onClearTable:u,onFilterChange:b,onFiltersChange:f,onGenerateRows:p,onShowJson:v,onShowTable:x,onToggleMask:y,total:w,viewMode:S}=r,N=me(),$=S==="table";let h;e[0]!==x||e[1]!==$?(h=m("button",{"aria-pressed":$,className:Oe,"data-testid":"db-view-table",onClick:x,type:"button",children:"Table"}),e[0]=x,e[1]=$,e[2]=h):h=e[2];const C=S==="json";let D;e[3]!==v||e[4]!==C?(D=m("button",{"aria-pressed":C,className:Oe,"data-testid":"db-view-json",onClick:v,type:"button",children:"JSON"}),e[3]=v,e[4]=C,e[5]=D):D=e[5];let E;e[6]!==a||e[7]!==N?(E=a===void 0?N("Live — changes stream in automatically"):N("Live unavailable: {liveError}",{liveError:a}),e[6]=a,e[7]=N,e[8]=E):E=e[8];const _=`size-1.5 rounded-full ${a===void 0?"bg-success":"bg-muted-foreground/50"}`;let R;e[9]!==_?(R=m("span",{"aria-hidden":"true",className:_}),e[9]=_,e[10]=R):R=e[10];let k;e[11]!==a||e[12]!==N?(k=N(a===void 0?"Live":"Live unavailable"),e[11]=a,e[12]=N,e[13]=k):k=e[13];let F;e[14]!==E||e[15]!==R||e[16]!==k?(F=T("span",{className:"inline-flex items-center gap-1.5 px-1 text-xs font-medium text-muted-foreground","data-testid":"db-live-indicator",role:"status",title:E,children:[R,k]}),e[14]=E,e[15]=R,e[16]=k,e[17]=F):F=e[17];let B;e[18]!==i||e[19]!==d||e[20]!==y||e[21]!==N?(B=i&&m("button",{"aria-pressed":d,className:Oe,"data-testid":"db-mask-toggle",onClick:y,type:"button",children:N("Mask sensitive columns")}),e[18]=i,e[19]=d,e[20]=y,e[21]=N,e[22]=B):B=e[22];let O;e[23]!==o||e[24]!==s?(O=o&&m("button",{className:Oe,"data-testid":"db-add-row",onClick:s,type:"button",children:"Add row"}),e[23]=o,e[24]=s,e[25]=O):O=e[25];let I;e[26]!==o||e[27]!==p||e[28]!==N?(I=o&&m("button",{className:Oe,"data-testid":"db-generate-rows",onClick:p,type:"button",children:N("Generate rows")}),e[26]=o,e[27]=p,e[28]=N,e[29]=I):I=e[29];let G;e[30]!==o||e[31]!==t||e[32]!==l||e[33]!==g||e[34]!==w?(G=o&&w>0&&(t!==""||l.length>0)&&m(rt,{confirmLabel:`Delete ${w.toString()} matching?`,onConfirm:g,testId:"db-bulk-delete",children:`Delete ${w.toString()} matching`}),e[30]=o,e[31]=t,e[32]=l,e[33]=g,e[34]=w,e[35]=G):G=e[35];let A;e[36]!==o||e[37]!==t||e[38]!==l||e[39]!==u||e[40]!==w?(A=o&&w>0&&t===""&&l.length===0&&m(rt,{confirmLabel:`Clear all ${w.toString()} rows?`,onConfirm:u,testId:"db-clear-table",children:`Clear table (${w.toString()})`}),e[36]=o,e[37]=t,e[38]=l,e[39]=u,e[40]=w,e[41]=A):A=e[41];let V;e[42]!==B||e[43]!==O||e[44]!==I||e[45]!==G||e[46]!==A||e[47]!==h||e[48]!==D||e[49]!==F?(V=T("div",{className:"flex flex-wrap items-center gap-1.5",children:[h,D,F,B,O,I,G,A]}),e[42]=B,e[43]=O,e[44]=I,e[45]=G,e[46]=A,e[47]=h,e[48]=D,e[49]=F,e[50]=V):V=e[50];let H;e[51]!==n||e[52]!==t||e[53]!==l||e[54]!==c||e[55]!==b||e[56]!==f?(H=m(wn,{columns:n,filters:l,onAskAi:c,onFiltersChange:f,onSearchChange:b,search:t}),e[51]=n,e[52]=t,e[53]=l,e[54]=c,e[55]=b,e[56]=f,e[57]=H):H=e[57];let Z;return e[58]!==V||e[59]!==H?(Z=T("div",{className:"flex flex-col gap-2","data-testid":"db-view-toggle",children:[V,H]}),e[58]=V,e[59]=H,e[60]=Z):Z=e[60],Z},Po=r=>{const e=j(101),{assistant:n,backRelations:o,browser:t,edit:l,editable:i,onAskAiFilter:a,onInspect:d,onOpenGenerateRows:s,onSaveQuery:g,page:c,preferences:u,queryBar:b,references:f}=r,p=u.maskColumns.size>0,v=n.unavailable?void 0:a;let x;e[0]!==t.addRow||e[1]!==t.bulkDelete||e[2]!==t.clearTable||e[3]!==t.columns||e[4]!==t.filter||e[5]!==t.filters||e[6]!==t.liveError||e[7]!==t.onFilterChange||e[8]!==t.onFiltersChange||e[9]!==t.showJson||e[10]!==t.showTable||e[11]!==t.total||e[12]!==t.viewMode||e[13]!==i||e[14]!==s||e[15]!==u.maskOn||e[16]!==u.onToggleMask||e[17]!==p||e[18]!==v?(x=m(Mo,{columns:t.columns,editable:i,filter:t.filter,filters:t.filters,hasMaskedColumns:p,liveError:t.liveError,maskOn:u.maskOn,onAddRow:t.addRow,onAskAiFilter:v,onBulkDelete:t.bulkDelete,onClearTable:t.clearTable,onFilterChange:t.onFilterChange,onFiltersChange:t.onFiltersChange,onGenerateRows:s,onShowJson:t.showJson,onShowTable:t.showTable,onToggleMask:u.onToggleMask,total:t.total,viewMode:t.viewMode}),e[0]=t.addRow,e[1]=t.bulkDelete,e[2]=t.clearTable,e[3]=t.columns,e[4]=t.filter,e[5]=t.filters,e[6]=t.liveError,e[7]=t.onFilterChange,e[8]=t.onFiltersChange,e[9]=t.showJson,e[10]=t.showTable,e[11]=t.total,e[12]=t.viewMode,e[13]=i,e[14]=s,e[15]=u.maskOn,e[16]=u.onToggleMask,e[17]=p,e[18]=v,e[19]=x):x=e[19];let y;e[20]!==g||e[21]!==b?(y=b!==void 0&&m(vo,{onApply:b.onApplyQuery,onCopyLink:b.onCopyLink,onDelete:b.onDeleteQuery,onSave:g,saved:b.saved}),e[20]=g,e[21]=b,e[22]=y):y=e[22];let w;e[23]!==o||e[24]!==t.onBulkDeleteSelected||e[25]!==t.selectedTable||e[26]!==t.table||e[27]!==t.viewMode||e[28]!==i||e[29]!==c||e[30]!==u.onToggleTranspose||e[31]!==u.transposed?(w=t.viewMode==="table"&&c.rows.length>0&&m(Sn,{backRelations:o.available,columns:c.columns,editable:i,enabledBackRelations:o.enabled,name:t.selectedTable??"export",onBulkDelete:t.onBulkDeleteSelected,onToggleBackRelation:o.onToggle,onToggleTranspose:u.onToggleTranspose,rows:c.rows,table:t.table.table,transposed:u.transposed}),e[23]=o,e[24]=t.onBulkDeleteSelected,e[25]=t.selectedTable,e[26]=t.table,e[27]=t.viewMode,e[28]=i,e[29]=c,e[30]=u.onToggleTranspose,e[31]=u.transposed,e[32]=w):w=e[32];let S;e[33]!==t.cancelEdit||e[34]!==t.editing||e[35]!==t.saveEdit||e[36]!==t.setEditorDocumentText||e[37]!==i||e[38]!==c?(S=i&&t.editing!==null&&m(Ro,{documentText:t.editing.docText,onCancel:t.cancelEdit,onDocumentTextChange:t.setEditorDocumentText,onSave:t.saveEdit,refs:c.refs}),e[33]=t.cancelEdit,e[34]=t.editing,e[35]=t.saveEdit,e[36]=t.setEditorDocumentText,e[37]=i,e[38]=c,e[39]=S):S=e[39];let N;e[40]!==t.committing||e[41]!==t.discardStaged||e[42]!==t.onCommitStaged||e[43]!==t.stagedChanges||e[44]!==i?(N=i&&t.stagedChanges.length>0&&m(qn,{changes:t.stagedChanges,committing:t.committing,onCommit:t.onCommitStaged,onDiscard:t.discardStaged}),e[40]=t.committing,e[41]=t.discardStaged,e[42]=t.onCommitStaged,e[43]=t.stagedChanges,e[44]=i,e[45]=N):N=e[45];let $;e[46]!==t.writeError?($=t.writeError!==null&&m("p",{className:"text-sm text-destructive","data-testid":"db-write-error",role:"alert",children:t.writeError}),e[46]=t.writeError,e[47]=$):$=e[47];let h;e[48]!==x||e[49]!==y||e[50]!==w||e[51]!==S||e[52]!==N||e[53]!==$?(h=T("div",{className:"flex shrink-0 flex-col gap-2 border-b border-border px-4 py-3",children:[x,y,w,S,N,$]}),e[48]=x,e[49]=y,e[50]=w,e[51]=S,e[52]=N,e[53]=$,e[54]=h):h=e[54];let C;e[55]!==t.viewMode||e[56]!==c?(C=t.viewMode==="table"&&c.rows.length===0&&m("div",{className:"flex flex-1 items-center justify-center p-6",children:m(mn,{description:"Rows you insert into this table will show up here.",icon:m("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:m("path",{d:"M4 5h16v14H4V5Zm0 5h16M10 10v9M4 14.5h16"})}),testId:"db-empty-rows",title:"This table is empty."})}),e[55]=t.viewMode,e[56]=c,e[57]=C):C=e[57];let D;e[58]!==t.viewMode||e[59]!==c||e[60]!==u.maskView||e[61]!==u.transposed?(D=t.viewMode==="table"&&c.rows.length>0&&u.transposed&&m(yn,{columns:c.columns,rows:ht(c.rows,u.maskView)}),e[58]=t.viewMode,e[59]=c,e[60]=u.maskView,e[61]=u.transposed,e[62]=D):D=e[62];let E;e[63]!==o||e[64]!==t.filter||e[65]!==t.onRowDelete||e[66]!==t.onRowEdit||e[67]!==t.table||e[68]!==t.viewMode||e[69]!==l||e[70]!==i||e[71]!==d||e[72]!==c||e[73]!==u.maskView||e[74]!==u.onTogglePin||e[75]!==u.pinnedColumns||e[76]!==u.transposed||e[77]!==f?(E=t.viewMode==="table"&&c.rows.length>0&&!u.transposed&&m(go,{backRelationCounts:o.counts,edit:l,editable:i,highlight:t.filter,mask:u.maskView,onDelete:t.onRowDelete,onEdit:t.onRowEdit,onInspect:d,onTogglePin:u.onTogglePin,pinnedColumns:u.pinnedColumns,refs:f,tableModel:t.table}),e[63]=o,e[64]=t.filter,e[65]=t.onRowDelete,e[66]=t.onRowEdit,e[67]=t.table,e[68]=t.viewMode,e[69]=l,e[70]=i,e[71]=d,e[72]=c,e[73]=u.maskView,e[74]=u.onTogglePin,e[75]=u.pinnedColumns,e[76]=u.transposed,e[77]=f,e[78]=E):E=e[78];let _;e[79]!==t.viewMode||e[80]!==c||e[81]!==u.maskView?(_=t.viewMode==="json"&&m("pre",{className:"min-h-0 flex-1 overflow-auto border-t border-border bg-muted/30 p-3 text-xs","data-testid":"db-json",children:JSON.stringify(ht(c.rows,u.maskView),null,2)}),e[79]=t.viewMode,e[80]=c,e[81]=u.maskView,e[82]=_):_=e[82];let R;e[83]!==t.changePageSize||e[84]!==t.goNext||e[85]!==t.goPrevious||e[86]!==t.hasNext||e[87]!==t.hasPrevious||e[88]!==t.jumpToPage||e[89]!==t.pageSize||e[90]!==t.rangeEnd||e[91]!==t.rangeStart||e[92]!==t.total?(R=m("div",{className:"flex shrink-0 items-center border-t border-border px-4 py-2",children:m(Cn,{hasNext:t.hasNext,hasPrevious:t.hasPrevious,onJumpToPage:t.jumpToPage,onNext:t.goNext,onPageSizeChange:t.changePageSize,onPrevious:t.goPrevious,pageSize:t.pageSize,prefix:"db",rangeEnd:t.rangeEnd,rangeStart:t.rangeStart,total:t.total})}),e[83]=t.changePageSize,e[84]=t.goNext,e[85]=t.goPrevious,e[86]=t.hasNext,e[87]=t.hasPrevious,e[88]=t.jumpToPage,e[89]=t.pageSize,e[90]=t.rangeEnd,e[91]=t.rangeStart,e[92]=t.total,e[93]=R):R=e[93];let k;return e[94]!==C||e[95]!==D||e[96]!==E||e[97]!==_||e[98]!==R||e[99]!==h?(k=T("div",{className:"flex min-h-0 flex-1 flex-col","data-testid":"db-page",children:[h,C,D,E,_,R]}),e[94]=C,e[95]=D,e[96]=E,e[97]=_,e[98]=R,e[99]=h,e[100]=k):k=e[100],k},Do="/__lunora/seed",et=200,Io=50,Oo=(r,e)=>{const n=[];for(const o of r)o.pk!==!0&&o.ref!==void 0&&o.type==="id"&&(e[o.ref]??[]).length===0&&n.push(o.name);return n},Fo=async r=>{const e=await fetch(Do,{body:JSON.stringify(r),headers:{"Content-Type":"application/json"},method:"POST"}),n=await e.json();return e.ok&&n.rows!==void 0?{kind:"ok",rows:n.rows}:{kind:"error",message:n.error??`seed request failed (${String(e.status)})`}},zo="rounded-md border border-border px-3 py-1.5 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50",jo="rounded-md bg-primary px-3 py-1.5 text-xs font-medium text-primary-foreground outline-none transition-colors hover:bg-primary/90 focus-visible:bg-primary/90 disabled:pointer-events-none disabled:opacity-50",Ao=({columns:r,fkPools:e,onClose:n,onInsertRows:o,table:t})=>{const l=me(),[i,a]=P(10),[d,s]=P(!1),[g,c]=P(void 0),[u,b]=P(void 0),[f,p]=P(0),v=S=>{const N=Number(S.target.value);!Number.isNaN(N)&&N>=1&&a(Math.min(N,et))},x=async()=>{c(void 0),b(void 0),p(0),s(!0);try{const S=await Fo({count:i,existingIds:e,seed:Date.now(),table:t});if(S.kind==="error"){c(S.message);return}const{rows:N}=S;if(N.length===0){c(l("No rows generated — all columns were skipped."));return}const $=await o(N);if($.error!==void 0){c($.error);return}b($.inserted),p($.conflicts);const h=Oo(r,e);h.length>0&&c(l("Inserted {count} rows. Skipped FK columns: {cols}",{cols:h.join(", "),count:$.inserted.toString()}))}finally{s(!1)}},y=()=>{se(x())},w=r.filter(S=>S.pk!==!0);return T($t,{label:l("Generate dummy rows"),onClose:n,panelTestId:"gen-rows-panel",testId:"gen-rows-overlay",variant:"dialog",children:[T("div",{className:"flex items-start justify-between",children:[T("div",{className:"flex flex-col gap-0.5",children:[m("h3",{className:"text-base text-foreground","data-testid":"gen-rows-title",children:l("Generate dummy rows")}),m("p",{className:"text-xs text-muted-foreground","data-testid":"gen-rows-desc",children:l("Seed {table} with Faker-generated rows. Existing rows are not affected.",{table:t})})]}),m("button",{className:"text-xs text-muted-foreground hover:text-foreground","data-testid":"gen-rows-close",onClick:n,type:"button",children:l("Close")})]}),T("div",{className:"flex items-center gap-2",children:[m("label",{className:"text-xs font-medium text-foreground",htmlFor:"gen-rows-count",children:l("Row count")}),m("input",{className:"w-20 rounded-md border border-border bg-background px-2 py-1 text-xs outline-none focus-visible:border-ring","data-testid":"gen-rows-count",id:"gen-rows-count",max:et,min:1,onChange:v,type:"number",value:i}),m("span",{className:"text-xs text-muted-foreground",children:l("(max {max})",{max:et.toString()})})]}),w.length>0&&T("div",{className:"flex flex-col gap-1",children:[m("p",{className:"font-mono text-[11px] tracking-wide uppercase text-muted-foreground",children:l("Columns to seed")}),m("ul",{className:"flex flex-col gap-0.5","data-testid":"gen-rows-columns",children:w.map(S=>{const N=S.ref!==void 0&&S.type==="id",$=N&&(e[S.ref??""]??[]).length===0,h=$?"rounded bg-destructive/10 px-1 text-destructive":"rounded bg-muted px-1 text-muted-foreground",C=$?`gen-rows-fk-empty-${S.name}`:`gen-rows-fk-ok-${S.name}`,D=$?l("FK: no rows in {ref} — will skip",{ref:S.ref??""}):l("→ {ref}",{ref:S.ref??""});return T("li",{className:"flex items-center gap-1.5 font-mono text-xs",children:[m("span",{className:"text-foreground",children:S.name}),T("span",{className:"text-muted-foreground",children:["(",S.type,")"]}),S.optional&&m("span",{className:"rounded bg-muted px-1 font-mono text-[10px] tracking-wide uppercase",children:"optional"}),N&&m("span",{className:h,"data-testid":C,children:D})]},S.name)})})]}),g!==void 0&&m("p",{className:"text-xs text-destructive","data-testid":"gen-rows-error",role:"alert",children:g}),u!==void 0&&g===void 0&&m("p",{className:"text-xs text-success","data-testid":"gen-rows-success",children:f>0?l("Inserted {inserted} of {total} rows — {conflicts} skipped as id conflicts.",{conflicts:f.toString(),inserted:u.toString(),total:(u+f).toString()}):l("Inserted {count} rows successfully.",{count:u.toString()})}),T("div",{className:"flex justify-end gap-2",children:[m("button",{className:zo,"data-testid":"gen-rows-cancel",onClick:n,type:"button",children:l("Cancel")}),m("button",{className:jo,"data-testid":"gen-rows-generate",disabled:d,onClick:y,type:"button",children:l(d?"Inserting…":"Generate & insert")})]})]})},Lo=ve(ee.backRelationCounts),Bo=(r,e,n,o)=>{const t=j(16),l=qe();let i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i={},t[0]=i):i=t[0];const[a,d]=P(i);let s;if(t[1]!==r||t[2]!==e){let x;t[4]!==r?(x=y=>r.has(it(y)),t[4]=r,t[5]=x):x=t[5],s=e.filter(x),t[1]=r,t[2]=e,t[3]=s}else s=t[3];const g=s;let c;t[6]!==n||t[7]!==g?(c=JSON.stringify([g,n]),t[6]=n,t[7]=g,t[8]=c):c=t[8];const u=c;let b;t[9]!==l||t[10]!==o||t[11]!==u?(b=async x=>{const[y,w]=JSON.parse(u);if(y.length===0||w.length===0){x.cancelled||d({});return}try{const S=await l.query(Lo,{ids:w,relations:y},ue(o));x.cancelled||d(Object.fromEntries(S.relations.map(Vo)))}catch{}},t[9]=l,t[10]=o,t[11]=u,t[12]=b):b=t[12];const f=b;let p,v;return t[13]!==f?(p=()=>{const x={cancelled:!1};return se(f(x)),()=>{x.cancelled=!0}},v=[f],t[13]=f,t[14]=p,t[15]=v):(p=t[14],v=t[15]),_e(p,v),a};function Vo(r){return[it(r),r.counts]}const Le=r=>{const e=r[0];return e===void 0?void 0:{column:e.id,direction:e.desc?"desc":"asc"}},Mt=r=>r==null?"":typeof r=="object"?JSON.stringify(r):String(r),St=r=>r.map(e=>({column:e.column,operator:e.operator,value:e.value===void 0?"":Mt(e.value)})),Nt=r=>r===void 0?[]:[{desc:r.direction==="desc",id:r.column}],qo=r=>[r.column,r.operator,r.value],Ae=(r,e,n,o)=>JSON.stringify([r??"",e??"",(n??[]).map(t=>qo(t)),o===void 0?null:[o.column,o.direction]]),Ct=200,Jo=20,Ko=ve(ee.readTablePage),Go=ve(ee.facetColumn),tt=ve(ee.writeRow),Ho=ve(ee.deleteRows),Wo=ve(ee.clearTable),Qo={},ct=new Set(["__doc__","__id__","_creationTime","_id","id"]),Uo=r=>{const e=r.__doc__;if(typeof e=="string")try{const o=JSON.parse(e);if(o!==null&&typeof o=="object"&&!Array.isArray(o))return o}catch{}const n={};for(const[o,t]of Object.entries(r))ct.has(o)||(n[o]=t);return n},Zo=({filters:r,offset:e,pageSize:n,search:o,sorting:t,table:l})=>({filters:Ee(r),limit:n,offset:e,orderBy:Le(t),search:o,skipCount:!0,table:l}),Xo=({filters:r,search:e,table:n})=>({filters:Ee(r),limit:1,search:e,table:n}),Yo=(r,e)=>{const n=new Map;for(const t of r?.rows??[]){const l=we(t);l!==null&&n.set(l,t)}const o=[];for(const[t,l]of Object.entries(e))for(const[i,a]of Object.entries(l))o.push({column:i,newValue:a,oldValue:n.get(t)?.[i],rowId:t});return o},er=r=>!ct.has(r),tr=({initialFilters:r,initialOrderBy:e,initialSearch:n,initialShardKey:o,onSelectTable:t,onViewChange:l,pageSize:i,resolveBackRelations:a,tableParam:d})=>{const s=qe(),[g,c]=P(i),[u,b]=P(o??""),f=d===void 0||d===""?null:d,[p,v]=P(0),[x,y]=P("table"),[w,S]=P(()=>Nt(e)),[N,$]=P(n??""),[h,C]=P(()=>St(r??[])),{clearFacets:D,facets:E,refetchFacets:_,toggleFacet:R}=kn(),[k,F]=P(null),[B,O]=P(null),I=Bn(),[G,A]=P(null),[V,H]=P(!1),[Z,ge]=P(d),[oe,re]=P(()=>Ae(o,n,r,e)),[fe,ie]=P(0),[de,ce]=P(()=>Ae(o,n,r,e)),le=d!==Z,X=Ae(o,n,r,e),be=le||!le&&X!==oe&&X!==de;if(be){ge(d),re(X),ie(z=>z+1),S(Nt(e)),$(n??"");const M=St(r??[]);C(M),b(o??""),D(),I.clear(),A(null),v(0)}else X!==oe&&re(X);const pe=be?n??"":N,Q=be?o??"":u,te=`${d??""}:${fe.toString()}`,W=ft(pe.trim(),300,te),L=ft(Q.trim(),400,te),Y=Ae(L,W,Ee(h),Le(w));Y!==de&&ce(Y);const q=Fe(ee.listTables,Qo,{live:!0,shardKey:L}),Se=q.data??null,Ne=q.error,Ce=Zo({filters:h,offset:p,pageSize:g,search:W,sorting:w,table:f??""}),ke=Xo({filters:h,search:W,table:f??""}),ae=Fe(ee.readTablePage,Ce,{enabled:f!==null,keepPreviousData:!1,live:!0,shardKey:L}),J=ae.data??null,Me=ae.error,{liveError:$e}=ae,Pe=Fe(ee.readTablePage,ke,{enabled:f!==null,live:!0,shardKey:L});_e(()=>{q.data!==void 0&&En(L)},[q.data,L]);const Ke=M=>{t?.(M)},Ge=(M,z)=>{t?.(M,{search:z})},He=async(M,z)=>{try{return(await s.query(Ko,{filters:[],limit:Jo,offset:0,search:z,table:M},ue(L))).rows.find(ne=>we(ne)===z)??null}catch{return null}},De=(M,z,ne,ye)=>Te=>s.query(Go,{column:Te,filters:Ee(ne),search:ye,table:z},ue(M)),We=M=>{R(M,f===null?null:De(L,f,h,W))},Qe=(M,z)=>{const ne=Mt(z);C(ye=>[...ye.filter(Te=>Te.column!==M),{column:M,operator:"eq",value:ne}]),v(0)},Ue=Ye(De),Ze=Ye(_),K=Ye(l);_e(()=>{f!==null&&Ze.current(Ue.current(L,f,h,W))},[L,f,h,W]),_e(()=>{f===null||K.current===void 0||Z!==d||oe!==X||K.current({filters:Ee(h),orderBy:Le(w),search:W,shard:L})},[f,d,Z,oe,X,h,w,W,L]);const U=M=>{f!==null&&v(Math.max(0,M))},he=(M,z)=>{A({column:z,rowId:M})},xe=()=>{A(null)},Ie=async()=>{if(f!==null){O(null),H(!0);try{for(const[M,z]of Object.entries(I.staged))await s.query(tt,{doc:z,id:M,op:"patch",table:f},ue(L));I.clear(),A(null),ae.refetch()}catch(M){O(M.message)}H(!1)}},Pt=()=>{I.clear(),A(null)},Dt=Yo(J,I.staged),ut=async(M,z,ne)=>{if(f===null)return;O(null);let ye;if(M!=="delete")try{ye=ne===void 0||ne.trim()===""?{}:JSON.parse(ne)}catch(Te){O(`Invalid JSON: ${Te.message}`);return}try{await s.query(tt,{doc:ye,id:z??void 0,op:M,table:f},ue(L)),F(null),ae.refetch()}catch(Te){O(Te.message)}},mt=async(M,z)=>{if(f!==null){O(null);try{let ne="cap-hit";for(let ye=0;ye<Ct;ye+=1)if(!(await s.query(M,z,ue(L))).hasMore){ne="completed";break}v(0),ae.refetch(),ne==="cap-hit"&&O(`Stopped after ${Ct.toString()} batches — rows still match this delete. Run it again to remove the rest.`)}catch(ne){O(ne.message)}}},It=M=>{S(M),v(0)},Ot=nt(()=>f===null?[]:a?.(f)??[],[a,f]),Ft=fo(J,w,It,Ot),zt={filters:Ee(h),orderBy:Le(w),search:W,shard:u,table:f??void 0},gt=Pe.data?.total??(J===null?0:p+J.rows.length),jt=p>0,At=J!==null&&p+J.rows.length<gt,Lt=J===null||J.rows.length===0?0:p+1,Bt=J===null?0:p+J.rows.length,Vt=()=>{q.refetch()},qt=()=>{y("table")},Jt=()=>{y("json")},Kt=()=>{se(mt(Ho,{filters:Ee(h),search:W,table:f}))},Gt=()=>{se(mt(Wo,{table:f}))},Ht=M=>{$(M.target.value),v(0)},Wt=M=>{C(M),v(0)},Qt=()=>{O(null);const M={};for(const z of J?.columns??[])ct.has(z)||(M[z]="");F({docText:JSON.stringify(M,null,2),id:""})},Ut=M=>{F(z=>z===null?z:{docText:M,id:z.id})},Zt=()=>{k!==null&&se(ut(k.id===""?"insert":"patch",k.id===""?null:k.id,k.docText))},Xt=()=>{F(null),O(null)},Yt=()=>{U(p-g)},en=()=>{U(p+g)},tn=M=>{U(Math.max(0,(M-1)*g))},nn=M=>{c(M),v(0)},on=(M,z)=>{O(null),F({docText:JSON.stringify(Uo(z),null,2),id:M})},rn=M=>{se(ut("delete",M))},ln=async M=>{if(!(f===null||M.length===0)){O(null);try{for(const z of M)await s.query(tt,{id:z,op:"delete",table:f},ue(L));ae.refetch()}catch(z){O(z.message)}}},an=M=>{se(ln(M))},sn=()=>{se(Ie())};return{addRow:Qt,bulkDelete:Kt,cancelCellEdit:xe,cancelEdit:Xt,changePageSize:nn,clearTable:Gt,columns:J?.columns??[],committing:V,currentView:zt,discardStaged:Pt,editableColumn:er,editing:k,editingCell:G,facetFilter:Qe,facets:E,filter:N,filters:h,goNext:en,goPrevious:Yt,hasNext:At,hasPrevious:jt,jumpToPage:tn,liveError:$e,loadTables:Vt,navigateToRef:Ge,onBulkDeleteSelected:an,onCommitStaged:sn,onFilterChange:Ht,onFiltersChange:Wt,onRowDelete:rn,onRowEdit:on,page:J,previewRef:He,pageError:Me,pageSize:g,rangeEnd:Bt,rangeStart:Lt,queryShardKey:L,saveEdit:Zt,selectedTable:f,selectTable:Ke,setEditorDocumentText:Ut,setShardKey:b,shardKey:u,showJson:Jt,showTable:qt,stage:I.stage,stagedChanges:Dt,stagedValue:I.stagedValue,startCellEdit:he,table:Ft,tables:Se,tablesError:Ne,toggleFacet:We,total:gt,viewMode:x,writeError:B}},nr=[],or=()=>{const r=j(1);let e;r[0]===Symbol.for("react.memo_cache_sentinel")?(e={},r[0]=e):e=r[0];const{data:n}=Fe(ee.maskPolicies,e);return Array.isArray(n?.columns)?n.columns:nr},rr="lunora-studio-pinned-columns",lr=r=>{const e=j(24),{columns:n,initialPins:o,selectedTable:t}=r;let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l={},e[0]=l):l=e[0];const[i,a]=kt(rr,l),d=t??"",s=i[d];let g;e[1]!==o||e[2]!==s?(g=s===void 0?new Set((o??"").split(",").filter(ar)):new Set(s),e[1]=o,e[2]=s,e[3]=g):g=e[3];const c=g;let u;e[4]!==d||e[5]!==c||e[6]!==a?(u=R=>{a(k=>{const F=k[d]??[...c],B=F.includes(R)?F.filter(O=>O!==R):[...F,R];return{...k,[d]:B}})},e[4]=d,e[5]=c,e[6]=a,e[7]=u):u=e[7];const b=u,[f,p]=P(!1);let v;e[8]===Symbol.for("react.memo_cache_sentinel")?(v=()=>{p(sr)},e[8]=v):v=e[8];const x=v,y=or(),[w,S]=P(!0);let N;e[9]===Symbol.for("react.memo_cache_sentinel")?(N=()=>{S(ir)},e[9]=N):N=e[9];const $=N;let h;if(e[10]!==n||e[11]!==y||e[12]!==t){const R=On(y,t??"");h=zn(R,n),e[10]=n,e[11]=y,e[12]=t,e[13]=h}else h=e[13];const C=h;let D;e[14]!==C||e[15]!==w?(D={columns:C,enabled:w},e[14]=C,e[15]=w,e[16]=D):D=e[16];const E=D;let _;return e[17]!==C||e[18]!==w||e[19]!==E||e[20]!==b||e[21]!==c||e[22]!==f?(_={maskColumns:C,maskOn:w,maskView:E,onToggleMask:$,onTogglePin:b,onToggleTranspose:x,pinnedColumns:c,transposed:f},e[17]=C,e[18]=w,e[19]=E,e[20]=b,e[21]=c,e[22]=f,e[23]=_):_=e[23],_};function ar(r){return r!==""}function sr(r){return!r}function ir(r){return!r}const dr=ve(ee.describeTable),cr=ve(ee.readTablePage),ur=ve(ee.importShard),mr=r=>{const e=r._id??r.id??r.__id__??"";return typeof e=="string"?e:typeof e=="number"?String(e):""},gr=r=>{const e=Object.values(r.inserted).reduce((d,s)=>d+s,0),[n]=r.errors;if(n===void 0)return{conflicts:r.conflicts,error:void 0,inserted:e};const o=r.errors.length-1,t=e+r.conflicts+r.errors.length,l=o===1?"error":"errors",i=o>0?` (+${o.toString()} more ${l})`:"",a=`Inserted ${e.toString()} of ${t.toString()} rows — row ${n.line.toString()} (${n.table}): ${n.message}${i}`;return{conflicts:r.conflicts,error:a,inserted:e}},fr=r=>{const e=qe(),[n,o]=P(!1),[t,l]=P(void 0),[i,a]=P(void 0),[d,s]=P(void 0),[g,c]=P({}),[u,b]=P(!1),[f,p]=P(void 0),v=async(x,y)=>{o(!0),l(x),a(y),s(void 0),c({}),p(void 0),b(!0);try{const w=await e.query(dr,{table:x},ue(y)),{columns:S}=w;s(S);const N={},$=S.filter(h=>h.ref!==void 0&&h.type==="id"&&h.pk!==!0);for(const h of $){if(h.ref===void 0)continue;const{ref:C}=h;if(N[C]===void 0)try{const D=await e.query(cr,{filters:[],limit:Io,offset:0,search:"",table:C},ue(y));N[C]=D.rows.flatMap(E=>mr(E)||[])}catch{N[C]=[]}}c(N)}catch(w){p(w.message)}b(!1)};return{closeDialog:()=>{o(!1),l(void 0),a(void 0),s(void 0),c({}),p(void 0)},columnMeta:d,error:f,fkPools:g,insertBatch:async(x,y)=>{if(t===void 0||i===void 0)return{conflicts:0,error:"No table selected.",inserted:0};try{const w=await e.query(ur,{rows:x.map(N=>({doc:N,table:t}))},ue(i)),S=gr(w);return S.error!==void 0||(y(),r()),S}catch(w){return{conflicts:0,error:w.message,inserted:0}}},loading:u,open:n,openDialog:(x,y)=>{se(v(x,y))},shardKey:i,table:t}},br=()=>{const r=j(6),[e,n]=P(null);let o;r[0]===Symbol.for("react.memo_cache_sentinel")?(o=()=>{n(null)},r[0]=o):o=r[0];const t=o,[l,i]=P(null);let a;r[1]===Symbol.for("react.memo_cache_sentinel")?(a=(u,b)=>{i({column:u,value:b})},r[1]=a):a=r[1];const d=a;let s;r[2]===Symbol.for("react.memo_cache_sentinel")?(s=()=>{i(null)},r[2]=s):s=r[2];const g=s;let c;return r[3]!==l||r[4]!==e?(c={closeExpandedCell:g,closeInspect:t,expandedCell:l,inspecting:e,onExpandCell:d,onInspect:n},r[3]=l,r[4]=e,r[5]=c):c=r[5],c},pr=/(?:_creationtime|(?:^|[a-z])(?:time|at))$/iu,hr=(r,e)=>typeof e=="number"&&pr.test(r),xr=r=>{const e=j(26),{column:n,onNavigate:o,target:t,value:l}=r;let i;e[0]!==o||e[1]!==t||e[2]!==l?(i=()=>{t!==void 0&&o(t,String(l))},e[0]=o,e[1]=t,e[2]=l,e[3]=i):i=e[3];const a=i;if(l==null){let g;return e[4]===Symbol.for("react.memo_cache_sentinel")?(g=m("span",{className:"italic text-muted-foreground",children:"null"}),e[4]=g):g=e[4],g}if(t!==void 0&&(typeof l=="string"||typeof l=="number")&&String(l)!==""){const g=`rd-ref-${n}`,c=`Open ${t} ${String(l)}`,u=String(l);let b;return e[5]!==a||e[6]!==g||e[7]!==c||e[8]!==u?(b=T("button",{"data-testid":g,onClick:a,title:c,type:"button",children:[u," ↗"]}),e[5]=a,e[6]=g,e[7]=c,e[8]=u,e[9]=b):b=e[9],b}if(hr(n,l)){const g=`rd-ts-${n}`;let c;e[10]!==l?(c=l.toString(),e[10]=l,e[11]=c):c=e[11];let u;e[12]!==l?(u=cn(l),e[12]=l,e[13]=u):u=e[13];let b;return e[14]!==g||e[15]!==c||e[16]!==u?(b=m("span",{"data-testid":g,title:c,children:u}),e[14]=g,e[15]=c,e[16]=u,e[17]=b):b=e[17],b}if(typeof l=="object"){let g;e[18]!==l?(g=JSON.stringify(l,null,2),e[18]=l,e[19]=g):g=e[19];let c;return e[20]!==g?(c=m("pre",{className:"m-0 overflow-auto rounded-md bg-muted/50 p-2 text-xs",children:g}),e[20]=g,e[21]=c):c=e[21],c}let d;e[22]!==l?(d=Re(l),e[22]=l,e[23]=d):d=e[23];let s;return e[24]!==d?(s=m("span",{children:d}),e[24]=d,e[25]=s):s=e[25],s},vr=r=>{const e=j(21),{columns:n,onClose:o,onNavigate:t,refs:l,row:i}=r;let a;e[0]!==o||e[1]!==t?(a=(f,p)=>{t(f,p),o()},e[0]=o,e[1]=t,e[2]=a):a=e[2];const d=a;let s;e[3]===Symbol.for("react.memo_cache_sentinel")?(s=m("h3",{className:"m-0 text-base text-foreground",children:"Row detail"}),e[3]=s):s=e[3];let g;e[4]!==o?(g=T("div",{className:"mb-3 flex items-center justify-between",children:[s,m("button",{"data-testid":"rd-close",onClick:o,type:"button",children:"Close"})]}),e[4]=o,e[5]=g):g=e[5];let c;if(e[6]!==n||e[7]!==d||e[8]!==l||e[9]!==i){let f;e[11]!==d||e[12]!==l||e[13]!==i?(f=p=>T("div",{className:"border-t border-border py-2 first:border-t-0","data-testid":`rd-field-${p}`,children:[m("dt",{className:"mb-0.5 text-xs font-semibold text-muted-foreground",children:p}),m("dd",{className:"m-0",children:m(xr,{column:p,onNavigate:d,target:l?.[p],value:i[p]})})]},p),e[11]=d,e[12]=l,e[13]=i,e[14]=f):f=e[14],c=n.map(f),e[6]=n,e[7]=d,e[8]=l,e[9]=i,e[10]=c}else c=e[10];let u;e[15]!==c?(u=m("dl",{"data-testid":"rd-fields",children:c}),e[15]=c,e[16]=u):u=e[16];let b;return e[17]!==o||e[18]!==g||e[19]!==u?(b=T($t,{label:"Row detail",onClose:o,panelTestId:"rd-panel",testId:"rd-overlay",variant:"drawer",children:[g,u]}),e[17]=o,e[18]=g,e[19]=u,e[20]=b):b=e[20],b},yr=50,wr=r=>{const e=j(8),{active:n,onPick:o,shard:t}=r;let l;e[0]!==o||e[1]!==t?(l=()=>{o(t)},e[0]=o,e[1]=t,e[2]=l):l=e[2];const i=l,a=`w-full rounded px-2 py-0.5 text-left text-xs transition-colors hover:bg-accent ${n?"bg-accent font-medium":""}`,d=`shard-explorer-item-${t}`;let s;return e[3]!==i||e[4]!==t||e[5]!==a||e[6]!==d?(s=m("button",{className:a,"data-testid":d,onClick:i,type:"button",children:t}),e[3]=i,e[4]=t,e[5]=a,e[6]=d,e[7]=s):s=e[7],s},Sr=({onFetchTables:r,onSelect:e})=>{const n=me(),[o]=P(()=>_n()),[t,l]=P(!1),[i,a]=P(void 0),[d,s]=P(void 0),[g,c]=P(!1),[u,b]=P(void 0),f=ze(0),p=()=>{l(y=>!y)},v=async y=>{e(y),a(y),s(void 0),b(void 0),c(!0),f.current+=1;const w=f.current;try{const S=await r(y);f.current===w&&s(S?.slice(0,yr))}catch(S){f.current===w&&b(S.message)}f.current===w&&c(!1)},x=y=>{se(v(y))};return o.length===0?null:T("div",{"data-testid":"shard-explorer",children:[T("button",{"aria-controls":"shard-explorer-panel","aria-expanded":t,className:"inline-flex items-center gap-1 rounded-md border border-border px-2 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent","data-testid":"shard-explorer-toggle",onClick:p,type:"button",children:[n("Shards seen"),m("span",{"aria-hidden":"true",className:`ml-0.5 transition-transform ${t?"rotate-180":""}`,children:"▾"})]}),t&&T("div",{className:"mt-1 flex flex-col gap-1 rounded-md border border-border bg-popover p-2","data-testid":"shard-explorer-panel",id:"shard-explorer-panel",children:[m("p",{className:"text-xs text-muted-foreground","data-testid":"shard-explorer-hint",children:n("Recently visited shards — click to switch")}),m("ul",{className:"flex flex-col gap-0.5","data-testid":"shard-explorer-list",children:o.map(y=>m("li",{children:m(wr,{active:i===y,onPick:x,shard:y})},y))}),i!==void 0&&T("div",{className:"mt-1 border-t border-border pt-1","data-testid":"shard-explorer-summary",children:[m("p",{className:"mb-1 text-xs font-medium text-foreground","data-testid":"shard-explorer-summary-title",children:n("{shard} tables",{shard:i})}),g&&m("p",{className:"text-xs text-muted-foreground","data-testid":"shard-explorer-loading",children:n("Loading…")}),u!==void 0&&m("p",{className:"text-xs text-destructive","data-testid":"shard-explorer-error",role:"alert",children:u}),!g&&u===void 0&&d?.length===0&&m("p",{className:"text-xs text-muted-foreground","data-testid":"shard-explorer-empty",children:n("No tables in this shard.")}),!g&&u===void 0&&d!==void 0&&d.length>0&&m("ul",{className:"flex flex-col gap-0.5","data-testid":"shard-explorer-tables",children:d.map(y=>T("li",{className:"flex items-center justify-between text-xs",children:[m("span",{"data-testid":`shard-explorer-table-${y.name}`,children:y.name}),m("span",{className:"text-muted-foreground","data-testid":`shard-explorer-rowcount-${y.name}`,children:y.rowCount})]},y.name))})]})]})]})},Nr="lunora-studio-back-relations",Cr={},kr=50,$r=[],Tr=ve(ee.listTables),Er=r=>{const e=j(10),{onFetchShardTables:n,onShardChange:o,schemaSwitch:t,shardKey:l}=r;let i;e[0]!==o||e[1]!==l?(i=m(dn,{onChange:o,testId:"db-shard-input",value:l}),e[0]=o,e[1]=l,e[2]=i):i=e[2];let a;e[3]!==n||e[4]!==o?(a=m(Sr,{onFetchTables:n,onSelect:o}),e[3]=n,e[4]=o,e[5]=a):a=e[5];let d;return e[6]!==t||e[7]!==i||e[8]!==a?(d=T("div",{className:"flex shrink-0 flex-col items-stretch gap-2 border-b border-border p-3",children:[t,i,a]}),e[6]=t,e[7]=i,e[8]=a,e[9]=d):d=e[9],d},el=({editable:r=!1,globalTableNames:e,initialFilters:n,initialOrderBy:o,initialPins:t,initialSearch:l,initialShardKey:i,onNavigateToGlobal:a,onSelectTable:d,onViewChange:s,pageSize:g=kr,queryBar:c,schemaSwitch:u,tableParam:b})=>{const f=Fe(ee.describeTables,{},{shardKey:i??""}).data?.columnsByTable??Cr,[p,v]=kt(Nr,{}),x=ot(K=>{const U=new Set(p[K]);return bt(K,f).filter(he=>U.has(it(he)))},[p,f]),y=tr({initialFilters:n,initialOrderBy:o,initialSearch:l,initialShardKey:i,onSelectTable:d,onViewChange:s,pageSize:g,resolveBackRelations:x,tableParam:b}),{cancelCellEdit:w,columns:S,currentView:N,editableColumn:$,editingCell:h,facetFilter:C,facets:D,loadTables:E,navigateToRef:_,onFiltersChange:R,page:k,pageError:F,previewRef:B,queryShardKey:O,selectedTable:I,selectTable:G,setShardKey:A,shardKey:V,stage:H,stagedValue:Z,startCellEdit:ge,tables:oe,tablesError:re,toggleFacet:fe}=y,ie=un(V),de=K=>{se((async()=>{const U=await ie.suggestFilter(K,I??"");U!==void 0&&R(U.map(he=>{const xe=he.value,Ie=typeof xe=="string"||typeof xe=="number"||typeof xe=="boolean"?String(xe):"";return{column:he.column,operator:he.operator,value:Ie}}))})())},ce=I===null?[]:bt(I,f),le=new Set(p[I??""]),X=[];for(const K of k?.rows??[]){const U=K._id??K.id;typeof U=="string"&&U!==""&&X.push(U)}const be=Bo(le,ce,X,O),pe=K=>{v(U=>{const he=I??"",xe=U[he]??[];return{...U,[he]:xe.includes(K)?xe.filter(Ie=>Ie!==K):[...xe,K]}})},Q=lr({columns:S,initialPins:t,selectedTable:I}),te=br(),{closeExpandedCell:W,closeInspect:L,expandedCell:Y,inspecting:q,onExpandCell:Se}=te,Ne=qe(),Ce=async K=>await Ne.query(Tr,{},ue(K)),ke=()=>{I!==null&&G(I)},{closeDialog:ae,columnMeta:J,fkPools:Me,insertBatch:$e,open:Pe,openDialog:Ke}=fr(ke),Ge=()=>{I!==null&&Ke(I,V)},He=K=>$e(K,ae),De=(K,U)=>{if(a!==void 0&&e?.has(K)===!0){a(K,U);return}_(K,U)},We=c?.onSaveQuery,Qe=K=>{We?.(K,N)},Ue={cancelEdit:w,editable:r,editableColumn:$,editingCell:h,onExpandCell:Se,stage:H,stagedValue:Z,startEdit:ge},Ze={columns:k?.refs,onNavigate:De,onPreview:B};return T("div",{className:"flex h-full min-w-0","data-testid":"lunora-data-browser",children:[m($n,{header:m(Er,{onFetchShardTables:Ce,onShardChange:A,schemaSwitch:u,shardKey:V}),onReload:E,onSelect:G,prefix:"db",selected:I,tables:oe??$r}),T("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:[re!==null&&m("p",{className:"shrink-0 border-b border-border px-4 py-2 text-sm text-destructive","data-testid":"db-tables-error",role:"alert",children:re}),k===null&&F===null&&m("div",{className:"flex flex-1 items-center justify-center p-6",children:m("p",{className:"text-sm text-muted-foreground",children:"Select a table to browse its rows."})}),F!==null&&m("p",{className:"shrink-0 border-b border-border px-4 py-2 text-sm text-destructive","data-testid":"db-page-error",role:"alert",children:F}),k!==null&&m(Po,{assistant:ie,backRelations:{available:ce,counts:be,enabled:le,onToggle:pe},browser:y,edit:Ue,editable:r,onAskAiFilter:de,onInspect:te.onInspect,onOpenGenerateRows:Ge,onSaveQuery:Qe,page:k,preferences:Q,queryBar:c,references:Ze})]}),k!==null&&m(Tn,{columns:S,facets:D,onFacetFilter:C,onToggleFacet:fe}),q!==null&&k!==null&&m(vr,{columns:k.columns,onClose:L,onNavigate:De,refs:k.refs,row:q}),Y!==null&&m(Nn,{column:Y.column,onClose:W,value:Y.value}),Pe&&I!==null&&J!==void 0&&m(Ao,{columns:J,fkPools:Me,onClose:ae,onInsertRows:He,table:I})]})};export{el as DataBrowser};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"react/compiler-runtime";import"@tanstack/react-router";import"react";import"./badge-BbuuAio7.js";import"./card-CIDGUN6K.js";import"./empty-state-Cg7t_8qu.js";import"./use-admin-query-QJ-ibl5u.js";import"./DEFAULT_LOCALE-BZ4NojpD.js";import"./ADMIN_FUNCTIONS-4aE59aDq.js";import"./internal-BSIsQVC6.js";import"./utils-bhneXptQ.js";import"./DEFAULT_INSIGHT_THRESHOLDS-B-hcFVoi.js";import{H as b}from"./home-panel-CeeqqV0z.js";import"react/jsx-runtime";export{b as HomePanel};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const n=(t,r,e,o,i)=>{switch(r){case"action":return t.action(e,o,i);case"mutation":return t.mutation(e,o,i);default:return t.query(e,o,i)}},s=t=>({__lunoraRef:t}),c=t=>{const r=t.trim();return r===""?{}:{shardKey:r}},l=t=>t instanceof Error?t.message:String(t),u=t=>{if(t===null||typeof t!="object"||!("code"in t))return;const{code:r}=t;return typeof r=="string"?r:void 0},f=t=>{if(t===null||typeof t!="object"||!("hint"in t))return;const{hint:r}=t;return typeof r=="string"?r:Array.isArray(r)?r.filter(e=>typeof e=="string").join(`
|
|
2
|
-
`):void 0},g=t=>{if(t===null||typeof t!="object"||!("docsUrl"in t))return;const r=t.docsUrl;if(typeof r=="string")try{const{protocol:e}=new URL(r);return e==="http:"||e==="https:"?r:void 0}catch{return}},d=t=>{if(t==null)return"";switch(typeof t){case"bigint":case"boolean":case"number":return t.toString();case"string":return t;case"symbol":return t.toString();default:return JSON.stringify(t)}},a=(t,r)=>{t.catch(e=>{})},p=t=>{if(t!==void 0&&t!=="")return t;const r=globalThis.location;return r?.origin!==void 0&&r.origin!==""?r.origin:"http://localhost:5173"},y=t=>{const r="navigator"in globalThis?globalThis.navigator.clipboard:void 0;return r===void 0?!1:(a(r.writeText(t)),!0)},h=t=>{if(t==null)return"—";if(t<1024)return`${t.toString()} B`;const r=["KB","MB","GB","TB"];let e=t/1024,o=0;for(;e>=1024&&o<r.length-1;)e/=1024,o+=1;return`${e.toFixed(1)} ${r[o]??"TB"}`},m=(t,r="")=>{if(t==null||t==="")return r;const e=new Date(t);return Number.isNaN(e.getTime())?String(t):e.toLocaleString()};export{g as a,l as b,y as c,c as d,f as e,a as f,s as g,d as h,m as i,n as j,h as k,u as l,p as r};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as R}from"./chunk-54MMVNPT.js";import{a as E}from"./chunk-SP5SBO2W.js";import"./chunk-SFDOII3B.js";import"./chunk-SMIESS7P.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as x}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as T}from"./chunk-LJIFMW67.js";import"./chunk-XXQUMVWH.js";import"./chunk-QWBRD6PX.js";import"./chunk-QLQADHFE.js";import{a as v}from"./chunk-VDW32UET.js";import{c as b}from"./chunk-SHMNA6UL.js";import"./chunk-V2U5CL3S.js";import"./chunk-XBDKZZ67.js";import{a as w}from"./chunk-XQCVZAGU.js";import{a as A,b as j,c as I,d as g,e as c,f as a}from"./chunk-MIQTKZAR.js";import{a as y,e as N}from"./chunk-UZERI5YC.js";import{d as _,q as S}from"./chunk-OG4N2XHD.js";import"./chunk-XNGYYOLS.js";import{a as m,e as M,h as G}from"./chunk-3XIESWL4.js";var e=M(G(),1);var H=["subscriptions","events"],L={},k=new Set(["active","trialing"]),U=new Set(["past_due","unpaid"]),n=m((s,t)=>{if(s[t]!==void 0)return s[t];let p=s.__doc__;if(typeof p=="string")try{let o=JSON.parse(p);if(o!==null&&typeof o=="object"&&!Array.isArray(o))return o[t]}catch{}},"s"),i=m(s=>typeof s=="string"?s:typeof s=="number"||typeof s=="bigint"||typeof s=="boolean"?String(s):"","i"),$=m(s=>k.has(s)?"default":U.has(s)?"destructive":"outline","J"),te=m(({limit:s=100})=>{let t=_(),p=E(),{data:o}=b(v.listTables,L,{live:!0}),D=o!==void 0,O=Array.isArray(o)&&H.every(r=>o.some(l=>l.name===r)),f=p.payments&&O,d=b(v.readTablePage,{filters:[],limit:s,offset:0,orderBy:[],search:"",table:"subscriptions"},{enabled:f}),h=b(v.readTablePage,{filters:[],limit:25,offset:0,orderBy:[],search:"",table:"events"},{enabled:f});R(()=>{f&&(d.refetch(),h.refetch())},!0);let u=d.data?.rows??[],B=h.data?.rows??[],C=d.error??h.error,F=d.error===null?h.errorSource:d.errorSource,P=u.filter(r=>k.has(i(n(r,"state")))).length,J=B.toSorted((r,l)=>Number(n(l,"processedAt")??0)-Number(n(r,"processedAt")??0));return D&&!f?(0,e.jsx)("div",{className:"flex flex-col gap-4","data-testid":"payments-panel",children:(0,e.jsx)(w,{description:t("No @lunora/payment tables found in this deployment. Declare the store tables (subscriptions, events, \u2026) in lunora/schema.ts and wire `payment` on createShardDO() to sync customers and subscriptions."),testId:"payments-unconfigured",title:t("No payments configured")})}):(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"payments-panel",children:[(0,e.jsx)("div",{className:"flex items-center gap-2","data-testid":"payments-summary",children:(0,e.jsxs)(y,{className:"justify-between gap-0 py-0",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Subscriptions")}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{className:"text-2xl font-semibold tabular-nums text-foreground",children:P}),(0,e.jsx)(x,{variant:"default",children:t("{count} active",{count:P})})]})]}),(0,e.jsx)("div",{className:"border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",children:t("{total} total",{total:u.length})})]})}),C===null?void 0:(0,e.jsx)(T,{error:F}),u.length===0&&!d.isLoading?(0,e.jsx)(w,{testId:"payments-empty",title:t("No subscriptions yet")}):(0,e.jsx)(y,{className:"overflow-hidden py-0",children:(0,e.jsx)(N,{className:"px-0",children:(0,e.jsxs)(A,{children:[(0,e.jsx)(j,{children:(0,e.jsxs)(g,{children:[(0,e.jsx)(c,{children:t("Provider")}),(0,e.jsx)(c,{children:t("Reference")}),(0,e.jsx)(c,{children:t("Plan")}),(0,e.jsx)(c,{children:t("State")}),(0,e.jsx)(c,{children:t("Renews")})]})}),(0,e.jsx)(I,{children:u.map(r=>{let l=i(n(r,"state"));return(0,e.jsxs)(g,{"data-testid":"payment-subscription-row",children:[(0,e.jsx)(a,{children:i(n(r,"provider"))}),(0,e.jsx)(a,{children:i(n(r,"referenceId"))}),(0,e.jsx)(a,{children:i(n(r,"priceId"))}),(0,e.jsx)(a,{children:(0,e.jsx)(x,{variant:$(l),children:l})}),(0,e.jsx)(a,{children:S(n(r,"currentPeriodEnd"))})]},i(n(r,"providerSubscriptionId")))})})]})})}),(0,e.jsxs)(y,{className:"overflow-hidden py-0",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Recent webhook events")})}),(0,e.jsx)(N,{className:"px-0",children:(0,e.jsx)(A,{children:(0,e.jsx)(I,{children:J.map(r=>(0,e.jsxs)(g,{"data-testid":"payment-event-row",children:[(0,e.jsx)(a,{children:i(n(r,"provider"))}),(0,e.jsx)(a,{className:"font-medium",children:i(n(r,"type"))}),(0,e.jsx)(a,{className:"text-muted-foreground",children:i(n(r,"providerEventId"))}),(0,e.jsx)(a,{children:S(n(r,"processedAt"))})]},i(n(r,"providerEventId"))))})})})]})]})},"re");export{te as PaymentsPanel};
|