@piwitests/server 0.16.0 → 0.18.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 (208) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{Dz55UR7w.js → 36cXPVrY.js} +1 -1
  3. package/.output/public/_nuxt/{IFqRT_xJ.js → 87SGk1nu.js} +1 -1
  4. package/.output/public/_nuxt/{bAfTAihV.js → AjuKBlzz.js} +1 -1
  5. package/.output/public/_nuxt/{1AB111xL.js → B1CB30tg.js} +1 -1
  6. package/.output/public/_nuxt/{Br2K9yi_.js → B6IHiVa1.js} +1 -1
  7. package/.output/public/_nuxt/{iwD5atI2.js → B6rt3IcG.js} +1 -1
  8. package/.output/public/_nuxt/{Bvfmwzgw.js → BAaSmp8J.js} +1 -1
  9. package/.output/public/_nuxt/{DRtTLQri.js → BAkJhSAW.js} +1 -1
  10. package/.output/public/_nuxt/{DuBBqqbF.js → BCArQk0c.js} +1 -1
  11. package/.output/public/_nuxt/{BV83yObd.js → BEB2Mv6B.js} +1 -1
  12. package/.output/public/_nuxt/BFjmLXYo.js +8 -0
  13. package/.output/public/_nuxt/BJltXwHg.js +1 -0
  14. package/.output/public/_nuxt/{CuYYdFBL.js → BKaU95es.js} +1 -1
  15. package/.output/public/_nuxt/{2xvsvjLO.js → BReNbog6.js} +1 -1
  16. package/.output/public/_nuxt/{DJS3Bf50.js → BTYiG93l.js} +1 -1
  17. package/.output/public/_nuxt/{k-z_VVTK.js → BUMZHDRC.js} +1 -1
  18. package/.output/public/_nuxt/BVDBIVAQ.js +1 -0
  19. package/.output/public/_nuxt/{JCFZINev.js → B_aSGB8S.js} +1 -1
  20. package/.output/public/_nuxt/{e1zUTrBb.js → BaDv5D7A.js} +1 -1
  21. package/.output/public/_nuxt/{DjZKuUMz.js → BdHdHyop.js} +1 -1
  22. package/.output/public/_nuxt/{CJFqA_QW.js → BfoG8R5a.js} +1 -1
  23. package/.output/public/_nuxt/{CgoAUz76.js → Bi3i470l.js} +1 -1
  24. package/.output/public/_nuxt/Bi9DO8jm.js +1 -0
  25. package/.output/public/_nuxt/{BS0gKVuF.js → BiX7c2qU.js} +1 -1
  26. package/.output/public/_nuxt/{-KQO1A4C.js → BoC6qaRF.js} +4 -4
  27. package/.output/public/_nuxt/{CSYJwpXG.js → BsDB_eCd.js} +1 -1
  28. package/.output/public/_nuxt/{B43OGXzV.js → BuuvTH9e.js} +1 -1
  29. package/.output/public/_nuxt/{BRKa6EQR.js → C11lmBd4.js} +1 -1
  30. package/.output/public/_nuxt/C4AfzZER.js +47 -0
  31. package/.output/public/_nuxt/{BBdfPriC.js → C7ZVzS0K.js} +1 -1
  32. package/.output/public/_nuxt/{CQeMb57w.js → C8cz5feG.js} +1 -1
  33. package/.output/public/_nuxt/{Dzz9_Z0u.js → C9EpbPNU.js} +1 -1
  34. package/.output/public/_nuxt/{qzAP_nm7.js → C9ahP7km.js} +1 -1
  35. package/.output/public/_nuxt/{N3pCB6-m.js → CBEM3L1q.js} +1 -1
  36. package/.output/public/_nuxt/{C1K3r_fc.js → CCsl9MOZ.js} +1 -1
  37. package/.output/public/_nuxt/{BpceIssd.js → CCw3Tx4S.js} +1 -1
  38. package/.output/public/_nuxt/{B3NbDoBP.js → CGq9qR-0.js} +1 -1
  39. package/.output/public/_nuxt/{BoRFLTAO.js → CLdGRzLL.js} +1 -1
  40. package/.output/public/_nuxt/{BZekCf_x.js → CP0vUzbd.js} +1 -1
  41. package/.output/public/_nuxt/CPZ5wygb.js +1 -0
  42. package/.output/public/_nuxt/{CTdvGdc2.js → CRcjGmf7.js} +1 -1
  43. package/.output/public/_nuxt/{B2lYFco4.js → CRpbGS75.js} +1 -1
  44. package/.output/public/_nuxt/CTgM5Fke.js +2 -0
  45. package/.output/public/_nuxt/{DcCNnjKl.js → CU3W9YrI.js} +1 -1
  46. package/.output/public/_nuxt/{BIksQZfR.js → CUDeMcEK.js} +1 -1
  47. package/.output/public/_nuxt/{BpNqHxg2.js → CYIR2GbL.js} +1 -1
  48. package/.output/public/_nuxt/{ze9-Ill2.js → Ccit_CX1.js} +1 -1
  49. package/.output/public/_nuxt/CiPH-swI.js +1 -0
  50. package/.output/public/_nuxt/{BkDfdHFm.js → ClIKZ4qY.js} +1 -1
  51. package/.output/public/_nuxt/{BVW5qIDP.js → ClVRQpP_.js} +1 -1
  52. package/.output/public/_nuxt/CmbjAoQu.js +1 -0
  53. package/.output/public/_nuxt/Cx65B3c3.js +1 -0
  54. package/.output/public/_nuxt/{B3sNtVnf.js → D1ttGJfs.js} +1 -1
  55. package/.output/public/_nuxt/{DuMv-ugy.js → D3MWm6JP.js} +1 -1
  56. package/.output/public/_nuxt/{BPKwYP2Q.js → D3SYPlEB.js} +28 -28
  57. package/.output/public/_nuxt/{BGYbnqA7.js → D4SFgXAf.js} +1 -1
  58. package/.output/public/_nuxt/D51_cB9D.js +1 -0
  59. package/.output/public/_nuxt/{DbeHHTk-.js → D8YZvjas.js} +1 -1
  60. package/.output/public/_nuxt/{DgYM3eyi.js → DB3ljns7.js} +1 -1
  61. package/.output/public/_nuxt/{Bzl2H_vl.js → DC51KKt4.js} +1 -1
  62. package/.output/public/_nuxt/{BR9H8k-L.js → DCMFuzDI.js} +1 -1
  63. package/.output/public/_nuxt/{mfzslNx_.js → DIA_NAIv.js} +1 -1
  64. package/.output/public/_nuxt/{CKB_doYB.js → DM_YaJgJ.js} +1 -1
  65. package/.output/public/_nuxt/{BuZOa2M3.js → DOr_4nln.js} +2 -2
  66. package/.output/public/_nuxt/{oNq5pd3r.js → DRE6Aqqp.js} +1 -1
  67. package/.output/public/_nuxt/{CMYQpoOI.js → DVgMaBxD.js} +1 -1
  68. package/.output/public/_nuxt/{C3r_Sv1p.js → DaewB_zT.js} +1 -1
  69. package/.output/public/_nuxt/{DdbrJwT-.js → Db_-yjYg.js} +1 -1
  70. package/.output/public/_nuxt/{CpO-ABDW.js → Dbg8z684.js} +1 -1
  71. package/.output/public/_nuxt/{DOuoR2Pk.js → DcfRfTaA.js} +1 -1
  72. package/.output/public/_nuxt/{BpIsBP5g.js → Dm1_3W9g.js} +1 -1
  73. package/.output/public/_nuxt/{ABGJk0pu.js → DnThe2U0.js} +1 -1
  74. package/.output/public/_nuxt/{C38aZbFJ.js → Do6zIWQf.js} +1 -1
  75. package/.output/public/_nuxt/{B7yG1G_l.js → DoFSKAvY.js} +1 -1
  76. package/.output/public/_nuxt/{C8RBRg7I.js → DoYgYLOd.js} +1 -1
  77. package/.output/public/_nuxt/{BIf1R_fu.js → Doul3p1_.js} +1 -1
  78. package/.output/public/_nuxt/{BQrSEuzu.js → DraETso1.js} +1 -1
  79. package/.output/public/_nuxt/{DszOHBMG.js → Dwp3GkV-.js} +1 -1
  80. package/.output/public/_nuxt/{DqnyWaSQ.js → Dy4TloG3.js} +1 -1
  81. package/.output/public/_nuxt/{DfcAIbcX.js → EltzgiyS.js} +1 -1
  82. package/.output/public/_nuxt/{D2jhe9JK.js → HTQtMbWb.js} +1 -1
  83. package/.output/public/_nuxt/{xUrLy-Zn.js → KYucVFu7.js} +1 -1
  84. package/.output/public/_nuxt/TBDx0s9p.js +3 -0
  85. package/.output/public/_nuxt/{BdFEUAlx.js → Tt5LX5Y-.js} +1 -1
  86. package/.output/public/_nuxt/{d5ZB3uxF.js → Vnfkr1pJ.js} +1 -1
  87. package/.output/public/_nuxt/{DIkLLyR6.js → WAaPPk0g.js} +2 -2
  88. package/.output/public/_nuxt/builds/latest.json +1 -1
  89. package/.output/public/_nuxt/builds/meta/ed1db2e5-9865-4231-9605-4edd5272e164.json +1 -0
  90. package/.output/public/_nuxt/{DhA17dqR.js → empGC_x-.js} +1 -1
  91. package/.output/public/_nuxt/entry.ChQMshd4.css +1 -0
  92. package/.output/public/_nuxt/{nCjfWTGm.js → l0QnzFNM.js} +1 -1
  93. package/.output/public/_nuxt/{l0gdGdar.js → lowCGL2S.js} +1 -1
  94. package/.output/public/_nuxt/{DL20rwkA.js → mlAADjK3.js} +1 -1
  95. package/.output/public/_nuxt/{D33On6AX.js → n-QWmQgc.js} +1 -1
  96. package/.output/public/_nuxt/{CoHGrO41.js → oFIS9u6t.js} +2 -2
  97. package/.output/public/_nuxt/{BY4oA2IH.js → oWY3I9uX.js} +1 -1
  98. package/.output/public/_nuxt/{D4VpoHDP.js → q0DPzLKN.js} +1 -1
  99. package/.output/public/_nuxt/{uKeO2H7F.js → quV6tp4n.js} +1 -1
  100. package/.output/public/_nuxt/{B33X4zrC.js → riEUDnED.js} +1 -1
  101. package/.output/public/_nuxt/{mGJLLqyN.js → rm7OkgDG.js} +1 -1
  102. package/.output/public/_nuxt/uaqMzXqE.js +5 -0
  103. package/.output/public/_nuxt/{DAWn6Z7h.js → va1mwSm9.js} +1 -1
  104. package/.output/public/_nuxt/{DCpmQ47_.js → wGpfdK6o.js} +1 -1
  105. package/.output/public/_nuxt/{Bb64FEFL.js → wQZj69OY.js} +1 -1
  106. package/.output/public/_nuxt/wgcgHmRR.js +1 -0
  107. package/.output/public/sw.js +1 -1
  108. package/.output/server/chunks/build/{Checkbox-7ZiMz60w.mjs → Checkbox-cVOSIY93.mjs} +2 -2
  109. package/.output/server/chunks/build/Checkbox-cVOSIY93.mjs.map +1 -0
  110. package/.output/server/chunks/build/{CiEnvCard-DNxBVvx4.mjs → CiEnvCard-DXPOhdSG.mjs} +2 -2
  111. package/.output/server/chunks/build/CiEnvCard-DXPOhdSG.mjs.map +1 -0
  112. package/.output/server/chunks/build/DataLocationCard-D6xSOrme.mjs +102 -0
  113. package/.output/server/chunks/build/DataLocationCard-D6xSOrme.mjs.map +1 -0
  114. package/.output/server/chunks/build/{ProjectTestCasesTable-9418EI8J.mjs → ProjectTestCasesTable-9Ia825h8.mjs} +2 -2
  115. package/.output/server/chunks/build/ProjectTestCasesTable-9Ia825h8.mjs.map +1 -0
  116. package/.output/server/chunks/build/{Select-COwTIQlV.mjs → Select-ppPz926C.mjs} +3 -2
  117. package/.output/server/chunks/build/Select-ppPz926C.mjs.map +1 -0
  118. package/.output/server/chunks/build/{SelectMenu-BkyAHFCM.mjs → SelectMenu-799c_Ils.mjs} +2 -2
  119. package/.output/server/chunks/build/{SelectMenu-BkyAHFCM.mjs.map → SelectMenu-799c_Ils.mjs.map} +1 -1
  120. package/.output/server/chunks/build/{Switch-htSKgC38.mjs → Switch-xQQ3_ME1.mjs} +2 -2
  121. package/.output/server/chunks/build/Switch-xQQ3_ME1.mjs.map +1 -0
  122. package/.output/server/chunks/build/{_id_-CnwAyvvS.mjs → _id_-B2yirIuA.mjs} +5 -4
  123. package/.output/server/chunks/build/{_id_-CnwAyvvS.mjs.map → _id_-B2yirIuA.mjs.map} +1 -1
  124. package/.output/server/chunks/build/{_id_-BDqvTM9D.mjs → _id_-B4V5fop6.mjs} +5 -4
  125. package/.output/server/chunks/build/{_id_-BDqvTM9D.mjs.map → _id_-B4V5fop6.mjs.map} +1 -1
  126. package/.output/server/chunks/build/{_id_-Dy67M9Dj.mjs → _id_-bWcP2xFl.mjs} +8 -7
  127. package/.output/server/chunks/build/{_id_-Dy67M9Dj.mjs.map → _id_-bWcP2xFl.mjs.map} +1 -1
  128. package/.output/server/chunks/build/about-CoJjvUwM.mjs +733 -0
  129. package/.output/server/chunks/build/about-CoJjvUwM.mjs.map +1 -0
  130. package/.output/server/chunks/build/{ai-V3YOh3yx.mjs → ai-7jdaPOmj.mjs} +6 -5
  131. package/.output/server/chunks/build/{ai-V3YOh3yx.mjs.map → ai-7jdaPOmj.mjs.map} +1 -1
  132. package/.output/server/chunks/build/{analytics-BBlAEmj5.mjs → analytics-B276WPeU.mjs} +7 -6
  133. package/.output/server/chunks/build/{analytics-BBlAEmj5.mjs.map → analytics-B276WPeU.mjs.map} +1 -1
  134. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  135. package/.output/server/chunks/build/{default-BfMirIgG.mjs → default-BSzdkM_L.mjs} +9 -7
  136. package/.output/server/chunks/build/default-BSzdkM_L.mjs.map +1 -0
  137. package/.output/server/chunks/build/{docs-DtNcJCyb.mjs → docs-BN_x1OW3.mjs} +53 -8
  138. package/.output/server/chunks/build/{docs-DtNcJCyb.mjs.map → docs-BN_x1OW3.mjs.map} +1 -1
  139. package/.output/server/chunks/build/{edit-Dsf11mL5.mjs → edit-C9Z7oZeu.mjs} +5 -4
  140. package/.output/server/chunks/build/edit-C9Z7oZeu.mjs.map +1 -0
  141. package/.output/server/chunks/build/handleAndDispatchCustomEvent-Bk_AVSSo.mjs +13 -0
  142. package/.output/server/chunks/build/handleAndDispatchCustomEvent-Bk_AVSSo.mjs.map +1 -0
  143. package/.output/server/chunks/build/{index-DzEgjHlB.mjs → index-BK9PTRpd.mjs} +24 -8
  144. package/.output/server/chunks/build/{index-DzEgjHlB.mjs.map → index-BK9PTRpd.mjs.map} +1 -1
  145. package/.output/server/chunks/build/{index-BgpEKTSq.mjs → index-DVUtBexc.mjs} +9 -8
  146. package/.output/server/chunks/build/{index-BgpEKTSq.mjs.map → index-DVUtBexc.mjs.map} +1 -1
  147. package/.output/server/chunks/build/{mcp-CXwa3xU3.mjs → mcp-_o6cMS6m.mjs} +347 -158
  148. package/.output/server/chunks/build/mcp-_o6cMS6m.mjs.map +1 -0
  149. package/.output/server/chunks/build/{notifications-hJj8tbAT.mjs → notifications-Dzm9c0u_.mjs} +4 -3
  150. package/.output/server/chunks/build/notifications-Dzm9c0u_.mjs.map +1 -0
  151. package/.output/server/chunks/build/server.mjs +17 -17
  152. package/.output/server/chunks/build/{settings-metadata-Cp0dx0vm.mjs → settings-metadata-B0wo5R-W.mjs} +3 -1
  153. package/.output/server/chunks/build/settings-metadata-B0wo5R-W.mjs.map +1 -0
  154. package/.output/server/chunks/build/{settings-Ci_7EXYQ.mjs → settings-pNyPBXVa.mjs} +4 -3
  155. package/.output/server/chunks/build/settings-pNyPBXVa.mjs.map +1 -0
  156. package/.output/server/chunks/build/{storage-CM-Pd-9E.mjs → storage-XelzuyPy.mjs} +16 -182
  157. package/.output/server/chunks/build/storage-XelzuyPy.mjs.map +1 -0
  158. package/.output/server/chunks/build/{test-cases-DkGQB027.mjs → test-cases-pmOxi-AN.mjs} +5 -4
  159. package/.output/server/chunks/build/test-cases-pmOxi-AN.mjs.map +1 -0
  160. package/.output/server/chunks/build/useFormControl-BLpq1s4O.mjs +9 -0
  161. package/.output/server/chunks/build/useFormControl-BLpq1s4O.mjs.map +1 -0
  162. package/.output/server/chunks/build/useIsDesktop-BS13spVj.mjs +9 -0
  163. package/.output/server/chunks/build/useIsDesktop-BS13spVj.mjs.map +1 -0
  164. package/.output/server/chunks/build/{useSettingsNav-D2knPCqF.mjs → useSettingsNav-NjI2seBy.mjs} +5 -3
  165. package/.output/server/chunks/build/useSettingsNav-NjI2seBy.mjs.map +1 -0
  166. package/.output/server/chunks/build/useTauri-lRT8zkLv.mjs +7 -0
  167. package/.output/server/chunks/build/useTauri-lRT8zkLv.mjs.map +1 -0
  168. package/.output/server/chunks/build/{virtualizer-0-UBy7xl.mjs → virtualizer-ZaqK4guJ.mjs} +3 -2
  169. package/.output/server/chunks/build/virtualizer-ZaqK4guJ.mjs.map +1 -0
  170. package/.output/server/chunks/build/{wasted-time-L4kBV5Nh.mjs → wasted-time-CguAF9zc.mjs} +2 -2
  171. package/.output/server/chunks/build/wasted-time-CguAF9zc.mjs.map +1 -0
  172. package/.output/server/chunks/nitro/nitro.mjs +664 -649
  173. package/.output/server/package.json +1 -1
  174. package/package.json +1 -1
  175. package/.output/public/_nuxt/B6Jp7fpa.js +0 -46
  176. package/.output/public/_nuxt/BP_SWi7S.js +0 -1
  177. package/.output/public/_nuxt/Bf62wdzp.js +0 -1
  178. package/.output/public/_nuxt/C219JuBV.js +0 -1
  179. package/.output/public/_nuxt/CCRRqXez.js +0 -1
  180. package/.output/public/_nuxt/CX1dcT4v.js +0 -1
  181. package/.output/public/_nuxt/CdME81ij.js +0 -2
  182. package/.output/public/_nuxt/Dsk4Ic18.js +0 -7
  183. package/.output/public/_nuxt/HoKG9cc2.js +0 -1
  184. package/.output/public/_nuxt/Kc7La4sL.js +0 -5
  185. package/.output/public/_nuxt/WctJXszi.js +0 -3
  186. package/.output/public/_nuxt/builds/meta/5182c9fb-56a6-4df2-9685-4020a08ce7a5.json +0 -1
  187. package/.output/public/_nuxt/entry.BsmKRJzR.css +0 -1
  188. package/.output/public/_nuxt/jIF87ALb.js +0 -1
  189. package/.output/server/chunks/build/Checkbox-7ZiMz60w.mjs.map +0 -1
  190. package/.output/server/chunks/build/CiEnvCard-DNxBVvx4.mjs.map +0 -1
  191. package/.output/server/chunks/build/ProjectTestCasesTable-9418EI8J.mjs.map +0 -1
  192. package/.output/server/chunks/build/Select-COwTIQlV.mjs.map +0 -1
  193. package/.output/server/chunks/build/Switch-htSKgC38.mjs.map +0 -1
  194. package/.output/server/chunks/build/about-FB9PYAHK.mjs +0 -313
  195. package/.output/server/chunks/build/about-FB9PYAHK.mjs.map +0 -1
  196. package/.output/server/chunks/build/default-BfMirIgG.mjs.map +0 -1
  197. package/.output/server/chunks/build/edit-Dsf11mL5.mjs.map +0 -1
  198. package/.output/server/chunks/build/mcp-CXwa3xU3.mjs.map +0 -1
  199. package/.output/server/chunks/build/notifications-hJj8tbAT.mjs.map +0 -1
  200. package/.output/server/chunks/build/settings-Ci_7EXYQ.mjs.map +0 -1
  201. package/.output/server/chunks/build/settings-metadata-Cp0dx0vm.mjs.map +0 -1
  202. package/.output/server/chunks/build/storage-CM-Pd-9E.mjs.map +0 -1
  203. package/.output/server/chunks/build/test-cases-DkGQB027.mjs.map +0 -1
  204. package/.output/server/chunks/build/useFormControl-DFTjniPG.mjs +0 -19
  205. package/.output/server/chunks/build/useFormControl-DFTjniPG.mjs.map +0 -1
  206. package/.output/server/chunks/build/useSettingsNav-D2knPCqF.mjs.map +0 -1
  207. package/.output/server/chunks/build/virtualizer-0-UBy7xl.mjs.map +0 -1
  208. package/.output/server/chunks/build/wasted-time-L4kBV5Nh.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@piwitests/dashboard-prod",
3
- "version": "0.16.0",
3
+ "version": "0.18.0",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@piwitests/server",
3
- "version": "0.16.0",
3
+ "version": "0.18.0",
4
4
  "description": "Self-hosted Piwi Dashboard server — run with npx @piwitests/server",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,46 +0,0 @@
1
- import{_ as ke,a as Re}from"./Bvfmwzgw.js";import{d as Q,o as n,c as d,f as _,g as u,i as e,j as l,v as X,p as F,t as c,l as se,k as t,q as y,m,h as f,_ as Z,x as oe,F as D,y as W,r as J,C as we,s as $e,K as Ce,e as Te,aa as Fe}from"./BPKwYP2Q.js";import{_ as je}from"./C3r_Sv1p.js";import{_ as Se}from"./BGYbnqA7.js";import{_ as Pe,a as ze}from"./IFqRT_xJ.js";import{_ as Ie}from"./CKB_doYB.js";import{_ as Ue}from"./l0gdGdar.js";import{_ as Ne}from"./Br2K9yi_.js";import{_ as Ve}from"./BVW5qIDP.js";import{_ as Ee}from"./BQrSEuzu.js";import{_ as ie}from"./D2jhe9JK.js";import{_ as Ae}from"./BuZOa2M3.js";import{_ as De}from"./xUrLy-Zn.js";import{_ as le}from"./DhA17dqR.js";import{f as ne,h as ue,B as M,e as Oe}from"./k-z_VVTK.js";import{a as Be,d as Le,_ as We}from"./CQeMb57w.js";import{_ as He}from"./CoHGrO41.js";import{_ as de}from"./B7yG1G_l.js";import{u as re}from"./BIf1R_fu.js";import{u as Me}from"./C8RBRg7I.js";import{u as Ke}from"./iwD5atI2.js";import"./CpO-ABDW.js";import"./jIF87ALb.js";import"./mGJLLqyN.js";import"./d5ZB3uxF.js";import"./DAWn6Z7h.js";import"./C219JuBV.js";import"./C38aZbFJ.js";import"./DRtTLQri.js";import"./r3SBLxtE.js";import"./DuMv-ugy.js";const Ge={class:"flex items-center gap-3 flex-wrap"},Ye={class:"flex items-center gap-1.5"},qe={key:0,class:"text-gray-500"},Je={key:1},Qe={key:2},Xe={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"},Ze=Q({__name:"HomeFilters",props:{modelValue:{},availableEnvironments:{}},emits:["update:modelValue"],setup(O,{emit:w}){const $=O,v=w,U=f({get:()=>$.modelValue.environments,set:P=>v("update:modelValue",{...$.modelValue,environments:P})}),T=f({get:()=>$.modelValue.fullRunsOnly,set:P=>v("update:modelValue",{...$.modelValue,fullRunsOnly:P})}),E=f(()=>$.modelValue.environments.length>0||!$.modelValue.fullRunsOnly);function j(){v("update:modelValue",{environments:[],fullRunsOnly:!0})}return(P,b)=>{const N=X,a=je,s=Se,x=Z;return n(),d("div",Ge,[O.availableEnvironments.length>0?(n(),_(a,{key:0,modelValue:t(U),"onUpdate:modelValue":b[0]||(b[0]=g=>se(U)?U.value=g:null),items:O.availableEnvironments,multiple:"",placeholder:"All environments",size:"sm",class:"min-w-[160px]"},{default:u(({modelValue:g})=>[e("div",Ye,[l(N,{name:"i-lucide-server",class:F(["size-3.5 shrink-0",g.length?"text-primary":"text-gray-400"])},null,8,["class"]),g.length?g.length===1?(n(),d("span",Je,c(g[0]),1)):(n(),d("span",Qe,c(g.length)+" environments",1)):(n(),d("span",qe,"All environments"))])]),_:1},8,["modelValue","items"])):y("",!0),e("label",Xe,[l(s,{modelValue:t(T),"onUpdate:modelValue":b[1]||(b[1]=g=>se(T)?T.value=g:null),size:"sm"},null,8,["modelValue"]),b[2]||(b[2]=m(" Full runs only ",-1))]),t(E)?(n(),_(x,{key:1,variant:"ghost",size:"sm",color:"neutral",icon:"i-lucide-x",onClick:j},{default:u(()=>[...b[3]||(b[3]=[m(" Reset ",-1)])]),_:1})):y("",!0)])}}}),et=Object.assign(Ze,{__name:"HomeFilters"}),tt={class:"hidden md:block overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0"},st={key:0,class:"flex flex-wrap gap-1 mt-0.5"},nt={class:"w-40"},rt={key:1,class:"text-gray-400 text-sm"},at={class:"text-xs text-gray-500 dark:text-gray-400"},ot={key:0},it={key:1,class:"text-gray-400 text-sm"},lt={key:0,class:"tabular-nums text-sm text-gray-600 dark:text-gray-400"},ut={key:1,class:"text-gray-400"},dt={class:"space-y-2 md:hidden"},ct={class:"flex items-start justify-between gap-2"},mt={key:0,class:"flex flex-wrap gap-1"},pt={class:"flex items-center justify-between gap-2 text-xs"},gt={class:"text-gray-500 dark:text-gray-400 truncate"},ft={key:1,class:"text-gray-400"},yt={key:2,class:"shrink-0 tabular-nums text-gray-500 dark:text-gray-400"},_t=Q({__name:"ProjectTrendTable",props:{projects:{},limit:{default:10}},setup(O){const w=O,$={failing:0,flaky:1,passing:2,unknown:3},v=J(!1),U=f(()=>w.projects.length>w.limit),T=f(()=>{const a=[...w.projects].sort((s,x)=>{const g=$[s.tendency]-$[x.tendency];if(g!==0)return g;const V=s.latestFullRun?new Date(s.latestFullRun.startTime).getTime():0;return(x.latestFullRun?new Date(x.latestFullRun.startTime).getTime():0)-V});return v.value?a:a.slice(0,w.limit)});function E(a){return a>=90?"text-green-600 dark:text-green-400":a>=50?"text-yellow-600 dark:text-yellow-400":"text-red-600 dark:text-red-400"}function j(a){switch(a){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 P(a){return a==="unknown"?"Unknown":a.charAt(0).toUpperCase()+a.slice(1)}function b(a){switch(a){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 N=[{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(a,s)=>{const x=Z,g=oe,V=Ve,h=Ee,S=X,z=ie,A=Ae,k=De,K=le;return n(),_(K,{icon:"i-lucide-layout-dashboard",title:"Project health",help:"home.project-health"},{actions:u(()=>[t(U)&&!t(v)?(n(),_(x,{key:0,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-down",onClick:s[0]||(s[0]=r=>v.value=!0)},{default:u(()=>[m(" Show all "+c(w.projects.length),1)]),_:1})):t(v)?(n(),_(x,{key:1,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-up",onClick:s[1]||(s[1]=r=>v.value=!1)},{default:u(()=>[...s[2]||(s[2]=[m(" Show less ",-1)])]),_:1})):y("",!0),l(x,{to:"/projects",variant:"outline",size:"sm"},{default:u(()=>[...s[3]||(s[3]=[m("View all",-1)])]),_:1})]),default:u(()=>[e("div",tt,[l(A,{data:t(T),columns:N,ui:{base:"min-w-[700px]",td:"py-3",th:"py-3 text-xs uppercase tracking-wide"}},{"name-cell":u(({row:r})=>[l(g,{to:`/projects/${r.original.id}`,class:"font-medium text-primary hover:underline truncate block max-w-[200px]"},{default:u(()=>[m(c(r.original.label||r.original.name),1)]),_:2},1032,["to"]),r.original.tags.length>0?(n(),d("div",st,[(n(!0),d(D,null,W(r.original.tags,C=>(n(),_(V,{key:C.id,text:C.text,color:C.color},null,8,["text","color"]))),128))])):y("",!0)]),"recentRuns-cell":u(({row:r})=>[e("div",nt,[l(h,{runs:r.original.recentRuns,height:28},null,8,["runs"])])]),"tendency-cell":u(({row:r})=>[e("span",{class:F(["inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-medium border whitespace-nowrap",j(r.original.tendency)])},[l(S,{name:b(r.original.tendency),class:"size-3 shrink-0"},null,8,["name"]),m(" "+c(P(r.original.tendency)),1)],2)]),"passRate-cell":u(({row:r})=>[r.original.latestFullRun?(n(),d("span",{key:0,class:F(["font-semibold tabular-nums text-sm",E(("passRate"in a?a.passRate:t(M))(r.original.latestFullRun))])},c(("passRate"in a?a.passRate:t(M))(r.original.latestFullRun))+"% ",3)):(n(),d("span",rt,"—"))]),"latestRun-cell":u(({row:r})=>[r.original.latestFullRun?(n(),_(g,{key:0,to:`/test-runs/${r.original.latestFullRun.id}`,class:"flex items-center gap-2 min-w-[140px] hover:opacity-80 transition-opacity"},{default:u(()=>[l(z,{status:r.original.latestFullRun.status},null,8,["status"]),e("div",at,[e("div",null,c(("formatRelativeTime"in a?a.formatRelativeTime:t(ne))(r.original.latestFullRun.startTime)),1),r.original.latestFullRun.duration?(n(),d("div",ot,c(("formatDuration"in a?a.formatDuration:t(ue))(r.original.latestFullRun.duration)),1)):y("",!0)])]),_:2},1032,["to"])):(n(),d("span",it,"No full runs"))]),"tests-cell":u(({row:r})=>[r.original.latestFullRun?(n(),d("span",lt,c(r.original.latestFullRun.passedTests)+"/"+c(r.original.latestFullRun.totalTests),1)):(n(),d("span",ut,"—"))]),_:1},8,["data"])]),e("div",dt,[(n(!0),d(D,null,W(t(T),r=>(n(),d("div",{key:r.id,class:"rounded-lg border border-default p-3 space-y-2"},[e("div",ct,[l(g,{to:`/projects/${r.id}`,class:"font-medium text-primary hover:underline truncate"},{default:u(()=>[m(c(r.label||r.name),1)]),_:2},1032,["to"]),e("span",{class:F(["inline-flex shrink-0 items-center gap-1 rounded border px-1.5 py-0.5 text-xs font-medium whitespace-nowrap",j(r.tendency)])},[l(S,{name:b(r.tendency),class:"size-3 shrink-0"},null,8,["name"]),m(" "+c(P(r.tendency)),1)],2)]),r.tags.length>0?(n(),d("div",mt,[(n(!0),d(D,null,W(r.tags,C=>(n(),_(V,{key:C.id,text:C.text,color:C.color},null,8,["text","color"]))),128))])):y("",!0),l(h,{runs:r.recentRuns,height:24},null,8,["runs"]),e("div",pt,[r.latestFullRun?(n(),_(g,{key:0,to:`/test-runs/${r.latestFullRun.id}`,class:"flex items-center gap-1.5 min-w-0 hover:opacity-80"},{default:u(()=>[l(z,{status:r.latestFullRun.status},null,8,["status"]),e("span",gt,c(("formatRelativeTime"in a?a.formatRelativeTime:t(ne))(r.latestFullRun.startTime)),1)]),_:2},1032,["to"])):(n(),d("span",ft,"No full runs")),r.latestFullRun?(n(),d("span",yt,[e("span",{class:F(["font-semibold",E(("passRate"in a?a.passRate:t(M))(r.latestFullRun))])},c(("passRate"in a?a.passRate:t(M))(r.latestFullRun))+"% ",3),m(" · "+c(r.latestFullRun.passedTests)+"/"+c(r.latestFullRun.totalTests),1)])):y("",!0)])]))),128))]),t(T).length===0?(n(),_(k,{key:0,text:"No projects yet",padded:!1,class:"py-8"})):y("",!0)]),_:1})}}}),xt=Object.assign(_t,{__name:"ProjectTrendTable"}),ht={class:"flex items-center gap-3"},vt={class:"p-2 bg-primary/10 rounded-lg shrink-0"},bt={class:"text-xl font-semibold inline-flex items-center gap-1"},kt={class:"text-sm text-gray-500 dark:text-gray-400"},Rt={class:"flex flex-col items-center shrink-0"},wt={key:1},$t={key:0,class:"w-px flex-1 mt-2 min-h-6 bg-gray-200 dark:bg-gray-700"},Ct={class:"flex-1 pb-6"},Tt={class:"flex items-center gap-2 mb-1"},Ft={class:"font-medium"},jt={class:"text-sm text-gray-600 dark:text-gray-400 mb-3"},St={class:"border-t border-gray-200 dark:border-gray-700 pt-4 mt-2"},Pt={key:0,class:"mt-4 space-y-6"},zt={class:"text-sm text-gray-600 dark:text-gray-400 mb-3"},It={class:"flex items-center justify-between text-sm text-gray-500 dark:text-gray-400"},Ut=`// tests/fixtures.ts
2
- import { test as base, expect } from '@playwright/test'
3
- import { piwiFixtures } from '@piwitests/reporter'
4
-
5
- export const test = base.extend(piwiFixtures)
6
- export { expect }`,Nt=`// your test file
7
- import { test, expect } from './fixtures'
8
-
9
- test('homepage loads', async ({ page }) => {
10
- await page.goto('/')
11
- // network requests, web vitals, console errors, and ARIA snapshots
12
- // are captured automatically and appear in the dashboard
13
- })`,Vt=`// tests/fixtures.ts
14
- import { test as base } from '@playwright/test'
15
- import { extendPiwiFixtures } from '@piwitests/reporter'
16
-
17
- export const test = extendPiwiFixtures(base)
18
- export { expect } from '@playwright/test'`,Et=Q({__name:"GetStartedWizard",setup(O){const w=Ce(),$=f(()=>!!w.public.authEnabled),v=J("http://localhost:3000");we(()=>{v.value=window.location.origin});const U=f(()=>$.value?`
19
- apiKey: process.env.PIWI_API_KEY,`:""),T=f(()=>`import { defineConfig } from '@playwright/test'
20
-
21
- export default defineConfig({
22
- reporter: [
23
- ['list'],
24
- ['@piwitests/reporter', {
25
- serverUrl: '${v.value}',
26
- projectName: 'my-project',${U.value}
27
- }],
28
- ],
29
- use: {
30
- trace: 'retain-on-failure',
31
- },
32
- })`),E=f(()=>`import { defineConfig } from '@playwright/test'
33
- import PiwiDashboard from '@piwitests/reporter'
34
-
35
- export default PiwiDashboard.wrapConfig(
36
- defineConfig({
37
- // your existing config
38
- use: {
39
- trace: 'retain-on-failure',
40
- },
41
- }),
42
- {
43
- serverUrl: '${v.value}',
44
- projectName: 'my-project',${U.value}
45
- },
46
- )`),j=f(()=>{const a=[{title:"Start the dashboard",description:"You're already here — the dashboard is running.",done:!0},{title:"Install the reporter",description:"Add the Piwi reporter to your Playwright project.",code:"npm install --save-dev @piwitests/reporter",lang:"bash"}];return $.value&&a.push({title:"Create an API key",description:"Authentication is enabled on this instance, so the reporter needs a key to submit results. Create one, then set it as PIWI_API_KEY in your CI secrets (used by the snippet below).",action:"create-api-key"}),a.push({title:"Configure Playwright",description:"Add the reporter to your playwright.config.ts.",code:T.value,lang:"typescript"},{title:"Run your tests",description:"Results appear in the dashboard automatically. The project is created on first submit.",code:"npx playwright test",lang:"bash"}),a.map((s,x)=>({id:x+1,...s}))}),P=["zero","one","two","three","four","five","six"],b=f(()=>P[j.value.length]??String(j.value.length)),N=J(!1);return(a,s)=>{const x=X,g=We,V=$e,h=Z,S=He,z=Be,A=de;return n(),_(A,null,{header:u(()=>[e("div",ht,[e("div",vt,[l(x,{name:"i-lucide-rocket",class:"size-5 text-primary"})]),e("div",null,[e("h2",bt,[s[1]||(s[1]=m(" Get started in 60 seconds ",-1)),l(g,{topic:"home.get-started"})]),e("p",kt,"Send your first test run in "+c(t(b))+" steps",1)])])]),footer:u(()=>[e("div",It,[e("span",null,[s[18]||(s[18]=m("Need more options? See the ",-1)),l(z,{to:"reporter","no-icon":"",class:"text-primary hover:underline"},{default:u(()=>[...s[17]||(s[17]=[m("full reporter docs",-1)])]),_:1}),s[19]||(s[19]=m(".",-1))]),l(h,{to:t(Le)("demo/"),target:"_blank",variant:"ghost",size:"sm",color:"neutral","trailing-icon":"i-lucide-external-link"},{default:u(()=>[...s[20]||(s[20]=[m(" View demo with sample data ",-1)])]),_:1},8,["to"])])]),default:u(()=>[e("div",null,[(n(!0),d(D,null,W(t(j),(k,K)=>(n(),d("div",{key:k.id,class:"flex gap-4"},[e("div",Rt,[e("div",{class:F(["flex size-8 items-center justify-center rounded-full text-sm font-semibold",k.done?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-primary/10 text-primary"])},[k.done?(n(),_(x,{key:0,name:"i-lucide-check",class:"size-4"})):(n(),d("span",wt,c(k.id),1))],2),K<t(j).length-1?(n(),d("div",$t)):y("",!0)]),e("div",Ct,[e("div",Tt,[e("h3",Ft,c(k.title),1),k.done?(n(),_(V,{key:0,color:"success",variant:"subtle",size:"xs"},{default:u(()=>[...s[2]||(s[2]=[m("Done",-1)])]),_:1})):y("",!0)]),e("p",jt,c(k.description),1),k.action==="create-api-key"?(n(),_(h,{key:0,to:"/settings/users",icon:"i-lucide-key-round",size:"sm",variant:"soft"},{default:u(()=>[...s[3]||(s[3]=[m(" Create an API key ",-1)])]),_:1})):y("",!0),k.code?(n(),_(S,{key:1,code:k.code,lang:k.lang},null,8,["code","lang"])):y("",!0)])]))),128)),e("div",St,[e("button",{class:"flex items-center gap-2 text-sm font-medium text-gray-600 dark:text-gray-300 hover:text-primary dark:hover:text-primary transition-colors w-full text-left",onClick:s[0]||(s[0]=k=>N.value=!t(N))},[l(x,{name:"i-lucide-chevron-right",class:F(["size-4 transition-transform duration-200",t(N)?"rotate-90":""])},null,8,["class"]),s[4]||(s[4]=m(" Go further — simpler config & capture fixtures ",-1))]),t(N)?(n(),d("div",Pt,[e("div",null,[s[5]||(s[5]=e("h4",{class:"font-medium text-sm mb-1"},[m(" Simpler config with "),e("code",{class:"text-primary text-xs"},"wrapConfig")],-1)),s[6]||(s[6]=e("p",{class:"text-sm text-gray-600 dark:text-gray-400 mb-3"},[m(" Instead of manually adding the reporter array entry, "),e("code",{class:"text-xs bg-gray-100 dark:bg-gray-800 px-1 py-0.5 rounded"},"wrapConfig"),m(" auto-injects the reporter and chains the global setup in one call. It also registers the run on the dashboard "),e("em",null,"before"),m(" your "),e("code",{class:"text-xs bg-gray-100 dark:bg-gray-800 px-1 py-0.5 rounded"},"globalSetup"),m(" runs, so the dashboard shows an initializing state during setup. ")],-1)),l(S,{code:t(E),lang:"typescript"},null,8,["code"])]),e("div",null,[s[14]||(s[14]=e("h4",{class:"font-medium text-sm mb-1"},[m(" Capture fixtures — network, Web Vitals, console & locator healing with "),e("code",{class:"text-primary text-xs"},"piwiFixtures")],-1)),e("p",zt,[s[8]||(s[8]=m(" Extend your Playwright ",-1)),s[9]||(s[9]=e("code",{class:"text-xs bg-gray-100 dark:bg-gray-800 px-1 py-0.5 rounded"},"test",-1)),s[10]||(s[10]=m(" with ",-1)),s[11]||(s[11]=e("code",{class:"text-xs bg-gray-100 dark:bg-gray-800 px-1 py-0.5 rounded"},"piwiFixtures",-1)),s[12]||(s[12]=m(" to automatically capture network timing, browser Web Vitals, console errors, ARIA snapshots on failure, and the locator snapshots that power locator healing. See the ",-1)),l(z,{to:"capture-fixtures","no-icon":"",class:"text-primary hover:underline"},{default:u(()=>[...s[7]||(s[7]=[m("capture fixtures guide",-1)])]),_:1}),s[13]||(s[13]=m(". ",-1))]),s[15]||(s[15]=e("p",{class:"text-xs font-semibold uppercase tracking-wide text-gray-400 dark:text-gray-500 mb-2"}," Option A — extend your existing fixtures ",-1)),l(S,{code:Ut,lang:"typescript",class:"mb-3"}),l(S,{code:Nt,lang:"typescript",class:"mb-4"}),s[16]||(s[16]=e("p",{class:"text-xs font-semibold uppercase tracking-wide text-gray-400 dark:text-gray-500 mb-2"}," Option B — one-line extend ",-1)),l(S,{code:Vt,lang:"typescript"})])])):y("",!0)])])]),_:1})}}}),At=Object.assign(Et,{__name:"GetStartedWizard"}),Dt={key:0,class:"p-6"},Ot={key:1,class:"p-6 space-y-8","aria-busy":"true"},Bt={class:"grid grid-cols-1 xl:grid-cols-3 gap-6 items-start"},Lt={class:"xl:col-span-2 space-y-3"},Wt={class:"space-y-3"},Ht={key:2,class:"p-6 space-y-8"},Mt={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"},Kt={class:"flex items-center gap-1.5"},Gt={class:"font-semibold tabular-nums"},Yt={class:"flex items-center gap-1.5"},qt={class:"flex items-center gap-1.5"},Jt={key:0,class:"flex items-center gap-1.5"},Qt={class:"font-semibold tabular-nums"},Xt={class:"flex items-center gap-1.5"},Zt={class:"font-semibold tabular-nums"},es={key:2,class:"grid grid-cols-1 xl:grid-cols-3 gap-6 items-start"},ts={class:"xl:col-span-2"},ss={class:"divide-y divide-gray-100 dark:divide-gray-800 text-sm"},ns={class:"flex-1 min-w-0"},rs={class:"font-medium truncate"},as={class:"text-xs text-gray-400"},os={class:"text-right tabular-nums shrink-0"},is={key:0,class:"text-xs text-gray-400"},ls={key:3,class:"text-center py-12 text-gray-500 dark:text-gray-400"},us={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4"},ds={class:"flex flex-col gap-3 h-full"},cs={class:"p-2 bg-primary/10 rounded-lg w-fit"},ms={class:"text-xs font-semibold uppercase tracking-wide text-primary mb-1"},ps={class:"font-semibold mb-1"},gs={class:"text-sm text-gray-600 dark:text-gray-400"},ae=6,Ks=Q({__name:"index",setup(O){Te({title:"Piwi Dashboard"});const{data:w,error:$,refresh:v,status:U}=re("/api/projects/overview",{lazy:!0,default:()=>[]},"$cnA6-rHww6"),{data:T,error:E,refresh:j}=re("/api/test-runs/recent",{lazy:!0},"$LEgADC56ri");Me(()=>Promise.all([v(),j()]));const P=f(()=>U.value==="pending"&&!w.value?.length),b=f(()=>$.value||E.value);function N(){v(),j()}const a=Ke("piwi-home-filters",{default:()=>({environments:[],fullRunsOnly:!0}),encode:i=>JSON.stringify(i),decode:i=>{try{return i?JSON.parse(i):{environments:[],fullRunsOnly:!0}}catch{return{environments:[],fullRunsOnly:!0}}}}),s=f(()=>{const i=new Set;for(const o of T.value??[])o.environment&&i.add(o.environment);for(const o of w.value??[])for(const R of o.recentRuns)R.environment&&i.add(R.environment);return[...i].sort()});function x(i){return a.value.environments.length===0?!0:!!i&&a.value.environments.includes(i)}const g=f(()=>{let i=T.value??[];return a.value.fullRunsOnly&&(i=i.filter(o=>o.isFullRun)),a.value.environments.length>0&&(i=i.filter(o=>x(o.environment))),i}),V=f(()=>{let i=w.value??[];return a.value.environments.length>0&&(i=i.map(o=>({...o,recentRuns:o.recentRuns.filter(R=>x(R.environment))})).filter(o=>o.recentRuns.length>0)),i}),h=f(()=>{const i=V.value,o=i.length,R=i.filter(I=>I.tendency==="failing").length,H=i.filter(I=>I.tendency==="flaky").length;let B=0,G=0;for(const I of i)I.latestFullRun&&(B+=I.latestFullRun.passedTests,G+=I.latestFullRun.totalTests);const Y=G>0?Math.round(B/G*100):null,te=Date.now()-1440*60*1e3,L=g.value.filter(I=>new Date(I.startTime).getTime()>te).length;return{totalProjects:o,failingNow:R,flakyNow:H,avgPassRate:Y,runs24h:L}}),S=new Set(["running","initialising","finalizing"]),z=J(!1),A=f(()=>[...g.value].sort((o,R)=>{const H=S.has(o.status)?0:1,B=S.has(R.status)?0:1;return H!==B?H-B:new Date(R.startTime).getTime()-new Date(o.startTime).getTime()})),k=f(()=>z.value?A.value:A.value.slice(0,ae)),K=f(()=>A.value.length>ae),r=f(()=>g.value.length>0),C=f(()=>(w.value?.length??0)>0),ee=f(()=>a.value.fullRunsOnly?(T.value??[]).filter(R=>x(R.environment)).filter(R=>!R.isFullRun).length:0);function ce(){a.value={...a.value,fullRunsOnly:!1}}function me(i){const o=M(i);return o>=90?"text-green-600 dark:text-green-400":o>=50?"text-yellow-600 dark:text-yellow-400":"text-red-600 dark:text-red-400"}function pe(i){return S.has(i)?"border-l-blue-400":i==="passed"?"border-l-green-500":i==="failed"||i==="timedout"||i==="interrupted"?"border-l-red-500":"border-l-gray-300 dark:border-l-gray-600"}const ge=[{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(i,o)=>{const R=ke,H=Re,B=et,G=ze,Y=Z,te=Ie,L=Ue,I=Ne,q=X,fe=xt,ye=ie,_e=oe,xe=le,he=At,ve=de,be=Pe;return n(),_(be,{id:"home"},{header:u(()=>[l(G,null,Fe({leading:u(()=>[l(R),l(H,{items:[{label:"Home",icon:"i-lucide-house",to:"/"}]})]),_:2},[t(C)?{name:"trailing",fn:u(()=>[l(B,{modelValue:t(a),"onUpdate:modelValue":o[0]||(o[0]=p=>se(a)?a.value=p:null),"available-environments":t(s)},null,8,["modelValue","available-environments"])]),key:"0"}:void 0]),1024)]),body:u(()=>[t(b)?(n(),d("div",Dt,[l(te,{text:`Couldn't load the dashboard: ${t(Oe)(t(b))}`},{action:u(()=>[l(Y,{size:"sm",color:"neutral",variant:"outline",icon:"i-lucide-refresh-cw",onClick:N},{default:u(()=>[...o[3]||(o[3]=[m(" Retry ",-1)])]),_:1})]),_:1},8,["text"])])):t(P)?(n(),d("div",Ot,[o[4]||(o[4]=e("span",{class:"sr-only",role:"status"},"Loading dashboard…",-1)),l(L,{class:"h-14 w-full rounded-xl"}),e("div",Bt,[e("div",Lt,[l(L,{class:"h-7 w-40"}),l(L,{class:"h-72 w-full rounded-lg"})]),e("div",Wt,[l(L,{class:"h-7 w-32"}),(n(),d(D,null,W(5,p=>l(L,{key:p,class:"h-12 w-full rounded-lg"})),64))])])])):(n(),d("div",Ht,[t(ee)>0?(n(),_(I,{key:0,icon:"i-lucide-info",color:"primary",variant:"subtle",title:t(ee)===1?"1 partial run is hidden":`${t(ee)} 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"])):y("",!0),t(C)?(n(),d("div",Mt,[e("div",Kt,[l(q,{name:"i-lucide-folder",class:"size-4 text-primary shrink-0"}),e("span",Gt,c(t(h).totalProjects),1),o[5]||(o[5]=e("span",{class:"text-gray-500"},"projects",-1))]),e("div",Yt,[e("div",{class:F(["w-2 h-2 rounded-full shrink-0",t(h).failingNow>0?"bg-red-500":"bg-green-500"])},null,2),e("span",{class:F(["font-semibold tabular-nums",t(h).failingNow>0?"text-red-600 dark:text-red-400":""])},c(t(h).failingNow),3),o[6]||(o[6]=e("span",{class:"text-gray-500"},"failing now",-1))]),e("div",qt,[e("div",{class:F(["w-2 h-2 rounded-full shrink-0",t(h).flakyNow>0?"bg-amber-400":"bg-gray-300 dark:bg-gray-600"])},null,2),e("span",{class:F(["font-semibold tabular-nums",t(h).flakyNow>0?"text-amber-600 dark:text-amber-400":""])},c(t(h).flakyNow),3),o[7]||(o[7]=e("span",{class:"text-gray-500"},"flaky",-1))]),t(h).avgPassRate!==null?(n(),d("div",Jt,[l(q,{name:"i-lucide-check-circle",class:"size-4 text-green-500 shrink-0"}),e("span",Qt,c(t(h).avgPassRate)+"%",1),o[8]||(o[8]=e("span",{class:"text-gray-500"},"avg pass rate",-1))])):y("",!0),e("div",Xt,[l(q,{name:"i-lucide-play-circle",class:"size-4 text-primary shrink-0"}),e("span",Zt,c(t(h).runs24h),1),o[9]||(o[9]=e("span",{class:"text-gray-500"},"runs today",-1))])])):y("",!0),t(C)||t(r)?(n(),d("div",es,[e("div",ts,[t(C)?(n(),_(fe,{key:0,projects:t(V)},null,8,["projects"])):y("",!0)]),t(r)?(n(),_(xe,{key:0,icon:"i-lucide-activity",title:"Recent activity"},{actions:u(()=>[t(K)&&!t(z)?(n(),_(Y,{key:0,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-down",onClick:o[1]||(o[1]=p=>z.value=!0)},{default:u(()=>[m(" Show all "+c(t(A).length),1)]),_:1})):t(z)?(n(),_(Y,{key:1,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-up",onClick:o[2]||(o[2]=p=>z.value=!1)},{default:u(()=>[...o[10]||(o[10]=[m(" Show less ",-1)])]),_:1})):y("",!0)]),default:u(()=>[e("div",ss,[(n(!0),d(D,null,W(t(k),p=>(n(),_(_e,{key:p.id,to:`/test-runs/${p.id}`,class:F(["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",pe(p.status)])},{default:u(()=>[l(ye,{status:p.status},null,8,["status"]),e("div",ns,[e("div",rs,c(p.projectLabel||p.projectName),1),e("div",as,"Run #"+c(p.id)+" · "+c(("formatRelativeTime"in i?i.formatRelativeTime:t(ne))(p.startTime)),1)]),e("div",os,[e("div",{class:F(me(p))},c(("passRate"in i?i.passRate:t(M))(p))+"%",3),p.duration?(n(),d("div",is,c(("formatDuration"in i?i.formatDuration:t(ue))(p.duration)),1)):y("",!0)])]),_:2},1032,["to","class"]))),128))])]),_:1})):y("",!0)])):y("",!0),t(C)&&!t(r)&&t(V).length===0?(n(),d("div",ls,[l(q,{name:"i-lucide-filter-x",class:"size-8 mx-auto mb-2 opacity-40"}),o[11]||(o[11]=e("p",null,"No runs match the current filters.",-1))])):y("",!0),t(C)?y("",!0):(n(),d(D,{key:4},[l(he),e("div",us,[(n(),d(D,null,W(ge,p=>l(ve,{key:p.title,class:"flex flex-col"},{default:u(()=>[e("div",ds,[e("div",cs,[l(q,{name:p.icon,class:"size-5 text-primary"},null,8,["name"])]),e("div",null,[e("p",ms,c(p.tagline),1),e("h3",ps,c(p.title),1),e("p",gs,c(p.description),1)])])]),_:2},1024)),64))])],64))]))]),_:1})}}});export{Ks as default};
@@ -1 +0,0 @@
1
- import{d as z,X as ke,W as me,S as P,o as f,f as C,g as h,T as D,k as e,V as K,Y as le,ay as se,r as B,B as he,C as _e,aK as Ve,j as T,U as O,q as V,aA as ue,h as N,G as Be,aL as Te,ax as Se,Q as $e,bR as Le,bi as Z,b5 as ie,bS as Re,at as Ce,a7 as je,bk as Ge,bn as Ue,a$ as Qe,bT as qe,af as Ae,aC as re,c as $,F as j,bG as Xe,bU as Ye,a0 as Je,a1 as Ze,a3 as et,a4 as Ee,a5 as tt,b2 as Me,aG as at,bt as nt,v as W,p as q,aF as X,m as ce,t as ee,ae as oe,s as lt,aI as fe,b0 as pe,E as it,b1 as te,i as Y,y as ae,b3 as ve,bw as Oe,a6 as ot,by as rt,L as st,a9 as ut,K as dt}from"./BPKwYP2Q.js";import{i as ct}from"./DAWn6Z7h.js";import{_ as ft}from"./BpceIssd.js";import{S as pt}from"./Bf62wdzp.js";const[ze,vt]=le("CollapsibleRoot");var gt=z({__name:"CollapsibleRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["update:open"],setup(u,{expose:r,emit:l}){const n=u,t=ke(n,"open",l,{defaultValue:n.defaultOpen,passive:n.open===void 0}),{disabled:d,unmountOnHide:s}=me(n);return vt({contentId:"",disabled:d,open:t,unmountOnHide:s,onOpenToggle:()=>{d.value||(t.value=!t.value)}}),r({open:t}),P(),(c,x)=>(f(),C(e(K),{as:c.as,"as-child":n.asChild,"data-state":e(t)?"open":"closed","data-disabled":e(d)?"":void 0},{default:h(()=>[D(c.$slots,"default",{open:e(t)})]),_:3},8,["as","as-child","data-state","data-disabled"]))}}),ht=gt,bt=z({inheritAttrs:!1,__name:"CollapsibleContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["contentFound"],setup(u,{emit:r}){const l=u,n=r,i=ze();i.contentId||=se(void 0,"reka-collapsible-content");const t=B(),{forwardRef:d,currentElement:s}=P(),c=B(0),x=B(0),I=N(()=>i.open.value),y=B(I.value),M=B();he(()=>[I.value,t.value?.present],async()=>{await Be();const p=s.value;if(!p)return;M.value=M.value||{transitionDuration:p.style.transitionDuration,animationName:p.style.animationName},p.style.transitionDuration="0s",p.style.animationName="none";const L=p.getBoundingClientRect();x.value=L.height,c.value=L.width,y.value||(p.style.transitionDuration=M.value.transitionDuration,p.style.animationName=M.value.animationName)},{immediate:!0});const _=N(()=>y.value&&i.open.value);return _e(()=>{requestAnimationFrame(()=>{y.value=!1})}),Ve(s,"beforematch",p=>{requestAnimationFrame(()=>{i.onOpenToggle(),n("contentFound")})}),(p,L)=>(f(),C(e(ue),{ref_key:"presentRef",ref:t,present:p.forceMount||e(i).open.value,"force-mount":!0},{default:h(({present:o})=>[T(e(K),O(p.$attrs,{id:e(i).contentId,ref:e(d),"as-child":l.asChild,as:p.as,hidden:o?void 0:e(i).unmountOnHide.value?"":"until-found","data-state":_.value?void 0:e(i).open.value?"open":"closed","data-disabled":e(i).disabled?.value?"":void 0,style:{"--reka-collapsible-content-height":`${x.value}px`,"--reka-collapsible-content-width":`${c.value}px`}}),{default:h(()=>[!e(i).unmountOnHide.value||o?D(p.$slots,"default",{key:0}):V("v-if",!0)]),_:2},1040,["id","as-child","as","hidden","data-state","data-disabled","style"])]),_:3},8,["present"]))}}),yt=bt,kt=z({__name:"CollapsibleTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const r=u;P();const l=ze();return(n,i)=>(f(),C(e(K),{type:n.as==="button"?"button":void 0,as:n.as,"as-child":r.asChild,"aria-controls":e(l).contentId,"aria-expanded":e(l).open.value,"data-state":e(l).open.value?"open":"closed","data-disabled":e(l).disabled?.value?"":void 0,disabled:e(l).disabled?.value,onClick:e(l).onOpenToggle},{default:h(()=>[D(n.$slots,"default")]),_:3},8,["type","as","as-child","aria-controls","aria-expanded","data-state","data-disabled","disabled","onClick"]))}}),mt=kt;function _t({type:u,defaultValue:r,modelValue:l}){const n=l||r;return l!==void 0||r!==void 0?Array.isArray(n)?"multiple":"single":u??"single"}function Lt({type:u,defaultValue:r,modelValue:l}){return u||_t({type:u,defaultValue:r,modelValue:l})}function Ct({type:u,defaultValue:r}){return r!==void 0?r:u==="single"?void 0:[]}function xt(u,r){const l=N(()=>Lt(u)),n=ke(u,"modelValue",r,{defaultValue:Ct(u),passive:u.modelValue===void 0,deep:!0});function i(d){if(l.value==="single")n.value=Te(d,n.value)?void 0:d;else{const s=Array.isArray(n.value)?[...n.value||[]]:[n.value].filter(Boolean);if(ct(s,d)){const c=s.findIndex(x=>Te(x,d));s.splice(c,1)}else s.push(d);n.value=s}}const t=N(()=>l.value==="single");return{modelValue:n,changeModelValue:i,isSingle:t}}const[xe,wt]=le("AccordionRoot");var It=z({__name:"AccordionRoot",props:{collapsible:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:"vertical"},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},type:{type:String,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1}},emits:["update:modelValue"],setup(u,{emit:r}){const l=u,n=r,{dir:i,disabled:t,unmountOnHide:d}=me(l),s=Se(i),{modelValue:c,changeModelValue:x,isSingle:I}=xt(l,n),{forwardRef:y,currentElement:M}=P();return wt({disabled:t,direction:s,orientation:l.orientation,parentElement:M,isSingle:I,collapsible:l.collapsible,modelValue:c,changeModelValue:x,unmountOnHide:d}),(_,p)=>(f(),C(e(K),{ref:e(y),"as-child":_.asChild,as:_.as},{default:h(()=>[D(_.$slots,"default",{modelValue:e(c)})]),_:3},8,["as-child","as"]))}}),De=It,be=(function(u){return u.Open="open",u.Closed="closed",u})(be||{});const[Pe,Tt]=le("AccordionItem");var qt=z({__name:"AccordionItem",props:{disabled:{type:Boolean,required:!1},value:{type:String,required:!0},unmountOnHide:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u,{expose:r}){const l=u,n=xe(),i=N(()=>n.isSingle.value?l.value===n.modelValue.value:Array.isArray(n.modelValue.value)&&n.modelValue.value.includes(l.value)),t=N(()=>n.disabled.value||l.disabled),d=N(()=>t.value?"":void 0),s=N(()=>i.value?be.Open:be.Closed);r({open:i,dataDisabled:d});const{currentRef:c,currentElement:x}=P();Tt({open:i,dataState:s,disabled:t,dataDisabled:d,triggerId:"",currentRef:c,currentElement:x,value:N(()=>l.value)});function I(y){const M=y.target;if(Array.from(n.parentElement.value?.querySelectorAll("[data-reka-collection-item]")??[]).findIndex(L=>L===M)===-1)return null;Le(y,M,n.parentElement.value,{arrowKeyOptions:n.orientation,dir:n.direction.value,focus:!0})}return(y,M)=>(f(),C(e(ht),{"data-orientation":e(n).orientation,"data-disabled":d.value,"data-state":s.value,disabled:t.value,open:i.value,as:l.as,"as-child":l.asChild,"unmount-on-hide":l.unmountOnHide??e(n).unmountOnHide.value,onKeydown:$e(I,["up","down","left","right","home","end"])},{default:h(()=>[D(y.$slots,"default",{open:i.value})]),_:3},8,["data-orientation","data-disabled","data-state","disabled","open","as","as-child","unmount-on-hide"]))}}),Et=qt,Mt=z({__name:"AccordionContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const r=u,l=xe(),n=Pe();return P(),(i,t)=>(f(),C(e(yt),{role:"region","as-child":r.asChild,as:i.as,"force-mount":r.forceMount,"aria-labelledby":e(n).triggerId,"data-state":e(n).dataState.value,"data-disabled":e(n).dataDisabled.value,"data-orientation":e(l).orientation,style:{"--reka-accordion-content-width":"var(--reka-collapsible-content-width)","--reka-accordion-content-height":"var(--reka-collapsible-content-height)"},onContentFound:t[0]||(t[0]=d=>e(l).changeModelValue(e(n).value.value))},{default:h(()=>[D(i.$slots,"default")]),_:3},8,["as-child","as","force-mount","aria-labelledby","data-state","data-disabled","data-orientation"]))}}),Ot=Mt,Dt=z({__name:"AccordionTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const r=u,l=xe(),n=Pe();n.triggerId||=se(void 0,"reka-accordion-trigger");function i(){const t=l.isSingle.value&&n.open.value&&!l.collapsible;n.disabled.value||t||l.changeModelValue(n.value.value)}return(t,d)=>(f(),C(e(mt),{id:e(n).triggerId,ref:e(n).currentRef,"data-reka-collection-item":"",as:r.as,"as-child":r.asChild,"aria-disabled":e(n).disabled.value||void 0,"aria-expanded":e(n).open.value||!1,"data-disabled":e(n).dataDisabled.value,"data-orientation":e(l).orientation,"data-state":e(n).dataState.value,disabled:e(n).disabled.value,onClick:i},{default:h(()=>[D(t.$slots,"default")]),_:3},8,["id","as","as-child","aria-disabled","aria-expanded","data-disabled","data-orientation","data-state","disabled"]))}}),Ne=Dt;function de(u){return u?"open":"closed"}function Ke(u,r){return`${u}-trigger-${r}`}function we(u,r){return`${u}-content-${r}`}const Nt="navigationMenu.linkSelect",ne="navigationMenu.rootContentDismiss";function ye(u){const r=[],l=document.createTreeWalker(u,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;l.nextNode();)r.push(l.currentNode);return r}function Fe(u){const r=Z();return u.some(l=>l===r?!0:(l.focus(),Z()!==r))}function Vt(u){return u.forEach(r=>{r.dataset.tabindex=r.getAttribute("tabindex")||"",r.setAttribute("tabindex","-1")}),()=>{u.forEach(r=>{const l=r.dataset.tabindex;r.setAttribute("tabindex",l)})}}function He(u){return r=>r.pointerType==="mouse"?u(r):void 0}const[J,Bt]=le(["NavigationMenuRoot","NavigationMenuSub"],"NavigationMenuContext");var St=z({__name:"NavigationMenuRoot",props:{modelValue:{type:String,required:!1,default:void 0},defaultValue:{type:String,required:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:"horizontal"},delayDuration:{type:Number,required:!1,default:200},skipDelayDuration:{type:Number,required:!1,default:300},disableClickTrigger:{type:Boolean,required:!1,default:!1},disableHoverTrigger:{type:Boolean,required:!1,default:!1},disablePointerLeaveClose:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"nav"}},emits:["update:modelValue"],setup(u,{emit:r}){const l=u,i=ke(l,"modelValue",r,{defaultValue:l.defaultValue??"",passive:l.modelValue===void 0}),t=B(""),{forwardRef:d,currentElement:s}=P(),c=B(),x=B(),I=B(),{getItems:y,CollectionSlot:M}=ie({key:"NavigationMenu",isProvider:!0}),{delayDuration:_,skipDelayDuration:p,dir:L,disableClickTrigger:o,disableHoverTrigger:R,unmountOnHide:g}=me(l),b=Se(L),E=Re(!1,p),v=B(!1),w=N(()=>i.value!==""||E.value?150:_.value),a=je(k=>{if(typeof k=="string"){if(k===""&&v.value){v.value=!1;return}t.value=i.value,i.value=k,k===""&&(E.value=!0)}},w);Ce(()=>{if(!i.value)return;const k=y().map(S=>S.ref);I.value=k.find(S=>S.id.includes(i.value))}),Ve(s,ne,m),Bt({isRootMenu:!0,modelValue:i,previousValue:t,baseId:se(void 0,"reka-navigation-menu"),disableClickTrigger:o,disableHoverTrigger:R,dir:b,unmountOnHide:g,orientation:l.orientation,rootNavigationMenu:s,indicatorTrack:c,activeTrigger:I,onIndicatorTrackChange:k=>{c.value=k},viewport:x,onViewportChange:k=>{x.value=k},onTriggerEnter:k=>{i.value!==""?(v.value=!0,t.value=i.value,i.value=k):a(k)},onTriggerLeave:()=>{v.value=!1,a("")},onContentEnter:()=>{a()},onContentLeave:()=>{l.disablePointerLeaveClose||(v.value=!1,a(""))},onItemSelect:k=>{t.value=i.value,i.value=k},onItemDismiss:m});function m(){t.value=i.value,i.value=""}return(k,S)=>(f(),C(e(M),null,{default:h(()=>[T(e(K),{ref:e(d),as:k.as,"as-child":k.asChild,"data-orientation":k.orientation,dir:e(b),"data-reka-navigation-menu":""},{default:h(()=>[D(k.$slots,"default",{modelValue:e(i)})]),_:3},8,["as","as-child","data-orientation","dir"])]),_:3}))}}),$t=St;const[Ie,Rt]=le("NavigationMenuItem");var At=z({__name:"NavigationMenuItem",props:{value:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"li"}},setup(u){const r=u;P();const{getItems:l}=ie({key:"NavigationMenu"}),n=J(),i=se(r.value),t=B(),d=B(),s=we(n.baseId,i);let c=()=>({});const x=B(!1);async function I(p="start"){const L=document.getElementById(s);if(L){c();const o=ye(L);o.length&&Fe(p==="start"?o:o.reverse())}}function y(){const p=document.getElementById(s);if(p){const L=ye(p);L.length&&(c=Vt(L))}}Rt({value:i,contentId:s,triggerRef:t,focusProxyRef:d,wasEscapeCloseRef:x,onEntryKeyDown:I,onFocusProxyEnter:I,onContentFocusOutside:y,onRootContentClose:y});function M(){n.onItemDismiss(),t.value?.focus()}function _(p){const L=Z();if(p.keyCode===32||p.key==="Enter")if(n.modelValue.value===i){M(),p.preventDefault();return}else{p.target.click(),p.preventDefault();return}const o=l().filter(g=>g.ref.parentElement?.hasAttribute("data-menu-item")).map(g=>g.ref);if(!o.includes(L))return;const R=Le(p,L,void 0,{itemsArray:o,loop:!1});R&&R?.focus(),p.preventDefault(),p.stopPropagation()}return(p,L)=>(f(),C(e(K),{"as-child":p.asChild,as:p.as,"data-menu-item":"",onKeydown:$e(_,["up","down","left","right","home","end","space"])},{default:h(()=>[D(p.$slots,"default")]),_:3},8,["as-child","as"]))}}),zt=At,Pt=z({__name:"NavigationMenuContentImpl",props:{disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(u,{emit:r}){const l=u,n=r,{getItems:i}=ie({key:"NavigationMenu"}),{forwardRef:t,currentElement:d}=P(),s=J(),c=Ie(),x=Ke(s.baseId,c.value),I=we(s.baseId,c.value),y=B(null),M=N(()=>{const g=i().map(m=>m.ref.id.split("trigger-")[1]);s.dir.value==="rtl"&&g.reverse();const b=g.indexOf(s.modelValue.value),E=g.indexOf(s.previousValue.value),v=c.value===s.modelValue.value,w=E===g.indexOf(c.value);if(!v&&!w)return y.value;const a=(()=>{if(b!==E){if(v&&E!==-1)return b>E?"from-end":"from-start";if(w&&b!==-1)return b>E?"to-start":"to-end"}return null})();return y.value=a,a});function _(g){if(n("focusOutside",g),n("interactOutside",g),g.detail.originalEvent.target.hasAttribute("data-navigation-menu-trigger")&&g.preventDefault(),!g.defaultPrevented){c.onContentFocusOutside();const E=g.target;s.rootNavigationMenu?.value?.contains(E)&&g.preventDefault()}}function p(g){if(n("pointerDownOutside",g),!g.defaultPrevented){const b=g.target,E=i().some(w=>w.ref.contains(b)),v=s.isRootMenu&&s.viewport.value?.contains(b);(E||v||!s.isRootMenu)&&g.preventDefault()}}Ce(g=>{const b=d.value;if(s.isRootMenu&&b){const E=()=>{s.onItemDismiss(),c.onRootContentClose(),b.contains(Z())&&c.triggerRef.value?.focus()};b.addEventListener(ne,E),g(()=>b.removeEventListener(ne,E))}});function L(g){n("escapeKeyDown",g),g.defaultPrevented||(s.onItemDismiss(),c.triggerRef?.value?.focus(),c.wasEscapeCloseRef.value=!0)}function o(g){if(g.target.closest("[data-reka-navigation-menu]")!==s.rootNavigationMenu.value)return;const b=g.altKey||g.ctrlKey||g.metaKey,E=g.key==="Tab"&&!b,v=ye(g.currentTarget);if(E){const a=Z(),m=v.findIndex(A=>A===a),S=g.shiftKey?v.slice(0,m).reverse():v.slice(m+1,v.length);if(Fe(S))g.preventDefault();else{c.focusProxyRef.value?.focus();return}}Le(g,Z(),void 0,{itemsArray:v,loop:!1,enableIgnoredElement:!0})?.focus()}function R(){if(s.modelValue.value!==c.value)return;const g=new Event(ne,{bubbles:!0,cancelable:!0});d.value?.dispatchEvent(g)}return(g,b)=>(f(),C(e(Ge),O({id:e(I),ref:e(t),"aria-labelledby":e(x),"data-motion":M.value,"data-state":e(de)(e(s).modelValue.value===e(c).value),"data-orientation":e(s).orientation},l,{onKeydown:o,onEscapeKeyDown:L,onPointerDownOutside:p,onFocusOutside:_,onDismiss:R}),{default:h(()=>[D(g.$slots,"default")]),_:3},16,["id","aria-labelledby","data-motion","data-state","data-orientation"]))}}),Kt=Pt,Ft=z({inheritAttrs:!1,__name:"NavigationMenuContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(u,{emit:r}){const l=u,n=r,i=Ue(Qe(l,"forceMount"),n),{forwardRef:t}=P(),d=J(),s=Ie(),c=N(()=>s.value===d.modelValue.value),x=N(()=>d.viewport.value&&!d.modelValue.value&&d.previousValue.value?d.previousValue.value===s.value:!1);return(I,y)=>(f(),C(Ae,{to:e(qe)&&e(d).viewport.value?e(d).viewport.value:"body",disabled:e(qe)&&e(d).viewport.value?!e(d).viewport.value:!0},[T(e(ue),{present:I.forceMount||c.value||x.value,"force-mount":!e(d).unmountOnHide.value},{default:h(({present:M})=>[T(Kt,O({ref:e(t),"data-state":e(de)(c.value),style:{pointerEvents:!c.value&&e(d).isRootMenu?"none":void 0}},{...I.$attrs,...e(i)},{hidden:!M,onPointerenter:y[0]||(y[0]=_=>e(d).onContentEnter(e(s).value)),onPointerleave:y[1]||(y[1]=_=>e(He)(()=>e(d).onContentLeave())(_)),onPointerDownOutside:y[2]||(y[2]=_=>n("pointerDownOutside",_)),onFocusOutside:y[3]||(y[3]=_=>n("focusOutside",_)),onInteractOutside:y[4]||(y[4]=_=>n("interactOutside",_))}),{default:h(()=>[D(I.$slots,"default")]),_:2},1040,["data-state","style","hidden"])]),_:3},8,["present","force-mount"])],8,["to","disabled"]))}}),Ht=Ft,Wt=z({inheritAttrs:!1,__name:"NavigationMenuIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const r=u,{forwardRef:l}=P(),n=J(),i=B(),t=N(()=>n.orientation==="horizontal"),d=N(()=>!!n.modelValue.value),{activeTrigger:s}=n;function c(){s.value&&(i.value={size:t.value?s.value.offsetWidth:s.value.offsetHeight,position:t.value?s.value.offsetLeft:s.value.offsetTop})}return Ce(()=>{n.modelValue.value&&c()}),re(s,c),re(n.indicatorTrack,c),(x,I)=>e(n).indicatorTrack.value?(f(),C(Ae,{key:0,to:e(n).indicatorTrack.value},[T(e(ue),{present:x.forceMount||d.value},{default:h(()=>[T(e(K),O({ref:e(l),"aria-hidden":"true","data-state":d.value?"visible":"hidden","data-orientation":e(n).orientation,"as-child":r.asChild,as:x.as,style:{...i.value?{"--reka-navigation-menu-indicator-size":`${i.value.size}px`,"--reka-navigation-menu-indicator-position":`${i.value.position}px`}:{}}},x.$attrs),{default:h(()=>[D(x.$slots,"default")]),_:3},16,["data-state","data-orientation","as-child","as","style"])]),_:3},8,["present"])],8,["to"])):V("v-if",!0)}}),jt=Wt,Gt=z({__name:"NavigationMenuLink",props:{active:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"a"}},emits:["select"],setup(u,{emit:r}){const l=u,n=r,{CollectionItem:i}=ie({key:"NavigationMenu"});P();async function t(d){const s=new CustomEvent(Nt,{bubbles:!0,cancelable:!0,detail:{originalEvent:d}});if(n("select",s),!s.defaultPrevented&&!d.metaKey){const c=new CustomEvent(ne,{bubbles:!0,cancelable:!0});d.target?.dispatchEvent(c)}}return(d,s)=>(f(),C(e(i),null,{default:h(()=>[T(e(K),{as:d.as,"data-active":d.active?"":void 0,"aria-current":d.active?"page":void 0,"as-child":l.asChild,onClick:t},{default:h(()=>[D(d.$slots,"default")]),_:3},8,["as","data-active","aria-current","as-child"])]),_:3}))}}),ge=Gt,Ut=z({inheritAttrs:!1,__name:"NavigationMenuList",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"ul"}},setup(u){const r=u,l=J(),{forwardRef:n,currentElement:i}=P();return _e(()=>{l.onIndicatorTrackChange(i.value)}),(t,d)=>(f(),C(e(K),{ref:e(n),style:{position:"relative"}},{default:h(()=>[T(e(K),O(t.$attrs,{"as-child":r.asChild,as:t.as,"data-orientation":e(l).orientation}),{default:h(()=>[D(t.$slots,"default")]),_:3},16,["as-child","as","data-orientation"])]),_:3},512))}}),Qt=Ut;const Xt=["aria-owns"];var Yt=z({inheritAttrs:!1,__name:"NavigationMenuTrigger",props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const r=u,l=J(),n=Ie(),{CollectionItem:i}=ie({key:"NavigationMenu"}),{forwardRef:t,currentElement:d}=P(),s=B(""),c=B(""),x=Re(!1,300),I=B(!1),y=N(()=>n.value===l.modelValue.value);_e(()=>{n.triggerRef=d,s.value=Ke(l.baseId,n.value),c.value=we(l.baseId,n.value)});function M(){l.disableHoverTrigger.value||(I.value=!1,n.wasEscapeCloseRef.value=!1)}function _(b){if(!l.disableHoverTrigger.value&&b.pointerType==="mouse"){if(r.disabled||I.value||n.wasEscapeCloseRef.value||x.value)return;l.onTriggerEnter(n.value),x.value=!0}}function p(b){if(!l.disableHoverTrigger.value&&b.pointerType==="mouse"){if(r.disabled)return;l.onTriggerLeave(),x.value=!1}}function L(b){(!("pointerType"in b)||b.pointerType==="mouse")&&l.disableClickTrigger.value||x.value||(y.value?l.onItemSelect(""):l.onItemSelect(n.value),I.value=y.value)}function o(b){const v={horizontal:"ArrowDown",vertical:l.dir.value==="rtl"?"ArrowLeft":"ArrowRight"}[l.orientation];y.value&&b.key===v&&(n.onEntryKeyDown(),b.preventDefault(),b.stopPropagation())}function R(b){b&&(n.focusProxyRef.value=Ye(b))}function g(b){const E=document.getElementById(n.contentId),v=b.relatedTarget,w=v===d.value,a=E?.contains(v);(w||!a)&&n.onFocusProxyEnter(w?"start":"end")}return(b,E)=>(f(),$(j,null,[T(e(i),null,{default:h(()=>[T(e(K),O({id:s.value,ref:e(t),disabled:b.disabled,"data-disabled":b.disabled?"":void 0,"data-state":e(de)(y.value),"data-navigation-menu-trigger":"","aria-expanded":y.value,"aria-controls":c.value,"as-child":r.asChild,as:b.as},b.$attrs,{onPointerenter:M,onPointermove:_,onPointerleave:p,onClick:L,onKeydown:o}),{default:h(()=>[D(b.$slots,"default")]),_:3},16,["id","disabled","data-disabled","data-state","aria-expanded","aria-controls","as-child","as"])]),_:3}),y.value?(f(),$(j,{key:0},[T(e(Xe),{ref:R,"aria-hidden":"true",tabindex:0,onFocus:g}),e(l).viewport?(f(),$("span",{key:0,"aria-owns":c.value},null,8,Xt)):V("v-if",!0)],64)):V("v-if",!0)],64))}}),Jt=Yt,Zt=z({inheritAttrs:!1,__name:"NavigationMenuViewport",props:{forceMount:{type:Boolean,required:!1},align:{type:String,required:!1,default:"center"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const r=u,{forwardRef:l,currentElement:n}=P(),i=J(),{activeTrigger:t,rootNavigationMenu:d,modelValue:s}=i,c=B(),x=B(),I=N(()=>!!i.modelValue.value);he(n,()=>{i.onViewportChange(n.value)});const y=B();he([s,I],()=>{Be(()=>{n.value&&requestAnimationFrame(()=>{const _=n.value?.querySelector("[data-state=open]");y.value=_})})},{immediate:!0});function M(){if(y.value&&t.value&&d.value){const _=document.documentElement.offsetWidth,p=document.documentElement.offsetHeight,L=d.value.getBoundingClientRect(),o=t.value.getBoundingClientRect(),{offsetWidth:R,offsetHeight:g}=y.value,b=o.left-L.left,E=o.top-L.top;let v=null,w=null;switch(r.align){case"start":v=b,w=E;break;case"end":v=b-R+o.width,w=E-g+o.height;break;default:v=b-R/2+o.width/2,w=E-g/2+o.height/2}const a=10;v+L.left<a&&(v=a-L.left);const m=v+L.left+R;m>_-a&&(v-=m-_+a,v<a-L.left&&(v=a-L.left)),w+L.top<a&&(w=a-L.top);const k=w+L.top+g;k>p-a&&(w-=k-p+a,w<a-L.top&&(w=a-L.top)),v=Math.round(v),w=Math.round(w),x.value={left:v,top:w}}}return re(y,()=>{y.value&&(c.value={width:y.value.offsetWidth,height:y.value.offsetHeight},M())}),re([globalThis.document?.body,d],()=>{M()}),(_,p)=>(f(),C(e(ue),{present:_.forceMount||I.value,"force-mount":!e(i).unmountOnHide.value,onAfterLeave:p[2]||(p[2]=()=>{c.value=void 0,x.value=void 0})},{default:h(({present:L})=>[T(e(K),O(_.$attrs,{ref:e(l),as:_.as,"as-child":_.asChild,"data-state":e(de)(I.value),"data-orientation":e(i).orientation,style:{pointerEvents:!I.value&&e(i).isRootMenu?"none":void 0,"--reka-navigation-menu-viewport-width":c.value?`${c.value?.width}px`:void 0,"--reka-navigation-menu-viewport-height":c.value?`${c.value?.height}px`:void 0,"--reka-navigation-menu-viewport-left":x.value?`${x.value?.left}px`:void 0,"--reka-navigation-menu-viewport-top":x.value?`${x.value?.top}px`:void 0},hidden:!L,onPointerenter:p[0]||(p[0]=o=>e(i).onContentEnter(e(i).modelValue.value)),onPointerleave:p[1]||(p[1]=o=>e(He)(()=>e(i).onContentLeave())(o))}),{default:h(()=>[D(_.$slots,"default")]),_:2},1040,["as","as-child","data-state","data-orientation","style","hidden"])]),_:3},8,["present","force-mount"]))}}),ea=Zt;const ta={slots:{root:"relative flex gap-1.5 [&>div]:min-w-0",list:"isolate min-w-0",label:"w-full flex items-center gap-1.5 font-semibold text-xs/5 text-highlighted px-2.5 py-1.5",item:"min-w-0",link:"group relative w-full flex items-center gap-1.5 font-medium text-sm before:absolute before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:outline-3",linkLeadingIcon:"shrink-0 size-5",linkLeadingAvatar:"shrink-0",linkLeadingAvatarSize:"2xs",linkLeadingChipSize:"sm",linkTrailing:"group ms-auto inline-flex gap-1.5 items-center",linkTrailingBadge:"shrink-0",linkTrailingBadgeSize:"sm",linkTrailingIcon:"size-5 transform shrink-0 group-data-[state=open]:rotate-180 transition-transform duration-200",linkLabel:"truncate",linkLabelExternalIcon:"inline-block size-3 align-top text-dimmed",childList:"isolate",childLabel:"text-xs text-highlighted",childItem:"",childLink:"group relative size-full flex items-start text-start text-sm before:absolute before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:outline-3",childLinkWrapper:"min-w-0",childLinkIcon:"size-5 shrink-0",childLinkLabel:"truncate",childLinkLabelExternalIcon:"inline-block size-3 align-top text-dimmed",childLinkDescription:"text-muted",separator:"px-2 h-px bg-border",viewportWrapper:"absolute top-full start-0 flex w-full",viewport:"relative overflow-hidden bg-default shadow-lg rounded-md ring ring-default h-(--reka-navigation-menu-viewport-height) w-full transition-[width,height,left,right] duration-200 origin-[top_center] data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] z-1",content:"",indicator:"absolute left-0 data-[state=visible]:animate-[fade-in_100ms_ease-out] data-[state=hidden]:animate-[fade-out_100ms_ease-in] data-[state=hidden]:opacity-0 bottom-0 z-2 w-(--reka-navigation-menu-indicator-size) translate-x-(--reka-navigation-menu-indicator-position) flex h-2.5 items-end justify-center overflow-hidden transition-[translate,width] duration-200",arrow:"relative top-[50%] size-2.5 rotate-45 border border-default bg-default z-1 rounded-xs"},variants:{color:{primary:{link:"before:outline-primary/25",childLink:"before:outline-primary/25"},secondary:{link:"before:outline-secondary/25",childLink:"before:outline-secondary/25"},success:{link:"before:outline-success/25",childLink:"before:outline-success/25"},info:{link:"before:outline-info/25",childLink:"before:outline-info/25"},warning:{link:"before:outline-warning/25",childLink:"before:outline-warning/25"},error:{link:"before:outline-error/25",childLink:"before:outline-error/25"},neutral:{link:"before:outline-inverted/25",childLink:"before:outline-inverted/25"}},highlightColor:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},variant:{pill:"",link:""},orientation:{horizontal:{root:"items-center justify-between",list:"flex items-center",item:"py-2",link:"px-2.5 py-1.5 before:inset-x-px before:inset-y-0",childList:"grid p-2",childLink:"px-3 py-2 gap-2 before:inset-x-px before:inset-y-0",childLinkLabel:"font-medium",content:"absolute top-0 start-0 w-full max-h-[70vh] overflow-y-auto"},vertical:{root:"flex-col",link:"flex-row px-2.5 py-1.5 before:inset-y-px before:inset-x-0",childLabel:"px-1.5 py-0.5",childLink:"p-1.5 gap-1.5 before:inset-y-px before:inset-x-0"}},contentOrientation:{horizontal:{viewportWrapper:"justify-center",content:"data-[motion=from-start]:animate-[enter-from-left_200ms_ease] data-[motion=from-end]:animate-[enter-from-right_200ms_ease] data-[motion=to-start]:animate-[exit-to-left_200ms_ease] data-[motion=to-end]:animate-[exit-to-right_200ms_ease]"},vertical:{viewport:"sm:w-(--reka-navigation-menu-viewport-width) left-(--reka-navigation-menu-viewport-left) rtl:left-auto rtl:right-[calc(100%-var(--reka-navigation-menu-viewport-left)-var(--reka-navigation-menu-viewport-width))]"}},active:{true:{childLink:"before:bg-elevated text-highlighted",childLinkIcon:"text-default"},false:{link:"text-muted",linkLeadingIcon:"text-dimmed",childLink:["hover:before:bg-elevated/50 text-default hover:text-highlighted","transition-colors before:transition-colors"],childLinkIcon:["text-dimmed group-hover:text-default","transition-colors"]}},disabled:{true:{link:"cursor-not-allowed opacity-75"}},highlight:{true:""},level:{true:""},collapsed:{true:""}},compoundVariants:[{orientation:"horizontal",contentOrientation:"horizontal",class:{childList:"grid-cols-2 gap-2"}},{orientation:"horizontal",contentOrientation:"vertical",class:{childList:"gap-1",content:"w-60"}},{orientation:"vertical",collapsed:!1,class:{childList:"ms-5 border-s border-default",childItem:"ps-1.5 -ms-px",content:"data-[state=open]:animate-[collapsible-down_200ms_ease-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-out] data-[state=closed]:overflow-hidden"}},{orientation:"vertical",collapsed:!0,class:{link:"px-1.5",linkLabel:"hidden",linkTrailing:"hidden",content:"shadow-sm rounded-sm min-h-6 p-1"}},{orientation:"horizontal",highlight:!0,class:{link:["after:absolute after:-bottom-2 after:inset-x-2.5 after:block after:h-px after:rounded-full","after:transition-colors"]}},{orientation:"vertical",highlight:!0,level:!0,class:{link:["after:absolute after:-start-1.5 after:inset-y-0.5 after:block after:w-px after:rounded-full","after:transition-colors"]}},{disabled:!1,active:!1,variant:"pill",class:{link:["hover:text-highlighted hover:before:bg-elevated/50","transition-colors before:transition-colors"],linkLeadingIcon:["group-hover:text-default","transition-colors"]}},{disabled:!1,active:!1,variant:"pill",orientation:"horizontal",class:{link:"data-[state=open]:text-highlighted",linkLeadingIcon:"group-data-[state=open]:text-default"}},{disabled:!1,variant:"pill",highlight:!0,orientation:"horizontal",class:{link:"data-[state=open]:before:bg-elevated/50"}},{disabled:!1,variant:"pill",highlight:!1,active:!1,orientation:"horizontal",class:{link:"data-[state=open]:before:bg-elevated/50"}},{color:"primary",variant:"pill",active:!0,class:{link:"text-primary",linkLeadingIcon:"text-primary group-data-[state=open]:text-primary"}},{color:"secondary",variant:"pill",active:!0,class:{link:"text-secondary",linkLeadingIcon:"text-secondary group-data-[state=open]:text-secondary"}},{color:"success",variant:"pill",active:!0,class:{link:"text-success",linkLeadingIcon:"text-success group-data-[state=open]:text-success"}},{color:"info",variant:"pill",active:!0,class:{link:"text-info",linkLeadingIcon:"text-info group-data-[state=open]:text-info"}},{color:"warning",variant:"pill",active:!0,class:{link:"text-warning",linkLeadingIcon:"text-warning group-data-[state=open]:text-warning"}},{color:"error",variant:"pill",active:!0,class:{link:"text-error",linkLeadingIcon:"text-error group-data-[state=open]:text-error"}},{color:"neutral",variant:"pill",active:!0,class:{link:"text-highlighted",linkLeadingIcon:"text-highlighted group-data-[state=open]:text-highlighted"}},{variant:"pill",active:!0,highlight:!1,class:{link:"before:bg-elevated"}},{variant:"pill",active:!0,highlight:!0,disabled:!1,class:{link:["hover:before:bg-elevated/50","before:transition-colors"]}},{disabled:!1,active:!1,variant:"link",class:{link:["hover:text-highlighted","transition-colors"],linkLeadingIcon:["group-hover:text-default","transition-colors"]}},{disabled:!1,active:!1,variant:"link",orientation:"horizontal",class:{link:"data-[state=open]:text-highlighted",linkLeadingIcon:"group-data-[state=open]:text-default"}},{color:"primary",variant:"link",active:!0,class:{link:"text-primary",linkLeadingIcon:"text-primary group-data-[state=open]:text-primary"}},{color:"secondary",variant:"link",active:!0,class:{link:"text-secondary",linkLeadingIcon:"text-secondary group-data-[state=open]:text-secondary"}},{color:"success",variant:"link",active:!0,class:{link:"text-success",linkLeadingIcon:"text-success group-data-[state=open]:text-success"}},{color:"info",variant:"link",active:!0,class:{link:"text-info",linkLeadingIcon:"text-info group-data-[state=open]:text-info"}},{color:"warning",variant:"link",active:!0,class:{link:"text-warning",linkLeadingIcon:"text-warning group-data-[state=open]:text-warning"}},{color:"error",variant:"link",active:!0,class:{link:"text-error",linkLeadingIcon:"text-error group-data-[state=open]:text-error"}},{color:"neutral",variant:"link",active:!0,class:{link:"text-highlighted",linkLeadingIcon:"text-highlighted group-data-[state=open]:text-highlighted"}},{highlightColor:"primary",highlight:!0,level:!0,active:!0,class:{link:"after:bg-primary"}},{highlightColor:"secondary",highlight:!0,level:!0,active:!0,class:{link:"after:bg-secondary"}},{highlightColor:"success",highlight:!0,level:!0,active:!0,class:{link:"after:bg-success"}},{highlightColor:"info",highlight:!0,level:!0,active:!0,class:{link:"after:bg-info"}},{highlightColor:"warning",highlight:!0,level:!0,active:!0,class:{link:"after:bg-warning"}},{highlightColor:"error",highlight:!0,level:!0,active:!0,class:{link:"after:bg-error"}},{highlightColor:"neutral",highlight:!0,level:!0,active:!0,class:{link:"after:bg-inverted"}}],defaultVariants:{color:"primary",highlightColor:"primary",variant:"pill"}},oa=Object.assign({inheritAttrs:!1},{__name:"UNavigationMenu",props:{as:{type:null,required:!1},type:{type:null,required:!1,default:"multiple"},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},trailingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},items:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},orientation:{type:null,required:!1,default:"horizontal"},collapsed:{type:Boolean,required:!1},tooltip:{type:[Boolean,Object],required:!1},popover:{type:[Boolean,Object],required:!1},highlight:{type:Boolean,required:!1},highlightColor:{type:null,required:!1},content:{type:Object,required:!1},contentOrientation:{type:null,required:!1,default:"horizontal"},arrow:{type:Boolean,required:!1},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},class:{type:null,required:!1},ui:{type:Object,required:!1},delayDuration:{type:Number,required:!1,default:0},disableClickTrigger:{type:Boolean,required:!1},disableHoverTrigger:{type:Boolean,required:!1},skipDelayDuration:{type:Number,required:!1},disablePointerLeaveClose:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},disabled:{type:Boolean,required:!1},collapsible:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],setup(u,{emit:r}){const l=u,n=r,i=Je(),t=Ze("navigationMenu",l),d=et(),s=Ee(N(()=>({as:t.as,delayDuration:t.delayDuration,skipDelayDuration:t.skipDelayDuration,orientation:t.orientation,disableClickTrigger:t.disableClickTrigger,disableHoverTrigger:t.disableHoverTrigger,disablePointerLeaveClose:t.disablePointerLeaveClose,unmountOnHide:t.unmountOnHide})),n),c=Ee(tt(t,"collapsible","disabled","type","unmountOnHide"),n),x=ve(()=>t.content),I=ve(()=>Oe(typeof t.tooltip=="boolean"?{}:t.tooltip,{...t.orientation==="vertical"&&{delayDuration:0,content:{side:"right"}}})),y=ve(()=>Oe(typeof t.popover=="boolean"?{}:t.popover,{mode:"hover",content:{side:"right",align:"start",alignOffset:2}})),[M,_]=Me(),[p,L]=Me({props:{item:Object,index:Number,level:Number,listIndex:Number}}),o=N(()=>ot({extend:ta,...d.ui?.navigationMenu||{}})({orientation:t.orientation,contentOrientation:t.orientation==="vertical"?void 0:t.contentOrientation,collapsed:t.collapsed,color:t.color,variant:t.variant,highlight:t.highlight,highlightColor:t.highlightColor||t.color})),R=N(()=>t.items?.length?rt(t.items)?t.items:[t.items]:[]);function g(v,w,a,m){const k=R.value.length>1?`group-${m}-`:"";return X(v,t.valueKey)??(a>0?`${k}item-${a}-${w}`:`${k}item-${w}`)}function b(v,w=0,a=0){const m=v.reduce((k,S,A)=>((S.defaultOpen||S.open)&&k.push(g(S,A,w,a)),k),[]);return t.type==="single"?m[0]:m}function E(v,w){w.children?.length&&(t.orientation==="horizontal"?v.preventDefault():t.orientation==="vertical"&&!t.collapsed&&(v.preventDefault(),v.stopPropagation()))}return(v,w)=>(f(),$(j,null,[T(e(M),null,{default:h(({item:a,active:m,index:k})=>[D(v.$slots,a.slot||"item",{item:a,index:k,active:m,ui:o.value},()=>[D(v.$slots,a.slot?`${a.slot}-leading`:"item-leading",{item:a,active:m,index:k,ui:o.value},()=>[a.avatar?(f(),C(at,O({key:0,size:a.ui?.linkLeadingAvatarSize||e(t).ui?.linkLeadingAvatarSize||o.value.linkLeadingAvatarSize()},a.avatar,{"data-slot":"linkLeadingAvatar",class:o.value.linkLeadingAvatar({class:[e(t).ui?.linkLeadingAvatar,a.ui?.linkLeadingAvatar],active:m,disabled:!!a.disabled})}),null,16,["size","class"])):a.icon&&a.chip?(f(),C(nt,O({key:1,size:a.ui?.linkLeadingChipSize||e(t).ui?.linkLeadingChipSize||o.value.linkLeadingChipSize(),inset:""},typeof a.chip=="object"?a.chip:{},{"data-slot":"linkLeadingChip"}),{default:h(()=>[T(W,{name:a.icon,"data-slot":"linkLeadingIcon",class:q(o.value.linkLeadingIcon({class:[e(t).ui?.linkLeadingIcon,a.ui?.linkLeadingIcon],active:m,disabled:!!a.disabled}))},null,8,["name","class"])]),_:2},1040,["size"])):a.icon?(f(),C(W,{key:2,name:a.icon,"data-slot":"linkLeadingIcon",class:q(o.value.linkLeadingIcon({class:[e(t).ui?.linkLeadingIcon,a.ui?.linkLeadingIcon],active:m,disabled:!!a.disabled}))},null,8,["name","class"])):V("",!0)]),e(X)(a,e(t).labelKey)||i[a.slot?`${a.slot}-label`:"item-label"]?(f(),$("span",{key:0,"data-slot":"linkLabel",class:q(o.value.linkLabel({class:[e(t).ui?.linkLabel,a.ui?.linkLabel]}))},[D(v.$slots,a.slot?`${a.slot}-label`:"item-label",{item:a,active:m,index:k},()=>[ce(ee(e(X)(a,e(t).labelKey)),1)]),a.target==="_blank"&&e(t).externalIcon!==!1?(f(),C(W,{key:0,name:typeof e(t).externalIcon=="string"?e(t).externalIcon:e(d).ui.icons.external,"data-slot":"linkLabelExternalIcon",class:q(o.value.linkLabelExternalIcon({class:[e(t).ui?.linkLabelExternalIcon,a.ui?.linkLabelExternalIcon],active:m}))},null,8,["name","class"])):V("",!0)],2)):V("",!0),a.badge||a.badge===0||e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])||e(t).orientation==="vertical"&&a.children?.length||a.trailingIcon||i[a.slot?`${a.slot}-trailing`:"item-trailing"]?(f(),C(oe(e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed?e(Ne):"span"),{key:1,as:e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed?"span":void 0,"data-slot":"linkTrailing",class:q(o.value.linkTrailing({class:[e(t).ui?.linkTrailing,a.ui?.linkTrailing]})),onClick:S=>E(S,a)},{default:h(()=>[D(v.$slots,a.slot?`${a.slot}-trailing`:"item-trailing",{item:a,active:m,index:k,ui:o.value},()=>[a.badge||a.badge===0?(f(),C(lt,O({key:0,color:"neutral",variant:"outline",size:a.ui?.linkTrailingBadgeSize||e(t).ui?.linkTrailingBadgeSize||o.value.linkTrailingBadgeSize()},typeof a.badge=="string"||typeof a.badge=="number"?{label:a.badge}:a.badge,{"data-slot":"linkTrailingBadge",class:o.value.linkTrailingBadge({class:[e(t).ui?.linkTrailingBadge,a.ui?.linkTrailingBadge]})}),null,16,["size","class"])):V("",!0),e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])||e(t).orientation==="vertical"&&a.children?.length?(f(),C(W,{key:1,name:a.trailingIcon||e(t).trailingIcon||e(d).ui.icons.chevronDown,"data-slot":"linkTrailingIcon",class:q(o.value.linkTrailingIcon({class:[e(t).ui?.linkTrailingIcon,a.ui?.linkTrailingIcon],active:m}))},null,8,["name","class"])):a.trailingIcon?(f(),C(W,{key:2,name:a.trailingIcon,"data-slot":"linkTrailingIcon",class:q(o.value.linkTrailingIcon({class:[e(t).ui?.linkTrailingIcon,a.ui?.linkTrailingIcon],active:m}))},null,8,["name","class"])):V("",!0)])]),_:2},1032,["as","class","onClick"])):V("",!0)])]),_:3}),T(e(p),null,{default:h(({item:a,index:m,level:k=0,listIndex:S=0})=>[(f(),C(oe(e(t).orientation==="vertical"&&!e(t).collapsed?e(Et):e(zt)),O({as:"li"},e(t).orientation==="vertical"&&!e(t).collapsed?{disabled:!!a.disabled}:{},{value:g(a,m,k,S)}),{default:h(()=>[e(t).orientation==="vertical"&&a.type==="label"&&!e(t).collapsed?(f(),$("div",{key:0,"data-slot":"label",class:q(o.value.label({class:[e(t).ui?.label,a.ui?.label,a.class]}))},[T(e(_),{item:a,index:m},null,8,["item","index"])],2)):a.type!=="label"?(f(),C(fe,O({key:1},e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed&&a.type==="trigger"?{}:e(pe)(a),{custom:""}),{default:h(({active:A,...U})=>[(f(),C(oe(e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])?e(Jt):e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed&&!U.href?e(Ne):e(ge)),{"as-child":"",active:A||a.active,disabled:a.disabled,onSelect:a.onSelect},{default:h(()=>[e(t).orientation==="vertical"&&e(t).collapsed&&a.children?.length&&(e(t).popover||a.popover)?(f(),C(it,O({key:0},{...y.value,...typeof a.popover=="boolean"?{}:a.popover||{}},{ui:{content:o.value.content({class:[e(t).ui?.content,a.ui?.content]})}}),{content:h(({close:F})=>[D(v.$slots,a.slot?`${a.slot}-content`:"item-content",{item:a,active:A||a.active,index:m,ui:o.value,close:F},()=>[Y("ul",{"data-slot":"childList",class:q(o.value.childList({class:[e(t).ui?.childList,a.ui?.childList]}))},[Y("li",{"data-slot":"childLabel",class:q(o.value.childLabel({class:[e(t).ui?.childLabel,a.ui?.childLabel]}))},ee(e(X)(a,e(t).labelKey)),3),(f(!0),$(j,null,ae(a.children,(H,G)=>(f(),$("li",{key:G,"data-slot":"childItem",class:q(o.value.childItem({class:[e(t).ui?.childItem,a.ui?.childItem]}))},[T(fe,O({ref_for:!0},e(pe)(H),{custom:""}),{default:h(({active:Q,...We})=>[T(e(ge),{"as-child":"",active:Q,onSelect:H.onSelect},{default:h(()=>[T(te,O({ref_for:!0},We,{"data-slot":"childLink",class:o.value.childLink({class:[e(t).ui?.childLink,a.ui?.childLink,H.class],active:Q})}),{default:h(()=>[H.icon?(f(),C(W,{key:0,name:H.icon,"data-slot":"childLinkIcon",class:q(o.value.childLinkIcon({class:[e(t).ui?.childLinkIcon,a.ui?.childLinkIcon],active:Q}))},null,8,["name","class"])):V("",!0),Y("span",{"data-slot":"childLinkLabel",class:q(o.value.childLinkLabel({class:[e(t).ui?.childLinkLabel,a.ui?.childLinkLabel],active:Q}))},[ce(ee(e(X)(H,e(t).labelKey))+" ",1),H.target==="_blank"&&e(t).externalIcon!==!1?(f(),C(W,{key:0,name:typeof e(t).externalIcon=="string"?e(t).externalIcon:e(d).ui.icons.external,"data-slot":"childLinkLabelExternalIcon",class:q(o.value.childLinkLabelExternalIcon({class:[e(t).ui?.childLinkLabelExternalIcon,a.ui?.childLinkLabelExternalIcon],active:Q}))},null,8,["name","class"])):V("",!0)],2)]),_:2},1040,["class"])]),_:2},1032,["active","onSelect"])]),_:2},1040)],2))),128))],2)])]),default:h(()=>[T(te,O(U,{"data-slot":"link",class:o.value.link({class:[e(t).ui?.link,a.ui?.link,a.class],active:A||a.active,disabled:!!a.disabled,level:k>0})}),{default:h(()=>[T(e(_),{item:a,active:A||a.active,index:m},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1040,["ui"])):e(t).orientation==="vertical"&&e(t).collapsed&&(e(t).tooltip||a.tooltip)||e(t).orientation==="horizontal"&&a.tooltip?(f(),C(ft,O({key:1,text:e(X)(a,e(t).labelKey)},{...I.value,...typeof a.tooltip=="boolean"?{}:a.tooltip||{}}),{default:h(()=>[T(te,O(U,{"data-slot":"link",class:o.value.link({class:[e(t).ui?.link,a.ui?.link,a.class],active:A||a.active,disabled:!!a.disabled,level:k>0})}),{default:h(()=>[T(e(_),{item:a,active:A||a.active,index:m},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1040,["text"])):(f(),C(te,O({key:2},U,{"data-slot":"link",class:o.value.link({class:[e(t).ui?.link,a.ui?.link,a.class],active:A||a.active,disabled:!!a.disabled,level:e(t).orientation==="horizontal"||k>0})}),{default:h(()=>[T(e(_),{item:a,active:A||a.active,index:m},null,8,["item","active","index"])]),_:2},1040,["class"]))]),_:2},1064,["active","disabled","onSelect"])),e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])?(f(),C(e(Ht),O({key:0},x.value,{"data-slot":"content",class:o.value.content({class:[e(t).ui?.content,a.ui?.content]})}),{default:h(()=>[D(v.$slots,a.slot?`${a.slot}-content`:"item-content",{item:a,active:A||a.active,index:m,ui:o.value},()=>[Y("ul",{"data-slot":"childList",class:q(o.value.childList({class:[e(t).ui?.childList,a.ui?.childList]}))},[(f(!0),$(j,null,ae(a.children,(F,H)=>(f(),$("li",{key:H,"data-slot":"childItem",class:q(o.value.childItem({class:[e(t).ui?.childItem,a.ui?.childItem]}))},[T(fe,O({ref_for:!0},e(pe)(F),{custom:""}),{default:h(({active:G,...Q})=>[T(e(ge),{"as-child":"",active:G,onSelect:F.onSelect},{default:h(()=>[T(te,O({ref_for:!0},Q,{"data-slot":"childLink",class:o.value.childLink({class:[e(t).ui?.childLink,a.ui?.childLink,F.class],active:G})}),{default:h(()=>[F.icon?(f(),C(W,{key:0,name:F.icon,"data-slot":"childLinkIcon",class:q(o.value.childLinkIcon({class:[e(t).ui?.childLinkIcon,a.ui?.childLinkIcon],active:G}))},null,8,["name","class"])):V("",!0),Y("div",{"data-slot":"childLinkWrapper",class:q(o.value.childLinkWrapper({class:[e(t).ui?.childLinkWrapper,a.ui?.childLinkWrapper]}))},[Y("p",{"data-slot":"childLinkLabel",class:q(o.value.childLinkLabel({class:[e(t).ui?.childLinkLabel,a.ui?.childLinkLabel],active:G}))},[ce(ee(e(X)(F,e(t).labelKey))+" ",1),F.target==="_blank"&&e(t).externalIcon!==!1?(f(),C(W,{key:0,name:typeof e(t).externalIcon=="string"?e(t).externalIcon:e(d).ui.icons.external,"data-slot":"childLinkLabelExternalIcon",class:q(o.value.childLinkLabelExternalIcon({class:[e(t).ui?.childLinkLabelExternalIcon,a.ui?.childLinkLabelExternalIcon],active:G}))},null,8,["name","class"])):V("",!0)],2),F.description?(f(),$("p",{key:0,"data-slot":"childLinkDescription",class:q(o.value.childLinkDescription({class:[e(t).ui?.childLinkDescription,a.ui?.childLinkDescription],active:G}))},ee(F.description),3)):V("",!0)],2)]),_:2},1040,["class"])]),_:2},1032,["active","onSelect"])]),_:2},1040)],2))),128))],2)])]),_:2},1040,["class"])):V("",!0)]),_:2},1040)):V("",!0),e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed?(f(),C(e(Ot),{key:2,"data-slot":"content",class:q(o.value.content({class:[e(t).ui?.content,a.ui?.content]}))},{default:h(()=>[T(e(De),O({...e(c),defaultValue:b(a.children,k+1,S)},{as:"ul","data-slot":"childList",class:o.value.childList({class:[e(t).ui?.childList,a.ui?.childList]})}),{default:h(()=>[(f(!0),$(j,null,ae(a.children,(A,U)=>(f(),C(e(L),{key:U,item:A,index:U,level:k+1,"list-index":S,"data-slot":"childItem",class:q(o.value.childItem({class:[e(t).ui?.childItem,A.ui?.childItem]}))},null,8,["item","index","level","list-index","class"]))),128))]),_:2},1040,["class"])]),_:2},1032,["class"])):V("",!0)]),_:2},1040,["value"]))]),_:3}),T(e($t),O({"data-slot":"root"},{...e(s),...e(t).orientation==="horizontal"?{modelValue:e(t).modelValue,defaultValue:e(t).defaultValue}:{},...v.$attrs},{"data-collapsed":e(t).collapsed,class:o.value.root({class:[e(t).ui?.root,e(t).class]})}),{default:h(()=>[D(v.$slots,"list-leading"),(f(!0),$(j,null,ae(R.value,(a,m)=>(f(),$(j,{key:`list-${m}`},[(f(),C(oe(e(t).orientation==="vertical"?e(De):e(Qt)),O({ref_for:!0},e(t).orientation==="vertical"&&!e(t).collapsed?{...e(c),modelValue:e(t).modelValue,defaultValue:e(t).defaultValue??b(a,0,m)}:{},{as:"ul","data-slot":"list",class:o.value.list({class:e(t).ui?.list})}),{default:h(()=>[(f(!0),$(j,null,ae(a,(k,S)=>(f(),C(e(L),{key:`list-${m}-${S}`,item:k,index:S,"list-index":m,"data-slot":"item",class:q(o.value.item({class:[e(t).ui?.item,k.ui?.item]}))},null,8,["item","index","list-index","class"]))),128))]),_:2},1040,["class"])),e(t).orientation==="vertical"&&m<R.value.length-1?(f(),$("div",{key:0,"data-slot":"separator",class:q(o.value.separator({class:e(t).ui?.separator}))},null,2)):V("",!0)],64))),128)),D(v.$slots,"list-trailing"),e(t).orientation==="horizontal"?(f(),$("div",{key:0,"data-slot":"viewportWrapper",class:q(o.value.viewportWrapper({class:e(t).ui?.viewportWrapper}))},[e(t).arrow?(f(),C(e(jt),{key:0,"data-slot":"indicator",class:q(o.value.indicator({class:e(t).ui?.indicator}))},{default:h(()=>[Y("div",{"data-slot":"arrow",class:q(o.value.arrow({class:e(t).ui?.arrow}))},null,2)]),_:1},8,["class"])):V("",!0),T(e(ea),{"data-slot":"viewport",class:q(o.value.viewport({class:e(t).ui?.viewport}))},null,8,["class"])],2)):V("",!0)]),_:3},16,["data-collapsed","class"])],64))}});function ra(u){const{isAdmin:r}=st(),l=dt(),n=N(()=>!l.public.authEnabled||r.value);return N(()=>{const t=n.value,d=u?ut(u):void 0;return pt.filter(s=>!s.roles||t).map(s=>{const c=d?.[s.id]??!1;return{label:s.label,icon:s.icon,to:s.to,...c?{badge:{icon:"i-lucide-lock",color:"neutral"}}:{}}})})}export{oa as _,ra as u};
@@ -1 +0,0 @@
1
- import{b_ as i}from"./BPKwYP2Q.js";import{h as a}from"./r3SBLxtE.js";const l=[{id:"account",label:"Account",icon:"i-lucide-user-round",to:"/settings/account",fields:[{id:"account.display-name",label:"Display name",help:"account.display-name"},{id:"account.email",label:"Email address",help:"account.email"},{id:"account.connected-accounts",label:"Connected accounts",help:"account.connected-accounts"},{id:"account.password",label:"Password",help:"account.password"},{id:"account.auth-toggle",label:"Authentication",help:"settings.auth-toggle",envOnly:!0}]},{id:"users",label:"Users",icon:"i-lucide-users",to:"/settings/users",roles:[i.ADMINISTRATOR],introHelp:"settings.users",fields:[{id:"users.list",label:"Users & roles",help:"settings.users"},{id:"users.api-keys",label:"API keys",help:"settings.api-keys"}]},{id:"notifications",label:"Notifications",icon:"i-lucide-bell",to:"/settings/notifications",fields:[{id:"notifications.smtp",label:"SMTP email delivery",help:"settings.smtp",envOnly:!0},{id:"notifications.test-email",label:"Send test email",help:"notifications.test-email"},{id:"notifications.channels",label:"Notification channels",help:"notifications.channels"},{id:"notifications.subscriptions",label:"My subscriptions",help:"notifications.subscriptions"}]},{id:"tags",label:"Tags",icon:"i-lucide-tags",to:"/settings/tags",roles:[i.ADMINISTRATOR],introHelp:"settings.tags",fields:[{id:"tags.list",label:"Tags",help:"settings.tags"}]},{id:"storage",label:"Storage",icon:"i-lucide-hard-drive",to:"/settings/storage",roles:[i.ADMINISTRATOR],fields:[{id:"storage.backend",label:"Storage backend",help:"settings.storage-backend",envOnly:!0},{id:"storage.stats",label:"Storage statistics",help:"settings.storage-stats"},{id:"storage.cleanup",label:"Cleanup old test runs",help:"settings.cleanup"}]},{id:"wasted-time",label:"Wasted time",icon:"i-lucide-hourglass",to:"/settings/wasted-time",roles:[i.ADMINISTRATOR],introHelp:"settings.wasted-time",fields:[{id:"wasted-time.patterns",label:"Wasted-time patterns",help:"settings.wasted-time"}]},{id:"timeout-hygiene",label:"Timeout hygiene",icon:"i-lucide-scissors",to:"/settings/timeout-hygiene",roles:[i.ADMINISTRATOR],introHelp:"settings.timeout-hygiene",fields:[{id:"timeout-hygiene.thresholds",label:"Detection thresholds",help:"settings.timeout-hygiene"}]},{id:"ai",label:"AI diagnosis",icon:"i-lucide-sparkles",to:"/settings/ai",roles:[i.ADMINISTRATOR],fields:[{id:"ai.diagnosis",label:"Diagnosis model",help:"settings.ai-provider"},{id:"ai.research",label:"Research model",help:"settings.ai-research"},{id:"ai.embedding",label:"Embedding model",help:"settings.embedding-model"},{id:"ai.auto-diagnose",label:"Auto-diagnose",help:"settings.auto-diagnose"},{id:"ai.context-limits",label:"Diagnosis context limits",help:"settings.ai-limits"},{id:"ai.instructions",label:"Global analysis instructions",help:"settings.ai-instructions"},{id:"ai.scm-token",label:"Repository access token",help:"project.scm-token"},{id:"ai.privacy",label:"Privacy notice",help:"settings.privacy"}]},{id:"about",label:"About",icon:"i-lucide-info",to:"/settings/about",fields:[]}];function o(e){return a(e.help)}function r(e){const t=new Set;for(const s of e.fields)for(const n of o(s))t.add(n);return[...t]}function g(e){const t=l.find(s=>s.id===e);if(!t)throw new Error(`Unknown settings page: ${e}`);return t}export{l as S,g,r as p};
@@ -1 +0,0 @@
1
- import{as as o}from"./BPKwYP2Q.js";function n(){const e=o()?.vnode?.scopeId;return e?{[e]:""}:{}}export{n as u};
@@ -1 +0,0 @@
1
- import{d as p,aZ as f,f as r,g as n,K as g,o as s,k as o,c as m,i as t,m as a,_,q as h}from"./BPKwYP2Q.js";import{_ as x}from"./DhA17dqR.js";import"./CQeMb57w.js";import"./r3SBLxtE.js";import"./DuMv-ugy.js";import"./B7yG1G_l.js";const b={key:0,class:"flex max-sm:flex-col justify-between items-start gap-4"},k={key:1,class:"text-sm text-muted"},N=p({__name:"index",setup(v){const i=g().public.demoMode,{isResetting:d,resetDemo:c}=f();return(C,e)=>{const l=_,u=x;return s(),r(u,{icon:"i-lucide-settings",title:"General settings",help:"settings.general"},{actions:n(()=>[o(i)?(s(),r(l,{key:0,color:"error",variant:"soft",icon:"i-lucide-refresh-cw",loading:o(d),onClick:o(c)},{default:n(()=>[...e[0]||(e[0]=[a(" Reset demo ",-1)])]),_:1},8,["loading","onClick"])):h("",!0)]),default:n(()=>[o(i)?(s(),m("div",b,[...e[1]||(e[1]=[t("div",null,[t("p",{class:"font-medium text-sm"},"Reset demo data"),t("p",{class:"text-sm text-muted"}," Wipe the in-browser database and reload with fresh sample data dated to the current moment. All changes made during this demo session will be lost. ")],-1)])])):(s(),m("div",k,[...e[2]||(e[2]=[t("p",null," Appearance and theme are in the top bar. Use the sidebar to manage your account, users, AI diagnosis, notifications, storage, and tags. ",-1),t("p",{class:"mt-2"},[a(" Settings that can be overridden by "),t("code",{class:"font-mono text-xs"},"PIWI_*"),a(" environment variables show a lock badge with the variable name — hover the help icon on any card to see which env var backs a setting. ")],-1)])]))]),_:1})}}});export{N as default};
@@ -1 +0,0 @@
1
- import{_ as $,a as y}from"./Bvfmwzgw.js";import{_ as k,a as C}from"./IFqRT_xJ.js";import{u as B,_ as D}from"./BP_SWi7S.js";import{a1 as M,a3 as S,o as f,f as d,g as i,T as c,i as p,p as u,k as s,V as U,h as _,a6 as N,C as P,r as T,d as j,e as q,j as o,aH as H}from"./BPKwYP2Q.js";import"./iwD5atI2.js";import"./DAWn6Z7h.js";import"./BpceIssd.js";import"./Bf62wdzp.js";import"./r3SBLxtE.js";const V={slots:{root:"shrink-0 flex items-center justify-between border-b border-default px-4 sm:px-6 gap-1.5 overflow-x-auto min-h-[49px]",left:"flex items-center gap-1.5",right:"flex items-center gap-1.5"}},z={__name:"UDashboardToolbar",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(t){const a=M("dashboardToolbar",t),e=S(),l=_(()=>N({extend:V,...e.ui?.dashboardToolbar||{}})());return(r,m)=>(f(),d(s(U),{as:s(a).as,"data-slot":"root",class:u(l.value.root({class:[s(a).ui?.root,s(a).class]}))},{default:i(()=>[c(r.$slots,"default",{},()=>[p("div",{"data-slot":"left",class:u(l.value.left({class:[s(a).ui?.left]}))},[c(r.$slots,"left")],2),p("div",{"data-slot":"right",class:u(l.value.right({class:[s(a).ui?.right]}))},[c(r.$slots,"right")],2)])]),_:3},8,["as","class"]))}};function A(){const t=T({account:!1,users:!1,notifications:!1,tags:!1,storage:!1,"wasted-time":!1,"timeout-hygiene":!1,ai:!1,about:!1});async function n(){const a=[];a.push($fetch("/api/settings/ai").then(e=>{t.value.ai=!!e.envManaged}).catch(()=>{})),a.push($fetch("/api/settings/wasted-waits").then(e=>{t.value["wasted-time"]=!!e.envManaged}).catch(()=>{})),a.push($fetch("/api/settings/smtp").then(e=>{t.value.notifications=!!(e.envManaged&&e.configured)}).catch(()=>{})),await Promise.all(a)}return P(()=>{n()}),{envManaged:t,refresh:n}}const E={class:"flex flex-col gap-4 sm:gap-6 lg:gap-12 w-full lg:max-w-4xl mx-auto"},W=j({__name:"settings",setup(t){q({title:"Settings — Piwi Dashboard"});const{envManaged:n}=A(),a=B(n),e=_(()=>[a.value,[{label:"Documentation",icon:"i-lucide-book-open",to:"https://github.com/piwitests/platform",target:"_blank"}]]);return(l,r)=>{const m=$,g=y,h=C,b=D,v=z,x=H,w=k;return f(),d(w,{id:"settings",ui:{body:"lg:py-12"}},{header:i(()=>[o(h,null,{leading:i(()=>[o(m),o(g,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Settings"}]})]),_:1}),o(v,null,{default:i(()=>[o(b,{items:s(e),highlight:"",class:"-mx-1 flex-1",ui:{list:"overflow-x-auto",root:"min-w-0"}},null,8,["items"])]),_:1})]),body:i(()=>[p("div",E,[o(x)])]),_:1})}}});export{W as default};