@lunora/studio 1.0.0-alpha.244 → 1.0.0-alpha.246

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/index.d.mts +2 -2
  2. package/dist/index.d.ts +2 -2
  3. package/dist/index.mjs +1 -1
  4. package/dist/mount.mjs +1 -1
  5. package/dist/packem_chunks/ApiTab.mjs +1 -1
  6. package/dist/packem_chunks/SchemaViewer.mjs +1 -1
  7. package/dist/packem_chunks/architecture-panel.mjs +1 -0
  8. package/dist/packem_chunks/kv-browser.mjs +1 -1
  9. package/dist/packem_chunks/migrations-route.mjs +1 -1
  10. package/dist/packem_chunks/queues-panel.mjs +1 -1
  11. package/dist/packem_shared/ApiReferencePanel-nAf8tNRr.mjs +1 -0
  12. package/dist/packem_shared/OpenRpcReferencePanel-BxEr49D9.mjs +1 -0
  13. package/dist/packem_shared/{Studio-qyqfHiQ3.mjs → Studio-BboteWG5.mjs} +1 -1
  14. package/dist/packem_shared/{StudioApp-BwOFVJBy.mjs → StudioApp-DkjIpaM2.mjs} +1 -1
  15. package/dist/packem_shared/diagram-export-panel-D5CVNJkp.mjs +2 -0
  16. package/dist/packem_shared/reference-view-CIHyURU6.mjs +13 -0
  17. package/dist/packem_shared/schema-diagram-C5oilX7l.mjs +2 -0
  18. package/dist/packem_shared/studio-CrypdTyE.mjs +2 -0
  19. package/dist/packem_shared/use-admin-spec-Bir7V68L.mjs +1 -0
  20. package/dist/standalone/{chunk-VTMPJ7GE.js → chunk-2BHVS5B6.js} +1 -1
  21. package/dist/standalone/chunk-2T4EFQNZ.js +1 -0
  22. package/dist/standalone/{chunk-BKGZMIF3.js → chunk-2TRJ53XJ.js} +1 -1
  23. package/dist/standalone/{chunk-PQWCYQGZ.js → chunk-2ZNM4ZPA.js} +1 -1
  24. package/dist/standalone/{chunk-DKTDJOYC.js → chunk-3G24A35Q.js} +1 -1
  25. package/dist/standalone/chunk-3QXSLIE4.js +1 -0
  26. package/dist/standalone/{chunk-SI6U7NIE.js → chunk-3UA5CP3H.js} +1 -1
  27. package/dist/standalone/chunk-4HQZTO56.js +1 -0
  28. package/dist/standalone/{chunk-2M6HDLZL.js → chunk-4KSBB2YH.js} +1 -1
  29. package/dist/standalone/{chunk-AVRH4ZBT.js → chunk-5CFKIQLP.js} +1 -1
  30. package/dist/standalone/{chunk-435IWCIW.js → chunk-5YKKSHIB.js} +1 -1
  31. package/dist/standalone/chunk-6QA34EWC.js +3 -0
  32. package/dist/standalone/{chunk-WB5OMGYR.js → chunk-AHNZKXCL.js} +1 -1
  33. package/dist/standalone/chunk-AQR5KUL6.js +1 -0
  34. package/dist/standalone/chunk-ATGO7XFL.js +1 -0
  35. package/dist/standalone/{chunk-GZT3A3DF.js → chunk-BBM53HFU.js} +1 -1
  36. package/dist/standalone/{chunk-KQQVI6ZS.js → chunk-BKARD4NH.js} +1 -1
  37. package/dist/standalone/chunk-BRIYEPXI.js +1 -0
  38. package/dist/standalone/{chunk-TESQ5ZIA.js → chunk-CZXBYHCA.js} +1 -1
  39. package/dist/standalone/{chunk-XNRRHFOY.js → chunk-EDCFVXZF.js} +1 -1
  40. package/dist/standalone/chunk-EEEEYLT7.js +1 -0
  41. package/dist/standalone/{chunk-CAHTJYC5.js → chunk-EOXUWPOY.js} +1 -1
  42. package/dist/standalone/{chunk-QROMT56V.js → chunk-F6SM55KU.js} +1 -1
  43. package/dist/standalone/chunk-FW6WOY3S.js +1 -0
  44. package/dist/standalone/chunk-GPFBLWA7.js +1 -0
  45. package/dist/standalone/chunk-GX2YM7MB.js +1 -0
  46. package/dist/standalone/chunk-H44HW3WV.js +1 -0
  47. package/dist/standalone/chunk-H6LZ3QM4.js +1 -0
  48. package/dist/standalone/chunk-HKWL6IY3.js +2 -0
  49. package/dist/standalone/chunk-HLTKKVDQ.js +1 -0
  50. package/dist/standalone/{chunk-2URQKGWU.js → chunk-HPFN7S7N.js} +1 -1
  51. package/dist/standalone/{chunk-GMS77BZD.js → chunk-IFJOYAEZ.js} +1 -1
  52. package/dist/standalone/chunk-JDAWPJ7U.js +1 -0
  53. package/dist/standalone/chunk-JF7BK6MO.js +1 -0
  54. package/dist/standalone/{chunk-OGFQ4LUG.js → chunk-JJB2KGI2.js} +1 -1
  55. package/dist/standalone/{chunk-OSOMPF2M.js → chunk-JUSVEJIQ.js} +1 -1
  56. package/dist/standalone/chunk-KTHHXUCF.js +1 -0
  57. package/dist/standalone/chunk-L4DT5US3.js +1 -0
  58. package/dist/standalone/{chunk-N3DFLRGG.js → chunk-LDEGPYES.js} +1 -1
  59. package/dist/standalone/{chunk-EJSI4PMU.js → chunk-LIOUCOP2.js} +1 -1
  60. package/dist/standalone/{chunk-FBPF5WYL.js → chunk-LNDCZ3M2.js} +1 -1
  61. package/dist/standalone/{chunk-ZIE7D6ZS.js → chunk-M45TEYKZ.js} +1 -1
  62. package/dist/standalone/chunk-MDUETXVR.js +1 -0
  63. package/dist/standalone/{chunk-RFNGDE33.js → chunk-NESDGS7F.js} +1 -1
  64. package/dist/standalone/{chunk-DEDFT62S.js → chunk-NPRI4BCN.js} +1 -1
  65. package/dist/standalone/{chunk-WZI2ZAPQ.js → chunk-OCUJO2PM.js} +1 -1
  66. package/dist/standalone/chunk-OVPFGNR6.js +1 -0
  67. package/dist/standalone/{chunk-GUD3ZG3Z.js → chunk-PRHWNGXX.js} +2 -2
  68. package/dist/standalone/{chunk-ZDPY27UY.js → chunk-Q7GZKFBT.js} +1 -1
  69. package/dist/standalone/{chunk-AAXLEHDI.js → chunk-QA6CZASY.js} +1 -1
  70. package/dist/standalone/chunk-R65X5YQK.js +1 -0
  71. package/dist/standalone/chunk-RG6VUBGP.js +1 -0
  72. package/dist/standalone/chunk-RJJ5J24X.js +1 -0
  73. package/dist/standalone/{chunk-AANB526D.js → chunk-T6JDEFHN.js} +1 -1
  74. package/dist/standalone/chunk-TDXV3OT5.js +1 -0
  75. package/dist/standalone/{chunk-GMHY2XTC.js → chunk-TYT4DBMD.js} +1 -1
  76. package/dist/standalone/chunk-U4EW2BWO.js +1 -0
  77. package/dist/standalone/chunk-U7WLCN6P.js +1 -0
  78. package/dist/standalone/{chunk-MEV2FUUD.js → chunk-V5EINW4G.js} +1 -1
  79. package/dist/standalone/chunk-VIFOIB6M.js +1 -0
  80. package/dist/standalone/chunk-VMXD6LRC.js +14 -0
  81. package/dist/standalone/chunk-WA3ZZ65C.js +1 -0
  82. package/dist/standalone/chunk-WIIQAPHM.js +1 -0
  83. package/dist/standalone/chunk-WX4HPONC.js +1 -0
  84. package/dist/standalone/{chunk-KVSSLKGK.js → chunk-XB6LUZP2.js} +1 -1
  85. package/dist/standalone/chunk-XLAJX4GC.js +1 -0
  86. package/dist/standalone/chunk-XXTB46YA.js +1 -0
  87. package/dist/standalone/{chunk-V3CZW3JB.js → chunk-XXVOKVXV.js} +1 -1
  88. package/dist/standalone/{chunk-IVKVGV4Y.js → chunk-Y4N7CB4T.js} +1 -1
  89. package/dist/standalone/{chunk-NPT4MKTL.js → chunk-YSVZF4HX.js} +1 -1
  90. package/dist/standalone/chunk-YZ2QZG3W.js +1 -0
  91. package/dist/standalone/chunk-ZEYT2NT5.js +1 -0
  92. package/dist/standalone/chunk-ZMF7QLKI.js +8 -0
  93. package/dist/standalone/{chunk-5AAHUEQD.js → chunk-ZSM5GPHG.js} +1 -1
  94. package/dist/standalone/studio.js +1 -1
  95. package/dist/styles.css +1 -1
  96. package/package.json +5 -5
  97. package/dist/packem_shared/ApiReferencePanel-CHoHM5ME.mjs +0 -1
  98. package/dist/packem_shared/OpenRpcReferencePanel-C8ctFJVm.mjs +0 -1
  99. package/dist/packem_shared/reference-view-DSeKRrUU.mjs +0 -13
  100. package/dist/packem_shared/schema-diagram-CQ4vn0CN.mjs +0 -2
  101. package/dist/packem_shared/studio-CwC7cOyC.mjs +0 -2
  102. package/dist/standalone/chunk-2XPVONGN.js +0 -1
  103. package/dist/standalone/chunk-3FBLWUXD.js +0 -1
  104. package/dist/standalone/chunk-4E6W2IDP.js +0 -14
  105. package/dist/standalone/chunk-5MGCPNPF.js +0 -1
  106. package/dist/standalone/chunk-5XPSGVCH.js +0 -1
  107. package/dist/standalone/chunk-6QPTJCQA.js +0 -1
  108. package/dist/standalone/chunk-6XKPY5RJ.js +0 -1
  109. package/dist/standalone/chunk-AHV5ROA3.js +0 -1
  110. package/dist/standalone/chunk-ATOGOQKD.js +0 -1
  111. package/dist/standalone/chunk-B5NQHH5M.js +0 -1
  112. package/dist/standalone/chunk-C3M6CCOV.js +0 -1
  113. package/dist/standalone/chunk-EUEWGG46.js +0 -1
  114. package/dist/standalone/chunk-HHUH2AEG.js +0 -1
  115. package/dist/standalone/chunk-HW33JZQP.js +0 -2
  116. package/dist/standalone/chunk-IHMGCHAA.js +0 -1
  117. package/dist/standalone/chunk-IVQFP5JU.js +0 -1
  118. package/dist/standalone/chunk-JNAZOBTV.js +0 -1
  119. package/dist/standalone/chunk-JSPFPDQ6.js +0 -1
  120. package/dist/standalone/chunk-KMLJSWTP.js +0 -1
  121. package/dist/standalone/chunk-KU7LFBUD.js +0 -1
  122. package/dist/standalone/chunk-KZ7UVPF6.js +0 -1
  123. package/dist/standalone/chunk-LB4Y3C7N.js +0 -1
  124. package/dist/standalone/chunk-MLFPYQNL.js +0 -1
  125. package/dist/standalone/chunk-NSCZ3RJ3.js +0 -1
  126. package/dist/standalone/chunk-OD7E3QLZ.js +0 -1
  127. package/dist/standalone/chunk-PLHA3OWK.js +0 -3
  128. package/dist/standalone/chunk-TDD2TZCN.js +0 -1
  129. package/dist/standalone/chunk-WMD6QHHD.js +0 -8
  130. package/dist/standalone/chunk-XIL7BLJ5.js +0 -1
  131. package/dist/standalone/chunk-Y5KK6IM3.js +0 -1
  132. package/dist/standalone/chunk-YPRQLCKF.js +0 -1
  133. package/dist/standalone/chunk-ZZ24NI6P.js +0 -1
  134. package/dist/standalone/chunk-ZZJE2GV3.js +0 -1
@@ -1 +0,0 @@
1
- import{a as ot}from"./chunk-WMD6QHHD.js";import"./chunk-CSUROWL2.js";import"./chunk-RFNGDE33.js";import"./chunk-V3CZW3JB.js";import"./chunk-MU3P2FI7.js";import{a as Re}from"./chunk-IMOHEGMV.js";import{a as it}from"./chunk-Z5O2NQAV.js";import"./chunk-YPRQLCKF.js";import"./chunk-GMS77BZD.js";import"./chunk-3Q2P62UR.js";import"./chunk-AWHXPIXU.js";import"./chunk-V3VJAA4D.js";import"./chunk-5JDWLCSH.js";import{a as nt}from"./chunk-NFS7FTAR.js";import{a as et}from"./chunk-S3CRZLGS.js";import{a as Ze}from"./chunk-EJSI4PMU.js";import{b as Ye}from"./chunk-OGUKYRFM.js";import{d as Pe,e as Be}from"./chunk-6D6Z2KXU.js";import"./chunk-OKG3HWSJ.js";import{W as Ue}from"./chunk-PLHA3OWK.js";import"./chunk-Y6CXU7T4.js";import"./chunk-4L4WTGN5.js";import{a as ze}from"./chunk-55754F6H.js";import"./chunk-IS6LVJ6L.js";import"./chunk-AAVLPU5Q.js";import{b as We}from"./chunk-FEWMAPNI.js";import"./chunk-225VJ77I.js";import{a as Oe}from"./chunk-AVRH4ZBT.js";import"./chunk-ULIQFBZU.js";import"./chunk-GMHY2XTC.js";import"./chunk-35DM4JJG.js";import{a as F}from"./chunk-4ZEL6BYL.js";import{c as ce}from"./chunk-ZDPY27UY.js";import{f as Je}from"./chunk-GUD3ZG3Z.js";import"./chunk-FSRSK4LY.js";import"./chunk-PUGHZTBL.js";import{a as $e}from"./chunk-FKVZRPV5.js";import{a as tt,b as at,c as rt,d as Fe,e as q,f as T}from"./chunk-HEAQVSNS.js";import{a as He,e as Qe}from"./chunk-N6NMLJ6R.js";import{d as le,f as Ve,g as Ge,h as Xe,p as Ne,t as Se}from"./chunk-PTZD7RUZ.js";import{a as o,d as se,e as De,f as Ee,g as Ae,i as de}from"./chunk-YKXDMIHQ.js";var pe=se(Ee(),1),ue=se(De(),1);var st=se(Ee(),1);var S=se(De(),1);var c=se(Ae(),1);var Nt=Ve(F.runMigration),dt=o(t=>{let e=(0,st.c)(98),{initialShardKey:r}=t,n=Je(),a=le(),{queryShardKey:s,setShardKey:i,shardKey:d}=et(r),[u,b]=(0,S.useState)(""),[h,y]=(0,S.useState)("up"),[p,g]=(0,S.useState)(!0),[f,x]=(0,S.useState)(!1),[v,m]=(0,S.useState)(null),[w,k]=(0,S.useState)(null),L;e[0]!==d?(L=d.trim(),e[0]=d,e[1]=L):L=e[1];let C=L===s,j;e[2]===Symbol.for("react.memo_cache_sentinel")?(j={},e[2]=j):j=e[2];let M;e[3]!==s?(M={live:!0,shardKey:s},e[3]=s,e[4]=M):M=e[4];let $=ce(F.migrationStatus,j,M),N=$.data?.migrations??null,Te=$.error,{errorSource:Ce,liveError:Me}=$,fe,ge;e[5]!==s||e[6]!==$.data?(fe=o(()=>{$.data!==void 0&&Ye(s)},"W"),ge=[$.data,s],e[5]=s,e[6]=$.data,e[7]=fe,e[8]=ge):(fe=e[7],ge=e[8]),(0,S.useEffect)(fe,ge);let be;if(e[9]!==n||e[10]!==h||e[11]!==p||e[12]!==u||e[13]!==d||e[14]!==$||e[15]!==a){let I=o(async()=>{let Ke=u.trim();if(Ke===""){k(a("Enter a migration id")),m(null);return}x(!0),k(null);try{let Ie=await n.query(Nt,{direction:h,dryRun:p,id:Ke},Ge(d));m(Ie),$.refetch()}catch(Ie){let $t=Ie;m(null),k(Xe($t))}x(!1)},"m");be=o(()=>{Ne(I())},"V"),e[9]=n,e[10]=h,e[11]=p,e[12]=u,e[13]=d,e[14]=$,e[15]=a,e[16]=be}else be=e[16];let ye=be,ve;e[17]===Symbol.for("react.memo_cache_sentinel")?(ve=o(I=>{b(I.target.value)},"Y"),e[17]=ve):ve=e[17];let xt=ve,xe;e[18]===Symbol.for("react.memo_cache_sentinel")?(xe=o(I=>{y(I.target.value==="down"?"down":"up")},"Z"),e[18]=xe):xe=e[18];let kt=xe,ke;e[19]===Symbol.for("react.memo_cache_sentinel")?(ke=o(I=>{g(I.target.checked)},"ee"),e[19]=ke):ke=e[19];let wt=ke,_;e[20]!==i||e[21]!==d?(_=(0,c.jsx)(Ze,{onChange:i,testId:"mg-shard-input",value:d}),e[20]=i,e[21]=d,e[22]=_):_=e[22];let K;e[23]!==Me?(K=(0,c.jsx)(it,{message:Me,prefix:"mg"}),e[23]=Me,e[24]=K):K=e[24];let D;e[25]!==_||e[26]!==K?(D=(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[_,K]}),e[25]=_,e[26]=K,e[27]=D):D=e[27];let E;e[28]!==Te||e[29]!==Ce?(E=Te!==null&&(0,c.jsx)(Oe,{error:Ce,testId:"mg-status-error"}),e[28]=Te,e[29]=Ce,e[30]=E):E=e[30];let A;e[31]!==N||e[32]!==a?(A=N!==null&&N.length===0&&(0,c.jsx)($e,{description:a("Data migrations you run against this shard will be tracked here."),icon:(0,c.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,c.jsx)("path",{d:"M4 12a8 8 0 0 1 13.7-5.6L20 8M20 4v4h-4M20 12a8 8 0 0 1-13.7 5.6L4 16m0 4v-4h4"})}),testId:"mg-empty",title:a("No migrations have run on this shard.")}),e[31]=N,e[32]=a,e[33]=A):A=e[33];let J;e[34]!==N||e[35]!==a?(J=N!==null&&N.length>0&&(0,c.jsx)(He,{className:"overflow-hidden py-0",children:(0,c.jsx)(Qe,{className:"px-0",children:(0,c.jsxs)(tt,{"data-testid":"mg-table",children:[(0,c.jsx)(at,{children:(0,c.jsxs)(Fe,{children:[(0,c.jsx)(q,{children:a("id")}),(0,c.jsx)(q,{children:a("direction")}),(0,c.jsx)(q,{children:a("status")}),(0,c.jsx)(q,{children:a("processed")}),(0,c.jsx)(q,{children:a("changed")}),(0,c.jsx)(q,{children:a("updated")}),(0,c.jsx)(q,{children:a("error")})]})}),(0,c.jsx)(rt,{children:N.map(St)})]})})}),e[34]=N,e[35]=a,e[36]=J):J=e[36];let P;e[37]!==a?(P=a("Run migration"),e[37]=a,e[38]=P):P=e[38];let B;e[39]!==P?(B=(0,c.jsx)(Re,{children:P}),e[39]=P,e[40]=B):B=e[40];let W;e[41]!==a?(W=a("Migration id"),e[41]=a,e[42]=W):W=e[42];let U;e[43]!==a?(U=a("migration id"),e[43]=a,e[44]=U):U=e[44];let z;e[45]!==u||e[46]!==W||e[47]!==U?(z=(0,c.jsx)(Ue,{"aria-label":W,className:"w-auto","data-testid":"mg-id-input",onChange:xt,placeholder:U,value:u}),e[45]=u,e[46]=W,e[47]=U,e[48]=z):z=e[48];let H;e[49]!==a?(H=a("Direction"),e[49]=a,e[50]=H):H=e[50];let Q;e[51]!==a?(Q=a("up"),e[51]=a,e[52]=Q):Q=e[52];let V;e[53]!==Q?(V=(0,c.jsx)("option",{value:"up",children:Q}),e[53]=Q,e[54]=V):V=e[54];let G;e[55]!==a?(G=a("down"),e[55]=a,e[56]=G):G=e[56];let X;e[57]!==G?(X=(0,c.jsx)("option",{value:"down",children:G}),e[57]=G,e[58]=X):X=e[58];let Y;e[59]!==h||e[60]!==H||e[61]!==V||e[62]!==X?(Y=(0,c.jsxs)("select",{"aria-label":H,className:"flex h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 dark:bg-input/30","data-testid":"mg-direction",onChange:kt,value:h,children:[V,X]}),e[59]=h,e[60]=H,e[61]=V,e[62]=X,e[63]=Y):Y=e[63];let Z;e[64]!==p?(Z=(0,c.jsx)("input",{checked:p,className:"size-4 accent-primary","data-testid":"mg-dry-run",id:"mg-dry-run",onChange:wt,type:"checkbox"}),e[64]=p,e[65]=Z):Z=e[65];let ee;e[66]!==a?(ee=a("Dry run"),e[66]=a,e[67]=ee):ee=e[67];let te;e[68]!==Z||e[69]!==ee?(te=(0,c.jsxs)(Re,{className:"flex items-center gap-1.5",htmlFor:"mg-dry-run",children:[Z,ee]}),e[68]=Z,e[69]=ee,e[70]=te):te=e[70];let ae;e[71]!==p||e[72]!==ye||e[73]!==f||e[74]!==C||e[75]!==a?(ae=p?(0,c.jsx)(ze,{"data-testid":"mg-run",disabled:f||!C,onClick:ye,type:"button",children:a(f?"Running\u2026":"Run")}):(0,c.jsx)(nt,{confirmLabel:a(f?"Running\u2026":"Run migration?"),disabled:f||!C,onConfirm:ye,testId:"mg-run",children:a("Run")}),e[71]=p,e[72]=ye,e[73]=f,e[74]=C,e[75]=a,e[76]=ae):ae=e[76];let re;e[77]!==z||e[78]!==Y||e[79]!==te||e[80]!==ae?(re=(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[z,Y,te,ae]}),e[77]=z,e[78]=Y,e[79]=te,e[80]=ae,e[81]=re):re=e[81];let ne;e[82]!==B||e[83]!==re?(ne=(0,c.jsxs)("div",{className:"flex flex-col gap-2 rounded-xl border border-border bg-card p-3 shadow-xs",children:[B,re]}),e[82]=B,e[83]=re,e[84]=ne):ne=e[84];let ie;e[85]!==w?(ie=w!==null&&(0,c.jsx)("pre",{className:"text-sm text-destructive whitespace-pre-wrap","data-testid":"mg-run-error",role:"alert",children:w}),e[85]=w,e[86]=ie):ie=e[86];let oe;e[87]!==v||e[88]!==a?(oe=v!==null&&(0,c.jsxs)("p",{className:"text-sm text-muted-foreground","data-testid":"mg-run-result",children:[v.dryRun?a("Dry run: "):"",a("{status} \u2014 processed",{status:v.status}),v.processed,a(", changed"),v.changed]}),e[87]=v,e[88]=a,e[89]=oe):oe=e[89];let we;return e[90]!==D||e[91]!==E||e[92]!==A||e[93]!==J||e[94]!==ne||e[95]!==ie||e[96]!==oe?(we=(0,c.jsxs)("div",{className:"flex flex-col gap-3 pt-4","data-testid":"lunora-migrations",children:[D,E,A,J,ne,ie,oe]}),e[90]=D,e[91]=E,e[92]=A,e[93]=J,e[94]=ne,e[95]=ie,e[96]=oe,e[97]=we):we=e[97],we},"yt");function St(t){return(0,c.jsxs)(Fe,{"data-testid":`mg-row-${t.id}`,children:[(0,c.jsx)(T,{children:t.id}),(0,c.jsx)(T,{children:t.direction}),(0,c.jsx)(T,{children:(0,c.jsx)(We,{variant:"secondary",children:t.status})}),(0,c.jsx)(T,{children:t.processed}),(0,c.jsx)(T,{children:t.changed}),(0,c.jsx)(T,{children:Se(t.updatedAt)}),(0,c.jsx)(T,{children:t.error??""})]},t.id)}o(St,"Je");var l=se(Ae(),1);var Le=1;function Ot(t){let e={},r=Object.keys(t);r.sort();for(let n of r)e[n]=t[n];return e}o(Ot,"re");var me=o(t=>typeof t=="object"&&t!==null,"O"),jt=o(t=>me(t)&&me(t.fields)&&me(t.indexes)&&me(t.relations)&&typeof t.shardMode=="string","de"),qt=o(t=>{if(t===void 0||t.trim()==="")return{status:"absent"};let e;try{e=JSON.parse(t)}catch(r){return{error:`baseline is not valid JSON: ${r instanceof Error?r.message:String(r)}`,status:"invalid"}}if(!me(e)||e.version!==Le||!me(e.tables))return{error:`baseline is malformed or written by an incompatible version (expected version ${String(Le)})`,status:"invalid"};for(let[r,n]of Object.entries(e.tables))if(!jt(n))return{error:`baseline table "${r}" has an invalid structure`,status:"invalid"};return{snapshot:{jurisdiction:typeof e.jurisdiction=="string"?e.jurisdiction:void 0,migrationIds:Array.isArray(e.migrationIds)?e.migrationIds:[],tables:e.tables,version:Le},status:"ok"}},"le"),Tt=o((t,e)=>t.unique===e.unique&&t.fields.length===e.fields.length&&t.fields.every((r,n)=>r===e.fields[n]),"ce"),lt=o(t=>t.unique!==void 0,"J"),_e=o(({nullable:t,optional:e,refined:r,unique:n,...a})=>JSON.stringify(Ot(a)),"D"),ct=o(t=>({form:JSON.stringify([_e(t),t.optional===!0,t.nullable===!0]),refined:t.refined===!0}),"H"),mt=o(t=>t.kind==="union"&&t.members?t.members.map(e=>ct(e)):[ct({...t,nullable:!1,optional:!1})],"V"),Ct=o((t,e)=>{if(e.kind!=="union")return!1;let r=mt(e);return mt(t).every(n=>r.some(a=>a.form===n.form&&(n.refined||!a.refined)))},"me"),O=o(t=>{switch(t.kind){case"array":return`array(${t.of?O(t.of):"?"})`;case"id":return`id(${t.ref??"?"})`;case"literal":return`literal(${t.literal??"?"})`;case"object":return`object({ ${Object.keys(t.fields??{}).join(", ")} })`;case"record":return`record(${t.key?O(t.key):"?"}, ${t.of?O(t.of):"?"})`;case"union":return(t.members??[]).map(e=>O(e)).join(" | ");default:return t.kind}},"x"),he=o((t,e,r)=>({remediation:"backfill",scope:"table",severity:"breaking",summary:r,table:t,type:e}),"T"),qe=o((t,e,r)=>({remediation:"none",scope:"table",severity:"safe",summary:r,table:t,type:e}),"q"),Mt=o((t,e,r,n,a)=>{if(!(r.kind===n.kind&&(!a||_e(r)===_e(n))))return a&&Ct(r,n)?qe(t,"widenedFieldShape",`field ${t}.${e} widened: ${O(r)} \u2192 ${O(n)} \u2014 every stored value stays valid`):r.kind!==n.kind?he(t,"changedFieldKind",`field ${t}.${e} changed type: ${r.kind} \u2192 ${n.kind} \u2014 add a data migration to convert existing values`):he(t,"changedFieldShape",`field ${t}.${e} changed shape: ${O(r)} \u2192 ${O(n)} \u2014 stored values were written against the old shape; add a data migration to convert them`)},"he"),It=o((t,e,r,n)=>{let a=[];return r.unique!==n.unique&&a.push(n.unique===!0?he(t,"addedFieldConstraint",`field ${t}.${e} became unique \u2014 existing duplicates would violate it; add a data migration to de-duplicate first`):qe(t,"relaxedFieldConstraint",`field ${t}.${e} is no longer unique`)),r.nullable!==n.nullable&&a.push(n.nullable===!0?qe(t,"relaxedFieldConstraint",`field ${t}.${e} became nullable`):he(t,"addedFieldConstraint",`field ${t}.${e} is no longer nullable \u2014 rows holding NULL would be invalid; add a data migration to backfill them`)),r.refined!==n.refined&&a.push(n.refined===!0?he(t,"addedFieldConstraint",`field ${t}.${e} gained a validation refinement \u2014 stored values were never checked against it; add a data migration if any could fail`):qe(t,"relaxedFieldConstraint",`field ${t}.${e} dropped its validation refinement`)),a},"fe"),yt=o((t,e,r,n)=>{let a=[],s=lt(r)&&lt(n),i=Mt(t,e,r,n,s);return i&&a.push(i),s&&a.push(...It(t,e,r,n)),r.optional&&!n.optional?a.push({remediation:"backfill",severity:"breaking",summary:`field ${t}.${e} became required \u2014 rows missing it would be invalid; add a data migration to backfill it`,table:t,scope:"table",type:"fieldOptionalToRequired"}):!r.optional&&n.optional&&a.push({remediation:"none",scope:"table",severity:"safe",summary:`field ${t}.${e} became optional`,table:t,type:"fieldRequiredToOptional"}),a},"Y"),Ft=o((t,e,r)=>r.optional?{remediation:"none",scope:"table",severity:"safe",summary:`added optional field ${t}.${e}`,table:t,type:"addedOptionalField"}:{remediation:"backfill",severity:"breaking",summary:`added required field ${t}.${e} \u2014 existing rows have no value; add a data migration to backfill it`,table:t,scope:"table",type:"addedRequiredField"},"ue"),Rt=o((t,e,r,n)=>{for(let[a,s]of Object.entries(r.fields)){let i=e.fields[a];i===void 0?n.push(Ft(t,a,s)):n.push(...yt(t,a,i,s))}for(let a of Object.keys(e.fields))r.fields[a]===void 0&&n.push({remediation:"backfill",severity:"breaking",summary:`removed field ${t}.${a} \u2014 add a data migration if stored data must be cleaned up`,table:t,scope:"table",type:"removedField"})},"pe"),Lt=o((t,e,r,n)=>{for(let[a,s]of Object.entries(r.indexes)){let i=e.indexes[a];if(i===void 0){n.push(s.unique?{remediation:"backfill",scope:"table",severity:"breaking",summary:`added unique index ${a} on ${t} \u2014 existing duplicates would violate it; add a data migration to de-duplicate first`,table:t,type:"addedIndex"}:{remediation:"none",scope:"table",severity:"safe",summary:`added index ${a} on ${t}`,table:t,type:"addedIndex"});continue}Tt(i,s)||n.push({remediation:"code",severity:"breaking",summary:`index ${a} on ${t} changed shape \u2014 a query may have relied on the old index`,table:t,scope:"table",type:"changedIndex"})}for(let a of Object.keys(e.indexes))r.indexes[a]===void 0&&n.push({remediation:"code",severity:"breaking",summary:`removed index ${a} on ${t} \u2014 a query that used \`.withIndex("${a}")\` would break`,table:t,scope:"table",type:"removedIndex"})},"ge"),_t=o((t,e,r,n)=>{for(let a of Object.keys(r.relations))e.relations[a]===void 0&&n.push({remediation:"none",scope:"schema",severity:"safe",summary:`added relation ${t}.${a}`,table:t,type:"addedRelation"});for(let a of Object.keys(e.relations))r.relations[a]===void 0&&n.push({remediation:"code",scope:"schema",severity:"breaking",summary:`removed relation ${t}.${a}`,table:t,type:"removedRelation"})},"be"),ut="shardBy:_unknown_",je="global",Kt=o((t,e)=>t===je&&e.startsWith(`${je}:`)||e===je&&t.startsWith(`${je}:`),"ye"),Dt=o((t,e,r)=>{if(e===r)return r!==ut?void 0:{remediation:"rehome",scope:"table",severity:"breaking",summary:`table ${t} declares a non-literal .shardBy(...) key, so codegen cannot read which column partitions it \u2014 every such key records as "${ut}" and two DIFFERENT keys would compare equal. Pass the shard key as a string literal; until then this is reported on every run, because the alternative is a silent pass on a re-home that strands every row (export/import is the only way back).`,table:t,type:"changedShardMode"};if(!Kt(e,r))return{remediation:"rehome",severity:"breaking",summary:`table ${t} changed shard mode: ${e} \u2192 ${r} \u2014 its physical storage moves, and existing rows do NOT follow the schema; re-home them with an export/import round trip (https://lunora.sh/docs/concepts/sharding#migrating-a-populated-table)`,table:t,scope:"table",type:"changedShardMode"}},"ve"),ht=o(t=>t.memory!==void 0,"Q"),pt=o(t=>t.after??0,"W"),R=o(t=>t.after===void 0?`.ttl("${t.field}")`:`.ttl("${t.field}", { after: ${String(t.after)} })`,"w"),Et=o((t,e,r)=>{if(e===void 0&&r===void 0)return;let n=o(d=>({remediation:"backfill",scope:"table",severity:"breaking",summary:d,table:t,type:"changedTtlPolicy"}),"n"),a=o(d=>({remediation:"none",scope:"table",severity:"safe",summary:d,table:t,type:"changedTtlPolicy"}),"s");if(r===void 0)return a(`table ${t} dropped its TTL policy \u2014 its rows are no longer swept`);if(e===void 0)return n(`table ${t} gained a TTL policy ${R(r)} \u2014 every row already past the cutoff is deleted on the next alarm sweep; add a data migration to refresh or clear "${r.field}" on the rows written before it`);if(e.field!==r.field)return n(`table ${t} moved its TTL to a different column: ${R(e)} \u2192 ${R(r)} \u2014 rows are now expired by a column they were never written against; add a data migration to populate "${r.field}"`);let s=pt(e),i=pt(r);return i<s?n(`table ${t} shortened its TTL: ${R(e)} \u2192 ${R(r)} \u2014 rows that were not expired under the old offset are deleted on the next alarm sweep; add a data migration to refresh "${r.field}" on the rows that must survive`):i>s?a(`table ${t} lengthened its TTL: ${R(e)} \u2192 ${R(r)}`):void 0},"xe"),At=o((t,e,r)=>{let n=[];return e.memory!==r.memory&&n.push(r.memory===!0?{remediation:"rehome",scope:"table",severity:"breaking",summary:`table ${t} became a .memory() table \u2014 every row is deleted in every shard on the next Durable Object cold start, and no data migration survives that; export the rows first if they must be kept, or revert`,table:t,type:"changedMemoryMode"}:{remediation:"none",scope:"table",severity:"safe",summary:`table ${t} is no longer a .memory() table \u2014 its rows now survive a cold start`,table:t,type:"changedMemoryMode"}),e.commitOrdered!==r.commitOrdered&&n.push(r.commitOrdered===!0?{remediation:"backfill",scope:"table",severity:"breaking",summary:`table ${t} became .commitOrdered() \u2014 rows written before it carry no _commitSeq, so a \`_commitSeq > cursor\` changefeed never offers them; add a data migration over the table to stamp them (the rewrite allocates a sequence)`,table:t,type:"changedCommitOrdering"}:{remediation:"code",scope:"table",severity:"breaking",summary:`table ${t} is no longer .commitOrdered() \u2014 new rows carry no _commitSeq, so a \`_commitSeq > cursor\` changefeed stops advancing without erroring; update the consumers before deploying`,table:t,type:"changedCommitOrdering"}),n},"ke"),Jt=o((t,e,r,n)=>{let a=Dt(t,e.shardMode,r.shardMode);if(a&&n.push(a),ht(e)&&ht(r)){n.push(...At(t,e,r));let s=Et(t,e.ttl,r.ttl);s&&n.push(s)}Rt(t,e,r,n),Lt(t,e,r,n),_t(t,e,r,n)},"$e"),Pt=o((t,e)=>{let r=[],n=t?.tables??{};for(let[a,s]of Object.entries(e.tables)){let i=n[a];if(i===void 0){r.push({remediation:"none",scope:"table",severity:"safe",summary:`added table ${a}`,table:a,type:"addedTable"});continue}Jt(a,i,s,r)}for(let a of Object.keys(n))e.tables[a]===void 0&&r.push({remediation:"rehome",scope:"table",severity:"breaking",summary:`removed table ${a} \u2014 its rows stay in each shard's SQLite, unreachable through the schema; export the shard first if the data must be kept`,table:a,type:"removedTable"});if(t!==void 0&&t.jurisdiction!==e.jurisdiction){let a=t.jurisdiction??"(none)",s=e.jurisdiction??"(none)";r.push({remediation:"rehome",scope:"schema",severity:"breaking",summary:`Durable Object jurisdiction changed from ${a} to ${s} \u2014 this re-homes every DO and strands all existing shard, scheduler, and session-DO data in the old region (no in-place migration; export then import to move it). Revert the change, or override the gate to proceed intentionally.`,type:"changedJurisdiction"})}return{changes:r}},"we"),ft=o(t=>Object.entries(t.fields).map(([e,r])=>({name:e,optional:r.optional,ref:Object.values(t.relations).find(n=>n.field===e&&n.kind==="one")?.table,type:O(r)})),"B"),gt=o((t,e,r)=>{let n={},a=e?.fields??{},s=r?.fields??{};for(let[i,d]of Object.entries(s)){let u=a[i];u===void 0?n[i]=e===void 0?"unchanged":"added":n[i]=yt(t,i,u,d).length===0?"unchanged":"changed"}for(let i of Object.keys(a))s[i]===void 0&&(n[i]="removed");return n},"U"),Bt=o((t,e)=>{let{changes:r}=Pt(t,e),n=new Set(r.filter(i=>i.scope==="table"&&i.table!==void 0).map(i=>i.table)),a=[],s=o((i,d)=>i?"added":n.has(d)?"changed":"context","a");for(let[i,d]of Object.entries(e.tables)){let u=t?.tables[i],b=s(u===void 0,i);a.push({columns:ft(d),fieldStatus:gt(i,u,d),name:i,shardMode:d.shardMode,status:b})}for(let[i,d]of Object.entries(t?.tables??{}))e.tables[i]===void 0&&a.push({columns:ft(d),fieldStatus:gt(i,d,void 0),name:i,shardMode:d.shardMode,status:"removed"});return a.sort((i,d)=>i.name.localeCompare(d.name)),{breakingCount:r.filter(i=>i.severity==="breaking").length,changes:r,tables:a}},"Oe"),bt=o(t=>{let e=qt(t);return e.status==="ok"?e.snapshot:void 0},"K"),Wt={added:"ring-2 ring-emerald-500/60",changed:"ring-2 ring-amber-500/70",context:"opacity-55",removed:"opacity-70 ring-2 ring-destructive/60"},Ut=o(t=>t==="global"||t.startsWith("global:")?"global":"shard","Te"),zt=o(t=>{let e=(0,pe.c)(24),{appliedAt:r,hash:n,onSelect:a,selected:s,seq:i}=t,d=s?"border-s-primary bg-accent/60 text-foreground":"border-s-transparent text-muted-foreground hover:bg-accent/30 hover:text-foreground",u;e[0]!==d?(u=de("flex w-full flex-col items-start gap-1 border-s-2 px-4 py-3 text-start outline-none transition-colors",d),e[0]=d,e[1]=u):u=e[1];let b=`sh-version-${n}`,h;e[2]!==n||e[3]!==a?(h=o(()=>{a(n)},"u"),e[2]=n,e[3]=a,e[4]=h):h=e[4];let y;e[5]!==i?(y=(0,l.jsxs)("span",{className:"font-mono text-[13px] tabular-nums",children:["v",i]}),e[5]=i,e[6]=y):y=e[6];let p;e[7]!==n?(p=n.slice(0,7),e[7]=n,e[8]=p):p=e[8];let g;e[9]!==p?(g=(0,l.jsx)("span",{className:"ms-auto font-mono text-[10px] tracking-wider text-muted-foreground/70 uppercase",children:p}),e[9]=p,e[10]=g):g=e[10];let f;e[11]!==y||e[12]!==g?(f=(0,l.jsxs)("span",{className:"flex w-full items-baseline gap-2",children:[y,g]}),e[11]=y,e[12]=g,e[13]=f):f=e[13];let x;e[14]!==r?(x=Se(r),e[14]=r,e[15]=x):x=e[15];let v;e[16]!==x?(v=(0,l.jsx)("span",{className:"font-mono text-[10px] tracking-wide text-muted-foreground/70",children:x}),e[16]=x,e[17]=v):v=e[17];let m;return e[18]!==v||e[19]!==u||e[20]!==b||e[21]!==h||e[22]!==f?(m=(0,l.jsx)("li",{children:(0,l.jsxs)("button",{className:u,"data-testid":b,onClick:h,type:"button",children:[f,v]})}),e[18]=v,e[19]=u,e[20]=b,e[21]=h,e[22]=f,e[23]=m):m=e[23],m},"je"),Ht=o(t=>{let e=(0,pe.c)(26),{breaking:r,count:n,first:a}=t,s=le();if(a){let g;e[0]!==n?(g=(0,l.jsx)("span",{className:"text-3xl leading-none font-light tracking-tight tabular-nums",children:n}),e[0]=n,e[1]=g):g=e[1];let f;e[2]!==s?(f=s("tables"),e[2]=s,e[3]=f):f=e[3];let x;e[4]!==f?(x=(0,l.jsx)("span",{className:"font-mono text-[11px] tracking-widest text-muted-foreground uppercase",children:f}),e[4]=f,e[5]=x):x=e[5];let v;return e[6]!==g||e[7]!==x?(v=(0,l.jsxs)("div",{className:"flex items-baseline gap-3","data-testid":"sh-summary",children:[g,x]}),e[6]=g,e[7]=x,e[8]=v):v=e[8],v}let i=r>0&&"text-destructive",d;e[9]!==i?(d=de("text-3xl leading-none font-light tracking-tight tabular-nums",i),e[9]=i,e[10]=d):d=e[10];let u;e[11]!==n||e[12]!==d?(u=(0,l.jsx)("span",{className:d,children:n}),e[11]=n,e[12]=d,e[13]=u):u=e[13];let b;e[14]!==n||e[15]!==s?(b=s(n===1?"change":"changes"),e[14]=n,e[15]=s,e[16]=b):b=e[16];let h;e[17]!==b?(h=(0,l.jsx)("span",{className:"font-mono text-[11px] tracking-widest text-muted-foreground uppercase",children:b}),e[17]=b,e[18]=h):h=e[18];let y;e[19]!==r||e[20]!==s?(y=r>0&&(0,l.jsxs)("span",{className:"font-mono text-[11px] tracking-widest text-destructive uppercase",children:["\xB7 ",s("{count} breaking",{count:r})]}),e[19]=r,e[20]=s,e[21]=y):y=e[21];let p;return e[22]!==u||e[23]!==h||e[24]!==y?(p=(0,l.jsxs)("div",{className:"flex items-baseline gap-3","data-testid":"sh-summary",children:[u,h,y]}),e[22]=u,e[23]=h,e[24]=y,e[25]=p):p=e[25],p},"Fe"),vt={addedFieldConstraint:{action:"added",kind:"constraint"},addedIndex:{action:"added",kind:"index"},addedOptionalField:{action:"added",kind:"field?"},addedRelation:{action:"added",kind:"relation"},addedRequiredField:{action:"added",kind:"field"},addedTable:{action:"added",kind:"table"},changedCommitOrdering:{action:"changed",kind:"commit ordering"},changedFieldKind:{action:"changed",kind:"field kind"},changedFieldShape:{action:"changed",kind:"field shape"},changedIndex:{action:"changed",kind:"index"},changedJurisdiction:{action:"changed",kind:"jurisdiction"},changedMemoryMode:{action:"changed",kind:"memory mode"},changedShardMode:{action:"changed",kind:"shard mode"},changedTtlPolicy:{action:"changed",kind:"TTL policy"},fieldOptionalToRequired:{action:"changed",kind:"field \u2192 required"},fieldRequiredToOptional:{action:"changed",kind:"field \u2192 optional"},relaxedFieldConstraint:{action:"removed",kind:"constraint"},removedField:{action:"removed",kind:"field"},removedIndex:{action:"removed",kind:"index"},removedRelation:{action:"removed",kind:"relation"},removedTable:{action:"removed",kind:"table"},widenedFieldShape:{action:"changed",kind:"field \u2192 wider"}},Qt=o((t,e)=>{let r=`${vt[t.type].action} ${e} `;return t.summary.startsWith(r)?t.summary.slice(r.length):t.summary},"qe"),Vt=o(t=>{let e=new Map;for(let n of t){let a=n.table??"",s=e.get(a);s===void 0?e.set(a,[n]):s.push(n)}let r=[...e].map(([n,a])=>({changes:a,table:n}));return[...r.filter(n=>n.table!==""),...r.filter(n=>n.table==="")]},"Ce"),Gt=o(t=>{let e=(0,pe.c)(2),{children:r}=t,n;return e[0]!==r?(n=(0,l.jsx)("div",{className:"px-4 pt-4 pb-2 font-mono text-[10px] tracking-widest text-muted-foreground/70 uppercase",children:r}),e[0]=r,e[1]=n):n=e[1],n},"Me"),Xt=o(({pane:t,shardKey:e=""})=>{let r=le(),n=Be(),a=Pe({strict:!1}).version,s=o(m=>{Ne(n({search:{version:m},to:"/migrations"}))},"o"),i=ce(F.schemaHistory,{},{shardKey:e}),d=i.data?.versions??[],u=a!==void 0&&d.some(m=>m.hash===a)?a:d[0]?.hash,b=d.findIndex(m=>m.hash===u),h=b===-1?void 0:d[b+1]?.hash,y=ce(F.schemaVersion,{hash:u??""},{enabled:u!==void 0,shardKey:e}),p=ce(F.schemaVersion,{hash:h??""},{enabled:h!==void 0,shardKey:e}),g=(0,ue.useMemo)(()=>{let m=bt(y.data?.version?.snapshotJson);if(m!==void 0)return Bt(bt(p.data?.version?.snapshotJson),m)},[y.data,p.data]),f=(0,ue.useMemo)(()=>(g?.tables??[]).map(m=>({columns:m.columns,name:m.name,tier:Ut(m.shardMode)})),[g]),x=(0,ue.useMemo)(()=>{let m={};for(let w of g?.tables??[])m[w.name]=Wt[w.status];return m},[g]);if(i.error!==null)return(0,l.jsx)(Oe,{error:i.errorSource,testId:"sh-error"});if(d.length===0)return(0,l.jsx)($e,{description:r("Each distinct schema shape this shard runs is recorded here, so you can see what changed and when."),testId:"sh-empty",title:r("No schema versions recorded yet.")});let v=g?.changes??[];return(0,l.jsxs)("div",{className:"flex min-h-0 flex-1 gap-4","data-testid":"lunora-schema-history",children:[(0,l.jsxs)("nav",{className:"flex w-56 shrink-0 flex-col overflow-hidden border-e border-border","data-testid":"sh-timeline-rail",children:[(0,l.jsx)(Gt,{children:r("Schema versions")}),(0,l.jsx)("ul",{className:"min-h-0 flex-1 overflow-y-auto","data-testid":"sh-timeline",children:d.map(m=>(0,l.jsx)(zt,{appliedAt:m.appliedAt,hash:m.hash,onSelect:s,selected:m.hash===u,seq:m.seq},m.hash))})]}),(0,l.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col gap-4 pe-1 pt-4",children:[(0,l.jsx)(Ht,{breaking:g?.breakingCount??0,count:h===void 0?f.length:v.length,first:h===void 0}),t==="diagram"?(0,l.jsx)("div",{className:"flex min-h-0 flex-1 flex-col",children:(0,l.jsx)(ot,{fill:!0,nodeClasses:x,tables:f,testIdPrefix:"sh"})}):(0,l.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto","data-testid":"sh-changes",children:Vt(v).map(m=>{let w=(g?.tables??[]).find(k=>k.name===m.table);return(0,l.jsxs)("section",{className:"mb-6",children:[(0,l.jsxs)("div",{className:"flex items-baseline gap-3 border-b border-border/60 pb-1.5",children:[(0,l.jsx)("span",{className:"font-mono text-[13px] text-foreground",children:m.table===""?r("schema"):m.table}),w!==void 0&&(0,l.jsx)("span",{className:"font-mono text-[10px] tracking-widest text-muted-foreground/70 tabular-nums uppercase",children:r("{count} columns",{count:w.columns.length})}),m.changes.length>1&&(0,l.jsx)("span",{className:"ms-auto font-mono text-[10px] tracking-widest text-muted-foreground/70 tabular-nums",children:m.changes.length})]}),(0,l.jsx)("ul",{children:m.changes.map(k=>{let{action:L,kind:C}=vt[k.type],j=k.severity==="breaking",M=Qt(k,C);return(0,l.jsxs)("li",{className:"flex items-baseline gap-4 border-s-2 py-1.5 ps-3 transition-colors hover:bg-accent/30",children:[(0,l.jsx)("span",{"aria-hidden":"true",className:de("-ms-3 h-3 w-0.5 shrink-0 self-center",j?"bg-destructive":"bg-transparent")}),(0,l.jsxs)("span",{className:"w-44 shrink-0 font-mono text-[10px] tracking-widest text-muted-foreground/70 uppercase",children:[r(L)," ",C]}),M!==m.table&&(0,l.jsx)("span",{className:de("min-w-0 font-mono text-[13px]",j?"text-destructive":"text-foreground"),children:M}),j&&(0,l.jsx)("span",{className:"ms-auto shrink-0 font-mono text-[10px] tracking-widest text-destructive uppercase",children:r("breaking")})]},`${k.type}-${k.summary}`)})})]},m.table)})})]})]})},"Ie"),Yt=o(t=>de("-mb-px border-b-2 px-3 py-2.5 font-mono text-[11px] tracking-wider uppercase transition-colors outline-none","hover:bg-accent/40 focus-visible:bg-accent/40",t?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),"Re"),Ta=o(t=>{let e=(0,pe.c)(11),{initialShardKey:r}=t,n=le(),[a,s]=(0,ue.useState)("diagram"),i;e[0]!==a?(i=o((y,p,g,f)=>(0,l.jsxs)("button",{"aria-selected":a===y,className:Yt(a===y),"data-testid":g,onClick:o(()=>{s(y)},"onClick"),role:"tab",type:"button",children:[p,f!==void 0&&(0,l.jsx)("span",{className:"ms-2 tabular-nums text-muted-foreground/70",children:f})]}),"o"),e[0]=a,e[1]=i):i=e[1];let d=i,u;e[2]!==n||e[3]!==d?(u=(0,l.jsxs)("div",{className:"flex shrink-0 items-center gap-1 border-b border-border px-3","data-testid":"mg-panes",role:"tablist",children:[d("diagram",n("Diagram"),"mg-pane-diagram"),d("changes",n("Changes"),"mg-pane-changes"),d("data",n("Data migrations"),"mg-pane-data")]}),e[2]=n,e[3]=d,e[4]=u):u=e[4];let b;e[5]!==r||e[6]!==a?(b=(0,l.jsx)("div",{className:"flex min-h-0 flex-1 flex-col",children:a==="data"?(0,l.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-4",children:(0,l.jsx)(dt,{initialShardKey:r})}):(0,l.jsx)(Xt,{pane:a,shardKey:r})}),e[5]=r,e[6]=a,e[7]=b):b=e[7];let h;return e[8]!==u||e[9]!==b?(h=(0,l.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col pt-4","data-testid":"lunora-migrations-route",children:[u,b]}),e[8]=u,e[9]=b,e[10]=h):h=e[10],h},"Ue");export{Ta as default};
@@ -1 +0,0 @@
1
- import{a as He}from"./chunk-NCFRIHLB.js";import{a as Se}from"./chunk-IMOHEGMV.js";import{a as Ge}from"./chunk-66UGPQVC.js";import{a as ze}from"./chunk-NFS7FTAR.js";import{W as Ue}from"./chunk-PLHA3OWK.js";import"./chunk-4L4WTGN5.js";import{a as $e}from"./chunk-55754F6H.js";import"./chunk-IS6LVJ6L.js";import"./chunk-AAVLPU5Q.js";import{b as Ze}from"./chunk-FEWMAPNI.js";import"./chunk-225VJ77I.js";import{a as qe}from"./chunk-4ZEL6BYL.js";import{f as Ke}from"./chunk-GUD3ZG3Z.js";import"./chunk-FSRSK4LY.js";import"./chunk-PUGHZTBL.js";import{d as Pe,f as Fe,g as ce,h as Re,i as Oe,p as me}from"./chunk-PTZD7RUZ.js";import{a as s,d as Me,e as ot,f as at,g as lt}from"./chunk-YKXDMIHQ.js";var Ee=Me(at(),1);var c=Me(ot(),1);var r=Me(lt(),1);var De=Fe(qe.getPitrBookmark),st=Fe(qe.pitrRestore),nt=/^\d+$/u,Je=s(ie=>{let e=ie.trim(),h=nt.test(e)?Number(e):Date.parse(e),l=new Date(h);return Number.isNaN(l.getTime())?void 0:{epochMs:h,iso:l.toISOString()}},"$e"),it=s(ie=>{let e=(0,Ee.c)(9),{text:h}=ie,l=Pe();if(h.trim()==="")return null;let t,o,p;if(e[0]!==l||e[1]!==h){let y=Je(h);t="font-mono text-xs text-muted-foreground",o="pitr-time-resolved",p=y===void 0?l("Not a time \u2014 use epoch-ms or ISO 8601."):l("Resolves to {instant} (a date-time without an offset is read in this browser's time zone; a bare date is UTC)",{instant:y.iso}),e[0]=l,e[1]=h,e[2]=t,e[3]=o,e[4]=p}else t=e[2],o=e[3],p=e[4];let N;return e[5]!==t||e[6]!==o||e[7]!==p?(N=(0,r.jsx)("p",{className:t,"data-testid":o,children:p}),e[5]=t,e[6]=o,e[7]=p,e[8]=N):N=e[8],N},"lt"),vt=s(ie=>{let e=(0,Ee.c)(140),{initialShardKey:h}=ie,l=Ke(),t=Pe(),o=h??"",p=He(o),[N,y]=(0,c.useState)(null),[f,Qe]=(0,c.useState)(""),[ue,je]=(0,c.useState)(null),[m,We]=(0,c.useState)(""),[b,Xe]=(0,c.useState)(!1),[i,Ye]=(0,c.useState)(null),[pe,w]=(0,c.useState)(null),[de,I]=(0,c.useState)(!1),[C,Ve]=(0,c.useState)(!1),he;e[0]!==l||e[1]!==o?(he=s(async a=>{I(!0),w(null);let d;try{d={current:(await l.query(De,{},ce(o))).current,error:null,unavailable:!1}}catch(n){let g=n;d={current:null,error:Re(g),unavailable:Oe(g)==="PITR_UNAVAILABLE"}}a?.aborted!==!0&&(d.error===null?y(d.current):w(d.error),Ve(d.unavailable),I(!1))},"fe"),e[0]=l,e[1]=o,e[2]=he):he=e[2];let x=he,fe,be;e[3]!==x?(fe=s(()=>{let a=new AbortController;return me(x(a.signal)),()=>{a.abort()}},"ue"),be=[x],e[3]=x,e[4]=fe,e[5]=be):(fe=e[4],be=e[5]),(0,c.useEffect)(fe,be);let xe;e[6]!==l||e[7]!==o?(xe=s(()=>{me((async()=>{try{let a=await l.query(De,{},ce(o));y(a.current)}catch{}})())},"he"),e[6]=l,e[7]=o,e[8]=xe):xe=e[8],Ge(xe,!C);let ke;e[9]===Symbol.for("react.memo_cache_sentinel")?(ke=s(a=>{Qe(a.target.value)},"be"),e[9]=ke):ke=e[9];let et=ke,Ne;e[10]===Symbol.for("react.memo_cache_sentinel")?(Ne=s(a=>{We(a.target.value)},"xe"),e[10]=Ne):Ne=e[10];let tt=Ne,ve;e[11]===Symbol.for("react.memo_cache_sentinel")?(ve=s(a=>{Xe(a.target.checked)},"ke"),e[11]=ve):ve=e[11];let rt=ve,ge,R,u,k,v,ye;if(e[12]!==m||e[13]!==l||e[14]!==ue||e[15]!==x||e[16]!==o||e[17]!==p||e[18]!==t||e[19]!==f){u=Je(f),R=s(()=>{if(u===void 0)return;let d=o;me((async()=>{I(!0),w(null);let n;try{n={result:await l.query(De,{time:u.epochMs},ce(d))}}catch(g){n={error:Re(g)}}p.current===d&&("result"in n?(je(n.result.forTime===void 0?null:{bookmark:n.result.forTime,shard:d}),y(n.result.current)):(je(null),w(n.error)),I(!1))})())},"C"),v=ue?.shard===o?ue.bookmark:null;let a;e[26]!==l||e[27]!==x||e[28]!==o?(a=s(d=>{me((async()=>{I(!0),w(null);try{let n=await l.mutation(st,d,ce(o));Ye(n),await x()}catch(n){let g=n;w(Re(g)),Oe(g)==="PITR_UNAVAILABLE"&&Ve(!0)}I(!1)})())},"o"),e[26]=l,e[27]=x,e[28]=o,e[29]=a):a=e[29],k=a,ge=m.trim()!==""||u!==void 0,ye=t("Restore {shard} to {target}?",{shard:o===""?t("root"):o,target:m.trim()===""?u?.iso??"":t("the given bookmark")}),e[12]=m,e[13]=l,e[14]=ue,e[15]=x,e[16]=o,e[17]=p,e[18]=t,e[19]=f,e[20]=ge,e[21]=R,e[22]=u,e[23]=k,e[24]=v,e[25]=ye}else ge=e[20],R=e[21],u=e[22],k=e[23],v=e[24],ye=e[25];let Te=ye,we;e[30]!==m||e[31]!==u?.epochMs||e[32]!==b||e[33]!==k?(we=s(()=>{let a=b?{restart:!0}:{};m.trim()===""?a.time=u?.epochMs:a.bookmark=m.trim(),k(a)},"Ne"),e[30]=m,e[31]=u?.epochMs,e[32]=b,e[33]=k,e[34]=we):we=e[34];let Be=we,Ie;e[35]!==b||e[36]!==i||e[37]!==k?(Ie=s(()=>{i!==null&&k(b?{bookmark:i.undoBookmark,restart:!0}:{bookmark:i.undoBookmark})},"ye"),e[35]=b,e[36]=i,e[37]=k,e[38]=Ie):Ie=e[38];let Ae=Ie,S;e[39]!==t?(S=t("Shard"),e[39]=t,e[40]=S):S=e[40];let T;e[41]!==o||e[42]!==t?(T=o===""?t("root"):o,e[41]=o,e[42]=t,e[43]=T):T=e[43];let B;e[44]!==T?(B=(0,r.jsx)("span",{className:"font-mono",children:T}),e[44]=T,e[45]=B):B=e[45];let A;e[46]!==S||e[47]!==B?(A=(0,r.jsx)("div",{className:"flex flex-wrap items-center gap-3",children:(0,r.jsxs)("span",{className:"text-xs text-muted-foreground",children:[S,": ",B]})}),e[46]=S,e[47]=B,e[48]=A):A=e[48];let _;e[49]!==t?(_=t("In-place recovery to any moment in the last 30 days. For older or portable recovery, use the snapshot backup tier."),e[49]=t,e[50]=_):_=e[50];let L;e[51]!==_?(L=(0,r.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"pitr-note",children:_}),e[51]=_,e[52]=L):L=e[52];let M;e[53]!==pe?(M=pe!==null&&(0,r.jsx)("p",{className:"text-sm text-destructive","data-testid":"pitr-error",role:"alert",children:pe}),e[53]=pe,e[54]=M):M=e[54];let P;e[55]!==t?(P=t("Current bookmark"),e[55]=t,e[56]=P):P=e[56];let U;e[57]!==P?(U=(0,r.jsx)("h3",{className:"mb-2 text-sm font-semibold",children:P}),e[57]=P,e[58]=U):U=e[58];let F;e[59]!==N?(F=N??(0,r.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),e[59]=N,e[60]=F):F=e[60];let O;e[61]!==F?(O=(0,r.jsx)("p",{className:"font-mono text-xs break-all text-muted-foreground","data-testid":"pitr-current",children:F}),e[61]=F,e[62]=O):O=e[62];let q;e[63]!==U||e[64]!==O?(q=(0,r.jsxs)("section",{className:"rounded-xl border border-border bg-card p-3 shadow-xs",children:[U,O]}),e[63]=U,e[64]=O,e[65]=q):q=e[65];let z;e[66]!==t?(z=t("Restore"),e[66]=t,e[67]=z):z=e[67];let D;e[68]!==z?(D=(0,r.jsx)("h3",{className:"text-sm font-semibold",children:z}),e[68]=z,e[69]=D):D=e[69];let E;e[70]!==t?(E=t("Time (ISO or epoch-ms, last 30 days)"),e[70]=t,e[71]=E):E=e[71];let j;e[72]!==E?(j=(0,r.jsx)(Se,{htmlFor:"pitr-time",children:E}),e[72]=E,e[73]=j):j=e[73];let V;e[74]!==f?(V=(0,r.jsx)(Ue,{"data-testid":"pitr-time",id:"pitr-time",onChange:et,placeholder:"2026-06-01T00:00:00.000Z",value:f}),e[74]=f,e[75]=V):V=e[75];let _e=de||C||u===void 0,K;e[76]!==t?(K=t("Preview"),e[76]=t,e[77]=K):K=e[77];let Z;e[78]!==R||e[79]!==_e||e[80]!==K?(Z=(0,r.jsx)($e,{"data-testid":"pitr-preview",disabled:_e,onClick:R,size:"sm",type:"button",variant:"outline",children:K}),e[78]=R,e[79]=_e,e[80]=K,e[81]=Z):Z=e[81];let $;e[82]!==V||e[83]!==Z?($=(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[V,Z]}),e[82]=V,e[83]=Z,e[84]=$):$=e[84];let G;e[85]!==f?(G=(0,r.jsx)(it,{text:f}),e[85]=f,e[86]=G):G=e[86];let H;e[87]!==v||e[88]!==t?(H=v!==null&&(0,r.jsxs)("p",{className:"font-mono text-xs break-all text-muted-foreground","data-testid":"pitr-preview-bookmark",children:[t("Bookmark for that time"),": ",v]}),e[87]=v,e[88]=t,e[89]=H):H=e[89];let J;e[90]!==j||e[91]!==$||e[92]!==G||e[93]!==H?(J=(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[j,$,G,H]}),e[90]=j,e[91]=$,e[92]=G,e[93]=H,e[94]=J):J=e[94];let Q;e[95]!==t?(Q=t("Or an explicit bookmark (wins over time)"),e[95]=t,e[96]=Q):Q=e[96];let W;e[97]!==Q?(W=(0,r.jsx)(Se,{htmlFor:"pitr-bookmark",children:Q}),e[97]=Q,e[98]=W):W=e[98];let X;e[99]!==t?(X=t("bookmark string"),e[99]=t,e[100]=X):X=e[100];let Y;e[101]!==m||e[102]!==X?(Y=(0,r.jsx)(Ue,{"data-testid":"pitr-bookmark",id:"pitr-bookmark",onChange:tt,placeholder:X,value:m}),e[101]=m,e[102]=X,e[103]=Y):Y=e[103];let ee;e[104]!==W||e[105]!==Y?(ee=(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[W,Y]}),e[104]=W,e[105]=Y,e[106]=ee):ee=e[106];let te;e[107]!==b?(te=(0,r.jsx)("input",{checked:b,className:"size-4 accent-primary","data-testid":"pitr-restart",id:"pitr-restart",onChange:rt,type:"checkbox"}),e[107]=b,e[108]=te):te=e[108];let re;e[109]!==t?(re=t("Restart the shard now so recovery applies immediately"),e[109]=t,e[110]=re):re=e[110];let oe;e[111]!==te||e[112]!==re?(oe=(0,r.jsxs)(Se,{className:"flex items-center gap-2 text-xs font-normal text-muted-foreground",htmlFor:"pitr-restart",children:[te,re]}),e[111]=te,e[112]=re,e[113]=oe):oe=e[113];let Le=de||C||!ge,ae;e[114]!==t?(ae=t("Restore"),e[114]=t,e[115]=ae):ae=e[115];let le;e[116]!==Te||e[117]!==Be||e[118]!==Le||e[119]!==ae?(le=(0,r.jsx)("div",{children:(0,r.jsx)(ze,{confirmLabel:Te,disabled:Le,onConfirm:Be,testId:"pitr-restore",children:ae})}),e[116]=Te,e[117]=Be,e[118]=Le,e[119]=ae,e[120]=le):le=e[120];let se;e[121]!==D||e[122]!==J||e[123]!==ee||e[124]!==oe||e[125]!==le?(se=(0,r.jsxs)("section",{className:"flex flex-col gap-3 rounded-xl border border-border bg-card p-3 shadow-xs",children:[D,J,ee,oe,le]}),e[121]=D,e[122]=J,e[123]=ee,e[124]=oe,e[125]=le,e[126]=se):se=e[126];let ne;e[127]!==de||e[128]!==Ae||e[129]!==i||e[130]!==t||e[131]!==C?(ne=i!==null&&(0,r.jsxs)("section",{className:"flex flex-col gap-2 rounded-xl border border-border bg-card p-3 shadow-xs","data-testid":"pitr-result",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold",children:t("Restore armed")}),(0,r.jsx)(Ze,{variant:i.restarted?"destructive":"secondary",children:i.restarted?t("restarted now"):t("on next restart")})]}),(0,r.jsxs)("p",{className:"font-mono text-xs break-all text-muted-foreground",children:[t("Restored to"),": ",i.restoredTo]}),(0,r.jsxs)("p",{className:"font-mono text-xs break-all text-muted-foreground","data-testid":"pitr-undo-bookmark",children:[t("Undo bookmark"),": ",i.undoBookmark]}),(0,r.jsx)("div",{children:(0,r.jsx)(ze,{confirmLabel:t("Confirm undo"),disabled:de||C,onConfirm:Ae,testId:"pitr-undo",children:t("Undo restore")})})]}),e[127]=de,e[128]=Ae,e[129]=i,e[130]=t,e[131]=C,e[132]=ne):ne=e[132];let Ce;return e[133]!==A||e[134]!==L||e[135]!==M||e[136]!==q||e[137]!==se||e[138]!==ne?(Ce=(0,r.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-pitr",children:[A,L,M,q,se,ne]}),e[133]=A,e[134]=L,e[135]=M,e[136]=q,e[137]=se,e[138]=ne,e[139]=Ce):Ce=e[139],Ce},"Nt");export{vt as PitrPanel};
@@ -1 +0,0 @@
1
- import{a as Be,b as Ue,c as We,d as De,e as we}from"./chunk-IHMGCHAA.js";import"./chunk-4JLGLPWV.js";import"./chunk-V3CZW3JB.js";import{a as Ve}from"./chunk-MRAMNVDG.js";import{a as qe}from"./chunk-Z5O2NQAV.js";import"./chunk-GMS77BZD.js";import"./chunk-3Q2P62UR.js";import"./chunk-AWHXPIXU.js";import"./chunk-V3VJAA4D.js";import{a as Le}from"./chunk-S3CRZLGS.js";import{a as _e}from"./chunk-EJSI4PMU.js";import"./chunk-OGUKYRFM.js";import"./chunk-OKG3HWSJ.js";import{W as ke}from"./chunk-PLHA3OWK.js";import"./chunk-Y6CXU7T4.js";import"./chunk-4L4WTGN5.js";import{a as ie}from"./chunk-55754F6H.js";import"./chunk-IS6LVJ6L.js";import"./chunk-AAVLPU5Q.js";import{b as me}from"./chunk-FEWMAPNI.js";import"./chunk-225VJ77I.js";import"./chunk-35DM4JJG.js";import{a as U}from"./chunk-4ZEL6BYL.js";import{c as Ee}from"./chunk-ZDPY27UY.js";import{f as Ne}from"./chunk-GUD3ZG3Z.js";import"./chunk-FSRSK4LY.js";import{b as Ie,c as $e}from"./chunk-PUGHZTBL.js";import{a as Ae}from"./chunk-FKVZRPV5.js";import{a as ze,b as Re,c as je,d as pe,e as B,f as z}from"./chunk-HEAQVSNS.js";import{a as Me,e as Ce}from"./chunk-N6NMLJ6R.js";import{d as ue,f as re,g as be,h as Ke,p as le,t as Te}from"./chunk-PTZD7RUZ.js";import{a as d,d as ye,e as Oe,f as Ge,g as He}from"./chunk-YKXDMIHQ.js";var ge=ye(Ge(),1);var ne=ye(Oe(),1);var t=ye(He(),1);var Se="none",Je=["all","open","resolved","ignored"],Pe=["critical","high","medium","low"],Qe=re(U.resolveIssue),Xe=re(U.ignoreIssue),Fe=re(U.assignIssue),Ye=re(U.setIssueSeverity),Ze=re(U.explainIssue),es=d(n=>Array.isArray(n?.issues)?n.issues:[],"Xe"),ss=d(n=>n==="resolved"?"success":n==="ignored"?"secondary":"warning","Je"),ts=d(n=>n==="critical"?"destructive":n==="high"?"warning":n==="medium"?"info":"secondary","Ze"),as=d(n=>{let e=(0,ge.c)(44),{expanded:u,issue:s,shardKey:$}=n,i=Ne(),l=ue(),[a,o]=(0,ne.useState)(void 0),{busy:_,error:A,run:R}=Ve(),K;e[0]!==i||e[1]!==s||e[2]!==R||e[3]!==$?(K=d(()=>{o(void 0),R(async()=>{let g={culprit:s.culprit,sampleMessage:s.sampleMessage,title:s.title},I=await i.query(Ze,g,be($));o(I)})},"C"),e[0]=i,e[1]=s,e[2]=R,e[3]=$,e[4]=K):K=e[4];let L=K;if(!u)return null;let k;if(e[5]!==s.sampleMessage){let g=$e(s.sampleMessage);k=g===void 0?void 0:Ie(g.body),e[5]=s.sampleMessage,e[6]=k}else k=e[6];let T=k,E=`issues-detail-${s.hash}`,h;e[7]!==s.sampleMessage?(h=(0,t.jsx)("p",{className:"whitespace-pre-wrap font-mono text-xs text-muted-foreground",children:s.sampleMessage}),e[7]=s.sampleMessage,e[8]=h):h=e[8];let x;e[9]!==l?(x=l("Suggested fix"),e[9]=l,e[10]=x):x=e[10];let M;e[11]!==x?(M=(0,t.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:x}),e[11]=x,e[12]=M):M=e[12];let v;e[13]!==T||e[14]!==s.hash||e[15]!==l?(v=T===void 0?(0,t.jsx)("p",{className:"mt-1 text-sm text-muted-foreground","data-testid":`issues-hint-empty-${s.hash}`,children:l("No known fix for this error yet.")}):(0,t.jsx)("p",{className:"mt-1 whitespace-pre-wrap text-sm","data-testid":`issues-hint-${s.hash}`,children:T}),e[13]=T,e[14]=s.hash,e[15]=l,e[16]=v):v=e[16];let y;e[17]!==M||e[18]!==v?(y=(0,t.jsxs)("div",{children:[M,v]}),e[17]=M,e[18]=v,e[19]=y):y=e[19];let b=`issues-explain-${s.hash}`,w;e[20]!==_||e[21]!==l?(w=l(_?"Explaining\u2026":"Explain in plain language"),e[20]=_,e[21]=l,e[22]=w):w=e[22];let m;e[23]!==_||e[24]!==L||e[25]!==w||e[26]!==b?(m=(0,t.jsx)("div",{children:(0,t.jsx)(ie,{"data-testid":b,disabled:_,onClick:L,size:"sm",type:"button",variant:"outline",children:w})}),e[23]=_,e[24]=L,e[25]=w,e[26]=b,e[27]=m):m=e[27];let f;e[28]!==A||e[29]!==s.hash?(f=A!==null&&(0,t.jsx)("p",{className:"text-xs text-destructive","data-testid":`issues-explain-error-${s.hash}`,role:"alert",children:A}),e[28]=A,e[29]=s.hash,e[30]=f):f=e[30];let p;e[31]!==a||e[32]!==s.hash||e[33]!==l?(p=a!==void 0&&(a.degraded?(0,t.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":`issues-degraded-${s.hash}`,children:a.reason==="no-ai-binding"?l("No AI binding is configured. Wire an AI binding to enable plain-language explanations \u2014 the suggested fix above is always available."):l("The AI model could not explain this error right now. The suggested fix above still applies.")}):(0,t.jsxs)("div",{"data-testid":`issues-explanation-${s.hash}`,children:[(0,t.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:l("AI explanation")}),(0,t.jsx)("p",{className:"mt-1 whitespace-pre-wrap text-sm",children:a.explanation}),a.groundedId===void 0&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground","data-testid":`issues-ungrounded-${s.hash}`,children:l("No catalog fix matched this error, so this explanation is the model's own reading of the message. Verify before acting on it.")}),(0,t.jsx)("p",{className:"mt-1 text-[0.7rem] text-muted-foreground",children:l("Generated by {model}",{model:a.model})})]})),e[31]=a,e[32]=s.hash,e[33]=l,e[34]=p):p=e[34];let c;e[35]!==m||e[36]!==f||e[37]!==p||e[38]!==h||e[39]!==y?(c=(0,t.jsx)(z,{className:"bg-muted/30",colSpan:7,children:(0,t.jsxs)("div",{className:"flex flex-col gap-3 py-1",children:[h,y,m,f,p]})}),e[35]=m,e[36]=f,e[37]=p,e[38]=h,e[39]=y,e[40]=c):c=e[40];let S;return e[41]!==c||e[42]!==E?(S=(0,t.jsx)(pe,{"data-testid":E,children:c}),e[41]=c,e[42]=E,e[43]=S):S=e[43],S},"et"),is=d(n=>{let e=(0,ge.c)(119),{busy:u,issue:s,rowError:$,runTriage:i,shardKey:l}=n,a=ue(),[o,_]=(0,ne.useState)(!1),A;e[0]===Symbol.for("react.memo_cache_sentinel")?(A=d(()=>{_(rs)},"A"),e[0]=A):A=e[0];let R=A,K;e[1]!==s.hash||e[2]!==i?(K=d(ae=>{let ce=ae===null||ae===Se?null:ae;le(i(s.hash,Ye,{severity:ce}))},"C"),e[1]=s.hash,e[2]=i,e[3]=K):K=e[3];let L=K,k;e[4]!==s.hash||e[5]!==i?(k=d(ae=>{if(ae.key!=="Enter")return;let ce=ae.currentTarget.value.trim();le(i(s.hash,Fe,{assignee:ce===""?null:ce}))},"T"),e[4]=s.hash,e[5]=i,e[6]=k):k=e[6];let T=k,E=`issues-row-${s.hash}`,h;e[7]!==a?(h=a("Toggle issue details"),e[7]=a,e[8]=h):h=e[8];let x=`issues-toggle-${s.hash}`,M=`mt-1 size-3 shrink-0 text-muted-foreground transition-transform ${o?"rotate-90":""}`,v;e[9]===Symbol.for("react.memo_cache_sentinel")?(v=(0,t.jsx)("path",{d:"m9 6 6 6-6 6"}),e[9]=v):v=e[9];let y;e[10]!==M?(y=(0,t.jsx)("svg",{"aria-hidden":"true",className:M,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",children:v}),e[10]=M,e[11]=y):y=e[11];let b;e[12]!==s.title?(b=(0,t.jsx)("span",{className:"block truncate font-medium",title:s.title,children:s.title}),e[12]=s.title,e[13]=b):b=e[13];let w;e[14]!==s.culprit?(w=(0,t.jsx)("span",{className:"block truncate font-mono text-xs text-muted-foreground",title:s.culprit,children:s.culprit}),e[14]=s.culprit,e[15]=w):w=e[15];let m;e[16]!==b||e[17]!==w?(m=(0,t.jsxs)("span",{className:"min-w-0",children:[b,w]}),e[16]=b,e[17]=w,e[18]=m):m=e[18];let f;e[19]!==o||e[20]!==m||e[21]!==h||e[22]!==x||e[23]!==y?(f=(0,t.jsxs)("button",{"aria-expanded":o,"aria-label":h,className:"flex w-full items-start gap-2 text-left","data-testid":x,onClick:R,type:"button",children:[y,m]}),e[19]=o,e[20]=m,e[21]=h,e[22]=x,e[23]=y,e[24]=f):f=e[24];let p;e[25]!==s.hash||e[26]!==$?(p=$!==void 0&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive","data-testid":`issues-action-error-${s.hash}`,role:"alert",children:$}),e[25]=s.hash,e[26]=$,e[27]=p):p=e[27];let c;e[28]!==f||e[29]!==p?(c=(0,t.jsxs)(z,{className:"max-w-80",children:[f,p]}),e[28]=f,e[29]=p,e[30]=c):c=e[30];let S=`issues-status-${s.hash}`,g;e[31]!==s.status?(g=ss(s.status),e[31]=s.status,e[32]=g):g=e[32];let I;e[33]!==s.status||e[34]!==S||e[35]!==g?(I=(0,t.jsx)(z,{children:(0,t.jsx)(me,{"data-testid":S,variant:g,children:s.status})}),e[33]=s.status,e[34]=S,e[35]=g,e[36]=I):I=e[36];let j=s.severity??Se,r;e[37]!==a?(r=a("Set severity"),e[37]=a,e[38]=r):r=e[38];let oe=`issues-severity-${s.hash}`,V;e[39]!==a?(V=a("\u2014"),e[39]=a,e[40]=V):V=e[40];let N;e[41]!==s.severity||e[42]!==a?(N=s.severity===void 0?(0,t.jsx)("span",{className:"text-muted-foreground",children:a("\u2014")}):(0,t.jsx)(me,{variant:ts(s.severity),children:s.severity}),e[41]=s.severity,e[42]=a,e[43]=N):N=e[43];let C;e[44]!==V||e[45]!==N?(C=(0,t.jsx)(Ue,{placeholder:V,children:N}),e[44]=V,e[45]=N,e[46]=C):C=e[46];let q;e[47]!==r||e[48]!==oe||e[49]!==C?(q=(0,t.jsx)(We,{"aria-label":r,className:"h-7 w-[110px]","data-testid":oe,children:C}),e[47]=r,e[48]=oe,e[49]=C,e[50]=q):q=e[50];let de;e[51]===Symbol.for("react.memo_cache_sentinel")?(de=Pe.map(ls),e[51]=de):de=e[51];let W;e[52]!==a?(W=a("Clear"),e[52]=a,e[53]=W):W=e[53];let D;e[54]!==W?(D=(0,t.jsxs)(De,{children:[de,(0,t.jsx)(we,{value:Se,children:W})]}),e[54]=W,e[55]=D):D=e[55];let F;e[56]!==u||e[57]!==L||e[58]!==j||e[59]!==q||e[60]!==D?(F=(0,t.jsx)(z,{children:(0,t.jsxs)(Be,{disabled:u,onValueChange:L,value:j,children:[q,D]})}),e[56]=u,e[57]=L,e[58]=j,e[59]=q,e[60]=D,e[61]=F):F=e[61];let O;e[62]!==a?(O=a("Assignee"),e[62]=a,e[63]=O):O=e[63];let fe=`issues-assignee-${s.hash}`,xe=s.assignee??"",ve=s.assignee??"",G;e[64]!==a?(G=a("Unassigned"),e[64]=a,e[65]=G):G=e[65];let H;e[66]!==u||e[67]!==T||e[68]!==O||e[69]!==fe||e[70]!==xe||e[71]!==ve||e[72]!==G?(H=(0,t.jsx)(z,{children:(0,t.jsx)(ke,{"aria-label":O,className:"h-7 w-32","data-testid":fe,defaultValue:xe,disabled:u,onKeyDown:T,placeholder:G},ve)}),e[66]=u,e[67]=T,e[68]=O,e[69]=fe,e[70]=xe,e[71]=ve,e[72]=G,e[73]=H):H=e[73];let J;e[74]!==s.count?(J=(0,t.jsx)(z,{className:"text-right",children:(0,t.jsx)(me,{variant:"secondary",children:s.count})}),e[74]=s.count,e[75]=J):J=e[75];let P;e[76]!==s.lastSeen?(P=Te(s.lastSeen),e[76]=s.lastSeen,e[77]=P):P=e[77];let Q;e[78]!==P?(Q=(0,t.jsx)(z,{className:"text-xs tabular-nums text-muted-foreground",children:P}),e[78]=P,e[79]=Q):Q=e[79];let X;e[80]!==u||e[81]!==s.hash||e[82]!==s.status||e[83]!==i||e[84]!==a?(X=s.status!=="resolved"&&(0,t.jsx)(ie,{"data-testid":`issues-resolve-${s.hash}`,disabled:u,onClick:d(()=>{le(i(s.hash,Qe,{}))},"onClick"),size:"xs",variant:"outline",children:a("Resolve")}),e[80]=u,e[81]=s.hash,e[82]=s.status,e[83]=i,e[84]=a,e[85]=X):X=e[85];let Y;e[86]!==u||e[87]!==s.hash||e[88]!==s.status||e[89]!==i||e[90]!==a?(Y=s.status!=="ignored"&&(0,t.jsx)(ie,{"data-testid":`issues-ignore-${s.hash}`,disabled:u,onClick:d(()=>{le(i(s.hash,Xe,{}))},"onClick"),size:"xs",variant:"ghost",children:a("Ignore")}),e[86]=u,e[87]=s.hash,e[88]=s.status,e[89]=i,e[90]=a,e[91]=Y):Y=e[91];let Z;e[92]!==u||e[93]!==s.assignee||e[94]!==s.hash||e[95]!==s.status||e[96]!==i||e[97]!==a?(Z=s.status!=="open"&&(0,t.jsx)(ie,{"data-testid":`issues-reopen-${s.hash}`,disabled:u,onClick:d(()=>{le(i(s.hash,Fe,{assignee:s.assignee??null}))},"onClick"),size:"xs",variant:"ghost",children:a("Reopen")}),e[92]=u,e[93]=s.assignee,e[94]=s.hash,e[95]=s.status,e[96]=i,e[97]=a,e[98]=Z):Z=e[98];let ee;e[99]!==X||e[100]!==Y||e[101]!==Z?(ee=(0,t.jsx)(z,{className:"text-right",children:(0,t.jsxs)("div",{className:"flex justify-end gap-1",children:[X,Y,Z]})}),e[99]=X,e[100]=Y,e[101]=Z,e[102]=ee):ee=e[102];let se;e[103]!==c||e[104]!==I||e[105]!==F||e[106]!==H||e[107]!==J||e[108]!==Q||e[109]!==E||e[110]!==ee?(se=(0,t.jsxs)(pe,{"data-testid":E,children:[c,I,F,H,J,Q,ee]}),e[103]=c,e[104]=I,e[105]=F,e[106]=H,e[107]=J,e[108]=Q,e[109]=E,e[110]=ee,e[111]=se):se=e[111];let te;e[112]!==o||e[113]!==s||e[114]!==l?(te=(0,t.jsx)(as,{expanded:o,issue:s,shardKey:l},s.sampleMessage),e[112]=o,e[113]=s,e[114]=l,e[115]=te):te=e[115];let he;return e[116]!==se||e[117]!==te?(he=(0,t.jsxs)(t.Fragment,{children:[se,te]}),e[116]=se,e[117]=te,e[118]=he):he=e[118],he},"tt"),ks=d(n=>{let e=(0,ge.c)(38),{initialShardKey:u}=n,s=ue(),$=Ne(),{queryShardKey:i,setShardKey:l,shardKey:a}=Le(u),[o,_]=(0,ne.useState)("all"),[A,R]=(0,ne.useState)(ns),[K,L]=(0,ne.useState)(os),k;e[0]!==o?(k=o==="all"?{}:{status:o},e[0]=o,e[1]=k):k=e[1];let T;e[2]!==i?(T={live:!0,shardKey:i},e[2]=i,e[3]=T):T=e[3];let{data:E,error:h,liveError:x}=Ee(U.getIssues,k,T),M=E!==void 0,v;if(e[4]!==K||e[5]!==A||e[6]!==$||e[7]!==E||e[8]!==h||e[9]!==x||e[10]!==M||e[11]!==i||e[12]!==l||e[13]!==a||e[14]!==o||e[15]!==s){let y=es(E),b;e[17]!==$||e[18]!==i?(b=d(async(r,oe,V)=>{L(N=>{if(!N.has(r))return N;let C=new Map(N);return C.delete(r),C}),R(N=>new Set(N).add(r));try{await $.query(oe,{...V,hash:r},be(i))}catch(N){let C=Ke(N);L(q=>new Map(q).set(r,C))}R(N=>{let C=new Set(N);return C.delete(r),C})},"S"),e[17]=$,e[18]=i,e[19]=b):b=e[19];let w=b,m;e[20]!==s?(m=d(r=>s(r==="all"?"All":r==="open"?"Open":r==="resolved"?"Resolved":"Ignored"),"u"),e[20]=s,e[21]=m):m=e[21];let f=m,p;e[22]!==h?(p=h!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"issues-error",role:"alert",children:h}),e[22]=h,e[23]=p):p=e[23];let c;e[24]!==l||e[25]!==a?(c=(0,t.jsx)(_e,{onChange:l,testId:"issues-shard-input",value:a}),e[24]=l,e[25]=a,e[26]=c):c=e[26];let S;e[27]!==x?(S=(0,t.jsx)(qe,{message:x,prefix:"issues"}),e[27]=x,e[28]=S):S=e[28];let g;e[29]!==o||e[30]!==f?(g=Je.map(r=>(0,t.jsx)(ie,{"data-active":o===r?"":void 0,"data-testid":`issues-filter-${r}`,onClick:d(()=>{_(r)},"onClick"),size:"xs",variant:o===r?"default":"outline",children:f(r)},r)),e[29]=o,e[30]=f,e[31]=g):g=e[31];let I;e[32]!==g?(I=(0,t.jsx)("div",{className:"ms-auto flex items-center gap-1","data-testid":"issues-status-filter",role:"group",children:g}),e[32]=g,e[33]=I):I=e[33];let j;e[34]!==I||e[35]!==c||e[36]!==S?(j=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,S,I]}),e[34]=I,e[35]=c,e[36]=S,e[37]=j):j=e[37],v=(0,t.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-issues-panel",children:[p,j,M&&y.length===0?(0,t.jsx)(Ae,{description:s("No grouped errors yet. When a function throws or a container crashes, matching errors fold into a single issue here."),testId:"issues-empty",title:s("No issues")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(ze,{"data-testid":"issues-table",children:[(0,t.jsx)(Re,{children:(0,t.jsxs)(pe,{children:[(0,t.jsx)(B,{children:s("Issue")}),(0,t.jsx)(B,{children:s("Status")}),(0,t.jsx)(B,{children:s("Severity")}),(0,t.jsx)(B,{children:s("Assignee")}),(0,t.jsx)(B,{className:"text-right",children:s("Events")}),(0,t.jsx)(B,{children:s("Last seen")}),(0,t.jsx)(B,{className:"text-right",children:s("Actions")})]})}),(0,t.jsx)(je,{children:y.map(r=>(0,t.jsx)(is,{busy:A.has(r.hash),issue:r,rowError:K.get(r.hash),runTriage:w,shardKey:i},r.hash))})]})})})]}),e[4]=K,e[5]=A,e[6]=$,e[7]=E,e[8]=h,e[9]=x,e[10]=M,e[11]=i,e[12]=l,e[13]=a,e[14]=o,e[15]=s,e[16]=v}else v=e[16];return v},"Tt");function rs(n){return!n}d(rs,"st");function ls(n){return(0,t.jsx)(we,{value:n,children:n},n)}d(ls,"at");function ns(){return new Set}d(ns,"it");function os(){return new Map}d(os,"lt");export{ks as default};
@@ -1 +0,0 @@
1
- import{a as Ze}from"./chunk-3FBLWUXD.js";import{a as qe}from"./chunk-FBPF5WYL.js";import{a as Ke}from"./chunk-MRAMNVDG.js";import{a as He}from"./chunk-XZMOZFE6.js";import{a as O}from"./chunk-IMOHEGMV.js";import{a as Je}from"./chunk-LCRAEP3B.js";import"./chunk-UXXDN6Z3.js";import{a as We}from"./chunk-66UGPQVC.js";import{a as Xe}from"./chunk-QKEJLVC5.js";import"./chunk-AWHXPIXU.js";import"./chunk-V3VJAA4D.js";import{W as T}from"./chunk-PLHA3OWK.js";import"./chunk-4L4WTGN5.js";import{a as _}from"./chunk-55754F6H.js";import"./chunk-IS6LVJ6L.js";import"./chunk-AAVLPU5Q.js";import{b as D}from"./chunk-FEWMAPNI.js";import"./chunk-225VJ77I.js";import{b as De}from"./chunk-ZDPY27UY.js";import{f as J}from"./chunk-GUD3ZG3Z.js";import"./chunk-FSRSK4LY.js";import"./chunk-PUGHZTBL.js";import{a as Ve}from"./chunk-FKVZRPV5.js";import{a as ze,b as _e,c as Pe,d as q,e as U,f as z}from"./chunk-HEAQVSNS.js";import{a as K,e as X}from"./chunk-N6NMLJ6R.js";import{d as Q,h as Ee,o as Ue,p as Z,r as Qe,t as te}from"./chunk-PTZD7RUZ.js";import{a as s,d as Me,e as at,f as lt,g as nt}from"./chunk-YKXDMIHQ.js";var C=Me(at(),1);var W=Me(lt(),1);var t=Me(nt(),1);var it=s(()=>{let h=(0,W.c)(3),{config:e,ready:n}=qe(),l;return h[0]!==e.capabilities||h[1]!==n?(l={capabilities:e.capabilities,ready:n},h[0]=e.capabilities,h[1]=n,h[2]=l):l=h[2],l},"nt"),st=s((h,e)=>typeof h.acceptedAt=="number"?"spent":typeof h.expiresAt=="number"&&h.expiresAt<=e?"expired":"pending","lt"),et=500,rt=s((h,e)=>{if(!URL.canParse(h.trim()))return null;let n=new URL(h.trim());return n.searchParams.set("email",e.email),n.searchParams.set("invite",e.token),n.toString()},"at"),dt=s(h=>{let e=(0,W.c)(34),{issued:n,onSignUpPageChange:l,signUpPage:o}=h,a=Q(),[p,i]=(0,C.useState)(null),u;e[0]!==n||e[1]!==o?(u=rt(o,n),e[0]=n,e[1]=o,e[2]=u):u=e[2];let c=u,y;e[3]!==c?(y=s(()=>{let $="navigator"in globalThis?globalThis.navigator.clipboard:void 0;c===null||$===void 0||Z($.writeText(c).then(()=>(i(c),!0)))},"y"),e[3]=c,e[4]=y):y=e[4];let w=y,g;e[5]!==a?(g=a("Send this link to the invitee. It is shown once and cannot be recovered."),e[5]=a,e[6]=g):g=e[6];let I;e[7]!==g?(I=(0,t.jsx)("p",{className:"text-sm",children:g}),e[7]=g,e[8]=I):I=e[8];let k=c===null,v;e[9]!==a?(v=a("Your app's sign-up page"),e[9]=a,e[10]=v):v=e[10];let d;e[11]!==l?(d=s($=>{l($.target.value)},"r"),e[11]=l,e[12]=d):d=e[12];let m;e[13]!==o||e[14]!==k||e[15]!==v||e[16]!==d?(m=(0,t.jsx)(T,{"aria-invalid":k,"aria-label":v,"data-testid":"sign-up-invitation-page",onChange:d,value:o}),e[13]=o,e[14]=k,e[15]=v,e[16]=d,e[17]=m):m=e[17];let b=c??"",x;e[18]!==b?(x=(0,t.jsx)(T,{"data-testid":"sign-up-invitation-link",readOnly:!0,value:b}),e[18]=b,e[19]=x):x=e[19];let N;e[20]!==p||e[21]!==c||e[22]!==a?(N=a(p!==null&&p===c?"Copied":"Copy"),e[20]=p,e[21]=c,e[22]=a,e[23]=N):N=e[23];let f;e[24]!==w||e[25]!==N?(f=(0,t.jsx)(_,{"data-testid":"sign-up-invitation-copy",onClick:w,type:"button",children:N}),e[24]=w,e[25]=N,e[26]=f):f=e[26];let r;e[27]!==x||e[28]!==f?(r=(0,t.jsxs)("div",{className:"flex gap-2",children:[x,f]}),e[27]=x,e[28]=f,e[29]=r):r=e[29];let S;return e[30]!==r||e[31]!==I||e[32]!==m?(S=(0,t.jsx)(K,{children:(0,t.jsxs)(X,{className:"flex flex-col gap-2 p-4",children:[I,m,r]})}),e[30]=r,e[31]=I,e[32]=m,e[33]=S):S=e[33],S},"it"),ot=s(()=>{let h=J(),e=Q(),[n,l]=(0,C.useState)(""),[o,a]=(0,C.useState)(null),[p,i]=(0,C.useState)(null),[u,c]=(0,C.useState)(()=>`${Qe(h.url)}/sign-up`),y=De(["lunora-auth-sign-up-invitations",et],()=>h.listAuthSignUpInvitations({limit:et})),w=y.data?.rows??null,g=y.data?.total??0,I=s(()=>{let v=n.trim();v!==""&&(a(null),Z((async()=>{try{let d=await h.createAuthSignUpInvitation({email:v}),m=typeof d.token=="string"?d.token:void 0;i(m===void 0?null:{email:v,token:m}),l(""),y.refetch()}catch(d){a(d instanceof Error?d.message:String(d))}})()))},"w"),k=s(v=>{a(null),Z((async()=>{try{await h.revokeAuthSignUpInvitation({email:v}),y.refetch()}catch(d){a(d instanceof Error?d.message:String(d))}})())},"k");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"sign-up-invitations",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-base font-medium",children:e("Sign-up invitations")}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e("Only invited addresses can create an account. Nothing is emailed \u2014 send the invitee the one-time link yourself.")})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(T,{"aria-label":e("Email address to invite"),"data-testid":"sign-up-invitation-email",onChange:s(v=>{l(v.target.value)},"onChange"),placeholder:e("ada@example.com"),type:"email",value:n}),(0,t.jsx)(_,{"data-testid":"sign-up-invitation-submit",onClick:I,type:"button",children:e("Invite")})]}),p!==null&&(0,t.jsx)(dt,{issued:p,onSignUpPageChange:c,signUpPage:u},p.token),(o??y.error)!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"sign-up-invitations-error",role:"alert",children:o??y.error}),w!==null&&w.length===0&&(0,t.jsx)(Ve,{testId:"sign-up-invitations-empty",title:e("Nobody has been invited yet.")}),w!==null&&g>w.length&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"sign-up-invitations-truncated",children:e("Showing the most recent invitations. Query the signUpInvitation table directly to see the rest.")}),w!==null&&w.length>0&&(0,t.jsx)(K,{children:(0,t.jsx)(X,{className:"p-0",children:(0,t.jsxs)(ze,{children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(q,{children:[(0,t.jsx)(U,{children:e("Email")}),(0,t.jsx)(U,{children:e("Status")}),(0,t.jsx)(U,{children:e("Expires")}),(0,t.jsx)(U,{children:e("Invited by")}),(0,t.jsx)(U,{})]})}),(0,t.jsx)(Pe,{children:w.map(v=>{let d=st(v,Date.now()),m=v.email??"";return(0,t.jsxs)(q,{"data-testid":`sign-up-invitation-${m}`,children:[(0,t.jsx)(z,{children:m}),(0,t.jsxs)(z,{"data-testid":`sign-up-invitation-status-${m}`,children:[d==="spent"&&e("Accepted"),d==="expired"&&e("Expired"),d==="pending"&&e("Pending")]}),(0,t.jsx)(z,{children:typeof v.expiresAt=="number"?te(v.expiresAt):"\u2014"}),(0,t.jsx)(z,{children:v.invitedBy??"\u2014"}),(0,t.jsx)(z,{className:"text-right",children:(0,t.jsx)(_,{onClick:s(()=>{k(m)},"onClick"),type:"button",variant:"ghost",children:e("Revoke")})})]},v.id)})})]})})})]})},"rt"),ct={boolean:"checkbox",date:"datetime-local",number:"number",string:"text"},ut=s((h,e)=>h.type==="boolean"?!0:typeof e!="string"||e.trim()===""?!1:h.type!=="number"||!Number.isNaN(Number(e.trim())),"dt"),mt=s((h,e)=>{if(h.type==="boolean")return e===!0?{value:!0}:h.required?{value:!1}:void 0;let n=typeof e=="string"?e.trim():"";if(n!==""){if(h.type==="number"){let l=Number(n);return Number.isNaN(l)?void 0:{value:l}}return{value:n}}},"ct"),ht=s(h=>{let e=(0,W.c)(105),{onClose:n,onCreated:l}=h,o=J(),a=Q(),{config:p}=qe(),{busy:i,error:u,run:c}=Ke(),[y,w]=(0,C.useState)(""),[g,I]=(0,C.useState)(""),[k,v]=(0,C.useState)(""),[d,m]=(0,C.useState)(""),b;e[0]===Symbol.for("react.memo_cache_sentinel")?(b={},e[0]=b):b=e[0];let[x,N]=(0,C.useState)(b),f;e[1]===Symbol.for("react.memo_cache_sentinel")?(f=s(A=>{w(A.target.value)},"p"),e[1]=f):f=e[1];let r=f,S;e[2]===Symbol.for("react.memo_cache_sentinel")?(S=s(A=>{I(A.target.value)},"I"),e[2]=S):S=e[2];let $=S,j;e[3]===Symbol.for("react.memo_cache_sentinel")?(j=s(A=>{v(A.target.value)},"z"),e[3]=j):j=e[3];let H=j,M;e[4]===Symbol.for("react.memo_cache_sentinel")?(M=s(A=>{m(A.target.value)},"M"),e[4]=M):M=e[4];let Y=M,B;e[5]===Symbol.for("react.memo_cache_sentinel")?(B=s((A,R)=>{N(ee=>({...ee,[A]:R}))},"L"),e[5]=B):B=e[5];let V=B,G;e[6]!==x?(G=s(A=>x[A.name]??(A.type==="boolean"?!1:""),"Y"),e[6]=x,e[7]=G):G=e[7];let P=G,L;if(e[8]!==p.userFields||e[9]!==P){let A;e[11]!==P?(A=s(R=>!R.required||ut(R,P(R)),"A"),e[11]=P,e[12]=A):A=e[12],L=p.userFields.every(A),e[8]=p.userFields,e[9]=P,e[10]=L}else L=e[10];let F=L,E;e[13]!==i||e[14]!==y||e[15]!==g||e[16]!==F?(E=!i&&y.trim()!==""&&g.trim()!==""&&F,e[13]=i,e[14]=y,e[15]=g,e[16]=F,e[17]=E):E=e[17];let $e=E,ae;e[18]!==p.userFields||e[19]!==P?(ae=s(()=>{let A={};for(let R of p.userFields){let ee=mt(R,P(R));ee!==void 0&&(A[R.name]=ee.value)}return Object.keys(A).length===0?void 0:A},"te"),e[18]=p.userFields,e[19]=P,e[20]=ae):ae=e[20];let je=ae,Re;e[21]!==je||e[22]!==o||e[23]!==y||e[24]!==g||e[25]!==n||e[26]!==l||e[27]!==k||e[28]!==d||e[29]!==c?(Re=s(()=>{c(async()=>{await o.createAuthUser({data:je(),email:y.trim(),name:g.trim(),password:k===""?void 0:k,role:d.trim()===""?void 0:d.trim()}),l(),n()})},"De"),e[21]=je,e[22]=o,e[23]=y,e[24]=g,e[25]=n,e[26]=l,e[27]=k,e[28]=d,e[29]=c,e[30]=Re):Re=e[30];let Be=Re,le;e[31]!==a?(le=a("Create user"),e[31]=a,e[32]=le):le=e[32];let ne;e[33]!==a?(ne=a("Create user"),e[33]=a,e[34]=ne):ne=e[34];let ie;e[35]!==ne?(ie=(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:ne}),e[35]=ne,e[36]=ie):ie=e[36];let se;e[37]!==a?(se=a("email"),e[37]=a,e[38]=se):se=e[38];let re;e[39]!==se?(re=(0,t.jsx)(O,{htmlFor:"uc-email",children:se}),e[39]=se,e[40]=re):re=e[40];let de;e[41]!==y?(de=(0,t.jsx)(T,{"data-testid":"uc-email",id:"uc-email",onChange:r,type:"email",value:y}),e[41]=y,e[42]=de):de=e[42];let oe;e[43]!==re||e[44]!==de?(oe=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[re,de]}),e[43]=re,e[44]=de,e[45]=oe):oe=e[45];let ce;e[46]!==a?(ce=a("name"),e[46]=a,e[47]=ce):ce=e[47];let ue;e[48]!==ce?(ue=(0,t.jsx)(O,{htmlFor:"uc-name",children:ce}),e[48]=ce,e[49]=ue):ue=e[49];let me;e[50]!==g?(me=(0,t.jsx)(T,{"data-testid":"uc-name",id:"uc-name",onChange:$,value:g}),e[50]=g,e[51]=me):me=e[51];let he;e[52]!==ue||e[53]!==me?(he=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[ue,me]}),e[52]=ue,e[53]=me,e[54]=he):he=e[54];let pe;e[55]!==a?(pe=a("Password (optional)"),e[55]=a,e[56]=pe):pe=e[56];let fe;e[57]!==pe?(fe=(0,t.jsx)(O,{htmlFor:"uc-password",children:pe}),e[57]=pe,e[58]=fe):fe=e[58];let ve;e[59]!==k?(ve=(0,t.jsx)(T,{"data-testid":"uc-password",id:"uc-password",onChange:H,type:"password",value:k}),e[59]=k,e[60]=ve):ve=e[60];let ge;e[61]!==fe||e[62]!==ve?(ge=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[fe,ve]}),e[61]=fe,e[62]=ve,e[63]=ge):ge=e[63];let be;e[64]!==a?(be=a("Role (optional)"),e[64]=a,e[65]=be):be=e[65];let xe;e[66]!==be?(xe=(0,t.jsx)(O,{htmlFor:"uc-role",children:be}),e[66]=be,e[67]=xe):xe=e[67];let ye;e[68]!==d?(ye=(0,t.jsx)(T,{"data-testid":"uc-role",id:"uc-role",onChange:Y,value:d}),e[68]=d,e[69]=ye):ye=e[69];let Ne;e[70]!==xe||e[71]!==ye?(Ne=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[xe,ye]}),e[70]=xe,e[71]=ye,e[72]=Ne):Ne=e[72];let ke;e[73]!==p.userFields||e[74]!==P||e[75]!==a?(ke=p.userFields.length>0&&(0,t.jsxs)("div",{className:"flex flex-col gap-3 border-t border-border pt-3","data-testid":"uc-plugin-fields",children:[(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Plugin fields")}),p.userFields.map(A=>{let R=`uc-field-${A.name}`,ee=A.required?"":` (${a("optional")})`;if(A.type==="boolean"){let Oe=P(A)===!0;return(0,t.jsxs)("label",{className:"flex items-center gap-2",htmlFor:R,children:[(0,t.jsx)(Ze,{checked:Oe,"data-testid":R,id:R,onCheckedChange:s(tt=>{V(A.name,tt)},"onCheckedChange")}),(0,t.jsxs)("span",{className:"text-sm",children:[A.name,ee]})]},A.name)}let Ge=P(A);return(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxs)(O,{htmlFor:R,children:[A.name,ee]}),(0,t.jsx)(T,{"data-testid":R,id:R,onChange:s(Oe=>{V(A.name,Oe.target.value)},"onChange"),type:ct[A.type],value:typeof Ge=="string"?Ge:""})]},A.name)})]}),e[73]=p.userFields,e[74]=P,e[75]=a,e[76]=ke):ke=e[76];let we;e[77]!==u?(we=u!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"uc-error",role:"alert",children:u}),e[77]=u,e[78]=we):we=e[78];let Ce;e[79]!==a?(Ce=a("Cancel"),e[79]=a,e[80]=Ce):Ce=e[80];let Ie;e[81]!==n||e[82]!==Ce?(Ie=(0,t.jsx)(_,{"data-testid":"uc-cancel",onClick:n,size:"sm",type:"button",variant:"outline",children:Ce}),e[81]=n,e[82]=Ce,e[83]=Ie):Ie=e[83];let Le=!$e,Ae;e[84]!==i||e[85]!==a?(Ae=a(i?"Creating\u2026":"Create"),e[84]=i,e[85]=a,e[86]=Ae):Ae=e[86];let Se;e[87]!==Be||e[88]!==Le||e[89]!==Ae?(Se=(0,t.jsx)(_,{"data-testid":"uc-submit",disabled:Le,onClick:Be,size:"sm",type:"button",children:Ae}),e[87]=Be,e[88]=Le,e[89]=Ae,e[90]=Se):Se=e[90];let Fe;e[91]!==Ie||e[92]!==Se?(Fe=(0,t.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[Ie,Se]}),e[91]=Ie,e[92]=Se,e[93]=Fe):Fe=e[93];let Te;return e[94]!==n||e[95]!==le||e[96]!==ie||e[97]!==oe||e[98]!==he||e[99]!==ge||e[100]!==Ne||e[101]!==ke||e[102]!==we||e[103]!==Fe?(Te=(0,t.jsxs)(He,{label:le,onClose:n,panelTestId:"uc-dialog",testId:"uc-overlay",variant:"dialog",children:[ie,oe,he,ge,Ne,ke,we,Fe]}),e[94]=n,e[95]=le,e[96]=ie,e[97]=oe,e[98]=he,e[99]=ge,e[100]=Ne,e[101]=ke,e[102]=we,e[103]=Fe,e[104]=Te):Te=e[104],Te},"ut"),Ye=s(h=>{let e=(0,W.c)(2),{children:n}=h,l;return e[0]!==n?(l=(0,t.jsx)("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:n}),e[0]=n,e[1]=l):l=e[1],l},"_e"),pt=s(h=>{let e=(0,W.c)(29),{busy:n,runAction:l,userId:o,version:a}=h,p=J(),i=Q(),[u,c]=(0,C.useState)(null),[y,w]=(0,C.useState)(null),g;e[0]!==p||e[1]!==o?(g=s(()=>{Z((async()=>{w(null);try{let r=await p.listAuthSessions({limit:50,userId:o});c(r.rows)}catch(r){let S=r;c(null),w(Ee(S))}})())},"g"),e[0]=p,e[1]=o,e[2]=g):g=e[2];let I;e[3]!==p||e[4]!==o||e[5]!==a?(I=[p,o,a],e[3]=p,e[4]=o,e[5]=a,e[6]=I):I=e[6],(0,C.useEffect)(g,I);let k;e[7]!==p||e[8]!==l?(k=s(r=>{l(()=>p.revokeAuthSession({sessionId:r}))},"k"),e[7]=p,e[8]=l,e[9]=k):k=e[9];let v=k,d;e[10]!==i?(d=i("Sessions"),e[10]=i,e[11]=d):d=e[11];let m;e[12]!==d?(m=(0,t.jsx)(Ye,{children:d}),e[12]=d,e[13]=m):m=e[13];let b;e[14]!==y?(b=y!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"ud-sessions-error",role:"alert",children:y}),e[14]=y,e[15]=b):b=e[15];let x;e[16]!==u||e[17]!==i?(x=u!==null&&u.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"ud-sessions-empty",children:i("No active sessions.")}),e[16]=u,e[17]=i,e[18]=x):x=e[18];let N;e[19]!==n||e[20]!==v||e[21]!==u||e[22]!==i?(N=u!==null&&u.length>0&&(0,t.jsx)(K,{className:"overflow-hidden py-0",children:(0,t.jsx)(X,{className:"px-0",children:(0,t.jsxs)(ze,{"data-testid":"ud-sessions-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(q,{children:[(0,t.jsx)(U,{children:i("expires")}),(0,t.jsx)(U,{children:i("ip")}),(0,t.jsx)(U,{children:i("user agent")}),(0,t.jsx)(U,{"aria-label":i("Actions")})]})}),(0,t.jsx)(Pe,{children:u.map(r=>(0,t.jsxs)(q,{"data-testid":`ud-session-${r.id}`,children:[(0,t.jsx)(z,{className:"text-muted-foreground tabular-nums",children:te(r.expiresAt)}),(0,t.jsx)(z,{children:r.ipAddress??""}),(0,t.jsx)(z,{className:"max-w-40 truncate",children:r.userAgent??""}),(0,t.jsx)(z,{children:(0,t.jsx)(_,{"data-testid":`ud-revoke-${r.id}`,disabled:n,onClick:s(()=>{v(r.id)},"onClick"),size:"xs",type:"button",variant:"ghost",children:i("Revoke")})})]},r.id))})]})})}),e[19]=n,e[20]=v,e[21]=u,e[22]=i,e[23]=N):N=e[23];let f;return e[24]!==m||e[25]!==b||e[26]!==x||e[27]!==N?(f=(0,t.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ud-sessions",children:[m,b,x,N]}),e[24]=m,e[25]=b,e[26]=x,e[27]=N,e[28]=f):f=e[28],f},"mt"),ft=s(h=>{let e=(0,W.c)(30),{busy:n,runAction:l,userId:o,version:a}=h,p=J(),i=Q(),[u,c]=(0,C.useState)(null),[y,w]=(0,C.useState)(null),g;e[0]!==p||e[1]!==o?(g=s(()=>{Z((async()=>{w(null);try{c(await p.listAuthAccounts({userId:o}))}catch(r){let S=r;c(null),w(Ee(S))}})())},"g"),e[0]=p,e[1]=o,e[2]=g):g=e[2];let I;e[3]!==p||e[4]!==o||e[5]!==a?(I=[p,o,a],e[3]=p,e[4]=o,e[5]=a,e[6]=I):I=e[6],(0,C.useEffect)(g,I);let k;e[7]!==p||e[8]!==l||e[9]!==o?(k=s(r=>{l(()=>p.unlinkAuthAccount({accountId:r,userId:o}))},"k"),e[7]=p,e[8]=l,e[9]=o,e[10]=k):k=e[10];let v=k,d;e[11]!==i?(d=i("Linked accounts"),e[11]=i,e[12]=d):d=e[12];let m;e[13]!==d?(m=(0,t.jsx)(Ye,{children:d}),e[13]=d,e[14]=m):m=e[14];let b;e[15]!==y?(b=y!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive",role:"alert",children:y}),e[15]=y,e[16]=b):b=e[16];let x;e[17]!==u||e[18]!==i?(x=u!==null&&u.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:i("No linked accounts.")}),e[17]=u,e[18]=i,e[19]=x):x=e[19];let N;e[20]!==u||e[21]!==n||e[22]!==v||e[23]!==i?(N=u!==null&&u.length>0&&(0,t.jsx)(K,{className:"overflow-hidden py-0",children:(0,t.jsx)(X,{className:"px-0",children:(0,t.jsxs)(ze,{"data-testid":"ud-accounts-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(q,{children:[(0,t.jsx)(U,{children:i("provider")}),(0,t.jsx)(U,{children:i("created")}),(0,t.jsx)(U,{"aria-label":i("Actions")})]})}),(0,t.jsx)(Pe,{children:u.map(r=>{let S=Ue(r.id);return(0,t.jsxs)(q,{"data-testid":`ud-account-${S}`,children:[(0,t.jsx)(z,{children:Ue(r.providerId)}),(0,t.jsx)(z,{className:"text-muted-foreground tabular-nums",children:te(r.createdAt)}),(0,t.jsx)(z,{children:(0,t.jsx)(_,{"data-testid":`ud-unlink-${S}`,disabled:n,onClick:s(()=>{v(S)},"onClick"),size:"xs",type:"button",variant:"ghost",children:i("Unlink")})})]},S)})})]})})}),e[20]=u,e[21]=n,e[22]=v,e[23]=i,e[24]=N):N=e[24];let f;return e[25]!==m||e[26]!==b||e[27]!==x||e[28]!==N?(f=(0,t.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ud-accounts",children:[m,b,x,N]}),e[25]=m,e[26]=b,e[27]=x,e[28]=N,e[29]=f):f=e[29],f},"ht"),vt=s(h=>{let e=(0,W.c)(40),{busy:n,capabilities:l,runAction:o,userId:a,version:p}=h,i=J(),u=Q(),[c,y]=(0,C.useState)(null),w;e[0]!==l.passkey||e[1]!==i||e[2]!==a?(w=s(()=>{l.passkey&&Z((async()=>{try{y(await i.listAuthPasskeys({userId:a}))}catch{y(null)}})())},"C"),e[0]=l.passkey,e[1]=i,e[2]=a,e[3]=w):w=e[3];let g;e[4]!==l.passkey||e[5]!==i||e[6]!==a||e[7]!==p?(g=[l.passkey,i,a,p],e[4]=l.passkey,e[5]=i,e[6]=a,e[7]=p,e[8]=g):g=e[8],(0,C.useEffect)(w,g);let I;e[9]!==i||e[10]!==o||e[11]!==a?(I=s(()=>{o(()=>i.disableAuthTwoFactor({userId:a}))},"w"),e[9]=i,e[10]=o,e[11]=a,e[12]=I):I=e[12];let k=I,v;e[13]!==i||e[14]!==o?(v=s(S=>{o(()=>i.deleteAuthPasskey({passkeyId:S}))},"v"),e[13]=i,e[14]=o,e[15]=v):v=e[15];let d=v,m;e[16]!==u?(m=u("Security"),e[16]=u,e[17]=m):m=e[17];let b;e[18]!==m?(b=(0,t.jsx)(Ye,{children:m}),e[18]=m,e[19]=b):b=e[19];let x;e[20]!==n||e[21]!==l.twoFactor||e[22]!==k||e[23]!==u?(x=l.twoFactor&&(0,t.jsx)(_,{"data-testid":"ud-disable-2fa",disabled:n,onClick:k,size:"sm",type:"button",variant:"outline",children:u("Disable two-factor")}),e[20]=n,e[21]=l.twoFactor,e[22]=k,e[23]=u,e[24]=x):x=e[24];let N;e[25]!==l.passkey||e[26]!==c||e[27]!==u?(N=l.passkey&&c!==null&&c.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:u("No passkeys.")}),e[25]=l.passkey,e[26]=c,e[27]=u,e[28]=N):N=e[28];let f;e[29]!==n||e[30]!==l.passkey||e[31]!==d||e[32]!==c||e[33]!==u?(f=l.passkey&&c!==null&&c.length>0&&(0,t.jsx)(K,{className:"overflow-hidden py-0",children:(0,t.jsx)(X,{className:"px-0",children:(0,t.jsxs)(ze,{"data-testid":"ud-passkeys-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(q,{children:[(0,t.jsx)(U,{children:u("name")}),(0,t.jsx)(U,{children:u("created")}),(0,t.jsx)(U,{"aria-label":u("Actions")})]})}),(0,t.jsx)(Pe,{children:c.map(S=>{let $=Ue(S.id);return(0,t.jsxs)(q,{"data-testid":`ud-passkey-${$}`,children:[(0,t.jsx)(z,{children:Ue(S.name)||$}),(0,t.jsx)(z,{className:"text-muted-foreground tabular-nums",children:te(S.createdAt)}),(0,t.jsx)(z,{children:(0,t.jsx)(_,{"data-testid":`ud-delete-passkey-${$}`,disabled:n,onClick:s(()=>{d($)},"onClick"),size:"xs",type:"button",variant:"ghost",children:u("Delete")})})]},$)})})]})})}),e[29]=n,e[30]=l.passkey,e[31]=d,e[32]=c,e[33]=u,e[34]=f):f=e[34];let r;return e[35]!==b||e[36]!==x||e[37]!==N||e[38]!==f?(r=(0,t.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ud-security",children:[b,x,N,f]}),e[35]=b,e[36]=x,e[37]=N,e[38]=f,e[39]=r):r=e[39],r},"ft"),gt=/(?:at|expires)$/iu,bt=/^[1-9]\d*$/u,xt=new Set(["banExpires","banned","banReason","email","emailVerified","id","name","role"]),yt=s(h=>{let e=(0,W.c)(51),{busy:n,onBan:l}=h,o=Q(),[a,p]=(0,C.useState)(""),[i,u]=(0,C.useState)(""),[c,y]=(0,C.useState)(!1),w;e[0]!==i?(w=bt.test(i.trim())&&Number.isSafeInteger(Number(i.trim())*86400)?Number(i.trim()):void 0,e[0]=i,e[1]=w):w=e[1];let g=w,I=c||g!==void 0,k;e[2]!==l||e[3]!==c||e[4]!==a||e[5]!==g?(k=s(()=>{l({expiresInSeconds:c||g===void 0?void 0:g*86400,reason:a.trim()===""?void 0:a.trim()})},"k"),e[2]=l,e[3]=c,e[4]=a,e[5]=g,e[6]=k):k=e[6];let v=k,d;e[7]!==o?(d=o("Ban reason (optional)"),e[7]=o,e[8]=d):d=e[8];let m;e[9]!==d?(m=(0,t.jsx)(O,{htmlFor:"ud-ban-reason",children:d}),e[9]=d,e[10]=m):m=e[10];let b;e[11]===Symbol.for("react.memo_cache_sentinel")?(b=s(E=>{p(E.target.value)},"b"),e[11]=b):b=e[11];let x;e[12]!==a?(x=(0,t.jsx)(T,{"data-testid":"ud-ban-reason",id:"ud-ban-reason",onChange:b,value:a}),e[12]=a,e[13]=x):x=e[13];let N;e[14]!==m||e[15]!==x?(N=(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[m,x]}),e[14]=m,e[15]=x,e[16]=N):N=e[16];let f;e[17]!==o?(f=o("Days"),e[17]=o,e[18]=f):f=e[18];let r;e[19]!==f?(r=(0,t.jsx)(O,{htmlFor:"ud-ban-days",children:f}),e[19]=f,e[20]=r):r=e[20];let S;e[21]!==i||e[22]!==g?(S=i.trim()!==""&&g===void 0,e[21]=i,e[22]=g,e[23]=S):S=e[23];let $;e[24]===Symbol.for("react.memo_cache_sentinel")?($=s(E=>{u(E.target.value)},"T"),e[24]=$):$=e[24];let j;e[25]!==i||e[26]!==c||e[27]!==S?(j=(0,t.jsx)(T,{"aria-invalid":S,"data-testid":"ud-ban-days",disabled:c,id:"ud-ban-days",min:1,onChange:$,step:1,type:"number",value:i}),e[25]=i,e[26]=c,e[27]=S,e[28]=j):j=e[28];let H;e[29]!==j||e[30]!==r?(H=(0,t.jsxs)("div",{className:"flex w-24 flex-col gap-1",children:[r,j]}),e[29]=j,e[30]=r,e[31]=H):H=e[31];let M;e[32]===Symbol.for("react.memo_cache_sentinel")?(M=s(E=>{y(E.target.checked)},"M"),e[32]=M):M=e[32];let Y;e[33]!==c?(Y=(0,t.jsx)("input",{checked:c,className:"size-4 accent-destructive","data-testid":"ud-ban-permanent",id:"ud-ban-permanent",onChange:M,type:"checkbox"}),e[33]=c,e[34]=Y):Y=e[34];let B;e[35]!==o?(B=o("Permanent"),e[35]=o,e[36]=B):B=e[36];let V;e[37]!==Y||e[38]!==B?(V=(0,t.jsxs)(O,{className:"flex items-center gap-1.5 pb-2 text-xs font-normal",htmlFor:"ud-ban-permanent",children:[Y,B]}),e[37]=Y,e[38]=B,e[39]=V):V=e[39];let G=n||!I,P;e[40]!==o?(P=o("Ban user"),e[40]=o,e[41]=P):P=e[41];let L;e[42]!==v||e[43]!==G||e[44]!==P?(L=(0,t.jsx)(_,{"data-testid":"ud-ban",disabled:G,onClick:v,size:"sm",type:"button",variant:"destructive",children:P}),e[42]=v,e[43]=G,e[44]=P,e[45]=L):L=e[45];let F;return e[46]!==H||e[47]!==V||e[48]!==L||e[49]!==N?(F=(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[N,H,V,L]}),e[46]=H,e[47]=V,e[48]=L,e[49]=N,e[50]=F):F=e[50],F},"bt"),Nt=s((h,e)=>typeof e=="number"&&gt.test(h)?te(e):Ue(e),"xt"),kt=s(({capabilities:h,onChanged:e,onClose:n,user:l})=>{let o=J(),a=Q(),p=l.banned===!0,[i,u]=(0,C.useState)(null),[c,y]=(0,C.useState)(!1),[w,g]=(0,C.useState)(0),[I,k]=(0,C.useState)(typeof l.role=="string"?l.role:""),[v,d]=(0,C.useState)(""),[m,b]=(0,C.useState)(null),[x,N]=(0,C.useState)(!1),f=s((F,E)=>{Z((async()=>{y(!0),u(null);try{let $e=await F();E?.refresh!==!1&&(g(ae=>ae+1),e()),E?.onResult?.($e)}catch($e){u(Ee($e))}y(!1)})())},"p"),r=s(F=>{k(F.target.value)},"i"),S=s(F=>{d(F.target.value)},"I"),$=s(()=>{let F=I.trim();F!==""&&f(async()=>{await o.setAuthUserRole({role:F,userId:l.id})})},"T"),j=s(F=>{f(async()=>{await o.banAuthUser({...F,userId:l.id})})},"z"),H=s(()=>{f(async()=>{await o.unbanAuthUser({userId:l.id})})},"j"),M=s(()=>{f(async()=>{await o.setAuthUserPassword({newPassword:v,userId:l.id}),d("")})},"M"),Y=s(()=>{f(()=>o.impersonateAuthUser({userId:l.id}),{onResult:s(F=>{b(F.token)},"onResult"),refresh:!1})},"H"),B=s(()=>{f(async()=>{await o.revokeAuthUserSessions({userId:l.id})})},"L"),V=s(()=>{f(async()=>{await o.removeAuthUser({userId:l.id}),n()})},"V"),G=s(()=>{N(!0)},"Y"),P=s(()=>{N(!1)},"E"),L=Object.entries(l).filter(([F])=>!xt.has(F));return(0,t.jsxs)(He,{label:a("User details"),onClose:n,panelTestId:"ud-panel",testId:"ud-overlay",variant:"drawer",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:l.name??l.email??l.id}),(0,t.jsx)("p",{className:"font-mono text-xs text-muted-foreground",children:l.id}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 pt-1",children:[typeof l.role=="string"&&l.role!==""&&(0,t.jsx)(D,{variant:"secondary",children:l.role}),p?(0,t.jsx)(D,{variant:"destructive",children:a("Banned")}):(0,t.jsx)(D,{variant:"outline",children:a("Active")}),l.emailVerified===!0?(0,t.jsx)(D,{variant:"secondary",children:a("verified")}):(0,t.jsx)(D,{variant:"outline",children:a("unverified")})]})]}),(0,t.jsx)(_,{"data-testid":"ud-close",onClick:n,size:"sm",type:"button",variant:"ghost",children:a("Close")})]}),i!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"ud-action-error",role:"alert",children:i}),h.admin&&(0,t.jsxs)(K,{className:"gap-0 py-0",children:[(0,t.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Actions")})}),(0,t.jsxs)(X,{className:"flex flex-col gap-3 p-3",children:[(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsx)(O,{htmlFor:"ud-role",children:a("Role")}),(0,t.jsx)(T,{"data-testid":"ud-role-input",id:"ud-role",onChange:r,value:I})]}),(0,t.jsx)(_,{"data-testid":"ud-set-role",disabled:c||I.trim()==="",onClick:$,size:"sm",type:"button",variant:"outline",children:a("Set role")})]}),p?(0,t.jsx)(_,{"data-testid":"ud-unban",disabled:c,onClick:H,size:"sm",type:"button",variant:"outline",children:a("Unban")}):(0,t.jsx)(yt,{busy:c,onBan:j}),(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsx)(O,{htmlFor:"ud-password",children:a("New password")}),(0,t.jsx)(T,{"data-testid":"ud-password",id:"ud-password",onChange:S,type:"password",value:v})]}),(0,t.jsx)(_,{"data-testid":"ud-set-password",disabled:c||v==="",onClick:M,size:"sm",type:"button",variant:"outline",children:a("Set password")})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(_,{"data-testid":"ud-impersonate",disabled:c,onClick:Y,size:"sm",type:"button",variant:"outline",children:a("Impersonate")}),(0,t.jsx)(_,{"data-testid":"ud-revoke-all",disabled:c,onClick:B,size:"sm",type:"button",variant:"outline",children:a("Revoke all sessions")}),x?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(_,{"data-testid":"ud-delete-confirm",disabled:c,onClick:V,size:"sm",type:"button",variant:"destructive",children:a("Confirm delete")}),(0,t.jsx)(_,{"data-testid":"ud-delete-cancel",onClick:P,size:"sm",type:"button",variant:"ghost",children:a("Cancel")})]}):(0,t.jsx)(_,{"data-testid":"ud-delete",disabled:c,onClick:G,size:"sm",type:"button",variant:"destructive",children:a("Delete user")})]}),m!==null&&(0,t.jsxs)("div",{className:"flex flex-col gap-1","data-testid":"ud-impersonation",children:[(0,t.jsx)(O,{htmlFor:"ud-token",children:a("Impersonation token")}),(0,t.jsx)(T,{"data-testid":"ud-token",id:"ud-token",readOnly:!0,value:m})]})]})]}),(0,t.jsx)(pt,{busy:c,runAction:f,userId:l.id,version:w}),h.accounts&&(0,t.jsx)(ft,{busy:c,runAction:f,userId:l.id,version:w}),(h.twoFactor||h.passkey)&&(0,t.jsx)(vt,{busy:c,capabilities:h,runAction:f,userId:l.id,version:w}),(0,t.jsxs)("div",{className:"flex flex-col gap-1","data-testid":"ud-fields",children:[(0,t.jsx)("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Fields")}),(0,t.jsx)("dl",{className:"flex flex-col",children:L.map(([F,E])=>(0,t.jsxs)("div",{className:"flex flex-col border-t border-border py-1.5",children:[(0,t.jsx)("dt",{className:"text-xs font-semibold text-muted-foreground",children:F}),(0,t.jsx)("dd",{className:"m-0 font-mono text-xs break-words",children:Nt(F,E)})]},F))})]})]})},"yt"),wt=50,Vt=s(({pageSize:h=wt}={})=>{let e=J(),n=Q(),[l,o]=(0,C.useState)(""),[a,p]=(0,C.useState)(""),[i,u]=(0,C.useState)(0),c=Xe(l),[y,w]=(0,C.useState)(null),[g,I]=(0,C.useState)(!1),{capabilities:k}=it(),v=c.trim(),d=a.trim(),m=De(["lunora-auth-users",v,d,h,i],()=>e.listAuthUsers({filterField:d===""?void 0:"role",filterValue:d===""?void 0:d,limit:h,offset:i,search:v===""?void 0:v}).then(r=>({...r,offset:i})),{keepPreviousData:!0}),b=m.data?.rows??null,x=m.error,N=s(()=>{m.refetch()},"N");We(()=>{m.refetch()},!0);let f=y===null?null:b?.find(r=>r.id===y)??null;return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-users",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(T,{"aria-label":n("Search users"),className:"w-56","data-testid":"us-search",onChange:s(r=>{o(r.target.value),u(0)},"onChange"),placeholder:n("Search by email or name\u2026"),value:l}),(0,t.jsx)(T,{"aria-label":n("Filter by role"),className:"w-40","data-testid":"us-role-filter",onChange:s(r=>{p(r.target.value),u(0)},"onChange"),placeholder:n("Filter by role"),value:a}),(0,t.jsx)(_,{"data-testid":"us-new",onClick:s(()=>{I(!0)},"onClick"),size:"sm",type:"button",children:n("New user")})]}),x!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"us-users-error",role:"alert",children:x}),b!==null&&b.length===0&&(0,t.jsx)(Ve,{description:n("Users who sign up to your app will appear here."),icon:(0,t.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsx)("path",{d:"M16 20v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm11.5 10v-2a4 4 0 0 0-3-3.85"})}),testId:"us-empty",title:n("No users.")}),b!==null&&b.length>0&&(0,t.jsx)(K,{className:"overflow-hidden py-0",children:(0,t.jsx)(X,{className:"px-0",children:(0,t.jsxs)(ze,{"data-testid":"us-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(q,{children:[(0,t.jsx)(U,{children:n("id")}),(0,t.jsx)(U,{children:n("email")}),(0,t.jsx)(U,{children:n("name")}),(0,t.jsx)(U,{children:n("role")}),(0,t.jsx)(U,{children:n("status")}),(0,t.jsx)(U,{children:n("verified")}),(0,t.jsx)(U,{children:n("created")}),(0,t.jsx)(U,{"aria-label":n("Actions")})]})}),(0,t.jsx)(Pe,{children:b.map(r=>(0,t.jsxs)(q,{"data-testid":`us-row-${r.id}`,children:[(0,t.jsx)(z,{className:"font-mono text-xs",children:r.id}),(0,t.jsx)(z,{children:r.email??""}),(0,t.jsx)(z,{children:r.name??""}),(0,t.jsx)(z,{children:typeof r.role=="string"&&r.role!==""?(0,t.jsx)(D,{variant:"secondary",children:r.role}):""}),(0,t.jsx)(z,{children:r.banned===!0?(0,t.jsx)(D,{variant:"destructive",children:n("Banned")}):(0,t.jsx)(D,{variant:"success",children:n("Active")})}),(0,t.jsx)(z,{children:r.emailVerified===!0?(0,t.jsx)(D,{variant:"success",children:n("yes")}):(0,t.jsx)(D,{variant:"outline",children:n("no")})}),(0,t.jsx)(z,{className:"text-muted-foreground tabular-nums",children:te(r.createdAt)}),(0,t.jsx)(z,{children:(0,t.jsx)(_,{"data-testid":`us-manage-${r.id}`,onClick:s(()=>{w(r.id)},"onClick"),size:"xs",type:"button",variant:"ghost",children:n("Manage")})})]},r.id))})]})})}),b!==null&&(0,t.jsx)(Je,{count:b.length,offset:m.data?.offset??0,onOffsetChange:u,pageSize:h,prefix:"us",total:m.data?.total}),f!==null&&(0,t.jsx)(kt,{capabilities:k,onChanged:N,onClose:s(()=>{w(null)},"onClose"),user:f}),g&&(0,t.jsx)(ht,{onClose:s(()=>{I(!1)},"onClose"),onCreated:N}),k.inviteOnly&&(0,t.jsx)(ot,{})]})},"jt");export{Vt as UsersPanel};
@@ -1 +0,0 @@
1
- import{b as k,c as V}from"./chunk-YOB2X3FZ.js";import{a as Q}from"./chunk-EA2JKR5D.js";import{a as x}from"./chunk-IMOHEGMV.js";import{a as H}from"./chunk-EJSI4PMU.js";import{b as G}from"./chunk-OGUKYRFM.js";import"./chunk-OKG3HWSJ.js";import{W as _}from"./chunk-PLHA3OWK.js";import"./chunk-4L4WTGN5.js";import{a as h}from"./chunk-55754F6H.js";import"./chunk-IS6LVJ6L.js";import"./chunk-AAVLPU5Q.js";import{b as w}from"./chunk-FEWMAPNI.js";import"./chunk-225VJ77I.js";import{a as U}from"./chunk-4ZEL6BYL.js";import{f as D}from"./chunk-GUD3ZG3Z.js";import"./chunk-FSRSK4LY.js";import"./chunk-PUGHZTBL.js";import{d as K,e as z,f as B,h as P,m as q,p as E,t as M}from"./chunk-PTZD7RUZ.js";import{a as s,d as J,e as le,g as ce}from"./chunk-YKXDMIHQ.js";var i=J(le(),1);var e=J(ce(),1);var ue=s(r=>r.kind==="id"?r.table===void 0?"id":`id<${r.table}>`:r.kind==="array"?r.element===void 0?"array":`${r.element}[]`:r.kind,"le"),me=s(r=>r===void 0||r.length===0?"()":`(${r.map(o=>`${o.name}${o.optional?"?":""}: ${ue(o)}`).join(", ")})`,"ce"),fe=s(r=>{switch(r){case"array":return[];case"bigint":return k(0n);case"boolean":return!1;case"bytes":return k(new ArrayBuffer(0));case"number":return 0;case"object":case"record":return{};default:return""}},"ue"),pe=s(r=>{let o={};for(let a of r??[])a.optional||(o[a.name]=fe(a.kind));return JSON.stringify(o,void 0,2)},"me"),he=B(U.runAs),xe=10,ge=s(r=>r===void 0?"undefined":JSON.stringify(r,q,2),"pe"),Re=s(({functions:r,runAsIdentity:o=!1}={})=>{let a=K(),u=D(),[W,X]=(0,i.useState)(null),[I,Y]=(0,i.useState)(null),g=r??W??[],[S,F]=(0,i.useState)(""),[m,b]=(0,i.useState)("{}"),[c,$]=(0,i.useState)(""),[f,Z]=(0,i.useState)(""),[v,p]=(0,i.useState)("idle"),[ee,y]=(0,i.useState)(void 0),[C,N]=(0,i.useState)(null),[A,te]=(0,i.useState)([]);(0,i.useEffect)(()=>{if(r!==void 0)return;let t=!1;return u.listFunctions().then(d=>(t||X(d),d)).catch(d=>{t||Y(P(d))}),()=>{t=!0}},[u,r]);let R=S===""?g[0]?.path??"":S,n=g.find(t=>t.path===R),re=s(async()=>{if(!n)return;let t;try{t=m.trim()===""?{}:V(JSON.parse(m))}catch(l){p("error"),y(void 0),N(a("Invalid JSON args: {message}",{message:l.message}));return}let d={__lunoraRef:n.path},L=c.trim()===""?{}:{shardKey:c.trim()},O=o?f.trim():"",T=s(l=>{te(j=>[{argsText:m,at:Date.now(),id:(j[0]?.id??0)+1,kind:n.kind,path:n.path,shardKey:c,status:l},...j].slice(0,xe))},"$");p("running"),N(null);try{let l=O===""?await z(u,n.kind,d,t,L):await u.query(he,{args:t,functionPath:n.path,userId:O},L);G(c),y(l),p("success"),T("success")}catch(l){y(void 0),N(l.message),p("error"),T("error")}},"M"),ae=s(t=>{F(t.path),b(t.argsText),$(t.shardKey)},"P"),se=s(t=>{F(t.target.value)},"z"),ne=s(t=>{b(t.target.value)},"W"),ie=s(t=>{Z(t.target.value)},"q"),oe=s(()=>{E(re())},"H"),de=s(()=>{b(pe(n?.args))},"V");return(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-function-runner",children:[I!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"function-discover-error",role:"alert",children:I}),(0,e.jsxs)("div",{className:"flex flex-col gap-4 rounded-xl border border-border bg-card p-4",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,e.jsx)(x,{htmlFor:"function-select",children:a("Function")}),(0,e.jsx)("select",{"aria-label":a("Function"),className:"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50","data-testid":"function-select",id:"function-select",onChange:se,value:R,children:g.map(t=>(0,e.jsxs)("option",{value:t.path,children:[t.path," (",t.kind,")"]},t.path))}),n!==void 0&&(0,e.jsxs)("p",{className:"text-xs text-muted-foreground",children:[(0,e.jsx)("span",{className:"mr-1.5 font-medium",children:a("Signature")}),(0,e.jsx)("code",{className:"font-mono","data-testid":"function-signature",children:me(n.args)})]})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,e.jsx)(x,{htmlFor:"args-input",children:a("Arguments")}),(0,e.jsx)(h,{"data-testid":"prefill-button",disabled:n===void 0,onClick:de,size:"xs",type:"button",variant:"ghost",children:a("Prefill")})]}),(0,e.jsx)(Q,{"aria-label":a("Arguments"),className:"font-mono text-xs","data-testid":"args-input",id:"args-input",onChange:ne,value:m})]}),(0,e.jsx)(H,{onChange:$,testId:"shard-input",value:c}),o&&(0,e.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"run-as-field",children:[(0,e.jsx)(x,{htmlFor:"run-as-input",children:a("Run as identity (userId)")}),(0,e.jsx)(_,{"aria-label":a("Run as identity (userId)"),className:"font-mono text-xs","data-testid":"run-as-input",id:"run-as-input",onChange:ie,placeholder:a("Leave empty to run as admin"),value:f}),(0,e.jsx)("p",{className:"text-[11px] text-muted-foreground",children:a("Dev only: runs the function as this user so you can test auth and RLS. Forged over the admin gate.")})]}),(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,e.jsx)(h,{"data-testid":"run-button",disabled:v==="running"||n===void 0,onClick:oe,type:"button",children:a("Run")}),n!==void 0&&(0,e.jsx)(w,{variant:"outline",children:n.kind}),o&&f.trim()!==""&&(0,e.jsx)(w,{"data-testid":"run-as-badge",variant:"secondary",children:a("as {userId}",{userId:f.trim()})})]})]}),v==="error"&&C!==null&&(0,e.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs text-destructive","data-testid":"error",role:"alert",children:C}),v==="success"&&(0,e.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs","data-testid":"result",children:ge(ee)}),A.length>0&&(0,e.jsx)("ul",{className:"flex flex-col overflow-hidden rounded-xl border border-border","data-testid":"fn-history",children:A.map((t,d)=>(0,e.jsxs)("li",{className:"flex flex-wrap items-center gap-2 border-b border-border px-3 py-2 text-sm last:border-b-0","data-testid":"fn-history-row",children:[(0,e.jsx)("span",{className:t.status==="success"?"text-success":"text-destructive","data-testid":`fn-history-status-${d.toString()}`,children:t.status==="success"?"\u2713":"\u2717"})," ",(0,e.jsxs)("span",{className:"font-mono text-xs",children:[t.path," (",t.kind,")"]})," ",(0,e.jsx)("time",{className:"text-xs text-muted-foreground",children:M(t.at)})," ",(0,e.jsx)(h,{className:"ml-auto","data-testid":`fn-history-load-${d.toString()}`,onClick:s(()=>{ae(t)},"onClick"),size:"xs",type:"button",variant:"ghost",children:a("Load")})]},t.id))})]})},"$e");export{Re as FunctionRunner};
@@ -1,2 +0,0 @@
1
- import{a as fe}from"./chunk-2URQKGWU.js";import"./chunk-4JLGLPWV.js";import{a as ie}from"./chunk-MU3P2FI7.js";import{a as pe}from"./chunk-66UGPQVC.js";import"./chunk-3Q2P62UR.js";import{W as de}from"./chunk-PLHA3OWK.js";import"./chunk-4L4WTGN5.js";import{a as b}from"./chunk-55754F6H.js";import"./chunk-IS6LVJ6L.js";import"./chunk-AAVLPU5Q.js";import{b as ne}from"./chunk-FEWMAPNI.js";import"./chunk-225VJ77I.js";import{a as he}from"./chunk-AVRH4ZBT.js";import"./chunk-ULIQFBZU.js";import"./chunk-GMHY2XTC.js";import"./chunk-35DM4JJG.js";import{a as B}from"./chunk-4ZEL6BYL.js";import{c as ue}from"./chunk-ZDPY27UY.js";import{f as le}from"./chunk-GUD3ZG3Z.js";import"./chunk-FSRSK4LY.js";import"./chunk-PUGHZTBL.js";import{a as ce}from"./chunk-FKVZRPV5.js";import{d as oe,f as Z,g as ee,h as te,p as ae,s as me,t as re}from"./chunk-PTZD7RUZ.js";import{a as i,d as Y,e as ge,f as ve,g as Ne,i as se}from"./chunk-YKXDMIHQ.js";var t=Y(Ne(),1);var be=Y(ve(),1);var N=Y(ge(),1);function ye({className:a,orientation:e="horizontal",...s}){return(0,t.jsx)(ie,{"data-slot":"separator",orientation:e,className:se("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",a),...s})}i(ye,"ge");var we=/https?:\/\/[^\s"'<>)]+/i,xe=i(a=>a===void 0?void 0:we.exec(a)?.[0],"re"),y=i(a=>a===void 0?"":Array.isArray(a)?a.join(", "):a,"N"),Ce=/<a\s(?:[^>]*?\s)?href\s*=\s*["'](https?:\/\/[^"'\s]+)["']/iu,ke=/&(?:amp|#0*38|#x0*26);/giu,Se=i(a=>a===void 0?void 0:((a.html===void 0?void 0:Ce.exec(a.html)?.[1])??xe(a.text)??xe(a.html))?.replaceAll(ke,"&"),"ye"),Te=i((a,e)=>{let s=e.trim().toLowerCase();return s===""?a:a.filter(o=>`${o.subject} ${y(o.to)} ${y(o.cc)}`.toLowerCase().includes(s))},"Ce"),Le=i((a,e)=>{if(a.length!==0)return a.find(s=>s.id===e)??a[0]},"Se"),je=Z(B.clearCapturedMail),Me=Z(B.sendTestMail),_e=i(a=>{let e=(0,be.c)(38),{limit:s}=a,o=le(),p;e[0]!==s?(p={limit:s},e[0]=s,e[1]=p):p=e[1];let{data:q,error:w,errorSource:C,isLoading:g,refetch:n}=ue(B.getCapturedMail,p),[k,f]=(0,N.useState)(null),[P,S]=(0,N.useState)(null),[v,l]=(0,N.useState)("html"),[c,D]=(0,N.useState)(""),x=q?.entries??[],r=w??k,u=w===null?k:C,T;e[2]!==o||e[3]!==n?(T=i(async()=>{f(null);try{await o.query(je,{},ee("")),S(null),n()}catch(m){f(te(m))}},"T"),e[2]=o,e[3]=n,e[4]=T):T=e[4];let Q=T,L;e[5]!==o||e[6]!==n?(L=i(async()=>{f(null);try{await o.query(Me,{},ee("")),n()}catch(m){f(te(m))}},"k"),e[5]=o,e[6]=n,e[7]=L):L=e[7];let R=L,j;e[8]!==n?(j=i(()=>{n()},"A"),e[8]=n,e[9]=j):j=e[9],pe(j,!0);let M;e[10]!==Q?(M=i(()=>{ae(Q())},"E"),e[10]=Q,e[11]=M):M=e[11];let U=M,_;e[12]!==R?(_=i(()=>{ae(R())},"L"),e[12]=R,e[13]=_):_=e[13];let W=_,z;e[14]===Symbol.for("react.memo_cache_sentinel")?(z=i(m=>{D(m.currentTarget.value)},"_"),e[14]=z):z=e[14];let G=z,$;e[15]===Symbol.for("react.memo_cache_sentinel")?($=i(m=>{let{id:h}=m.currentTarget.dataset;h!==void 0&&S(h)},"M"),e[15]=$):$=e[15];let J=$,A;e[16]===Symbol.for("react.memo_cache_sentinel")?(A=i(m=>{let h=m.currentTarget.dataset.tab;(h==="headers"||h==="html"||h==="text")&&l(h)},"I"),e[16]=A):A=e[16];let K=A,O=Te(x,c),F=Le(O,P),d=Se(F),E;e[17]!==d?(E=i(()=>{d!==void 0&&me(d)},"z"),e[17]=d,e[18]=E):E=e[18];let V=E,H;e[19]!==d?(H=i(()=>{d!==void 0&&"window"in globalThis&&globalThis.window.open(d,"_blank","noopener")},"F"),e[19]=d,e[20]=H):H=e[20];let X=H,I;return e[21]!==x||e[22]!==r||e[23]!==u||e[24]!==c||e[25]!==g||e[26]!==d||e[27]!==U||e[28]!==V||e[29]!==G||e[30]!==X||e[31]!==J||e[32]!==K||e[33]!==W||e[34]!==F||e[35]!==v||e[36]!==O?(I={entries:x,error:r,errorSource:u,filter:c,isLoading:g,link:d,onClear:U,onCopyLink:V,onFilterChange:G,onOpenLink:X,onSelectMessage:J,onSelectTab:K,onSendTest:W,selected:F,tab:v,visible:O},e[21]=x,e[22]=r,e[23]=u,e[24]=c,e[25]=g,e[26]=d,e[27]=U,e[28]=V,e[29]=G,e[30]=X,e[31]=J,e[32]=K,e[33]=W,e[34]=F,e[35]=v,e[36]=O,e[37]=I):I=e[37],I},"Ae"),ze=`<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src data:; style-src 'unsafe-inline'; font-src data:">`,$e=i(a=>`${ze}${a}`,"Le"),Ke=i(({limit:a=100})=>{let e=oe(),{entries:s,error:o,errorSource:p,filter:q,isLoading:w,link:C,onClear:g,onCopyLink:n,onFilterChange:k,onOpenLink:f,onSelectMessage:P,onSelectTab:S,onSendTest:v,selected:l,tab:c,visible:D}=_e({limit:a}),x=i(r=>e(r==="html"?"HTML":r==="text"?"Plain text":"Headers"),"x");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mail-panel",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(b,{"data-testid":"mail-send-test",onClick:v,size:"sm",type:"button",variant:"outline",children:e("Send test")}),(0,t.jsx)(b,{"data-testid":"mail-clear",disabled:s.length===0,onClick:g,size:"sm",type:"button",variant:"outline",children:e("Clear inbox")}),s.length>0&&(0,t.jsx)(ne,{className:"ml-auto","data-testid":"mail-count",variant:"secondary",children:e("{count} messages",{count:s.length})})]}),o!==null&&(0,t.jsx)(he,{error:p,testId:"mail-error"}),o===null&&!w&&s.length===0&&(0,t.jsx)(ce,{description:e("Email your app sends in dev is captured here \u2014 nothing is delivered."),icon:(0,t.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,t.jsx)("path",{d:"M4 5h16v14H4z"}),(0,t.jsx)("path",{d:"m4 6 8 6 8-6"})]}),testId:"mail-empty",title:e("No captured email.")}),s.length>0&&(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-[minmax(0,22rem)_1fr]","data-testid":"mail-reader",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(de,{"aria-label":e("Search messages"),"data-testid":"mail-search",onChange:k,placeholder:e("Filter messages"),type:"search",value:q}),(0,t.jsx)(fe,{className:"max-h-[32rem] rounded-xl border border-border bg-card shadow-xs","data-testid":"mail-list",children:(0,t.jsx)("ul",{className:"divide-y",children:D.map(r=>{let u=r.id===l?.id;return(0,t.jsx)("li",{children:(0,t.jsxs)("button",{className:`flex w-full flex-col items-start gap-0.5 px-3 py-2 text-left text-sm hover:bg-muted/60 ${u?"bg-muted":""}`,"data-active":u,"data-id":r.id,"data-testid":"mail-list-item",onClick:P,type:"button",children:[(0,t.jsx)("span",{className:"w-full truncate font-medium",children:r.subject||e("(no subject)")}),(0,t.jsx)("span",{className:"w-full truncate text-xs text-muted-foreground",children:y(r.to)}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground tabular-nums",children:re(r.capturedAt,"\u2014")})]})},r.id)})})})]}),l!==void 0&&(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-3 rounded-xl border border-border bg-card p-4 shadow-xs","data-testid":"mail-detail",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("h2",{className:"truncate text-base font-semibold","data-testid":"mail-subject",children:l.subject||e("(no subject)")}),(0,t.jsxs)("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-xs text-muted-foreground",children:[(0,t.jsx)("dt",{children:e("From")}),(0,t.jsx)("dd",{className:"truncate font-mono",children:l.from??"\u2014"}),(0,t.jsx)("dt",{children:e("To")}),(0,t.jsx)("dd",{className:"truncate font-mono",children:y(l.to)}),l.cc!==void 0&&l.cc.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("dt",{children:e("Cc")}),(0,t.jsx)("dd",{className:"truncate font-mono",children:y(l.cc)})]}),(0,t.jsx)("dt",{children:e("Sent")}),(0,t.jsx)("dd",{className:"tabular-nums",children:re(l.capturedAt,"\u2014")})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2","data-testid":"mail-actions",children:[(0,t.jsx)(b,{"data-testid":"mail-copy-link",disabled:C===void 0,onClick:n,size:"sm",type:"button",variant:"outline",children:e("Copy link")}),(0,t.jsx)(b,{"data-testid":"mail-open-link",disabled:C===void 0,onClick:f,size:"sm",type:"button",variant:"outline",children:e("Open in new tab")})]}),(0,t.jsx)(ye,{}),(0,t.jsx)("div",{className:"flex items-center gap-1","data-testid":"mail-tabs",role:"tablist",children:["html","text","headers"].map(r=>(0,t.jsx)(b,{"aria-selected":c===r,"data-tab":r,"data-testid":`mail-tab-${r}`,onClick:S,role:"tab",size:"sm",type:"button",variant:c===r?"secondary":"ghost",children:x(r)},r))}),(0,t.jsxs)("div",{className:"min-h-[12rem]",children:[c==="html"&&(l.html===void 0?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e("No HTML body.")}):(0,t.jsx)("iframe",{className:"h-[24rem] w-full rounded-md border bg-white","data-testid":"mail-preview-html",sandbox:"",srcDoc:$e(l.html),title:e("Email preview")})),c==="text"&&(l.text===void 0?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e("No text body.")}):(0,t.jsx)("pre",{className:"overflow-auto whitespace-pre-wrap rounded-md border bg-muted/30 p-3 text-xs","data-testid":"mail-preview-text",children:l.text})),c==="headers"&&(l.headers===void 0||Object.keys(l.headers).length===0?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e("No headers.")}):(0,t.jsx)("pre",{className:"overflow-auto whitespace-pre-wrap rounded-md border bg-muted/30 p-3 text-xs","data-testid":"mail-preview-headers",children:Object.entries(l.headers).map(([r,u])=>`${r}: ${u}`).join(`
2
- `)}))]})]})]})]})},"Qe");export{Ke as MailPanel};
@@ -1 +0,0 @@
1
- import{a as ut,b as he,c as Xe,d as Ke,e as pt,f as cr}from"./chunk-4JLGLPWV.js";import{a as sr,b as ir,c as lr,d as ar}from"./chunk-V3CZW3JB.js";import{B as Do,C as _o,E as Uo,F as ko,G as Fo,J as Ho,X as Bo,a as Eo,aa as jo,ba as zo,e as wo,ea as Wo,fa as Go,la as Yo,ma as $o,na as Xo,o as Tt,oa as Ko,qa as Jo,r as Oo,ra as Zo,sa as Qo,ta as er,u as Lo}from"./chunk-GMS77BZD.js";import{a as Po,b as qo}from"./chunk-3Q2P62UR.js";import{a as Mo,b as Vo}from"./chunk-AWHXPIXU.js";import{a as tr,b as or,i as rr,j as nr,k as ct}from"./chunk-V3VJAA4D.js";import{F as Io,G as Co,J as Ye,M as Ao,P as Ve,Q as $e,R as $t,S as No,T as To,U as oe,V as ce,a as Et,b as qe,c as So,e as xo,f as ho,g as wt,h as Ro,j as At,q as Me,s as Yt,t as bo,u as yo,v as Nt,w as vo}from"./chunk-PLHA3OWK.js";import{c as Pt}from"./chunk-IS6LVJ6L.js";import{a as te,c as Ie,e as Ct,w as at}from"./chunk-AAVLPU5Q.js";import{a as it,c as ve,d as mo,e as go,g as lt,h as qt,i as It,j as w}from"./chunk-225VJ77I.js";import{a as o,c as hn,d as b,e as O,f as Rn,g as xe,i as He}from"./chunk-YKXDMIHQ.js";var St=b(Rn(),1);var re={};hn(re,{Arrow:()=>Jr,Backdrop:()=>Ur,Group:()=>an,GroupLabel:()=>un,Icon:()=>Vr,Item:()=>qr,ItemIndicator:()=>$r,ItemText:()=>Xr,Label:()=>Cr,List:()=>Wr,Popup:()=>jr,Portal:()=>Dr,Positioner:()=>kr,Root:()=>vr,ScrollDownArrow:()=>tn,ScrollUpArrow:()=>nn,Separator:()=>dn,Trigger:()=>Nr,Value:()=>Pr});var U=b(O(),1);var ur=b(O(),1);function pr(e){let t=ur.useRef(!0);t.current&&(t.current=!1,e())}o(pr,"useOnFirstRender");var Oe=b(O(),1);var Xt=Oe.createContext(void 0),Kt=Oe.createContext(void 0),Jt=Oe.createContext(void 0);function L(){let e=Oe.useContext(Xt);if(e===void 0)throw new Error(ve(60));return e}o(L,"useSelectRootContext");function Le(){let e=Oe.useContext(Kt);if(e===void 0)throw new Error(ve(101));return e}o(Le,"useSelectRootPropsContext");function Mt(){let e=Oe.useContext(Jt);if(e===void 0)throw new Error(ve(61));return e}o(Mt,"useSelectFloatingContext");function fr(e,t,r=Object.is){let{length:n}=e;if(n!==t.length)return!1;for(let s=0;s<n;s+=1)if(!r(e[s],t[s]))return!1;return!0}o(fr,"areArraysEqual");var Qt=o((e,t)=>Object.is(e,t),"defaultItemEquality");function Ce(e,t,r){return e==null||t==null?Object.is(e,t):r(e,t)}o(Ce,"compareItemEquality");function dr(e,t,r){return Array.isArray(e)&&Array.isArray(t)?!fr(e,t,(n,s)=>Ce(n,s,r)):e!==t}o(dr,"isSelectedValueDirty");function Zt(e,t,r){return e?e.some(n=>n===void 0?!1:Ce(t,n,r)):!1}o(Zt,"selectedValueIncludes");function ft(e,t,r){return e?e.findIndex(n=>n===void 0?!1:Ce(n,t,r)):-1}o(ft,"findItemIndex");function bn(e,t){if(t!==Qt)return n=>Zt(e,n,t);let r=new Set(e);return r.delete(void 0),n=>r.has(n)&&(n!==0||e.some(s=>Object.is(n,s)))}o(bn,"createSelectionMatcher");function eo(e,t,r,n){let s=n&&Array.isArray(t)?e.findIndex(bn(t,r)):ft(e,t,r);return s===-1?null:s}o(eo,"findSelectionIndex");function mr(e,t,r,n,s,a){return Zt(n,t,s)?a!=null&&e>a&&Zt(n,r[a],s)?a:e:e===a?eo(r,n,s,!0):a}o(mr,"resolveSelectedIndex");function gr(e,t,r){return e.filter(n=>!Ce(t,n,r))}o(gr,"removeItem");var Sr=b(O(),1);function Vt(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}o(Vt,"serializeValue");var xr=b(xe(),1);function yn(e){return typeof e=="object"&&e!=null&&Array.isArray(e.items)}o(yn,"isGroup");function hr(e){return yn(e?.[0])}o(hr,"isGroupedItems");function vn(e){return hr(e)?e.flatMap(t=>t.items):e}o(vn,"flattenLeafItems");function Rr(e){if(!Array.isArray(e))return e!=null&&"null"in e;let t=e;if(hr(t)){for(let r of t)for(let n of r.items)if(n&&n.value==null&&n.label!=null)return!0;return!1}for(let r of t)if(r&&r.value==null&&r.label!=null)return!0;return!1}o(Rr,"hasNullItemLabel");function to(e,t){if(t&&e!=null)return t(e)??"";if(e&&typeof e=="object"){if("label"in e&&e.label!=null)return String(e.label);if("value"in e)return String(e.value)}return Vt(e)}o(to,"stringifyAsLabel");function De(e,t){return t&&e!=null?t(e)??"":e&&typeof e=="object"&&"value"in e&&"label"in e?Vt(e.value):Vt(e)}o(De,"stringifyAsValue");function oo(e,t,r){function n(){return to(e,r)}if(o(n,"fallback"),r&&e!=null)return r(e);if(e&&typeof e=="object"&&"label"in e&&e.label!=null)return e.label;if(t&&!Array.isArray(t))return(Object.hasOwn(t,e)?t[e]:void 0)??n();if(Array.isArray(t)){let a=vn(t);if(e==null||typeof e!="object"){let i=a.find(u=>u.value===e);return i&&i.label!=null?i.label:n()}if("value"in e){let i=a.find(u=>u&&u.value===e.value);if(i&&i.label!=null)return i.label}}return n()}o(oo,"resolveSelectedLabel");function br(e,t,r){return e.reduce((n,s,a)=>(a>0&&n.push(", "),n.push((0,xr.jsx)(Sr.Fragment,{children:oo(s,t,r)},a)),n),[])}o(br,"resolveMultipleLabels");var yr={id:o(e=>e.id,"id"),labelId:o(e=>e.labelId,"labelId"),modal:o(e=>e.modal,"modal"),items:o(e=>e.items,"items"),itemToStringLabel:o(e=>e.itemToStringLabel,"itemToStringLabel"),isItemEqualToValue:o(e=>e.isItemEqualToValue,"isItemEqualToValue"),value:o(e=>e.value,"value"),hasSelectedValue:o(e=>{let{value:t,multiple:r,itemToStringValue:n}=e;return t==null?!1:r&&Array.isArray(t)?t.length>0:De(t,n)!==""},"hasSelectedValue"),hasNullItemLabel:o((e,t)=>t?Rr(e.items):!1,"hasNullItemLabel"),open:o(e=>e.open,"open"),mounted:o(e=>e.mounted,"mounted"),forceMount:o(e=>e.forceMount,"forceMount"),transitionStatus:o(e=>e.transitionStatus,"transitionStatus"),openMethod:o(e=>e.openMethod,"openMethod"),activeIndex:o(e=>e.activeIndex,"activeIndex"),selectedIndex:o(e=>e.selectedIndex,"selectedIndex"),isActive:o((e,t)=>e.activeIndex===t,"isActive"),isSelected:o((e,t)=>{let r=e.isItemEqualToValue,n=e.value;return e.multiple?Array.isArray(n)&&n.some(s=>Ce(t,s,r)):Ce(t,n,r)},"isSelected"),isSelectedByFocus:o((e,t)=>e.selectedIndex===t,"isSelectedByFocus"),popupProps:o(e=>e.popupProps,"popupProps"),triggerProps:o(e=>e.triggerProps,"triggerProps"),triggerElement:o(e=>e.triggerElement,"triggerElement"),positionerElement:o(e=>e.positionerElement,"positionerElement"),listElement:o(e=>e.listElement,"listElement"),popupSide:o(e=>e.popupSide,"popupSide"),scrollUpArrowVisible:o(e=>e.scrollUpArrowVisible,"scrollUpArrowVisible"),scrollDownArrowVisible:o(e=>e.scrollDownArrowVisible,"scrollDownArrowVisible"),hasScrollArrows:o(e=>e.hasScrollArrows,"hasScrollArrows")};var Be=b(xe(),1);function vr(e){let{id:t,value:r,defaultValue:n=null,onValueChange:s,open:a,defaultOpen:i=!1,onOpenChange:u,name:l,form:m,autoComplete:p,disabled:h=!1,readOnly:y=!1,required:d=!1,modal:N=!0,actionsRef:v,inputRef:H,onOpenChangeComplete:S,items:j,multiple:I=!1,itemToStringLabel:g,itemToStringValue:C,isItemEqualToValue:M=Qt,highlightItemOnHover:T=!0,children:k}=e,{clearErrors:Q}=So(),{setDirty:$,setTouched:W,setFocused:X,validityData:c,setFilled:z,name:q,disabled:ie,validation:G,validationMode:le}=qe(),F=wt({id:t}),f=ie||h,E=q??l,[R,x]=$t({controlled:r,default:I?n??qt:n,name:"Select",state:"value"}),[P,K]=$t({controlled:a,default:i,name:"Select",state:"open"}),ne=U.useRef([]),J=U.useRef([]),ue=U.useRef(null),Se=U.useRef(null),ee=U.useRef(0),pe=U.useRef(null),V=U.useRef([]),D=U.useRef(!1),ae=U.useRef(null),Z=U.useRef(null),Ue=U.useRef({allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1,dragY:0}),Ae=U.useRef(!1),Ne=U.useRef(R),{mounted:fe,setMounted:ke,transitionStatus:Te}=$e(P),{openMethod:se,triggerProps:xt}=Wo(P),_=mo(()=>new Fo({id:F,labelId:void 0,modal:N,multiple:I,itemToStringLabel:g,itemToStringValue:C,isItemEqualToValue:M,value:R,open:P,mounted:fe,transitionStatus:Te,items:j,forceMount:!1,openMethod:null,activeIndex:null,selectedIndex:null,popupProps:It,triggerProps:It,triggerElement:null,positionerElement:null,listElement:null,popupSide:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1,hasScrollArrows:!1},{setValue:lt,setOpen:lt,handleScrollArrowVisibility:lt,onOpenChangeComplete:lt,listRef:ne,popupRef:ue,scrollHandlerRef:Se,scrollArrowsMountedCountRef:ee,valueRef:pe,valuesRef:V,labelsRef:J,typingRef:D,selectionRef:Ue,firstItemTextRef:ae,selectedItemTextRef:Z,alignItemWithTriggerActiveRef:Ae,initialValueRef:Ne},yr)).current,be=_.useState("activeIndex"),ht=_.useState("selectedIndex"),Rt=_.useState("triggerElement"),ye=_.useState("positionerElement"),bt=er(se),yt=se??bt,ze=U.useMemo(()=>I?"":De(R,C),[I,R,C]),Ee=U.useMemo(()=>I&&Array.isArray(R)?R.map(A=>De(A,C)):De(R,C),[I,R,C]),Bt=Tt(Rt),tt=Ie(()=>Ee);No(Bt,F,R,tt,!f,l);let ot=I?Array.isArray(R)&&R.length>0:R!=null&&ze!=="";te(()=>{z(ot)},[ot,z]),te(o(function(){let Y=eo(V.current,R,M,I);Y===null&&(Z.current=null),!P&&_.set("selectedIndex",Y)},"syncSelectedIndex"),[I,P,R,M,_]),To(R,()=>{Q(E),$(dr(R,c.initialValue,M)),G.change(R)});let rt=Ie((A,Y)=>{u?.(A,Y),!Y.isCanceled&&(K(A),!A&&(Y.reason===oe.focusOut||Y.reason===oe.outsidePress)&&(W(!0),X(!1),le==="onBlur"&&G.commit(R)))}),We=Ie(()=>{ke(!1),_.update({activeIndex:null,openMethod:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1}),S?.(!1)});Ve({enabled:!v,open:P,ref:ue,onComplete(){P||We()}}),U.useImperativeHandle(v,()=>({unmount:We}),[We]);let nt=Ie((A,Y)=>{s?.(A,Y),!Y.isCanceled&&x(A)}),jt=Ie(A=>{let Y=Xe(A.scrollHeight,A.clientHeight),vt=Ke(A.scrollTop,Y),zt=vt>0,st=vt<Y;_.set("scrollUpArrowVisible",zt),_.set("scrollDownArrowVisible",st)}),Fe=Bo({open:P,onOpenChange:rt,elements:{reference:Rt,floating:ye}}),de=_o(Fe,{enabled:!f,event:"mousedown"}),we=Uo(Fe),Pe=jo(Fe,{enabled:!f,listRef:ne,activeIndex:be,selectedIndex:ht,disabledIndices:qt,onNavigate(A){A===null&&!P||_.set("activeIndex",A)},focusItemOnHover:T}),Ge=zo(Fe,{enabled:!f&&(P||!y&&!I),listRef:J,activeIndex:be,selectedIndex:ht,disabledIndices:o(A=>ar(ne.current[A]),"disabledIndices"),onMatch(A){P?_.set("activeIndex",A):nt(V.current[A],ce(oe.none))},onTyping(A){D.current=A}}),lo=U.useMemo(()=>it(Ge.reference,Pe.reference,we.reference,de.reference,xt),[de.reference,Ge.reference,Pe.reference,we.reference,xt]),ao=U.useMemo(()=>it(Ho,Ge.floating,Pe.floating,we.floating),[Ge.floating,Pe.floating,we.floating]),co=Pe.item??It;_.useContextCallback("setValue",nt),_.useContextCallback("setOpen",rt),_.useContextCallback("handleScrollArrowVisibility",jt),_.useContextCallback("onOpenChangeComplete",S),pr(()=>{_.update({popupProps:ao,triggerProps:lo})}),_.useSyncedValues({id:F,modal:N,multiple:I,value:R,open:P,mounted:fe,transitionStatus:Te,popupProps:ao,triggerProps:lo,items:j,itemToStringLabel:g,itemToStringValue:C,isItemEqualToValue:M,openMethod:yt});let mn=U.useMemo(()=>({disabled:f,readOnly:y,required:d,multiple:I,highlightItemOnHover:T,itemProps:co}),[f,y,d,I,T,co]),gn=go(H,G.inputRef),uo=I?void 0:E,Sn=U.useMemo(()=>!I||!Array.isArray(R)||!E?null:R.map(A=>{let Y=De(A,C);return(0,Be.jsx)("input",{type:"hidden",form:m,name:E,value:Y,disabled:f},Y)}),[I,R,m,E,C,f]);return(0,Be.jsxs)(Xt.Provider,{value:_,children:[(0,Be.jsx)(Kt.Provider,{value:mn,children:(0,Be.jsx)(Jt.Provider,{value:Fe,children:k})}),(0,Be.jsx)("input",{...G.getValidationProps(f,{onFocus(){_.state.triggerElement?.focus({focusVisible:!0})},onChange(A){if(A.nativeEvent.defaultPrevented||f||y)return;let Y=A.currentTarget.value,vt=ce(oe.none,A.nativeEvent);function zt(){if(I)return;let st=Y.toLowerCase(),Wt=V.current.findIndex(Gt=>De(Gt,C).toLowerCase()===st||to(Gt,g).toLowerCase()===st);Wt===-1&&(Wt=V.current.findIndex((Gt,xn)=>{let fo=J.current[xn];return fo!=null&&fo.toLowerCase()===st}));let po=V.current[Wt];po!=null&&nt(po,vt)}o(zt,"handleChange"),_.set("forceMount",!0),queueMicrotask(zt)}}),id:F&&uo==null?`${F}-hidden-input`:void 0,form:m,name:uo,autoComplete:p,value:ze,disabled:f,required:d&&!(I&&ot),readOnly:y,ref:gn,style:E?Vo:Mo,tabIndex:-1,"aria-hidden":!0,suppressHydrationWarning:!0}),Sn]})}o(vr,"SelectRoot");var wr=b(O(),1);function Ir(e){return e==null?void 0:`${e}-label`}o(Ir,"getDefaultLabelId");function Er(e,t){return e??t}o(Er,"resolveAriaLabelledBy");var Cr=wr.forwardRef(o(function(t,r){let{render:n,className:s,style:a,...i}=t,u=i;delete u.id;let l=qe(),m=L(),p=m.useState("triggerElement"),h=m.useState("id"),y=Ir(h),d=Co({id:y,fallbackControlId:p?.id??h,setLabelId(N){let v=typeof N=="function"?N(m.state.labelId):N;m.set("labelId",v)}});return w("div",t,{ref:r,state:l.state,props:[d,i],stateAttributesMapping:Et})},"SelectLabel"));var Je=b(O(),1);var Gs=Yt.popupOpen,qs=Yt.pressed;var Ar="data-popup-side";var En=400,wn={...yo,...Et,popupSide:o(e=>e?{[Ar]:e}:null,"popupSide"),value:o(()=>null,"value")},Nr=Je.forwardRef(o(function(t,r){let{render:n,className:s,id:a,disabled:i=!1,nativeButton:u=!0,style:l,...m}=t,{setTouched:p,setFocused:h,validationMode:y,validation:d,state:N,disabled:v}=qe(),{labelId:H}=ho(),S=L(),{readOnly:j,required:I,disabled:g}=Le(),C=v||g||i,M=S.useState("open"),T=S.useState("mounted"),k=S.useState("value"),Q=S.useState("triggerProps"),$=S.useState("positionerElement"),W=S.useState("listElement"),X=S.useState("popupSide"),c=S.useState("id"),z=S.useState("labelId"),q=S.useState("hasSelectedValue"),ie=T&&$?X:null,G=a??c,le=Er(H,z);wt({id:a});let F=Tt($),f=Je.useRef(null),{getButtonProps:E,buttonRef:R}=Pt({disabled:C,native:u}),x=S.useStateSetter("triggerElement"),P=Ye(),K=Ye(),ne=Ye();Je.useEffect(()=>{if(M)return ne.start(En,()=>{S.context.selectionRef.current.allowUnselectedMouseUp=!0,S.context.selectionRef.current.allowSelectedMouseUp=!0}),()=>{ne.clear()};S.context.selectionRef.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1,dragY:0},K.clear()},[M,S,K,ne]);let J=it(Q,{id:G,role:"combobox","aria-expanded":M,"aria-haspopup":"listbox","aria-controls":M?W?.id??Io($)?.id:void 0,"aria-labelledby":le,"aria-readonly":j||void 0,"aria-required":I||void 0,tabIndex:C?-1:0,onFocus(ee){h(!0),M&&S.context.alignItemWithTriggerActiveRef.current&&S.context.setOpen(!1,ce(oe.none,ee.nativeEvent)),P.start(0,()=>{S.set("forceMount",!0)})},onBlur(ee){At($,ee.relatedTarget)||(p(!0),h(!1),y==="onBlur"&&d.commit(k))},onMouseDown(ee){if(M)return;let pe=at(ee.currentTarget);function V(D){if(!f.current)return;let ae=D.target;At(f.current,ae)||At(F.current,ae)||lr(D,f.current)||S.context.setOpen(!1,ce(oe.cancelOpen,D))}o(V,"handleMouseUp"),K.start(0,()=>{pe.addEventListener("mouseup",V,{once:!0})})}},m,E),ue=d.getValidationProps(C,J);ue.role="combobox";let Se={...N,open:M,disabled:C,value:k,readOnly:j,popupSide:ie,placeholder:!q};return w("button",t,{ref:[r,f,R,x],state:Se,stateAttributesMapping:wn,props:ue})},"SelectTrigger"));var Tr=b(O(),1);var Cn={value:o(()=>null,"value")},Pr=Tr.forwardRef(o(function(t,r){let{className:n,render:s,children:a,placeholder:i,style:u,...l}=t,m=L(),p=m.useState("value"),h=m.useState("items"),y=m.useState("itemToStringLabel"),d=m.useState("hasSelectedValue"),N=!d&&i!=null&&a==null,v=m.useState("hasNullItemLabel",N),H={value:p,placeholder:!d},S=null;return typeof a=="function"?S=a(p):a!=null?S=a:N&&!v?S=i:Array.isArray(p)?S=br(p,h,y):S=oo(p,h,y),w("span",t,{state:H,ref:[r,m.context.valueRef],props:[{children:S},l],stateAttributesMapping:Cn})},"SelectValue"));var Mr=b(O(),1);var Vr=Mr.forwardRef(o(function(t,r){let{render:n,className:s,style:a,...i}=t,m={open:L().useState("open")};return w("span",t,{state:m,ref:r,props:[{"aria-hidden":!0,children:"\u25BC"},i],stateAttributesMapping:bo})},"SelectIcon"));var Or=b(O(),1);var Lr=b(xe(),1);var Dr=Or.forwardRef(o(function(t,r){let n=L(),s=n.useState("mounted"),a=n.useState("forceMount");return s||a?(0,Lr.jsx)(Lo,{ref:r,...t}):null},"SelectPortal"));var _r=b(O(),1);var An={...Nt,...Me},Ur=_r.forwardRef(o(function(t,r){let{render:n,className:s,style:a,...i}=t,u=L(),l=u.useState("open"),m=u.useState("mounted"),p=u.useState("transitionStatus");return w("div",t,{state:{open:l,transitionStatus:p},ref:r,props:[{role:"presentation",hidden:!m,style:{userSelect:"none",WebkitUserSelect:"none"}},i],stateAttributesMapping:An})},"SelectBackdrop"));var me=b(O(),1);var Ot=b(O(),1);var ro=Ot.createContext(void 0);function _e(){let e=Ot.useContext(ro);if(!e)throw new Error(ve(59));return e}o(_e,"useSelectPositionerContext");function Ze(e,t){e&&Object.assign(e.style,t)}o(Ze,"clearStyles");var Lt={position:"relative",maxHeight:"100%",overflowX:"hidden",overflowY:"auto"};var dt=b(xe(),1);var Nn={position:"fixed"},kr=me.forwardRef(o(function(t,r){let{anchor:n,className:s,render:a,positionMethod:i,side:u,align:l,sideOffset:m,alignOffset:p,collisionBoundary:h="clipping-ancestors",collisionPadding:y,arrowPadding:d,sticky:N,disableAnchorTracking:v,alignItemWithTrigger:H=!0,collisionAvoidance:S=Oo,style:j,...I}=t,g=L(),C=Mt(),M=g.useState("open"),T=g.useState("mounted"),k=g.useState("modal"),Q=g.useState("value"),$=g.useState("openMethod"),W=g.useState("positionerElement"),X=g.useState("triggerElement"),c=g.useState("isItemEqualToValue"),z=g.useState("transitionStatus"),q=me.useRef(null),ie=me.useRef(null),[G,le]=me.useState(H),F=T&&G&&$!=="touch";!T&&G!==H&&le(H),me.useImperativeHandle(g.context.alignItemWithTriggerActiveRef,()=>F),Jo((F||k)&&M,$==="touch",W,X);let f=Yo({anchor:n,floatingRootContext:C,positionMethod:i,mounted:T,side:u,sideOffset:m,align:l,alignOffset:p,arrowPadding:d,collisionBoundary:h,collisionPadding:y,sticky:N,disableAnchorTracking:v??F,collisionAvoidance:S,keepMounted:!0}),E=F?"none":f.side,R=F?Nn:f.positionerStyles,x={open:M,side:E,align:f.align,anchorHidden:f.anchorHidden};te(()=>{g.set("popupSide",f.side)},[g,f.side]);let P=g.useStateSetter("positionerElement"),K=Ko(t,x,{styles:R,transitionStatus:z,props:I,refs:[r,P],hidden:!T,inert:!M}),ne=me.useRef(0),J=Ie(Se=>{if(g.context.valuesRef.current.length===0)return;let ee=ne.current;ne.current=Se.size;let pe=ce(oe.none);if(ee!==0&&!g.state.multiple&&Q!==null&&ft(g.context.valuesRef.current,Q,c)===-1){let D=g.context.initialValueRef.current,Z=D!=null&&ft(g.context.valuesRef.current,D,c)!==-1?D:null;g.context.setValue(Z,pe),Z===null&&(g.set("selectedIndex",null),g.context.selectedItemTextRef.current=null)}if(ee!==0&&g.state.multiple&&Array.isArray(Q)){let V=Q.filter(D=>ft(g.context.valuesRef.current,D,c)!==-1);V.length!==Q.length&&(g.context.setValue(V,pe),V.length===0&&(g.set("selectedIndex",null),g.context.selectedItemTextRef.current=null))}if(M&&F){g.update({scrollUpArrowVisible:!1,scrollDownArrowVisible:!1});let V={height:""};Ze(W,V),Ze(g.context.popupRef.current,V)}}),ue=me.useMemo(()=>({...f,side:E,alignItemWithTriggerActive:F,setControlledAlignItemWithTrigger:le,scrollUpArrowRef:q,scrollDownArrowRef:ie}),[f,E,F,le]);return(0,dt.jsx)(ir,{elementsRef:g.context.listRef,labelsRef:g.context.labelsRef,onMapChange:J,children:(0,dt.jsxs)(ro.Provider,{value:ue,children:[T&&k&&(0,dt.jsx)($o,{inert:Go(!M),cutout:X}),K]})})},"SelectPositioner"));var ge=b(O(),1);var no="--transform-origin";var Ut=b(xe(),1);var Pn={...Nt,...Me},jr=ge.forwardRef(o(function(t,r){let{render:n,className:s,style:a,finalFocus:i,...u}=t,l=L(),{multiple:m,readOnly:p,highlightItemOnHover:h}=Le(),y=Mt(),{side:d,align:N,alignItemWithTriggerActive:v,isPositioned:H,setControlledAlignItemWithTrigger:S}=_e(),j=Qo(!0)!=null,I=qo(),{nonce:g,disableStyleElements:C}=cr(),M=l.useState("id"),T=l.useState("open"),k=l.useState("openMethod"),Q=l.useState("mounted"),$=l.useState("popupProps"),W=l.useState("transitionStatus"),X=l.useState("triggerElement"),c=l.useState("positionerElement"),z=l.useState("listElement"),q=ge.useRef(!1),ie=ge.useRef(!1),G=ge.useRef({}),le=Ao(),F=Ie(x=>{if(!c||!l.context.popupRef.current||!ie.current)return;let P=c.style.top==="0px",K=c.style.bottom==="0px";if(q.current||!v||!P&&!K){l.context.handleScrollArrowVisibility(x);return}let ne=Hr(c),J=mt(c.getBoundingClientRect().height,"y",ne),ue=at(c),Se=Ct(c),ee=Se.getComputedStyle(c),pe=parseFloat(ee.marginTop),V=parseFloat(ee.marginBottom),D=Fr(Se.getComputedStyle(l.context.popupRef.current)),ae=Math.min(ue.documentElement.clientHeight-pe-V,D),Z=x.scrollTop,Ue=Dt(x),Ae=null,Ne=o(se=>{c.style.height=`${se}px`},"setHeight"),fe=P?Ue-Z:Z,ke=Math.min(J+fe,ae);if(fe<=he){let se=ut(fe,0,ae-J);se>0&&Ne(J+se),x.scrollTop=P?Ue:0,ae-(J+se)<=he&&(q.current=!0),l.context.handleScrollArrowVisibility(x);return}if(ae-ke>he)Ae=P?1/0:0;else if(K&&Z<Ue){let se=J+fe-ae;Ae=Z-(fe-se)}let Te=Math.ceil(ke);if(Te!==0&&Ne(Te),Ae!=null){let se=ut(Ae,0,Dt(x));Math.abs(x.scrollTop-se)>he&&(x.scrollTop=se)}Te>=ae-he&&(q.current=!0),l.context.handleScrollArrowVisibility(x)});ge.useImperativeHandle(l.context.scrollHandlerRef,()=>F,[F]),Ve({open:T,ref:l.context.popupRef,onComplete(){T&&l.context.onOpenChangeComplete(!0)}});let f={open:T,transitionStatus:W,side:d,align:N};te(()=>{!c||!l.context.popupRef.current||Object.keys(G.current).length||(G.current={top:c.style.top||"0",left:c.style.left||"0",right:c.style.right,height:c.style.height,bottom:c.style.bottom,minHeight:c.style.minHeight,maxHeight:c.style.maxHeight,marginTop:c.style.marginTop,marginBottom:c.style.marginBottom})},[l,c]),te(()=>{T||v||(ie.current=!1,q.current=!1,Ze(c,G.current))},[T,v,c]),te(()=>{let x=l.context.popupRef.current;if(!T||!X||!c||!x||v&&!H||l.state.transitionStatus==="ending")return;if(ie.current=!0,x.style.removeProperty(no),!v){le.request(()=>l.context.handleScrollArrowVisibility(z||x));return}let P=Mn(x);try{let K=l.context.selectedItemTextRef.current;K?.isConnected||(K=!l.select("hasSelectedValue")&&l.context.firstItemTextRef.current?.isConnected?l.context.firstItemTextRef.current:null);let ne=l.context.valueRef.current,J=Ct(c),ue=J.getComputedStyle(c),Se=J.getComputedStyle(x),ee=at(X),pe=Hr(X),V=_t(X.getBoundingClientRect(),pe),D=_t(c.getBoundingClientRect(),pe),ae=V.height,Z=z||x,Ue=Z.scrollHeight,Ae=parseFloat(Se.borderBottomWidth),Ne=parseFloat(ue.marginTop)||10,fe=parseFloat(ue.marginBottom)||10,ke=parseFloat(ue.minHeight)||100,Te=Fr(Se),se=5,xt=5,_=20,be=ee.documentElement.clientHeight-Ne-fe,ht=ee.documentElement.clientWidth,Rt=be-V.bottom+ae,ye,bt=I==="rtl"?V.right-D.width:V.left,yt=0;if(K&&ne){let de=_t(ne.getBoundingClientRect(),pe);ye=_t(K.getBoundingClientRect(),pe),bt=D.left+(I==="rtl"?de.right-ye.right:de.left-ye.left);let we=de.top-V.top+de.height/2;yt=ye.top-D.top+ye.height/2-we}let ze=Rt+yt+fe+Ae,Ee=Math.min(be,ze),Bt=be-Ne-fe,tt=ze-Ee,ot=ht-xt;c.style.left=`${ut(bt,se,ot-D.width)}px`,c.style.height=`${Ee}px`,c.style.maxHeight="none",c.style.marginTop=`${Ne}px`,c.style.marginBottom=`${fe}px`,x.style.height="100%";let rt=Dt(Z),We=tt>=rt-he;We&&(Ee=Math.min(be,D.height)-(tt-rt));let nt=V.top<_||V.bottom>be-_||Math.ceil(Ee)+he<Math.min(Ue,ke),jt=(J.visualViewport?.scale??1)!==1&&Ro.engine.webkit;if(nt||jt){Ze(c,G.current),S(!1);return}let Fe=Math.max(ke,Ee);if(We){let de=Math.max(0,be-ze);c.style.top=D.height>=Bt?"0":`${de}px`,c.style.height=`${Ee}px`,Z.scrollTop=Dt(Z)}else c.style.bottom="0",Z.scrollTop=tt;if(ye){let de=D.top,we=D.height,Pe=ye.top+ye.height/2,Ge=ut(we>0?(Pe-de)/we*100:50,0,100);x.style.setProperty(no,`50% ${Ge}%`)}(Fe===be||Ee>=Te)&&(q.current=!0),l.context.handleScrollArrowVisibility(Z),h&&l.state.selectedIndex===null&&l.state.activeIndex===null&&l.context.listRef.current[0]!=null&&l.set("activeIndex",0)}finally{P()}},[l,T,c,X,v,S,le,z,h,I,H]),ge.useEffect(()=>{if(!v||!c||!T)return;let x=Ct(c);function P(K){l.context.setOpen(!1,ce(oe.windowResize,K))}return o(P,"handleResize"),Po(x,"resize",P)},[l,v,c,T]);let E={...z?{role:"presentation"}:{role:"listbox","aria-multiselectable":m||void 0,"aria-readonly":p||void 0,id:`${M}-list`},onKeyDown(x){j&&Zo.has(x.key)&&x.stopPropagation()},onScroll(x){z||F(x.currentTarget)},...v&&{style:z?{height:"100%"}:Lt},className:!z&&v?pt.className:void 0},R=w("div",t,{ref:[r,l.context.popupRef],state:f,stateAttributesMapping:Pn,props:[$,E,Xo(W),u]});return(0,Ut.jsxs)(ge.Fragment,{children:[!C&&pt.getElement(g),(0,Ut.jsx)(Do,{context:y,modal:!1,disabled:!Q,openInteractionType:k,returnFocus:i,restoreFocus:!0,children:R})]})},"SelectPopup"));function Fr(e){let t=e.maxHeight;return t.endsWith("px")&&parseFloat(t)||1/0}o(Fr,"getMaxPopupHeight");function Dt(e){return Xe(e.scrollHeight,e.clientHeight)}o(Dt,"getMaxScrollTop");function Hr(e){return ko.getScale(e)}o(Hr,"getScale");function mt(e,t,r){return e/r[t]}o(mt,"normalizeSize");function _t(e,t){return wo({x:mt(e.x,"x",t),y:mt(e.y,"y",t),width:mt(e.width,"x",t),height:mt(e.height,"y",t)})}o(_t,"normalizeRect");var Br=[["transform","none"],["scale","1"],["translate","0 0"]];function Mn(e){let{style:t}=e,r={};for(let[n,s]of Br)r[n]=t.getPropertyValue(n),t.setProperty(n,s,"important");return()=>{for(let[n]of Br){let s=r[n];s?t.setProperty(n,s):t.removeProperty(n)}}}o(Mn,"unsetTransformStyles");var zr=b(O(),1);var Wr=zr.forwardRef(o(function(t,r){let{render:n,className:s,style:a,...i}=t,u=L(),{multiple:l,readOnly:m}=Le(),{alignItemWithTriggerActive:p}=_e(),h=u.useState("hasScrollArrows"),y=u.useState("openMethod"),N={id:`${u.useState("id")}-list`,role:"listbox","aria-multiselectable":l||void 0,"aria-readonly":m||void 0,onScroll(H){u.context.scrollHandlerRef.current?.(H.currentTarget)},...p&&{style:Lt},className:h&&y!=="touch"?pt.className:void 0},v=u.useStateSetter("listElement");return w("div",t,{ref:[r,v],props:[N,i]})},"SelectList"));var Re=b(O(),1);var kt=b(O(),1);var so=kt.createContext(void 0);function gt(){let e=kt.useContext(so);if(!e)throw new Error(ve(57));return e}o(gt,"useSelectItemContext");var Gr=b(xe(),1);var qr=Re.memo(Re.forwardRef(o(function(t,r){let{render:n,className:s,style:a,value:i=null,label:u,disabled:l=!1,nativeButton:m=!1,...p}=t,h=Re.useRef(null),y=sr({guess:!0,label:u,textRef:h}),d=L(),{itemProps:N,multiple:v,disabled:H,readOnly:S}=Le(),j=H||l,I=d.useState("isActive",y.index),g=d.useState("open"),C=d.useState("isSelected",i),M=d.useState("isSelectedByFocus",y.index),T=d.useState("isItemEqualToValue"),k=y.index,Q=Re.useRef(null);te(()=>{let f=d.context.valuesRef.current;return f[k]=i,()=>{delete f[k]}},[k,i,d]),te(()=>{let f=d.state.value,E=d.state.selectedIndex,R=E,x;v&&Array.isArray(f)?(R=mr(k,i,d.context.valuesRef.current,f,T,E),x=R===k,k===E&&!x&&(d.context.selectedItemTextRef.current=null)):(x=f!==void 0&&Ce(i,f,T),x&&(R=k)),d.set("selectedIndex",R),x&&h.current&&(d.context.selectedItemTextRef.current=h.current)},[k,v,T,d,i]);let $=Re.useRef("mouse"),W=Re.useRef(!1),{getButtonProps:X,buttonRef:c}=Pt({disabled:j,focusableWhenDisabled:!0,native:m,composite:!0}),z={disabled:j,selected:C,highlighted:I};function q(f){if(H||S)return;let E=d.state.value;if(v){let R=Array.isArray(E)?E:[],x=C?gr(R,i,T):[...R,i];d.context.setValue(x,ce(oe.itemPress,f))}else d.context.setValue(i,ce(oe.itemPress,f)),d.context.setOpen(!1,ce(oe.itemPress,f))}o(q,"commitSelection");function ie(){d.context.selectionRef.current.dragY=0}o(ie,"resetDragMovement");let G={role:"option","aria-selected":C,tabIndex:g&&I?0:-1,onKeyDown(f){d.set("activeIndex",k),f.key===" "&&d.context.typingRef.current&&f.preventDefault()},onClick(f){let E=$.current!=="touch",R=f.nativeEvent.pointerType,x=E&&Eo(f.nativeEvent)&&(R!==void 0||I),P=E&&!x&&!W.current;W.current=!1,!(j||P)&&q(f.nativeEvent)},onPointerEnter(f){$.current=f.pointerType},onPointerMove(f){if(f.pointerType==="mouse"&&f.buttons===1){let E=d.context.selectionRef.current;E.dragY+=f.movementY,E.dragY**2>=64&&(E.allowUnselectedMouseUp=!0)}},onPointerDown(f){$.current=f.pointerType,W.current=!0,ie()},onMouseUp(){if(ie(),j||$.current==="touch"||W.current)return;let f=!d.context.selectionRef.current.allowSelectedMouseUp&&C,E=!d.context.selectionRef.current.allowUnselectedMouseUp&&!C;f||E||(W.current=!0,Q.current?.click(),W.current=!1)}},le=w("div",t,{ref:[c,r,y.ref,Q],state:z,props:[N,G,p,X]}),F=Re.useMemo(()=>({selected:C,index:k,textRef:h,selectedByFocus:M}),[C,k,h,M]);return(0,Gr.jsx)(so.Provider,{value:F,children:le})},"SelectItem")));var je=b(O(),1);var Yr=b(xe(),1);var $r=je.forwardRef(o(function(t,r){let{selected:n}=gt();return t.keepMounted||n?(0,Yr.jsx)(Vn,{...t,ref:r}):null},"SelectItemIndicator")),Vn=je.memo(je.forwardRef((e,t)=>{let{render:r,className:n,style:s,keepMounted:a,...i}=e,{selected:u}=gt(),l=je.useRef(null),{transitionStatus:m,setMounted:p}=$e(u),y=w("span",e,{ref:[t,l],state:{selected:u,transitionStatus:m},props:[{"aria-hidden":!0,children:"\u2714\uFE0F"},i],stateAttributesMapping:Me});return Ve({batch:!0,enabled:!u,open:u,ref:l,onComplete(){u||p(!1)}}),y}));var Qe=b(O(),1);var Xr=Qe.memo(Qe.forwardRef(o(function(t,r){let{index:n,textRef:s,selectedByFocus:a}=gt(),i=L(),{render:u,className:l,style:m,...p}=t,h=Qe.useCallback(d=>{d&&(n===0&&(i.context.firstItemTextRef.current=d),a&&(i.context.selectedItemTextRef.current=d))},[i,n,a]);return w("div",t,{ref:[h,r,s],props:p})},"SelectItemText")));var Kr=b(O(),1);var Jr=Kr.forwardRef(o(function(t,r){let{render:n,className:s,style:a,...i}=t,u=L(),{side:l,align:m,arrowRef:p,arrowStyles:h,arrowUncentered:y,alignItemWithTriggerActive:d}=_e(),v={open:u.useState("open"),side:l,align:m,uncentered:y},H=w("div",t,{state:v,ref:[p,r],props:[{style:h,"aria-hidden":!0},i],stateAttributesMapping:vo});return d?null:H},"SelectArrow"));var Qr=b(O(),1);var Zr=b(O(),1);var Ft=Zr.forwardRef(o(function(t,r){let{render:n,className:s,style:a,direction:i,keepMounted:u,...l}=t,m=i==="up",p=L(),{side:h,scrollDownArrowRef:y,scrollUpArrowRef:d}=_e(),N=m?"scrollUpArrowVisible":"scrollDownArrowVisible",v=p.useState(N),H=p.useState("openMethod"),S=v&&H!=="touch",j=Ye(),I=m?d:y,{mounted:g,transitionStatus:C,setMounted:M}=$e(S);te(()=>(p.context.scrollArrowsMountedCountRef.current+=1,p.set("hasScrollArrows",!0),()=>{p.context.scrollArrowsMountedCountRef.current=Math.max(0,p.context.scrollArrowsMountedCountRef.current-1),p.context.scrollArrowsMountedCountRef.current===0&&p.set("hasScrollArrows",!1)}),[p]),Ve({open:S,ref:I,onComplete(){S||M(!1)}});let Q=w("div",t,{ref:[r,I],state:{direction:i,visible:S,side:h,transitionStatus:C},props:[{"aria-hidden":!0,children:m?"\u25B2":"\u25BC",style:{position:"absolute"},onMouseMove(W){if(W.movementX===0&&W.movementY===0||j.isStarted())return;p.set("activeIndex",null);function X(){let c=p.state.listElement??p.context.popupRef.current;if(!c)return;p.set("activeIndex",null),p.context.handleScrollArrowVisibility(c);let z=Xe(c.scrollHeight,c.clientHeight),q=Ke(c.scrollTop,z),ie=q===(m?0:z),G=p.context.listRef.current;if(q!==c.scrollTop&&(c.scrollTop=q),ie){j.clear();return}if(G.length>0){let le=I.current?.offsetHeight||0;c.scrollTop=On(G,m,q,c.clientHeight,le,z)}j.start(40,X)}o(X,"scrollNextItem"),j.start(40,X)},onMouseLeave(){j.clear()}},l],stateAttributesMapping:Me});return g||u?Q:null},"SelectScrollArrow"));function On(e,t,r,n,s,a){if(t){let p=0,h=r+s-he;for(let N=0;N<e.length;N+=1){let v=e[N];if(v&&v.offsetTop>=h){p=N;break}}let y=Math.max(0,p-1),d=e[y];return y<p&&d?Ke(d.offsetTop-s,a):0}let i=e.length-1,u=r+n-s+he;for(let p=0;p<e.length;p+=1){let h=e[p];if(h&&h.offsetTop+h.offsetHeight>u){i=Math.max(0,p-1);break}}let l=Math.min(e.length-1,i+1),m=e[l];return l>i&&m?Ke(m.offsetTop+m.offsetHeight-n+s,a):a}o(On,"getTargetScrollTop");var en=b(xe(),1);var tn=Qr.forwardRef(o(function(t,r){return(0,en.jsx)(Ft,{...t,ref:r,direction:"down"})},"SelectScrollDownArrow"));var on=b(O(),1);var rn=b(xe(),1);var nn=on.forwardRef(o(function(t,r){return(0,rn.jsx)(Ft,{...t,ref:r,direction:"up"})},"SelectScrollUpArrow"));var et=b(O(),1);var Ht=b(O(),1);var io=Ht.createContext(void 0);function sn(){let e=Ht.useContext(io);if(e===void 0)throw new Error(ve(56));return e}o(sn,"useSelectGroupContext");var ln=b(xe(),1);var an=et.forwardRef(o(function(t,r){let{render:n,className:s,style:a,...i}=t,[u,l]=et.useState(),m=et.useMemo(()=>({labelId:u,setLabelId:l}),[u,l]),p=w("div",t,{ref:r,props:[{role:"group","aria-labelledby":u},i]});return(0,ln.jsx)(io.Provider,{value:m,children:p})},"SelectGroup"));var cn=b(O(),1);var un=cn.forwardRef(o(function(t,r){let{render:n,className:s,style:a,id:i,...u}=t,{setLabelId:l}=sn(),m=xo(i);return te(()=>(l(m),()=>{l(h=>h===m?void 0:h)}),[m,l]),w("div",t,{ref:r,props:[{id:m,"aria-hidden":!0},u]})},"SelectGroupLabel"));var pn=b(O(),1);var fn=pn.forwardRef(o(function(t,r){let{className:n,render:s,orientation:a="horizontal",style:i,...u}=t;return w("div",t,{state:{orientation:a},ref:r,props:[{role:"presentation"},u]})},"ListboxSeparator"));var dn=fn;var B=b(xe(),1);var hc=re.Root;function Rc(e){let t=(0,St.c)(8),r,n;t[0]!==e?({className:r,...n}=e,t[0]=e,t[1]=r,t[2]=n):(r=t[1],n=t[2]);let s;t[3]!==r?(s=He("flex flex-1 text-start",r),t[3]=r,t[4]=s):s=t[4];let a;return t[5]!==n||t[6]!==s?(a=(0,B.jsx)(re.Value,{"data-slot":"select-value",className:s,...n}),t[5]=n,t[6]=s,t[7]=a):a=t[7],a}o(Rc,"$");function bc({className:e,size:t="default",children:r,...n}){return(0,B.jsxs)(re.Trigger,{"data-slot":"select-trigger","data-size":t,className:He("flex w-fit items-center justify-between gap-1.5 rounded-md border border-input bg-transparent py-2 pe-2 ps-2.5 text-xs whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-md *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...n,children:[r,(0,B.jsx)(re.Icon,{render:(0,B.jsx)(ct,{icon:nr,strokeWidth:2,className:"pointer-events-none size-4 text-muted-foreground"})})]})}o(bc,"j");function yc({className:e,children:t,side:r="bottom",sideOffset:n=4,align:s="center",alignOffset:a=0,alignItemWithTrigger:i=!0,...u}){return(0,B.jsx)(re.Portal,{children:(0,B.jsx)(re.Positioner,{side:r,sideOffset:n,align:s,alignOffset:a,alignItemWithTrigger:i,className:"isolate z-50",children:(0,B.jsxs)(re.Popup,{"data-slot":"select-content","data-align-trigger":i,className:He("isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!",e),...u,children:[(0,B.jsx)(Ln,{}),(0,B.jsx)(re.List,{children:t}),(0,B.jsx)(Dn,{})]})})})}o(yc,"A");function vc(e){let t=(0,St.c)(13),r,n,s;t[0]!==e?({className:n,children:r,...s}=e,t[0]=e,t[1]=r,t[2]=n,t[3]=s):(r=t[1],n=t[2],s=t[3]);let a;t[4]!==n?(a=He("relative flex w-full cursor-default items-center gap-2 rounded-md py-2 pe-8 ps-2 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",n),t[4]=n,t[5]=a):a=t[5];let i;t[6]!==r?(i=(0,B.jsx)(re.ItemText,{className:"flex flex-1 shrink-0 gap-2 whitespace-nowrap",children:r}),t[6]=r,t[7]=i):i=t[7];let u;t[8]===Symbol.for("react.memo_cache_sentinel")?(u=(0,B.jsx)(re.ItemIndicator,{render:(0,B.jsx)("span",{className:"pointer-events-none absolute end-2 flex size-4 items-center justify-center"}),children:(0,B.jsx)(ct,{icon:rr,strokeWidth:2,className:"pointer-events-none"})}),t[8]=u):u=t[8];let l;return t[9]!==s||t[10]!==a||t[11]!==i?(l=(0,B.jsxs)(re.Item,{"data-slot":"select-item",className:a,...s,children:[i,u]}),t[9]=s,t[10]=a,t[11]=i,t[12]=l):l=t[12],l}o(vc,"U");function Ln(e){let t=(0,St.c)(9),r,n;t[0]!==e?({className:r,...n}=e,t[0]=e,t[1]=r,t[2]=n):(r=t[1],n=t[2]);let s;t[3]!==r?(s=He("top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",r),t[3]=r,t[4]=s):s=t[4];let a;t[5]===Symbol.for("react.memo_cache_sentinel")?(a=(0,B.jsx)(ct,{icon:or,strokeWidth:2}),t[5]=a):a=t[5];let i;return t[6]!==n||t[7]!==s?(i=(0,B.jsx)(re.ScrollUpArrow,{"data-slot":"select-scroll-up-button",className:s,...n,children:a}),t[6]=n,t[7]=s,t[8]=i):i=t[8],i}o(Ln,"x");function Dn(e){let t=(0,St.c)(9),r,n;t[0]!==e?({className:r,...n}=e,t[0]=e,t[1]=r,t[2]=n):(r=t[1],n=t[2]);let s;t[3]!==r?(s=He("bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",r),t[3]=r,t[4]=s):s=t[4];let a;t[5]===Symbol.for("react.memo_cache_sentinel")?(a=(0,B.jsx)(ct,{icon:tr,strokeWidth:2}),t[5]=a):a=t[5];let i;return t[6]!==n||t[7]!==s?(i=(0,B.jsx)(re.ScrollDownArrow,{"data-slot":"select-scroll-down-button",className:s,...n,children:a}),t[6]=n,t[7]=s,t[8]=i):i=t[8],i}o(Dn,"w");export{hc as a,Rc as b,bc as c,yc as d,vc as e};
@@ -1 +0,0 @@
1
- import{a as jt,b as Pt,c as ot}from"./chunk-O3EVDJD5.js";import{a as me}from"./chunk-NYKWTNZX.js";import{a as At,b as Ft,c as zt,d as Et}from"./chunk-72GVG7ZA.js";import{a as it}from"./chunk-T6OJSDQH.js";import{a as It,b as Tt,c as Rt,d as Ot,e as Pe}from"./chunk-IHMGCHAA.js";import{a as Kt}from"./chunk-RPQL45FL.js";import{a as Lt}from"./chunk-B2HYHTIX.js";import"./chunk-4GTO7FL5.js";import"./chunk-4JLGLPWV.js";import{e as Ct}from"./chunk-UYEZR3BI.js";import"./chunk-V3CZW3JB.js";import{a as Dt}from"./chunk-Z5O2NQAV.js";import"./chunk-GMS77BZD.js";import"./chunk-3Q2P62UR.js";import"./chunk-AWHXPIXU.js";import"./chunk-V3VJAA4D.js";import{a as Ze,b as et,c as tt,d as yt,e as Nt,f as rt,g as at,h as wt,i as St}from"./chunk-AVXGLRYX.js";import"./chunk-5JDWLCSH.js";import"./chunk-EVTM6Q43.js";import{a as Mt}from"./chunk-S3CRZLGS.js";import{a as _t}from"./chunk-EJSI4PMU.js";import{a as qt,b as kt}from"./chunk-OGUKYRFM.js";import"./chunk-6D6Z2KXU.js";import"./chunk-OKG3HWSJ.js";import"./chunk-PLHA3OWK.js";import"./chunk-Y6CXU7T4.js";import"./chunk-4L4WTGN5.js";import{a as Ye}from"./chunk-55754F6H.js";import"./chunk-IS6LVJ6L.js";import"./chunk-AAVLPU5Q.js";import{b as He}from"./chunk-FEWMAPNI.js";import"./chunk-225VJ77I.js";import"./chunk-35DM4JJG.js";import{a as Ae}from"./chunk-4ZEL6BYL.js";import{c as Ee}from"./chunk-ZDPY27UY.js";import{f as mt}from"./chunk-GUD3ZG3Z.js";import"./chunk-FSRSK4LY.js";import"./chunk-PUGHZTBL.js";import{a as gt}from"./chunk-FKVZRPV5.js";import{a as st,b as lt,c as nt,d as je,e as ce,f as W}from"./chunk-HEAQVSNS.js";import{a as fe,b as Fe,c as ze,d as ht,e as pe}from"./chunk-N6NMLJ6R.js";import{d as ge,f as ft,g as pt,h as xt,i as bt,l as We,p as vt}from"./chunk-PTZD7RUZ.js";import{a as d,d as Xe,e as Ut,f as Bt,g as Ht,i as ut}from"./chunk-YKXDMIHQ.js";var Q=Xe(Ut(),1);var xe=Xe(Bt(),1);var t=Xe(Ht(),1);var Wt=/["\\\u0000-\u001F\uD800-\uDFFF]/,$t=d(s=>Wt.test(s)?JSON.stringify(s):`"${s}"`,"ct"),ct=d(s=>{if(s===void 0)return"null";if(typeof s=="bigint")throw new TypeError("stableStringify: cannot use a bigint in a stable JSON cache key \u2014 pass it as a string, or use stableWireKey");if(typeof s=="number"){if(Number.isNaN(s))return"nan";if(s===1/0)return"inf";if(s===-1/0)return"-inf";if(Object.is(s,-0))return"-0"}if(typeof s=="string")return $t(s);if(s===null||typeof s!="object")return JSON.stringify(s);if(Array.isArray(s)){let i="[";for(let l=0;l<s.length;l++)l>0&&(i+=","),i+=ct(s[l]);return i+"]"}let e=Object.getPrototypeOf(s);if(e!==null&&e!==Object.prototype){let i=s.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${i} in a stable JSON cache key \u2014 only plain objects, arrays, and JSON primitives are supported (wire-typed values key via stableWireKey)`)}let n=s,a=Object.keys(n).sort(),r="{",u=!0;for(let i of a){let l=n[i];l!==void 0&&(u?u=!1:r+=",",r+=$t(i),r+=":",r+=ct(l))}return r+"}"},"Ze"),Qt=d((s,e,n)=>`${s}:${e}:${ct(n??{})}`,"ht"),Jt=d((s,e)=>s==="gauge"?e.last:s==="histogram"?e.sum/Math.max(1,e.count):e.sum,"gt"),Gt=d((s,e)=>Jt(s,e),"Gt"),Vt=d(s=>Jt(s.kind,s),"Wt"),dt=d(s=>Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:2}),"We"),Xt=d(s=>Array.isArray(s?.series)?s.series:[],"Xt"),Yt="FUNCTION_NOT_FOUND",Zt=d(s=>{let e=new Map;if(!Array.isArray(s?.series))return e;for(let n of s.series)e.set(Qt(n.kind,n.name,n.attributes),n.points);return e},"Zt"),er={counter:"secondary",gauge:"default",histogram:"outline"},tr=d(s=>{let e=(0,xe.c)(18),{name:n,onOpenTrace:a,traceId:r}=s,u=ge();if(r===void 0){let c;return e[0]===Symbol.for("react.memo_cache_sentinel")?(c=(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),e[0]=c):c=e[0],c}let i;e[1]!==r?(i=r.slice(0,8),e[1]=r,e[2]=i):i=e[2];let l=i;if(a===void 0){let c=`mt-instrument-trace-${n}`,p;return e[3]!==l||e[4]!==c||e[5]!==r?(p=(0,t.jsx)("span",{className:"text-muted-foreground","data-testid":c,title:r,children:l}),e[3]=l,e[4]=c,e[5]=r,e[6]=p):p=e[6],p}let g=`mt-instrument-trace-${n}`,v;e[7]!==a||e[8]!==r?(v=d(()=>{a(r)},"y"),e[7]=a,e[8]=r,e[9]=v):v=e[9];let S;e[10]!==u||e[11]!==r?(S=u("Open the exemplar trace {trace}",{trace:r}),e[10]=u,e[11]=r,e[12]=S):S=e[12];let f;return e[13]!==l||e[14]!==g||e[15]!==v||e[16]!==S?(f=(0,t.jsx)("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":g,onClick:v,title:S,type:"button",children:l}),e[13]=l,e[14]=g,e[15]=v,e[16]=S,e[17]=f):f=e[17],f},"tr"),rr=d(s=>{let e=(0,xe.c)(105),{onOpenTrace:n,shardKey:a}=s,r=ge(),u;e[0]===Symbol.for("react.memo_cache_sentinel")?(u={},e[0]=u):u=e[0];let i;e[1]!==a?(i={live:!0,shardKey:a},e[1]=a,e[2]=i):i=e[2];let{data:l,error:g,errorSource:v}=Ee(Ae.getMetricSeries,u,i),S;e[3]===Symbol.for("react.memo_cache_sentinel")?(S={},e[3]=S):S=e[3];let f;e[4]!==a?(f={live:!0,shardKey:a},e[4]=a,e[5]=f):f=e[5];let{data:c}=Ee(Ae.getMetricHistory,S,f),p,y,q,M,o,k,x,b,_,D,h,C,I;if(e[6]!==l||e[7]!==g||e[8]!==v||e[9]!==c||e[10]!==n||e[11]!==r){b=Symbol.for("react.early_return_sentinel");e:{let F=Xt(l),z=bt(v)===Yt;if(g!==null&&!z){let m;e[25]!==r?(m=r("Instruments"),e[25]=r,e[26]=m):m=e[26];let $;e[27]!==m?($=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:m}),e[27]=m,e[28]=$):$=e[28];let J;e[29]!==g||e[30]!==r?(J=r("Instruments unavailable: {error}",{error:g}),e[29]=g,e[30]=r,e[31]=J):J=e[31];let U;e[32]!==J?(U=(0,t.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"mt-instruments-error",role:"status",children:J}),e[32]=J,e[33]=U):U=e[33];let de;e[34]!==$||e[35]!==U?(de=(0,t.jsxs)("section",{className:"flex flex-col gap-2","data-testid":"mt-instruments",children:[$,U]}),e[34]=$,e[35]=U,e[36]=de):de=e[36],b=de;break e}if(F.length===0){b=null;break e}let E=Zt(c),L;e[37]!==r?(L=d(m=>r(m==="counter"?"Counter":m==="gauge"?"Gauge":"Histogram"),"E"),e[37]=r,e[38]=L):L=e[38];let B=L;o="flex flex-col gap-2",k="mt-instruments";let P;e[39]!==r?(P=r("Instruments"),e[39]=r,e[40]=P):P=e[40],e[41]!==P?(x=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:P}),e[41]=P,e[42]=x):x=e[42],M=fe,I="overflow-hidden py-0",q=pe,C="px-0",y=st,D="mt-instruments-table";let A;e[43]!==r?(A=r("name"),e[43]=r,e[44]=A):A=e[44];let j;e[45]!==A?(j=(0,t.jsx)(ce,{children:A}),e[45]=A,e[46]=j):j=e[46];let G;e[47]!==r?(G=r("kind"),e[47]=r,e[48]=G):G=e[48];let V;e[49]!==G?(V=(0,t.jsx)(ce,{children:G}),e[49]=G,e[50]=V):V=e[50];let X;e[51]!==r?(X=r("value"),e[51]=r,e[52]=X):X=e[52];let Y;e[53]!==X?(Y=(0,t.jsx)(ce,{className:"text-right",children:X}),e[53]=X,e[54]=Y):Y=e[54];let Z;e[55]!==r?(Z=r("count"),e[55]=r,e[56]=Z):Z=e[56];let ee;e[57]!==Z?(ee=(0,t.jsx)(ce,{className:"text-right",children:Z}),e[57]=Z,e[58]=ee):ee=e[58];let te;e[59]!==r?(te=r("range"),e[59]=r,e[60]=te):te=e[60];let re;e[61]!==te?(re=(0,t.jsx)(ce,{className:"text-right",children:te}),e[61]=te,e[62]=re):re=e[62];let ae;e[63]!==r?(ae=r("trend"),e[63]=r,e[64]=ae):ae=e[64];let se;e[65]!==ae?(se=(0,t.jsx)(ce,{children:ae}),e[65]=ae,e[66]=se):se=e[66];let le;e[67]!==r?(le=r("trace"),e[67]=r,e[68]=le):le=e[68];let ne;e[69]!==le?(ne=(0,t.jsx)(ce,{children:le}),e[69]=le,e[70]=ne):ne=e[70];let ie;e[71]!==r?(ie=r("dimensions"),e[71]=r,e[72]=ie):ie=e[72];let oe;e[73]!==ie?(oe=(0,t.jsx)(ce,{children:ie}),e[73]=ie,e[74]=oe):oe=e[74],e[75]!==j||e[76]!==V||e[77]!==Y||e[78]!==ee||e[79]!==re||e[80]!==se||e[81]!==ne||e[82]!==oe?(h=(0,t.jsx)(lt,{children:(0,t.jsxs)(je,{children:[j,V,Y,ee,re,se,ne,oe]})}),e[75]=j,e[76]=V,e[77]=Y,e[78]=ee,e[79]=re,e[80]=se,e[81]=ne,e[82]=oe,e[83]=h):h=e[83],p=nt,_=F.map(m=>{let $=Kt(m.attributes),J=Qt(m.kind,m.name,m.attributes),U=(E.get(J)??[]).map(de=>Gt(m.kind,de));return(0,t.jsxs)(je,{"data-testid":`mt-instrument-${m.name}`,children:[(0,t.jsx)(W,{className:"font-mono text-xs",title:m.functionPath,children:m.name}),(0,t.jsx)(W,{children:(0,t.jsx)(He,{variant:er[m.kind],children:B(m.kind)})}),(0,t.jsx)(W,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${m.name}`,children:dt(Vt(m))}),(0,t.jsx)(W,{className:"text-right tabular-nums text-muted-foreground",children:m.count.toLocaleString()}),(0,t.jsx)(W,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:m.min===m.max?"\u2014":`${dt(m.min)}\u2013${dt(m.max)}`}),(0,t.jsx)(W,{children:U.length>=2?(0,t.jsx)(it,{ariaLabel:r("{name} trend",{name:m.name}),className:"h-6 w-24 text-foreground",series:U,testId:`mt-instrument-trend-${m.name}`}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"\u2014"})}),(0,t.jsx)(W,{className:"font-mono text-xs",children:(0,t.jsx)(tr,{name:m.name,onOpenTrace:n,traceId:m.exemplarTraceId})}),(0,t.jsx)(W,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:$,children:$===""?"\u2014":$})]},J)})}e[6]=l,e[7]=g,e[8]=v,e[9]=c,e[10]=n,e[11]=r,e[12]=p,e[13]=y,e[14]=q,e[15]=M,e[16]=o,e[17]=k,e[18]=x,e[19]=b,e[20]=_,e[21]=D,e[22]=h,e[23]=C,e[24]=I}else p=e[12],y=e[13],q=e[14],M=e[15],o=e[16],k=e[17],x=e[18],b=e[19],_=e[20],D=e[21],h=e[22],C=e[23],I=e[24];if(b!==Symbol.for("react.early_return_sentinel"))return b;let T;e[84]!==p||e[85]!==_?(T=(0,t.jsx)(p,{children:_}),e[84]=p,e[85]=_,e[86]=T):T=e[86];let R;e[87]!==y||e[88]!==T||e[89]!==D||e[90]!==h?(R=(0,t.jsxs)(y,{"data-testid":D,children:[h,T]}),e[87]=y,e[88]=T,e[89]=D,e[90]=h,e[91]=R):R=e[91];let w;e[92]!==q||e[93]!==R||e[94]!==C?(w=(0,t.jsx)(q,{className:C,children:R}),e[92]=q,e[93]=R,e[94]=C,e[95]=w):w=e[95];let N;e[96]!==M||e[97]!==w||e[98]!==I?(N=(0,t.jsx)(M,{className:I,children:w}),e[96]=M,e[97]=w,e[98]=I,e[99]=N):N=e[99];let K;return e[100]!==o||e[101]!==k||e[102]!==x||e[103]!==N?(K=(0,t.jsxs)("section",{className:o,"data-testid":k,children:[x,N]}),e[100]=o,e[101]=k,e[102]=x,e[103]=N,e[104]=K):K=e[104],K},"rr"),ar=d(s=>{let e=(0,xe.c)(74),{aggregate:n,shardResults:a}=s,r=ge(),u;e[0]!==r?(u=r("Shards"),e[0]=r,e[1]=u):u=e[1];let i;e[2]!==n.failed||e[3]!==n.reachable||e[4]!==r?(i=n.failed>0?r("{reachable} reachable, {failed} unreachable",{failed:n.failed,reachable:n.reachable}):r("{reachable} reachable",{reachable:n.reachable}),e[2]=n.failed,e[3]=n.reachable,e[4]=r,e[5]=i):i=e[5];let l;e[6]!==u||e[7]!==i?(l=(0,t.jsx)(me,{label:u,testId:"mt-agg-shards",value:i}),e[6]=u,e[7]=i,e[8]=l):l=e[8];let g;e[9]!==r?(g=r("Total requests"),e[9]=r,e[10]=g):g=e[10];let v;e[11]!==n.totalRequests||e[12]!==g?(v=(0,t.jsx)(me,{label:g,testId:"mt-agg-requests",value:n.totalRequests}),e[11]=n.totalRequests,e[12]=g,e[13]=v):v=e[13];let S;e[14]!==r?(S=r("Total errors"),e[14]=r,e[15]=S):S=e[15];let f;e[16]!==n.totalErrors||e[17]!==S?(f=(0,t.jsx)(me,{label:S,testId:"mt-agg-errors",value:n.totalErrors}),e[16]=n.totalErrors,e[17]=S,e[18]=f):f=e[18];let c;e[19]!==r?(c=r("Total database size"),e[19]=r,e[20]=c):c=e[20];let p;e[21]!==n.totalDatabaseSize?(p=We(n.totalDatabaseSize),e[21]=n.totalDatabaseSize,e[22]=p):p=e[22];let y;e[23]!==c||e[24]!==p?(y=(0,t.jsx)(me,{label:c,testId:"mt-agg-db-size",value:p}),e[23]=c,e[24]=p,e[25]=y):y=e[25];let q;e[26]!==r?(q=r("Combined cache hit rate"),e[26]=r,e[27]=q):q=e[27];let M;e[28]!==n.hitRate||e[29]!==r?(M=n.hitRate===null?r("no cache configured"):`${(n.hitRate*100).toFixed(1)}%`,e[28]=n.hitRate,e[29]=r,e[30]=M):M=e[30];let o;e[31]!==q||e[32]!==M?(o=(0,t.jsx)(me,{label:q,testId:"mt-agg-cache",value:M}),e[31]=q,e[32]=M,e[33]=o):o=e[33];let k;e[34]!==y||e[35]!==o||e[36]!==l||e[37]!==v||e[38]!==f?(k=(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[l,v,f,y,o]}),e[34]=y,e[35]=o,e[36]=l,e[37]=v,e[38]=f,e[39]=k):k=e[39];let x;e[40]!==r?(x=r("shard"),e[40]=r,e[41]=x):x=e[41];let b;e[42]!==x?(b=(0,t.jsx)(ce,{children:x}),e[42]=x,e[43]=b):b=e[43];let _;e[44]!==r?(_=r("requests"),e[44]=r,e[45]=_):_=e[45];let D;e[46]!==_?(D=(0,t.jsx)(ce,{children:_}),e[46]=_,e[47]=D):D=e[47];let h;e[48]!==r?(h=r("errors"),e[48]=r,e[49]=h):h=e[49];let C;e[50]!==h?(C=(0,t.jsx)(ce,{children:h}),e[50]=h,e[51]=C):C=e[51];let I;e[52]!==r?(I=r("db size"),e[52]=r,e[53]=I):I=e[53];let T;e[54]!==I?(T=(0,t.jsx)(ce,{children:I}),e[54]=I,e[55]=T):T=e[55];let R;e[56]!==b||e[57]!==D||e[58]!==C||e[59]!==T?(R=(0,t.jsx)(lt,{children:(0,t.jsxs)(je,{children:[b,D,C,T]})}),e[56]=b,e[57]=D,e[58]=C,e[59]=T,e[60]=R):R=e[60];let w;if(e[61]!==a||e[62]!==r){let z;e[64]!==r?(z=d(E=>(0,t.jsxs)(je,{"data-testid":`mt-agg-row-${E.shard}`,children:[(0,t.jsx)(W,{children:E.shard}),E.metrics===null?(0,t.jsx)(W,{className:"text-destructive",colSpan:3,children:E.error??r("unreachable")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(W,{className:"tabular-nums",children:E.metrics.requests}),(0,t.jsx)(W,{className:"tabular-nums",children:E.metrics.errors}),(0,t.jsx)(W,{className:"tabular-nums",children:We(E.metrics.databaseSize)})]})]},E.shard),"L"),e[64]=r,e[65]=z):z=e[65],w=a.map(z),e[61]=a,e[62]=r,e[63]=w}else w=e[63];let N;e[66]!==w?(N=(0,t.jsx)(nt,{children:w}),e[66]=w,e[67]=N):N=e[67];let K;e[68]!==R||e[69]!==N?(K=(0,t.jsx)(fe,{className:"overflow-hidden py-0",children:(0,t.jsx)(pe,{className:"px-0",children:(0,t.jsxs)(st,{"data-testid":"mt-agg-table",children:[R,N]})})}),e[68]=R,e[69]=N,e[70]=K):K=e[70];let F;return e[71]!==k||e[72]!==K?(F=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[k,K]}),e[71]=k,e[72]=K,e[73]=F):F=e[73],F},"sr"),sr=d(s=>{let e=(0,xe.c)(75),{currentDelta:n,errorRate:a,history:r,latencyPercentiles:u,metrics:i}=s,l=ge(),{cache:g}=i,v;e[0]!==r||e[1]!==l?(v=r.length>=2?(0,t.jsx)(it,{ariaLabel:l("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:r,testId:"mt-sparkline"}):void 0,e[0]=r,e[1]=l,e[2]=v):v=e[2];let S;e[3]!==n||e[4]!==r.length||e[5]!==l?(S=r.length>=2?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:`+${n.toLocaleString()}`})," ",l("last interval")]}):(0,t.jsx)("span",{"data-testid":"mt-sparkline-empty",children:l("collecting samples\u2026")}),e[3]=n,e[4]=r.length,e[5]=l,e[6]=S):S=e[6];let f;e[7]!==l?(f=l("Requests"),e[7]=l,e[8]=f):f=e[8];let c;e[9]!==i.requests||e[10]!==v||e[11]!==S||e[12]!==f?(c=(0,t.jsx)(me,{chart:v,footer:S,label:f,testId:"mt-requests",value:i.requests}),e[9]=i.requests,e[10]=v,e[11]=S,e[12]=f,e[13]=c):c=e[13];let p;e[14]!==a||e[15]!==l?(p=l("{rate} error rate",{rate:a}),e[14]=a,e[15]=l,e[16]=p):p=e[16];let y;e[17]!==l?(y=l("Errors"),e[17]=l,e[18]=y):y=e[18];let q;e[19]!==a||e[20]!==i.errors?(q=(0,t.jsxs)(t.Fragment,{children:[i.errors," (",a,")"]}),e[19]=a,e[20]=i.errors,e[21]=q):q=e[21];let M;e[22]!==p||e[23]!==y||e[24]!==q?(M=(0,t.jsx)(me,{footer:p,label:y,testId:"mt-errors",value:q}),e[22]=p,e[23]=y,e[24]=q,e[25]=M):M=e[25];let o;e[26]!==u.p90?(o=u.p90>0?`P90 ${ot(u.p90)}`:void 0,e[26]=u.p90,e[27]=o):o=e[27];let k;e[28]!==l?(k=l("P95 latency"),e[28]=l,e[29]=k):k=e[29];let x;e[30]!==u.p95?(x=u.p95>0?ot(u.p95):"\u2014",e[30]=u.p95,e[31]=x):x=e[31];let b;e[32]!==k||e[33]!==x||e[34]!==o?(b=(0,t.jsx)(me,{footer:o,label:k,testId:"mt-p95",value:x}),e[32]=k,e[33]=x,e[34]=o,e[35]=b):b=e[35];let _;e[36]!==g||e[37]!==l?(_=g?`${g.entries.toLocaleString()} ${l("cache entries")}`:void 0,e[36]=g,e[37]=l,e[38]=_):_=e[38];let D;e[39]!==l?(D=l("Database size"),e[39]=l,e[40]=D):D=e[40];let h;e[41]!==i.databaseSize?(h=We(i.databaseSize),e[41]=i.databaseSize,e[42]=h):h=e[42];let C;e[43]!==_||e[44]!==D||e[45]!==h?(C=(0,t.jsx)(me,{footer:_,label:D,testId:"mt-db-size",value:h}),e[43]=_,e[44]=D,e[45]=h,e[46]=C):C=e[46];let I;e[47]!==l?(I=l("Shard"),e[47]=l,e[48]=I):I=e[48];let T;e[49]!==i.shard||e[50]!==I?(T=(0,t.jsx)(me,{label:I,testId:"mt-shard",value:i.shard}),e[49]=i.shard,e[50]=I,e[51]=T):T=e[51];let R;e[52]!==l?(R=l("Uptime"),e[52]=l,e[53]=R):R=e[53];let w;e[54]!==i.uptimeMs?(w=jt(i.uptimeMs),e[54]=i.uptimeMs,e[55]=w):w=e[55];let N;e[56]!==R||e[57]!==w?(N=(0,t.jsx)(me,{label:R,testId:"mt-uptime",value:w}),e[56]=R,e[57]=w,e[58]=N):N=e[58];let K;e[59]!==l?(K=l("Cache hit rate"),e[59]=l,e[60]=K):K=e[60];let F;e[61]!==g||e[62]!==l?(F=g?l("{rate} ({count} entries)",{count:g.entries,rate:Pt(g.hits,g.misses)}):l("no cache configured"),e[61]=g,e[62]=l,e[63]=F):F=e[63];let z;e[64]!==K||e[65]!==F?(z=(0,t.jsx)(me,{label:K,testId:"mt-cache",value:F}),e[64]=K,e[65]=F,e[66]=z):z=e[66];let E;return e[67]!==b||e[68]!==C||e[69]!==T||e[70]!==N||e[71]!==z||e[72]!==c||e[73]!==M?(E=(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","data-testid":"mt-stats",children:[c,M,b,C,T,N,z]}),e[67]=b,e[68]=C,e[69]=T,e[70]=N,e[71]=z,e[72]=c,e[73]=M,e[74]=E):E=e[74],E},"lr"),Ve=d(s=>s>=100?"critical":s>=50?"warning":"good","Ve"),$e=d(s=>s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"Fe"),Ge=d(s=>s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString(),"He"),lr=d(s=>{let e=(0,xe.c)(3),{level:n}=s;if(n==="critical"){let r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)(He,{variant:"destructive",children:"Slow"}),e[0]=r):r=e[0],r}if(n==="warning"){let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",children:"Moderate"}),e[1]=r):r=e[1],r}let a;return e[2]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-success/10 px-2 py-0.5 text-xs font-medium text-success",children:"Fast"}),e[2]=a):a=e[2],a},"ar"),nr=d((s,e)=>{let n=[...s];return n.sort((a,r)=>{switch(e){case"avgTime":return r.avgDurationMs-a.avgDurationMs;case"execCount":return r.execCount-a.execCount;case"rowsRead":return r.rowsRead-a.rowsRead;default:return r.totalDurationMs-a.totalDurationMs}}),n},"ir"),ir=d(s=>{let e=(0,xe.c)(161),{queryStats:n}=s,a=ge(),[r,u]=(0,Q.useState)("totalTime"),i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=new Set,e[0]=i):i=e[0];let[l,g]=(0,Q.useState)(i),v;e[1]===Symbol.for("react.memo_cache_sentinel")?(v=d(I=>{I!==null&&u(I)},"y"),e[1]=v):v=e[1];let S=v,f,c,p,y,q,M,o,k,x,b;if(e[2]!==l||e[3]!==n||e[4]!==r||e[5]!==a){p=Symbol.for("react.early_return_sentinel");e:{let I=nr(n,r),T;e[16]!==n?(T=n.filter(or),e[16]=n,e[17]=T):T=e[17];let R=T.length,w;e[18]!==n?(w=n.filter(dr),e[18]=n,e[19]=w):w=e[19];let N=w.length,K;e[20]!==n?(K=n.filter(cr),e[20]=n,e[21]=K):K=e[21];let F=K.length,z;e[22]===Symbol.for("react.memo_cache_sentinel")?(z=d(O=>{g(ue=>{let H=new Set(ue);return H.has(O)?H.delete(O):H.add(O),H})},"L"),e[22]=z):z=e[22];let E=z;if(n.length===0){let O;e[23]!==a?(O=a("No query insights yet"),e[23]=a,e[24]=O):O=e[24];let ue;e[25]!==O?(ue=(0,t.jsx)("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:O}),e[25]=O,e[26]=ue):ue=e[26];let H;e[27]!==a?(H=a("Query insights appear once statements are executed against this shard."),e[27]=a,e[28]=H):H=e[28];let he;e[29]!==H?(he=(0,t.jsx)("p",{className:"mt-1 text-sm",children:H}),e[29]=H,e[30]=he):he=e[30];let Be;e[31]!==ue||e[32]!==he?(Be=(0,t.jsx)(fe,{children:(0,t.jsx)(pe,{className:"py-12",children:(0,t.jsxs)("div",{className:"text-center text-muted-foreground",children:[ue,he]})})}),e[31]=ue,e[32]=he,e[33]=Be):Be=e[33],p=Be;break e}o="space-y-4",k="qi-root";let L;e[34]!==a?(L=a("Critical queries"),e[34]=a,e[35]=L):L=e[35];let B;e[36]!==L?(B=(0,t.jsx)(Fe,{className:"pb-2",children:(0,t.jsx)(ze,{className:"text-sm font-medium",children:L})}),e[36]=L,e[37]=B):B=e[37];let P;e[38]!==R?(P=(0,t.jsx)("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:R}),e[38]=R,e[39]=P):P=e[39];let A;e[40]!==a?(A=a(">100ms avg execution"),e[40]=a,e[41]=A):A=e[41];let j;e[42]!==A?(j=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:A}),e[42]=A,e[43]=j):j=e[43];let G;e[44]!==P||e[45]!==j?(G=(0,t.jsxs)(pe,{children:[P,j]}),e[44]=P,e[45]=j,e[46]=G):G=e[46];let V;e[47]!==B||e[48]!==G?(V=(0,t.jsxs)(fe,{children:[B,G]}),e[47]=B,e[48]=G,e[49]=V):V=e[49];let X;e[50]!==a?(X=a("Moderate queries"),e[50]=a,e[51]=X):X=e[51];let Y;e[52]!==X?(Y=(0,t.jsx)(Fe,{className:"pb-2",children:(0,t.jsx)(ze,{className:"text-sm font-medium",children:X})}),e[52]=X,e[53]=Y):Y=e[53];let Z;e[54]!==N?(Z=(0,t.jsx)("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:N}),e[54]=N,e[55]=Z):Z=e[55];let ee;e[56]!==a?(ee=a("50\u2013100ms avg execution"),e[56]=a,e[57]=ee):ee=e[57];let te;e[58]!==ee?(te=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:ee}),e[58]=ee,e[59]=te):te=e[59];let re;e[60]!==Z||e[61]!==te?(re=(0,t.jsxs)(pe,{children:[Z,te]}),e[60]=Z,e[61]=te,e[62]=re):re=e[62];let ae;e[63]!==Y||e[64]!==re?(ae=(0,t.jsxs)(fe,{children:[Y,re]}),e[63]=Y,e[64]=re,e[65]=ae):ae=e[65];let se;e[66]!==a?(se=a("Fast queries"),e[66]=a,e[67]=se):se=e[67];let le;e[68]!==se?(le=(0,t.jsx)(Fe,{className:"pb-2",children:(0,t.jsx)(ze,{className:"text-sm font-medium",children:se})}),e[68]=se,e[69]=le):le=e[69];let ne;e[70]!==F?(ne=(0,t.jsx)("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:F}),e[70]=F,e[71]=ne):ne=e[71];let ie;e[72]!==a?(ie=a("<50ms avg execution"),e[72]=a,e[73]=ie):ie=e[73];let oe;e[74]!==ie?(oe=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:ie}),e[74]=ie,e[75]=oe):oe=e[75];let m;e[76]!==ne||e[77]!==oe?(m=(0,t.jsxs)(pe,{children:[ne,oe]}),e[76]=ne,e[77]=oe,e[78]=m):m=e[78];let $;e[79]!==le||e[80]!==m?($=(0,t.jsxs)(fe,{children:[le,m]}),e[79]=le,e[80]=m,e[81]=$):$=e[81],e[82]!==V||e[83]!==ae||e[84]!==$?(x=(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[V,ae,$]}),e[82]=V,e[83]=ae,e[84]=$,e[85]=x):x=e[85];let J;e[86]!==a?(J=a("Query leaderboard"),e[86]=a,e[87]=J):J=e[87];let U;e[88]!==J?(U=(0,t.jsx)("h3",{className:"text-lg font-semibold",children:J}),e[88]=J,e[89]=U):U=e[89];let de;e[90]!==r||e[91]!==a?(de=a("Slow queries sorted by {sortField}",{sortField:a(r)}),e[90]=r,e[91]=a,e[92]=de):de=e[92];let be;e[93]!==de?(be=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:de}),e[93]=de,e[94]=be):be=e[94];let ve;e[95]!==U||e[96]!==be?(ve=(0,t.jsxs)("div",{children:[U,be]}),e[95]=U,e[96]=be,e[97]=ve):ve=e[97];let ye;e[98]!==a?(ye=a("Sort by"),e[98]=a,e[99]=ye):ye=e[99];let Ne;e[100]!==ye?(Ne=(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:ye}),e[100]=ye,e[101]=Ne):Ne=e[101];let we;e[102]!==a?(we=a("Sort queries by"),e[102]=a,e[103]=we):we=e[103];let Qe;e[104]===Symbol.for("react.memo_cache_sentinel")?(Qe=(0,t.jsx)(Tt,{}),e[104]=Qe):Qe=e[104];let Se;e[105]!==we?(Se=(0,t.jsx)(Rt,{"aria-label":we,className:"w-[140px]","data-testid":"qi-sort",children:Qe}),e[105]=we,e[106]=Se):Se=e[106];let qe;e[107]!==a?(qe=a("Total time"),e[107]=a,e[108]=qe):qe=e[108];let ke;e[109]!==qe?(ke=(0,t.jsx)(Pe,{value:"totalTime",children:qe}),e[109]=qe,e[110]=ke):ke=e[110];let _e;e[111]!==a?(_e=a("Avg time"),e[111]=a,e[112]=_e):_e=e[112];let Me;e[113]!==_e?(Me=(0,t.jsx)(Pe,{value:"avgTime",children:_e}),e[113]=_e,e[114]=Me):Me=e[114];let De;e[115]!==a?(De=a("Execution count"),e[115]=a,e[116]=De):De=e[116];let Ce;e[117]!==De?(Ce=(0,t.jsx)(Pe,{value:"execCount",children:De}),e[117]=De,e[118]=Ce):Ce=e[118];let Ie;e[119]!==a?(Ie=a("Rows read"),e[119]=a,e[120]=Ie):Ie=e[120];let Te;e[121]!==Ie?(Te=(0,t.jsx)(Pe,{value:"rowsRead",children:Ie}),e[121]=Ie,e[122]=Te):Te=e[122];let Re;e[123]!==ke||e[124]!==Me||e[125]!==Ce||e[126]!==Te?(Re=(0,t.jsxs)(Ot,{children:[ke,Me,Ce,Te]}),e[123]=ke,e[124]=Me,e[125]=Ce,e[126]=Te,e[127]=Re):Re=e[127];let Oe;e[128]!==r||e[129]!==Se||e[130]!==Re?(Oe=(0,t.jsxs)(It,{onValueChange:S,value:r,children:[Se,Re]}),e[128]=r,e[129]=Se,e[130]=Re,e[131]=Oe):Oe=e[131];let Ke;e[132]!==Ne||e[133]!==Oe?(Ke=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[Ne,Oe]}),e[132]=Ne,e[133]=Oe,e[134]=Ke):Ke=e[134],e[135]!==ve||e[136]!==Ke?(b=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[ve,Ke]}),e[135]=ve,e[136]=Ke,e[137]=b):b=e[137],c=fe;let Le;e[138]!==a?(Le=a("Statements"),e[138]=a,e[139]=Le):Le=e[139];let Je;e[140]!==Le?(Je=(0,t.jsx)(ze,{children:Le}),e[140]=Le,e[141]=Je):Je=e[141],M=(0,t.jsxs)(Fe,{children:[Je,(0,t.jsx)(ht,{children:a("{count} tracked statements",{count:I.length})})]}),f=pe,y="space-y-2";let Ue;e[142]!==l||e[143]!==a?(Ue=d(O=>{let ue=O.normalizedSql,H=l.has(ue),he=Ve(O.avgDurationMs);return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[(0,t.jsxs)("button",{"aria-expanded":H,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:d(()=>{E(ue)},"onClick"),type:"button",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)(lr,{level:he}),(0,t.jsx)("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:O.normalizedSql})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:$e(O.totalDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("total")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:$e(O.avgDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("avg")})]}),O.p95DurationMs!==void 0&&(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:$e(O.p95DurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("p95")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ge(O.execCount)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("calls")})]})]})]}),H&&(0,t.jsxs)("div",{className:"space-y-3 border-t bg-muted/30 p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-sm font-medium",children:a("Full statement")}),(0,t.jsx)("pre",{className:"overflow-x-auto rounded-md bg-muted p-3 font-mono text-sm whitespace-pre-wrap break-all",children:O.normalizedSql})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[O.p50DurationMs!==void 0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("p50")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:$e(O.p50DurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Exec count")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ge(O.execCount)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Total time")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:$e(O.totalDurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Rows read")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ge(O.rowsRead)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Rows written")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ge(O.rowsWritten)})]})]})]})]},ue)},"Ke"),e[142]=l,e[143]=a,e[144]=Ue):Ue=e[144],q=I.map(Ue)}e[2]=l,e[3]=n,e[4]=r,e[5]=a,e[6]=f,e[7]=c,e[8]=p,e[9]=y,e[10]=q,e[11]=M,e[12]=o,e[13]=k,e[14]=x,e[15]=b}else f=e[6],c=e[7],p=e[8],y=e[9],q=e[10],M=e[11],o=e[12],k=e[13],x=e[14],b=e[15];if(p!==Symbol.for("react.early_return_sentinel"))return p;let _;e[145]!==y||e[146]!==q?(_=(0,t.jsx)("div",{className:y,children:q}),e[145]=y,e[146]=q,e[147]=_):_=e[147];let D;e[148]!==f||e[149]!==_?(D=(0,t.jsx)(f,{children:_}),e[148]=f,e[149]=_,e[150]=D):D=e[150];let h;e[151]!==c||e[152]!==D||e[153]!==M?(h=(0,t.jsxs)(c,{children:[M,D]}),e[151]=c,e[152]=D,e[153]=M,e[154]=h):h=e[154];let C;return e[155]!==h||e[156]!==o||e[157]!==k||e[158]!==x||e[159]!==b?(C=(0,t.jsxs)("div",{className:o,"data-testid":k,children:[x,b,h]}),e[155]=h,e[156]=o,e[157]=k,e[158]=x,e[159]=b,e[160]=C):C=e[160],C},"nr");function or(s){return Ve(s.avgDurationMs)==="critical"}d(or,"or");function dr(s){return Ve(s.avgDurationMs)==="warning"}d(dr,"cr");function cr(s){return Ve(s.avgDurationMs)==="good"}d(cr,"dr");var mr=["1m","5m","15m","1h"],ur=d(s=>new Date(s).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),"fr"),hr=d(s=>s.map(e=>({avg:Math.round(e.avgDurationMs*100)/100,execs:e.execCount,label:ur(e.bucketMs)})),"ur"),gr=d(({shardKey:s=""})=>{let e=ge(),[n,a]=(0,Q.useState)("15m"),r=Ee(Ae.getQueryInsights,{range:n},{live:!0,shardKey:s}).data,u=hr(r?.buckets??[]);return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"qi-range",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("div",{className:"flex gap-1 rounded-lg border border-border p-0.5","data-testid":"qi-ranges",role:"group",children:mr.map(i=>(0,t.jsx)("button",{"aria-pressed":i===n,className:ut("rounded px-2 py-1 text-xs outline-none transition-colors hover:bg-accent focus-visible:bg-accent",i===n&&"bg-accent font-medium text-foreground"),"data-testid":`qi-range-${i}`,onClick:d(()=>{a(i)},"onClick"),type:"button",children:i},i))}),r?.capped===!0&&(0,t.jsx)(He,{"data-testid":"qi-capped",variant:"secondary",children:e("showing a capped set")})]}),u.length===0?(0,t.jsx)(gt,{description:e("Statements executed in the selected window appear here, with throughput and latency over time."),testId:"qi-empty",title:e("No queries in this window.")}):(0,t.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,t.jsxs)("figure",{className:"rounded-xl border border-border p-3","data-testid":"qi-throughput",children:[(0,t.jsx)("figcaption",{className:"mb-2 text-xs font-medium text-muted-foreground",children:e("Throughput")}),(0,t.jsx)(Ze,{height:140,width:"100%",children:(0,t.jsxs)(St,{data:u,children:[(0,t.jsx)(tt,{strokeDasharray:"3 3",vertical:!1}),(0,t.jsx)(rt,{dataKey:"label",fontSize:10,tickLine:!1}),(0,t.jsx)(at,{allowDecimals:!1,fontSize:10,tickLine:!1,width:32}),(0,t.jsx)(et,{}),(0,t.jsx)(Nt,{dataKey:"execs",fill:"var(--color-primary)",fillOpacity:.15,stroke:"var(--color-primary)",type:"monotone"})]})})]}),(0,t.jsxs)("figure",{className:"rounded-xl border border-border p-3","data-testid":"qi-latency",children:[(0,t.jsx)("figcaption",{className:"mb-2 text-xs font-medium text-muted-foreground",children:e("Mean latency (ms)")}),(0,t.jsx)(Ze,{height:140,width:"100%",children:(0,t.jsxs)(wt,{data:u,children:[(0,t.jsx)(tt,{strokeDasharray:"3 3",vertical:!1}),(0,t.jsx)(rt,{dataKey:"label",fontSize:10,tickLine:!1}),(0,t.jsx)(at,{fontSize:10,tickLine:!1,width:32}),(0,t.jsx)(et,{}),(0,t.jsx)(yt,{dataKey:"avg",dot:!1,stroke:"var(--color-destructive)",type:"monotone"})]})})]})]}),(0,t.jsx)(ir,{queryStats:r?.entries??[]})]})},"hr"),fr=ft(Ae.getMetrics),pr=d((s,e)=>s?e:"overview","pr"),Pr=d(({initialShardKey:s})=>{let e=mt(),n=ge(),{queryShardKey:a,setShardKey:r,shardKey:u}=Mt(s),[i,l]=(0,Q.useState)("overview"),[g,v]=(0,Q.useState)([]),S=(0,Q.useRef)(null),f=(0,Q.useRef)(null),c=(0,Q.useRef)(!0);(0,Q.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let p=Lt(a),{data:y,error:q,liveError:M}=Ee(Ae.getMetrics,{},{live:!0,shardKey:a}),o=y??null;(0,Q.useEffect)(()=>{if(y===void 0)return;kt(a);let L=y,B=S.current,P=f.current!==null&&f.current!==L.shard;if(f.current=L.shard,S.current=L.requests,P){v([]);return}B!==null&&L.requests>=B&&v(A=>[...A,L.requests-B].slice(-30))},[y,a]);let[k,x]=(0,Q.useState)(null),[b,_]=(0,Q.useState)(!1),D=d(async()=>{_(!0);let L=u,B=Ft(L,qt());try{let P=await Promise.all(B.map(async A=>{try{let j=await e.query(fr,{},pt(A));return{error:null,metrics:j,shard:A===""?j.shard:A}}catch(j){return{error:xt(j),metrics:null,shard:A===""?"__root__":A}}}));c.current&&x({results:P,shard:L})}finally{c.current&&_(!1)}},"k"),h=k?.shard===u?k.results:null,C=h===null?null:At(h),I=o===null||o.requests===0?"\u2014":`${(o.errors/o.requests*100).toFixed(1)}%`,T=g.length>0?g.at(-1):0,R=o?zt(o):{p90:0,p95:0},w=(0,Q.useMemo)(()=>{if(!o||!("queryStats"in o))return;let L=o.queryStats;if(!(!L||!Array.isArray(L)))return Et(L)},[o]),N=pr(w!==void 0,i),K=d(()=>{vt(D())},"A"),F=d(()=>{x(null)},"O"),z=d(()=>{l("overview")},"L"),E=d(()=>{l("query-insights")},"z");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-metrics",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(_t,{onChange:r,testId:"mt-shard-input",value:u}),(0,t.jsx)(Dt,{message:M,prefix:"mt"}),(0,t.jsx)(Ye,{"data-testid":"mt-aggregate",disabled:b,onClick:K,size:"sm",type:"button",variant:"secondary",children:n(b?"Aggregating\u2026":"All shards")}),h!==null&&(0,t.jsx)(Ye,{"data-testid":"mt-aggregate-clear",onClick:F,size:"sm",type:"button",variant:"ghost",children:n("Hide")}),(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"mt-cf-link",href:Ct,rel:"noreferrer",target:"_blank",children:n("Open in Cloudflare")})]}),q!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:q}),w!==void 0&&(0,t.jsxs)("div",{className:"flex gap-2 border-b","data-testid":"mt-tabs",children:[(0,t.jsx)("button",{className:`pb-2 text-sm font-medium transition-colors ${N==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:z,type:"button",children:n("Overview")}),(0,t.jsxs)("button",{className:`pb-2 text-sm font-medium transition-colors ${N==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:E,type:"button",children:[n("Query insights"),w.length>0&&(0,t.jsx)("span",{className:"ml-1.5 rounded-full bg-primary/10 px-1.5 py-0.5 text-xs text-primary",children:w.length})]})]}),N==="query-insights"&&w!==void 0&&(0,t.jsx)(gr,{shardKey:a}),N==="overview"&&o!==null&&(0,t.jsx)(sr,{currentDelta:T,errorRate:I,history:g,latencyPercentiles:R,metrics:o}),N==="overview"&&o===null&&null,N==="overview"&&(0,t.jsx)(rr,{onOpenTrace:p,shardKey:a}),N==="overview"&&C!==null&&h!==null&&(0,t.jsx)(ar,{aggregate:C,shardResults:h})]})},"Qr");export{Pr as MetricsPanel};
@@ -1 +0,0 @@
1
- import{W as k}from"./chunk-PLHA3OWK.js";import"./chunk-4L4WTGN5.js";import{a as q}from"./chunk-55754F6H.js";import"./chunk-IS6LVJ6L.js";import"./chunk-AAVLPU5Q.js";import{b as j}from"./chunk-FEWMAPNI.js";import"./chunk-225VJ77I.js";import{a as U}from"./chunk-AVRH4ZBT.js";import"./chunk-ULIQFBZU.js";import"./chunk-GMHY2XTC.js";import"./chunk-35DM4JJG.js";import{a as R}from"./chunk-4ZEL6BYL.js";import{c as P}from"./chunk-ZDPY27UY.js";import"./chunk-GUD3ZG3Z.js";import"./chunk-FSRSK4LY.js";import"./chunk-PUGHZTBL.js";import{a as M}from"./chunk-FKVZRPV5.js";import{a as G,b as H,c as J,d as B,e as x,f as N}from"./chunk-HEAQVSNS.js";import{a as z,e as D}from"./chunk-N6NMLJ6R.js";import{d as F,t as O}from"./chunk-PTZD7RUZ.js";import{a as A,d as T,e as $,f as X,g as Y}from"./chunk-YKXDMIHQ.js";var K=T(X(),1),Q=T($(),1);var t=T(Y(),1);var de=A(()=>{let e=(0,K.c)(39),a=F(),[s,V]=(0,Q.useState)(""),y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y={},e[0]=y):y=e[0];let{data:C,error:l,errorSource:S,isLoading:E,refetch:_}=P(R.getAuthAuditLog,y),I;if(e[1]!==C?.entries||e[2]!==s){let r=C?.entries??[],v=s.trim().toLowerCase();I=v===""?r:r.filter(w=>w.event.toLowerCase().includes(v)||(w.actorId??"").toLowerCase().includes(v)||(w.actorEmail??"").toLowerCase().includes(v)||(w.ip??"").toLowerCase().includes(v)||w.outcome.toLowerCase().includes(v)),e[1]=C?.entries,e[2]=s,e[3]=I}else I=e[3];let o=I,L;e[4]===Symbol.for("react.memo_cache_sentinel")?(L=A(r=>{V(r.target.value)},"I"),e[4]=L):L=e[4];let W=L,i;e[5]!==a?(i=a("Filter security events"),e[5]=a,e[6]=i):i=e[6];let n;e[7]!==a?(n=a("filter event, actor, IP"),e[7]=a,e[8]=n):n=e[8];let c;e[9]!==s||e[10]!==i||e[11]!==n?(c=(0,t.jsx)(k,{"aria-label":i,className:"h-8 w-56","data-testid":"aa-search",onChange:W,placeholder:n,value:s}),e[9]=s,e[10]=i,e[11]=n,e[12]=c):c=e[12];let d;e[13]!==_?(d=A(()=>{_()},"m"),e[13]=_,e[14]=d):d=e[14];let m;e[15]!==a?(m=a("Refresh"),e[15]=a,e[16]=m):m=e[16];let u;e[17]!==d||e[18]!==m?(u=(0,t.jsx)(q,{"data-testid":"aa-refresh",onClick:d,size:"xs",type:"button",variant:"ghost",children:m}),e[17]=d,e[18]=m,e[19]=u):u=e[19];let h;e[20]!==c||e[21]!==u?(h=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,u]}),e[20]=c,e[21]=u,e[22]=h):h=e[22];let f;e[23]!==l||e[24]!==S?(f=l!==null&&(0,t.jsx)(U,{error:S,testId:"aa-error"}),e[23]=l,e[24]=S,e[25]=f):f=e[25];let p;e[26]!==l||e[27]!==o.length||e[28]!==E||e[29]!==a?(p=l===null&&!E&&o.length===0&&(0,t.jsx)(M,{description:a("Authentication and security events are recorded here."),testId:"aa-empty",title:a("No security events.")}),e[26]=l,e[27]=o.length,e[28]=E,e[29]=a,e[30]=p):p=e[30];let g;e[31]!==o||e[32]!==a?(g=o.length>0&&(0,t.jsx)(z,{className:"overflow-hidden py-0",children:(0,t.jsx)(D,{className:"max-h-[30rem] overflow-auto px-0",children:(0,t.jsxs)(G,{"data-testid":"aa-table",children:[(0,t.jsx)(H,{children:(0,t.jsxs)(B,{children:[(0,t.jsx)(x,{children:a("time")}),(0,t.jsx)(x,{children:a("event")}),(0,t.jsx)(x,{children:a("actor")}),(0,t.jsx)(x,{children:a("ip / user agent")}),(0,t.jsx)(x,{children:a("outcome")})]})}),(0,t.jsx)(J,{children:o.map(r=>(0,t.jsxs)(B,{"data-testid":"aa-row",children:[(0,t.jsx)(N,{className:"text-muted-foreground tabular-nums",children:O(r.ts,"\u2014")}),(0,t.jsx)(N,{children:(0,t.jsx)(j,{variant:"secondary",children:r.event})}),(0,t.jsx)(N,{className:"max-w-[24ch] truncate font-mono text-xs",title:r.actorId??void 0,children:r.actorEmail??r.actorId??(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"})}),(0,t.jsxs)(N,{className:"max-w-[28ch] truncate text-xs text-muted-foreground",title:r.userAgent??void 0,children:[r.ip??(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),r.userAgent!==void 0&&(0,t.jsxs)("span",{className:"ml-1 opacity-70",children:["\xB7 ",r.userAgent]})]}),(0,t.jsx)(N,{children:(0,t.jsx)(j,{variant:r.outcome==="failure"?"destructive":"outline",children:a(r.outcome)})})]},r.seq))})]})})}),e[31]=o,e[32]=a,e[33]=g):g=e[33];let b;return e[34]!==f||e[35]!==p||e[36]!==g||e[37]!==h?(b=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-auth-audit",children:[h,f,p,g]}),e[34]=f,e[35]=p,e[36]=g,e[37]=h,e[38]=b):b=e[38],b},"ne");export{de as default};
@@ -1 +0,0 @@
1
- import{a as te}from"./chunk-NFS7FTAR.js";import{a as Z}from"./chunk-S3CRZLGS.js";import{a as Y}from"./chunk-EJSI4PMU.js";import{b as X}from"./chunk-OGUKYRFM.js";import{a as W}from"./chunk-K7AJEMKE.js";import{e as G}from"./chunk-6D6Z2KXU.js";import"./chunk-OKG3HWSJ.js";import"./chunk-PLHA3OWK.js";import"./chunk-Y6CXU7T4.js";import"./chunk-4L4WTGN5.js";import{b as ae,c as ne}from"./chunk-5XPSGVCH.js";import{a as q,b as ee}from"./chunk-VTMPJ7GE.js";import{a as Q}from"./chunk-55754F6H.js";import"./chunk-IS6LVJ6L.js";import"./chunk-AAVLPU5Q.js";import"./chunk-225VJ77I.js";import"./chunk-AVRH4ZBT.js";import"./chunk-ULIQFBZU.js";import"./chunk-GMHY2XTC.js";import"./chunk-35DM4JJG.js";import{a as I}from"./chunk-4ZEL6BYL.js";import{c as _}from"./chunk-ZDPY27UY.js";import{f as D}from"./chunk-GUD3ZG3Z.js";import"./chunk-FSRSK4LY.js";import"./chunk-PUGHZTBL.js";import"./chunk-HEAQVSNS.js";import"./chunk-N6NMLJ6R.js";import{d as M,f as C,g as A,l as V,p as N}from"./chunk-PTZD7RUZ.js";import{a as l,d as j,e as he,f as me,g as pe}from"./chunk-YKXDMIHQ.js";var E=j(me(),1);var c=j(he(),1);var S=j(pe(),1);var ge=l(t=>{let{suggestedIndex:e,table:i}=t;if(typeof i!="string"||i.length===0||typeof e!="object"||e===null)return!1;let{fields:a,name:n}=e;return!Array.isArray(a)||a.length===0||a.some(s=>typeof s!="string"||s.length===0)?!1:typeof n=="string"&&n.length>0},"ye"),be=l((t,e)=>`.index(${JSON.stringify(t)}, [${e.map(i=>JSON.stringify(i)).join(", ")}])`,"ge"),ye=l(t=>{let e=(0,E.c)(19),{fields:i,indexName:a,table:n,testId:s}=t,u=M(),[h,f]=(0,c.useState)(null),m;e[0]!==i||e[1]!==a?(m=l(()=>{let b=be(a,i),$="navigator"in globalThis?globalThis.navigator.clipboard:void 0;if($===void 0){f({copied:!1,declaration:b});return}N($.writeText(b).then(()=>(f({copied:!0,declaration:b}),!0)),()=>{f({copied:!1,declaration:b})})},"m"),e[0]=i,e[1]=a,e[2]=m):m=e[2];let x=m;if(h!==null){let b;return e[3]!==h.copied||e[4]!==h.declaration||e[5]!==u||e[6]!==n||e[7]!==s?(b=h.copied?(0,S.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":`${s}-applied`,children:u("Index declaration copied \u2014 add it to {table} in lunora/schema.ts.",{table:n})}):(0,S.jsxs)("span",{className:"flex flex-col gap-1 text-xs text-muted-foreground","data-testid":`${s}-manual`,children:[u("Could not reach the clipboard \u2014 add this to {table} in lunora/schema.ts:",{table:n}),(0,S.jsx)("code",{className:"font-mono break-all select-all",children:h.declaration})]}),e[3]=h.copied,e[4]=h.declaration,e[5]=u,e[6]=n,e[7]=s,e[8]=b):b=e[8],b}let T;e[9]!==u?(T=u("Copy?"),e[9]=u,e[10]=T):T=e[10];let p;e[11]!==u||e[12]!==n?(p=u("Copy index declaration for {table}",{table:n}),e[11]=u,e[12]=n,e[13]=p):p=e[13];let w;return e[14]!==x||e[15]!==T||e[16]!==p||e[17]!==s?(w=(0,S.jsx)(te,{confirmLabel:T,onConfirm:x,testId:s,children:p}),e[14]=x,e[15]=T,e[16]=p,e[17]=s,e[18]=w):w=e[18],w},"ve"),xe=l((t,e)=>{let i=new Map;for(let a of e){let n=`${a.table} ${a.index}`;i.set(n,(i.get(n)??0)+a.reads)}return t.map(a=>({index:a.index,reads:i.get(`${a.table} ${a.index}`)??0,table:a.table}))},"Se"),ve=l(t=>{let e=new Map;for(let i of t)for(let a of i.scannedTables??[])e.set(a.table,(e.get(a.table)??0)+a.scans);return[...e].map(([i,a])=>({scans:a,table:i}))},"Te"),ie=l((t,e)=>e.map(i=>({index:i.name,table:t})),"P"),we=l(t=>{let e=xe(t.declaredIndexes??[],t.indexHits??[]),i=ve(t.functions??[]),a=t.shardTraffic??[],n=t.analyticsMetrics,s=n&&n.indexHits.length>0?n.indexHits:e,u=n&&n.tableScans.length>0?n.tableScans:i,h=n&&n.shardTraffic.length>0?n.shardTraffic:a,f=ne({indexHits:s,schema:{tables:[]},shardTraffic:h,tableScans:u},{lints:ae,source:"runtime"}),m=t.suppressHotScanTables;return(m===void 0?f:f.filter(x=>!(x.metadata.kind==="hot_scan"&&typeof x.metadata.table=="string"&&m.has(x.metadata.table)))).map(x=>q(x))},"we"),Se=C(I.listTables),Te=C(I.listTableIndexes),Ie=C(I.listTablesIndexes),B=l(t=>`${(t*100).toFixed(1)}%`,"L"),re=l(t=>`${(t/1e3).toFixed(2)}s`,"V"),$e=l(t=>{if(t.length<=1)return t[0]??"";let e=t[t.length-1]??"";return`${t.slice(0,-1).join(", ")} and ${e}`},"Ne"),ke=l((t,e)=>({"high-error-rate":t("High error rate"),"high-evictions":t("High cache eviction rate"),"high-write-contention":t("High write contention"),"low-cache-hit-rate":t("Low cache hit rate"),"missing-index":t("Missing index"),"slow-function":t("Slow function"),"storage-headroom":t("Storage headroom")})[e.kind],"ke"),se=l((t,e)=>({"high-error-rate":t("{rate} of calls failed.",{rate:B(e.value)}),"high-evictions":t("{count} entries evicted recently.",{count:e.value}),"high-write-contention":t("{rate} of calls hit a write conflict \u2014 consider sharding to cut contention.",{rate:B(e.value)}),"low-cache-hit-rate":t("{rate} hit rate over recent traffic.",{rate:B(e.value)}),"missing-index":t("Slowest call took {duration} \u2014 it full-scanned {tables} with no index.",{duration:re(e.value),tables:$e(e.tables??[])}),"slow-function":t("Slowest call took {duration}.",{duration:re(e.value)}),"storage-headroom":t("{size} of the 10 GiB per-shard ceiling \u2014 plan a .shardBy() migration while it still has runway.",{size:V(e.value)})})[e.kind],"U"),Ne=l(t=>{let e=(0,E.c)(10),{onJump:i,table:a}=t,n=M(),s;e[0]!==i||e[1]!==a?(s=l(()=>{i(a)},"i"),e[0]=i,e[1]=a,e[2]=s):s=e[2];let u=s,h=`in-add-index-${a}`,f;e[3]!==n||e[4]!==a?(f=n("Add index on {table}",{table:a}),e[3]=n,e[4]=a,e[5]=f):f=e[5];let m;return e[6]!==u||e[7]!==h||e[8]!==f?(m=(0,S.jsx)(Q,{"data-testid":h,onClick:u,size:"sm",type:"button",variant:"outline",children:f}),e[6]=u,e[7]=h,e[8]=f,e[9]=m):m=e[9],m},"Be"),ze=l(({initialShardKey:t,loadShardTraffic:e})=>{let i=D(),a=G(),n=M(),{queryShardKey:s,setShardKey:u,shardKey:h}=Z(t),[f,m]=(0,c.useState)(null),[x,T]=(0,c.useState)(null),p=(0,c.useRef)(""),w=_(I.getMetrics,{},{live:!0,shardKey:s}),b=_(I.getFunctionStats,{},{live:!0,shardKey:s}),$=_(I.getAdvisories,{},{live:!0,shardKey:s}),L=w.data??null,H=b.data?.functions??null,F=$.data?.advisories??null,J=w.data?.indexHits??null,O=w.error!==null&&b.error!==null?w.error:null,oe=e??(r=>i.shardTraffic(r)),le=l(async(r,y)=>{let o=r[0];if(o===void 0||o===""){p.current===y&&T(null);return}try{let g=await oe(o);if(p.current!==y)return;let d=new Map;for(let v of g.shards)d.has(v.shardKey)||d.set(v.shardKey,{requests:v.requests,shardKey:v.shardKey});T([...d.values()])}catch{p.current===y&&T(null)}},"Y"),de=l(async(r,y)=>{let o=await Promise.allSettled(r.map(async d=>[d,await i.query(Te,{table:d},A(y))])),g=[];for(let d of o)if(d.status==="fulfilled"){let[v,k]=d.value;g.push(...ie(v,k.indexes))}return g},"Z"),z=(0,c.useEffectEvent)(async r=>{p.current=r;let y=[];try{let o=await i.query(Se,{},A(r));if(p.current!==r)return;X(r),y=o.map(d=>d.name);let g=[];if(y.length>0)try{let d=await i.query(Ie,{tables:y},A(r));if(p.current!==r)return;for(let[v,k]of Object.entries(d.indexesByTable))g.push(...ie(v,k))}catch{if(g=await de(y,r),p.current!==r)return}m(g)}catch{p.current===r&&m(null)}await le(y,r)});(0,c.useEffect)(()=>{N(z(s))},[s]);let ce=(0,c.useEffectEvent)(()=>{w.refetch(),b.refetch(),$.refetch(),N(z(s))});(0,c.useEffect)(()=>{let r=l(()=>{document.visibilityState==="visible"&&ce()},"r");return document.addEventListener("visibilitychange",r),()=>{document.removeEventListener("visibilitychange",r)}},[]);let U=(0,c.useCallback)(r=>{N(a({search:{table:r},to:"/schema"}))},[a]),K=(0,c.useMemo)(()=>W(L,H),[H,L]),P=(0,c.useMemo)(()=>new Set(K.filter(r=>r.kind==="missing-index").flatMap(r=>r.tables??[])),[K]),R=(0,c.useMemo)(()=>we({declaredIndexes:f??[],functions:H,indexHits:J,shardTraffic:x,suppressHotScanTables:P}),[f,H,J,P,x]),ue=(0,c.useMemo)(()=>{let r=K.map(o=>{let g=o.kind==="missing-index"?o.tables??[]:[];return{action:g.length>0?g.map(d=>(0,S.jsx)(Ne,{onJump:U,table:d},d)):void 0,description:o.message===void 0?se(n,o):`${se(n,o)} \u2014 ${o.message}`,entity:o.fn,issueType:ke(n,o),key:`${o.kind}:${o.fn??""}`,level:o.severity}}),y=new Set(["unindexed_foreign_key","unindexed_relation_target"]);return[...(F??[]).map(o=>{let g=q(o);if(y.has(o.name)&&ge(o.metadata)){let{table:d,suggestedIndex:v}=o.metadata,k=`in-apply-index-${d}-${v.name}`;return{...g,action:(0,S.jsx)(ye,{fields:v.fields,indexName:v.name,table:d,testId:k})}}return g}),...R,...r]},[F,K,U,R,n]),fe=(0,S.jsx)(Y,{onChange:u,testId:"in-shard-input",value:h});return(0,S.jsx)(ee,{error:O,errorSource:O===null?void 0:w.errorSource,rows:ue,testId:"lunora-insights",toolbar:fe})},"Ue");export{ze as InsightsPanel};