@lunora/studio 1.0.0-alpha.115 → 1.0.0-alpha.116
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +13 -16
- package/dist/index.js +1 -1
- package/dist/mount.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 +2 -2
- 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/MetricsPanel.js +1 -1
- package/dist/packem_chunks/SchemaViewer.js +1 -1
- package/dist/packem_chunks/SettingsPanel.js +1 -1
- package/dist/packem_chunks/SqlEditorPanel.js +9 -6
- package/dist/packem_chunks/TableEditor.js +1 -1
- package/dist/packem_chunks/dashboards-panel.js +1 -1
- package/dist/packem_chunks/evals-panel.js +1 -1
- package/dist/packem_chunks/fanout-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/migrations-route.js +1 -1
- package/dist/packem_chunks/permissions-panel.js +1 -1
- package/dist/packem_chunks/sparkline.js +1 -1
- package/dist/packem_chunks/subscriptions-panel.js +1 -1
- package/dist/packem_chunks/traces-panel.js +1 -1
- package/dist/packem_shared/{ApiReferencePanel-6W_QfOlv.js → ApiReferencePanel-DXrGI45U.js} +1 -1
- package/dist/packem_shared/CommandPalette-kQLn0xlS.js +1 -0
- package/dist/packem_shared/DataBrowser-BPCr2f8V.js +4 -0
- package/dist/packem_shared/{MigrationsPanel-CW4MNUa4.js → MigrationsPanel-CF73xHke.js} +1 -1
- package/dist/packem_shared/{OpenRpcReferencePanel-Cx-qwpZW.js → OpenRpcReferencePanel-DkYBLJGb.js} +1 -1
- package/dist/packem_shared/{ShardInput-XumEzeT0.js → ShardInput-CdawpUiS.js} +1 -1
- package/dist/packem_shared/{Studio-k_HuJZYW.js → Studio-RFVDC2sC.js} +1 -1
- package/dist/packem_shared/{StudioApp-CWpwayvp.js → StudioApp-jTW-QnDo.js} +1 -1
- package/dist/packem_shared/{bar-chart-CCyO67Uf.js → bar-chart-B6gzp_f9.js} +2 -2
- package/dist/packem_shared/browser-storage-BH1MxLZs.js +1 -0
- package/dist/packem_shared/{dropdown-menu-D_ewqsUU.js → dropdown-menu-U7Tjg1Nb.js} +1 -1
- package/dist/packem_shared/grid-features-AzpmpR3Q.js +6 -0
- package/dist/packem_shared/{reference-view-DhxnzBtf.js → reference-view-CxW7paCK.js} +1 -1
- package/dist/packem_shared/{schema-diagram-CPcjPZj3.js → schema-diagram-DLhppqVE.js} +1 -1
- package/dist/packem_shared/{shard-history-QcjcMnCA.js → shard-history-DU5b3QDI.js} +1 -1
- package/dist/packem_shared/shortcuts-lH4Vaqjc.js +1 -0
- package/dist/packem_shared/{sparkline-BreIqzDO.js → sparkline-CYbJzfA1.js} +1 -1
- package/dist/packem_shared/sql-result-table-blxdNVJ0.js +1 -0
- package/dist/packem_shared/studio-BdV57x3O.js +2 -0
- package/dist/packem_shared/{trace-handoff-C0CFV2ix.js → trace-handoff-z9sy89Ci.js} +1 -1
- package/dist/packem_shared/{use-open-trace-IfIlKEWd.js → use-open-trace-ClAdPkGD.js} +1 -1
- package/dist/standalone/chunk-22664OOM.js +1 -0
- package/dist/standalone/chunk-2P6N5XES.js +1 -0
- package/dist/standalone/{chunk-INBA3473.js → chunk-2SFSTQS4.js} +1 -1
- package/dist/standalone/{chunk-LDVDE3LE.js → chunk-2WAWYLUP.js} +1 -1
- package/dist/standalone/{chunk-HLEXBOCL.js → chunk-6UN4V2HB.js} +1 -1
- package/dist/standalone/{chunk-PNLUMMXO.js → chunk-BBXNPD22.js} +1 -1
- package/dist/standalone/chunk-CU7KGPAQ.js +1 -0
- package/dist/standalone/{chunk-ZHDCWHRT.js → chunk-CYLI7GO3.js} +1 -1
- package/dist/standalone/{chunk-KOH52XKG.js → chunk-CZK4GZ5C.js} +1 -1
- package/dist/standalone/{chunk-U2KBAKZ6.js → chunk-EEIKRCWD.js} +1 -1
- package/dist/standalone/{chunk-Q2G22JHG.js → chunk-F5YULDNX.js} +1 -1
- package/dist/standalone/{chunk-2UIT2HC2.js → chunk-FKNT7GEB.js} +1 -1
- package/dist/standalone/{chunk-NSR345ID.js → chunk-I4XA3BBM.js} +1 -1
- package/dist/standalone/{chunk-2CHFHPR3.js → chunk-IZ6AVENL.js} +1 -1
- package/dist/standalone/{chunk-6ZSAMAYN.js → chunk-J7GGD2O2.js} +1 -1
- package/dist/standalone/{chunk-7IQT5M4O.js → chunk-K5XFXW6D.js} +1 -1
- package/dist/standalone/{chunk-FEEZPSMA.js → chunk-KQ6HYQCE.js} +1 -1
- package/dist/standalone/{chunk-P52BY657.js → chunk-KVSQKUWD.js} +1 -1
- package/dist/standalone/chunk-LMAI2ESY.js +9 -0
- package/dist/standalone/{chunk-UKIDHICQ.js → chunk-MDWJRPZG.js} +1 -1
- package/dist/standalone/chunk-N7WIVIP2.js +3 -0
- package/dist/standalone/chunk-P2GOC5GL.js +6 -0
- package/dist/standalone/{chunk-INLHZKCS.js → chunk-PLI4LCPS.js} +1 -1
- package/dist/standalone/{chunk-D4HJ2VM2.js → chunk-R3VDUL6F.js} +1 -1
- package/dist/standalone/chunk-RND4232Z.js +1 -0
- package/dist/standalone/chunk-S6UHG354.js +1 -0
- package/dist/standalone/{chunk-OAXOITHK.js → chunk-T7DJP5HM.js} +1 -1
- package/dist/standalone/{chunk-RVQRXKRJ.js → chunk-TNFIYZPY.js} +1 -1
- package/dist/standalone/{chunk-UCA5MYCL.js → chunk-TNVZJKGN.js} +1 -1
- package/dist/standalone/chunk-TOZK5WX3.js +1 -0
- package/dist/standalone/chunk-TPAZM36C.js +1 -0
- package/dist/standalone/{chunk-OTZRXUHF.js → chunk-TYOIBCR6.js} +1 -1
- package/dist/standalone/{chunk-AG265V66.js → chunk-VKQZAEUQ.js} +1 -1
- package/dist/standalone/chunk-VTPKVALV.js +7 -0
- package/dist/standalone/{chunk-7TFEJVX4.js → chunk-VVB7SOO7.js} +1 -1
- package/dist/standalone/{chunk-MGC6PRMV.js → chunk-XOA5TTRA.js} +1 -1
- package/dist/standalone/{chunk-IWOZGUI2.js → chunk-YMVKAXBC.js} +1 -1
- package/dist/standalone/chunk-ZHPDAJBM.js +1 -0
- package/dist/standalone/studio.js +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/dist/packem_shared/CommandPalette-BAiOc1hT.js +0 -1
- package/dist/packem_shared/DataBrowser-CrkvQAMf.js +0 -1
- package/dist/packem_shared/browser-storage-Br_bLeBt.js +0 -1
- package/dist/packem_shared/grid-features-3wfN2PeE.js +0 -6
- package/dist/packem_shared/result-chart-Q-gVLi4_.js +0 -1
- package/dist/packem_shared/studio-BFvT56qK.js +0 -2
- package/dist/standalone/chunk-2Q7HAFRK.js +0 -1
- package/dist/standalone/chunk-44FJEOAY.js +0 -1
- package/dist/standalone/chunk-EQSVW6LZ.js +0 -3
- package/dist/standalone/chunk-GKHUQDVI.js +0 -1
- package/dist/standalone/chunk-H3M57MCN.js +0 -1
- package/dist/standalone/chunk-HLHO5AHK.js +0 -4
- package/dist/standalone/chunk-U7J3LXJ4.js +0 -6
- package/dist/standalone/chunk-UJXKS27L.js +0 -1
- package/dist/standalone/chunk-VNTEQQPP.js +0 -1
- package/dist/standalone/chunk-YYFHDYYT.js +0 -1
- package/dist/standalone/chunk-ZIHYXKQJ.js +0 -6
- /package/dist/standalone/{chunk-AECDJKXB.js → chunk-O2VDNK4B.js} +0 -0
- /package/dist/standalone/{chunk-APRVSWBH.js → chunk-XL2OT5WB.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as Ne}from"react/compiler-runtime";import{ShardInput as We}from"../packem_shared/ShardInput-XumEzeT0.js";import{S as Re,T as Pe}from"../packem_shared/storage-tier-C2mKwYRj.js";import{B as Fe}from"../packem_shared/badge-cAk9Di1Q.js";import{b as ze,d as qe,c as Be,a as De,C as je}from"../packem_shared/card-BGlQzQY-.js";import{E as Qe}from"../packem_shared/empty-state-B939z6K2.js";import{I as ke}from"../packem_shared/input-CY5W3wzv.js";import{useT as Le}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.js";import{c as Oe,d as Ae,b as $e,f as be}from"../packem_shared/internal-7bgd8inO.js";import{c as Je}from"../packem_shared/utils-bhneXptQ.js";import{useLunora as Ze}from"@lunora/react";import{useState as E,useEffect as Ge,useRef as et}from"react";import{u as tt}from"../packem_shared/use-shard-key-BsP3o5wT.js";import{ADMIN_FUNCTIONS as Me}from"../packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js";import{r as lt}from"../packem_shared/shard-history-QcjcMnCA.js";import{S as st}from"../packem_shared/schema-diagram-CPcjPZj3.js";import{useNavigate as at}from"@tanstack/react-router";import{B as ge}from"../packem_shared/button-BOPLD1un.js";import{L as _e}from"../packem_shared/label-BOUo-DP0.js";import{jsx as l,jsxs as p,Fragment as Ke}from"react/jsx-runtime";const nt=Oe(Me.listTables),ot=Oe(Me.listTableIndexes),it=Oe(Me.readTablePage),rt=Oe(Me.describeTables),dt={},Ue=[],ct=n=>{const e=Ne(74),{initialShardKey:m,initialTable:a}=n,t=Ze(),[s,c]=E("graph"),{queryShardKey:d,setShardKey:r,shardKey:b}=tt(m),[o,f]=E(""),[i,v]=E(null),[h,G]=E(null);let w;e[0]===Symbol.for("react.memo_cache_sentinel")?(w={},e[0]=w):w=e[0];const[B,y]=E(w);let z;e[1]===Symbol.for("react.memo_cache_sentinel")?(z={},e[1]=z):z=e[1];const[F,D]=E(z),[S,C]=E(null);let A;e[2]===Symbol.for("react.memo_cache_sentinel")?(A={},e[2]=A):A=e[2];const[L,me]=E(A);let W;e[3]===Symbol.for("react.memo_cache_sentinel")?(W={},e[3]=W):W=e[3];const[I,q]=E(W),[_,ue]=E(null),[j,ie]=E(null);let Q;e[4]===Symbol.for("react.memo_cache_sentinel")?(Q={},e[4]=Q):Q=e[4];const[Y,xe]=E(Q),[H,re]=E(null);let ve;e[5]!==t?(ve=async u=>{G(null);try{const N=await t.query(nt,{},Ae(u));lt(u),v(N),y({}),D({}),C(null),me(x=>Object.fromEntries(Object.entries(x).filter(P=>{const[k]=P;return k!==u}))),q(x=>Object.fromEntries(Object.entries(x).filter(P=>{const[k]=P;return k!==u})))}catch(N){const x=N;v(null),G($e(x))}},e[5]=t,e[6]=ve):ve=e[6];const O=ve;let Z;e[7]!==t?(Z=async()=>{ie(null);try{ue(await t.listGlobalTables())}catch(u){const N=u;ue(null),ie($e(N))}},e[7]=t,e[8]=Z):Z=e[8];const ee=Z;let de,R;e[9]!==d||e[10]!==O||e[11]!==ee?(de=()=>{be(O(d)),be(ee())},R=[O,ee,d],e[9]=d,e[10]=O,e[11]=ee,e[12]=de,e[13]=R):(de=e[12],R=e[13]),Ge(de,R);let te;e[14]!==t||e[15]!==B||e[16]!==S||e[17]!==d?(te=async u=>{if(S===u){C(null);return}C(u);const N=`${d}:${u}`;if(B[N]!==void 0)return;const[x,P]=await Promise.allSettled([t.query(it,{limit:1,offset:0,table:u},Ae(d)),t.query(ot,{table:u},Ae(d))]);x.status==="fulfilled"?y(k=>({...k,[N]:x.value.columns})):G($e(x.reason)),P.status==="fulfilled"&&D(k=>({...k,[N]:P.value.indexes}))},e[14]=t,e[15]=B,e[16]=S,e[17]=d,e[18]=te):te=e[18];const M=te;let ye;e[19]!==t||e[20]!==Y||e[21]!==H?(ye=async u=>{if(H===u){re(null);return}if(re(u),Y[u]===void 0)try{const N=await t.readGlobalTablePage({limit:1,offset:0,table:u});xe(x=>({...x,[u]:N.columns}))}catch(N){ie($e(N))}},e[19]=t,e[20]=Y,e[21]=H,e[22]=ye):ye=e[22];const ce=ye,fe=et(void 0);let K,X;e[23]!==a||e[24]!==i||e[25]!==M?(K=()=>{a===void 0||i===null||fe.current===a||i.some(u=>u.name===a)&&(fe.current=a,be(M(a)))},X=[a,i,M],e[23]=a,e[24]=i,e[25]=M,e[26]=K,e[27]=X):(K=e[26],X=e[27]),Ge(K,X);let U;e[28]!==t?(U=async(u,N,x)=>{const[P,k]=await Promise.all([Promise.allSettled([t.query(rt,{tables:[...N,...x]},Ae(u))]),Promise.all(x.map(async T=>{const pe=await Promise.allSettled([t.readGlobalTablePage({limit:1,offset:0,table:T})]),Ie=pe[0].status==="fulfilled"?pe[0].value:void 0;return{columns:Ie?.columns??[],refs:Ie?.refs??{},table:T}}))]),Te=P[0].status==="fulfilled"?P[0].value?.columnsByTable??{}:{},Se=P[0].status==="rejected",we=new Map(k.map(mt)),Ee=[...N,...x].map(T=>{const pe=Te[T]??[];return[T,pe.length>0?pe:we.get(T)??[]]});me(T=>({...T,[u]:Object.fromEntries(Ee)})),q(T=>({...T,[u]:Se}))},e[28]=t,e[29]=U):U=e[29];const le=U;let V,se;e[30]!==j||e[31]!==_||e[32]!==le||e[33]!==d||e[34]!==L||e[35]!==i||e[36]!==s?(V=()=>{s!=="graph"||i===null||_===null&&j===null||L[d]!==void 0||be(le(d,i.map(ut),(_??[]).map(ft)))},se=[s,i,_,j,d,L,le],e[30]=j,e[31]=_,e[32]=le,e[33]=d,e[34]=L,e[35]=i,e[36]=s,e[37]=V,e[38]=se):(V=e[37],se=e[38]),Ge(V,se);const $=L[d]??dt;let ae;if(e[39]!==$||e[40]!==_||e[41]!==i){let u;e[43]!==$?(u=k=>({columns:$[k.name]??Ue,name:k.name,tier:"shard"}),e[43]=$,e[44]=u):u=e[44];const N=(i??[]).map(u);let x;e[45]!==$?(x=k=>({columns:$[k.name]??Ue,name:k.name,tier:"global"}),e[45]=$,e[46]=x):x=e[46];const P=(_??[]).map(x);ae=[...N,...P],e[39]=$,e[40]=_,e[41]=i,e[42]=ae}else ae=e[42];const ne=ae;let g;if(e[47]!==o||e[48]!==i){const u=o.trim().toLowerCase();g=(i??[]).filter(N=>N.name.toLowerCase().includes(u)),e[47]=o,e[48]=i,e[49]=g}else g=e[49];const oe=g;let J;if(e[50]!==_||e[51]!==o){const u=o.trim().toLowerCase();J=(_??[]).filter(N=>N.name.toLowerCase().includes(u)),e[50]=_,e[51]=o,e[52]=J}else J=e[52];const Ce=J;let he;return e[53]!==B||e[54]!==ne||e[55]!==h||e[56]!==S||e[57]!==Ce||e[58]!==oe||e[59]!==Y||e[60]!==j||e[61]!==H||e[62]!==_||e[63]!==F||e[64]!==O||e[65]!==r||e[66]!==I||e[67]!==b||e[68]!==o||e[69]!==i||e[70]!==M||e[71]!==ce||e[72]!==s?(he={columns:B,diagramTables:ne,error:h,expanded:S,filteredGlobalTables:Ce,filteredTables:oe,globalColumns:Y,globalError:j,globalExpanded:H,globalTables:_,indexes:F,refresh:O,setShardKey:r,setTableFilter:f,setView:c,shardColumnsError:I,shardKey:b,tableFilter:o,tables:i,toggle:M,toggleGlobal:ce,view:s},e[53]=B,e[54]=ne,e[55]=h,e[56]=S,e[57]=Ce,e[58]=oe,e[59]=Y,e[60]=j,e[61]=H,e[62]=_,e[63]=F,e[64]=O,e[65]=r,e[66]=I,e[67]=b,e[68]=o,e[69]=i,e[70]=M,e[71]=ce,e[72]=s,e[73]=he):he=e[73],he};function mt(n){const{columns:e,refs:m,table:a}=n;return[a,e.map(t=>{const s=m[t];return s===void 0?{name:t,optional:!1,type:""}:{name:t,optional:!1,ref:s,type:"id"}})]}function ut(n){return n.name}function ft(n){return n.name}const ht="/__lunora/schema-edit",pt=async n=>{const e=await fetch(ht,{body:JSON.stringify(n),headers:{"Content-Type":"application/json","X-Lunora-Studio":"1"},method:"POST"}),m=await e.json();return m.needsMigration===!0?{kind:"needs-migration",message:m.message??"This edit needs a migration."}:e.ok&&m.tables!==void 0?{diagnostics:m.diagnostics??[],kind:"ok",tables:m.tables}:{kind:"error",message:m.error??`schema edit failed (${String(e.status)})`}},gt=n=>{const e=Ne(32),{hasTables:m,mode:a,onAddColumn:t,onAddIndex:s,onAddTable:c,onDestructive:d}=n,r=Le(),b=a==="addTable"?"default":"outline";let o;e[0]!==r?(o=r("Add table"),e[0]=r,e[1]=o):o=e[1];let f;e[2]!==c||e[3]!==b||e[4]!==o?(f=l(ge,{"data-testid":"sc-editor-add-table",onClick:c,size:"xs",type:"button",variant:b,children:o}),e[2]=c,e[3]=b,e[4]=o,e[5]=f):f=e[5];const i=!m,v=a==="addColumn"?"default":"outline";let h;e[6]!==r?(h=r("Add column"),e[6]=r,e[7]=h):h=e[7];let G;e[8]!==t||e[9]!==i||e[10]!==v||e[11]!==h?(G=l(ge,{"data-testid":"sc-editor-add-column",disabled:i,onClick:t,size:"xs",type:"button",variant:v,children:h}),e[8]=t,e[9]=i,e[10]=v,e[11]=h,e[12]=G):G=e[12];const w=!m,B=a==="addIndex"?"default":"outline";let y;e[13]!==r?(y=r("Add index"),e[13]=r,e[14]=y):y=e[14];let z;e[15]!==s||e[16]!==y||e[17]!==w||e[18]!==B?(z=l(ge,{"data-testid":"sc-editor-add-index",disabled:w,onClick:s,size:"xs",type:"button",variant:B,children:y}),e[15]=s,e[16]=y,e[17]=w,e[18]=B,e[19]=z):z=e[19];const F=!m,D=a==="destructive"?"default":"ghost";let S;e[20]!==r?(S=r("Rename / drop / change type…"),e[20]=r,e[21]=S):S=e[21];let C;e[22]!==d||e[23]!==F||e[24]!==D||e[25]!==S?(C=l(ge,{"data-testid":"sc-editor-destructive",disabled:F,onClick:d,size:"xs",type:"button",variant:D,children:S}),e[22]=d,e[23]=F,e[24]=D,e[25]=S,e[26]=C):C=e[26];let A;return e[27]!==z||e[28]!==C||e[29]!==f||e[30]!==G?(A=p("div",{className:"flex flex-wrap gap-2",children:[f,G,z,C]}),e[27]=z,e[28]=C,e[29]=f,e[30]=G,e[31]=A):A=e[31],A},bt=n=>{const e=Ne(28),{onOpenMigrations:m,result:a}=n,t=Le();if(a===null){let o;return e[0]===Symbol.for("react.memo_cache_sentinel")?(o=l(Ke,{}),e[0]=o):o=e[0],o}if(a.kind==="error"){let o;return e[1]!==a.message?(o=l("p",{className:"mt-3 text-sm text-destructive","data-testid":"sc-editor-error",role:"alert",children:a.message}),e[1]=a.message,e[2]=o):o=e[2],o}if(a.kind==="needs-migration"){let o;e[3]!==a.message||e[4]!==t?(o=a.message===""?t("This edit changes stored data and must go through a migration. Review the migration before applying."):a.message,e[3]=a.message,e[4]=t,e[5]=o):o=e[5];let f;e[6]!==o?(f=l("p",{className:"text-sm text-warning",role:"alert",children:o}),e[6]=o,e[7]=f):f=e[7];let i;e[8]!==t?(i=t("Open Migrations"),e[8]=t,e[9]=i):i=e[9];let v;e[10]!==m||e[11]!==i?(v=l(ge,{className:"self-start","data-testid":"sc-editor-open-migrations",onClick:m,size:"xs",type:"button",variant:"outline",children:i}),e[10]=m,e[11]=i,e[12]=v):v=e[12];let h;return e[13]!==f||e[14]!==v?(h=p("div",{className:"mt-3 flex flex-col gap-2","data-testid":"sc-editor-needs-migration",children:[f,v]}),e[13]=f,e[14]=v,e[15]=h):h=e[15],h}if(a.diagnostics.length===0){let o;return e[16]===Symbol.for("react.memo_cache_sentinel")?(o=l(Ke,{}),e[16]=o):o=e[16],o}let s;e[17]!==t?(s=t("Codegen reported diagnostics:"),e[17]=t,e[18]=s):s=e[18];let c;e[19]!==s?(c=l("p",{className:"text-sm text-destructive",role:"alert",children:s}),e[19]=s,e[20]=c):c=e[20];let d;e[21]!==a.diagnostics?(d=a.diagnostics.map(xt),e[21]=a.diagnostics,e[22]=d):d=e[22];let r;e[23]!==d?(r=l("ul",{className:"flex flex-col gap-0.5",children:d}),e[23]=d,e[24]=r):r=e[24];let b;return e[25]!==c||e[26]!==r?(b=p("div",{className:"mt-3 flex flex-col gap-1","data-testid":"sc-editor-diagnostics",children:[c,r]}),e[25]=c,e[26]=r,e[27]=b):b=e[27],b};function xt(n){return l("li",{className:"font-mono text-[11px] text-destructive",children:n},n)}const vt=[{label:"string",validator:"v.string()"},{label:"number",validator:"v.number()"},{label:"boolean",validator:"v.boolean()"},{label:"bigint",validator:"v.int64()"},{label:"bytes",validator:"v.bytes()"},{label:"any",validator:"v.any()"}],yt="v.string()",Ct=n=>n.split(",").map(e=>e.trim()).filter(e=>e!==""),Nt=n=>{const e=Ne(83),{onApplied:m,tableNames:a}=n,t=Le(),s=at(),[c,d]=E(null),[r,b]=E(!1),[o,f]=E(null),[i,v]=E(""),[h,G]=E(""),[w,B]=E(yt),[y,z]=E(a[0]??""),[F,D]=E(""),[S,C]=E(""),[A,L]=E(!1);let me;e[0]===Symbol.for("react.memo_cache_sentinel")?(me=()=>{d(null),v(""),G(""),D(""),C(""),L(!1)},e[0]=me):me=e[0];const W=me;let I;e[1]!==m?(I=async T=>{b(!0),f(null);try{const pe=await pt(T);f(pe),pe.kind==="ok"&&(m(pe.tables),W())}catch(pe){const Ie=pe;f({kind:"error",message:Ie instanceof Error?Ie.message:String(Ie)})}b(!1)},e[1]=m,e[2]=I):I=e[2];const q=I;let _;e[3]!==q||e[4]!==i?(_=()=>{be(q({kind:"addTable",table:i.trim()}))},e[3]=q,e[4]=i,e[5]=_):_=e[5];const ue=_;let j;e[6]!==h||e[7]!==q||e[8]!==y||e[9]!==w?(j=()=>{be(q({column:h.trim(),kind:"addOptionalColumn",table:y,validator:w}))},e[6]=h,e[7]=q,e[8]=y,e[9]=w,e[10]=j):j=e[10];const ie=j;let Q;e[11]!==S||e[12]!==F||e[13]!==q||e[14]!==y||e[15]!==A?(Q=()=>{be(q({fields:Ct(S),kind:"addIndex",name:F.trim(),table:y,unique:A}))},e[11]=S,e[12]=F,e[13]=q,e[14]=y,e[15]=A,e[16]=Q):Q=e[16];const Y=Q;let xe;e[17]===Symbol.for("react.memo_cache_sentinel")?(xe=()=>{f(null),d("addTable")},e[17]=xe):xe=e[17];const H=xe;let re;e[18]===Symbol.for("react.memo_cache_sentinel")?(re=()=>{f(null),d("addColumn")},e[18]=re):re=e[18];const ve=re;let O;e[19]===Symbol.for("react.memo_cache_sentinel")?(O=()=>{f(null),d("addIndex")},e[19]=O):O=e[19];const Z=O;let ee;e[20]!==t?(ee=()=>{d("destructive"),f({kind:"needs-migration",message:t("This edit changes stored data and must go through a migration. Review the migration before applying.")})},e[20]=t,e[21]=ee):ee=e[21];const de=ee;let R;e[22]===Symbol.for("react.memo_cache_sentinel")?(R=T=>{v(T.target.value)},e[22]=R):R=e[22];const te=R;let M;e[23]===Symbol.for("react.memo_cache_sentinel")?(M=T=>{G(T.target.value)},e[23]=M):M=e[23];const ye=M;let ce;e[24]===Symbol.for("react.memo_cache_sentinel")?(ce=T=>{B(T.target.value)},e[24]=ce):ce=e[24];const fe=ce;let K;e[25]===Symbol.for("react.memo_cache_sentinel")?(K=T=>{z(T.target.value)},e[25]=K):K=e[25];const X=K;let U;e[26]===Symbol.for("react.memo_cache_sentinel")?(U=T=>{D(T.target.value)},e[26]=U):U=e[26];const le=U;let V;e[27]===Symbol.for("react.memo_cache_sentinel")?(V=T=>{C(T.target.value)},e[27]=V):V=e[27];const se=V;let $;e[28]===Symbol.for("react.memo_cache_sentinel")?($=T=>{L(T.target.checked)},e[28]=$):$=e[28];const ae=$;let ne;e[29]!==s?(ne=()=>{be(s({to:"/migrations"}))},e[29]=s,e[30]=ne):ne=e[30];const g=ne;let oe;e[31]!==t?(oe=t("Edit schema"),e[31]=t,e[32]=oe):oe=e[32];let J;e[33]!==oe?(J=l(ze,{children:oe}),e[33]=oe,e[34]=J):J=e[34];let Ce;e[35]!==t?(Ce=t("Adds a table, column, or index to lunora/schema.ts and reruns codegen."),e[35]=t,e[36]=Ce):Ce=e[36];let he;e[37]!==Ce?(he=l(qe,{children:Ce}),e[37]=Ce,e[38]=he):he=e[38];let u;e[39]!==J||e[40]!==he?(u=p(Be,{children:[J,he]}),e[39]=J,e[40]=he,e[41]=u):u=e[41];const N=a.length>0;let x;e[42]!==c||e[43]!==de||e[44]!==N?(x=l(gt,{hasTables:N,mode:c,onAddColumn:ve,onAddIndex:Z,onAddTable:H,onDestructive:de}),e[42]=c,e[43]=de,e[44]=N,e[45]=x):x=e[45];let P;e[46]!==r||e[47]!==c||e[48]!==ue||e[49]!==t||e[50]!==i?(P=c==="addTable"&&p("div",{className:"mt-3 flex flex-wrap items-end gap-2","data-testid":"sc-editor-table-form",children:[p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-table-name",children:t("Table name")}),l(ke,{"data-testid":"sc-editor-table-name",id:"sc-editor-table-name",onChange:te,value:i})]}),l(ge,{"data-testid":"sc-editor-table-apply",disabled:r||i.trim()==="",onClick:ue,size:"xs",type:"button",children:t(r?"Applying…":"Apply")}),l(ge,{onClick:W,size:"xs",type:"button",variant:"ghost",children:t("Cancel")})]}),e[46]=r,e[47]=c,e[48]=ue,e[49]=t,e[50]=i,e[51]=P):P=e[51];let k;e[52]!==r||e[53]!==h||e[54]!==c||e[55]!==ie||e[56]!==t||e[57]!==a||e[58]!==y||e[59]!==w?(k=c==="addColumn"&&p("div",{className:"mt-3 flex flex-wrap items-end gap-2","data-testid":"sc-editor-column-form",children:[p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-column-table",children:t("Table name")}),l("select",{className:"h-8 rounded-md border border-input bg-transparent px-2 text-xs","data-testid":"sc-editor-column-table",id:"sc-editor-column-table",onChange:X,value:y,children:a.map(Tt)})]}),p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-column-name",children:t("Column name")}),l(ke,{"data-testid":"sc-editor-column-name",id:"sc-editor-column-name",onChange:ye,value:h})]}),p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-column-type",children:t("Column type")}),l("select",{className:"h-8 rounded-md border border-input bg-transparent px-2 text-xs","data-testid":"sc-editor-column-type",id:"sc-editor-column-type",onChange:fe,value:w,children:vt.map(St)})]}),l("span",{className:"text-[11px] text-muted-foreground",children:t("Optional")}),l(ge,{"data-testid":"sc-editor-column-apply",disabled:r||h.trim()===""||y==="",onClick:ie,size:"xs",type:"button",children:t(r?"Applying…":"Apply")}),l(ge,{onClick:W,size:"xs",type:"button",variant:"ghost",children:t("Cancel")})]}),e[52]=r,e[53]=h,e[54]=c,e[55]=ie,e[56]=t,e[57]=a,e[58]=y,e[59]=w,e[60]=k):k=e[60];let Te;e[61]!==r||e[62]!==S||e[63]!==F||e[64]!==c||e[65]!==Y||e[66]!==t||e[67]!==a||e[68]!==y||e[69]!==A?(Te=c==="addIndex"&&p("div",{className:"mt-3 flex flex-wrap items-end gap-2","data-testid":"sc-editor-index-form",children:[p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-index-table",children:t("Table name")}),l("select",{className:"h-8 rounded-md border border-input bg-transparent px-2 text-xs","data-testid":"sc-editor-index-table",id:"sc-editor-index-table",onChange:X,value:y,children:a.map(wt)})]}),p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-index-name",children:t("Index name")}),l(ke,{"data-testid":"sc-editor-index-name",id:"sc-editor-index-name",onChange:le,value:F})]}),p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-index-fields",children:t("Index fields (comma-separated)")}),l(ke,{"data-testid":"sc-editor-index-fields",id:"sc-editor-index-fields",onChange:se,value:S})]}),p(_e,{className:"flex items-center gap-1 text-xs",htmlFor:"sc-editor-index-unique",children:[l("input",{checked:A,"data-testid":"sc-editor-index-unique",id:"sc-editor-index-unique",onChange:ae,type:"checkbox"}),l("span",{className:"text-muted-foreground",children:t("Unique")})]}),l(ge,{"data-testid":"sc-editor-index-apply",disabled:r||F.trim()===""||S.trim()==="",onClick:Y,size:"xs",type:"button",children:t(r?"Applying…":"Apply")}),l(ge,{onClick:W,size:"xs",type:"button",variant:"ghost",children:t("Cancel")})]}),e[61]=r,e[62]=S,e[63]=F,e[64]=c,e[65]=Y,e[66]=t,e[67]=a,e[68]=y,e[69]=A,e[70]=Te):Te=e[70];let Se;e[71]!==g||e[72]!==o?(Se=l(bt,{onOpenMigrations:g,result:o}),e[71]=g,e[72]=o,e[73]=Se):Se=e[73];let we;e[74]!==x||e[75]!==P||e[76]!==k||e[77]!==Te||e[78]!==Se?(we=p(De,{children:[x,P,k,Te,Se]}),e[74]=x,e[75]=P,e[76]=k,e[77]=Te,e[78]=Se,e[79]=we):we=e[79];let Ee;return e[80]!==u||e[81]!==we?(Ee=p(je,{"data-testid":"sc-editor",size:"sm",children:[u,we]}),e[80]=u,e[81]=we,e[82]=Ee):Ee=e[82],Ee};function Tt(n){return l("option",{value:n,children:n},n)}function St(n){return l("option",{value:n.validator,children:n.label},n.validator)}function wt(n){return l("option",{value:n,children:n},n)}const Ve=[],_t=n=>{const e=Ne(5),{open:m}=n,a=m&&"rotate-90";let t;e[0]!==a?(t=Je("size-3.5 shrink-0 text-muted-foreground transition-transform duration-150",a),e[0]=a,e[1]=t):t=e[1];let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=l("path",{d:"m9 6 6 6-6 6"}),e[2]=s):s=e[2];let c;return e[3]!==t?(c=l("svg",{"aria-hidden":"true",className:t,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.8,viewBox:"0 0 24 24",children:s}),e[3]=t,e[4]=c):c=e[4],c},Ye=n=>{const e=Ne(20),{children:m,expanded:a,name:t,onToggle:s,rowCount:c,rowTestId:d,toggleTestId:r}=n;let b;e[0]!==a?(b=l(_t,{open:a}),e[0]=a,e[1]=b):b=e[1];let o;e[2]!==t?(o=l("span",{className:"truncate font-mono text-xs text-foreground",title:t,children:t}),e[2]=t,e[3]=o):o=e[3];let f;e[4]!==c?(f=p("span",{className:"ms-auto shrink-0 text-xs text-muted-foreground tabular-nums",children:["(",c,")"]}),e[4]=c,e[5]=f):f=e[5];let i;e[6]!==a||e[7]!==s||e[8]!==b||e[9]!==o||e[10]!==f||e[11]!==r?(i=p("button",{"aria-expanded":a,className:"flex w-full items-center gap-2 px-3 py-2 text-start transition-colors hover:bg-muted/50 aria-expanded:bg-muted/40","data-testid":r,onClick:s,type:"button",children:[b,o," ",f]}),e[6]=a,e[7]=s,e[8]=b,e[9]=o,e[10]=f,e[11]=r,e[12]=i):i=e[12];let v;e[13]!==m||e[14]!==a?(v=a&&l("div",{className:"px-3 pb-3 ps-8",children:m}),e[13]=m,e[14]=a,e[15]=v):v=e[15];let h;return e[16]!==d||e[17]!==i||e[18]!==v?(h=p("li",{className:"border-t border-border/60 first:border-t-0","data-testid":d,children:[i,v]}),e[16]=d,e[17]=i,e[18]=v,e[19]=h):h=e[19],h},He=n=>{const e=Ne(5),{columns:m,testId:a}=n;let t;e[0]!==m?(t=m.map(It),e[0]=m,e[1]=t):t=e[1];let s;return e[2]!==t||e[3]!==a?(s=l("ul",{className:"flex flex-wrap gap-1.5 pt-1","data-testid":a,children:t}),e[2]=t,e[3]=a,e[4]=s):s=e[4],s},Et=n=>{const e=Ne(10),{heading:m,indexes:a,testId:t}=n;let s;e[0]!==m?(s=l("p",{className:"mb-1.5 font-mono text-[10px] tracking-wide text-muted-foreground uppercase",children:m}),e[0]=m,e[1]=s):s=e[1];let c;e[2]!==a?(c=a.map(kt),e[2]=a,e[3]=c):c=e[3];let d;e[4]!==c||e[5]!==t?(d=l("ul",{className:"flex flex-col gap-1","data-testid":t,children:c}),e[4]=c,e[5]=t,e[6]=d):d=e[6];let r;return e[7]!==s||e[8]!==d?(r=p("div",{className:"pt-3",children:[s,d]}),e[7]=s,e[8]=d,e[9]=r):r=e[9],r},Xe=n=>Je("border-b-2 px-3 py-2 font-mono text-[11px] tracking-widest uppercase outline-none transition-colors",n?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),Wt=n=>{const e=Ne(85),{initialShardKey:m,initialTable:a,schemaEditable:t}=n,s=Le();let c;e[0]!==m||e[1]!==a?(c={initialShardKey:m,initialTable:a},e[0]=m,e[1]=a,e[2]=c):c=e[2];const{columns:d,diagramTables:r,error:b,expanded:o,filteredGlobalTables:f,filteredTables:i,globalColumns:v,globalError:h,globalExpanded:G,globalTables:w,indexes:B,refresh:y,setShardKey:z,setTableFilter:F,setView:D,shardColumnsError:S,shardKey:C,tableFilter:A,tables:L,toggle:me,toggleGlobal:W,view:I}=ct(c);let q;e[3]!==D?(q=()=>{D("list")},e[3]=D,e[4]=q):q=e[4];const _=q;let ue;e[5]!==D?(ue=()=>{D("graph")},e[5]=D,e[6]=ue):ue=e[6];const j=ue;let ie;e[7]!==F?(ie=g=>{F(g.target.value)},e[7]=F,e[8]=ie):ie=e[8];const Q=ie;let Y;e[9]!==y||e[10]!==C?(Y=g=>{be(y(C))},e[9]=y,e[10]=C,e[11]=Y):Y=e[11];const xe=Y;let H;e[12]!==L?(H=L??[],e[12]=L,e[13]=H):H=e[13];let re;e[14]!==H?(re=H.map(At),e[14]=H,e[15]=re):re=e[15];const ve=re;let O;e[16]!==z||e[17]!==C?(O=l(We,{onChange:z,testId:"sc-shard-input",value:C}),e[16]=z,e[17]=C,e[18]=O):O=e[18];let Z;e[19]!==s?(Z=s("Schema view"),e[19]=s,e[20]=Z):Z=e[20];const ee=I==="graph",de=I==="graph";let R;e[21]!==de?(R=Xe(de),e[21]=de,e[22]=R):R=e[22];let te;e[23]!==s?(te=s("Graph"),e[23]=s,e[24]=te):te=e[24];let M;e[25]!==j||e[26]!==ee||e[27]!==R||e[28]!==te?(M=l("button",{"aria-selected":ee,className:R,"data-testid":"sc-view-graph",onClick:j,role:"tab",type:"button",children:te}),e[25]=j,e[26]=ee,e[27]=R,e[28]=te,e[29]=M):M=e[29];const ye=I==="list",ce=I==="list";let fe;e[30]!==ce?(fe=Xe(ce),e[30]=ce,e[31]=fe):fe=e[31];let K;e[32]!==s?(K=s("Table list"),e[32]=s,e[33]=K):K=e[33];let X;e[34]!==_||e[35]!==ye||e[36]!==fe||e[37]!==K?(X=l("button",{"aria-selected":ye,className:fe,"data-testid":"sc-view-list",onClick:_,role:"tab",type:"button",children:K}),e[34]=_,e[35]=ye,e[36]=fe,e[37]=K,e[38]=X):X=e[38];let U;e[39]!==M||e[40]!==X||e[41]!==Z?(U=p("div",{"aria-label":Z,className:"flex items-center gap-1","data-testid":"sc-view-toggle",role:"tablist",children:[M,X]}),e[39]=M,e[40]=X,e[41]=Z,e[42]=U):U=e[42];let le;e[43]!==U||e[44]!==O?(le=p("div",{className:"flex flex-wrap items-center gap-3",children:[O,U]}),e[43]=U,e[44]=O,e[45]=le):le=e[45];let V;e[46]!==xe||e[47]!==t||e[48]!==ve?(V=t===!0&&l(Nt,{onApplied:xe,tableNames:ve}),e[46]=xe,e[47]=t,e[48]=ve,e[49]=V):V=e[49];let se;e[50]!==Q||e[51]!==s||e[52]!==A||e[53]!==I?(se=I==="list"&&l(ke,{"aria-label":s("Filter tables"),className:"h-8 max-w-xs","data-testid":"sc-filter",onChange:Q,placeholder:s("Filter tables"),value:A}),e[50]=Q,e[51]=s,e[52]=A,e[53]=I,e[54]=se):se=e[54];let $;e[55]!==r||e[56]!==b||e[57]!==h||e[58]!==S||e[59]!==C||e[60]!==I?($=I==="graph"&&p("div",{className:"flex flex-col gap-2","data-testid":"sc-graph-view",children:[b!==null&&l("p",{className:"text-sm text-destructive","data-testid":"sc-error",role:"alert",children:b}),h!==null&&l("p",{className:"text-sm text-destructive","data-testid":"sc-global-error",role:"alert",children:h}),l(st,{columnsError:S[C]===!0,tables:r,testIdPrefix:"sc-graph"})]}),e[55]=r,e[56]=b,e[57]=h,e[58]=S,e[59]=C,e[60]=I,e[61]=$):$=e[61];let ae;e[62]!==d||e[63]!==b||e[64]!==o||e[65]!==f||e[66]!==i||e[67]!==v||e[68]!==h||e[69]!==G||e[70]!==w||e[71]!==B||e[72]!==C||e[73]!==s||e[74]!==L||e[75]!==me||e[76]!==W||e[77]!==I?(ae=I==="list"&&p("div",{className:"flex flex-col gap-4",children:[p(je,{"data-testid":"sc-shard-section",size:"sm",children:[p(Be,{children:[p("div",{className:"flex items-center gap-2",children:[l(Re,{tier:"shard"}),l(ze,{children:s("Shard tables")}),L!==null&&l(Fe,{className:"ms-auto tabular-nums",variant:"outline",children:i.length})]}),l(qe,{children:Pe.shard.hint})]}),p(De,{children:[b!==null&&l("p",{className:"text-sm text-destructive","data-testid":"sc-error",role:"alert",children:b}),L!==null&&L.length===0&&l("p",{className:"text-sm text-muted-foreground","data-testid":"sc-empty",children:s("No tables in this shard.")}),L!==null&&L.length>0&&i.length===0&&l("p",{className:"text-sm text-muted-foreground","data-testid":"sc-no-match",children:s("No tables match your filter.")}),i.length>0&&l("ul",{className:"-mx-3 overflow-hidden border-t border-border","data-testid":"sc-table-list",children:i.map(g=>{const oe=`${C}:${g.name}`,J=B[oe]??[];return p(Ye,{expanded:o===g.name,name:g.name,onToggle:()=>{be(me(g.name))},rowCount:g.rowCount,rowTestId:`sc-table-${g.name}`,toggleTestId:`sc-toggle-${g.name}`,children:[l(He,{columns:d[oe]??Ve,testId:`sc-columns-${g.name}`}),J.length>0&&l(Et,{heading:s("Indexes"),indexes:J,testId:`sc-indexes-${g.name}`})]},g.name)})})]})]}),p(je,{"data-testid":"sc-global-section",size:"sm",children:[p(Be,{children:[p("div",{className:"flex items-center gap-2",children:[l(Re,{tier:"global"}),l(ze,{children:s("Global tables (D1)")}),w!==null&&l(Fe,{className:"ms-auto tabular-nums",variant:"outline",children:f.length})]}),l(qe,{children:Pe.global.hint})]}),p(De,{children:[h!==null&&l("p",{className:"text-sm text-destructive","data-testid":"sc-global-error",role:"alert",children:h}),w!==null&&w.length===0&&l(Qe,{description:Pe.global.hint,testId:"sc-global-empty",title:s("No global tables.")}),w!==null&&w.length>0&&f.length===0&&l("p",{className:"text-sm text-muted-foreground","data-testid":"sc-global-no-match",children:s("No tables match your filter.")}),f.length>0&&l("ul",{className:"-mx-3 overflow-hidden border-t border-border","data-testid":"sc-global-table-list",children:f.map(g=>l(Ye,{expanded:G===g.name,name:g.name,onToggle:()=>{be(W(g.name))},rowCount:g.rowCount,rowTestId:`sc-global-table-${g.name}`,toggleTestId:`sc-global-toggle-${g.name}`,children:l(He,{columns:v[g.name]??Ve,testId:`sc-global-columns-${g.name}`})},g.name))})]})]})]}),e[62]=d,e[63]=b,e[64]=o,e[65]=f,e[66]=i,e[67]=v,e[68]=h,e[69]=G,e[70]=w,e[71]=B,e[72]=C,e[73]=s,e[74]=L,e[75]=me,e[76]=W,e[77]=I,e[78]=ae):ae=e[78];let ne;return e[79]!==le||e[80]!==V||e[81]!==se||e[82]!==$||e[83]!==ae?(ne=p("div",{className:"flex flex-col gap-4","data-testid":"lunora-schema",children:[le,V,se,$,ae]}),e[79]=le,e[80]=V,e[81]=se,e[82]=$,e[83]=ae,e[84]=ne):ne=e[84],ne};function It(n){return l("li",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground",children:n},n)}function kt(n){return p("li",{className:"flex flex-wrap items-center gap-1.5 text-xs",children:[l("span",{className:"font-mono",children:n.name}),l(Fe,{variant:"outline",children:n.type}),n.unique===!0&&l(Fe,{variant:"secondary",children:"unique"}),l("span",{className:"text-muted-foreground",children:n.fields.join(", ")})]},`${n.type}:${n.name}`)}function At(n){return n.name}export{Wt as SchemaViewer};
|
|
1
|
+
import{c as Ne}from"react/compiler-runtime";import{ShardInput as We}from"../packem_shared/ShardInput-CdawpUiS.js";import{S as Re,T as Pe}from"../packem_shared/storage-tier-C2mKwYRj.js";import{B as Fe}from"../packem_shared/badge-cAk9Di1Q.js";import{b as ze,d as qe,c as Be,a as De,C as je}from"../packem_shared/card-BGlQzQY-.js";import{E as Qe}from"../packem_shared/empty-state-B939z6K2.js";import{I as ke}from"../packem_shared/input-CY5W3wzv.js";import{useT as Le}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.js";import{c as Oe,d as Ae,b as $e,f as be}from"../packem_shared/internal-7bgd8inO.js";import{c as Je}from"../packem_shared/utils-bhneXptQ.js";import{useLunora as Ze}from"@lunora/react";import{useState as E,useEffect as Ge,useRef as et}from"react";import{u as tt}from"../packem_shared/use-shard-key-BsP3o5wT.js";import{ADMIN_FUNCTIONS as Me}from"../packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js";import{r as lt}from"../packem_shared/shard-history-DU5b3QDI.js";import{S as st}from"../packem_shared/schema-diagram-DLhppqVE.js";import{useNavigate as at}from"@tanstack/react-router";import{B as ge}from"../packem_shared/button-BOPLD1un.js";import{L as _e}from"../packem_shared/label-BOUo-DP0.js";import{jsx as l,jsxs as p,Fragment as Ke}from"react/jsx-runtime";const nt=Oe(Me.listTables),ot=Oe(Me.listTableIndexes),it=Oe(Me.readTablePage),rt=Oe(Me.describeTables),dt={},Ue=[],ct=n=>{const e=Ne(74),{initialShardKey:m,initialTable:a}=n,t=Ze(),[s,c]=E("graph"),{queryShardKey:d,setShardKey:r,shardKey:b}=tt(m),[o,f]=E(""),[i,v]=E(null),[h,G]=E(null);let w;e[0]===Symbol.for("react.memo_cache_sentinel")?(w={},e[0]=w):w=e[0];const[B,y]=E(w);let z;e[1]===Symbol.for("react.memo_cache_sentinel")?(z={},e[1]=z):z=e[1];const[F,D]=E(z),[S,C]=E(null);let A;e[2]===Symbol.for("react.memo_cache_sentinel")?(A={},e[2]=A):A=e[2];const[L,me]=E(A);let W;e[3]===Symbol.for("react.memo_cache_sentinel")?(W={},e[3]=W):W=e[3];const[I,q]=E(W),[_,ue]=E(null),[j,ie]=E(null);let Q;e[4]===Symbol.for("react.memo_cache_sentinel")?(Q={},e[4]=Q):Q=e[4];const[Y,xe]=E(Q),[H,re]=E(null);let ve;e[5]!==t?(ve=async u=>{G(null);try{const N=await t.query(nt,{},Ae(u));lt(u),v(N),y({}),D({}),C(null),me(x=>Object.fromEntries(Object.entries(x).filter(P=>{const[k]=P;return k!==u}))),q(x=>Object.fromEntries(Object.entries(x).filter(P=>{const[k]=P;return k!==u})))}catch(N){const x=N;v(null),G($e(x))}},e[5]=t,e[6]=ve):ve=e[6];const O=ve;let Z;e[7]!==t?(Z=async()=>{ie(null);try{ue(await t.listGlobalTables())}catch(u){const N=u;ue(null),ie($e(N))}},e[7]=t,e[8]=Z):Z=e[8];const ee=Z;let de,R;e[9]!==d||e[10]!==O||e[11]!==ee?(de=()=>{be(O(d)),be(ee())},R=[O,ee,d],e[9]=d,e[10]=O,e[11]=ee,e[12]=de,e[13]=R):(de=e[12],R=e[13]),Ge(de,R);let te;e[14]!==t||e[15]!==B||e[16]!==S||e[17]!==d?(te=async u=>{if(S===u){C(null);return}C(u);const N=`${d}:${u}`;if(B[N]!==void 0)return;const[x,P]=await Promise.allSettled([t.query(it,{limit:1,offset:0,table:u},Ae(d)),t.query(ot,{table:u},Ae(d))]);x.status==="fulfilled"?y(k=>({...k,[N]:x.value.columns})):G($e(x.reason)),P.status==="fulfilled"&&D(k=>({...k,[N]:P.value.indexes}))},e[14]=t,e[15]=B,e[16]=S,e[17]=d,e[18]=te):te=e[18];const M=te;let ye;e[19]!==t||e[20]!==Y||e[21]!==H?(ye=async u=>{if(H===u){re(null);return}if(re(u),Y[u]===void 0)try{const N=await t.readGlobalTablePage({limit:1,offset:0,table:u});xe(x=>({...x,[u]:N.columns}))}catch(N){ie($e(N))}},e[19]=t,e[20]=Y,e[21]=H,e[22]=ye):ye=e[22];const ce=ye,fe=et(void 0);let K,X;e[23]!==a||e[24]!==i||e[25]!==M?(K=()=>{a===void 0||i===null||fe.current===a||i.some(u=>u.name===a)&&(fe.current=a,be(M(a)))},X=[a,i,M],e[23]=a,e[24]=i,e[25]=M,e[26]=K,e[27]=X):(K=e[26],X=e[27]),Ge(K,X);let U;e[28]!==t?(U=async(u,N,x)=>{const[P,k]=await Promise.all([Promise.allSettled([t.query(rt,{tables:[...N,...x]},Ae(u))]),Promise.all(x.map(async T=>{const pe=await Promise.allSettled([t.readGlobalTablePage({limit:1,offset:0,table:T})]),Ie=pe[0].status==="fulfilled"?pe[0].value:void 0;return{columns:Ie?.columns??[],refs:Ie?.refs??{},table:T}}))]),Te=P[0].status==="fulfilled"?P[0].value?.columnsByTable??{}:{},Se=P[0].status==="rejected",we=new Map(k.map(mt)),Ee=[...N,...x].map(T=>{const pe=Te[T]??[];return[T,pe.length>0?pe:we.get(T)??[]]});me(T=>({...T,[u]:Object.fromEntries(Ee)})),q(T=>({...T,[u]:Se}))},e[28]=t,e[29]=U):U=e[29];const le=U;let V,se;e[30]!==j||e[31]!==_||e[32]!==le||e[33]!==d||e[34]!==L||e[35]!==i||e[36]!==s?(V=()=>{s!=="graph"||i===null||_===null&&j===null||L[d]!==void 0||be(le(d,i.map(ut),(_??[]).map(ft)))},se=[s,i,_,j,d,L,le],e[30]=j,e[31]=_,e[32]=le,e[33]=d,e[34]=L,e[35]=i,e[36]=s,e[37]=V,e[38]=se):(V=e[37],se=e[38]),Ge(V,se);const $=L[d]??dt;let ae;if(e[39]!==$||e[40]!==_||e[41]!==i){let u;e[43]!==$?(u=k=>({columns:$[k.name]??Ue,name:k.name,tier:"shard"}),e[43]=$,e[44]=u):u=e[44];const N=(i??[]).map(u);let x;e[45]!==$?(x=k=>({columns:$[k.name]??Ue,name:k.name,tier:"global"}),e[45]=$,e[46]=x):x=e[46];const P=(_??[]).map(x);ae=[...N,...P],e[39]=$,e[40]=_,e[41]=i,e[42]=ae}else ae=e[42];const ne=ae;let g;if(e[47]!==o||e[48]!==i){const u=o.trim().toLowerCase();g=(i??[]).filter(N=>N.name.toLowerCase().includes(u)),e[47]=o,e[48]=i,e[49]=g}else g=e[49];const oe=g;let J;if(e[50]!==_||e[51]!==o){const u=o.trim().toLowerCase();J=(_??[]).filter(N=>N.name.toLowerCase().includes(u)),e[50]=_,e[51]=o,e[52]=J}else J=e[52];const Ce=J;let he;return e[53]!==B||e[54]!==ne||e[55]!==h||e[56]!==S||e[57]!==Ce||e[58]!==oe||e[59]!==Y||e[60]!==j||e[61]!==H||e[62]!==_||e[63]!==F||e[64]!==O||e[65]!==r||e[66]!==I||e[67]!==b||e[68]!==o||e[69]!==i||e[70]!==M||e[71]!==ce||e[72]!==s?(he={columns:B,diagramTables:ne,error:h,expanded:S,filteredGlobalTables:Ce,filteredTables:oe,globalColumns:Y,globalError:j,globalExpanded:H,globalTables:_,indexes:F,refresh:O,setShardKey:r,setTableFilter:f,setView:c,shardColumnsError:I,shardKey:b,tableFilter:o,tables:i,toggle:M,toggleGlobal:ce,view:s},e[53]=B,e[54]=ne,e[55]=h,e[56]=S,e[57]=Ce,e[58]=oe,e[59]=Y,e[60]=j,e[61]=H,e[62]=_,e[63]=F,e[64]=O,e[65]=r,e[66]=I,e[67]=b,e[68]=o,e[69]=i,e[70]=M,e[71]=ce,e[72]=s,e[73]=he):he=e[73],he};function mt(n){const{columns:e,refs:m,table:a}=n;return[a,e.map(t=>{const s=m[t];return s===void 0?{name:t,optional:!1,type:""}:{name:t,optional:!1,ref:s,type:"id"}})]}function ut(n){return n.name}function ft(n){return n.name}const ht="/__lunora/schema-edit",pt=async n=>{const e=await fetch(ht,{body:JSON.stringify(n),headers:{"Content-Type":"application/json","X-Lunora-Studio":"1"},method:"POST"}),m=await e.json();return m.needsMigration===!0?{kind:"needs-migration",message:m.message??"This edit needs a migration."}:e.ok&&m.tables!==void 0?{diagnostics:m.diagnostics??[],kind:"ok",tables:m.tables}:{kind:"error",message:m.error??`schema edit failed (${String(e.status)})`}},gt=n=>{const e=Ne(32),{hasTables:m,mode:a,onAddColumn:t,onAddIndex:s,onAddTable:c,onDestructive:d}=n,r=Le(),b=a==="addTable"?"default":"outline";let o;e[0]!==r?(o=r("Add table"),e[0]=r,e[1]=o):o=e[1];let f;e[2]!==c||e[3]!==b||e[4]!==o?(f=l(ge,{"data-testid":"sc-editor-add-table",onClick:c,size:"xs",type:"button",variant:b,children:o}),e[2]=c,e[3]=b,e[4]=o,e[5]=f):f=e[5];const i=!m,v=a==="addColumn"?"default":"outline";let h;e[6]!==r?(h=r("Add column"),e[6]=r,e[7]=h):h=e[7];let G;e[8]!==t||e[9]!==i||e[10]!==v||e[11]!==h?(G=l(ge,{"data-testid":"sc-editor-add-column",disabled:i,onClick:t,size:"xs",type:"button",variant:v,children:h}),e[8]=t,e[9]=i,e[10]=v,e[11]=h,e[12]=G):G=e[12];const w=!m,B=a==="addIndex"?"default":"outline";let y;e[13]!==r?(y=r("Add index"),e[13]=r,e[14]=y):y=e[14];let z;e[15]!==s||e[16]!==y||e[17]!==w||e[18]!==B?(z=l(ge,{"data-testid":"sc-editor-add-index",disabled:w,onClick:s,size:"xs",type:"button",variant:B,children:y}),e[15]=s,e[16]=y,e[17]=w,e[18]=B,e[19]=z):z=e[19];const F=!m,D=a==="destructive"?"default":"ghost";let S;e[20]!==r?(S=r("Rename / drop / change type…"),e[20]=r,e[21]=S):S=e[21];let C;e[22]!==d||e[23]!==F||e[24]!==D||e[25]!==S?(C=l(ge,{"data-testid":"sc-editor-destructive",disabled:F,onClick:d,size:"xs",type:"button",variant:D,children:S}),e[22]=d,e[23]=F,e[24]=D,e[25]=S,e[26]=C):C=e[26];let A;return e[27]!==z||e[28]!==C||e[29]!==f||e[30]!==G?(A=p("div",{className:"flex flex-wrap gap-2",children:[f,G,z,C]}),e[27]=z,e[28]=C,e[29]=f,e[30]=G,e[31]=A):A=e[31],A},bt=n=>{const e=Ne(28),{onOpenMigrations:m,result:a}=n,t=Le();if(a===null){let o;return e[0]===Symbol.for("react.memo_cache_sentinel")?(o=l(Ke,{}),e[0]=o):o=e[0],o}if(a.kind==="error"){let o;return e[1]!==a.message?(o=l("p",{className:"mt-3 text-sm text-destructive","data-testid":"sc-editor-error",role:"alert",children:a.message}),e[1]=a.message,e[2]=o):o=e[2],o}if(a.kind==="needs-migration"){let o;e[3]!==a.message||e[4]!==t?(o=a.message===""?t("This edit changes stored data and must go through a migration. Review the migration before applying."):a.message,e[3]=a.message,e[4]=t,e[5]=o):o=e[5];let f;e[6]!==o?(f=l("p",{className:"text-sm text-warning",role:"alert",children:o}),e[6]=o,e[7]=f):f=e[7];let i;e[8]!==t?(i=t("Open Migrations"),e[8]=t,e[9]=i):i=e[9];let v;e[10]!==m||e[11]!==i?(v=l(ge,{className:"self-start","data-testid":"sc-editor-open-migrations",onClick:m,size:"xs",type:"button",variant:"outline",children:i}),e[10]=m,e[11]=i,e[12]=v):v=e[12];let h;return e[13]!==f||e[14]!==v?(h=p("div",{className:"mt-3 flex flex-col gap-2","data-testid":"sc-editor-needs-migration",children:[f,v]}),e[13]=f,e[14]=v,e[15]=h):h=e[15],h}if(a.diagnostics.length===0){let o;return e[16]===Symbol.for("react.memo_cache_sentinel")?(o=l(Ke,{}),e[16]=o):o=e[16],o}let s;e[17]!==t?(s=t("Codegen reported diagnostics:"),e[17]=t,e[18]=s):s=e[18];let c;e[19]!==s?(c=l("p",{className:"text-sm text-destructive",role:"alert",children:s}),e[19]=s,e[20]=c):c=e[20];let d;e[21]!==a.diagnostics?(d=a.diagnostics.map(xt),e[21]=a.diagnostics,e[22]=d):d=e[22];let r;e[23]!==d?(r=l("ul",{className:"flex flex-col gap-0.5",children:d}),e[23]=d,e[24]=r):r=e[24];let b;return e[25]!==c||e[26]!==r?(b=p("div",{className:"mt-3 flex flex-col gap-1","data-testid":"sc-editor-diagnostics",children:[c,r]}),e[25]=c,e[26]=r,e[27]=b):b=e[27],b};function xt(n){return l("li",{className:"font-mono text-[11px] text-destructive",children:n},n)}const vt=[{label:"string",validator:"v.string()"},{label:"number",validator:"v.number()"},{label:"boolean",validator:"v.boolean()"},{label:"bigint",validator:"v.int64()"},{label:"bytes",validator:"v.bytes()"},{label:"any",validator:"v.any()"}],yt="v.string()",Ct=n=>n.split(",").map(e=>e.trim()).filter(e=>e!==""),Nt=n=>{const e=Ne(83),{onApplied:m,tableNames:a}=n,t=Le(),s=at(),[c,d]=E(null),[r,b]=E(!1),[o,f]=E(null),[i,v]=E(""),[h,G]=E(""),[w,B]=E(yt),[y,z]=E(a[0]??""),[F,D]=E(""),[S,C]=E(""),[A,L]=E(!1);let me;e[0]===Symbol.for("react.memo_cache_sentinel")?(me=()=>{d(null),v(""),G(""),D(""),C(""),L(!1)},e[0]=me):me=e[0];const W=me;let I;e[1]!==m?(I=async T=>{b(!0),f(null);try{const pe=await pt(T);f(pe),pe.kind==="ok"&&(m(pe.tables),W())}catch(pe){const Ie=pe;f({kind:"error",message:Ie instanceof Error?Ie.message:String(Ie)})}b(!1)},e[1]=m,e[2]=I):I=e[2];const q=I;let _;e[3]!==q||e[4]!==i?(_=()=>{be(q({kind:"addTable",table:i.trim()}))},e[3]=q,e[4]=i,e[5]=_):_=e[5];const ue=_;let j;e[6]!==h||e[7]!==q||e[8]!==y||e[9]!==w?(j=()=>{be(q({column:h.trim(),kind:"addOptionalColumn",table:y,validator:w}))},e[6]=h,e[7]=q,e[8]=y,e[9]=w,e[10]=j):j=e[10];const ie=j;let Q;e[11]!==S||e[12]!==F||e[13]!==q||e[14]!==y||e[15]!==A?(Q=()=>{be(q({fields:Ct(S),kind:"addIndex",name:F.trim(),table:y,unique:A}))},e[11]=S,e[12]=F,e[13]=q,e[14]=y,e[15]=A,e[16]=Q):Q=e[16];const Y=Q;let xe;e[17]===Symbol.for("react.memo_cache_sentinel")?(xe=()=>{f(null),d("addTable")},e[17]=xe):xe=e[17];const H=xe;let re;e[18]===Symbol.for("react.memo_cache_sentinel")?(re=()=>{f(null),d("addColumn")},e[18]=re):re=e[18];const ve=re;let O;e[19]===Symbol.for("react.memo_cache_sentinel")?(O=()=>{f(null),d("addIndex")},e[19]=O):O=e[19];const Z=O;let ee;e[20]!==t?(ee=()=>{d("destructive"),f({kind:"needs-migration",message:t("This edit changes stored data and must go through a migration. Review the migration before applying.")})},e[20]=t,e[21]=ee):ee=e[21];const de=ee;let R;e[22]===Symbol.for("react.memo_cache_sentinel")?(R=T=>{v(T.target.value)},e[22]=R):R=e[22];const te=R;let M;e[23]===Symbol.for("react.memo_cache_sentinel")?(M=T=>{G(T.target.value)},e[23]=M):M=e[23];const ye=M;let ce;e[24]===Symbol.for("react.memo_cache_sentinel")?(ce=T=>{B(T.target.value)},e[24]=ce):ce=e[24];const fe=ce;let K;e[25]===Symbol.for("react.memo_cache_sentinel")?(K=T=>{z(T.target.value)},e[25]=K):K=e[25];const X=K;let U;e[26]===Symbol.for("react.memo_cache_sentinel")?(U=T=>{D(T.target.value)},e[26]=U):U=e[26];const le=U;let V;e[27]===Symbol.for("react.memo_cache_sentinel")?(V=T=>{C(T.target.value)},e[27]=V):V=e[27];const se=V;let $;e[28]===Symbol.for("react.memo_cache_sentinel")?($=T=>{L(T.target.checked)},e[28]=$):$=e[28];const ae=$;let ne;e[29]!==s?(ne=()=>{be(s({to:"/migrations"}))},e[29]=s,e[30]=ne):ne=e[30];const g=ne;let oe;e[31]!==t?(oe=t("Edit schema"),e[31]=t,e[32]=oe):oe=e[32];let J;e[33]!==oe?(J=l(ze,{children:oe}),e[33]=oe,e[34]=J):J=e[34];let Ce;e[35]!==t?(Ce=t("Adds a table, column, or index to lunora/schema.ts and reruns codegen."),e[35]=t,e[36]=Ce):Ce=e[36];let he;e[37]!==Ce?(he=l(qe,{children:Ce}),e[37]=Ce,e[38]=he):he=e[38];let u;e[39]!==J||e[40]!==he?(u=p(Be,{children:[J,he]}),e[39]=J,e[40]=he,e[41]=u):u=e[41];const N=a.length>0;let x;e[42]!==c||e[43]!==de||e[44]!==N?(x=l(gt,{hasTables:N,mode:c,onAddColumn:ve,onAddIndex:Z,onAddTable:H,onDestructive:de}),e[42]=c,e[43]=de,e[44]=N,e[45]=x):x=e[45];let P;e[46]!==r||e[47]!==c||e[48]!==ue||e[49]!==t||e[50]!==i?(P=c==="addTable"&&p("div",{className:"mt-3 flex flex-wrap items-end gap-2","data-testid":"sc-editor-table-form",children:[p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-table-name",children:t("Table name")}),l(ke,{"data-testid":"sc-editor-table-name",id:"sc-editor-table-name",onChange:te,value:i})]}),l(ge,{"data-testid":"sc-editor-table-apply",disabled:r||i.trim()==="",onClick:ue,size:"xs",type:"button",children:t(r?"Applying…":"Apply")}),l(ge,{onClick:W,size:"xs",type:"button",variant:"ghost",children:t("Cancel")})]}),e[46]=r,e[47]=c,e[48]=ue,e[49]=t,e[50]=i,e[51]=P):P=e[51];let k;e[52]!==r||e[53]!==h||e[54]!==c||e[55]!==ie||e[56]!==t||e[57]!==a||e[58]!==y||e[59]!==w?(k=c==="addColumn"&&p("div",{className:"mt-3 flex flex-wrap items-end gap-2","data-testid":"sc-editor-column-form",children:[p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-column-table",children:t("Table name")}),l("select",{className:"h-8 rounded-md border border-input bg-transparent px-2 text-xs","data-testid":"sc-editor-column-table",id:"sc-editor-column-table",onChange:X,value:y,children:a.map(Tt)})]}),p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-column-name",children:t("Column name")}),l(ke,{"data-testid":"sc-editor-column-name",id:"sc-editor-column-name",onChange:ye,value:h})]}),p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-column-type",children:t("Column type")}),l("select",{className:"h-8 rounded-md border border-input bg-transparent px-2 text-xs","data-testid":"sc-editor-column-type",id:"sc-editor-column-type",onChange:fe,value:w,children:vt.map(St)})]}),l("span",{className:"text-[11px] text-muted-foreground",children:t("Optional")}),l(ge,{"data-testid":"sc-editor-column-apply",disabled:r||h.trim()===""||y==="",onClick:ie,size:"xs",type:"button",children:t(r?"Applying…":"Apply")}),l(ge,{onClick:W,size:"xs",type:"button",variant:"ghost",children:t("Cancel")})]}),e[52]=r,e[53]=h,e[54]=c,e[55]=ie,e[56]=t,e[57]=a,e[58]=y,e[59]=w,e[60]=k):k=e[60];let Te;e[61]!==r||e[62]!==S||e[63]!==F||e[64]!==c||e[65]!==Y||e[66]!==t||e[67]!==a||e[68]!==y||e[69]!==A?(Te=c==="addIndex"&&p("div",{className:"mt-3 flex flex-wrap items-end gap-2","data-testid":"sc-editor-index-form",children:[p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-index-table",children:t("Table name")}),l("select",{className:"h-8 rounded-md border border-input bg-transparent px-2 text-xs","data-testid":"sc-editor-index-table",id:"sc-editor-index-table",onChange:X,value:y,children:a.map(wt)})]}),p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-index-name",children:t("Index name")}),l(ke,{"data-testid":"sc-editor-index-name",id:"sc-editor-index-name",onChange:le,value:F})]}),p("div",{className:"flex flex-col gap-1 text-xs",children:[l(_e,{htmlFor:"sc-editor-index-fields",children:t("Index fields (comma-separated)")}),l(ke,{"data-testid":"sc-editor-index-fields",id:"sc-editor-index-fields",onChange:se,value:S})]}),p(_e,{className:"flex items-center gap-1 text-xs",htmlFor:"sc-editor-index-unique",children:[l("input",{checked:A,"data-testid":"sc-editor-index-unique",id:"sc-editor-index-unique",onChange:ae,type:"checkbox"}),l("span",{className:"text-muted-foreground",children:t("Unique")})]}),l(ge,{"data-testid":"sc-editor-index-apply",disabled:r||F.trim()===""||S.trim()==="",onClick:Y,size:"xs",type:"button",children:t(r?"Applying…":"Apply")}),l(ge,{onClick:W,size:"xs",type:"button",variant:"ghost",children:t("Cancel")})]}),e[61]=r,e[62]=S,e[63]=F,e[64]=c,e[65]=Y,e[66]=t,e[67]=a,e[68]=y,e[69]=A,e[70]=Te):Te=e[70];let Se;e[71]!==g||e[72]!==o?(Se=l(bt,{onOpenMigrations:g,result:o}),e[71]=g,e[72]=o,e[73]=Se):Se=e[73];let we;e[74]!==x||e[75]!==P||e[76]!==k||e[77]!==Te||e[78]!==Se?(we=p(De,{children:[x,P,k,Te,Se]}),e[74]=x,e[75]=P,e[76]=k,e[77]=Te,e[78]=Se,e[79]=we):we=e[79];let Ee;return e[80]!==u||e[81]!==we?(Ee=p(je,{"data-testid":"sc-editor",size:"sm",children:[u,we]}),e[80]=u,e[81]=we,e[82]=Ee):Ee=e[82],Ee};function Tt(n){return l("option",{value:n,children:n},n)}function St(n){return l("option",{value:n.validator,children:n.label},n.validator)}function wt(n){return l("option",{value:n,children:n},n)}const Ve=[],_t=n=>{const e=Ne(5),{open:m}=n,a=m&&"rotate-90";let t;e[0]!==a?(t=Je("size-3.5 shrink-0 text-muted-foreground transition-transform duration-150",a),e[0]=a,e[1]=t):t=e[1];let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=l("path",{d:"m9 6 6 6-6 6"}),e[2]=s):s=e[2];let c;return e[3]!==t?(c=l("svg",{"aria-hidden":"true",className:t,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.8,viewBox:"0 0 24 24",children:s}),e[3]=t,e[4]=c):c=e[4],c},Ye=n=>{const e=Ne(20),{children:m,expanded:a,name:t,onToggle:s,rowCount:c,rowTestId:d,toggleTestId:r}=n;let b;e[0]!==a?(b=l(_t,{open:a}),e[0]=a,e[1]=b):b=e[1];let o;e[2]!==t?(o=l("span",{className:"truncate font-mono text-xs text-foreground",title:t,children:t}),e[2]=t,e[3]=o):o=e[3];let f;e[4]!==c?(f=p("span",{className:"ms-auto shrink-0 text-xs text-muted-foreground tabular-nums",children:["(",c,")"]}),e[4]=c,e[5]=f):f=e[5];let i;e[6]!==a||e[7]!==s||e[8]!==b||e[9]!==o||e[10]!==f||e[11]!==r?(i=p("button",{"aria-expanded":a,className:"flex w-full items-center gap-2 px-3 py-2 text-start transition-colors hover:bg-muted/50 aria-expanded:bg-muted/40","data-testid":r,onClick:s,type:"button",children:[b,o," ",f]}),e[6]=a,e[7]=s,e[8]=b,e[9]=o,e[10]=f,e[11]=r,e[12]=i):i=e[12];let v;e[13]!==m||e[14]!==a?(v=a&&l("div",{className:"px-3 pb-3 ps-8",children:m}),e[13]=m,e[14]=a,e[15]=v):v=e[15];let h;return e[16]!==d||e[17]!==i||e[18]!==v?(h=p("li",{className:"border-t border-border/60 first:border-t-0","data-testid":d,children:[i,v]}),e[16]=d,e[17]=i,e[18]=v,e[19]=h):h=e[19],h},He=n=>{const e=Ne(5),{columns:m,testId:a}=n;let t;e[0]!==m?(t=m.map(It),e[0]=m,e[1]=t):t=e[1];let s;return e[2]!==t||e[3]!==a?(s=l("ul",{className:"flex flex-wrap gap-1.5 pt-1","data-testid":a,children:t}),e[2]=t,e[3]=a,e[4]=s):s=e[4],s},Et=n=>{const e=Ne(10),{heading:m,indexes:a,testId:t}=n;let s;e[0]!==m?(s=l("p",{className:"mb-1.5 font-mono text-[10px] tracking-wide text-muted-foreground uppercase",children:m}),e[0]=m,e[1]=s):s=e[1];let c;e[2]!==a?(c=a.map(kt),e[2]=a,e[3]=c):c=e[3];let d;e[4]!==c||e[5]!==t?(d=l("ul",{className:"flex flex-col gap-1","data-testid":t,children:c}),e[4]=c,e[5]=t,e[6]=d):d=e[6];let r;return e[7]!==s||e[8]!==d?(r=p("div",{className:"pt-3",children:[s,d]}),e[7]=s,e[8]=d,e[9]=r):r=e[9],r},Xe=n=>Je("border-b-2 px-3 py-2 font-mono text-[11px] tracking-widest uppercase outline-none transition-colors",n?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),Wt=n=>{const e=Ne(85),{initialShardKey:m,initialTable:a,schemaEditable:t}=n,s=Le();let c;e[0]!==m||e[1]!==a?(c={initialShardKey:m,initialTable:a},e[0]=m,e[1]=a,e[2]=c):c=e[2];const{columns:d,diagramTables:r,error:b,expanded:o,filteredGlobalTables:f,filteredTables:i,globalColumns:v,globalError:h,globalExpanded:G,globalTables:w,indexes:B,refresh:y,setShardKey:z,setTableFilter:F,setView:D,shardColumnsError:S,shardKey:C,tableFilter:A,tables:L,toggle:me,toggleGlobal:W,view:I}=ct(c);let q;e[3]!==D?(q=()=>{D("list")},e[3]=D,e[4]=q):q=e[4];const _=q;let ue;e[5]!==D?(ue=()=>{D("graph")},e[5]=D,e[6]=ue):ue=e[6];const j=ue;let ie;e[7]!==F?(ie=g=>{F(g.target.value)},e[7]=F,e[8]=ie):ie=e[8];const Q=ie;let Y;e[9]!==y||e[10]!==C?(Y=g=>{be(y(C))},e[9]=y,e[10]=C,e[11]=Y):Y=e[11];const xe=Y;let H;e[12]!==L?(H=L??[],e[12]=L,e[13]=H):H=e[13];let re;e[14]!==H?(re=H.map(At),e[14]=H,e[15]=re):re=e[15];const ve=re;let O;e[16]!==z||e[17]!==C?(O=l(We,{onChange:z,testId:"sc-shard-input",value:C}),e[16]=z,e[17]=C,e[18]=O):O=e[18];let Z;e[19]!==s?(Z=s("Schema view"),e[19]=s,e[20]=Z):Z=e[20];const ee=I==="graph",de=I==="graph";let R;e[21]!==de?(R=Xe(de),e[21]=de,e[22]=R):R=e[22];let te;e[23]!==s?(te=s("Graph"),e[23]=s,e[24]=te):te=e[24];let M;e[25]!==j||e[26]!==ee||e[27]!==R||e[28]!==te?(M=l("button",{"aria-selected":ee,className:R,"data-testid":"sc-view-graph",onClick:j,role:"tab",type:"button",children:te}),e[25]=j,e[26]=ee,e[27]=R,e[28]=te,e[29]=M):M=e[29];const ye=I==="list",ce=I==="list";let fe;e[30]!==ce?(fe=Xe(ce),e[30]=ce,e[31]=fe):fe=e[31];let K;e[32]!==s?(K=s("Table list"),e[32]=s,e[33]=K):K=e[33];let X;e[34]!==_||e[35]!==ye||e[36]!==fe||e[37]!==K?(X=l("button",{"aria-selected":ye,className:fe,"data-testid":"sc-view-list",onClick:_,role:"tab",type:"button",children:K}),e[34]=_,e[35]=ye,e[36]=fe,e[37]=K,e[38]=X):X=e[38];let U;e[39]!==M||e[40]!==X||e[41]!==Z?(U=p("div",{"aria-label":Z,className:"flex items-center gap-1","data-testid":"sc-view-toggle",role:"tablist",children:[M,X]}),e[39]=M,e[40]=X,e[41]=Z,e[42]=U):U=e[42];let le;e[43]!==U||e[44]!==O?(le=p("div",{className:"flex flex-wrap items-center gap-3",children:[O,U]}),e[43]=U,e[44]=O,e[45]=le):le=e[45];let V;e[46]!==xe||e[47]!==t||e[48]!==ve?(V=t===!0&&l(Nt,{onApplied:xe,tableNames:ve}),e[46]=xe,e[47]=t,e[48]=ve,e[49]=V):V=e[49];let se;e[50]!==Q||e[51]!==s||e[52]!==A||e[53]!==I?(se=I==="list"&&l(ke,{"aria-label":s("Filter tables"),className:"h-8 max-w-xs","data-testid":"sc-filter",onChange:Q,placeholder:s("Filter tables"),value:A}),e[50]=Q,e[51]=s,e[52]=A,e[53]=I,e[54]=se):se=e[54];let $;e[55]!==r||e[56]!==b||e[57]!==h||e[58]!==S||e[59]!==C||e[60]!==I?($=I==="graph"&&p("div",{className:"flex flex-col gap-2","data-testid":"sc-graph-view",children:[b!==null&&l("p",{className:"text-sm text-destructive","data-testid":"sc-error",role:"alert",children:b}),h!==null&&l("p",{className:"text-sm text-destructive","data-testid":"sc-global-error",role:"alert",children:h}),l(st,{columnsError:S[C]===!0,tables:r,testIdPrefix:"sc-graph"})]}),e[55]=r,e[56]=b,e[57]=h,e[58]=S,e[59]=C,e[60]=I,e[61]=$):$=e[61];let ae;e[62]!==d||e[63]!==b||e[64]!==o||e[65]!==f||e[66]!==i||e[67]!==v||e[68]!==h||e[69]!==G||e[70]!==w||e[71]!==B||e[72]!==C||e[73]!==s||e[74]!==L||e[75]!==me||e[76]!==W||e[77]!==I?(ae=I==="list"&&p("div",{className:"flex flex-col gap-4",children:[p(je,{"data-testid":"sc-shard-section",size:"sm",children:[p(Be,{children:[p("div",{className:"flex items-center gap-2",children:[l(Re,{tier:"shard"}),l(ze,{children:s("Shard tables")}),L!==null&&l(Fe,{className:"ms-auto tabular-nums",variant:"outline",children:i.length})]}),l(qe,{children:Pe.shard.hint})]}),p(De,{children:[b!==null&&l("p",{className:"text-sm text-destructive","data-testid":"sc-error",role:"alert",children:b}),L!==null&&L.length===0&&l("p",{className:"text-sm text-muted-foreground","data-testid":"sc-empty",children:s("No tables in this shard.")}),L!==null&&L.length>0&&i.length===0&&l("p",{className:"text-sm text-muted-foreground","data-testid":"sc-no-match",children:s("No tables match your filter.")}),i.length>0&&l("ul",{className:"-mx-3 overflow-hidden border-t border-border","data-testid":"sc-table-list",children:i.map(g=>{const oe=`${C}:${g.name}`,J=B[oe]??[];return p(Ye,{expanded:o===g.name,name:g.name,onToggle:()=>{be(me(g.name))},rowCount:g.rowCount,rowTestId:`sc-table-${g.name}`,toggleTestId:`sc-toggle-${g.name}`,children:[l(He,{columns:d[oe]??Ve,testId:`sc-columns-${g.name}`}),J.length>0&&l(Et,{heading:s("Indexes"),indexes:J,testId:`sc-indexes-${g.name}`})]},g.name)})})]})]}),p(je,{"data-testid":"sc-global-section",size:"sm",children:[p(Be,{children:[p("div",{className:"flex items-center gap-2",children:[l(Re,{tier:"global"}),l(ze,{children:s("Global tables (D1)")}),w!==null&&l(Fe,{className:"ms-auto tabular-nums",variant:"outline",children:f.length})]}),l(qe,{children:Pe.global.hint})]}),p(De,{children:[h!==null&&l("p",{className:"text-sm text-destructive","data-testid":"sc-global-error",role:"alert",children:h}),w!==null&&w.length===0&&l(Qe,{description:Pe.global.hint,testId:"sc-global-empty",title:s("No global tables.")}),w!==null&&w.length>0&&f.length===0&&l("p",{className:"text-sm text-muted-foreground","data-testid":"sc-global-no-match",children:s("No tables match your filter.")}),f.length>0&&l("ul",{className:"-mx-3 overflow-hidden border-t border-border","data-testid":"sc-global-table-list",children:f.map(g=>l(Ye,{expanded:G===g.name,name:g.name,onToggle:()=>{be(W(g.name))},rowCount:g.rowCount,rowTestId:`sc-global-table-${g.name}`,toggleTestId:`sc-global-toggle-${g.name}`,children:l(He,{columns:v[g.name]??Ve,testId:`sc-global-columns-${g.name}`})},g.name))})]})]})]}),e[62]=d,e[63]=b,e[64]=o,e[65]=f,e[66]=i,e[67]=v,e[68]=h,e[69]=G,e[70]=w,e[71]=B,e[72]=C,e[73]=s,e[74]=L,e[75]=me,e[76]=W,e[77]=I,e[78]=ae):ae=e[78];let ne;return e[79]!==le||e[80]!==V||e[81]!==se||e[82]!==$||e[83]!==ae?(ne=p("div",{className:"flex flex-col gap-4","data-testid":"lunora-schema",children:[le,V,se,$,ae]}),e[79]=le,e[80]=V,e[81]=se,e[82]=$,e[83]=ae,e[84]=ne):ne=e[84],ne};function It(n){return l("li",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground",children:n},n)}function kt(n){return p("li",{className:"flex flex-wrap items-center gap-1.5 text-xs",children:[l("span",{className:"font-mono",children:n.name}),l(Fe,{variant:"outline",children:n.type}),n.unique===!0&&l(Fe,{variant:"secondary",children:"unique"}),l("span",{className:"text-muted-foreground",children:n.fields.join(", ")})]},`${n.type}:${n.name}`)}function At(n){return n.name}export{Wt as SchemaViewer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as
|
|
1
|
+
import{c as G}from"react/compiler-runtime";import{E as X}from"../packem_shared/error-alert-CKqB2CiN.js";import{B as Y}from"../packem_shared/badge-cAk9Di1Q.js";import{C as M,a as P}from"../packem_shared/card-BGlQzQY-.js";import{T as Z,a as ee,b as J,c as Q,d as te,e as W}from"../packem_shared/table-BMsuYFhk.js";import{u as re}from"../packem_shared/use-admin-query-DV9xmFl8.js";import{useT as se}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.js";import{ADMIN_FUNCTIONS as le}from"../packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js";import{C as ne}from"../packem_shared/cf-links-CBJ5SywP.js";import{r as ae,u as ie,s as oe}from"../packem_shared/shortcuts-lH4Vaqjc.js";import{jsxs as d,jsx as r}from"react/jsx-runtime";const de={binding:"outline",secret:"destructive",var:"secondary"},ce=(s,e)=>{if(s===void 0)return[];const u=[];return s.workerUrl!==void 0&&u.push({label:e("URL"),value:s.workerUrl}),s.environment!==void 0&&u.push({label:e("Environment"),value:s.environment}),s.deploymentId!==void 0&&u.push({label:e("Deployment"),value:s.deploymentId}),s.versionTag!==void 0&&u.push({label:e("Version"),value:s.versionTag}),u},z=s=>{const e=G(18),{modifier:u,name:t,label:p}=s,F=ie();let b;e[0]!==t?(b=a=>{if(!["Escape","Tab"].includes(a.key)){if(a.shiftKey){a.preventDefault();return}a.preventDefault(),oe(t,a.key)}},e[0]=t,e[1]=b):b=e[1];const c=b,m=`set-shortcut-${t}`;let f;e[2]!==p?(f=r("dt",{className:"text-muted-foreground",children:p}),e[2]=p,e[3]=f):f=e[3];let h;e[4]!==u?(h=r("kbd",{className:"rounded border border-border px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground",children:u}),e[4]=u,e[5]=h):h=e[5];const n=`set-shortcut-input-${t}`,x=F[t];let i;e[6]!==p||e[7]!==c||e[8]!==n||e[9]!==x?(i=r("input",{"aria-label":p,className:"h-7 w-12 rounded-md border border-border bg-background text-center font-mono text-xs uppercase outline-none focus-visible:border-ring","data-testid":n,onKeyDown:c,readOnly:!0,value:x}),e[6]=p,e[7]=c,e[8]=n,e[9]=x,e[10]=i):i=e[10];let l;e[11]!==h||e[12]!==i?(l=d("dd",{className:"flex items-center gap-1.5",children:[h,i]}),e[11]=h,e[12]=i,e[13]=l):l=e[13];let o;return e[14]!==m||e[15]!==f||e[16]!==l?(o=d("div",{className:"contents","data-testid":m,children:[f,l]}),e[14]=m,e[15]=f,e[16]=l,e[17]=o):o=e[17],o},Ce=s=>{const e=G(85),{initialShardKey:u}=s,t=se();let p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p={},e[0]=p):p=e[0];const F=u??"";let b;e[1]!==F?(b={shardKey:F},e[1]=F,e[2]=b):b=e[2];const{data:c,error:m,errorSource:f,isLoading:h}=re(le.getSettings,p,b);let n,x,i,l,o,a,g;if(e[3]!==m||e[4]!==f||e[5]!==c?.deploy||e[6]!==c?.settings||e[7]!==t){const q=ce(c?.deploy,t);let H;e[15]!==c?.settings?(H=c?.settings??[],e[15]=c?.settings,e[16]=H):H=e[16],n=H,x="flex flex-col gap-4",i="lunora-settings";let j;e[17]!==t?(j=t("Open in Cloudflare"),e[17]=t,e[18]=j):j=e[18],e[19]!==j?(l=r("div",{className:"flex flex-wrap items-center gap-3",children:r("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"set-cf-link",href:ne,rel:"noreferrer",target:"_blank",children:j})}),e[19]=j,e[20]=l):l=e[20];let B;e[21]!==t?(B=t("View-only — values are masked. Edit vars, secrets, and bindings in wrangler or the Cloudflare dashboard."),e[21]=t,e[22]=B):B=e[22],e[23]!==B?(o=r("p",{className:"text-sm text-muted-foreground","data-testid":"set-readonly-note",children:B}),e[23]=B,e[24]=o):o=e[24],e[25]!==m||e[26]!==f?(a=m!==null&&r(X,{error:f,testId:"set-error"}),e[25]=m,e[26]=f,e[27]=a):a=e[27],g=q.length>0&&d(M,{className:"py-0","data-testid":"set-deploy",children:[r("header",{className:"border-b border-border px-4 py-3",children:r("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Deployment")})}),r(P,{className:"py-3",children:r("dl",{className:"grid grid-cols-[8rem_minmax(0,1fr)] gap-x-4 gap-y-1 text-sm",children:q.map(me)})})]}),e[3]=m,e[4]=f,e[5]=c?.deploy,e[6]=c?.settings,e[7]=t,e[8]=n,e[9]=x,e[10]=i,e[11]=l,e[12]=o,e[13]=a,e[14]=g}else n=e[8],x=e[9],i=e[10],l=e[11],o=e[12],a=e[13],g=e[14];let N;e[28]!==t?(N=t("Keyboard shortcuts"),e[28]=t,e[29]=N):N=e[29];let v;e[30]!==N?(v=r("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:N}),e[30]=N,e[31]=v):v=e[31];let y;e[32]!==t?(y=t("Reset"),e[32]=t,e[33]=y):y=e[33];let k;e[34]!==y?(k=r("button",{className:"rounded px-1 text-[11px] text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:text-foreground","data-testid":"set-shortcut-reset",onClick:ae,type:"button",children:y}),e[34]=y,e[35]=k):k=e[35];let w;e[36]!==v||e[37]!==k?(w=d("header",{className:"flex items-center justify-between border-b border-border px-4 py-3",children:[v,k]}),e[36]=v,e[37]=k,e[38]=w):w=e[38];let C;e[39]!==t?(C=t("Command palette"),e[39]=t,e[40]=C):C=e[40];let T;e[41]!==C?(T=r(z,{label:C,modifier:"⌘/Ctrl",name:"palette"}),e[41]=C,e[42]=T):T=e[42];let S;e[43]!==t?(S=t("Operation console"),e[43]=t,e[44]=S):S=e[44];let R;e[45]!==S?(R=r(z,{label:S,modifier:"Ctrl",name:"console"}),e[45]=S,e[46]=R):R=e[46];let _;e[47]!==T||e[48]!==R?(_=d("dl",{className:"grid grid-cols-[10rem_minmax(0,1fr)] items-center gap-x-4 gap-y-2 text-sm",children:[T,R]}),e[47]=T,e[48]=R,e[49]=_):_=e[49];let D;e[50]!==t?(D=t("Stored in this browser. Focus a box and press a key to rebind it."),e[50]=t,e[51]=D):D=e[51];let E;e[52]!==D?(E=r("p",{className:"pt-3 text-xs text-muted-foreground",children:D}),e[52]=D,e[53]=E):E=e[53];let I;e[54]!==_||e[55]!==E?(I=d(P,{className:"py-3",children:[_,E]}),e[54]=_,e[55]=E,e[56]=I):I=e[56];let K;e[57]!==w||e[58]!==I?(K=d(M,{className:"py-0","data-testid":"set-preferences",children:[w,I]}),e[57]=w,e[58]=I,e[59]=K):K=e[59];let A;e[60]!==t?(A=t("Environment & bindings"),e[60]=t,e[61]=A):A=e[61];let O;e[62]!==A?(O=r("header",{className:"border-b border-border px-4 py-3",children:r("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:A})}),e[62]=A,e[63]=O):O=e[63];let U;e[64]!==m||e[65]!==h||e[66]!==n.length||e[67]!==t?(U=m===null&&!h&&n.length===0&&r("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"set-empty",children:t("No environment variables or bindings.")}),e[64]=m,e[65]=h,e[66]=n.length,e[67]=t,e[68]=U):U=e[68];let L;e[69]!==n||e[70]!==t?(L=n.length>0&&r(P,{className:"px-0 py-0",children:d(Z,{"data-testid":"set-table",children:[r(ee,{children:d(J,{children:[r(Q,{children:t("name")}),r(Q,{children:t("kind")}),r(Q,{children:t("value")})]})}),r(te,{children:n.map(fe)})]})}),e[69]=n,e[70]=t,e[71]=L):L=e[71];let $;e[72]!==O||e[73]!==U||e[74]!==L?($=d(M,{className:"py-0",children:[O,U,L]}),e[72]=O,e[73]=U,e[74]=L,e[75]=$):$=e[75];let V;return e[76]!==K||e[77]!==$||e[78]!==x||e[79]!==i||e[80]!==l||e[81]!==o||e[82]!==a||e[83]!==g?(V=d("div",{className:x,"data-testid":i,children:[l,o,a,g,K,$]}),e[76]=K,e[77]=$,e[78]=x,e[79]=i,e[80]=l,e[81]=o,e[82]=a,e[83]=g,e[84]=V):V=e[84],V};function me(s){return d("div",{className:"contents","data-testid":"set-deploy-row",children:[r("dt",{className:"text-muted-foreground",children:s.label}),r("dd",{className:"truncate font-mono text-xs",title:s.value,children:s.value})]},s.label)}function fe(s){return d(J,{"data-testid":"set-row",children:[r(W,{className:"font-mono text-xs font-medium",children:s.name}),r(W,{children:r(Y,{variant:de[s.kind],children:s.bindingType??s.kind})}),r(W,{className:"max-w-[28ch] truncate font-mono text-xs text-muted-foreground",children:s.value??r("span",{className:"text-muted-foreground",children:"—"})})]},s.name)}export{Ce as SettingsPanel};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import{c as Y}from"react/compiler-runtime";import{useLunora as
|
|
2
|
-
${l}`})),
|
|
3
|
-
`;)n+=1;return n},
|
|
4
|
-
`,e);return t===-1?l.length:t}if(n==="/"&&l[e+1]==="*"){const t=l.indexOf("*/",e+2);return t===-1?l.length:t+2}return-1},Dt=l=>{let e="",n=0;for(;n<l.length;){const t=Ot(l,n);t===-1?(e+=l.slice(n,n+1),n+=1):(e+=l.slice(n,t).replaceAll(_t," "),n=t)}return e},Mt=l=>{const e=new Set;for(const n of l.matchAll(qt))e.add((n[1]??"").toLowerCase());return e},$t=(l,e)=>{const n=new Map;for(const t of l.matchAll(It)){const o=(t[1]??"").toLowerCase(),s=(t[2]??"").toLowerCase();e.has(o)&&(n.set(o,o),s!==""&&!At.has(s)&&n.set(s,o))}return n},Ye=(l,e)=>{const n=Dt(l),t=new Set(e.map(o=>o.toLowerCase()));return{ctes:Mt(n),masked:n,targets:$t(n,t)}},Bt=/^(?:__lunora|sqlite_)/iu,Pt=/\b(?:from|join)\s+([a-z_][\w$]*)/giu,Ht=/\b([a-z_][\w$]*)\.([a-z_][\w$]*)/giu,Wt=new Set(["cross","full","group","having","inner","join","lateral","left","limit","offset","order","right","select","union","where","window"]),Ft=(l,e,n)=>{const t=[];for(const o of l.matchAll(Pt)){const s=o[1]??"",r=s.toLowerCase();!e.has(r)&&!n.has(r)&&!Wt.has(r)&&!Bt.test(s)&&t.push({length:s.length,message:`unknown table \`${s}\``,offset:o.index+o[0].length-s.length,severity:"error",source:"schema"})}return t},Qt=(l,e,n)=>{const t=[],o=new Map;for(const[s,r]of Object.entries(e.columns))o.set(s.toLowerCase(),new Set(r.map(d=>d.toLowerCase())));for(const s of l.matchAll(Ht)){const r=(s[1]??"").toLowerCase(),d=s[2]??"",a=n.get(r),i=a===void 0?void 0:o.get(a);i!==void 0&&!i.has(d.toLowerCase())&&t.push({length:d.length,message:`\`${a??""}\` has no column \`${d}\``,offset:s.index+s[0].length-d.length,severity:"error",source:"schema"})}return t},zt=(l,e)=>{if(l.trim()==="")return[];const n=Lt(l);if(n!==void 0)return n.code==="SQL_EMPTY"?[]:[{length:n.length,message:n.message,offset:n.offset,severity:"error",source:"gate"}];const{ctes:t,masked:o,targets:s}=Ye(l,e.tables),r=new Set(e.tables.map(d=>d.toLowerCase()));return[...Ft(o,r,t),...Qt(o,e,s)]},Ut=Le(Re.lintSql),Yt=600,jt=(l,e,n)=>{const t=Oe(),[o,s]=oe([]),r=Be(()=>zt(l,e),[l,e]),d=st(l,Yt),i=r.some(u=>u.source==="gate")||d.trim()==="",m=Ze(async u=>{try{const x=await t.query(Ut,{sql:d},Te(n));u.cancelled||s(x.diagnostics??[])}catch{u.cancelled||s([])}},[t,d,n]);Ee(()=>{if(i){s([]);return}const u={cancelled:!1};return ce(m(u)),()=>{u.cancelled=!0}},[m,i]);const b=d===l;return Be(()=>b?[...r,...o]:r,[r,o,b])},Ce=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"],Gt=new Set(["AND","BY","HAVING","ON","OR","SELECT","WHERE"]),Vt=/[\w$]/,je=l=>l!==void 0&&Vt.test(l),Ke=l=>{let e=l.length;for(;e>0&&je(l[e-1]);)e-=1;return l.slice(e)},Ge=(l,e)=>{let n=e;for(;n>0&&je(l[n-1]);)n-=1;return{end:e,start:n,text:l.slice(n,e)}},We=(l,e)=>{const n=l.slice(0,e).trimEnd();return n.endsWith(".")||Gt.has(Ke(n).toUpperCase())},Jt=(l,e,n)=>{const t=l.slice(0,e);if(!t.endsWith("."))return;const o=Ke(t.slice(0,-1));if(o!=="")return Ye(l,n).targets.get(o.toLowerCase())??o},De=(l,e)=>l.toLowerCase().startsWith(e.toLowerCase()),Fe=(l,e,n,t)=>{const o=[];for(const s of l)if(De(s,e)&&(o.push(t(s)),o.length>=n))break;return o},Xt=(l,e,n)=>{const t=new Map;for(const[o,s]of Object.entries(l.columns))for(const r of s)if(De(r,e)&&!t.has(r)&&(t.set(r,o),t.size>=n))return[...t].map(([d,a])=>({detail:a,kind:"column",label:d}));return[...t].map(([o,s])=>({detail:s,kind:"column",label:o}))},Zt=(l,e,n)=>{const t=Ge(l,e),o=Jt(l,t.start,n.tables);if(o!==void 0){const i=n.columns[o]??n.columns[o.toLowerCase()]??[];return Fe(i,t.text,Ce,m=>({detail:o,kind:"column",label:m}))}if(t.text===""&&!We(l,t.start))return[];const s=Fe(n.tables,t.text,Ce,i=>({kind:"table",label:i})),r=Xt(n,t.text,Ce),d=Kt.flatMap(i=>t.text!==""&&De(i,t.text)&&i.toLowerCase()!==t.text.toLowerCase()?[{kind:"keyword",label:i}]:[]);return(We(l,t.start)?[...r,...s,...d]:[...s,...r,...d]).slice(0,Ce)},en=(l,e,n)=>{const t=Ge(l,e),o=l.slice(0,t.start)+n.label+l.slice(t.end);return{caret:t.start+n.label.length,value:o}},tn=["boxSizing","borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textTransform","width","wordSpacing"],nn=(l,e)=>{const n=globalThis.getComputedStyle(l),t=globalThis.document.createElement("div"),{style:o}=t;o.position="absolute",o.visibility="hidden",o.whiteSpace="pre-wrap",o.overflowWrap="break-word";for(const a of tn)o[a]=n[a];t.textContent=l.value.slice(0,Math.max(0,e));const s=globalThis.document.createElement("span");s.textContent=l.value.slice(Math.max(0,e))||".",t.append(s),globalThis.document.body.append(t);const r=s.offsetLeft-l.scrollLeft,d=s.offsetTop-l.scrollTop;return t.remove(),{left:r,top:d}},sn=(l,e,n)=>{const t=Y(16),[o,s]=oe(null);let r;t[0]!==l||t[1]!==e?(r=(v,p)=>{const h=Zt(v,p,l);if(h.length===0){s(null);return}const S=e.current,{left:w,top:C}=S===null?{left:0,top:0}:nn(S,p);s(T=>T!==null&&T.active===0&&T.left===w&&T.top===C&&T.suggestions.length===h.length&&T.suggestions.every((R,I)=>{const N=h.at(I);return R.kind===N?.kind&&R.label===N.label&&R.detail===N.detail})?T:{active:0,left:w,suggestions:h,top:C})},t[0]=l,t[1]=e,t[2]=r):r=t[2];const d=r;let a;t[3]===Symbol.for("react.memo_cache_sentinel")?(a=()=>{s(null)},t[3]=a):a=t[3];const i=a;let m;t[4]===Symbol.for("react.memo_cache_sentinel")?(m=v=>{s(p=>{if(p===null)return p;const h=p.suggestions.length,S=(p.active+v+h)%h;return{...p,active:S}})},t[4]=m):m=t[4];const b=m;let u;t[5]!==n||t[6]!==o||t[7]!==e?(u=v=>{const p=e.current;if(o===null||p===null)return!1;const h=o.suggestions[v??o.active];if(h===void 0)return!1;const S=en(p.value,p.selectionStart,h);return n(S.value),s(null),requestAnimationFrame(()=>{const w=e.current;w!==null&&(w.focus(),w.setSelectionRange(S.caret,S.caret))}),!0},t[5]=n,t[6]=o,t[7]=e,t[8]=u):u=t[8];const x=u;let c;t[9]!==x?(c=()=>x(),t[9]=x,t[10]=c):c=t[10];const g=c;let y;return t[11]!==g||t[12]!==x||t[13]!==d||t[14]!==o?(y={close:i,commit:g,commitAt:x,move:b,refresh:d,state:o},t[11]=g,t[12]=x,t[13]=d,t[14]=o,t[15]=y):y=t[15],y},on={column:"column",keyword:"keyword",table:"table"},ln=20,rn=l=>{const e=Y(17),{listboxId:n,onPick:t,state:o}=l,s=le();let r;e[0]!==o?(r=o===null?void 0:{left:o.left,top:o.top+ln},e[0]=o,e[1]=r):r=e[1];const d=r;if(o===null)return null;let a;if(e[2]!==n||e[3]!==t||e[4]!==o.active||e[5]!==o.suggestions||e[6]!==s){let m;e[8]!==n||e[9]!==t||e[10]!==o.active||e[11]!==s?(m=(b,u)=>$("li",{"aria-selected":u===o.active,className:ue("flex cursor-pointer items-center gap-2 px-2 py-1 text-[13px]",u===o.active?"bg-accent text-accent-foreground":"text-foreground"),"data-testid":"sql-autocomplete-item",id:`${n}-opt-${u.toString()}`,onMouseDown:x=>{x.preventDefault(),t(u)},role:"option",children:[f("span",{className:"truncate font-mono",children:b.label}),b.detail!==void 0&&f("span",{className:"ms-auto truncate text-xs text-muted-foreground",children:b.detail}),f("span",{className:"shrink-0 font-mono text-[10px] tracking-wide text-muted-foreground/70 uppercase",children:s(on[b.kind])})]},`${b.kind}:${b.label}`),e[8]=n,e[9]=t,e[10]=o.active,e[11]=s,e[12]=m):m=e[12],a=o.suggestions.map(m),e[2]=n,e[3]=t,e[4]=o.active,e[5]=o.suggestions,e[6]=s,e[7]=a}else a=e[7];let i;return e[13]!==n||e[14]!==d||e[15]!==a?(i=f("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:n,role:"listbox",style:d,children:a}),e[13]=n,e[14]=d,e[15]=a,e[16]=i):i=e[16],i},an=Le(Re.listTables),cn=Le(Re.readTablePage),dn=l=>{const e=Y(16),n=Oe();let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=[],e[0]=t):t=e[0];const[o,s]=oe(t);let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r={},e[1]=r):r=e[1];const[d,a]=oe(r);let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=new Set,e[2]=i):i=e[2];const m=Se(i);let b,u;e[3]!==n||e[4]!==l?(b=()=>{const p={cancelled:!1};return ce((async()=>{try{const S=await n.query(an,{},Te(l));p.cancelled||(s(S.map(fn)),a({}),m.current=new Set)}catch{p.cancelled||(s([]),a({}),m.current=new Set)}})()),()=>{p.cancelled=!0}},u=[n,l],e[3]=n,e[4]=l,e[5]=b,e[6]=u):(b=e[5],u=e[6]),Ee(b,u);let x;e[7]!==n||e[8]!==l?(x=p=>{if(m.current.has(p))return;m.current.add(p),ce((async()=>{try{const S=await n.query(cn,{limit:1,offset:0,table:p},Te(l));a(w=>({...w,[p]:S.columns}))}catch{m.current.delete(p)}})())},e[7]=n,e[8]=l,e[9]=x):x=e[9];const c=x;let g;e[10]!==d||e[11]!==o?(g={columns:d,tables:o},e[10]=d,e[11]=o,e[12]=g):g=e[12];const y=g;let v;return e[13]!==c||e[14]!==y?(v={probe:c,schema:y},e[13]=c,e[14]=y,e[15]=v):v=e[15],v},Ae=/\b(?:from|join|update|into)\s+([a-z_][\w$]*)|\b([a-z_][\w$]*)\s*\./gi,un=l=>{const e=new Set;Ae.lastIndex=0;let n=Ae.exec(l);for(;n!==null;)e.add(n[1]??n[2]),n=Ae.exec(l);return[...e]};function fn(l){return l.name}const mn=l=>{const e=Y(34),{onSubmit:n,probe:t,schema:o,setDraft:s}=l,r=et(),d=Se(null),a=Se(null),i=Se(null),m=sn(o,i,s),{close:b,commit:u,commitAt:x,move:c,refresh:g,state:y}=m;let v;e[0]!==x?(v=E=>{x(E)},e[0]=x,e[1]=v):v=e[1];const p=v;let h;e[2]!==g?(h=()=>{const E=i.current;E!==null&&E===document.activeElement&&g(E.value,E.selectionStart)},e[2]=g,e[3]=h):h=e[3];let S;e[4]!==g||e[5]!==o?(S=[g,o],e[4]=g,e[5]=o,e[6]=S):S=e[6],Ee(h,S);let w;e[7]!==t||e[8]!==g||e[9]!==s?(w=E=>{const{selectionStart:B,value:F}=E.target;s(F);for(const W of un(F))t(W);g(F,B)},e[7]=t,e[8]=g,e[9]=s,e[10]=w):w=e[10];const C=w;let T;e[11]!==g?(T=E=>{const B=E.currentTarget;g(B.value,B.selectionStart)},e[11]=g,e[12]=T):T=e[12];const L=T;let R;e[13]!==y||e[14]!==b||e[15]!==u||e[16]!==c||e[17]!==n?(R=E=>{if(y!==null){if(E.key==="ArrowDown"){E.preventDefault(),c(1);return}if(E.key==="ArrowUp"){E.preventDefault(),c(-1);return}if(E.key==="Escape"){E.preventDefault(),b();return}if((E.key==="Enter"||E.key==="Tab")&&!E.metaKey&&!E.ctrlKey&&u()){E.preventDefault();return}}(E.metaKey||E.ctrlKey)&&E.key==="Enter"&&(E.preventDefault(),n())},e[13]=y,e[14]=b,e[15]=u,e[16]=c,e[17]=n,e[18]=R):R=e[18];const I=R;let N;e[19]!==b?(N=()=>{requestAnimationFrame(()=>{b()})},e[19]=b,e[20]=N):N=e[20];const _=N;let O;e[21]===Symbol.for("react.memo_cache_sentinel")?(O=E=>{const{scrollLeft:B,scrollTop:F}=E.currentTarget;d.current!==null&&(d.current.scrollTop=F),a.current!==null&&(a.current.scrollTop=F,a.current.scrollLeft=B)},e[21]=O):O=e[21];const A=O;let k;e[22]===Symbol.for("react.memo_cache_sentinel")?(k=E=>{const B=i.current;B===null||E.offset===void 0||(B.focus(),B.setSelectionRange(E.offset,E.offset+(E.length??0)))},e[22]=k):k=e[22];const q=k;let M;e[23]!==C||e[24]!==_||e[25]!==I||e[26]!==L?(M={onBlur:_,onChange:C,onKeyDown:I,onScroll:A,onSelect:L},e[23]=C,e[24]=_,e[25]=I,e[26]=L,e[27]=M):M=e[27];let D;return e[28]!==y||e[29]!==b||e[30]!==r||e[31]!==p||e[32]!==M?(D={autocompleteState:y,closeAutocomplete:b,handlers:M,listboxId:r,onPickSuggestion:p,editorRef:i,gutterRef:d,overlayRef:a,revealDiagnostic:q},e[28]=y,e[29]=b,e[30]=r,e[31]=p,e[32]=M,e[33]=D):D=e[33],D},hn="lunora-studio-sql-tabs",pn="lunora-studio-sql-active-tab",Me=12,ve=(l="",e="")=>({activeId:null,id:ze("tab"),name:e,sql:l}),bn=()=>Ue(pn,""),gn=l=>{const e=Y(16),[n,t]=_e(hn),[o,s]=bn(),[r]=oe(l);let d,a;e[0]!==r||e[1]!==t||e[2]!==n.length?(d=()=>{n.length===0&&t([r])},a=[r,t,n.length],e[0]=r,e[1]=t,e[2]=n.length,e[3]=d,e[4]=a):(d=e[3],a=e[4]),Ee(d,a);let i;e[5]!==r||e[6]!==n?(i=n.length===0?[r]:n,e[5]=r,e[6]=n,e[7]=i):i=e[7];const m=i;let b;e[8]!==o||e[9]!==m?(b=m.some(c=>c.id===o)?o:m[0]?.id??"",e[8]=o,e[9]=m,e[10]=b):b=e[10];const u=b;let x;return e[11]!==u||e[12]!==s||e[13]!==t||e[14]!==m?(x={activeId:u,setActiveId:s,setTabs:t,tabs:m},e[11]=u,e[12]=s,e[13]=t,e[14]=m,e[15]=x):x=e[15],x},Ve=l=>l.activeId===null&&l.sql.trim()!=="",xn=(l,e)=>[...l,e].slice(-Me),yn=(l,e,n)=>{const t=l.findIndex(r=>r.id===e);if(t===-1)return{activeId:l[0]?.id??"",tabs:[...l]};const o=l.filter(r=>r.id!==e);if(o.length===0){const r=n();return{activeId:r.id,tabs:[r]}}return{activeId:o[Math.min(t,o.length-1)].id,tabs:o}},vn=(l,e)=>{const n=l.filter(t=>t.id===e);return n.length===0?{activeId:l[0]?.id??"",tabs:[...l]}:{activeId:e,tabs:n}},Sn=(l,e,n)=>{const t=l.findIndex(s=>s.id===e);if(t===-1)return{activeId:n,tabs:[...l]};const o=l.slice(0,t+1);return{activeId:o.some(s=>s.id===n)?n:e,tabs:o}},wn=l=>{const e=l();return{activeId:e.id,tabs:[e]}},Cn=(l,e,n)=>{if(l==="others")return e.filter(t=>t.id!==n);if(l==="right"){const t=e.findIndex(o=>o.id===n);return t===-1?[]:e.slice(t+1)}return[...e]},Qe={error:null,pane:"results",result:null,running:!1},Nn=l=>{const e=Y(66),{activeId:n,setActiveId:t,setTabs:o,tabs:s}=gn(l);let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r={},e[0]=r):r=e[0];const[d,a]=oe(r),[i,m]=oe(null),[b,u]=oe(null);let x;e[1]!==n||e[2]!==s?(x=s.find(H=>H.id===n)??s[0]??ve(),e[1]=n,e[2]=s,e[3]=x):x=e[3];const c=x,g=d[c.id]??Qe;let y;e[4]!==c.id||e[5]!==o?(y=H=>{o(z=>z.map(j=>j.id===c.id?{...j,...H}:j))},e[4]=c.id,e[5]=o,e[6]=y):y=e[6];const v=y;let p;e[7]!==c.id?(p=H=>{a(z=>{const j=z[c.id]??Qe;return{...z,[c.id]:{...j,...H}}})},e[7]=c.id,e[8]=p):p=e[8];const h=p;let S;e[9]!==t||e[10]!==o||e[11]!==s.length?(S=()=>{if(s.length>=Me)return;const H=ve();o(z=>xn(z,H)),t(H.id)},e[9]=t,e[10]=o,e[11]=s.length,e[12]=S):S=e[12];const w=S;let C;e[13]!==t||e[14]!==o?(C=H=>{m(null),u(null),o(H.tabs),t(H.activeId);const z=new Set(H.tabs.map(Tn));a(j=>Object.fromEntries(Object.entries(j).filter(ie=>{const[ye]=ie;return z.has(ye)})))},e[13]=t,e[14]=o,e[15]=C):C=e[15];const T=C;let L;e[16]!==T||e[17]!==s?(L=H=>{T(yn(s,H,ve))},e[16]=T,e[17]=s,e[18]=L):L=e[18];const R=L;let I;e[19]!==n||e[20]!==T||e[21]!==s?(I=(H,z)=>{T(H==="others"?vn(s,z):H==="right"?Sn(s,z,n):wn(ve))},e[19]=n,e[20]=T,e[21]=s,e[22]=I):I=e[22];const N=I;let _;e[23]!==N||e[24]!==i||e[25]!==s?(_=H=>{i!==null&&(Cn(H,s,i.id).some(kn)?u(H):N(H,i.id))},e[23]=N,e[24]=i,e[25]=s,e[26]=_):_=e[26];const O=_;let A;e[27]===Symbol.for("react.memo_cache_sentinel")?(A=(H,z)=>{z.preventDefault(),u(null),m({id:H,x:z.clientX,y:z.clientY})},e[27]=A):A=e[27];const k=A;let q;e[28]===Symbol.for("react.memo_cache_sentinel")?(q=()=>{m(null),u(null)},e[28]=q):q=e[28];const M=q;let D;e[29]===Symbol.for("react.memo_cache_sentinel")?(D=H=>{H.preventDefault(),m(null),u(null)},e[29]=D):D=e[29];const E=D;let B;e[30]!==O?(B=()=>{O("others")},e[30]=O,e[31]=B):B=e[31];const F=B;let W;e[32]!==O?(W=()=>{O("right")},e[32]=O,e[33]=W):W=e[33];const U=W;let Q;e[34]!==O?(Q=()=>{O("all")},e[34]=O,e[35]=Q):Q=e[35];const K=Q;let G;e[36]!==N||e[37]!==b||e[38]!==i?(G=()=>{i!==null&&b!==null&&N(b,i.id),u(null)},e[36]=N,e[37]=b,e[38]=i,e[39]=G):G=e[39];const P=G;let V;e[40]===Symbol.for("react.memo_cache_sentinel")?(V=()=>{u(null)},e[40]=V):V=e[40];const ne=V;let J;e[41]!==i?(J=i===null?void 0:{left:i.x,top:i.y},e[41]=i,e[42]=J):J=e[42];const X=J;let Z;e[43]!==o?(Z=H=>{o(z=>z.map(j=>j.activeId===H?{...j,activeId:null}:j))},e[43]=o,e[44]=Z):Z=e[44];const ee=Z;let te;e[45]!==o?(te=(H,z)=>{o(j=>j.map(ie=>ie.id===H?{...ie,name:z}:ie))},e[45]=o,e[46]=te):te=e[46];const se=te;let ae;return e[47]!==c||e[48]!==n||e[49]!==w||e[50]!==R||e[51]!==P||e[52]!==K||e[53]!==F||e[54]!==U||e[55]!==g||e[56]!==h||e[57]!==v||e[58]!==b||e[59]!==se||e[60]!==t||e[61]!==i||e[62]!==X||e[63]!==s||e[64]!==ee?(ae={activeTab:c,activeTabId:n,addEditorTab:w,cancelBulk:ne,closeEditorTab:R,closeTabMenu:M,confirmBulk:P,menuStyle:X,onBackdropContextMenu:E,onCloseAll:K,onCloseOthers:F,onCloseToRight:U,openTabMenu:k,output:g,patchActiveOutput:h,patchActiveTab:v,pendingBulk:b,renameTab:se,setActiveTabId:t,tabMenu:i,tabs:s,unlinkQuery:ee},e[47]=c,e[48]=n,e[49]=w,e[50]=R,e[51]=P,e[52]=K,e[53]=F,e[54]=U,e[55]=g,e[56]=h,e[57]=v,e[58]=b,e[59]=se,e[60]=t,e[61]=i,e[62]=X,e[63]=s,e[64]=ee,e[65]=ae):ae=e[65],ae};function Tn(l){return l.id}function kn(l){return Ve(l)}const En="lunora-studio-sql-queries",Rn="lunora-studio-sql-history",Ln=25,In=l=>{const e=Y(33),{loadIntoActiveTab:n,unlinkQuery:t}=l,o=le(),[s,r]=_e(En),[d,a]=_e(Rn),[i,m]=oe(""),b=Se(null);let u;e[0]!==a?(u=k=>{a(q=>q[0]?.sql===k?q:[{at:Date.now(),sql:k},...q.filter(D=>D.sql!==k)].slice(0,Ln))},e[0]=a,e[1]=u):u=e[1];const x=u;let c;e[2]!==n||e[3]!==r||e[4]!==o?(c=()=>{const k={id:ze("q"),name:o("Untitled query"),sql:""};r(q=>[k,...q]),n("",k.id)},e[2]=n,e[3]=r,e[4]=o,e[5]=c):c=e[5];const g=c;let y;e[6]!==n||e[7]!==s?(y=k=>{const q=s.find(M=>M.id===k);q!==void 0&&(n(q.sql,k),b.current?.querySelector(`[data-testid="sql-query-${k}"]`)?.scrollIntoView({block:"nearest"}))},e[6]=n,e[7]=s,e[8]=y):y=e[8];const v=y;let p;e[9]!==r||e[10]!==t?(p=k=>{r(q=>q.filter(M=>M.id!==k)),t(k)},e[9]=r,e[10]=t,e[11]=p):p=e[11];const h=p;let S;e[12]!==n?(S=k=>{n(k.currentTarget.dataset.sql??"",null)},e[12]=n,e[13]=S):S=e[13];const w=S;let C;e[14]!==n?(C=k=>{n(k.currentTarget.dataset.sql??"",null)},e[14]=n,e[15]=C):C=e[15];const T=C;let L;e[16]!==a?(L=()=>{a([])},e[16]=a,e[17]=L):L=e[17];const R=L;let I;e[18]===Symbol.for("react.memo_cache_sentinel")?(I=k=>{m(k.target.value)},e[18]=I):I=e[18];const N=I;let _;e[19]!==r?(_=(k,q)=>{r(M=>M.map(D=>D.id===k?{...D,sql:q}:D))},e[19]=r,e[20]=_):_=e[20];const O=_;let A;return e[21]!==R||e[22]!==h||e[23]!==d||e[24]!==T||e[25]!==w||e[26]!==g||e[27]!==s||e[28]!==x||e[29]!==i||e[30]!==v||e[31]!==O?(A={clearHistory:R,deleteQuery:h,history:d,listRef:b,loadFromHistory:T,loadTemplate:w,newQuery:g,onSearchChange:N,queries:s,recordHistory:x,search:i,selectQuery:v,updateQuerySql:O},e[21]=R,e[22]=h,e[23]=d,e[24]=T,e[25]=w,e[26]=g,e[27]=s,e[28]=x,e[29]=i,e[30]=v,e[31]=O,e[32]=A):A=e[32],A},Je="p-3 font-mono text-xs leading-5 whitespace-pre-wrap break-words",qn=(l,e)=>{const n=[];for(const o of l){if(o.offset===void 0||o.length===void 0||o.length<=0)continue;const s=Math.max(0,Math.min(o.offset,e)),r=Math.max(s,Math.min(o.offset+o.length,e));s!==r&&n.push({end:r,severity:o.severity,start:s})}n.sort((o,s)=>o.start-s.start);const t=[];for(const o of n)o.start>=(t.at(-1)?.end??0)&&t.push(o);return t},An=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.",_n=l=>{const e=Y(51),{assistant:n,failed:t,onGenerated:o}=l,s=le(),[r,d]=oe("");if(n.unavailable)return null;let a;e[0]!==n?(a=n.pending("sql"),e[0]=n,e[1]=a):a=e[1];const i=a;let m;if(e[2]!==n||e[3]!==t||e[4]!==o||e[5]!==i||e[6]!==r||e[7]!==s){const b=n.reason("sql");let u;e[9]!==n||e[10]!==t||e[11]!==o||e[12]!==r?(u=N=>{const _=r.trim();if(_===""&&!N)return;ce((async()=>{const A=await n.generate(_===""?"fix the failing statement":_,N?t:void 0);A!==void 0&&o(A)})())},e[9]=n,e[10]=t,e[11]=o,e[12]=r,e[13]=u):u=e[13];const x=u;let c;e[14]!==s?(c=s("Describe the query you want"),e[14]=s,e[15]=c):c=e[15];let g;e[16]===Symbol.for("react.memo_cache_sentinel")?(g=N=>{d(N.target.value)},e[16]=g):g=e[16];let y;e[17]!==x?(y=N=>{N.key==="Enter"&&(N.preventDefault(),x(!1))},e[17]=x,e[18]=y):y=e[18];let v;e[19]!==s?(v=s("Describe the query you want"),e[19]=s,e[20]=v):v=e[20];let p;e[21]!==i||e[22]!==r||e[23]!==c||e[24]!==y||e[25]!==v?(p=f(ot,{"aria-label":c,className:"h-7 flex-1 text-xs","data-testid":"sql-assistant-prompt",disabled:i,onChange:g,onKeyDown:y,placeholder:v,value:r}),e[21]=i,e[22]=r,e[23]=c,e[24]=y,e[25]=v,e[26]=p):p=e[26];const h=i&&"opacity-60";let 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 w;e[29]!==i||e[30]!==r?(w=i||r.trim()==="",e[29]=i,e[30]=r,e[31]=w):w=e[31];let C;e[32]!==x?(C=()=>{x(!1)},e[32]=x,e[33]=C):C=e[33];let T;e[34]!==i||e[35]!==s?(T=s(i?"Thinking…":"Draft SQL"),e[34]=i,e[35]=s,e[36]=T):T=e[36];let L;e[37]!==S||e[38]!==w||e[39]!==C||e[40]!==T?(L=f("button",{className:S,"data-testid":"sql-assistant-generate",disabled:w,onClick:C,type:"button",children:T}),e[37]=S,e[38]=w,e[39]=C,e[40]=T,e[41]=L):L=e[41];let R;e[42]!==t||e[43]!==i||e[44]!==x||e[45]!==s?(R=t!==void 0&&f("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:i,onClick:()=>{x(!0)},type:"button",children:s("Fix this")}),e[42]=t,e[43]=i,e[44]=x,e[45]=s,e[46]=R):R=e[46];let I;e[47]!==L||e[48]!==R||e[49]!==p?(I=$("div",{className:"flex items-center gap-2",children:[p,L,R]}),e[47]=L,e[48]=R,e[49]=p,e[50]=I):I=e[50],m=$("div",{className:"flex flex-col gap-1 border-b border-border px-3 py-2","data-testid":"sql-assistant",children:[I,b!==void 0&&f("p",{className:"text-[11px] text-muted-foreground","data-testid":"sql-assistant-reason",role:"status",children:An(b)})]}),e[2]=n,e[3]=t,e[4]=o,e[5]=i,e[6]=r,e[7]=s,e[8]=m}else m=e[8];return m},On=l=>{const e=Y(8),{diagnostics:n,draft:t,scrollRef:o}=l;let s,r;if(e[0]!==n||e[1]!==t){r=Symbol.for("react.early_return_sentinel");e:{const i=qn(n,t.length);if(i.length===0){r=null;break e}s=[];let m=0;for(const[b,u]of i.entries())u.start>m&&s.push(t.slice(m,u.start)),s.push(f("span",{className:ue("decoration-wavy underline underline-offset-4",u.severity==="error"?"decoration-destructive":"decoration-amber-500"),children:t.slice(u.start,u.end)},`${u.start.toString()}-${b.toString()}`)),m=u.end;s.push(t.slice(m))}e[0]=n,e[1]=t,e[2]=s,e[3]=r}else s=e[2],r=e[3];if(r!==Symbol.for("react.early_return_sentinel"))return r;let d;e[4]===Symbol.for("react.memo_cache_sentinel")?(d=ue("pointer-events-none absolute inset-0 overflow-hidden text-transparent",Je),e[4]=d):d=e[4];let a;return e[5]!==s||e[6]!==o?(a=f("div",{"aria-hidden":"true",className:d,"data-testid":"sql-diagnostics-overlay",ref:o,children:s}),e[5]=s,e[6]=o,e[7]=a):a=e[7],a},Dn={gate:"read-only",plan:"plan",schema:"schema",syntax:"syntax"},Mn=l=>{const e=Y(10),{diagnostics:n,onSelect:t}=l,o=le();if(n.length===0)return null;let s;e[0]!==o?(s=o("SQL problems"),e[0]=o,e[1]=s):s=e[1];let r;if(e[2]!==n||e[3]!==t){let a;e[5]!==t?(a=(i,m)=>f("li",{children:$("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:()=>{t(i)},type:"button",children:[f("span",{className:ue("mt-px shrink-0 rounded px-1 font-mono text-[10px] uppercase",i.severity==="error"?"bg-destructive/15 text-destructive":"bg-amber-500/15 text-amber-600"),children:Dn[i.source]}),f("span",{className:"min-w-0 text-muted-foreground",children:i.message})]})},`${i.source}-${(i.offset??m).toString()}-${m.toString()}`),e[5]=t,e[6]=a):a=e[6],r=n.map(a),e[2]=n,e[3]=t,e[4]=r}else r=e[4];let d;return e[7]!==s||e[8]!==r?(d=f("ul",{"aria-label":s,className:"max-h-24 shrink-0 overflow-y-auto border-t border-border bg-muted/30","data-testid":"sql-problems",children:r}),e[7]=s,e[8]=r,e[9]=d):d=e[9],d},$n={minWidth:"2.75rem",paddingInline:"0.5rem"},Bn=l=>{const e=Y(64),{assistant:n,autocomplete:t,diagnostics:o,draft:s,failed:r,handlers:d,editorRef:a,gutterRef:i,listboxId:m,onGenerated:b,onPickSuggestion:u,onRevealDiagnostic:x,overlayRef:c}=l,g=le();let y,v,p,h,S,w,C,T;if(e[0]!==n||e[1]!==s||e[2]!==r||e[3]!==i||e[4]!==b){const B=s.split(`
|
|
5
|
-
`).length;C="flex min-h-0 min-w-0 flex-1 flex-col",e[13]!==n||e[14]!==r||e[15]!==b?(T=f(_n,{assistant:n,failed:r,onGenerated:b}),e[13]=n,e[14]=r,e[15]=b,e[16]=T):T=e[16],w="flex min-h-0 min-w-0 flex-1",y="true",v="shrink-0 select-none overflow-hidden border-e border-border bg-muted/30 py-3 text-end font-mono text-xs leading-5 text-muted-foreground/60",p=i,h=$n,S=Array.from({length:B},Pn),e[0]=n,e[1]=s,e[2]=r,e[3]=i,e[4]=b,e[5]=y,e[6]=v,e[7]=p,e[8]=h,e[9]=S,e[10]=w,e[11]=C,e[12]=T}else y=e[5],v=e[6],p=e[7],h=e[8],S=e[9],w=e[10],C=e[11],T=e[12];let L;e[17]!==y||e[18]!==v||e[19]!==p||e[20]!==h||e[21]!==S?(L=f("div",{"aria-hidden":y,className:v,ref:p,style:h,children:S}),e[17]=y,e[18]=v,e[19]=p,e[20]=h,e[21]=S,e[22]=L):L=e[22];let R;e[23]!==o||e[24]!==s||e[25]!==c?(R=f(On,{diagnostics:o,draft:s,scrollRef:c}),e[23]=o,e[24]=s,e[25]=c,e[26]=R):R=e[26];let I;e[27]!==t||e[28]!==m?(I=t===null?void 0:`${m}-opt-${t.active.toString()}`,e[27]=t,e[28]=m,e[29]=I):I=e[29];const N=t===null?void 0:m,_=t!==null;let O;e[30]!==g?(O=g("SQL query"),e[30]=g,e[31]=O):O=e[31];let A;e[32]!==s||e[33]!==a||e[34]!==d.onBlur||e[35]!==d.onChange||e[36]!==d.onKeyDown||e[37]!==d.onScroll||e[38]!==d.onSelect||e[39]!==I||e[40]!==N||e[41]!==_||e[42]!==O?(A=f("textarea",{"aria-activedescendant":I,"aria-autocomplete":"list","aria-controls":N,"aria-expanded":_,"aria-label":O,className:`relative size-full resize-none bg-transparent outline-none ${Je}`,"data-testid":"sql-input",onBlur:d.onBlur,onChange:d.onChange,onKeyDown:d.onKeyDown,onScroll:d.onScroll,onSelect:d.onSelect,placeholder:"SELECT * FROM …",ref:a,role:"combobox",spellCheck:!1,value:s}),e[32]=s,e[33]=a,e[34]=d.onBlur,e[35]=d.onChange,e[36]=d.onKeyDown,e[37]=d.onScroll,e[38]=d.onSelect,e[39]=I,e[40]=N,e[41]=_,e[42]=O,e[43]=A):A=e[43];let k;e[44]!==t||e[45]!==m||e[46]!==u?(k=f(rn,{listboxId:m,onPick:u,state:t}),e[44]=t,e[45]=m,e[46]=u,e[47]=k):k=e[47];let q;e[48]!==R||e[49]!==A||e[50]!==k?(q=$("div",{className:"relative min-w-0 flex-1 bg-background",children:[R,A,k]}),e[48]=R,e[49]=A,e[50]=k,e[51]=q):q=e[51];let M;e[52]!==q||e[53]!==w||e[54]!==L?(M=$("div",{className:w,children:[L,q]}),e[52]=q,e[53]=w,e[54]=L,e[55]=M):M=e[55];let D;e[56]!==o||e[57]!==x?(D=f(Mn,{diagnostics:o,onSelect:x}),e[56]=o,e[57]=x,e[58]=D):D=e[58];let E;return e[59]!==M||e[60]!==D||e[61]!==C||e[62]!==T?(E=$("div",{className:C,children:[T,M,D]}),e[59]=M,e[60]=D,e[61]=C,e[62]=T,e[63]=E):E=e[63],E};function Pn(l,e){return f("div",{children:e+1},e)}const Xe=[{label:"List tables",sql:"SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY name;"},{label:"Table row count",sql:"SELECT COUNT(*) AS rows FROM messages;"},{label:"Recent rows",sql:"SELECT id, _creationTime, __doc__ FROM messages ORDER BY _creationTime DESC LIMIT 50;"},{label:"Index list",sql:"SELECT name, tbl_name FROM sqlite_master WHERE type = 'index' ORDER BY tbl_name;"}],Hn=l=>{const e=Y(29),{active:n,onDelete:t,onSelect:o,query:s}=l,r=le();let d;e[0]!==o||e[1]!==s.id?(d=()=>{o(s.id)},e[0]=o,e[1]=s.id,e[2]=d):d=e[2];const a=d;let i;e[3]!==t||e[4]!==s.id?(i=C=>{C.stopPropagation(),t(s.id)},e[3]=t,e[4]=s.id,e[5]=i):i=e[5];const m=i,b=n?"bg-sidebar-accent font-medium text-foreground":"text-muted-foreground";let u;e[6]!==b?(u=ue("flex min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-start text-[13px] outline-none transition-colors hover:bg-sidebar-accent focus-visible:bg-sidebar-accent",b),e[6]=b,e[7]=u):u=e[7];const x=`sql-query-${s.id}`;let c;e[8]===Symbol.for("react.memo_cache_sentinel")?(c=f("svg",{"aria-hidden":"true",className:"size-3.5 shrink-0 opacity-70",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:f("path",{d:"M4 6h16M4 12h10M4 18h7"})}),e[8]=c):c=e[8];let g;e[9]!==s.name?(g=f("span",{className:"truncate",children:s.name}),e[9]=s.name,e[10]=g):g=e[10];let y;e[11]!==n||e[12]!==a||e[13]!==u||e[14]!==x||e[15]!==g?(y=$("button",{"aria-pressed":n,className:u,"data-testid":x,onClick:a,type:"button",children:[c,g]}),e[11]=n,e[12]=a,e[13]=u,e[14]=x,e[15]=g,e[16]=y):y=e[16];let v;e[17]!==r?(v=r("Delete query"),e[17]=r,e[18]=v):v=e[18];let p;e[19]!==r?(p=r("Delete query"),e[19]=r,e[20]=p):p=e[20];let h;e[21]===Symbol.for("react.memo_cache_sentinel")?(h=f("svg",{"aria-hidden":"true",className:"size-3.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:f("path",{d:"M5 7h14M9 7V5h6v2m-1 0v12H10V7M7 7v13h10V7"})}),e[21]=h):h=e[21];let S;e[22]!==m||e[23]!==p||e[24]!==v?(S=f("button",{"aria-label":v,className:"me-1 hidden size-6 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-destructive/10 hover:text-destructive group-hover/q:flex",onClick:m,title:p,type:"button",children:h}),e[22]=m,e[23]=p,e[24]=v,e[25]=S):S=e[25];let w;return e[26]!==S||e[27]!==y?(w=$("li",{className:"group/q flex items-center",children:[y,S]}),e[26]=S,e[27]=y,e[28]=w):w=e[28],w},Wn=(l,e)=>{const n=e.trim().toLowerCase();return n===""?[...l]:l.filter(t=>t.name.toLowerCase().includes(n))},Fn=l=>{const e=Y(60),{activeId:n,history:t,listRef:o,onClearHistory:s,onDelete:r,onLoadHistory:d,onLoadTemplate:a,onNew:i,onSearchChange:m,onSelect:b,queries:u,search:x}=l,c=le();let g,y,v,p;if(e[0]!==n||e[1]!==o||e[2]!==r||e[3]!==i||e[4]!==m||e[5]!==b||e[6]!==u||e[7]!==x||e[8]!==c){const N=Wn(u,x);y="flex h-full w-64 shrink-0 flex-col border-e border-border bg-sidebar";let _;e[13]!==c?(_=c("Search queries…"),e[13]=c,e[14]=_):_=e[14];let O;e[15]!==m||e[16]!==x||e[17]!==_?(O=f("input",{className:"h-8 min-w-0 flex-1 rounded-md border border-border bg-background px-2 text-xs outline-none focus-visible:border-ring","data-testid":"sql-search",onChange:m,placeholder:_,type:"text",value:x}),e[15]=m,e[16]=x,e[17]=_,e[18]=O):O=e[18];let A;e[19]!==c?(A=c("New query"),e[19]=c,e[20]=A):A=e[20];let k;e[21]!==c?(k=c("New query"),e[21]=c,e[22]=k):k=e[22];let q;e[23]===Symbol.for("react.memo_cache_sentinel")?(q=f("svg",{"aria-hidden":"true",className:"size-4",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.7,viewBox:"0 0 24 24",children:f("path",{d:"M12 5v14M5 12h14"})}),e[23]=q):q=e[23];let M;e[24]!==i||e[25]!==A||e[26]!==k?(M=f("button",{"aria-label":A,className:"flex size-8 shrink-0 items-center justify-center rounded-md border border-border text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent","data-testid":"sql-new",onClick:i,title:k,type:"button",children:q}),e[24]=i,e[25]=A,e[26]=k,e[27]=M):M=e[27],e[28]!==M||e[29]!==O?(v=$("div",{className:"flex shrink-0 items-center gap-2 border-b border-border p-2",children:[O,M]}),e[28]=M,e[29]=O,e[30]=v):v=e[30],g="flex flex-1 flex-col gap-4 overflow-y-auto p-2";let D;e[31]!==c?(D=c("Private"),e[31]=c,e[32]=D):D=e[32];let E;e[33]!==D?(E=f("p",{className:"px-1 pb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:D}),e[33]=D,e[34]=E):E=e[34],p=$("div",{children:[E,N.length===0?f("p",{className:"px-1 py-2 text-xs text-muted-foreground","data-testid":"sql-private-empty",children:c("No saved queries yet — they save to this browser as you type.")}):f("ul",{className:"flex flex-col gap-px","data-testid":"sql-private",ref:o,children:N.map(B=>f(Hn,{active:n===B.id,onDelete:r,onSelect:b,query:B},B.id))})]}),e[0]=n,e[1]=o,e[2]=r,e[3]=i,e[4]=m,e[5]=b,e[6]=u,e[7]=x,e[8]=c,e[9]=g,e[10]=y,e[11]=v,e[12]=p}else g=e[9],y=e[10],v=e[11],p=e[12];let h;e[35]!==c?(h=c("Reference"),e[35]=c,e[36]=h):h=e[36];let S;e[37]!==h?(S=f("p",{className:"px-1 pb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:h}),e[37]=h,e[38]=S):S=e[38];let w;e[39]!==a?(w=Xe.map(N=>f("li",{children:$("button",{className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-start text-[13px] text-muted-foreground outline-none transition-colors hover:bg-sidebar-accent hover:text-foreground focus-visible:bg-sidebar-accent","data-sql":N.sql,onClick:a,type:"button",children:[f("svg",{"aria-hidden":"true",className:"size-3.5 shrink-0 opacity-70",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:f("path",{d:"M7 4h7l4 4v12H7zM14 4v4h4"})}),N.label]})},N.label)),e[39]=a,e[40]=w):w=e[40];let C;e[41]!==w?(C=f("ul",{className:"flex flex-col gap-px",children:w}),e[41]=w,e[42]=C):C=e[42];let T;e[43]!==S||e[44]!==C?(T=$("div",{children:[S,C]}),e[43]=S,e[44]=C,e[45]=T):T=e[45];let L;e[46]!==t||e[47]!==s||e[48]!==d||e[49]!==c?(L=t.length>0&&$("div",{children:[$("div",{className:"flex items-center justify-between px-1 pb-1",children:[f("p",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:c("History")}),f("button",{className:"rounded px-1 text-[11px] text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:text-foreground","data-testid":"sql-history-clear",onClick:s,type:"button",children:c("Clear history")})]}),f("ul",{className:"flex flex-col gap-px","data-testid":"sql-history",children:t.map(N=>f("li",{children:$("button",{className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-start text-[13px] text-muted-foreground outline-none transition-colors hover:bg-sidebar-accent hover:text-foreground focus-visible:bg-sidebar-accent","data-sql":N.sql,"data-testid":"sql-history-item",onClick:d,title:N.sql,type:"button",children:[f("svg",{"aria-hidden":"true",className:"size-3.5 shrink-0 opacity-70",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:f("path",{d:"M12 8v4l3 2M12 21a9 9 0 1 1 0-18 9 9 0 0 1 0 18Z"})}),f("span",{className:"truncate font-mono",children:N.sql})]})},`${N.at.toString()}:${N.sql}`))})]}),e[46]=t,e[47]=s,e[48]=d,e[49]=c,e[50]=L):L=e[50];let R;e[51]!==g||e[52]!==L||e[53]!==p||e[54]!==T?(R=$("div",{className:g,children:[p,T,L]}),e[51]=g,e[52]=L,e[53]=p,e[54]=T,e[55]=R):R=e[55];let I;return e[56]!==R||e[57]!==y||e[58]!==v?(I=$("aside",{className:y,children:[v,R]}),e[56]=R,e[57]=y,e[58]=v,e[59]=I):I=e[59],I},Qn=l=>{const e=Y(19),{result:n}=l,t=le();if(n.columns.length===0){let i;e[0]!==n.rowCount||e[1]!==t?(i=t("{count} rows",{count:n.rowCount}),e[0]=n.rowCount,e[1]=t,e[2]=i):i=e[2];let m;return e[3]!==i?(m=f("p",{className:"p-4 text-sm text-muted-foreground",children:i}),e[3]=i,e[4]=m):m=e[4],m}let o;e[5]!==n.columns?(o=n.columns.map(zn),e[5]=n.columns,e[6]=o):o=e[6];let s;e[7]!==o?(s=f(dt,{className:"sticky top-0 z-10 bg-muted",children:f(He,{children:o})}),e[7]=o,e[8]=s):s=e[8];let r;if(e[9]!==n.columns||e[10]!==n.rows){let i;e[12]!==n.columns?(i=(m,b)=>f(He,{"data-testid":"sql-row",children:n.columns.map(u=>f(ut,{className:"max-w-md truncate font-mono text-xs",children:f(ht,{value:m[u]})},u))},b),e[12]=n.columns,e[13]=i):i=e[13],r=n.rows.map(i),e[9]=n.columns,e[10]=n.rows,e[11]=r}else r=e[11];let d;e[14]!==r?(d=f(ft,{children:r}),e[14]=r,e[15]=d):d=e[15];let a;return e[16]!==s||e[17]!==d?(a=$(mt,{"data-testid":"sql-rows",children:[s,d]}),e[16]=s,e[17]=d,e[18]=a):a=e[18],a};function zn(l){return f(ct,{children:l},l)}const Ne=l=>`border-b-2 px-3 py-2 text-sm outline-none transition-colors ${l?"border-foreground font-medium text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,Un=l=>{const e=Y(92),{assistant:n,chart:t,className:o,error:s,onFormat:r,onInferChart:d,onRun:a,onShardKeyChange:i,onShowChart:m,onShowExplain:b,onShowResults:u,onToggleSplit:x,pane:c,result:g,running:y,shardKey:v,splitView:p}=l,h=le(),S=c==="results";let w;e[0]!==S?(w=Ne(S),e[0]=S,e[1]=w):w=e[1];let C;e[2]!==h?(C=h("Results"),e[2]=h,e[3]=C):C=e[3];let T;e[4]!==u||e[5]!==w||e[6]!==C?(T=f("button",{className:w,"data-testid":"sql-tab-results",onClick:u,type:"button",children:C}),e[4]=u,e[5]=w,e[6]=C,e[7]=T):T=e[7];const L=c==="chart";let R;e[8]!==L?(R=Ne(L),e[8]=L,e[9]=R):R=e[9];let I;e[10]!==h?(I=h("Chart"),e[10]=h,e[11]=I):I=e[11];let N;e[12]!==m||e[13]!==R||e[14]!==I?(N=f("button",{className:R,"data-testid":"sql-tab-chart",onClick:m,type:"button",children:I}),e[12]=m,e[13]=R,e[14]=I,e[15]=N):N=e[15];let _;e[16]!==n||e[17]!==d||e[18]!==c||e[19]!==g||e[20]!==h?(_=!n.unavailable&&c==="chart"&&g!==null&&f("button",{className:Ne(!1),"data-testid":"sql-infer-chart",disabled:n.pending("chart"),onClick:d,type:"button",children:n.pending("chart")?h("Thinking…"):h("Suggest chart")}),e[16]=n,e[17]=d,e[18]=c,e[19]=g,e[20]=h,e[21]=_):_=e[21];const O=c==="explain";let A;e[22]!==O?(A=Ne(O),e[22]=O,e[23]=A):A=e[23];let k;e[24]!==h?(k=h("Explain"),e[24]=h,e[25]=k):k=e[25];let q;e[26]!==b||e[27]!==A||e[28]!==k?(q=f("button",{className:A,"data-testid":"sql-tab-explain",onClick:b,type:"button",children:k}),e[26]=b,e[27]=A,e[28]=k,e[29]=q):q=e[29];let M;e[30]!==h?(M=h("Split editor and results"),e[30]=h,e[31]=M):M=e[31];const D=`inline-flex items-center rounded-md border border-border px-2 py-1.5 outline-none transition-colors hover:bg-accent focus-visible:bg-accent ${p?"bg-accent text-foreground":"text-muted-foreground"}`;let E;e[32]!==h?(E=h("Split editor and results"),e[32]=h,e[33]=E):E=e[33];let B;e[34]===Symbol.for("react.memo_cache_sentinel")?(B=$("svg",{"aria-hidden":"true",className:"size-4",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.7,viewBox:"0 0 24 24",children:[f("rect",{height:"16",rx:"2",width:"18",x:"3",y:"4"}),f("path",{d:"M12 4v16"})]}),e[34]=B):B=e[34];let F;e[35]!==x||e[36]!==p||e[37]!==M||e[38]!==D||e[39]!==E?(F=f("button",{"aria-label":M,"aria-pressed":p,className:D,"data-testid":"sql-split-toggle",onClick:x,title:E,type:"button",children:B}),e[35]=x,e[36]=p,e[37]=M,e[38]=D,e[39]=E,e[40]=F):F=e[40];let W;e[41]!==g?(W=g!==null&&g.columns.length>0&&f(at,{columns:g.columns,name:"query-result",rows:g.rows}),e[41]=g,e[42]=W):W=e[42];let U;e[43]!==h?(U=h("Format"),e[43]=h,e[44]=U):U=e[44];let Q;e[45]!==r||e[46]!==y||e[47]!==U?(Q=f("button",{className:"inline-flex items-center 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","data-testid":"sql-format",disabled:y,onClick:r,type:"button",children:U}),e[45]=r,e[46]=y,e[47]=U,e[48]=Q):Q=e[48];let K;e[49]!==i||e[50]!==v?(K=f(rt,{onChange:i,testId:"sql-shard-input",value:v}),e[49]=i,e[50]=v,e[51]=K):K=e[51];let G;e[52]!==y||e[53]!==h?(G=h(y?"Running…":"Run"),e[52]=y,e[53]=h,e[54]=G):G=e[54];let P;e[55]===Symbol.for("react.memo_cache_sentinel")?(P=f("kbd",{className:"rounded border border-primary-foreground/30 px-1 font-sans text-[10px]",children:"⌘↵"}),e[55]=P):P=e[55];let V;e[56]!==a||e[57]!==y||e[58]!==G?(V=$("button",{className:"inline-flex items-center gap-1.5 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","data-testid":"sql-run",disabled:y,onClick:a,type:"button",children:[G,P]}),e[56]=a,e[57]=y,e[58]=G,e[59]=V):V=e[59];let ne;e[60]!==F||e[61]!==W||e[62]!==Q||e[63]!==K||e[64]!==V?(ne=$("div",{className:"ms-auto flex items-center gap-2",children:[F,W,Q,K,V]}),e[60]=F,e[61]=W,e[62]=Q,e[63]=K,e[64]=V,e[65]=ne):ne=e[65];let J;e[66]!==q||e[67]!==ne||e[68]!==T||e[69]!==N||e[70]!==_?(J=$("div",{className:"flex shrink-0 items-center gap-2 border-b border-border pe-2",children:[T,N,_,q,ne]}),e[66]=q,e[67]=ne,e[68]=T,e[69]=N,e[70]=_,e[71]=J):J=e[71];let X;e[72]!==s?(X=s!==null&&f(it,{className:"m-3 font-mono text-xs",testId:"sql-error",variant:"destructive",children:s}),e[72]=s,e[73]=X):X=e[73];let Z;e[74]!==s||e[75]!==g||e[76]!==h?(Z=s===null&&g===null&&f("p",{className:"p-4 text-sm text-muted-foreground","data-testid":"sql-empty",children:h("Click Run to execute your query.")}),e[74]=s,e[75]=g,e[76]=h,e[77]=Z):Z=e[77];let ee;e[78]!==t||e[79]!==s||e[80]!==c||e[81]!==g||e[82]!==h?(ee=s===null&&g!==null&&$("div",{"data-testid":"sql-result",children:[c==="chart"?f(lt,{axes:t,result:g}):f(Qn,{result:g}),f("p",{className:"border-t border-border px-3 py-1.5 text-xs text-muted-foreground","data-testid":"sql-count",children:g.truncated?h("Showing the first {max} of {count} rows.",{count:g.rowCount,max:g.rows.length}):h("{count} rows",{count:g.rowCount})})]}),e[78]=t,e[79]=s,e[80]=c,e[81]=g,e[82]=h,e[83]=ee):ee=e[83];let te;e[84]!==X||e[85]!==Z||e[86]!==ee?(te=$("div",{className:"min-h-0 flex-1 overflow-auto",children:[X,Z,ee]}),e[84]=X,e[85]=Z,e[86]=ee,e[87]=te):te=e[87];let se;return e[88]!==o||e[89]!==J||e[90]!==te?(se=$("div",{className:o,children:[J,te]}),e[88]=o,e[89]=J,e[90]=te,e[91]=se):se=e[91],se},Yn=(l,e)=>l.trim()===""?e:(l.split(`
|
|
6
|
-
`)[0]??l).slice(0,24),jn=l=>{l?.focus(),l?.select()},Kn=l=>{const e=Y(14),{initial:n,onCancel:t,onCommit:o,placeholder:s,testId:r}=l,d=le();let a;e[0]!==o?(a=c=>{o(c.currentTarget.value.trim())},e[0]=o,e[1]=a):a=e[1];const i=a;let m;e[2]!==t||e[3]!==o?(m=c=>{c.key==="Enter"?o(c.currentTarget.value.trim()):c.key==="Escape"&&t()},e[2]=t,e[3]=o,e[4]=m):m=e[4];const b=m;let u;e[5]!==d?(u=d("Tab title"),e[5]=d,e[6]=u):u=e[6];let x;return e[7]!==n||e[8]!==i||e[9]!==b||e[10]!==s||e[11]!==u||e[12]!==r?(x=f("input",{"aria-label":u,className:"w-40 rounded border border-ring bg-background px-1 py-0.5 text-xs outline-none","data-testid":r,defaultValue:n,onBlur:i,onKeyDown:b,placeholder:s,ref:jn,type:"text"}),e[7]=n,e[8]=i,e[9]=b,e[10]=s,e[11]=u,e[12]=r,e[13]=x):x=e[13],x},Gn=l=>{const e=Y(29),{idBase:n,onDiscard:t,onKeep:o}=l,s=le(),r=`sql-tab-close-prompt-${n}`;let d;e[0]!==s?(d=s("Discard?"),e[0]=s,e[1]=d):d=e[1];let a;e[2]!==d?(a=f("span",{className:"text-[11px] text-muted-foreground",children:d}),e[2]=d,e[3]=a):a=e[3];let i;e[4]!==s?(i=s("Discard changes"),e[4]=s,e[5]=i):i=e[5];const m=`sql-tab-close-confirm-${n}`;let b;e[6]!==s?(b=s("Discard changes"),e[6]=s,e[7]=b):b=e[7];let u;e[8]===Symbol.for("react.memo_cache_sentinel")?(u=f("svg",{"aria-hidden":"true",className:"size-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.4,viewBox:"0 0 24 24",children:f("path",{d:"M5 13l4 4L19 7"})}),e[8]=u):u=e[8];let x;e[9]!==t||e[10]!==i||e[11]!==m||e[12]!==b?(x=f("button",{"aria-label":i,className:"flex size-5 items-center justify-center rounded text-destructive hover:bg-destructive/10","data-testid":m,onClick:t,title:b,type:"button",children:u}),e[9]=t,e[10]=i,e[11]=m,e[12]=b,e[13]=x):x=e[13];let c;e[14]!==s?(c=s("Keep editing"),e[14]=s,e[15]=c):c=e[15];const g=`sql-tab-close-cancel-${n}`;let y;e[16]!==s?(y=s("Keep editing"),e[16]=s,e[17]=y):y=e[17];let v;e[18]===Symbol.for("react.memo_cache_sentinel")?(v=f("svg",{"aria-hidden":"true",className:"size-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.4,viewBox:"0 0 24 24",children:f("path",{d:"M6 6l12 12M18 6 6 18"})}),e[18]=v):v=e[18];let p;e[19]!==o||e[20]!==g||e[21]!==y||e[22]!==c?(p=f("button",{"aria-label":c,className:"flex size-5 items-center justify-center rounded text-muted-foreground hover:bg-accent","data-testid":g,onClick:o,title:y,type:"button",children:v}),e[19]=o,e[20]=g,e[21]=y,e[22]=c,e[23]=p):p=e[23];let h;return e[24]!==r||e[25]!==p||e[26]!==a||e[27]!==x?(h=$("span",{className:"flex shrink-0 items-center gap-1","data-testid":r,role:"group",children:[a,x,p]}),e[24]=r,e[25]=p,e[26]=a,e[27]=x,e[28]=h):h=e[28],h},Vn=l=>{const e=Y(47),{active:n,canClose:t,onClose:o,onMenu:s,onRename:r,onSelect:d,tab:a}=l,i=le(),[m,b]=oe(!1),[u,x]=oe(!1);let c;e[0]!==s||e[1]!==a.id?(c=Q=>{s(a.id,Q)},e[0]=s,e[1]=a.id,e[2]=c):c=e[2];const g=c;let y;e[3]!==d||e[4]!==a.id?(y=()=>{d(a.id)},e[3]=d,e[4]=a.id,e[5]=y):y=e[5];const v=y;let p;e[6]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{b(!0)},e[6]=p):p=e[6];const h=p;let S;e[7]!==o||e[8]!==a?(S=Q=>{Q.stopPropagation(),Ve(a)?x(!0):o(a.id)},e[7]=o,e[8]=a,e[9]=S):S=e[9];const w=S;let C;e[10]!==o||e[11]!==a.id?(C=Q=>{Q.stopPropagation(),x(!1),o(a.id)},e[10]=o,e[11]=a.id,e[12]=C):C=e[12];const T=C;let L;e[13]===Symbol.for("react.memo_cache_sentinel")?(L=Q=>{Q.stopPropagation(),x(!1)},e[13]=L):L=e[13];const R=L;let I;e[14]!==r||e[15]!==a.id?(I=Q=>{r(a.id,Q),b(!1)},e[14]=r,e[15]=a.id,e[16]=I):I=e[16];const N=I;let _;e[17]===Symbol.for("react.memo_cache_sentinel")?(_=()=>{b(!1)},e[17]=_):_=e[17];const O=_;let A;e[18]!==a.name?(A=a.name.trim(),e[18]=a.name,e[19]=A):A=e[19];const k=A;let q;e[20]!==i||e[21]!==a.sql?(q=Yn(a.sql,i("Untitled")),e[20]=i,e[21]=a.sql,e[22]=q):q=e[22];const M=q,D=n?"bg-background text-foreground":"bg-muted/40 text-muted-foreground hover:text-foreground";let E;e[23]!==D?(E=ue("group/tab flex shrink-0 items-center gap-1 border-e border-border ps-3 pe-1.5 text-xs",D),e[23]=D,e[24]=E):E=e[24];const B=`sql-tab-${a.id}`;let F;e[25]!==n||e[26]!==N||e[27]!==k||e[28]!==M||e[29]!==m||e[30]!==v||e[31]!==i||e[32]!==a.id?(F=m?f(Kn,{initial:k,onCancel:O,onCommit:N,placeholder:M,testId:`sql-tab-rename-${a.id}`}):f("button",{"aria-pressed":n,className:"max-w-40 truncate py-1.5 outline-none","data-testid":`sql-tab-select-${a.id}`,onClick:v,onDoubleClick:h,title:i("Double-click to rename"),type:"button",children:k===""?M:k}),e[25]=n,e[26]=N,e[27]=k,e[28]=M,e[29]=m,e[30]=v,e[31]=i,e[32]=a.id,e[33]=F):F=e[33];let W;e[34]!==t||e[35]!==T||e[36]!==u||e[37]!==w||e[38]!==i||e[39]!==a.id?(W=t&&(u?f(Gn,{idBase:a.id,onDiscard:T,onKeep:R}):f("button",{"aria-label":i("Close tab"),className:"flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-destructive/10 hover:text-destructive","data-testid":`sql-tab-close-${a.id}`,onClick:w,title:i("Close tab"),type:"button",children:f("svg",{"aria-hidden":"true",className:"size-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",children:f("path",{d:"M6 6l12 12M18 6 6 18"})})})),e[34]=t,e[35]=T,e[36]=u,e[37]=w,e[38]=i,e[39]=a.id,e[40]=W):W=e[40];let U;return e[41]!==g||e[42]!==E||e[43]!==B||e[44]!==F||e[45]!==W?(U=$("div",{className:E,"data-testid":B,onContextMenu:g,children:[F,W]}),e[41]=g,e[42]=E,e[43]=B,e[44]=F,e[45]=W,e[46]=U):U=e[46],U},Jn=l=>{const e=Y(43),{model:n,onSelect:t}=l,o=le(),{activeTab:s,addEditorTab:r,cancelBulk:d,closeEditorTab:a,closeTabMenu:i,confirmBulk:m,menuStyle:b,onBackdropContextMenu:u,onCloseAll:x,onCloseOthers:c,onCloseToRight:g,openTabMenu:y,pendingBulk:v,renameTab:p,tabMenu:h,tabs:S}=n;let w;if(e[0]!==s||e[1]!==a||e[2]!==t||e[3]!==y||e[4]!==p||e[5]!==S){let A;e[7]!==s||e[8]!==a||e[9]!==t||e[10]!==y||e[11]!==p||e[12]!==S.length?(A=k=>f(Vn,{active:k.id===s.id,canClose:S.length>1,onClose:a,onMenu:y,onRename:p,onSelect:t,tab:k},k.id),e[7]=s,e[8]=a,e[9]=t,e[10]=y,e[11]=p,e[12]=S.length,e[13]=A):A=e[13],w=S.map(A),e[0]=s,e[1]=a,e[2]=t,e[3]=y,e[4]=p,e[5]=S,e[6]=w}else w=e[6];let C;e[14]!==o?(C=o("New tab"),e[14]=o,e[15]=C):C=e[15];const T=S.length>=Me;let L;e[16]!==o?(L=o("New tab"),e[16]=o,e[17]=L):L=e[17];let R;e[18]===Symbol.for("react.memo_cache_sentinel")?(R=f("svg",{"aria-hidden":"true",className:"size-4",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.7,viewBox:"0 0 24 24",children:f("path",{d:"M12 5v14M5 12h14"})}),e[18]=R):R=e[18];let I;e[19]!==r||e[20]!==C||e[21]!==T||e[22]!==L?(I=f("button",{"aria-label":C,className:"flex size-8 shrink-0 items-center justify-center text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-40","data-testid":"sql-tab-add",disabled:T,onClick:r,title:L,type:"button",children:R}),e[19]=r,e[20]=C,e[21]=T,e[22]=L,e[23]=I):I=e[23];let N;e[24]!==w||e[25]!==I?(N=$("div",{className:"flex shrink-0 items-stretch overflow-x-auto border-b border-border bg-muted/30","data-testid":"sql-tab-strip",role:"tablist",children:[w,I]}),e[24]=w,e[25]=I,e[26]=N):N=e[26];let _;e[27]!==d||e[28]!==i||e[29]!==m||e[30]!==b||e[31]!==u||e[32]!==x||e[33]!==c||e[34]!==g||e[35]!==v||e[36]!==o||e[37]!==h||e[38]!==S?(_=h!==null&&$(qe,{children:[f("div",{className:"fixed inset-0 z-40","data-testid":"sql-tab-menu-backdrop",onClick:i,onContextMenu:u,role:"presentation"}),f("div",{className:"fixed z-50 min-w-44 rounded-md border border-border bg-popover py-1 text-popover-foreground shadow-md","data-testid":"sql-tab-menu",role:"menu",style:b,children:v===null?$(qe,{children:[f("button",{className:"flex w-full items-center px-3 py-1.5 text-start text-xs outline-none hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-40","data-testid":"sql-tab-menu-close-others",disabled:S.length<=1,onClick:c,role:"menuitem",type:"button",children:o("Close other tabs")}),f("button",{className:"flex w-full items-center px-3 py-1.5 text-start text-xs outline-none hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-40","data-testid":"sql-tab-menu-close-right",disabled:S.findIndex(A=>A.id===h.id)>=S.length-1,onClick:g,role:"menuitem",type:"button",children:o("Close tabs to the right")}),f("button",{className:"flex w-full items-center px-3 py-1.5 text-start text-xs outline-none hover:bg-accent focus-visible:bg-accent","data-testid":"sql-tab-menu-close-all",onClick:x,role:"menuitem",type:"button",children:o("Close all tabs")})]}):$("div",{className:"px-3 py-1.5","data-testid":"sql-tab-menu-confirm",children:[f("p",{className:"pb-1.5 text-xs text-muted-foreground",children:o("Discard unsaved tabs?")}),$("div",{className:"flex items-center gap-1.5",children:[f("button",{className:"rounded px-2 py-1 text-xs font-medium text-destructive outline-none hover:bg-destructive/10 focus-visible:bg-destructive/10","data-testid":"sql-tab-menu-confirm-discard",onClick:m,type:"button",children:o("Discard")}),f("button",{className:"rounded px-2 py-1 text-xs text-muted-foreground outline-none hover:bg-accent focus-visible:bg-accent","data-testid":"sql-tab-menu-confirm-cancel",onClick:d,type:"button",children:o("Cancel")})]})]})})]}),e[27]=d,e[28]=i,e[29]=m,e[30]=b,e[31]=u,e[32]=x,e[33]=c,e[34]=g,e[35]=v,e[36]=o,e[37]=h,e[38]=S,e[39]=_):_=e[39];let O;return e[40]!==N||e[41]!==_?(O=$(qe,{children:[N,_]}),e[40]=N,e[41]=_,e[42]=O):O=e[42],O},Xn=Le(Re.runSql),Zn="lunora-studio-sql-split-view",es=()=>ve(Xe[0]?.sql??""),vs=l=>{const e=Y(102),{initialShardKey:n}=l,t=Oe(),o=Nn(es),{activeTab:s,output:r,patchActiveOutput:d,patchActiveTab:a,setActiveTabId:i,unlinkQuery:m}=o;let b;e[0]!==d||e[1]!==a?(b=(re,de)=>{a({activeId:de,sql:re}),d({chart:void 0,error:null,failed:void 0,result:null})},e[0]=d,e[1]=a,e[2]=b):b=e[2];const u=b;let x;e[3]!==u||e[4]!==m?(x={loadIntoActiveTab:u,unlinkQuery:m},e[3]=u,e[4]=m,e[5]=x):x=e[5];const c=In(x),{recordHistory:g,updateQuerySql:y}=c,v=s.sql,{activeId:p}=s,{chart:h,error:S,failed:w,result:C,running:T}=r,L=r.pane,[R,I]=oe(n??""),[N,_]=Ue(Zn,!1),{probe:O,schema:A}=dn(R);let k;e[6]!==p||e[7]!==a||e[8]!==y?(k=re=>{a({sql:re}),p!==null&&y(p,re)},e[6]=p,e[7]=a,e[8]=y,e[9]=k):k=e[9];const q=k,M=jt(v,A,R),D=nt(R);let E;e[10]!==D||e[11]!==d||e[12]!==C?(E=()=>{if(C===null)return;ce((async()=>{const de=await D.inferChart({columns:C.columns,rowCount:C.rowCount,types:Object.fromEntries(C.columns.map(xe=>[xe,typeof(C.rows[0]?.[xe]??"")]))});d({chart:de})})())},e[10]=D,e[11]=d,e[12]=C,e[13]=E):E=e[13];const B=E;let F;e[14]!==t||e[15]!==v||e[16]!==d||e[17]!==g||e[18]!==R?(F=async re=>{if(v.trim()==="")return;d({running:!0});const de=re==="explain"?`EXPLAIN QUERY PLAN ${v}`:v;try{const xe=await t.query(Xn,{sql:de},Te(R));d({chart:void 0,error:null,failed:void 0,pane:re,result:xe,running:!1}),tt(R),g(de)}catch(xe){const $e=xe;d({chart:void 0,error:Pe($e),failed:{error:Pe($e),sql:de},pane:re,result:null,running:!1})}},e[14]=t,e[15]=v,e[16]=d,e[17]=g,e[18]=R,e[19]=F):F=e[19];const W=F;let U;e[20]!==W?(U=()=>{ce(W("results"))},e[20]=W,e[21]=U):U=e[21];const Q=U;let K;e[22]!==r.pane||e[23]!==W?(K=()=>{ce(W(r.pane))},e[22]=r.pane,e[23]=W,e[24]=K):K=e[24];let G;e[25]!==O||e[26]!==A||e[27]!==q||e[28]!==K?(G={onSubmit:K,probe:O,schema:A,setDraft:q},e[25]=O,e[26]=A,e[27]=q,e[28]=K,e[29]=G):G=e[29];const P=mn(G),{closeAutocomplete:V}=P;let ne;e[30]!==v||e[31]!==q?(ne=()=>{q(vt(v))},e[30]=v,e[31]=q,e[32]=ne):ne=e[32];const J=ne;let X;e[33]!==V||e[34]!==i?(X=re=>{V(),i(re)},e[33]=V,e[34]=i,e[35]=X):X=e[35];const Z=X;let ee;e[36]!==d?(ee=()=>{d({pane:"results"})},e[36]=d,e[37]=ee):ee=e[37];const te=ee;let se;e[38]!==W?(se=()=>{ce(W("explain"))},e[38]=W,e[39]=se):se=e[39];const ae=se;let H;e[40]!==d?(H=()=>{d({pane:"chart"})},e[40]=d,e[41]=H):H=e[41];const z=H;let j;e[42]!==_||e[43]!==N?(j=()=>{_(!N)},e[42]=_,e[43]=N,e[44]=j):j=e[44];const ie=j,ye=N?"flex min-h-0 flex-1 flex-row":"flex min-h-0 flex-1 flex-col",Ie=N?"flex w-2/5 min-h-0 min-w-0 shrink-0 flex-col border-s border-border":"flex h-2/5 min-h-0 shrink-0 flex-col border-t border-border";let fe;e[45]!==p||e[46]!==c.clearHistory||e[47]!==c.deleteQuery||e[48]!==c.history||e[49]!==c.listRef||e[50]!==c.loadFromHistory||e[51]!==c.loadTemplate||e[52]!==c.newQuery||e[53]!==c.onSearchChange||e[54]!==c.queries||e[55]!==c.search||e[56]!==c.selectQuery?(fe=f(Fn,{activeId:p,history:c.history,listRef:c.listRef,onClearHistory:c.clearHistory,onDelete:c.deleteQuery,onLoadHistory:c.loadFromHistory,onLoadTemplate:c.loadTemplate,onNew:c.newQuery,onSearchChange:c.onSearchChange,onSelect:c.selectQuery,queries:c.queries,search:c.search}),e[45]=p,e[46]=c.clearHistory,e[47]=c.deleteQuery,e[48]=c.history,e[49]=c.listRef,e[50]=c.loadFromHistory,e[51]=c.loadTemplate,e[52]=c.newQuery,e[53]=c.onSearchChange,e[54]=c.queries,e[55]=c.search,e[56]=c.selectQuery,e[57]=fe):fe=e[57];let me;e[58]!==o||e[59]!==Z?(me=f(Jn,{model:o,onSelect:Z}),e[58]=o,e[59]=Z,e[60]=me):me=e[60];let he;e[61]!==D||e[62]!==M||e[63]!==v||e[64]!==w||e[65]!==q||e[66]!==P.autocompleteState||e[67]!==P.editorRef||e[68]!==P.gutterRef||e[69]!==P.handlers||e[70]!==P.listboxId||e[71]!==P.onPickSuggestion||e[72]!==P.overlayRef||e[73]!==P.revealDiagnostic?(he=f(Bn,{assistant:D,autocomplete:P.autocompleteState,diagnostics:M,draft:v,editorRef:P.editorRef,failed:w,gutterRef:P.gutterRef,handlers:P.handlers,listboxId:P.listboxId,onGenerated:q,onPickSuggestion:P.onPickSuggestion,onRevealDiagnostic:P.revealDiagnostic,overlayRef:P.overlayRef}),e[61]=D,e[62]=M,e[63]=v,e[64]=w,e[65]=q,e[66]=P.autocompleteState,e[67]=P.editorRef,e[68]=P.gutterRef,e[69]=P.handlers,e[70]=P.listboxId,e[71]=P.onPickSuggestion,e[72]=P.overlayRef,e[73]=P.revealDiagnostic,e[74]=he):he=e[74];let pe;e[75]!==D||e[76]!==S||e[77]!==J||e[78]!==B||e[79]!==h||e[80]!==Q||e[81]!==C||e[82]!==Ie||e[83]!==T||e[84]!==R||e[85]!==z||e[86]!==ae||e[87]!==te||e[88]!==N||e[89]!==L||e[90]!==ie?(pe=f(Un,{assistant:D,chart:h,className:Ie,error:S,onFormat:J,onInferChart:B,onRun:Q,onShardKeyChange:I,onShowChart:z,onShowExplain:ae,onShowResults:te,onToggleSplit:ie,pane:L,result:C,running:T,shardKey:R,splitView:N}),e[75]=D,e[76]=S,e[77]=J,e[78]=B,e[79]=h,e[80]=Q,e[81]=C,e[82]=Ie,e[83]=T,e[84]=R,e[85]=z,e[86]=ae,e[87]=te,e[88]=N,e[89]=L,e[90]=ie,e[91]=pe):pe=e[91];let be;e[92]!==he||e[93]!==pe||e[94]!==ye?(be=$("div",{className:ye,children:[he,pe]}),e[92]=he,e[93]=pe,e[94]=ye,e[95]=be):be=e[95];let ge;e[96]!==me||e[97]!==be?(ge=$("div",{className:"flex min-w-0 flex-1 flex-col",children:[me,be]}),e[96]=me,e[97]=be,e[98]=ge):ge=e[98];let we;return e[99]!==fe||e[100]!==ge?(we=$("div",{className:"flex h-full min-w-0","data-testid":"lunora-sql-editor",children:[fe,ge]}),e[99]=fe,e[100]=ge,e[101]=we):we=e[101],we};export{vs as SqlEditorPanel};
|
|
1
|
+
import{c as Y}from"react/compiler-runtime";import{useLunora as Ue}from"@lunora/react";import{useState as ce,useMemo as Ge,useCallback as ut,useEffect as Ne,useRef as Ce,useId as ft}from"react";import{ADMIN_FUNCTIONS as _e}from"../packem_shared/ADMIN_FUNCTIONS-4aE59aDq.js";import{u as Fe,n as et,b as je,r as Re,s as mt}from"../packem_shared/browser-storage-BH1MxLZs.js";import{d as qe,f as ue,c as Oe,b as ht}from"../packem_shared/internal-7bgd8inO.js";import{r as pt}from"../packem_shared/shard-history-DU5b3QDI.js";import{u as bt}from"../packem_shared/use-sql-assistant-DFO2i-n-.js";import gt from"../packem_shared/useDebounced-DVeQ5-oW.js";import{useT as de}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.js";import{c as fe}from"../packem_shared/utils-bhneXptQ.js";import{jsxs as F,jsx as b,Fragment as He}from"react/jsx-runtime";import{I as xt}from"../packem_shared/input-CY5W3wzv.js";import{S as yt,a as vt}from"../packem_shared/sql-result-table-blxdNVJ0.js";import{ShardInput as St}from"../packem_shared/ShardInput-CdawpUiS.js";import{A as wt}from"../packem_shared/alert-C2SEhYS9.js";import{E as Ct}from"../packem_shared/grid-features-AzpmpR3Q.js";const Nt=["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"],kt=["FROM","WHERE","ORDER BY","GROUP BY","HAVING","LIMIT","OFFSET","UNION","JOIN","LEFT JOIN","RIGHT JOIN","INNER JOIN","OUTER JOIN","CROSS JOIN"],Ae=String.fromCodePoint(0),Tt=new RegExp(`${Ae}${String.raw`(\d+)`}${Ae}`,"gu"),Et=Nt.map(l=>({pattern:new RegExp(String.raw`\b${l.replaceAll(" ",String.raw`\s+`)}\b`,"giu"),replacement:l})),Rt=kt.map(l=>({pattern:new RegExp(String.raw`\s+${l.replaceAll(" ",String.raw`\s+`)}\b`,"gu"),replacement:`
|
|
2
|
+
${l}`})),Lt=l=>{const e=[];let t=l.replaceAll(/'(?:[^']|'')*'/gu,o=>(e.push(o),`${Ae}${(e.length-1).toString()}${Ae}`)).replaceAll(/\s+/gu," ").trim();for(const{pattern:o,replacement:s}of Et)t=t.replaceAll(o,s);for(const{pattern:o,replacement:s}of Rt)t=t.replaceAll(o,s);return t=t.replaceAll(Tt,(o,s)=>e[Number(s)]??""),t},Pe="x",It={'"':'"',"'":"'","[":"]","`":"`"},qt=(l,e)=>{let n=e+2;for(;n<l.length&&l[n]!==`
|
|
3
|
+
`;)n+=1;return n},At=(l,e)=>{const n=l.indexOf("*/",e+2);return n===-1?-1:n+2},tt=l=>{const e=l.split("");let n=0;for(;n<l.length;){const t=l[n]??"",o=It[t];if(t==="-"&&l[n+1]==="-"){const s=qt(l,n);e.fill(Pe,n,s),n=s}else if(t==="/"&&l[n+1]==="*"){const s=At(l,n);if(s===-1)return;e.fill(Pe,n,s),n=s}else if(o!==void 0){let s=n+1;for(;s<l.length;)if(l[s]!==o)s+=1;else if(o!=="]"&&l[s+1]===o)s+=2;else break;if(s>=l.length)return;e.fill(Pe,n,s+1),n=s+1}else n+=1}for(let t=0;t<l.length;t+=1)l[t]===`
|
|
4
|
+
`&&(e[t]=`
|
|
5
|
+
`);return e.join("")},_t=/^(?:explain\s+(?:query\s+plan\s+)?)?(?:select|with)\b/iu,Ot=/\b(?:alter|attach|create|delete|detach|drop|insert|pragma|reindex|replace|truncate|update|vacuum)\b/iu,Dt=/^\w+/u,Mt=/;\s*$/u,$t=/\s/u,Bt=(l,e)=>{let n=e+2;for(;n<l.length&&l[n]!==`
|
|
6
|
+
`;)n+=1;return n},Ht=(l,e)=>{const n=l.indexOf("*/",e+2);return n===-1?-1:n+2},Pt=l=>{let e=0;for(;e<l.length;){const n=l[e];if(n!==void 0&&$t.test(n))e+=1;else if(n==="-"&&l[e+1]==="-")e=Bt(l,e);else if(n==="/"&&l[e+1]==="*"){const t=Ht(l,e);if(t===-1)break;e=t}else break}return e},Wt=l=>{const e=Pt(l),n=l.slice(e).trimEnd();if(n==="")return{code:"SQL_EMPTY",message:"the query is empty"};const t=n.replace(Mt,""),o=(tt(t)??t).indexOf(";");if(o!==-1)return{code:"SQL_MULTIPLE_STATEMENTS",length:1,message:"only a single statement may be run",offset:e+o};const s="the SQL editor is read-only — only SELECT / WITH / EXPLAIN queries are allowed";if(!_t.test(t))return{code:"SQL_NOT_READONLY",length:Dt.exec(t)?.[0].length??1,message:s,offset:e};const r=Ot.exec(t);if(r!==null)return{code:"SQL_NOT_READONLY",length:r[0].length,message:`${s} (\`${r[0].toUpperCase()}\` is not allowed)`,offset:e+r.index}},Qe=(l,e)=>{const n=l.trim();if(n==="")return[];const t=e+l.indexOf(n),o=Wt(n);return[o===void 0?{offset:t,sql:n}:{offset:t,rejection:o,sql:n}]},nt=l=>{const e=tt(l);if(e===void 0)return Qe(l,0);const n=[];let t=0;for(let o=0;o<=e.length;o+=1)o!==e.length&&e[o]!==";"||(n.push(...Qe(l.slice(t,o),t)),t=o+1);return n},Ft=/\b(?:from|join)\s+([a-z_][\w$]*)(?:\s+(?:as\s+)?([a-z_][\w$]*))?/giu,Qt=/(?:\bwith\s+(?:recursive\s+)?|,\s*)([a-z_][\w$]*)\s+as\s*\(/giu,Ut=new Set(["cross","full","group","having","inner","join","left","limit","offset","on","order","right","union","using","where","window"]),jt=/[^\n]/gu,zt=(l,e)=>{const n=l[e];if(n==="'"){let t=e+1;for(;t<l.length&&l[t]!=="'";)t+=1;return Math.min(t+1,l.length)}if(n==="-"&&l[e+1]==="-"){const t=l.indexOf(`
|
|
7
|
+
`,e);return t===-1?l.length:t}if(n==="/"&&l[e+1]==="*"){const t=l.indexOf("*/",e+2);return t===-1?l.length:t+2}return-1},Yt=l=>{let e="",n=0;for(;n<l.length;){const t=zt(l,n);t===-1?(e+=l.slice(n,n+1),n+=1):(e+=l.slice(n,t).replaceAll(jt," "),n=t)}return e},Kt=l=>{const e=new Set;for(const n of l.matchAll(Qt))e.add((n[1]??"").toLowerCase());return e},Gt=(l,e)=>{const n=new Map;for(const t of l.matchAll(Ft)){const o=(t[1]??"").toLowerCase(),s=(t[2]??"").toLowerCase();e.has(o)&&(n.set(o,o),s!==""&&!Ut.has(s)&&n.set(s,o))}return n},st=(l,e)=>{const n=Yt(l),t=new Set(e.map(o=>o.toLowerCase()));return{ctes:Kt(n),masked:n,targets:Gt(n,t)}},Jt=/^(?:__lunora|sqlite_)/iu,Vt=/\b(?:from|join)\s+([a-z_][\w$]*)/giu,Xt=/\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"]),en=(l,e,n)=>{const t=[];for(const o of l.matchAll(Vt)){const s=o[1]??"",r=s.toLowerCase();!e.has(r)&&!n.has(r)&&!Zt.has(r)&&!Jt.test(s)&&t.push({length:s.length,message:`unknown table \`${s}\``,offset:o.index+o[0].length-s.length,severity:"error",source:"schema"})}return t},tn=(l,e,n)=>{const t=[],o=new Map;for(const[s,r]of Object.entries(e.columns))o.set(s.toLowerCase(),new Set(r.map(i=>i.toLowerCase())));for(const s of l.matchAll(Xt)){const r=(s[1]??"").toLowerCase(),i=s[2]??"",c=n.get(r),a=c===void 0?void 0:o.get(c);a!==void 0&&!a.has(i.toLowerCase())&&t.push({length:i.length,message:`\`${c??""}\` has no column \`${i}\``,offset:s.index+s[0].length-i.length,severity:"error",source:"schema"})}return t},nn=(l,e)=>{if(l.trim()==="")return[];const n=nt(l),t=new Set(e.tables.map(s=>s.toLowerCase())),o=[];for(const s of n){const{offset:r,rejection:i}=s;if(i!==void 0){i.code!=="SQL_EMPTY"&&o.push({length:i.length,message:i.message,offset:i.offset===void 0?r:r+i.offset,severity:"error",source:"gate"});continue}const{ctes:c,masked:a,targets:m}=st(s.sql,e.tables);o.push(...[...en(a,t,c),...tn(a,e,m)].map(g=>({...g,offset:g.offset===void 0?r:r+g.offset})))}return o},sn=Oe(_e.lintSql),on=600,ln=(l,e,n)=>{const t=Ue(),[o,s]=ce([]),r=Ge(()=>nn(l,e),[l,e]),i=gt(l,on),a=r.some(f=>f.source==="gate")||i.trim()==="",m=ut(async f=>{try{const y=await t.query(sn,{sql:i},qe(n));f.cancelled||s(y.diagnostics??[])}catch{f.cancelled||s([])}},[t,i,n]);Ne(()=>{if(a){s([]);return}const f={cancelled:!1};return ue(m(f)),()=>{f.cancelled=!0}},[m,a]);const g=i===l;return Ge(()=>g?[...r,...o]:r,[r,o,g])},Le=8,rn=["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"],an=new Set(["AND","BY","HAVING","ON","OR","SELECT","WHERE"]),cn=/[\w$]/,ot=l=>l!==void 0&&cn.test(l),lt=l=>{let e=l.length;for(;e>0&&ot(l[e-1]);)e-=1;return l.slice(e)},rt=(l,e)=>{let n=e;for(;n>0&&ot(l[n-1]);)n-=1;return{end:e,start:n,text:l.slice(n,e)}},Je=(l,e)=>{const n=l.slice(0,e).trimEnd();return n.endsWith(".")||an.has(lt(n).toUpperCase())},dn=(l,e,n)=>{const t=l.slice(0,e);if(!t.endsWith("."))return;const o=lt(t.slice(0,-1));if(o!=="")return st(l,n).targets.get(o.toLowerCase())??o},ze=(l,e)=>l.toLowerCase().startsWith(e.toLowerCase()),Ve=(l,e,n,t)=>{const o=[];for(const s of l)if(ze(s,e)&&(o.push(t(s)),o.length>=n))break;return o},un=(l,e,n)=>{const t=new Map;for(const[o,s]of Object.entries(l.columns))for(const r of s)if(ze(r,e)&&!t.has(r)&&(t.set(r,o),t.size>=n))return[...t].map(([i,c])=>({detail:c,kind:"column",label:i}));return[...t].map(([o,s])=>({detail:s,kind:"column",label:o}))},fn=(l,e,n)=>{const t=rt(l,e),o=dn(l,t.start,n.tables);if(o!==void 0){const a=n.columns[o]??n.columns[o.toLowerCase()]??[];return Ve(a,t.text,Le,m=>({detail:o,kind:"column",label:m}))}if(t.text===""&&!Je(l,t.start))return[];const s=Ve(n.tables,t.text,Le,a=>({kind:"table",label:a})),r=un(n,t.text,Le),i=rn.flatMap(a=>t.text!==""&&ze(a,t.text)&&a.toLowerCase()!==t.text.toLowerCase()?[{kind:"keyword",label:a}]:[]);return(Je(l,t.start)?[...r,...s,...i]:[...s,...r,...i]).slice(0,Le)},mn=(l,e,n)=>{const t=rt(l,e),o=l.slice(0,t.start)+n.label+l.slice(t.end);return{caret:t.start+n.label.length,value:o}},hn=["boxSizing","borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textTransform","width","wordSpacing"],pn=(l,e)=>{const n=globalThis.getComputedStyle(l),t=globalThis.document.createElement("div"),{style:o}=t;o.position="absolute",o.visibility="hidden",o.whiteSpace="pre-wrap",o.overflowWrap="break-word";for(const c of hn)o[c]=n[c];t.textContent=l.value.slice(0,Math.max(0,e));const s=globalThis.document.createElement("span");s.textContent=l.value.slice(Math.max(0,e))||".",t.append(s),globalThis.document.body.append(t);const r=s.offsetLeft-l.scrollLeft,i=s.offsetTop-l.scrollTop;return t.remove(),{left:r,top:i}},bn=(l,e,n)=>{const t=Y(16),[o,s]=ce(null);let r;t[0]!==l||t[1]!==e?(r=(x,h)=>{const C=fn(x,h,l);if(C.length===0){s(null);return}const v=e.current,{left:p,top:k}=v===null?{left:0,top:0}:pn(v,h);s(N=>N!==null&&N.active===0&&N.left===p&&N.top===k&&N.suggestions.length===C.length&&N.suggestions.every((E,q)=>{const T=C.at(q);return E.kind===T?.kind&&E.label===T.label&&E.detail===T.detail})?N:{active:0,left:p,suggestions:C,top:k})},t[0]=l,t[1]=e,t[2]=r):r=t[2];const i=r;let c;t[3]===Symbol.for("react.memo_cache_sentinel")?(c=()=>{s(null)},t[3]=c):c=t[3];const a=c;let m;t[4]===Symbol.for("react.memo_cache_sentinel")?(m=x=>{s(h=>{if(h===null)return h;const C=h.suggestions.length,v=(h.active+x+C)%C;return{...h,active:v}})},t[4]=m):m=t[4];const g=m;let f;t[5]!==n||t[6]!==o||t[7]!==e?(f=x=>{const h=e.current;if(o===null||h===null)return!1;const C=o.suggestions[x??o.active];if(C===void 0)return!1;const v=mn(h.value,h.selectionStart,C);return n(v.value),s(null),requestAnimationFrame(()=>{const p=e.current;p!==null&&(p.focus(),p.setSelectionRange(v.caret,v.caret))}),!0},t[5]=n,t[6]=o,t[7]=e,t[8]=f):f=t[8];const y=f;let d;t[9]!==y?(d=()=>y(),t[9]=y,t[10]=d):d=t[10];const S=d;let u;return t[11]!==S||t[12]!==y||t[13]!==i||t[14]!==o?(u={close:a,commit:S,commitAt:y,move:g,refresh:i,state:o},t[11]=S,t[12]=y,t[13]=i,t[14]=o,t[15]=u):u=t[15],u},gn={column:"column",keyword:"keyword",table:"table"},xn=20,yn=l=>{const e=Y(17),{listboxId:n,onPick:t,state:o}=l,s=de();let r;e[0]!==o?(r=o===null?void 0:{left:o.left,top:o.top+xn},e[0]=o,e[1]=r):r=e[1];const i=r;if(o===null)return null;let c;if(e[2]!==n||e[3]!==t||e[4]!==o.active||e[5]!==o.suggestions||e[6]!==s){let m;e[8]!==n||e[9]!==t||e[10]!==o.active||e[11]!==s?(m=(g,f)=>F("li",{"aria-selected":f===o.active,className:fe("flex cursor-pointer items-center gap-2 px-2 py-1 text-[13px]",f===o.active?"bg-accent text-accent-foreground":"text-foreground"),"data-testid":"sql-autocomplete-item",id:`${n}-opt-${f.toString()}`,onMouseDown:y=>{y.preventDefault(),t(f)},role:"option",children:[b("span",{className:"truncate font-mono",children:g.label}),g.detail!==void 0&&b("span",{className:"ms-auto truncate text-xs text-muted-foreground",children:g.detail}),b("span",{className:"shrink-0 font-mono text-[10px] tracking-wide text-muted-foreground/70 uppercase",children:s(gn[g.kind])})]},`${g.kind}:${g.label}`),e[8]=n,e[9]=t,e[10]=o.active,e[11]=s,e[12]=m):m=e[12],c=o.suggestions.map(m),e[2]=n,e[3]=t,e[4]=o.active,e[5]=o.suggestions,e[6]=s,e[7]=c}else c=e[7];let a;return e[13]!==n||e[14]!==i||e[15]!==c?(a=b("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:n,role:"listbox",style:i,children:c}),e[13]=n,e[14]=i,e[15]=c,e[16]=a):a=e[16],a},vn=Oe(_e.listTables),Sn=Oe(_e.readTablePage),wn=l=>{const e=Y(16),n=Ue();let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=[],e[0]=t):t=e[0];const[o,s]=ce(t);let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r={},e[1]=r):r=e[1];const[i,c]=ce(r);let a;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=new Set,e[2]=a):a=e[2];const m=Ce(a);let g,f;e[3]!==n||e[4]!==l?(g=()=>{const h={cancelled:!1};return ue((async()=>{try{const v=await n.query(vn,{},qe(l));h.cancelled||(s(v.map(Nn)),c({}),m.current=new Set)}catch{h.cancelled||(s([]),c({}),m.current=new Set)}})()),()=>{h.cancelled=!0}},f=[n,l],e[3]=n,e[4]=l,e[5]=g,e[6]=f):(g=e[5],f=e[6]),Ne(g,f);let y;e[7]!==n||e[8]!==l?(y=h=>{if(m.current.has(h))return;m.current.add(h),ue((async()=>{try{const v=await n.query(Sn,{limit:1,offset:0,table:h},qe(l));c(p=>({...p,[h]:v.columns}))}catch{m.current.delete(h)}})())},e[7]=n,e[8]=l,e[9]=y):y=e[9];const d=y;let S;e[10]!==i||e[11]!==o?(S={columns:i,tables:o},e[10]=i,e[11]=o,e[12]=S):S=e[12];const u=S;let x;return e[13]!==d||e[14]!==u?(x={probe:d,schema:u},e[13]=d,e[14]=u,e[15]=x):x=e[15],x},We=/\b(?:from|join|update|into)\s+([a-z_][\w$]*)|\b([a-z_][\w$]*)\s*\./gi,Cn=l=>{const e=new Set;We.lastIndex=0;let n=We.exec(l);for(;n!==null;)e.add(n[1]??n[2]),n=We.exec(l);return[...e]};function Nn(l){return l.name}const kn=l=>{const e=Y(34),{onSubmit:n,probe:t,schema:o,setDraft:s}=l,r=ft(),i=Ce(null),c=Ce(null),a=Ce(null),m=bn(o,a,s),{close:g,commit:f,commitAt:y,move:d,refresh:S,state:u}=m;let x;e[0]!==y?(x=w=>{y(w)},e[0]=y,e[1]=x):x=e[1];const h=x;let C;e[2]!==S?(C=()=>{const w=a.current;w!==null&&w===document.activeElement&&S(w.value,w.selectionStart)},e[2]=S,e[3]=C):C=e[3];let v;e[4]!==S||e[5]!==o?(v=[S,o],e[4]=S,e[5]=o,e[6]=v):v=e[6],Ne(C,v);let p;e[7]!==t||e[8]!==S||e[9]!==s?(p=w=>{const{selectionStart:W,value:R}=w.target;s(R);for(const M of Cn(R))t(M);S(R,W)},e[7]=t,e[8]=S,e[9]=s,e[10]=p):p=e[10];const k=p;let N;e[11]!==S?(N=w=>{const W=w.currentTarget;S(W.value,W.selectionStart)},e[11]=S,e[12]=N):N=e[12];const L=N;let E;e[13]!==u||e[14]!==g||e[15]!==f||e[16]!==d||e[17]!==n?(E=w=>{if(u!==null){if(w.key==="ArrowDown"){w.preventDefault(),d(1);return}if(w.key==="ArrowUp"){w.preventDefault(),d(-1);return}if(w.key==="Escape"){w.preventDefault(),g();return}if((w.key==="Enter"||w.key==="Tab")&&!w.metaKey&&!w.ctrlKey&&f()){w.preventDefault();return}}(w.metaKey||w.ctrlKey)&&w.key==="Enter"&&(w.preventDefault(),n())},e[13]=u,e[14]=g,e[15]=f,e[16]=d,e[17]=n,e[18]=E):E=e[18];const q=E;let T;e[19]!==g?(T=()=>{requestAnimationFrame(()=>{g()})},e[19]=g,e[20]=T):T=e[20];const A=T;let _;e[21]===Symbol.for("react.memo_cache_sentinel")?(_=w=>{const{scrollLeft:W,scrollTop:R}=w.currentTarget;i.current!==null&&(i.current.scrollTop=R),c.current!==null&&(c.current.scrollTop=R,c.current.scrollLeft=W)},e[21]=_):_=e[21];const I=_;let B;e[22]===Symbol.for("react.memo_cache_sentinel")?(B=w=>{const W=a.current;W===null||w.offset===void 0||(W.focus(),W.setSelectionRange(w.offset,w.offset+(w.length??0)))},e[22]=B):B=e[22];const D=B;let P;e[23]!==k||e[24]!==A||e[25]!==q||e[26]!==L?(P={onBlur:A,onChange:k,onKeyDown:q,onScroll:I,onSelect:L},e[23]=k,e[24]=A,e[25]=q,e[26]=L,e[27]=P):P=e[27];let O;return e[28]!==u||e[29]!==g||e[30]!==r||e[31]!==h||e[32]!==P?(O={autocompleteState:u,closeAutocomplete:g,handlers:P,listboxId:r,onPickSuggestion:h,editorRef:a,gutterRef:i,overlayRef:c,revealDiagnostic:D},e[28]=u,e[29]=g,e[30]=r,e[31]=h,e[32]=P,e[33]=O):O=e[33],O},Tn="lunora-studio-sql-tabs",En="lunora-studio-sql-active-tab",Ye=12,we=(l="",e="")=>({activeId:null,id:et("tab"),name:e,sql:l}),Rn=()=>je(En,""),Ln=l=>{const e=Y(16),[n,t]=Fe(Tn),[o,s]=Rn(),[r]=ce(l);let i,c;e[0]!==r||e[1]!==t||e[2]!==n.length?(i=()=>{n.length===0&&t([r])},c=[r,t,n.length],e[0]=r,e[1]=t,e[2]=n.length,e[3]=i,e[4]=c):(i=e[3],c=e[4]),Ne(i,c);let a;e[5]!==r||e[6]!==n?(a=n.length===0?[r]:n,e[5]=r,e[6]=n,e[7]=a):a=e[7];const m=a;let g;e[8]!==o||e[9]!==m?(g=m.some(d=>d.id===o)?o:m[0]?.id??"",e[8]=o,e[9]=m,e[10]=g):g=e[10];const f=g;let y;return e[11]!==f||e[12]!==s||e[13]!==t||e[14]!==m?(y={activeId:f,setActiveId:s,setTabs:t,tabs:m},e[11]=f,e[12]=s,e[13]=t,e[14]=m,e[15]=y):y=e[15],y},it=l=>l.activeId===null&&l.sql.trim()!=="",In=(l,e)=>[...l,e].slice(-Ye),qn=(l,e,n)=>{const t=l.findIndex(r=>r.id===e);if(t===-1)return{activeId:l[0]?.id??"",tabs:[...l]};const o=l.filter(r=>r.id!==e);if(o.length===0){const r=n();return{activeId:r.id,tabs:[r]}}return{activeId:o[Math.min(t,o.length-1)].id,tabs:o}},An=(l,e)=>{const n=l.filter(t=>t.id===e);return n.length===0?{activeId:l[0]?.id??"",tabs:[...l]}:{activeId:e,tabs:n}},_n=(l,e,n)=>{const t=l.findIndex(s=>s.id===e);if(t===-1)return{activeId:n,tabs:[...l]};const o=l.slice(0,t+1);return{activeId:o.some(s=>s.id===n)?n:e,tabs:o}},On=l=>{const e=l();return{activeId:e.id,tabs:[e]}},Dn=(l,e,n)=>{if(l==="others")return e.filter(t=>t.id!==n);if(l==="right"){const t=e.findIndex(o=>o.id===n);return t===-1?[]:e.slice(t+1)}return[...e]},Xe={error:null,pane:"results",result:null,running:!1},Mn=l=>{const e=Y(66),{activeId:n,setActiveId:t,setTabs:o,tabs:s}=Ln(l);let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r={},e[0]=r):r=e[0];const[i,c]=ce(r),[a,m]=ce(null),[g,f]=ce(null);let y;e[1]!==n||e[2]!==s?(y=s.find(H=>H.id===n)??s[0]??we(),e[1]=n,e[2]=s,e[3]=y):y=e[3];const d=y,S=i[d.id]??Xe;let u;e[4]!==d.id||e[5]!==o?(u=H=>{o(j=>j.map(z=>z.id===d.id?{...z,...H}:z))},e[4]=d.id,e[5]=o,e[6]=u):u=e[6];const x=u;let h;e[7]!==d.id?(h=H=>{c(j=>{const z=j[d.id]??Xe;return{...j,[d.id]:{...z,...H}}})},e[7]=d.id,e[8]=h):h=e[8];const C=h;let v;e[9]!==t||e[10]!==o||e[11]!==s.length?(v=()=>{if(s.length>=Ye)return;const H=we();o(j=>In(j,H)),t(H.id)},e[9]=t,e[10]=o,e[11]=s.length,e[12]=v):v=e[12];const p=v;let k;e[13]!==t||e[14]!==o?(k=H=>{m(null),f(null),o(H.tabs),t(H.activeId);const j=new Set(H.tabs.map($n));c(z=>Object.fromEntries(Object.entries(z).filter(J=>{const[me]=J;return j.has(me)})))},e[13]=t,e[14]=o,e[15]=k):k=e[15];const N=k;let L;e[16]!==N||e[17]!==s?(L=H=>{N(qn(s,H,we))},e[16]=N,e[17]=s,e[18]=L):L=e[18];const E=L;let q;e[19]!==n||e[20]!==N||e[21]!==s?(q=(H,j)=>{N(H==="others"?An(s,j):H==="right"?_n(s,j,n):On(we))},e[19]=n,e[20]=N,e[21]=s,e[22]=q):q=e[22];const T=q;let A;e[23]!==T||e[24]!==a||e[25]!==s?(A=H=>{a!==null&&(Dn(H,s,a.id).some(Bn)?f(H):T(H,a.id))},e[23]=T,e[24]=a,e[25]=s,e[26]=A):A=e[26];const _=A;let I;e[27]===Symbol.for("react.memo_cache_sentinel")?(I=(H,j)=>{j.preventDefault(),f(null),m({id:H,x:j.clientX,y:j.clientY})},e[27]=I):I=e[27];const B=I;let D;e[28]===Symbol.for("react.memo_cache_sentinel")?(D=()=>{m(null),f(null)},e[28]=D):D=e[28];const P=D;let O;e[29]===Symbol.for("react.memo_cache_sentinel")?(O=H=>{H.preventDefault(),m(null),f(null)},e[29]=O):O=e[29];const w=O;let W;e[30]!==_?(W=()=>{_("others")},e[30]=_,e[31]=W):W=e[31];const R=W;let M;e[32]!==_?(M=()=>{_("right")},e[32]=_,e[33]=M):M=e[33];const U=M;let $;e[34]!==_?($=()=>{_("all")},e[34]=_,e[35]=$):$=e[35];const X=$;let Z;e[36]!==T||e[37]!==g||e[38]!==a?(Z=()=>{a!==null&&g!==null&&T(g,a.id),f(null)},e[36]=T,e[37]=g,e[38]=a,e[39]=Z):Z=e[39];const ee=Z;let te;e[40]===Symbol.for("react.memo_cache_sentinel")?(te=()=>{f(null)},e[40]=te):te=e[40];const ie=te;let G;e[41]!==a?(G=a===null?void 0:{left:a.x,top:a.y},e[41]=a,e[42]=G):G=e[42];const Q=G;let ne;e[43]!==o?(ne=H=>{o(j=>j.map(z=>z.activeId===H?{...z,activeId:null}:z))},e[43]=o,e[44]=ne):ne=e[44];const se=ne;let oe;e[45]!==o?(oe=(H,j)=>{o(z=>z.map(J=>J.id===H?{...J,name:j}:J))},e[45]=o,e[46]=oe):oe=e[46];const le=oe;let re;return e[47]!==d||e[48]!==n||e[49]!==p||e[50]!==E||e[51]!==ee||e[52]!==X||e[53]!==R||e[54]!==U||e[55]!==S||e[56]!==C||e[57]!==x||e[58]!==g||e[59]!==le||e[60]!==t||e[61]!==a||e[62]!==Q||e[63]!==s||e[64]!==se?(re={activeTab:d,activeTabId:n,addEditorTab:p,cancelBulk:ie,closeEditorTab:E,closeTabMenu:P,confirmBulk:ee,menuStyle:Q,onBackdropContextMenu:w,onCloseAll:X,onCloseOthers:R,onCloseToRight:U,openTabMenu:B,output:S,patchActiveOutput:C,patchActiveTab:x,pendingBulk:g,renameTab:le,setActiveTabId:t,tabMenu:a,tabs:s,unlinkQuery:se},e[47]=d,e[48]=n,e[49]=p,e[50]=E,e[51]=ee,e[52]=X,e[53]=R,e[54]=U,e[55]=S,e[56]=C,e[57]=x,e[58]=g,e[59]=le,e[60]=t,e[61]=a,e[62]=Q,e[63]=s,e[64]=se,e[65]=re):re=e[65],re};function $n(l){return l.id}function Bn(l){return it(l)}const Hn="lunora-studio-sql-queries",Se="lunora-studio-sql-history",Pn="lunora-studio-sql-remember-history",Wn=25,Fn=l=>{const e=Y(41),{loadIntoActiveTab:n,unlinkQuery:t}=l,o=de(),[s,r]=Fe(Hn),[i,c]=je(Pn,!1),[a,m]=Fe(Se,i?"local":"session");let g,f;e[0]!==i?(g=()=>{i||Re(Se,"local")},f=[i],e[0]=i,e[1]=g,e[2]=f):(g=e[1],f=e[2]),Ne(g,f);const[y,d]=ce(""),S=Ce(null);let u;e[3]!==m?(u=R=>{m(M=>M[0]?.sql===R?M:[{at:Date.now(),sql:R},...M.filter($=>$.sql!==R)].slice(0,Wn))},e[3]=m,e[4]=u):u=e[4];const x=u;let h;e[5]!==n||e[6]!==r||e[7]!==o?(h=()=>{const R={id:et("q"),name:o("Untitled query"),sql:""};r(M=>[R,...M]),n("",R.id)},e[5]=n,e[6]=r,e[7]=o,e[8]=h):h=e[8];const C=h;let v;e[9]!==n||e[10]!==s?(v=R=>{const M=s.find(U=>U.id===R);M!==void 0&&(n(M.sql,R),S.current?.querySelector(`[data-testid="sql-query-${R}"]`)?.scrollIntoView({block:"nearest"}))},e[9]=n,e[10]=s,e[11]=v):v=e[11];const p=v;let k;e[12]!==r||e[13]!==t?(k=R=>{r(M=>M.filter(U=>U.id!==R)),t(R)},e[12]=r,e[13]=t,e[14]=k):k=e[14];const N=k;let L;e[15]!==n?(L=R=>{n(R.currentTarget.dataset.sql??"",null)},e[15]=n,e[16]=L):L=e[16];const E=L;let q;e[17]!==n?(q=R=>{n(R.currentTarget.dataset.sql??"",null)},e[17]=n,e[18]=q):q=e[18];const T=q;let A;e[19]!==m?(A=()=>{m([]),Re(Se,"local"),Re(Se,"session")},e[19]=m,e[20]=A):A=e[20];const _=A;let I;e[21]!==a||e[22]!==c?(I=R=>{mt(Se,a,R?"local":"session"),R||Re(Se,"local"),c(R)},e[21]=a,e[22]=c,e[23]=I):I=e[23];const B=I;let D;e[24]===Symbol.for("react.memo_cache_sentinel")?(D=R=>{d(R.target.value)},e[24]=D):D=e[24];const P=D;let O;e[25]!==r?(O=(R,M)=>{r(U=>U.map($=>$.id===R?{...$,sql:M}:$))},e[25]=r,e[26]=O):O=e[26];const w=O;let W;return e[27]!==_||e[28]!==N||e[29]!==a||e[30]!==T||e[31]!==E||e[32]!==C||e[33]!==s||e[34]!==x||e[35]!==i||e[36]!==y||e[37]!==p||e[38]!==B||e[39]!==w?(W={clearHistory:_,deleteQuery:N,history:a,listRef:S,loadFromHistory:T,loadTemplate:E,newQuery:C,onSearchChange:P,queries:s,recordHistory:x,rememberHistory:i,search:y,selectQuery:p,setRememberHistory:B,updateQuerySql:w},e[27]=_,e[28]=N,e[29]=a,e[30]=T,e[31]=E,e[32]=C,e[33]=s,e[34]=x,e[35]=i,e[36]=y,e[37]=p,e[38]=B,e[39]=w,e[40]=W):W=e[40],W},at="p-3 font-mono text-xs leading-5 whitespace-pre-wrap break-words",Qn=(l,e)=>{const n=[];for(const o of l){if(o.offset===void 0||o.length===void 0||o.length<=0)continue;const s=Math.max(0,Math.min(o.offset,e)),r=Math.max(s,Math.min(o.offset+o.length,e));s!==r&&n.push({end:r,severity:o.severity,start:s})}n.sort((o,s)=>o.start-s.start);const t=[];for(const o of n)o.start>=(t.at(-1)?.end??0)&&t.push(o);return t},Un=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.",jn=l=>{const e=Y(51),{assistant:n,failed:t,onGenerated:o}=l,s=de(),[r,i]=ce("");if(n.unavailable)return null;let c;e[0]!==n?(c=n.pending("sql"),e[0]=n,e[1]=c):c=e[1];const a=c;let m;if(e[2]!==n||e[3]!==t||e[4]!==o||e[5]!==a||e[6]!==r||e[7]!==s){const g=n.reason("sql");let f;e[9]!==n||e[10]!==t||e[11]!==o||e[12]!==r?(f=T=>{const A=r.trim();if(A===""&&!T)return;ue((async()=>{const I=await n.generate(A===""?"fix the failing statement":A,T?t:void 0);I!==void 0&&o(I)})())},e[9]=n,e[10]=t,e[11]=o,e[12]=r,e[13]=f):f=e[13];const y=f;let d;e[14]!==s?(d=s("Describe the query you want"),e[14]=s,e[15]=d):d=e[15];let S;e[16]===Symbol.for("react.memo_cache_sentinel")?(S=T=>{i(T.target.value)},e[16]=S):S=e[16];let u;e[17]!==y?(u=T=>{T.key==="Enter"&&(T.preventDefault(),y(!1))},e[17]=y,e[18]=u):u=e[18];let x;e[19]!==s?(x=s("Describe the query you want"),e[19]=s,e[20]=x):x=e[20];let h;e[21]!==a||e[22]!==r||e[23]!==d||e[24]!==u||e[25]!==x?(h=b(xt,{"aria-label":d,className:"h-7 flex-1 text-xs","data-testid":"sql-assistant-prompt",disabled:a,onChange:S,onKeyDown:u,placeholder:x,value:r}),e[21]=a,e[22]=r,e[23]=d,e[24]=u,e[25]=x,e[26]=h):h=e[26];const C=a&&"opacity-60";let v;e[27]!==C?(v=fe("rounded-md border border-border px-2 py-1 text-xs outline-none transition-colors hover:bg-accent focus-visible:bg-accent",C),e[27]=C,e[28]=v):v=e[28];let p;e[29]!==a||e[30]!==r?(p=a||r.trim()==="",e[29]=a,e[30]=r,e[31]=p):p=e[31];let k;e[32]!==y?(k=()=>{y(!1)},e[32]=y,e[33]=k):k=e[33];let N;e[34]!==a||e[35]!==s?(N=s(a?"Thinking…":"Draft SQL"),e[34]=a,e[35]=s,e[36]=N):N=e[36];let L;e[37]!==v||e[38]!==p||e[39]!==k||e[40]!==N?(L=b("button",{className:v,"data-testid":"sql-assistant-generate",disabled:p,onClick:k,type:"button",children:N}),e[37]=v,e[38]=p,e[39]=k,e[40]=N,e[41]=L):L=e[41];let E;e[42]!==t||e[43]!==a||e[44]!==y||e[45]!==s?(E=t!==void 0&&b("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:a,onClick:()=>{y(!0)},type:"button",children:s("Fix this")}),e[42]=t,e[43]=a,e[44]=y,e[45]=s,e[46]=E):E=e[46];let q;e[47]!==L||e[48]!==E||e[49]!==h?(q=F("div",{className:"flex items-center gap-2",children:[h,L,E]}),e[47]=L,e[48]=E,e[49]=h,e[50]=q):q=e[50],m=F("div",{className:"flex flex-col gap-1 border-b border-border px-3 py-2","data-testid":"sql-assistant",children:[q,g!==void 0&&b("p",{className:"text-[11px] text-muted-foreground","data-testid":"sql-assistant-reason",role:"status",children:Un(g)})]}),e[2]=n,e[3]=t,e[4]=o,e[5]=a,e[6]=r,e[7]=s,e[8]=m}else m=e[8];return m},zn=l=>{const e=Y(8),{diagnostics:n,draft:t,scrollRef:o}=l;let s,r;if(e[0]!==n||e[1]!==t){r=Symbol.for("react.early_return_sentinel");e:{const a=Qn(n,t.length);if(a.length===0){r=null;break e}s=[];let m=0;for(const[g,f]of a.entries())f.start>m&&s.push(t.slice(m,f.start)),s.push(b("span",{className:fe("decoration-wavy underline underline-offset-4",f.severity==="error"?"decoration-destructive":"decoration-amber-500"),children:t.slice(f.start,f.end)},`${f.start.toString()}-${g.toString()}`)),m=f.end;s.push(t.slice(m))}e[0]=n,e[1]=t,e[2]=s,e[3]=r}else s=e[2],r=e[3];if(r!==Symbol.for("react.early_return_sentinel"))return r;let i;e[4]===Symbol.for("react.memo_cache_sentinel")?(i=fe("pointer-events-none absolute inset-0 overflow-hidden text-transparent",at),e[4]=i):i=e[4];let c;return e[5]!==s||e[6]!==o?(c=b("div",{"aria-hidden":"true",className:i,"data-testid":"sql-diagnostics-overlay",ref:o,children:s}),e[5]=s,e[6]=o,e[7]=c):c=e[7],c},Yn={gate:"read-only",plan:"plan",schema:"schema",syntax:"syntax"},Kn=l=>{const e=Y(10),{diagnostics:n,onSelect:t}=l,o=de();if(n.length===0)return null;let s;e[0]!==o?(s=o("SQL problems"),e[0]=o,e[1]=s):s=e[1];let r;if(e[2]!==n||e[3]!==t){let c;e[5]!==t?(c=(a,m)=>b("li",{children:F("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:()=>{t(a)},type:"button",children:[b("span",{className:fe("mt-px shrink-0 rounded px-1 font-mono text-[10px] uppercase",a.severity==="error"?"bg-destructive/15 text-destructive":"bg-amber-500/15 text-amber-600"),children:Yn[a.source]}),b("span",{className:"min-w-0 text-muted-foreground",children:a.message})]})},`${a.source}-${(a.offset??m).toString()}-${m.toString()}`),e[5]=t,e[6]=c):c=e[6],r=n.map(c),e[2]=n,e[3]=t,e[4]=r}else r=e[4];let i;return e[7]!==s||e[8]!==r?(i=b("ul",{"aria-label":s,className:"max-h-24 shrink-0 overflow-y-auto border-t border-border bg-muted/30","data-testid":"sql-problems",children:r}),e[7]=s,e[8]=r,e[9]=i):i=e[9],i},Gn={minWidth:"2.75rem",paddingInline:"0.5rem"},Jn=l=>{const e=Y(64),{assistant:n,autocomplete:t,diagnostics:o,draft:s,failed:r,handlers:i,editorRef:c,gutterRef:a,listboxId:m,onGenerated:g,onPickSuggestion:f,onRevealDiagnostic:y,overlayRef:d}=l,S=de();let u,x,h,C,v,p,k,N;if(e[0]!==n||e[1]!==s||e[2]!==r||e[3]!==a||e[4]!==g){const W=s.split(`
|
|
8
|
+
`).length;k="flex min-h-0 min-w-0 flex-1 flex-col",e[13]!==n||e[14]!==r||e[15]!==g?(N=b(jn,{assistant:n,failed:r,onGenerated:g}),e[13]=n,e[14]=r,e[15]=g,e[16]=N):N=e[16],p="flex min-h-0 min-w-0 flex-1",u="true",x="shrink-0 select-none overflow-hidden border-e border-border bg-muted/30 py-3 text-end font-mono text-xs leading-5 text-muted-foreground/60",h=a,C=Gn,v=Array.from({length:W},Vn),e[0]=n,e[1]=s,e[2]=r,e[3]=a,e[4]=g,e[5]=u,e[6]=x,e[7]=h,e[8]=C,e[9]=v,e[10]=p,e[11]=k,e[12]=N}else u=e[5],x=e[6],h=e[7],C=e[8],v=e[9],p=e[10],k=e[11],N=e[12];let L;e[17]!==u||e[18]!==x||e[19]!==h||e[20]!==C||e[21]!==v?(L=b("div",{"aria-hidden":u,className:x,ref:h,style:C,children:v}),e[17]=u,e[18]=x,e[19]=h,e[20]=C,e[21]=v,e[22]=L):L=e[22];let E;e[23]!==o||e[24]!==s||e[25]!==d?(E=b(zn,{diagnostics:o,draft:s,scrollRef:d}),e[23]=o,e[24]=s,e[25]=d,e[26]=E):E=e[26];let q;e[27]!==t||e[28]!==m?(q=t===null?void 0:`${m}-opt-${t.active.toString()}`,e[27]=t,e[28]=m,e[29]=q):q=e[29];const T=t===null?void 0:m,A=t!==null;let _;e[30]!==S?(_=S("SQL query"),e[30]=S,e[31]=_):_=e[31];let I;e[32]!==s||e[33]!==c||e[34]!==i.onBlur||e[35]!==i.onChange||e[36]!==i.onKeyDown||e[37]!==i.onScroll||e[38]!==i.onSelect||e[39]!==q||e[40]!==T||e[41]!==A||e[42]!==_?(I=b("textarea",{"aria-activedescendant":q,"aria-autocomplete":"list","aria-controls":T,"aria-expanded":A,"aria-label":_,className:`relative size-full resize-none bg-transparent outline-none ${at}`,"data-testid":"sql-input",onBlur:i.onBlur,onChange:i.onChange,onKeyDown:i.onKeyDown,onScroll:i.onScroll,onSelect:i.onSelect,placeholder:"SELECT * FROM …",ref:c,role:"combobox",spellCheck:!1,value:s}),e[32]=s,e[33]=c,e[34]=i.onBlur,e[35]=i.onChange,e[36]=i.onKeyDown,e[37]=i.onScroll,e[38]=i.onSelect,e[39]=q,e[40]=T,e[41]=A,e[42]=_,e[43]=I):I=e[43];let B;e[44]!==t||e[45]!==m||e[46]!==f?(B=b(yn,{listboxId:m,onPick:f,state:t}),e[44]=t,e[45]=m,e[46]=f,e[47]=B):B=e[47];let D;e[48]!==E||e[49]!==I||e[50]!==B?(D=F("div",{className:"relative min-w-0 flex-1 bg-background",children:[E,I,B]}),e[48]=E,e[49]=I,e[50]=B,e[51]=D):D=e[51];let P;e[52]!==D||e[53]!==p||e[54]!==L?(P=F("div",{className:p,children:[L,D]}),e[52]=D,e[53]=p,e[54]=L,e[55]=P):P=e[55];let O;e[56]!==o||e[57]!==y?(O=b(Kn,{diagnostics:o,onSelect:y}),e[56]=o,e[57]=y,e[58]=O):O=e[58];let w;return e[59]!==P||e[60]!==O||e[61]!==k||e[62]!==N?(w=F("div",{className:k,children:[N,P,O]}),e[59]=P,e[60]=O,e[61]=k,e[62]=N,e[63]=w):w=e[63],w};function Vn(l,e){return b("div",{children:e+1},e)}const ct=[{label:"List tables",sql:"SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY name;"},{label:"Table row count",sql:"SELECT COUNT(*) AS rows FROM messages;"},{label:"Recent rows",sql:"SELECT id, _creationTime, __doc__ FROM messages ORDER BY _creationTime DESC LIMIT 50;"},{label:"Index list",sql:"SELECT name, tbl_name FROM sqlite_master WHERE type = 'index' ORDER BY tbl_name;"}],Xn=l=>{const e=Y(29),{active:n,onDelete:t,onSelect:o,query:s}=l,r=de();let i;e[0]!==o||e[1]!==s.id?(i=()=>{o(s.id)},e[0]=o,e[1]=s.id,e[2]=i):i=e[2];const c=i;let a;e[3]!==t||e[4]!==s.id?(a=k=>{k.stopPropagation(),t(s.id)},e[3]=t,e[4]=s.id,e[5]=a):a=e[5];const m=a,g=n?"bg-sidebar-accent font-medium text-foreground":"text-muted-foreground";let f;e[6]!==g?(f=fe("flex min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-start text-[13px] outline-none transition-colors hover:bg-sidebar-accent focus-visible:bg-sidebar-accent",g),e[6]=g,e[7]=f):f=e[7];const y=`sql-query-${s.id}`;let d;e[8]===Symbol.for("react.memo_cache_sentinel")?(d=b("svg",{"aria-hidden":"true",className:"size-3.5 shrink-0 opacity-70",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:b("path",{d:"M4 6h16M4 12h10M4 18h7"})}),e[8]=d):d=e[8];let S;e[9]!==s.name?(S=b("span",{className:"truncate",children:s.name}),e[9]=s.name,e[10]=S):S=e[10];let u;e[11]!==n||e[12]!==c||e[13]!==f||e[14]!==y||e[15]!==S?(u=F("button",{"aria-pressed":n,className:f,"data-testid":y,onClick:c,type:"button",children:[d,S]}),e[11]=n,e[12]=c,e[13]=f,e[14]=y,e[15]=S,e[16]=u):u=e[16];let x;e[17]!==r?(x=r("Delete query"),e[17]=r,e[18]=x):x=e[18];let h;e[19]!==r?(h=r("Delete query"),e[19]=r,e[20]=h):h=e[20];let C;e[21]===Symbol.for("react.memo_cache_sentinel")?(C=b("svg",{"aria-hidden":"true",className:"size-3.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:b("path",{d:"M5 7h14M9 7V5h6v2m-1 0v12H10V7M7 7v13h10V7"})}),e[21]=C):C=e[21];let v;e[22]!==m||e[23]!==h||e[24]!==x?(v=b("button",{"aria-label":x,className:"me-1 hidden size-6 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-destructive/10 hover:text-destructive group-hover/q:flex",onClick:m,title:h,type:"button",children:C}),e[22]=m,e[23]=h,e[24]=x,e[25]=v):v=e[25];let p;return e[26]!==v||e[27]!==u?(p=F("li",{className:"group/q flex items-center",children:[u,v]}),e[26]=v,e[27]=u,e[28]=p):p=e[28],p},Ze="sql-history-remember",Zn=(l,e)=>{const n=e.trim().toLowerCase();return n===""?[...l]:l.filter(t=>t.name.toLowerCase().includes(n))},es=l=>{const e=Y(66),{activeId:n,history:t,listRef:o,onClearHistory:s,onDelete:r,onLoadHistory:i,onLoadTemplate:c,onNew:a,onSearchChange:m,onSelect:g,onToggleRememberHistory:f,queries:y,rememberHistory:d,search:S}=l,u=de();let x,h,C,v,p;if(e[0]!==n||e[1]!==o||e[2]!==r||e[3]!==a||e[4]!==m||e[5]!==g||e[6]!==f||e[7]!==y||e[8]!==S||e[9]!==u){const I=Zn(y,S);let B;e[15]!==f?(B=$=>{f($.target.checked)},e[15]=f,e[16]=B):B=e[16],x=B,C="flex h-full w-64 shrink-0 flex-col border-e border-border bg-sidebar";let D;e[17]!==u?(D=u("Search queries…"),e[17]=u,e[18]=D):D=e[18];let P;e[19]!==m||e[20]!==S||e[21]!==D?(P=b("input",{className:"h-8 min-w-0 flex-1 rounded-md border border-border bg-background px-2 text-xs outline-none focus-visible:border-ring","data-testid":"sql-search",onChange:m,placeholder:D,type:"text",value:S}),e[19]=m,e[20]=S,e[21]=D,e[22]=P):P=e[22];let O;e[23]!==u?(O=u("New query"),e[23]=u,e[24]=O):O=e[24];let w;e[25]!==u?(w=u("New query"),e[25]=u,e[26]=w):w=e[26];let W;e[27]===Symbol.for("react.memo_cache_sentinel")?(W=b("svg",{"aria-hidden":"true",className:"size-4",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.7,viewBox:"0 0 24 24",children:b("path",{d:"M12 5v14M5 12h14"})}),e[27]=W):W=e[27];let R;e[28]!==a||e[29]!==O||e[30]!==w?(R=b("button",{"aria-label":O,className:"flex size-8 shrink-0 items-center justify-center rounded-md border border-border text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent","data-testid":"sql-new",onClick:a,title:w,type:"button",children:W}),e[28]=a,e[29]=O,e[30]=w,e[31]=R):R=e[31],e[32]!==R||e[33]!==P?(v=F("div",{className:"flex shrink-0 items-center gap-2 border-b border-border p-2",children:[P,R]}),e[32]=R,e[33]=P,e[34]=v):v=e[34],h="flex flex-1 flex-col gap-4 overflow-y-auto p-2";let M;e[35]!==u?(M=u("Private"),e[35]=u,e[36]=M):M=e[36];let U;e[37]!==M?(U=b("p",{className:"px-1 pb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:M}),e[37]=M,e[38]=U):U=e[38],p=F("div",{children:[U,I.length===0?b("p",{className:"px-1 py-2 text-xs text-muted-foreground","data-testid":"sql-private-empty",children:u("No saved queries yet — they save to this browser as you type.")}):b("ul",{className:"flex flex-col gap-px","data-testid":"sql-private",ref:o,children:I.map($=>b(Xn,{active:n===$.id,onDelete:r,onSelect:g,query:$},$.id))})]}),e[0]=n,e[1]=o,e[2]=r,e[3]=a,e[4]=m,e[5]=g,e[6]=f,e[7]=y,e[8]=S,e[9]=u,e[10]=x,e[11]=h,e[12]=C,e[13]=v,e[14]=p}else x=e[10],h=e[11],C=e[12],v=e[13],p=e[14];let k;e[39]!==u?(k=u("Reference"),e[39]=u,e[40]=k):k=e[40];let N;e[41]!==k?(N=b("p",{className:"px-1 pb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:k}),e[41]=k,e[42]=N):N=e[42];let L;e[43]!==c?(L=ct.map(I=>b("li",{children:F("button",{className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-start text-[13px] text-muted-foreground outline-none transition-colors hover:bg-sidebar-accent hover:text-foreground focus-visible:bg-sidebar-accent","data-sql":I.sql,onClick:c,type:"button",children:[b("svg",{"aria-hidden":"true",className:"size-3.5 shrink-0 opacity-70",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:b("path",{d:"M7 4h7l4 4v12H7zM14 4v4h4"})}),I.label]})},I.label)),e[43]=c,e[44]=L):L=e[44];let E;e[45]!==L?(E=b("ul",{className:"flex flex-col gap-px",children:L}),e[45]=L,e[46]=E):E=e[46];let q;e[47]!==N||e[48]!==E?(q=F("div",{children:[N,E]}),e[47]=N,e[48]=E,e[49]=q):q=e[49];let T;e[50]!==t||e[51]!==s||e[52]!==i||e[53]!==x||e[54]!==d||e[55]!==u?(T=t.length>0&&F("div",{children:[F("div",{className:"flex items-center justify-between px-1 pb-1",children:[b("p",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:u("History")}),b("button",{className:"rounded px-1 text-[11px] text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:text-foreground","data-testid":"sql-history-clear",onClick:s,type:"button",children:u("Clear history")})]}),F("label",{className:"flex cursor-pointer items-center gap-1.5 px-1 pb-1.5 text-[11px] text-muted-foreground",htmlFor:Ze,children:[b("input",{checked:d,"data-testid":"sql-history-remember",id:Ze,onChange:x,type:"checkbox"}),u("Keep history on this browser")]}),b("ul",{className:"flex flex-col gap-px","data-testid":"sql-history",children:t.map(I=>b("li",{children:F("button",{className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-start text-[13px] text-muted-foreground outline-none transition-colors hover:bg-sidebar-accent hover:text-foreground focus-visible:bg-sidebar-accent","data-sql":I.sql,"data-testid":"sql-history-item",onClick:i,title:I.sql,type:"button",children:[b("svg",{"aria-hidden":"true",className:"size-3.5 shrink-0 opacity-70",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:b("path",{d:"M12 8v4l3 2M12 21a9 9 0 1 1 0-18 9 9 0 0 1 0 18Z"})}),b("span",{className:"truncate font-mono",children:I.sql})]})},`${I.at.toString()}:${I.sql}`))})]}),e[50]=t,e[51]=s,e[52]=i,e[53]=x,e[54]=d,e[55]=u,e[56]=T):T=e[56];let A;e[57]!==h||e[58]!==T||e[59]!==p||e[60]!==q?(A=F("div",{className:h,children:[p,q,T]}),e[57]=h,e[58]=T,e[59]=p,e[60]=q,e[61]=A):A=e[61];let _;return e[62]!==A||e[63]!==C||e[64]!==v?(_=F("aside",{className:C,children:[v,A]}),e[62]=A,e[63]=C,e[64]=v,e[65]=_):_=e[65],_},Ie=l=>`border-b-2 px-3 py-2 text-sm outline-none transition-colors ${l?"border-foreground font-medium text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,ts=l=>{const e=Y(96),{assistant:n,chart:t,className:o,error:s,onFormat:r,onInferChart:i,onRun:c,onSelectStatement:a,onShardKeyChange:m,onShowChart:g,onShowExplain:f,onShowResults:y,onToggleSplit:d,pane:S,result:u,running:x,script:h,shardKey:C,splitView:v}=l,p=de(),k=S==="results";let N;e[0]!==k?(N=Ie(k),e[0]=k,e[1]=N):N=e[1];let L;e[2]!==p?(L=p("Results"),e[2]=p,e[3]=L):L=e[3];let E;e[4]!==y||e[5]!==N||e[6]!==L?(E=b("button",{className:N,"data-testid":"sql-tab-results",onClick:y,type:"button",children:L}),e[4]=y,e[5]=N,e[6]=L,e[7]=E):E=e[7];const q=S==="chart";let T;e[8]!==q?(T=Ie(q),e[8]=q,e[9]=T):T=e[9];let A;e[10]!==p?(A=p("Chart"),e[10]=p,e[11]=A):A=e[11];let _;e[12]!==g||e[13]!==T||e[14]!==A?(_=b("button",{className:T,"data-testid":"sql-tab-chart",onClick:g,type:"button",children:A}),e[12]=g,e[13]=T,e[14]=A,e[15]=_):_=e[15];let I;e[16]!==n||e[17]!==i||e[18]!==S||e[19]!==u||e[20]!==p?(I=!n.unavailable&&S==="chart"&&u!==null&&b("button",{className:Ie(!1),"data-testid":"sql-infer-chart",disabled:n.pending("chart"),onClick:i,type:"button",children:n.pending("chart")?p("Thinking…"):p("Suggest chart")}),e[16]=n,e[17]=i,e[18]=S,e[19]=u,e[20]=p,e[21]=I):I=e[21];const B=S==="explain";let D;e[22]!==B?(D=Ie(B),e[22]=B,e[23]=D):D=e[23];let P;e[24]!==p?(P=p("Explain"),e[24]=p,e[25]=P):P=e[25];let O;e[26]!==f||e[27]!==D||e[28]!==P?(O=b("button",{className:D,"data-testid":"sql-tab-explain",onClick:f,type:"button",children:P}),e[26]=f,e[27]=D,e[28]=P,e[29]=O):O=e[29];let w;e[30]!==p?(w=p("Split editor and results"),e[30]=p,e[31]=w):w=e[31];const W=`inline-flex items-center rounded-md border border-border px-2 py-1.5 outline-none transition-colors hover:bg-accent focus-visible:bg-accent ${v?"bg-accent text-foreground":"text-muted-foreground"}`;let R;e[32]!==p?(R=p("Split editor and results"),e[32]=p,e[33]=R):R=e[33];let M;e[34]===Symbol.for("react.memo_cache_sentinel")?(M=F("svg",{"aria-hidden":"true",className:"size-4",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.7,viewBox:"0 0 24 24",children:[b("rect",{height:"16",rx:"2",width:"18",x:"3",y:"4"}),b("path",{d:"M12 4v16"})]}),e[34]=M):M=e[34];let U;e[35]!==d||e[36]!==v||e[37]!==w||e[38]!==W||e[39]!==R?(U=b("button",{"aria-label":w,"aria-pressed":v,className:W,"data-testid":"sql-split-toggle",onClick:d,title:R,type:"button",children:M}),e[35]=d,e[36]=v,e[37]=w,e[38]=W,e[39]=R,e[40]=U):U=e[40];let $;e[41]!==u?($=u!==null&&u.columns.length>0&&b(Ct,{columns:u.columns,name:"query-result",rows:u.rows}),e[41]=u,e[42]=$):$=e[42];let X;e[43]!==p?(X=p("Format"),e[43]=p,e[44]=X):X=e[44];let Z;e[45]!==r||e[46]!==x||e[47]!==X?(Z=b("button",{className:"inline-flex items-center 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","data-testid":"sql-format",disabled:x,onClick:r,type:"button",children:X}),e[45]=r,e[46]=x,e[47]=X,e[48]=Z):Z=e[48];let ee;e[49]!==m||e[50]!==C?(ee=b(St,{onChange:m,testId:"sql-shard-input",value:C}),e[49]=m,e[50]=C,e[51]=ee):ee=e[51];let te;e[52]!==x||e[53]!==p?(te=p(x?"Running…":"Run"),e[52]=x,e[53]=p,e[54]=te):te=e[54];let ie;e[55]===Symbol.for("react.memo_cache_sentinel")?(ie=b("kbd",{className:"rounded border border-primary-foreground/30 px-1 font-sans text-[10px]",children:"⌘↵"}),e[55]=ie):ie=e[55];let G;e[56]!==c||e[57]!==x||e[58]!==te?(G=F("button",{className:"inline-flex items-center gap-1.5 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","data-testid":"sql-run",disabled:x,onClick:c,type:"button",children:[te,ie]}),e[56]=c,e[57]=x,e[58]=te,e[59]=G):G=e[59];let Q;e[60]!==U||e[61]!==$||e[62]!==Z||e[63]!==ee||e[64]!==G?(Q=F("div",{className:"ms-auto flex items-center gap-2",children:[U,$,Z,ee,G]}),e[60]=U,e[61]=$,e[62]=Z,e[63]=ee,e[64]=G,e[65]=Q):Q=e[65];let ne;e[66]!==O||e[67]!==Q||e[68]!==E||e[69]!==_||e[70]!==I?(ne=F("div",{className:"flex shrink-0 items-center gap-2 border-b border-border pe-2",children:[E,_,I,O,Q]}),e[66]=O,e[67]=Q,e[68]=E,e[69]=_,e[70]=I,e[71]=ne):ne=e[71];let se;e[72]!==a||e[73]!==h?(se=h!==void 0&&b("div",{className:"flex shrink-0 flex-wrap items-center gap-1 border-b border-border px-3 py-1.5","data-testid":"sql-statements",children:h.runs.map((z,J)=>b("button",{"aria-pressed":J===h.selected,className:`rounded-md border px-2 py-0.5 font-mono text-[11px] outline-none transition-colors ${J===h.selected?"border-foreground text-foreground":"border-border text-muted-foreground hover:text-foreground"} ${z.error===null?"":"border-destructive/50 text-destructive"}`,"data-testid":`sql-statement-${J.toString()}`,onClick:()=>{a(J)},title:z.sql,type:"button",children:J+1},`${J.toString()}:${z.sql}`))}),e[72]=a,e[73]=h,e[74]=se):se=e[74];let oe;e[75]!==s?(oe=s!==null&&b(wt,{className:"m-3 font-mono text-xs",testId:"sql-error",variant:"destructive",children:s}),e[75]=s,e[76]=oe):oe=e[76];let le;e[77]!==s||e[78]!==u||e[79]!==p?(le=s===null&&u===null&&b("p",{className:"p-4 text-sm text-muted-foreground","data-testid":"sql-empty",children:p("Click Run to execute your query.")}),e[77]=s,e[78]=u,e[79]=p,e[80]=le):le=e[80];let re;e[81]!==t||e[82]!==s||e[83]!==S||e[84]!==u||e[85]!==p?(re=s===null&&u!==null&&F("div",{"data-testid":"sql-result",children:[S==="chart"?b(yt,{axes:t,result:u}):b(vt,{result:u}),b("p",{className:"border-t border-border px-3 py-1.5 text-xs text-muted-foreground","data-testid":"sql-count",children:u.truncated?p("Showing the first {max} of {count} rows.",{count:u.rowCount,max:u.rows.length}):p("{count} rows",{count:u.rowCount})})]}),e[81]=t,e[82]=s,e[83]=S,e[84]=u,e[85]=p,e[86]=re):re=e[86];let H;e[87]!==oe||e[88]!==le||e[89]!==re?(H=F("div",{className:"min-h-0 flex-1 overflow-auto",children:[oe,le,re]}),e[87]=oe,e[88]=le,e[89]=re,e[90]=H):H=e[90];let j;return e[91]!==o||e[92]!==ne||e[93]!==se||e[94]!==H?(j=F("div",{className:o,children:[ne,se,H]}),e[91]=o,e[92]=ne,e[93]=se,e[94]=H,e[95]=j):j=e[95],j},ns=(l,e)=>l.trim()===""?e:(l.split(`
|
|
9
|
+
`)[0]??l).slice(0,24),ss=l=>{l?.focus(),l?.select()},os=l=>{const e=Y(14),{initial:n,onCancel:t,onCommit:o,placeholder:s,testId:r}=l,i=de();let c;e[0]!==o?(c=d=>{o(d.currentTarget.value.trim())},e[0]=o,e[1]=c):c=e[1];const a=c;let m;e[2]!==t||e[3]!==o?(m=d=>{d.key==="Enter"?o(d.currentTarget.value.trim()):d.key==="Escape"&&t()},e[2]=t,e[3]=o,e[4]=m):m=e[4];const g=m;let f;e[5]!==i?(f=i("Tab title"),e[5]=i,e[6]=f):f=e[6];let y;return e[7]!==n||e[8]!==a||e[9]!==g||e[10]!==s||e[11]!==f||e[12]!==r?(y=b("input",{"aria-label":f,className:"w-40 rounded border border-ring bg-background px-1 py-0.5 text-xs outline-none","data-testid":r,defaultValue:n,onBlur:a,onKeyDown:g,placeholder:s,ref:ss,type:"text"}),e[7]=n,e[8]=a,e[9]=g,e[10]=s,e[11]=f,e[12]=r,e[13]=y):y=e[13],y},ls=l=>{const e=Y(29),{idBase:n,onDiscard:t,onKeep:o}=l,s=de(),r=`sql-tab-close-prompt-${n}`;let i;e[0]!==s?(i=s("Discard?"),e[0]=s,e[1]=i):i=e[1];let c;e[2]!==i?(c=b("span",{className:"text-[11px] text-muted-foreground",children:i}),e[2]=i,e[3]=c):c=e[3];let a;e[4]!==s?(a=s("Discard changes"),e[4]=s,e[5]=a):a=e[5];const m=`sql-tab-close-confirm-${n}`;let g;e[6]!==s?(g=s("Discard changes"),e[6]=s,e[7]=g):g=e[7];let f;e[8]===Symbol.for("react.memo_cache_sentinel")?(f=b("svg",{"aria-hidden":"true",className:"size-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.4,viewBox:"0 0 24 24",children:b("path",{d:"M5 13l4 4L19 7"})}),e[8]=f):f=e[8];let y;e[9]!==t||e[10]!==a||e[11]!==m||e[12]!==g?(y=b("button",{"aria-label":a,className:"flex size-5 items-center justify-center rounded text-destructive hover:bg-destructive/10","data-testid":m,onClick:t,title:g,type:"button",children:f}),e[9]=t,e[10]=a,e[11]=m,e[12]=g,e[13]=y):y=e[13];let d;e[14]!==s?(d=s("Keep editing"),e[14]=s,e[15]=d):d=e[15];const S=`sql-tab-close-cancel-${n}`;let u;e[16]!==s?(u=s("Keep editing"),e[16]=s,e[17]=u):u=e[17];let x;e[18]===Symbol.for("react.memo_cache_sentinel")?(x=b("svg",{"aria-hidden":"true",className:"size-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.4,viewBox:"0 0 24 24",children:b("path",{d:"M6 6l12 12M18 6 6 18"})}),e[18]=x):x=e[18];let h;e[19]!==o||e[20]!==S||e[21]!==u||e[22]!==d?(h=b("button",{"aria-label":d,className:"flex size-5 items-center justify-center rounded text-muted-foreground hover:bg-accent","data-testid":S,onClick:o,title:u,type:"button",children:x}),e[19]=o,e[20]=S,e[21]=u,e[22]=d,e[23]=h):h=e[23];let C;return e[24]!==r||e[25]!==h||e[26]!==c||e[27]!==y?(C=F("span",{className:"flex shrink-0 items-center gap-1","data-testid":r,role:"group",children:[c,y,h]}),e[24]=r,e[25]=h,e[26]=c,e[27]=y,e[28]=C):C=e[28],C},rs=l=>{const e=Y(47),{active:n,canClose:t,onClose:o,onMenu:s,onRename:r,onSelect:i,tab:c}=l,a=de(),[m,g]=ce(!1),[f,y]=ce(!1);let d;e[0]!==s||e[1]!==c.id?(d=$=>{s(c.id,$)},e[0]=s,e[1]=c.id,e[2]=d):d=e[2];const S=d;let u;e[3]!==i||e[4]!==c.id?(u=()=>{i(c.id)},e[3]=i,e[4]=c.id,e[5]=u):u=e[5];const x=u;let h;e[6]===Symbol.for("react.memo_cache_sentinel")?(h=()=>{g(!0)},e[6]=h):h=e[6];const C=h;let v;e[7]!==o||e[8]!==c?(v=$=>{$.stopPropagation(),it(c)?y(!0):o(c.id)},e[7]=o,e[8]=c,e[9]=v):v=e[9];const p=v;let k;e[10]!==o||e[11]!==c.id?(k=$=>{$.stopPropagation(),y(!1),o(c.id)},e[10]=o,e[11]=c.id,e[12]=k):k=e[12];const N=k;let L;e[13]===Symbol.for("react.memo_cache_sentinel")?(L=$=>{$.stopPropagation(),y(!1)},e[13]=L):L=e[13];const E=L;let q;e[14]!==r||e[15]!==c.id?(q=$=>{r(c.id,$),g(!1)},e[14]=r,e[15]=c.id,e[16]=q):q=e[16];const T=q;let A;e[17]===Symbol.for("react.memo_cache_sentinel")?(A=()=>{g(!1)},e[17]=A):A=e[17];const _=A;let I;e[18]!==c.name?(I=c.name.trim(),e[18]=c.name,e[19]=I):I=e[19];const B=I;let D;e[20]!==a||e[21]!==c.sql?(D=ns(c.sql,a("Untitled")),e[20]=a,e[21]=c.sql,e[22]=D):D=e[22];const P=D,O=n?"bg-background text-foreground":"bg-muted/40 text-muted-foreground hover:text-foreground";let w;e[23]!==O?(w=fe("group/tab flex shrink-0 items-center gap-1 border-e border-border ps-3 pe-1.5 text-xs",O),e[23]=O,e[24]=w):w=e[24];const W=`sql-tab-${c.id}`;let R;e[25]!==n||e[26]!==T||e[27]!==B||e[28]!==P||e[29]!==m||e[30]!==x||e[31]!==a||e[32]!==c.id?(R=m?b(os,{initial:B,onCancel:_,onCommit:T,placeholder:P,testId:`sql-tab-rename-${c.id}`}):b("button",{"aria-pressed":n,className:"max-w-40 truncate py-1.5 outline-none","data-testid":`sql-tab-select-${c.id}`,onClick:x,onDoubleClick:C,title:a("Double-click to rename"),type:"button",children:B===""?P:B}),e[25]=n,e[26]=T,e[27]=B,e[28]=P,e[29]=m,e[30]=x,e[31]=a,e[32]=c.id,e[33]=R):R=e[33];let M;e[34]!==t||e[35]!==N||e[36]!==f||e[37]!==p||e[38]!==a||e[39]!==c.id?(M=t&&(f?b(ls,{idBase:c.id,onDiscard:N,onKeep:E}):b("button",{"aria-label":a("Close tab"),className:"flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-destructive/10 hover:text-destructive","data-testid":`sql-tab-close-${c.id}`,onClick:p,title:a("Close tab"),type:"button",children:b("svg",{"aria-hidden":"true",className:"size-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",children:b("path",{d:"M6 6l12 12M18 6 6 18"})})})),e[34]=t,e[35]=N,e[36]=f,e[37]=p,e[38]=a,e[39]=c.id,e[40]=M):M=e[40];let U;return e[41]!==S||e[42]!==w||e[43]!==W||e[44]!==R||e[45]!==M?(U=F("div",{className:w,"data-testid":W,onContextMenu:S,children:[R,M]}),e[41]=S,e[42]=w,e[43]=W,e[44]=R,e[45]=M,e[46]=U):U=e[46],U},is=l=>{const e=Y(43),{model:n,onSelect:t}=l,o=de(),{activeTab:s,addEditorTab:r,cancelBulk:i,closeEditorTab:c,closeTabMenu:a,confirmBulk:m,menuStyle:g,onBackdropContextMenu:f,onCloseAll:y,onCloseOthers:d,onCloseToRight:S,openTabMenu:u,pendingBulk:x,renameTab:h,tabMenu:C,tabs:v}=n;let p;if(e[0]!==s||e[1]!==c||e[2]!==t||e[3]!==u||e[4]!==h||e[5]!==v){let I;e[7]!==s||e[8]!==c||e[9]!==t||e[10]!==u||e[11]!==h||e[12]!==v.length?(I=B=>b(rs,{active:B.id===s.id,canClose:v.length>1,onClose:c,onMenu:u,onRename:h,onSelect:t,tab:B},B.id),e[7]=s,e[8]=c,e[9]=t,e[10]=u,e[11]=h,e[12]=v.length,e[13]=I):I=e[13],p=v.map(I),e[0]=s,e[1]=c,e[2]=t,e[3]=u,e[4]=h,e[5]=v,e[6]=p}else p=e[6];let k;e[14]!==o?(k=o("New tab"),e[14]=o,e[15]=k):k=e[15];const N=v.length>=Ye;let L;e[16]!==o?(L=o("New tab"),e[16]=o,e[17]=L):L=e[17];let E;e[18]===Symbol.for("react.memo_cache_sentinel")?(E=b("svg",{"aria-hidden":"true",className:"size-4",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.7,viewBox:"0 0 24 24",children:b("path",{d:"M12 5v14M5 12h14"})}),e[18]=E):E=e[18];let q;e[19]!==r||e[20]!==k||e[21]!==N||e[22]!==L?(q=b("button",{"aria-label":k,className:"flex size-8 shrink-0 items-center justify-center text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-40","data-testid":"sql-tab-add",disabled:N,onClick:r,title:L,type:"button",children:E}),e[19]=r,e[20]=k,e[21]=N,e[22]=L,e[23]=q):q=e[23];let T;e[24]!==p||e[25]!==q?(T=F("div",{className:"flex shrink-0 items-stretch overflow-x-auto border-b border-border bg-muted/30","data-testid":"sql-tab-strip",role:"tablist",children:[p,q]}),e[24]=p,e[25]=q,e[26]=T):T=e[26];let A;e[27]!==i||e[28]!==a||e[29]!==m||e[30]!==g||e[31]!==f||e[32]!==y||e[33]!==d||e[34]!==S||e[35]!==x||e[36]!==o||e[37]!==C||e[38]!==v?(A=C!==null&&F(He,{children:[b("div",{className:"fixed inset-0 z-40","data-testid":"sql-tab-menu-backdrop",onClick:a,onContextMenu:f,role:"presentation"}),b("div",{className:"fixed z-50 min-w-44 rounded-md border border-border bg-popover py-1 text-popover-foreground shadow-md","data-testid":"sql-tab-menu",role:"menu",style:g,children:x===null?F(He,{children:[b("button",{className:"flex w-full items-center px-3 py-1.5 text-start text-xs outline-none hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-40","data-testid":"sql-tab-menu-close-others",disabled:v.length<=1,onClick:d,role:"menuitem",type:"button",children:o("Close other tabs")}),b("button",{className:"flex w-full items-center px-3 py-1.5 text-start text-xs outline-none hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-40","data-testid":"sql-tab-menu-close-right",disabled:v.findIndex(I=>I.id===C.id)>=v.length-1,onClick:S,role:"menuitem",type:"button",children:o("Close tabs to the right")}),b("button",{className:"flex w-full items-center px-3 py-1.5 text-start text-xs outline-none hover:bg-accent focus-visible:bg-accent","data-testid":"sql-tab-menu-close-all",onClick:y,role:"menuitem",type:"button",children:o("Close all tabs")})]}):F("div",{className:"px-3 py-1.5","data-testid":"sql-tab-menu-confirm",children:[b("p",{className:"pb-1.5 text-xs text-muted-foreground",children:o("Discard unsaved tabs?")}),F("div",{className:"flex items-center gap-1.5",children:[b("button",{className:"rounded px-2 py-1 text-xs font-medium text-destructive outline-none hover:bg-destructive/10 focus-visible:bg-destructive/10","data-testid":"sql-tab-menu-confirm-discard",onClick:m,type:"button",children:o("Discard")}),b("button",{className:"rounded px-2 py-1 text-xs text-muted-foreground outline-none hover:bg-accent focus-visible:bg-accent","data-testid":"sql-tab-menu-confirm-cancel",onClick:i,type:"button",children:o("Cancel")})]})]})})]}),e[27]=i,e[28]=a,e[29]=m,e[30]=g,e[31]=f,e[32]=y,e[33]=d,e[34]=S,e[35]=x,e[36]=o,e[37]=C,e[38]=v,e[39]=A):A=e[39];let _;return e[40]!==T||e[41]!==A?(_=F(He,{children:[T,A]}),e[40]=T,e[41]=A,e[42]=_):_=e[42],_},as=Oe(_e.runSql),cs="lunora-studio-sql-split-view",ds=()=>we(ct[0]?.sql??""),Rs=l=>{const e=Y(112),{initialShardKey:n}=l,t=Ue(),o=Mn(ds),{activeTab:s,output:r,patchActiveOutput:i,patchActiveTab:c,setActiveTabId:a,unlinkQuery:m}=o;let g;e[0]!==i||e[1]!==c?(g=(K,ae)=>{c({activeId:ae,sql:K}),i({chart:void 0,error:null,failed:void 0,result:null,script:void 0})},e[0]=i,e[1]=c,e[2]=g):g=e[2];const f=g;let y;e[3]!==f||e[4]!==m?(y={loadIntoActiveTab:f,unlinkQuery:m},e[3]=f,e[4]=m,e[5]=y):y=e[5];const d=Fn(y),{recordHistory:S,updateQuerySql:u}=d,x=s.sql,{activeId:h}=s,{chart:C,error:v,failed:p,result:k,running:N}=r,L=r.pane,[E,q]=ce(n??""),[T,A]=je(cs,!1),{probe:_,schema:I}=wn(E);let B;e[6]!==h||e[7]!==c||e[8]!==u?(B=K=>{c({sql:K}),h!==null&&u(h,K)},e[6]=h,e[7]=c,e[8]=u,e[9]=B):B=e[9];const D=B,P=ln(x,I,E),O=bt(E);let w;e[10]!==O||e[11]!==i||e[12]!==k?(w=()=>{if(k===null)return;ue((async()=>{const ae=await O.inferChart({columns:k.columns,rowCount:k.rowCount,types:Object.fromEntries(k.columns.map(V=>[V,typeof(k.rows[0]?.[V]??"")]))});i({chart:ae})})())},e[10]=O,e[11]=i,e[12]=k,e[13]=w):w=e[13];const W=w;let R;e[14]!==t||e[15]!==S||e[16]!==E?(R=async K=>{try{const ae=await t.query(as,{sql:K},qe(E));return S(K),{error:null,result:ae,sql:K}}catch(ae){return{error:ht(ae),result:null,sql:K}}},e[14]=t,e[15]=S,e[16]=E,e[17]=R):R=e[17];const M=R;let U;e[18]!==x||e[19]!==i||e[20]!==M||e[21]!==E?(U=async K=>{if(x.trim()==="")return;i({running:!0});const ae=K==="explain"?Qe(`EXPLAIN QUERY PLAN ${x}`,0):nt(x),V=[];for(const Ee of ae){const dt={error:Ee.rejection?.message??"",result:null,sql:Ee.sql};V.push(Ee.rejection===void 0?await M(Ee.sql):dt)}pt(E);const Ke=Math.max(V.length-1,0),ve=V[Ke];i({chart:void 0,error:ve?.error??null,failed:ve?.error===null||ve===void 0?void 0:{error:ve.error,sql:ve.sql},pane:K,result:ve?.result??null,running:!1,script:V.length>1?{runs:V,selected:Ke}:void 0})},e[18]=x,e[19]=i,e[20]=M,e[21]=E,e[22]=U):U=e[22];const $=U;let X;e[23]!==r.script?.runs||e[24]!==i?(X=K=>{const ae=r.script?.runs,V=ae?.[K];ae===void 0||V===void 0||i({chart:void 0,error:V.error,failed:V.error===null?void 0:{error:V.error,sql:V.sql},result:V.result,script:{runs:ae,selected:K}})},e[23]=r.script?.runs,e[24]=i,e[25]=X):X=e[25];const Z=X;let ee;e[26]!==$?(ee=()=>{ue($("results"))},e[26]=$,e[27]=ee):ee=e[27];const te=ee;let ie;e[28]!==r.pane||e[29]!==$?(ie=()=>{ue($(r.pane))},e[28]=r.pane,e[29]=$,e[30]=ie):ie=e[30];let G;e[31]!==_||e[32]!==I||e[33]!==D||e[34]!==ie?(G={onSubmit:ie,probe:_,schema:I,setDraft:D},e[31]=_,e[32]=I,e[33]=D,e[34]=ie,e[35]=G):G=e[35];const Q=kn(G),{closeAutocomplete:ne}=Q;let se;e[36]!==x||e[37]!==D?(se=()=>{D(Lt(x))},e[36]=x,e[37]=D,e[38]=se):se=e[38];const oe=se;let le;e[39]!==ne||e[40]!==a?(le=K=>{ne(),a(K)},e[39]=ne,e[40]=a,e[41]=le):le=e[41];const re=le;let H;e[42]!==i?(H=()=>{i({pane:"results"})},e[42]=i,e[43]=H):H=e[43];const j=H;let z;e[44]!==$?(z=()=>{ue($("explain"))},e[44]=$,e[45]=z):z=e[45];const J=z;let me;e[46]!==i?(me=()=>{i({pane:"chart"})},e[46]=i,e[47]=me):me=e[47];const De=me;let ke;e[48]!==A||e[49]!==T?(ke=()=>{A(!T)},e[48]=A,e[49]=T,e[50]=ke):ke=e[50];const Me=ke,$e=T?"flex min-h-0 flex-1 flex-row":"flex min-h-0 flex-1 flex-col",Be=T?"flex w-2/5 min-h-0 min-w-0 shrink-0 flex-col border-s border-border":"flex h-2/5 min-h-0 shrink-0 flex-col border-t border-border";let he;e[51]!==h||e[52]!==d.clearHistory||e[53]!==d.deleteQuery||e[54]!==d.history||e[55]!==d.listRef||e[56]!==d.loadFromHistory||e[57]!==d.loadTemplate||e[58]!==d.newQuery||e[59]!==d.onSearchChange||e[60]!==d.queries||e[61]!==d.rememberHistory||e[62]!==d.search||e[63]!==d.selectQuery||e[64]!==d.setRememberHistory?(he=b(es,{activeId:h,history:d.history,listRef:d.listRef,onClearHistory:d.clearHistory,onDelete:d.deleteQuery,onLoadHistory:d.loadFromHistory,onLoadTemplate:d.loadTemplate,onNew:d.newQuery,onSearchChange:d.onSearchChange,onSelect:d.selectQuery,onToggleRememberHistory:d.setRememberHistory,queries:d.queries,rememberHistory:d.rememberHistory,search:d.search}),e[51]=h,e[52]=d.clearHistory,e[53]=d.deleteQuery,e[54]=d.history,e[55]=d.listRef,e[56]=d.loadFromHistory,e[57]=d.loadTemplate,e[58]=d.newQuery,e[59]=d.onSearchChange,e[60]=d.queries,e[61]=d.rememberHistory,e[62]=d.search,e[63]=d.selectQuery,e[64]=d.setRememberHistory,e[65]=he):he=e[65];let pe;e[66]!==o||e[67]!==re?(pe=b(is,{model:o,onSelect:re}),e[66]=o,e[67]=re,e[68]=pe):pe=e[68];let be;e[69]!==O||e[70]!==P||e[71]!==x||e[72]!==p||e[73]!==D||e[74]!==Q.autocompleteState||e[75]!==Q.editorRef||e[76]!==Q.gutterRef||e[77]!==Q.handlers||e[78]!==Q.listboxId||e[79]!==Q.onPickSuggestion||e[80]!==Q.overlayRef||e[81]!==Q.revealDiagnostic?(be=b(Jn,{assistant:O,autocomplete:Q.autocompleteState,diagnostics:P,draft:x,editorRef:Q.editorRef,failed:p,gutterRef:Q.gutterRef,handlers:Q.handlers,listboxId:Q.listboxId,onGenerated:D,onPickSuggestion:Q.onPickSuggestion,onRevealDiagnostic:Q.revealDiagnostic,overlayRef:Q.overlayRef}),e[69]=O,e[70]=P,e[71]=x,e[72]=p,e[73]=D,e[74]=Q.autocompleteState,e[75]=Q.editorRef,e[76]=Q.gutterRef,e[77]=Q.handlers,e[78]=Q.listboxId,e[79]=Q.onPickSuggestion,e[80]=Q.overlayRef,e[81]=Q.revealDiagnostic,e[82]=be):be=e[82];let ge;e[83]!==O||e[84]!==v||e[85]!==oe||e[86]!==W||e[87]!==C||e[88]!==te||e[89]!==Z||e[90]!==r.script||e[91]!==k||e[92]!==Be||e[93]!==N||e[94]!==E||e[95]!==De||e[96]!==J||e[97]!==j||e[98]!==T||e[99]!==L||e[100]!==Me?(ge=b(ts,{assistant:O,chart:C,className:Be,error:v,onFormat:oe,onInferChart:W,onRun:te,onSelectStatement:Z,onShardKeyChange:q,onShowChart:De,onShowExplain:J,onShowResults:j,onToggleSplit:Me,pane:L,result:k,running:N,script:r.script,shardKey:E,splitView:T}),e[83]=O,e[84]=v,e[85]=oe,e[86]=W,e[87]=C,e[88]=te,e[89]=Z,e[90]=r.script,e[91]=k,e[92]=Be,e[93]=N,e[94]=E,e[95]=De,e[96]=J,e[97]=j,e[98]=T,e[99]=L,e[100]=Me,e[101]=ge):ge=e[101];let xe;e[102]!==be||e[103]!==ge||e[104]!==$e?(xe=F("div",{className:$e,children:[be,ge]}),e[102]=be,e[103]=ge,e[104]=$e,e[105]=xe):xe=e[105];let ye;e[106]!==pe||e[107]!==xe?(ye=F("div",{className:"flex min-w-0 flex-1 flex-col",children:[pe,xe]}),e[106]=pe,e[107]=xe,e[108]=ye):ye=e[108];let Te;return e[109]!==he||e[110]!==ye?(Te=F("div",{className:"flex h-full min-w-0","data-testid":"lunora-sql-editor",children:[he,ye]}),e[109]=he,e[110]=ye,e[111]=Te):Te=e[111],Te};export{Rs as SqlEditorPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as V}from"react/compiler-runtime";import{useLunora as k}from"@lunora/react";import{useNavigate as F,useRouter as L,useSearch as M}from"@tanstack/react-router";import{useState as Q,useEffect as A}from"react";import{T as w}from"../packem_shared/storage-tier-C2mKwYRj.js";import{u as P}from"../packem_shared/table-list-sidebar-BCxqrZ0s.js";import{useT as q}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.js";import{s as J,d as D}from"../packem_shared/data-view-params-qoSTqjAj.js";import{f}from"../packem_shared/internal-7bgd8inO.js";import{l as K,s as O}from"../packem_shared/browser-storage-
|
|
1
|
+
import{c as V}from"react/compiler-runtime";import{useLunora as k}from"@lunora/react";import{useNavigate as F,useRouter as L,useSearch as M}from"@tanstack/react-router";import{useState as Q,useEffect as A}from"react";import{T as w}from"../packem_shared/storage-tier-C2mKwYRj.js";import{u as P}from"../packem_shared/table-list-sidebar-BCxqrZ0s.js";import{useT as q}from"../packem_shared/DEFAULT_LOCALE-A1Yg5ORA.js";import{s as J,d as D}from"../packem_shared/data-view-params-qoSTqjAj.js";import{f}from"../packem_shared/internal-7bgd8inO.js";import{l as K,s as O}from"../packem_shared/browser-storage-BH1MxLZs.js";import{DataBrowser as I}from"../packem_shared/DataBrowser-BPCr2f8V.js";import{GlobalDataBrowser as X}from"../packem_shared/GlobalDataBrowser-BHFgEqMl.js";import{jsx as v,jsxs as E}from"react/jsx-runtime";const N="lunora-studio-saved-queries",Y=50,$=r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&typeof r.view=="object"&&r.view!==null,S=()=>K(N).filter($),B=r=>{O(N,r)},z=(r,e)=>{const s=r.trim();if(s==="")return S();const o=[{name:s,view:e},...S().filter(b=>b.name!==s)].slice(0,Y);return B(o),o},H=r=>{const e=S().filter(s=>s.name!==r);return B(e),e},U=r=>{const e=V(15),{onChange:s,tier:o}=r,b=q();let d;e[0]!==s?(d=y=>{s(y.target.value)},e[0]=s,e[1]=d):d=e[1];const l=d;let h;e[2]!==b?(h=b("Storage tier"),e[2]=b,e[3]=h):h=e[3];let i;e[4]!==h?(i=v("span",{className:"font-mono text-[11px] tracking-wide uppercase text-muted-foreground",children:h}),e[4]=h,e[5]=i):i=e[5];const m=w[o];let n,g;e[6]===Symbol.for("react.memo_cache_sentinel")?(n=v("option",{value:"shard",children:w.shard.label}),g=v("option",{value:"global",children:w.global.label}),e[6]=n,e[7]=g):(n=e[6],g=e[7]);let c;e[8]!==l||e[9]!==m.title||e[10]!==o?(c=E("select",{className:"h-8 w-full rounded-md border border-border bg-background px-2 text-sm outline-none focus-visible:border-ring","data-testid":"table-editor-schema",id:"table-editor-schema",onChange:l,title:m.title,value:o,children:[n,g]}),e[8]=l,e[9]=m.title,e[10]=o,e[11]=c):c=e[11];let u;return e[12]!==i||e[13]!==c?(u=E("label",{className:"flex w-full flex-col gap-1",htmlFor:"table-editor-schema",children:[i,c]}),e[12]=i,e[13]=c,e[14]=u):u=e[14],u},W=()=>{try{f(globalThis.navigator.clipboard.writeText(globalThis.location.href))}catch{}},pe=({editable:r=!1,initialShardKey:e})=>{const s=k(),o=F(),b=L(),d=M({strict:!1}),l=J(d),h=P(d),i=()=>b.state.location.pathname.split("/").findLast(Boolean)==="data",m=l.tier??"shard",n=l.table,[g,c]=Q(()=>S()),[u,y]=Q(()=>new Set);A(()=>{f((async()=>{try{const a=await s.listGlobalTables();y(new Set(a.map(t=>t.name)))}catch{}})())},[s]),A(()=>{m==="shard"&&n!==void 0&&u.has(n)&&f(o({replace:!0,search:a=>({...a,schema:"global"}),to:"/data"}))},[u,o,n,m]);const R=a=>{f(o({search:t=>({...t,schema:a==="global"?"global":void 0,table:void 0}),to:"/data"}))},T=(a,t)=>{i()&&f(o({search:p=>({schema:p.schema,search:t?.search,shard:p.shard,table:a}),to:"/data"}))},C=a=>{f(o({search:t=>({...t,schema:"global",table:a}),to:"/data"}))},G=a=>{const t=D(a),{current:p}=h;(p.filters??void 0)===t.filters&&(p.order??void 0)===t.order&&(p.search??void 0)===t.search&&(p.shard??void 0)===t.shard||!i()||f(o({replace:!0,search:j=>({...j,filters:t.filters,order:t.order,search:t.search,shard:t.shard}),to:"/data"}))},_={onApplyQuery:a=>{const t=D(a.view);f(o({search:()=>({filters:t.filters,order:t.order,schema:t.schema,search:t.search,shard:t.shard,table:t.table}),to:"/data"}))},onCopyLink:W,onDeleteQuery:a=>{c(H(a))},onSaveQuery:(a,t)=>{c(z(a,t))},saved:g},x=v(U,{onChange:R,tier:m});return m==="global"?v(X,{initialTable:n,onSelectTable:T,schemaSwitch:x}):v(I,{editable:r,globalTableNames:u,initialFilters:l.filters,initialOrderBy:l.orderBy,initialPins:d.pins,initialSearch:l.search,initialShardKey:l.shard??e,onNavigateToGlobal:C,onSelectTable:T,onViewChange:G,queryBar:_,schemaSwitch:x,tableParam:n})};export{pe as TableEditor};
|