@piwitests/server 0.20.0 → 0.22.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 (791) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/2VtBYkNh.js +1 -0
  3. package/.output/public/_nuxt/{BmUfSNMV.js → 3xlGO1qT.js} +1 -1
  4. package/.output/public/_nuxt/{DeY2JkR2.js → 4yvOL9PC.js} +1 -1
  5. package/.output/public/_nuxt/6-ivqM_I.js +17 -0
  6. package/.output/public/_nuxt/{BrQEE053.js → 9N6hSApy.js} +1 -1
  7. package/.output/public/_nuxt/{hC_z4G8p.js → 9P8iHISX.js} +1 -1
  8. package/.output/public/_nuxt/B-6GGrhr.js +1 -0
  9. package/.output/public/_nuxt/B09ddw9C.js +1 -0
  10. package/.output/public/_nuxt/{Dpd16JVI.js → B0hK-xDF.js} +1 -1
  11. package/.output/public/_nuxt/{BdfhYr-u.js → B2a-Phk3.js} +1 -1
  12. package/.output/public/_nuxt/{B99fbi73.js → B6s20NbT.js} +1 -1
  13. package/.output/public/_nuxt/B9FSuKdA.js +1 -0
  14. package/.output/public/_nuxt/B9kt7ySS.js +5 -0
  15. package/.output/public/_nuxt/BDQCwxpX.js +1 -0
  16. package/.output/public/_nuxt/{oAClCn_h.js → BFcdtAzg.js} +1 -1
  17. package/.output/public/_nuxt/{CeG9pBAD.js → BH-ym1CI.js} +1 -1
  18. package/.output/public/_nuxt/{AbmKWFQQ.js → BKJetfRH.js} +1 -1
  19. package/.output/public/_nuxt/BNAHBHbY.js +1 -0
  20. package/.output/public/_nuxt/BQOWm9mQ.js +1 -0
  21. package/.output/public/_nuxt/{DJxlKFGb.js → BQzG26t0.js} +1 -1
  22. package/.output/public/_nuxt/{DabzhQB1.js → BTvE9qca.js} +1 -1
  23. package/.output/public/_nuxt/{C2hkrSey.js → BUMoU50-.js} +1 -1
  24. package/.output/public/_nuxt/{C1gTN4Q8.js → BVN50jIb.js} +1 -1
  25. package/.output/public/_nuxt/BYB8NVJZ.js +1 -0
  26. package/.output/public/_nuxt/{BicAJ6U8.js → BZnfiR67.js} +1 -1
  27. package/.output/public/_nuxt/{5A6ITZXj.js → B_mN5eMV.js} +1 -1
  28. package/.output/public/_nuxt/BaDhDBCV.js +1 -0
  29. package/.output/public/_nuxt/Bb7Uckln.js +5 -0
  30. package/.output/public/_nuxt/Be4c943G.js +2 -0
  31. package/.output/public/_nuxt/{CsLojMwR.js → BfS8BZTO.js} +1 -1
  32. package/.output/public/_nuxt/{KyA_4Ks-.js → BhH0TNTi.js} +1 -1
  33. package/.output/public/_nuxt/BjU3HZuS.js +1 -0
  34. package/.output/public/_nuxt/{DrfE8IY0.js → BlRWlfdD.js} +1 -1
  35. package/.output/public/_nuxt/BmJUhCIO.js +6 -0
  36. package/.output/public/_nuxt/BpUXqOVj.js +2 -0
  37. package/.output/public/_nuxt/BqCiYSVY.js +1 -0
  38. package/.output/public/_nuxt/Bt4FLbe0.js +1 -0
  39. package/.output/public/_nuxt/{Bm62iDV5.js → BtSJxOdh.js} +1 -1
  40. package/.output/public/_nuxt/{Und3xXFc.js → BtaTvcz6.js} +2 -2
  41. package/.output/public/_nuxt/{hNh4CIL0.js → By5qkOq8.js} +1 -1
  42. package/.output/public/_nuxt/{Bnxf8nbZ.js → C0v6l4pr.js} +1 -1
  43. package/.output/public/_nuxt/{CXEH9OPk.js → C9p0YCAi.js} +1 -1
  44. package/.output/public/_nuxt/{Dyeqn3aG.js → CAZpjzvB.js} +1 -1
  45. package/.output/public/_nuxt/{CjPfj7ya.js → CBZD8ym8.js} +1 -1
  46. package/.output/public/_nuxt/CCP6Tyle.js +1 -0
  47. package/.output/public/_nuxt/{DuwtTfO8.js → CD3R-ggS.js} +2 -2
  48. package/.output/public/_nuxt/{CxyAzHr3.js → CDh_Qt7h.js} +1 -1
  49. package/.output/public/_nuxt/CI_q0F1O.js +9 -0
  50. package/.output/public/_nuxt/CJEp4i0N.js +1 -0
  51. package/.output/public/_nuxt/{l5WKbU4h.js → CMhK1PvI.js} +3 -3
  52. package/.output/public/_nuxt/{H94BMf3L.js → CNcu4khZ.js} +1 -1
  53. package/.output/public/_nuxt/COP3KBCA.js +9 -0
  54. package/.output/public/_nuxt/{BT3wGCTI.js → CRPt9SfB.js} +1 -1
  55. package/.output/public/_nuxt/{DsesNydr.js → CScusXhF.js} +1 -1
  56. package/.output/public/_nuxt/{-f7BAm1H.js → CWoSSKhQ.js} +1 -1
  57. package/.output/public/_nuxt/{CAvY22RE.js → CWw9WGlv.js} +1 -1
  58. package/.output/public/_nuxt/{DdwHkKfV.js → CZ9ThISn.js} +1 -1
  59. package/.output/public/_nuxt/Cd8r0xk5.js +1 -0
  60. package/.output/public/_nuxt/Cf52zHyB.js +1 -0
  61. package/.output/public/_nuxt/{GPNI1ffD.js → CkKCKAYp.js} +2 -2
  62. package/.output/public/_nuxt/CkyMZI-0.js +1 -0
  63. package/.output/public/_nuxt/CoPntblj.js +1 -0
  64. package/.output/public/_nuxt/CobveFaj.js +1 -0
  65. package/.output/public/_nuxt/Cot8fIp5.js +2 -0
  66. package/.output/public/_nuxt/{D5tke0B5.js → CrOA9onF.js} +1 -1
  67. package/.output/public/_nuxt/{FaFoMVKo.js → Cwwe5bRS.js} +1 -1
  68. package/.output/public/_nuxt/D0ROfwV0.js +1 -0
  69. package/.output/public/_nuxt/{L3kAWB2a.js → D4UlSVir.js} +1 -1
  70. package/.output/public/_nuxt/D4oheDIm.js +4 -0
  71. package/.output/public/_nuxt/{CAAwCT7H.js → D6Mo5HeX.js} +1 -1
  72. package/.output/public/_nuxt/{Cnsmicv2.js → DBhdObsO.js} +34 -34
  73. package/.output/public/_nuxt/{A1pj0VnG.js → DDN2tt0a.js} +1 -1
  74. package/.output/public/_nuxt/DGnQ69wW.js +64 -0
  75. package/.output/public/_nuxt/{Cus22Ud3.js → DGyGmFem.js} +2 -2
  76. package/.output/public/_nuxt/{CzAPFPpL.js → DHUT-BKj.js} +1 -1
  77. package/.output/public/_nuxt/DK7xciFW.js +7 -0
  78. package/.output/public/_nuxt/{C0_yH0N7.js → DLNNAYfu.js} +1 -1
  79. package/.output/public/_nuxt/DLn-VPtK.js +34 -0
  80. package/.output/public/_nuxt/{CA9B2HE5.js → DOBSrxzY.js} +1 -1
  81. package/.output/public/_nuxt/{Dy-TJ0Mt.js → DOLeth7M.js} +1 -1
  82. package/.output/public/_nuxt/{CNyV9YpI.js → DQnsFoJn.js} +1 -1
  83. package/.output/public/_nuxt/DS2ANCQh.js +1 -0
  84. package/.output/public/_nuxt/{bLcjFslv.js → DSvBQHzW.js} +1 -1
  85. package/.output/public/_nuxt/{BzRRzmwm.js → DWEkQ7bl.js} +1 -1
  86. package/.output/public/_nuxt/DWwiVTZX.js +24 -0
  87. package/.output/public/_nuxt/DXXnDejN.js +1 -0
  88. package/.output/public/_nuxt/{B3obW6cw.js → Dj-TetcW.js} +2 -2
  89. package/.output/public/_nuxt/DpalT0nH.js +1 -0
  90. package/.output/public/_nuxt/{Bow4tTR0.js → DsX5CCb5.js} +1 -1
  91. package/.output/public/_nuxt/DslnXfcH.js +1 -0
  92. package/.output/public/_nuxt/DtSn2Q9-.js +1 -0
  93. package/.output/public/_nuxt/DwyFnMoY.js +44 -0
  94. package/.output/public/_nuxt/{CJFtzlQ4.js → DzM9oeLa.js} +1 -1
  95. package/.output/public/_nuxt/{BKkF4pPD.js → Gik813Ek.js} +1 -1
  96. package/.output/public/_nuxt/{pQqGiNch.js → Hot1UcKY.js} +1 -1
  97. package/.output/public/_nuxt/{DPCxhHri.js → HwFFbACq.js} +1 -1
  98. package/.output/public/_nuxt/{DJmoLeVt.js → PdEEuEsg.js} +1 -1
  99. package/.output/public/_nuxt/SBmMTKQb.js +1 -0
  100. package/.output/public/_nuxt/{C8e1EbJI.js → Sgis3xif.js} +1 -1
  101. package/.output/public/_nuxt/{CTU1mrhq.js → _VzR8bwc.js} +1 -1
  102. package/.output/public/_nuxt/{CeW8v31b.js → b_yFgp5S.js} +1 -1
  103. package/.output/public/_nuxt/builds/latest.json +1 -1
  104. package/.output/public/_nuxt/builds/meta/5f1ebc7c-d690-4f02-847f-a3249653f75f.json +1 -0
  105. package/.output/public/_nuxt/{b-GYfcrQ.js → cSeAgciy.js} +1 -1
  106. package/.output/public/_nuxt/{CwGWJbiy.js → czXrP7NB.js} +1 -1
  107. package/.output/public/_nuxt/entry.BAvBQY-h.css +1 -0
  108. package/.output/public/_nuxt/{Du2W7Jne.js → h49q_GXF.js} +42 -42
  109. package/.output/public/_nuxt/hzsG6cAc.js +1 -0
  110. package/.output/public/_nuxt/iubpj2qv.js +1 -0
  111. package/.output/public/_nuxt/jjOqY9Tv.js +1 -0
  112. package/.output/public/_nuxt/kfFeu9tK.js +1 -0
  113. package/.output/public/_nuxt/nANaAHCd.js +5 -0
  114. package/.output/public/_nuxt/{CIrFl3MW.js → t-juTK3X.js} +1 -1
  115. package/.output/public/_nuxt/{4gYNA-d4.js → x8YSyy4c.js} +1 -1
  116. package/.output/public/_nuxt/{DfgOx_ou.js → x8w_1_rn.js} +1 -1
  117. package/.output/public/_nuxt/xbO0VmDX.js +1 -0
  118. package/.output/server/chunks/_/collect.mjs +1 -1
  119. package/.output/server/chunks/_/error-500.mjs.map +1 -1
  120. package/.output/server/chunks/_/markers.mjs +1 -1
  121. package/.output/server/chunks/_/quarantine.mjs +1 -1
  122. package/.output/server/chunks/_/scope.mjs +43 -27
  123. package/.output/server/chunks/_/scope.mjs.map +1 -1
  124. package/.output/server/chunks/_/users.mjs +1 -1
  125. package/.output/server/chunks/build/{Alert-C4xq8lao.mjs → Alert-DAb8nKVs.mjs} +2 -2
  126. package/.output/server/chunks/build/Alert-DAb8nKVs.mjs.map +1 -0
  127. package/.output/server/chunks/build/{Breadcrumb-Ak2Lg3oM.mjs → Breadcrumb-DJp5WvUM.mjs} +5 -5
  128. package/.output/server/chunks/build/Breadcrumb-DJp5WvUM.mjs.map +1 -0
  129. package/.output/server/chunks/build/{BreadcrumbNav-DO7I_z-n.mjs → BreadcrumbNav-BrQwfL8G.mjs} +2 -2
  130. package/.output/server/chunks/build/BreadcrumbNav-BrQwfL8G.mjs.map +1 -0
  131. package/.output/server/chunks/build/{BrowserBadge-MFvBwxmD.mjs → BrowserBadge-Djw_e_I9.mjs} +3 -3
  132. package/.output/server/chunks/build/BrowserBadge-Djw_e_I9.mjs.map +1 -0
  133. package/.output/server/chunks/build/{Card-BQP_oZkQ.mjs → Card--Ike7sYc.mjs} +2 -2
  134. package/.output/server/chunks/build/Card--Ike7sYc.mjs.map +1 -0
  135. package/.output/server/chunks/build/{ChartCard-Y1UKwMsf.mjs → ChartCard-B2gd_8HP.mjs} +2 -2
  136. package/.output/server/chunks/build/ChartCard-B2gd_8HP.mjs.map +1 -0
  137. package/.output/server/chunks/build/{ChartMarkerTooltip-0DcMfD_6.mjs → ChartMarkerTooltip-u_1DUHh-.mjs} +2 -2
  138. package/.output/server/chunks/build/ChartMarkerTooltip-u_1DUHh-.mjs.map +1 -0
  139. package/.output/server/chunks/build/{Checkbox-4Q5d0fa0.mjs → Checkbox-C1khEdTh.mjs} +4 -4
  140. package/.output/server/chunks/build/Checkbox-C1khEdTh.mjs.map +1 -0
  141. package/.output/server/chunks/build/{CodeBlock-BgE-NSmE.mjs → CodeBlock-CjnDrO3Y.mjs} +4 -4
  142. package/.output/server/chunks/build/CodeBlock-CjnDrO3Y.mjs.map +1 -0
  143. package/.output/server/chunks/build/{DashboardNavbar-BHmMSPX7.mjs → DashboardNavbar-DYtmVlhy.mjs} +5 -5
  144. package/.output/server/chunks/build/DashboardNavbar-DYtmVlhy.mjs.map +1 -0
  145. package/.output/server/chunks/build/{DashboardSidebarToggle-DCTnHiIv.mjs → DashboardSidebarToggle-BPNxODwj.mjs} +5 -5
  146. package/.output/server/chunks/build/DashboardSidebarToggle-BPNxODwj.mjs.map +1 -0
  147. package/.output/server/chunks/build/{DataLocationCard-B_YHdzSz.mjs → DataLocationCard-2B-sVSMr.mjs} +5 -5
  148. package/.output/server/chunks/build/DataLocationCard-2B-sVSMr.mjs.map +1 -0
  149. package/.output/server/chunks/build/{DiagnosisPanel-CALyEmcJ.mjs → DiagnosisPanel-D6QO30FQ.mjs} +9 -8
  150. package/.output/server/chunks/build/DiagnosisPanel-D6QO30FQ.mjs.map +1 -0
  151. package/.output/server/chunks/build/{useAiStatus-CxjMmDDY.mjs → DiagnosisResult-ujB5Lt2A.mjs} +12 -34
  152. package/.output/server/chunks/build/DiagnosisResult-ujB5Lt2A.mjs.map +1 -0
  153. package/.output/server/chunks/build/{DurationValue-D20oGbnc.mjs → DurationValue-UX9uajQJ.mjs} +2 -2
  154. package/.output/server/chunks/build/DurationValue-UX9uajQJ.mjs.map +1 -0
  155. package/.output/server/chunks/build/{EntityLinks-BBHWssHH.mjs → EntityLinks-F8_kC-IH.mjs} +6 -6
  156. package/.output/server/chunks/build/EntityLinks-F8_kC-IH.mjs.map +1 -0
  157. package/.output/server/chunks/build/{EnvManagedBadge-UwD2b9v2.mjs → EnvManagedBadge-D6e-10M9.mjs} +3 -3
  158. package/.output/server/chunks/build/EnvManagedBadge-D6e-10M9.mjs.map +1 -0
  159. package/.output/server/chunks/build/FeatureUnavailable-BMw4euTk.mjs +83 -0
  160. package/.output/server/chunks/build/FeatureUnavailable-BMw4euTk.mjs.map +1 -0
  161. package/.output/server/chunks/build/{FormField-B0HKsdMd.mjs → FormField-QptK0rPg.mjs} +3 -3
  162. package/.output/server/chunks/build/FormField-QptK0rPg.mjs.map +1 -0
  163. package/.output/server/chunks/build/GetStartedWizard-DxT8T14Y.mjs +510 -0
  164. package/.output/server/chunks/build/GetStartedWizard-DxT8T14Y.mjs.map +1 -0
  165. package/.output/server/chunks/build/{HelpHint-DrcIv-Oj.mjs → HelpHint-C5Ru8BCc.mjs} +3 -3
  166. package/.output/server/chunks/build/HelpHint-C5Ru8BCc.mjs.map +1 -0
  167. package/.output/server/chunks/build/{LoadingState-C3pBSuOO.mjs → LoadingState-CwpfmI0W.mjs} +3 -3
  168. package/.output/server/chunks/build/LoadingState-CwpfmI0W.mjs.map +1 -0
  169. package/.output/server/chunks/build/{MarkerBadge-D7meXy4u.mjs → MarkerBadge-Biz5--h2.mjs} +1 -1
  170. package/.output/server/chunks/build/MarkerBadge-Biz5--h2.mjs.map +1 -0
  171. package/.output/server/chunks/build/{CiEnvCard-DB5DvBh1.mjs → MetaStripGroup-BBByVvpR.mjs} +242 -529
  172. package/.output/server/chunks/build/MetaStripGroup-BBByVvpR.mjs.map +1 -0
  173. package/.output/server/chunks/build/{MiniRunBars-CZMugDrh.mjs → MiniRunBars-fgLMgRUp.mjs} +2 -2
  174. package/.output/server/chunks/build/MiniRunBars-fgLMgRUp.mjs.map +1 -0
  175. package/.output/server/chunks/build/{Modal-pSDlXzT3.mjs → Modal-BacZmQCX.mjs} +3 -3
  176. package/.output/server/chunks/build/Modal-BacZmQCX.mjs.map +1 -0
  177. package/.output/server/chunks/build/{useSettingsNav-DnQKacz8.mjs → NavigationMenu-sTiKSWDm.mjs} +7 -30
  178. package/.output/server/chunks/build/NavigationMenu-sTiKSWDm.mjs.map +1 -0
  179. package/.output/server/chunks/build/{OpenInIdeLink-CQWKKChd.mjs → OpenInIdeLink-Crc8y0Yx.mjs} +6 -6
  180. package/.output/server/chunks/build/{OpenInIdeLink-CQWKKChd.mjs.map → OpenInIdeLink-Crc8y0Yx.mjs.map} +1 -1
  181. package/.output/server/chunks/build/{ProjectTestCasesTable-Bo61P5K1.mjs → ProjectTestCasesTable-DwjqZ2i5.mjs} +17 -17
  182. package/.output/server/chunks/build/{ProjectTestCasesTable-Bo61P5K1.mjs.map → ProjectTestCasesTable-DwjqZ2i5.mjs.map} +1 -1
  183. package/.output/server/chunks/build/{RunReports-DFLv51TX.mjs → RunReports-nuLb-Nm3.mjs} +3 -3
  184. package/.output/server/chunks/build/RunReports-nuLb-Nm3.mjs.map +1 -0
  185. package/.output/server/chunks/build/{RunStatusBadge-FfGb6bkW.mjs → RunStatusBadge-CvWmcFYM.mjs} +2 -2
  186. package/.output/server/chunks/build/RunStatusBadge-CvWmcFYM.mjs.map +1 -0
  187. package/.output/server/chunks/build/{SectionCard-CN-v0FZ_.mjs → SectionCard-C753B3Yo.mjs} +3 -3
  188. package/.output/server/chunks/build/SectionCard-C753B3Yo.mjs.map +1 -0
  189. package/.output/server/chunks/build/{Select-5DK9frQ7.mjs → Select-BAyYwPuo.mjs} +4 -4
  190. package/.output/server/chunks/build/Select-BAyYwPuo.mjs.map +1 -0
  191. package/.output/server/chunks/build/{SelectMenu-D-2FSqBU.mjs → SelectMenu-zE_AhMX8.mjs} +4 -4
  192. package/.output/server/chunks/build/{SelectMenu-D-2FSqBU.mjs.map → SelectMenu-zE_AhMX8.mjs.map} +1 -1
  193. package/.output/server/chunks/build/{Separator-CR4WcEKD.mjs → Separator-BbgCfKKJ.mjs} +3 -3
  194. package/.output/server/chunks/build/Separator-BbgCfKKJ.mjs.map +1 -0
  195. package/.output/server/chunks/build/{SettingsField-BZfx4ma1.mjs → SettingsField-D-VriK9X.mjs} +5 -5
  196. package/.output/server/chunks/build/SettingsField-D-VriK9X.mjs.map +1 -0
  197. package/.output/server/chunks/build/{Skeleton-CEHuuKVh.mjs → Skeleton-DAp_WMEe.mjs} +2 -2
  198. package/.output/server/chunks/build/Skeleton-DAp_WMEe.mjs.map +1 -0
  199. package/.output/server/chunks/build/{Slideover-D270EZZD.mjs → Slideover-CNbGvbUF.mjs} +3 -3
  200. package/.output/server/chunks/build/Slideover-CNbGvbUF.mjs.map +1 -0
  201. package/.output/server/chunks/build/{StatTile-D61Vzo6e.mjs → StatTile-DpcVQFVI.mjs} +2 -26
  202. package/.output/server/chunks/build/StatTile-DpcVQFVI.mjs.map +1 -0
  203. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs +30 -0
  204. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs.map +1 -0
  205. package/.output/server/chunks/build/{Switch-B5Fp8ULt.mjs → Switch-DdkA3Fii.mjs} +3 -3
  206. package/.output/server/chunks/build/Switch-DdkA3Fii.mjs.map +1 -0
  207. package/.output/server/chunks/build/{Table-BRk04Hd2.mjs → Table-CfDVAuUJ.mjs} +4 -4
  208. package/.output/server/chunks/build/Table-CfDVAuUJ.mjs.map +1 -0
  209. package/.output/server/chunks/build/{Tabs-BkSOnbaB.mjs → Tabs-BCOhHEB9.mjs} +2 -2
  210. package/.output/server/chunks/build/Tabs-BCOhHEB9.mjs.map +1 -0
  211. package/.output/server/chunks/build/{TestCaseHistoryChart-CSi64vVA.mjs → TestCaseHistoryChart-CKDXQ2GI.mjs} +4 -4
  212. package/.output/server/chunks/build/TestCaseHistoryChart-CKDXQ2GI.mjs.map +1 -0
  213. package/.output/server/chunks/build/{TestMetaBadges-D5_yUtIP.mjs → TestMetaBadges-BlyKmfeP.mjs} +1 -1
  214. package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +1 -0
  215. package/.output/server/chunks/build/{TestStatusBar-DX3EhlyP.mjs → TestStatusBar-wquHQqtp.mjs} +4 -4
  216. package/.output/server/chunks/build/TestStatusBar-wquHQqtp.mjs.map +1 -0
  217. package/.output/server/chunks/build/{Textarea-Dv2-lOvW.mjs → Textarea-Ohs6QTXf.mjs} +3 -3
  218. package/.output/server/chunks/build/Textarea-Ohs6QTXf.mjs.map +1 -0
  219. package/.output/server/chunks/build/{Tooltip-Dv4htNP6.mjs → Tooltip-BRBnl4pE.mjs} +3 -3
  220. package/.output/server/chunks/build/Tooltip-BRBnl4pE.mjs.map +1 -0
  221. package/.output/server/chunks/build/{_id_-BxA6IgWr.mjs → _id_-BesWjK_d.mjs} +900 -394
  222. package/.output/server/chunks/build/_id_-BesWjK_d.mjs.map +1 -0
  223. package/.output/server/chunks/build/{_id_-C_uSBiyU.mjs → _id_-CGs0u8Fr.mjs} +38 -36
  224. package/.output/server/chunks/build/_id_-CGs0u8Fr.mjs.map +1 -0
  225. package/.output/server/chunks/build/{_id_-BdG37K7s.mjs → _id_-CQ0lolEK.mjs} +31 -28
  226. package/.output/server/chunks/build/_id_-CQ0lolEK.mjs.map +1 -0
  227. package/.output/server/chunks/build/{_id_-BdJs7BJZ.mjs → _id_-D1-06Fcl.mjs} +1913 -1121
  228. package/.output/server/chunks/build/_id_-D1-06Fcl.mjs.map +1 -0
  229. package/.output/server/chunks/build/{about-BE0UV-8-.mjs → about-DdyOj-dj.mjs} +25 -455
  230. package/.output/server/chunks/build/about-DdyOj-dj.mjs.map +1 -0
  231. package/.output/server/chunks/build/{account-DAfvaD-F.mjs → account-7aVMKekZ.mjs} +11 -9
  232. package/.output/server/chunks/build/account-7aVMKekZ.mjs.map +1 -0
  233. package/.output/server/chunks/build/{ai-Cn05ch0u.mjs → ai-zw3T9b5u.mjs} +24 -22
  234. package/.output/server/chunks/build/{ai-Cn05ch0u.mjs.map → ai-zw3T9b5u.mjs.map} +1 -1
  235. package/.output/server/chunks/build/{analytics-Bo_B_jko.mjs → analytics-CeCzKwEX.mjs} +105 -76
  236. package/.output/server/chunks/build/analytics-CeCzKwEX.mjs.map +1 -0
  237. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  238. package/.output/server/chunks/build/{compare-RxHSOdsO.mjs → compare-B2OB3zdd.mjs} +4 -1
  239. package/.output/server/chunks/build/compare-B2OB3zdd.mjs.map +1 -0
  240. package/.output/server/chunks/build/{db.client-CQoVTYB9.mjs → db.client-Bdqk_eYQ.mjs} +40 -2
  241. package/.output/server/chunks/build/db.client-Bdqk_eYQ.mjs.map +1 -0
  242. package/.output/server/chunks/build/{default-CbNHaFsy.mjs → default-CkyAx_Mu.mjs} +48 -33
  243. package/.output/server/chunks/build/{default-CbNHaFsy.mjs.map → default-CkyAx_Mu.mjs.map} +1 -1
  244. package/.output/server/chunks/build/{docs-B_llWMxx.mjs → docs-Dhj-wEks.mjs} +18 -16
  245. package/.output/server/chunks/build/{docs-B_llWMxx.mjs.map → docs-Dhj-wEks.mjs.map} +1 -1
  246. package/.output/server/chunks/build/{edit-J0asTFg8.mjs → edit-CVz_gdoe.mjs} +17 -16
  247. package/.output/server/chunks/build/edit-CVz_gdoe.mjs.map +1 -0
  248. package/.output/server/chunks/build/{fetch-B4FwBOzu.mjs → fetch-Be-j7hF1.mjs} +32 -4
  249. package/.output/server/chunks/build/fetch-Be-j7hF1.mjs.map +1 -0
  250. package/.output/server/chunks/build/{forgot-password-CC__1OnV.mjs → forgot-password-CwdjL7BO.mjs} +8 -5
  251. package/.output/server/chunks/build/forgot-password-CwdjL7BO.mjs.map +1 -0
  252. package/.output/server/chunks/build/{import-CS9oylTN.mjs → import-DyQEw4V3.mjs} +17 -15
  253. package/.output/server/chunks/build/import-DyQEw4V3.mjs.map +1 -0
  254. package/.output/server/chunks/build/{index-CU2nZhAa.mjs → index-ByWTzqF6.mjs} +2 -1
  255. package/.output/server/chunks/build/index-ByWTzqF6.mjs.map +1 -0
  256. package/.output/server/chunks/build/{index-DE45ycdZ.mjs → index-D7Bmj6bq.mjs} +19 -18
  257. package/.output/server/chunks/build/index-D7Bmj6bq.mjs.map +1 -0
  258. package/.output/server/chunks/build/{index-e9skCi-V.mjs → index-DcnICCZU.mjs} +43 -539
  259. package/.output/server/chunks/build/index-DcnICCZU.mjs.map +1 -0
  260. package/.output/server/chunks/build/{index-hGHlmyxj.mjs → index-DghAFpNR.mjs} +132 -89
  261. package/.output/server/chunks/build/{index-hGHlmyxj.mjs.map → index-DghAFpNR.mjs.map} +1 -1
  262. package/.output/server/chunks/build/index-ID913tUa.mjs +93 -0
  263. package/.output/server/chunks/build/index-ID913tUa.mjs.map +1 -0
  264. package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs +1 -1
  265. package/.output/server/chunks/build/{login-Da4u1IlW.mjs → login-rXKF63j6.mjs} +12 -9
  266. package/.output/server/chunks/build/login-rXKF63j6.mjs.map +1 -0
  267. package/.output/server/chunks/build/{mcp-uhVCCwQM.mjs → mcp-ByNvFy4o.mjs} +254 -22
  268. package/.output/server/chunks/build/mcp-ByNvFy4o.mjs.map +1 -0
  269. package/.output/server/chunks/build/{notifications-fx_qnKGA.mjs → notifications-CbLAZnKJ.mjs} +18 -16
  270. package/.output/server/chunks/build/notifications-CbLAZnKJ.mjs.map +1 -0
  271. package/.output/server/chunks/build/performance-C93MEPaZ.mjs +581 -0
  272. package/.output/server/chunks/build/performance-C93MEPaZ.mjs.map +1 -0
  273. package/.output/server/chunks/build/{pr-feedback-X6-70iF0.mjs → pr-feedback-DKCB0bDE.mjs} +12 -10
  274. package/.output/server/chunks/build/pr-feedback-DKCB0bDE.mjs.map +1 -0
  275. package/.output/server/chunks/build/{reset-password-BmrUS4ZD.mjs → reset-password-BBoHKMqD.mjs} +8 -5
  276. package/.output/server/chunks/build/reset-password-BBoHKMqD.mjs.map +1 -0
  277. package/.output/server/chunks/build/server.mjs +86 -72
  278. package/.output/server/chunks/build/server.mjs.map +1 -1
  279. package/.output/server/chunks/build/{settings-CCYe7rsc.mjs → settings-DiG0JjzC.mjs} +18 -26
  280. package/.output/server/chunks/build/settings-DiG0JjzC.mjs.map +1 -0
  281. package/.output/server/chunks/build/{settings-metadata-DrEqWcW-.mjs → settings-metadata-DnAK4Rzg.mjs} +40 -18
  282. package/.output/server/chunks/build/settings-metadata-DnAK4Rzg.mjs.map +1 -0
  283. package/.output/server/chunks/build/setup-0-1O6Hjz.mjs +1065 -0
  284. package/.output/server/chunks/build/setup-0-1O6Hjz.mjs.map +1 -0
  285. package/.output/server/chunks/build/{storage-CJEmviCD.mjs → storage-3JiFJ843.mjs} +18 -16
  286. package/.output/server/chunks/build/storage-3JiFJ843.mjs.map +1 -0
  287. package/.output/server/chunks/build/{tags-DauTe_F-.mjs → tags-CqYcp7js.mjs} +11 -10
  288. package/.output/server/chunks/build/tags-CqYcp7js.mjs.map +1 -0
  289. package/.output/server/chunks/build/{test-cases-thBbAykw.mjs → test-cases-y1HSgPX2.mjs} +26 -24
  290. package/.output/server/chunks/build/test-cases-y1HSgPX2.mjs.map +1 -0
  291. package/.output/server/chunks/build/test-functions-D2ju95Ly.mjs +552 -0
  292. package/.output/server/chunks/build/test-functions-D2ju95Ly.mjs.map +1 -0
  293. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs +9 -0
  294. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs.map +1 -0
  295. package/.output/server/chunks/build/{useChartMarkers-C89e_VLV.mjs → useChartMarkers-C0wSO0xk.mjs} +1 -1
  296. package/.output/server/chunks/build/useChartMarkers-C0wSO0xk.mjs.map +1 -0
  297. package/.output/server/chunks/build/{useCopyRich-RJKhWoyj.mjs → useCopyRich-CVFeYfkG.mjs} +699 -247
  298. package/.output/server/chunks/build/useCopyRich-CVFeYfkG.mjs.map +1 -0
  299. package/.output/server/chunks/build/{useDesktopDownload-BepjqxOt.mjs → useDesktopDownload-Dyf0fR47.mjs} +2 -2
  300. package/.output/server/chunks/build/useDesktopDownload-Dyf0fR47.mjs.map +1 -0
  301. package/.output/server/chunks/build/{useOpenInIde-BbTnPhFA.mjs → useOpenInIde--6Me0WlL.mjs} +1 -1
  302. package/.output/server/chunks/build/useOpenInIde--6Me0WlL.mjs.map +1 -0
  303. package/.output/server/chunks/build/useSettingsNav-BLTHducV.mjs +19 -0
  304. package/.output/server/chunks/build/useSettingsNav-BLTHducV.mjs.map +1 -0
  305. package/.output/server/chunks/build/{users-CTUqXyGh.mjs → users-IdmY9JZV.mjs} +12 -11
  306. package/.output/server/chunks/build/users-IdmY9JZV.mjs.map +1 -0
  307. package/.output/server/chunks/nitro/nitro.mjs +2336 -1581
  308. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  309. package/.output/server/chunks/routes/__piwi/session.get.mjs +4 -1
  310. package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
  311. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +3 -0
  312. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
  313. package/.output/server/chunks/routes/api/admin/stats.get.mjs +3 -0
  314. package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
  315. package/.output/server/chunks/routes/api/ai/status.get.mjs +3 -0
  316. package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
  317. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +3 -0
  318. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
  319. package/.output/server/chunks/routes/api/auth/change-password.post.mjs +10 -1
  320. package/.output/server/chunks/routes/api/auth/change-password.post.mjs.map +1 -1
  321. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +3 -1
  322. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs.map +1 -1
  323. package/.output/server/chunks/routes/api/auth/login.post.mjs +16 -2
  324. package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
  325. package/.output/server/chunks/routes/api/auth/logout.post.mjs +4 -1
  326. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
  327. package/.output/server/chunks/routes/api/auth/me.get.mjs +4 -1
  328. package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
  329. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +4 -1
  330. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
  331. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +4 -1
  332. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
  333. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +11 -1
  334. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
  335. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +9 -1
  336. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs.map +1 -1
  337. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +7 -1
  338. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
  339. package/.output/server/chunks/routes/api/auth/setup.get.mjs +4 -1
  340. package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
  341. package/.output/server/chunks/routes/api/auth/setup.post.mjs +30 -12
  342. package/.output/server/chunks/routes/api/auth/setup.post.mjs.map +1 -1
  343. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +4 -1
  344. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
  345. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +6 -3
  346. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
  347. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +4 -1
  348. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
  349. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +4 -1
  350. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
  351. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +4 -1
  352. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
  353. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +4 -1
  354. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs.map +1 -1
  355. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +3 -0
  356. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
  357. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +4 -1
  358. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
  359. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +4 -1
  360. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
  361. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +4 -1
  362. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
  363. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +4 -1
  364. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
  365. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +4 -1
  366. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
  367. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +4 -1
  368. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
  369. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +4 -1
  370. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
  371. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +4 -1
  372. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
  373. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +4 -1
  374. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
  375. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +4 -1
  376. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -1
  377. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +4 -1
  378. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
  379. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +4 -1
  380. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -1
  381. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +4 -1
  382. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
  383. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +4 -1
  384. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
  385. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +4 -1
  386. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
  387. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +23 -4
  388. package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
  389. package/.output/server/chunks/routes/api/health.get.mjs +4 -1
  390. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  391. package/.output/server/chunks/routes/api/index.get.mjs +12 -5
  392. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  393. package/.output/server/chunks/routes/api/index.get2.mjs +9 -3
  394. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  395. package/.output/server/chunks/routes/api/index.get3.mjs +4 -1
  396. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  397. package/.output/server/chunks/routes/api/index.get4.mjs +4 -1
  398. package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
  399. package/.output/server/chunks/routes/api/index.get5.mjs +4 -1
  400. package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
  401. package/.output/server/chunks/routes/api/index.post.mjs +3 -1
  402. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  403. package/.output/server/chunks/routes/api/index.post2.mjs +6 -2
  404. package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
  405. package/.output/server/chunks/routes/api/index.post3.mjs +3 -1
  406. package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
  407. package/.output/server/chunks/routes/api/index.post4.mjs +14 -1
  408. package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
  409. package/.output/server/chunks/routes/api/index.post5.mjs +3 -1
  410. package/.output/server/chunks/routes/api/index.post5.mjs.map +1 -1
  411. package/.output/server/chunks/routes/api/index.post6.mjs +3 -1
  412. package/.output/server/chunks/routes/api/index.post6.mjs.map +1 -1
  413. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +5 -3
  414. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
  415. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +5 -3
  416. package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
  417. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +4 -3
  418. package/.output/server/chunks/routes/api/links/_id_.patch.mjs.map +1 -1
  419. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +4 -1
  420. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
  421. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +3 -1
  422. package/.output/server/chunks/routes/api/markers/_id_.put.mjs.map +1 -1
  423. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +33 -16
  424. package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
  425. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +4 -1
  426. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
  427. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +4 -1
  428. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
  429. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +4 -1
  430. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
  431. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +4 -1
  432. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
  433. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +4 -1
  434. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
  435. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +4 -1
  436. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
  437. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +3 -1
  438. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs.map +1 -1
  439. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +4 -1
  440. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
  441. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +3 -1
  442. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs.map +1 -1
  443. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +4 -1
  444. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
  445. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +4 -1
  446. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -1
  447. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +4 -1
  448. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -1
  449. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +4 -1
  450. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -1
  451. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +4 -1
  452. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
  453. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +4 -1
  454. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
  455. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +4 -1
  456. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
  457. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +78 -0
  458. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs.map +1 -0
  459. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +68 -0
  460. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs.map +1 -0
  461. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +55 -0
  462. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs.map +1 -0
  463. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +69 -0
  464. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs.map +1 -0
  465. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +4 -1
  466. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
  467. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +4 -1
  468. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
  469. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +4 -1
  470. package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
  471. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +3 -1
  472. package/.output/server/chunks/routes/api/projects/_id_.put.mjs.map +1 -1
  473. package/.output/server/chunks/routes/api/projects/menu.get.mjs +4 -1
  474. package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
  475. package/.output/server/chunks/routes/api/projects/overview.get.mjs +4 -1
  476. package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
  477. package/.output/server/chunks/routes/api/projects.get.mjs +4 -1
  478. package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
  479. package/.output/server/chunks/routes/api/search.get.mjs +4 -1
  480. package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
  481. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +4 -1
  482. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
  483. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +4 -1
  484. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
  485. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +3 -0
  486. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
  487. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +4 -1
  488. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
  489. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +4 -1
  490. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
  491. package/.output/server/chunks/routes/api/settings/ai.get.mjs +4 -1
  492. package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
  493. package/.output/server/chunks/routes/api/settings/ai.put.mjs +4 -1
  494. package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
  495. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +4 -1
  496. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -1
  497. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +4 -1
  498. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -1
  499. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +3 -1
  500. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs.map +1 -1
  501. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +4 -1
  502. package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
  503. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +4 -1
  504. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
  505. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +4 -1
  506. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
  507. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +4 -1
  508. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
  509. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +4 -1
  510. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
  511. package/.output/server/chunks/routes/api/setup-status.get.mjs +101 -0
  512. package/.output/server/chunks/routes/api/setup-status.get.mjs.map +1 -0
  513. package/.output/server/chunks/routes/api/stream.get.mjs +8 -2
  514. package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
  515. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +4 -1
  516. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
  517. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +3 -1
  518. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs.map +1 -1
  519. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +4 -1
  520. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
  521. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +3 -1
  522. package/.output/server/chunks/routes/api/tags/_id_.put.mjs.map +1 -1
  523. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +4 -1
  524. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
  525. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +4 -1
  526. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
  527. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +4 -1
  528. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
  529. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +62 -0
  530. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs.map +1 -0
  531. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +71 -0
  532. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs.map +1 -0
  533. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +4 -1
  534. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
  535. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +4 -1
  536. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
  537. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +4 -1
  538. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
  539. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +4 -1
  540. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -1
  541. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +4 -1
  542. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
  543. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +4 -1
  544. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
  545. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +7 -4
  546. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
  547. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +4 -1
  548. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
  549. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +4 -1
  550. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
  551. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +4 -1
  552. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
  553. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +4 -1
  554. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
  555. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +4 -1
  556. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
  557. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +4 -1
  558. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
  559. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +4 -1
  560. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
  561. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +4 -1
  562. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
  563. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +4 -1
  564. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
  565. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +4 -1
  566. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
  567. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +4 -1
  568. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
  569. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +4 -1
  570. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
  571. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +4 -1
  572. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -1
  573. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +4 -1
  574. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
  575. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +4 -1
  576. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
  577. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +4 -1
  578. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
  579. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +4 -1
  580. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
  581. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +4 -1
  582. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
  583. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +4 -1
  584. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
  585. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +4 -1
  586. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
  587. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +4 -1
  588. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
  589. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +4 -1
  590. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
  591. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +4 -1
  592. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -1
  593. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +4 -1
  594. package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -1
  595. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +4 -1
  596. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
  597. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +4 -1
  598. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
  599. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +4 -1
  600. package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
  601. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +4 -1
  602. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  603. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +4 -1
  604. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  605. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +4 -1
  606. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  607. package/.output/server/chunks/routes/api/traces/check.post.mjs +6 -3
  608. package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
  609. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +4 -1
  610. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
  611. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +4 -1
  612. package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
  613. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +3 -1
  614. package/.output/server/chunks/routes/api/users/_id/index.post.mjs.map +1 -1
  615. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +4 -1
  616. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
  617. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +4 -1
  618. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
  619. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +3 -1
  620. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs.map +1 -1
  621. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +4 -1
  622. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  623. package/.output/server/chunks/routes/api/users/_id_.patch.mjs +7 -2
  624. package/.output/server/chunks/routes/api/users/_id_.patch.mjs.map +1 -1
  625. package/.output/server/chunks/routes/api/version.get.mjs +4 -1
  626. package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
  627. package/.output/server/chunks/routes/mcp.post.mjs +43 -11
  628. package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
  629. package/.output/server/chunks/routes/renderer.mjs +1 -1
  630. package/.output/server/chunks/routes/renderer.mjs.map +1 -1
  631. package/.output/server/chunks/tasks/sweep.mjs +3 -0
  632. package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
  633. package/.output/server/chunks/tasks/sweep2.mjs +3 -0
  634. package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
  635. package/.output/server/database/migrations/0043_watery_dragon_lord.sql +22 -0
  636. package/.output/server/database/migrations/0044_panoramic_eddie_brock.sql +1 -0
  637. package/.output/server/database/migrations/meta/0043_snapshot.json +3764 -0
  638. package/.output/server/database/migrations/meta/0044_snapshot.json +3772 -0
  639. package/.output/server/database/migrations/meta/_journal.json +14 -0
  640. package/.output/server/database/migrations-pg/0044_dark_triathlon.sql +22 -0
  641. package/.output/server/database/migrations-pg/0045_loose_runaways.sql +1 -0
  642. package/.output/server/database/migrations-pg/meta/0044_snapshot.json +4473 -0
  643. package/.output/server/database/migrations-pg/meta/0045_snapshot.json +4480 -0
  644. package/.output/server/database/migrations-pg/meta/_journal.json +14 -0
  645. package/.output/server/index.mjs +4 -1
  646. package/.output/server/index.mjs.map +1 -1
  647. package/.output/server/package.json +1 -1
  648. package/bin/piwi-server.mjs +10 -0
  649. package/package.json +1 -1
  650. package/.output/public/_nuxt/8PUUncmO.js +0 -44
  651. package/.output/public/_nuxt/B7FTvFWq.js +0 -5
  652. package/.output/public/_nuxt/B8zkOmwo.js +0 -1
  653. package/.output/public/_nuxt/B96M2gdj.js +0 -1
  654. package/.output/public/_nuxt/B9OLmp0f.js +0 -1
  655. package/.output/public/_nuxt/BUa0V0Ly.js +0 -1
  656. package/.output/public/_nuxt/BUkim3TM.js +0 -1
  657. package/.output/public/_nuxt/BVc14Ncz.js +0 -4
  658. package/.output/public/_nuxt/BY0HxR3t.js +0 -17
  659. package/.output/public/_nuxt/B_xAMWQS.js +0 -2
  660. package/.output/public/_nuxt/BdQoBaOv.js +0 -1
  661. package/.output/public/_nuxt/BgRu_3tT.js +0 -1
  662. package/.output/public/_nuxt/BiO7RBWb.js +0 -6
  663. package/.output/public/_nuxt/CEfS4-oS.js +0 -64
  664. package/.output/public/_nuxt/CIoSMkpp.js +0 -1
  665. package/.output/public/_nuxt/CSJ-eOQM.js +0 -1
  666. package/.output/public/_nuxt/CahpB9Z2.js +0 -5
  667. package/.output/public/_nuxt/Cbh--1MW.js +0 -1
  668. package/.output/public/_nuxt/Cx6gc2VW.js +0 -1
  669. package/.output/public/_nuxt/D--H4jLI.js +0 -1
  670. package/.output/public/_nuxt/D1POo6S4.js +0 -10
  671. package/.output/public/_nuxt/D8nkF-OO.js +0 -3
  672. package/.output/public/_nuxt/DA25RkyK.js +0 -1
  673. package/.output/public/_nuxt/DIB-5fUJ.js +0 -1
  674. package/.output/public/_nuxt/DMec-OLo.js +0 -1
  675. package/.output/public/_nuxt/DSqHUrvO.js +0 -1
  676. package/.output/public/_nuxt/DmkUdSS4.js +0 -1
  677. package/.output/public/_nuxt/DoIREDVb.js +0 -1
  678. package/.output/public/_nuxt/DpZ1r1HA.js +0 -1
  679. package/.output/public/_nuxt/DqcKngf3.js +0 -1
  680. package/.output/public/_nuxt/DtHJgCS8.js +0 -1
  681. package/.output/public/_nuxt/Dtd4rC58.js +0 -9
  682. package/.output/public/_nuxt/Dy86h-7P.js +0 -1
  683. package/.output/public/_nuxt/HPNQD6v3.js +0 -1
  684. package/.output/public/_nuxt/HXadJrHu.js +0 -2
  685. package/.output/public/_nuxt/McL25vkx.js +0 -34
  686. package/.output/public/_nuxt/Nn93e_Mz.js +0 -1
  687. package/.output/public/_nuxt/UdR3DBPS.js +0 -1
  688. package/.output/public/_nuxt/_mj6CfPa.js +0 -1
  689. package/.output/public/_nuxt/builds/meta/e659b3e1-0e61-4971-940e-10063f9f4763.json +0 -1
  690. package/.output/public/_nuxt/entry.DmptwB51.css +0 -1
  691. package/.output/public/_nuxt/ryMzSDUj.js +0 -2
  692. package/.output/public/trace-viewer/assets/codeMirrorModule-LEHpjmcn.js +0 -32
  693. package/.output/public/trace-viewer/assets/defaultSettingsView-BNmKHKpQ.js +0 -264
  694. package/.output/public/trace-viewer/assets/urlMatch-BYQrIQwR.js +0 -1
  695. package/.output/public/trace-viewer/assets/xtermModule-CsJ4vdCR.js +0 -9
  696. package/.output/public/trace-viewer/codeMirrorModule.DYBRYzYX.css +0 -1
  697. package/.output/public/trace-viewer/codicon.DCmgc-ay.ttf +0 -0
  698. package/.output/public/trace-viewer/defaultSettingsView.CjdS-WJx.css +0 -1
  699. package/.output/public/trace-viewer/index.CzXZzn5A.css +0 -1
  700. package/.output/public/trace-viewer/index.DMMX1gXU.js +0 -2
  701. package/.output/public/trace-viewer/index.html +0 -44
  702. package/.output/public/trace-viewer/manifest.webmanifest +0 -16
  703. package/.output/public/trace-viewer/playwright-logo.svg +0 -9
  704. package/.output/public/trace-viewer/snapshot.html +0 -10
  705. package/.output/public/trace-viewer/snapshot.v8KI4P3m.js +0 -2
  706. package/.output/public/trace-viewer/sw.bundle.js +0 -5
  707. package/.output/public/trace-viewer/uiMode.BZQ54Kgt.css +0 -1
  708. package/.output/public/trace-viewer/uiMode.Ut8wwJNp.js +0 -6
  709. package/.output/public/trace-viewer/uiMode.html +0 -18
  710. package/.output/public/trace-viewer/xtermModule.DYP7pi_n.css +0 -32
  711. package/.output/server/chunks/build/Alert-C4xq8lao.mjs.map +0 -1
  712. package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +0 -1
  713. package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +0 -1
  714. package/.output/server/chunks/build/BrowserBadge-MFvBwxmD.mjs.map +0 -1
  715. package/.output/server/chunks/build/Card-BQP_oZkQ.mjs.map +0 -1
  716. package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +0 -1
  717. package/.output/server/chunks/build/ChartMarkerTooltip-0DcMfD_6.mjs.map +0 -1
  718. package/.output/server/chunks/build/Checkbox-4Q5d0fa0.mjs.map +0 -1
  719. package/.output/server/chunks/build/CiEnvCard-DB5DvBh1.mjs.map +0 -1
  720. package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +0 -1
  721. package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +0 -1
  722. package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +0 -1
  723. package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +0 -1
  724. package/.output/server/chunks/build/DiagnosisPanel-CALyEmcJ.mjs.map +0 -1
  725. package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +0 -1
  726. package/.output/server/chunks/build/EntityLinks-BBHWssHH.mjs.map +0 -1
  727. package/.output/server/chunks/build/EnvManagedBadge-UwD2b9v2.mjs.map +0 -1
  728. package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +0 -1
  729. package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +0 -1
  730. package/.output/server/chunks/build/LoadingState-C3pBSuOO.mjs.map +0 -1
  731. package/.output/server/chunks/build/MarkerBadge-D7meXy4u.mjs.map +0 -1
  732. package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +0 -1
  733. package/.output/server/chunks/build/Modal-pSDlXzT3.mjs.map +0 -1
  734. package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +0 -1
  735. package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +0 -1
  736. package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +0 -1
  737. package/.output/server/chunks/build/Select-5DK9frQ7.mjs.map +0 -1
  738. package/.output/server/chunks/build/Separator-CR4WcEKD.mjs.map +0 -1
  739. package/.output/server/chunks/build/SettingsField-BZfx4ma1.mjs.map +0 -1
  740. package/.output/server/chunks/build/Skeleton-CEHuuKVh.mjs.map +0 -1
  741. package/.output/server/chunks/build/Slideover-D270EZZD.mjs.map +0 -1
  742. package/.output/server/chunks/build/StatTile-D61Vzo6e.mjs.map +0 -1
  743. package/.output/server/chunks/build/Switch-B5Fp8ULt.mjs.map +0 -1
  744. package/.output/server/chunks/build/Table-BRk04Hd2.mjs.map +0 -1
  745. package/.output/server/chunks/build/Tabs-BkSOnbaB.mjs.map +0 -1
  746. package/.output/server/chunks/build/TestCaseHistoryChart-CSi64vVA.mjs.map +0 -1
  747. package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +0 -1
  748. package/.output/server/chunks/build/TestStatusBar-DX3EhlyP.mjs.map +0 -1
  749. package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +0 -1
  750. package/.output/server/chunks/build/Tooltip-Dv4htNP6.mjs.map +0 -1
  751. package/.output/server/chunks/build/_id_-BdG37K7s.mjs.map +0 -1
  752. package/.output/server/chunks/build/_id_-BdJs7BJZ.mjs.map +0 -1
  753. package/.output/server/chunks/build/_id_-BxA6IgWr.mjs.map +0 -1
  754. package/.output/server/chunks/build/_id_-C_uSBiyU.mjs.map +0 -1
  755. package/.output/server/chunks/build/about-BE0UV-8-.mjs.map +0 -1
  756. package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +0 -1
  757. package/.output/server/chunks/build/analytics-Bo_B_jko.mjs.map +0 -1
  758. package/.output/server/chunks/build/compare-RxHSOdsO.mjs.map +0 -1
  759. package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +0 -1
  760. package/.output/server/chunks/build/edit-J0asTFg8.mjs.map +0 -1
  761. package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +0 -1
  762. package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +0 -1
  763. package/.output/server/chunks/build/import-CS9oylTN.mjs.map +0 -1
  764. package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +0 -1
  765. package/.output/server/chunks/build/index-DE45ycdZ.mjs.map +0 -1
  766. package/.output/server/chunks/build/index-e9skCi-V.mjs.map +0 -1
  767. package/.output/server/chunks/build/index-tR6owKzj.mjs +0 -167
  768. package/.output/server/chunks/build/index-tR6owKzj.mjs.map +0 -1
  769. package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +0 -1
  770. package/.output/server/chunks/build/mcp-uhVCCwQM.mjs.map +0 -1
  771. package/.output/server/chunks/build/notifications-fx_qnKGA.mjs.map +0 -1
  772. package/.output/server/chunks/build/pr-feedback-X6-70iF0.mjs.map +0 -1
  773. package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +0 -1
  774. package/.output/server/chunks/build/settings-CCYe7rsc.mjs.map +0 -1
  775. package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +0 -1
  776. package/.output/server/chunks/build/storage-CJEmviCD.mjs.map +0 -1
  777. package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +0 -1
  778. package/.output/server/chunks/build/test-cases-thBbAykw.mjs.map +0 -1
  779. package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs +0 -330
  780. package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +0 -1
  781. package/.output/server/chunks/build/useAiStatus-CxjMmDDY.mjs.map +0 -1
  782. package/.output/server/chunks/build/useChartMarkers-C89e_VLV.mjs.map +0 -1
  783. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs +0 -33
  784. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +0 -1
  785. package/.output/server/chunks/build/useCopyRich-RJKhWoyj.mjs.map +0 -1
  786. package/.output/server/chunks/build/useDesktopDownload-BepjqxOt.mjs.map +0 -1
  787. package/.output/server/chunks/build/useOpenInIde-BbTnPhFA.mjs.map +0 -1
  788. package/.output/server/chunks/build/useSettingsNav-DnQKacz8.mjs.map +0 -1
  789. package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +0 -1
  790. package/.output/server/chunks/build/wasted-time-BNTPIyrC.mjs +0 -301
  791. package/.output/server/chunks/build/wasted-time-BNTPIyrC.mjs.map +0 -1
@@ -0,0 +1,5 @@
1
+ import{d as ue,b as Je,o,f as q,g as A,j as _,_ as Ie,m as E,i as p,k as t,l as Le,r as Y,K as vt,h as I,A as ze,c as u,P as xt,V as Oe,ae as bt,S as ke,C as _e,p as $e,q as pe,v as T,t as $,F as ee,L as kt,y as fe,s as Pe,H as at,J as Ee,af as Ae,B as rt,E as _t,R as et,I as We,ac as Re,G as $t,W as Ne,ag as Se,T as wt,ad as Ct,ah as Tt,ai as St,aj as At,a0 as Lt,a1 as Rt}from"./h49q_GXF.js";import{_ as it,a as It}from"./BtSJxOdh.js";import{_ as zt}from"./DOLeth7M.js";import{u as Pt}from"./BDQCwxpX.js";import{a as He,u as Ue}from"./Cd8r0xk5.js";import{e as lt,u as Bt,v as Et,f as Ye,w as ct,n as Me,x as Ot}from"./CD3R-ggS.js";import{_ as Ge}from"./9N6hSApy.js";import{_ as je}from"./DLNNAYfu.js";import{_ as Mt}from"./jjOqY9Tv.js";import{_ as Nt}from"./CDh_Qt7h.js";import{_ as Ut}from"./CRPt9SfB.js";import{_ as jt}from"./Dj-TetcW.js";import{u as Dt,i as Kt,b as Vt}from"./DBhdObsO.js";import{f as Ht}from"./D-c8ZSws.js";import{_ as ut}from"./PdEEuEsg.js";import{_ as Ft}from"./CWoSSKhQ.js";const qt={class:"w-64 p-1 space-y-0.5"},Zt={class:"flex items-center justify-between px-2 pt-1 pb-1"},Wt=ue({__name:"ExportMenu",props:{endpoint:{},baseName:{}},setup(e){const r=e,{download:a}=Pt(),{copy:c}=He(),n=Je(),s=Y(!1),l=Y(""),f=I(()=>(ze().app?.baseURL??"/").replace(/\/$/,""));function i(C){return`${f.value}${C}`}async function h(C){s.value=!1,await a(i(`${r.endpoint}?format=${C}`),`${r.baseName}.${C}`,{binary:C==="zip"})}function v(){s.value=!1,window.open(i(`${r.endpoint}?format=html&print=1`),"_blank")}async function L(C,w,S){l.value=w;try{const D=await fetch(i(C));if(!D.ok)throw new Error(`Request failed (${D.status})`);const U=await D.text();c(S?S(U):U,{toast:`${w} copied`}),s.value=!1}catch(D){n.add({title:`Could not copy ${w.toLowerCase()}`,description:lt(D),color:"error"})}finally{l.value=""}}function y(){return L(`${r.endpoint}?format=md`,"Report")}return(C,w)=>{const S=Ie,D=it,U=zt,V=vt;return o(),q(V,{open:t(s),"onUpdate:open":w[4]||(w[4]=B=>Le(s)?s.value=B:null)},{content:A(()=>[p("div",qt,[p("div",Zt,[w[6]||(w[6]=p("p",{class:"text-xs font-medium text-gray-500"},"Download",-1)),_(D,{topic:"export.offline"})]),_(S,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-file-code",title:"One self-contained HTML file with screenshots and video embedded",onClick:w[0]||(w[0]=B=>h("html"))},{default:A(()=>[...w[7]||(w[7]=[E(" HTML — single file ",-1)])]),_:1}),_(S,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-file-archive",title:"Report plus the raw artifacts, including trace archives and data.json",onClick:w[1]||(w[1]=B=>h("zip"))},{default:A(()=>[...w[8]||(w[8]=[E(" ZIP — with all evidence ",-1)])]),_:1}),_(S,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-printer",title:"Opens the report with your browser's print dialog, for Save as PDF",onClick:v},{default:A(()=>[...w[9]||(w[9]=[E(" PDF — via print ",-1)])]),_:1}),_(S,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-file-text",title:"The Markdown report as a file",onClick:w[2]||(w[2]=B=>h("md"))},{default:A(()=>[...w[10]||(w[10]=[E(" Markdown ",-1)])]),_:1}),_(S,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-file-json",title:"Everything the report contains, machine-readable",onClick:w[3]||(w[3]=B=>h("json"))},{default:A(()=>[...w[11]||(w[11]=[E(" JSON ",-1)])]),_:1}),_(U,{class:"my-1"}),w[13]||(w[13]=p("p",{class:"text-xs font-medium text-gray-500 px-2 pt-1 pb-1"},"Copy to clipboard",-1)),_(S,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-clipboard-list",loading:t(l)==="Report",title:"The whole investigation as Markdown, for an issue or a chat",onClick:y},{default:A(()=>[...w[12]||(w[12]=[E(" Report (Markdown) ",-1)])]),_:1},8,["loading"])])]),default:A(()=>[_(S,{icon:"i-lucide-share",size:"xs",color:"neutral",variant:"outline",title:"Take this investigation away"},{default:A(()=>[...w[5]||(w[5]=[E(" Export ",-1)])]),_:1})]),_:1},8,["open"])}}}),Oa=Object.assign(Wt,{__name:"ExportMenu"}),Jt={class:"flex items-center justify-between gap-2"},Yt=["aria-expanded","title"],Gt={class:"text-lg font-medium inline-flex items-center gap-1 shrink-0"},Qt={key:2,class:"min-w-0 flex-1 truncate text-sm text-gray-500 dark:text-gray-400"},Xt={key:0,class:"flex items-center gap-1 shrink-0"},en={key:0,class:"text-sm text-gray-500 mt-1 ml-11"},tn=ue({__name:"CollapsibleSectionCard",props:{title:{},icon:{},subtitle:{},count:{},iconClass:{default:"text-primary"},help:{},storageKey:{},defaultFolded:{type:Boolean,default:!0}},setup(e,{expose:r}){const a=e,{folded:c,toggle:n,setFolded:s}=Dt(`piwi-section-fold-${a.storageKey}`,a.defaultFolded),l=Y(null);function f(){s(!1),kt(()=>l.value?.scrollIntoView({behavior:"smooth",block:"start"}))}return r({setFolded:s,reveal:f}),(i,h)=>{const v=$e,L=it,y=Ft;return o(),u("div",{ref_key:"rootEl",ref:l,class:"scroll-mt-4"},[_(y,{ui:{header:"p-3 sm:px-4 sm:py-3",body:t(c)?"p-0 sm:p-0":""},class:pe(t(c)&&"divide-y-0")},{header:A(()=>[p("div",Jt,[p("div",{class:"flex items-center gap-2 min-w-0 flex-1 cursor-pointer select-none rounded-sm outline-none focus-visible:outline-2 focus-visible:outline-primary",role:"button",tabindex:"0","aria-expanded":!t(c),title:t(c)?"Expand section":"Collapse section",onClick:h[1]||(h[1]=(...C)=>t(n)&&t(n)(...C)),onKeydown:[h[2]||(h[2]=ke((...C)=>t(n)&&t(n)(...C),["enter"])),h[3]||(h[3]=ke(_e((...C)=>t(n)&&t(n)(...C),["prevent"]),["space"]))]},[_(v,{name:t(c)?"i-lucide-chevron-right":"i-lucide-chevron-down",class:"size-4 shrink-0 text-gray-400"},null,8,["name"]),e.icon?(o(),q(v,{key:0,name:e.icon,class:pe(["size-5 shrink-0",e.iconClass])},null,8,["name","class"])):T("",!0),p("h3",Gt,[E($(e.title),1),e.count!=null?(o(),u(ee,{key:0},[E(" ("+$(e.count)+")",1)],64)):T("",!0)]),e.help?(o(),u("span",{key:1,onClick:h[0]||(h[0]=_e(()=>{},["stop"]))},[_(L,{topic:e.help},null,8,["topic"])])):T("",!0),t(c)&&i.$slots.folded?(o(),u("span",Qt,[Oe(i.$slots,"folded")])):T("",!0)],40,Yt),i.$slots.actions?(o(),u("div",Xt,[Oe(i.$slots,"actions")])):T("",!0)]),!t(c)&&(e.subtitle||i.$slots.subtitle)?(o(),u("p",en,[Oe(i.$slots,"subtitle",{},()=>[E($(e.subtitle),1)])])):T("",!0)]),default:A(()=>[xt(p("div",null,[Oe(i.$slots,"default")],512),[[bt,!t(c)]])]),_:3},8,["ui","class"])],512)}}}),De=Object.assign(tn,{__name:"CollapsibleSectionCard"}),nn=/('(?:\\.|[^'])*'|"(?:\\.|[^"])*")|([A-Za-z_$][\w$]*)(?=\s*\()|([A-Za-z_$][\w$]*)(?=\s*:)|(true|false|null|\d+)|([{}(),.])/g;function on(e){const r=[],a=new RegExp(nn.source,"g");let c=0,n;for(;(n=a.exec(e))!==null;){n.index>c&&r.push({kind:"plain",text:e.slice(c,n.index)});const s=n[1]?"string":n[2]?"method":n[3]?"option":n[4]?"literal":"punctuation";r.push({kind:s,text:n[0]}),c=a.lastIndex}return c<e.length&&r.push({kind:"plain",text:e.slice(c)}),r}const sn=["title"],an=ue({__name:"LocatorCode",props:{locator:{},truncate:{type:Boolean,default:!1}},setup(e){const r=e,a={method:"text-violet-700 dark:text-violet-300",string:"text-green-700 dark:text-green-300",option:"text-blue-700 dark:text-blue-300",literal:"text-amber-700 dark:text-amber-300",punctuation:"text-gray-500 dark:text-gray-400",plain:""},c=I(()=>on(r.locator));return(n,s)=>(o(),u("code",{class:pe(["font-mono",e.truncate?"block truncate":"break-words"]),title:e.locator},[(o(!0),u(ee,null,fe(t(c),(l,f)=>(o(),u("span",{key:f,class:pe(a[l.kind])},$(l.text),3))),128))],10,sn))}}),Qe=Object.assign(an,{__name:"LocatorCode"}),rn={class:"overflow-x-auto text-xs font-mono"},ln=ue({__name:"DiffPatch",props:{patch:{}},setup(e){return(r,a)=>(o(),u("div",rn,[(o(!0),u(ee,null,fe(("parsePatchLines"in r?r.parsePatchLines:t(Et))(e.patch),(c,n)=>(o(),u("div",{key:n,class:pe(["px-3 py-px whitespace-pre leading-5 min-w-0",("patchLineClass"in r?r.patchLineClass:t(Bt))[c.type]])},$(c.text||" "),3))),128))]))}}),cn=Object.assign(ln,{__name:"DiffPatch"}),un=["role","aria-checked","tabindex"],dn={class:"flex-1 min-w-0"},pn={key:0,class:"text-[11px] leading-4 text-gray-500 truncate"},fn=ue({__name:"LocatorAlternativeRow",props:{alt:{},note:{default:void 0},copied:{type:Boolean,default:!1},dense:{type:Boolean,default:!1},selectable:{type:Boolean,default:!1},selected:{type:Boolean,default:!1}},emits:["copy","select"],setup(e){const r=e;function a(s){return s>=80?"success":s>=50?"warning":"error"}function c(s){const{method:l,score:f,args:i}=s;return i&&(i.anchorTestId||i.anchorSelector||i.anchorRole)?"scoped to a stable ancestor — survives renames":f>=100?"most stable — purpose-built for testing":l==="getByRole"&&i&&!("name"in i)?"name-free role — survives renames":l==="getByRole"?"browser ARIA tree — semantic and stable":l==="getByLabel"?"associated <label> element":l==="getByPlaceholder"?"input placeholder":l==="getByText"?"visible text":l==="getByAltText"?"image alt text":l==="getByTitle"?"title attribute":l==="locator"&&f>=50?"stable selector":l==="locator"?"CSS class — may be fragile":""}const n=I(()=>r.note??c(r.alt));return(s,l)=>{const f=Pe,i=Qe,h=$e,v=Ie;return o(),u("div",{class:pe(["flex items-center gap-2 rounded border",[e.dense?"py-1 px-2":"py-1.5 px-2.5",e.selectable?"cursor-pointer hover:bg-elevated transition-colors focus-visible:outline-2 focus-visible:outline-primary":"",e.selectable&&e.selected?"border-primary/60 ring-1 ring-primary/50":"border-default/50"]]),role:e.selectable?"radio":void 0,"aria-checked":e.selectable?e.selected:void 0,tabindex:e.selectable?0:void 0,onClick:l[1]||(l[1]=L=>e.selectable&&s.$emit("select")),onKeydown:[l[2]||(l[2]=ke(_e(L=>e.selectable&&s.$emit("select"),["prevent"]),["enter"])),l[3]||(l[3]=ke(_e(L=>e.selectable&&s.$emit("select"),["prevent"]),["space"]))]},[_(f,{size:"xs",color:a(e.alt.score),variant:"subtle",class:pe(["shrink-0 font-mono tabular-nums cursor-default text-center",e.dense?"min-w-[2.25rem]":"min-w-[2.5rem]"]),title:`Stability score: ${e.alt.score}/100`},{default:A(()=>[E($(e.alt.score),1)]),_:1},8,["color","class","title"]),p("div",dn,[_(i,{locator:e.alt.locator,truncate:"",class:"text-xs"},null,8,["locator"]),t(n)?(o(),u("p",pn,$(t(n)),1)):T("",!0)]),e.alt.pickedByUser&&e.dense?(o(),q(h,{key:0,name:"i-lucide-user-check",class:"size-3.5 text-primary shrink-0",title:"Confirmed with the locator picker"})):e.alt.pickedByUser?(o(),q(f,{key:1,size:"xs",color:"primary",variant:"subtle",icon:"i-lucide-user-check",class:"shrink-0",title:"Confirmed with the locator picker on the failing page"})):T("",!0),_(v,{size:"xs",variant:"ghost",color:"neutral",icon:e.copied?"i-lucide-check":"i-lucide-copy",title:e.copied?"Copied!":"Copy",class:"shrink-0",onClick:l[0]||(l[0]=_e(L=>s.$emit("copy"),["stop"]))},null,8,["icon","title"])],42,un)}}}),dt=Object.assign(fn,{__name:"LocatorAlternativeRow"}),tt={getByTestId:"testid",getByRole:"semantic",getByLabel:"label",getByPlaceholder:"label",getByText:"text",getByAltText:"text",getByTitle:"text",locator:"css","page.locator":"css"},mn=50;function pt(e,r,a=mn){const c=r[0]??null;if(!c)return{recommended:null,durable:null,preservesConvention:!1,hasDurableAlternative:!1,suggestAddTestId:!1};const n=e?tt[e]:void 0,s=(e?r.find(i=>i.method===e&&i.score>=a):void 0)??(n?r.find(i=>tt[i.method]===n&&i.score>=a):void 0),f=r.find(i=>i.pickedByUser)??s??c;return{recommended:f,durable:c,preservesConvention:!!s&&f===s,hasDurableAlternative:f.locator!==c.locator,suggestAddTestId:c.score<a}}const ft={a:"link",button:"button",nav:"navigation",main:"main",article:"article",section:"region",form:"form",img:"img",figure:"figure",figcaption:"caption",blockquote:"blockquote",table:"table",caption:"caption",thead:"rowgroup",tbody:"rowgroup",tfoot:"rowgroup",tr:"row",td:"cell",ul:"list",ol:"list",li:"listitem",dialog:"dialog",output:"status",progress:"progressbar",meter:"meter",textarea:"textbox",h1:"heading",h2:"heading",h3:"heading",h4:"heading",h5:"heading",h6:"heading",details:"group",summary:"button",search:"search"},gn={button:"button",submit:"button",reset:"button",image:"button",checkbox:"checkbox",radio:"radio",range:"slider",search:"searchbox",number:"spinbutton",text:"textbox",email:"textbox",tel:"textbox",url:"textbox",password:"textbox"},hn=["id","class","name","data-testid","placeholder","alt","title","aria-label","aria-level","role","type","href","multiple"];function yn(e){const r=e.attributes.role;if(r)return r;const a=e.tagName;if(!a)return null;if(a==="input"){const c=(e.attributes.type??"text").toLowerCase();return gn[c]??"textbox"}return a==="select"?e.attributes.multiple!=null?"listbox":"combobox":a==="a"?e.attributes.href!=null?"link":null:ft[a]??null}function vn(e,r){if(r!=="heading")return null;const a=e.tagName.match(/^h([1-6])$/);if(a)return Number(a[1]);const c=e.attributes["aria-level"];return c&&/^\d+$/.test(c)?Number(c):null}const Ce=(e,r)=>e.attributes[r]||null,ve=e=>e.replace(/\\/g,"\\\\").replace(/'/g,"\\'"),Ve=e=>e.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),nt=e=>/^[A-Za-z][A-Za-z0-9_-]*$/.test(e);function xn(e){return/[a-f0-9]{8,}/i.test(e)?10:/^(?:css|sc|emotion|styled)-/i.test(e)?15:/^(bg|text|border|shadow|opacity|font|w-|h-|m[tblrxy]?-|p[tblrxy]?-|flex|grid|gap|rounded|absolute|relative|fixed|sticky|block|inline|hidden|overflow|z-|top-|right-|bottom-|left-|inset-|justify-|items-|self-|content-|order-|col-|row-)/.test(e)?25:/__/.test(e)||/--/.test(e)?35:/^[a-z]+(-[a-z]+)+$/.test(e)||/^[a-z]+[A-Z][a-zA-Z]+$/.test(e)?40:(e.includes("_")||/^[a-z]+-[a-z0-9]{5,}$/.test(e)&&/[0-9]/.test(e),15)}function ot(e){return!!(/^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$/i.test(e)||/^[a-f0-9]{8,}$/i.test(e)||/^[a-z]+-\d{4,}$/.test(e)||/^(tab|panel|input|select|option|dialog|modal|popup|tooltip|menu|listbox|combobox|checkbox|radio|textarea|button|field|label|accordion|collapse|step|slider|toggle|switch|dropdown|overlay|portal|layer)-\d+$/i.test(e)||/^(emotion-|styled-|css-|sc-)/.test(e)||e.startsWith("ng-")||/^(radix-|headlessui-|mui-|mantine-|chakra-)/i.test(e)||/^:r[0-9a-z]+:$/i.test(e)||/^«r[0-9a-z]+»$/i.test(e))}const bn=new Set(["data-test","data-test-id","data-qa","data-qa-id","data-cy","data-e2e"]);function kn(e){const r=[],a=new Set,c=x=>{a.has(x.locator)||(a.add(x.locator),r.push(x))},{accessibleName:n}=e,s=e.tagName,l=yn(e),f=e.selectorCounts,i=x=>x==null||x<=1,h=x=>x!=null&&x>1?45:0,v=e.textContent?e.textContent.replace(/\s+/g," ").trim():null,L=Ce(e,"data-testid");L&&i(f?.testId)&&c({locator:`getByTestId('${ve(L)}')`,method:"getByTestId",args:{testId:L},score:100});const y=vn(e,l),C=y!=null?`, level: ${y}`:"",w=x=>y!=null?{...x,level:y}:x;l&&n&&c({locator:`getByRole('${l}', { name: '${ve(n)}'${C} })`,method:"getByRole",args:w({role:l,name:n}),score:90-h(f?.roleName)});const S=Ce(e,"aria-label");if(l&&S&&S!==n&&c({locator:`getByRole('${l}', { name: '${ve(S)}'${C} })`,method:"getByRole",args:w({role:l,name:S}),score:85-h(f?.roleName)}),n&&["input","select","textarea"].includes(s)){const x=Ce(e,"aria-label");(e.hasLabel===void 0||e.hasLabel===!0||x===n)&&c({locator:`getByLabel('${ve(n)}')`,method:"getByLabel",args:{label:n},score:85})}const D=Ce(e,"placeholder");D&&c({locator:`getByPlaceholder('${ve(D)}')`,method:"getByPlaceholder",args:{placeholder:D},score:80-h(f?.placeholder)}),v&&v.length<80&&c({locator:`getByText('${ve(v)}')`,method:"getByText",args:{text:v},score:75-h(f?.text)});const U=Ce(e,"id");if(U&&!ot(U)&&i(f?.id)){const x=nt(U)?`#${U}`:`[id="${Ve(U)}"]`;c({locator:`locator('${ve(x)}')`,method:"locator",args:{selector:x},score:65})}const V=Ce(e,"name");if(V&&i(f?.name)){const x=`[name="${Ve(V)}"]`;c({locator:`locator('${ve(x)}')`,method:"locator",args:{selector:x},score:60})}const B=Ce(e,"alt");B&&c({locator:`getByAltText('${ve(B)}')`,method:"getByAltText",args:{text:B},score:60-h(f?.alt)});const Q=Ce(e,"title");Q&&c({locator:`getByTitle('${ve(Q)}')`,method:"getByTitle",args:{title:Q},score:50-h(f?.title)});const X=!!(L&&i(f?.testId)),m=(x,K,P)=>{let j=!1,ne=!1,me=!1,ge=!1,he=!1;for(const Z of e.ancestors??[]){if(K(Z)!==1)continue;if(!j&&Z.testId&&Z.testIdCount===1&&(j=!0,c({locator:`getByTestId('${ve(Z.testId)}').${x.expr}`,method:x.method,args:{...x.args,anchorTestId:Z.testId},score:P.testId})),!ne&&Z.id&&!ot(Z.id)&&Z.idCount===1){ne=!0;const k=nt(Z.id)?`#${Z.id}`:`[id="${Ve(Z.id)}"]`;c({locator:`locator('${ve(k)}').${x.expr}`,method:x.method,args:{...x.args,anchorSelector:k},score:P.id})}if(!ge&&Z.dataAttr&&Z.dataAttrCount===1){ge=!0;const{name:k,value:d}=Z.dataAttr,O=`[${k}="${Ve(d)}"]`;c({locator:`locator('${ve(O)}').${x.expr}`,method:x.method,args:{...x.args,anchorSelector:O},score:bn.has(k)?P.testData:P.data})}const ce=Z.role||ft[Z.tag]||null;!me&&ce&&ce!==x.role&&Z.roleCount===1&&(me=!0,c({locator:`getByRole('${ve(ce)}').${x.expr}`,method:x.method,args:{...x.args,anchorRole:ce},score:P.role})),!he&&ce&&Z.filterText&&Z.filterRoleCount===1&&(he=!0,c({locator:`getByRole('${ve(ce)}').filter({ hasText: '${ve(Z.filterText)}' }).${x.expr}`,method:x.method,args:{...x.args,anchorRole:ce,anchorHasText:Z.filterText},score:P.filter}))}};if(l&&!X){const x=y!=null?`'${l}', { level: ${y} }`:`'${l}'`,K=w({role:l});m({expr:`getByRole(${x})`,method:"getByRole",args:K,role:l},j=>j.scopedRoleCount,{testId:72,testData:70,id:64,data:60,role:55,filter:53});const P=e.rolePosition;P&&P.role===l&&(P.count===1||y!=null&&P.levelCount===1)&&c({locator:`getByRole(${x})`,method:"getByRole",args:K,score:58})}else!l&&v&&v.length<80&&!X&&m({expr:`getByText('${ve(v)}')`,method:"getByText",args:{text:v},role:null},x=>x.scopedTextCount,{testId:68,testData:66,id:60,data:56,role:51,filter:49});const M=Ce(e,"class");if(M){const x=f?.classes,K=M.split(/\s+/).filter(P=>P.length>1&&/^[A-Za-z_-][A-Za-z0-9_-]*$/.test(P)&&i(x?.[P])).map(P=>({cls:P,score:xn(P)})).sort((P,j)=>j.score-P.score).slice(0,3);for(const{cls:P,score:j}of K)c({locator:`locator('.${ve(P)}')`,method:"locator",args:{selector:`.${P}`},score:j})}return r.sort((x,K)=>K.score-x.score)}function _n(e){const r=e.attributes,a=r["aria-label"];if(a)return a;if(e.textContent)return e.textContent;const c=r.title;if(c)return c;const n=r.placeholder;return n||null}function $n(e,r){const{keep:a,tagRoles:c,inputRoles:n,roleSources:s,includeStructural:l,includeLabelText:f}=r,i={};for(const S of a){const D=e.getAttribute(S)??e[S];i[S]=typeof D=="string"?D.slice(0,200):D?String(D).slice(0,200):null}const h=e.getBoundingClientRect(),v={};try{const S=e.ownerDocument,D=B=>S.defaultView.CSS.escape(B),U=B=>{try{return S.querySelectorAll(B).length}catch{return}};i["data-testid"]&&(v.testId=U(`[data-testid=${JSON.stringify(i["data-testid"])}]`)),i.id&&(v.id=U(`#${D(i.id)}`)),i.name&&(v.name=U(`[name=${JSON.stringify(i.name)}]`)),i.placeholder&&(v.placeholder=U(`[placeholder=${JSON.stringify(i.placeholder)}]`)),i.alt&&(v.alt=U(`[alt=${JSON.stringify(i.alt)}]`)),i.title&&(v.title=U(`[title=${JSON.stringify(i.title)}]`));const V=(i.class||"").split(/\s+/).filter(B=>B.length>1).slice(0,10);if(V.length>0){const B={};for(const Q of V){const X=U(`.${D(Q)}`);X!==void 0&&(B[Q]=X)}v.classes=B}}catch{}let L=null;const y=[];if(l&&c&&n&&s)try{const S=e.ownerDocument,D=k=>S.defaultView.CSS.escape(k),U=k=>{try{return S.querySelectorAll(k).length}catch{return}},V=new Map,B=new Map,Q=k=>{const d=V.get(k);if(d!==void 0)return d;let O;const G=k.getAttribute("role");if(G)O=G;else{const se=(k.tagName||"").toLowerCase();se==="input"?O=n[(k.getAttribute("type")||"text").toLowerCase()]??"textbox":se==="select"?O=k.getAttribute("multiple")!=null?"listbox":"combobox":se==="a"?O=k.getAttribute("href")!=null?"link":null:O=c[se]??null}return V.set(k,O),O},X=k=>{const d=/^h([1-6])$/.exec((k.tagName||"").toLowerCase());if(d)return Number(d[1]);const O=k.getAttribute("aria-level");return O&&/^\d+$/.test(O)?Number(O):null},m=Q(e),M=m==="heading"?X(e):null,x=k=>{const d=k.getAttribute("aria-label");if(d)return d;const O=(k.textContent||"").replace(/\s+/g," ").trim();return O||k.getAttribute("title")||k.getAttribute("placeholder")||null},K=x(e),P=(e.textContent||"").replace(/\s+/g," ").trim(),j=P?P.toLowerCase():null,ne=k=>{const d=B.get(k);if(d!==void 0)return d;const O=(k.textContent||"").replace(/\s+/g," ").trim().toLowerCase();return B.set(k,O),O},me=2,ge=(k,d)=>{if(!j)return-1;const O=k.querySelectorAll("*");if(O.length>d)return-1;let G=0;for(let se=0;se<O.length;se++){const re=O[se];if(ne(re).indexOf(j)===-1)continue;let g=!1;const z=re.children;for(let H=0;H<z.length;H++)if(ne(z[H]).indexOf(j)!==-1){g=!0;break}if(g||G++,G>=me)return G}return G},he=S.querySelectorAll(s),Z=he.length<=4e3,ce=!!m&&Z;if(ce){let k=0,d=-1,O=0,G=0;for(let se=0;se<he.length;se++){const re=he[se];Q(re)===m&&(re===e&&(d=k),k++,M!=null&&X(re)===M&&O++,K!=null&&x(re)===K&&G++)}K!=null&&(v.roleName=G),d!==-1&&(L={role:m,count:k,index:d,...M!=null?{levelCount:O}:{}})}if(j){const k=ge(S.body||S.documentElement,4e3);k>=0&&(v.text=k)}if(ce||j){const k=["form","nav","main","article","section","dialog","table","li","tr"],d=/^data-(v-[0-9a-f]+|reactid|react-checksum|svelte-\w+|ng-\w+|ember\w*)$/i,O=/^data-(index|idx|i|key|row|rownum|col|column|position|pos|order|sort|offset|page)$/i,G=["data-test","data-test-id","data-qa","data-qa-id","data-cy","data-e2e"],se=(W,oe)=>!W||W.slice(0,5)!=="data-"||W==="data-testid"||d.test(W)||O.test(W)?!1:!!oe&&oe.length<=120,re=W=>{const oe=W.attributes;if(!oe)return null;let ie=null;for(let de=0;de<oe.length;de++){const le=oe[de].name,ye=oe[de].value;if(se(le,ye)){if(G.indexOf(le.toLowerCase())!==-1)return{name:le,value:ye};ie||(ie={name:le,value:ye})}}return ie},g=W=>{let oe=0;for(let ie=0;ie<he.length;ie++)Q(he[ie])===W&&oe++;return oe},z=W=>(W.textContent||"").replace(/\s+/g," ").trim(),H=W=>{const oe=W.replace(/[^A-Za-z]/g,"").length;return oe<2?!1:W.replace(/[^0-9]/g,"").length<=oe},F=W=>!!W&&W.length<=60&&W!==P&&H(W),te=W=>{const oe=W.querySelector('h1,h2,h3,h4,h5,h6,[role="heading"]');if(oe){const de=z(oe);if(F(de))return de}const ie=W.querySelectorAll("*");if(ie.length>200)return null;for(let de=0;de<ie.length;de++){const le=ie[de];if(le===e||le.children.length>0)continue;const ye=z(le);if(F(ye))return ye}return null},N=(W,oe)=>{const ie=oe.toLowerCase();let de=0;for(let le=0;le<he.length;le++)Q(he[le])===W&&ne(he[le]).indexOf(ie)!==-1&&de++;return de};let J=e.parentElement,we=0;for(;J&&we<12&&y.length<4;){we++;const W=(J.tagName||"").toLowerCase();if(W==="body"||W==="html")break;const oe=J.getAttribute("data-testid"),ie=J.getAttribute("id"),de=J.getAttribute("role"),le=J.getAttribute("aria-label"),ye=de||(k.includes(W)?c[W]:null)||null,Te=re(J);if(oe||ie||ye||le||Te){let R=-1;if(ce){const xe=J.querySelectorAll(s);if(xe.length<=2e3){R=0;for(let Be=0;Be<xe.length;Be++){const Ke=xe[Be];Q(Ke)===m&&(M!=null&&X(Ke)!==M||R++)}}}const b=ge(J,2e3);let ae=null;try{ye&&Z&&(ae=te(J))}catch{ae=null}y.push({tag:W,depth:we,testId:oe||null,id:ie||null,role:de||null,ariaLabel:le||null,...R>=0?{scopedRoleCount:R}:{},...b>=0?{scopedTextCount:b}:{},...oe?{testIdCount:U(`[data-testid=${JSON.stringify(oe)}]`)}:{},...ie?{idCount:U(`#${D(ie)}`)}:{},...ye&&Z?{roleCount:g(ye)}:{},...ae?{filterText:ae,filterRoleCount:N(ye,ae)}:{},...Te?{dataAttr:Te,dataAttrCount:U(`[${Te.name}=${JSON.stringify(Te.value)}]`)}:{}})}J=J.parentElement}}}catch{}const C=!!(e.labels&&e.labels.length>0),w=f?C&&(e.labels[0].textContent||"").replace(/\s+/g," ").trim().slice(0,120)||null:void 0;return{tagName:e.tagName?.toLowerCase?.()??"unknown",attributes:i,textContent:(e.textContent||"").replace(/\s+/g," ").trim().slice(0,80),center:{x:Math.round(h.x+h.width/2),y:Math.round(h.y+h.height/2)},hasLabel:C,...f?{labelText:w}:{},selectorCounts:v,...l?{rolePosition:L,ancestors:y}:{}}}function wn(e){const r=globalThis,a=r.document;if(!a||!a.body){e.transport==="postMessage"?r.parent.postMessage({type:"pickerClosed"},"*"):r.__piwiPickState="skipped";return}const c=2147483600,n=a.createElement("div");n.id="__piwi_picker_highlight",n.style.cssText=`position:fixed;pointer-events:none;z-index:${c};display:none;box-sizing:border-box;border:2px solid #a855f7;background:rgba(168,85,247,.14);border-radius:4px;box-shadow:0 0 0 1px rgba(255,255,255,.9),0 0 0 3px rgba(59,7,100,.55),inset 0 0 0 1px rgba(255,255,255,.5);`;const s=a.createElement("div");s.id="__piwi_picker_banner",s.style.cssText=`position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:${c+2};background:#111827;color:#f9fafb;font:13px/1.5 system-ui,sans-serif;border:1px solid #312e81;padding:10px 16px;border-radius:10px;box-shadow:0 4px 24px rgba(0,0,0,.5);max-width:min(680px,86vw);`;const l=g=>{const z=J=>J.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),H=/('(?:\\.|[^'])*'|"(?:\\.|[^"])*")|([A-Za-z_$][\w$]*)(?=\s*\()|([A-Za-z_$][\w$]*)(?=\s*:)|(true|false|null|\d+)|([{}(),.])/g;let F="",te=0,N;for(;(N=H.exec(g))!==null;){N.index>te&&(F+=z(g.slice(te,N.index)));const J=N[1]?"#86efac":N[2]?"#d8b4fe":N[3]?"#93c5fd":N[4]?"#fcd34d":"#9ca3af";F+=`<span style="color:${J}">${z(N[0])}</span>`,te=H.lastIndex}return te<g.length&&(F+=z(g.slice(te))),F},f="ui-monospace,SFMono-Regular,Menlo,Consolas,monospace",i=g=>`<code style="font-family:${f}">${l(g)}</code>`,h=a.createElement("div");h.innerHTML=e.transport==="postMessage"?"Click an element to generate locators":e.failing?`Piwi locator picker — click the element that should replace ${i(e.failing)}`:"Piwi inspector — click any element to generate locators for it";const v=a.createElement("div");v.id="__piwi_picker_locator",v.style.cssText=`display:none;margin-top:7px;padding:5px 9px;border-radius:7px;background:#0b1120;border:1px solid #4c1d95;font:13.5px/1.55 ${f};word-break:break-word;overflow-wrap:anywhere;`;const L=a.createElement("div");L.id="__piwi_picker_foot",L.style.cssText="color:#9ca3af;margin-top:6px;font-size:12px;",L.textContent="↑ parent · ↓ child · Esc skip",s.appendChild(h),s.appendChild(v),s.appendChild(L);const y=a.createElement("div");y.id="__piwi_picker_label",y.style.cssText=`position:fixed;pointer-events:none;z-index:${c+1};display:none;box-sizing:border-box;max-width:min(620px,92vw);background:#0b1120;color:#f9fafb;border:1px solid #7c3aed;border-radius:7px;padding:4px 8px;font:12.5px/1.45 ${f};white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 18px rgba(0,0,0,.5);`,a.body.appendChild(n),a.body.appendChild(y),a.body.appendChild(s);const C=g=>g.replace(/\\/g,"\\\\").replace(/'/g,"\\'"),w=g=>{const z=(g.tagName||"?").toLowerCase(),H=g.getAttribute&&g.getAttribute("data-testid");if(H)return`getByTestId('${C(H)}')`;if(g.labels&&g.labels.length>0){const W=(g.labels[0].textContent||"").replace(/\s+/g," ").trim().slice(0,80);if(W)return`getByLabel('${C(W)}')`}const F=g.getAttribute&&g.getAttribute("aria-label");if(F)return`getByLabel('${C(F)}')`;const te=g.getAttribute&&g.getAttribute("placeholder");if(te)return`getByPlaceholder('${C(te)}')`;const N=g.getAttribute&&g.getAttribute("alt");if(N)return`getByAltText('${C(N)}')`;const J=g.getAttribute&&g.getAttribute("title");if(J)return`getByTitle('${C(J)}')`;if(g.id)return`locator('#${C(g.id)}')`;const we=(g.getAttribute&&g.getAttribute("class")||"").split(/\s+/).find(W=>W.length>1);return we?`locator('.${C(we)}')`:z},S=g=>{const z=[];let H=g;for(;H&&z.length<15;){const F=(H.tagName||"").toLowerCase();if(F==="body"||F==="html")break;z.push(H),H=H.parentElement}return z.length?z:[g]},D=["button","a","input","select","textarea","summary","option"],U=g=>{for(let z=0;z<Math.min(g.length,4);z++){const H=g[z],F=(H.tagName||"").toLowerCase();if(D.includes(F)||H.getAttribute&&(H.getAttribute("role")||H.getAttribute("data-testid")))return z}return 0},V=g=>{const z=r.__piwiDescribeElement;if(typeof z=="function")try{const H=z(g);if(typeof H=="string"&&H)return H}catch{}return w(g)};let B=[],Q=0,X=null,m=null;const M=g=>{y.style.display="block";const z=y.getBoundingClientRect(),H=r.innerWidth||a.documentElement.clientWidth||0,F=r.innerHeight||a.documentElement.clientHeight||0;let te=g.top-z.height-6;te<4&&(te=g.bottom+6),te+z.height>F-4&&(te=Math.max(4,F-z.height-4));let N=g.left;N+z.width>H-6&&(N=H-z.width-6),N<6&&(N=6),y.style.left=N+"px",y.style.top=te+"px"},x=()=>B[Q]??null,K=()=>{const g=x();if(!g){n.style.display="none",y.style.display="none";return}const z=g.getBoundingClientRect();if(n.style.display="block",n.style.left=z.left+"px",n.style.top=z.top+"px",n.style.width=z.width+"px",n.style.height=z.height+"px",g!==m){m=g;const H=(g.tagName||"?").toLowerCase(),F=l(V(g));y.innerHTML=`<span style="color:#c4b5fd">&lt;${H}&gt;</span> ${F}`,v.innerHTML=F,v.style.display="block"}M(z),L.textContent="click to pick · ↑ parent · ↓ child · Esc skip"},P=g=>{g.preventDefault(),g.stopImmediatePropagation()},j=g=>g===s||g===n||g===y||s.contains&&s.contains(g)||!!(g&&g.__piwiHint);let ne="top";const me=g=>{ne!==g&&(ne=g,g==="bottom"?(s.style.top="auto",s.style.bottom="12px"):(s.style.top="12px",s.style.bottom="auto"))},ge=g=>{const z=g.target;if(!z||j(z)){n.style.display="none",y.style.display="none";return}z!==X&&(X=z,B=S(z),Q=U(B)),K();const H=x();if(H){const F=H.getBoundingClientRect(),te=s.getBoundingClientRect(),N=8;F.left<te.right+N&&F.right>te.left-N&&F.top<te.bottom+N&&F.bottom>te.top-N&&me(ne==="top"?"bottom":"top")}},he=["mousedown","mouseup","pointerdown","pointerup","auxclick","dblclick"],Z=()=>{a.removeEventListener("mousemove",ge,!0),a.removeEventListener("click",G,!0),a.removeEventListener("keydown",se,!0),e.transport==="postMessage"&&r.removeEventListener("message",re,!1)},ce=()=>{for(const g of he)a.removeEventListener(g,P,!0)},k=()=>{n.remove(),y.remove(),s.remove()},d=g=>{if(Z(),n.style.display="none",y.style.display="none",e.transport==="postMessage"){const z=r.__piwiProbe,H=typeof z=="function"?z(g,e.probeArg):null;r.__piwiSnapshotExtras?.onPick?.(),a.addEventListener("click",P,!0),a.addEventListener("keydown",P,!0),L.textContent="Analyzing element…",r.parent.postMessage({type:"elementPicked",attrs:H},"*")}else ce(),r.__piwiPickedElement=g,r.__piwiPickState="picked",L.textContent="Analyzing element…"},O=()=>{Z(),e.transport==="postMessage"?(a.removeEventListener("click",P,!0),a.removeEventListener("keydown",P,!0),ce(),r.__piwiSnapshotExtras?.onClose?.(),k(),r.parent.postMessage({type:"pickerClosed"},"*")):(ce(),r.__piwiPickState="skipped",k())},G=g=>{P(g);const z=x();!z||j(g.target)||d(z)},se=g=>{if(g.key==="Escape"){P(g),O();return}(g.key==="ArrowUp"||g.key==="ArrowDown")&&(P(g),g.key==="ArrowUp"?Q=Math.min(Q+1,B.length-1):Q=Math.max(Q-1,0),K())},re=g=>{const z=g.data;!z||typeof z.type!="string"||z.type!=="piwiPickerKey"||typeof z.key!="string"||se({key:z.key,preventDefault(){},stopImmediatePropagation(){}})};r.__piwiPickCleanup=k,a.addEventListener("mousemove",ge,!0),a.addEventListener("click",G,!0),a.addEventListener("keydown",se,!0);for(const g of he)a.addEventListener(g,P,!0);e.transport==="postMessage"&&(r.addEventListener("message",re,!1),r.parent.postMessage({type:"pickerReady"},"*"))}function Cn(){var e=document,r=window,a=2147483600,c=[];function n(){for(var m=0;m<c.length;m++)c[m].parentNode&&c[m].parentNode.removeChild(c[m]);c=[]}function s(m){return(m||"").replace(/\s+/g," ").trim().toLowerCase()}function l(m){var M=s(m);if(M.length<2)return[];for(var x=e.querySelectorAll("button,a,[role],h1,h2,h3,h4,h5,h6,label,summary,input,textarea,select,option,span,li,td,th,p"),K=[],P=[],j=0;j<x.length;j++){var ne=x[j],me=s(ne.textContent);if(!me){var ge=s(ne.getAttribute&&(ne.getAttribute("placeholder")||ne.getAttribute("aria-label"))||"");ge&&(ge===M||ge.indexOf(M)!==-1)&&K.push(ne);continue}me.length>120||(me===M?K.push(ne):me.indexOf(M)!==-1&&me.length<M.length+30&&P.push(ne))}return K.concat(P)}function f(m,M){var x=m.getBoundingClientRect();if(x.width===0&&x.height===0)return null;var K=e.createElement("div");return K.__piwiHint=!0,K.style.cssText="position:fixed;pointer-events:none;z-index:"+(a+1)+";box-sizing:border-box;border-radius:3px;transition:opacity .3s;border:2px solid "+M+";box-shadow:0 0 0 3px "+M+"55;left:"+x.left+"px;top:"+x.top+"px;width:"+x.width+"px;height:"+x.height+"px;",e.body.appendChild(K),c.push(K),K}function i(m){var M=m.getBoundingClientRect();r.parent.postMessage({type:"piwiScrollTo",y:M.top},"*")}function h(m){if(n(),!(!m||!m.length)){for(var M=null,x=0;x<m.length;x++)for(var K=m[x],P=l(K&&K.text),j=0;j<Math.min(P.length,3);j++)f(P[j],"#f59e0b"),M||(M=P[j]);M&&i(M),setTimeout(function(){for(var ne=0;ne<c.length;ne++)c[ne].style.opacity="0"},2600),setTimeout(n,3e3)}}var v=[],L=0;function y(){r.parent.postMessage({type:"piwiSearchResult",count:v.length,index:v.length?L:-1},"*")}function C(){n();var m=v[L];m&&(f(m,"#7c3aed"),i(m),y())}function w(m){if(v=l(m),L=0,!v.length){n(),y();return}C()}function S(){v.length&&(L=(L+1)%v.length,C())}function D(m){var M=m.data;if(!(!M||typeof M.type!="string")){if(M.type==="piwiHighlight")try{h(M.hints)}catch{}else if(M.type==="piwiSearch")try{w(M.q)}catch{}else if(M.type==="piwiSearchNext")try{S()}catch{}else if(M.type==="piwiClearHints")try{n()}catch{}}}r.addEventListener("message",D,!1);function U(m){m.preventDefault(),m.stopImmediatePropagation()}for(var V=["mousedown","mouseup","pointerdown","pointerup","auxclick","dblclick","contextmenu","submit","beforeinput","input","change","paste","cut","drop","dragstart","keypress","keyup","touchstart","touchend"],B=0;B<V.length;B++)e.addEventListener(V[B],U,!0);r.__piwiSnapshotExtras={onPick:function(){n()},onClose:function(){n(),r.removeEventListener("message",D,!1);for(var m=0;m<V.length;m++)e.removeEventListener(V[m],U,!0)}};function Q(){var m=Math.max(e.documentElement?e.documentElement.scrollHeight:0,e.body?e.body.scrollHeight:0);m>0&&r.parent.postMessage({type:"piwiContentHeight",height:m},"*")}Q();try{if(r.ResizeObserver){var X=new r.ResizeObserver(Q);e.documentElement&&X.observe(e.documentElement),e.body&&X.observe(e.body)}}catch{}}function Tn(e){const r=[],a=new Set,c=s=>{if(typeof s!="string")return;const l=s.trim();if(l.length<2||l.length>80)return;const f=l.toLowerCase();a.has(f)||(a.add(f),r.push({text:l}))},n=s=>s&&(s.name??s.text??s.label??s.placeholder??s.alt??s.title);c(n(e.failingLocator?.args));for(const s of e.fromElementMatch??[])c(n(s.args));for(const s of e.fromAriaSnapshot??[])c(n(s.args));return r.slice(0,6)}const qe=e=>e.replace(/<\/(script)/gi,"<\\/$1");function Sn(e){const a={transport:"postMessage",probeArg:{keep:e.probedAttrs,includeStructural:!1,includeLabelText:!0}},c=qe(String($n)),n=qe(String(Cn)),s=qe(String(wn));return`<script>globalThis.__piwiProbe = (${c});(${n})();(${s})(${JSON.stringify(a)});<\/script>`}function An(e){return e.replace(/<base\b[^>]*>/gi,"")}function Ln(e,r){return An(e)+Sn(r)}const Rn={key:0,class:"flex items-center justify-center py-20"},In={key:1,class:"py-8 text-center"},zn={class:"text-xs text-gray-400 mt-1"},Pn={key:2,class:"py-8 text-center"},Bn={class:"mb-2 flex items-center gap-2 flex-wrap"},En={key:1,class:"ml-auto inline-flex rounded-md border border-default overflow-hidden text-xs"},On={key:0,class:"flex items-center gap-1 mb-1.5 text-xs text-gray-500"},Mn={class:"tabular-nums w-11 text-center select-none"},Nn={class:"ml-auto text-gray-400 tabular-nums"},Un={key:1,class:"flex items-center gap-2 mb-1.5"},jn={key:0,class:"text-xs text-gray-500 tabular-nums"},Dn={key:1,class:"text-xs text-gray-400"},Kn={key:0,class:"absolute inset-0 flex items-center justify-center bg-white dark:bg-gray-900 z-10"},Vn=["src"],Hn={key:2,class:"mt-4 space-y-3"},Fn={class:"flex items-center gap-3 bg-elevated rounded-lg p-3"},qn={class:"flex-1 min-w-0"},Zn={class:"text-sm font-medium"},Wn={class:"text-xs"},Jn={key:0,class:"text-xs text-gray-400 ml-1"},Yn={key:0,class:"text-xs text-gray-500 mt-0.5 truncate"},Gn={class:"space-y-1",role:"radiogroup","aria-label":"Alternative locators"},Qn={class:"flex-1 min-w-0"},Xn={class:"text-xs font-medium text-primary"},eo={class:"flex justify-between w-full"},to={key:1},no={class:"flex gap-2"},oo=ue({__name:"SnapshotLocatorPicker",props:We({runId:{},testRunsCaseId:{},failingLocator:{},healing:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:We(["close","confirmed"],["update:open"]),setup(e,{emit:r}){const a=e,c=r,n=at(e,"open"),s=Y(!1),l=Y(null),f=Y(null),i=Y(void 0);async function h(){s.value=!0,f.value=null;try{const R=new URLSearchParams({inlineStyles:"1"});i.value&&R.set("source",i.value);const b=`?${R.toString()}`;l.value=await $fetch(`/api/test-runs/${a.runId}/cases/${a.testRunsCaseId}/dom-snapshot${b}`),l.value?.source&&(i.value=l.value.source)}catch(R){f.value=R instanceof Error?R.message:"Unknown error"}finally{s.value=!1}}const v=I(()=>l.value?.availableSources??[]);function L(R){R===i.value||s.value||(i.value=R,w.value=!1,y.value="pick-element",X.value=0,M.value=!1,S.value=null,D.value=[],F.value=null,O.value="",G.value=0,se.value=-1,h())}Ee(n,R=>{R&&(l.value=null,w.value=!1,y.value="pick-element",X.value=0,M.value=!1,i.value=void 0,S.value=null,D.value=[],F.value=null,O.value="",G.value=0,se.value=-1,h())});const y=Y("pick-element"),C=Y(null),w=Y(!1),S=Y(null),D=Y([]),U=Y(void 0);function V(R){return URL.createObjectURL(new Blob([Ln(R,{probedAttrs:hn})],{type:"text/html"}))}Ee(()=>l.value?.html,R=>{U.value&&(URL.revokeObjectURL(U.value),U.value=void 0),R&&(U.value=V(R))},{immediate:!0});const B=Y(null),Q=Y(0),X=Y(0),m=Y(1),M=Y(!1),x=I(()=>l.value?.viewport??null),K=I(()=>{const R=x.value;return!R?.width||!Q.value?1:Math.min(Q.value/R.width,1)}),P=I(()=>{const R=x.value;if(!R)return{width:"100%",height:X.value?`${X.value}px`:"100%"};const b=X.value||R.height;return{width:`${Math.round(R.width*m.value)}px`,height:`${Math.round(b*m.value)}px`}}),j=I(()=>{const R=x.value;if(!R)return{width:"100%",height:X.value?`${X.value}px`:"100%",border:"0"};const b=X.value||R.height;return{width:`${R.width}px`,height:`${b}px`,transform:`scale(${m.value})`,transformOrigin:"top left",border:"0"}}),ne=I(()=>Math.round(m.value*100)),me=R=>Math.min(4,Math.max(.1,R));function ge(R){M.value=!0,m.value=me(m.value*R)}function he(){M.value=!1,m.value=K.value}Ee([K,x],()=>{M.value||(m.value=K.value)});let Z=null;Ee(B,R=>{Z?.disconnect(),R&&(Q.value=R.clientWidth,Z=new ResizeObserver(b=>{for(const ae of b)Q.value=ae.contentRect.width}),Z.observe(R))}),Ae(()=>{Z?.disconnect()}),Ae(()=>{U.value&&URL.revokeObjectURL(U.value)});function ce(R){if(!C.value||R.source!==C.value.contentWindow)return;const b=R.data;if(b?.type==="pickerReady"){w.value=!0,d();return}if(b?.type==="piwiContentHeight"&&typeof b.height=="number"){X.value=Math.max(b.height,x.value?.height??0);return}if(b?.type==="piwiScrollTo"&&typeof b.y=="number"){const ae=B.value;ae&&ae.scrollTo({top:Math.max(0,b.y*m.value-80),behavior:"smooth"});return}if(b?.type==="piwiSearchResult"){G.value=typeof b.count=="number"?b.count:0,se.value=typeof b.index=="number"?b.index:-1;return}if(b?.type==="elementPicked"&&b.attrs){const{labelText:ae,...xe}=b.attrs;S.value={...xe,accessibleName:ae??_n(xe)},D.value=kn(S.value),F.value=null,y.value="review"}b?.type==="pickerClosed"&&oe()}function k(R){C.value?.contentWindow?.postMessage(R,"*")}function d(){const R=Tn({failingLocator:a.failingLocator,fromElementMatch:a.healing?.fromElementMatch??null,fromAriaSnapshot:a.healing?.fromAriaSnapshot??null});R.length&&k({type:"piwiHighlight",hints:R})}const O=Y(""),G=Y(0),se=Y(-1);let re=null;Ee(O,R=>{re&&clearTimeout(re),re=setTimeout(()=>k({type:"piwiSearch",q:R}),180)});function g(){k({type:"piwiSearchNext"})}Ae(()=>{re&&clearTimeout(re)});function z(R){if(!n.value||y.value!=="pick-element"||!w.value||R.key!=="ArrowUp"&&R.key!=="ArrowDown")return;const b=(document.activeElement?.tagName??"").toLowerCase();if(b==="input"||b==="textarea")return;const ae=C.value?.contentWindow;ae&&(R.preventDefault(),ae.postMessage({type:"piwiPickerKey",key:R.key},"*"))}function H(){C.value&&(C.value.src="about:blank")}rt(()=>{window.addEventListener("message",ce),window.addEventListener("keydown",z,!0)}),Ae(()=>{window.removeEventListener("message",ce),window.removeEventListener("keydown",z,!0)});const F=Y(null),te=Y(!1);function N(R){F.value=R}const J=I(()=>pt(a.failingLocator.method,D.value)),we=Je();async function W(){if(F.value){te.value=!0;try{(await $fetch(`/api/test-runs/${a.runId}/cases/${a.testRunsCaseId}/locator-pick`,{method:"POST",body:{failingLocator:a.failingLocator,pickedLocator:F.value,element:S.value}})).status==="ok"?c("confirmed",F.value):we.add({title:"Pick not saved",description:"This failure has no call-site or locator signature to attach the pick to.",color:"warning",icon:"i-lucide-alert-triangle"}),n.value=!1}catch(R){we.add({title:"Could not save the pick",description:lt(R),color:"error",icon:"i-lucide-alert-triangle"})}finally{te.value=!1}}}function oe(){H(),n.value=!1}function ie(){S.value=null,D.value=[],F.value=null,y.value="pick-element",w.value=!1,O.value="",G.value=0,se.value=-1;const R=l.value?.html;R&&(U.value&&URL.revokeObjectURL(U.value),U.value=V(R))}const{copy:de}=He(),le=Y(null);let ye=null;function Te(R,b){de(R,{toast:"Locator copied"}),le.value=b,ye&&clearTimeout(ye),ye=setTimeout(()=>{le.value=null},2e3)}return Ae(()=>{ye&&clearTimeout(ye)}),(R,b)=>{const ae=$e,xe=Ie,Be=_t,Ke=Pe,gt=Qe,ht=Mt;return o(),q(ht,{open:n.value,"onUpdate:open":b[8]||(b[8]=be=>n.value=be),ui:{content:"max-w-6xl w-[95vw]"},onAfterLeave:oe},{header:A(()=>[...b[9]||(b[9]=[p("div",null,[p("h3",{class:"text-lg font-medium"},"Pick a locator from the DOM snapshot"),p("p",{class:"text-sm text-gray-500 mt-0.5"}," Click the element the failing locator should target. Use ↑↓ to walk the DOM tree. ")],-1)])]),body:A(()=>[t(s)?(o(),u("div",Rn,[_(ae,{name:"i-lucide-loader",class:"size-6 animate-spin text-gray-400"}),b[10]||(b[10]=p("span",{class:"ml-2 text-sm text-gray-500"},"Loading DOM snapshot...",-1))])):t(f)?(o(),u("div",In,[_(ae,{name:"i-lucide-alert-triangle",class:"size-8 text-red-300 mx-auto mb-2"}),b[12]||(b[12]=p("p",{class:"text-sm text-red-500"},"Failed to load snapshot",-1)),p("p",zn,$(t(f)),1),_(xe,{size:"xs",variant:"outline",color:"neutral",class:"mt-3",onClick:h},{default:A(()=>[...b[11]||(b[11]=[E("Retry",-1)])]),_:1})])):t(l)?.status!=="ok"||!t(l).html?(o(),u("div",Pn,[_(ae,{name:"i-lucide-file-x",class:"size-8 text-gray-300 mx-auto mb-2"}),b[13]||(b[13]=p("p",{class:"text-sm text-gray-500"},"No DOM snapshot or ARIA data available for this execution",-1)),b[14]||(b[14]=p("p",{class:"text-xs text-gray-400 mt-1"},"This test run has no stored trace or ARIA snapshot to pick from.",-1))])):(o(),u(ee,{key:3},[p("div",Bn,[t(l).source?(o(),u("div",{key:0,class:pe(["text-xs flex items-center gap-1",t(l).source==="aria"?"text-amber-600 dark:text-amber-400":"text-green-600 dark:text-green-400"])},[_(ae,{name:t(l).source==="aria"?"i-lucide-accessibility":"i-lucide-check",class:"size-3.5 shrink-0"},null,8,["name"]),t(l).source==="aria"?(o(),u(ee,{key:0},[E(" Accessibility tree from the failure-time ARIA snapshot — element styles are approximate ")],64)):(o(),u(ee,{key:1},[E(" Rendered from the failure-time DOM snapshot ")],64))],2)):T("",!0),t(v).length>1?(o(),u("div",En,[p("button",{type:"button",class:pe(["px-2 py-1 flex items-center gap-1 transition-colors",t(i)==="dom"?"bg-primary/10 text-primary font-medium":"text-gray-500 hover:bg-elevated"]),title:"Rendered page from the trace",onClick:b[0]||(b[0]=be=>L("dom"))},[_(ae,{name:"i-lucide-layout-panel-top",class:"size-3.5"}),b[15]||(b[15]=E(" DOM ",-1))],2),p("button",{type:"button",class:pe(["px-2 py-1 flex items-center gap-1 border-l border-default transition-colors",t(i)==="aria"?"bg-primary/10 text-primary font-medium":"text-gray-500 hover:bg-elevated"]),title:"Accessibility tree from the ARIA snapshot",onClick:b[1]||(b[1]=be=>L("aria"))},[_(ae,{name:"i-lucide-accessibility",class:"size-3.5"}),b[16]||(b[16]=E(" Tree ",-1))],2)])):T("",!0)]),t(x)?(o(),u("div",On,[_(xe,{size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-zoom-out",title:"Zoom out",onClick:b[2]||(b[2]=be=>ge(1/1.25))}),p("span",Mn,$(t(ne))+"%",1),_(xe,{size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-zoom-in",title:"Zoom in",onClick:b[3]||(b[3]=be=>ge(1.25))}),_(xe,{size:"xs",variant:"outline",color:"neutral",class:"ml-1",onClick:he},{default:A(()=>[...b[17]||(b[17]=[E("Fit",-1)])]),_:1}),p("span",Nn,$(t(x).width)+"×"+$(t(x).height),1)])):T("",!0),t(y)==="pick-element"?(o(),u("div",Un,[_(Be,{modelValue:t(O),"onUpdate:modelValue":b[4]||(b[4]=be=>Le(O)?O.value=be:null),size:"xs",icon:"i-lucide-search",placeholder:"Find an element by its text…",class:"max-w-xs",onKeydown:ke(_e(g,["prevent"]),["enter"])},null,8,["modelValue","onKeydown"]),t(O)&&t(G)>0?(o(),u("span",jn,$(t(se)+1)+"/"+$(t(G)),1)):t(O)?(o(),u("span",Dn,"no matches")):T("",!0),t(G)>1?(o(),q(xe,{key:2,size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-chevron-down",title:"Next match (Enter)",onClick:g})):T("",!0)])):T("",!0),p("div",{ref_key:"stageRef",ref:B,class:pe(["relative border border-default rounded-lg overflow-auto",[t(y)==="pick-element"?"h-[75vh]":"h-80",t(x)?"bg-gray-100 dark:bg-gray-800":""]])},[t(w)?T("",!0):(o(),u("div",Kn,[_(ae,{name:"i-lucide-loader",class:"size-5 animate-spin text-gray-400"}),b[18]||(b[18]=p("span",{class:"ml-2 text-sm text-gray-500"},"Initializing picker...",-1))])),p("div",{style:et(t(P))},[p("iframe",{ref_key:"iframeRef",ref:C,src:t(U),style:et(t(j)),class:"bg-white",sandbox:"allow-scripts",title:"DOM snapshot"},null,12,Vn)],4)],2),t(y)==="review"&&t(S)?(o(),u("div",Hn,[p("div",Fn,[_(ae,{name:"i-lucide-crosshair",class:"size-5 text-primary shrink-0"}),p("div",qn,[p("p",Zn,[b[19]||(b[19]=E(" Picked: ",-1)),p("code",Wn,$(t(S).tagName),1),t(S).attributes.id?(o(),u("code",Jn,"#"+$(t(S).attributes.id),1)):T("",!0),t(S).attributes["data-testid"]?(o(),q(Ke,{key:1,size:"xs",color:"primary",variant:"subtle",class:"ml-1"},{default:A(()=>[E($(t(S).attributes["data-testid"]),1)]),_:1})):T("",!0)]),t(S).textContent?(o(),u("p",Yn,' "'+$(t(S).textContent)+'" ',1)):T("",!0)]),_(xe,{size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-rotate-ccw",title:"Pick a different element",onClick:ie})]),p("div",Gn,[(o(!0),u(ee,null,fe(t(D),(be,Fe)=>(o(),q(dt,{key:Fe,alt:be,copied:t(le)===`picked-${Fe}`,dense:!0,selectable:!0,selected:t(F)?.locator===be.locator,onCopy:yt=>Te(be.locator,`picked-${Fe}`),onSelect:yt=>N(be)},null,8,["alt","copied","selected","onCopy","onSelect"]))),128))]),t(J).recommended?(o(),u("div",{key:0,class:"rounded-lg border border-primary/40 bg-primary/5 p-3 flex items-center gap-3 cursor-pointer",role:"button",tabindex:"0",title:"Select this locator for Confirm",onClick:b[6]||(b[6]=be=>N(t(J).recommended)),onKeydown:b[7]||(b[7]=ke(_e(be=>N(t(J).recommended),["prevent"]),["enter"]))},[_(ae,{name:"i-lucide-star",class:"size-5 text-primary shrink-0"}),p("div",Qn,[p("p",Xn," Recommended (score: "+$(t(J).recommended.score)+") ",1),_(gt,{locator:t(J).recommended.locator,truncate:"",class:"text-sm mt-0.5"},null,8,["locator"])]),_(xe,{size:"sm",color:"primary",variant:"solid","trailing-icon":t(le)==="rec"?"i-lucide-check":"i-lucide-copy",onClick:b[5]||(b[5]=_e(be=>Te(t(J).recommended.locator,"rec"),["stop"]))},{default:A(()=>[...b[20]||(b[20]=[E(" Copy ",-1)])]),_:1},8,["trailing-icon"])],32)):T("",!0)])):T("",!0)],64))]),footer:A(()=>[p("div",eo,[t(y)==="review"?(o(),q(xe,{key:0,size:"sm",variant:"outline",color:"neutral",icon:"i-lucide-rotate-ccw",onClick:ie},{default:A(()=>[...b[21]||(b[21]=[E(" Pick a different element ",-1)])]),_:1})):(o(),u("div",to)),p("div",no,[_(xe,{size:"sm",variant:"outline",color:"neutral",onClick:oe},{default:A(()=>[...b[22]||(b[22]=[E("Cancel",-1)])]),_:1}),t(y)==="review"?(o(),q(xe,{key:0,size:"sm",color:"primary",loading:t(te),disabled:!t(F),onClick:W},{default:A(()=>[...b[23]||(b[23]=[E(" Confirm pick ",-1)])]),_:1},8,["loading","disabled"])):T("",!0)])])]),_:1},8,["open"])}}}),so=Object.assign(oo,{__name:"SnapshotLocatorPicker"});function ao(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ro(e,r){let a=0,c=null;for(let n=r;n<e.length;n++){const s=e[n];if(c){if(s==="\\"){n++;continue}s===c&&(c=null);continue}if(s==="'"||s==='"'||s==="`"){c=s;continue}if(s==="(")a++;else if(s===")"&&(a--,a===0))return n}return-1}function io(e,r,a){if(!e||!r||!a)return null;const c=new RegExp(`${ao(r)}\\s*\\(`,"g");let n;for(;(n=c.exec(e))!==null;){const s=n.index,l=s>0?e[s-1]:"";if(l&&/[A-Za-z0-9_$]/.test(l))continue;const f=s+n[0].lastIndexOf("("),i=ro(e,f);if(i===-1)return null;const h=e.slice(0,s)+a+e.slice(i+1);return h===e?null:{old:e,new:h}}return null}function lo(e,r){return`${r?`@@ ${r} @@
2
+ `:""}-${e.old.trimEnd()}
3
+ +${e.new.trimEnd()}`}function co(e,r){const a=e??{},c=r??{},n=l=>l==null?null:typeof l=="string"?l:JSON.stringify(l),s=[];for(const l of new Set([...Object.keys(a),...Object.keys(c)])){const f=n(a[l]),i=n(c[l]);f!==i&&s.push({key:l,from:f,to:i})}return s}function uo(e){const a=[`In ${e.location??(e.sourceLine?`line ${e.sourceLine.line}`:"the failing test")}, the Playwright locator \`${e.failing}\` no longer matches its element.`,`Replace it with \`${e.recommended}\`.`];return e.sourceLine&&a.push("","Current line:",e.sourceLine.text.trim()),a.join(`
4
+ `)}const po={key:1},fo={class:"flex items-center gap-1"},mo={key:1,class:"rounded-lg border border-primary/50 bg-primary/10 p-3 mb-3 flex items-center gap-3"},go={class:"flex-1 min-w-0"},ho={class:"text-xs font-medium text-primary flex items-center gap-1.5"},yo={key:2,class:"flex items-center gap-2 bg-elevated rounded p-2 mb-3 border border-red-200 dark:border-red-800"},vo={class:"text-xs font-mono text-red-600 dark:text-red-400 flex-1 truncate"},xo={key:4,class:"rounded-lg border border-primary/40 bg-primary/5 p-3 mb-3 space-y-2"},bo={class:"flex items-center gap-2 min-w-0"},ko={key:0,class:"text-[11px] text-gray-500 truncate min-w-0"},_o={key:0,class:"rounded border border-default overflow-hidden bg-default"},$o={key:0,class:"text-xs flex flex-wrap items-center gap-x-1.5 gap-y-0.5"},wo={class:"font-mono text-gray-500"},Co={key:0,class:"font-mono text-red-500 line-through"},To={key:1,class:"text-gray-400"},So={key:2,class:"font-mono text-green-600 dark:text-green-400"},Ao={key:3,class:"text-gray-400"},Lo={key:2,class:"text-xs text-gray-500"},Ro={key:3,class:"text-xs text-primary/90 flex items-center gap-1"},Io={class:"flex items-center gap-2"},zo={key:5,class:"rounded-lg border border-default bg-elevated p-3 mb-3 flex items-center gap-3"},Po={class:"flex-1 min-w-0"},Bo={class:"text-xs font-medium text-success-600 dark:text-success-400"},Eo={class:"space-y-2"},Oo={key:6,class:"mt-3"},Mo={class:"space-y-2"},No={class:"flex items-center gap-1"},st=3,Uo=ue({__name:"LocatorHealingPanel",props:{runId:{},testRunsCaseId:{},storageKey:{},affectedCount:{}},setup(e){const r=e,a=I(()=>r.storageKey?De:je),c=I(()=>r.storageKey?{storageKey:r.storageKey}:{}),{data:n,pending:s,error:l}=Ue(()=>`/api/test-runs/${r.runId}/cases/${r.testRunsCaseId}/locator-healing`,{lazy:!0},"$Zgad3xb7ix"),f=I(()=>!!n.value&&n.value.source!=="none"&&!!(n.value.fromElementMatch?.length||n.value.fromPriorSuccess?.length||n.value.fromAriaSnapshot?.length)),i=I(()=>n.value?n.value.fromElementMatch??n.value.fromPriorSuccess??n.value.fromAriaSnapshot??[]:[]),h=I(()=>i.value.find(k=>k.pickedByUser)??null),v=I(()=>n.value?.recommendation?n.value.recommendation:n.value?.priorNameMayBeStale||!i.value.length?null:pt(n.value?.failingLocator?.method,i.value)),L=I(()=>n.value?.priorNameMayBeStale&&n.value.fromPriorSuccess?.length?n.value.fromAriaSnapshot??[]:[]),y=I(()=>{const k=v.value;return k?.recommended?k.recommended.pickedByUser?"Confirmed with the locator picker on the failing page":k.preservesConvention?"Keeps your original locator style — minimal, idiomatic edit":k.suggestAddTestId?"Most stable available, but still fragile":"Most stable available — a sturdier style than the original":""}),C=I(()=>{const k=n.value?.priorNameMayBeStale,d=(()=>{switch(n.value?.source){case"prior-run":return k?"Pre-captured from the last passing run — the element looks changed since":"Pre-captured from the last passing run — highest confidence";case"element-match":return"The element looks renamed or moved — these are fresh locators for its current identity on the failing page";case"fingerprint":return"Matched by locator signature (line numbers shifted)";case"cross-test":return"Captured by another test in this project that uses the same locator";case"aria-snapshot":return"Generated from the failure-time ARIA snapshot — limited, no HTML attributes";default:return""}})(),O=n.value?.capturedAt;return O?`${d} · captured ${Ye(O)}`:d}),w=I(()=>{if(n.value?.priorNameMayBeStale)return"text-warning-600 dark:text-warning-400";switch(n.value?.source){case"prior-run":case"fingerprint":case"cross-test":return"text-success-600 dark:text-success-400";case"element-match":return"text-primary-600 dark:text-primary-400";default:return"text-warning-600 dark:text-warning-400"}}),S=I(()=>{const k=n.value?.failingLocator;return k?`${k.method}(${JSON.stringify(k.args)})`:""}),D=ze(),{data:U}=Ue(()=>`/api/test-run-cases/${r.testRunsCaseId}/traces`,{lazy:!0},"$eLKRphd7VZ"),V=I(()=>{const k=U.value?.[0];if(!k)return null;const d=!!D.public.demoMode&&k.filePath.startsWith("demo/");return ct(k.filePath,D.app?.baseURL,d)}),B=Y(!1);async function Q(){await wt(`/api/test-runs/${r.runId}/cases/${r.testRunsCaseId}/locator-healing`)}const{copy:X}=He(),m=Y(null);let M=null;function x(k,d,O){X(k,{toast:O}),m.value=d,M&&clearTimeout(M),M=setTimeout(()=>{m.value=null},2e3)}function K(k,d){x(k,d,"Locator copied")}Ae(()=>{M&&clearTimeout(M)});const P=I(()=>v.value?.recommended??null),j=I(()=>r.affectedCount&&r.affectedCount>1&&P.value?`Same break affects ${r.affectedCount} tests in this cluster — one fix`:""),ne=I(()=>{if(P.value?.pickedByUser)return"your confirmed pick";switch(n.value?.source){case"prior-run":return"from the last passing run";case"fingerprint":return"from a prior run (line shifted)";case"cross-test":return"from another test in this project";case"element-match":return"from the current failing page";case"aria-snapshot":return"from the ARIA snapshot";default:return""}}),me=I(()=>{const k=n.value?.sourceLine,d=P.value;if(!k||!d)return null;const O=io(k.text,n.value?.failingLocator?.method,d.locator);return O?{edit:O,patch:lo(O,n.value?.location??null)}:null}),ge=I(()=>{if(me.value)return[];const k=n.value?.failingLocator,d=P.value;return!k||!d||d.method!==k.method?[]:co(k.args,d.args)});function he(){const k=P.value;!k||!n.value||x(uo({location:n.value.location??null,sourceLine:n.value.sourceLine??null,failing:S.value,recommended:k.locator}),"fix-prompt","Fix prompt copied")}const Z=Y(!1),ce=I(()=>Z.value?i.value:i.value.slice(0,st));return(k,d)=>{const O=Qe,G=Ie,se=$t,re=Ge,g=$e,z=Pe,H=cn,F=dt,te=It;return o(),u(ee,null,[!t(s)&&!t(l)&&t(f)?(o(),q(Se(t(a)),Ne({key:0},t(c),{icon:"i-lucide-bandage",title:"Alternative locators",count:t(i).length,help:"locator-healing"}),Re({subtitle:A(()=>[p("span",{class:pe(t(w))},$(t(C)),3)]),default:A(()=>[t(n)?.healedInRunId?(o(),q(re,{key:0,class:"mb-3",color:"success",icon:"i-lucide-circle-check",variant:"subtle",title:"Locator healed"},{description:A(()=>[d[11]||(d[11]=E(" The recommended locator now passes at this call site — ",-1)),_(se,{to:`/test-runs/${t(n).healedInRunId}`,class:"underline font-medium"},{default:A(()=>[E(" see run #"+$(t(n).healedInRunId),1)]),_:1},8,["to"]),d[12]||(d[12]=E(". ",-1))]),_:1})):T("",!0),t(h)?(o(),u("div",mo,[_(g,{name:"i-lucide-user-check",class:"size-5 text-primary shrink-0"}),p("div",go,[p("p",ho,[d[14]||(d[14]=E(" Your pick ",-1)),_(z,{size:"sm",color:"primary",variant:"subtle"},{default:A(()=>[...d[13]||(d[13]=[E("confirmed on the failing page",-1)])]),_:1})]),_(O,{locator:t(h).locator,truncate:"",class:"text-sm mt-0.5"},null,8,["locator"])]),_(G,{size:"sm",color:"primary",variant:"solid","trailing-icon":t(m)==="user-pick"?"i-lucide-check":"i-lucide-copy",onClick:d[1]||(d[1]=N=>K(t(h).locator,"user-pick"))},{default:A(()=>[...d[15]||(d[15]=[E(" Copy ",-1)])]),_:1},8,["trailing-icon"])])):T("",!0),t(n)?.failingLocator?(o(),u("div",yo,[_(g,{name:"i-lucide-x-circle",class:"size-4 text-red-500 shrink-0"}),p("code",vo,$(t(S)),1),_(G,{size:"xs",variant:"ghost",color:"neutral",icon:t(m)==="failing"?"i-lucide-check":"i-lucide-copy",title:t(m)==="failing"?"Copied!":"Copy",onClick:d[2]||(d[2]=N=>K(t(S),"failing"))},null,8,["icon","title"])])):T("",!0),t(n)?.priorNameMayBeStale?(o(),q(re,{key:3,class:"mb-3",color:"warning",icon:"i-lucide-alert-triangle",variant:"subtle",title:"The element's name looks changed",description:"The captured accessible name no longer appears on the failing page, so name-based alternatives (and the failing locator itself) probably no longer match. Prefer the structural options, or the failing-page candidates below."})):T("",!0),t(P)?(o(),u("div",xo,[p("div",bo,[_(g,{name:"i-lucide-star",class:"size-4 text-primary shrink-0"}),d[16]||(d[16]=p("p",{class:"text-xs font-medium text-primary shrink-0"},"Recommended fix",-1)),t(ne)?(o(),u("span",ko," · "+$(t(ne)),1)):T("",!0),d[17]||(d[17]=p("span",{class:"flex-1"},null,-1)),_(z,{size:"xs",color:"primary",variant:"subtle",class:"font-mono tabular-nums shrink-0"},{default:A(()=>[E($(t(P).score),1)]),_:1})]),t(me)?(o(),u("div",_o,[_(H,{patch:t(me).patch},null,8,["patch"])])):(o(),u(ee,{key:1},[_(O,{locator:t(P).locator,truncate:"",class:"text-sm"},null,8,["locator"]),t(ge).length?(o(),u("p",$o,[(o(!0),u(ee,null,fe(t(ge),(N,J)=>(o(),u(ee,{key:J},[p("span",wo,$(N.key)+":",1),N.from?(o(),u("span",Co,$(N.from),1)):(o(),u("span",To,"—")),_(g,{name:"i-lucide-arrow-right",class:"size-3 text-gray-400"}),N.to?(o(),u("span",So,$(N.to),1)):(o(),u("span",Ao,"removed"))],64))),128))])):T("",!0)],64)),t(y)?(o(),u("p",Lo,$(t(y)),1)):T("",!0),t(j)?(o(),u("p",Ro,[_(g,{name:"i-lucide-layers",class:"size-3 shrink-0"}),E($(t(j)),1)])):T("",!0),p("div",Io,[_(G,{size:"xs",color:"primary",variant:"solid","trailing-icon":t(m)==="top"?"i-lucide-check":"i-lucide-copy",onClick:d[3]||(d[3]=N=>K(t(P).locator,"top"))},{default:A(()=>[...d[18]||(d[18]=[E(" Copy locator ",-1)])]),_:1},8,["trailing-icon"]),_(G,{size:"xs",color:"neutral",variant:"outline",icon:t(m)==="fix-prompt"?"i-lucide-check":"i-lucide-sparkles",title:"Copy an instruction an AI coding agent can apply directly to the test",onClick:he},{default:A(()=>[...d[19]||(d[19]=[E(" Copy fix prompt ",-1)])]),_:1},8,["icon"])])])):T("",!0),t(v)?.hasDurableAlternative&&t(v).durable?(o(),u("div",zo,[_(g,{name:"i-lucide-shield-check",class:"size-5 text-success shrink-0"}),p("div",Po,[p("p",Bo," Most stable option (score: "+$(t(v).durable.score)+") ",1),_(O,{locator:t(v).durable.locator,truncate:"",class:"text-sm mt-0.5"},null,8,["locator"]),d[20]||(d[20]=p("p",{class:"text-xs text-gray-500 mt-0.5"},"Sturdier, but changes the locator style",-1))]),_(G,{size:"sm",color:"neutral",variant:"outline","trailing-icon":t(m)==="durable"?"i-lucide-check":"i-lucide-copy",onClick:d[4]||(d[4]=N=>K(t(v).durable.locator,"durable"))},{default:A(()=>[...d[21]||(d[21]=[E(" Copy ",-1)])]),_:1},8,["trailing-icon"])])):T("",!0),p("div",Eo,[d[22]||(d[22]=p("p",{class:"text-xs font-medium text-gray-500"},"All alternatives",-1)),(o(!0),u(ee,null,fe(t(ce),(N,J)=>(o(),q(F,{key:J,alt:N,copied:t(m)===`alt-${J}`,onCopy:we=>K(N.locator,`alt-${J}`)},null,8,["alt","copied","onCopy"]))),128)),t(i).length>st?(o(),q(G,{key:0,size:"xs",variant:"ghost",color:"neutral",block:"",icon:t(Z)?"i-lucide-chevron-up":"i-lucide-chevron-down",onClick:d[5]||(d[5]=N=>Z.value=!t(Z))},{default:A(()=>[E($(t(Z)?"Show fewer":`Show all ${t(i).length} alternatives`),1)]),_:1},8,["icon"])):T("",!0)]),t(L).length?(o(),u("div",Oo,[d[23]||(d[23]=p("p",{class:"text-xs font-medium text-gray-500 mb-2"},"From the failing page",-1)),p("div",Mo,[(o(!0),u(ee,null,fe(t(L),(N,J)=>(o(),q(F,{key:J,alt:N,note:"candidate from the failure-time ARIA snapshot",copied:t(m)===`supp-${J}`,onCopy:we=>K(N.locator,`supp-${J}`)},null,8,["alt","copied","onCopy"]))),128))])])):T("",!0),t(v)?.suggestAddTestId?(o(),q(re,{key:7,class:"mt-3",color:"warning",icon:"i-lucide-info",variant:"subtle",title:"All alternatives are fragile",description:"Every captured locator scores below 50. Add a stable data-testid attribute to this element in the app for a durable fix."})):T("",!0),t(n)?.source==="aria-snapshot"?(o(),q(re,{key:8,class:"mt-3",color:"info",icon:"i-lucide-info",variant:"subtle"},{description:A(()=>[d[25]||(d[25]=E(" No HTML attributes were available. ",-1)),_(te,{to:"capture-fixtures","no-icon":"",class:"text-primary hover:underline"},{default:A(()=>[...d[24]||(d[24]=[E("Enable Piwi fixture capture",-1)])]),_:1}),d[26]||(d[26]=E(" for full alternatives including data-testid and CSS selectors. ",-1))]),_:1})):T("",!0)]),_:2},[e.storageKey?{name:"folded",fn:A(()=>[t(v)?.recommended?(o(),q(O,{key:0,locator:t(v).recommended.locator,class:"text-xs"},null,8,["locator"])):(o(),u("span",po,$(t(i).length)+" alternative"+$(t(i).length===1?"":"s"),1))]),key:"0"}:void 0,t(V)||t(n)?.failingLocator?{name:"actions",fn:A(()=>[p("div",fo,[t(n)?.failingLocator?(o(),q(G,{key:0,size:"xs",color:"neutral",variant:"outline",icon:"i-lucide-mouse-pointer",title:"Open the failure-time DOM snapshot and click the element to pick a locator",onClick:d[0]||(d[0]=N=>B.value=!0)},{default:A(()=>[...d[9]||(d[9]=[E(" Pick from snapshot ",-1)])]),_:1})):T("",!0),t(V)?(o(),q(G,{key:1,to:t(V),target:"_blank",size:"xs",color:"neutral",variant:"outline",icon:"i-lucide-crosshair",title:"Open the failure trace in the trace viewer — its Pick locator tool works on the recorded page snapshots"},{default:A(()=>[...d[10]||(d[10]=[E(" Pick from trace ",-1)])]),_:1},8,["to"])):T("",!0)])]),key:"1"}:void 0]),1040,["count"])):!t(s)&&!t(l)&&!t(f)?(o(),q(Se(t(a)),Ne({key:1},t(c),{icon:"i-lucide-bandage",title:"Alternative locators",subtitle:"No alternatives available",help:"locator-healing"}),Re({default:A(()=>[_(re,{color:"neutral",icon:"i-lucide-info",variant:"subtle"},{description:A(()=>[d[31]||(d[31]=E(" No pre-captured alternatives — this locator has never passed in a previous run. ",-1)),_(te,{to:"capture-fixtures","no-icon":"",class:"text-primary hover:underline"},{default:A(()=>[...d[30]||(d[30]=[E("Enable Piwi dashboard fixtures",-1)])]),_:1}),d[32]||(d[32]=E(" to capture element attributes at test time, or use “Pick from snapshot” above to choose a locator by hand on the failure-time page. ",-1))]),_:1})]),_:2},[e.storageKey?{name:"folded",fn:A(()=>[d[27]||(d[27]=p("span",null,"No alternatives available",-1))]),key:"0"}:void 0,t(V)||t(n)?.failingLocator?{name:"actions",fn:A(()=>[p("div",No,[t(n)?.failingLocator?(o(),q(G,{key:0,size:"xs",color:"neutral",variant:"outline",icon:"i-lucide-mouse-pointer",title:"Open the failure-time DOM snapshot and click the element to pick a locator",onClick:d[6]||(d[6]=N=>B.value=!0)},{default:A(()=>[...d[28]||(d[28]=[E(" Pick from snapshot ",-1)])]),_:1})):T("",!0),t(V)?(o(),q(G,{key:1,to:t(V),target:"_blank",size:"xs",color:"neutral",variant:"outline",icon:"i-lucide-crosshair",title:"Open the failure trace in the trace viewer — its Pick locator tool works on the recorded page snapshots"},{default:A(()=>[...d[29]||(d[29]=[E(" Pick from trace ",-1)])]),_:1},8,["to"])):T("",!0)])]),key:"1"}:void 0]),1040)):T("",!0),t(n)?.failingLocator?(o(),q(so,{key:2,open:t(B),"onUpdate:open":d[7]||(d[7]=N=>Le(B)?B.value=N:null),"run-id":e.runId,"test-runs-case-id":e.testRunsCaseId,"failing-locator":t(n).failingLocator,healing:t(n),onConfirmed:Q,onClose:d[8]||(d[8]=N=>B.value=!1)},null,8,["open","run-id","test-runs-case-id","failing-locator","healing"])):T("",!0)],64)}}}),Ma=Object.assign(Uo,{__name:"LocatorHealingPanel"}),jo={key:1,class:"space-y-2"},Do={class:"text-xs font-medium text-gray-500 dark:text-gray-400 sm:w-40 shrink-0"},Ko={class:"flex flex-wrap items-center gap-1.5 min-w-0 text-xs font-mono"},Vo={class:"rounded bg-red-50 px-1.5 py-0.5 text-red-700 dark:bg-red-950/30 dark:text-red-400 break-all"},Ho={class:"rounded bg-green-50 px-1.5 py-0.5 text-green-700 dark:bg-green-950/30 dark:text-green-400 break-all"},Fo={key:0,class:"text-xs text-gray-400 dark:text-gray-500"},qo={key:0},Zo=ue({__name:"EnvironmentDiffCard",props:{runId:{},testRunsCaseId:{},storageKey:{}},setup(e,{expose:r}){const a=e,c=I(()=>a.storageKey?De:je),n=I(()=>a.storageKey?{storageKey:a.storageKey}:{}),{data:s,pending:l,error:f}=Ue(()=>`/api/test-runs/${a.runId}/cases/${a.testRunsCaseId}/environment-diff`,{lazy:!0},"$0pD8W6UYqF"),i=I(()=>s.value?.entries??[]),h=I(()=>i.value.filter(w=>!w.informational)),v=I(()=>i.value.filter(w=>w.informational)),L=I(()=>{const w=s.value?.baseline;if(!w)return"";const S=w.startTime?` · ${Ye(new Date(w.startTime))}`:"";return`vs last pass in run #${w.runId}${S}`}),y=I(()=>{if(s.value?.status!=="ok")return"No passing baseline to compare against";const w=h.value.length;return w===0?"Identical to last pass — no environment drift":`${w} change${w===1?"":"s"}: ${h.value.map(S=>S.label).join(", ")}`}),C=Y(null);return r({reveal:()=>C.value?.reveal?.()}),(w,S)=>{const D=Ge,U=$e;return!t(l)&&!t(f)&&t(s)?.status==="ok"?(o(),q(Se(t(c)),Ne({key:0,ref_key:"card",ref:C},t(n),{icon:"i-lucide-git-compare-arrows",title:"Environment diff",count:t(h).length||void 0,help:"environment-diff",subtitle:t(L)}),Re({default:A(()=>[t(i).length===0?(o(),q(D,{key:0,color:"success",icon:"i-lucide-check-circle",variant:"subtle",description:"The environment is identical to the last passing run — environment drift is unlikely to explain this failure."})):(o(),u("div",jo,[(o(!0),u(ee,null,fe(t(h),V=>(o(),u("div",{key:V.key,class:"rounded-lg border border-default p-3 flex flex-col gap-1 sm:flex-row sm:items-center sm:gap-3"},[p("span",Do,$(V.label),1),p("div",Ko,[p("code",Vo,$(V.failing??"(unset)"),1),_(U,{name:"i-lucide-arrow-left",class:"size-3 shrink-0 text-gray-400"}),p("code",Ho,$(V.baseline??"(unset)"),1)])]))),128)),t(v).length>0?(o(),u("p",Fo,[S[0]||(S[0]=E(" Also changed (varies naturally between runs): ",-1)),(o(!0),u(ee,null,fe(t(v),(V,B)=>(o(),u("span",{key:V.key},[E($(V.label.toLowerCase())+" "+$(V.baseline??"—")+" → "+$(V.failing??"—"),1),B<t(v).length-1?(o(),u("span",qo,", ")):T("",!0)]))),128))])):T("",!0)]))]),_:2},[e.storageKey?{name:"folded",fn:A(()=>[p("span",null,$(t(y)),1)]),key:"0"}:void 0]),1040,["count","subtitle"])):T("",!0)}}}),Na=Object.assign(Zo,{__name:"EnvironmentDiffCard"}),Wo={class:"absolute top-4 left-4 text-white/70 text-sm font-medium"},Jo=["src","alt"],Yo=ue({__name:"ScreenshotLightbox",props:{images:{},modelValue:{}},emits:["update:modelValue"],setup(e,{emit:r}){const a=e,c=r,n=I(()=>a.modelValue!==null);function s(){c("update:modelValue",null)}function l(){a.modelValue!==null&&a.modelValue>0&&c("update:modelValue",a.modelValue-1)}function f(){a.modelValue!==null&&a.modelValue<a.images.length-1&&c("update:modelValue",a.modelValue+1)}const i=I(()=>a.modelValue===null?null:a.images[a.modelValue]??null);function h(v){n.value&&(v.key==="Escape"&&s(),v.key==="ArrowLeft"&&l(),v.key==="ArrowRight"&&f())}return rt(()=>window.addEventListener("keydown",h)),Ct(()=>window.removeEventListener("keydown",h)),(v,L)=>{const y=$e;return o(),q(Tt,{to:"body"},[_(St,{name:"lightbox"},{default:A(()=>[n.value?(o(),u("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/90",onClick:_e(s,["self"])},[p("button",{class:"absolute top-4 right-4 size-10 flex items-center justify-center rounded-full bg-white/10 text-white hover:bg-white/20 transition-colors",onClick:s},[_(y,{name:"i-lucide-x",class:"size-6"})]),p("div",Wo,$((e.modelValue??0)+1)+" / "+$(e.images.length),1),e.images.length>1&&(e.modelValue??0)>0?(o(),u("button",{key:0,class:"absolute left-4 size-10 flex items-center justify-center rounded-full bg-white/10 text-white hover:bg-white/20 transition-colors",onClick:l},[_(y,{name:"i-lucide-chevron-left",class:"size-6"})])):T("",!0),i.value?(o(),u("img",{key:1,src:i.value.src,alt:i.value.name,class:"max-h-[90vh] max-w-[90vw] object-contain rounded-lg",onClick:L[0]||(L[0]=_e(()=>{},["stop"]))},null,8,Jo)):T("",!0),e.images.length>1&&(e.modelValue??0)<e.images.length-1?(o(),u("button",{key:2,class:"absolute right-4 size-10 flex items-center justify-center rounded-full bg-white/10 text-white hover:bg-white/20 transition-colors",onClick:f},[_(y,{name:"i-lucide-chevron-right",class:"size-6"})])):T("",!0)])):T("",!0)]),_:1})])}}}),mt=Object.assign(At(Yo,[["__scopeId","data-v-c02b1e9b"]]),{__name:"ScreenshotLightbox"}),Go={class:"flex justify-end mb-2"},Qo={key:1,class:"rounded overflow-hidden border border-default bg-gray-50 dark:bg-gray-900"},Xo=["src"],es={key:2,class:"grid grid-cols-1 sm:grid-cols-2 gap-2"},ts={class:"rounded overflow-hidden border border-red-200 dark:border-red-900 bg-gray-50 dark:bg-gray-900"},ns=["src"],os={class:"rounded overflow-hidden border border-green-200 dark:border-green-900 bg-gray-50 dark:bg-gray-900"},ss={class:"px-2 py-1 text-[10px] font-medium text-green-600 dark:text-green-400"},as=["src"],rs=ue({__name:"VisualDiffCard",props:{runId:{},testRunsCaseId:{},storageKey:{}},setup(e,{expose:r}){const a=e,c=I(()=>a.storageKey?De:je),n=I(()=>a.storageKey?{storageKey:a.storageKey}:{}),s=ze(),{data:l,pending:f,error:i}=Ue(()=>`/api/test-runs/${a.runId}/cases/${a.testRunsCaseId}/visual-diff`,{lazy:!0},"$QAhY8Q5pJg"),h=I(()=>l.value?.status==="ok"?l.value.diff??null:null),v=Y("overlay"),L=[{label:"Overlay",value:"overlay"},{label:"Side by side",value:"side-by-side"}],y=I(()=>h.value?Me(h.value.path,"image/png",s.app?.baseURL):""),C=I(()=>h.value?Me(h.value.failingPath,null,s.app?.baseURL):""),w=I(()=>h.value?Me(h.value.baselinePath,null,s.app?.baseURL):""),S=I(()=>h.value?(h.value.changedPixelRatio*100).toFixed(2):"0"),D=I(()=>{const X=h.value?.changedPixelRatio??0;return X>.1?"error":X>.01?"warning":"success"}),U=I(()=>h.value?h.value.dimensionMismatch?`${S.value}% changed — dimensions differ, unreliable`:`${S.value}% of pixels changed vs last pass`:"No comparable screenshots"),V=I(()=>h.value?[{src:C.value,name:"Failing screenshot"},{src:w.value,name:"Last passing screenshot"},{src:y.value,name:"Diff overlay"}]:[]),B=Y(null),Q=Y(null);return r({reveal:()=>Q.value?.reveal?.()}),(X,m)=>{const M=Pe,x=Ge,K=Nt,P=mt;return!t(f)&&!t(i)&&t(h)?(o(),q(Se(t(c)),Ne({key:0,ref_key:"card",ref:Q},t(n),{icon:"i-lucide-images",title:"Visual diff",help:"visual-diff"}),Re({subtitle:A(()=>[p("span",null,"vs last pass in run #"+$(t(h).baselineRunId),1)]),actions:A(()=>[_(M,{color:t(D),variant:"subtle",size:"sm",class:"font-mono tabular-nums"},{default:A(()=>[E($(t(S))+"% changed ",1)]),_:1},8,["color"])]),default:A(()=>[t(h).dimensionMismatch?(o(),q(x,{key:0,class:"mb-3",color:"warning",icon:"i-lucide-alert-triangle",variant:"subtle",title:"Screenshot dimensions differ",description:"The failing and passing screenshots have different sizes (viewport change?). They are compared on a padded canvas, so the changed-pixel ratio is inflated and unreliable."})):T("",!0),p("div",Go,[_(K,{modelValue:t(v),"onUpdate:modelValue":m[0]||(m[0]=j=>Le(v)?v.value=j:null),items:L,size:"xs",content:!1,ui:{list:"overflow-x-auto",trigger:"shrink-0"}},null,8,["modelValue"])]),t(v)==="overlay"?(o(),u("div",Qo,[p("img",{src:t(y),alt:"Diff overlay (red = changed pixels)",class:"w-full max-h-96 object-contain cursor-zoom-in outline-none focus-visible:outline-2 focus-visible:outline-primary",loading:"lazy",role:"button",tabindex:"0","aria-label":"Open diff overlay in lightbox",onClick:m[1]||(m[1]=j=>B.value=2),onKeydown:[m[2]||(m[2]=ke(j=>B.value=2,["enter"])),m[3]||(m[3]=ke(_e(j=>B.value=2,["prevent"]),["space"]))]},null,40,Xo),m[11]||(m[11]=p("p",{class:"px-2 py-1 text-[10px] text-gray-500"},"Red pixels mark differences against the last passing run",-1))])):(o(),u("div",es,[p("div",ts,[m[12]||(m[12]=p("p",{class:"px-2 py-1 text-[10px] font-medium text-red-600 dark:text-red-400"},"Failing",-1)),p("img",{src:t(C),alt:"Failing screenshot",class:"w-full max-h-80 object-contain cursor-zoom-in outline-none focus-visible:outline-2 focus-visible:outline-primary",loading:"lazy",role:"button",tabindex:"0","aria-label":"Open failing screenshot in lightbox",onClick:m[4]||(m[4]=j=>B.value=0),onKeydown:[m[5]||(m[5]=ke(j=>B.value=0,["enter"])),m[6]||(m[6]=ke(_e(j=>B.value=0,["prevent"]),["space"]))]},null,40,ns)]),p("div",os,[p("p",ss," Last pass (run #"+$(t(h).baselineRunId)+") ",1),p("img",{src:t(w),alt:"Last passing screenshot",class:"w-full max-h-80 object-contain cursor-zoom-in outline-none focus-visible:outline-2 focus-visible:outline-primary",loading:"lazy",role:"button",tabindex:"0","aria-label":"Open last passing screenshot in lightbox",onClick:m[7]||(m[7]=j=>B.value=1),onKeydown:[m[8]||(m[8]=ke(j=>B.value=1,["enter"])),m[9]||(m[9]=ke(_e(j=>B.value=1,["prevent"]),["space"]))]},null,40,as)])])),_(P,{modelValue:t(B),"onUpdate:modelValue":m[10]||(m[10]=j=>Le(B)?B.value=j:null),images:t(V)},null,8,["modelValue","images"])]),_:2},[e.storageKey?{name:"folded",fn:A(()=>[p("span",null,$(t(U)),1)]),key:"0"}:void 0]),1040)):T("",!0)}}}),Ua=Object.assign(rs,{__name:"VisualDiffCard"}),is={class:"max-h-96 overflow-y-auto"},ls={key:0,class:"mt-2 text-xs text-gray-400 dark:text-gray-500"},Ze=2e4,cs=ue({__name:"DomSnapshotCard",props:{runId:{},testRunsCaseId:{},storageKey:{}},setup(e,{expose:r}){const a=e,c=I(()=>a.storageKey?De:je),n=I(()=>a.storageKey?{storageKey:a.storageKey}:{}),{data:s,pending:l,error:f}=Ue(()=>`/api/test-runs/${a.runId}/cases/${a.testRunsCaseId}/dom-snapshot`,{lazy:!0},"$rAu-vOWv77"),i=I(()=>(s.value?.html??"").slice(0,Ze)),h=I(()=>(s.value?.html?.length??0)>Ze),v=I(()=>{const w=s.value;return!w||w.status!=="ok"?"":`${Math.round((w.html?.length??0)/1024)} KB · rendered from the uploaded trace${w.snapshotName?` (${w.snapshotName})`:""}`}),{copy:L,copied:y}=He(),C=Y(null);return r({reveal:()=>C.value?.reveal?.()}),(w,S)=>{const D=Ie,U=Ut,V=jt;return!t(l)&&!t(f)&&t(s)?.status==="ok"&&t(s).html?(o(),q(Se(t(c)),Ne({key:0,ref_key:"card",ref:C},t(n),{icon:"i-lucide-file-code",title:"DOM snapshot",help:"dom-snapshot",subtitle:t(v)}),Re({actions:A(()=>[_(U,{text:t(y)?"Copied!":"Copy full HTML"},{default:A(()=>[_(D,{size:"xs",variant:"ghost",color:"neutral",icon:t(y)?"i-lucide-check":"i-lucide-clipboard",onClick:S[0]||(S[0]=B=>t(L)(t(s).html))},null,8,["icon"])]),_:1},8,["text"])]),default:A(()=>[p("div",is,[_(V,{code:t(i),lang:"xml"},null,8,["code"])]),t(h)||t(s).truncated?(o(),u("p",ls,[t(h)?(o(),u(ee,{key:0},[E("Showing the first "+$(Math.round(Ze/1e3))+"k characters — use Copy for the full document.",1)],64)):(o(),u(ee,{key:1},[E("The snapshot was truncated to its size cap.")],64))])):T("",!0)]),_:2},[e.storageKey?{name:"folded",fn:A(()=>[p("span",null,"Failure-time HTML extracted from the trace — "+$(Math.round((t(s).html.length??0)/1024))+" KB",1)]),key:"0"}:void 0]),1040,["subtitle"])):T("",!0)}}}),ja=Object.assign(cs,{__name:"DomSnapshotCard"}),us={class:"rounded-md border border-default overflow-hidden"},ds={class:"text-xs font-semibold text-gray-600 dark:text-gray-300 flex-1"},ps={key:0,class:"text-gray-400 font-normal ml-1"},fs={key:0},ms=ue({__name:"TestEvidenceSection",props:We({icon:{},label:{},count:{},collapsible:{type:Boolean}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:["update:open"],setup(e){const r=e,a=at(e,"open"),c=I(()=>r.collapsible===!1||a.value);return(n,s)=>{const l=$e;return o(),u("div",us,[(o(),q(Se(e.collapsible===!1?"div":"button"),{class:pe(["w-full flex items-center gap-1.5 px-3 py-2 bg-elevated border-b border-default text-left",e.collapsible!==!1&&"hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors cursor-pointer"]),onClick:s[0]||(s[0]=f=>e.collapsible!==!1&&(a.value=!a.value))},{default:A(()=>[_(l,{name:e.icon,class:"size-3.5 shrink-0 text-primary/70"},null,8,["name"]),p("span",ds,[E($(e.label),1),e.count!=null?(o(),u("span",ps,"("+$(e.count)+")",1)):T("",!0)]),e.collapsible!==!1?(o(),q(l,{key:0,name:a.value?"i-lucide-chevron-up":"i-lucide-chevron-down",class:"size-3.5 text-gray-400"},null,8,["name"])):T("",!0)]),_:1},8,["class"])),t(c)?(o(),u("div",fs,[Oe(n.$slots,"default")])):T("",!0)])}}}),Xe=Object.assign(ms,{__name:"TestEvidenceSection"}),gs={class:"grid grid-cols-2 gap-2 p-2 bg-gray-50 dark:bg-gray-900"},hs=["aria-label","onClick","onKeydown"],ys=["src","alt"],vs={class:"absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity bg-black/30"},xs={class:"absolute bottom-0 inset-x-0 px-1.5 py-0.5 text-[10px] text-white bg-black/50 truncate"},bs=ue({__name:"TestEvidenceScreenshots",props:{attachments:{}},setup(e){const r=e,a=ze();function c(l){return l.split("/").pop()||l}const n=I(()=>r.attachments.filter(l=>Kt(l.path,l.contentType)).map(l=>({src:Me(l.path,l.contentType,a.app?.baseURL),name:l.name||c(l.path)}))),s=Y(null);return(l,f)=>{const i=$e,h=mt,v=Xe;return t(n).length>0?(o(),q(v,{key:0,icon:"i-lucide-image",label:"Screenshots",count:t(n).length,collapsible:!1},{default:A(()=>[p("div",gs,[(o(!0),u(ee,null,fe(t(n),(L,y)=>(o(),u("div",{key:L.src,class:"relative group cursor-pointer rounded overflow-hidden border border-default outline-none focus-visible:outline-2 focus-visible:outline-primary",role:"button",tabindex:"0","aria-label":`View screenshot ${L.name}`,onClick:C=>s.value=y,onKeydown:[ke(C=>s.value=y,["enter"]),ke(_e(C=>s.value=y,["prevent"]),["space"])]},[p("img",{src:L.src,alt:L.name,class:"w-full h-28 object-cover object-top transition-opacity group-hover:opacity-80",loading:"lazy"},null,8,ys),p("div",vs,[_(i,{name:"i-lucide-zoom-in",class:"size-5 text-white"})]),p("p",xs,$(L.name),1)],40,hs))),128))]),_(h,{modelValue:t(s),"onUpdate:modelValue":f[0]||(f[0]=L=>Le(s)?s.value=L:null),images:t(n)},null,8,["modelValue","images"])]),_:1},8,["count"])):T("",!0)}}}),Da=Object.assign(bs,{__name:"TestEvidenceScreenshots"}),ks={class:"m-0"},_s={class:"bg-black rounded overflow-hidden"},$s=["src"],ws=["title"],Cs=ue({__name:"VideoPlayer",props:{src:{},label:{}},setup(e){return(r,a)=>(o(),u("figure",ks,[p("div",_s,[p("video",{src:e.src,controls:"",preload:"metadata",class:"w-full max-h-96"}," Your browser does not support the video tag. ",8,$s)]),e.label?(o(),u("figcaption",{key:0,class:"mt-1 text-xs text-gray-400 truncate",title:e.label},$(e.label),9,ws)):T("",!0)]))}}),Ts=Object.assign(Cs,{__name:"VideoPlayer"}),Ss={class:"space-y-2 p-2 bg-gray-50 dark:bg-gray-900"},As=ue({__name:"TestEvidenceVideos",props:{attachments:{}},setup(e){const r=e,a=ze();function c(s){return s.split("/").pop()||s}const n=I(()=>r.attachments.filter(s=>Vt(s.path,s.contentType)).map(s=>({src:Me(s.path,s.contentType,a.app?.baseURL),name:s.name||c(s.path)})));return(s,l)=>{const f=Ts,i=Xe;return t(n).length>0?(o(),q(i,{key:0,icon:"i-lucide-video",label:"Videos",count:t(n).length,collapsible:!1},{default:A(()=>[p("div",Ss,[(o(!0),u(ee,null,fe(t(n),h=>(o(),q(f,{key:h.src,src:h.src,label:h.name},null,8,["src","label"]))),128))])]),_:1},8,["count"])):T("",!0)}}}),Ka=Object.assign(As,{__name:"TestEvidenceVideos"}),Ls={class:"flex items-center justify-between gap-2"},Rs={class:"flex items-center gap-2 min-w-0"},Is={class:"text-sm truncate"},zs={key:0,class:"text-xs text-gray-400 shrink-0"},Ps={key:1,class:"text-xs text-gray-400 shrink-0"},Bs={class:"flex items-center gap-1.5 shrink-0"},Es=ue({__name:"TraceListItem",props:{trace:{},showTime:{type:Boolean,default:!0}},setup(e){const r=e,a=ze(),c=I(()=>(a.app?.baseURL??"/").replace(/\/$/,"")),n=I(()=>!!a.public.demoMode&&r.trace.filePath.startsWith("demo/")),s=I(()=>r.trace.filePath.split("/").pop()||r.trace.filePath),l=I(()=>ct(r.trace.filePath,a.app?.baseURL,n.value)),f=I(()=>n.value?`${c.value}/${r.trace.filePath}`:`${c.value}/api/files/${Ot(r.trace.filePath)}`);return(i,h)=>{const v=$e,L=Ie;return o(),u("div",Ls,[p("div",Rs,[_(v,{name:"i-lucide-file-archive",class:"size-4 text-gray-400 shrink-0"}),p("span",Is,$(t(s)),1),e.trace.size?(o(),u("span",zs,$(("formatBytes"in i?i.formatBytes:t(Ht))(e.trace.size)),1)):T("",!0),e.showTime?(o(),u("span",Ps,$(("formatRelativeTime"in i?i.formatRelativeTime:t(Ye))(e.trace.createdAt)),1)):T("",!0)]),p("div",Bs,[_(L,{to:t(l),target:"_blank",icon:"i-lucide-bug-play",size:"xs",label:"View trace"},null,8,["to"]),_(L,{to:t(f),target:"_blank",icon:"i-lucide-download",size:"xs",color:"neutral",variant:"soft",label:"Download"},null,8,["to"])])])}}}),Os=Object.assign(Es,{__name:"TraceListItem"}),Ms={key:0,class:"flex items-center justify-center py-4"},Ns={key:1,class:"divide-y divide-default"},Us=ue({__name:"TestEvidenceTraces",props:{traces:{},loading:{type:Boolean}},setup(e){return(r,a)=>{const c=$e,n=Os,s=Xe;return e.loading||e.traces.length>0?(o(),q(s,{key:0,icon:"i-lucide-bug-play",label:"Traces",count:e.traces.length||null,collapsible:!1},{default:A(()=>[e.loading&&!e.traces.length?(o(),u("div",Ms,[_(c,{name:"i-lucide-loader-circle",class:"size-4 animate-spin text-gray-400"})])):(o(),u("div",Ns,[(o(!0),u(ee,null,fe(e.traces,l=>(o(),q(n,{key:l.id,trace:l,class:"px-3 py-2"},null,8,["trace"]))),128))]))]),_:1},8,["count"])):T("",!0)}}}),Va=Object.assign(Us,{__name:"TestEvidenceTraces"}),js={class:"space-y-2"},Ds={key:0,class:"rounded-lg border border-default overflow-hidden"},Ks=["title"],Vs={key:2,class:"truncate text-gray-400 dark:text-gray-500"},Hs={class:"font-mono"},Fs={key:0,class:"overflow-x-auto text-xs font-mono leading-relaxed py-1"},qs={class:"min-w-max"},Zs={key:1,class:"rounded-lg border border-dashed border-default"},Ws=["onClick"],Js={key:0,class:"px-3 pb-2 space-y-1"},Ys=["title"],Gs={key:0,class:"truncate font-mono shrink-0"},Qs=ue({__name:"TraceCallStack",props:{frames:{},projectKey:{},projectName:{}},setup(e){const r=e,a=I(()=>{if(!r.frames.some(L=>L.inProject))return r.frames.map((L,y)=>({kind:"frame",frame:L,frameIndex:y}));const i=[];let h=[];const v=()=>{h.length!==0&&(i.push({kind:"group",frames:h,key:`group-${i.length}`}),h=[])};return r.frames.forEach((L,y)=>{L.inProject?(v(),i.push({kind:"frame",frame:L,frameIndex:y})):h.push(L)}),v(),i}),c=I(()=>{const f=r.frames.findIndex(i=>i.inProject);return f>=0?f:0}),n=Y(new Set);function s(f){const i=new Set(n.value);i.has(f)?i.delete(f):i.add(f),n.value=i}function l(f){return f.source?f.source.lines.map((i,h)=>{const v=f.source.startLine+h;return{lineNo:v,text:i,failing:v===f.line}}):[]}return(f,i)=>{const h=$e,v=ut,L=Pe;return o(),u("div",js,[(o(!0),u(ee,null,fe(t(a),y=>(o(),u(ee,{key:y.kind==="frame"?`f-${y.frameIndex}`:y.key},[y.kind==="frame"?(o(),u("div",Ds,[p("div",{class:pe(["flex items-center gap-2 px-3 py-1.5 bg-elevated/40 text-xs",y.frame.source?"border-b border-default":""])},[_(h,{name:y.frameIndex===t(c)?"i-lucide-circle-x":"i-lucide-corner-left-up",class:pe([y.frameIndex===t(c)?"text-red-500":"text-gray-400","size-3.5 shrink-0"])},null,8,["name","class"]),y.frame.inProject?(o(),q(v,{key:0,"file-path":y.frame.file,line:y.frame.line,column:y.frame.column,"project-key":e.projectKey,"project-name":e.projectName,class:"min-w-0"},null,8,["file-path","line","column","project-key","project-name"])):(o(),u("code",{key:1,class:"truncate text-gray-500 dark:text-gray-400",title:y.frame.absFile||y.frame.file},$(y.frame.file)+":"+$(y.frame.line),9,Ks)),y.frame.functionName?(o(),u("span",Vs,[i[0]||(i[0]=E(" in ",-1)),p("span",Hs,$(y.frame.functionName),1)])):T("",!0),_(L,{color:y.frameIndex===t(c)?"error":"neutral",variant:"subtle",size:"xs",class:"ml-auto shrink-0"},{default:A(()=>[E($(y.frameIndex===t(c)?"Failed here":"Caller"),1)]),_:2},1032,["color"])],2),y.frame.source?(o(),u("div",Fs,[p("div",qs,[(o(!0),u(ee,null,fe(l(y.frame),C=>(o(),u("div",{key:C.lineNo,class:pe(["px-3 whitespace-pre flex",C.failing?"bg-red-50 dark:bg-red-950/30 text-red-700 dark:text-red-300 font-medium":"text-gray-600 dark:text-gray-400"])},[p("span",{class:pe(["w-10 shrink-0 text-right pr-3 tabular-nums select-none",C.failing?"text-red-400 dark:text-red-500":"text-gray-300 dark:text-gray-600"])},$(C.lineNo),3),p("span",null,$(C.text),1)],2))),128))])])):T("",!0)])):(o(),u("div",Zs,[p("button",{type:"button",class:"w-full flex items-center gap-2 px-3 py-1.5 text-xs text-gray-400 dark:text-gray-500 hover:text-gray-600 dark:hover:text-gray-300",onClick:C=>s(y.key)},[_(h,{name:t(n).has(y.key)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5 shrink-0"},null,8,["name"]),E(" "+$(y.frames.length)+" frame"+$(y.frames.length===1?"":"s")+" in dependencies ",1)],8,Ws),t(n).has(y.key)?(o(),u("div",Js,[(o(!0),u(ee,null,fe(y.frames,(C,w)=>(o(),u("div",{key:w,class:"flex items-center gap-2 text-xs text-gray-400 dark:text-gray-500 min-w-0"},[_(h,{name:"i-lucide-corner-left-up",class:"size-3 shrink-0"}),p("code",{class:"truncate",title:C.absFile||C.file},$(C.file)+":"+$(C.line),9,Ys),C.functionName?(o(),u("span",Gs,$(C.functionName),1)):T("",!0)]))),128))])):T("",!0)]))],64))),128))])}}}),Ha=Object.assign(Qs,{__name:"TraceCallStack"}),Xs={class:"space-y-2"},ea={class:"flex items-center gap-2 px-3 py-1.5 bg-elevated/40 border-b border-default text-xs"},ta={class:"overflow-x-auto text-xs font-mono leading-relaxed py-1"},na={class:"min-w-max"},oa=ue({__name:"TestSourceStack",props:{frames:{},projectKey:{},projectName:{}},setup(e){function r(a){return a.split(`
5
+ `).map(c=>({text:c,failing:c.startsWith(">")}))}return(a,c)=>{const n=$e,s=ut,l=Pe;return o(),u("div",Xs,[(o(!0),u(ee,null,fe(e.frames,(f,i)=>(o(),u("div",{key:`${f.file}:${f.line}:${i}`,class:"rounded-lg border border-default overflow-hidden"},[p("div",ea,[_(n,{name:i===0?"i-lucide-circle-x":"i-lucide-corner-left-up",class:pe([i===0?"text-red-500":"text-gray-400","size-3.5 shrink-0"])},null,8,["name","class"]),_(s,{"file-path":f.file,line:f.line,"project-key":e.projectKey,"project-name":e.projectName,class:"min-w-0"},null,8,["file-path","line","project-key","project-name"]),_(l,{color:i===0?"error":"neutral",variant:"subtle",size:"xs",class:"ml-auto shrink-0"},{default:A(()=>[E($(i===0?"Failed here":"Caller"),1)]),_:2},1032,["color"])]),p("div",ta,[p("div",na,[(o(!0),u(ee,null,fe(r(f.snippet),(h,v)=>(o(),u("div",{key:v,class:pe(["px-3 whitespace-pre",h.failing?"bg-red-50 dark:bg-red-950/30 text-red-700 dark:text-red-300 font-medium":"text-gray-600 dark:text-gray-400"])},$(h.text),3))),128))])])]))),128))])}}}),Fa=Object.assign(oa,{__name:"TestSourceStack"}),sa={class:"space-y-3 text-sm"},aa={key:0,class:"flex flex-col gap-0.5"},ra={class:"text-xs font-mono break-all"},ia={key:1,class:"flex flex-col gap-0.5"},la={class:"text-xs font-mono break-all"},ca={class:"grid grid-cols-1 gap-3 sm:grid-cols-2"},ua={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},da={key:0,class:"text-xs text-gray-400"},pa={key:1,class:"mt-1 space-y-0.5"},fa={class:"text-gray-400"},ma={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},ga={key:0,class:"text-xs text-gray-400"},ha={key:1,class:"mt-1 space-y-0.5"},ya={key:0,class:"text-gray-400"},va={class:"text-gray-400"},xa=ue({__name:"PageStateCard",props:{pageState:{},storageKey:{},plain:{type:Boolean}},setup(e){const r=e,a=I(()=>r.plain?"div":r.storageKey?De:je),c=I(()=>r.plain?{}:{icon:"i-lucide-database",title:"App state at test end",help:"page-state",...r.storageKey?{storageKey:r.storageKey}:{}}),n=l=>[l.httpOnly?"HttpOnly":null,l.secure?"Secure":null,l.sameSite??null].filter(Boolean).join(", "),s=I(()=>{const l=r.pageState;return[`${l.localStorage.length} localStorage`,`${l.sessionStorage.length} sessionStorage`,`${l.cookies.length} cookie${l.cookies.length===1?"":"s"}`].join(" · ")});return(l,f)=>(o(),q(Se(t(a)),Lt(Rt(t(c))),Re({default:A(()=>[p("div",sa,[e.pageState.url?(o(),u("div",aa,[f[0]||(f[0]=p("span",{class:"text-xs font-medium text-gray-500 dark:text-gray-400"},"URL",-1)),p("code",ra,$(e.pageState.url)+$(e.pageState.hash??""),1)])):T("",!0),e.pageState.historyState?(o(),u("div",ia,[f[1]||(f[1]=p("span",{class:"text-xs font-medium text-gray-500 dark:text-gray-400"},"History state",-1)),p("code",la,$(e.pageState.historyState),1)])):T("",!0),p("div",ca,[(o(!0),u(ee,null,fe({localStorage:e.pageState.localStorage,sessionStorage:e.pageState.sessionStorage},(i,h)=>(o(),u("div",{key:h},[p("span",ua,$(h)+" ("+$(i.length)+")",1),i.length===0?(o(),u("p",da,"empty")):(o(),u("ul",pa,[(o(!0),u(ee,null,fe(i,v=>(o(),u("li",{key:v.key,class:"text-xs font-mono truncate"},[E($(v.key)+" ",1),p("span",fa,"("+$(v.length)+" ch)",1)]))),128))]))]))),128))]),p("div",null,[p("span",ma,"Cookies ("+$(e.pageState.cookies.length)+")",1),e.pageState.cookies.length===0?(o(),u("p",ga,"none")):(o(),u("ul",ha,[(o(!0),u(ee,null,fe(e.pageState.cookies,i=>(o(),u("li",{key:i.name+i.domain,class:"text-xs font-mono truncate"},[E($(i.name)+" ",1),n(i)?(o(),u("span",ya,"["+$(n(i))+"]",1)):T("",!0),p("span",va,"· "+$(i.domain),1)]))),128))]))]),f[2]||(f[2]=p("p",{class:"text-[11px] text-gray-400 dark:text-gray-500"}," Storage values and cookie values are never captured — key names, lengths and flags only. ",-1))])]),_:2},[e.storageKey&&!e.plain?{name:"folded",fn:A(()=>[p("span",null,$(t(s)),1)]),key:"0"}:void 0]),1040))}}),qa=Object.assign(xa,{__name:"PageStateCard"});function Za(e={}){const r=Y(!1),a=Je();let c=null;async function n(s,l,f={}){try{typeof ClipboardItem<"u"?await navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([s],{type:"text/plain"}),"text/html":new Blob([l],{type:"text/html"})})]):await navigator.clipboard.writeText(s),r.value=!0,c&&clearTimeout(c),c=setTimeout(()=>{r.value=!1,c=null},e.duration??2e3),f.toast&&a.add({title:typeof f.toast=="string"?f.toast:"Copied to clipboard",icon:"i-lucide-check",color:"success",duration:2e3})}catch{}}return{copyRich:n,copied:r}}export{Xe as _,Da as a,Ka as b,Va as c,Ha as d,Fa as e,qa as f,cn as g,De as h,Ma as i,Na as j,Ua as k,ja as l,Oa as m,Os as n,Ts as o,mt as p,Za as u};
@@ -0,0 +1,2 @@
1
+ import{d as he,o as _,f as L,g as C,V as N,W as Q,k as n,X as ia,a2 as Ee,a3 as Me,b6 as at,a6 as Pe,b9 as Ga,a4 as Ne,a5 as Ce,c as V,j as B,_ as ke,c9 as oa,ac as At,i as W,q,F as pe,y as we,c2 as la,v as P,a0 as Te,a1 as De,h as O,ca as nt,b7 as Be,b8 as Le,a8 as Oe,cb as ra,O as ua,ar as ca,R as da,A as Ke,aw as Tt,C as Ja,r as H,bL as Ya,Y as Qa,$ as Xa,J as re,L as Dt,av as Za,B as Bt,af as en,ad as tn,a7 as st,bN as an,bQ as nn,c1 as sn,bW as on,m as ce,t as oe,ag as ln,c5 as rn,cc as fa,am as pa,H as ze,u as Lt,aS as un,I as it,aC as cn,ab as ge,cd as dn,ce as fn,aN as ha,x as ma,ba as pn,aI as ve,bb as hn,p as Ie,aJ as mn,bP as vn,E as Et,S as gn,b$ as yn,cf as bn,aQ as wn,a9 as va,cg as kn,l as ye,ch as _n,s as Sn,M as xn,a as ga,w as ya,ci as $n,b as In,cj as Cn,ck as An}from"./h49q_GXF.js";import{a as ba,b as Tn,_ as Dn,c as Bn,p as Ln}from"./BhH0TNTi.js";import{_ as En}from"./CRPt9SfB.js";import{_ as Mn}from"./iubpj2qv.js";import{u as On}from"./B-6GGrhr.js";import{a as wa,I as Vt,V as Wt,J as Rn}from"./BZnfiR67.js";import{_ as jn}from"./BQzG26t0.js";import{b as Fn,c as Pn,g as zn,D as qn,a as Nn,d as ct,e as dt,f as Kn,_ as rt}from"./jjOqY9Tv.js";import{i as Hn,L as Un,a as Vn,b as Wn,c as Gn,d as Jn,e as Yn,f as Qn,g as Xn,_ as Zn}from"./BH-ym1CI.js";import{a as es,_ as ts}from"./BtSJxOdh.js";import{_ as as}from"./DDN2tt0a.js";import{_ as ka}from"./BKJetfRH.js";import{_ as _a}from"./B0hK-xDF.js";import{_ as ns}from"./DOLeth7M.js";import{_ as ss}from"./9N6hSApy.js";import{_ as is}from"./BVN50jIb.js";import{u as Mt}from"./Cd8r0xk5.js";import{e as os}from"./CD3R-ggS.js";import{u as Sa,s as ls}from"./CNcu4khZ.js";import{u as rs}from"./t-juTK3X.js";import{u as us}from"./D6Mo5HeX.js";import"./x8w_1_rn.js";import"./CobveFaj.js";import"./BjaRappk.js";import"./BaDhDBCV.js";import"./xbO0VmDX.js";import"./BNAHBHbY.js";import"./B6s20NbT.js";import"./D4UlSVir.js";import"./B9FSuKdA.js";var cs=he({__name:"ListboxGroupLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(e){const t=e,s=Hn({id:""});return(i,o)=>(_(),L(n(ia),Q(t,{id:n(s).id}),{default:C(()=>[N(i.$slots,"default")]),_:3},16,["id"]))}}),ds=cs;const fs={slots:{base:"",label:"",trailing:"hidden lg:flex items-center gap-0.5 ms-auto"},variants:{collapsed:{true:{label:"hidden",trailing:"lg:hidden"}}}},ps=Object.assign({inheritAttrs:!1},{__name:"UDashboardSearchButton",props:{icon:{type:[String,Boolean],required:!1,skipCheck:!0},label:{type:String,required:!1},color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1},collapsed:{type:Boolean,required:!1,default:!1},tooltip:{type:[Boolean,Object],required:!1,default:!1},kbds:{type:Array,required:!1,default:()=>["meta","k"]},ui:{type:Object,required:!1},class:{type:null,required:!1},activeColor:{type:null,required:!1},activeVariant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},block:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},onClick:{type:[Function,Array],required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},as:{type:null,required:!1},type:{type:null,required:!1},disabled:{type:Boolean,required:!1},exactActiveClass:{type:String,required:!1},viewTransition:{type:Boolean,required:!1}},setup(e){const t=e,s=Ee(),i=Me("dashboardSearchButton",t),[o,a]=at(),l=()=>nt(s,["trailing"]),u=Pe(Ga(i,"icon","label","variant","collapsed","tooltip","kbds","class","ui")),r=Be(()=>Le(typeof i.tooltip=="boolean"?{}:i.tooltip,{delayDuration:0,content:{side:"right"}})),{t:g}=Ne(),m=Ce(),{toggleSearch:v}=ba({toggleSearch:()=>{}}),d=O(()=>Oe({extend:fs,...m.ui?.dashboardSearchButton||{}})({collapsed:i.collapsed}));return(c,h)=>(_(),V(pe,null,[B(n(o),null,{default:C(()=>[B(ke,Q({icon:n(i).icon===!1?void 0:n(i).icon??n(m).ui.icons.search,label:n(i).label||n(g)("dashboardSearchButton.label"),variant:n(i).variant||(n(i).collapsed?"ghost":"outline")},{...n(u),...n(i).collapsed?{square:!0,"aria-label":n(i).label||n(g)("dashboardSearchButton.label")}:{},...c.$attrs},{class:d.value.base({class:[n(i).ui?.base,n(i).class]}),ui:n(oa)(d.value,n(i).ui),onClick:n(v)}),At({trailing:C(({ui:y})=>[W("span",{"data-slot":"trailing",class:q(d.value.trailing({class:n(i).ui?.trailing}))},[N(c.$slots,"trailing",{ui:y},()=>[n(i).kbds?.length?(_(!0),V(pe,{key:0},we(n(i).kbds,(D,R)=>(_(),L(la,Q({key:R,variant:"subtle"},{ref_for:!0},typeof D=="string"?{value:D}:D),null,16))),128)):P("",!0)])],2)]),_:2},[we(l(),(y,D)=>({name:D,fn:C(R=>[N(c.$slots,D,Te(De(R)))])}))]),1040,["icon","label","variant","class","ui","onClick"])]),_:3}),n(i).collapsed&&n(i).tooltip?(_(),L(En,Q({key:0,text:n(i).label||n(g)("dashboardSearchButton.label")},r.value),{default:C(()=>[B(n(a))]),_:1},16,["text"])):(_(),L(n(a),{key:1}))],64))}}),hs={class:"inline-flex items-center justify-center shrink-0 size-5"},ms=he({__name:"UserMenu",props:{collapsed:{type:Boolean}},setup(e){const t=ra(),s=Ce(),i=Ke(),{authState:o,logout:a}=ua(),l=On(),{openSettings:u}=wa(),r=["red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],g=["slate","gray","zinc","neutral","stone"],m=O(()=>{if(i.public.authEnabled&&o.value.authenticated&&o.value.user){const d=o.value.user.avatarUrl;return{name:o.value.user.name||o.value.user.username,icon:d?void 0:"i-lucide-user",avatar:d?{src:d}:void 0,role:o.value.user.role}}return{name:"Configuration",icon:"i-lucide-cog"}}),v=O(()=>{const d=[];(!i.public.authEnabled||o.value.authenticated&&o.value.user?.role==="administrator")&&d.push(...l.value.flat());const c=[d,[{label:"Theme",icon:"i-lucide-palette",children:[{label:"Primary",slot:"chip",chip:s.ui.colors.primary,content:{align:"center",collisionPadding:16},children:r.map(h=>({label:h,chip:h,slot:"chip",checked:s.ui.colors.primary===h,type:"checkbox",onSelect:y=>{y.preventDefault(),s.ui.colors.primary=h}}))},{label:"Neutral",slot:"chip",chip:s.ui.colors.neutral==="neutral"?"old-neutral":s.ui.colors.neutral,content:{align:"end",collisionPadding:16},children:g.map(h=>({label:h,chip:h==="neutral"?"old-neutral":h,slot:"chip",type:"checkbox",checked:s.ui.colors.neutral===h,onSelect:y=>{y.preventDefault(),s.ui.colors.neutral=h}}))}]},{label:"Appearance",icon:"i-lucide-sun-moon",children:[{label:"Light",icon:"i-lucide-sun",type:"checkbox",checked:t.value==="light",onSelect(h){h.preventDefault(),t.preference="light"}},{label:"Dark",icon:"i-lucide-moon",type:"checkbox",checked:t.value==="dark",onUpdateChecked(h){h&&(t.preference="dark")},onSelect(h){h.preventDefault()}}]},{label:"Open in IDE…",icon:"i-lucide-external-link",onSelect:h=>{h.preventDefault(),u()}}],[{label:"GitHub repository",icon:"i-lucide-github",to:"https://github.com/piwitests/platform",target:"_blank"}]];return i.public.authEnabled&&o.value.authenticated&&!i.public.demoMode&&c.push([{label:"Logout",icon:"i-lucide-log-out",onSelect:async h=>{h.preventDefault(),await a()}}]),c});return(d,c)=>{const h=ke,y=ca;return _(),L(y,{items:n(v),content:{align:"center",collisionPadding:12},ui:{content:e.collapsed?"w-48":"w-(--reka-dropdown-menu-trigger-width)"}},{"chip-leading":C(({item:D})=>[W("div",hs,[W("span",{class:"rounded-full ring ring-bg bg-(--chip-light) dark:bg-(--chip-dark) size-2",style:da({"--chip-light":`var(--color-${D.chip}-500)`,"--chip-dark":`var(--color-${D.chip}-400)`})},null,4)])]),default:C(()=>[B(h,Q({...n(m),label:e.collapsed?void 0:n(m)?.name,trailingIcon:e.collapsed?void 0:"i-lucide-chevrons-up-down"},{color:"neutral",variant:"ghost",block:"",square:e.collapsed,class:"data-[state=open]:bg-elevated",ui:{trailingIcon:"text-dimmed"}}),null,16,["square"])]),_:1},8,["items","ui"])}}}),vs=Object.assign(ms,{__name:"UserMenu"});(function(){var e;try{if(typeof document<"u"){var t=document.createElement("style");t.nonce=(e=document.head.querySelector("meta[property=csp-nonce]"))==null?void 0:e.content,t.appendChild(document.createTextNode('[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32,.72,0,1);animation-duration:.5s;animation-timing-function:cubic-bezier(.32,.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform, 100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform, 100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform, 100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform, 100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top],[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height, 0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left],[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height, 0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(.32,.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32,.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true]):after{content:"";position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]:after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]:after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]:after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]:after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not([data-state=closed]){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:hover,[data-vaul-handle]:active{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover: hover) and (pointer: fine){[data-vaul-drawer]{-webkit-user-select:none;user-select:none}}@media (pointer: fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{0%{transform:translate3d(0,var(--initial-transform, 100%),0)}to{transform:translateZ(0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform, 100%),0)}}@keyframes slideFromTop{0%{transform:translate3d(0,calc(var(--initial-transform, 100%) * -1),0)}to{transform:translateZ(0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform, 100%) * -1),0)}}@keyframes slideFromLeft{0%{transform:translate3d(calc(var(--initial-transform, 100%) * -1),0,0)}to{transform:translateZ(0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform, 100%) * -1),0,0)}}@keyframes slideFromRight{0%{transform:translate3d(var(--initial-transform, 100%),0,0)}to{transform:translateZ(0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform, 100%),0,0)}}')),document.head.appendChild(t)}}catch(s){console.error("vite-plugin-css-injected-by-js",s)}})();const gs=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ys=e=>typeof e<"u";function bs(e){return JSON.parse(JSON.stringify(e))}function Gt(e,t,s,i={}){var o,a,l;const{clone:u=!1,passive:r=!1,eventName:g,deep:m=!1,defaultValue:v,shouldEmit:d}=i,c=Za(),h=s||c?.emit||((o=c?.$emit)==null?void 0:o.bind(c))||((l=(a=c?.proxy)==null?void 0:a.$emit)==null?void 0:l.bind(c?.proxy));let y=g;t||(t="modelValue"),y=y||`update:${t.toString()}`;const D=b=>u?typeof u=="function"?u(b):bs(b):b,R=()=>ys(e[t])?D(e[t]):v,A=b=>{d?d(b)&&h(y,b):h(y,b)};if(r){const b=R(),f=H(b);let x=!1;return re(()=>e[t],$=>{x||(x=!0,f.value=D($),Dt(()=>x=!1))}),re(f,$=>{!x&&($!==e[t]||m)&&A($)},{deep:m}),f}else return O({get(){return R()},set(b){A(b)}})}const[He,ws]=Xa("DrawerRoot"),xa=new WeakMap;function ne(e,t,s=!1){if(!e||!(e instanceof HTMLElement)||!t)return;const i={};Object.entries(t).forEach(([o,a])=>{if(o.startsWith("--")){e.style.setProperty(o,a);return}i[o]=e.style[o],e.style[o]=a}),!s&&xa.set(e,i)}function ks(e,t){if(!e||!(e instanceof HTMLElement))return;const s=xa.get(e);s&&Object.entries(s).forEach(([i,o])=>{e.style[i]=o})}function Je(e,t){const s=window.getComputedStyle(e),i=s.transform||s.webkitTransform||s.mozTransform;let o=i.match(/^matrix3d\((.+)\)$/);return o?Number.parseFloat(o[1].split(", ")[ee(t)?13:12]):(o=i.match(/^matrix\((.+)\)$/),o?Number.parseFloat(o[1].split(", ")[ee(t)?5:4]):null)}function _s(e){return 8*(Math.log(e+1)-2)}function ee(e){switch(e){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return e}}function ft(e,t){if(!e)return()=>{};const s=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=s}}function Ss(...e){return(...t)=>{for(const s of e)typeof s=="function"&&s(...t)}}const X={DURATION:.5,EASE:[.32,.72,0,1]},$a=.4,xs=.25,$s=100,Ia=8,Ye=16,Ca=26,Jt="vaul-dragging";function Is({activeSnapPoint:e,snapPoints:t,drawerRef:s,overlayRef:i,fadeFromIndex:o,onSnapPointChange:a,direction:l}){const u=H(typeof window<"u"?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);function r(){u.value={innerWidth:window.innerWidth,innerHeight:window.innerHeight}}Bt(()=>{typeof window<"u"&&window.addEventListener("resize",r)}),en(()=>{typeof window<"u"&&window.removeEventListener("resize",r)});const g=O(()=>(t.value&&e.value===t.value[t.value.length-1])??null),m=O(()=>t.value&&t.value.length>0&&(o?.value||o?.value===0)&&!Number.isNaN(o?.value)&&t.value[o?.value??-1]===e.value||!t.value),v=O(()=>{var A;return((A=t.value)==null?void 0:A.findIndex(b=>b===e.value))??null}),d=O(()=>{var A;return((A=t.value)==null?void 0:A.map(b=>{const f=typeof b=="string";let x=0;if(f&&(x=Number.parseInt(b,10)),ee(l.value)){const T=f?x:u.value?b*u.value.innerHeight:0;return u.value?l.value==="bottom"?u.value.innerHeight-T:-u.value.innerHeight+T:T}const $=f?x:u.value?b*u.value.innerWidth:0;return u.value?l.value==="right"?u.value.innerWidth-$:-u.value.innerWidth+$:$}))??[]}),c=O(()=>{var A;return v.value!==null?(A=d.value)==null?void 0:A[v.value]:null}),h=A=>{var b,f,x,$;const T=((b=d.value)==null?void 0:b.findIndex(I=>I===A))??null;Dt(()=>{var I;a(T,d.value),ne((I=s.value)==null?void 0:I.$el,{transition:`transform ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,transform:ee(l.value)?`translate3d(0, ${A}px, 0)`:`translate3d(${A}px, 0, 0)`})}),d.value&&T!==d.value.length-1&&T!==o?.value?ne((f=i.value)==null?void 0:f.$el,{transition:`opacity ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,opacity:"0"}):ne((x=i.value)==null?void 0:x.$el,{transition:`opacity ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,opacity:"1"}),e.value=T!==null?(($=t.value)==null?void 0:$[T])??null:null};re([e,d,t],()=>{var A;if(e.value){const b=((A=t.value)==null?void 0:A.findIndex(f=>f===e.value))??-1;d.value&&b!==-1&&typeof d.value[b]=="number"&&h(d.value[b])}},{immediate:!0});function y({draggedDistance:A,closeDrawer:b,velocity:f,dismissible:x}){var $,T,I;if(o.value===void 0)return;const S=l.value==="bottom"||l.value==="right"?(c.value??0)-A:(c.value??0)+A,k=v.value===o.value-1,M=v.value===0,G=A>0;if(k&&ne(($=i.value)==null?void 0:$.$el,{transition:`opacity ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`}),f>2&&!G){x?b():h(d.value[0]);return}if(f>2&&G&&d&&t.value){h(d.value[t.value.length-1]);return}const J=(T=d.value)==null?void 0:T.reduce((F,p)=>typeof F!="number"||typeof p!="number"?F:Math.abs(p-S)<Math.abs(F-S)?p:F),w=ee(l.value)?window.innerHeight:window.innerWidth;if(f>$a&&Math.abs(A)<w*.4){const F=G?1:-1;if(F>0&&g){h(d.value[(((I=t.value)==null?void 0:I.length)??0)-1]);return}if(M&&F<0&&x&&b(),v.value===null)return;h(d.value[v.value+F]);return}h(J)}function D({draggedDistance:A}){var b;if(c.value===null)return;const f=l.value==="bottom"||l.value==="right"?c.value-A:c.value+A;(l.value==="bottom"||l.value==="right")&&f<d.value[d.value.length-1]||(l.value==="top"||l.value==="left")&&f>d.value[d.value.length-1]||ne((b=s.value)==null?void 0:b.$el,{transform:ee(l.value)?`translate3d(0, ${f}px, 0)`:`translate3d(${f}px, 0, 0)`})}function R(A,b){if(!t.value||typeof v.value!="number"||!d.value||o.value===void 0)return null;const f=v.value===o.value-1;if(v.value>=o.value&&b)return 0;if(f&&!b)return 1;if(!m.value&&!f)return null;const x=f?v.value+1:v.value-1,$=f?d.value[x]-d.value[x-1]:d.value[x+1]-d.value[x],T=A/Math.abs($);return f?1-T:T}return{isLastSnapPoint:g,shouldFade:m,getPercentageDragged:R,activeSnapPointIndex:v,onRelease:y,onDrag:D,snapPointsOffset:d}}function Yt(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}let je=null;function Cs(e){const{isOpen:t,modal:s,nested:i,hasBeenOpened:o,preventScrollRestoration:a,noBodyStyles:l}=e,u=H(typeof window<"u"?window.location.href:""),r=H(0);function g(){if(Yt()&&je===null&&t.value&&!l.value){je={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height};const{scrollX:v,innerHeight:d}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-r.value}px`,left:`${-v}px`,right:"0px",height:"auto"}),setTimeout(()=>{requestAnimationFrame(()=>{const c=d-window.innerHeight;c&&r.value>=d&&(document.body.style.top=`-${r.value+c}px`)})},300)}}function m(){if(Yt()&&je!==null&&!l.value){const v=-Number.parseInt(document.body.style.top,10),d=-Number.parseInt(document.body.style.left,10);Object.assign(document.body.style,je),window.requestAnimationFrame(()=>{if(a.value&&u.value!==window.location.href){u.value=window.location.href;return}window.scrollTo(d,v)}),je=null}}return Bt(()=>{function v(){r.value=window.scrollY}v(),window.addEventListener("scroll",v),tn(()=>{window.removeEventListener("scroll",v)})}),re([t,o,u],()=>{i.value||!o.value||(t.value?(window.matchMedia("(display-mode: standalone)").matches||g(),s.value||setTimeout(()=>{m()},500)):m())}),{restorePositionSetting:m}}function As(e,t){return e&&e.value?e:t}function Ts(e){const{emitDrag:t,emitRelease:s,emitClose:i,emitOpenChange:o,open:a,dismissible:l,nested:u,modal:r,shouldScaleBackground:g,setBackgroundColorOnScale:m,scrollLockTimeout:v,closeThreshold:d,activeSnapPoint:c,fadeFromIndex:h,direction:y,noBodyStyles:D,handleOnly:R,preventScrollRestoration:A}=e,b=H(a.value??!1),f=H(!1),x=H(!1),$=H(!1),T=H(null),I=H(null),S=H(null),k=H(null),M=H(null),G=H(!1),J=H(null),w=H(0),F=H(!1),p=H(null),U=O(()=>{var z;return((z=p.value)==null?void 0:z.$el.getBoundingClientRect().height)||0}),E=As(e.snapPoints,H(void 0)),K=O(()=>{var z;return E&&(((z=E.value)==null?void 0:z.length)??0)>0}),se=H(null),{activeSnapPointIndex:te,onRelease:be,snapPointsOffset:me,onDrag:Fa,shouldFade:Pt,getPercentageDragged:Pa}=Is({snapPoints:E,activeSnapPoint:c,drawerRef:p,fadeFromIndex:h,overlayRef:T,onSnapPointChange:za,direction:y});function za(z,Z){E.value&&z===Z.length-1&&(I.value=new Date)}Cs({isOpen:b,modal:r,nested:u,hasBeenOpened:f,noBodyStyles:D,preventScrollRestoration:A});function Ue(){return(window.innerWidth-Ca)/window.innerWidth}function zt(z,Z){var ae;if(!z)return!1;let Y=z;const ie=(ae=window.getSelection())==null?void 0:ae.toString(),ue=p.value?Je(p.value.$el,y.value):null,fe=new Date;if(Y.hasAttribute("data-vaul-no-drag")||Y.closest("[data-vaul-no-drag]"))return!1;if(y.value==="right"||y.value==="left")return!0;if(I.value&&fe.getTime()-I.value.getTime()<500)return!1;if(ue!==null&&(y.value==="bottom"?ue>0:ue<0))return!0;if(ie&&ie.length>0)return!1;if(M.value&&fe.getTime()-M.value.getTime()<v.value&&ue===0||Z)return M.value=fe,!1;for(;Y;){if(Y.scrollHeight>Y.clientHeight){if(Y.scrollTop!==0)return M.value=new Date,!1;if(Y.getAttribute("role")==="dialog")return!0}Y=Y.parentNode}return!0}function qa(z){!l.value&&!E.value||p.value&&!p.value.$el.contains(z.target)||(x.value=!0,S.value=new Date,z.target.setPointerCapture(z.pointerId),w.value=ee(y.value)?z.clientY:z.clientX)}function Na(z){var Z,ae,Y,ie,ue,fe;if(p.value&&x.value){const Ae=y.value==="bottom"||y.value==="right"?1:-1,Ve=(w.value-(ee(y.value)?z.clientY:z.clientX))*Ae,We=Ve>0,Nt=E.value&&!l.value&&!We;if(Nt&&te.value===0)return;const ut=Math.abs(Ve),Kt=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");let xe=ut/U.value;const Ht=Pa(ut,We);if(Ht!==null&&(xe=Ht),Nt&&xe>=1||!G.value&&!zt(z.target,We))return;if((Z=p?.value)==null||Z.$el.classList.add(Jt),G.value=!0,ne((ae=p.value)==null?void 0:ae.$el,{transition:"none"}),ne((Y=T.value)==null?void 0:Y.$el,{transition:"none"}),E.value&&Fa({draggedDistance:Ve}),We&&!E.value){const $e=_s(Ve),Ge=Math.min($e*-1,0)*Ae;ne((ie=p.value)==null?void 0:ie.$el,{transform:ee(y.value)?`translate3d(0, ${Ge}px, 0)`:`translate3d(${Ge}px, 0, 0)`});return}const Wa=1-xe;if((Pt.value||h.value&&te.value===h.value-1)&&(t(xe),ne((ue=T.value)==null?void 0:ue.$el,{opacity:`${Wa}`,transition:"none"},!0)),Kt&&T.value&&g.value){const $e=Math.min(Ue()+xe*(1-Ue()),1),Ge=8-xe*8,Ut=Math.max(0,14-xe*14);ne(Kt,{borderRadius:`${Ge}px`,transform:ee(y.value)?`scale(${$e}) translate3d(0, ${Ut}px, 0)`:`scale(${$e}) translate3d(${Ut}px, 0, 0)`,transition:"none"},!0)}if(!E.value){const $e=ut*Ae;ne((fe=p.value)==null?void 0:fe.$el,{transform:ee(y.value)?`translate3d(0, ${$e}px, 0)`:`translate3d(${$e}px, 0, 0)`})}}}function qt(){var z;if(!p.value)return;const Z=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]"),ae=Je(p.value.$el,y.value);ne(p.value.$el,{transform:"translate3d(0, 0, 0)",transition:`transform ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`}),ne((z=T.value)==null?void 0:z.$el,{transition:`opacity ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,opacity:"1"}),g.value&&ae&&ae>0&&b.value&&ne(Z,{borderRadius:`${Ia}px`,overflow:"hidden",...ee(y.value)?{transform:`scale(${Ue()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${Ue()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:`${X.DURATION}s`,transitionTimingFunction:`cubic-bezier(${X.EASE.join(",")})`},!0)}function Re(z){p.value&&(i(),z||(b.value=!1),window.setTimeout(()=>{E.value&&(c.value=E.value[0])},X.DURATION*1e3))}Tt(()=>{if(!b.value&&g.value&&gs){const z=setTimeout(()=>{ks(document.body)},200);return()=>clearTimeout(z)}}),re(a,()=>{b.value=a.value,a.value||Re()});function Ka(z){if(!x.value||!p.value)return;p.value.$el.classList.remove(Jt),G.value=!1,x.value=!1,k.value=new Date;const Z=Je(p.value.$el,y.value);if(!zt(z.target,!1)||!Z||Number.isNaN(Z)||S.value===null)return;const ae=k.value.getTime()-S.value.getTime(),Y=w.value-(ee(y.value)?z.clientY:z.clientX),ie=Math.abs(Y)/ae;if(ie>.05&&($.value=!0,window.setTimeout(()=>{$.value=!1},200)),E.value){const fe=y.value==="bottom"||y.value==="right"?1:-1;be({draggedDistance:Y*fe,closeDrawer:Re,velocity:ie,dismissible:l.value}),s(!0);return}if(y.value==="bottom"||y.value==="right"?Y>0:Y<0){qt(),s(!0);return}if(ie>$a){Re(),s(!1);return}const ue=Math.min(p.value.$el.getBoundingClientRect().height??0,window.innerHeight);if(Z>=ue*d.value){Re(),s(!1);return}s(!0),qt()}re(b,z=>{z&&(I.value=new Date),o(z)},{immediate:!0});function Ha(z){var Z,ae;const Y=z?(window.innerWidth-Ye)/window.innerWidth:1,ie=z?-16:0;J.value&&window.clearTimeout(J.value),ne((Z=p.value)==null?void 0:Z.$el,{transition:`transform ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,transform:`scale(${Y}) translate3d(0, ${ie}px, 0)`}),!z&&(ae=p.value)!=null&&ae.$el&&(J.value=window.setTimeout(()=>{var ue,fe;const Ae=Je((ue=p.value)==null?void 0:ue.$el,y.value);ne((fe=p.value)==null?void 0:fe.$el,{transition:"none",transform:ee(y.value)?`translate3d(0, ${Ae}px, 0)`:`translate3d(${Ae}px, 0, 0)`})},500))}function Ua(z){var Z;if(z<0)return;const ae=ee(y.value)?window.innerHeight:window.innerWidth,Y=(ae-Ye)/ae,ie=Y+z*(1-Y),ue=-16+z*Ye;ne((Z=p.value)==null?void 0:Z.$el,{transform:ee(y.value)?`scale(${ie}) translate3d(0, ${ue}px, 0)`:`scale(${ie}) translate3d(${ue}px, 0, 0)`,transition:"none"})}function Va(z){var Z;const ae=ee(y.value)?window.innerHeight:window.innerWidth,Y=z?(ae-Ye)/ae:1,ie=z?-16:0;z&&ne((Z=p.value)==null?void 0:Z.$el,{transition:`transform ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,transform:ee(y.value)?`scale(${Y}) translate3d(0, ${ie}px, 0)`:`scale(${Y}) translate3d(${ie}px, 0, 0)`})}return{open:a,isOpen:b,modal:r,keyboardIsOpen:F,hasBeenOpened:f,drawerRef:p,drawerHeightRef:U,overlayRef:T,handleRef:se,isDragging:x,dragStartTime:S,isAllowedToDrag:G,snapPoints:E,activeSnapPoint:c,hasSnapPoints:K,pointerStart:w,dismissible:l,snapPointsOffset:me,direction:y,shouldFade:Pt,fadeFromIndex:h,shouldScaleBackground:g,setBackgroundColorOnScale:m,onPress:qa,onDrag:Na,onRelease:Ka,closeDrawer:Re,onNestedDrag:Ua,onNestedRelease:Va,onNestedOpenChange:Ha,emitClose:i,emitDrag:t,emitRelease:s,emitOpenChange:o,nested:u,handleOnly:R,noBodyStyles:D}}const Aa=he({__name:"DrawerRoot",props:{activeSnapPoint:{default:void 0},closeThreshold:{default:xs},shouldScaleBackground:{type:Boolean,default:void 0},setBackgroundColorOnScale:{type:Boolean,default:!0},scrollLockTimeout:{default:$s},fixed:{type:Boolean,default:void 0},dismissible:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:void 0},nested:{type:Boolean,default:!1},direction:{default:"bottom"},noBodyStyles:{type:Boolean},handleOnly:{type:Boolean,default:!1},preventScrollRestoration:{type:Boolean},snapPoints:{default:void 0},fadeFromIndex:{default:void 0}},emits:["drag","release","close","update:open","update:activeSnapPoint","animationEnd"],setup(e,{expose:t,emit:s}){const i=e,o=s;Ee();const a=O(()=>i.fadeFromIndex??(i.snapPoints&&i.snapPoints.length-1)),l=Gt(i,"open",o,{defaultValue:i.defaultOpen,passive:i.open===void 0}),u=Gt(i,"activeSnapPoint",o,{passive:i.activeSnapPoint===void 0}),r={emitDrag:h=>o("drag",h),emitRelease:h=>o("release",h),emitClose:()=>o("close"),emitOpenChange:h=>{o("update:open",h),setTimeout(()=>{o("animationEnd",h)},X.DURATION*1e3)}},{closeDrawer:g,hasBeenOpened:m,modal:v,isOpen:d}=ws(Ts({...r,...Qa(i),activeSnapPoint:u,fadeFromIndex:a,open:l}));function c(h){if(l.value!==void 0){r.emitOpenChange(h);return}d.value=h,h?m.value=!0:g()}return t({open:d}),(h,y)=>(_(),L(n(zn),{open:n(d),modal:n(v),"onUpdate:open":c},{default:C(()=>[N(h.$slots,"default",{open:n(d)})]),_:3},8,["open","modal"]))}}),Ds=he({__name:"DrawerRootNested",props:{activeSnapPoint:{},closeThreshold:{},shouldScaleBackground:{type:Boolean},setBackgroundColorOnScale:{type:Boolean},scrollLockTimeout:{},fixed:{type:Boolean},dismissible:{type:Boolean},modal:{type:Boolean},open:{type:Boolean},defaultOpen:{type:Boolean},nested:{type:Boolean},direction:{},noBodyStyles:{type:Boolean},handleOnly:{type:Boolean},preventScrollRestoration:{type:Boolean},snapPoints:{},fadeFromIndex:{}},emits:["drag","release","close","update:open","update:activeSnapPoint","animationEnd"],setup(e,{emit:t}){const s=e,i=t,{onNestedDrag:o,onNestedOpenChange:a,onNestedRelease:l}=He();function u(){a(!1)}function r(v){o(v)}function g(v){v&&a(v),i("update:open",v)}const m=Ya(s,i);return(v,d)=>(_(),L(Aa,Q(n(m),{nested:"",onClose:u,onDrag:r,onRelease:n(l),"onUpdate:open":g}),{default:C(()=>[N(v.$slots,"default")]),_:3},16,["onRelease"]))}}),Bs=he({__name:"DrawerOverlay",setup(e){const{overlayRef:t,hasSnapPoints:s,isOpen:i,shouldFade:o}=He();return(a,l)=>(_(),L(n(Fn),{ref_key:"overlayRef",ref:t,"data-vaul-overlay":"","data-vaul-snap-points":n(i)&&n(s)?"true":"false","data-vaul-snap-points-overlay":n(i)&&n(o)?"true":"false"},null,8,["data-vaul-snap-points","data-vaul-snap-points-overlay"]))}}),Ls=()=>()=>{};function Es(){const{direction:e,isOpen:t,shouldScaleBackground:s,setBackgroundColorOnScale:i,noBodyStyles:o}=He(),a=H(null),l=H(document.body.style.backgroundColor);function u(){return(window.innerWidth-Ca)/window.innerWidth}Tt(r=>{if(t.value&&s.value){a.value&&clearTimeout(a.value);const g=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!g)return;Ss(i.value&&!o.value?ft(document.body,{background:"black"}):Ls,ft(g,{transformOrigin:ee(e.value)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:`${X.DURATION}s`,transitionTimingFunction:`cubic-bezier(${X.EASE.join(",")})`}));const m=ft(g,{borderRadius:`${Ia}px`,overflow:"hidden",...ee(e.value)?{transform:`scale(${u()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${u()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});r(()=>{m(),a.value=window.setTimeout(()=>{l.value?document.body.style.background=l.value:document.body.style.removeProperty("background")},X.DURATION*1e3)})}},{flush:"pre"})}const Ms=he({__name:"DrawerContent",setup(e){const{open:t,isOpen:s,snapPointsOffset:i,hasSnapPoints:o,drawerRef:a,onPress:l,onDrag:u,onRelease:r,modal:g,emitOpenChange:m,dismissible:v,keyboardIsOpen:d,closeDrawer:c,direction:h,handleOnly:y}=He();Es();const D=H(!1),R=O(()=>i.value&&i.value.length>0?`${i.value[0]}px`:"0");function A(x){if(!g.value||x.defaultPrevented){x.preventDefault();return}d.value&&(d.value=!1),v.value?m(!1):x.preventDefault()}function b(x){y.value||l(x)}function f(x){y.value||u(x)}return Tt(()=>{o.value&&window.requestAnimationFrame(()=>{D.value=!0})}),(x,$)=>(_(),L(n(Pn),{ref_key:"drawerRef",ref:a,"data-vaul-drawer":"","data-vaul-drawer-direction":n(h),"data-vaul-delayed-snap-points":D.value?"true":"false","data-vaul-snap-points":n(s)&&n(o)?"true":"false",style:da({"--snap-point-height":R.value}),onPointerdown:b,onPointermove:f,onPointerup:n(r),onPointerDownOutside:A,onOpenAutoFocus:$[0]||($[0]=Ja(()=>{},["prevent"])),onEscapeKeyDown:$[1]||($[1]=T=>{n(v)||T.preventDefault()})},{default:C(()=>[N(x.$slots,"default")]),_:3},8,["data-vaul-drawer-direction","data-vaul-delayed-snap-points","data-vaul-snap-points","style","onPointerup"]))}}),Os=["data-vaul-drawer-visible"],Rs={"data-vaul-handle-hitarea":"","aria-hidden":"true"},js=250,Fs=120,Ps=he({__name:"DrawerHandle",props:{preventCycle:{type:Boolean,default:!1}},setup(e){const t=e,{onPress:s,onDrag:i,handleRef:o,handleOnly:a,isOpen:l,snapPoints:u,activeSnapPoint:r,isDragging:g,dismissible:m,closeDrawer:v}=He(),d=H(null),c=H(!1);function h(){if(c.value){R();return}window.setTimeout(()=>{y()},Fs)}function y(){if(g.value||t.preventCycle||c.value){R();return}if(R(),!u.value||u.value.length===0){m.value||v();return}const f=r.value===u.value[u.value.length-1];if(f&&m.value){v();return}const x=u.value.findIndex(T=>T===r.value);if(x===-1)return;const $=f?0:x+1;r.value=u.value[$]}function D(){d.value=window.setTimeout(()=>{c.value=!0},js)}function R(){d.value&&window.clearTimeout(d.value),c.value=!1}function A(f){a.value&&s(f),D()}function b(f){a.value&&i(f)}return(f,x)=>(_(),V("div",{ref_key:"handleRef",ref:o,"data-vaul-drawer-visible":n(l)?"true":"false","data-vaul-handle":"","aria-hidden":"true",onClick:h,onPointercancel:R,onPointerdown:A,onPointermove:b},[W("span",Rs,[N(f.$slots,"default")])],40,Os))}}),zs={slots:{overlay:"fixed inset-0 bg-elevated/75",content:"fixed bg-default ring ring-default flex focus:outline-none",handle:["shrink-0 !bg-accented","transition-opacity"],container:"w-full flex flex-col gap-4 p-4 overflow-y-auto",header:"flex items-center gap-1.5 min-h-8",wrapper:"min-w-0 flex-1",title:"text-highlighted font-semibold",description:"mt-1 text-muted text-sm",actions:"flex items-center gap-1.5 shrink-0 ms-auto",body:"flex-1",footer:"flex flex-col gap-1.5",close:""},variants:{direction:{top:{content:"mb-24 flex-col-reverse",handle:"mb-4"},right:{content:"flex-row rtl:flex-row-reverse",handle:"!ml-4"},bottom:{content:"mt-24 flex-col",handle:"mt-4"},left:{content:"flex-row-reverse rtl:flex-row",handle:"!mr-4"}},inset:{true:{content:"rounded-lg after:hidden overflow-hidden [--initial-transform:calc(100%+1.5rem)]"}},snapPoints:{true:""}},compoundVariants:[{direction:["top","bottom"],class:{content:"h-auto max-h-[96%]",handle:"!w-12 !h-1.5 mx-auto"}},{direction:["top","bottom"],snapPoints:!0,class:{content:"h-full"}},{direction:["right","left"],class:{content:"w-auto max-w-[calc(100%-2rem)]",handle:"!h-12 !w-1.5 mt-auto mb-auto"}},{direction:["right","left"],snapPoints:!0,class:{content:"w-full"}},{direction:"top",inset:!0,class:{content:"inset-x-4 top-4"}},{direction:"top",inset:!1,class:{content:"inset-x-0 top-0 rounded-b-lg"}},{direction:"bottom",inset:!0,class:{content:"inset-x-4 bottom-4"}},{direction:"bottom",inset:!1,class:{content:"inset-x-0 bottom-0 rounded-t-lg"}},{direction:"left",inset:!0,class:{content:"inset-y-4 left-4"}},{direction:"left",inset:!1,class:{content:"inset-y-0 left-0 rounded-r-lg"}},{direction:"right",inset:!0,class:{content:"inset-y-4 right-4"}},{direction:"right",inset:!1,class:{content:"inset-y-0 right-0 rounded-l-lg"}}]},qs={__name:"UDrawer",props:{as:{type:null,required:!1},title:{type:String,required:!1},description:{type:String,required:!1},inset:{type:Boolean,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},handle:{type:Boolean,required:!1,default:!0},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},nested:{type:Boolean,required:!1},close:{type:[Boolean,Object],required:!1},closeIcon:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},activeSnapPoint:{type:[Number,String,null],required:!1},closeThreshold:{type:Number,required:!1},shouldScaleBackground:{type:Boolean,required:!1},setBackgroundColorOnScale:{type:Boolean,required:!1},scrollLockTimeout:{type:Number,required:!1},fixed:{type:Boolean,required:!1},dismissible:{type:Boolean,required:!1,default:!0},modal:{type:Boolean,required:!1,default:!0},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},direction:{type:String,required:!1,default:"bottom"},noBodyStyles:{type:Boolean,required:!1},handleOnly:{type:Boolean,required:!1},preventScrollRestoration:{type:Boolean,required:!1},snapPoints:{type:Array,required:!1}},emits:["close:prevent","drag","release","close","update:open","update:activeSnapPoint","animationEnd"],setup(e,{emit:t}){const s=e,i=t,o=Ee(),a=Me("drawer",s),{t:l}=Ne(),u=Ce(),r=Pe(st(a,"activeSnapPoint","closeThreshold","shouldScaleBackground","setBackgroundColorOnScale","scrollLockTimeout","fixed","dismissible","modal","open","defaultOpen","nested","direction","noBodyStyles","handleOnly","preventScrollRestoration","snapPoints"),i),g=an(Be(()=>a.portal)),m=Be(()=>a.content),v=O(()=>a.dismissible?{pointerDownOutside:rn}:["interactOutside","escapeKeyDown"].reduce((h,y)=>(h[y]=D=>{D.preventDefault(),i("close:prevent")},h),{})),d=O(()=>Oe({extend:zs,...u.ui?.drawer||{}})({direction:a.direction,inset:a.inset,snapPoints:a.snapPoints&&a.snapPoints.length>0}));return(c,h)=>(_(),L(ln(n(a).nested?n(Ds):n(Aa)),Te(De(n(r))),{default:C(()=>[o.default?(_(),L(n(qn),{key:0,"as-child":"",class:q(n(a).class)},{default:C(()=>[N(c.$slots,"default")]),_:3},8,["class"])):P("",!0),B(n(Nn),Te(De(n(g))),{default:C(()=>[B(n(nn),null,{default:C(()=>[n(a).overlay?(_(),L(n(Bs),{key:0,"data-slot":"overlay",class:q(d.value.overlay({class:n(a).ui?.overlay}))},null,8,["class"])):P("",!0),B(n(Ms),Q({"data-slot":"content",class:d.value.content({class:[!o.default&&n(a).class,n(a).ui?.content]})},m.value,sn(v.value)),{default:C(()=>[n(a).handle?(_(),L(n(Ps),{key:0,"data-slot":"handle",class:q(d.value.handle({class:n(a).ui?.handle}))},null,8,["class"])):P("",!0),!n(a).title&&!o.title||!n(a).description&&!o.description||o.content?(_(),L(n(on),{key:1},{default:C(()=>[!n(a).title&&!o.title?(_(),L(n(ct),{key:0})):o.content?(_(),L(n(ct),{key:1},{default:C(()=>[N(c.$slots,"title",{},()=>[ce(oe(n(a).title),1)])]),_:3})):P("",!0),!n(a).description&&!o.description?(_(),L(n(dt),{key:2})):o.content?(_(),L(n(dt),{key:3},{default:C(()=>[N(c.$slots,"description",{},()=>[ce(oe(n(a).description),1)])]),_:3})):P("",!0)]),_:3})):P("",!0),N(c.$slots,"content",{},()=>[W("div",{"data-slot":"container",class:q(d.value.container({class:n(a).ui?.container}))},[o.header||n(a).title||o.title||n(a).description||o.description||n(a).close||o.close||o.actions?(_(),V("div",{key:0,"data-slot":"header",class:q(d.value.header({class:n(a).ui?.header}))},[N(c.$slots,"header",{},()=>[n(a).title||o.title||n(a).description||o.description?(_(),V("div",{key:0,"data-slot":"wrapper",class:q(d.value.wrapper({class:n(a).ui?.wrapper}))},[n(a).title||o.title?(_(),L(n(ct),{key:0,"data-slot":"title",class:q(d.value.title({class:n(a).ui?.title}))},{default:C(()=>[N(c.$slots,"title",{},()=>[ce(oe(n(a).title),1)])]),_:3},8,["class"])):P("",!0),n(a).description||o.description?(_(),L(n(dt),{key:1,"data-slot":"description",class:q(d.value.description({class:n(a).ui?.description}))},{default:C(()=>[N(c.$slots,"description",{},()=>[ce(oe(n(a).description),1)])]),_:3},8,["class"])):P("",!0)],2)):P("",!0),o.actions||n(a).close||o.close?(_(),V("div",{key:1,"data-slot":"actions",class:q(d.value.actions({class:n(a).ui?.actions}))},[N(c.$slots,"actions"),n(a).close||o.close?(_(),L(n(Kn),{key:0,"as-child":""},{default:C(()=>[N(c.$slots,"close",{ui:d.value},()=>[n(a).close?(_(),L(ke,Q({key:0,icon:n(a).closeIcon||n(u).ui.icons.close,color:"neutral",variant:"ghost","aria-label":n(l)("drawer.close")},typeof n(a).close=="object"?n(a).close:{},{"data-slot":"close",class:d.value.close({class:n(a).ui?.close})}),null,16,["icon","aria-label","class"])):P("",!0)])]),_:3})):P("",!0)],2)):P("",!0)])],2)):P("",!0),o.body?(_(),V("div",{key:1,"data-slot":"body",class:q(d.value.body({class:n(a).ui?.body}))},[N(c.$slots,"body")],2)):P("",!0),o.footer?(_(),V("div",{key:2,"data-slot":"footer",class:q(d.value.footer({class:n(a).ui?.footer}))},[N(c.$slots,"footer")],2)):P("",!0)],2)])]),_:3},16,["class"])]),_:3})]),_:3},16)]),_:3},16))}},Ns={slots:{root:"relative hidden lg:flex flex-col min-h-svh min-w-16 w-(--width) shrink-0",header:"h-(--ui-header-height) shrink-0 flex items-center gap-1.5 px-4",body:"flex flex-col gap-4 flex-1 overflow-y-auto px-4 py-2",footer:"shrink-0 flex items-center gap-1.5 px-4 py-2",toggle:"",handle:"",content:"lg:hidden",overlay:"lg:hidden"},variants:{menu:{true:{header:"sm:px-6",body:"sm:px-6",footer:"sm:px-6"}},side:{left:{root:"border-e border-default"},right:{root:""}},toggleSide:{left:{toggle:""},right:{toggle:"ms-auto"}}}};function yt(e,t){const i=fa().hook(e,t);pa(i)}const Ks=["data-collapsed","data-dragging"],Hs=Object.assign({inheritAttrs:!1},{__name:"UDashboardSidebar",props:it({mode:{type:null,required:!1,default:"slideover"},menu:{type:null,required:!1},toggle:{type:[Boolean,Object],required:!1,default:!0},toggleSide:{type:String,required:!1,default:"left"},autoClose:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},id:{type:String,required:!1},side:{type:String,required:!1,default:"left"},minSize:{type:Number,required:!1,default:10},maxSize:{type:Number,required:!1,default:20},defaultSize:{type:Number,required:!1,default:15},resizable:{type:Boolean,required:!1,default:!1},collapsible:{type:Boolean,required:!1,default:!1},collapsedSize:{type:Number,required:!1,default:0}},{open:{type:Boolean,default:!1},openModifiers:{},collapsed:{type:Boolean,default:!1},collapsedModifiers:{}}),emits:["update:open","update:collapsed"],setup(e){const t=e,s=Ee(),i=Me("dashboardSidebar",t),o=ze(e,"open",{type:Boolean,default:!1}),a=ze(e,"collapsed",{type:Boolean,default:!1}),l=Lt(),{t:u}=Ne(),r=Ce(),g=ba({storageKey:"dashboard",unit:"%",sidebarOpen:H(!1),sidebarCollapsed:H(!1)}),m=`${g.storageKey}-sidebar-${i.id||un()}`,{el:v,size:d,collapse:c,isCollapsed:h,isDragging:y,onMouseDown:D,onTouchStart:R,onDoubleClick:A}=Tn(m,Be(()=>({...g,...i})),{collapsed:a}),[b,f]=at(),[x,$]=at();yt("dashboard:sidebar:toggle",()=>{o.value=!o.value}),yt("dashboard:sidebar:collapse",M=>{h.value=M}),re(o,()=>g.sidebarOpen.value=o.value,{immediate:!0}),re(h,()=>g.sidebarCollapsed.value=h.value,{immediate:!0}),re(()=>l.fullPath,()=>{i.autoClose&&(o.value=!1)});const T=O(()=>Oe({extend:Ns,...r.ui?.dashboardSidebar||{}})({side:i.side})),I=O(()=>({slideover:jn,modal:rt,drawer:qs})[i.mode]),S=Be(()=>Le(i.menu,{},i.mode==="modal"?{fullscreen:!0,transition:!1}:i.mode==="slideover"?{side:"left"}:{}));function k(){o.value=!o.value}return(M,G)=>(_(),V(pe,null,[B(n(b),null,{default:C(()=>[N(M.$slots,"toggle",{open:o.value,toggle:k,ui:T.value},()=>[n(i).toggle?(_(),L(Dn,Q({key:0},typeof n(i).toggle=="object"?n(i).toggle:{},{side:n(i).toggleSide,"data-slot":"toggle",class:T.value.toggle({class:n(i).ui?.toggle,toggleSide:n(i).toggleSide})}),null,16,["side","class"])):P("",!0)])]),_:3}),B(n(x),null,{default:C(()=>[N(M.$slots,"resize-handle",{onMouseDown:n(D),onTouchStart:n(R),onDoubleClick:n(A),ui:T.value},()=>[n(i).resizable?(_(),L(Bn,{key:0,"aria-controls":m,"data-slot":"handle",class:q(T.value.handle({class:n(i).ui?.handle})),onMousedown:n(D),onTouchstart:n(R),onDblclick:n(A)},null,8,["class","onMousedown","onTouchstart","onDblclick"])):P("",!0)])]),_:3}),n(i).side==="right"?(_(),L(n($),{key:0})):P("",!0),W("div",Q({id:m,ref_key:"el",ref:v,"data-slot":"root"},M.$attrs,{"data-collapsed":n(h),"data-dragging":n(y),class:T.value.root({class:[n(i).ui?.root,n(i).class]}),style:{"--width":`${n(d)||0}${n(g).unit}`}}),[s.header?(_(),V("div",{key:0,"data-slot":"header",class:q(T.value.header({class:n(i).ui?.header}))},[N(M.$slots,"header",{collapsed:n(h),collapse:n(c)})],2)):P("",!0),W("div",{"data-slot":"body",class:q(T.value.body({class:n(i).ui?.body}))},[N(M.$slots,"default",{collapsed:n(h),collapse:n(c)})],2),s.footer?(_(),V("div",{key:1,"data-slot":"footer",class:q(T.value.footer({class:n(i).ui?.footer}))},[N(M.$slots,"footer",{collapsed:n(h),collapse:n(c)})],2)):P("",!0)],16,Ks),n(i).side==="left"?(_(),L(n($),{key:1})):P("",!0),B(n(I),Q({open:o.value,"onUpdate:open":G[0]||(G[0]=J=>o.value=J),title:n(u)("dashboardSidebar.title"),description:n(u)("dashboardSidebar.description")},S.value,{ui:{overlay:T.value.overlay({class:n(i).ui?.overlay}),content:T.value.content({class:n(i).ui?.content})}}),{content:C(J=>[N(M.$slots,"content",Te(De(J)),()=>[s.header||n(i).mode!=="drawer"?(_(),V("div",{key:0,"data-slot":"header",class:q(T.value.header({class:n(i).ui?.header,menu:!0}))},[n(i).mode!=="drawer"&&n(i).toggleSide==="left"?(_(),L(n(f),{key:0})):P("",!0),N(M.$slots,"header",{collapsed:!1,collapse:()=>{}}),n(i).mode!=="drawer"&&n(i).toggleSide==="right"?(_(),L(n(f),{key:1})):P("",!0)],2)):P("",!0),W("div",{"data-slot":"body",class:q(T.value.body({class:n(i).ui?.body,menu:!0}))},[N(M.$slots,"default",{collapsed:!1,collapse:()=>{}})],2),s.footer?(_(),V("div",{key:1,"data-slot":"footer",class:q(T.value.footer({class:n(i).ui?.footer,menu:!0}))},[N(M.$slots,"footer",{collapsed:!1,collapse:()=>{}})],2)):P("",!0)])]),_:3},16,["open","title","description","ui"])],64))}});function _e(e){return Array.isArray?Array.isArray(e):Da(e)==="[object Array]"}function Us(e){if(typeof e=="string")return e;if(typeof e=="bigint")return e.toString();const t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function bt(e){return e==null?"":Us(e)}function le(e){return typeof e=="string"}function Ze(e){return typeof e=="number"}function Vs(e){return e===!0||e===!1||Ws(e)&&Da(e)=="[object Boolean]"}function Ta(e){return typeof e=="object"}function Ws(e){return Ta(e)&&e!==null}function de(e){return e!=null}function Qe(e){return!e.trim().length}function Da(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const Gs="Incorrect 'index' type",wt="Invalid doc index: must be a non-negative integer within the bounds of the docs array",Js=e=>`Invalid value for key ${e}`,Ys=e=>`Pattern length exceeds max of ${e}.`,Qs=e=>`Missing ${e} property in key`,Xs=e=>`Property 'weight' in key '${e}' must be a positive integer`,Zs="Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.",Qt=Object.prototype.hasOwnProperty;var ei=class{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(s=>{const i=Ba(s);this._keys.push(i),this._keyMap[i.id]=i,t+=i.weight}),this._keys.forEach(s=>{s.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function Ba(e){let t=null,s=null,i=null,o=1,a=null;if(le(e)||_e(e))i=e,t=Xt(e),s=et(e);else{if(!Qt.call(e,"name"))throw new Error(Qs("name"));const l=e.name;if(i=l,Qt.call(e,"weight")&&e.weight!==void 0&&(o=e.weight,o<=0))throw new Error(Xs(et(l)));t=Xt(l),s=et(l),a=e.getFn??null}return{path:t,id:s,weight:o,src:i,getFn:a}}function Xt(e){return _e(e)?e:e.split(".")}function et(e){return _e(e)?e.join("."):e}function ti(e,t){const s=[];let i=!1;const o=(a,l,u,r)=>{if(de(a))if(!l[u])s.push(r!==void 0?{v:a,i:r}:a);else{const g=a[l[u]];if(!de(g))return;if(u===l.length-1&&(le(g)||Ze(g)||Vs(g)||typeof g=="bigint"))s.push(r!==void 0?{v:bt(g),i:r}:bt(g));else if(_e(g)){i=!0;for(let m=0,v=g.length;m<v;m+=1)o(g[m],l,u+1,m)}else l.length&&o(g,l,u+1,r)}};return o(e,le(t)?t.split("."):t,0),i?s:s[0]}const ai={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},ni={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1},si={location:0,threshold:.6,distance:100},ii={useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:"any",getFn:ti,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},j=Object.freeze({...ni,...ai,...si,...ii});function oi(e){return e>=9&&e<=13||e===32||e===160}function li(e=1,t=3){const s=new Map,i=Math.pow(10,t);return{get(o){let a=0,l=!1;for(let r=0;r<o.length;r++)oi(o.charCodeAt(r))?l=!1:l||(a++,l=!0);if(a===0&&(a=1),s.has(a))return s.get(a);const u=Math.round(i/Math.pow(a,.5*e))/i;return s.set(a,u),u},clear(){s.clear()}}}var Ot=class{constructor({getFn:e=j.getFn,fieldNormWeight:t=j.fieldNormWeight}={}){this.norm=li(t,3),this.getFn=e,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((t,s)=>{this._keysMap[t.id]=s})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;const e=this.docs.length;this.records=new Array(e);let t=0;if(le(this.docs[0]))for(let s=0;s<e;s++){const i=this._createStringRecord(this.docs[s],s);i&&(this.records[t++]=i)}else for(let s=0;s<e;s++)this.records[t++]=this._createObjectRecord(this.docs[s],s);this.records.length=t,this.norm.clear()}add(e,t){if(!Number.isInteger(t)||t<0)throw new Error(wt);if(le(e)){const i=this._createStringRecord(e,t);return i&&this.records.push(i),i}const s=this._createObjectRecord(e,t);return this.records.push(s),s}removeAt(e){if(!Number.isInteger(e)||e<0)throw new Error(wt);for(let t=0,s=this.records.length;t<s;t+=1)if(this.records[t].i===e){this.records.splice(t,1);break}for(let t=0,s=this.records.length;t<s;t+=1)this.records[t].i>e&&(this.records[t].i-=1)}removeAll(e){const t=new Set;for(const i of e)Number.isInteger(i)&&i>=0&&t.add(i);if(t.size===0)return;this.records=this.records.filter(i=>!t.has(i.i));const s=Array.from(t).sort((i,o)=>i-o);for(const i of this.records){let o=0,a=s.length;for(;o<a;){const l=o+a>>>1;s[l]<i.i?o=l+1:a=l}i.i-=o}}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_createStringRecord(e,t){return!de(e)||Qe(e)?null:{v:e,i:t,n:this.norm.get(e)}}_createObjectRecord(e,t){const s={i:t,$:{}};for(let i=0,o=this.keys.length;i<o;i++){const a=this.keys[i],l=a.getFn?a.getFn(e):this.getFn(e,a.path);if(de(l)){if(_e(l)){const u=[];for(let r=0,g=l.length;r<g;r+=1){const m=l[r];if(de(m)){if(le(m)){if(!Qe(m)){const v={v:m,i:r,n:this.norm.get(m)};u.push(v)}}else if(de(m.v)){const v=le(m.v)?m.v:bt(m.v);if(!Qe(v)){const d={v,i:m.i,n:this.norm.get(v)};u.push(d)}}}}s.$[i]=u}else if(le(l)&&!Qe(l)){const u={v:l,n:this.norm.get(l)};s.$[i]=u}}}return s}toJSON(){return{keys:this.keys.map(({getFn:e,...t})=>t),records:this.records}}};function La(e,t,{getFn:s=j.getFn,fieldNormWeight:i=j.fieldNormWeight}={}){const o=new Ot({getFn:s,fieldNormWeight:i});return o.setKeys(e.map(Ba)),o.setSources(t),o.create(),o}function ri(e,{getFn:t=j.getFn,fieldNormWeight:s=j.fieldNormWeight}={}){const{keys:i,records:o}=e,a=new Ot({getFn:t,fieldNormWeight:s});return a.setKeys(i),a.setIndexRecords(o),a}function ui(e=[],t=j.minMatchCharLength){const s=[];let i=-1,o=-1,a=0;for(let l=e.length;a<l;a+=1){const u=e[a];u&&i===-1?i=a:!u&&i!==-1&&(o=a-1,o-i+1>=t&&s.push([i,o]),i=-1)}return e[a-1]&&a-i>=t&&s.push([i,a-1]),s}function ci(e,t,s,{location:i=j.location,distance:o=j.distance,threshold:a=j.threshold,findAllMatches:l=j.findAllMatches,minMatchCharLength:u=j.minMatchCharLength,includeMatches:r=j.includeMatches,ignoreLocation:g=j.ignoreLocation}={}){if(t.length>32)throw new Error(Ys(32));const m=t.length,v=e.length,d=Math.max(0,Math.min(i,v));let c=a,h=d;const y=(S,k)=>{const M=S/m;if(g)return M;const G=Math.abs(d-k);return o?M+G/o:G?1:M},D=u>1||r,R=D?Array(v):[];let A;for(;(A=e.indexOf(t,h))>-1;){const S=y(0,A);if(c=Math.min(S,c),h=A+m,D){let k=0;for(;k<m;)R[A+k]=1,k+=1}}h=-1;let b=[],f=1,x=0,$=m+v;const T=1<<m-1;for(let S=0;S<m;S+=1){let k=0,M=$;for(;k<M;)y(S,d+M)<=c?k=M:$=M,M=Math.floor(($-k)/2+k);$=M;let G=Math.max(1,d-M+1);const J=l?v:Math.min(d+M,v)+m,w=Array(J+2);w[J+1]=(1<<S)-1;for(let F=J;F>=G;F-=1){const p=F-1,U=s[e[p]];if(w[F]=(w[F+1]<<1|1)&U,S&&(w[F]|=(b[F+1]|b[F])<<1|1|b[F+1]),w[F]&T&&(f=y(S,p),f<=c)){if(c=f,h=p,x=S,h<=d)break;G=Math.max(1,2*d-h)}}if(y(S+1,d)>c)break;b=w}if(D&&h>=0){const S=Math.min(v-1,h+m-1+x);for(let k=h;k<=S;k+=1)s[e[k]]&&(R[k]=1)}const I={isMatch:h>=0,score:Math.max(.001,f)};if(D){const S=ui(R,u);S.length?r&&(I.indices=S):I.isMatch=!1}return I}function di(e){const t={};for(let s=0,i=e.length;s<i;s+=1){const o=e.charAt(s);t[o]=(t[o]||0)|1<<i-s-1}return t}function Rt(e){if(e.length<=1)return e;e.sort((s,i)=>s[0]-i[0]||s[1]-i[1]);const t=[e[0]];for(let s=1,i=e.length;s<i;s+=1){const o=t[t.length-1],a=e[s];a[0]<=o[1]+1?o[1]=Math.max(o[1],a[1]):t.push(a)}return t}const Ea={ł:"l",Ł:"L",đ:"d",Đ:"D",ø:"o",Ø:"O",ħ:"h",Ħ:"H",ŧ:"t",Ŧ:"T",ı:"i",ß:"ss"},fi=new RegExp("["+Object.keys(Ea).join("")+"]","g"),qe=typeof String.prototype.normalize=="function"?e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"").replace(fi,t=>Ea[t]):e=>e;var jt=class{constructor(e,{location:t=j.location,threshold:s=j.threshold,distance:i=j.distance,includeMatches:o=j.includeMatches,findAllMatches:a=j.findAllMatches,minMatchCharLength:l=j.minMatchCharLength,isCaseSensitive:u=j.isCaseSensitive,ignoreDiacritics:r=j.ignoreDiacritics,ignoreLocation:g=j.ignoreLocation}={}){if(this.options={location:t,threshold:s,distance:i,includeMatches:o,findAllMatches:a,minMatchCharLength:l,isCaseSensitive:u,ignoreDiacritics:r,ignoreLocation:g},e=u?e:e.toLowerCase(),e=r?qe(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const m=(d,c)=>{this.chunks.push({pattern:d,alphabet:di(d),startIndex:c})},v=this.pattern.length;if(v>32){let d=0;const c=v%32,h=v-c;for(;d<h;)m(this.pattern.substr(d,32),d),d+=32;if(c){const y=v-32;m(this.pattern.substr(y),y)}}else m(this.pattern,0)}searchIn(e){const{isCaseSensitive:t,ignoreDiacritics:s,includeMatches:i}=this.options;if(e=t?e:e.toLowerCase(),e=s?qe(e):e,this.pattern===e){if(e.length<this.options.minMatchCharLength)return{isMatch:!1,score:1};const h={isMatch:!0,score:0};return i&&(h.indices=[[0,e.length-1]]),h}const{location:o,distance:a,threshold:l,findAllMatches:u,minMatchCharLength:r,ignoreLocation:g}=this.options,m=[];let v=0,d=!1;this.chunks.forEach(({pattern:h,alphabet:y,startIndex:D})=>{const{isMatch:R,score:A,indices:b}=ci(e,h,y,{location:o+D,distance:a,threshold:l,findAllMatches:u,minMatchCharLength:r,includeMatches:i,ignoreLocation:g});R&&(d=!0),v+=A,R&&b&&m.push(...b)});const c={isMatch:d,score:d?v/this.chunks.length:1};return d&&i&&(c.indices=Rt(m)),c}};const pi=new Set(["fuzzy","include"]);function hi(e){return e.startsWith("inverse")}const kt=[{type:"exact",multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:e=>({type:"exact",search(t){const s=t===e;return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}})},{type:"include",multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:e=>({type:"include",search(t){let s=0,i;const o=[],a=e.length;for(;(i=t.indexOf(e,s))>-1;)s=i+a,o.push([i,s-1]);const l=!!o.length;return{isMatch:l,score:l?0:1,indices:o}}})},{type:"prefix-exact",multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:e=>({type:"prefix-exact",search(t){const s=t.startsWith(e);return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}})},{type:"inverse-prefix-exact",multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:e=>({type:"inverse-prefix-exact",search(t){const s=!t.startsWith(e);return{isMatch:s,score:s?0:1,indices:[0,t.length-1]}}})},{type:"inverse-suffix-exact",multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:e=>({type:"inverse-suffix-exact",search(t){const s=!t.endsWith(e);return{isMatch:s,score:s?0:1,indices:[0,t.length-1]}}})},{type:"suffix-exact",multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:e=>({type:"suffix-exact",search(t){const s=t.endsWith(e);return{isMatch:s,score:s?0:1,indices:[t.length-e.length,t.length-1]}}})},{type:"inverse-exact",multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:e=>({type:"inverse-exact",search(t){const s=t.indexOf(e)===-1;return{isMatch:s,score:s?0:1,indices:[0,t.length-1]}}})},{type:"fuzzy",multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(e,t={})=>{const s=new jt(e,{location:t.location??j.location,threshold:t.threshold??j.threshold,distance:t.distance??j.distance,includeMatches:t.includeMatches??j.includeMatches,findAllMatches:t.findAllMatches??j.findAllMatches,minMatchCharLength:t.minMatchCharLength??j.minMatchCharLength,isCaseSensitive:t.isCaseSensitive??j.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics??j.ignoreDiacritics,ignoreLocation:t.ignoreLocation??j.ignoreLocation});return{type:"fuzzy",search(i){return s.searchIn(i)}}}}],Zt=kt.length,mi="\0",vi="|";function gi(e){const t=[],s=e.length;let i=0;for(;i<s;){for(;i<s&&e[i]===" ";)i++;if(i>=s)break;let o=i;for(;o<s&&e[o]!==" "&&e[o]!=='"';)o++;if(o<s&&e[o]==='"'){for(o++;o<s;){if(e[o]==='"'){const a=o+1;if(a>=s||e[a]===" "){o++;break}if(e[a]==="$"&&(a+1>=s||e[a+1]===" ")){o+=2;break}}o++}t.push(e.substring(i,o)),i=o}else{for(;o<s&&e[o]!==" ";)o++;t.push(e.substring(i,o)),i=o}}return t}function ea(e,t){const s=e.match(t);return s?s[1]:null}function yi(e,t={}){return e.replace(/\\\|/g,mi).split(vi).map(s=>{const i=gi(s.replace(/\u0000/g,"|").trim()).filter(a=>a&&!!a.trim()),o=[];for(let a=0,l=i.length;a<l;a+=1){const u=i[a];let r=!1,g=-1;for(;!r&&++g<Zt;){const m=kt[g],v=ea(u,m.multiRegex);v&&(o.push(m.create(v,t)),r=!0)}if(!r)for(g=-1;++g<Zt;){const m=kt[g],v=ea(u,m.singleRegex);if(v){o.push(m.create(v,t));break}}}return o})}var bi=class{constructor(e,{isCaseSensitive:t=j.isCaseSensitive,ignoreDiacritics:s=j.ignoreDiacritics,includeMatches:i=j.includeMatches,minMatchCharLength:o=j.minMatchCharLength,ignoreLocation:a=j.ignoreLocation,findAllMatches:l=j.findAllMatches,location:u=j.location,threshold:r=j.threshold,distance:g=j.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:s,includeMatches:i,minMatchCharLength:o,findAllMatches:l,ignoreLocation:a,location:u,threshold:r,distance:g},e=t?e:e.toLowerCase(),e=s?qe(e):e,this.pattern=e,this.query=yi(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:s,isCaseSensitive:i,ignoreDiacritics:o}=this.options;e=i?e:e.toLowerCase(),e=o?qe(e):e;let a=0;const l=[];let u=0,r=!1;for(let g=0,m=t.length;g<m;g+=1){const v=t[g];l.length=0,a=0,r=!1;for(let d=0,c=v.length;d<c;d+=1){const h=v[d],{isMatch:y,indices:D,score:R}=h.search(e);if(y)a+=1,u+=R,hi(h.type)&&(r=!0),s&&(pi.has(h.type)?l.push(...D):l.push(D));else{u=0,a=0,l.length=0,r=!1;break}}if(a){const d={isMatch:!0,score:u/a};return r&&(d.hasInverse=!0),s&&(d.indices=Rt(l)),d}}return{isMatch:!1,score:1}}};const _t=[];function Ft(...e){_t.push(...e)}function ot(e,t){for(let s=0,i=_t.length;s<i;s+=1){const o=_t[s];if(o.condition(e,t))return new o(e,t)}return new jt(e,t)}const lt={AND:"$and",OR:"$or"},St={PATH:"$path",PATTERN:"$val"},xt=e=>!!(e[lt.AND]||e[lt.OR]),wi=e=>!!e[St.PATH],ki=e=>!_e(e)&&Ta(e)&&!xt(e),ta=e=>({[lt.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function Ma(e,t,{auto:s=!0}={}){const i=o=>{if(le(o)){const r={keyId:null,pattern:o};return s&&(r.searcher=ot(o,t)),r}const a=Object.keys(o),l=wi(o);if(!l&&a.length>1&&!xt(o))return i(ta(o));if(ki(o)){const r=l?o[St.PATH]:a[0],g=l?o[St.PATTERN]:o[r];if(!le(g))throw new Error(Js(r));const m={keyId:et(r),pattern:g};return s&&(m.searcher=ot(g,t)),m}const u={children:[],operator:a[0]};return a.forEach(r=>{const g=o[r];_e(g)&&g.forEach(m=>{u.children.push(i(m))})}),u};return xt(e)||(e=ta(e)),i(e)}function $t(e,{ignoreFieldNorm:t=j.ignoreFieldNorm}){let s=1;return e.forEach(({key:i,norm:o,score:a})=>{const l=i?i.weight:null;s*=Math.pow(a===0&&l?Number.EPSILON:a,(l||1)*(t?1:o))}),s}function _i(e,{ignoreFieldNorm:t=j.ignoreFieldNorm}){e.forEach(s=>{s.score=$t(s.matches,{ignoreFieldNorm:t})})}var Si=class{constructor(e,t){this.limit=e,this.heap=[],this.comparator=t}get size(){return this.heap.length}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):this.comparator(e,this.heap[0])<0&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(){return this.heap.sort(this.comparator)}_bubbleUp(e){const t=this.heap;for(;e>0;){const s=e-1>>1;if(this.comparator(t[e],t[s])<=0)break;const i=t[e];t[e]=t[s],t[s]=i,e=s}}_sinkDown(e){const t=this.heap,s=t.length;let i=e;do{e=i;const o=2*e+1,a=2*e+2;if(o<s&&this.comparator(t[o],t[i])>0&&(i=o),a<s&&this.comparator(t[a],t[i])>0&&(i=a),i!==e){const l=t[e];t[e]=t[i],t[i]=l}}while(i!==e)}};function xi(e){const t=[];return e.matches.forEach(s=>{if(!de(s.indices)||!s.indices.length)return;const i={indices:s.indices,value:s.value};s.key&&(i.key=s.key.id),s.idx>-1&&(i.refIndex=s.idx),t.push(i)}),t}function $i(e,t,{includeMatches:s=j.includeMatches,includeScore:i=j.includeScore}={}){return e.map(o=>{const{idx:a}=o,l={item:t[a],refIndex:a};return s&&(l.matches=xi(o)),i&&(l.score=o.score),l})}const Ii=/[\p{L}\p{M}\p{N}_]+/gu,aa=new WeakSet;function Ci(e){aa.has(e)||(aa.add(e),console.warn(`[Fuse] tokenize regex ${e} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function Ai(e){if(typeof e=="function"){let t=!1;return s=>{const i=e(s);if(!t&&(t=!0,!Array.isArray(i)||i.some(o=>typeof o!="string")))throw new Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(i)?"array containing non-strings":typeof i}.`);return i}}return e instanceof RegExp?(e.global||Ci(e),t=>t.match(e)||[]):t=>t.match(Ii)||[]}function It({isCaseSensitive:e=!1,ignoreDiacritics:t=!1,tokenize:s}={}){const i=Ai(s);return{tokenize(o){return e||(o=o.toLowerCase()),t&&(o=qe(o)),i(o)}}}var Ti=class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=It({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,tokenize:t.tokenize});const s=this.analyzer.tokenize(e),{df:i,fieldCount:o}=t._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(const a of s){this.termSearchers.push(new jt(a,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));const l=i.get(a)||0,u=Math.log(1+(o-l+.5)/(l+.5));this.idfWeights.push(u)}this.combineAll=t.tokenMatch==="all",this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};const t=[];let s=0,i=0,o=0,a=0;const l=this.combineAll&&!this.useMask?new Set:null;for(let g=0;g<this.termSearchers.length;g++){const m=this.termSearchers[g].searchIn(e),v=this.idfWeights[g];i+=v,m.isMatch&&(o++,s+=v*(1-m.score),m.indices&&t.push(...m.indices),this.combineAll&&(this.useMask?a|=1<<g:l.add(g)))}if(o===0)return{isMatch:!1,score:1};const u=i>0?1-s/i:0,r={isMatch:!0,score:Math.max(.001,u)};return this.options.includeMatches&&t.length&&(r.indices=Rt(t)),this.combineAll&&(this.useMask?r.matchedMask=a:r.matchedTerms=l,r.termCount=this.numTerms),r}};function pt(e,t,s,i){const o=i.tokenize(t);if(!o.length)return;e.fieldCount++,e.docFieldCount.set(s,(e.docFieldCount.get(s)||0)+1);const a=new Set(o);let l=e.docTermFieldHits.get(s);l||(l=new Map,e.docTermFieldHits.set(s,l));for(const u of a)l.set(u,(l.get(u)||0)+1),e.df.set(u,(e.df.get(u)||0)+1)}function Oa(e,t,s,i){const{i:o,v:a,$:l}=t;if(a!==void 0){pt(e,a,o,i);return}if(l)for(let u=0;u<s;u++){const r=l[u];if(r)if(Array.isArray(r))for(const g of r)pt(e,g.v,o,i);else pt(e,r.v,o,i)}}function Di(e,t,s){const i={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(const o of e)Oa(i,o,t,s);return i}function Bi(e,t,s,i){Oa(e,t,s,i)}function Li(e,t){const s=e.docFieldCount.get(t);if(s===void 0)return;e.fieldCount-=s,e.docFieldCount.delete(t);const i=e.docTermFieldHits.get(t);if(i){for(const[o,a]of i){const l=(e.df.get(o)||0)-a;l<=0?e.df.delete(o):e.df.set(o,l)}e.docTermFieldHits.delete(t)}}function na(e,t){if(t.length===0)return;const s=Array.from(new Set(t)).sort((u,r)=>u-r);for(const u of s)Li(e,u);const i=u=>{let r=0,g=s.length;for(;r<g;){const m=r+g>>>1;s[m]<u?r=m+1:g=m}return u-r},o=s[0],a=new Map;for(const[u,r]of e.docFieldCount)a.set(u>o?i(u):u,r);e.docFieldCount=a;const l=new Map;for(const[u,r]of e.docTermFieldHits)l.set(u>o?i(u):u,r);e.docTermFieldHits=l}var Se=class{constructor(e,t,s){this.options={...j,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new ei(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,s),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;const t=ot(e,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=e,this._lastSearcher=t,t}setCollection(e,t){if(this._docs=e,t&&!(t instanceof Ot))throw new Error(Gs);if(this._myIndex=t||La(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){const s=It({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=Di(this._myIndex.records,this._myIndex.keys.length,s)}this._invalidateSearcherCache()}add(e){if(!de(e))return;this._docs.push(e);const t=this._myIndex.add(e,this._docs.length-1);if(this._invertedIndex&&t){const s=It({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});Bi(this._invertedIndex,t,this._myIndex.keys.length,s)}this._invalidateSearcherCache()}remove(e=()=>!1){const t=[],s=[];for(let i=0,o=this._docs.length;i<o;i+=1)e(this._docs[i],i)&&(t.push(this._docs[i]),s.push(i));if(s.length){this._invertedIndex&&na(this._invertedIndex,s);const i=new Set(s);this._docs=this._docs.filter((o,a)=>!i.has(a)),this._myIndex.removeAll(s),this._invalidateSearcherCache()}return t}removeAt(e){if(!Number.isInteger(e)||e<0||e>=this._docs.length)throw new Error(wt);this._invertedIndex&&na(this._invertedIndex,[e]);const t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),this._invalidateSearcherCache(),t}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}_normalizedKeys(){return this._myIndex.keys.map(e=>this._keyStore.get(e.id)||e)}search(e,t){const{limit:s=-1}=t||{},{includeMatches:i,includeScore:o,shouldSort:a,sortFn:l,ignoreFieldNorm:u}=this.options;if(le(e)&&!e.trim()){let d=this._docs.map((c,h)=>({item:c,refIndex:h}));return Ze(s)&&s>-1&&(d=d.slice(0,s)),d}const r=a&&Ze(s)&&s>0&&le(e),g=l,m=(d,c)=>g(d,c)||d.idx-c.idx;let v;if(r){const d=new Si(s,m);le(this._docs[0])?this._searchStringList(e,{heap:d,ignoreFieldNorm:u}):this._searchObjectList(e,{heap:d,ignoreFieldNorm:u}),v=d.extractSorted()}else v=le(e)?le(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),_i(v,{ignoreFieldNorm:u}),a&&v.sort(le(e)?m:g),Ze(s)&&s>-1&&(v=v.slice(0,s));return $i(v,this._docs,{includeMatches:i,includeScore:o})}_searchStringList(e,{heap:t,ignoreFieldNorm:s}={}){const i=this._getSearcher(e),o=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:a}=this._myIndex,l=t?null:[];return a.forEach(({v:u,i:r,n:g})=>{if(!de(u))return;const m=i.searchIn(u);if(m.isMatch){const v={score:m.score,value:u,norm:g,indices:m.indices};o&&(v.matchedMask=m.matchedMask,v.matchedTerms=m.matchedTerms,v.termCount=m.termCount);const d=[v];if(!o||this._coversAllTokens(d)){const c={item:u,idx:r,matches:d};t?(c.score=$t(c.matches,{ignoreFieldNorm:s}),t.insert(c)):l.push(c)}}}),l}_searchLogical(e){const t=Ma(e,this.options),s=this._normalizedKeys(),i=(u,r,g)=>{if(!("children"in u)){const{keyId:c,searcher:h}=u;let y;return c===null?(y=[],s.forEach((D,R)=>{y.push(...this._findMatches({key:D,value:r[R],searcher:h}))})):y=this._findMatches({key:this._keyStore.get(c),value:this._myIndex.getValueForItemAtKeyId(r,c),searcher:h}),y&&y.length?[{idx:g,item:r,matches:y}]:[]}const{children:m,operator:v}=u,d=[];for(let c=0,h=m.length;c<h;c+=1){const y=m[c],D=i(y,r,g);if(D.length)d.push(...D);else if(v===lt.AND)return[]}return d},o=this._myIndex.records,a=new Map,l=[];return o.forEach(({$:u,i:r})=>{if(de(u)){const g=i(t,u,r);g.length&&(a.has(r)||(a.set(r,{idx:r,item:u,matches:[]}),l.push(a.get(r))),g.forEach(({matches:m})=>{a.get(r).matches.push(...m)}))}}),l}_searchObjectList(e,{heap:t,ignoreFieldNorm:s}={}){const i=this._getSearcher(e),o=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:a}=this._myIndex,l=this._normalizedKeys(),u=t?null:[];return a.forEach(({$:r,i:g})=>{if(!de(r))return;const m=[];let v=!1,d=!1;if(l.forEach((c,h)=>{const y=this._findMatches({key:c,value:r[h],searcher:i});y.length?(m.push(...y),y[0].hasInverse&&(d=!0)):v=!0}),!(d&&v)&&m.length&&(!o||this._coversAllTokens(m))){const c={idx:g,item:r,matches:m};t?(c.score=$t(c.matches,{ignoreFieldNorm:s}),t.insert(c)):u.push(c)}}),u}_findMatches({key:e,value:t,searcher:s}){if(!de(t))return[];const i=[];if(_e(t))t.forEach(({v:o,i:a,n:l})=>{if(!de(o))return;const u=s.searchIn(o);if(u.isMatch){const r={score:u.score,key:e,value:o,idx:a,norm:l,indices:u.indices,hasInverse:u.hasInverse};u.termCount!==void 0&&(r.matchedMask=u.matchedMask,r.matchedTerms=u.matchedTerms,r.termCount=u.termCount),i.push(r)}});else{const{v:o,n:a}=t,l=s.searchIn(o);if(l.isMatch){const u={score:l.score,key:e,value:o,norm:a,indices:l.indices,hasInverse:l.hasInverse};l.termCount!==void 0&&(u.matchedMask=l.matchedMask,u.matchedTerms=l.matchedTerms,u.termCount=l.termCount),i.push(u)}}return i}_coversAllTokens(e){const t=e.length?e[0].termCount:void 0;if(t===void 0)return!0;if(t<=31){let i=0;for(let o=0;o<e.length;o++)i|=e[o].matchedMask||0;return i===2**t-1}const s=new Set;for(let i=0;i<e.length;i++){const o=e[i].matchedTerms;if(o)for(const a of o)s.add(a)}return s.size===t}};Se.version="7.5.0";Se.createIndex=La;Se.parseIndex=ri;Se.config=j;Se.match=function(e,t,s){if(s&&s.useTokenSearch)throw new Error(Zs);return ot(e,{...j,...s}).searchIn(t)};Se.parseQuery=Ma;Ft(bi);Ft(Ti);Se.use=function(...e){e.forEach(t=>Ft(t))};var Ei=Se;function Mi(e,t,s){const i=()=>{var a,l;return new Ei((a=ge(t))!==null&&a!==void 0?a:[],(l=ge(s))===null||l===void 0?void 0:l.fuseOptions)},o=cn(i());return re(()=>{var a;return(a=ge(s))===null||a===void 0?void 0:a.fuseOptions},()=>{o.value=i()},{deep:!0}),re(()=>ge(t),a=>{o.value.setCollection(a)},{deep:!0}),{fuse:o,results:O(()=>{const a=ge(s);if(a?.matchAllWhenSearchEmpty&&!ge(e))return ge(t).map((u,r)=>({item:u,refIndex:r}));const l=a?.resultLimit;return o.value.search(ge(e),l?{limit:l}:void 0)})}}const Oi={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function Ri(e){return e.replace(/[&<>"']/g,t=>Oi[t])}function ji(e){return/&(?:amp|lt|gt|quot|#39);/.test(e)}function ht(e){return ji(e)?e:Ri(e)}function Fi(e,t){let s="",i=0,o=!1;for(let a=e.length-1;a>=0;a--){if(e[a]===">")o=!0;else if(e[a]==="<"){o=!1,s=e[a]+s;continue}if(o||i++,i<=t)s=e[a]+s;else{s="..."+s;break}}return s}function mt(e,t,s,i,o){const a=o?t.match(/[\p{L}\p{M}\p{N}_]+/gu)||[]:[],l=a.length>0?Math.min(...a.map(r=>r.length)):t.length;function u(r,g=[]){r=r||"";let m="",v=0;g.forEach(c=>{if(c.length===2&&c[0]===c[1])return;const h=c[1]+1,y=h-c[0]>=l;m+=[ht(r.substring(v,c[0])),y&&"<mark>",ht(r.substring(c[0],h)),y&&"</mark>"].filter(Boolean).join(""),v=h}),m+=ht(r.substring(v));const d=m.indexOf("<mark>");return d!==-1&&(m=Fi(m,m.length-d)),m}if(e.matches?.length){for(const r of e.matches)if(!(s&&r.key!==s)&&!i?.includes(r.key))return u(r.value,r.indices)}}const Pi={slots:{root:"flex flex-col min-h-0 min-w-0 divide-y divide-default",input:"",close:"",back:"p-0",content:"relative overflow-hidden flex flex-col",footer:"p-1",viewport:"relative scroll-py-1 overflow-y-auto flex-1 focus:outline-none",group:"p-1 isolate",empty:"text-center text-muted",label:"font-semibold text-highlighted",item:"group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",itemLeadingIcon:"shrink-0",itemLeadingAvatar:"shrink-0",itemLeadingAvatarSize:"",itemLeadingChip:"shrink-0",itemLeadingChipSize:"",itemTrailing:"ms-auto inline-flex items-center",itemTrailingIcon:"shrink-0",itemTrailingHighlightedIcon:"shrink-0 text-dimmed hidden group-data-highlighted:inline-flex",itemTrailingKbds:"hidden lg:inline-flex items-center shrink-0",itemTrailingKbdsSize:"",itemWrapper:"flex-1 flex flex-col text-start min-w-0",itemLabel:"truncate space-x-1 text-dimmed",itemLabelBase:"text-highlighted [&>mark]:text-primary [&>mark]:bg-primary/15",itemLabelPrefix:"text-default",itemLabelSuffix:"text-dimmed [&>mark]:text-primary [&>mark]:bg-primary/15",itemDescription:"truncate text-muted [&>mark]:text-primary [&>mark]:bg-primary/15"},variants:{virtualize:{true:{viewport:"p-1 isolate"},false:{viewport:"divide-y divide-default"}},size:{xs:{input:"[&>input]:h-10",empty:"py-3 text-xs",label:"p-1 text-[10px]/3 gap-1",item:"p-1 text-xs gap-1",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemLeadingChip:"size-4",itemLeadingChipSize:"sm",itemTrailing:"gap-1",itemTrailingIcon:"size-4",itemTrailingHighlightedIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},sm:{input:"[&>input]:h-11",empty:"py-4 text-xs",label:"p-1.5 text-[10px]/3 gap-1.5",item:"p-1.5 text-xs gap-1.5",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemLeadingChip:"size-4",itemLeadingChipSize:"sm",itemTrailing:"gap-1.5",itemTrailingIcon:"size-4",itemTrailingHighlightedIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},md:{input:"[&>input]:h-12",empty:"py-6 text-sm",label:"p-1.5 text-xs gap-1.5",item:"p-1.5 text-sm gap-1.5",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemLeadingChip:"size-5",itemLeadingChipSize:"md",itemTrailing:"gap-1.5",itemTrailingIcon:"size-5",itemTrailingHighlightedIcon:"size-5",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"md"},lg:{input:"[&>input]:h-13",empty:"py-7 text-sm",label:"p-2 text-xs gap-2",item:"p-2 text-sm gap-2",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemLeadingChip:"size-5",itemLeadingChipSize:"md",itemTrailing:"gap-2",itemTrailingIcon:"size-5",itemTrailingHighlightedIcon:"size-5",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"md"},xl:{input:"[&>input]:h-14",empty:"py-8 text-base",label:"p-2 text-sm gap-2",item:"p-2 text-base gap-2",itemLeadingIcon:"size-6",itemLeadingAvatarSize:"xs",itemLeadingChip:"size-6",itemLeadingChipSize:"lg",itemTrailing:"gap-2",itemTrailingIcon:"size-6",itemTrailingHighlightedIcon:"size-6",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"lg"}},active:{true:{item:"text-highlighted before:bg-elevated",itemLeadingIcon:"text-default"},false:{item:["text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50","transition-colors before:transition-colors"],itemLeadingIcon:["text-dimmed group-data-highlighted:not-group-data-disabled:text-default","transition-colors"]}},loading:{true:{itemLeadingIcon:"animate-spin"}}},defaultVariants:{size:"md"}},zi=["innerHTML"],qi=["innerHTML"],Ni=["innerHTML"],Ki=Object.assign({inheritAttrs:!1},{__name:"UCommandPalette",props:it({as:{type:null,required:!1},size:{type:null,required:!1},icon:{type:[String,Boolean],required:!1,skipCheck:!0},trailingIcon:{type:null,required:!1},selectedIcon:{type:null,required:!1},childrenIcon:{type:null,required:!1},placeholder:{type:String,required:!1},autofocus:{type:Boolean,required:!1,default:!0},close:{type:[Boolean,Object],required:!1},closeIcon:{type:null,required:!1},back:{type:[Boolean,Object],required:!1,default:!0},backIcon:{type:null,required:!1},input:{type:[Boolean,Object],required:!1,default:!0},groups:{type:Array,required:!1},fuse:{type:Object,required:!1},virtualize:{type:[Boolean,Object],required:!1,default:!1},valueKey:{type:null,required:!1},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},preserveGroupOrder:{type:Boolean,required:!1,default:!1},searchDelay:{type:Number,required:!1,default:0},class:{type:null,required:!1},ui:{type:Object,required:!1},multiple:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},highlightOnHover:{type:Boolean,required:!1,default:!0},selectionBehavior:{type:String,required:!1},by:{type:[String,Function],required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},{searchTerm:{type:String,default:""},searchTermModifiers:{}}),emits:it(["update:modelValue","highlight","entryFocus","leave","update:open"],["update:searchTerm"]),setup(e,{emit:t}){const s=e,i=t,o=Ee(),a=Me("commandPalette",s),l=ze(e,"searchTerm",{type:String,default:""}),{t:u}=Ne(),r=Ce(),g=Pe(st(a,"as","disabled","multiple","modelValue","defaultValue","highlightOnHover","by"),i),m=Be(()=>a.virtualize?Le(typeof a.virtualize=="boolean"?{}:a.virtualize,{estimateSize:Xn(I.value,"md",a.descriptionKey,!!o["item-description"])}):!1),[v,d]=at({props:{item:{type:Object,required:!0},group:{type:Object,required:!1},index:{type:Number,required:!1}}}),c=O(()=>Oe({extend:Pi,...r.ui?.commandPalette||{}})({size:a.size,virtualize:!!a.virtualize})),h=O(()=>Le({},a.fuse,{fuseOptions:{ignoreLocation:!0,threshold:.1,keys:[a.labelKey,a.descriptionKey,"suffix"]},resultLimit:12,matchAllWhenSearchEmpty:!0})),y=H([]),D=O(()=>y.value[y.value.length-1]?.placeholder||a.placeholder||u("commandPalette.placeholder")),R=O(()=>y.value?.length?[y.value[y.value.length-1]]:a.groups),A=O(()=>R.value?.filter(w=>w.id?!w.ignoreFilter:(console.warn("[@nuxt/ui] CommandPalette group is missing an `id` property"),!1))?.flatMap(w=>w.items?.map(F=>({...F,group:w.id}))||[])||[]),b=dn(l,()=>a.searchDelay),{results:f}=Mi(b,A,h),x=fn(f,16,!0);function $(w,F){let p=F;return w?.postFilter&&typeof w.postFilter=="function"&&(p=w.postFilter(b.value,p)),{...w,items:p.slice(0,h.value.resultLimit).map(U=>({...U,labelHtml:U.labelHtml??mt(U,b.value,a.labelKey,void 0,h.value.fuseOptions?.useTokenSearch),suffixHtml:U.suffixHtml??mt(U,b.value,"suffix",[a.labelKey],h.value.fuseOptions?.useTokenSearch),descriptionHtml:U.descriptionHtml??mt(U,b.value,a.descriptionKey,[a.labelKey,"suffix"],h.value.fuseOptions?.useTokenSearch)}))}}const T=O(()=>{const w=R.value,F=x.value.reduce((E,K)=>{const{item:se,matches:te}=K;return se.group&&(E[se.group]||=[],E[se.group]?.push({...se,matches:te})),E},{});if(a.preserveGroupOrder){const E=[];for(const K of w||[]){if(!K.items?.length)continue;const se=K.ignoreFilter?K.items:F[K.id];if(!se?.length)continue;const te=$(K,se);te.items?.length&&E.push(te)}return E}const U=[...Object.entries(F).map(([E,K])=>{const se=w?.find(be=>be.id===E);if(!se)return;const te=$(se,K);return te.items?.length?te:void 0}).filter(E=>!!E)];for(const E of w||[]){if(!E.ignoreFilter||!E.items?.length)continue;const K=$(E,E.items);if(!K.items?.length)continue;const se=w.indexOf(E),te=new Set;for(let me=0;me<se;me++)te.add(w[me].id);let be=-1;for(let me=0;me<U.length;me++)te.has(U[me].id)&&(be=me);U.splice(be+1,0,K)}return U}),I=O(()=>T.value.flatMap(w=>w.items||[])),S=ha("rootRef");re(T,()=>{Dt(()=>{const w=S.value;w?.$el?.contains(document.activeElement)?w?.highlightFirstItem():w?.highlightSelected(void 0,!1)})});function k(w){w.children?.length&&(y.value.push({id:`history-${y.value.length}`,label:w.label,slot:w.slot,placeholder:w.placeholder,items:w.children}),l.value="",S.value?.highlightFirstItem())}function M(){y.value.length&&(y.value.pop(),l.value="",S.value?.highlightFirstItem())}function G(){l.value||M()}function J(w,F){F.children?.length?(w.preventDefault(),k(F)):F.onSelect?.(w)}return(w,F)=>(_(),V(pe,null,[B(n(v),null,{default:C(({item:p,index:U,group:E})=>[B(ma,Q(n(pn)(p),{custom:""}),{default:C(({active:K,...se})=>[B(n(Un),{value:n(a).valueKey?n(ve)(p,n(a).valueKey):n(nt)(p,["matches","group","onSelect","labelHtml","suffixHtml","descriptionHtml","children"]),disabled:p.disabled,"as-child":"",onSelect:te=>J(te,p)},{default:C(()=>[B(hn,Q(se,{"data-slot":"item",class:c.value.item({class:[n(a).ui?.item,p.ui?.item,p.class],active:K||p.active})}),{default:C(()=>[N(w.$slots,p.slot||E?.slot||"item",{item:p,index:U,ui:c.value},()=>[N(w.$slots,p.slot?`${p.slot}-leading`:E?.slot?`${E.slot}-leading`:"item-leading",{item:p,index:U,ui:c.value},()=>[p.loading?(_(),L(Ie,{key:0,name:n(a).loadingIcon||n(r).ui.icons.loading,"data-slot":"itemLeadingIcon",class:q(c.value.itemLeadingIcon({class:[n(a).ui?.itemLeadingIcon,p.ui?.itemLeadingIcon],loading:!0}))},null,8,["name","class"])):p.icon?(_(),L(Ie,{key:1,name:p.icon,"data-slot":"itemLeadingIcon",class:q(c.value.itemLeadingIcon({class:[n(a).ui?.itemLeadingIcon,p.ui?.itemLeadingIcon],active:K||p.active}))},null,8,["name","class"])):p.avatar?(_(),L(mn,Q({key:2,size:p.ui?.itemLeadingAvatarSize||n(a).ui?.itemLeadingAvatarSize||c.value.itemLeadingAvatarSize()},p.avatar,{"data-slot":"itemLeadingAvatar",class:c.value.itemLeadingAvatar({class:[n(a).ui?.itemLeadingAvatar,p.ui?.itemLeadingAvatar],active:K||p.active})}),null,16,["size","class"])):p.chip?(_(),L(vn,Q({key:3,size:p.ui?.itemLeadingChipSize||n(a).ui?.itemLeadingChipSize||c.value.itemLeadingChipSize(),inset:"",standalone:""},p.chip,{"data-slot":"itemLeadingChip",class:c.value.itemLeadingChip({class:[n(a).ui?.itemLeadingChip,p.ui?.itemLeadingChip],active:K||p.active})}),null,16,["size","class"])):P("",!0)]),p.prefix||p.labelHtml||n(ve)(p,n(a).labelKey)||p.suffixHtml||p.suffix||o[p.slot?`${p.slot}-label`:E?.slot?`${E.slot}-label`:"item-label"]||n(ve)(p,n(a).descriptionKey)||o[p.slot?`${p.slot}-description`:E?.slot?`${E.slot}-description`:"item-description"]?(_(),V("span",{key:0,"data-slot":"itemWrapper",class:q(c.value.itemWrapper({class:[n(a).ui?.itemWrapper,p.ui?.itemWrapper]}))},[W("span",{"data-slot":"itemLabel",class:q(c.value.itemLabel({class:[n(a).ui?.itemLabel,p.ui?.itemLabel],active:K||p.active}))},[N(w.$slots,p.slot?`${p.slot}-label`:E?.slot?`${E.slot}-label`:"item-label",{item:p,index:U,ui:c.value},()=>[p.prefix?(_(),V("span",{key:0,"data-slot":"itemLabelPrefix",class:q(c.value.itemLabelPrefix({class:[n(a).ui?.itemLabelPrefix,p.ui?.itemLabelPrefix]}))},oe(p.prefix),3)):P("",!0),p.labelHtml?(_(),V("span",{key:1,"data-slot":"itemLabelBase",class:q(c.value.itemLabelBase({class:[n(a).ui?.itemLabelBase,p.ui?.itemLabelBase],active:K||p.active})),innerHTML:p.labelHtml},null,10,zi)):(_(),V("span",{key:2,"data-slot":"itemLabelBase",class:q(c.value.itemLabelBase({class:[n(a).ui?.itemLabelBase,p.ui?.itemLabelBase],active:K||p.active}))},oe(n(ve)(p,n(a).labelKey)),3)),p.suffixHtml?(_(),V("span",{key:3,"data-slot":"itemLabelSuffix",class:q(c.value.itemLabelSuffix({class:[n(a).ui?.itemLabelSuffix,p.ui?.itemLabelSuffix],active:K||p.active})),innerHTML:p.suffixHtml},null,10,qi)):p.suffix?(_(),V("span",{key:4,"data-slot":"itemLabelSuffix",class:q(c.value.itemLabelSuffix({class:[n(a).ui?.itemLabelSuffix,p.ui?.itemLabelSuffix],active:K||p.active}))},oe(p.suffix),3)):P("",!0)])],2),p.descriptionHtml?(_(),V("span",{key:0,"data-slot":"itemDescription",class:q(c.value.itemDescription({class:[n(a).ui?.itemDescription,p.ui?.itemDescription]})),innerHTML:p.descriptionHtml},null,10,Ni)):n(ve)(p,n(a).descriptionKey)||o[p.slot?`${p.slot}-description`:E?.slot?`${E.slot}-description`:"item-description"]?(_(),V("span",{key:1,"data-slot":"itemDescription",class:q(c.value.itemDescription({class:[n(a).ui?.itemDescription,p.ui?.itemDescription]}))},[N(w.$slots,p.slot?`${p.slot}-description`:E?.slot?`${E.slot}-description`:"item-description",{item:p,index:U,ui:c.value},()=>[ce(oe(n(ve)(p,n(a).descriptionKey)),1)])],2)):P("",!0)],2)):P("",!0),W("span",{"data-slot":"itemTrailing",class:q(c.value.itemTrailing({class:[n(a).ui?.itemTrailing,p.ui?.itemTrailing]}))},[N(w.$slots,p.slot?`${p.slot}-trailing`:E?.slot?`${E.slot}-trailing`:"item-trailing",{item:p,index:U,ui:c.value},()=>[p.children&&p.children.length>0?(_(),L(Ie,{key:0,name:n(a).childrenIcon||n(r).ui.icons.chevronRight,"data-slot":"itemTrailingIcon",class:q(c.value.itemTrailingIcon({class:[n(a).ui?.itemTrailingIcon,p.ui?.itemTrailingIcon]}))},null,8,["name","class"])):p.kbds?.length?(_(),V("span",{key:1,"data-slot":"itemTrailingKbds",class:q(c.value.itemTrailingKbds({class:[n(a).ui?.itemTrailingKbds,p.ui?.itemTrailingKbds]}))},[(_(!0),V(pe,null,we(p.kbds,(te,be)=>(_(),L(la,Q({key:be,size:p.ui?.itemTrailingKbdsSize||n(a).ui?.itemTrailingKbdsSize||c.value.itemTrailingKbdsSize()},{ref_for:!0},typeof te=="string"?{value:te}:te),null,16,["size"]))),128))],2)):E?.highlightedIcon?(_(),L(Ie,{key:2,name:E.highlightedIcon,"data-slot":"itemTrailingHighlightedIcon",class:q(c.value.itemTrailingHighlightedIcon({class:[n(a).ui?.itemTrailingHighlightedIcon,p.ui?.itemTrailingHighlightedIcon]}))},null,8,["name","class"])):P("",!0)]),p.children?.length?P("",!0):(_(),L(n(Vn),{key:0,"as-child":""},{default:C(()=>[B(Ie,{name:n(a).selectedIcon||n(r).ui.icons.check,"data-slot":"itemTrailingIcon",class:q(c.value.itemTrailingIcon({class:[n(a).ui?.itemTrailingIcon,p.ui?.itemTrailingIcon]}))},null,8,["name","class"])]),_:2},1024))],2)])]),_:2},1040,["class"])]),_:2},1032,["value","disabled","onSelect"])]),_:2},1040)]),_:3}),B(n(Qn),Q({ref_key:"rootRef",ref:S,"data-slot":"root"},{...n(g),...w.$attrs},{"selection-behavior":n(a).selectionBehavior,class:c.value.root({class:[n(a).ui?.root,n(a).class]})}),{default:C(()=>[n(a).input?(_(),L(n(Wn),{key:0,modelValue:l.value,"onUpdate:modelValue":F[1]||(F[1]=p=>l.value=p),"as-child":""},{default:C(()=>[B(Et,Q({variant:"none",size:n(a).size,placeholder:D.value,autofocus:n(a).autofocus,loading:n(a).loading,"loading-icon":n(a).loadingIcon,"trailing-icon":n(a).trailingIcon,icon:n(a).icon===!1?void 0:n(a).icon??n(r).ui.icons.search},typeof n(a).input=="object"?n(a).input:{},{"data-slot":"input",class:c.value.input({class:n(a).ui?.input}),onKeydown:gn(G,["backspace"])}),At({_:2},[y.value?.length&&(n(a).back||o.back)?{name:"leading",fn:C(()=>[N(w.$slots,"back",{ui:c.value},()=>[B(ke,Q({size:n(a).size,icon:n(a).backIcon||n(r).ui.icons.arrowLeft,color:"neutral",variant:"link","aria-label":n(u)("commandPalette.back")},typeof n(a).back=="object"?n(a).back:{},{"data-slot":"back",class:c.value.back({class:n(a).ui?.back}),onClick:M}),null,16,["size","icon","aria-label","class"])])]),key:"0"}:void 0,n(a).close||o.close?{name:"trailing",fn:C(()=>[N(w.$slots,"close",{ui:c.value},()=>[n(a).close?(_(),L(ke,Q({key:0,size:n(a).size,icon:n(a).closeIcon||n(r).ui.icons.close,color:"neutral",variant:"ghost","aria-label":n(u)("commandPalette.close")},typeof n(a).close=="object"?n(a).close:{},{"data-slot":"close",class:c.value.close({class:n(a).ui?.close}),onClick:F[0]||(F[0]=p=>i("update:open",!1))}),null,16,["size","icon","aria-label","class"])):P("",!0)])]),key:"1"}:void 0]),1040,["size","placeholder","autofocus","loading","loading-icon","trailing-icon","icon","class"])]),_:3},8,["modelValue"])):P("",!0),B(n(Gn),{"data-slot":"content",class:q(c.value.content({class:n(a).ui?.content}))},{default:C(()=>[T.value?.length?(_(),V("div",{key:0,role:"presentation","data-slot":"viewport",class:q(c.value.viewport({class:n(a).ui?.viewport}))},[n(a).virtualize?(_(),L(n(Jn),Q({key:0,options:I.value,"text-content":p=>n(ve)(p,n(a).labelKey)},m.value),{default:C(({option:p,virtualItem:U})=>[B(n(d),{item:p,index:U.index},null,8,["item","index"])]),_:1},16,["options","text-content"])):(_(!0),V(pe,{key:1},we(T.value,p=>(_(),L(n(Yn),{key:`group-${p.id}`,"data-slot":"group",class:q(c.value.group({class:n(a).ui?.group}))},{default:C(()=>[n(ve)(p,n(a).labelKey)||o[p.slot?`${p.slot}-group-label`:"group-label"]?(_(),L(n(ds),{key:0,"data-slot":"label",class:q(c.value.label({class:n(a).ui?.label}))},{default:C(()=>[N(w.$slots,p.slot?`${p.slot}-group-label`:"group-label",{group:p,label:n(ve)(p,n(a).labelKey),ui:c.value},()=>[ce(oe(n(ve)(p,n(a).labelKey)),1)])]),_:2},1032,["class"])):P("",!0),(_(!0),V(pe,null,we(p.items,(U,E)=>(_(),L(n(d),{key:`group-${p.id}-${E}`,item:U,index:E,group:p},null,8,["item","index","group"]))),128))]),_:2},1032,["class"]))),128))],2)):(_(),V("div",{key:1,"data-slot":"empty",class:q(c.value.empty({class:n(a).ui?.empty}))},[N(w.$slots,"empty",{searchTerm:l.value},()=>[ce(oe(l.value?n(u)("commandPalette.noMatch",{searchTerm:l.value}):n(u)("commandPalette.noData")),1)])],2))]),_:3},8,["class"]),o.footer?(_(),V("div",{key:1,"data-slot":"footer",class:q(c.value.footer({class:n(a).ui?.footer}))},[N(w.$slots,"footer",{ui:c.value})],2)):P("",!0)]),_:3},16,["selection-behavior","class"])],64))}}),Hi={slots:{modal:"",input:""},variants:{fullscreen:{false:{modal:"sm:max-w-3xl h-full sm:h-[28rem]"}},size:{xs:{},sm:{},md:{},lg:{},xl:{}}},defaultVariants:{size:"md"}},Ui=/^[^-]+.*-.*[^-]+$/,Vi=/^[^_]+.*_.*[^_]+$/,sa=["arrowleft","arrowright","arrowup","arrowdown","tab","escape","enter","backspace"];function Xe(e){return/^[a-z]$/i.test(e)?`Key${e.toUpperCase()}`:/^\d$/.test(e)?`Digit${e}`:/^f\d+$/i.test(e)?e.toUpperCase():{space:"Space",enter:"Enter",escape:"Escape",tab:"Tab",backspace:"Backspace",delete:"Delete",arrowup:"ArrowUp",arrowdown:"ArrowDown",arrowleft:"ArrowLeft",arrowright:"ArrowRight"}[e.toLowerCase()]||e}function Ra(e,t={}){const s=t.chainDelay??800,i=H([]),o=()=>{i.value.splice(0,i.value.length)},a=va(o,s);let l;const u=()=>{l=void 0,g.stop()},r=()=>{const f=l;if(u(),!f)return;const x=A.value.find($=>$.key===f.shortcut.key&&!$.metaKey&&!$.ctrlKey&&!$.altKey&&!$.shiftKey);x?.enabled&&x.handler(f.event)},g=yn(()=>{r(),o()},s,{immediate:!1}),{macOS:m}=bn(),v=kn(),d=t.layoutIndependent??!1,c=sa.map(f=>Xe(f)),h=f=>{if(!f.key)return;const x=d||f.altKey,$=x?/^Key[A-Z]$/i.test(f.code):/^[a-z]{1}$/i.test(f.key),T=x?c.includes(f.code):sa.includes(f.key.toLowerCase());let I;if(i.value.push(d?f.code:f.key),i.value.length>=2){I=i.value.slice(-2).join("-");for(const S of R.value)if(S.key===I){S.enabled?(u(),f.preventDefault(),S.handler(f)):r(),o();return}}r();for(const S of A.value){if(d){if(f.code!==S.key)continue}else if(S.altKey&&f.altKey){if(f.code!==Xe(S.key))continue}else if(f.key.toLowerCase()!==S.key)continue;if(f.metaKey!==S.metaKey||f.ctrlKey!==S.ctrlKey||f.altKey!==S.altKey||($||T||S.shiftKey||f.shiftKey&&(f.metaKey||f.ctrlKey))&&f.shiftKey!==S.shiftKey)continue;if(!S.metaKey&&!S.ctrlKey&&!S.altKey&&!S.shiftKey&&b.value.has(S.key)){S.enabled&&f.preventDefault(),l={shortcut:S,event:f},g.start();return}S.enabled&&(f.preventDefault(),S.handler(f)),o();return}a()},y=O(()=>{const f=v.value?.tagName,x=v.value?.contentEditable;return f==="INPUT"||f==="TEXTAREA"||x==="true"||x==="plaintext-only"?v.value?.name||!0:!1}),D=O(()=>Object.entries(ge(e)).map(([f,x])=>{if(!x)return null;let $;f.includes("-")&&f!=="-"&&!f.includes("_")&&!f.match(Ui)?.length&&console.trace(`[Shortcut] Invalid key: "${f}"`),f.includes("_")&&f!=="_"&&!f.match(Vi)?.length&&console.trace(`[Shortcut] Invalid key: "${f}"`);const T=f.includes("-")&&f!=="-"&&!f.includes("_");if(T)d?$={key:f.split("-").map(k=>Xe(k)).join("-"),metaKey:!1,ctrlKey:!1,shiftKey:!1,altKey:!1}:$={key:f.toLowerCase(),metaKey:!1,ctrlKey:!1,shiftKey:!1,altKey:!1};else{const S=f.toLowerCase().split("_").map(M=>M);let k=S.filter(M=>!["meta","command","ctrl","shift","alt","option"].includes(M)).join("_");d&&(k=Xe(k)),$={key:k,metaKey:S.includes("meta")||S.includes("command"),ctrlKey:S.includes("ctrl"),shiftKey:S.includes("shift"),altKey:S.includes("alt")||S.includes("option")}}if($.chained=T,!m.value&&$.metaKey&&!$.ctrlKey&&($.metaKey=!1,$.ctrlKey=!0),typeof x=="function"?$.handler=x:typeof x=="object"&&($={...$,handler:x.handler}),!$.handler)return console.trace("[Shortcut] Invalid value"),null;let I=!0;return x.usingInput?typeof x.usingInput=="string"&&(I=y.value===x.usingInput):I=!y.value,$.enabled=I,$}).filter(Boolean)),R=O(()=>D.value.filter(f=>f.chained)),A=O(()=>D.value.filter(f=>!f.chained)),b=O(()=>new Set(R.value.map(f=>f.key.split("-")[0])));return wn("keydown",h)}const Wi={__name:"UDashboardSearch",props:it({size:{type:null,required:!1},close:{type:[Boolean,Object],required:!1,default:!0},input:{type:[Boolean,Object],required:!1},shortcut:{type:String,required:!1,default:"meta_k"},fuse:{type:Object,required:!1},searchDelay:{type:Number,required:!1,default:100},colorMode:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},title:{type:String,required:!1},description:{type:String,required:!1},overlay:{type:Boolean,required:!1},transition:{type:Boolean,required:!1},content:{type:Object,required:!1},dismissible:{type:Boolean,required:!1},fullscreen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0},unmountOnHide:{type:Boolean,required:!1},icon:{type:[String,Boolean],required:!1,skipCheck:!0},trailingIcon:{type:null,required:!1},selectedIcon:{type:null,required:!1},childrenIcon:{type:null,required:!1},placeholder:{type:String,required:!1},autofocus:{type:Boolean,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},closeIcon:{type:null,required:!1},back:{type:[Boolean,Object],required:!1},backIcon:{type:null,required:!1},disabled:{type:Boolean,required:!1},highlightOnHover:{type:Boolean,required:!1},labelKey:{type:null,required:!1},descriptionKey:{type:null,required:!1},preserveGroupOrder:{type:Boolean,required:!1},virtualize:{type:[Boolean,Object],required:!1},groups:{type:Array,required:!1}},{open:{type:Boolean,default:!1},openModifiers:{},searchTerm:{type:String,default:""},searchTermModifiers:{}}),emits:["update:open","update:searchTerm"],setup(e,{expose:t}){const s=e,i=Ee(),o=Me("dashboardSearch",s),a=ze(e,"open",{type:Boolean,default:!1}),l=ze(e,"searchTerm",{type:String,default:""});yt("dashboard:search:toggle",()=>{a.value=!a.value});const{t:u}=Ne(),r=ra(),g=Ce(),m=Pe(st(o,"size","icon","trailingIcon","selectedIcon","childrenIcon","placeholder","autofocus","loading","loadingIcon","close","closeIcon","back","backIcon","disabled","highlightOnHover","labelKey","descriptionKey","preserveGroupOrder","virtualize","searchDelay")),v=Pe(st(o,"overlay","transition","content","dismissible","fullscreen","modal","portal","unmountOnHide")),d=O(()=>o.input===!1?!1:Le(typeof o.input=="object"?o.input:{},{fixed:!0})),c=()=>nt(i,["content"]),h=O(()=>Le({},o.fuse,{fuseOptions:{useTokenSearch:!0}})),y=O(()=>Oe({extend:Hi,...g.ui?.dashboardSearch||{}})({size:o.size,fullscreen:o.fullscreen})),D=O(()=>{const b=[];return b.push(...o.groups||[]),o.colorMode&&!r?.forced&&b.push({id:"theme",label:u("dashboardSearch.theme"),items:[{label:u("colorMode.system"),icon:g.ui.icons.system,active:r.preference==="system",onSelect:()=>{r.preference="system"}},{label:u("colorMode.light"),icon:g.ui.icons.light,active:r.preference==="light",onSelect:()=>{r.preference="light"}},{label:u("colorMode.dark"),icon:g.ui.icons.dark,active:r.preference==="dark",onSelect:()=>{r.preference="dark"}}]}),b}),R=ha("commandPaletteRef");function A(b){b.disabled||(a.value=!1,l.value="")}return Ra({[o.shortcut]:{usingInput:!0,handler:()=>a.value=!a.value}}),t({commandPaletteRef:R}),(b,f)=>(_(),L(rt,Q({open:a.value,"onUpdate:open":f[2]||(f[2]=x=>a.value=x),title:n(o).title||n(u)("dashboardSearch.title"),description:n(o).description||n(u)("dashboardSearch.description")},n(v),{"data-slot":"modal",class:y.value.modal({class:[n(o).ui?.modal,n(o).class]})}),{content:C(x=>[N(b.$slots,"content",Te(De(x)),()=>[B(Ki,Q({ref_key:"commandPaletteRef",ref:R,"search-term":l.value,"onUpdate:searchTerm":f[0]||(f[0]=$=>l.value=$)},n(m),{groups:D.value,fuse:h.value,input:d.value,ui:n(oa)(n(nt)(y.value,["modal"]),n(o).ui),"onUpdate:modelValue":A,"onUpdate:open":f[1]||(f[1]=$=>a.value=$)}),At({_:2},[we(c(),($,T)=>({name:T,fn:C(I=>[N(b.$slots,T,Te(De(I)))])}))]),1040,["search-term","groups","fuse","input","ui"])])]),_:3},16,["open","title","description","class"]))}},Gi={class:"flex items-center gap-2"},Ji={class:"space-y-4"},Yi={class:"grid grid-cols-2 gap-3"},Qi={id:"jb-products"},Xi=["value"],Zi={class:"flex items-center gap-2"},eo={class:"text-xs font-medium text-muted uppercase tracking-wider"},to={class:"flex items-center justify-between pt-1"},ao=he({__name:"OpenInIdeSettingsModal",setup(e){const{prefs:t,settingsOpen:s,settingsContext:i}=wa(),o=Object.keys(Vt).map(c=>({label:Vt[c],value:c})),a=Object.keys(Wt).map(c=>({label:Wt[c],value:c})),l=O(()=>t.value.method==="auto"||t.value.method==="vscode"),u=O(()=>t.value.method!=="vscode"),r=O(()=>i.value.projectKey??null),g=O(()=>i.value.projectName||(r.value?`project ${r.value}`:""));function m(c){return O({get:()=>r.value?t.value[c][r.value]??"":"",set:h=>{const y=r.value;if(!y)return;const D={...t.value[c]};h.trim()?D[y]=h:delete D[y],t.value[c]=D}})}const v=m("projectRoots"),d=m("jetbrainsProjectNames");return(c,h)=>{const y=Ie,D=ts,R=as,A=ka,b=Et,f=_a,x=ns,$=ss,T=es,I=ke,S=rt;return _(),L(S,{open:n(s),"onUpdate:open":h[9]||(h[9]=k=>ye(s)?s.value=k:null),ui:{content:"max-w-lg"}},{header:C(()=>[W("div",Gi,[B(y,{name:"i-lucide-external-link",class:"size-5 text-primary"}),h[10]||(h[10]=W("h2",{class:"text-base font-semibold"},"Open in IDE",-1)),B(D,{topic:"ide.open"})])]),body:C(()=>[W("div",Ji,[h[14]||(h[14]=W("p",{class:"text-sm text-muted"}," Click a source path anywhere in the dashboard to open it in your editor. These preferences are stored in this browser only. ",-1)),B(A,{label:"Method",name:"method",description:"Auto probes the JetBrains local server first, then falls back to a URL launch."},{default:C(()=>[B(R,{modelValue:n(t).method,"onUpdate:modelValue":h[0]||(h[0]=k=>n(t).method=k),items:n(o),class:"w-full"},null,8,["modelValue","items"])]),_:1}),B(A,{label:"Workspace root",name:"defaultRoot",description:"Absolute path to your local checkout — repo-relative paths are joined onto it (VS Code needs this)."},{default:C(()=>[B(b,{modelValue:n(t).defaultRoot,"onUpdate:modelValue":h[1]||(h[1]=k=>n(t).defaultRoot=k),placeholder:"/home/me/my-repo",class:"w-full"},null,8,["modelValue"])]),_:1}),n(l)?(_(),L(A,{key:0,label:"VS Code flavor",name:"vscodeScheme"},{default:C(()=>[B(R,{modelValue:n(t).vscodeScheme,"onUpdate:modelValue":h[2]||(h[2]=k=>n(t).vscodeScheme=k),items:n(a),class:"w-full"},null,8,["modelValue","items"])]),_:1})):P("",!0),n(u)?(_(),V(pe,{key:1},[W("div",Yi,[B(A,{label:"JetBrains product",name:"jetbrainsProduct",description:"e.g. idea, webstorm, pycharm."},{default:C(()=>[B(b,{modelValue:n(t).jetbrainsProduct,"onUpdate:modelValue":h[3]||(h[3]=k=>n(t).jetbrainsProduct=k),placeholder:"idea",list:"jb-products",class:"w-full"},null,8,["modelValue"]),W("datalist",Qi,[(_(!0),V(pe,null,we(n(Rn),k=>(_(),V("option",{key:k,value:k},null,8,Xi))),128))])]),_:1}),B(A,{label:"Local server port",name:"jetbrainsPort",description:"Remote Control plugin."},{default:C(()=>[B(b,{modelValue:n(t).jetbrainsPort,"onUpdate:modelValue":h[4]||(h[4]=k=>n(t).jetbrainsPort=k),modelModifiers:{number:!0},type:"number",class:"w-full"},null,8,["modelValue"])]),_:1})]),B(A,{name:"jetbrainsHttpUsesRelativePath"},{default:C(()=>[W("div",Zi,[B(f,{modelValue:n(t).jetbrainsHttpUsesRelativePath,"onUpdate:modelValue":h[5]||(h[5]=k=>n(t).jetbrainsHttpUsesRelativePath=k)},null,8,["modelValue"]),h[11]||(h[11]=W("span",{class:"text-sm"},"Send a content-root-relative path to the local server",-1))])]),_:1})],64)):P("",!0),n(r)?(_(),V(pe,{key:2},[B(x),W("p",eo,"Override for "+oe(n(g)),1),B(A,{label:"Workspace root override",name:"projectRoot",description:"Use a different local folder for this project (monorepos, multiple checkouts)."},{default:C(()=>[B(b,{modelValue:n(v),"onUpdate:modelValue":h[6]||(h[6]=k=>ye(v)?v.value=k:null),placeholder:n(t).defaultRoot||"/home/me/this-project",class:"w-full"},null,8,["modelValue","placeholder"])]),_:1}),n(u)?(_(),L(A,{key:0,label:"JetBrains project name",name:"projectJbName",description:"The open IDE project name for the jetbrains:// link."},{default:C(()=>[B(b,{modelValue:n(d),"onUpdate:modelValue":h[7]||(h[7]=k=>ye(d)?d.value=k:null),placeholder:n(g),class:"w-full"},null,8,["modelValue","placeholder"])]),_:1})):P("",!0)],64)):P("",!0),n(u)?(_(),L($,{key:3,color:"neutral",variant:"soft",icon:"i-lucide-info",title:"JetBrains prerequisites",description:"The jetbrains:// link needs JetBrains Toolbox. The local server needs the IDE Remote Control plugin with 'Allow unsigned requests', and browsers block it when this dashboard is served over HTTPS."})):P("",!0),W("div",to,[B(T,{to:"ide-integration"},{default:C(()=>[...h[12]||(h[12]=[ce("Learn more",-1)])]),_:1}),B(I,{color:"neutral",onClick:h[8]||(h[8]=k=>s.value=!1)},{default:C(()=>[...h[13]||(h[13]=[ce("Done",-1)])]),_:1})])])]),_:1},8,["open"])}}}),no=Object.assign(ao,{__name:"OpenInIdeSettingsModal"}),so={class:"flex items-center gap-2"},io={class:"space-y-4"},oo={class:"space-y-2"},lo={class:"min-w-0 flex-1"},ro={class:"text-sm truncate"},uo={class:"text-xs text-muted truncate"},co={key:0,class:"text-xs text-error"},fo={class:"grid grid-cols-2 gap-3"},po={class:"flex items-center justify-end w-full gap-2"},ho=he({__name:"DesktopImportModal",setup(e){const{files:t,open:s,removeFile:i,clear:o}=_n(),{data:a,execute:l,status:u}=Mt("/api/projects/menu",{immediate:!1,default:()=>[]},"$fWNyjYhgL_");re(s,b=>{b&&a.value.length===0&&l()});const r=H(),g=H(""),m=H(!0),v=H(!1),d=xn({}),c=O(()=>a.value.map(b=>({label:b.label||b.name,value:b.name})));function h(b){return b.split(/[\\/]/).pop()||b}function y(){const b=new Uint8Array(32);return crypto.getRandomValues(b),Array.from(b,f=>f.toString(16).padStart(2,"0")).join("")}async function D(){if(!r.value||v.value||t.value.length===0)return;v.value=!0;const b=m.value&&t.value.length>1?y():void 0;try{for(const f of[...t.value]){const x=d[f]?.status;if(!(x==="imported"||x==="duplicate")){d[f]={status:"importing"};try{const $=await $fetch("/api/desktop/import-local",{method:"POST",body:{path:f,projectName:r.value,label:g.value.trim()||void 0,importGroup:b}});d[f]={status:$.status,testRunId:$.testRunId}}catch($){d[f]={status:"error",message:os($)}}}}}finally{v.value=!1}}const R=O(()=>t.value.length>0&&t.value.every(b=>d[b]?.status==="imported"||d[b]?.status==="duplicate"));re(s,b=>{if(!b&&R.value){o();for(const f of Object.keys(d))delete d[f]}});function A(b){const f=d[b];if(!f)return null;switch(f.status){case"importing":return{label:"Importing…",color:"info"};case"imported":return{label:"Imported",color:"success"};case"duplicate":return{label:"Already imported",color:"neutral"};case"error":return{label:"Failed",color:"error"}}}return(b,f)=>{const x=Ie,$=Sn,T=ke,I=is,S=Zn,k=ka,M=Et,G=_a,J=rt;return _(),L(J,{open:n(s),"onUpdate:open":f[6]||(f[6]=w=>ye(s)?s.value=w:null),ui:{content:"max-w-xl"}},{header:C(()=>[W("div",so,[B(x,{name:"i-lucide-file-input",class:"size-5 text-primary"}),f[7]||(f[7]=W("h2",{class:"text-base font-semibold"},"Import archives",-1)),B($,{color:"neutral",variant:"subtle",size:"sm"},{default:C(()=>[ce(oe(n(t).length),1)]),_:1})])]),body:C(()=>[W("div",io,[f[9]||(f[9]=W("p",{class:"text-sm text-muted"}," Playwright blob reports become complete runs; bare traces become single executions. Re-importing the same archive is a no-op, and imports never trigger notifications or regression signals. ",-1)),W("div",oo,[(_(!0),V(pe,null,we(n(t),w=>(_(),V("div",{key:w,class:"flex items-center gap-2 rounded-md border border-default p-2"},[B(x,{name:"i-lucide-file-archive",class:"size-4 text-gray-400 shrink-0"}),W("div",lo,[W("p",ro,oe(h(w)),1),W("p",uo,oe(w),1),n(d)[w]?.message?(_(),V("p",co,oe(n(d)[w]?.message),1)):P("",!0)]),A(w)?(_(),L($,{key:0,color:A(w).color,variant:"subtle",size:"sm"},{default:C(()=>[ce(oe(A(w).label),1)]),_:2},1032,["color"])):P("",!0),n(d)[w]?.status==="imported"||n(d)[w]?.status==="duplicate"?(_(),L(T,{key:1,to:`/test-runs/${n(d)[w]?.testRunId}`,size:"xs",color:"neutral",variant:"soft",onClick:f[0]||(f[0]=F=>s.value=!1)},{default:C(()=>[...f[8]||(f[8]=[ce(" View run ",-1)])]),_:1},8,["to"])):(_(),L(T,{key:2,icon:"i-lucide-x",size:"xs",color:"neutral",variant:"ghost",disabled:n(v),"aria-label":"Remove from import",onClick:F=>n(i)(w)},null,8,["disabled","onClick"]))]))),128)),n(t).length===0?(_(),L(I,{key:0,icon:"i-lucide-file-x",text:"Nothing to import"})):P("",!0)]),B(k,{label:"Import into project",name:"projectName"},{default:C(()=>[B(S,{modelValue:n(r),"onUpdate:modelValue":f[1]||(f[1]=w=>ye(r)?r.value=w:null),items:n(c),"value-key":"value",loading:n(u)==="pending",placeholder:"Select a project…",class:"w-full",disabled:n(v)},null,8,["modelValue","items","loading","disabled"])]),_:1}),W("div",fo,[B(k,{label:"Label",name:"label",description:"Optional run label."},{default:C(()=>[B(M,{modelValue:n(g),"onUpdate:modelValue":f[2]||(f[2]=w=>ye(g)?g.value=w:null),disabled:n(v),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),n(t).length>1?(_(),L(k,{key:0,label:"Combine traces",name:"combine",description:"Gather dropped traces into one run."},{default:C(()=>[B(G,{modelValue:n(m),"onUpdate:modelValue":f[3]||(f[3]=w=>ye(m)?m.value=w:null),disabled:n(v)},null,8,["modelValue","disabled"])]),_:1})):P("",!0)])])]),footer:C(()=>[W("div",po,[B(T,{color:"neutral",variant:"ghost",onClick:f[4]||(f[4]=w=>s.value=!1)},{default:C(()=>[...f[10]||(f[10]=[ce("Close",-1)])]),_:1}),B(T,{icon:"i-lucide-file-input",loading:n(v),disabled:!n(r)||n(t).length===0||n(R),onClick:f[5]||(f[5]=w=>D())},{default:C(()=>[...f[11]||(f[11]=[ce(" Import ",-1)])]),_:1},8,["loading","disabled"])])]),_:1},8,["open"])}}}),mo=Object.assign(ho,{__name:"DesktopImportModal"}),vo={base:"fixed inset-0 flex overflow-hidden"},go={__name:"UDashboardGroup",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},storage:{type:String,required:!1,default:"cookie"},storageKey:{type:String,required:!1,default:"dashboard"},storageOptions:{type:Object,required:!1},persistent:{type:Boolean,required:!1,default:!0},unit:{type:String,required:!1,default:"%"}},setup(e){const s=Me("dashboardGroup",e),i=fa(),o=Ce(),a=O(()=>Oe({extend:vo,...o.ui?.dashboardGroup||{}})),l=H(!1),u=H(!1);return Ln({storage:s.storage,storageKey:s.storageKey,storageOptions:s.storageOptions,persistent:s.persistent,unit:s.unit,sidebarOpen:l,toggleSidebar:()=>{i.hooks.callHook("dashboard:sidebar:toggle")},sidebarCollapsed:u,collapseSidebar:r=>{i.hooks.callHook("dashboard:sidebar:collapse",r)},toggleSearch:()=>{i.hooks.callHook("dashboard:search:toggle")}}),(r,g)=>(_(),L(n(ia),{as:n(s).as,class:q(a.value({class:[n(s).ui?.base,n(s).class]}))},{default:C(()=>[N(r.$slots,"default")]),_:3},8,["as","class"]))}},yo=he({__name:"ProjectsMenu",props:{collapsed:{type:Boolean}},async setup(e){let t,s;const i=Lt(),o=ga(),{data:a,refresh:l}=([t,s]=ya(()=>Mt("/api/projects/menu","$uvvrKI5K9p")),t=await t,s(),t);Sa(l);const u=O(()=>{const m=i.params.id;return m?parseInt(m):null}),r=O(()=>{if(!u.value||!a.value)return{label:"All projects",icon:"i-lucide-folder-open"};const m=a.value.find(v=>v.id===u.value);return m?{label:m.label||m.name,icon:"i-lucide-folder"}:{label:"All projects",icon:"i-lucide-folder-open"}}),g=O(()=>{const m=[{label:"All projects",icon:"i-lucide-folder-open",onSelect(){o.push("/projects")}}];return a.value&&a.value.length>0&&m.push(...a.value.map(v=>({label:v.label||v.name,icon:"i-lucide-folder",onSelect(){o.push(`/projects/${v.id}`)}}))),[m]});return(m,v)=>{const d=ke,c=ca;return _(),L(c,{items:n(g),content:{align:"center",collisionPadding:12},ui:{content:e.collapsed?"w-40":"w-(--reka-dropdown-menu-trigger-width)"}},{default:C(()=>[B(d,Q({...n(r),label:e.collapsed?void 0:n(r)?.label,trailingIcon:e.collapsed?void 0:"i-lucide-chevrons-up-down"},{color:"neutral",variant:"ghost",block:"",square:e.collapsed,class:["data-[state=open]:bg-elevated",[!e.collapsed&&"py-2"]],ui:{trailingIcon:"text-dimmed"}}),null,16,["square","class"])]),_:1},8,["items","ui"])}}}),bo=Object.assign(yo,{__name:"ProjectsMenu"});let vt=null,gt=!1,tt=!0;window.addEventListener("focus",()=>{tt=!0}),window.addEventListener("blur",()=>{tt=!1}),tt=document.hasFocus();let Fe=null;function wo(e){const t=[];switch(e.type){case"run.finished":case"run.failed":case"run.failed.default_branch":case"flakiness.spike":case"perf.regression":{const s=e.projectName??`Project #${e.projectId}`,i=e.branch&&e.type!=="perf.regression"?` on ${e.branch}`:"";if(e.type==="run.finished"?t.push(`${s}${i}: ${e.status??"finished"}`):e.type==="run.failed"?t.push(`${s}${i}: ${e.failedTests??0}/${e.totalTests??0} tests failed`):e.type==="run.failed.default_branch"?t.push(`${s}: ${e.failedTests??0} failures on default branch`):e.type==="flakiness.spike"?t.push(`${s}: flakiness spike detected`):e.type==="perf.regression"&&t.push(`${s}: performance regression detected`),e.failedTests&&t.push(`${e.failedTests} failed, ${e.totalTests} total`),e.topFailures?.length){const[o,...a]=e.topFailures;t.push(a.length?`${o.title} +${a.length} more`:o.title)}break}case"cluster.new":t.push(`${e.projectName??`Project #${e.projectId}`}: new failure cluster`),e.signature&&t.push(e.signature);break;case"diagnosis.completed":case"diagnosis-completed":t.push(e.summary||e.rootCause||""),e.category&&t.push(`Category: ${e.category}`),e.confidence&&t.push(`Confidence: ${e.confidence}`);break}return t.filter(Boolean).join(`
2
+ `)}function ko(e){return e.clusterId?`/failure-clusters/${e.clusterId}`:e.runId&&e.projectId?`/test-runs/${e.runId}`:null}let Ct=null;function ja(e){if(!("Notification"in window)||Notification.permission!=="granted"||document.visibilityState==="visible"&&tt||(e.type==="diagnosis.completed"||e.type==="diagnosis-completed")&&Ct&&!Ct.value)return;if(Fe&&e.projectId!=null){const l=Fe.isEventSubscribed(e.projectId,e.type);if(console.log("[notify-stream] GATE: cookie filter",{projectId:e.projectId,type:e.type,subscribed:l,cookieProjects:Object.keys(Fe.stored.value.projects),matchingEvents:Fe.stored.value.projects[e.projectId]?.events??[]}),!l)return}const t=wo(e);if(!t)return;const s=e.clusterId??e.runId??e.signature??e.type,i=`piwi-${e.type}-${s}`,o=new Notification("Piwi Dashboard",{body:t,tag:i,icon:"/logo.svg"});console.log("[notify-stream] notification fired",{type:e.type,projectId:e.projectId});const a=ko(e);a?o.onclick=()=>{window.focus(),window.location.href=a,o.close()}:o.onclick=()=>{window.focus(),o.close()}}async function _o(){if(Ke().public.demoMode)return!0;if(!("Notification"in window)||Notification.permission!=="granted")return!1;try{return(await $fetch("/api/channels")).channels.some(t=>t.type==="browser")}catch{return!1}}async function So(){const e=Ke();return e.public.demoMode?!0:e.public.authEnabled?_o():!0}function xo(){ls(e=>{e.scope==="notification"&&ja(e.event)})}function $o(){vt=new EventSource("/api/notifications/stream"),vt.onmessage=e=>{try{const t=JSON.parse(e.data);ja(t)}catch{}},vt.onerror=()=>{}}function Io(){if(gt)return;gt=!0,gt=!0;const{active:e}=rs();Ct=e;const t=Ke();t.public.authEnabled||(Fe=us()),So().then(s=>{s&&(t.public.demoMode?xo():$o())}),pa(()=>{})}const Co=()=>{const e=ga();return Ra({"g-h":()=>e.push("/"),"g-p":()=>e.push("/projects"),"g-a":()=>e.push("/analytics"),"g-s":()=>e.push("/settings")}),{}},Ao=$n(Co),To={class:"flex flex-col gap-1 w-full"},Do=10,ll=he({__name:"default",async setup(e){let t,s;const i=Lt(),o=In(),a=Ke(),l=H(!1),u=H(""),r=H(null),g=va(async I=>{if(I.trim().length<2){r.value=null;return}try{r.value=await $fetch("/api/search",{query:{q:I.trim()}})}catch{r.value=null}},250);re(u,g),re(()=>l.value,I=>{I||(u.value="",r.value=null)});const{data:m,refresh:v}=([t,s]=ya(()=>Mt("/api/projects",{key:"projects",lazy:!0,default:()=>[]},"$uZFDOvnd1e")),t=await t,s(),t);Sa(v),Io(),Ao();const{canSeeAdmin:d}=ua(),c=O(()=>{const I=i.path.match(/^\/projects\/(\d+)/);return I?.[1]?parseInt(I[1],10):null}),h=O(()=>{if(!m.value||m.value.length===0)return[];const I=Date.now()-Do*24*60*60*1e3,S=[...m.value].sort((w,F)=>{const p=(w.label||w.name).toLowerCase(),U=(F.label||F.name).toLowerCase();return p.localeCompare(U)}),k=S.filter(w=>w.latestRun&&new Date(w.latestRun.startTime).getTime()>I),M=S.filter(w=>!w.latestRun||new Date(w.latestRun.startTime).getTime()<=I);function G(w){const F=c.value!==null&&c.value===w.id,p=w.latestRun?.status==="running"||w.latestRun?.status==="initialising",U=w.latestRun?.status||"unknown",E=U==="passed"?"i-lucide-circle-check-big":U==="failed"?"i-lucide-circle-x":"i-lucide-circle",K=U==="passed"?"success":U==="failed"?"error":p?"info":"neutral";return{label:w.label||w.name,icon:p?"i-lucide-loader-circle":"i-lucide-circle",ui:p?{linkLeadingIcon:"animate-spin"}:void 0,badge:{icon:E,color:K},value:`project-${w.id}`,type:"link",to:`/projects/${w.id}`,active:F}}const J=[];return k.length>0&&(J.push({label:`Active (${k.length})`,type:"label"}),J.push(...k.map(G))),M.length>0&&(J.push({label:`Others (${M.length})`,type:"label"}),J.push(...M.map(G))),J}),y=O(()=>{const I=[{label:"GitHub",icon:"i-lucide-github",to:"https://github.com/piwitests/platform",target:"_blank"}];return I.unshift({label:"MCP server",icon:"i-lucide-bot",to:"/mcp",onSelect:()=>{l.value=!1}}),d.value&&I.unshift({label:"Setup",icon:"i-lucide-rocket",to:"/setup",onSelect:()=>{l.value=!1}}),I.unshift({label:"API Docs",icon:"i-lucide-book-open",to:"/docs",onSelect:()=>{l.value=!1}}),[[{label:"Home",icon:"i-lucide-house",to:"/",onSelect:()=>{l.value=!1}},{label:"Analytics",icon:"i-lucide-chart-line",to:"/analytics",onSelect:()=>{l.value=!1}},{label:"Projects",icon:"i-lucide-folder",to:"/projects",onSelect:()=>{l.value=!1}},...h.value],I]}),D=I=>({label:typeof I.label=="string"?I.label:void 0,icon:I.icon,to:I.to,target:I.target,active:I.active,disabled:I.disabled,suffix:typeof I.badge=="string"?I.badge:void 0,children:I.children?.map(S=>D(S)),onSelect:I.onSelect}),R=O(()=>{const I="https://github.com/piwitests/platform/blob/main/application/app/pages",S="https://github.com/piwitests/platform/tree/main/application/app/pages",k=i.matched[i.matched.length-1]?.path??i.path;return k.includes(":")?S:`${I}${k==="/"?"/index":k}.vue`});function A(I){return I==="passed"?"i-lucide-circle-check-big":I==="failed"?"i-lucide-circle-x":I==="running"||I==="initialising"?"i-lucide-loader-circle":"i-lucide-circle"}const b=O(()=>{const I=[{id:"links",label:"Go to",items:y.value.flat().map(k=>D(k))},{id:"code",label:"Code",items:[{id:"source",label:"View page source",icon:"i-lucide-github",to:R.value,target:"_blank"}]}];if(c.value){const k=c.value,M=[["test-runs","Test runs","i-lucide-play"],["test-cases","Test cases","i-lucide-flask-conical"],["compare","Compare","i-lucide-git-compare-arrows"],["failure-clusters","Failure clusters","i-lucide-layers"],["flaky-tests","Flaky tests","i-lucide-shuffle"],["quarantine","Quarantine","i-lucide-shield-alert"],["spec-health","Spec health","i-lucide-table-2"],["performance","Performance","i-lucide-trending-up"],["timeline","Timeline","i-lucide-git-commit-horizontal"]];I.unshift({id:"project-tabs",label:"This project",items:M.map(([G,J,w])=>({id:`project-tab-${G}`,label:J,icon:w,to:`/projects/${k}?tab=${G}`,onSelect:()=>{l.value=!1}}))})}if(!r.value)return I;const S=[];return r.value.projects.length>0&&S.push({id:"search-projects",label:"Projects",ignoreFilter:!0,items:r.value.projects.map(k=>({id:`project-${k.id}`,label:k.label||k.name,description:k.label&&k.label!==k.name?k.name:void 0,icon:"i-lucide-folder",to:`/projects/${k.id}`}))}),r.value.runs.length>0&&S.push({id:"search-runs",label:"Test runs",ignoreFilter:!0,items:r.value.runs.map(k=>({id:`run-${k.id}`,label:k.label?`Run #${k.id} — ${k.label}`:`Run #${k.id}`,description:k.projectLabel||k.projectName,suffix:k.status,icon:A(k.status),to:`/test-runs/${k.id}`}))}),r.value.cases.length>0&&S.push({id:"search-cases",label:"Test cases",ignoreFilter:!0,items:r.value.cases.map(k=>({id:`case-${k.id}`,label:k.title,description:`${k.projectLabel||k.projectName} · ${k.filePath}`,icon:"i-lucide-flask-conical",to:`/test-cases/${k.id}`}))}),[...S,...I]}),f=a.public.demoMode,x=a.public.demoDataVersion,$=a.public.appVersion,{resetDemo:T}=Cn();return Bt(async()=>{if(f&&x){const I=await An();I!==null&&I!==x&&o.add({title:"New demo data available",description:'The demo seed data has been updated since your last visit. Click "Refresh" to reload with the latest data.',duration:0,color:"warning",actions:[{label:"Refresh",color:"warning",onClick:()=>{T()}},{label:"Dismiss",color:"neutral",variant:"ghost"}]})}}),(I,S)=>{const k=ps,M=Mn,G=vs,J=ma,w=Hs,F=Wi,p=no,U=mo,E=go;return _(),L(E,{unit:"rem",style:{top:"var(--demo-banner-height, 0px)",height:"calc(100dvh - var(--demo-banner-height, 0px))"}},{default:C(()=>[S[2]||(S[2]=W("a",{href:"#main-content",class:"sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[100] focus:rounded-md focus:bg-primary focus:px-3 focus:py-2 focus:text-sm focus:font-medium focus:text-inverted focus:shadow-lg focus:outline-2 focus:outline-primary"}," Skip to main content ",-1)),B(w,{id:"default",open:n(l),"onUpdate:open":S[0]||(S[0]=K=>ye(l)?l.value=K:null),collapsible:"",resizable:"",width:"20",class:"bg-elevated/25",ui:{root:"min-h-full",footer:"lg:border-t lg:border-default"}},{header:C(({collapsed:K})=>[B(bo,{collapsed:K},null,8,["collapsed"])]),default:C(({collapsed:K})=>[B(k,{collapsed:K,class:"bg-transparent ring-default"},null,8,["collapsed"]),(_(),L(M,{key:n(c)??void 0,collapsed:K,items:n(y)[0],orientation:"vertical",tooltip:"",popover:""},null,8,["collapsed","items"])),B(M,{collapsed:K,items:n(y)[1],orientation:"vertical",tooltip:"",class:"mt-auto"},null,8,["collapsed","items"])]),footer:C(({collapsed:K})=>[W("div",To,[B(G,{collapsed:K},null,8,["collapsed"]),K?P("",!0):(_(),L(J,{key:0,to:"/settings/about",class:"text-xs text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 text-center",title:"View version and build info"},{default:C(()=>[ce(" v"+oe(n($)),1)]),_:1}))])]),_:1},8,["open"]),B(F,{"search-term":n(u),"onUpdate:searchTerm":S[1]||(S[1]=K=>ye(u)?u.value=K:null),groups:n(b),"preserve-group-order":!!n(r)},null,8,["search-term","groups","preserve-group-order"]),S[3]||(S[3]=W("span",{id:"main-content",tabindex:"-1",class:"sr-only"},"Main content",-1)),N(I.$slots,"default"),B(p),B(U)]),_:3})}}});export{ll as default};