@lunora/studio 1.0.0-alpha.110 → 1.0.0-alpha.112

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.
@@ -1 +1 @@
1
- import{a as ge,b as fe,c as xe,d as Ne,e as Ce}from"./chunk-VR3UJA7B.js";import"./chunk-AFKLFS74.js";import"./chunk-CP4ZFBVW.js";import{a as ce}from"./chunk-METRMDIQ.js";import{a as ue}from"./chunk-NIX2QSSN.js";import{a as q}from"./chunk-NXXGISFB.js";import{g as me,h as ve,i as pe,j as ye}from"./chunk-MBEIKVJH.js";import"./chunk-GIRZD3UB.js";import"./chunk-XJSWM47N.js";import"./chunk-EDHW2EEG.js";import"./chunk-ZSOLGJFC.js";import"./chunk-DUDQV6XJ.js";import"./chunk-VZCS5GXZ.js";import"./chunk-DKSLOJDQ.js";import"./chunk-MCLM2QJI.js";import"./chunk-DPNEFSEC.js";import"./chunk-TNKECJW4.js";import"./chunk-4YTSKL4R.js";import{P as ae}from"./chunk-AOAJGSYZ.js";import"./chunk-INQICZYC.js";import"./chunk-TFMQSCGC.js";import{a as $}from"./chunk-BWEXJENB.js";import"./chunk-74ASA4WU.js";import"./chunk-XQS7KSHL.js";import{b as he}from"./chunk-SPDZUX4P.js";import"./chunk-7PIHTTND.js";import"./chunk-F7JOSNAT.js";import"./chunk-VDW32UET.js";import"./chunk-YUWMB6EV.js";import{f as G}from"./chunk-TBXK3FKP.js";import"./chunk-RCZTUWG3.js";import{a as ke}from"./chunk-UANVABQG.js";import{a as ie,b as se,c as oe,d as Q,e as X,f as Y}from"./chunk-L4EZAHCD.js";import{a as re,e as ne}from"./chunk-IYWVSMAY.js";import{d as R,h as Z,l as be,o as z,q as de}from"./chunk-6ZPTNC34.js";import"./chunk-VYW2PAWC.js";import{a as s,d as le,e as Oe,f as _e,g as De}from"./chunk-R5ZTCHCE.js";var P=le(Oe(),1);var ee=le(_e(),1);var a=le(De(),1);var Be=s(r=>{let e=r.trim();if(e==="")return;let d=Number(e);return Number.isFinite(d)&&d>0?Math.floor(d):void 0},"Be"),Le=s(r=>r===void 0?"\u2014":new Date(r*1e3).toISOString(),"Oe"),Je=s(r=>new TextEncoder().encode(r).length,"Ae"),Fe=s(r=>{if(r.trim()!=="")try{return JSON.stringify(JSON.parse(r),void 0,2)}catch{return}},"ge"),Ke=s(r=>{if(r.trim()==="")return!0;try{return JSON.parse(r),!0}catch{return!1}},"xe"),Ee=[{key:"seconds",seconds:1},{key:"minutes",seconds:60},{key:"hours",seconds:3600},{key:"days",seconds:86400}],we=s((r,e)=>{let d=r.trim();if(d==="")return"";let u=Number(d),i=Ee.find(v=>v.key===e)?.seconds??1;return Number.isFinite(u)&&u>0?String(Math.round(u*i)):d},"ue"),Ve=s(r=>{let e=r.trim();if(e==="")return!0;let d=Number(e);return Number.isInteger(d)&&d>=60},"Ce"),Te=s((r,e,d,u)=>{let i=Be(r.ttl);return{expiration:i===void 0?u:void 0,expirationTtl:i,key:e,metadata:r.metadata.trim()===""?void 0:JSON.parse(r.metadata),namespace:d,value:r.value}},"Se"),Me=s(r=>{let e=(0,ee.c)(60),{helper:d,id:u,invalid:i,onChange:v,testId:o}=r,t=R(),[l,p]=(0,P.useState)(""),[c,x]=(0,P.useState)("seconds"),g;e[0]!==v||e[1]!==c?(g=s(f=>{p(f.target.value),v(we(f.target.value,c))},"k"),e[0]=v,e[1]=c,e[2]=g):g=e[2];let O=g,V;e[3]!==l||e[4]!==v?(V=s(f=>{f!==null&&(x(f),v(we(l,f)))},"K"),e[3]=l,e[4]=v,e[5]=V):V=e[5];let _=V,y;e[6]!==t?(y=t("days"),e[6]=t,e[7]=y):y=e[7];let m;e[8]!==t?(m=t("hours"),e[8]=t,e[9]=m):m=e[9];let h;e[10]!==t?(h=t("minutes"),e[10]=t,e[11]=h):h=e[11];let N;e[12]!==t?(N=t("seconds"),e[12]=t,e[13]=N):N=e[13];let C;e[14]!==y||e[15]!==m||e[16]!==h||e[17]!==N?(C={days:y,hours:m,minutes:h,seconds:N},e[14]=y,e[15]=m,e[16]=h,e[17]=N,e[18]=C):C=e[18];let w=C,b;e[19]!==t?(b=t("Expires after"),e[19]=t,e[20]=b):b=e[20];let S;e[21]!==u||e[22]!==b?(S=(0,a.jsx)(q,{className:"text-xs",htmlFor:u,children:b}),e[21]=u,e[22]=b,e[23]=S):S=e[23];let E;e[24]!==t?(E=t("No expiration"),e[24]=t,e[25]=E):E=e[25];let B;e[26]!==l||e[27]!==u||e[28]!==i||e[29]!==O||e[30]!==E||e[31]!==o?(B=(0,a.jsx)(ae,{"aria-invalid":i,className:"flex-1","data-testid":o,id:u,inputMode:"numeric",onChange:O,placeholder:E,value:l}),e[26]=l,e[27]=u,e[28]=i,e[29]=O,e[30]=E,e[31]=o,e[32]=B):B=e[32];let T;e[33]!==t?(T=t("TTL unit"),e[33]=t,e[34]=T):T=e[34];let J=`${o}-unit`,L;e[35]===Symbol.for("react.memo_cache_sentinel")?(L=(0,a.jsx)(fe,{}),e[35]=L):L=e[35];let M;e[36]!==T||e[37]!==J?(M=(0,a.jsx)(xe,{"aria-label":T,className:"w-[7.5rem]","data-testid":J,children:L}),e[36]=T,e[37]=J,e[38]=M):M=e[38];let n;e[39]!==w?(n=Ee.map(f=>(0,a.jsx)(Ce,{value:f.key,children:w[f.key]},f.key)),e[39]=w,e[40]=n):n=e[40];let k;e[41]!==n?(k=(0,a.jsx)(Ne,{children:n}),e[41]=n,e[42]=k):k=e[42];let F;e[43]!==_||e[44]!==M||e[45]!==k||e[46]!==c?(F=(0,a.jsxs)(ge,{onValueChange:_,value:c,children:[M,k]}),e[43]=_,e[44]=M,e[45]=k,e[46]=c,e[47]=F):F=e[47];let I;e[48]!==B||e[49]!==F?(I=(0,a.jsxs)("div",{className:"flex gap-2",children:[B,F]}),e[48]=B,e[49]=F,e[50]=I):I=e[50];let K;e[51]!==d||e[52]!==i||e[53]!==t||e[54]!==o?(K=i?(0,a.jsx)("p",{className:"text-xs text-destructive","data-testid":`${o}-invalid`,children:t("TTL must be at least 60 seconds.")}):d!==void 0&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:d}),e[51]=d,e[52]=i,e[53]=t,e[54]=o,e[55]=K):K=e[55];let D;return e[56]!==I||e[57]!==K||e[58]!==S?(D=(0,a.jsxs)("div",{className:"mb-3 grid gap-1",children:[S,I,K]}),e[56]=I,e[57]=K,e[58]=S,e[59]=D):D=e[59],D},"we"),Ie=s(r=>{let e=(0,ee.c)(36),{id:d,invalidTestId:u,onChange:i,testId:v,valid:o,value:t}=r,l=R(),p;e[0]!==t?(p=Fe(t),e[0]=t,e[1]=p):p=e[1];let c=p,x;e[2]!==l?(x=l("Metadata (JSON)"),e[2]=l,e[3]=x):x=e[3];let g;e[4]!==d||e[5]!==x?(g=(0,a.jsx)(q,{className:"text-xs",htmlFor:d,children:x}),e[4]=d,e[5]=x,e[6]=g):g=e[6];let O=`${v}-format`,V=c===void 0,_;e[7]!==c||e[8]!==i?(_=s(()=>{c!==void 0&&i(c)},"L"),e[7]=c,e[8]=i,e[9]=_):_=e[9];let y;e[10]!==l?(y=l("Format JSON"),e[10]=l,e[11]=y):y=e[11];let m;e[12]!==O||e[13]!==V||e[14]!==_||e[15]!==y?(m=(0,a.jsx)($,{"data-testid":O,disabled:V,onClick:_,size:"sm",variant:"outline",children:y}),e[12]=O,e[13]=V,e[14]=_,e[15]=y,e[16]=m):m=e[16];let h;e[17]!==g||e[18]!==m?(h=(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[g,m]}),e[17]=g,e[18]=m,e[19]=h):h=e[19];let N=!o,C;e[20]!==i?(C=s(E=>{i(E.target.value)},"N"),e[20]=i,e[21]=C):C=e[21];let w;e[22]!==d||e[23]!==N||e[24]!==C||e[25]!==v||e[26]!==t?(w=(0,a.jsx)(ce,{"aria-invalid":N,className:"min-h-[4rem] font-mono text-xs","data-testid":v,id:d,onChange:C,value:t}),e[22]=d,e[23]=N,e[24]=C,e[25]=v,e[26]=t,e[27]=w):w=e[27];let b;e[28]!==u||e[29]!==l||e[30]!==o?(b=!o&&(0,a.jsx)("p",{className:"text-xs text-destructive","data-testid":u,children:l("Metadata must be valid JSON.")}),e[28]=u,e[29]=l,e[30]=o,e[31]=b):b=e[31];let S;return e[32]!==w||e[33]!==b||e[34]!==h?(S=(0,a.jsxs)("div",{className:"mb-3 grid gap-1",children:[h,w,b]}),e[32]=w,e[33]=b,e[34]=h,e[35]=S):S=e[35],S},"Te"),Pe={busy:!1,error:null,metadata:"",name:"",ttl:"",value:""},$e=s((r,e)=>{switch(e.type){case"setField":return{...r,[e.field]:e.value};case"submitFailed":return{...r,busy:!1,error:e.error};case"submitStart":return{...r,busy:!0,error:null};default:return r}},"Je"),je=s(r=>{let e=(0,ee.c)(73),{namespace:d,onCancel:u,onCreated:i}=r,v=G(),o=R(),[t,l]=(0,P.useReducer)($e,Pe),p;e[0]!==t.metadata?(p=Ke(t.metadata),e[0]=t.metadata,e[1]=p):p=e[1];let c=p,x;e[2]!==t.ttl?(x=Ve(t.ttl),e[2]=t.ttl,e[3]=x):x=e[3];let g=x,O;e[4]!==c||e[5]!==t.busy||e[6]!==t.name||e[7]!==g?(O=t.name.trim()!==""&&c&&g&&!t.busy,e[4]=c,e[5]=t.busy,e[6]=t.name,e[7]=g,e[8]=O):O=e[8];let V=O,_;e[9]!==V||e[10]!==v||e[11]!==d||e[12]!==i||e[13]!==t.metadata||e[14]!==t.name||e[15]!==t.ttl||e[16]!==t.value?(_=s(()=>{V&&(l({type:"submitStart"}),z((async()=>{try{await v.putKvValue(Te({metadata:t.metadata,ttl:t.ttl,value:t.value},t.name,d)),i()}catch(A){l({error:Z(A),type:"submitFailed"})}})()))},"L"),e[9]=V,e[10]=v,e[11]=d,e[12]=i,e[13]=t.metadata,e[14]=t.name,e[15]=t.ttl,e[16]=t.value,e[17]=_):_=e[17];let y=_,m;e[18]!==o?(m=o("Key name"),e[18]=o,e[19]=m):m=e[19];let h;e[20]!==m?(h=(0,a.jsx)(q,{className:"text-xs",htmlFor:"kv-create-name",children:m}),e[20]=m,e[21]=h):h=e[21];let N;e[22]===Symbol.for("react.memo_cache_sentinel")?(N=s(A=>{l({field:"name",type:"setField",value:A.target.value})},"x"),e[22]=N):N=e[22];let C;e[23]!==o?(C=o("Key name"),e[23]=o,e[24]=C):C=e[24];let w;e[25]!==t.name||e[26]!==C?(w=(0,a.jsx)(ae,{autoFocus:!0,"data-testid":"kv-create-name",id:"kv-create-name",onChange:N,placeholder:C,value:t.name}),e[25]=t.name,e[26]=C,e[27]=w):w=e[27];let b;e[28]!==h||e[29]!==w?(b=(0,a.jsxs)("div",{className:"grid gap-1",children:[h,w]}),e[28]=h,e[29]=w,e[30]=b):b=e[30];let S;e[31]!==o?(S=o("Value"),e[31]=o,e[32]=S):S=e[32];let E;e[33]!==S?(E=(0,a.jsx)(q,{className:"text-xs",htmlFor:"kv-create-value",children:S}),e[33]=S,e[34]=E):E=e[34];let B;e[35]===Symbol.for("react.memo_cache_sentinel")?(B=s(A=>{l({field:"value",type:"setField",value:A.target.value})},"O"),e[35]=B):B=e[35];let T;e[36]!==t.value?(T=(0,a.jsx)(ce,{className:"min-h-[6rem] font-mono text-xs","data-testid":"kv-create-value",id:"kv-create-value",onChange:B,value:t.value}),e[36]=t.value,e[37]=T):T=e[37];let J;e[38]!==E||e[39]!==T?(J=(0,a.jsxs)("div",{className:"grid gap-1",children:[E,T]}),e[38]=E,e[39]=T,e[40]=J):J=e[40];let L=!g,M;e[41]===Symbol.for("react.memo_cache_sentinel")?(M=s(A=>{l({field:"ttl",type:"setField",value:A})},"I"),e[41]=M):M=e[41];let n;e[42]!==L?(n=(0,a.jsx)(Me,{id:"kv-create-ttl",invalid:L,onChange:M,testId:"kv-create-ttl"}),e[42]=L,e[43]=n):n=e[43];let k;e[44]===Symbol.for("react.memo_cache_sentinel")?(k=s(A=>{l({field:"metadata",type:"setField",value:A})},"h"),e[44]=k):k=e[44];let F;e[45]!==c||e[46]!==t.metadata?(F=(0,a.jsx)(Ie,{id:"kv-create-metadata",invalidTestId:"kv-create-metadata-invalid",onChange:k,testId:"kv-create-metadata",valid:c,value:t.metadata}),e[45]=c,e[46]=t.metadata,e[47]=F):F=e[47];let I=!V,K;e[48]!==t.busy||e[49]!==o?(K=t.busy?o("Creating\u2026"):o("Create key"),e[48]=t.busy,e[49]=o,e[50]=K):K=e[50];let D;e[51]!==y||e[52]!==I||e[53]!==K?(D=(0,a.jsx)($,{"data-testid":"kv-create-submit",disabled:I,onClick:y,children:K}),e[51]=y,e[52]=I,e[53]=K,e[54]=D):D=e[54];let f=t.busy,j;e[55]!==o?(j=o("Cancel"),e[55]=o,e[56]=j):j=e[56];let H;e[57]!==u||e[58]!==t.busy||e[59]!==j?(H=(0,a.jsx)($,{"data-testid":"kv-create-cancel",disabled:f,onClick:u,variant:"outline",children:j}),e[57]=u,e[58]=t.busy,e[59]=j,e[60]=H):H=e[60];let U;e[61]!==D||e[62]!==H?(U=(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[D,H]}),e[61]=D,e[62]=H,e[63]=U):U=e[63];let W;e[64]!==t.error?(W=t.error!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-create-error",role:"alert",children:t.error}),e[64]=t.error,e[65]=W):W=e[65];let te;return e[66]!==b||e[67]!==J||e[68]!==n||e[69]!==F||e[70]!==U||e[71]!==W?(te=(0,a.jsxs)("div",{className:"grid gap-3 px-4 pb-4","data-testid":"kv-create-form",children:[b,J,n,F,U,W]}),e[66]=b,e[67]=J,e[68]=n,e[69]=F,e[70]=U,e[71]=W,e[72]=te):te=e[72],te},"Pe"),Ae={busy:"",editedMetadata:"",editedTtl:"",editedValue:"",loadError:null,loading:!0,value:null,writeError:null},ze=s((r,e)=>{switch(e.type){case"deleteStart":return{...r,busy:"deleting",writeError:null};case"editMetadata":return{...r,editedMetadata:e.value};case"editTtl":return{...r,editedTtl:e.value};case"editValue":return{...r,editedValue:e.value};case"loaded":return{...r,editedMetadata:e.metadata===null||e.metadata===void 0?"":JSON.stringify(e.metadata,null,2),editedValue:e.value??"",loading:!1,value:e.value};case"loadFailed":return{...r,loadError:e.error,loading:!1};case"saveOk":return{...r,busy:"",value:r.editedValue};case"saveStart":return{...r,busy:"saving",writeError:null};case"writeFailed":return{...r,busy:"",writeError:e.error};default:return r}},"je"),He=s(r=>{let e=(0,ee.c)(67),{expiration:d,keyName:u,namespace:i,onDeleted:v}=r,o=G(),t=R(),[l,p]=(0,P.useReducer)(ze,Ae),c,x;e[0]!==o||e[1]!==u||e[2]!==i?(c=s(()=>{let f={cancelled:!1};return z((async()=>{try{let j=await o.getKvValue({key:u,namespace:i});f.cancelled||p({metadata:j.metadata,type:"loaded",value:j.value})}catch(j){let H=j;f.cancelled||p({error:Z(H),type:"loadFailed"})}})()),()=>{f.cancelled=!0}},"o"),x=[o,i,u],e[0]=o,e[1]=u,e[2]=i,e[3]=c,e[4]=x):(c=e[3],x=e[4]),(0,P.useEffect)(c,x);let g;e[5]===Symbol.for("react.memo_cache_sentinel")?(g=s(f=>{p({type:"editValue",value:f.target.value})},"k"),e[5]=g):g=e[5];let O=g,V;e[6]===Symbol.for("react.memo_cache_sentinel")?(V=s(f=>{p({type:"editMetadata",value:f})},"K"),e[6]=V):V=e[6];let _=V,y;e[7]!==l.editedValue?(y=Fe(l.editedValue),e[7]=l.editedValue,e[8]=y):y=e[8];let m=y,h;e[9]!==l.editedMetadata?(h=Ke(l.editedMetadata),e[9]=l.editedMetadata,e[10]=h):h=e[10];let N=h,C;e[11]!==l.editedTtl?(C=Ve(l.editedTtl),e[11]=l.editedTtl,e[12]=C):C=e[12];let w=C,b;e[13]!==m?(b=s(()=>{m!==void 0&&p({type:"editValue",value:m})},"y"),e[13]=m,e[14]=b):b=e[14];let S=b,E;e[15]!==o||e[16]!==d||e[17]!==u||e[18]!==N||e[19]!==i||e[20]!==l.editedMetadata||e[21]!==l.editedTtl||e[22]!==l.editedValue||e[23]!==t?(E=s(()=>{if(!N){p({error:t("Metadata must be valid JSON."),type:"writeFailed"});return}p({type:"saveStart"}),z((async()=>{try{await o.putKvValue(Te({metadata:l.editedMetadata,ttl:l.editedTtl,value:l.editedValue},u,i,d)),p({type:"saveOk"})}catch(f){p({error:Z(f),type:"writeFailed"})}})())},"F"),e[15]=o,e[16]=d,e[17]=u,e[18]=N,e[19]=i,e[20]=l.editedMetadata,e[21]=l.editedTtl,e[22]=l.editedValue,e[23]=t,e[24]=E):E=e[24];let B=E,T;e[25]!==o||e[26]!==u||e[27]!==i||e[28]!==v?(T=s(()=>{p({type:"deleteStart"}),z((async()=>{try{await o.deleteKvKey({key:u,namespace:i}),v(u)}catch(f){p({error:Z(f),type:"writeFailed"})}})())},"V"),e[25]=o,e[26]=u,e[27]=i,e[28]=v,e[29]=T):T=e[29];let J=T,L;e[30]!==u?(L=s(()=>{de(u)},"A"),e[30]=u,e[31]=L):L=e[31];let M;e[32]!==t?(M=t("Copy key"),e[32]=t,e[33]=M):M=e[33];let n;e[34]!==L||e[35]!==M?(n=(0,a.jsx)("div",{className:"mb-2 flex justify-end",children:(0,a.jsx)($,{"data-testid":"kv-copy-key-btn",onClick:L,size:"sm",variant:"outline",children:M})}),e[34]=L,e[35]=M,e[36]=n):n=e[36];let k;e[37]!==l.loadError?(k=l.loadError!==null&&(0,a.jsx)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-value-error",role:"alert",children:l.loadError}),e[37]=l.loadError,e[38]=k):k=e[38];let F;e[39]!==l.loading||e[40]!==t?(F=l.loading&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-value-loading",children:t("Loading\u2026")}),e[39]=l.loading,e[40]=t,e[41]=F):F=e[41];let I;e[42]!==m||e[43]!==N||e[44]!==J||e[45]!==S||e[46]!==B||e[47]!==l.busy||e[48]!==l.editedMetadata||e[49]!==l.editedValue||e[50]!==l.loading||e[51]!==l.value||e[52]!==l.writeError||e[53]!==t||e[54]!==w?(I=!l.loading&&l.value!==null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(q,{className:"text-xs",htmlFor:"kv-value-editor",children:t("Value")}),m!==void 0&&(0,a.jsx)(he,{variant:"secondary",children:t("JSON")}),(0,a.jsx)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground","data-testid":"kv-value-size",children:be(Je(l.editedValue))})]}),(0,a.jsx)("textarea",{"aria-label":t("KV value"),className:"mb-2 min-h-[8rem] w-full rounded border border-border bg-muted/30 p-2 font-mono text-xs","data-testid":"kv-value-editor",id:"kv-value-editor",onChange:O,value:l.editedValue}),(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap gap-2",children:[(0,a.jsx)($,{"data-testid":"kv-format-btn",disabled:m===void 0,onClick:S,size:"sm",variant:"outline",children:t("Format JSON")}),(0,a.jsx)($,{"data-testid":"kv-copy-value-btn",onClick:s(()=>{de(l.editedValue)},"onClick"),size:"sm",variant:"outline",children:t("Copy value")})]}),(0,a.jsx)(Me,{helper:t("Leave blank to keep the current expiration."),id:"kv-ttl-input",invalid:!w,onChange:s(f=>{p({type:"editTtl",value:f})},"onChange"),testId:"kv-ttl-input"}),(0,a.jsx)(Ie,{id:"kv-metadata-editor",invalidTestId:"kv-metadata-invalid",onChange:_,testId:"kv-metadata-editor",valid:N,value:l.editedMetadata}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)($,{"data-testid":"kv-save-btn",disabled:l.busy!==""||!N||!w,onClick:B,children:l.busy==="saving"?t("Saving\u2026"):t("Save")}),(0,a.jsx)($,{"data-testid":"kv-delete-btn",disabled:l.busy!=="",onClick:J,variant:"destructive",children:l.busy==="deleting"?t("Deleting\u2026"):t("Delete")})]}),l.writeError!==null&&(0,a.jsx)("p",{className:"mt-2 text-sm text-destructive","data-testid":"kv-save-error",role:"alert",children:l.writeError})]}),e[42]=m,e[43]=N,e[44]=J,e[45]=S,e[46]=B,e[47]=l.busy,e[48]=l.editedMetadata,e[49]=l.editedValue,e[50]=l.loading,e[51]=l.value,e[52]=l.writeError,e[53]=t,e[54]=w,e[55]=I):I=e[55];let K;e[56]!==l.loadError||e[57]!==l.loading||e[58]!==l.value||e[59]!==t?(K=!l.loading&&l.value===null&&l.loadError===null&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-absent",children:t("Key is absent or has no value.")}),e[56]=l.loadError,e[57]=l.loading,e[58]=l.value,e[59]=t,e[60]=K):K=e[60];let D;return e[61]!==n||e[62]!==k||e[63]!==F||e[64]!==I||e[65]!==K?(D=(0,a.jsxs)("div",{className:"px-4 pb-4","data-testid":"kv-value-section",children:[n,k,F,I,K]}),e[61]=n,e[62]=k,e[63]=F,e[64]=I,e[65]=K,e[66]=D):D=e[66],D},"He"),Se=100,Ze={appliedPrefix:"",bulk:[],bulkBusy:!1,bulkError:null,cursor:null,keys:null,listComplete:!1,loadError:null,loading:!1,prefixInput:"",reloadNonce:0,selectedKey:null},Re=s((r,e)=>{switch(e.type){case"appendPage":return{...r,cursor:e.cursor,keys:[...r.keys??[],...e.keys],listComplete:e.listComplete,loading:!1};case"applyFilter":return{...r,appliedPrefix:r.prefixInput,bulk:[],bulkError:null,cursor:null,keys:null,listComplete:!1,selectedKey:null};case"bulkDeleted":{let d=new Set(e.deleted);return{...r,bulk:r.bulk.filter(u=>!d.has(u)),bulkBusy:!1,bulkError:e.error,keys:r.keys===null?null:r.keys.filter(u=>!d.has(u.name)),selectedKey:r.selectedKey!==null&&d.has(r.selectedKey)?null:r.selectedKey}}case"bulkDeleteStart":return{...r,bulkBusy:!0,bulkError:null};case"firstPage":return{...r,cursor:e.cursor,keys:e.keys,listComplete:e.listComplete,loading:!1};case"keyDeleted":return{...r,bulk:r.bulk.filter(d=>d!==e.name),keys:r.keys===null?null:r.keys.filter(d=>d.name!==e.name),selectedKey:null};case"loadFailed":return{...r,loadError:e.error,loading:!1};case"loadStart":return{...r,loadError:null,loading:!0};case"prefixInput":return{...r,prefixInput:e.value};case"reload":return{...r,bulk:[],bulkError:null,reloadNonce:r.reloadNonce+1,selectedKey:null};case"selectKey":return{...r,selectedKey:e.name};case"toggleAllBulk":return{...r,bulk:e.names};case"toggleBulk":return{...r,bulk:r.bulk.includes(e.name)?r.bulk.filter(d=>d!==e.name):[...r.bulk,e.name]};default:return r}},"ze"),Ue=s(({namespace:r})=>{let e=G(),d=R(),[u,i]=(0,P.useReducer)(Re,Ze),{appliedPrefix:v,bulk:o,bulkBusy:t,bulkError:l,cursor:p,keys:c,listComplete:x,loadError:g,loading:O,prefixInput:V,reloadNonce:_,selectedKey:y}=u,[m,h]=(0,P.useState)(!1);(0,P.useEffect)(()=>{let n={cancelled:!1};return z((async()=>{i({type:"loadStart"});try{let k=await e.listKvKeys({limit:Se,namespace:r,prefix:v===""?void 0:v});n.cancelled||i({cursor:k.cursor??null,keys:k.keys,listComplete:k.listComplete,type:"firstPage"})}catch(k){n.cancelled||i({error:Z(k),type:"loadFailed"})}})()),()=>{n.cancelled=!0}},[e,r,v,_]);let N=s(n=>{i({type:"prefixInput",value:n.target.value})},"x"),C=s(()=>{i({type:"applyFilter"})},"N"),w=s(n=>{i({name:n.currentTarget.dataset.key??null,type:"selectKey"})},"C"),b=s(()=>{p!==null&&(i({type:"loadStart"}),z((async()=>{try{let n=await e.listKvKeys({cursor:p,limit:Se,namespace:r,prefix:v===""?void 0:v});i({cursor:n.cursor??null,keys:n.keys,listComplete:n.listComplete,type:"appendPage"})}catch(n){i({error:Z(n),type:"loadFailed"})}})()))},"y"),S=s(n=>{i({name:n,type:"keyDeleted"})},"S"),E=s(n=>{i({name:n,type:"toggleBulk"})},"F"),B=s(n=>{i({names:n&&c!==null?c.map(k=>k.name):[],type:"toggleAllBulk"})},"O"),T=s(()=>{if(o.length===0)return;let n=[...o];i({type:"bulkDeleteStart"}),z((async()=>{let k=await Promise.allSettled(n.map(K=>e.deleteKvKey({key:K,namespace:r}))),F=n.filter((K,D)=>k[D]?.status==="fulfilled"),I=n.length-F.length;i({deleted:F,error:I>0?d("Failed to delete {count} keys.",{count:I}):null,type:"bulkDeleted"})})())},"V"),J=s(()=>{h(!1),i({type:"reload"})},"D"),L=c!==null&&c.length>0&&o.length===c.length,M=new Set(o);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("section",{className:"border border-border bg-card p-3","data-testid":"kv-keys-section",children:[(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(ae,{"aria-label":d("Filter keys by prefix"),className:"min-w-[16rem] flex-1","data-testid":"kv-prefix-input",onChange:N,placeholder:d("Filter by prefix\u2026"),value:V}),(0,a.jsx)($,{"data-testid":"kv-filter-btn",disabled:O,onClick:C,children:d("Filter")}),(0,a.jsx)($,{"data-testid":"kv-new-key-btn",onClick:s(()=>{h(n=>!n)},"onClick"),variant:"outline",children:d("New key")}),o.length>0&&(0,a.jsx)($,{"data-testid":"kv-bulk-delete-btn",disabled:t,onClick:T,variant:"destructive",children:t?d("Deleting\u2026"):d("Delete {count}",{count:o.length})})]}),l!==null&&(0,a.jsx)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-bulk-error",role:"alert",children:l}),g!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-keys-error",role:"alert",children:g}),c!==null&&c.length===0&&!O&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-no-keys",children:d("No keys.")}),c!==null&&c.length>0&&(0,a.jsx)(re,{className:"overflow-hidden py-0",children:(0,a.jsx)(ne,{className:"px-0",children:(0,a.jsxs)(ie,{"data-testid":"kv-key-table",children:[(0,a.jsx)(se,{children:(0,a.jsxs)(Q,{children:[(0,a.jsx)(X,{className:"w-10",children:(0,a.jsx)(ue,{"aria-label":d("Select all"),checked:L,"data-testid":"kv-select-all",onCheckedChange:B})}),(0,a.jsx)(X,{children:d("Key")}),(0,a.jsx)(X,{children:d("Expiration")})]})}),(0,a.jsx)(oe,{children:c.map(n=>(0,a.jsxs)(Q,{className:n.name===y?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-key":n.name,"data-testid":`kv-key-row-${n.name}`,onClick:w,children:[(0,a.jsx)(Y,{onClick:s(k=>{k.stopPropagation()},"onClick"),children:(0,a.jsx)(ue,{"aria-label":d("Select {name}",{name:n.name}),checked:M.has(n.name),"data-testid":`kv-select-${n.name}`,onCheckedChange:s(()=>{E(n.name)},"onCheckedChange")})}),(0,a.jsx)(Y,{className:"font-mono text-xs",children:n.name}),(0,a.jsx)(Y,{className:"tabular-nums text-xs",children:Le(n.expiration)})]},n.name))})]})})}),!x&&p!==null&&(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)($,{"data-testid":"kv-load-more",disabled:O,onClick:b,variant:"outline",children:d(O?"Loading\u2026":"Load more")})})]}),(0,a.jsx)(me,{onOpenChange:s(n=>{n||h(!1)},"onOpenChange"),open:m,children:(0,a.jsxs)(ve,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-create-sheet",side:"right",children:[(0,a.jsx)(pe,{children:(0,a.jsx)(ye,{children:d("New key")})}),(0,a.jsx)(je,{namespace:r,onCancel:s(()=>{h(!1)},"onCancel"),onCreated:J})]})}),(0,a.jsx)(me,{onOpenChange:s(n=>{n||i({name:null,type:"selectKey"})},"onOpenChange"),open:y!==null,children:(0,a.jsxs)(ve,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-editor-sheet",side:"right",children:[(0,a.jsx)(pe,{children:(0,a.jsx)(ye,{className:"truncate font-mono text-xs",children:y})}),y!==null&&(0,a.jsx)(He,{expiration:c?.find(n=>n.name===y)?.expiration,keyName:y,namespace:r,onDeleted:S},`${r}:${y}`)]})})]})},"Ue"),st=s(({loadNamespaces:r}={})=>{let e=G(),d=R(),[u,i]=(0,P.useState)(null),[v,o]=(0,P.useState)(null),[t,l]=(0,P.useState)(null);(0,P.useEffect)(()=>{let c={cancelled:!1};return z((async()=>{try{let x=await(r??(()=>e.listKvNamespaces()))();c.cancelled||(i(x),o(null),l(g=>g??x[0]?.binding??null))}catch(x){c.cancelled||(i(null),o(Z(x)))}})()),()=>{c.cancelled=!0}},[e,r]);let p=s(c=>{l(c.currentTarget.dataset.ns??null)},"v");return(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-kv-browser",children:[v!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-ns-error",role:"alert",children:v}),u!==null&&u.length===0&&(0,a.jsx)(ke,{description:d("Add a kv_namespaces binding to wrangler.jsonc \u2014 it appears here automatically, no wiring needed."),icon:(0,a.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M5 5h14v4H5V5Zm0 5h14v4H5v-4Zm0 5h14v4H5v-4Z"})}),testId:"kv-empty",title:d("No KV namespaces.")}),u!==null&&u.length>0&&(0,a.jsx)(re,{className:"overflow-hidden py-0",children:(0,a.jsx)(ne,{className:"px-0",children:(0,a.jsxs)(ie,{"data-testid":"kv-namespace-table",children:[(0,a.jsx)(se,{children:(0,a.jsx)(Q,{children:(0,a.jsx)(X,{children:d("Namespace")})})}),(0,a.jsx)(oe,{children:u.map(c=>(0,a.jsx)(Q,{className:c.binding===t?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-ns":c.binding,"data-testid":`kv-ns-row-${c.binding}`,onClick:p,children:(0,a.jsx)(Y,{className:"font-mono text-xs",children:c.binding})},c.binding))})]})})}),t!==null&&(0,a.jsx)(Ue,{namespace:t},t)]})},"ut");export{st as KvBrowser};
1
+ import{a as ge,b as fe,c as xe,d as Ne,e as Ce}from"./chunk-VR3UJA7B.js";import"./chunk-AFKLFS74.js";import"./chunk-CP4ZFBVW.js";import{a as ce}from"./chunk-METRMDIQ.js";import{a as ue}from"./chunk-NIX2QSSN.js";import{a as q}from"./chunk-NXXGISFB.js";import{g as me,h as ve,i as pe,j as ye}from"./chunk-GPP4VSUO.js";import"./chunk-GIRZD3UB.js";import"./chunk-XJSWM47N.js";import"./chunk-EDHW2EEG.js";import"./chunk-ZSOLGJFC.js";import"./chunk-DUDQV6XJ.js";import"./chunk-VZCS5GXZ.js";import"./chunk-DKSLOJDQ.js";import"./chunk-MCLM2QJI.js";import"./chunk-DPNEFSEC.js";import"./chunk-TNKECJW4.js";import"./chunk-4YTSKL4R.js";import{P as ae}from"./chunk-AOAJGSYZ.js";import"./chunk-INQICZYC.js";import"./chunk-TFMQSCGC.js";import{a as $}from"./chunk-BWEXJENB.js";import"./chunk-74ASA4WU.js";import"./chunk-XQS7KSHL.js";import{b as he}from"./chunk-SPDZUX4P.js";import"./chunk-7PIHTTND.js";import"./chunk-F7JOSNAT.js";import"./chunk-VDW32UET.js";import"./chunk-YUWMB6EV.js";import{f as G}from"./chunk-TBXK3FKP.js";import"./chunk-RCZTUWG3.js";import{a as ke}from"./chunk-UANVABQG.js";import{a as ie,b as se,c as oe,d as Q,e as X,f as Y}from"./chunk-L4EZAHCD.js";import{a as re,e as ne}from"./chunk-IYWVSMAY.js";import{d as R,h as Z,l as be,o as z,q as de}from"./chunk-6ZPTNC34.js";import"./chunk-VYW2PAWC.js";import{a as s,d as le,e as Oe,f as _e,g as De}from"./chunk-R5ZTCHCE.js";var P=le(Oe(),1);var ee=le(_e(),1);var a=le(De(),1);var Be=s(r=>{let e=r.trim();if(e==="")return;let d=Number(e);return Number.isFinite(d)&&d>0?Math.floor(d):void 0},"Be"),Le=s(r=>r===void 0?"\u2014":new Date(r*1e3).toISOString(),"Oe"),Je=s(r=>new TextEncoder().encode(r).length,"Ae"),Fe=s(r=>{if(r.trim()!=="")try{return JSON.stringify(JSON.parse(r),void 0,2)}catch{return}},"ge"),Ke=s(r=>{if(r.trim()==="")return!0;try{return JSON.parse(r),!0}catch{return!1}},"xe"),Ee=[{key:"seconds",seconds:1},{key:"minutes",seconds:60},{key:"hours",seconds:3600},{key:"days",seconds:86400}],we=s((r,e)=>{let d=r.trim();if(d==="")return"";let u=Number(d),i=Ee.find(v=>v.key===e)?.seconds??1;return Number.isFinite(u)&&u>0?String(Math.round(u*i)):d},"ue"),Ve=s(r=>{let e=r.trim();if(e==="")return!0;let d=Number(e);return Number.isInteger(d)&&d>=60},"Ce"),Te=s((r,e,d,u)=>{let i=Be(r.ttl);return{expiration:i===void 0?u:void 0,expirationTtl:i,key:e,metadata:r.metadata.trim()===""?void 0:JSON.parse(r.metadata),namespace:d,value:r.value}},"Se"),Me=s(r=>{let e=(0,ee.c)(60),{helper:d,id:u,invalid:i,onChange:v,testId:o}=r,t=R(),[l,p]=(0,P.useState)(""),[c,x]=(0,P.useState)("seconds"),g;e[0]!==v||e[1]!==c?(g=s(f=>{p(f.target.value),v(we(f.target.value,c))},"k"),e[0]=v,e[1]=c,e[2]=g):g=e[2];let O=g,V;e[3]!==l||e[4]!==v?(V=s(f=>{f!==null&&(x(f),v(we(l,f)))},"K"),e[3]=l,e[4]=v,e[5]=V):V=e[5];let _=V,y;e[6]!==t?(y=t("days"),e[6]=t,e[7]=y):y=e[7];let m;e[8]!==t?(m=t("hours"),e[8]=t,e[9]=m):m=e[9];let h;e[10]!==t?(h=t("minutes"),e[10]=t,e[11]=h):h=e[11];let N;e[12]!==t?(N=t("seconds"),e[12]=t,e[13]=N):N=e[13];let C;e[14]!==y||e[15]!==m||e[16]!==h||e[17]!==N?(C={days:y,hours:m,minutes:h,seconds:N},e[14]=y,e[15]=m,e[16]=h,e[17]=N,e[18]=C):C=e[18];let w=C,b;e[19]!==t?(b=t("Expires after"),e[19]=t,e[20]=b):b=e[20];let S;e[21]!==u||e[22]!==b?(S=(0,a.jsx)(q,{className:"text-xs",htmlFor:u,children:b}),e[21]=u,e[22]=b,e[23]=S):S=e[23];let E;e[24]!==t?(E=t("No expiration"),e[24]=t,e[25]=E):E=e[25];let B;e[26]!==l||e[27]!==u||e[28]!==i||e[29]!==O||e[30]!==E||e[31]!==o?(B=(0,a.jsx)(ae,{"aria-invalid":i,className:"flex-1","data-testid":o,id:u,inputMode:"numeric",onChange:O,placeholder:E,value:l}),e[26]=l,e[27]=u,e[28]=i,e[29]=O,e[30]=E,e[31]=o,e[32]=B):B=e[32];let T;e[33]!==t?(T=t("TTL unit"),e[33]=t,e[34]=T):T=e[34];let J=`${o}-unit`,L;e[35]===Symbol.for("react.memo_cache_sentinel")?(L=(0,a.jsx)(fe,{}),e[35]=L):L=e[35];let M;e[36]!==T||e[37]!==J?(M=(0,a.jsx)(xe,{"aria-label":T,className:"w-[7.5rem]","data-testid":J,children:L}),e[36]=T,e[37]=J,e[38]=M):M=e[38];let n;e[39]!==w?(n=Ee.map(f=>(0,a.jsx)(Ce,{value:f.key,children:w[f.key]},f.key)),e[39]=w,e[40]=n):n=e[40];let k;e[41]!==n?(k=(0,a.jsx)(Ne,{children:n}),e[41]=n,e[42]=k):k=e[42];let F;e[43]!==_||e[44]!==M||e[45]!==k||e[46]!==c?(F=(0,a.jsxs)(ge,{onValueChange:_,value:c,children:[M,k]}),e[43]=_,e[44]=M,e[45]=k,e[46]=c,e[47]=F):F=e[47];let I;e[48]!==B||e[49]!==F?(I=(0,a.jsxs)("div",{className:"flex gap-2",children:[B,F]}),e[48]=B,e[49]=F,e[50]=I):I=e[50];let K;e[51]!==d||e[52]!==i||e[53]!==t||e[54]!==o?(K=i?(0,a.jsx)("p",{className:"text-xs text-destructive","data-testid":`${o}-invalid`,children:t("TTL must be at least 60 seconds.")}):d!==void 0&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:d}),e[51]=d,e[52]=i,e[53]=t,e[54]=o,e[55]=K):K=e[55];let D;return e[56]!==I||e[57]!==K||e[58]!==S?(D=(0,a.jsxs)("div",{className:"mb-3 grid gap-1",children:[S,I,K]}),e[56]=I,e[57]=K,e[58]=S,e[59]=D):D=e[59],D},"we"),Ie=s(r=>{let e=(0,ee.c)(36),{id:d,invalidTestId:u,onChange:i,testId:v,valid:o,value:t}=r,l=R(),p;e[0]!==t?(p=Fe(t),e[0]=t,e[1]=p):p=e[1];let c=p,x;e[2]!==l?(x=l("Metadata (JSON)"),e[2]=l,e[3]=x):x=e[3];let g;e[4]!==d||e[5]!==x?(g=(0,a.jsx)(q,{className:"text-xs",htmlFor:d,children:x}),e[4]=d,e[5]=x,e[6]=g):g=e[6];let O=`${v}-format`,V=c===void 0,_;e[7]!==c||e[8]!==i?(_=s(()=>{c!==void 0&&i(c)},"L"),e[7]=c,e[8]=i,e[9]=_):_=e[9];let y;e[10]!==l?(y=l("Format JSON"),e[10]=l,e[11]=y):y=e[11];let m;e[12]!==O||e[13]!==V||e[14]!==_||e[15]!==y?(m=(0,a.jsx)($,{"data-testid":O,disabled:V,onClick:_,size:"sm",variant:"outline",children:y}),e[12]=O,e[13]=V,e[14]=_,e[15]=y,e[16]=m):m=e[16];let h;e[17]!==g||e[18]!==m?(h=(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[g,m]}),e[17]=g,e[18]=m,e[19]=h):h=e[19];let N=!o,C;e[20]!==i?(C=s(E=>{i(E.target.value)},"N"),e[20]=i,e[21]=C):C=e[21];let w;e[22]!==d||e[23]!==N||e[24]!==C||e[25]!==v||e[26]!==t?(w=(0,a.jsx)(ce,{"aria-invalid":N,className:"min-h-[4rem] font-mono text-xs","data-testid":v,id:d,onChange:C,value:t}),e[22]=d,e[23]=N,e[24]=C,e[25]=v,e[26]=t,e[27]=w):w=e[27];let b;e[28]!==u||e[29]!==l||e[30]!==o?(b=!o&&(0,a.jsx)("p",{className:"text-xs text-destructive","data-testid":u,children:l("Metadata must be valid JSON.")}),e[28]=u,e[29]=l,e[30]=o,e[31]=b):b=e[31];let S;return e[32]!==w||e[33]!==b||e[34]!==h?(S=(0,a.jsxs)("div",{className:"mb-3 grid gap-1",children:[h,w,b]}),e[32]=w,e[33]=b,e[34]=h,e[35]=S):S=e[35],S},"Te"),Pe={busy:!1,error:null,metadata:"",name:"",ttl:"",value:""},$e=s((r,e)=>{switch(e.type){case"setField":return{...r,[e.field]:e.value};case"submitFailed":return{...r,busy:!1,error:e.error};case"submitStart":return{...r,busy:!0,error:null};default:return r}},"Je"),je=s(r=>{let e=(0,ee.c)(73),{namespace:d,onCancel:u,onCreated:i}=r,v=G(),o=R(),[t,l]=(0,P.useReducer)($e,Pe),p;e[0]!==t.metadata?(p=Ke(t.metadata),e[0]=t.metadata,e[1]=p):p=e[1];let c=p,x;e[2]!==t.ttl?(x=Ve(t.ttl),e[2]=t.ttl,e[3]=x):x=e[3];let g=x,O;e[4]!==c||e[5]!==t.busy||e[6]!==t.name||e[7]!==g?(O=t.name.trim()!==""&&c&&g&&!t.busy,e[4]=c,e[5]=t.busy,e[6]=t.name,e[7]=g,e[8]=O):O=e[8];let V=O,_;e[9]!==V||e[10]!==v||e[11]!==d||e[12]!==i||e[13]!==t.metadata||e[14]!==t.name||e[15]!==t.ttl||e[16]!==t.value?(_=s(()=>{V&&(l({type:"submitStart"}),z((async()=>{try{await v.putKvValue(Te({metadata:t.metadata,ttl:t.ttl,value:t.value},t.name,d)),i()}catch(A){l({error:Z(A),type:"submitFailed"})}})()))},"L"),e[9]=V,e[10]=v,e[11]=d,e[12]=i,e[13]=t.metadata,e[14]=t.name,e[15]=t.ttl,e[16]=t.value,e[17]=_):_=e[17];let y=_,m;e[18]!==o?(m=o("Key name"),e[18]=o,e[19]=m):m=e[19];let h;e[20]!==m?(h=(0,a.jsx)(q,{className:"text-xs",htmlFor:"kv-create-name",children:m}),e[20]=m,e[21]=h):h=e[21];let N;e[22]===Symbol.for("react.memo_cache_sentinel")?(N=s(A=>{l({field:"name",type:"setField",value:A.target.value})},"x"),e[22]=N):N=e[22];let C;e[23]!==o?(C=o("Key name"),e[23]=o,e[24]=C):C=e[24];let w;e[25]!==t.name||e[26]!==C?(w=(0,a.jsx)(ae,{autoFocus:!0,"data-testid":"kv-create-name",id:"kv-create-name",onChange:N,placeholder:C,value:t.name}),e[25]=t.name,e[26]=C,e[27]=w):w=e[27];let b;e[28]!==h||e[29]!==w?(b=(0,a.jsxs)("div",{className:"grid gap-1",children:[h,w]}),e[28]=h,e[29]=w,e[30]=b):b=e[30];let S;e[31]!==o?(S=o("Value"),e[31]=o,e[32]=S):S=e[32];let E;e[33]!==S?(E=(0,a.jsx)(q,{className:"text-xs",htmlFor:"kv-create-value",children:S}),e[33]=S,e[34]=E):E=e[34];let B;e[35]===Symbol.for("react.memo_cache_sentinel")?(B=s(A=>{l({field:"value",type:"setField",value:A.target.value})},"O"),e[35]=B):B=e[35];let T;e[36]!==t.value?(T=(0,a.jsx)(ce,{className:"min-h-[6rem] font-mono text-xs","data-testid":"kv-create-value",id:"kv-create-value",onChange:B,value:t.value}),e[36]=t.value,e[37]=T):T=e[37];let J;e[38]!==E||e[39]!==T?(J=(0,a.jsxs)("div",{className:"grid gap-1",children:[E,T]}),e[38]=E,e[39]=T,e[40]=J):J=e[40];let L=!g,M;e[41]===Symbol.for("react.memo_cache_sentinel")?(M=s(A=>{l({field:"ttl",type:"setField",value:A})},"I"),e[41]=M):M=e[41];let n;e[42]!==L?(n=(0,a.jsx)(Me,{id:"kv-create-ttl",invalid:L,onChange:M,testId:"kv-create-ttl"}),e[42]=L,e[43]=n):n=e[43];let k;e[44]===Symbol.for("react.memo_cache_sentinel")?(k=s(A=>{l({field:"metadata",type:"setField",value:A})},"h"),e[44]=k):k=e[44];let F;e[45]!==c||e[46]!==t.metadata?(F=(0,a.jsx)(Ie,{id:"kv-create-metadata",invalidTestId:"kv-create-metadata-invalid",onChange:k,testId:"kv-create-metadata",valid:c,value:t.metadata}),e[45]=c,e[46]=t.metadata,e[47]=F):F=e[47];let I=!V,K;e[48]!==t.busy||e[49]!==o?(K=t.busy?o("Creating\u2026"):o("Create key"),e[48]=t.busy,e[49]=o,e[50]=K):K=e[50];let D;e[51]!==y||e[52]!==I||e[53]!==K?(D=(0,a.jsx)($,{"data-testid":"kv-create-submit",disabled:I,onClick:y,children:K}),e[51]=y,e[52]=I,e[53]=K,e[54]=D):D=e[54];let f=t.busy,j;e[55]!==o?(j=o("Cancel"),e[55]=o,e[56]=j):j=e[56];let H;e[57]!==u||e[58]!==t.busy||e[59]!==j?(H=(0,a.jsx)($,{"data-testid":"kv-create-cancel",disabled:f,onClick:u,variant:"outline",children:j}),e[57]=u,e[58]=t.busy,e[59]=j,e[60]=H):H=e[60];let U;e[61]!==D||e[62]!==H?(U=(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[D,H]}),e[61]=D,e[62]=H,e[63]=U):U=e[63];let W;e[64]!==t.error?(W=t.error!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-create-error",role:"alert",children:t.error}),e[64]=t.error,e[65]=W):W=e[65];let te;return e[66]!==b||e[67]!==J||e[68]!==n||e[69]!==F||e[70]!==U||e[71]!==W?(te=(0,a.jsxs)("div",{className:"grid gap-3 px-4 pb-4","data-testid":"kv-create-form",children:[b,J,n,F,U,W]}),e[66]=b,e[67]=J,e[68]=n,e[69]=F,e[70]=U,e[71]=W,e[72]=te):te=e[72],te},"Pe"),Ae={busy:"",editedMetadata:"",editedTtl:"",editedValue:"",loadError:null,loading:!0,value:null,writeError:null},ze=s((r,e)=>{switch(e.type){case"deleteStart":return{...r,busy:"deleting",writeError:null};case"editMetadata":return{...r,editedMetadata:e.value};case"editTtl":return{...r,editedTtl:e.value};case"editValue":return{...r,editedValue:e.value};case"loaded":return{...r,editedMetadata:e.metadata===null||e.metadata===void 0?"":JSON.stringify(e.metadata,null,2),editedValue:e.value??"",loading:!1,value:e.value};case"loadFailed":return{...r,loadError:e.error,loading:!1};case"saveOk":return{...r,busy:"",value:r.editedValue};case"saveStart":return{...r,busy:"saving",writeError:null};case"writeFailed":return{...r,busy:"",writeError:e.error};default:return r}},"je"),He=s(r=>{let e=(0,ee.c)(67),{expiration:d,keyName:u,namespace:i,onDeleted:v}=r,o=G(),t=R(),[l,p]=(0,P.useReducer)(ze,Ae),c,x;e[0]!==o||e[1]!==u||e[2]!==i?(c=s(()=>{let f={cancelled:!1};return z((async()=>{try{let j=await o.getKvValue({key:u,namespace:i});f.cancelled||p({metadata:j.metadata,type:"loaded",value:j.value})}catch(j){let H=j;f.cancelled||p({error:Z(H),type:"loadFailed"})}})()),()=>{f.cancelled=!0}},"o"),x=[o,i,u],e[0]=o,e[1]=u,e[2]=i,e[3]=c,e[4]=x):(c=e[3],x=e[4]),(0,P.useEffect)(c,x);let g;e[5]===Symbol.for("react.memo_cache_sentinel")?(g=s(f=>{p({type:"editValue",value:f.target.value})},"k"),e[5]=g):g=e[5];let O=g,V;e[6]===Symbol.for("react.memo_cache_sentinel")?(V=s(f=>{p({type:"editMetadata",value:f})},"K"),e[6]=V):V=e[6];let _=V,y;e[7]!==l.editedValue?(y=Fe(l.editedValue),e[7]=l.editedValue,e[8]=y):y=e[8];let m=y,h;e[9]!==l.editedMetadata?(h=Ke(l.editedMetadata),e[9]=l.editedMetadata,e[10]=h):h=e[10];let N=h,C;e[11]!==l.editedTtl?(C=Ve(l.editedTtl),e[11]=l.editedTtl,e[12]=C):C=e[12];let w=C,b;e[13]!==m?(b=s(()=>{m!==void 0&&p({type:"editValue",value:m})},"y"),e[13]=m,e[14]=b):b=e[14];let S=b,E;e[15]!==o||e[16]!==d||e[17]!==u||e[18]!==N||e[19]!==i||e[20]!==l.editedMetadata||e[21]!==l.editedTtl||e[22]!==l.editedValue||e[23]!==t?(E=s(()=>{if(!N){p({error:t("Metadata must be valid JSON."),type:"writeFailed"});return}p({type:"saveStart"}),z((async()=>{try{await o.putKvValue(Te({metadata:l.editedMetadata,ttl:l.editedTtl,value:l.editedValue},u,i,d)),p({type:"saveOk"})}catch(f){p({error:Z(f),type:"writeFailed"})}})())},"F"),e[15]=o,e[16]=d,e[17]=u,e[18]=N,e[19]=i,e[20]=l.editedMetadata,e[21]=l.editedTtl,e[22]=l.editedValue,e[23]=t,e[24]=E):E=e[24];let B=E,T;e[25]!==o||e[26]!==u||e[27]!==i||e[28]!==v?(T=s(()=>{p({type:"deleteStart"}),z((async()=>{try{await o.deleteKvKey({key:u,namespace:i}),v(u)}catch(f){p({error:Z(f),type:"writeFailed"})}})())},"V"),e[25]=o,e[26]=u,e[27]=i,e[28]=v,e[29]=T):T=e[29];let J=T,L;e[30]!==u?(L=s(()=>{de(u)},"A"),e[30]=u,e[31]=L):L=e[31];let M;e[32]!==t?(M=t("Copy key"),e[32]=t,e[33]=M):M=e[33];let n;e[34]!==L||e[35]!==M?(n=(0,a.jsx)("div",{className:"mb-2 flex justify-end",children:(0,a.jsx)($,{"data-testid":"kv-copy-key-btn",onClick:L,size:"sm",variant:"outline",children:M})}),e[34]=L,e[35]=M,e[36]=n):n=e[36];let k;e[37]!==l.loadError?(k=l.loadError!==null&&(0,a.jsx)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-value-error",role:"alert",children:l.loadError}),e[37]=l.loadError,e[38]=k):k=e[38];let F;e[39]!==l.loading||e[40]!==t?(F=l.loading&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-value-loading",children:t("Loading\u2026")}),e[39]=l.loading,e[40]=t,e[41]=F):F=e[41];let I;e[42]!==m||e[43]!==N||e[44]!==J||e[45]!==S||e[46]!==B||e[47]!==l.busy||e[48]!==l.editedMetadata||e[49]!==l.editedValue||e[50]!==l.loading||e[51]!==l.value||e[52]!==l.writeError||e[53]!==t||e[54]!==w?(I=!l.loading&&l.value!==null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(q,{className:"text-xs",htmlFor:"kv-value-editor",children:t("Value")}),m!==void 0&&(0,a.jsx)(he,{variant:"secondary",children:t("JSON")}),(0,a.jsx)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground","data-testid":"kv-value-size",children:be(Je(l.editedValue))})]}),(0,a.jsx)("textarea",{"aria-label":t("KV value"),className:"mb-2 min-h-[8rem] w-full rounded border border-border bg-muted/30 p-2 font-mono text-xs","data-testid":"kv-value-editor",id:"kv-value-editor",onChange:O,value:l.editedValue}),(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap gap-2",children:[(0,a.jsx)($,{"data-testid":"kv-format-btn",disabled:m===void 0,onClick:S,size:"sm",variant:"outline",children:t("Format JSON")}),(0,a.jsx)($,{"data-testid":"kv-copy-value-btn",onClick:s(()=>{de(l.editedValue)},"onClick"),size:"sm",variant:"outline",children:t("Copy value")})]}),(0,a.jsx)(Me,{helper:t("Leave blank to keep the current expiration."),id:"kv-ttl-input",invalid:!w,onChange:s(f=>{p({type:"editTtl",value:f})},"onChange"),testId:"kv-ttl-input"}),(0,a.jsx)(Ie,{id:"kv-metadata-editor",invalidTestId:"kv-metadata-invalid",onChange:_,testId:"kv-metadata-editor",valid:N,value:l.editedMetadata}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)($,{"data-testid":"kv-save-btn",disabled:l.busy!==""||!N||!w,onClick:B,children:l.busy==="saving"?t("Saving\u2026"):t("Save")}),(0,a.jsx)($,{"data-testid":"kv-delete-btn",disabled:l.busy!=="",onClick:J,variant:"destructive",children:l.busy==="deleting"?t("Deleting\u2026"):t("Delete")})]}),l.writeError!==null&&(0,a.jsx)("p",{className:"mt-2 text-sm text-destructive","data-testid":"kv-save-error",role:"alert",children:l.writeError})]}),e[42]=m,e[43]=N,e[44]=J,e[45]=S,e[46]=B,e[47]=l.busy,e[48]=l.editedMetadata,e[49]=l.editedValue,e[50]=l.loading,e[51]=l.value,e[52]=l.writeError,e[53]=t,e[54]=w,e[55]=I):I=e[55];let K;e[56]!==l.loadError||e[57]!==l.loading||e[58]!==l.value||e[59]!==t?(K=!l.loading&&l.value===null&&l.loadError===null&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-absent",children:t("Key is absent or has no value.")}),e[56]=l.loadError,e[57]=l.loading,e[58]=l.value,e[59]=t,e[60]=K):K=e[60];let D;return e[61]!==n||e[62]!==k||e[63]!==F||e[64]!==I||e[65]!==K?(D=(0,a.jsxs)("div",{className:"px-4 pb-4","data-testid":"kv-value-section",children:[n,k,F,I,K]}),e[61]=n,e[62]=k,e[63]=F,e[64]=I,e[65]=K,e[66]=D):D=e[66],D},"He"),Se=100,Ze={appliedPrefix:"",bulk:[],bulkBusy:!1,bulkError:null,cursor:null,keys:null,listComplete:!1,loadError:null,loading:!1,prefixInput:"",reloadNonce:0,selectedKey:null},Re=s((r,e)=>{switch(e.type){case"appendPage":return{...r,cursor:e.cursor,keys:[...r.keys??[],...e.keys],listComplete:e.listComplete,loading:!1};case"applyFilter":return{...r,appliedPrefix:r.prefixInput,bulk:[],bulkError:null,cursor:null,keys:null,listComplete:!1,selectedKey:null};case"bulkDeleted":{let d=new Set(e.deleted);return{...r,bulk:r.bulk.filter(u=>!d.has(u)),bulkBusy:!1,bulkError:e.error,keys:r.keys===null?null:r.keys.filter(u=>!d.has(u.name)),selectedKey:r.selectedKey!==null&&d.has(r.selectedKey)?null:r.selectedKey}}case"bulkDeleteStart":return{...r,bulkBusy:!0,bulkError:null};case"firstPage":return{...r,cursor:e.cursor,keys:e.keys,listComplete:e.listComplete,loading:!1};case"keyDeleted":return{...r,bulk:r.bulk.filter(d=>d!==e.name),keys:r.keys===null?null:r.keys.filter(d=>d.name!==e.name),selectedKey:null};case"loadFailed":return{...r,loadError:e.error,loading:!1};case"loadStart":return{...r,loadError:null,loading:!0};case"prefixInput":return{...r,prefixInput:e.value};case"reload":return{...r,bulk:[],bulkError:null,reloadNonce:r.reloadNonce+1,selectedKey:null};case"selectKey":return{...r,selectedKey:e.name};case"toggleAllBulk":return{...r,bulk:e.names};case"toggleBulk":return{...r,bulk:r.bulk.includes(e.name)?r.bulk.filter(d=>d!==e.name):[...r.bulk,e.name]};default:return r}},"ze"),Ue=s(({namespace:r})=>{let e=G(),d=R(),[u,i]=(0,P.useReducer)(Re,Ze),{appliedPrefix:v,bulk:o,bulkBusy:t,bulkError:l,cursor:p,keys:c,listComplete:x,loadError:g,loading:O,prefixInput:V,reloadNonce:_,selectedKey:y}=u,[m,h]=(0,P.useState)(!1);(0,P.useEffect)(()=>{let n={cancelled:!1};return z((async()=>{i({type:"loadStart"});try{let k=await e.listKvKeys({limit:Se,namespace:r,prefix:v===""?void 0:v});n.cancelled||i({cursor:k.cursor??null,keys:k.keys,listComplete:k.listComplete,type:"firstPage"})}catch(k){n.cancelled||i({error:Z(k),type:"loadFailed"})}})()),()=>{n.cancelled=!0}},[e,r,v,_]);let N=s(n=>{i({type:"prefixInput",value:n.target.value})},"x"),C=s(()=>{i({type:"applyFilter"})},"N"),w=s(n=>{i({name:n.currentTarget.dataset.key??null,type:"selectKey"})},"C"),b=s(()=>{p!==null&&(i({type:"loadStart"}),z((async()=>{try{let n=await e.listKvKeys({cursor:p,limit:Se,namespace:r,prefix:v===""?void 0:v});i({cursor:n.cursor??null,keys:n.keys,listComplete:n.listComplete,type:"appendPage"})}catch(n){i({error:Z(n),type:"loadFailed"})}})()))},"y"),S=s(n=>{i({name:n,type:"keyDeleted"})},"S"),E=s(n=>{i({name:n,type:"toggleBulk"})},"F"),B=s(n=>{i({names:n&&c!==null?c.map(k=>k.name):[],type:"toggleAllBulk"})},"O"),T=s(()=>{if(o.length===0)return;let n=[...o];i({type:"bulkDeleteStart"}),z((async()=>{let k=await Promise.allSettled(n.map(K=>e.deleteKvKey({key:K,namespace:r}))),F=n.filter((K,D)=>k[D]?.status==="fulfilled"),I=n.length-F.length;i({deleted:F,error:I>0?d("Failed to delete {count} keys.",{count:I}):null,type:"bulkDeleted"})})())},"V"),J=s(()=>{h(!1),i({type:"reload"})},"D"),L=c!==null&&c.length>0&&o.length===c.length,M=new Set(o);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("section",{className:"border border-border bg-card p-3","data-testid":"kv-keys-section",children:[(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(ae,{"aria-label":d("Filter keys by prefix"),className:"min-w-[16rem] flex-1","data-testid":"kv-prefix-input",onChange:N,placeholder:d("Filter by prefix\u2026"),value:V}),(0,a.jsx)($,{"data-testid":"kv-filter-btn",disabled:O,onClick:C,children:d("Filter")}),(0,a.jsx)($,{"data-testid":"kv-new-key-btn",onClick:s(()=>{h(n=>!n)},"onClick"),variant:"outline",children:d("New key")}),o.length>0&&(0,a.jsx)($,{"data-testid":"kv-bulk-delete-btn",disabled:t,onClick:T,variant:"destructive",children:t?d("Deleting\u2026"):d("Delete {count}",{count:o.length})})]}),l!==null&&(0,a.jsx)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-bulk-error",role:"alert",children:l}),g!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-keys-error",role:"alert",children:g}),c!==null&&c.length===0&&!O&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-no-keys",children:d("No keys.")}),c!==null&&c.length>0&&(0,a.jsx)(re,{className:"overflow-hidden py-0",children:(0,a.jsx)(ne,{className:"px-0",children:(0,a.jsxs)(ie,{"data-testid":"kv-key-table",children:[(0,a.jsx)(se,{children:(0,a.jsxs)(Q,{children:[(0,a.jsx)(X,{className:"w-10",children:(0,a.jsx)(ue,{"aria-label":d("Select all"),checked:L,"data-testid":"kv-select-all",onCheckedChange:B})}),(0,a.jsx)(X,{children:d("Key")}),(0,a.jsx)(X,{children:d("Expiration")})]})}),(0,a.jsx)(oe,{children:c.map(n=>(0,a.jsxs)(Q,{className:n.name===y?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-key":n.name,"data-testid":`kv-key-row-${n.name}`,onClick:w,children:[(0,a.jsx)(Y,{onClick:s(k=>{k.stopPropagation()},"onClick"),children:(0,a.jsx)(ue,{"aria-label":d("Select {name}",{name:n.name}),checked:M.has(n.name),"data-testid":`kv-select-${n.name}`,onCheckedChange:s(()=>{E(n.name)},"onCheckedChange")})}),(0,a.jsx)(Y,{className:"font-mono text-xs",children:n.name}),(0,a.jsx)(Y,{className:"tabular-nums text-xs",children:Le(n.expiration)})]},n.name))})]})})}),!x&&p!==null&&(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)($,{"data-testid":"kv-load-more",disabled:O,onClick:b,variant:"outline",children:d(O?"Loading\u2026":"Load more")})})]}),(0,a.jsx)(me,{onOpenChange:s(n=>{n||h(!1)},"onOpenChange"),open:m,children:(0,a.jsxs)(ve,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-create-sheet",side:"right",children:[(0,a.jsx)(pe,{children:(0,a.jsx)(ye,{children:d("New key")})}),(0,a.jsx)(je,{namespace:r,onCancel:s(()=>{h(!1)},"onCancel"),onCreated:J})]})}),(0,a.jsx)(me,{onOpenChange:s(n=>{n||i({name:null,type:"selectKey"})},"onOpenChange"),open:y!==null,children:(0,a.jsxs)(ve,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-editor-sheet",side:"right",children:[(0,a.jsx)(pe,{children:(0,a.jsx)(ye,{className:"truncate font-mono text-xs",children:y})}),y!==null&&(0,a.jsx)(He,{expiration:c?.find(n=>n.name===y)?.expiration,keyName:y,namespace:r,onDeleted:S},`${r}:${y}`)]})})]})},"Ue"),st=s(({loadNamespaces:r}={})=>{let e=G(),d=R(),[u,i]=(0,P.useState)(null),[v,o]=(0,P.useState)(null),[t,l]=(0,P.useState)(null);(0,P.useEffect)(()=>{let c={cancelled:!1};return z((async()=>{try{let x=await(r??(()=>e.listKvNamespaces()))();c.cancelled||(i(x),o(null),l(g=>g??x[0]?.binding??null))}catch(x){c.cancelled||(i(null),o(Z(x)))}})()),()=>{c.cancelled=!0}},[e,r]);let p=s(c=>{l(c.currentTarget.dataset.ns??null)},"v");return(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-kv-browser",children:[v!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-ns-error",role:"alert",children:v}),u!==null&&u.length===0&&(0,a.jsx)(ke,{description:d("Add a kv_namespaces binding to wrangler.jsonc \u2014 it appears here automatically, no wiring needed."),icon:(0,a.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M5 5h14v4H5V5Zm0 5h14v4H5v-4Zm0 5h14v4H5v-4Z"})}),testId:"kv-empty",title:d("No KV namespaces.")}),u!==null&&u.length>0&&(0,a.jsx)(re,{className:"overflow-hidden py-0",children:(0,a.jsx)(ne,{className:"px-0",children:(0,a.jsxs)(ie,{"data-testid":"kv-namespace-table",children:[(0,a.jsx)(se,{children:(0,a.jsx)(Q,{children:(0,a.jsx)(X,{children:d("Namespace")})})}),(0,a.jsx)(oe,{children:u.map(c=>(0,a.jsx)(Q,{className:c.binding===t?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-ns":c.binding,"data-testid":`kv-ns-row-${c.binding}`,onClick:p,children:(0,a.jsx)(Y,{className:"font-mono text-xs",children:c.binding})},c.binding))})]})})}),t!==null&&(0,a.jsx)(Ue,{namespace:t},t)]})},"ut");export{st as KvBrowser};
@@ -0,0 +1,13 @@
1
+ import{a as Ce}from"./chunk-METRMDIQ.js";import{a as he}from"./chunk-NXXGISFB.js";import{d as Ne,f as ke,g as we,k as oe}from"./chunk-DKSLOJDQ.js";import{a as V}from"./chunk-MCLM2QJI.js";import{a as Oe}from"./chunk-6FWN26RH.js";import"./chunk-P52BY657.js";import"./chunk-VNTEQQPP.js";import{P as ye}from"./chunk-AOAJGSYZ.js";import"./chunk-TFMQSCGC.js";import{a as D}from"./chunk-BWEXJENB.js";import"./chunk-74ASA4WU.js";import"./chunk-XQS7KSHL.js";import{b as ve}from"./chunk-SPDZUX4P.js";import"./chunk-7PIHTTND.js";import{a as Ie}from"./chunk-VDW32UET.js";import{f as H}from"./chunk-TBXK3FKP.js";import"./chunk-RCZTUWG3.js";import{a as F}from"./chunk-UANVABQG.js";import{d as E,e as Se,f as se,g as ie,h as le,o as $e,q as ae}from"./chunk-6ZPTNC34.js";import{c as be}from"./chunk-VYW2PAWC.js";import{a as u,d as J,e as ue,f as te,g as re,i as fe}from"./chunk-R5ZTCHCE.js";var He=J(te(),1),xe=J(ue(),1);var Y=J(te(),1);var X=J(ue(),1);var A=J(re(),1);var Ge=se(Ie.listTables),Qe=["react","client","cli"],Ve={action:"action",mutation:"mutation",query:"query"},_e=u(t=>{let e=t.indexOf(":");return e===-1?{file:"",fn:t}:{file:t.slice(0,e),fn:t.slice(e+1)}},"Q"),Xe=u(({file:t,fn:e,kind:a})=>`await client.${Ve[a]}(api.${t}.${e}, { /* args */ });`,"ie"),Ye=u(t=>{let e=`api.${t.file}.${t.fn}`;switch(t.kind){case"action":return`const { call: ${t.fn} } = useAction(${e});`;case"mutation":return`const ${t.fn} = useMutation(${e});`;default:return`const data = useQuery(${e}, { /* args */ });`}},"se"),Ze=u(({file:t,fn:e})=>`lunora run ${t}:${e} --args '{ }'`,"oe"),et=u(t=>["// Read rows",`const rows = await ctx.db.query("${t}").collect();`,"","// Insert a row",`const id = await ctx.db.insert("${t}", { /* fields */ });`,"","// Generated types",`type Row = Doc<"${t}">;`,`type RowId = Id<"${t}">;`].join(`
2
+ `),"ce"),tt=u((t,e)=>{switch(t){case"cli":return Ze(e);case"client":return Xe(e);default:return Ye(e)}},"re"),je=u(t=>{let e=(0,Y.c)(19),{code:a,label:r,testId:n}=t,s=E(),o;e[0]!==a?(o=u(()=>{ae(a)},"c"),e[0]=a,e[1]=o):o=e[1];let i=o,d;e[2]!==r?(d=(0,A.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:r}),e[2]=r,e[3]=d):d=e[3];let m=`${n}-copy`,l;e[4]!==s?(l=s("Copy"),e[4]=s,e[5]=l):l=e[5];let c;e[6]!==i||e[7]!==m||e[8]!==l?(c=(0,A.jsx)(D,{"data-testid":m,onClick:i,size:"xs",type:"button",variant:"ghost",children:l}),e[6]=i,e[7]=m,e[8]=l,e[9]=c):c=e[9];let f;e[10]!==d||e[11]!==c?(f=(0,A.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[d,c]}),e[10]=d,e[11]=c,e[12]=f):f=e[12];let h;e[13]!==a||e[14]!==n?(h=(0,A.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs","data-testid":n,children:a}),e[13]=a,e[14]=n,e[15]=h):h=e[15];let g;return e[16]!==f||e[17]!==h?(g=(0,A.jsxs)("div",{className:"flex flex-col gap-1.5",children:[f,h]}),e[16]=f,e[17]=h,e[18]=g):g=e[18],g},"U"),rt=u(t=>{let e=(0,Y.c)(46),{file:a,fn:r,kind:n}=t,s=E(),[o,i]=(0,X.useState)("react"),d,m,l;if(e[0]!==a||e[1]!==r||e[2]!==n||e[3]!==s||e[4]!==o){let S={file:a,fn:r,kind:n},P;e[8]!==s?(P=s("CLI"),e[8]=s,e[9]=P):P=e[9];let I;e[10]!==s?(I=s("Client"),e[10]=s,e[11]=I):I=e[11];let $;e[12]!==s?($=s("React"),e[12]=s,e[13]=$):$=e[13];let j;e[14]!==P||e[15]!==I||e[16]!==$?(j={cli:P,client:I,react:$},e[14]=P,e[15]=I,e[16]=$,e[17]=j):j=e[17],l=j;let T;e[18]===Symbol.for("react.memo_cache_sentinel")?(T=u(R=>{i(R.currentTarget.dataset.tab)},"B"),e[18]=T):T=e[18],d=T,m=tt(o,S),e[0]=a,e[1]=r,e[2]=n,e[3]=s,e[4]=o,e[5]=d,e[6]=m,e[7]=l}else d=e[5],m=e[6],l=e[7];let c=m,f=`api.${a}.${r}`,h;e[19]!==f?(h=(0,A.jsx)("h2",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"api-fn-title",children:f}),e[19]=f,e[20]=h):h=e[20];let g;e[21]!==n||e[22]!==s?(g=s("Call this {kind} from your app.",{kind:n}),e[21]=n,e[22]=s,e[23]=g):g=e[23];let b;e[24]!==g?(b=(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:g}),e[24]=g,e[25]=b):b=e[25];let y;e[26]!==h||e[27]!==b?(y=(0,A.jsxs)("div",{children:[h,b]}),e[26]=h,e[27]=b,e[28]=y):y=e[28];let N;e[29]!==s?(N=s("Snippet flavour"),e[29]=s,e[30]=N):N=e[30];let v;e[31]!==d||e[32]!==o||e[33]!==l?(v=Qe.map(S=>(0,A.jsx)(D,{"aria-selected":o===S,"data-tab":S,"data-testid":`api-tab-${S}`,onClick:d,role:"tab",size:"xs",type:"button",variant:o===S?"default":"outline",children:l[S]},S)),e[31]=d,e[32]=o,e[33]=l,e[34]=v):v=e[34];let x;e[35]!==N||e[36]!==v?(x=(0,A.jsx)("div",{"aria-label":N,className:"flex gap-1.5","data-testid":"api-tabs",role:"tablist",children:v}),e[35]=N,e[36]=v,e[37]=x):x=e[37];let k=l[o],O=`api-snippet-${o}`,C;e[38]!==c||e[39]!==k||e[40]!==O?(C=(0,A.jsx)(je,{code:c,label:k,testId:O}),e[38]=c,e[39]=k,e[40]=O,e[41]=C):C=e[41];let w;return e[42]!==C||e[43]!==y||e[44]!==x?(w=(0,A.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"api-fn-doc",children:[y,x,C]}),e[42]=C,e[43]=y,e[44]=x,e[45]=w):w=e[45],w},"de"),at=u(t=>{let e=(0,Y.c)(19),{name:a}=t,r=E(),n;e[0]!==a?(n=et(a),e[0]=a,e[1]=n):n=e[1];let s=n,o;e[2]!==a?(o=(0,A.jsx)("h2",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"api-table-title",children:a}),e[2]=a,e[3]=o):o=e[3];let i;e[4]!==r?(i=r("Read and write this table through the typed data model."),e[4]=r,e[5]=i):i=e[5];let d;e[6]!==i?(d=(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:i}),e[6]=i,e[7]=d):d=e[7];let m;e[8]!==o||e[9]!==d?(m=(0,A.jsxs)("div",{children:[o,d]}),e[8]=o,e[9]=d,e[10]=m):m=e[10];let l;e[11]!==r?(l=r("Data model"),e[11]=r,e[12]=l):l=e[12];let c;e[13]!==s||e[14]!==l?(c=(0,A.jsx)(je,{code:s,label:l,testId:"api-snippet-table"}),e[13]=s,e[14]=l,e[15]=c):c=e[15];let f;return e[16]!==m||e[17]!==c?(f=(0,A.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"api-table-doc",children:[m,c]}),e[16]=m,e[17]=c,e[18]=f):f=e[18],f},"fe"),Pe=u(t=>{let e=(0,Y.c)(8),{active:a,label:r,onSelect:n,testId:s,value:o}=t,i;e[0]!==n||e[1]!==o?(i=u(()=>{n(o)},"m"),e[0]=n,e[1]=o,e[2]=i):i=e[2];let d=i,m=a?"page":void 0,l;return e[3]!==r||e[4]!==d||e[5]!==m||e[6]!==s?(l=(0,A.jsx)("button",{"aria-current":m,className:"w-full truncate rounded-md px-2 py-1 text-start font-mono text-xs text-muted-foreground outline-none transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:bg-sidebar-accent aria-[current=page]:bg-sidebar-accent aria-[current=page]:font-medium aria-[current=page]:text-foreground","data-testid":s,onClick:d,type:"button",children:r}),e[3]=r,e[4]=d,e[5]=m,e[6]=s,e[7]=l):l=e[7],l},"G"),nt=u(t=>{let e=new Map;for(let a of t){let{file:r,fn:n}=_e(a.path),s=e.get(r)??[];s.push({fn:n,kind:a.kind,path:a.path}),e.set(r,s)}return[...e.entries()].map(([a,r])=>({file:a,items:r.toSorted((n,s)=>n.fn.localeCompare(s.fn))})).toSorted((a,r)=>a.file.localeCompare(r.file))},"pe"),Ae=u(t=>{let e=(0,Y.c)(58),{functions:a,initialShardKey:r}=t,n=E(),s=H(),[o,i]=(0,X.useState)(null),[d,m]=(0,X.useState)(null),l,c;e[0]!==s||e[1]!==r?(l=u(()=>{let R=!1;return s.query(Ge,{},ie(r??"")).then(_=>(R||i(_),_)).catch(()=>{R||i([])}),()=>{R=!0}},"o"),c=[s,r],e[0]=s,e[1]=r,e[2]=l,e[3]=c):(l=e[2],c=e[3]),(0,X.useEffect)(l,c);let f,h,g,b,y,N,v,x,k,O;if(e[4]!==a||e[5]!==d||e[6]!==n||e[7]!==o){let R=a??[],_=nt(R),q=(o??[]).map(ot).toSorted(st),M;e[18]===Symbol.for("react.memo_cache_sentinel")?(M=u(B=>{m({kind:"fn",path:B})},"P"),e[18]=M):M=e[18];let W=M,Q;e[19]===Symbol.for("react.memo_cache_sentinel")?(Q=u(B=>{m({kind:"table",name:B})},"j"),e[19]=Q):Q=e[19];let Ue=Q;h=d?.kind==="fn"?R.find(B=>B.path===d.path):void 0,f=R.length>0||q.length>0,g=h===void 0?void 0:_e(h.path),k="grid min-h-0 gap-6 md:grid-cols-[16rem_minmax(0,1fr)]",O="lunora-api-docs",e[20]!==n?(b=n("API resources"),e[20]=n,e[21]=b):b=e[21],y="flex flex-col gap-4 overflow-y-auto",N="api-rail";let ne;e[22]!==d||e[23]!==n?(ne=u(B=>(0,A.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,A.jsx)("span",{className:"px-2 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:B.file||n("(root)")}),B.items.map(ee=>(0,A.jsx)(Pe,{active:d?.kind==="fn"&&d.path===ee.path,label:ee.fn,onSelect:W,testId:`api-rail-fn-${ee.path}`,value:ee.path},ee.path))]},B.file),"q"),e[22]=d,e[23]=n,e[24]=ne):ne=e[24],v=_.map(ne),x=q.length>0&&(0,A.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,A.jsx)("span",{className:"px-2 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:n("Tables")}),q.map(B=>(0,A.jsx)(Pe,{active:d?.kind==="table"&&d.name===B,label:B,onSelect:Ue,testId:`api-rail-table-${B}`,value:B},B))]}),e[4]=a,e[5]=d,e[6]=n,e[7]=o,e[8]=f,e[9]=h,e[10]=g,e[11]=b,e[12]=y,e[13]=N,e[14]=v,e[15]=x,e[16]=k,e[17]=O}else f=e[8],h=e[9],g=e[10],b=e[11],y=e[12],N=e[13],v=e[14],x=e[15],k=e[16],O=e[17];let C;e[25]!==f||e[26]!==n?(C=!f&&(0,A.jsx)("p",{className:"px-2 text-xs text-muted-foreground","data-testid":"api-rail-empty",children:n("No functions or tables to document yet.")}),e[25]=f,e[26]=n,e[27]=C):C=e[27];let w;e[28]!==C||e[29]!==b||e[30]!==y||e[31]!==N||e[32]!==v||e[33]!==x?(w=(0,A.jsxs)("nav",{"aria-label":b,className:y,"data-testid":N,children:[v,x,C]}),e[28]=C,e[29]=b,e[30]=y,e[31]=N,e[32]=v,e[33]=x,e[34]=w):w=e[34];let S;e[35]!==d||e[36]!==n?(S=d===null&&(0,A.jsx)(F,{description:n("Select a function or table to see how to call it from your app."),testId:"api-empty",title:n("API usage snippets")}),e[35]=d,e[36]=n,e[37]=S):S=e[37];let P;e[38]!==d?.kind||e[39]!==h||e[40]!==g?(P=d?.kind==="fn"&&h!==void 0&&g!==void 0&&(0,A.jsx)(rt,{file:g.file,fn:g.fn,kind:h.kind},h.path),e[38]=d?.kind,e[39]=h,e[40]=g,e[41]=P):P=e[41];let I;e[42]!==d?.kind||e[43]!==h||e[44]!==n?(I=d?.kind==="fn"&&h===void 0&&(0,A.jsx)(F,{testId:"api-empty",title:n("API usage snippets")}),e[42]=d?.kind,e[43]=h,e[44]=n,e[45]=I):I=e[45];let $;e[46]!==d?($=d?.kind==="table"&&(0,A.jsx)(at,{name:d.name}),e[46]=d,e[47]=$):$=e[47];let j;e[48]!==S||e[49]!==P||e[50]!==I||e[51]!==$?(j=(0,A.jsxs)("div",{className:"min-w-0",children:[S,P,I,$]}),e[48]=S,e[49]=P,e[50]=I,e[51]=$,e[52]=j):j=e[52];let T;return e[53]!==w||e[54]!==j||e[55]!==k||e[56]!==O?(T=(0,A.jsxs)("div",{className:k,"data-testid":O,children:[w,j]}),e[53]=w,e[54]=j,e[55]=k,e[56]=O,e[57]=T):T=e[57],T},"ke");function ot(t){return t.name}u(ot,"ue");function st(t,e){return t.localeCompare(e)}u(st,"me");var Je=J(te(),1);var L=J(te(),1),K=J(ue(),1);var p=J(re(),1);var pe=u(function(t,e,a){let r=(0,L.c)(10),n;r[0]===Symbol.for("react.memo_cache_sentinel")?(n={kind:"loading"},r[0]=n):n=r[0];let[s,o]=(0,K.useState)(n),i,d;r[1]!==a||r[2]!==e||r[3]!==t?(i=u(()=>{if(t!==void 0)return;let l=!1;return e().then(c=>(l||o(a(c)),c)).catch(c=>{l||o({kind:"error",message:le(c)})}),()=>{l=!0}},"a"),d=[a,e,t],r[1]=a,r[2]=e,r[3]=t,r[4]=i,r[5]=d):(i=r[4],d=r[5]),(0,K.useEffect)(i,d);let m;return r[6]!==a||r[7]!==s||r[8]!==t?(m=t===void 0?s:a(t),r[6]=a,r[7]=s,r[8]=t,r[9]=m):m=r[9],m},"xt"),it=u(t=>typeof t=="number"?"number":typeof t=="boolean"?"boolean":"string","ke"),Re=u(t=>{if(t.enum!==void 0&&t.enum.length>0)return t.enum;if(t.anyOf!==void 0&&t.anyOf.length>0&&t.anyOf.every(e=>e.const!==void 0))return t.anyOf.map(e=>e.const)},"Q"),ce=u(t=>t===void 0?"any":t.const!==void 0?JSON.stringify(t.const):t.enum!==void 0&&t.enum.length>0?t.enum.map(e=>JSON.stringify(e)).join(" | "):t.anyOf!==void 0&&t.anyOf.length>0?t.anyOf.map(e=>ce(e)).join(" | "):t.type==="array"?`array<${ce(t.items)}>`:t.type??"any","F"),lt=u(t=>{let e=Re(t);return e!==void 0?t.type??it(e[0]):ce(t)},"Se"),dt=u(t=>{let e=Re(t);return e===void 0?void 0:e.map(a=>JSON.stringify(a)).join(" | ")},"we"),ct=u(t=>{let e=[];t.minimum!==void 0?e.push(`${String(t.minimum)} \u2264`):t.exclusiveMinimum!==void 0&&e.push(`${String(t.exclusiveMinimum)} <`);let a=e.length>0;e.push("value"),t.maximum!==void 0?e.push(`\u2264 ${String(t.maximum)}`):t.exclusiveMaximum!==void 0&&e.push(`< ${String(t.exclusiveMaximum)}`);let r=e.length>(a?2:1);return a||r?e.join(" "):void 0},"Oe"),pt=u(t=>{if(t.type==="object"&&t.properties!==void 0)return t;if(t.type==="array"&&t.items?.type==="object"&&t.items.properties!==void 0)return t.items},"$e"),Z=u(t=>{if(t===void 0)return null;if(t.const!==void 0)return t.const;if(t.enum!==void 0&&t.enum.length>0)return t.enum[0];if(t.anyOf!==void 0&&t.anyOf.length>0)return Z(t.anyOf[0]);switch(t.type){case"array":return[];case"boolean":return!1;case"number":return 0;case"object":{let e={};for(let[a,r]of Object.entries(t.properties??{}))e[a]=Z(r);return e}case"string":return"";default:return null}},"M"),de=u(t=>{let e=(0,L.c)(7),{label:a,value:r}=t,n;e[0]!==a?(n=(0,p.jsx)("span",{className:"text-muted-foreground",children:a}),e[0]=a,e[1]=n):n=e[1];let s;e[2]!==r?(s=(0,p.jsx)("span",{className:"text-foreground",children:r}),e[2]=r,e[3]=s):s=e[3];let o;return e[4]!==n||e[5]!==s?(o=(0,p.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-border px-1.5 py-0.5 font-mono text-[10px]",children:[n,s]}),e[4]=n,e[5]=s,e[6]=o):o=e[6],o},"D"),mt=u(t=>{let e=(0,L.c)(40),{name:a,required:r,schema:n}=t,s=E(),o;e[0]!==n?(o=ct(n),e[0]=n,e[1]=o):o=e[1];let i=o,d;e[2]!==n?(d=dt(n),e[2]=n,e[3]=d):d=e[3];let m=d,l=n["x-lunora-table"],c=n.format!==void 0||i!==void 0||m!==void 0||l!==void 0,f;e[4]!==n?(f=pt(n),e[4]=n,e[5]=f):f=e[5];let h=f,g=r?"*":"?",b;e[6]!==g?(b=(0,p.jsx)("span",{className:"text-muted-foreground",children:g}),e[6]=g,e[7]=b):b=e[7];let y;e[8]!==a||e[9]!==b?(y=(0,p.jsxs)("span",{className:"font-mono text-foreground",children:[a,b]}),e[8]=a,e[9]=b,e[10]=y):y=e[10];let N;e[11]!==n?(N=lt(n),e[11]=n,e[12]=N):N=e[12];let v;e[13]!==N?(v=(0,p.jsx)("span",{className:"font-mono text-muted-foreground",children:N}),e[13]=N,e[14]=v):v=e[14];let x;e[15]!==y||e[16]!==v?(x=(0,p.jsxs)("div",{className:"flex items-baseline gap-2",children:[y,v]}),e[15]=y,e[16]=v,e[17]=x):x=e[17];let k;e[18]!==n.description?(k=n.description!==void 0&&(0,p.jsx)("p",{className:"max-w-prose text-muted-foreground",children:n.description}),e[18]=n.description,e[19]=k):k=e[19];let O;e[20]!==c||e[21]!==i||e[22]!==l||e[23]!==n.format||e[24]!==s||e[25]!==m?(O=c&&(0,p.jsxs)("div",{className:"flex flex-wrap gap-1",children:[n.format!==void 0&&(0,p.jsx)(de,{label:s("Format"),value:n.format}),i!==void 0&&(0,p.jsx)(de,{label:s("Range"),value:i}),m!==void 0&&(0,p.jsx)(de,{label:s("Value in"),value:m}),l!==void 0&&(0,p.jsx)(de,{label:s("relation"),value:l})]}),e[20]=c,e[21]=i,e[22]=l,e[23]=n.format,e[24]=s,e[25]=m,e[26]=O):O=e[26];let C;e[27]!==k||e[28]!==O||e[29]!==x?(C=(0,p.jsxs)("div",{className:"flex flex-col gap-1 py-2",children:[x,k,O]}),e[27]=k,e[28]=O,e[29]=x,e[30]=C):C=e[30];let w=C;if(h===void 0){let $;return e[31]!==w?($=(0,p.jsx)("div",{className:"border-b border-border/50 last:border-b-0",children:w}),e[31]=w,e[32]=$):$=e[32],$}let S;e[33]!==w?(S=(0,p.jsx)("summary",{className:"cursor-pointer marker:text-muted-foreground",children:w}),e[33]=w,e[34]=S):S=e[34];let P;e[35]!==h?(P=(0,p.jsx)("div",{className:"mb-2 ml-2 border-l border-border pl-3",children:(0,p.jsx)(Me,{schema:h})}),e[35]=h,e[36]=P):P=e[36];let I;return e[37]!==S||e[38]!==P?(I=(0,p.jsxs)("details",{className:"border-b border-border/50 last:border-b-0",children:[S,P]}),e[37]=S,e[38]=P,e[39]=I):I=e[39],I},"Te"),Me=u(t=>{let e=(0,L.c)(7),{schema:a}=t,r;e[0]!==a.required?(r=new Set(a.required),e[0]=a.required,e[1]=r):r=e[1];let n=r,s;e[2]!==a.properties?(s=Object.entries(a.properties??{}),e[2]=a.properties,e[3]=s):s=e[3];let o=s,i;return e[4]!==n||e[5]!==o?(i=(0,p.jsx)("div",{className:"flex flex-col",children:o.map(d=>{let[m,l]=d;return(0,p.jsx)(mt,{name:m,required:n.has(m),schema:l},m)})}),e[4]=n,e[5]=o,e[6]=i):i=e[6],i},"Y"),Te=u(t=>{let e=(0,L.c)(10),{schema:a,testId:r}=t;if(a?.type!=="object"||Object.keys(a.properties??{}).length===0){let o;e[0]!==a?(o=ce(a),e[0]=a,e[1]=o):o=e[1];let i;return e[2]!==o||e[3]!==r?(i=(0,p.jsx)("p",{className:"font-mono text-xs text-muted-foreground","data-testid":r,children:o}),e[2]=o,e[3]=r,e[4]=i):i=e[4],i}let n;e[5]!==a?(n=(0,p.jsx)(Me,{schema:a}),e[5]=a,e[6]=n):n=e[6];let s;return e[7]!==n||e[8]!==r?(s=(0,p.jsx)("div",{className:"text-xs","data-testid":r,children:n}),e[7]=n,e[8]=r,e[9]=s):s=e[9],s},"U"),ut=["curl","javascript","lunora"],ft={lunora:"Lunora",curl:"cURL",javascript:"JavaScript"},ht=u(t=>`api.${t.replaceAll(/[/:]/g,".")}`,"Ee"),gt=u(t=>{let e=Z(t.argsSchema)??{};return t.functionPath===void 0?e:{args:e,functionPath:t.functionPath}},"Pe"),xt=u((t,e,a)=>{let r=`${a}${e.httpPath}`,n=JSON.stringify(gt(e),void 0,2),s=JSON.stringify(Z(e.argsSchema)??{},void 0,2);switch(t){case"curl":{let o=e.method!=="GET"&&e.method!=="HEAD",i=[`curl -X ${e.method} ${JSON.stringify(r)}`];return o&&i.push(' -H "Content-Type: application/json"',` -d '${n}'`),i.join(` \\
3
+ `)}case"lunora":return e.functionPath===void 0?`await fetch(${JSON.stringify(e.httpPath)}, { method: ${JSON.stringify(e.method)} });`:`import { useLunora } from "@lunora/react";
4
+ import { api } from "./_generated/api";
5
+
6
+ const client = useLunora();
7
+ await client.${e.kind??"query"}(${ht(e.functionPath)}, ${s});`;default:{let o=e.method!=="GET"&&e.method!=="HEAD"?`{
8
+ method: ${JSON.stringify(e.method)},
9
+ headers: { "Content-Type": "application/json" },
10
+ body: JSON.stringify(${n}),
11
+ }`:`{ method: ${JSON.stringify(e.method)} }`;return`const response = await fetch(${JSON.stringify(r)}, ${o});
12
+ const data = await response.json();`}}},"Ae"),bt=u(t=>{let e=(0,L.c)(24),{operation:a,server:r}=t,n=E(),[s,o]=(0,K.useState)("curl"),i;e[0]!==a||e[1]!==s||e[2]!==r?(i=xt(s,a,r),e[0]=a,e[1]=s,e[2]=r,e[3]=i):i=e[3];let d=i,m;e[4]!==d?(m=u(()=>{ae(d)},"d"),e[4]=d,e[5]=m):m=e[5];let l=m,c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=u(k=>{o(k.currentTarget.dataset.sample)},"u"),e[6]=c):c=e[6];let f=c,h;e[7]!==s?(h=ut.map(k=>(0,p.jsx)("button",{"aria-selected":s===k,className:"rounded px-2 py-0.5 text-xs text-muted-foreground transition-colors hover:text-foreground aria-selected:bg-muted aria-selected:font-medium aria-selected:text-foreground","data-sample":k,"data-testid":`api-sample-${k}`,onClick:f,role:"tab",type:"button",children:ft[k]},k)),e[7]=s,e[8]=h):h=e[8];let g;e[9]!==h?(g=(0,p.jsx)("div",{className:"flex gap-1",role:"tablist",children:h}),e[9]=h,e[10]=g):g=e[10];let b;e[11]!==n?(b=n("Copy"),e[11]=n,e[12]=b):b=e[12];let y;e[13]!==l||e[14]!==b?(y=(0,p.jsx)(D,{"data-testid":"api-sample-copy",onClick:l,size:"xs",type:"button",variant:"ghost",children:b}),e[13]=l,e[14]=b,e[15]=y):y=e[15];let N;e[16]!==g||e[17]!==y?(N=(0,p.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-border px-3 py-2",children:[g,y]}),e[16]=g,e[17]=y,e[18]=N):N=e[18];let v;e[19]!==d?(v=(0,p.jsx)("pre",{className:"overflow-auto px-3 pb-3 font-mono text-xs","data-testid":"api-sample-source",children:d}),e[19]=d,e[20]=v):v=e[20];let x;return e[21]!==N||e[22]!==v?(x=(0,p.jsxs)("div",{className:"flex flex-col gap-2 rounded-xl border border-border bg-card","data-testid":"api-code-samples",children:[N,v]}),e[21]=N,e[22]=v,e[23]=x):x=e[23],x},"Ie"),vt={blue:"text-info",emerald:"text-success",neutral:"text-muted-foreground",orange:"text-warning",red:"text-destructive",violet:"text-royal-amethyst"},yt=u(t=>{switch(t.toUpperCase()){case"DELETE":return"red";case"GET":return"emerald";case"PATCH":return"orange";case"POST":return"blue";case"PUT":return"orange";default:return"neutral"}},"Re"),Nt=u(t=>{switch(t){case"action":return"violet";case"mutation":return"orange";case"query":return"emerald";default:return"neutral"}},"Be"),ge=u(t=>{let e=(0,L.c)(7),{kind:a,method:r,testId:n}=t,s;e[0]!==a||e[1]!==r?(s=a??r.toUpperCase(),e[0]=a,e[1]=r,e[2]=s):s=e[2];let o=s,i=a===void 0?yt(r):Nt(a),d=`${vt[i]} font-mono text-[10px] tracking-wide uppercase`,m;return e[3]!==o||e[4]!==d||e[5]!==n?(m=(0,p.jsx)(ve,{className:d,"data-testid":n,variant:"ghost",children:o}),e[3]=o,e[4]=d,e[5]=n,e[6]=m):m=e[6],m},"H"),Ee=u(t=>t.startsWith("2")?"text-emerald-600 dark:text-emerald-400":t==="default"||t.startsWith("4")||t.startsWith("5")?"text-red-600 dark:text-red-400":"text-muted-foreground","Z"),qe=u(t=>t.startsWith("2")?"bg-emerald-500":t==="default"||t.startsWith("4")||t.startsWith("5")?"bg-red-500":"bg-muted-foreground","ee"),kt=u(t=>JSON.stringify(Z(t.argsSchema)??{},void 0,2),"Je"),Ke=(0,K.createContext)(null),Be=u(()=>{let t=(0,K.use)(Ke);if(t===null)throw new be("INTERNAL","useOperationRun must be used within an OperationRunProvider");return t},"re"),wt=u(({children:t,operation:e})=>{let a=E(),r=H(),[n,s]=(0,K.useState)(()=>kt(e)),[o,i]=(0,K.useState)(""),[d,m]=(0,K.useState)("idle"),[l,c]=(0,K.useState)(void 0),[f,h]=(0,K.useState)(null),[g,b]=(0,K.useState)(null),y=u(async()=>{let N;try{N=n.trim()===""?{}:JSON.parse(n)}catch(x){m("error"),c(void 0),b(null),h(a("Invalid JSON args: {message}",{message:le(x)}));return}m("running"),h(null);let v=performance.now();try{let x;if(e.functionPath===void 0){let k=e.method!=="GET"&&e.method!=="HEAD",O=await(await fetch(e.httpPath,{body:k?JSON.stringify(N):void 0,headers:k?{"content-type":"application/json"}:void 0,method:e.method})).text();try{x=JSON.parse(O)}catch{x=O}}else x=await Se(r,e.kind,se(e.functionPath),N,ie(o));c(x),b(Math.round(performance.now()-v)),m("success")}catch(x){c(void 0),b(Math.round(performance.now()-v)),h(le(x)),m("error")}},"y");return(0,p.jsx)(Ke,{value:{argsText:n,durationMs:g,error:f,operation:e,response:l,send:u(()=>{$e(y())},"send"),setArgsText:s,setShardKey:i,shardKey:o,status:d},children:t})},"_e"),St=u(()=>{let t=(0,L.c)(48),e=E(),{argsText:a,operation:r,send:n,setArgsText:s,setShardKey:o,shardKey:i,status:d}=Be(),m;t[0]!==s?(m=u(_=>{s(_.target.value)},"d"),t[0]=s,t[1]=m):m=t[1];let l=m,c;t[2]!==n?(c=u(_=>{_.key==="Enter"&&(_.metaKey||_.ctrlKey)&&(_.preventDefault(),n())},"u"),t[2]=n,t[3]=c):c=t[3];let f=c,h=d==="running",g;t[4]!==r.kind||t[5]!==r.method?(g=(0,p.jsx)(ge,{kind:r.kind,method:r.method,testId:"api-try-method"}),t[4]=r.kind,t[5]=r.method,t[6]=g):g=t[6];let b=r.functionPath??r.httpPath,y;t[7]!==b?(y=(0,p.jsx)("code",{className:"min-w-0 flex-1 truncate font-mono text-xs text-foreground",children:b}),t[7]=b,t[8]=y):y=t[8];let N=h?"animate-pulse":void 0,v;t[9]!==N?(v=(0,p.jsx)(oe,{className:N,icon:we,strokeWidth:2}),t[9]=N,t[10]=v):v=t[10];let x;t[11]!==h||t[12]!==e?(x=e(h?"Sending\u2026":"Send"),t[11]=h,t[12]=e,t[13]=x):x=t[13];let k;t[14]!==h||t[15]!==n||t[16]!==v||t[17]!==x?(k=(0,p.jsxs)(D,{"data-testid":"api-try-send",disabled:h,onClick:n,size:"sm",type:"button",children:[v,x]}),t[14]=h,t[15]=n,t[16]=v,t[17]=x,t[18]=k):k=t[18];let O;t[19]!==g||t[20]!==y||t[21]!==k?(O=(0,p.jsxs)("div",{className:"flex items-center gap-2 border-b border-border bg-muted px-3 py-2",children:[g,y,k]}),t[19]=g,t[20]=y,t[21]=k,t[22]=O):O=t[22];let C;t[23]!==e?(C=e("Arguments (JSON)"),t[23]=e,t[24]=C):C=t[24];let w;t[25]!==C?(w=(0,p.jsx)(he,{htmlFor:"api-try-args",children:C}),t[25]=C,t[26]=w):w=t[26];let S;t[27]!==a?(S=a.split(`
13
+ `),t[27]=a,t[28]=S):S=t[28];let P=Math.min(12,Math.max(3,S.length)),I;t[29]!==a||t[30]!==l||t[31]!==f||t[32]!==P?(I=(0,p.jsx)(Ce,{className:"font-mono text-xs","data-testid":"api-try-args",id:"api-try-args",onChange:l,onKeyDown:f,rows:P,spellCheck:!1,value:a}),t[29]=a,t[30]=l,t[31]=f,t[32]=P,t[33]=I):I=t[33];let $;t[34]!==w||t[35]!==I?($=(0,p.jsxs)("div",{className:"flex flex-col gap-1.5",children:[w,I]}),t[34]=w,t[35]=I,t[36]=$):$=t[36];let j;t[37]!==r.functionPath||t[38]!==o||t[39]!==i||t[40]!==e?(j=r.functionPath!==void 0&&(0,p.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,p.jsx)(he,{htmlFor:"shard-input",children:e("Shard key (optional)")}),(0,p.jsx)(Oe,{id:"shard-input",onChange:o,testId:"shard-input",value:i})]}),t[37]=r.functionPath,t[38]=o,t[39]=i,t[40]=e,t[41]=j):j=t[41];let T;t[42]!==$||t[43]!==j?(T=(0,p.jsxs)("div",{className:"flex flex-col gap-3 p-3",children:[$,j]}),t[42]=$,t[43]=j,t[44]=T):T=t[44];let R;return t[45]!==T||t[46]!==O?(R=(0,p.jsxs)("div",{className:"overflow-hidden rounded-xl border border-border bg-card","data-testid":"api-try-it",children:[O,T]}),t[45]=T,t[46]=O,t[47]=R):R=t[47],R},"Ke"),$t=u(t=>{let e=(0,L.c)(51),{operation:a}=t,r=E(),n=`api-operation-${a.operationId}`,s=a.key,o;e[0]!==a.kind||e[1]!==a.method?(o=(0,p.jsx)(ge,{kind:a.kind,method:a.method,testId:"api-operation-method"}),e[0]=a.kind,e[1]=a.method,e[2]=o):o=e[2];let i=a.functionPath??a.httpPath,d;e[3]!==i?(d=(0,p.jsx)("code",{className:"truncate font-mono text-xs text-muted-foreground",children:i}),e[3]=i,e[4]=d):d=e[4];let m;e[5]!==o||e[6]!==d?(m=(0,p.jsxs)("div",{className:"flex items-center gap-2",children:[o,d]}),e[5]=o,e[6]=d,e[7]=m):m=e[7];let l;e[8]!==a.title?(l=(0,p.jsx)("h1",{className:"text-lg font-semibold text-foreground","data-testid":"api-operation-title",children:a.title}),e[8]=a.title,e[9]=l):l=e[9];let c;e[10]!==a.description?(c=a.description!==void 0&&(0,p.jsx)("p",{className:"text-sm text-muted-foreground",children:a.description}),e[10]=a.description,e[11]=c):c=e[11];let f;e[12]!==m||e[13]!==l||e[14]!==c?(f=(0,p.jsxs)("header",{className:"sticky top-0 z-10 -mx-6 -mt-6 flex flex-col gap-2 border-b border-border bg-background px-6 pt-6 pb-3",children:[m,l,c]}),e[12]=m,e[13]=l,e[14]=c,e[15]=f):f=e[15];let h;e[16]!==r?(h=r("Try it"),e[16]=r,e[17]=h):h=e[17];let g;e[18]!==h?(g=(0,p.jsx)("h2",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:h}),e[18]=h,e[19]=g):g=e[19];let b;e[20]===Symbol.for("react.memo_cache_sentinel")?(b=(0,p.jsx)(St,{}),e[20]=b):b=e[20];let y;e[21]!==g?(y=(0,p.jsxs)("section",{className:"flex flex-col gap-2",children:[g,b]}),e[21]=g,e[22]=y):y=e[22];let N;e[23]!==r?(N=r("Request arguments"),e[23]=r,e[24]=N):N=e[24];let v;e[25]!==N?(v=(0,p.jsx)("h2",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:N}),e[25]=N,e[26]=v):v=e[26];let x;e[27]!==a.argsSchema?(x=(0,p.jsx)(Te,{schema:a.argsSchema,testId:"api-operation-args"}),e[27]=a.argsSchema,e[28]=x):x=e[28];let k;e[29]!==v||e[30]!==x?(k=(0,p.jsxs)("section",{className:"flex flex-col gap-2",children:[v,x]}),e[29]=v,e[30]=x,e[31]=k):k=e[31];let O;e[32]!==r?(O=r("Response body"),e[32]=r,e[33]=O):O=e[33];let C;e[34]!==O?(C=(0,p.jsx)("h2",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:O}),e[34]=O,e[35]=C):C=e[35];let w;if(e[36]!==a.responses||e[37]!==r){let I;e[39]!==r?(I=u($=>(0,p.jsxs)("div",{className:"flex flex-col gap-1.5 rounded-xl border border-border bg-card p-3",children:[(0,p.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,p.jsxs)("span",{className:`inline-flex items-center gap-1.5 font-mono text-xs font-semibold ${Ee($.status)}`,children:[(0,p.jsx)("span",{className:`size-1.5 rounded-full ${qe($.status)}`}),$.status]}),$.schema!==void 0&&(0,p.jsx)("span",{className:"rounded border border-border px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground",children:r("application/json")})]}),$.description!==void 0&&(0,p.jsx)("p",{className:"text-xs text-muted-foreground",children:$.description}),$.schema!==void 0&&(0,p.jsx)(Te,{schema:$.schema,testId:`api-response-${$.status}`})]},$.status),"C"),e[39]=r,e[40]=I):I=e[40],w=a.responses.map(I),e[36]=a.responses,e[37]=r,e[38]=w}else w=e[38];let S;e[41]!==C||e[42]!==w?(S=(0,p.jsxs)("section",{className:"flex flex-col gap-3",children:[C,w]}),e[41]=C,e[42]=w,e[43]=S):S=e[43];let P;return e[44]!==a.key||e[45]!==n||e[46]!==y||e[47]!==k||e[48]!==S||e[49]!==f?(P=(0,p.jsxs)("div",{className:"flex flex-col gap-6 duration-200 animate-in fade-in-0 slide-in-from-bottom-1","data-testid":n,children:[f,y,k,S]},s),e[44]=a.key,e[45]=n,e[46]=y,e[47]=k,e[48]=S,e[49]=f,e[50]=P):P=e[50],P},"Me"),It={boolean:"text-royal-amethyst",key:"text-sky-sapphire",number:"text-warning",plain:"",string:"text-success"},Ot=/"(?:[^"\\]|\\.)*"|\b(?:true|false|null)\b|-?\d+(?:\.\d+)?/g,Ct=/^\s*:/,Pt=u((t,e,a)=>a.startsWith('"')?Ct.test(t.slice(e))?"key":"string":a==="true"||a==="false"||a==="null"?"boolean":"number","We"),_t=u(t=>{let e=[],a=0;for(let r of t.matchAll(Ot)){let{index:n}=r,s=r[0],o=n+s.length;n>a&&e.push({kind:"plain",start:a,text:t.slice(a,n)}),e.push({kind:Pt(t,o,s),start:n,text:s}),a=o}return a<t.length&&e.push({kind:"plain",start:a,text:t.slice(a)}),e},"ze"),jt=u(t=>{let e=(0,L.c)(4),{code:a}=t,r;e[0]!==a?(r=_t(a).map(At),e[0]=a,e[1]=r):r=e[1];let n;return e[2]!==r?(n=(0,p.jsx)(p.Fragment,{children:r}),e[2]=r,e[3]=n):n=e[3],n},"He");function At(t){return(0,p.jsx)("span",{className:It[t.kind],children:t.text},t.start)}u(At,"Ge");var Le="__live__",Tt=u(t=>t.schema===void 0?"":JSON.stringify(Z(t.schema),void 0,2),"Ue"),Rt=u((t,e,a)=>a?t??"":e===void 0?"":JSON.stringify(e,void 0,2),"Ve"),Mt=u(t=>{let e=(0,L.c)(18),{active:a,running:r,showError:n}=t,s=E();if(r){let c;e[0]!==s?(c=s("Sending\u2026"),e[0]=s,e[1]=c):c=e[1];let f;return e[2]!==c?(f=(0,p.jsx)("p",{className:"px-3 py-3 text-xs text-muted-foreground","data-testid":"api-response-running",children:c}),e[2]=c,e[3]=f):f=e[3],f}if(a===void 0||a.body===""){let c;e[4]!==a?.live||e[5]!==s?(c=a?.live===!0?s("Send a request to see the response."):s("No example for this response."),e[4]=a?.live,e[5]=s,e[6]=c):c=e[6];let f;return e[7]!==c?(f=(0,p.jsx)("p",{className:"px-3 py-3 text-xs text-muted-foreground","data-testid":"api-response-idle",children:c}),e[7]=c,e[8]=f):f=e[8],f}let o=n&&"text-destructive",i;e[9]!==o?(i=fe("max-h-[28rem] overflow-auto px-3 py-3 font-mono text-xs",o),e[9]=o,e[10]=i):i=e[10];let d=n?"api-response-error":"api-response-body",m;e[11]!==a.body||e[12]!==n?(m=n?a.body:(0,p.jsx)(jt,{code:a.body}),e[11]=a.body,e[12]=n,e[13]=m):m=e[13];let l;return e[14]!==i||e[15]!==d||e[16]!==m?(l=(0,p.jsx)("pre",{className:i,"data-testid":d,children:m}),e[14]=i,e[15]=d,e[16]=m,e[17]=l):l=e[17],l},"Xe"),Et=u(({durationMs:t,error:e,failed:a,operation:r,ran:n,response:s,t:o})=>{let i=r.responses.map(d=>({body:Tt(d),durationMs:null,id:d.status,label:d.status,live:!1,status:d.status}));return n?[{body:Rt(e,s,a),durationMs:t,id:Le,label:o("Live"),live:!0,status:a?"error":"200"},...i]:i},"Qe"),qt=u(()=>{let t=(0,L.c)(19),e=E(),{durationMs:a,error:r,operation:n,response:s,status:o}=Be(),i=o==="running",d=o==="error",m=o==="success"||d,l=Et({durationMs:a,error:r,failed:d,operation:n,ran:m,response:s,t:e}),c=m?Le:l.find(Kt)?.id??l[0]?.id??"",[f,h]=(0,K.useState)(null),g=l.find(_=>_.id===(f??c))??l[0],b;t[0]===Symbol.for("react.memo_cache_sentinel")?(b=u(_=>{let{id:q}=_.currentTarget.dataset;q!==void 0&&h(q)},"p"),t[0]=b):b=t[0];let y=b,N=u(()=>{g!==void 0&&ae(g.body)},"O"),v=g?.live===!0?g.durationMs:null,x=g?.live===!0&&g.status==="error",k="flex min-h-0 flex-col rounded-xl border border-border bg-card",O="api-response-panel",C;t[1]!==e?(C=e("Response"),t[1]=e,t[2]=C):C=t[2];let w;t[3]!==C?(w=(0,p.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:C}),t[3]=C,t[4]=w):w=t[4];let S=v!==null&&(0,p.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:e("{ms} ms",{ms:v})}),P=g!==void 0&&g.body!==""&&(0,p.jsx)(D,{"aria-label":e("Copy"),"data-testid":"api-response-copy",onClick:N,size:"icon-xs",type:"button",variant:"ghost",children:(0,p.jsx)(oe,{icon:Ne,strokeWidth:2})}),I;t[5]!==S||t[6]!==P?(I=(0,p.jsxs)("div",{className:"flex items-center gap-2",children:[S,P]}),t[5]=S,t[6]=P,t[7]=I):I=t[7];let $;t[8]!==w||t[9]!==I?($=(0,p.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-border px-3 py-2",children:[w,I]}),t[8]=w,t[9]=I,t[10]=$):$=t[10];let j=l.length>0&&(0,p.jsx)("div",{className:"flex gap-1 overflow-x-auto border-b border-border px-2 py-1.5",role:"tablist",children:l.map(_=>{let q=_.id===g?.id;return(0,p.jsxs)("button",{"aria-selected":q,className:fe("inline-flex items-center gap-1.5 rounded px-2 py-0.5 font-mono text-xs transition-colors hover:text-foreground aria-selected:bg-muted aria-selected:font-medium",q?Ee(_.status):"text-muted-foreground"),"data-id":_.id,"data-testid":_.live?"api-response-tab-live":`api-response-tab-${_.status}`,onClick:y,role:"tab",type:"button",children:[(0,p.jsx)("span",{className:`size-1.5 rounded-full ${qe(_.status)}`}),_.label]},_.id)})}),T;t[11]!==g||t[12]!==i||t[13]!==x?(T=(0,p.jsx)(Mt,{active:g,running:i,showError:x}),t[11]=g,t[12]=i,t[13]=x,t[14]=T):T=t[14];let R;return t[15]!==T||t[16]!==$||t[17]!==j?(R=(0,p.jsxs)("div",{className:k,"data-testid":O,children:[$,j,T]}),t[15]=T,t[16]=$,t[17]=j,t[18]=R):R=t[18],R},"Ye");function Kt(t){return t.status.startsWith("2")}u(Kt,"Ze");var Bt=u((t,e)=>{let a=e.trim().toLowerCase();return a===""?t:t.map(r=>({...r,operations:r.operations.filter(n=>`${n.summary} ${n.operationId}`.toLowerCase().includes(a))})).filter(r=>r.operations.length>0)},"et"),me=u(t=>{let e=(0,L.c)(53),{model:a}=t,r=E(),n=a.groups[0]?.operations[0]?.key??"",[s,o]=(0,K.useState)(n),[i,d]=(0,K.useState)(""),m;e[0]!==n||e[1]!==a.operationByKey||e[2]!==s?(m=a.operationByKey.get(s)??a.operationByKey.get(n),e[0]=n,e[1]=a.operationByKey,e[2]=s,e[3]=m):m=e[3];let l=m,c,f,h,g,b,y,N,v,x,k;if(e[4]!==i||e[5]!==a.groups||e[6]!==a.server||e[7]!==l?.key||e[8]!==r){c=Bt(a.groups,i);let I;e[19]===Symbol.for("react.memo_cache_sentinel")?(I=u(M=>{let{key:W}=M.currentTarget.dataset;W!==void 0&&o(W)},"C"),e[19]=I):I=e[19];let $=I,j;e[20]===Symbol.for("react.memo_cache_sentinel")?(j=u(M=>{d(M.target.value)},"P"),e[20]=j):j=e[20];let T=j;f=a.server??"",x="grid min-h-0 flex-1 grid-cols-1 overflow-hidden lg:grid-cols-[16rem_minmax(0,1fr)_22rem]",k="api-reference",e[21]!==r?(b=r("API operations"),e[21]=r,e[22]=b):b=e[22],y="flex min-h-0 flex-col overflow-y-auto border-r border-border",N="api-reference-nav";let R;e[23]===Symbol.for("react.memo_cache_sentinel")?(R=(0,p.jsx)(oe,{className:"pointer-events-none absolute top-1/2 left-2 size-3.5 -translate-y-1/2 text-muted-foreground",icon:ke,strokeWidth:2}),e[23]=R):R=e[23];let _;e[24]!==r?(_=r("Filter operations"),e[24]=r,e[25]=_):_=e[25],e[26]!==i||e[27]!==_?(v=(0,p.jsx)("div",{className:"sticky top-0 z-10 border-b border-border bg-sidebar p-2",children:(0,p.jsxs)("div",{className:"relative",children:[R,(0,p.jsx)(ye,{className:"h-7 pl-7","data-testid":"api-filter",onChange:T,placeholder:_,value:i})]})}),e[26]=i,e[27]=_,e[28]=v):v=e[28],h="flex flex-col gap-4 p-2";let q;e[29]!==l?.key||e[30]!==r?(q=u(M=>(0,p.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,p.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,p.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:M.name||r("(root)")}),(0,p.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground/70",children:M.operations.length})]}),M.operations.map(W=>{let Q=W.key===l?.key;return(0,p.jsxs)("button",{"aria-current":Q?"page":void 0,className:"flex items-center justify-between gap-2 rounded-md border-l-2 border-transparent px-2 py-1 text-start text-xs text-muted-foreground transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground aria-[current=page]:border-primary aria-[current=page]:bg-sidebar-accent aria-[current=page]:font-medium aria-[current=page]:text-foreground","data-key":W.key,"data-testid":`api-nav-${W.operationId}`,onClick:$,type:"button",children:[(0,p.jsx)("span",{className:"truncate",children:W.summary}),(0,p.jsx)(ge,{kind:W.kind,method:W.method})]},W.key)})]},M.name),"B"),e[29]=l?.key,e[30]=r,e[31]=q):q=e[31],g=c.map(q),e[4]=i,e[5]=a.groups,e[6]=a.server,e[7]=l?.key,e[8]=r,e[9]=c,e[10]=f,e[11]=h,e[12]=g,e[13]=b,e[14]=y,e[15]=N,e[16]=v,e[17]=x,e[18]=k}else c=e[9],f=e[10],h=e[11],g=e[12],b=e[13],y=e[14],N=e[15],v=e[16],x=e[17],k=e[18];let O;e[32]!==c.length||e[33]!==r?(O=c.length===0&&(0,p.jsx)("p",{className:"px-2 py-1 text-xs text-muted-foreground","data-testid":"api-nav-empty",children:r("No operations match your filter.")}),e[32]=c.length,e[33]=r,e[34]=O):O=e[34];let C;e[35]!==O||e[36]!==h||e[37]!==g?(C=(0,p.jsxs)("div",{className:h,children:[g,O]}),e[35]=O,e[36]=h,e[37]=g,e[38]=C):C=e[38];let w;e[39]!==C||e[40]!==b||e[41]!==y||e[42]!==N||e[43]!==v?(w=(0,p.jsxs)("nav",{"aria-label":b,className:y,"data-testid":N,children:[v,C]}),e[39]=C,e[40]=b,e[41]=y,e[42]=N,e[43]=v,e[44]=w):w=e[44];let S;e[45]!==l||e[46]!==f?(S=l===void 0?(0,p.jsx)("div",{className:"lg:col-span-2"}):(0,p.jsxs)(wt,{operation:l,children:[(0,p.jsx)("div",{className:"min-w-0 overflow-y-auto p-6","data-testid":"api-reference-main",children:(0,p.jsx)($t,{operation:l})}),(0,p.jsxs)("aside",{className:"flex min-w-0 flex-col gap-4 overflow-y-auto border-border p-4 lg:border-l","data-testid":"api-reference-aside",children:[(0,p.jsx)(bt,{operation:l,server:f}),(0,p.jsx)(qt,{})]})]},l.key),e[45]=l,e[46]=f,e[47]=S):S=e[47];let P;return e[48]!==w||e[49]!==S||e[50]!==x||e[51]!==k?(P=(0,p.jsxs)("div",{className:x,"data-testid":k,children:[w,S]}),e[48]=w,e[49]=S,e[50]=x,e[51]=k,e[52]=P):P=e[52],P},"bt");var U=J(re(),1);var Lt=["get","post","put","patch","delete","head","options","trace"],ze=u(t=>t?.content?.["application/json"]?.schema,"y"),Jt=u((t,e)=>Object.entries(t.responses??{}).map(([a,r])=>{let n=r.$ref?.replace("#/components/responses/",""),s=n===void 0?r:e.components?.responses?.[n]??r;return{description:s.description,schema:ze(s),status:a}}),"j"),zt=u((t,e,a,r,n)=>{let s=ze(r.requestBody),o=s?.properties?.functionPath?.const,i=typeof o=="string"?o:void 0,d=i===void 0?s:s?.properties?.args,m=r.operationId??`${a} ${e}`;return{argsSchema:d,description:r.description,functionPath:i,httpPath:e,key:t,kind:r["x-lunora-function-kind"],method:a.toUpperCase(),operationId:m,requestSchema:s,responses:Jt(r,n),summary:r.summary??m,tags:r.tags??[],title:r.summary??m}},"b"),Wt=u(t=>{let e=[];for(let[a,r]of Object.entries(t.paths??{})){let n=a.includes("#")?a.slice(0,a.indexOf("#")):a;for(let s of Lt){let o=r[s];o!==void 0&&e.push(zt(a,n,s,o,t))}}return e},"x"),Dt=u(t=>{let e=t??{},a=Wt(e),r=new Map((e.tags??[]).map(i=>[i.name,i.description])),n=new Set,s=[],o=u(i=>{if(n.has(i))return;n.add(i);let d=a.filter(m=>(m.tags[0]??"")===i);d.length>0&&s.push({description:r.get(i),name:i,operations:d})},"l");for(let i of e.tags??[])o(i.name);for(let i of a)o(i.tags[0]??"");return{groups:s,operationByKey:new Map(a.map(i=>[i.key,i])),server:e.servers?.[0]?.url,title:e.info?.title??"API reference",version:e.info?.version}},"w"),Ft=u(t=>{let{paths:e}=t;return e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0},"R"),Ht=u(t=>{let e=t;return Ft(e)?{kind:"empty"}:{kind:"ready",spec:e}},"T"),We=u(t=>{let e=(0,Je.c)(23),{spec:a}=t,r=E(),n=H(),s;e[0]!==n?(s=u(()=>n.fetchOpenApi(),"n"),e[0]=n,e[1]=s):s=e[1];let o=pe(a,s,Ht),i;e[2]!==o.kind||e[3]!==o.spec?(i=o.kind==="ready"?Dt(o.spec):void 0,e[2]=o.kind,e[3]=o.spec,e[4]=i):i=e[4];let d=i;if(o.kind==="loading"){let l;return e[5]===Symbol.for("react.memo_cache_sentinel")?(l=(0,U.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"api-reference-loading",children:[(0,U.jsx)(V,{className:"h-8 w-48"}),(0,U.jsx)(V,{className:"h-64 w-full"})]}),e[5]=l):l=e[5],l}if(o.kind==="error"){let l;e[6]!==o.message||e[7]!==r?(l=r("Couldn't load the OpenAPI spec: {message}",{message:o.message}),e[6]=o.message,e[7]=r,e[8]=l):l=e[8];let c;e[9]!==r?(c=r("API reference unavailable"),e[9]=r,e[10]=c):c=e[10];let f;return e[11]!==l||e[12]!==c?(f=(0,U.jsx)(F,{description:l,testId:"api-reference-error",title:c}),e[11]=l,e[12]=c,e[13]=f):f=e[13],f}if(o.kind==="empty"||d===void 0){let l;e[14]!==r?(l=r("Run `lunora codegen` and wire `_generated/openapi.json` to the worker to render the API reference here."),e[14]=r,e[15]=l):l=e[15];let c;e[16]!==r?(c=r("No OpenAPI spec configured"),e[16]=r,e[17]=c):c=e[17];let f;return e[18]!==l||e[19]!==c?(f=(0,U.jsx)(F,{description:l,testId:"api-reference-empty",title:c}),e[18]=l,e[19]=c,e[20]=f):f=e[20],f}let m;return e[21]!==d?(m=(0,U.jsx)(me,{model:d}),e[21]=d,e[22]=m):m=e[22],m},"B");var De=J(te(),1);var G=J(re(),1);var Ut=u(t=>(t.params??[]).find(e=>e.name==="args")??(t.params??[])[0],"x"),Gt=u(t=>t["x-tags"]?.[0]?.name??(t.name.includes(":")?t.name.slice(0,t.name.indexOf(":")):""),"v"),Qt=u(t=>{let e=Ut(t)?.schema;return{argsSchema:e,description:t.description,functionPath:t.name,httpPath:"/_lunora/rpc",key:t.name,kind:t["x-lunora-function-kind"],method:"POST",operationId:t.name,requestSchema:e,responses:[{description:t.result?.name,schema:t.result?.schema,status:"200"}],summary:t.summary??t.name,tags:[Gt(t)],title:t.summary??t.name}},"w"),Vt=u(t=>{let e=t??{},a=(e.methods??[]).map(n=>Qt(n)),r=new Map;for(let n of a){let s=n.tags[0]??"",o=r.get(s)??[];o.push(n),r.set(s,o)}return{groups:[...r.entries()].map(([n,s])=>({name:n,operations:s.toSorted((o,i)=>o.operationId.localeCompare(i.operationId))})).toSorted((n,s)=>n.name.localeCompare(s.name)),operationByKey:new Map(a.map(n=>[n.key,n])),title:e.info?.title??"API reference",version:e.info?.version}},"I"),Xt=u(t=>t.methods===void 0||t.methods.length===0,"C"),Yt=u(t=>{let e=t;return Xt(e)?{kind:"empty"}:{kind:"ready",spec:e}},"N"),Fe=u(t=>{let e=(0,De.c)(23),{spec:a}=t,r=E(),n=H(),s;e[0]!==n?(s=u(()=>n.fetchOpenRpc(),"a"),e[0]=n,e[1]=s):s=e[1];let o=pe(a,s,Yt),i;e[2]!==o.kind||e[3]!==o.spec?(i=o.kind==="ready"?Vt(o.spec):void 0,e[2]=o.kind,e[3]=o.spec,e[4]=i):i=e[4];let d=i;if(o.kind==="loading"){let l;return e[5]===Symbol.for("react.memo_cache_sentinel")?(l=(0,G.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"openrpc-reference-loading",children:[(0,G.jsx)(V,{className:"h-8 w-48"}),(0,G.jsx)(V,{className:"h-64 w-full"})]}),e[5]=l):l=e[5],l}if(o.kind==="error"){let l;e[6]!==o.message||e[7]!==r?(l=r("Couldn't load the OpenRPC spec: {message}",{message:o.message}),e[6]=o.message,e[7]=r,e[8]=l):l=e[8];let c;e[9]!==r?(c=r("API reference unavailable"),e[9]=r,e[10]=c):c=e[10];let f;return e[11]!==l||e[12]!==c?(f=(0,G.jsx)(F,{description:l,testId:"openrpc-reference-error",title:c}),e[11]=l,e[12]=c,e[13]=f):f=e[13],f}if(o.kind==="empty"||d===void 0){let l;e[14]!==r?(l=r("Run `lunora codegen --api-spec openrpc` and wire `_generated/openrpc.json` to the worker to render the OpenRPC reference here."),e[14]=r,e[15]=l):l=e[15];let c;e[16]!==r?(c=r("No OpenRPC spec configured"),e[16]=r,e[17]=c):c=e[17];let f;return e[18]!==l||e[19]!==c?(f=(0,G.jsx)(F,{description:l,testId:"openrpc-reference-empty",title:c}),e[18]=l,e[19]=c,e[20]=f):f=e[20],f}let m;return e[21]!==d?(m=(0,G.jsx)(me,{model:d}),e[21]=d,e[22]=m):m=e[22],m},"T");var z=J(re(),1);var Zt=["reference","snippets"],er=["openapi","openrpc"],Wr=u(t=>{let e=(0,He.c)(51),{functions:a,initialShardKey:r,openApiSpec:n,openRpcSpec:s}=t,o=E(),[i,d]=(0,xe.useState)("reference"),[m,l]=(0,xe.useState)("openapi"),c;e[0]!==o?(c=o("Reference"),e[0]=o,e[1]=c):c=e[1];let f;e[2]!==o?(f=o("Snippets"),e[2]=o,e[3]=f):f=e[3];let h;e[4]!==c||e[5]!==f?(h={reference:c,snippets:f},e[4]=c,e[5]=f,e[6]=h):h=e[6];let g=h,b;e[7]!==o?(b=o("OpenAPI"),e[7]=o,e[8]=b):b=e[8];let y;e[9]!==o?(y=o("OpenRPC"),e[9]=o,e[10]=y):y=e[10];let N;e[11]!==b||e[12]!==y?(N={openapi:b,openrpc:y},e[11]=b,e[12]=y,e[13]=N):N=e[13];let v=N,x;e[14]===Symbol.for("react.memo_cache_sentinel")?(x=u(M=>{d(M.currentTarget.dataset.view)},"S"),e[14]=x):x=e[14];let k=x,O;e[15]===Symbol.for("react.memo_cache_sentinel")?(O=u(M=>{l(M.currentTarget.dataset.format)},"A"),e[15]=O):O=e[15];let C=O,w;e[16]!==o?(w=o("API view"),e[16]=o,e[17]=w):w=e[17];let S;e[18]!==i||e[19]!==g?(S=Zt.map(M=>(0,z.jsx)(D,{"aria-selected":i===M,"data-testid":`api-view-${M}`,"data-view":M,onClick:k,role:"tab",size:"sm",type:"button",variant:i===M?"default":"outline",children:g[M]},M)),e[18]=i,e[19]=g,e[20]=S):S=e[20];let P;e[21]!==S||e[22]!==w?(P=(0,z.jsx)("div",{"aria-label":w,className:"flex gap-1.5","data-testid":"api-view-toggle",role:"tablist",children:S}),e[21]=S,e[22]=w,e[23]=P):P=e[23];let I;e[24]!==m||e[25]!==v||e[26]!==o||e[27]!==i?(I=i==="reference"&&(0,z.jsx)("div",{"aria-label":o("API spec format"),className:"flex gap-1.5","data-testid":"api-format-toggle",role:"tablist",children:er.map(M=>(0,z.jsx)(D,{"aria-selected":m===M,"data-format":M,"data-testid":`api-format-${M}`,onClick:C,role:"tab",size:"sm",type:"button",variant:m===M?"default":"outline",children:v[M]},M))}),e[24]=m,e[25]=v,e[26]=o,e[27]=i,e[28]=I):I=e[28];let $;e[29]!==P||e[30]!==I?($=(0,z.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-3 border-b border-border px-6 py-3",children:[P,I]}),e[29]=P,e[30]=I,e[31]=$):$=e[31];let j;e[32]!==a||e[33]!==r||e[34]!==i?(j=i==="snippets"&&(0,z.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-6",children:(0,z.jsx)(Ae,{functions:a,initialShardKey:r})}),e[32]=a,e[33]=r,e[34]=i,e[35]=j):j=e[35];let T;e[36]!==m||e[37]!==n||e[38]!==i?(T=i==="reference"&&m==="openapi"&&(0,z.jsx)(We,{spec:n}),e[36]=m,e[37]=n,e[38]=i,e[39]=T):T=e[39];let R;e[40]!==m||e[41]!==s||e[42]!==i?(R=i==="reference"&&m==="openrpc"&&(0,z.jsx)(Fe,{spec:s}),e[40]=m,e[41]=s,e[42]=i,e[43]=R):R=e[43];let _;e[44]!==j||e[45]!==T||e[46]!==R?(_=(0,z.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:[j,T,R]}),e[44]=j,e[45]=T,e[46]=R,e[47]=_):_=e[47];let q;return e[48]!==$||e[49]!==_?(q=(0,z.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col","data-testid":"lunora-api-tab",children:[$,_]}),e[48]=$,e[49]=_,e[50]=q):q=e[50],q},"k");export{Wr as default};
@@ -1,4 +1,4 @@
1
- import{a as Yi,b as Ve,c as Ri,d as Je,e as Zi,f as xi,k as ji}from"./chunk-MBEIKVJH.js";import"./chunk-GIRZD3UB.js";import"./chunk-XJSWM47N.js";import"./chunk-EDHW2EEG.js";import"./chunk-ZSOLGJFC.js";import"./chunk-DUDQV6XJ.js";import{a as Ci}from"./chunk-M3NNNOD5.js";import"./chunk-VZCS5GXZ.js";import"./chunk-DKSLOJDQ.js";import"./chunk-MCLM2QJI.js";import"./chunk-DPNEFSEC.js";import"./chunk-TNKECJW4.js";import"./chunk-4YTSKL4R.js";import{a as Le}from"./chunk-VNTEQQPP.js";import{P as Xi}from"./chunk-AOAJGSYZ.js";import"./chunk-INQICZYC.js";import{a as zd}from"./chunk-TFMQSCGC.js";import{a as Gi}from"./chunk-BWEXJENB.js";import"./chunk-74ASA4WU.js";import"./chunk-XQS7KSHL.js";import"./chunk-SPDZUX4P.js";import"./chunk-7PIHTTND.js";import{b as Ke}from"./chunk-FLCK2WWQ.js";import"./chunk-F7JOSNAT.js";import"./chunk-VDW32UET.js";import"./chunk-YUWMB6EV.js";import{a as Hi,e as qi}from"./chunk-TBXK3FKP.js";import"./chunk-RCZTUWG3.js";import"./chunk-UANVABQG.js";import"./chunk-IYWVSMAY.js";import{a as Qi,d as je,p as pi}from"./chunk-6ZPTNC34.js";import{c as _i}from"./chunk-VYW2PAWC.js";import{a as c,b as vn,d as fu,e as Ni,f as Ad,g as Bi,i as xe}from"./chunk-R5ZTCHCE.js";var ri=vn(w=>{"use strict";function $e(l,t){var a=l.length;l.push(t);l:for(;0<a;){var u=a-1>>>1,n=l[u];if(0<dn(n,t))l[u]=t,l[a]=n,a=u;else break l}}c($e,"push");function wl(l){return l.length===0?null:l[0]}c(wl,"peek");function hn(l){if(l.length===0)return null;var t=l[0],a=l.pop();if(a!==t){l[0]=a;l:for(var u=0,n=l.length,e=n>>>1;u<e;){var f=2*(u+1)-1,i=l[f],m=f+1,y=l[m];if(0>dn(i,a))m<n&&0>dn(y,i)?(l[u]=y,l[m]=a,u=m):(l[u]=i,l[f]=a,u=f);else if(m<n&&0>dn(y,a))l[u]=y,l[m]=a,u=m;else break l}}return t}c(hn,"pop");function dn(l,t){var a=l.sortIndex-t.sortIndex;return a!==0?a:l.id-t.id}c(dn,"compare");w.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Vi=performance,w.unstable_now=function(){return Vi.now()}):(We=Date,Li=We.now(),w.unstable_now=function(){return We.now()-Li});var Vi,We,Li,tt=[],Et=[],Td=1,Ql=null,Sl=3,ke=!1,iu=!1,mu=!1,re=!1,Wi=typeof setTimeout=="function"?setTimeout:null,wi=typeof clearTimeout=="function"?clearTimeout:null,Ki=typeof setImmediate<"u"?setImmediate:null;function yn(l){for(var t=wl(Et);t!==null;){if(t.callback===null)hn(Et);else if(t.startTime<=l)hn(Et),t.sortIndex=t.expirationTime,$e(tt,t);else break;t=wl(Et)}}c(yn,"advanceTimers");function Ie(l){if(mu=!1,yn(l),!iu)if(wl(tt)!==null)iu=!0,ga||(ga=!0,oa());else{var t=wl(Et);t!==null&&Pe(Ie,t.startTime-l)}}c(Ie,"handleTimeout");var ga=!1,vu=-1,Fi=5,$i=-1;function ki(){return re?!0:!(w.unstable_now()-$i<Fi)}c(ki,"shouldYieldToHost");function we(){if(re=!1,ga){var l=w.unstable_now();$i=l;var t=!0;try{l:{iu=!1,mu&&(mu=!1,wi(vu),vu=-1),ke=!0;var a=Sl;try{t:{for(yn(l),Ql=wl(tt);Ql!==null&&!(Ql.expirationTime>l&&ki());){var u=Ql.callback;if(typeof u=="function"){Ql.callback=null,Sl=Ql.priorityLevel;var n=u(Ql.expirationTime<=l);if(l=w.unstable_now(),typeof n=="function"){Ql.callback=n,yn(l),t=!0;break t}Ql===wl(tt)&&hn(tt),yn(l)}else hn(tt);Ql=wl(tt)}if(Ql!==null)t=!0;else{var e=wl(Et);e!==null&&Pe(Ie,e.startTime-l),t=!1}}break l}finally{Ql=null,Sl=a,ke=!1}t=void 0}}finally{t?oa():ga=!1}}}c(we,"performWorkUntilDeadline");var oa;typeof Ki=="function"?oa=c(function(){Ki(we)},"schedulePerformWorkUntilDeadline"):typeof MessageChannel<"u"?(Fe=new MessageChannel,Ji=Fe.port2,Fe.port1.onmessage=we,oa=c(function(){Ji.postMessage(null)},"schedulePerformWorkUntilDeadline")):oa=c(function(){Wi(we,0)},"schedulePerformWorkUntilDeadline");var Fe,Ji;function Pe(l,t){vu=Wi(function(){l(w.unstable_now())},t)}c(Pe,"requestHostTimeout");w.unstable_IdlePriority=5;w.unstable_ImmediatePriority=1;w.unstable_LowPriority=4;w.unstable_NormalPriority=3;w.unstable_Profiling=null;w.unstable_UserBlockingPriority=2;w.unstable_cancelCallback=function(l){l.callback=null};w.unstable_forceFrameRate=function(l){0>l||125<l?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Fi=0<l?Math.floor(1e3/l):5};w.unstable_getCurrentPriorityLevel=function(){return Sl};w.unstable_next=function(l){switch(Sl){case 1:case 2:case 3:var t=3;break;default:t=Sl}var a=Sl;Sl=t;try{return l()}finally{Sl=a}};w.unstable_requestPaint=function(){re=!0};w.unstable_runWithPriority=function(l,t){switch(l){case 1:case 2:case 3:case 4:case 5:break;default:l=3}var a=Sl;Sl=l;try{return t()}finally{Sl=a}};w.unstable_scheduleCallback=function(l,t,a){var u=w.unstable_now();switch(typeof a=="object"&&a!==null?(a=a.delay,a=typeof a=="number"&&0<a?u+a:u):a=u,l){case 1:var n=-1;break;case 2:n=250;break;case 5:n=1073741823;break;case 4:n=1e4;break;default:n=5e3}return n=a+n,l={id:Td++,callback:t,priorityLevel:l,startTime:a,expirationTime:n,sortIndex:-1},a>u?(l.sortIndex=a,$e(Et,l),wl(tt)===null&&l===wl(Et)&&(mu?(wi(vu),vu=-1):mu=!0,Pe(Ie,a-u))):(l.sortIndex=n,$e(tt,l),iu||ke||(iu=!0,ga||(ga=!0,oa()))),l};w.unstable_shouldYield=ki;w.unstable_wrapCallback=function(l){var t=Sl;return function(){var a=Sl;Sl=t;try{return l.apply(this,arguments)}finally{Sl=a}}}});var Pi=vn((e2,Ii)=>{"use strict";Ii.exports=ri()});var dd=vn(Re=>{"use strict";var el=Pi(),U1=Ni(),Ed=zd();function z(l){var t="https://react.dev/errors/"+l;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var a=2;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a])}return"Minified React error #"+l+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}c(z,"formatProdErrorMessage");function D1(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}c(D1,"isValidContainer");function ku(l){var t=l,a=l;if(l.alternate)for(;t.return;)t=t.return;else{l=t;do t=l,(t.flags&4098)!==0&&(a=t.return),l=t.return;while(l)}return t.tag===3?a:null}c(ku,"getNearestMountedFiber");function _1(l){if(l.tag===13){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}c(_1,"getSuspenseInstanceFromFiber");function N1(l){if(l.tag===31){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}c(N1,"getActivityInstanceFromFiber");function l0(l){if(ku(l)!==l)throw Error(z(188))}c(l0,"assertIsMounted");function Md(l){var t=l.alternate;if(!t){if(t=ku(l),t===null)throw Error(z(188));return t!==l?null:l}for(var a=l,u=t;;){var n=a.return;if(n===null)break;var e=n.alternate;if(e===null){if(u=n.return,u!==null){a=u;continue}break}if(n.child===e.child){for(e=n.child;e;){if(e===a)return l0(n),l;if(e===u)return l0(n),t;e=e.sibling}throw Error(z(188))}if(a.return!==u.return)a=n,u=e;else{for(var f=!1,i=n.child;i;){if(i===a){f=!0,a=n,u=e;break}if(i===u){f=!0,u=n,a=e;break}i=i.sibling}if(!f){for(i=e.child;i;){if(i===a){f=!0,a=e,u=n;break}if(i===u){f=!0,u=e,a=n;break}i=i.sibling}if(!f)throw Error(z(189))}}if(a.alternate!==u)throw Error(z(190))}if(a.tag!==3)throw Error(z(188));return a.stateNode.current===a?l:t}c(Md,"findCurrentFiberUsingSlowPath");function H1(l){var t=l.tag;if(t===5||t===26||t===27||t===6)return l;for(l=l.child;l!==null;){if(t=H1(l),t!==null)return t;l=l.sibling}return null}c(H1,"findCurrentHostFiberImpl");var W=Object.assign,Od=Symbol.for("react.element"),Sn=Symbol.for("react.transitional.element"),su=Symbol.for("react.portal"),Ea=Symbol.for("react.fragment"),B1=Symbol.for("react.strict_mode"),Qc=Symbol.for("react.profiler"),q1=Symbol.for("react.consumer"),mt=Symbol.for("react.context"),Hf=Symbol.for("react.forward_ref"),Xc=Symbol.for("react.suspense"),Gc=Symbol.for("react.suspense_list"),Bf=Symbol.for("react.memo"),Mt=Symbol.for("react.lazy"),pc=Symbol.for("react.activity"),Ud=Symbol.for("react.memo_cache_sentinel"),t0=Symbol.iterator;function du(l){return l===null||typeof l!="object"?null:(l=t0&&l[t0]||l["@@iterator"],typeof l=="function"?l:null)}c(du,"getIteratorFn");var Dd=Symbol.for("react.client.reference");function Cc(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===Dd?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case Ea:return"Fragment";case Qc:return"Profiler";case B1:return"StrictMode";case Xc:return"Suspense";case Gc:return"SuspenseList";case pc:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case su:return"Portal";case mt:return l.displayName||"Context";case q1:return(l._context.displayName||"Context")+".Consumer";case Hf:var t=l.render;return l=l.displayName,l||(l=t.displayName||t.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case Bf:return t=l.displayName||null,t!==null?t:Cc(l.type)||"Memo";case Mt:t=l._payload,l=l._init;try{return Cc(l(t))}catch{}}return null}c(Cc,"getComponentNameFromType");var zu=Array.isArray,_=U1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,p=Ed.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,la={pending:!1,data:null,method:null,action:null},Rc=[],Ma=-1;function Il(l){return{current:l}}c(Il,"createCursor");function il(l){0>Ma||(l.current=Rc[Ma],Rc[Ma]=null,Ma--)}c(il,"pop");function L(l,t){Ma++,Rc[Ma]=l.current,l.current=t}c(L,"push");var rl=Il(null),pu=Il(null),Xt=Il(null),wn=Il(null);function Fn(l,t){switch(L(Xt,t),L(pu,l),L(rl,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?i1(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=i1(t),l=rv(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}il(rl),L(rl,l)}c(Fn,"pushHostContainer");function ja(){il(rl),il(pu),il(Xt)}c(ja,"popHostContainer");function Zc(l){l.memoizedState!==null&&L(wn,l);var t=rl.current,a=rv(t,l.type);t!==a&&(L(pu,l),L(rl,a))}c(Zc,"pushHostContext");function $n(l){pu.current===l&&(il(rl),il(pu)),wn.current===l&&(il(wn),wu._currentValue=la)}c($n,"popHostContext");var lc,a0;function kt(l){if(lc===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);lc=t&&t[1]||"",a0=-1<a.stack.indexOf(`
1
+ import{a as Yi,b as Ve,c as Ri,d as Je,e as Zi,f as xi,k as ji}from"./chunk-GPP4VSUO.js";import"./chunk-GIRZD3UB.js";import"./chunk-XJSWM47N.js";import"./chunk-EDHW2EEG.js";import"./chunk-ZSOLGJFC.js";import"./chunk-DUDQV6XJ.js";import{a as Ci}from"./chunk-M3NNNOD5.js";import"./chunk-VZCS5GXZ.js";import"./chunk-DKSLOJDQ.js";import"./chunk-MCLM2QJI.js";import"./chunk-DPNEFSEC.js";import"./chunk-TNKECJW4.js";import"./chunk-4YTSKL4R.js";import{a as Le}from"./chunk-VNTEQQPP.js";import{P as Xi}from"./chunk-AOAJGSYZ.js";import"./chunk-INQICZYC.js";import{a as zd}from"./chunk-TFMQSCGC.js";import{a as Gi}from"./chunk-BWEXJENB.js";import"./chunk-74ASA4WU.js";import"./chunk-XQS7KSHL.js";import"./chunk-SPDZUX4P.js";import"./chunk-7PIHTTND.js";import{b as Ke}from"./chunk-FLCK2WWQ.js";import"./chunk-F7JOSNAT.js";import"./chunk-VDW32UET.js";import"./chunk-YUWMB6EV.js";import{a as Hi,e as qi}from"./chunk-TBXK3FKP.js";import"./chunk-RCZTUWG3.js";import"./chunk-UANVABQG.js";import"./chunk-IYWVSMAY.js";import{a as Qi,d as je,p as pi}from"./chunk-6ZPTNC34.js";import{c as _i}from"./chunk-VYW2PAWC.js";import{a as c,b as vn,d as fu,e as Ni,f as Ad,g as Bi,i as xe}from"./chunk-R5ZTCHCE.js";var ri=vn(w=>{"use strict";function $e(l,t){var a=l.length;l.push(t);l:for(;0<a;){var u=a-1>>>1,n=l[u];if(0<dn(n,t))l[u]=t,l[a]=n,a=u;else break l}}c($e,"push");function wl(l){return l.length===0?null:l[0]}c(wl,"peek");function hn(l){if(l.length===0)return null;var t=l[0],a=l.pop();if(a!==t){l[0]=a;l:for(var u=0,n=l.length,e=n>>>1;u<e;){var f=2*(u+1)-1,i=l[f],m=f+1,y=l[m];if(0>dn(i,a))m<n&&0>dn(y,i)?(l[u]=y,l[m]=a,u=m):(l[u]=i,l[f]=a,u=f);else if(m<n&&0>dn(y,a))l[u]=y,l[m]=a,u=m;else break l}}return t}c(hn,"pop");function dn(l,t){var a=l.sortIndex-t.sortIndex;return a!==0?a:l.id-t.id}c(dn,"compare");w.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Vi=performance,w.unstable_now=function(){return Vi.now()}):(We=Date,Li=We.now(),w.unstable_now=function(){return We.now()-Li});var Vi,We,Li,tt=[],Et=[],Td=1,Ql=null,Sl=3,ke=!1,iu=!1,mu=!1,re=!1,Wi=typeof setTimeout=="function"?setTimeout:null,wi=typeof clearTimeout=="function"?clearTimeout:null,Ki=typeof setImmediate<"u"?setImmediate:null;function yn(l){for(var t=wl(Et);t!==null;){if(t.callback===null)hn(Et);else if(t.startTime<=l)hn(Et),t.sortIndex=t.expirationTime,$e(tt,t);else break;t=wl(Et)}}c(yn,"advanceTimers");function Ie(l){if(mu=!1,yn(l),!iu)if(wl(tt)!==null)iu=!0,ga||(ga=!0,oa());else{var t=wl(Et);t!==null&&Pe(Ie,t.startTime-l)}}c(Ie,"handleTimeout");var ga=!1,vu=-1,Fi=5,$i=-1;function ki(){return re?!0:!(w.unstable_now()-$i<Fi)}c(ki,"shouldYieldToHost");function we(){if(re=!1,ga){var l=w.unstable_now();$i=l;var t=!0;try{l:{iu=!1,mu&&(mu=!1,wi(vu),vu=-1),ke=!0;var a=Sl;try{t:{for(yn(l),Ql=wl(tt);Ql!==null&&!(Ql.expirationTime>l&&ki());){var u=Ql.callback;if(typeof u=="function"){Ql.callback=null,Sl=Ql.priorityLevel;var n=u(Ql.expirationTime<=l);if(l=w.unstable_now(),typeof n=="function"){Ql.callback=n,yn(l),t=!0;break t}Ql===wl(tt)&&hn(tt),yn(l)}else hn(tt);Ql=wl(tt)}if(Ql!==null)t=!0;else{var e=wl(Et);e!==null&&Pe(Ie,e.startTime-l),t=!1}}break l}finally{Ql=null,Sl=a,ke=!1}t=void 0}}finally{t?oa():ga=!1}}}c(we,"performWorkUntilDeadline");var oa;typeof Ki=="function"?oa=c(function(){Ki(we)},"schedulePerformWorkUntilDeadline"):typeof MessageChannel<"u"?(Fe=new MessageChannel,Ji=Fe.port2,Fe.port1.onmessage=we,oa=c(function(){Ji.postMessage(null)},"schedulePerformWorkUntilDeadline")):oa=c(function(){Wi(we,0)},"schedulePerformWorkUntilDeadline");var Fe,Ji;function Pe(l,t){vu=Wi(function(){l(w.unstable_now())},t)}c(Pe,"requestHostTimeout");w.unstable_IdlePriority=5;w.unstable_ImmediatePriority=1;w.unstable_LowPriority=4;w.unstable_NormalPriority=3;w.unstable_Profiling=null;w.unstable_UserBlockingPriority=2;w.unstable_cancelCallback=function(l){l.callback=null};w.unstable_forceFrameRate=function(l){0>l||125<l?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Fi=0<l?Math.floor(1e3/l):5};w.unstable_getCurrentPriorityLevel=function(){return Sl};w.unstable_next=function(l){switch(Sl){case 1:case 2:case 3:var t=3;break;default:t=Sl}var a=Sl;Sl=t;try{return l()}finally{Sl=a}};w.unstable_requestPaint=function(){re=!0};w.unstable_runWithPriority=function(l,t){switch(l){case 1:case 2:case 3:case 4:case 5:break;default:l=3}var a=Sl;Sl=l;try{return t()}finally{Sl=a}};w.unstable_scheduleCallback=function(l,t,a){var u=w.unstable_now();switch(typeof a=="object"&&a!==null?(a=a.delay,a=typeof a=="number"&&0<a?u+a:u):a=u,l){case 1:var n=-1;break;case 2:n=250;break;case 5:n=1073741823;break;case 4:n=1e4;break;default:n=5e3}return n=a+n,l={id:Td++,callback:t,priorityLevel:l,startTime:a,expirationTime:n,sortIndex:-1},a>u?(l.sortIndex=a,$e(Et,l),wl(tt)===null&&l===wl(Et)&&(mu?(wi(vu),vu=-1):mu=!0,Pe(Ie,a-u))):(l.sortIndex=n,$e(tt,l),iu||ke||(iu=!0,ga||(ga=!0,oa()))),l};w.unstable_shouldYield=ki;w.unstable_wrapCallback=function(l){var t=Sl;return function(){var a=Sl;Sl=t;try{return l.apply(this,arguments)}finally{Sl=a}}}});var Pi=vn((e2,Ii)=>{"use strict";Ii.exports=ri()});var dd=vn(Re=>{"use strict";var el=Pi(),U1=Ni(),Ed=zd();function z(l){var t="https://react.dev/errors/"+l;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var a=2;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a])}return"Minified React error #"+l+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}c(z,"formatProdErrorMessage");function D1(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}c(D1,"isValidContainer");function ku(l){var t=l,a=l;if(l.alternate)for(;t.return;)t=t.return;else{l=t;do t=l,(t.flags&4098)!==0&&(a=t.return),l=t.return;while(l)}return t.tag===3?a:null}c(ku,"getNearestMountedFiber");function _1(l){if(l.tag===13){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}c(_1,"getSuspenseInstanceFromFiber");function N1(l){if(l.tag===31){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}c(N1,"getActivityInstanceFromFiber");function l0(l){if(ku(l)!==l)throw Error(z(188))}c(l0,"assertIsMounted");function Md(l){var t=l.alternate;if(!t){if(t=ku(l),t===null)throw Error(z(188));return t!==l?null:l}for(var a=l,u=t;;){var n=a.return;if(n===null)break;var e=n.alternate;if(e===null){if(u=n.return,u!==null){a=u;continue}break}if(n.child===e.child){for(e=n.child;e;){if(e===a)return l0(n),l;if(e===u)return l0(n),t;e=e.sibling}throw Error(z(188))}if(a.return!==u.return)a=n,u=e;else{for(var f=!1,i=n.child;i;){if(i===a){f=!0,a=n,u=e;break}if(i===u){f=!0,u=n,a=e;break}i=i.sibling}if(!f){for(i=e.child;i;){if(i===a){f=!0,a=e,u=n;break}if(i===u){f=!0,u=e,a=n;break}i=i.sibling}if(!f)throw Error(z(189))}}if(a.alternate!==u)throw Error(z(190))}if(a.tag!==3)throw Error(z(188));return a.stateNode.current===a?l:t}c(Md,"findCurrentFiberUsingSlowPath");function H1(l){var t=l.tag;if(t===5||t===26||t===27||t===6)return l;for(l=l.child;l!==null;){if(t=H1(l),t!==null)return t;l=l.sibling}return null}c(H1,"findCurrentHostFiberImpl");var W=Object.assign,Od=Symbol.for("react.element"),Sn=Symbol.for("react.transitional.element"),su=Symbol.for("react.portal"),Ea=Symbol.for("react.fragment"),B1=Symbol.for("react.strict_mode"),Qc=Symbol.for("react.profiler"),q1=Symbol.for("react.consumer"),mt=Symbol.for("react.context"),Hf=Symbol.for("react.forward_ref"),Xc=Symbol.for("react.suspense"),Gc=Symbol.for("react.suspense_list"),Bf=Symbol.for("react.memo"),Mt=Symbol.for("react.lazy"),pc=Symbol.for("react.activity"),Ud=Symbol.for("react.memo_cache_sentinel"),t0=Symbol.iterator;function du(l){return l===null||typeof l!="object"?null:(l=t0&&l[t0]||l["@@iterator"],typeof l=="function"?l:null)}c(du,"getIteratorFn");var Dd=Symbol.for("react.client.reference");function Cc(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===Dd?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case Ea:return"Fragment";case Qc:return"Profiler";case B1:return"StrictMode";case Xc:return"Suspense";case Gc:return"SuspenseList";case pc:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case su:return"Portal";case mt:return l.displayName||"Context";case q1:return(l._context.displayName||"Context")+".Consumer";case Hf:var t=l.render;return l=l.displayName,l||(l=t.displayName||t.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case Bf:return t=l.displayName||null,t!==null?t:Cc(l.type)||"Memo";case Mt:t=l._payload,l=l._init;try{return Cc(l(t))}catch{}}return null}c(Cc,"getComponentNameFromType");var zu=Array.isArray,_=U1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,p=Ed.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,la={pending:!1,data:null,method:null,action:null},Rc=[],Ma=-1;function Il(l){return{current:l}}c(Il,"createCursor");function il(l){0>Ma||(l.current=Rc[Ma],Rc[Ma]=null,Ma--)}c(il,"pop");function L(l,t){Ma++,Rc[Ma]=l.current,l.current=t}c(L,"push");var rl=Il(null),pu=Il(null),Xt=Il(null),wn=Il(null);function Fn(l,t){switch(L(Xt,t),L(pu,l),L(rl,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?i1(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=i1(t),l=rv(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}il(rl),L(rl,l)}c(Fn,"pushHostContainer");function ja(){il(rl),il(pu),il(Xt)}c(ja,"popHostContainer");function Zc(l){l.memoizedState!==null&&L(wn,l);var t=rl.current,a=rv(t,l.type);t!==a&&(L(pu,l),L(rl,a))}c(Zc,"pushHostContext");function $n(l){pu.current===l&&(il(rl),il(pu)),wn.current===l&&(il(wn),wu._currentValue=la)}c($n,"popHostContext");var lc,a0;function kt(l){if(lc===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);lc=t&&t[1]||"",a0=-1<a.stack.indexOf(`
2
2
  at`)?" (<anonymous>)":-1<a.stack.indexOf("@")?"@unknown:0:0":""}return`
3
3
  `+lc+l+a0}c(kt,"describeBuiltInComponentFrame");var tc=!1;function ac(l,t){if(!l||tc)return"";tc=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var u={DetermineComponentFrameRoot:c(function(){try{if(t){var b=c(function(){throw Error()},"Fake");if(Object.defineProperty(b.prototype,"props",{set:c(function(){throw Error()},"set")}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(b,[])}catch(o){var S=o}Reflect.construct(l,[],b)}else{try{b.call()}catch(o){S=o}l.call(b.prototype)}}else{try{throw Error()}catch(o){S=o}(b=l())&&typeof b.catch=="function"&&b.catch(function(){})}}catch(o){if(o&&S&&typeof o.stack=="string")return[o.stack,S.stack]}return[null,null]},"DetermineComponentFrameRoot")};u.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(u.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(u.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var e=u.DetermineComponentFrameRoot(),f=e[0],i=e[1];if(f&&i){var m=f.split(`
4
4
  `),y=i.split(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/studio",
3
- "version": "1.0.0-alpha.110",
3
+ "version": "1.0.0-alpha.112",
4
4
  "description": "The Lunora Studio: a local admin UI for your schema, data, logs, and advisors",
5
5
  "keywords": [
6
6
  "admin-ui",
@@ -58,11 +58,11 @@
58
58
  "@hugeicons/react": "^1.1.9",
59
59
  "@lingui/core": "^6.6.0",
60
60
  "@lingui/message-utils": "^6.6.0",
61
- "@lunora/advisor": "1.0.0-alpha.81",
61
+ "@lunora/advisor": "1.0.0-alpha.82",
62
62
  "@lunora/bindings": "1.0.0-alpha.30",
63
- "@lunora/client": "1.0.0-alpha.51",
63
+ "@lunora/client": "1.0.0-alpha.52",
64
64
  "@lunora/errors": "1.0.0-alpha.22",
65
- "@lunora/react": "1.0.0-alpha.55",
65
+ "@lunora/react": "1.0.0-alpha.56",
66
66
  "@tanstack/react-query": "^5.101.4",
67
67
  "@tanstack/react-router": "^1.170.25",
68
68
  "@tanstack/react-table": "^8.21.3",
@@ -1,2 +0,0 @@
1
- import{c as O}from"react/compiler-runtime";import{useLunora as W}from"@lunora/react";import{useState as H,useEffect as X}from"react";import{B as G}from"./button-BOPLD1un.js";import{E as K}from"./empty-state-B939z6K2.js";import{useT as M}from"./DEFAULT_LOCALE-A1Yg5ORA.js";import{ADMIN_FUNCTIONS as Z}from"./ADMIN_FUNCTIONS-4aE59aDq.js";import{c as ee,d as te,g as le}from"./internal-CwaF9YNk.js";import{jsxs as R,jsx as u}from"react/jsx-runtime";const ae=ee(Z.listTables),ne=["react","client","cli"],ie=!1,se={action:"action",mutation:"mutation",query:"query"},Q=n=>{const e=n.indexOf(":");return e===-1?{file:"",fn:n}:{file:n.slice(0,e),fn:n.slice(e+1)}},U=({file:n,fn:e,kind:i})=>`await client.${se[i]}(api.${n}.${e}, { /* args */ });`,oe=n=>{const e=`api.${n.file}.${n.fn}`;switch(n.kind){case"action":return U(n);case"mutation":return`const ${n.fn} = useMutation(${e});`;default:return`const data = useQuery(${e}, { /* args */ });`}},ce=({file:n,fn:e})=>`lunora run ${n}:${e} --args '{ }'`,re=n=>["// Read rows",`const rows = await ctx.db.query("${n}").collect();`,"","// Insert a row",`const id = await ctx.db.insert("${n}", { /* fields */ });`,"","// Generated types",`type Row = Doc<"${n}">;`,`type RowId = Id<"${n}">;`].join(`
2
- `),de=(n,e)=>{switch(n){case"cli":return ce(e);case"client":return U(e);default:return oe(e)}},Y=n=>{const e=O(19),{code:i,label:s,testId:l}=n,a=M();let c;e[0]!==i?(c=()=>{le(i)},e[0]=i,e[1]=c):c=e[1];const m=c;let t;e[2]!==s?(t=u("span",{className:"text-xs font-medium text-muted-foreground",children:s}),e[2]=s,e[3]=t):t=e[3];const d=`${l}-copy`;let o;e[4]!==a?(o=a("Copy"),e[4]=a,e[5]=o):o=e[5];let f;e[6]!==m||e[7]!==d||e[8]!==o?(f=u(G,{"data-testid":d,onClick:m,size:"xs",type:"button",variant:"ghost",children:o}),e[6]=m,e[7]=d,e[8]=o,e[9]=f):f=e[9];let p;e[10]!==t||e[11]!==f?(p=R("div",{className:"flex items-center justify-between gap-2",children:[t,f]}),e[10]=t,e[11]=f,e[12]=p):p=e[12];let r;e[13]!==i||e[14]!==l?(r=u("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs","data-testid":l,children:i}),e[13]=i,e[14]=l,e[15]=r):r=e[15];let b;return e[16]!==p||e[17]!==r?(b=R("div",{className:"flex flex-col gap-1.5",children:[p,r]}),e[16]=p,e[17]=r,e[18]=b):b=e[18],b},fe=n=>{const e=O(50),{file:i,fn:s,kind:l}=n,a=M(),[c,m]=H("react");let t,d,o;if(e[0]!==i||e[1]!==s||e[2]!==l||e[3]!==a||e[4]!==c){const x={file:i,fn:s,kind:l};let I;e[8]!==a?(I=a("CLI"),e[8]=a,e[9]=I):I=e[9];let T;e[10]!==a?(T=a("Client"),e[10]=a,e[11]=T):T=e[11];let A;e[12]!==a?(A=a("React"),e[12]=a,e[13]=A):A=e[13];let C;e[14]!==I||e[15]!==T||e[16]!==A?(C={cli:I,client:T,react:A},e[14]=I,e[15]=T,e[16]=A,e[17]=C):C=e[17],o=C;let F;e[18]===Symbol.for("react.memo_cache_sentinel")?(F=D=>{m(D.currentTarget.dataset.tab)},e[18]=F):F=e[18],t=F,d=de(c,x),e[0]=i,e[1]=s,e[2]=l,e[3]=a,e[4]=c,e[5]=t,e[6]=d,e[7]=o}else t=e[5],d=e[6],o=e[7];const f=d,p=l==="action"&&c==="react"&&!ie,r=`api.${i}.${s}`;let b;e[19]!==r?(b=u("h2",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"api-fn-title",children:r}),e[19]=r,e[20]=b):b=e[20];let h;e[21]!==l||e[22]!==a?(h=a("Call this {kind} from your app.",{kind:l}),e[21]=l,e[22]=a,e[23]=h):h=e[23];let v;e[24]!==h?(v=u("p",{className:"text-xs text-muted-foreground",children:h}),e[24]=h,e[25]=v):v=e[25];let N;e[26]!==b||e[27]!==v?(N=R("div",{children:[b,v]}),e[26]=b,e[27]=v,e[28]=N):N=e[28];let y;e[29]!==a?(y=a("Snippet flavour"),e[29]=a,e[30]=y):y=e[30];let S;e[31]!==t||e[32]!==c||e[33]!==o?(S=ne.map(x=>u(G,{"aria-selected":c===x,"data-tab":x,"data-testid":`api-tab-${x}`,onClick:t,role:"tab",size:"xs",type:"button",variant:c===x?"default":"outline",children:o[x]},x)),e[31]=t,e[32]=c,e[33]=o,e[34]=S):S=e[34];let $;e[35]!==y||e[36]!==S?($=u("div",{"aria-label":y,className:"flex gap-1.5","data-testid":"api-tabs",role:"tablist",children:S}),e[35]=y,e[36]=S,e[37]=$):$=e[37];const B=o[c],E=`api-snippet-${c}`;let k;e[38]!==f||e[39]!==B||e[40]!==E?(k=u(Y,{code:f,label:B,testId:E}),e[38]=f,e[39]=B,e[40]=E,e[41]=k):k=e[41];let w;e[42]!==p||e[43]!==a?(w=p&&u("p",{className:"text-xs text-muted-foreground","data-testid":"api-action-note",children:a("Actions have no React hook — call them through the client.")}),e[42]=p,e[43]=a,e[44]=w):w=e[44];let _;return e[45]!==k||e[46]!==w||e[47]!==N||e[48]!==$?(_=R("div",{className:"flex flex-col gap-3","data-testid":"api-fn-doc",children:[N,$,k,w]}),e[45]=k,e[46]=w,e[47]=N,e[48]=$,e[49]=_):_=e[49],_},pe=n=>{const e=O(19),{name:i}=n,s=M();let l;e[0]!==i?(l=re(i),e[0]=i,e[1]=l):l=e[1];const a=l;let c;e[2]!==i?(c=u("h2",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"api-table-title",children:i}),e[2]=i,e[3]=c):c=e[3];let m;e[4]!==s?(m=s("Read and write this table through the typed data model."),e[4]=s,e[5]=m):m=e[5];let t;e[6]!==m?(t=u("p",{className:"text-xs text-muted-foreground",children:m}),e[6]=m,e[7]=t):t=e[7];let d;e[8]!==c||e[9]!==t?(d=R("div",{children:[c,t]}),e[8]=c,e[9]=t,e[10]=d):d=e[10];let o;e[11]!==s?(o=s("Data model"),e[11]=s,e[12]=o):o=e[12];let f;e[13]!==a||e[14]!==o?(f=u(Y,{code:a,label:o,testId:"api-snippet-table"}),e[13]=a,e[14]=o,e[15]=f):f=e[15];let p;return e[16]!==d||e[17]!==f?(p=R("div",{className:"flex flex-col gap-3","data-testid":"api-table-doc",children:[d,f]}),e[16]=d,e[17]=f,e[18]=p):p=e[18],p},z=n=>{const e=O(8),{active:i,label:s,onSelect:l,testId:a,value:c}=n;let m;e[0]!==l||e[1]!==c?(m=()=>{l(c)},e[0]=l,e[1]=c,e[2]=m):m=e[2];const t=m,d=i?"page":void 0;let o;return e[3]!==s||e[4]!==t||e[5]!==d||e[6]!==a?(o=u("button",{"aria-current":d,className:"w-full truncate rounded-md px-2 py-1 text-start font-mono text-xs text-muted-foreground outline-none transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:bg-sidebar-accent aria-[current=page]:bg-sidebar-accent aria-[current=page]:font-medium aria-[current=page]:text-foreground","data-testid":a,onClick:t,type:"button",children:s}),e[3]=s,e[4]=t,e[5]=d,e[6]=a,e[7]=o):o=e[7],o},ue=n=>{const e=new Map;for(const i of n){const{file:s,fn:l}=Q(i.path),a=e.get(s)??[];a.push({fn:l,kind:i.kind,path:i.path}),e.set(s,a)}return[...e.entries()].map(([i,s])=>({file:i,items:s.toSorted((l,a)=>l.fn.localeCompare(a.fn))})).toSorted((i,s)=>i.file.localeCompare(s.file))},we=n=>{const e=O(58),{functions:i,initialShardKey:s}=n,l=M(),a=W(),[c,m]=H(null),[t,d]=H(null);let o,f;e[0]!==a||e[1]!==s?(o=()=>{let C=!1;return a.query(ae,{},te(s??"")).then(F=>(C||m(F),F)).catch(()=>{C||m([])}),()=>{C=!0}},f=[a,s],e[0]=a,e[1]=s,e[2]=o,e[3]=f):(o=e[2],f=e[3]),X(o,f);let p,r,b,h,v,N,y,S,$,B;if(e[4]!==i||e[5]!==t||e[6]!==l||e[7]!==c){const C=i??[],F=ue(C),D=(c??[]).map(me).toSorted(be);let P;e[18]===Symbol.for("react.memo_cache_sentinel")?(P=g=>{d({kind:"fn",path:g})},e[18]=P):P=e[18];const J=P;let j;e[19]===Symbol.for("react.memo_cache_sentinel")?(j=g=>{d({kind:"table",name:g})},e[19]=j):j=e[19];const V=j;r=t?.kind==="fn"?C.find(g=>g.path===t.path):void 0,p=C.length>0||D.length>0,b=r===void 0?void 0:Q(r.path),$="grid min-h-0 gap-6 md:grid-cols-[16rem_minmax(0,1fr)]",B="lunora-api-docs",e[20]!==l?(h=l("API resources"),e[20]=l,e[21]=h):h=e[21],v="flex flex-col gap-4 overflow-y-auto",N="api-rail";let q;e[22]!==t||e[23]!==l?(q=g=>R("div",{className:"flex flex-col gap-1",children:[u("span",{className:"px-2 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:g.file||l("(root)")}),g.items.map(L=>u(z,{active:t?.kind==="fn"&&t.path===L.path,label:L.fn,onSelect:J,testId:`api-rail-fn-${L.path}`,value:L.path},L.path))]},g.file),e[22]=t,e[23]=l,e[24]=q):q=e[24],y=F.map(q),S=D.length>0&&R("div",{className:"flex flex-col gap-1",children:[u("span",{className:"px-2 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:l("Tables")}),D.map(g=>u(z,{active:t?.kind==="table"&&t.name===g,label:g,onSelect:V,testId:`api-rail-table-${g}`,value:g},g))]}),e[4]=i,e[5]=t,e[6]=l,e[7]=c,e[8]=p,e[9]=r,e[10]=b,e[11]=h,e[12]=v,e[13]=N,e[14]=y,e[15]=S,e[16]=$,e[17]=B}else p=e[8],r=e[9],b=e[10],h=e[11],v=e[12],N=e[13],y=e[14],S=e[15],$=e[16],B=e[17];let E;e[25]!==p||e[26]!==l?(E=!p&&u("p",{className:"px-2 text-xs text-muted-foreground","data-testid":"api-rail-empty",children:l("No functions or tables to document yet.")}),e[25]=p,e[26]=l,e[27]=E):E=e[27];let k;e[28]!==E||e[29]!==h||e[30]!==v||e[31]!==N||e[32]!==y||e[33]!==S?(k=R("nav",{"aria-label":h,className:v,"data-testid":N,children:[y,S,E]}),e[28]=E,e[29]=h,e[30]=v,e[31]=N,e[32]=y,e[33]=S,e[34]=k):k=e[34];let w;e[35]!==t||e[36]!==l?(w=t===null&&u(K,{description:l("Select a function or table to see how to call it from your app."),testId:"api-empty",title:l("API usage snippets")}),e[35]=t,e[36]=l,e[37]=w):w=e[37];let _;e[38]!==t?.kind||e[39]!==r||e[40]!==b?(_=t?.kind==="fn"&&r!==void 0&&b!==void 0&&u(fe,{file:b.file,fn:b.fn,kind:r.kind},r.path),e[38]=t?.kind,e[39]=r,e[40]=b,e[41]=_):_=e[41];let x;e[42]!==t?.kind||e[43]!==r||e[44]!==l?(x=t?.kind==="fn"&&r===void 0&&u(K,{testId:"api-empty",title:l("API usage snippets")}),e[42]=t?.kind,e[43]=r,e[44]=l,e[45]=x):x=e[45];let I;e[46]!==t?(I=t?.kind==="table"&&u(pe,{name:t.name}),e[46]=t,e[47]=I):I=e[47];let T;e[48]!==w||e[49]!==_||e[50]!==x||e[51]!==I?(T=R("div",{className:"min-w-0",children:[w,_,x,I]}),e[48]=w,e[49]=_,e[50]=x,e[51]=I,e[52]=T):T=e[52];let A;return e[53]!==k||e[54]!==T||e[55]!==$||e[56]!==B?(A=R("div",{className:$,"data-testid":B,children:[k,T]}),e[53]=k,e[54]=T,e[55]=$,e[56]=B,e[57]=A):A=e[57],A};function me(n){return n.name}function be(n,e){return n.localeCompare(e)}export{ie as REACT_HAS_ACTION_HOOK,ce as buildCliSnippet,U as buildClientSnippet,oe as buildReactSnippet,re as buildTableSnippet,we as default,Q as splitPath};
@@ -1,13 +0,0 @@
1
- import{a as Ce}from"./chunk-METRMDIQ.js";import{a as he}from"./chunk-NXXGISFB.js";import{d as Ne,f as ke,g as we,k as ne}from"./chunk-DKSLOJDQ.js";import{a as V}from"./chunk-MCLM2QJI.js";import{a as Ie}from"./chunk-6FWN26RH.js";import"./chunk-P52BY657.js";import"./chunk-VNTEQQPP.js";import{P as ye}from"./chunk-AOAJGSYZ.js";import"./chunk-TFMQSCGC.js";import{a as D}from"./chunk-BWEXJENB.js";import"./chunk-74ASA4WU.js";import"./chunk-XQS7KSHL.js";import{b as ve}from"./chunk-SPDZUX4P.js";import"./chunk-7PIHTTND.js";import{a as Oe}from"./chunk-VDW32UET.js";import{f as F}from"./chunk-TBXK3FKP.js";import"./chunk-RCZTUWG3.js";import{a as H}from"./chunk-UANVABQG.js";import{d as K,e as Se,f as se,g as ie,h as le,o as $e,q as ae}from"./chunk-6ZPTNC34.js";import{c as be}from"./chunk-VYW2PAWC.js";import{a as u,d as z,e as ue,f as te,g as re,i as fe}from"./chunk-R5ZTCHCE.js";var Ue=z(te(),1),xe=z(ue(),1);var Y=z(te(),1);var X=z(ue(),1);var j=z(re(),1);var Qe=se(Oe.listTables),Ve=["react","client","cli"],Xe=!1,Ye={action:"action",mutation:"mutation",query:"query"},_e=u(t=>{let e=t.indexOf(":");return e===-1?{file:"",fn:t}:{file:t.slice(0,e),fn:t.slice(e+1)}},"Q"),Ae=u(({file:t,fn:e,kind:a})=>`await client.${Ye[a]}(api.${t}.${e}, { /* args */ });`,"U"),Ze=u(t=>{let e=`api.${t.file}.${t.fn}`;switch(t.kind){case"action":return Ae(t);case"mutation":return`const ${t.fn} = useMutation(${e});`;default:return`const data = useQuery(${e}, { /* args */ });`}},"oe"),et=u(({file:t,fn:e})=>`lunora run ${t}:${e} --args '{ }'`,"ce"),tt=u(t=>["// Read rows",`const rows = await ctx.db.query("${t}").collect();`,"","// Insert a row",`const id = await ctx.db.insert("${t}", { /* fields */ });`,"","// Generated types",`type Row = Doc<"${t}">;`,`type RowId = Id<"${t}">;`].join(`
2
- `),"re"),rt=u((t,e)=>{switch(t){case"cli":return et(e);case"client":return Ae(e);default:return Ze(e)}},"de"),je=u(t=>{let e=(0,Y.c)(19),{code:a,label:r,testId:o}=t,s=K(),n;e[0]!==a?(n=u(()=>{ae(a)},"c"),e[0]=a,e[1]=n):n=e[1];let i=n,d;e[2]!==r?(d=(0,j.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:r}),e[2]=r,e[3]=d):d=e[3];let m=`${o}-copy`,l;e[4]!==s?(l=s("Copy"),e[4]=s,e[5]=l):l=e[5];let c;e[6]!==i||e[7]!==m||e[8]!==l?(c=(0,j.jsx)(D,{"data-testid":m,onClick:i,size:"xs",type:"button",variant:"ghost",children:l}),e[6]=i,e[7]=m,e[8]=l,e[9]=c):c=e[9];let f;e[10]!==d||e[11]!==c?(f=(0,j.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[d,c]}),e[10]=d,e[11]=c,e[12]=f):f=e[12];let g;e[13]!==a||e[14]!==o?(g=(0,j.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs","data-testid":o,children:a}),e[13]=a,e[14]=o,e[15]=g):g=e[15];let h;return e[16]!==f||e[17]!==g?(h=(0,j.jsxs)("div",{className:"flex flex-col gap-1.5",children:[f,g]}),e[16]=f,e[17]=g,e[18]=h):h=e[18],h},"Y"),at=u(t=>{let e=(0,Y.c)(50),{file:a,fn:r,kind:o}=t,s=K(),[n,i]=(0,X.useState)("react"),d,m,l;if(e[0]!==a||e[1]!==r||e[2]!==o||e[3]!==s||e[4]!==n){let $={file:a,fn:r,kind:o},S;e[8]!==s?(S=s("CLI"),e[8]=s,e[9]=S):S=e[9];let A;e[10]!==s?(A=s("Client"),e[10]=s,e[11]=A):A=e[11];let T;e[12]!==s?(T=s("React"),e[12]=s,e[13]=T):T=e[13];let R;e[14]!==S||e[15]!==A||e[16]!==T?(R={cli:S,client:A,react:T},e[14]=S,e[15]=A,e[16]=T,e[17]=R):R=e[17],l=R;let _;e[18]===Symbol.for("react.memo_cache_sentinel")?(_=u(M=>{i(M.currentTarget.dataset.tab)},"F"),e[18]=_):_=e[18],d=_,m=rt(n,$),e[0]=a,e[1]=r,e[2]=o,e[3]=s,e[4]=n,e[5]=d,e[6]=m,e[7]=l}else d=e[5],m=e[6],l=e[7];let c=m,f=o==="action"&&n==="react"&&!Xe,g=`api.${a}.${r}`,h;e[19]!==g?(h=(0,j.jsx)("h2",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"api-fn-title",children:g}),e[19]=g,e[20]=h):h=e[20];let b;e[21]!==o||e[22]!==s?(b=s("Call this {kind} from your app.",{kind:o}),e[21]=o,e[22]=s,e[23]=b):b=e[23];let y;e[24]!==b?(y=(0,j.jsx)("p",{className:"text-xs text-muted-foreground",children:b}),e[24]=b,e[25]=y):y=e[25];let N;e[26]!==h||e[27]!==y?(N=(0,j.jsxs)("div",{children:[h,y]}),e[26]=h,e[27]=y,e[28]=N):N=e[28];let v;e[29]!==s?(v=s("Snippet flavour"),e[29]=s,e[30]=v):v=e[30];let x;e[31]!==d||e[32]!==n||e[33]!==l?(x=Ve.map($=>(0,j.jsx)(D,{"aria-selected":n===$,"data-tab":$,"data-testid":`api-tab-${$}`,onClick:d,role:"tab",size:"xs",type:"button",variant:n===$?"default":"outline",children:l[$]},$)),e[31]=d,e[32]=n,e[33]=l,e[34]=x):x=e[34];let k;e[35]!==v||e[36]!==x?(k=(0,j.jsx)("div",{"aria-label":v,className:"flex gap-1.5","data-testid":"api-tabs",role:"tablist",children:x}),e[35]=v,e[36]=x,e[37]=k):k=e[37];let I=l[n],C=`api-snippet-${n}`,w;e[38]!==c||e[39]!==I||e[40]!==C?(w=(0,j.jsx)(je,{code:c,label:I,testId:C}),e[38]=c,e[39]=I,e[40]=C,e[41]=w):w=e[41];let O;e[42]!==f||e[43]!==s?(O=f&&(0,j.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"api-action-note",children:s("Actions have no React hook \u2014 call them through the client.")}),e[42]=f,e[43]=s,e[44]=O):O=e[44];let P;return e[45]!==w||e[46]!==O||e[47]!==N||e[48]!==k?(P=(0,j.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"api-fn-doc",children:[N,k,w,O]}),e[45]=w,e[46]=O,e[47]=N,e[48]=k,e[49]=P):P=e[49],P},"fe"),ot=u(t=>{let e=(0,Y.c)(19),{name:a}=t,r=K(),o;e[0]!==a?(o=tt(a),e[0]=a,e[1]=o):o=e[1];let s=o,n;e[2]!==a?(n=(0,j.jsx)("h2",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"api-table-title",children:a}),e[2]=a,e[3]=n):n=e[3];let i;e[4]!==r?(i=r("Read and write this table through the typed data model."),e[4]=r,e[5]=i):i=e[5];let d;e[6]!==i?(d=(0,j.jsx)("p",{className:"text-xs text-muted-foreground",children:i}),e[6]=i,e[7]=d):d=e[7];let m;e[8]!==n||e[9]!==d?(m=(0,j.jsxs)("div",{children:[n,d]}),e[8]=n,e[9]=d,e[10]=m):m=e[10];let l;e[11]!==r?(l=r("Data model"),e[11]=r,e[12]=l):l=e[12];let c;e[13]!==s||e[14]!==l?(c=(0,j.jsx)(je,{code:s,label:l,testId:"api-snippet-table"}),e[13]=s,e[14]=l,e[15]=c):c=e[15];let f;return e[16]!==m||e[17]!==c?(f=(0,j.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"api-table-doc",children:[m,c]}),e[16]=m,e[17]=c,e[18]=f):f=e[18],f},"pe"),Pe=u(t=>{let e=(0,Y.c)(8),{active:a,label:r,onSelect:o,testId:s,value:n}=t,i;e[0]!==o||e[1]!==n?(i=u(()=>{o(n)},"m"),e[0]=o,e[1]=n,e[2]=i):i=e[2];let d=i,m=a?"page":void 0,l;return e[3]!==r||e[4]!==d||e[5]!==m||e[6]!==s?(l=(0,j.jsx)("button",{"aria-current":m,className:"w-full truncate rounded-md px-2 py-1 text-start font-mono text-xs text-muted-foreground outline-none transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:bg-sidebar-accent aria-[current=page]:bg-sidebar-accent aria-[current=page]:font-medium aria-[current=page]:text-foreground","data-testid":s,onClick:d,type:"button",children:r}),e[3]=r,e[4]=d,e[5]=m,e[6]=s,e[7]=l):l=e[7],l},"z"),nt=u(t=>{let e=new Map;for(let a of t){let{file:r,fn:o}=_e(a.path),s=e.get(r)??[];s.push({fn:o,kind:a.kind,path:a.path}),e.set(r,s)}return[...e.entries()].map(([a,r])=>({file:a,items:r.toSorted((o,s)=>o.fn.localeCompare(s.fn))})).toSorted((a,r)=>a.file.localeCompare(r.file))},"ue"),Te=u(t=>{let e=(0,Y.c)(58),{functions:a,initialShardKey:r}=t,o=K(),s=F(),[n,i]=(0,X.useState)(null),[d,m]=(0,X.useState)(null),l,c;e[0]!==s||e[1]!==r?(l=u(()=>{let R=!1;return s.query(Qe,{},ie(r??"")).then(_=>(R||i(_),_)).catch(()=>{R||i([])}),()=>{R=!0}},"o"),c=[s,r],e[0]=s,e[1]=r,e[2]=l,e[3]=c):(l=e[2],c=e[3]),(0,X.useEffect)(l,c);let f,g,h,b,y,N,v,x,k,I;if(e[4]!==a||e[5]!==d||e[6]!==o||e[7]!==n){let R=a??[],_=nt(R),M=(n??[]).map(st).toSorted(it),E;e[18]===Symbol.for("react.memo_cache_sentinel")?(E=u(B=>{m({kind:"fn",path:B})},"P"),e[18]=E):E=e[18];let W=E,Q;e[19]===Symbol.for("react.memo_cache_sentinel")?(Q=u(B=>{m({kind:"table",name:B})},"j"),e[19]=Q):Q=e[19];let Ge=Q;g=d?.kind==="fn"?R.find(B=>B.path===d.path):void 0,f=R.length>0||M.length>0,h=g===void 0?void 0:_e(g.path),k="grid min-h-0 gap-6 md:grid-cols-[16rem_minmax(0,1fr)]",I="lunora-api-docs",e[20]!==o?(b=o("API resources"),e[20]=o,e[21]=b):b=e[21],y="flex flex-col gap-4 overflow-y-auto",N="api-rail";let oe;e[22]!==d||e[23]!==o?(oe=u(B=>(0,j.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,j.jsx)("span",{className:"px-2 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:B.file||o("(root)")}),B.items.map(ee=>(0,j.jsx)(Pe,{active:d?.kind==="fn"&&d.path===ee.path,label:ee.fn,onSelect:W,testId:`api-rail-fn-${ee.path}`,value:ee.path},ee.path))]},B.file),"q"),e[22]=d,e[23]=o,e[24]=oe):oe=e[24],v=_.map(oe),x=M.length>0&&(0,j.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,j.jsx)("span",{className:"px-2 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:o("Tables")}),M.map(B=>(0,j.jsx)(Pe,{active:d?.kind==="table"&&d.name===B,label:B,onSelect:Ge,testId:`api-rail-table-${B}`,value:B},B))]}),e[4]=a,e[5]=d,e[6]=o,e[7]=n,e[8]=f,e[9]=g,e[10]=h,e[11]=b,e[12]=y,e[13]=N,e[14]=v,e[15]=x,e[16]=k,e[17]=I}else f=e[8],g=e[9],h=e[10],b=e[11],y=e[12],N=e[13],v=e[14],x=e[15],k=e[16],I=e[17];let C;e[25]!==f||e[26]!==o?(C=!f&&(0,j.jsx)("p",{className:"px-2 text-xs text-muted-foreground","data-testid":"api-rail-empty",children:o("No functions or tables to document yet.")}),e[25]=f,e[26]=o,e[27]=C):C=e[27];let w;e[28]!==C||e[29]!==b||e[30]!==y||e[31]!==N||e[32]!==v||e[33]!==x?(w=(0,j.jsxs)("nav",{"aria-label":b,className:y,"data-testid":N,children:[v,x,C]}),e[28]=C,e[29]=b,e[30]=y,e[31]=N,e[32]=v,e[33]=x,e[34]=w):w=e[34];let O;e[35]!==d||e[36]!==o?(O=d===null&&(0,j.jsx)(H,{description:o("Select a function or table to see how to call it from your app."),testId:"api-empty",title:o("API usage snippets")}),e[35]=d,e[36]=o,e[37]=O):O=e[37];let P;e[38]!==d?.kind||e[39]!==g||e[40]!==h?(P=d?.kind==="fn"&&g!==void 0&&h!==void 0&&(0,j.jsx)(at,{file:h.file,fn:h.fn,kind:g.kind},g.path),e[38]=d?.kind,e[39]=g,e[40]=h,e[41]=P):P=e[41];let $;e[42]!==d?.kind||e[43]!==g||e[44]!==o?($=d?.kind==="fn"&&g===void 0&&(0,j.jsx)(H,{testId:"api-empty",title:o("API usage snippets")}),e[42]=d?.kind,e[43]=g,e[44]=o,e[45]=$):$=e[45];let S;e[46]!==d?(S=d?.kind==="table"&&(0,j.jsx)(ot,{name:d.name}),e[46]=d,e[47]=S):S=e[47];let A;e[48]!==O||e[49]!==P||e[50]!==$||e[51]!==S?(A=(0,j.jsxs)("div",{className:"min-w-0",children:[O,P,$,S]}),e[48]=O,e[49]=P,e[50]=$,e[51]=S,e[52]=A):A=e[52];let T;return e[53]!==w||e[54]!==A||e[55]!==k||e[56]!==I?(T=(0,j.jsxs)("div",{className:k,"data-testid":I,children:[w,A]}),e[53]=w,e[54]=A,e[55]=k,e[56]=I,e[57]=T):T=e[57],T},"we");function st(t){return t.name}u(st,"me");function it(t,e){return t.localeCompare(e)}u(it,"be");var Le=z(te(),1);var J=z(te(),1),q=z(ue(),1);var p=z(re(),1);var pe=u(function(t,e,a){let r=(0,J.c)(10),o;r[0]===Symbol.for("react.memo_cache_sentinel")?(o={kind:"loading"},r[0]=o):o=r[0];let[s,n]=(0,q.useState)(o),i,d;r[1]!==a||r[2]!==e||r[3]!==t?(i=u(()=>{if(t!==void 0)return;let l=!1;return e().then(c=>(l||n(a(c)),c)).catch(c=>{l||n({kind:"error",message:le(c)})}),()=>{l=!0}},"a"),d=[a,e,t],r[1]=a,r[2]=e,r[3]=t,r[4]=i,r[5]=d):(i=r[4],d=r[5]),(0,q.useEffect)(i,d);let m;return r[6]!==a||r[7]!==s||r[8]!==t?(m=t===void 0?s:a(t),r[6]=a,r[7]=s,r[8]=t,r[9]=m):m=r[9],m},"xt"),lt=u(t=>typeof t=="number"?"number":typeof t=="boolean"?"boolean":"string","ke"),Ee=u(t=>{if(t.enum!==void 0&&t.enum.length>0)return t.enum;if(t.anyOf!==void 0&&t.anyOf.length>0&&t.anyOf.every(e=>e.const!==void 0))return t.anyOf.map(e=>e.const)},"Q"),ce=u(t=>t===void 0?"any":t.const!==void 0?JSON.stringify(t.const):t.enum!==void 0&&t.enum.length>0?t.enum.map(e=>JSON.stringify(e)).join(" | "):t.anyOf!==void 0&&t.anyOf.length>0?t.anyOf.map(e=>ce(e)).join(" | "):t.type==="array"?`array<${ce(t.items)}>`:t.type??"any","F"),dt=u(t=>{let e=Ee(t);return e!==void 0?t.type??lt(e[0]):ce(t)},"Se"),ct=u(t=>{let e=Ee(t);return e===void 0?void 0:e.map(a=>JSON.stringify(a)).join(" | ")},"we"),pt=u(t=>{let e=[];t.minimum!==void 0?e.push(`${String(t.minimum)} \u2264`):t.exclusiveMinimum!==void 0&&e.push(`${String(t.exclusiveMinimum)} <`);let a=e.length>0;e.push("value"),t.maximum!==void 0?e.push(`\u2264 ${String(t.maximum)}`):t.exclusiveMaximum!==void 0&&e.push(`< ${String(t.exclusiveMaximum)}`);let r=e.length>(a?2:1);return a||r?e.join(" "):void 0},"Oe"),mt=u(t=>{if(t.type==="object"&&t.properties!==void 0)return t;if(t.type==="array"&&t.items?.type==="object"&&t.items.properties!==void 0)return t.items},"$e"),Z=u(t=>{if(t===void 0)return null;if(t.const!==void 0)return t.const;if(t.enum!==void 0&&t.enum.length>0)return t.enum[0];if(t.anyOf!==void 0&&t.anyOf.length>0)return Z(t.anyOf[0]);switch(t.type){case"array":return[];case"boolean":return!1;case"number":return 0;case"object":{let e={};for(let[a,r]of Object.entries(t.properties??{}))e[a]=Z(r);return e}case"string":return"";default:return null}},"M"),de=u(t=>{let e=(0,J.c)(7),{label:a,value:r}=t,o;e[0]!==a?(o=(0,p.jsx)("span",{className:"text-muted-foreground",children:a}),e[0]=a,e[1]=o):o=e[1];let s;e[2]!==r?(s=(0,p.jsx)("span",{className:"text-foreground",children:r}),e[2]=r,e[3]=s):s=e[3];let n;return e[4]!==o||e[5]!==s?(n=(0,p.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-border px-1.5 py-0.5 font-mono text-[10px]",children:[o,s]}),e[4]=o,e[5]=s,e[6]=n):n=e[6],n},"D"),ut=u(t=>{let e=(0,J.c)(40),{name:a,required:r,schema:o}=t,s=K(),n;e[0]!==o?(n=pt(o),e[0]=o,e[1]=n):n=e[1];let i=n,d;e[2]!==o?(d=ct(o),e[2]=o,e[3]=d):d=e[3];let m=d,l=o["x-lunora-table"],c=o.format!==void 0||i!==void 0||m!==void 0||l!==void 0,f;e[4]!==o?(f=mt(o),e[4]=o,e[5]=f):f=e[5];let g=f,h=r?"*":"?",b;e[6]!==h?(b=(0,p.jsx)("span",{className:"text-muted-foreground",children:h}),e[6]=h,e[7]=b):b=e[7];let y;e[8]!==a||e[9]!==b?(y=(0,p.jsxs)("span",{className:"font-mono text-foreground",children:[a,b]}),e[8]=a,e[9]=b,e[10]=y):y=e[10];let N;e[11]!==o?(N=dt(o),e[11]=o,e[12]=N):N=e[12];let v;e[13]!==N?(v=(0,p.jsx)("span",{className:"font-mono text-muted-foreground",children:N}),e[13]=N,e[14]=v):v=e[14];let x;e[15]!==y||e[16]!==v?(x=(0,p.jsxs)("div",{className:"flex items-baseline gap-2",children:[y,v]}),e[15]=y,e[16]=v,e[17]=x):x=e[17];let k;e[18]!==o.description?(k=o.description!==void 0&&(0,p.jsx)("p",{className:"max-w-prose text-muted-foreground",children:o.description}),e[18]=o.description,e[19]=k):k=e[19];let I;e[20]!==c||e[21]!==i||e[22]!==l||e[23]!==o.format||e[24]!==s||e[25]!==m?(I=c&&(0,p.jsxs)("div",{className:"flex flex-wrap gap-1",children:[o.format!==void 0&&(0,p.jsx)(de,{label:s("Format"),value:o.format}),i!==void 0&&(0,p.jsx)(de,{label:s("Range"),value:i}),m!==void 0&&(0,p.jsx)(de,{label:s("Value in"),value:m}),l!==void 0&&(0,p.jsx)(de,{label:s("relation"),value:l})]}),e[20]=c,e[21]=i,e[22]=l,e[23]=o.format,e[24]=s,e[25]=m,e[26]=I):I=e[26];let C;e[27]!==k||e[28]!==I||e[29]!==x?(C=(0,p.jsxs)("div",{className:"flex flex-col gap-1 py-2",children:[x,k,I]}),e[27]=k,e[28]=I,e[29]=x,e[30]=C):C=e[30];let w=C;if(g===void 0){let S;return e[31]!==w?(S=(0,p.jsx)("div",{className:"border-b border-border/50 last:border-b-0",children:w}),e[31]=w,e[32]=S):S=e[32],S}let O;e[33]!==w?(O=(0,p.jsx)("summary",{className:"cursor-pointer marker:text-muted-foreground",children:w}),e[33]=w,e[34]=O):O=e[34];let P;e[35]!==g?(P=(0,p.jsx)("div",{className:"mb-2 ml-2 border-l border-border pl-3",children:(0,p.jsx)(Me,{schema:g})}),e[35]=g,e[36]=P):P=e[36];let $;return e[37]!==O||e[38]!==P?($=(0,p.jsxs)("details",{className:"border-b border-border/50 last:border-b-0",children:[O,P]}),e[37]=O,e[38]=P,e[39]=$):$=e[39],$},"Te"),Me=u(t=>{let e=(0,J.c)(7),{schema:a}=t,r;e[0]!==a.required?(r=new Set(a.required),e[0]=a.required,e[1]=r):r=e[1];let o=r,s;e[2]!==a.properties?(s=Object.entries(a.properties??{}),e[2]=a.properties,e[3]=s):s=e[3];let n=s,i;return e[4]!==o||e[5]!==n?(i=(0,p.jsx)("div",{className:"flex flex-col",children:n.map(d=>{let[m,l]=d;return(0,p.jsx)(ut,{name:m,required:o.has(m),schema:l},m)})}),e[4]=o,e[5]=n,e[6]=i):i=e[6],i},"Y"),Re=u(t=>{let e=(0,J.c)(10),{schema:a,testId:r}=t;if(a?.type!=="object"||Object.keys(a.properties??{}).length===0){let n;e[0]!==a?(n=ce(a),e[0]=a,e[1]=n):n=e[1];let i;return e[2]!==n||e[3]!==r?(i=(0,p.jsx)("p",{className:"font-mono text-xs text-muted-foreground","data-testid":r,children:n}),e[2]=n,e[3]=r,e[4]=i):i=e[4],i}let o;e[5]!==a?(o=(0,p.jsx)(Me,{schema:a}),e[5]=a,e[6]=o):o=e[6];let s;return e[7]!==o||e[8]!==r?(s=(0,p.jsx)("div",{className:"text-xs","data-testid":r,children:o}),e[7]=o,e[8]=r,e[9]=s):s=e[9],s},"U"),ft=["curl","javascript","lunora"],ht={lunora:"Lunora",curl:"cURL",javascript:"JavaScript"},gt=u(t=>`api.${t.replaceAll(/[/:]/g,".")}`,"Ee"),xt=u(t=>{let e=Z(t.argsSchema)??{};return t.functionPath===void 0?e:{args:e,functionPath:t.functionPath}},"Pe"),bt=u((t,e,a)=>{let r=`${a}${e.httpPath}`,o=JSON.stringify(xt(e),void 0,2),s=JSON.stringify(Z(e.argsSchema)??{},void 0,2);switch(t){case"curl":{let n=e.method!=="GET"&&e.method!=="HEAD",i=[`curl -X ${e.method} ${JSON.stringify(r)}`];return n&&i.push(' -H "Content-Type: application/json"',` -d '${o}'`),i.join(` \\
3
- `)}case"lunora":return e.functionPath===void 0?`await fetch(${JSON.stringify(e.httpPath)}, { method: ${JSON.stringify(e.method)} });`:`import { useLunora } from "@lunora/react";
4
- import { api } from "./_generated/api";
5
-
6
- const client = useLunora();
7
- await client.${e.kind??"query"}(${gt(e.functionPath)}, ${s});`;default:{let n=e.method!=="GET"&&e.method!=="HEAD"?`{
8
- method: ${JSON.stringify(e.method)},
9
- headers: { "Content-Type": "application/json" },
10
- body: JSON.stringify(${o}),
11
- }`:`{ method: ${JSON.stringify(e.method)} }`;return`const response = await fetch(${JSON.stringify(r)}, ${n});
12
- const data = await response.json();`}}},"Ae"),vt=u(t=>{let e=(0,J.c)(24),{operation:a,server:r}=t,o=K(),[s,n]=(0,q.useState)("curl"),i;e[0]!==a||e[1]!==s||e[2]!==r?(i=bt(s,a,r),e[0]=a,e[1]=s,e[2]=r,e[3]=i):i=e[3];let d=i,m;e[4]!==d?(m=u(()=>{ae(d)},"d"),e[4]=d,e[5]=m):m=e[5];let l=m,c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=u(k=>{n(k.currentTarget.dataset.sample)},"u"),e[6]=c):c=e[6];let f=c,g;e[7]!==s?(g=ft.map(k=>(0,p.jsx)("button",{"aria-selected":s===k,className:"rounded px-2 py-0.5 text-xs text-muted-foreground transition-colors hover:text-foreground aria-selected:bg-muted aria-selected:font-medium aria-selected:text-foreground","data-sample":k,"data-testid":`api-sample-${k}`,onClick:f,role:"tab",type:"button",children:ht[k]},k)),e[7]=s,e[8]=g):g=e[8];let h;e[9]!==g?(h=(0,p.jsx)("div",{className:"flex gap-1",role:"tablist",children:g}),e[9]=g,e[10]=h):h=e[10];let b;e[11]!==o?(b=o("Copy"),e[11]=o,e[12]=b):b=e[12];let y;e[13]!==l||e[14]!==b?(y=(0,p.jsx)(D,{"data-testid":"api-sample-copy",onClick:l,size:"xs",type:"button",variant:"ghost",children:b}),e[13]=l,e[14]=b,e[15]=y):y=e[15];let N;e[16]!==h||e[17]!==y?(N=(0,p.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-border px-3 py-2",children:[h,y]}),e[16]=h,e[17]=y,e[18]=N):N=e[18];let v;e[19]!==d?(v=(0,p.jsx)("pre",{className:"overflow-auto px-3 pb-3 font-mono text-xs","data-testid":"api-sample-source",children:d}),e[19]=d,e[20]=v):v=e[20];let x;return e[21]!==N||e[22]!==v?(x=(0,p.jsxs)("div",{className:"flex flex-col gap-2 rounded-xl border border-border bg-card","data-testid":"api-code-samples",children:[N,v]}),e[21]=N,e[22]=v,e[23]=x):x=e[23],x},"Ie"),yt={blue:"text-info",emerald:"text-success",neutral:"text-muted-foreground",orange:"text-warning",red:"text-destructive",violet:"text-royal-amethyst"},Nt=u(t=>{switch(t.toUpperCase()){case"DELETE":return"red";case"GET":return"emerald";case"PATCH":return"orange";case"POST":return"blue";case"PUT":return"orange";default:return"neutral"}},"Re"),kt=u(t=>{switch(t){case"action":return"violet";case"mutation":return"orange";case"query":return"emerald";default:return"neutral"}},"Be"),ge=u(t=>{let e=(0,J.c)(7),{kind:a,method:r,testId:o}=t,s;e[0]!==a||e[1]!==r?(s=a??r.toUpperCase(),e[0]=a,e[1]=r,e[2]=s):s=e[2];let n=s,i=a===void 0?Nt(r):kt(a),d=`${yt[i]} font-mono text-[10px] tracking-wide uppercase`,m;return e[3]!==n||e[4]!==d||e[5]!==o?(m=(0,p.jsx)(ve,{className:d,"data-testid":o,variant:"ghost",children:n}),e[3]=n,e[4]=d,e[5]=o,e[6]=m):m=e[6],m},"H"),Ke=u(t=>t.startsWith("2")?"text-emerald-600 dark:text-emerald-400":t==="default"||t.startsWith("4")||t.startsWith("5")?"text-red-600 dark:text-red-400":"text-muted-foreground","Z"),qe=u(t=>t.startsWith("2")?"bg-emerald-500":t==="default"||t.startsWith("4")||t.startsWith("5")?"bg-red-500":"bg-muted-foreground","ee"),wt=u(t=>JSON.stringify(Z(t.argsSchema)??{},void 0,2),"Je"),Be=(0,q.createContext)(null),Je=u(()=>{let t=(0,q.use)(Be);if(t===null)throw new be("INTERNAL","useOperationRun must be used within an OperationRunProvider");return t},"re"),St=u(({children:t,operation:e})=>{let a=K(),r=F(),[o,s]=(0,q.useState)(()=>wt(e)),[n,i]=(0,q.useState)(""),[d,m]=(0,q.useState)("idle"),[l,c]=(0,q.useState)(void 0),[f,g]=(0,q.useState)(null),[h,b]=(0,q.useState)(null),y=u(async()=>{let N;try{N=o.trim()===""?{}:JSON.parse(o)}catch(x){m("error"),c(void 0),b(null),g(a("Invalid JSON args: {message}",{message:le(x)}));return}m("running"),g(null);let v=performance.now();try{let x;if(e.functionPath===void 0){let k=e.method!=="GET"&&e.method!=="HEAD",I=await(await fetch(e.httpPath,{body:k?JSON.stringify(N):void 0,headers:k?{"content-type":"application/json"}:void 0,method:e.method})).text();try{x=JSON.parse(I)}catch{x=I}}else x=await Se(r,e.kind,se(e.functionPath),N,ie(n));c(x),b(Math.round(performance.now()-v)),m("success")}catch(x){c(void 0),b(Math.round(performance.now()-v)),g(le(x)),m("error")}},"y");return(0,p.jsx)(Be,{value:{argsText:o,durationMs:h,error:f,operation:e,response:l,send:u(()=>{$e(y())},"send"),setArgsText:s,setShardKey:i,shardKey:n,status:d},children:t})},"_e"),$t=u(()=>{let t=(0,J.c)(48),e=K(),{argsText:a,operation:r,send:o,setArgsText:s,setShardKey:n,shardKey:i,status:d}=Je(),m;t[0]!==s?(m=u(_=>{s(_.target.value)},"d"),t[0]=s,t[1]=m):m=t[1];let l=m,c;t[2]!==o?(c=u(_=>{_.key==="Enter"&&(_.metaKey||_.ctrlKey)&&(_.preventDefault(),o())},"u"),t[2]=o,t[3]=c):c=t[3];let f=c,g=d==="running",h;t[4]!==r.kind||t[5]!==r.method?(h=(0,p.jsx)(ge,{kind:r.kind,method:r.method,testId:"api-try-method"}),t[4]=r.kind,t[5]=r.method,t[6]=h):h=t[6];let b=r.functionPath??r.httpPath,y;t[7]!==b?(y=(0,p.jsx)("code",{className:"min-w-0 flex-1 truncate font-mono text-xs text-foreground",children:b}),t[7]=b,t[8]=y):y=t[8];let N=g?"animate-pulse":void 0,v;t[9]!==N?(v=(0,p.jsx)(ne,{className:N,icon:we,strokeWidth:2}),t[9]=N,t[10]=v):v=t[10];let x;t[11]!==g||t[12]!==e?(x=e(g?"Sending\u2026":"Send"),t[11]=g,t[12]=e,t[13]=x):x=t[13];let k;t[14]!==g||t[15]!==o||t[16]!==v||t[17]!==x?(k=(0,p.jsxs)(D,{"data-testid":"api-try-send",disabled:g,onClick:o,size:"sm",type:"button",children:[v,x]}),t[14]=g,t[15]=o,t[16]=v,t[17]=x,t[18]=k):k=t[18];let I;t[19]!==h||t[20]!==y||t[21]!==k?(I=(0,p.jsxs)("div",{className:"flex items-center gap-2 border-b border-border bg-muted px-3 py-2",children:[h,y,k]}),t[19]=h,t[20]=y,t[21]=k,t[22]=I):I=t[22];let C;t[23]!==e?(C=e("Arguments (JSON)"),t[23]=e,t[24]=C):C=t[24];let w;t[25]!==C?(w=(0,p.jsx)(he,{htmlFor:"api-try-args",children:C}),t[25]=C,t[26]=w):w=t[26];let O;t[27]!==a?(O=a.split(`
13
- `),t[27]=a,t[28]=O):O=t[28];let P=Math.min(12,Math.max(3,O.length)),$;t[29]!==a||t[30]!==l||t[31]!==f||t[32]!==P?($=(0,p.jsx)(Ce,{className:"font-mono text-xs","data-testid":"api-try-args",id:"api-try-args",onChange:l,onKeyDown:f,rows:P,spellCheck:!1,value:a}),t[29]=a,t[30]=l,t[31]=f,t[32]=P,t[33]=$):$=t[33];let S;t[34]!==w||t[35]!==$?(S=(0,p.jsxs)("div",{className:"flex flex-col gap-1.5",children:[w,$]}),t[34]=w,t[35]=$,t[36]=S):S=t[36];let A;t[37]!==r.functionPath||t[38]!==n||t[39]!==i||t[40]!==e?(A=r.functionPath!==void 0&&(0,p.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,p.jsx)(he,{htmlFor:"shard-input",children:e("Shard key (optional)")}),(0,p.jsx)(Ie,{id:"shard-input",onChange:n,testId:"shard-input",value:i})]}),t[37]=r.functionPath,t[38]=n,t[39]=i,t[40]=e,t[41]=A):A=t[41];let T;t[42]!==S||t[43]!==A?(T=(0,p.jsxs)("div",{className:"flex flex-col gap-3 p-3",children:[S,A]}),t[42]=S,t[43]=A,t[44]=T):T=t[44];let R;return t[45]!==T||t[46]!==I?(R=(0,p.jsxs)("div",{className:"overflow-hidden rounded-xl border border-border bg-card","data-testid":"api-try-it",children:[I,T]}),t[45]=T,t[46]=I,t[47]=R):R=t[47],R},"Ke"),Ot=u(t=>{let e=(0,J.c)(51),{operation:a}=t,r=K(),o=`api-operation-${a.operationId}`,s=a.key,n;e[0]!==a.kind||e[1]!==a.method?(n=(0,p.jsx)(ge,{kind:a.kind,method:a.method,testId:"api-operation-method"}),e[0]=a.kind,e[1]=a.method,e[2]=n):n=e[2];let i=a.functionPath??a.httpPath,d;e[3]!==i?(d=(0,p.jsx)("code",{className:"truncate font-mono text-xs text-muted-foreground",children:i}),e[3]=i,e[4]=d):d=e[4];let m;e[5]!==n||e[6]!==d?(m=(0,p.jsxs)("div",{className:"flex items-center gap-2",children:[n,d]}),e[5]=n,e[6]=d,e[7]=m):m=e[7];let l;e[8]!==a.title?(l=(0,p.jsx)("h1",{className:"text-lg font-semibold text-foreground","data-testid":"api-operation-title",children:a.title}),e[8]=a.title,e[9]=l):l=e[9];let c;e[10]!==a.description?(c=a.description!==void 0&&(0,p.jsx)("p",{className:"text-sm text-muted-foreground",children:a.description}),e[10]=a.description,e[11]=c):c=e[11];let f;e[12]!==m||e[13]!==l||e[14]!==c?(f=(0,p.jsxs)("header",{className:"sticky top-0 z-10 -mx-6 -mt-6 flex flex-col gap-2 border-b border-border bg-background px-6 pt-6 pb-3",children:[m,l,c]}),e[12]=m,e[13]=l,e[14]=c,e[15]=f):f=e[15];let g;e[16]!==r?(g=r("Try it"),e[16]=r,e[17]=g):g=e[17];let h;e[18]!==g?(h=(0,p.jsx)("h2",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:g}),e[18]=g,e[19]=h):h=e[19];let b;e[20]===Symbol.for("react.memo_cache_sentinel")?(b=(0,p.jsx)($t,{}),e[20]=b):b=e[20];let y;e[21]!==h?(y=(0,p.jsxs)("section",{className:"flex flex-col gap-2",children:[h,b]}),e[21]=h,e[22]=y):y=e[22];let N;e[23]!==r?(N=r("Request arguments"),e[23]=r,e[24]=N):N=e[24];let v;e[25]!==N?(v=(0,p.jsx)("h2",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:N}),e[25]=N,e[26]=v):v=e[26];let x;e[27]!==a.argsSchema?(x=(0,p.jsx)(Re,{schema:a.argsSchema,testId:"api-operation-args"}),e[27]=a.argsSchema,e[28]=x):x=e[28];let k;e[29]!==v||e[30]!==x?(k=(0,p.jsxs)("section",{className:"flex flex-col gap-2",children:[v,x]}),e[29]=v,e[30]=x,e[31]=k):k=e[31];let I;e[32]!==r?(I=r("Response body"),e[32]=r,e[33]=I):I=e[33];let C;e[34]!==I?(C=(0,p.jsx)("h2",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:I}),e[34]=I,e[35]=C):C=e[35];let w;if(e[36]!==a.responses||e[37]!==r){let $;e[39]!==r?($=u(S=>(0,p.jsxs)("div",{className:"flex flex-col gap-1.5 rounded-xl border border-border bg-card p-3",children:[(0,p.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,p.jsxs)("span",{className:`inline-flex items-center gap-1.5 font-mono text-xs font-semibold ${Ke(S.status)}`,children:[(0,p.jsx)("span",{className:`size-1.5 rounded-full ${qe(S.status)}`}),S.status]}),S.schema!==void 0&&(0,p.jsx)("span",{className:"rounded border border-border px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground",children:r("application/json")})]}),S.description!==void 0&&(0,p.jsx)("p",{className:"text-xs text-muted-foreground",children:S.description}),S.schema!==void 0&&(0,p.jsx)(Re,{schema:S.schema,testId:`api-response-${S.status}`})]},S.status),"C"),e[39]=r,e[40]=$):$=e[40],w=a.responses.map($),e[36]=a.responses,e[37]=r,e[38]=w}else w=e[38];let O;e[41]!==C||e[42]!==w?(O=(0,p.jsxs)("section",{className:"flex flex-col gap-3",children:[C,w]}),e[41]=C,e[42]=w,e[43]=O):O=e[43];let P;return e[44]!==a.key||e[45]!==o||e[46]!==y||e[47]!==k||e[48]!==O||e[49]!==f?(P=(0,p.jsxs)("div",{className:"flex flex-col gap-6 duration-200 animate-in fade-in-0 slide-in-from-bottom-1","data-testid":o,children:[f,y,k,O]},s),e[44]=a.key,e[45]=o,e[46]=y,e[47]=k,e[48]=O,e[49]=f,e[50]=P):P=e[50],P},"Me"),It={boolean:"text-royal-amethyst",key:"text-sky-sapphire",number:"text-warning",plain:"",string:"text-success"},Ct=/"(?:[^"\\]|\\.)*"|\b(?:true|false|null)\b|-?\d+(?:\.\d+)?/g,Pt=/^\s*:/,_t=u((t,e,a)=>a.startsWith('"')?Pt.test(t.slice(e))?"key":"string":a==="true"||a==="false"||a==="null"?"boolean":"number","We"),At=u(t=>{let e=[],a=0;for(let r of t.matchAll(Ct)){let{index:o}=r,s=r[0],n=o+s.length;o>a&&e.push({kind:"plain",start:a,text:t.slice(a,o)}),e.push({kind:_t(t,n,s),start:o,text:s}),a=n}return a<t.length&&e.push({kind:"plain",start:a,text:t.slice(a)}),e},"ze"),jt=u(t=>{let e=(0,J.c)(4),{code:a}=t,r;e[0]!==a?(r=At(a).map(Tt),e[0]=a,e[1]=r):r=e[1];let o;return e[2]!==r?(o=(0,p.jsx)(p.Fragment,{children:r}),e[2]=r,e[3]=o):o=e[3],o},"He");function Tt(t){return(0,p.jsx)("span",{className:It[t.kind],children:t.text},t.start)}u(Tt,"Ge");var ze="__live__",Rt=u(t=>t.schema===void 0?"":JSON.stringify(Z(t.schema),void 0,2),"Ue"),Et=u((t,e,a)=>a?t??"":e===void 0?"":JSON.stringify(e,void 0,2),"Ve"),Mt=u(t=>{let e=(0,J.c)(18),{active:a,running:r,showError:o}=t,s=K();if(r){let c;e[0]!==s?(c=s("Sending\u2026"),e[0]=s,e[1]=c):c=e[1];let f;return e[2]!==c?(f=(0,p.jsx)("p",{className:"px-3 py-3 text-xs text-muted-foreground","data-testid":"api-response-running",children:c}),e[2]=c,e[3]=f):f=e[3],f}if(a===void 0||a.body===""){let c;e[4]!==a?.live||e[5]!==s?(c=a?.live===!0?s("Send a request to see the response."):s("No example for this response."),e[4]=a?.live,e[5]=s,e[6]=c):c=e[6];let f;return e[7]!==c?(f=(0,p.jsx)("p",{className:"px-3 py-3 text-xs text-muted-foreground","data-testid":"api-response-idle",children:c}),e[7]=c,e[8]=f):f=e[8],f}let n=o&&"text-destructive",i;e[9]!==n?(i=fe("max-h-[28rem] overflow-auto px-3 py-3 font-mono text-xs",n),e[9]=n,e[10]=i):i=e[10];let d=o?"api-response-error":"api-response-body",m;e[11]!==a.body||e[12]!==o?(m=o?a.body:(0,p.jsx)(jt,{code:a.body}),e[11]=a.body,e[12]=o,e[13]=m):m=e[13];let l;return e[14]!==i||e[15]!==d||e[16]!==m?(l=(0,p.jsx)("pre",{className:i,"data-testid":d,children:m}),e[14]=i,e[15]=d,e[16]=m,e[17]=l):l=e[17],l},"Xe"),Kt=u(({durationMs:t,error:e,failed:a,operation:r,ran:o,response:s,t:n})=>{let i=r.responses.map(d=>({body:Rt(d),durationMs:null,id:d.status,label:d.status,live:!1,status:d.status}));return o?[{body:Et(e,s,a),durationMs:t,id:ze,label:n("Live"),live:!0,status:a?"error":"200"},...i]:i},"Qe"),qt=u(()=>{let t=(0,J.c)(19),e=K(),{durationMs:a,error:r,operation:o,response:s,status:n}=Je(),i=n==="running",d=n==="error",m=n==="success"||d,l=Kt({durationMs:a,error:r,failed:d,operation:o,ran:m,response:s,t:e}),c=m?ze:l.find(Bt)?.id??l[0]?.id??"",[f,g]=(0,q.useState)(null),h=l.find(_=>_.id===(f??c))??l[0],b;t[0]===Symbol.for("react.memo_cache_sentinel")?(b=u(_=>{let{id:M}=_.currentTarget.dataset;M!==void 0&&g(M)},"p"),t[0]=b):b=t[0];let y=b,N=u(()=>{h!==void 0&&ae(h.body)},"O"),v=h?.live===!0?h.durationMs:null,x=h?.live===!0&&h.status==="error",k="flex min-h-0 flex-col rounded-xl border border-border bg-card",I="api-response-panel",C;t[1]!==e?(C=e("Response"),t[1]=e,t[2]=C):C=t[2];let w;t[3]!==C?(w=(0,p.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:C}),t[3]=C,t[4]=w):w=t[4];let O=v!==null&&(0,p.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:e("{ms} ms",{ms:v})}),P=h!==void 0&&h.body!==""&&(0,p.jsx)(D,{"aria-label":e("Copy"),"data-testid":"api-response-copy",onClick:N,size:"icon-xs",type:"button",variant:"ghost",children:(0,p.jsx)(ne,{icon:Ne,strokeWidth:2})}),$;t[5]!==O||t[6]!==P?($=(0,p.jsxs)("div",{className:"flex items-center gap-2",children:[O,P]}),t[5]=O,t[6]=P,t[7]=$):$=t[7];let S;t[8]!==w||t[9]!==$?(S=(0,p.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-border px-3 py-2",children:[w,$]}),t[8]=w,t[9]=$,t[10]=S):S=t[10];let A=l.length>0&&(0,p.jsx)("div",{className:"flex gap-1 overflow-x-auto border-b border-border px-2 py-1.5",role:"tablist",children:l.map(_=>{let M=_.id===h?.id;return(0,p.jsxs)("button",{"aria-selected":M,className:fe("inline-flex items-center gap-1.5 rounded px-2 py-0.5 font-mono text-xs transition-colors hover:text-foreground aria-selected:bg-muted aria-selected:font-medium",M?Ke(_.status):"text-muted-foreground"),"data-id":_.id,"data-testid":_.live?"api-response-tab-live":`api-response-tab-${_.status}`,onClick:y,role:"tab",type:"button",children:[(0,p.jsx)("span",{className:`size-1.5 rounded-full ${qe(_.status)}`}),_.label]},_.id)})}),T;t[11]!==h||t[12]!==i||t[13]!==x?(T=(0,p.jsx)(Mt,{active:h,running:i,showError:x}),t[11]=h,t[12]=i,t[13]=x,t[14]=T):T=t[14];let R;return t[15]!==T||t[16]!==S||t[17]!==A?(R=(0,p.jsxs)("div",{className:k,"data-testid":I,children:[S,A,T]}),t[15]=T,t[16]=S,t[17]=A,t[18]=R):R=t[18],R},"Ye");function Bt(t){return t.status.startsWith("2")}u(Bt,"Ze");var Jt=u((t,e)=>{let a=e.trim().toLowerCase();return a===""?t:t.map(r=>({...r,operations:r.operations.filter(o=>`${o.summary} ${o.operationId}`.toLowerCase().includes(a))})).filter(r=>r.operations.length>0)},"et"),me=u(t=>{let e=(0,J.c)(53),{model:a}=t,r=K(),o=a.groups[0]?.operations[0]?.key??"",[s,n]=(0,q.useState)(o),[i,d]=(0,q.useState)(""),m;e[0]!==o||e[1]!==a.operationByKey||e[2]!==s?(m=a.operationByKey.get(s)??a.operationByKey.get(o),e[0]=o,e[1]=a.operationByKey,e[2]=s,e[3]=m):m=e[3];let l=m,c,f,g,h,b,y,N,v,x,k;if(e[4]!==i||e[5]!==a.groups||e[6]!==a.server||e[7]!==l?.key||e[8]!==r){c=Jt(a.groups,i);let $;e[19]===Symbol.for("react.memo_cache_sentinel")?($=u(E=>{let{key:W}=E.currentTarget.dataset;W!==void 0&&n(W)},"C"),e[19]=$):$=e[19];let S=$,A;e[20]===Symbol.for("react.memo_cache_sentinel")?(A=u(E=>{d(E.target.value)},"P"),e[20]=A):A=e[20];let T=A;f=a.server??"",x="grid min-h-0 flex-1 grid-cols-1 overflow-hidden lg:grid-cols-[16rem_minmax(0,1fr)_22rem]",k="api-reference",e[21]!==r?(b=r("API operations"),e[21]=r,e[22]=b):b=e[22],y="flex min-h-0 flex-col overflow-y-auto border-r border-border",N="api-reference-nav";let R;e[23]===Symbol.for("react.memo_cache_sentinel")?(R=(0,p.jsx)(ne,{className:"pointer-events-none absolute top-1/2 left-2 size-3.5 -translate-y-1/2 text-muted-foreground",icon:ke,strokeWidth:2}),e[23]=R):R=e[23];let _;e[24]!==r?(_=r("Filter operations"),e[24]=r,e[25]=_):_=e[25],e[26]!==i||e[27]!==_?(v=(0,p.jsx)("div",{className:"sticky top-0 z-10 border-b border-border bg-sidebar p-2",children:(0,p.jsxs)("div",{className:"relative",children:[R,(0,p.jsx)(ye,{className:"h-7 pl-7","data-testid":"api-filter",onChange:T,placeholder:_,value:i})]})}),e[26]=i,e[27]=_,e[28]=v):v=e[28],g="flex flex-col gap-4 p-2";let M;e[29]!==l?.key||e[30]!==r?(M=u(E=>(0,p.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,p.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,p.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:E.name||r("(root)")}),(0,p.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground/70",children:E.operations.length})]}),E.operations.map(W=>{let Q=W.key===l?.key;return(0,p.jsxs)("button",{"aria-current":Q?"page":void 0,className:"flex items-center justify-between gap-2 rounded-md border-l-2 border-transparent px-2 py-1 text-start text-xs text-muted-foreground transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground aria-[current=page]:border-primary aria-[current=page]:bg-sidebar-accent aria-[current=page]:font-medium aria-[current=page]:text-foreground","data-key":W.key,"data-testid":`api-nav-${W.operationId}`,onClick:S,type:"button",children:[(0,p.jsx)("span",{className:"truncate",children:W.summary}),(0,p.jsx)(ge,{kind:W.kind,method:W.method})]},W.key)})]},E.name),"B"),e[29]=l?.key,e[30]=r,e[31]=M):M=e[31],h=c.map(M),e[4]=i,e[5]=a.groups,e[6]=a.server,e[7]=l?.key,e[8]=r,e[9]=c,e[10]=f,e[11]=g,e[12]=h,e[13]=b,e[14]=y,e[15]=N,e[16]=v,e[17]=x,e[18]=k}else c=e[9],f=e[10],g=e[11],h=e[12],b=e[13],y=e[14],N=e[15],v=e[16],x=e[17],k=e[18];let I;e[32]!==c.length||e[33]!==r?(I=c.length===0&&(0,p.jsx)("p",{className:"px-2 py-1 text-xs text-muted-foreground","data-testid":"api-nav-empty",children:r("No operations match your filter.")}),e[32]=c.length,e[33]=r,e[34]=I):I=e[34];let C;e[35]!==I||e[36]!==g||e[37]!==h?(C=(0,p.jsxs)("div",{className:g,children:[h,I]}),e[35]=I,e[36]=g,e[37]=h,e[38]=C):C=e[38];let w;e[39]!==C||e[40]!==b||e[41]!==y||e[42]!==N||e[43]!==v?(w=(0,p.jsxs)("nav",{"aria-label":b,className:y,"data-testid":N,children:[v,C]}),e[39]=C,e[40]=b,e[41]=y,e[42]=N,e[43]=v,e[44]=w):w=e[44];let O;e[45]!==l||e[46]!==f?(O=l===void 0?(0,p.jsx)("div",{className:"lg:col-span-2"}):(0,p.jsxs)(St,{operation:l,children:[(0,p.jsx)("div",{className:"min-w-0 overflow-y-auto p-6","data-testid":"api-reference-main",children:(0,p.jsx)(Ot,{operation:l})}),(0,p.jsxs)("aside",{className:"flex min-w-0 flex-col gap-4 overflow-y-auto border-border p-4 lg:border-l","data-testid":"api-reference-aside",children:[(0,p.jsx)(vt,{operation:l,server:f}),(0,p.jsx)(qt,{})]})]},l.key),e[45]=l,e[46]=f,e[47]=O):O=e[47];let P;return e[48]!==w||e[49]!==O||e[50]!==x||e[51]!==k?(P=(0,p.jsxs)("div",{className:x,"data-testid":k,children:[w,O]}),e[48]=w,e[49]=O,e[50]=x,e[51]=k,e[52]=P):P=e[52],P},"bt");var U=z(re(),1);var zt=["get","post","put","patch","delete","head","options","trace"],We=u(t=>t?.content?.["application/json"]?.schema,"y"),Lt=u((t,e)=>Object.entries(t.responses??{}).map(([a,r])=>{let o=r.$ref?.replace("#/components/responses/",""),s=o===void 0?r:e.components?.responses?.[o]??r;return{description:s.description,schema:We(s),status:a}}),"j"),Wt=u((t,e,a,r,o)=>{let s=We(r.requestBody),n=s?.properties?.functionPath?.const,i=typeof n=="string"?n:void 0,d=i===void 0?s:s?.properties?.args,m=r.operationId??`${a} ${e}`;return{argsSchema:d,description:r.description,functionPath:i,httpPath:e,key:t,kind:r["x-lunora-function-kind"],method:a.toUpperCase(),operationId:m,requestSchema:s,responses:Lt(r,o),summary:r.summary??m,tags:r.tags??[],title:r.summary??m}},"b"),Dt=u(t=>{let e=[];for(let[a,r]of Object.entries(t.paths??{})){let o=a.includes("#")?a.slice(0,a.indexOf("#")):a;for(let s of zt){let n=r[s];n!==void 0&&e.push(Wt(a,o,s,n,t))}}return e},"x"),Ht=u(t=>{let e=t??{},a=Dt(e),r=new Map((e.tags??[]).map(i=>[i.name,i.description])),o=new Set,s=[],n=u(i=>{if(o.has(i))return;o.add(i);let d=a.filter(m=>(m.tags[0]??"")===i);d.length>0&&s.push({description:r.get(i),name:i,operations:d})},"l");for(let i of e.tags??[])n(i.name);for(let i of a)n(i.tags[0]??"");return{groups:s,operationByKey:new Map(a.map(i=>[i.key,i])),server:e.servers?.[0]?.url,title:e.info?.title??"API reference",version:e.info?.version}},"w"),Ft=u(t=>{let{paths:e}=t;return e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0},"R"),Ut=u(t=>{let e=t;return Ft(e)?{kind:"empty"}:{kind:"ready",spec:e}},"T"),De=u(t=>{let e=(0,Le.c)(23),{spec:a}=t,r=K(),o=F(),s;e[0]!==o?(s=u(()=>o.fetchOpenApi(),"n"),e[0]=o,e[1]=s):s=e[1];let n=pe(a,s,Ut),i;e[2]!==n.kind||e[3]!==n.spec?(i=n.kind==="ready"?Ht(n.spec):void 0,e[2]=n.kind,e[3]=n.spec,e[4]=i):i=e[4];let d=i;if(n.kind==="loading"){let l;return e[5]===Symbol.for("react.memo_cache_sentinel")?(l=(0,U.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"api-reference-loading",children:[(0,U.jsx)(V,{className:"h-8 w-48"}),(0,U.jsx)(V,{className:"h-64 w-full"})]}),e[5]=l):l=e[5],l}if(n.kind==="error"){let l;e[6]!==n.message||e[7]!==r?(l=r("Couldn't load the OpenAPI spec: {message}",{message:n.message}),e[6]=n.message,e[7]=r,e[8]=l):l=e[8];let c;e[9]!==r?(c=r("API reference unavailable"),e[9]=r,e[10]=c):c=e[10];let f;return e[11]!==l||e[12]!==c?(f=(0,U.jsx)(H,{description:l,testId:"api-reference-error",title:c}),e[11]=l,e[12]=c,e[13]=f):f=e[13],f}if(n.kind==="empty"||d===void 0){let l;e[14]!==r?(l=r("Run `lunora codegen` and wire `_generated/openapi.json` to the worker to render the API reference here."),e[14]=r,e[15]=l):l=e[15];let c;e[16]!==r?(c=r("No OpenAPI spec configured"),e[16]=r,e[17]=c):c=e[17];let f;return e[18]!==l||e[19]!==c?(f=(0,U.jsx)(H,{description:l,testId:"api-reference-empty",title:c}),e[18]=l,e[19]=c,e[20]=f):f=e[20],f}let m;return e[21]!==d?(m=(0,U.jsx)(me,{model:d}),e[21]=d,e[22]=m):m=e[22],m},"B");var He=z(te(),1);var G=z(re(),1);var Gt=u(t=>(t.params??[]).find(e=>e.name==="args")??(t.params??[])[0],"x"),Qt=u(t=>t["x-tags"]?.[0]?.name??(t.name.includes(":")?t.name.slice(0,t.name.indexOf(":")):""),"v"),Vt=u(t=>{let e=Gt(t)?.schema;return{argsSchema:e,description:t.description,functionPath:t.name,httpPath:"/_lunora/rpc",key:t.name,kind:t["x-lunora-function-kind"],method:"POST",operationId:t.name,requestSchema:e,responses:[{description:t.result?.name,schema:t.result?.schema,status:"200"}],summary:t.summary??t.name,tags:[Qt(t)],title:t.summary??t.name}},"w"),Xt=u(t=>{let e=t??{},a=(e.methods??[]).map(o=>Vt(o)),r=new Map;for(let o of a){let s=o.tags[0]??"",n=r.get(s)??[];n.push(o),r.set(s,n)}return{groups:[...r.entries()].map(([o,s])=>({name:o,operations:s.toSorted((n,i)=>n.operationId.localeCompare(i.operationId))})).toSorted((o,s)=>o.name.localeCompare(s.name)),operationByKey:new Map(a.map(o=>[o.key,o])),title:e.info?.title??"API reference",version:e.info?.version}},"I"),Yt=u(t=>t.methods===void 0||t.methods.length===0,"C"),Zt=u(t=>{let e=t;return Yt(e)?{kind:"empty"}:{kind:"ready",spec:e}},"N"),Fe=u(t=>{let e=(0,He.c)(23),{spec:a}=t,r=K(),o=F(),s;e[0]!==o?(s=u(()=>o.fetchOpenRpc(),"a"),e[0]=o,e[1]=s):s=e[1];let n=pe(a,s,Zt),i;e[2]!==n.kind||e[3]!==n.spec?(i=n.kind==="ready"?Xt(n.spec):void 0,e[2]=n.kind,e[3]=n.spec,e[4]=i):i=e[4];let d=i;if(n.kind==="loading"){let l;return e[5]===Symbol.for("react.memo_cache_sentinel")?(l=(0,G.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"openrpc-reference-loading",children:[(0,G.jsx)(V,{className:"h-8 w-48"}),(0,G.jsx)(V,{className:"h-64 w-full"})]}),e[5]=l):l=e[5],l}if(n.kind==="error"){let l;e[6]!==n.message||e[7]!==r?(l=r("Couldn't load the OpenRPC spec: {message}",{message:n.message}),e[6]=n.message,e[7]=r,e[8]=l):l=e[8];let c;e[9]!==r?(c=r("API reference unavailable"),e[9]=r,e[10]=c):c=e[10];let f;return e[11]!==l||e[12]!==c?(f=(0,G.jsx)(H,{description:l,testId:"openrpc-reference-error",title:c}),e[11]=l,e[12]=c,e[13]=f):f=e[13],f}if(n.kind==="empty"||d===void 0){let l;e[14]!==r?(l=r("Run `lunora codegen --api-spec openrpc` and wire `_generated/openrpc.json` to the worker to render the OpenRPC reference here."),e[14]=r,e[15]=l):l=e[15];let c;e[16]!==r?(c=r("No OpenRPC spec configured"),e[16]=r,e[17]=c):c=e[17];let f;return e[18]!==l||e[19]!==c?(f=(0,G.jsx)(H,{description:l,testId:"openrpc-reference-empty",title:c}),e[18]=l,e[19]=c,e[20]=f):f=e[20],f}let m;return e[21]!==d?(m=(0,G.jsx)(me,{model:d}),e[21]=d,e[22]=m):m=e[22],m},"T");var L=z(re(),1);var er=["reference","snippets"],tr=["openapi","openrpc"],Dr=u(t=>{let e=(0,Ue.c)(51),{functions:a,initialShardKey:r,openApiSpec:o,openRpcSpec:s}=t,n=K(),[i,d]=(0,xe.useState)("reference"),[m,l]=(0,xe.useState)("openapi"),c;e[0]!==n?(c=n("Reference"),e[0]=n,e[1]=c):c=e[1];let f;e[2]!==n?(f=n("Snippets"),e[2]=n,e[3]=f):f=e[3];let g;e[4]!==c||e[5]!==f?(g={reference:c,snippets:f},e[4]=c,e[5]=f,e[6]=g):g=e[6];let h=g,b;e[7]!==n?(b=n("OpenAPI"),e[7]=n,e[8]=b):b=e[8];let y;e[9]!==n?(y=n("OpenRPC"),e[9]=n,e[10]=y):y=e[10];let N;e[11]!==b||e[12]!==y?(N={openapi:b,openrpc:y},e[11]=b,e[12]=y,e[13]=N):N=e[13];let v=N,x;e[14]===Symbol.for("react.memo_cache_sentinel")?(x=u(E=>{d(E.currentTarget.dataset.view)},"S"),e[14]=x):x=e[14];let k=x,I;e[15]===Symbol.for("react.memo_cache_sentinel")?(I=u(E=>{l(E.currentTarget.dataset.format)},"A"),e[15]=I):I=e[15];let C=I,w;e[16]!==n?(w=n("API view"),e[16]=n,e[17]=w):w=e[17];let O;e[18]!==i||e[19]!==h?(O=er.map(E=>(0,L.jsx)(D,{"aria-selected":i===E,"data-testid":`api-view-${E}`,"data-view":E,onClick:k,role:"tab",size:"sm",type:"button",variant:i===E?"default":"outline",children:h[E]},E)),e[18]=i,e[19]=h,e[20]=O):O=e[20];let P;e[21]!==O||e[22]!==w?(P=(0,L.jsx)("div",{"aria-label":w,className:"flex gap-1.5","data-testid":"api-view-toggle",role:"tablist",children:O}),e[21]=O,e[22]=w,e[23]=P):P=e[23];let $;e[24]!==m||e[25]!==v||e[26]!==n||e[27]!==i?($=i==="reference"&&(0,L.jsx)("div",{"aria-label":n("API spec format"),className:"flex gap-1.5","data-testid":"api-format-toggle",role:"tablist",children:tr.map(E=>(0,L.jsx)(D,{"aria-selected":m===E,"data-format":E,"data-testid":`api-format-${E}`,onClick:C,role:"tab",size:"sm",type:"button",variant:m===E?"default":"outline",children:v[E]},E))}),e[24]=m,e[25]=v,e[26]=n,e[27]=i,e[28]=$):$=e[28];let S;e[29]!==P||e[30]!==$?(S=(0,L.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-3 border-b border-border px-6 py-3",children:[P,$]}),e[29]=P,e[30]=$,e[31]=S):S=e[31];let A;e[32]!==a||e[33]!==r||e[34]!==i?(A=i==="snippets"&&(0,L.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-6",children:(0,L.jsx)(Te,{functions:a,initialShardKey:r})}),e[32]=a,e[33]=r,e[34]=i,e[35]=A):A=e[35];let T;e[36]!==m||e[37]!==o||e[38]!==i?(T=i==="reference"&&m==="openapi"&&(0,L.jsx)(De,{spec:o}),e[36]=m,e[37]=o,e[38]=i,e[39]=T):T=e[39];let R;e[40]!==m||e[41]!==s||e[42]!==i?(R=i==="reference"&&m==="openrpc"&&(0,L.jsx)(Fe,{spec:s}),e[40]=m,e[41]=s,e[42]=i,e[43]=R):R=e[43];let _;e[44]!==A||e[45]!==T||e[46]!==R?(_=(0,L.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:[A,T,R]}),e[44]=A,e[45]=T,e[46]=R,e[47]=_):_=e[47];let M;return e[48]!==S||e[49]!==_?(M=(0,L.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col","data-testid":"lunora-api-tab",children:[S,_]}),e[48]=S,e[49]=_,e[50]=M):M=e[50],M},"k");export{Dr as default};