@lunora/studio 1.0.0-alpha.100 → 1.0.0-alpha.102

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 (113) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/packem_chunks/LogsPanel.js +1 -1
  3. package/dist/packem_chunks/MetricsPanel.js +1 -1
  4. package/dist/packem_chunks/traces-panel.js +1 -1
  5. package/dist/packem_shared/log-line-CmtmbZNE.js +1 -0
  6. package/dist/packem_shared/trace-handoff-D7j9TjUT.js +1 -0
  7. package/dist/packem_shared/use-open-trace-D9XDDHHS.js +1 -0
  8. package/dist/standalone/chunk-22SUVVIR.js +1 -0
  9. package/dist/standalone/{chunk-C2OHUG2J.js → chunk-35SAF2LS.js} +1 -1
  10. package/dist/standalone/chunk-37PXYIVK.js +1 -0
  11. package/dist/standalone/{chunk-JN2Y24PY.js → chunk-3DH35OZ5.js} +1 -1
  12. package/dist/standalone/chunk-3RC2X4I2.js +1 -0
  13. package/dist/standalone/chunk-4KPBTODU.js +1 -0
  14. package/dist/standalone/{chunk-EALHAMLB.js → chunk-4PDTGZDC.js} +2 -2
  15. package/dist/standalone/{chunk-MQ2GKKQ6.js → chunk-4V4RO52I.js} +1 -1
  16. package/dist/standalone/{chunk-FMM3XUZH.js → chunk-5BEGIQM7.js} +1 -1
  17. package/dist/standalone/chunk-5HMBKUFH.js +1 -0
  18. package/dist/standalone/chunk-6C6FRIYD.js +1 -0
  19. package/dist/standalone/{chunk-322ZP3GW.js → chunk-6IZBFC3G.js} +1 -1
  20. package/dist/standalone/{chunk-BUVIRYQM.js → chunk-6THGMZNI.js} +1 -1
  21. package/dist/standalone/chunk-7AY2447G.js +1 -0
  22. package/dist/standalone/{chunk-5NCGZJ55.js → chunk-7GNNMMT4.js} +1 -1
  23. package/dist/standalone/chunk-7MT6C3FS.js +1 -0
  24. package/dist/standalone/chunk-A3DCTWSA.js +1 -0
  25. package/dist/standalone/{chunk-M43KO276.js → chunk-APBWFKW5.js} +1 -1
  26. package/dist/standalone/chunk-B5FMYLVA.js +1 -0
  27. package/dist/standalone/chunk-BB7WLC24.js +1 -0
  28. package/dist/standalone/{chunk-Y7XGNPT6.js → chunk-BCMLQ3LV.js} +1 -1
  29. package/dist/standalone/{chunk-55PVLIN3.js → chunk-BIVP5DZB.js} +1 -1
  30. package/dist/standalone/{chunk-DGRAPESO.js → chunk-DBAMCESO.js} +1 -1
  31. package/dist/standalone/{chunk-GGADAESO.js → chunk-DC23USXJ.js} +1 -1
  32. package/dist/standalone/chunk-DJZYD5I5.js +1 -0
  33. package/dist/standalone/chunk-DSDJ3QRD.js +1 -0
  34. package/dist/standalone/chunk-DY34ZZ5K.js +1 -0
  35. package/dist/standalone/chunk-ELI5HREQ.js +2 -0
  36. package/dist/standalone/{chunk-XAEG372C.js → chunk-ELJZNBBJ.js} +1 -1
  37. package/dist/standalone/{chunk-RTMMB3OY.js → chunk-EWGPDRH3.js} +1 -1
  38. package/dist/standalone/chunk-G6VZTEGG.js +1 -0
  39. package/dist/standalone/{chunk-4KIQ5RLS.js → chunk-GG6PIGQO.js} +1 -1
  40. package/dist/standalone/{chunk-MZ2JNVMR.js → chunk-GRRBUXEI.js} +1 -1
  41. package/dist/standalone/{chunk-F7IRBXWY.js → chunk-GSQDZMV5.js} +1 -1
  42. package/dist/standalone/{chunk-NE4N6I57.js → chunk-IID7VT2A.js} +1 -1
  43. package/dist/standalone/{chunk-PVF5J5UD.js → chunk-IRXDBOOU.js} +1 -1
  44. package/dist/standalone/chunk-K2E4OECF.js +1 -0
  45. package/dist/standalone/chunk-LKBKYLWK.js +1 -0
  46. package/dist/standalone/{chunk-UF6XZKV3.js → chunk-LPBWDHKM.js} +1 -1
  47. package/dist/standalone/{chunk-M3NGYXDR.js → chunk-LYVP5PT6.js} +1 -1
  48. package/dist/standalone/chunk-LZFOZFYW.js +1 -0
  49. package/dist/standalone/{chunk-WMLKVJUX.js → chunk-MRK53LUL.js} +1 -1
  50. package/dist/standalone/chunk-MWIKAR7F.js +1 -0
  51. package/dist/standalone/{chunk-5GQFG6QI.js → chunk-NH4HJFG3.js} +1 -1
  52. package/dist/standalone/chunk-NLHEYDAA.js +1 -0
  53. package/dist/standalone/{chunk-GVSKCIJR.js → chunk-NLWDTGEP.js} +1 -1
  54. package/dist/standalone/chunk-OHOWUEQ3.js +1 -0
  55. package/dist/standalone/chunk-ORNIQZ2P.js +1 -0
  56. package/dist/standalone/chunk-PCAI3G4M.js +1 -0
  57. package/dist/standalone/{chunk-V76WCOMM.js → chunk-QJW2Z3SI.js} +1 -1
  58. package/dist/standalone/{chunk-MKYEFQCA.js → chunk-RA5DW5MU.js} +1 -1
  59. package/dist/standalone/chunk-RO6LEET3.js +1 -0
  60. package/dist/standalone/chunk-RTXAZLAE.js +1 -0
  61. package/dist/standalone/{chunk-AB5WGAX6.js → chunk-SBZXUGZ7.js} +1 -1
  62. package/dist/standalone/chunk-T6YGEL6X.js +1 -0
  63. package/dist/standalone/chunk-TFSGDOCG.js +1 -0
  64. package/dist/standalone/{chunk-FKAUVTSS.js → chunk-TQEVFVNP.js} +1 -1
  65. package/dist/standalone/{chunk-JXF2J6QZ.js → chunk-U4THUBUT.js} +1 -1
  66. package/dist/standalone/{chunk-4HNNNIDW.js → chunk-U62QRT34.js} +1 -1
  67. package/dist/standalone/chunk-UALL2OBT.js +1 -0
  68. package/dist/standalone/{chunk-BQNVN2OD.js → chunk-UP7OTXKF.js} +1 -1
  69. package/dist/standalone/chunk-VITTPKH5.js +1 -0
  70. package/dist/standalone/{chunk-CJLOWFCK.js → chunk-W3VOX7VR.js} +1 -1
  71. package/dist/standalone/chunk-W3XKLUWQ.js +1 -0
  72. package/dist/standalone/{chunk-6UPCJAAI.js → chunk-WMBDXCYL.js} +1 -1
  73. package/dist/standalone/{chunk-6V27P65N.js → chunk-WPK2Q33V.js} +1 -1
  74. package/dist/standalone/{chunk-YC52XCPK.js → chunk-X7B6PLEW.js} +4 -4
  75. package/dist/standalone/chunk-Y32QIKBS.js +1 -0
  76. package/dist/standalone/{chunk-K3PSOZXH.js → chunk-YZ7OINPX.js} +1 -1
  77. package/dist/standalone/{chunk-HGSIVV32.js → chunk-ZMDNTTAC.js} +1 -1
  78. package/dist/standalone/{chunk-P4BOVBMR.js → chunk-ZNNKWEH5.js} +1 -1
  79. package/dist/standalone/studio.js +1 -1
  80. package/dist/styles.css +1 -1
  81. package/package.json +6 -6
  82. package/dist/packem_shared/log-fields-CoL3hsIQ.js +0 -1
  83. package/dist/packem_shared/trace-handoff-CuZ6WGgo.js +0 -1
  84. package/dist/standalone/chunk-5PQCUZIE.js +0 -1
  85. package/dist/standalone/chunk-6UPIWTCN.js +0 -1
  86. package/dist/standalone/chunk-7LJL6UC2.js +0 -1
  87. package/dist/standalone/chunk-APXXEXIX.js +0 -1
  88. package/dist/standalone/chunk-AREBQI6D.js +0 -1
  89. package/dist/standalone/chunk-DB2D42KJ.js +0 -1
  90. package/dist/standalone/chunk-DBCMZ4NF.js +0 -1
  91. package/dist/standalone/chunk-EIK3BLGV.js +0 -1
  92. package/dist/standalone/chunk-EV2NKHXP.js +0 -1
  93. package/dist/standalone/chunk-F6W6WUAJ.js +0 -1
  94. package/dist/standalone/chunk-FXCBF4XT.js +0 -1
  95. package/dist/standalone/chunk-GRTTHN6U.js +0 -1
  96. package/dist/standalone/chunk-IVQUDVQV.js +0 -1
  97. package/dist/standalone/chunk-JYYXXMLM.js +0 -1
  98. package/dist/standalone/chunk-KESD5PH6.js +0 -1
  99. package/dist/standalone/chunk-LUIZB427.js +0 -1
  100. package/dist/standalone/chunk-PKEBAPJY.js +0 -1
  101. package/dist/standalone/chunk-PKSAWP56.js +0 -1
  102. package/dist/standalone/chunk-QC2SRHZV.js +0 -1
  103. package/dist/standalone/chunk-QNWJ5Q2O.js +0 -1
  104. package/dist/standalone/chunk-QWGT25SE.js +0 -1
  105. package/dist/standalone/chunk-QZFRZEDN.js +0 -1
  106. package/dist/standalone/chunk-UETRSNZI.js +0 -2
  107. package/dist/standalone/chunk-UF7QFJ65.js +0 -1
  108. package/dist/standalone/chunk-VC4WBYE6.js +0 -1
  109. package/dist/standalone/chunk-VJHQW5X5.js +0 -1
  110. package/dist/standalone/chunk-W25EQ7YQ.js +0 -1
  111. package/dist/standalone/chunk-WGEZGQZ5.js +0 -1
  112. package/dist/standalone/chunk-XHMHOSGK.js +0 -1
  113. package/dist/standalone/chunk-Z6CJGUSL.js +0 -1
@@ -0,0 +1 @@
1
+ import{a as me}from"./chunk-TMGHRD6W.js";import{a as Kt,b as Lt,c as At,d as Tt,e as it}from"./chunk-BCMLQ3LV.js";import{a as Ot}from"./chunk-VITTPKH5.js";import{a as zt}from"./chunk-K2E4OECF.js";import{e as _t}from"./chunk-XF2B7P5A.js";import{a as Dt,b as It,c as Ct,d as Rt,e as je}from"./chunk-RA5DW5MU.js";import"./chunk-2PJNAWB3.js";import"./chunk-SD4BERSA.js";import"./chunk-IC4L6G56.js";import{a as Mt}from"./chunk-IGCNMZSB.js";import"./chunk-2QSHLBCO.js";import"./chunk-BGBLQ563.js";import"./chunk-IVFHIQOT.js";import"./chunk-QBWRC5YX.js";import{a as Ze,b as et,c as tt,d as vt,e as yt,f as rt,g as at,h as Nt,i as St}from"./chunk-ZMDNTTAC.js";import"./chunk-4UOFSGUS.js";import"./chunk-CZZWYUTR.js";import{a as $t}from"./chunk-3CWGJYBB.js";import{a as kt}from"./chunk-RMN2JN4S.js";import{a as wt,b as qt}from"./chunk-GRL5MG3Z.js";import"./chunk-SMIESS7P.js";import"./chunk-7T7UOTYK.js";import"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{a as Ye}from"./chunk-MWIKAR7F.js";import"./chunk-DJZYD5I5.js";import"./chunk-2OUPA2WJ.js";import{b as We}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import"./chunk-QLQADHFE.js";import{a as Le}from"./chunk-VDW32UET.js";import{c as Ee}from"./chunk-UP7OTXKF.js";import{f as ct}from"./chunk-LYVP5PT6.js";import"./chunk-XBDKZZ67.js";import{a as ht}from"./chunk-XQCVZAGU.js";import{a as st,b as lt,c as nt,d as Pe,e as ce,f as H}from"./chunk-WJQLNYGX.js";import{a as fe,b as Ae,c as Te,d as ut,e as pe}from"./chunk-WQH3LT2P.js";import{d as ge,f as gt,g as ft,h as pt,i as xt,l as Ge,o as bt}from"./chunk-IUYFXK4X.js";import"./chunk-X7B6PLEW.js";import{a as o,e as Xe,f as Qt,g as Ut,h as Ft,j as mt}from"./chunk-3XIESWL4.js";var j=Xe(Qt(),1);var xe=Xe(Ut(),1);var t=Xe(Ft(),1);var Jt=o((s,e)=>s<e?-1:s>e?1:0,"Bt"),dt=o(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(s===null||typeof s!="object")return JSON.stringify(s);if(Array.isArray(s))return`[${s.map(c=>dt(c)).join(",")}]`;let e=Object.getPrototypeOf(s);if(e!==null&&e!==Object.prototype){let c=s.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${c} in a stable JSON cache key \u2014 only plain objects, arrays, and JSON primitives are supported (wire-typed values key via stableWireKey)`)}let l=s,a=Object.keys(l).toSorted(Jt),r=[];for(let c of a){let i=l[c];i!==void 0&&r.push(`${JSON.stringify(c)}:${dt(i)}`)}return`{${r.join(",")}}`},"Ze"),Pt=o((s,e,l)=>`${s}:${e}:${dt(l??{})}`,"ht"),jt=o((s,e)=>s==="gauge"?e.last:s==="histogram"?e.sum/Math.max(1,e.count):e.sum,"gt"),Ht=o((s,e)=>jt(s,e),"Jt"),Wt=o(s=>jt(s.kind,s),"Ht"),ot=o(s=>Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:2}),"Xe"),Gt=o(s=>Array.isArray(s?.series)?s.series:[],"Gt"),Bt="FUNCTION_NOT_FOUND",Vt=o(s=>{let e=new Map;if(!Array.isArray(s?.series))return e;for(let l of s.series)e.set(Pt(l.kind,l.name,l.attributes),l.points);return e},"Xt"),Xt={counter:"secondary",gauge:"default",histogram:"outline"},Yt=o(s=>{let e=(0,xe.c)(18),{name:l,onOpenTrace:a,traceId:r}=s,c=ge();if(r===void 0){let m;return e[0]===Symbol.for("react.memo_cache_sentinel")?(m=(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),e[0]=m):m=e[0],m}let i;e[1]!==r?(i=r.slice(0,8),e[1]=r,e[2]=i):i=e[2];let n=i;if(a===void 0){let m=`mt-instrument-trace-${l}`,g;return e[3]!==n||e[4]!==m||e[5]!==r?(g=(0,t.jsx)("span",{className:"text-muted-foreground","data-testid":m,title:r,children:n}),e[3]=n,e[4]=m,e[5]=r,e[6]=g):g=e[6],g}let S=`mt-instrument-trace-${l}`,v;e[7]!==a||e[8]!==r?(v=o(()=>{a(r)},"v"),e[7]=a,e[8]=r,e[9]=v):v=e[9];let w;e[10]!==c||e[11]!==r?(w=c("Open the exemplar trace {trace}",{trace:r}),e[10]=c,e[11]=r,e[12]=w):w=e[12];let h;return e[13]!==n||e[14]!==S||e[15]!==v||e[16]!==w?(h=(0,t.jsx)("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":S,onClick:v,title:w,type:"button",children:n}),e[13]=n,e[14]=S,e[15]=v,e[16]=w,e[17]=h):h=e[17],h},"Vt"),Zt=o(s=>{let e=(0,xe.c)(105),{onOpenTrace:l,shardKey:a}=s,r=ge(),c;e[0]===Symbol.for("react.memo_cache_sentinel")?(c={},e[0]=c):c=e[0];let i;e[1]!==a?(i={live:!0,shardKey:a},e[1]=a,e[2]=i):i=e[2];let{data:n,error:S,errorSource:v}=Ee(Le.getMetricSeries,c,i),w;e[3]===Symbol.for("react.memo_cache_sentinel")?(w={},e[3]=w):w=e[3];let h;e[4]!==a?(h={live:!0,shardKey:a},e[4]=a,e[5]=h):h=e[5];let{data:m}=Ee(Le.getMetricHistory,w,h),g,y,q,M,d,p,f,x,k,_,N,I,D;if(e[6]!==n||e[7]!==S||e[8]!==v||e[9]!==m||e[10]!==l||e[11]!==r){x=Symbol.for("react.early_return_sentinel");e:{let L=Gt(n),T=xt(v)===Bt;if(S!==null&&!T){let u;e[25]!==r?(u=r("Instruments"),e[25]=r,e[26]=u):u=e[26];let P;e[27]!==u?(P=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:u}),e[27]=u,e[28]=P):P=e[28];let U;e[29]!==S||e[30]!==r?(U=r("Instruments unavailable: {error}",{error:S}),e[29]=S,e[30]=r,e[31]=U):U=e[31];let F;e[32]!==U?(F=(0,t.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"mt-instruments-error",role:"status",children:U}),e[32]=U,e[33]=F):F=e[33];let de;e[34]!==P||e[35]!==F?(de=(0,t.jsxs)("section",{className:"flex flex-col gap-2","data-testid":"mt-instruments",children:[P,F]}),e[34]=P,e[35]=F,e[36]=de):de=e[36],x=de;break e}if(L.length===0){x=null;break e}let K=Vt(m),E;e[37]!==r?(E=o(u=>r(u==="counter"?"Counter":u==="gauge"?"Gauge":"Histogram"),"K"),e[37]=r,e[38]=E):E=e[38];let Q=E;d="flex flex-col gap-2",p="mt-instruments";let A;e[39]!==r?(A=r("Instruments"),e[39]=r,e[40]=A):A=e[40],e[41]!==A?(f=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:A}),e[41]=A,e[42]=f):f=e[42],M=fe,D="overflow-hidden py-0",q=pe,I="px-0",y=st,_="mt-instruments-table";let W;e[43]!==r?(W=r("name"),e[43]=r,e[44]=W):W=e[44];let G;e[45]!==W?(G=(0,t.jsx)(ce,{children:W}),e[45]=W,e[46]=G):G=e[46];let B;e[47]!==r?(B=r("kind"),e[47]=r,e[48]=B):B=e[48];let V;e[49]!==B?(V=(0,t.jsx)(ce,{children:B}),e[49]=B,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]!==G||e[76]!==V||e[77]!==Y||e[78]!==ee||e[79]!==re||e[80]!==se||e[81]!==ne||e[82]!==oe?(N=(0,t.jsx)(lt,{children:(0,t.jsxs)(Pe,{children:[G,V,Y,ee,re,se,ne,oe]})}),e[75]=G,e[76]=V,e[77]=Y,e[78]=ee,e[79]=re,e[80]=se,e[81]=ne,e[82]=oe,e[83]=N):N=e[83],g=nt,k=L.map(u=>{let P=zt(u.attributes),U=Pt(u.kind,u.name,u.attributes),F=(K.get(U)??[]).map(de=>Ht(u.kind,de));return(0,t.jsxs)(Pe,{"data-testid":`mt-instrument-${u.name}`,children:[(0,t.jsx)(H,{className:"font-mono text-xs",title:u.functionPath,children:u.name}),(0,t.jsx)(H,{children:(0,t.jsx)(We,{variant:Xt[u.kind],children:Q(u.kind)})}),(0,t.jsx)(H,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${u.name}`,children:ot(Wt(u))}),(0,t.jsx)(H,{className:"text-right tabular-nums text-muted-foreground",children:u.count.toLocaleString()}),(0,t.jsx)(H,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:u.min===u.max?"\u2014":`${ot(u.min)}\u2013${ot(u.max)}`}),(0,t.jsx)(H,{children:F.length>=2?(0,t.jsx)(it,{ariaLabel:r("{name} trend",{name:u.name}),className:"h-6 w-24 text-foreground",series:F,testId:`mt-instrument-trend-${u.name}`}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"\u2014"})}),(0,t.jsx)(H,{className:"font-mono text-xs",children:(0,t.jsx)(Yt,{name:u.name,onOpenTrace:l,traceId:u.exemplarTraceId})}),(0,t.jsx)(H,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:P,children:P===""?"\u2014":P})]},U)})}e[6]=n,e[7]=S,e[8]=v,e[9]=m,e[10]=l,e[11]=r,e[12]=g,e[13]=y,e[14]=q,e[15]=M,e[16]=d,e[17]=p,e[18]=f,e[19]=x,e[20]=k,e[21]=_,e[22]=N,e[23]=I,e[24]=D}else g=e[12],y=e[13],q=e[14],M=e[15],d=e[16],p=e[17],f=e[18],x=e[19],k=e[20],_=e[21],N=e[22],I=e[23],D=e[24];if(x!==Symbol.for("react.early_return_sentinel"))return x;let C;e[84]!==g||e[85]!==k?(C=(0,t.jsx)(g,{children:k}),e[84]=g,e[85]=k,e[86]=C):C=e[86];let $;e[87]!==y||e[88]!==C||e[89]!==_||e[90]!==N?($=(0,t.jsxs)(y,{"data-testid":_,children:[N,C]}),e[87]=y,e[88]=C,e[89]=_,e[90]=N,e[91]=$):$=e[91];let b;e[92]!==q||e[93]!==$||e[94]!==I?(b=(0,t.jsx)(q,{className:I,children:$}),e[92]=q,e[93]=$,e[94]=I,e[95]=b):b=e[95];let R;e[96]!==M||e[97]!==b||e[98]!==D?(R=(0,t.jsx)(M,{className:D,children:b}),e[96]=M,e[97]=b,e[98]=D,e[99]=R):R=e[99];let O;return e[100]!==d||e[101]!==p||e[102]!==f||e[103]!==R?(O=(0,t.jsxs)("section",{className:d,"data-testid":p,children:[f,R]}),e[100]=d,e[101]=p,e[102]=f,e[103]=R,e[104]=O):O=e[104],O},"Zt"),er=o(s=>{let e=(0,xe.c)(74),{aggregate:l,shardResults:a}=s,r=ge(),c;e[0]!==r?(c=r("Shards"),e[0]=r,e[1]=c):c=e[1];let i;e[2]!==l.failed||e[3]!==l.reachable||e[4]!==r?(i=l.failed>0?r("{reachable} reachable, {failed} unreachable",{failed:l.failed,reachable:l.reachable}):r("{reachable} reachable",{reachable:l.reachable}),e[2]=l.failed,e[3]=l.reachable,e[4]=r,e[5]=i):i=e[5];let n;e[6]!==c||e[7]!==i?(n=(0,t.jsx)(me,{label:c,testId:"mt-agg-shards",value:i}),e[6]=c,e[7]=i,e[8]=n):n=e[8];let S;e[9]!==r?(S=r("Total requests"),e[9]=r,e[10]=S):S=e[10];let v;e[11]!==l.totalRequests||e[12]!==S?(v=(0,t.jsx)(me,{label:S,testId:"mt-agg-requests",value:l.totalRequests}),e[11]=l.totalRequests,e[12]=S,e[13]=v):v=e[13];let w;e[14]!==r?(w=r("Total errors"),e[14]=r,e[15]=w):w=e[15];let h;e[16]!==l.totalErrors||e[17]!==w?(h=(0,t.jsx)(me,{label:w,testId:"mt-agg-errors",value:l.totalErrors}),e[16]=l.totalErrors,e[17]=w,e[18]=h):h=e[18];let m;e[19]!==r?(m=r("Total database size"),e[19]=r,e[20]=m):m=e[20];let g;e[21]!==l.totalDatabaseSize?(g=Ge(l.totalDatabaseSize),e[21]=l.totalDatabaseSize,e[22]=g):g=e[22];let y;e[23]!==m||e[24]!==g?(y=(0,t.jsx)(me,{label:m,testId:"mt-agg-db-size",value:g}),e[23]=m,e[24]=g,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]!==l.hitRate||e[29]!==r?(M=l.hitRate===null?r("no cache configured"):`${(l.hitRate*100).toFixed(1)}%`,e[28]=l.hitRate,e[29]=r,e[30]=M):M=e[30];let d;e[31]!==q||e[32]!==M?(d=(0,t.jsx)(me,{label:q,testId:"mt-agg-cache",value:M}),e[31]=q,e[32]=M,e[33]=d):d=e[33];let p;e[34]!==y||e[35]!==d||e[36]!==n||e[37]!==v||e[38]!==h?(p=(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[n,v,h,y,d]}),e[34]=y,e[35]=d,e[36]=n,e[37]=v,e[38]=h,e[39]=p):p=e[39];let f;e[40]!==r?(f=r("shard"),e[40]=r,e[41]=f):f=e[41];let x;e[42]!==f?(x=(0,t.jsx)(ce,{children:f}),e[42]=f,e[43]=x):x=e[43];let k;e[44]!==r?(k=r("requests"),e[44]=r,e[45]=k):k=e[45];let _;e[46]!==k?(_=(0,t.jsx)(ce,{children:k}),e[46]=k,e[47]=_):_=e[47];let N;e[48]!==r?(N=r("errors"),e[48]=r,e[49]=N):N=e[49];let I;e[50]!==N?(I=(0,t.jsx)(ce,{children:N}),e[50]=N,e[51]=I):I=e[51];let D;e[52]!==r?(D=r("db size"),e[52]=r,e[53]=D):D=e[53];let C;e[54]!==D?(C=(0,t.jsx)(ce,{children:D}),e[54]=D,e[55]=C):C=e[55];let $;e[56]!==x||e[57]!==_||e[58]!==I||e[59]!==C?($=(0,t.jsx)(lt,{children:(0,t.jsxs)(Pe,{children:[x,_,I,C]})}),e[56]=x,e[57]=_,e[58]=I,e[59]=C,e[60]=$):$=e[60];let b;if(e[61]!==a||e[62]!==r){let T;e[64]!==r?(T=o(K=>(0,t.jsxs)(Pe,{"data-testid":`mt-agg-row-${K.shard}`,children:[(0,t.jsx)(H,{children:K.shard}),K.metrics===null?(0,t.jsx)(H,{className:"text-destructive",colSpan:3,children:K.error??r("unreachable")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(H,{className:"tabular-nums",children:K.metrics.requests}),(0,t.jsx)(H,{className:"tabular-nums",children:K.metrics.errors}),(0,t.jsx)(H,{className:"tabular-nums",children:Ge(K.metrics.databaseSize)})]})]},K.shard),"A"),e[64]=r,e[65]=T):T=e[65],b=a.map(T),e[61]=a,e[62]=r,e[63]=b}else b=e[63];let R;e[66]!==b?(R=(0,t.jsx)(nt,{children:b}),e[66]=b,e[67]=R):R=e[67];let O;e[68]!==$||e[69]!==R?(O=(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]})})}),e[68]=$,e[69]=R,e[70]=O):O=e[70];let L;return e[71]!==p||e[72]!==O?(L=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[p,O]}),e[71]=p,e[72]=O,e[73]=L):L=e[73],L},"er"),tr=o(s=>{let e=Math.floor(s/1e3),l=Math.floor(e/3600),a=Math.floor(e%3600/60),r=e%60;return l>0?`${l.toString()}h ${a.toString()}m`:a>0?`${a.toString()}m ${r.toString()}s`:`${r.toString()}s`},"tr"),rr=o((s,e)=>{let l=s+e;return l===0?"\u2014":`${(s/l*100).toFixed(1)}%`},"rr"),Et=o(s=>s<=0?"\u2014":s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"ot"),ar=o(s=>{let e=(0,xe.c)(75),{currentDelta:l,errorRate:a,history:r,latencyPercentiles:c,metrics:i}=s,n=ge(),S;e[0]!==r||e[1]!==n?(S=r.length>=2?(0,t.jsx)(it,{ariaLabel:n("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:r,testId:"mt-sparkline"}):void 0,e[0]=r,e[1]=n,e[2]=S):S=e[2];let v;e[3]!==l||e[4]!==r.length||e[5]!==n?(v=r.length>=2?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:`+${l.toLocaleString()}`})," ",n("last interval")]}):(0,t.jsx)("span",{"data-testid":"mt-sparkline-empty",children:n("collecting samples\u2026")}),e[3]=l,e[4]=r.length,e[5]=n,e[6]=v):v=e[6];let w;e[7]!==n?(w=n("Requests"),e[7]=n,e[8]=w):w=e[8];let h;e[9]!==i.requests||e[10]!==S||e[11]!==v||e[12]!==w?(h=(0,t.jsx)(me,{chart:S,footer:v,label:w,testId:"mt-requests",value:i.requests}),e[9]=i.requests,e[10]=S,e[11]=v,e[12]=w,e[13]=h):h=e[13];let m;e[14]!==a||e[15]!==n?(m=n("{rate} error rate",{rate:a}),e[14]=a,e[15]=n,e[16]=m):m=e[16];let g;e[17]!==n?(g=n("Errors"),e[17]=n,e[18]=g):g=e[18];let y;e[19]!==a||e[20]!==i.errors?(y=(0,t.jsxs)(t.Fragment,{children:[i.errors," (",a,")"]}),e[19]=a,e[20]=i.errors,e[21]=y):y=e[21];let q;e[22]!==m||e[23]!==g||e[24]!==y?(q=(0,t.jsx)(me,{footer:m,label:g,testId:"mt-errors",value:y}),e[22]=m,e[23]=g,e[24]=y,e[25]=q):q=e[25];let M;e[26]!==c.p90?(M=c.p90>0?`P90 ${Et(c.p90)}`:void 0,e[26]=c.p90,e[27]=M):M=e[27];let d;e[28]!==n?(d=n("P95 latency"),e[28]=n,e[29]=d):d=e[29];let p;e[30]!==c.p95?(p=c.p95>0?Et(c.p95):"\u2014",e[30]=c.p95,e[31]=p):p=e[31];let f;e[32]!==d||e[33]!==p||e[34]!==M?(f=(0,t.jsx)(me,{footer:M,label:d,testId:"mt-p95",value:p}),e[32]=d,e[33]=p,e[34]=M,e[35]=f):f=e[35];let x;e[36]!==i.cache||e[37]!==n?(x=i.cache===null?void 0:`${i.cache.entries.toLocaleString()} ${n("cache entries")}`,e[36]=i.cache,e[37]=n,e[38]=x):x=e[38];let k;e[39]!==n?(k=n("Database size"),e[39]=n,e[40]=k):k=e[40];let _;e[41]!==i.databaseSize?(_=Ge(i.databaseSize),e[41]=i.databaseSize,e[42]=_):_=e[42];let N;e[43]!==x||e[44]!==k||e[45]!==_?(N=(0,t.jsx)(me,{footer:x,label:k,testId:"mt-db-size",value:_}),e[43]=x,e[44]=k,e[45]=_,e[46]=N):N=e[46];let I;e[47]!==n?(I=n("Shard"),e[47]=n,e[48]=I):I=e[48];let D;e[49]!==i.shard||e[50]!==I?(D=(0,t.jsx)(me,{label:I,testId:"mt-shard",value:i.shard}),e[49]=i.shard,e[50]=I,e[51]=D):D=e[51];let C;e[52]!==n?(C=n("Uptime"),e[52]=n,e[53]=C):C=e[53];let $;e[54]!==i.uptimeMs?($=tr(i.uptimeMs),e[54]=i.uptimeMs,e[55]=$):$=e[55];let b;e[56]!==C||e[57]!==$?(b=(0,t.jsx)(me,{label:C,testId:"mt-uptime",value:$}),e[56]=C,e[57]=$,e[58]=b):b=e[58];let R;e[59]!==n?(R=n("Cache hit rate"),e[59]=n,e[60]=R):R=e[60];let O;e[61]!==i.cache||e[62]!==n?(O=i.cache===null?n("no cache configured"):n("{rate} ({count} entries)",{count:i.cache.entries,rate:rr(i.cache.hits,i.cache.misses)}),e[61]=i.cache,e[62]=n,e[63]=O):O=e[63];let L;e[64]!==R||e[65]!==O?(L=(0,t.jsx)(me,{label:R,testId:"mt-cache",value:O}),e[64]=R,e[65]=O,e[66]=L):L=e[66];let T;return e[67]!==f||e[68]!==N||e[69]!==D||e[70]!==b||e[71]!==L||e[72]!==h||e[73]!==q?(T=(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:[h,q,f,N,D,b,L]}),e[67]=f,e[68]=N,e[69]=D,e[70]=b,e[71]=L,e[72]=h,e[73]=q,e[74]=T):T=e[74],T},"ar"),Ve=o(s=>s>=100?"critical":s>=50?"warning":"good","Ge"),Qe=o(s=>s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"Oe"),Be=o(s=>s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString(),"Be"),sr=o(s=>{let e=(0,xe.c)(3),{level:l}=s;if(l==="critical"){let r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)(We,{variant:"destructive",children:"Slow"}),e[0]=r):r=e[0],r}if(l==="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},"lr"),lr=o((s,e)=>{let l=[...s];return l.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}}),l},"sr"),nr=o(s=>{let e=(0,xe.c)(161),{queryStats:l}=s,a=ge(),[r,c]=(0,j.useState)("totalTime"),i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=new Set,e[0]=i):i=e[0];let[n,S]=(0,j.useState)(i),v;e[1]===Symbol.for("react.memo_cache_sentinel")?(v=o(D=>{D!==null&&c(D)},"v"),e[1]=v):v=e[1];let w=v,h,m,g,y,q,M,d,p,f,x;if(e[2]!==n||e[3]!==l||e[4]!==r||e[5]!==a){g=Symbol.for("react.early_return_sentinel");e:{let D=lr(l,r),C;e[16]!==l?(C=l.filter(ir),e[16]=l,e[17]=C):C=e[17];let $=C.length,b;e[18]!==l?(b=l.filter(or),e[18]=l,e[19]=b):b=e[19];let R=b.length,O;e[20]!==l?(O=l.filter(dr),e[20]=l,e[21]=O):O=e[21];let L=O.length,T;e[22]===Symbol.for("react.memo_cache_sentinel")?(T=o(z=>{S(ue=>{let J=new Set(ue);return J.has(z)?J.delete(z):J.add(z),J})},"A"),e[22]=T):T=e[22];let K=T;if(l.length===0){let z;e[23]!==a?(z=a("No query insights yet"),e[23]=a,e[24]=z):z=e[24];let ue;e[25]!==z?(ue=(0,t.jsx)("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:z}),e[25]=z,e[26]=ue):ue=e[26];let J;e[27]!==a?(J=a("Query insights appear once statements are executed against this shard."),e[27]=a,e[28]=J):J=e[28];let he;e[29]!==J?(he=(0,t.jsx)("p",{className:"mt-1 text-sm",children:J}),e[29]=J,e[30]=he):he=e[30];let He;e[31]!==ue||e[32]!==he?(He=(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]=He):He=e[33],g=He;break e}d="space-y-4",p="qi-root";let E;e[34]!==a?(E=a("Critical queries"),e[34]=a,e[35]=E):E=e[35];let Q;e[36]!==E?(Q=(0,t.jsx)(Ae,{className:"pb-2",children:(0,t.jsx)(Te,{className:"text-sm font-medium",children:E})}),e[36]=E,e[37]=Q):Q=e[37];let A;e[38]!==$?(A=(0,t.jsx)("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:$}),e[38]=$,e[39]=A):A=e[39];let W;e[40]!==a?(W=a(">100ms avg execution"),e[40]=a,e[41]=W):W=e[41];let G;e[42]!==W?(G=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:W}),e[42]=W,e[43]=G):G=e[43];let B;e[44]!==A||e[45]!==G?(B=(0,t.jsxs)(pe,{children:[A,G]}),e[44]=A,e[45]=G,e[46]=B):B=e[46];let V;e[47]!==Q||e[48]!==B?(V=(0,t.jsxs)(fe,{children:[Q,B]}),e[47]=Q,e[48]=B,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)(Ae,{className:"pb-2",children:(0,t.jsx)(Te,{className:"text-sm font-medium",children:X})}),e[52]=X,e[53]=Y):Y=e[53];let Z;e[54]!==R?(Z=(0,t.jsx)("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:R}),e[54]=R,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)(Ae,{className:"pb-2",children:(0,t.jsx)(Te,{className:"text-sm font-medium",children:se})}),e[68]=se,e[69]=le):le=e[69];let ne;e[70]!==L?(ne=(0,t.jsx)("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:L}),e[70]=L,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 u;e[76]!==ne||e[77]!==oe?(u=(0,t.jsxs)(pe,{children:[ne,oe]}),e[76]=ne,e[77]=oe,e[78]=u):u=e[78];let P;e[79]!==le||e[80]!==u?(P=(0,t.jsxs)(fe,{children:[le,u]}),e[79]=le,e[80]=u,e[81]=P):P=e[81],e[82]!==V||e[83]!==ae||e[84]!==P?(f=(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[V,ae,P]}),e[82]=V,e[83]=ae,e[84]=P,e[85]=f):f=e[85];let U;e[86]!==a?(U=a("Query leaderboard"),e[86]=a,e[87]=U):U=e[87];let F;e[88]!==U?(F=(0,t.jsx)("h3",{className:"text-lg font-semibold",children:U}),e[88]=U,e[89]=F):F=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]!==F||e[96]!==be?(ve=(0,t.jsxs)("div",{children:[F,be]}),e[95]=F,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 Se;e[102]!==a?(Se=a("Sort queries by"),e[102]=a,e[103]=Se):Se=e[103];let Ue;e[104]===Symbol.for("react.memo_cache_sentinel")?(Ue=(0,t.jsx)(It,{}),e[104]=Ue):Ue=e[104];let we;e[105]!==Se?(we=(0,t.jsx)(Ct,{"aria-label":Se,className:"w-[140px]","data-testid":"qi-sort",children:Ue}),e[105]=Se,e[106]=we):we=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)(je,{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)(je,{value:"avgTime",children:$e}),e[113]=$e,e[114]=Me):Me=e[114];let _e;e[115]!==a?(_e=a("Execution count"),e[115]=a,e[116]=_e):_e=e[116];let De;e[117]!==_e?(De=(0,t.jsx)(je,{value:"execCount",children:_e}),e[117]=_e,e[118]=De):De=e[118];let Ie;e[119]!==a?(Ie=a("Rows read"),e[119]=a,e[120]=Ie):Ie=e[120];let Ce;e[121]!==Ie?(Ce=(0,t.jsx)(je,{value:"rowsRead",children:Ie}),e[121]=Ie,e[122]=Ce):Ce=e[122];let Re;e[123]!==ke||e[124]!==Me||e[125]!==De||e[126]!==Ce?(Re=(0,t.jsxs)(Rt,{children:[ke,Me,De,Ce]}),e[123]=ke,e[124]=Me,e[125]=De,e[126]=Ce,e[127]=Re):Re=e[127];let ze;e[128]!==r||e[129]!==we||e[130]!==Re?(ze=(0,t.jsxs)(Dt,{onValueChange:w,value:r,children:[we,Re]}),e[128]=r,e[129]=we,e[130]=Re,e[131]=ze):ze=e[131];let Oe;e[132]!==Ne||e[133]!==ze?(Oe=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[Ne,ze]}),e[132]=Ne,e[133]=ze,e[134]=Oe):Oe=e[134],e[135]!==ve||e[136]!==Oe?(x=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[ve,Oe]}),e[135]=ve,e[136]=Oe,e[137]=x):x=e[137],m=fe;let Ke;e[138]!==a?(Ke=a("Statements"),e[138]=a,e[139]=Ke):Ke=e[139];let Fe;e[140]!==Ke?(Fe=(0,t.jsx)(Te,{children:Ke}),e[140]=Ke,e[141]=Fe):Fe=e[141],M=(0,t.jsxs)(Ae,{children:[Fe,(0,t.jsx)(ut,{children:a("{count} tracked statements",{count:D.length})})]}),h=pe,y="space-y-2";let Je;e[142]!==n||e[143]!==a?(Je=o(z=>{let ue=z.normalizedSql,J=n.has(ue),he=Ve(z.avgDurationMs);return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[(0,t.jsxs)("button",{"aria-expanded":J,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:o(()=>{K(ue)},"onClick"),type:"button",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)(sr,{level:he}),(0,t.jsx)("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:z.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:Qe(z.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:Qe(z.avgDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("avg")})]}),z.p95DurationMs!==void 0&&(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Qe(z.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:Be(z.execCount)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("calls")})]})]})]}),J&&(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:z.normalizedSql})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[z.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:Qe(z.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:Be(z.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:Qe(z.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:Be(z.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:Be(z.rowsWritten)})]})]})]})]},ue)},"Ee"),e[142]=n,e[143]=a,e[144]=Je):Je=e[144],q=D.map(Je)}e[2]=n,e[3]=l,e[4]=r,e[5]=a,e[6]=h,e[7]=m,e[8]=g,e[9]=y,e[10]=q,e[11]=M,e[12]=d,e[13]=p,e[14]=f,e[15]=x}else h=e[6],m=e[7],g=e[8],y=e[9],q=e[10],M=e[11],d=e[12],p=e[13],f=e[14],x=e[15];if(g!==Symbol.for("react.early_return_sentinel"))return g;let k;e[145]!==y||e[146]!==q?(k=(0,t.jsx)("div",{className:y,children:q}),e[145]=y,e[146]=q,e[147]=k):k=e[147];let _;e[148]!==h||e[149]!==k?(_=(0,t.jsx)(h,{children:k}),e[148]=h,e[149]=k,e[150]=_):_=e[150];let N;e[151]!==m||e[152]!==_||e[153]!==M?(N=(0,t.jsxs)(m,{children:[M,_]}),e[151]=m,e[152]=_,e[153]=M,e[154]=N):N=e[154];let I;return e[155]!==N||e[156]!==d||e[157]!==p||e[158]!==f||e[159]!==x?(I=(0,t.jsxs)("div",{className:d,"data-testid":p,children:[f,x,N]}),e[155]=N,e[156]=d,e[157]=p,e[158]=f,e[159]=x,e[160]=I):I=e[160],I},"nr");function ir(s){return Ve(s.avgDurationMs)==="critical"}o(ir,"ir");function or(s){return Ve(s.avgDurationMs)==="warning"}o(or,"or");function dr(s){return Ve(s.avgDurationMs)==="good"}o(dr,"cr");var cr=["1m","5m","15m","1h"],mr=o(s=>new Date(s).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),"mr"),ur=o(s=>s.map(e=>({avg:Math.round(e.avgDurationMs*100)/100,execs:e.execCount,label:mr(e.bucketMs)})),"ur"),hr=o(({shardKey:s=""})=>{let e=ge(),[l,a]=(0,j.useState)("15m"),r=Ee(Le.getQueryInsights,{range:l},{live:!0,shardKey:s}).data,c=ur(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:cr.map(i=>(0,t.jsx)("button",{"aria-pressed":i===l,className:mt("rounded px-2 py-1 text-xs outline-none transition-colors hover:bg-accent focus-visible:bg-accent",i===l&&"bg-accent font-medium text-foreground"),"data-testid":`qi-range-${i}`,onClick:o(()=>{a(i)},"onClick"),type:"button",children:i},i))}),r?.capped===!0&&(0,t.jsx)(We,{"data-testid":"qi-capped",variant:"secondary",children:e("showing a capped set")})]}),c.length===0?(0,t.jsx)(ht,{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:c,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)(yt,{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)(Nt,{data:c,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)(vt,{dataKey:"avg",dot:!1,stroke:"var(--color-destructive)",type:"monotone"})]})})]})]}),(0,t.jsx)(nr,{queryStats:r?.entries??[]})]})},"hr"),gr=gt(Le.getMetrics),fr=o((s,e)=>s?e:"overview","fr"),Er=o(({initialShardKey:s})=>{let e=ct(),l=ge(),{queryShardKey:a,setShardKey:r,shardKey:c}=$t(s),[i,n]=(0,j.useState)("overview"),[S,v]=(0,j.useState)([]),w=(0,j.useRef)(null),h=(0,j.useRef)(null),m=(0,j.useRef)(!0);(0,j.useEffect)(()=>(m.current=!0,()=>{m.current=!1}),[]);let g=Ot(a),{data:y,error:q,liveError:M}=Ee(Le.getMetrics,{},{live:!0,shardKey:a}),d=y??null;(0,j.useEffect)(()=>{if(y===void 0)return;qt(a);let K=y,E=w.current,Q=h.current!==null&&h.current!==K.shard;if(h.current=K.shard,w.current=K.requests,Q){v([]);return}E!==null&&K.requests>=E&&v(A=>[...A,K.requests-E].slice(-30))},[y,a]);let[p,f]=(0,j.useState)(null),[x,k]=(0,j.useState)(!1),_=o(async()=>{k(!0);let K=Lt(c,wt());try{let E=await Promise.all(K.map(async Q=>{try{let A=await e.query(gr,{},ft(Q));return{error:null,metrics:A,shard:Q===""?A.shard:Q}}catch(A){return{error:pt(A),metrics:null,shard:Q===""?"__root__":Q}}}));m.current&&f(E)}finally{m.current&&k(!1)}},"_"),N=p===null?null:Kt(p),I=d===null||d.requests===0?"\u2014":`${(d.errors/d.requests*100).toFixed(1)}%`,D=S.length>0?S.at(-1):0,C=d?At(d):{p90:0,p95:0},$=(0,j.useMemo)(()=>{if(!d||!("queryStats"in d))return;let K=d.queryStats;if(!(!K||!Array.isArray(K)))return Tt(K)},[d]),b=fr($!==void 0,i),R=o(()=>{bt(_())},"D"),O=o(()=>{f(null)},"L"),L=o(()=>{n("overview")},"O"),T=o(()=>{n("query-insights")},"A");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)(kt,{onChange:r,testId:"mt-shard-input",value:c}),(0,t.jsx)(Mt,{message:M,prefix:"mt"}),(0,t.jsx)(Ye,{"data-testid":"mt-aggregate",disabled:x,onClick:R,size:"sm",type:"button",variant:"secondary",children:l(x?"Aggregating\u2026":"All shards")}),p!==null&&(0,t.jsx)(Ye,{"data-testid":"mt-aggregate-clear",onClick:O,size:"sm",type:"button",variant:"ghost",children:l("Hide")}),(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"mt-cf-link",href:_t,rel:"noreferrer",target:"_blank",children:l("Open in Cloudflare")})]}),q!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:q}),$!==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 ${b==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:L,type:"button",children:l("Overview")}),(0,t.jsxs)("button",{className:`pb-2 text-sm font-medium transition-colors ${b==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:T,type:"button",children:[l("Query insights"),$.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:$.length})]})]}),b==="query-insights"&&$!==void 0&&(0,t.jsx)(hr,{shardKey:a}),b==="overview"&&d!==null&&(0,t.jsx)(ar,{currentDelta:D,errorRate:I,history:S,latencyPercentiles:C,metrics:d}),b==="overview"&&d===null&&null,b==="overview"&&(0,t.jsx)(Zt,{onOpenTrace:g,shardKey:a}),b==="overview"&&N!==null&&p!==null&&(0,t.jsx)(er,{aggregate:N,shardResults:p})]})},"Ur");export{Er as MetricsPanel};
@@ -0,0 +1,2 @@
1
+ import{a as fe}from"./chunk-LEDWUPXM.js";import"./chunk-2PJNAWB3.js";import{a as ie}from"./chunk-IC4L6G56.js";import{a as pe}from"./chunk-54MMVNPT.js";import"./chunk-BGBLQ563.js";import{R as de}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{a as x}from"./chunk-MWIKAR7F.js";import"./chunk-DJZYD5I5.js";import"./chunk-2OUPA2WJ.js";import{b as ne}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as he}from"./chunk-6IZBFC3G.js";import"./chunk-XXQUMVWH.js";import"./chunk-ZNNKWEH5.js";import"./chunk-QLQADHFE.js";import{a as P}from"./chunk-VDW32UET.js";import{c as ue}from"./chunk-UP7OTXKF.js";import{f as le}from"./chunk-LYVP5PT6.js";import"./chunk-XBDKZZ67.js";import{a as ce}from"./chunk-XQCVZAGU.js";import{d as oe,f as Z,g as ee,h as te,o as ae,q as me,r as re}from"./chunk-IUYFXK4X.js";import"./chunk-X7B6PLEW.js";import{a as i,e as Y,f as ge,g as ve,h as Ne,j as se}from"./chunk-3XIESWL4.js";var t=Y(Ne(),1);var xe=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,"xe");var we=/https?:\/\/[^\s"'<>)]+/i,be=i(a=>a===void 0?void 0:we.exec(a)?.[0],"ae"),y=i(a=>a===void 0?"":Array.isArray(a)?a.join(", "):a,"N"),Ce=i(a=>{if(a!==void 0)return be(a.html)??be(a.text)},"Ne"),ke=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))},"ye"),Se=i((a,e)=>{if(a.length!==0)return a.find(s=>s.id===e)??a[0]},"we"),Te=Z(P.clearCapturedMail),Le=Z(P.sendTestMail),je=i(a=>{let e=(0,xe.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:D,error:w,errorSource:C,isLoading:g,refetch:n}=ue(P.getCapturedMail,p),[k,f]=(0,N.useState)(null),[E,S]=(0,N.useState)(null),[v,l]=(0,N.useState)("html"),[c,U]=(0,N.useState)(""),b=D?.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(Te,{},ee("")),S(null),n()}catch(m){f(te(m))}},"S"),e[2]=o,e[3]=n,e[4]=T):T=e[4];let W=T,L;e[5]!==o||e[6]!==n?(L=i(async()=>{f(null);try{await o.query(Le,{},ee("")),n()}catch(m){f(te(m))}},"$"),e[5]=o,e[6]=n,e[7]=L):L=e[7];let B=L,j;e[8]!==n?(j=i(()=>{n()},"T"),e[8]=n,e[9]=j):j=e[9],pe(j,!0);let M;e[10]!==W?(M=i(()=>{ae(W())},"L"),e[10]=W,e[11]=M):M=e[11];let R=M,_;e[12]!==B?(_=i(()=>{ae(B())},"j"),e[12]=B,e[13]=_):_=e[13];let G=_,$;e[14]===Symbol.for("react.memo_cache_sentinel")?($=i(m=>{U(m.currentTarget.value)},"M"),e[14]=$):$=e[14];let J=$,z;e[15]===Symbol.for("react.memo_cache_sentinel")?(z=i(m=>{let{id:h}=m.currentTarget.dataset;h!==void 0&&S(h)},"_"),e[15]=z):z=e[15];let K=z,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)},"z"),e[16]=A):A=e[16];let Q=A,F=ke(b,c),O=Se(F,E),d=Ce(O),q;e[17]!==d?(q=i(()=>{d!==void 0&&me(d)},"O"),e[17]=d,e[18]=q):q=e[18];let V=q,H;e[19]!==d?(H=i(()=>{d!==void 0&&"window"in globalThis&&globalThis.window.open(d,"_blank","noopener")},"I"),e[19]=d,e[20]=H):H=e[20];let X=H,I;return e[21]!==b||e[22]!==r||e[23]!==u||e[24]!==c||e[25]!==g||e[26]!==d||e[27]!==R||e[28]!==V||e[29]!==J||e[30]!==X||e[31]!==K||e[32]!==Q||e[33]!==G||e[34]!==O||e[35]!==v||e[36]!==F?(I={entries:b,error:r,errorSource:u,filter:c,isLoading:g,link:d,onClear:R,onCopyLink:V,onFilterChange:J,onOpenLink:X,onSelectMessage:K,onSelectTab:Q,onSendTest:G,selected:O,tab:v,visible:F},e[21]=b,e[22]=r,e[23]=u,e[24]=c,e[25]=g,e[26]=d,e[27]=R,e[28]=V,e[29]=J,e[30]=X,e[31]=K,e[32]=Q,e[33]=G,e[34]=O,e[35]=v,e[36]=F,e[37]=I):I=e[37],I},"Se"),Me=`<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src data:; style-src 'unsafe-inline'; font-src data:">`,_e=i(a=>`${Me}${a}`,"Te"),Je=i(({limit:a=100})=>{let e=oe(),{entries:s,error:o,errorSource:p,filter:D,isLoading:w,link:C,onClear:g,onCopyLink:n,onFilterChange:k,onOpenLink:f,onSelectMessage:E,onSelectTab:S,onSendTest:v,selected:l,tab:c,visible:U}=je({limit:a}),b=i(r=>e(r==="html"?"HTML":r==="text"?"Plain text":"Headers"),"b");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)(x,{"data-testid":"mail-send-test",onClick:v,size:"sm",type:"button",variant:"outline",children:e("Send test")}),(0,t.jsx)(x,{"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:D}),(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:U.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:E,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)(x,{"data-testid":"mail-copy-link",disabled:C===void 0,onClick:n,size:"sm",type:"button",variant:"outline",children:e("Copy link")}),(0,t.jsx)(x,{"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)(x,{"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:b(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
+ `)}))]})]})]})]})},"We");export{Je as MailPanel};
@@ -1 +1 @@
1
- import{b as y}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as R}from"./chunk-322ZP3GW.js";import"./chunk-XXQUMVWH.js";import"./chunk-P4BOVBMR.js";import"./chunk-QLQADHFE.js";import{a as v}from"./chunk-VDW32UET.js";import{c as $}from"./chunk-BQNVN2OD.js";import"./chunk-M3NGYXDR.js";import"./chunk-XBDKZZ67.js";import{a as S}from"./chunk-XQCVZAGU.js";import{a as A,b as I,c as j,d as x,e as n,f as c}from"./chunk-WJQLNYGX.js";import{a as k,e as w}from"./chunk-WQH3LT2P.js";import{d as b}from"./chunk-IUYFXK4X.js";import"./chunk-YC52XCPK.js";import{a as f,e as N,g as _,h as D}from"./chunk-3XIESWL4.js";var T=N(_(),1);var r=N(D(),1);var E=f((e,t)=>({delete:e("Delete"),list:e("List"),read:e("Read"),write:e("Write")})[t],"E"),C={delete:2,list:3,read:0,write:1},O=f(e=>[...e].toSorted((t,a)=>t.bucket.localeCompare(a.bucket)||C[t.on]-C[a.on]||(t.prefix??"").localeCompare(a.prefix??"")),"T"),q=f(()=>{let e=(0,T.c)(14),t=b(),a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a={},e[0]=a):a=e[0];let{data:l,error:i,errorSource:d}=$(v.storageRules,a),h=l!==void 0,m;if(e[1]!==l||e[2]!==i||e[3]!==d||e[4]!==h||e[5]!==t){let g=O(Array.isArray(l?.rules)?l.rules:[]),u;e[7]!==i||e[8]!==d?(u=i!==null&&(0,r.jsx)(R,{error:d,testId:"storage-rules-error"}),e[7]=i,e[8]=d,e[9]=u):u=e[9];let o;e[10]!==t?(o=t("Storage rules are declared in code with defineStorageRule and gate ctx.storage access per bucket. This view is read-only."),e[10]=t,e[11]=o):o=e[11];let p;e[12]!==o?(p=(0,r.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"storage-rules-note",children:o}),e[12]=o,e[13]=p):p=e[13],m=(0,r.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-storage-rules-panel",children:[u,p,h&&g.length===0?(0,r.jsx)(S,{description:t("No defineStorageRule is wired through .use(storageRules(...)) in this deployment. Add one to gate object access by key prefix."),testId:"storage-rules-empty",title:t("No storage rules defined")}):(0,r.jsx)(k,{className:"overflow-hidden py-0",children:(0,r.jsx)(w,{className:"px-0",children:(0,r.jsxs)(A,{"data-testid":"storage-rules-table",children:[(0,r.jsx)(I,{children:(0,r.jsxs)(x,{children:[(0,r.jsx)(n,{children:t("Bucket")}),(0,r.jsx)(n,{children:t("Operation")}),(0,r.jsx)(n,{children:t("Key prefix")}),(0,r.jsx)(n,{children:t("Guarded by")})]})}),(0,r.jsx)(j,{children:g.map(s=>(0,r.jsxs)(x,{"data-testid":`storage-rule-${s.bucket}-${s.on}-${s.prefix??""}`,children:[(0,r.jsx)(c,{className:"font-mono text-xs",children:s.bucket}),(0,r.jsx)(c,{children:(0,r.jsx)(y,{variant:"secondary",children:E(t,s.on)})}),(0,r.jsx)(c,{className:"font-mono text-xs",children:s.prefix??(0,r.jsx)("span",{className:"text-muted-foreground",children:t("(whole bucket)")})}),(0,r.jsx)(c,{className:"font-mono text-xs text-muted-foreground",children:s.procedure})]},`${s.bucket}:${s.on}:${s.prefix??""}:${s.procedure}`))})]})})})]}),e[1]=l,e[2]=i,e[3]=d,e[4]=h,e[5]=t,e[6]=m}else m=e[6];return m},"W");export{q as default};
1
+ import{b as y}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as R}from"./chunk-6IZBFC3G.js";import"./chunk-XXQUMVWH.js";import"./chunk-ZNNKWEH5.js";import"./chunk-QLQADHFE.js";import{a as v}from"./chunk-VDW32UET.js";import{c as $}from"./chunk-UP7OTXKF.js";import"./chunk-LYVP5PT6.js";import"./chunk-XBDKZZ67.js";import{a as S}from"./chunk-XQCVZAGU.js";import{a as A,b as I,c as j,d as x,e as n,f as c}from"./chunk-WJQLNYGX.js";import{a as k,e as w}from"./chunk-WQH3LT2P.js";import{d as b}from"./chunk-IUYFXK4X.js";import"./chunk-X7B6PLEW.js";import{a as f,e as N,g as _,h as D}from"./chunk-3XIESWL4.js";var T=N(_(),1);var r=N(D(),1);var E=f((e,t)=>({delete:e("Delete"),list:e("List"),read:e("Read"),write:e("Write")})[t],"E"),C={delete:2,list:3,read:0,write:1},O=f(e=>[...e].toSorted((t,a)=>t.bucket.localeCompare(a.bucket)||C[t.on]-C[a.on]||(t.prefix??"").localeCompare(a.prefix??"")),"T"),q=f(()=>{let e=(0,T.c)(14),t=b(),a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a={},e[0]=a):a=e[0];let{data:l,error:i,errorSource:d}=$(v.storageRules,a),h=l!==void 0,m;if(e[1]!==l||e[2]!==i||e[3]!==d||e[4]!==h||e[5]!==t){let g=O(Array.isArray(l?.rules)?l.rules:[]),u;e[7]!==i||e[8]!==d?(u=i!==null&&(0,r.jsx)(R,{error:d,testId:"storage-rules-error"}),e[7]=i,e[8]=d,e[9]=u):u=e[9];let o;e[10]!==t?(o=t("Storage rules are declared in code with defineStorageRule and gate ctx.storage access per bucket. This view is read-only."),e[10]=t,e[11]=o):o=e[11];let p;e[12]!==o?(p=(0,r.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"storage-rules-note",children:o}),e[12]=o,e[13]=p):p=e[13],m=(0,r.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-storage-rules-panel",children:[u,p,h&&g.length===0?(0,r.jsx)(S,{description:t("No defineStorageRule is wired through .use(storageRules(...)) in this deployment. Add one to gate object access by key prefix."),testId:"storage-rules-empty",title:t("No storage rules defined")}):(0,r.jsx)(k,{className:"overflow-hidden py-0",children:(0,r.jsx)(w,{className:"px-0",children:(0,r.jsxs)(A,{"data-testid":"storage-rules-table",children:[(0,r.jsx)(I,{children:(0,r.jsxs)(x,{children:[(0,r.jsx)(n,{children:t("Bucket")}),(0,r.jsx)(n,{children:t("Operation")}),(0,r.jsx)(n,{children:t("Key prefix")}),(0,r.jsx)(n,{children:t("Guarded by")})]})}),(0,r.jsx)(j,{children:g.map(s=>(0,r.jsxs)(x,{"data-testid":`storage-rule-${s.bucket}-${s.on}-${s.prefix??""}`,children:[(0,r.jsx)(c,{className:"font-mono text-xs",children:s.bucket}),(0,r.jsx)(c,{children:(0,r.jsx)(y,{variant:"secondary",children:E(t,s.on)})}),(0,r.jsx)(c,{className:"font-mono text-xs",children:s.prefix??(0,r.jsx)("span",{className:"text-muted-foreground",children:t("(whole bucket)")})}),(0,r.jsx)(c,{className:"font-mono text-xs text-muted-foreground",children:s.procedure})]},`${s.bucket}:${s.on}:${s.prefix??""}:${s.procedure}`))})]})})})]}),e[1]=l,e[2]=i,e[3]=d,e[4]=h,e[5]=t,e[6]=m}else m=e[6];return m},"W");export{q as default};
@@ -1 +1 @@
1
- import{b as me,e as _}from"./chunk-Y7XGNPT6.js";import{a as ue}from"./chunk-IGCNMZSB.js";import"./chunk-HGSIVV32.js";import"./chunk-4UOFSGUS.js";import"./chunk-CZZWYUTR.js";import{a as de}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{b as T}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import"./chunk-QLQADHFE.js";import{a as M}from"./chunk-VDW32UET.js";import{c as ce}from"./chunk-BQNVN2OD.js";import{f as ne,g as oe}from"./chunk-M3NGYXDR.js";import"./chunk-XBDKZZ67.js";import{a as A}from"./chunk-WQH3LT2P.js";import{d as D,f as j,g as W,h as X,o as K,r as ie}from"./chunk-IUYFXK4X.js";import"./chunk-YC52XCPK.js";import{a as p,e as I,f as Ee,g as ae,h as le,j as E}from"./chunk-3XIESWL4.js";var Z=I(ae(),1);var f=I(Ee(),1);var fe=I(ae(),1);var $=I(le(),1);var Me={connected:"bg-success",connecting:"bg-warning",idle:"bg-muted-foreground",offline:"bg-destructive"},he=p(()=>{let t=(0,fe.c)(16),e=D(),a=oe(),s;e:switch(a){case"connected":{let o;t[0]!==e?(o=e("Connected"),t[0]=e,t[1]=o):o=t[1],s=o;break e}case"connecting":{let o;t[2]!==e?(o=e("Connecting\u2026"),t[2]=e,t[3]=o):o=t[3],s=o;break e}case"idle":{let o;t[4]!==e?(o=e("Idle"),t[4]=e,t[5]=o):o=t[5],s=o;break e}case"offline":{let o;t[6]!==e?(o=e("Offline"),t[6]=e,t[7]=o):o=t[7],s=o;break e}default:s=a}let l=Me[a],c;t[8]!==l?(c=E("size-2 rounded-full",l),t[8]=l,t[9]=c):c=t[9];let i;t[10]!==c?(i=(0,$.jsx)("span",{"aria-hidden":"true",className:c}),t[10]=c,t[11]=i):i=t[11];let n;return t[12]!==a||t[13]!==i||t[14]!==s?(n=(0,$.jsxs)("span",{"aria-live":"polite",className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground","data-status":a,"data-testid":"dash-connection",role:"status",children:[i,s]}),t[12]=a,t[13]=i,t[14]=s,t[15]=n):n=t[15],n},"j");var r=I(le(),1);var Ae={crit:"destructive",ok:"secondary",warn:"default"},U=p((t,e)=>e===0?"\u2014":`${(t/e*100).toFixed(1)}%`,"_"),Y=p((t,e,a)=>Number.isNaN(t)?"ok":t>=a?"crit":t>=e?"warn":"ok","V"),xe=.01,ve=.05,je=p(t=>{let e=(0,Z.c)(36),{errorCount:a,logsError:s,topErrors:l,worstFunctions:c}=t,i=D(),n;e[0]!==i?(n=i("Functions by error rate"),e[0]=i,e[1]=n):n=e[1];let o;e[2]!==n?(o=(0,r.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:n})}),e[2]=n,e[3]=o):o=e[3];let h;e[4]!==i||e[5]!==c?(h=c.length===0?(0,r.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"hl-functions-empty",children:i("No function activity yet.")}):(0,r.jsx)("ul",{className:"divide-y divide-border",children:c.map(y=>(0,r.jsxs)("li",{className:"flex flex-wrap items-center justify-between gap-2 px-4 py-2 text-xs","data-testid":"hl-fn-row",children:[(0,r.jsx)("span",{className:"truncate font-mono text-foreground",children:y.path}),(0,r.jsxs)("span",{className:"flex shrink-0 items-center gap-2",children:[(0,r.jsx)("span",{className:"tabular-nums text-muted-foreground",children:i("{count} calls",{count:y.calls.toString()})}),(0,r.jsx)(T,{variant:Ae[Y(y.errors/y.calls,xe,ve)],children:U(y.errors,y.calls)})]})]},y.path))}),e[4]=i,e[5]=c,e[6]=h):h=e[6];let g;e[7]!==o||e[8]!==h?(g=(0,r.jsxs)(A,{className:"gap-0 py-0","data-testid":"hl-functions",children:[o,h]}),e[7]=o,e[8]=h,e[9]=g):g=e[9];let b;e[10]!==i?(b=i("Recent errors"),e[10]=i,e[11]=b):b=e[11];let d;e[12]!==b?(d=(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:b}),e[12]=b,e[13]=d):d=e[13];let u=a>0?"destructive":"outline",x;e[14]!==a||e[15]!==u?(x=(0,r.jsx)(T,{"data-testid":"hl-error-count",variant:u,children:a}),e[14]=a,e[15]=u,e[16]=x):x=e[16];let v;e[17]!==d||e[18]!==x?(v=(0,r.jsxs)("header",{className:"flex items-center justify-between gap-2 border-b border-border px-4 py-3",children:[d,x]}),e[17]=d,e[18]=x,e[19]=v):v=e[19];let k;e[20]!==s?(k=s!==null&&(0,r.jsx)("p",{className:"px-4 py-8 text-center text-sm text-destructive","data-testid":"hl-logs-error",role:"alert",children:s}),e[20]=s,e[21]=k):k=e[21];let S;e[22]!==s||e[23]!==i||e[24]!==l.length?(S=s===null&&l.length===0&&(0,r.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"hl-errors-empty",children:i("No recent errors.")}),e[22]=s,e[23]=i,e[24]=l.length,e[25]=S):S=e[25];let q;e[26]!==l?(q=l.length>0&&(0,r.jsx)("ul",{className:"divide-y divide-border",children:l.map(Ce)}),e[26]=l,e[27]=q):q=e[27];let N;e[28]!==k||e[29]!==S||e[30]!==q||e[31]!==v?(N=(0,r.jsxs)(A,{className:"gap-0 py-0",children:[v,k,S,q]}),e[28]=k,e[29]=S,e[30]=q,e[31]=v,e[32]=N):N=e[32];let w;return e[33]!==N||e[34]!==g?(w=(0,r.jsxs)("div",{className:"grid gap-3 lg:grid-cols-2",children:[g,N]}),e[33]=N,e[34]=g,e[35]=w):w=e[35],w},"Se");function Ce(t,e){return(0,r.jsxs)("li",{className:"flex flex-col gap-0.5 px-4 py-2 text-xs","data-testid":"hl-error-row",children:[(0,r.jsxs)("span",{className:"flex items-center gap-2",children:[(0,r.jsx)("time",{className:"shrink-0 text-muted-foreground",children:ie(t.timestamp)}),t.functionPath!==void 0&&(0,r.jsx)("span",{className:"truncate font-mono text-foreground",children:t.functionPath})]}),(0,r.jsx)("span",{className:"text-destructive",children:t.message})]},`${t.timestamp.toString()}-${e.toString()}`)}p(Ce,"qe");var pe={completed:0,failed:2,in_progress:1},Ie=p(t=>{let e=0,a=0,s=0,l=0,c=!1,i=[];for(let{metrics:n}of t){if(n===null){l+=1;continue}s+=1,e+=n.requests,a+=n.errors,i.push(...n.history??[]),c||=n.historyTruncated===!0}return{errors:a,failed:l,history:i,historyTruncated:c,reachable:s,requests:e}},"Ee"),De=p(t=>{let e=new Map;for(let a of t)for(let s of a){let l=e.get(s.path);if(l===void 0){e.set(s.path,{...s});continue}l.calls+=s.calls,l.errors+=s.errors,l.totalDurationMs+=s.totalDurationMs,l.scans=(l.scans??0)+(s.scans??0),l.maxDurationMs=Math.max(l.maxDurationMs,s.maxDurationMs),l.lastCalledAt=Math.max(l.lastCalledAt,s.lastCalledAt),(s.lastErrorAt??0)>(l.lastErrorAt??0)&&(l.lastErrorAt=s.lastErrorAt,l.lastErrorMessage=s.lastErrorMessage)}return[...e.values()]},"Me"),Te=p(t=>{let e=new Map;for(let a of t)for(let s of a){let l=e.get(s.id);if(l===void 0){e.set(s.id,s);continue}let c=pe[s.status]-pe[l.status];(c>0||c===0&&(s.updatedAt??0)>(l.updatedAt??0))&&e.set(s.id,s)}return[...e.values()]},"$e"),Pe=j(M.getAuthMetrics),Fe=j(M.getFunctionStats),Le=j(M.getLogs),Re=j(M.getMetrics),ze=j(M.migrationStatus),Oe=5,ge=2e3,Ke=5,_e=.1,$e=.3,He=1,Ue=50,Ge=p((t,e,a)=>t>=a?"crit":t>=e?"warn":"ok","_e"),Qe=p(t=>{let e=new Map;for(let s of t??[]){let l=e.get(s.bucketMs)??{calls:0,errors:0};l.calls+=s.calls,l.errors+=s.errors,e.set(s.bucketMs,l)}let a=[...e.entries()].toSorted((s,l)=>s[0]-l[0]);return{errors:a.map(([,s])=>s.errors),requests:a.map(([,s])=>s.calls)}},"ze"),Je=p(t=>{let e=0,a=0;for(let l of t)l.status==="failed"?e+=1:l.status==="in_progress"&&(a+=1);let s="ok";return e>0?s="crit":a>0&&(s="warn"),{failed:e,level:s,running:a}},"Ke"),Ve=p((t,e)=>t.failed>0?e("{count} failed",{count:t.failed.toString()}):t.running>0?e("{count} running",{count:t.running.toString()}):e("OK"),"He"),be={crit:"bg-destructive",ok:"bg-success",warn:"bg-warning"},Ne={crit:"text-destructive",ok:"text-foreground",warn:"text-warning"},We={crit:"bg-destructive/10 text-destructive",ok:"bg-success/10 text-success",warn:"bg-warning/10 text-warning"},Xe=p(t=>t.includes("crit")?"crit":t.includes("warn")?"warn":"ok","Be"),H=p(t=>{let e=(0,Z.c)(19),{chart:a,label:s,level:l,testId:c,value:i}=t,n=be[l],o;e[0]!==n?(o=E("size-1.5 shrink-0 rounded-full",n),e[0]=n,e[1]=o):o=e[1];let h;e[2]!==o?(h=(0,r.jsx)("span",{"aria-hidden":"true",className:o}),e[2]=o,e[3]=h):h=e[3];let g;e[4]!==s||e[5]!==h?(g=(0,r.jsxs)("span",{className:"flex items-center gap-1.5 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:[h,s]}),e[4]=s,e[5]=h,e[6]=g):g=e[6];let b=Ne[l],d;e[7]!==b?(d=E("truncate text-2xl font-semibold tabular-nums",b),e[7]=b,e[8]=d):d=e[8];let u;e[9]!==d||e[10]!==c||e[11]!==i?(u=(0,r.jsx)("span",{className:d,"data-testid":c,children:i}),e[9]=d,e[10]=c,e[11]=i,e[12]=u):u=e[12];let x;e[13]!==a||e[14]!==u?(x=(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[u,a]}),e[13]=a,e[14]=u,e[15]=x):x=e[15];let v;return e[16]!==g||e[17]!==x?(v=(0,r.jsx)(A,{className:"gap-0 py-0",children:(0,r.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[g,x]})}),e[16]=g,e[17]=x,e[18]=v):v=e[18],v},"O"),Ye=p(async(t,e,a)=>{let s=await Promise.all(a.map(d=>{let u=W(d);return Promise.allSettled([t.query(Re,{},u),t.query(Fe,{},u),t.query(ze,{},u)])})),l=W(e),c=typeof t.schedulerStatus=="function"?t.schedulerStatus():Promise.reject(new Error("scheduler status unavailable")),[i,n,o]=await Promise.allSettled([t.query(Le,{},l),t.query(Pe,{},l),c]),h=s.map(([d,u,x])=>({functions:u.status==="fulfilled"?u.value.functions:[],metrics:d.status==="fulfilled"?d.value:null,migrations:x.status==="fulfilled"?x.value.migrations:[]})),g=Ie(h),b=s[0]?.[0];return{auth:n.status==="fulfilled"?n.value:null,entries:i.status==="fulfilled"?i.value.entries:[],functions:De(h.map(d=>d.functions)),logsError:i.status==="rejected"?X(i.reason):null,metricsError:g.reachable===0&&b?.status==="rejected"?X(b.reason):null,migrations:Te(h.map(d=>d.migrations)),scheduler:o.status==="fulfilled"?o.value:null,totals:g}},"Ge"),Ze=p(t=>{let e=t?.history??[];return{attempts:e.map(a=>a.attempts),failures:e.map(a=>a.failures)}},"Qe"),xt=p(({initialShardKey:t})=>{let e=ne(),a=D(),[s,l]=(0,f.useState)([]),[c,i]=(0,f.useState)(null),[n,o]=(0,f.useState)(null),[h,g]=(0,f.useState)(null),[b,d]=(0,f.useState)([]),[u,x]=(0,f.useState)(null),[v,k]=(0,f.useState)(null),[S,q]=(0,f.useState)([]),[N]=(0,f.useState)(de),w=(0,f.useRef)(!1),y=(0,f.useRef)(!0);(0,f.useEffect)(()=>(y.current=!0,()=>{y.current=!1}),[]);let P=t??"",F=(0,f.useCallback)(async()=>{if(w.current)return;w.current=!0;let m=await Ye(e,P,me(P,N));if(!y.current){w.current=!1;return}o(m.totals),g(m.metricsError),d(m.functions),q(m.migrations),l(m.entries),i(m.logsError),x(m.auth),k(m.scheduler),w.current=!1},[e,N,P]);(0,f.useEffect)(()=>{K(F())},[F]);let G=(0,f.useRef)(0),C=(0,f.useRef)(null),ye=p(()=>{let m=Date.now()-G.current;if(m>=ge){G.current=Date.now(),K(F());return}C.current===null&&(C.current=setTimeout(()=>{C.current=null,G.current=Date.now(),K(F())},ge-m))},"de");(0,f.useEffect)(()=>()=>{C.current!==null&&clearTimeout(C.current)},[]);let{data:B,liveError:we}=ce(M.getMetrics,{},{live:!0,shardKey:P});(0,f.useEffect)(()=>{B!==void 0&&ye()},[B]);let ee=s.filter(m=>m.level==="error"),ke=ee.slice(0,Oe),L=Qe(n?.history),te=Ze(u),Se=b.filter(m=>m.calls>0).toSorted((m,V)=>V.errors/V.calls-m.errors/m.calls||V.calls-m.calls).slice(0,Ke),Q=Je(S),qe=n===null||n.requests===0?0:n.errors/n.requests,J=Y(qe,xe,ve),re=u===null?"ok":Y(u.failureRate,_e,$e),se=v===null?"ok":Ge(v.backlog,He,Ue),R=Xe([J,re,se,Q.level]),z,O;return R==="crit"?(z=a("Critical"),O=a("One or more service levels are breached.")):R==="warn"?(z=a("Degraded"),O=a("Some service levels need attention.")):(z=a("All systems healthy"),O=a("All service levels are within target.")),(0,r.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-health",children:[(0,r.jsxs)(A,{className:"gap-0 py-0",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4 p-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{"aria-hidden":"true",className:E("flex size-10 shrink-0 items-center justify-center rounded-full",We[R]),children:(0,r.jsx)("span",{className:E("size-3 rounded-full",be[R])})}),(0,r.jsxs)("div",{className:"grid leading-tight",children:[(0,r.jsx)("span",{className:"text-sm font-semibold text-foreground","data-testid":"hl-status",children:z}),(0,r.jsx)("span",{className:"text-[13px] text-muted-foreground",children:O})]})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-4",children:[(0,r.jsxs)("div",{className:"text-end",children:[(0,r.jsx)("div",{className:"font-mono text-[10px] tracking-wide text-muted-foreground uppercase",children:a("Requests")}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[L.requests.length>=2&&(0,r.jsx)(_,{ariaLabel:a("Requests over time"),className:"h-6 w-20 text-foreground",series:L.requests,testId:"hl-spark-requests"}),(0,r.jsx)("span",{className:"text-lg font-semibold tabular-nums text-foreground","data-testid":"hl-requests",children:(n?.requests??0).toString()})]})]}),(0,r.jsx)("span",{"aria-hidden":"true",className:"h-9 w-px bg-border"}),(0,r.jsxs)("div",{className:"text-end",children:[(0,r.jsx)("div",{className:"font-mono text-[10px] tracking-wide text-muted-foreground uppercase",children:a("Error rate")}),(0,r.jsx)("div",{className:E("text-lg font-semibold tabular-nums",Ne[J]),"data-testid":"hl-error-rate",children:n===null?"\u2014":U(n.errors,n.requests)})]}),(0,r.jsx)("span",{"aria-hidden":"true",className:"h-9 w-px bg-border"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(he,{}),(0,r.jsx)(ue,{message:we,prefix:"hl"})]})]})]}),h!==null&&(0,r.jsx)("div",{className:"border-t border-border bg-destructive/5 px-4 py-2 text-sm text-destructive","data-testid":"hl-metrics-error",role:"alert",children:h}),h===null&&n?.historyTruncated===!0&&(0,r.jsx)("div",{className:"border-t border-border bg-warning/5 px-4 py-2 text-sm text-muted-foreground","data-testid":"hl-history-truncated",children:a("Showing a partial request/error history \u2014 one or more shards have more data than the trend chart can display.")})]}),(0,r.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4","data-testid":"hl-slo",children:[(0,r.jsx)(H,{chart:L.errors.length>=2?(0,r.jsx)(_,{ariaLabel:a("Errors over time"),className:"h-7 w-20 text-destructive",series:L.errors,testId:"hl-spark-errors"}):void 0,label:a("Error rate"),level:J,testId:"hl-slo-errorrate",value:n===null?"\u2014":U(n.errors,n.requests)}),(0,r.jsx)(H,{chart:te.failures.length>=2?(0,r.jsx)(_,{ariaLabel:a("Auth failures over time"),className:"h-7 w-20 text-destructive",series:te.failures,testId:"hl-spark-auth"}):void 0,label:a("Auth failures"),level:re,testId:"hl-slo-auth",value:u===null?"\u2014":U(u.failures,u.attempts)}),(0,r.jsx)(H,{label:a("Scheduler backlog"),level:se,testId:"hl-slo-backlog",value:v===null?"\u2014":v.backlog.toString()}),(0,r.jsx)(H,{label:a("Migrations"),level:Q.level,testId:"hl-slo-migrations",value:Ve(Q,a)})]}),(0,r.jsx)(je,{errorCount:ee.length,logsError:c,topErrors:ke,worstFunctions:Se}),(0,r.jsxs)(A,{className:"gap-0 py-0",children:[(0,r.jsxs)("header",{className:"flex items-center justify-between gap-2 border-b border-border px-4 py-3",children:[(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Shards seen")}),(0,r.jsx)(T,{"data-testid":"hl-shard-count",variant:"outline",children:N.length})]}),N.length>0&&(0,r.jsx)("ul",{className:"flex flex-wrap gap-1.5 p-4",children:N.map(m=>(0,r.jsx)("li",{"data-testid":"hl-shard",children:(0,r.jsx)(T,{variant:"secondary",children:m})},m))})]})]})},"dt");export{xt as HealthPanel};
1
+ import{b as me,e as _}from"./chunk-BCMLQ3LV.js";import{a as ue}from"./chunk-IGCNMZSB.js";import"./chunk-ZMDNTTAC.js";import"./chunk-4UOFSGUS.js";import"./chunk-CZZWYUTR.js";import{a as de}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{b as T}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import"./chunk-QLQADHFE.js";import{a as M}from"./chunk-VDW32UET.js";import{c as ce}from"./chunk-UP7OTXKF.js";import{f as ne,g as oe}from"./chunk-LYVP5PT6.js";import"./chunk-XBDKZZ67.js";import{a as A}from"./chunk-WQH3LT2P.js";import{d as D,f as j,g as W,h as X,o as K,r as ie}from"./chunk-IUYFXK4X.js";import"./chunk-X7B6PLEW.js";import{a as p,e as I,f as Ee,g as ae,h as le,j as E}from"./chunk-3XIESWL4.js";var Z=I(ae(),1);var f=I(Ee(),1);var fe=I(ae(),1);var $=I(le(),1);var Me={connected:"bg-success",connecting:"bg-warning",idle:"bg-muted-foreground",offline:"bg-destructive"},he=p(()=>{let t=(0,fe.c)(16),e=D(),a=oe(),s;e:switch(a){case"connected":{let o;t[0]!==e?(o=e("Connected"),t[0]=e,t[1]=o):o=t[1],s=o;break e}case"connecting":{let o;t[2]!==e?(o=e("Connecting\u2026"),t[2]=e,t[3]=o):o=t[3],s=o;break e}case"idle":{let o;t[4]!==e?(o=e("Idle"),t[4]=e,t[5]=o):o=t[5],s=o;break e}case"offline":{let o;t[6]!==e?(o=e("Offline"),t[6]=e,t[7]=o):o=t[7],s=o;break e}default:s=a}let l=Me[a],c;t[8]!==l?(c=E("size-2 rounded-full",l),t[8]=l,t[9]=c):c=t[9];let i;t[10]!==c?(i=(0,$.jsx)("span",{"aria-hidden":"true",className:c}),t[10]=c,t[11]=i):i=t[11];let n;return t[12]!==a||t[13]!==i||t[14]!==s?(n=(0,$.jsxs)("span",{"aria-live":"polite",className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground","data-status":a,"data-testid":"dash-connection",role:"status",children:[i,s]}),t[12]=a,t[13]=i,t[14]=s,t[15]=n):n=t[15],n},"j");var r=I(le(),1);var Ae={crit:"destructive",ok:"secondary",warn:"default"},U=p((t,e)=>e===0?"\u2014":`${(t/e*100).toFixed(1)}%`,"_"),Y=p((t,e,a)=>Number.isNaN(t)?"ok":t>=a?"crit":t>=e?"warn":"ok","V"),xe=.01,ve=.05,je=p(t=>{let e=(0,Z.c)(36),{errorCount:a,logsError:s,topErrors:l,worstFunctions:c}=t,i=D(),n;e[0]!==i?(n=i("Functions by error rate"),e[0]=i,e[1]=n):n=e[1];let o;e[2]!==n?(o=(0,r.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:n})}),e[2]=n,e[3]=o):o=e[3];let h;e[4]!==i||e[5]!==c?(h=c.length===0?(0,r.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"hl-functions-empty",children:i("No function activity yet.")}):(0,r.jsx)("ul",{className:"divide-y divide-border",children:c.map(y=>(0,r.jsxs)("li",{className:"flex flex-wrap items-center justify-between gap-2 px-4 py-2 text-xs","data-testid":"hl-fn-row",children:[(0,r.jsx)("span",{className:"truncate font-mono text-foreground",children:y.path}),(0,r.jsxs)("span",{className:"flex shrink-0 items-center gap-2",children:[(0,r.jsx)("span",{className:"tabular-nums text-muted-foreground",children:i("{count} calls",{count:y.calls.toString()})}),(0,r.jsx)(T,{variant:Ae[Y(y.errors/y.calls,xe,ve)],children:U(y.errors,y.calls)})]})]},y.path))}),e[4]=i,e[5]=c,e[6]=h):h=e[6];let g;e[7]!==o||e[8]!==h?(g=(0,r.jsxs)(A,{className:"gap-0 py-0","data-testid":"hl-functions",children:[o,h]}),e[7]=o,e[8]=h,e[9]=g):g=e[9];let b;e[10]!==i?(b=i("Recent errors"),e[10]=i,e[11]=b):b=e[11];let d;e[12]!==b?(d=(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:b}),e[12]=b,e[13]=d):d=e[13];let u=a>0?"destructive":"outline",x;e[14]!==a||e[15]!==u?(x=(0,r.jsx)(T,{"data-testid":"hl-error-count",variant:u,children:a}),e[14]=a,e[15]=u,e[16]=x):x=e[16];let v;e[17]!==d||e[18]!==x?(v=(0,r.jsxs)("header",{className:"flex items-center justify-between gap-2 border-b border-border px-4 py-3",children:[d,x]}),e[17]=d,e[18]=x,e[19]=v):v=e[19];let k;e[20]!==s?(k=s!==null&&(0,r.jsx)("p",{className:"px-4 py-8 text-center text-sm text-destructive","data-testid":"hl-logs-error",role:"alert",children:s}),e[20]=s,e[21]=k):k=e[21];let S;e[22]!==s||e[23]!==i||e[24]!==l.length?(S=s===null&&l.length===0&&(0,r.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"hl-errors-empty",children:i("No recent errors.")}),e[22]=s,e[23]=i,e[24]=l.length,e[25]=S):S=e[25];let q;e[26]!==l?(q=l.length>0&&(0,r.jsx)("ul",{className:"divide-y divide-border",children:l.map(Ce)}),e[26]=l,e[27]=q):q=e[27];let N;e[28]!==k||e[29]!==S||e[30]!==q||e[31]!==v?(N=(0,r.jsxs)(A,{className:"gap-0 py-0",children:[v,k,S,q]}),e[28]=k,e[29]=S,e[30]=q,e[31]=v,e[32]=N):N=e[32];let w;return e[33]!==N||e[34]!==g?(w=(0,r.jsxs)("div",{className:"grid gap-3 lg:grid-cols-2",children:[g,N]}),e[33]=N,e[34]=g,e[35]=w):w=e[35],w},"Se");function Ce(t,e){return(0,r.jsxs)("li",{className:"flex flex-col gap-0.5 px-4 py-2 text-xs","data-testid":"hl-error-row",children:[(0,r.jsxs)("span",{className:"flex items-center gap-2",children:[(0,r.jsx)("time",{className:"shrink-0 text-muted-foreground",children:ie(t.timestamp)}),t.functionPath!==void 0&&(0,r.jsx)("span",{className:"truncate font-mono text-foreground",children:t.functionPath})]}),(0,r.jsx)("span",{className:"text-destructive",children:t.message})]},`${t.timestamp.toString()}-${e.toString()}`)}p(Ce,"qe");var pe={completed:0,failed:2,in_progress:1},Ie=p(t=>{let e=0,a=0,s=0,l=0,c=!1,i=[];for(let{metrics:n}of t){if(n===null){l+=1;continue}s+=1,e+=n.requests,a+=n.errors,i.push(...n.history??[]),c||=n.historyTruncated===!0}return{errors:a,failed:l,history:i,historyTruncated:c,reachable:s,requests:e}},"Ee"),De=p(t=>{let e=new Map;for(let a of t)for(let s of a){let l=e.get(s.path);if(l===void 0){e.set(s.path,{...s});continue}l.calls+=s.calls,l.errors+=s.errors,l.totalDurationMs+=s.totalDurationMs,l.scans=(l.scans??0)+(s.scans??0),l.maxDurationMs=Math.max(l.maxDurationMs,s.maxDurationMs),l.lastCalledAt=Math.max(l.lastCalledAt,s.lastCalledAt),(s.lastErrorAt??0)>(l.lastErrorAt??0)&&(l.lastErrorAt=s.lastErrorAt,l.lastErrorMessage=s.lastErrorMessage)}return[...e.values()]},"Me"),Te=p(t=>{let e=new Map;for(let a of t)for(let s of a){let l=e.get(s.id);if(l===void 0){e.set(s.id,s);continue}let c=pe[s.status]-pe[l.status];(c>0||c===0&&(s.updatedAt??0)>(l.updatedAt??0))&&e.set(s.id,s)}return[...e.values()]},"$e"),Pe=j(M.getAuthMetrics),Fe=j(M.getFunctionStats),Le=j(M.getLogs),Re=j(M.getMetrics),ze=j(M.migrationStatus),Oe=5,ge=2e3,Ke=5,_e=.1,$e=.3,He=1,Ue=50,Ge=p((t,e,a)=>t>=a?"crit":t>=e?"warn":"ok","_e"),Qe=p(t=>{let e=new Map;for(let s of t??[]){let l=e.get(s.bucketMs)??{calls:0,errors:0};l.calls+=s.calls,l.errors+=s.errors,e.set(s.bucketMs,l)}let a=[...e.entries()].toSorted((s,l)=>s[0]-l[0]);return{errors:a.map(([,s])=>s.errors),requests:a.map(([,s])=>s.calls)}},"ze"),Je=p(t=>{let e=0,a=0;for(let l of t)l.status==="failed"?e+=1:l.status==="in_progress"&&(a+=1);let s="ok";return e>0?s="crit":a>0&&(s="warn"),{failed:e,level:s,running:a}},"Ke"),Ve=p((t,e)=>t.failed>0?e("{count} failed",{count:t.failed.toString()}):t.running>0?e("{count} running",{count:t.running.toString()}):e("OK"),"He"),be={crit:"bg-destructive",ok:"bg-success",warn:"bg-warning"},Ne={crit:"text-destructive",ok:"text-foreground",warn:"text-warning"},We={crit:"bg-destructive/10 text-destructive",ok:"bg-success/10 text-success",warn:"bg-warning/10 text-warning"},Xe=p(t=>t.includes("crit")?"crit":t.includes("warn")?"warn":"ok","Be"),H=p(t=>{let e=(0,Z.c)(19),{chart:a,label:s,level:l,testId:c,value:i}=t,n=be[l],o;e[0]!==n?(o=E("size-1.5 shrink-0 rounded-full",n),e[0]=n,e[1]=o):o=e[1];let h;e[2]!==o?(h=(0,r.jsx)("span",{"aria-hidden":"true",className:o}),e[2]=o,e[3]=h):h=e[3];let g;e[4]!==s||e[5]!==h?(g=(0,r.jsxs)("span",{className:"flex items-center gap-1.5 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:[h,s]}),e[4]=s,e[5]=h,e[6]=g):g=e[6];let b=Ne[l],d;e[7]!==b?(d=E("truncate text-2xl font-semibold tabular-nums",b),e[7]=b,e[8]=d):d=e[8];let u;e[9]!==d||e[10]!==c||e[11]!==i?(u=(0,r.jsx)("span",{className:d,"data-testid":c,children:i}),e[9]=d,e[10]=c,e[11]=i,e[12]=u):u=e[12];let x;e[13]!==a||e[14]!==u?(x=(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[u,a]}),e[13]=a,e[14]=u,e[15]=x):x=e[15];let v;return e[16]!==g||e[17]!==x?(v=(0,r.jsx)(A,{className:"gap-0 py-0",children:(0,r.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[g,x]})}),e[16]=g,e[17]=x,e[18]=v):v=e[18],v},"O"),Ye=p(async(t,e,a)=>{let s=await Promise.all(a.map(d=>{let u=W(d);return Promise.allSettled([t.query(Re,{},u),t.query(Fe,{},u),t.query(ze,{},u)])})),l=W(e),c=typeof t.schedulerStatus=="function"?t.schedulerStatus():Promise.reject(new Error("scheduler status unavailable")),[i,n,o]=await Promise.allSettled([t.query(Le,{},l),t.query(Pe,{},l),c]),h=s.map(([d,u,x])=>({functions:u.status==="fulfilled"?u.value.functions:[],metrics:d.status==="fulfilled"?d.value:null,migrations:x.status==="fulfilled"?x.value.migrations:[]})),g=Ie(h),b=s[0]?.[0];return{auth:n.status==="fulfilled"?n.value:null,entries:i.status==="fulfilled"?i.value.entries:[],functions:De(h.map(d=>d.functions)),logsError:i.status==="rejected"?X(i.reason):null,metricsError:g.reachable===0&&b?.status==="rejected"?X(b.reason):null,migrations:Te(h.map(d=>d.migrations)),scheduler:o.status==="fulfilled"?o.value:null,totals:g}},"Ge"),Ze=p(t=>{let e=t?.history??[];return{attempts:e.map(a=>a.attempts),failures:e.map(a=>a.failures)}},"Qe"),xt=p(({initialShardKey:t})=>{let e=ne(),a=D(),[s,l]=(0,f.useState)([]),[c,i]=(0,f.useState)(null),[n,o]=(0,f.useState)(null),[h,g]=(0,f.useState)(null),[b,d]=(0,f.useState)([]),[u,x]=(0,f.useState)(null),[v,k]=(0,f.useState)(null),[S,q]=(0,f.useState)([]),[N]=(0,f.useState)(de),w=(0,f.useRef)(!1),y=(0,f.useRef)(!0);(0,f.useEffect)(()=>(y.current=!0,()=>{y.current=!1}),[]);let P=t??"",F=(0,f.useCallback)(async()=>{if(w.current)return;w.current=!0;let m=await Ye(e,P,me(P,N));if(!y.current){w.current=!1;return}o(m.totals),g(m.metricsError),d(m.functions),q(m.migrations),l(m.entries),i(m.logsError),x(m.auth),k(m.scheduler),w.current=!1},[e,N,P]);(0,f.useEffect)(()=>{K(F())},[F]);let G=(0,f.useRef)(0),C=(0,f.useRef)(null),ye=p(()=>{let m=Date.now()-G.current;if(m>=ge){G.current=Date.now(),K(F());return}C.current===null&&(C.current=setTimeout(()=>{C.current=null,G.current=Date.now(),K(F())},ge-m))},"de");(0,f.useEffect)(()=>()=>{C.current!==null&&clearTimeout(C.current)},[]);let{data:B,liveError:we}=ce(M.getMetrics,{},{live:!0,shardKey:P});(0,f.useEffect)(()=>{B!==void 0&&ye()},[B]);let ee=s.filter(m=>m.level==="error"),ke=ee.slice(0,Oe),L=Qe(n?.history),te=Ze(u),Se=b.filter(m=>m.calls>0).toSorted((m,V)=>V.errors/V.calls-m.errors/m.calls||V.calls-m.calls).slice(0,Ke),Q=Je(S),qe=n===null||n.requests===0?0:n.errors/n.requests,J=Y(qe,xe,ve),re=u===null?"ok":Y(u.failureRate,_e,$e),se=v===null?"ok":Ge(v.backlog,He,Ue),R=Xe([J,re,se,Q.level]),z,O;return R==="crit"?(z=a("Critical"),O=a("One or more service levels are breached.")):R==="warn"?(z=a("Degraded"),O=a("Some service levels need attention.")):(z=a("All systems healthy"),O=a("All service levels are within target.")),(0,r.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-health",children:[(0,r.jsxs)(A,{className:"gap-0 py-0",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4 p-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{"aria-hidden":"true",className:E("flex size-10 shrink-0 items-center justify-center rounded-full",We[R]),children:(0,r.jsx)("span",{className:E("size-3 rounded-full",be[R])})}),(0,r.jsxs)("div",{className:"grid leading-tight",children:[(0,r.jsx)("span",{className:"text-sm font-semibold text-foreground","data-testid":"hl-status",children:z}),(0,r.jsx)("span",{className:"text-[13px] text-muted-foreground",children:O})]})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-4",children:[(0,r.jsxs)("div",{className:"text-end",children:[(0,r.jsx)("div",{className:"font-mono text-[10px] tracking-wide text-muted-foreground uppercase",children:a("Requests")}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[L.requests.length>=2&&(0,r.jsx)(_,{ariaLabel:a("Requests over time"),className:"h-6 w-20 text-foreground",series:L.requests,testId:"hl-spark-requests"}),(0,r.jsx)("span",{className:"text-lg font-semibold tabular-nums text-foreground","data-testid":"hl-requests",children:(n?.requests??0).toString()})]})]}),(0,r.jsx)("span",{"aria-hidden":"true",className:"h-9 w-px bg-border"}),(0,r.jsxs)("div",{className:"text-end",children:[(0,r.jsx)("div",{className:"font-mono text-[10px] tracking-wide text-muted-foreground uppercase",children:a("Error rate")}),(0,r.jsx)("div",{className:E("text-lg font-semibold tabular-nums",Ne[J]),"data-testid":"hl-error-rate",children:n===null?"\u2014":U(n.errors,n.requests)})]}),(0,r.jsx)("span",{"aria-hidden":"true",className:"h-9 w-px bg-border"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(he,{}),(0,r.jsx)(ue,{message:we,prefix:"hl"})]})]})]}),h!==null&&(0,r.jsx)("div",{className:"border-t border-border bg-destructive/5 px-4 py-2 text-sm text-destructive","data-testid":"hl-metrics-error",role:"alert",children:h}),h===null&&n?.historyTruncated===!0&&(0,r.jsx)("div",{className:"border-t border-border bg-warning/5 px-4 py-2 text-sm text-muted-foreground","data-testid":"hl-history-truncated",children:a("Showing a partial request/error history \u2014 one or more shards have more data than the trend chart can display.")})]}),(0,r.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4","data-testid":"hl-slo",children:[(0,r.jsx)(H,{chart:L.errors.length>=2?(0,r.jsx)(_,{ariaLabel:a("Errors over time"),className:"h-7 w-20 text-destructive",series:L.errors,testId:"hl-spark-errors"}):void 0,label:a("Error rate"),level:J,testId:"hl-slo-errorrate",value:n===null?"\u2014":U(n.errors,n.requests)}),(0,r.jsx)(H,{chart:te.failures.length>=2?(0,r.jsx)(_,{ariaLabel:a("Auth failures over time"),className:"h-7 w-20 text-destructive",series:te.failures,testId:"hl-spark-auth"}):void 0,label:a("Auth failures"),level:re,testId:"hl-slo-auth",value:u===null?"\u2014":U(u.failures,u.attempts)}),(0,r.jsx)(H,{label:a("Scheduler backlog"),level:se,testId:"hl-slo-backlog",value:v===null?"\u2014":v.backlog.toString()}),(0,r.jsx)(H,{label:a("Migrations"),level:Q.level,testId:"hl-slo-migrations",value:Ve(Q,a)})]}),(0,r.jsx)(je,{errorCount:ee.length,logsError:c,topErrors:ke,worstFunctions:Se}),(0,r.jsxs)(A,{className:"gap-0 py-0",children:[(0,r.jsxs)("header",{className:"flex items-center justify-between gap-2 border-b border-border px-4 py-3",children:[(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Shards seen")}),(0,r.jsx)(T,{"data-testid":"hl-shard-count",variant:"outline",children:N.length})]}),N.length>0&&(0,r.jsx)("ul",{className:"flex flex-wrap gap-1.5 p-4",children:N.map(m=>(0,r.jsx)("li",{"data-testid":"hl-shard",children:(0,r.jsx)(T,{variant:"secondary",children:m})},m))})]})]})},"dt");export{xt as HealthPanel};
@@ -0,0 +1 @@
1
+ import{a as Ve}from"./chunk-LEDWUPXM.js";import"./chunk-2PJNAWB3.js";import{a as He}from"./chunk-V53KNYRN.js";import{a as Ke}from"./chunk-54MMVNPT.js";import"./chunk-BGBLQ563.js";import{a as Ge}from"./chunk-Y32QIKBS.js";import{R as We}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{a as le}from"./chunk-MWIKAR7F.js";import"./chunk-DJZYD5I5.js";import"./chunk-2OUPA2WJ.js";import{b as de}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as Pe}from"./chunk-6IZBFC3G.js";import{a as Ue}from"./chunk-XXQUMVWH.js";import"./chunk-ZNNKWEH5.js";import"./chunk-QLQADHFE.js";import{a as F}from"./chunk-VDW32UET.js";import{c as _e}from"./chunk-UP7OTXKF.js";import{f as ze}from"./chunk-LYVP5PT6.js";import"./chunk-XBDKZZ67.js";import{a as ie}from"./chunk-XQCVZAGU.js";import{a as Te,b as ke,c as Be,d as G,e as C,f as w}from"./chunk-WJQLNYGX.js";import{a as De,e as Ee}from"./chunk-WQH3LT2P.js";import{d as $,f as ce,g as ue,h as me,o as he,r as je}from"./chunk-IUYFXK4X.js";import"./chunk-X7B6PLEW.js";import{a as h,e as Me,f as rt,g as nt,h as ot}from"./chunk-3XIESWL4.js";var z=Me(nt(),1);var A=Me(rt(),1);var t=Me(ot(),1);var dt=h((n,e)=>{let a=new Set(n.map(s=>s.deadLetterQueue).filter(s=>typeof s=="string"&&s!=="")),l=n.filter(s=>(s.deadLetterQueue===void 0||s.deadLetterQueue==="")&&!a.has(s.name)),d=e.filter(s=>s.deadLettered).length;return{deadLetteredCount:d,queuesWithoutDlq:l,showReliabilityWarning:l.length>0||d>0}},"rt"),lt=200,it=ce(F.sendQueueMessage),ct=ce(F.replayQueueMessage),ut=ce(F.clearQueueMessages),Xe=96,mt=h(n=>{if(n===void 0)return"\u2014";try{return JSON.stringify(n)}catch{return"[unserializable]"}},"it"),ht=h(n=>n.length>Xe?`${n.slice(0,Xe)}\u2026`:n,"ut"),pt=h(n=>n==="error"?"destructive":n==="retry"?"outline":"secondary","ct"),gt=h((n,e)=>e(n==="messages"?"Messages":n==="send"?"Send":"Declared"),"mt"),ft=h(n=>{let e=(0,z.c)(11),{loaded:a,queues:l}=n,d=$(),s;e[0]!==d?(s=d("Queues are declared in code with defineQueue. Enqueue from a mutation or action with ctx.queues.<name>.send(...); push consumers process batches in the worker."),e[0]=d,e[1]=s):s=e[1];let o;e[2]!==s?(o=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:s}),e[2]=s,e[3]=o):o=e[3];let r;e[4]!==a||e[5]!==l||e[6]!==d?(r=a&&l.length===0?(0,t.jsx)(ie,{description:d("No defineQueue is declared in lunora/queues.ts in this deployment. Add one to offload async work to a Cloudflare Queue."),testId:"queues-empty",title:d("No queues defined")}):(0,t.jsx)(De,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ee,{className:"px-0",children:(0,t.jsxs)(Te,{"data-testid":"queues-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(G,{children:[(0,t.jsx)(C,{children:d("Export")}),(0,t.jsx)(C,{children:d("Queue")}),(0,t.jsx)(C,{children:d("Mode")}),(0,t.jsx)(C,{children:d("Binding")}),(0,t.jsx)(C,{children:d("Dead-letter")})]})}),(0,t.jsx)(Be,{children:l.map(bt)})]})})}),e[4]=a,e[5]=l,e[6]=d,e[7]=r):r=e[7];let p;return e[8]!==o||e[9]!==r?(p=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-declared",children:[o,r]}),e[8]=o,e[9]=r,e[10]=p):p=e[10],p},"ht"),xt=h(n=>{let e=(0,z.c)(67),{message:a,onReplay:l,replayingId:d}=n,s=$(),o,r,p,u,x,N,y,i,m,f;if(e[0]!==a.attempts||e[1]!==a.body||e[2]!==a.deadLettered||e[3]!==a.exportName||e[4]!==a.id||e[5]!==a.messageId||e[6]!==a.outcome||e[7]!==a.queue||e[8]!==s){let W=mt(a.body);r=G,N=`queues-message-${a.id}`;let j=a.exportName??a.queue;e[19]!==j?(y=(0,t.jsx)(w,{className:"font-mono text-xs",children:j}),e[19]=j,e[20]=y):y=e[20],e[21]!==a.messageId?(i=(0,t.jsx)(w,{className:"max-w-[16ch] truncate font-mono text-xs text-muted-foreground",title:a.messageId,children:a.messageId}),e[21]=a.messageId,e[22]=i):i=e[22],e[23]!==a.attempts?(m=(0,t.jsx)(w,{className:"font-mono text-xs tabular-nums",children:a.attempts}),e[23]=a.attempts,e[24]=m):m=e[24];let D=`queues-outcome-${a.id}`,E;e[25]!==a.outcome?(E=pt(a.outcome),e[25]=a.outcome,e[26]=E):E=e[26];let I;e[27]!==a.outcome||e[28]!==D||e[29]!==E?(I=(0,t.jsx)(de,{"data-testid":D,variant:E,children:a.outcome}),e[27]=a.outcome,e[28]=D,e[29]=E,e[30]=I):I=e[30];let _;e[31]!==a.deadLettered||e[32]!==a.id||e[33]!==s?(_=a.deadLettered&&(0,t.jsx)(de,{"data-testid":`queues-dlq-${a.id}`,variant:"destructive",children:s("DLQ")}),e[31]=a.deadLettered,e[32]=a.id,e[33]=s,e[34]=_):_=e[34],e[35]!==I||e[36]!==_?(f=(0,t.jsx)(w,{children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[I,_]})}),e[35]=I,e[36]=_,e[37]=f):f=e[37],o=w,p="max-w-[32ch] truncate font-mono text-xs text-muted-foreground",u=W,x=ht(W),e[0]=a.attempts,e[1]=a.body,e[2]=a.deadLettered,e[3]=a.exportName,e[4]=a.id,e[5]=a.messageId,e[6]=a.outcome,e[7]=a.queue,e[8]=s,e[9]=o,e[10]=r,e[11]=p,e[12]=u,e[13]=x,e[14]=N,e[15]=y,e[16]=i,e[17]=m,e[18]=f}else o=e[9],r=e[10],p=e[11],u=e[12],x=e[13],N=e[14],y=e[15],i=e[16],m=e[17],f=e[18];let g;e[38]!==o||e[39]!==p||e[40]!==u||e[41]!==x?(g=(0,t.jsx)(o,{className:p,title:u,children:x}),e[38]=o,e[39]=p,e[40]=u,e[41]=x,e[42]=g):g=e[42];let q;e[43]!==a.capturedAt?(q=je(a.capturedAt,"\u2014"),e[43]=a.capturedAt,e[44]=q):q=e[44];let b;e[45]!==q?(b=(0,t.jsx)(w,{className:"text-xs text-muted-foreground tabular-nums",children:q}),e[45]=q,e[46]=b):b=e[46];let S=`queues-replay-${a.id}`,M=d!==null,Q;e[47]!==a.id||e[48]!==d||e[49]!==s?(Q=d===a.id?s("Replaying\u2026"):s("Replay"),e[47]=a.id,e[48]=d,e[49]=s,e[50]=Q):Q=e[50];let L;e[51]!==a.id||e[52]!==l||e[53]!==S||e[54]!==M||e[55]!==Q?(L=(0,t.jsx)(w,{children:(0,t.jsx)(le,{"data-id":a.id,"data-testid":S,disabled:M,onClick:l,size:"xs",type:"button",variant:"outline",children:Q})}),e[51]=a.id,e[52]=l,e[53]=S,e[54]=M,e[55]=Q,e[56]=L):L=e[56];let T;return e[57]!==r||e[58]!==b||e[59]!==L||e[60]!==N||e[61]!==y||e[62]!==i||e[63]!==m||e[64]!==f||e[65]!==g?(T=(0,t.jsxs)(r,{"data-testid":N,children:[y,i,m,f,g,b,L]}),e[57]=r,e[58]=b,e[59]=L,e[60]=N,e[61]=y,e[62]=i,e[63]=m,e[64]=f,e[65]=g,e[66]=T):T=e[66],T},"pt"),yt=h(n=>{let e=(0,z.c)(30),{hasError:a,messages:l,onClear:d,onReplay:s,replayingId:o}=n,r=$(),p;e[0]!==r?(p=r("Cloudflare Queues have no peek API, so this is what push consumers actually processed \u2014 not pending depth."),e[0]=r,e[1]=p):p=e[1];let u;e[2]!==p?(u=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:p}),e[2]=p,e[3]=u):u=e[3];let x;e[4]!==l.length||e[5]!==r?(x=r("Clear {count} messages?",{count:l.length}),e[4]=l.length,e[5]=r,e[6]=x):x=e[6];let N=l.length===0,y;e[7]!==r?(y=r("Clear log"),e[7]=r,e[8]=y):y=e[8];let i;e[9]!==d||e[10]!==x||e[11]!==N||e[12]!==y?(i=(0,t.jsx)("div",{className:"ml-auto",children:(0,t.jsx)(Ge,{confirmLabel:x,disabled:N,onConfirm:d,testId:"queues-clear",children:y})}),e[9]=d,e[10]=x,e[11]=N,e[12]=y,e[13]=i):i=e[13];let m;e[14]!==l.length||e[15]!==r?(m=l.length>0&&(0,t.jsx)(de,{"data-testid":"queues-count",variant:"secondary",children:r("{count} messages",{count:l.length})}),e[14]=l.length,e[15]=r,e[16]=m):m=e[16];let f;e[17]!==u||e[18]!==i||e[19]!==m?(f=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[u,i,m]}),e[17]=u,e[18]=i,e[19]=m,e[20]=f):f=e[20];let g;e[21]!==a||e[22]!==l||e[23]!==s||e[24]!==o||e[25]!==r?(g=!a&&l.length===0?(0,t.jsx)(ie,{description:r("Consumed messages appear here once a push consumer processes a batch in dev. Send one from the Send tab to see it captured."),testId:"queues-messages-empty",title:r("No consumed messages yet.")}):(0,t.jsx)(De,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ee,{className:"px-0",children:(0,t.jsx)(Ve,{className:"max-h-[32rem]","data-testid":"queues-messages-scroll",children:(0,t.jsxs)(Te,{"data-testid":"queues-messages-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(G,{children:[(0,t.jsx)(C,{children:r("Export")}),(0,t.jsx)(C,{children:r("Message")}),(0,t.jsx)(C,{children:r("Attempts")}),(0,t.jsx)(C,{children:r("Outcome")}),(0,t.jsx)(C,{children:r("Body")}),(0,t.jsx)(C,{children:r("Captured")}),(0,t.jsx)(C,{})]})}),(0,t.jsx)(Be,{children:l.map(b=>(0,t.jsx)(xt,{message:b,onReplay:s,replayingId:o},b.id))})]})})})}),e[21]=a,e[22]=l,e[23]=s,e[24]=o,e[25]=r,e[26]=g):g=e[26];let q;return e[27]!==f||e[28]!==g?(q=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-messages",children:[f,g]}),e[27]=f,e[28]=g,e[29]=q):q=e[29],q},"gt"),Nt=h(n=>{let e=(0,z.c)(20),{batchMode:a,bodyText:l,delayText:d,onBatchModeChange:s,onBodyChange:o,onDelayChange:r,onSelectExport:p,onSend:u,queues:x,selectedExportName:N,sending:y}=n,i=$(),m;e[0]!==i?(m=i("Enqueue a JSON message to a declared producer to exercise its consumer. Nothing is captured until the consumer processes it."),e[0]=i,e[1]=m):m=e[1];let f;e[2]!==m?(f=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:m}),e[2]=m,e[3]=f):f=e[3];let g;e[4]!==a||e[5]!==l||e[6]!==d||e[7]!==s||e[8]!==o||e[9]!==r||e[10]!==p||e[11]!==u||e[12]!==x||e[13]!==N||e[14]!==y||e[15]!==i?(g=x.length===0?(0,t.jsx)(ie,{description:i("Declare a queue with defineQueue in lunora/queues.ts to enqueue a test message."),testId:"queues-send-empty",title:i("No queues to send to")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("select",{"aria-label":i("Queue"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"queues-send-select",onChange:p,value:N,children:x.map(qt)}),(0,t.jsx)(We,{"aria-label":i("Delay (seconds)"),className:"max-w-36","data-testid":"queues-send-delay",min:0,onChange:r,placeholder:i("Delay (s)"),type:"number",value:d}),(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"queues-send-batch",children:[(0,t.jsx)("input",{checked:a,"data-testid":"queues-send-batch",id:"queues-send-batch",onChange:s,type:"checkbox"}),i("Send as batch (JSON array)")]}),(0,t.jsx)(le,{className:"ml-auto","data-testid":"queues-send-button",disabled:y||N==="",onClick:u,type:"button",children:i(y?"Sending\u2026":"Send message")})]}),(0,t.jsx)(He,{"aria-label":i("Message body (JSON)"),className:"font-mono","data-testid":"queues-send-body",onChange:o,placeholder:a?'[ { "hello": "world" } ]':'{ "hello": "world" }',value:l})]}),e[4]=a,e[5]=l,e[6]=d,e[7]=s,e[8]=o,e[9]=r,e[10]=p,e[11]=u,e[12]=x,e[13]=N,e[14]=y,e[15]=i,e[16]=g):g=e[16];let q;return e[17]!==f||e[18]!==g?(q=(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"queues-send",children:[f,g]}),e[17]=f,e[18]=g,e[19]=q):q=e[19],q},"ft"),Ft=h(n=>{let e=(0,z.c)(59),{limit:a}=n,l=a??lt,d=ze(),s=$(),[o,r]=(0,A.useState)("declared"),[p,u]=(0,A.useState)(null),x;e[0]===Symbol.for("react.memo_cache_sentinel")?(x={},e[0]=x):x=e[0];let{data:N,error:y,errorSource:i}=_e(F.listQueues,x),m;e[1]!==l?(m={limit:l},e[1]=l,e[2]=m):m=e[2];let{data:f,error:g,errorSource:q,refetch:b}=_e(F.getQueueMessages,m),S=Array.isArray(N?.queues)?[...N.queues].toSorted(vt):[],M=f?.entries??[],{deadLetteredCount:Q,queuesWithoutDlq:L,showReliabilityWarning:T}=dt(S,M),[W,j]=(0,A.useState)(""),[D,E]=(0,A.useState)(""),[I,_]=(0,A.useState)(""),[U,Ye]=(0,A.useState)(!1),[pe,Oe]=(0,A.useState)(!1),[ge,Re]=(0,A.useState)(null),H=S.some(c=>c.exportName===W)?W:S[0]?.exportName??"",Je=o==="messages"?g:y,Ze=o==="messages"?q:i,fe=Je??p,xe=Je===null?p:Ze,K;e[3]!==b?(K=h(()=>{b()},"H"),e[3]=b,e[4]=K):K=e[4],Ke(K,o==="messages");let ye=h(async()=>{u(null);let c=H;if(c==="")return;let v=null,$e=D.trim();if($e!=="")try{v=JSON.parse($e)}catch{u(s("Body must be valid JSON."));return}let Ae,Fe=I.trim();if(Fe!==""){let P=Number(Fe);if(!Number.isFinite(P)||P<0){u(s("Delay must be a non-negative number of seconds."));return}Ae=P}if(U&&!Array.isArray(v)){u(s("Batch mode needs a JSON array body \u2014 each element is enqueued as one message."));return}Oe(!0);let st=U?{batch:v,delaySeconds:Ae,exportName:c}:{body:v,delaySeconds:Ae,exportName:c};try{await d.query(it,st,ue("")),b()}catch(P){u(me(P))}Oe(!1)},"ce"),V;e[5]!==d||e[6]!==b?(V=h(async c=>{u(null),Re(c);try{await d.query(ct,{id:c},ue("")),b()}catch(v){u(me(v))}Re(null)},"K"),e[5]=d,e[6]=b,e[7]=V):V=e[7];let Ne=V,X;e[8]!==d||e[9]!==b?(X=h(async()=>{u(null);try{await d.query(ut,{},ue("")),b()}catch(c){u(me(c))}},"V"),e[8]=d,e[9]=b,e[10]=X):X=e[10];let be=X,Y;e[11]===Symbol.for("react.memo_cache_sentinel")?(Y=h(c=>{let v=c.currentTarget.dataset.tab;(v==="declared"||v==="messages"||v==="send")&&r(v)},"X"),e[11]=Y):Y=e[11];let et=Y,Z;e[12]===Symbol.for("react.memo_cache_sentinel")?(Z=h(c=>{j(c.currentTarget.value)},"Y"),e[12]=Z):Z=e[12];let qe=Z,ee;e[13]===Symbol.for("react.memo_cache_sentinel")?(ee=h(c=>{E(c.currentTarget.value)},"Z"),e[13]=ee):ee=e[13];let ve=ee,te;e[14]===Symbol.for("react.memo_cache_sentinel")?(te=h(c=>{_(c.currentTarget.value)},"ee"),e[14]=te):te=e[14];let Se=te,ae;e[15]===Symbol.for("react.memo_cache_sentinel")?(ae=h(c=>{Ye(c.currentTarget.checked)},"te"),e[15]=ae):ae=e[15];let Ce=ae,se;e[16]!==ye?(se=h(()=>{he(ye())},"ae"),e[16]=ye,e[17]=se):se=e[17];let we=se,re;e[18]!==Ne?(re=h(c=>{let{id:v}=c.currentTarget.dataset;v!==void 0&&he(Ne(v))},"se"),e[18]=Ne,e[19]=re):re=e[19];let Ie=re,ne;e[20]!==be?(ne=h(()=>{he(be())},"re"),e[20]=be,e[21]=ne):ne=e[21];let Qe=ne,tt="flex flex-col gap-6",at="lunora-queues-panel",k;e[22]!==s||e[23]!==o?(k=(0,t.jsx)("div",{className:"flex items-center gap-1","data-testid":"queues-tabs",role:"tablist",children:["declared","messages","send"].map(c=>(0,t.jsx)(le,{"aria-selected":o===c,"data-tab":c,"data-testid":`queues-tab-${c}`,onClick:et,role:"tab",size:"sm",type:"button",variant:o===c?"secondary":"ghost",children:gt(c,s)},c))}),e[22]=s,e[23]=o,e[24]=k):k=e[24];let B;e[25]!==fe||e[26]!==xe?(B=fe!==null&&(0,t.jsx)(Pe,{error:xe,testId:"queues-error"}),e[25]=fe,e[26]=xe,e[27]=B):B=e[27];let Le=T&&(0,t.jsx)(Ue,{icon:(0,t.jsx)("span",{"aria-hidden":"true",className:"text-base leading-none",children:"\u26A0"}),testId:"queues-dlq-warning",variant:"warning",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[L.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"font-medium",children:s("No dead-letter queue on {queues}.",{queues:L.map(St).join(", ")})}),(0,t.jsx)("p",{className:"text-muted-foreground",children:s("Exhausted messages are dropped after retries. Add a deadLetterQueue to capture them.")})]}),Q>0&&(0,t.jsx)("p",{className:L.length>0?"text-muted-foreground":"font-medium",children:Q===1?s("1 message was recently dead-lettered."):s("{count} messages were recently dead-lettered.",{count:Q})})]})}),O;e[28]!==S||e[29]!==N||e[30]!==o?(O=o==="declared"&&(0,t.jsx)(ft,{loaded:N!==void 0,queues:S}),e[28]=S,e[29]=N,e[30]=o,e[31]=O):O=e[31];let R;e[32]!==M||e[33]!==g||e[34]!==Qe||e[35]!==Ie||e[36]!==ge||e[37]!==o?(R=o==="messages"&&(0,t.jsx)(yt,{hasError:g!==null,messages:M,onClear:Qe,onReplay:Ie,replayingId:ge}),e[32]=M,e[33]=g,e[34]=Qe,e[35]=Ie,e[36]=ge,e[37]=o,e[38]=R):R=e[38];let J;e[39]!==U||e[40]!==D||e[41]!==I||e[42]!==Ce||e[43]!==ve||e[44]!==Se||e[45]!==qe||e[46]!==we||e[47]!==S||e[48]!==H||e[49]!==pe||e[50]!==o?(J=o==="send"&&(0,t.jsx)(Nt,{batchMode:U,bodyText:D,delayText:I,onBatchModeChange:Ce,onBodyChange:ve,onDelayChange:Se,onSelectExport:qe,onSend:we,queues:S,selectedExportName:H,sending:pe}),e[39]=U,e[40]=D,e[41]=I,e[42]=Ce,e[43]=ve,e[44]=Se,e[45]=qe,e[46]=we,e[47]=S,e[48]=H,e[49]=pe,e[50]=o,e[51]=J):J=e[51];let oe;return e[52]!==k||e[53]!==B||e[54]!==Le||e[55]!==O||e[56]!==R||e[57]!==J?(oe=(0,t.jsxs)("div",{className:tt,"data-testid":at,children:[k,B,Le,O,R,J]}),e[52]=k,e[53]=B,e[54]=Le,e[55]=O,e[56]=R,e[57]=J,e[58]=oe):oe=e[58],oe},"Ft");function bt(n){return(0,t.jsxs)(G,{"data-testid":`queues-row-${n.exportName}`,children:[(0,t.jsx)(w,{className:"font-mono text-xs",children:n.exportName}),(0,t.jsx)(w,{className:"font-mono text-xs text-muted-foreground",children:n.name}),(0,t.jsx)(w,{className:"font-mono text-xs text-muted-foreground",children:n.mode}),(0,t.jsx)(w,{className:"font-mono text-xs text-muted-foreground",children:n.binding}),(0,t.jsx)(w,{className:"font-mono text-xs text-muted-foreground",children:n.deadLetterQueue??"\u2014"})]},n.exportName)}h(bt,"xt");function qt(n){return(0,t.jsx)("option",{value:n.exportName,children:n.exportName},n.exportName)}h(qt,"yt");function vt(n,e){return n.exportName.localeCompare(e.exportName)}h(vt,"Nt");function St(n){return n.name}h(St,"bt");export{Ft as default};
@@ -1 +1 @@
1
- import{b as de,c as Wo,d as Xo}from"./chunk-SD4BERSA.js";import{a as qo}from"./chunk-IC4L6G56.js";import{a as So,c as No,d as Do,e as $o}from"./chunk-I6A5C46N.js";import{A as lo,D as U,E as mo,F as fo,I as go,K as Ro,L as xo,O as Mo,P as ho,Q as bo,S as Co,T as vo,U as Io,V as Eo,W as yo,Y as Po,_ as Oo,aa as To,ba as at,ca as ko,da as wo,ea as ut,ha as _o,ia as At,ja as He,l as Dt,la as Ao,ma as Vo,n as ro,na as Lo,o as so,oa as Fo,pa as Go,q as io,qa as Uo,r as nt,ra as Ho,s as rt,t as ao,ta as jo,u as st,ua as Yo,v as uo,va as Ko,w as co,x as po,y as it}from"./chunk-2QSHLBCO.js";import{b as Bo}from"./chunk-BGBLQ563.js";import{i as zo,k as Jo}from"./chunk-QBWRC5YX.js";import{C as Ne,I as Fe,J as no,K as Ge,L as tt,M as ot,O as y,P as W,d as wt,e as oe,h as We,i as oo,p as _t}from"./chunk-CFPZYHPY.js";import{a as ct,b as Ue}from"./chunk-FXCBF4XT.js";import{a as Ee,c as Le,i as Zt,q as eo,t as to}from"./chunk-2OUPA2WJ.js";import{a as he,c as L,d as Qt,e as et,h as Je,i as pe,j as I}from"./chunk-6ST5ECQA.js";import{a as n,d as $n,e as f,f as C,g as zn,h as fe,j as Be}from"./chunk-3XIESWL4.js";var _e=f(zn(),1),Dc=f(C(),1);var ne={};$n(ne,{Arrow:()=>Zo,Backdrop:()=>tn,CheckboxItem:()=>sn,CheckboxItemIndicator:()=>an,Group:()=>pn,GroupLabel:()=>ln,Handle:()=>Qe,Item:()=>fn,LinkItem:()=>gn,Popup:()=>xn,Portal:()=>bn,Positioner:()=>Cn,RadioGroup:()=>In,RadioItem:()=>Pn,RadioItemIndicator:()=>Sn,Root:()=>Ot,Separator:()=>qo,SubmenuRoot:()=>On,SubmenuTrigger:()=>Ln,Trigger:()=>Dn,Viewport:()=>Bn,createHandle:()=>Fn});var Qo=f(C(),1);var pt=f(C(),1);var Vt=pt.createContext(void 0);function X(t){let e=pt.useContext(Vt);if(e===void 0&&!t)throw new Error(L(33));return e}n(X,"useMenuPositionerContext");var dt=f(C(),1);var Bt=dt.createContext(void 0);function O(t){let e=dt.useContext(Bt);if(e===void 0&&!t)throw new Error(L(36));return e}n(O,"useMenuRootContext");var Zo=Qo.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,{store:l}=O(),{arrowRef:r,side:m,align:R,arrowUncentered:g,arrowStyles:x}=X(),v={open:l.useState("open"),side:m,align:R,uncentered:g};return I("div",e,{ref:[r,o],stateAttributesMapping:He,state:v,props:{style:x,"aria-hidden":!0,...d}})},"MenuArrow"));var en=f(C(),1);var lt=f(C(),1);var Jn=lt.createContext(void 0);function be(t=!0){let e=lt.useContext(Jn);if(e===void 0&&!t)throw new Error(L(25));return e}n(be,"useContextMenuRootContext");var Wn={...He,...Fe},tn=en.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,{store:l}=O(),r=l.useState("open"),m=l.useState("mounted"),R=l.useState("transitionStatus"),g=l.useState("lastOpenChangeReason"),x=be(),M={open:r,transitionStatus:R};return I("div",e,{ref:x?.backdropRef?[o,x.backdropRef]:o,state:M,stateAttributesMapping:Wn,props:[{role:"presentation",hidden:!m,style:{pointerEvents:g===y.triggerHover?"none":void 0,userSelect:"none",WebkitUserSelect:"none"}},d]})},"MenuBackdrop"));var gt=f(C(),1);var mt=f(C(),1);var Lt=mt.createContext(void 0);function on(){let t=mt.useContext(Lt);if(t===void 0)throw new Error(L(30));return t}n(on,"useMenuCheckboxItemContext");var je=f(C(),1);var nn=f(C(),1);function ft(t){let{closeOnClick:e,highlighted:o,id:i,nodeId:u,store:a,typingRef:d,itemRef:l,itemMetadata:r}=t,{events:m}=a.useState("floatingTreeRoot"),R=a.useState("open"),g=be(!0),x=g!==void 0;return nn.useMemo(()=>({id:i,role:"menuitem",tabIndex:R&&o?0:-1,onKeyDown(M){M.key===" "&&d?.current&&M.preventDefault()},onMouseMove(M){u&&m.emit("itemhover",{nodeId:u,target:M.currentTarget})},onClick(M){e&&m.emit("close",{domEvent:M,reason:y.itemPress})},onMouseUp(M){if(g){let v=g.initialCursorPointRef.current;if(g.initialCursorPointRef.current=null,x&&v&&Math.abs(M.clientX-v.x)<=1&&Math.abs(M.clientY-v.y)<=1||x&&!oo.os.mac&&M.button===2)return}l.current&&a.context.allowMouseUpTriggerRef.current&&(!x||M.button===2)&&(!r||r.type==="regular-item")&&l.current.click()}}),[e,o,i,m,u,R,a,d,l,g,x,r])}n(ft,"useMenuItemCommonProps");var Ye={type:"regular-item"};function Oe(t){let{closeOnClick:e,disabled:o=!1,highlighted:i,id:u,store:a,typingRef:d=a.context.typingRef,nativeButton:l,itemMetadata:r,nodeId:m}=t,R=a.useState("disabled"),g=o||R,x=je.useRef(null),{getButtonProps:M,buttonRef:v}=Ue({disabled:g,focusableWhenDisabled:!0,native:l,composite:!0}),P=ft({closeOnClick:e,highlighted:i,id:u,nodeId:m,store:a,typingRef:d,itemRef:x,itemMetadata:r}),c=je.useCallback(b=>he(P,{onMouseEnter(){r.type==="submenu-trigger"&&r.setActive()}},b,M),[P,M,r]),h=et(x,v);return je.useMemo(()=>({getItemProps:c,itemRef:h}),[c,h])}n(Oe,"useMenuItem");var Ft=(function(t){return t.checked="data-checked",t.unchecked="data-unchecked",t.disabled="data-disabled",t.highlighted="data-highlighted",t})({});var Te={checked(t){return t?{[Ft.checked]:""}:{[Ft.unchecked]:""}},...Fe};var rn=f(fe(),1);var sn=gt.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!1,checked:R,defaultChecked:g,onCheckedChange:x,style:M,...v}=e,P=de({label:d}),c=X(!0),h=oe(a),{store:b}=O(),p=b.useState("isActive",P.index),T=b.useState("itemProps"),[V,s]=ot({controlled:R,default:g??!1,name:"MenuCheckboxItem",state:"checked"}),{getItemProps:w,itemRef:S}=Oe({closeOnClick:m,disabled:r,highlighted:p,id:h,store:b,nativeButton:l,nodeId:c?.context.nodeId,itemMetadata:Ye}),j=gt.useMemo(()=>({disabled:r,highlighted:p,checked:V}),[r,p,V]);function N(D){let F=W(y.itemPress,D.nativeEvent,void 0,{preventUnmountOnClose(){}});x?.(!V,F),!F.isCanceled&&s($=>!$)}n(N,"handleClick");let _=I("div",e,{state:j,stateAttributesMapping:Te,props:[T,{role:"menuitemcheckbox","aria-checked":V,onClick:N},v,w],ref:[S,o,P.ref]});return(0,rn.jsx)(Lt.Provider,{value:j,children:_})},"MenuCheckboxItem"));var Rt=f(C(),1);var an=Rt.forwardRef(n(function(e,o){let{render:i,className:u,style:a,keepMounted:d=!1,...l}=e,r=on(),m=Rt.useRef(null),{transitionStatus:R,setMounted:g}=tt(r.checked);Ge({open:r.checked,ref:m,onComplete(){r.checked||g(!1)}});let x={checked:r.checked,disabled:r.disabled,highlighted:r.highlighted,transitionStatus:R};return I("span",e,{state:x,ref:[o,m],stateAttributesMapping:Te,props:{"aria-hidden":!0,...l},enabled:d||r.checked})},"MenuCheckboxItemIndicator"));var Mt=f(C(),1);var xt=f(C(),1);var Xe=xt.createContext(void 0);function un(){let t=xt.useContext(Xe);if(t===void 0)throw new Error(L(31));return t}n(un,"useMenuGroupRootContext");var cn=f(fe(),1);var pn=Mt.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,[l,r]=Mt.useState(void 0),m=I("div",e,{ref:o,props:{role:"group","aria-labelledby":l,...d}});return(0,cn.jsx)(Xe.Provider,{value:r,children:m})},"MenuGroup"));var dn=f(C(),1);var ln=dn.forwardRef(n(function(e,o){let{render:i,className:u,style:a,id:d,...l}=e,r=oe(d),m=un();return Ee(()=>(m(r),()=>{m(void 0)}),[m,r]),I("div",e,{ref:o,props:{id:r,role:"presentation",...l}})},"MenuGroupLabel"));var mn=f(C(),1);var fn=mn.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!0,style:R,...g}=e,x=de({label:d}),M=X(!0),v=oe(a),{store:P}=O(),c=P.useState("isActive",x.index),h=P.useState("itemProps"),{getItemProps:b,itemRef:p}=Oe({closeOnClick:m,disabled:r,highlighted:c,id:v,store:P,nativeButton:l,nodeId:M?.context.nodeId,itemMetadata:Ye});return I("div",e,{state:{disabled:r,highlighted:c},props:[h,g,b],ref:[p,o,x.ref]})},"MenuItem"));var ht=f(C(),1);var gn=ht.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,closeOnClick:l=!1,style:r,...m}=e,R=ht.useRef(null),g=de({label:d}),M=X(!0)?.context.nodeId,v=oe(a),{store:P}=O(),c=P.useState("isActive",g.index),h=P.useState("itemProps"),b=P.context.typingRef,{getButtonProps:p,buttonRef:T}=Ue({native:!1,composite:!0}),V=ft({closeOnClick:l,highlighted:c,id:v,nodeId:M,store:P,typingRef:b,itemRef:R});function s(S){return he(V,S,p)}return n(s,"getItemProps"),I("a",e,{state:{highlighted:c},props:[h,m,s],ref:[R,T,o,g.ref]})},"MenuLinkItem"));var Ke=f(C(),1);var Rn=f(fe(),1);var Xn={...He,...Fe},xn=Ke.forwardRef(n(function(e,o){let{render:i,className:u,style:a,finalFocus:d,...l}=e,{store:r}=O(),{side:m,align:R}=X(),g=Ko(!0)!=null,x=r.useState("open"),M=r.useState("transitionStatus"),v=r.useState("popupProps"),P=r.useState("mounted"),c=r.useState("instantType"),h=r.useState("activeTriggerElement"),b=r.useState("parent"),p=r.useState("lastOpenChangeReason"),T=r.useState("rootId"),V=r.useState("floatingRootContext"),s=r.useState("floatingTreeRoot"),w=r.useState("closeDelay"),S=r.useState("activeTriggerElement"),j=r.useState("hoverEnabled"),N=r.useState("disabled"),_=r.useState("openMethod"),D=b.type==="context-menu";Ge({open:x,ref:r.context.popupRef,onComplete(){x&&r.context.onOpenChangeComplete?.(!0)}}),Ke.useEffect(()=>{function K(k){r.setOpen(!1,W(k.reason,k.domEvent))}return n(K,"handleClose"),s.events.on("close",K),()=>{s.events.off("close",K)}},[s.events,r]),To(V,{enabled:j&&!N&&!D&&b.type!=="menubar",closeDelay:w});let F=Ke.useCallback(K=>{r.set("popupElement",K)},[r]),$={transitionStatus:M,side:m,align:R,open:x,nested:b.type==="menu",instant:c},Y=I("div",e,{state:$,ref:[o,r.context.popupRef,F],stateAttributesMapping:Xn,props:[v,{onKeyDown(K){g&&Yo.has(K.key)&&K.stopPropagation()}},Uo(M),l,{"data-rootownerid":T}]}),Q=b.type===void 0||D;return(h||b.type==="menubar"&&p!==y.outsidePress)&&(Q=!0),(0,Rn.jsx)(po,{context:V,openInteractionType:_,modal:D,disabled:!P,returnFocus:d===void 0?Q:d,initialFocus:b.type!=="menu",restoreFocus:!0,externalTree:b.type!=="menubar"?s:void 0,previousFocusableElement:S,nextFocusableElement:b.type===void 0?r.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:b.type===void 0?r.context.beforeContentFocusGuardRef:void 0,children:Y})},"MenuPopup"));var hn=f(C(),1);var bt=f(C(),1);var Gt=bt.createContext(void 0);function Mn(){let t=bt.useContext(Gt);if(t===void 0)throw new Error(L(32));return t}n(Mn,"useMenuPortalContext");var Ut=f(fe(),1);var bn=hn.forwardRef(n(function(e,o){let{keepMounted:i=!1,...u}=e,{store:a}=O();return a.useState("mounted")||i?(0,Ut.jsx)(Gt.Provider,{value:i,children:(0,Ut.jsx)(io,{ref:o,...u})}):null},"MenuPortal"));var Ce=f(C(),1);var $e=f(fe(),1);var Cn=Ce.forwardRef(n(function(e,o){let{anchor:i,positionMethod:u="absolute",className:a,render:d,side:l,align:r,sideOffset:m=0,alignOffset:R=0,collisionBoundary:g="clipping-ancestors",collisionPadding:x=5,arrowPadding:M=5,sticky:v=!1,disableAnchorTracking:P=!1,collisionAvoidance:c=ro,style:h,...b}=e,{store:p}=O(),T=Mn(),V=be(!0),s=p.useState("parent"),w=p.useState("floatingRootContext"),S=p.useState("floatingTreeRoot"),j=p.useState("mounted"),N=p.useState("open"),_=p.useState("modal"),D=p.useState("openMethod"),F=p.useState("activeTriggerElement"),$=p.useState("transitionStatus"),Y=p.useState("positionerElement"),Q=p.useState("instantType"),K=p.useState("hasViewport"),k=p.useState("lastOpenChangeReason"),Z=p.useState("floatingNodeId"),re=p.useState("floatingParentNodeId"),ve=w.useState("domReferenceElement"),le=Ce.useRef(null),ie=no(Y,!1,!1),ge=i,Re=m,Pe=R,z=r,ae=c;s.type==="context-menu"&&(ge=i??s.context?.anchor,z=z??"start",!l&&z!=="center"&&(Pe=e.alignOffset??2,Re=e.sideOffset??-5));let ue=l,xe=z;s.type==="menu"?(ue=ue??"inline-end",xe=xe??"start",ae=e.collisionAvoidance??so):s.type==="menubar"&&(ue=ue??(s.context.orientation==="vertical"?"inline-end":"bottom"),xe=xe??"start");let Me=s.type==="context-menu",se=Fo({anchor:ge,floatingRootContext:w,positionMethod:V?"fixed":u,mounted:j,side:ue,sideOffset:Re,align:xe,alignOffset:Pe,arrowPadding:Me?0:M,collisionBoundary:g,collisionPadding:x,sticky:v,nodeId:Z,keepMounted:T,disableAnchorTracking:P,collisionAvoidance:ae,shiftCrossAxis:Me&&!("side"in ae&&ae.side==="flip"),externalTree:S,adaptiveOrigin:K?Lo:void 0});Ce.useEffect(()=>{function B(A){A.open&&(A.parentNodeId===Z&&p.set("hoverEnabled",!1),A.nodeId!==Z&&A.parentNodeId===p.select("floatingParentNodeId")&&p.setOpen(!1,W(y.siblingOpen)))}return n(B,"onMenuOpenChange"),S.events.on("menuopenchange",B),()=>{S.events.off("menuopenchange",B)}},[p,S.events,Z]),Ce.useEffect(()=>{if(p.select("floatingParentNodeId")==null)return;function B(A){if(A.open||A.nodeId!==p.select("floatingParentNodeId"))return;let Ie=A.reason??y.siblingOpen;p.setOpen(!1,W(Ie))}return n(B,"onParentClose"),S.events.on("menuopenchange",B),()=>{S.events.off("menuopenchange",B)}},[S.events,p]);let ce=Ne();Ce.useEffect(()=>{N||ce.clear()},[N,ce]),Ce.useEffect(()=>{function B(A){if(!(!N||A.nodeId!==p.select("floatingParentNodeId")))if(A.target&&F&&F!==A.target){let Ie=p.select("closeDelay");Ie>0?ce.isStarted()||ce.start(Ie,()=>{p.setOpen(!1,W(y.siblingOpen))}):p.setOpen(!1,W(y.siblingOpen))}else ce.clear()}return n(B,"onItemHover"),S.events.on("itemhover",B),()=>{S.events.off("itemhover",B)}},[S.events,N,F,p,ce]),Ce.useEffect(()=>{let B={open:N,nodeId:Z,parentNodeId:re,reason:p.select("lastOpenChangeReason")};S.events.emit("menuopenchange",B)},[S.events,N,p,Z,re]),Ee(()=>{let B=ve,A=le.current;if(B&&(le.current=B),A&&B&&B!==A){p.set("instantType",void 0);let Ie=new AbortController;return ie(()=>{p.set("instantType","trigger-change")},Ie.signal),()=>{Ie.abort()}}},[ve,ie,p]);let De={open:N,side:se.side,align:se.align,anchorHidden:se.anchorHidden,nested:s.type==="menu",instant:Q},Se=s.type==="menubar"&&s.context.modal,me=_&&k!==y.triggerHover;jo(N&&(Se||me),D==="touch",Y,F);let Ae=Ho(e,De,{styles:se.positionerStyles,transitionStatus:$,props:b,refs:[o,p.useStateSetter("positionerElement")],hidden:!j,inert:!N}),Ve=j&&s.type!=="menu"&&(s.type!=="menubar"&&_&&k!==y.triggerHover||s.type==="menubar"&&s.context.modal),G=null;return s.type==="menubar"?G=s.context.contentElement:s.type===void 0&&(G=F),(0,$e.jsxs)(Vt.Provider,{value:se,children:[Ve&&(0,$e.jsx)(Go,{ref:s.type==="context-menu"||s.type==="nested-context-menu"?s.context.internalBackdropRef:null,inert:Vo(!N),cutout:G}),(0,$e.jsx)(uo,{id:Z,children:(0,$e.jsx)(Wo,{elementsRef:p.context.itemDomElements,labelsRef:p.context.itemLabels,children:Ae})})]})},"MenuPositioner"));var ke=f(C(),1);var Ct=f(C(),1);var Ht=Ct.createContext(void 0);function vn(){let t=Ct.useContext(Ht);if(t===void 0)throw new Error(L(34));return t}n(vn,"useMenuRadioGroupContext");var jt=f(fe(),1);var In=ke.memo(ke.forwardRef(n(function(e,o){let{render:i,className:u,value:a,defaultValue:d,onValueChange:l,disabled:r=!1,style:m,"aria-labelledby":R,...g}=e,[x,M]=ke.useState(void 0),[v,P]=ot({controlled:a,default:d,name:"MenuRadioGroup"}),c=Le((T,V)=>{l?.(T,V),!V.isCanceled&&P(T)}),b=I("div",e,{state:{disabled:r},ref:o,props:{role:"group","aria-labelledby":R??x,"aria-disabled":r||void 0,...g}}),p=ke.useMemo(()=>({value:v,setValue:c,disabled:r}),[v,c,r]);return(0,jt.jsx)(Xe.Provider,{value:M,children:(0,jt.jsx)(Ht.Provider,{value:p,children:b})})},"MenuRadioGroup")));var It=f(C(),1);var vt=f(C(),1);var Yt=vt.createContext(void 0);function En(){let t=vt.useContext(Yt);if(t===void 0)throw new Error(L(35));return t}n(En,"useMenuRadioItemContext");var yn=f(fe(),1);var Pn=It.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!1,value:R,style:g,...x}=e,M=de({label:d}),v=X(!0),P=oe(a),{store:c}=O(),h=c.useState("isActive",M.index),b=c.useState("itemProps"),{value:p,setValue:T,disabled:V}=vn(),s=V||r,w=p===R,{getItemProps:S,itemRef:j}=Oe({closeOnClick:m,disabled:s,highlighted:h,id:P,store:c,nativeButton:l,nodeId:v?.context.nodeId,itemMetadata:Ye}),N=It.useMemo(()=>({disabled:s,highlighted:h,checked:w}),[s,h,w]);function _(F){let $=W(y.itemPress,F.nativeEvent,void 0,{preventUnmountOnClose(){}});T(R,$)}n(_,"handleClick");let D=I("div",e,{state:N,stateAttributesMapping:Te,props:[b,{role:"menuitemradio","aria-checked":w,onClick:_},x,S],ref:[j,o,M.ref]});return(0,yn.jsx)(Yt.Provider,{value:N,children:D})},"MenuRadioItem"));var Et=f(C(),1);var Sn=Et.forwardRef(n(function(e,o){let{render:i,className:u,style:a,keepMounted:d=!1,...l}=e,r=En(),m=Et.useRef(null),{transitionStatus:R,setMounted:g}=tt(r.checked);Ge({open:r.checked,ref:m,onComplete(){r.checked||g(!1)}});let x={checked:r.checked,disabled:r.disabled,highlighted:r.highlighted,transitionStatus:R};return I("span",e,{state:x,stateAttributesMapping:Te,ref:[o,m],props:{"aria-hidden":!0,...l},enabled:d||r.checked})},"MenuRadioItemIndicator"));var H=f(C(),1);var yt=f(C(),1);var qn=yt.createContext(null);function Pt(t){let e=yt.useContext(qn);if(e===null&&!t)throw new Error(L(5));return e}n(Pt,"useMenubarContext");var qe=f(C(),1);var Qn={...No,disabled:U(t=>t.parent.type==="menubar"&&t.parent.context.disabled||t.disabled),modal:U(t=>(t.parent.type===void 0||t.parent.type==="context-menu")&&(t.modal??!0)),openMethod:U(t=>t.openMethod),allowMouseEnter:U(t=>t.allowMouseEnter),highlightItemOnHover:U(t=>t.highlightItemOnHover),stickIfOpen:U(t=>t.stickIfOpen),parent:U(t=>t.parent),rootId:U(t=>t.parent.type==="menu"?t.parent.store.select("rootId"):t.parent.type!==void 0?t.parent.context.rootId:t.rootId),activeIndex:U(t=>t.activeIndex),isActive:U((t,e)=>t.activeIndex===e),hoverEnabled:U(t=>t.hoverEnabled),instantType:U(t=>t.instantType),lastOpenChangeReason:U(t=>t.openChangeReason),floatingTreeRoot:U(t=>t.parent.type==="menu"?t.parent.store.select("floatingTreeRoot"):t.floatingTreeRoot),floatingNodeId:U(t=>t.floatingNodeId),floatingParentNodeId:U(t=>t.floatingParentNodeId),itemProps:U(t=>t.itemProps),closeDelay:U(t=>t.closeDelay),hasViewport:U(t=>t.hasViewport),keyboardEventRelay:U(t=>{if(t.keyboardEventRelay)return t.keyboardEventRelay;if(t.parent.type==="menu")return t.parent.store.select("keyboardEventRelay")})},ze=class t extends go{static{n(this,"MenuStore")}constructor(e){super({...Zn(),...e},{positionerRef:qe.createRef(),popupRef:qe.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:qe.createRef(),beforeContentFocusGuardRef:qe.createRef(),onOpenChangeComplete:void 0,triggerElements:new Po},Qn),this.unsubscribeParentListener=this.observe("parent",o=>{if(this.unsubscribeParentListener?.(),o.type==="menu"){let i=o.store.select("rootId"),u=o.store.select("floatingTreeRoot"),a=o.store.select("keyboardEventRelay");this.unsubscribeParentListener=o.store.subscribe(()=>{let d=o.store.select("rootId"),l=o.store.select("floatingTreeRoot"),r=o.store.select("keyboardEventRelay");i===d&&u===l&&a===r||(i=d,u=l,a=r,this.notifyAll())}),this.context.allowMouseUpTriggerRef=o.store.context.allowMouseUpTriggerRef;return}o.type!==void 0&&(this.context.allowMouseUpTriggerRef=o.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(e,o){this.state.floatingRootContext.context.events.emit("setOpen",{open:e,eventDetails:o})}static useStore(e,o){let i=Qt(()=>new t(o)).current;return e??i}unsubscribeParentListener=null};function Zn(){return{...So(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new nt,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:pe,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}n(Zn,"createInitialState");var St=f(C(),1);var Kt=St.createContext(void 0);function Nt(){return St.useContext(Kt)}n(Nt,"useMenuSubmenuRootContext");var $t=f(fe(),1);var Ot=mo(n(function(e){let{children:o,open:i,onOpenChange:u,onOpenChangeComplete:a,defaultOpen:d=!1,disabled:l=!1,modal:r,loopFocus:m=!0,orientation:R="vertical",actionsRef:g,closeParentOnEsc:x=!1,handle:M,triggerId:v,defaultTriggerId:P=null,highlightItemOnHover:c=!0}=e,h=be(!0),b=O(!0),p=Pt(!0),T=Nt(),V=H.useMemo(()=>T&&b?{type:"menu",store:b.store}:p?{type:"menubar",context:p}:h&&!b?{type:"context-menu",context:h}:{type:void 0},[h,b,p,T]),s=ze.useStore(M?.store,{open:d,openProp:i,activeTriggerId:P,triggerIdProp:v,parent:V});Co(s,i,d,P),s.useControlledProp("openProp",i),s.useControlledProp("triggerIdProp",v),s.useContextCallback("onOpenChangeComplete",a);let w=wt(),S=wt(),j=s.useState("floatingTreeRoot"),N=st(j),_=rt(),D=s.useState("open"),F=s.useState("activeTriggerElement"),$=s.useState("positionerElement"),Y=s.useState("hoverEnabled"),Q=s.useState("disabled"),K=s.useState("lastOpenChangeReason"),k=s.useState("parent"),Z=s.useState("activeIndex"),re=s.useState("payload"),ve=s.useState("floatingParentNodeId"),le=H.useRef(null),ie=H.useRef(k.type!=="context-menu"),ge=Ne(),Re=H.useRef(!0),Pe=Ne(),z=ve!=null,{openMethod:ae,triggerProps:ue}=Ao(D);s.useSyncedValues({disabled:l,highlightItemOnHover:c,modal:k.type===void 0?r:void 0,openMethod:ae,rootId:w}),Io(s);let{forceUnmount:xe}=Eo(D,s,()=>{s.update({allowMouseEnter:!1,stickIfOpen:!0})});Ee(()=>{h&&!b?s.update({parent:{type:"context-menu",context:h},floatingNodeId:N,floatingParentNodeId:_}):b&&s.update({floatingNodeId:N,floatingParentNodeId:_})},[h,b,N,_,s]),H.useEffect(()=>{if(D||(le.current=null),k.type==="context-menu"){if(!D){ge.clear(),ie.current=!1;return}ge.start(500,()=>{ie.current=!0})}},[ge,D,k.type]),Ee(()=>{!D&&!Y&&s.set("hoverEnabled",!0)},[D,Y,s]);let Me=Le((E,J)=>{let te=J.reason;if(D===E&&J.trigger===F&&K===te)return;let Yn=bo(J);if(!E&&J.trigger==null&&(J.trigger=F??void 0),u?.(E,J),J.isCanceled)return;s.state.floatingRootContext.dispatchOpenChange(E,J);let Ze=J.event;if(E===!1&&Ze?.type==="click"&&Ze.pointerType==="touch"&&!Re.current)return;E&&te===y.triggerFocus?(Re.current=!1,Pe.start(300,()=>{Re.current=!0})):(Re.current=!0,Pe.clear());let Xt=(te===y.triggerPress||te===y.itemPress)&&Ze.detail===0&&Ze?.isTrusted,Kn=!E&&(te===y.escapeKey||te==null),qt={open:E,openChangeReason:te};le.current=J.event??null,ho(qt,E,J.trigger,Yn()),s.update(qt),k.type==="menubar"&&(te===y.triggerFocus||te===y.focusOut||te===y.triggerHover||te===y.listNavigation||te===y.siblingOpen)?s.set("instantType","group"):Xt||Kn?s.set("instantType",Xt?"click":"dismiss"):s.set("instantType",void 0)}),se=Ro({popupStore:s,floatingId:S,nested:_!=null,onOpenChange:Me}),ce=se.context.events;H.useEffect(()=>{let E=n(({open:J,eventDetails:te})=>Me(J,te),"handleSetOpenEvent");return ce.on("setOpen",E),()=>{ce?.off("setOpen",E)}},[ce,Me]);let De=H.useCallback(()=>{s.setOpen(!1,W(y.imperativeAction))},[s]);H.useImperativeHandle(g,()=>({unmount:xe,close:De}),[xe,De]);let Se;k.type==="context-menu"&&(Se=k.context),H.useImperativeHandle(Se?.positionerRef,()=>$,[$]),H.useImperativeHandle(Se?.actionsRef,()=>({setOpen:Me}),[Me]);let me=lo(se,{enabled:!Q,bubbles:{escapeKey:x&&k.type==="menu"},outsidePress(){return k.type!=="context-menu"||le.current?.type==="contextmenu"?!0:ie.current},externalTree:z?j:void 0}),Ae=Bo(),Ve=H.useCallback(E=>{s.select("activeIndex")!==E&&s.set("activeIndex",E)},[s]),G=ko(se,{enabled:!Q,listRef:s.context.itemDomElements,activeIndex:Z,nested:k.type!==void 0,loopFocus:m,orientation:R,parentOrientation:k.type==="menubar"?k.context.orientation:void 0,rtl:Ae==="rtl",disabledIndices:Je,onNavigate:Ve,openOnArrowKeyDown:k.type!=="context-menu",externalTree:z?j:void 0,focusItemOnHover:c}),B=H.useCallback(E=>{s.context.typingRef.current=E},[s]),A=wo(se,{enabled:!Q,listRef:s.context.itemLabels,elementsRef:s.context.itemDomElements,activeIndex:Z,resetMs:500,onMatch:n(E=>{D&&E!==Z&&s.set("activeIndex",E)},"onMatch"),onTyping:B}),Ie=H.useMemo(()=>{let E=he(A.reference,G.reference,me.reference,{onMouseMove(){s.set("allowMouseEnter",!0)}},ue);return E["aria-haspopup"]="menu",E["aria-expanded"]=D,E},[s,A.reference,G.reference,me.reference,ue,D]),Gn=H.useMemo(()=>{let E=he(G.trigger,me.trigger,ue);return E["aria-haspopup"]="menu",E["aria-expanded"]=!1,E},[G.trigger,me.trigger,ue]),Un=H.useMemo(()=>he(xo,{id:S,role:"menu","aria-labelledby":F?.id,onMouseMove(){s.set("allowMouseEnter",!0),k.type==="menu"&&s.set("hoverEnabled",!1)},onClick(){s.select("hoverEnabled")&&s.set("hoverEnabled",!1)},onKeyDown(E){let J=s.select("keyboardEventRelay");J&&!E.isPropagationStopped()&&J(E)}},A.floating,G.floating,me.floating),[F,S,k.type,s,A.floating,G.floating,me.floating]),Hn=G.item??pe;yo(s,{floatingRootContext:se,activeTriggerProps:Ie,inactiveTriggerProps:Gn,popupProps:Un,itemProps:Hn});let jn=H.useMemo(()=>({store:s,parent:V}),[s,V]),Wt=(0,$t.jsx)(Bt.Provider,{value:jn,children:typeof o=="function"?o({payload:re}):o});return k.type===void 0||k.type==="context-menu"?(0,$t.jsx)(co,{externalTree:j,children:Wt}):Wt},"MenuRoot"));var Nn=f(C(),1);var zt=f(fe(),1);function On(t){let e=O().store,o=Nn.useMemo(()=>({parentMenu:e}),[e]);return(0,zt.jsx)(Kt.Provider,{value:o,children:(0,zt.jsx)(Ot,{...t})})}n(On,"MenuSubmenuRoot");var q=f(C(),1);var Tn=f(C(),1);function kn(t={}){let{highlightItemOnHover:e,highlightedIndex:o,onHighlightedIndexChange:i}=ct(),{ref:u,index:a}=de(t),d=o===a,l=Tn.useRef(null),r=et(u,l);return{compositeProps:{tabIndex:d?0:-1,onFocus(){i(a)},onMouseMove(){let R=l.current;if(!e||!R)return;let g=R.hasAttribute("disabled")||R.ariaDisabled==="true";!d&&!g&&R.focus()}},compositeRef:r,index:a}}n(kn,"useCompositeItem");function wn(t){let{render:e,className:o,style:i,state:u=pe,props:a=Je,refs:d=Je,metadata:l,stateAttributesMapping:r,tag:m="div",...R}=t,{compositeProps:g,compositeRef:x}=kn({metadata:l});return I(m,t,{state:u,ref:[...d,x],props:[g,...a,R],stateAttributesMapping:r})}n(wn,"CompositeItem");function Jt(t){if(Zt(t)&&t.hasAttribute("data-rootownerid"))return t.getAttribute("data-rootownerid")??void 0;if(!eo(t))return Jt(to(t))}n(Jt,"findRootOwnerId");var Tt=f(C(),1);function _n(t){let{enabled:e=!0,mouseDownAction:o,open:i}=t,u=Tt.useRef(!1);return Tt.useMemo(()=>e?{onMouseDown:n(a=>{(o==="open"&&!i||o==="close"&&i)&&(u.current=!0,We(a.currentTarget).addEventListener("click",()=>{u.current=!1},{once:!0}))},"onMouseDown"),onClick:n(a=>{u.current&&(u.current=!1,a.preventBaseUIHandler())},"onClick")}:pe,[e,o,i])}n(_n,"useMixedToggleClickHandler");var we=f(fe(),1);var kt=2,Dn=fo(n(function(e,o){let{render:i,className:u,style:a,disabled:d=!1,nativeButton:l=!0,id:r,openOnHover:m,delay:R=100,closeDelay:g=0,handle:x,payload:M,...v}=e,P=O(!0),c=x?.store??P?.store;if(!c)throw new Error(L(85));let h=oe(r),b=c.useState("isTriggerActive",h),p=c.useState("floatingRootContext"),T=c.useState("isOpenedByTrigger",h),V=c.useState("triggerPopupId",h),s=q.useRef(null),w=tr(),S=ct(!0),j=ao(),N=q.useMemo(()=>j??new nt,[j]),_=st(N),D=rt(),{registerTrigger:F,isMountedByThisTrigger:$}=vo(h,s,c,{payload:M,closeDelay:g,parent:w,floatingTreeRoot:N,floatingNodeId:_,floatingParentNodeId:D,keyboardEventRelay:S?.relayKeyboardEvent}),Y=w.type==="menubar",Q=c.useState("disabled"),K=d||Q||Y&&w.context.disabled,{getButtonProps:k,buttonRef:Z}=Ue({disabled:K,native:l});q.useEffect(()=>{!T&&w.type===void 0&&(c.context.allowMouseUpTriggerRef.current=!1)},[c,T,w.type]);let re=q.useRef(null),ve=Ne(),le=Le(G=>{if(!re.current)return;ve.clear(),c.context.allowMouseUpTriggerRef.current=!1;let B=G.target;if(_t(re.current,B)||_t(c.select("positionerElement"),B)||B===re.current||B!=null&&Jt(B)===c.select("rootId"))return;let A=Xo(re.current);G.clientX>=A.left-kt&&G.clientX<=A.right+kt&&G.clientY>=A.top-kt&&G.clientY<=A.bottom+kt||N.events.emit("close",{domEvent:G,reason:y.cancelOpen})});q.useEffect(()=>{T&&c.select("lastOpenChangeReason")===y.triggerHover&&We(re.current).addEventListener("mouseup",le,{once:!0})},[T,le,c]);let ie=Y&&w.context.hasSubmenuOpen,Re=at(p,{enabled:(m??ie)&&!K&&w.type!=="context-menu"&&(!Y||ie&&!$),handleClose:ut({blockPointerEvents:!Y}),mouseOnly:!0,move:!1,restMs:w.type===void 0?R:void 0,delay:{close:g},triggerElementRef:s,externalTree:N,isActiveTrigger:b,isClosing:n(()=>c.select("transitionStatus")==="ending","isClosing")}),Pe=er(T,c.select("lastOpenChangeReason")),z=it(p,{enabled:!K&&w.type!=="context-menu",event:T&&Y?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:w.type===void 0?Pe:!1}),ae=Oo(p,{enabled:!K&&ie}),ue=_n({open:T,enabled:Y,mouseDownAction:"open"}),xe=q.useMemo(()=>he(ae.reference,z.reference),[ae.reference,z.reference]),Me=c.useState("triggerProps",$),{preFocusGuardRef:se,handlePreFocusGuardFocus:ce,handleFocusTargetFocus:De}=Do(c,s),Se={disabled:K,open:T},me=[re,o,Z,F,s],Ae=[xe,Re??pe,Me,{"aria-haspopup":"menu","aria-controls":V,id:h,onMouseDown:n(G=>{if(c.select("open"))return;ve.start(200,()=>{c.context.allowMouseUpTriggerRef.current=!0}),We(G.currentTarget).addEventListener("mouseup",le,{once:!0})},"onMouseDown")},Y?{role:"menuitem"}:{},ue,v,k],Ve=I("button",e,{enabled:!Y,stateAttributesMapping:At,state:Se,ref:me,props:Ae});return Y?(0,we.jsx)(wn,{tag:"button",render:i,className:u,style:a,state:Se,refs:me,props:Ae,stateAttributesMapping:At}):T?(0,we.jsxs)(q.Fragment,{children:[(0,we.jsx)(Dt,{ref:se,onFocus:ce},`${h}-pre-focus-guard`),(0,we.jsx)(q.Fragment,{children:Ve},h),(0,we.jsx)(Dt,{ref:c.context.triggerFocusTargetRef,onFocus:De},`${h}-post-focus-guard`)]}):(0,we.jsx)(q.Fragment,{children:Ve},h)},"MenuTrigger"));function er(t,e){let o=Ne(),[i,u]=q.useState(!1);return Ee(()=>{t&&e==="trigger-hover"?(u(!0),o.start(500,()=>{u(!1)})):t||(o.clear(),u(!1))},[t,e,o]),i}n(er,"useStickIfOpen");function tr(){let t=be(!0),e=O(!0),o=Pt(!0);return q.useMemo(()=>o?{type:"menubar",context:o}:t&&!e?{type:"context-menu",context:t}:{type:void 0},[t,e,o])}n(tr,"useMenuParent");var Vn=f(C(),1);var An=(function(t){return t.popupWidth="--popup-width",t.popupHeight="--popup-height",t})({});var or={activationDirection:n(t=>t?{"data-activation-direction":t}:null,"activationDirection")},Bn=Vn.forwardRef(n(function(e,o){let{render:i,className:u,style:a,children:d,...l}=e,{store:r}=O(),{side:m}=X(),R=r.useState("instantType"),{children:g,state:x}=$o({store:r,side:m,cssVars:An,children:d}),M={activationDirection:x.activationDirection,transitioning:x.transitioning,instant:R};return I("div",e,{state:M,ref:o,props:[l,{children:g}],stateAttributesMapping:or})},"MenuViewport"));var ye=f(C(),1);var Ln=ye.forwardRef(n(function(e,o){let{render:i,className:u,style:a,label:d,id:l,nativeButton:r=!1,openOnHover:m=!0,delay:R=100,closeDelay:g=0,disabled:x=!1,...M}=e,v=de({label:d}),P=X(),{store:c}=O(),h=oe(l),b=c.useState("open"),p=c.useState("floatingRootContext"),T=c.useState("floatingTreeRoot"),V=c.useState("triggerPopupId",h),s=Mo(h,c),w=ye.useCallback(z=>{let ae=s(z);return z!==null&&c.select("open")&&c.select("activeTriggerId")==null&&c.update({activeTriggerId:h,activeTriggerElement:z,closeDelay:g}),ae},[s,g,c,h]),S=ye.useRef(null),j=ye.useCallback(z=>{S.current=z,c.set("activeTriggerElement",z)},[c]),N=Nt();if(!N?.parentMenu)throw new Error(L(37));c.useSyncedValue("closeDelay",g);let _=N.parentMenu,D=c.useState("disabled"),F=_.useState("disabled"),$=x||D||F,Y=_.useState("itemProps"),Q=_.useState("isActive",v.index),K=ye.useMemo(()=>({type:"submenu-trigger",setActive(){_.select("highlightItemOnHover")&&_.set("activeIndex",v.index)}}),[_,v.index]),{getItemProps:k,itemRef:Z}=Oe({closeOnClick:!1,disabled:$,highlighted:Q,id:h,store:c,typingRef:_.context.typingRef,nativeButton:r,itemMetadata:K,nodeId:P?.context.nodeId}),re=c.useState("hoverEnabled"),ve=at(p,{enabled:re&&m&&!$,handleClose:ut({blockPointerEvents:!0}),mouseOnly:!0,move:!0,restMs:R,delay:{open:R,close:g},shouldOpen:R>0?()=>_.select("allowMouseEnter"):void 0,triggerElementRef:S,externalTree:T,isClosing:n(()=>c.select("transitionStatus")==="ending","isClosing")}),ie=it(p,{enabled:!$,event:"mousedown",toggle:!m,ignoreMouse:m,stickIfOpen:!1}).reference??pe,ge=c.useState("triggerProps",!0);return delete ge.id,I("div",e,{state:{disabled:$,highlighted:Q,open:b},stateAttributesMapping:_o,props:[ie,ve,ge,Y,{"aria-controls":V,tabIndex:b||Q?0:-1,onBlur(){Q&&_.set("activeIndex",null)}},M,k],ref:[o,v.ref,Z,w,j]})},"MenuSubmenuTrigger"));var Qe=class{static{n(this,"MenuHandle")}constructor(){this.store=new ze}open(e){let o=e?this.store.context.triggerElements.getById(e):void 0;if(e&&!o)throw new Error(L(83,e));this.store.setOpen(!0,W("imperative-action",void 0,o))}close(){this.store.setOpen(!1,W("imperative-action",void 0,void 0))}get isOpen(){return this.store.select("open")}};function Fn(){return new Qe}n(Fn,"createMenuHandle");var ee=f(fe(),1);function Fc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Root,{"data-slot":"dropdown-menu",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Fc,"_");function Gc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Trigger,{"data-slot":"dropdown-menu-trigger",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Gc,"y");function Uc({align:t="start",alignOffset:e=0,side:o="bottom",sideOffset:i=4,className:u,...a}){return(0,ee.jsx)(ne.Portal,{children:(0,ee.jsx)(ne.Positioner,{className:"isolate z-50 outline-none",align:t,alignOffset:e,side:o,sideOffset:i,children:(0,ee.jsx)(ne.Popup,{"data-slot":"dropdown-menu-content",className:Be("z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-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:overflow-hidden 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!",u),...a})})})}n(Uc,"I");function Hc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Group,{"data-slot":"dropdown-menu-group",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Hc,"$");function jc(t){let e=(0,_e.c)(10),o,i,u;e[0]!==t?({className:o,inset:i,...u}=t,e[0]=t,e[1]=o,e[2]=i,e[3]=u):(o=e[1],i=e[2],u=e[3]);let a;e[4]!==o?(a=Be("px-2 py-2 text-xs text-muted-foreground data-inset:ps-7",o),e[4]=o,e[5]=a):a=e[5];let d;return e[6]!==i||e[7]!==u||e[8]!==a?(d=(0,ee.jsx)(ne.GroupLabel,{"data-slot":"dropdown-menu-label","data-inset":i,className:a,...u}),e[6]=i,e[7]=u,e[8]=a,e[9]=d):d=e[9],d}n(jc,"O");function Yc({className:t,inset:e,variant:o="default",...i}){return(0,ee.jsx)(ne.Item,{"data-slot":"dropdown-menu-item","data-inset":e,"data-variant":o,className:Be("group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-md px-2 py-2 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:ps-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",t),...i})}n(Yc,"P");function Kc(t){let e=(0,_e.c)(15),o,i,u,a,d;e[0]!==t?({className:u,children:i,checked:o,inset:a,...d}=t,e[0]=t,e[1]=o,e[2]=i,e[3]=u,e[4]=a,e[5]=d):(o=e[1],i=e[2],u=e[3],a=e[4],d=e[5]);let l;e[6]!==u?(l=Be("relative flex 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 focus:**:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",u),e[6]=u,e[7]=l):l=e[7];let r;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=(0,ee.jsx)("span",{className:"pointer-events-none absolute end-2 flex items-center justify-center","data-slot":"dropdown-menu-checkbox-item-indicator",children:(0,ee.jsx)(ne.CheckboxItemIndicator,{children:(0,ee.jsx)(Jo,{icon:zo,strokeWidth:2})})}),e[8]=r):r=e[8];let m;return e[9]!==o||e[10]!==i||e[11]!==a||e[12]!==d||e[13]!==l?(m=(0,ee.jsxs)(ne.CheckboxItem,{"data-slot":"dropdown-menu-checkbox-item","data-inset":a,className:l,checked:o,...d,children:[r,i]}),e[9]=o,e[10]=i,e[11]=a,e[12]=d,e[13]=l,e[14]=m):m=e[14],m}n(Kc,"j");function $c(t){let e=(0,_e.c)(8),o,i;e[0]!==t?({className:o,...i}=t,e[0]=t,e[1]=o,e[2]=i):(o=e[1],i=e[2]);let u;e[3]!==o?(u=Be("-mx-1 h-px bg-border",o),e[3]=o,e[4]=u):u=e[4];let a;return e[5]!==i||e[6]!==u?(a=(0,ee.jsx)(ne.Separator,{"data-slot":"dropdown-menu-separator",className:u,...i}),e[5]=i,e[6]=u,e[7]=a):a=e[7],a}n($c,"C");export{Fc as a,Gc as b,Uc as c,Hc as d,jc as e,Yc as f,Kc as g,$c as h};
1
+ import{b as de,c as Wo,d as Xo}from"./chunk-SD4BERSA.js";import{a as qo}from"./chunk-IC4L6G56.js";import{a as So,c as No,d as Do,e as $o}from"./chunk-I6A5C46N.js";import{A as lo,D as U,E as mo,F as fo,I as go,K as Ro,L as xo,O as Mo,P as ho,Q as bo,S as Co,T as vo,U as Io,V as Eo,W as yo,Y as Po,_ as Oo,aa as To,ba as at,ca as ko,da as wo,ea as ut,ha as _o,ia as At,ja as He,l as Dt,la as Ao,ma as Vo,n as ro,na as Lo,o as so,oa as Fo,pa as Go,q as io,qa as Uo,r as nt,ra as Ho,s as rt,t as ao,ta as jo,u as st,ua as Yo,v as uo,va as Ko,w as co,x as po,y as it}from"./chunk-2QSHLBCO.js";import{b as Bo}from"./chunk-BGBLQ563.js";import{i as zo,k as Jo}from"./chunk-QBWRC5YX.js";import{C as Ne,I as Fe,J as no,K as Ge,L as tt,M as ot,O as y,P as W,d as wt,e as oe,h as We,i as oo,p as _t}from"./chunk-CFPZYHPY.js";import{a as ct,b as Ue}from"./chunk-DJZYD5I5.js";import{a as Ee,c as Le,i as Zt,q as eo,t as to}from"./chunk-2OUPA2WJ.js";import{a as he,c as L,d as Qt,e as et,h as Je,i as pe,j as I}from"./chunk-6ST5ECQA.js";import{a as n,d as $n,e as f,f as C,g as zn,h as fe,j as Be}from"./chunk-3XIESWL4.js";var _e=f(zn(),1),Dc=f(C(),1);var ne={};$n(ne,{Arrow:()=>Zo,Backdrop:()=>tn,CheckboxItem:()=>sn,CheckboxItemIndicator:()=>an,Group:()=>pn,GroupLabel:()=>ln,Handle:()=>Qe,Item:()=>fn,LinkItem:()=>gn,Popup:()=>xn,Portal:()=>bn,Positioner:()=>Cn,RadioGroup:()=>In,RadioItem:()=>Pn,RadioItemIndicator:()=>Sn,Root:()=>Ot,Separator:()=>qo,SubmenuRoot:()=>On,SubmenuTrigger:()=>Ln,Trigger:()=>Dn,Viewport:()=>Bn,createHandle:()=>Fn});var Qo=f(C(),1);var pt=f(C(),1);var Vt=pt.createContext(void 0);function X(t){let e=pt.useContext(Vt);if(e===void 0&&!t)throw new Error(L(33));return e}n(X,"useMenuPositionerContext");var dt=f(C(),1);var Bt=dt.createContext(void 0);function O(t){let e=dt.useContext(Bt);if(e===void 0&&!t)throw new Error(L(36));return e}n(O,"useMenuRootContext");var Zo=Qo.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,{store:l}=O(),{arrowRef:r,side:m,align:R,arrowUncentered:g,arrowStyles:x}=X(),v={open:l.useState("open"),side:m,align:R,uncentered:g};return I("div",e,{ref:[r,o],stateAttributesMapping:He,state:v,props:{style:x,"aria-hidden":!0,...d}})},"MenuArrow"));var en=f(C(),1);var lt=f(C(),1);var Jn=lt.createContext(void 0);function be(t=!0){let e=lt.useContext(Jn);if(e===void 0&&!t)throw new Error(L(25));return e}n(be,"useContextMenuRootContext");var Wn={...He,...Fe},tn=en.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,{store:l}=O(),r=l.useState("open"),m=l.useState("mounted"),R=l.useState("transitionStatus"),g=l.useState("lastOpenChangeReason"),x=be(),M={open:r,transitionStatus:R};return I("div",e,{ref:x?.backdropRef?[o,x.backdropRef]:o,state:M,stateAttributesMapping:Wn,props:[{role:"presentation",hidden:!m,style:{pointerEvents:g===y.triggerHover?"none":void 0,userSelect:"none",WebkitUserSelect:"none"}},d]})},"MenuBackdrop"));var gt=f(C(),1);var mt=f(C(),1);var Lt=mt.createContext(void 0);function on(){let t=mt.useContext(Lt);if(t===void 0)throw new Error(L(30));return t}n(on,"useMenuCheckboxItemContext");var je=f(C(),1);var nn=f(C(),1);function ft(t){let{closeOnClick:e,highlighted:o,id:i,nodeId:u,store:a,typingRef:d,itemRef:l,itemMetadata:r}=t,{events:m}=a.useState("floatingTreeRoot"),R=a.useState("open"),g=be(!0),x=g!==void 0;return nn.useMemo(()=>({id:i,role:"menuitem",tabIndex:R&&o?0:-1,onKeyDown(M){M.key===" "&&d?.current&&M.preventDefault()},onMouseMove(M){u&&m.emit("itemhover",{nodeId:u,target:M.currentTarget})},onClick(M){e&&m.emit("close",{domEvent:M,reason:y.itemPress})},onMouseUp(M){if(g){let v=g.initialCursorPointRef.current;if(g.initialCursorPointRef.current=null,x&&v&&Math.abs(M.clientX-v.x)<=1&&Math.abs(M.clientY-v.y)<=1||x&&!oo.os.mac&&M.button===2)return}l.current&&a.context.allowMouseUpTriggerRef.current&&(!x||M.button===2)&&(!r||r.type==="regular-item")&&l.current.click()}}),[e,o,i,m,u,R,a,d,l,g,x,r])}n(ft,"useMenuItemCommonProps");var Ye={type:"regular-item"};function Oe(t){let{closeOnClick:e,disabled:o=!1,highlighted:i,id:u,store:a,typingRef:d=a.context.typingRef,nativeButton:l,itemMetadata:r,nodeId:m}=t,R=a.useState("disabled"),g=o||R,x=je.useRef(null),{getButtonProps:M,buttonRef:v}=Ue({disabled:g,focusableWhenDisabled:!0,native:l,composite:!0}),P=ft({closeOnClick:e,highlighted:i,id:u,nodeId:m,store:a,typingRef:d,itemRef:x,itemMetadata:r}),c=je.useCallback(b=>he(P,{onMouseEnter(){r.type==="submenu-trigger"&&r.setActive()}},b,M),[P,M,r]),h=et(x,v);return je.useMemo(()=>({getItemProps:c,itemRef:h}),[c,h])}n(Oe,"useMenuItem");var Ft=(function(t){return t.checked="data-checked",t.unchecked="data-unchecked",t.disabled="data-disabled",t.highlighted="data-highlighted",t})({});var Te={checked(t){return t?{[Ft.checked]:""}:{[Ft.unchecked]:""}},...Fe};var rn=f(fe(),1);var sn=gt.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!1,checked:R,defaultChecked:g,onCheckedChange:x,style:M,...v}=e,P=de({label:d}),c=X(!0),h=oe(a),{store:b}=O(),p=b.useState("isActive",P.index),T=b.useState("itemProps"),[V,s]=ot({controlled:R,default:g??!1,name:"MenuCheckboxItem",state:"checked"}),{getItemProps:w,itemRef:S}=Oe({closeOnClick:m,disabled:r,highlighted:p,id:h,store:b,nativeButton:l,nodeId:c?.context.nodeId,itemMetadata:Ye}),j=gt.useMemo(()=>({disabled:r,highlighted:p,checked:V}),[r,p,V]);function N(D){let F=W(y.itemPress,D.nativeEvent,void 0,{preventUnmountOnClose(){}});x?.(!V,F),!F.isCanceled&&s($=>!$)}n(N,"handleClick");let _=I("div",e,{state:j,stateAttributesMapping:Te,props:[T,{role:"menuitemcheckbox","aria-checked":V,onClick:N},v,w],ref:[S,o,P.ref]});return(0,rn.jsx)(Lt.Provider,{value:j,children:_})},"MenuCheckboxItem"));var Rt=f(C(),1);var an=Rt.forwardRef(n(function(e,o){let{render:i,className:u,style:a,keepMounted:d=!1,...l}=e,r=on(),m=Rt.useRef(null),{transitionStatus:R,setMounted:g}=tt(r.checked);Ge({open:r.checked,ref:m,onComplete(){r.checked||g(!1)}});let x={checked:r.checked,disabled:r.disabled,highlighted:r.highlighted,transitionStatus:R};return I("span",e,{state:x,ref:[o,m],stateAttributesMapping:Te,props:{"aria-hidden":!0,...l},enabled:d||r.checked})},"MenuCheckboxItemIndicator"));var Mt=f(C(),1);var xt=f(C(),1);var Xe=xt.createContext(void 0);function un(){let t=xt.useContext(Xe);if(t===void 0)throw new Error(L(31));return t}n(un,"useMenuGroupRootContext");var cn=f(fe(),1);var pn=Mt.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,[l,r]=Mt.useState(void 0),m=I("div",e,{ref:o,props:{role:"group","aria-labelledby":l,...d}});return(0,cn.jsx)(Xe.Provider,{value:r,children:m})},"MenuGroup"));var dn=f(C(),1);var ln=dn.forwardRef(n(function(e,o){let{render:i,className:u,style:a,id:d,...l}=e,r=oe(d),m=un();return Ee(()=>(m(r),()=>{m(void 0)}),[m,r]),I("div",e,{ref:o,props:{id:r,role:"presentation",...l}})},"MenuGroupLabel"));var mn=f(C(),1);var fn=mn.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!0,style:R,...g}=e,x=de({label:d}),M=X(!0),v=oe(a),{store:P}=O(),c=P.useState("isActive",x.index),h=P.useState("itemProps"),{getItemProps:b,itemRef:p}=Oe({closeOnClick:m,disabled:r,highlighted:c,id:v,store:P,nativeButton:l,nodeId:M?.context.nodeId,itemMetadata:Ye});return I("div",e,{state:{disabled:r,highlighted:c},props:[h,g,b],ref:[p,o,x.ref]})},"MenuItem"));var ht=f(C(),1);var gn=ht.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,closeOnClick:l=!1,style:r,...m}=e,R=ht.useRef(null),g=de({label:d}),M=X(!0)?.context.nodeId,v=oe(a),{store:P}=O(),c=P.useState("isActive",g.index),h=P.useState("itemProps"),b=P.context.typingRef,{getButtonProps:p,buttonRef:T}=Ue({native:!1,composite:!0}),V=ft({closeOnClick:l,highlighted:c,id:v,nodeId:M,store:P,typingRef:b,itemRef:R});function s(S){return he(V,S,p)}return n(s,"getItemProps"),I("a",e,{state:{highlighted:c},props:[h,m,s],ref:[R,T,o,g.ref]})},"MenuLinkItem"));var Ke=f(C(),1);var Rn=f(fe(),1);var Xn={...He,...Fe},xn=Ke.forwardRef(n(function(e,o){let{render:i,className:u,style:a,finalFocus:d,...l}=e,{store:r}=O(),{side:m,align:R}=X(),g=Ko(!0)!=null,x=r.useState("open"),M=r.useState("transitionStatus"),v=r.useState("popupProps"),P=r.useState("mounted"),c=r.useState("instantType"),h=r.useState("activeTriggerElement"),b=r.useState("parent"),p=r.useState("lastOpenChangeReason"),T=r.useState("rootId"),V=r.useState("floatingRootContext"),s=r.useState("floatingTreeRoot"),w=r.useState("closeDelay"),S=r.useState("activeTriggerElement"),j=r.useState("hoverEnabled"),N=r.useState("disabled"),_=r.useState("openMethod"),D=b.type==="context-menu";Ge({open:x,ref:r.context.popupRef,onComplete(){x&&r.context.onOpenChangeComplete?.(!0)}}),Ke.useEffect(()=>{function K(k){r.setOpen(!1,W(k.reason,k.domEvent))}return n(K,"handleClose"),s.events.on("close",K),()=>{s.events.off("close",K)}},[s.events,r]),To(V,{enabled:j&&!N&&!D&&b.type!=="menubar",closeDelay:w});let F=Ke.useCallback(K=>{r.set("popupElement",K)},[r]),$={transitionStatus:M,side:m,align:R,open:x,nested:b.type==="menu",instant:c},Y=I("div",e,{state:$,ref:[o,r.context.popupRef,F],stateAttributesMapping:Xn,props:[v,{onKeyDown(K){g&&Yo.has(K.key)&&K.stopPropagation()}},Uo(M),l,{"data-rootownerid":T}]}),Q=b.type===void 0||D;return(h||b.type==="menubar"&&p!==y.outsidePress)&&(Q=!0),(0,Rn.jsx)(po,{context:V,openInteractionType:_,modal:D,disabled:!P,returnFocus:d===void 0?Q:d,initialFocus:b.type!=="menu",restoreFocus:!0,externalTree:b.type!=="menubar"?s:void 0,previousFocusableElement:S,nextFocusableElement:b.type===void 0?r.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:b.type===void 0?r.context.beforeContentFocusGuardRef:void 0,children:Y})},"MenuPopup"));var hn=f(C(),1);var bt=f(C(),1);var Gt=bt.createContext(void 0);function Mn(){let t=bt.useContext(Gt);if(t===void 0)throw new Error(L(32));return t}n(Mn,"useMenuPortalContext");var Ut=f(fe(),1);var bn=hn.forwardRef(n(function(e,o){let{keepMounted:i=!1,...u}=e,{store:a}=O();return a.useState("mounted")||i?(0,Ut.jsx)(Gt.Provider,{value:i,children:(0,Ut.jsx)(io,{ref:o,...u})}):null},"MenuPortal"));var Ce=f(C(),1);var $e=f(fe(),1);var Cn=Ce.forwardRef(n(function(e,o){let{anchor:i,positionMethod:u="absolute",className:a,render:d,side:l,align:r,sideOffset:m=0,alignOffset:R=0,collisionBoundary:g="clipping-ancestors",collisionPadding:x=5,arrowPadding:M=5,sticky:v=!1,disableAnchorTracking:P=!1,collisionAvoidance:c=ro,style:h,...b}=e,{store:p}=O(),T=Mn(),V=be(!0),s=p.useState("parent"),w=p.useState("floatingRootContext"),S=p.useState("floatingTreeRoot"),j=p.useState("mounted"),N=p.useState("open"),_=p.useState("modal"),D=p.useState("openMethod"),F=p.useState("activeTriggerElement"),$=p.useState("transitionStatus"),Y=p.useState("positionerElement"),Q=p.useState("instantType"),K=p.useState("hasViewport"),k=p.useState("lastOpenChangeReason"),Z=p.useState("floatingNodeId"),re=p.useState("floatingParentNodeId"),ve=w.useState("domReferenceElement"),le=Ce.useRef(null),ie=no(Y,!1,!1),ge=i,Re=m,Pe=R,z=r,ae=c;s.type==="context-menu"&&(ge=i??s.context?.anchor,z=z??"start",!l&&z!=="center"&&(Pe=e.alignOffset??2,Re=e.sideOffset??-5));let ue=l,xe=z;s.type==="menu"?(ue=ue??"inline-end",xe=xe??"start",ae=e.collisionAvoidance??so):s.type==="menubar"&&(ue=ue??(s.context.orientation==="vertical"?"inline-end":"bottom"),xe=xe??"start");let Me=s.type==="context-menu",se=Fo({anchor:ge,floatingRootContext:w,positionMethod:V?"fixed":u,mounted:j,side:ue,sideOffset:Re,align:xe,alignOffset:Pe,arrowPadding:Me?0:M,collisionBoundary:g,collisionPadding:x,sticky:v,nodeId:Z,keepMounted:T,disableAnchorTracking:P,collisionAvoidance:ae,shiftCrossAxis:Me&&!("side"in ae&&ae.side==="flip"),externalTree:S,adaptiveOrigin:K?Lo:void 0});Ce.useEffect(()=>{function B(A){A.open&&(A.parentNodeId===Z&&p.set("hoverEnabled",!1),A.nodeId!==Z&&A.parentNodeId===p.select("floatingParentNodeId")&&p.setOpen(!1,W(y.siblingOpen)))}return n(B,"onMenuOpenChange"),S.events.on("menuopenchange",B),()=>{S.events.off("menuopenchange",B)}},[p,S.events,Z]),Ce.useEffect(()=>{if(p.select("floatingParentNodeId")==null)return;function B(A){if(A.open||A.nodeId!==p.select("floatingParentNodeId"))return;let Ie=A.reason??y.siblingOpen;p.setOpen(!1,W(Ie))}return n(B,"onParentClose"),S.events.on("menuopenchange",B),()=>{S.events.off("menuopenchange",B)}},[S.events,p]);let ce=Ne();Ce.useEffect(()=>{N||ce.clear()},[N,ce]),Ce.useEffect(()=>{function B(A){if(!(!N||A.nodeId!==p.select("floatingParentNodeId")))if(A.target&&F&&F!==A.target){let Ie=p.select("closeDelay");Ie>0?ce.isStarted()||ce.start(Ie,()=>{p.setOpen(!1,W(y.siblingOpen))}):p.setOpen(!1,W(y.siblingOpen))}else ce.clear()}return n(B,"onItemHover"),S.events.on("itemhover",B),()=>{S.events.off("itemhover",B)}},[S.events,N,F,p,ce]),Ce.useEffect(()=>{let B={open:N,nodeId:Z,parentNodeId:re,reason:p.select("lastOpenChangeReason")};S.events.emit("menuopenchange",B)},[S.events,N,p,Z,re]),Ee(()=>{let B=ve,A=le.current;if(B&&(le.current=B),A&&B&&B!==A){p.set("instantType",void 0);let Ie=new AbortController;return ie(()=>{p.set("instantType","trigger-change")},Ie.signal),()=>{Ie.abort()}}},[ve,ie,p]);let De={open:N,side:se.side,align:se.align,anchorHidden:se.anchorHidden,nested:s.type==="menu",instant:Q},Se=s.type==="menubar"&&s.context.modal,me=_&&k!==y.triggerHover;jo(N&&(Se||me),D==="touch",Y,F);let Ae=Ho(e,De,{styles:se.positionerStyles,transitionStatus:$,props:b,refs:[o,p.useStateSetter("positionerElement")],hidden:!j,inert:!N}),Ve=j&&s.type!=="menu"&&(s.type!=="menubar"&&_&&k!==y.triggerHover||s.type==="menubar"&&s.context.modal),G=null;return s.type==="menubar"?G=s.context.contentElement:s.type===void 0&&(G=F),(0,$e.jsxs)(Vt.Provider,{value:se,children:[Ve&&(0,$e.jsx)(Go,{ref:s.type==="context-menu"||s.type==="nested-context-menu"?s.context.internalBackdropRef:null,inert:Vo(!N),cutout:G}),(0,$e.jsx)(uo,{id:Z,children:(0,$e.jsx)(Wo,{elementsRef:p.context.itemDomElements,labelsRef:p.context.itemLabels,children:Ae})})]})},"MenuPositioner"));var ke=f(C(),1);var Ct=f(C(),1);var Ht=Ct.createContext(void 0);function vn(){let t=Ct.useContext(Ht);if(t===void 0)throw new Error(L(34));return t}n(vn,"useMenuRadioGroupContext");var jt=f(fe(),1);var In=ke.memo(ke.forwardRef(n(function(e,o){let{render:i,className:u,value:a,defaultValue:d,onValueChange:l,disabled:r=!1,style:m,"aria-labelledby":R,...g}=e,[x,M]=ke.useState(void 0),[v,P]=ot({controlled:a,default:d,name:"MenuRadioGroup"}),c=Le((T,V)=>{l?.(T,V),!V.isCanceled&&P(T)}),b=I("div",e,{state:{disabled:r},ref:o,props:{role:"group","aria-labelledby":R??x,"aria-disabled":r||void 0,...g}}),p=ke.useMemo(()=>({value:v,setValue:c,disabled:r}),[v,c,r]);return(0,jt.jsx)(Xe.Provider,{value:M,children:(0,jt.jsx)(Ht.Provider,{value:p,children:b})})},"MenuRadioGroup")));var It=f(C(),1);var vt=f(C(),1);var Yt=vt.createContext(void 0);function En(){let t=vt.useContext(Yt);if(t===void 0)throw new Error(L(35));return t}n(En,"useMenuRadioItemContext");var yn=f(fe(),1);var Pn=It.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!1,value:R,style:g,...x}=e,M=de({label:d}),v=X(!0),P=oe(a),{store:c}=O(),h=c.useState("isActive",M.index),b=c.useState("itemProps"),{value:p,setValue:T,disabled:V}=vn(),s=V||r,w=p===R,{getItemProps:S,itemRef:j}=Oe({closeOnClick:m,disabled:s,highlighted:h,id:P,store:c,nativeButton:l,nodeId:v?.context.nodeId,itemMetadata:Ye}),N=It.useMemo(()=>({disabled:s,highlighted:h,checked:w}),[s,h,w]);function _(F){let $=W(y.itemPress,F.nativeEvent,void 0,{preventUnmountOnClose(){}});T(R,$)}n(_,"handleClick");let D=I("div",e,{state:N,stateAttributesMapping:Te,props:[b,{role:"menuitemradio","aria-checked":w,onClick:_},x,S],ref:[j,o,M.ref]});return(0,yn.jsx)(Yt.Provider,{value:N,children:D})},"MenuRadioItem"));var Et=f(C(),1);var Sn=Et.forwardRef(n(function(e,o){let{render:i,className:u,style:a,keepMounted:d=!1,...l}=e,r=En(),m=Et.useRef(null),{transitionStatus:R,setMounted:g}=tt(r.checked);Ge({open:r.checked,ref:m,onComplete(){r.checked||g(!1)}});let x={checked:r.checked,disabled:r.disabled,highlighted:r.highlighted,transitionStatus:R};return I("span",e,{state:x,stateAttributesMapping:Te,ref:[o,m],props:{"aria-hidden":!0,...l},enabled:d||r.checked})},"MenuRadioItemIndicator"));var H=f(C(),1);var yt=f(C(),1);var qn=yt.createContext(null);function Pt(t){let e=yt.useContext(qn);if(e===null&&!t)throw new Error(L(5));return e}n(Pt,"useMenubarContext");var qe=f(C(),1);var Qn={...No,disabled:U(t=>t.parent.type==="menubar"&&t.parent.context.disabled||t.disabled),modal:U(t=>(t.parent.type===void 0||t.parent.type==="context-menu")&&(t.modal??!0)),openMethod:U(t=>t.openMethod),allowMouseEnter:U(t=>t.allowMouseEnter),highlightItemOnHover:U(t=>t.highlightItemOnHover),stickIfOpen:U(t=>t.stickIfOpen),parent:U(t=>t.parent),rootId:U(t=>t.parent.type==="menu"?t.parent.store.select("rootId"):t.parent.type!==void 0?t.parent.context.rootId:t.rootId),activeIndex:U(t=>t.activeIndex),isActive:U((t,e)=>t.activeIndex===e),hoverEnabled:U(t=>t.hoverEnabled),instantType:U(t=>t.instantType),lastOpenChangeReason:U(t=>t.openChangeReason),floatingTreeRoot:U(t=>t.parent.type==="menu"?t.parent.store.select("floatingTreeRoot"):t.floatingTreeRoot),floatingNodeId:U(t=>t.floatingNodeId),floatingParentNodeId:U(t=>t.floatingParentNodeId),itemProps:U(t=>t.itemProps),closeDelay:U(t=>t.closeDelay),hasViewport:U(t=>t.hasViewport),keyboardEventRelay:U(t=>{if(t.keyboardEventRelay)return t.keyboardEventRelay;if(t.parent.type==="menu")return t.parent.store.select("keyboardEventRelay")})},ze=class t extends go{static{n(this,"MenuStore")}constructor(e){super({...Zn(),...e},{positionerRef:qe.createRef(),popupRef:qe.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:qe.createRef(),beforeContentFocusGuardRef:qe.createRef(),onOpenChangeComplete:void 0,triggerElements:new Po},Qn),this.unsubscribeParentListener=this.observe("parent",o=>{if(this.unsubscribeParentListener?.(),o.type==="menu"){let i=o.store.select("rootId"),u=o.store.select("floatingTreeRoot"),a=o.store.select("keyboardEventRelay");this.unsubscribeParentListener=o.store.subscribe(()=>{let d=o.store.select("rootId"),l=o.store.select("floatingTreeRoot"),r=o.store.select("keyboardEventRelay");i===d&&u===l&&a===r||(i=d,u=l,a=r,this.notifyAll())}),this.context.allowMouseUpTriggerRef=o.store.context.allowMouseUpTriggerRef;return}o.type!==void 0&&(this.context.allowMouseUpTriggerRef=o.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(e,o){this.state.floatingRootContext.context.events.emit("setOpen",{open:e,eventDetails:o})}static useStore(e,o){let i=Qt(()=>new t(o)).current;return e??i}unsubscribeParentListener=null};function Zn(){return{...So(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new nt,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:pe,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}n(Zn,"createInitialState");var St=f(C(),1);var Kt=St.createContext(void 0);function Nt(){return St.useContext(Kt)}n(Nt,"useMenuSubmenuRootContext");var $t=f(fe(),1);var Ot=mo(n(function(e){let{children:o,open:i,onOpenChange:u,onOpenChangeComplete:a,defaultOpen:d=!1,disabled:l=!1,modal:r,loopFocus:m=!0,orientation:R="vertical",actionsRef:g,closeParentOnEsc:x=!1,handle:M,triggerId:v,defaultTriggerId:P=null,highlightItemOnHover:c=!0}=e,h=be(!0),b=O(!0),p=Pt(!0),T=Nt(),V=H.useMemo(()=>T&&b?{type:"menu",store:b.store}:p?{type:"menubar",context:p}:h&&!b?{type:"context-menu",context:h}:{type:void 0},[h,b,p,T]),s=ze.useStore(M?.store,{open:d,openProp:i,activeTriggerId:P,triggerIdProp:v,parent:V});Co(s,i,d,P),s.useControlledProp("openProp",i),s.useControlledProp("triggerIdProp",v),s.useContextCallback("onOpenChangeComplete",a);let w=wt(),S=wt(),j=s.useState("floatingTreeRoot"),N=st(j),_=rt(),D=s.useState("open"),F=s.useState("activeTriggerElement"),$=s.useState("positionerElement"),Y=s.useState("hoverEnabled"),Q=s.useState("disabled"),K=s.useState("lastOpenChangeReason"),k=s.useState("parent"),Z=s.useState("activeIndex"),re=s.useState("payload"),ve=s.useState("floatingParentNodeId"),le=H.useRef(null),ie=H.useRef(k.type!=="context-menu"),ge=Ne(),Re=H.useRef(!0),Pe=Ne(),z=ve!=null,{openMethod:ae,triggerProps:ue}=Ao(D);s.useSyncedValues({disabled:l,highlightItemOnHover:c,modal:k.type===void 0?r:void 0,openMethod:ae,rootId:w}),Io(s);let{forceUnmount:xe}=Eo(D,s,()=>{s.update({allowMouseEnter:!1,stickIfOpen:!0})});Ee(()=>{h&&!b?s.update({parent:{type:"context-menu",context:h},floatingNodeId:N,floatingParentNodeId:_}):b&&s.update({floatingNodeId:N,floatingParentNodeId:_})},[h,b,N,_,s]),H.useEffect(()=>{if(D||(le.current=null),k.type==="context-menu"){if(!D){ge.clear(),ie.current=!1;return}ge.start(500,()=>{ie.current=!0})}},[ge,D,k.type]),Ee(()=>{!D&&!Y&&s.set("hoverEnabled",!0)},[D,Y,s]);let Me=Le((E,J)=>{let te=J.reason;if(D===E&&J.trigger===F&&K===te)return;let Yn=bo(J);if(!E&&J.trigger==null&&(J.trigger=F??void 0),u?.(E,J),J.isCanceled)return;s.state.floatingRootContext.dispatchOpenChange(E,J);let Ze=J.event;if(E===!1&&Ze?.type==="click"&&Ze.pointerType==="touch"&&!Re.current)return;E&&te===y.triggerFocus?(Re.current=!1,Pe.start(300,()=>{Re.current=!0})):(Re.current=!0,Pe.clear());let Xt=(te===y.triggerPress||te===y.itemPress)&&Ze.detail===0&&Ze?.isTrusted,Kn=!E&&(te===y.escapeKey||te==null),qt={open:E,openChangeReason:te};le.current=J.event??null,ho(qt,E,J.trigger,Yn()),s.update(qt),k.type==="menubar"&&(te===y.triggerFocus||te===y.focusOut||te===y.triggerHover||te===y.listNavigation||te===y.siblingOpen)?s.set("instantType","group"):Xt||Kn?s.set("instantType",Xt?"click":"dismiss"):s.set("instantType",void 0)}),se=Ro({popupStore:s,floatingId:S,nested:_!=null,onOpenChange:Me}),ce=se.context.events;H.useEffect(()=>{let E=n(({open:J,eventDetails:te})=>Me(J,te),"handleSetOpenEvent");return ce.on("setOpen",E),()=>{ce?.off("setOpen",E)}},[ce,Me]);let De=H.useCallback(()=>{s.setOpen(!1,W(y.imperativeAction))},[s]);H.useImperativeHandle(g,()=>({unmount:xe,close:De}),[xe,De]);let Se;k.type==="context-menu"&&(Se=k.context),H.useImperativeHandle(Se?.positionerRef,()=>$,[$]),H.useImperativeHandle(Se?.actionsRef,()=>({setOpen:Me}),[Me]);let me=lo(se,{enabled:!Q,bubbles:{escapeKey:x&&k.type==="menu"},outsidePress(){return k.type!=="context-menu"||le.current?.type==="contextmenu"?!0:ie.current},externalTree:z?j:void 0}),Ae=Bo(),Ve=H.useCallback(E=>{s.select("activeIndex")!==E&&s.set("activeIndex",E)},[s]),G=ko(se,{enabled:!Q,listRef:s.context.itemDomElements,activeIndex:Z,nested:k.type!==void 0,loopFocus:m,orientation:R,parentOrientation:k.type==="menubar"?k.context.orientation:void 0,rtl:Ae==="rtl",disabledIndices:Je,onNavigate:Ve,openOnArrowKeyDown:k.type!=="context-menu",externalTree:z?j:void 0,focusItemOnHover:c}),B=H.useCallback(E=>{s.context.typingRef.current=E},[s]),A=wo(se,{enabled:!Q,listRef:s.context.itemLabels,elementsRef:s.context.itemDomElements,activeIndex:Z,resetMs:500,onMatch:n(E=>{D&&E!==Z&&s.set("activeIndex",E)},"onMatch"),onTyping:B}),Ie=H.useMemo(()=>{let E=he(A.reference,G.reference,me.reference,{onMouseMove(){s.set("allowMouseEnter",!0)}},ue);return E["aria-haspopup"]="menu",E["aria-expanded"]=D,E},[s,A.reference,G.reference,me.reference,ue,D]),Gn=H.useMemo(()=>{let E=he(G.trigger,me.trigger,ue);return E["aria-haspopup"]="menu",E["aria-expanded"]=!1,E},[G.trigger,me.trigger,ue]),Un=H.useMemo(()=>he(xo,{id:S,role:"menu","aria-labelledby":F?.id,onMouseMove(){s.set("allowMouseEnter",!0),k.type==="menu"&&s.set("hoverEnabled",!1)},onClick(){s.select("hoverEnabled")&&s.set("hoverEnabled",!1)},onKeyDown(E){let J=s.select("keyboardEventRelay");J&&!E.isPropagationStopped()&&J(E)}},A.floating,G.floating,me.floating),[F,S,k.type,s,A.floating,G.floating,me.floating]),Hn=G.item??pe;yo(s,{floatingRootContext:se,activeTriggerProps:Ie,inactiveTriggerProps:Gn,popupProps:Un,itemProps:Hn});let jn=H.useMemo(()=>({store:s,parent:V}),[s,V]),Wt=(0,$t.jsx)(Bt.Provider,{value:jn,children:typeof o=="function"?o({payload:re}):o});return k.type===void 0||k.type==="context-menu"?(0,$t.jsx)(co,{externalTree:j,children:Wt}):Wt},"MenuRoot"));var Nn=f(C(),1);var zt=f(fe(),1);function On(t){let e=O().store,o=Nn.useMemo(()=>({parentMenu:e}),[e]);return(0,zt.jsx)(Kt.Provider,{value:o,children:(0,zt.jsx)(Ot,{...t})})}n(On,"MenuSubmenuRoot");var q=f(C(),1);var Tn=f(C(),1);function kn(t={}){let{highlightItemOnHover:e,highlightedIndex:o,onHighlightedIndexChange:i}=ct(),{ref:u,index:a}=de(t),d=o===a,l=Tn.useRef(null),r=et(u,l);return{compositeProps:{tabIndex:d?0:-1,onFocus(){i(a)},onMouseMove(){let R=l.current;if(!e||!R)return;let g=R.hasAttribute("disabled")||R.ariaDisabled==="true";!d&&!g&&R.focus()}},compositeRef:r,index:a}}n(kn,"useCompositeItem");function wn(t){let{render:e,className:o,style:i,state:u=pe,props:a=Je,refs:d=Je,metadata:l,stateAttributesMapping:r,tag:m="div",...R}=t,{compositeProps:g,compositeRef:x}=kn({metadata:l});return I(m,t,{state:u,ref:[...d,x],props:[g,...a,R],stateAttributesMapping:r})}n(wn,"CompositeItem");function Jt(t){if(Zt(t)&&t.hasAttribute("data-rootownerid"))return t.getAttribute("data-rootownerid")??void 0;if(!eo(t))return Jt(to(t))}n(Jt,"findRootOwnerId");var Tt=f(C(),1);function _n(t){let{enabled:e=!0,mouseDownAction:o,open:i}=t,u=Tt.useRef(!1);return Tt.useMemo(()=>e?{onMouseDown:n(a=>{(o==="open"&&!i||o==="close"&&i)&&(u.current=!0,We(a.currentTarget).addEventListener("click",()=>{u.current=!1},{once:!0}))},"onMouseDown"),onClick:n(a=>{u.current&&(u.current=!1,a.preventBaseUIHandler())},"onClick")}:pe,[e,o,i])}n(_n,"useMixedToggleClickHandler");var we=f(fe(),1);var kt=2,Dn=fo(n(function(e,o){let{render:i,className:u,style:a,disabled:d=!1,nativeButton:l=!0,id:r,openOnHover:m,delay:R=100,closeDelay:g=0,handle:x,payload:M,...v}=e,P=O(!0),c=x?.store??P?.store;if(!c)throw new Error(L(85));let h=oe(r),b=c.useState("isTriggerActive",h),p=c.useState("floatingRootContext"),T=c.useState("isOpenedByTrigger",h),V=c.useState("triggerPopupId",h),s=q.useRef(null),w=tr(),S=ct(!0),j=ao(),N=q.useMemo(()=>j??new nt,[j]),_=st(N),D=rt(),{registerTrigger:F,isMountedByThisTrigger:$}=vo(h,s,c,{payload:M,closeDelay:g,parent:w,floatingTreeRoot:N,floatingNodeId:_,floatingParentNodeId:D,keyboardEventRelay:S?.relayKeyboardEvent}),Y=w.type==="menubar",Q=c.useState("disabled"),K=d||Q||Y&&w.context.disabled,{getButtonProps:k,buttonRef:Z}=Ue({disabled:K,native:l});q.useEffect(()=>{!T&&w.type===void 0&&(c.context.allowMouseUpTriggerRef.current=!1)},[c,T,w.type]);let re=q.useRef(null),ve=Ne(),le=Le(G=>{if(!re.current)return;ve.clear(),c.context.allowMouseUpTriggerRef.current=!1;let B=G.target;if(_t(re.current,B)||_t(c.select("positionerElement"),B)||B===re.current||B!=null&&Jt(B)===c.select("rootId"))return;let A=Xo(re.current);G.clientX>=A.left-kt&&G.clientX<=A.right+kt&&G.clientY>=A.top-kt&&G.clientY<=A.bottom+kt||N.events.emit("close",{domEvent:G,reason:y.cancelOpen})});q.useEffect(()=>{T&&c.select("lastOpenChangeReason")===y.triggerHover&&We(re.current).addEventListener("mouseup",le,{once:!0})},[T,le,c]);let ie=Y&&w.context.hasSubmenuOpen,Re=at(p,{enabled:(m??ie)&&!K&&w.type!=="context-menu"&&(!Y||ie&&!$),handleClose:ut({blockPointerEvents:!Y}),mouseOnly:!0,move:!1,restMs:w.type===void 0?R:void 0,delay:{close:g},triggerElementRef:s,externalTree:N,isActiveTrigger:b,isClosing:n(()=>c.select("transitionStatus")==="ending","isClosing")}),Pe=er(T,c.select("lastOpenChangeReason")),z=it(p,{enabled:!K&&w.type!=="context-menu",event:T&&Y?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:w.type===void 0?Pe:!1}),ae=Oo(p,{enabled:!K&&ie}),ue=_n({open:T,enabled:Y,mouseDownAction:"open"}),xe=q.useMemo(()=>he(ae.reference,z.reference),[ae.reference,z.reference]),Me=c.useState("triggerProps",$),{preFocusGuardRef:se,handlePreFocusGuardFocus:ce,handleFocusTargetFocus:De}=Do(c,s),Se={disabled:K,open:T},me=[re,o,Z,F,s],Ae=[xe,Re??pe,Me,{"aria-haspopup":"menu","aria-controls":V,id:h,onMouseDown:n(G=>{if(c.select("open"))return;ve.start(200,()=>{c.context.allowMouseUpTriggerRef.current=!0}),We(G.currentTarget).addEventListener("mouseup",le,{once:!0})},"onMouseDown")},Y?{role:"menuitem"}:{},ue,v,k],Ve=I("button",e,{enabled:!Y,stateAttributesMapping:At,state:Se,ref:me,props:Ae});return Y?(0,we.jsx)(wn,{tag:"button",render:i,className:u,style:a,state:Se,refs:me,props:Ae,stateAttributesMapping:At}):T?(0,we.jsxs)(q.Fragment,{children:[(0,we.jsx)(Dt,{ref:se,onFocus:ce},`${h}-pre-focus-guard`),(0,we.jsx)(q.Fragment,{children:Ve},h),(0,we.jsx)(Dt,{ref:c.context.triggerFocusTargetRef,onFocus:De},`${h}-post-focus-guard`)]}):(0,we.jsx)(q.Fragment,{children:Ve},h)},"MenuTrigger"));function er(t,e){let o=Ne(),[i,u]=q.useState(!1);return Ee(()=>{t&&e==="trigger-hover"?(u(!0),o.start(500,()=>{u(!1)})):t||(o.clear(),u(!1))},[t,e,o]),i}n(er,"useStickIfOpen");function tr(){let t=be(!0),e=O(!0),o=Pt(!0);return q.useMemo(()=>o?{type:"menubar",context:o}:t&&!e?{type:"context-menu",context:t}:{type:void 0},[t,e,o])}n(tr,"useMenuParent");var Vn=f(C(),1);var An=(function(t){return t.popupWidth="--popup-width",t.popupHeight="--popup-height",t})({});var or={activationDirection:n(t=>t?{"data-activation-direction":t}:null,"activationDirection")},Bn=Vn.forwardRef(n(function(e,o){let{render:i,className:u,style:a,children:d,...l}=e,{store:r}=O(),{side:m}=X(),R=r.useState("instantType"),{children:g,state:x}=$o({store:r,side:m,cssVars:An,children:d}),M={activationDirection:x.activationDirection,transitioning:x.transitioning,instant:R};return I("div",e,{state:M,ref:o,props:[l,{children:g}],stateAttributesMapping:or})},"MenuViewport"));var ye=f(C(),1);var Ln=ye.forwardRef(n(function(e,o){let{render:i,className:u,style:a,label:d,id:l,nativeButton:r=!1,openOnHover:m=!0,delay:R=100,closeDelay:g=0,disabled:x=!1,...M}=e,v=de({label:d}),P=X(),{store:c}=O(),h=oe(l),b=c.useState("open"),p=c.useState("floatingRootContext"),T=c.useState("floatingTreeRoot"),V=c.useState("triggerPopupId",h),s=Mo(h,c),w=ye.useCallback(z=>{let ae=s(z);return z!==null&&c.select("open")&&c.select("activeTriggerId")==null&&c.update({activeTriggerId:h,activeTriggerElement:z,closeDelay:g}),ae},[s,g,c,h]),S=ye.useRef(null),j=ye.useCallback(z=>{S.current=z,c.set("activeTriggerElement",z)},[c]),N=Nt();if(!N?.parentMenu)throw new Error(L(37));c.useSyncedValue("closeDelay",g);let _=N.parentMenu,D=c.useState("disabled"),F=_.useState("disabled"),$=x||D||F,Y=_.useState("itemProps"),Q=_.useState("isActive",v.index),K=ye.useMemo(()=>({type:"submenu-trigger",setActive(){_.select("highlightItemOnHover")&&_.set("activeIndex",v.index)}}),[_,v.index]),{getItemProps:k,itemRef:Z}=Oe({closeOnClick:!1,disabled:$,highlighted:Q,id:h,store:c,typingRef:_.context.typingRef,nativeButton:r,itemMetadata:K,nodeId:P?.context.nodeId}),re=c.useState("hoverEnabled"),ve=at(p,{enabled:re&&m&&!$,handleClose:ut({blockPointerEvents:!0}),mouseOnly:!0,move:!0,restMs:R,delay:{open:R,close:g},shouldOpen:R>0?()=>_.select("allowMouseEnter"):void 0,triggerElementRef:S,externalTree:T,isClosing:n(()=>c.select("transitionStatus")==="ending","isClosing")}),ie=it(p,{enabled:!$,event:"mousedown",toggle:!m,ignoreMouse:m,stickIfOpen:!1}).reference??pe,ge=c.useState("triggerProps",!0);return delete ge.id,I("div",e,{state:{disabled:$,highlighted:Q,open:b},stateAttributesMapping:_o,props:[ie,ve,ge,Y,{"aria-controls":V,tabIndex:b||Q?0:-1,onBlur(){Q&&_.set("activeIndex",null)}},M,k],ref:[o,v.ref,Z,w,j]})},"MenuSubmenuTrigger"));var Qe=class{static{n(this,"MenuHandle")}constructor(){this.store=new ze}open(e){let o=e?this.store.context.triggerElements.getById(e):void 0;if(e&&!o)throw new Error(L(83,e));this.store.setOpen(!0,W("imperative-action",void 0,o))}close(){this.store.setOpen(!1,W("imperative-action",void 0,void 0))}get isOpen(){return this.store.select("open")}};function Fn(){return new Qe}n(Fn,"createMenuHandle");var ee=f(fe(),1);function Fc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Root,{"data-slot":"dropdown-menu",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Fc,"_");function Gc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Trigger,{"data-slot":"dropdown-menu-trigger",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Gc,"y");function Uc({align:t="start",alignOffset:e=0,side:o="bottom",sideOffset:i=4,className:u,...a}){return(0,ee.jsx)(ne.Portal,{children:(0,ee.jsx)(ne.Positioner,{className:"isolate z-50 outline-none",align:t,alignOffset:e,side:o,sideOffset:i,children:(0,ee.jsx)(ne.Popup,{"data-slot":"dropdown-menu-content",className:Be("z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-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:overflow-hidden 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!",u),...a})})})}n(Uc,"I");function Hc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Group,{"data-slot":"dropdown-menu-group",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Hc,"$");function jc(t){let e=(0,_e.c)(10),o,i,u;e[0]!==t?({className:o,inset:i,...u}=t,e[0]=t,e[1]=o,e[2]=i,e[3]=u):(o=e[1],i=e[2],u=e[3]);let a;e[4]!==o?(a=Be("px-2 py-2 text-xs text-muted-foreground data-inset:ps-7",o),e[4]=o,e[5]=a):a=e[5];let d;return e[6]!==i||e[7]!==u||e[8]!==a?(d=(0,ee.jsx)(ne.GroupLabel,{"data-slot":"dropdown-menu-label","data-inset":i,className:a,...u}),e[6]=i,e[7]=u,e[8]=a,e[9]=d):d=e[9],d}n(jc,"O");function Yc({className:t,inset:e,variant:o="default",...i}){return(0,ee.jsx)(ne.Item,{"data-slot":"dropdown-menu-item","data-inset":e,"data-variant":o,className:Be("group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-md px-2 py-2 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:ps-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",t),...i})}n(Yc,"P");function Kc(t){let e=(0,_e.c)(15),o,i,u,a,d;e[0]!==t?({className:u,children:i,checked:o,inset:a,...d}=t,e[0]=t,e[1]=o,e[2]=i,e[3]=u,e[4]=a,e[5]=d):(o=e[1],i=e[2],u=e[3],a=e[4],d=e[5]);let l;e[6]!==u?(l=Be("relative flex 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 focus:**:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",u),e[6]=u,e[7]=l):l=e[7];let r;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=(0,ee.jsx)("span",{className:"pointer-events-none absolute end-2 flex items-center justify-center","data-slot":"dropdown-menu-checkbox-item-indicator",children:(0,ee.jsx)(ne.CheckboxItemIndicator,{children:(0,ee.jsx)(Jo,{icon:zo,strokeWidth:2})})}),e[8]=r):r=e[8];let m;return e[9]!==o||e[10]!==i||e[11]!==a||e[12]!==d||e[13]!==l?(m=(0,ee.jsxs)(ne.CheckboxItem,{"data-slot":"dropdown-menu-checkbox-item","data-inset":a,className:l,checked:o,...d,children:[r,i]}),e[9]=o,e[10]=i,e[11]=a,e[12]=d,e[13]=l,e[14]=m):m=e[14],m}n(Kc,"j");function $c(t){let e=(0,_e.c)(8),o,i;e[0]!==t?({className:o,...i}=t,e[0]=t,e[1]=o,e[2]=i):(o=e[1],i=e[2]);let u;e[3]!==o?(u=Be("-mx-1 h-px bg-border",o),e[3]=o,e[4]=u):u=e[4];let a;return e[5]!==i||e[6]!==u?(a=(0,ee.jsx)(ne.Separator,{"data-slot":"dropdown-menu-separator",className:u,...i}),e[5]=i,e[6]=u,e[7]=a):a=e[7],a}n($c,"C");export{Fc as a,Gc as b,Uc as c,Hc as d,jc as e,Yc as f,Kc as g,$c as h};
@@ -1 +1 @@
1
- import{c as k,d as I,e as S,f as w,h as T,i as X,j as B,k as g,l as K,m as D,n as E,o as G,p as O}from"./chunk-HGSIVV32.js";import{d as j,m as q}from"./chunk-IUYFXK4X.js";import{a as x,e as C,g as F,h as H}from"./chunk-3XIESWL4.js";var L=C(F(),1);var e=C(H(),1);var R=50,$={value:{colors:{dark:["var(--chart-1)"],light:["var(--chart-1)"]},label:"value"}},W=x(o=>{let a=o.columns.find(t=>o.rows.length>0&&o.rows.every(l=>typeof l[t]=="number"))??null;return{label:o.columns.find(t=>t!==a)??null,value:a}},"G"),z=x(o=>{let a=(0,L.c)(3),{data:t,kind:l}=o,s;return a[0]!==t||a[1]!==l?(s=(0,e.jsx)(B,{className:"h-full w-full",config:$,children:l==="area"?(0,e.jsxs)(X,{data:t,children:[(0,e.jsx)(k,{vertical:!1}),(0,e.jsx)(w,{axisLine:!1,dataKey:"label",tickLine:!1}),(0,e.jsx)(K,{content:(0,e.jsx)(g,{})}),(0,e.jsx)(S,{dataKey:"value",fill:"var(--color-value-0)",fillOpacity:.2,stroke:"var(--color-value-0)",type:"monotone"})]}):(0,e.jsxs)(T,{data:t,children:[(0,e.jsx)(k,{vertical:!1}),(0,e.jsx)(w,{axisLine:!1,dataKey:"label",tickLine:!1}),(0,e.jsx)(K,{content:(0,e.jsx)(g,{})}),(0,e.jsx)(I,{dataKey:"value",dot:!1,stroke:"var(--color-value-0)",strokeWidth:2,type:"monotone"})]})}),a[0]=t,a[1]=l,a[2]=s):s=a[2],s},"H"),U=x(o=>{let a=(0,L.c)(21),{axes:t,result:l}=o,s=j(),u;a[0]!==l?(u=W(l),a[0]=l,a[1]=u):u=a[1];let N=u,m;a[2]!==l.columns?(m=new Set(l.columns),a[2]=l.columns,a[3]=m):m=a[3];let h=m,v=t!==void 0&&h.has(t.x)?t.x:N.label,f;a[4]!==t?.y||a[5]!==h?(f=t?.y.find(r=>h.has(r)),a[4]=t?.y,a[5]=h,a[6]=f):f=a[6];let A=f,d=A??N.value,p;a[7]!==v||a[8]!==l.rows||a[9]!==d?(p=d===null?[]:l.rows.slice(0,R).map((r,c)=>({label:v===null?`#${(c+1).toString()}`:q(r[v]),value:Number(r[d])||0})),a[7]=v,a[8]=l.rows,a[9]=d,a[10]=p):p=a[10];let y=p;if(d===null){let r;a[11]!==s?(r=s("No numeric column to chart."),a[11]=s,a[12]=r):r=a[12];let c;return a[13]!==r?(c=(0,e.jsx)("p",{className:"p-4 text-sm text-muted-foreground","data-testid":"sql-chart-empty",children:r}),a[13]=r,a[14]=c):c=a[14],c}let n=t!==void 0&&A!==void 0?t.kind:"bar",i;a[15]!==y||a[16]!==n?(i=n==="bar"?(0,e.jsxs)(D,{className:"h-full w-full",config:$,data:y,children:[(0,e.jsx)(G,{dataKey:"label"}),(0,e.jsx)(E,{dataKey:"value"}),(0,e.jsx)(O,{})]}):(0,e.jsx)(z,{data:y,kind:n}),a[15]=y,a[16]=n,a[17]=i):i=a[17];let b;return a[18]!==n||a[19]!==i?(b=(0,e.jsx)("div",{className:"h-80 w-full p-3","data-chart-kind":n,"data-testid":"sql-chart",children:i}),a[18]=n,a[19]=i,a[20]=b):b=a[20],b},"R");export{U as a};
1
+ import{c as k,d as I,e as S,f as w,h as T,i as X,j as B,k as g,l as K,m as D,n as E,o as G,p as O}from"./chunk-ZMDNTTAC.js";import{d as j,m as q}from"./chunk-IUYFXK4X.js";import{a as x,e as C,g as F,h as H}from"./chunk-3XIESWL4.js";var L=C(F(),1);var e=C(H(),1);var R=50,$={value:{colors:{dark:["var(--chart-1)"],light:["var(--chart-1)"]},label:"value"}},W=x(o=>{let a=o.columns.find(t=>o.rows.length>0&&o.rows.every(l=>typeof l[t]=="number"))??null;return{label:o.columns.find(t=>t!==a)??null,value:a}},"G"),z=x(o=>{let a=(0,L.c)(3),{data:t,kind:l}=o,s;return a[0]!==t||a[1]!==l?(s=(0,e.jsx)(B,{className:"h-full w-full",config:$,children:l==="area"?(0,e.jsxs)(X,{data:t,children:[(0,e.jsx)(k,{vertical:!1}),(0,e.jsx)(w,{axisLine:!1,dataKey:"label",tickLine:!1}),(0,e.jsx)(K,{content:(0,e.jsx)(g,{})}),(0,e.jsx)(S,{dataKey:"value",fill:"var(--color-value-0)",fillOpacity:.2,stroke:"var(--color-value-0)",type:"monotone"})]}):(0,e.jsxs)(T,{data:t,children:[(0,e.jsx)(k,{vertical:!1}),(0,e.jsx)(w,{axisLine:!1,dataKey:"label",tickLine:!1}),(0,e.jsx)(K,{content:(0,e.jsx)(g,{})}),(0,e.jsx)(I,{dataKey:"value",dot:!1,stroke:"var(--color-value-0)",strokeWidth:2,type:"monotone"})]})}),a[0]=t,a[1]=l,a[2]=s):s=a[2],s},"H"),U=x(o=>{let a=(0,L.c)(21),{axes:t,result:l}=o,s=j(),u;a[0]!==l?(u=W(l),a[0]=l,a[1]=u):u=a[1];let N=u,m;a[2]!==l.columns?(m=new Set(l.columns),a[2]=l.columns,a[3]=m):m=a[3];let h=m,v=t!==void 0&&h.has(t.x)?t.x:N.label,f;a[4]!==t?.y||a[5]!==h?(f=t?.y.find(r=>h.has(r)),a[4]=t?.y,a[5]=h,a[6]=f):f=a[6];let A=f,d=A??N.value,p;a[7]!==v||a[8]!==l.rows||a[9]!==d?(p=d===null?[]:l.rows.slice(0,R).map((r,c)=>({label:v===null?`#${(c+1).toString()}`:q(r[v]),value:Number(r[d])||0})),a[7]=v,a[8]=l.rows,a[9]=d,a[10]=p):p=a[10];let y=p;if(d===null){let r;a[11]!==s?(r=s("No numeric column to chart."),a[11]=s,a[12]=r):r=a[12];let c;return a[13]!==r?(c=(0,e.jsx)("p",{className:"p-4 text-sm text-muted-foreground","data-testid":"sql-chart-empty",children:r}),a[13]=r,a[14]=c):c=a[14],c}let n=t!==void 0&&A!==void 0?t.kind:"bar",i;a[15]!==y||a[16]!==n?(i=n==="bar"?(0,e.jsxs)(D,{className:"h-full w-full",config:$,data:y,children:[(0,e.jsx)(G,{dataKey:"label"}),(0,e.jsx)(E,{dataKey:"value"}),(0,e.jsx)(O,{})]}):(0,e.jsx)(z,{data:y,kind:n}),a[15]=y,a[16]=n,a[17]=i):i=a[17];let b;return a[18]!==n||a[19]!==i?(b=(0,e.jsx)("div",{className:"h-80 w-full p-3","data-chart-kind":n,"data-testid":"sql-chart",children:i}),a[18]=n,a[19]=i,a[20]=b):b=a[20],b},"R");export{U as a};
@@ -1 +1 @@
1
- import{a as q}from"./chunk-XQCVZAGU.js";import{a as O,b as v,c as N,d as b,e as _,f as M}from"./chunk-WJQLNYGX.js";import{a as k}from"./chunk-WQH3LT2P.js";import{d as g,h as w,m as I,o as T}from"./chunk-IUYFXK4X.js";import{c as L}from"./chunk-YC52XCPK.js";import{a as d,e as x,f as P,g as U,h as W}from"./chunk-3XIESWL4.js";var $=x(U(),1);var F="https://api.cloudflare.com/client/v4/accounts",E=class extends L{static{d(this,"c")}constructor(t,m){super("ANALYTICS_SQL_ERROR",`Analytics Engine SQL API returned ${String(t)}: ${m}`,{name:"AnalyticsSqlError",status:t})}},R=d(n=>{let t=n.fetch??globalThis.fetch,m=`${F}/${encodeURIComponent(n.accountId)}/analytics_engine/sql`;return{query:d(async p=>{let l=await t(m,{body:p,headers:{Authorization:`Bearer ${n.apiToken}`,"Content-Type":"text/plain"},method:"POST"});if(!l.ok)throw new E(l.status,await l.text());let r;try{r=await l.json()}catch{throw new E(l.status,"Analytics Engine SQL API returned a non-JSON body.")}let e=r,s=e.data??[];return{columns:e.meta??[],rowCount:e.rows??s.length,rows:s}},"query")}},"d");var y=x(P(),1);var a=x(W(),1);var H="ANALYTICS",D=[{key:"volume",sql:d(n=>`SELECT blob2 AS fn, count() AS calls FROM ${n} WHERE blob1 = 'function_call' GROUP BY fn ORDER BY calls DESC LIMIT 25`,"sql"),title:"Request volume per function"},{key:"latency",sql:d(n=>`SELECT blob2 AS fn, quantileWeighted(0.50)(double1, _sample_interval) AS p50, quantileWeighted(0.95)(double1, _sample_interval) AS p95 FROM ${n} WHERE blob1 = 'function_call' GROUP BY fn ORDER BY p95 DESC LIMIT 25`,"sql"),title:"Latency p50 / p95 per function"},{key:"hotShards",sql:d(n=>`SELECT blob3 AS shard, count() AS calls FROM ${n} WHERE blob1 = 'function_call' GROUP BY shard ORDER BY calls DESC LIMIT 25`,"sql"),title:"Hot shards"}],j={error:null,loading:!0,result:null},Q=d(n=>{let t=(0,$.c)(27),{state:m,title:p}=n,l=g(),{error:r,loading:e,result:s}=m,o=`analytics-panel-${p}`,c;t[0]!==l||t[1]!==p?(c=l(p),t[0]=l,t[1]=p,t[2]=c):c=t[2];let i;t[3]!==c?(i=(0,a.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,a.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:c})}),t[3]=c,t[4]=i):i=t[4];let u;t[5]!==e||t[6]!==l?(u=e&&(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"analytics-loading",children:l("Loading\u2026")}),t[5]=e,t[6]=l,t[7]=u):u=t[7];let f;t[8]!==r||t[9]!==e?(f=!e&&r!==null&&(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-destructive","data-testid":"analytics-error",role:"alert",children:r}),t[8]=r,t[9]=e,t[10]=f):f=t[10];let h;t[11]!==r||t[12]!==e||t[13]!==s||t[14]!==l?(h=!e&&r===null&&s!==null&&s.rows.length===0&&(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"analytics-empty-rows",children:l("No data points yet.")}),t[11]=r,t[12]=e,t[13]=s,t[14]=l,t[15]=h):h=t[15];let A;t[16]!==r||t[17]!==e||t[18]!==s?(A=!e&&r===null&&s!==null&&s.rows.length>0&&(0,a.jsxs)(O,{children:[(0,a.jsx)(v,{children:(0,a.jsx)(b,{children:s.columns.map(G)})}),(0,a.jsx)(N,{children:s.rows.map((B,Y)=>(0,a.jsx)(b,{children:s.columns.map(C=>(0,a.jsx)(M,{className:"font-mono text-xs",children:I(B[C.name])},C.name))},Y))})]}),t[16]=r,t[17]=e,t[18]=s,t[19]=A):A=t[19];let S;return t[20]!==o||t[21]!==i||t[22]!==u||t[23]!==f||t[24]!==h||t[25]!==A?(S=(0,a.jsxs)(k,{className:"gap-0 py-0","data-testid":o,children:[i,u,f,h,A]}),t[20]=o,t[21]=i,t[22]=u,t[23]=f,t[24]=h,t[25]=A,t[26]=S):S=t[26],S},"U"),rt=d(({config:n,dataset:t=H,runQuery:m}={})=>{let p=g(),[l,r]=(0,y.useState)({}),e=(0,y.useMemo)(()=>{if(m!==void 0)return m;if(n===void 0)return null;let o=R({accountId:n.accountId,apiToken:n.apiToken});return c=>o.query(c)},[n,m]),s=(0,y.useCallback)(async o=>{if(e!==null)for(let c of D){if(o.cancelled)return;r(i=>({...i,[c.key]:{error:null,loading:!0,result:null}}));try{let i=await e(c.sql(t));o.cancelled||r(u=>({...u,[c.key]:{error:null,loading:!1,result:i}}))}catch(i){o.cancelled||r(u=>({...u,[c.key]:{error:w(i),loading:!1,result:null}}))}}},[e,t]);return(0,y.useEffect)(()=>{let o={cancelled:!1};return T(s(o)),()=>{o.cancelled=!0}},[s]),e===null?(0,a.jsx)(q,{description:p("Set CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN (Analytics Read) in your .dev.vars to enable usage panels."),icon:(0,a.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M5 20V10m6.5 10V4M18 20v-7M3 20h18"})}),testId:"analytics-not-configured",title:p("Analytics is not configured.")}):(0,a.jsx)("div",{className:"flex flex-col gap-4","data-testid":"lunora-analytics-panel",children:D.map(o=>(0,a.jsx)(Q,{state:l[o.key]??j,title:o.title},o.key))})},"Z");function G(n){return(0,a.jsx)(_,{children:n.name},n.name)}d(G,"H");export{rt as AnalyticsPanel};
1
+ import{a as q}from"./chunk-XQCVZAGU.js";import{a as O,b as v,c as N,d as b,e as _,f as M}from"./chunk-WJQLNYGX.js";import{a as k}from"./chunk-WQH3LT2P.js";import{d as g,h as w,m as I,o as T}from"./chunk-IUYFXK4X.js";import{c as L}from"./chunk-X7B6PLEW.js";import{a as d,e as x,f as P,g as U,h as W}from"./chunk-3XIESWL4.js";var $=x(U(),1);var F="https://api.cloudflare.com/client/v4/accounts",E=class extends L{static{d(this,"c")}constructor(t,m){super("ANALYTICS_SQL_ERROR",`Analytics Engine SQL API returned ${String(t)}: ${m}`,{name:"AnalyticsSqlError",status:t})}},R=d(n=>{let t=n.fetch??globalThis.fetch,m=`${F}/${encodeURIComponent(n.accountId)}/analytics_engine/sql`;return{query:d(async p=>{let l=await t(m,{body:p,headers:{Authorization:`Bearer ${n.apiToken}`,"Content-Type":"text/plain"},method:"POST"});if(!l.ok)throw new E(l.status,await l.text());let r;try{r=await l.json()}catch{throw new E(l.status,"Analytics Engine SQL API returned a non-JSON body.")}let e=r,s=e.data??[];return{columns:e.meta??[],rowCount:e.rows??s.length,rows:s}},"query")}},"d");var y=x(P(),1);var a=x(W(),1);var H="ANALYTICS",D=[{key:"volume",sql:d(n=>`SELECT blob2 AS fn, count() AS calls FROM ${n} WHERE blob1 = 'function_call' GROUP BY fn ORDER BY calls DESC LIMIT 25`,"sql"),title:"Request volume per function"},{key:"latency",sql:d(n=>`SELECT blob2 AS fn, quantileWeighted(0.50)(double1, _sample_interval) AS p50, quantileWeighted(0.95)(double1, _sample_interval) AS p95 FROM ${n} WHERE blob1 = 'function_call' GROUP BY fn ORDER BY p95 DESC LIMIT 25`,"sql"),title:"Latency p50 / p95 per function"},{key:"hotShards",sql:d(n=>`SELECT blob3 AS shard, count() AS calls FROM ${n} WHERE blob1 = 'function_call' GROUP BY shard ORDER BY calls DESC LIMIT 25`,"sql"),title:"Hot shards"}],j={error:null,loading:!0,result:null},Q=d(n=>{let t=(0,$.c)(27),{state:m,title:p}=n,l=g(),{error:r,loading:e,result:s}=m,o=`analytics-panel-${p}`,c;t[0]!==l||t[1]!==p?(c=l(p),t[0]=l,t[1]=p,t[2]=c):c=t[2];let i;t[3]!==c?(i=(0,a.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,a.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:c})}),t[3]=c,t[4]=i):i=t[4];let u;t[5]!==e||t[6]!==l?(u=e&&(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"analytics-loading",children:l("Loading\u2026")}),t[5]=e,t[6]=l,t[7]=u):u=t[7];let f;t[8]!==r||t[9]!==e?(f=!e&&r!==null&&(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-destructive","data-testid":"analytics-error",role:"alert",children:r}),t[8]=r,t[9]=e,t[10]=f):f=t[10];let h;t[11]!==r||t[12]!==e||t[13]!==s||t[14]!==l?(h=!e&&r===null&&s!==null&&s.rows.length===0&&(0,a.jsx)("p",{className:"px-4 py-8 text-center text-sm text-muted-foreground","data-testid":"analytics-empty-rows",children:l("No data points yet.")}),t[11]=r,t[12]=e,t[13]=s,t[14]=l,t[15]=h):h=t[15];let A;t[16]!==r||t[17]!==e||t[18]!==s?(A=!e&&r===null&&s!==null&&s.rows.length>0&&(0,a.jsxs)(O,{children:[(0,a.jsx)(v,{children:(0,a.jsx)(b,{children:s.columns.map(G)})}),(0,a.jsx)(N,{children:s.rows.map((B,Y)=>(0,a.jsx)(b,{children:s.columns.map(C=>(0,a.jsx)(M,{className:"font-mono text-xs",children:I(B[C.name])},C.name))},Y))})]}),t[16]=r,t[17]=e,t[18]=s,t[19]=A):A=t[19];let S;return t[20]!==o||t[21]!==i||t[22]!==u||t[23]!==f||t[24]!==h||t[25]!==A?(S=(0,a.jsxs)(k,{className:"gap-0 py-0","data-testid":o,children:[i,u,f,h,A]}),t[20]=o,t[21]=i,t[22]=u,t[23]=f,t[24]=h,t[25]=A,t[26]=S):S=t[26],S},"U"),rt=d(({config:n,dataset:t=H,runQuery:m}={})=>{let p=g(),[l,r]=(0,y.useState)({}),e=(0,y.useMemo)(()=>{if(m!==void 0)return m;if(n===void 0)return null;let o=R({accountId:n.accountId,apiToken:n.apiToken});return c=>o.query(c)},[n,m]),s=(0,y.useCallback)(async o=>{if(e!==null)for(let c of D){if(o.cancelled)return;r(i=>({...i,[c.key]:{error:null,loading:!0,result:null}}));try{let i=await e(c.sql(t));o.cancelled||r(u=>({...u,[c.key]:{error:null,loading:!1,result:i}}))}catch(i){o.cancelled||r(u=>({...u,[c.key]:{error:w(i),loading:!1,result:null}}))}}},[e,t]);return(0,y.useEffect)(()=>{let o={cancelled:!1};return T(s(o)),()=>{o.cancelled=!0}},[s]),e===null?(0,a.jsx)(q,{description:p("Set CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN (Analytics Read) in your .dev.vars to enable usage panels."),icon:(0,a.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M5 20V10m6.5 10V4M18 20v-7M3 20h18"})}),testId:"analytics-not-configured",title:p("Analytics is not configured.")}):(0,a.jsx)("div",{className:"flex flex-col gap-4","data-testid":"lunora-analytics-panel",children:D.map(o=>(0,a.jsx)(Q,{state:l[o.key]??j,title:o.title},o.key))})},"Z");function G(n){return(0,a.jsx)(_,{children:n.name},n.name)}d(G,"H");export{rt as AnalyticsPanel};
@@ -1 +1 @@
1
- import{a as $}from"./chunk-PLFTCTMX.js";import{a as b}from"./chunk-322ZP3GW.js";import"./chunk-XXQUMVWH.js";import"./chunk-P4BOVBMR.js";import"./chunk-QLQADHFE.js";import{a as u}from"./chunk-VDW32UET.js";import{c as p}from"./chunk-BQNVN2OD.js";import"./chunk-M3NGYXDR.js";import"./chunk-XBDKZZ67.js";import{a as y,b as w,c as j,d as h,e as i,f as n}from"./chunk-WJQLNYGX.js";import{a as l,e as c}from"./chunk-WQH3LT2P.js";import{d as k}from"./chunk-IUYFXK4X.js";import"./chunk-YC52XCPK.js";import{a as o,e as S,h as T,j as x}from"./chunk-3XIESWL4.js";var e=S(T(),1);var m={clean:"text-emerald-600 dark:text-emerald-400",exempt:"text-muted-foreground",failing:"text-red-600 dark:text-red-400",warned:"text-amber-600 dark:text-amber-400"},A={"at-risk":"text-red-600 dark:text-red-400",excellent:"text-emerald-600 dark:text-emerald-400",good:"text-emerald-600 dark:text-emerald-400","needs-work":"text-amber-600 dark:text-amber-400"},O=o((r,a)=>`exempt: ${r.exemptReason===void 0||r.exemptReason===""?a:r.exemptReason}`,"S"),P=o(r=>r.toSorted((a,d)=>a.coverage==="clean"&&d.coverage!=="clean"?1:d.coverage==="clean"&&a.coverage!=="clean"?-1:a.score-d.score),"T"),q=o(({testId:r="advisor-health"})=>{let a=k(),d=p(u.getAdvisories,{},{live:!0}),g=p(u.getAdvisorProcedures,{},{live:!0}),f=d.data?.advisories??null,N=g.data?.procedures??null,t=f===null||N===null?null:$(N,f),v=g.error??d.error;if(v!==null)return(0,e.jsx)(b,{error:v,testId:`${r}-error`});if(t===null)return(0,e.jsx)(l,{children:(0,e.jsx)(c,{className:"py-8 text-center text-muted-foreground","data-testid":`${r}-loading`,children:a("Loading\u2026")})});let I=P(t.procedures);return(0,e.jsxs)("div",{className:"space-y-4","data-testid":r,children:[(0,e.jsx)(l,{children:(0,e.jsxs)(c,{className:"flex flex-wrap items-baseline gap-x-6 gap-y-2 py-6",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("span",{className:x("text-4xl font-semibold tabular-nums",A[t.grade]),"data-testid":`${r}-score`,children:t.score}),(0,e.jsx)("span",{className:"text-muted-foreground text-lg",children:"/100"})]}),(0,e.jsx)("span",{className:x("text-sm font-medium uppercase tracking-wide",A[t.grade]),"data-testid":`${r}-grade`,children:t.grade}),(0,e.jsxs)("div",{className:"text-muted-foreground flex gap-4 text-sm tabular-nums","data-testid":`${r}-summary`,children:[(0,e.jsxs)("span",{className:m.clean,children:[t.summary.clean," ",a("clean")]}),(0,e.jsxs)("span",{className:m.warned,children:[t.summary.warned," ",a("warned")]}),(0,e.jsxs)("span",{className:m.failing,children:[t.summary.failing," ",a("failing")]}),(0,e.jsxs)("span",{className:m.exempt,children:[t.summary.exempt," ",a("exempt")]})]})]})}),t.project.checks.length>0&&(0,e.jsx)(l,{children:(0,e.jsxs)(c,{className:"py-4 text-sm","data-testid":`${r}-project`,children:[(0,e.jsxs)("span",{className:"font-medium",children:[a("Schema & config")," ",t.project.score,"/100"]}),(0,e.jsxs)("span",{className:"text-muted-foreground",children:[" \u2014 ",t.project.checks.map(s=>s.name).join(", ")]})]})}),(0,e.jsx)(l,{children:(0,e.jsx)(c,{className:"p-0",children:(0,e.jsxs)(y,{children:[(0,e.jsx)(w,{children:(0,e.jsxs)(h,{children:[(0,e.jsx)(i,{className:"w-20",children:a("Score")}),(0,e.jsx)(i,{children:a("Procedure")}),(0,e.jsx)(i,{className:"w-32",children:a("Kind")}),(0,e.jsx)(i,{children:a("Rules fired")})]})}),(0,e.jsx)(j,{children:I.map(s=>(0,e.jsxs)(h,{"data-testid":`${r}-row`,children:[(0,e.jsx)(n,{className:x("tabular-nums font-medium",m[s.coverage]),children:s.coverage==="exempt"?"\u2014":s.score}),(0,e.jsx)(n,{className:"font-mono text-xs",children:s.id}),(0,e.jsxs)(n,{className:"text-muted-foreground text-xs",children:[s.visibility," ",s.kind,s.sensitivity.level==="high"&&(0,e.jsx)("span",{className:"ml-1 text-amber-600 dark:text-amber-400",children:a("sensitive")})]}),(0,e.jsx)(n,{className:"text-muted-foreground text-xs",children:s.coverage==="exempt"?O(s,a("no reason given")):s.checks.map(R=>R.name).join(", ")})]},s.id))})]})})})]})},"O");export{q as default};
1
+ import{a as $}from"./chunk-PLFTCTMX.js";import{a as b}from"./chunk-6IZBFC3G.js";import"./chunk-XXQUMVWH.js";import"./chunk-ZNNKWEH5.js";import"./chunk-QLQADHFE.js";import{a as u}from"./chunk-VDW32UET.js";import{c as p}from"./chunk-UP7OTXKF.js";import"./chunk-LYVP5PT6.js";import"./chunk-XBDKZZ67.js";import{a as y,b as w,c as j,d as h,e as i,f as n}from"./chunk-WJQLNYGX.js";import{a as l,e as c}from"./chunk-WQH3LT2P.js";import{d as k}from"./chunk-IUYFXK4X.js";import"./chunk-X7B6PLEW.js";import{a as o,e as S,h as T,j as x}from"./chunk-3XIESWL4.js";var e=S(T(),1);var m={clean:"text-emerald-600 dark:text-emerald-400",exempt:"text-muted-foreground",failing:"text-red-600 dark:text-red-400",warned:"text-amber-600 dark:text-amber-400"},A={"at-risk":"text-red-600 dark:text-red-400",excellent:"text-emerald-600 dark:text-emerald-400",good:"text-emerald-600 dark:text-emerald-400","needs-work":"text-amber-600 dark:text-amber-400"},O=o((r,a)=>`exempt: ${r.exemptReason===void 0||r.exemptReason===""?a:r.exemptReason}`,"S"),P=o(r=>r.toSorted((a,d)=>a.coverage==="clean"&&d.coverage!=="clean"?1:d.coverage==="clean"&&a.coverage!=="clean"?-1:a.score-d.score),"T"),q=o(({testId:r="advisor-health"})=>{let a=k(),d=p(u.getAdvisories,{},{live:!0}),g=p(u.getAdvisorProcedures,{},{live:!0}),f=d.data?.advisories??null,N=g.data?.procedures??null,t=f===null||N===null?null:$(N,f),v=g.error??d.error;if(v!==null)return(0,e.jsx)(b,{error:v,testId:`${r}-error`});if(t===null)return(0,e.jsx)(l,{children:(0,e.jsx)(c,{className:"py-8 text-center text-muted-foreground","data-testid":`${r}-loading`,children:a("Loading\u2026")})});let I=P(t.procedures);return(0,e.jsxs)("div",{className:"space-y-4","data-testid":r,children:[(0,e.jsx)(l,{children:(0,e.jsxs)(c,{className:"flex flex-wrap items-baseline gap-x-6 gap-y-2 py-6",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("span",{className:x("text-4xl font-semibold tabular-nums",A[t.grade]),"data-testid":`${r}-score`,children:t.score}),(0,e.jsx)("span",{className:"text-muted-foreground text-lg",children:"/100"})]}),(0,e.jsx)("span",{className:x("text-sm font-medium uppercase tracking-wide",A[t.grade]),"data-testid":`${r}-grade`,children:t.grade}),(0,e.jsxs)("div",{className:"text-muted-foreground flex gap-4 text-sm tabular-nums","data-testid":`${r}-summary`,children:[(0,e.jsxs)("span",{className:m.clean,children:[t.summary.clean," ",a("clean")]}),(0,e.jsxs)("span",{className:m.warned,children:[t.summary.warned," ",a("warned")]}),(0,e.jsxs)("span",{className:m.failing,children:[t.summary.failing," ",a("failing")]}),(0,e.jsxs)("span",{className:m.exempt,children:[t.summary.exempt," ",a("exempt")]})]})]})}),t.project.checks.length>0&&(0,e.jsx)(l,{children:(0,e.jsxs)(c,{className:"py-4 text-sm","data-testid":`${r}-project`,children:[(0,e.jsxs)("span",{className:"font-medium",children:[a("Schema & config")," ",t.project.score,"/100"]}),(0,e.jsxs)("span",{className:"text-muted-foreground",children:[" \u2014 ",t.project.checks.map(s=>s.name).join(", ")]})]})}),(0,e.jsx)(l,{children:(0,e.jsx)(c,{className:"p-0",children:(0,e.jsxs)(y,{children:[(0,e.jsx)(w,{children:(0,e.jsxs)(h,{children:[(0,e.jsx)(i,{className:"w-20",children:a("Score")}),(0,e.jsx)(i,{children:a("Procedure")}),(0,e.jsx)(i,{className:"w-32",children:a("Kind")}),(0,e.jsx)(i,{children:a("Rules fired")})]})}),(0,e.jsx)(j,{children:I.map(s=>(0,e.jsxs)(h,{"data-testid":`${r}-row`,children:[(0,e.jsx)(n,{className:x("tabular-nums font-medium",m[s.coverage]),children:s.coverage==="exempt"?"\u2014":s.score}),(0,e.jsx)(n,{className:"font-mono text-xs",children:s.id}),(0,e.jsxs)(n,{className:"text-muted-foreground text-xs",children:[s.visibility," ",s.kind,s.sensitivity.level==="high"&&(0,e.jsx)("span",{className:"ml-1 text-amber-600 dark:text-amber-400",children:a("sensitive")})]}),(0,e.jsx)(n,{className:"text-muted-foreground text-xs",children:s.coverage==="exempt"?O(s,a("no reason given")):s.checks.map(R=>R.name).join(", ")})]},s.id))})]})})})]})},"O");export{q as default};
@@ -1 +1 @@
1
- import{a as C}from"./chunk-V53KNYRN.js";import{a as T}from"./chunk-5Y3QLNWX.js";import{b as v}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as k}from"./chunk-322ZP3GW.js";import"./chunk-XXQUMVWH.js";import"./chunk-P4BOVBMR.js";import"./chunk-QLQADHFE.js";import{a as S}from"./chunk-VDW32UET.js";import{c as b}from"./chunk-BQNVN2OD.js";import"./chunk-M3NGYXDR.js";import"./chunk-XBDKZZ67.js";import{a as c}from"./chunk-XQCVZAGU.js";import{a as w,b as A,c as O,d as f,e as l,f as s}from"./chunk-WJQLNYGX.js";import{a as y,e as N}from"./chunk-WQH3LT2P.js";import{d as x}from"./chunk-IUYFXK4X.js";import"./chunk-YC52XCPK.js";import{a as n,e as p,f as $,h as L}from"./chunk-3XIESWL4.js";var F=p($(),1);var e=p(L(),1);var q=n(a=>{let t=a.trim();if(t.length===0)return{context:void 0,error:null};try{let o=JSON.parse(t);return o===null||typeof o!="object"||Array.isArray(o)?{context:void 0,error:"Targeting context must be a JSON object."}:{context:o,error:null}}catch{return{context:void 0,error:"Targeting context is not valid JSON."}}},"L"),D='{ "targetingKey": "user-123", "plan": "premium" }',M=n(a=>a.type==="object"?JSON.stringify(a.value):String(a.value),"V"),Y=n(({initialShardKey:a=""})=>{let t=x(),[o,j]=(0,F.useState)(""),{context:g,error:m}=q(o),I=g===void 0?{}:{context:g},{data:i,error:J,errorSource:K,liveError:E}=b(S.listFlags,I,{live:!0,shardKey:a}),u=i!==void 0,U=i?.configured??!1,h=Array.isArray(i?.flags)?[...i.flags].toSorted((r,V)=>r.key.localeCompare(V.key)):[],d;return u&&!U?d=(0,e.jsx)(c,{description:t("No @lunora/flags provider is wired in this deployment. Add lunora/flags.ts with defineFlags({ provider }) to gate code paths on feature flags."),testId:"flags-unconfigured",title:t("No flags provider configured")}):u&&h.length===0?d=(0,e.jsx)(c,{description:t('A flags provider is configured, but no handler reads a flag yet. Call ctx.flags.boolean("key", false) in a query, mutation, or action.'),testId:"flags-empty",title:t("No flags read")}):d=(0,e.jsx)(y,{className:"overflow-hidden py-0",children:(0,e.jsx)(N,{className:"px-0",children:(0,e.jsxs)(w,{"data-testid":"flags-table",children:[(0,e.jsx)(A,{children:(0,e.jsxs)(f,{children:[(0,e.jsx)(l,{children:t("Key")}),(0,e.jsx)(l,{children:t("Type")}),(0,e.jsx)(l,{children:t("Value")}),(0,e.jsx)(l,{children:t("Reason")}),(0,e.jsx)(l,{children:t("Variant")})]})}),(0,e.jsx)(O,{children:h.map(r=>(0,e.jsxs)(f,{"data-testid":`flags-row-${r.key}`,children:[(0,e.jsx)(s,{className:"font-mono text-xs",children:r.key}),(0,e.jsx)(s,{className:"font-mono text-xs text-muted-foreground",children:r.type}),(0,e.jsx)(s,{className:"font-mono text-xs",children:M(r)}),(0,e.jsx)(s,{children:r.errorCode===void 0?(0,e.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:r.reason??"\u2014"}):(0,e.jsx)(v,{"data-testid":`flags-error-${r.key}`,variant:"destructive",children:r.errorCode})}),(0,e.jsx)(s,{className:"font-mono text-xs text-muted-foreground",children:r.variant??"\u2014"})]},r.key))})]})})}),(0,e.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-flags-panel",children:[J!==null&&(0,e.jsx)(k,{error:K,testId:"flags-error"}),(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:t('Feature flags are read in code with ctx.flags.<type>("key", default). They evaluate through the OpenFeature provider configured in lunora/flags.ts; edit the targeting context below to see how each flag resolves for a given audience.')}),(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsx)(T,{htmlFor:"flags-targeting-context",children:t("Targeting context (JSON)")}),(0,e.jsx)(C,{className:"font-mono text-xs","data-testid":"flags-context-input",id:"flags-targeting-context",onChange:n(r=>{j(r.target.value)},"onChange"),placeholder:D,rows:3,value:o}),m!==null&&(0,e.jsx)("p",{className:"text-xs text-destructive","data-testid":"flags-context-error",role:"alert",children:t(m)}),E!==void 0&&(0,e.jsx)("p",{className:"text-xs text-amber-600 dark:text-amber-500","data-testid":"flags-live-error",role:"alert",children:t("Live updates unavailable; showing the last evaluation.")})]}),d]})},"X");export{Y as default};
1
+ import{a as C}from"./chunk-V53KNYRN.js";import{a as T}from"./chunk-5Y3QLNWX.js";import{b as v}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as k}from"./chunk-6IZBFC3G.js";import"./chunk-XXQUMVWH.js";import"./chunk-ZNNKWEH5.js";import"./chunk-QLQADHFE.js";import{a as S}from"./chunk-VDW32UET.js";import{c as b}from"./chunk-UP7OTXKF.js";import"./chunk-LYVP5PT6.js";import"./chunk-XBDKZZ67.js";import{a as c}from"./chunk-XQCVZAGU.js";import{a as w,b as A,c as O,d as f,e as l,f as s}from"./chunk-WJQLNYGX.js";import{a as y,e as N}from"./chunk-WQH3LT2P.js";import{d as x}from"./chunk-IUYFXK4X.js";import"./chunk-X7B6PLEW.js";import{a as n,e as p,f as $,h as L}from"./chunk-3XIESWL4.js";var F=p($(),1);var e=p(L(),1);var q=n(a=>{let t=a.trim();if(t.length===0)return{context:void 0,error:null};try{let o=JSON.parse(t);return o===null||typeof o!="object"||Array.isArray(o)?{context:void 0,error:"Targeting context must be a JSON object."}:{context:o,error:null}}catch{return{context:void 0,error:"Targeting context is not valid JSON."}}},"L"),D='{ "targetingKey": "user-123", "plan": "premium" }',M=n(a=>a.type==="object"?JSON.stringify(a.value):String(a.value),"V"),Y=n(({initialShardKey:a=""})=>{let t=x(),[o,j]=(0,F.useState)(""),{context:g,error:m}=q(o),I=g===void 0?{}:{context:g},{data:i,error:J,errorSource:K,liveError:E}=b(S.listFlags,I,{live:!0,shardKey:a}),u=i!==void 0,U=i?.configured??!1,h=Array.isArray(i?.flags)?[...i.flags].toSorted((r,V)=>r.key.localeCompare(V.key)):[],d;return u&&!U?d=(0,e.jsx)(c,{description:t("No @lunora/flags provider is wired in this deployment. Add lunora/flags.ts with defineFlags({ provider }) to gate code paths on feature flags."),testId:"flags-unconfigured",title:t("No flags provider configured")}):u&&h.length===0?d=(0,e.jsx)(c,{description:t('A flags provider is configured, but no handler reads a flag yet. Call ctx.flags.boolean("key", false) in a query, mutation, or action.'),testId:"flags-empty",title:t("No flags read")}):d=(0,e.jsx)(y,{className:"overflow-hidden py-0",children:(0,e.jsx)(N,{className:"px-0",children:(0,e.jsxs)(w,{"data-testid":"flags-table",children:[(0,e.jsx)(A,{children:(0,e.jsxs)(f,{children:[(0,e.jsx)(l,{children:t("Key")}),(0,e.jsx)(l,{children:t("Type")}),(0,e.jsx)(l,{children:t("Value")}),(0,e.jsx)(l,{children:t("Reason")}),(0,e.jsx)(l,{children:t("Variant")})]})}),(0,e.jsx)(O,{children:h.map(r=>(0,e.jsxs)(f,{"data-testid":`flags-row-${r.key}`,children:[(0,e.jsx)(s,{className:"font-mono text-xs",children:r.key}),(0,e.jsx)(s,{className:"font-mono text-xs text-muted-foreground",children:r.type}),(0,e.jsx)(s,{className:"font-mono text-xs",children:M(r)}),(0,e.jsx)(s,{children:r.errorCode===void 0?(0,e.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:r.reason??"\u2014"}):(0,e.jsx)(v,{"data-testid":`flags-error-${r.key}`,variant:"destructive",children:r.errorCode})}),(0,e.jsx)(s,{className:"font-mono text-xs text-muted-foreground",children:r.variant??"\u2014"})]},r.key))})]})})}),(0,e.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-flags-panel",children:[J!==null&&(0,e.jsx)(k,{error:K,testId:"flags-error"}),(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:t('Feature flags are read in code with ctx.flags.<type>("key", default). They evaluate through the OpenFeature provider configured in lunora/flags.ts; edit the targeting context below to see how each flag resolves for a given audience.')}),(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsx)(T,{htmlFor:"flags-targeting-context",children:t("Targeting context (JSON)")}),(0,e.jsx)(C,{className:"font-mono text-xs","data-testid":"flags-context-input",id:"flags-targeting-context",onChange:n(r=>{j(r.target.value)},"onChange"),placeholder:D,rows:3,value:o}),m!==null&&(0,e.jsx)("p",{className:"text-xs text-destructive","data-testid":"flags-context-error",role:"alert",children:t(m)}),E!==void 0&&(0,e.jsx)("p",{className:"text-xs text-amber-600 dark:text-amber-500","data-testid":"flags-live-error",role:"alert",children:t("Live updates unavailable; showing the last evaluation.")})]}),d]})},"X");export{Y as default};
@@ -0,0 +1 @@
1
+ import{a as n,c as i}from"./chunk-7T7UOTYK.js";import{a as s}from"./chunk-3XIESWL4.js";var o=s(r=>{if(typeof r=="string")return r;try{return JSON.stringify(r)??String(r)}catch{return String(r)}},"n"),y=s(r=>typeof r!="object"||r===null||Array.isArray(r)?"":Object.entries(r).map(([e,t])=>`${e}=${o(t)}`).join(" "),"c"),a="lunora:traces:pending-filter",f=s(r=>{i(a,r,"session")},"d"),d=s(()=>{let r=n("session");if(r!==void 0)try{let e=r.getItem(a);if(e===null)return;let t=JSON.parse(e);return typeof t.traceId!="string"?void 0:{traceId:t.traceId,...typeof t.shardKey=="string"?{shardKey:t.shardKey}:{}}}catch{return}},"f"),p=s(()=>{try{n("session")?.removeItem(a)}catch{}},"g");export{y as a,f as b,d as c,p as d};