@piwitests/server 0.24.0 → 0.25.0

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 (438) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{DbmGeOus.js → 5nOoVJzL.js} +1 -1
  3. package/.output/public/_nuxt/6DSY_93j.js +1 -0
  4. package/.output/public/_nuxt/7vRR5W2L.js +1 -0
  5. package/.output/public/_nuxt/{DM3bDZC6.js → 9Dtlg-K4.js} +1 -1
  6. package/.output/public/_nuxt/9Yziijlb.js +1 -0
  7. package/.output/public/_nuxt/{BakMHV79.js → B-onBCAB.js} +1 -1
  8. package/.output/public/_nuxt/B2bK5uNR.js +1 -0
  9. package/.output/public/_nuxt/{BkM2KXUo.js → B63B19Iv.js} +2 -2
  10. package/.output/public/_nuxt/{BFxvHlO9.js → B77w1Eib.js} +1 -1
  11. package/.output/public/_nuxt/{Drw8yQg6.js → BC5bqlfM.js} +1 -1
  12. package/.output/public/_nuxt/{CJ1rmnk4.js → BF5JDf9_.js} +1 -1
  13. package/.output/public/_nuxt/BFVrl1ss.js +1 -0
  14. package/.output/public/_nuxt/{CjtjQV60.js → BIHMeNW-.js} +1 -1
  15. package/.output/public/_nuxt/BKqOGcst.js +1 -0
  16. package/.output/public/_nuxt/{Bme1UkOl.js → BLqooxh5.js} +1 -1
  17. package/.output/public/_nuxt/{D0Kop4bS.js → BMfTUMYy.js} +1 -1
  18. package/.output/public/_nuxt/{V9p3z39z.js → BOrnSpTA.js} +1 -1
  19. package/.output/public/_nuxt/{DEvYVl9M.js → BPQNVV4M.js} +1 -1
  20. package/.output/public/_nuxt/{DuOH5jcQ.js → BSKLNgre.js} +1 -1
  21. package/.output/public/_nuxt/BTCWUyBX.js +1 -0
  22. package/.output/public/_nuxt/BUYmGTVP.js +1 -0
  23. package/.output/public/_nuxt/{CgkXEZMo.js → BWddBCom.js} +1 -1
  24. package/.output/public/_nuxt/{B33YjaHr.js → BYQ9lXQb.js} +1 -1
  25. package/.output/public/_nuxt/BYWQ47QQ.js +5 -0
  26. package/.output/public/_nuxt/{BvAfKk6C.js → BYnqoVCE.js} +1 -1
  27. package/.output/public/_nuxt/{-COcylA_.js → BaU2hm4B.js} +1 -1
  28. package/.output/public/_nuxt/{6Z_ZwH8I.js → BbXvpkBp.js} +1 -1
  29. package/.output/public/_nuxt/Bb_925DD.js +1 -0
  30. package/.output/public/_nuxt/BcHU1KNK.js +1 -0
  31. package/.output/public/_nuxt/BdUGUwvE.js +1 -0
  32. package/.output/public/_nuxt/{DPZBpFOX.js → BeQq85yJ.js} +2 -2
  33. package/.output/public/_nuxt/Bg8yOdSf.js +1 -0
  34. package/.output/public/_nuxt/BhzfJaPC.js +1 -0
  35. package/.output/public/_nuxt/{D1vqYZsL.js → Bkb-0yS0.js} +4 -4
  36. package/.output/public/_nuxt/BmweLu9g.js +2 -0
  37. package/.output/public/_nuxt/Boyv6hLW.js +1 -0
  38. package/.output/public/_nuxt/{BtSGUY-7.js → Bq4xEWLF.js} +4 -4
  39. package/.output/public/_nuxt/{CMuzkARi.js → BraJd4EA.js} +1 -1
  40. package/.output/public/_nuxt/BvXrhZ8k.js +1 -0
  41. package/.output/public/_nuxt/{B8H4XydJ.js → Bw4oIhct.js} +1 -1
  42. package/.output/public/_nuxt/BxSrScjV.js +1 -0
  43. package/.output/public/_nuxt/Byqt8JHG.js +1 -0
  44. package/.output/public/_nuxt/{C5TrTuWv.js → BzBaMPgu.js} +3 -3
  45. package/.output/public/_nuxt/{BKrWWV14.js → C1-8_6cB.js} +1 -1
  46. package/.output/public/_nuxt/{CjBktNrC.js → C7SG50jD.js} +1 -1
  47. package/.output/public/_nuxt/{BkxRbXIj.js → C8WgBDU1.js} +1 -1
  48. package/.output/public/_nuxt/C8uZoJVq.js +1 -0
  49. package/.output/public/_nuxt/{Bg93Rnts.js → CBQXv4bU.js} +2 -2
  50. package/.output/public/_nuxt/CDEmotIt.js +1 -0
  51. package/.output/public/_nuxt/CIBOv3Ge.js +2 -0
  52. package/.output/public/_nuxt/CO7j4p5r.js +1 -0
  53. package/.output/public/_nuxt/COMhp7lz.js +1 -0
  54. package/.output/public/_nuxt/{CsV7pmcT.js → CPiLUjjx.js} +1 -1
  55. package/.output/public/_nuxt/{D_y2VS8k.js → CTYlay1H.js} +1 -1
  56. package/.output/public/_nuxt/{VACXezo0.js → CVEk4D8I.js} +1 -1
  57. package/.output/public/_nuxt/{P5uOaRUZ.js → CbuK1HIv.js} +1 -1
  58. package/.output/public/_nuxt/{opyDpgSw.js → CdLqOMvN.js} +1 -1
  59. package/.output/public/_nuxt/CdM2qNYM.js +2 -0
  60. package/.output/public/_nuxt/Ch8sGLqE.js +1 -0
  61. package/.output/public/_nuxt/CkdznmkX.js +1 -0
  62. package/.output/public/_nuxt/{B1LUinhp.js → Cmuwgbf4.js} +1 -1
  63. package/.output/public/_nuxt/{Ce5_Tq63.js → CnRNwiuE.js} +1 -1
  64. package/.output/public/_nuxt/{Bp3FRuEm.js → CnsaoeEq.js} +1 -1
  65. package/.output/public/_nuxt/{BUnwEAjq.js → Cp0V2FeW.js} +1 -1
  66. package/.output/public/_nuxt/Cvw4EFTy.js +17 -0
  67. package/.output/public/_nuxt/CwDej2Lz.js +1 -0
  68. package/.output/public/_nuxt/D-wlhH6J.js +1 -0
  69. package/.output/public/_nuxt/D5Mhpp98.js +1 -0
  70. package/.output/public/_nuxt/{CDTeSrLO.js → D8ixf-ZR.js} +5 -5
  71. package/.output/public/_nuxt/{DMWfVJCj.js → DBvdRbTA.js} +2 -2
  72. package/.output/public/_nuxt/DDho3MJD.js +1 -0
  73. package/.output/public/_nuxt/DEGHW4pO.js +1 -0
  74. package/.output/public/_nuxt/{BoNKdx5o.js → DHSYRMJp.js} +1 -1
  75. package/.output/public/_nuxt/DH_LEqhd.js +2 -0
  76. package/.output/public/_nuxt/{BVLqydCr.js → DIqik40e.js} +1 -1
  77. package/.output/public/_nuxt/DLwuL-qR.js +1 -0
  78. package/.output/public/_nuxt/{CIpF9l75.js → DPDFGVb_.js} +2 -2
  79. package/.output/public/_nuxt/DRNHuVn4.js +2 -0
  80. package/.output/public/_nuxt/{DcR0Mmdl.js → DUtYU4Sb.js} +1 -1
  81. package/.output/public/_nuxt/{opwuUqHG.js → DWl73MJR.js} +1 -1
  82. package/.output/public/_nuxt/{BCGljaM0.js → DWz_bHNP.js} +1 -1
  83. package/.output/public/_nuxt/{DGq4A2Pd.js → D_SCB-z2.js} +1 -1
  84. package/.output/public/_nuxt/{DMAiMrNr.js → D_j436ND.js} +1 -1
  85. package/.output/public/_nuxt/DamzjN7l.js +1 -0
  86. package/.output/public/_nuxt/Db5xe__T.js +1 -0
  87. package/.output/public/_nuxt/{CpcrljrH.js → DcUBmKKE.js} +1 -1
  88. package/.output/public/_nuxt/DiP18sFE.js +1 -0
  89. package/.output/public/_nuxt/Die1200X.js +1 -0
  90. package/.output/public/_nuxt/{BN1zZw5b.js → DihSeDlY.js} +4 -4
  91. package/.output/public/_nuxt/{DzZpIs4W.js → DkGXOZRW.js} +1 -1
  92. package/.output/public/_nuxt/{C7fq_rHE.js → DnOtRv65.js} +1 -1
  93. package/.output/public/_nuxt/DnV-BkUA.js +1 -0
  94. package/.output/public/_nuxt/DpeRrg68.js +1 -0
  95. package/.output/public/_nuxt/Dq6_-84R.js +1 -0
  96. package/.output/public/_nuxt/DqKFKS1b.js +1 -0
  97. package/.output/public/_nuxt/DrbO0dl5.js +6 -0
  98. package/.output/public/_nuxt/{Qo6oszaF.js → Ds8_6Fzl.js} +1 -1
  99. package/.output/public/_nuxt/{BtbpLWDs.js → DvewDI9t.js} +1 -1
  100. package/.output/public/_nuxt/E26Y1NWH.js +1 -0
  101. package/.output/public/_nuxt/Hp-_W7z4.js +1 -0
  102. package/.output/public/_nuxt/OanUGF_v.js +1 -0
  103. package/.output/public/_nuxt/{CX_G-FHC.js → RSS6R9Te.js} +13 -13
  104. package/.output/public/_nuxt/{BmzxRbcg.js → VqLetC2g.js} +1 -1
  105. package/.output/public/_nuxt/WCZdf9Ln.js +1 -0
  106. package/.output/public/_nuxt/{DF6Mes5z.js → Yl6iqHwK.js} +4 -4
  107. package/.output/public/_nuxt/builds/latest.json +1 -1
  108. package/.output/public/_nuxt/builds/meta/03f2d81b-8c58-4ea8-9a9d-7553c8ca4af6.json +1 -0
  109. package/.output/public/_nuxt/{entry.DzPSf_u5.css → entry.DVKh2Fd6.css} +1 -1
  110. package/.output/public/_nuxt/iUf7K_JR.js +1 -0
  111. package/.output/public/_nuxt/{C8Paf_V1.js → kDEwM7SQ.js} +1 -1
  112. package/.output/public/_nuxt/{Bd8B-yeR.js → knaDbxMJ.js} +1 -1
  113. package/.output/public/_nuxt/lnpLc047.js +1 -0
  114. package/.output/public/_nuxt/{CD8ZzAFC.js → mhvG7mu8.js} +1 -1
  115. package/.output/public/_nuxt/{BgABj4Ty.js → qUaN2ZW8.js} +4 -4
  116. package/.output/public/_nuxt/qeqzb80l.js +1 -0
  117. package/.output/public/_nuxt/{Fsw2W4TA.js → uj92NYTx.js} +2 -2
  118. package/.output/public/_nuxt/vOZZ2cLi.js +1 -0
  119. package/.output/public/_nuxt/{CGHV0Y2d.js → zAFiz2Mg.js} +1 -1
  120. package/.output/public/demo/seed.version.json +2 -2
  121. package/.output/server/chunks/build/{Alert-He-UxEt6.mjs → Alert-BhTWQzM5.mjs} +2 -2
  122. package/.output/server/chunks/build/Alert-BhTWQzM5.mjs.map +1 -0
  123. package/.output/server/chunks/build/{Breadcrumb-DEP2dVCZ.mjs → Breadcrumb-BJnPB2AW.mjs} +3 -3
  124. package/.output/server/chunks/build/Breadcrumb-BJnPB2AW.mjs.map +1 -0
  125. package/.output/server/chunks/build/{BreadcrumbNav-y6nMDYcR.mjs → BreadcrumbNav-C6Cun6tF.mjs} +3 -3
  126. package/.output/server/chunks/build/BreadcrumbNav-C6Cun6tF.mjs.map +1 -0
  127. package/.output/server/chunks/build/{BrowserBadge-DIASU8Gf.mjs → BrowserBadge-T1KRMIXA.mjs} +4 -4
  128. package/.output/server/chunks/build/BrowserBadge-T1KRMIXA.mjs.map +1 -0
  129. package/.output/server/chunks/build/{ChartCard-ZTsCvItQ.mjs → ChartCard-D_asI_WF.mjs} +2 -2
  130. package/.output/server/chunks/build/ChartCard-D_asI_WF.mjs.map +1 -0
  131. package/.output/server/chunks/build/{ChartMarkerTooltip-u_1DUHh-.mjs → ChartMarkerTooltip-DscESDg7.mjs} +3 -3
  132. package/.output/server/chunks/build/ChartMarkerTooltip-DscESDg7.mjs.map +1 -0
  133. package/.output/server/chunks/build/{Checkbox-BisdHf8n.mjs → Checkbox-Y9ZiIRkJ.mjs} +6 -6
  134. package/.output/server/chunks/build/Checkbox-Y9ZiIRkJ.mjs.map +1 -0
  135. package/.output/server/chunks/build/{CodeBlock-B8BNtZAe.mjs → CodeBlock-Bnn_ps9O.mjs} +4 -4
  136. package/.output/server/chunks/build/CodeBlock-Bnn_ps9O.mjs.map +1 -0
  137. package/.output/server/chunks/build/{DashboardNavbar-D7-3zBUU.mjs → DashboardNavbar-D37dPEtR.mjs} +3 -3
  138. package/.output/server/chunks/build/DashboardNavbar-D37dPEtR.mjs.map +1 -0
  139. package/.output/server/chunks/build/{DashboardSidebarToggle-C3HdHvlE.mjs → DashboardSidebarToggle-DzwsZHVx.mjs} +2 -2
  140. package/.output/server/chunks/build/DashboardSidebarToggle-DzwsZHVx.mjs.map +1 -0
  141. package/.output/server/chunks/build/{DataLocationCard-CC2-lHiP.mjs → DataLocationCard-CUXgZQEs.mjs} +4 -4
  142. package/.output/server/chunks/build/DataLocationCard-CUXgZQEs.mjs.map +1 -0
  143. package/.output/server/chunks/build/{DesktopRunLocallyButton-iNzrDsEs.mjs → DesktopRunLocallyButton-BCmQklj6.mjs} +15 -76
  144. package/.output/server/chunks/build/DesktopRunLocallyButton-BCmQklj6.mjs.map +1 -0
  145. package/.output/server/chunks/build/{DiagnosisPanel-BVb2LgHu.mjs → DiagnosisPanel-haHS2azn.mjs} +7 -7
  146. package/.output/server/chunks/build/DiagnosisPanel-haHS2azn.mjs.map +1 -0
  147. package/.output/server/chunks/build/{DiagnosisResult-xVgZlfKK.mjs → DiagnosisResult-DqTIOelM.mjs} +10 -10
  148. package/.output/server/chunks/build/DiagnosisResult-DqTIOelM.mjs.map +1 -0
  149. package/.output/server/chunks/build/{DurationValue-UX9uajQJ.mjs → DurationValue-D6fQEi5S.mjs} +2 -2
  150. package/.output/server/chunks/build/DurationValue-D6fQEi5S.mjs.map +1 -0
  151. package/.output/server/chunks/build/{EmptyState-DC2q_7TD.mjs → EmptyState-C-mCzGhO.mjs} +2 -2
  152. package/.output/server/chunks/build/EmptyState-C-mCzGhO.mjs.map +1 -0
  153. package/.output/server/chunks/build/{EntityLinks-Dzn73fbq.mjs → EntityLinks-CRJQM9Vy.mjs} +3 -3
  154. package/.output/server/chunks/build/EntityLinks-CRJQM9Vy.mjs.map +1 -0
  155. package/.output/server/chunks/build/{EnvManagedBadge-C-agmABK.mjs → EnvManagedBadge-hyelwXrw.mjs} +4 -4
  156. package/.output/server/chunks/build/EnvManagedBadge-hyelwXrw.mjs.map +1 -0
  157. package/.output/server/chunks/build/{ErrorState-CktYyeEZ.mjs → ErrorState-9UPssp7w.mjs} +2 -2
  158. package/.output/server/chunks/build/ErrorState-9UPssp7w.mjs.map +1 -0
  159. package/.output/server/chunks/build/{FeatureUnavailable-DHFkwI7t.mjs → FeatureUnavailable-CDw3__eq.mjs} +3 -3
  160. package/.output/server/chunks/build/FeatureUnavailable-CDw3__eq.mjs.map +1 -0
  161. package/.output/server/chunks/build/{FormField-GYHKiSI6.mjs → FormField-8vSc-3mb.mjs} +2 -2
  162. package/.output/server/chunks/build/FormField-8vSc-3mb.mjs.map +1 -0
  163. package/.output/server/chunks/build/{GetStartedWizard-BpcGYsm2.mjs → GetStartedWizard-Dp_tjhry.mjs} +4 -4
  164. package/.output/server/chunks/build/GetStartedWizard-Dp_tjhry.mjs.map +1 -0
  165. package/.output/server/chunks/build/{HelpHint-plioHKA0.mjs → HelpHint-Bfyo3ar6.mjs} +4 -4
  166. package/.output/server/chunks/build/HelpHint-Bfyo3ar6.mjs.map +1 -0
  167. package/.output/server/chunks/build/{LoadingState-CwpfmI0W.mjs → LoadingState-CxfFwac9.mjs} +2 -2
  168. package/.output/server/chunks/build/LoadingState-CxfFwac9.mjs.map +1 -0
  169. package/.output/server/chunks/build/{MarkerBadge-Biz5--h2.mjs → MarkerBadge-DmubzeuF.mjs} +2 -2
  170. package/.output/server/chunks/build/MarkerBadge-DmubzeuF.mjs.map +1 -0
  171. package/.output/server/chunks/build/{MetaStripGroup-A0a72vt5.mjs → MetaStripGroup-C-cNBfC9.mjs} +6 -6
  172. package/.output/server/chunks/build/MetaStripGroup-C-cNBfC9.mjs.map +1 -0
  173. package/.output/server/chunks/build/{Modal-hKLvVFNp.mjs → Modal-DcNzjvnm.mjs} +2 -2
  174. package/.output/server/chunks/build/Modal-DcNzjvnm.mjs.map +1 -0
  175. package/.output/server/chunks/build/{NavbarActions-_YjrSUat.mjs → NavbarActions-VCHW0u67.mjs} +2 -2
  176. package/.output/server/chunks/build/NavbarActions-VCHW0u67.mjs.map +1 -0
  177. package/.output/server/chunks/build/{NavigationMenu-RfBOyS32.mjs → NavigationMenu-DG6V0R9Y.mjs} +4 -4
  178. package/.output/server/chunks/build/NavigationMenu-DG6V0R9Y.mjs.map +1 -0
  179. package/.output/server/chunks/build/{OpenInIdeLink-Jp6SzEtD.mjs → OpenInIdeLink-CLj2cTkc.mjs} +5 -5
  180. package/.output/server/chunks/build/{OpenInIdeLink-Jp6SzEtD.mjs.map → OpenInIdeLink-CLj2cTkc.mjs.map} +1 -1
  181. package/.output/server/chunks/build/{ProjectTestCasesTable-DxOTfhi4.mjs → ProjectTestCasesTable-BNd5Fn_G.mjs} +15 -15
  182. package/.output/server/chunks/build/{ProjectTestCasesTable-DxOTfhi4.mjs.map → ProjectTestCasesTable-BNd5Fn_G.mjs.map} +1 -1
  183. package/.output/server/chunks/build/{RovingFocusItem-BOSx1Z9Z.mjs → RovingFocusItem-DkZadRuK.mjs} +2 -2
  184. package/.output/server/chunks/build/RovingFocusItem-DkZadRuK.mjs.map +1 -0
  185. package/.output/server/chunks/build/{RunReports-nuLb-Nm3.mjs → RunReports-CnyGcU8K.mjs} +3 -3
  186. package/.output/server/chunks/build/RunReports-CnyGcU8K.mjs.map +1 -0
  187. package/.output/server/chunks/build/{RunStatusBadge-CvWmcFYM.mjs → RunStatusBadge-DTqX18X-.mjs} +3 -3
  188. package/.output/server/chunks/build/RunStatusBadge-DTqX18X-.mjs.map +1 -0
  189. package/.output/server/chunks/build/{SectionCard-DHAFvJxm.mjs → SectionCard-taTpPtua.mjs} +3 -3
  190. package/.output/server/chunks/build/SectionCard-taTpPtua.mjs.map +1 -0
  191. package/.output/server/chunks/build/{Select-CEyw7HGK.mjs → Select-BChKOOsc.mjs} +3 -3
  192. package/.output/server/chunks/build/Select-BChKOOsc.mjs.map +1 -0
  193. package/.output/server/chunks/build/{SelectMenu-C02Hs2_F.mjs → SelectMenu-DLkMyBsW.mjs} +4 -4
  194. package/.output/server/chunks/build/{SelectMenu-C02Hs2_F.mjs.map → SelectMenu-DLkMyBsW.mjs.map} +1 -1
  195. package/.output/server/chunks/build/{Separator-lrN70ODV.mjs → Separator-Dn-4PN3P.mjs} +2 -2
  196. package/.output/server/chunks/build/Separator-Dn-4PN3P.mjs.map +1 -0
  197. package/.output/server/chunks/build/{SettingsField-tRmytcEJ.mjs → SettingsField-BLO1C7uY.mjs} +6 -6
  198. package/.output/server/chunks/build/SettingsField-BLO1C7uY.mjs.map +1 -0
  199. package/.output/server/chunks/build/{Slideover-D6cRIqch.mjs → Slideover-BiDJaQrt.mjs} +3 -3
  200. package/.output/server/chunks/build/Slideover-BiDJaQrt.mjs.map +1 -0
  201. package/.output/server/chunks/build/{Switch-R2n82ncQ.mjs → Switch-Ca3fYrSH.mjs} +4 -4
  202. package/.output/server/chunks/build/Switch-Ca3fYrSH.mjs.map +1 -0
  203. package/.output/server/chunks/build/{Table-qZdnm9t2.mjs → Table-DQb34a0A.mjs} +2 -2
  204. package/.output/server/chunks/build/Table-DQb34a0A.mjs.map +1 -0
  205. package/.output/server/chunks/build/{Tabs-BDP7MWl4.mjs → Tabs-_ALhm_oG.mjs} +3 -3
  206. package/.output/server/chunks/build/Tabs-_ALhm_oG.mjs.map +1 -0
  207. package/.output/server/chunks/build/{TestCaseHistoryChart-CKDXQ2GI.mjs → TestCaseHistoryChart-D-TEUsZ8.mjs} +3 -3
  208. package/.output/server/chunks/build/TestCaseHistoryChart-D-TEUsZ8.mjs.map +1 -0
  209. package/.output/server/chunks/build/{TestMetaBadges-BlyKmfeP.mjs → TestMetaBadges-G2dAHnT-.mjs} +2 -2
  210. package/.output/server/chunks/build/TestMetaBadges-G2dAHnT-.mjs.map +1 -0
  211. package/.output/server/chunks/build/{TestStatusBar-CvsmKJ4D.mjs → TestStatusBar-CseETAdn.mjs} +2 -2
  212. package/.output/server/chunks/build/TestStatusBar-CseETAdn.mjs.map +1 -0
  213. package/.output/server/chunks/build/{Textarea-DpmpM-lN.mjs → Textarea-CXOoRq7y.mjs} +2 -2
  214. package/.output/server/chunks/build/Textarea-CXOoRq7y.mjs.map +1 -0
  215. package/.output/server/chunks/build/{Tooltip-BI3WQErw.mjs → Tooltip-trltUr5c.mjs} +2 -2
  216. package/.output/server/chunks/build/Tooltip-trltUr5c.mjs.map +1 -0
  217. package/.output/server/chunks/build/{VisuallyHiddenInput-D4E5aJCQ.mjs → VisuallyHiddenInput-CGURvg3N.mjs} +2 -2
  218. package/.output/server/chunks/build/VisuallyHiddenInput-CGURvg3N.mjs.map +1 -0
  219. package/.output/server/chunks/build/{_id_-w7YCSiiy.mjs → _id_-B-G4eG5U.mjs} +40 -40
  220. package/.output/server/chunks/build/{_id_-w7YCSiiy.mjs.map → _id_-B-G4eG5U.mjs.map} +1 -1
  221. package/.output/server/chunks/build/{_id_-T965GKYC.mjs → _id_-Cnzg8n21.mjs} +41 -38
  222. package/.output/server/chunks/build/_id_-Cnzg8n21.mjs.map +1 -0
  223. package/.output/server/chunks/build/{_id_-wiULjAVc.mjs → _id_-Dp_d6gT7.mjs} +62 -54
  224. package/.output/server/chunks/build/{_id_-wiULjAVc.mjs.map → _id_-Dp_d6gT7.mjs.map} +1 -1
  225. package/.output/server/chunks/build/{_id_-26komi8G.mjs → _id_-t2AWaYuK.mjs} +46 -46
  226. package/.output/server/chunks/build/{_id_-26komi8G.mjs.map → _id_-t2AWaYuK.mjs.map} +1 -1
  227. package/.output/server/chunks/build/{about-B3V_OEiu.mjs → about-BFsHkJwE.mjs} +8 -8
  228. package/.output/server/chunks/build/about-BFsHkJwE.mjs.map +1 -0
  229. package/.output/server/chunks/build/{account-DpBdYE46.mjs → account-CZAq8kVg.mjs} +8 -8
  230. package/.output/server/chunks/build/account-CZAq8kVg.mjs.map +1 -0
  231. package/.output/server/chunks/build/{ai-DYhpzbqp.mjs → ai-BGP3GcCR.mjs} +20 -20
  232. package/.output/server/chunks/build/{ai-DYhpzbqp.mjs.map → ai-BGP3GcCR.mjs.map} +1 -1
  233. package/.output/server/chunks/build/{analytics-CZJEU0an.mjs → analytics-CXl5OWV-.mjs} +25 -25
  234. package/.output/server/chunks/build/{analytics-CZJEU0an.mjs.map → analytics-CXl5OWV-.mjs.map} +1 -1
  235. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  236. package/.output/server/chunks/build/{default-CQa_bmAf.mjs → default-4ixAePum.mjs} +208 -76
  237. package/.output/server/chunks/build/default-4ixAePum.mjs.map +1 -0
  238. package/.output/server/chunks/build/{docs-C8bndVXg.mjs → docs-Cgsd01H9.mjs} +16 -16
  239. package/.output/server/chunks/build/{docs-C8bndVXg.mjs.map → docs-Cgsd01H9.mjs.map} +1 -1
  240. package/.output/server/chunks/build/{edit-BdfF9er2.mjs → edit-BEQ-ozj9.mjs} +436 -40
  241. package/.output/server/chunks/build/edit-BEQ-ozj9.mjs.map +1 -0
  242. package/.output/server/chunks/build/{fetch-tkz5_OA-.mjs → fetch-B5TVXZ1s.mjs} +2 -2
  243. package/.output/server/chunks/build/fetch-B5TVXZ1s.mjs.map +1 -0
  244. package/.output/server/chunks/build/{forgot-password-swZRcvXE.mjs → forgot-password-mqE1mpDI.mjs} +4 -4
  245. package/.output/server/chunks/build/forgot-password-mqE1mpDI.mjs.map +1 -0
  246. package/.output/server/chunks/build/{help-content-C876a9WD.mjs → help-content-Bc99BajS.mjs} +6 -1
  247. package/.output/server/chunks/build/help-content-Bc99BajS.mjs.map +1 -0
  248. package/.output/server/chunks/build/{import-B27Sv7h5.mjs → import-DqDDTcSc.mjs} +14 -14
  249. package/.output/server/chunks/build/import-DqDDTcSc.mjs.map +1 -0
  250. package/.output/server/chunks/build/{index-ID913tUa.mjs → index-Bpdj6TXV.mjs} +5 -5
  251. package/.output/server/chunks/build/index-Bpdj6TXV.mjs.map +1 -0
  252. package/.output/server/chunks/build/{index-Dq6nk6OB.mjs → index-DBFsIsjA.mjs} +180 -188
  253. package/.output/server/chunks/build/{index-Dq6nk6OB.mjs.map → index-DBFsIsjA.mjs.map} +1 -1
  254. package/.output/server/chunks/build/{index-C7m32bRI.mjs → index-DSufXCZq.mjs} +22 -18
  255. package/.output/server/chunks/build/index-DSufXCZq.mjs.map +1 -0
  256. package/.output/server/chunks/build/{index-BdZmxLtC.mjs → index-WXE60AXk.mjs} +24 -24
  257. package/.output/server/chunks/build/{index-BdZmxLtC.mjs.map → index-WXE60AXk.mjs.map} +1 -1
  258. package/.output/server/chunks/build/{index-ByWTzqF6.mjs → index-okKjrRhL.mjs} +15 -4
  259. package/.output/server/chunks/build/index-okKjrRhL.mjs.map +1 -0
  260. package/.output/server/chunks/build/{isValueEqualOrExist-D4lZ8uRY.mjs → isValueEqualOrExist-C-9DzL4K.mjs} +2 -2
  261. package/.output/server/chunks/build/isValueEqualOrExist-C-9DzL4K.mjs.map +1 -0
  262. package/.output/server/chunks/build/{login-hxCF06JT.mjs → login-eQ88UoBW.mjs} +6 -6
  263. package/.output/server/chunks/build/login-eQ88UoBW.mjs.map +1 -0
  264. package/.output/server/chunks/build/{mcp-BVW1llyW.mjs → mcp-frcSP2Zg.mjs} +13 -13
  265. package/.output/server/chunks/build/mcp-frcSP2Zg.mjs.map +1 -0
  266. package/.output/server/chunks/build/{notifications-Dn-evqXM.mjs → notifications-DAtRd5V6.mjs} +14 -14
  267. package/.output/server/chunks/build/notifications-DAtRd5V6.mjs.map +1 -0
  268. package/.output/server/chunks/build/{performance-CV8qm94u.mjs → performance-BcQzGXE7.mjs} +13 -13
  269. package/.output/server/chunks/build/performance-BcQzGXE7.mjs.map +1 -0
  270. package/.output/server/chunks/build/{pr-feedback-gKDz8LyA.mjs → pr-feedback-BHtgvegy.mjs} +11 -11
  271. package/.output/server/chunks/build/pr-feedback-BHtgvegy.mjs.map +1 -0
  272. package/.output/server/chunks/build/{reset-password-DtEISa1I.mjs → reset-password-DMHrp14-.mjs} +4 -4
  273. package/.output/server/chunks/build/reset-password-DMHrp14-.mjs.map +1 -0
  274. package/.output/server/chunks/build/server.mjs +32 -32
  275. package/.output/server/chunks/build/{settings-BJDnuLpc.mjs → settings-Bo5OETop.mjs} +11 -11
  276. package/.output/server/chunks/build/settings-Bo5OETop.mjs.map +1 -0
  277. package/.output/server/chunks/build/{settings-metadata-DnAK4Rzg.mjs → settings-metadata-BHbsWQ2g.mjs} +2 -2
  278. package/.output/server/chunks/build/settings-metadata-BHbsWQ2g.mjs.map +1 -0
  279. package/.output/server/chunks/build/{setup-BO9tXa_G.mjs → setup-DAXcxuNY.mjs} +18 -18
  280. package/.output/server/chunks/build/{setup-BO9tXa_G.mjs.map → setup-DAXcxuNY.mjs.map} +1 -1
  281. package/.output/server/chunks/build/{storage-zN92cA9q.mjs → storage-BPK0fVwx.mjs} +12 -12
  282. package/.output/server/chunks/build/storage-BPK0fVwx.mjs.map +1 -0
  283. package/.output/server/chunks/build/{tags-CJFnoyQc.mjs → tags-CoxErA5m.mjs} +8 -8
  284. package/.output/server/chunks/build/tags-CoxErA5m.mjs.map +1 -0
  285. package/.output/server/chunks/build/{test-cases-0Q6rT73d.mjs → test-cases-D8rn-0le.mjs} +27 -27
  286. package/.output/server/chunks/build/test-cases-D8rn-0le.mjs.map +1 -0
  287. package/.output/server/chunks/build/{test-functions-DVRJgiWo.mjs → test-functions-pWs9mhbJ.mjs} +12 -12
  288. package/.output/server/chunks/build/test-functions-pWs9mhbJ.mjs.map +1 -0
  289. package/.output/server/chunks/build/{useCopyRich-BM9GTjJi.mjs → useCopyRich-BqVfhnoH.mjs} +27 -16
  290. package/.output/server/chunks/build/{useCopyRich-BM9GTjJi.mjs.map → useCopyRich-BqVfhnoH.mjs.map} +1 -1
  291. package/.output/server/chunks/build/{useDesktopDownload-Dyf0fR47.mjs → useDesktopDownload-l80DQJ9e.mjs} +2 -2
  292. package/.output/server/chunks/build/useDesktopDownload-l80DQJ9e.mjs.map +1 -0
  293. package/.output/server/chunks/build/{useDesktopLocalRuns-k7Gw3Fv3.mjs → useDesktopLocalRuns-Dil3YzyU.mjs} +68 -6
  294. package/.output/server/chunks/build/useDesktopLocalRuns-Dil3YzyU.mjs.map +1 -0
  295. package/.output/server/chunks/build/{useDesktopProjectLink-WwLte59P.mjs → useDesktopProjectLink-BnIONB--.mjs} +21 -4
  296. package/.output/server/chunks/build/useDesktopProjectLink-BnIONB--.mjs.map +1 -0
  297. package/.output/server/chunks/build/{useFormControl-8skMOTIf.mjs → useFormControl-CXKztoWk.mjs} +2 -2
  298. package/.output/server/chunks/build/useFormControl-CXKztoWk.mjs.map +1 -0
  299. package/.output/server/chunks/build/{useOpenInIde-D74FmDNg.mjs → useOpenInIde-CbbYW3pd.mjs} +2 -2
  300. package/.output/server/chunks/build/useOpenInIde-CbbYW3pd.mjs.map +1 -0
  301. package/.output/server/chunks/build/{useSettingsNav-BLTHducV.mjs → useSettingsNav-C6NpD4Ab.mjs} +2 -2
  302. package/.output/server/chunks/build/useSettingsNav-C6NpD4Ab.mjs.map +1 -0
  303. package/.output/server/chunks/build/{users-C9bjOBde.mjs → users-C2MuCf5G.mjs} +9 -9
  304. package/.output/server/chunks/build/users-C2MuCf5G.mjs.map +1 -0
  305. package/.output/server/chunks/nitro/nitro.mjs +677 -670
  306. package/.output/server/package.json +1 -1
  307. package/package.json +1 -1
  308. package/.output/public/_nuxt/03FA4-rI.js +0 -1
  309. package/.output/public/_nuxt/5a7jHE9s.js +0 -1
  310. package/.output/public/_nuxt/7ZHq6PCI.js +0 -1
  311. package/.output/public/_nuxt/98sAB6Gu.js +0 -1
  312. package/.output/public/_nuxt/B--J7VNt.js +0 -1
  313. package/.output/public/_nuxt/B69RP95P.js +0 -1
  314. package/.output/public/_nuxt/B8Xm4_S_.js +0 -1
  315. package/.output/public/_nuxt/BBhrClA9.js +0 -1
  316. package/.output/public/_nuxt/BPXqL9vK.js +0 -1
  317. package/.output/public/_nuxt/BWMSVSNM.js +0 -1
  318. package/.output/public/_nuxt/B_r0xHVS.js +0 -1
  319. package/.output/public/_nuxt/BevElZaK.js +0 -1
  320. package/.output/public/_nuxt/BfA6lfg4.js +0 -1
  321. package/.output/public/_nuxt/BjaRappk.js +0 -1
  322. package/.output/public/_nuxt/Bn0jaRxI.js +0 -1
  323. package/.output/public/_nuxt/BrUBOQ0y.js +0 -1
  324. package/.output/public/_nuxt/BwEN1fJ1.js +0 -1
  325. package/.output/public/_nuxt/C-XjxjG5.js +0 -1
  326. package/.output/public/_nuxt/C3W_wyr9.js +0 -1
  327. package/.output/public/_nuxt/C7D5Wl7T.js +0 -1
  328. package/.output/public/_nuxt/COuZu9FO.js +0 -2
  329. package/.output/public/_nuxt/CX5Q0dZ8.js +0 -1
  330. package/.output/public/_nuxt/Cf4MFOuf.js +0 -1
  331. package/.output/public/_nuxt/Cq33x7yV.js +0 -1
  332. package/.output/public/_nuxt/Cu2Q4iPh.js +0 -1
  333. package/.output/public/_nuxt/CyLcEDg2.js +0 -2
  334. package/.output/public/_nuxt/D1Y43xM1.js +0 -2
  335. package/.output/public/_nuxt/D2rZosKf.js +0 -6
  336. package/.output/public/_nuxt/D7jpwkRG.js +0 -5
  337. package/.output/public/_nuxt/D8NAb7VE.js +0 -1
  338. package/.output/public/_nuxt/D8vguZKg.js +0 -17
  339. package/.output/public/_nuxt/DH5H1DJh.js +0 -1
  340. package/.output/public/_nuxt/DL8knjzi.js +0 -1
  341. package/.output/public/_nuxt/DMsm-RGQ.js +0 -1
  342. package/.output/public/_nuxt/DMtrFQqi.js +0 -2
  343. package/.output/public/_nuxt/DVEGfqtt.js +0 -2
  344. package/.output/public/_nuxt/DaNC-xl1.js +0 -1
  345. package/.output/public/_nuxt/DcLbz6DV.js +0 -1
  346. package/.output/public/_nuxt/DhYznn-U.js +0 -1
  347. package/.output/public/_nuxt/DhuRRlmK.js +0 -1
  348. package/.output/public/_nuxt/DuO5wfAC.js +0 -1
  349. package/.output/public/_nuxt/DvEsAuE9.js +0 -1
  350. package/.output/public/_nuxt/Dz6g_QJT.js +0 -1
  351. package/.output/public/_nuxt/DzzNS-K1.js +0 -1
  352. package/.output/public/_nuxt/LwoTUb-r.js +0 -1
  353. package/.output/public/_nuxt/OfPjZaky.js +0 -1
  354. package/.output/public/_nuxt/T5UuMUxA.js +0 -1
  355. package/.output/public/_nuxt/UY8pjaZA.js +0 -1
  356. package/.output/public/_nuxt/YmCeJkZ2.js +0 -1
  357. package/.output/public/_nuxt/builds/meta/70224ee0-4d1f-45d2-b380-2ecb18064bf1.json +0 -1
  358. package/.output/public/_nuxt/fXUwH_3d.js +0 -1
  359. package/.output/public/_nuxt/sVV8xB9f.js +0 -1
  360. package/.output/public/_nuxt/xa5UHCot.js +0 -1
  361. package/.output/server/chunks/build/Alert-He-UxEt6.mjs.map +0 -1
  362. package/.output/server/chunks/build/Breadcrumb-DEP2dVCZ.mjs.map +0 -1
  363. package/.output/server/chunks/build/BreadcrumbNav-y6nMDYcR.mjs.map +0 -1
  364. package/.output/server/chunks/build/BrowserBadge-DIASU8Gf.mjs.map +0 -1
  365. package/.output/server/chunks/build/ChartCard-ZTsCvItQ.mjs.map +0 -1
  366. package/.output/server/chunks/build/ChartMarkerTooltip-u_1DUHh-.mjs.map +0 -1
  367. package/.output/server/chunks/build/Checkbox-BisdHf8n.mjs.map +0 -1
  368. package/.output/server/chunks/build/CodeBlock-B8BNtZAe.mjs.map +0 -1
  369. package/.output/server/chunks/build/DashboardNavbar-D7-3zBUU.mjs.map +0 -1
  370. package/.output/server/chunks/build/DashboardSidebarToggle-C3HdHvlE.mjs.map +0 -1
  371. package/.output/server/chunks/build/DataLocationCard-CC2-lHiP.mjs.map +0 -1
  372. package/.output/server/chunks/build/DesktopRunLocallyButton-iNzrDsEs.mjs.map +0 -1
  373. package/.output/server/chunks/build/DiagnosisPanel-BVb2LgHu.mjs.map +0 -1
  374. package/.output/server/chunks/build/DiagnosisResult-xVgZlfKK.mjs.map +0 -1
  375. package/.output/server/chunks/build/DurationValue-UX9uajQJ.mjs.map +0 -1
  376. package/.output/server/chunks/build/EmptyState-DC2q_7TD.mjs.map +0 -1
  377. package/.output/server/chunks/build/EntityLinks-Dzn73fbq.mjs.map +0 -1
  378. package/.output/server/chunks/build/EnvManagedBadge-C-agmABK.mjs.map +0 -1
  379. package/.output/server/chunks/build/ErrorState-CktYyeEZ.mjs.map +0 -1
  380. package/.output/server/chunks/build/FeatureUnavailable-DHFkwI7t.mjs.map +0 -1
  381. package/.output/server/chunks/build/FormField-GYHKiSI6.mjs.map +0 -1
  382. package/.output/server/chunks/build/GetStartedWizard-BpcGYsm2.mjs.map +0 -1
  383. package/.output/server/chunks/build/HelpHint-plioHKA0.mjs.map +0 -1
  384. package/.output/server/chunks/build/LoadingState-CwpfmI0W.mjs.map +0 -1
  385. package/.output/server/chunks/build/MarkerBadge-Biz5--h2.mjs.map +0 -1
  386. package/.output/server/chunks/build/MetaStripGroup-A0a72vt5.mjs.map +0 -1
  387. package/.output/server/chunks/build/Modal-hKLvVFNp.mjs.map +0 -1
  388. package/.output/server/chunks/build/NavbarActions-_YjrSUat.mjs.map +0 -1
  389. package/.output/server/chunks/build/NavigationMenu-RfBOyS32.mjs.map +0 -1
  390. package/.output/server/chunks/build/RovingFocusItem-BOSx1Z9Z.mjs.map +0 -1
  391. package/.output/server/chunks/build/RunReports-nuLb-Nm3.mjs.map +0 -1
  392. package/.output/server/chunks/build/RunStatusBadge-CvWmcFYM.mjs.map +0 -1
  393. package/.output/server/chunks/build/SectionCard-DHAFvJxm.mjs.map +0 -1
  394. package/.output/server/chunks/build/Select-CEyw7HGK.mjs.map +0 -1
  395. package/.output/server/chunks/build/Separator-lrN70ODV.mjs.map +0 -1
  396. package/.output/server/chunks/build/SettingsField-tRmytcEJ.mjs.map +0 -1
  397. package/.output/server/chunks/build/Slideover-D6cRIqch.mjs.map +0 -1
  398. package/.output/server/chunks/build/Switch-R2n82ncQ.mjs.map +0 -1
  399. package/.output/server/chunks/build/Table-qZdnm9t2.mjs.map +0 -1
  400. package/.output/server/chunks/build/Tabs-BDP7MWl4.mjs.map +0 -1
  401. package/.output/server/chunks/build/TestCaseHistoryChart-CKDXQ2GI.mjs.map +0 -1
  402. package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +0 -1
  403. package/.output/server/chunks/build/TestStatusBar-CvsmKJ4D.mjs.map +0 -1
  404. package/.output/server/chunks/build/Textarea-DpmpM-lN.mjs.map +0 -1
  405. package/.output/server/chunks/build/Tooltip-BI3WQErw.mjs.map +0 -1
  406. package/.output/server/chunks/build/VisuallyHiddenInput-D4E5aJCQ.mjs.map +0 -1
  407. package/.output/server/chunks/build/_id_-T965GKYC.mjs.map +0 -1
  408. package/.output/server/chunks/build/about-B3V_OEiu.mjs.map +0 -1
  409. package/.output/server/chunks/build/account-DpBdYE46.mjs.map +0 -1
  410. package/.output/server/chunks/build/default-CQa_bmAf.mjs.map +0 -1
  411. package/.output/server/chunks/build/edit-BdfF9er2.mjs.map +0 -1
  412. package/.output/server/chunks/build/fetch-tkz5_OA-.mjs.map +0 -1
  413. package/.output/server/chunks/build/forgot-password-swZRcvXE.mjs.map +0 -1
  414. package/.output/server/chunks/build/help-content-C876a9WD.mjs.map +0 -1
  415. package/.output/server/chunks/build/import-B27Sv7h5.mjs.map +0 -1
  416. package/.output/server/chunks/build/index-ByWTzqF6.mjs.map +0 -1
  417. package/.output/server/chunks/build/index-C7m32bRI.mjs.map +0 -1
  418. package/.output/server/chunks/build/index-ID913tUa.mjs.map +0 -1
  419. package/.output/server/chunks/build/isValueEqualOrExist-D4lZ8uRY.mjs.map +0 -1
  420. package/.output/server/chunks/build/login-hxCF06JT.mjs.map +0 -1
  421. package/.output/server/chunks/build/mcp-BVW1llyW.mjs.map +0 -1
  422. package/.output/server/chunks/build/notifications-Dn-evqXM.mjs.map +0 -1
  423. package/.output/server/chunks/build/performance-CV8qm94u.mjs.map +0 -1
  424. package/.output/server/chunks/build/pr-feedback-gKDz8LyA.mjs.map +0 -1
  425. package/.output/server/chunks/build/reset-password-DtEISa1I.mjs.map +0 -1
  426. package/.output/server/chunks/build/settings-BJDnuLpc.mjs.map +0 -1
  427. package/.output/server/chunks/build/settings-metadata-DnAK4Rzg.mjs.map +0 -1
  428. package/.output/server/chunks/build/storage-zN92cA9q.mjs.map +0 -1
  429. package/.output/server/chunks/build/tags-CJFnoyQc.mjs.map +0 -1
  430. package/.output/server/chunks/build/test-cases-0Q6rT73d.mjs.map +0 -1
  431. package/.output/server/chunks/build/test-functions-DVRJgiWo.mjs.map +0 -1
  432. package/.output/server/chunks/build/useDesktopDownload-Dyf0fR47.mjs.map +0 -1
  433. package/.output/server/chunks/build/useDesktopLocalRuns-k7Gw3Fv3.mjs.map +0 -1
  434. package/.output/server/chunks/build/useDesktopProjectLink-WwLte59P.mjs.map +0 -1
  435. package/.output/server/chunks/build/useFormControl-8skMOTIf.mjs.map +0 -1
  436. package/.output/server/chunks/build/useOpenInIde-D74FmDNg.mjs.map +0 -1
  437. package/.output/server/chunks/build/useSettingsNav-BLTHducV.mjs.map +0 -1
  438. package/.output/server/chunks/build/users-C9bjOBde.mjs.map +0 -1
@@ -1 +0,0 @@
1
- import{_ as be,a as Re}from"./Cu2Q4iPh.js";import{d as ee,o as a,c as u,f as p,g as i,i as n,j as o,p as te,q as j,t as c,l as Q,k as t,v as g,m as k,h as _,_ as ne,G as le,F as E,y as M,r as re,e as Te,ac as $e}from"./C5TrTuWv.js";import{_ as we}from"./DvEsAuE9.js";import{_ as Fe}from"./Cf4MFOuf.js";import{_ as je,a as Se}from"./opyDpgSw.js";import{_ as Ce}from"./DcR0Mmdl.js";import{_ as Ve}from"./BUnwEAjq.js";import{_ as Ne}from"./BBhrClA9.js";import{_ as ze}from"./CjBktNrC.js";import{_ as Pe}from"./xa5UHCot.js";import{_ as oe}from"./Cq33x7yV.js";import{_ as ie}from"./LwoTUb-r.js";import{_ as Ue}from"./Bg93Rnts.js";import{_ as Ee}from"./BFxvHlO9.js";import{_ as ue}from"./DMAiMrNr.js";import{f as Z,F as L,e as Oe}from"./DMtrFQqi.js";import{_ as De}from"./CDTeSrLO.js";import{_ as Ie}from"./C8Paf_V1.js";import{u as se}from"./T5UuMUxA.js";import{u as Ae}from"./Bme1UkOl.js";import{u as Be}from"./BCGljaM0.js";import"./DaNC-xl1.js";import"./DMsm-RGQ.js";import"./V9p3z39z.js";import"./CpcrljrH.js";import"./03FA4-rI.js";import"./DEvYVl9M.js";import"./D_y2VS8k.js";import"./B69RP95P.js";import"./BjaRappk.js";import"./B1LUinhp.js";import"./fXUwH_3d.js";const Le={class:"flex items-center gap-3 flex-wrap"},Me={class:"flex items-center gap-1.5"},He={key:0,class:"text-gray-500"},Ge={key:1},Ke={key:2},We={class:"flex items-center gap-1.5 cursor-pointer select-none text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 transition-colors"},Je=ee({__name:"HomeFilters",props:{modelValue:{},availableEnvironments:{}},emits:["update:modelValue"],setup(O,{emit:b}){const T=O,R=b,N=_({get:()=>T.modelValue.environments,set:S=>R("update:modelValue",{...T.modelValue,environments:S})}),$=_({get:()=>T.modelValue.fullRunsOnly,set:S=>R("update:modelValue",{...T.modelValue,fullRunsOnly:S})}),D=_(()=>T.modelValue.environments.length>0||!T.modelValue.fullRunsOnly);function z(){R("update:modelValue",{environments:[],fullRunsOnly:!0})}return(S,v)=>{const H=te,r=we,f=Fe,x=ne;return a(),u("div",Le,[O.availableEnvironments.length>0?(a(),p(r,{key:0,modelValue:t(N),"onUpdate:modelValue":v[0]||(v[0]=m=>Q(N)?N.value=m:null),items:O.availableEnvironments,multiple:"",placeholder:"All environments",size:"sm",class:"min-w-[160px]"},{default:i(({modelValue:m})=>[n("div",Me,[o(H,{name:"i-lucide-server",class:j(["size-3.5 shrink-0",m.length?"text-primary":"text-gray-400"])},null,8,["class"]),m.length?m.length===1?(a(),u("span",Ge,c(m[0]),1)):(a(),u("span",Ke,c(m.length)+" environments",1)):(a(),u("span",He,"All environments"))])]),_:1},8,["modelValue","items"])):g("",!0),n("label",We,[o(f,{modelValue:t($),"onUpdate:modelValue":v[1]||(v[1]=m=>Q($)?$.value=m:null),size:"sm"},null,8,["modelValue"]),v[2]||(v[2]=k(" Full runs only ",-1))]),t(D)?(a(),p(x,{key:1,variant:"ghost",size:"sm",color:"neutral",icon:"i-lucide-x",onClick:z},{default:i(()=>[...v[3]||(v[3]=[k(" Reset ",-1)])]),_:1})):g("",!0)])}}}),Ye=Object.assign(Je,{__name:"HomeFilters"}),qe={class:"hidden md:block overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0"},Xe={key:0,class:"flex flex-wrap gap-1 mt-0.5"},Qe={class:"w-40"},Ze={key:1,class:"text-gray-400 text-sm"},et={class:"text-xs text-gray-500 dark:text-gray-400"},tt={key:1,class:"text-gray-400 text-sm"},nt={key:0,class:"tabular-nums text-sm text-gray-600 dark:text-gray-400"},st={key:1,class:"text-gray-400"},at={class:"space-y-2 md:hidden"},lt={class:"flex items-start justify-between gap-2"},rt={key:0,class:"flex flex-wrap gap-1"},ot={class:"flex items-center justify-between gap-2 text-xs"},it={class:"text-gray-500 dark:text-gray-400 truncate"},ut={key:1,class:"text-gray-400"},ct={key:2,class:"shrink-0 tabular-nums text-gray-500 dark:text-gray-400"},dt=ee({__name:"ProjectTrendTable",props:{projects:{},limit:{default:10}},setup(O){const b=O,T={failing:0,flaky:1,passing:2,unknown:3},R=re(!1),N=_(()=>b.projects.length>b.limit),$=_(()=>{const r=[...b.projects].sort((f,x)=>{const m=T[f.tendency]-T[x.tendency];if(m!==0)return m;const C=f.latestFullRun?new Date(f.latestFullRun.startTime).getTime():0;return(x.latestFullRun?new Date(x.latestFullRun.startTime).getTime():0)-C});return R.value?r:r.slice(0,b.limit)});function D(r){return r>=90?"text-green-600 dark:text-green-400":r>=50?"text-yellow-600 dark:text-yellow-400":"text-red-600 dark:text-red-400"}function z(r){switch(r){case"failing":return"text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800";case"flaky":return"text-amber-700 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 border-amber-200 dark:border-amber-800";case"passing":return"text-green-700 dark:text-green-400 bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800";default:return"text-gray-500 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 border-gray-200 dark:border-gray-700"}}function S(r){return r==="unknown"?"Unknown":r.charAt(0).toUpperCase()+r.slice(1)}function v(r){switch(r){case"failing":return"i-lucide-trending-down";case"flaky":return"i-lucide-shuffle";case"passing":return"i-lucide-trending-up";default:return"i-lucide-minus"}}const H=[{accessorKey:"name",header:"Project"},{id:"recentRuns",header:"Last 20 runs"},{accessorKey:"tendency",header:"Tendency"},{id:"passRate",header:"Pass rate"},{id:"latestRun",header:"Latest run"},{id:"tests",header:"Tests"}];return(r,f)=>{const x=ne,m=le,C=ze,h=Pe,I=te,V=oe,A=ie,Y=Ue,q=Ee,G=ue;return a(),p(G,{icon:"i-lucide-layout-dashboard",title:"Project health",help:"home.project-health"},{actions:i(()=>[t(N)&&!t(R)?(a(),p(x,{key:0,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-down",onClick:f[0]||(f[0]=e=>R.value=!0)},{default:i(()=>[k(" Show all "+c(b.projects.length),1)]),_:1})):t(R)?(a(),p(x,{key:1,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-up",onClick:f[1]||(f[1]=e=>R.value=!1)},{default:i(()=>[...f[2]||(f[2]=[k(" Show less ",-1)])]),_:1})):g("",!0),o(x,{to:"/projects",variant:"outline",size:"sm"},{default:i(()=>[...f[3]||(f[3]=[k("View all",-1)])]),_:1})]),default:i(()=>[n("div",qe,[o(Y,{data:t($),columns:H,ui:{base:"min-w-[700px]",td:"py-3",th:"py-3 text-xs uppercase tracking-wide"}},{"name-cell":i(({row:e})=>[o(m,{to:`/projects/${e.original.id}`,class:"font-medium text-primary hover:underline truncate block max-w-[200px]"},{default:i(()=>[k(c(e.original.label||e.original.name),1)]),_:2},1032,["to"]),e.original.tags.length>0?(a(),u("div",Xe,[(a(!0),u(E,null,M(e.original.tags,w=>(a(),p(C,{key:w.id,text:w.text,color:w.color},null,8,["text","color"]))),128))])):g("",!0)]),"recentRuns-cell":i(({row:e})=>[n("div",Qe,[o(h,{runs:e.original.recentRuns,height:28},null,8,["runs"])])]),"tendency-cell":i(({row:e})=>[n("span",{class:j(["inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-medium border whitespace-nowrap",z(e.original.tendency)])},[o(I,{name:v(e.original.tendency),class:"size-3 shrink-0"},null,8,["name"]),k(" "+c(S(e.original.tendency)),1)],2)]),"passRate-cell":i(({row:e})=>[e.original.latestFullRun?(a(),u("span",{key:0,class:j(["font-semibold tabular-nums text-sm",D(("passRate"in r?r.passRate:t(L))(e.original.latestFullRun))])},c(("passRate"in r?r.passRate:t(L))(e.original.latestFullRun))+"% ",3)):(a(),u("span",Ze,"—"))]),"latestRun-cell":i(({row:e})=>[e.original.latestFullRun?(a(),p(m,{key:0,to:`/test-runs/${e.original.latestFullRun.id}`,class:"flex items-center gap-2 min-w-[140px] hover:opacity-80 transition-opacity"},{default:i(()=>[o(V,{status:e.original.latestFullRun.status},null,8,["status"]),n("div",et,[n("div",null,c(("formatRelativeTime"in r?r.formatRelativeTime:t(Z))(e.original.latestFullRun.startTime)),1),e.original.latestFullRun.duration?(a(),p(A,{key:0,ms:e.original.latestFullRun.duration},null,8,["ms"])):g("",!0)])]),_:2},1032,["to"])):(a(),u("span",tt,"No full runs"))]),"tests-cell":i(({row:e})=>[e.original.latestFullRun?(a(),u("span",nt,c(e.original.latestFullRun.passedTests)+"/"+c(e.original.latestFullRun.totalTests),1)):(a(),u("span",st,"—"))]),_:1},8,["data"])]),n("div",at,[(a(!0),u(E,null,M(t($),e=>(a(),u("div",{key:e.id,class:"rounded-lg border border-default p-3 space-y-2"},[n("div",lt,[o(m,{to:`/projects/${e.id}`,class:"font-medium text-primary hover:underline truncate"},{default:i(()=>[k(c(e.label||e.name),1)]),_:2},1032,["to"]),n("span",{class:j(["inline-flex shrink-0 items-center gap-1 rounded border px-1.5 py-0.5 text-xs font-medium whitespace-nowrap",z(e.tendency)])},[o(I,{name:v(e.tendency),class:"size-3 shrink-0"},null,8,["name"]),k(" "+c(S(e.tendency)),1)],2)]),e.tags.length>0?(a(),u("div",rt,[(a(!0),u(E,null,M(e.tags,w=>(a(),p(C,{key:w.id,text:w.text,color:w.color},null,8,["text","color"]))),128))])):g("",!0),o(h,{runs:e.recentRuns,height:24},null,8,["runs"]),n("div",ot,[e.latestFullRun?(a(),p(m,{key:0,to:`/test-runs/${e.latestFullRun.id}`,class:"flex items-center gap-1.5 min-w-0 hover:opacity-80"},{default:i(()=>[o(V,{status:e.latestFullRun.status},null,8,["status"]),n("span",it,c(("formatRelativeTime"in r?r.formatRelativeTime:t(Z))(e.latestFullRun.startTime)),1)]),_:2},1032,["to"])):(a(),u("span",ut,"No full runs")),e.latestFullRun?(a(),u("span",ct,[n("span",{class:j(["font-semibold",D(("passRate"in r?r.passRate:t(L))(e.latestFullRun))])},c(("passRate"in r?r.passRate:t(L))(e.latestFullRun))+"% ",3),k(" · "+c(e.latestFullRun.passedTests)+"/"+c(e.latestFullRun.totalTests),1)])):g("",!0)])]))),128))]),t($).length===0?(a(),p(q,{key:0,text:"No projects yet",padded:!1,class:"py-8"})):g("",!0)]),_:1})}}}),mt=Object.assign(dt,{__name:"ProjectTrendTable"}),pt={key:0,class:"p-6"},gt={key:1,class:"p-6 space-y-8","aria-busy":"true"},_t={class:"grid grid-cols-1 xl:grid-cols-3 gap-6 items-start"},ft={class:"xl:col-span-2 space-y-3"},yt={class:"space-y-3"},vt={key:2,class:"p-6 space-y-8"},ht={key:1,class:"flex flex-wrap items-center gap-x-8 gap-y-3 text-sm border border-gray-200 dark:border-gray-700 rounded-xl px-6 py-4 bg-gray-50 dark:bg-gray-900/50"},xt={class:"flex items-center gap-1.5"},kt={class:"font-semibold tabular-nums"},bt={class:"flex items-center gap-1.5"},Rt={class:"flex items-center gap-1.5"},Tt={key:0,class:"flex items-center gap-1.5"},$t={class:"font-semibold tabular-nums"},wt={class:"flex items-center gap-1.5"},Ft={class:"font-semibold tabular-nums"},jt={key:2,class:"grid grid-cols-1 xl:grid-cols-3 gap-6 items-start"},St={class:"xl:col-span-2"},Ct={class:"divide-y divide-gray-100 dark:divide-gray-800 text-sm"},Vt={class:"flex-1 min-w-0"},Nt={class:"font-medium truncate"},zt={class:"text-xs text-gray-400"},Pt={class:"text-right tabular-nums shrink-0"},Ut={key:3,class:"text-center py-12 text-gray-500 dark:text-gray-400"},Et={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4"},Ot={class:"flex flex-col gap-3 h-full"},Dt={class:"p-2 bg-primary/10 rounded-lg w-fit"},It={class:"text-xs font-semibold uppercase tracking-wide text-primary mb-1"},At={class:"font-semibold mb-1"},Bt={class:"text-sm text-gray-600 dark:text-gray-400"},ae=6,kn=ee({__name:"index",setup(O){Te({title:"Piwi Dashboard"});const{data:b,error:T,refresh:R,status:N}=se("/api/projects/overview",{lazy:!0,default:()=>[]},"$LKtEy4Bi96"),{data:$,error:D,refresh:z}=se("/api/test-runs/recent",{lazy:!0},"$tXxkP3waVF");Ae(()=>Promise.all([R(),z()]));const S=_(()=>N.value==="pending"&&!b.value?.length),v=_(()=>T.value||D.value);function H(){R(),z()}const r=Be("piwi-home-filters",{default:()=>({environments:[],fullRunsOnly:!0}),encode:l=>JSON.stringify(l),decode:l=>{try{return l?JSON.parse(l):{environments:[],fullRunsOnly:!0}}catch{return{environments:[],fullRunsOnly:!0}}}}),f=_(()=>{const l=new Set;for(const s of $.value??[])s.environment&&l.add(s.environment);for(const s of b.value??[])for(const y of s.recentRuns)y.environment&&l.add(y.environment);return[...l].sort()});function x(l){return r.value.environments.length===0?!0:!!l&&r.value.environments.includes(l)}const m=_(()=>{let l=$.value??[];return r.value.fullRunsOnly&&(l=l.filter(s=>s.isFullRun)),r.value.environments.length>0&&(l=l.filter(s=>x(s.environment))),l}),C=_(()=>{let l=b.value??[];return r.value.environments.length>0&&(l=l.map(s=>({...s,recentRuns:s.recentRuns.filter(y=>x(y.environment))})).filter(s=>s.recentRuns.length>0)),l}),h=_(()=>{const l=C.value,s=l.length,y=l.filter(F=>F.tendency==="failing").length,B=l.filter(F=>F.tendency==="flaky").length;let P=0,K=0;for(const F of l)F.latestFullRun&&(P+=F.latestFullRun.passedTests,K+=F.latestFullRun.totalTests);const W=K>0?Math.round(P/K*100):null,X=Date.now()-1440*60*1e3,U=m.value.filter(F=>new Date(F.startTime).getTime()>X).length;return{totalProjects:s,failingNow:y,flakyNow:B,avgPassRate:W,runs24h:U}}),I=new Set(["running","initialising","finalizing"]),V=re(!1),A=_(()=>[...m.value].sort((s,y)=>{const B=I.has(s.status)?0:1,P=I.has(y.status)?0:1;return B!==P?B-P:new Date(y.startTime).getTime()-new Date(s.startTime).getTime()})),Y=_(()=>V.value?A.value:A.value.slice(0,ae)),q=_(()=>A.value.length>ae),G=_(()=>m.value.length>0),e=_(()=>(b.value?.length??0)>0),w=_(()=>r.value.fullRunsOnly?($.value??[]).filter(y=>x(y.environment)).filter(y=>!y.isFullRun).length:0);function ce(){r.value={...r.value,fullRunsOnly:!1}}function de(l){const s=L(l);return s>=90?"text-green-600 dark:text-green-400":s>=50?"text-yellow-600 dark:text-yellow-400":"text-red-600 dark:text-red-400"}function me(l){return I.has(l)?"border-l-blue-400":l==="passed"?"border-l-green-500":l==="failed"||l==="timedout"||l==="interrupted"?"border-l-red-500":"border-l-gray-300 dark:border-l-gray-600"}const pe=[{icon:"i-lucide-radio",tagline:"Watch your CI run live",title:"Live streaming",description:"Follow test execution in real time. Investigate failures while the suite is still running — no waiting for the CI job to finish."},{icon:"i-lucide-layers",tagline:"10 failures, 2 root causes",title:"Failure clustering",description:"Tests sharing the same error are grouped automatically. Triage one cluster instead of scrolling through unrelated failures."},{icon:"i-lucide-brain-circuit",tagline:"Diagnosis grounded in your code",title:"AI diagnosis",description:"AI analyzes failure clusters using your actual SCM diff, trace files, and run history — not a generic prompt."},{icon:"i-lucide-archive",tagline:"Every run, forever",title:"Permanent test intelligence",description:"Test results, traces, and HTML reports stored permanently. Compare runs, track flakiness trends, and never lose a CI result again."}];return(l,s)=>{const y=be,B=Re,P=Ye,K=Se,W=ne,X=Ce,U=Ve,F=Ne,J=te,ge=mt,_e=oe,fe=ie,ye=le,ve=ue,he=De,xe=Ie,ke=je;return a(),p(ke,{id:"home"},{header:i(()=>[o(K,null,$e({leading:i(()=>[o(y),o(B,{items:[{label:"Home",icon:"i-lucide-house",to:"/"}]})]),_:2},[t(e)?{name:"trailing",fn:i(()=>[o(P,{modelValue:t(r),"onUpdate:modelValue":s[0]||(s[0]=d=>Q(r)?r.value=d:null),"available-environments":t(f)},null,8,["modelValue","available-environments"])]),key:"0"}:void 0]),1024)]),body:i(()=>[t(v)?(a(),u("div",pt,[o(X,{text:`Couldn't load the dashboard: ${t(Oe)(t(v))}`},{action:i(()=>[o(W,{size:"sm",color:"neutral",variant:"outline",icon:"i-lucide-refresh-cw",onClick:H},{default:i(()=>[...s[3]||(s[3]=[k(" Retry ",-1)])]),_:1})]),_:1},8,["text"])])):t(S)?(a(),u("div",gt,[s[4]||(s[4]=n("span",{class:"sr-only",role:"status"},"Loading dashboard…",-1)),o(U,{class:"h-14 w-full rounded-xl"}),n("div",_t,[n("div",ft,[o(U,{class:"h-7 w-40"}),o(U,{class:"h-72 w-full rounded-lg"})]),n("div",yt,[o(U,{class:"h-7 w-32"}),(a(),u(E,null,M(5,d=>o(U,{key:d,class:"h-12 w-full rounded-lg"})),64))])])])):(a(),u("div",vt,[t(w)>0?(a(),p(F,{key:0,icon:"i-lucide-info",color:"primary",variant:"subtle",title:t(w)===1?"1 partial run is hidden":`${t(w)} partial runs are hidden`,description:"The “Full runs only” filter hides runs that only cover part of the suite (e.g. a single spec or --grep).",actions:[{label:"Show them",color:"primary",variant:"solid",size:"xs",onClick:ce}]},null,8,["title","actions"])):g("",!0),t(e)?(a(),u("div",ht,[n("div",xt,[o(J,{name:"i-lucide-folder",class:"size-4 text-primary shrink-0"}),n("span",kt,c(t(h).totalProjects),1),s[5]||(s[5]=n("span",{class:"text-gray-500"},"projects",-1))]),n("div",bt,[n("div",{class:j(["w-2 h-2 rounded-full shrink-0",t(h).failingNow>0?"bg-red-500":"bg-green-500"])},null,2),n("span",{class:j(["font-semibold tabular-nums",t(h).failingNow>0?"text-red-600 dark:text-red-400":""])},c(t(h).failingNow),3),s[6]||(s[6]=n("span",{class:"text-gray-500"},"failing now",-1))]),n("div",Rt,[n("div",{class:j(["w-2 h-2 rounded-full shrink-0",t(h).flakyNow>0?"bg-amber-400":"bg-gray-300 dark:bg-gray-600"])},null,2),n("span",{class:j(["font-semibold tabular-nums",t(h).flakyNow>0?"text-amber-600 dark:text-amber-400":""])},c(t(h).flakyNow),3),s[7]||(s[7]=n("span",{class:"text-gray-500"},"flaky",-1))]),t(h).avgPassRate!==null?(a(),u("div",Tt,[o(J,{name:"i-lucide-check-circle",class:"size-4 text-green-500 shrink-0"}),n("span",$t,c(t(h).avgPassRate)+"%",1),s[8]||(s[8]=n("span",{class:"text-gray-500"},"avg pass rate",-1))])):g("",!0),n("div",wt,[o(J,{name:"i-lucide-play-circle",class:"size-4 text-primary shrink-0"}),n("span",Ft,c(t(h).runs24h),1),s[9]||(s[9]=n("span",{class:"text-gray-500"},"runs today",-1))])])):g("",!0),t(e)||t(G)?(a(),u("div",jt,[n("div",St,[t(e)?(a(),p(ge,{key:0,projects:t(C)},null,8,["projects"])):g("",!0)]),t(G)?(a(),p(ve,{key:0,icon:"i-lucide-activity",title:"Recent activity"},{actions:i(()=>[t(q)&&!t(V)?(a(),p(W,{key:0,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-down",onClick:s[1]||(s[1]=d=>V.value=!0)},{default:i(()=>[k(" Show all "+c(t(A).length),1)]),_:1})):t(V)?(a(),p(W,{key:1,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-up",onClick:s[2]||(s[2]=d=>V.value=!1)},{default:i(()=>[...s[10]||(s[10]=[k(" Show less ",-1)])]),_:1})):g("",!0)]),default:i(()=>[n("div",Ct,[(a(!0),u(E,null,M(t(Y),d=>(a(),p(ye,{key:d.id,to:`/test-runs/${d.id}`,class:j(["flex items-center gap-3 py-3 pl-3 border-l-2 hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded-r transition-colors",me(d.status)])},{default:i(()=>[o(_e,{status:d.status},null,8,["status"]),n("div",Vt,[n("div",Nt,c(d.projectLabel||d.projectName),1),n("div",zt,"Run #"+c(d.id)+" · "+c(("formatRelativeTime"in l?l.formatRelativeTime:t(Z))(d.startTime)),1)]),n("div",Pt,[n("div",{class:j(de(d))},c(("passRate"in l?l.passRate:t(L))(d))+"%",3),d.duration?(a(),p(fe,{key:0,ms:d.duration,class:"block text-xs text-gray-400"},null,8,["ms"])):g("",!0)])]),_:2},1032,["to","class"]))),128))])]),_:1})):g("",!0)])):g("",!0),t(e)&&!t(G)&&t(C).length===0?(a(),u("div",Ut,[o(J,{name:"i-lucide-filter-x",class:"size-8 mx-auto mb-2 opacity-40"}),s[11]||(s[11]=n("p",null,"No runs match the current filters.",-1))])):g("",!0),t(e)?g("",!0):(a(),u(E,{key:4},[o(he),n("div",Et,[(a(),u(E,null,M(pe,d=>o(xe,{key:d.title,class:"flex flex-col"},{default:i(()=>[n("div",Ot,[n("div",Dt,[o(J,{name:d.icon,class:"size-5 text-primary"},null,8,["name"])]),n("div",null,[n("p",It,c(d.tagline),1),n("h3",At,c(d.title),1),n("p",Bt,c(d.description),1)])])]),_:2},1024)),64))])],64))]))]),_:1})}}});export{kn as default};
@@ -1 +0,0 @@
1
- import{d as P,Y as L,Z as M,U as j,o as r,c as v,j as C,g as f,V as q,k as e,W as z,S as O,C as D,X as I,f as u,v as h,F as N,h as w,$ as H,a2 as W,a3 as X,a5 as Y,a6 as Z,a7 as G,aN as J,aU as Q,au as ee,i as ae,q as o,p as S,m as R,t as A,a8 as te}from"./C5TrTuWv.js";import{L as se}from"./D_y2VS8k.js";import{u as re}from"./DaNC-xl1.js";import{u as le}from"./03FA4-rI.js";import{V as ie}from"./DMsm-RGQ.js";const[oe,ne]=H("SwitchRoot");var de=P({inheritAttrs:!1,__name:"SwitchRoot",props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:"on"},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(g,{emit:c}){const t=g,d=c,{disabled:n}=L(t),a=M(t,"modelValue",d,{defaultValue:t.defaultValue??t.falseValue,passive:t.modelValue===void 0}),i=w(()=>a.value===t.trueValue);function m(){n.value||(a.value=i.value?t.falseValue:t.trueValue)}const{forwardRef:V,currentElement:b}=j(),x=re(b),k=le(),_=w(()=>t.id&&b.value?document.querySelector(`[for="${t.id}"]`)?.innerText:void 0);return ne({checked:i,toggleCheck:m,disabled:n}),(s,B)=>(r(),v(N,null,[C(e(I),z({id:s.id,ref:e(V),role:"switch",type:s.as==="button"?"button":void 0,value:s.value,"aria-label":s.$attrs["aria-label"]||_.value,"aria-checked":i.value,"aria-required":s.required,"data-state":i.value?"checked":"unchecked","data-disabled":e(n)?"":void 0,"as-child":s.asChild,as:s.as,disabled:e(n)},{...e(k),...s.$attrs},{onClick:m,onKeydown:O(D(m,["prevent"]),["enter"])}),{default:f(()=>[q(s.$slots,"default",{modelValue:e(a),checked:i.value})]),_:3},16,["id","type","value","aria-label","aria-checked","aria-required","data-state","data-disabled","as-child","as","disabled","onKeydown"]),e(x)&&s.name?(r(),u(e(ie),z({key:0,type:"checkbox",name:s.name,disabled:e(n),required:s.required,value:s.value,checked:i.value},e(k)),null,16,["name","disabled","required","value","checked"])):h("v-if",!0)],64))}}),ue=de,ce=P({__name:"SwitchThumb",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(g){const c=oe();return j(),(t,d)=>(r(),u(e(I),{"data-state":e(c).checked.value?"checked":"unchecked","data-disabled":e(c).disabled.value?"":void 0,"as-child":t.asChild,as:t.as},{default:f(()=>[q(t.$slots,"default")]),_:3},8,["data-state","data-disabled","as-child","as"]))}}),pe=ce;const he={slots:{root:"relative flex items-start",base:["inline-flex items-center shrink-0 rounded-full border-2 border-transparent focus-visible:outline-3 data-[state=unchecked]:bg-accented","transition-[background] duration-200"],container:"flex items-center",thumb:"group pointer-events-none rounded-full bg-default shadow-lg ring-0 transition-transform duration-200 data-[state=unchecked]:translate-x-0 data-[state=unchecked]:rtl:-translate-x-0 flex items-center justify-center",icon:["absolute shrink-0 group-data-[state=unchecked]:text-dimmed opacity-0 size-10/12","transition-[color,opacity] duration-200"],wrapper:"ms-2",label:"block font-medium text-default",description:"text-muted"},variants:{color:{primary:{base:"data-[state=checked]:bg-primary outline-primary/25",icon:"group-data-[state=checked]:text-primary"},secondary:{base:"data-[state=checked]:bg-secondary outline-secondary/25",icon:"group-data-[state=checked]:text-secondary"},success:{base:"data-[state=checked]:bg-success outline-success/25",icon:"group-data-[state=checked]:text-success"},info:{base:"data-[state=checked]:bg-info outline-info/25",icon:"group-data-[state=checked]:text-info"},warning:{base:"data-[state=checked]:bg-warning outline-warning/25",icon:"group-data-[state=checked]:text-warning"},error:{base:"data-[state=checked]:bg-error outline-error/25",icon:"group-data-[state=checked]:text-error"},neutral:{base:"data-[state=checked]:bg-inverted outline-inverted/25",icon:"group-data-[state=checked]:text-highlighted"}},size:{xs:{base:"w-7",container:"h-4",thumb:"size-3 data-[state=checked]:translate-x-3 data-[state=checked]:rtl:-translate-x-3",wrapper:"text-xs"},sm:{base:"w-8",container:"h-4",thumb:"size-3.5 data-[state=checked]:translate-x-3.5 data-[state=checked]:rtl:-translate-x-3.5",wrapper:"text-xs"},md:{base:"w-9",container:"h-5",thumb:"size-4 data-[state=checked]:translate-x-4 data-[state=checked]:rtl:-translate-x-4",wrapper:"text-sm"},lg:{base:"w-10",container:"h-5",thumb:"size-4.5 data-[state=checked]:translate-x-4.5 data-[state=checked]:rtl:-translate-x-4.5",wrapper:"text-sm"},xl:{base:"w-11",container:"h-6",thumb:"size-5 data-[state=checked]:translate-x-5 data-[state=checked]:rtl:-translate-x-5",wrapper:"text-base"}},checked:{true:{icon:"group-data-[state=checked]:opacity-100"}},unchecked:{true:{icon:"group-data-[state=unchecked]:opacity-100"}},loading:{true:{icon:"animate-spin"}},highlight:{true:""},required:{true:{label:"after:content-['*'] after:ms-0.5 after:text-error"}},disabled:{true:{root:"opacity-75",base:"cursor-not-allowed",label:"cursor-not-allowed",description:"cursor-not-allowed"}}},compoundVariants:[{color:"primary",highlight:!0,class:{base:"ring ring-primary"}},{color:"secondary",highlight:!0,class:{base:"ring ring-secondary"}},{color:"success",highlight:!0,class:{base:"ring ring-success"}},{color:"info",highlight:!0,class:{base:"ring ring-info"}},{color:"warning",highlight:!0,class:{base:"ring ring-warning"}},{color:"error",highlight:!0,class:{base:"ring ring-error"}},{color:"neutral",highlight:!0,class:{base:"ring ring-inverted"}}],defaultVariants:{color:"primary",size:"md"}},ye=Object.assign({inheritAttrs:!1},{__name:"USwitch",props:{as:{type:null,required:!1},color:{type:null,required:!1},size:{type:null,required:!1},highlight:{type:Boolean,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},checkedIcon:{type:null,required:!1},uncheckedIcon:{type:null,required:!1},label:{type:String,required:!1},description:{type:String,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},value:{type:String,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},trueValue:{type:null,required:!1},falseValue:{type:null,required:!1}},emits:["change","update:modelValue"],setup(g,{emit:c}){const t=g,d=W(),n=c,a=X("switch",t),i=Y(),m=Z(G(a,"required","value","defaultValue","modelValue","trueValue","falseValue"),n),{id:V,emitFormChange:b,emitFormInput:x,size:k,color:_,highlight:s,name:B,disabled:F,ariaAttrs:T}=J(t),$=V.value??Q(),U=ee(),E=w(()=>{const{"data-state":p,...y}=U;return y}),l=w(()=>te({extend:he,...i.ui?.switch||{}})({size:k.value??a.size,color:_.value??a.color,highlight:s.value??a.highlight,required:a.required,loading:a.loading,disabled:F.value||a.loading}));function K(p){const y=new Event("change",{target:{value:p}});n("change",y),b(),x()}return(p,y)=>(r(),u(e(I),{as:e(a).as,"data-slot":p.$attrs["data-slot"]??"root",class:o(l.value.root({class:[e(a).ui?.root,e(a).class]}))},{default:f(()=>[ae("div",{"data-slot":"container",class:o(l.value.container({class:e(a).ui?.container}))},[C(e(ue),z({id:e($)},{...e(m),...E.value,...e(T)},{name:e(B),disabled:e(F)||e(a).loading,"data-slot":"base",class:l.value.base({class:e(a).ui?.base}),"onUpdate:modelValue":K}),{default:f(()=>[C(e(pe),{"data-slot":"thumb",class:o(l.value.thumb({class:e(a).ui?.thumb}))},{default:f(()=>[e(a).loading?(r(),u(S,{key:0,name:e(a).loadingIcon||e(i).ui.icons.loading,"data-slot":"icon",class:o(l.value.icon({class:e(a).ui?.icon,checked:!0,unchecked:!0}))},null,8,["name","class"])):(r(),v(N,{key:1},[e(a).checkedIcon?(r(),u(S,{key:0,name:e(a).checkedIcon,"data-slot":"icon",class:o(l.value.icon({class:e(a).ui?.icon,checked:!0}))},null,8,["name","class"])):h("",!0),e(a).uncheckedIcon?(r(),u(S,{key:1,name:e(a).uncheckedIcon,"data-slot":"icon",class:o(l.value.icon({class:e(a).ui?.icon,unchecked:!0}))},null,8,["name","class"])):h("",!0)],64))]),_:1},8,["class"])]),_:1},16,["id","name","disabled","class"])],2),e(a).label||d.label||e(a).description||d.description?(r(),v("div",{key:0,"data-slot":"wrapper",class:o(l.value.wrapper({class:e(a).ui?.wrapper}))},[e(a).label||d.label?(r(),u(e(se),{key:0,for:e($),"data-slot":"label",class:o(l.value.label({class:e(a).ui?.label}))},{default:f(()=>[q(p.$slots,"label",{label:e(a).label},()=>[R(A(e(a).label),1)])]),_:3},8,["for","class"])):h("",!0),e(a).description||d.description?(r(),v("p",{key:1,"data-slot":"description",class:o(l.value.description({class:e(a).ui?.description}))},[q(p.$slots,"description",{description:e(a).description},()=>[R(A(e(a).description),1)])],2)):h("",!0)],2)):h("",!0)]),_:3},8,["as","data-slot","class"]))}});export{ye as _};
@@ -1 +0,0 @@
1
- import{_ as ut,a as dt}from"./Cu2Q4iPh.js";import{_ as mt,a as pt}from"./B69RP95P.js";import{_ as _t}from"./Drw8yQg6.js";import{_ as ft,a as gt}from"./opyDpgSw.js";import{d as yt,e as xt,b as bt,c as l,j as o,g as s,F as R,D as vt,o as a,i as c,E as ht,m as d,y as N,f as m,_ as kt,v as _,t as y,k as i,G as jt,h as P,r as x,M as Rt}from"./C5TrTuWv.js";import{_ as $t}from"./CjBktNrC.js";import{_ as Tt}from"./LwoTUb-r.js";import{_ as Ct}from"./Cq33x7yV.js";import{_ as Nt}from"./VACXezo0.js";import{_ as Pt}from"./DL8knjzi.js";import{_ as Dt}from"./Bg93Rnts.js";import{_ as Ut}from"./DbmGeOus.js";import{_ as Ft}from"./BUnwEAjq.js";import{_ as St}from"./BFxvHlO9.js";import{_ as Bt}from"./sVV8xB9f.js";import{_ as Lt}from"./B_r0xHVS.js";import{_ as Kt}from"./6Z_ZwH8I.js";import{p as Vt,i as b}from"./DMtrFQqi.js";import{u as w}from"./T5UuMUxA.js";import{o as wt,s as D}from"./DGnQ69wW.js";import"./BCGljaM0.js";import"./BjaRappk.js";import"./DuOH5jcQ.js";import"./D-c8ZSws.js";import"./V9p3z39z.js";import"./DH5H1DJh.js";import"./D_y2VS8k.js";import"./BfA6lfg4.js";import"./DvEsAuE9.js";import"./DaNC-xl1.js";import"./DMsm-RGQ.js";const zt={class:"flex flex-wrap items-center gap-3 mb-4"},Et={key:0,class:"flex flex-wrap items-center gap-2"},Ht={class:"text-sm text-muted shrink-0 inline-flex items-center gap-1"},It=["onClick"],Mt={class:"flex flex-col gap-1"},Ot={class:"flex items-center gap-2"},At={key:0,class:"flex flex-wrap gap-1"},qt={key:0,class:"text-xs text-gray-600 italic"},Gt={key:1},Qt={key:0,class:"text-xs text-gray-600"},Zt={key:1,class:"text-xs text-gray-600 italic"},Jt={key:0,class:"flex items-center gap-1 flex-wrap"},Wt={key:0,class:"text-xs font-medium bg-gray-100 dark:bg-gray-800 px-1.5 py-0.5 rounded"},Xt={key:1,class:"text-xs text-gray-500"},Yt={key:1,class:"text-xs text-gray-600 italic"},te={key:1,class:"text-xs text-gray-600 italic"},ee={key:1,class:"text-xs text-gray-600 italic"},ae={class:"flex justify-end gap-2"},se={key:1,class:"space-y-2","aria-busy":"true"},oe={key:2,class:"text-center py-12 text-gray-500"},ne={class:"text-xs text-gray-400 max-w-sm"},le={class:"flex w-full justify-end gap-2"},ze=yt({__name:"index",setup(re){xt({title:"Projects — Piwi Dashboard"});const{data:v,refresh:U,status:z}=w("/api/projects",{key:"projects",lazy:!0,default:()=>[]},"$6DHNZL9pIE"),{data:E,refresh:H}=w("/api/tags",{lazy:!0},"$FLI1EBmEg_"),F=bt(),$=P(()=>E.value?.tags||[]),I=P(()=>z.value==="pending"&&!v.value?.length),h=x(""),u=x([]),S=P(()=>{let n=v.value||[];if(h.value.trim()){const e=h.value.trim().toLowerCase();n=n.filter(p=>(p.label||p.name).toLowerCase().includes(e)||p.name.toLowerCase().includes(e))}return u.value.length>0&&(n=n.filter(e=>u.value.some(p=>(e.tags||[]).some(C=>C.id===p)))),n});function M(n){const e=u.value.indexOf(n);e===-1?u.value.push(n):u.value.splice(e,1)}function O(n){return u.value.includes(n)}const f=x(!1),A=wt({name:D().min(1,"Project name is required").max(100),label:D().optional(),description:D().optional()}),r=Rt({name:"",label:"",description:""}),k=x([]),T=x(!1);async function q(){if(r.name?.trim())try{T.value=!0,await $fetch("/api/projects",{method:"POST",body:{name:r.name.trim(),label:r.label?.trim()||null,description:r.description?.trim()||null,tagIds:k.value.map(n=>n.id)}}),F.add({title:"Project created",description:`Project "${r.name}" has been created`,color:"success"}),f.value=!1,r.name="",r.label="",r.description="",k.value=[],await U()}catch(n){const e=n&&typeof n=="object"&&"data"in n?n.data?.message:void 0;F.add({title:"Failed to create project",description:e||"An error occurred",color:"error"})}finally{T.value=!1}}const G=[{header:"Project",columns:[{accessorKey:"name",header:b("Name")},{accessorKey:"totalRuns",header:b("Runs")}]},{accessorKey:"latestRunData",header:"Latest run",columns:[{accessorKey:"latestRun",header:b("Date")},{accessorKey:"branch",header:"Branch"},{accessorKey:"duration",header:b("Duration")},{accessorKey:"status",header:b("Status")},{accessorKey:"testRatio",header:"Test status"},{accessorKey:"report",header:"Reports"}]},{accessorKey:"actions",header:"Project actions"}];return(n,e)=>{const p=ut,C=dt,B=mt,Q=_t,Z=gt,J=ht,L=$t,g=kt,K=jt,W=Tt,X=Ct,Y=Nt,tt=Pt,et=Dt,at=Ut,V=Ft,st=pt,ot=St,nt=ft,lt=Bt,rt=Lt,it=Kt,ct=vt;return a(),l(R,null,[o(nt,{id:"projects"},{header:s(()=>[o(Z,null,{leading:s(()=>[o(p),o(C,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Projects"}]})]),right:s(()=>[o(Q,{actions:[{label:"New project",icon:"i-lucide-plus",onClick:()=>f.value=!0},{label:"Refresh",icon:"i-lucide-refresh-cw",variant:"outline",onClick:()=>i(U)()}]},{leading:s(()=>[o(B,{topic:"projects.table",size:"sm"})]),_:1},8,["actions"])]),_:1})]),body:s(()=>[c("div",zt,[o(J,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=t=>h.value=t),icon:"i-lucide-search",placeholder:"Search projects by name...",class:"min-w-48 flex-1",ui:{base:"w-full"}},null,8,["modelValue"]),$.value.length>0?(a(),l("div",Et,[c("span",Ht,[e[10]||(e[10]=d(" Filter by tag (any match): ",-1)),o(B,{topic:"projects.tag-filter"})]),(a(!0),l(R,null,N($.value,t=>(a(),l("button",{key:t.id,type:"button",class:"cursor-pointer focus:outline-none",onClick:j=>M(t.id)},[o(L,{text:t.text,color:t.color,variant:O(t.id)?"solid":"outline"},null,8,["text","color","variant"])],8,It))),128)),u.value.length>0?(a(),m(g,{key:0,size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-x",label:"Clear filters",onClick:e[1]||(e[1]=t=>u.value=[])})):_("",!0)])):_("",!0)]),S.value.length>0?(a(),m(at,{key:0,"min-width":"60rem",bleed:!1},{default:s(()=>[o(et,{data:S.value,columns:G,ui:{base:"table-fixed border-separate border-spacing-0",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"}},{"name-cell":s(({row:t})=>[c("div",Mt,[c("div",Ot,[o(K,{to:`/projects/${t.original.id}`,class:"text-primary hover:underline font-medium"},{default:s(()=>[d(y(t.original.label||t.original.name),1)]),_:2},1032,["to"])]),t.original.tags?.length?(a(),l("div",At,[(a(!0),l(R,null,N(t.original.tags,j=>(a(),m(L,{key:j.id,text:j.text,color:j.color},null,8,["text","color"]))),128))])):_("",!0)])]),"totalRuns-cell":s(({row:t})=>[t.original.totalRuns===0?(a(),l("span",qt,"No data")):(a(),l("span",Gt,y(t.original.totalRuns)+" runs",1))]),"latestRun-cell":s(({row:t})=>[t.original.latestRun?(a(),l("span",Qt,y(("prettyDateFormat"in n?n.prettyDateFormat:i(Vt))(t.original.latestRun.startTime)),1)):(a(),l("span",Zt,"No data"))]),"branch-cell":s(({row:t})=>[t.original.latestRun?.metadata?.scm?(a(),l("div",Jt,[t.original.latestRun.metadata.scm.branch?(a(),l("span",Wt,y(t.original.latestRun.metadata.scm.branch),1)):_("",!0),t.original.latestRun.metadata.scm.commit?(a(),l("code",Xt,y(t.original.latestRun.metadata.scm.commit.substring(0,7)),1)):_("",!0)])):_("",!0)]),"duration-cell":s(({row:t})=>[t.original.latestRun?.duration!=null?(a(),m(W,{key:0,ms:t.original.latestRun.duration,class:"text-sm text-gray-600"},null,8,["ms"])):(a(),l("span",Yt,"No data"))]),"status-cell":s(({row:t})=>[t.original.latestRun?(a(),m(X,{key:0,status:t.original.latestRun.status},null,8,["status"])):(a(),l("span",te,"No data"))]),"testRatio-cell":s(({row:t})=>[t.original.latestRun?(a(),m(Y,{key:0,passed:t.original.latestRun.passedTests,failed:t.original.latestRun.failedTests,skipped:t.original.latestRun.skippedTests,flaky:t.original.latestRun.flakyTests,"did-not-run":t.original.latestRun.didNotRunTests??0,total:t.original.latestRun.totalTests},null,8,["passed","failed","skipped","flaky","did-not-run","total"])):(a(),l("span",ee,"No data"))]),"report-cell":s(({row:t})=>[t.original.latestRun?(a(),m(tt,{key:0,reports:t.original.latestRun.reports},null,8,["reports"])):_("",!0)]),"actions-header":s(()=>[...e[11]||(e[11]=[c("div",{class:"text-right"},"Project actions",-1)])]),"actions-cell":s(({row:t})=>[c("div",ae,[o(g,{to:`/projects/${t.original.id}`,size:"sm",variant:"outline"},{default:s(()=>[...e[12]||(e[12]=[d("View details",-1)])]),_:1},8,["to"]),o(g,{to:`/projects/${t.original.id}/edit`,size:"sm",variant:"ghost",icon:"i-lucide-pencil"},null,8,["to"])])]),_:1},8,["data"])]),_:1})):I.value?(a(),l("div",se,[e[13]||(e[13]=c("span",{class:"sr-only",role:"status"},"Loading projects…",-1)),o(V,{class:"h-10 w-full rounded-lg"}),(a(),l(R,null,N(6,t=>o(V,{key:t,class:"h-14 w-full rounded-lg"})),64))])):i(v)&&i(v).length>0?(a(),l("div",oe,[...e[14]||(e[14]=[c("p",{class:"text-lg mb-2"},"No projects match your search",-1),c("p",{class:"text-sm"},"Try adjusting your search or filters",-1)])])):(a(),m(ot,{key:3,icon:"i-lucide-rocket",text:"No projects yet"},{default:s(()=>[c("p",ne,[e[17]||(e[17]=d(" Projects are created automatically once the reporter submits its first run — see the ",-1)),o(K,{to:"/",class:"text-primary hover:underline"},{default:s(()=>[...e[15]||(e[15]=[d("home page",-1)])]),_:1}),e[18]||(e[18]=d(" for a copy-paste setup snippet, or the ",-1)),o(st,{to:"reporter","no-icon":"",class:"text-primary hover:underline"},{default:s(()=>[...e[16]||(e[16]=[d("reporter docs",-1)])]),_:1}),e[19]||(e[19]=d(". ",-1))]),o(g,{icon:"i-lucide-plus",label:"New project",variant:"ghost",size:"sm",class:"mt-2",onClick:e[2]||(e[2]=t=>f.value=!0)})]),_:1}))]),_:1}),o(ct,null,{default:s(()=>[o(it,{open:f.value,title:"Create new project","onUpdate:open":e[9]||(e[9]=t=>f.value=t)},{body:s(()=>[o(rt,{schema:i(A),state:i(r)},{default:s(()=>[o(lt,{mode:"create",name:i(r).name,"onUpdate:name":e[3]||(e[3]=t=>i(r).name=t),label:i(r).label,"onUpdate:label":e[4]||(e[4]=t=>i(r).label=t),description:i(r).description,"onUpdate:description":e[5]||(e[5]=t=>i(r).description=t),tags:k.value,"onUpdate:tags":e[6]||(e[6]=t=>k.value=t),"all-tags":$.value,onTagCreated:e[7]||(e[7]=t=>i(H)())},null,8,["name","label","description","tags","all-tags"])]),_:1},8,["schema","state"])]),footer:s(()=>[c("div",le,[o(g,{color:"neutral",variant:"ghost",label:"Cancel",onClick:e[8]||(e[8]=t=>f.value=!1)}),o(g,{label:"Create project",icon:"i-lucide-plus",loading:T.value,onClick:q},null,8,["loading"])])]),_:1},8,["open"])]),_:1})],64)}}});export{ze as default};
@@ -1 +0,0 @@
1
- import{d as _,f as m,g as i,o as p,i as s,t as n,j as c,k as l,m as u,_ as x}from"./C5TrTuWv.js";import{_ as f}from"./DMAiMrNr.js";import{a as b}from"./T5UuMUxA.js";const g={class:"space-y-4 text-sm"},v={class:"space-y-1"},y={class:"flex items-start gap-2"},C={class:"text-xs break-all flex-1"},k={class:"space-y-1"},D={class:"flex items-start gap-2"},B={class:"text-xs break-all flex-1"},h=_({__name:"DataLocationCard",props:{database:{},storage:{}},setup(a){const{copy:e}=b();return(N,t)=>{const o=x,r=f;return p(),m(r,{icon:"i-lucide-folder-open",title:"Data location"},{subtitle:i(()=>[...t[2]||(t[2]=[u(" Where this instance keeps its database and files on disk. ",-1)])]),default:i(()=>[s("div",g,[s("div",v,[t[3]||(t[3]=s("div",{class:"text-muted"},"Database",-1)),s("div",y,[s("code",C,n(a.database),1),c(o,{icon:"i-lucide-copy",color:"neutral",variant:"ghost",size:"xs","aria-label":"Copy database location",onClick:t[0]||(t[0]=d=>l(e)(a.database,{toast:!0}))})])]),s("div",k,[t[4]||(t[4]=s("div",{class:"text-muted"},"File storage",-1)),s("div",D,[s("code",B,n(a.storage),1),c(o,{icon:"i-lucide-copy",color:"neutral",variant:"ghost",size:"xs","aria-label":"Copy storage location",onClick:t[1]||(t[1]=d=>l(e)(a.storage,{toast:!0}))})])])])]),_:1})}}}),z=Object.assign(h,{__name:"DataLocationCard"});export{z as _};
@@ -1,2 +0,0 @@
1
- import{d as _,o as l,f as p,g as u,j as d,p as f,q as g,k as a,h as o}from"./C5TrTuWv.js";import{_ as v}from"./DuOH5jcQ.js";import{g as x}from"./B69RP95P.js";const h=_({__name:"EnvManagedBadge",props:{envVars:{},size:{default:"sm"}},setup(r){const s=r,c=o(()=>{switch(s.size){case"xs":return"size-3";case"md":return"size-4";default:return"size-3.5"}}),i=o(()=>{if(!s.envVars?.length)return"Managed by environment variable";const e=s.envVars.map(n=>{const t=x(n).description;return t?`${n} — ${t}`:n});return e.length===1?`Set via ${e[0]}`:["Set via environment variables:",...e].join(`
2
- `)});return(e,n)=>{const t=f,m=v;return l(),p(m,{text:a(i),ui:{content:"whitespace-pre-line max-w-sm"}},{default:u(()=>[d(t,{name:"i-lucide-lock",class:g(["text-gray-400",a(c)])},null,8,["class"])]),_:1},8,["text"])}}}),b=Object.assign(h,{__name:"EnvManagedBadge"});export{b as _};
@@ -1 +0,0 @@
1
- import{ak as $,b as H,B as L,J as T,r as R,ab as y,az as K,ap as O,h as M}from"./C5TrTuWv.js";import{e as U}from"./DMtrFQqi.js";const J=4096;function F(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function k(e){return'"'+e.replace(/"/g,'\\"')+'"'}function m(e){return e.replace(/\\/g,"/")}function G(e){const n=new Map;for(const o of e){const i=o.projectName||"";n.has(i)||n.set(i,[]),n.get(i).push(o)}return n}function z(e){const n=new Set;return e.filter(o=>{const i=o.filePath;return n.has(i)?!1:(n.add(i),!0)}).map(o=>o.filePath)}function V(e,n){const o=n?.mode??"file-line",l=`${n?.pkgRunner??"npx"} playwright test`;if(e.length===0)return"";const f=G(e),j=[];for(const[u,c]of f){let s;if(o==="file"){const d=z(c).map(t=>k(m(t))).join(" ");s=`${l} ${d}`}else if(o==="file-line"){const p=new Set,d=c.filter(t=>{const r=t.filePath+":"+t.line;return t.line&&p.has(r)?!1:(t.line&&p.add(r),!0)}).map(t=>t.line?k(`${m(t.filePath)}:${t.line}`):k(m(t.filePath))).join(" ");s=`${l} ${d}`}else{const p=c.map(t=>F(t.title)),d=p.length===1?p[0]:`(${p.join("|")})`;s=`${l} --grep ${k(d)}`}u&&(s+=` --project=${k(u)}`),j.push(s)}let v=j.join(" && ");if(v.length>J){if(o==="grep")return V(e,{...n,mode:"file-line"});if(o==="file-line")return V(e,{...n,mode:"file"});const c=W(e).map(p=>k(m(p))).join(" ");let s=`${l} ${c}`;return s.length>J&&(s=s.slice(0,J-3)+"..."),s}return v}function W(e){const n=new Set;return e.reduce((o,i)=>(n.has(i.filePath)||(n.add(i.filePath),o.push(i.filePath)),o),[])}function _(e,n){return e==null?"":n==null?`:${e}`:`:${e}:${n}`}function E(e){return e.replace(/%/g,"%25").replace(/ /g,"%20").replace(/#/g,"%23").replace(/\?/g,"%3F")}function S(e,n){const o=m(e).replace(/\/+$/,""),i=m(n).replace(/^\.?\/+/,"");return o?`${o}/${i}`:i}function q(e){const n=E(m(e.absPath)),o=n.startsWith("/")?n:`/${n}`;return`${e.scheme}://file${o}${_(e.line,e.column)}`}function X(e){const n=E(m(e.relPath))+_(e.line,e.column);return`jetbrains://${e.product}/navigate/reference?project=${encodeURIComponent(e.projectName)}&path=${n}`}function Y(e){const n=E(m(e.path));return`http://localhost:${e.port}/api/file/${n}${_(e.line,e.column)}`}async function I(e){const n=$();if(!n||e==null||e==="")return null;try{return await n.invoke("desktop_get_project_link",{projectId:String(e)})}catch{return null}}function re(e){const n=H(),o=R(!1),i=R(null),l=R(!1);async function f(){i.value=await I(y(e))}L(()=>{o.value=!!$(),o.value&&f()}),T(()=>y(e),()=>{o.value&&f()});async function j(){const u=$(),c=y(e);if(!u||c==null||c==="")return!1;l.value=!0;try{const s=await u.invoke("desktop_pick_folder");return s?(await u.invoke("desktop_set_project_link",{projectId:String(c),path:s}),await f(),!0):!1}catch(s){return n.add({title:"Could not link the folder",description:U(s),color:"error"}),!1}finally{l.value=!1}}async function v(){const u=$(),c=y(e);if(!(!u||c==null||c==="")){l.value=!0;try{await u.invoke("desktop_set_project_link",{projectId:String(c),path:null}),i.value=null}catch(s){n.add({title:"Could not unlink the folder",description:U(s),color:"error"})}finally{l.value=!1}}}return{available:o,link:i,busy:l,refresh:f,pickAndLink:j,unlink:v}}const Q="piwi-ide-prefs",Z={method:"auto",vscodeScheme:"vscode",jetbrainsProduct:"idea",jetbrainsPort:63342,jetbrainsHttpUsesRelativePath:!1,defaultRoot:"",projectRoots:{},jetbrainsProjectNames:{}},ee={vscode:"VS Code","vscode-insiders":"VS Code Insiders",vscodium:"VSCodium",cursor:"Cursor"},ie={auto:"Auto (try all)",vscode:"VS Code","jetbrains-url":"JetBrains (URL)","jetbrains-http":"JetBrains (local server)"},se=["idea","webstorm","pycharm","phpstorm","goland","rubymine","clion","rider","rustrover"];function ae(){const e=K(Q,Z,{mergeDefaults:!0}),n=H(),o=O("piwi-ide-settings-open",()=>!1),i=O("piwi-ide-settings-context",()=>({}));function l(t){return t==null||t===""?null:String(t)}function f(t={}){i.value={projectKey:t.projectKey??null,projectName:t.projectName??null},o.value=!0}function j(t){const r=l(t);return((r?e.value.projectRoots[r]:void 0)||e.value.defaultRoot||"").trim()}function v(t,r){const a=l(t);return((a?e.value.jetbrainsProjectNames[a]:void 0)||r||"").trim()}function u(t,r){const a=j(r);return a?S(a,t):null}const c=M(()=>!!e.value.defaultRoot?.trim()||Object.keys(e.value.projectRoots).length>0||Object.keys(e.value.jetbrainsProjectNames).length>0);function s(t){try{const r=document.createElement("iframe");r.style.display="none",r.src=t,document.body.appendChild(r),setTimeout(()=>r.remove(),1e3)}catch{const r=document.createElement("a");r.href=t,r.style.display="none",document.body.appendChild(r),r.click(),setTimeout(()=>r.remove(),1e3)}}async function p(t,r,a){const b=Y({port:e.value.jetbrainsPort,path:t,line:r,column:a});try{return await fetch(b,{mode:"no-cors",signal:AbortSignal.timeout(1200)}),!0}catch{return!1}}async function d(t){const r=t.method??e.value.method,a=t.filePath,b=t.line??null,P=t.column??null;let h=j(t.projectKey);if(!h){const g=await I(t.projectKey);g?.exists&&(h=g.path)}const w=v(t.projectKey,t.projectName),x={projectKey:l(t.projectKey),projectName:t.projectName??null},C={label:"Configure",color:"info",onClick:()=>f(x)},N=()=>h?(s(q({scheme:e.value.vscodeScheme,absPath:S(h,a),line:b,column:P})),n.add({title:`Opening ${ee[e.value.vscodeScheme]}…`,description:"If nothing opens, the editor may not be installed or the workspace root is wrong.",color:"neutral",icon:"i-lucide-external-link"}),!0):(n.add({title:"Set a workspace root",description:"VS Code needs the local folder that contains this file.",color:"info",icon:"i-lucide-folder-cog",actions:[C]}),!1),A=()=>w?(s(X({product:e.value.jetbrainsProduct,projectName:w,relPath:a,line:b,column:P})),n.add({title:"Opening JetBrains…",description:"If nothing opens, JetBrains Toolbox may not be installed or the project is not open.",color:"neutral",icon:"i-lucide-external-link"}),!0):(n.add({title:"Set a JetBrains project name",description:"The jetbrains:// link needs the open IDE project name.",color:"info",icon:"i-lucide-folder-cog",actions:[C]}),!1),D=async()=>{const g=e.value.jetbrainsHttpUsesRelativePath?a:h?S(h,a):a,B=await p(g,b,P);return n.add(B?{title:"Opened in JetBrains",color:"success",icon:"i-lucide-check"}:{title:"JetBrains not reachable",description:`Nothing responded on localhost:${e.value.jetbrainsPort}. Start the IDE with the Remote Control plugin (and "Allow unsigned requests").`,color:"error",icon:"i-lucide-plug-zap"}),B};if(r==="vscode"){N();return}if(r==="jetbrains-url"){A();return}if(r==="jetbrains-http"){await D();return}if(e.value.jetbrainsHttpUsesRelativePath||!!h){const g=e.value.jetbrainsHttpUsesRelativePath?a:S(h,a);if(await p(g,b,P)){n.add({title:"Opened in JetBrains",color:"success",icon:"i-lucide-check"});return}}if(h){N();return}if(w){A();return}n.add({title:'Set up "Open in IDE"',description:"Add your local workspace folder (for VS Code) or a JetBrains project name to open files from here.",color:"info",icon:"i-lucide-folder-cog",actions:[C]})}return{prefs:e,isConfigured:c,openInIde:d,openInVscode:t=>d({...t,method:"vscode"}),openViaJetbrainsUrl:t=>d({...t,method:"jetbrains-url"}),openViaJetbrainsHttp:t=>d({...t,method:"jetbrains-http"}),resolveRoot:j,resolveJbProjectName:v,resolveAbsPath:u,settingsOpen:o,settingsContext:i,openSettings:f}}export{ie as I,se as J,ee as V,ae as a,V as b,F as e,m as t,re as u};
@@ -1 +0,0 @@
1
- import{$ as K,d as L,U as O,Z as J,au as T,o as i,c as B,f,g as v,V as C,k as e,W as _,S as Q,C as Y,ag as D,X as $,v as x,F as ee,h as m,b1 as A,aT as P,j as R,aE as ae,a2 as re,a3 as te,a5 as se,a6 as le,a7 as ie,aN as oe,aU as ne,i as de,q as c,p as j,m as N,t as U,a8 as ue}from"./C5TrTuWv.js";import{i as M}from"./CpcrljrH.js";import{u as ce}from"./DaNC-xl1.js";import{u as pe}from"./03FA4-rI.js";import{V as fe}from"./DMsm-RGQ.js";import{R as ve}from"./DEvYVl9M.js";import{L as G}from"./D_y2VS8k.js";const[be]=K("CheckboxGroupRoot");function E(o){return o==="indeterminate"}function H(o){return E(o)?"indeterminate":o?"checked":"unchecked"}const[me,he]=K("CheckboxRoot");var ge=L({inheritAttrs:!1,__name:"CheckboxRoot",props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:"on"},id:{type:String,required:!1},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(o,{emit:h}){const r=o,l=h,{forwardRef:g,currentElement:a}=O(),s=be(null),d=J(r,"modelValue",l,{defaultValue:r.defaultValue??r.falseValue,passive:r.modelValue===void 0}),p=m(()=>s?.disabled.value||r.disabled),q=m(()=>P(d.value,r.trueValue)),u=m(()=>A(s?.modelValue.value)?d.value==="indeterminate"?"indeterminate":q.value:M(s.modelValue.value,r.value));function z(){if(A(s?.modelValue.value))d.value==="indeterminate"?d.value=r.trueValue:d.value=q.value?r.falseValue:r.trueValue;else{const t=[...s.modelValue.value||[]];if(M(t,r.value)){const y=t.findIndex(I=>P(I,r.value));t.splice(y,1)}else t.push(r.value);s.modelValue.value=t}}const F=ce(a),k=pe(),S=T(),V=m(()=>{if(!S["aria-label"])return r.id&&a.value?document.querySelector(`[for="${r.id}"]`)?.innerText:void 0});return he({disabled:p,state:u}),(t,y)=>(i(),B(ee,null,[(i(),f(D(e(s)?.rovingFocus.value?e(ve):e($)),_({...t.$attrs,...e(k)},{id:t.id,ref:e(g),role:"checkbox","as-child":t.asChild,as:t.as,type:t.as==="button"?"button":void 0,"aria-checked":e(E)(u.value)?"mixed":u.value,"aria-required":t.required,"aria-label":t.$attrs["aria-label"]||V.value,"data-state":e(H)(u.value),"data-disabled":p.value?"":void 0,disabled:p.value,focusable:e(s)?.rovingFocus.value?!p.value:void 0,onKeydown:Q(Y(()=>{},["prevent"]),["enter"]),onClick:z}),{default:v(()=>[C(t.$slots,"default",{modelValue:e(d),state:u.value})]),_:3},16,["id","as-child","as","type","aria-checked","aria-required","aria-label","data-state","data-disabled","disabled","focusable","onKeydown"])),e(F)&&t.name&&!e(s)?(i(),f(e(fe),_({key:0,type:"checkbox",checked:!!u.value,name:t.name,value:t.value,disabled:p.value,required:t.required},e(k)),null,16,["checked","name","value","disabled","required"])):x("v-if",!0)],64))}}),ye=ge,qe=L({__name:"CheckboxIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(o){const{forwardRef:h}=O(),r=me();return(l,g)=>(i(),f(e(ae),{present:l.forceMount||e(E)(e(r).state.value)||e(r).state.value===!0},{default:v(()=>[R(e($),_({ref:e(h),"data-state":e(H)(e(r).state.value),"data-disabled":e(r).disabled.value?"":void 0,style:{pointerEvents:"none"},"as-child":l.asChild,as:l.as},l.$attrs),{default:v(()=>[C(l.$slots,"default")]),_:3},16,["data-state","data-disabled","as-child","as"])]),_:3},8,["present"]))}}),ke=qe;const Ve={slots:{root:"relative flex items-start",container:"flex items-center",base:"rounded-sm ring ring-inset ring-accented overflow-hidden focus-visible:outline-3",indicator:"flex items-center justify-center size-full text-inverted",icon:"shrink-0 size-full",wrapper:"w-full",label:"block font-medium text-default",description:"text-muted"},variants:{color:{primary:{base:"outline-primary/25 focus-visible:ring-primary",indicator:"bg-primary"},secondary:{base:"outline-secondary/25 focus-visible:ring-secondary",indicator:"bg-secondary"},success:{base:"outline-success/25 focus-visible:ring-success",indicator:"bg-success"},info:{base:"outline-info/25 focus-visible:ring-info",indicator:"bg-info"},warning:{base:"outline-warning/25 focus-visible:ring-warning",indicator:"bg-warning"},error:{base:"outline-error/25 focus-visible:ring-error",indicator:"bg-error"},neutral:{base:"outline-inverted/25 focus-visible:ring-inverted",indicator:"bg-inverted"}},variant:{list:{root:""},card:{root:"border border-muted rounded-lg"}},indicator:{start:{root:"flex-row",wrapper:"ms-2"},end:{root:"flex-row-reverse",wrapper:"me-2"},hidden:{base:"sr-only",wrapper:"text-center"}},size:{xs:{base:"size-3",container:"h-4",wrapper:"text-xs"},sm:{base:"size-3.5",container:"h-4",wrapper:"text-xs"},md:{base:"size-4",container:"h-5",wrapper:"text-sm"},lg:{base:"size-4.5",container:"h-5",wrapper:"text-sm"},xl:{base:"size-5",container:"h-6",wrapper:"text-base"}},required:{true:{label:"after:content-['*'] after:ms-0.5 after:text-error"}},disabled:{true:{root:"opacity-75",base:"cursor-not-allowed",label:"cursor-not-allowed",description:"cursor-not-allowed"}},highlight:{true:""},checked:{true:""}},compoundVariants:[{size:"xs",variant:"card",class:{root:"p-2.5"}},{size:"sm",variant:"card",class:{root:"p-3"}},{size:"md",variant:"card",class:{root:"p-3.5"}},{size:"lg",variant:"card",class:{root:"p-4"}},{size:"xl",variant:"card",class:{root:"p-4.5"}},{color:"primary",variant:"card",class:{root:"has-data-[state=checked]:border-primary"}},{color:"secondary",variant:"card",class:{root:"has-data-[state=checked]:border-secondary"}},{color:"success",variant:"card",class:{root:"has-data-[state=checked]:border-success"}},{color:"info",variant:"card",class:{root:"has-data-[state=checked]:border-info"}},{color:"warning",variant:"card",class:{root:"has-data-[state=checked]:border-warning"}},{color:"error",variant:"card",class:{root:"has-data-[state=checked]:border-error"}},{color:"neutral",variant:"card",class:{root:"has-data-[state=checked]:border-inverted"}},{variant:"card",disabled:!0,class:{root:"cursor-not-allowed"}},{color:"primary",highlight:!0,class:{base:"ring-primary"}},{color:"secondary",highlight:!0,class:{base:"ring-secondary"}},{color:"success",highlight:!0,class:{base:"ring-success"}},{color:"info",highlight:!0,class:{base:"ring-info"}},{color:"warning",highlight:!0,class:{base:"ring-warning"}},{color:"error",highlight:!0,class:{base:"ring-error"}},{color:"neutral",highlight:!0,class:{base:"ring-inverted"}}],defaultVariants:{size:"md",color:"primary",variant:"list",indicator:"start"}},Ie=Object.assign({inheritAttrs:!1},{__name:"UCheckbox",props:{as:{type:null,required:!1},label:{type:String,required:!1},description:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},indicator:{type:null,required:!1},highlight:{type:Boolean,required:!1},icon:{type:null,required:!1},indeterminateIcon:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},disabled:{type:Boolean,required:!1},required:{type:Boolean,required:!1},name:{type:String,required:!1},value:{type:null,required:!1},id:{type:String,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},trueValue:{type:null,required:!1},falseValue:{type:null,required:!1}},emits:["change","update:modelValue"],setup(o,{emit:h}){const r=o,l=re(),g=h,a=te("checkbox",r),s=se(),d=le(ie(a,"required","value","defaultValue","modelValue","trueValue","falseValue"),g),{id:p,emitFormChange:q,emitFormInput:u,size:z,color:F,highlight:k,name:S,disabled:V,ariaAttrs:t}=oe(r),y=p.value??ne(),I=T(),W=m(()=>{const{"data-state":b,...w}=I;return w}),n=m(()=>ue({extend:Ve,...s.ui?.checkbox||{}})({size:z.value??a.size,color:F.value??a.color,variant:a.variant,indicator:a.indicator,highlight:k.value??a.highlight,required:a.required,disabled:V.value}));function X(b){const w=new Event("change",{target:{value:b}});g("change",w),q(),u()}return(b,w)=>(i(),f(e($),{as:!e(a).variant||e(a).variant==="list"?e(a).as:e(G),"data-slot":b.$attrs["data-slot"]??"root",class:c(n.value.root({class:[e(a).ui?.root,e(a).class]}))},{default:v(()=>[de("div",{"data-slot":"container",class:c(n.value.container({class:e(a).ui?.container}))},[R(e(ye),_({id:e(y)},{...e(d),...W.value,...e(t)},{name:e(S),disabled:e(V),"data-slot":"base",class:n.value.base({class:e(a).ui?.base}),"onUpdate:modelValue":X}),{default:v(({state:Z})=>[R(e(ke),{"data-slot":"indicator",class:c(n.value.indicator({class:e(a).ui?.indicator}))},{default:v(()=>[Z==="indeterminate"?(i(),f(j,{key:0,name:e(a).indeterminateIcon||e(s).ui.icons.minus,"data-slot":"icon",class:c(n.value.icon({class:e(a).ui?.icon}))},null,8,["name","class"])):(i(),f(j,{key:1,name:e(a).icon||e(s).ui.icons.check,"data-slot":"icon",class:c(n.value.icon({class:e(a).ui?.icon}))},null,8,["name","class"]))]),_:2},1032,["class"])]),_:1},16,["id","name","disabled","class"])],2),e(a).label||l.label||e(a).description||l.description?(i(),B("div",{key:0,"data-slot":"wrapper",class:c(n.value.wrapper({class:e(a).ui?.wrapper}))},[e(a).label||l.label?(i(),f(D(!e(a).variant||e(a).variant==="list"?e(G):"p"),{key:0,for:e(y),"data-slot":"label",class:c(n.value.label({class:e(a).ui?.label}))},{default:v(()=>[C(b.$slots,"label",{label:e(a).label},()=>[N(U(e(a).label),1)])]),_:3},8,["for","class"])):x("",!0),e(a).description||l.description?(i(),B("p",{key:1,"data-slot":"description",class:c(n.value.description({class:e(a).ui?.description}))},[C(b.$slots,"description",{description:e(a).description},()=>[N(U(e(a).description),1)])],2)):x("",!0)],2)):x("",!0)]),_:3},8,["as","data-slot","class"]))}});export{Ie as _};
@@ -1 +0,0 @@
1
- import{d as o,o as s,f as e,g as c,p as u,v as r,m,t as l,k as g,s as d}from"./C5TrTuWv.js";import{j as f}from"./DMtrFQqi.js";const _=o({__name:"RunStatusBadge",props:{status:{},size:{}},setup(t){return(a,z)=>{const n=u,i=d;return s(),e(i,{color:("getStatusColor"in a?a.getStatusColor:g(f))(t.status),size:t.size,variant:"subtle",class:"capitalize gap-1 items-center"},{default:c(()=>[t.status==="running"||t.status==="initialising"||t.status==="finalizing"?(s(),e(n,{key:0,name:"i-lucide-loader-circle",class:"size-3 animate-spin shrink-0"})):r("",!0),m(" "+l(t.status),1)]),_:1},8,["color","size"])}}}),S=Object.assign(_,{__name:"RunStatusBadge"});export{S as _};
@@ -1 +0,0 @@
1
- import{a3 as S,a6 as V,bb as P,a4 as A,a5 as B,r as O,o as r,f as v,W as b,k as a,_ as j,h as q,a8 as x,a2 as F,g as k,i as L,q as u,c as f,F as C,y as K,j as y,x as N,bc as D,bd as T,V as d,p as $,aK as U,v as m,aJ as I,m as E,t as J,X as R}from"./C5TrTuWv.js";import{a as W}from"./BCGljaM0.js";const X={base:"hidden lg:flex",variants:{side:{left:"",right:""}}},Q={__name:"UDashboardSidebarCollapse",props:{color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"ghost"},side:{type:String,required:!1,default:"left"},ui:{type:Object,required:!1},label:{type:String,required:!1},activeColor:{type:null,required:!1},activeVariant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},block:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},onClick:{type:[Function,Array],required:!1},class:{type:null,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},as:{type:null,required:!1},type:{type:null,required:!1},disabled:{type:Boolean,required:!1},exactActiveClass:{type:String,required:!1},viewTransition:{type:Boolean,required:!1}},setup(g){const i=S("dashboardSidebarCollapse",g),l=V(P(i,"icon","side","class")),{t:p}=A(),o=B(),{sidebarCollapsed:c,collapseSidebar:s}=W({sidebarCollapsed:O(!1),collapseSidebar:()=>{}}),n=q(()=>x({extend:X,...o.ui?.dashboardSidebarCollapse||{}}));return(_,e)=>(r(),v(j,b({...a(l),icon:a(i).icon||(a(c)?a(o).ui.icons.panelOpen:a(o).ui.icons.panelClose),"aria-label":a(c)?a(p)("dashboardSidebarCollapse.expand"):a(p)("dashboardSidebarCollapse.collapse"),..._.$attrs},{class:n.value({class:[a(i).ui?.base,a(i).class],side:a(i).side}),onClick:e[0]||(e[0]=t=>a(s)?.(!a(c)))}),null,16,["class"]))}},G={slots:{root:"relative min-w-0",list:"flex items-center gap-1.5",item:"flex min-w-0",link:"group relative flex items-center gap-1.5 text-sm min-w-0 rounded-md",linkLeadingIcon:"shrink-0 size-5",linkLeadingAvatar:"shrink-0",linkLeadingAvatarSize:"2xs",linkLabel:"truncate",separator:"flex",separatorIcon:"shrink-0 size-5 text-muted"},variants:{active:{true:{link:"font-semibold"},false:{link:"text-muted font-medium"}},disabled:{true:{link:"cursor-not-allowed opacity-75"}},to:{true:""},color:{primary:{link:"outline-primary/25 focus-visible:outline-3"},secondary:{link:"outline-secondary/25 focus-visible:outline-3"},success:{link:"outline-success/25 focus-visible:outline-3"},info:{link:"outline-info/25 focus-visible:outline-3"},warning:{link:"outline-warning/25 focus-visible:outline-3"},error:{link:"outline-error/25 focus-visible:outline-3"},neutral:{link:"outline-inverted/25 focus-visible:outline-3"}}},compoundVariants:[{disabled:!1,active:!1,to:!0,class:{link:["hover:text-default","transition-colors"]}},{color:"primary",active:!0,class:{link:"text-primary"}},{color:"secondary",active:!0,class:{link:"text-secondary"}},{color:"success",active:!0,class:{link:"text-success"}},{color:"info",active:!0,class:{link:"text-info"}},{color:"warning",active:!0,class:{link:"text-warning"}},{color:"error",active:!0,class:{link:"text-error"}},{color:"neutral",active:!0,class:{link:"text-highlighted"}}],defaultVariants:{color:"primary"}},Y={__name:"UBreadcrumb",props:{as:{type:null,required:!1,default:"nav"},items:{type:Array,required:!1},separatorIcon:{type:null,required:!1},color:{type:null,required:!1},labelKey:{type:null,required:!1,default:"label"},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(g){const h=g,i=F(),l=S("breadcrumb",h),{dir:p}=A(),o=B(),c=q(()=>l.separatorIcon||(p.value==="rtl"?o.ui.icons.chevronLeft:o.ui.icons.chevronRight)),s=q(()=>x({extend:G,...o.ui?.breadcrumb||{}})({color:l.color}));return(n,_)=>(r(),v(a(R),{as:a(l).as,"aria-label":"breadcrumb","data-slot":"root",class:u(s.value.root({class:[a(l).ui?.root,a(l).class]}))},{default:k(()=>[L("ol",{"data-slot":"list",class:u(s.value.list({class:a(l).ui?.list}))},[(r(!0),f(C,null,K(a(l).items,(e,t)=>(r(),f(C,{key:t},[L("li",{"data-slot":"item",class:u(s.value.item({class:[a(l).ui?.item,e.ui?.item]}))},[y(N,b({ref_for:!0},a(D)(e),{custom:""}),{default:k(({active:w,...z})=>[y(T,b({ref_for:!0},z,{as:"span","aria-current":(e.active??w)&&t===a(l).items.length-1?"page":void 0,"data-slot":"link",class:s.value.link({class:[a(l).ui?.link,e.ui?.link,e.class],active:e.active??t===a(l).items.length-1,disabled:!!e.disabled,to:!!e.to})}),{default:k(()=>[d(n.$slots,e.slot||"item",{item:e,active:e.active??t===a(l).items.length-1,index:t,ui:s.value},()=>[d(n.$slots,e.slot?`${e.slot}-leading`:"item-leading",{item:e,active:e.active??t===a(l).items.length-1,index:t,ui:s.value},()=>[e.icon?(r(),v($,{key:0,name:e.icon,"data-slot":"linkLeadingIcon",class:u(s.value.linkLeadingIcon({class:[a(l).ui?.linkLeadingIcon,e.ui?.linkLeadingIcon],active:e.active??t===a(l).items.length-1}))},null,8,["name","class"])):e.avatar?(r(),v(U,b({key:1,size:a(l).ui?.linkLeadingAvatarSize||s.value.linkLeadingAvatarSize()},{ref_for:!0},e.avatar,{"data-slot":"linkLeadingAvatar",class:s.value.linkLeadingAvatar({class:[a(l).ui?.linkLeadingAvatar,e.ui?.linkLeadingAvatar],active:e.active??t===a(l).items.length-1})}),null,16,["size","class"])):m("",!0)]),a(I)(e,a(l).labelKey)||i[e.slot?`${e.slot}-label`:"item-label"]?(r(),f("span",{key:0,"data-slot":"linkLabel",class:u(s.value.linkLabel({class:[a(l).ui?.linkLabel,e.ui?.linkLabel]}))},[d(n.$slots,e.slot?`${e.slot}-label`:"item-label",{item:e,active:e.active??t===a(l).items.length-1,index:t},()=>[E(J(a(I)(e,a(l).labelKey)),1)])],2)):m("",!0),d(n.$slots,e.slot?`${e.slot}-trailing`:"item-trailing",{item:e,active:e.active??t===a(l).items.length-1,index:t})])]),_:2},1040,["aria-current","class"])]),_:2},1040)],2),t<a(l).items.length-1?(r(),f("li",{key:0,role:"presentation","aria-hidden":"true","data-slot":"separator",class:u(s.value.separator({class:[a(l).ui?.separator,e.ui?.separator]}))},[d(n.$slots,"separator",{ui:s.value},()=>[y($,{name:c.value,"data-slot":"separatorIcon",class:u(s.value.separatorIcon({class:[a(l).ui?.separatorIcon,e.ui?.separatorIcon]}))},null,8,["name","class"])])],2)):m("",!0)],64))),128))],2)]),_:3},8,["as","class"]))}};export{Q as _,Y as a};
@@ -1,2 +0,0 @@
1
- import{a3 as ue,a5 as de,o as _,f as D,g as u,V as pe,q as fe,k as e,X as me,h as a,a8 as ve,N as he,aq as ge,ak as Z,ab as Y,r as G,d as ee,H as _e,J as Q,i as d,j as i,_ as te,m as v,c as E,t as R,v as U,F as X,p as be,l as T,E as ke,s as ye,I as xe,B as we,ar as je,as as Ce}from"./C5TrTuWv.js";import{_ as Re}from"./DuOH5jcQ.js";import{_ as Se}from"./BBhrClA9.js";import{_ as Ie}from"./Ce5_Tq63.js";import{_ as $e}from"./DH5H1DJh.js";import{_ as Le}from"./C-XjxjG5.js";import{_ as Me}from"./B1LUinhp.js";import{_ as Pe}from"./6Z_ZwH8I.js";import{u as oe,R as le,L as W,b as Ee,l as Ue}from"./Bn0jaRxI.js";import{u as ne,b as Oe}from"./CX5Q0dZ8.js";import{a as Ve}from"./T5UuMUxA.js";const ze={base:"relative",variants:{size:{xs:"",sm:"",md:"",lg:"",xl:""},orientation:{horizontal:"inline-flex -space-x-px",vertical:"flex flex-col -space-y-px"}}},De={__name:"UFieldGroup",props:{as:{type:null,required:!1},size:{type:null,required:!1},orientation:{type:null,required:!1,default:"horizontal"},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(p){const n=ue("fieldGroup",p),c=de(),r=a(()=>ve({extend:ze,...c.ui?.fieldGroup||{}}));return he(ge,a(()=>({orientation:n.orientation,size:n.size}))),(h,b)=>(_(),D(e(me),{as:e(n).as,"data-orientation":e(n).orientation,class:fe(r.value({orientation:e(n).orientation,class:[e(n).ui?.base,e(n).class]}))},{default:u(()=>[pe(h.$slots,"default")]),_:3},8,["as","data-orientation","class"]))}};function se(p,o){const n=a(()=>[...new Set(Y(o).map(b=>b.filePath).filter(Boolean))]),c=G([]),r=a(()=>n.value.length>0&&c.value.length===n.value.length);async function h(b){const j=Z(),y=Y(p);if(c.value=[],!(!j||!b||y==null||n.value.length===0))try{const $=await j.invoke("desktop_check_local_specs",{projectId:String(y),files:n.value});c.value=$?.missing??[]}catch{}}return{specFiles:n,missingSpecs:c,wrongFolder:r,checkSpecs:h}}function ae(p){const o=G(null),n=a(()=>!!o.value?.exists&&o.value.playwrightCli==null);async function c(){const r=Z(),h=Y(p);if(o.value=null,!(!r||h==null))try{o.value=await r.invoke("desktop_check_local_env",{projectId:String(h)})}catch{}}return{env:o,playwrightMissing:n,checkEnv:c}}const Fe={class:"flex items-center gap-2 min-w-0"},Ne={class:"space-y-4"},Be={key:0,class:"space-y-3"},Te={class:"text-sm text-muted"},Ae={class:"flex items-center justify-between gap-3"},qe={class:"flex items-center gap-2 min-w-0 text-sm"},Ge={class:"text-xs break-all"},He={class:"grid grid-cols-2 gap-3"},Je={class:"text-xs"},Ke={class:"text-xs"},Xe={class:"text-xs"},Ye={key:0},Qe={class:"mt-1"},We={class:"space-y-1"},Ze={class:"flex items-center justify-end w-full gap-2"},et=ee({__name:"DesktopRunLocallyModal",props:xe({projectId:{},projectLabel:{},cases:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:["update:open"],setup(p){const o=p,n=_e(p,"open"),c=oe(),{link:r,busy:h,pickAndLink:b}=ne(()=>o.projectId),{missingSpecs:j,wrongFolder:y,checkSpecs:$}=se(()=>o.projectId,()=>o.cases),{playwrightMissing:H,checkEnv:A}=ae(()=>o.projectId),L=a(()=>!!r.value?.exists),f=a({get:()=>c.getProjectOptions(o.projectId),set:m=>c.saveProjectOptions(o.projectId,m)}),x=a({get:()=>f.value.mode,set:m=>f.value={...f.value,mode:m}}),F=a({get:()=>f.value.runMode,set:m=>f.value={...f.value,runMode:m}}),k=a({get:()=>f.value.trace,set:m=>f.value={...f.value,trace:m}}),O=a({get:()=>f.value.repeatEach,set:m=>f.value={...f.value,repeatEach:m}}),w=le,N=W;Q([n,()=>r.value?.path,L],()=>{n.value&&($(L.value),A())});const M=a(()=>Ee(o.cases,f.value)),J=a(()=>M.value.map(m=>m.display).join(`
2
- `));function P(){c.startRun({projectId:o.projectId,projectLabel:o.projectLabel,cases:o.cases}),n.value=!1}return(m,t)=>{const S=be,V=ye,B=Se,C=te,q=Ie,z=$e,l=ke,s=Le,I=Me,K=Pe;return _(),D(K,{open:n.value,"onUpdate:open":t[6]||(t[6]=g=>n.value=g),ui:{content:"max-w-2xl"}},{header:u(()=>[d("div",Fe,[i(S,{name:"i-lucide-monitor-play",class:"size-5 text-primary shrink-0"}),t[7]||(t[7]=d("h2",{class:"text-base font-semibold truncate"},"Run tests locally",-1)),i(V,{color:"neutral",variant:"subtle",size:"sm"},{default:u(()=>[v(R(p.cases.length)+" test"+R(p.cases.length===1?"":"s"),1)]),_:1})])]),body:u(()=>[d("div",Ne,[e(L)?(_(),E(X,{key:1},[d("div",Ae,[d("div",qe,[i(S,{name:"i-lucide-folder-check",class:"size-4 text-success shrink-0"}),d("code",Ge,R(e(r)?.path),1)]),i(C,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-folder-search",loading:e(h),onClick:e(b)},{default:u(()=>[...t[9]||(t[9]=[v(" Change ",-1)])]),_:1},8,["loading","onClick"])]),d("div",He,[i(z,{label:"Select tests by",name:"mode"},{default:u(()=>[i(q,{modelValue:e(x),"onUpdate:modelValue":t[0]||(t[0]=g=>T(x)?x.value=g:null),items:e(w),class:"w-full"},null,8,["modelValue","items"])]),_:1}),i(z,{label:"Browser",name:"runMode"},{default:u(()=>[i(q,{modelValue:e(F),"onUpdate:modelValue":t[1]||(t[1]=g=>T(F)?F.value=g:null),items:e(N),class:"w-full"},null,8,["modelValue","items"])]),_:1}),i(z,{label:"Repeat each",name:"repeatEach",description:"Run every test N times — flake reproduction."},{default:u(()=>[i(l,{modelValue:e(O),"onUpdate:modelValue":t[2]||(t[2]=g=>T(O)?O.value=g:null),modelModifiers:{number:!0},type:"number",min:"1",max:"1000",class:"w-full"},null,8,["modelValue"])]),_:1}),i(z,{label:"Trace",name:"trace",description:"Force trace recording (--trace=on)."},{default:u(()=>[i(s,{modelValue:e(k),"onUpdate:modelValue":t[3]||(t[3]=g=>T(k)?k.value=g:null)},null,8,["modelValue"])]),_:1})]),e(H)?(_(),D(B,{key:0,color:"warning",variant:"soft",icon:"i-lucide-package-x",title:"No Playwright installation found"},{description:u(()=>[t[10]||(t[10]=v(" Neither ",-1)),d("code",Je,R(e(r)?.path),1),t[11]||(t[11]=v(" nor its parents hold a ",-1)),t[12]||(t[12]=d("code",{class:"text-xs"},"node_modules",-1)),t[13]||(t[13]=v(" with Playwright. Run your package manager's install in the checkout first — the app executes that folder's own Playwright. ",-1))]),_:1})):U("",!0),e(j).length>0?(_(),D(B,{key:1,color:"warning",variant:"soft",icon:"i-lucide-file-question",title:e(y)?"None of these tests are in the linked folder":"Some tests are not in the linked folder"},{description:u(()=>[d("p",null,[t[14]||(t[14]=v(" Not found under ",-1)),d("code",Ke,R(e(r)?.path),1),t[15]||(t[15]=v(": ",-1)),d("code",Xe,R(e(j)[0]),1),e(j).length>1?(_(),E("span",Ye," and "+R(e(j).length-1)+" more",1)):U("",!0),t[16]||(t[16]=v(". ",-1))]),d("p",Qe,[e(y)?(_(),E(X,{key:0},[v(" This project is probably linked to a different checkout than the one these tests come from. ")],64)):(_(),E(X,{key:1},[v(" Running anyway is fine when your Playwright config puts them elsewhere. ")],64))]),e(y)?(_(),D(C,{key:0,size:"xs",color:"warning",variant:"soft",icon:"i-lucide-folder-search",class:"mt-2",loading:e(h),onClick:e(b)},{default:u(()=>[...t[17]||(t[17]=[v(" Choose the right folder… ",-1)])]),_:1},8,["loading","onClick"])):U("",!0)]),_:1},8,["title"])):U("",!0),d("div",We,[t[18]||(t[18]=d("div",{class:"text-xs text-muted"},"Runs in the linked folder",-1)),i(I,{code:e(J),lang:"sh"},null,8,["code"])]),t[19]||(t[19]=d("p",{class:"text-xs text-muted"}," The run streams into the Local runs tray and keeps going while you browse. Results are reported by the folder's own Playwright config — with the Piwi reporter set up, the new run appears in this app automatically. ",-1))],64)):(_(),E("div",Be,[d("p",Te," Link "+R(p.projectLabel||"this project")+" to its local checkout — the folder that contains these tests. Piwi runs that folder's own Playwright with the app's bundled Node, so nothing else needs to be installed. ",1),e(r)&&!e(r).exists?(_(),D(B,{key:0,color:"warning",variant:"soft",icon:"i-lucide-folder-x",title:"The linked folder no longer exists",description:e(r).path},null,8,["description"])):U("",!0),i(C,{icon:"i-lucide-folder-plus",loading:e(h),onClick:e(b)},{default:u(()=>[...t[8]||(t[8]=[v("Choose folder…",-1)])]),_:1},8,["loading","onClick"])]))])]),footer:u(()=>[d("div",Ze,[i(C,{color:"neutral",variant:"ghost",onClick:t[4]||(t[4]=g=>n.value=!1)},{default:u(()=>[...t[20]||(t[20]=[v("Close",-1)])]),_:1}),i(C,{icon:"i-lucide-play",disabled:!e(L)||e(M).length===0||e(h),onClick:t[5]||(t[5]=g=>P())},{default:u(()=>[...t[21]||(t[21]=[v("Run",-1)])]),_:1},8,["disabled"])])]),_:1},8,["open"])}}}),tt=Object.assign(et,{__name:"DesktopRunLocallyModal"}),ot={key:0,class:"inline-flex"},lt={key:0,class:"absolute -top-1 -right-1 size-2 rounded-full bg-warning"},nt=8e3,st=ee({__name:"DesktopRunLocallyButton",props:{projectId:{},projectLabel:{},cases:{},label:{},presetOptions:{}},setup(p){const o=p,n=G(!1);we(()=>{n.value=!!Z()});const c=oe(),{link:r,busy:h,pickAndLink:b,refresh:j}=ne(()=>o.projectId),{missingSpecs:y,wrongFolder:$,checkSpecs:H}=se(()=>o.projectId,()=>o.cases),{playwrightMissing:A,checkEnv:L}=ae(()=>o.projectId),{copy:f}=Ve(),x=G(!1);Q(x,l=>{l||j()});const F=a(()=>n.value&&o.projectId!=null&&o.cases.length>0),k=a(()=>!!r.value?.exists),O=a(()=>!k.value||$.value||A.value);Q([n,()=>r.value?.path,k],()=>{n.value&&(H(k.value),L())});const w=a(()=>({...c.getProjectOptions(o.projectId??""),...o.presetOptions})),N=a(()=>c.latestForProject(o.projectId)),M=a(()=>N.value?.status==="running"),J=je({interval:1e3}),P=a(()=>{const l=N.value;return!l||!l.finishedAt||l.status!=="passed"&&l.status!=="failed"?null:J.value-l.finishedAt<nt?l:null}),m=a(()=>`${o.cases.length} test${o.cases.length===1?"":"s"}`),t=a(()=>W.find(l=>l.value===w.value.runMode)?.label??"Headless"),S=a(()=>{const l=N.value;if(l&&M.value)return{label:Ue(l),color:"info",icon:void 0,tooltip:"A local run is going — view its output"};if(P.value){const s=P.value.status==="passed";return{label:s?"Passed":P.value.exitCode!=null?`Failed (exit ${P.value.exitCode})`:"Failed",color:s?"success":"error",icon:s?"i-lucide-check":"i-lucide-x",tooltip:"View the run output"}}return k.value?{label:o.label??"Run locally",color:"warning",icon:"i-lucide-monitor-play",tooltip:`Run ${m.value} on this machine · ${t.value} · in ${r.value?.path}`}:{label:o.label??"Run locally",color:"warning",icon:"i-lucide-monitor-play",tooltip:"Link this project to its local checkout to run tests here"}});function V(l){o.projectId!=null&&c.startRun({projectId:o.projectId,projectLabel:o.projectLabel,cases:o.cases,options:{...o.presetOptions,...l},persistOptions:o.presetOptions?!1:void 0})}function B(){if(M.value||P.value){c.trayOpen.value=!0;return}if(O.value){x.value=!0;return}V()}function C(l){o.projectId!=null&&c.saveProjectOptions(o.projectId,l)}const q=[1,5,10,20,50,100],z=a(()=>{const l=[];return k.value?$.value?l.push([{type:"label",label:"Tests not found in the linked folder"},{label:"Choose the right folder…",icon:"i-lucide-folder-search",onSelect:()=>{b()}},{label:"Run anyway",icon:"i-lucide-play",onSelect:()=>V()}]):A.value&&l.push([{type:"label",label:"No Playwright found in the linked folder"},{label:"Re-check after installing",icon:"i-lucide-refresh-cw",onSelect:s=>{s.preventDefault(),L()}},{label:"Run anyway",icon:"i-lucide-play",onSelect:()=>V()}]):l.push([{type:"label",label:r.value?"The linked folder is missing":"No folder linked yet"},{label:"Choose folder…",icon:"i-lucide-folder-plus",onSelect:()=>{b()}}]),k.value&&(l.push([{type:"label",label:`Run ${m.value}`},...W.map(s=>({label:s.label,icon:s.icon,type:"checkbox",checked:w.value.runMode===s.value,disabled:M.value,onSelect:()=>V({runMode:s.value})}))]),l.push([{label:"Record trace",icon:"i-lucide-film",type:"checkbox",checked:w.value.trace,onSelect:s=>{s.preventDefault(),C({trace:!w.value.trace})}},{label:`Repeat each (× ${w.value.repeatEach})`,icon:"i-lucide-repeat",children:q.map(s=>({label:`× ${s}`,type:"checkbox",checked:w.value.repeatEach===s,onSelect:I=>{I.preventDefault(),C({repeatEach:s})}}))},{label:"Select tests by",icon:"i-lucide-list-filter",children:le.map(s=>({label:s.label,type:"checkbox",checked:w.value.mode===s.value,onSelect:I=>{I.preventDefault(),C({mode:s.value})}}))}]),l.push([{label:"Run with options…",icon:"i-lucide-sliders-horizontal",onSelect:()=>x.value=!0},{label:"Copy as command",icon:"i-lucide-clipboard",onSelect:()=>{f(Oe(o.cases,{mode:w.value.mode}),{toast:"Command copied"})}}])),l.push([{label:c.activeCount.value>0?`Local runs (${c.activeCount.value} active)`:"Local runs",icon:"i-lucide-terminal",onSelect:()=>c.trayOpen.value=!0}]),k.value&&!$.value&&y.value.length>0&&l[l.length-1].unshift({type:"label",label:`${y.value.length} spec${y.value.length===1?"":"s"} not in the linked folder`}),k.value&&l.push([{type:"label",label:r.value.path,class:"font-mono text-[11px] break-all font-normal"},{label:"Change linked folder…",icon:"i-lucide-folder-search",onSelect:()=>{b()}}]),l});return(l,s)=>{const I=te,K=Re,g=Ce,ie=De,ce=tt;return e(F)?(_(),E("span",ot,[i(ie,{size:"xs"},{default:u(()=>[i(K,{text:e(S).tooltip},{default:u(()=>[i(I,{size:"xs",color:e(S).color,variant:"subtle",icon:e(S).icon,loading:e(M),disabled:e(h),onClick:B},{default:u(()=>[v(R(e(S).label),1)]),_:1},8,["color","icon","loading","disabled"])]),_:1},8,["text"]),i(g,{items:e(z),content:{align:"end"},ui:{content:"min-w-56"}},{default:u(()=>[i(I,{size:"xs",color:e(S).color,variant:"subtle",icon:"i-lucide-chevron-down","aria-label":"Run options",class:"relative"},{default:u(()=>[e(O)?(_(),E("span",lt)):U("",!0)]),_:1},8,["color"])]),_:1},8,["items"])]),_:1}),i(ce,{open:e(x),"onUpdate:open":s[0]||(s[0]=re=>T(x)?x.value=re:null),"project-id":p.projectId,"project-label":p.projectLabel,cases:p.cases},null,8,["open","project-id","project-label","cases"])])):U("",!0)}}}),gt=Object.assign(st,{__name:"DesktopRunLocallyButton"});export{gt as _};