@piwitests/server 0.18.0 → 0.18.2

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 (114) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BEB2Mv6B.js → 4TxgDGVa.js} +1 -1
  3. package/.output/public/_nuxt/{CBEM3L1q.js → 9-wVZMur.js} +1 -1
  4. package/.output/public/_nuxt/{l0QnzFNM.js → B-5GukRk.js} +1 -1
  5. package/.output/public/_nuxt/{lowCGL2S.js → B-IcwqZ2.js} +1 -1
  6. package/.output/public/_nuxt/{CmbjAoQu.js → B1G3GGhQ.js} +1 -1
  7. package/.output/public/_nuxt/{Dwp3GkV-.js → B1X__ilH.js} +1 -1
  8. package/.output/public/_nuxt/{CCsl9MOZ.js → B1zMFx24.js} +1 -1
  9. package/.output/public/_nuxt/{B6IHiVa1.js → B2oUeBbA.js} +1 -1
  10. package/.output/public/_nuxt/{BAaSmp8J.js → B4jvLMfS.js} +1 -1
  11. package/.output/public/_nuxt/{mlAADjK3.js → BBK2-Krn.js} +1 -1
  12. package/.output/public/_nuxt/{Vnfkr1pJ.js → BFP6M-20.js} +1 -1
  13. package/.output/public/_nuxt/{oFIS9u6t.js → BHpUiv6j.js} +1 -1
  14. package/.output/public/_nuxt/{Bi3i470l.js → BJtlcTrb.js} +1 -1
  15. package/.output/public/_nuxt/{BoC6qaRF.js → BLIRKrbM.js} +1 -1
  16. package/.output/public/_nuxt/{D1ttGJfs.js → BLOUs6AE.js} +1 -1
  17. package/.output/public/_nuxt/{n-QWmQgc.js → BOCwBVnz.js} +1 -1
  18. package/.output/public/_nuxt/{CTgM5Fke.js → BT6p4Pgt.js} +1 -1
  19. package/.output/public/_nuxt/{DB3ljns7.js → BUXSUkJ_.js} +1 -1
  20. package/.output/public/_nuxt/{36cXPVrY.js → BVf6Yx9V.js} +1 -1
  21. package/.output/public/_nuxt/{DOr_4nln.js → BXY_PWcx.js} +1 -1
  22. package/.output/public/_nuxt/{B6rt3IcG.js → BbS6Bwby.js} +1 -1
  23. package/.output/public/_nuxt/{Dbg8z684.js → Bd3HqPMF.js} +1 -1
  24. package/.output/public/_nuxt/{DnThe2U0.js → BeFDVhpA.js} +1 -1
  25. package/.output/public/_nuxt/{BUMZHDRC.js → BeKvLsja.js} +1 -1
  26. package/.output/public/_nuxt/{BCArQk0c.js → BeUm5UNV.js} +1 -1
  27. package/.output/public/_nuxt/{TBDx0s9p.js → BfV444H3.js} +1 -1
  28. package/.output/public/_nuxt/{D8YZvjas.js → BjCHB89N.js} +1 -1
  29. package/.output/public/_nuxt/{C9ahP7km.js → BjKamgHq.js} +1 -1
  30. package/.output/public/_nuxt/{DRE6Aqqp.js → BlA8mIS-.js} +1 -1
  31. package/.output/public/_nuxt/{BaDv5D7A.js → BlnwU1OO.js} +1 -1
  32. package/.output/public/_nuxt/{C11lmBd4.js → BoJdjCVl.js} +1 -1
  33. package/.output/public/_nuxt/{BiX7c2qU.js → BreO2PiA.js} +1 -1
  34. package/.output/public/_nuxt/{EltzgiyS.js → BvIDC_R-.js} +1 -1
  35. package/.output/public/_nuxt/{D3MWm6JP.js → By4YL7mx.js} +1 -1
  36. package/.output/public/_nuxt/{BdHdHyop.js → ByuJWADR.js} +1 -1
  37. package/.output/public/_nuxt/{KYucVFu7.js → C1dyLp_j.js} +1 -1
  38. package/.output/public/_nuxt/{CPZ5wygb.js → C8OCrfDP.js} +1 -1
  39. package/.output/public/_nuxt/{AjuKBlzz.js → C9YzQCiq.js} +1 -1
  40. package/.output/public/_nuxt/{q0DPzLKN.js → CAUgpKsF.js} +1 -1
  41. package/.output/public/_nuxt/{riEUDnED.js → CL9-VLTJ.js} +1 -1
  42. package/.output/public/_nuxt/{empGC_x-.js → CN1mJlvD.js} +1 -1
  43. package/.output/public/_nuxt/{quV6tp4n.js → CNMoZYMv.js} +1 -1
  44. package/.output/public/_nuxt/{va1mwSm9.js → CPLJeOCb.js} +1 -1
  45. package/.output/public/_nuxt/{CRpbGS75.js → CUvGJXY3.js} +1 -1
  46. package/.output/public/_nuxt/{CU3W9YrI.js → CazDIG_m.js} +1 -1
  47. package/.output/public/_nuxt/{rm7OkgDG.js → CcXaak_K.js} +1 -1
  48. package/.output/public/_nuxt/{87SGk1nu.js → CdMuck_X.js} +1 -1
  49. package/.output/public/_nuxt/{BTYiG93l.js → CfOLBbW9.js} +1 -1
  50. package/.output/public/_nuxt/{Bi9DO8jm.js → CfPSts5n.js} +1 -1
  51. package/.output/public/_nuxt/{CLdGRzLL.js → CfROFPse.js} +1 -1
  52. package/.output/public/_nuxt/Cnapl7lZ.js +1 -0
  53. package/.output/public/_nuxt/{D51_cB9D.js → Cng9gj7q.js} +1 -1
  54. package/.output/public/_nuxt/{wGpfdK6o.js → CsUoYK75.js} +1 -1
  55. package/.output/public/_nuxt/{CGq9qR-0.js → CscWZxCi.js} +1 -1
  56. package/.output/public/_nuxt/{DcfRfTaA.js → CuicKV-B.js} +1 -1
  57. package/.output/public/_nuxt/{DraETso1.js → Cyiu1VQD.js} +1 -1
  58. package/.output/public/_nuxt/{B_aSGB8S.js → D0cnIs93.js} +1 -1
  59. package/.output/public/_nuxt/{CP0vUzbd.js → D5oNv2cB.js} +1 -1
  60. package/.output/public/_nuxt/{CCw3Tx4S.js → D6PUPmRC.js} +1 -1
  61. package/.output/public/_nuxt/{ClIKZ4qY.js → DBtBvrYc.js} +1 -1
  62. package/.output/public/_nuxt/{BFjmLXYo.js → DCl2yo4g.js} +1 -1
  63. package/.output/public/_nuxt/{BVDBIVAQ.js → DD5HpaW9.js} +1 -1
  64. package/.output/public/_nuxt/{C8cz5feG.js → DHXWp5yD.js} +1 -1
  65. package/.output/public/_nuxt/{D3SYPlEB.js → DHltYerF.js} +3 -3
  66. package/.output/public/_nuxt/{C4AfzZER.js → DLXydYJb.js} +1 -1
  67. package/.output/public/_nuxt/{BJltXwHg.js → DRPSi76A.js} +1 -1
  68. package/.output/public/_nuxt/{HTQtMbWb.js → DS53kyHJ.js} +1 -1
  69. package/.output/public/_nuxt/{C7ZVzS0K.js → DWhBqv_7.js} +1 -1
  70. package/.output/public/_nuxt/{DoYgYLOd.js → DWowvnwc.js} +1 -1
  71. package/.output/public/_nuxt/{Doul3p1_.js → DXbPFI1d.js} +1 -1
  72. package/.output/public/_nuxt/{BKaU95es.js → DZ1zNBVM.js} +1 -1
  73. package/.output/public/_nuxt/{Db_-yjYg.js → DZ3Vfcpz.js} +1 -1
  74. package/.output/public/_nuxt/{BfoG8R5a.js → DZOS7Fh7.js} +1 -1
  75. package/.output/public/_nuxt/{CUDeMcEK.js → DZUgX70W.js} +1 -1
  76. package/.output/public/_nuxt/{oWY3I9uX.js → Dd0kK5WH.js} +1 -1
  77. package/.output/public/_nuxt/{wQZj69OY.js → Df7kUO0m.js} +1 -1
  78. package/.output/public/_nuxt/{ClVRQpP_.js → Dga3Av-m.js} +1 -1
  79. package/.output/public/_nuxt/{Dy4TloG3.js → DgwTpwfB.js} +1 -1
  80. package/.output/public/_nuxt/DkI145a5.js +1 -0
  81. package/.output/public/_nuxt/{C9EpbPNU.js → DoFBTaDR.js} +1 -1
  82. package/.output/public/_nuxt/{DC51KKt4.js → Dr_dI5hB.js} +1 -1
  83. package/.output/public/_nuxt/{DoFSKAvY.js → Dwws9U0D.js} +1 -1
  84. package/.output/public/_nuxt/{DaewB_zT.js → EPZOxdgq.js} +1 -1
  85. package/.output/public/_nuxt/{DVgMaBxD.js → QmMoMxLM.js} +1 -1
  86. package/.output/public/_nuxt/{Dm1_3W9g.js → R1nNqTru.js} +1 -1
  87. package/.output/public/_nuxt/{WAaPPk0g.js → S5DLdEpg.js} +1 -1
  88. package/.output/public/_nuxt/builds/latest.json +1 -1
  89. package/.output/public/_nuxt/builds/meta/7caf3cb3-d272-4dbd-bb3f-1eeb64fab5d1.json +1 -0
  90. package/.output/public/_nuxt/{BAkJhSAW.js → e7zD3uJ0.js} +1 -1
  91. package/.output/public/_nuxt/{CYIR2GbL.js → gCELhaU9.js} +1 -1
  92. package/.output/public/_nuxt/{Do6zIWQf.js → gnCL8GjZ.js} +1 -1
  93. package/.output/public/_nuxt/{BuuvTH9e.js → hH1UFE3Z.js} +1 -1
  94. package/.output/public/_nuxt/{BReNbog6.js → hgHc4teu.js} +1 -1
  95. package/.output/public/_nuxt/{uaqMzXqE.js → ipDzNHcs.js} +1 -1
  96. package/.output/public/_nuxt/{B1CB30tg.js → kS3boz40.js} +1 -1
  97. package/.output/public/_nuxt/{DIA_NAIv.js → kjYMoWWx.js} +1 -1
  98. package/.output/public/_nuxt/{BsDB_eCd.js → oFM1KLWA.js} +1 -1
  99. package/.output/public/_nuxt/qH_j2A3a.js +1 -0
  100. package/.output/public/_nuxt/{DM_YaJgJ.js → qpI-_f9Q.js} +1 -1
  101. package/.output/public/_nuxt/{CRcjGmf7.js → rTvJTef_.js} +1 -1
  102. package/.output/public/_nuxt/{Ccit_CX1.js → rsiRgrVM.js} +1 -1
  103. package/.output/public/_nuxt/{Tt5LX5Y-.js → swrbBdtB.js} +1 -1
  104. package/.output/public/_nuxt/{DCMFuzDI.js → wHnZ9OaL.js} +1 -1
  105. package/.output/public/_nuxt/{D4SFgXAf.js → xqiPI_FQ.js} +1 -1
  106. package/.output/public/sw.js +1 -1
  107. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  108. package/.output/server/chunks/nitro/nitro.mjs +745 -738
  109. package/.output/server/package.json +1 -1
  110. package/package.json +1 -1
  111. package/.output/public/_nuxt/CiPH-swI.js +0 -1
  112. package/.output/public/_nuxt/Cx65B3c3.js +0 -1
  113. package/.output/public/_nuxt/builds/meta/ed1db2e5-9865-4231-9605-4edd5272e164.json +0 -1
  114. package/.output/public/_nuxt/wgcgHmRR.js +0 -1
@@ -1,4 +1,4 @@
1
- import{_ as Gt}from"./BAaSmp8J.js";import{_ as Jt}from"./Ccit_CX1.js";import{d as se,o as t,f as w,g,i as n,p as W,k as e,j as d,t as r,c as o,F as B,y as ee,s as ge,m as y,q as l,P as gt,v as re,h as $,x as Ae,_ as De,b as qt,C as pt,l as fe,r as j,a9 as $e,B as ve,aa as Qt,K as Ee,O as Ce,u as Zt,a as Xt,w as dt,e as Yt,ab as es,J as ts}from"./D3SYPlEB.js";import{_ as ss}from"./CUDeMcEK.js";import{_ as ns,a as as}from"./87SGk1nu.js";import{_ as os,a as rs,b as is,c as ls,d as us}from"./BCArQk0c.js";import{_ as cs}from"./CU3W9YrI.js";import{_ as yt,a as Oe}from"./C8cz5feG.js";import{_ as ds}from"./DoFSKAvY.js";import{_ as ms}from"./DCMFuzDI.js";import{u as fs,_ as gs,e as ps,f as ys,g as hs,h as vs,j as xs,a as ht,i as Te,b as je,c as _s,k as ks,d as bs}from"./36cXPVrY.js";import{f as Se,h as q,c as ws,e as $s,k as we,l as vt,m as He,n as Ke,o as Cs,i as Ts,r as mt}from"./BUMZHDRC.js";import{_ as xt}from"./CCw3Tx4S.js";import{_ as pe}from"./empGC_x-.js";import{_ as Ss}from"./DnThe2U0.js";import{u as _t}from"./D3MWm6JP.js";import{_ as We}from"./Dwp3GkV-.js";import{d as Ds,e as Is,h as Ge,a as Rs,b as Ls,c as zs,_ as Ms,m as Ns,n as js,o as As,f as Ps,i as Us,j as Bs,k as Fs,l as Vs}from"./D1ttGJfs.js";import{_ as Je}from"./Bi3i470l.js";import{_ as kt}from"./KYucVFu7.js";import{_ as Es}from"./oFIS9u6t.js";import{_ as Os}from"./CGq9qR-0.js";import{_ as Hs}from"./Tt5LX5Y-.js";import{_ as Ks}from"./DOr_4nln.js";import{_ as Ws}from"./C7ZVzS0K.js";import{_ as Gs,a as Js}from"./CRpbGS75.js";import{_ as qs}from"./ClIKZ4qY.js";import{b as Qs}from"./wQZj69OY.js";import{u as ft}from"./Doul3p1_.js";import"./B6rt3IcG.js";import"./CCsl9MOZ.js";import"./Cx65B3c3.js";import"./r3SBLxtE.js";import"./l0QnzFNM.js";import"./B6IHiVa1.js";import"./Do6zIWQf.js";import"./DB3ljns7.js";import"./Vnfkr1pJ.js";import"./CRcjGmf7.js";import"./DRE6Aqqp.js";import"./D7W_4Sqc.js";import"./BEB2Mv6B.js";const Zs={class:"text-sm font-semibold truncate min-w-0"},Xs={class:"flex items-center gap-3 ml-auto max-sm:hidden"},Ys={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},en={class:"text-gray-700 dark:text-gray-300"},tn={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},sn={class:"text-gray-700 dark:text-gray-300"},nn={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},an={class:"text-gray-700 dark:text-gray-300"},on={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},rn={class:"text-gray-700 dark:text-gray-300"},ln={key:0,class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},un={class:"text-gray-700 dark:text-gray-300"},cn={class:"grid grid-cols-1 lg:grid-cols-12 gap-4"},dn={class:"space-y-3"},mn={class:"flex items-start gap-3"},fn={class:"min-w-0 flex-1"},gn={class:"flex items-center gap-2 flex-wrap"},pn={class:"text-base font-bold truncate"},yn={class:"text-xs text-gray-500 mt-0.5"},hn={key:0},vn=["title"],xn={key:1,class:"ml-2"},_n={class:"grid grid-cols-2 sm:grid-cols-4 gap-2"},kn={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},bn={class:"text-xl font-bold mt-0.5"},wn={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},$n={class:"text-xl font-bold mt-0.5"},Cn={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},Tn={class:"text-xl font-bold mt-0.5"},Sn={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},Dn={class:"text-xl font-bold mt-0.5"},In={key:0,class:"flex items-center gap-2 text-sm"},Rn={class:"text-gray-700 dark:text-gray-300 truncate"},Ln={key:0,class:"text-gray-500 shrink-0"},zn={key:1,class:"flex items-center gap-1.5 text-sm"},Mn={class:"text-gray-700 dark:text-gray-300"},Nn=se({__name:"TestCaseSummary",props:{testCase:{},scmInfo:{},ciInfo:{},browser:{},environment:{},stepsCount:{},historicalTiming:{},stableLinks:{}},emits:["refresh"],setup(s){const _=s,v=$(()=>{const u=_.testCase;if(!u)return[];const i=[];return u.isNewRegression&&i.push({label:"New regression",color:"error",title:"Passed in the baseline run, failing here"}),u.isNewFlaky&&i.push({label:"New flaky",color:"warning",title:"Newly started passing only on retry"}),u.status==="passed"&&(u.retries??0)>0&&i.push({label:"Passed on retry",color:"warning",title:"This test failed then passed on a retry"}),i}),k=$(()=>_.testCase?.testAnnotations??[]),I=$(()=>_.testCase?.startedAt??null),{summaryColSpanClass:h,blockColSpanClass:a}=fs(()=>{let u=0;return _.scmInfo&&u++,(_.ciInfo||_.environment||_.browser)&&u++,u++,u});return(u,i)=>{const P=os,U=cs,b=ge,x=gt,F=re,N=yt,p=ds,C=rs,R=is,H=ms,L=ls,K=gs;return t(),w(K,{"storage-key":"test-case"},{folded:g(()=>[d(P,{status:s.testCase?.status??"",size:"sm"},null,8,["status"]),n("span",Zs,r(s.testCase?.title),1),n("div",Xs,[n("span",Ys,[i[0]||(i[0]=y(" Dur: ",-1)),n("strong",en,r(("formatDuration"in u?u.formatDuration:e(q))(s.testCase?.duration)),1)]),n("span",tn,[i[1]||(i[1]=y(" Retries: ",-1)),n("strong",sn,r(s.testCase?.retries??0),1)]),n("span",nn,[i[2]||(i[2]=y(" Steps: ",-1)),n("strong",an,r(s.stepsCount),1)]),n("span",on,[i[3]||(i[3]=y(" Worker: ",-1)),n("strong",rn,r(s.testCase?.workerIndex??"—"),1)]),s.testCase?.shardIndex!=null?(t(),o("span",ln,[i[4]||(i[4]=y(" Shard: ",-1)),n("strong",un,r(s.testCase.shardIndex),1)])):l("",!0)]),s.browser?(t(),w(U,{key:0,browser:s.browser,size:"sm",class:"shrink-0 max-sm:hidden"},null,8,["browser"])):l("",!0)]),default:g(()=>[n("div",cn,[n("div",{class:W(e(h))},[d(p,{class:"shadow-xs h-full"},{default:g(()=>[n("div",dn,[n("div",mn,[d(P,{status:s.testCase?.status??"",size:"md"},null,8,["status"]),n("div",fn,[n("div",gn,[n("h2",pn,r(s.testCase?.title),1),(t(!0),o(B,null,ee(e(v),D=>(t(),w(b,{key:D.label,color:D.color,variant:"subtle",size:"xs",title:D.title},{default:g(()=>[y(r(D.label),1)]),_:2},1032,["color","title"]))),128)),(t(!0),o(B,null,ee(e(k),(D,Q)=>(t(),w(b,{key:`ann-${Q}`,color:"neutral",variant:"soft",size:"xs",class:"font-mono",title:D.description||D.type},{default:g(()=>[y(" @"+r(D.type),1)]),_:2},1032,["title"]))),128))]),n("p",yn,[s.testCase?.location?(t(),o("span",hn,r(s.testCase.location),1)):l("",!0),d(x,null,{default:g(()=>[e(I)?(t(),o("span",{key:0,class:"ml-2 text-gray-400",title:new Date(e(I)).toLocaleString()}," started "+r(("formatRelativeTime"in u?u.formatRelativeTime:e(Se))(e(I))),9,vn)):l("",!0)]),_:1}),s.historicalTiming?(t(),o("span",xn,[y(" Avg "+r(("formatDuration"in u?u.formatDuration:e(q))(s.historicalTiming.avg))+" · ",1),n("span",{class:W(s.historicalTiming.diff>0?"text-red-600":"text-green-600")},r(s.historicalTiming.diff>0?"+":"")+r(s.historicalTiming.pct)+"% ",3)])):l("",!0)])])]),n("div",_n,[n("div",kn,[i[5]||(i[5]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Duration",-1)),n("p",bn,r(("formatDuration"in u?u.formatDuration:e(q))(s.testCase?.duration)),1)]),n("div",wn,[i[6]||(i[6]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Retries",-1)),n("p",$n,r(s.testCase?.retries??0),1)]),n("div",Cn,[i[7]||(i[7]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Steps",-1)),n("p",Tn,r(s.stepsCount),1)]),n("div",Sn,[i[8]||(i[8]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Worker",-1)),n("p",Dn,r(s.testCase?.workerIndex??"—"),1)])]),s.testCase?.slowestStep?(t(),o("div",In,[d(F,{name:"i-lucide-zap",class:"size-4 text-amber-500 shrink-0"}),i[9]||(i[9]=n("span",{class:"font-medium text-amber-700 dark:text-amber-300"},"Slowest step:",-1)),n("span",Rn,r(s.testCase.slowestStep),1),s.testCase.slowestStepDuration?(t(),o("span",Ln,"("+r(("formatDuration"in u?u.formatDuration:e(q))(s.testCase.slowestStepDuration))+")",1)):l("",!0)])):l("",!0),(s.testCase?.wastedTimeMs??0)>0?(t(),o("div",zn,[d(F,{name:"i-lucide-hourglass",class:"size-4 text-amber-500 shrink-0"}),i[10]||(i[10]=n("span",{class:"font-medium text-amber-700 dark:text-amber-300"},"Wasted in fixed waits:",-1)),n("span",Mn,r(("formatDuration"in u?u.formatDuration:e(q))(s.testCase?.wastedTimeMs)),1),d(N,{topic:"case.wasted-time"})])):l("",!0)])]),_:1})],2),s.scmInfo?(t(),w(C,{key:0,scm:s.scmInfo,class:W(e(a))},null,8,["scm","class"])):l("",!0),s.ciInfo||s.environment||s.browser?(t(),w(R,{key:1,ci:s.ciInfo,environment:s.environment,browser:s.browser,class:W(e(a))},null,8,["ci","environment","browser","class"])):l("",!0),d(L,{class:W(e(a)),title:"Links",icon:"i-lucide-link"},{default:g(()=>[s.testCase?.id?(t(),w(H,{key:0,"entity-type":"test_case","entity-id":s.testCase.id,links:s.stableLinks??null},null,8,["entity-id","links"])):l("",!0)]),_:1},8,["class"])])]),_:1})}}}),jn=Object.assign(Nn,{__name:"TestCaseSummary"}),An={class:"space-y-3"},Pn={key:0,class:"flex flex-wrap gap-1.5"},Un={key:0,class:"text-sm text-gray-600 dark:text-gray-400"},Bn={class:"text-gray-800 dark:text-gray-200"},Fn={key:1},Vn={class:"flex items-center gap-1 flex-wrap"},En=se({__name:"TestCaseVerdictCard",props:{testCase:{},history:{},currentId:{}},setup(s){const _=s,v=u=>u==="failed"||u==="timedOut"||u==="timedout",k=$(()=>{const u=_.testCase;if(!u)return[];const i=[];return u.isNewRegression&&i.push({label:"New regression",color:"error",icon:"i-lucide-git-pull-request-arrow",title:"Passed in the baseline run, failing here — likely fallout from the latest change"}),u.isNewFlaky&&i.push({label:"New flaky",color:"warning",icon:"i-lucide-shuffle",title:"Newly started passing only on retry — intermittent failure"}),u.status==="timedOut"&&i.push({label:"Timed out",color:"warning",icon:"i-lucide-timer-off",title:"The test exceeded its timeout"}),(u.retries??0)>0&&i.push({label:u.status==="passed"?`Passed on retry ${u.retries}`:`Retried ${u.retries}×`,color:u.status==="passed"?"warning":"neutral",icon:"i-lucide-refresh-cw",title:`This execution retried ${u.retries} time${u.retries===1?"":"s"}`}),i}),I=$(()=>_.history.slice(0,24).slice().reverse()),h=$(()=>{const u=_.history;if(!u.length)return null;const i=Math.max(0,u.findIndex(b=>b.id===_.currentId));let P=0;for(let b=i;b<u.length&&v(u[b].status);b++)P++;let U=null;for(let b=i+1;b<u.length;b++)if(u[b].status==="passed"){U=u[b];break}return{streak:P,lastPass:U,total:u.length,anchorFailing:v(u[i]?.status)}}),a=u=>({"bg-red-500 hover:bg-red-600":v(u),"bg-green-500 hover:bg-green-600":u==="passed","bg-yellow-500 hover:bg-yellow-600":u==="skipped","bg-gray-400 hover:bg-gray-500":!v(u)&&!["passed","skipped"].includes(u)});return(u,i)=>{const P=re,U=ge,b=Ae,x=xt,F=gt,N=pe;return t(),w(N,{icon:"i-lucide-clipboard-check","icon-class":"text-amber-500",title:"Verdict",help:"case.verdict"},{default:g(()=>[n("div",An,[e(k).length?(t(),o("div",Pn,[(t(!0),o(B,null,ee(e(k),p=>(t(),w(U,{key:p.label,color:p.color,variant:"subtle",size:"sm",title:p.title,class:"inline-flex items-center gap-1"},{default:g(()=>[d(P,{name:p.icon,class:"size-3 shrink-0"},null,8,["name"]),y(" "+r(p.label),1)]),_:2},1032,["color","title"]))),128))])):l("",!0),d(F,null,{default:g(()=>[e(h)?(t(),o("p",Un,[e(h).streak>=1?(t(),o(B,{key:0},[i[1]||(i[1]=y(" Failing for ",-1)),n("strong",Bn,r(e(h).streak),1),y(" consecutive run"+r(e(h).streak===1?"":"s")+". ",1),e(h).lastPass?(t(),o(B,{key:0},[i[0]||(i[0]=y(" Last passed in ",-1)),d(b,{to:`/test-run-cases/${e(h).lastPass.id}`,class:"text-primary hover:underline"},{default:g(()=>[y(" run #"+r(e(h).lastPass.runId),1)]),_:1},8,["to"]),y(" ("+r(("formatRelativeTime"in u?u.formatRelativeTime:e(Se))(e(h).lastPass.startTime))+"). ",1)],64)):e(h).total>1?(t(),o(B,{key:1},[y(" No passing run in the last "+r(e(h).total)+" recorded. ",1)],64)):(t(),o(B,{key:2},[y(" First recorded run of this test. ")],64))],64)):s.testCase?.status==="passed"?(t(),o(B,{key:1},[y(" This execution passed. ")],64)):l("",!0)])):l("",!0),e(I).length>1?(t(),o("div",Fn,[i[2]||(i[2]=n("p",{class:"text-xs text-gray-400 mb-1"},"Recent runs (oldest → newest)",-1)),n("div",Vn,[(t(!0),o(B,null,ee(e(I),p=>(t(),w(x,{key:p.id,text:`Run #${p.runId}: ${p.status}`},{default:g(()=>[d(b,{to:`/test-run-cases/${p.id}`,class:W(["size-3.5 rounded-sm inline-block transition-colors",[a(p.status),p.id===s.currentId?"ring-2 ring-offset-1 ring-primary":""]])},null,8,["to","class"])]),_:2},1032,["text"]))),128))])])):l("",!0)]),_:1})])]),_:1})}}}),On=Object.assign(En,{__name:"TestCaseVerdictCard"}),Hn={class:"space-y-3"},Kn={class:"space-y-1.5"},Wn={class:"flex items-center gap-2 flex-wrap"},Gn={class:"text-xs text-gray-500"},Jn=["title"],qn={class:"text-xs text-gray-500 dark:text-gray-400"},Qn={key:0,class:"rounded-lg border border-default bg-elevated/40 p-2.5 space-y-1"},Zn={class:"flex items-center gap-1.5 flex-wrap"},Xn={class:"text-xs text-gray-600 dark:text-gray-400 line-clamp-3"},Yn=["title"],ea=se({__name:"FailureClusterCard",props:{cluster:{}},setup(s){const _=s,v=$(()=>Math.max(0,_.cluster.sameRunCaseCount-1)),k=$(()=>{const h=_.cluster.diagnosis;return h&&h.status==="completed"&&h.summary?h:null}),I=h=>h==="high"?"success":h==="medium"?"warning":"neutral";return(h,a)=>{const u=ge,i=Ae,P=re,U=De,b=pe;return t(),w(b,{icon:"i-lucide-layers","icon-class":"text-primary",title:"Failure cluster",help:"cluster.concept"},{actions:g(()=>[s.cluster.isNew?(t(),w(u,{key:0,color:"warning",variant:"subtle",size:"sm"},{default:g(()=>[...a[0]||(a[0]=[y("New",-1)])]),_:1})):l("",!0),s.cluster.status&&s.cluster.status!=="open"?(t(),w(u,{key:1,color:s.cluster.status==="resolved"?"success":"neutral",variant:"subtle",size:"sm",class:"capitalize"},{default:g(()=>[y(r(s.cluster.status),1)]),_:1},8,["color"])):l("",!0)]),default:g(()=>[n("div",Hn,[n("div",Kn,[n("div",Wn,[s.cluster.errorType?(t(),w(u,{key:0,color:e(ws)(s.cluster.errorType),variant:"soft",size:"sm"},{default:g(()=>[y(r(s.cluster.errorType),1)]),_:1},8,["color"])):l("",!0),n("span",Gn,r(s.cluster.occurrences??0)+" occurrence"+r((s.cluster.occurrences??0)===1?"":"s"),1)]),n("p",{class:"font-mono text-xs text-gray-600 dark:text-gray-400 break-all line-clamp-2",title:s.cluster.signature},r(s.cluster.signature),9,Jn)]),n("p",qn,[e(v)>0?(t(),o(B,{key:0},[y(" Matches "+r(e(v))+" other failing "+r(e(v)===1?"test":"tests")+" in this run. ",1)],64)):l("",!0),s.cluster.isNew?(t(),o(B,{key:2},[y("Opened a new cluster in this run.")],64)):(t(),o(B,{key:1},[a[1]||(a[1]=y(" Known failure — first seen in ",-1)),d(i,{to:`/test-runs/${s.cluster.firstSeenRunId}`,class:"text-primary hover:underline"},{default:g(()=>[y(" run #"+r(s.cluster.firstSeenRunId),1)]),_:1},8,["to"]),s.cluster.firstSeenAt?(t(),o(B,{key:0},[y(" ("+r(("formatRelativeTime"in h?h.formatRelativeTime:e(Se))(s.cluster.firstSeenAt))+")",1)],64)):l("",!0),a[2]||(a[2]=y(". ",-1))],64))]),e(k)?(t(),o("div",Qn,[n("div",Zn,[d(P,{name:"i-lucide-sparkles",class:"size-3.5 text-primary shrink-0"}),a[3]||(a[3]=n("span",{class:"text-xs font-medium"},"AI verdict",-1)),e(k).category?(t(),w(u,{key:0,color:"neutral",variant:"soft",size:"xs"},{default:g(()=>[y(r(e(k).category),1)]),_:1})):l("",!0),e(k).confidence?(t(),w(u,{key:1,color:I(e(k).confidence),variant:"soft",size:"xs"},{default:g(()=>[y(r(e(k).confidence)+" confidence ",1)]),_:1},8,["color"])):l("",!0)]),n("p",Xn,r(e(k).summary),1)])):l("",!0),s.cluster.triageNote?(t(),o("p",{key:1,class:"text-xs italic text-gray-500 dark:text-gray-400",title:s.cluster.triageNote}," “"+r(s.cluster.triageNote)+"” ",9,Yn)):l("",!0),d(U,{to:`/failure-clusters/${s.cluster.id}`,size:"sm",color:"primary",variant:"solid",block:"","trailing-icon":"i-lucide-arrow-right"},{default:g(()=>[...a[4]||(a[4]=[y(" Open cluster investigation ",-1)])]),_:1},8,["to"])])]),_:1})}}}),ta=Object.assign(ea,{__name:"FailureClusterCard"}),sa={class:"space-y-3"},na={class:"text-xs text-gray-400 inline-flex items-center gap-1"},aa={key:0,class:"text-primary"},oa={key:0,class:"flex items-center justify-between gap-2 rounded-lg border border-default bg-elevated/40 p-2.5"},ra={class:"inline-flex items-center gap-2 text-sm text-gray-500"},ia={key:1,class:"flex items-center gap-2"},la={key:2,class:"rounded-lg border border-dashed border-default p-4 text-center text-gray-400"},ua={class:"text-sm inline-flex items-center gap-1 justify-center"},ca={class:"pt-1 text-center"},da=se({__name:"TestCaseAiCard",props:{testRunsCaseId:{}},setup(s){const _=s,{aiStatus:v}=ps(),k=qt(),{copy:I,copied:h}=_t(),a=j(null),u=j(!1),i=j(null),P=j([]),U=j(0),b=j(0),x=j(null),F=j(!1),N=j(!1),p=j(null),C=j(!1),R=j("");async function H(){F.value=!0;try{const m=await $fetch(`/api/test-run-cases/${_.testRunsCaseId}/diagnosis-context`,{query:{format:"json"}});i.value=m.text,P.value=m.sections,U.value=m.tokenEstimate,b.value=m.imageTokenEstimate??0,x.value=m.coverage}catch{i.value=null,P.value=[],U.value=0,x.value=null}finally{F.value=!1}}async function L(){try{const m=await $fetch(`/api/test-run-cases/${_.testRunsCaseId}/diagnosis`);a.value=m.diagnosis}catch{}}pt(()=>{L(),H()});const K=$(()=>{const m=a.value?.details;if(!m)return[];const f=[];if(Array.isArray(m.evidence)&&f.push(...m.evidence),Array.isArray(m.hypotheses))for(const A of m.hypotheses)Array.isArray(A?.evidence)&&f.push(...A.evidence);return xs(f)});function D(m){p.value=m,N.value=!0}function Q(m){R.value=R.value?`${R.value}
1
+ import{_ as Gt}from"./B4jvLMfS.js";import{_ as Jt}from"./rsiRgrVM.js";import{d as se,o as t,f as w,g,i as n,p as W,k as e,j as d,t as r,c as o,F as B,y as ee,s as ge,m as y,q as l,P as gt,v as re,h as $,x as Ae,_ as De,b as qt,C as pt,l as fe,r as j,a9 as $e,B as ve,aa as Qt,K as Ee,O as Ce,u as Zt,a as Xt,w as dt,e as Yt,ab as es,J as ts}from"./DHltYerF.js";import{_ as ss}from"./DZUgX70W.js";import{_ as ns,a as as}from"./CdMuck_X.js";import{_ as os,a as rs,b as is,c as ls,d as us}from"./BeUm5UNV.js";import{_ as cs}from"./CazDIG_m.js";import{_ as yt,a as Oe}from"./DHXWp5yD.js";import{_ as ds}from"./Dwws9U0D.js";import{_ as ms}from"./wHnZ9OaL.js";import{u as fs,_ as gs,e as ps,f as ys,g as hs,h as vs,j as xs,a as ht,i as Te,b as je,c as _s,k as ks,d as bs}from"./BVf6Yx9V.js";import{f as Se,h as q,c as ws,e as $s,k as we,l as vt,m as He,n as Ke,o as Cs,i as Ts,r as mt}from"./BeKvLsja.js";import{_ as xt}from"./D6PUPmRC.js";import{_ as pe}from"./CN1mJlvD.js";import{_ as Ss}from"./BeFDVhpA.js";import{u as _t}from"./By4YL7mx.js";import{_ as We}from"./B1X__ilH.js";import{d as Ds,e as Is,h as Ge,a as Rs,b as Ls,c as zs,_ as Ms,m as Ns,n as js,o as As,f as Ps,i as Us,j as Bs,k as Fs,l as Vs}from"./BLOUs6AE.js";import{_ as Je}from"./BJtlcTrb.js";import{_ as kt}from"./C1dyLp_j.js";import{_ as Es}from"./BHpUiv6j.js";import{_ as Os}from"./CscWZxCi.js";import{_ as Hs}from"./swrbBdtB.js";import{_ as Ks}from"./BXY_PWcx.js";import{_ as Ws}from"./DWhBqv_7.js";import{_ as Gs,a as Js}from"./CUvGJXY3.js";import{_ as qs}from"./DBtBvrYc.js";import{b as Qs}from"./Df7kUO0m.js";import{u as ft}from"./DXbPFI1d.js";import"./BbS6Bwby.js";import"./B1zMFx24.js";import"./qH_j2A3a.js";import"./r3SBLxtE.js";import"./B-5GukRk.js";import"./B2oUeBbA.js";import"./gnCL8GjZ.js";import"./BUXSUkJ_.js";import"./BFP6M-20.js";import"./rTvJTef_.js";import"./BlA8mIS-.js";import"./D7W_4Sqc.js";import"./4TxgDGVa.js";const Zs={class:"text-sm font-semibold truncate min-w-0"},Xs={class:"flex items-center gap-3 ml-auto max-sm:hidden"},Ys={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},en={class:"text-gray-700 dark:text-gray-300"},tn={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},sn={class:"text-gray-700 dark:text-gray-300"},nn={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},an={class:"text-gray-700 dark:text-gray-300"},on={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},rn={class:"text-gray-700 dark:text-gray-300"},ln={key:0,class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},un={class:"text-gray-700 dark:text-gray-300"},cn={class:"grid grid-cols-1 lg:grid-cols-12 gap-4"},dn={class:"space-y-3"},mn={class:"flex items-start gap-3"},fn={class:"min-w-0 flex-1"},gn={class:"flex items-center gap-2 flex-wrap"},pn={class:"text-base font-bold truncate"},yn={class:"text-xs text-gray-500 mt-0.5"},hn={key:0},vn=["title"],xn={key:1,class:"ml-2"},_n={class:"grid grid-cols-2 sm:grid-cols-4 gap-2"},kn={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},bn={class:"text-xl font-bold mt-0.5"},wn={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},$n={class:"text-xl font-bold mt-0.5"},Cn={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},Tn={class:"text-xl font-bold mt-0.5"},Sn={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},Dn={class:"text-xl font-bold mt-0.5"},In={key:0,class:"flex items-center gap-2 text-sm"},Rn={class:"text-gray-700 dark:text-gray-300 truncate"},Ln={key:0,class:"text-gray-500 shrink-0"},zn={key:1,class:"flex items-center gap-1.5 text-sm"},Mn={class:"text-gray-700 dark:text-gray-300"},Nn=se({__name:"TestCaseSummary",props:{testCase:{},scmInfo:{},ciInfo:{},browser:{},environment:{},stepsCount:{},historicalTiming:{},stableLinks:{}},emits:["refresh"],setup(s){const _=s,v=$(()=>{const u=_.testCase;if(!u)return[];const i=[];return u.isNewRegression&&i.push({label:"New regression",color:"error",title:"Passed in the baseline run, failing here"}),u.isNewFlaky&&i.push({label:"New flaky",color:"warning",title:"Newly started passing only on retry"}),u.status==="passed"&&(u.retries??0)>0&&i.push({label:"Passed on retry",color:"warning",title:"This test failed then passed on a retry"}),i}),k=$(()=>_.testCase?.testAnnotations??[]),I=$(()=>_.testCase?.startedAt??null),{summaryColSpanClass:h,blockColSpanClass:a}=fs(()=>{let u=0;return _.scmInfo&&u++,(_.ciInfo||_.environment||_.browser)&&u++,u++,u});return(u,i)=>{const P=os,U=cs,b=ge,x=gt,F=re,N=yt,p=ds,C=rs,R=is,H=ms,L=ls,K=gs;return t(),w(K,{"storage-key":"test-case"},{folded:g(()=>[d(P,{status:s.testCase?.status??"",size:"sm"},null,8,["status"]),n("span",Zs,r(s.testCase?.title),1),n("div",Xs,[n("span",Ys,[i[0]||(i[0]=y(" Dur: ",-1)),n("strong",en,r(("formatDuration"in u?u.formatDuration:e(q))(s.testCase?.duration)),1)]),n("span",tn,[i[1]||(i[1]=y(" Retries: ",-1)),n("strong",sn,r(s.testCase?.retries??0),1)]),n("span",nn,[i[2]||(i[2]=y(" Steps: ",-1)),n("strong",an,r(s.stepsCount),1)]),n("span",on,[i[3]||(i[3]=y(" Worker: ",-1)),n("strong",rn,r(s.testCase?.workerIndex??"—"),1)]),s.testCase?.shardIndex!=null?(t(),o("span",ln,[i[4]||(i[4]=y(" Shard: ",-1)),n("strong",un,r(s.testCase.shardIndex),1)])):l("",!0)]),s.browser?(t(),w(U,{key:0,browser:s.browser,size:"sm",class:"shrink-0 max-sm:hidden"},null,8,["browser"])):l("",!0)]),default:g(()=>[n("div",cn,[n("div",{class:W(e(h))},[d(p,{class:"shadow-xs h-full"},{default:g(()=>[n("div",dn,[n("div",mn,[d(P,{status:s.testCase?.status??"",size:"md"},null,8,["status"]),n("div",fn,[n("div",gn,[n("h2",pn,r(s.testCase?.title),1),(t(!0),o(B,null,ee(e(v),D=>(t(),w(b,{key:D.label,color:D.color,variant:"subtle",size:"xs",title:D.title},{default:g(()=>[y(r(D.label),1)]),_:2},1032,["color","title"]))),128)),(t(!0),o(B,null,ee(e(k),(D,Q)=>(t(),w(b,{key:`ann-${Q}`,color:"neutral",variant:"soft",size:"xs",class:"font-mono",title:D.description||D.type},{default:g(()=>[y(" @"+r(D.type),1)]),_:2},1032,["title"]))),128))]),n("p",yn,[s.testCase?.location?(t(),o("span",hn,r(s.testCase.location),1)):l("",!0),d(x,null,{default:g(()=>[e(I)?(t(),o("span",{key:0,class:"ml-2 text-gray-400",title:new Date(e(I)).toLocaleString()}," started "+r(("formatRelativeTime"in u?u.formatRelativeTime:e(Se))(e(I))),9,vn)):l("",!0)]),_:1}),s.historicalTiming?(t(),o("span",xn,[y(" Avg "+r(("formatDuration"in u?u.formatDuration:e(q))(s.historicalTiming.avg))+" · ",1),n("span",{class:W(s.historicalTiming.diff>0?"text-red-600":"text-green-600")},r(s.historicalTiming.diff>0?"+":"")+r(s.historicalTiming.pct)+"% ",3)])):l("",!0)])])]),n("div",_n,[n("div",kn,[i[5]||(i[5]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Duration",-1)),n("p",bn,r(("formatDuration"in u?u.formatDuration:e(q))(s.testCase?.duration)),1)]),n("div",wn,[i[6]||(i[6]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Retries",-1)),n("p",$n,r(s.testCase?.retries??0),1)]),n("div",Cn,[i[7]||(i[7]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Steps",-1)),n("p",Tn,r(s.stepsCount),1)]),n("div",Sn,[i[8]||(i[8]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Worker",-1)),n("p",Dn,r(s.testCase?.workerIndex??"—"),1)])]),s.testCase?.slowestStep?(t(),o("div",In,[d(F,{name:"i-lucide-zap",class:"size-4 text-amber-500 shrink-0"}),i[9]||(i[9]=n("span",{class:"font-medium text-amber-700 dark:text-amber-300"},"Slowest step:",-1)),n("span",Rn,r(s.testCase.slowestStep),1),s.testCase.slowestStepDuration?(t(),o("span",Ln,"("+r(("formatDuration"in u?u.formatDuration:e(q))(s.testCase.slowestStepDuration))+")",1)):l("",!0)])):l("",!0),(s.testCase?.wastedTimeMs??0)>0?(t(),o("div",zn,[d(F,{name:"i-lucide-hourglass",class:"size-4 text-amber-500 shrink-0"}),i[10]||(i[10]=n("span",{class:"font-medium text-amber-700 dark:text-amber-300"},"Wasted in fixed waits:",-1)),n("span",Mn,r(("formatDuration"in u?u.formatDuration:e(q))(s.testCase?.wastedTimeMs)),1),d(N,{topic:"case.wasted-time"})])):l("",!0)])]),_:1})],2),s.scmInfo?(t(),w(C,{key:0,scm:s.scmInfo,class:W(e(a))},null,8,["scm","class"])):l("",!0),s.ciInfo||s.environment||s.browser?(t(),w(R,{key:1,ci:s.ciInfo,environment:s.environment,browser:s.browser,class:W(e(a))},null,8,["ci","environment","browser","class"])):l("",!0),d(L,{class:W(e(a)),title:"Links",icon:"i-lucide-link"},{default:g(()=>[s.testCase?.id?(t(),w(H,{key:0,"entity-type":"test_case","entity-id":s.testCase.id,links:s.stableLinks??null},null,8,["entity-id","links"])):l("",!0)]),_:1},8,["class"])])]),_:1})}}}),jn=Object.assign(Nn,{__name:"TestCaseSummary"}),An={class:"space-y-3"},Pn={key:0,class:"flex flex-wrap gap-1.5"},Un={key:0,class:"text-sm text-gray-600 dark:text-gray-400"},Bn={class:"text-gray-800 dark:text-gray-200"},Fn={key:1},Vn={class:"flex items-center gap-1 flex-wrap"},En=se({__name:"TestCaseVerdictCard",props:{testCase:{},history:{},currentId:{}},setup(s){const _=s,v=u=>u==="failed"||u==="timedOut"||u==="timedout",k=$(()=>{const u=_.testCase;if(!u)return[];const i=[];return u.isNewRegression&&i.push({label:"New regression",color:"error",icon:"i-lucide-git-pull-request-arrow",title:"Passed in the baseline run, failing here — likely fallout from the latest change"}),u.isNewFlaky&&i.push({label:"New flaky",color:"warning",icon:"i-lucide-shuffle",title:"Newly started passing only on retry — intermittent failure"}),u.status==="timedOut"&&i.push({label:"Timed out",color:"warning",icon:"i-lucide-timer-off",title:"The test exceeded its timeout"}),(u.retries??0)>0&&i.push({label:u.status==="passed"?`Passed on retry ${u.retries}`:`Retried ${u.retries}×`,color:u.status==="passed"?"warning":"neutral",icon:"i-lucide-refresh-cw",title:`This execution retried ${u.retries} time${u.retries===1?"":"s"}`}),i}),I=$(()=>_.history.slice(0,24).slice().reverse()),h=$(()=>{const u=_.history;if(!u.length)return null;const i=Math.max(0,u.findIndex(b=>b.id===_.currentId));let P=0;for(let b=i;b<u.length&&v(u[b].status);b++)P++;let U=null;for(let b=i+1;b<u.length;b++)if(u[b].status==="passed"){U=u[b];break}return{streak:P,lastPass:U,total:u.length,anchorFailing:v(u[i]?.status)}}),a=u=>({"bg-red-500 hover:bg-red-600":v(u),"bg-green-500 hover:bg-green-600":u==="passed","bg-yellow-500 hover:bg-yellow-600":u==="skipped","bg-gray-400 hover:bg-gray-500":!v(u)&&!["passed","skipped"].includes(u)});return(u,i)=>{const P=re,U=ge,b=Ae,x=xt,F=gt,N=pe;return t(),w(N,{icon:"i-lucide-clipboard-check","icon-class":"text-amber-500",title:"Verdict",help:"case.verdict"},{default:g(()=>[n("div",An,[e(k).length?(t(),o("div",Pn,[(t(!0),o(B,null,ee(e(k),p=>(t(),w(U,{key:p.label,color:p.color,variant:"subtle",size:"sm",title:p.title,class:"inline-flex items-center gap-1"},{default:g(()=>[d(P,{name:p.icon,class:"size-3 shrink-0"},null,8,["name"]),y(" "+r(p.label),1)]),_:2},1032,["color","title"]))),128))])):l("",!0),d(F,null,{default:g(()=>[e(h)?(t(),o("p",Un,[e(h).streak>=1?(t(),o(B,{key:0},[i[1]||(i[1]=y(" Failing for ",-1)),n("strong",Bn,r(e(h).streak),1),y(" consecutive run"+r(e(h).streak===1?"":"s")+". ",1),e(h).lastPass?(t(),o(B,{key:0},[i[0]||(i[0]=y(" Last passed in ",-1)),d(b,{to:`/test-run-cases/${e(h).lastPass.id}`,class:"text-primary hover:underline"},{default:g(()=>[y(" run #"+r(e(h).lastPass.runId),1)]),_:1},8,["to"]),y(" ("+r(("formatRelativeTime"in u?u.formatRelativeTime:e(Se))(e(h).lastPass.startTime))+"). ",1)],64)):e(h).total>1?(t(),o(B,{key:1},[y(" No passing run in the last "+r(e(h).total)+" recorded. ",1)],64)):(t(),o(B,{key:2},[y(" First recorded run of this test. ")],64))],64)):s.testCase?.status==="passed"?(t(),o(B,{key:1},[y(" This execution passed. ")],64)):l("",!0)])):l("",!0),e(I).length>1?(t(),o("div",Fn,[i[2]||(i[2]=n("p",{class:"text-xs text-gray-400 mb-1"},"Recent runs (oldest → newest)",-1)),n("div",Vn,[(t(!0),o(B,null,ee(e(I),p=>(t(),w(x,{key:p.id,text:`Run #${p.runId}: ${p.status}`},{default:g(()=>[d(b,{to:`/test-run-cases/${p.id}`,class:W(["size-3.5 rounded-sm inline-block transition-colors",[a(p.status),p.id===s.currentId?"ring-2 ring-offset-1 ring-primary":""]])},null,8,["to","class"])]),_:2},1032,["text"]))),128))])])):l("",!0)]),_:1})])]),_:1})}}}),On=Object.assign(En,{__name:"TestCaseVerdictCard"}),Hn={class:"space-y-3"},Kn={class:"space-y-1.5"},Wn={class:"flex items-center gap-2 flex-wrap"},Gn={class:"text-xs text-gray-500"},Jn=["title"],qn={class:"text-xs text-gray-500 dark:text-gray-400"},Qn={key:0,class:"rounded-lg border border-default bg-elevated/40 p-2.5 space-y-1"},Zn={class:"flex items-center gap-1.5 flex-wrap"},Xn={class:"text-xs text-gray-600 dark:text-gray-400 line-clamp-3"},Yn=["title"],ea=se({__name:"FailureClusterCard",props:{cluster:{}},setup(s){const _=s,v=$(()=>Math.max(0,_.cluster.sameRunCaseCount-1)),k=$(()=>{const h=_.cluster.diagnosis;return h&&h.status==="completed"&&h.summary?h:null}),I=h=>h==="high"?"success":h==="medium"?"warning":"neutral";return(h,a)=>{const u=ge,i=Ae,P=re,U=De,b=pe;return t(),w(b,{icon:"i-lucide-layers","icon-class":"text-primary",title:"Failure cluster",help:"cluster.concept"},{actions:g(()=>[s.cluster.isNew?(t(),w(u,{key:0,color:"warning",variant:"subtle",size:"sm"},{default:g(()=>[...a[0]||(a[0]=[y("New",-1)])]),_:1})):l("",!0),s.cluster.status&&s.cluster.status!=="open"?(t(),w(u,{key:1,color:s.cluster.status==="resolved"?"success":"neutral",variant:"subtle",size:"sm",class:"capitalize"},{default:g(()=>[y(r(s.cluster.status),1)]),_:1},8,["color"])):l("",!0)]),default:g(()=>[n("div",Hn,[n("div",Kn,[n("div",Wn,[s.cluster.errorType?(t(),w(u,{key:0,color:e(ws)(s.cluster.errorType),variant:"soft",size:"sm"},{default:g(()=>[y(r(s.cluster.errorType),1)]),_:1},8,["color"])):l("",!0),n("span",Gn,r(s.cluster.occurrences??0)+" occurrence"+r((s.cluster.occurrences??0)===1?"":"s"),1)]),n("p",{class:"font-mono text-xs text-gray-600 dark:text-gray-400 break-all line-clamp-2",title:s.cluster.signature},r(s.cluster.signature),9,Jn)]),n("p",qn,[e(v)>0?(t(),o(B,{key:0},[y(" Matches "+r(e(v))+" other failing "+r(e(v)===1?"test":"tests")+" in this run. ",1)],64)):l("",!0),s.cluster.isNew?(t(),o(B,{key:2},[y("Opened a new cluster in this run.")],64)):(t(),o(B,{key:1},[a[1]||(a[1]=y(" Known failure — first seen in ",-1)),d(i,{to:`/test-runs/${s.cluster.firstSeenRunId}`,class:"text-primary hover:underline"},{default:g(()=>[y(" run #"+r(s.cluster.firstSeenRunId),1)]),_:1},8,["to"]),s.cluster.firstSeenAt?(t(),o(B,{key:0},[y(" ("+r(("formatRelativeTime"in h?h.formatRelativeTime:e(Se))(s.cluster.firstSeenAt))+")",1)],64)):l("",!0),a[2]||(a[2]=y(". ",-1))],64))]),e(k)?(t(),o("div",Qn,[n("div",Zn,[d(P,{name:"i-lucide-sparkles",class:"size-3.5 text-primary shrink-0"}),a[3]||(a[3]=n("span",{class:"text-xs font-medium"},"AI verdict",-1)),e(k).category?(t(),w(u,{key:0,color:"neutral",variant:"soft",size:"xs"},{default:g(()=>[y(r(e(k).category),1)]),_:1})):l("",!0),e(k).confidence?(t(),w(u,{key:1,color:I(e(k).confidence),variant:"soft",size:"xs"},{default:g(()=>[y(r(e(k).confidence)+" confidence ",1)]),_:1},8,["color"])):l("",!0)]),n("p",Xn,r(e(k).summary),1)])):l("",!0),s.cluster.triageNote?(t(),o("p",{key:1,class:"text-xs italic text-gray-500 dark:text-gray-400",title:s.cluster.triageNote}," “"+r(s.cluster.triageNote)+"” ",9,Yn)):l("",!0),d(U,{to:`/failure-clusters/${s.cluster.id}`,size:"sm",color:"primary",variant:"solid",block:"","trailing-icon":"i-lucide-arrow-right"},{default:g(()=>[...a[4]||(a[4]=[y(" Open cluster investigation ",-1)])]),_:1},8,["to"])])]),_:1})}}}),ta=Object.assign(ea,{__name:"FailureClusterCard"}),sa={class:"space-y-3"},na={class:"text-xs text-gray-400 inline-flex items-center gap-1"},aa={key:0,class:"text-primary"},oa={key:0,class:"flex items-center justify-between gap-2 rounded-lg border border-default bg-elevated/40 p-2.5"},ra={class:"inline-flex items-center gap-2 text-sm text-gray-500"},ia={key:1,class:"flex items-center gap-2"},la={key:2,class:"rounded-lg border border-dashed border-default p-4 text-center text-gray-400"},ua={class:"text-sm inline-flex items-center gap-1 justify-center"},ca={class:"pt-1 text-center"},da=se({__name:"TestCaseAiCard",props:{testRunsCaseId:{}},setup(s){const _=s,{aiStatus:v}=ps(),k=qt(),{copy:I,copied:h}=_t(),a=j(null),u=j(!1),i=j(null),P=j([]),U=j(0),b=j(0),x=j(null),F=j(!1),N=j(!1),p=j(null),C=j(!1),R=j("");async function H(){F.value=!0;try{const m=await $fetch(`/api/test-run-cases/${_.testRunsCaseId}/diagnosis-context`,{query:{format:"json"}});i.value=m.text,P.value=m.sections,U.value=m.tokenEstimate,b.value=m.imageTokenEstimate??0,x.value=m.coverage}catch{i.value=null,P.value=[],U.value=0,x.value=null}finally{F.value=!1}}async function L(){try{const m=await $fetch(`/api/test-run-cases/${_.testRunsCaseId}/diagnosis`);a.value=m.diagnosis}catch{}}pt(()=>{L(),H()});const K=$(()=>{const m=a.value?.details;if(!m)return[];const f=[];if(Array.isArray(m.evidence)&&f.push(...m.evidence),Array.isArray(m.hypotheses))for(const A of m.hypotheses)Array.isArray(A?.evidence)&&f.push(...A.evidence);return xs(f)});function D(m){p.value=m,N.value=!0}function Q(m){R.value=R.value?`${R.value}
2
2
 
3
3
  ${m}`:m,C.value=!0}function ae(){i.value&&I(i.value,{toast:"AI context copied"})}async function J(m=!1){u.value=!0;try{const f=m?`/api/test-run-cases/${_.testRunsCaseId}/diagnose?force=true`:`/api/test-run-cases/${_.testRunsCaseId}/diagnose`,A=R.value.trim()?{additionalContext:R.value.trim()}:void 0;a.value=await $fetch(f,{method:"POST",body:A})}catch(f){const A=f?.statusCode;A===409?(k.add({title:"Diagnosis already running",color:"warning"}),L()):A===503?k.add({title:"AI diagnosis is not configured",color:"warning"}):k.add({title:"Diagnosis failed",description:$s(f),color:"error"})}finally{u.value=!1}}function ie(m){return m.status==="running"&&Date.now()-new Date(m.updatedAt).getTime()>300*1e3}const z=$(()=>a.value&&(a.value.status==="completed"||a.value.status==="failed")),ye=$(()=>!a.value||a.value.status==="failed"||a.value.status==="running"&&ie(a.value)),ue=$(()=>a.value?.status==="running"&&!ie(a.value)&&!u.value);return(m,f)=>{const A=De,G=re,Z=ys,te=Ss,O=hs,Y=yt,X=vs,ce=Ae,M=pe;return t(),w(M,{icon:"i-lucide-sparkles","icon-class":"text-primary",title:"AI diagnosis",help:"case.ai"},{actions:g(()=>[d(A,{size:"xs",color:"neutral",variant:"outline",icon:e(h)?"i-lucide-check":"i-lucide-clipboard",loading:e(F),disabled:!e(i),title:"Copy the full evidence context to paste into your own AI assistant",onClick:ae},{default:g(()=>[y(r(e(h)?"Copied":"Copy AI context"),1)]),_:1},8,["icon","loading","disabled"])]),default:g(()=>[n("div",sa,[n("p",na,[d(G,{name:"i-lucide-triangle-alert",class:"size-3 shrink-0"}),f[6]||(f[6]=y(" AI-generated — verify before applying. ",-1))]),e(v)?.configured?(t(),w(Z,{key:0,sections:e(P),"not-applicable":e(x)?.notApplicable,"token-estimate":e(U),loading:e(F),onViewSection:D,onOpen:f[0]||(f[0]=V=>N.value=!0)},null,8,["sections","not-applicable","token-estimate","loading"])):l("",!0),e(v)?.configured?(t(),o(B,{key:1},[n("div",null,[n("button",{class:"flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-gray-700 dark:hover:text-gray-300",onClick:f[1]||(f[1]=V=>C.value=!e(C))},[d(G,{name:e(C)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5"},null,8,["name"]),f[7]||(f[7]=y(" Additional context ",-1)),e(R).trim()?(t(),o("span",aa,"(1)")):l("",!0)]),e(C)?(t(),w(te,{key:0,modelValue:e(R),"onUpdate:modelValue":f[2]||(f[2]=V=>fe(R)?R.value=V:null),placeholder:"e.g. We deployed a new auth middleware yesterday…",rows:3,class:"w-full text-sm mt-1"},null,8,["modelValue"])):l("",!0)]),e(ue)?(t(),o("div",oa,[n("span",ra,[d(G,{name:"i-lucide-loader-circle",class:"size-4 animate-spin text-primary shrink-0"}),f[8]||(f[8]=y(" Diagnosis in progress… ",-1))]),d(A,{size:"xs",color:"neutral",variant:"outline",icon:"i-lucide-refresh-cw",loading:e(u),onClick:L},{default:g(()=>[...f[9]||(f[9]=[y(" Refresh ",-1)])]),_:1},8,["loading"])])):(t(),o("div",ia,[e(ye)?(t(),w(A,{key:0,icon:"i-lucide-sparkles",size:"sm",color:"primary",variant:"solid",loading:e(u),onClick:f[3]||(f[3]=V=>J(e(a)?.status==="running"))},{default:g(()=>[y(r(e(a)?.status==="running"?"Restart diagnosis":"Diagnose with AI"),1)]),_:1},8,["loading"])):e(a)?.status==="completed"?(t(),w(A,{key:1,icon:"i-lucide-refresh-cw",size:"xs",color:"primary",variant:"soft",loading:e(u),onClick:f[4]||(f[4]=V=>J(!0))},{default:g(()=>[...f[10]||(f[10]=[y(" Re-diagnose ",-1)])]),_:1},8,["loading"])):l("",!0)])),e(z)?(t(),w(O,{key:2,diagnosis:e(a),onViewSection:D,onPrefillContext:Q},null,8,["diagnosis"])):l("",!0)],64)):(t(),o("div",la,[n("p",ua,[f[11]||(f[11]=y(" AI diagnosis is not configured ",-1)),d(Y,{topic:"cluster.ai-setup"})]),f[13]||(f[13]=n("p",{class:"text-xs mt-2 max-w-xs mx-auto"},[y(" Use "),n("strong",null,"Copy AI context"),y(" above to grab the full evidence bundle for your own AI tool, or configure a provider. ")],-1)),d(A,{to:"/settings/ai",size:"xs",color:"neutral",variant:"outline",class:"mt-3"},{default:g(()=>[...f[12]||(f[12]=[y(" Configure in Settings ",-1)])]),_:1})])),d(X,{open:e(N),sections:e(P),"token-estimate":e(U),"image-token-estimate":e(b),loading:e(F),"focus-section":e(p),"cited-sections":e(K),"not-applicable-sections":e(x)?.notApplicable,"onUpdate:open":f[5]||(f[5]=V=>{N.value=V,V||(p.value=null)}),onRefresh:H},null,8,["open","sections","token-estimate","image-token-estimate","loading","focus-section","cited-sections","not-applicable-sections"]),n("div",ca,[d(ce,{to:"/mcp",class:"inline-flex items-center gap-1 text-xs text-gray-400 hover:text-primary transition-colors"},{default:g(()=>[d(G,{name:"i-lucide-bot",class:"size-3"}),f[14]||(f[14]=y(" Query this failure from your AI agent via MCP ",-1))]),_:1})])])]),_:1})}}}),ma=Object.assign(da,{__name:"TestCaseAiCard"});function bt(s,_,v){const k=j(null),I=j(!1),h=j(!1);async function a(){const u=s();if(!(!u||!$e(_)||I.value)){h.value=!0,I.value=!0;try{k.value=await $fetch(u)}catch{k.value=null}finally{I.value=!1}}}return pt(()=>{ve(()=>$e(_),u=>{u&&(v||h.value)&&!k.value&&a()},{immediate:!0})}),{data:k,pending:I,load:a}}function fa(s,_,v,k={}){return bt(()=>{const I=$e(s),h=$e(_);return I&&h?`/api/test-runs/${I}/cases/${h}/trace-stacks`:null},v,k.auto??!0)}function ga(s,_,v,k={}){return bt(()=>{const I=$e(s),h=$e(_);return I&&h?`/api/test-runs/${I}/cases/${h}/trace-network`:null},v,k.auto??!1)}const pa={class:"max-h-[32rem] overflow-y-auto"},ya={key:0,class:"mb-2 flex items-center gap-1.5 text-xs text-gray-400 dark:text-gray-500"},ha={key:0,class:"mt-3 flex items-center gap-1.5 text-xs text-gray-400 dark:text-gray-500"},va=se({__name:"TestSourceCard",props:{frames:{},testSource:{},runId:{},testRunsCaseId:{},hasTrace:{type:Boolean},projectKey:{},projectName:{},storageKey:{}},setup(s,{expose:_}){const v=s,{data:k,pending:I}=fa(()=>v.runId,()=>v.testRunsCaseId,()=>v.hasTrace,{auto:!0}),h=$(()=>k.value?.status==="ok"?k.value.frames??[]:[]),a=$(()=>h.value.length>0),u=$(()=>v.frames?.length??0),i=$(()=>u.value>0||!!v.testSource),P=j(null),U=$({get:()=>P.value??(a.value?"trace":"captured"),set:N=>{P.value=N}}),b=$(()=>[{label:`Full stack (${h.value.length})`,value:"trace"},{label:`Captured (${u.value||1})`,value:"captured"}]),x=$(()=>U.value==="trace"&&a.value?h.value.length:u.value||null),F=j(null);return _({reveal:()=>F.value?.reveal()}),(N,p)=>{const C=We,R=re,H=Ds,L=Is,K=ht,D=Je,Q=Oe,ae=Ge;return t(),w(ae,{ref_key:"card",ref:F,"storage-key":s.storageKey,icon:"i-lucide-code",count:e(x),title:"Test source",help:"case.test-source"},Qt({folded:g(()=>[e(U)==="trace"&&e(a)?(t(),o(B,{key:0},[y(" Full call stack from the trace"+r(e(k)?.hasSources===!1?" (recorded without sources)":""),1)],64)):e(u)>1?(t(),o(B,{key:1},[y(" The failing line and "+r(e(u)-1)+" caller"+r(e(u)-1===1?"":"s"),1)],64)):(t(),o(B,{key:2},[y("Source around the failing assertion")],64))]),default:g(()=>[n("div",pa,[e(U)==="trace"&&e(a)?(t(),o(B,{key:0},[e(k)?.hasSources===!1?(t(),o("p",ya,[d(R,{name:"i-lucide-info",class:"size-3.5 shrink-0"}),p[1]||(p[1]=y(" Trace recorded without sources — frame list only. ",-1))])):l("",!0),d(H,{frames:e(h),"project-key":s.projectKey,"project-name":s.projectName},null,8,["frames","project-key","project-name"])],64)):(t(),o(B,{key:1},[s.frames?.length?(t(),w(L,{key:0,frames:s.frames,"project-key":s.projectKey,"project-name":s.projectName},null,8,["frames","project-key","project-name"])):s.testSource?(t(),w(K,{key:1,text:"```typescript\n"+s.testSource+"\n```"},null,8,["text"])):s.hasTrace&&e(I)?(t(),w(D,{key:2,text:"Loading call stack from trace…"})):l("",!0)],64))]),s.hasTrace?l("",!0):(t(),o("p",ha,[d(R,{name:"i-lucide-info",class:"size-3.5 shrink-0"}),n("span",null,[p[3]||(p[3]=y(" Want to go deeper? Record traces (",-1)),p[4]||(p[4]=n("code",null,"trace: 'retain-on-failure'",-1)),p[5]||(p[5]=y(") to see the full call stack with source here. ",-1)),d(Q,{to:"ui-overview#trace-powered-deep-views","no-icon":"",class:"underline"},{default:g(()=>[...p[2]||(p[2]=[y("Learn more",-1)])]),_:1})])]))]),_:2},[e(a)&&e(i)?{name:"actions",fn:g(()=>[d(C,{modelValue:e(U),"onUpdate:modelValue":p[0]||(p[0]=J=>fe(U)?U.value=J:null),items:e(b),size:"xs",variant:"link",ui:{list:"gap-2",trigger:"px-1.5"}},null,8,["modelValue","items"])]),key:"0"}:void 0]),1032,["storage-key","count"])}}}),xa=Object.assign(va,{__name:"TestSourceCard"}),_a={class:"space-y-3"},ka={class:"divide-y divide-default"},ba={class:"flex items-center gap-2 min-w-0"},wa={class:"text-sm truncate"},$a={key:0,class:"text-xs text-gray-400 shrink-0"},Ca=se({__name:"TestCaseEvidenceCard",props:{attachments:{},traces:{},storageKey:{}},setup(s,{expose:_}){const v=s,k=Ee(),I=$(()=>v.attachments.filter(x=>Te(x.path,x.contentType)).length),h=$(()=>v.attachments.filter(x=>je(x.path,x.contentType)).length),a=$(()=>v.attachments.filter(x=>!Te(x.path,x.contentType)&&!je(x.path,x.contentType))),u=$(()=>I.value+h.value+v.traces.length+a.value.length),i=$(()=>{const x=[];return I.value&&x.push(`${I.value} screenshot${I.value===1?"":"s"}`),h.value&&x.push(`${h.value} video${h.value===1?"":"s"}`),v.traces.length&&x.push(`${v.traces.length} trace${v.traces.length===1?"":"s"}`),a.value.length&&x.push(`${a.value.length} file${a.value.length===1?"":"s"}`),x.join(" · ")||"No evidence captured"});function P(x,F){return vt(x,F,k.app?.baseURL)}function U(x){return x.split("/").pop()||x}const b=j(null);return _({reveal:()=>b.value?.reveal?.()}),(x,F)=>{const N=Rs,p=Ls,C=zs,R=re,H=De,L=Ms,K=kt,D=Ge;return t(),w(D,{ref_key:"card",ref:b,"storage-key":s.storageKey,icon:"i-lucide-camera",title:"Failure evidence",count:e(u),help:"case.evidence"},{folded:g(()=>[y(r(e(i)),1)]),default:g(()=>[n("div",_a,[d(N,{attachments:s.attachments},null,8,["attachments"]),d(p,{attachments:s.attachments},null,8,["attachments"]),d(C,{traces:s.traces},null,8,["traces"]),e(a).length?(t(),w(L,{key:0,icon:"i-lucide-paperclip",label:"Attachments",count:e(a).length,collapsible:!1},{default:g(()=>[n("div",ka,[(t(!0),o(B,null,ee(e(a),Q=>(t(),o("div",{key:Q.id,class:"flex items-center justify-between gap-2 px-3 py-2"},[n("div",ba,[d(R,{name:"i-lucide-file",class:"size-4 text-gray-400 shrink-0"}),n("span",wa,r(U(Q.path)),1),Q.size?(t(),o("span",$a,r(("formatBytes"in x?x.formatBytes:e(we))(Q.size)),1)):l("",!0)]),d(H,{to:P(Q.path,Q.contentType),target:"_blank",icon:"i-lucide-external-link",size:"xs",color:"neutral",variant:"soft",label:"Open"},null,8,["to"])]))),128))])]),_:1},8,["count"])):l("",!0),e(u)===0?(t(),w(K,{key:1,icon:"i-lucide-camera-off",text:"No screenshots, video or traces captured"})):l("",!0)])]),_:1},8,["storage-key","count"])}}}),Ta=Object.assign(Ca,{__name:"TestCaseEvidenceCard"}),Sa={class:"space-y-1 max-h-80 overflow-y-auto"},Da={class:"min-w-0 flex-1"},Ia={class:"flex items-center gap-2"},Ra={class:"truncate"},La={key:0,class:"text-xs text-gray-400 mt-0.5 ml-0"},za=se({__name:"TestCaseConsoleCard",props:{entries:{}},setup(s){function _(k){switch(k){case"error":return"error";case"warning":return"warning";case"assert":return"error";default:return"neutral"}}function v(k){switch(k){case"error":return"i-lucide-octagon-x";case"warning":return"i-lucide-alert-triangle";case"assert":return"i-lucide-octagon-x";default:return"i-lucide-message-square"}}return(k,I)=>{const h=re,a=ge,u=pe;return s.entries.length>0?(t(),w(u,{key:0,icon:"i-lucide-terminal",title:"Console output",count:s.entries.length,help:"case.console"},{default:g(()=>[n("div",Sa,[(t(!0),o(B,null,ee(s.entries,(i,P)=>(t(),o("div",{key:P,class:"flex items-start gap-2 py-1.5 px-2 rounded hover:bg-gray-50 dark:hover:bg-gray-800 text-sm"},[d(h,{name:v(i.type),class:W([i.type==="error"||i.type==="assert"?"text-red-500":i.type==="warning"?"text-amber-500":"text-gray-400","size-4 mt-0.5 shrink-0"])},null,8,["name","class"]),n("div",Da,[n("div",Ia,[d(a,{color:_(i.type),variant:"soft",size:"xs",class:"shrink-0"},{default:g(()=>[y(r(i.type),1)]),_:2},1032,["color"]),n("span",Ra,r(i.text),1)]),i.location?(t(),o("div",La,r(i.location),1)):l("",!0)])]))),128))])]),_:1},8,["count"])):l("",!0)}}}),Ma=Object.assign(za,{__name:"TestCaseConsoleCard"}),Na={key:0,class:"space-y-4 text-sm"},ja={class:"space-y-1.5"},Aa={class:"flex items-center gap-2"},Pa={key:0,class:"text-xs text-gray-500"},Ua={class:"block text-xs break-all text-gray-700 dark:text-gray-300"},Ba={key:0,class:"text-xs text-red-600 dark:text-red-400 font-mono"},Fa={class:"flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-gray-400"},Va={key:0,class:"font-mono"},Ea={key:1,class:"font-mono"},Oa={key:2},Ha={key:3,title:"Bytes on the wire"},Ka={class:"tabular-nums"},Wa={key:0},Ga={class:"flex h-2 rounded overflow-hidden bg-gray-100 dark:bg-gray-800"},Ja=["title"],qa={class:"flex flex-wrap gap-x-3 gap-y-1 mt-1.5 text-xs text-gray-500"},Qa={class:"tabular-nums"},Za={class:"text-xs font-medium text-gray-500 dark:text-gray-400 mb-1.5 capitalize"},Xa={key:0,class:"rounded border border-default divide-y divide-default max-h-48 overflow-y-auto"},Ya={class:"text-gray-500 dark:text-gray-400 shrink-0"},eo={class:"break-all text-gray-700 dark:text-gray-300"},to={key:1,class:"text-xs text-gray-400"},so={key:1},no={key:0,class:"rounded border border-default p-2"},ao=["src","alt"],oo={key:1,class:"max-h-96 overflow-y-auto"},ro={key:0,class:"mt-1 text-xs text-gray-400"},io={key:2,class:"text-xs text-gray-400"},lo={key:2,class:"text-xs text-gray-400"},uo=se({__name:"TraceNetworkDrawer",props:{open:{type:Boolean},entry:{},runId:{},testRunsCaseId:{}},emits:["update:open"],setup(s,{emit:_}){const v=s,k=_,I=[{key:"dns",label:"DNS",color:"bg-sky-400"},{key:"connect",label:"Connect",color:"bg-violet-400"},{key:"ssl",label:"TLS",color:"bg-rose-400"},{key:"send",label:"Send",color:"bg-amber-400"},{key:"wait",label:"Wait",color:"bg-blue-400"},{key:"receive",label:"Receive",color:"bg-emerald-400"}],h=$(()=>{const b=v.entry?.timings;return b?I.map(x=>({...x,value:b[x.key]??-1})).filter(x=>typeof x.value=="number"&&x.value>=0):[]}),a=$(()=>h.value.reduce((b,x)=>b+x.value,0)),u=$(()=>{const b=v.entry?.requestPostData??"";return b.startsWith("{")||b.startsWith("[")}),i=j(null),P=j(!1),U=new Map;return ve(()=>[v.open,v.entry?.bodySha1],async([b,x])=>{if(i.value=null,!b||!x||!v.runId)return;const F=U.get(x);if(F){i.value=F;return}P.value=!0;try{const N=await $fetch(`/api/test-runs/${v.runId}/cases/${v.testRunsCaseId}/trace-network-body`,{query:{sha1:x}});U.set(x,N),i.value=N}catch{i.value={status:"not-found"}}finally{P.value=!1}},{immediate:!0}),(b,x)=>{const F=ge,N=Es,p=Je,C=Os;return t(),w(C,{open:s.open,title:"Request detail",ui:{content:"max-w-xl"},"onUpdate:open":x[0]||(x[0]=R=>k("update:open",R))},{body:g(()=>[s.entry?(t(),o("div",Na,[n("div",ja,[n("div",Aa,[d(F,{color:("httpMethodColor"in b?b.httpMethodColor:e(He))(s.entry.method),variant:"soft",size:"sm",class:"font-mono shrink-0"},{default:g(()=>[y(r(s.entry.method),1)]),_:1},8,["color"]),d(F,{color:("httpStatusColor"in b?b.httpStatusColor:e(Ke))(s.entry.status),variant:"soft",size:"sm",class:"font-mono shrink-0 tabular-nums"},{default:g(()=>[y(r(s.entry.status>0?s.entry.status:"—"),1)]),_:1},8,["color"]),s.entry.statusText?(t(),o("span",Pa,r(s.entry.statusText),1)):l("",!0)]),n("code",Ua,r(s.entry.url),1),s.entry.failureText?(t(),o("p",Ba,r(s.entry.failureText),1)):l("",!0),n("div",Fa,[s.entry.resourceType?(t(),o("span",Va,r(s.entry.resourceType),1)):l("",!0),s.entry.mimeType?(t(),o("span",Ea,r(s.entry.mimeType),1)):l("",!0),s.entry.responseBodySize!=null?(t(),o("span",Oa,r(("formatBytes"in b?b.formatBytes:e(we))(s.entry.responseBodySize)),1)):l("",!0),s.entry.transferSize!=null?(t(),o("span",Ha,r(("formatBytes"in b?b.formatBytes:e(we))(s.entry.transferSize))+" transferred",1)):l("",!0),n("span",Ka,r(("formatDuration"in b?b.formatDuration:e(q))(s.entry.duration)),1),s.entry.duringFailure?(t(),w(F,{key:4,color:"error",variant:"subtle",size:"xs"},{default:g(()=>[...x[1]||(x[1]=[y("During failing action",-1)])]),_:1})):l("",!0)])]),e(h).length>0&&e(a)>0?(t(),o("div",Wa,[x[2]||(x[2]=n("p",{class:"text-xs font-medium text-gray-500 dark:text-gray-400 mb-1.5"},"Timing",-1)),n("div",Ga,[(t(!0),o(B,null,ee(e(h),R=>(t(),o("div",{key:R.key,class:W(R.color),style:Ce({width:`${Math.max(.5,R.value/e(a)*100)}%`}),title:`${R.label}: ${("formatDuration"in b?b.formatDuration:e(q))(R.value)}`},null,14,Ja))),128))]),n("div",qa,[(t(!0),o(B,null,ee(e(h),R=>(t(),o("span",{key:R.key,class:"inline-flex items-center gap-1"},[n("span",{class:W(["size-2 rounded-full",R.color])},null,2),y(" "+r(R.label)+" ",1),n("span",Qa,r(("formatDuration"in b?b.formatDuration:e(q))(R.value)),1)]))),128))])])):l("",!0),(t(),o(B,null,ee(["request","response"],R=>n("div",{key:R},[n("p",Za,r(R)+" headers",1),(R==="request"?s.entry.requestHeaders:s.entry.responseHeaders).length>0?(t(),o("div",Xa,[(t(!0),o(B,null,ee(R==="request"?s.entry.requestHeaders:s.entry.responseHeaders,H=>(t(),o("div",{key:`${R}-${H.name}`,class:"px-2 py-1 text-xs font-mono flex gap-2"},[n("span",Ya,r(H.name)+":",1),n("span",eo,r(H.value),1)]))),128))])):(t(),o("p",to,"None recorded."))])),64)),s.entry.requestPostData?(t(),o("div",so,[x[3]||(x[3]=n("p",{class:"text-xs font-medium text-gray-500 dark:text-gray-400 mb-1.5"},"Request body",-1)),d(N,{code:s.entry.requestPostData,lang:e(u)?"json":"text"},null,8,["code","lang"])])):l("",!0),n("div",null,[x[4]||(x[4]=n("p",{class:"text-xs font-medium text-gray-500 dark:text-gray-400 mb-1.5"},"Response body",-1)),e(P)?(t(),w(p,{key:0,text:"Loading body…",padded:!1})):e(i)?(t(),o(B,{key:1},[e(i).status==="ok"&&e(i).kind==="image"?(t(),o("div",no,[n("img",{src:e(i).dataUri,alt:s.entry.url,class:"max-w-full max-h-96"},null,8,ao)])):e(i).status==="ok"?(t(),o("div",oo,[d(N,{code:e(i).content??"",lang:e(i).kind==="json"?"json":"text"},null,8,["code","lang"]),e(i).truncated?(t(),o("p",ro,"Preview truncated.")):l("",!0)])):(t(),o("p",io,r(e(i).status==="too-large"?`Body too large to preview (${("formatBytes"in b?b.formatBytes:e(we))(e(i).size??0)}) — open the trace viewer to inspect it.`:e(i).status==="unsupported"?`No preview for ${e(i).mimeType||"this content type"} — open the trace viewer to inspect it.`:"Body not stored in the trace."),1))],64)):s.entry.bodySha1?l("",!0):(t(),o("p",lo,"No body captured for this request."))])])):l("",!0)]),_:1},8,["open"])}}}),co=Object.assign(uo,{__name:"TraceNetworkDrawer"}),mo={class:"flex items-center justify-between gap-2 mb-2"},fo={key:0,class:"hidden sm:flex items-center gap-1.5 text-xs text-gray-400"},go={class:"space-y-1 max-h-[28rem] overflow-y-auto"},po=["title","onClick"],yo={class:"flex items-center gap-2 text-sm min-w-0"},ho={class:"truncate text-xs flex-1 min-w-0"},vo={key:0,class:"shrink-0 text-xs text-gray-400 font-mono hidden md:inline"},xo={key:1,class:"shrink-0 text-xs text-gray-400 tabular-nums hidden sm:inline"},_o={class:"relative h-1.5 mt-1 rounded bg-gray-100 dark:bg-gray-800 overflow-hidden"},ko={key:0,class:"mt-2 text-xs text-gray-400 dark:text-gray-500"},bo=se({__name:"TraceNetworkList",props:{data:{},runId:{},testRunsCaseId:{}},setup(s){const _=s,v=j("all"),k=$(()=>_.data.requests??[]),I=$(()=>({total:k.value.length,failed:k.value.filter(C=>C.failed).length,duringFailure:k.value.filter(C=>C.duringFailure).length})),h=$(()=>[{label:`All (${I.value.total})`,value:"all"},{label:`Failed (${I.value.failed})`,value:"failed",disabled:I.value.failed===0},{label:`During failure (${I.value.duringFailure})`,value:"duringFailure",disabled:I.value.duringFailure===0}]),a=$(()=>v.value==="failed"?k.value.filter(C=>C.failed):v.value==="duringFailure"?k.value.filter(C=>C.duringFailure):k.value);function u(C){try{return new URL(C).pathname||C}catch{return C}}const i=$(()=>Math.max(1,_.data.timelineDuration??1));function P(C){const R=Math.max(0,Math.min(100,C.start/i.value*100)),H=Math.min(100-R,Math.max(1.5,C.duration/i.value*100));return{left:`${R}%`,width:`${H}%`}}const U=$(()=>{const C=_.data.failingWindow;if(!C||C.end<=C.start)return null;const R=Math.max(0,Math.min(100,C.start/i.value*100)),H=Math.max(.5,Math.min(100-R,(C.end-C.start)/i.value*100));return{left:`${R}%`,width:`${H}%`}});function b(C){return C.failed?"bg-red-500":C.duration>1e3?"bg-orange-400":"bg-gray-400 dark:bg-gray-500"}function x(C){return C.failed?"border-l-2 border-l-red-400 dark:border-l-red-600":C.duringFailure?"border-l-2 border-l-amber-400 dark:border-l-amber-600":"border-l-2 border-l-transparent"}const F=j(null),N=j(!1);function p(C){F.value=C,N.value=!0}return(C,R)=>{const H=We,L=ge,K=co;return t(),o("div",null,[n("div",mo,[d(H,{modelValue:e(v),"onUpdate:modelValue":R[0]||(R[0]=D=>fe(v)?v.value=D:null),items:e(h),size:"xs",variant:"link",ui:{list:"gap-2",trigger:"px-1.5"}},null,8,["modelValue","items"]),s.data.failingWindow?(t(),o("span",fo,[...R[2]||(R[2]=[n("span",{class:"inline-block w-3 h-2 rounded-sm bg-red-500/10 border border-red-300 dark:border-red-800"},null,-1),y(" failing action ",-1)])])):l("",!0)]),n("div",go,[(t(!0),o(B,null,ee(e(a),D=>(t(),o("button",{key:D.index,type:"button",class:W([x(D),"w-full rounded bg-gray-50/60 dark:bg-gray-800/40 py-1.5 px-2 text-left cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800"]),title:D.url,onClick:Q=>p(D)},[n("div",yo,[d(L,{color:("httpMethodColor"in C?C.httpMethodColor:e(He))(D.method),variant:"soft",size:"xs",class:"font-mono shrink-0"},{default:g(()=>[y(r(D.method),1)]),_:2},1032,["color"]),d(L,{color:("httpStatusColor"in C?C.httpStatusColor:e(Ke))(D.status),variant:"soft",size:"xs",class:"font-mono shrink-0 tabular-nums",title:D.failureText||D.statusText},{default:g(()=>[y(r(D.status>0?D.status:"—"),1)]),_:2},1032,["color","title"]),n("code",ho,r(u(D.url)),1),D.resourceType?(t(),o("span",vo,r(D.resourceType),1)):l("",!0),D.responseBodySize!=null?(t(),o("span",xo,r(("formatBytes"in C?C.formatBytes:e(we))(D.responseBodySize)),1)):l("",!0),n("span",{class:W(["ml-1 shrink-0 text-xs tabular-nums",D.duration>1e3?"text-red-600 font-medium":D.duration>500?"text-orange-500":"text-gray-500"])},r(("formatDuration"in C?C.formatDuration:e(q))(D.duration)),3)]),n("div",_o,[e(U)?(t(),o("div",{key:0,class:"absolute inset-y-0 bg-red-500/10 border-x border-red-300/60 dark:border-red-800/60",style:Ce(e(U))},null,4)):l("",!0),n("div",{class:W(["absolute inset-y-0 rounded-full",b(D)]),style:Ce(P(D))},null,6)])],10,po))),128))]),s.data.truncated?(t(),o("p",ko," Showing the first "+r(e(k).length)+" of "+r(s.data.totalBeforeCap)+" requests recorded in the trace. ",1)):l("",!0),d(K,{open:e(N),"onUpdate:open":R[1]||(R[1]=D=>fe(N)?N.value=D:null),entry:e(F),"run-id":s.runId,"test-runs-case-id":s.testRunsCaseId},null,8,["open","entry","run-id","test-runs-case-id"])])}}}),wo=Object.assign(bo,{__name:"TraceNetworkList"}),$o={class:"tabular-nums"},Co=se({__name:"DurationValue",props:{ms:{default:null},fallback:{default:"—"},unitClass:{default:"text-gray-400/70 dark:text-gray-500/70"}},setup(s){const _=s,v=$(()=>Cs(_.ms));return(k,I)=>(t(),o("span",$o,[e(v)?(t(),o(B,{key:0},[y(r(e(v).value),1),n("span",{class:W(s.unitClass)},r(e(v).unit),3)],64)):(t(),o(B,{key:1},[y(r(s.fallback),1)],64))]))}}),To=Object.assign(Co,{__name:"DurationValue"}),So={class:"flex flex-wrap items-center gap-x-3 gap-y-1"},Do={key:0,class:"flex items-center gap-2 text-xs"},Io={key:0,class:"flex items-center gap-1 text-red-600 dark:text-red-400"},Ro={key:1,class:"flex items-center gap-1 text-amber-600 dark:text-amber-400"},Lo={key:2,class:"text-xs text-gray-400 py-2"},zo={key:1,class:"space-y-1 max-h-[28rem] overflow-y-auto"},Mo=["disabled","onClick"],No={key:1,class:"size-3.5 shrink-0"},jo=["title"],Ao=["title"],Po=["title"],Uo=["title"],Bo=["title"],Fo=["title"],Vo={key:0,class:"px-2 pt-1.5 pb-2 pl-7 space-y-1"},Eo={class:"flex items-center gap-1.5 text-[11px] uppercase tracking-wide text-gray-400"},Oo=["title"],Ho={key:0,class:"shrink-0 text-[10px] uppercase text-gray-400 font-mono hidden sm:inline"},Ko={class:"relative flex-1 h-3 rounded bg-gray-100 dark:bg-gray-800 min-w-0"},Wo={key:1,class:"px-2 pb-2 pl-7 space-y-1.5"},Go={class:"flex items-start gap-2"},Jo={key:0,class:"text-gray-400 shrink-0 font-mono"},qo={class:"font-mono break-all text-gray-700 dark:text-gray-300 flex-1 min-w-0"},Qo=["title"],Zo={key:0,class:"mt-1.5"},Xo=["onClick"],Yo={key:0,class:"mt-1 whitespace-pre-wrap break-all font-mono text-[11px] leading-relaxed text-gray-500 dark:text-gray-400 max-h-48 overflow-y-auto"},er={key:2,class:"mt-3 flex items-center gap-1.5 text-xs text-gray-400 dark:text-gray-500"},tr={key:3,class:"mt-3 flex items-center gap-1.5 text-xs text-gray-400 dark:text-gray-500"},sr=se({__name:"TestCaseNetworkRequests",props:{requests:{},runId:{},testRunsCaseId:{},hasTrace:{type:Boolean}},setup(s,{expose:_}){const v=s,k=j("all"),{data:I,pending:h,load:a}=ga(()=>v.runId,()=>v.testRunsCaseId,()=>!!v.hasTrace),u=j(null),i=$({get:()=>u.value??(v.requests.length===0&&v.hasTrace?"trace":"captured"),set:m=>{u.value=m}});ve(()=>i.value==="trace",m=>{m&&a()},{immediate:!0});const P=$(()=>I.value?.status==="ok"?I.value.requests?.length??0:null),U=$(()=>[{label:`Captured (${v.requests.length})`,value:"captured",disabled:v.requests.length===0},{label:P.value!=null?`Full trace (${P.value})`:"Full trace",value:"trace"}]);function b(){v.hasTrace&&(u.value="trace")}_({showTraceMode:b});const x=j(new Set);function F(m){const f=new Set(x.value);f.has(m)?f.delete(m):f.add(m),x.value=f}const N=j(new Set);function p(m){const f=new Set(N.value);f.has(m)?f.delete(m):f.add(m),N.value=f}function C(m){if(m.length===0)return[];const f=Math.min(...m.map(O=>O.startMs)),A=Math.max(...m.map(O=>O.startMs+O.durMs)),G=Math.max(1,A-f),Z=new Map(m.map(O=>[O.id,O])),te=O=>{let Y=0,X=O;const ce=new Set;for(;X?.parentId&&Z.has(X.parentId)&&!ce.has(X.id)&&(ce.add(X.id),X=Z.get(X.parentId),Y++,!(Y>8)););return Y};return[...m].sort((O,Y)=>O.startMs-Y.startMs||Y.durMs-O.durMs).map(O=>({...O,offsetPct:(O.startMs-f)/G*100,widthPct:Math.max(1.5,O.durMs/G*100),depth:te(O)}))}function R(m){return m.status==="error"?"bg-red-400 dark:bg-red-500":m.kind==="db"?"bg-violet-400 dark:bg-violet-500":m.kind==="client"?"bg-sky-400 dark:bg-sky-500":m.kind==="internal"?"bg-gray-400 dark:bg-gray-500":"bg-emerald-400 dark:bg-emerald-500"}function H(m){const f=m.toLowerCase();return f==="critical"||f==="fatal"?3:f==="error"?2:f==="warning"||f==="warn"?1:0}function L(m){const f=H(m);if(f>=2)return"error";if(f===1)return"warning";const A=m.toLowerCase();return A==="info"||A==="information"?"info":"neutral"}function K(m){try{return new URL(m).pathname||m}catch{return m}}function D(m){return(m.split("/")[1]??m).replace(/^vnd\.[^+]*\+?/,"").replace(/^x-/,"")||m}function Q(m){return m?new Date(m).toLocaleString():""}const ae=$(()=>v.requests.map((m,f)=>{const A=Array.isArray(m.serverLogs)?m.serverLogs:[],G=Array.isArray(m.serverTraces)?m.serverTraces:[];let Z=0,te=0;for(const Y of A){const X=H(Y.level);X>=2?Z++:X===1&&te++}const O=G.find(Y=>!Y.parentId)??G[0];return{...m,_index:f,logs:[...A].sort((Y,X)=>Y.timestamp-X.timestamp),spans:G,serverMs:O?O.durMs:null,errorLogCount:Z,warnLogCount:te,failed:m.status>=400,hasDetail:A.length>0||G.length>0,path:K(m.url)}})),J=$(()=>{let m=0,f=0,A=0,G=0,Z=0;for(const te of ae.value)te.failed&&m++,te.logs.length>0&&f++,te.spans.length>0&&A++,G+=te.errorLogCount,Z+=te.warnLogCount;return{total:ae.value.length,failed:m,withLogs:f,withSpans:A,errorLogs:G,warnLogs:Z}}),ie=$(()=>{let m=ae.value;return k.value==="failed"?m=m.filter(f=>f.failed):k.value==="logs"&&(m=m.filter(f=>f.logs.length>0)),[...m].sort((f,A)=>{const G=Z=>(Z.errorLogCount>0?3:0)+(Z.failed?2:0)+(Z.logs.length>0?1:0);return G(A)-G(f)||f._index-A._index})}),z=$(()=>[{label:`All (${J.value.total})`,value:"all"},{label:`Failed (${J.value.failed})`,value:"failed",disabled:J.value.failed===0},{label:`With logs (${J.value.withLogs})`,value:"logs",disabled:J.value.withLogs===0}]),ye=$(()=>J.value.withLogs>0);function ue(m){return m.errorLogCount>0||m.status>=500?"border-l-2 border-l-red-400 dark:border-l-red-600":m.failed||m.warnLogCount>0?"border-l-2 border-l-amber-400 dark:border-l-amber-600":"border-l-2 border-l-transparent"}return(m,f)=>{const A=re,G=We,Z=Je,te=wo,O=ge,Y=To,X=Oe,ce=pe;return t(),w(ce,{icon:"i-lucide-network",title:"Network & backend logs",count:e(i)==="trace"?e(P):e(J).total,help:"case.network"},{actions:g(()=>[n("div",So,[e(i)==="captured"?(t(),o(B,{key:0},[e(J).errorLogs>0||e(J).warnLogs>0?(t(),o("div",Do,[e(J).errorLogs>0?(t(),o("span",Io,[d(A,{name:"i-lucide-octagon-alert",class:"size-3.5"}),y(r(e(J).errorLogs),1)])):l("",!0),e(J).warnLogs>0?(t(),o("span",Ro,[d(A,{name:"i-lucide-triangle-alert",class:"size-3.5"}),y(r(e(J).warnLogs),1)])):l("",!0)])):l("",!0),d(G,{modelValue:e(k),"onUpdate:modelValue":f[0]||(f[0]=M=>fe(k)?k.value=M:null),items:e(z),size:"xs",variant:"link",ui:{list:"gap-2",trigger:"px-1.5"}},null,8,["modelValue","items"])],64)):l("",!0),s.hasTrace?(t(),w(G,{key:1,modelValue:e(i),"onUpdate:modelValue":f[1]||(f[1]=M=>fe(i)?i.value=M:null),items:e(U),size:"xs",variant:"pill",ui:{list:"gap-1 p-0.5",trigger:"px-2"}},null,8,["modelValue","items"])):l("",!0)])]),default:g(()=>[e(i)==="trace"?(t(),o(B,{key:0},[e(h)||!e(I)?(t(),w(Z,{key:0,text:"Parsing trace network stream…"})):e(I).status==="ok"?(t(),w(te,{key:1,data:e(I),"run-id":s.runId??null,"test-runs-case-id":s.testRunsCaseId??0},null,8,["data","run-id","test-runs-case-id"])):(t(),o("p",Lo,"No network activity recorded in this trace."))],64)):(t(),o("div",zo,[(t(!0),o(B,null,ee(e(ie),M=>(t(),o("div",{key:M._index,class:W([ue(M),"rounded bg-gray-50/60 dark:bg-gray-800/40"])},[n("button",{type:"button",class:W(["w-full flex items-center gap-2 py-1.5 px-2 text-sm text-left",M.hasDetail?"cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800":"cursor-default"]),disabled:!M.hasDetail,onClick:V=>M.hasDetail&&F(M._index)},[M.hasDetail?(t(),w(A,{key:0,name:e(x).has(M._index)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5 shrink-0 text-gray-400"},null,8,["name"])):(t(),o("span",No)),d(O,{color:("httpMethodColor"in m?m.httpMethodColor:e(He))(M.method),variant:"soft",size:"xs",class:"font-mono shrink-0"},{default:g(()=>[y(r(M.method),1)]),_:2},1032,["color"]),d(O,{color:("httpStatusColor"in m?m.httpStatusColor:e(Ke))(M.status),variant:"soft",size:"xs",class:"font-mono shrink-0 tabular-nums"},{default:g(()=>[y(r(M.status||"—"),1)]),_:2},1032,["color"]),n("code",{class:"truncate text-xs flex-1 min-w-0",title:M.url},r(M.path),9,jo),M.contentType?(t(),o("span",{key:2,class:"shrink-0 text-xs text-gray-400 font-mono hidden md:inline",title:`Response content type: ${M.contentType}`},r(D(M.contentType)),9,Ao)):l("",!0),M.errorLogCount>0?(t(),o("span",{key:3,class:"shrink-0 inline-flex items-center gap-1 text-xs text-red-600 dark:text-red-400",title:`${M.errorLogCount} backend error log(s)`},[d(A,{name:"i-lucide-octagon-alert",class:"size-3.5"}),y(r(M.errorLogCount),1)],8,Po)):l("",!0),M.warnLogCount>0?(t(),o("span",{key:4,class:"shrink-0 inline-flex items-center gap-1 text-xs text-amber-600 dark:text-amber-400",title:`${M.warnLogCount} backend warning log(s)`},[d(A,{name:"i-lucide-triangle-alert",class:"size-3.5"}),y(r(M.warnLogCount),1)],8,Uo)):l("",!0),M.serverMs!=null?(t(),o("span",{key:5,class:"shrink-0 inline-flex items-center gap-1 text-xs text-emerald-600 dark:text-emerald-400 tabular-nums",title:`Server-side processing time (${M.spans.length} span${M.spans.length===1?"":"s"})`},[d(A,{name:"i-lucide-server",class:"size-3.5"}),y(r(("formatDuration"in m?m.formatDuration:e(q))(M.serverMs)),1)],8,Bo)):l("",!0),M.startTime?(t(),o("span",{key:6,class:"shrink-0 text-xs text-gray-400 hidden sm:inline",title:Q(M.startTime)},r(("formatRelativeTime"in m?m.formatRelativeTime:e(Se))(M.startTime)),9,Fo)):l("",!0),n("span",{class:W(["ml-1 shrink-0 text-xs tabular-nums",(M.duration??0)>1e3?"text-red-600 font-medium":(M.duration??0)>500?"text-orange-500":"text-gray-500"])},r(("formatDuration"in m?m.formatDuration:e(q))(M.duration)),3)],10,Mo),M.spans.length>0&&e(x).has(M._index)?(t(),o("div",Vo,[n("div",Eo,[d(A,{name:"i-lucide-waypoints",class:"size-3.5"}),f[2]||(f[2]=y("Server trace ",-1))]),(t(!0),o(B,null,ee(C(M.spans),V=>(t(),o("div",{key:V.id,class:"flex items-center gap-2 text-xs",title:V.status==="error"?`${V.name} (error)`:V.name},[n("div",{class:"w-40 sm:w-56 shrink-0 flex items-center gap-1 min-w-0",style:Ce({paddingLeft:`${V.depth*12}px`})},[V.kind?(t(),o("span",Ho,r(V.kind),1)):l("",!0),n("span",{class:W(["truncate font-mono",V.status==="error"?"text-red-600 dark:text-red-400":"text-gray-600 dark:text-gray-300"])},r(V.name),3)],4),n("div",Ko,[n("div",{class:W(["absolute top-0 h-3 rounded",R(V)]),style:Ce({left:`${V.offsetPct}%`,width:`${V.widthPct}%`})},null,6)]),d(Y,{ms:V.durMs,class:"w-12 shrink-0 text-right text-gray-500"},null,8,["ms"])],8,Oo))),128))])):l("",!0),M.logs.length>0&&e(x).has(M._index)?(t(),o("div",Wo,[(t(!0),o(B,null,ee(M.logs,(V,xe)=>(t(),o("div",{key:xe,class:"rounded border border-default bg-white dark:bg-gray-900/60 p-2 text-xs"},[n("div",Go,[d(O,{color:L(V.level),variant:"soft",size:"xs",class:"shrink-0 capitalize"},{default:g(()=>[y(r(V.level),1)]),_:2},1032,["color"]),V.category?(t(),o("span",Jo,"["+r(V.category)+"]",1)):l("",!0),n("span",qo,r(V.message),1),V.timestamp?(t(),o("span",{key:1,class:"shrink-0 text-gray-400 tabular-nums",title:Q(V.timestamp)},r(("formatRelativeTime"in m?m.formatRelativeTime:e(Se))(V.timestamp)),9,Qo)):l("",!0)]),V.stack?(t(),o("div",Zo,[n("button",{type:"button",class:"inline-flex items-center gap-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200",onClick:qe=>p(`${M._index}:${xe}`)},[d(A,{name:e(N).has(`${M._index}:${xe}`)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3"},null,8,["name"]),f[3]||(f[3]=y(" Stack trace ",-1))],8,Xo),e(N).has(`${M._index}:${xe}`)?(t(),o("pre",Yo,r(V.stack),1)):l("",!0)])):l("",!0)]))),128))])):l("",!0)],2))),128))])),e(i)==="captured"&&!e(ye)?(t(),o("p",er,[d(A,{name:"i-lucide-info",class:"size-3.5 shrink-0"}),f[5]||(f[5]=y(" No backend server logs captured — install ",-1)),d(X,{to:"backend-logs","no-icon":"",class:"underline"},{default:g(()=>[...f[4]||(f[4]=[y("a Piwi backend integration",-1)])]),_:1}),f[6]||(f[6]=y(" to see server-side warnings and errors under each request. ",-1))])):l("",!0),s.hasTrace?l("",!0):(t(),o("p",tr,[d(A,{name:"i-lucide-info",class:"size-3.5 shrink-0"}),n("span",null,[f[8]||(f[8]=y(" Want to go deeper? Record traces (",-1)),f[9]||(f[9]=n("code",null,"trace: 'retain-on-failure'",-1)),f[10]||(f[10]=y(") to see every request with headers, timing and bodies here. ",-1)),d(X,{to:"ui-overview#trace-powered-deep-views","no-icon":"",class:"underline"},{default:g(()=>[...f[7]||(f[7]=[y("Learn more",-1)])]),_:1})])]))]),_:1},8,["count"])}}}),nr=Object.assign(sr,{__name:"TestCaseNetworkRequests"}),ar={class:"space-y-2"},or=se({__name:"TestCaseTracesCard",props:{traces:{}},setup(s){return(_,v)=>{const k=Ns,I=pe;return s.traces.length>0?(t(),w(I,{key:0,icon:"i-lucide-bug-play",title:"Traces",count:s.traces.length,help:"case.traces"},{default:g(()=>[n("div",ar,[(t(!0),o(B,null,ee(s.traces,h=>(t(),w(k,{key:h.id,trace:h,class:"py-2 px-3 rounded-lg border"},null,8,["trace"]))),128))])]),_:1},8,["count"])):l("",!0)}}}),rr=Object.assign(or,{__name:"TestCaseTracesCard"}),ir={class:"space-y-3"},lr={class:"flex items-center justify-between px-3 py-2 bg-gray-50 dark:bg-gray-800/50 border-b"},ur={class:"flex items-center gap-2 min-w-0"},cr={class:"text-sm font-medium truncate"},dr={key:0,class:"text-xs text-gray-400 shrink-0"},mr={class:"text-xs text-gray-400"},fr={class:"flex items-center gap-1 shrink-0"},gr=["href"],pr={key:0,class:"bg-gray-100 dark:bg-gray-900"},yr=["src","alt","onClick"],hr={key:1,class:"bg-black"},vr={key:2,class:"bg-gray-50 dark:bg-gray-900"},xr={key:0,class:"flex items-center justify-center py-8"},_r={key:1,class:"p-4 text-red-500 text-sm"},kr={key:2,class:"p-4 overflow-auto max-h-96"},br={class:"text-sm whitespace-pre-wrap font-sans leading-relaxed"},wr=se({__name:"TestCaseAttachmentsCard",props:{attachments:{}},setup(s){const _=s,v=Ee(),k=j(null),I=$(()=>_.attachments.filter(L=>Te(L.path,L.contentType)).map(L=>({src:U(L.path,L.contentType),name:L.name||b(L.path)})));function h(L){k.value=L}const a=new Set([".md",".mdx",".markdown"]),u=new Set(["text/markdown","text/x-markdown"]);function i(L){return L.toLowerCase().split(".").pop()||""}function P(L,K){return!!(a.has(i(L))||K&&u.has(K.toLowerCase()))}function U(L,K){return vt(L,K,v.app?.baseURL)}function b(L){return L.split("/").pop()||L}function x(L){return L==null?"":we(L)}const F=j({}),N=j({}),p=j({}),C=j(new Set);async function R(L){if(F.value[L.id]===void 0&&!p.value[L.id]){p.value[L.id]=!0,N.value[L.id]=null;try{const K=await $fetch(U(L.path,L.contentType),{responseType:"text"});F.value[L.id]=K}catch{N.value[L.id]="Failed to load preview"}finally{p.value[L.id]=!1}}}function H(L,K){const D=new Set(C.value);D.has(L)?D.delete(L):(D.add(L),R(K)),C.value=D}return(L,K)=>{const D=re,Q=De,ae=js,J=As,ie=pe;return s.attachments.length>0?(t(),w(ie,{key:0,icon:"i-lucide-paperclip",title:"Attachments",count:s.attachments.length},{default:g(()=>[n("div",ir,[(t(!0),o(B,null,ee(s.attachments,z=>(t(),o("div",{key:z.id,class:"rounded-lg border overflow-hidden"},[n("div",lr,[n("div",ur,[d(D,{name:e(Te)(z.path,z.contentType)?"i-lucide-image":e(je)(z.path,z.contentType)?"i-lucide-video":P(z.path,z.contentType)?"i-lucide-file-text":"i-lucide-file",class:"size-4 text-gray-400 shrink-0"},null,8,["name"]),n("span",cr,r(b(z.path)),1),z.name&&z.name!==b(z.path)?(t(),o("span",dr,r(z.name),1)):l("",!0),n("span",mr,r(x(z.size)),1)]),n("div",fr,[P(z.path,z.contentType)?(t(),w(Q,{key:0,size:"xs",color:"neutral",variant:"soft",onClick:ye=>H(z.id,z)},{default:g(()=>[y(r(e(C).has(z.id)?"Hide preview":"Preview"),1)]),_:2},1032,["onClick"])):l("",!0),n("a",{href:U(z.path,z.contentType),target:"_blank",class:"text-primary hover:underline text-xs shrink-0"},"Open",8,gr)])]),e(Te)(z.path,z.contentType)?(t(),o("div",pr,[n("img",{src:U(z.path,z.contentType),alt:z.name||"Screenshot",class:"max-w-full max-h-96 object-contain mx-auto cursor-pointer hover:opacity-90 transition-opacity",loading:"lazy",onClick:ye=>h(e(I).findIndex(ue=>ue.src===U(z.path,z.contentType)))},null,8,yr)])):e(je)(z.path,z.contentType)?(t(),o("div",hr,[d(ae,{src:U(z.path,z.contentType)},null,8,["src"])])):P(z.path,z.contentType)&&e(C).has(z.id)?(t(),o("div",vr,[e(p)[z.id]?(t(),o("div",xr,[d(D,{name:"i-lucide-loader-circle",class:"size-5 animate-spin text-gray-400"})])):e(N)[z.id]?(t(),o("div",_r,r(e(N)[z.id]),1)):e(F)[z.id]?(t(),o("div",kr,[n("pre",br,r(e(F)[z.id]),1)])):l("",!0)])):l("",!0)]))),128))]),d(J,{modelValue:e(k),"onUpdate:modelValue":K[0]||(K[0]=z=>fe(k)?k.value=z:null),images:e(I)},null,8,["modelValue","images"])]),_:1},8,["count"])):l("",!0)}}}),$r=Object.assign(wr,{__name:"TestCaseAttachmentsCard"});function Cr(s){return Array.isArray(s)?s.some(_=>_&&typeof _.type=="string"&&_.type.toLowerCase()==="slow"):!1}function Tr(s){const _=[];if(!s)return _;const v=s.steps||[],I=v.filter(a=>a.category==="navigation").filter(a=>a.duration>3e3);if(I.length>0){const a=I.sort((u,i)=>i.duration-u.duration)[0];_.push({type:"warning",message:"Slow navigation detected",details:`"${a.title}" took ${(a.duration/1e3).toFixed(1)}s. The tested page may have performance issues (slow server response, heavy JS bundles, etc.).`})}v.length>20&&_.push({type:"info",message:"Many sequential actions",details:`This test has ${v.length} steps. Consider splitting it into smaller, focused tests for better isolation and faster feedback.`}),s.status==="passed"&&(s.retries||0)>0&&_.push({type:"warning",message:"Flaky test — passed after retries",details:`This test needed ${s.retries} ${s.retries===1?"retry":"retries"} to pass. Consider reviewing locator strategies, adding explicit waits, or checking for race conditions.`});const h=v.filter(a=>a.category==="assertion"&&a.duration>2e3);if(h.length>0){const a=h.sort((u,i)=>i.duration-u.duration)[0];_.push({type:"info",message:"Slow assertions detected",details:`"${a.title}" took ${(a.duration/1e3).toFixed(1)}s. The UI may be slow to render or the assertion timeout may need tuning.`})}return Cr(s.testAnnotations)&&typeof s.duration=="number"&&s.duration<1e4&&_.push({type:"info",message:"test.slow() may be unnecessary",details:`This run finished in ${(s.duration/1e3).toFixed(1)}s, yet the test is marked test.slow(), which triples its timeout budget. If it is consistently this fast, removing test.slow() lets a failure surface sooner.`}),typeof s.timeout=="number"&&s.timeout>0&&typeof s.duration=="number"&&s.duration>0&&s.timeout>=4*s.duration&&s.timeout-s.duration>=3e4&&_.push({type:"info",message:"Oversized timeout",details:`The timeout is ${(s.timeout/1e3).toFixed(0)}s but this run took ${(s.duration/1e3).toFixed(1)}s. A large timeout means a hang or failure waits far longer than necessary — consider lowering it toward the test's real duration.`}),_}const Sr={class:"space-y-4"},Dr=["innerHTML"],Ir={class:"grid grid-cols-1 xl:grid-cols-[3fr_2fr] gap-4"},Rr={class:"space-y-4 xl:order-2"},Lr={class:"space-y-4 xl:order-1 min-w-0"},zr={class:"max-h-96 overflow-y-auto"},Mr={class:"space-y-3"},Nr={key:0},jr={class:"flex flex-wrap items-center gap-x-3 gap-y-1.5 text-xs mb-3"},Ar={class:"font-medium text-gray-600 dark:text-gray-300"},Pr={class:"tabular-nums text-gray-500 dark:text-gray-400"},Ur={class:"text-xs tabular-nums text-gray-400 dark:text-gray-500"},Br={key:0,class:"inline-flex items-center justify-center size-5 rounded-full bg-red-100 dark:bg-red-900/30 text-red-600 dark:text-red-400 text-xs leading-none",title:"Step failed"},Fr={key:1,class:"inline-flex items-center justify-center size-5 rounded-full bg-green-100 dark:bg-green-900/30 text-green-600 dark:text-green-400 text-xs leading-none",title:"Step passed"},Vr={class:"flex items-center gap-2"},Er={key:0,class:"text-xs text-red-500 mt-1 whitespace-pre-wrap break-words font-mono"},Or={class:"min-w-[6rem]"},Hr={class:"flex items-center justify-between gap-2"},Kr={key:0,class:"text-xs tabular-nums text-gray-400 dark:text-gray-500"},Wr={class:"relative mt-1 h-1.5 w-full overflow-hidden rounded-full bg-gray-100 dark:bg-gray-800"},Gr={class:"space-y-4 pt-4"},Jr={key:3,class:"flex flex-col items-center justify-center py-12 text-gray-400"},qr={class:"space-y-4 pt-1"},Qr={key:0,class:"space-y-2"},Zr={class:"flex items-start gap-2"},Xr={class:"space-y-4"},Yr={key:3,class:"text-xs text-gray-400 pt-1"},ei={class:"bg-gray-100 dark:bg-gray-800 px-1 rounded"},ti={class:"text-xs text-gray-400"},si={class:"space-y-4 pt-4"},ni={key:0,class:"space-y-4"},ai={class:"flex items-center justify-end"},oi={class:"text-xs whitespace-nowrap"},ri={class:"text-gray-500"},ii={class:"text-gray-400 ml-1"},li={key:0},ui={key:1,class:"text-gray-400"},ci=["title"],Yi=se({__name:"[id]",async setup(s){let _,v;const k=Zt(),I=Xt(),h=k.params.id,{data:a,refresh:u}=([_,v]=dt(()=>ft(`/api/test-run-cases/${h}`,"$cViH4nbiGI")),_=await _,v(),_),i=j([]);ve(()=>a.value?.testCaseId,async c=>{if(c)try{i.value=await $fetch(`/api/test-cases/${c}/history`)}catch{i.value=[]}else i.value=[]},{immediate:!0});const{data:P,refresh:U}=([_,v]=dt(()=>ft(`/api/test-run-cases/${h}/traces`,"$GsSNbTq_Ec")),_=await _,v(),_),b=$(()=>(P.value?.length??0)>0);Yt($(()=>({title:`${a.value?.title||`Test run case #${h}`} — Piwi Dashboard`})));const x=$(()=>!!a.value?.error),F=$(()=>a.value?Tr(a.value):[]),N=$(()=>a.value?.steps?a.value.steps:[]),p=$(()=>a.value?.webVitals??null),C=$(()=>a.value?.networkRequests??[]),R=$(()=>{if(!i.value||i.value.length<2||!a.value?.duration)return null;const c=i.value.filter(oe=>oe.duration!==null&&oe.id!==a.value?.id);if(c.length===0)return null;const T=c.reduce((oe,me)=>oe+(me.duration||0),0)/c.length,E=a.value.duration,ne=E-T,de=T>0?Math.round(ne/T*100):0;return{avg:Math.round(T),current:E,diff:Math.round(ne),pct:de}}),H=$(()=>a.value?.testRun?.metadata),L=$(()=>{const c=H.value;return c?.scm?c.scm:null}),K=$(()=>{const c=H.value;return c?.ci?c.ci:null}),D=$(()=>a.value?.failureCluster??null),Q=$(()=>{const c=[];return x.value&&c.push({label:"Diagnosis",icon:"i-lucide-stethoscope",value:"diagnosis",slot:"diagnosis"}),c.push({label:`Steps (${N.value.length})`,icon:"i-lucide-list-checks",value:"steps",slot:"steps"}),x.value||c.push({label:"Artifacts",icon:"i-lucide-paperclip",value:"artifacts",slot:"artifacts"}),c.push({label:"Performance",icon:"i-lucide-gauge",value:"performance",slot:"performance"}),c.push({label:`History${i.value?.length?` (${i.value.length})`:""}`,icon:"i-lucide-trending-up",value:"history",slot:"history"}),c}),ae=$(()=>Q.value.map(c=>c.value));function J(){return x.value?"diagnosis":"steps"}function ie(c){let T=typeof c=="string"?c:"";return T==="error"&&(T="diagnosis"),T==="traces"&&(T=x.value?"diagnosis":"artifacts"),ae.value.includes(T)?T:J()}const z=j(ie(k.query.tab));ve(ae,c=>{c.includes(z.value)||(z.value=ie(k.query.tab))}),ve(z,c=>{k.query.tab!==c&&I.replace({query:{...k.query,tab:c}})},{immediate:!0});const ye=[{accessorKey:"startTime",header:"Date"},{accessorKey:"status",header:"Status"},{accessorKey:"duration",header:"Duration"},{accessorKey:"retries",header:"Retries"},{accessorKey:"runId",header:"Run"},{accessorKey:"error",header:"Error"}],ue={navigation:"info",assertion:"success",action:"warning",input:"warning",api:"info",wait:"neutral",hook:"neutral",fixture:"neutral"},m=[{id:"index",header:"#",meta:{class:{th:"w-12",td:"w-12"}}},{id:"status",header:"",meta:{class:{th:"w-10",td:"w-10"}}},{accessorKey:"category",header:"Category",meta:{class:{th:"w-28",td:"w-28"}}},{accessorKey:"title",header:"Step"},{accessorKey:"duration",header:"Duration",meta:{class:{th:"w-44",td:"w-44"}}}],f=$(()=>{const c=new Map;for(const T of N.value){const E=c.get(T.category)??{count:0,duration:0};E.count+=1,E.duration+=T.duration||0,c.set(T.category,E)}return Array.from(c,([T,E])=>({category:T,...E})).sort((T,E)=>E.duration-T.duration)}),A=$(()=>{let c=-1,T=-1;return N.value.forEach((E,ne)=>{(E.duration||0)>T&&(T=E.duration||0,c=ne)}),c}),G=$(()=>N.value.reduce((c,T)=>Math.max(c,T.duration||0),0)),Z=$(()=>N.value.length>0&&N.value.every(c=>typeof c.startTime=="number")),te=$(()=>a.value?.startedAt??(Z.value?Math.min(...N.value.map(c=>c.startTime)):0)),O=$(()=>{const c=a.value?.duration??0;if(c>0)return c;if(Z.value){const T=Math.max(...N.value.map(E=>E.startTime+(E.duration||0)));return Math.max(1,T-te.value)}return 0});function Y(c){if(Z.value&&O.value>0){const E=Math.max(0,Math.min(100,(c.startTime-te.value)/O.value*100)),ne=Math.min(100-E,Math.max(1.5,(c.duration||0)/O.value*100));return{left:`${E}%`,width:`${ne}%`}}return{left:"0%",width:`${G.value>0?Math.max(2,(c.duration||0)/G.value*100):0}%`}}function X(c){const T=a.value?.duration??0;if(T<=0)return"";const E=c/T*100;return E>0&&E<1?"<1%":`${Math.round(E)}%`}function ce(c){return c>2e3?"text-red-600 font-medium":c>500?"text-orange-500":"text-gray-500"}function M(c){return c>2e3?"bg-red-500":c>500?"bg-orange-400":"bg-gray-400 dark:bg-gray-500"}const V=$(()=>a.value?.testRun?.environment),xe=$(()=>Qs([{filePath:a.value?.filePath??"",title:a.value?.title??"",line:a.value?.line??null,projectName:a.value?.browser?.projectName??null}])),{copy:qe,copied:Qe}=_t(),wt=$(()=>[{label:Qe.value?"Copied":"Retry command",icon:Qe.value?"i-lucide-check":"i-lucide-play",onClick:()=>qe(xe.value,{toast:"Retry command copied"})},{label:"Refresh",icon:"i-lucide-refresh-cw",onClick:()=>u()}]),$t=!!Ee().public.demoMode;let he=null;const Ze=$(()=>{const c=a.value?.testRun?.status;return c==="running"||c==="finalizing"});function Ct(){if($t||he)return;const c=a.value?.testRun?.id;c&&(he=new EventSource(`/api/test-runs/${c}/stream`),he.onmessage=T=>{try{const E=JSON.parse(T.data);E.type==="case-files"&&E.data?.testRunsCaseId===Number(h)?(u(),U()):E.type==="run-finished"&&(u(),U(),Pe())}catch{}},he.onerror=()=>{})}function Pe(){he&&(he.close(),he=null)}ve(Ze,c=>{c?Ct():Pe()},{immediate:!0}),es(Pe);const{copyRich:Tt,copied:Xe}=_s();function St(){const c=a.value;if(!c?.error)return;const T=window.location.origin,E=c.title??"Unknown test",ne=c.location??"",de=c.error.replace(/\x1b\[[0-9;]*[a-zA-Z]/g,""),oe=be=>be.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),me=D.value?`${T}/failure-clusters/${D.value.id}`:null,ze=`${T}/test-run-cases/${h}?tab=diagnosis`,ke=a.value?.testCaseId?`${T}/test-cases/${a.value.testCaseId}`:null,Me=[`❌ Test failed: ${E}`,ne?`Location: ${ne}`:null,"","Error:",de,"",me?`Failure cluster: ${me}`:null,`Execution: ${ze}`,ke?`History: ${ke}`:null].filter(be=>be!==null).join(`
4
4
  `),Be=[`<p><strong>❌ Test failed: ${oe(E)}</strong>${ne?`<br><code>${oe(ne)}</code>`:""}</p>`,`<p><strong>Error:</strong></p><pre>${mt(c.error)}</pre>`,`<p>🔗 ${me?`<a href="${me}">View failure cluster</a> · `:""}<a href="${ze}">Execution details</a>${ke?` · <a href="${ke}">Test history</a>`:""}</p>`].join("");Tt(Me,Be,{toast:"Failure copied"})}const Ue=j(null),Ye=j(null),Ie=j(null),Re=j(null),et=j(null),Le=j(null),tt=j(null),st=j(null),nt=j(null),at=j(null);function _e(c){c?.scrollIntoView({behavior:"smooth",block:"start"})}const ot={sampleError:()=>_e(Ue.value),executionError:()=>_e(Ue.value),testSource:()=>Re.value?.reveal(),sourceFiles:()=>Re.value?.reveal(),environmentDiff:()=>tt.value?.reveal(),visualDiff:()=>st.value?.reveal(),domSnapshot:()=>nt.value?.reveal(),ariaSnapshot:()=>at.value?.reveal(),screenshots:()=>Le.value?.reveal(),tracePointers:()=>Le.value?.reveal(),artifacts:()=>Le.value?.reveal(),console:()=>_e(Ye.value),networkRequests:()=>_e(Ie.value),serverTraces:()=>_e(Ie.value),traceCallStack:()=>Re.value?.reveal(),traceNetwork:()=>{et.value?.showTraceMode(),_e(Ie.value)},steps:()=>{z.value="steps"},failingSteps:()=>{z.value="steps"}};return ts(bs,{canLocate:c=>c in ot,open:c=>ot[c]?.()}),(c,T)=>{const E=Gt,ne=Jt,de=re,oe=Ae,me=ss,ze=as,ke=jn,Me=De,Be=xt,be=pe,Dt=On,It=ta,Rt=ma,Lt=xa,zt=Ta,Mt=Us,Nt=Bs,jt=Fs,rt=Ma,it=nr,lt=Ps,At=ht,Pt=Ge,Ut=Vs,Ne=ge,Bt=Hs,ut=Ks,ct=Ws,Fe=kt,Ft=rr,Vt=$r,le=Js,Ve=Gs,Et=Oe,Ot=qs,Ht=us,Kt=ns;return t(),w(Kt,{id:"test-run-case-detail"},{header:g(()=>[d(ze,null,{leading:g(()=>[d(E),d(ne,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Projects",to:"/projects"},...e(a)?.testRun?.project?.id?[{label:e(a).testRun.project.name||"Project",to:`/projects/${e(a).testRun.project.id}`}]:[{label:"Project"}],...e(a)?.testRun?.id?[{label:`Run #${e(a).testRun.id}`+(e(a).testRun.label?` — ${e(a).testRun.label}`:""),to:`/test-runs/${e(a).testRun.id}`}]:[{label:"Test run"}],{label:e(a)?.title||`Test run case #${e(h)}`}]},null,8,["items"])]),right:g(()=>[e(a)?.testCaseId?(t(),w(oe,{key:0,to:`/test-cases/${e(a).testCaseId}`,class:"text-xs text-gray-500 hover:text-primary mr-2 flex items-center gap-1",title:"View test case evolution and history"},{default:g(()=>[d(de,{name:"i-lucide-trending-up",class:"size-3.5"}),T[2]||(T[2]=n("span",{class:"hidden sm:inline"},"Evolution",-1))]),_:1},8,["to"])):l("",!0),d(me,{actions:e(wt)},null,8,["actions"])]),_:1})]),body:g(()=>[d(Ht,{modelValue:e(z),"onUpdate:modelValue":T[1]||(T[1]=S=>fe(z)?z.value=S:null),"tab-items":e(Q)},{summary:g(()=>[d(ke,{"test-case":e(a)??null,"scm-info":e(L),"ci-info":e(K),browser:e(a)?.browser??null,environment:e(V),"steps-count":e(N).length,"historical-timing":e(R),"stable-links":e(a)?.stableLinks??null,onRefresh:T[0]||(T[0]=S=>e(u)())},null,8,["test-case","scm-info","ci-info","browser","environment","steps-count","historical-timing","stable-links"])]),"tab-diagnosis":g(()=>[n("div",Sr,[n("div",{ref_key:"errorEl",ref:Ue,class:"scroll-mt-4"},[e(a)?.error?(t(),w(be,{key:0,icon:"i-lucide-circle-x","icon-class":"text-red-500",title:"Error"},{actions:g(()=>[d(Be,{text:e(Xe)?"Copied!":"Copy failure"},{default:g(()=>[d(Me,{size:"xs",variant:"ghost",color:"neutral",icon:e(Xe)?"i-lucide-check":"i-lucide-clipboard",onClick:St},null,8,["icon"])]),_:1},8,["text"])]),default:g(()=>[n("div",{class:"text-xs font-mono whitespace-pre-wrap break-words max-h-96 overflow-y-auto rounded bg-red-50 dark:bg-red-950/20 p-3",innerHTML:e(mt)(e(ks)(e(a).error))},null,8,Dr)]),_:1})):l("",!0)],512),n("div",Ir,[n("div",Rr,[d(Dt,{"test-case":e(a)??null,history:e(i),"current-id":Number(e(h))},null,8,["test-case","history","current-id"]),e(D)?(t(),w(It,{key:0,cluster:e(D)},null,8,["cluster"])):l("",!0),d(Rt,{"test-runs-case-id":Number(e(h))},null,8,["test-runs-case-id"])]),n("div",Lr,[e(a)?.testSourceFrames?.length||e(a)?.testSource||e(b)?(t(),w(Lt,{key:0,ref_key:"testSourceCard",ref:Re,"storage-key":"case-test-source",frames:e(a)?.testSourceFrames??null,"test-source":e(a)?.testSource??null,"run-id":e(a)?.testRun?.id??null,"test-runs-case-id":Number(e(h)),"has-trace":e(b),"project-key":e(a)?.testRun?.project?.id,"project-name":e(a)?.testRun?.project?.name},null,8,["frames","test-source","run-id","test-runs-case-id","has-trace","project-key","project-name"])):l("",!0),d(zt,{ref_key:"evidenceCard",ref:Le,"storage-key":"case-evidence",attachments:e(a)?.attachments??[],traces:e(P)??[]},null,8,["attachments","traces"]),e(a)?.testRun?.id?(t(),w(Mt,{key:1,"storage-key":"case-locators","run-id":e(a).testRun.id,"test-runs-case-id":Number(e(h))},null,8,["run-id","test-runs-case-id"])):l("",!0),e(a)?.testRun?.id?(t(),w(Nt,{key:2,ref_key:"envDiffCard",ref:tt,"storage-key":"case-env-diff","run-id":e(a).testRun.id,"test-runs-case-id":Number(e(h))},null,8,["run-id","test-runs-case-id"])):l("",!0),e(a)?.testRun?.id?(t(),w(jt,{key:3,ref_key:"visualDiffCard",ref:st,"storage-key":"case-visual-diff","run-id":e(a).testRun.id,"test-runs-case-id":Number(e(h))},null,8,["run-id","test-runs-case-id"])):l("",!0),e(a)?.consoleLogs?.length?(t(),o("div",{key:4,ref_key:"consoleEl",ref:Ye,class:"scroll-mt-4"},[d(rt,{entries:e(a)?.consoleLogs??[]},null,8,["entries"])],512)):l("",!0),e(C).length>0||e(b)?(t(),o("div",{key:5,ref_key:"networkEl",ref:Ie,class:"scroll-mt-4"},[d(it,{ref_key:"networkCard",ref:et,requests:e(C),"run-id":e(a)?.testRun?.id??null,"test-runs-case-id":Number(e(h)),"has-trace":e(b)},null,8,["requests","run-id","test-runs-case-id","has-trace"])],512)):l("",!0),e(a)?.pageState?(t(),w(lt,{key:6,"storage-key":"case-page-state","page-state":e(a).pageState},null,8,["page-state"])):l("",!0),e(a)?.ariaSnapshot?(t(),w(Pt,{key:7,ref_key:"ariaCard",ref:at,"storage-key":"case-aria",icon:"i-lucide-scan-text",title:"ARIA snapshot",help:"case.aria"},{folded:g(()=>[...T[3]||(T[3]=[y("Accessibility tree captured at the moment of failure",-1)])]),default:g(()=>[n("div",zr,[d(At,{text:"```yaml\n"+e(a).ariaSnapshot+"\n```"},null,8,["text"])])]),_:1},512)):l("",!0),e(a)?.testRun?.id?(t(),w(Ut,{key:8,ref_key:"domSnapshotCard",ref:nt,"storage-key":"case-dom-snapshot","run-id":e(a).testRun.id,"test-runs-case-id":Number(e(h))},null,8,["run-id","test-runs-case-id"])):l("",!0)])])])]),"tab-steps":g(()=>[n("div",Mr,[e(N).length>0?(t(),o("div",Nr,[n("div",jr,[n("span",Ar,r(e(N).length)+" steps",1),T[4]||(T[4]=n("span",{class:"text-gray-300 dark:text-gray-600"},"·",-1)),(t(!0),o(B,null,ee(e(f),S=>(t(),o("span",{key:S.category,class:"inline-flex items-center gap-1"},[d(Ne,{color:ue[S.category]||"neutral",variant:"soft",size:"xs"},{default:g(()=>[y(r(S.category),1)]),_:2},1032,["color"]),n("span",Pr,"×"+r(S.count)+" · "+r(("formatDuration"in c?c.formatDuration:e(q))(S.duration)),1)]))),128))]),d(ct,{"min-width":"40rem",bleed:!1},{default:g(()=>[d(ut,{data:e(N),columns:m,ui:{base:"table-fixed w-full border-separate border-spacing-0 min-w-[40rem]",thead:"[&>tr]:bg-elevated/50 [&>tr]:after:content-none",tbody:"[&>tr]:last:[&>td]:border-b-0",th:"first:rounded-l-lg last:rounded-r-lg border-y border-default first:border-l last:border-r",td:"border-b border-default align-top"}},{"index-cell":g(({row:S})=>[n("span",Ur,r(S.index+1),1)]),"status-cell":g(({row:S})=>[S.original.failed?(t(),o("span",Br,"✗")):(t(),o("span",Fr,"✓"))]),"category-cell":g(({row:S})=>[d(Ne,{color:ue[S.original.category]||"neutral",variant:"soft",size:"xs"},{default:g(()=>[y(r(S.original.category),1)]),_:2},1032,["color"])]),"title-cell":g(({row:S})=>[n("div",Vr,[n("span",{class:W(S.original.failed?"text-red-600 dark:text-red-400 font-medium":"")},r(S.original.title),3),S.index===e(A)?(t(),w(Ne,{key:0,color:"warning",variant:"subtle",size:"xs",class:"shrink-0",title:"Slowest step in this test"},{default:g(()=>[...T[5]||(T[5]=[y(" slowest ",-1)])]),_:1})):l("",!0)]),S.original.failed&&S.original.error?.message?(t(),o("p",Er,r(S.original.error.message),1)):l("",!0),S.original.location?(t(),w(Bt,{key:1,location:S.original.location,"project-key":e(a)?.testRun?.project?.id,"project-name":e(a)?.testRun?.project?.name,class:"text-xs text-gray-400 dark:text-gray-500 mt-0.5"},null,8,["location","project-key","project-name"])):l("",!0)]),"duration-cell":g(({row:S})=>[n("div",Or,[n("div",Hr,[n("span",{class:W(`text-sm tabular-nums ${ce(S.original.duration)}`)},r(("formatDuration"in c?c.formatDuration:e(q))(S.original.duration)),3),X(S.original.duration)?(t(),o("span",Kr,r(X(S.original.duration)),1)):l("",!0)]),n("div",Wr,[n("div",{class:W(["absolute inset-y-0 rounded-full",M(S.original.duration)]),style:Ce(Y(S.original))},null,6)])])]),_:1},8,["data"])]),_:1})])):(t(),w(Fe,{key:1,icon:"i-lucide-list-checks",text:"No steps recorded for this execution"}))])]),"tab-artifacts":g(()=>[n("div",Gr,[d(Ft,{traces:e(P)||[]},null,8,["traces"]),d(Vt,{attachments:e(a)?.attachments??[]},null,8,["attachments"]),e(a)?.pageState?(t(),w(lt,{key:0,"storage-key":"case-page-state","page-state":e(a).pageState},null,8,["page-state"])):l("",!0),e(a)?.consoleLogs?.length?(t(),w(rt,{key:1,entries:e(a)?.consoleLogs??[]},null,8,["entries"])):l("",!0),e(C).length>0||e(b)?(t(),w(it,{key:2,requests:e(C),"run-id":e(a)?.testRun?.id??null,"test-runs-case-id":Number(e(h)),"has-trace":e(b)},null,8,["requests","run-id","test-runs-case-id","has-trace"])):l("",!0),!e(P)?.length&&!e(a)?.attachments?.length&&!e(a)?.consoleLogs?.length&&!e(C).length?(t(),o("div",Jr,[e(Ze)?(t(),o(B,{key:0},[d(de,{name:"i-lucide-loader-circle",class:"size-8 mb-2 animate-spin"}),T[6]||(T[6]=n("p",{class:"text-sm"}," Run in progress — traces and attachments appear here as soon as they are uploaded. ",-1))],64)):(t(),o(B,{key:1},[d(de,{name:"i-lucide-inbox",class:"size-8 mb-2"}),T[7]||(T[7]=n("p",{class:"text-sm"},"No traces, console logs, or network requests captured for this test case.",-1))],64))])):l("",!0)])]),"tab-performance":g(()=>[n("div",qr,[e(F).length>0?(t(),o("div",Qr,[(t(!0),o(B,null,ee(e(F),(S,Wt)=>(t(),o("div",{key:Wt,class:W(["p-3 rounded-lg border",S.type==="warning"?"bg-amber-50 dark:bg-amber-900/20 border-amber-200 dark:border-amber-800":"bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800"])},[n("div",Zr,[d(de,{name:S.type==="warning"?"i-lucide-alert-triangle":"i-lucide-lightbulb",class:W([S.type==="warning"?"text-amber-600":"text-blue-600","size-4 mt-0.5 shrink-0"])},null,8,["name","class"]),n("div",null,[n("p",{class:W(S.type==="warning"?"text-amber-800 dark:text-amber-200 font-medium":"text-blue-800 dark:text-blue-200 font-medium")},r(S.message),3),n("p",{class:W([S.type==="warning"?"text-amber-700 dark:text-amber-300":"text-blue-700 dark:text-blue-300","mt-1"])},r(S.details),3)])])],2))),128))])):l("",!0),e(p)?(t(),w(be,{key:1,icon:"i-lucide-gauge",title:"Browser performance (Web Vitals)",help:"case.web-vitals"},{default:g(()=>[n("div",Xr,[e(p).navigation?(t(),w(Ve,{key:0,"min-tile-width":"10rem"},{default:g(()=>[d(le,{label:"TTFB",value:("formatDuration"in c?c.formatDuration:e(q))(e(p).navigation.ttfb),hint:"Time to first byte","value-class":e(p).navigation.ttfb>600?"text-red-600":e(p).navigation.ttfb>200?"text-orange-500":"text-green-600"},null,8,["value","value-class"]),d(le,{label:"DOM Interactive",value:("formatDuration"in c?c.formatDuration:e(q))(e(p).navigation.domInteractive),hint:"DOM interactive","value-class":e(p).navigation.domInteractive>3e3?"text-red-600":e(p).navigation.domInteractive>1500?"text-orange-500":"text-green-600"},null,8,["value","value-class"]),d(le,{label:"DOMContentLoaded",value:("formatDuration"in c?c.formatDuration:e(q))(e(p).navigation.domContentLoaded),hint:"DOMContentLoaded","value-class":e(p).navigation.domContentLoaded>3e3?"text-red-600":e(p).navigation.domContentLoaded>1500?"text-orange-500":"text-green-600"},null,8,["value","value-class"]),d(le,{label:"Load Complete",value:("formatDuration"in c?c.formatDuration:e(q))(e(p).navigation.loadComplete),hint:"Page fully loaded","value-class":e(p).navigation.loadComplete>5e3?"text-red-600":e(p).navigation.loadComplete>3e3?"text-orange-500":"text-green-600"},null,8,["value","value-class"])]),_:1})):l("",!0),e(p).paint&&(e(p).paint.firstPaint||e(p).paint.firstContentfulPaint)?(t(),w(Ve,{key:1,"min-tile-width":"10rem",class:"pt-2 border-t"},{default:g(()=>[e(p).paint.firstPaint!==void 0?(t(),w(le,{key:0,label:"First Paint (FP)",value:("formatDuration"in c?c.formatDuration:e(q))(e(p).paint.firstPaint)},null,8,["value"])):l("",!0),e(p).paint.firstContentfulPaint!==void 0?(t(),w(le,{key:1,label:"First Contentful Paint (FCP)",value:("formatDuration"in c?c.formatDuration:e(q))(e(p).paint.firstContentfulPaint),"value-class":e(p).paint.firstContentfulPaint>3e3?"text-red-600":e(p).paint.firstContentfulPaint>1800?"text-orange-500":"text-green-600"},null,8,["value","value-class"])):l("",!0)]),_:1})):l("",!0),e(p).vitals?(t(),w(Ve,{key:2,"min-tile-width":"10rem",class:"pt-2 border-t"},{default:g(()=>[d(le,{label:"Largest Contentful Paint (LCP)",value:e(p).vitals.lcp!=null?("formatDuration"in c?c.formatDuration:e(q))(e(p).vitals.lcp):"n/a","value-class":e(p).vitals.lcp==null?"text-gray-400":e(p).vitals.lcp>4e3?"text-red-600":e(p).vitals.lcp>2500?"text-orange-500":"text-green-600"},null,8,["value","value-class"]),d(le,{label:"Cumulative Layout Shift (CLS)",value:e(p).vitals.cls!=null?String(e(p).vitals.cls):"n/a","value-class":e(p).vitals.cls==null?"text-gray-400":e(p).vitals.cls>.25?"text-red-600":e(p).vitals.cls>.1?"text-orange-500":"text-green-600"},null,8,["value","value-class"]),d(le,{label:"Interaction to Next Paint (INP)",value:e(p).vitals.inp!=null?("formatDuration"in c?c.formatDuration:e(q))(e(p).vitals.inp):"n/a","value-class":e(p).vitals.inp==null?"text-gray-400":e(p).vitals.inp>500?"text-red-600":e(p).vitals.inp>200?"text-orange-500":"text-green-600"},null,8,["value","value-class"])]),_:1})):l("",!0),e(p).navigation?.url?(t(),o("div",Yr,[T[8]||(T[8]=y(" Page: ",-1)),n("code",ei,r(e(p).navigation.url),1)])):l("",!0)])]),_:1})):l("",!0),e(F).length===0&&!e(p)?(t(),w(Fe,{key:2,icon:"i-lucide-gauge",text:"No performance hints or Web Vitals were captured for this execution."},{default:g(()=>[n("p",ti,[T[10]||(T[10]=y(" Web Vitals and timing come from the ",-1)),d(Et,{to:"capture-fixtures"},{default:g(()=>[...T[9]||(T[9]=[y("capture fixtures",-1)])]),_:1}),T[11]||(T[11]=y(". ",-1))])]),_:1})):l("",!0)])]),"tab-history":g(()=>[n("div",si,[e(i)&&e(i).length>0?(t(),o("div",ni,[n("div",ai,[e(a)?.testCaseId?(t(),w(Me,{key:0,to:`/test-cases/${e(a).testCaseId}`,size:"xs",variant:"outline",color:"neutral","trailing-icon":"i-lucide-arrow-right"},{default:g(()=>[...T[12]||(T[12]=[y(" View full test history ",-1)])]),_:1},8,["to"])):l("",!0)]),d(Ot,{data:e(i),height:200},null,8,["data"]),d(ct,{"min-width":"44rem",bleed:!1},{default:g(()=>[d(ut,{data:e(i),columns:ye,ui:{base:"table-fixed border-separate border-spacing-0 min-w-[44rem]",thead:"[&>tr]:bg-elevated/50 [&>tr]:after:content-none",tbody:"[&>tr]:last:[&>td]:border-b-0",th:"first:rounded-l-lg last:rounded-r-lg border-y border-default first:border-l last:border-r",td:"border-b border-default"}},{"startTime-cell":g(({row:S})=>[n("span",oi,[n("span",ri,r(new Date(S.original.startTime).toLocaleDateString("en-US",{month:"short",day:"numeric"})),1),n("span",ii,r(new Date(S.original.startTime).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})),1)])]),"status-cell":g(({row:S})=>[d(Ne,{color:("getStatusColor"in c?c.getStatusColor:e(Ts))(S.original.status),class:"capitalize"},{default:g(()=>[y(r(S.original.status),1)]),_:2},1032,["color"])]),"duration-cell":g(({row:S})=>[S.original.duration!==null?(t(),o("span",li,r(("formatDuration"in c?c.formatDuration:e(q))(S.original.duration)),1)):(t(),o("span",ui,"—"))]),"runId-cell":g(({row:S})=>[d(oe,{to:`/test-runs/${S.original.runId}`,class:"text-primary hover:underline"},{default:g(()=>[y(" #"+r(S.original.runId),1)]),_:2},1032,["to"])]),"error-cell":g(({row:S})=>[S.original.error?(t(),o("span",{key:0,class:"text-red-600 text-xs truncate max-w-xs block",title:S.original.error},r(S.original.error.length>80?`${S.original.error.substring(0,80)}…`:S.original.error),9,ci)):l("",!0)]),_:1},8,["data"])]),_:1})])):(t(),w(Fe,{key:1,icon:"i-lucide-trending-up",text:"No prior executions of this test yet."},{default:g(()=>[...T[13]||(T[13]=[n("p",{class:"text-xs text-gray-400"}," This is the first recorded run. Once it runs again, its status and duration trend appear here. ",-1)])]),_:1}))])]),_:1},8,["modelValue","tab-items"])]),_:1})}}});export{Yi as default};
@@ -1 +1 @@
1
- import{d as O,X as Q,W as ee,T as f,k as e,r as R,Y as te,S as B,o as r,f as i,g as u,U as D,V as F,az as V,C as Z,bj as z,j as k,bl as oe,bZ as ae,bk as se,b_ as x,bh as le,B as N,h as I,M as j,ac as L,aB as W,bf as re,H as ne,q as g,Z as X,$ as Y,br as ue,a0 as ie,a1 as de,a2 as pe,a3 as fe,a4 as ce,a5 as ve,bs as ye,b4 as U,b3 as me,bG as _e,bH as ge,m as A,t as M,c as E,p as h,_ as be,bv as De,F as Oe,a6 as Ce,bI as qe}from"./D3SYPlEB.js";const[w,Be]=te("DialogRoot");var we=O({inheritAttrs:!1,__name:"DialogRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(d,{emit:n}){const a=d,o=Q(a,"open",n,{defaultValue:a.defaultOpen,passive:a.open===void 0}),t=R(),y=R(),{modal:p,unmountOnHide:c}=ee(a);return Be({open:o,modal:p,unmountOnHide:c,openModal:()=>{o.value=!0},onOpenChange:l=>{o.value=l},onOpenToggle:()=>{o.value=!o.value},contentId:"",titleId:"",descriptionId:"",triggerElement:t,contentElement:y}),(l,m)=>f(l.$slots,"default",{open:e(o),close:()=>o.value=!1})}}),he=we,ke=O({__name:"DialogClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const n=d;B();const a=w();return(s,o)=>(r(),i(e(F),D(n,{type:s.as==="button"?"button":void 0,onClick:o[0]||(o[0]=t=>e(a).onOpenChange(!1))}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["type"]))}}),$e=ke,Pe=O({__name:"DialogContentImpl",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),{forwardRef:t,currentElement:y}=B();return o.titleId||=V(void 0,"reka-dialog-title"),o.descriptionId||=V(void 0,"reka-dialog-description"),Z(()=>{o.contentElement=y,z()!==document.body&&(o.triggerElement.value=z())}),(p,c)=>(r(),i(e(se),{"as-child":"",loop:"",trapped:a.trapFocus,present:a.present,onMountAutoFocus:c[5]||(c[5]=l=>s("openAutoFocus",l)),onUnmountAutoFocus:c[6]||(c[6]=l=>s("closeAutoFocus",l))},{default:u(()=>[k(e(oe),D({id:e(o).contentId,ref:e(t),as:p.as,"as-child":p.asChild,present:a.present,"disable-outside-pointer-events":p.disableOutsidePointerEvents,role:"dialog","aria-describedby":e(o).descriptionId,"aria-labelledby":e(o).titleId,"data-state":e(ae)(e(o).open.value)},p.$attrs,{onDismiss:c[0]||(c[0]=l=>e(o).onOpenChange(!1)),onEscapeKeyDown:c[1]||(c[1]=l=>s("escapeKeyDown",l)),onFocusOutside:c[2]||(c[2]=l=>s("focusOutside",l)),onInteractOutside:c[3]||(c[3]=l=>s("interactOutside",l)),onPointerDownOutside:c[4]||(c[4]=l=>s("pointerDownOutside",l))}),{default:u(()=>[f(p.$slots,"default")]),_:3},16,["id","as","as-child","present","disable-outside-pointer-events","aria-describedby","aria-labelledby","data-state"])]),_:3},8,["trapped","present"]))}}),J=Pe,Ee=O({__name:"DialogContentModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),t=x(s),{forwardRef:y,currentElement:p}=B(),c=I(()=>a.present?p.value:void 0);le(c);const l=I(()=>{const{present:m,...v}=a;return v});return N(()=>a.present,(m,v)=>{!m&&v&&o.triggerElement.value?.focus()}),(m,v)=>(r(),i(J,D({...l.value,...e(t)},{ref:e(y),present:m.present,"trap-focus":e(o).open.value,"disable-outside-pointer-events":a.disableOutsidePointerEvents,onCloseAutoFocus:v[0]||(v[0]=C=>{C.defaultPrevented||(C.preventDefault(),e(o).triggerElement.value?.focus())}),onPointerDownOutside:v[1]||(v[1]=C=>{const $=C.detail.originalEvent,b=$.button===0&&$.ctrlKey===!0;($.button===2||b)&&C.preventDefault()}),onFocusOutside:v[2]||(v[2]=C=>{C.preventDefault()})}),{default:u(()=>[f(m.$slots,"default")]),_:3},16,["present","trap-focus","disable-outside-pointer-events"]))}}),Ie=Ee,Fe=O({__name:"DialogContentNonModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,o=x(n);B();const t=w(),y=R(!1),p=R(!1),c=I(()=>{const{present:l,...m}=a;return m});return N(()=>a.present,(l,m)=>{!l&&m&&(y.value||t.triggerElement.value?.focus(),y.value=!1,p.value=!1)}),(l,m)=>(r(),i(J,D({...c.value,...e(o)},{present:l.present,"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:m[0]||(m[0]=v=>{v.defaultPrevented||(y.value||e(t).triggerElement.value?.focus(),v.preventDefault()),y.value=!1,p.value=!1}),onInteractOutside:m[1]||(m[1]=v=>{v.defaultPrevented||(y.value=!0,v.detail.originalEvent.type==="pointerdown"&&(p.value=!0));const C=v.target;e(t).triggerElement.value?.contains(C)&&v.preventDefault(),v.detail.originalEvent.type==="focusin"&&p.value&&v.preventDefault()})}),{default:u(()=>[f(l.$slots,"default")]),_:3},16,["present"]))}}),Ae=Fe,Me=O({__name:"DialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),t=x(s),{forwardRef:y}=B();return(p,c)=>(r(),i(e(W),{present:p.forceMount||e(o).open.value,"force-mount":p.forceMount||!e(o).unmountOnHide.value},{default:u(({present:l})=>[e(o).modal.value?j((r(),i(Ie,D({key:0,ref:e(y),present:e(o).unmountOnHide.value||l},{...a,...e(t),...p.$attrs}),{default:u(()=>[f(p.$slots,"default")]),_:2},1040,["present"])),[[L,e(o).unmountOnHide.value||l]]):j((r(),i(Ae,D({key:1,ref:e(y),present:e(o).unmountOnHide.value||l},{...a,...e(t),...p.$attrs}),{default:u(()=>[f(p.$slots,"default")]),_:2},1040,["present"])),[[L,e(o).unmountOnHide.value||l]])]),_:3},8,["present","force-mount"]))}}),Re=Me,He=O({__name:"DialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(d){const n=d;B();const a=w();return(s,o)=>(r(),i(e(F),D(n,{id:e(a).descriptionId}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["id"]))}}),S=He,Te=O({__name:"DialogOverlayImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},setup(d){const n=d,a=w(),s=re(n.present);return N(()=>n.present,o=>s.value=o),B(),(o,t)=>(r(),i(e(F),{as:o.as,"as-child":o.asChild,"data-state":e(a).open.value?"open":"closed",style:{"pointer-events":"auto"},onPointerdown:t[0]||(t[0]=ne(()=>{},["left","self","prevent"]))},{default:u(()=>[f(o.$slots,"default")]),_:3},8,["as","as-child","data-state"]))}}),Se=Te,Ke=O({__name:"DialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(d){const n=w(),{forwardRef:a}=B();return(s,o)=>e(n)?.modal.value?(r(),i(e(W),{key:0,present:s.forceMount||e(n).open.value,"force-mount":s.forceMount||!e(n).unmountOnHide.value},{default:u(({present:t})=>[j(k(Se,D(s.$attrs,{ref:e(a),as:s.as,"as-child":s.asChild,present:e(n).unmountOnHide.value||t}),{default:u(()=>[f(s.$slots,"default")]),_:2},1040,["as","as-child","present"]),[[L,e(n).unmountOnHide.value||t]])]),_:3},8,["present","force-mount"])):g("v-if",!0)}}),G=Ke,Ve=O({__name:"DialogPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(d){const n=d;return(a,s)=>(r(),i(e(ue),X(Y(n)),{default:u(()=>[f(a.$slots,"default")]),_:3},16))}}),je=Ve,Le=O({__name:"DialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(d){const n=d,a=w();return B(),(s,o)=>(r(),i(e(F),D(n,{id:e(a).titleId}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["id"]))}}),K=Le,xe=O({__name:"DialogTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const n=d,a=w(),{forwardRef:s,currentElement:o}=B();return a.contentId||=V(void 0,"reka-dialog-content"),Z(()=>{a.triggerElement.value=o.value}),(t,y)=>(r(),i(e(F),D(n,{ref:e(s),type:t.as==="button"?"button":void 0,"aria-haspopup":"dialog","aria-expanded":e(a).open.value||!1,"aria-controls":e(a).open.value?e(a).contentId:void 0,"data-state":e(a).open.value?"open":"closed",onClick:e(a).onOpenToggle}),{default:u(()=>[f(t.$slots,"default")]),_:3},16,["type","aria-expanded","aria-controls","data-state","onClick"]))}}),Ne=xe;const ze={slots:{overlay:"fixed inset-0",content:"bg-default divide-y divide-default flex flex-col focus:outline-none",header:"flex items-center gap-1.5 p-4 sm:px-6 min-h-(--ui-header-height)",wrapper:"",body:"flex-1 p-4 sm:p-6",footer:"flex items-center gap-1.5 p-4 sm:px-6",title:"text-highlighted font-semibold",description:"mt-1 text-muted text-sm",close:"absolute top-4 end-4"},variants:{transition:{true:{overlay:"data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_200ms_ease-in]",content:"data-[state=open]:animate-[scale-in_200ms_ease-out] data-[state=closed]:animate-[scale-out_200ms_ease-in]"}},fullscreen:{true:{content:"inset-0"},false:{content:"w-[calc(100vw-2rem)] max-w-lg rounded-lg shadow-lg ring ring-default"}},overlay:{true:{overlay:"bg-elevated/75"}},scrollable:{true:{overlay:"overflow-y-auto",content:"relative"},false:{content:"fixed",body:"overflow-y-auto"}}},compoundVariants:[{scrollable:!0,fullscreen:!1,class:{overlay:"grid place-items-center p-4 sm:py-8"}},{scrollable:!1,fullscreen:!1,class:{content:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] overflow-hidden"}}]},Ge={__name:"UModal",props:{title:{type:String,required:!1},description:{type:String,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},scrollable:{type:Boolean,required:!1},transition:{type:Boolean,required:!1,default:!0},fullscreen:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},close:{type:[Boolean,Object],required:!1,default:!0},closeIcon:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1}},emits:["leave","after:leave","enter","after:enter","close:prevent","update:open"],setup(d,{emit:n}){const a=d,s=n,o=ie(),t=de("modal",a),{t:y}=pe(),p=fe(),c=ce(ve(t,"open","defaultOpen","modal","unmountOnHide"),s),l=ye(U(()=>t.portal)),m=U(()=>t.content),v=I(()=>t.dismissible?{pointerDownOutside:_=>qe(_,{scrollable:t.scrollable})}:["interactOutside","escapeKeyDown"].reduce((q,H)=>(q[H]=P=>{P.preventDefault(),s("close:prevent")},q),{})),[C,$]=me(),b=I(()=>Ce({extend:ze,...p.ui?.modal||{}})({transition:t.transition,fullscreen:t.fullscreen,overlay:t.overlay,scrollable:t.scrollable}));return(_,q)=>(r(),i(e(he),X(Y(e(c))),{default:u(({open:H,close:P})=>[k(e(C),null,{default:u(()=>[k(e(Re),D({"data-slot":"content",class:b.value.content({class:[!o.default&&e(t).class,e(t).ui?.content]})},m.value,{onEnter:q[0]||(q[0]=T=>s("enter")),onAfterEnter:q[1]||(q[1]=T=>s("after:enter")),onLeave:q[2]||(q[2]=T=>s("leave")),onAfterLeave:q[3]||(q[3]=T=>s("after:leave"))},_e(v.value)),{default:u(()=>[!e(t).title&&!o.title||!e(t).description&&!o.description||o.content?(r(),i(e(ge),{key:0},{default:u(()=>[!e(t).title&&!o.title?(r(),i(e(K),{key:0})):o.content?(r(),i(e(K),{key:1},{default:u(()=>[f(_.$slots,"title",{},()=>[A(M(e(t).title),1)])]),_:3})):g("",!0),!e(t).description&&!o.description?(r(),i(e(S),{key:2})):o.content?(r(),i(e(S),{key:3},{default:u(()=>[f(_.$slots,"description",{},()=>[A(M(e(t).description),1)])]),_:3})):g("",!0)]),_:3})):g("",!0),f(_.$slots,"content",{close:P},()=>[o.header||e(t).title||o.title||e(t).description||o.description||e(t).close||o.close?(r(),E("div",{key:0,"data-slot":"header",class:h(b.value.header({class:e(t).ui?.header}))},[f(_.$slots,"header",{close:P},()=>[e(t).title||o.title||e(t).description||o.description?(r(),E("div",{key:0,"data-slot":"wrapper",class:h(b.value.wrapper({class:e(t).ui?.wrapper}))},[e(t).title||o.title?(r(),i(e(K),{key:0,"data-slot":"title",class:h(b.value.title({class:e(t).ui?.title}))},{default:u(()=>[f(_.$slots,"title",{},()=>[A(M(e(t).title),1)])]),_:3},8,["class"])):g("",!0),e(t).description||o.description?(r(),i(e(S),{key:1,"data-slot":"description",class:h(b.value.description({class:e(t).ui?.description}))},{default:u(()=>[f(_.$slots,"description",{},()=>[A(M(e(t).description),1)])]),_:3},8,["class"])):g("",!0)],2)):g("",!0),f(_.$slots,"actions"),e(t).close||o.close?(r(),i(e($e),{key:1,"as-child":""},{default:u(()=>[f(_.$slots,"close",{ui:b.value},()=>[e(t).close?(r(),i(be,D({key:0,icon:e(t).closeIcon||e(p).ui.icons.close,color:"neutral",variant:"ghost","aria-label":e(y)("modal.close")},typeof e(t).close=="object"?e(t).close:{},{"data-slot":"close",class:b.value.close({class:e(t).ui?.close})}),null,16,["icon","aria-label","class"])):g("",!0)])]),_:2},1024)):g("",!0)])],2)):g("",!0),o.body?(r(),E("div",{key:1,"data-slot":"body",class:h(b.value.body({class:e(t).ui?.body}))},[f(_.$slots,"body",{close:P})],2)):g("",!0),o.footer?(r(),E("div",{key:2,"data-slot":"footer",class:h(b.value.footer({class:e(t).ui?.footer}))},[f(_.$slots,"footer",{close:P})],2)):g("",!0)])]),_:2},1040,["class"])]),_:2},1024),o.default?(r(),i(e(Ne),{key:0,"as-child":"",class:h(e(t).class)},{default:u(()=>[f(_.$slots,"default",{open:H})]),_:2},1032,["class"])):g("",!0),k(e(je),D(e(l),{"force-mount":e(l).disabled&&e(t).unmountOnHide===!1||void 0}),{default:u(()=>[k(e(De),null,{default:u(()=>[e(t).scrollable?(r(),i(e(G),{key:0,"data-slot":"overlay",class:h(b.value.overlay({class:e(t).ui?.overlay}))},{default:u(()=>[k(e($))]),_:1},8,["class"])):(r(),E(Oe,{key:1},[e(t).overlay?(r(),i(e(G),{key:0,"data-slot":"overlay",class:h(b.value.overlay({class:e(t).ui?.overlay}))},null,8,["class"])):g("",!0),k(e($))],64))]),_:1})]),_:1},16,["force-mount"])]),_:3},16))}};export{G as D,Ge as _,Re as a,he as b,Ne as c,je as d,K as e,S as f,$e as g};
1
+ import{d as O,X as Q,W as ee,T as f,k as e,r as R,Y as te,S as B,o as r,f as i,g as u,U as D,V as F,az as V,C as Z,bj as z,j as k,bl as oe,bZ as ae,bk as se,b_ as x,bh as le,B as N,h as I,M as j,ac as L,aB as W,bf as re,H as ne,q as g,Z as X,$ as Y,br as ue,a0 as ie,a1 as de,a2 as pe,a3 as fe,a4 as ce,a5 as ve,bs as ye,b4 as U,b3 as me,bG as _e,bH as ge,m as A,t as M,c as E,p as h,_ as be,bv as De,F as Oe,a6 as Ce,bI as qe}from"./DHltYerF.js";const[w,Be]=te("DialogRoot");var we=O({inheritAttrs:!1,__name:"DialogRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(d,{emit:n}){const a=d,o=Q(a,"open",n,{defaultValue:a.defaultOpen,passive:a.open===void 0}),t=R(),y=R(),{modal:p,unmountOnHide:c}=ee(a);return Be({open:o,modal:p,unmountOnHide:c,openModal:()=>{o.value=!0},onOpenChange:l=>{o.value=l},onOpenToggle:()=>{o.value=!o.value},contentId:"",titleId:"",descriptionId:"",triggerElement:t,contentElement:y}),(l,m)=>f(l.$slots,"default",{open:e(o),close:()=>o.value=!1})}}),he=we,ke=O({__name:"DialogClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const n=d;B();const a=w();return(s,o)=>(r(),i(e(F),D(n,{type:s.as==="button"?"button":void 0,onClick:o[0]||(o[0]=t=>e(a).onOpenChange(!1))}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["type"]))}}),$e=ke,Pe=O({__name:"DialogContentImpl",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),{forwardRef:t,currentElement:y}=B();return o.titleId||=V(void 0,"reka-dialog-title"),o.descriptionId||=V(void 0,"reka-dialog-description"),Z(()=>{o.contentElement=y,z()!==document.body&&(o.triggerElement.value=z())}),(p,c)=>(r(),i(e(se),{"as-child":"",loop:"",trapped:a.trapFocus,present:a.present,onMountAutoFocus:c[5]||(c[5]=l=>s("openAutoFocus",l)),onUnmountAutoFocus:c[6]||(c[6]=l=>s("closeAutoFocus",l))},{default:u(()=>[k(e(oe),D({id:e(o).contentId,ref:e(t),as:p.as,"as-child":p.asChild,present:a.present,"disable-outside-pointer-events":p.disableOutsidePointerEvents,role:"dialog","aria-describedby":e(o).descriptionId,"aria-labelledby":e(o).titleId,"data-state":e(ae)(e(o).open.value)},p.$attrs,{onDismiss:c[0]||(c[0]=l=>e(o).onOpenChange(!1)),onEscapeKeyDown:c[1]||(c[1]=l=>s("escapeKeyDown",l)),onFocusOutside:c[2]||(c[2]=l=>s("focusOutside",l)),onInteractOutside:c[3]||(c[3]=l=>s("interactOutside",l)),onPointerDownOutside:c[4]||(c[4]=l=>s("pointerDownOutside",l))}),{default:u(()=>[f(p.$slots,"default")]),_:3},16,["id","as","as-child","present","disable-outside-pointer-events","aria-describedby","aria-labelledby","data-state"])]),_:3},8,["trapped","present"]))}}),J=Pe,Ee=O({__name:"DialogContentModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),t=x(s),{forwardRef:y,currentElement:p}=B(),c=I(()=>a.present?p.value:void 0);le(c);const l=I(()=>{const{present:m,...v}=a;return v});return N(()=>a.present,(m,v)=>{!m&&v&&o.triggerElement.value?.focus()}),(m,v)=>(r(),i(J,D({...l.value,...e(t)},{ref:e(y),present:m.present,"trap-focus":e(o).open.value,"disable-outside-pointer-events":a.disableOutsidePointerEvents,onCloseAutoFocus:v[0]||(v[0]=C=>{C.defaultPrevented||(C.preventDefault(),e(o).triggerElement.value?.focus())}),onPointerDownOutside:v[1]||(v[1]=C=>{const $=C.detail.originalEvent,b=$.button===0&&$.ctrlKey===!0;($.button===2||b)&&C.preventDefault()}),onFocusOutside:v[2]||(v[2]=C=>{C.preventDefault()})}),{default:u(()=>[f(m.$slots,"default")]),_:3},16,["present","trap-focus","disable-outside-pointer-events"]))}}),Ie=Ee,Fe=O({__name:"DialogContentNonModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,o=x(n);B();const t=w(),y=R(!1),p=R(!1),c=I(()=>{const{present:l,...m}=a;return m});return N(()=>a.present,(l,m)=>{!l&&m&&(y.value||t.triggerElement.value?.focus(),y.value=!1,p.value=!1)}),(l,m)=>(r(),i(J,D({...c.value,...e(o)},{present:l.present,"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:m[0]||(m[0]=v=>{v.defaultPrevented||(y.value||e(t).triggerElement.value?.focus(),v.preventDefault()),y.value=!1,p.value=!1}),onInteractOutside:m[1]||(m[1]=v=>{v.defaultPrevented||(y.value=!0,v.detail.originalEvent.type==="pointerdown"&&(p.value=!0));const C=v.target;e(t).triggerElement.value?.contains(C)&&v.preventDefault(),v.detail.originalEvent.type==="focusin"&&p.value&&v.preventDefault()})}),{default:u(()=>[f(l.$slots,"default")]),_:3},16,["present"]))}}),Ae=Fe,Me=O({__name:"DialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),t=x(s),{forwardRef:y}=B();return(p,c)=>(r(),i(e(W),{present:p.forceMount||e(o).open.value,"force-mount":p.forceMount||!e(o).unmountOnHide.value},{default:u(({present:l})=>[e(o).modal.value?j((r(),i(Ie,D({key:0,ref:e(y),present:e(o).unmountOnHide.value||l},{...a,...e(t),...p.$attrs}),{default:u(()=>[f(p.$slots,"default")]),_:2},1040,["present"])),[[L,e(o).unmountOnHide.value||l]]):j((r(),i(Ae,D({key:1,ref:e(y),present:e(o).unmountOnHide.value||l},{...a,...e(t),...p.$attrs}),{default:u(()=>[f(p.$slots,"default")]),_:2},1040,["present"])),[[L,e(o).unmountOnHide.value||l]])]),_:3},8,["present","force-mount"]))}}),Re=Me,He=O({__name:"DialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(d){const n=d;B();const a=w();return(s,o)=>(r(),i(e(F),D(n,{id:e(a).descriptionId}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["id"]))}}),S=He,Te=O({__name:"DialogOverlayImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},setup(d){const n=d,a=w(),s=re(n.present);return N(()=>n.present,o=>s.value=o),B(),(o,t)=>(r(),i(e(F),{as:o.as,"as-child":o.asChild,"data-state":e(a).open.value?"open":"closed",style:{"pointer-events":"auto"},onPointerdown:t[0]||(t[0]=ne(()=>{},["left","self","prevent"]))},{default:u(()=>[f(o.$slots,"default")]),_:3},8,["as","as-child","data-state"]))}}),Se=Te,Ke=O({__name:"DialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(d){const n=w(),{forwardRef:a}=B();return(s,o)=>e(n)?.modal.value?(r(),i(e(W),{key:0,present:s.forceMount||e(n).open.value,"force-mount":s.forceMount||!e(n).unmountOnHide.value},{default:u(({present:t})=>[j(k(Se,D(s.$attrs,{ref:e(a),as:s.as,"as-child":s.asChild,present:e(n).unmountOnHide.value||t}),{default:u(()=>[f(s.$slots,"default")]),_:2},1040,["as","as-child","present"]),[[L,e(n).unmountOnHide.value||t]])]),_:3},8,["present","force-mount"])):g("v-if",!0)}}),G=Ke,Ve=O({__name:"DialogPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(d){const n=d;return(a,s)=>(r(),i(e(ue),X(Y(n)),{default:u(()=>[f(a.$slots,"default")]),_:3},16))}}),je=Ve,Le=O({__name:"DialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(d){const n=d,a=w();return B(),(s,o)=>(r(),i(e(F),D(n,{id:e(a).titleId}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["id"]))}}),K=Le,xe=O({__name:"DialogTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const n=d,a=w(),{forwardRef:s,currentElement:o}=B();return a.contentId||=V(void 0,"reka-dialog-content"),Z(()=>{a.triggerElement.value=o.value}),(t,y)=>(r(),i(e(F),D(n,{ref:e(s),type:t.as==="button"?"button":void 0,"aria-haspopup":"dialog","aria-expanded":e(a).open.value||!1,"aria-controls":e(a).open.value?e(a).contentId:void 0,"data-state":e(a).open.value?"open":"closed",onClick:e(a).onOpenToggle}),{default:u(()=>[f(t.$slots,"default")]),_:3},16,["type","aria-expanded","aria-controls","data-state","onClick"]))}}),Ne=xe;const ze={slots:{overlay:"fixed inset-0",content:"bg-default divide-y divide-default flex flex-col focus:outline-none",header:"flex items-center gap-1.5 p-4 sm:px-6 min-h-(--ui-header-height)",wrapper:"",body:"flex-1 p-4 sm:p-6",footer:"flex items-center gap-1.5 p-4 sm:px-6",title:"text-highlighted font-semibold",description:"mt-1 text-muted text-sm",close:"absolute top-4 end-4"},variants:{transition:{true:{overlay:"data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_200ms_ease-in]",content:"data-[state=open]:animate-[scale-in_200ms_ease-out] data-[state=closed]:animate-[scale-out_200ms_ease-in]"}},fullscreen:{true:{content:"inset-0"},false:{content:"w-[calc(100vw-2rem)] max-w-lg rounded-lg shadow-lg ring ring-default"}},overlay:{true:{overlay:"bg-elevated/75"}},scrollable:{true:{overlay:"overflow-y-auto",content:"relative"},false:{content:"fixed",body:"overflow-y-auto"}}},compoundVariants:[{scrollable:!0,fullscreen:!1,class:{overlay:"grid place-items-center p-4 sm:py-8"}},{scrollable:!1,fullscreen:!1,class:{content:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] overflow-hidden"}}]},Ge={__name:"UModal",props:{title:{type:String,required:!1},description:{type:String,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},scrollable:{type:Boolean,required:!1},transition:{type:Boolean,required:!1,default:!0},fullscreen:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},close:{type:[Boolean,Object],required:!1,default:!0},closeIcon:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1}},emits:["leave","after:leave","enter","after:enter","close:prevent","update:open"],setup(d,{emit:n}){const a=d,s=n,o=ie(),t=de("modal",a),{t:y}=pe(),p=fe(),c=ce(ve(t,"open","defaultOpen","modal","unmountOnHide"),s),l=ye(U(()=>t.portal)),m=U(()=>t.content),v=I(()=>t.dismissible?{pointerDownOutside:_=>qe(_,{scrollable:t.scrollable})}:["interactOutside","escapeKeyDown"].reduce((q,H)=>(q[H]=P=>{P.preventDefault(),s("close:prevent")},q),{})),[C,$]=me(),b=I(()=>Ce({extend:ze,...p.ui?.modal||{}})({transition:t.transition,fullscreen:t.fullscreen,overlay:t.overlay,scrollable:t.scrollable}));return(_,q)=>(r(),i(e(he),X(Y(e(c))),{default:u(({open:H,close:P})=>[k(e(C),null,{default:u(()=>[k(e(Re),D({"data-slot":"content",class:b.value.content({class:[!o.default&&e(t).class,e(t).ui?.content]})},m.value,{onEnter:q[0]||(q[0]=T=>s("enter")),onAfterEnter:q[1]||(q[1]=T=>s("after:enter")),onLeave:q[2]||(q[2]=T=>s("leave")),onAfterLeave:q[3]||(q[3]=T=>s("after:leave"))},_e(v.value)),{default:u(()=>[!e(t).title&&!o.title||!e(t).description&&!o.description||o.content?(r(),i(e(ge),{key:0},{default:u(()=>[!e(t).title&&!o.title?(r(),i(e(K),{key:0})):o.content?(r(),i(e(K),{key:1},{default:u(()=>[f(_.$slots,"title",{},()=>[A(M(e(t).title),1)])]),_:3})):g("",!0),!e(t).description&&!o.description?(r(),i(e(S),{key:2})):o.content?(r(),i(e(S),{key:3},{default:u(()=>[f(_.$slots,"description",{},()=>[A(M(e(t).description),1)])]),_:3})):g("",!0)]),_:3})):g("",!0),f(_.$slots,"content",{close:P},()=>[o.header||e(t).title||o.title||e(t).description||o.description||e(t).close||o.close?(r(),E("div",{key:0,"data-slot":"header",class:h(b.value.header({class:e(t).ui?.header}))},[f(_.$slots,"header",{close:P},()=>[e(t).title||o.title||e(t).description||o.description?(r(),E("div",{key:0,"data-slot":"wrapper",class:h(b.value.wrapper({class:e(t).ui?.wrapper}))},[e(t).title||o.title?(r(),i(e(K),{key:0,"data-slot":"title",class:h(b.value.title({class:e(t).ui?.title}))},{default:u(()=>[f(_.$slots,"title",{},()=>[A(M(e(t).title),1)])]),_:3},8,["class"])):g("",!0),e(t).description||o.description?(r(),i(e(S),{key:1,"data-slot":"description",class:h(b.value.description({class:e(t).ui?.description}))},{default:u(()=>[f(_.$slots,"description",{},()=>[A(M(e(t).description),1)])]),_:3},8,["class"])):g("",!0)],2)):g("",!0),f(_.$slots,"actions"),e(t).close||o.close?(r(),i(e($e),{key:1,"as-child":""},{default:u(()=>[f(_.$slots,"close",{ui:b.value},()=>[e(t).close?(r(),i(be,D({key:0,icon:e(t).closeIcon||e(p).ui.icons.close,color:"neutral",variant:"ghost","aria-label":e(y)("modal.close")},typeof e(t).close=="object"?e(t).close:{},{"data-slot":"close",class:b.value.close({class:e(t).ui?.close})}),null,16,["icon","aria-label","class"])):g("",!0)])]),_:2},1024)):g("",!0)])],2)):g("",!0),o.body?(r(),E("div",{key:1,"data-slot":"body",class:h(b.value.body({class:e(t).ui?.body}))},[f(_.$slots,"body",{close:P})],2)):g("",!0),o.footer?(r(),E("div",{key:2,"data-slot":"footer",class:h(b.value.footer({class:e(t).ui?.footer}))},[f(_.$slots,"footer",{close:P})],2)):g("",!0)])]),_:2},1040,["class"])]),_:2},1024),o.default?(r(),i(e(Ne),{key:0,"as-child":"",class:h(e(t).class)},{default:u(()=>[f(_.$slots,"default",{open:H})]),_:2},1032,["class"])):g("",!0),k(e(je),D(e(l),{"force-mount":e(l).disabled&&e(t).unmountOnHide===!1||void 0}),{default:u(()=>[k(e(De),null,{default:u(()=>[e(t).scrollable?(r(),i(e(G),{key:0,"data-slot":"overlay",class:h(b.value.overlay({class:e(t).ui?.overlay}))},{default:u(()=>[k(e($))]),_:1},8,["class"])):(r(),E(Oe,{key:1},[e(t).overlay?(r(),i(e(G),{key:0,"data-slot":"overlay",class:h(b.value.overlay({class:e(t).ui?.overlay}))},null,8,["class"])):g("",!0),k(e($))],64))]),_:1})]),_:1},16,["force-mount"])]),_:3},16))}};export{G as D,Ge as _,Re as a,he as b,Ne as c,je as d,K as e,S as f,$e as g};
@@ -1 +1 @@
1
- import{a1 as r,a3 as n,o as p,f as i,g as u,T as c,p as d,k as e,V as f,h as m,a6 as _}from"./D3SYPlEB.js";const b={base:"animate-pulse rounded-md bg-elevated"},C={__name:"USkeleton",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(a){const s=r("skeleton",a),t=n(),l=m(()=>_({extend:b,...t.ui?.skeleton||{}}));return(o,g)=>(p(),i(e(f),{as:e(s).as,"aria-busy":"true","aria-label":"loading","aria-live":"polite",role:"alert",class:d(l.value({class:[e(s).ui?.base,e(s).class]}))},{default:u(()=>[c(o.$slots,"default")]),_:3},8,["as","class"]))}};export{C as _};
1
+ import{a1 as r,a3 as n,o as p,f as i,g as u,T as c,p as d,k as e,V as f,h as m,a6 as _}from"./DHltYerF.js";const b={base:"animate-pulse rounded-md bg-elevated"},C={__name:"USkeleton",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(a){const s=r("skeleton",a),t=n(),l=m(()=>_({extend:b,...t.ui?.skeleton||{}}));return(o,g)=>(p(),i(e(f),{as:e(s).as,"aria-busy":"true","aria-label":"loading","aria-live":"polite",role:"alert",class:d(l.value({class:[e(s).ui?.base,e(s).class]}))},{default:u(()=>[c(o.$slots,"default")]),_:3},8,["as","class"]))}};export{C as _};
@@ -1 +1 @@
1
- import{_ as $,a as y}from"./BAaSmp8J.js";import{_ as k,a as C}from"./87SGk1nu.js";import{u as B,_ as D}from"./BJltXwHg.js";import{a1 as M,a3 as S,o as f,f as d,g as i,T as c,i as p,p as u,k as s,V as U,h as _,a6 as N,C as P,r as T,d as j,e as q,j as o,aI as V}from"./D3SYPlEB.js";import"./B6rt3IcG.js";import"./va1mwSm9.js";import"./CCw3Tx4S.js";import"./CPZ5wygb.js";import"./r3SBLxtE.js";import"./CiPH-swI.js";const H={slots:{root:"shrink-0 flex items-center justify-between border-b border-default px-4 sm:px-6 gap-1.5 overflow-x-auto min-h-[49px]",left:"flex items-center gap-1.5",right:"flex items-center gap-1.5"}},I={__name:"UDashboardToolbar",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(t){const a=M("dashboardToolbar",t),e=S(),l=_(()=>N({extend:H,...e.ui?.dashboardToolbar||{}})());return(r,m)=>(f(),d(s(U),{as:s(a).as,"data-slot":"root",class:u(l.value.root({class:[s(a).ui?.root,s(a).class]}))},{default:i(()=>[c(r.$slots,"default",{},()=>[p("div",{"data-slot":"left",class:u(l.value.left({class:[s(a).ui?.left]}))},[c(r.$slots,"left")],2),p("div",{"data-slot":"right",class:u(l.value.right({class:[s(a).ui?.right]}))},[c(r.$slots,"right")],2)])]),_:3},8,["as","class"]))}};function z(){const t=T({account:!1,users:!1,notifications:!1,tags:!1,storage:!1,"wasted-time":!1,"timeout-hygiene":!1,ai:!1,about:!1});async function n(){const a=[];a.push($fetch("/api/settings/ai").then(e=>{t.value.ai=!!e.envManaged}).catch(()=>{})),a.push($fetch("/api/settings/wasted-waits").then(e=>{t.value["wasted-time"]=!!e.envManaged}).catch(()=>{})),a.push($fetch("/api/settings/smtp").then(e=>{t.value.notifications=!!(e.envManaged&&e.configured)}).catch(()=>{})),await Promise.all(a)}return P(()=>{n()}),{envManaged:t,refresh:n}}const A={class:"flex flex-col gap-4 sm:gap-6 lg:gap-12 w-full lg:max-w-4xl mx-auto"},X=j({__name:"settings",setup(t){q({title:"Settings — Piwi Dashboard"});const{envManaged:n}=z(),a=B(n),e=_(()=>[a.value,[{label:"Documentation",icon:"i-lucide-book-open",to:"https://github.com/piwitests/platform",target:"_blank"}]]);return(l,r)=>{const m=$,g=y,h=C,b=D,v=I,x=V,w=k;return f(),d(w,{id:"settings",ui:{body:"lg:py-12"}},{header:i(()=>[o(h,null,{leading:i(()=>[o(m),o(g,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Settings"}]})]),_:1}),o(v,null,{default:i(()=>[o(b,{items:s(e),highlight:"",class:"-mx-1 flex-1",ui:{list:"overflow-x-auto",root:"min-w-0"}},null,8,["items"])]),_:1})]),body:i(()=>[p("div",A,[o(x)])]),_:1})}}});export{X as default};
1
+ import{_ as $,a as y}from"./B4jvLMfS.js";import{_ as k,a as C}from"./CdMuck_X.js";import{u as B,_ as D}from"./DRPSi76A.js";import{a1 as M,a3 as S,o as f,f as d,g as i,T as c,i as p,p as u,k as s,V as U,h as _,a6 as N,C as P,r as T,d as j,e as q,j as o,aI as V}from"./DHltYerF.js";import"./BbS6Bwby.js";import"./CPLJeOCb.js";import"./D6PUPmRC.js";import"./C8OCrfDP.js";import"./r3SBLxtE.js";import"./Cnapl7lZ.js";const H={slots:{root:"shrink-0 flex items-center justify-between border-b border-default px-4 sm:px-6 gap-1.5 overflow-x-auto min-h-[49px]",left:"flex items-center gap-1.5",right:"flex items-center gap-1.5"}},I={__name:"UDashboardToolbar",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(t){const a=M("dashboardToolbar",t),e=S(),l=_(()=>N({extend:H,...e.ui?.dashboardToolbar||{}})());return(r,m)=>(f(),d(s(U),{as:s(a).as,"data-slot":"root",class:u(l.value.root({class:[s(a).ui?.root,s(a).class]}))},{default:i(()=>[c(r.$slots,"default",{},()=>[p("div",{"data-slot":"left",class:u(l.value.left({class:[s(a).ui?.left]}))},[c(r.$slots,"left")],2),p("div",{"data-slot":"right",class:u(l.value.right({class:[s(a).ui?.right]}))},[c(r.$slots,"right")],2)])]),_:3},8,["as","class"]))}};function z(){const t=T({account:!1,users:!1,notifications:!1,tags:!1,storage:!1,"wasted-time":!1,"timeout-hygiene":!1,ai:!1,about:!1});async function n(){const a=[];a.push($fetch("/api/settings/ai").then(e=>{t.value.ai=!!e.envManaged}).catch(()=>{})),a.push($fetch("/api/settings/wasted-waits").then(e=>{t.value["wasted-time"]=!!e.envManaged}).catch(()=>{})),a.push($fetch("/api/settings/smtp").then(e=>{t.value.notifications=!!(e.envManaged&&e.configured)}).catch(()=>{})),await Promise.all(a)}return P(()=>{n()}),{envManaged:t,refresh:n}}const A={class:"flex flex-col gap-4 sm:gap-6 lg:gap-12 w-full lg:max-w-4xl mx-auto"},X=j({__name:"settings",setup(t){q({title:"Settings — Piwi Dashboard"});const{envManaged:n}=z(),a=B(n),e=_(()=>[a.value,[{label:"Documentation",icon:"i-lucide-book-open",to:"https://github.com/piwitests/platform",target:"_blank"}]]);return(l,r)=>{const m=$,g=y,h=C,b=D,v=I,x=V,w=k;return f(),d(w,{id:"settings",ui:{body:"lg:py-12"}},{header:i(()=>[o(h,null,{leading:i(()=>[o(m),o(g,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Settings"}]})]),_:1}),o(v,null,{default:i(()=>[o(b,{items:s(e),highlight:"",class:"-mx-1 flex-1",ui:{list:"overflow-x-auto",root:"min-w-0"}},null,8,["items"])]),_:1})]),body:i(()=>[p("div",A,[o(x)])]),_:1})}}});export{X as default};
@@ -1 +1 @@
1
- import{d as S,W as L,ay as O,S as C,X as N,az as D,o as c,f as y,g,T as h,k as a,V as I,r as q,aA as j,Y as E,C as U,ad as W,j as w,O as G,q as k,aB as Q,h as _,B as X,aC as Y,aD as J,U as T,aE as Z,aF as aa,Q as ta,H as ea,a0 as ia,a1 as sa,a3 as oa,a4 as la,a5 as ra,p as x,c as B,F as $,y as M,aG as z,v as na,aH as da,m as R,t as K,s as ua,a6 as ca}from"./D3SYPlEB.js";import{R as va}from"./Do6zIWQf.js";const[V,fa]=E("TabsRoot");var ga=S({__name:"TabsRoot",props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:"horizontal"},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:"automatic"},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["update:modelValue"],setup(d,{emit:r}){const u=d,i=r,{orientation:v,unmountOnHide:n,dir:t}=L(u),o=O(t);C();const s=N(u,"modelValue",i,{defaultValue:u.defaultValue,passive:u.modelValue===void 0}),l=q(),p=j(new Set);return fa({modelValue:s,changeModelValue:b=>{s.value=b},orientation:v,dir:o,unmountOnHide:n,activationMode:u.activationMode,baseId:D(void 0,"reka-tabs"),tabsList:l,contentIds:p,registerContent:b=>{p.value=new Set([...p.value,b])},unregisterContent:b=>{const f=new Set(p.value);f.delete(b),p.value=f}}),(b,f)=>(c(),y(a(I),{dir:a(o),"data-orientation":a(v),"as-child":b.asChild,as:b.as},{default:g(()=>[h(b.$slots,"default",{modelValue:a(s)})]),_:3},8,["dir","data-orientation","as-child","as"]))}}),pa=ga;function F(d,r){return`${d}-trigger-${r}`}function H(d,r){return`${d}-content-${r}`}var ba=S({__name:"TabsContent",props:{value:{type:[String,Number],required:!0},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(d){const r=d,{forwardRef:u}=C(),i=V(),v=_(()=>F(i.baseId,r.value)),n=_(()=>H(i.baseId,r.value)),t=_(()=>r.value===i.modelValue.value),o=q(t.value);return U(()=>{i.registerContent(r.value),requestAnimationFrame(()=>{o.value=!1})}),W(()=>{i.unregisterContent(r.value)}),(s,l)=>(c(),y(a(Q),{present:s.forceMount||t.value,"force-mount":""},{default:g(({present:p})=>[w(a(I),{id:n.value,ref:a(u),"as-child":s.asChild,as:s.as,role:"tabpanel","data-state":t.value?"active":"inactive","data-orientation":a(i).orientation.value,"aria-labelledby":v.value,hidden:!p,tabindex:"0",style:G({animationDuration:o.value?"0s":void 0})},{default:g(()=>[!a(i).unmountOnHide.value||p?h(s.$slots,"default",{key:0}):k("v-if",!0)]),_:2},1032,["id","as-child","as","data-state","data-orientation","aria-labelledby","hidden","style"])]),_:3},8,["present"]))}}),ya=ba,ha=S({__name:"TabsIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(d,{expose:r}){const u=d,i=V();r({updateIndicatorStyle:o}),C();const v=Z(),n=q({size:null,thickness:null,position:null}),t=q([]);X(()=>[i.modelValue.value,i?.dir.value],()=>{o()},{immediate:!0,flush:"post"}),Y(()=>{t.value=Array.from(i.tabsList.value?.querySelectorAll('[role="tab"]')||[])}),J(_(()=>[i.tabsList.value,...t.value]),o);function o(){const s=i.tabsList.value?.querySelector('[role="tab"][data-state="active"]');s&&(i.orientation.value==="horizontal"?n.value={size:s.offsetWidth,thickness:s.offsetHeight,position:s.offsetLeft}:n.value={size:s.offsetHeight,thickness:s.offsetWidth,position:s.offsetTop})}return(s,l)=>a(v)&&typeof n.value.size=="number"?(c(),y(a(I),T({key:0},u,{style:{"--reka-tabs-indicator-size":`${n.value.size}px`,"--reka-tabs-indicator-thickness":`${n.value.thickness}px`,"--reka-tabs-indicator-position":`${n.value.position}px`}}),{default:g(()=>[h(s.$slots,"default")]),_:3},16,["style"])):k("v-if",!0)}}),ma=ha,_a=S({__name:"TabsList",props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(d){const r=d,{loop:u}=L(r),{forwardRef:i,currentElement:v}=C(),n=V();return n.tabsList=v,(t,o)=>(c(),y(a(aa),{"as-child":"",orientation:a(n).orientation.value,dir:a(n).dir.value,loop:a(u)},{default:g(()=>[w(a(I),{ref:a(i),role:"tablist","as-child":t.asChild,as:t.as,"aria-orientation":a(n).orientation.value},{default:g(()=>[h(t.$slots,"default")]),_:3},8,["as-child","as","aria-orientation"])]),_:3},8,["orientation","dir","loop"]))}}),xa=_a,za=S({__name:"TabsTrigger",props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const r=d,{forwardRef:u}=C(),i=V(),v=_(()=>F(i.baseId,r.value)),n=_(()=>i.contentIds.value.has(r.value)?H(i.baseId,r.value):void 0),t=_(()=>r.value===i.modelValue.value);return(o,s)=>(c(),y(a(va),{"as-child":"",focusable:!o.disabled,active:t.value},{default:g(()=>[w(a(I),{id:v.value,ref:a(u),role:"tab",type:o.as==="button"?"button":void 0,as:o.as,"as-child":o.asChild,"aria-selected":t.value?"true":"false","aria-controls":n.value,"data-state":t.value?"active":"inactive",disabled:o.disabled,"data-disabled":o.disabled?"":void 0,"data-orientation":a(i).orientation.value,onMousedown:s[0]||(s[0]=ea(l=>{!o.disabled&&l.ctrlKey===!1?a(i).changeModelValue(o.value):l.preventDefault()},["left"])),onKeydown:s[1]||(s[1]=ta(l=>a(i).changeModelValue(o.value),["enter","space"])),onFocus:s[2]||(s[2]=()=>{const l=a(i).activationMode!=="manual";!t.value&&!o.disabled&&l&&a(i).changeModelValue(o.value)})},{default:g(()=>[h(o.$slots,"default")]),_:3},8,["id","type","as","as-child","aria-selected","aria-controls","data-state","disabled","data-disabled","data-orientation"])]),_:3},8,["focusable","active"]))}}),ka=za;const qa={slots:{root:"flex items-center gap-2",list:"relative flex p-1 group",indicator:"absolute transition-[translate,width] duration-200",trigger:["group relative inline-flex items-center min-w-0 data-[state=inactive]:text-muted hover:data-[state=inactive]:not-disabled:text-default font-medium rounded-md disabled:cursor-not-allowed disabled:opacity-75","transition-colors"],leadingIcon:"shrink-0",leadingAvatar:"shrink-0",leadingAvatarSize:"",label:"truncate",trailingBadge:"shrink-0",trailingBadgeSize:"sm",content:"w-full rounded-md focus-visible:outline-3"},variants:{color:{primary:{content:"outline-primary/25"},secondary:{content:"outline-secondary/25"},success:{content:"outline-success/25"},info:{content:"outline-info/25"},warning:{content:"outline-warning/25"},error:{content:"outline-error/25"},neutral:{content:"outline-inverted/25"}},variant:{pill:{list:"bg-elevated rounded-lg",trigger:["grow","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:content-[''] in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:absolute in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:inset-0 in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:rounded-md in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:shadow-xs in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:-z-10 in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:isolate"],indicator:"rounded-md shadow-xs"},link:{list:"border-default",indicator:"rounded-full",trigger:"in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:content-[''] in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:absolute in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:rounded-full"}},orientation:{horizontal:{root:"flex-col",list:"w-full",indicator:"left-0 w-(--reka-tabs-indicator-size) translate-x-(--reka-tabs-indicator-position)",trigger:"justify-center"},vertical:{list:"flex-col",indicator:"top-0 h-(--reka-tabs-indicator-size) translate-y-(--reka-tabs-indicator-position)"}},size:{xs:{trigger:"px-2 py-1 text-xs gap-1",leadingIcon:"size-4",leadingAvatarSize:"3xs"},sm:{trigger:"px-2.5 py-1.5 text-xs gap-1.5",leadingIcon:"size-4",leadingAvatarSize:"3xs"},md:{trigger:"px-3 py-1.5 text-sm gap-1.5",leadingIcon:"size-5",leadingAvatarSize:"2xs"},lg:{trigger:"px-3 py-2 text-sm gap-2",leadingIcon:"size-5",leadingAvatarSize:"2xs"},xl:{trigger:"px-3 py-2 text-base gap-2",leadingIcon:"size-6",leadingAvatarSize:"xs"}}},compoundVariants:[{orientation:"horizontal",variant:"pill",class:{indicator:"inset-y-1"}},{orientation:"horizontal",variant:"link",class:{list:"border-b -mb-px",indicator:"-bottom-px h-px",trigger:"in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:inset-x-0 in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:-bottom-[calc(var(--spacing)+1px)] in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:h-px"}},{orientation:"vertical",variant:"pill",class:{indicator:"inset-x-1",list:"items-center",trigger:"w-full justify-center"}},{orientation:"vertical",variant:"link",class:{list:"border-s -ms-px",indicator:"-start-px w-px",trigger:"in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:inset-y-0 in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:-start-[calc(var(--spacing)+1px)] in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:w-px"}},{color:"primary",variant:"pill",class:{indicator:"bg-primary",trigger:["data-[state=active]:text-inverted outline-primary/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-primary"]}},{color:"secondary",variant:"pill",class:{indicator:"bg-secondary",trigger:["data-[state=active]:text-inverted outline-secondary/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-secondary"]}},{color:"success",variant:"pill",class:{indicator:"bg-success",trigger:["data-[state=active]:text-inverted outline-success/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-success"]}},{color:"info",variant:"pill",class:{indicator:"bg-info",trigger:["data-[state=active]:text-inverted outline-info/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-info"]}},{color:"warning",variant:"pill",class:{indicator:"bg-warning",trigger:["data-[state=active]:text-inverted outline-warning/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-warning"]}},{color:"error",variant:"pill",class:{indicator:"bg-error",trigger:["data-[state=active]:text-inverted outline-error/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-error"]}},{color:"neutral",variant:"pill",class:{indicator:"bg-inverted",trigger:["data-[state=active]:text-inverted outline-inverted/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-inverted"]}},{color:"primary",variant:"link",class:{indicator:"bg-primary",trigger:["data-[state=active]:text-primary outline-primary/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-primary"]}},{color:"secondary",variant:"link",class:{indicator:"bg-secondary",trigger:["data-[state=active]:text-secondary outline-secondary/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-secondary"]}},{color:"success",variant:"link",class:{indicator:"bg-success",trigger:["data-[state=active]:text-success outline-success/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-success"]}},{color:"info",variant:"link",class:{indicator:"bg-info",trigger:["data-[state=active]:text-info outline-info/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-info"]}},{color:"warning",variant:"link",class:{indicator:"bg-warning",trigger:["data-[state=active]:text-warning outline-warning/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-warning"]}},{color:"error",variant:"link",class:{indicator:"bg-error",trigger:["data-[state=active]:text-error outline-error/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-error"]}},{color:"neutral",variant:"link",class:{indicator:"bg-inverted",trigger:["data-[state=active]:text-highlighted outline-inverted/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-inverted"]}}],defaultVariants:{color:"primary",variant:"pill",size:"md"}},Ca={__name:"UTabs",props:{as:{type:null,required:!1},items:{type:Array,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},orientation:{type:null,required:!1,default:"horizontal"},content:{type:Boolean,required:!1,default:!0},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultValue:{type:[String,Number],required:!1,default:"0"},modelValue:{type:[String,Number],required:!1},activationMode:{type:String,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],setup(d,{expose:r,emit:u}){const i=d,v=u,n=ia(),t=sa("tabs",i),o=oa(),s=la(ra(t,"as","unmountOnHide"),v),l=_(()=>ca({extend:qa,...o.ui?.tabs||{}})({color:t.color,variant:t.variant,size:t.size,orientation:t.orientation})),p=q([]);function b(f,A){p.value[f]=A}return r({triggersRef:p}),(f,A)=>(c(),y(a(pa),T(a(s),{"model-value":a(t).modelValue,"default-value":a(t).defaultValue,orientation:a(t).orientation,"activation-mode":a(t).activationMode,"data-slot":"root",class:l.value.root({class:[a(t).ui?.root,a(t).class]})}),{default:g(()=>[w(a(xa),{"data-slot":"list",class:x(l.value.list({class:a(t).ui?.list}))},{default:g(()=>[w(a(ma),{"data-slot":"indicator",class:x(l.value.indicator({class:a(t).ui?.indicator}))},null,8,["class"]),h(f.$slots,"list-leading"),(c(!0),B($,null,M(a(t).items,(e,m)=>(c(),y(a(ka),{key:a(z)(e,a(t).valueKey)??m,ref_for:!0,ref:P=>b(m,P),value:a(z)(e,a(t).valueKey)??String(m),disabled:e.disabled,"data-slot":"trigger",class:x(l.value.trigger({class:[a(t).ui?.trigger,e.ui?.trigger]}))},{default:g(()=>[h(f.$slots,"leading",{item:e,index:m,ui:l.value},()=>[e.icon?(c(),y(na,{key:0,name:e.icon,"data-slot":"leadingIcon",class:x(l.value.leadingIcon({class:[a(t).ui?.leadingIcon,e.ui?.leadingIcon]}))},null,8,["name","class"])):e.avatar?(c(),y(da,T({key:1,size:e.ui?.leadingAvatarSize||a(t).ui?.leadingAvatarSize||l.value.leadingAvatarSize()},{ref_for:!0},e.avatar,{"data-slot":"leadingAvatar",class:l.value.leadingAvatar({class:[a(t).ui?.leadingAvatar,e.ui?.leadingAvatar]})}),null,16,["size","class"])):k("",!0)]),a(z)(e,a(t).labelKey)||n.default?(c(),B("span",{key:0,"data-slot":"label",class:x(l.value.label({class:[a(t).ui?.label,e.ui?.label]}))},[h(f.$slots,"default",{item:e,index:m},()=>[R(K(a(z)(e,a(t).labelKey)),1)])],2)):k("",!0),h(f.$slots,"trailing",{item:e,index:m,ui:l.value},()=>[e.badge||e.badge===0?(c(),y(ua,T({key:0,color:"neutral",variant:"outline",size:e.ui?.trailingBadgeSize||a(t).ui?.trailingBadgeSize||l.value.trailingBadgeSize()},{ref_for:!0},typeof e.badge=="string"||typeof e.badge=="number"?{label:e.badge}:e.badge,{"data-slot":"trailingBadge",class:l.value.trailingBadge({class:[a(t).ui?.trailingBadge,e.ui?.trailingBadge]})}),null,16,["size","class"])):k("",!0)])]),_:2},1032,["value","disabled","class"]))),128)),h(f.$slots,"list-trailing")]),_:3},8,["class"]),a(t).content?(c(!0),B($,{key:0},M(a(t).items,(e,m)=>(c(),y(a(ya),{key:a(z)(e,a(t).valueKey)??m,value:a(z)(e,a(t).valueKey)??String(m),"data-slot":"content",class:x(l.value.content({class:[a(t).ui?.content,e.ui?.content,e.class]}))},{default:g(()=>[h(f.$slots,e.slot||"content",{item:e,index:m,ui:l.value},()=>[R(K(e.content),1)])]),_:2},1032,["value","class"]))),128)):k("",!0)]),_:3},16,["model-value","default-value","orientation","activation-mode","class"]))}};export{Ca as _};
1
+ import{d as S,W as L,ay as O,S as C,X as N,az as D,o as c,f as y,g,T as h,k as a,V as I,r as q,aA as j,Y as E,C as U,ad as W,j as w,O as G,q as k,aB as Q,h as _,B as X,aC as Y,aD as J,U as T,aE as Z,aF as aa,Q as ta,H as ea,a0 as ia,a1 as sa,a3 as oa,a4 as la,a5 as ra,p as x,c as B,F as $,y as M,aG as z,v as na,aH as da,m as R,t as K,s as ua,a6 as ca}from"./DHltYerF.js";import{R as va}from"./gnCL8GjZ.js";const[V,fa]=E("TabsRoot");var ga=S({__name:"TabsRoot",props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:"horizontal"},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:"automatic"},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["update:modelValue"],setup(d,{emit:r}){const u=d,i=r,{orientation:v,unmountOnHide:n,dir:t}=L(u),o=O(t);C();const s=N(u,"modelValue",i,{defaultValue:u.defaultValue,passive:u.modelValue===void 0}),l=q(),p=j(new Set);return fa({modelValue:s,changeModelValue:b=>{s.value=b},orientation:v,dir:o,unmountOnHide:n,activationMode:u.activationMode,baseId:D(void 0,"reka-tabs"),tabsList:l,contentIds:p,registerContent:b=>{p.value=new Set([...p.value,b])},unregisterContent:b=>{const f=new Set(p.value);f.delete(b),p.value=f}}),(b,f)=>(c(),y(a(I),{dir:a(o),"data-orientation":a(v),"as-child":b.asChild,as:b.as},{default:g(()=>[h(b.$slots,"default",{modelValue:a(s)})]),_:3},8,["dir","data-orientation","as-child","as"]))}}),pa=ga;function F(d,r){return`${d}-trigger-${r}`}function H(d,r){return`${d}-content-${r}`}var ba=S({__name:"TabsContent",props:{value:{type:[String,Number],required:!0},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(d){const r=d,{forwardRef:u}=C(),i=V(),v=_(()=>F(i.baseId,r.value)),n=_(()=>H(i.baseId,r.value)),t=_(()=>r.value===i.modelValue.value),o=q(t.value);return U(()=>{i.registerContent(r.value),requestAnimationFrame(()=>{o.value=!1})}),W(()=>{i.unregisterContent(r.value)}),(s,l)=>(c(),y(a(Q),{present:s.forceMount||t.value,"force-mount":""},{default:g(({present:p})=>[w(a(I),{id:n.value,ref:a(u),"as-child":s.asChild,as:s.as,role:"tabpanel","data-state":t.value?"active":"inactive","data-orientation":a(i).orientation.value,"aria-labelledby":v.value,hidden:!p,tabindex:"0",style:G({animationDuration:o.value?"0s":void 0})},{default:g(()=>[!a(i).unmountOnHide.value||p?h(s.$slots,"default",{key:0}):k("v-if",!0)]),_:2},1032,["id","as-child","as","data-state","data-orientation","aria-labelledby","hidden","style"])]),_:3},8,["present"]))}}),ya=ba,ha=S({__name:"TabsIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(d,{expose:r}){const u=d,i=V();r({updateIndicatorStyle:o}),C();const v=Z(),n=q({size:null,thickness:null,position:null}),t=q([]);X(()=>[i.modelValue.value,i?.dir.value],()=>{o()},{immediate:!0,flush:"post"}),Y(()=>{t.value=Array.from(i.tabsList.value?.querySelectorAll('[role="tab"]')||[])}),J(_(()=>[i.tabsList.value,...t.value]),o);function o(){const s=i.tabsList.value?.querySelector('[role="tab"][data-state="active"]');s&&(i.orientation.value==="horizontal"?n.value={size:s.offsetWidth,thickness:s.offsetHeight,position:s.offsetLeft}:n.value={size:s.offsetHeight,thickness:s.offsetWidth,position:s.offsetTop})}return(s,l)=>a(v)&&typeof n.value.size=="number"?(c(),y(a(I),T({key:0},u,{style:{"--reka-tabs-indicator-size":`${n.value.size}px`,"--reka-tabs-indicator-thickness":`${n.value.thickness}px`,"--reka-tabs-indicator-position":`${n.value.position}px`}}),{default:g(()=>[h(s.$slots,"default")]),_:3},16,["style"])):k("v-if",!0)}}),ma=ha,_a=S({__name:"TabsList",props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(d){const r=d,{loop:u}=L(r),{forwardRef:i,currentElement:v}=C(),n=V();return n.tabsList=v,(t,o)=>(c(),y(a(aa),{"as-child":"",orientation:a(n).orientation.value,dir:a(n).dir.value,loop:a(u)},{default:g(()=>[w(a(I),{ref:a(i),role:"tablist","as-child":t.asChild,as:t.as,"aria-orientation":a(n).orientation.value},{default:g(()=>[h(t.$slots,"default")]),_:3},8,["as-child","as","aria-orientation"])]),_:3},8,["orientation","dir","loop"]))}}),xa=_a,za=S({__name:"TabsTrigger",props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const r=d,{forwardRef:u}=C(),i=V(),v=_(()=>F(i.baseId,r.value)),n=_(()=>i.contentIds.value.has(r.value)?H(i.baseId,r.value):void 0),t=_(()=>r.value===i.modelValue.value);return(o,s)=>(c(),y(a(va),{"as-child":"",focusable:!o.disabled,active:t.value},{default:g(()=>[w(a(I),{id:v.value,ref:a(u),role:"tab",type:o.as==="button"?"button":void 0,as:o.as,"as-child":o.asChild,"aria-selected":t.value?"true":"false","aria-controls":n.value,"data-state":t.value?"active":"inactive",disabled:o.disabled,"data-disabled":o.disabled?"":void 0,"data-orientation":a(i).orientation.value,onMousedown:s[0]||(s[0]=ea(l=>{!o.disabled&&l.ctrlKey===!1?a(i).changeModelValue(o.value):l.preventDefault()},["left"])),onKeydown:s[1]||(s[1]=ta(l=>a(i).changeModelValue(o.value),["enter","space"])),onFocus:s[2]||(s[2]=()=>{const l=a(i).activationMode!=="manual";!t.value&&!o.disabled&&l&&a(i).changeModelValue(o.value)})},{default:g(()=>[h(o.$slots,"default")]),_:3},8,["id","type","as","as-child","aria-selected","aria-controls","data-state","disabled","data-disabled","data-orientation"])]),_:3},8,["focusable","active"]))}}),ka=za;const qa={slots:{root:"flex items-center gap-2",list:"relative flex p-1 group",indicator:"absolute transition-[translate,width] duration-200",trigger:["group relative inline-flex items-center min-w-0 data-[state=inactive]:text-muted hover:data-[state=inactive]:not-disabled:text-default font-medium rounded-md disabled:cursor-not-allowed disabled:opacity-75","transition-colors"],leadingIcon:"shrink-0",leadingAvatar:"shrink-0",leadingAvatarSize:"",label:"truncate",trailingBadge:"shrink-0",trailingBadgeSize:"sm",content:"w-full rounded-md focus-visible:outline-3"},variants:{color:{primary:{content:"outline-primary/25"},secondary:{content:"outline-secondary/25"},success:{content:"outline-success/25"},info:{content:"outline-info/25"},warning:{content:"outline-warning/25"},error:{content:"outline-error/25"},neutral:{content:"outline-inverted/25"}},variant:{pill:{list:"bg-elevated rounded-lg",trigger:["grow","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:content-[''] in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:absolute in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:inset-0 in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:rounded-md in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:shadow-xs in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:-z-10 in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:isolate"],indicator:"rounded-md shadow-xs"},link:{list:"border-default",indicator:"rounded-full",trigger:"in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:content-[''] in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:absolute in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:rounded-full"}},orientation:{horizontal:{root:"flex-col",list:"w-full",indicator:"left-0 w-(--reka-tabs-indicator-size) translate-x-(--reka-tabs-indicator-position)",trigger:"justify-center"},vertical:{list:"flex-col",indicator:"top-0 h-(--reka-tabs-indicator-size) translate-y-(--reka-tabs-indicator-position)"}},size:{xs:{trigger:"px-2 py-1 text-xs gap-1",leadingIcon:"size-4",leadingAvatarSize:"3xs"},sm:{trigger:"px-2.5 py-1.5 text-xs gap-1.5",leadingIcon:"size-4",leadingAvatarSize:"3xs"},md:{trigger:"px-3 py-1.5 text-sm gap-1.5",leadingIcon:"size-5",leadingAvatarSize:"2xs"},lg:{trigger:"px-3 py-2 text-sm gap-2",leadingIcon:"size-5",leadingAvatarSize:"2xs"},xl:{trigger:"px-3 py-2 text-base gap-2",leadingIcon:"size-6",leadingAvatarSize:"xs"}}},compoundVariants:[{orientation:"horizontal",variant:"pill",class:{indicator:"inset-y-1"}},{orientation:"horizontal",variant:"link",class:{list:"border-b -mb-px",indicator:"-bottom-px h-px",trigger:"in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:inset-x-0 in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:-bottom-[calc(var(--spacing)+1px)] in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:h-px"}},{orientation:"vertical",variant:"pill",class:{indicator:"inset-x-1",list:"items-center",trigger:"w-full justify-center"}},{orientation:"vertical",variant:"link",class:{list:"border-s -ms-px",indicator:"-start-px w-px",trigger:"in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:inset-y-0 in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:-start-[calc(var(--spacing)+1px)] in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:w-px"}},{color:"primary",variant:"pill",class:{indicator:"bg-primary",trigger:["data-[state=active]:text-inverted outline-primary/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-primary"]}},{color:"secondary",variant:"pill",class:{indicator:"bg-secondary",trigger:["data-[state=active]:text-inverted outline-secondary/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-secondary"]}},{color:"success",variant:"pill",class:{indicator:"bg-success",trigger:["data-[state=active]:text-inverted outline-success/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-success"]}},{color:"info",variant:"pill",class:{indicator:"bg-info",trigger:["data-[state=active]:text-inverted outline-info/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-info"]}},{color:"warning",variant:"pill",class:{indicator:"bg-warning",trigger:["data-[state=active]:text-inverted outline-warning/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-warning"]}},{color:"error",variant:"pill",class:{indicator:"bg-error",trigger:["data-[state=active]:text-inverted outline-error/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-error"]}},{color:"neutral",variant:"pill",class:{indicator:"bg-inverted",trigger:["data-[state=active]:text-inverted outline-inverted/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:before:bg-inverted"]}},{color:"primary",variant:"link",class:{indicator:"bg-primary",trigger:["data-[state=active]:text-primary outline-primary/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-primary"]}},{color:"secondary",variant:"link",class:{indicator:"bg-secondary",trigger:["data-[state=active]:text-secondary outline-secondary/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-secondary"]}},{color:"success",variant:"link",class:{indicator:"bg-success",trigger:["data-[state=active]:text-success outline-success/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-success"]}},{color:"info",variant:"link",class:{indicator:"bg-info",trigger:["data-[state=active]:text-info outline-info/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-info"]}},{color:"warning",variant:"link",class:{indicator:"bg-warning",trigger:["data-[state=active]:text-warning outline-warning/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-warning"]}},{color:"error",variant:"link",class:{indicator:"bg-error",trigger:["data-[state=active]:text-error outline-error/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-error"]}},{color:"neutral",variant:"link",class:{indicator:"bg-inverted",trigger:["data-[state=active]:text-highlighted outline-inverted/25 focus-visible:outline-3","in-[[data-slot=list]:not(:has([data-slot=indicator]))]:data-[state=active]:after:bg-inverted"]}}],defaultVariants:{color:"primary",variant:"pill",size:"md"}},Ca={__name:"UTabs",props:{as:{type:null,required:!1},items:{type:Array,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},orientation:{type:null,required:!1,default:"horizontal"},content:{type:Boolean,required:!1,default:!0},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultValue:{type:[String,Number],required:!1,default:"0"},modelValue:{type:[String,Number],required:!1},activationMode:{type:String,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],setup(d,{expose:r,emit:u}){const i=d,v=u,n=ia(),t=sa("tabs",i),o=oa(),s=la(ra(t,"as","unmountOnHide"),v),l=_(()=>ca({extend:qa,...o.ui?.tabs||{}})({color:t.color,variant:t.variant,size:t.size,orientation:t.orientation})),p=q([]);function b(f,A){p.value[f]=A}return r({triggersRef:p}),(f,A)=>(c(),y(a(pa),T(a(s),{"model-value":a(t).modelValue,"default-value":a(t).defaultValue,orientation:a(t).orientation,"activation-mode":a(t).activationMode,"data-slot":"root",class:l.value.root({class:[a(t).ui?.root,a(t).class]})}),{default:g(()=>[w(a(xa),{"data-slot":"list",class:x(l.value.list({class:a(t).ui?.list}))},{default:g(()=>[w(a(ma),{"data-slot":"indicator",class:x(l.value.indicator({class:a(t).ui?.indicator}))},null,8,["class"]),h(f.$slots,"list-leading"),(c(!0),B($,null,M(a(t).items,(e,m)=>(c(),y(a(ka),{key:a(z)(e,a(t).valueKey)??m,ref_for:!0,ref:P=>b(m,P),value:a(z)(e,a(t).valueKey)??String(m),disabled:e.disabled,"data-slot":"trigger",class:x(l.value.trigger({class:[a(t).ui?.trigger,e.ui?.trigger]}))},{default:g(()=>[h(f.$slots,"leading",{item:e,index:m,ui:l.value},()=>[e.icon?(c(),y(na,{key:0,name:e.icon,"data-slot":"leadingIcon",class:x(l.value.leadingIcon({class:[a(t).ui?.leadingIcon,e.ui?.leadingIcon]}))},null,8,["name","class"])):e.avatar?(c(),y(da,T({key:1,size:e.ui?.leadingAvatarSize||a(t).ui?.leadingAvatarSize||l.value.leadingAvatarSize()},{ref_for:!0},e.avatar,{"data-slot":"leadingAvatar",class:l.value.leadingAvatar({class:[a(t).ui?.leadingAvatar,e.ui?.leadingAvatar]})}),null,16,["size","class"])):k("",!0)]),a(z)(e,a(t).labelKey)||n.default?(c(),B("span",{key:0,"data-slot":"label",class:x(l.value.label({class:[a(t).ui?.label,e.ui?.label]}))},[h(f.$slots,"default",{item:e,index:m},()=>[R(K(a(z)(e,a(t).labelKey)),1)])],2)):k("",!0),h(f.$slots,"trailing",{item:e,index:m,ui:l.value},()=>[e.badge||e.badge===0?(c(),y(ua,T({key:0,color:"neutral",variant:"outline",size:e.ui?.trailingBadgeSize||a(t).ui?.trailingBadgeSize||l.value.trailingBadgeSize()},{ref_for:!0},typeof e.badge=="string"||typeof e.badge=="number"?{label:e.badge}:e.badge,{"data-slot":"trailingBadge",class:l.value.trailingBadge({class:[a(t).ui?.trailingBadge,e.ui?.trailingBadge]})}),null,16,["size","class"])):k("",!0)])]),_:2},1032,["value","disabled","class"]))),128)),h(f.$slots,"list-trailing")]),_:3},8,["class"]),a(t).content?(c(!0),B($,{key:0},M(a(t).items,(e,m)=>(c(),y(a(ya),{key:a(z)(e,a(t).valueKey)??m,value:a(z)(e,a(t).valueKey)??String(m),"data-slot":"content",class:x(l.value.content({class:[a(t).ui?.content,e.ui?.content,e.class]}))},{default:g(()=>[h(f.$slots,e.slot||"content",{item:e,index:m,ui:l.value},()=>[R(K(e.content),1)])]),_:2},1032,["value","class"]))),128)):k("",!0)]),_:3},16,["model-value","default-value","orientation","activation-mode","class"]))}};export{Ca as _};