@piwitests/server 0.25.0 → 0.26.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 (2468) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/3HmftUHT.js +1 -0
  3. package/.output/public/_nuxt/9oKY4Zb7.js +1 -0
  4. package/.output/public/_nuxt/B0eHOux4.js +1 -0
  5. package/.output/public/_nuxt/B1KjIR-q.js +1 -0
  6. package/.output/public/_nuxt/B4NjylBn.js +1 -0
  7. package/.output/public/_nuxt/B6djubIK.js +1 -0
  8. package/.output/public/_nuxt/B7uPoZ7T.js +1 -0
  9. package/.output/public/_nuxt/B7zo6PK8.js +1 -0
  10. package/.output/public/_nuxt/B8tezsWe.js +2 -0
  11. package/.output/public/_nuxt/BIamiwb7.js +5 -0
  12. package/.output/public/_nuxt/BL8cYWsR.js +1 -0
  13. package/.output/public/_nuxt/BMlKQMjM.js +1 -0
  14. package/.output/public/_nuxt/BO4sfkbw.js +1 -0
  15. package/.output/public/_nuxt/BOn5q0rT.js +1 -0
  16. package/.output/public/_nuxt/BPhGDGAR.js +1 -0
  17. package/.output/public/_nuxt/BTG_PmM5.js +1 -0
  18. package/.output/public/_nuxt/BV8EzO8q.js +1 -0
  19. package/.output/public/_nuxt/BY9A1aOT.js +1 -0
  20. package/.output/public/_nuxt/Bb_1uAHn.js +1 -0
  21. package/.output/public/_nuxt/BdQ7kfxJ.js +254 -0
  22. package/.output/public/_nuxt/BdyXNI2_.js +1 -0
  23. package/.output/public/_nuxt/Be0bwdsi.js +1 -0
  24. package/.output/public/_nuxt/Bg63qh8W.js +1 -0
  25. package/.output/public/_nuxt/Bh2WA4IJ.js +1 -0
  26. package/.output/public/_nuxt/BilJoEne.js +1 -0
  27. package/.output/public/_nuxt/BkHJoHpc.js +1 -0
  28. package/.output/public/_nuxt/BnhWd06P.js +1 -0
  29. package/.output/public/_nuxt/Bo73sAu8.js +1 -0
  30. package/.output/public/_nuxt/Bp2zrrkV.js +1 -0
  31. package/.output/public/_nuxt/Bp55g9gr.js +7 -0
  32. package/.output/public/_nuxt/BsGvSoPC.js +1 -0
  33. package/.output/public/_nuxt/BtcDY0Du.js +1 -0
  34. package/.output/public/_nuxt/C2hIM5f9.js +1 -0
  35. package/.output/public/_nuxt/C2yZcDch.js +1 -0
  36. package/.output/public/_nuxt/C5X_N4R7.js +79 -0
  37. package/.output/public/_nuxt/C6R4tyud.js +1 -0
  38. package/.output/public/_nuxt/C9A3sPDo.js +1 -0
  39. package/.output/public/_nuxt/CEgRB8H9.js +9 -0
  40. package/.output/public/_nuxt/CFKbXp6V.js +17 -0
  41. package/.output/public/_nuxt/CFg5qdS0.js +1 -0
  42. package/.output/public/_nuxt/CHWW6xiX.js +1 -0
  43. package/.output/public/_nuxt/CIPvUOic.js +2 -0
  44. package/.output/public/_nuxt/CK2AMqz_.js +1 -0
  45. package/.output/public/_nuxt/CLrLFf3s.js +4 -0
  46. package/.output/public/_nuxt/CMVTTE_g.js +1 -0
  47. package/.output/public/_nuxt/CPrVhXJk.js +1 -0
  48. package/.output/public/_nuxt/CTFUlsXp.js +1 -0
  49. package/.output/public/_nuxt/CUWrUpTl.js +1 -0
  50. package/.output/public/_nuxt/CUjzhXN1.js +1 -0
  51. package/.output/public/_nuxt/CVcFbORW.js +9 -0
  52. package/.output/public/_nuxt/CY1UsEbI.js +1 -0
  53. package/.output/public/_nuxt/CZ6WR7uw.js +1 -0
  54. package/.output/public/_nuxt/CZXeJs2k.js +1 -0
  55. package/.output/public/_nuxt/CZlz5y13.js +1 -0
  56. package/.output/public/_nuxt/C_eXufkv.js +1 -0
  57. package/.output/public/_nuxt/CbzgEkmW.js +2 -0
  58. package/.output/public/_nuxt/CfV2N201.js +1 -0
  59. package/.output/public/_nuxt/Cf_a8ynB.js +2 -0
  60. package/.output/public/_nuxt/ChlP20A5.js +6 -0
  61. package/.output/public/_nuxt/CkV_UG8j.js +1 -0
  62. package/.output/public/_nuxt/CrZhoZuI.js +1 -0
  63. package/.output/public/_nuxt/CrsaY0R_.js +1 -0
  64. package/.output/public/_nuxt/CsGsLxHg.js +1 -0
  65. package/.output/public/_nuxt/CsJ9Ce4U.js +1 -0
  66. package/.output/public/_nuxt/CxRTKV-K.js +44 -0
  67. package/.output/public/_nuxt/CxspCKpR.js +5 -0
  68. package/.output/public/_nuxt/CxwnFFD0.js +1 -0
  69. package/.output/public/_nuxt/CyWOerIG.js +1 -0
  70. package/.output/public/_nuxt/D0TpBpCc.js +1 -0
  71. package/.output/public/_nuxt/D0XWJGhG.js +1 -0
  72. package/.output/public/_nuxt/D3LyIeiJ.js +1 -0
  73. package/.output/public/_nuxt/D56yp7m9.js +1 -0
  74. package/.output/public/_nuxt/D5SN7rPK.js +1 -0
  75. package/.output/public/_nuxt/D72Ce8Ff.js +1 -0
  76. package/.output/public/_nuxt/DCeZxpxe.js +5 -0
  77. package/.output/public/_nuxt/DKgbchez.js +1 -0
  78. package/.output/public/_nuxt/DKhqIou2.js +1 -0
  79. package/.output/public/_nuxt/DLN-CQXF.js +5 -0
  80. package/.output/public/_nuxt/DPPhFZOr.js +1 -0
  81. package/.output/public/_nuxt/DR1jFptD.js +1 -0
  82. package/.output/public/_nuxt/DTtizz85.js +1 -0
  83. package/.output/public/_nuxt/DUC3QnqW.js +4 -0
  84. package/.output/public/_nuxt/DVIIj6Vv.js +1 -0
  85. package/.output/public/_nuxt/D_SD71Qf.js +1 -0
  86. package/.output/public/_nuxt/DadksxQ9.js +1 -0
  87. package/.output/public/_nuxt/DcccidY5.js +4 -0
  88. package/.output/public/_nuxt/DqkCbAzo.js +1 -0
  89. package/.output/public/_nuxt/Drh1_ASq.js +1 -0
  90. package/.output/public/_nuxt/DtGJeysS.js +1 -0
  91. package/.output/public/_nuxt/DwH4SIZE.js +1 -0
  92. package/.output/public/_nuxt/DwZS0oRm.js +2 -0
  93. package/.output/public/_nuxt/DxPZIuWy.js +1 -0
  94. package/.output/public/_nuxt/Dyb1FouX.js +1 -0
  95. package/.output/public/_nuxt/DzJa19LG.js +1 -0
  96. package/.output/public/_nuxt/EJllK0wm.js +1 -0
  97. package/.output/public/_nuxt/G2J1dVVb.js +1 -0
  98. package/.output/public/_nuxt/Gn1Ns00e.js +3 -0
  99. package/.output/public/_nuxt/HGYIpJtg.js +1 -0
  100. package/.output/public/_nuxt/IoE3eJ9F.js +1 -0
  101. package/.output/public/_nuxt/LWIyaZKe.js +1 -0
  102. package/.output/public/_nuxt/Q2oJNyXL.js +1 -0
  103. package/.output/public/_nuxt/R7AVOWi_.js +1 -0
  104. package/.output/public/_nuxt/Sx5-c-bZ.js +1 -0
  105. package/.output/public/_nuxt/WZXZeGYt.js +1 -0
  106. package/.output/public/_nuxt/builds/latest.json +1 -1
  107. package/.output/public/_nuxt/builds/meta/a5fb24cc-65e3-4e55-aa12-038fe2de4754.json +1 -0
  108. package/.output/public/_nuxt/dg6uXTyR.js +1 -0
  109. package/.output/public/_nuxt/entry.BFe0Ua9k.css +1 -0
  110. package/.output/public/_nuxt/i7znB42v.js +1 -0
  111. package/.output/public/_nuxt/igDJCTgt.js +1 -0
  112. package/.output/public/_nuxt/j2eGYaRa.js +1 -0
  113. package/.output/public/_nuxt/jv8U_Tup.js +1 -0
  114. package/.output/public/_nuxt/oA84LLqO.js +1 -0
  115. package/.output/public/_nuxt/r-HZNbp3.js +5 -0
  116. package/.output/public/_nuxt/r6zkA1SE.js +1 -0
  117. package/.output/public/_nuxt/rPG7kzfL.js +1 -0
  118. package/.output/public/_nuxt/vcSKeWsW.js +1 -0
  119. package/.output/public/_nuxt/xKX9IHe3.js +2 -0
  120. package/.output/public/demo/seed.version.json +2 -2
  121. package/.output/server/chunks/_/collect.mjs +1 -1
  122. package/.output/server/chunks/_/icons2.mjs +11506 -0
  123. package/.output/server/chunks/_/icons2.mjs.map +1 -0
  124. package/.output/server/chunks/_/markers.mjs +3 -3
  125. package/.output/server/chunks/_/markers.mjs.map +1 -1
  126. package/.output/server/chunks/_/scope.mjs +3 -0
  127. package/.output/server/chunks/_/scope.mjs.map +1 -1
  128. package/.output/server/chunks/_/users.mjs +15 -2
  129. package/.output/server/chunks/_/users.mjs.map +1 -1
  130. package/.output/server/chunks/build/Alert-gs8RgKxH.mjs +479 -0
  131. package/.output/server/chunks/build/Alert-gs8RgKxH.mjs.map +1 -0
  132. package/.output/server/chunks/build/Breadcrumb-DtV_L8Gt.mjs +522 -0
  133. package/.output/server/chunks/build/Breadcrumb-DtV_L8Gt.mjs.map +1 -0
  134. package/.output/server/chunks/build/BreadcrumbNav-DBnGj5Jq.mjs +111 -0
  135. package/.output/server/chunks/build/BreadcrumbNav-DBnGj5Jq.mjs.map +1 -0
  136. package/.output/server/chunks/build/BrowserBadge-vFb1ERG_.mjs +89 -0
  137. package/.output/server/chunks/build/BrowserBadge-vFb1ERG_.mjs.map +1 -0
  138. package/.output/server/chunks/build/ChartMarkerLines-BXqUpUcs.mjs +113 -0
  139. package/.output/server/chunks/build/ChartMarkerLines-BXqUpUcs.mjs.map +1 -0
  140. package/.output/server/chunks/build/ChartTooltip-DoF6Smyc.mjs +298 -0
  141. package/.output/server/chunks/build/ChartTooltip-DoF6Smyc.mjs.map +1 -0
  142. package/.output/server/chunks/build/Checkbox-ChSYhiUz.mjs +746 -0
  143. package/.output/server/chunks/build/Checkbox-ChSYhiUz.mjs.map +1 -0
  144. package/.output/server/chunks/build/CodeBlock-CmvKHaq8.mjs +54 -0
  145. package/.output/server/chunks/build/CodeBlock-CmvKHaq8.mjs.map +1 -0
  146. package/.output/server/chunks/build/DashboardNavbar-C3PsNVJt.mjs +270 -0
  147. package/.output/server/chunks/build/DashboardNavbar-C3PsNVJt.mjs.map +1 -0
  148. package/.output/server/chunks/build/DashboardSidebarToggle-a5KYecZ0.mjs +480 -0
  149. package/.output/server/chunks/build/DashboardSidebarToggle-a5KYecZ0.mjs.map +1 -0
  150. package/.output/server/chunks/build/DataLocationCard-ChV02QJj.mjs +102 -0
  151. package/.output/server/chunks/build/DataLocationCard-ChV02QJj.mjs.map +1 -0
  152. package/.output/server/chunks/build/DesktopRunLocallyButton-BfmbZpiL.mjs +1122 -0
  153. package/.output/server/chunks/build/DesktopRunLocallyButton-BfmbZpiL.mjs.map +1 -0
  154. package/.output/server/chunks/build/DiagnosisPanel-C_ndadzP.mjs +1207 -0
  155. package/.output/server/chunks/build/DiagnosisPanel-C_ndadzP.mjs.map +1 -0
  156. package/.output/server/chunks/build/DiagnosisResult-GAjo6Lt3.mjs +1524 -0
  157. package/.output/server/chunks/build/DiagnosisResult-GAjo6Lt3.mjs.map +1 -0
  158. package/.output/server/chunks/build/DurationValue-CObiBDnH.mjs +43 -0
  159. package/.output/server/chunks/build/DurationValue-CObiBDnH.mjs.map +1 -0
  160. package/.output/server/chunks/build/EntityLinks-BcpvMt_V.mjs +325 -0
  161. package/.output/server/chunks/build/EntityLinks-BcpvMt_V.mjs.map +1 -0
  162. package/.output/server/chunks/build/EnvManagedBadge-_8GfjWjE.mjs +71 -0
  163. package/.output/server/chunks/build/EnvManagedBadge-_8GfjWjE.mjs.map +1 -0
  164. package/.output/server/chunks/build/FeatureUnavailable-Buoyoqx1.mjs +83 -0
  165. package/.output/server/chunks/build/FeatureUnavailable-Buoyoqx1.mjs.map +1 -0
  166. package/.output/server/chunks/build/FormField-GYHKiSI6.mjs +282 -0
  167. package/.output/server/chunks/build/FormField-GYHKiSI6.mjs.map +1 -0
  168. package/.output/server/chunks/build/GetStartedWizard-tL3U_qM1.mjs +510 -0
  169. package/.output/server/chunks/build/GetStartedWizard-tL3U_qM1.mjs.map +1 -0
  170. package/.output/server/chunks/build/HelpHint-C96TlqxY.mjs +1070 -0
  171. package/.output/server/chunks/build/HelpHint-C96TlqxY.mjs.map +1 -0
  172. package/.output/server/chunks/build/MetaStripGroup-Cp2WCQf7.mjs +193 -0
  173. package/.output/server/chunks/build/MetaStripGroup-Cp2WCQf7.mjs.map +1 -0
  174. package/.output/server/chunks/build/MiniRunBars-CcSn_9Wl.mjs +59 -0
  175. package/.output/server/chunks/build/MiniRunBars-CcSn_9Wl.mjs.map +1 -0
  176. package/.output/server/chunks/build/Modal-BGBGJtVH.mjs +1472 -0
  177. package/.output/server/chunks/build/Modal-BGBGJtVH.mjs.map +1 -0
  178. package/.output/server/chunks/build/NavigationMenu-D4ZpdCm_.mjs +4155 -0
  179. package/.output/server/chunks/build/NavigationMenu-D4ZpdCm_.mjs.map +1 -0
  180. package/.output/server/chunks/build/OpenInIdeLink-Bnl-_som.mjs +396 -0
  181. package/.output/server/chunks/build/OpenInIdeLink-Bnl-_som.mjs.map +1 -0
  182. package/.output/server/chunks/build/ProjectTestCasesTable-saHYJoyQ.mjs +2407 -0
  183. package/.output/server/chunks/build/ProjectTestCasesTable-saHYJoyQ.mjs.map +1 -0
  184. package/.output/server/chunks/build/RovingFocusItem-CLjuqlIR.mjs +100 -0
  185. package/.output/server/chunks/build/RovingFocusItem-CLjuqlIR.mjs.map +1 -0
  186. package/.output/server/chunks/build/RunReports-CKYYRC59.mjs +57 -0
  187. package/.output/server/chunks/build/RunReports-CKYYRC59.mjs.map +1 -0
  188. package/.output/server/chunks/build/RunStatusBadge-CWhmAmKb.mjs +59 -0
  189. package/.output/server/chunks/build/RunStatusBadge-CWhmAmKb.mjs.map +1 -0
  190. package/.output/server/chunks/build/SectionCard-BB1O3uXd.mjs +142 -0
  191. package/.output/server/chunks/build/SectionCard-BB1O3uXd.mjs.map +1 -0
  192. package/.output/server/chunks/build/Select-COU8NARj.mjs +3572 -0
  193. package/.output/server/chunks/build/Select-COU8NARj.mjs.map +1 -0
  194. package/.output/server/chunks/build/SelectMenu-BUwwc3Qt.mjs +4400 -0
  195. package/.output/server/chunks/build/SelectMenu-BUwwc3Qt.mjs.map +1 -0
  196. package/.output/server/chunks/build/Separator-CQsq6WA9.mjs +421 -0
  197. package/.output/server/chunks/build/Separator-CQsq6WA9.mjs.map +1 -0
  198. package/.output/server/chunks/build/SettingsField-CEasBHu3.mjs +174 -0
  199. package/.output/server/chunks/build/SettingsField-CEasBHu3.mjs.map +1 -0
  200. package/.output/server/chunks/build/Slideover-DN5CvSnw.mjs +926 -0
  201. package/.output/server/chunks/build/Slideover-DN5CvSnw.mjs.map +1 -0
  202. package/.output/server/chunks/build/Switch-_NJhWmI9.mjs +655 -0
  203. package/.output/server/chunks/build/Switch-_NJhWmI9.mjs.map +1 -0
  204. package/.output/server/chunks/build/Table-BET-DOtX.mjs +949 -0
  205. package/.output/server/chunks/build/Table-BET-DOtX.mjs.map +1 -0
  206. package/.output/server/chunks/build/Tabs-CC34LIUz.mjs +1058 -0
  207. package/.output/server/chunks/build/Tabs-CC34LIUz.mjs.map +1 -0
  208. package/.output/server/chunks/build/TagBadge-aGUzbCxx.mjs +31 -0
  209. package/.output/server/chunks/build/TagBadge-aGUzbCxx.mjs.map +1 -0
  210. package/.output/server/chunks/build/TestCaseHistoryChart-BgI6P_zS.mjs +221 -0
  211. package/.output/server/chunks/build/TestCaseHistoryChart-BgI6P_zS.mjs.map +1 -0
  212. package/.output/server/chunks/build/TestStatusBar-DR8jM5th.mjs +109 -0
  213. package/.output/server/chunks/build/TestStatusBar-DR8jM5th.mjs.map +1 -0
  214. package/.output/server/chunks/build/Textarea-CmjqdiIA.mjs +605 -0
  215. package/.output/server/chunks/build/Textarea-CmjqdiIA.mjs.map +1 -0
  216. package/.output/server/chunks/build/Tooltip-CK0ucuXC.mjs +874 -0
  217. package/.output/server/chunks/build/Tooltip-CK0ucuXC.mjs.map +1 -0
  218. package/.output/server/chunks/build/VisuallyHiddenInput-D4E5aJCQ.mjs +142 -0
  219. package/.output/server/chunks/build/VisuallyHiddenInput-D4E5aJCQ.mjs.map +1 -0
  220. package/.output/server/chunks/build/_id_-B7Dw490u.mjs +8608 -0
  221. package/.output/server/chunks/build/_id_-B7Dw490u.mjs.map +1 -0
  222. package/.output/server/chunks/build/_id_-DVPb1S93.mjs +8736 -0
  223. package/.output/server/chunks/build/_id_-DVPb1S93.mjs.map +1 -0
  224. package/.output/server/chunks/build/_id_-kkexEH_q.mjs +1418 -0
  225. package/.output/server/chunks/build/_id_-kkexEH_q.mjs.map +1 -0
  226. package/.output/server/chunks/build/_id_-rQhFY0fN.mjs +4161 -0
  227. package/.output/server/chunks/build/_id_-rQhFY0fN.mjs.map +1 -0
  228. package/.output/server/chunks/build/about-C4AbyQ4q.mjs +698 -0
  229. package/.output/server/chunks/build/about-C4AbyQ4q.mjs.map +1 -0
  230. package/.output/server/chunks/build/account-B45bYZd1.mjs +920 -0
  231. package/.output/server/chunks/build/account-B45bYZd1.mjs.map +1 -0
  232. package/.output/server/chunks/build/ai-CgN9xXFf.mjs +1850 -0
  233. package/.output/server/chunks/build/ai-CgN9xXFf.mjs.map +1 -0
  234. package/.output/server/chunks/build/analytics-BRkiUpwa.mjs +3784 -0
  235. package/.output/server/chunks/build/analytics-BRkiUpwa.mjs.map +1 -0
  236. package/.output/server/chunks/build/auto-heal-BnTdKHQq.mjs +533 -0
  237. package/.output/server/chunks/build/auto-heal-BnTdKHQq.mjs.map +1 -0
  238. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  239. package/.output/server/chunks/build/compare-ykNFuMic.mjs +83 -0
  240. package/.output/server/chunks/build/compare-ykNFuMic.mjs.map +1 -0
  241. package/.output/server/chunks/build/db.client-DyVEaqk4.mjs +1196 -0
  242. package/.output/server/chunks/build/db.client-DyVEaqk4.mjs.map +1 -0
  243. package/.output/server/chunks/build/default-BGOdM_zA.mjs +6499 -0
  244. package/.output/server/chunks/build/default-BGOdM_zA.mjs.map +1 -0
  245. package/.output/server/chunks/build/docs-D7R5eJ1Z.mjs +1181 -0
  246. package/.output/server/chunks/build/docs-D7R5eJ1Z.mjs.map +1 -0
  247. package/.output/server/chunks/build/edit-BbL3k6c3.mjs +1640 -0
  248. package/.output/server/chunks/build/edit-BbL3k6c3.mjs.map +1 -0
  249. package/.output/server/chunks/build/fetch-DOcN2mHf.mjs +148 -0
  250. package/.output/server/chunks/build/fetch-DOcN2mHf.mjs.map +1 -0
  251. package/.output/server/chunks/build/forgot-password-CizombKP.mjs +297 -0
  252. package/.output/server/chunks/build/forgot-password-CizombKP.mjs.map +1 -0
  253. package/.output/server/chunks/build/help-content-BK3jcgLw.mjs +650 -0
  254. package/.output/server/chunks/build/help-content-BK3jcgLw.mjs.map +1 -0
  255. package/.output/server/chunks/build/import-ibAn_HB9.mjs +1023 -0
  256. package/.output/server/chunks/build/import-ibAn_HB9.mjs.map +1 -0
  257. package/.output/server/chunks/build/index-2GmuPNF-.mjs +457 -0
  258. package/.output/server/chunks/build/index-2GmuPNF-.mjs.map +1 -0
  259. package/.output/server/chunks/build/index-CqinXTVs.mjs +1700 -0
  260. package/.output/server/chunks/build/index-CqinXTVs.mjs.map +1 -0
  261. package/.output/server/chunks/build/index-D5A0DW7Y.mjs +93 -0
  262. package/.output/server/chunks/build/index-D5A0DW7Y.mjs.map +1 -0
  263. package/.output/server/chunks/build/index-DreB_S-d.mjs +1169 -0
  264. package/.output/server/chunks/build/index-DreB_S-d.mjs.map +1 -0
  265. package/.output/server/chunks/build/index-KsRegEjT.mjs +11040 -0
  266. package/.output/server/chunks/build/index-KsRegEjT.mjs.map +1 -0
  267. package/.output/server/chunks/build/isValueEqualOrExist-D4lZ8uRY.mjs +11 -0
  268. package/.output/server/chunks/build/isValueEqualOrExist-D4lZ8uRY.mjs.map +1 -0
  269. package/.output/server/chunks/build/login-DueFS2RU.mjs +835 -0
  270. package/.output/server/chunks/build/login-DueFS2RU.mjs.map +1 -0
  271. package/.output/server/chunks/build/mcp-Dwj29-uG.mjs +1593 -0
  272. package/.output/server/chunks/build/mcp-Dwj29-uG.mjs.map +1 -0
  273. package/.output/server/chunks/build/notifications-CjAn5FJj.mjs +1265 -0
  274. package/.output/server/chunks/build/notifications-CjAn5FJj.mjs.map +1 -0
  275. package/.output/server/chunks/build/performance-DRzcu_c7.mjs +581 -0
  276. package/.output/server/chunks/build/performance-DRzcu_c7.mjs.map +1 -0
  277. package/.output/server/chunks/build/pr-feedback-DR60oGBf.mjs +370 -0
  278. package/.output/server/chunks/build/pr-feedback-DR60oGBf.mjs.map +1 -0
  279. package/.output/server/chunks/build/reset-password-D6UnQTgI.mjs +355 -0
  280. package/.output/server/chunks/build/reset-password-D6UnQTgI.mjs.map +1 -0
  281. package/.output/server/chunks/build/selections-BjjolRZ9.mjs +1197 -0
  282. package/.output/server/chunks/build/selections-BjjolRZ9.mjs.map +1 -0
  283. package/.output/server/chunks/build/server.mjs +341 -43
  284. package/.output/server/chunks/build/server.mjs.map +1 -1
  285. package/.output/server/chunks/build/settings-B3NWV9tu.mjs +282 -0
  286. package/.output/server/chunks/build/settings-B3NWV9tu.mjs.map +1 -0
  287. package/.output/server/chunks/build/settings-metadata-DwJk8uSt.mjs +164 -0
  288. package/.output/server/chunks/build/settings-metadata-DwJk8uSt.mjs.map +1 -0
  289. package/.output/server/chunks/build/setup-BlgFTixN.mjs +1065 -0
  290. package/.output/server/chunks/build/setup-BlgFTixN.mjs.map +1 -0
  291. package/.output/server/chunks/build/storage-C1O-FC0U.mjs +361 -0
  292. package/.output/server/chunks/build/storage-C1O-FC0U.mjs.map +1 -0
  293. package/.output/server/chunks/build/styles.mjs +0 -2
  294. package/.output/server/chunks/build/tags-dsvYrnii.mjs +375 -0
  295. package/.output/server/chunks/build/tags-dsvYrnii.mjs.map +1 -0
  296. package/.output/server/chunks/build/test-cases-CFiOuyK6.mjs +228 -0
  297. package/.output/server/chunks/build/test-cases-CFiOuyK6.mjs.map +1 -0
  298. package/.output/server/chunks/build/test-functions-CbmBi6az.mjs +552 -0
  299. package/.output/server/chunks/build/test-functions-CbmBi6az.mjs.map +1 -0
  300. package/.output/server/chunks/build/useAiStatus-CiK1MZbH.mjs +9 -0
  301. package/.output/server/chunks/build/useAiStatus-CiK1MZbH.mjs.map +1 -0
  302. package/.output/server/chunks/build/useCopyRich-DPKZKHvZ.mjs +5805 -0
  303. package/.output/server/chunks/build/useCopyRich-DPKZKHvZ.mjs.map +1 -0
  304. package/.output/server/chunks/build/useDesktopDownload-R_RWSgUV.mjs +46 -0
  305. package/.output/server/chunks/build/useDesktopDownload-R_RWSgUV.mjs.map +1 -0
  306. package/.output/server/chunks/build/useDesktopLocalRuns-BdELBy0Y.mjs +381 -0
  307. package/.output/server/chunks/build/useDesktopLocalRuns-BdELBy0Y.mjs.map +1 -0
  308. package/.output/server/chunks/build/useDesktopProjectLink-IUN7SIP2.mjs +84 -0
  309. package/.output/server/chunks/build/useDesktopProjectLink-IUN7SIP2.mjs.map +1 -0
  310. package/.output/server/chunks/build/useFormControl-8skMOTIf.mjs +9 -0
  311. package/.output/server/chunks/build/useFormControl-8skMOTIf.mjs.map +1 -0
  312. package/.output/server/chunks/build/useOpenInIde-DS4YXevu.mjs +95 -0
  313. package/.output/server/chunks/build/useOpenInIde-DS4YXevu.mjs.map +1 -0
  314. package/.output/server/chunks/build/useSettingsNav-Dg87E7kY.mjs +19 -0
  315. package/.output/server/chunks/build/useSettingsNav-Dg87E7kY.mjs.map +1 -0
  316. package/.output/server/chunks/build/useTreeViewCookie-BvoH7a_X.mjs +25 -0
  317. package/.output/server/chunks/build/useTreeViewCookie-BvoH7a_X.mjs.map +1 -0
  318. package/.output/server/chunks/build/users-DgsoiXxQ.mjs +747 -0
  319. package/.output/server/chunks/build/users-DgsoiXxQ.mjs.map +1 -0
  320. package/.output/server/chunks/nitro/nitro.mjs +5513 -2266
  321. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  322. package/.output/server/chunks/routes/__piwi/session.get.mjs +3 -3
  323. package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
  324. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +2 -2
  325. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/admin/stats.get.mjs +1 -1
  327. package/.output/server/chunks/routes/api/ai/status.get.mjs +1 -1
  328. package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs +6 -5
  329. package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs.map +1 -1
  330. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +16 -4
  331. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/auth/change-password.post.mjs +4 -4
  333. package/.output/server/chunks/routes/api/auth/change-password.post.mjs.map +1 -1
  334. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +4 -5
  335. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/auth/login.post.mjs +6 -8
  337. package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
  338. package/.output/server/chunks/routes/api/auth/logout.post.mjs +2 -2
  339. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -1
  341. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -1
  342. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +4 -4
  343. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +2 -2
  345. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +7 -8
  347. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +6 -5
  349. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -1
  351. package/.output/server/chunks/routes/api/auth/setup.post.mjs +8 -9
  352. package/.output/server/chunks/routes/api/auth/setup.post.mjs.map +1 -1
  353. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +3 -3
  354. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
  355. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +9 -8
  356. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
  357. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +5 -6
  358. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
  359. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +2 -2
  360. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
  361. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +2 -2
  362. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
  363. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +7 -7
  364. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs.map +1 -1
  365. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +1 -1
  366. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +2 -2
  367. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +5 -5
  369. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +3 -3
  371. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +6 -6
  373. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +2 -2
  375. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +12 -11
  377. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +12 -11
  379. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +3 -2
  381. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -1
  383. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +2 -2
  384. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -1
  385. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +3 -3
  386. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
  387. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +3 -3
  388. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -1
  389. package/.output/server/chunks/routes/api/failure-clusters/_id/share-links.get.mjs +54 -0
  390. package/.output/server/chunks/routes/api/failure-clusters/_id/share-links.get.mjs.map +1 -0
  391. package/.output/server/chunks/routes/api/failure-clusters/_id/share-links.post.mjs +91 -0
  392. package/.output/server/chunks/routes/api/failure-clusters/_id/share-links.post.mjs.map +1 -0
  393. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +3 -3
  394. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
  395. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +2 -2
  396. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
  397. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +6 -5
  398. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
  399. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +4 -4
  400. package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
  401. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  402. package/.output/server/chunks/routes/api/index.get.mjs +4 -19
  403. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/index.get2.mjs +27 -11
  405. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/index.get3.mjs +12 -29
  407. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/index.get4.mjs +15 -4
  409. package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/index.get5.mjs +2 -7
  411. package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
  412. package/.output/server/chunks/routes/api/index.get6.mjs +58 -0
  413. package/.output/server/chunks/routes/api/index.get6.mjs.map +1 -0
  414. package/.output/server/chunks/routes/api/index.post.mjs +20 -9
  415. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/index.post2.mjs +7 -7
  417. package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/index.post3.mjs +4 -4
  419. package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/index.post4.mjs +20 -13
  421. package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/index.post5.mjs +6 -5
  423. package/.output/server/chunks/routes/api/index.post5.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/index.post6.mjs +10 -17
  425. package/.output/server/chunks/routes/api/index.post6.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +4 -4
  427. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +3 -3
  429. package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +4 -4
  431. package/.output/server/chunks/routes/api/links/_id_.patch.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +2 -2
  433. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/markers/_id_.patch.mjs +76 -0
  435. package/.output/server/chunks/routes/api/markers/_id_.patch.mjs.map +1 -0
  436. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +46 -12
  437. package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs +3 -3
  439. package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +2 -2
  441. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +3 -3
  443. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
  444. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +3 -3
  445. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
  446. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +6 -6
  447. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +1 -1
  449. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +2 -2
  450. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
  451. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +2 -2
  452. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs.map +1 -1
  453. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +3 -3
  454. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
  455. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +4 -4
  456. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs.map +1 -1
  457. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +6 -6
  458. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
  459. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +4 -4
  460. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -1
  461. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +2 -4
  462. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -1
  463. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +3 -4
  464. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -1
  465. package/.output/server/chunks/routes/api/projects/_id/selections/_key/resolve.get.mjs +75 -0
  466. package/.output/server/chunks/routes/api/projects/_id/selections/_key/resolve.get.mjs.map +1 -0
  467. package/.output/server/chunks/routes/api/projects/_id/selections/_key_.delete.mjs +61 -0
  468. package/.output/server/chunks/routes/api/projects/_id/selections/_key_.delete.mjs.map +1 -0
  469. package/.output/server/chunks/routes/api/projects/_id/selections/_key_.get.mjs +59 -0
  470. package/.output/server/chunks/routes/api/projects/_id/selections/_key_.get.mjs.map +1 -0
  471. package/.output/server/chunks/routes/api/projects/_id/selections/_key_.patch.mjs +67 -0
  472. package/.output/server/chunks/routes/api/projects/_id/selections/_key_.patch.mjs.map +1 -0
  473. package/.output/server/chunks/routes/api/projects/_id/selections/analytics.get.mjs +55 -0
  474. package/.output/server/chunks/routes/api/projects/_id/selections/analytics.get.mjs.map +1 -0
  475. package/.output/server/chunks/routes/api/projects/_id/selections/impact.post.mjs +64 -0
  476. package/.output/server/chunks/routes/api/projects/_id/selections/impact.post.mjs.map +1 -0
  477. package/.output/server/chunks/routes/api/projects/_id/selections/preview.post.mjs +60 -0
  478. package/.output/server/chunks/routes/api/projects/_id/selections/preview.post.mjs.map +1 -0
  479. package/.output/server/chunks/routes/api/projects/_id/selections/suggestions.get.mjs +58 -0
  480. package/.output/server/chunks/routes/api/projects/_id/selections/suggestions.get.mjs.map +1 -0
  481. package/.output/server/chunks/routes/api/projects/_id/selections.get.mjs +55 -0
  482. package/.output/server/chunks/routes/api/projects/_id/selections.get.mjs.map +1 -0
  483. package/.output/server/chunks/routes/api/projects/_id/selections.post.mjs +69 -0
  484. package/.output/server/chunks/routes/api/projects/_id/selections.post.mjs.map +1 -0
  485. package/.output/server/chunks/routes/api/projects/_id/share-links.get.mjs +55 -0
  486. package/.output/server/chunks/routes/api/projects/_id/share-links.get.mjs.map +1 -0
  487. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +4 -5
  488. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
  489. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +3 -3
  490. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
  491. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -1
  492. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +6 -5
  493. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs.map +1 -1
  494. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +3 -3
  495. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs.map +1 -1
  496. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +2 -2
  497. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs.map +1 -1
  498. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +3 -3
  499. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs.map +1 -1
  500. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +4 -5
  501. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
  502. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +2 -2
  503. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
  504. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +3 -4
  505. package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
  506. package/.output/server/chunks/routes/api/projects/_id_.patch.mjs +91 -0
  507. package/.output/server/chunks/routes/api/projects/_id_.patch.mjs.map +1 -0
  508. package/.output/server/chunks/routes/api/projects/menu.get.mjs +2 -2
  509. package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
  510. package/.output/server/chunks/routes/api/projects/overview.get.mjs +2 -2
  511. package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
  512. package/.output/server/chunks/routes/api/projects.get.mjs +3 -2
  513. package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
  514. package/.output/server/chunks/routes/api/search.get.mjs +1 -1
  515. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +1 -1
  516. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +1 -1
  517. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +1 -1
  518. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +3 -2
  519. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
  520. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +2 -3
  521. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
  522. package/.output/server/chunks/routes/api/settings/ai.get.mjs +1 -1
  523. package/.output/server/chunks/routes/api/settings/ai.put.mjs +6 -6
  524. package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
  525. package/.output/server/chunks/routes/api/settings/auto-heal.get.mjs +59 -0
  526. package/.output/server/chunks/routes/api/settings/auto-heal.get.mjs.map +1 -0
  527. package/.output/server/chunks/routes/api/settings/auto-heal.put.mjs +65 -0
  528. package/.output/server/chunks/routes/api/settings/auto-heal.put.mjs.map +1 -0
  529. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +1 -1
  530. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +1 -1
  531. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +3 -3
  532. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs.map +1 -1
  533. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +15 -2
  534. package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
  535. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +1 -1
  536. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +1 -1
  537. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +1 -1
  538. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +2 -2
  539. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
  540. package/.output/server/chunks/routes/api/setup-status.get.mjs +1 -1
  541. package/.output/server/chunks/routes/api/share-links/_id_.delete.mjs +60 -0
  542. package/.output/server/chunks/routes/api/share-links/_id_.delete.mjs.map +1 -0
  543. package/.output/server/chunks/routes/api/share-links/settings.get.mjs +53 -0
  544. package/.output/server/chunks/routes/api/share-links/settings.get.mjs.map +1 -0
  545. package/.output/server/chunks/routes/api/stream.get.mjs +1 -1
  546. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +3 -4
  547. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
  548. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +11 -8
  549. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs.map +1 -1
  550. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +3 -3
  551. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
  552. package/.output/server/chunks/routes/api/tags/_id_.patch.mjs +77 -0
  553. package/.output/server/chunks/routes/api/tags/_id_.patch.mjs.map +1 -0
  554. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +3 -3
  555. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
  556. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +3 -3
  557. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
  558. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +2 -2
  559. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
  560. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +2 -2
  561. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/test-functions/_id_.patch.mjs +71 -0
  563. package/.output/server/chunks/routes/api/test-functions/_id_.patch.mjs.map +1 -0
  564. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +8 -7
  565. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
  566. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +4 -4
  567. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
  568. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +1 -1
  569. package/.output/server/chunks/routes/api/test-run-cases/_id/dom-snapshot.get.mjs +65 -0
  570. package/.output/server/chunks/routes/api/test-run-cases/_id/dom-snapshot.get.mjs.map +1 -0
  571. package/.output/server/chunks/routes/api/test-run-cases/_id/environment-diff.get.mjs +54 -0
  572. package/.output/server/chunks/routes/api/test-run-cases/_id/environment-diff.get.mjs.map +1 -0
  573. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +2 -2
  574. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -1
  575. package/.output/server/chunks/routes/api/test-run-cases/_id/locator-healing.get.mjs +57 -0
  576. package/.output/server/chunks/routes/api/test-run-cases/_id/locator-healing.get.mjs.map +1 -0
  577. package/.output/server/chunks/routes/api/test-run-cases/_id/locator-pick.post.mjs +63 -0
  578. package/.output/server/chunks/routes/api/test-run-cases/_id/locator-pick.post.mjs.map +1 -0
  579. package/.output/server/chunks/routes/api/test-run-cases/_id/share-links.get.mjs +54 -0
  580. package/.output/server/chunks/routes/api/test-run-cases/_id/share-links.get.mjs.map +1 -0
  581. package/.output/server/chunks/routes/api/test-run-cases/_id/share-links.post.mjs +91 -0
  582. package/.output/server/chunks/routes/api/test-run-cases/_id/share-links.post.mjs.map +1 -0
  583. package/.output/server/chunks/routes/api/test-run-cases/_id/trace-network-body.get.mjs +63 -0
  584. package/.output/server/chunks/routes/api/test-run-cases/_id/trace-network-body.get.mjs.map +1 -0
  585. package/.output/server/chunks/routes/api/test-run-cases/_id/trace-network.get.mjs +58 -0
  586. package/.output/server/chunks/routes/api/test-run-cases/_id/trace-network.get.mjs.map +1 -0
  587. package/.output/server/chunks/routes/api/test-run-cases/_id/trace-stacks.get.mjs +61 -0
  588. package/.output/server/chunks/routes/api/test-run-cases/_id/trace-stacks.get.mjs.map +1 -0
  589. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +3 -3
  590. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
  591. package/.output/server/chunks/routes/api/test-run-cases/_id/visual-diff.get.mjs +54 -0
  592. package/.output/server/chunks/routes/api/test-run-cases/_id/visual-diff.get.mjs.map +1 -0
  593. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +2 -2
  594. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
  595. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +8 -8
  596. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
  597. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +11 -11
  598. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
  599. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +69 -39
  600. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
  601. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +2 -2
  602. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
  603. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +10 -8
  604. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
  605. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +84 -12
  606. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -1
  607. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +3 -3
  608. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
  609. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +2 -2
  610. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
  611. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +3 -3
  612. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
  613. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +2 -2
  614. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
  615. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +9 -5
  616. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
  617. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +2 -2
  618. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
  619. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +2 -2
  620. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
  621. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +2 -2
  622. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
  623. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +3 -3
  624. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
  625. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +5 -5
  626. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -1
  627. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +4 -4
  628. package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -1
  629. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +2 -2
  630. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
  631. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +18 -15
  632. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
  633. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +14 -11
  634. package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
  635. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +34 -25
  636. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  637. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +26 -18
  638. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  639. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +5 -2
  640. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  641. package/.output/server/chunks/routes/api/traces/check.post.mjs +3 -3
  642. package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
  643. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +4 -4
  644. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
  645. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +4 -4
  646. package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
  647. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +4 -4
  648. package/.output/server/chunks/routes/api/users/_id/index.post.mjs.map +1 -1
  649. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +7 -6
  650. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
  651. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +3 -3
  652. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
  653. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +6 -6
  654. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs.map +1 -1
  655. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +6 -6
  656. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  657. package/.output/server/chunks/routes/api/users/_id_.patch.mjs +9 -12
  658. package/.output/server/chunks/routes/api/users/_id_.patch.mjs.map +1 -1
  659. package/.output/server/chunks/routes/api/version.get.mjs +1 -1
  660. package/.output/server/chunks/routes/mcp.post.mjs +9 -4
  661. package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
  662. package/.output/server/chunks/routes/renderer.mjs +1 -1
  663. package/.output/server/chunks/routes/share/_token_.get.mjs +101 -0
  664. package/.output/server/chunks/routes/share/_token_.get.mjs.map +1 -0
  665. package/.output/server/chunks/tasks/sweep.mjs +7 -7
  666. package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
  667. package/.output/server/chunks/tasks/sweep2.mjs +7 -35
  668. package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
  669. package/.output/server/chunks/tasks/sweep3.mjs +95 -0
  670. package/.output/server/chunks/tasks/sweep3.mjs.map +1 -0
  671. package/.output/server/database/migrations/0046_strange_micromax.sql +1 -0
  672. package/.output/server/database/migrations/0047_lethal_white_tiger.sql +2 -0
  673. package/.output/server/database/migrations/0048_stormy_whizzer.sql +21 -0
  674. package/.output/server/database/migrations/0049_optimal_blue_blade.sql +22 -0
  675. package/.output/server/database/migrations/0050_rainy_snowbird.sql +1 -0
  676. package/.output/server/database/migrations/0051_brave_rafael_vega.sql +3 -0
  677. package/.output/server/database/migrations/0052_backfill_branch.sql +10 -0
  678. package/.output/server/database/migrations/0053_damp_dark_beast.sql +18 -0
  679. package/.output/server/database/migrations/meta/0046_snapshot.json +3786 -0
  680. package/.output/server/database/migrations/meta/0047_snapshot.json +3800 -0
  681. package/.output/server/database/migrations/meta/0048_snapshot.json +3935 -0
  682. package/.output/server/database/migrations/meta/0049_snapshot.json +4079 -0
  683. package/.output/server/database/migrations/meta/0050_snapshot.json +4086 -0
  684. package/.output/server/database/migrations/meta/0051_snapshot.json +4105 -0
  685. package/.output/server/database/migrations/meta/0052_snapshot.json +4105 -0
  686. package/.output/server/database/migrations/meta/0053_snapshot.json +4221 -0
  687. package/.output/server/database/migrations/meta/_journal.json +56 -0
  688. package/.output/server/database/migrations-pg/0047_boring_harry_osborn.sql +1 -0
  689. package/.output/server/database/migrations-pg/0048_right_gargoyle.sql +2 -0
  690. package/.output/server/database/migrations-pg/0049_plain_preak.sql +21 -0
  691. package/.output/server/database/migrations-pg/0050_shallow_mother_askani.sql +22 -0
  692. package/.output/server/database/migrations-pg/0051_military_drax.sql +1 -0
  693. package/.output/server/database/migrations-pg/0052_clean_patch.sql +3 -0
  694. package/.output/server/database/migrations-pg/0053_backfill_branch.sql +10 -0
  695. package/.output/server/database/migrations-pg/0054_smooth_malice.sql +18 -0
  696. package/.output/server/database/migrations-pg/meta/0047_snapshot.json +4492 -0
  697. package/.output/server/database/migrations-pg/meta/0048_snapshot.json +4504 -0
  698. package/.output/server/database/migrations-pg/meta/0049_snapshot.json +4667 -0
  699. package/.output/server/database/migrations-pg/meta/0050_snapshot.json +4853 -0
  700. package/.output/server/database/migrations-pg/meta/0051_snapshot.json +4859 -0
  701. package/.output/server/database/migrations-pg/meta/0052_snapshot.json +4898 -0
  702. package/.output/server/database/migrations-pg/meta/0053_snapshot.json +4898 -0
  703. package/.output/server/database/migrations-pg/meta/0054_snapshot.json +5043 -0
  704. package/.output/server/database/migrations-pg/meta/_journal.json +56 -0
  705. package/.output/server/index.mjs +1 -1
  706. package/.output/server/package.json +1 -53
  707. package/README.md +4 -4
  708. package/package.json +3 -3
  709. package/.output/public/_nuxt/5nOoVJzL.js +0 -1
  710. package/.output/public/_nuxt/6DSY_93j.js +0 -1
  711. package/.output/public/_nuxt/7vRR5W2L.js +0 -1
  712. package/.output/public/_nuxt/9Dtlg-K4.js +0 -1
  713. package/.output/public/_nuxt/9Yziijlb.js +0 -1
  714. package/.output/public/_nuxt/B-onBCAB.js +0 -1
  715. package/.output/public/_nuxt/B2bK5uNR.js +0 -1
  716. package/.output/public/_nuxt/B63B19Iv.js +0 -4
  717. package/.output/public/_nuxt/B77w1Eib.js +0 -1
  718. package/.output/public/_nuxt/BC5bqlfM.js +0 -1
  719. package/.output/public/_nuxt/BF5JDf9_.js +0 -1
  720. package/.output/public/_nuxt/BFVrl1ss.js +0 -1
  721. package/.output/public/_nuxt/BIHMeNW-.js +0 -1
  722. package/.output/public/_nuxt/BKqOGcst.js +0 -1
  723. package/.output/public/_nuxt/BLqooxh5.js +0 -1
  724. package/.output/public/_nuxt/BMfTUMYy.js +0 -1
  725. package/.output/public/_nuxt/BOrnSpTA.js +0 -1
  726. package/.output/public/_nuxt/BPQNVV4M.js +0 -1
  727. package/.output/public/_nuxt/BSKLNgre.js +0 -1
  728. package/.output/public/_nuxt/BTCWUyBX.js +0 -1
  729. package/.output/public/_nuxt/BUYmGTVP.js +0 -1
  730. package/.output/public/_nuxt/BWddBCom.js +0 -1
  731. package/.output/public/_nuxt/BYQ9lXQb.js +0 -1
  732. package/.output/public/_nuxt/BYWQ47QQ.js +0 -5
  733. package/.output/public/_nuxt/BYnqoVCE.js +0 -1
  734. package/.output/public/_nuxt/BaU2hm4B.js +0 -1
  735. package/.output/public/_nuxt/BbXvpkBp.js +0 -1
  736. package/.output/public/_nuxt/Bb_925DD.js +0 -1
  737. package/.output/public/_nuxt/BcHU1KNK.js +0 -1
  738. package/.output/public/_nuxt/BdUGUwvE.js +0 -1
  739. package/.output/public/_nuxt/BeQq85yJ.js +0 -5
  740. package/.output/public/_nuxt/Bg8yOdSf.js +0 -1
  741. package/.output/public/_nuxt/BhzfJaPC.js +0 -1
  742. package/.output/public/_nuxt/Bkb-0yS0.js +0 -7
  743. package/.output/public/_nuxt/BmweLu9g.js +0 -2
  744. package/.output/public/_nuxt/Boyv6hLW.js +0 -1
  745. package/.output/public/_nuxt/Bq4xEWLF.js +0 -5
  746. package/.output/public/_nuxt/BraJd4EA.js +0 -1
  747. package/.output/public/_nuxt/BvXrhZ8k.js +0 -1
  748. package/.output/public/_nuxt/Bw4oIhct.js +0 -1
  749. package/.output/public/_nuxt/BxSrScjV.js +0 -1
  750. package/.output/public/_nuxt/Byqt8JHG.js +0 -1
  751. package/.output/public/_nuxt/BzBaMPgu.js +0 -254
  752. package/.output/public/_nuxt/C1-8_6cB.js +0 -1
  753. package/.output/public/_nuxt/C7SG50jD.js +0 -1
  754. package/.output/public/_nuxt/C8WgBDU1.js +0 -1
  755. package/.output/public/_nuxt/C8uZoJVq.js +0 -1
  756. package/.output/public/_nuxt/CBQXv4bU.js +0 -4
  757. package/.output/public/_nuxt/CDEmotIt.js +0 -1
  758. package/.output/public/_nuxt/CIBOv3Ge.js +0 -2
  759. package/.output/public/_nuxt/CO7j4p5r.js +0 -1
  760. package/.output/public/_nuxt/COMhp7lz.js +0 -1
  761. package/.output/public/_nuxt/CPiLUjjx.js +0 -1
  762. package/.output/public/_nuxt/CTYlay1H.js +0 -1
  763. package/.output/public/_nuxt/CVEk4D8I.js +0 -1
  764. package/.output/public/_nuxt/CbuK1HIv.js +0 -167
  765. package/.output/public/_nuxt/CdLqOMvN.js +0 -1
  766. package/.output/public/_nuxt/CdM2qNYM.js +0 -2
  767. package/.output/public/_nuxt/Ch8sGLqE.js +0 -1
  768. package/.output/public/_nuxt/CkdznmkX.js +0 -1
  769. package/.output/public/_nuxt/Cmuwgbf4.js +0 -3
  770. package/.output/public/_nuxt/CnRNwiuE.js +0 -1
  771. package/.output/public/_nuxt/CnsaoeEq.js +0 -1
  772. package/.output/public/_nuxt/Cp0V2FeW.js +0 -1
  773. package/.output/public/_nuxt/Cvw4EFTy.js +0 -17
  774. package/.output/public/_nuxt/CwDej2Lz.js +0 -1
  775. package/.output/public/_nuxt/D-wlhH6J.js +0 -1
  776. package/.output/public/_nuxt/D5Mhpp98.js +0 -1
  777. package/.output/public/_nuxt/D7W_4Sqc.js +0 -1
  778. package/.output/public/_nuxt/D8ixf-ZR.js +0 -44
  779. package/.output/public/_nuxt/DBvdRbTA.js +0 -34
  780. package/.output/public/_nuxt/DDho3MJD.js +0 -1
  781. package/.output/public/_nuxt/DEGHW4pO.js +0 -1
  782. package/.output/public/_nuxt/DHSYRMJp.js +0 -1
  783. package/.output/public/_nuxt/DH_LEqhd.js +0 -2
  784. package/.output/public/_nuxt/DIqik40e.js +0 -1
  785. package/.output/public/_nuxt/DLwuL-qR.js +0 -1
  786. package/.output/public/_nuxt/DPDFGVb_.js +0 -5
  787. package/.output/public/_nuxt/DRNHuVn4.js +0 -2
  788. package/.output/public/_nuxt/DUtYU4Sb.js +0 -1
  789. package/.output/public/_nuxt/DWl73MJR.js +0 -2
  790. package/.output/public/_nuxt/DWz_bHNP.js +0 -1
  791. package/.output/public/_nuxt/D_SCB-z2.js +0 -1
  792. package/.output/public/_nuxt/D_j436ND.js +0 -1
  793. package/.output/public/_nuxt/DamzjN7l.js +0 -1
  794. package/.output/public/_nuxt/Db5xe__T.js +0 -1
  795. package/.output/public/_nuxt/DcUBmKKE.js +0 -1
  796. package/.output/public/_nuxt/DiP18sFE.js +0 -1
  797. package/.output/public/_nuxt/Die1200X.js +0 -1
  798. package/.output/public/_nuxt/DihSeDlY.js +0 -9
  799. package/.output/public/_nuxt/DkGXOZRW.js +0 -1
  800. package/.output/public/_nuxt/DnOtRv65.js +0 -1
  801. package/.output/public/_nuxt/DnV-BkUA.js +0 -1
  802. package/.output/public/_nuxt/DpeRrg68.js +0 -1
  803. package/.output/public/_nuxt/Dq6_-84R.js +0 -1
  804. package/.output/public/_nuxt/DqKFKS1b.js +0 -1
  805. package/.output/public/_nuxt/DrbO0dl5.js +0 -6
  806. package/.output/public/_nuxt/Ds8_6Fzl.js +0 -1
  807. package/.output/public/_nuxt/DvewDI9t.js +0 -1
  808. package/.output/public/_nuxt/E26Y1NWH.js +0 -1
  809. package/.output/public/_nuxt/Hp-_W7z4.js +0 -1
  810. package/.output/public/_nuxt/OanUGF_v.js +0 -1
  811. package/.output/public/_nuxt/RSS6R9Te.js +0 -79
  812. package/.output/public/_nuxt/VqLetC2g.js +0 -1
  813. package/.output/public/_nuxt/WCZdf9Ln.js +0 -1
  814. package/.output/public/_nuxt/Yl6iqHwK.js +0 -41
  815. package/.output/public/_nuxt/builds/meta/03f2d81b-8c58-4ea8-9a9d-7553c8ca4af6.json +0 -1
  816. package/.output/public/_nuxt/entry.DVKh2Fd6.css +0 -1
  817. package/.output/public/_nuxt/iUf7K_JR.js +0 -1
  818. package/.output/public/_nuxt/index.BiXg7rd-.css +0 -1
  819. package/.output/public/_nuxt/kDEwM7SQ.js +0 -1
  820. package/.output/public/_nuxt/knaDbxMJ.js +0 -1
  821. package/.output/public/_nuxt/lnpLc047.js +0 -1
  822. package/.output/public/_nuxt/mhvG7mu8.js +0 -1
  823. package/.output/public/_nuxt/qUaN2ZW8.js +0 -4
  824. package/.output/public/_nuxt/qeqzb80l.js +0 -1
  825. package/.output/public/_nuxt/uj92NYTx.js +0 -9
  826. package/.output/public/_nuxt/vOZZ2cLi.js +0 -1
  827. package/.output/public/_nuxt/zAFiz2Mg.js +0 -1
  828. package/.output/server/chunks/_/quarantine.mjs +0 -112
  829. package/.output/server/chunks/_/quarantine.mjs.map +0 -1
  830. package/.output/server/chunks/build/Alert-BhTWQzM5.mjs +0 -479
  831. package/.output/server/chunks/build/Alert-BhTWQzM5.mjs.map +0 -1
  832. package/.output/server/chunks/build/Breadcrumb-BJnPB2AW.mjs +0 -522
  833. package/.output/server/chunks/build/Breadcrumb-BJnPB2AW.mjs.map +0 -1
  834. package/.output/server/chunks/build/BreadcrumbNav-C6Cun6tF.mjs +0 -111
  835. package/.output/server/chunks/build/BreadcrumbNav-C6Cun6tF.mjs.map +0 -1
  836. package/.output/server/chunks/build/BrowserBadge-T1KRMIXA.mjs +0 -89
  837. package/.output/server/chunks/build/BrowserBadge-T1KRMIXA.mjs.map +0 -1
  838. package/.output/server/chunks/build/ChartCard-D_asI_WF.mjs +0 -77
  839. package/.output/server/chunks/build/ChartCard-D_asI_WF.mjs.map +0 -1
  840. package/.output/server/chunks/build/ChartMarkerTooltip-DscESDg7.mjs +0 -72
  841. package/.output/server/chunks/build/ChartMarkerTooltip-DscESDg7.mjs.map +0 -1
  842. package/.output/server/chunks/build/Checkbox-Y9ZiIRkJ.mjs +0 -746
  843. package/.output/server/chunks/build/Checkbox-Y9ZiIRkJ.mjs.map +0 -1
  844. package/.output/server/chunks/build/CodeBlock-Bnn_ps9O.mjs +0 -54
  845. package/.output/server/chunks/build/CodeBlock-Bnn_ps9O.mjs.map +0 -1
  846. package/.output/server/chunks/build/DashboardNavbar-D37dPEtR.mjs +0 -270
  847. package/.output/server/chunks/build/DashboardNavbar-D37dPEtR.mjs.map +0 -1
  848. package/.output/server/chunks/build/DashboardSidebarToggle-DzwsZHVx.mjs +0 -480
  849. package/.output/server/chunks/build/DashboardSidebarToggle-DzwsZHVx.mjs.map +0 -1
  850. package/.output/server/chunks/build/DataLocationCard-CUXgZQEs.mjs +0 -102
  851. package/.output/server/chunks/build/DataLocationCard-CUXgZQEs.mjs.map +0 -1
  852. package/.output/server/chunks/build/DesktopRunLocallyButton-BCmQklj6.mjs +0 -1122
  853. package/.output/server/chunks/build/DesktopRunLocallyButton-BCmQklj6.mjs.map +0 -1
  854. package/.output/server/chunks/build/DiagnosisPanel-haHS2azn.mjs +0 -1208
  855. package/.output/server/chunks/build/DiagnosisPanel-haHS2azn.mjs.map +0 -1
  856. package/.output/server/chunks/build/DiagnosisResult-DqTIOelM.mjs +0 -1524
  857. package/.output/server/chunks/build/DiagnosisResult-DqTIOelM.mjs.map +0 -1
  858. package/.output/server/chunks/build/DurationValue-D6fQEi5S.mjs +0 -43
  859. package/.output/server/chunks/build/DurationValue-D6fQEi5S.mjs.map +0 -1
  860. package/.output/server/chunks/build/EntityLinks-CRJQM9Vy.mjs +0 -325
  861. package/.output/server/chunks/build/EntityLinks-CRJQM9Vy.mjs.map +0 -1
  862. package/.output/server/chunks/build/EnvManagedBadge-hyelwXrw.mjs +0 -71
  863. package/.output/server/chunks/build/EnvManagedBadge-hyelwXrw.mjs.map +0 -1
  864. package/.output/server/chunks/build/FeatureUnavailable-CDw3__eq.mjs +0 -83
  865. package/.output/server/chunks/build/FeatureUnavailable-CDw3__eq.mjs.map +0 -1
  866. package/.output/server/chunks/build/FormField-8vSc-3mb.mjs +0 -282
  867. package/.output/server/chunks/build/FormField-8vSc-3mb.mjs.map +0 -1
  868. package/.output/server/chunks/build/GetStartedWizard-Dp_tjhry.mjs +0 -510
  869. package/.output/server/chunks/build/GetStartedWizard-Dp_tjhry.mjs.map +0 -1
  870. package/.output/server/chunks/build/HelpHint-Bfyo3ar6.mjs +0 -1048
  871. package/.output/server/chunks/build/HelpHint-Bfyo3ar6.mjs.map +0 -1
  872. package/.output/server/chunks/build/MetaStripGroup-C-cNBfC9.mjs +0 -193
  873. package/.output/server/chunks/build/MetaStripGroup-C-cNBfC9.mjs.map +0 -1
  874. package/.output/server/chunks/build/MiniRunBars-fgLMgRUp.mjs +0 -59
  875. package/.output/server/chunks/build/MiniRunBars-fgLMgRUp.mjs.map +0 -1
  876. package/.output/server/chunks/build/Modal-DcNzjvnm.mjs +0 -1472
  877. package/.output/server/chunks/build/Modal-DcNzjvnm.mjs.map +0 -1
  878. package/.output/server/chunks/build/NavigationMenu-DG6V0R9Y.mjs +0 -4155
  879. package/.output/server/chunks/build/NavigationMenu-DG6V0R9Y.mjs.map +0 -1
  880. package/.output/server/chunks/build/OpenInIdeLink-CLj2cTkc.mjs +0 -396
  881. package/.output/server/chunks/build/OpenInIdeLink-CLj2cTkc.mjs.map +0 -1
  882. package/.output/server/chunks/build/ProjectTestCasesTable-BNd5Fn_G.mjs +0 -2407
  883. package/.output/server/chunks/build/ProjectTestCasesTable-BNd5Fn_G.mjs.map +0 -1
  884. package/.output/server/chunks/build/RovingFocusItem-DkZadRuK.mjs +0 -100
  885. package/.output/server/chunks/build/RovingFocusItem-DkZadRuK.mjs.map +0 -1
  886. package/.output/server/chunks/build/RunReports-CnyGcU8K.mjs +0 -57
  887. package/.output/server/chunks/build/RunReports-CnyGcU8K.mjs.map +0 -1
  888. package/.output/server/chunks/build/RunStatusBadge-DTqX18X-.mjs +0 -59
  889. package/.output/server/chunks/build/RunStatusBadge-DTqX18X-.mjs.map +0 -1
  890. package/.output/server/chunks/build/SectionCard-taTpPtua.mjs +0 -142
  891. package/.output/server/chunks/build/SectionCard-taTpPtua.mjs.map +0 -1
  892. package/.output/server/chunks/build/Select-BChKOOsc.mjs +0 -3572
  893. package/.output/server/chunks/build/Select-BChKOOsc.mjs.map +0 -1
  894. package/.output/server/chunks/build/SelectMenu-DLkMyBsW.mjs +0 -4400
  895. package/.output/server/chunks/build/SelectMenu-DLkMyBsW.mjs.map +0 -1
  896. package/.output/server/chunks/build/Separator-Dn-4PN3P.mjs +0 -421
  897. package/.output/server/chunks/build/Separator-Dn-4PN3P.mjs.map +0 -1
  898. package/.output/server/chunks/build/SettingsField-BLO1C7uY.mjs +0 -174
  899. package/.output/server/chunks/build/SettingsField-BLO1C7uY.mjs.map +0 -1
  900. package/.output/server/chunks/build/Slideover-BiDJaQrt.mjs +0 -926
  901. package/.output/server/chunks/build/Slideover-BiDJaQrt.mjs.map +0 -1
  902. package/.output/server/chunks/build/Switch-Ca3fYrSH.mjs +0 -655
  903. package/.output/server/chunks/build/Switch-Ca3fYrSH.mjs.map +0 -1
  904. package/.output/server/chunks/build/Table-DQb34a0A.mjs +0 -949
  905. package/.output/server/chunks/build/Table-DQb34a0A.mjs.map +0 -1
  906. package/.output/server/chunks/build/Tabs-_ALhm_oG.mjs +0 -1058
  907. package/.output/server/chunks/build/Tabs-_ALhm_oG.mjs.map +0 -1
  908. package/.output/server/chunks/build/TagBadge-DwzoFCBb.mjs +0 -31
  909. package/.output/server/chunks/build/TagBadge-DwzoFCBb.mjs.map +0 -1
  910. package/.output/server/chunks/build/TestCaseHistoryChart-D-TEUsZ8.mjs +0 -164
  911. package/.output/server/chunks/build/TestCaseHistoryChart-D-TEUsZ8.mjs.map +0 -1
  912. package/.output/server/chunks/build/TestStatusBar-CseETAdn.mjs +0 -109
  913. package/.output/server/chunks/build/TestStatusBar-CseETAdn.mjs.map +0 -1
  914. package/.output/server/chunks/build/Textarea-CXOoRq7y.mjs +0 -605
  915. package/.output/server/chunks/build/Textarea-CXOoRq7y.mjs.map +0 -1
  916. package/.output/server/chunks/build/Tooltip-trltUr5c.mjs +0 -874
  917. package/.output/server/chunks/build/Tooltip-trltUr5c.mjs.map +0 -1
  918. package/.output/server/chunks/build/VisuallyHiddenInput-CGURvg3N.mjs +0 -142
  919. package/.output/server/chunks/build/VisuallyHiddenInput-CGURvg3N.mjs.map +0 -1
  920. package/.output/server/chunks/build/_id_-B-G4eG5U.mjs +0 -4144
  921. package/.output/server/chunks/build/_id_-B-G4eG5U.mjs.map +0 -1
  922. package/.output/server/chunks/build/_id_-Cnzg8n21.mjs +0 -1416
  923. package/.output/server/chunks/build/_id_-Cnzg8n21.mjs.map +0 -1
  924. package/.output/server/chunks/build/_id_-Dp_d6gT7.mjs +0 -8666
  925. package/.output/server/chunks/build/_id_-Dp_d6gT7.mjs.map +0 -1
  926. package/.output/server/chunks/build/_id_-t2AWaYuK.mjs +0 -8126
  927. package/.output/server/chunks/build/_id_-t2AWaYuK.mjs.map +0 -1
  928. package/.output/server/chunks/build/about-BFsHkJwE.mjs +0 -698
  929. package/.output/server/chunks/build/about-BFsHkJwE.mjs.map +0 -1
  930. package/.output/server/chunks/build/account-CZAq8kVg.mjs +0 -920
  931. package/.output/server/chunks/build/account-CZAq8kVg.mjs.map +0 -1
  932. package/.output/server/chunks/build/ai-BGP3GcCR.mjs +0 -1850
  933. package/.output/server/chunks/build/ai-BGP3GcCR.mjs.map +0 -1
  934. package/.output/server/chunks/build/analytics-CXl5OWV-.mjs +0 -3567
  935. package/.output/server/chunks/build/analytics-CXl5OWV-.mjs.map +0 -1
  936. package/.output/server/chunks/build/compare-B2OB3zdd.mjs +0 -83
  937. package/.output/server/chunks/build/compare-B2OB3zdd.mjs.map +0 -1
  938. package/.output/server/chunks/build/db.client-DijpEH6i.mjs +0 -1101
  939. package/.output/server/chunks/build/db.client-DijpEH6i.mjs.map +0 -1
  940. package/.output/server/chunks/build/default-4ixAePum.mjs +0 -6494
  941. package/.output/server/chunks/build/default-4ixAePum.mjs.map +0 -1
  942. package/.output/server/chunks/build/docs-Cgsd01H9.mjs +0 -1181
  943. package/.output/server/chunks/build/docs-Cgsd01H9.mjs.map +0 -1
  944. package/.output/server/chunks/build/edit-BEQ-ozj9.mjs +0 -1600
  945. package/.output/server/chunks/build/edit-BEQ-ozj9.mjs.map +0 -1
  946. package/.output/server/chunks/build/fetch-B5TVXZ1s.mjs +0 -148
  947. package/.output/server/chunks/build/fetch-B5TVXZ1s.mjs.map +0 -1
  948. package/.output/server/chunks/build/forgot-password-mqE1mpDI.mjs +0 -297
  949. package/.output/server/chunks/build/forgot-password-mqE1mpDI.mjs.map +0 -1
  950. package/.output/server/chunks/build/help-content-Bc99BajS.mjs +0 -643
  951. package/.output/server/chunks/build/help-content-Bc99BajS.mjs.map +0 -1
  952. package/.output/server/chunks/build/import-DqDDTcSc.mjs +0 -1023
  953. package/.output/server/chunks/build/import-DqDDTcSc.mjs.map +0 -1
  954. package/.output/server/chunks/build/index-Bpdj6TXV.mjs +0 -93
  955. package/.output/server/chunks/build/index-Bpdj6TXV.mjs.map +0 -1
  956. package/.output/server/chunks/build/index-DBFsIsjA.mjs +0 -10713
  957. package/.output/server/chunks/build/index-DBFsIsjA.mjs.map +0 -1
  958. package/.output/server/chunks/build/index-DSufXCZq.mjs +0 -1168
  959. package/.output/server/chunks/build/index-DSufXCZq.mjs.map +0 -1
  960. package/.output/server/chunks/build/index-WXE60AXk.mjs +0 -1696
  961. package/.output/server/chunks/build/index-WXE60AXk.mjs.map +0 -1
  962. package/.output/server/chunks/build/index-okKjrRhL.mjs +0 -443
  963. package/.output/server/chunks/build/index-okKjrRhL.mjs.map +0 -1
  964. package/.output/server/chunks/build/index-styles.BmH47p9x.mjs +0 -8
  965. package/.output/server/chunks/build/index-styles.BmH47p9x.mjs.map +0 -1
  966. package/.output/server/chunks/build/isValueEqualOrExist-C-9DzL4K.mjs +0 -11
  967. package/.output/server/chunks/build/isValueEqualOrExist-C-9DzL4K.mjs.map +0 -1
  968. package/.output/server/chunks/build/login-eQ88UoBW.mjs +0 -827
  969. package/.output/server/chunks/build/login-eQ88UoBW.mjs.map +0 -1
  970. package/.output/server/chunks/build/mcp-frcSP2Zg.mjs +0 -1593
  971. package/.output/server/chunks/build/mcp-frcSP2Zg.mjs.map +0 -1
  972. package/.output/server/chunks/build/notifications-DAtRd5V6.mjs +0 -1136
  973. package/.output/server/chunks/build/notifications-DAtRd5V6.mjs.map +0 -1
  974. package/.output/server/chunks/build/performance-BcQzGXE7.mjs +0 -581
  975. package/.output/server/chunks/build/performance-BcQzGXE7.mjs.map +0 -1
  976. package/.output/server/chunks/build/pr-feedback-BHtgvegy.mjs +0 -370
  977. package/.output/server/chunks/build/pr-feedback-BHtgvegy.mjs.map +0 -1
  978. package/.output/server/chunks/build/reset-password-DMHrp14-.mjs +0 -355
  979. package/.output/server/chunks/build/reset-password-DMHrp14-.mjs.map +0 -1
  980. package/.output/server/chunks/build/settings-Bo5OETop.mjs +0 -281
  981. package/.output/server/chunks/build/settings-Bo5OETop.mjs.map +0 -1
  982. package/.output/server/chunks/build/settings-metadata-BHbsWQ2g.mjs +0 -154
  983. package/.output/server/chunks/build/settings-metadata-BHbsWQ2g.mjs.map +0 -1
  984. package/.output/server/chunks/build/setup-DAXcxuNY.mjs +0 -1065
  985. package/.output/server/chunks/build/setup-DAXcxuNY.mjs.map +0 -1
  986. package/.output/server/chunks/build/storage-BPK0fVwx.mjs +0 -361
  987. package/.output/server/chunks/build/storage-BPK0fVwx.mjs.map +0 -1
  988. package/.output/server/chunks/build/tags-CoxErA5m.mjs +0 -375
  989. package/.output/server/chunks/build/tags-CoxErA5m.mjs.map +0 -1
  990. package/.output/server/chunks/build/test-cases-D8rn-0le.mjs +0 -228
  991. package/.output/server/chunks/build/test-cases-D8rn-0le.mjs.map +0 -1
  992. package/.output/server/chunks/build/test-functions-pWs9mhbJ.mjs +0 -552
  993. package/.output/server/chunks/build/test-functions-pWs9mhbJ.mjs.map +0 -1
  994. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs +0 -9
  995. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs.map +0 -1
  996. package/.output/server/chunks/build/useChartMarkers-C0wSO0xk.mjs +0 -156
  997. package/.output/server/chunks/build/useChartMarkers-C0wSO0xk.mjs.map +0 -1
  998. package/.output/server/chunks/build/useCopyRich-BqVfhnoH.mjs +0 -5355
  999. package/.output/server/chunks/build/useCopyRich-BqVfhnoH.mjs.map +0 -1
  1000. package/.output/server/chunks/build/useDesktopDownload-l80DQJ9e.mjs +0 -46
  1001. package/.output/server/chunks/build/useDesktopDownload-l80DQJ9e.mjs.map +0 -1
  1002. package/.output/server/chunks/build/useDesktopLocalRuns-Dil3YzyU.mjs +0 -381
  1003. package/.output/server/chunks/build/useDesktopLocalRuns-Dil3YzyU.mjs.map +0 -1
  1004. package/.output/server/chunks/build/useDesktopProjectLink-BnIONB--.mjs +0 -84
  1005. package/.output/server/chunks/build/useDesktopProjectLink-BnIONB--.mjs.map +0 -1
  1006. package/.output/server/chunks/build/useFormControl-CXKztoWk.mjs +0 -9
  1007. package/.output/server/chunks/build/useFormControl-CXKztoWk.mjs.map +0 -1
  1008. package/.output/server/chunks/build/useOpenInIde-CbbYW3pd.mjs +0 -185
  1009. package/.output/server/chunks/build/useOpenInIde-CbbYW3pd.mjs.map +0 -1
  1010. package/.output/server/chunks/build/useSettingsNav-C6NpD4Ab.mjs +0 -19
  1011. package/.output/server/chunks/build/useSettingsNav-C6NpD4Ab.mjs.map +0 -1
  1012. package/.output/server/chunks/build/useTreeViewCookie-CQjQdTkH.mjs +0 -25
  1013. package/.output/server/chunks/build/useTreeViewCookie-CQjQdTkH.mjs.map +0 -1
  1014. package/.output/server/chunks/build/users-C2MuCf5G.mjs +0 -747
  1015. package/.output/server/chunks/build/users-C2MuCf5G.mjs.map +0 -1
  1016. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +0 -76
  1017. package/.output/server/chunks/routes/api/markers/_id_.put.mjs.map +0 -1
  1018. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +0 -89
  1019. package/.output/server/chunks/routes/api/projects/_id_.put.mjs.map +0 -1
  1020. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +0 -77
  1021. package/.output/server/chunks/routes/api/tags/_id_.put.mjs.map +0 -1
  1022. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +0 -71
  1023. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs.map +0 -1
  1024. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +0 -66
  1025. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +0 -1
  1026. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +0 -55
  1027. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +0 -1
  1028. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +0 -56
  1029. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +0 -1
  1030. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +0 -64
  1031. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +0 -1
  1032. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +0 -64
  1033. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +0 -1
  1034. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +0 -59
  1035. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +0 -1
  1036. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +0 -62
  1037. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +0 -1
  1038. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +0 -55
  1039. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +0 -1
  1040. package/.output/server/node_modules/.nitro/d3-array@2.12.1/dist/d3-array.js +0 -1182
  1041. package/.output/server/node_modules/.nitro/d3-array@2.12.1/package.json +0 -53
  1042. package/.output/server/node_modules/.nitro/d3-array@3.2.4/package.json +0 -61
  1043. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/array.js +0 -4
  1044. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/ascending.js +0 -3
  1045. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/bin.js +0 -125
  1046. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/bisect.js +0 -9
  1047. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/bisector.js +0 -56
  1048. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/blur.js +0 -115
  1049. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/constant.js +0 -3
  1050. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/count.js +0 -18
  1051. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/cross.js +0 -33
  1052. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/cumsum.js +0 -6
  1053. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/descending.js +0 -7
  1054. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/deviation.js +0 -6
  1055. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/difference.js +0 -11
  1056. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/disjoint.js +0 -15
  1057. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/every.js +0 -10
  1058. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/extent.js +0 -29
  1059. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/filter.js +0 -11
  1060. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/fsum.js +0 -69
  1061. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/greatest.js +0 -29
  1062. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/greatestIndex.js +0 -19
  1063. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/group.js +0 -65
  1064. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/groupSort.js +0 -10
  1065. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/identity.js +0 -3
  1066. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/index.js +0 -57
  1067. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/intersection.js +0 -19
  1068. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/least.js +0 -29
  1069. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/leastIndex.js +0 -19
  1070. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/map.js +0 -5
  1071. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/max.js +0 -20
  1072. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/maxIndex.js +0 -22
  1073. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/mean.js +0 -19
  1074. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/median.js +0 -9
  1075. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/merge.js +0 -9
  1076. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/min.js +0 -20
  1077. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/minIndex.js +0 -22
  1078. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/mode.js +0 -28
  1079. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/nice.js +0 -18
  1080. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/number.js +0 -20
  1081. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/pairs.js +0 -15
  1082. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/permute.js +0 -3
  1083. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/quantile.js +0 -47
  1084. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/quickselect.js +0 -53
  1085. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/range.js +0 -13
  1086. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/rank.js +0 -24
  1087. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/reduce.js +0 -14
  1088. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/reverse.js +0 -4
  1089. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/scan.js +0 -6
  1090. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/shuffle.js +0 -13
  1091. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/some.js +0 -10
  1092. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/sort.js +0 -39
  1093. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/subset.js +0 -5
  1094. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/sum.js +0 -18
  1095. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/superset.js +0 -19
  1096. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/threshold/freedmanDiaconis.js +0 -7
  1097. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/threshold/scott.js +0 -7
  1098. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/threshold/sturges.js +0 -5
  1099. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/ticks.js +0 -55
  1100. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/transpose.js +0 -15
  1101. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/union.js +0 -11
  1102. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/variance.js +0 -25
  1103. package/.output/server/node_modules/.nitro/d3-array@3.2.4/src/zip.js +0 -5
  1104. package/.output/server/node_modules/.nitro/d3-path@1.0.9/dist/d3-path.js +0 -141
  1105. package/.output/server/node_modules/.nitro/d3-path@1.0.9/package.json +0 -47
  1106. package/.output/server/node_modules/.nitro/d3-path@3.1.0/package.json +0 -54
  1107. package/.output/server/node_modules/.nitro/d3-path@3.1.0/src/index.js +0 -1
  1108. package/.output/server/node_modules/.nitro/d3-path@3.1.0/src/path.js +0 -156
  1109. package/.output/server/node_modules/.nitro/d3-shape@1.3.7/dist/d3-shape.js +0 -1949
  1110. package/.output/server/node_modules/.nitro/d3-shape@1.3.7/package.json +0 -48
  1111. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/package.json +0 -55
  1112. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/arc.js +0 -268
  1113. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/area.js +0 -112
  1114. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/areaRadial.js +0 -29
  1115. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/array.js +0 -7
  1116. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/constant.js +0 -5
  1117. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/basis.js +0 -51
  1118. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/basisClosed.js +0 -52
  1119. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/basisOpen.js +0 -39
  1120. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/bump.js +0 -75
  1121. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/bundle.js +0 -56
  1122. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/cardinal.js +0 -61
  1123. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/cardinalClosed.js +0 -61
  1124. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/cardinalOpen.js +0 -49
  1125. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/catmullRom.js +0 -88
  1126. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/catmullRomClosed.js +0 -74
  1127. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/catmullRomOpen.js +0 -62
  1128. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/linear.js +0 -31
  1129. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/linearClosed.js +0 -25
  1130. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/monotone.js +0 -104
  1131. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/natural.js +0 -65
  1132. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/radial.js +0 -36
  1133. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/curve/step.js +0 -53
  1134. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/descending.js +0 -3
  1135. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/identity.js +0 -3
  1136. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/index.js +0 -53
  1137. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/line.js +0 -58
  1138. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/lineRadial.js +0 -19
  1139. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/link.js +0 -73
  1140. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/math.js +0 -20
  1141. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/noop.js +0 -1
  1142. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/offset/diverging.js +0 -14
  1143. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/offset/expand.js +0 -10
  1144. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/offset/none.js +0 -9
  1145. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/offset/silhouette.js +0 -10
  1146. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/offset/wiggle.js +0 -24
  1147. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/order/appearance.js +0 -12
  1148. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/order/ascending.js +0 -12
  1149. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/order/descending.js +0 -5
  1150. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/order/insideOut.js +0 -27
  1151. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/order/none.js +0 -5
  1152. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/order/reverse.js +0 -5
  1153. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/path.js +0 -19
  1154. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/pie.js +0 -80
  1155. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/point.js +0 -7
  1156. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/pointRadial.js +0 -3
  1157. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/stack.js +0 -58
  1158. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/asterisk.js +0 -17
  1159. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/circle.js +0 -9
  1160. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/cross.js +0 -20
  1161. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/diamond.js +0 -16
  1162. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/diamond2.js +0 -12
  1163. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/plus.js +0 -11
  1164. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/square.js +0 -9
  1165. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/square2.js +0 -12
  1166. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/star.js +0 -24
  1167. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/times.js +0 -11
  1168. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/triangle.js +0 -13
  1169. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/triangle2.js +0 -15
  1170. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol/wye.js +0 -25
  1171. package/.output/server/node_modules/.nitro/d3-shape@3.2.0/src/symbol.js +0 -66
  1172. package/.output/server/node_modules/@emotion/cache/dist/emotion-cache.cjs.js +0 -503
  1173. package/.output/server/node_modules/@emotion/cache/package.json +0 -100
  1174. package/.output/server/node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.cjs.js +0 -148
  1175. package/.output/server/node_modules/@emotion/css/create-instance/package.json +0 -9
  1176. package/.output/server/node_modules/@emotion/css/dist/emotion-css.cjs.js +0 -33
  1177. package/.output/server/node_modules/@emotion/css/dist/emotion-css.cjs.mjs +0 -12
  1178. package/.output/server/node_modules/@emotion/css/package.json +0 -106
  1179. package/.output/server/node_modules/@emotion/hash/dist/emotion-hash.cjs.dev.js +0 -59
  1180. package/.output/server/node_modules/@emotion/hash/dist/emotion-hash.cjs.js +0 -7
  1181. package/.output/server/node_modules/@emotion/hash/dist/emotion-hash.cjs.prod.js +0 -59
  1182. package/.output/server/node_modules/@emotion/hash/package.json +0 -29
  1183. package/.output/server/node_modules/@emotion/memoize/dist/emotion-memoize.cjs.dev.js +0 -13
  1184. package/.output/server/node_modules/@emotion/memoize/dist/emotion-memoize.cjs.js +0 -7
  1185. package/.output/server/node_modules/@emotion/memoize/dist/emotion-memoize.cjs.prod.js +0 -13
  1186. package/.output/server/node_modules/@emotion/memoize/package.json +0 -32
  1187. package/.output/server/node_modules/@emotion/serialize/dist/emotion-serialize.cjs.js +0 -246
  1188. package/.output/server/node_modules/@emotion/serialize/package.json +0 -54
  1189. package/.output/server/node_modules/@emotion/sheet/dist/emotion-sheet.cjs.js +0 -144
  1190. package/.output/server/node_modules/@emotion/sheet/package.json +0 -47
  1191. package/.output/server/node_modules/@emotion/unitless/dist/emotion-unitless.cjs.js +0 -56
  1192. package/.output/server/node_modules/@emotion/unitless/package.json +0 -29
  1193. package/.output/server/node_modules/@emotion/utils/dist/emotion-utils.cjs.js +0 -60
  1194. package/.output/server/node_modules/@emotion/utils/package.json +0 -65
  1195. package/.output/server/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.cjs.dev.js +0 -20
  1196. package/.output/server/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.cjs.js +0 -7
  1197. package/.output/server/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.cjs.prod.js +0 -20
  1198. package/.output/server/node_modules/@emotion/weak-memoize/package.json +0 -32
  1199. package/.output/server/node_modules/@juggle/resize-observer/lib/exports/resize-observer.umd.js +0 -512
  1200. package/.output/server/node_modules/@juggle/resize-observer/package.json +0 -69
  1201. package/.output/server/node_modules/@unovis/dagre-layout/dist/acyclic.js +0 -73
  1202. package/.output/server/node_modules/@unovis/dagre-layout/dist/add-border-segments.js +0 -48
  1203. package/.output/server/node_modules/@unovis/dagre-layout/dist/coordinate-system.js +0 -89
  1204. package/.output/server/node_modules/@unovis/dagre-layout/dist/data/list.js +0 -61
  1205. package/.output/server/node_modules/@unovis/dagre-layout/dist/greedy-fas.js +0 -143
  1206. package/.output/server/node_modules/@unovis/dagre-layout/dist/index.js +0 -9
  1207. package/.output/server/node_modules/@unovis/dagre-layout/dist/layout.js +0 -514
  1208. package/.output/server/node_modules/@unovis/dagre-layout/dist/nesting-graph.js +0 -149
  1209. package/.output/server/node_modules/@unovis/dagre-layout/dist/normalize.js +0 -111
  1210. package/.output/server/node_modules/@unovis/dagre-layout/dist/order/add-subgraph-constraints.js +0 -57
  1211. package/.output/server/node_modules/@unovis/dagre-layout/dist/order/barycenter.js +0 -35
  1212. package/.output/server/node_modules/@unovis/dagre-layout/dist/order/build-layer-graph.js +0 -86
  1213. package/.output/server/node_modules/@unovis/dagre-layout/dist/order/cross-count.js +0 -90
  1214. package/.output/server/node_modules/@unovis/dagre-layout/dist/order/index.js +0 -83
  1215. package/.output/server/node_modules/@unovis/dagre-layout/dist/order/init-order.js +0 -54
  1216. package/.output/server/node_modules/@unovis/dagre-layout/dist/order/resolve-conflicts.js +0 -132
  1217. package/.output/server/node_modules/@unovis/dagre-layout/dist/order/sort-subgraph.js +0 -83
  1218. package/.output/server/node_modules/@unovis/dagre-layout/dist/order/sort.js +0 -70
  1219. package/.output/server/node_modules/@unovis/dagre-layout/dist/parent-dummy-chains.js +0 -94
  1220. package/.output/server/node_modules/@unovis/dagre-layout/dist/position/bk.js +0 -451
  1221. package/.output/server/node_modules/@unovis/dagre-layout/dist/position/index.js +0 -35
  1222. package/.output/server/node_modules/@unovis/dagre-layout/dist/rank/feasible-tree.js +0 -94
  1223. package/.output/server/node_modules/@unovis/dagre-layout/dist/rank/index.js +0 -56
  1224. package/.output/server/node_modules/@unovis/dagre-layout/dist/rank/network-simplex.js +0 -246
  1225. package/.output/server/node_modules/@unovis/dagre-layout/dist/rank/util.js +0 -56
  1226. package/.output/server/node_modules/@unovis/dagre-layout/dist/util.js +0 -291
  1227. package/.output/server/node_modules/@unovis/dagre-layout/package.json +0 -73
  1228. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/components.js +0 -32
  1229. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/dfs.js +0 -53
  1230. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/dijkstra-all.js +0 -11
  1231. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/dijkstra.js +0 -57
  1232. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/find-cycles.js +0 -11
  1233. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/floyd-warshall.js +0 -56
  1234. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/index.js +0 -12
  1235. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/is-acyclic.js +0 -18
  1236. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/postorder.js +0 -8
  1237. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/preorder.js +0 -8
  1238. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/prim.js +0 -56
  1239. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/tarjan.js +0 -49
  1240. package/.output/server/node_modules/@unovis/graphlibrary/dist/alg/topsort.js +0 -42
  1241. package/.output/server/node_modules/@unovis/graphlibrary/dist/data/priority-queue.js +0 -179
  1242. package/.output/server/node_modules/@unovis/graphlibrary/dist/graph.js +0 -572
  1243. package/.output/server/node_modules/@unovis/graphlibrary/dist/index.js +0 -6
  1244. package/.output/server/node_modules/@unovis/graphlibrary/dist/json.js +0 -88
  1245. package/.output/server/node_modules/@unovis/graphlibrary/package.json +0 -63
  1246. package/.output/server/node_modules/@unovis/ts/components/annotations/config.js +0 -6
  1247. package/.output/server/node_modules/@unovis/ts/components/annotations/index.js +0 -125
  1248. package/.output/server/node_modules/@unovis/ts/components/annotations/style.js +0 -54
  1249. package/.output/server/node_modules/@unovis/ts/components/annotations/types.js +0 -2
  1250. package/.output/server/node_modules/@unovis/ts/components/area/config.js +0 -7
  1251. package/.output/server/node_modules/@unovis/ts/components/area/index.js +0 -197
  1252. package/.output/server/node_modules/@unovis/ts/components/area/style.js +0 -50
  1253. package/.output/server/node_modules/@unovis/ts/components/axis/config.js +0 -7
  1254. package/.output/server/node_modules/@unovis/ts/components/axis/index.js +0 -500
  1255. package/.output/server/node_modules/@unovis/ts/components/axis/style.js +0 -121
  1256. package/.output/server/node_modules/@unovis/ts/components/axis/types.js +0 -8
  1257. package/.output/server/node_modules/@unovis/ts/components/brush/config.js +0 -15
  1258. package/.output/server/node_modules/@unovis/ts/components/brush/index.js +0 -204
  1259. package/.output/server/node_modules/@unovis/ts/components/brush/style.js +0 -70
  1260. package/.output/server/node_modules/@unovis/ts/components/brush/types.js +0 -8
  1261. package/.output/server/node_modules/@unovis/ts/components/bullet-legend/config.js +0 -17
  1262. package/.output/server/node_modules/@unovis/ts/components/bullet-legend/index.js +0 -87
  1263. package/.output/server/node_modules/@unovis/ts/components/bullet-legend/modules/shape.js +0 -102
  1264. package/.output/server/node_modules/@unovis/ts/components/bullet-legend/style.js +0 -75
  1265. package/.output/server/node_modules/@unovis/ts/components/bullet-legend/types.js +0 -12
  1266. package/.output/server/node_modules/@unovis/ts/components/chord-diagram/config.js +0 -8
  1267. package/.output/server/node_modules/@unovis/ts/components/chord-diagram/index.js +0 -245
  1268. package/.output/server/node_modules/@unovis/ts/components/chord-diagram/modules/label.js +0 -113
  1269. package/.output/server/node_modules/@unovis/ts/components/chord-diagram/modules/layout.js +0 -93
  1270. package/.output/server/node_modules/@unovis/ts/components/chord-diagram/modules/link.js +0 -69
  1271. package/.output/server/node_modules/@unovis/ts/components/chord-diagram/modules/node.js +0 -52
  1272. package/.output/server/node_modules/@unovis/ts/components/chord-diagram/style.js +0 -97
  1273. package/.output/server/node_modules/@unovis/ts/components/chord-diagram/types.js +0 -8
  1274. package/.output/server/node_modules/@unovis/ts/components/crosshair/config.js +0 -6
  1275. package/.output/server/node_modules/@unovis/ts/components/crosshair/index.js +0 -287
  1276. package/.output/server/node_modules/@unovis/ts/components/crosshair/style.js +0 -30
  1277. package/.output/server/node_modules/@unovis/ts/components/crosshair/types.js +0 -2
  1278. package/.output/server/node_modules/@unovis/ts/components/donut/config.js +0 -7
  1279. package/.output/server/node_modules/@unovis/ts/components/donut/constants.js +0 -8
  1280. package/.output/server/node_modules/@unovis/ts/components/donut/index.js +0 -138
  1281. package/.output/server/node_modules/@unovis/ts/components/donut/modules/arc.js +0 -59
  1282. package/.output/server/node_modules/@unovis/ts/components/donut/style.js +0 -70
  1283. package/.output/server/node_modules/@unovis/ts/components/flow-legend/config.js +0 -17
  1284. package/.output/server/node_modules/@unovis/ts/components/flow-legend/index.js +0 -96
  1285. package/.output/server/node_modules/@unovis/ts/components/flow-legend/style.js +0 -98
  1286. package/.output/server/node_modules/@unovis/ts/components/flow-legend/types.js +0 -8
  1287. package/.output/server/node_modules/@unovis/ts/components/free-brush/config.js +0 -15
  1288. package/.output/server/node_modules/@unovis/ts/components/free-brush/index.js +0 -193
  1289. package/.output/server/node_modules/@unovis/ts/components/free-brush/style.js +0 -51
  1290. package/.output/server/node_modules/@unovis/ts/components/free-brush/types.js +0 -10
  1291. package/.output/server/node_modules/@unovis/ts/components/graph/config.js +0 -23
  1292. package/.output/server/node_modules/@unovis/ts/components/graph/index.js +0 -914
  1293. package/.output/server/node_modules/@unovis/ts/components/graph/modules/layout-helpers.js +0 -69
  1294. package/.output/server/node_modules/@unovis/ts/components/graph/modules/layout.js +0 -429
  1295. package/.output/server/node_modules/@unovis/ts/components/graph/modules/link/helper.js +0 -64
  1296. package/.output/server/node_modules/@unovis/ts/components/graph/modules/link/index.js +0 -294
  1297. package/.output/server/node_modules/@unovis/ts/components/graph/modules/link/style.js +0 -120
  1298. package/.output/server/node_modules/@unovis/ts/components/graph/modules/node/helper.js +0 -129
  1299. package/.output/server/node_modules/@unovis/ts/components/graph/modules/node/index.js +0 -326
  1300. package/.output/server/node_modules/@unovis/ts/components/graph/modules/node/style.js +0 -313
  1301. package/.output/server/node_modules/@unovis/ts/components/graph/modules/panel/helper.js +0 -111
  1302. package/.output/server/node_modules/@unovis/ts/components/graph/modules/panel/index.js +0 -99
  1303. package/.output/server/node_modules/@unovis/ts/components/graph/modules/panel/style.js +0 -126
  1304. package/.output/server/node_modules/@unovis/ts/components/graph/modules/shape.js +0 -78
  1305. package/.output/server/node_modules/@unovis/ts/components/graph/modules/zoom-levels.js +0 -10
  1306. package/.output/server/node_modules/@unovis/ts/components/graph/style.js +0 -87
  1307. package/.output/server/node_modules/@unovis/ts/components/graph/types.js +0 -45
  1308. package/.output/server/node_modules/@unovis/ts/components/grouped-bar/config.js +0 -7
  1309. package/.output/server/node_modules/@unovis/ts/components/grouped-bar/index.js +0 -239
  1310. package/.output/server/node_modules/@unovis/ts/components/grouped-bar/style.js +0 -45
  1311. package/.output/server/node_modules/@unovis/ts/components/leaflet-flow-map/config.js +0 -7
  1312. package/.output/server/node_modules/@unovis/ts/components/leaflet-flow-map/index.js +0 -221
  1313. package/.output/server/node_modules/@unovis/ts/components/leaflet-flow-map/renderer-utils.js +0 -15
  1314. package/.output/server/node_modules/@unovis/ts/components/leaflet-flow-map/renderer.js +0 -117
  1315. package/.output/server/node_modules/@unovis/ts/components/leaflet-flow-map/shaders.js +0 -27
  1316. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/config.js +0 -28
  1317. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/index.js +0 -706
  1318. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/leaflet.css.js +0 -5
  1319. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/modules/clusterBackground.js +0 -27
  1320. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/modules/donut.js +0 -25
  1321. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/modules/map.js +0 -155
  1322. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/modules/node.js +0 -158
  1323. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/modules/selectionRing.js +0 -41
  1324. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/modules/utils.js +0 -214
  1325. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/renderer/leaflet-maplibre-gl.js +0 -273
  1326. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/renderer/map-style.js +0 -15
  1327. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json.js +0 -40
  1328. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json.js +0 -40
  1329. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json.js +0 -4981
  1330. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/renderer/mapboxgl-layer.js +0 -27
  1331. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/renderer/mapboxgl-utils.js +0 -38
  1332. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/renderer/maplibre-gl.css.js +0 -4
  1333. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/style.js +0 -183
  1334. package/.output/server/node_modules/@unovis/ts/components/leaflet-map/types.js +0 -15
  1335. package/.output/server/node_modules/@unovis/ts/components/line/config.js +0 -7
  1336. package/.output/server/node_modules/@unovis/ts/components/line/index.js +0 -191
  1337. package/.output/server/node_modules/@unovis/ts/components/line/style.js +0 -46
  1338. package/.output/server/node_modules/@unovis/ts/components/nested-donut/config.js +0 -8
  1339. package/.output/server/node_modules/@unovis/ts/components/nested-donut/index.js +0 -218
  1340. package/.output/server/node_modules/@unovis/ts/components/nested-donut/modules/arc.js +0 -51
  1341. package/.output/server/node_modules/@unovis/ts/components/nested-donut/modules/label.js +0 -82
  1342. package/.output/server/node_modules/@unovis/ts/components/nested-donut/style.js +0 -80
  1343. package/.output/server/node_modules/@unovis/ts/components/nested-donut/types.js +0 -14
  1344. package/.output/server/node_modules/@unovis/ts/components/plotband/config.js +0 -9
  1345. package/.output/server/node_modules/@unovis/ts/components/plotband/constants.js +0 -413
  1346. package/.output/server/node_modules/@unovis/ts/components/plotband/index.js +0 -92
  1347. package/.output/server/node_modules/@unovis/ts/components/plotband/style.js +0 -39
  1348. package/.output/server/node_modules/@unovis/ts/components/plotband/types.js +0 -27
  1349. package/.output/server/node_modules/@unovis/ts/components/plotline/config.js +0 -9
  1350. package/.output/server/node_modules/@unovis/ts/components/plotline/constants.js +0 -58
  1351. package/.output/server/node_modules/@unovis/ts/components/plotline/index.js +0 -102
  1352. package/.output/server/node_modules/@unovis/ts/components/plotline/style.js +0 -43
  1353. package/.output/server/node_modules/@unovis/ts/components/plotline/types.js +0 -33
  1354. package/.output/server/node_modules/@unovis/ts/components/rolling-pin-legend/config.js +0 -11
  1355. package/.output/server/node_modules/@unovis/ts/components/rolling-pin-legend/index.js +0 -69
  1356. package/.output/server/node_modules/@unovis/ts/components/rolling-pin-legend/style.js +0 -39
  1357. package/.output/server/node_modules/@unovis/ts/components/rolling-pin-legend/types.js +0 -2
  1358. package/.output/server/node_modules/@unovis/ts/components/sankey/config.js +0 -18
  1359. package/.output/server/node_modules/@unovis/ts/components/sankey/index.js +0 -637
  1360. package/.output/server/node_modules/@unovis/ts/components/sankey/modules/label.js +0 -206
  1361. package/.output/server/node_modules/@unovis/ts/components/sankey/modules/link.js +0 -99
  1362. package/.output/server/node_modules/@unovis/ts/components/sankey/modules/node.js +0 -206
  1363. package/.output/server/node_modules/@unovis/ts/components/sankey/style.js +0 -172
  1364. package/.output/server/node_modules/@unovis/ts/components/sankey/types.js +0 -46
  1365. package/.output/server/node_modules/@unovis/ts/components/scatter/config.js +0 -10
  1366. package/.output/server/node_modules/@unovis/ts/components/scatter/index.js +0 -200
  1367. package/.output/server/node_modules/@unovis/ts/components/scatter/modules/point.js +0 -87
  1368. package/.output/server/node_modules/@unovis/ts/components/scatter/modules/utils.js +0 -112
  1369. package/.output/server/node_modules/@unovis/ts/components/scatter/style.js +0 -56
  1370. package/.output/server/node_modules/@unovis/ts/components/stacked-bar/config.js +0 -7
  1371. package/.output/server/node_modules/@unovis/ts/components/stacked-bar/index.js +0 -244
  1372. package/.output/server/node_modules/@unovis/ts/components/stacked-bar/style.js +0 -44
  1373. package/.output/server/node_modules/@unovis/ts/components/timeline/config.js +0 -20
  1374. package/.output/server/node_modules/@unovis/ts/components/timeline/constants.js +0 -6
  1375. package/.output/server/node_modules/@unovis/ts/components/timeline/index.js +0 -568
  1376. package/.output/server/node_modules/@unovis/ts/components/timeline/style.js +0 -126
  1377. package/.output/server/node_modules/@unovis/ts/components/timeline/types.js +0 -2
  1378. package/.output/server/node_modules/@unovis/ts/components/timeline/utils.js +0 -16
  1379. package/.output/server/node_modules/@unovis/ts/components/tooltip/config.js +0 -21
  1380. package/.output/server/node_modules/@unovis/ts/components/tooltip/index.js +0 -365
  1381. package/.output/server/node_modules/@unovis/ts/components/tooltip/style.js +0 -76
  1382. package/.output/server/node_modules/@unovis/ts/components/topojson-map/config.js +0 -11
  1383. package/.output/server/node_modules/@unovis/ts/components/topojson-map/index.js +0 -1294
  1384. package/.output/server/node_modules/@unovis/ts/components/topojson-map/modules/background.js +0 -13
  1385. package/.output/server/node_modules/@unovis/ts/components/topojson-map/modules/donut.js +0 -29
  1386. package/.output/server/node_modules/@unovis/ts/components/topojson-map/modules/flow.js +0 -134
  1387. package/.output/server/node_modules/@unovis/ts/components/topojson-map/modules/selectionRing.js +0 -33
  1388. package/.output/server/node_modules/@unovis/ts/components/topojson-map/style.js +0 -229
  1389. package/.output/server/node_modules/@unovis/ts/components/topojson-map/types.js +0 -87
  1390. package/.output/server/node_modules/@unovis/ts/components/topojson-map/utils.js +0 -324
  1391. package/.output/server/node_modules/@unovis/ts/components/treemap/config.js +0 -7
  1392. package/.output/server/node_modules/@unovis/ts/components/treemap/index.js +0 -296
  1393. package/.output/server/node_modules/@unovis/ts/components/treemap/style.js +0 -68
  1394. package/.output/server/node_modules/@unovis/ts/components/treemap/types.js +0 -2
  1395. package/.output/server/node_modules/@unovis/ts/components/vis-controls/config.js +0 -10
  1396. package/.output/server/node_modules/@unovis/ts/components/vis-controls/index.js +0 -55
  1397. package/.output/server/node_modules/@unovis/ts/components/vis-controls/style.js +0 -76
  1398. package/.output/server/node_modules/@unovis/ts/components/vis-controls/types.js +0 -8
  1399. package/.output/server/node_modules/@unovis/ts/components/xy-labels/config.js +0 -8
  1400. package/.output/server/node_modules/@unovis/ts/components/xy-labels/index.js +0 -88
  1401. package/.output/server/node_modules/@unovis/ts/components/xy-labels/modules/label.js +0 -107
  1402. package/.output/server/node_modules/@unovis/ts/components/xy-labels/style.js +0 -56
  1403. package/.output/server/node_modules/@unovis/ts/components/xy-labels/types.js +0 -9
  1404. package/.output/server/node_modules/@unovis/ts/components.js +0 -35
  1405. package/.output/server/node_modules/@unovis/ts/containers/single-container/config.js +0 -7
  1406. package/.output/server/node_modules/@unovis/ts/containers/single-container/index.js +0 -151
  1407. package/.output/server/node_modules/@unovis/ts/containers/xy-container/config.js +0 -7
  1408. package/.output/server/node_modules/@unovis/ts/containers/xy-container/index.js +0 -370
  1409. package/.output/server/node_modules/@unovis/ts/containers.js +0 -4
  1410. package/.output/server/node_modules/@unovis/ts/core/component/config.js +0 -8
  1411. package/.output/server/node_modules/@unovis/ts/core/component/index.js +0 -136
  1412. package/.output/server/node_modules/@unovis/ts/core/component/types.js +0 -2
  1413. package/.output/server/node_modules/@unovis/ts/core/container/config.js +0 -26
  1414. package/.output/server/node_modules/@unovis/ts/core/container/index.js +0 -135
  1415. package/.output/server/node_modules/@unovis/ts/core/xy-component/config.js +0 -7
  1416. package/.output/server/node_modules/@unovis/ts/core/xy-component/index.js +0 -78
  1417. package/.output/server/node_modules/@unovis/ts/data-models/core.js +0 -14
  1418. package/.output/server/node_modules/@unovis/ts/data-models/graph.js +0 -128
  1419. package/.output/server/node_modules/@unovis/ts/data-models/index.js +0 -5
  1420. package/.output/server/node_modules/@unovis/ts/data-models/map-graph.js +0 -59
  1421. package/.output/server/node_modules/@unovis/ts/data-models/map.js +0 -12
  1422. package/.output/server/node_modules/@unovis/ts/data-models/series.js +0 -19
  1423. package/.output/server/node_modules/@unovis/ts/index.js +0 -81
  1424. package/.output/server/node_modules/@unovis/ts/package.json +0 -127
  1425. package/.output/server/node_modules/@unovis/ts/styles/colors.js +0 -24
  1426. package/.output/server/node_modules/@unovis/ts/styles/index.js +0 -66
  1427. package/.output/server/node_modules/@unovis/ts/styles/patterns.js +0 -54
  1428. package/.output/server/node_modules/@unovis/ts/styles/sizes.js +0 -117
  1429. package/.output/server/node_modules/@unovis/ts/types/accessor.js +0 -2
  1430. package/.output/server/node_modules/@unovis/ts/types/component.js +0 -16
  1431. package/.output/server/node_modules/@unovis/ts/types/curve.js +0 -46
  1432. package/.output/server/node_modules/@unovis/ts/types/data.js +0 -9
  1433. package/.output/server/node_modules/@unovis/ts/types/direction.js +0 -10
  1434. package/.output/server/node_modules/@unovis/ts/types/graph.js +0 -2
  1435. package/.output/server/node_modules/@unovis/ts/types/map.js +0 -2
  1436. package/.output/server/node_modules/@unovis/ts/types/misc.js +0 -2
  1437. package/.output/server/node_modules/@unovis/ts/types/position.js +0 -28
  1438. package/.output/server/node_modules/@unovis/ts/types/scale.js +0 -28
  1439. package/.output/server/node_modules/@unovis/ts/types/shape.js +0 -11
  1440. package/.output/server/node_modules/@unovis/ts/types/spacing.js +0 -2
  1441. package/.output/server/node_modules/@unovis/ts/types/svg.js +0 -22
  1442. package/.output/server/node_modules/@unovis/ts/types/symbol.js +0 -24
  1443. package/.output/server/node_modules/@unovis/ts/types/text.js +0 -26
  1444. package/.output/server/node_modules/@unovis/ts/types.js +0 -37
  1445. package/.output/server/node_modules/@unovis/ts/utils/color.js +0 -66
  1446. package/.output/server/node_modules/@unovis/ts/utils/d3.js +0 -16
  1447. package/.output/server/node_modules/@unovis/ts/utils/data.js +0 -314
  1448. package/.output/server/node_modules/@unovis/ts/utils/html.js +0 -23
  1449. package/.output/server/node_modules/@unovis/ts/utils/index.js +0 -14
  1450. package/.output/server/node_modules/@unovis/ts/utils/map.js +0 -20
  1451. package/.output/server/node_modules/@unovis/ts/utils/misc.js +0 -151
  1452. package/.output/server/node_modules/@unovis/ts/utils/path.js +0 -261
  1453. package/.output/server/node_modules/@unovis/ts/utils/resize-observer.js +0 -6
  1454. package/.output/server/node_modules/@unovis/ts/utils/scale.js +0 -4
  1455. package/.output/server/node_modules/@unovis/ts/utils/style.js +0 -30
  1456. package/.output/server/node_modules/@unovis/ts/utils/svg.js +0 -61
  1457. package/.output/server/node_modules/@unovis/ts/utils/text.js +0 -506
  1458. package/.output/server/node_modules/@unovis/ts/utils/theme.js +0 -4
  1459. package/.output/server/node_modules/@unovis/ts/utils/to-px.js +0 -110
  1460. package/.output/server/node_modules/@unovis/ts/utils/type.js +0 -2
  1461. package/.output/server/node_modules/@unovis/vue/components/annotations/index.js +0 -34
  1462. package/.output/server/node_modules/@unovis/vue/components/area/index.js +0 -52
  1463. package/.output/server/node_modules/@unovis/vue/components/axis/index.js +0 -71
  1464. package/.output/server/node_modules/@unovis/vue/components/brush/index.js +0 -51
  1465. package/.output/server/node_modules/@unovis/vue/components/chord-diagram/index.js +0 -48
  1466. package/.output/server/node_modules/@unovis/vue/components/crosshair/index.js +0 -28
  1467. package/.output/server/node_modules/@unovis/vue/components/donut/index.js +0 -52
  1468. package/.output/server/node_modules/@unovis/vue/components/free-brush/index.js +0 -50
  1469. package/.output/server/node_modules/@unovis/vue/components/graph/index.js +0 -124
  1470. package/.output/server/node_modules/@unovis/vue/components/grouped-bar/index.js +0 -50
  1471. package/.output/server/node_modules/@unovis/vue/components/line/index.js +0 -48
  1472. package/.output/server/node_modules/@unovis/vue/components/nested-donut/index.js +0 -53
  1473. package/.output/server/node_modules/@unovis/vue/components/plotband/index.js +0 -49
  1474. package/.output/server/node_modules/@unovis/vue/components/plotline/index.js +0 -50
  1475. package/.output/server/node_modules/@unovis/vue/components/sankey/index.js +0 -91
  1476. package/.output/server/node_modules/@unovis/vue/components/scatter/index.js +0 -53
  1477. package/.output/server/node_modules/@unovis/vue/components/stacked-bar/index.js +0 -50
  1478. package/.output/server/node_modules/@unovis/vue/components/timeline/index.js +0 -28
  1479. package/.output/server/node_modules/@unovis/vue/components/tooltip/index.js +0 -42
  1480. package/.output/server/node_modules/@unovis/vue/components/topojson-map/index.js +0 -95
  1481. package/.output/server/node_modules/@unovis/vue/components/treemap/index.js +0 -60
  1482. package/.output/server/node_modules/@unovis/vue/components/xy-labels/index.js +0 -54
  1483. package/.output/server/node_modules/@unovis/vue/containers/single-container/index.js +0 -67
  1484. package/.output/server/node_modules/@unovis/vue/containers/xy-container/index.js +0 -98
  1485. package/.output/server/node_modules/@unovis/vue/html-components/bullet-legend/index.js +0 -44
  1486. package/.output/server/node_modules/@unovis/vue/html-components/flow-legend/index.js +0 -46
  1487. package/.output/server/node_modules/@unovis/vue/html-components/leaflet-flow-map/index.js +0 -96
  1488. package/.output/server/node_modules/@unovis/vue/html-components/leaflet-map/index.js +0 -83
  1489. package/.output/server/node_modules/@unovis/vue/html-components/rolling-pin-legend/index.js +0 -40
  1490. package/.output/server/node_modules/@unovis/vue/index.js +0 -96
  1491. package/.output/server/node_modules/@unovis/vue/package.json +0 -81
  1492. package/.output/server/node_modules/@unovis/vue/utils/context.js +0 -9
  1493. package/.output/server/node_modules/@unovis/vue/utils/props.js +0 -19
  1494. package/.output/server/node_modules/d3-axis/package.json +0 -54
  1495. package/.output/server/node_modules/d3-axis/src/axis.js +0 -174
  1496. package/.output/server/node_modules/d3-axis/src/identity.js +0 -3
  1497. package/.output/server/node_modules/d3-axis/src/index.js +0 -6
  1498. package/.output/server/node_modules/d3-brush/package.json +0 -55
  1499. package/.output/server/node_modules/d3-brush/src/brush.js +0 -621
  1500. package/.output/server/node_modules/d3-brush/src/constant.js +0 -1
  1501. package/.output/server/node_modules/d3-brush/src/event.js +0 -16
  1502. package/.output/server/node_modules/d3-brush/src/index.js +0 -6
  1503. package/.output/server/node_modules/d3-brush/src/noevent.js +0 -8
  1504. package/.output/server/node_modules/d3-chord/package.json +0 -54
  1505. package/.output/server/node_modules/d3-chord/src/array.js +0 -1
  1506. package/.output/server/node_modules/d3-chord/src/chord.js +0 -122
  1507. package/.output/server/node_modules/d3-chord/src/constant.js +0 -5
  1508. package/.output/server/node_modules/d3-chord/src/index.js +0 -2
  1509. package/.output/server/node_modules/d3-chord/src/math.js +0 -8
  1510. package/.output/server/node_modules/d3-chord/src/ribbon.js +0 -134
  1511. package/.output/server/node_modules/d3-color/package.json +0 -54
  1512. package/.output/server/node_modules/d3-color/src/color.js +0 -396
  1513. package/.output/server/node_modules/d3-color/src/cubehelix.js +0 -61
  1514. package/.output/server/node_modules/d3-color/src/define.js +0 -10
  1515. package/.output/server/node_modules/d3-color/src/index.js +0 -3
  1516. package/.output/server/node_modules/d3-color/src/lab.js +0 -123
  1517. package/.output/server/node_modules/d3-color/src/math.js +0 -2
  1518. package/.output/server/node_modules/d3-dispatch/package.json +0 -50
  1519. package/.output/server/node_modules/d3-dispatch/src/dispatch.js +0 -84
  1520. package/.output/server/node_modules/d3-dispatch/src/index.js +0 -1
  1521. package/.output/server/node_modules/d3-drag/package.json +0 -54
  1522. package/.output/server/node_modules/d3-drag/src/constant.js +0 -1
  1523. package/.output/server/node_modules/d3-drag/src/drag.js +0 -194
  1524. package/.output/server/node_modules/d3-drag/src/event.js +0 -28
  1525. package/.output/server/node_modules/d3-drag/src/index.js +0 -2
  1526. package/.output/server/node_modules/d3-drag/src/nodrag.js +0 -28
  1527. package/.output/server/node_modules/d3-drag/src/noevent.js +0 -13
  1528. package/.output/server/node_modules/d3-ease/package.json +0 -51
  1529. package/.output/server/node_modules/d3-ease/src/back.js +0 -37
  1530. package/.output/server/node_modules/d3-ease/src/bounce.js +0 -22
  1531. package/.output/server/node_modules/d3-ease/src/circle.js +0 -11
  1532. package/.output/server/node_modules/d3-ease/src/cubic.js +0 -11
  1533. package/.output/server/node_modules/d3-ease/src/elastic.js +0 -46
  1534. package/.output/server/node_modules/d3-ease/src/exp.js +0 -13
  1535. package/.output/server/node_modules/d3-ease/src/index.js +0 -66
  1536. package/.output/server/node_modules/d3-ease/src/linear.js +0 -1
  1537. package/.output/server/node_modules/d3-ease/src/math.js +0 -4
  1538. package/.output/server/node_modules/d3-ease/src/poly.js +0 -37
  1539. package/.output/server/node_modules/d3-ease/src/quad.js +0 -11
  1540. package/.output/server/node_modules/d3-ease/src/sin.js +0 -14
  1541. package/.output/server/node_modules/d3-force/package.json +0 -58
  1542. package/.output/server/node_modules/d3-force/src/center.js +0 -40
  1543. package/.output/server/node_modules/d3-force/src/collide.js +0 -100
  1544. package/.output/server/node_modules/d3-force/src/constant.js +0 -5
  1545. package/.output/server/node_modules/d3-force/src/index.js +0 -8
  1546. package/.output/server/node_modules/d3-force/src/jiggle.js +0 -3
  1547. package/.output/server/node_modules/d3-force/src/lcg.js +0 -9
  1548. package/.output/server/node_modules/d3-force/src/link.js +0 -117
  1549. package/.output/server/node_modules/d3-force/src/manyBody.js +0 -116
  1550. package/.output/server/node_modules/d3-force/src/radial.js +0 -57
  1551. package/.output/server/node_modules/d3-force/src/simulation.js +0 -156
  1552. package/.output/server/node_modules/d3-force/src/x.js +0 -41
  1553. package/.output/server/node_modules/d3-force/src/y.js +0 -41
  1554. package/.output/server/node_modules/d3-format/package.json +0 -56
  1555. package/.output/server/node_modules/d3-format/src/defaultLocale.js +0 -18
  1556. package/.output/server/node_modules/d3-format/src/exponent.js +0 -5
  1557. package/.output/server/node_modules/d3-format/src/formatDecimal.js +0 -20
  1558. package/.output/server/node_modules/d3-format/src/formatGroup.js +0 -18
  1559. package/.output/server/node_modules/d3-format/src/formatNumerals.js +0 -7
  1560. package/.output/server/node_modules/d3-format/src/formatPrefixAuto.js +0 -16
  1561. package/.output/server/node_modules/d3-format/src/formatRounded.js +0 -11
  1562. package/.output/server/node_modules/d3-format/src/formatSpecifier.js +0 -47
  1563. package/.output/server/node_modules/d3-format/src/formatTrim.js +0 -11
  1564. package/.output/server/node_modules/d3-format/src/formatTypes.js +0 -19
  1565. package/.output/server/node_modules/d3-format/src/identity.js +0 -3
  1566. package/.output/server/node_modules/d3-format/src/index.js +0 -6
  1567. package/.output/server/node_modules/d3-format/src/locale.js +0 -147
  1568. package/.output/server/node_modules/d3-format/src/precisionFixed.js +0 -5
  1569. package/.output/server/node_modules/d3-format/src/precisionPrefix.js +0 -5
  1570. package/.output/server/node_modules/d3-format/src/precisionRound.js +0 -6
  1571. package/.output/server/node_modules/d3-geo/package.json +0 -59
  1572. package/.output/server/node_modules/d3-geo/src/area.js +0 -76
  1573. package/.output/server/node_modules/d3-geo/src/bounds.js +0 -179
  1574. package/.output/server/node_modules/d3-geo/src/cartesian.js +0 -33
  1575. package/.output/server/node_modules/d3-geo/src/centroid.js +0 -143
  1576. package/.output/server/node_modules/d3-geo/src/circle.js +0 -72
  1577. package/.output/server/node_modules/d3-geo/src/clip/antimeridian.js +0 -92
  1578. package/.output/server/node_modules/d3-geo/src/clip/buffer.js +0 -24
  1579. package/.output/server/node_modules/d3-geo/src/clip/circle.js +0 -177
  1580. package/.output/server/node_modules/d3-geo/src/clip/extent.js +0 -20
  1581. package/.output/server/node_modules/d3-geo/src/clip/index.js +0 -131
  1582. package/.output/server/node_modules/d3-geo/src/clip/line.js +0 -59
  1583. package/.output/server/node_modules/d3-geo/src/clip/rectangle.js +0 -168
  1584. package/.output/server/node_modules/d3-geo/src/clip/rejoin.js +0 -103
  1585. package/.output/server/node_modules/d3-geo/src/compose.js +0 -12
  1586. package/.output/server/node_modules/d3-geo/src/constant.js +0 -5
  1587. package/.output/server/node_modules/d3-geo/src/contains.js +0 -97
  1588. package/.output/server/node_modules/d3-geo/src/distance.js +0 -10
  1589. package/.output/server/node_modules/d3-geo/src/graticule.js +0 -105
  1590. package/.output/server/node_modules/d3-geo/src/identity.js +0 -1
  1591. package/.output/server/node_modules/d3-geo/src/index.js +0 -34
  1592. package/.output/server/node_modules/d3-geo/src/interpolate.js +0 -36
  1593. package/.output/server/node_modules/d3-geo/src/length.js +0 -53
  1594. package/.output/server/node_modules/d3-geo/src/math.js +0 -36
  1595. package/.output/server/node_modules/d3-geo/src/noop.js +0 -1
  1596. package/.output/server/node_modules/d3-geo/src/path/area.js +0 -50
  1597. package/.output/server/node_modules/d3-geo/src/path/bounds.js +0 -28
  1598. package/.output/server/node_modules/d3-geo/src/path/centroid.js +0 -100
  1599. package/.output/server/node_modules/d3-geo/src/path/context.js +0 -45
  1600. package/.output/server/node_modules/d3-geo/src/path/index.js +0 -76
  1601. package/.output/server/node_modules/d3-geo/src/path/measure.js +0 -45
  1602. package/.output/server/node_modules/d3-geo/src/path/string.js +0 -86
  1603. package/.output/server/node_modules/d3-geo/src/pointEqual.js +0 -5
  1604. package/.output/server/node_modules/d3-geo/src/polygonContains.js +0 -74
  1605. package/.output/server/node_modules/d3-geo/src/projection/albers.js +0 -10
  1606. package/.output/server/node_modules/d3-geo/src/projection/albersUsa.js +0 -111
  1607. package/.output/server/node_modules/d3-geo/src/projection/azimuthal.js +0 -27
  1608. package/.output/server/node_modules/d3-geo/src/projection/azimuthalEqualArea.js +0 -17
  1609. package/.output/server/node_modules/d3-geo/src/projection/azimuthalEquidistant.js +0 -17
  1610. package/.output/server/node_modules/d3-geo/src/projection/conic.js +0 -15
  1611. package/.output/server/node_modules/d3-geo/src/projection/conicConformal.js +0 -38
  1612. package/.output/server/node_modules/d3-geo/src/projection/conicEqualArea.js +0 -33
  1613. package/.output/server/node_modules/d3-geo/src/projection/conicEquidistant.js +0 -32
  1614. package/.output/server/node_modules/d3-geo/src/projection/cylindricalEqualArea.js +0 -15
  1615. package/.output/server/node_modules/d3-geo/src/projection/equalEarth.js +0 -36
  1616. package/.output/server/node_modules/d3-geo/src/projection/equirectangular.js +0 -12
  1617. package/.output/server/node_modules/d3-geo/src/projection/fit.js +0 -47
  1618. package/.output/server/node_modules/d3-geo/src/projection/gnomonic.js +0 -16
  1619. package/.output/server/node_modules/d3-geo/src/projection/identity.js +0 -85
  1620. package/.output/server/node_modules/d3-geo/src/projection/index.js +0 -177
  1621. package/.output/server/node_modules/d3-geo/src/projection/mercator.js +0 -52
  1622. package/.output/server/node_modules/d3-geo/src/projection/naturalEarth1.js +0 -28
  1623. package/.output/server/node_modules/d3-geo/src/projection/orthographic.js +0 -15
  1624. package/.output/server/node_modules/d3-geo/src/projection/resample.js +0 -102
  1625. package/.output/server/node_modules/d3-geo/src/projection/stereographic.js +0 -18
  1626. package/.output/server/node_modules/d3-geo/src/projection/transverseMercator.js +0 -27
  1627. package/.output/server/node_modules/d3-geo/src/rotation.js +0 -79
  1628. package/.output/server/node_modules/d3-geo/src/stream.js +0 -69
  1629. package/.output/server/node_modules/d3-geo/src/transform.js +0 -26
  1630. package/.output/server/node_modules/d3-geo-projection/package.json +0 -79
  1631. package/.output/server/node_modules/d3-geo-projection/src/airy.js +0 -49
  1632. package/.output/server/node_modules/d3-geo-projection/src/aitoff.js +0 -45
  1633. package/.output/server/node_modules/d3-geo-projection/src/armadillo.js +0 -83
  1634. package/.output/server/node_modules/d3-geo-projection/src/august.js +0 -39
  1635. package/.output/server/node_modules/d3-geo-projection/src/baker.js +0 -27
  1636. package/.output/server/node_modules/d3-geo-projection/src/berghaus.js +0 -77
  1637. package/.output/server/node_modules/d3-geo-projection/src/bertin.js +0 -44
  1638. package/.output/server/node_modules/d3-geo-projection/src/boggs.js +0 -26
  1639. package/.output/server/node_modules/d3-geo-projection/src/bonne.js +0 -29
  1640. package/.output/server/node_modules/d3-geo-projection/src/bottomley.js +0 -34
  1641. package/.output/server/node_modules/d3-geo-projection/src/bromley.js +0 -10
  1642. package/.output/server/node_modules/d3-geo-projection/src/chamberlin.js +0 -120
  1643. package/.output/server/node_modules/d3-geo-projection/src/collignon.js +0 -18
  1644. package/.output/server/node_modules/d3-geo-projection/src/craig.js +0 -26
  1645. package/.output/server/node_modules/d3-geo-projection/src/craster.js +0 -18
  1646. package/.output/server/node_modules/d3-geo-projection/src/cylindricalEqualArea.js +0 -22
  1647. package/.output/server/node_modules/d3-geo-projection/src/cylindricalStereographic.js +0 -21
  1648. package/.output/server/node_modules/d3-geo-projection/src/eckert1.js +0 -24
  1649. package/.output/server/node_modules/d3-geo-projection/src/eckert2.js +0 -23
  1650. package/.output/server/node_modules/d3-geo-projection/src/eckert3.js +0 -23
  1651. package/.output/server/node_modules/d3-geo-projection/src/eckert4.js +0 -30
  1652. package/.output/server/node_modules/d3-geo-projection/src/eckert5.js +0 -23
  1653. package/.output/server/node_modules/d3-geo-projection/src/eckert6.js +0 -28
  1654. package/.output/server/node_modules/d3-geo-projection/src/eisenlohr.js +0 -70
  1655. package/.output/server/node_modules/d3-geo-projection/src/elliptic.js +0 -118
  1656. package/.output/server/node_modules/d3-geo-projection/src/fahey.js +0 -19
  1657. package/.output/server/node_modules/d3-geo-projection/src/foucaut.js +0 -17
  1658. package/.output/server/node_modules/d3-geo-projection/src/foucautSinusoidal.js +0 -49
  1659. package/.output/server/node_modules/d3-geo-projection/src/gilbert.js +0 -64
  1660. package/.output/server/node_modules/d3-geo-projection/src/gingery.js +0 -146
  1661. package/.output/server/node_modules/d3-geo-projection/src/ginzburg4.js +0 -9
  1662. package/.output/server/node_modules/d3-geo-projection/src/ginzburg5.js +0 -9
  1663. package/.output/server/node_modules/d3-geo-projection/src/ginzburg6.js +0 -10
  1664. package/.output/server/node_modules/d3-geo-projection/src/ginzburg8.js +0 -33
  1665. package/.output/server/node_modules/d3-geo-projection/src/ginzburg9.js +0 -9
  1666. package/.output/server/node_modules/d3-geo-projection/src/ginzburgPolyconic.js +0 -56
  1667. package/.output/server/node_modules/d3-geo-projection/src/gringorten.js +0 -147
  1668. package/.output/server/node_modules/d3-geo-projection/src/guyou.js +0 -53
  1669. package/.output/server/node_modules/d3-geo-projection/src/hammer.js +0 -51
  1670. package/.output/server/node_modules/d3-geo-projection/src/hammerRetroazimuthal.js +0 -109
  1671. package/.output/server/node_modules/d3-geo-projection/src/healpix.js +0 -99
  1672. package/.output/server/node_modules/d3-geo-projection/src/hill.js +0 -66
  1673. package/.output/server/node_modules/d3-geo-projection/src/homolosine.js +0 -22
  1674. package/.output/server/node_modules/d3-geo-projection/src/hufnagel.js +0 -91
  1675. package/.output/server/node_modules/d3-geo-projection/src/hyperelliptical.js +0 -73
  1676. package/.output/server/node_modules/d3-geo-projection/src/index.js +0 -95
  1677. package/.output/server/node_modules/d3-geo-projection/src/integrate.js +0 -91
  1678. package/.output/server/node_modules/d3-geo-projection/src/interrupted/boggs.js +0 -17
  1679. package/.output/server/node_modules/d3-geo-projection/src/interrupted/homolosine.js +0 -17
  1680. package/.output/server/node_modules/d3-geo-projection/src/interrupted/index.js +0 -147
  1681. package/.output/server/node_modules/d3-geo-projection/src/interrupted/mollweide.js +0 -17
  1682. package/.output/server/node_modules/d3-geo-projection/src/interrupted/mollweideHemispheres.js +0 -16
  1683. package/.output/server/node_modules/d3-geo-projection/src/interrupted/quarticAuthalic.js +0 -16
  1684. package/.output/server/node_modules/d3-geo-projection/src/interrupted/sinuMollweide.js +0 -19
  1685. package/.output/server/node_modules/d3-geo-projection/src/interrupted/sinusoidal.js +0 -18
  1686. package/.output/server/node_modules/d3-geo-projection/src/kavrayskiy7.js +0 -15
  1687. package/.output/server/node_modules/d3-geo-projection/src/lagrange.js +0 -47
  1688. package/.output/server/node_modules/d3-geo-projection/src/larrivee.js +0 -46
  1689. package/.output/server/node_modules/d3-geo-projection/src/laskowski.js +0 -37
  1690. package/.output/server/node_modules/d3-geo-projection/src/littrow.js +0 -29
  1691. package/.output/server/node_modules/d3-geo-projection/src/loximuthal.js +0 -34
  1692. package/.output/server/node_modules/d3-geo-projection/src/math.js +0 -64
  1693. package/.output/server/node_modules/d3-geo-projection/src/miller.js +0 -15
  1694. package/.output/server/node_modules/d3-geo-projection/src/modifiedStereographic.js +0 -122
  1695. package/.output/server/node_modules/d3-geo-projection/src/mollweide.js +0 -29
  1696. package/.output/server/node_modules/d3-geo-projection/src/mtFlatPolarParabolic.js +0 -26
  1697. package/.output/server/node_modules/d3-geo-projection/src/mtFlatPolarQuartic.js +0 -29
  1698. package/.output/server/node_modules/d3-geo-projection/src/mtFlatPolarSinusoidal.js +0 -31
  1699. package/.output/server/node_modules/d3-geo-projection/src/naturalEarth2.js +0 -29
  1700. package/.output/server/node_modules/d3-geo-projection/src/nellHammer.js +0 -26
  1701. package/.output/server/node_modules/d3-geo-projection/src/newton.js +0 -64
  1702. package/.output/server/node_modules/d3-geo-projection/src/nicolosi.js +0 -64
  1703. package/.output/server/node_modules/d3-geo-projection/src/noop.js +0 -1
  1704. package/.output/server/node_modules/d3-geo-projection/src/parallel1.js +0 -14
  1705. package/.output/server/node_modules/d3-geo-projection/src/patterson.js +0 -41
  1706. package/.output/server/node_modules/d3-geo-projection/src/polyconic.js +0 -35
  1707. package/.output/server/node_modules/d3-geo-projection/src/polyhedral/butterfly.js +0 -31
  1708. package/.output/server/node_modules/d3-geo-projection/src/polyhedral/collignon.js +0 -43
  1709. package/.output/server/node_modules/d3-geo-projection/src/polyhedral/index.js +0 -173
  1710. package/.output/server/node_modules/d3-geo-projection/src/polyhedral/matrix.js +0 -64
  1711. package/.output/server/node_modules/d3-geo-projection/src/polyhedral/octahedron.js +0 -21
  1712. package/.output/server/node_modules/d3-geo-projection/src/polyhedral/waterman.js +0 -123
  1713. package/.output/server/node_modules/d3-geo-projection/src/project/clockwise.js +0 -8
  1714. package/.output/server/node_modules/d3-geo-projection/src/project/contains.js +0 -11
  1715. package/.output/server/node_modules/d3-geo-projection/src/project/index.js +0 -136
  1716. package/.output/server/node_modules/d3-geo-projection/src/quantize.js +0 -70
  1717. package/.output/server/node_modules/d3-geo-projection/src/quincuncial/gringorten.js +0 -7
  1718. package/.output/server/node_modules/d3-geo-projection/src/quincuncial/index.js +0 -40
  1719. package/.output/server/node_modules/d3-geo-projection/src/quincuncial/peirce.js +0 -7
  1720. package/.output/server/node_modules/d3-geo-projection/src/rectangularPolyconic.js +0 -44
  1721. package/.output/server/node_modules/d3-geo-projection/src/robinson.js +0 -88
  1722. package/.output/server/node_modules/d3-geo-projection/src/satellite.js +0 -71
  1723. package/.output/server/node_modules/d3-geo-projection/src/sinuMollweide.js +0 -26
  1724. package/.output/server/node_modules/d3-geo-projection/src/sinusoidal.js +0 -15
  1725. package/.output/server/node_modules/d3-geo-projection/src/square.js +0 -24
  1726. package/.output/server/node_modules/d3-geo-projection/src/stitch.js +0 -215
  1727. package/.output/server/node_modules/d3-geo-projection/src/times.js +0 -25
  1728. package/.output/server/node_modules/d3-geo-projection/src/twoPoint.js +0 -26
  1729. package/.output/server/node_modules/d3-geo-projection/src/twoPointAzimuthal.js +0 -29
  1730. package/.output/server/node_modules/d3-geo-projection/src/twoPointEquidistant.js +0 -47
  1731. package/.output/server/node_modules/d3-geo-projection/src/vanDerGrinten.js +0 -47
  1732. package/.output/server/node_modules/d3-geo-projection/src/vanDerGrinten2.js +0 -34
  1733. package/.output/server/node_modules/d3-geo-projection/src/vanDerGrinten3.js +0 -30
  1734. package/.output/server/node_modules/d3-geo-projection/src/vanDerGrinten4.js +0 -63
  1735. package/.output/server/node_modules/d3-geo-projection/src/wagner.js +0 -98
  1736. package/.output/server/node_modules/d3-geo-projection/src/wagner4.js +0 -13
  1737. package/.output/server/node_modules/d3-geo-projection/src/wagner6.js +0 -15
  1738. package/.output/server/node_modules/d3-geo-projection/src/wiechel.js +0 -34
  1739. package/.output/server/node_modules/d3-geo-projection/src/winkel3.js +0 -45
  1740. package/.output/server/node_modules/d3-hierarchy/package.json +0 -56
  1741. package/.output/server/node_modules/d3-hierarchy/src/accessors.js +0 -8
  1742. package/.output/server/node_modules/d3-hierarchy/src/array.js +0 -20
  1743. package/.output/server/node_modules/d3-hierarchy/src/cluster.js +0 -84
  1744. package/.output/server/node_modules/d3-hierarchy/src/constant.js +0 -9
  1745. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/ancestors.js +0 -7
  1746. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/count.js +0 -12
  1747. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/descendants.js +0 -3
  1748. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/each.js +0 -7
  1749. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js +0 -15
  1750. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js +0 -12
  1751. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/find.js +0 -8
  1752. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/index.js +0 -91
  1753. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/iterator.js +0 -14
  1754. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/leaves.js +0 -9
  1755. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/links.js +0 -9
  1756. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/path.js +0 -30
  1757. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/sort.js +0 -7
  1758. package/.output/server/node_modules/d3-hierarchy/src/hierarchy/sum.js +0 -9
  1759. package/.output/server/node_modules/d3-hierarchy/src/index.js +0 -15
  1760. package/.output/server/node_modules/d3-hierarchy/src/lcg.js +0 -9
  1761. package/.output/server/node_modules/d3-hierarchy/src/pack/enclose.js +0 -123
  1762. package/.output/server/node_modules/d3-hierarchy/src/pack/index.js +0 -81
  1763. package/.output/server/node_modules/d3-hierarchy/src/pack/siblings.js +0 -120
  1764. package/.output/server/node_modules/d3-hierarchy/src/partition.js +0 -52
  1765. package/.output/server/node_modules/d3-hierarchy/src/stratify.js +0 -145
  1766. package/.output/server/node_modules/d3-hierarchy/src/tree.js +0 -237
  1767. package/.output/server/node_modules/d3-hierarchy/src/treemap/binary.js +0 -46
  1768. package/.output/server/node_modules/d3-hierarchy/src/treemap/dice.js +0 -12
  1769. package/.output/server/node_modules/d3-hierarchy/src/treemap/index.js +0 -94
  1770. package/.output/server/node_modules/d3-hierarchy/src/treemap/resquarify.js +0 -36
  1771. package/.output/server/node_modules/d3-hierarchy/src/treemap/round.js +0 -6
  1772. package/.output/server/node_modules/d3-hierarchy/src/treemap/slice.js +0 -12
  1773. package/.output/server/node_modules/d3-hierarchy/src/treemap/sliceDice.js +0 -6
  1774. package/.output/server/node_modules/d3-hierarchy/src/treemap/squarify.js +0 -66
  1775. package/.output/server/node_modules/d3-interpolate/package.json +0 -53
  1776. package/.output/server/node_modules/d3-interpolate/src/array.js +0 -22
  1777. package/.output/server/node_modules/d3-interpolate/src/basis.js +0 -19
  1778. package/.output/server/node_modules/d3-interpolate/src/basisClosed.js +0 -13
  1779. package/.output/server/node_modules/d3-interpolate/src/color.js +0 -29
  1780. package/.output/server/node_modules/d3-interpolate/src/constant.js +0 -1
  1781. package/.output/server/node_modules/d3-interpolate/src/cubehelix.js +0 -29
  1782. package/.output/server/node_modules/d3-interpolate/src/date.js +0 -6
  1783. package/.output/server/node_modules/d3-interpolate/src/discrete.js +0 -6
  1784. package/.output/server/node_modules/d3-interpolate/src/hcl.js +0 -21
  1785. package/.output/server/node_modules/d3-interpolate/src/hsl.js +0 -21
  1786. package/.output/server/node_modules/d3-interpolate/src/hue.js +0 -9
  1787. package/.output/server/node_modules/d3-interpolate/src/index.js +0 -21
  1788. package/.output/server/node_modules/d3-interpolate/src/lab.js +0 -16
  1789. package/.output/server/node_modules/d3-interpolate/src/number.js +0 -5
  1790. package/.output/server/node_modules/d3-interpolate/src/numberArray.js +0 -14
  1791. package/.output/server/node_modules/d3-interpolate/src/object.js +0 -23
  1792. package/.output/server/node_modules/d3-interpolate/src/piecewise.js +0 -11
  1793. package/.output/server/node_modules/d3-interpolate/src/quantize.js +0 -5
  1794. package/.output/server/node_modules/d3-interpolate/src/rgb.js +0 -55
  1795. package/.output/server/node_modules/d3-interpolate/src/round.js +0 -5
  1796. package/.output/server/node_modules/d3-interpolate/src/string.js +0 -64
  1797. package/.output/server/node_modules/d3-interpolate/src/transform/decompose.js +0 -26
  1798. package/.output/server/node_modules/d3-interpolate/src/transform/index.js +0 -63
  1799. package/.output/server/node_modules/d3-interpolate/src/transform/parse.js +0 -18
  1800. package/.output/server/node_modules/d3-interpolate/src/value.js +0 -22
  1801. package/.output/server/node_modules/d3-interpolate/src/zoom.js +0 -71
  1802. package/.output/server/node_modules/d3-interpolate-path/build/d3-interpolate-path.js +0 -782
  1803. package/.output/server/node_modules/d3-interpolate-path/package.json +0 -52
  1804. package/.output/server/node_modules/d3-quadtree/package.json +0 -49
  1805. package/.output/server/node_modules/d3-quadtree/src/add.js +0 -84
  1806. package/.output/server/node_modules/d3-quadtree/src/cover.js +0 -43
  1807. package/.output/server/node_modules/d3-quadtree/src/data.js +0 -7
  1808. package/.output/server/node_modules/d3-quadtree/src/extent.js +0 -5
  1809. package/.output/server/node_modules/d3-quadtree/src/find.js +0 -70
  1810. package/.output/server/node_modules/d3-quadtree/src/index.js +0 -1
  1811. package/.output/server/node_modules/d3-quadtree/src/quad.js +0 -7
  1812. package/.output/server/node_modules/d3-quadtree/src/quadtree.js +0 -73
  1813. package/.output/server/node_modules/d3-quadtree/src/remove.js +0 -62
  1814. package/.output/server/node_modules/d3-quadtree/src/root.js +0 -3
  1815. package/.output/server/node_modules/d3-quadtree/src/size.js +0 -7
  1816. package/.output/server/node_modules/d3-quadtree/src/visit.js +0 -16
  1817. package/.output/server/node_modules/d3-quadtree/src/visitAfter.js +0 -21
  1818. package/.output/server/node_modules/d3-quadtree/src/x.js +0 -7
  1819. package/.output/server/node_modules/d3-quadtree/src/y.js +0 -7
  1820. package/.output/server/node_modules/d3-sankey/dist/d3-sankey.js +0 -425
  1821. package/.output/server/node_modules/d3-sankey/package.json +0 -43
  1822. package/.output/server/node_modules/d3-scale/package.json +0 -57
  1823. package/.output/server/node_modules/d3-scale/src/band.js +0 -101
  1824. package/.output/server/node_modules/d3-scale/src/constant.js +0 -5
  1825. package/.output/server/node_modules/d3-scale/src/continuous.js +0 -125
  1826. package/.output/server/node_modules/d3-scale/src/diverging.js +0 -104
  1827. package/.output/server/node_modules/d3-scale/src/identity.js +0 -28
  1828. package/.output/server/node_modules/d3-scale/src/index.js +0 -78
  1829. package/.output/server/node_modules/d3-scale/src/init.js +0 -26
  1830. package/.output/server/node_modules/d3-scale/src/linear.js +0 -70
  1831. package/.output/server/node_modules/d3-scale/src/log.js +0 -140
  1832. package/.output/server/node_modules/d3-scale/src/nice.js +0 -18
  1833. package/.output/server/node_modules/d3-scale/src/number.js +0 -3
  1834. package/.output/server/node_modules/d3-scale/src/ordinal.js +0 -46
  1835. package/.output/server/node_modules/d3-scale/src/pow.js +0 -50
  1836. package/.output/server/node_modules/d3-scale/src/quantile.js +0 -57
  1837. package/.output/server/node_modules/d3-scale/src/quantize.js +0 -56
  1838. package/.output/server/node_modules/d3-scale/src/radial.js +0 -63
  1839. package/.output/server/node_modules/d3-scale/src/sequential.js +0 -107
  1840. package/.output/server/node_modules/d3-scale/src/sequentialQuantile.js +0 -38
  1841. package/.output/server/node_modules/d3-scale/src/symlog.js +0 -35
  1842. package/.output/server/node_modules/d3-scale/src/threshold.js +0 -39
  1843. package/.output/server/node_modules/d3-scale/src/tickFormat.js +0 -29
  1844. package/.output/server/node_modules/d3-scale/src/time.js +0 -71
  1845. package/.output/server/node_modules/d3-scale/src/utcTime.js +0 -8
  1846. package/.output/server/node_modules/d3-selection/package.json +0 -51
  1847. package/.output/server/node_modules/d3-selection/src/array.js +0 -9
  1848. package/.output/server/node_modules/d3-selection/src/constant.js +0 -5
  1849. package/.output/server/node_modules/d3-selection/src/create.js +0 -6
  1850. package/.output/server/node_modules/d3-selection/src/creator.js +0 -25
  1851. package/.output/server/node_modules/d3-selection/src/index.js +0 -15
  1852. package/.output/server/node_modules/d3-selection/src/local.js +0 -27
  1853. package/.output/server/node_modules/d3-selection/src/matcher.js +0 -12
  1854. package/.output/server/node_modules/d3-selection/src/namespace.js +0 -7
  1855. package/.output/server/node_modules/d3-selection/src/namespaces.js +0 -9
  1856. package/.output/server/node_modules/d3-selection/src/pointer.js +0 -20
  1857. package/.output/server/node_modules/d3-selection/src/pointers.js +0 -11
  1858. package/.output/server/node_modules/d3-selection/src/select.js +0 -7
  1859. package/.output/server/node_modules/d3-selection/src/selectAll.js +0 -8
  1860. package/.output/server/node_modules/d3-selection/src/selection/append.js +0 -8
  1861. package/.output/server/node_modules/d3-selection/src/selection/attr.js +0 -57
  1862. package/.output/server/node_modules/d3-selection/src/selection/call.js +0 -6
  1863. package/.output/server/node_modules/d3-selection/src/selection/classed.js +0 -75
  1864. package/.output/server/node_modules/d3-selection/src/selection/clone.js +0 -13
  1865. package/.output/server/node_modules/d3-selection/src/selection/data.js +0 -128
  1866. package/.output/server/node_modules/d3-selection/src/selection/datum.js +0 -5
  1867. package/.output/server/node_modules/d3-selection/src/selection/dispatch.js +0 -34
  1868. package/.output/server/node_modules/d3-selection/src/selection/each.js +0 -10
  1869. package/.output/server/node_modules/d3-selection/src/selection/empty.js +0 -3
  1870. package/.output/server/node_modules/d3-selection/src/selection/enter.js +0 -22
  1871. package/.output/server/node_modules/d3-selection/src/selection/exit.js +0 -6
  1872. package/.output/server/node_modules/d3-selection/src/selection/filter.js +0 -16
  1873. package/.output/server/node_modules/d3-selection/src/selection/html.js +0 -25
  1874. package/.output/server/node_modules/d3-selection/src/selection/index.js +0 -90
  1875. package/.output/server/node_modules/d3-selection/src/selection/insert.js +0 -14
  1876. package/.output/server/node_modules/d3-selection/src/selection/iterator.js +0 -7
  1877. package/.output/server/node_modules/d3-selection/src/selection/join.js +0 -15
  1878. package/.output/server/node_modules/d3-selection/src/selection/lower.js +0 -7
  1879. package/.output/server/node_modules/d3-selection/src/selection/merge.js +0 -19
  1880. package/.output/server/node_modules/d3-selection/src/selection/node.js +0 -11
  1881. package/.output/server/node_modules/d3-selection/src/selection/nodes.js +0 -3
  1882. package/.output/server/node_modules/d3-selection/src/selection/on.js +0 -67
  1883. package/.output/server/node_modules/d3-selection/src/selection/order.js +0 -13
  1884. package/.output/server/node_modules/d3-selection/src/selection/property.js +0 -28
  1885. package/.output/server/node_modules/d3-selection/src/selection/raise.js +0 -7
  1886. package/.output/server/node_modules/d3-selection/src/selection/remove.js +0 -8
  1887. package/.output/server/node_modules/d3-selection/src/selection/select.js +0 -17
  1888. package/.output/server/node_modules/d3-selection/src/selection/selectAll.js +0 -25
  1889. package/.output/server/node_modules/d3-selection/src/selection/selectChild.js +0 -18
  1890. package/.output/server/node_modules/d3-selection/src/selection/selectChildren.js +0 -18
  1891. package/.output/server/node_modules/d3-selection/src/selection/size.js +0 -5
  1892. package/.output/server/node_modules/d3-selection/src/selection/sort.js +0 -24
  1893. package/.output/server/node_modules/d3-selection/src/selection/sparse.js +0 -3
  1894. package/.output/server/node_modules/d3-selection/src/selection/style.js +0 -35
  1895. package/.output/server/node_modules/d3-selection/src/selection/text.js +0 -25
  1896. package/.output/server/node_modules/d3-selection/src/selector.js +0 -7
  1897. package/.output/server/node_modules/d3-selection/src/selectorAll.js +0 -9
  1898. package/.output/server/node_modules/d3-selection/src/sourceEvent.js +0 -5
  1899. package/.output/server/node_modules/d3-selection/src/window.js +0 -5
  1900. package/.output/server/node_modules/d3-time/package.json +0 -53
  1901. package/.output/server/node_modules/d3-time/src/day.js +0 -35
  1902. package/.output/server/node_modules/d3-time/src/duration.js +0 -7
  1903. package/.output/server/node_modules/d3-time/src/hour.js +0 -26
  1904. package/.output/server/node_modules/d3-time/src/index.js +0 -96
  1905. package/.output/server/node_modules/d3-time/src/interval.js +0 -69
  1906. package/.output/server/node_modules/d3-time/src/millisecond.js +0 -25
  1907. package/.output/server/node_modules/d3-time/src/minute.js +0 -26
  1908. package/.output/server/node_modules/d3-time/src/month.js +0 -27
  1909. package/.output/server/node_modules/d3-time/src/second.js +0 -14
  1910. package/.output/server/node_modules/d3-time/src/ticks.js +0 -58
  1911. package/.output/server/node_modules/d3-time/src/week.js +0 -56
  1912. package/.output/server/node_modules/d3-time/src/year.js +0 -49
  1913. package/.output/server/node_modules/d3-time-format/package.json +0 -60
  1914. package/.output/server/node_modules/d3-time-format/src/defaultLocale.js +0 -27
  1915. package/.output/server/node_modules/d3-time-format/src/index.js +0 -4
  1916. package/.output/server/node_modules/d3-time-format/src/isoFormat.js +0 -13
  1917. package/.output/server/node_modules/d3-time-format/src/isoParse.js +0 -13
  1918. package/.output/server/node_modules/d3-time-format/src/locale.js +0 -697
  1919. package/.output/server/node_modules/d3-timer/package.json +0 -53
  1920. package/.output/server/node_modules/d3-timer/src/index.js +0 -13
  1921. package/.output/server/node_modules/d3-timer/src/interval.js +0 -17
  1922. package/.output/server/node_modules/d3-timer/src/timeout.js +0 -11
  1923. package/.output/server/node_modules/d3-timer/src/timer.js +0 -110
  1924. package/.output/server/node_modules/d3-transition/package.json +0 -65
  1925. package/.output/server/node_modules/d3-transition/src/active.js +0 -21
  1926. package/.output/server/node_modules/d3-transition/src/index.js +0 -4
  1927. package/.output/server/node_modules/d3-transition/src/interrupt.js +0 -24
  1928. package/.output/server/node_modules/d3-transition/src/selection/index.js +0 -6
  1929. package/.output/server/node_modules/d3-transition/src/selection/interrupt.js +0 -7
  1930. package/.output/server/node_modules/d3-transition/src/selection/transition.js +0 -42
  1931. package/.output/server/node_modules/d3-transition/src/transition/attr.js +0 -78
  1932. package/.output/server/node_modules/d3-transition/src/transition/attrTween.js +0 -44
  1933. package/.output/server/node_modules/d3-transition/src/transition/delay.js +0 -23
  1934. package/.output/server/node_modules/d3-transition/src/transition/duration.js +0 -23
  1935. package/.output/server/node_modules/d3-transition/src/transition/ease.js +0 -16
  1936. package/.output/server/node_modules/d3-transition/src/transition/easeVarying.js +0 -14
  1937. package/.output/server/node_modules/d3-transition/src/transition/end.js +0 -29
  1938. package/.output/server/node_modules/d3-transition/src/transition/filter.js +0 -16
  1939. package/.output/server/node_modules/d3-transition/src/transition/index.js +0 -73
  1940. package/.output/server/node_modules/d3-transition/src/transition/interpolate.js +0 -10
  1941. package/.output/server/node_modules/d3-transition/src/transition/merge.js +0 -19
  1942. package/.output/server/node_modules/d3-transition/src/transition/on.js +0 -32
  1943. package/.output/server/node_modules/d3-transition/src/transition/remove.js +0 -11
  1944. package/.output/server/node_modules/d3-transition/src/transition/schedule.js +0 -153
  1945. package/.output/server/node_modules/d3-transition/src/transition/select.js +0 -22
  1946. package/.output/server/node_modules/d3-transition/src/transition/selectAll.js +0 -26
  1947. package/.output/server/node_modules/d3-transition/src/transition/selection.js +0 -7
  1948. package/.output/server/node_modules/d3-transition/src/transition/style.js +0 -80
  1949. package/.output/server/node_modules/d3-transition/src/transition/styleTween.js +0 -24
  1950. package/.output/server/node_modules/d3-transition/src/transition/text.js +0 -20
  1951. package/.output/server/node_modules/d3-transition/src/transition/textTween.js +0 -24
  1952. package/.output/server/node_modules/d3-transition/src/transition/transition.js +0 -24
  1953. package/.output/server/node_modules/d3-transition/src/transition/tween.js +0 -81
  1954. package/.output/server/node_modules/d3-zoom/package.json +0 -57
  1955. package/.output/server/node_modules/d3-zoom/src/constant.js +0 -1
  1956. package/.output/server/node_modules/d3-zoom/src/event.js +0 -14
  1957. package/.output/server/node_modules/d3-zoom/src/index.js +0 -2
  1958. package/.output/server/node_modules/d3-zoom/src/noevent.js +0 -8
  1959. package/.output/server/node_modules/d3-zoom/src/transform.js +0 -51
  1960. package/.output/server/node_modules/d3-zoom/src/zoom.js +0 -447
  1961. package/.output/server/node_modules/elkjs/lib/elk.bundled.js +0 -6545
  1962. package/.output/server/node_modules/elkjs/package.json +0 -54
  1963. package/.output/server/node_modules/internmap/package.json +0 -43
  1964. package/.output/server/node_modules/internmap/src/index.js +0 -61
  1965. package/.output/server/node_modules/leaflet/dist/leaflet-src.js +0 -14062
  1966. package/.output/server/node_modules/leaflet/package.json +0 -109
  1967. package/.output/server/node_modules/lodash-es/_DataView.js +0 -7
  1968. package/.output/server/node_modules/lodash-es/_Hash.js +0 -32
  1969. package/.output/server/node_modules/lodash-es/_LazyWrapper.js +0 -28
  1970. package/.output/server/node_modules/lodash-es/_ListCache.js +0 -32
  1971. package/.output/server/node_modules/lodash-es/_LodashWrapper.js +0 -22
  1972. package/.output/server/node_modules/lodash-es/_Map.js +0 -7
  1973. package/.output/server/node_modules/lodash-es/_MapCache.js +0 -32
  1974. package/.output/server/node_modules/lodash-es/_Promise.js +0 -7
  1975. package/.output/server/node_modules/lodash-es/_Set.js +0 -7
  1976. package/.output/server/node_modules/lodash-es/_SetCache.js +0 -27
  1977. package/.output/server/node_modules/lodash-es/_Stack.js +0 -27
  1978. package/.output/server/node_modules/lodash-es/_Symbol.js +0 -6
  1979. package/.output/server/node_modules/lodash-es/_Uint8Array.js +0 -6
  1980. package/.output/server/node_modules/lodash-es/_WeakMap.js +0 -7
  1981. package/.output/server/node_modules/lodash-es/_apply.js +0 -21
  1982. package/.output/server/node_modules/lodash-es/_arrayEach.js +0 -22
  1983. package/.output/server/node_modules/lodash-es/_arrayFilter.js +0 -25
  1984. package/.output/server/node_modules/lodash-es/_arrayIncludes.js +0 -17
  1985. package/.output/server/node_modules/lodash-es/_arrayIncludesWith.js +0 -22
  1986. package/.output/server/node_modules/lodash-es/_arrayLikeKeys.js +0 -49
  1987. package/.output/server/node_modules/lodash-es/_arrayMap.js +0 -21
  1988. package/.output/server/node_modules/lodash-es/_arrayPush.js +0 -20
  1989. package/.output/server/node_modules/lodash-es/_arrayReduce.js +0 -26
  1990. package/.output/server/node_modules/lodash-es/_arraySome.js +0 -23
  1991. package/.output/server/node_modules/lodash-es/_asciiSize.js +0 -12
  1992. package/.output/server/node_modules/lodash-es/_assignMergeValue.js +0 -20
  1993. package/.output/server/node_modules/lodash-es/_assignValue.js +0 -28
  1994. package/.output/server/node_modules/lodash-es/_assocIndexOf.js +0 -21
  1995. package/.output/server/node_modules/lodash-es/_baseAssign.js +0 -17
  1996. package/.output/server/node_modules/lodash-es/_baseAssignIn.js +0 -17
  1997. package/.output/server/node_modules/lodash-es/_baseAssignValue.js +0 -25
  1998. package/.output/server/node_modules/lodash-es/_baseClone.js +0 -166
  1999. package/.output/server/node_modules/lodash-es/_baseCreate.js +0 -30
  2000. package/.output/server/node_modules/lodash-es/_baseEach.js +0 -14
  2001. package/.output/server/node_modules/lodash-es/_baseExtremum.js +0 -32
  2002. package/.output/server/node_modules/lodash-es/_baseFilter.js +0 -21
  2003. package/.output/server/node_modules/lodash-es/_baseFindIndex.js +0 -24
  2004. package/.output/server/node_modules/lodash-es/_baseFlatten.js +0 -38
  2005. package/.output/server/node_modules/lodash-es/_baseFor.js +0 -16
  2006. package/.output/server/node_modules/lodash-es/_baseForOwn.js +0 -16
  2007. package/.output/server/node_modules/lodash-es/_baseGet.js +0 -24
  2008. package/.output/server/node_modules/lodash-es/_baseGetAllKeys.js +0 -20
  2009. package/.output/server/node_modules/lodash-es/_baseGetTag.js +0 -28
  2010. package/.output/server/node_modules/lodash-es/_baseGt.js +0 -14
  2011. package/.output/server/node_modules/lodash-es/_baseHas.js +0 -19
  2012. package/.output/server/node_modules/lodash-es/_baseHasIn.js +0 -13
  2013. package/.output/server/node_modules/lodash-es/_baseIndexOf.js +0 -20
  2014. package/.output/server/node_modules/lodash-es/_baseIsArguments.js +0 -18
  2015. package/.output/server/node_modules/lodash-es/_baseIsEqual.js +0 -28
  2016. package/.output/server/node_modules/lodash-es/_baseIsEqualDeep.js +0 -83
  2017. package/.output/server/node_modules/lodash-es/_baseIsMap.js +0 -18
  2018. package/.output/server/node_modules/lodash-es/_baseIsMatch.js +0 -62
  2019. package/.output/server/node_modules/lodash-es/_baseIsNaN.js +0 -12
  2020. package/.output/server/node_modules/lodash-es/_baseIsNative.js +0 -47
  2021. package/.output/server/node_modules/lodash-es/_baseIsSet.js +0 -18
  2022. package/.output/server/node_modules/lodash-es/_baseIsTypedArray.js +0 -60
  2023. package/.output/server/node_modules/lodash-es/_baseIteratee.js +0 -31
  2024. package/.output/server/node_modules/lodash-es/_baseKeys.js +0 -30
  2025. package/.output/server/node_modules/lodash-es/_baseKeysIn.js +0 -33
  2026. package/.output/server/node_modules/lodash-es/_baseLodash.js +0 -10
  2027. package/.output/server/node_modules/lodash-es/_baseLt.js +0 -14
  2028. package/.output/server/node_modules/lodash-es/_baseMap.js +0 -22
  2029. package/.output/server/node_modules/lodash-es/_baseMatches.js +0 -22
  2030. package/.output/server/node_modules/lodash-es/_baseMatchesProperty.js +0 -33
  2031. package/.output/server/node_modules/lodash-es/_baseMerge.js +0 -42
  2032. package/.output/server/node_modules/lodash-es/_baseMergeDeep.js +0 -94
  2033. package/.output/server/node_modules/lodash-es/_baseOrderBy.js +0 -49
  2034. package/.output/server/node_modules/lodash-es/_basePick.js +0 -19
  2035. package/.output/server/node_modules/lodash-es/_basePickBy.js +0 -30
  2036. package/.output/server/node_modules/lodash-es/_baseProperty.js +0 -14
  2037. package/.output/server/node_modules/lodash-es/_basePropertyDeep.js +0 -16
  2038. package/.output/server/node_modules/lodash-es/_baseRange.js +0 -28
  2039. package/.output/server/node_modules/lodash-es/_baseReduce.js +0 -23
  2040. package/.output/server/node_modules/lodash-es/_baseRest.js +0 -17
  2041. package/.output/server/node_modules/lodash-es/_baseSet.js +0 -51
  2042. package/.output/server/node_modules/lodash-es/_baseSetData.js +0 -17
  2043. package/.output/server/node_modules/lodash-es/_baseSetToString.js +0 -22
  2044. package/.output/server/node_modules/lodash-es/_baseSortBy.js +0 -21
  2045. package/.output/server/node_modules/lodash-es/_baseTimes.js +0 -20
  2046. package/.output/server/node_modules/lodash-es/_baseToPairs.js +0 -18
  2047. package/.output/server/node_modules/lodash-es/_baseToString.js +0 -37
  2048. package/.output/server/node_modules/lodash-es/_baseTrim.js +0 -19
  2049. package/.output/server/node_modules/lodash-es/_baseUnary.js +0 -14
  2050. package/.output/server/node_modules/lodash-es/_baseUniq.js +0 -72
  2051. package/.output/server/node_modules/lodash-es/_baseValues.js +0 -19
  2052. package/.output/server/node_modules/lodash-es/_baseZipObject.js +0 -23
  2053. package/.output/server/node_modules/lodash-es/_cacheHas.js +0 -13
  2054. package/.output/server/node_modules/lodash-es/_castFunction.js +0 -14
  2055. package/.output/server/node_modules/lodash-es/_castPath.js +0 -21
  2056. package/.output/server/node_modules/lodash-es/_cloneArrayBuffer.js +0 -16
  2057. package/.output/server/node_modules/lodash-es/_cloneBuffer.js +0 -35
  2058. package/.output/server/node_modules/lodash-es/_cloneDataView.js +0 -16
  2059. package/.output/server/node_modules/lodash-es/_cloneRegExp.js +0 -17
  2060. package/.output/server/node_modules/lodash-es/_cloneSymbol.js +0 -18
  2061. package/.output/server/node_modules/lodash-es/_cloneTypedArray.js +0 -16
  2062. package/.output/server/node_modules/lodash-es/_compareAscending.js +0 -41
  2063. package/.output/server/node_modules/lodash-es/_compareMultiple.js +0 -44
  2064. package/.output/server/node_modules/lodash-es/_composeArgs.js +0 -39
  2065. package/.output/server/node_modules/lodash-es/_composeArgsRight.js +0 -41
  2066. package/.output/server/node_modules/lodash-es/_copyArray.js +0 -20
  2067. package/.output/server/node_modules/lodash-es/_copyObject.js +0 -40
  2068. package/.output/server/node_modules/lodash-es/_copySymbols.js +0 -16
  2069. package/.output/server/node_modules/lodash-es/_copySymbolsIn.js +0 -16
  2070. package/.output/server/node_modules/lodash-es/_coreJsData.js +0 -6
  2071. package/.output/server/node_modules/lodash-es/_countHolders.js +0 -21
  2072. package/.output/server/node_modules/lodash-es/_createAssigner.js +0 -37
  2073. package/.output/server/node_modules/lodash-es/_createBaseEach.js +0 -32
  2074. package/.output/server/node_modules/lodash-es/_createBaseFor.js +0 -25
  2075. package/.output/server/node_modules/lodash-es/_createBind.js +0 -28
  2076. package/.output/server/node_modules/lodash-es/_createCtor.js +0 -37
  2077. package/.output/server/node_modules/lodash-es/_createCurry.js +0 -46
  2078. package/.output/server/node_modules/lodash-es/_createFind.js +0 -25
  2079. package/.output/server/node_modules/lodash-es/_createHybrid.js +0 -92
  2080. package/.output/server/node_modules/lodash-es/_createPartial.js +0 -43
  2081. package/.output/server/node_modules/lodash-es/_createRange.js +0 -30
  2082. package/.output/server/node_modules/lodash-es/_createRecurry.js +0 -56
  2083. package/.output/server/node_modules/lodash-es/_createSet.js +0 -19
  2084. package/.output/server/node_modules/lodash-es/_createToPairs.js +0 -30
  2085. package/.output/server/node_modules/lodash-es/_createWrap.js +0 -106
  2086. package/.output/server/node_modules/lodash-es/_defineProperty.js +0 -11
  2087. package/.output/server/node_modules/lodash-es/_equalArrays.js +0 -84
  2088. package/.output/server/node_modules/lodash-es/_equalByTag.js +0 -112
  2089. package/.output/server/node_modules/lodash-es/_equalObjects.js +0 -90
  2090. package/.output/server/node_modules/lodash-es/_flatRest.js +0 -16
  2091. package/.output/server/node_modules/lodash-es/_freeGlobal.js +0 -4
  2092. package/.output/server/node_modules/lodash-es/_getAllKeys.js +0 -16
  2093. package/.output/server/node_modules/lodash-es/_getAllKeysIn.js +0 -17
  2094. package/.output/server/node_modules/lodash-es/_getData.js +0 -15
  2095. package/.output/server/node_modules/lodash-es/_getFuncName.js +0 -31
  2096. package/.output/server/node_modules/lodash-es/_getHolder.js +0 -13
  2097. package/.output/server/node_modules/lodash-es/_getMapData.js +0 -18
  2098. package/.output/server/node_modules/lodash-es/_getMatchData.js +0 -24
  2099. package/.output/server/node_modules/lodash-es/_getNative.js +0 -17
  2100. package/.output/server/node_modules/lodash-es/_getPrototype.js +0 -6
  2101. package/.output/server/node_modules/lodash-es/_getRawTag.js +0 -46
  2102. package/.output/server/node_modules/lodash-es/_getSymbols.js +0 -30
  2103. package/.output/server/node_modules/lodash-es/_getSymbolsIn.js +0 -25
  2104. package/.output/server/node_modules/lodash-es/_getTag.js +0 -58
  2105. package/.output/server/node_modules/lodash-es/_getValue.js +0 -13
  2106. package/.output/server/node_modules/lodash-es/_getWrapDetails.js +0 -17
  2107. package/.output/server/node_modules/lodash-es/_hasPath.js +0 -39
  2108. package/.output/server/node_modules/lodash-es/_hasUnicode.js +0 -26
  2109. package/.output/server/node_modules/lodash-es/_hashClear.js +0 -15
  2110. package/.output/server/node_modules/lodash-es/_hashDelete.js +0 -17
  2111. package/.output/server/node_modules/lodash-es/_hashGet.js +0 -30
  2112. package/.output/server/node_modules/lodash-es/_hashHas.js +0 -23
  2113. package/.output/server/node_modules/lodash-es/_hashSet.js +0 -23
  2114. package/.output/server/node_modules/lodash-es/_initCloneArray.js +0 -26
  2115. package/.output/server/node_modules/lodash-es/_initCloneByTag.js +0 -77
  2116. package/.output/server/node_modules/lodash-es/_initCloneObject.js +0 -18
  2117. package/.output/server/node_modules/lodash-es/_insertWrapDetails.js +0 -23
  2118. package/.output/server/node_modules/lodash-es/_isFlattenable.js +0 -20
  2119. package/.output/server/node_modules/lodash-es/_isIndex.js +0 -25
  2120. package/.output/server/node_modules/lodash-es/_isIterateeCall.js +0 -30
  2121. package/.output/server/node_modules/lodash-es/_isKey.js +0 -29
  2122. package/.output/server/node_modules/lodash-es/_isKeyable.js +0 -15
  2123. package/.output/server/node_modules/lodash-es/_isLaziable.js +0 -28
  2124. package/.output/server/node_modules/lodash-es/_isMasked.js +0 -20
  2125. package/.output/server/node_modules/lodash-es/_isPrototype.js +0 -18
  2126. package/.output/server/node_modules/lodash-es/_isStrictComparable.js +0 -15
  2127. package/.output/server/node_modules/lodash-es/_listCacheClear.js +0 -13
  2128. package/.output/server/node_modules/lodash-es/_listCacheDelete.js +0 -35
  2129. package/.output/server/node_modules/lodash-es/_listCacheGet.js +0 -19
  2130. package/.output/server/node_modules/lodash-es/_listCacheHas.js +0 -16
  2131. package/.output/server/node_modules/lodash-es/_listCacheSet.js +0 -26
  2132. package/.output/server/node_modules/lodash-es/_mapCacheClear.js +0 -21
  2133. package/.output/server/node_modules/lodash-es/_mapCacheDelete.js +0 -18
  2134. package/.output/server/node_modules/lodash-es/_mapCacheGet.js +0 -16
  2135. package/.output/server/node_modules/lodash-es/_mapCacheHas.js +0 -16
  2136. package/.output/server/node_modules/lodash-es/_mapCacheSet.js +0 -22
  2137. package/.output/server/node_modules/lodash-es/_mapToArray.js +0 -18
  2138. package/.output/server/node_modules/lodash-es/_matchesStrictComparable.js +0 -20
  2139. package/.output/server/node_modules/lodash-es/_memoizeCapped.js +0 -26
  2140. package/.output/server/node_modules/lodash-es/_mergeData.js +0 -90
  2141. package/.output/server/node_modules/lodash-es/_metaMap.js +0 -6
  2142. package/.output/server/node_modules/lodash-es/_nativeCreate.js +0 -6
  2143. package/.output/server/node_modules/lodash-es/_nativeKeys.js +0 -6
  2144. package/.output/server/node_modules/lodash-es/_nativeKeysIn.js +0 -20
  2145. package/.output/server/node_modules/lodash-es/_nodeUtil.js +0 -30
  2146. package/.output/server/node_modules/lodash-es/_objectToString.js +0 -22
  2147. package/.output/server/node_modules/lodash-es/_overArg.js +0 -15
  2148. package/.output/server/node_modules/lodash-es/_overRest.js +0 -36
  2149. package/.output/server/node_modules/lodash-es/_realNames.js +0 -4
  2150. package/.output/server/node_modules/lodash-es/_reorder.js +0 -29
  2151. package/.output/server/node_modules/lodash-es/_replaceHolders.js +0 -29
  2152. package/.output/server/node_modules/lodash-es/_root.js +0 -9
  2153. package/.output/server/node_modules/lodash-es/_safeGet.js +0 -21
  2154. package/.output/server/node_modules/lodash-es/_setCacheAdd.js +0 -19
  2155. package/.output/server/node_modules/lodash-es/_setCacheHas.js +0 -14
  2156. package/.output/server/node_modules/lodash-es/_setData.js +0 -20
  2157. package/.output/server/node_modules/lodash-es/_setToArray.js +0 -18
  2158. package/.output/server/node_modules/lodash-es/_setToPairs.js +0 -18
  2159. package/.output/server/node_modules/lodash-es/_setToString.js +0 -14
  2160. package/.output/server/node_modules/lodash-es/_setWrapToString.js +0 -21
  2161. package/.output/server/node_modules/lodash-es/_shortOut.js +0 -37
  2162. package/.output/server/node_modules/lodash-es/_stackClear.js +0 -15
  2163. package/.output/server/node_modules/lodash-es/_stackDelete.js +0 -18
  2164. package/.output/server/node_modules/lodash-es/_stackGet.js +0 -14
  2165. package/.output/server/node_modules/lodash-es/_stackHas.js +0 -14
  2166. package/.output/server/node_modules/lodash-es/_stackSet.js +0 -34
  2167. package/.output/server/node_modules/lodash-es/_strictIndexOf.js +0 -23
  2168. package/.output/server/node_modules/lodash-es/_stringSize.js +0 -18
  2169. package/.output/server/node_modules/lodash-es/_stringToPath.js +0 -27
  2170. package/.output/server/node_modules/lodash-es/_toKey.js +0 -21
  2171. package/.output/server/node_modules/lodash-es/_toSource.js +0 -26
  2172. package/.output/server/node_modules/lodash-es/_trimmedEndIndex.js +0 -19
  2173. package/.output/server/node_modules/lodash-es/_unicodeSize.js +0 -44
  2174. package/.output/server/node_modules/lodash-es/_updateWrapDetails.js +0 -46
  2175. package/.output/server/node_modules/lodash-es/_wrapperClone.js +0 -23
  2176. package/.output/server/node_modules/lodash-es/bind.js +0 -57
  2177. package/.output/server/node_modules/lodash-es/clone.js +0 -36
  2178. package/.output/server/node_modules/lodash-es/cloneDeep.js +0 -29
  2179. package/.output/server/node_modules/lodash-es/constant.js +0 -26
  2180. package/.output/server/node_modules/lodash-es/defaults.js +0 -64
  2181. package/.output/server/node_modules/lodash-es/each.js +0 -1
  2182. package/.output/server/node_modules/lodash-es/eq.js +0 -37
  2183. package/.output/server/node_modules/lodash-es/filter.js +0 -52
  2184. package/.output/server/node_modules/lodash-es/find.js +0 -42
  2185. package/.output/server/node_modules/lodash-es/findIndex.js +0 -55
  2186. package/.output/server/node_modules/lodash-es/flatten.js +0 -22
  2187. package/.output/server/node_modules/lodash-es/forEach.js +0 -41
  2188. package/.output/server/node_modules/lodash-es/get.js +0 -33
  2189. package/.output/server/node_modules/lodash-es/has.js +0 -35
  2190. package/.output/server/node_modules/lodash-es/hasIn.js +0 -34
  2191. package/.output/server/node_modules/lodash-es/identity.js +0 -21
  2192. package/.output/server/node_modules/lodash-es/isArguments.js +0 -36
  2193. package/.output/server/node_modules/lodash-es/isArray.js +0 -26
  2194. package/.output/server/node_modules/lodash-es/isArrayLike.js +0 -33
  2195. package/.output/server/node_modules/lodash-es/isArrayLikeObject.js +0 -33
  2196. package/.output/server/node_modules/lodash-es/isBuffer.js +0 -38
  2197. package/.output/server/node_modules/lodash-es/isEmpty.js +0 -77
  2198. package/.output/server/node_modules/lodash-es/isFunction.js +0 -37
  2199. package/.output/server/node_modules/lodash-es/isLength.js +0 -35
  2200. package/.output/server/node_modules/lodash-es/isMap.js +0 -27
  2201. package/.output/server/node_modules/lodash-es/isObject.js +0 -31
  2202. package/.output/server/node_modules/lodash-es/isObjectLike.js +0 -29
  2203. package/.output/server/node_modules/lodash-es/isPlainObject.js +0 -62
  2204. package/.output/server/node_modules/lodash-es/isSet.js +0 -27
  2205. package/.output/server/node_modules/lodash-es/isString.js +0 -30
  2206. package/.output/server/node_modules/lodash-es/isSymbol.js +0 -29
  2207. package/.output/server/node_modules/lodash-es/isTypedArray.js +0 -27
  2208. package/.output/server/node_modules/lodash-es/isUndefined.js +0 -22
  2209. package/.output/server/node_modules/lodash-es/keys.js +0 -37
  2210. package/.output/server/node_modules/lodash-es/keysIn.js +0 -32
  2211. package/.output/server/node_modules/lodash-es/last.js +0 -20
  2212. package/.output/server/node_modules/lodash-es/map.js +0 -53
  2213. package/.output/server/node_modules/lodash-es/mapValues.js +0 -43
  2214. package/.output/server/node_modules/lodash-es/max.js +0 -29
  2215. package/.output/server/node_modules/lodash-es/maxBy.js +0 -34
  2216. package/.output/server/node_modules/lodash-es/memoize.js +0 -73
  2217. package/.output/server/node_modules/lodash-es/merge.js +0 -39
  2218. package/.output/server/node_modules/lodash-es/min.js +0 -29
  2219. package/.output/server/node_modules/lodash-es/minBy.js +0 -34
  2220. package/.output/server/node_modules/lodash-es/noop.js +0 -17
  2221. package/.output/server/node_modules/lodash-es/now.js +0 -23
  2222. package/.output/server/node_modules/lodash-es/package.json +0 -23
  2223. package/.output/server/node_modules/lodash-es/pick.js +0 -25
  2224. package/.output/server/node_modules/lodash-es/property.js +0 -32
  2225. package/.output/server/node_modules/lodash-es/range.js +0 -46
  2226. package/.output/server/node_modules/lodash-es/reduce.js +0 -51
  2227. package/.output/server/node_modules/lodash-es/size.js +0 -46
  2228. package/.output/server/node_modules/lodash-es/sortBy.js +0 -48
  2229. package/.output/server/node_modules/lodash-es/stubArray.js +0 -23
  2230. package/.output/server/node_modules/lodash-es/stubFalse.js +0 -18
  2231. package/.output/server/node_modules/lodash-es/toFinite.js +0 -42
  2232. package/.output/server/node_modules/lodash-es/toInteger.js +0 -36
  2233. package/.output/server/node_modules/lodash-es/toNumber.js +0 -64
  2234. package/.output/server/node_modules/lodash-es/toPairs.js +0 -30
  2235. package/.output/server/node_modules/lodash-es/toPlainObject.js +0 -32
  2236. package/.output/server/node_modules/lodash-es/toString.js +0 -28
  2237. package/.output/server/node_modules/lodash-es/transform.js +0 -65
  2238. package/.output/server/node_modules/lodash-es/union.js +0 -26
  2239. package/.output/server/node_modules/lodash-es/uniqueId.js +0 -28
  2240. package/.output/server/node_modules/lodash-es/values.js +0 -34
  2241. package/.output/server/node_modules/lodash-es/wrapperLodash.js +0 -147
  2242. package/.output/server/node_modules/lodash-es/zipObject.js +0 -24
  2243. package/.output/server/node_modules/maplibre-gl/dist/maplibre-gl.js +0 -44
  2244. package/.output/server/node_modules/maplibre-gl/dist/package.json +0 -1
  2245. package/.output/server/node_modules/maplibre-gl/package.json +0 -182
  2246. package/.output/server/node_modules/striptags/package.json +0 -30
  2247. package/.output/server/node_modules/striptags/src/striptags.js +0 -239
  2248. package/.output/server/node_modules/stylis/dist/umd/package.json +0 -1
  2249. package/.output/server/node_modules/stylis/dist/umd/stylis.js +0 -2
  2250. package/.output/server/node_modules/stylis/package.json +0 -167
  2251. package/.output/server/node_modules/supercluster/dist/supercluster.js +0 -635
  2252. package/.output/server/node_modules/supercluster/package.json +0 -54
  2253. package/.output/server/node_modules/three/package.json +0 -136
  2254. package/.output/server/node_modules/three/src/cameras/ArrayCamera.js +0 -18
  2255. package/.output/server/node_modules/three/src/cameras/Camera.js +0 -68
  2256. package/.output/server/node_modules/three/src/cameras/CubeCamera.js +0 -107
  2257. package/.output/server/node_modules/three/src/cameras/OrthographicCamera.js +0 -136
  2258. package/.output/server/node_modules/three/src/cameras/PerspectiveCamera.js +0 -233
  2259. package/.output/server/node_modules/three/src/constants.js +0 -199
  2260. package/.output/server/node_modules/three/src/core/BufferAttribute.js +0 -528
  2261. package/.output/server/node_modules/three/src/core/BufferGeometry.js +0 -1130
  2262. package/.output/server/node_modules/three/src/core/EventDispatcher.js +0 -87
  2263. package/.output/server/node_modules/three/src/core/Layers.js +0 -60
  2264. package/.output/server/node_modules/three/src/core/Object3D.js +0 -924
  2265. package/.output/server/node_modules/three/src/extras/ImageUtils.js +0 -66
  2266. package/.output/server/node_modules/three/src/extras/PMREMGenerator.js +0 -1013
  2267. package/.output/server/node_modules/three/src/geometries/BoxGeometry.js +0 -170
  2268. package/.output/server/node_modules/three/src/geometries/PlaneGeometry.js +0 -87
  2269. package/.output/server/node_modules/three/src/materials/Material.js +0 -491
  2270. package/.output/server/node_modules/three/src/materials/MeshBasicMaterial.js +0 -106
  2271. package/.output/server/node_modules/three/src/materials/MeshDepthMaterial.js +0 -74
  2272. package/.output/server/node_modules/three/src/materials/MeshDistanceMaterial.js +0 -72
  2273. package/.output/server/node_modules/three/src/materials/PointsMaterial.js +0 -59
  2274. package/.output/server/node_modules/three/src/materials/RawShaderMaterial.js +0 -17
  2275. package/.output/server/node_modules/three/src/materials/ShaderMaterial.js +0 -200
  2276. package/.output/server/node_modules/three/src/math/Box3.js +0 -518
  2277. package/.output/server/node_modules/three/src/math/Color.js +0 -604
  2278. package/.output/server/node_modules/three/src/math/Euler.js +0 -322
  2279. package/.output/server/node_modules/three/src/math/Frustum.js +0 -162
  2280. package/.output/server/node_modules/three/src/math/MathUtils.js +0 -258
  2281. package/.output/server/node_modules/three/src/math/Matrix3.js +0 -339
  2282. package/.output/server/node_modules/three/src/math/Matrix4.js +0 -885
  2283. package/.output/server/node_modules/three/src/math/Plane.js +0 -205
  2284. package/.output/server/node_modules/three/src/math/Quaternion.js +0 -689
  2285. package/.output/server/node_modules/three/src/math/Ray.js +0 -496
  2286. package/.output/server/node_modules/three/src/math/Sphere.js +0 -219
  2287. package/.output/server/node_modules/three/src/math/Triangle.js +0 -299
  2288. package/.output/server/node_modules/three/src/math/Vector2.js +0 -484
  2289. package/.output/server/node_modules/three/src/math/Vector3.js +0 -745
  2290. package/.output/server/node_modules/three/src/math/Vector4.js +0 -664
  2291. package/.output/server/node_modules/three/src/objects/Group.js +0 -17
  2292. package/.output/server/node_modules/three/src/objects/Mesh.js +0 -419
  2293. package/.output/server/node_modules/three/src/objects/Points.js +0 -188
  2294. package/.output/server/node_modules/three/src/renderers/WebGLCubeRenderTarget.js +0 -155
  2295. package/.output/server/node_modules/three/src/renderers/WebGLMultisampleRenderTarget.js +0 -33
  2296. package/.output/server/node_modules/three/src/renderers/WebGLRenderTarget.js +0 -109
  2297. package/.output/server/node_modules/three/src/renderers/WebGLRenderer.js +0 -2217
  2298. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +0 -7
  2299. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl.js +0 -7
  2300. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl.js +0 -7
  2301. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl.js +0 -5
  2302. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +0 -18
  2303. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl.js +0 -8
  2304. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js +0 -3
  2305. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl.js +0 -9
  2306. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +0 -258
  2307. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +0 -44
  2308. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js +0 -7
  2309. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +0 -18
  2310. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js +0 -21
  2311. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl.js +0 -33
  2312. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl.js +0 -9
  2313. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl.js +0 -7
  2314. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl.js +0 -7
  2315. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +0 -11
  2316. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +0 -11
  2317. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +0 -11
  2318. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +0 -23
  2319. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -116
  2320. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +0 -214
  2321. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/default_fragment.glsl.js +0 -5
  2322. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/default_vertex.glsl.js +0 -5
  2323. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +0 -36
  2324. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl.js +0 -9
  2325. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js +0 -7
  2326. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl.js +0 -7
  2327. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js +0 -20
  2328. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +0 -11
  2329. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl.js +0 -7
  2330. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/encodings_fragment.glsl.js +0 -3
  2331. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js +0 -62
  2332. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -14
  2333. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -68
  2334. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +0 -21
  2335. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +0 -22
  2336. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +0 -62
  2337. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js +0 -37
  2338. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/fog_fragment.glsl.js +0 -17
  2339. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl.js +0 -19
  2340. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl.js +0 -7
  2341. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/fog_vertex.glsl.js +0 -7
  2342. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +0 -26
  2343. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +0 -16
  2344. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl.js +0 -8
  2345. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +0 -152
  2346. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +0 -13
  2347. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +0 -38
  2348. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js +0 -122
  2349. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +0 -223
  2350. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl.js +0 -7
  2351. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +0 -34
  2352. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +0 -95
  2353. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +0 -188
  2354. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl.js +0 -4
  2355. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +0 -28
  2356. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +0 -9
  2357. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +0 -9
  2358. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +0 -16
  2359. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +0 -22
  2360. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +0 -10
  2361. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl.js +0 -7
  2362. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +0 -20
  2363. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js +0 -19
  2364. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +0 -12
  2365. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl.js +0 -7
  2366. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +0 -27
  2367. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +0 -38
  2368. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +0 -44
  2369. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +0 -48
  2370. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +0 -41
  2371. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js +0 -14
  2372. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js +0 -14
  2373. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js +0 -14
  2374. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +0 -45
  2375. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +0 -12
  2376. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/packing.glsl.js +0 -54
  2377. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +0 -8
  2378. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/project_vertex.glsl.js +0 -13
  2379. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +0 -12
  2380. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl.js +0 -7
  2381. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +0 -310
  2382. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +0 -63
  2383. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +0 -60
  2384. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +0 -66
  2385. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl.js +0 -10
  2386. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js +0 -48
  2387. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl.js +0 -15
  2388. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl.js +0 -20
  2389. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js +0 -14
  2390. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl.js +0 -7
  2391. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl.js +0 -7
  2392. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +0 -77
  2393. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +0 -32
  2394. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +0 -115
  2395. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js +0 -7
  2396. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js +0 -10
  2397. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js +0 -7
  2398. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +0 -7
  2399. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +0 -17
  2400. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +0 -7
  2401. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +0 -15
  2402. package/.output/server/node_modules/three/src/renderers/shaders/ShaderChunk.js +0 -257
  2403. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/background.glsl.js +0 -29
  2404. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/cube.glsl.js +0 -38
  2405. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/depth.glsl.js +0 -92
  2406. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js +0 -73
  2407. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/equirect.glsl.js +0 -37
  2408. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/linedashed.glsl.js +0 -69
  2409. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +0 -115
  2410. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +0 -150
  2411. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +0 -107
  2412. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +0 -76
  2413. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -125
  2414. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +0 -196
  2415. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -116
  2416. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/points.glsl.js +0 -70
  2417. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/shadow.glsl.js +0 -49
  2418. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/sprite.glsl.js +0 -79
  2419. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib/vsm.glsl.js +0 -56
  2420. package/.output/server/node_modules/three/src/renderers/shaders/ShaderLib.js +0 -325
  2421. package/.output/server/node_modules/three/src/renderers/shaders/UniformsLib.js +0 -217
  2422. package/.output/server/node_modules/three/src/renderers/shaders/UniformsUtils.js +0 -66
  2423. package/.output/server/node_modules/three/src/renderers/webgl/WebGLAnimation.js +0 -53
  2424. package/.output/server/node_modules/three/src/renderers/webgl/WebGLAttributes.js +0 -193
  2425. package/.output/server/node_modules/three/src/renderers/webgl/WebGLBackground.js +0 -225
  2426. package/.output/server/node_modules/three/src/renderers/webgl/WebGLBindingStates.js +0 -595
  2427. package/.output/server/node_modules/three/src/renderers/webgl/WebGLBufferRenderer.js +0 -61
  2428. package/.output/server/node_modules/three/src/renderers/webgl/WebGLCapabilities.js +0 -123
  2429. package/.output/server/node_modules/three/src/renderers/webgl/WebGLClipping.js +0 -167
  2430. package/.output/server/node_modules/three/src/renderers/webgl/WebGLCubeMaps.js +0 -103
  2431. package/.output/server/node_modules/three/src/renderers/webgl/WebGLCubeUVMaps.js +0 -117
  2432. package/.output/server/node_modules/three/src/renderers/webgl/WebGLExtensions.js +0 -96
  2433. package/.output/server/node_modules/three/src/renderers/webgl/WebGLGeometries.js +0 -195
  2434. package/.output/server/node_modules/three/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -71
  2435. package/.output/server/node_modules/three/src/renderers/webgl/WebGLInfo.js +0 -72
  2436. package/.output/server/node_modules/three/src/renderers/webgl/WebGLLights.js +0 -551
  2437. package/.output/server/node_modules/three/src/renderers/webgl/WebGLMaterials.js +0 -792
  2438. package/.output/server/node_modules/three/src/renderers/webgl/WebGLMorphtargets.js +0 -283
  2439. package/.output/server/node_modules/three/src/renderers/webgl/WebGLObjects.js +0 -72
  2440. package/.output/server/node_modules/three/src/renderers/webgl/WebGLProgram.js +0 -897
  2441. package/.output/server/node_modules/three/src/renderers/webgl/WebGLPrograms.js +0 -432
  2442. package/.output/server/node_modules/three/src/renderers/webgl/WebGLProperties.js +0 -48
  2443. package/.output/server/node_modules/three/src/renderers/webgl/WebGLRenderLists.js +0 -247
  2444. package/.output/server/node_modules/three/src/renderers/webgl/WebGLRenderStates.js +0 -106
  2445. package/.output/server/node_modules/three/src/renderers/webgl/WebGLShader.js +0 -12
  2446. package/.output/server/node_modules/three/src/renderers/webgl/WebGLShadowMap.js +0 -381
  2447. package/.output/server/node_modules/three/src/renderers/webgl/WebGLState.js +0 -1083
  2448. package/.output/server/node_modules/three/src/renderers/webgl/WebGLTextures.js +0 -1530
  2449. package/.output/server/node_modules/three/src/renderers/webgl/WebGLUniforms.js +0 -1019
  2450. package/.output/server/node_modules/three/src/renderers/webgl/WebGLUtils.js +0 -197
  2451. package/.output/server/node_modules/three/src/renderers/webxr/WebXRController.js +0 -299
  2452. package/.output/server/node_modules/three/src/renderers/webxr/WebXRManager.js +0 -684
  2453. package/.output/server/node_modules/three/src/scenes/Scene.js +0 -58
  2454. package/.output/server/node_modules/three/src/textures/CubeTexture.js +0 -33
  2455. package/.output/server/node_modules/three/src/textures/DataTexture2DArray.js +0 -29
  2456. package/.output/server/node_modules/three/src/textures/DataTexture3D.js +0 -37
  2457. package/.output/server/node_modules/three/src/textures/DepthTexture.js +0 -36
  2458. package/.output/server/node_modules/three/src/textures/Texture.js +0 -377
  2459. package/.output/server/node_modules/three/src/utils.js +0 -93
  2460. package/.output/server/node_modules/throttle-debounce/esm/index.js +0 -162
  2461. package/.output/server/node_modules/throttle-debounce/esm/package.json +0 -1
  2462. package/.output/server/node_modules/throttle-debounce/package.json +0 -98
  2463. package/.output/server/node_modules/topojson-client/dist/topojson-client.js +0 -508
  2464. package/.output/server/node_modules/topojson-client/package.json +0 -49
  2465. package/.output/server/node_modules/tslib/modules/index.js +0 -70
  2466. package/.output/server/node_modules/tslib/modules/package.json +0 -3
  2467. package/.output/server/node_modules/tslib/package.json +0 -47
  2468. package/.output/server/node_modules/tslib/tslib.js +0 -484
@@ -0,0 +1,3784 @@
1
+ import { _ as _sfc_main$1$1, a as _sfc_main$d } from './DashboardNavbar-C3PsNVJt.mjs';
2
+ import { _ as _sfc_main$1$2, a as _sfc_main$e } from './Breadcrumb-DtV_L8Gt.mjs';
3
+ import { _ as __nuxt_component_4 } from './FilterToolbar-BwXy8xSk.mjs';
4
+ import { _ as _sfc_main$f } from './Select-COU8NARj.mjs';
5
+ import { _ as _sfc_main$g } from './SelectMenu-BUwwc3Qt.mjs';
6
+ import { o as useHead, k as _sfc_main$p, l as _sfc_main$k, m as _sfc_main$7$1, v as __nuxt_component_12 } from './server.mjs';
7
+ import { _ as _sfc_main$h } from './Checkbox-ChSYhiUz.mjs';
8
+ import { defineComponent, withAsyncContext, computed, mergeProps, withCtx, unref, isRef, createVNode, resolveDynamicComponent, openBlock, createBlock, createCommentVNode, Fragment, renderList, toDisplayString, createTextVNode, useSSRContext } from 'vue';
9
+ import { ssrRenderComponent, ssrRenderList, ssrInterpolate, ssrRenderClass, ssrRenderVNode, ssrRenderAttrs, ssrRenderAttr, ssrRenderStyle } from 'vue/server-renderer';
10
+ import { M as MAX_ANALYTICS_DAYS, A as ANALYTICS_BANDS, a as ANALYTICS_WIDGETS, D as DEFAULT_ANALYTICS_DAYS, b as analyticsScopeToQuery } from '../_/scope.mjs';
11
+ import { c as useCookie } from './DashboardSidebarToggle-a5KYecZ0.mjs';
12
+ import { u as useFetch } from './fetch-DOcN2mHf.mjs';
13
+ import { _ as _sfc_main$c } from './Alert-gs8RgKxH.mjs';
14
+ import { a as formatRelativeTime, e as errorMessage, i as clusterErrorTypeColor } from './index-2GmuPNF-.mjs';
15
+ import { _ as __nuxt_component_11 } from './SectionCard-BB1O3uXd.mjs';
16
+ import { _ as __nuxt_component_13 } from './LoadingState-CxfFwac9.mjs';
17
+ import { _ as __nuxt_component_5$1 } from './ErrorState-9UPssp7w.mjs';
18
+ import { _ as __nuxt_component_4$2 } from './EmptyState-C-mCzGhO.mjs';
19
+ import { _ as __nuxt_component_5$3 } from './MiniRunBars-CcSn_9Wl.mjs';
20
+ import { _ as __nuxt_component_3 } from './TableScroller-DMcdCVrH.mjs';
21
+ import { _ as __nuxt_component_4$3 } from './TagBadge-aGUzbCxx.mjs';
22
+ import { _ as __nuxt_component_14 } from './DurationValue-CObiBDnH.mjs';
23
+ import { _ as __nuxt_component_13$1 } from './RunStatusBadge-CWhmAmKb.mjs';
24
+ import { u as useChartTooltip, _ as __nuxt_component_0, b as __nuxt_component_5$2, c as __nuxt_component_6, d as barGeometry, s as stackSegments, e as dayTickIndices, f as formatTickDate } from './ChartTooltip-DoF6Smyc.mjs';
25
+ import { _ as __nuxt_component_1 } from './StatTileGrid-7zOFUQ6j.mjs';
26
+ import { _ as __nuxt_component_2 } from './StatTile-DpcVQFVI.mjs';
27
+ import { _ as __nuxt_component_4$1 } from './FeatureUnavailable-Buoyoqx1.mjs';
28
+ import './useFormControl-8skMOTIf.mjs';
29
+ import './handleAndDispatchCustomEvent-Bk_AVSSo.mjs';
30
+ import '../nitro/nitro.mjs';
31
+ import 'node:crypto';
32
+ import 'drizzle-orm';
33
+ import 'path';
34
+ import 'fs/promises';
35
+ import 'zlib';
36
+ import 'util';
37
+ import 'marked';
38
+ import 'highlight.js/lib/core';
39
+ import 'highlight.js/lib/languages/bash';
40
+ import 'highlight.js/lib/languages/css';
41
+ import 'highlight.js/lib/languages/diff';
42
+ import 'highlight.js/lib/languages/javascript';
43
+ import 'highlight.js/lib/languages/json';
44
+ import 'highlight.js/lib/languages/python';
45
+ import 'highlight.js/lib/languages/typescript';
46
+ import 'highlight.js/lib/languages/xml';
47
+ import 'highlight.js/lib/languages/yaml';
48
+ import 'fflate';
49
+ import 'zod';
50
+ import 'pixelmatch';
51
+ import 'sharp';
52
+ import '@anthropic-ai/sdk';
53
+ import 'nodemailer';
54
+ import 'node:dns/promises';
55
+ import 'node:net';
56
+ import 'node:util';
57
+ import 'rou3';
58
+ import 'fs';
59
+ import '@aws-sdk/client-s3';
60
+ import 'node:http';
61
+ import 'node:https';
62
+ import 'node:events';
63
+ import 'node:buffer';
64
+ import 'node:fs';
65
+ import 'node:path';
66
+ import 'drizzle-orm/libsql/sqlite3';
67
+ import 'drizzle-orm/sqlite-core';
68
+ import 'drizzle-orm/pg-core';
69
+ import 'url';
70
+ import 'node:async_hooks';
71
+ import 'node:zlib';
72
+ import 'consola';
73
+ import 'node:url';
74
+ import '@iconify/utils';
75
+ import './VisuallyHiddenInput-D4E5aJCQ.mjs';
76
+ import '@tanstack/vue-virtual';
77
+ import 'vue-router';
78
+ import '@iconify/vue';
79
+ import 'tailwindcss/colors';
80
+ import 'tailwind-variants';
81
+ import '@iconify/utils/lib/css/icon';
82
+ import 'perfect-debounce';
83
+ import '@floating-ui/vue';
84
+ import 'aria-hidden';
85
+ import '../routes/renderer.mjs';
86
+ import 'vue-bundle-renderer/runtime';
87
+ import 'unhead/server';
88
+ import 'devalue';
89
+ import 'unhead/plugins';
90
+ import 'unhead/utils';
91
+ import './isValueEqualOrExist-D4lZ8uRY.mjs';
92
+ import './useForwardScopeId-D0ameaSU.mjs';
93
+ import './RovingFocusItem-CLjuqlIR.mjs';
94
+ import './Label-DYDR1Oeh.mjs';
95
+ import '@vue/shared';
96
+ import 'date-fns';
97
+ import './Card--Ike7sYc.mjs';
98
+ import './HelpHint-C96TlqxY.mjs';
99
+ import './help-content-BK3jcgLw.mjs';
100
+
101
+ const DEFAULT_ANALYTICS_SCOPE_STATE = {
102
+ days: DEFAULT_ANALYTICS_DAYS,
103
+ projectIds: [],
104
+ environment: null,
105
+ branch: null,
106
+ fullRunsOnly: true
107
+ };
108
+ function useAnalyticsScope() {
109
+ const state = useCookie("piwi-analytics-scope", {
110
+ default: () => ({ ...DEFAULT_ANALYTICS_SCOPE_STATE }),
111
+ encode: (v) => JSON.stringify(v),
112
+ decode: (v) => {
113
+ try {
114
+ return v ? { ...DEFAULT_ANALYTICS_SCOPE_STATE, ...JSON.parse(v) } : { ...DEFAULT_ANALYTICS_SCOPE_STATE };
115
+ } catch {
116
+ return { ...DEFAULT_ANALYTICS_SCOPE_STATE };
117
+ }
118
+ }
119
+ });
120
+ const scope = computed(() => ({
121
+ days: state.value.days,
122
+ projectIds: state.value.projectIds.length > 0 ? state.value.projectIds : void 0,
123
+ environment: state.value.environment,
124
+ branch: state.value.branch,
125
+ fullRunsOnly: state.value.fullRunsOnly
126
+ }));
127
+ const scopeQuery = computed(() => analyticsScopeToQuery(scope.value));
128
+ return { state, scope, scopeQuery };
129
+ }
130
+ function useAnalyticsWidget(widget, query) {
131
+ return useFetch(
132
+ `/api/analytics/${widget}`,
133
+ {
134
+ query: computed(query),
135
+ lazy: true,
136
+ server: false
137
+ },
138
+ "$UlG3SHNJJg"
139
+ /* nuxt-injected */
140
+ );
141
+ }
142
+ const ENV_ALL = "All environments";
143
+ const BRANCH_ALL = "All branches";
144
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
145
+ __name: "AnalyticsScopeBar",
146
+ __ssrInlineRender: true,
147
+ props: {
148
+ modelValue: {},
149
+ availableProjects: {},
150
+ availableEnvironments: {},
151
+ availableBranches: {}
152
+ },
153
+ emits: ["update:modelValue"],
154
+ setup(__props, { emit: __emit }) {
155
+ const props = __props;
156
+ const emit = __emit;
157
+ const PERIOD_ITEMS = [
158
+ { label: "Last 7 days", value: 7 },
159
+ { label: "Last 30 days", value: 30 },
160
+ { label: "Last 90 days", value: 90 },
161
+ { label: "Last year", value: 365 },
162
+ { label: "All time", value: MAX_ANALYTICS_DAYS }
163
+ ];
164
+ const days = computed({
165
+ get: () => props.modelValue.days,
166
+ set: (val) => emit("update:modelValue", { ...props.modelValue, days: val })
167
+ });
168
+ const projectItems = computed(() => props.availableProjects.map((p) => ({ label: p.label || p.name, value: p.id })));
169
+ const projectIds = computed({
170
+ get: () => props.modelValue.projectIds,
171
+ set: (val) => emit("update:modelValue", { ...props.modelValue, projectIds: val })
172
+ });
173
+ function projectLabel(id) {
174
+ return projectItems.value.find((item) => item.value === id)?.label ?? `#${id}`;
175
+ }
176
+ const environment = computed({
177
+ get: () => props.modelValue.environment ?? ENV_ALL,
178
+ set: (val) => emit("update:modelValue", { ...props.modelValue, environment: val === ENV_ALL ? null : val })
179
+ });
180
+ const environmentItems = computed(() => [ENV_ALL, ...props.availableEnvironments]);
181
+ const branch = computed({
182
+ get: () => props.modelValue.branch ?? BRANCH_ALL,
183
+ set: (val) => emit("update:modelValue", { ...props.modelValue, branch: val === BRANCH_ALL ? null : val })
184
+ });
185
+ const branchItems = computed(() => [BRANCH_ALL, ...props.availableBranches ?? []]);
186
+ const fullRunsOnly = computed({
187
+ get: () => props.modelValue.fullRunsOnly,
188
+ set: (val) => emit("update:modelValue", { ...props.modelValue, fullRunsOnly: val })
189
+ });
190
+ const isDefault = computed(
191
+ () => props.modelValue.days === DEFAULT_ANALYTICS_SCOPE_STATE.days && props.modelValue.projectIds.length === 0 && props.modelValue.environment === null && props.modelValue.branch === null && props.modelValue.fullRunsOnly === DEFAULT_ANALYTICS_SCOPE_STATE.fullRunsOnly
192
+ );
193
+ function reset() {
194
+ emit("update:modelValue", { ...DEFAULT_ANALYTICS_SCOPE_STATE });
195
+ }
196
+ return (_ctx, _push, _parent, _attrs) => {
197
+ const _component_USelect = _sfc_main$f;
198
+ const _component_USelectMenu = _sfc_main$g;
199
+ const _component_UIcon = _sfc_main$p;
200
+ const _component_UCheckbox = _sfc_main$h;
201
+ const _component_UButton = _sfc_main$k;
202
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "flex items-center gap-3 flex-wrap" }, _attrs))}>`);
203
+ _push(ssrRenderComponent(_component_USelect, {
204
+ modelValue: unref(days),
205
+ "onUpdate:modelValue": ($event) => isRef(days) ? days.value = $event : null,
206
+ items: PERIOD_ITEMS,
207
+ size: "sm",
208
+ class: "min-w-[140px]",
209
+ icon: "i-lucide-calendar-range"
210
+ }, null, _parent));
211
+ if (unref(projectItems).length > 0) {
212
+ _push(ssrRenderComponent(_component_USelectMenu, {
213
+ modelValue: unref(projectIds),
214
+ "onUpdate:modelValue": ($event) => isRef(projectIds) ? projectIds.value = $event : null,
215
+ items: unref(projectItems),
216
+ "value-key": "value",
217
+ multiple: "",
218
+ searchable: "",
219
+ size: "sm",
220
+ class: "min-w-[170px]",
221
+ placeholder: "All projects"
222
+ }, {
223
+ default: withCtx(({ modelValue: selected }, _push2, _parent2, _scopeId) => {
224
+ if (_push2) {
225
+ _push2(`<div class="flex items-center gap-1.5"${_scopeId}>`);
226
+ _push2(ssrRenderComponent(_component_UIcon, {
227
+ name: "i-lucide-folder",
228
+ class: ["size-3.5 shrink-0", selected.length ? "text-primary" : "text-gray-400"]
229
+ }, null, _parent2, _scopeId));
230
+ if (!selected.length) {
231
+ _push2(`<span class="text-gray-500"${_scopeId}>All projects</span>`);
232
+ } else if (selected.length === 1) {
233
+ _push2(`<span class="truncate"${_scopeId}>${ssrInterpolate(projectLabel(selected[0]))}</span>`);
234
+ } else {
235
+ _push2(`<span${_scopeId}>${ssrInterpolate(selected.length)} projects</span>`);
236
+ }
237
+ _push2(`</div>`);
238
+ } else {
239
+ return [
240
+ createVNode("div", { class: "flex items-center gap-1.5" }, [
241
+ createVNode(_component_UIcon, {
242
+ name: "i-lucide-folder",
243
+ class: ["size-3.5 shrink-0", selected.length ? "text-primary" : "text-gray-400"]
244
+ }, null, 8, ["class"]),
245
+ !selected.length ? (openBlock(), createBlock("span", {
246
+ key: 0,
247
+ class: "text-gray-500"
248
+ }, "All projects")) : selected.length === 1 ? (openBlock(), createBlock("span", {
249
+ key: 1,
250
+ class: "truncate"
251
+ }, toDisplayString(projectLabel(selected[0])), 1)) : (openBlock(), createBlock("span", { key: 2 }, toDisplayString(selected.length) + " projects", 1))
252
+ ])
253
+ ];
254
+ }
255
+ }),
256
+ _: 1
257
+ }, _parent));
258
+ } else {
259
+ _push(`<!---->`);
260
+ }
261
+ if (__props.availableEnvironments.length > 0) {
262
+ _push(ssrRenderComponent(_component_USelect, {
263
+ modelValue: unref(environment),
264
+ "onUpdate:modelValue": ($event) => isRef(environment) ? environment.value = $event : null,
265
+ items: unref(environmentItems),
266
+ size: "sm",
267
+ class: "min-w-[160px]",
268
+ icon: "i-lucide-server"
269
+ }, null, _parent));
270
+ } else {
271
+ _push(`<!---->`);
272
+ }
273
+ if ((__props.availableBranches?.length ?? 0) > 0) {
274
+ _push(ssrRenderComponent(_component_USelect, {
275
+ modelValue: unref(branch),
276
+ "onUpdate:modelValue": ($event) => isRef(branch) ? branch.value = $event : null,
277
+ items: unref(branchItems),
278
+ size: "sm",
279
+ class: "min-w-[160px]",
280
+ icon: "i-lucide-git-branch"
281
+ }, null, _parent));
282
+ } else {
283
+ _push(`<!---->`);
284
+ }
285
+ _push(`<label class="flex items-center gap-1.5 cursor-pointer select-none text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 transition-colors">`);
286
+ _push(ssrRenderComponent(_component_UCheckbox, {
287
+ modelValue: unref(fullRunsOnly),
288
+ "onUpdate:modelValue": ($event) => isRef(fullRunsOnly) ? fullRunsOnly.value = $event : null,
289
+ size: "sm"
290
+ }, null, _parent));
291
+ _push(` Full runs only </label>`);
292
+ if (!unref(isDefault)) {
293
+ _push(ssrRenderComponent(_component_UButton, {
294
+ variant: "ghost",
295
+ size: "sm",
296
+ color: "neutral",
297
+ icon: "i-lucide-x",
298
+ onClick: reset
299
+ }, {
300
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
301
+ if (_push2) {
302
+ _push2(` Reset `);
303
+ } else {
304
+ return [
305
+ createTextVNode(" Reset ")
306
+ ];
307
+ }
308
+ }),
309
+ _: 1
310
+ }, _parent));
311
+ } else {
312
+ _push(`<!---->`);
313
+ }
314
+ _push(`</div>`);
315
+ };
316
+ }
317
+ });
318
+ const _sfc_setup$b = _sfc_main$b.setup;
319
+ _sfc_main$b.setup = (props, ctx) => {
320
+ const ssrContext = useSSRContext();
321
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/AnalyticsScopeBar.vue");
322
+ return _sfc_setup$b ? _sfc_setup$b(props, ctx) : void 0;
323
+ };
324
+ const __nuxt_component_5 = Object.assign(_sfc_main$b, { __name: "AnalyticsScopeBar" });
325
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
326
+ __name: "InsightsFeed",
327
+ __ssrInlineRender: true,
328
+ props: {
329
+ query: {}
330
+ },
331
+ async setup(__props) {
332
+ let __temp, __restore;
333
+ const props = __props;
334
+ const {
335
+ data: insights,
336
+ pending,
337
+ error,
338
+ refresh
339
+ } = ([__temp, __restore] = withAsyncContext(() => useAnalyticsWidget("insights", () => props.query)), __temp = await __temp, __restore(), __temp);
340
+ const NuxtLink = __nuxt_component_12;
341
+ const SEVERITY_META = {
342
+ critical: { icon: "i-lucide-octagon-alert", class: "text-red-500", border: "border-l-red-500" },
343
+ warning: { icon: "i-lucide-triangle-alert", class: "text-amber-500", border: "border-l-amber-400" },
344
+ info: { icon: "i-lucide-info", class: "text-blue-500", border: "border-l-blue-400" },
345
+ positive: { icon: "i-lucide-trending-up", class: "text-green-500", border: "border-l-green-500" }
346
+ };
347
+ return (_ctx, _push, _parent, _attrs) => {
348
+ const _component_SectionCard = __nuxt_component_11;
349
+ const _component_LoadingState = __nuxt_component_13;
350
+ const _component_ErrorState = __nuxt_component_5$1;
351
+ const _component_UButton = _sfc_main$k;
352
+ const _component_EmptyState = __nuxt_component_4$2;
353
+ const _component_UIcon = _sfc_main$p;
354
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
355
+ icon: "i-lucide-lightbulb",
356
+ title: "Insights",
357
+ count: unref(insights)?.length || void 0,
358
+ help: "analytics.insights"
359
+ }, _attrs), {
360
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
361
+ if (_push2) {
362
+ if (unref(pending)) {
363
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
364
+ } else if (unref(error)) {
365
+ _push2(ssrRenderComponent(_component_ErrorState, {
366
+ text: `Couldn't load insights: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
367
+ }, {
368
+ action: withCtx((_2, _push3, _parent3, _scopeId2) => {
369
+ if (_push3) {
370
+ _push3(ssrRenderComponent(_component_UButton, {
371
+ size: "sm",
372
+ color: "neutral",
373
+ variant: "outline",
374
+ icon: "i-lucide-refresh-cw",
375
+ onClick: ($event) => unref(refresh)()
376
+ }, {
377
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
378
+ if (_push4) {
379
+ _push4(` Retry `);
380
+ } else {
381
+ return [
382
+ createTextVNode(" Retry ")
383
+ ];
384
+ }
385
+ }),
386
+ _: 1
387
+ }, _parent3, _scopeId2));
388
+ } else {
389
+ return [
390
+ createVNode(_component_UButton, {
391
+ size: "sm",
392
+ color: "neutral",
393
+ variant: "outline",
394
+ icon: "i-lucide-refresh-cw",
395
+ onClick: ($event) => unref(refresh)()
396
+ }, {
397
+ default: withCtx(() => [
398
+ createTextVNode(" Retry ")
399
+ ]),
400
+ _: 1
401
+ }, 8, ["onClick"])
402
+ ];
403
+ }
404
+ }),
405
+ _: 1
406
+ }, _parent2, _scopeId));
407
+ } else if (!unref(insights) || unref(insights).length === 0) {
408
+ _push2(ssrRenderComponent(_component_EmptyState, {
409
+ icon: "i-lucide-check-circle",
410
+ text: "Nothing needs your attention in this period."
411
+ }, null, _parent2, _scopeId));
412
+ } else {
413
+ _push2(`<div class="divide-y divide-gray-100 dark:divide-gray-800"${_scopeId}><!--[-->`);
414
+ ssrRenderList(unref(insights), (insight) => {
415
+ ssrRenderVNode(_push2, createVNode(resolveDynamicComponent(insight.to ? unref(NuxtLink) : "div"), {
416
+ key: insight.id,
417
+ to: insight.to,
418
+ class: ["flex items-start gap-3 py-3 pl-3 border-l-2", [
419
+ SEVERITY_META[insight.severity].border,
420
+ insight.to ? "hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded-r transition-colors" : ""
421
+ ]]
422
+ }, {
423
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
424
+ if (_push3) {
425
+ _push3(ssrRenderComponent(_component_UIcon, {
426
+ name: SEVERITY_META[insight.severity].icon,
427
+ class: ["size-4 mt-0.5 shrink-0", SEVERITY_META[insight.severity].class]
428
+ }, null, _parent3, _scopeId2));
429
+ _push3(`<div class="min-w-0"${_scopeId2}><p class="text-sm font-medium"${_scopeId2}>${ssrInterpolate(insight.message)}</p>`);
430
+ if (insight.detail) {
431
+ _push3(`<p class="text-xs text-gray-500 dark:text-gray-400 mt-0.5"${_scopeId2}>${ssrInterpolate(insight.detail)}</p>`);
432
+ } else {
433
+ _push3(`<!---->`);
434
+ }
435
+ _push3(`</div>`);
436
+ } else {
437
+ return [
438
+ createVNode(_component_UIcon, {
439
+ name: SEVERITY_META[insight.severity].icon,
440
+ class: ["size-4 mt-0.5 shrink-0", SEVERITY_META[insight.severity].class]
441
+ }, null, 8, ["name", "class"]),
442
+ createVNode("div", { class: "min-w-0" }, [
443
+ createVNode("p", { class: "text-sm font-medium" }, toDisplayString(insight.message), 1),
444
+ insight.detail ? (openBlock(), createBlock("p", {
445
+ key: 0,
446
+ class: "text-xs text-gray-500 dark:text-gray-400 mt-0.5"
447
+ }, toDisplayString(insight.detail), 1)) : createCommentVNode("", true)
448
+ ])
449
+ ];
450
+ }
451
+ }),
452
+ _: 2
453
+ }), _parent2, _scopeId);
454
+ });
455
+ _push2(`<!--]--></div>`);
456
+ }
457
+ } else {
458
+ return [
459
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
460
+ key: 1,
461
+ text: `Couldn't load insights: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
462
+ }, {
463
+ action: withCtx(() => [
464
+ createVNode(_component_UButton, {
465
+ size: "sm",
466
+ color: "neutral",
467
+ variant: "outline",
468
+ icon: "i-lucide-refresh-cw",
469
+ onClick: ($event) => unref(refresh)()
470
+ }, {
471
+ default: withCtx(() => [
472
+ createTextVNode(" Retry ")
473
+ ]),
474
+ _: 1
475
+ }, 8, ["onClick"])
476
+ ]),
477
+ _: 1
478
+ }, 8, ["text"])) : !unref(insights) || unref(insights).length === 0 ? (openBlock(), createBlock(_component_EmptyState, {
479
+ key: 2,
480
+ icon: "i-lucide-check-circle",
481
+ text: "Nothing needs your attention in this period."
482
+ })) : (openBlock(), createBlock("div", {
483
+ key: 3,
484
+ class: "divide-y divide-gray-100 dark:divide-gray-800"
485
+ }, [
486
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(insights), (insight) => {
487
+ return openBlock(), createBlock(resolveDynamicComponent(insight.to ? unref(NuxtLink) : "div"), {
488
+ key: insight.id,
489
+ to: insight.to,
490
+ class: ["flex items-start gap-3 py-3 pl-3 border-l-2", [
491
+ SEVERITY_META[insight.severity].border,
492
+ insight.to ? "hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded-r transition-colors" : ""
493
+ ]]
494
+ }, {
495
+ default: withCtx(() => [
496
+ createVNode(_component_UIcon, {
497
+ name: SEVERITY_META[insight.severity].icon,
498
+ class: ["size-4 mt-0.5 shrink-0", SEVERITY_META[insight.severity].class]
499
+ }, null, 8, ["name", "class"]),
500
+ createVNode("div", { class: "min-w-0" }, [
501
+ createVNode("p", { class: "text-sm font-medium" }, toDisplayString(insight.message), 1),
502
+ insight.detail ? (openBlock(), createBlock("p", {
503
+ key: 0,
504
+ class: "text-xs text-gray-500 dark:text-gray-400 mt-0.5"
505
+ }, toDisplayString(insight.detail), 1)) : createCommentVNode("", true)
506
+ ])
507
+ ]),
508
+ _: 2
509
+ }, 1032, ["to", "class"]);
510
+ }), 128))
511
+ ]))
512
+ ];
513
+ }
514
+ }),
515
+ _: 1
516
+ }, _parent));
517
+ };
518
+ }
519
+ });
520
+ const _sfc_setup$a = _sfc_main$a.setup;
521
+ _sfc_main$a.setup = (props, ctx) => {
522
+ const ssrContext = useSSRContext();
523
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/InsightsFeed.vue");
524
+ return _sfc_setup$a ? _sfc_setup$a(props, ctx) : void 0;
525
+ };
526
+ const InsightsFeed = Object.assign(_sfc_main$a, { __name: "InsightsFeed" });
527
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
528
+ __name: "PortfolioScorecard",
529
+ __ssrInlineRender: true,
530
+ props: {
531
+ query: {}
532
+ },
533
+ async setup(__props) {
534
+ let __temp, __restore;
535
+ const props = __props;
536
+ const {
537
+ data: rows,
538
+ pending,
539
+ error,
540
+ refresh
541
+ } = ([__temp, __restore] = withAsyncContext(() => useAnalyticsWidget("portfolio", () => props.query)), __temp = await __temp, __restore(), __temp);
542
+ function passRateClass(rate) {
543
+ if (rate === null) return "text-gray-400";
544
+ if (rate >= 90) return "text-green-600 dark:text-green-400";
545
+ if (rate >= 50) return "text-yellow-600 dark:text-yellow-400";
546
+ return "text-red-600 dark:text-red-400";
547
+ }
548
+ function deltaMeta(delta) {
549
+ if (delta === null || Math.abs(delta) < 1) return null;
550
+ return delta > 0 ? { icon: "i-lucide-trending-up", class: "text-green-600 dark:text-green-400" } : { icon: "i-lucide-trending-down", class: "text-red-600 dark:text-red-400" };
551
+ }
552
+ return (_ctx, _push, _parent, _attrs) => {
553
+ const _component_SectionCard = __nuxt_component_11;
554
+ const _component_LoadingState = __nuxt_component_13;
555
+ const _component_ErrorState = __nuxt_component_5$1;
556
+ const _component_UButton = _sfc_main$k;
557
+ const _component_EmptyState = __nuxt_component_4$2;
558
+ const _component_NuxtLink = __nuxt_component_12;
559
+ const _component_MiniRunBars = __nuxt_component_5$3;
560
+ const _component_TableScroller = __nuxt_component_3;
561
+ const _component_TagBadge = __nuxt_component_4$3;
562
+ const _component_UIcon = _sfc_main$p;
563
+ const _component_DurationValue = __nuxt_component_14;
564
+ const _component_RunStatusBadge = __nuxt_component_13$1;
565
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
566
+ icon: "i-lucide-table-properties",
567
+ title: "Portfolio health",
568
+ count: unref(rows)?.length || void 0,
569
+ help: "analytics.portfolio"
570
+ }, _attrs), {
571
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
572
+ if (_push2) {
573
+ if (unref(pending)) {
574
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
575
+ } else if (unref(error)) {
576
+ _push2(ssrRenderComponent(_component_ErrorState, {
577
+ text: `Couldn't load the portfolio: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
578
+ }, {
579
+ action: withCtx((_2, _push3, _parent3, _scopeId2) => {
580
+ if (_push3) {
581
+ _push3(ssrRenderComponent(_component_UButton, {
582
+ size: "sm",
583
+ color: "neutral",
584
+ variant: "outline",
585
+ icon: "i-lucide-refresh-cw",
586
+ onClick: ($event) => unref(refresh)()
587
+ }, {
588
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
589
+ if (_push4) {
590
+ _push4(` Retry `);
591
+ } else {
592
+ return [
593
+ createTextVNode(" Retry ")
594
+ ];
595
+ }
596
+ }),
597
+ _: 1
598
+ }, _parent3, _scopeId2));
599
+ } else {
600
+ return [
601
+ createVNode(_component_UButton, {
602
+ size: "sm",
603
+ color: "neutral",
604
+ variant: "outline",
605
+ icon: "i-lucide-refresh-cw",
606
+ onClick: ($event) => unref(refresh)()
607
+ }, {
608
+ default: withCtx(() => [
609
+ createTextVNode(" Retry ")
610
+ ]),
611
+ _: 1
612
+ }, 8, ["onClick"])
613
+ ];
614
+ }
615
+ }),
616
+ _: 1
617
+ }, _parent2, _scopeId));
618
+ } else if (!unref(rows) || unref(rows).length === 0) {
619
+ _push2(ssrRenderComponent(_component_EmptyState, { text: "No projects with runs in this period." }, null, _parent2, _scopeId));
620
+ } else {
621
+ _push2(`<!--[--><div class="md:hidden space-y-3"${_scopeId}><!--[-->`);
622
+ ssrRenderList(unref(rows), (row) => {
623
+ _push2(`<div class="rounded-lg border border-gray-200 dark:border-gray-800 p-3 space-y-2"${_scopeId}><div class="flex items-center justify-between gap-2"${_scopeId}>`);
624
+ _push2(ssrRenderComponent(_component_NuxtLink, {
625
+ to: `/projects/${row.projectId}`,
626
+ class: "font-medium truncate hover:text-primary"
627
+ }, {
628
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
629
+ if (_push3) {
630
+ _push3(`${ssrInterpolate(row.label || row.name)}`);
631
+ } else {
632
+ return [
633
+ createTextVNode(toDisplayString(row.label || row.name), 1)
634
+ ];
635
+ }
636
+ }),
637
+ _: 2
638
+ }, _parent2, _scopeId));
639
+ _push2(`<span class="${ssrRenderClass([passRateClass(row.passRate), "tabular-nums font-semibold shrink-0"])}"${_scopeId}>${ssrInterpolate(row.passRate !== null ? `${row.passRate}%` : "—")}</span></div>`);
640
+ _push2(ssrRenderComponent(_component_MiniRunBars, {
641
+ runs: row.recentRuns,
642
+ height: 20
643
+ }, null, _parent2, _scopeId));
644
+ _push2(`<div class="flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"${_scopeId}><span${_scopeId}>${ssrInterpolate(row.runCount)} runs · ${ssrInterpolate(row.flakyTests)} flaky · ${ssrInterpolate(row.openClusters)} open clusters</span>`);
645
+ if (row.latestRun) {
646
+ _push2(`<span${_scopeId}>${ssrInterpolate(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(row.latestRun.startTime))}</span>`);
647
+ } else {
648
+ _push2(`<!---->`);
649
+ }
650
+ _push2(`</div></div>`);
651
+ });
652
+ _push2(`<!--]--></div><div class="hidden md:block"${_scopeId}>`);
653
+ _push2(ssrRenderComponent(_component_TableScroller, { "min-width": "52rem" }, {
654
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
655
+ if (_push3) {
656
+ _push3(`<table class="w-full text-sm"${_scopeId2}><thead${_scopeId2}><tr class="text-left text-xs text-gray-500 uppercase tracking-wider border-b border-gray-200 dark:border-gray-800"${_scopeId2}><th class="py-2 pr-4 font-medium"${_scopeId2}>Project</th><th class="py-2 pr-4 font-medium"${_scopeId2}>Trend</th><th class="py-2 pr-4 font-medium text-right"${_scopeId2}>Pass rate</th><th class="py-2 pr-4 font-medium text-right"${_scopeId2}>Runs</th><th class="py-2 pr-4 font-medium text-right"${_scopeId2}>Flaky</th><th class="py-2 pr-4 font-medium text-right"${_scopeId2}>Avg run</th><th class="py-2 pr-4 font-medium text-right"${_scopeId2}>Open clusters</th><th class="py-2 font-medium text-right"${_scopeId2}>Latest run</th></tr></thead><tbody class="divide-y divide-gray-100 dark:divide-gray-800"${_scopeId2}><!--[-->`);
657
+ ssrRenderList(unref(rows), (row) => {
658
+ _push3(`<tr${_scopeId2}><td class="py-2.5 pr-4"${_scopeId2}><div class="flex items-center gap-2 min-w-0"${_scopeId2}>`);
659
+ _push3(ssrRenderComponent(_component_NuxtLink, {
660
+ to: `/projects/${row.projectId}`,
661
+ class: "font-medium truncate hover:text-primary"
662
+ }, {
663
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
664
+ if (_push4) {
665
+ _push4(`${ssrInterpolate(row.label || row.name)}`);
666
+ } else {
667
+ return [
668
+ createTextVNode(toDisplayString(row.label || row.name), 1)
669
+ ];
670
+ }
671
+ }),
672
+ _: 2
673
+ }, _parent3, _scopeId2));
674
+ _push3(`<!--[-->`);
675
+ ssrRenderList(row.tags.slice(0, 2), (tag) => {
676
+ _push3(ssrRenderComponent(_component_TagBadge, {
677
+ key: tag.id,
678
+ text: tag.text,
679
+ color: tag.color
680
+ }, null, _parent3, _scopeId2));
681
+ });
682
+ _push3(`<!--]--></div></td><td class="py-2.5 pr-4"${_scopeId2}><div class="w-36"${_scopeId2}>`);
683
+ _push3(ssrRenderComponent(_component_MiniRunBars, {
684
+ runs: row.recentRuns,
685
+ height: 22
686
+ }, null, _parent3, _scopeId2));
687
+ _push3(`</div></td><td class="py-2.5 pr-4 text-right"${_scopeId2}><span class="${ssrRenderClass([passRateClass(row.passRate), "inline-flex items-center gap-1 tabular-nums font-semibold"])}"${_scopeId2}>${ssrInterpolate(row.passRate !== null ? `${row.passRate}%` : "—")} `);
688
+ if (deltaMeta(row.passRateDelta)) {
689
+ _push3(ssrRenderComponent(_component_UIcon, {
690
+ name: deltaMeta(row.passRateDelta).icon,
691
+ class: ["size-3.5", deltaMeta(row.passRateDelta).class],
692
+ title: `${row.passRateDelta > 0 ? "+" : ""}${row.passRateDelta} pts vs previous period`
693
+ }, null, _parent3, _scopeId2));
694
+ } else {
695
+ _push3(`<!---->`);
696
+ }
697
+ _push3(`</span></td><td class="py-2.5 pr-4 text-right tabular-nums"${_scopeId2}>${ssrInterpolate(row.runCount)}</td><td class="${ssrRenderClass([row.flakyTests > 0 ? "text-amber-600 dark:text-amber-400" : "", "py-2.5 pr-4 text-right tabular-nums"])}"${_scopeId2}>${ssrInterpolate(row.flakyTests)}</td><td class="py-2.5 pr-4 text-right tabular-nums text-gray-500 dark:text-gray-400"${_scopeId2}>`);
698
+ _push3(ssrRenderComponent(_component_DurationValue, {
699
+ ms: row.avgRunDurationMs
700
+ }, null, _parent3, _scopeId2));
701
+ _push3(`</td><td class="${ssrRenderClass([row.openClusters > 0 ? "text-red-600 dark:text-red-400" : "", "py-2.5 pr-4 text-right tabular-nums"])}"${_scopeId2}>${ssrInterpolate(row.openClusters)}</td><td class="py-2.5 text-right"${_scopeId2}>`);
702
+ if (row.latestRun) {
703
+ _push3(ssrRenderComponent(_component_NuxtLink, {
704
+ to: `/test-runs/${row.latestRun.id}`,
705
+ class: "inline-flex items-center gap-2 hover:text-primary"
706
+ }, {
707
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
708
+ if (_push4) {
709
+ _push4(ssrRenderComponent(_component_RunStatusBadge, {
710
+ status: row.latestRun.status
711
+ }, null, _parent4, _scopeId3));
712
+ _push4(`<span class="text-xs text-gray-500 dark:text-gray-400"${_scopeId3}>${ssrInterpolate(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(row.latestRun.startTime))}</span>`);
713
+ } else {
714
+ return [
715
+ createVNode(_component_RunStatusBadge, {
716
+ status: row.latestRun.status
717
+ }, null, 8, ["status"]),
718
+ createVNode("span", { class: "text-xs text-gray-500 dark:text-gray-400" }, toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(row.latestRun.startTime)), 1)
719
+ ];
720
+ }
721
+ }),
722
+ _: 2
723
+ }, _parent3, _scopeId2));
724
+ } else {
725
+ _push3(`<span class="text-xs text-gray-400"${_scopeId2}>No runs</span>`);
726
+ }
727
+ _push3(`</td></tr>`);
728
+ });
729
+ _push3(`<!--]--></tbody></table>`);
730
+ } else {
731
+ return [
732
+ createVNode("table", { class: "w-full text-sm" }, [
733
+ createVNode("thead", null, [
734
+ createVNode("tr", { class: "text-left text-xs text-gray-500 uppercase tracking-wider border-b border-gray-200 dark:border-gray-800" }, [
735
+ createVNode("th", { class: "py-2 pr-4 font-medium" }, "Project"),
736
+ createVNode("th", { class: "py-2 pr-4 font-medium" }, "Trend"),
737
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Pass rate"),
738
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Runs"),
739
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Flaky"),
740
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Avg run"),
741
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Open clusters"),
742
+ createVNode("th", { class: "py-2 font-medium text-right" }, "Latest run")
743
+ ])
744
+ ]),
745
+ createVNode("tbody", { class: "divide-y divide-gray-100 dark:divide-gray-800" }, [
746
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(rows), (row) => {
747
+ return openBlock(), createBlock("tr", {
748
+ key: row.projectId
749
+ }, [
750
+ createVNode("td", { class: "py-2.5 pr-4" }, [
751
+ createVNode("div", { class: "flex items-center gap-2 min-w-0" }, [
752
+ createVNode(_component_NuxtLink, {
753
+ to: `/projects/${row.projectId}`,
754
+ class: "font-medium truncate hover:text-primary"
755
+ }, {
756
+ default: withCtx(() => [
757
+ createTextVNode(toDisplayString(row.label || row.name), 1)
758
+ ]),
759
+ _: 2
760
+ }, 1032, ["to"]),
761
+ (openBlock(true), createBlock(Fragment, null, renderList(row.tags.slice(0, 2), (tag) => {
762
+ return openBlock(), createBlock(_component_TagBadge, {
763
+ key: tag.id,
764
+ text: tag.text,
765
+ color: tag.color
766
+ }, null, 8, ["text", "color"]);
767
+ }), 128))
768
+ ])
769
+ ]),
770
+ createVNode("td", { class: "py-2.5 pr-4" }, [
771
+ createVNode("div", { class: "w-36" }, [
772
+ createVNode(_component_MiniRunBars, {
773
+ runs: row.recentRuns,
774
+ height: 22
775
+ }, null, 8, ["runs"])
776
+ ])
777
+ ]),
778
+ createVNode("td", { class: "py-2.5 pr-4 text-right" }, [
779
+ createVNode("span", {
780
+ class: ["inline-flex items-center gap-1 tabular-nums font-semibold", passRateClass(row.passRate)]
781
+ }, [
782
+ createTextVNode(toDisplayString(row.passRate !== null ? `${row.passRate}%` : "—") + " ", 1),
783
+ deltaMeta(row.passRateDelta) ? (openBlock(), createBlock(_component_UIcon, {
784
+ key: 0,
785
+ name: deltaMeta(row.passRateDelta).icon,
786
+ class: ["size-3.5", deltaMeta(row.passRateDelta).class],
787
+ title: `${row.passRateDelta > 0 ? "+" : ""}${row.passRateDelta} pts vs previous period`
788
+ }, null, 8, ["name", "class", "title"])) : createCommentVNode("", true)
789
+ ], 2)
790
+ ]),
791
+ createVNode("td", { class: "py-2.5 pr-4 text-right tabular-nums" }, toDisplayString(row.runCount), 1),
792
+ createVNode("td", {
793
+ class: ["py-2.5 pr-4 text-right tabular-nums", row.flakyTests > 0 ? "text-amber-600 dark:text-amber-400" : ""]
794
+ }, toDisplayString(row.flakyTests), 3),
795
+ createVNode("td", { class: "py-2.5 pr-4 text-right tabular-nums text-gray-500 dark:text-gray-400" }, [
796
+ createVNode(_component_DurationValue, {
797
+ ms: row.avgRunDurationMs
798
+ }, null, 8, ["ms"])
799
+ ]),
800
+ createVNode("td", {
801
+ class: ["py-2.5 pr-4 text-right tabular-nums", row.openClusters > 0 ? "text-red-600 dark:text-red-400" : ""]
802
+ }, toDisplayString(row.openClusters), 3),
803
+ createVNode("td", { class: "py-2.5 text-right" }, [
804
+ row.latestRun ? (openBlock(), createBlock(_component_NuxtLink, {
805
+ key: 0,
806
+ to: `/test-runs/${row.latestRun.id}`,
807
+ class: "inline-flex items-center gap-2 hover:text-primary"
808
+ }, {
809
+ default: withCtx(() => [
810
+ createVNode(_component_RunStatusBadge, {
811
+ status: row.latestRun.status
812
+ }, null, 8, ["status"]),
813
+ createVNode("span", { class: "text-xs text-gray-500 dark:text-gray-400" }, toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(row.latestRun.startTime)), 1)
814
+ ]),
815
+ _: 2
816
+ }, 1032, ["to"])) : (openBlock(), createBlock("span", {
817
+ key: 1,
818
+ class: "text-xs text-gray-400"
819
+ }, "No runs"))
820
+ ])
821
+ ]);
822
+ }), 128))
823
+ ])
824
+ ])
825
+ ];
826
+ }
827
+ }),
828
+ _: 1
829
+ }, _parent2, _scopeId));
830
+ _push2(`</div><!--]-->`);
831
+ }
832
+ } else {
833
+ return [
834
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
835
+ key: 1,
836
+ text: `Couldn't load the portfolio: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
837
+ }, {
838
+ action: withCtx(() => [
839
+ createVNode(_component_UButton, {
840
+ size: "sm",
841
+ color: "neutral",
842
+ variant: "outline",
843
+ icon: "i-lucide-refresh-cw",
844
+ onClick: ($event) => unref(refresh)()
845
+ }, {
846
+ default: withCtx(() => [
847
+ createTextVNode(" Retry ")
848
+ ]),
849
+ _: 1
850
+ }, 8, ["onClick"])
851
+ ]),
852
+ _: 1
853
+ }, 8, ["text"])) : !unref(rows) || unref(rows).length === 0 ? (openBlock(), createBlock(_component_EmptyState, {
854
+ key: 2,
855
+ text: "No projects with runs in this period."
856
+ })) : (openBlock(), createBlock(Fragment, { key: 3 }, [
857
+ createVNode("div", { class: "md:hidden space-y-3" }, [
858
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(rows), (row) => {
859
+ return openBlock(), createBlock("div", {
860
+ key: row.projectId,
861
+ class: "rounded-lg border border-gray-200 dark:border-gray-800 p-3 space-y-2"
862
+ }, [
863
+ createVNode("div", { class: "flex items-center justify-between gap-2" }, [
864
+ createVNode(_component_NuxtLink, {
865
+ to: `/projects/${row.projectId}`,
866
+ class: "font-medium truncate hover:text-primary"
867
+ }, {
868
+ default: withCtx(() => [
869
+ createTextVNode(toDisplayString(row.label || row.name), 1)
870
+ ]),
871
+ _: 2
872
+ }, 1032, ["to"]),
873
+ createVNode("span", {
874
+ class: ["tabular-nums font-semibold shrink-0", passRateClass(row.passRate)]
875
+ }, toDisplayString(row.passRate !== null ? `${row.passRate}%` : "—"), 3)
876
+ ]),
877
+ createVNode(_component_MiniRunBars, {
878
+ runs: row.recentRuns,
879
+ height: 20
880
+ }, null, 8, ["runs"]),
881
+ createVNode("div", { class: "flex items-center justify-between text-xs text-gray-500 dark:text-gray-400" }, [
882
+ createVNode("span", null, toDisplayString(row.runCount) + " runs · " + toDisplayString(row.flakyTests) + " flaky · " + toDisplayString(row.openClusters) + " open clusters", 1),
883
+ row.latestRun ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(row.latestRun.startTime)), 1)) : createCommentVNode("", true)
884
+ ])
885
+ ]);
886
+ }), 128))
887
+ ]),
888
+ createVNode("div", { class: "hidden md:block" }, [
889
+ createVNode(_component_TableScroller, { "min-width": "52rem" }, {
890
+ default: withCtx(() => [
891
+ createVNode("table", { class: "w-full text-sm" }, [
892
+ createVNode("thead", null, [
893
+ createVNode("tr", { class: "text-left text-xs text-gray-500 uppercase tracking-wider border-b border-gray-200 dark:border-gray-800" }, [
894
+ createVNode("th", { class: "py-2 pr-4 font-medium" }, "Project"),
895
+ createVNode("th", { class: "py-2 pr-4 font-medium" }, "Trend"),
896
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Pass rate"),
897
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Runs"),
898
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Flaky"),
899
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Avg run"),
900
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Open clusters"),
901
+ createVNode("th", { class: "py-2 font-medium text-right" }, "Latest run")
902
+ ])
903
+ ]),
904
+ createVNode("tbody", { class: "divide-y divide-gray-100 dark:divide-gray-800" }, [
905
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(rows), (row) => {
906
+ return openBlock(), createBlock("tr", {
907
+ key: row.projectId
908
+ }, [
909
+ createVNode("td", { class: "py-2.5 pr-4" }, [
910
+ createVNode("div", { class: "flex items-center gap-2 min-w-0" }, [
911
+ createVNode(_component_NuxtLink, {
912
+ to: `/projects/${row.projectId}`,
913
+ class: "font-medium truncate hover:text-primary"
914
+ }, {
915
+ default: withCtx(() => [
916
+ createTextVNode(toDisplayString(row.label || row.name), 1)
917
+ ]),
918
+ _: 2
919
+ }, 1032, ["to"]),
920
+ (openBlock(true), createBlock(Fragment, null, renderList(row.tags.slice(0, 2), (tag) => {
921
+ return openBlock(), createBlock(_component_TagBadge, {
922
+ key: tag.id,
923
+ text: tag.text,
924
+ color: tag.color
925
+ }, null, 8, ["text", "color"]);
926
+ }), 128))
927
+ ])
928
+ ]),
929
+ createVNode("td", { class: "py-2.5 pr-4" }, [
930
+ createVNode("div", { class: "w-36" }, [
931
+ createVNode(_component_MiniRunBars, {
932
+ runs: row.recentRuns,
933
+ height: 22
934
+ }, null, 8, ["runs"])
935
+ ])
936
+ ]),
937
+ createVNode("td", { class: "py-2.5 pr-4 text-right" }, [
938
+ createVNode("span", {
939
+ class: ["inline-flex items-center gap-1 tabular-nums font-semibold", passRateClass(row.passRate)]
940
+ }, [
941
+ createTextVNode(toDisplayString(row.passRate !== null ? `${row.passRate}%` : "—") + " ", 1),
942
+ deltaMeta(row.passRateDelta) ? (openBlock(), createBlock(_component_UIcon, {
943
+ key: 0,
944
+ name: deltaMeta(row.passRateDelta).icon,
945
+ class: ["size-3.5", deltaMeta(row.passRateDelta).class],
946
+ title: `${row.passRateDelta > 0 ? "+" : ""}${row.passRateDelta} pts vs previous period`
947
+ }, null, 8, ["name", "class", "title"])) : createCommentVNode("", true)
948
+ ], 2)
949
+ ]),
950
+ createVNode("td", { class: "py-2.5 pr-4 text-right tabular-nums" }, toDisplayString(row.runCount), 1),
951
+ createVNode("td", {
952
+ class: ["py-2.5 pr-4 text-right tabular-nums", row.flakyTests > 0 ? "text-amber-600 dark:text-amber-400" : ""]
953
+ }, toDisplayString(row.flakyTests), 3),
954
+ createVNode("td", { class: "py-2.5 pr-4 text-right tabular-nums text-gray-500 dark:text-gray-400" }, [
955
+ createVNode(_component_DurationValue, {
956
+ ms: row.avgRunDurationMs
957
+ }, null, 8, ["ms"])
958
+ ]),
959
+ createVNode("td", {
960
+ class: ["py-2.5 pr-4 text-right tabular-nums", row.openClusters > 0 ? "text-red-600 dark:text-red-400" : ""]
961
+ }, toDisplayString(row.openClusters), 3),
962
+ createVNode("td", { class: "py-2.5 text-right" }, [
963
+ row.latestRun ? (openBlock(), createBlock(_component_NuxtLink, {
964
+ key: 0,
965
+ to: `/test-runs/${row.latestRun.id}`,
966
+ class: "inline-flex items-center gap-2 hover:text-primary"
967
+ }, {
968
+ default: withCtx(() => [
969
+ createVNode(_component_RunStatusBadge, {
970
+ status: row.latestRun.status
971
+ }, null, 8, ["status"]),
972
+ createVNode("span", { class: "text-xs text-gray-500 dark:text-gray-400" }, toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(row.latestRun.startTime)), 1)
973
+ ]),
974
+ _: 2
975
+ }, 1032, ["to"])) : (openBlock(), createBlock("span", {
976
+ key: 1,
977
+ class: "text-xs text-gray-400"
978
+ }, "No runs"))
979
+ ])
980
+ ]);
981
+ }), 128))
982
+ ])
983
+ ])
984
+ ]),
985
+ _: 1
986
+ })
987
+ ])
988
+ ], 64))
989
+ ];
990
+ }
991
+ }),
992
+ _: 1
993
+ }, _parent));
994
+ };
995
+ }
996
+ });
997
+ const _sfc_setup$9 = _sfc_main$9.setup;
998
+ _sfc_main$9.setup = (props, ctx) => {
999
+ const ssrContext = useSSRContext();
1000
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/PortfolioScorecard.vue");
1001
+ return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
1002
+ };
1003
+ const PortfolioScorecard = Object.assign(_sfc_main$9, { __name: "PortfolioScorecard" });
1004
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1005
+ __name: "PassRateHeatmap",
1006
+ __ssrInlineRender: true,
1007
+ props: {
1008
+ query: {}
1009
+ },
1010
+ async setup(__props) {
1011
+ let __temp, __restore;
1012
+ const props = __props;
1013
+ const {
1014
+ data: heatmap,
1015
+ pending,
1016
+ error,
1017
+ refresh
1018
+ } = ([__temp, __restore] = withAsyncContext(() => useAnalyticsWidget("pass-rate-heatmap", () => props.query)), __temp = await __temp, __restore(), __temp);
1019
+ function cellStyle(rate) {
1020
+ if (rate === null) return {};
1021
+ if (rate >= 99.5) return { backgroundColor: "rgba(34, 197, 94, 0.85)" };
1022
+ if (rate >= 90) return { backgroundColor: "rgba(34, 197, 94, 0.5)" };
1023
+ if (rate >= 75) return { backgroundColor: "rgba(245, 158, 11, 0.55)" };
1024
+ if (rate >= 50) return { backgroundColor: "rgba(249, 115, 22, 0.65)" };
1025
+ return { backgroundColor: "rgba(239, 68, 68, 0.75)" };
1026
+ }
1027
+ function cellTitle(row, index, rate) {
1028
+ const date = heatmap.value?.buckets[index] ?? "";
1029
+ const span = (heatmap.value?.bucketDays ?? 1) > 1 ? ` (${heatmap.value.bucketDays} days)` : "";
1030
+ return `${row.label || row.name} · ${date}${span}: ${rate !== null ? `${rate}% passed` : "no runs"}`;
1031
+ }
1032
+ const legendItems = [
1033
+ { color: "rgba(34, 197, 94, 0.85)", label: "100%" },
1034
+ { color: "rgba(34, 197, 94, 0.5)", label: "≥ 90%" },
1035
+ { color: "rgba(245, 158, 11, 0.55)", label: "≥ 75%" },
1036
+ { color: "rgba(249, 115, 22, 0.65)", label: "≥ 50%" },
1037
+ { color: "rgba(239, 68, 68, 0.75)", label: "< 50%" }
1038
+ ];
1039
+ const subtitle = computed(() => {
1040
+ const bucketDays = heatmap.value?.bucketDays ?? 1;
1041
+ return bucketDays > 1 ? `One cell = ${bucketDays} days` : "One cell = one day";
1042
+ });
1043
+ const MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
1044
+ const axisSpansYears = computed(() => {
1045
+ const buckets = heatmap.value?.buckets ?? [];
1046
+ return buckets.length > 1 && buckets[0].slice(0, 4) !== buckets[buckets.length - 1].slice(0, 4);
1047
+ });
1048
+ function formatBucket(iso) {
1049
+ const [year, month, day] = iso.split("-");
1050
+ const monthName = MONTHS[Number(month) - 1];
1051
+ return axisSpansYears.value ? `${monthName} ${year}` : `${monthName} ${Number(day)}`;
1052
+ }
1053
+ const axisTicks = computed(() => {
1054
+ const buckets = heatmap.value?.buckets ?? [];
1055
+ const count = buckets.length;
1056
+ if (count === 0) return [];
1057
+ const tickCount = Math.min(axisSpansYears.value ? 4 : 5, count);
1058
+ const seen = /* @__PURE__ */ new Set();
1059
+ const ticks = [];
1060
+ for (let i = 0; i < tickCount; i++) {
1061
+ const index = tickCount === 1 ? 0 : Math.round(i * (count - 1) / (tickCount - 1));
1062
+ if (seen.has(index)) continue;
1063
+ seen.add(index);
1064
+ const left = index === 0 ? 0 : index === count - 1 ? 100 : (index + 0.5) / count * 100;
1065
+ const transform = index === 0 ? "translateX(0)" : index === count - 1 ? "translateX(-100%)" : "translateX(-50%)";
1066
+ ticks.push({ index, label: formatBucket(buckets[index]), left, transform });
1067
+ }
1068
+ return ticks;
1069
+ });
1070
+ return (_ctx, _push, _parent, _attrs) => {
1071
+ const _component_ChartCard = __nuxt_component_0;
1072
+ const _component_LoadingState = __nuxt_component_13;
1073
+ const _component_ErrorState = __nuxt_component_5$1;
1074
+ const _component_UButton = _sfc_main$k;
1075
+ const _component_EmptyState = __nuxt_component_4$2;
1076
+ const _component_TableScroller = __nuxt_component_3;
1077
+ const _component_NuxtLink = __nuxt_component_12;
1078
+ _push(ssrRenderComponent(_component_ChartCard, mergeProps({
1079
+ icon: "i-lucide-grid-3x3",
1080
+ title: "Pass rate heatmap",
1081
+ subtitle: unref(subtitle),
1082
+ help: "analytics.heatmap",
1083
+ legend: legendItems
1084
+ }, _attrs), {
1085
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
1086
+ if (_push2) {
1087
+ if (unref(pending)) {
1088
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
1089
+ } else if (unref(error)) {
1090
+ _push2(ssrRenderComponent(_component_ErrorState, {
1091
+ text: `Couldn't load the heatmap: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
1092
+ }, {
1093
+ action: withCtx((_2, _push3, _parent3, _scopeId2) => {
1094
+ if (_push3) {
1095
+ _push3(ssrRenderComponent(_component_UButton, {
1096
+ size: "sm",
1097
+ color: "neutral",
1098
+ variant: "outline",
1099
+ icon: "i-lucide-refresh-cw",
1100
+ onClick: ($event) => unref(refresh)()
1101
+ }, {
1102
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
1103
+ if (_push4) {
1104
+ _push4(` Retry `);
1105
+ } else {
1106
+ return [
1107
+ createTextVNode(" Retry ")
1108
+ ];
1109
+ }
1110
+ }),
1111
+ _: 1
1112
+ }, _parent3, _scopeId2));
1113
+ } else {
1114
+ return [
1115
+ createVNode(_component_UButton, {
1116
+ size: "sm",
1117
+ color: "neutral",
1118
+ variant: "outline",
1119
+ icon: "i-lucide-refresh-cw",
1120
+ onClick: ($event) => unref(refresh)()
1121
+ }, {
1122
+ default: withCtx(() => [
1123
+ createTextVNode(" Retry ")
1124
+ ]),
1125
+ _: 1
1126
+ }, 8, ["onClick"])
1127
+ ];
1128
+ }
1129
+ }),
1130
+ _: 1
1131
+ }, _parent2, _scopeId));
1132
+ } else if (!unref(heatmap) || unref(heatmap).rows.length === 0) {
1133
+ _push2(ssrRenderComponent(_component_EmptyState, { text: "No runs in this period." }, null, _parent2, _scopeId));
1134
+ } else {
1135
+ _push2(ssrRenderComponent(_component_TableScroller, { "min-width": "22rem" }, {
1136
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1137
+ if (_push3) {
1138
+ _push3(`<div class="space-y-1"${_scopeId2}><!--[-->`);
1139
+ ssrRenderList(unref(heatmap).rows, (row) => {
1140
+ _push3(`<div class="grid items-center gap-2" style="${ssrRenderStyle({ "grid-template-columns": "8rem 1fr" })}"${_scopeId2}>`);
1141
+ _push3(ssrRenderComponent(_component_NuxtLink, {
1142
+ to: `/projects/${row.projectId}`,
1143
+ class: "text-sm truncate hover:text-primary",
1144
+ title: row.label || row.name
1145
+ }, {
1146
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
1147
+ if (_push4) {
1148
+ _push4(`${ssrInterpolate(row.label || row.name)}`);
1149
+ } else {
1150
+ return [
1151
+ createTextVNode(toDisplayString(row.label || row.name), 1)
1152
+ ];
1153
+ }
1154
+ }),
1155
+ _: 2
1156
+ }, _parent3, _scopeId2));
1157
+ _push3(`<div class="flex gap-px"${_scopeId2}><!--[-->`);
1158
+ ssrRenderList(row.cells, (rate, index) => {
1159
+ _push3(`<div class="h-6 flex-1 rounded-sm min-w-1 bg-gray-100 dark:bg-gray-800" style="${ssrRenderStyle(cellStyle(rate))}"${ssrRenderAttr("title", cellTitle(row, index, rate))}${_scopeId2}></div>`);
1160
+ });
1161
+ _push3(`<!--]--></div></div>`);
1162
+ });
1163
+ _push3(`<!--]--><div class="grid gap-2" style="${ssrRenderStyle({ "grid-template-columns": "8rem 1fr" })}"${_scopeId2}><span${_scopeId2}></span><div class="relative h-4"${_scopeId2}><!--[-->`);
1164
+ ssrRenderList(unref(axisTicks), (tick) => {
1165
+ _push3(`<span class="absolute top-0 text-xs text-gray-400 whitespace-nowrap" style="${ssrRenderStyle({ left: `${tick.left}%`, transform: tick.transform })}"${_scopeId2}>${ssrInterpolate(tick.label)}</span>`);
1166
+ });
1167
+ _push3(`<!--]--></div></div></div>`);
1168
+ } else {
1169
+ return [
1170
+ createVNode("div", { class: "space-y-1" }, [
1171
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(heatmap).rows, (row) => {
1172
+ return openBlock(), createBlock("div", {
1173
+ key: row.projectId,
1174
+ class: "grid items-center gap-2",
1175
+ style: { "grid-template-columns": "8rem 1fr" }
1176
+ }, [
1177
+ createVNode(_component_NuxtLink, {
1178
+ to: `/projects/${row.projectId}`,
1179
+ class: "text-sm truncate hover:text-primary",
1180
+ title: row.label || row.name
1181
+ }, {
1182
+ default: withCtx(() => [
1183
+ createTextVNode(toDisplayString(row.label || row.name), 1)
1184
+ ]),
1185
+ _: 2
1186
+ }, 1032, ["to", "title"]),
1187
+ createVNode("div", { class: "flex gap-px" }, [
1188
+ (openBlock(true), createBlock(Fragment, null, renderList(row.cells, (rate, index) => {
1189
+ return openBlock(), createBlock("div", {
1190
+ key: index,
1191
+ class: "h-6 flex-1 rounded-sm min-w-1 bg-gray-100 dark:bg-gray-800",
1192
+ style: cellStyle(rate),
1193
+ title: cellTitle(row, index, rate)
1194
+ }, null, 12, ["title"]);
1195
+ }), 128))
1196
+ ])
1197
+ ]);
1198
+ }), 128)),
1199
+ createVNode("div", {
1200
+ class: "grid gap-2",
1201
+ style: { "grid-template-columns": "8rem 1fr" }
1202
+ }, [
1203
+ createVNode("span"),
1204
+ createVNode("div", { class: "relative h-4" }, [
1205
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(axisTicks), (tick) => {
1206
+ return openBlock(), createBlock("span", {
1207
+ key: tick.index,
1208
+ class: "absolute top-0 text-xs text-gray-400 whitespace-nowrap",
1209
+ style: { left: `${tick.left}%`, transform: tick.transform }
1210
+ }, toDisplayString(tick.label), 5);
1211
+ }), 128))
1212
+ ])
1213
+ ])
1214
+ ])
1215
+ ];
1216
+ }
1217
+ }),
1218
+ _: 1
1219
+ }, _parent2, _scopeId));
1220
+ }
1221
+ } else {
1222
+ return [
1223
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
1224
+ key: 1,
1225
+ text: `Couldn't load the heatmap: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
1226
+ }, {
1227
+ action: withCtx(() => [
1228
+ createVNode(_component_UButton, {
1229
+ size: "sm",
1230
+ color: "neutral",
1231
+ variant: "outline",
1232
+ icon: "i-lucide-refresh-cw",
1233
+ onClick: ($event) => unref(refresh)()
1234
+ }, {
1235
+ default: withCtx(() => [
1236
+ createTextVNode(" Retry ")
1237
+ ]),
1238
+ _: 1
1239
+ }, 8, ["onClick"])
1240
+ ]),
1241
+ _: 1
1242
+ }, 8, ["text"])) : !unref(heatmap) || unref(heatmap).rows.length === 0 ? (openBlock(), createBlock(_component_EmptyState, {
1243
+ key: 2,
1244
+ text: "No runs in this period."
1245
+ })) : (openBlock(), createBlock(_component_TableScroller, {
1246
+ key: 3,
1247
+ "min-width": "22rem"
1248
+ }, {
1249
+ default: withCtx(() => [
1250
+ createVNode("div", { class: "space-y-1" }, [
1251
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(heatmap).rows, (row) => {
1252
+ return openBlock(), createBlock("div", {
1253
+ key: row.projectId,
1254
+ class: "grid items-center gap-2",
1255
+ style: { "grid-template-columns": "8rem 1fr" }
1256
+ }, [
1257
+ createVNode(_component_NuxtLink, {
1258
+ to: `/projects/${row.projectId}`,
1259
+ class: "text-sm truncate hover:text-primary",
1260
+ title: row.label || row.name
1261
+ }, {
1262
+ default: withCtx(() => [
1263
+ createTextVNode(toDisplayString(row.label || row.name), 1)
1264
+ ]),
1265
+ _: 2
1266
+ }, 1032, ["to", "title"]),
1267
+ createVNode("div", { class: "flex gap-px" }, [
1268
+ (openBlock(true), createBlock(Fragment, null, renderList(row.cells, (rate, index) => {
1269
+ return openBlock(), createBlock("div", {
1270
+ key: index,
1271
+ class: "h-6 flex-1 rounded-sm min-w-1 bg-gray-100 dark:bg-gray-800",
1272
+ style: cellStyle(rate),
1273
+ title: cellTitle(row, index, rate)
1274
+ }, null, 12, ["title"]);
1275
+ }), 128))
1276
+ ])
1277
+ ]);
1278
+ }), 128)),
1279
+ createVNode("div", {
1280
+ class: "grid gap-2",
1281
+ style: { "grid-template-columns": "8rem 1fr" }
1282
+ }, [
1283
+ createVNode("span"),
1284
+ createVNode("div", { class: "relative h-4" }, [
1285
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(axisTicks), (tick) => {
1286
+ return openBlock(), createBlock("span", {
1287
+ key: tick.index,
1288
+ class: "absolute top-0 text-xs text-gray-400 whitespace-nowrap",
1289
+ style: { left: `${tick.left}%`, transform: tick.transform }
1290
+ }, toDisplayString(tick.label), 5);
1291
+ }), 128))
1292
+ ])
1293
+ ])
1294
+ ])
1295
+ ]),
1296
+ _: 1
1297
+ }))
1298
+ ];
1299
+ }
1300
+ }),
1301
+ _: 1
1302
+ }, _parent));
1303
+ };
1304
+ }
1305
+ });
1306
+ const _sfc_setup$8 = _sfc_main$8.setup;
1307
+ _sfc_main$8.setup = (props, ctx) => {
1308
+ const ssrContext = useSSRContext();
1309
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/PassRateHeatmap.vue");
1310
+ return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
1311
+ };
1312
+ const PassRateHeatmap = Object.assign(_sfc_main$8, { __name: "PassRateHeatmap" });
1313
+ const lineColor = "rgb(59, 130, 246)";
1314
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1315
+ __name: "CiTimeTrendChart",
1316
+ __ssrInlineRender: true,
1317
+ props: {
1318
+ query: {}
1319
+ },
1320
+ async setup(__props) {
1321
+ let __temp, __restore;
1322
+ const props = __props;
1323
+ const {
1324
+ data: trend,
1325
+ pending,
1326
+ error,
1327
+ refresh
1328
+ } = ([__temp, __restore] = withAsyncContext(() => useAnalyticsWidget("ci-time-trend", () => props.query)), __temp = await __temp, __restore(), __temp);
1329
+ const chartData = computed(
1330
+ () => trend.value?.points.map((p) => ({ date: new Date(p.date), totalMinutes: p.totalMinutes, runCount: p.runCount })) ?? []
1331
+ );
1332
+ const hasData = computed(() => chartData.value.some((p) => p.runCount > 0));
1333
+ const yMax = computed(() => Math.max(1, ...chartData.value.map((d) => d.totalMinutes)));
1334
+ function centers(plotWidth) {
1335
+ const { centerOf } = barGeometry(chartData.value.length, plotWidth);
1336
+ return chartData.value.map((_, i) => centerOf(i));
1337
+ }
1338
+ function linePath(plotWidth, yScale) {
1339
+ const xs = centers(plotWidth);
1340
+ return chartData.value.map((d, i) => `${i === 0 ? "M" : "L"}${xs[i]},${yScale(d.totalMinutes)}`).join("");
1341
+ }
1342
+ function areaPath(plotWidth, plotHeight, yScale) {
1343
+ const xs = centers(plotWidth);
1344
+ if (xs.length === 0) return "";
1345
+ const line = linePath(plotWidth, yScale);
1346
+ return `${line}L${xs[xs.length - 1]},${plotHeight}L${xs[0]},${plotHeight}Z`;
1347
+ }
1348
+ function xTicks(plotWidth) {
1349
+ const { centerOf } = barGeometry(chartData.value.length, plotWidth);
1350
+ const dates = chartData.value.map((d) => d.date);
1351
+ return dayTickIndices(dates, Math.max(2, Math.floor(plotWidth / 80))).map((i) => ({
1352
+ x: centerOf(i),
1353
+ label: formatTickDate(dates[i])
1354
+ }));
1355
+ }
1356
+ const { data: tooltipData, pos: tooltipPos, show, move, hide } = useChartTooltip(240);
1357
+ const deltaBadge = computed(() => {
1358
+ if (!trend.value || trend.value.deltaPct === null) return null;
1359
+ const pct = trend.value.deltaPct;
1360
+ return {
1361
+ label: `${pct > 0 ? "+" : ""}${pct}% vs previous period`,
1362
+ class: pct > 25 ? "text-red-600 dark:text-red-400" : pct < -10 ? "text-green-600 dark:text-green-400" : "text-gray-500"
1363
+ };
1364
+ });
1365
+ const subtitle = computed(() => {
1366
+ if (!trend.value) return void 0;
1367
+ const total = trend.value.totalMinutes;
1368
+ const label = total < 60 ? `${Math.round(total)} min` : `${Math.round(total / 60 * 10) / 10} h`;
1369
+ return `${label} across ${trend.value.runCount} runs`;
1370
+ });
1371
+ return (_ctx, _push, _parent, _attrs) => {
1372
+ const _component_ChartCard = __nuxt_component_0;
1373
+ const _component_LoadingState = __nuxt_component_13;
1374
+ const _component_ErrorState = __nuxt_component_5$1;
1375
+ const _component_UButton = _sfc_main$k;
1376
+ const _component_EmptyState = __nuxt_component_4$2;
1377
+ const _component_ChartFrame = __nuxt_component_5$2;
1378
+ const _component_ChartTooltip = __nuxt_component_6;
1379
+ _push(ssrRenderComponent(_component_ChartCard, mergeProps({
1380
+ icon: "i-lucide-timer",
1381
+ title: "CI time",
1382
+ subtitle: unref(subtitle),
1383
+ help: "analytics.ci-time"
1384
+ }, _attrs), {
1385
+ actions: withCtx((_, _push2, _parent2, _scopeId) => {
1386
+ if (_push2) {
1387
+ if (unref(deltaBadge)) {
1388
+ _push2(`<span class="${ssrRenderClass([unref(deltaBadge).class, "text-xs font-medium tabular-nums"])}"${_scopeId}>${ssrInterpolate(unref(deltaBadge).label)}</span>`);
1389
+ } else {
1390
+ _push2(`<!---->`);
1391
+ }
1392
+ } else {
1393
+ return [
1394
+ unref(deltaBadge) ? (openBlock(), createBlock("span", {
1395
+ key: 0,
1396
+ class: ["text-xs font-medium tabular-nums", unref(deltaBadge).class]
1397
+ }, toDisplayString(unref(deltaBadge).label), 3)) : createCommentVNode("", true)
1398
+ ];
1399
+ }
1400
+ }),
1401
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
1402
+ if (_push2) {
1403
+ if (unref(pending)) {
1404
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
1405
+ } else if (unref(error)) {
1406
+ _push2(ssrRenderComponent(_component_ErrorState, {
1407
+ text: `Couldn't load CI time: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
1408
+ }, {
1409
+ action: withCtx((_2, _push3, _parent3, _scopeId2) => {
1410
+ if (_push3) {
1411
+ _push3(ssrRenderComponent(_component_UButton, {
1412
+ size: "sm",
1413
+ color: "neutral",
1414
+ variant: "outline",
1415
+ icon: "i-lucide-refresh-cw",
1416
+ onClick: ($event) => unref(refresh)()
1417
+ }, {
1418
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
1419
+ if (_push4) {
1420
+ _push4(` Retry `);
1421
+ } else {
1422
+ return [
1423
+ createTextVNode(" Retry ")
1424
+ ];
1425
+ }
1426
+ }),
1427
+ _: 1
1428
+ }, _parent3, _scopeId2));
1429
+ } else {
1430
+ return [
1431
+ createVNode(_component_UButton, {
1432
+ size: "sm",
1433
+ color: "neutral",
1434
+ variant: "outline",
1435
+ icon: "i-lucide-refresh-cw",
1436
+ onClick: ($event) => unref(refresh)()
1437
+ }, {
1438
+ default: withCtx(() => [
1439
+ createTextVNode(" Retry ")
1440
+ ]),
1441
+ _: 1
1442
+ }, 8, ["onClick"])
1443
+ ];
1444
+ }
1445
+ }),
1446
+ _: 1
1447
+ }, _parent2, _scopeId));
1448
+ } else if (!unref(hasData)) {
1449
+ _push2(ssrRenderComponent(_component_EmptyState, { text: "No runs in this period." }, null, _parent2, _scopeId));
1450
+ } else {
1451
+ _push2(`<div class="w-full"${_scopeId}>`);
1452
+ _push2(ssrRenderComponent(_component_ChartFrame, {
1453
+ height: 220,
1454
+ "y-max": unref(yMax),
1455
+ "y-format": (value) => `${value}m`
1456
+ }, {
1457
+ default: withCtx(({ plotWidth, plotHeight, yScale }, _push3, _parent3, _scopeId2) => {
1458
+ if (_push3) {
1459
+ _push3(`<path${ssrRenderAttr("d", areaPath(plotWidth, plotHeight, yScale))} fill="rgba(59, 130, 246, 0.15)"${_scopeId2}></path><path${ssrRenderAttr("d", linePath(plotWidth, yScale))} fill="none"${ssrRenderAttr("stroke", lineColor)} stroke-width="2"${_scopeId2}></path><!--[-->`);
1460
+ ssrRenderList(xTicks(plotWidth), (tick) => {
1461
+ _push3(`<text${ssrRenderAttr("x", tick.x)}${ssrRenderAttr("y", plotHeight + 14)} text-anchor="middle" class="fill-gray-400 dark:fill-gray-500 text-[10px]"${_scopeId2}>${ssrInterpolate(tick.label)}</text>`);
1462
+ });
1463
+ _push3(`<!--]--><!--[-->`);
1464
+ ssrRenderList(unref(chartData), (d, i) => {
1465
+ _push3(`<rect${ssrRenderAttr("x", i * (plotWidth / unref(chartData).length))}${ssrRenderAttr("y", 0)}${ssrRenderAttr("width", plotWidth / unref(chartData).length)}${ssrRenderAttr("height", plotHeight)}${ssrRenderAttr("fill", unref(tooltipData) === d ? "rgb(148 163 184 / 0.15)" : "transparent")}${_scopeId2}></rect>`);
1466
+ });
1467
+ _push3(`<!--]-->`);
1468
+ } else {
1469
+ return [
1470
+ createVNode("path", {
1471
+ d: areaPath(plotWidth, plotHeight, yScale),
1472
+ fill: "rgba(59, 130, 246, 0.15)"
1473
+ }, null, 8, ["d"]),
1474
+ createVNode("path", {
1475
+ d: linePath(plotWidth, yScale),
1476
+ fill: "none",
1477
+ stroke: lineColor,
1478
+ "stroke-width": "2"
1479
+ }, null, 8, ["d"]),
1480
+ (openBlock(true), createBlock(Fragment, null, renderList(xTicks(plotWidth), (tick) => {
1481
+ return openBlock(), createBlock("text", {
1482
+ key: tick.x,
1483
+ x: tick.x,
1484
+ y: plotHeight + 14,
1485
+ "text-anchor": "middle",
1486
+ class: "fill-gray-400 dark:fill-gray-500 text-[10px]"
1487
+ }, toDisplayString(tick.label), 9, ["x", "y"]);
1488
+ }), 128)),
1489
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(chartData), (d, i) => {
1490
+ return openBlock(), createBlock("rect", {
1491
+ key: `hover-${d.date.getTime()}`,
1492
+ x: i * (plotWidth / unref(chartData).length),
1493
+ y: 0,
1494
+ width: plotWidth / unref(chartData).length,
1495
+ height: plotHeight,
1496
+ fill: unref(tooltipData) === d ? "rgb(148 163 184 / 0.15)" : "transparent",
1497
+ onMouseenter: ($event) => unref(show)($event, d),
1498
+ onMousemove: ($event) => unref(move)($event),
1499
+ onMouseleave: ($event) => unref(hide)()
1500
+ }, null, 40, ["x", "width", "height", "fill", "onMouseenter", "onMousemove", "onMouseleave"]);
1501
+ }), 128))
1502
+ ];
1503
+ }
1504
+ }),
1505
+ _: 1
1506
+ }, _parent2, _scopeId));
1507
+ if (unref(tooltipData)) {
1508
+ _push2(ssrRenderComponent(_component_ChartTooltip, { pos: unref(tooltipPos) }, {
1509
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1510
+ if (_push3) {
1511
+ _push3(`<div class="font-semibold mb-1"${_scopeId2}>${ssrInterpolate(unref(tooltipData).date.toLocaleDateString("en-US", { month: "short", day: "numeric" }))}</div><div${_scopeId2}>${ssrInterpolate(unref(tooltipData).totalMinutes)} minutes</div><div class="text-gray-400 text-xs"${_scopeId2}>${ssrInterpolate(unref(tooltipData).runCount)} runs</div>`);
1512
+ } else {
1513
+ return [
1514
+ createVNode("div", { class: "font-semibold mb-1" }, toDisplayString(unref(tooltipData).date.toLocaleDateString("en-US", { month: "short", day: "numeric" })), 1),
1515
+ createVNode("div", null, toDisplayString(unref(tooltipData).totalMinutes) + " minutes", 1),
1516
+ createVNode("div", { class: "text-gray-400 text-xs" }, toDisplayString(unref(tooltipData).runCount) + " runs", 1)
1517
+ ];
1518
+ }
1519
+ }),
1520
+ _: 1
1521
+ }, _parent2, _scopeId));
1522
+ } else {
1523
+ _push2(`<!---->`);
1524
+ }
1525
+ _push2(`</div>`);
1526
+ }
1527
+ } else {
1528
+ return [
1529
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
1530
+ key: 1,
1531
+ text: `Couldn't load CI time: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
1532
+ }, {
1533
+ action: withCtx(() => [
1534
+ createVNode(_component_UButton, {
1535
+ size: "sm",
1536
+ color: "neutral",
1537
+ variant: "outline",
1538
+ icon: "i-lucide-refresh-cw",
1539
+ onClick: ($event) => unref(refresh)()
1540
+ }, {
1541
+ default: withCtx(() => [
1542
+ createTextVNode(" Retry ")
1543
+ ]),
1544
+ _: 1
1545
+ }, 8, ["onClick"])
1546
+ ]),
1547
+ _: 1
1548
+ }, 8, ["text"])) : !unref(hasData) ? (openBlock(), createBlock(_component_EmptyState, {
1549
+ key: 2,
1550
+ text: "No runs in this period."
1551
+ })) : (openBlock(), createBlock("div", {
1552
+ key: 3,
1553
+ class: "w-full"
1554
+ }, [
1555
+ createVNode(_component_ChartFrame, {
1556
+ height: 220,
1557
+ "y-max": unref(yMax),
1558
+ "y-format": (value) => `${value}m`
1559
+ }, {
1560
+ default: withCtx(({ plotWidth, plotHeight, yScale }) => [
1561
+ createVNode("path", {
1562
+ d: areaPath(plotWidth, plotHeight, yScale),
1563
+ fill: "rgba(59, 130, 246, 0.15)"
1564
+ }, null, 8, ["d"]),
1565
+ createVNode("path", {
1566
+ d: linePath(plotWidth, yScale),
1567
+ fill: "none",
1568
+ stroke: lineColor,
1569
+ "stroke-width": "2"
1570
+ }, null, 8, ["d"]),
1571
+ (openBlock(true), createBlock(Fragment, null, renderList(xTicks(plotWidth), (tick) => {
1572
+ return openBlock(), createBlock("text", {
1573
+ key: tick.x,
1574
+ x: tick.x,
1575
+ y: plotHeight + 14,
1576
+ "text-anchor": "middle",
1577
+ class: "fill-gray-400 dark:fill-gray-500 text-[10px]"
1578
+ }, toDisplayString(tick.label), 9, ["x", "y"]);
1579
+ }), 128)),
1580
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(chartData), (d, i) => {
1581
+ return openBlock(), createBlock("rect", {
1582
+ key: `hover-${d.date.getTime()}`,
1583
+ x: i * (plotWidth / unref(chartData).length),
1584
+ y: 0,
1585
+ width: plotWidth / unref(chartData).length,
1586
+ height: plotHeight,
1587
+ fill: unref(tooltipData) === d ? "rgb(148 163 184 / 0.15)" : "transparent",
1588
+ onMouseenter: ($event) => unref(show)($event, d),
1589
+ onMousemove: ($event) => unref(move)($event),
1590
+ onMouseleave: ($event) => unref(hide)()
1591
+ }, null, 40, ["x", "width", "height", "fill", "onMouseenter", "onMousemove", "onMouseleave"]);
1592
+ }), 128))
1593
+ ]),
1594
+ _: 1
1595
+ }, 8, ["y-max", "y-format"]),
1596
+ unref(tooltipData) ? (openBlock(), createBlock(_component_ChartTooltip, {
1597
+ key: 0,
1598
+ pos: unref(tooltipPos)
1599
+ }, {
1600
+ default: withCtx(() => [
1601
+ createVNode("div", { class: "font-semibold mb-1" }, toDisplayString(unref(tooltipData).date.toLocaleDateString("en-US", { month: "short", day: "numeric" })), 1),
1602
+ createVNode("div", null, toDisplayString(unref(tooltipData).totalMinutes) + " minutes", 1),
1603
+ createVNode("div", { class: "text-gray-400 text-xs" }, toDisplayString(unref(tooltipData).runCount) + " runs", 1)
1604
+ ]),
1605
+ _: 1
1606
+ }, 8, ["pos"])) : createCommentVNode("", true)
1607
+ ]))
1608
+ ];
1609
+ }
1610
+ }),
1611
+ _: 1
1612
+ }, _parent));
1613
+ };
1614
+ }
1615
+ });
1616
+ const _sfc_setup$7 = _sfc_main$7.setup;
1617
+ _sfc_main$7.setup = (props, ctx) => {
1618
+ const ssrContext = useSSRContext();
1619
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/CiTimeTrendChart.vue");
1620
+ return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0;
1621
+ };
1622
+ const CiTimeTrendChart = Object.assign(_sfc_main$7, { __name: "CiTimeTrendChart" });
1623
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
1624
+ __name: "WastedTimeChart",
1625
+ __ssrInlineRender: true,
1626
+ props: {
1627
+ query: {}
1628
+ },
1629
+ async setup(__props) {
1630
+ let __temp, __restore;
1631
+ const props = __props;
1632
+ const {
1633
+ data: wasted,
1634
+ pending,
1635
+ error,
1636
+ refresh
1637
+ } = ([__temp, __restore] = withAsyncContext(() => useAnalyticsWidget("wasted-time", () => props.query)), __temp = await __temp, __restore(), __temp);
1638
+ const chartData = computed(
1639
+ () => wasted.value?.points.map((p) => ({
1640
+ date: new Date(p.date),
1641
+ waitMinutes: p.waitMinutes,
1642
+ failedExecMinutes: p.failedExecMinutes
1643
+ })) ?? []
1644
+ );
1645
+ const hasData = computed(() => chartData.value.some((p) => p.waitMinutes > 0 || p.failedExecMinutes > 0));
1646
+ const areaColors = ["rgb(245, 158, 11)", "rgb(239, 68, 68)"];
1647
+ const yMax = computed(() => Math.max(1, ...chartData.value.map((d) => d.waitMinutes + d.failedExecMinutes)));
1648
+ function layout(plotWidth, plotHeight, yScale) {
1649
+ const geo = barGeometry(chartData.value.length, plotWidth);
1650
+ return chartData.value.map((d, i) => ({
1651
+ d,
1652
+ slotX: i * geo.slotWidth,
1653
+ slotWidth: geo.slotWidth,
1654
+ barX: geo.xOf(i),
1655
+ barWidth: geo.barWidth,
1656
+ segments: stackSegments(
1657
+ [
1658
+ { color: areaColors[0], value: d.waitMinutes },
1659
+ { color: areaColors[1], value: d.failedExecMinutes }
1660
+ ],
1661
+ plotHeight,
1662
+ yScale
1663
+ )
1664
+ }));
1665
+ }
1666
+ function xTicks(plotWidth) {
1667
+ const { centerOf } = barGeometry(chartData.value.length, plotWidth);
1668
+ const dates = chartData.value.map((d) => d.date);
1669
+ return dayTickIndices(dates, Math.max(2, Math.floor(plotWidth / 80))).map((i) => ({
1670
+ x: centerOf(i),
1671
+ label: formatTickDate(dates[i])
1672
+ }));
1673
+ }
1674
+ const { data: tooltipData, pos: tooltipPos, show, move, hide } = useChartTooltip(240);
1675
+ const legendItems = [
1676
+ { color: areaColors[0], label: "Wait steps" },
1677
+ { color: areaColors[1], label: "Failed attempts" }
1678
+ ];
1679
+ const subtitle = computed(() => {
1680
+ if (!wasted.value) return void 0;
1681
+ const total = wasted.value.totalWaitMinutes + wasted.value.totalFailedExecMinutes;
1682
+ const label = total < 60 ? `${Math.round(total)} min` : `${Math.round(total / 60 * 10) / 10} h`;
1683
+ return `${label} of CI time produced no signal`;
1684
+ });
1685
+ const reclaim = computed(() => wasted.value?.timeoutReclaimable ?? null);
1686
+ const reclaimLabel = computed(() => {
1687
+ const m = reclaim.value?.estimatedMinutes ?? 0;
1688
+ return m < 60 ? `${Math.round(m)} min` : `${Math.round(m / 60 * 10) / 10} h`;
1689
+ });
1690
+ return (_ctx, _push, _parent, _attrs) => {
1691
+ const _component_ChartCard = __nuxt_component_0;
1692
+ const _component_LoadingState = __nuxt_component_13;
1693
+ const _component_ErrorState = __nuxt_component_5$1;
1694
+ const _component_UButton = _sfc_main$k;
1695
+ const _component_EmptyState = __nuxt_component_4$2;
1696
+ const _component_ChartFrame = __nuxt_component_5$2;
1697
+ const _component_ChartTooltip = __nuxt_component_6;
1698
+ const _component_UIcon = _sfc_main$p;
1699
+ const _component_NuxtLink = __nuxt_component_12;
1700
+ _push(ssrRenderComponent(_component_ChartCard, mergeProps({
1701
+ icon: "i-lucide-hourglass",
1702
+ title: "Wasted CI time",
1703
+ subtitle: unref(subtitle),
1704
+ help: "analytics.wasted-time",
1705
+ legend: legendItems
1706
+ }, _attrs), {
1707
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
1708
+ if (_push2) {
1709
+ if (unref(pending)) {
1710
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
1711
+ } else if (unref(error)) {
1712
+ _push2(ssrRenderComponent(_component_ErrorState, {
1713
+ text: `Couldn't load wasted time: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
1714
+ }, {
1715
+ action: withCtx((_2, _push3, _parent3, _scopeId2) => {
1716
+ if (_push3) {
1717
+ _push3(ssrRenderComponent(_component_UButton, {
1718
+ size: "sm",
1719
+ color: "neutral",
1720
+ variant: "outline",
1721
+ icon: "i-lucide-refresh-cw",
1722
+ onClick: ($event) => unref(refresh)()
1723
+ }, {
1724
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
1725
+ if (_push4) {
1726
+ _push4(` Retry `);
1727
+ } else {
1728
+ return [
1729
+ createTextVNode(" Retry ")
1730
+ ];
1731
+ }
1732
+ }),
1733
+ _: 1
1734
+ }, _parent3, _scopeId2));
1735
+ } else {
1736
+ return [
1737
+ createVNode(_component_UButton, {
1738
+ size: "sm",
1739
+ color: "neutral",
1740
+ variant: "outline",
1741
+ icon: "i-lucide-refresh-cw",
1742
+ onClick: ($event) => unref(refresh)()
1743
+ }, {
1744
+ default: withCtx(() => [
1745
+ createTextVNode(" Retry ")
1746
+ ]),
1747
+ _: 1
1748
+ }, 8, ["onClick"])
1749
+ ];
1750
+ }
1751
+ }),
1752
+ _: 1
1753
+ }, _parent2, _scopeId));
1754
+ } else if (!unref(hasData)) {
1755
+ _push2(ssrRenderComponent(_component_EmptyState, { text: "No wasted time recorded in this period." }, null, _parent2, _scopeId));
1756
+ } else {
1757
+ _push2(`<div class="w-full"${_scopeId}>`);
1758
+ _push2(ssrRenderComponent(_component_ChartFrame, {
1759
+ height: 220,
1760
+ "y-max": unref(yMax),
1761
+ "y-format": (value) => `${value}m`
1762
+ }, {
1763
+ default: withCtx(({ plotWidth, plotHeight, yScale }, _push3, _parent3, _scopeId2) => {
1764
+ if (_push3) {
1765
+ _push3(`<!--[-->`);
1766
+ ssrRenderList(layout(plotWidth, plotHeight, yScale), (bar) => {
1767
+ _push3(`<!--[--><!--[-->`);
1768
+ ssrRenderList(bar.segments, (segment) => {
1769
+ _push3(`<rect${ssrRenderAttr("x", bar.barX)}${ssrRenderAttr("y", segment.y)}${ssrRenderAttr("width", bar.barWidth)}${ssrRenderAttr("height", segment.height)}${ssrRenderAttr("fill", segment.color)}${_scopeId2}></rect>`);
1770
+ });
1771
+ _push3(`<!--]--><!--]-->`);
1772
+ });
1773
+ _push3(`<!--]--><!--[-->`);
1774
+ ssrRenderList(xTicks(plotWidth), (tick) => {
1775
+ _push3(`<text${ssrRenderAttr("x", tick.x)}${ssrRenderAttr("y", plotHeight + 14)} text-anchor="middle" class="fill-gray-400 dark:fill-gray-500 text-[10px]"${_scopeId2}>${ssrInterpolate(tick.label)}</text>`);
1776
+ });
1777
+ _push3(`<!--]--><!--[-->`);
1778
+ ssrRenderList(layout(plotWidth, plotHeight, yScale), (bar) => {
1779
+ _push3(`<rect${ssrRenderAttr("x", bar.slotX)}${ssrRenderAttr("y", 0)}${ssrRenderAttr("width", bar.slotWidth)}${ssrRenderAttr("height", plotHeight)}${ssrRenderAttr("fill", unref(tooltipData) === bar.d ? "rgb(148 163 184 / 0.15)" : "transparent")}${_scopeId2}></rect>`);
1780
+ });
1781
+ _push3(`<!--]-->`);
1782
+ } else {
1783
+ return [
1784
+ (openBlock(true), createBlock(Fragment, null, renderList(layout(plotWidth, plotHeight, yScale), (bar) => {
1785
+ return openBlock(), createBlock(Fragment, {
1786
+ key: bar.d.date.getTime()
1787
+ }, [
1788
+ (openBlock(true), createBlock(Fragment, null, renderList(bar.segments, (segment) => {
1789
+ return openBlock(), createBlock("rect", {
1790
+ key: segment.color,
1791
+ x: bar.barX,
1792
+ y: segment.y,
1793
+ width: bar.barWidth,
1794
+ height: segment.height,
1795
+ fill: segment.color
1796
+ }, null, 8, ["x", "y", "width", "height", "fill"]);
1797
+ }), 128))
1798
+ ], 64);
1799
+ }), 128)),
1800
+ (openBlock(true), createBlock(Fragment, null, renderList(xTicks(plotWidth), (tick) => {
1801
+ return openBlock(), createBlock("text", {
1802
+ key: tick.x,
1803
+ x: tick.x,
1804
+ y: plotHeight + 14,
1805
+ "text-anchor": "middle",
1806
+ class: "fill-gray-400 dark:fill-gray-500 text-[10px]"
1807
+ }, toDisplayString(tick.label), 9, ["x", "y"]);
1808
+ }), 128)),
1809
+ (openBlock(true), createBlock(Fragment, null, renderList(layout(plotWidth, plotHeight, yScale), (bar) => {
1810
+ return openBlock(), createBlock("rect", {
1811
+ key: `hover-${bar.d.date.getTime()}`,
1812
+ x: bar.slotX,
1813
+ y: 0,
1814
+ width: bar.slotWidth,
1815
+ height: plotHeight,
1816
+ fill: unref(tooltipData) === bar.d ? "rgb(148 163 184 / 0.15)" : "transparent",
1817
+ onMouseenter: ($event) => unref(show)($event, bar.d),
1818
+ onMousemove: ($event) => unref(move)($event),
1819
+ onMouseleave: ($event) => unref(hide)()
1820
+ }, null, 40, ["x", "width", "height", "fill", "onMouseenter", "onMousemove", "onMouseleave"]);
1821
+ }), 128))
1822
+ ];
1823
+ }
1824
+ }),
1825
+ _: 1
1826
+ }, _parent2, _scopeId));
1827
+ if (unref(tooltipData)) {
1828
+ _push2(ssrRenderComponent(_component_ChartTooltip, { pos: unref(tooltipPos) }, {
1829
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1830
+ if (_push3) {
1831
+ _push3(`<div class="font-semibold mb-1"${_scopeId2}>${ssrInterpolate(unref(tooltipData).date.toLocaleDateString("en-US", { month: "short", day: "numeric" }))}</div><div${_scopeId2}><span class="text-amber-500"${_scopeId2}>●</span> Wait steps: ${ssrInterpolate(unref(tooltipData).waitMinutes)} min</div><div${_scopeId2}><span class="text-red-500"${_scopeId2}>●</span> Failed attempts: ${ssrInterpolate(unref(tooltipData).failedExecMinutes)} min</div>`);
1832
+ } else {
1833
+ return [
1834
+ createVNode("div", { class: "font-semibold mb-1" }, toDisplayString(unref(tooltipData).date.toLocaleDateString("en-US", { month: "short", day: "numeric" })), 1),
1835
+ createVNode("div", null, [
1836
+ createVNode("span", { class: "text-amber-500" }, "●"),
1837
+ createTextVNode(" Wait steps: " + toDisplayString(unref(tooltipData).waitMinutes) + " min", 1)
1838
+ ]),
1839
+ createVNode("div", null, [
1840
+ createVNode("span", { class: "text-red-500" }, "●"),
1841
+ createTextVNode(" Failed attempts: " + toDisplayString(unref(tooltipData).failedExecMinutes) + " min", 1)
1842
+ ])
1843
+ ];
1844
+ }
1845
+ }),
1846
+ _: 1
1847
+ }, _parent2, _scopeId));
1848
+ } else {
1849
+ _push2(`<!---->`);
1850
+ }
1851
+ if (unref(reclaim)) {
1852
+ _push2(`<div class="mt-4 flex items-start gap-2 rounded-lg border border-amber-200 bg-amber-50 p-2.5 text-sm dark:border-amber-900/50 dark:bg-amber-950/30"${_scopeId}>`);
1853
+ _push2(ssrRenderComponent(_component_UIcon, {
1854
+ name: "i-lucide-scissors",
1855
+ class: "mt-0.5 shrink-0 text-amber-500"
1856
+ }, null, _parent2, _scopeId));
1857
+ _push2(`<div class="text-gray-700 dark:text-gray-300"${_scopeId}> Up to <span class="font-semibold"${_scopeId}>≈${ssrInterpolate(unref(reclaimLabel))}</span> of this is avoidable — ${ssrInterpolate(unref(reclaim).oversizedCount)} oversized ${ssrInterpolate(unref(reclaim).oversizedCount === 1 ? "timeout" : "timeouts")} and ${ssrInterpolate(unref(reclaim).staleSlowCount)} stale <code class="text-xs"${_scopeId}>test.slow()</code> ${ssrInterpolate(unref(reclaim).staleSlowCount === 1 ? "mark" : "marks")} inflate the failed-attempt time above. `);
1858
+ if (unref(reclaim).topProjectId) {
1859
+ _push2(ssrRenderComponent(_component_NuxtLink, {
1860
+ to: `/projects/${unref(reclaim).topProjectId}#performance`,
1861
+ class: "text-primary hover:underline"
1862
+ }, {
1863
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1864
+ if (_push3) {
1865
+ _push3(`Review`);
1866
+ } else {
1867
+ return [
1868
+ createTextVNode("Review")
1869
+ ];
1870
+ }
1871
+ }),
1872
+ _: 1
1873
+ }, _parent2, _scopeId));
1874
+ } else {
1875
+ _push2(`<!---->`);
1876
+ }
1877
+ _push2(`</div></div>`);
1878
+ } else {
1879
+ _push2(`<!---->`);
1880
+ }
1881
+ if (unref(wasted) && unref(wasted).byProject.length > 0) {
1882
+ _push2(`<div class="mt-4 space-y-1"${_scopeId}><!--[-->`);
1883
+ ssrRenderList(unref(wasted).byProject.slice(0, 5), (project) => {
1884
+ _push2(`<div class="flex items-center justify-between text-sm"${_scopeId}>`);
1885
+ _push2(ssrRenderComponent(_component_NuxtLink, {
1886
+ to: `/projects/${project.projectId}`,
1887
+ class: "truncate hover:text-primary"
1888
+ }, {
1889
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1890
+ if (_push3) {
1891
+ _push3(`${ssrInterpolate(project.label || project.name)}`);
1892
+ } else {
1893
+ return [
1894
+ createTextVNode(toDisplayString(project.label || project.name), 1)
1895
+ ];
1896
+ }
1897
+ }),
1898
+ _: 2
1899
+ }, _parent2, _scopeId));
1900
+ _push2(`<span class="tabular-nums text-gray-500 dark:text-gray-400 shrink-0"${_scopeId}>${ssrInterpolate(Math.round(project.waitMinutes + project.failedExecMinutes))} min </span></div>`);
1901
+ });
1902
+ _push2(`<!--]--></div>`);
1903
+ } else {
1904
+ _push2(`<!---->`);
1905
+ }
1906
+ _push2(`</div>`);
1907
+ }
1908
+ } else {
1909
+ return [
1910
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
1911
+ key: 1,
1912
+ text: `Couldn't load wasted time: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
1913
+ }, {
1914
+ action: withCtx(() => [
1915
+ createVNode(_component_UButton, {
1916
+ size: "sm",
1917
+ color: "neutral",
1918
+ variant: "outline",
1919
+ icon: "i-lucide-refresh-cw",
1920
+ onClick: ($event) => unref(refresh)()
1921
+ }, {
1922
+ default: withCtx(() => [
1923
+ createTextVNode(" Retry ")
1924
+ ]),
1925
+ _: 1
1926
+ }, 8, ["onClick"])
1927
+ ]),
1928
+ _: 1
1929
+ }, 8, ["text"])) : !unref(hasData) ? (openBlock(), createBlock(_component_EmptyState, {
1930
+ key: 2,
1931
+ text: "No wasted time recorded in this period."
1932
+ })) : (openBlock(), createBlock("div", {
1933
+ key: 3,
1934
+ class: "w-full"
1935
+ }, [
1936
+ createVNode(_component_ChartFrame, {
1937
+ height: 220,
1938
+ "y-max": unref(yMax),
1939
+ "y-format": (value) => `${value}m`
1940
+ }, {
1941
+ default: withCtx(({ plotWidth, plotHeight, yScale }) => [
1942
+ (openBlock(true), createBlock(Fragment, null, renderList(layout(plotWidth, plotHeight, yScale), (bar) => {
1943
+ return openBlock(), createBlock(Fragment, {
1944
+ key: bar.d.date.getTime()
1945
+ }, [
1946
+ (openBlock(true), createBlock(Fragment, null, renderList(bar.segments, (segment) => {
1947
+ return openBlock(), createBlock("rect", {
1948
+ key: segment.color,
1949
+ x: bar.barX,
1950
+ y: segment.y,
1951
+ width: bar.barWidth,
1952
+ height: segment.height,
1953
+ fill: segment.color
1954
+ }, null, 8, ["x", "y", "width", "height", "fill"]);
1955
+ }), 128))
1956
+ ], 64);
1957
+ }), 128)),
1958
+ (openBlock(true), createBlock(Fragment, null, renderList(xTicks(plotWidth), (tick) => {
1959
+ return openBlock(), createBlock("text", {
1960
+ key: tick.x,
1961
+ x: tick.x,
1962
+ y: plotHeight + 14,
1963
+ "text-anchor": "middle",
1964
+ class: "fill-gray-400 dark:fill-gray-500 text-[10px]"
1965
+ }, toDisplayString(tick.label), 9, ["x", "y"]);
1966
+ }), 128)),
1967
+ (openBlock(true), createBlock(Fragment, null, renderList(layout(plotWidth, plotHeight, yScale), (bar) => {
1968
+ return openBlock(), createBlock("rect", {
1969
+ key: `hover-${bar.d.date.getTime()}`,
1970
+ x: bar.slotX,
1971
+ y: 0,
1972
+ width: bar.slotWidth,
1973
+ height: plotHeight,
1974
+ fill: unref(tooltipData) === bar.d ? "rgb(148 163 184 / 0.15)" : "transparent",
1975
+ onMouseenter: ($event) => unref(show)($event, bar.d),
1976
+ onMousemove: ($event) => unref(move)($event),
1977
+ onMouseleave: ($event) => unref(hide)()
1978
+ }, null, 40, ["x", "width", "height", "fill", "onMouseenter", "onMousemove", "onMouseleave"]);
1979
+ }), 128))
1980
+ ]),
1981
+ _: 1
1982
+ }, 8, ["y-max", "y-format"]),
1983
+ unref(tooltipData) ? (openBlock(), createBlock(_component_ChartTooltip, {
1984
+ key: 0,
1985
+ pos: unref(tooltipPos)
1986
+ }, {
1987
+ default: withCtx(() => [
1988
+ createVNode("div", { class: "font-semibold mb-1" }, toDisplayString(unref(tooltipData).date.toLocaleDateString("en-US", { month: "short", day: "numeric" })), 1),
1989
+ createVNode("div", null, [
1990
+ createVNode("span", { class: "text-amber-500" }, "●"),
1991
+ createTextVNode(" Wait steps: " + toDisplayString(unref(tooltipData).waitMinutes) + " min", 1)
1992
+ ]),
1993
+ createVNode("div", null, [
1994
+ createVNode("span", { class: "text-red-500" }, "●"),
1995
+ createTextVNode(" Failed attempts: " + toDisplayString(unref(tooltipData).failedExecMinutes) + " min", 1)
1996
+ ])
1997
+ ]),
1998
+ _: 1
1999
+ }, 8, ["pos"])) : createCommentVNode("", true),
2000
+ unref(reclaim) ? (openBlock(), createBlock("div", {
2001
+ key: 1,
2002
+ class: "mt-4 flex items-start gap-2 rounded-lg border border-amber-200 bg-amber-50 p-2.5 text-sm dark:border-amber-900/50 dark:bg-amber-950/30"
2003
+ }, [
2004
+ createVNode(_component_UIcon, {
2005
+ name: "i-lucide-scissors",
2006
+ class: "mt-0.5 shrink-0 text-amber-500"
2007
+ }),
2008
+ createVNode("div", { class: "text-gray-700 dark:text-gray-300" }, [
2009
+ createTextVNode(" Up to "),
2010
+ createVNode("span", { class: "font-semibold" }, "≈" + toDisplayString(unref(reclaimLabel)), 1),
2011
+ createTextVNode(" of this is avoidable — " + toDisplayString(unref(reclaim).oversizedCount) + " oversized " + toDisplayString(unref(reclaim).oversizedCount === 1 ? "timeout" : "timeouts") + " and " + toDisplayString(unref(reclaim).staleSlowCount) + " stale ", 1),
2012
+ createVNode("code", { class: "text-xs" }, "test.slow()"),
2013
+ createTextVNode(" " + toDisplayString(unref(reclaim).staleSlowCount === 1 ? "mark" : "marks") + " inflate the failed-attempt time above. ", 1),
2014
+ unref(reclaim).topProjectId ? (openBlock(), createBlock(_component_NuxtLink, {
2015
+ key: 0,
2016
+ to: `/projects/${unref(reclaim).topProjectId}#performance`,
2017
+ class: "text-primary hover:underline"
2018
+ }, {
2019
+ default: withCtx(() => [
2020
+ createTextVNode("Review")
2021
+ ]),
2022
+ _: 1
2023
+ }, 8, ["to"])) : createCommentVNode("", true)
2024
+ ])
2025
+ ])) : createCommentVNode("", true),
2026
+ unref(wasted) && unref(wasted).byProject.length > 0 ? (openBlock(), createBlock("div", {
2027
+ key: 2,
2028
+ class: "mt-4 space-y-1"
2029
+ }, [
2030
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(wasted).byProject.slice(0, 5), (project) => {
2031
+ return openBlock(), createBlock("div", {
2032
+ key: project.projectId,
2033
+ class: "flex items-center justify-between text-sm"
2034
+ }, [
2035
+ createVNode(_component_NuxtLink, {
2036
+ to: `/projects/${project.projectId}`,
2037
+ class: "truncate hover:text-primary"
2038
+ }, {
2039
+ default: withCtx(() => [
2040
+ createTextVNode(toDisplayString(project.label || project.name), 1)
2041
+ ]),
2042
+ _: 2
2043
+ }, 1032, ["to"]),
2044
+ createVNode("span", { class: "tabular-nums text-gray-500 dark:text-gray-400 shrink-0" }, toDisplayString(Math.round(project.waitMinutes + project.failedExecMinutes)) + " min ", 1)
2045
+ ]);
2046
+ }), 128))
2047
+ ])) : createCommentVNode("", true)
2048
+ ]))
2049
+ ];
2050
+ }
2051
+ }),
2052
+ _: 1
2053
+ }, _parent));
2054
+ };
2055
+ }
2056
+ });
2057
+ const _sfc_setup$6 = _sfc_main$6.setup;
2058
+ _sfc_main$6.setup = (props, ctx) => {
2059
+ const ssrContext = useSSRContext();
2060
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/WastedTimeChart.vue");
2061
+ return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
2062
+ };
2063
+ const WastedTimeChart = Object.assign(_sfc_main$6, { __name: "WastedTimeChart" });
2064
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2065
+ __name: "GlobalFlakyLeaderboard",
2066
+ __ssrInlineRender: true,
2067
+ props: {
2068
+ query: {}
2069
+ },
2070
+ async setup(__props) {
2071
+ let __temp, __restore;
2072
+ const props = __props;
2073
+ const {
2074
+ data: rows,
2075
+ pending,
2076
+ error,
2077
+ refresh
2078
+ } = ([__temp, __restore] = withAsyncContext(() => useAnalyticsWidget("flaky-leaderboard", () => props.query)), __temp = await __temp, __restore(), __temp);
2079
+ function scoreColor(score) {
2080
+ if (score >= 60) return "text-red-600 dark:text-red-400";
2081
+ if (score >= 30) return "text-amber-600 dark:text-amber-400";
2082
+ return "text-gray-500";
2083
+ }
2084
+ function flakeSummary(row) {
2085
+ if (row.retryPassRuns > 0) return `flaked ${row.retryPassRuns}/${row.totalRuns} runs`;
2086
+ return `${row.alternations} status flips in ${row.totalRuns} runs`;
2087
+ }
2088
+ return (_ctx, _push, _parent, _attrs) => {
2089
+ const _component_SectionCard = __nuxt_component_11;
2090
+ const _component_LoadingState = __nuxt_component_13;
2091
+ const _component_ErrorState = __nuxt_component_5$1;
2092
+ const _component_UButton = _sfc_main$k;
2093
+ const _component_EmptyState = __nuxt_component_4$2;
2094
+ const _component_NuxtLink = __nuxt_component_12;
2095
+ const _component_TagBadge = __nuxt_component_4$3;
2096
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
2097
+ icon: "i-lucide-repeat",
2098
+ title: "Flakiest tests",
2099
+ count: unref(rows)?.length || void 0,
2100
+ subtitle: "Across all projects, sorted by impact",
2101
+ help: "analytics.flaky-leaderboard"
2102
+ }, _attrs), {
2103
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
2104
+ if (_push2) {
2105
+ if (unref(pending)) {
2106
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
2107
+ } else if (unref(error)) {
2108
+ _push2(ssrRenderComponent(_component_ErrorState, {
2109
+ text: `Couldn't load flaky tests: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
2110
+ }, {
2111
+ action: withCtx((_2, _push3, _parent3, _scopeId2) => {
2112
+ if (_push3) {
2113
+ _push3(ssrRenderComponent(_component_UButton, {
2114
+ size: "sm",
2115
+ color: "neutral",
2116
+ variant: "outline",
2117
+ icon: "i-lucide-refresh-cw",
2118
+ onClick: ($event) => unref(refresh)()
2119
+ }, {
2120
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
2121
+ if (_push4) {
2122
+ _push4(` Retry `);
2123
+ } else {
2124
+ return [
2125
+ createTextVNode(" Retry ")
2126
+ ];
2127
+ }
2128
+ }),
2129
+ _: 1
2130
+ }, _parent3, _scopeId2));
2131
+ } else {
2132
+ return [
2133
+ createVNode(_component_UButton, {
2134
+ size: "sm",
2135
+ color: "neutral",
2136
+ variant: "outline",
2137
+ icon: "i-lucide-refresh-cw",
2138
+ onClick: ($event) => unref(refresh)()
2139
+ }, {
2140
+ default: withCtx(() => [
2141
+ createTextVNode(" Retry ")
2142
+ ]),
2143
+ _: 1
2144
+ }, 8, ["onClick"])
2145
+ ];
2146
+ }
2147
+ }),
2148
+ _: 1
2149
+ }, _parent2, _scopeId));
2150
+ } else if (!unref(rows) || unref(rows).length === 0) {
2151
+ _push2(ssrRenderComponent(_component_EmptyState, { text: "No flaky tests detected. Nice and stable." }, null, _parent2, _scopeId));
2152
+ } else {
2153
+ _push2(`<div class="divide-y divide-gray-100 dark:divide-gray-800"${_scopeId}><!--[-->`);
2154
+ ssrRenderList(unref(rows), (row) => {
2155
+ _push2(ssrRenderComponent(_component_NuxtLink, {
2156
+ key: `${row.projectId}-${row.testCaseId}`,
2157
+ to: `/test-cases/${row.testCaseId}`,
2158
+ class: "flex items-center gap-3 py-2.5 hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded transition-colors"
2159
+ }, {
2160
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
2161
+ if (_push3) {
2162
+ _push3(`<span class="${ssrRenderClass([scoreColor(row.score), "tabular-nums font-bold text-sm w-10 text-right shrink-0"])}"${_scopeId2}>${ssrInterpolate(row.score)}</span><div class="flex-1 min-w-0"${_scopeId2}><p class="text-sm font-medium truncate"${_scopeId2}>${ssrInterpolate(row.title)}</p><p class="text-xs text-gray-500 dark:text-gray-400 truncate"${_scopeId2}>${ssrInterpolate(row.projectLabel || row.projectName)} · ${ssrInterpolate(flakeSummary(row))} `);
2163
+ if (row.lastFlakeAt) {
2164
+ _push3(`<!--[--> · last ${ssrInterpolate(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(row.lastFlakeAt))}<!--]-->`);
2165
+ } else {
2166
+ _push3(`<!---->`);
2167
+ }
2168
+ _push3(`</p></div><div class="text-right shrink-0"${_scopeId2}><p class="${ssrRenderClass([
2169
+ row.wastedCiMinutes >= 30 ? "text-red-600 dark:text-red-400" : row.wastedCiMinutes >= 5 ? "text-amber-600 dark:text-amber-400" : "text-gray-500",
2170
+ "text-sm tabular-nums"
2171
+ ])}"${_scopeId2}>${ssrInterpolate(Math.round(row.wastedCiMinutes))} min </p>`);
2172
+ if (row.rootCause) {
2173
+ _push3(ssrRenderComponent(_component_TagBadge, {
2174
+ text: row.rootCause,
2175
+ color: "neutral"
2176
+ }, null, _parent3, _scopeId2));
2177
+ } else {
2178
+ _push3(`<!---->`);
2179
+ }
2180
+ _push3(`</div>`);
2181
+ } else {
2182
+ return [
2183
+ createVNode("span", {
2184
+ class: ["tabular-nums font-bold text-sm w-10 text-right shrink-0", scoreColor(row.score)]
2185
+ }, toDisplayString(row.score), 3),
2186
+ createVNode("div", { class: "flex-1 min-w-0" }, [
2187
+ createVNode("p", { class: "text-sm font-medium truncate" }, toDisplayString(row.title), 1),
2188
+ createVNode("p", { class: "text-xs text-gray-500 dark:text-gray-400 truncate" }, [
2189
+ createTextVNode(toDisplayString(row.projectLabel || row.projectName) + " · " + toDisplayString(flakeSummary(row)) + " ", 1),
2190
+ row.lastFlakeAt ? (openBlock(), createBlock(Fragment, { key: 0 }, [
2191
+ createTextVNode(" · last " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(row.lastFlakeAt)), 1)
2192
+ ], 64)) : createCommentVNode("", true)
2193
+ ])
2194
+ ]),
2195
+ createVNode("div", { class: "text-right shrink-0" }, [
2196
+ createVNode("p", {
2197
+ class: [
2198
+ "text-sm tabular-nums",
2199
+ row.wastedCiMinutes >= 30 ? "text-red-600 dark:text-red-400" : row.wastedCiMinutes >= 5 ? "text-amber-600 dark:text-amber-400" : "text-gray-500"
2200
+ ]
2201
+ }, toDisplayString(Math.round(row.wastedCiMinutes)) + " min ", 3),
2202
+ row.rootCause ? (openBlock(), createBlock(_component_TagBadge, {
2203
+ key: 0,
2204
+ text: row.rootCause,
2205
+ color: "neutral"
2206
+ }, null, 8, ["text"])) : createCommentVNode("", true)
2207
+ ])
2208
+ ];
2209
+ }
2210
+ }),
2211
+ _: 2
2212
+ }, _parent2, _scopeId));
2213
+ });
2214
+ _push2(`<!--]--></div>`);
2215
+ }
2216
+ } else {
2217
+ return [
2218
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
2219
+ key: 1,
2220
+ text: `Couldn't load flaky tests: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
2221
+ }, {
2222
+ action: withCtx(() => [
2223
+ createVNode(_component_UButton, {
2224
+ size: "sm",
2225
+ color: "neutral",
2226
+ variant: "outline",
2227
+ icon: "i-lucide-refresh-cw",
2228
+ onClick: ($event) => unref(refresh)()
2229
+ }, {
2230
+ default: withCtx(() => [
2231
+ createTextVNode(" Retry ")
2232
+ ]),
2233
+ _: 1
2234
+ }, 8, ["onClick"])
2235
+ ]),
2236
+ _: 1
2237
+ }, 8, ["text"])) : !unref(rows) || unref(rows).length === 0 ? (openBlock(), createBlock(_component_EmptyState, {
2238
+ key: 2,
2239
+ text: "No flaky tests detected. Nice and stable."
2240
+ })) : (openBlock(), createBlock("div", {
2241
+ key: 3,
2242
+ class: "divide-y divide-gray-100 dark:divide-gray-800"
2243
+ }, [
2244
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(rows), (row) => {
2245
+ return openBlock(), createBlock(_component_NuxtLink, {
2246
+ key: `${row.projectId}-${row.testCaseId}`,
2247
+ to: `/test-cases/${row.testCaseId}`,
2248
+ class: "flex items-center gap-3 py-2.5 hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded transition-colors"
2249
+ }, {
2250
+ default: withCtx(() => [
2251
+ createVNode("span", {
2252
+ class: ["tabular-nums font-bold text-sm w-10 text-right shrink-0", scoreColor(row.score)]
2253
+ }, toDisplayString(row.score), 3),
2254
+ createVNode("div", { class: "flex-1 min-w-0" }, [
2255
+ createVNode("p", { class: "text-sm font-medium truncate" }, toDisplayString(row.title), 1),
2256
+ createVNode("p", { class: "text-xs text-gray-500 dark:text-gray-400 truncate" }, [
2257
+ createTextVNode(toDisplayString(row.projectLabel || row.projectName) + " · " + toDisplayString(flakeSummary(row)) + " ", 1),
2258
+ row.lastFlakeAt ? (openBlock(), createBlock(Fragment, { key: 0 }, [
2259
+ createTextVNode(" · last " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(row.lastFlakeAt)), 1)
2260
+ ], 64)) : createCommentVNode("", true)
2261
+ ])
2262
+ ]),
2263
+ createVNode("div", { class: "text-right shrink-0" }, [
2264
+ createVNode("p", {
2265
+ class: [
2266
+ "text-sm tabular-nums",
2267
+ row.wastedCiMinutes >= 30 ? "text-red-600 dark:text-red-400" : row.wastedCiMinutes >= 5 ? "text-amber-600 dark:text-amber-400" : "text-gray-500"
2268
+ ]
2269
+ }, toDisplayString(Math.round(row.wastedCiMinutes)) + " min ", 3),
2270
+ row.rootCause ? (openBlock(), createBlock(_component_TagBadge, {
2271
+ key: 0,
2272
+ text: row.rootCause,
2273
+ color: "neutral"
2274
+ }, null, 8, ["text"])) : createCommentVNode("", true)
2275
+ ])
2276
+ ]),
2277
+ _: 2
2278
+ }, 1032, ["to"]);
2279
+ }), 128))
2280
+ ]))
2281
+ ];
2282
+ }
2283
+ }),
2284
+ _: 1
2285
+ }, _parent));
2286
+ };
2287
+ }
2288
+ });
2289
+ const _sfc_setup$5 = _sfc_main$5.setup;
2290
+ _sfc_main$5.setup = (props, ctx) => {
2291
+ const ssrContext = useSSRContext();
2292
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/GlobalFlakyLeaderboard.vue");
2293
+ return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
2294
+ };
2295
+ const GlobalFlakyLeaderboard = Object.assign(_sfc_main$5, { __name: "GlobalFlakyLeaderboard" });
2296
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2297
+ __name: "ClusterLandscape",
2298
+ __ssrInlineRender: true,
2299
+ props: {
2300
+ query: {}
2301
+ },
2302
+ async setup(__props) {
2303
+ let __temp, __restore;
2304
+ const props = __props;
2305
+ const {
2306
+ data: landscape,
2307
+ pending,
2308
+ error,
2309
+ refresh
2310
+ } = ([__temp, __restore] = withAsyncContext(() => useAnalyticsWidget("cluster-landscape", () => props.query)), __temp = await __temp, __restore(), __temp);
2311
+ function ageClass(ageDays) {
2312
+ if (ageDays >= 30) return "text-red-600 dark:text-red-400";
2313
+ if (ageDays >= 14) return "text-amber-600 dark:text-amber-400";
2314
+ return "text-gray-500";
2315
+ }
2316
+ return (_ctx, _push, _parent, _attrs) => {
2317
+ const _component_SectionCard = __nuxt_component_11;
2318
+ const _component_LoadingState = __nuxt_component_13;
2319
+ const _component_ErrorState = __nuxt_component_5$1;
2320
+ const _component_UButton = _sfc_main$k;
2321
+ const _component_EmptyState = __nuxt_component_4$2;
2322
+ const _component_StatTileGrid = __nuxt_component_1;
2323
+ const _component_StatTile = __nuxt_component_2;
2324
+ const _component_UBadge = _sfc_main$7$1;
2325
+ const _component_NuxtLink = __nuxt_component_12;
2326
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
2327
+ icon: "i-lucide-layers",
2328
+ title: "Failure clusters",
2329
+ subtitle: "Open root causes across all projects",
2330
+ help: "analytics.cluster-landscape"
2331
+ }, _attrs), {
2332
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
2333
+ if (_push2) {
2334
+ if (unref(pending)) {
2335
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
2336
+ } else if (unref(error)) {
2337
+ _push2(ssrRenderComponent(_component_ErrorState, {
2338
+ text: `Couldn't load clusters: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
2339
+ }, {
2340
+ action: withCtx((_2, _push3, _parent3, _scopeId2) => {
2341
+ if (_push3) {
2342
+ _push3(ssrRenderComponent(_component_UButton, {
2343
+ size: "sm",
2344
+ color: "neutral",
2345
+ variant: "outline",
2346
+ icon: "i-lucide-refresh-cw",
2347
+ onClick: ($event) => unref(refresh)()
2348
+ }, {
2349
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
2350
+ if (_push4) {
2351
+ _push4(` Retry `);
2352
+ } else {
2353
+ return [
2354
+ createTextVNode(" Retry ")
2355
+ ];
2356
+ }
2357
+ }),
2358
+ _: 1
2359
+ }, _parent3, _scopeId2));
2360
+ } else {
2361
+ return [
2362
+ createVNode(_component_UButton, {
2363
+ size: "sm",
2364
+ color: "neutral",
2365
+ variant: "outline",
2366
+ icon: "i-lucide-refresh-cw",
2367
+ onClick: ($event) => unref(refresh)()
2368
+ }, {
2369
+ default: withCtx(() => [
2370
+ createTextVNode(" Retry ")
2371
+ ]),
2372
+ _: 1
2373
+ }, 8, ["onClick"])
2374
+ ];
2375
+ }
2376
+ }),
2377
+ _: 1
2378
+ }, _parent2, _scopeId));
2379
+ } else if (!unref(landscape) || unref(landscape).totalOpen === 0 && unref(landscape).resolvedInPeriod === 0) {
2380
+ _push2(ssrRenderComponent(_component_EmptyState, {
2381
+ icon: "i-lucide-check-circle",
2382
+ text: "No open failure clusters."
2383
+ }, null, _parent2, _scopeId));
2384
+ } else {
2385
+ _push2(`<div class="space-y-4"${_scopeId}>`);
2386
+ _push2(ssrRenderComponent(_component_StatTileGrid, null, {
2387
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
2388
+ if (_push3) {
2389
+ _push3(ssrRenderComponent(_component_StatTile, {
2390
+ label: "Open",
2391
+ value: unref(landscape).totalOpen,
2392
+ "value-class": unref(landscape).totalOpen > 0 ? "text-red-600 dark:text-red-400" : ""
2393
+ }, null, _parent3, _scopeId2));
2394
+ _push3(ssrRenderComponent(_component_StatTile, {
2395
+ label: "Resolved this period",
2396
+ value: unref(landscape).resolvedInPeriod
2397
+ }, null, _parent3, _scopeId2));
2398
+ _push3(ssrRenderComponent(_component_StatTile, {
2399
+ label: "Oldest open",
2400
+ value: unref(landscape).clusters.length > 0 ? `${Math.max(...unref(landscape).clusters.map((c) => c.ageDays))} d` : "—",
2401
+ size: "lg"
2402
+ }, null, _parent3, _scopeId2));
2403
+ } else {
2404
+ return [
2405
+ createVNode(_component_StatTile, {
2406
+ label: "Open",
2407
+ value: unref(landscape).totalOpen,
2408
+ "value-class": unref(landscape).totalOpen > 0 ? "text-red-600 dark:text-red-400" : ""
2409
+ }, null, 8, ["value", "value-class"]),
2410
+ createVNode(_component_StatTile, {
2411
+ label: "Resolved this period",
2412
+ value: unref(landscape).resolvedInPeriod
2413
+ }, null, 8, ["value"]),
2414
+ createVNode(_component_StatTile, {
2415
+ label: "Oldest open",
2416
+ value: unref(landscape).clusters.length > 0 ? `${Math.max(...unref(landscape).clusters.map((c) => c.ageDays))} d` : "—",
2417
+ size: "lg"
2418
+ }, null, 8, ["value"])
2419
+ ];
2420
+ }
2421
+ }),
2422
+ _: 1
2423
+ }, _parent2, _scopeId));
2424
+ if (unref(landscape).byErrorType.length > 0) {
2425
+ _push2(`<div class="flex flex-wrap gap-1.5"${_scopeId}><!--[-->`);
2426
+ ssrRenderList(unref(landscape).byErrorType, (entry) => {
2427
+ _push2(ssrRenderComponent(_component_UBadge, {
2428
+ key: entry.errorType,
2429
+ color: ("clusterErrorTypeColor" in _ctx ? _ctx.clusterErrorTypeColor : unref(clusterErrorTypeColor))(entry.errorType),
2430
+ variant: "subtle",
2431
+ size: "sm"
2432
+ }, {
2433
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
2434
+ if (_push3) {
2435
+ _push3(`${ssrInterpolate(entry.errorType)} · ${ssrInterpolate(entry.count)}`);
2436
+ } else {
2437
+ return [
2438
+ createTextVNode(toDisplayString(entry.errorType) + " · " + toDisplayString(entry.count), 1)
2439
+ ];
2440
+ }
2441
+ }),
2442
+ _: 2
2443
+ }, _parent2, _scopeId));
2444
+ });
2445
+ _push2(`<!--]--></div>`);
2446
+ } else {
2447
+ _push2(`<!---->`);
2448
+ }
2449
+ _push2(`<div class="divide-y divide-gray-100 dark:divide-gray-800"${_scopeId}><!--[-->`);
2450
+ ssrRenderList(unref(landscape).clusters.slice(0, 8), (cluster) => {
2451
+ _push2(ssrRenderComponent(_component_NuxtLink, {
2452
+ key: cluster.id,
2453
+ to: `/failure-clusters/${cluster.id}`,
2454
+ class: "flex items-center gap-3 py-2.5 hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded transition-colors"
2455
+ }, {
2456
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
2457
+ if (_push3) {
2458
+ _push3(`<div class="flex-1 min-w-0"${_scopeId2}><p class="text-sm font-medium truncate"${_scopeId2}>${ssrInterpolate(cluster.title || cluster.signature)}</p><p class="text-xs text-gray-500 dark:text-gray-400 truncate"${_scopeId2}>${ssrInterpolate(cluster.projectLabel || cluster.projectName)} `);
2459
+ if (cluster.errorType) {
2460
+ _push3(`<!--[--> · ${ssrInterpolate(cluster.errorType)}<!--]-->`);
2461
+ } else {
2462
+ _push3(`<!---->`);
2463
+ }
2464
+ _push3(`</p></div><div class="text-right text-xs shrink-0"${_scopeId2}><p class="tabular-nums font-medium"${_scopeId2}>${ssrInterpolate(cluster.occurrences)}×</p><p class="${ssrRenderClass([ageClass(cluster.ageDays), "tabular-nums"])}"${_scopeId2}>${ssrInterpolate(cluster.ageDays)} d open</p></div>`);
2465
+ } else {
2466
+ return [
2467
+ createVNode("div", { class: "flex-1 min-w-0" }, [
2468
+ createVNode("p", { class: "text-sm font-medium truncate" }, toDisplayString(cluster.title || cluster.signature), 1),
2469
+ createVNode("p", { class: "text-xs text-gray-500 dark:text-gray-400 truncate" }, [
2470
+ createTextVNode(toDisplayString(cluster.projectLabel || cluster.projectName) + " ", 1),
2471
+ cluster.errorType ? (openBlock(), createBlock(Fragment, { key: 0 }, [
2472
+ createTextVNode(" · " + toDisplayString(cluster.errorType), 1)
2473
+ ], 64)) : createCommentVNode("", true)
2474
+ ])
2475
+ ]),
2476
+ createVNode("div", { class: "text-right text-xs shrink-0" }, [
2477
+ createVNode("p", { class: "tabular-nums font-medium" }, toDisplayString(cluster.occurrences) + "×", 1),
2478
+ createVNode("p", {
2479
+ class: ["tabular-nums", ageClass(cluster.ageDays)]
2480
+ }, toDisplayString(cluster.ageDays) + " d open", 3)
2481
+ ])
2482
+ ];
2483
+ }
2484
+ }),
2485
+ _: 2
2486
+ }, _parent2, _scopeId));
2487
+ });
2488
+ _push2(`<!--]--></div></div>`);
2489
+ }
2490
+ } else {
2491
+ return [
2492
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
2493
+ key: 1,
2494
+ text: `Couldn't load clusters: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
2495
+ }, {
2496
+ action: withCtx(() => [
2497
+ createVNode(_component_UButton, {
2498
+ size: "sm",
2499
+ color: "neutral",
2500
+ variant: "outline",
2501
+ icon: "i-lucide-refresh-cw",
2502
+ onClick: ($event) => unref(refresh)()
2503
+ }, {
2504
+ default: withCtx(() => [
2505
+ createTextVNode(" Retry ")
2506
+ ]),
2507
+ _: 1
2508
+ }, 8, ["onClick"])
2509
+ ]),
2510
+ _: 1
2511
+ }, 8, ["text"])) : !unref(landscape) || unref(landscape).totalOpen === 0 && unref(landscape).resolvedInPeriod === 0 ? (openBlock(), createBlock(_component_EmptyState, {
2512
+ key: 2,
2513
+ icon: "i-lucide-check-circle",
2514
+ text: "No open failure clusters."
2515
+ })) : (openBlock(), createBlock("div", {
2516
+ key: 3,
2517
+ class: "space-y-4"
2518
+ }, [
2519
+ createVNode(_component_StatTileGrid, null, {
2520
+ default: withCtx(() => [
2521
+ createVNode(_component_StatTile, {
2522
+ label: "Open",
2523
+ value: unref(landscape).totalOpen,
2524
+ "value-class": unref(landscape).totalOpen > 0 ? "text-red-600 dark:text-red-400" : ""
2525
+ }, null, 8, ["value", "value-class"]),
2526
+ createVNode(_component_StatTile, {
2527
+ label: "Resolved this period",
2528
+ value: unref(landscape).resolvedInPeriod
2529
+ }, null, 8, ["value"]),
2530
+ createVNode(_component_StatTile, {
2531
+ label: "Oldest open",
2532
+ value: unref(landscape).clusters.length > 0 ? `${Math.max(...unref(landscape).clusters.map((c) => c.ageDays))} d` : "—",
2533
+ size: "lg"
2534
+ }, null, 8, ["value"])
2535
+ ]),
2536
+ _: 1
2537
+ }),
2538
+ unref(landscape).byErrorType.length > 0 ? (openBlock(), createBlock("div", {
2539
+ key: 0,
2540
+ class: "flex flex-wrap gap-1.5"
2541
+ }, [
2542
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(landscape).byErrorType, (entry) => {
2543
+ return openBlock(), createBlock(_component_UBadge, {
2544
+ key: entry.errorType,
2545
+ color: ("clusterErrorTypeColor" in _ctx ? _ctx.clusterErrorTypeColor : unref(clusterErrorTypeColor))(entry.errorType),
2546
+ variant: "subtle",
2547
+ size: "sm"
2548
+ }, {
2549
+ default: withCtx(() => [
2550
+ createTextVNode(toDisplayString(entry.errorType) + " · " + toDisplayString(entry.count), 1)
2551
+ ]),
2552
+ _: 2
2553
+ }, 1032, ["color"]);
2554
+ }), 128))
2555
+ ])) : createCommentVNode("", true),
2556
+ createVNode("div", { class: "divide-y divide-gray-100 dark:divide-gray-800" }, [
2557
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(landscape).clusters.slice(0, 8), (cluster) => {
2558
+ return openBlock(), createBlock(_component_NuxtLink, {
2559
+ key: cluster.id,
2560
+ to: `/failure-clusters/${cluster.id}`,
2561
+ class: "flex items-center gap-3 py-2.5 hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded transition-colors"
2562
+ }, {
2563
+ default: withCtx(() => [
2564
+ createVNode("div", { class: "flex-1 min-w-0" }, [
2565
+ createVNode("p", { class: "text-sm font-medium truncate" }, toDisplayString(cluster.title || cluster.signature), 1),
2566
+ createVNode("p", { class: "text-xs text-gray-500 dark:text-gray-400 truncate" }, [
2567
+ createTextVNode(toDisplayString(cluster.projectLabel || cluster.projectName) + " ", 1),
2568
+ cluster.errorType ? (openBlock(), createBlock(Fragment, { key: 0 }, [
2569
+ createTextVNode(" · " + toDisplayString(cluster.errorType), 1)
2570
+ ], 64)) : createCommentVNode("", true)
2571
+ ])
2572
+ ]),
2573
+ createVNode("div", { class: "text-right text-xs shrink-0" }, [
2574
+ createVNode("p", { class: "tabular-nums font-medium" }, toDisplayString(cluster.occurrences) + "×", 1),
2575
+ createVNode("p", {
2576
+ class: ["tabular-nums", ageClass(cluster.ageDays)]
2577
+ }, toDisplayString(cluster.ageDays) + " d open", 3)
2578
+ ])
2579
+ ]),
2580
+ _: 2
2581
+ }, 1032, ["to"]);
2582
+ }), 128))
2583
+ ])
2584
+ ]))
2585
+ ];
2586
+ }
2587
+ }),
2588
+ _: 1
2589
+ }, _parent));
2590
+ };
2591
+ }
2592
+ });
2593
+ const _sfc_setup$4 = _sfc_main$4.setup;
2594
+ _sfc_main$4.setup = (props, ctx) => {
2595
+ const ssrContext = useSSRContext();
2596
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/ClusterLandscape.vue");
2597
+ return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
2598
+ };
2599
+ const ClusterLandscape = Object.assign(_sfc_main$4, { __name: "ClusterLandscape" });
2600
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2601
+ __name: "RegressionVelocityChart",
2602
+ __ssrInlineRender: true,
2603
+ props: {
2604
+ query: {}
2605
+ },
2606
+ async setup(__props) {
2607
+ let __temp, __restore;
2608
+ const props = __props;
2609
+ const {
2610
+ data: velocity,
2611
+ pending,
2612
+ error,
2613
+ refresh
2614
+ } = ([__temp, __restore] = withAsyncContext(() => useAnalyticsWidget("regression-velocity", () => props.query)), __temp = await __temp, __restore(), __temp);
2615
+ const chartData = computed(
2616
+ () => velocity.value?.points.map((p) => ({
2617
+ date: new Date(p.date),
2618
+ regressions: p.regressions,
2619
+ newFlaky: p.newFlaky
2620
+ })) ?? []
2621
+ );
2622
+ const hasData = computed(() => chartData.value.some((p) => p.regressions > 0 || p.newFlaky > 0));
2623
+ const barColors = ["rgb(239, 68, 68)", "rgb(147, 51, 234)"];
2624
+ const yMax = computed(() => Math.max(1, ...chartData.value.map((d) => d.regressions + d.newFlaky)));
2625
+ function layout(plotWidth, plotHeight, yScale) {
2626
+ const geo = barGeometry(chartData.value.length, plotWidth);
2627
+ return chartData.value.map((d, i) => ({
2628
+ d,
2629
+ slotX: i * geo.slotWidth,
2630
+ slotWidth: geo.slotWidth,
2631
+ barX: geo.xOf(i),
2632
+ barWidth: geo.barWidth,
2633
+ segments: stackSegments(
2634
+ [
2635
+ { color: barColors[0], value: d.regressions },
2636
+ { color: barColors[1], value: d.newFlaky }
2637
+ ],
2638
+ plotHeight,
2639
+ yScale
2640
+ )
2641
+ }));
2642
+ }
2643
+ function xTicks(plotWidth) {
2644
+ const { centerOf } = barGeometry(chartData.value.length, plotWidth);
2645
+ const dates = chartData.value.map((d) => d.date);
2646
+ return dayTickIndices(dates, Math.max(2, Math.floor(plotWidth / 80))).map((i) => ({
2647
+ x: centerOf(i),
2648
+ label: formatTickDate(dates[i])
2649
+ }));
2650
+ }
2651
+ const { data: tooltipData, pos: tooltipPos, show, move, hide } = useChartTooltip(240);
2652
+ const legendItems = [
2653
+ { color: barColors[0], label: "New regressions" },
2654
+ { color: barColors[1], label: "Newly flaky" }
2655
+ ];
2656
+ const deltaBadge = computed(() => {
2657
+ if (!velocity.value || velocity.value.deltaPct === null) return null;
2658
+ const pct = velocity.value.deltaPct;
2659
+ return {
2660
+ label: `${pct > 0 ? "+" : ""}${pct}% vs previous period`,
2661
+ // Fewer regressions is good, more is bad.
2662
+ class: pct > 0 ? "text-red-600 dark:text-red-400" : "text-green-600 dark:text-green-400"
2663
+ };
2664
+ });
2665
+ const subtitle = computed(() => {
2666
+ if (!velocity.value) return void 0;
2667
+ return `${velocity.value.totalRegressions} new regressions, ${velocity.value.totalNewFlaky} newly flaky`;
2668
+ });
2669
+ return (_ctx, _push, _parent, _attrs) => {
2670
+ const _component_ChartCard = __nuxt_component_0;
2671
+ const _component_LoadingState = __nuxt_component_13;
2672
+ const _component_ErrorState = __nuxt_component_5$1;
2673
+ const _component_UButton = _sfc_main$k;
2674
+ const _component_EmptyState = __nuxt_component_4$2;
2675
+ const _component_ChartFrame = __nuxt_component_5$2;
2676
+ const _component_ChartTooltip = __nuxt_component_6;
2677
+ _push(ssrRenderComponent(_component_ChartCard, mergeProps({
2678
+ icon: "i-lucide-git-pull-request-arrow",
2679
+ title: "Regression velocity",
2680
+ subtitle: unref(subtitle),
2681
+ help: "analytics.regression-velocity",
2682
+ legend: legendItems
2683
+ }, _attrs), {
2684
+ actions: withCtx((_, _push2, _parent2, _scopeId) => {
2685
+ if (_push2) {
2686
+ if (unref(deltaBadge)) {
2687
+ _push2(`<span class="${ssrRenderClass([unref(deltaBadge).class, "text-xs font-medium tabular-nums"])}"${_scopeId}>${ssrInterpolate(unref(deltaBadge).label)}</span>`);
2688
+ } else {
2689
+ _push2(`<!---->`);
2690
+ }
2691
+ } else {
2692
+ return [
2693
+ unref(deltaBadge) ? (openBlock(), createBlock("span", {
2694
+ key: 0,
2695
+ class: ["text-xs font-medium tabular-nums", unref(deltaBadge).class]
2696
+ }, toDisplayString(unref(deltaBadge).label), 3)) : createCommentVNode("", true)
2697
+ ];
2698
+ }
2699
+ }),
2700
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
2701
+ if (_push2) {
2702
+ if (unref(pending)) {
2703
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
2704
+ } else if (unref(error)) {
2705
+ _push2(ssrRenderComponent(_component_ErrorState, {
2706
+ text: `Couldn't load regression velocity: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
2707
+ }, {
2708
+ action: withCtx((_2, _push3, _parent3, _scopeId2) => {
2709
+ if (_push3) {
2710
+ _push3(ssrRenderComponent(_component_UButton, {
2711
+ size: "sm",
2712
+ color: "neutral",
2713
+ variant: "outline",
2714
+ icon: "i-lucide-refresh-cw",
2715
+ onClick: ($event) => unref(refresh)()
2716
+ }, {
2717
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
2718
+ if (_push4) {
2719
+ _push4(` Retry `);
2720
+ } else {
2721
+ return [
2722
+ createTextVNode(" Retry ")
2723
+ ];
2724
+ }
2725
+ }),
2726
+ _: 1
2727
+ }, _parent3, _scopeId2));
2728
+ } else {
2729
+ return [
2730
+ createVNode(_component_UButton, {
2731
+ size: "sm",
2732
+ color: "neutral",
2733
+ variant: "outline",
2734
+ icon: "i-lucide-refresh-cw",
2735
+ onClick: ($event) => unref(refresh)()
2736
+ }, {
2737
+ default: withCtx(() => [
2738
+ createTextVNode(" Retry ")
2739
+ ]),
2740
+ _: 1
2741
+ }, 8, ["onClick"])
2742
+ ];
2743
+ }
2744
+ }),
2745
+ _: 1
2746
+ }, _parent2, _scopeId));
2747
+ } else if (!unref(hasData)) {
2748
+ _push2(ssrRenderComponent(_component_EmptyState, {
2749
+ icon: "i-lucide-shield-check",
2750
+ text: "No new regressions in this period."
2751
+ }, null, _parent2, _scopeId));
2752
+ } else {
2753
+ _push2(`<div class="w-full"${_scopeId}>`);
2754
+ _push2(ssrRenderComponent(_component_ChartFrame, {
2755
+ height: 220,
2756
+ "y-max": unref(yMax)
2757
+ }, {
2758
+ default: withCtx(({ plotWidth, plotHeight, yScale }, _push3, _parent3, _scopeId2) => {
2759
+ if (_push3) {
2760
+ _push3(`<!--[-->`);
2761
+ ssrRenderList(layout(plotWidth, plotHeight, yScale), (bar) => {
2762
+ _push3(`<!--[--><!--[-->`);
2763
+ ssrRenderList(bar.segments, (segment) => {
2764
+ _push3(`<rect${ssrRenderAttr("x", bar.barX)}${ssrRenderAttr("y", segment.y)}${ssrRenderAttr("width", bar.barWidth)}${ssrRenderAttr("height", segment.height)}${ssrRenderAttr("fill", segment.color)}${_scopeId2}></rect>`);
2765
+ });
2766
+ _push3(`<!--]--><!--]-->`);
2767
+ });
2768
+ _push3(`<!--]--><!--[-->`);
2769
+ ssrRenderList(xTicks(plotWidth), (tick) => {
2770
+ _push3(`<text${ssrRenderAttr("x", tick.x)}${ssrRenderAttr("y", plotHeight + 14)} text-anchor="middle" class="fill-gray-400 dark:fill-gray-500 text-[10px]"${_scopeId2}>${ssrInterpolate(tick.label)}</text>`);
2771
+ });
2772
+ _push3(`<!--]--><!--[-->`);
2773
+ ssrRenderList(layout(plotWidth, plotHeight, yScale), (bar) => {
2774
+ _push3(`<rect${ssrRenderAttr("x", bar.slotX)}${ssrRenderAttr("y", 0)}${ssrRenderAttr("width", bar.slotWidth)}${ssrRenderAttr("height", plotHeight)}${ssrRenderAttr("fill", unref(tooltipData) === bar.d ? "rgb(148 163 184 / 0.15)" : "transparent")}${_scopeId2}></rect>`);
2775
+ });
2776
+ _push3(`<!--]-->`);
2777
+ } else {
2778
+ return [
2779
+ (openBlock(true), createBlock(Fragment, null, renderList(layout(plotWidth, plotHeight, yScale), (bar) => {
2780
+ return openBlock(), createBlock(Fragment, {
2781
+ key: bar.d.date.getTime()
2782
+ }, [
2783
+ (openBlock(true), createBlock(Fragment, null, renderList(bar.segments, (segment) => {
2784
+ return openBlock(), createBlock("rect", {
2785
+ key: segment.color,
2786
+ x: bar.barX,
2787
+ y: segment.y,
2788
+ width: bar.barWidth,
2789
+ height: segment.height,
2790
+ fill: segment.color
2791
+ }, null, 8, ["x", "y", "width", "height", "fill"]);
2792
+ }), 128))
2793
+ ], 64);
2794
+ }), 128)),
2795
+ (openBlock(true), createBlock(Fragment, null, renderList(xTicks(plotWidth), (tick) => {
2796
+ return openBlock(), createBlock("text", {
2797
+ key: tick.x,
2798
+ x: tick.x,
2799
+ y: plotHeight + 14,
2800
+ "text-anchor": "middle",
2801
+ class: "fill-gray-400 dark:fill-gray-500 text-[10px]"
2802
+ }, toDisplayString(tick.label), 9, ["x", "y"]);
2803
+ }), 128)),
2804
+ (openBlock(true), createBlock(Fragment, null, renderList(layout(plotWidth, plotHeight, yScale), (bar) => {
2805
+ return openBlock(), createBlock("rect", {
2806
+ key: `hover-${bar.d.date.getTime()}`,
2807
+ x: bar.slotX,
2808
+ y: 0,
2809
+ width: bar.slotWidth,
2810
+ height: plotHeight,
2811
+ fill: unref(tooltipData) === bar.d ? "rgb(148 163 184 / 0.15)" : "transparent",
2812
+ onMouseenter: ($event) => unref(show)($event, bar.d),
2813
+ onMousemove: ($event) => unref(move)($event),
2814
+ onMouseleave: ($event) => unref(hide)()
2815
+ }, null, 40, ["x", "width", "height", "fill", "onMouseenter", "onMousemove", "onMouseleave"]);
2816
+ }), 128))
2817
+ ];
2818
+ }
2819
+ }),
2820
+ _: 1
2821
+ }, _parent2, _scopeId));
2822
+ if (unref(tooltipData)) {
2823
+ _push2(ssrRenderComponent(_component_ChartTooltip, { pos: unref(tooltipPos) }, {
2824
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
2825
+ if (_push3) {
2826
+ _push3(`<div class="font-semibold mb-1"${_scopeId2}>${ssrInterpolate(unref(tooltipData).date.toLocaleDateString("en-US", { month: "short", day: "numeric" }))}</div><div${_scopeId2}><span class="text-red-500"${_scopeId2}>●</span> New regressions: ${ssrInterpolate(unref(tooltipData).regressions)}</div><div${_scopeId2}><span class="text-purple-500"${_scopeId2}>●</span> Newly flaky: ${ssrInterpolate(unref(tooltipData).newFlaky)}</div>`);
2827
+ } else {
2828
+ return [
2829
+ createVNode("div", { class: "font-semibold mb-1" }, toDisplayString(unref(tooltipData).date.toLocaleDateString("en-US", { month: "short", day: "numeric" })), 1),
2830
+ createVNode("div", null, [
2831
+ createVNode("span", { class: "text-red-500" }, "●"),
2832
+ createTextVNode(" New regressions: " + toDisplayString(unref(tooltipData).regressions), 1)
2833
+ ]),
2834
+ createVNode("div", null, [
2835
+ createVNode("span", { class: "text-purple-500" }, "●"),
2836
+ createTextVNode(" Newly flaky: " + toDisplayString(unref(tooltipData).newFlaky), 1)
2837
+ ])
2838
+ ];
2839
+ }
2840
+ }),
2841
+ _: 1
2842
+ }, _parent2, _scopeId));
2843
+ } else {
2844
+ _push2(`<!---->`);
2845
+ }
2846
+ _push2(`</div>`);
2847
+ }
2848
+ } else {
2849
+ return [
2850
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
2851
+ key: 1,
2852
+ text: `Couldn't load regression velocity: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
2853
+ }, {
2854
+ action: withCtx(() => [
2855
+ createVNode(_component_UButton, {
2856
+ size: "sm",
2857
+ color: "neutral",
2858
+ variant: "outline",
2859
+ icon: "i-lucide-refresh-cw",
2860
+ onClick: ($event) => unref(refresh)()
2861
+ }, {
2862
+ default: withCtx(() => [
2863
+ createTextVNode(" Retry ")
2864
+ ]),
2865
+ _: 1
2866
+ }, 8, ["onClick"])
2867
+ ]),
2868
+ _: 1
2869
+ }, 8, ["text"])) : !unref(hasData) ? (openBlock(), createBlock(_component_EmptyState, {
2870
+ key: 2,
2871
+ icon: "i-lucide-shield-check",
2872
+ text: "No new regressions in this period."
2873
+ })) : (openBlock(), createBlock("div", {
2874
+ key: 3,
2875
+ class: "w-full"
2876
+ }, [
2877
+ createVNode(_component_ChartFrame, {
2878
+ height: 220,
2879
+ "y-max": unref(yMax)
2880
+ }, {
2881
+ default: withCtx(({ plotWidth, plotHeight, yScale }) => [
2882
+ (openBlock(true), createBlock(Fragment, null, renderList(layout(plotWidth, plotHeight, yScale), (bar) => {
2883
+ return openBlock(), createBlock(Fragment, {
2884
+ key: bar.d.date.getTime()
2885
+ }, [
2886
+ (openBlock(true), createBlock(Fragment, null, renderList(bar.segments, (segment) => {
2887
+ return openBlock(), createBlock("rect", {
2888
+ key: segment.color,
2889
+ x: bar.barX,
2890
+ y: segment.y,
2891
+ width: bar.barWidth,
2892
+ height: segment.height,
2893
+ fill: segment.color
2894
+ }, null, 8, ["x", "y", "width", "height", "fill"]);
2895
+ }), 128))
2896
+ ], 64);
2897
+ }), 128)),
2898
+ (openBlock(true), createBlock(Fragment, null, renderList(xTicks(plotWidth), (tick) => {
2899
+ return openBlock(), createBlock("text", {
2900
+ key: tick.x,
2901
+ x: tick.x,
2902
+ y: plotHeight + 14,
2903
+ "text-anchor": "middle",
2904
+ class: "fill-gray-400 dark:fill-gray-500 text-[10px]"
2905
+ }, toDisplayString(tick.label), 9, ["x", "y"]);
2906
+ }), 128)),
2907
+ (openBlock(true), createBlock(Fragment, null, renderList(layout(plotWidth, plotHeight, yScale), (bar) => {
2908
+ return openBlock(), createBlock("rect", {
2909
+ key: `hover-${bar.d.date.getTime()}`,
2910
+ x: bar.slotX,
2911
+ y: 0,
2912
+ width: bar.slotWidth,
2913
+ height: plotHeight,
2914
+ fill: unref(tooltipData) === bar.d ? "rgb(148 163 184 / 0.15)" : "transparent",
2915
+ onMouseenter: ($event) => unref(show)($event, bar.d),
2916
+ onMousemove: ($event) => unref(move)($event),
2917
+ onMouseleave: ($event) => unref(hide)()
2918
+ }, null, 40, ["x", "width", "height", "fill", "onMouseenter", "onMousemove", "onMouseleave"]);
2919
+ }), 128))
2920
+ ]),
2921
+ _: 1
2922
+ }, 8, ["y-max"]),
2923
+ unref(tooltipData) ? (openBlock(), createBlock(_component_ChartTooltip, {
2924
+ key: 0,
2925
+ pos: unref(tooltipPos)
2926
+ }, {
2927
+ default: withCtx(() => [
2928
+ createVNode("div", { class: "font-semibold mb-1" }, toDisplayString(unref(tooltipData).date.toLocaleDateString("en-US", { month: "short", day: "numeric" })), 1),
2929
+ createVNode("div", null, [
2930
+ createVNode("span", { class: "text-red-500" }, "●"),
2931
+ createTextVNode(" New regressions: " + toDisplayString(unref(tooltipData).regressions), 1)
2932
+ ]),
2933
+ createVNode("div", null, [
2934
+ createVNode("span", { class: "text-purple-500" }, "●"),
2935
+ createTextVNode(" Newly flaky: " + toDisplayString(unref(tooltipData).newFlaky), 1)
2936
+ ])
2937
+ ]),
2938
+ _: 1
2939
+ }, 8, ["pos"])) : createCommentVNode("", true)
2940
+ ]))
2941
+ ];
2942
+ }
2943
+ }),
2944
+ _: 1
2945
+ }, _parent));
2946
+ };
2947
+ }
2948
+ });
2949
+ const _sfc_setup$3 = _sfc_main$3.setup;
2950
+ _sfc_main$3.setup = (props, ctx) => {
2951
+ const ssrContext = useSSRContext();
2952
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/RegressionVelocityChart.vue");
2953
+ return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
2954
+ };
2955
+ const RegressionVelocityChart = Object.assign(_sfc_main$3, { __name: "RegressionVelocityChart" });
2956
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
2957
+ __name: "BrowserMatrix",
2958
+ __ssrInlineRender: true,
2959
+ props: {
2960
+ query: {}
2961
+ },
2962
+ async setup(__props) {
2963
+ let __temp, __restore;
2964
+ const props = __props;
2965
+ const {
2966
+ data: matrix,
2967
+ pending,
2968
+ error,
2969
+ refresh
2970
+ } = ([__temp, __restore] = withAsyncContext(() => useAnalyticsWidget("browser-matrix", () => props.query)), __temp = await __temp, __restore(), __temp);
2971
+ function cellClass(rate) {
2972
+ if (rate === null) return "bg-gray-100 dark:bg-gray-800 text-gray-400";
2973
+ if (rate >= 99.5) return "bg-green-500/85 text-white";
2974
+ if (rate >= 90) return "bg-green-500/45";
2975
+ if (rate >= 75) return "bg-amber-500/50";
2976
+ if (rate >= 50) return "bg-orange-500/60";
2977
+ return "bg-red-500/70 text-white";
2978
+ }
2979
+ return (_ctx, _push, _parent, _attrs) => {
2980
+ const _component_SectionCard = __nuxt_component_11;
2981
+ const _component_LoadingState = __nuxt_component_13;
2982
+ const _component_ErrorState = __nuxt_component_5$1;
2983
+ const _component_UButton = _sfc_main$k;
2984
+ const _component_EmptyState = __nuxt_component_4$2;
2985
+ const _component_TableScroller = __nuxt_component_3;
2986
+ const _component_NuxtLink = __nuxt_component_12;
2987
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
2988
+ icon: "i-lucide-monitor-smartphone",
2989
+ title: "Browser matrix",
2990
+ help: "analytics.browser-matrix"
2991
+ }, _attrs), {
2992
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
2993
+ if (_push2) {
2994
+ if (unref(pending)) {
2995
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
2996
+ } else if (unref(error)) {
2997
+ _push2(ssrRenderComponent(_component_ErrorState, {
2998
+ text: `Couldn't load the browser matrix: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
2999
+ }, {
3000
+ action: withCtx((_2, _push3, _parent3, _scopeId2) => {
3001
+ if (_push3) {
3002
+ _push3(ssrRenderComponent(_component_UButton, {
3003
+ size: "sm",
3004
+ color: "neutral",
3005
+ variant: "outline",
3006
+ icon: "i-lucide-refresh-cw",
3007
+ onClick: ($event) => unref(refresh)()
3008
+ }, {
3009
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
3010
+ if (_push4) {
3011
+ _push4(` Retry `);
3012
+ } else {
3013
+ return [
3014
+ createTextVNode(" Retry ")
3015
+ ];
3016
+ }
3017
+ }),
3018
+ _: 1
3019
+ }, _parent3, _scopeId2));
3020
+ } else {
3021
+ return [
3022
+ createVNode(_component_UButton, {
3023
+ size: "sm",
3024
+ color: "neutral",
3025
+ variant: "outline",
3026
+ icon: "i-lucide-refresh-cw",
3027
+ onClick: ($event) => unref(refresh)()
3028
+ }, {
3029
+ default: withCtx(() => [
3030
+ createTextVNode(" Retry ")
3031
+ ]),
3032
+ _: 1
3033
+ }, 8, ["onClick"])
3034
+ ];
3035
+ }
3036
+ }),
3037
+ _: 1
3038
+ }, _parent2, _scopeId));
3039
+ } else if (!unref(matrix) || unref(matrix).rows.length === 0) {
3040
+ _push2(ssrRenderComponent(_component_EmptyState, { text: "No runs with browser data in this period." }, null, _parent2, _scopeId));
3041
+ } else {
3042
+ _push2(ssrRenderComponent(_component_TableScroller, { "min-width": "30rem" }, {
3043
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
3044
+ if (_push3) {
3045
+ _push3(`<table class="w-full text-sm border-separate border-spacing-1"${_scopeId2}><thead${_scopeId2}><tr${_scopeId2}><th class="text-left text-xs text-gray-500 uppercase tracking-wider font-medium pr-2"${_scopeId2}>Project</th><!--[-->`);
3046
+ ssrRenderList(unref(matrix).browsers, (browser) => {
3047
+ _push3(`<th class="text-xs text-gray-500 uppercase tracking-wider font-medium px-1 text-center"${_scopeId2}>${ssrInterpolate(browser)}</th>`);
3048
+ });
3049
+ _push3(`<!--]--></tr></thead><tbody${_scopeId2}><!--[-->`);
3050
+ ssrRenderList(unref(matrix).rows, (row) => {
3051
+ _push3(`<tr${_scopeId2}><td class="pr-2 max-w-[12rem]"${_scopeId2}>`);
3052
+ _push3(ssrRenderComponent(_component_NuxtLink, {
3053
+ to: `/projects/${row.projectId}`,
3054
+ class: "truncate hover:text-primary block",
3055
+ title: row.label || row.name
3056
+ }, {
3057
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
3058
+ if (_push4) {
3059
+ _push4(`${ssrInterpolate(row.label || row.name)}`);
3060
+ } else {
3061
+ return [
3062
+ createTextVNode(toDisplayString(row.label || row.name), 1)
3063
+ ];
3064
+ }
3065
+ }),
3066
+ _: 2
3067
+ }, _parent3, _scopeId2));
3068
+ _push3(`</td><!--[-->`);
3069
+ ssrRenderList(row.cells, (rate, index) => {
3070
+ _push3(`<td class="${ssrRenderClass([cellClass(rate), "text-center tabular-nums rounded-md px-2 py-1.5 font-medium"])}"${ssrRenderAttr("title", `${row.label || row.name} · ${unref(matrix).browsers[index]}: ${rate !== null ? `${rate}% passed` : "no tests"}`)}${_scopeId2}>${ssrInterpolate(rate !== null ? `${Math.round(rate)}%` : "—")}</td>`);
3071
+ });
3072
+ _push3(`<!--]--></tr>`);
3073
+ });
3074
+ _push3(`<!--]--></tbody></table>`);
3075
+ } else {
3076
+ return [
3077
+ createVNode("table", { class: "w-full text-sm border-separate border-spacing-1" }, [
3078
+ createVNode("thead", null, [
3079
+ createVNode("tr", null, [
3080
+ createVNode("th", { class: "text-left text-xs text-gray-500 uppercase tracking-wider font-medium pr-2" }, "Project"),
3081
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(matrix).browsers, (browser) => {
3082
+ return openBlock(), createBlock("th", {
3083
+ key: browser,
3084
+ class: "text-xs text-gray-500 uppercase tracking-wider font-medium px-1 text-center"
3085
+ }, toDisplayString(browser), 1);
3086
+ }), 128))
3087
+ ])
3088
+ ]),
3089
+ createVNode("tbody", null, [
3090
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(matrix).rows, (row) => {
3091
+ return openBlock(), createBlock("tr", {
3092
+ key: row.projectId
3093
+ }, [
3094
+ createVNode("td", { class: "pr-2 max-w-[12rem]" }, [
3095
+ createVNode(_component_NuxtLink, {
3096
+ to: `/projects/${row.projectId}`,
3097
+ class: "truncate hover:text-primary block",
3098
+ title: row.label || row.name
3099
+ }, {
3100
+ default: withCtx(() => [
3101
+ createTextVNode(toDisplayString(row.label || row.name), 1)
3102
+ ]),
3103
+ _: 2
3104
+ }, 1032, ["to", "title"])
3105
+ ]),
3106
+ (openBlock(true), createBlock(Fragment, null, renderList(row.cells, (rate, index) => {
3107
+ return openBlock(), createBlock("td", {
3108
+ key: index,
3109
+ class: ["text-center tabular-nums rounded-md px-2 py-1.5 font-medium", cellClass(rate)],
3110
+ title: `${row.label || row.name} · ${unref(matrix).browsers[index]}: ${rate !== null ? `${rate}% passed` : "no tests"}`
3111
+ }, toDisplayString(rate !== null ? `${Math.round(rate)}%` : "—"), 11, ["title"]);
3112
+ }), 128))
3113
+ ]);
3114
+ }), 128))
3115
+ ])
3116
+ ])
3117
+ ];
3118
+ }
3119
+ }),
3120
+ _: 1
3121
+ }, _parent2, _scopeId));
3122
+ }
3123
+ } else {
3124
+ return [
3125
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
3126
+ key: 1,
3127
+ text: `Couldn't load the browser matrix: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
3128
+ }, {
3129
+ action: withCtx(() => [
3130
+ createVNode(_component_UButton, {
3131
+ size: "sm",
3132
+ color: "neutral",
3133
+ variant: "outline",
3134
+ icon: "i-lucide-refresh-cw",
3135
+ onClick: ($event) => unref(refresh)()
3136
+ }, {
3137
+ default: withCtx(() => [
3138
+ createTextVNode(" Retry ")
3139
+ ]),
3140
+ _: 1
3141
+ }, 8, ["onClick"])
3142
+ ]),
3143
+ _: 1
3144
+ }, 8, ["text"])) : !unref(matrix) || unref(matrix).rows.length === 0 ? (openBlock(), createBlock(_component_EmptyState, {
3145
+ key: 2,
3146
+ text: "No runs with browser data in this period."
3147
+ })) : (openBlock(), createBlock(_component_TableScroller, {
3148
+ key: 3,
3149
+ "min-width": "30rem"
3150
+ }, {
3151
+ default: withCtx(() => [
3152
+ createVNode("table", { class: "w-full text-sm border-separate border-spacing-1" }, [
3153
+ createVNode("thead", null, [
3154
+ createVNode("tr", null, [
3155
+ createVNode("th", { class: "text-left text-xs text-gray-500 uppercase tracking-wider font-medium pr-2" }, "Project"),
3156
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(matrix).browsers, (browser) => {
3157
+ return openBlock(), createBlock("th", {
3158
+ key: browser,
3159
+ class: "text-xs text-gray-500 uppercase tracking-wider font-medium px-1 text-center"
3160
+ }, toDisplayString(browser), 1);
3161
+ }), 128))
3162
+ ])
3163
+ ]),
3164
+ createVNode("tbody", null, [
3165
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(matrix).rows, (row) => {
3166
+ return openBlock(), createBlock("tr", {
3167
+ key: row.projectId
3168
+ }, [
3169
+ createVNode("td", { class: "pr-2 max-w-[12rem]" }, [
3170
+ createVNode(_component_NuxtLink, {
3171
+ to: `/projects/${row.projectId}`,
3172
+ class: "truncate hover:text-primary block",
3173
+ title: row.label || row.name
3174
+ }, {
3175
+ default: withCtx(() => [
3176
+ createTextVNode(toDisplayString(row.label || row.name), 1)
3177
+ ]),
3178
+ _: 2
3179
+ }, 1032, ["to", "title"])
3180
+ ]),
3181
+ (openBlock(true), createBlock(Fragment, null, renderList(row.cells, (rate, index) => {
3182
+ return openBlock(), createBlock("td", {
3183
+ key: index,
3184
+ class: ["text-center tabular-nums rounded-md px-2 py-1.5 font-medium", cellClass(rate)],
3185
+ title: `${row.label || row.name} · ${unref(matrix).browsers[index]}: ${rate !== null ? `${rate}% passed` : "no tests"}`
3186
+ }, toDisplayString(rate !== null ? `${Math.round(rate)}%` : "—"), 11, ["title"]);
3187
+ }), 128))
3188
+ ]);
3189
+ }), 128))
3190
+ ])
3191
+ ])
3192
+ ]),
3193
+ _: 1
3194
+ }))
3195
+ ];
3196
+ }
3197
+ }),
3198
+ _: 1
3199
+ }, _parent));
3200
+ };
3201
+ }
3202
+ });
3203
+ const _sfc_setup$2 = _sfc_main$2.setup;
3204
+ _sfc_main$2.setup = (props, ctx) => {
3205
+ const ssrContext = useSSRContext();
3206
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/BrowserMatrix.vue");
3207
+ return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
3208
+ };
3209
+ const BrowserMatrix = Object.assign(_sfc_main$2, { __name: "BrowserMatrix" });
3210
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3211
+ __name: "SlowEndpointsTable",
3212
+ __ssrInlineRender: true,
3213
+ props: {
3214
+ query: {}
3215
+ },
3216
+ async setup(__props) {
3217
+ let __temp, __restore;
3218
+ const props = __props;
3219
+ const {
3220
+ data: slow,
3221
+ pending,
3222
+ error,
3223
+ refresh
3224
+ } = ([__temp, __restore] = withAsyncContext(() => useAnalyticsWidget("slow-endpoints", () => props.query)), __temp = await __temp, __restore(), __temp);
3225
+ function latencyClass(ms) {
3226
+ if (ms >= 1e3) return "text-red-600 dark:text-red-400";
3227
+ if (ms >= 500) return "text-amber-600 dark:text-amber-400";
3228
+ return "text-gray-600 dark:text-gray-300";
3229
+ }
3230
+ function methodColor(method) {
3231
+ const map = {
3232
+ GET: "info",
3233
+ POST: "success",
3234
+ PUT: "warning",
3235
+ PATCH: "warning",
3236
+ DELETE: "error"
3237
+ };
3238
+ return map[method.toUpperCase()] ?? "neutral";
3239
+ }
3240
+ return (_ctx, _push, _parent, _attrs) => {
3241
+ const _component_SectionCard = __nuxt_component_11;
3242
+ const _component_LoadingState = __nuxt_component_13;
3243
+ const _component_ErrorState = __nuxt_component_5$1;
3244
+ const _component_UButton = _sfc_main$k;
3245
+ const _component_FeatureUnavailable = __nuxt_component_4$1;
3246
+ const _component_UBadge = _sfc_main$7$1;
3247
+ const _component_TableScroller = __nuxt_component_3;
3248
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
3249
+ icon: "i-lucide-gauge",
3250
+ title: "Slow endpoints",
3251
+ count: unref(slow)?.endpoints.length || void 0,
3252
+ subtitle: "Backend calls across all projects, slowest first",
3253
+ help: "analytics.slow-endpoints"
3254
+ }, _attrs), {
3255
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
3256
+ if (_push2) {
3257
+ if (unref(pending)) {
3258
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
3259
+ } else if (unref(error)) {
3260
+ _push2(ssrRenderComponent(_component_ErrorState, {
3261
+ text: `Couldn't load slow endpoints: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
3262
+ }, {
3263
+ action: withCtx((_2, _push3, _parent3, _scopeId2) => {
3264
+ if (_push3) {
3265
+ _push3(ssrRenderComponent(_component_UButton, {
3266
+ size: "sm",
3267
+ color: "neutral",
3268
+ variant: "outline",
3269
+ icon: "i-lucide-refresh-cw",
3270
+ onClick: ($event) => unref(refresh)()
3271
+ }, {
3272
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
3273
+ if (_push4) {
3274
+ _push4(` Retry `);
3275
+ } else {
3276
+ return [
3277
+ createTextVNode(" Retry ")
3278
+ ];
3279
+ }
3280
+ }),
3281
+ _: 1
3282
+ }, _parent3, _scopeId2));
3283
+ } else {
3284
+ return [
3285
+ createVNode(_component_UButton, {
3286
+ size: "sm",
3287
+ color: "neutral",
3288
+ variant: "outline",
3289
+ icon: "i-lucide-refresh-cw",
3290
+ onClick: ($event) => unref(refresh)()
3291
+ }, {
3292
+ default: withCtx(() => [
3293
+ createTextVNode(" Retry ")
3294
+ ]),
3295
+ _: 1
3296
+ }, 8, ["onClick"])
3297
+ ];
3298
+ }
3299
+ }),
3300
+ _: 1
3301
+ }, _parent2, _scopeId));
3302
+ } else if (!unref(slow) || unref(slow).endpoints.length === 0) {
3303
+ _push2(ssrRenderComponent(_component_FeatureUnavailable, {
3304
+ icon: "i-lucide-network",
3305
+ title: "No network requests captured in this period",
3306
+ text: "Slow endpoints need the Piwi capture fixtures — extend your Playwright test with piwiFixtures and request timing rides along with every run.",
3307
+ doc: "capture-fixtures"
3308
+ }, null, _parent2, _scopeId));
3309
+ } else {
3310
+ _push2(`<!--[--><div class="md:hidden space-y-3"${_scopeId}><!--[-->`);
3311
+ ssrRenderList(unref(slow).endpoints, (ep) => {
3312
+ _push2(`<div class="rounded-lg border border-gray-200 dark:border-gray-800 p-3 space-y-1.5"${_scopeId}><div class="flex items-center gap-2 min-w-0"${_scopeId}>`);
3313
+ _push2(ssrRenderComponent(_component_UBadge, {
3314
+ color: methodColor(ep.method),
3315
+ variant: "subtle",
3316
+ size: "sm"
3317
+ }, {
3318
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
3319
+ if (_push3) {
3320
+ _push3(`${ssrInterpolate(ep.method)}`);
3321
+ } else {
3322
+ return [
3323
+ createTextVNode(toDisplayString(ep.method), 1)
3324
+ ];
3325
+ }
3326
+ }),
3327
+ _: 2
3328
+ }, _parent2, _scopeId));
3329
+ _push2(`<code class="text-xs truncate"${_scopeId}>${ssrInterpolate(ep.route)}</code></div><div class="flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"${_scopeId}><span${_scopeId}>p90 <span class="${ssrRenderClass([latencyClass(ep.p90Ms), "tabular-nums font-medium"])}"${_scopeId}>${ssrInterpolate(ep.p90Ms)} ms</span></span><span${_scopeId}>${ssrInterpolate(ep.requests)} reqs · ${ssrInterpolate(ep.projectCount)} proj</span>`);
3330
+ if (ep.errorRate > 0) {
3331
+ _push2(`<span class="text-red-600 dark:text-red-400 tabular-nums"${_scopeId}>${ssrInterpolate(ep.errorRate)}% err</span>`);
3332
+ } else {
3333
+ _push2(`<!---->`);
3334
+ }
3335
+ _push2(`</div></div>`);
3336
+ });
3337
+ _push2(`<!--]--></div><div class="hidden md:block"${_scopeId}>`);
3338
+ _push2(ssrRenderComponent(_component_TableScroller, { "min-width": "44rem" }, {
3339
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
3340
+ if (_push3) {
3341
+ _push3(`<table class="w-full text-sm"${_scopeId2}><thead${_scopeId2}><tr class="text-left text-xs text-gray-500 uppercase tracking-wider border-b border-gray-200 dark:border-gray-800"${_scopeId2}><th class="py-2 pr-4 font-medium"${_scopeId2}>Endpoint</th><th class="py-2 pr-4 font-medium text-right"${_scopeId2}>Requests</th><th class="py-2 pr-4 font-medium text-right"${_scopeId2}>p50</th><th class="py-2 pr-4 font-medium text-right"${_scopeId2}>p90</th><th class="py-2 pr-4 font-medium text-right"${_scopeId2}>Max</th><th class="py-2 pr-4 font-medium text-right"${_scopeId2}>Errors</th><th class="py-2 font-medium text-right"${_scopeId2}>Projects</th></tr></thead><tbody class="divide-y divide-gray-100 dark:divide-gray-800"${_scopeId2}><!--[-->`);
3342
+ ssrRenderList(unref(slow).endpoints, (ep) => {
3343
+ _push3(`<tr${_scopeId2}><td class="py-2.5 pr-4"${_scopeId2}><div class="flex items-center gap-2 min-w-0"${_scopeId2}>`);
3344
+ _push3(ssrRenderComponent(_component_UBadge, {
3345
+ color: methodColor(ep.method),
3346
+ variant: "subtle",
3347
+ size: "sm"
3348
+ }, {
3349
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
3350
+ if (_push4) {
3351
+ _push4(`${ssrInterpolate(ep.method)}`);
3352
+ } else {
3353
+ return [
3354
+ createTextVNode(toDisplayString(ep.method), 1)
3355
+ ];
3356
+ }
3357
+ }),
3358
+ _: 2
3359
+ }, _parent3, _scopeId2));
3360
+ _push3(`<code class="text-xs truncate max-w-[22rem]"${ssrRenderAttr("title", ep.route)}${_scopeId2}>${ssrInterpolate(ep.route)}</code></div></td><td class="py-2.5 pr-4 text-right tabular-nums"${_scopeId2}>${ssrInterpolate(ep.requests)}</td><td class="py-2.5 pr-4 text-right tabular-nums text-gray-500"${_scopeId2}>${ssrInterpolate(ep.p50Ms)} ms</td><td class="${ssrRenderClass([latencyClass(ep.p90Ms), "py-2.5 pr-4 text-right tabular-nums font-medium"])}"${_scopeId2}>${ssrInterpolate(ep.p90Ms)} ms </td><td class="py-2.5 pr-4 text-right tabular-nums text-gray-500"${_scopeId2}>${ssrInterpolate(ep.maxMs)} ms</td><td class="${ssrRenderClass([ep.errorRate > 0 ? "text-red-600 dark:text-red-400" : "text-gray-400", "py-2.5 pr-4 text-right tabular-nums"])}"${_scopeId2}>${ssrInterpolate(ep.errorRate)}% </td><td class="py-2.5 text-right tabular-nums"${_scopeId2}>${ssrInterpolate(ep.projectCount)}</td></tr>`);
3361
+ });
3362
+ _push3(`<!--]--></tbody></table>`);
3363
+ } else {
3364
+ return [
3365
+ createVNode("table", { class: "w-full text-sm" }, [
3366
+ createVNode("thead", null, [
3367
+ createVNode("tr", { class: "text-left text-xs text-gray-500 uppercase tracking-wider border-b border-gray-200 dark:border-gray-800" }, [
3368
+ createVNode("th", { class: "py-2 pr-4 font-medium" }, "Endpoint"),
3369
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Requests"),
3370
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "p50"),
3371
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "p90"),
3372
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Max"),
3373
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Errors"),
3374
+ createVNode("th", { class: "py-2 font-medium text-right" }, "Projects")
3375
+ ])
3376
+ ]),
3377
+ createVNode("tbody", { class: "divide-y divide-gray-100 dark:divide-gray-800" }, [
3378
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(slow).endpoints, (ep) => {
3379
+ return openBlock(), createBlock("tr", {
3380
+ key: `${ep.method} ${ep.route}`
3381
+ }, [
3382
+ createVNode("td", { class: "py-2.5 pr-4" }, [
3383
+ createVNode("div", { class: "flex items-center gap-2 min-w-0" }, [
3384
+ createVNode(_component_UBadge, {
3385
+ color: methodColor(ep.method),
3386
+ variant: "subtle",
3387
+ size: "sm"
3388
+ }, {
3389
+ default: withCtx(() => [
3390
+ createTextVNode(toDisplayString(ep.method), 1)
3391
+ ]),
3392
+ _: 2
3393
+ }, 1032, ["color"]),
3394
+ createVNode("code", {
3395
+ class: "text-xs truncate max-w-[22rem]",
3396
+ title: ep.route
3397
+ }, toDisplayString(ep.route), 9, ["title"])
3398
+ ])
3399
+ ]),
3400
+ createVNode("td", { class: "py-2.5 pr-4 text-right tabular-nums" }, toDisplayString(ep.requests), 1),
3401
+ createVNode("td", { class: "py-2.5 pr-4 text-right tabular-nums text-gray-500" }, toDisplayString(ep.p50Ms) + " ms", 1),
3402
+ createVNode("td", {
3403
+ class: ["py-2.5 pr-4 text-right tabular-nums font-medium", latencyClass(ep.p90Ms)]
3404
+ }, toDisplayString(ep.p90Ms) + " ms ", 3),
3405
+ createVNode("td", { class: "py-2.5 pr-4 text-right tabular-nums text-gray-500" }, toDisplayString(ep.maxMs) + " ms", 1),
3406
+ createVNode("td", {
3407
+ class: ["py-2.5 pr-4 text-right tabular-nums", ep.errorRate > 0 ? "text-red-600 dark:text-red-400" : "text-gray-400"]
3408
+ }, toDisplayString(ep.errorRate) + "% ", 3),
3409
+ createVNode("td", { class: "py-2.5 text-right tabular-nums" }, toDisplayString(ep.projectCount), 1)
3410
+ ]);
3411
+ }), 128))
3412
+ ])
3413
+ ])
3414
+ ];
3415
+ }
3416
+ }),
3417
+ _: 1
3418
+ }, _parent2, _scopeId));
3419
+ _push2(`</div><!--]-->`);
3420
+ }
3421
+ } else {
3422
+ return [
3423
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
3424
+ key: 1,
3425
+ text: `Couldn't load slow endpoints: ${("errorMessage" in _ctx ? _ctx.errorMessage : unref(errorMessage))(unref(error))}`
3426
+ }, {
3427
+ action: withCtx(() => [
3428
+ createVNode(_component_UButton, {
3429
+ size: "sm",
3430
+ color: "neutral",
3431
+ variant: "outline",
3432
+ icon: "i-lucide-refresh-cw",
3433
+ onClick: ($event) => unref(refresh)()
3434
+ }, {
3435
+ default: withCtx(() => [
3436
+ createTextVNode(" Retry ")
3437
+ ]),
3438
+ _: 1
3439
+ }, 8, ["onClick"])
3440
+ ]),
3441
+ _: 1
3442
+ }, 8, ["text"])) : !unref(slow) || unref(slow).endpoints.length === 0 ? (openBlock(), createBlock(_component_FeatureUnavailable, {
3443
+ key: 2,
3444
+ icon: "i-lucide-network",
3445
+ title: "No network requests captured in this period",
3446
+ text: "Slow endpoints need the Piwi capture fixtures — extend your Playwright test with piwiFixtures and request timing rides along with every run.",
3447
+ doc: "capture-fixtures"
3448
+ })) : (openBlock(), createBlock(Fragment, { key: 3 }, [
3449
+ createVNode("div", { class: "md:hidden space-y-3" }, [
3450
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(slow).endpoints, (ep) => {
3451
+ return openBlock(), createBlock("div", {
3452
+ key: `${ep.method} ${ep.route}`,
3453
+ class: "rounded-lg border border-gray-200 dark:border-gray-800 p-3 space-y-1.5"
3454
+ }, [
3455
+ createVNode("div", { class: "flex items-center gap-2 min-w-0" }, [
3456
+ createVNode(_component_UBadge, {
3457
+ color: methodColor(ep.method),
3458
+ variant: "subtle",
3459
+ size: "sm"
3460
+ }, {
3461
+ default: withCtx(() => [
3462
+ createTextVNode(toDisplayString(ep.method), 1)
3463
+ ]),
3464
+ _: 2
3465
+ }, 1032, ["color"]),
3466
+ createVNode("code", { class: "text-xs truncate" }, toDisplayString(ep.route), 1)
3467
+ ]),
3468
+ createVNode("div", { class: "flex items-center justify-between text-xs text-gray-500 dark:text-gray-400" }, [
3469
+ createVNode("span", null, [
3470
+ createTextVNode("p90 "),
3471
+ createVNode("span", {
3472
+ class: ["tabular-nums font-medium", latencyClass(ep.p90Ms)]
3473
+ }, toDisplayString(ep.p90Ms) + " ms", 3)
3474
+ ]),
3475
+ createVNode("span", null, toDisplayString(ep.requests) + " reqs · " + toDisplayString(ep.projectCount) + " proj", 1),
3476
+ ep.errorRate > 0 ? (openBlock(), createBlock("span", {
3477
+ key: 0,
3478
+ class: "text-red-600 dark:text-red-400 tabular-nums"
3479
+ }, toDisplayString(ep.errorRate) + "% err", 1)) : createCommentVNode("", true)
3480
+ ])
3481
+ ]);
3482
+ }), 128))
3483
+ ]),
3484
+ createVNode("div", { class: "hidden md:block" }, [
3485
+ createVNode(_component_TableScroller, { "min-width": "44rem" }, {
3486
+ default: withCtx(() => [
3487
+ createVNode("table", { class: "w-full text-sm" }, [
3488
+ createVNode("thead", null, [
3489
+ createVNode("tr", { class: "text-left text-xs text-gray-500 uppercase tracking-wider border-b border-gray-200 dark:border-gray-800" }, [
3490
+ createVNode("th", { class: "py-2 pr-4 font-medium" }, "Endpoint"),
3491
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Requests"),
3492
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "p50"),
3493
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "p90"),
3494
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Max"),
3495
+ createVNode("th", { class: "py-2 pr-4 font-medium text-right" }, "Errors"),
3496
+ createVNode("th", { class: "py-2 font-medium text-right" }, "Projects")
3497
+ ])
3498
+ ]),
3499
+ createVNode("tbody", { class: "divide-y divide-gray-100 dark:divide-gray-800" }, [
3500
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(slow).endpoints, (ep) => {
3501
+ return openBlock(), createBlock("tr", {
3502
+ key: `${ep.method} ${ep.route}`
3503
+ }, [
3504
+ createVNode("td", { class: "py-2.5 pr-4" }, [
3505
+ createVNode("div", { class: "flex items-center gap-2 min-w-0" }, [
3506
+ createVNode(_component_UBadge, {
3507
+ color: methodColor(ep.method),
3508
+ variant: "subtle",
3509
+ size: "sm"
3510
+ }, {
3511
+ default: withCtx(() => [
3512
+ createTextVNode(toDisplayString(ep.method), 1)
3513
+ ]),
3514
+ _: 2
3515
+ }, 1032, ["color"]),
3516
+ createVNode("code", {
3517
+ class: "text-xs truncate max-w-[22rem]",
3518
+ title: ep.route
3519
+ }, toDisplayString(ep.route), 9, ["title"])
3520
+ ])
3521
+ ]),
3522
+ createVNode("td", { class: "py-2.5 pr-4 text-right tabular-nums" }, toDisplayString(ep.requests), 1),
3523
+ createVNode("td", { class: "py-2.5 pr-4 text-right tabular-nums text-gray-500" }, toDisplayString(ep.p50Ms) + " ms", 1),
3524
+ createVNode("td", {
3525
+ class: ["py-2.5 pr-4 text-right tabular-nums font-medium", latencyClass(ep.p90Ms)]
3526
+ }, toDisplayString(ep.p90Ms) + " ms ", 3),
3527
+ createVNode("td", { class: "py-2.5 pr-4 text-right tabular-nums text-gray-500" }, toDisplayString(ep.maxMs) + " ms", 1),
3528
+ createVNode("td", {
3529
+ class: ["py-2.5 pr-4 text-right tabular-nums", ep.errorRate > 0 ? "text-red-600 dark:text-red-400" : "text-gray-400"]
3530
+ }, toDisplayString(ep.errorRate) + "% ", 3),
3531
+ createVNode("td", { class: "py-2.5 text-right tabular-nums" }, toDisplayString(ep.projectCount), 1)
3532
+ ]);
3533
+ }), 128))
3534
+ ])
3535
+ ])
3536
+ ]),
3537
+ _: 1
3538
+ })
3539
+ ])
3540
+ ], 64))
3541
+ ];
3542
+ }
3543
+ }),
3544
+ _: 1
3545
+ }, _parent));
3546
+ };
3547
+ }
3548
+ });
3549
+ const _sfc_setup$1 = _sfc_main$1.setup;
3550
+ _sfc_main$1.setup = (props, ctx) => {
3551
+ const ssrContext = useSSRContext();
3552
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/analytics/SlowEndpointsTable.vue");
3553
+ return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
3554
+ };
3555
+ const SlowEndpointsTable = Object.assign(_sfc_main$1, { __name: "SlowEndpointsTable" });
3556
+ const _sfc_main = /* @__PURE__ */ defineComponent({
3557
+ __name: "analytics",
3558
+ __ssrInlineRender: true,
3559
+ async setup(__props) {
3560
+ let __temp, __restore;
3561
+ useHead({ title: "Analytics - Piwi Dashboard" });
3562
+ const { state, scopeQuery } = useAnalyticsScope();
3563
+ const { data: availableProjects } = ([__temp, __restore] = withAsyncContext(() => useFetch(
3564
+ "/api/projects/menu",
3565
+ {
3566
+ lazy: true,
3567
+ server: false,
3568
+ default: () => [],
3569
+ transform: (r) => r.items
3570
+ },
3571
+ "$sFpNat489G"
3572
+ /* nuxt-injected */
3573
+ )), __temp = await __temp, __restore(), __temp);
3574
+ const { data: recentTestRuns } = ([__temp, __restore] = withAsyncContext(() => useFetch(
3575
+ "/api/test-runs/recent",
3576
+ {
3577
+ lazy: true,
3578
+ server: false,
3579
+ default: () => [],
3580
+ transform: (r) => r.items
3581
+ },
3582
+ "$QJEpX0hRMv"
3583
+ /* nuxt-injected */
3584
+ )), __temp = await __temp, __restore(), __temp);
3585
+ const availableEnvironments = computed(() => {
3586
+ const envSet = /* @__PURE__ */ new Set();
3587
+ for (const run of recentTestRuns.value ?? []) {
3588
+ if (run.environment) envSet.add(run.environment);
3589
+ }
3590
+ return [...envSet].sort();
3591
+ });
3592
+ const availableBranches = computed(() => {
3593
+ const branchSet = /* @__PURE__ */ new Set();
3594
+ for (const run of recentTestRuns.value ?? []) {
3595
+ if (run.branch) branchSet.add(run.branch);
3596
+ }
3597
+ return [...branchSet].sort();
3598
+ });
3599
+ const newestRunTime = computed(() => {
3600
+ const runs = recentTestRuns.value ?? [];
3601
+ if (runs.length === 0) return null;
3602
+ return Math.max(...runs.map((r) => new Date(r.startTime).getTime()));
3603
+ });
3604
+ const windowHidesData = computed(() => {
3605
+ if (newestRunTime.value === null) return false;
3606
+ if (state.value.days >= MAX_ANALYTICS_DAYS) return false;
3607
+ const windowStart = Date.now() - state.value.days * 24 * 60 * 60 * 1e3;
3608
+ return newestRunTime.value < windowStart;
3609
+ });
3610
+ function widenToAllTime() {
3611
+ state.value = { ...state.value, days: MAX_ANALYTICS_DAYS };
3612
+ }
3613
+ const WIDGET_COMPONENTS = {
3614
+ insights: InsightsFeed,
3615
+ portfolio: PortfolioScorecard,
3616
+ "pass-rate-heatmap": PassRateHeatmap,
3617
+ "ci-time-trend": CiTimeTrendChart,
3618
+ "wasted-time": WastedTimeChart,
3619
+ "flaky-leaderboard": GlobalFlakyLeaderboard,
3620
+ "cluster-landscape": ClusterLandscape,
3621
+ "regression-velocity": RegressionVelocityChart,
3622
+ "browser-matrix": BrowserMatrix,
3623
+ "slow-endpoints": SlowEndpointsTable
3624
+ };
3625
+ const bands = computed(
3626
+ () => ANALYTICS_BANDS.map((band) => ({
3627
+ ...band,
3628
+ widgets: ANALYTICS_WIDGETS.filter((w) => w.band === band.id)
3629
+ })).filter((band) => band.widgets.length > 0)
3630
+ );
3631
+ return (_ctx, _push, _parent, _attrs) => {
3632
+ const _component_UDashboardPanel = _sfc_main$1$1;
3633
+ const _component_UDashboardNavbar = _sfc_main$d;
3634
+ const _component_UDashboardSidebarCollapse = _sfc_main$1$2;
3635
+ const _component_UBreadcrumb = _sfc_main$e;
3636
+ const _component_FilterToolbar = __nuxt_component_4;
3637
+ const _component_AnalyticsScopeBar = __nuxt_component_5;
3638
+ const _component_UAlert = _sfc_main$c;
3639
+ _push(ssrRenderComponent(_component_UDashboardPanel, mergeProps({ id: "analytics" }, _attrs), {
3640
+ header: withCtx((_, _push2, _parent2, _scopeId) => {
3641
+ if (_push2) {
3642
+ _push2(ssrRenderComponent(_component_UDashboardNavbar, null, {
3643
+ leading: withCtx((_2, _push3, _parent3, _scopeId2) => {
3644
+ if (_push3) {
3645
+ _push3(ssrRenderComponent(_component_UDashboardSidebarCollapse, null, null, _parent3, _scopeId2));
3646
+ _push3(ssrRenderComponent(_component_UBreadcrumb, { items: [{ label: "Analytics", icon: "i-lucide-chart-line", to: "/analytics" }] }, null, _parent3, _scopeId2));
3647
+ } else {
3648
+ return [
3649
+ createVNode(_component_UDashboardSidebarCollapse),
3650
+ createVNode(_component_UBreadcrumb, { items: [{ label: "Analytics", icon: "i-lucide-chart-line", to: "/analytics" }] })
3651
+ ];
3652
+ }
3653
+ }),
3654
+ _: 1
3655
+ }, _parent2, _scopeId));
3656
+ } else {
3657
+ return [
3658
+ createVNode(_component_UDashboardNavbar, null, {
3659
+ leading: withCtx(() => [
3660
+ createVNode(_component_UDashboardSidebarCollapse),
3661
+ createVNode(_component_UBreadcrumb, { items: [{ label: "Analytics", icon: "i-lucide-chart-line", to: "/analytics" }] })
3662
+ ]),
3663
+ _: 1
3664
+ })
3665
+ ];
3666
+ }
3667
+ }),
3668
+ body: withCtx((_, _push2, _parent2, _scopeId) => {
3669
+ if (_push2) {
3670
+ _push2(`<div class="space-y-6"${_scopeId}>`);
3671
+ _push2(ssrRenderComponent(_component_FilterToolbar, null, {
3672
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
3673
+ if (_push3) {
3674
+ _push3(ssrRenderComponent(_component_AnalyticsScopeBar, {
3675
+ modelValue: unref(state),
3676
+ "onUpdate:modelValue": ($event) => isRef(state) ? state.value = $event : null,
3677
+ "available-projects": unref(availableProjects),
3678
+ "available-environments": unref(availableEnvironments),
3679
+ "available-branches": unref(availableBranches)
3680
+ }, null, _parent3, _scopeId2));
3681
+ } else {
3682
+ return [
3683
+ createVNode(_component_AnalyticsScopeBar, {
3684
+ modelValue: unref(state),
3685
+ "onUpdate:modelValue": ($event) => isRef(state) ? state.value = $event : null,
3686
+ "available-projects": unref(availableProjects),
3687
+ "available-environments": unref(availableEnvironments),
3688
+ "available-branches": unref(availableBranches)
3689
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "available-projects", "available-environments", "available-branches"])
3690
+ ];
3691
+ }
3692
+ }),
3693
+ _: 1
3694
+ }, _parent2, _scopeId));
3695
+ if (unref(windowHidesData)) {
3696
+ _push2(ssrRenderComponent(_component_UAlert, {
3697
+ icon: "i-lucide-calendar-off",
3698
+ color: "warning",
3699
+ variant: "subtle",
3700
+ title: `No test runs in the last ${unref(state).days} days`,
3701
+ description: `Your most recent run was ${("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(unref(newestRunTime))} — the widgets below look empty because the selected range excludes it.`,
3702
+ actions: [
3703
+ { label: "Show all time", color: "warning", variant: "solid", size: "xs", onClick: widenToAllTime }
3704
+ ]
3705
+ }, null, _parent2, _scopeId));
3706
+ } else {
3707
+ _push2(`<!---->`);
3708
+ }
3709
+ _push2(`<!--[-->`);
3710
+ ssrRenderList(unref(bands), (band) => {
3711
+ _push2(`<section class="space-y-3"${_scopeId}><div${_scopeId}><h2 class="text-sm font-semibold uppercase tracking-wide text-dimmed"${_scopeId}>${ssrInterpolate(band.label)}</h2><p class="text-sm text-muted"${_scopeId}>${ssrInterpolate(band.description)}</p></div><div class="grid grid-cols-1 xl:grid-cols-2 gap-6 items-start"${_scopeId}><!--[-->`);
3712
+ ssrRenderList(band.widgets, (widget) => {
3713
+ _push2(`<div class="${ssrRenderClass(widget.size === "full" ? "xl:col-span-2" : "")}"${_scopeId}>`);
3714
+ ssrRenderVNode(_push2, createVNode(resolveDynamicComponent(WIDGET_COMPONENTS[widget.id]), { query: unref(scopeQuery) }, null), _parent2, _scopeId);
3715
+ _push2(`</div>`);
3716
+ });
3717
+ _push2(`<!--]--></div></section>`);
3718
+ });
3719
+ _push2(`<!--]--></div>`);
3720
+ } else {
3721
+ return [
3722
+ createVNode("div", { class: "space-y-6" }, [
3723
+ createVNode(_component_FilterToolbar, null, {
3724
+ default: withCtx(() => [
3725
+ createVNode(_component_AnalyticsScopeBar, {
3726
+ modelValue: unref(state),
3727
+ "onUpdate:modelValue": ($event) => isRef(state) ? state.value = $event : null,
3728
+ "available-projects": unref(availableProjects),
3729
+ "available-environments": unref(availableEnvironments),
3730
+ "available-branches": unref(availableBranches)
3731
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "available-projects", "available-environments", "available-branches"])
3732
+ ]),
3733
+ _: 1
3734
+ }),
3735
+ unref(windowHidesData) ? (openBlock(), createBlock(_component_UAlert, {
3736
+ key: 0,
3737
+ icon: "i-lucide-calendar-off",
3738
+ color: "warning",
3739
+ variant: "subtle",
3740
+ title: `No test runs in the last ${unref(state).days} days`,
3741
+ description: `Your most recent run was ${("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(unref(newestRunTime))} — the widgets below look empty because the selected range excludes it.`,
3742
+ actions: [
3743
+ { label: "Show all time", color: "warning", variant: "solid", size: "xs", onClick: widenToAllTime }
3744
+ ]
3745
+ }, null, 8, ["title", "description", "actions"])) : createCommentVNode("", true),
3746
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(bands), (band) => {
3747
+ return openBlock(), createBlock("section", {
3748
+ key: band.id,
3749
+ class: "space-y-3"
3750
+ }, [
3751
+ createVNode("div", null, [
3752
+ createVNode("h2", { class: "text-sm font-semibold uppercase tracking-wide text-dimmed" }, toDisplayString(band.label), 1),
3753
+ createVNode("p", { class: "text-sm text-muted" }, toDisplayString(band.description), 1)
3754
+ ]),
3755
+ createVNode("div", { class: "grid grid-cols-1 xl:grid-cols-2 gap-6 items-start" }, [
3756
+ (openBlock(true), createBlock(Fragment, null, renderList(band.widgets, (widget) => {
3757
+ return openBlock(), createBlock("div", {
3758
+ key: widget.id,
3759
+ class: widget.size === "full" ? "xl:col-span-2" : ""
3760
+ }, [
3761
+ (openBlock(), createBlock(resolveDynamicComponent(WIDGET_COMPONENTS[widget.id]), { query: unref(scopeQuery) }, null, 8, ["query"]))
3762
+ ], 2);
3763
+ }), 128))
3764
+ ])
3765
+ ]);
3766
+ }), 128))
3767
+ ])
3768
+ ];
3769
+ }
3770
+ }),
3771
+ _: 1
3772
+ }, _parent));
3773
+ };
3774
+ }
3775
+ });
3776
+ const _sfc_setup = _sfc_main.setup;
3777
+ _sfc_main.setup = (props, ctx) => {
3778
+ const ssrContext = useSSRContext();
3779
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/analytics.vue");
3780
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
3781
+ };
3782
+
3783
+ export { _sfc_main as default };
3784
+ //# sourceMappingURL=analytics-BRkiUpwa.mjs.map