@piwitests/server 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{DCCMLWel.js → -9tk1FrT.js} +1 -1
  3. package/.output/public/_nuxt/26ll_vBr.js +1 -0
  4. package/.output/public/_nuxt/{BpepjHwc.js → 3QTorEhJ.js} +1 -1
  5. package/.output/public/_nuxt/{DKTDub7I.js → 3QTvYrZp.js} +1 -1
  6. package/.output/public/_nuxt/{CHSkT2s0.js → 73aPL7Ir.js} +1 -1
  7. package/.output/public/_nuxt/8jZmK2De.js +4 -0
  8. package/.output/public/_nuxt/8xyZSRSO.js +1 -0
  9. package/.output/public/_nuxt/{V1BQiRoh.js → 99tAfVF5.js} +1 -1
  10. package/.output/public/_nuxt/{BY0AkhJh.js → B1CUXGbl.js} +1 -1
  11. package/.output/public/_nuxt/B6hPf4UR.js +1 -0
  12. package/.output/public/_nuxt/{F07TcX0U.js → B6w76fJT.js} +1 -1
  13. package/.output/public/_nuxt/{B32-7cBF.js → BDcIWTTq.js} +1 -1
  14. package/.output/public/_nuxt/{OG2n3p77.js → BE8ykmwr.js} +1 -1
  15. package/.output/public/_nuxt/{rvaZFYoE.js → BEsJE07U.js} +1 -1
  16. package/.output/public/_nuxt/{DQpa8F03.js → BGZQONfm.js} +1 -1
  17. package/.output/public/_nuxt/{DZoSxwj6.js → BRdhP5lm.js} +1 -1
  18. package/.output/public/_nuxt/{n7Htv9PJ.js → BU6xjw05.js} +1 -1
  19. package/.output/public/_nuxt/{DvdOsTLb.js → BWFY2RuU.js} +1 -1
  20. package/.output/public/_nuxt/{60-Zii7v.js → B_QIrc7l.js} +1 -1
  21. package/.output/public/_nuxt/{CrFCPOnY.js → Ba4_ydKG.js} +1 -1
  22. package/.output/public/_nuxt/{BfshMo9k.js → BcLXUmKT.js} +2 -2
  23. package/.output/public/_nuxt/{CD-xwM9N.js → BciovqwK.js} +1 -1
  24. package/.output/public/_nuxt/{i38YGG9S.js → BgDEjrcz.js} +1 -1
  25. package/.output/public/_nuxt/{rWwWS3Kj.js → BoRJdCd4.js} +1 -1
  26. package/.output/public/_nuxt/{O1A-LRgV.js → Bpha13F_.js} +1 -1
  27. package/.output/public/_nuxt/{2PU-adwy.js → Bq0PQfQY.js} +1 -1
  28. package/.output/public/_nuxt/{B8fs6GU9.js → BrT_Sys2.js} +31 -31
  29. package/.output/public/_nuxt/{ETOCcsVw.js → Bua_L6p4.js} +1 -1
  30. package/.output/public/_nuxt/{nUsJV5qo.js → BwKwWgQe.js} +1 -1
  31. package/.output/public/_nuxt/{4fB15L_7.js → BxRsAYRS.js} +1 -1
  32. package/.output/public/_nuxt/{DVdOm5Bg.js → ByoIgYX_.js} +1 -1
  33. package/.output/public/_nuxt/{Bq2ZPvIH.js → C7nwFokE.js} +1 -1
  34. package/.output/public/_nuxt/CEuVRSr0.js +3 -0
  35. package/.output/public/_nuxt/{CokbKVE6.js → CHHqhAsw.js} +1 -1
  36. package/.output/public/_nuxt/{BBJ9Pu3M.js → CHIbdzqp.js} +1 -1
  37. package/.output/public/_nuxt/{C9jjVEQU.js → CMB-NkFa.js} +1 -1
  38. package/.output/public/_nuxt/{CU-OXXdh.js → CNULGfLp.js} +1 -1
  39. package/.output/public/_nuxt/{Surk4Lw-.js → COVRAesU.js} +1 -1
  40. package/.output/public/_nuxt/{h-e-Ca3f.js → CSAmL8XJ.js} +1 -1
  41. package/.output/public/_nuxt/{CHgsEM4U.js → CWmQcueG.js} +1 -1
  42. package/.output/public/_nuxt/{BgR7oL4p.js → CYuWAvXE.js} +1 -1
  43. package/.output/public/_nuxt/CbuWynGG.js +1 -0
  44. package/.output/public/_nuxt/{CIOQo6gB.js → Ce3tBrN7.js} +1 -1
  45. package/.output/public/_nuxt/{DNP5tTJo.js → Cf4h8qty.js} +1 -1
  46. package/.output/public/_nuxt/{B9Q_4Mjt.js → Cl96oI21.js} +1 -1
  47. package/.output/public/_nuxt/{PPFO8UVt.js → ClJkng9p.js} +1 -1
  48. package/.output/public/_nuxt/{B32ySRXg.js → CoKEjZX7.js} +1 -1
  49. package/.output/public/_nuxt/CvtYJHkY.js +1 -0
  50. package/.output/public/_nuxt/{BCK4f6Y3.js → CxLN5Tmq.js} +1 -1
  51. package/.output/public/_nuxt/{ChWPXucC.js → Cz2HhsB6.js} +1 -1
  52. package/.output/public/_nuxt/{B_80i5Ge.js → D0-HTQTD.js} +1 -1
  53. package/.output/public/_nuxt/{CHMpVLqo.js → D13ybpY3.js} +1 -1
  54. package/.output/public/_nuxt/{CvCF77E-.js → D7P0ML0H.js} +2 -2
  55. package/.output/public/_nuxt/{BW1UOxWn.js → D811X8KM.js} +1 -1
  56. package/.output/public/_nuxt/DATh_1DQ.js +1 -0
  57. package/.output/public/_nuxt/{BEKwVcvQ.js → DAeYmPfX.js} +1 -1
  58. package/.output/public/_nuxt/DCffDvxl.js +1 -0
  59. package/.output/public/_nuxt/DDPptydi.js +2 -0
  60. package/.output/public/_nuxt/{DkFbpSsi.js → DFM2jv9I.js} +1 -1
  61. package/.output/public/_nuxt/{D4nLD93c.js → DJHNEqb7.js} +1 -1
  62. package/.output/public/_nuxt/{DaKVSp-6.js → DPSOtRoz.js} +1 -1
  63. package/.output/public/_nuxt/{DYDGGqZ3.js → DRTxhZBV.js} +1 -1
  64. package/.output/public/_nuxt/{Cgr8IKY4.js → DS9yGVFL.js} +1 -1
  65. package/.output/public/_nuxt/{Cfk2_UCm.js → DT5rhzhJ.js} +1 -1
  66. package/.output/public/_nuxt/{DFw8I2FL.js → DTH2lteW.js} +1 -1
  67. package/.output/public/_nuxt/DUe6xuKQ.js +1 -0
  68. package/.output/public/_nuxt/D_A6axXa.js +1 -0
  69. package/.output/public/_nuxt/D_TbJDHY.js +1 -0
  70. package/.output/public/_nuxt/{B59-l1Cv.js → Df3QtbpW.js} +1 -1
  71. package/.output/public/_nuxt/{BkhdAGx0.js → DjRhouSr.js} +1 -1
  72. package/.output/public/_nuxt/Dn6cGVYB.js +1 -0
  73. package/.output/public/_nuxt/{0KrkW531.js → DpJrGwCr.js} +2 -2
  74. package/.output/public/_nuxt/DqsMiUoW.js +2 -0
  75. package/.output/public/_nuxt/{C7RarFGi.js → Ds2Y3oms.js} +1 -1
  76. package/.output/public/_nuxt/Ds4Lb1vi.js +7 -0
  77. package/.output/public/_nuxt/{DWzdeQ3Z.js → DtXREpk_.js} +1 -1
  78. package/.output/public/_nuxt/{Dejf0f7D.js → DvC5Adg1.js} +3 -3
  79. package/.output/public/_nuxt/{o5WQ5Z7k.js → DvXvJzFP.js} +1 -1
  80. package/.output/public/_nuxt/{DAeYEeCC.js → Dvc1aWpA.js} +1 -1
  81. package/.output/public/_nuxt/{DzbOHjZH.js → DwZiG9xH.js} +1 -1
  82. package/.output/public/_nuxt/Dx1oCMgy.js +47 -0
  83. package/.output/public/_nuxt/{BGsuOpiq.js → DxQq_L07.js} +1 -1
  84. package/.output/public/_nuxt/{CqA3gM8h.js → Dym66h3p.js} +1 -1
  85. package/.output/public/_nuxt/{CNzoIhwN.js → Dz3Wbekz.js} +1 -1
  86. package/.output/public/_nuxt/HCK35QD8.js +1 -0
  87. package/.output/public/_nuxt/{Cpquifvd.js → L6HlmmEa.js} +1 -1
  88. package/.output/public/_nuxt/{BMQIO38j.js → PxPbRVF-.js} +1 -1
  89. package/.output/public/_nuxt/{DiUGa0CT.js → QFMx1VKs.js} +1 -1
  90. package/.output/public/_nuxt/{DHVmXA9K.js → Sgf5OLhm.js} +1 -1
  91. package/.output/public/_nuxt/US3YSX4T.js +1 -0
  92. package/.output/public/_nuxt/{DZLrAp2i.js → Wfk1m0ni.js} +1 -1
  93. package/.output/public/_nuxt/builds/latest.json +1 -1
  94. package/.output/public/_nuxt/builds/meta/05a2dd95-d1c1-4e3a-8625-ac6bfea83837.json +1 -0
  95. package/.output/public/_nuxt/{too3WhRB.js → cBj9fai9.js} +1 -1
  96. package/.output/public/_nuxt/{DxXZN6ed.js → csqspBeX.js} +1 -1
  97. package/.output/public/_nuxt/entry.BaIGwMjT.css +1 -0
  98. package/.output/public/_nuxt/{__m3KqHO.js → jlBi8Byu.js} +1 -1
  99. package/.output/public/_nuxt/{Dv2B_nw_.js → lCkcEykv.js} +1 -1
  100. package/.output/public/_nuxt/qYFZH4Z8.js +34 -0
  101. package/.output/public/_nuxt/{3SnTawZW.js → r3SBLxtE.js} +1 -1
  102. package/.output/public/_nuxt/{DI_-kFec.js → r9WApUfF.js} +1 -1
  103. package/.output/public/_nuxt/{BC_Wu-fv.js → rw7Hdll3.js} +1 -1
  104. package/.output/public/_nuxt/{IdQR_Djw.js → sMFaPAAR.js} +1 -1
  105. package/.output/public/_nuxt/{CKZn0TUX.js → vzXhOO8R.js} +1 -1
  106. package/.output/public/_nuxt/{CFn3w5jn.js → yZ4LuI9d.js} +1 -1
  107. package/.output/public/_nuxt/{BtJkQ3to.js → z7PmsnBG.js} +1 -1
  108. package/.output/public/_nuxt/{lRMjXqiA.js → za5M7BGh.js} +1 -1
  109. package/.output/public/demo/seed.version.json +2 -2
  110. package/.output/public/sw.js +1 -1
  111. package/.output/server/chunks/_/markers.mjs +1 -1
  112. package/.output/server/chunks/_/users.mjs +1 -1
  113. package/.output/server/chunks/build/{BrowserBadge-BTA4QU_J.mjs → BrowserBadge-DNCp9pF-.mjs} +3 -3
  114. package/.output/server/chunks/build/BrowserBadge-DNCp9pF-.mjs.map +1 -0
  115. package/.output/server/chunks/build/{ChartCard-BqAhMip2.mjs → ChartCard-Fr557IbV.mjs} +2 -2
  116. package/.output/server/chunks/build/ChartCard-Fr557IbV.mjs.map +1 -0
  117. package/.output/server/chunks/build/{Checkbox-_1nGm_DR.mjs → Checkbox-cVOSIY93.mjs} +6 -6
  118. package/.output/server/chunks/build/Checkbox-cVOSIY93.mjs.map +1 -0
  119. package/.output/server/chunks/build/{CiEnvCard-DAufYuJw.mjs → CiEnvCard-DXPOhdSG.mjs} +5 -5
  120. package/.output/server/chunks/build/CiEnvCard-DXPOhdSG.mjs.map +1 -0
  121. package/.output/server/chunks/build/{CodeBlock-BVKHuYjU.mjs → CodeBlock-BGwNmJ8J.mjs} +2 -2
  122. package/.output/server/chunks/build/CodeBlock-BGwNmJ8J.mjs.map +1 -0
  123. package/.output/server/chunks/build/{DashboardNavbar-BR6j4VLd.mjs → DashboardNavbar-Bdp-OwTN.mjs} +2 -2
  124. package/.output/server/chunks/build/DashboardNavbar-Bdp-OwTN.mjs.map +1 -0
  125. package/.output/server/chunks/build/DashboardSidebarToggle-Ji6ADuqF.mjs +1 -1
  126. package/.output/server/chunks/build/DataLocationCard-D6xSOrme.mjs +102 -0
  127. package/.output/server/chunks/build/DataLocationCard-D6xSOrme.mjs.map +1 -0
  128. package/.output/server/chunks/build/DesktopMcpCard-B4JuUTKj.mjs +122 -0
  129. package/.output/server/chunks/build/DesktopMcpCard-B4JuUTKj.mjs.map +1 -0
  130. package/.output/server/chunks/build/{DiagnosisPanel-BnrdXDvd.mjs → DiagnosisPanel-DV1xwGu4.mjs} +6 -6
  131. package/.output/server/chunks/build/DiagnosisPanel-DV1xwGu4.mjs.map +1 -0
  132. package/.output/server/chunks/build/EntityLinks-DeOP13Kr.mjs +1 -1
  133. package/.output/server/chunks/build/{EnvManagedBadge-DdnEtjIl.mjs → EnvManagedBadge-Qpn58Nmr.mjs} +5 -5
  134. package/.output/server/chunks/build/EnvManagedBadge-Qpn58Nmr.mjs.map +1 -0
  135. package/.output/server/chunks/build/{HelpHint-D_GJzMpW.mjs → HelpHint-YEMWtKu1.mjs} +18 -2
  136. package/.output/server/chunks/build/HelpHint-YEMWtKu1.mjs.map +1 -0
  137. package/.output/server/chunks/build/{Modal-COIjm3js.mjs → Modal-CfA78Hm1.mjs} +2 -2
  138. package/.output/server/chunks/build/Modal-CfA78Hm1.mjs.map +1 -0
  139. package/.output/server/chunks/build/{OpenInIdeLink-D97W6On1.mjs → OpenInIdeLink-B92wosXu.mjs} +3 -3
  140. package/.output/server/chunks/build/{OpenInIdeLink-D97W6On1.mjs.map → OpenInIdeLink-B92wosXu.mjs.map} +1 -1
  141. package/.output/server/chunks/build/{PageStateCard-C1HFN4Nv.mjs → PageStateCard-Bwee6JTk.mjs} +10 -10
  142. package/.output/server/chunks/build/{PageStateCard-C1HFN4Nv.mjs.map → PageStateCard-Bwee6JTk.mjs.map} +1 -1
  143. package/.output/server/chunks/build/{ProjectTestCasesTable-XFBPQGIX.mjs → ProjectTestCasesTable-9Ia825h8.mjs} +9 -9
  144. package/.output/server/chunks/build/ProjectTestCasesTable-9Ia825h8.mjs.map +1 -0
  145. package/.output/server/chunks/build/{RunReports-ChNkmuWa.mjs → RunReports-BpJqLHY9.mjs} +2 -2
  146. package/.output/server/chunks/build/RunReports-BpJqLHY9.mjs.map +1 -0
  147. package/.output/server/chunks/build/{RunStatusBadge-CXpuCUGQ.mjs → RunStatusBadge-BhmJ_RKM.mjs} +2 -2
  148. package/.output/server/chunks/build/RunStatusBadge-BhmJ_RKM.mjs.map +1 -0
  149. package/.output/server/chunks/build/{SectionCard-zs9FDzps.mjs → SectionCard-COd9TuDq.mjs} +2 -2
  150. package/.output/server/chunks/build/SectionCard-COd9TuDq.mjs.map +1 -0
  151. package/.output/server/chunks/build/{Select-r3S5nkSY.mjs → Select-ppPz926C.mjs} +5 -4
  152. package/.output/server/chunks/build/Select-ppPz926C.mjs.map +1 -0
  153. package/.output/server/chunks/build/{SelectMenu-Dk6f8i9o.mjs → SelectMenu-799c_Ils.mjs} +4 -4
  154. package/.output/server/chunks/build/{SelectMenu-Dk6f8i9o.mjs.map → SelectMenu-799c_Ils.mjs.map} +1 -1
  155. package/.output/server/chunks/build/{Separator-pqpPG0up.mjs → Separator-CxZdx8kw.mjs} +2 -2
  156. package/.output/server/chunks/build/Separator-CxZdx8kw.mjs.map +1 -0
  157. package/.output/server/chunks/build/{SettingsField-Wdpzlt13.mjs → SettingsField-DDD4oqys.mjs} +5 -5
  158. package/.output/server/chunks/build/SettingsField-DDD4oqys.mjs.map +1 -0
  159. package/.output/server/chunks/build/{Slideover-02XjJjn0.mjs → Slideover-B95Rj237.mjs} +3 -3
  160. package/.output/server/chunks/build/Slideover-B95Rj237.mjs.map +1 -0
  161. package/.output/server/chunks/build/{Switch-gx_JXgCo.mjs → Switch-xQQ3_ME1.mjs} +3 -3
  162. package/.output/server/chunks/build/Switch-xQQ3_ME1.mjs.map +1 -0
  163. package/.output/server/chunks/build/{Table-C64RrBp3.mjs → Table-CPhhVzDv.mjs} +3 -3
  164. package/.output/server/chunks/build/Table-CPhhVzDv.mjs.map +1 -0
  165. package/.output/server/chunks/build/{TestStatusBar--u4VX_Xf.mjs → TestStatusBar-CEzt76wk.mjs} +2 -2
  166. package/.output/server/chunks/build/TestStatusBar-CEzt76wk.mjs.map +1 -0
  167. package/.output/server/chunks/build/{Tooltip-ui_BVvqr.mjs → Tooltip-7vwuDPrZ.mjs} +3 -3
  168. package/.output/server/chunks/build/Tooltip-7vwuDPrZ.mjs.map +1 -0
  169. package/.output/server/chunks/build/{VisuallyHiddenInput-mMsqmkjz.mjs → VisuallyHiddenInput-C9eJVpPW.mjs} +2 -2
  170. package/.output/server/chunks/build/VisuallyHiddenInput-C9eJVpPW.mjs.map +1 -0
  171. package/.output/server/chunks/build/{_id_-R6KGfZOC.mjs → _id_-B2yirIuA.mjs} +259 -85
  172. package/.output/server/chunks/build/_id_-B2yirIuA.mjs.map +1 -0
  173. package/.output/server/chunks/build/{_id_-CFVnSs8B.mjs → _id_-B4V5fop6.mjs} +21 -19
  174. package/.output/server/chunks/build/{_id_-CFVnSs8B.mjs.map → _id_-B4V5fop6.mjs.map} +1 -1
  175. package/.output/server/chunks/build/{_id_-pkxJKe17.mjs → _id_-CE0Gso6i.mjs} +11 -11
  176. package/.output/server/chunks/build/_id_-CE0Gso6i.mjs.map +1 -0
  177. package/.output/server/chunks/build/{_id_-DXJQABO8.mjs → _id_-bWcP2xFl.mjs} +27 -26
  178. package/.output/server/chunks/build/{_id_-DXJQABO8.mjs.map → _id_-bWcP2xFl.mjs.map} +1 -1
  179. package/.output/server/chunks/build/about-TuEZ9n1Q.mjs +625 -0
  180. package/.output/server/chunks/build/about-TuEZ9n1Q.mjs.map +1 -0
  181. package/.output/server/chunks/build/{account-AbLuwiZP.mjs → account-Cn-eZqXM.mjs} +4 -4
  182. package/.output/server/chunks/build/account-Cn-eZqXM.mjs.map +1 -0
  183. package/.output/server/chunks/build/{ai-DR_slopS.mjs → ai-7jdaPOmj.mjs} +19 -18
  184. package/.output/server/chunks/build/ai-7jdaPOmj.mjs.map +1 -0
  185. package/.output/server/chunks/build/{analytics-BbT2-Tr-.mjs → analytics-B276WPeU.mjs} +237 -65
  186. package/.output/server/chunks/build/analytics-B276WPeU.mjs.map +1 -0
  187. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  188. package/.output/server/chunks/build/{db.client-DlA_u5y9.mjs → db.client-aHcD0wyX.mjs} +47 -22
  189. package/.output/server/chunks/build/db.client-aHcD0wyX.mjs.map +1 -0
  190. package/.output/server/chunks/build/{default-D6diRCW0.mjs → default-BSzdkM_L.mjs} +20 -17
  191. package/.output/server/chunks/build/default-BSzdkM_L.mjs.map +1 -0
  192. package/.output/server/chunks/build/{docs-DbYoZafk.mjs → docs-EXhN3sqC.mjs} +7 -6
  193. package/.output/server/chunks/build/{docs-DbYoZafk.mjs.map → docs-EXhN3sqC.mjs.map} +1 -1
  194. package/.output/server/chunks/build/{edit-CNV4xdYj.mjs → edit-C9Z7oZeu.mjs} +10 -9
  195. package/.output/server/chunks/build/edit-C9Z7oZeu.mjs.map +1 -0
  196. package/.output/server/chunks/build/fetch-8kznMtBM.mjs +1 -1
  197. package/.output/server/chunks/build/handleAndDispatchCustomEvent-Bk_AVSSo.mjs +13 -0
  198. package/.output/server/chunks/build/handleAndDispatchCustomEvent-Bk_AVSSo.mjs.map +1 -0
  199. package/.output/server/chunks/build/{help-content-BMumoQQF.mjs → help-content-DmFnuhNu.mjs} +6 -1
  200. package/.output/server/chunks/build/help-content-DmFnuhNu.mjs.map +1 -0
  201. package/.output/server/chunks/build/{index-C3Ou18qD.mjs → index-BK9PTRpd.mjs} +34 -18
  202. package/.output/server/chunks/build/{index-C3Ou18qD.mjs.map → index-BK9PTRpd.mjs.map} +1 -1
  203. package/.output/server/chunks/build/{index-Dw526KXV.mjs → index-BR9hw6qk.mjs} +10 -10
  204. package/.output/server/chunks/build/index-BR9hw6qk.mjs.map +1 -0
  205. package/.output/server/chunks/build/{index-dwYB76GO.mjs → index-Ba-Fifra.mjs} +4 -4
  206. package/.output/server/chunks/build/index-Ba-Fifra.mjs.map +1 -0
  207. package/.output/server/chunks/build/{index-DmHBPf7T.mjs → index-CULN3-en.mjs} +11 -2
  208. package/.output/server/chunks/build/index-CULN3-en.mjs.map +1 -0
  209. package/.output/server/chunks/build/{index-rSHkKNna.mjs → index-DVUtBexc.mjs} +507 -85
  210. package/.output/server/chunks/build/index-DVUtBexc.mjs.map +1 -0
  211. package/.output/server/chunks/build/{isValueEqualOrExist-DTJ5ejZs.mjs → isValueEqualOrExist-DBZjbD_3.mjs} +3 -3
  212. package/.output/server/chunks/build/isValueEqualOrExist-DBZjbD_3.mjs.map +1 -0
  213. package/.output/server/chunks/build/{login-Da5C8jP2.mjs → login-D2XZDuek.mjs} +3 -3
  214. package/.output/server/chunks/build/login-D2XZDuek.mjs.map +1 -0
  215. package/.output/server/chunks/build/{mcp-DM1t-9L_.mjs → mcp-CQ-21rwc.mjs} +138 -31
  216. package/.output/server/chunks/build/mcp-CQ-21rwc.mjs.map +1 -0
  217. package/.output/server/chunks/build/{notifications-BTPF0xA7.mjs → notifications-Dzm9c0u_.mjs} +13 -12
  218. package/.output/server/chunks/build/notifications-Dzm9c0u_.mjs.map +1 -0
  219. package/.output/server/chunks/build/server.mjs +37 -28
  220. package/.output/server/chunks/build/{settings-metadata-CksLgMun.mjs → settings-metadata-B0wo5R-W.mjs} +14 -3
  221. package/.output/server/chunks/build/settings-metadata-B0wo5R-W.mjs.map +1 -0
  222. package/.output/server/chunks/build/{settings-Bmw_JdBS.mjs → settings-pNyPBXVa.mjs} +9 -7
  223. package/.output/server/chunks/build/settings-pNyPBXVa.mjs.map +1 -0
  224. package/.output/server/chunks/build/{storage-BqR4acgi.mjs → storage-XelzuyPy.mjs} +23 -12
  225. package/.output/server/chunks/build/storage-XelzuyPy.mjs.map +1 -0
  226. package/.output/server/chunks/build/{tags-miPAzIr3.mjs → tags-DrCQ7QSw.mjs} +6 -6
  227. package/.output/server/chunks/build/tags-DrCQ7QSw.mjs.map +1 -0
  228. package/.output/server/chunks/build/{test-cases-D-LqhLpk.mjs → test-cases-pmOxi-AN.mjs} +16 -15
  229. package/.output/server/chunks/build/test-cases-pmOxi-AN.mjs.map +1 -0
  230. package/.output/server/chunks/build/timeout-hygiene-CNs71Iah.mjs +318 -0
  231. package/.output/server/chunks/build/timeout-hygiene-CNs71Iah.mjs.map +1 -0
  232. package/.output/server/chunks/build/{useAiStatus-FwqbA4gz.mjs → useAiStatus-ZO987RY7.mjs} +8 -7
  233. package/.output/server/chunks/build/useAiStatus-ZO987RY7.mjs.map +1 -0
  234. package/.output/server/chunks/build/useFormControl-BLpq1s4O.mjs +9 -0
  235. package/.output/server/chunks/build/useFormControl-BLpq1s4O.mjs.map +1 -0
  236. package/.output/server/chunks/build/useIsDesktop-BS13spVj.mjs +9 -0
  237. package/.output/server/chunks/build/useIsDesktop-BS13spVj.mjs.map +1 -0
  238. package/.output/server/chunks/build/{useSettingsNav-v_dFuTw9.mjs → useSettingsNav-NjI2seBy.mjs} +9 -7
  239. package/.output/server/chunks/build/useSettingsNav-NjI2seBy.mjs.map +1 -0
  240. package/.output/server/chunks/build/{users-D-GDKZmZ.mjs → users-NmAUZs3i.mjs} +6 -6
  241. package/.output/server/chunks/build/users-NmAUZs3i.mjs.map +1 -0
  242. package/.output/server/chunks/build/{virtualizer-BcC1XuFf.mjs → virtualizer-ZaqK4guJ.mjs} +6 -5
  243. package/.output/server/chunks/build/virtualizer-ZaqK4guJ.mjs.map +1 -0
  244. package/.output/server/chunks/build/{wasted-time-CFmeT_e2.mjs → wasted-time-CguAF9zc.mjs} +8 -8
  245. package/.output/server/chunks/build/wasted-time-CguAF9zc.mjs.map +1 -0
  246. package/.output/server/chunks/nitro/nitro.mjs +1009 -722
  247. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  248. package/.output/server/chunks/routes/__piwi/session.get.mjs +51 -0
  249. package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -0
  250. package/.output/server/chunks/routes/api/admin/stats.get.mjs +5 -1
  251. package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
  252. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +75 -6
  253. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
  254. package/.output/server/chunks/routes/api/auth/change-password.post.mjs +1 -1
  255. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +1 -1
  256. package/.output/server/chunks/routes/api/auth/login.post.mjs +1 -1
  257. package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -1
  258. package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -1
  259. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -1
  260. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +1 -1
  261. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +1 -1
  262. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +1 -1
  263. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -1
  264. package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -1
  265. package/.output/server/chunks/routes/api/auth/setup.post.mjs +1 -1
  266. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -1
  267. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +1 -1
  268. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +1 -1
  269. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +1 -1
  270. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +1 -1
  271. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +45 -0
  272. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -0
  273. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +1 -1
  274. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +1 -1
  275. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +1 -1
  276. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +1 -1
  277. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +1 -1
  278. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +1 -1
  279. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +1 -1
  280. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +1 -1
  281. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -1
  282. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +1 -1
  283. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +1 -1
  284. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +1 -1
  285. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +1 -1
  286. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +1 -1
  287. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  288. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  289. package/.output/server/chunks/routes/api/index.get2.mjs +1 -1
  290. package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
  291. package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
  292. package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
  293. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  294. package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
  295. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  296. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  297. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  298. package/.output/server/chunks/routes/api/index.post6.mjs +1 -1
  299. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +1 -1
  300. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +1 -1
  301. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +1 -1
  302. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +1 -1
  303. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +1 -1
  304. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +1 -1
  305. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +1 -1
  306. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +1 -1
  307. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +1 -1
  308. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +1 -1
  309. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +1 -1
  310. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +1 -1
  311. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +1 -1
  312. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +1 -1
  313. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +1 -1
  314. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +1 -1
  315. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +1 -1
  316. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +1 -1
  317. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -1
  318. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +50 -0
  319. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -0
  320. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +1 -1
  321. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +1 -1
  322. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +1 -1
  323. package/.output/server/chunks/routes/api/projects/menu.get.mjs +1 -1
  324. package/.output/server/chunks/routes/api/projects/overview.get.mjs +1 -1
  325. package/.output/server/chunks/routes/api/projects.get.mjs +1 -1
  326. package/.output/server/chunks/routes/api/search.get.mjs +1 -1
  327. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +1 -1
  328. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +1 -1
  329. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +1 -1
  330. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +1 -1
  331. package/.output/server/chunks/routes/api/settings/ai.get.mjs +1 -1
  332. package/.output/server/chunks/routes/api/settings/ai.put.mjs +1 -1
  333. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +1 -1
  334. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +1 -1
  335. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +40 -0
  336. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -0
  337. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +46 -0
  338. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -0
  339. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +1 -1
  340. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +1 -1
  341. package/.output/server/chunks/routes/api/stream.get.mjs +1 -1
  342. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +1 -1
  343. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
  344. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +1 -1
  345. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
  346. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +1 -1
  347. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +1 -1
  348. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +1 -1
  349. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +1 -1
  350. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +1 -1
  351. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +1 -1
  352. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +1 -1
  353. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +1 -1
  354. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +1 -1
  355. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +1 -1
  356. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +1 -1
  357. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +1 -1
  358. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +1 -1
  359. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +1 -1
  360. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +1 -1
  361. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +1 -1
  362. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +1 -1
  363. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +1 -1
  364. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +1 -1
  365. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +1 -1
  366. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +1 -1
  367. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +1 -1
  368. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +1 -1
  369. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +1 -1
  370. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +1 -1
  371. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +1 -1
  372. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +1 -1
  373. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +1 -1
  374. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +1 -1
  375. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +1 -1
  376. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +1 -1
  377. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +1 -1
  378. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +1 -1
  379. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +3 -1
  380. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  381. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +2 -1
  382. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  383. package/.output/server/chunks/routes/api/traces/check.post.mjs +1 -1
  384. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +1 -1
  385. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +1 -1
  386. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
  387. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +1 -1
  388. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +1 -1
  389. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
  390. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
  391. package/.output/server/chunks/routes/api/users/_id_.patch.mjs +1 -1
  392. package/.output/server/chunks/routes/api/version.get.mjs +1 -1
  393. package/.output/server/chunks/routes/mcp.post.mjs +1 -1
  394. package/.output/server/chunks/routes/renderer.mjs +1 -1
  395. package/.output/server/database/migrations/0037_tired_hellion.sql +1 -0
  396. package/.output/server/database/migrations/0038_glamorous_ulik.sql +1 -0
  397. package/.output/server/database/migrations/meta/0037_snapshot.json +3384 -0
  398. package/.output/server/database/migrations/meta/0038_snapshot.json +3391 -0
  399. package/.output/server/database/migrations/meta/_journal.json +14 -0
  400. package/.output/server/database/migrations-pg/0038_tranquil_moira_mactaggert.sql +1 -0
  401. package/.output/server/database/migrations-pg/0039_fat_starjammers.sql +1 -0
  402. package/.output/server/database/migrations-pg/meta/0038_snapshot.json +4027 -0
  403. package/.output/server/database/migrations-pg/meta/0039_snapshot.json +4033 -0
  404. package/.output/server/database/migrations-pg/meta/_journal.json +14 -0
  405. package/.output/server/index.mjs +1 -1
  406. package/.output/server/package.json +1 -1
  407. package/package.json +1 -1
  408. package/.output/public/_nuxt/2kfkdDTz.js +0 -1
  409. package/.output/public/_nuxt/BXEDsEwG.js +0 -1
  410. package/.output/public/_nuxt/BbgBGuMG.js +0 -1
  411. package/.output/public/_nuxt/CBrCcDzR.js +0 -1
  412. package/.output/public/_nuxt/CFXonrwQ.js +0 -3
  413. package/.output/public/_nuxt/CJGJI2Of.js +0 -34
  414. package/.output/public/_nuxt/Ce4EdfL_.js +0 -4
  415. package/.output/public/_nuxt/Cf3RuiXF.js +0 -46
  416. package/.output/public/_nuxt/CkpB9oBr.js +0 -1
  417. package/.output/public/_nuxt/D1tZEdSi.js +0 -1
  418. package/.output/public/_nuxt/DK9uMTYX.js +0 -1
  419. package/.output/public/_nuxt/DgZlpN9l.js +0 -1
  420. package/.output/public/_nuxt/DjCfCT_5.js +0 -1
  421. package/.output/public/_nuxt/YDWXnWou.js +0 -1
  422. package/.output/public/_nuxt/builds/meta/f549de31-8db6-4504-b526-482778a55eba.json +0 -1
  423. package/.output/public/_nuxt/entry.BxXHl1Vy.css +0 -1
  424. package/.output/public/_nuxt/evCxpgbd.js +0 -2
  425. package/.output/public/_nuxt/wCQds5_f.js +0 -1
  426. package/.output/server/chunks/build/BrowserBadge-BTA4QU_J.mjs.map +0 -1
  427. package/.output/server/chunks/build/ChartCard-BqAhMip2.mjs.map +0 -1
  428. package/.output/server/chunks/build/Checkbox-_1nGm_DR.mjs.map +0 -1
  429. package/.output/server/chunks/build/CiEnvCard-DAufYuJw.mjs.map +0 -1
  430. package/.output/server/chunks/build/CodeBlock-BVKHuYjU.mjs.map +0 -1
  431. package/.output/server/chunks/build/DashboardNavbar-BR6j4VLd.mjs.map +0 -1
  432. package/.output/server/chunks/build/DiagnosisPanel-BnrdXDvd.mjs.map +0 -1
  433. package/.output/server/chunks/build/EnvManagedBadge-DdnEtjIl.mjs.map +0 -1
  434. package/.output/server/chunks/build/HelpHint-D_GJzMpW.mjs.map +0 -1
  435. package/.output/server/chunks/build/Modal-COIjm3js.mjs.map +0 -1
  436. package/.output/server/chunks/build/ProjectTestCasesTable-XFBPQGIX.mjs.map +0 -1
  437. package/.output/server/chunks/build/RunReports-ChNkmuWa.mjs.map +0 -1
  438. package/.output/server/chunks/build/RunStatusBadge-CXpuCUGQ.mjs.map +0 -1
  439. package/.output/server/chunks/build/SectionCard-zs9FDzps.mjs.map +0 -1
  440. package/.output/server/chunks/build/Select-r3S5nkSY.mjs.map +0 -1
  441. package/.output/server/chunks/build/Separator-pqpPG0up.mjs.map +0 -1
  442. package/.output/server/chunks/build/SettingsField-Wdpzlt13.mjs.map +0 -1
  443. package/.output/server/chunks/build/Slideover-02XjJjn0.mjs.map +0 -1
  444. package/.output/server/chunks/build/Switch-gx_JXgCo.mjs.map +0 -1
  445. package/.output/server/chunks/build/Table-C64RrBp3.mjs.map +0 -1
  446. package/.output/server/chunks/build/TestStatusBar--u4VX_Xf.mjs.map +0 -1
  447. package/.output/server/chunks/build/Tooltip-ui_BVvqr.mjs.map +0 -1
  448. package/.output/server/chunks/build/VisuallyHiddenInput-mMsqmkjz.mjs.map +0 -1
  449. package/.output/server/chunks/build/_id_-R6KGfZOC.mjs.map +0 -1
  450. package/.output/server/chunks/build/_id_-pkxJKe17.mjs.map +0 -1
  451. package/.output/server/chunks/build/about-CmtGYbC6.mjs +0 -313
  452. package/.output/server/chunks/build/about-CmtGYbC6.mjs.map +0 -1
  453. package/.output/server/chunks/build/account-AbLuwiZP.mjs.map +0 -1
  454. package/.output/server/chunks/build/ai-DR_slopS.mjs.map +0 -1
  455. package/.output/server/chunks/build/analytics-BbT2-Tr-.mjs.map +0 -1
  456. package/.output/server/chunks/build/db.client-DlA_u5y9.mjs.map +0 -1
  457. package/.output/server/chunks/build/default-D6diRCW0.mjs.map +0 -1
  458. package/.output/server/chunks/build/edit-CNV4xdYj.mjs.map +0 -1
  459. package/.output/server/chunks/build/help-content-BMumoQQF.mjs.map +0 -1
  460. package/.output/server/chunks/build/index-DmHBPf7T.mjs.map +0 -1
  461. package/.output/server/chunks/build/index-Dw526KXV.mjs.map +0 -1
  462. package/.output/server/chunks/build/index-dwYB76GO.mjs.map +0 -1
  463. package/.output/server/chunks/build/index-rSHkKNna.mjs.map +0 -1
  464. package/.output/server/chunks/build/isValueEqualOrExist-DTJ5ejZs.mjs.map +0 -1
  465. package/.output/server/chunks/build/login-Da5C8jP2.mjs.map +0 -1
  466. package/.output/server/chunks/build/mcp-DM1t-9L_.mjs.map +0 -1
  467. package/.output/server/chunks/build/notifications-BTPF0xA7.mjs.map +0 -1
  468. package/.output/server/chunks/build/settings-Bmw_JdBS.mjs.map +0 -1
  469. package/.output/server/chunks/build/settings-metadata-CksLgMun.mjs.map +0 -1
  470. package/.output/server/chunks/build/storage-BqR4acgi.mjs.map +0 -1
  471. package/.output/server/chunks/build/tags-miPAzIr3.mjs.map +0 -1
  472. package/.output/server/chunks/build/test-cases-D-LqhLpk.mjs.map +0 -1
  473. package/.output/server/chunks/build/useAiStatus-FwqbA4gz.mjs.map +0 -1
  474. package/.output/server/chunks/build/useFormControl-DFTjniPG.mjs +0 -19
  475. package/.output/server/chunks/build/useFormControl-DFTjniPG.mjs.map +0 -1
  476. package/.output/server/chunks/build/useSettingsNav-v_dFuTw9.mjs.map +0 -1
  477. package/.output/server/chunks/build/users-D-GDKZmZ.mjs.map +0 -1
  478. package/.output/server/chunks/build/virtualizer-BcC1XuFf.mjs.map +0 -1
  479. package/.output/server/chunks/build/wasted-time-CFmeT_e2.mjs.map +0 -1
@@ -1 +1 @@
1
- import{a0 as $,a1 as S,a2 as C,a3 as V,o as a,f as l,g as B,T as c,k as r,aG as j,U as d,v as A,p as s,q as o,i as N,c as u,m,t as x,F as b,y as h,_ as p,V as O,h as P,a6 as F}from"./B8fs6GU9.js";const I={slots:{root:"relative overflow-hidden w-full rounded-lg p-4 flex gap-2.5",wrapper:"min-w-0 flex-1 flex flex-col",title:"text-sm font-medium",description:"text-sm opacity-90",icon:"shrink-0 size-5",avatar:"shrink-0",avatarSize:"2xl",actions:"flex flex-wrap gap-1.5 shrink-0",close:"p-0"},variants:{color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},variant:{solid:"",outline:"",soft:"",subtle:""},orientation:{horizontal:{root:"items-center",actions:"items-center"},vertical:{root:"items-start",actions:"items-start mt-2.5"}},title:{true:{description:"mt-1"}}},compoundVariants:[{color:"primary",variant:"solid",class:{root:"bg-primary text-inverted"}},{color:"secondary",variant:"solid",class:{root:"bg-secondary text-inverted"}},{color:"success",variant:"solid",class:{root:"bg-success text-inverted"}},{color:"info",variant:"solid",class:{root:"bg-info text-inverted"}},{color:"warning",variant:"solid",class:{root:"bg-warning text-inverted"}},{color:"error",variant:"solid",class:{root:"bg-error text-inverted"}},{color:"primary",variant:"outline",class:{root:"text-primary ring ring-inset ring-primary/25"}},{color:"secondary",variant:"outline",class:{root:"text-secondary ring ring-inset ring-secondary/25"}},{color:"success",variant:"outline",class:{root:"text-success ring ring-inset ring-success/25"}},{color:"info",variant:"outline",class:{root:"text-info ring ring-inset ring-info/25"}},{color:"warning",variant:"outline",class:{root:"text-warning ring ring-inset ring-warning/25"}},{color:"error",variant:"outline",class:{root:"text-error ring ring-inset ring-error/25"}},{color:"primary",variant:"soft",class:{root:"bg-primary/10 text-primary"}},{color:"secondary",variant:"soft",class:{root:"bg-secondary/10 text-secondary"}},{color:"success",variant:"soft",class:{root:"bg-success/10 text-success"}},{color:"info",variant:"soft",class:{root:"bg-info/10 text-info"}},{color:"warning",variant:"soft",class:{root:"bg-warning/10 text-warning"}},{color:"error",variant:"soft",class:{root:"bg-error/10 text-error"}},{color:"primary",variant:"subtle",class:{root:"bg-primary/10 text-primary ring ring-inset ring-primary/25"}},{color:"secondary",variant:"subtle",class:{root:"bg-secondary/10 text-secondary ring ring-inset ring-secondary/25"}},{color:"success",variant:"subtle",class:{root:"bg-success/10 text-success ring ring-inset ring-success/25"}},{color:"info",variant:"subtle",class:{root:"bg-info/10 text-info ring ring-inset ring-info/25"}},{color:"warning",variant:"subtle",class:{root:"bg-warning/10 text-warning ring ring-inset ring-warning/25"}},{color:"error",variant:"subtle",class:{root:"bg-error/10 text-error ring ring-inset ring-error/25"}},{color:"neutral",variant:"solid",class:{root:"text-inverted bg-inverted"}},{color:"neutral",variant:"outline",class:{root:"text-highlighted bg-default ring ring-inset ring-default"}},{color:"neutral",variant:"soft",class:{root:"text-highlighted bg-elevated/50"}},{color:"neutral",variant:"subtle",class:{root:"text-highlighted bg-elevated/50 ring ring-inset ring-accented"}}],defaultVariants:{color:"primary",variant:"solid"}},T={__name:"UAlert",props:{as:{type:null,required:!1},title:{type:String,required:!1},description:{type:String,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},orientation:{type:null,required:!1,default:"vertical"},actions:{type:Array,required:!1},close:{type:[Boolean,Object],required:!1},closeIcon:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},emits:["update:open"],setup(w,{emit:k}){const q=w,z=k,i=$(),t=S("alert",q),{t:_}=C(),f=V(),e=P(()=>F({extend:I,...f.ui?.alert||{}})({color:t.color,variant:t.variant,orientation:t.orientation,title:!!t.title||!!i.title}));return(n,y)=>(a(),l(r(O),{as:r(t).as,"data-orientation":r(t).orientation,"data-slot":"root",class:s(e.value.root({class:[r(t).ui?.root,r(t).class]}))},{default:B(()=>[c(n.$slots,"leading",{ui:e.value},()=>[r(t).avatar?(a(),l(j,d({key:0,size:r(t).ui?.avatarSize||e.value.avatarSize()},r(t).avatar,{"data-slot":"avatar",class:e.value.avatar({class:r(t).ui?.avatar})}),null,16,["size","class"])):r(t).icon?(a(),l(A,{key:1,name:r(t).icon,"data-slot":"icon",class:s(e.value.icon({class:r(t).ui?.icon}))},null,8,["name","class"])):o("",!0)]),N("div",{"data-slot":"wrapper",class:s(e.value.wrapper({class:r(t).ui?.wrapper}))},[r(t).title||i.title?(a(),u("div",{key:0,"data-slot":"title",class:s(e.value.title({class:r(t).ui?.title}))},[c(n.$slots,"title",{},()=>[m(x(r(t).title),1)])],2)):o("",!0),r(t).description||i.description?(a(),u("div",{key:1,"data-slot":"description",class:s(e.value.description({class:r(t).ui?.description}))},[c(n.$slots,"description",{},()=>[m(x(r(t).description),1)])],2)):o("",!0),r(t).orientation==="vertical"&&(r(t).actions?.length||i.actions)?(a(),u("div",{key:2,"data-slot":"actions",class:s(e.value.actions({class:r(t).ui?.actions}))},[c(n.$slots,"actions",{},()=>[(a(!0),u(b,null,h(r(t).actions,(g,v)=>(a(),l(p,d({key:v,size:"xs"},{ref_for:!0},g),null,16))),128))])],2)):o("",!0)],2),r(t).orientation==="horizontal"&&(r(t).actions?.length||i.actions)||r(t).close?(a(),u("div",{key:0,"data-slot":"actions",class:s(e.value.actions({class:r(t).ui?.actions,orientation:"horizontal"}))},[r(t).orientation==="horizontal"&&(r(t).actions?.length||i.actions)?c(n.$slots,"actions",{key:0},()=>[(a(!0),u(b,null,h(r(t).actions,(g,v)=>(a(),l(p,d({key:v,size:"xs"},{ref_for:!0},g),null,16))),128))]):o("",!0),c(n.$slots,"close",{ui:e.value},()=>[r(t).close?(a(),l(p,d({key:0,icon:r(t).closeIcon||r(f).ui.icons.close,color:"neutral",variant:"link","aria-label":r(_)("alert.close")},typeof r(t).close=="object"?r(t).close:{},{"data-slot":"close",class:e.value.close({class:r(t).ui?.close}),onClick:y[0]||(y[0]=g=>z("update:open",!1))}),null,16,["icon","aria-label","class"])):o("",!0)])],2)):o("",!0)]),_:3},8,["as","data-orientation","class"]))}};export{T as _};
1
+ import{a0 as $,a1 as S,a2 as C,a3 as V,o as a,f as l,g as B,T as c,k as r,aG as j,U as d,v as A,p as s,q as o,i as N,c as u,m,t as x,F as b,y as h,_ as p,V as O,h as P,a6 as F}from"./BrT_Sys2.js";const I={slots:{root:"relative overflow-hidden w-full rounded-lg p-4 flex gap-2.5",wrapper:"min-w-0 flex-1 flex flex-col",title:"text-sm font-medium",description:"text-sm opacity-90",icon:"shrink-0 size-5",avatar:"shrink-0",avatarSize:"2xl",actions:"flex flex-wrap gap-1.5 shrink-0",close:"p-0"},variants:{color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},variant:{solid:"",outline:"",soft:"",subtle:""},orientation:{horizontal:{root:"items-center",actions:"items-center"},vertical:{root:"items-start",actions:"items-start mt-2.5"}},title:{true:{description:"mt-1"}}},compoundVariants:[{color:"primary",variant:"solid",class:{root:"bg-primary text-inverted"}},{color:"secondary",variant:"solid",class:{root:"bg-secondary text-inverted"}},{color:"success",variant:"solid",class:{root:"bg-success text-inverted"}},{color:"info",variant:"solid",class:{root:"bg-info text-inverted"}},{color:"warning",variant:"solid",class:{root:"bg-warning text-inverted"}},{color:"error",variant:"solid",class:{root:"bg-error text-inverted"}},{color:"primary",variant:"outline",class:{root:"text-primary ring ring-inset ring-primary/25"}},{color:"secondary",variant:"outline",class:{root:"text-secondary ring ring-inset ring-secondary/25"}},{color:"success",variant:"outline",class:{root:"text-success ring ring-inset ring-success/25"}},{color:"info",variant:"outline",class:{root:"text-info ring ring-inset ring-info/25"}},{color:"warning",variant:"outline",class:{root:"text-warning ring ring-inset ring-warning/25"}},{color:"error",variant:"outline",class:{root:"text-error ring ring-inset ring-error/25"}},{color:"primary",variant:"soft",class:{root:"bg-primary/10 text-primary"}},{color:"secondary",variant:"soft",class:{root:"bg-secondary/10 text-secondary"}},{color:"success",variant:"soft",class:{root:"bg-success/10 text-success"}},{color:"info",variant:"soft",class:{root:"bg-info/10 text-info"}},{color:"warning",variant:"soft",class:{root:"bg-warning/10 text-warning"}},{color:"error",variant:"soft",class:{root:"bg-error/10 text-error"}},{color:"primary",variant:"subtle",class:{root:"bg-primary/10 text-primary ring ring-inset ring-primary/25"}},{color:"secondary",variant:"subtle",class:{root:"bg-secondary/10 text-secondary ring ring-inset ring-secondary/25"}},{color:"success",variant:"subtle",class:{root:"bg-success/10 text-success ring ring-inset ring-success/25"}},{color:"info",variant:"subtle",class:{root:"bg-info/10 text-info ring ring-inset ring-info/25"}},{color:"warning",variant:"subtle",class:{root:"bg-warning/10 text-warning ring ring-inset ring-warning/25"}},{color:"error",variant:"subtle",class:{root:"bg-error/10 text-error ring ring-inset ring-error/25"}},{color:"neutral",variant:"solid",class:{root:"text-inverted bg-inverted"}},{color:"neutral",variant:"outline",class:{root:"text-highlighted bg-default ring ring-inset ring-default"}},{color:"neutral",variant:"soft",class:{root:"text-highlighted bg-elevated/50"}},{color:"neutral",variant:"subtle",class:{root:"text-highlighted bg-elevated/50 ring ring-inset ring-accented"}}],defaultVariants:{color:"primary",variant:"solid"}},T={__name:"UAlert",props:{as:{type:null,required:!1},title:{type:String,required:!1},description:{type:String,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},orientation:{type:null,required:!1,default:"vertical"},actions:{type:Array,required:!1},close:{type:[Boolean,Object],required:!1},closeIcon:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},emits:["update:open"],setup(w,{emit:k}){const q=w,z=k,i=$(),t=S("alert",q),{t:_}=C(),f=V(),e=P(()=>F({extend:I,...f.ui?.alert||{}})({color:t.color,variant:t.variant,orientation:t.orientation,title:!!t.title||!!i.title}));return(n,y)=>(a(),l(r(O),{as:r(t).as,"data-orientation":r(t).orientation,"data-slot":"root",class:s(e.value.root({class:[r(t).ui?.root,r(t).class]}))},{default:B(()=>[c(n.$slots,"leading",{ui:e.value},()=>[r(t).avatar?(a(),l(j,d({key:0,size:r(t).ui?.avatarSize||e.value.avatarSize()},r(t).avatar,{"data-slot":"avatar",class:e.value.avatar({class:r(t).ui?.avatar})}),null,16,["size","class"])):r(t).icon?(a(),l(A,{key:1,name:r(t).icon,"data-slot":"icon",class:s(e.value.icon({class:r(t).ui?.icon}))},null,8,["name","class"])):o("",!0)]),N("div",{"data-slot":"wrapper",class:s(e.value.wrapper({class:r(t).ui?.wrapper}))},[r(t).title||i.title?(a(),u("div",{key:0,"data-slot":"title",class:s(e.value.title({class:r(t).ui?.title}))},[c(n.$slots,"title",{},()=>[m(x(r(t).title),1)])],2)):o("",!0),r(t).description||i.description?(a(),u("div",{key:1,"data-slot":"description",class:s(e.value.description({class:r(t).ui?.description}))},[c(n.$slots,"description",{},()=>[m(x(r(t).description),1)])],2)):o("",!0),r(t).orientation==="vertical"&&(r(t).actions?.length||i.actions)?(a(),u("div",{key:2,"data-slot":"actions",class:s(e.value.actions({class:r(t).ui?.actions}))},[c(n.$slots,"actions",{},()=>[(a(!0),u(b,null,h(r(t).actions,(g,v)=>(a(),l(p,d({key:v,size:"xs"},{ref_for:!0},g),null,16))),128))])],2)):o("",!0)],2),r(t).orientation==="horizontal"&&(r(t).actions?.length||i.actions)||r(t).close?(a(),u("div",{key:0,"data-slot":"actions",class:s(e.value.actions({class:r(t).ui?.actions,orientation:"horizontal"}))},[r(t).orientation==="horizontal"&&(r(t).actions?.length||i.actions)?c(n.$slots,"actions",{key:0},()=>[(a(!0),u(b,null,h(r(t).actions,(g,v)=>(a(),l(p,d({key:v,size:"xs"},{ref_for:!0},g),null,16))),128))]):o("",!0),c(n.$slots,"close",{ui:e.value},()=>[r(t).close?(a(),l(p,d({key:0,icon:r(t).closeIcon||r(f).ui.icons.close,color:"neutral",variant:"link","aria-label":r(_)("alert.close")},typeof r(t).close=="object"?r(t).close:{},{"data-slot":"close",class:e.value.close({class:r(t).ui?.close}),onClick:y[0]||(y[0]=g=>z("update:open",!1))}),null,16,["icon","aria-label","class"])):o("",!0)])],2)):o("",!0)]),_:3},8,["as","data-orientation","class"]))}};export{T as _};
@@ -1,4 +1,4 @@
1
- import{b as se,B as V,C as be,al as ke,r as h,h as Q,am as Ce,J as qe,d as re,o as p,f as H,g as D,j as g,_ as le,m as k,i as l,q as T,l as _e,k as e,E as We,c as $,v as we,t as j,F as K,y as ie,p as Z,x as Ve,G as Je}from"./B8fs6GU9.js";import{_ as Ye}from"./wCQds5_f.js";import{_ as Ge}from"./OG2n3p77.js";import{c as Xe,m as Ke,i as Qe,e as Ze,h as et,f as tt,g as st,j as nt}from"./BfshMo9k.js";import{u as ot}from"./DWzdeQ3Z.js";import{_ as at}from"./CNzoIhwN.js";import{f as $e,v as it,k as rt}from"./CvCF77E-.js";import{_ as lt}from"./n7Htv9PJ.js";import{u as ct}from"./too3WhRB.js";const ut=globalThis.setInterval,ce=Symbol("cluster-diagnosis");function dt(v){const a=se(),u=h(""),d=h(""),x=h([]),y=h([]),I=Q(()=>!!d.value),O=h(null),R=h([]),U=h(0),P=h(0),M=h(null),f=h(null),r=h(!1),t=h(null),o=h(!1);let s=null,i=null,m=!0;function S(){const c={};return u.value.trim()&&(c.baseCommit=u.value.trim()),x.value.length&&(c.selectedCommitShas=x.value),c}async function C(){r.value=!0;try{const c=await $fetch(`/api/failure-clusters/${v}/context`,{query:{...S(),format:"json"}});O.value=c.text,R.value=c.sections,U.value=c.tokenEstimate,P.value=c.imageTokenEstimate??0,M.value=c.coverage,f.value=c.scmChanges??null}catch{O.value="(failed to load context)",R.value=[],U.value=0,P.value=0,M.value=null,f.value=null}finally{r.value=!1}}async function A(c){try{await $fetch(`/api/failure-clusters/${v}/base-commit`,{method:"PATCH",body:{commit:c||null}}),d.value=c}catch{}}function z(){s&&(clearInterval(s),s=null)}function w(){if(s)return;let c=0;s=ut(async()=>{c+=3e3,await W(),(!t.value||t.value.status!=="running"||c>=12e4)&&z()},3e3)}async function W(){try{const c=await $fetch(`/api/failure-clusters/${v}/diagnosis`);t.value=c.diagnosis}catch{}}async function J(c={}){o.value=!0;try{const E=c.force?`/api/failure-clusters/${v}/diagnose?force=true`:`/api/failure-clusters/${v}/diagnose`,F={};c.additionalContext&&(F.additionalContext=c.additionalContext),u.value.trim()&&(F.baseCommit=u.value.trim()),x.value.length&&(F.selectedCommitShas=x.value),c.images?.length&&(F.images=c.images),t.value=await $fetch(E,{method:"POST",body:Object.keys(F).length?F:void 0}),t.value?.status==="running"&&w()}catch(E){E?.statusCode===409?w():a.add({title:"Diagnosis failed",description:String(E?.message??E),color:"error"})}finally{o.value=!1}}return V(u,c=>{m||(i&&clearTimeout(i),i=setTimeout(()=>C(),900),c!==d.value&&A(c))}),V(x,()=>{m||C()},{deep:!0}),V(t,c=>{c?.status==="running"?w():z()}),be(async()=>{try{const c=await $fetch(`/api/failure-clusters/${v}/diagnosis`);t.value=c.diagnosis,c.manualBaseCommit&&(d.value=c.manualBaseCommit,u.value=c.manualBaseCommit);const E=c.diagnosis?.details;E?.selectedCommitShas&&Array.isArray(E.selectedCommitShas)&&(x.value=E.selectedCommitShas),E?.autoSelectedCommits&&Array.isArray(E.autoSelectedCommits)&&(y.value=E.autoSelectedCommits)}catch{}m=!1,C(),t.value?.status==="running"&&w()}),ke(()=>{z(),i&&clearTimeout(i)}),{clusterId:v,baseCommit:u,savedBaseCommit:d,selectedCommitShas:x,autoSelectedCommits:y,baseCommitIsPinned:I,contextText:O,contextSections:R,tokenEstimate:U,imageTokenEstimate:P,coverage:M,scmChanges:f,contextLoading:r,refreshContext:C,diagnosis:t,posting:o,runDiagnosis:J}}function ft(v){const a=dt(v);return qe(ce,a),a}function Os(){const v=Ce(ce);if(!v)throw new Error("useClusterDiagnosis() must be used under a page that called provideClusterDiagnosis()");return v}function pt(v){const a=Ce(ce,null);if(a)return a;if(v==null)throw new Error("useOrProvideClusterDiagnosis() requires a clusterId when used outside provideClusterDiagnosis()");return ft(v)}const mt={class:"w-56 p-1 space-y-0.5"},gt=re({__name:"DiagnosisExportMenu",props:{contextText:{},diagnosis:{},screenshots:{},clusterSignature:{},clusterUrl:{},clusterOccurrences:{},clusterErrorType:{},sampleError:{}},setup(v){const a=v,{copy:u}=ot(),{copyRich:d}=Xe(),x=h(!1);function y(){const t=[];return a.clusterErrorType&&t.push(a.clusterErrorType),a.clusterOccurrences&&t.push(`${a.clusterOccurrences} occurrence${a.clusterOccurrences===1?"":"s"}`),t.join(" · ")}function I(){const t=a.clusterSignature??"Failure cluster",o=y(),s=a.diagnosis?.status==="completed"&&a.diagnosis.summary?`AI diagnosis (${a.diagnosis.category??"unknown"}, ${a.diagnosis.confidence??"?"}): ${a.diagnosis.summary}`:null,i=[`🔍 Investigation: ${t}`,o||null,"",...a.sampleError?["Error:",Ke(a.sampleError),""]:[],...s?[s,""]:[],a.clusterUrl?`Cluster: ${a.clusterUrl}`:null].filter(C=>C!==null).join(`
1
+ import{b as se,B as V,C as be,al as ke,r as h,h as Q,am as Ce,J as qe,d as re,o as p,f as H,g as D,j as g,_ as le,m as k,i as l,q as T,l as _e,k as e,E as We,c as $,v as we,t as j,F as K,y as ie,p as Z,x as Ve,G as Je}from"./BrT_Sys2.js";import{_ as Ye}from"./B6hPf4UR.js";import{_ as Ge}from"./BE8ykmwr.js";import{c as Xe,m as Ke,i as Qe,e as Ze,h as et,f as tt,g as st,j as nt}from"./BcLXUmKT.js";import{u as ot}from"./DtXREpk_.js";import{_ as at}from"./Dz3Wbekz.js";import{f as $e,w as it,k as rt}from"./D7P0ML0H.js";import{_ as lt}from"./BU6xjw05.js";import{u as ct}from"./cBj9fai9.js";const ut=globalThis.setInterval,ce=Symbol("cluster-diagnosis");function dt(v){const a=se(),u=h(""),d=h(""),x=h([]),y=h([]),I=Q(()=>!!d.value),O=h(null),R=h([]),U=h(0),P=h(0),M=h(null),f=h(null),r=h(!1),t=h(null),o=h(!1);let s=null,i=null,m=!0;function S(){const c={};return u.value.trim()&&(c.baseCommit=u.value.trim()),x.value.length&&(c.selectedCommitShas=x.value),c}async function C(){r.value=!0;try{const c=await $fetch(`/api/failure-clusters/${v}/context`,{query:{...S(),format:"json"}});O.value=c.text,R.value=c.sections,U.value=c.tokenEstimate,P.value=c.imageTokenEstimate??0,M.value=c.coverage,f.value=c.scmChanges??null}catch{O.value="(failed to load context)",R.value=[],U.value=0,P.value=0,M.value=null,f.value=null}finally{r.value=!1}}async function A(c){try{await $fetch(`/api/failure-clusters/${v}/base-commit`,{method:"PATCH",body:{commit:c||null}}),d.value=c}catch{}}function z(){s&&(clearInterval(s),s=null)}function w(){if(s)return;let c=0;s=ut(async()=>{c+=3e3,await W(),(!t.value||t.value.status!=="running"||c>=12e4)&&z()},3e3)}async function W(){try{const c=await $fetch(`/api/failure-clusters/${v}/diagnosis`);t.value=c.diagnosis}catch{}}async function J(c={}){o.value=!0;try{const E=c.force?`/api/failure-clusters/${v}/diagnose?force=true`:`/api/failure-clusters/${v}/diagnose`,F={};c.additionalContext&&(F.additionalContext=c.additionalContext),u.value.trim()&&(F.baseCommit=u.value.trim()),x.value.length&&(F.selectedCommitShas=x.value),c.images?.length&&(F.images=c.images),t.value=await $fetch(E,{method:"POST",body:Object.keys(F).length?F:void 0}),t.value?.status==="running"&&w()}catch(E){E?.statusCode===409?w():a.add({title:"Diagnosis failed",description:String(E?.message??E),color:"error"})}finally{o.value=!1}}return V(u,c=>{m||(i&&clearTimeout(i),i=setTimeout(()=>C(),900),c!==d.value&&A(c))}),V(x,()=>{m||C()},{deep:!0}),V(t,c=>{c?.status==="running"?w():z()}),be(async()=>{try{const c=await $fetch(`/api/failure-clusters/${v}/diagnosis`);t.value=c.diagnosis,c.manualBaseCommit&&(d.value=c.manualBaseCommit,u.value=c.manualBaseCommit);const E=c.diagnosis?.details;E?.selectedCommitShas&&Array.isArray(E.selectedCommitShas)&&(x.value=E.selectedCommitShas),E?.autoSelectedCommits&&Array.isArray(E.autoSelectedCommits)&&(y.value=E.autoSelectedCommits)}catch{}m=!1,C(),t.value?.status==="running"&&w()}),ke(()=>{z(),i&&clearTimeout(i)}),{clusterId:v,baseCommit:u,savedBaseCommit:d,selectedCommitShas:x,autoSelectedCommits:y,baseCommitIsPinned:I,contextText:O,contextSections:R,tokenEstimate:U,imageTokenEstimate:P,coverage:M,scmChanges:f,contextLoading:r,refreshContext:C,diagnosis:t,posting:o,runDiagnosis:J}}function ft(v){const a=dt(v);return qe(ce,a),a}function Os(){const v=Ce(ce);if(!v)throw new Error("useClusterDiagnosis() must be used under a page that called provideClusterDiagnosis()");return v}function pt(v){const a=Ce(ce,null);if(a)return a;if(v==null)throw new Error("useOrProvideClusterDiagnosis() requires a clusterId when used outside provideClusterDiagnosis()");return ft(v)}const mt={class:"w-56 p-1 space-y-0.5"},gt=re({__name:"DiagnosisExportMenu",props:{contextText:{},diagnosis:{},screenshots:{},clusterSignature:{},clusterUrl:{},clusterOccurrences:{},clusterErrorType:{},sampleError:{}},setup(v){const a=v,{copy:u}=ot(),{copyRich:d}=Xe(),x=h(!1);function y(){const t=[];return a.clusterErrorType&&t.push(a.clusterErrorType),a.clusterOccurrences&&t.push(`${a.clusterOccurrences} occurrence${a.clusterOccurrences===1?"":"s"}`),t.join(" · ")}function I(){const t=a.clusterSignature??"Failure cluster",o=y(),s=a.diagnosis?.status==="completed"&&a.diagnosis.summary?`AI diagnosis (${a.diagnosis.category??"unknown"}, ${a.diagnosis.confidence??"?"}): ${a.diagnosis.summary}`:null,i=[`🔍 Investigation: ${t}`,o||null,"",...a.sampleError?["Error:",Ke(a.sampleError),""]:[],...s?[s,""]:[],a.clusterUrl?`Cluster: ${a.clusterUrl}`:null].filter(C=>C!==null).join(`
2
2
  `),m=C=>C.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),S=[`<p><strong>🔍 Investigation: <code>${m(t)}</code></strong></p>`,o?`<p><em>${m(o)}</em></p>`:"",a.sampleError?`<p><strong>Error:</strong></p><pre>${m(a.sampleError)}</pre>`:"",s?`<p><strong>AI diagnosis</strong> (${m(a.diagnosis?.category??"")}, ${m(a.diagnosis?.confidence??"")}):<br>${m(a.diagnosis.summary)}</p>`:"",a.clusterUrl?`<p>🔗 <a href="${a.clusterUrl}">View cluster</a></p>`:""].join("");d(i,S,{toast:"Investigation summary copied"}),x.value=!1}function O(){if(!a.contextText)return;const o=(a.screenshots?.length?`## Screenshots
3
3
 
4
4
  ${a.screenshots.map(s=>`![${s.name}](data:${s.mediaType};base64,${s.data})`).join(`
@@ -1 +1 @@
1
- import{d as p,aZ as f,f as r,g as n,K as g,o as s,k as o,c as m,i as t,m as a,_,q as h}from"./B8fs6GU9.js";import{_ as x}from"./BBJ9Pu3M.js";import"./wCQds5_f.js";import"./3SnTawZW.js";import"./DWzdeQ3Z.js";import"./B32ySRXg.js";const b={key:0,class:"flex max-sm:flex-col justify-between items-start gap-4"},k={key:1,class:"text-sm text-muted"},N=p({__name:"index",setup(v){const i=g().public.demoMode,{isResetting:d,resetDemo:c}=f();return(C,e)=>{const l=_,u=x;return s(),r(u,{icon:"i-lucide-settings",title:"General settings",help:"settings.general"},{actions:n(()=>[o(i)?(s(),r(l,{key:0,color:"error",variant:"soft",icon:"i-lucide-refresh-cw",loading:o(d),onClick:o(c)},{default:n(()=>[...e[0]||(e[0]=[a(" Reset demo ",-1)])]),_:1},8,["loading","onClick"])):h("",!0)]),default:n(()=>[o(i)?(s(),m("div",b,[...e[1]||(e[1]=[t("div",null,[t("p",{class:"font-medium text-sm"},"Reset demo data"),t("p",{class:"text-sm text-muted"}," Wipe the in-browser database and reload with fresh sample data dated to the current moment. All changes made during this demo session will be lost. ")],-1)])])):(s(),m("div",k,[...e[2]||(e[2]=[t("p",null," Appearance and theme are in the top bar. Use the sidebar to manage your account, users, AI diagnosis, notifications, storage, and tags. ",-1),t("p",{class:"mt-2"},[a(" Settings that can be overridden by "),t("code",{class:"font-mono text-xs"},"PIWI_*"),a(" environment variables show a lock badge with the variable name — hover the help icon on any card to see which env var backs a setting. ")],-1)])]))]),_:1})}}});export{N as default};
1
+ import{d as p,aZ as f,f as r,g as n,K as g,o as s,k as o,c as m,i as t,m as a,_,q as h}from"./BrT_Sys2.js";import{_ as x}from"./CHIbdzqp.js";import"./B6hPf4UR.js";import"./r3SBLxtE.js";import"./DtXREpk_.js";import"./CoKEjZX7.js";const b={key:0,class:"flex max-sm:flex-col justify-between items-start gap-4"},k={key:1,class:"text-sm text-muted"},N=p({__name:"index",setup(v){const i=g().public.demoMode,{isResetting:d,resetDemo:c}=f();return(C,e)=>{const l=_,u=x;return s(),r(u,{icon:"i-lucide-settings",title:"General settings",help:"settings.general"},{actions:n(()=>[o(i)?(s(),r(l,{key:0,color:"error",variant:"soft",icon:"i-lucide-refresh-cw",loading:o(d),onClick:o(c)},{default:n(()=>[...e[0]||(e[0]=[a(" Reset demo ",-1)])]),_:1},8,["loading","onClick"])):h("",!0)]),default:n(()=>[o(i)?(s(),m("div",b,[...e[1]||(e[1]=[t("div",null,[t("p",{class:"font-medium text-sm"},"Reset demo data"),t("p",{class:"text-sm text-muted"}," Wipe the in-browser database and reload with fresh sample data dated to the current moment. All changes made during this demo session will be lost. ")],-1)])])):(s(),m("div",k,[...e[2]||(e[2]=[t("p",null," Appearance and theme are in the top bar. Use the sidebar to manage your account, users, AI diagnosis, notifications, storage, and tags. ",-1),t("p",{class:"mt-2"},[a(" Settings that can be overridden by "),t("code",{class:"font-mono text-xs"},"PIWI_*"),a(" environment variables show a lock badge with the variable name — hover the help icon on any card to see which env var backs a setting. ")],-1)])]))]),_:1})}}});export{N as default};
@@ -1 +1 @@
1
- import{d as g,o as s,c as a,F as l,y as o,f as p,x as f,p as b,k as y,O as k,h as _}from"./B8fs6GU9.js";const x=g({__name:"MiniRunBars",props:{runs:{},height:{default:28},maxBars:{default:20}},setup(n){const i=n;function u(t){return["running","initialising","finalizing"].includes(t.status)?"bg-blue-400 dark:bg-blue-500":t.flakyTests>0&&t.status==="passed"?"bg-amber-400 dark:bg-amber-400":t.status==="passed"?"bg-green-500":["failed","timedout","interrupted"].includes(t.status)?"bg-red-500":"bg-gray-300 dark:bg-gray-600"}function c(t){const r=[`Run #${t.id}`,`Status: ${t.status}`,`${t.passedTests}/${t.totalTests} passed`];return t.flakyTests>0&&r.push(`${t.flakyTests} flaky`),r.join(" · ")}const d=_(()=>Math.max(0,i.maxBars-i.runs.length));return(t,r)=>{const m=f;return s(),a("div",{class:"flex items-stretch gap-px",style:k({height:`${n.height}px`})},[(s(!0),a(l,null,o(n.runs,e=>(s(),p(m,{key:e.id,to:`/test-runs/${e.id}`,title:c(e),class:b(["flex-1 rounded-sm transition-opacity hover:opacity-70 min-w-0",u(e)])},null,8,["to","title","class"]))),128)),(s(!0),a(l,null,o(y(d),e=>(s(),a("div",{key:`empty-${e}`,class:"flex-1 rounded-sm bg-gray-100 dark:bg-gray-800 min-w-0"}))),128))],4)}}}),$=Object.assign(x,{__name:"MiniRunBars"});export{$ as _};
1
+ import{d as g,o as s,c as a,F as l,y as o,f as p,x as f,p as b,k as y,O as k,h as _}from"./BrT_Sys2.js";const x=g({__name:"MiniRunBars",props:{runs:{},height:{default:28},maxBars:{default:20}},setup(n){const i=n;function u(t){return["running","initialising","finalizing"].includes(t.status)?"bg-blue-400 dark:bg-blue-500":t.flakyTests>0&&t.status==="passed"?"bg-amber-400 dark:bg-amber-400":t.status==="passed"?"bg-green-500":["failed","timedout","interrupted"].includes(t.status)?"bg-red-500":"bg-gray-300 dark:bg-gray-600"}function c(t){const r=[`Run #${t.id}`,`Status: ${t.status}`,`${t.passedTests}/${t.totalTests} passed`];return t.flakyTests>0&&r.push(`${t.flakyTests} flaky`),r.join(" · ")}const d=_(()=>Math.max(0,i.maxBars-i.runs.length));return(t,r)=>{const m=f;return s(),a("div",{class:"flex items-stretch gap-px",style:k({height:`${n.height}px`})},[(s(!0),a(l,null,o(n.runs,e=>(s(),p(m,{key:e.id,to:`/test-runs/${e.id}`,title:c(e),class:b(["flex-1 rounded-sm transition-opacity hover:opacity-70 min-w-0",u(e)])},null,8,["to","title","class"]))),128)),(s(!0),a(l,null,o(y(d),e=>(s(),a("div",{key:`empty-${e}`,class:"flex-1 rounded-sm bg-gray-100 dark:bg-gray-800 min-w-0"}))),128))],4)}}}),$=Object.assign(x,{__name:"MiniRunBars"});export{$ as _};
@@ -1,4 +1,4 @@
1
- import{r as Y,d as ne,o as i,c as r,k as t,i as d,T as he,j as k,v as se,_ as ge,h as $,O as ye,F as L,y as K,t as f,q as h,b as xe,m as w,p as V,B as ae,f as F,g as G,G as Me,am as Oe,l as ze,I as Le,s as Be,an as De}from"./B8fs6GU9.js";import{_ as pe}from"./wCQds5_f.js";import{_ as Fe}from"./CD-xwM9N.js";import{u as ve}from"./DWzdeQ3Z.js";import{_ as Pe}from"./n7Htv9PJ.js";import{_ as Ue}from"./2PU-adwy.js";import{H as D,j as je,t as He,b as Ge,a as Ve,d as Ke,_ as qe}from"./0KrkW531.js";import{_ as We}from"./CNzoIhwN.js";import{f as Xe}from"./CvCF77E-.js";function Ze(e,u=!1){const s=Y(u);try{const l=document.cookie.match(new RegExp(`(?:^|;\\s*)${e}=([^;]*)`));l&&(s.value=l[1]==="true")}catch{}function y(){document.cookie=`${e}=${s.value}; path=/; max-age=31536000; sameSite=lax`}function v(){s.value=!s.value,y()}function g(l){s.value=l,y()}return{folded:s,toggle:v,setFolded:g}}function Ye(e){return Ze(`piwi-summary-fold-${e}`,!1)}const Je={class:"flex items-center gap-3"},Qe={class:"ml-auto shrink-0"},et={key:1,class:"relative"},tt={class:"absolute top-1 right-1 z-10"},nt=ne({__name:"FoldableSummary",props:{storageKey:{}},setup(e){const u=e,{folded:s,toggle:y}=Ye(u.storageKey);return(v,g)=>{const l=se,a=ge;return i(),r("div",null,[t(s)?(i(),r("div",{key:0,class:"border border-gray-200 dark:border-gray-800 rounded-xl p-2.5 shadow-xs cursor-pointer select-none",onClick:g[0]||(g[0]=(...x)=>t(y)&&t(y)(...x))},[d("div",Je,[he(v.$slots,"folded"),d("div",Qe,[k(l,{name:"i-lucide-chevron-down",class:"size-4 text-gray-400"})])])])):(i(),r("div",et,[d("div",tt,[k(a,{icon:"i-lucide-chevron-up",size:"xs",color:"neutral",variant:"ghost",onClick:t(y),title:"Collapse summary"},null,8,["onClick"])]),he(v.$slots,"default")]))])}}}),ls=Object.assign(nt,{__name:"FoldableSummary"});function cs(e){const u=$(e),s=$(()=>{const v=u.value;return v===0||v>=5?"lg:col-span-12":v===4?"lg:col-span-4":v===1?"lg:col-span-9":"lg:col-span-6"}),y=$(()=>{const v=u.value;return v===0?"":v===3||v===4?"lg:col-span-2":"lg:col-span-3"});return{metadataBlockCount:u,summaryColSpanClass:s,blockColSpanClass:y}}const st=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp"]),it=new Set(["image/png","image/jpeg","image/gif","image/svg+xml","image/webp"]),ot=new Set([".webm",".mp4",".ogg",".mov"]),at=new Set(["video/webm","video/mp4","video/ogg","video/quicktime"]);function ds(e,u){const s="."+(e.toLowerCase().split(".").pop()||"");return!!(st.has(s)||u&&it.has(u.toLowerCase()))}function us(e,u){const s="."+(e.toLowerCase().split(".").pop()||"");return!!(ot.has(s)||u&&at.has(u.toLowerCase()))}function gs(e){return e.replace(/\x1b\[[0-9;]*[a-zA-Z]/g,"")}function rt(e){const u=e.regex,s=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),y=["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"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:y,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"]},x={className:"meta",begin:/^(>>>|\.\.\.) /},p={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},E={begin:/\{\{/,relevance:0},S={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,x],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,x],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,x,E,p]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,x,E,p]},{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:[e.BACKSLASH_ESCAPE,E,p]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,E,p]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},A="[0-9](_?[0-9])*",U=`(\\b(${A}))?\\.(${A})|\\b(${A})\\.`,N=`\\b|${y.join("|")}`,q={className:"number",relevance:0,variants:[{begin:`(\\b(${A})|(${U}))[eE][+-]?(${A})[jJ]?(?=${N})`},{begin:`(${U})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${N})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${N})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${N})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${N})`},{begin:`\\b(${A})[jJ](?=${N})`}]},b={className:"comment",begin:u.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",x,q,S,e.HASH_COMMENT_MODE]}]};return p.contains=[S,q,x],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[x,q,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},S,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,s],scope:{1:"keyword",3:"title.function"},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,s,/\s*/,/\(\s*/,s,/\s*\)/]},{match:[/\bclass/,/\s+/,s]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[q,m,S]}]}}const lt=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.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:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.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_-]*/}}),ct=["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"],dt=["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"],ut=[...ct,...dt],gt=["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(),pt=["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(),ft=["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 bt(e){const u=e.regex,s=lt(e),y={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},v="and or not only",g=/@-?\w[\w]*(-\w+)*/,l="[a-zA-Z-][a-zA-Z0-9_-]*",a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[s.BLOCK_COMMENT,y,s.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+l,relevance:0},s.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+pt.join("|")+")"},{begin:":(:)?("+mt.join("|")+")"}]},s.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ft.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[s.BLOCK_COMMENT,s.HEXCOLOR,s.IMPORTANT,s.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},s.FUNCTION_DISPATCH]},{begin:u.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:g},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:v,attribute:gt.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,s.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+ut.join("|")+")\\b"}]}}function ht(e){const u=e.regex,s=u.concat(/[\p{L}_]/u,u.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),y=/[\p{L}0-9._:-]+/u,v={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},g={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},l=e.inherit(g,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),x=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),p={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:y,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[v]},{begin:/'/,end:/'/,contains:[v]},{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:[g,x,a,l,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[g,l,x,a]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},v,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[x]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[p],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[p],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:u.concat(/</,u.lookahead(u.concat(s,u.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:s,relevance:0,starts:p}]},{className:"tag",begin:u.concat(/<\//,u.lookahead(u.concat(s,/>/))),contains:[{className:"name",begin:s,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}const yt={class:"rounded-lg border border-default overflow-hidden bg-muted min-h-16"},xt={key:0,class:"flex items-center gap-2 p-4 text-sm text-gray-500"},vt={key:0,class:"text-sm font-bold text-gray-900 dark:text-white mt-4 mb-0.5 first:mt-0"},kt={key:1,class:"font-semibold text-gray-700 dark:text-gray-200 mt-2 mb-0.5"},_t={key:2,class:"my-1 px-2 py-0.5 rounded bg-yellow-50 dark:bg-yellow-900/20 text-yellow-800 dark:text-yellow-300 italic"},wt={key:3,class:"text-gray-600 dark:text-gray-400 flex gap-1.5"},St={key:4,class:"text-gray-600 dark:text-gray-400"},Et={key:5,class:"h-2"},Ct={key:6,class:"mt-2 px-2 py-0.5 bg-gray-200 dark:bg-gray-700 text-gray-500 dark:text-gray-400 rounded-t text-[10px] uppercase tracking-wide"},$t={key:7,class:"overflow-x-auto bg-gray-50 dark:bg-gray-900/40"},At=["innerHTML"],Tt={key:8,class:"h-1 bg-gray-100 dark:bg-gray-800/50 rounded-b mb-2"},Nt={key:2,class:"p-3 text-xs text-gray-400 italic"},Rt=ne({__name:"MarkdownPreview",props:{text:{},loading:{type:Boolean},maxHeight:{}},setup(e){D.registerLanguage("javascript",je),D.registerLanguage("typescript",He),D.registerLanguage("python",rt),D.registerLanguage("bash",Ge),D.registerLanguage("json",Ve),D.registerLanguage("css",bt),D.registerLanguage("xml",ht),D.registerLanguage("diff",Ke);const u=e;function s(v){const g=[];let l=!1,a="",x=[];for(const p of v.split(`
1
+ import{r as Y,d as ne,o as i,c as r,k as t,i as d,T as he,j as k,v as se,_ as ge,h as $,O as ye,F as L,y as K,t as f,q as h,b as xe,m as w,p as V,B as ae,f as F,g as G,G as Me,am as Oe,l as ze,I as Le,s as Be,an as De}from"./BrT_Sys2.js";import{_ as pe}from"./B6hPf4UR.js";import{_ as Fe}from"./BciovqwK.js";import{u as ve}from"./DtXREpk_.js";import{_ as Pe}from"./BU6xjw05.js";import{_ as Ue}from"./Bq0PQfQY.js";import{H as D,j as je,t as He,b as Ge,a as Ve,d as Ke,_ as qe}from"./DpJrGwCr.js";import{_ as We}from"./Dz3Wbekz.js";import{f as Xe}from"./D7P0ML0H.js";function Ze(e,u=!1){const s=Y(u);try{const l=document.cookie.match(new RegExp(`(?:^|;\\s*)${e}=([^;]*)`));l&&(s.value=l[1]==="true")}catch{}function y(){document.cookie=`${e}=${s.value}; path=/; max-age=31536000; sameSite=lax`}function v(){s.value=!s.value,y()}function g(l){s.value=l,y()}return{folded:s,toggle:v,setFolded:g}}function Ye(e){return Ze(`piwi-summary-fold-${e}`,!1)}const Je={class:"flex items-center gap-3"},Qe={class:"ml-auto shrink-0"},et={key:1,class:"relative"},tt={class:"absolute top-1 right-1 z-10"},nt=ne({__name:"FoldableSummary",props:{storageKey:{}},setup(e){const u=e,{folded:s,toggle:y}=Ye(u.storageKey);return(v,g)=>{const l=se,a=ge;return i(),r("div",null,[t(s)?(i(),r("div",{key:0,class:"border border-gray-200 dark:border-gray-800 rounded-xl p-2.5 shadow-xs cursor-pointer select-none",onClick:g[0]||(g[0]=(...x)=>t(y)&&t(y)(...x))},[d("div",Je,[he(v.$slots,"folded"),d("div",Qe,[k(l,{name:"i-lucide-chevron-down",class:"size-4 text-gray-400"})])])])):(i(),r("div",et,[d("div",tt,[k(a,{icon:"i-lucide-chevron-up",size:"xs",color:"neutral",variant:"ghost",onClick:t(y),title:"Collapse summary"},null,8,["onClick"])]),he(v.$slots,"default")]))])}}}),ls=Object.assign(nt,{__name:"FoldableSummary"});function cs(e){const u=$(e),s=$(()=>{const v=u.value;return v===0||v>=5?"lg:col-span-12":v===4?"lg:col-span-4":v===1?"lg:col-span-9":"lg:col-span-6"}),y=$(()=>{const v=u.value;return v===0?"":v===3||v===4?"lg:col-span-2":"lg:col-span-3"});return{metadataBlockCount:u,summaryColSpanClass:s,blockColSpanClass:y}}const st=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp"]),it=new Set(["image/png","image/jpeg","image/gif","image/svg+xml","image/webp"]),ot=new Set([".webm",".mp4",".ogg",".mov"]),at=new Set(["video/webm","video/mp4","video/ogg","video/quicktime"]);function ds(e,u){const s="."+(e.toLowerCase().split(".").pop()||"");return!!(st.has(s)||u&&it.has(u.toLowerCase()))}function us(e,u){const s="."+(e.toLowerCase().split(".").pop()||"");return!!(ot.has(s)||u&&at.has(u.toLowerCase()))}function gs(e){return e.replace(/\x1b\[[0-9;]*[a-zA-Z]/g,"")}function rt(e){const u=e.regex,s=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),y=["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"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:y,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"]},x={className:"meta",begin:/^(>>>|\.\.\.) /},p={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},E={begin:/\{\{/,relevance:0},S={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,x],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,x],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,x,E,p]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,x,E,p]},{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:[e.BACKSLASH_ESCAPE,E,p]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,E,p]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},A="[0-9](_?[0-9])*",U=`(\\b(${A}))?\\.(${A})|\\b(${A})\\.`,N=`\\b|${y.join("|")}`,q={className:"number",relevance:0,variants:[{begin:`(\\b(${A})|(${U}))[eE][+-]?(${A})[jJ]?(?=${N})`},{begin:`(${U})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${N})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${N})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${N})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${N})`},{begin:`\\b(${A})[jJ](?=${N})`}]},b={className:"comment",begin:u.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",x,q,S,e.HASH_COMMENT_MODE]}]};return p.contains=[S,q,x],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[x,q,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},S,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,s],scope:{1:"keyword",3:"title.function"},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,s,/\s*/,/\(\s*/,s,/\s*\)/]},{match:[/\bclass/,/\s+/,s]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[q,m,S]}]}}const lt=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.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:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.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_-]*/}}),ct=["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"],dt=["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"],ut=[...ct,...dt],gt=["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(),pt=["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(),ft=["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 bt(e){const u=e.regex,s=lt(e),y={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},v="and or not only",g=/@-?\w[\w]*(-\w+)*/,l="[a-zA-Z-][a-zA-Z0-9_-]*",a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[s.BLOCK_COMMENT,y,s.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+l,relevance:0},s.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+pt.join("|")+")"},{begin:":(:)?("+mt.join("|")+")"}]},s.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ft.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[s.BLOCK_COMMENT,s.HEXCOLOR,s.IMPORTANT,s.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},s.FUNCTION_DISPATCH]},{begin:u.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:g},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:v,attribute:gt.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,s.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+ut.join("|")+")\\b"}]}}function ht(e){const u=e.regex,s=u.concat(/[\p{L}_]/u,u.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),y=/[\p{L}0-9._:-]+/u,v={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},g={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},l=e.inherit(g,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),x=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),p={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:y,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[v]},{begin:/'/,end:/'/,contains:[v]},{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:[g,x,a,l,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[g,l,x,a]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},v,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[x]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[p],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[p],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:u.concat(/</,u.lookahead(u.concat(s,u.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:s,relevance:0,starts:p}]},{className:"tag",begin:u.concat(/<\//,u.lookahead(u.concat(s,/>/))),contains:[{className:"name",begin:s,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}const yt={class:"rounded-lg border border-default overflow-hidden bg-muted min-h-16"},xt={key:0,class:"flex items-center gap-2 p-4 text-sm text-gray-500"},vt={key:0,class:"text-sm font-bold text-gray-900 dark:text-white mt-4 mb-0.5 first:mt-0"},kt={key:1,class:"font-semibold text-gray-700 dark:text-gray-200 mt-2 mb-0.5"},_t={key:2,class:"my-1 px-2 py-0.5 rounded bg-yellow-50 dark:bg-yellow-900/20 text-yellow-800 dark:text-yellow-300 italic"},wt={key:3,class:"text-gray-600 dark:text-gray-400 flex gap-1.5"},St={key:4,class:"text-gray-600 dark:text-gray-400"},Et={key:5,class:"h-2"},Ct={key:6,class:"mt-2 px-2 py-0.5 bg-gray-200 dark:bg-gray-700 text-gray-500 dark:text-gray-400 rounded-t text-[10px] uppercase tracking-wide"},$t={key:7,class:"overflow-x-auto bg-gray-50 dark:bg-gray-900/40"},At=["innerHTML"],Tt={key:8,class:"h-1 bg-gray-100 dark:bg-gray-800/50 rounded-b mb-2"},Nt={key:2,class:"p-3 text-xs text-gray-400 italic"},Rt=ne({__name:"MarkdownPreview",props:{text:{},loading:{type:Boolean},maxHeight:{}},setup(e){D.registerLanguage("javascript",je),D.registerLanguage("typescript",He),D.registerLanguage("python",rt),D.registerLanguage("bash",Ge),D.registerLanguage("json",Ve),D.registerLanguage("css",bt),D.registerLanguage("xml",ht),D.registerLanguage("diff",Ke);const u=e;function s(v){const g=[];let l=!1,a="",x=[];for(const p of v.split(`
2
2
  `))if(!l)p.startsWith("```")?(l=!0,a=p.slice(3).trim(),x=[]):p.startsWith("## ")?g.push({kind:"h2",text:p.slice(3)}):p.startsWith("### ")?g.push({kind:"h3",text:p.slice(4)}):p.startsWith("> ")?g.push({kind:"note",text:p.slice(2)}):p.startsWith("- ")?g.push({kind:"bullet",text:p.slice(2)}):p.trim()===""?g.push({kind:"blank"}):g.push({kind:"text",text:p});else if(p==="```"){const E=x.join(`
3
3
  `);if(x.length){const{value:S}=a&&D.getLanguage(a)?D.highlight(E,{language:a}):D.highlightAuto(E);g.push({kind:"code-start",lang:a||"code"}),g.push({kind:"code-block",html:S}),g.push({kind:"code-end"})}l=!1}else x.push(p);if(l&&x.length){const p=x.join(`
4
4
  `),{value:E}=a&&D.getLanguage(a)?D.highlight(p,{language:a}):D.highlightAuto(p);g.push({kind:"code-start",lang:a||"code"}),g.push({kind:"code-block",html:E}),g.push({kind:"code-end"})}return g}const y=$(()=>u.text?s(u.text):[]);return(v,g)=>{const l=se;return i(),r("div",yt,[e.loading?(i(),r("div",xt,[k(l,{name:"i-lucide-loader-2",class:"size-4 animate-spin"}),g[0]||(g[0]=d("span",null,"Fetching context… (includes SCM diff lookup)",-1))])):t(y).length?(i(),r("div",{key:1,class:"overflow-auto p-3 text-xs font-mono leading-relaxed",style:ye({maxHeight:e.maxHeight??"45vh"})},[(i(!0),r(L,null,K(t(y),(a,x)=>(i(),r(L,{key:x},[a.kind==="h2"?(i(),r("div",vt,f(a.text),1)):a.kind==="h3"?(i(),r("div",kt,f(a.text),1)):a.kind==="note"?(i(),r("div",_t,f(a.text),1)):a.kind==="bullet"?(i(),r("div",wt,[g[1]||(g[1]=d("span",{class:"text-gray-400 shrink-0"},"·",-1)),d("span",null,f(a.text),1)])):a.kind==="text"?(i(),r("div",St,f(a.text),1)):a.kind==="blank"?(i(),r("div",Et)):a.kind==="code-start"?(i(),r("div",Ct,f(a.lang||"code"),1)):a.kind==="code-block"?(i(),r("div",$t,[d("pre",{class:"hljs px-2 py-1 !bg-transparent whitespace-pre-wrap",innerHTML:a.html},null,8,At)])):a.kind==="code-end"?(i(),r("div",Tt)):h("",!0)],64))),128))],4)):(i(),r("div",Nt,"No context loaded"))])}}}),ke=Object.assign(Rt,{__name:"MarkdownPreview"}),It=new RegExp("\\u001B\\[[0-9;]*m","g");function ps(e){return e.replace(It,"")}function ms(e,u){const s=e.search(/\n at /);if(s===-1)return u!==void 0&&e.length>u?e.slice(0,u)+`
@@ -6,7 +6,7 @@ import{r as Y,d as ne,o as i,c as r,k as t,i as d,T as he,j as k,v as se,_ as ge
6
6
  `),l=[];let a=0;const x=()=>{a>0&&(l.push(`… (${a} internal frame${a>1?"s":""})`),a=0)};for(const E of g){const S=E.trimStart();S.startsWith("at ")?E.includes("node_modules")||S.startsWith("at node:")?a++:(x(),l.push(E)):(S===""||x(),l.push(E))}x();let p=y+`
7
7
  `+l.join(`
8
8
  `);return u!==void 0&&p.length>u&&(p=p.slice(0,u)+`
9
- [truncated]`),p}function fs(e={}){const u=Y(!1),s=xe();let y=null;async function v(g,l,a={}){try{typeof ClipboardItem<"u"?await navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([g],{type:"text/plain"}),"text/html":new Blob([l],{type:"text/html"})})]):await navigator.clipboard.writeText(g),u.value=!0,y&&clearTimeout(y),y=setTimeout(()=>{u.value=!1,y=null},e.duration??2e3),a.toast&&s.add({title:typeof a.toast=="string"?a.toast:"Copied to clipboard",icon:"i-lucide-check",color:"success",duration:2e3})}catch{}}return{copyRich:v,copied:u}}const re=[{id:"clusterSummary",label:"Failure cluster summary",short:"Cluster"},{id:"sampleError",label:"Raw error message",short:"Error"},{id:"representativeExecution",label:"Representative execution overview",short:"Execution"},{id:"executionError",label:"Representative execution error",short:"Error"},{id:"runContext",label:"Run context (partial run, parallelism, flaky class)",short:"Run context"},{id:"testAnnotations",label:"Test annotations (@fixme/@flaky …)",short:"Annotations"},{id:"affectedTests",label:"Affected tests",short:"Tests"},{id:"testSource",label:"Test source code",short:"Source"},{id:"sourceFiles",label:"Full source files (suspect + imports)",short:"Files"},{id:"steps",label:"Test steps",short:"Steps"},{id:"failingSteps",label:"Failing steps",short:"Steps"},{id:"console",label:"Browser console logs",short:"Console"},{id:"networkRequests",label:"Network requests",short:"Network"},{id:"serverLogs",label:"Backend server logs",short:"Server logs"},{id:"webVitals",label:"Web vitals",short:"Web vitals"},{id:"appState",label:"App state at test end (URL/storage/cookies)",short:"App state"},{id:"ariaSnapshot",label:"ARIA snapshot",short:"ARIA"},{id:"domSnapshot",label:"DOM snapshot from trace (failure time)",short:"DOM"},{id:"screenshots",label:"Screenshots (attached as images)",short:"Screenshots"},{id:"visualDiff",label:"Visual diff vs last passing screenshot",short:"Visual diff"},{id:"browserDistribution",label:"Browser distribution",short:"Browsers"},{id:"recurrenceFlakiness",label:"Recurrence & flakiness",short:"Flakiness"},{id:"baselineComparison",label:"Compared to last pass (duration/vitals/steps)",short:"Baseline"},{id:"environmentDiff",label:"Environment diff vs last pass",short:"Env diff"},{id:"retryProgression",label:"Retry progression (per-attempt errors)",short:"Retries"},{id:"passedPeers",label:"Passing peers in same file",short:"Peers"},{id:"scmInvestigation",label:"SCM diff since last green",short:"SCM diff"},{id:"selectedCommits",label:"Manually selected commits",short:"Commits"},{id:"priorDiagnosis",label:"Prior diagnosis & triage",short:"Prior"},{id:"tracePointers",label:"Trace files",short:"Traces"},{id:"artifacts",label:"Attachments & artifacts (video, HAR)",short:"Artifacts"},{id:"nearestAriaNames",label:"Nearest matching ARIA names from snapshot",short:"Nearest ARIA"},{id:"alreadyGreen",label:"Baseline freshness / already-green check",short:"Already green"},{id:"topSuspectedCommit",label:"Top suspected commit",short:"Top commit"},{id:"failingAction",label:"Failing action from trace parsing",short:"Trace"},{id:"traceCallStack",label:"Full call stack with source (from trace)",short:"Call stack"},{id:"traceNetwork",label:"Network activity from trace (all requests)",short:"Trace net"},{id:"locatorHealing",label:"Alternative locators from prior success",short:"Alt locators"}],_e=new Set(re.map(e=>e.id)),we=Object.fromEntries(re.map(e=>[e.id,e.short]));function Mt(e){return _e.has(e)}function bs(e){const u=new Set;for(const s of e)if(s)for(const y of String(s).matchAll(/\[([a-zA-Z][a-zA-Z0-9]*)]/g))_e.has(y[1])&&u.add(y[1]);return[...u]}const Ot={class:"rounded-lg border border-default bg-elevated/30 px-2.5 py-2"},zt={key:0,class:"flex items-center gap-2 text-xs text-gray-400"},Lt={key:1,class:"flex flex-wrap items-center gap-1.5"},Bt={class:"text-xs font-medium text-gray-500 inline-flex items-center gap-1"},Dt=["title","onClick"],Ft={key:0,class:"text-xs text-gray-400"},Pt=ne({__name:"DiagnosisCoverageStrip",props:{sections:{},notApplicable:{},tokenEstimate:{},loading:{type:Boolean}},emits:["view-section","open"],setup(e,{emit:u}){const s=e,y=u,v=$(()=>s.sections.map(a=>({id:a.id,short:we[a.id]??a.title??a.id,truncated:a.truncated}))),g=$(()=>Math.max(0,re.length-s.sections.length)),l=$(()=>{const a=s.tokenEstimate;return a?a>=1e3?`${(a/1e3).toFixed(1)}k`:String(a):""});return(a,x)=>{const p=se,E=pe;return i(),r("div",Ot,[e.loading&&!e.sections.length?(i(),r("div",zt,[k(p,{name:"i-lucide-loader-circle",class:"size-3.5 animate-spin"}),x[1]||(x[1]=w(" Building context… ",-1))])):(i(),r("div",Lt,[d("span",Bt,[k(p,{name:"i-lucide-layers",class:"size-3.5"}),x[2]||(x[2]=w(" Context ",-1)),k(E,{topic:"cluster.coverage"})]),(i(!0),r(L,null,K(t(v),S=>(i(),r("button",{key:S.id,type:"button",class:"inline-flex items-center gap-1 rounded-full border border-default bg-default px-2 py-0.5 text-xs hover:border-primary/50 transition-colors",title:S.truncated?`${S.short} (truncated)`:S.short,onClick:A=>y("view-section",S.id)},[k(p,{name:S.truncated?"i-lucide-scissors":"i-lucide-check",class:V(["size-3",S.truncated?"text-warning":"text-success"])},null,8,["name","class"]),w(" "+f(S.short),1)],8,Dt))),128)),t(v).length?h("",!0):(i(),r("span",Ft,"No evidence sections yet")),d("button",{type:"button",class:"ml-auto text-xs text-gray-400 hover:text-primary transition-colors whitespace-nowrap",onClick:x[0]||(x[0]=S=>y("open"))},[t(g)?(i(),r(L,{key:0},[w(f(t(g))+" not included · ",1)],64)):h("",!0),t(l)?(i(),r(L,{key:1},[w("~"+f(t(l))+" tokens",1)],64)):h("",!0),k(p,{name:"i-lucide-arrow-right",class:"size-3 inline align-text-bottom"})])]))])}}}),hs=Object.assign(Pt,{__name:"DiagnosisCoverageStrip"}),Ut={class:"flex items-center justify-between w-full"},jt={class:"flex items-center gap-2"},Ht={class:"font-semibold inline-flex items-center gap-1"},Gt={class:"text-xs text-gray-400"},Vt={class:"flex items-center gap-1"},Kt={class:"rounded-lg border border-default bg-elevated/30 p-3 mb-4"},qt={class:"flex items-center justify-between gap-2 mb-2"},Wt={class:"text-xs font-medium text-gray-500 uppercase tracking-wide inline-flex items-center gap-1"},Xt={class:"text-xs text-gray-400"},Zt={class:"flex flex-wrap gap-1.5"},Yt=["title"],Jt={class:"text-xs text-gray-400 mt-2"},Qt={class:"space-y-4"},en={class:"text-xs font-medium text-gray-500 uppercase tracking-wide mb-2"},tn={class:"space-y-2"},nn=["data-section-id"],sn={key:0,class:"text-center text-gray-400 py-8 text-sm"},on=ne({__name:"DiagnosisContextModal",props:{open:{type:Boolean},sections:{},tokenEstimate:{},imageTokenEstimate:{},loading:{type:Boolean},focusSection:{},citedSections:{},notApplicableSections:{}},emits:["update:open","refresh"],setup(e,{emit:u}){const s=e,y=$(()=>{const b=new Map;for(const m of s.sections)b.has(m.id)||b.set(m.id,m);return b}),v=$(()=>new Set(Object.keys(s.notApplicableSections??{}))),g=$(()=>new Set(s.citedSections??[])),l=$(()=>re.map(b=>{if(v.value.has(b.id))return{id:b.id,short:b.short,label:b.label,state:"notApplicable",cited:g.value.has(b.id)};const m=y.value.get(b.id),I=m?m.truncated?"truncated":"present":"absent";return{id:b.id,short:b.short,label:b.label,state:I,cited:g.value.has(b.id)}})),a=$(()=>{const b={present:0,truncated:0,absent:0,notApplicable:0};for(const m of l.value)b[m.state]++;return b}),x={present:"bg-emerald-500",truncated:"bg-amber-500",absent:"bg-gray-300 dark:bg-gray-600",notApplicable:"bg-purple-400"};function p(b){if(b.state==="notApplicable"){const m=s.notApplicableSections?.[b.id];return`${b.label}: not applicable${m?` — ${m}`:""}`}return`${b.label}: ${b.state}${b.cited?" · cited by the diagnosis":""}`}const E=u,{copy:S,copied:A}=ve(),U=$(()=>{const b=[],m=["clusterSummary","sampleError","representativeExecution","executionError","runContext"],I=["testAnnotations","testSource","steps","failingSteps","console","networkRequests","serverLogs","webVitals","ariaSnapshot"],J=["recurrenceFlakiness","baselineComparison","retryProgression","passedPeers","browserDistribution","affectedTests"],R=["scmInvestigation","selectedCommits"],Q=["priorDiagnosis","tracePointers","artifacts"],W=(T,O)=>{const X=s.sections.filter(ie=>T.includes(ie.id));X.length>0&&b.push({label:O,items:X})};return W(m,"Primary"),W(I,"Test Evidence"),W(J,"Analysis"),W(R,"SCM"),W(Q,"Other"),b}),N=Y(null);ae(()=>[s.open,s.focusSection],async([b,m])=>{if(!b||!m)return;await Me();const I=document.querySelector(`[data-section-id="${m}"]`);I&&(I.scrollIntoView({behavior:"smooth",block:"start"}),N.value=m,setTimeout(()=>{N.value===m&&(N.value=null)},2500))});function q(b){let m=`## ${b.title}`;const I=[];return I.push(`${b.chars} chars`),b.truncated&&I.push("truncated"),b.items!=null&&I.push(`${b.items} items`),I.length&&(m+=` — ${I.join(", ")}`),m}return(b,m)=>{const I=pe,J=ge,R=se,Q=ke,W=Fe;return i(),F(W,{open:e.open,title:"Context sent to AI",ui:{content:"max-w-5xl"},"onUpdate:open":m[2]||(m[2]=T=>E("update:open",T))},{header:G(()=>[d("div",Ut,[d("div",jt,[d("span",Ht,[m[3]||(m[3]=w(" Context sent to AI ",-1)),k(I,{topic:"cluster.context-preview"})]),d("span",Gt,[w(" ~"+f(e.tokenEstimate)+" tokens",1),e.imageTokenEstimate?(i(),r(L,{key:0},[w(" ("+f(e.tokenEstimate-e.imageTokenEstimate)+" text + "+f(e.imageTokenEstimate)+" image)",1)],64)):h("",!0)])]),d("div",Vt,[k(J,{icon:"i-lucide-refresh-cw",size:"xs",color:"neutral",variant:"ghost",loading:e.loading,onClick:m[0]||(m[0]=T=>E("refresh"))},null,8,["loading"]),k(J,{icon:"i-lucide-x",size:"xs",color:"neutral",variant:"ghost",onClick:m[1]||(m[1]=T=>E("update:open",!1))})])])]),body:G(()=>[m[7]||(m[7]=d("p",{class:"text-xs text-gray-500 dark:text-gray-400 mb-3"},"Copy individual sections or the full context below.",-1)),d("div",Kt,[d("div",qt,[d("p",Wt,[m[4]||(m[4]=w(" Data coverage ",-1)),k(I,{topic:"cluster.coverage"})]),d("p",Xt,f(t(a).present)+" present · "+f(t(a).truncated)+" truncated · "+f(t(a).absent)+" absent"+f(t(a).notApplicable?` · ${t(a).notApplicable} n/a`:""),1)]),d("div",Zt,[(i(!0),r(L,null,K(t(l),T=>(i(),r("span",{key:T.id,class:V(["inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-xs",[T.cited?"border-primary text-primary":"border-default",T.state==="absent"?"text-gray-400 opacity-70":"",T.state==="notApplicable"?"text-purple-500 border-purple-300 dark:border-purple-700":""]]),title:p(T)},[d("span",{class:V(["size-1.5 rounded-full shrink-0",x[T.state]])},null,2),w(" "+f(T.short)+" ",1),T.cited?(i(),F(R,{key:0,name:"i-lucide-quote",class:"size-2.5 shrink-0"})):h("",!0)],10,Yt))),128))]),d("p",Jt,[m[5]||(m[5]=w(" Absent or truncated evidence lowers the diagnosis confidence. ",-1)),k(R,{name:"i-lucide-quote",class:"size-2.5 inline"}),m[6]||(m[6]=w(" marks sections the diagnosis cited. ",-1))])]),d("div",Qt,[(i(!0),r(L,null,K(t(U),T=>(i(),r("div",{key:T.label},[d("p",en,f(T.label),1),d("div",tn,[(i(!0),r(L,null,K(T.items,O=>(i(),r("div",{key:O.id,"data-section-id":O.id,class:V(["relative rounded-lg transition-shadow",t(N)===O.id?"ring-2 ring-primary":t(g).has(O.id)?"ring-1 ring-primary/40":""])},[k(Q,{text:q(O)+`
9
+ [truncated]`),p}function fs(e={}){const u=Y(!1),s=xe();let y=null;async function v(g,l,a={}){try{typeof ClipboardItem<"u"?await navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([g],{type:"text/plain"}),"text/html":new Blob([l],{type:"text/html"})})]):await navigator.clipboard.writeText(g),u.value=!0,y&&clearTimeout(y),y=setTimeout(()=>{u.value=!1,y=null},e.duration??2e3),a.toast&&s.add({title:typeof a.toast=="string"?a.toast:"Copied to clipboard",icon:"i-lucide-check",color:"success",duration:2e3})}catch{}}return{copyRich:v,copied:u}}const re=[{id:"clusterSummary",label:"Failure cluster summary",short:"Cluster"},{id:"sampleError",label:"Raw error message",short:"Error"},{id:"representativeExecution",label:"Representative execution overview",short:"Execution"},{id:"executionError",label:"Representative execution error",short:"Error"},{id:"runContext",label:"Run context (partial run, parallelism, flaky class)",short:"Run context"},{id:"testAnnotations",label:"Test annotations (@fixme/@flaky …)",short:"Annotations"},{id:"affectedTests",label:"Affected tests",short:"Tests"},{id:"testSource",label:"Test source code",short:"Source"},{id:"sourceFiles",label:"Full source files (suspect + imports)",short:"Files"},{id:"steps",label:"Test steps",short:"Steps"},{id:"failingSteps",label:"Failing steps",short:"Steps"},{id:"console",label:"Browser console logs",short:"Console"},{id:"networkRequests",label:"Network requests",short:"Network"},{id:"serverLogs",label:"Backend server logs",short:"Server logs"},{id:"serverTraces",label:"Server traces (spans)",short:"Traces"},{id:"webVitals",label:"Web vitals",short:"Web vitals"},{id:"appState",label:"App state at test end (URL/storage/cookies)",short:"App state"},{id:"ariaSnapshot",label:"ARIA snapshot",short:"ARIA"},{id:"domSnapshot",label:"DOM snapshot from trace (failure time)",short:"DOM"},{id:"screenshots",label:"Screenshots (attached as images)",short:"Screenshots"},{id:"visualDiff",label:"Visual diff vs last passing screenshot",short:"Visual diff"},{id:"browserDistribution",label:"Browser distribution",short:"Browsers"},{id:"recurrenceFlakiness",label:"Recurrence & flakiness",short:"Flakiness"},{id:"baselineComparison",label:"Compared to last pass (duration/vitals/steps)",short:"Baseline"},{id:"environmentDiff",label:"Environment diff vs last pass",short:"Env diff"},{id:"retryProgression",label:"Retry progression (per-attempt errors)",short:"Retries"},{id:"passedPeers",label:"Passing peers in same file",short:"Peers"},{id:"scmInvestigation",label:"SCM diff since last green",short:"SCM diff"},{id:"selectedCommits",label:"Manually selected commits",short:"Commits"},{id:"priorDiagnosis",label:"Prior diagnosis & triage",short:"Prior"},{id:"tracePointers",label:"Trace files",short:"Traces"},{id:"artifacts",label:"Attachments & artifacts (video, HAR)",short:"Artifacts"},{id:"nearestAriaNames",label:"Nearest matching ARIA names from snapshot",short:"Nearest ARIA"},{id:"alreadyGreen",label:"Baseline freshness / already-green check",short:"Already green"},{id:"topSuspectedCommit",label:"Top suspected commit",short:"Top commit"},{id:"failingAction",label:"Failing action from trace parsing",short:"Trace"},{id:"traceCallStack",label:"Full call stack with source (from trace)",short:"Call stack"},{id:"traceNetwork",label:"Network activity from trace (all requests)",short:"Trace net"},{id:"locatorHealing",label:"Alternative locators from prior success",short:"Alt locators"}],_e=new Set(re.map(e=>e.id)),we=Object.fromEntries(re.map(e=>[e.id,e.short]));function Mt(e){return _e.has(e)}function bs(e){const u=new Set;for(const s of e)if(s)for(const y of String(s).matchAll(/\[([a-zA-Z][a-zA-Z0-9]*)]/g))_e.has(y[1])&&u.add(y[1]);return[...u]}const Ot={class:"rounded-lg border border-default bg-elevated/30 px-2.5 py-2"},zt={key:0,class:"flex items-center gap-2 text-xs text-gray-400"},Lt={key:1,class:"flex flex-wrap items-center gap-1.5"},Bt={class:"text-xs font-medium text-gray-500 inline-flex items-center gap-1"},Dt=["title","onClick"],Ft={key:0,class:"text-xs text-gray-400"},Pt=ne({__name:"DiagnosisCoverageStrip",props:{sections:{},notApplicable:{},tokenEstimate:{},loading:{type:Boolean}},emits:["view-section","open"],setup(e,{emit:u}){const s=e,y=u,v=$(()=>s.sections.map(a=>({id:a.id,short:we[a.id]??a.title??a.id,truncated:a.truncated}))),g=$(()=>Math.max(0,re.length-s.sections.length)),l=$(()=>{const a=s.tokenEstimate;return a?a>=1e3?`${(a/1e3).toFixed(1)}k`:String(a):""});return(a,x)=>{const p=se,E=pe;return i(),r("div",Ot,[e.loading&&!e.sections.length?(i(),r("div",zt,[k(p,{name:"i-lucide-loader-circle",class:"size-3.5 animate-spin"}),x[1]||(x[1]=w(" Building context… ",-1))])):(i(),r("div",Lt,[d("span",Bt,[k(p,{name:"i-lucide-layers",class:"size-3.5"}),x[2]||(x[2]=w(" Context ",-1)),k(E,{topic:"cluster.coverage"})]),(i(!0),r(L,null,K(t(v),S=>(i(),r("button",{key:S.id,type:"button",class:"inline-flex items-center gap-1 rounded-full border border-default bg-default px-2 py-0.5 text-xs hover:border-primary/50 transition-colors",title:S.truncated?`${S.short} (truncated)`:S.short,onClick:A=>y("view-section",S.id)},[k(p,{name:S.truncated?"i-lucide-scissors":"i-lucide-check",class:V(["size-3",S.truncated?"text-warning":"text-success"])},null,8,["name","class"]),w(" "+f(S.short),1)],8,Dt))),128)),t(v).length?h("",!0):(i(),r("span",Ft,"No evidence sections yet")),d("button",{type:"button",class:"ml-auto text-xs text-gray-400 hover:text-primary transition-colors whitespace-nowrap",onClick:x[0]||(x[0]=S=>y("open"))},[t(g)?(i(),r(L,{key:0},[w(f(t(g))+" not included · ",1)],64)):h("",!0),t(l)?(i(),r(L,{key:1},[w("~"+f(t(l))+" tokens",1)],64)):h("",!0),k(p,{name:"i-lucide-arrow-right",class:"size-3 inline align-text-bottom"})])]))])}}}),hs=Object.assign(Pt,{__name:"DiagnosisCoverageStrip"}),Ut={class:"flex items-center justify-between w-full"},jt={class:"flex items-center gap-2"},Ht={class:"font-semibold inline-flex items-center gap-1"},Gt={class:"text-xs text-gray-400"},Vt={class:"flex items-center gap-1"},Kt={class:"rounded-lg border border-default bg-elevated/30 p-3 mb-4"},qt={class:"flex items-center justify-between gap-2 mb-2"},Wt={class:"text-xs font-medium text-gray-500 uppercase tracking-wide inline-flex items-center gap-1"},Xt={class:"text-xs text-gray-400"},Zt={class:"flex flex-wrap gap-1.5"},Yt=["title"],Jt={class:"text-xs text-gray-400 mt-2"},Qt={class:"space-y-4"},en={class:"text-xs font-medium text-gray-500 uppercase tracking-wide mb-2"},tn={class:"space-y-2"},nn=["data-section-id"],sn={key:0,class:"text-center text-gray-400 py-8 text-sm"},on=ne({__name:"DiagnosisContextModal",props:{open:{type:Boolean},sections:{},tokenEstimate:{},imageTokenEstimate:{},loading:{type:Boolean},focusSection:{},citedSections:{},notApplicableSections:{}},emits:["update:open","refresh"],setup(e,{emit:u}){const s=e,y=$(()=>{const b=new Map;for(const m of s.sections)b.has(m.id)||b.set(m.id,m);return b}),v=$(()=>new Set(Object.keys(s.notApplicableSections??{}))),g=$(()=>new Set(s.citedSections??[])),l=$(()=>re.map(b=>{if(v.value.has(b.id))return{id:b.id,short:b.short,label:b.label,state:"notApplicable",cited:g.value.has(b.id)};const m=y.value.get(b.id),I=m?m.truncated?"truncated":"present":"absent";return{id:b.id,short:b.short,label:b.label,state:I,cited:g.value.has(b.id)}})),a=$(()=>{const b={present:0,truncated:0,absent:0,notApplicable:0};for(const m of l.value)b[m.state]++;return b}),x={present:"bg-emerald-500",truncated:"bg-amber-500",absent:"bg-gray-300 dark:bg-gray-600",notApplicable:"bg-purple-400"};function p(b){if(b.state==="notApplicable"){const m=s.notApplicableSections?.[b.id];return`${b.label}: not applicable${m?` — ${m}`:""}`}return`${b.label}: ${b.state}${b.cited?" · cited by the diagnosis":""}`}const E=u,{copy:S,copied:A}=ve(),U=$(()=>{const b=[],m=["clusterSummary","sampleError","representativeExecution","executionError","runContext"],I=["testAnnotations","testSource","steps","failingSteps","console","networkRequests","serverLogs","serverTraces","webVitals","ariaSnapshot"],J=["recurrenceFlakiness","baselineComparison","retryProgression","passedPeers","browserDistribution","affectedTests"],R=["scmInvestigation","selectedCommits"],Q=["priorDiagnosis","tracePointers","artifacts"],W=(T,O)=>{const X=s.sections.filter(ie=>T.includes(ie.id));X.length>0&&b.push({label:O,items:X})};return W(m,"Primary"),W(I,"Test Evidence"),W(J,"Analysis"),W(R,"SCM"),W(Q,"Other"),b}),N=Y(null);ae(()=>[s.open,s.focusSection],async([b,m])=>{if(!b||!m)return;await Me();const I=document.querySelector(`[data-section-id="${m}"]`);I&&(I.scrollIntoView({behavior:"smooth",block:"start"}),N.value=m,setTimeout(()=>{N.value===m&&(N.value=null)},2500))});function q(b){let m=`## ${b.title}`;const I=[];return I.push(`${b.chars} chars`),b.truncated&&I.push("truncated"),b.items!=null&&I.push(`${b.items} items`),I.length&&(m+=` — ${I.join(", ")}`),m}return(b,m)=>{const I=pe,J=ge,R=se,Q=ke,W=Fe;return i(),F(W,{open:e.open,title:"Context sent to AI",ui:{content:"max-w-5xl"},"onUpdate:open":m[2]||(m[2]=T=>E("update:open",T))},{header:G(()=>[d("div",Ut,[d("div",jt,[d("span",Ht,[m[3]||(m[3]=w(" Context sent to AI ",-1)),k(I,{topic:"cluster.context-preview"})]),d("span",Gt,[w(" ~"+f(e.tokenEstimate)+" tokens",1),e.imageTokenEstimate?(i(),r(L,{key:0},[w(" ("+f(e.tokenEstimate-e.imageTokenEstimate)+" text + "+f(e.imageTokenEstimate)+" image)",1)],64)):h("",!0)])]),d("div",Vt,[k(J,{icon:"i-lucide-refresh-cw",size:"xs",color:"neutral",variant:"ghost",loading:e.loading,onClick:m[0]||(m[0]=T=>E("refresh"))},null,8,["loading"]),k(J,{icon:"i-lucide-x",size:"xs",color:"neutral",variant:"ghost",onClick:m[1]||(m[1]=T=>E("update:open",!1))})])])]),body:G(()=>[m[7]||(m[7]=d("p",{class:"text-xs text-gray-500 dark:text-gray-400 mb-3"},"Copy individual sections or the full context below.",-1)),d("div",Kt,[d("div",qt,[d("p",Wt,[m[4]||(m[4]=w(" Data coverage ",-1)),k(I,{topic:"cluster.coverage"})]),d("p",Xt,f(t(a).present)+" present · "+f(t(a).truncated)+" truncated · "+f(t(a).absent)+" absent"+f(t(a).notApplicable?` · ${t(a).notApplicable} n/a`:""),1)]),d("div",Zt,[(i(!0),r(L,null,K(t(l),T=>(i(),r("span",{key:T.id,class:V(["inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-xs",[T.cited?"border-primary text-primary":"border-default",T.state==="absent"?"text-gray-400 opacity-70":"",T.state==="notApplicable"?"text-purple-500 border-purple-300 dark:border-purple-700":""]]),title:p(T)},[d("span",{class:V(["size-1.5 rounded-full shrink-0",x[T.state]])},null,2),w(" "+f(T.short)+" ",1),T.cited?(i(),F(R,{key:0,name:"i-lucide-quote",class:"size-2.5 shrink-0"})):h("",!0)],10,Yt))),128))]),d("p",Jt,[m[5]||(m[5]=w(" Absent or truncated evidence lowers the diagnosis confidence. ",-1)),k(R,{name:"i-lucide-quote",class:"size-2.5 inline"}),m[6]||(m[6]=w(" marks sections the diagnosis cited. ",-1))])]),d("div",Qt,[(i(!0),r(L,null,K(t(U),T=>(i(),r("div",{key:T.label},[d("p",en,f(T.label),1),d("div",tn,[(i(!0),r(L,null,K(T.items,O=>(i(),r("div",{key:O.id,"data-section-id":O.id,class:V(["relative rounded-lg transition-shadow",t(N)===O.id?"ring-2 ring-primary":t(g).has(O.id)?"ring-1 ring-primary/40":""])},[k(Q,{text:q(O)+`
10
10
 
11
11
  `+O.markdown},null,8,["text"]),k(J,{icon:t(A)?"i-lucide-check":"i-lucide-clipboard",size:"xs",color:"neutral",variant:"ghost",class:"absolute top-1 right-1",onClick:X=>t(S)(O.markdown)},null,8,["icon","onClick"])],10,nn))),128))])]))),128)),e.sections.length===0&&!e.loading?(i(),r("div",sn," No context sections available. ")):h("",!0)])]),_:1},8,["open"])}}}),ys=Object.assign(on,{__name:"DiagnosisContextModal"}),an=Symbol("clusterSectionLocator");function rn(){return Oe(an,{canLocate:()=>!1,open:()=>{}})}const ln={class:"space-y-3"},cn={key:2,class:"space-y-3 rounded-lg border border-default p-4 bg-elevated/30"},dn={class:"flex items-start gap-3"},un=["title"],gn={class:"relative size-12"},pn={viewBox:"0 0 36 36",class:"size-12 -rotate-90"},mn=["stroke-dasharray"],fn={class:"absolute inset-0 flex items-center justify-center text-xs font-semibold"},bn={class:"flex-1 min-w-0"},hn={class:"flex items-start justify-between gap-2"},yn={class:"flex flex-wrap items-center gap-1.5"},xn={key:4,class:"text-xs text-gray-500 inline-flex items-center gap-1"},vn={class:"flex items-center gap-1 shrink-0"},kn={key:0,class:"text-sm font-medium mt-1.5"},_n={key:0,class:"text-sm text-gray-600 dark:text-gray-400"},wn={key:1,class:"space-y-1"},Sn={class:"flex flex-wrap items-baseline gap-x-1.5 gap-y-1"},En=["title","onClick"],Cn=["title","onClick"],$n={key:2},An={class:"text-sm text-gray-600 dark:text-gray-400"},Tn={key:1,class:"mt-2"},Nn={class:"flex items-center justify-between mb-1"},Rn={class:"flex items-center gap-1.5"},In={class:"flex items-center gap-1"},Mn={key:0,class:"text-xs text-rose-600 dark:text-rose-400 mt-1"},On={key:2,class:"mt-2"},zn={key:3,class:"space-y-1.5"},Ln={class:"flex items-center gap-1"},Bn={key:0,class:"space-y-1.5"},Dn={class:"flex items-center gap-1.5"},Fn={key:1,class:"flex items-center gap-1.5 flex-1 min-w-0"},Pn={class:"h-1.5 flex-1 max-w-24 rounded-full bg-gray-200 dark:bg-gray-700 overflow-hidden"},Un={class:"text-xs text-gray-400 shrink-0"},jn={key:0,class:"text-sm text-gray-600 dark:text-gray-400 mt-1"},Hn={class:"space-y-1"},Gn=["onClick"],Vn={key:5,class:"space-y-1"},Kn={class:"flex items-start justify-between gap-3 pt-1 border-t border-default"},qn={class:"flex items-start gap-2"},Wn={class:"flex items-center gap-1 shrink-0 pt-0.5"},Xn={key:0,class:"flex items-start gap-1.5"},Zn={class:"flex items-center gap-1.5 text-xs text-gray-400 shrink-0 pt-0.5"},Yn={key:3,class:"flex flex-col items-center justify-center p-8 text-center text-gray-400 border border-dashed border-default rounded-lg"},Jn=ne({__name:"DiagnosisResult",props:{diagnosis:{},lastSeenRunId:{}},emits:["view-section","prefill-context"],setup(e,{emit:u}){const s=e,{copy:y,copied:v}=ve(),g=rn(),l=$(()=>s.diagnosis?.details);function a(n,o){return n==null&&o==null?"":`${n??0} in / ${o??0} out tokens`}function x(n){return n.status==="running"&&Date.now()-new Date(n.updatedAt).getTime()>300*1e3}const p=Y(!1),E=Y(!1),S=Y(!1),A=Y(null),U=Y(void 0),N=Le(new Set);ae(()=>s.diagnosis?.id,()=>N.clear()),ae(()=>s.diagnosis?.feedback,n=>{A.value=n??null},{immediate:!0}),ae(()=>s.diagnosis?.feedbackNote,n=>{U.value=n??void 0},{immediate:!0});async function q(n){if(!s.diagnosis)return;const o=A.value===n?null:n;A.value=o,o||(S.value=!1),p.value=!0;try{await $fetch(`/api/failure-diagnoses/${s.diagnosis.id}/feedback`,{method:"PATCH",body:{feedback:o,feedbackNote:U.value||null}})}catch{A.value=s.diagnosis.feedback??null}finally{p.value=!1}}async function b(){if(s.diagnosis){E.value=!0;try{await $fetch(`/api/failure-diagnoses/${s.diagnosis.id}/feedback`,{method:"PATCH",body:{feedback:A.value,feedbackNote:U.value||null}}),S.value=!1}catch{}finally{E.value=!1}}}const m=$(()=>{const n=s.diagnosis;return!n||n.status!=="completed"||s.lastSeenRunId==null?!1:new Date(n.updatedAt).getTime()<Date.now()-300*1e3});function I(){if(!s.diagnosis||s.diagnosis.status!=="completed")return"";const n=s.diagnosis,o=l.value,c=[];n.category&&c.push(`**Category:** ${n.category}`),n.confidence&&c.push(`**Confidence:** ${n.confidence}${o?.confidenceScore!=null?` (${o.confidenceScore}/100)`:""}`),o?.severity&&c.push(`**Severity:** ${o.severity}`),o?.affectedArea&&c.push(`**Affected area:** ${o.affectedArea}`),c.push(""),n.summary&&c.push(`${n.summary}
12
12
  `),n.rootCause&&c.push(`**Root cause:** ${n.rootCause}
@@ -1 +1 @@
1
- import{d as O,X as Q,W as ee,T as f,k as e,r as R,Y as te,S as B,o as r,f as i,g as u,U as D,V as I,ay as V,C as Z,bi as U,j as h,bk as oe,bZ as ae,bj as se,b_ as x,bg as le,B as N,h as F,M as j,ac as L,aA as W,be as re,H as ne,q as g,Z as X,$ as Y,bq as ue,a0 as ie,a1 as de,a2 as pe,a3 as fe,a4 as ce,a5 as ve,br as ye,b3 as z,b2 as me,bF as _e,bG as ge,m as A,t as M,c as E,p as k,_ as be,bu as De,F as Oe,a6 as qe,bH as Ce}from"./B8fs6GU9.js";const[w,Be]=te("DialogRoot");var we=O({inheritAttrs:!1,__name:"DialogRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(d,{emit:n}){const a=d,o=Q(a,"open",n,{defaultValue:a.defaultOpen,passive:a.open===void 0}),t=R(),y=R(),{modal:p,unmountOnHide:c}=ee(a);return Be({open:o,modal:p,unmountOnHide:c,openModal:()=>{o.value=!0},onOpenChange:l=>{o.value=l},onOpenToggle:()=>{o.value=!o.value},contentId:"",titleId:"",descriptionId:"",triggerElement:t,contentElement:y}),(l,m)=>f(l.$slots,"default",{open:e(o),close:()=>o.value=!1})}}),ke=we,he=O({__name:"DialogClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const n=d;B();const a=w();return(s,o)=>(r(),i(e(I),D(n,{type:s.as==="button"?"button":void 0,onClick:o[0]||(o[0]=t=>e(a).onOpenChange(!1))}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["type"]))}}),$e=he,Pe=O({__name:"DialogContentImpl",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),{forwardRef:t,currentElement:y}=B();return o.titleId||=V(void 0,"reka-dialog-title"),o.descriptionId||=V(void 0,"reka-dialog-description"),Z(()=>{o.contentElement=y,U()!==document.body&&(o.triggerElement.value=U())}),(p,c)=>(r(),i(e(se),{"as-child":"",loop:"",trapped:a.trapFocus,present:a.present,onMountAutoFocus:c[5]||(c[5]=l=>s("openAutoFocus",l)),onUnmountAutoFocus:c[6]||(c[6]=l=>s("closeAutoFocus",l))},{default:u(()=>[h(e(oe),D({id:e(o).contentId,ref:e(t),as:p.as,"as-child":p.asChild,present:a.present,"disable-outside-pointer-events":p.disableOutsidePointerEvents,role:"dialog","aria-describedby":e(o).descriptionId,"aria-labelledby":e(o).titleId,"data-state":e(ae)(e(o).open.value)},p.$attrs,{onDismiss:c[0]||(c[0]=l=>e(o).onOpenChange(!1)),onEscapeKeyDown:c[1]||(c[1]=l=>s("escapeKeyDown",l)),onFocusOutside:c[2]||(c[2]=l=>s("focusOutside",l)),onInteractOutside:c[3]||(c[3]=l=>s("interactOutside",l)),onPointerDownOutside:c[4]||(c[4]=l=>s("pointerDownOutside",l))}),{default:u(()=>[f(p.$slots,"default")]),_:3},16,["id","as","as-child","present","disable-outside-pointer-events","aria-describedby","aria-labelledby","data-state"])]),_:3},8,["trapped","present"]))}}),J=Pe,Ee=O({__name:"DialogContentModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),t=x(s),{forwardRef:y,currentElement:p}=B(),c=F(()=>a.present?p.value:void 0);le(c);const l=F(()=>{const{present:m,...v}=a;return v});return N(()=>a.present,(m,v)=>{!m&&v&&o.triggerElement.value?.focus()}),(m,v)=>(r(),i(J,D({...l.value,...e(t)},{ref:e(y),present:m.present,"trap-focus":e(o).open.value,"disable-outside-pointer-events":a.disableOutsidePointerEvents,onCloseAutoFocus:v[0]||(v[0]=q=>{q.defaultPrevented||(q.preventDefault(),e(o).triggerElement.value?.focus())}),onPointerDownOutside:v[1]||(v[1]=q=>{const $=q.detail.originalEvent,b=$.button===0&&$.ctrlKey===!0;($.button===2||b)&&q.preventDefault()}),onFocusOutside:v[2]||(v[2]=q=>{q.preventDefault()})}),{default:u(()=>[f(m.$slots,"default")]),_:3},16,["present","trap-focus","disable-outside-pointer-events"]))}}),Fe=Ee,Ie=O({__name:"DialogContentNonModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,o=x(n);B();const t=w(),y=R(!1),p=R(!1),c=F(()=>{const{present:l,...m}=a;return m});return N(()=>a.present,(l,m)=>{!l&&m&&(y.value||t.triggerElement.value?.focus(),y.value=!1,p.value=!1)}),(l,m)=>(r(),i(J,D({...c.value,...e(o)},{present:l.present,"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:m[0]||(m[0]=v=>{v.defaultPrevented||(y.value||e(t).triggerElement.value?.focus(),v.preventDefault()),y.value=!1,p.value=!1}),onInteractOutside:m[1]||(m[1]=v=>{v.defaultPrevented||(y.value=!0,v.detail.originalEvent.type==="pointerdown"&&(p.value=!0));const q=v.target;e(t).triggerElement.value?.contains(q)&&v.preventDefault(),v.detail.originalEvent.type==="focusin"&&p.value&&v.preventDefault()})}),{default:u(()=>[f(l.$slots,"default")]),_:3},16,["present"]))}}),Ae=Ie,Me=O({__name:"DialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),t=x(s),{forwardRef:y}=B();return(p,c)=>(r(),i(e(W),{present:p.forceMount||e(o).open.value,"force-mount":p.forceMount||!e(o).unmountOnHide.value},{default:u(({present:l})=>[e(o).modal.value?j((r(),i(Fe,D({key:0,ref:e(y),present:e(o).unmountOnHide.value||l},{...a,...e(t),...p.$attrs}),{default:u(()=>[f(p.$slots,"default")]),_:2},1040,["present"])),[[L,e(o).unmountOnHide.value||l]]):j((r(),i(Ae,D({key:1,ref:e(y),present:e(o).unmountOnHide.value||l},{...a,...e(t),...p.$attrs}),{default:u(()=>[f(p.$slots,"default")]),_:2},1040,["present"])),[[L,e(o).unmountOnHide.value||l]])]),_:3},8,["present","force-mount"]))}}),Re=Me,He=O({__name:"DialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(d){const n=d;B();const a=w();return(s,o)=>(r(),i(e(I),D(n,{id:e(a).descriptionId}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["id"]))}}),S=He,Te=O({__name:"DialogOverlayImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},setup(d){const n=d,a=w(),s=re(n.present);return N(()=>n.present,o=>s.value=o),B(),(o,t)=>(r(),i(e(I),{as:o.as,"as-child":o.asChild,"data-state":e(a).open.value?"open":"closed",style:{"pointer-events":"auto"},onPointerdown:t[0]||(t[0]=ne(()=>{},["left","self","prevent"]))},{default:u(()=>[f(o.$slots,"default")]),_:3},8,["as","as-child","data-state"]))}}),Se=Te,Ke=O({__name:"DialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(d){const n=w(),{forwardRef:a}=B();return(s,o)=>e(n)?.modal.value?(r(),i(e(W),{key:0,present:s.forceMount||e(n).open.value,"force-mount":s.forceMount||!e(n).unmountOnHide.value},{default:u(({present:t})=>[j(h(Se,D(s.$attrs,{ref:e(a),as:s.as,"as-child":s.asChild,present:e(n).unmountOnHide.value||t}),{default:u(()=>[f(s.$slots,"default")]),_:2},1040,["as","as-child","present"]),[[L,e(n).unmountOnHide.value||t]])]),_:3},8,["present","force-mount"])):g("v-if",!0)}}),G=Ke,Ve=O({__name:"DialogPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(d){const n=d;return(a,s)=>(r(),i(e(ue),X(Y(n)),{default:u(()=>[f(a.$slots,"default")]),_:3},16))}}),je=Ve,Le=O({__name:"DialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(d){const n=d,a=w();return B(),(s,o)=>(r(),i(e(I),D(n,{id:e(a).titleId}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["id"]))}}),K=Le,xe=O({__name:"DialogTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const n=d,a=w(),{forwardRef:s,currentElement:o}=B();return a.contentId||=V(void 0,"reka-dialog-content"),Z(()=>{a.triggerElement.value=o.value}),(t,y)=>(r(),i(e(I),D(n,{ref:e(s),type:t.as==="button"?"button":void 0,"aria-haspopup":"dialog","aria-expanded":e(a).open.value||!1,"aria-controls":e(a).open.value?e(a).contentId:void 0,"data-state":e(a).open.value?"open":"closed",onClick:e(a).onOpenToggle}),{default:u(()=>[f(t.$slots,"default")]),_:3},16,["type","aria-expanded","aria-controls","data-state","onClick"]))}}),Ne=xe;const Ue={slots:{overlay:"fixed inset-0",content:"bg-default divide-y divide-default flex flex-col focus:outline-none",header:"flex items-center gap-1.5 p-4 sm:px-6 min-h-(--ui-header-height)",wrapper:"",body:"flex-1 p-4 sm:p-6",footer:"flex items-center gap-1.5 p-4 sm:px-6",title:"text-highlighted font-semibold",description:"mt-1 text-muted text-sm",close:"absolute top-4 end-4"},variants:{transition:{true:{overlay:"data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_200ms_ease-in]",content:"data-[state=open]:animate-[scale-in_200ms_ease-out] data-[state=closed]:animate-[scale-out_200ms_ease-in]"}},fullscreen:{true:{content:"inset-0"},false:{content:"w-[calc(100vw-2rem)] max-w-lg rounded-lg shadow-lg ring ring-default"}},overlay:{true:{overlay:"bg-elevated/75"}},scrollable:{true:{overlay:"overflow-y-auto",content:"relative"},false:{content:"fixed",body:"overflow-y-auto"}}},compoundVariants:[{scrollable:!0,fullscreen:!1,class:{overlay:"grid place-items-center p-4 sm:py-8"}},{scrollable:!1,fullscreen:!1,class:{content:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] overflow-hidden"}}]},Ge={__name:"UModal",props:{title:{type:String,required:!1},description:{type:String,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},scrollable:{type:Boolean,required:!1},transition:{type:Boolean,required:!1,default:!0},fullscreen:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},close:{type:[Boolean,Object],required:!1,default:!0},closeIcon:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1}},emits:["leave","after:leave","enter","after:enter","close:prevent","update:open"],setup(d,{emit:n}){const a=d,s=n,o=ie(),t=de("modal",a),{t:y}=pe(),p=fe(),c=ce(ve(t,"open","defaultOpen","modal","unmountOnHide"),s),l=ye(z(()=>t.portal)),m=z(()=>t.content),v=F(()=>t.dismissible?{pointerDownOutside:_=>Ce(_,{scrollable:t.scrollable})}:["interactOutside","escapeKeyDown"].reduce((C,H)=>(C[H]=P=>{P.preventDefault(),s("close:prevent")},C),{})),[q,$]=me(),b=F(()=>qe({extend:Ue,...p.ui?.modal||{}})({transition:t.transition,fullscreen:t.fullscreen,overlay:t.overlay,scrollable:t.scrollable}));return(_,C)=>(r(),i(e(ke),X(Y(e(c))),{default:u(({open:H,close:P})=>[h(e(q),null,{default:u(()=>[h(e(Re),D({"data-slot":"content",class:b.value.content({class:[!o.default&&e(t).class,e(t).ui?.content]})},m.value,{onEnter:C[0]||(C[0]=T=>s("enter")),onAfterEnter:C[1]||(C[1]=T=>s("after:enter")),onLeave:C[2]||(C[2]=T=>s("leave")),onAfterLeave:C[3]||(C[3]=T=>s("after:leave"))},_e(v.value)),{default:u(()=>[!e(t).title&&!o.title||!e(t).description&&!o.description||o.content?(r(),i(e(ge),{key:0},{default:u(()=>[!e(t).title&&!o.title?(r(),i(e(K),{key:0})):o.content?(r(),i(e(K),{key:1},{default:u(()=>[f(_.$slots,"title",{},()=>[A(M(e(t).title),1)])]),_:3})):g("",!0),!e(t).description&&!o.description?(r(),i(e(S),{key:2})):o.content?(r(),i(e(S),{key:3},{default:u(()=>[f(_.$slots,"description",{},()=>[A(M(e(t).description),1)])]),_:3})):g("",!0)]),_:3})):g("",!0),f(_.$slots,"content",{close:P},()=>[o.header||e(t).title||o.title||e(t).description||o.description||e(t).close||o.close?(r(),E("div",{key:0,"data-slot":"header",class:k(b.value.header({class:e(t).ui?.header}))},[f(_.$slots,"header",{close:P},()=>[e(t).title||o.title||e(t).description||o.description?(r(),E("div",{key:0,"data-slot":"wrapper",class:k(b.value.wrapper({class:e(t).ui?.wrapper}))},[e(t).title||o.title?(r(),i(e(K),{key:0,"data-slot":"title",class:k(b.value.title({class:e(t).ui?.title}))},{default:u(()=>[f(_.$slots,"title",{},()=>[A(M(e(t).title),1)])]),_:3},8,["class"])):g("",!0),e(t).description||o.description?(r(),i(e(S),{key:1,"data-slot":"description",class:k(b.value.description({class:e(t).ui?.description}))},{default:u(()=>[f(_.$slots,"description",{},()=>[A(M(e(t).description),1)])]),_:3},8,["class"])):g("",!0)],2)):g("",!0),f(_.$slots,"actions"),e(t).close||o.close?(r(),i(e($e),{key:1,"as-child":""},{default:u(()=>[f(_.$slots,"close",{ui:b.value},()=>[e(t).close?(r(),i(be,D({key:0,icon:e(t).closeIcon||e(p).ui.icons.close,color:"neutral",variant:"ghost","aria-label":e(y)("modal.close")},typeof e(t).close=="object"?e(t).close:{},{"data-slot":"close",class:b.value.close({class:e(t).ui?.close})}),null,16,["icon","aria-label","class"])):g("",!0)])]),_:2},1024)):g("",!0)])],2)):g("",!0),o.body?(r(),E("div",{key:1,"data-slot":"body",class:k(b.value.body({class:e(t).ui?.body}))},[f(_.$slots,"body",{close:P})],2)):g("",!0),o.footer?(r(),E("div",{key:2,"data-slot":"footer",class:k(b.value.footer({class:e(t).ui?.footer}))},[f(_.$slots,"footer",{close:P})],2)):g("",!0)])]),_:2},1040,["class"])]),_:2},1024),o.default?(r(),i(e(Ne),{key:0,"as-child":"",class:k(e(t).class)},{default:u(()=>[f(_.$slots,"default",{open:H})]),_:2},1032,["class"])):g("",!0),h(e(je),D(e(l),{"force-mount":e(l).disabled&&e(t).unmountOnHide===!1||void 0}),{default:u(()=>[h(e(De),null,{default:u(()=>[e(t).scrollable?(r(),i(e(G),{key:0,"data-slot":"overlay",class:k(b.value.overlay({class:e(t).ui?.overlay}))},{default:u(()=>[h(e($))]),_:1},8,["class"])):(r(),E(Oe,{key:1},[e(t).overlay?(r(),i(e(G),{key:0,"data-slot":"overlay",class:k(b.value.overlay({class:e(t).ui?.overlay}))},null,8,["class"])):g("",!0),h(e($))],64))]),_:1})]),_:1},16,["force-mount"])]),_:3},16))}};export{G as D,Ge as _,Re as a,ke as b,Ne as c,je as d,K as e,S as f,$e as g};
1
+ import{d as O,X as Q,W as ee,T as f,k as e,r as R,Y as te,S as B,o as r,f as i,g as u,U as D,V as I,ay as V,C as Y,bi as U,j as h,bk as oe,bY as ae,bj as se,bZ as x,bg as le,B as N,h as F,M as j,ac as L,aA as Z,be as re,H as ne,q as g,Z as W,$ as X,bq as ue,a0 as ie,a1 as de,a2 as pe,a3 as fe,a4 as ce,a5 as ve,br as ye,b3 as z,b2 as me,bF as _e,bG as ge,m as A,t as M,c as E,p as k,_ as be,bu as De,F as Oe,a6 as qe,bH as Ce}from"./BrT_Sys2.js";const[w,Be]=te("DialogRoot");var we=O({inheritAttrs:!1,__name:"DialogRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(d,{emit:n}){const a=d,o=Q(a,"open",n,{defaultValue:a.defaultOpen,passive:a.open===void 0}),t=R(),y=R(),{modal:p,unmountOnHide:c}=ee(a);return Be({open:o,modal:p,unmountOnHide:c,openModal:()=>{o.value=!0},onOpenChange:l=>{o.value=l},onOpenToggle:()=>{o.value=!o.value},contentId:"",titleId:"",descriptionId:"",triggerElement:t,contentElement:y}),(l,m)=>f(l.$slots,"default",{open:e(o),close:()=>o.value=!1})}}),ke=we,he=O({__name:"DialogClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const n=d;B();const a=w();return(s,o)=>(r(),i(e(I),D(n,{type:s.as==="button"?"button":void 0,onClick:o[0]||(o[0]=t=>e(a).onOpenChange(!1))}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["type"]))}}),$e=he,Pe=O({__name:"DialogContentImpl",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),{forwardRef:t,currentElement:y}=B();return o.titleId||=V(void 0,"reka-dialog-title"),o.descriptionId||=V(void 0,"reka-dialog-description"),Y(()=>{o.contentElement=y,U()!==document.body&&(o.triggerElement.value=U())}),(p,c)=>(r(),i(e(se),{"as-child":"",loop:"",trapped:a.trapFocus,present:a.present,onMountAutoFocus:c[5]||(c[5]=l=>s("openAutoFocus",l)),onUnmountAutoFocus:c[6]||(c[6]=l=>s("closeAutoFocus",l))},{default:u(()=>[h(e(oe),D({id:e(o).contentId,ref:e(t),as:p.as,"as-child":p.asChild,present:a.present,"disable-outside-pointer-events":p.disableOutsidePointerEvents,role:"dialog","aria-describedby":e(o).descriptionId,"aria-labelledby":e(o).titleId,"data-state":e(ae)(e(o).open.value)},p.$attrs,{onDismiss:c[0]||(c[0]=l=>e(o).onOpenChange(!1)),onEscapeKeyDown:c[1]||(c[1]=l=>s("escapeKeyDown",l)),onFocusOutside:c[2]||(c[2]=l=>s("focusOutside",l)),onInteractOutside:c[3]||(c[3]=l=>s("interactOutside",l)),onPointerDownOutside:c[4]||(c[4]=l=>s("pointerDownOutside",l))}),{default:u(()=>[f(p.$slots,"default")]),_:3},16,["id","as","as-child","present","disable-outside-pointer-events","aria-describedby","aria-labelledby","data-state"])]),_:3},8,["trapped","present"]))}}),J=Pe,Ee=O({__name:"DialogContentModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),t=x(s),{forwardRef:y,currentElement:p}=B(),c=F(()=>a.present?p.value:void 0);le(c);const l=F(()=>{const{present:m,...v}=a;return v});return N(()=>a.present,(m,v)=>{!m&&v&&o.triggerElement.value?.focus()}),(m,v)=>(r(),i(J,D({...l.value,...e(t)},{ref:e(y),present:m.present,"trap-focus":e(o).open.value,"disable-outside-pointer-events":a.disableOutsidePointerEvents,onCloseAutoFocus:v[0]||(v[0]=q=>{q.defaultPrevented||(q.preventDefault(),e(o).triggerElement.value?.focus())}),onPointerDownOutside:v[1]||(v[1]=q=>{const $=q.detail.originalEvent,b=$.button===0&&$.ctrlKey===!0;($.button===2||b)&&q.preventDefault()}),onFocusOutside:v[2]||(v[2]=q=>{q.preventDefault()})}),{default:u(()=>[f(m.$slots,"default")]),_:3},16,["present","trap-focus","disable-outside-pointer-events"]))}}),Fe=Ee,Ie=O({__name:"DialogContentNonModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,o=x(n);B();const t=w(),y=R(!1),p=R(!1),c=F(()=>{const{present:l,...m}=a;return m});return N(()=>a.present,(l,m)=>{!l&&m&&(y.value||t.triggerElement.value?.focus(),y.value=!1,p.value=!1)}),(l,m)=>(r(),i(J,D({...c.value,...e(o)},{present:l.present,"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:m[0]||(m[0]=v=>{v.defaultPrevented||(y.value||e(t).triggerElement.value?.focus(),v.preventDefault()),y.value=!1,p.value=!1}),onInteractOutside:m[1]||(m[1]=v=>{v.defaultPrevented||(y.value=!0,v.detail.originalEvent.type==="pointerdown"&&(p.value=!0));const q=v.target;e(t).triggerElement.value?.contains(q)&&v.preventDefault(),v.detail.originalEvent.type==="focusin"&&p.value&&v.preventDefault()})}),{default:u(()=>[f(l.$slots,"default")]),_:3},16,["present"]))}}),Ae=Ie,Me=O({__name:"DialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(d,{emit:n}){const a=d,s=n,o=w(),t=x(s),{forwardRef:y}=B();return(p,c)=>(r(),i(e(Z),{present:p.forceMount||e(o).open.value,"force-mount":p.forceMount||!e(o).unmountOnHide.value},{default:u(({present:l})=>[e(o).modal.value?j((r(),i(Fe,D({key:0,ref:e(y),present:e(o).unmountOnHide.value||l},{...a,...e(t),...p.$attrs}),{default:u(()=>[f(p.$slots,"default")]),_:2},1040,["present"])),[[L,e(o).unmountOnHide.value||l]]):j((r(),i(Ae,D({key:1,ref:e(y),present:e(o).unmountOnHide.value||l},{...a,...e(t),...p.$attrs}),{default:u(()=>[f(p.$slots,"default")]),_:2},1040,["present"])),[[L,e(o).unmountOnHide.value||l]])]),_:3},8,["present","force-mount"]))}}),Re=Me,He=O({__name:"DialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(d){const n=d;B();const a=w();return(s,o)=>(r(),i(e(I),D(n,{id:e(a).descriptionId}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["id"]))}}),S=He,Te=O({__name:"DialogOverlayImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},setup(d){const n=d,a=w(),s=re(n.present);return N(()=>n.present,o=>s.value=o),B(),(o,t)=>(r(),i(e(I),{as:o.as,"as-child":o.asChild,"data-state":e(a).open.value?"open":"closed",style:{"pointer-events":"auto"},onPointerdown:t[0]||(t[0]=ne(()=>{},["left","self","prevent"]))},{default:u(()=>[f(o.$slots,"default")]),_:3},8,["as","as-child","data-state"]))}}),Se=Te,Ke=O({__name:"DialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(d){const n=w(),{forwardRef:a}=B();return(s,o)=>e(n)?.modal.value?(r(),i(e(Z),{key:0,present:s.forceMount||e(n).open.value,"force-mount":s.forceMount||!e(n).unmountOnHide.value},{default:u(({present:t})=>[j(h(Se,D(s.$attrs,{ref:e(a),as:s.as,"as-child":s.asChild,present:e(n).unmountOnHide.value||t}),{default:u(()=>[f(s.$slots,"default")]),_:2},1040,["as","as-child","present"]),[[L,e(n).unmountOnHide.value||t]])]),_:3},8,["present","force-mount"])):g("v-if",!0)}}),G=Ke,Ve=O({__name:"DialogPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(d){const n=d;return(a,s)=>(r(),i(e(ue),W(X(n)),{default:u(()=>[f(a.$slots,"default")]),_:3},16))}}),je=Ve,Le=O({__name:"DialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(d){const n=d,a=w();return B(),(s,o)=>(r(),i(e(I),D(n,{id:e(a).titleId}),{default:u(()=>[f(s.$slots,"default")]),_:3},16,["id"]))}}),K=Le,xe=O({__name:"DialogTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const n=d,a=w(),{forwardRef:s,currentElement:o}=B();return a.contentId||=V(void 0,"reka-dialog-content"),Y(()=>{a.triggerElement.value=o.value}),(t,y)=>(r(),i(e(I),D(n,{ref:e(s),type:t.as==="button"?"button":void 0,"aria-haspopup":"dialog","aria-expanded":e(a).open.value||!1,"aria-controls":e(a).open.value?e(a).contentId:void 0,"data-state":e(a).open.value?"open":"closed",onClick:e(a).onOpenToggle}),{default:u(()=>[f(t.$slots,"default")]),_:3},16,["type","aria-expanded","aria-controls","data-state","onClick"]))}}),Ne=xe;const Ue={slots:{overlay:"fixed inset-0",content:"bg-default divide-y divide-default flex flex-col focus:outline-none",header:"flex items-center gap-1.5 p-4 sm:px-6 min-h-(--ui-header-height)",wrapper:"",body:"flex-1 p-4 sm:p-6",footer:"flex items-center gap-1.5 p-4 sm:px-6",title:"text-highlighted font-semibold",description:"mt-1 text-muted text-sm",close:"absolute top-4 end-4"},variants:{transition:{true:{overlay:"data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_200ms_ease-in]",content:"data-[state=open]:animate-[scale-in_200ms_ease-out] data-[state=closed]:animate-[scale-out_200ms_ease-in]"}},fullscreen:{true:{content:"inset-0"},false:{content:"w-[calc(100vw-2rem)] max-w-lg rounded-lg shadow-lg ring ring-default"}},overlay:{true:{overlay:"bg-elevated/75"}},scrollable:{true:{overlay:"overflow-y-auto",content:"relative"},false:{content:"fixed",body:"overflow-y-auto"}}},compoundVariants:[{scrollable:!0,fullscreen:!1,class:{overlay:"grid place-items-center p-4 sm:py-8"}},{scrollable:!1,fullscreen:!1,class:{content:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] overflow-hidden"}}]},Ge={__name:"UModal",props:{title:{type:String,required:!1},description:{type:String,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},scrollable:{type:Boolean,required:!1},transition:{type:Boolean,required:!1,default:!0},fullscreen:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},close:{type:[Boolean,Object],required:!1,default:!0},closeIcon:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1}},emits:["leave","after:leave","enter","after:enter","close:prevent","update:open"],setup(d,{emit:n}){const a=d,s=n,o=ie(),t=de("modal",a),{t:y}=pe(),p=fe(),c=ce(ve(t,"open","defaultOpen","modal","unmountOnHide"),s),l=ye(z(()=>t.portal)),m=z(()=>t.content),v=F(()=>t.dismissible?{pointerDownOutside:_=>Ce(_,{scrollable:t.scrollable})}:["interactOutside","escapeKeyDown"].reduce((C,H)=>(C[H]=P=>{P.preventDefault(),s("close:prevent")},C),{})),[q,$]=me(),b=F(()=>qe({extend:Ue,...p.ui?.modal||{}})({transition:t.transition,fullscreen:t.fullscreen,overlay:t.overlay,scrollable:t.scrollable}));return(_,C)=>(r(),i(e(ke),W(X(e(c))),{default:u(({open:H,close:P})=>[h(e(q),null,{default:u(()=>[h(e(Re),D({"data-slot":"content",class:b.value.content({class:[!o.default&&e(t).class,e(t).ui?.content]})},m.value,{onEnter:C[0]||(C[0]=T=>s("enter")),onAfterEnter:C[1]||(C[1]=T=>s("after:enter")),onLeave:C[2]||(C[2]=T=>s("leave")),onAfterLeave:C[3]||(C[3]=T=>s("after:leave"))},_e(v.value)),{default:u(()=>[!e(t).title&&!o.title||!e(t).description&&!o.description||o.content?(r(),i(e(ge),{key:0},{default:u(()=>[!e(t).title&&!o.title?(r(),i(e(K),{key:0})):o.content?(r(),i(e(K),{key:1},{default:u(()=>[f(_.$slots,"title",{},()=>[A(M(e(t).title),1)])]),_:3})):g("",!0),!e(t).description&&!o.description?(r(),i(e(S),{key:2})):o.content?(r(),i(e(S),{key:3},{default:u(()=>[f(_.$slots,"description",{},()=>[A(M(e(t).description),1)])]),_:3})):g("",!0)]),_:3})):g("",!0),f(_.$slots,"content",{close:P},()=>[o.header||e(t).title||o.title||e(t).description||o.description||e(t).close||o.close?(r(),E("div",{key:0,"data-slot":"header",class:k(b.value.header({class:e(t).ui?.header}))},[f(_.$slots,"header",{close:P},()=>[e(t).title||o.title||e(t).description||o.description?(r(),E("div",{key:0,"data-slot":"wrapper",class:k(b.value.wrapper({class:e(t).ui?.wrapper}))},[e(t).title||o.title?(r(),i(e(K),{key:0,"data-slot":"title",class:k(b.value.title({class:e(t).ui?.title}))},{default:u(()=>[f(_.$slots,"title",{},()=>[A(M(e(t).title),1)])]),_:3},8,["class"])):g("",!0),e(t).description||o.description?(r(),i(e(S),{key:1,"data-slot":"description",class:k(b.value.description({class:e(t).ui?.description}))},{default:u(()=>[f(_.$slots,"description",{},()=>[A(M(e(t).description),1)])]),_:3},8,["class"])):g("",!0)],2)):g("",!0),f(_.$slots,"actions"),e(t).close||o.close?(r(),i(e($e),{key:1,"as-child":""},{default:u(()=>[f(_.$slots,"close",{ui:b.value},()=>[e(t).close?(r(),i(be,D({key:0,icon:e(t).closeIcon||e(p).ui.icons.close,color:"neutral",variant:"ghost","aria-label":e(y)("modal.close")},typeof e(t).close=="object"?e(t).close:{},{"data-slot":"close",class:b.value.close({class:e(t).ui?.close})}),null,16,["icon","aria-label","class"])):g("",!0)])]),_:2},1024)):g("",!0)])],2)):g("",!0),o.body?(r(),E("div",{key:1,"data-slot":"body",class:k(b.value.body({class:e(t).ui?.body}))},[f(_.$slots,"body",{close:P})],2)):g("",!0),o.footer?(r(),E("div",{key:2,"data-slot":"footer",class:k(b.value.footer({class:e(t).ui?.footer}))},[f(_.$slots,"footer",{close:P})],2)):g("",!0)])]),_:2},1040,["class"])]),_:2},1024),o.default?(r(),i(e(Ne),{key:0,"as-child":"",class:k(e(t).class)},{default:u(()=>[f(_.$slots,"default",{open:H})]),_:2},1032,["class"])):g("",!0),h(e(je),D(e(l),{"force-mount":e(l).disabled&&e(t).unmountOnHide===!1||void 0}),{default:u(()=>[h(e(De),null,{default:u(()=>[e(t).scrollable?(r(),i(e(G),{key:0,"data-slot":"overlay",class:k(b.value.overlay({class:e(t).ui?.overlay}))},{default:u(()=>[h(e($))]),_:1},8,["class"])):(r(),E(Oe,{key:1},[e(t).overlay?(r(),i(e(G),{key:0,"data-slot":"overlay",class:k(b.value.overlay({class:e(t).ui?.overlay}))},null,8,["class"])):g("",!0),h(e($))],64))]),_:1})]),_:1},16,["force-mount"])]),_:3},16))}};export{G as D,Ge as _,Re as a,ke as b,Ne as c,je as d,K as e,S as f,$e as g};
@@ -1 +1 @@
1
- import{_ as oe}from"./wCQds5_f.js";import{_ as se}from"./n7Htv9PJ.js";import{d as ne,b as le,u as ie,a as re,w as de,B as ce,C as ue,c,k as t,f as p,g as o,F as R,j as s,aa as me,q as w,o as l,i as d,m as r,D as pe,l as E,_ as fe,v as ye,t as H,y as ge,s as ve,h as $,r as u,K as we}from"./B8fs6GU9.js";import{_ as _e}from"./PPFO8UVt.js";import{_ as ke}from"./BBJ9Pu3M.js";import{u as he}from"./DAeYEeCC.js";import"./3SnTawZW.js";import"./DWzdeQ3Z.js";import"./BC_Wu-fv.js";import"./B32ySRXg.js";const xe={class:"space-y-6"},be={class:"inline-flex items-center gap-1.5"},Pe={class:"flex justify-end"},Ce={class:"space-y-3"},Ve={key:0,class:"flex items-center gap-2 text-sm text-success-600 dark:text-success-400"},Ee={key:1,class:"flex items-center gap-2 text-sm text-warning-600 dark:text-warning-400"},$e={key:2,class:"text-xs text-gray-400"},Se={class:"flex justify-end"},Ae={class:"space-y-3"},Ue={class:"flex items-center gap-2 text-sm"},Be={key:1,class:"text-xs text-gray-400",title:"Set a password first to keep a way to sign in"},Fe={key:2,class:"text-xs text-gray-400"},Ne={class:"space-y-4"},Te={class:"flex justify-end"},qe={class:"text-sm text-gray-500"},Ke=ne({__name:"account",async setup(ze){let S,I;const i=le(),y=ie(),L=re(),U=we(),{data:m,refresh:A}=([S,I]=de(()=>he("/api/auth/me","$lZCnZ7VEtB")),S=await S,I(),S),g=$(()=>m.value?.user?.oauthProvider??null),O=$(()=>!!m.value?.user?.hasPassword),_=$(()=>!!g.value&&!O.value),B={google:{label:"Google",icon:"i-lucide-chrome"},github:{label:"GitHub",icon:"i-lucide-github"}},j=$(()=>U.public.demoMode?[]:(U.public.oauthProviders||[]).filter(a=>B[a])),k=u(""),F=u(!1),h=u(""),N=u(!1),T=u(!1),x=u(""),f=u(""),b=u(""),q=u(!1),z=u("");ce(()=>m.value?.user,a=>{a&&(k.value=a.name||"",h.value=a.email||"")},{immediate:!0});const M={"already-linked":"That provider account is already linked to another user.","link-requires-login":"Please sign in before connecting a provider.","domain-not-allowed":"That account’s email domain is not allowed.","org-not-allowed":"You are not a member of an allowed organization.","invalid-state":"Connecting failed (invalid state). Please try again.","access-denied":"Authorization was cancelled.","oauth-failed":"Connecting the provider failed."};ue(()=>{y.query.verified&&i.add({title:"Email verified",color:"success"}),y.query.linked&&(i.add({title:"Account connected",color:"success"}),A());const a=y.query.error;a&&i.add({title:"Could not connect account",description:M[a]||"Please try again.",color:"error"}),(y.query.linked||y.query.error||y.query.verified)&&L.replace({query:{}})});async function Y(){F.value=!0;try{await $fetch(`/api/users/${m.value?.user?.id}`,{method:"PATCH",body:{name:k.value||null}}),await A(),i.add({title:"Display name updated",color:"success"})}catch(a){i.add({title:"Failed to update display name",description:String(a?.message??a),color:"error"})}finally{F.value=!1}}async function G(){N.value=!0;try{await $fetch(`/api/users/${m.value?.user?.id}`,{method:"PATCH",body:{email:h.value||null}}),await A(),i.add({title:"Email updated",color:"success"})}catch(a){i.add({title:"Failed to update email",description:String(a?.message??a),color:"error"})}finally{N.value=!1}}async function K(){T.value=!0;try{await $fetch("/api/auth/send-verify-email",{method:"POST"}),i.add({title:"Verification email sent",description:"Check your inbox.",color:"success"})}catch(a){i.add({title:"Failed to send verification",description:String(a?.message??a),color:"error"})}finally{T.value=!1}}async function W(){if(f.value.length<8){i.add({title:"Password too short",description:"At least 8 characters required",color:"error"});return}if(f.value!==b.value){i.add({title:"Passwords do not match",color:"error"});return}q.value=!0;try{await $fetch("/api/auth/change-password",{method:"POST",body:{currentPassword:x.value,newPassword:f.value}}),x.value="",f.value="",b.value="",i.add({title:"Password changed",color:"success"})}catch(a){i.add({title:"Failed to change password",description:String(a?.message??a),color:"error"})}finally{q.value=!1}}function Z(a){window.location.href=`/api/auth/oauth/${a}/login?link=1`}async function J(a){z.value=a;try{await $fetch(`/api/auth/oauth/${a}/unlink`,{method:"POST"}),await A(),i.add({title:"Account disconnected",color:"success"})}catch(e){i.add({title:"Failed to disconnect",description:String(e?.data?.message??e?.message??e),color:"error"})}finally{z.value=""}}const Q=$(()=>U.public.authEnabled);return(a,e)=>{const X=oe,ee=se,P=pe,C=_e,v=fe,V=ke,D=ye,te=ve;return l(),c("div",xe,[t(Q)?t(m)?.user?(l(),c(R,{key:1},[s(V,{icon:"i-lucide-user",title:"Display name",help:"account.display-name"},{footer:o(()=>[d("div",Pe,[s(v,{color:"primary",loading:t(F),icon:"i-lucide-save",onClick:Y},{default:o(()=>[...e[8]||(e[8]=[r(" Save name ",-1)])]),_:1},8,["loading"])])]),default:o(()=>[s(C,{label:"Display name",name:"name"},{default:o(()=>[s(P,{modelValue:t(k),"onUpdate:modelValue":e[0]||(e[0]=n=>E(k)?k.value=n:null),placeholder:"Your display name (optional)",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),s(V,{icon:"i-lucide-mail",title:"Email address",help:"account.email"},me({default:o(()=>[d("div",Ce,[t(m).user.emailVerified?(l(),c("div",Ve,[s(D,{name:"i-lucide-circle-check-big",class:"size-4"}),e[9]||(e[9]=r(" Verified ",-1))])):t(m).user.email?(l(),c("div",Ee,[s(D,{name:"i-lucide-circle-alert",class:"size-4"}),e[11]||(e[11]=r(" Not verified ",-1)),t(_)?w("",!0):(l(),p(v,{key:0,size:"xs",variant:"soft",color:"warning",loading:t(T),onClick:K},{default:o(()=>[...e[10]||(e[10]=[r(" Send verification email ",-1)])]),_:1},8,["loading"]))])):w("",!0),s(C,{label:"Email",name:"email"},{default:o(()=>[s(P,{modelValue:t(h),"onUpdate:modelValue":e[1]||(e[1]=n=>E(h)?h.value=n:null),type:"email",placeholder:"you@example.com",disabled:t(_),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),t(_)?(l(),c("p",$e,[e[12]||(e[12]=r(" Email is managed by ",-1)),d("strong",null,H(t(g)),1),e[13]||(e[13]=r(". ",-1))])):w("",!0)])]),_:2},[t(_)?void 0:{name:"footer",fn:o(()=>[d("div",Se,[s(v,{color:"primary",loading:t(N),icon:"i-lucide-save",onClick:G},{default:o(()=>[...e[14]||(e[14]=[r(" Save email ",-1)])]),_:1},8,["loading"])])]),key:"0"}]),1024),t(j).length>0?(l(),p(V,{key:0,icon:"i-lucide-link",title:"Connected accounts",help:"account.connected-accounts"},{default:o(()=>[d("div",Ae,[(l(!0),c(R,null,ge(t(j),n=>(l(),c("div",{key:n,class:"flex items-center justify-between gap-3 rounded-md border border-default px-3 py-2"},[d("div",Ue,[s(D,{name:B[n].icon,class:"size-5"},null,8,["name"]),d("span",null,H(B[n].label),1),t(g)===n?(l(),p(te,{key:0,color:"success",variant:"subtle",size:"sm"},{default:o(()=>[...e[15]||(e[15]=[r("Connected",-1)])]),_:1})):w("",!0)]),t(g)===n?(l(),c(R,{key:0},[t(O)?(l(),p(v,{key:0,size:"xs",color:"error",variant:"soft",icon:"i-lucide-unlink",loading:t(z)===n,onClick:ae=>J(n)},{default:o(()=>[...e[16]||(e[16]=[r(" Disconnect ",-1)])]),_:1},8,["loading","onClick"])):(l(),c("span",Be," Set a password to disconnect "))],64)):t(g)?(l(),c("span",Fe,"Another provider is connected")):(l(),p(v,{key:1,size:"xs",variant:"outline",color:"neutral",icon:"i-lucide-plus",onClick:ae=>Z(n)},{default:o(()=>[...e[17]||(e[17]=[r(" Connect ",-1)])]),_:1},8,["onClick"]))]))),128)),e[18]||(e[18]=d("p",{class:"text-xs text-gray-400"},"One provider can be connected per account.",-1))])]),_:1})):w("",!0),t(_)?(l(),p(V,{key:2,icon:"i-lucide-lock",title:"Password"},{default:o(()=>[d("p",qe,[e[20]||(e[20]=r(" Your account is managed by ",-1)),d("strong",null,H(t(g)),1),e[21]||(e[21]=r(". Password management is handled by that provider. ",-1))])]),_:1})):(l(),p(V,{key:1,icon:"i-lucide-lock",title:"Change password",help:"account.password"},{footer:o(()=>[d("div",Te,[s(v,{color:"primary",loading:t(q),icon:"i-lucide-key-round",onClick:W},{default:o(()=>[...e[19]||(e[19]=[r(" Change password ",-1)])]),_:1},8,["loading"])])]),default:o(()=>[d("div",Ne,[s(C,{label:"Current password",name:"currentPassword"},{default:o(()=>[s(P,{modelValue:t(x),"onUpdate:modelValue":e[2]||(e[2]=n=>E(x)?x.value=n:null),type:"password",placeholder:"Current password",autocomplete:"current-password",class:"w-full"},null,8,["modelValue"])]),_:1}),s(C,{label:"New password",name:"newPassword",description:"Minimum 8 characters"},{default:o(()=>[s(P,{modelValue:t(f),"onUpdate:modelValue":e[3]||(e[3]=n=>E(f)?f.value=n:null),type:"password",placeholder:"New password",autocomplete:"new-password",class:"w-full"},null,8,["modelValue"])]),_:1}),s(C,{label:"Confirm new password",name:"confirmPassword"},{default:o(()=>[s(P,{modelValue:t(b),"onUpdate:modelValue":e[4]||(e[4]=n=>E(b)?b.value=n:null),type:"password",placeholder:"Repeat new password",autocomplete:"new-password",class:"w-full"},null,8,["modelValue"])]),_:1})])]),_:1}))],64)):w("",!0):(l(),p(ee,{key:0,color:"warning",icon:"i-lucide-lock-open",title:"Authentication disabled",description:"Enable PIWI_AUTH_ENABLED=true to manage your account."},{description:o(()=>[d("span",be,[e[5]||(e[5]=r(" Enable ",-1)),e[6]||(e[6]=d("code",{class:"font-mono text-xs"},"PIWI_AUTH_ENABLED=true",-1)),e[7]||(e[7]=r(" to manage your account. ",-1)),s(X,{topic:"settings.auth-toggle"})])]),_:1}))])}}});export{Ke as default};
1
+ import{_ as oe}from"./B6hPf4UR.js";import{_ as se}from"./BU6xjw05.js";import{d as ne,b as le,u as ie,a as re,w as de,B as ce,C as ue,c,k as t,f as p,g as o,F as R,j as s,aa as me,q as w,o as l,i as d,m as r,D as pe,l as E,_ as fe,v as ye,t as H,y as ge,s as ve,h as $,r as u,K as we}from"./BrT_Sys2.js";import{_ as _e}from"./ClJkng9p.js";import{_ as ke}from"./CHIbdzqp.js";import{u as he}from"./Dvc1aWpA.js";import"./r3SBLxtE.js";import"./DtXREpk_.js";import"./rw7Hdll3.js";import"./CoKEjZX7.js";const xe={class:"space-y-6"},be={class:"inline-flex items-center gap-1.5"},Pe={class:"flex justify-end"},Ce={class:"space-y-3"},Ve={key:0,class:"flex items-center gap-2 text-sm text-success-600 dark:text-success-400"},Ee={key:1,class:"flex items-center gap-2 text-sm text-warning-600 dark:text-warning-400"},$e={key:2,class:"text-xs text-gray-400"},Se={class:"flex justify-end"},Ae={class:"space-y-3"},Ue={class:"flex items-center gap-2 text-sm"},Be={key:1,class:"text-xs text-gray-400",title:"Set a password first to keep a way to sign in"},Fe={key:2,class:"text-xs text-gray-400"},Ne={class:"space-y-4"},Te={class:"flex justify-end"},qe={class:"text-sm text-gray-500"},Ke=ne({__name:"account",async setup(ze){let S,I;const i=le(),y=ie(),L=re(),U=we(),{data:m,refresh:A}=([S,I]=de(()=>he("/api/auth/me","$lZCnZ7VEtB")),S=await S,I(),S),g=$(()=>m.value?.user?.oauthProvider??null),O=$(()=>!!m.value?.user?.hasPassword),_=$(()=>!!g.value&&!O.value),B={google:{label:"Google",icon:"i-lucide-chrome"},github:{label:"GitHub",icon:"i-lucide-github"}},j=$(()=>U.public.demoMode?[]:(U.public.oauthProviders||[]).filter(a=>B[a])),k=u(""),F=u(!1),h=u(""),N=u(!1),T=u(!1),x=u(""),f=u(""),b=u(""),q=u(!1),z=u("");ce(()=>m.value?.user,a=>{a&&(k.value=a.name||"",h.value=a.email||"")},{immediate:!0});const M={"already-linked":"That provider account is already linked to another user.","link-requires-login":"Please sign in before connecting a provider.","domain-not-allowed":"That account’s email domain is not allowed.","org-not-allowed":"You are not a member of an allowed organization.","invalid-state":"Connecting failed (invalid state). Please try again.","access-denied":"Authorization was cancelled.","oauth-failed":"Connecting the provider failed."};ue(()=>{y.query.verified&&i.add({title:"Email verified",color:"success"}),y.query.linked&&(i.add({title:"Account connected",color:"success"}),A());const a=y.query.error;a&&i.add({title:"Could not connect account",description:M[a]||"Please try again.",color:"error"}),(y.query.linked||y.query.error||y.query.verified)&&L.replace({query:{}})});async function Y(){F.value=!0;try{await $fetch(`/api/users/${m.value?.user?.id}`,{method:"PATCH",body:{name:k.value||null}}),await A(),i.add({title:"Display name updated",color:"success"})}catch(a){i.add({title:"Failed to update display name",description:String(a?.message??a),color:"error"})}finally{F.value=!1}}async function G(){N.value=!0;try{await $fetch(`/api/users/${m.value?.user?.id}`,{method:"PATCH",body:{email:h.value||null}}),await A(),i.add({title:"Email updated",color:"success"})}catch(a){i.add({title:"Failed to update email",description:String(a?.message??a),color:"error"})}finally{N.value=!1}}async function K(){T.value=!0;try{await $fetch("/api/auth/send-verify-email",{method:"POST"}),i.add({title:"Verification email sent",description:"Check your inbox.",color:"success"})}catch(a){i.add({title:"Failed to send verification",description:String(a?.message??a),color:"error"})}finally{T.value=!1}}async function W(){if(f.value.length<8){i.add({title:"Password too short",description:"At least 8 characters required",color:"error"});return}if(f.value!==b.value){i.add({title:"Passwords do not match",color:"error"});return}q.value=!0;try{await $fetch("/api/auth/change-password",{method:"POST",body:{currentPassword:x.value,newPassword:f.value}}),x.value="",f.value="",b.value="",i.add({title:"Password changed",color:"success"})}catch(a){i.add({title:"Failed to change password",description:String(a?.message??a),color:"error"})}finally{q.value=!1}}function Z(a){window.location.href=`/api/auth/oauth/${a}/login?link=1`}async function J(a){z.value=a;try{await $fetch(`/api/auth/oauth/${a}/unlink`,{method:"POST"}),await A(),i.add({title:"Account disconnected",color:"success"})}catch(e){i.add({title:"Failed to disconnect",description:String(e?.data?.message??e?.message??e),color:"error"})}finally{z.value=""}}const Q=$(()=>U.public.authEnabled);return(a,e)=>{const X=oe,ee=se,P=pe,C=_e,v=fe,V=ke,D=ye,te=ve;return l(),c("div",xe,[t(Q)?t(m)?.user?(l(),c(R,{key:1},[s(V,{icon:"i-lucide-user",title:"Display name",help:"account.display-name"},{footer:o(()=>[d("div",Pe,[s(v,{color:"primary",loading:t(F),icon:"i-lucide-save",onClick:Y},{default:o(()=>[...e[8]||(e[8]=[r(" Save name ",-1)])]),_:1},8,["loading"])])]),default:o(()=>[s(C,{label:"Display name",name:"name"},{default:o(()=>[s(P,{modelValue:t(k),"onUpdate:modelValue":e[0]||(e[0]=n=>E(k)?k.value=n:null),placeholder:"Your display name (optional)",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),s(V,{icon:"i-lucide-mail",title:"Email address",help:"account.email"},me({default:o(()=>[d("div",Ce,[t(m).user.emailVerified?(l(),c("div",Ve,[s(D,{name:"i-lucide-circle-check-big",class:"size-4"}),e[9]||(e[9]=r(" Verified ",-1))])):t(m).user.email?(l(),c("div",Ee,[s(D,{name:"i-lucide-circle-alert",class:"size-4"}),e[11]||(e[11]=r(" Not verified ",-1)),t(_)?w("",!0):(l(),p(v,{key:0,size:"xs",variant:"soft",color:"warning",loading:t(T),onClick:K},{default:o(()=>[...e[10]||(e[10]=[r(" Send verification email ",-1)])]),_:1},8,["loading"]))])):w("",!0),s(C,{label:"Email",name:"email"},{default:o(()=>[s(P,{modelValue:t(h),"onUpdate:modelValue":e[1]||(e[1]=n=>E(h)?h.value=n:null),type:"email",placeholder:"you@example.com",disabled:t(_),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),t(_)?(l(),c("p",$e,[e[12]||(e[12]=r(" Email is managed by ",-1)),d("strong",null,H(t(g)),1),e[13]||(e[13]=r(". ",-1))])):w("",!0)])]),_:2},[t(_)?void 0:{name:"footer",fn:o(()=>[d("div",Se,[s(v,{color:"primary",loading:t(N),icon:"i-lucide-save",onClick:G},{default:o(()=>[...e[14]||(e[14]=[r(" Save email ",-1)])]),_:1},8,["loading"])])]),key:"0"}]),1024),t(j).length>0?(l(),p(V,{key:0,icon:"i-lucide-link",title:"Connected accounts",help:"account.connected-accounts"},{default:o(()=>[d("div",Ae,[(l(!0),c(R,null,ge(t(j),n=>(l(),c("div",{key:n,class:"flex items-center justify-between gap-3 rounded-md border border-default px-3 py-2"},[d("div",Ue,[s(D,{name:B[n].icon,class:"size-5"},null,8,["name"]),d("span",null,H(B[n].label),1),t(g)===n?(l(),p(te,{key:0,color:"success",variant:"subtle",size:"sm"},{default:o(()=>[...e[15]||(e[15]=[r("Connected",-1)])]),_:1})):w("",!0)]),t(g)===n?(l(),c(R,{key:0},[t(O)?(l(),p(v,{key:0,size:"xs",color:"error",variant:"soft",icon:"i-lucide-unlink",loading:t(z)===n,onClick:ae=>J(n)},{default:o(()=>[...e[16]||(e[16]=[r(" Disconnect ",-1)])]),_:1},8,["loading","onClick"])):(l(),c("span",Be," Set a password to disconnect "))],64)):t(g)?(l(),c("span",Fe,"Another provider is connected")):(l(),p(v,{key:1,size:"xs",variant:"outline",color:"neutral",icon:"i-lucide-plus",onClick:ae=>Z(n)},{default:o(()=>[...e[17]||(e[17]=[r(" Connect ",-1)])]),_:1},8,["onClick"]))]))),128)),e[18]||(e[18]=d("p",{class:"text-xs text-gray-400"},"One provider can be connected per account.",-1))])]),_:1})):w("",!0),t(_)?(l(),p(V,{key:2,icon:"i-lucide-lock",title:"Password"},{default:o(()=>[d("p",qe,[e[20]||(e[20]=r(" Your account is managed by ",-1)),d("strong",null,H(t(g)),1),e[21]||(e[21]=r(". Password management is handled by that provider. ",-1))])]),_:1})):(l(),p(V,{key:1,icon:"i-lucide-lock",title:"Change password",help:"account.password"},{footer:o(()=>[d("div",Te,[s(v,{color:"primary",loading:t(q),icon:"i-lucide-key-round",onClick:W},{default:o(()=>[...e[19]||(e[19]=[r(" Change password ",-1)])]),_:1},8,["loading"])])]),default:o(()=>[d("div",Ne,[s(C,{label:"Current password",name:"currentPassword"},{default:o(()=>[s(P,{modelValue:t(x),"onUpdate:modelValue":e[2]||(e[2]=n=>E(x)?x.value=n:null),type:"password",placeholder:"Current password",autocomplete:"current-password",class:"w-full"},null,8,["modelValue"])]),_:1}),s(C,{label:"New password",name:"newPassword",description:"Minimum 8 characters"},{default:o(()=>[s(P,{modelValue:t(f),"onUpdate:modelValue":e[3]||(e[3]=n=>E(f)?f.value=n:null),type:"password",placeholder:"New password",autocomplete:"new-password",class:"w-full"},null,8,["modelValue"])]),_:1}),s(C,{label:"Confirm new password",name:"confirmPassword"},{default:o(()=>[s(P,{modelValue:t(b),"onUpdate:modelValue":e[4]||(e[4]=n=>E(b)?b.value=n:null),type:"password",placeholder:"Repeat new password",autocomplete:"new-password",class:"w-full"},null,8,["modelValue"])]),_:1})])]),_:1}))],64)):w("",!0):(l(),p(ee,{key:0,color:"warning",icon:"i-lucide-lock-open",title:"Authentication disabled",description:"Enable PIWI_AUTH_ENABLED=true to manage your account."},{description:o(()=>[d("span",be,[e[5]||(e[5]=r(" Enable ",-1)),e[6]||(e[6]=d("code",{class:"font-mono text-xs"},"PIWI_AUTH_ENABLED=true",-1)),e[7]||(e[7]=r(" to manage your account. ",-1)),s(X,{topic:"settings.auth-toggle"})])]),_:1}))])}}});export{Ke as default};
@@ -1 +1 @@
1
- import{d as o,u as s,w as c,n as u,o as p,c as i}from"./B8fs6GU9.js";const d=o({__name:"compare",async setup(_){let t,n;const e=s(),a=e.params.id;{const r=new URLSearchParams;r.set("tab","compare"),e.query.runA&&r.set("runA",String(e.query.runA)),e.query.runB&&r.set("runB",String(e.query.runB)),[t,n]=c(()=>u(`/projects/${a}?${r.toString()}`,{replace:!0})),await t,n()}return(r,m)=>(p(),i("div"))}});export{d as default};
1
+ import{d as o,u as s,w as c,n as u,o as p,c as i}from"./BrT_Sys2.js";const d=o({__name:"compare",async setup(_){let t,n;const e=s(),a=e.params.id;{const r=new URLSearchParams;r.set("tab","compare"),e.query.runA&&r.set("runA",String(e.query.runA)),e.query.runB&&r.set("runB",String(e.query.runB)),[t,n]=c(()=>u(`/projects/${a}?${r.toString()}`,{replace:!0})),await t,n()}return(r,m)=>(p(),i("div"))}});export{d as default};
@@ -1 +1 @@
1
- import{ab as b,K as E}from"./B8fs6GU9.js";const v="piwi-demo-run-events";let o=null;const u=new Set;function S(e){return o||(o=new BroadcastChannel(v),o.onmessage=n=>{for(const l of u)l(n.data)}),u.add(e),()=>{u.delete(e),u.size===0&&o&&(o.close(),o=null)}}let t=null,r=null;const s=new Set;let i=null;const p=1e3,w=3e4,y=[5*6e4,15*6e4,30*6e4];let a=Date.now(),c=!1;function f(){a=Date.now()}function h(){const e=Date.now()-a;let n=1;for(const l of y)if(e>=l)n*=2;else break;return Math.min(p*n,w)}const C=new Set(["run-initialising","run-started","run-finalizing","run-finished","run-submitted","run-cancelled"]);function d(e){C.has(e)&&(i&&clearTimeout(i),i=setTimeout(()=>{for(const n of s)n()},h()))}function m(){t||(t=new EventSource("/api/stream"),t.onmessage=e=>{try{const n=JSON.parse(e.data);d(n.type)}catch{}},t.onerror=()=>{})}function g(){if(f(),document.visibilityState==="hidden")t&&(t.close(),t=null),i&&(clearTimeout(i),i=null);else if(s.size>0){m();for(const e of s)e()}}function A(){if(!c){c=!0;const e=["mousemove","keydown","pointerdown","scroll"];for(const n of e)window.addEventListener(n,f,{passive:!0});document.addEventListener("visibilitychange",g)}if(E().public.demoMode){if(r)return;r=S(e=>{e.scope==="global"&&d(e.event.type)});return}document.visibilityState!=="hidden"&&m()}function T(){s.size>0||(t&&(t.close(),t=null),r&&(r(),r=null),i&&(clearTimeout(i),i=null))}function N(e){A(),s.add(e),b(()=>{s.delete(e),T()})}export{S as s,N as u};
1
+ import{ab as b,K as E}from"./BrT_Sys2.js";const v="piwi-demo-run-events";let o=null;const u=new Set;function S(e){return o||(o=new BroadcastChannel(v),o.onmessage=n=>{for(const l of u)l(n.data)}),u.add(e),()=>{u.delete(e),u.size===0&&o&&(o.close(),o=null)}}let t=null,r=null;const s=new Set;let i=null;const p=1e3,w=3e4,y=[5*6e4,15*6e4,30*6e4];let a=Date.now(),c=!1;function f(){a=Date.now()}function h(){const e=Date.now()-a;let n=1;for(const l of y)if(e>=l)n*=2;else break;return Math.min(p*n,w)}const C=new Set(["run-initialising","run-started","run-finalizing","run-finished","run-submitted","run-cancelled"]);function d(e){C.has(e)&&(i&&clearTimeout(i),i=setTimeout(()=>{for(const n of s)n()},h()))}function m(){t||(t=new EventSource("/api/stream"),t.onmessage=e=>{try{const n=JSON.parse(e.data);d(n.type)}catch{}},t.onerror=()=>{})}function g(){if(f(),document.visibilityState==="hidden")t&&(t.close(),t=null),i&&(clearTimeout(i),i=null);else if(s.size>0){m();for(const e of s)e()}}function A(){if(!c){c=!0;const e=["mousemove","keydown","pointerdown","scroll"];for(const n of e)window.addEventListener(n,f,{passive:!0});document.addEventListener("visibilitychange",g)}if(E().public.demoMode){if(r)return;r=S(e=>{e.scope==="global"&&d(e.event.type)});return}document.visibilityState!=="hidden"&&m()}function T(){s.size>0||(t&&(t.close(),t=null),r&&(r(),r=null),i&&(clearTimeout(i),i=null))}function N(e){A(),s.add(e),b(()=>{s.delete(e),T()})}export{S as s,N as u};
@@ -1 +1 @@
1
- import{d as S,o as v,c as h,k as t,F as J,i as x,p as V,T as E,m as l,t as K,j as n,v as A,f as L,g as a,_ as T,q,l as F,h as y,r as U,G as M,E as R}from"./B8fs6GU9.js";import{_ as G}from"./OG2n3p77.js";import{u as H}from"./lRMjXqiA.js";import{u as Q}from"./DWzdeQ3Z.js";function W(i){let o=i,u=null,j=null;const k=i.lastIndexOf(":");if(k>0){const m=i.slice(k+1);if(/^\d+$/.test(m)){const c=i.slice(0,k),b=c.lastIndexOf(":");if(b>0){const g=c.slice(b+1);/^\d+$/.test(g)?(j=parseInt(m,10),u=parseInt(g,10),o=c.slice(0,b)):(u=parseInt(m,10),o=c)}else u=parseInt(m,10),o=c}}return{filePath:o,line:u,column:j}}const X={class:"group/ide inline-flex items-center gap-1 min-w-0 max-w-full align-middle"},Y=["title","aria-label"],Z={type:"button",class:"shrink-0 inline-flex items-center rounded p-0.5 text-muted cursor-pointer transition-colors hover:bg-elevated/60 hover:text-default","aria-label":"Choose how to open in IDE",title:"Choose how to open"},ee={class:"w-56 p-1 space-y-0.5"},te=S({__name:"OpenInIdeLink",props:{filePath:{},line:{default:null},column:{default:null},location:{},projectKey:{},projectName:{},mono:{type:Boolean,default:!0}},setup(i){const o=i,{openInIde:u,openInVscode:j,openViaJetbrainsUrl:k,openViaJetbrainsHttp:m,resolveAbsPath:c,openSettings:b}=H(),{copy:g}=Q(),P=y(()=>o.filePath?{filePath:o.filePath,line:o.line??null,column:o.column??null}:o.location?W(o.location):{filePath:"",line:null,column:null}),f=y(()=>P.value.filePath),w=y(()=>P.value.line),I=y(()=>w.value?`${f.value}:${w.value}`:f.value),O=y(()=>c(f.value,o.projectKey)),r=y(()=>({filePath:f.value,line:w.value,column:P.value.column,projectKey:o.projectKey??null,projectName:o.projectName??null})),C=U(!1),N=U(!1);function _(){N.value=!0,M(()=>{C.value=!0})}function p($){C.value=!1,$()}return($,e)=>{const z=A,d=T,B=G,D=R;return v(),h("span",X,[t(f)?(v(),h(J,{key:0},[x("button",{type:"button",class:"inline-flex items-center gap-1 min-w-0 max-w-full cursor-pointer text-left",title:`Open ${t(I)} in IDE`,"aria-label":`Open ${t(I)} in IDE`,onClick:e[0]||(e[0]=s=>t(u)(t(r)))},[x("span",{class:V([i.mono?"font-mono":"","truncate underline decoration-dashed decoration-1 underline-offset-2 decoration-gray-400/70 dark:decoration-gray-500/70 transition-colors group-hover/ide:decoration-current"])},[E($.$slots,"default",{},()=>[l(K(t(I)),1)])],2),n(z,{name:"i-lucide-external-link",class:"size-3 shrink-0 opacity-0 transition-opacity group-hover/ide:opacity-100"})],8,Y),t(N)?(v(),L(D,{key:1,open:t(C),"onUpdate:open":e[8]||(e[8]=s=>F(C)?C.value=s:null)},{content:a(()=>[x("div",ee,[e[16]||(e[16]=x("p",{class:"text-xs font-medium text-muted px-2 pt-1 pb-1"},"Open in IDE",-1)),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-wand-sparkles",onClick:e[1]||(e[1]=s=>p(()=>t(u)({...t(r),method:"auto"})))},{default:a(()=>[...e[9]||(e[9]=[l(" Auto (try all) ",-1)])]),_:1}),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-code",onClick:e[2]||(e[2]=s=>p(()=>t(j)(t(r))))},{default:a(()=>[...e[10]||(e[10]=[l(" Open in VS Code ",-1)])]),_:1}),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-square-code",onClick:e[3]||(e[3]=s=>p(()=>t(k)(t(r))))},{default:a(()=>[...e[11]||(e[11]=[l(" JetBrains (URL) ",-1)])]),_:1}),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-server",onClick:e[4]||(e[4]=s=>p(()=>t(m)(t(r))))},{default:a(()=>[...e[12]||(e[12]=[l(" JetBrains (local server) ",-1)])]),_:1}),n(B,{class:"my-1"}),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-clipboard",onClick:e[5]||(e[5]=s=>p(()=>t(g)(t(f),{toast:"Path copied"})))},{default:a(()=>[...e[13]||(e[13]=[l(" Copy path ",-1)])]),_:1}),t(O)?(v(),L(d,{key:0,block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-clipboard-check",onClick:e[6]||(e[6]=s=>p(()=>t(g)(t(O),{toast:"Absolute path copied"})))},{default:a(()=>[...e[14]||(e[14]=[l(" Copy absolute path ",-1)])]),_:1})):q("",!0),n(B,{class:"my-1"}),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-settings",onClick:e[7]||(e[7]=s=>p(()=>t(b)({projectKey:t(r).projectKey?String(t(r).projectKey):null,projectName:t(r).projectName})))},{default:a(()=>[...e[15]||(e[15]=[l(" Configure… ",-1)])]),_:1})])]),default:a(()=>[x("button",Z,[n(z,{name:"i-lucide-chevron-down",class:"size-3.5"})])]),_:1},8,["open"])):(v(),h("button",{key:0,type:"button",class:"shrink-0 inline-flex items-center rounded p-0.5 text-muted cursor-pointer transition-opacity hover:bg-elevated/60 hover:text-default opacity-100 sm:opacity-0 sm:group-hover/ide:opacity-100 focus-visible:opacity-100","aria-label":"Choose how to open in IDE",title:"Choose how to open",onClick:_},[n(z,{name:"i-lucide-chevron-down",class:"size-3.5"})]))],64)):(v(),h("span",{key:1,class:V([i.mono?"font-mono":"","truncate"])},[E($.$slots,"default",{},()=>[l(K(t(I)),1)])],2))])}}}),ae=Object.assign(te,{__name:"OpenInIdeLink"});export{ae as _};
1
+ import{d as S,o as v,c as h,k as t,F as J,i as x,p as V,T as E,m as l,t as K,j as n,v as A,f as L,g as a,_ as T,q,l as F,h as y,r as U,G as M,E as R}from"./BrT_Sys2.js";import{_ as G}from"./BE8ykmwr.js";import{u as H}from"./za5M7BGh.js";import{u as Q}from"./DtXREpk_.js";function W(i){let o=i,u=null,j=null;const k=i.lastIndexOf(":");if(k>0){const m=i.slice(k+1);if(/^\d+$/.test(m)){const c=i.slice(0,k),b=c.lastIndexOf(":");if(b>0){const g=c.slice(b+1);/^\d+$/.test(g)?(j=parseInt(m,10),u=parseInt(g,10),o=c.slice(0,b)):(u=parseInt(m,10),o=c)}else u=parseInt(m,10),o=c}}return{filePath:o,line:u,column:j}}const X={class:"group/ide inline-flex items-center gap-1 min-w-0 max-w-full align-middle"},Y=["title","aria-label"],Z={type:"button",class:"shrink-0 inline-flex items-center rounded p-0.5 text-muted cursor-pointer transition-colors hover:bg-elevated/60 hover:text-default","aria-label":"Choose how to open in IDE",title:"Choose how to open"},ee={class:"w-56 p-1 space-y-0.5"},te=S({__name:"OpenInIdeLink",props:{filePath:{},line:{default:null},column:{default:null},location:{},projectKey:{},projectName:{},mono:{type:Boolean,default:!0}},setup(i){const o=i,{openInIde:u,openInVscode:j,openViaJetbrainsUrl:k,openViaJetbrainsHttp:m,resolveAbsPath:c,openSettings:b}=H(),{copy:g}=Q(),P=y(()=>o.filePath?{filePath:o.filePath,line:o.line??null,column:o.column??null}:o.location?W(o.location):{filePath:"",line:null,column:null}),f=y(()=>P.value.filePath),w=y(()=>P.value.line),I=y(()=>w.value?`${f.value}:${w.value}`:f.value),O=y(()=>c(f.value,o.projectKey)),r=y(()=>({filePath:f.value,line:w.value,column:P.value.column,projectKey:o.projectKey??null,projectName:o.projectName??null})),C=U(!1),N=U(!1);function _(){N.value=!0,M(()=>{C.value=!0})}function p($){C.value=!1,$()}return($,e)=>{const z=A,d=T,B=G,D=R;return v(),h("span",X,[t(f)?(v(),h(J,{key:0},[x("button",{type:"button",class:"inline-flex items-center gap-1 min-w-0 max-w-full cursor-pointer text-left",title:`Open ${t(I)} in IDE`,"aria-label":`Open ${t(I)} in IDE`,onClick:e[0]||(e[0]=s=>t(u)(t(r)))},[x("span",{class:V([i.mono?"font-mono":"","truncate underline decoration-dashed decoration-1 underline-offset-2 decoration-gray-400/70 dark:decoration-gray-500/70 transition-colors group-hover/ide:decoration-current"])},[E($.$slots,"default",{},()=>[l(K(t(I)),1)])],2),n(z,{name:"i-lucide-external-link",class:"size-3 shrink-0 opacity-0 transition-opacity group-hover/ide:opacity-100"})],8,Y),t(N)?(v(),L(D,{key:1,open:t(C),"onUpdate:open":e[8]||(e[8]=s=>F(C)?C.value=s:null)},{content:a(()=>[x("div",ee,[e[16]||(e[16]=x("p",{class:"text-xs font-medium text-muted px-2 pt-1 pb-1"},"Open in IDE",-1)),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-wand-sparkles",onClick:e[1]||(e[1]=s=>p(()=>t(u)({...t(r),method:"auto"})))},{default:a(()=>[...e[9]||(e[9]=[l(" Auto (try all) ",-1)])]),_:1}),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-code",onClick:e[2]||(e[2]=s=>p(()=>t(j)(t(r))))},{default:a(()=>[...e[10]||(e[10]=[l(" Open in VS Code ",-1)])]),_:1}),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-square-code",onClick:e[3]||(e[3]=s=>p(()=>t(k)(t(r))))},{default:a(()=>[...e[11]||(e[11]=[l(" JetBrains (URL) ",-1)])]),_:1}),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-server",onClick:e[4]||(e[4]=s=>p(()=>t(m)(t(r))))},{default:a(()=>[...e[12]||(e[12]=[l(" JetBrains (local server) ",-1)])]),_:1}),n(B,{class:"my-1"}),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-clipboard",onClick:e[5]||(e[5]=s=>p(()=>t(g)(t(f),{toast:"Path copied"})))},{default:a(()=>[...e[13]||(e[13]=[l(" Copy path ",-1)])]),_:1}),t(O)?(v(),L(d,{key:0,block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-clipboard-check",onClick:e[6]||(e[6]=s=>p(()=>t(g)(t(O),{toast:"Absolute path copied"})))},{default:a(()=>[...e[14]||(e[14]=[l(" Copy absolute path ",-1)])]),_:1})):q("",!0),n(B,{class:"my-1"}),n(d,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-settings",onClick:e[7]||(e[7]=s=>p(()=>t(b)({projectKey:t(r).projectKey?String(t(r).projectKey):null,projectName:t(r).projectName})))},{default:a(()=>[...e[15]||(e[15]=[l(" Configure… ",-1)])]),_:1})])]),default:a(()=>[x("button",Z,[n(z,{name:"i-lucide-chevron-down",class:"size-3.5"})])]),_:1},8,["open"])):(v(),h("button",{key:0,type:"button",class:"shrink-0 inline-flex items-center rounded p-0.5 text-muted cursor-pointer transition-opacity hover:bg-elevated/60 hover:text-default opacity-100 sm:opacity-0 sm:group-hover/ide:opacity-100 focus-visible:opacity-100","aria-label":"Choose how to open in IDE",title:"Choose how to open",onClick:_},[n(z,{name:"i-lucide-chevron-down",class:"size-3.5"})]))],64)):(v(),h("span",{key:1,class:V([i.mono?"font-mono":"","truncate"])},[E($.$slots,"default",{},()=>[l(K(t(I)),1)])],2))])}}}),ae=Object.assign(te,{__name:"OpenInIdeLink"});export{ae as _};