@piwitests/server 0.26.0 → 0.26.1

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 (382) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BdQ7kfxJ.js → 1QWBzxLM.js} +4 -4
  3. package/.output/public/_nuxt/{CY1UsEbI.js → 4hW9LHwA.js} +1 -1
  4. package/.output/public/_nuxt/96uxfdYT.js +1 -0
  5. package/.output/public/_nuxt/{HGYIpJtg.js → AbnDY6Zr.js} +1 -1
  6. package/.output/public/_nuxt/{CZ6WR7uw.js → B-1zt4pp.js} +1 -1
  7. package/.output/public/_nuxt/{Sx5-c-bZ.js → B1iYmAt_.js} +1 -1
  8. package/.output/public/_nuxt/{CbzgEkmW.js → B2bxEmbR.js} +1 -1
  9. package/.output/public/_nuxt/B3hAvaCe.js +4 -0
  10. package/.output/public/_nuxt/{CyWOerIG.js → B4lvHjBe.js} +1 -1
  11. package/.output/public/_nuxt/B5S7BkC3.js +1 -0
  12. package/.output/public/_nuxt/{Bb_1uAHn.js → B6j5Ornu.js} +1 -1
  13. package/.output/public/_nuxt/{CrsaY0R_.js → B82vqOZe.js} +1 -1
  14. package/.output/public/_nuxt/{CTFUlsXp.js → B9oXlGro.js} +1 -1
  15. package/.output/public/_nuxt/{CsJ9Ce4U.js → BABCH5kE.js} +1 -1
  16. package/.output/public/_nuxt/{Gn1Ns00e.js → BF5qB58w.js} +1 -1
  17. package/.output/public/_nuxt/{CsGsLxHg.js → BFLa9ZEP.js} +1 -1
  18. package/.output/public/_nuxt/BIlohx1E.js +1 -0
  19. package/.output/public/_nuxt/{B6djubIK.js → BM5C-Oec.js} +1 -1
  20. package/.output/public/_nuxt/{CrZhoZuI.js → BOA-I6S9.js} +1 -1
  21. package/.output/public/_nuxt/{Bp2zrrkV.js → BQUhoGCh.js} +1 -1
  22. package/.output/public/_nuxt/{DUC3QnqW.js → BQYLGX9o.js} +1 -1
  23. package/.output/public/_nuxt/{CUjzhXN1.js → BRMeEHXd.js} +1 -1
  24. package/.output/public/_nuxt/{Cf_a8ynB.js → BRtaKOKv.js} +2 -2
  25. package/.output/public/_nuxt/{B7uPoZ7T.js → BS91Og__.js} +1 -1
  26. package/.output/public/_nuxt/{DKgbchez.js → BTGAvMoT.js} +1 -1
  27. package/.output/public/_nuxt/{BIamiwb7.js → BaLX92Wz.js} +1 -1
  28. package/.output/public/_nuxt/{LWIyaZKe.js → Bc6Zr-Xn.js} +1 -1
  29. package/.output/public/_nuxt/{R7AVOWi_.js → BceMEnJt.js} +1 -1
  30. package/.output/public/_nuxt/{Q2oJNyXL.js → BeCAVtCK.js} +1 -1
  31. package/.output/public/_nuxt/{D_SD71Qf.js → Bf119e7x.js} +1 -1
  32. package/.output/public/_nuxt/BfRcdz11.js +9 -0
  33. package/.output/public/_nuxt/{CxwnFFD0.js → Bl0xzETD.js} +1 -1
  34. package/.output/public/_nuxt/{C_eXufkv.js → BnUQ3i5l.js} +1 -1
  35. package/.output/public/_nuxt/{rPG7kzfL.js → Bp1WeQ0_.js} +1 -1
  36. package/.output/public/_nuxt/{BL8cYWsR.js → Bp31ZRcA.js} +1 -1
  37. package/.output/public/_nuxt/{Drh1_ASq.js → BrxUH8qL.js} +1 -1
  38. package/.output/public/_nuxt/{D72Ce8Ff.js → BsdfEbVC.js} +1 -1
  39. package/.output/public/_nuxt/BtGI4ZbP.js +1 -0
  40. package/.output/public/_nuxt/{BV8EzO8q.js → BuMX-4RF.js} +1 -1
  41. package/.output/public/_nuxt/{DPPhFZOr.js → BuXJR5tn.js} +1 -1
  42. package/.output/public/_nuxt/{Bh2WA4IJ.js → Bx_lfKHl.js} +1 -1
  43. package/.output/public/_nuxt/{vcSKeWsW.js → C4UKyPQn.js} +1 -1
  44. package/.output/public/_nuxt/{IoE3eJ9F.js → C9XCTbtQ.js} +1 -1
  45. package/.output/public/_nuxt/{BilJoEne.js → CEPU6VkU.js} +1 -1
  46. package/.output/public/_nuxt/CHz7LJIX.js +1 -0
  47. package/.output/public/_nuxt/{BPhGDGAR.js → CMhd8IBr.js} +1 -1
  48. package/.output/public/_nuxt/{C5X_N4R7.js → CN1M6i4K.js} +33 -33
  49. package/.output/public/_nuxt/CQLkowA3.js +1 -0
  50. package/.output/public/_nuxt/{DTtizz85.js → CU_2YLhT.js} +1 -1
  51. package/.output/public/_nuxt/{CMVTTE_g.js → CXkXHtcx.js} +1 -1
  52. package/.output/public/_nuxt/{igDJCTgt.js → CZeKW-zP.js} +1 -1
  53. package/.output/public/_nuxt/{9oKY4Zb7.js → CapSEET7.js} +1 -1
  54. package/.output/public/_nuxt/{j2eGYaRa.js → CeExxGSu.js} +1 -1
  55. package/.output/public/_nuxt/{CEgRB8H9.js → CfwpqSe7.js} +1 -1
  56. package/.output/public/_nuxt/{CFKbXp6V.js → ChOtLYkd.js} +1 -1
  57. package/.output/public/_nuxt/ChuJzPWz.js +1 -0
  58. package/.output/public/_nuxt/{Bo73sAu8.js → CiCUZGFZ.js} +1 -1
  59. package/.output/public/_nuxt/{C6R4tyud.js → CkL_oDa8.js} +1 -1
  60. package/.output/public/_nuxt/{DtGJeysS.js → CkhOMiiO.js} +1 -1
  61. package/.output/public/_nuxt/ClmHMP65.js +2 -0
  62. package/.output/public/_nuxt/{BtcDY0Du.js → Cnm0d_7S.js} +1 -1
  63. package/.output/public/_nuxt/{CK2AMqz_.js → CtQMagSz.js} +1 -1
  64. package/.output/public/_nuxt/{B1KjIR-q.js → Ctnn3S3-.js} +1 -1
  65. package/.output/public/_nuxt/{DCeZxpxe.js → CywiLuOD.js} +4 -4
  66. package/.output/public/_nuxt/{oA84LLqO.js → CzRkZLB4.js} +1 -1
  67. package/.output/public/_nuxt/CzyCEdYP.js +1 -0
  68. package/.output/public/_nuxt/{D56yp7m9.js → D-F0Rhjj.js} +1 -1
  69. package/.output/public/_nuxt/D4mPjHHR.js +2 -0
  70. package/.output/public/_nuxt/{BsGvSoPC.js → D4v7lLm3.js} +1 -1
  71. package/.output/public/_nuxt/{CxRTKV-K.js → D6B0WKO0.js} +1 -1
  72. package/.output/public/_nuxt/{jv8U_Tup.js → DAg6jtav.js} +1 -1
  73. package/.output/public/_nuxt/DBXXb0w8.js +1 -0
  74. package/.output/public/_nuxt/{ChlP20A5.js → DHN2t5Vt.js} +1 -1
  75. package/.output/public/_nuxt/{B8tezsWe.js → DJKHXfNS.js} +1 -1
  76. package/.output/public/_nuxt/{CFg5qdS0.js → DMqAUHFN.js} +1 -1
  77. package/.output/public/_nuxt/{C9A3sPDo.js → DURme_kn.js} +1 -1
  78. package/.output/public/_nuxt/{C2hIM5f9.js → DVo_e_uj.js} +1 -1
  79. package/.output/public/_nuxt/{DKhqIou2.js → DXh8q5KY.js} +1 -1
  80. package/.output/public/_nuxt/{CZXeJs2k.js → DXz1Kb4-.js} +1 -1
  81. package/.output/public/_nuxt/{CPrVhXJk.js → DYdwHaco.js} +1 -1
  82. package/.output/public/_nuxt/{WZXZeGYt.js → D_ZAGxCQ.js} +1 -1
  83. package/.output/public/_nuxt/{D5SN7rPK.js → D_dhjJvR.js} +1 -1
  84. package/.output/public/_nuxt/{DR1jFptD.js → DamZHy5M.js} +1 -1
  85. package/.output/public/_nuxt/{xKX9IHe3.js → DbtjJCra.js} +1 -1
  86. package/.output/public/_nuxt/{r6zkA1SE.js → DcOlL-oi.js} +1 -1
  87. package/.output/public/_nuxt/{CxspCKpR.js → DeQ9sIia.js} +1 -1
  88. package/.output/public/_nuxt/{BkHJoHpc.js → DjX1bLZD.js} +1 -1
  89. package/.output/public/_nuxt/{Be0bwdsi.js → Dly7wCCl.js} +1 -1
  90. package/.output/public/_nuxt/DmeogbGY.js +1 -0
  91. package/.output/public/_nuxt/{CfV2N201.js → Dn_-RkxP.js} +1 -1
  92. package/.output/public/_nuxt/{dg6uXTyR.js → DoDo3VF2.js} +1 -1
  93. package/.output/public/_nuxt/{BMlKQMjM.js → DoVHTl-K.js} +1 -1
  94. package/.output/public/_nuxt/DpM8IgHL.js +1 -0
  95. package/.output/public/_nuxt/{B4NjylBn.js → Dpwj_1H5.js} +1 -1
  96. package/.output/public/_nuxt/{DzJa19LG.js → DvSHenmZ.js} +1 -1
  97. package/.output/public/_nuxt/DvYU87_a.js +1 -0
  98. package/.output/public/_nuxt/{G2J1dVVb.js → Dx41arC8.js} +1 -1
  99. package/.output/public/_nuxt/DxBrlj7b.js +1 -0
  100. package/.output/public/_nuxt/{r-HZNbp3.js → JNpNdV-o.js} +1 -1
  101. package/.output/public/_nuxt/Lz9MmwKY.js +1 -0
  102. package/.output/public/_nuxt/OMI0cmZ0.js +1 -0
  103. package/.output/public/_nuxt/{CUWrUpTl.js → UAmyrRCI.js} +1 -1
  104. package/.output/public/_nuxt/{EJllK0wm.js → VBTxfbqU.js} +1 -1
  105. package/.output/public/_nuxt/VbedPPFH.js +1 -0
  106. package/.output/public/_nuxt/{BY9A1aOT.js → _okd7MfH.js} +1 -1
  107. package/.output/public/_nuxt/{BOn5q0rT.js → bmAf49LT.js} +1 -1
  108. package/.output/public/_nuxt/builds/latest.json +1 -1
  109. package/.output/public/_nuxt/builds/meta/0174ebd8-8fa5-4698-aa79-7a8dd2f6527f.json +1 -0
  110. package/.output/public/_nuxt/{D0XWJGhG.js → e-GZmCeP.js} +1 -1
  111. package/.output/public/_nuxt/entry.Dv52uAyn.css +1 -0
  112. package/.output/public/_nuxt/{DVIIj6Vv.js → f9TbT3AM.js} +1 -1
  113. package/.output/public/_nuxt/gdlHFfN6.js +1 -0
  114. package/.output/public/_nuxt/{BTG_PmM5.js → huBoAZeM.js} +1 -1
  115. package/.output/public/_nuxt/{DadksxQ9.js → mYw4b7uY.js} +1 -1
  116. package/.output/public/_nuxt/{B0eHOux4.js → mi7tdFxN.js} +1 -1
  117. package/.output/public/_nuxt/sFe4Zr5j.js +1 -0
  118. package/.output/public/_nuxt/{CLrLFf3s.js → uspGXbik.js} +1 -1
  119. package/.output/public/_nuxt/{DLN-CQXF.js → w7KxwWEv.js} +1 -1
  120. package/.output/public/_nuxt/{Bp55g9gr.js → wa4k1aDz.js} +1 -1
  121. package/.output/public/_nuxt/{C2yZcDch.js → xuB8n0QL.js} +1 -1
  122. package/.output/public/favicon.ico +0 -0
  123. package/.output/public/trace-viewer/assets/codeMirrorModule-LEHpjmcn.js +32 -0
  124. package/.output/public/trace-viewer/assets/defaultSettingsView-BNmKHKpQ.js +264 -0
  125. package/.output/public/trace-viewer/assets/urlMatch-BYQrIQwR.js +1 -0
  126. package/.output/public/trace-viewer/assets/xtermModule-CsJ4vdCR.js +9 -0
  127. package/.output/public/trace-viewer/codeMirrorModule.DYBRYzYX.css +1 -0
  128. package/.output/public/trace-viewer/codicon.DCmgc-ay.ttf +0 -0
  129. package/.output/public/trace-viewer/defaultSettingsView.CjdS-WJx.css +1 -0
  130. package/.output/public/trace-viewer/index.CzXZzn5A.css +1 -0
  131. package/.output/public/trace-viewer/index.DMMX1gXU.js +2 -0
  132. package/.output/public/trace-viewer/index.html +44 -0
  133. package/.output/public/trace-viewer/manifest.webmanifest +16 -0
  134. package/.output/public/trace-viewer/playwright-logo.svg +9 -0
  135. package/.output/public/trace-viewer/snapshot.html +10 -0
  136. package/.output/public/trace-viewer/snapshot.v8KI4P3m.js +2 -0
  137. package/.output/public/trace-viewer/sw.bundle.js +5 -0
  138. package/.output/public/trace-viewer/uiMode.BZQ54Kgt.css +1 -0
  139. package/.output/public/trace-viewer/uiMode.Ut8wwJNp.js +6 -0
  140. package/.output/public/trace-viewer/uiMode.html +18 -0
  141. package/.output/public/trace-viewer/xtermModule.DYP7pi_n.css +32 -0
  142. package/.output/server/chunks/_/users.mjs +1 -1
  143. package/.output/server/chunks/build/{BreadcrumbNav-DBnGj5Jq.mjs → BreadcrumbNav-Bg4QGX0k.mjs} +11 -4
  144. package/.output/server/chunks/build/BreadcrumbNav-Bg4QGX0k.mjs.map +1 -0
  145. package/.output/server/chunks/build/{BrowserBadge-vFb1ERG_.mjs → BrowserBadge-yMgLTBUu.mjs} +17 -9
  146. package/.output/server/chunks/build/BrowserBadge-yMgLTBUu.mjs.map +1 -0
  147. package/.output/server/chunks/build/{ChartMarkerLines-BXqUpUcs.mjs → ChartMarkerLines-D0cTRlxF.mjs} +3 -3
  148. package/.output/server/chunks/build/ChartMarkerLines-D0cTRlxF.mjs.map +1 -0
  149. package/.output/server/chunks/build/{ChartTooltip-DoF6Smyc.mjs → ChartTooltip-B2t6VYYH.mjs} +3 -3
  150. package/.output/server/chunks/build/ChartTooltip-B2t6VYYH.mjs.map +1 -0
  151. package/.output/server/chunks/build/Checkbox-ChSYhiUz.mjs +1 -1
  152. package/.output/server/chunks/build/ClientDate-U97Z1p6-.mjs +32 -0
  153. package/.output/server/chunks/build/ClientDate-U97Z1p6-.mjs.map +1 -0
  154. package/.output/server/chunks/build/{CodeBlock-CmvKHaq8.mjs → CodeBlock-DuWhmcI2.mjs} +3 -3
  155. package/.output/server/chunks/build/CodeBlock-DuWhmcI2.mjs.map +1 -0
  156. package/.output/server/chunks/build/DashboardSidebarToggle-a5KYecZ0.mjs +1 -1
  157. package/.output/server/chunks/build/DashboardToolbar-BZoGc0ri.mjs +72 -0
  158. package/.output/server/chunks/build/DashboardToolbar-BZoGc0ri.mjs.map +1 -0
  159. package/.output/server/chunks/build/{DataLocationCard-ChV02QJj.mjs → DataLocationCard-DCdhQBIY.mjs} +2 -2
  160. package/.output/server/chunks/build/DataLocationCard-DCdhQBIY.mjs.map +1 -0
  161. package/.output/server/chunks/build/{DesktopRunLocallyButton-BfmbZpiL.mjs → DesktopRunLocallyButton-ChHg3GqK.mjs} +5 -5
  162. package/.output/server/chunks/build/{DesktopRunLocallyButton-BfmbZpiL.mjs.map → DesktopRunLocallyButton-ChHg3GqK.mjs.map} +1 -1
  163. package/.output/server/chunks/build/{DiagnosisPanel-C_ndadzP.mjs → DiagnosisPanel-DE-r2UV8.mjs} +5 -5
  164. package/.output/server/chunks/build/DiagnosisPanel-DE-r2UV8.mjs.map +1 -0
  165. package/.output/server/chunks/build/{DiagnosisResult-GAjo6Lt3.mjs → DiagnosisResult-CrGK--xh.mjs} +16 -10
  166. package/.output/server/chunks/build/DiagnosisResult-CrGK--xh.mjs.map +1 -0
  167. package/.output/server/chunks/build/{DurationValue-CObiBDnH.mjs → DurationValue-Dn06XQk3.mjs} +2 -2
  168. package/.output/server/chunks/build/DurationValue-Dn06XQk3.mjs.map +1 -0
  169. package/.output/server/chunks/build/EntityLinks-BcpvMt_V.mjs +1 -1
  170. package/.output/server/chunks/build/EnvManagedBadge-_8GfjWjE.mjs +1 -1
  171. package/.output/server/chunks/build/{FeatureUnavailable-Buoyoqx1.mjs → FeatureUnavailable-IaBjVCqQ.mjs} +2 -2
  172. package/.output/server/chunks/build/FeatureUnavailable-IaBjVCqQ.mjs.map +1 -0
  173. package/.output/server/chunks/build/{GetStartedWizard-tL3U_qM1.mjs → GetStartedWizard-BiyxEXWP.mjs} +3 -3
  174. package/.output/server/chunks/build/GetStartedWizard-BiyxEXWP.mjs.map +1 -0
  175. package/.output/server/chunks/build/{HelpHint-C96TlqxY.mjs → HelpHint-CdBz6deq.mjs} +2 -2
  176. package/.output/server/chunks/build/HelpHint-CdBz6deq.mjs.map +1 -0
  177. package/.output/server/chunks/build/{MetaStripGroup-Cp2WCQf7.mjs → MetaStripGroup-CDyGlsNt.mjs} +94 -21
  178. package/.output/server/chunks/build/MetaStripGroup-CDyGlsNt.mjs.map +1 -0
  179. package/.output/server/chunks/build/{NavbarActions-VCHW0u67.mjs → NavbarActions-BTWxKCVI.mjs} +2 -2
  180. package/.output/server/chunks/build/NavbarActions-BTWxKCVI.mjs.map +1 -0
  181. package/.output/server/chunks/build/NavigationMenu-D4ZpdCm_.mjs +1 -1
  182. package/.output/server/chunks/build/OpenInIdeLink-Bnl-_som.mjs +1 -1
  183. package/.output/server/chunks/build/{ProjectTestCasesTable-saHYJoyQ.mjs → ProjectTestCasesTable-DJDAZ9NQ.mjs} +9 -9
  184. package/.output/server/chunks/build/ProjectTestCasesTable-DJDAZ9NQ.mjs.map +1 -0
  185. package/.output/server/chunks/build/{RunReports-CKYYRC59.mjs → RunReports-BSo2cCNx.mjs} +4 -4
  186. package/.output/server/chunks/build/RunReports-BSo2cCNx.mjs.map +1 -0
  187. package/.output/server/chunks/build/{RunStatusBadge-CWhmAmKb.mjs → RunStatusBadge-zfeSwcTx.mjs} +2 -2
  188. package/.output/server/chunks/build/RunStatusBadge-zfeSwcTx.mjs.map +1 -0
  189. package/.output/server/chunks/build/{SectionCard-BB1O3uXd.mjs → SectionCard-CKD1s0eF.mjs} +2 -2
  190. package/.output/server/chunks/build/SectionCard-CKD1s0eF.mjs.map +1 -0
  191. package/.output/server/chunks/build/Select-COU8NARj.mjs +1 -1
  192. package/.output/server/chunks/build/SelectMenu-BUwwc3Qt.mjs +1 -1
  193. package/.output/server/chunks/build/{SettingsField-CEasBHu3.mjs → SettingsField-CDnUtiCM.mjs} +3 -3
  194. package/.output/server/chunks/build/SettingsField-CDnUtiCM.mjs.map +1 -0
  195. package/.output/server/chunks/build/Table-BET-DOtX.mjs +1 -1
  196. package/.output/server/chunks/build/{TestCaseHistoryChart-BgI6P_zS.mjs → TestCaseHistoryChart-Do7WK-ZY.mjs} +16 -17
  197. package/.output/server/chunks/build/TestCaseHistoryChart-Do7WK-ZY.mjs.map +1 -0
  198. package/.output/server/chunks/build/{TestStatusBar-DR8jM5th.mjs → TestStatusBar-BipoEOzd.mjs} +15 -6
  199. package/.output/server/chunks/build/TestStatusBar-BipoEOzd.mjs.map +1 -0
  200. package/.output/server/chunks/build/Tooltip-CK0ucuXC.mjs +1 -1
  201. package/.output/server/chunks/build/{_id_-rQhFY0fN.mjs → _id_-BLPB189b.mjs} +16 -16
  202. package/.output/server/chunks/build/{_id_-rQhFY0fN.mjs.map → _id_-BLPB189b.mjs.map} +1 -1
  203. package/.output/server/chunks/build/{_id_-kkexEH_q.mjs → _id_-BeGJOSxY.mjs} +16 -16
  204. package/.output/server/chunks/build/_id_-BeGJOSxY.mjs.map +1 -0
  205. package/.output/server/chunks/build/{_id_-B7Dw490u.mjs → _id_-CfLEW45H.mjs} +472 -304
  206. package/.output/server/chunks/build/_id_-CfLEW45H.mjs.map +1 -0
  207. package/.output/server/chunks/build/{_id_-DVPb1S93.mjs → _id_-DxHe32cW.mjs} +654 -453
  208. package/.output/server/chunks/build/_id_-DxHe32cW.mjs.map +1 -0
  209. package/.output/server/chunks/build/{about-C4AbyQ4q.mjs → about-FLAssVsA.mjs} +5 -5
  210. package/.output/server/chunks/build/about-FLAssVsA.mjs.map +1 -0
  211. package/.output/server/chunks/build/{account-B45bYZd1.mjs → account-Cvz6KkYu.mjs} +4 -4
  212. package/.output/server/chunks/build/account-Cvz6KkYu.mjs.map +1 -0
  213. package/.output/server/chunks/build/{ai-CgN9xXFf.mjs → ai-DR9Zry7B.mjs} +8 -8
  214. package/.output/server/chunks/build/{ai-CgN9xXFf.mjs.map → ai-DR9Zry7B.mjs.map} +1 -1
  215. package/.output/server/chunks/build/{analytics-BRkiUpwa.mjs → analytics-CCAQayhv.mjs} +9 -9
  216. package/.output/server/chunks/build/{analytics-BRkiUpwa.mjs.map → analytics-CCAQayhv.mjs.map} +1 -1
  217. package/.output/server/chunks/build/{auto-heal-BnTdKHQq.mjs → auto-heal-ngiiiVmq.mjs} +4 -4
  218. package/.output/server/chunks/build/auto-heal-ngiiiVmq.mjs.map +1 -0
  219. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  220. package/.output/server/chunks/build/{default-BGOdM_zA.mjs → default-wYpdMMvh.mjs} +15 -13
  221. package/.output/server/chunks/build/{default-BGOdM_zA.mjs.map → default-wYpdMMvh.mjs.map} +1 -1
  222. package/.output/server/chunks/build/{docs-D7R5eJ1Z.mjs → docs-BX9DoKOI.mjs} +4 -4
  223. package/.output/server/chunks/build/{docs-D7R5eJ1Z.mjs.map → docs-BX9DoKOI.mjs.map} +1 -1
  224. package/.output/server/chunks/build/{edit-BbL3k6c3.mjs → edit-DnyBC4uC.mjs} +7 -7
  225. package/.output/server/chunks/build/{edit-BbL3k6c3.mjs.map → edit-DnyBC4uC.mjs.map} +1 -1
  226. package/.output/server/chunks/build/fetch-DOcN2mHf.mjs +1 -1
  227. package/.output/server/chunks/build/{help-content-BK3jcgLw.mjs → help-content-3QLSe6Vd.mjs} +3 -3
  228. package/.output/server/chunks/build/help-content-3QLSe6Vd.mjs.map +1 -0
  229. package/.output/server/chunks/build/{import-ibAn_HB9.mjs → import-S-w3MXez.mjs} +8 -8
  230. package/.output/server/chunks/build/import-S-w3MXez.mjs.map +1 -0
  231. package/.output/server/chunks/build/{index-D5A0DW7Y.mjs → index-BFr7JW_2.mjs} +4 -4
  232. package/.output/server/chunks/build/index-BFr7JW_2.mjs.map +1 -0
  233. package/.output/server/chunks/build/{index-CqinXTVs.mjs → index-CdzYiYiu.mjs} +9 -9
  234. package/.output/server/chunks/build/{index-CqinXTVs.mjs.map → index-CdzYiYiu.mjs.map} +1 -1
  235. package/.output/server/chunks/build/{index-DreB_S-d.mjs → index-CgYJur1z.mjs} +31 -23
  236. package/.output/server/chunks/build/index-CgYJur1z.mjs.map +1 -0
  237. package/.output/server/chunks/build/{index-2GmuPNF-.mjs → index-CjnZ521K.mjs} +22 -4
  238. package/.output/server/chunks/build/index-CjnZ521K.mjs.map +1 -0
  239. package/.output/server/chunks/build/{index-KsRegEjT.mjs → index-xgA4P1ht.mjs} +3218 -4087
  240. package/.output/server/chunks/build/index-xgA4P1ht.mjs.map +1 -0
  241. package/.output/server/chunks/build/isValueEqualOrExist-D4lZ8uRY.mjs +1 -1
  242. package/.output/server/chunks/build/login-DueFS2RU.mjs +1 -1
  243. package/.output/server/chunks/build/{mcp-Dwj29-uG.mjs → mcp-DlZzubUF.mjs} +7 -7
  244. package/.output/server/chunks/build/mcp-DlZzubUF.mjs.map +1 -0
  245. package/.output/server/chunks/build/{notifications-CjAn5FJj.mjs → notifications-ByPVhyPX.mjs} +6 -6
  246. package/.output/server/chunks/build/notifications-ByPVhyPX.mjs.map +1 -0
  247. package/.output/server/chunks/build/{performance-DRzcu_c7.mjs → performance-Dc9FhaJr.mjs} +6 -6
  248. package/.output/server/chunks/build/performance-Dc9FhaJr.mjs.map +1 -0
  249. package/.output/server/chunks/build/{pr-feedback-DR60oGBf.mjs → pr-feedback-5kC_UmKG.mjs} +4 -4
  250. package/.output/server/chunks/build/pr-feedback-5kC_UmKG.mjs.map +1 -0
  251. package/.output/server/chunks/build/{selections-BjjolRZ9.mjs → selections-C6J9mI0s.mjs} +9 -9
  252. package/.output/server/chunks/build/selections-C6J9mI0s.mjs.map +1 -0
  253. package/.output/server/chunks/build/server.mjs +33 -33
  254. package/.output/server/chunks/build/{settings-B3NWV9tu.mjs → settings-DcCAv0U4.mjs} +17 -81
  255. package/.output/server/chunks/build/settings-DcCAv0U4.mjs.map +1 -0
  256. package/.output/server/chunks/build/{settings-metadata-DwJk8uSt.mjs → settings-metadata-B684YiW4.mjs} +2 -2
  257. package/.output/server/chunks/build/settings-metadata-B684YiW4.mjs.map +1 -0
  258. package/.output/server/chunks/build/{setup-BlgFTixN.mjs → setup-Cf3Mzf-W.mjs} +8 -8
  259. package/.output/server/chunks/build/{setup-BlgFTixN.mjs.map → setup-Cf3Mzf-W.mjs.map} +1 -1
  260. package/.output/server/chunks/build/{storage-C1O-FC0U.mjs → storage-B4VySiv3.mjs} +7 -7
  261. package/.output/server/chunks/build/storage-B4VySiv3.mjs.map +1 -0
  262. package/.output/server/chunks/build/{tags-dsvYrnii.mjs → tags-BvWdsd1F.mjs} +25 -11
  263. package/.output/server/chunks/build/tags-BvWdsd1F.mjs.map +1 -0
  264. package/.output/server/chunks/build/{test-cases-CFiOuyK6.mjs → test-cases-LIIu7dMu.mjs} +11 -11
  265. package/.output/server/chunks/build/test-cases-LIIu7dMu.mjs.map +1 -0
  266. package/.output/server/chunks/build/{test-functions-CbmBi6az.mjs → test-functions-Dv8nezrM.mjs} +8 -8
  267. package/.output/server/chunks/build/test-functions-Dv8nezrM.mjs.map +1 -0
  268. package/.output/server/chunks/build/{useCopyRich-DPKZKHvZ.mjs → useCopyRich-DRRKIts2.mjs} +17 -14
  269. package/.output/server/chunks/build/{useCopyRich-DPKZKHvZ.mjs.map → useCopyRich-DRRKIts2.mjs.map} +1 -1
  270. package/.output/server/chunks/build/{useDesktopDownload-R_RWSgUV.mjs → useDesktopDownload-CK-5nATq.mjs} +2 -2
  271. package/.output/server/chunks/build/useDesktopDownload-CK-5nATq.mjs.map +1 -0
  272. package/.output/server/chunks/build/{useDesktopLocalRuns-BdELBy0Y.mjs → useDesktopLocalRuns-BHZic4MJ.mjs} +3 -3
  273. package/.output/server/chunks/build/useDesktopLocalRuns-BHZic4MJ.mjs.map +1 -0
  274. package/.output/server/chunks/build/{useDesktopProjectLink-IUN7SIP2.mjs → useDesktopProjectLink-CqBvnXwG.mjs} +2 -2
  275. package/.output/server/chunks/build/useDesktopProjectLink-CqBvnXwG.mjs.map +1 -0
  276. package/.output/server/chunks/build/useOpenInIde-DS4YXevu.mjs +1 -1
  277. package/.output/server/chunks/build/{useSettingsNav-Dg87E7kY.mjs → useSettingsNav-dyHz-2Bz.mjs} +2 -2
  278. package/.output/server/chunks/build/useSettingsNav-dyHz-2Bz.mjs.map +1 -0
  279. package/.output/server/chunks/build/{users-DgsoiXxQ.mjs → users-CluLB8DL.mjs} +31 -13
  280. package/.output/server/chunks/build/users-CluLB8DL.mjs.map +1 -0
  281. package/.output/server/chunks/nitro/nitro.mjs +839 -680
  282. package/.output/server/chunks/routes/__piwi/session.get.mjs +1 -1
  283. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +5 -2
  284. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
  285. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +1 -1
  286. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +1 -1
  287. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +42 -26
  288. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
  289. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +1 -1
  290. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +1 -1
  291. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +1 -1
  292. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +1 -1
  293. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +1 -1
  294. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +1 -1
  295. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +1 -1
  296. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +1 -1
  297. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +1 -1
  298. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +1 -1
  299. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +1 -0
  300. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  301. package/.output/server/chunks/routes/api/traces/check.post.mjs +1 -1
  302. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
  303. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +1 -1
  304. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +1 -1
  305. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
  306. package/.output/server/chunks/routes/mcp.post.mjs +1 -1
  307. package/.output/server/chunks/routes/renderer.mjs +1 -1
  308. package/.output/server/chunks/routes/share/_token_.get.mjs +1 -1
  309. package/.output/server/index.mjs +1 -1
  310. package/.output/server/package.json +1 -1
  311. package/package.json +1 -1
  312. package/.output/public/_nuxt/3HmftUHT.js +0 -1
  313. package/.output/public/_nuxt/B7zo6PK8.js +0 -1
  314. package/.output/public/_nuxt/BO4sfkbw.js +0 -1
  315. package/.output/public/_nuxt/BdyXNI2_.js +0 -1
  316. package/.output/public/_nuxt/Bg63qh8W.js +0 -1
  317. package/.output/public/_nuxt/BnhWd06P.js +0 -1
  318. package/.output/public/_nuxt/CHWW6xiX.js +0 -1
  319. package/.output/public/_nuxt/CIPvUOic.js +0 -2
  320. package/.output/public/_nuxt/CVcFbORW.js +0 -9
  321. package/.output/public/_nuxt/CZlz5y13.js +0 -1
  322. package/.output/public/_nuxt/CkV_UG8j.js +0 -1
  323. package/.output/public/_nuxt/D0TpBpCc.js +0 -1
  324. package/.output/public/_nuxt/D3LyIeiJ.js +0 -1
  325. package/.output/public/_nuxt/DcccidY5.js +0 -4
  326. package/.output/public/_nuxt/DqkCbAzo.js +0 -1
  327. package/.output/public/_nuxt/DwH4SIZE.js +0 -1
  328. package/.output/public/_nuxt/DwZS0oRm.js +0 -2
  329. package/.output/public/_nuxt/DxPZIuWy.js +0 -1
  330. package/.output/public/_nuxt/Dyb1FouX.js +0 -1
  331. package/.output/public/_nuxt/builds/meta/a5fb24cc-65e3-4e55-aa12-038fe2de4754.json +0 -1
  332. package/.output/public/_nuxt/entry.BFe0Ua9k.css +0 -1
  333. package/.output/public/_nuxt/i7znB42v.js +0 -1
  334. package/.output/server/chunks/build/BreadcrumbNav-DBnGj5Jq.mjs.map +0 -1
  335. package/.output/server/chunks/build/BrowserBadge-vFb1ERG_.mjs.map +0 -1
  336. package/.output/server/chunks/build/ChartMarkerLines-BXqUpUcs.mjs.map +0 -1
  337. package/.output/server/chunks/build/ChartTooltip-DoF6Smyc.mjs.map +0 -1
  338. package/.output/server/chunks/build/CodeBlock-CmvKHaq8.mjs.map +0 -1
  339. package/.output/server/chunks/build/DataLocationCard-ChV02QJj.mjs.map +0 -1
  340. package/.output/server/chunks/build/DiagnosisPanel-C_ndadzP.mjs.map +0 -1
  341. package/.output/server/chunks/build/DiagnosisResult-GAjo6Lt3.mjs.map +0 -1
  342. package/.output/server/chunks/build/DurationValue-CObiBDnH.mjs.map +0 -1
  343. package/.output/server/chunks/build/FeatureUnavailable-Buoyoqx1.mjs.map +0 -1
  344. package/.output/server/chunks/build/GetStartedWizard-tL3U_qM1.mjs.map +0 -1
  345. package/.output/server/chunks/build/HelpHint-C96TlqxY.mjs.map +0 -1
  346. package/.output/server/chunks/build/MetaStripGroup-Cp2WCQf7.mjs.map +0 -1
  347. package/.output/server/chunks/build/NavbarActions-VCHW0u67.mjs.map +0 -1
  348. package/.output/server/chunks/build/ProjectTestCasesTable-saHYJoyQ.mjs.map +0 -1
  349. package/.output/server/chunks/build/RunReports-CKYYRC59.mjs.map +0 -1
  350. package/.output/server/chunks/build/RunStatusBadge-CWhmAmKb.mjs.map +0 -1
  351. package/.output/server/chunks/build/SectionCard-BB1O3uXd.mjs.map +0 -1
  352. package/.output/server/chunks/build/SettingsField-CEasBHu3.mjs.map +0 -1
  353. package/.output/server/chunks/build/TestCaseHistoryChart-BgI6P_zS.mjs.map +0 -1
  354. package/.output/server/chunks/build/TestStatusBar-DR8jM5th.mjs.map +0 -1
  355. package/.output/server/chunks/build/_id_-B7Dw490u.mjs.map +0 -1
  356. package/.output/server/chunks/build/_id_-DVPb1S93.mjs.map +0 -1
  357. package/.output/server/chunks/build/_id_-kkexEH_q.mjs.map +0 -1
  358. package/.output/server/chunks/build/about-C4AbyQ4q.mjs.map +0 -1
  359. package/.output/server/chunks/build/account-B45bYZd1.mjs.map +0 -1
  360. package/.output/server/chunks/build/auto-heal-BnTdKHQq.mjs.map +0 -1
  361. package/.output/server/chunks/build/help-content-BK3jcgLw.mjs.map +0 -1
  362. package/.output/server/chunks/build/import-ibAn_HB9.mjs.map +0 -1
  363. package/.output/server/chunks/build/index-2GmuPNF-.mjs.map +0 -1
  364. package/.output/server/chunks/build/index-D5A0DW7Y.mjs.map +0 -1
  365. package/.output/server/chunks/build/index-DreB_S-d.mjs.map +0 -1
  366. package/.output/server/chunks/build/index-KsRegEjT.mjs.map +0 -1
  367. package/.output/server/chunks/build/mcp-Dwj29-uG.mjs.map +0 -1
  368. package/.output/server/chunks/build/notifications-CjAn5FJj.mjs.map +0 -1
  369. package/.output/server/chunks/build/performance-DRzcu_c7.mjs.map +0 -1
  370. package/.output/server/chunks/build/pr-feedback-DR60oGBf.mjs.map +0 -1
  371. package/.output/server/chunks/build/selections-BjjolRZ9.mjs.map +0 -1
  372. package/.output/server/chunks/build/settings-B3NWV9tu.mjs.map +0 -1
  373. package/.output/server/chunks/build/settings-metadata-DwJk8uSt.mjs.map +0 -1
  374. package/.output/server/chunks/build/storage-C1O-FC0U.mjs.map +0 -1
  375. package/.output/server/chunks/build/tags-dsvYrnii.mjs.map +0 -1
  376. package/.output/server/chunks/build/test-cases-CFiOuyK6.mjs.map +0 -1
  377. package/.output/server/chunks/build/test-functions-CbmBi6az.mjs.map +0 -1
  378. package/.output/server/chunks/build/useDesktopDownload-R_RWSgUV.mjs.map +0 -1
  379. package/.output/server/chunks/build/useDesktopLocalRuns-BdELBy0Y.mjs.map +0 -1
  380. package/.output/server/chunks/build/useDesktopProjectLink-IUN7SIP2.mjs.map +0 -1
  381. package/.output/server/chunks/build/useSettingsNav-Dg87E7kY.mjs.map +0 -1
  382. package/.output/server/chunks/build/users-DgsoiXxQ.mjs.map +0 -1
@@ -1 +1 @@
1
- import{_ as be,a as Re}from"./BV8EzO8q.js";import{d as ee,o as a,c as u,e as p,f as i,g as n,h as o,_ as te,i as j,t as c,x as Q,b as t,l as g,k,v as f,j as ne,H as le,F as E,z as M,r as re,s as Te,ac as $e}from"./BdQ7kfxJ.js";import{_ as we}from"./CUWrUpTl.js";import{_ as Fe}from"./Bp2zrrkV.js";import{_ as je,a as Se}from"./B7uPoZ7T.js";import{_ as Ce}from"./C2hIM5f9.js";import{_ as Ve}from"./Be0bwdsi.js";import{_ as Ne}from"./CZ6WR7uw.js";import{_ as ze}from"./B0eHOux4.js";import{_ as Pe}from"./oA84LLqO.js";import{_ as oe}from"./DzJa19LG.js";import{_ as ie}from"./LWIyaZKe.js";import{_ as Ue}from"./CLrLFf3s.js";import{_ as Ee}from"./CfV2N201.js";import{_ as ue}from"./BOn5q0rT.js";import{a as Z,I as L,e as Ie}from"./DwZS0oRm.js";import{_ as Oe}from"./CxRTKV-K.js";import{_ as De}from"./HGYIpJtg.js";import{u as se}from"./DTtizz85.js";import{u as Ae}from"./BY9A1aOT.js";import{u as Be}from"./Bo73sAu8.js";import"./i7znB42v.js";import"./rPG7kzfL.js";import"./EJllK0wm.js";import"./DKgbchez.js";import"./BO4sfkbw.js";import"./WZXZeGYt.js";import"./CxwnFFD0.js";import"./CrsaY0R_.js";import"./Bg63qh8W.js";import"./Gn1Ns00e.js";import"./DqkCbAzo.js";const Le={class:"flex items-center gap-3 flex-wrap"},Me={class:"flex items-center gap-1.5"},He={key:0,class:"text-gray-500"},Ke={key:1},We={key:2},Ge={class:"flex items-center gap-1.5 cursor-pointer select-none text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 transition-colors"},Je=ee({__name:"HomeFilters",props:{modelValue:{},availableEnvironments:{}},emits:["update:modelValue"],setup(I,{emit:b}){const T=I,R=b,N=f({get:()=>T.modelValue.environments,set:S=>R("update:modelValue",{...T.modelValue,environments:S})}),$=f({get:()=>T.modelValue.fullRunsOnly,set:S=>R("update:modelValue",{...T.modelValue,fullRunsOnly:S})}),O=f(()=>T.modelValue.environments.length>0||!T.modelValue.fullRunsOnly);function z(){R("update:modelValue",{environments:[],fullRunsOnly:!0})}return(S,v)=>{const H=te,r=we,_=Fe,x=ne;return a(),u("div",Le,[I.availableEnvironments.length>0?(a(),p(r,{key:0,modelValue:t(N),"onUpdate:modelValue":v[0]||(v[0]=m=>Q(N)?N.value=m:null),items:I.availableEnvironments,multiple:"",placeholder:"All environments",size:"sm",class:"min-w-[160px]"},{default:i(({modelValue:m})=>[n("div",Me,[o(H,{name:"i-lucide-server",class:j(["size-3.5 shrink-0",m.length?"text-primary":"text-gray-400"])},null,8,["class"]),m.length?m.length===1?(a(),u("span",Ke,c(m[0]),1)):(a(),u("span",We,c(m.length)+" environments",1)):(a(),u("span",He,"All environments"))])]),_:1},8,["modelValue","items"])):g("",!0),n("label",Ge,[o(_,{modelValue:t($),"onUpdate:modelValue":v[1]||(v[1]=m=>Q($)?$.value=m:null),size:"sm"},null,8,["modelValue"]),v[2]||(v[2]=k(" Full runs only ",-1))]),t(O)?(a(),p(x,{key:1,variant:"ghost",size:"sm",color:"neutral",icon:"i-lucide-x",onClick:z},{default:i(()=>[...v[3]||(v[3]=[k(" Reset ",-1)])]),_:1})):g("",!0)])}}}),Ye=Object.assign(Je,{__name:"HomeFilters"}),Xe={class:"hidden md:block overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0"},qe={key:0,class:"flex flex-wrap gap-1 mt-0.5"},Qe={class:"w-40"},Ze={key:1,class:"text-gray-400 text-sm"},et={class:"text-xs text-gray-500 dark:text-gray-400"},tt={key:1,class:"text-gray-400 text-sm"},nt={key:0,class:"tabular-nums text-sm text-gray-600 dark:text-gray-400"},st={key:1,class:"text-gray-400"},at={class:"space-y-2 md:hidden"},lt={class:"flex items-start justify-between gap-2"},rt={key:0,class:"flex flex-wrap gap-1"},ot={class:"flex items-center justify-between gap-2 text-xs"},it={class:"text-gray-500 dark:text-gray-400 truncate"},ut={key:1,class:"text-gray-400"},ct={key:2,class:"shrink-0 tabular-nums text-gray-500 dark:text-gray-400"},dt=ee({__name:"ProjectTrendTable",props:{projects:{},limit:{default:10}},setup(I){const b=I,T={failing:0,flaky:1,passing:2,unknown:3},R=re(!1),N=f(()=>b.projects.length>b.limit),$=f(()=>{const r=[...b.projects].sort((_,x)=>{const m=T[_.tendency]-T[x.tendency];if(m!==0)return m;const C=_.latestFullRun?new Date(_.latestFullRun.startTime).getTime():0;return(x.latestFullRun?new Date(x.latestFullRun.startTime).getTime():0)-C});return R.value?r:r.slice(0,b.limit)});function O(r){return r>=90?"text-green-600 dark:text-green-400":r>=50?"text-yellow-600 dark:text-yellow-400":"text-red-600 dark:text-red-400"}function z(r){switch(r){case"failing":return"text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800";case"flaky":return"text-amber-700 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 border-amber-200 dark:border-amber-800";case"passing":return"text-green-700 dark:text-green-400 bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800";default:return"text-gray-500 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 border-gray-200 dark:border-gray-700"}}function S(r){return r==="unknown"?"Unknown":r.charAt(0).toUpperCase()+r.slice(1)}function v(r){switch(r){case"failing":return"i-lucide-trending-down";case"flaky":return"i-lucide-shuffle";case"passing":return"i-lucide-trending-up";default:return"i-lucide-minus"}}const H=[{accessorKey:"name",header:"Project"},{id:"recentRuns",header:"Last 20 runs"},{accessorKey:"tendency",header:"Tendency"},{id:"passRate",header:"Pass rate"},{id:"latestRun",header:"Latest run"},{id:"tests",header:"Tests"}];return(r,_)=>{const x=ne,m=le,C=ze,h=Pe,D=te,V=oe,A=ie,Y=Ue,X=Ee,K=ue;return a(),p(K,{icon:"i-lucide-layout-dashboard",title:"Project health",help:"home.project-health"},{actions:i(()=>[t(N)&&!t(R)?(a(),p(x,{key:0,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-down",onClick:_[0]||(_[0]=e=>R.value=!0)},{default:i(()=>[k(" Show all "+c(b.projects.length),1)]),_:1})):t(R)?(a(),p(x,{key:1,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-up",onClick:_[1]||(_[1]=e=>R.value=!1)},{default:i(()=>[..._[2]||(_[2]=[k(" Show less ",-1)])]),_:1})):g("",!0),o(x,{to:"/projects",variant:"outline",size:"sm"},{default:i(()=>[..._[3]||(_[3]=[k("View all",-1)])]),_:1})]),default:i(()=>[n("div",Xe,[o(Y,{data:t($),columns:H,ui:{base:"min-w-[700px]",td:"py-3",th:"py-3 text-xs uppercase tracking-wide"}},{"name-cell":i(({row:e})=>[o(m,{to:`/projects/${e.original.id}`,class:"font-medium text-primary hover:underline truncate block max-w-[200px]"},{default:i(()=>[k(c(e.original.label||e.original.name),1)]),_:2},1032,["to"]),e.original.tags.length>0?(a(),u("div",qe,[(a(!0),u(E,null,M(e.original.tags,w=>(a(),p(C,{key:w.id,text:w.text,color:w.color},null,8,["text","color"]))),128))])):g("",!0)]),"recentRuns-cell":i(({row:e})=>[n("div",Qe,[o(h,{runs:e.original.recentRuns,height:28},null,8,["runs"])])]),"tendency-cell":i(({row:e})=>[n("span",{class:j(["inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-medium border whitespace-nowrap",z(e.original.tendency)])},[o(D,{name:v(e.original.tendency),class:"size-3 shrink-0"},null,8,["name"]),k(" "+c(S(e.original.tendency)),1)],2)]),"passRate-cell":i(({row:e})=>[e.original.latestFullRun?(a(),u("span",{key:0,class:j(["font-semibold tabular-nums text-sm",O(("passRate"in r?r.passRate:t(L))(e.original.latestFullRun))])},c(("passRate"in r?r.passRate:t(L))(e.original.latestFullRun))+"% ",3)):(a(),u("span",Ze,"—"))]),"latestRun-cell":i(({row:e})=>[e.original.latestFullRun?(a(),p(m,{key:0,to:`/test-runs/${e.original.latestFullRun.id}`,class:"flex items-center gap-2 min-w-[140px] hover:opacity-80 transition-opacity"},{default:i(()=>[o(V,{status:e.original.latestFullRun.status},null,8,["status"]),n("div",et,[n("div",null,c(("formatRelativeTime"in r?r.formatRelativeTime:t(Z))(e.original.latestFullRun.startTime)),1),e.original.latestFullRun.duration?(a(),p(A,{key:0,ms:e.original.latestFullRun.duration},null,8,["ms"])):g("",!0)])]),_:2},1032,["to"])):(a(),u("span",tt,"No full runs"))]),"tests-cell":i(({row:e})=>[e.original.latestFullRun?(a(),u("span",nt,c(e.original.latestFullRun.passedTests)+"/"+c(e.original.latestFullRun.totalTests),1)):(a(),u("span",st,"—"))]),_:1},8,["data"])]),n("div",at,[(a(!0),u(E,null,M(t($),e=>(a(),u("div",{key:e.id,class:"rounded-lg border border-default p-3 space-y-2"},[n("div",lt,[o(m,{to:`/projects/${e.id}`,class:"font-medium text-primary hover:underline truncate"},{default:i(()=>[k(c(e.label||e.name),1)]),_:2},1032,["to"]),n("span",{class:j(["inline-flex shrink-0 items-center gap-1 rounded border px-1.5 py-0.5 text-xs font-medium whitespace-nowrap",z(e.tendency)])},[o(D,{name:v(e.tendency),class:"size-3 shrink-0"},null,8,["name"]),k(" "+c(S(e.tendency)),1)],2)]),e.tags.length>0?(a(),u("div",rt,[(a(!0),u(E,null,M(e.tags,w=>(a(),p(C,{key:w.id,text:w.text,color:w.color},null,8,["text","color"]))),128))])):g("",!0),o(h,{runs:e.recentRuns,height:24},null,8,["runs"]),n("div",ot,[e.latestFullRun?(a(),p(m,{key:0,to:`/test-runs/${e.latestFullRun.id}`,class:"flex items-center gap-1.5 min-w-0 hover:opacity-80"},{default:i(()=>[o(V,{status:e.latestFullRun.status},null,8,["status"]),n("span",it,c(("formatRelativeTime"in r?r.formatRelativeTime:t(Z))(e.latestFullRun.startTime)),1)]),_:2},1032,["to"])):(a(),u("span",ut,"No full runs")),e.latestFullRun?(a(),u("span",ct,[n("span",{class:j(["font-semibold",O(("passRate"in r?r.passRate:t(L))(e.latestFullRun))])},c(("passRate"in r?r.passRate:t(L))(e.latestFullRun))+"% ",3),k(" · "+c(e.latestFullRun.passedTests)+"/"+c(e.latestFullRun.totalTests),1)])):g("",!0)])]))),128))]),t($).length===0?(a(),p(X,{key:0,text:"No projects yet",padded:!1,class:"py-8"})):g("",!0)]),_:1})}}}),mt=Object.assign(dt,{__name:"ProjectTrendTable"}),pt={key:0,class:"p-6"},gt={key:1,class:"p-6 space-y-8","aria-busy":"true"},ft={class:"grid grid-cols-1 xl:grid-cols-3 gap-6 items-start"},_t={class:"xl:col-span-2 space-y-3"},yt={class:"space-y-3"},vt={key:2,class:"p-6 space-y-8"},ht={key:1,class:"flex flex-wrap items-center gap-x-8 gap-y-3 text-sm border border-gray-200 dark:border-gray-700 rounded-xl px-6 py-4 bg-gray-50 dark:bg-gray-900/50"},xt={class:"flex items-center gap-1.5"},kt={class:"font-semibold tabular-nums"},bt={class:"flex items-center gap-1.5"},Rt={class:"flex items-center gap-1.5"},Tt={key:0,class:"flex items-center gap-1.5"},$t={class:"font-semibold tabular-nums"},wt={class:"flex items-center gap-1.5"},Ft={class:"font-semibold tabular-nums"},jt={key:2,class:"grid grid-cols-1 xl:grid-cols-3 gap-6 items-start"},St={class:"xl:col-span-2"},Ct={class:"divide-y divide-gray-100 dark:divide-gray-800 text-sm"},Vt={class:"flex-1 min-w-0"},Nt={class:"font-medium truncate"},zt={class:"text-xs text-gray-400"},Pt={class:"text-right tabular-nums shrink-0"},Ut={key:3,class:"text-center py-12 text-gray-500 dark:text-gray-400"},Et={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4"},It={class:"flex flex-col gap-3 h-full"},Ot={class:"p-2 bg-primary/10 rounded-lg w-fit"},Dt={class:"text-xs font-semibold uppercase tracking-wide text-primary mb-1"},At={class:"font-semibold mb-1"},Bt={class:"text-sm text-gray-600 dark:text-gray-400"},ae=6,kn=ee({__name:"index",setup(I){Te({title:"Piwi Dashboard"});const{data:b,error:T,refresh:R,status:N}=se("/api/projects/overview",{lazy:!0,default:()=>[],transform:l=>l.items},"$LKtEy4Bi96"),{data:$,error:O,refresh:z}=se("/api/test-runs/recent",{lazy:!0,transform:l=>l.items},"$tXxkP3waVF");Ae(()=>Promise.all([R(),z()]));const S=f(()=>N.value==="pending"&&!b.value?.length),v=f(()=>T.value||O.value);function H(){R(),z()}const r=Be("piwi-home-filters",{default:()=>({environments:[],fullRunsOnly:!0}),encode:l=>JSON.stringify(l),decode:l=>{try{return l?JSON.parse(l):{environments:[],fullRunsOnly:!0}}catch{return{environments:[],fullRunsOnly:!0}}}}),_=f(()=>{const l=new Set;for(const s of $.value??[])s.environment&&l.add(s.environment);for(const s of b.value??[])for(const y of s.recentRuns)y.environment&&l.add(y.environment);return[...l].sort()});function x(l){return r.value.environments.length===0?!0:!!l&&r.value.environments.includes(l)}const m=f(()=>{let l=$.value??[];return r.value.fullRunsOnly&&(l=l.filter(s=>s.isFullRun)),r.value.environments.length>0&&(l=l.filter(s=>x(s.environment))),l}),C=f(()=>{let l=b.value??[];return r.value.environments.length>0&&(l=l.map(s=>({...s,recentRuns:s.recentRuns.filter(y=>x(y.environment))})).filter(s=>s.recentRuns.length>0)),l}),h=f(()=>{const l=C.value,s=l.length,y=l.filter(F=>F.tendency==="failing").length,B=l.filter(F=>F.tendency==="flaky").length;let P=0,W=0;for(const F of l)F.latestFullRun&&(P+=F.latestFullRun.passedTests,W+=F.latestFullRun.totalTests);const G=W>0?Math.round(P/W*100):null,q=Date.now()-1440*60*1e3,U=m.value.filter(F=>new Date(F.startTime).getTime()>q).length;return{totalProjects:s,failingNow:y,flakyNow:B,avgPassRate:G,runs24h:U}}),D=new Set(["running","initializing","finalizing"]),V=re(!1),A=f(()=>[...m.value].sort((s,y)=>{const B=D.has(s.status)?0:1,P=D.has(y.status)?0:1;return B!==P?B-P:new Date(y.startTime).getTime()-new Date(s.startTime).getTime()})),Y=f(()=>V.value?A.value:A.value.slice(0,ae)),X=f(()=>A.value.length>ae),K=f(()=>m.value.length>0),e=f(()=>(b.value?.length??0)>0),w=f(()=>r.value.fullRunsOnly?($.value??[]).filter(y=>x(y.environment)).filter(y=>!y.isFullRun).length:0);function ce(){r.value={...r.value,fullRunsOnly:!1}}function de(l){const s=L(l);return s>=90?"text-green-600 dark:text-green-400":s>=50?"text-yellow-600 dark:text-yellow-400":"text-red-600 dark:text-red-400"}function me(l){return D.has(l)?"border-l-blue-400":l==="passed"?"border-l-green-500":l==="failed"||l==="timedout"||l==="interrupted"?"border-l-red-500":"border-l-gray-300 dark:border-l-gray-600"}const pe=[{icon:"i-lucide-radio",tagline:"Watch your CI run live",title:"Live streaming",description:"Follow test execution in real time. Investigate failures while the suite is still running — no waiting for the CI job to finish."},{icon:"i-lucide-layers",tagline:"10 failures, 2 root causes",title:"Failure clustering",description:"Tests sharing the same error are grouped automatically. Triage one cluster instead of scrolling through unrelated failures."},{icon:"i-lucide-brain-circuit",tagline:"Diagnosis grounded in your code",title:"AI diagnosis",description:"AI analyzes failure clusters using your actual SCM diff, trace files, and run history — not a generic prompt."},{icon:"i-lucide-archive",tagline:"Every run, forever",title:"Permanent test intelligence",description:"Test results, traces, and HTML reports stored permanently. Compare runs, track flakiness trends, and never lose a CI result again."}];return(l,s)=>{const y=be,B=Re,P=Ye,W=Se,G=ne,q=Ce,U=Ve,F=Ne,J=te,ge=mt,fe=oe,_e=ie,ye=le,ve=ue,he=Oe,xe=De,ke=je;return a(),p(ke,{id:"home"},{header:i(()=>[o(W,null,$e({leading:i(()=>[o(y),o(B,{items:[{label:"Home",icon:"i-lucide-house",to:"/"}]})]),_:2},[t(e)?{name:"trailing",fn:i(()=>[o(P,{modelValue:t(r),"onUpdate:modelValue":s[0]||(s[0]=d=>Q(r)?r.value=d:null),"available-environments":t(_)},null,8,["modelValue","available-environments"])]),key:"0"}:void 0]),1024)]),body:i(()=>[t(v)?(a(),u("div",pt,[o(q,{text:`Couldn't load the dashboard: ${t(Ie)(t(v))}`},{action:i(()=>[o(G,{size:"sm",color:"neutral",variant:"outline",icon:"i-lucide-refresh-cw",onClick:H},{default:i(()=>[...s[3]||(s[3]=[k(" Retry ",-1)])]),_:1})]),_:1},8,["text"])])):t(S)?(a(),u("div",gt,[s[4]||(s[4]=n("span",{class:"sr-only",role:"status"},"Loading dashboard…",-1)),o(U,{class:"h-14 w-full rounded-xl"}),n("div",ft,[n("div",_t,[o(U,{class:"h-7 w-40"}),o(U,{class:"h-72 w-full rounded-lg"})]),n("div",yt,[o(U,{class:"h-7 w-32"}),(a(),u(E,null,M(5,d=>o(U,{key:d,class:"h-12 w-full rounded-lg"})),64))])])])):(a(),u("div",vt,[t(w)>0?(a(),p(F,{key:0,icon:"i-lucide-info",color:"primary",variant:"subtle",title:t(w)===1?"1 partial run is hidden":`${t(w)} partial runs are hidden`,description:"The “Full runs only” filter hides runs that only cover part of the suite (e.g. a single spec or --grep).",actions:[{label:"Show them",color:"primary",variant:"solid",size:"xs",onClick:ce}]},null,8,["title","actions"])):g("",!0),t(e)?(a(),u("div",ht,[n("div",xt,[o(J,{name:"i-lucide-folder",class:"size-4 text-primary shrink-0"}),n("span",kt,c(t(h).totalProjects),1),s[5]||(s[5]=n("span",{class:"text-gray-500"},"projects",-1))]),n("div",bt,[n("div",{class:j(["w-2 h-2 rounded-full shrink-0",t(h).failingNow>0?"bg-red-500":"bg-green-500"])},null,2),n("span",{class:j(["font-semibold tabular-nums",t(h).failingNow>0?"text-red-600 dark:text-red-400":""])},c(t(h).failingNow),3),s[6]||(s[6]=n("span",{class:"text-gray-500"},"failing now",-1))]),n("div",Rt,[n("div",{class:j(["w-2 h-2 rounded-full shrink-0",t(h).flakyNow>0?"bg-amber-400":"bg-gray-300 dark:bg-gray-600"])},null,2),n("span",{class:j(["font-semibold tabular-nums",t(h).flakyNow>0?"text-amber-600 dark:text-amber-400":""])},c(t(h).flakyNow),3),s[7]||(s[7]=n("span",{class:"text-gray-500"},"flaky",-1))]),t(h).avgPassRate!==null?(a(),u("div",Tt,[o(J,{name:"i-lucide-check-circle",class:"size-4 text-green-500 shrink-0"}),n("span",$t,c(t(h).avgPassRate)+"%",1),s[8]||(s[8]=n("span",{class:"text-gray-500"},"avg pass rate",-1))])):g("",!0),n("div",wt,[o(J,{name:"i-lucide-play-circle",class:"size-4 text-primary shrink-0"}),n("span",Ft,c(t(h).runs24h),1),s[9]||(s[9]=n("span",{class:"text-gray-500"},"runs today",-1))])])):g("",!0),t(e)||t(K)?(a(),u("div",jt,[n("div",St,[t(e)?(a(),p(ge,{key:0,projects:t(C)},null,8,["projects"])):g("",!0)]),t(K)?(a(),p(ve,{key:0,icon:"i-lucide-activity",title:"Recent activity"},{actions:i(()=>[t(X)&&!t(V)?(a(),p(G,{key:0,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-down",onClick:s[1]||(s[1]=d=>V.value=!0)},{default:i(()=>[k(" Show all "+c(t(A).length),1)]),_:1})):t(V)?(a(),p(G,{key:1,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-up",onClick:s[2]||(s[2]=d=>V.value=!1)},{default:i(()=>[...s[10]||(s[10]=[k(" Show less ",-1)])]),_:1})):g("",!0)]),default:i(()=>[n("div",Ct,[(a(!0),u(E,null,M(t(Y),d=>(a(),p(ye,{key:d.id,to:`/test-runs/${d.id}`,class:j(["flex items-center gap-3 py-3 pl-3 border-l-2 hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded-r transition-colors",me(d.status)])},{default:i(()=>[o(fe,{status:d.status},null,8,["status"]),n("div",Vt,[n("div",Nt,c(d.projectLabel||d.projectName),1),n("div",zt,"Run #"+c(d.id)+" · "+c(("formatRelativeTime"in l?l.formatRelativeTime:t(Z))(d.startTime)),1)]),n("div",Pt,[n("div",{class:j(de(d))},c(("passRate"in l?l.passRate:t(L))(d))+"%",3),d.duration?(a(),p(_e,{key:0,ms:d.duration,class:"block text-xs text-gray-400"},null,8,["ms"])):g("",!0)])]),_:2},1032,["to","class"]))),128))])]),_:1})):g("",!0)])):g("",!0),t(e)&&!t(K)&&t(C).length===0?(a(),u("div",Ut,[o(J,{name:"i-lucide-filter-x",class:"size-8 mx-auto mb-2 opacity-40"}),s[11]||(s[11]=n("p",null,"No runs match the current filters.",-1))])):g("",!0),t(e)?g("",!0):(a(),u(E,{key:4},[o(he),n("div",Et,[(a(),u(E,null,M(pe,d=>o(xe,{key:d.title,class:"flex flex-col"},{default:i(()=>[n("div",It,[n("div",Ot,[o(J,{name:d.icon,class:"size-5 text-primary"},null,8,["name"])]),n("div",null,[n("p",Dt,c(d.tagline),1),n("h3",At,c(d.title),1),n("p",Bt,c(d.description),1)])])]),_:2},1024)),64))])],64))]))]),_:1})}}});export{kn as default};
1
+ import{_ as be,a as Re}from"./BuMX-4RF.js";import{d as ee,o as a,c as u,e as p,f as i,g as n,h as o,_ as te,i as j,t as c,x as Q,b as t,l as g,k,v as f,j as ne,H as le,F as E,z as M,r as re,s as Te,ac as $e}from"./1QWBzxLM.js";import{_ as we}from"./UAmyrRCI.js";import{_ as Fe}from"./BQUhoGCh.js";import{_ as je,a as Se}from"./BS91Og__.js";import{_ as Ce}from"./DVo_e_uj.js";import{_ as Ve}from"./Dly7wCCl.js";import{_ as Ne}from"./B-1zt4pp.js";import{_ as ze}from"./mi7tdFxN.js";import{_ as Pe}from"./CzRkZLB4.js";import{_ as oe}from"./DvSHenmZ.js";import{_ as ie}from"./Bc6Zr-Xn.js";import{_ as Ue}from"./uspGXbik.js";import{_ as Ee}from"./Dn_-RkxP.js";import{_ as ue}from"./bmAf49LT.js";import{a as Z,L as B,e as Oe}from"./D4mPjHHR.js";import{_ as De}from"./D6B0WKO0.js";import{_ as Ie}from"./AbnDY6Zr.js";import{u as se}from"./CU_2YLhT.js";import{u as Le}from"./_okd7MfH.js";import{u as Ae}from"./CiCUZGFZ.js";import"./DpM8IgHL.js";import"./Bp1WeQ0_.js";import"./VBTxfbqU.js";import"./BTGAvMoT.js";import"./DBXXb0w8.js";import"./D_ZAGxCQ.js";import"./Bl0xzETD.js";import"./B82vqOZe.js";import"./CHz7LJIX.js";import"./BF5qB58w.js";import"./CzyCEdYP.js";const Be={class:"flex items-center gap-3 flex-wrap"},Me={class:"flex items-center gap-1.5"},He={key:0,class:"text-gray-500"},Ke={key:1},We={key:2},Ge={class:"flex items-center gap-1.5 cursor-pointer select-none text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 transition-colors"},Je=ee({__name:"HomeFilters",props:{modelValue:{},availableEnvironments:{}},emits:["update:modelValue"],setup(O,{emit:b}){const T=O,R=b,N=f({get:()=>T.modelValue.environments,set:S=>R("update:modelValue",{...T.modelValue,environments:S})}),$=f({get:()=>T.modelValue.fullRunsOnly,set:S=>R("update:modelValue",{...T.modelValue,fullRunsOnly:S})}),D=f(()=>T.modelValue.environments.length>0||!T.modelValue.fullRunsOnly);function z(){R("update:modelValue",{environments:[],fullRunsOnly:!0})}return(S,v)=>{const H=te,r=we,_=Fe,x=ne;return a(),u("div",Be,[O.availableEnvironments.length>0?(a(),p(r,{key:0,modelValue:t(N),"onUpdate:modelValue":v[0]||(v[0]=m=>Q(N)?N.value=m:null),items:O.availableEnvironments,multiple:"",placeholder:"All environments",size:"sm",class:"min-w-[160px]"},{default:i(({modelValue:m})=>[n("div",Me,[o(H,{name:"i-lucide-server",class:j(["size-3.5 shrink-0",m.length?"text-primary":"text-gray-400"])},null,8,["class"]),m.length?m.length===1?(a(),u("span",Ke,c(m[0]),1)):(a(),u("span",We,c(m.length)+" environments",1)):(a(),u("span",He,"All environments"))])]),_:1},8,["modelValue","items"])):g("",!0),n("label",Ge,[o(_,{modelValue:t($),"onUpdate:modelValue":v[1]||(v[1]=m=>Q($)?$.value=m:null),size:"sm"},null,8,["modelValue"]),v[2]||(v[2]=k(" Full runs only ",-1))]),t(D)?(a(),p(x,{key:1,variant:"ghost",size:"sm",color:"neutral",icon:"i-lucide-x",onClick:z},{default:i(()=>[...v[3]||(v[3]=[k(" Reset ",-1)])]),_:1})):g("",!0)])}}}),Ye=Object.assign(Je,{__name:"HomeFilters"}),Xe={class:"hidden md:block overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0"},qe={key:0,class:"flex flex-wrap gap-1 mt-0.5"},Qe={class:"w-40"},Ze={key:1,class:"text-gray-400 text-sm"},et={class:"text-xs text-gray-500 dark:text-gray-400"},tt={key:1,class:"text-gray-400 text-sm"},nt={key:0,class:"tabular-nums text-sm text-gray-600 dark:text-gray-400"},st={key:1,class:"text-gray-400"},at={class:"space-y-2 md:hidden"},lt={class:"flex items-start justify-between gap-2"},rt={key:0,class:"flex flex-wrap gap-1"},ot={class:"flex items-center justify-between gap-2 text-xs"},it={class:"text-gray-500 dark:text-gray-400 truncate"},ut={key:1,class:"text-gray-400"},ct={key:2,class:"shrink-0 tabular-nums text-gray-500 dark:text-gray-400"},dt=ee({__name:"ProjectTrendTable",props:{projects:{},limit:{default:10}},setup(O){const b=O,T={failing:0,flaky:1,passing:2,unknown:3},R=re(!1),N=f(()=>b.projects.length>b.limit),$=f(()=>{const r=[...b.projects].sort((_,x)=>{const m=T[_.tendency]-T[x.tendency];if(m!==0)return m;const C=_.latestFullRun?new Date(_.latestFullRun.startTime).getTime():0;return(x.latestFullRun?new Date(x.latestFullRun.startTime).getTime():0)-C});return R.value?r:r.slice(0,b.limit)});function D(r){return r>=90?"text-green-600 dark:text-green-400":r>=50?"text-yellow-600 dark:text-yellow-400":"text-red-600 dark:text-red-400"}function z(r){switch(r){case"failing":return"text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800";case"flaky":return"text-amber-700 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 border-amber-200 dark:border-amber-800";case"passing":return"text-green-700 dark:text-green-400 bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800";default:return"text-gray-500 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 border-gray-200 dark:border-gray-700"}}function S(r){return r==="unknown"?"Unknown":r.charAt(0).toUpperCase()+r.slice(1)}function v(r){switch(r){case"failing":return"i-lucide-trending-down";case"flaky":return"i-lucide-shuffle";case"passing":return"i-lucide-trending-up";default:return"i-lucide-minus"}}const H=[{accessorKey:"name",header:"Project"},{id:"recentRuns",header:"Last 20 runs"},{accessorKey:"tendency",header:"Tendency"},{id:"passRate",header:"Pass rate"},{id:"latestRun",header:"Latest run"},{id:"tests",header:"Tests"}];return(r,_)=>{const x=ne,m=le,C=ze,h=Pe,I=te,V=oe,L=ie,Y=Ue,X=Ee,K=ue;return a(),p(K,{icon:"i-lucide-layout-dashboard",title:"Project health",help:"home.project-health"},{actions:i(()=>[t(N)&&!t(R)?(a(),p(x,{key:0,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-down",onClick:_[0]||(_[0]=e=>R.value=!0)},{default:i(()=>[k(" Show all "+c(b.projects.length),1)]),_:1})):t(R)?(a(),p(x,{key:1,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-up",onClick:_[1]||(_[1]=e=>R.value=!1)},{default:i(()=>[..._[2]||(_[2]=[k(" Show less ",-1)])]),_:1})):g("",!0),o(x,{to:"/projects",variant:"outline",size:"sm"},{default:i(()=>[..._[3]||(_[3]=[k("View all",-1)])]),_:1})]),default:i(()=>[n("div",Xe,[o(Y,{data:t($),columns:H,ui:{base:"min-w-[700px]",td:"py-3",th:"py-3 text-xs uppercase tracking-wide"}},{"name-cell":i(({row:e})=>[o(m,{to:`/projects/${e.original.id}`,class:"font-medium text-primary hover:underline truncate block max-w-[200px]"},{default:i(()=>[k(c(e.original.label||e.original.name),1)]),_:2},1032,["to"]),e.original.tags.length>0?(a(),u("div",qe,[(a(!0),u(E,null,M(e.original.tags,w=>(a(),p(C,{key:w.id,text:w.text,color:w.color},null,8,["text","color"]))),128))])):g("",!0)]),"recentRuns-cell":i(({row:e})=>[n("div",Qe,[o(h,{runs:e.original.recentRuns,height:28},null,8,["runs"])])]),"tendency-cell":i(({row:e})=>[n("span",{class:j(["inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-medium border whitespace-nowrap",z(e.original.tendency)])},[o(I,{name:v(e.original.tendency),class:"size-3 shrink-0"},null,8,["name"]),k(" "+c(S(e.original.tendency)),1)],2)]),"passRate-cell":i(({row:e})=>[e.original.latestFullRun?(a(),u("span",{key:0,class:j(["font-semibold tabular-nums text-sm",D(("passRate"in r?r.passRate:t(B))(e.original.latestFullRun))])},c(("passRate"in r?r.passRate:t(B))(e.original.latestFullRun))+"% ",3)):(a(),u("span",Ze,"—"))]),"latestRun-cell":i(({row:e})=>[e.original.latestFullRun?(a(),p(m,{key:0,to:`/test-runs/${e.original.latestFullRun.id}`,class:"flex items-center gap-2 min-w-[140px] hover:opacity-80 transition-opacity"},{default:i(()=>[o(V,{status:e.original.latestFullRun.status},null,8,["status"]),n("div",et,[n("div",null,c(("formatRelativeTime"in r?r.formatRelativeTime:t(Z))(e.original.latestFullRun.startTime)),1),e.original.latestFullRun.duration?(a(),p(L,{key:0,ms:e.original.latestFullRun.duration},null,8,["ms"])):g("",!0)])]),_:2},1032,["to"])):(a(),u("span",tt,"No full runs"))]),"tests-cell":i(({row:e})=>[e.original.latestFullRun?(a(),u("span",nt,c(e.original.latestFullRun.passedTests)+"/"+c(e.original.latestFullRun.totalTests),1)):(a(),u("span",st,"—"))]),_:1},8,["data"])]),n("div",at,[(a(!0),u(E,null,M(t($),e=>(a(),u("div",{key:e.id,class:"rounded-lg border border-default p-3 space-y-2"},[n("div",lt,[o(m,{to:`/projects/${e.id}`,class:"font-medium text-primary hover:underline truncate"},{default:i(()=>[k(c(e.label||e.name),1)]),_:2},1032,["to"]),n("span",{class:j(["inline-flex shrink-0 items-center gap-1 rounded border px-1.5 py-0.5 text-xs font-medium whitespace-nowrap",z(e.tendency)])},[o(I,{name:v(e.tendency),class:"size-3 shrink-0"},null,8,["name"]),k(" "+c(S(e.tendency)),1)],2)]),e.tags.length>0?(a(),u("div",rt,[(a(!0),u(E,null,M(e.tags,w=>(a(),p(C,{key:w.id,text:w.text,color:w.color},null,8,["text","color"]))),128))])):g("",!0),o(h,{runs:e.recentRuns,height:24},null,8,["runs"]),n("div",ot,[e.latestFullRun?(a(),p(m,{key:0,to:`/test-runs/${e.latestFullRun.id}`,class:"flex items-center gap-1.5 min-w-0 hover:opacity-80"},{default:i(()=>[o(V,{status:e.latestFullRun.status},null,8,["status"]),n("span",it,c(("formatRelativeTime"in r?r.formatRelativeTime:t(Z))(e.latestFullRun.startTime)),1)]),_:2},1032,["to"])):(a(),u("span",ut,"No full runs")),e.latestFullRun?(a(),u("span",ct,[n("span",{class:j(["font-semibold",D(("passRate"in r?r.passRate:t(B))(e.latestFullRun))])},c(("passRate"in r?r.passRate:t(B))(e.latestFullRun))+"% ",3),k(" · "+c(e.latestFullRun.passedTests)+"/"+c(e.latestFullRun.totalTests),1)])):g("",!0)])]))),128))]),t($).length===0?(a(),p(X,{key:0,text:"No projects yet",padded:!1,class:"py-8"})):g("",!0)]),_:1})}}}),mt=Object.assign(dt,{__name:"ProjectTrendTable"}),pt={key:0,class:"p-6"},gt={key:1,class:"p-6 space-y-8","aria-busy":"true"},ft={class:"grid grid-cols-1 xl:grid-cols-3 gap-6 items-start"},_t={class:"xl:col-span-2 space-y-3"},yt={class:"space-y-3"},vt={key:2,class:"p-6 space-y-8"},ht={key:1,class:"flex flex-wrap items-center gap-x-8 gap-y-3 text-sm border border-gray-200 dark:border-gray-700 rounded-xl px-6 py-4 bg-gray-50 dark:bg-gray-900/50"},xt={class:"flex items-center gap-1.5"},kt={class:"font-semibold tabular-nums"},bt={class:"flex items-center gap-1.5"},Rt={class:"flex items-center gap-1.5"},Tt={key:0,class:"flex items-center gap-1.5"},$t={class:"font-semibold tabular-nums"},wt={class:"flex items-center gap-1.5"},Ft={class:"font-semibold tabular-nums"},jt={key:2,class:"grid grid-cols-1 xl:grid-cols-3 gap-6 items-start"},St={class:"xl:col-span-2"},Ct={class:"divide-y divide-gray-100 dark:divide-gray-800 text-sm"},Vt={class:"flex-1 min-w-0"},Nt={class:"font-medium truncate"},zt={class:"text-xs text-gray-400"},Pt={class:"text-right tabular-nums shrink-0"},Ut={key:3,class:"text-center py-12 text-gray-500 dark:text-gray-400"},Et={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4"},Ot={class:"flex flex-col gap-3 h-full"},Dt={class:"p-2 bg-primary/10 rounded-lg w-fit"},It={class:"text-xs font-semibold uppercase tracking-wide text-primary mb-1"},Lt={class:"font-semibold mb-1"},At={class:"text-sm text-gray-600 dark:text-gray-400"},ae=6,kn=ee({__name:"index",setup(O){Te({title:"Piwi Dashboard"});const{data:b,error:T,refresh:R,status:N}=se("/api/projects/overview",{lazy:!0,default:()=>[],transform:l=>l.items},"$LKtEy4Bi96"),{data:$,error:D,refresh:z}=se("/api/test-runs/recent",{lazy:!0,transform:l=>l.items},"$tXxkP3waVF");Le(()=>Promise.all([R(),z()]));const S=f(()=>N.value==="pending"&&!b.value?.length),v=f(()=>T.value||D.value);function H(){R(),z()}const r=Ae("piwi-home-filters",{default:()=>({environments:[],fullRunsOnly:!0}),encode:l=>JSON.stringify(l),decode:l=>{try{return l?JSON.parse(l):{environments:[],fullRunsOnly:!0}}catch{return{environments:[],fullRunsOnly:!0}}}}),_=f(()=>{const l=new Set;for(const s of $.value??[])s.environment&&l.add(s.environment);for(const s of b.value??[])for(const y of s.recentRuns)y.environment&&l.add(y.environment);return[...l].sort()});function x(l){return r.value.environments.length===0?!0:!!l&&r.value.environments.includes(l)}const m=f(()=>{let l=$.value??[];return r.value.fullRunsOnly&&(l=l.filter(s=>s.isFullRun)),r.value.environments.length>0&&(l=l.filter(s=>x(s.environment))),l}),C=f(()=>{let l=b.value??[];return r.value.environments.length>0&&(l=l.map(s=>({...s,recentRuns:s.recentRuns.filter(y=>x(y.environment))})).filter(s=>s.recentRuns.length>0)),l}),h=f(()=>{const l=C.value,s=l.length,y=l.filter(F=>F.tendency==="failing").length,A=l.filter(F=>F.tendency==="flaky").length;let P=0,W=0;for(const F of l)F.latestFullRun&&(P+=F.latestFullRun.passedTests,W+=F.latestFullRun.totalTests);const G=W>0?Math.round(P/W*100):null,q=Date.now()-1440*60*1e3,U=m.value.filter(F=>new Date(F.startTime).getTime()>q).length;return{totalProjects:s,failingNow:y,flakyNow:A,avgPassRate:G,runs24h:U}}),I=new Set(["running","initializing","finalizing"]),V=re(!1),L=f(()=>[...m.value].sort((s,y)=>{const A=I.has(s.status)?0:1,P=I.has(y.status)?0:1;return A!==P?A-P:new Date(y.startTime).getTime()-new Date(s.startTime).getTime()})),Y=f(()=>V.value?L.value:L.value.slice(0,ae)),X=f(()=>L.value.length>ae),K=f(()=>m.value.length>0),e=f(()=>(b.value?.length??0)>0),w=f(()=>r.value.fullRunsOnly?($.value??[]).filter(y=>x(y.environment)).filter(y=>!y.isFullRun).length:0);function ce(){r.value={...r.value,fullRunsOnly:!1}}function de(l){const s=B(l);return s>=90?"text-green-600 dark:text-green-400":s>=50?"text-yellow-600 dark:text-yellow-400":"text-red-600 dark:text-red-400"}function me(l){return I.has(l)?"border-l-blue-400":l==="passed"?"border-l-green-500":l==="failed"||l==="timedout"||l==="interrupted"?"border-l-red-500":"border-l-gray-300 dark:border-l-gray-600"}const pe=[{icon:"i-lucide-radio",tagline:"Watch your CI run live",title:"Live streaming",description:"Follow test execution in real time. Investigate failures while the suite is still running — no waiting for the CI job to finish."},{icon:"i-lucide-layers",tagline:"10 failures, 2 root causes",title:"Failure clustering",description:"Tests sharing the same error are grouped automatically. Triage one cluster instead of scrolling through unrelated failures."},{icon:"i-lucide-brain-circuit",tagline:"Diagnosis grounded in your code",title:"AI diagnosis",description:"AI analyzes failure clusters using your actual SCM diff, trace files, and run history — not a generic prompt."},{icon:"i-lucide-archive",tagline:"Every run, forever",title:"Permanent test intelligence",description:"Test results, traces, and HTML reports stored permanently. Compare runs, track flakiness trends, and never lose a CI result again."}];return(l,s)=>{const y=be,A=Re,P=Ye,W=Se,G=ne,q=Ce,U=Ve,F=Ne,J=te,ge=mt,fe=oe,_e=ie,ye=le,ve=ue,he=De,xe=Ie,ke=je;return a(),p(ke,{id:"home"},{header:i(()=>[o(W,null,$e({leading:i(()=>[o(y),o(A,{items:[{label:"Home",icon:"i-lucide-house",to:"/"}]})]),_:2},[t(e)?{name:"trailing",fn:i(()=>[o(P,{modelValue:t(r),"onUpdate:modelValue":s[0]||(s[0]=d=>Q(r)?r.value=d:null),"available-environments":t(_)},null,8,["modelValue","available-environments"])]),key:"0"}:void 0]),1024)]),body:i(()=>[t(v)?(a(),u("div",pt,[o(q,{text:`Couldn't load the dashboard: ${t(Oe)(t(v))}`},{action:i(()=>[o(G,{size:"sm",color:"neutral",variant:"outline",icon:"i-lucide-refresh-cw",onClick:H},{default:i(()=>[...s[3]||(s[3]=[k(" Retry ",-1)])]),_:1})]),_:1},8,["text"])])):t(S)?(a(),u("div",gt,[s[4]||(s[4]=n("span",{class:"sr-only",role:"status"},"Loading dashboard…",-1)),o(U,{class:"h-14 w-full rounded-xl"}),n("div",ft,[n("div",_t,[o(U,{class:"h-7 w-40"}),o(U,{class:"h-72 w-full rounded-lg"})]),n("div",yt,[o(U,{class:"h-7 w-32"}),(a(),u(E,null,M(5,d=>o(U,{key:d,class:"h-12 w-full rounded-lg"})),64))])])])):(a(),u("div",vt,[t(w)>0?(a(),p(F,{key:0,icon:"i-lucide-info",color:"primary",variant:"subtle",title:t(w)===1?"1 partial run is hidden":`${t(w)} partial runs are hidden`,description:"The “Full runs only” filter hides runs that only cover part of the suite (e.g. a single spec or --grep).",actions:[{label:"Show them",color:"primary",variant:"solid",size:"xs",onClick:ce}]},null,8,["title","actions"])):g("",!0),t(e)?(a(),u("div",ht,[n("div",xt,[o(J,{name:"i-lucide-folder",class:"size-4 text-primary shrink-0"}),n("span",kt,c(t(h).totalProjects),1),s[5]||(s[5]=n("span",{class:"text-gray-500"},"projects",-1))]),n("div",bt,[n("div",{class:j(["w-2 h-2 rounded-full shrink-0",t(h).failingNow>0?"bg-red-500":"bg-green-500"])},null,2),n("span",{class:j(["font-semibold tabular-nums",t(h).failingNow>0?"text-red-600 dark:text-red-400":""])},c(t(h).failingNow),3),s[6]||(s[6]=n("span",{class:"text-gray-500"},"failing now",-1))]),n("div",Rt,[n("div",{class:j(["w-2 h-2 rounded-full shrink-0",t(h).flakyNow>0?"bg-amber-400":"bg-gray-300 dark:bg-gray-600"])},null,2),n("span",{class:j(["font-semibold tabular-nums",t(h).flakyNow>0?"text-amber-600 dark:text-amber-400":""])},c(t(h).flakyNow),3),s[7]||(s[7]=n("span",{class:"text-gray-500"},"flaky",-1))]),t(h).avgPassRate!==null?(a(),u("div",Tt,[o(J,{name:"i-lucide-check-circle",class:"size-4 text-green-500 shrink-0"}),n("span",$t,c(t(h).avgPassRate)+"%",1),s[8]||(s[8]=n("span",{class:"text-gray-500"},"avg pass rate",-1))])):g("",!0),n("div",wt,[o(J,{name:"i-lucide-play-circle",class:"size-4 text-primary shrink-0"}),n("span",Ft,c(t(h).runs24h),1),s[9]||(s[9]=n("span",{class:"text-gray-500"},"runs today",-1))])])):g("",!0),t(e)||t(K)?(a(),u("div",jt,[n("div",St,[t(e)?(a(),p(ge,{key:0,projects:t(C)},null,8,["projects"])):g("",!0)]),t(K)?(a(),p(ve,{key:0,icon:"i-lucide-activity",title:"Recent activity"},{actions:i(()=>[t(X)&&!t(V)?(a(),p(G,{key:0,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-down",onClick:s[1]||(s[1]=d=>V.value=!0)},{default:i(()=>[k(" Show all "+c(t(L).length),1)]),_:1})):t(V)?(a(),p(G,{key:1,variant:"ghost",size:"sm","trailing-icon":"i-lucide-chevron-up",onClick:s[2]||(s[2]=d=>V.value=!1)},{default:i(()=>[...s[10]||(s[10]=[k(" Show less ",-1)])]),_:1})):g("",!0)]),default:i(()=>[n("div",Ct,[(a(!0),u(E,null,M(t(Y),d=>(a(),p(ye,{key:d.id,to:`/test-runs/${d.id}`,class:j(["flex items-center gap-3 py-3 pl-3 border-l-2 hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded-r transition-colors",me(d.status)])},{default:i(()=>[o(fe,{status:d.status},null,8,["status"]),n("div",Vt,[n("div",Nt,c(d.projectLabel||d.projectName),1),n("div",zt,"Run #"+c(d.id)+" · "+c(("formatRelativeTime"in l?l.formatRelativeTime:t(Z))(d.startTime)),1)]),n("div",Pt,[n("div",{class:j(de(d))},c(("passRate"in l?l.passRate:t(B))(d))+"%",3),d.duration?(a(),p(_e,{key:0,ms:d.duration,class:"block text-xs text-gray-400"},null,8,["ms"])):g("",!0)])]),_:2},1032,["to","class"]))),128))])]),_:1})):g("",!0)])):g("",!0),t(e)&&!t(K)&&t(C).length===0?(a(),u("div",Ut,[o(J,{name:"i-lucide-filter-x",class:"size-8 mx-auto mb-2 opacity-40"}),s[11]||(s[11]=n("p",null,"No runs match the current filters.",-1))])):g("",!0),t(e)?g("",!0):(a(),u(E,{key:4},[o(he),n("div",Et,[(a(),u(E,null,M(pe,d=>o(xe,{key:d.title,class:"flex flex-col"},{default:i(()=>[n("div",Ot,[n("div",Dt,[o(J,{name:d.icon,class:"size-5 text-primary"},null,8,["name"])]),n("div",null,[n("p",It,c(d.tagline),1),n("h3",Lt,c(d.title),1),n("p",At,c(d.description),1)])])]),_:2},1024)),64))])],64))]))]),_:1})}}});export{kn as default};
@@ -1 +1 @@
1
- import{u}from"./DqkCbAzo.js";import{q as l,am as f}from"./BdQ7kfxJ.js";import{e as w}from"./DwZS0oRm.js";function p(r){let e="";for(let o=0;o<r.length;o+=32768)e+=String.fromCharCode(...r.subarray(o,o+32768));return btoa(e)}function b(){const r=u(),e=l();async function a(o,i,n={}){const s=f();if(!s){window.open(o,"_blank");return}try{const t=await fetch(o,{credentials:"include"});if(!t.ok)throw new Error(`Request failed (${t.status})`);const c=n.binary?p(new Uint8Array(await t.arrayBuffer())):await t.text(),d=await s.invoke("desktop_save_download",{filename:i,contents:c,encoding:n.binary?"base64":"utf8"});e.add({title:"Saved to Downloads",description:d,color:"success",icon:"i-lucide-download"})}catch(t){e.add({title:"Download failed",description:w(t),color:"error"})}}return{isDesktop:r,download:a}}export{b as u};
1
+ import{u}from"./CzyCEdYP.js";import{q as l,am as f}from"./1QWBzxLM.js";import{e as w}from"./D4mPjHHR.js";function p(r){let e="";for(let o=0;o<r.length;o+=32768)e+=String.fromCharCode(...r.subarray(o,o+32768));return btoa(e)}function b(){const r=u(),e=l();async function a(o,i,n={}){const s=f();if(!s){window.open(o,"_blank");return}try{const t=await fetch(o,{credentials:"include"});if(!t.ok)throw new Error(`Request failed (${t.status})`);const c=n.binary?p(new Uint8Array(await t.arrayBuffer())):await t.text(),d=await s.invoke("desktop_save_download",{filename:i,contents:c,encoding:n.binary?"base64":"utf8"});e.add({title:"Saved to Downloads",description:d,color:"success",icon:"i-lucide-download"})}catch(t){e.add({title:"Download failed",description:w(t),color:"error"})}}return{isDesktop:r,download:a}}export{b as u};
@@ -1,3 +1,3 @@
1
- import{bT as ut,d as ft,o as tn,c as sn,g as an,b as ue,t as bt,l as pt,h as ht,j as Et,r as mt,v as _t}from"./BdQ7kfxJ.js";import{i as Nt}from"./DwZS0oRm.js";import{a as St}from"./DTtizz85.js";var $e,rn;function yt(){if(rn)return $e;rn=1;function n(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const s=e[t],b=typeof s;(b==="object"||b==="function")&&!Object.isFrozen(s)&&n(s)}),e}class o{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function l(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function d(e,...t){const s=Object.create(null);for(const b in e)s[b]=e[b];return t.forEach(function(b){for(const k in b)s[k]=b[k]}),s}const R="</span>",M=e=>!!e.scope,_=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const s=e.split(".");return[`${t}${s.shift()}`,...s.map((b,k)=>`${b}${"_".repeat(k+1)}`)].join(" ")}return`${t}${e}`};class E{constructor(t,s){this.buffer="",this.classPrefix=s.classPrefix,t.walk(this)}addText(t){this.buffer+=l(t)}openNode(t){if(!M(t))return;const s=_(t.scope,{prefix:this.classPrefix});this.span(s)}closeNode(t){M(t)&&(this.buffer+=R)}value(){return this.buffer}span(t){this.buffer+=`<span class="${t}">`}}const w=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class y{constructor(){this.rootNode=w(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const s=w({scope:t});this.add(s),this.stack.push(s)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,s){return typeof s=="string"?t.addText(s):s.children&&(t.openNode(s),s.children.forEach(b=>this._walk(t,b)),t.closeNode(s)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(s=>typeof s=="string")?t.children=[t.children.join("")]:t.children.forEach(s=>{y._collapse(s)}))}}class P extends y{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,s){const b=t.root;s&&(b.scope=`language:${s}`),this.add(b)}toHTML(){return new E(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function x(e){return e?typeof e=="string"?e:e.source:null}function N(e){return A("(?=",e,")")}function B(e){return A("(?:",e,")*")}function C(e){return A("(?:",e,")?")}function A(...e){return e.map(s=>x(s)).join("")}function z(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function H(...e){return"("+(z(e).capture?"":"?:")+e.map(b=>x(b)).join("|")+")"}function F(e){return new RegExp(e.toString()+"|").exec("").length-1}function J(e,t){const s=e&&e.exec(t);return s&&s.index===0}const ne=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function W(e,{joinWith:t}){let s=0;return e.map(b=>{s+=1;const k=s;let I=x(b),c="";for(;I.length>0;){const r=ne.exec(I);if(!r){c+=I;break}c+=I.substring(0,r.index),I=I.substring(r.index+r[0].length),r[0][0]==="\\"&&r[1]?c+="\\"+String(Number(r[1])+k):(c+=r[0],r[0]==="("&&s++)}return c}).map(b=>`(${b})`).join(t)}const X=/\b\B/,fe="[a-zA-Z]\\w*",te="[a-zA-Z_]\\w*",be="\\b\\d+(\\.\\d+)?",pe="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",he="\\b(0b[01]+)",_e="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Ne=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=A(t,/.*\b/,e.binary,/\b.*/)),d({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(s,b)=>{s.index!==0&&b.ignoreMatch()}},e)},ie={begin:"\\\\[\\s\\S]",relevance:0},Se={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ie]},ce={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ie]},ye={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},S=function(e,t,s={}){const b=d({scope:"comment",begin:e,end:t,contains:[]},s);b.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const k=H("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return b.contains.push({begin:A(/[ ]+/,"(",k,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),b},K=S("//","$"),Y=S("/\\*","\\*/"),j=S("#","$"),se={scope:"number",begin:be,relevance:0},le={scope:"number",begin:pe,relevance:0},An={scope:"number",begin:he,relevance:0},Tn={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ie,{begin:/\[/,end:/\]/,relevance:0,contains:[ie]}]},Rn={scope:"title",begin:fe,relevance:0},wn={scope:"title",begin:te,relevance:0},On={begin:"\\.\\s*"+te,relevance:0};var Te=Object.freeze({__proto__:null,APOS_STRING_MODE:Se,BACKSLASH_ESCAPE:ie,BINARY_NUMBER_MODE:An,BINARY_NUMBER_RE:he,COMMENT:S,C_BLOCK_COMMENT_MODE:Y,C_LINE_COMMENT_MODE:K,C_NUMBER_MODE:le,C_NUMBER_RE:pe,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(t,s)=>{s.data._beginMatch=t[1]},"on:end":(t,s)=>{s.data._beginMatch!==t[1]&&s.ignoreMatch()}})},HASH_COMMENT_MODE:j,IDENT_RE:fe,MATCH_NOTHING_RE:X,METHOD_GUARD:On,NUMBER_MODE:se,NUMBER_RE:be,PHRASAL_WORDS_MODE:ye,QUOTE_STRING_MODE:ce,REGEXP_MODE:Tn,RE_STARTERS_RE:_e,SHEBANG:Ne,TITLE_MODE:Rn,UNDERSCORE_IDENT_RE:te,UNDERSCORE_TITLE_MODE:wn});function vn(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function xn(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function Mn(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=vn,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function kn(e,t){Array.isArray(e.illegal)&&(e.illegal=H(...e.illegal))}function In(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Cn(e,t){e.relevance===void 0&&(e.relevance=1)}const Ln=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const s=Object.assign({},e);Object.keys(e).forEach(b=>{delete e[b]}),e.keywords=s.keywords,e.begin=A(s.beforeMatch,N(s.begin)),e.starts={relevance:0,contains:[Object.assign(s,{endsParent:!0})]},e.relevance=0,delete s.beforeMatch},Bn=["of","and","for","in","not","or","if","then","parent","list","value"],Dn="keyword";function ze(e,t,s=Dn){const b=Object.create(null);return typeof e=="string"?k(s,e.split(" ")):Array.isArray(e)?k(s,e):Object.keys(e).forEach(function(I){Object.assign(b,ze(e[I],t,I))}),b;function k(I,c){t&&(c=c.map(r=>r.toLowerCase())),c.forEach(function(r){const f=r.split("|");b[f[0]]=[I,Pn(f[0],f[1])]})}}function Pn(e,t){return t?Number(t):Un(e)?0:1}function Un(e){return Bn.includes(e.toLowerCase())}const He={},de=e=>{console.error(e)},Ge=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Ee=(e,t)=>{He[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),He[`${e}/${t}`]=!0)},Re=new Error;function Fe(e,t,{key:s}){let b=0;const k=e[s],I={},c={};for(let r=1;r<=t.length;r++)c[r+b]=k[r],I[r+b]=!0,b+=F(t[r-1]);e[s]=c,e[s]._emit=I,e[s]._multi=!0}function $n(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw de("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Re;if(typeof e.beginScope!="object"||e.beginScope===null)throw de("beginScope must be object"),Re;Fe(e,e.begin,{key:"beginScope"}),e.begin=W(e.begin,{joinWith:""})}}function zn(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw de("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Re;if(typeof e.endScope!="object"||e.endScope===null)throw de("endScope must be object"),Re;Fe(e,e.end,{key:"endScope"}),e.end=W(e.end,{joinWith:""})}}function Hn(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Gn(e){Hn(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),$n(e),zn(e)}function Fn(e){function t(c,r){return new RegExp(x(c),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(r?"g":""))}class s{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(r,f){f.position=this.position++,this.matchIndexes[this.matchAt]=f,this.regexes.push([f,r]),this.matchAt+=F(r)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const r=this.regexes.map(f=>f[1]);this.matcherRe=t(W(r,{joinWith:"|"}),!0),this.lastIndex=0}exec(r){this.matcherRe.lastIndex=this.lastIndex;const f=this.matcherRe.exec(r);if(!f)return null;const U=f.findIndex((Ae,Ce)=>Ce>0&&Ae!==void 0),L=this.matchIndexes[U];return f.splice(0,U),Object.assign(f,L)}}class b{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(r){if(this.multiRegexes[r])return this.multiRegexes[r];const f=new s;return this.rules.slice(r).forEach(([U,L])=>f.addRule(U,L)),f.compile(),this.multiRegexes[r]=f,f}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(r,f){this.rules.push([r,f]),f.type==="begin"&&this.count++}exec(r){const f=this.getMatcher(this.regexIndex);f.lastIndex=this.lastIndex;let U=f.exec(r);if(this.resumingScanAtSamePosition()&&!(U&&U.index===this.lastIndex)){const L=this.getMatcher(0);L.lastIndex=this.lastIndex+1,U=L.exec(r)}return U&&(this.regexIndex+=U.position+1,this.regexIndex===this.count&&this.considerAll()),U}}function k(c){const r=new b;return c.contains.forEach(f=>r.addRule(f.begin,{rule:f,type:"begin"})),c.terminatorEnd&&r.addRule(c.terminatorEnd,{type:"end"}),c.illegal&&r.addRule(c.illegal,{type:"illegal"}),r}function I(c,r){const f=c;if(c.isCompiled)return f;[xn,In,Gn,Ln].forEach(L=>L(c,r)),e.compilerExtensions.forEach(L=>L(c,r)),c.__beforeBegin=null,[Mn,kn,Cn].forEach(L=>L(c,r)),c.isCompiled=!0;let U=null;return typeof c.keywords=="object"&&c.keywords.$pattern&&(c.keywords=Object.assign({},c.keywords),U=c.keywords.$pattern,delete c.keywords.$pattern),U=U||/\w+/,c.keywords&&(c.keywords=ze(c.keywords,e.case_insensitive)),f.keywordPatternRe=t(U,!0),r&&(c.begin||(c.begin=/\B|\b/),f.beginRe=t(f.begin),!c.end&&!c.endsWithParent&&(c.end=/\B|\b/),c.end&&(f.endRe=t(f.end)),f.terminatorEnd=x(f.end)||"",c.endsWithParent&&r.terminatorEnd&&(f.terminatorEnd+=(c.end?"|":"")+r.terminatorEnd)),c.illegal&&(f.illegalRe=t(c.illegal)),c.contains||(c.contains=[]),c.contains=[].concat(...c.contains.map(function(L){return Kn(L==="self"?c:L)})),c.contains.forEach(function(L){I(L,f)}),c.starts&&I(c.starts,r),f.matcher=k(f),f}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=d(e.classNameAliases||{}),I(e)}function Ke(e){return e?e.endsWithParent||Ke(e.starts):!1}function Kn(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return d(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:Ke(e)?d(e,{starts:e.starts?d(e.starts):null}):Object.isFrozen(e)?d(e):e}var Zn="11.11.1";class Wn extends Error{constructor(t,s){super(t),this.name="HTMLInjectionError",this.html=s}}const Ie=l,Ze=d,We=Symbol("nomatch"),Xn=7,Xe=function(e){const t=Object.create(null),s=Object.create(null),b=[];let k=!0;const I="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]};let r={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:P};function f(i){return r.noHighlightRe.test(i)}function U(i){let u=i.className+" ";u+=i.parentNode?i.parentNode.className:"";const m=r.languageDetectRe.exec(u);if(m){const O=re(m[1]);return O||(Ge(I.replace("{}",m[1])),Ge("Falling back to no-highlight mode for this block.",i)),O?m[1]:"no-highlight"}return u.split(/\s+/).find(O=>f(O)||re(O))}function L(i,u,m){let O="",D="";typeof u=="object"?(O=i,m=u.ignoreIllegals,D=u.language):(Ee("10.7.0","highlight(lang, code, ...args) has been deprecated."),Ee("10.7.0",`Please use highlight(code, options) instead.
1
+ import{bT as ut,d as ft,o as tn,c as sn,g as an,b as ue,t as bt,l as pt,h as ht,j as Et,r as mt,v as _t}from"./1QWBzxLM.js";import{i as Nt}from"./D4mPjHHR.js";import{a as St}from"./CU_2YLhT.js";var $e,rn;function yt(){if(rn)return $e;rn=1;function n(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const s=e[t],b=typeof s;(b==="object"||b==="function")&&!Object.isFrozen(s)&&n(s)}),e}class o{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function l(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function d(e,...t){const s=Object.create(null);for(const b in e)s[b]=e[b];return t.forEach(function(b){for(const k in b)s[k]=b[k]}),s}const R="</span>",M=e=>!!e.scope,_=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const s=e.split(".");return[`${t}${s.shift()}`,...s.map((b,k)=>`${b}${"_".repeat(k+1)}`)].join(" ")}return`${t}${e}`};class E{constructor(t,s){this.buffer="",this.classPrefix=s.classPrefix,t.walk(this)}addText(t){this.buffer+=l(t)}openNode(t){if(!M(t))return;const s=_(t.scope,{prefix:this.classPrefix});this.span(s)}closeNode(t){M(t)&&(this.buffer+=R)}value(){return this.buffer}span(t){this.buffer+=`<span class="${t}">`}}const w=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class y{constructor(){this.rootNode=w(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const s=w({scope:t});this.add(s),this.stack.push(s)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,s){return typeof s=="string"?t.addText(s):s.children&&(t.openNode(s),s.children.forEach(b=>this._walk(t,b)),t.closeNode(s)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(s=>typeof s=="string")?t.children=[t.children.join("")]:t.children.forEach(s=>{y._collapse(s)}))}}class P extends y{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,s){const b=t.root;s&&(b.scope=`language:${s}`),this.add(b)}toHTML(){return new E(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function x(e){return e?typeof e=="string"?e:e.source:null}function N(e){return A("(?=",e,")")}function B(e){return A("(?:",e,")*")}function C(e){return A("(?:",e,")?")}function A(...e){return e.map(s=>x(s)).join("")}function z(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function H(...e){return"("+(z(e).capture?"":"?:")+e.map(b=>x(b)).join("|")+")"}function F(e){return new RegExp(e.toString()+"|").exec("").length-1}function J(e,t){const s=e&&e.exec(t);return s&&s.index===0}const ne=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function W(e,{joinWith:t}){let s=0;return e.map(b=>{s+=1;const k=s;let I=x(b),c="";for(;I.length>0;){const r=ne.exec(I);if(!r){c+=I;break}c+=I.substring(0,r.index),I=I.substring(r.index+r[0].length),r[0][0]==="\\"&&r[1]?c+="\\"+String(Number(r[1])+k):(c+=r[0],r[0]==="("&&s++)}return c}).map(b=>`(${b})`).join(t)}const X=/\b\B/,fe="[a-zA-Z]\\w*",te="[a-zA-Z_]\\w*",be="\\b\\d+(\\.\\d+)?",pe="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",he="\\b(0b[01]+)",_e="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Ne=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=A(t,/.*\b/,e.binary,/\b.*/)),d({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(s,b)=>{s.index!==0&&b.ignoreMatch()}},e)},ie={begin:"\\\\[\\s\\S]",relevance:0},Se={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ie]},ce={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ie]},ye={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},S=function(e,t,s={}){const b=d({scope:"comment",begin:e,end:t,contains:[]},s);b.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const k=H("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return b.contains.push({begin:A(/[ ]+/,"(",k,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),b},K=S("//","$"),Y=S("/\\*","\\*/"),j=S("#","$"),se={scope:"number",begin:be,relevance:0},le={scope:"number",begin:pe,relevance:0},An={scope:"number",begin:he,relevance:0},Tn={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ie,{begin:/\[/,end:/\]/,relevance:0,contains:[ie]}]},Rn={scope:"title",begin:fe,relevance:0},wn={scope:"title",begin:te,relevance:0},On={begin:"\\.\\s*"+te,relevance:0};var Te=Object.freeze({__proto__:null,APOS_STRING_MODE:Se,BACKSLASH_ESCAPE:ie,BINARY_NUMBER_MODE:An,BINARY_NUMBER_RE:he,COMMENT:S,C_BLOCK_COMMENT_MODE:Y,C_LINE_COMMENT_MODE:K,C_NUMBER_MODE:le,C_NUMBER_RE:pe,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(t,s)=>{s.data._beginMatch=t[1]},"on:end":(t,s)=>{s.data._beginMatch!==t[1]&&s.ignoreMatch()}})},HASH_COMMENT_MODE:j,IDENT_RE:fe,MATCH_NOTHING_RE:X,METHOD_GUARD:On,NUMBER_MODE:se,NUMBER_RE:be,PHRASAL_WORDS_MODE:ye,QUOTE_STRING_MODE:ce,REGEXP_MODE:Tn,RE_STARTERS_RE:_e,SHEBANG:Ne,TITLE_MODE:Rn,UNDERSCORE_IDENT_RE:te,UNDERSCORE_TITLE_MODE:wn});function vn(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function xn(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function Mn(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=vn,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function kn(e,t){Array.isArray(e.illegal)&&(e.illegal=H(...e.illegal))}function In(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Cn(e,t){e.relevance===void 0&&(e.relevance=1)}const Ln=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const s=Object.assign({},e);Object.keys(e).forEach(b=>{delete e[b]}),e.keywords=s.keywords,e.begin=A(s.beforeMatch,N(s.begin)),e.starts={relevance:0,contains:[Object.assign(s,{endsParent:!0})]},e.relevance=0,delete s.beforeMatch},Bn=["of","and","for","in","not","or","if","then","parent","list","value"],Dn="keyword";function ze(e,t,s=Dn){const b=Object.create(null);return typeof e=="string"?k(s,e.split(" ")):Array.isArray(e)?k(s,e):Object.keys(e).forEach(function(I){Object.assign(b,ze(e[I],t,I))}),b;function k(I,c){t&&(c=c.map(r=>r.toLowerCase())),c.forEach(function(r){const f=r.split("|");b[f[0]]=[I,Pn(f[0],f[1])]})}}function Pn(e,t){return t?Number(t):Un(e)?0:1}function Un(e){return Bn.includes(e.toLowerCase())}const He={},de=e=>{console.error(e)},Ge=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Ee=(e,t)=>{He[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),He[`${e}/${t}`]=!0)},Re=new Error;function Fe(e,t,{key:s}){let b=0;const k=e[s],I={},c={};for(let r=1;r<=t.length;r++)c[r+b]=k[r],I[r+b]=!0,b+=F(t[r-1]);e[s]=c,e[s]._emit=I,e[s]._multi=!0}function $n(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw de("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Re;if(typeof e.beginScope!="object"||e.beginScope===null)throw de("beginScope must be object"),Re;Fe(e,e.begin,{key:"beginScope"}),e.begin=W(e.begin,{joinWith:""})}}function zn(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw de("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Re;if(typeof e.endScope!="object"||e.endScope===null)throw de("endScope must be object"),Re;Fe(e,e.end,{key:"endScope"}),e.end=W(e.end,{joinWith:""})}}function Hn(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Gn(e){Hn(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),$n(e),zn(e)}function Fn(e){function t(c,r){return new RegExp(x(c),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(r?"g":""))}class s{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(r,f){f.position=this.position++,this.matchIndexes[this.matchAt]=f,this.regexes.push([f,r]),this.matchAt+=F(r)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const r=this.regexes.map(f=>f[1]);this.matcherRe=t(W(r,{joinWith:"|"}),!0),this.lastIndex=0}exec(r){this.matcherRe.lastIndex=this.lastIndex;const f=this.matcherRe.exec(r);if(!f)return null;const U=f.findIndex((Ae,Ce)=>Ce>0&&Ae!==void 0),L=this.matchIndexes[U];return f.splice(0,U),Object.assign(f,L)}}class b{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(r){if(this.multiRegexes[r])return this.multiRegexes[r];const f=new s;return this.rules.slice(r).forEach(([U,L])=>f.addRule(U,L)),f.compile(),this.multiRegexes[r]=f,f}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(r,f){this.rules.push([r,f]),f.type==="begin"&&this.count++}exec(r){const f=this.getMatcher(this.regexIndex);f.lastIndex=this.lastIndex;let U=f.exec(r);if(this.resumingScanAtSamePosition()&&!(U&&U.index===this.lastIndex)){const L=this.getMatcher(0);L.lastIndex=this.lastIndex+1,U=L.exec(r)}return U&&(this.regexIndex+=U.position+1,this.regexIndex===this.count&&this.considerAll()),U}}function k(c){const r=new b;return c.contains.forEach(f=>r.addRule(f.begin,{rule:f,type:"begin"})),c.terminatorEnd&&r.addRule(c.terminatorEnd,{type:"end"}),c.illegal&&r.addRule(c.illegal,{type:"illegal"}),r}function I(c,r){const f=c;if(c.isCompiled)return f;[xn,In,Gn,Ln].forEach(L=>L(c,r)),e.compilerExtensions.forEach(L=>L(c,r)),c.__beforeBegin=null,[Mn,kn,Cn].forEach(L=>L(c,r)),c.isCompiled=!0;let U=null;return typeof c.keywords=="object"&&c.keywords.$pattern&&(c.keywords=Object.assign({},c.keywords),U=c.keywords.$pattern,delete c.keywords.$pattern),U=U||/\w+/,c.keywords&&(c.keywords=ze(c.keywords,e.case_insensitive)),f.keywordPatternRe=t(U,!0),r&&(c.begin||(c.begin=/\B|\b/),f.beginRe=t(f.begin),!c.end&&!c.endsWithParent&&(c.end=/\B|\b/),c.end&&(f.endRe=t(f.end)),f.terminatorEnd=x(f.end)||"",c.endsWithParent&&r.terminatorEnd&&(f.terminatorEnd+=(c.end?"|":"")+r.terminatorEnd)),c.illegal&&(f.illegalRe=t(c.illegal)),c.contains||(c.contains=[]),c.contains=[].concat(...c.contains.map(function(L){return Kn(L==="self"?c:L)})),c.contains.forEach(function(L){I(L,f)}),c.starts&&I(c.starts,r),f.matcher=k(f),f}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=d(e.classNameAliases||{}),I(e)}function Ke(e){return e?e.endsWithParent||Ke(e.starts):!1}function Kn(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return d(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:Ke(e)?d(e,{starts:e.starts?d(e.starts):null}):Object.isFrozen(e)?d(e):e}var Zn="11.11.1";class Wn extends Error{constructor(t,s){super(t),this.name="HTMLInjectionError",this.html=s}}const Ie=l,Ze=d,We=Symbol("nomatch"),Xn=7,Xe=function(e){const t=Object.create(null),s=Object.create(null),b=[];let k=!0;const I="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]};let r={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:P};function f(i){return r.noHighlightRe.test(i)}function U(i){let u=i.className+" ";u+=i.parentNode?i.parentNode.className:"";const m=r.languageDetectRe.exec(u);if(m){const O=re(m[1]);return O||(Ge(I.replace("{}",m[1])),Ge("Falling back to no-highlight mode for this block.",i)),O?m[1]:"no-highlight"}return u.split(/\s+/).find(O=>f(O)||re(O))}function L(i,u,m){let O="",D="";typeof u=="object"?(O=i,m=u.ignoreIllegals,D=u.language):(Ee("10.7.0","highlight(lang, code, ...args) has been deprecated."),Ee("10.7.0",`Please use highlight(code, options) instead.
2
2
  https://github.com/highlightjs/highlight.js/issues/2277`),D=i,O=u),m===void 0&&(m=!0);const q={code:O,language:D};Oe("before:highlight",q);const oe=q.result?q.result:Ae(q.language,q.code,m);return oe.code=q.code,Oe("after:highlight",oe),oe}function Ae(i,u,m,O){const D=Object.create(null);function q(a,g){return a.keywords[g]}function oe(){if(!p.keywords){$.addText(v);return}let a=0;p.keywordPatternRe.lastIndex=0;let g=p.keywordPatternRe.exec(v),h="";for(;g;){h+=v.substring(a,g.index);const T=ee.case_insensitive?g[0].toLowerCase():g[0],G=q(p,T);if(G){const[ae,dt]=G;if($.addText(h),h="",D[T]=(D[T]||0)+1,D[T]<=Xn&&(Me+=dt),ae.startsWith("_"))h+=g[0];else{const gt=ee.classNameAliases[ae]||ae;Q(g[0],gt)}}else h+=g[0];a=p.keywordPatternRe.lastIndex,g=p.keywordPatternRe.exec(v)}h+=v.substring(a),$.addText(h)}function ve(){if(v==="")return;let a=null;if(typeof p.subLanguage=="string"){if(!t[p.subLanguage]){$.addText(v);return}a=Ae(p.subLanguage,v,!0,nn[p.subLanguage]),nn[p.subLanguage]=a._top}else a=Le(v,p.subLanguage.length?p.subLanguage:null);p.relevance>0&&(Me+=a.relevance),$.__addSublanguage(a._emitter,a.language)}function V(){p.subLanguage!=null?ve():oe(),v=""}function Q(a,g){a!==""&&($.startScope(g),$.addText(a),$.endScope())}function je(a,g){let h=1;const T=g.length-1;for(;h<=T;){if(!a._emit[h]){h++;continue}const G=ee.classNameAliases[a[h]]||a[h],ae=g[h];G?Q(ae,G):(v=ae,oe(),v=""),h++}}function qe(a,g){return a.scope&&typeof a.scope=="string"&&$.openNode(ee.classNameAliases[a.scope]||a.scope),a.beginScope&&(a.beginScope._wrap?(Q(v,ee.classNameAliases[a.beginScope._wrap]||a.beginScope._wrap),v=""):a.beginScope._multi&&(je(a.beginScope,g),v="")),p=Object.create(a,{parent:{value:p}}),p}function Qe(a,g,h){let T=J(a.endRe,h);if(T){if(a["on:end"]){const G=new o(a);a["on:end"](g,G),G.isMatchIgnored&&(T=!1)}if(T){for(;a.endsParent&&a.parent;)a=a.parent;return a}}if(a.endsWithParent)return Qe(a.parent,g,h)}function at(a){return p.matcher.regexIndex===0?(v+=a[0],1):(Ue=!0,0)}function rt(a){const g=a[0],h=a.rule,T=new o(h),G=[h.__beforeBegin,h["on:begin"]];for(const ae of G)if(ae&&(ae(a,T),T.isMatchIgnored))return at(g);return h.skip?v+=g:(h.excludeBegin&&(v+=g),V(),!h.returnBegin&&!h.excludeBegin&&(v=g)),qe(h,a),h.returnBegin?0:g.length}function ot(a){const g=a[0],h=u.substring(a.index),T=Qe(p,a,h);if(!T)return We;const G=p;p.endScope&&p.endScope._wrap?(V(),Q(g,p.endScope._wrap)):p.endScope&&p.endScope._multi?(V(),je(p.endScope,a)):G.skip?v+=g:(G.returnEnd||G.excludeEnd||(v+=g),V(),G.excludeEnd&&(v=g));do p.scope&&$.closeNode(),!p.skip&&!p.subLanguage&&(Me+=p.relevance),p=p.parent;while(p!==T.parent);return T.starts&&qe(T.starts,a),G.returnEnd?0:g.length}function ct(){const a=[];for(let g=p;g!==ee;g=g.parent)g.scope&&a.unshift(g.scope);a.forEach(g=>$.openNode(g))}let xe={};function en(a,g){const h=g&&g[0];if(v+=a,h==null)return V(),0;if(xe.type==="begin"&&g.type==="end"&&xe.index===g.index&&h===""){if(v+=u.slice(g.index,g.index+1),!k){const T=new Error(`0 width match regex (${i})`);throw T.languageName=i,T.badRule=xe.rule,T}return 1}if(xe=g,g.type==="begin")return rt(g);if(g.type==="illegal"&&!m){const T=new Error('Illegal lexeme "'+h+'" for mode "'+(p.scope||"<unnamed>")+'"');throw T.mode=p,T}else if(g.type==="end"){const T=ot(g);if(T!==We)return T}if(g.type==="illegal"&&h==="")return v+=`
3
3
  `,1;if(Pe>1e5&&Pe>g.index*3)throw new Error("potential infinite loop, way more iterations than matches");return v+=h,h.length}const ee=re(i);if(!ee)throw de(I.replace("{}",i)),new Error('Unknown language: "'+i+'"');const lt=Fn(ee);let De="",p=O||lt;const nn={},$=new r.__emitter(r);ct();let v="",Me=0,ge=0,Pe=0,Ue=!1;try{if(ee.__emitTokens)ee.__emitTokens(u,$);else{for(p.matcher.considerAll();;){Pe++,Ue?Ue=!1:p.matcher.considerAll(),p.matcher.lastIndex=ge;const a=p.matcher.exec(u);if(!a)break;const g=u.substring(ge,a.index),h=en(g,a);ge=a.index+h}en(u.substring(ge))}return $.finalize(),De=$.toHTML(),{language:i,value:De,relevance:Me,illegal:!1,_emitter:$,_top:p}}catch(a){if(a.message&&a.message.includes("Illegal"))return{language:i,value:Ie(u),illegal:!0,relevance:0,_illegalBy:{message:a.message,index:ge,context:u.slice(ge-100,ge+100),mode:a.mode,resultSoFar:De},_emitter:$};if(k)return{language:i,value:Ie(u),illegal:!1,relevance:0,errorRaised:a,_emitter:$,_top:p};throw a}}function Ce(i){const u={value:Ie(i),illegal:!1,relevance:0,_top:c,_emitter:new r.__emitter(r)};return u._emitter.addText(i),u}function Le(i,u){u=u||r.languages||Object.keys(t);const m=Ce(i),O=u.filter(re).filter(Je).map(V=>Ae(V,i,!1));O.unshift(m);const D=O.sort((V,Q)=>{if(V.relevance!==Q.relevance)return Q.relevance-V.relevance;if(V.language&&Q.language){if(re(V.language).supersetOf===Q.language)return 1;if(re(Q.language).supersetOf===V.language)return-1}return 0}),[q,oe]=D,ve=q;return ve.secondBest=oe,ve}function Yn(i,u,m){const O=u&&s[u]||m;i.classList.add("hljs"),i.classList.add(`language-${O}`)}function Be(i){let u=null;const m=U(i);if(f(m))return;if(Oe("before:highlightElement",{el:i,language:m}),i.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",i);return}if(i.children.length>0&&(r.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(i)),r.throwUnescapedHTML))throw new Wn("One of your code blocks includes unescaped HTML.",i.innerHTML);u=i;const O=u.textContent,D=m?L(O,{language:m,ignoreIllegals:!0}):Le(O);i.innerHTML=D.value,i.dataset.highlighted="yes",Yn(i,m,D.language),i.result={language:D.language,re:D.relevance,relevance:D.relevance},D.secondBest&&(i.secondBest={language:D.secondBest.language,relevance:D.secondBest.relevance}),Oe("after:highlightElement",{el:i,result:D,text:O})}function Vn(i){r=Ze(r,i)}const Jn=()=>{we(),Ee("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function jn(){we(),Ee("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Ye=!1;function we(){function i(){we()}if(document.readyState==="loading"){Ye||window.addEventListener("DOMContentLoaded",i,!1),Ye=!0;return}document.querySelectorAll(r.cssSelector).forEach(Be)}function qn(i,u){let m=null;try{m=u(e)}catch(O){if(de("Language definition for '{}' could not be registered.".replace("{}",i)),k)de(O);else throw O;m=c}m.name||(m.name=i),t[i]=m,m.rawDefinition=u.bind(null,e),m.aliases&&Ve(m.aliases,{languageName:i})}function Qn(i){delete t[i];for(const u of Object.keys(s))s[u]===i&&delete s[u]}function et(){return Object.keys(t)}function re(i){return i=(i||"").toLowerCase(),t[i]||t[s[i]]}function Ve(i,{languageName:u}){typeof i=="string"&&(i=[i]),i.forEach(m=>{s[m.toLowerCase()]=u})}function Je(i){const u=re(i);return u&&!u.disableAutodetect}function nt(i){i["before:highlightBlock"]&&!i["before:highlightElement"]&&(i["before:highlightElement"]=u=>{i["before:highlightBlock"](Object.assign({block:u.el},u))}),i["after:highlightBlock"]&&!i["after:highlightElement"]&&(i["after:highlightElement"]=u=>{i["after:highlightBlock"](Object.assign({block:u.el},u))})}function tt(i){nt(i),b.push(i)}function it(i){const u=b.indexOf(i);u!==-1&&b.splice(u,1)}function Oe(i,u){const m=i;b.forEach(function(O){O[m]&&O[m](u)})}function st(i){return Ee("10.7.0","highlightBlock will be removed entirely in v12.0"),Ee("10.7.0","Please use highlightElement now."),Be(i)}Object.assign(e,{highlight:L,highlightAuto:Le,highlightAll:we,highlightElement:Be,highlightBlock:st,configure:Vn,initHighlighting:Jn,initHighlightingOnLoad:jn,registerLanguage:qn,unregisterLanguage:Qn,listLanguages:et,getLanguage:re,registerAliases:Ve,autoDetection:Je,inherit:Ze,addPlugin:tt,removePlugin:it}),e.debugMode=function(){k=!1},e.safeMode=function(){k=!0},e.versionString=Zn,e.regex={concat:A,lookahead:N,either:H,optional:C,anyNumberOfTimes:B};for(const i in Te)typeof Te[i]=="object"&&n(Te[i]);return Object.assign(e,Te),e},me=Xe({});return me.newInstance=()=>Xe({}),$e=me,me.HighlightJS=me,me.default=me,$e}var At=yt();const Z=ut(At);function cn(n){const o=n.regex,l={},d={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[l]}]};Object.assign(l,{className:"variable",variants:[{begin:o.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},d]});const R={className:"subst",begin:/\$\(/,end:/\)/,contains:[n.BACKSLASH_ESCAPE]},M=n.inherit(n.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),_={begin:/<<-?\s*(?=\w+)/,starts:{contains:[n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},E={className:"string",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE,l,R]};R.contains.push(E);const w={match:/\\"/},y={className:"string",begin:/'/,end:/'/},P={match:/\\'/},x={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},n.NUMBER_MODE,l]},N=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],B=n.SHEBANG({binary:`(${N.join("|")})`,relevance:10}),C={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[n.inherit(n.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},A=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],z=["true","false"],H={match:/(\/[a-z._-]+)+/},F=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],J=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],ne=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],W=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:A,literal:z,built_in:[...F,...J,"set","shopt",...ne,...W]},contains:[B,n.SHEBANG(),C,x,M,_,H,E,w,y,P,l]}}const Tt=n=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:n.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:n.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Rt=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],wt=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Ot=[...Rt,...wt],vt=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),xt=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Mt=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),kt=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function It(n){const o=n.regex,l=Tt(n),d={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},R="and or not only",M=/@-?\w[\w]*(-\w+)*/,_="[a-zA-Z-][a-zA-Z0-9_-]*",E=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[l.BLOCK_COMMENT,d,l.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+_,relevance:0},l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+xt.join("|")+")"},{begin:":(:)?("+Mt.join("|")+")"}]},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+kt.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...E,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...E,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},l.FUNCTION_DISPATCH]},{begin:o.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:M},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:R,attribute:vt.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...E,l.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Ot.join("|")+")\\b"}]}}function Ct(n){const o=n.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:o.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:o.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}const on="[A-Za-z$_][0-9A-Za-z$_]*",Lt=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Bt=["true","false","null","undefined","NaN","Infinity"],ln=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],dn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],gn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Dt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Pt=[].concat(gn,ln,dn);function un(n){const o=n.regex,l=(S,{after:K})=>{const Y="</"+S[0].slice(1);return S.input.indexOf(Y,K)!==-1},d=on,R={begin:"<>",end:"</>"},M=/<[A-Za-z0-9\\._:-]+\s*\/>/,_={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(S,K)=>{const Y=S[0].length+S.index,j=S.input[Y];if(j==="<"||j===","){K.ignoreMatch();return}j===">"&&(l(S,{after:Y})||K.ignoreMatch());let se;const le=S.input.substring(Y);if(se=le.match(/^\s*=/)){K.ignoreMatch();return}if((se=le.match(/^\s+extends\s+/))&&se.index===0){K.ignoreMatch();return}}},E={$pattern:on,keyword:Lt,literal:Bt,built_in:Pt,"variable.language":Dt},w="[0-9](_?[0-9])*",y=`\\.(${w})`,P="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",x={className:"number",variants:[{begin:`(\\b(${P})((${y})|\\.)?|(${y}))[eE][+-]?(${w})\\b`},{begin:`\\b(${P})\\b((${y})\\b|\\.)?|(${y})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},N={className:"subst",begin:"\\$\\{",end:"\\}",keywords:E,contains:[]},B={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,N],subLanguage:"xml"}},C={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,N],subLanguage:"css"}},A={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,N],subLanguage:"graphql"}},z={className:"string",begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,N]},F={className:"comment",variants:[n.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:d+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE]},J=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,B,C,A,z,{match:/\$\d+/},x];N.contains=J.concat({begin:/\{/,end:/\}/,keywords:E,contains:["self"].concat(J)});const ne=[].concat(F,N.contains),W=ne.concat([{begin:/(\s*)\(/,end:/\)/,keywords:E,contains:["self"].concat(ne)}]),X={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:E,contains:W},fe={variants:[{match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,o.concat(d,"(",o.concat(/\./,d),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,d],scope:{1:"keyword",3:"title.class"}}]},te={relevance:0,match:o.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...ln,...dn]}},be={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},pe={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[X],illegal:/%/},he={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function _e(S){return o.concat("(?!",S.join("|"),")")}const Ne={match:o.concat(/\b/,_e([...gn,"super","import"].map(S=>`${S}\\s*\\(`)),d,o.lookahead(/\s*\(/)),className:"title.function",relevance:0},ie={begin:o.concat(/\./,o.lookahead(o.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Se={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},X]},ce="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+n.UNDERSCORE_IDENT_RE+")\\s*=>",ye={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,o.lookahead(ce)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[X]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:E,exports:{PARAMS_CONTAINS:W,CLASS_REFERENCE:te},illegal:/#(?![$_A-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),be,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,B,C,A,z,F,{match:/\$\d+/},x,te,{scope:"attr",match:d+o.lookahead(":"),relevance:0},ye,{begin:"("+n.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,n.REGEXP_MODE,{className:"function",begin:ce,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:E,contains:W}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:R.begin,end:R.end},{match:M},{begin:_.begin,"on:begin":_.isTrulyOpeningTag,end:_.end}],subLanguage:"xml",contains:[{begin:_.begin,end:_.end,skip:!0,contains:["self"]}]}]},pe,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[X,n.inherit(n.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},ie,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[X]},Ne,he,fe,Se,{match:/\$[(.]/}]}}function Ut(n){const o={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},l={match:/[{}[\],:]/,className:"punctuation",relevance:0},d=["true","false","null"],R={scope:"literal",beginKeywords:d.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:d},contains:[o,l,n.QUOTE_STRING_MODE,R,n.C_NUMBER_MODE,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function $t(n){const o=n.regex,l=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),d=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],E={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:d,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},w={className:"meta",begin:/^(>>>|\.\.\.) /},y={className:"subst",begin:/\{/,end:/\}/,keywords:E,illegal:/#/},P={begin:/\{\{/,relevance:0},x={className:"string",contains:[n.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[n.BACKSLASH_ESCAPE,w],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[n.BACKSLASH_ESCAPE,w],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[n.BACKSLASH_ESCAPE,w,P,y]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[n.BACKSLASH_ESCAPE,w,P,y]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[n.BACKSLASH_ESCAPE,P,y]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[n.BACKSLASH_ESCAPE,P,y]},n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]},N="[0-9](_?[0-9])*",B=`(\\b(${N}))?\\.(${N})|\\b(${N})\\.`,C=`\\b|${d.join("|")}`,A={className:"number",relevance:0,variants:[{begin:`(\\b(${N})|(${B}))[eE][+-]?(${N})[jJ]?(?=${C})`},{begin:`(${B})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${C})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${C})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${C})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${C})`},{begin:`\\b(${N})[jJ](?=${C})`}]},z={className:"comment",begin:o.lookahead(/# type:/),end:/$/,keywords:E,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},H={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:E,contains:["self",w,A,x,n.HASH_COMMENT_MODE]}]};return y.contains=[x,A,w],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:E,illegal:/(<\/|\?)|=>/,contains:[w,A,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},x,z,n.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,l],scope:{1:"keyword",3:"title.function"},contains:[H]},{variants:[{match:[/\bclass/,/\s+/,l,/\s*/,/\(\s*/,l,/\s*\)/]},{match:[/\bclass/,/\s+/,l]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[A,H,x]}]}}const ke="[A-Za-z$_][0-9A-Za-z$_]*",fn=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],bn=["true","false","null","undefined","NaN","Infinity"],pn=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],hn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],En=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],mn=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],_n=[].concat(En,pn,hn);function zt(n){const o=n.regex,l=(S,{after:K})=>{const Y="</"+S[0].slice(1);return S.input.indexOf(Y,K)!==-1},d=ke,R={begin:"<>",end:"</>"},M=/<[A-Za-z0-9\\._:-]+\s*\/>/,_={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(S,K)=>{const Y=S[0].length+S.index,j=S.input[Y];if(j==="<"||j===","){K.ignoreMatch();return}j===">"&&(l(S,{after:Y})||K.ignoreMatch());let se;const le=S.input.substring(Y);if(se=le.match(/^\s*=/)){K.ignoreMatch();return}if((se=le.match(/^\s+extends\s+/))&&se.index===0){K.ignoreMatch();return}}},E={$pattern:ke,keyword:fn,literal:bn,built_in:_n,"variable.language":mn},w="[0-9](_?[0-9])*",y=`\\.(${w})`,P="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",x={className:"number",variants:[{begin:`(\\b(${P})((${y})|\\.)?|(${y}))[eE][+-]?(${w})\\b`},{begin:`\\b(${P})\\b((${y})\\b|\\.)?|(${y})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},N={className:"subst",begin:"\\$\\{",end:"\\}",keywords:E,contains:[]},B={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,N],subLanguage:"xml"}},C={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,N],subLanguage:"css"}},A={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,N],subLanguage:"graphql"}},z={className:"string",begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,N]},F={className:"comment",variants:[n.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:d+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE]},J=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,B,C,A,z,{match:/\$\d+/},x];N.contains=J.concat({begin:/\{/,end:/\}/,keywords:E,contains:["self"].concat(J)});const ne=[].concat(F,N.contains),W=ne.concat([{begin:/(\s*)\(/,end:/\)/,keywords:E,contains:["self"].concat(ne)}]),X={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:E,contains:W},fe={variants:[{match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,o.concat(d,"(",o.concat(/\./,d),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,d],scope:{1:"keyword",3:"title.class"}}]},te={relevance:0,match:o.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...pn,...hn]}},be={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},pe={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[X],illegal:/%/},he={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function _e(S){return o.concat("(?!",S.join("|"),")")}const Ne={match:o.concat(/\b/,_e([...En,"super","import"].map(S=>`${S}\\s*\\(`)),d,o.lookahead(/\s*\(/)),className:"title.function",relevance:0},ie={begin:o.concat(/\./,o.lookahead(o.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Se={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},X]},ce="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+n.UNDERSCORE_IDENT_RE+")\\s*=>",ye={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,o.lookahead(ce)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[X]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:E,exports:{PARAMS_CONTAINS:W,CLASS_REFERENCE:te},illegal:/#(?![$_A-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),be,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,B,C,A,z,F,{match:/\$\d+/},x,te,{scope:"attr",match:d+o.lookahead(":"),relevance:0},ye,{begin:"("+n.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,n.REGEXP_MODE,{className:"function",begin:ce,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:E,contains:W}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:R.begin,end:R.end},{match:M},{begin:_.begin,"on:begin":_.isTrulyOpeningTag,end:_.end}],subLanguage:"xml",contains:[{begin:_.begin,end:_.end,skip:!0,contains:["self"]}]}]},pe,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[X,n.inherit(n.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},ie,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[X]},Ne,he,fe,Se,{match:/\$[(.]/}]}}function Nn(n){const o=n.regex,l=zt(n),d=ke,R=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],M={begin:[/namespace/,/\s+/,n.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},_={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:R},contains:[l.exports.CLASS_REFERENCE]},E={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},w=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],y={$pattern:ke,keyword:fn.concat(w),literal:bn,built_in:_n.concat(R),"variable.language":mn},P={className:"meta",begin:"@"+d},x=(A,z,H)=>{const F=A.contains.findIndex(J=>J.label===z);if(F===-1)throw new Error("can not find mode to replace");A.contains.splice(F,1,H)};Object.assign(l.keywords,y),l.exports.PARAMS_CONTAINS.push(P);const N=l.contains.find(A=>A.scope==="attr"),B=Object.assign({},N,{match:o.concat(d,o.lookahead(/\s*\?:/))});l.exports.PARAMS_CONTAINS.push([l.exports.CLASS_REFERENCE,N,B]),l.contains=l.contains.concat([P,M,_,B]),x(l,"shebang",n.SHEBANG()),x(l,"use_strict",E);const C=l.contains.find(A=>A.label==="func.def");return C.relevance=0,Object.assign(l,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),l}function Sn(n){const o=n.regex,l=o.concat(/[\p{L}_]/u,o.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),d=/[\p{L}0-9._:-]+/u,R={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},M={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},_=n.inherit(M,{begin:/\(/,end:/\)/}),E=n.inherit(n.APOS_STRING_MODE,{className:"string"}),w=n.inherit(n.QUOTE_STRING_MODE,{className:"string"}),y={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:d,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[R]},{begin:/'/,end:/'/,contains:[R]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[M,w,E,_,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[M,_,w,E]}]}]},n.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},R,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[w]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[y],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[y],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:o.concat(/</,o.lookahead(o.concat(l,o.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:l,relevance:0,starts:y}]},{className:"tag",begin:o.concat(/<\//,o.lookahead(o.concat(l,/>/))),contains:[{className:"name",begin:l,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function yn(n){const o="true false yes no null",l="[\\w#;/?:@&=+$,.~*'()[\\]]+",d={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},R={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},M={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},_={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[n.BACKSLASH_ESCAPE,R]},E=n.inherit(_,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),N={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},B={end:",",endsWithParent:!0,excludeEnd:!0,keywords:o,relevance:0},C={begin:/\{/,end:/\}/,contains:[B],illegal:"\\n",relevance:0},A={begin:"\\[",end:"\\]",contains:[B],illegal:"\\n",relevance:0},z=[d,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+l},{className:"type",begin:"!<"+l+">"},{className:"type",begin:"!"+l},{className:"type",begin:"!!"+l},{className:"meta",begin:"&"+n.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+n.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},n.HASH_COMMENT_MODE,{beginKeywords:o,keywords:{literal:o}},N,{className:"number",begin:n.C_NUMBER_RE+"\\b",relevance:0},C,A,M,_],H=[...z];return H.pop(),H.push(E),B.contains=H,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:z}}const Ht={bash:cn,css:It,diff:Ct,javascript:un,json:Ut,python:$t,typescript:Nn,xml:Sn,yaml:yn};for(const[n,o]of Object.entries(Ht))Z.getLanguage(n)||Z.registerLanguage(n,o);Z.getLanguage("sh")||Z.registerLanguage("sh",cn);Z.getLanguage("ts")||Z.registerLanguage("ts",Nn);Z.getLanguage("js")||Z.registerLanguage("js",un);Z.getLanguage("yml")||Z.registerLanguage("yml",yn);Z.getLanguage("html")||Z.registerLanguage("html",Sn);const Gt=1e5;function Ft(n,o){try{if(o&&Z.getLanguage(o))return{html:Z.highlight(n,{language:o,ignoreIllegals:!0}).value,language:o};if(n.length<=Gt){const l=Z.highlightAuto(n);return{html:l.value,language:l.language??""}}}catch{}return{html:Kt(n),language:""}}function Kt(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}const Zt={class:"relative"},Wt={class:"bg-gray-50 dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-lg px-4 pt-8 pb-3 text-sm font-mono overflow-x-auto leading-relaxed"},Xt=["innerHTML"],Yt={key:0,class:"absolute top-2 left-3 text-[10px] font-medium uppercase tracking-wide text-gray-400 dark:text-gray-500 select-none pointer-events-none"},Vt=ft({__name:"CodeBlock",props:{code:{},lang:{}},setup(n){const o=n,{copy:l,copied:d}=St(),R=mt(""),M=_t(()=>{const _=Ft(o.code,o.lang);return R.value=_.language,_.html});return(_,E)=>{const w=Et;return tn(),sn("div",Zt,[an("pre",Wt,[an("code",{class:"hljs !bg-transparent",innerHTML:ue(M)},null,8,Xt)]),ue(R)?(tn(),sn("span",Yt,bt(ue(R)),1)):pt("",!0),ht(w,{size:"xs",color:"neutral",variant:"ghost",icon:ue(d)?"i-lucide-check":"i-lucide-clipboard",title:ue(d)?"Copied!":("copyPreview"in _?_.copyPreview:ue(Nt))(n.code),class:"absolute top-1.5 right-1.5 opacity-40 hover:opacity-100 transition-opacity",onClick:E[0]||(E[0]=y=>ue(l)(n.code,{toast:!0}))},null,8,["icon","title"])])}}}),ei=Object.assign(Vt,{__name:"CodeBlock"});export{ei as _,Ft as h};
@@ -1 +1 @@
1
- import{d as T,b as n,o as a,c as x,e as s,m as B,f as r,k as l,t as c,l as i,F as C,z as M,h as y,_ as O,y as b,D as I,v as m}from"./BdQ7kfxJ.js";import"./DwZS0oRm.js";const L={key:0,class:"inline-flex items-center gap-1 flex-wrap"},N=T({__name:"TestMetaBadges",props:{tags:{default:null},meta:{default:null},maxTags:{default:0}},setup(t){const e=t,_={critical:"error",high:"warning",medium:"info",low:"neutral"},u=m(()=>{const f=e.tags??[];return e.maxTags>0?f.slice(0,e.maxTags):f}),d=m(()=>Math.max(0,(e.tags?.length??0)-u.value.length)),p=m(()=>(e.tags??[]).slice(u.value.length).join(", ")),v=m(()=>e.meta?.priority?_[e.meta.priority]??"neutral":"neutral"),w=m(()=>u.value.length>0||!!(e.meta?.owner||e.meta?.priority||e.meta?.feature||e.meta?.link));return(f,k)=>{const o=B,g=O,z=b;return n(w)?(a(),x("div",L,[t.meta?.priority?(a(),s(o,{key:0,color:n(v),variant:"soft",size:"xs",class:"shrink-0 capitalize"},{default:r(()=>[l(c(t.meta.priority),1)]),_:1},8,["color"])):i("",!0),(a(!0),x(C,null,M(n(u),h=>(a(),s(o,{key:h,color:"primary",variant:"soft",size:"xs",class:"shrink-0 font-mono"},{default:r(()=>[l(" @"+c(h),1)]),_:2},1024))),128)),n(d)>0?(a(),s(o,{key:1,color:"neutral",variant:"soft",size:"xs",class:"shrink-0",title:n(p)},{default:r(()=>[l(" +"+c(n(d)),1)]),_:1},8,["title"])):i("",!0),t.meta?.owner?(a(),s(o,{key:2,color:"neutral",variant:"soft",size:"xs",class:"shrink-0 gap-1"},{default:r(()=>[y(g,{name:"i-lucide-user",class:"size-2.5 shrink-0"}),l(" "+c(t.meta.owner),1)]),_:1})):i("",!0),t.meta?.feature?(a(),s(o,{key:3,color:"neutral",variant:"outline",size:"xs",class:"shrink-0"},{default:r(()=>[l(c(t.meta.feature),1)]),_:1})):i("",!0),t.meta?.link?(a(),s(z,{key:4,to:t.meta.link,target:"_blank",rel:"noopener noreferrer",class:"text-gray-500 hover:text-primary shrink-0",title:t.meta.link,onClick:k[0]||(k[0]=I(()=>{},["stop"]))},{default:r(()=>[y(g,{name:"i-lucide-external-link",class:"size-3"})]),_:1},8,["to","title"])):i("",!0)])):i("",!0)}}}),V=Object.assign(N,{__name:"TestMetaBadges"});export{V as _};
1
+ import{d as T,b as n,o as a,c as x,e as s,m as B,f as r,k as l,t as c,l as i,F as C,z as M,h as y,_ as O,y as b,D as I,v as m}from"./1QWBzxLM.js";import"./D4mPjHHR.js";const L={key:0,class:"inline-flex items-center gap-1 flex-wrap"},N=T({__name:"TestMetaBadges",props:{tags:{default:null},meta:{default:null},maxTags:{default:0}},setup(t){const e=t,_={critical:"error",high:"warning",medium:"info",low:"neutral"},u=m(()=>{const f=e.tags??[];return e.maxTags>0?f.slice(0,e.maxTags):f}),d=m(()=>Math.max(0,(e.tags?.length??0)-u.value.length)),p=m(()=>(e.tags??[]).slice(u.value.length).join(", ")),v=m(()=>e.meta?.priority?_[e.meta.priority]??"neutral":"neutral"),w=m(()=>u.value.length>0||!!(e.meta?.owner||e.meta?.priority||e.meta?.feature||e.meta?.link));return(f,k)=>{const o=B,g=O,z=b;return n(w)?(a(),x("div",L,[t.meta?.priority?(a(),s(o,{key:0,color:n(v),variant:"soft",size:"xs",class:"shrink-0 capitalize"},{default:r(()=>[l(c(t.meta.priority),1)]),_:1},8,["color"])):i("",!0),(a(!0),x(C,null,M(n(u),h=>(a(),s(o,{key:h,color:"primary",variant:"soft",size:"xs",class:"shrink-0 font-mono"},{default:r(()=>[l(" @"+c(h),1)]),_:2},1024))),128)),n(d)>0?(a(),s(o,{key:1,color:"neutral",variant:"soft",size:"xs",class:"shrink-0",title:n(p)},{default:r(()=>[l(" +"+c(n(d)),1)]),_:1},8,["title"])):i("",!0),t.meta?.owner?(a(),s(o,{key:2,color:"neutral",variant:"soft",size:"xs",class:"shrink-0 gap-1"},{default:r(()=>[y(g,{name:"i-lucide-user",class:"size-2.5 shrink-0"}),l(" "+c(t.meta.owner),1)]),_:1})):i("",!0),t.meta?.feature?(a(),s(o,{key:3,color:"neutral",variant:"outline",size:"xs",class:"shrink-0"},{default:r(()=>[l(c(t.meta.feature),1)]),_:1})):i("",!0),t.meta?.link?(a(),s(z,{key:4,to:t.meta.link,target:"_blank",rel:"noopener noreferrer",class:"text-gray-500 hover:text-primary shrink-0",title:t.meta.link,onClick:k[0]||(k[0]=I(()=>{},["stop"]))},{default:r(()=>[y(g,{name:"i-lucide-external-link",class:"size-3"})]),_:1},8,["to","title"])):i("",!0)])):i("",!0)}}}),V=Object.assign(N,{__name:"TestMetaBadges"});export{V as _};
@@ -0,0 +1 @@
1
+ import{a3 as n,a5 as u,o as c,e as d,f,U as o,g as l,i as r,b as s,W as m,v as h,a8 as b}from"./1QWBzxLM.js";const g={slots:{root:"shrink-0 flex items-center justify-between border-b border-default px-4 sm:px-6 gap-1.5 overflow-x-auto min-h-[49px]",left:"flex items-center gap-1.5",right:"flex items-center gap-1.5"}},C={__name:"UDashboardToolbar",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(i){const e=n("dashboardToolbar",i),p=u(),a=h(()=>b({extend:g,...p.ui?.dashboardToolbar||{}})());return(t,x)=>(c(),d(s(m),{as:s(e).as,"data-slot":"root",class:r(a.value.root({class:[s(e).ui?.root,s(e).class]}))},{default:f(()=>[o(t.$slots,"default",{},()=>[l("div",{"data-slot":"left",class:r(a.value.left({class:[s(e).ui?.left]}))},[o(t.$slots,"left")],2),l("div",{"data-slot":"right",class:r(a.value.right({class:[s(e).ui?.right]}))},[o(t.$slots,"right")],2)])]),_:3},8,["as","class"]))}};export{C as _};
@@ -1 +1 @@
1
- import{d as V,T as Z,o as r,e as x,f as d,U as F,k as q,V as Q,b as e,W as H,X as He,Y as We,v as k,Z as Xe,$ as Ye,a0 as Je,t as P,c as I,g as f,a1 as ce,i as L,h as i,_ as ee,F as U,z as oe,m as Se,H as qe,l as B,j as G,r as w,a2 as et,a3 as tt,a4 as at,a5 as st,a6 as lt,a7 as nt,a8 as ot,u as it,p as rt,B as ut,a as ae,I as dt,x as se,a9 as Re,aa as de}from"./BdQ7kfxJ.js";import{_ as ct}from"./D0XWJGhG.js";import{_ as pt}from"./r6zkA1SE.js";import{_ as ft}from"./Bh2WA4IJ.js";import{_ as gt}from"./C2hIM5f9.js";import{_ as mt}from"./CfV2N201.js";import{_ as vt}from"./CZ6WR7uw.js";import{_ as ze}from"./BnhWd06P.js";import{_ as Ie}from"./LWIyaZKe.js";import{l as pe,m as fe,p as ge,a as me,e as _t,t as yt}from"./DwZS0oRm.js";import{_ as bt}from"./CsGsLxHg.js";import{_ as ht}from"./CPrVhXJk.js";import{_ as xt}from"./CLrLFf3s.js";import{_ as kt}from"./BOn5q0rT.js";import{u as Ct}from"./Bb_1uAHn.js";import{u as Pt}from"./DTtizz85.js";var Rt=V({__name:"PaginationEllipsis",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const c=u;return Z(),(s,_)=>(r(),x(e(H),Q(c,{"data-type":"ellipsis"}),{default:d(()=>[F(s.$slots,"default",{},()=>[_[0]||(_[0]=q("…"))])]),_:3},16))}}),$t=Rt;const[te,St]=Xe("PaginationRoot");var qt=V({__name:"PaginationRoot",props:{page:{type:Number,required:!1},defaultPage:{type:Number,required:!1,default:1},itemsPerPage:{type:Number,required:!0},total:{type:Number,required:!1,default:0},siblingCount:{type:Number,required:!1,default:2},disabled:{type:Boolean,required:!1},showEdges:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"nav"}},emits:["update:page"],setup(u,{emit:c}){const s=u,_=c,{siblingCount:m,disabled:t,showEdges:C}=He(s);Z();const b=We(s,"page",_,{defaultValue:s.defaultPage,passive:s.page===void 0}),T=k(()=>Math.max(1,Math.ceil(s.total/(s.itemsPerPage||1))));return St({page:b,onPageChange(z){b.value=z},pageCount:T,siblingCount:m,disabled:t,showEdges:C}),(z,E)=>(r(),x(e(H),{as:z.as,"as-child":z.asChild},{default:d(()=>[F(z.$slots,"default",{page:e(b),pageCount:T.value})]),_:3},8,["as","as-child"]))}}),zt=qt,It=V({__name:"PaginationFirst",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u,s=te();Z();const _=k(()=>s.page.value===1||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"First Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(1))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=q("First page"))])]),_:3},16,["type","disabled"]))}}),Lt=It,Nt=V({__name:"PaginationLast",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u,s=te();Z();const _=k(()=>s.page.value===s.pageCount.value||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"Last Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(e(s).pageCount.value))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=q("Last page"))])]),_:3},16,["type","disabled"]))}}),Tt=Nt;function K(u,c){const s=c-u+1;return Array.from({length:s},(_,m)=>m+u)}function jt(u){return u.map(c=>typeof c=="number"?{type:"page",value:c}:{type:"ellipsis"})}const ne="ellipsis";function Ft(u,c,s,_){const t=c,C=Math.max(u-s,1),b=Math.min(u+s,t);if(_){const z=Math.min(2*s+5,c)-2,E=C>3&&Math.abs(t-z-1+1)>2&&Math.abs(C-1)>2,D=b<t-2&&Math.abs(t-z)>2&&Math.abs(t-b)>2;if(!E&&D)return[...K(1,z),ne,t];if(E&&!D){const l=K(t-z+1,t);return[1,ne,...l]}if(E&&D){const l=K(C,b);return[1,ne,...l,ne,t]}return K(1,t)}else{const T=s*2+1;return c<T?K(1,t):u<=s+1?K(1,T):c-u<=s?K(c-T+1,t):K(C,b)}}var wt=V({__name:"PaginationList",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const c=u;Z();const s=te(),_=k(()=>jt(Ft(s.page.value,s.pageCount.value,s.siblingCount.value,s.showEdges.value)));return(m,t)=>(r(),x(e(H),Ye(Je(c)),{default:d(()=>[F(m.$slots,"default",{items:_.value})]),_:3},16))}}),Bt=wt,Vt=V({__name:"PaginationListItem",props:{value:{type:Number,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u;Z();const s=te(),_=k(()=>s.page.value===c.value),m=k(()=>s.disabled.value);return(t,C)=>(r(),x(e(H),Q(c,{"data-type":"page","aria-label":`Page ${t.value}`,"aria-current":_.value?"page":void 0,"data-selected":_.value?"true":void 0,disabled:m.value,type:t.as==="button"?"button":void 0,onClick:C[0]||(C[0]=b=>!m.value&&e(s).onPageChange(t.value))}),{default:d(()=>[F(t.$slots,"default",{},()=>[q(P(t.value),1)])]),_:3},16,["aria-label","aria-current","data-selected","disabled","type"]))}}),Et=Vt,Dt=V({__name:"PaginationNext",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u;Z();const s=te(),_=k(()=>s.page.value===s.pageCount.value||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"Next Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(e(s).page.value+1))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=q("Next page"))])]),_:3},16,["type","disabled"]))}}),Mt=Dt,Ut=V({__name:"PaginationPrev",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u;Z();const s=te(),_=k(()=>s.page.value===1||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"Previous Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(e(s).page.value-1))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=q("Prev page"))])]),_:3},16,["type","disabled"]))}}),At=Ut;const Ot=["title"],Kt={class:"h-1.5 w-14 shrink-0 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700"},Gt={class:"text-sm font-medium tabular-nums"},Qt={key:1,class:"text-sm text-muted",title:"No executed runs yet"},Zt=V({__name:"PassRateIndicator",props:{rate:{}},setup(u){const c=u,s=k(()=>c.rate==null?null:Math.round(c.rate*100)),_=k(()=>s.value==null?"":s.value>=80?"bg-green-500":s.value>=50?"bg-amber-500":"bg-red-500");return(m,t)=>e(s)!=null?(r(),I("div",{key:0,class:"flex items-center gap-2",title:`${e(s)}% of executed runs passed`},[f("div",Kt,[f("div",{class:L([e(_),"h-full rounded-full transition-all"]),style:ce({width:`${e(s)}%`})},null,6)]),f("span",Gt,P(e(s))+"%",1)],8,Ot)):(r(),I("span",Qt,"—"))}}),Le=Object.assign(Zt,{__name:"PassRateIndicator"}),Ht={class:"rounded-lg border border-default bg-default text-sm"},Wt={class:"flex items-center justify-end px-3 py-1.5 border-b border-default bg-elevated"},Xt=["disabled","title"],Yt=["onClick"],Jt={class:"text-xs text-muted tabular-nums shrink-0"},ea={class:"w-24 sm:w-32 shrink-0 max-sm:hidden"},ta={class:"flex items-center gap-3 shrink-0"},aa=["title"],sa=["title"],la={key:0,class:"text-center py-8 text-muted"},na=V({__name:"ProjectTestCasesTree",props:{items:{},hasFilter:{type:Boolean}},setup(u){const c=u;function s(l){return(l.suitePath||"").split("").filter(Boolean)}function _(l){const n={passed:0,failed:0,skipped:0,flaky:0,didNotRun:0,total:0,cases:l.length};for(const v of l)n.passed+=v.passedRuns,n.failed+=v.failedRuns,n.skipped+=v.skippedRuns,n.flaky+=v.flakyRuns,n.didNotRun+=v.didNotRunRuns,n.total+=v.totalRuns;return n}const m=w(new Set),t=k(()=>m.value.size===0);function C(l){return c.hasFilter?!0:!m.value.has(l)}function b(l){if(c.hasFilter)return;const n=new Set(m.value);n.has(l)?n.delete(l):n.add(l),m.value=n}function T(){const l=new Set;for(const n of c.items){l.add(`file:${n.filePath}`);const v=s(n);for(let y=1;y<=v.length;y++)l.add(`group:${n.filePath}${v.slice(0,y).join("")}`)}return[...l]}function z(){m.value=new Set(T())}function E(){m.value=new Set}function D(l,n,v,y,h){const $=n.filter(R=>s(R).length===y.length),S=n.filter(R=>s(R).length>y.length),j=new Map;for(const R of S){const o=s(R)[y.length];j.has(o)||j.set(o,[]),j.get(o).push(R)}for(const[R,o]of j){const W=[...y,R],N=`group:${v}${W.join("")}`;l.push({kind:"group",depth:h,key:N,label:R,agg:_(o)}),C(N)&&D(l,o,v,W,h+1)}for(const R of $)l.push({kind:"case",depth:h,key:`case:${R.id}`,testCase:R})}const A=k(()=>{const l=[],n=new Map;for(const v of c.items){const y=v.filePath||"unknown";n.has(y)||n.set(y,[]),n.get(y).push(v)}for(const[v,y]of[...n.entries()].sort(([h],[$])=>h.localeCompare($))){const h=`file:${v}`;l.push({kind:"group",depth:0,key:h,label:v,agg:_(y)}),C(h)&&D(l,y,v,[],1)}return l});return(l,n)=>{const v=ee,y=ze,h=Se,$=qe,S=Le,j=Ie,R=G;return r(),I("div",Ht,[f("div",Wt,[f("button",{class:L(["flex items-center gap-1 text-xs transition-colors",u.hasFilter?"text-muted cursor-not-allowed opacity-50":"text-muted hover:text-default"]),disabled:u.hasFilter,title:u.hasFilter?"Clear filters to collapse/expand":e(t)?"Collapse all":"Expand all",onClick:n[0]||(n[0]=o=>e(t)?z():E())},[i(v,{name:e(t)?"i-lucide-fold-vertical":"i-lucide-unfold-vertical",class:"size-3.5"},null,8,["name"]),q(" "+P(e(t)?"Collapse all":"Expand all"),1)],10,Xt)]),(r(!0),I(U,null,oe(e(A),o=>(r(),I(U,{key:o.key},[o.kind==="group"?(r(),I("div",{key:0,class:L(["flex items-center gap-2 py-2 pr-3 border-b border-default last:border-b-0 select-none",[o.depth===0?"bg-elevated":"bg-default",!u.hasFilter&&"cursor-pointer"]]),style:ce({paddingLeft:`${o.depth*20+12}px`}),onClick:W=>b(o.key)},[i(v,{name:C(o.key)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5 text-muted shrink-0"},null,8,["name"]),i(v,{name:o.depth===0?"i-lucide-file-code-2":"i-lucide-folder-open",class:L(["size-4 shrink-0",o.depth===0?"text-blue-500":"text-amber-500"])},null,8,["name","class"]),f("span",{class:L(["font-medium truncate min-w-0",[o.depth===0?"text-default font-mono text-xs sm:text-sm":"text-muted"]])},P(o.label),3),f("span",Jt,P(o.agg.cases)+" "+P(o.agg.cases===1?"case":"cases"),1),n[1]||(n[1]=f("div",{class:"flex-1"},null,-1)),f("div",ea,[i(y,{passed:o.agg.passed,failed:o.agg.failed,skipped:o.agg.skipped,flaky:o.agg.flaky,"did-not-run":o.agg.didNotRun,total:o.agg.total},null,8,["passed","failed","skipped","flaky","did-not-run","total"])])],14,Yt)):(r(),I("div",{key:1,class:"flex flex-wrap items-center gap-x-2 gap-y-1 pr-3 py-1.5 border-b border-default last:border-b-0 hover:bg-gray-50 dark:hover:bg-gray-900/40 transition-colors",style:ce({paddingLeft:`${o.depth*20+12}px`})},[i(v,{name:"i-lucide-flask-conical",class:"size-3.5 text-muted shrink-0"}),i(h,{color:("testCaseCategoryColor"in l?l.testCaseCategoryColor:e(fe))(o.testCase.status),size:"xs",variant:"subtle",class:"capitalize shrink-0"},{default:d(()=>[q(P(("formatStatusLabel"in l?l.formatStatusLabel:e(pe))(o.testCase.status)),1)]),_:2},1032,["color"]),i($,{to:`/test-cases/${o.testCase.id}`,class:"text-sm text-primary hover:underline truncate flex-1 min-w-32",title:o.testCase.title},{default:d(()=>[q(P(o.testCase.title),1)]),_:2},1032,["to","title"]),f("div",ta,[i(S,{rate:o.testCase.passRate},null,8,["rate"]),f("span",{class:"text-xs text-muted tabular-nums max-sm:hidden",title:`${o.testCase.totalRuns} runs`},P(o.testCase.totalRuns)+"× ",9,aa),o.testCase.avgDuration!=null?(r(),x(j,{key:0,ms:o.testCase.avgDuration,class:"text-xs text-muted max-sm:hidden"},null,8,["ms"])):B("",!0),f("span",{class:"text-xs text-muted max-sm:hidden",title:("prettyDateFormat"in l?l.prettyDateFormat:e(ge))(o.testCase.lastRun)},P(("formatRelativeTime"in l?l.formatRelativeTime:e(me))(o.testCase.lastRun)),9,sa),i(R,{to:`/test-cases/${o.testCase.id}`,size:"xs",variant:"outline"},{default:d(()=>[...n[2]||(n[2]=[q("View",-1)])]),_:1},8,["to"])])],4))],64))),128)),e(A).length===0?(r(),I("div",la,[i(v,{name:"i-lucide-search-x",class:"size-6 mx-auto mb-2 text-gray-300 dark:text-gray-600"}),n[3]||(n[3]=f("p",{class:"text-sm"},"No test cases match your filters.",-1))])):B("",!0)])}}}),oa=Object.assign(na,{__name:"ProjectTestCasesTree"}),ia={slots:{root:"",list:"flex items-center gap-1",ellipsis:"pointer-events-none",label:"min-w-5 text-center",first:"",prev:"",item:"",next:"",last:""}},ra={__name:"UPagination",props:{as:{type:null,required:!1},firstIcon:{type:null,required:!1},prevIcon:{type:null,required:!1},nextIcon:{type:null,required:!1},lastIcon:{type:null,required:!1},ellipsisIcon:{type:null,required:!1},color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"outline"},activeColor:{type:null,required:!1,default:"primary"},activeVariant:{type:null,required:!1,default:"solid"},showControls:{type:Boolean,required:!1,default:!0},size:{type:null,required:!1},to:{type:Function,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultPage:{type:Number,required:!1},disabled:{type:Boolean,required:!1},itemsPerPage:{type:Number,required:!1,default:10},page:{type:Number,required:!1},showEdges:{type:Boolean,required:!1,default:!1},siblingCount:{type:Number,required:!1,default:2},total:{type:Number,required:!1,default:0}},emits:["update:page"],setup(u,{emit:c}){const s=u,_=c,m=et(),t=tt("pagination",s),{dir:C}=at(),b=st(),T=lt(nt(t,"as","defaultPage","disabled","itemsPerPage","page","showEdges","siblingCount","total"),_),z=k(()=>t.firstIcon||(C.value==="rtl"?b.ui.icons.chevronDoubleRight:b.ui.icons.chevronDoubleLeft)),E=k(()=>t.prevIcon||(C.value==="rtl"?b.ui.icons.chevronRight:b.ui.icons.chevronLeft)),D=k(()=>t.nextIcon||(C.value==="rtl"?b.ui.icons.chevronLeft:b.ui.icons.chevronRight)),A=k(()=>t.lastIcon||(C.value==="rtl"?b.ui.icons.chevronDoubleLeft:b.ui.icons.chevronDoubleRight)),l=k(()=>ot({extend:ia,...b.ui?.pagination||{}})());return(n,v)=>(r(),x(e(zt),Q(e(T),{"data-slot":"root",class:l.value.root({class:[e(t).ui?.root,e(t).class]})}),{default:d(({page:y,pageCount:h})=>[i(e(Bt),{"data-slot":"list",class:L(l.value.list({class:e(t).ui?.list}))},{default:d(({items:$})=>[e(t).showControls||m.first?(r(),x(e(Lt),{key:0,"as-child":"","data-slot":"first",class:L(l.value.first({class:e(t).ui?.first}))},{default:d(()=>[F(n.$slots,"first",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:z.value,to:e(t).to?.(1)},null,8,["color","variant","size","icon","to"])])]),_:3},8,["class"])):B("",!0),e(t).showControls||m.prev?(r(),x(e(At),{key:1,"as-child":"","data-slot":"prev",class:L(l.value.prev({class:e(t).ui?.prev}))},{default:d(()=>[F(n.$slots,"prev",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:E.value,to:y>1?e(t).to?.(y-1):void 0},null,8,["color","variant","size","icon","to"])])]),_:2},1032,["class"])):B("",!0),(r(!0),I(U,null,oe($,(S,j)=>(r(),I(U,{key:j},[S.type==="page"?(r(),x(e(Et),{key:0,"as-child":"",value:S.value,"data-slot":"item",class:L(l.value.item({class:e(t).ui?.item}))},{default:d(()=>[F(n.$slots,"item",Q({ref_for:!0},{item:S,index:j,page:y,pageCount:h}),()=>[i(G,{color:y===S.value?e(t).activeColor:e(t).color,variant:y===S.value?e(t).activeVariant:e(t).variant,size:e(t).size,label:String(S.value),ui:{label:l.value.label()},to:e(t).to?.(S.value),square:""},null,8,["color","variant","size","label","ui","to"])])]),_:2},1032,["value","class"])):(r(),x(e($t),{key:1,"as-child":"","data-slot":"ellipsis",class:L(l.value.ellipsis({class:e(t).ui?.ellipsis}))},{default:d(()=>[F(n.$slots,"ellipsis",{ui:l.value},()=>[i(G,{as:"div",color:e(t).color,variant:e(t).variant,size:e(t).size,icon:e(t).ellipsisIcon||e(b).ui.icons.ellipsis},null,8,["color","variant","size","icon"])])]),_:3},8,["class"]))],64))),128)),e(t).showControls||m.next?(r(),x(e(Mt),{key:2,"as-child":"","data-slot":"next",class:L(l.value.next({class:e(t).ui?.next}))},{default:d(()=>[F(n.$slots,"next",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:D.value,to:y<h?e(t).to?.(y+1):void 0},null,8,["color","variant","size","icon","to"])])]),_:2},1032,["class"])):B("",!0),e(t).showControls||m.last?(r(),x(e(Tt),{key:3,"as-child":"","data-slot":"last",class:L(l.value.last({class:e(t).ui?.last}))},{default:d(()=>[F(n.$slots,"last",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:A.value,to:e(t).to?.(h)},null,8,["color","variant","size","icon","to"])])]),_:2},1032,["class"])):B("",!0)]),_:2},1032,["class"])]),_:3},16,["class"]))}},ua={class:"flex items-center rounded-md border border-default overflow-hidden"},da={class:"text-sm text-muted tabular-nums"},ca={class:"flex flex-wrap items-center gap-1"},pa=["aria-pressed","onClick"],fa={class:"mt-3 flex items-center justify-center gap-2"},ga={class:"hidden md:block overflow-x-auto"},ma={class:"min-w-0 space-y-0.5"},va={class:"flex items-center gap-1 text-xs text-muted"},_a={class:"text-sm tabular-nums"},ya=["title"],ba={class:"flex justify-end"},ha={class:"space-y-2 md:hidden"},xa={class:"flex items-start justify-between gap-2"},ka={class:"flex items-center gap-1 text-xs text-muted min-w-0"},Ca={class:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},Pa={class:"text-xs text-muted tabular-nums"},Ra=["title"],$a={class:"mt-4 flex flex-wrap items-center justify-between gap-3"},Sa={class:"flex flex-wrap items-center gap-3"},qa={class:"text-sm text-muted tabular-nums"},za={class:"flex items-center gap-1.5"},Ia=1e3,$e=25,La=V({__name:"ProjectTestCasesTable",props:{projectId:{},projectName:{},syncQuery:{type:Boolean}},emits:["total"],setup(u,{expose:c,emit:s}){const _=u,m=s,t=it(),C=rt(),{treeView:b,setTreeView:T}=Ct("project-test-cases"),z=[{label:"10 / page",value:10},{label:"25 / page",value:25},{label:"50 / page",value:50},{label:"100 / page",value:100}],E=[{label:"Last 7 days",value:7},{label:"Last 30 days",value:30},{label:"Last 90 days",value:90},{label:"Last year",value:365},{label:"All time",value:0}],D=[{label:"Passed",value:"passed",color:"green"},{label:"Failed",value:"failed",color:"red"},{label:"Flaky",value:"flaky",color:"orange"},{label:"Skipped",value:"skipped",color:"gray"},{label:"Didn't run",value:"didnotrun",color:"amber"}],A=ut().public.demoMode?0:30,l=_.syncQuery?t.query:{},n=w(Math.max(1,Number(l.page)||1)),v=w(typeof l.q=="string"?l.q:""),y=w(v.value),h=w(typeof l.status=="string"?l.status.split(",").filter(Boolean):[]),$=w(typeof l.age=="string"&&l.age!==""?Math.max(0,Number(l.age)||0):A),S=w(typeof l.tags=="string"?l.tags:""),j=w(S.value),R=w(typeof l.sort=="string"?l.sort:"lastRun"),o=w(l.dir==="asc"?"asc":"desc"),W=Number(l.pageSize),N=w(z.some(p=>p.value===W)?W:$e);ae(y,Re(p=>{v.value=p.trim()},300)),ae(j,Re(p=>{S.value=p.trim()},300)),ae([v,h,S,$,R,o,N,b],()=>{n.value=1});const Ne=k(()=>({limit:b.value?Ia:N.value,offset:b.value?0:(n.value-1)*N.value,...v.value?{q:v.value}:{},...h.value.length>0?{status:h.value.join(",")}:{},...S.value?{tags:S.value}:{},maxAgeDays:$.value,sort:R.value,dir:o.value})),{data:X,status:ie,error:ve,refresh:re}=Pt(`/api/projects/${_.projectId}/test-cases`,{query:Ne},"$SV884SqmUv");ae(()=>X.value?.total,p=>{p!=null&&m("total",p)},{immediate:!0}),_.syncQuery&&ae([v,h,S,$,R,o,n,N],()=>{C.replace({query:{...t.query,q:v.value||void 0,status:h.value.length>0?h.value.join(","):void 0,tags:S.value||void 0,age:$.value!==A?String($.value):void 0,sort:R.value!=="lastRun"?R.value:void 0,dir:o.value!=="desc"?o.value:void 0,page:n.value>1?String(n.value):void 0,pageSize:N.value!==$e?String(N.value):void 0}})});function Te(p){h.value=h.value.includes(p)?h.value.filter(g=>g!==p):[...h.value,p]}function je(p){R.value===p?o.value=o.value==="asc"?"desc":"asc":(R.value=p,o.value=p==="title"?"asc":"desc")}function Y(p,g){return()=>{const O=R.value===g,le=O?o.value==="asc"?"i-lucide-chevron-up":"i-lucide-chevron-down":"i-lucide-chevrons-up-down";return de("button",{type:"button",class:"flex items-center gap-1 font-semibold select-none cursor-pointer hover:text-highlighted transition-colors",onClick:()=>je(g)},[p,de(ee,{name:le,class:["shrink-0 size-3.5",!O&&"opacity-40"]})])}}const Fe=k(()=>[{accessorKey:"title",header:Y("Test case","title")},{accessorKey:"status",header:Y("Status","status")},{accessorKey:"totalRuns",header:Y("Runs","totalRuns")},{accessorKey:"passRate",header:Y("Pass rate","passRate")},{id:"results",header:"Results"},{accessorKey:"avgDuration",header:Y("Avg duration","avgDuration")},{accessorKey:"lastRun",header:Y("Last run","lastRun")},{id:"actions",header:()=>de("div",{class:"text-right"},"Actions")}]),J=k(()=>X.value?.items??[]),M=k(()=>X.value?.total??0),we=k(()=>M.value===0?0:(n.value-1)*N.value+1),Be=k(()=>b.value?J.value.length:Math.min(n.value*N.value,M.value)),ue=k(()=>v.value!==""||h.value.length>0),Ve=k(()=>ue.value||$.value!==0),Ee=k(()=>ie.value==="pending"&&!X.value);return c({refresh:re}),(p,g)=>{const O=G,le=dt,_e=ct,De=pt,Me=ft,Ue=gt,ye=mt,Ae=vt,Oe=oa,be=qe,Ke=bt,he=ht,xe=Se,ke=Le,Ce=ze,Pe=Ie,Ge=xt,Qe=ra,Ze=kt;return r(),x(Ze,{title:"Test cases",icon:"i-lucide-flask-conical",count:e(X)?.total,help:"project.test-cases"},{actions:d(()=>[i(O,{icon:"i-lucide-refresh-cw",size:"sm",color:"neutral",variant:"ghost","aria-label":"Refresh test cases",loading:e(ie)==="pending"&&!!e(X),onClick:g[0]||(g[0]=()=>e(re)())},null,8,["loading"])]),default:d(()=>[i(De,{class:"mb-4"},{start:d(()=>[f("div",ua,[f("button",{type:"button",class:L(["px-2 py-1 text-xs transition-colors",e(b)?"text-muted hover:bg-elevated/60":"bg-primary text-white dark:text-white"]),title:"Flat list",onClick:g[1]||(g[1]=a=>e(T)(!1))},[i(e(ee),{name:"i-lucide-list",class:"size-3.5"})],2),f("button",{type:"button",class:L(["px-2 py-1 text-xs transition-colors",e(b)?"bg-primary text-white dark:text-white":"text-muted hover:bg-elevated/60"]),title:"Tree view",onClick:g[2]||(g[2]=a=>e(T)(!0))},[i(e(ee),{name:"i-lucide-folder-tree",class:"size-3.5"})],2)]),f("span",da,P(e(M))+" "+P(e(M)===1?"case":"cases"),1)]),default:d(()=>[i(le,{modelValue:e(y),"onUpdate:modelValue":g[3]||(g[3]=a=>se(y)?y.value=a:null),placeholder:"Search title or file...",icon:"i-lucide-search",size:"sm",class:"min-w-48 max-sm:flex-1","aria-label":"Search test cases"},null,8,["modelValue"]),i(le,{modelValue:e(j),"onUpdate:modelValue":g[4]||(g[4]=a=>se(j)?j.value=a:null),placeholder:"Tags (comma-separated)…",icon:"i-lucide-tag",size:"sm",class:"min-w-44 max-sm:flex-1","aria-label":"Filter by tag",title:"Show only cases carrying every listed tag. A leading @ is optional."},null,8,["modelValue"]),f("div",ca,[(r(),I(U,null,oe(D,a=>f("button",{key:a.value,type:"button",class:L(["inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium transition-colors whitespace-nowrap",e(h).includes(a.value)?a.color==="green"?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":a.color==="red"?"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400":a.color==="orange"?"bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400":a.color==="amber"?"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400":"bg-gray-200 text-gray-700 dark:bg-gray-700 dark:text-gray-300":"bg-gray-100 text-gray-500 dark:bg-gray-800 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700"]),"aria-pressed":e(h).includes(a.value),onClick:Na=>Te(a.value)},[f("span",{class:L(["size-2 rounded-full shrink-0",a.color==="green"?"bg-green-500":a.color==="red"?"bg-red-500":a.color==="orange"?"bg-orange-500":a.color==="amber"?"bg-amber-500":"bg-gray-400"])},null,2),q(" "+P(a.label),1)],10,pa)),64))]),i(_e,{modelValue:e($),"onUpdate:modelValue":g[5]||(g[5]=a=>se($)?$.value=a:null),items:E,size:"sm",class:"w-36","aria-label":"Last run age filter"},null,8,["modelValue"])]),_:1}),e(Ee)?(r(),x(Me,{key:0,text:"Loading test cases..."})):e(ve)?(r(),x(Ue,{key:1,text:("errorMessage"in p?p.errorMessage:e(_t))(e(ve),"Failed to load test cases")},{action:d(()=>[i(O,{size:"sm",variant:"outline",onClick:g[6]||(g[6]=()=>e(re)())},{default:d(()=>[...g[11]||(g[11]=[q("Retry",-1)])]),_:1})]),_:1},8,["text"])):e(M)===0?(r(),I(U,{key:2},[e(Ve)?(r(),x(ye,{key:1,icon:"i-lucide-search-x",text:"No test cases match your filters."},{default:d(()=>[f("div",fa,[e($)!==0?(r(),x(O,{key:0,size:"sm",variant:"outline",onClick:g[7]||(g[7]=a=>$.value=0)},{default:d(()=>[...g[12]||(g[12]=[q("Show all time",-1)])]),_:1})):B("",!0),e(ue)?(r(),x(O,{key:1,size:"sm",variant:"ghost",onClick:g[8]||(g[8]=()=>{y.value="",v.value="",h.value=[]})},{default:d(()=>[...g[13]||(g[13]=[q(" Clear filters ",-1)])]),_:1})):B("",!0)])]),_:1})):(r(),x(ye,{key:0,icon:"i-lucide-flask-conical",text:"No test cases yet for this project."}))],64)):(r(),I("div",{key:3,class:L([{"opacity-60 pointer-events-none":e(ie)==="pending"},"transition-opacity"])},[e(b)?(r(),I(U,{key:0},[e(J).length<e(M)?(r(),x(Ae,{key:0,color:"warning",variant:"subtle",icon:"i-lucide-triangle-alert",class:"mb-3",title:`Showing the first ${e(J).length} of ${e(M)} cases — narrow the search or filters to see the rest.`},null,8,["title"])):B("",!0),i(Oe,{items:e(J),"has-filter":e(ue)},null,8,["items","has-filter"])],64)):(r(),I(U,{key:1},[f("div",ga,[i(Ge,{data:e(J),columns:e(Fe),ui:{base:"w-full table-fixed border-separate border-spacing-0 min-w-[56rem]",thead:"[&>tr]:bg-elevated/50 [&>tr]:after:content-none",tbody:"[&>tr]:last:[&>td]:border-b-0 [&>tr]:hover:bg-gray-50 dark:[&>tr]:hover:bg-gray-900/50",th:"first:rounded-l-lg last:rounded-r-lg border-y border-default first:border-l last:border-r",td:"border-b border-default"}},{"title-cell":d(({row:a})=>[f("div",ma,[i(be,{to:`/test-cases/${a.original.id}`,class:"text-sm font-medium text-primary hover:underline truncate block",title:a.original.title},{default:d(()=>[q(P(a.original.title),1)]),_:2},1032,["to","title"]),i(Ke,{tags:a.original.tags,meta:{owner:a.original.owner??void 0,priority:("toTestPriority"in p?p.toTestPriority:e(yt))(a.original.priority),feature:a.original.feature??void 0,link:a.original.link??void 0},"max-tags":4},null,8,["tags","meta"]),f("div",va,[i(e(ee),{name:"i-lucide-file-code",class:"size-3 shrink-0"}),i(he,{"file-path":a.original.filePath,"project-key":u.projectId,"project-name":u.projectName,class:"min-w-0"},null,8,["file-path","project-key","project-name"])])])]),"status-cell":d(({row:a})=>[i(xe,{color:("testCaseCategoryColor"in p?p.testCaseCategoryColor:e(fe))(a.original.status),variant:"subtle",size:"sm",class:"capitalize"},{default:d(()=>[q(P(("formatStatusLabel"in p?p.formatStatusLabel:e(pe))(a.original.status)),1)]),_:2},1032,["color"])]),"totalRuns-cell":d(({row:a})=>[f("span",_a,P(a.original.totalRuns),1)]),"passRate-cell":d(({row:a})=>[i(ke,{rate:a.original.passRate},null,8,["rate"])]),"results-cell":d(({row:a})=>[i(Ce,{passed:a.original.passedRuns,failed:a.original.failedRuns,skipped:a.original.skippedRuns,flaky:a.original.flakyRuns,"did-not-run":a.original.didNotRunRuns,total:a.original.totalRuns},null,8,["passed","failed","skipped","flaky","did-not-run","total"])]),"avgDuration-cell":d(({row:a})=>[i(Pe,{ms:a.original.avgDuration,class:"text-sm text-muted"},null,8,["ms"])]),"lastRun-cell":d(({row:a})=>[f("span",{class:"text-sm text-muted",title:("prettyDateFormat"in p?p.prettyDateFormat:e(ge))(a.original.lastRun)},P(a.original.lastRun!=null?("formatRelativeTime"in p?p.formatRelativeTime:e(me))(a.original.lastRun):"—"),9,ya)]),"actions-cell":d(({row:a})=>[f("div",ba,[i(O,{to:`/test-cases/${a.original.id}`,size:"sm",variant:"outline","trailing-icon":"i-lucide-arrow-right"},{default:d(()=>[...g[14]||(g[14]=[q(" View ",-1)])]),_:1},8,["to"])])]),_:1},8,["data","columns"])]),f("div",ha,[(r(!0),I(U,null,oe(e(J),a=>(r(),I("div",{key:a.id,class:"rounded-lg border border-default p-3 space-y-2"},[f("div",xa,[i(be,{to:`/test-cases/${a.id}`,class:"text-sm font-medium text-primary hover:underline min-w-0 truncate",title:a.title},{default:d(()=>[q(P(a.title),1)]),_:2},1032,["to","title"]),i(xe,{color:("testCaseCategoryColor"in p?p.testCaseCategoryColor:e(fe))(a.status),variant:"subtle",size:"sm",class:"capitalize shrink-0"},{default:d(()=>[q(P(("formatStatusLabel"in p?p.formatStatusLabel:e(pe))(a.status)),1)]),_:2},1032,["color"])]),f("div",ka,[i(e(ee),{name:"i-lucide-file-code",class:"size-3 shrink-0"}),i(he,{"file-path":a.filePath,"project-key":u.projectId,"project-name":u.projectName,class:"min-w-0"},null,8,["file-path","project-key","project-name"])]),i(Ce,{passed:a.passedRuns,failed:a.failedRuns,skipped:a.skippedRuns,flaky:a.flakyRuns,"did-not-run":a.didNotRunRuns,total:a.totalRuns},null,8,["passed","failed","skipped","flaky","did-not-run","total"]),f("div",Ca,[i(ke,{rate:a.passRate},null,8,["rate"]),f("span",Pa,P(a.totalRuns)+" runs",1),a.avgDuration!=null?(r(),x(Pe,{key:0,ms:a.avgDuration,class:"text-xs text-muted"},null,8,["ms"])):B("",!0),f("span",{class:"text-xs text-muted",title:("prettyDateFormat"in p?p.prettyDateFormat:e(ge))(a.lastRun)},P(a.lastRun!=null?("formatRelativeTime"in p?p.formatRelativeTime:e(me))(a.lastRun):"—"),9,Ra)])]))),128))]),f("div",$a,[f("div",Sa,[f("span",qa,"Showing "+P(e(we))+"–"+P(e(Be))+" of "+P(e(M)),1),f("div",za,[g[15]||(g[15]=f("span",{class:"text-sm text-muted"},"Rows per page",-1)),i(_e,{modelValue:e(N),"onUpdate:modelValue":g[9]||(g[9]=a=>se(N)?N.value=a:null),items:z,size:"sm",class:"w-28","aria-label":"Rows per page"},null,8,["modelValue"])])]),e(M)>e(N)?(r(),x(Qe,{key:0,page:e(n),"onUpdate:page":g[10]||(g[10]=a=>se(n)?n.value=a:null),total:e(M),"items-per-page":e(N),size:"sm"},null,8,["page","total","items-per-page"])):B("",!0)])],64))],2))]),_:1},8,["count"])}}}),Ha=Object.assign(La,{__name:"ProjectTestCasesTable"});export{Ha as _};
1
+ import{d as V,T as Z,o as r,e as x,f as d,U as F,k as q,V as Q,b as e,W as H,X as He,Y as We,v as k,Z as Xe,$ as Ye,a0 as Je,t as P,c as I,g as f,a1 as ce,i as L,h as i,_ as ee,F as U,z as oe,m as Se,H as qe,l as B,j as G,r as w,a2 as et,a3 as tt,a4 as at,a5 as st,a6 as lt,a7 as nt,a8 as ot,u as it,p as rt,B as ut,a as ae,I as dt,x as se,a9 as Re,aa as de}from"./1QWBzxLM.js";import{_ as ct}from"./e-GZmCeP.js";import{_ as pt}from"./DcOlL-oi.js";import{_ as ft}from"./Bx_lfKHl.js";import{_ as gt}from"./DVo_e_uj.js";import{_ as mt}from"./Dn_-RkxP.js";import{_ as vt}from"./B-1zt4pp.js";import{_ as ze}from"./DvYU87_a.js";import{_ as Ie}from"./Bc6Zr-Xn.js";import{l as pe,m as fe,p as ge,a as me,e as _t,t as yt}from"./D4mPjHHR.js";import{_ as bt}from"./BFLa9ZEP.js";import{_ as ht}from"./DYdwHaco.js";import{_ as xt}from"./uspGXbik.js";import{_ as kt}from"./bmAf49LT.js";import{u as Ct}from"./B6j5Ornu.js";import{u as Pt}from"./CU_2YLhT.js";var Rt=V({__name:"PaginationEllipsis",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const c=u;return Z(),(s,_)=>(r(),x(e(H),Q(c,{"data-type":"ellipsis"}),{default:d(()=>[F(s.$slots,"default",{},()=>[_[0]||(_[0]=q("…"))])]),_:3},16))}}),$t=Rt;const[te,St]=Xe("PaginationRoot");var qt=V({__name:"PaginationRoot",props:{page:{type:Number,required:!1},defaultPage:{type:Number,required:!1,default:1},itemsPerPage:{type:Number,required:!0},total:{type:Number,required:!1,default:0},siblingCount:{type:Number,required:!1,default:2},disabled:{type:Boolean,required:!1},showEdges:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"nav"}},emits:["update:page"],setup(u,{emit:c}){const s=u,_=c,{siblingCount:m,disabled:t,showEdges:C}=He(s);Z();const b=We(s,"page",_,{defaultValue:s.defaultPage,passive:s.page===void 0}),T=k(()=>Math.max(1,Math.ceil(s.total/(s.itemsPerPage||1))));return St({page:b,onPageChange(z){b.value=z},pageCount:T,siblingCount:m,disabled:t,showEdges:C}),(z,E)=>(r(),x(e(H),{as:z.as,"as-child":z.asChild},{default:d(()=>[F(z.$slots,"default",{page:e(b),pageCount:T.value})]),_:3},8,["as","as-child"]))}}),zt=qt,It=V({__name:"PaginationFirst",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u,s=te();Z();const _=k(()=>s.page.value===1||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"First Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(1))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=q("First page"))])]),_:3},16,["type","disabled"]))}}),Lt=It,Nt=V({__name:"PaginationLast",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u,s=te();Z();const _=k(()=>s.page.value===s.pageCount.value||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"Last Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(e(s).pageCount.value))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=q("Last page"))])]),_:3},16,["type","disabled"]))}}),Tt=Nt;function K(u,c){const s=c-u+1;return Array.from({length:s},(_,m)=>m+u)}function jt(u){return u.map(c=>typeof c=="number"?{type:"page",value:c}:{type:"ellipsis"})}const ne="ellipsis";function Ft(u,c,s,_){const t=c,C=Math.max(u-s,1),b=Math.min(u+s,t);if(_){const z=Math.min(2*s+5,c)-2,E=C>3&&Math.abs(t-z-1+1)>2&&Math.abs(C-1)>2,D=b<t-2&&Math.abs(t-z)>2&&Math.abs(t-b)>2;if(!E&&D)return[...K(1,z),ne,t];if(E&&!D){const l=K(t-z+1,t);return[1,ne,...l]}if(E&&D){const l=K(C,b);return[1,ne,...l,ne,t]}return K(1,t)}else{const T=s*2+1;return c<T?K(1,t):u<=s+1?K(1,T):c-u<=s?K(c-T+1,t):K(C,b)}}var wt=V({__name:"PaginationList",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const c=u;Z();const s=te(),_=k(()=>jt(Ft(s.page.value,s.pageCount.value,s.siblingCount.value,s.showEdges.value)));return(m,t)=>(r(),x(e(H),Ye(Je(c)),{default:d(()=>[F(m.$slots,"default",{items:_.value})]),_:3},16))}}),Bt=wt,Vt=V({__name:"PaginationListItem",props:{value:{type:Number,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u;Z();const s=te(),_=k(()=>s.page.value===c.value),m=k(()=>s.disabled.value);return(t,C)=>(r(),x(e(H),Q(c,{"data-type":"page","aria-label":`Page ${t.value}`,"aria-current":_.value?"page":void 0,"data-selected":_.value?"true":void 0,disabled:m.value,type:t.as==="button"?"button":void 0,onClick:C[0]||(C[0]=b=>!m.value&&e(s).onPageChange(t.value))}),{default:d(()=>[F(t.$slots,"default",{},()=>[q(P(t.value),1)])]),_:3},16,["aria-label","aria-current","data-selected","disabled","type"]))}}),Et=Vt,Dt=V({__name:"PaginationNext",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u;Z();const s=te(),_=k(()=>s.page.value===s.pageCount.value||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"Next Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(e(s).page.value+1))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=q("Next page"))])]),_:3},16,["type","disabled"]))}}),Mt=Dt,Ut=V({__name:"PaginationPrev",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u;Z();const s=te(),_=k(()=>s.page.value===1||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"Previous Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(e(s).page.value-1))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=q("Prev page"))])]),_:3},16,["type","disabled"]))}}),At=Ut;const Ot=["title"],Kt={class:"h-1.5 w-14 shrink-0 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700"},Gt={class:"text-sm font-medium tabular-nums"},Qt={key:1,class:"text-sm text-muted",title:"No executed runs yet"},Zt=V({__name:"PassRateIndicator",props:{rate:{}},setup(u){const c=u,s=k(()=>c.rate==null?null:Math.round(c.rate*100)),_=k(()=>s.value==null?"":s.value>=80?"bg-green-500":s.value>=50?"bg-amber-500":"bg-red-500");return(m,t)=>e(s)!=null?(r(),I("div",{key:0,class:"flex items-center gap-2",title:`${e(s)}% of executed runs passed`},[f("div",Kt,[f("div",{class:L([e(_),"h-full rounded-full transition-all"]),style:ce({width:`${e(s)}%`})},null,6)]),f("span",Gt,P(e(s))+"%",1)],8,Ot)):(r(),I("span",Qt,"—"))}}),Le=Object.assign(Zt,{__name:"PassRateIndicator"}),Ht={class:"rounded-lg border border-default bg-default text-sm"},Wt={class:"flex items-center justify-end px-3 py-1.5 border-b border-default bg-elevated"},Xt=["disabled","title"],Yt=["onClick"],Jt={class:"text-xs text-muted tabular-nums shrink-0"},ea={class:"w-24 sm:w-32 shrink-0 max-sm:hidden"},ta={class:"flex items-center gap-3 shrink-0"},aa=["title"],sa=["title"],la={key:0,class:"text-center py-8 text-muted"},na=V({__name:"ProjectTestCasesTree",props:{items:{},hasFilter:{type:Boolean}},setup(u){const c=u;function s(l){return(l.suitePath||"").split("").filter(Boolean)}function _(l){const n={passed:0,failed:0,skipped:0,flaky:0,didNotRun:0,total:0,cases:l.length};for(const v of l)n.passed+=v.passedRuns,n.failed+=v.failedRuns,n.skipped+=v.skippedRuns,n.flaky+=v.flakyRuns,n.didNotRun+=v.didNotRunRuns,n.total+=v.totalRuns;return n}const m=w(new Set),t=k(()=>m.value.size===0);function C(l){return c.hasFilter?!0:!m.value.has(l)}function b(l){if(c.hasFilter)return;const n=new Set(m.value);n.has(l)?n.delete(l):n.add(l),m.value=n}function T(){const l=new Set;for(const n of c.items){l.add(`file:${n.filePath}`);const v=s(n);for(let y=1;y<=v.length;y++)l.add(`group:${n.filePath}${v.slice(0,y).join("")}`)}return[...l]}function z(){m.value=new Set(T())}function E(){m.value=new Set}function D(l,n,v,y,h){const $=n.filter(R=>s(R).length===y.length),S=n.filter(R=>s(R).length>y.length),j=new Map;for(const R of S){const o=s(R)[y.length];j.has(o)||j.set(o,[]),j.get(o).push(R)}for(const[R,o]of j){const W=[...y,R],N=`group:${v}${W.join("")}`;l.push({kind:"group",depth:h,key:N,label:R,agg:_(o)}),C(N)&&D(l,o,v,W,h+1)}for(const R of $)l.push({kind:"case",depth:h,key:`case:${R.id}`,testCase:R})}const A=k(()=>{const l=[],n=new Map;for(const v of c.items){const y=v.filePath||"unknown";n.has(y)||n.set(y,[]),n.get(y).push(v)}for(const[v,y]of[...n.entries()].sort(([h],[$])=>h.localeCompare($))){const h=`file:${v}`;l.push({kind:"group",depth:0,key:h,label:v,agg:_(y)}),C(h)&&D(l,y,v,[],1)}return l});return(l,n)=>{const v=ee,y=ze,h=Se,$=qe,S=Le,j=Ie,R=G;return r(),I("div",Ht,[f("div",Wt,[f("button",{class:L(["flex items-center gap-1 text-xs transition-colors",u.hasFilter?"text-muted cursor-not-allowed opacity-50":"text-muted hover:text-default"]),disabled:u.hasFilter,title:u.hasFilter?"Clear filters to collapse/expand":e(t)?"Collapse all":"Expand all",onClick:n[0]||(n[0]=o=>e(t)?z():E())},[i(v,{name:e(t)?"i-lucide-fold-vertical":"i-lucide-unfold-vertical",class:"size-3.5"},null,8,["name"]),q(" "+P(e(t)?"Collapse all":"Expand all"),1)],10,Xt)]),(r(!0),I(U,null,oe(e(A),o=>(r(),I(U,{key:o.key},[o.kind==="group"?(r(),I("div",{key:0,class:L(["flex items-center gap-2 py-2 pr-3 border-b border-default last:border-b-0 select-none",[o.depth===0?"bg-elevated":"bg-default",!u.hasFilter&&"cursor-pointer"]]),style:ce({paddingLeft:`${o.depth*20+12}px`}),onClick:W=>b(o.key)},[i(v,{name:C(o.key)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5 text-muted shrink-0"},null,8,["name"]),i(v,{name:o.depth===0?"i-lucide-file-code-2":"i-lucide-folder-open",class:L(["size-4 shrink-0",o.depth===0?"text-blue-500":"text-amber-500"])},null,8,["name","class"]),f("span",{class:L(["font-medium truncate min-w-0",[o.depth===0?"text-default font-mono text-xs sm:text-sm":"text-muted"]])},P(o.label),3),f("span",Jt,P(o.agg.cases)+" "+P(o.agg.cases===1?"case":"cases"),1),n[1]||(n[1]=f("div",{class:"flex-1"},null,-1)),f("div",ea,[i(y,{passed:o.agg.passed,failed:o.agg.failed,skipped:o.agg.skipped,flaky:o.agg.flaky,"did-not-run":o.agg.didNotRun,total:o.agg.total},null,8,["passed","failed","skipped","flaky","did-not-run","total"])])],14,Yt)):(r(),I("div",{key:1,class:"flex flex-wrap items-center gap-x-2 gap-y-1 pr-3 py-1.5 border-b border-default last:border-b-0 hover:bg-gray-50 dark:hover:bg-gray-900/40 transition-colors",style:ce({paddingLeft:`${o.depth*20+12}px`})},[i(v,{name:"i-lucide-flask-conical",class:"size-3.5 text-muted shrink-0"}),i(h,{color:("testCaseCategoryColor"in l?l.testCaseCategoryColor:e(fe))(o.testCase.status),size:"xs",variant:"subtle",class:"capitalize shrink-0"},{default:d(()=>[q(P(("formatStatusLabel"in l?l.formatStatusLabel:e(pe))(o.testCase.status)),1)]),_:2},1032,["color"]),i($,{to:`/test-cases/${o.testCase.id}`,class:"text-sm text-primary hover:underline truncate flex-1 min-w-32",title:o.testCase.title},{default:d(()=>[q(P(o.testCase.title),1)]),_:2},1032,["to","title"]),f("div",ta,[i(S,{rate:o.testCase.passRate},null,8,["rate"]),f("span",{class:"text-xs text-muted tabular-nums max-sm:hidden",title:`${o.testCase.totalRuns} runs`},P(o.testCase.totalRuns)+"× ",9,aa),o.testCase.avgDuration!=null?(r(),x(j,{key:0,ms:o.testCase.avgDuration,class:"text-xs text-muted max-sm:hidden"},null,8,["ms"])):B("",!0),f("span",{class:"text-xs text-muted max-sm:hidden",title:("prettyDateFormat"in l?l.prettyDateFormat:e(ge))(o.testCase.lastRun)},P(("formatRelativeTime"in l?l.formatRelativeTime:e(me))(o.testCase.lastRun)),9,sa),i(R,{to:`/test-cases/${o.testCase.id}`,size:"xs",variant:"outline"},{default:d(()=>[...n[2]||(n[2]=[q("View",-1)])]),_:1},8,["to"])])],4))],64))),128)),e(A).length===0?(r(),I("div",la,[i(v,{name:"i-lucide-search-x",class:"size-6 mx-auto mb-2 text-gray-300 dark:text-gray-600"}),n[3]||(n[3]=f("p",{class:"text-sm"},"No test cases match your filters.",-1))])):B("",!0)])}}}),oa=Object.assign(na,{__name:"ProjectTestCasesTree"}),ia={slots:{root:"",list:"flex items-center gap-1",ellipsis:"pointer-events-none",label:"min-w-5 text-center",first:"",prev:"",item:"",next:"",last:""}},ra={__name:"UPagination",props:{as:{type:null,required:!1},firstIcon:{type:null,required:!1},prevIcon:{type:null,required:!1},nextIcon:{type:null,required:!1},lastIcon:{type:null,required:!1},ellipsisIcon:{type:null,required:!1},color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"outline"},activeColor:{type:null,required:!1,default:"primary"},activeVariant:{type:null,required:!1,default:"solid"},showControls:{type:Boolean,required:!1,default:!0},size:{type:null,required:!1},to:{type:Function,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultPage:{type:Number,required:!1},disabled:{type:Boolean,required:!1},itemsPerPage:{type:Number,required:!1,default:10},page:{type:Number,required:!1},showEdges:{type:Boolean,required:!1,default:!1},siblingCount:{type:Number,required:!1,default:2},total:{type:Number,required:!1,default:0}},emits:["update:page"],setup(u,{emit:c}){const s=u,_=c,m=et(),t=tt("pagination",s),{dir:C}=at(),b=st(),T=lt(nt(t,"as","defaultPage","disabled","itemsPerPage","page","showEdges","siblingCount","total"),_),z=k(()=>t.firstIcon||(C.value==="rtl"?b.ui.icons.chevronDoubleRight:b.ui.icons.chevronDoubleLeft)),E=k(()=>t.prevIcon||(C.value==="rtl"?b.ui.icons.chevronRight:b.ui.icons.chevronLeft)),D=k(()=>t.nextIcon||(C.value==="rtl"?b.ui.icons.chevronLeft:b.ui.icons.chevronRight)),A=k(()=>t.lastIcon||(C.value==="rtl"?b.ui.icons.chevronDoubleLeft:b.ui.icons.chevronDoubleRight)),l=k(()=>ot({extend:ia,...b.ui?.pagination||{}})());return(n,v)=>(r(),x(e(zt),Q(e(T),{"data-slot":"root",class:l.value.root({class:[e(t).ui?.root,e(t).class]})}),{default:d(({page:y,pageCount:h})=>[i(e(Bt),{"data-slot":"list",class:L(l.value.list({class:e(t).ui?.list}))},{default:d(({items:$})=>[e(t).showControls||m.first?(r(),x(e(Lt),{key:0,"as-child":"","data-slot":"first",class:L(l.value.first({class:e(t).ui?.first}))},{default:d(()=>[F(n.$slots,"first",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:z.value,to:e(t).to?.(1)},null,8,["color","variant","size","icon","to"])])]),_:3},8,["class"])):B("",!0),e(t).showControls||m.prev?(r(),x(e(At),{key:1,"as-child":"","data-slot":"prev",class:L(l.value.prev({class:e(t).ui?.prev}))},{default:d(()=>[F(n.$slots,"prev",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:E.value,to:y>1?e(t).to?.(y-1):void 0},null,8,["color","variant","size","icon","to"])])]),_:2},1032,["class"])):B("",!0),(r(!0),I(U,null,oe($,(S,j)=>(r(),I(U,{key:j},[S.type==="page"?(r(),x(e(Et),{key:0,"as-child":"",value:S.value,"data-slot":"item",class:L(l.value.item({class:e(t).ui?.item}))},{default:d(()=>[F(n.$slots,"item",Q({ref_for:!0},{item:S,index:j,page:y,pageCount:h}),()=>[i(G,{color:y===S.value?e(t).activeColor:e(t).color,variant:y===S.value?e(t).activeVariant:e(t).variant,size:e(t).size,label:String(S.value),ui:{label:l.value.label()},to:e(t).to?.(S.value),square:""},null,8,["color","variant","size","label","ui","to"])])]),_:2},1032,["value","class"])):(r(),x(e($t),{key:1,"as-child":"","data-slot":"ellipsis",class:L(l.value.ellipsis({class:e(t).ui?.ellipsis}))},{default:d(()=>[F(n.$slots,"ellipsis",{ui:l.value},()=>[i(G,{as:"div",color:e(t).color,variant:e(t).variant,size:e(t).size,icon:e(t).ellipsisIcon||e(b).ui.icons.ellipsis},null,8,["color","variant","size","icon"])])]),_:3},8,["class"]))],64))),128)),e(t).showControls||m.next?(r(),x(e(Mt),{key:2,"as-child":"","data-slot":"next",class:L(l.value.next({class:e(t).ui?.next}))},{default:d(()=>[F(n.$slots,"next",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:D.value,to:y<h?e(t).to?.(y+1):void 0},null,8,["color","variant","size","icon","to"])])]),_:2},1032,["class"])):B("",!0),e(t).showControls||m.last?(r(),x(e(Tt),{key:3,"as-child":"","data-slot":"last",class:L(l.value.last({class:e(t).ui?.last}))},{default:d(()=>[F(n.$slots,"last",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:A.value,to:e(t).to?.(h)},null,8,["color","variant","size","icon","to"])])]),_:2},1032,["class"])):B("",!0)]),_:2},1032,["class"])]),_:3},16,["class"]))}},ua={class:"flex items-center rounded-md border border-default overflow-hidden"},da={class:"text-sm text-muted tabular-nums"},ca={class:"flex flex-wrap items-center gap-1"},pa=["aria-pressed","onClick"],fa={class:"mt-3 flex items-center justify-center gap-2"},ga={class:"hidden md:block overflow-x-auto"},ma={class:"min-w-0 space-y-0.5"},va={class:"flex items-center gap-1 text-xs text-muted"},_a={class:"text-sm tabular-nums"},ya=["title"],ba={class:"flex justify-end"},ha={class:"space-y-2 md:hidden"},xa={class:"flex items-start justify-between gap-2"},ka={class:"flex items-center gap-1 text-xs text-muted min-w-0"},Ca={class:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},Pa={class:"text-xs text-muted tabular-nums"},Ra=["title"],$a={class:"mt-4 flex flex-wrap items-center justify-between gap-3"},Sa={class:"flex flex-wrap items-center gap-3"},qa={class:"text-sm text-muted tabular-nums"},za={class:"flex items-center gap-1.5"},Ia=1e3,$e=25,La=V({__name:"ProjectTestCasesTable",props:{projectId:{},projectName:{},syncQuery:{type:Boolean}},emits:["total"],setup(u,{expose:c,emit:s}){const _=u,m=s,t=it(),C=rt(),{treeView:b,setTreeView:T}=Ct("project-test-cases"),z=[{label:"10 / page",value:10},{label:"25 / page",value:25},{label:"50 / page",value:50},{label:"100 / page",value:100}],E=[{label:"Last 7 days",value:7},{label:"Last 30 days",value:30},{label:"Last 90 days",value:90},{label:"Last year",value:365},{label:"All time",value:0}],D=[{label:"Passed",value:"passed",color:"green"},{label:"Failed",value:"failed",color:"red"},{label:"Flaky",value:"flaky",color:"orange"},{label:"Skipped",value:"skipped",color:"gray"},{label:"Didn't run",value:"didnotrun",color:"amber"}],A=ut().public.demoMode?0:30,l=_.syncQuery?t.query:{},n=w(Math.max(1,Number(l.page)||1)),v=w(typeof l.q=="string"?l.q:""),y=w(v.value),h=w(typeof l.status=="string"?l.status.split(",").filter(Boolean):[]),$=w(typeof l.age=="string"&&l.age!==""?Math.max(0,Number(l.age)||0):A),S=w(typeof l.tags=="string"?l.tags:""),j=w(S.value),R=w(typeof l.sort=="string"?l.sort:"lastRun"),o=w(l.dir==="asc"?"asc":"desc"),W=Number(l.pageSize),N=w(z.some(p=>p.value===W)?W:$e);ae(y,Re(p=>{v.value=p.trim()},300)),ae(j,Re(p=>{S.value=p.trim()},300)),ae([v,h,S,$,R,o,N,b],()=>{n.value=1});const Ne=k(()=>({limit:b.value?Ia:N.value,offset:b.value?0:(n.value-1)*N.value,...v.value?{q:v.value}:{},...h.value.length>0?{status:h.value.join(",")}:{},...S.value?{tags:S.value}:{},maxAgeDays:$.value,sort:R.value,dir:o.value})),{data:X,status:ie,error:ve,refresh:re}=Pt(`/api/projects/${_.projectId}/test-cases`,{query:Ne},"$SV884SqmUv");ae(()=>X.value?.total,p=>{p!=null&&m("total",p)},{immediate:!0}),_.syncQuery&&ae([v,h,S,$,R,o,n,N],()=>{C.replace({query:{...t.query,q:v.value||void 0,status:h.value.length>0?h.value.join(","):void 0,tags:S.value||void 0,age:$.value!==A?String($.value):void 0,sort:R.value!=="lastRun"?R.value:void 0,dir:o.value!=="desc"?o.value:void 0,page:n.value>1?String(n.value):void 0,pageSize:N.value!==$e?String(N.value):void 0}})});function Te(p){h.value=h.value.includes(p)?h.value.filter(g=>g!==p):[...h.value,p]}function je(p){R.value===p?o.value=o.value==="asc"?"desc":"asc":(R.value=p,o.value=p==="title"?"asc":"desc")}function Y(p,g){return()=>{const O=R.value===g,le=O?o.value==="asc"?"i-lucide-chevron-up":"i-lucide-chevron-down":"i-lucide-chevrons-up-down";return de("button",{type:"button",class:"flex items-center gap-1 font-semibold select-none cursor-pointer hover:text-highlighted transition-colors",onClick:()=>je(g)},[p,de(ee,{name:le,class:["shrink-0 size-3.5",!O&&"opacity-40"]})])}}const Fe=k(()=>[{accessorKey:"title",header:Y("Test case","title")},{accessorKey:"status",header:Y("Status","status")},{accessorKey:"totalRuns",header:Y("Runs","totalRuns")},{accessorKey:"passRate",header:Y("Pass rate","passRate")},{id:"results",header:"Results"},{accessorKey:"avgDuration",header:Y("Avg duration","avgDuration")},{accessorKey:"lastRun",header:Y("Last run","lastRun")},{id:"actions",header:()=>de("div",{class:"text-right"},"Actions")}]),J=k(()=>X.value?.items??[]),M=k(()=>X.value?.total??0),we=k(()=>M.value===0?0:(n.value-1)*N.value+1),Be=k(()=>b.value?J.value.length:Math.min(n.value*N.value,M.value)),ue=k(()=>v.value!==""||h.value.length>0),Ve=k(()=>ue.value||$.value!==0),Ee=k(()=>ie.value==="pending"&&!X.value);return c({refresh:re}),(p,g)=>{const O=G,le=dt,_e=ct,De=pt,Me=ft,Ue=gt,ye=mt,Ae=vt,Oe=oa,be=qe,Ke=bt,he=ht,xe=Se,ke=Le,Ce=ze,Pe=Ie,Ge=xt,Qe=ra,Ze=kt;return r(),x(Ze,{title:"Test cases",icon:"i-lucide-flask-conical",count:e(X)?.total,help:"project.test-cases"},{actions:d(()=>[i(O,{icon:"i-lucide-refresh-cw",size:"sm",color:"neutral",variant:"ghost","aria-label":"Refresh test cases",loading:e(ie)==="pending"&&!!e(X),onClick:g[0]||(g[0]=()=>e(re)())},null,8,["loading"])]),default:d(()=>[i(De,{class:"mb-4"},{start:d(()=>[f("div",ua,[f("button",{type:"button",class:L(["px-2 py-1 text-xs transition-colors",e(b)?"text-muted hover:bg-elevated/60":"bg-primary text-white dark:text-white"]),title:"Flat list",onClick:g[1]||(g[1]=a=>e(T)(!1))},[i(e(ee),{name:"i-lucide-list",class:"size-3.5"})],2),f("button",{type:"button",class:L(["px-2 py-1 text-xs transition-colors",e(b)?"bg-primary text-white dark:text-white":"text-muted hover:bg-elevated/60"]),title:"Tree view",onClick:g[2]||(g[2]=a=>e(T)(!0))},[i(e(ee),{name:"i-lucide-folder-tree",class:"size-3.5"})],2)]),f("span",da,P(e(M))+" "+P(e(M)===1?"case":"cases"),1)]),default:d(()=>[i(le,{modelValue:e(y),"onUpdate:modelValue":g[3]||(g[3]=a=>se(y)?y.value=a:null),placeholder:"Search title or file...",icon:"i-lucide-search",size:"sm",class:"min-w-48 max-sm:flex-1","aria-label":"Search test cases"},null,8,["modelValue"]),i(le,{modelValue:e(j),"onUpdate:modelValue":g[4]||(g[4]=a=>se(j)?j.value=a:null),placeholder:"Tags (comma-separated)…",icon:"i-lucide-tag",size:"sm",class:"min-w-44 max-sm:flex-1","aria-label":"Filter by tag",title:"Show only cases carrying every listed tag. A leading @ is optional."},null,8,["modelValue"]),f("div",ca,[(r(),I(U,null,oe(D,a=>f("button",{key:a.value,type:"button",class:L(["inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium transition-colors whitespace-nowrap",e(h).includes(a.value)?a.color==="green"?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":a.color==="red"?"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400":a.color==="orange"?"bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400":a.color==="amber"?"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400":"bg-gray-200 text-gray-700 dark:bg-gray-700 dark:text-gray-300":"bg-gray-100 text-gray-500 dark:bg-gray-800 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700"]),"aria-pressed":e(h).includes(a.value),onClick:Na=>Te(a.value)},[f("span",{class:L(["size-2 rounded-full shrink-0",a.color==="green"?"bg-green-500":a.color==="red"?"bg-red-500":a.color==="orange"?"bg-orange-500":a.color==="amber"?"bg-amber-500":"bg-gray-400"])},null,2),q(" "+P(a.label),1)],10,pa)),64))]),i(_e,{modelValue:e($),"onUpdate:modelValue":g[5]||(g[5]=a=>se($)?$.value=a:null),items:E,size:"sm",class:"w-36","aria-label":"Last run age filter"},null,8,["modelValue"])]),_:1}),e(Ee)?(r(),x(Me,{key:0,text:"Loading test cases..."})):e(ve)?(r(),x(Ue,{key:1,text:("errorMessage"in p?p.errorMessage:e(_t))(e(ve),"Failed to load test cases")},{action:d(()=>[i(O,{size:"sm",variant:"outline",onClick:g[6]||(g[6]=()=>e(re)())},{default:d(()=>[...g[11]||(g[11]=[q("Retry",-1)])]),_:1})]),_:1},8,["text"])):e(M)===0?(r(),I(U,{key:2},[e(Ve)?(r(),x(ye,{key:1,icon:"i-lucide-search-x",text:"No test cases match your filters."},{default:d(()=>[f("div",fa,[e($)!==0?(r(),x(O,{key:0,size:"sm",variant:"outline",onClick:g[7]||(g[7]=a=>$.value=0)},{default:d(()=>[...g[12]||(g[12]=[q("Show all time",-1)])]),_:1})):B("",!0),e(ue)?(r(),x(O,{key:1,size:"sm",variant:"ghost",onClick:g[8]||(g[8]=()=>{y.value="",v.value="",h.value=[]})},{default:d(()=>[...g[13]||(g[13]=[q(" Clear filters ",-1)])]),_:1})):B("",!0)])]),_:1})):(r(),x(ye,{key:0,icon:"i-lucide-flask-conical",text:"No test cases yet for this project."}))],64)):(r(),I("div",{key:3,class:L([{"opacity-60 pointer-events-none":e(ie)==="pending"},"transition-opacity"])},[e(b)?(r(),I(U,{key:0},[e(J).length<e(M)?(r(),x(Ae,{key:0,color:"warning",variant:"subtle",icon:"i-lucide-triangle-alert",class:"mb-3",title:`Showing the first ${e(J).length} of ${e(M)} cases — narrow the search or filters to see the rest.`},null,8,["title"])):B("",!0),i(Oe,{items:e(J),"has-filter":e(ue)},null,8,["items","has-filter"])],64)):(r(),I(U,{key:1},[f("div",ga,[i(Ge,{data:e(J),columns:e(Fe),ui:{base:"w-full table-fixed border-separate border-spacing-0 min-w-[56rem]",thead:"[&>tr]:bg-elevated/50 [&>tr]:after:content-none",tbody:"[&>tr]:last:[&>td]:border-b-0 [&>tr]:hover:bg-gray-50 dark:[&>tr]:hover:bg-gray-900/50",th:"first:rounded-l-lg last:rounded-r-lg border-y border-default first:border-l last:border-r",td:"border-b border-default"}},{"title-cell":d(({row:a})=>[f("div",ma,[i(be,{to:`/test-cases/${a.original.id}`,class:"text-sm font-medium text-primary hover:underline truncate block",title:a.original.title},{default:d(()=>[q(P(a.original.title),1)]),_:2},1032,["to","title"]),i(Ke,{tags:a.original.tags,meta:{owner:a.original.owner??void 0,priority:("toTestPriority"in p?p.toTestPriority:e(yt))(a.original.priority),feature:a.original.feature??void 0,link:a.original.link??void 0},"max-tags":4},null,8,["tags","meta"]),f("div",va,[i(e(ee),{name:"i-lucide-file-code",class:"size-3 shrink-0"}),i(he,{"file-path":a.original.filePath,"project-key":u.projectId,"project-name":u.projectName,class:"min-w-0"},null,8,["file-path","project-key","project-name"])])])]),"status-cell":d(({row:a})=>[i(xe,{color:("testCaseCategoryColor"in p?p.testCaseCategoryColor:e(fe))(a.original.status),variant:"subtle",size:"sm",class:"capitalize"},{default:d(()=>[q(P(("formatStatusLabel"in p?p.formatStatusLabel:e(pe))(a.original.status)),1)]),_:2},1032,["color"])]),"totalRuns-cell":d(({row:a})=>[f("span",_a,P(a.original.totalRuns),1)]),"passRate-cell":d(({row:a})=>[i(ke,{rate:a.original.passRate},null,8,["rate"])]),"results-cell":d(({row:a})=>[i(Ce,{passed:a.original.passedRuns,failed:a.original.failedRuns,skipped:a.original.skippedRuns,flaky:a.original.flakyRuns,"did-not-run":a.original.didNotRunRuns,total:a.original.totalRuns},null,8,["passed","failed","skipped","flaky","did-not-run","total"])]),"avgDuration-cell":d(({row:a})=>[i(Pe,{ms:a.original.avgDuration,class:"text-sm text-muted"},null,8,["ms"])]),"lastRun-cell":d(({row:a})=>[f("span",{class:"text-sm text-muted",title:("prettyDateFormat"in p?p.prettyDateFormat:e(ge))(a.original.lastRun)},P(a.original.lastRun!=null?("formatRelativeTime"in p?p.formatRelativeTime:e(me))(a.original.lastRun):"—"),9,ya)]),"actions-cell":d(({row:a})=>[f("div",ba,[i(O,{to:`/test-cases/${a.original.id}`,size:"sm",variant:"outline","trailing-icon":"i-lucide-arrow-right"},{default:d(()=>[...g[14]||(g[14]=[q(" View ",-1)])]),_:1},8,["to"])])]),_:1},8,["data","columns"])]),f("div",ha,[(r(!0),I(U,null,oe(e(J),a=>(r(),I("div",{key:a.id,class:"rounded-lg border border-default p-3 space-y-2"},[f("div",xa,[i(be,{to:`/test-cases/${a.id}`,class:"text-sm font-medium text-primary hover:underline min-w-0 truncate",title:a.title},{default:d(()=>[q(P(a.title),1)]),_:2},1032,["to","title"]),i(xe,{color:("testCaseCategoryColor"in p?p.testCaseCategoryColor:e(fe))(a.status),variant:"subtle",size:"sm",class:"capitalize shrink-0"},{default:d(()=>[q(P(("formatStatusLabel"in p?p.formatStatusLabel:e(pe))(a.status)),1)]),_:2},1032,["color"])]),f("div",ka,[i(e(ee),{name:"i-lucide-file-code",class:"size-3 shrink-0"}),i(he,{"file-path":a.filePath,"project-key":u.projectId,"project-name":u.projectName,class:"min-w-0"},null,8,["file-path","project-key","project-name"])]),i(Ce,{passed:a.passedRuns,failed:a.failedRuns,skipped:a.skippedRuns,flaky:a.flakyRuns,"did-not-run":a.didNotRunRuns,total:a.totalRuns},null,8,["passed","failed","skipped","flaky","did-not-run","total"]),f("div",Ca,[i(ke,{rate:a.passRate},null,8,["rate"]),f("span",Pa,P(a.totalRuns)+" runs",1),a.avgDuration!=null?(r(),x(Pe,{key:0,ms:a.avgDuration,class:"text-xs text-muted"},null,8,["ms"])):B("",!0),f("span",{class:"text-xs text-muted",title:("prettyDateFormat"in p?p.prettyDateFormat:e(ge))(a.lastRun)},P(a.lastRun!=null?("formatRelativeTime"in p?p.formatRelativeTime:e(me))(a.lastRun):"—"),9,Ra)])]))),128))]),f("div",$a,[f("div",Sa,[f("span",qa,"Showing "+P(e(we))+"–"+P(e(Be))+" of "+P(e(M)),1),f("div",za,[g[15]||(g[15]=f("span",{class:"text-sm text-muted"},"Rows per page",-1)),i(_e,{modelValue:e(N),"onUpdate:modelValue":g[9]||(g[9]=a=>se(N)?N.value=a:null),items:z,size:"sm",class:"w-28","aria-label":"Rows per page"},null,8,["modelValue"])])]),e(M)>e(N)?(r(),x(Qe,{key:0,page:e(n),"onUpdate:page":g[10]||(g[10]=a=>se(n)?n.value=a:null),total:e(M),"items-per-page":e(N),size:"sm"},null,8,["page","total","items-per-page"])):B("",!0)])],64))],2))]),_:1},8,["count"])}}}),Ha=Object.assign(La,{__name:"ProjectTestCasesTable"});export{Ha as _};