n9router 0.4.35 → 0.4.37

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 (1094) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +29 -16
  3. package/app/.next/build-manifest.json +3 -3
  4. package/app/.next/prerender-manifest.json +3 -3
  5. package/app/.next/required-server-files.json +5 -0
  6. package/app/.next/routes-manifest.json +120 -36
  7. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  8. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +24 -0
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -0
  12. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -0
  13. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  14. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  17. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  20. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  23. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +23 -17
  26. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  29. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  32. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  35. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  38. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  41. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  44. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +5 -3
  47. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  50. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  53. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +5 -3
  56. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  59. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  60. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  62. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  63. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  65. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  66. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +3 -3
  68. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  69. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/_global-error/page.js +3 -3
  71. package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
  72. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/_global-error.html +1 -1
  74. package/app/.next/server/app/_global-error.rsc +1 -1
  75. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  76. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  77. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  78. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  79. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  80. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  81. package/app/.next/server/app/_not-found/page.js +2 -2
  82. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  83. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/_not-found.html +1 -1
  85. package/app/.next/server/app/_not-found.rsc +5 -6
  86. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +5 -6
  87. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  88. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +5 -6
  89. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  90. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  91. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -4
  92. package/app/.next/server/app/api/antigravity-app/route.js +1 -1
  93. package/app/.next/server/app/api/antigravity-app/route.js.nft.json +1 -1
  94. package/app/.next/server/app/api/antigravity-app-v2/route.js +1 -1
  95. package/app/.next/server/app/api/antigravity-app-v2/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/antigravity-ide/route.js +1 -1
  97. package/app/.next/server/app/api/antigravity-ide/route.js.nft.json +1 -1
  98. package/app/.next/server/app/api/antigravity-tools/import/route.js +1 -1
  99. package/app/.next/server/app/api/antigravity-tools/import/route.js.nft.json +1 -1
  100. package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js +1 -1
  101. package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js.nft.json +1 -1
  102. package/app/.next/server/app/api/auth/login/route.js +1 -1
  103. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  104. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  105. package/app/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  106. package/app/.next/server/app/api/auth/oidc/callback/route.js +1 -0
  107. package/app/.next/server/app/api/{cloud/credentials/update → auth/oidc/callback}/route.js.nft.json +1 -1
  108. package/app/.next/server/app/api/{cloud/models/alias → auth/oidc/callback}/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/auth/oidc/start/route.js +1 -0
  110. package/app/.next/server/app/api/{cloud/models/alias → auth/oidc/start}/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/auth/oidc/start/route_client-reference-manifest.js +1 -0
  112. package/app/.next/server/app/api/auth/oidc/test/route.js +1 -0
  113. package/app/.next/server/app/api/{cloud/model/resolve → auth/oidc/test}/route.js.nft.json +1 -1
  114. package/app/.next/server/app/api/auth/oidc/test/route_client-reference-manifest.js +1 -0
  115. package/app/.next/server/app/api/auth/status/route.js +1 -0
  116. package/app/.next/server/app/api/{tunnel/tailscale-login → auth/status}/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -0
  118. package/app/.next/server/app/api/cli-tools/all-statuses/route.js +17 -0
  119. package/app/.next/server/app/api/{tunnel/tailscale-start-daemon → cli-tools/all-statuses}/route.js.nft.json +1 -1
  120. package/app/.next/server/app/api/{tunnel/tailscale-login → cli-tools/all-statuses}/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  122. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  123. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  124. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  125. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  126. package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -0
  128. package/app/.next/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -0
  129. package/app/.next/server/app/api/{cloud/credentials/update → cli-tools/cline-settings}/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -32
  131. package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  132. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  133. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  135. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  136. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -0
  137. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -0
  138. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -0
  139. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  140. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  141. package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js +9 -0
  142. package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -0
  143. package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route_client-reference-manifest.js +1 -0
  144. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  145. package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +3 -3
  147. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  148. package/app/.next/server/app/api/cli-tools/jcode-settings/route.js +2 -0
  149. package/app/.next/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -0
  150. package/app/.next/server/app/api/cli-tools/jcode-settings/route_client-reference-manifest.js +1 -0
  151. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -0
  152. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -0
  153. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -0
  154. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  155. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  157. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  158. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  159. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/combos/route.js +1 -1
  161. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  162. package/app/.next/server/app/api/donate/route.js +1 -0
  163. package/app/.next/server/app/api/donate/route.js.nft.json +1 -0
  164. package/app/.next/server/app/api/donate/route_client-reference-manifest.js +1 -0
  165. package/app/.next/server/app/api/health/route.js +1 -1
  166. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  167. package/app/.next/server/app/api/init/route.js +1 -1
  168. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  169. package/app/.next/server/app/api/internal/account-health/route.js +1 -1
  170. package/app/.next/server/app/api/internal/account-health/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/internal/request-detail/route.js +1 -1
  172. package/app/.next/server/app/api/internal/request-detail/route.js.nft.json +1 -1
  173. package/app/.next/server/app/api/internal/usage/route.js +1 -1
  174. package/app/.next/server/app/api/internal/usage/route.js.nft.json +1 -1
  175. package/app/.next/server/app/api/keys/[id]/reset-usage/route.js +1 -1
  176. package/app/.next/server/app/api/keys/[id]/reset-usage/route.js.nft.json +1 -1
  177. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  178. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  179. package/app/.next/server/app/api/keys/[id]/usage/route.js +1 -1
  180. package/app/.next/server/app/api/keys/[id]/usage/route.js.nft.json +1 -1
  181. package/app/.next/server/app/api/keys/route.js +1 -1
  182. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  183. package/app/.next/server/app/api/locale/route.js +1 -1
  184. package/app/.next/server/app/api/locale/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/mcp/[plugin]/message/route.js +7 -0
  186. package/app/.next/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -0
  187. package/app/.next/server/app/api/mcp/[plugin]/message/route_client-reference-manifest.js +1 -0
  188. package/app/.next/server/app/api/mcp/[plugin]/sse/route.js +7 -0
  189. package/app/.next/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -0
  190. package/app/.next/server/app/api/mcp/[plugin]/sse/route_client-reference-manifest.js +1 -0
  191. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  192. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  193. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  194. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  195. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  196. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -0
  198. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -0
  199. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -0
  200. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  201. package/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  202. package/app/.next/server/app/api/models/alias/route.js +1 -1
  203. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  204. package/app/.next/server/app/api/models/availability/route.js +1 -1
  205. package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -1
  206. package/app/.next/server/app/api/models/custom/route.js +1 -1
  207. package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
  208. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  209. package/app/.next/server/app/api/models/disabled/route.js.nft.json +1 -1
  210. package/app/.next/server/app/api/models/route.js +1 -1
  211. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  212. package/app/.next/server/app/api/models/test/route.js +1 -1
  213. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  214. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -6
  215. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  216. package/app/.next/server/app/api/oauth/codex/import-token/route.js +1 -0
  217. package/app/.next/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -0
  218. package/app/.next/server/app/api/oauth/codex/import-token/route_client-reference-manifest.js +1 -0
  219. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  220. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  221. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  222. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  223. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  224. package/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  225. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  226. package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  227. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  228. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  229. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  230. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  231. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  232. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  234. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  235. package/app/.next/server/app/api/pricing/route.js +1 -1
  236. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  237. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  238. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  239. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  240. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  241. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  242. package/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  243. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  244. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  245. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  246. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  247. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  248. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  249. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  250. package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  251. package/app/.next/server/app/api/providers/client/route.js +1 -1
  252. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  253. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  254. package/app/.next/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  255. package/app/.next/server/app/api/providers/route.js +1 -1
  256. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  257. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  258. package/app/.next/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  259. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  260. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  261. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  262. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  263. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  264. package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  265. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  266. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  267. package/app/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js +43 -0
  268. package/app/.next/server/app/api/{cloud/auth → proxy-pools/cloudflare-deploy}/route.js.nft.json +1 -1
  269. package/app/.next/server/app/api/proxy-pools/cloudflare-deploy/route_client-reference-manifest.js +1 -0
  270. package/app/.next/server/app/api/proxy-pools/deno-deploy/route.js +40 -0
  271. package/app/.next/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -0
  272. package/app/.next/server/app/api/proxy-pools/deno-deploy/route_client-reference-manifest.js +1 -0
  273. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  274. package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
  275. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  276. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  277. package/app/.next/server/app/api/settings/database/route.js +1 -1
  278. package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
  279. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  280. package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  281. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  282. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  283. package/app/.next/server/app/api/settings/route.js +1 -1
  284. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  285. package/app/.next/server/app/api/shutdown/route.js +1 -1
  286. package/app/.next/server/app/api/shutdown/route.js.nft.json +1 -1
  287. package/app/.next/server/app/api/tags/route.js +1 -1
  288. package/app/.next/server/app/api/tags/route.js.nft.json +1 -1
  289. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  290. package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  291. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  292. package/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  293. package/app/.next/server/app/api/translator/load/route.js +1 -1
  294. package/app/.next/server/app/api/translator/load/route.js.nft.json +1 -1
  295. package/app/.next/server/app/api/translator/save/route.js +1 -1
  296. package/app/.next/server/app/api/translator/save/route.js.nft.json +1 -1
  297. package/app/.next/server/app/api/translator/send/route.js +1 -1
  298. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  299. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  300. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  301. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  302. package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  303. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  304. package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  305. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  306. package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
  307. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  308. package/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  309. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  310. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  311. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  312. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  313. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +4 -4
  314. package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  315. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  316. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  317. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  318. package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  319. package/app/.next/server/app/api/usage/history/route.js +1 -1
  320. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  321. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  322. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  323. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  324. package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  325. package/app/.next/server/app/api/usage/report/route.js +1 -1
  326. package/app/.next/server/app/api/usage/report/route.js.nft.json +1 -1
  327. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  328. package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  329. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  330. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  331. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  332. package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  333. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  334. package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  335. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  336. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  337. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  338. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  339. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  340. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  341. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
  342. package/app/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  343. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  344. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  345. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  346. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  347. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  348. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  349. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  350. package/app/.next/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  351. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  352. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  353. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  354. package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  355. package/app/.next/server/app/api/v1/models/info/route.js +1 -1
  356. package/app/.next/server/app/api/v1/models/info/route.js.nft.json +1 -1
  357. package/app/.next/server/app/api/v1/models/route.js +1 -1
  358. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  359. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  360. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  361. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  362. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  363. package/app/.next/server/app/api/v1/route.js +1 -1
  364. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  365. package/app/.next/server/app/api/v1/search/route.js +1 -1
  366. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  367. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  368. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  369. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  370. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  371. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  372. package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  373. package/app/.next/server/app/api/version/route.js +1 -1
  374. package/app/.next/server/app/api/version/route.js.nft.json +1 -1
  375. package/app/.next/server/app/api/version/shutdown/route.js +1 -0
  376. package/app/.next/server/app/api/version/shutdown/route.js.nft.json +1 -0
  377. package/app/.next/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -0
  378. package/app/.next/server/app/api/version/update/route.js +1 -1
  379. package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
  380. package/app/.next/server/app/callback/page.js +2 -2
  381. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  382. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  383. package/app/.next/server/app/callback.html +1 -1
  384. package/app/.next/server/app/callback.rsc +6 -7
  385. package/app/.next/server/app/callback.segments/_full.segment.rsc +6 -7
  386. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  387. package/app/.next/server/app/callback.segments/_index.segment.rsc +5 -6
  388. package/app/.next/server/app/callback.segments/_tree.segment.rsc +3 -4
  389. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
  390. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  391. package/app/.next/server/app/dashboard/basic-chat.html +1 -1
  392. package/app/.next/server/app/dashboard/basic-chat.rsc +7 -8
  393. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  394. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  395. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  396. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  397. package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -8
  398. package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  399. package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +5 -6
  400. package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +3 -4
  401. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  402. package/app/.next/server/app/dashboard/cli-tools.rsc +7 -8
  403. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  404. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  405. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  406. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  407. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -8
  408. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  409. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +5 -6
  410. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +3 -4
  411. package/app/.next/server/app/dashboard/combos.html +1 -1
  412. package/app/.next/server/app/dashboard/combos.rsc +7 -8
  413. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  414. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  415. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  416. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  417. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +7 -8
  418. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  419. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +5 -6
  420. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +3 -4
  421. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  422. package/app/.next/server/app/dashboard/endpoint.rsc +7 -8
  423. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  424. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  425. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  426. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  427. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -8
  428. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  429. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +5 -6
  430. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +3 -4
  431. package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
  432. package/app/.next/server/app/dashboard/media-providers/web.rsc +7 -8
  433. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  434. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  435. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  436. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  437. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  438. package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -8
  439. package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  440. package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +5 -6
  441. package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +3 -4
  442. package/app/.next/server/app/dashboard/mitm.html +1 -1
  443. package/app/.next/server/app/dashboard/mitm.rsc +7 -8
  444. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  445. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  446. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  447. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  448. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -8
  449. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  450. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +5 -6
  451. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +3 -4
  452. package/app/.next/server/app/dashboard/profile.html +1 -1
  453. package/app/.next/server/app/dashboard/profile.rsc +7 -8
  454. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  455. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  456. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  457. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  458. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +7 -8
  459. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  460. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +5 -6
  461. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +3 -4
  462. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  463. package/app/.next/server/app/dashboard/providers/new.rsc +7 -8
  464. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  465. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  466. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  467. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  468. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  469. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -8
  470. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  471. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +5 -6
  472. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +3 -4
  473. package/app/.next/server/app/dashboard/providers.html +1 -1
  474. package/app/.next/server/app/dashboard/providers.rsc +7 -8
  475. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  476. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  477. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  478. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  479. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +7 -8
  480. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  481. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +5 -6
  482. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +3 -4
  483. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  484. package/app/.next/server/app/dashboard/proxy-pools.rsc +7 -8
  485. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  486. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  487. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  488. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  489. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -8
  490. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  491. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +5 -6
  492. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +3 -4
  493. package/app/.next/server/app/dashboard/quota.html +2 -2
  494. package/app/.next/server/app/dashboard/quota.rsc +8 -9
  495. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  496. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  497. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  498. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  499. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +8 -9
  500. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  501. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +5 -6
  502. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +3 -4
  503. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  504. package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  505. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  506. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  507. package/app/.next/server/app/dashboard/settings/pricing.rsc +5 -6
  508. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -6
  509. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  510. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +5 -6
  511. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +3 -4
  512. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  513. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  514. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  515. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  516. package/app/.next/server/app/dashboard/skills.html +1 -1
  517. package/app/.next/server/app/dashboard/skills.rsc +7 -8
  518. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  519. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  520. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  521. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  522. package/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc +7 -8
  523. package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  524. package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +5 -6
  525. package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +3 -4
  526. package/app/.next/server/app/dashboard/translator.html +1 -1
  527. package/app/.next/server/app/dashboard/translator.rsc +7 -8
  528. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  529. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  530. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  531. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  532. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +7 -8
  533. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  534. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +5 -6
  535. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +3 -4
  536. package/app/.next/server/app/dashboard/usage.html +1 -1
  537. package/app/.next/server/app/dashboard/usage.rsc +7 -8
  538. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  539. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  540. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  541. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  542. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +7 -8
  543. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  544. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +5 -6
  545. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +3 -4
  546. package/app/.next/server/app/dashboard.html +1 -1
  547. package/app/.next/server/app/dashboard.rsc +7 -8
  548. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  549. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  550. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  551. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +7 -8
  552. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  553. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +5 -6
  554. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +3 -4
  555. package/app/.next/server/app/favicon.ico/route.js +1 -1
  556. package/app/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  557. package/app/.next/server/app/index.html +1 -1
  558. package/app/.next/server/app/index.rsc +5 -6
  559. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  560. package/app/.next/server/app/index.segments/_full.segment.rsc +5 -6
  561. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  562. package/app/.next/server/app/index.segments/_index.segment.rsc +5 -6
  563. package/app/.next/server/app/index.segments/_tree.segment.rsc +3 -4
  564. package/app/.next/server/app/landing/page.js +2 -2
  565. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  566. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  567. package/app/.next/server/app/landing.html +1 -1
  568. package/app/.next/server/app/landing.rsc +5 -6
  569. package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -6
  570. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  571. package/app/.next/server/app/landing.segments/_index.segment.rsc +5 -6
  572. package/app/.next/server/app/landing.segments/_tree.segment.rsc +3 -4
  573. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  574. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  575. package/app/.next/server/app/login/page.js +2 -2
  576. package/app/.next/server/app/login/page.js.nft.json +1 -1
  577. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  578. package/app/.next/server/app/login.html +1 -1
  579. package/app/.next/server/app/login.rsc +6 -7
  580. package/app/.next/server/app/login.segments/_full.segment.rsc +6 -7
  581. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  582. package/app/.next/server/app/login.segments/_index.segment.rsc +5 -6
  583. package/app/.next/server/app/login.segments/_tree.segment.rsc +3 -4
  584. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  585. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  586. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  587. package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  588. package/app/.next/server/app/page.js +2 -2
  589. package/app/.next/server/app/page.js.nft.json +1 -1
  590. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  591. package/app/.next/server/app-paths-manifest.json +29 -16
  592. package/app/.next/server/chunks/1051.js +1 -0
  593. package/app/.next/server/chunks/1476.js +1 -0
  594. package/app/.next/server/chunks/1498.js +1 -0
  595. package/app/.next/server/chunks/1531.js +1 -0
  596. package/app/.next/server/chunks/1569.js +1 -0
  597. package/app/.next/server/chunks/1699.js +1 -0
  598. package/app/.next/server/chunks/1998.js +1 -0
  599. package/app/.next/server/chunks/3104.js +43 -0
  600. package/app/.next/server/chunks/3110.js +56 -5
  601. package/app/.next/server/chunks/318.js +41 -15
  602. package/app/.next/server/chunks/3245.js +1 -1
  603. package/app/.next/server/chunks/3588.js +1 -0
  604. package/app/.next/server/chunks/365.js +1 -0
  605. package/app/.next/server/chunks/4013.js +1 -0
  606. package/app/.next/server/chunks/412.js +5 -5
  607. package/app/.next/server/chunks/4177.js +1 -0
  608. package/app/.next/server/chunks/4250.js +1 -1
  609. package/app/.next/server/chunks/4334.js +1 -1
  610. package/app/.next/server/chunks/4389.js +1 -0
  611. package/app/.next/server/chunks/4404.js +1 -0
  612. package/app/.next/server/chunks/4989.js +2 -2
  613. package/app/.next/server/chunks/{7861.js → 5221.js} +1 -1
  614. package/app/.next/server/chunks/5433.js +1 -0
  615. package/app/.next/server/chunks/5681.js +1 -1
  616. package/app/.next/server/chunks/5995.js +53 -0
  617. package/app/.next/server/chunks/6108.js +1 -1
  618. package/app/.next/server/chunks/6182.js +61 -5
  619. package/app/.next/server/chunks/6251.js +1 -0
  620. package/app/.next/server/chunks/6457.js +4 -0
  621. package/app/.next/server/chunks/6811.js +1 -0
  622. package/app/.next/server/chunks/6935.js +1 -0
  623. package/app/.next/server/chunks/7341.js +1 -1
  624. package/app/.next/server/chunks/7828.js +1 -1
  625. package/app/.next/server/chunks/7879.js +10 -0
  626. package/app/.next/server/chunks/7994.js +2 -2
  627. package/app/.next/server/chunks/8255.js +1 -0
  628. package/app/.next/server/chunks/8473.js +8 -0
  629. package/app/.next/server/chunks/8590.js +1 -1
  630. package/app/.next/server/chunks/8895.js +4 -4
  631. package/app/.next/server/chunks/8971.js +1 -0
  632. package/app/.next/server/chunks/9396.js +44 -0
  633. package/app/.next/server/chunks/9489.js +1 -1
  634. package/app/.next/server/chunks/9528.js +32 -0
  635. package/app/.next/server/chunks/9609.js +1 -1
  636. package/app/.next/server/chunks/9718.js +1 -1
  637. package/app/.next/server/chunks/9807.js +7 -0
  638. package/app/.next/server/functions-config-manifest.json +4 -30
  639. package/app/.next/server/middleware-build-manifest.js +1 -1
  640. package/app/.next/server/middleware.js +2 -2
  641. package/app/.next/server/pages/404.html +1 -1
  642. package/app/.next/server/pages/500.html +1 -1
  643. package/app/.next/server/server-reference-manifest.js +1 -1
  644. package/app/.next/server/server-reference-manifest.json +1 -1
  645. package/app/.next/static/YEhAtVGU-1J8HgdJmmpjP/_buildManifest.js +1 -0
  646. package/app/.next/static/chunks/1321-ae8f019eee61818e.js +1 -0
  647. package/app/.next/static/chunks/1a258343-5938f676ed376386.js +1 -0
  648. package/app/.next/static/chunks/2589-d4f1afc5e9f94887.js +3 -0
  649. package/app/.next/static/chunks/4406-05ac5641472f331e.js +53 -0
  650. package/app/.next/static/chunks/5497-73d5899267432022.js +7 -0
  651. package/app/.next/static/chunks/7055-e60e20f43bfbe5f8.js +1 -0
  652. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-068dda6eab2b9c36.js +1 -0
  653. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-67d36bbaeb6af871.js +1 -0
  654. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-51957200aaa0e0f7.js +1 -0
  655. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-1271df5d411ef013.js +1 -0
  656. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e680a27ecacbfd49.js +59 -0
  657. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-af17247a74fa851d.js +1 -0
  658. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-8cb9c569a7822a0a.js +1 -0
  659. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-8eaef671b213ee9e.js +1 -0
  660. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-90eac92387b41cd4.js +6 -0
  661. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-de08b6b9ad238de4.js +1 -0
  662. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-b9da35538f423062.js +4 -0
  663. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-1389351bfdd842f9.js +1 -0
  664. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-d6fce7b8e1d3fdec.js +3 -0
  665. package/app/.next/static/chunks/app/(dashboard)/layout-1244fdc593309aa9.js +1 -0
  666. package/app/.next/static/chunks/app/_global-error/page-7a42dc789702ab06.js +1 -0
  667. package/app/.next/static/chunks/app/api/antigravity-app/route-7a42dc789702ab06.js +1 -0
  668. package/app/.next/static/chunks/app/api/antigravity-app-v2/route-7a42dc789702ab06.js +1 -0
  669. package/app/.next/static/chunks/app/api/antigravity-ide/route-7a42dc789702ab06.js +1 -0
  670. package/app/.next/static/chunks/app/api/antigravity-tools/import/route-7a42dc789702ab06.js +1 -0
  671. package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-7a42dc789702ab06.js +1 -0
  672. package/app/.next/static/chunks/app/api/auth/login/route-7a42dc789702ab06.js +1 -0
  673. package/app/.next/static/chunks/app/api/auth/logout/route-7a42dc789702ab06.js +1 -0
  674. package/app/.next/static/chunks/app/api/auth/oidc/callback/route-7a42dc789702ab06.js +1 -0
  675. package/app/.next/static/chunks/app/api/auth/oidc/start/route-7a42dc789702ab06.js +1 -0
  676. package/app/.next/static/chunks/app/api/auth/oidc/test/route-7a42dc789702ab06.js +1 -0
  677. package/app/.next/static/chunks/app/api/auth/status/route-7a42dc789702ab06.js +1 -0
  678. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-7a42dc789702ab06.js +1 -0
  679. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-7a42dc789702ab06.js +1 -0
  680. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-7a42dc789702ab06.js +1 -0
  681. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-7a42dc789702ab06.js +1 -0
  682. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-7a42dc789702ab06.js +1 -0
  683. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-7a42dc789702ab06.js +1 -0
  684. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-7a42dc789702ab06.js +1 -0
  685. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-7a42dc789702ab06.js +1 -0
  686. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-7a42dc789702ab06.js +1 -0
  687. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-7a42dc789702ab06.js +1 -0
  688. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-7a42dc789702ab06.js +1 -0
  689. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-7a42dc789702ab06.js +1 -0
  690. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-7a42dc789702ab06.js +1 -0
  691. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-7a42dc789702ab06.js +1 -0
  692. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-7a42dc789702ab06.js +1 -0
  693. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-7a42dc789702ab06.js +1 -0
  694. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-7a42dc789702ab06.js +1 -0
  695. package/app/.next/static/chunks/app/api/combos/[id]/route-7a42dc789702ab06.js +1 -0
  696. package/app/.next/static/chunks/app/api/combos/route-7a42dc789702ab06.js +1 -0
  697. package/app/.next/static/chunks/app/api/donate/route-7a42dc789702ab06.js +1 -0
  698. package/app/.next/static/chunks/app/api/health/route-7a42dc789702ab06.js +1 -0
  699. package/app/.next/static/chunks/app/api/init/route-7a42dc789702ab06.js +1 -0
  700. package/app/.next/static/chunks/app/api/internal/account-health/route-7a42dc789702ab06.js +1 -0
  701. package/app/.next/static/chunks/app/api/internal/request-detail/route-7a42dc789702ab06.js +1 -0
  702. package/app/.next/static/chunks/app/api/internal/usage/route-7a42dc789702ab06.js +1 -0
  703. package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-7a42dc789702ab06.js +1 -0
  704. package/app/.next/static/chunks/app/api/keys/[id]/route-7a42dc789702ab06.js +1 -0
  705. package/app/.next/static/chunks/app/api/keys/[id]/usage/route-7a42dc789702ab06.js +1 -0
  706. package/app/.next/static/chunks/app/api/keys/route-7a42dc789702ab06.js +1 -0
  707. package/app/.next/static/chunks/app/api/locale/route-7a42dc789702ab06.js +1 -0
  708. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-7a42dc789702ab06.js +1 -0
  709. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-7a42dc789702ab06.js +1 -0
  710. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-7a42dc789702ab06.js +1 -0
  711. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-7a42dc789702ab06.js +1 -0
  712. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-7a42dc789702ab06.js +1 -0
  713. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-7a42dc789702ab06.js +1 -0
  714. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-7a42dc789702ab06.js +1 -0
  715. package/app/.next/static/chunks/app/api/models/alias/route-7a42dc789702ab06.js +1 -0
  716. package/app/.next/static/chunks/app/api/models/availability/route-7a42dc789702ab06.js +1 -0
  717. package/app/.next/static/chunks/app/api/models/custom/route-7a42dc789702ab06.js +1 -0
  718. package/app/.next/static/chunks/app/api/models/disabled/route-7a42dc789702ab06.js +1 -0
  719. package/app/.next/static/chunks/app/api/models/route-7a42dc789702ab06.js +1 -0
  720. package/app/.next/static/chunks/app/api/models/test/route-7a42dc789702ab06.js +1 -0
  721. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-7a42dc789702ab06.js +1 -0
  722. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-7a42dc789702ab06.js +1 -0
  723. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-7a42dc789702ab06.js +1 -0
  724. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-7a42dc789702ab06.js +1 -0
  725. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-7a42dc789702ab06.js +1 -0
  726. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-7a42dc789702ab06.js +1 -0
  727. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-7a42dc789702ab06.js +1 -0
  728. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-7a42dc789702ab06.js +1 -0
  729. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-7a42dc789702ab06.js +1 -0
  730. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-7a42dc789702ab06.js +1 -0
  731. package/app/.next/static/chunks/app/api/pricing/route-7a42dc789702ab06.js +1 -0
  732. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-7a42dc789702ab06.js +1 -0
  733. package/app/.next/static/chunks/app/api/provider-nodes/route-7a42dc789702ab06.js +1 -0
  734. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-7a42dc789702ab06.js +1 -0
  735. package/app/.next/static/chunks/app/api/providers/[id]/models/route-7a42dc789702ab06.js +1 -0
  736. package/app/.next/static/chunks/app/api/providers/[id]/route-7a42dc789702ab06.js +1 -0
  737. package/app/.next/static/chunks/app/api/providers/[id]/test/route-7a42dc789702ab06.js +1 -0
  738. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-7a42dc789702ab06.js +1 -0
  739. package/app/.next/static/chunks/app/api/providers/client/route-7a42dc789702ab06.js +1 -0
  740. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-7a42dc789702ab06.js +1 -0
  741. package/app/.next/static/chunks/app/api/providers/route-7a42dc789702ab06.js +1 -0
  742. package/app/.next/static/chunks/app/api/providers/suggested-models/route-7a42dc789702ab06.js +1 -0
  743. package/app/.next/static/chunks/app/api/providers/test-batch/route-7a42dc789702ab06.js +1 -0
  744. package/app/.next/static/chunks/app/api/providers/validate/route-7a42dc789702ab06.js +1 -0
  745. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-7a42dc789702ab06.js +1 -0
  746. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-7a42dc789702ab06.js +1 -0
  747. package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-7a42dc789702ab06.js +1 -0
  748. package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-7a42dc789702ab06.js +1 -0
  749. package/app/.next/static/chunks/app/api/proxy-pools/route-7a42dc789702ab06.js +1 -0
  750. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-7a42dc789702ab06.js +1 -0
  751. package/app/.next/static/chunks/app/api/settings/database/route-7a42dc789702ab06.js +1 -0
  752. package/app/.next/static/chunks/app/api/settings/proxy-test/route-7a42dc789702ab06.js +1 -0
  753. package/app/.next/static/chunks/app/api/settings/require-login/route-7a42dc789702ab06.js +1 -0
  754. package/app/.next/static/chunks/app/api/settings/route-7a42dc789702ab06.js +1 -0
  755. package/app/.next/static/chunks/app/api/shutdown/route-7a42dc789702ab06.js +1 -0
  756. package/app/.next/static/chunks/app/api/tags/route-7a42dc789702ab06.js +1 -0
  757. package/app/.next/static/chunks/app/api/translator/console-logs/route-7a42dc789702ab06.js +1 -0
  758. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-7a42dc789702ab06.js +1 -0
  759. package/app/.next/static/chunks/app/api/translator/load/route-7a42dc789702ab06.js +1 -0
  760. package/app/.next/static/chunks/app/api/translator/save/route-7a42dc789702ab06.js +1 -0
  761. package/app/.next/static/chunks/app/api/translator/send/route-7a42dc789702ab06.js +1 -0
  762. package/app/.next/static/chunks/app/api/translator/translate/route-7a42dc789702ab06.js +1 -0
  763. package/app/.next/static/chunks/app/api/tunnel/disable/route-7a42dc789702ab06.js +1 -0
  764. package/app/.next/static/chunks/app/api/tunnel/enable/route-7a42dc789702ab06.js +1 -0
  765. package/app/.next/static/chunks/app/api/tunnel/status/route-7a42dc789702ab06.js +1 -0
  766. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-7a42dc789702ab06.js +1 -0
  767. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-7a42dc789702ab06.js +1 -0
  768. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-7a42dc789702ab06.js +1 -0
  769. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-7a42dc789702ab06.js +1 -0
  770. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-7a42dc789702ab06.js +1 -0
  771. package/app/.next/static/chunks/app/api/usage/chart/route-7a42dc789702ab06.js +1 -0
  772. package/app/.next/static/chunks/app/api/usage/history/route-7a42dc789702ab06.js +1 -0
  773. package/app/.next/static/chunks/app/api/usage/logs/route-7a42dc789702ab06.js +1 -0
  774. package/app/.next/static/chunks/app/api/usage/providers/route-7a42dc789702ab06.js +1 -0
  775. package/app/.next/static/chunks/app/api/usage/report/route-7a42dc789702ab06.js +1 -0
  776. package/app/.next/static/chunks/app/api/usage/request-details/route-7a42dc789702ab06.js +1 -0
  777. package/app/.next/static/chunks/app/api/usage/request-logs/route-7a42dc789702ab06.js +1 -0
  778. package/app/.next/static/chunks/app/api/usage/stats/route-7a42dc789702ab06.js +1 -0
  779. package/app/.next/static/chunks/app/api/usage/stream/route-7a42dc789702ab06.js +1 -0
  780. package/app/.next/static/chunks/app/api/v1/api/chat/route-7a42dc789702ab06.js +1 -0
  781. package/app/.next/static/chunks/app/api/v1/audio/speech/route-7a42dc789702ab06.js +1 -0
  782. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-7a42dc789702ab06.js +1 -0
  783. package/app/.next/static/chunks/app/api/v1/audio/voices/route-7a42dc789702ab06.js +1 -0
  784. package/app/.next/static/chunks/app/api/v1/chat/completions/route-7a42dc789702ab06.js +1 -0
  785. package/app/.next/static/chunks/app/api/v1/embeddings/route-7a42dc789702ab06.js +1 -0
  786. package/app/.next/static/chunks/app/api/v1/images/generations/route-7a42dc789702ab06.js +1 -0
  787. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-7a42dc789702ab06.js +1 -0
  788. package/app/.next/static/chunks/app/api/v1/messages/route-7a42dc789702ab06.js +1 -0
  789. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-7a42dc789702ab06.js +1 -0
  790. package/app/.next/static/chunks/app/api/v1/models/info/route-7a42dc789702ab06.js +1 -0
  791. package/app/.next/static/chunks/app/api/v1/models/route-7a42dc789702ab06.js +1 -0
  792. package/app/.next/static/chunks/app/api/v1/responses/compact/route-7a42dc789702ab06.js +1 -0
  793. package/app/.next/static/chunks/app/api/v1/responses/route-7a42dc789702ab06.js +1 -0
  794. package/app/.next/static/chunks/app/api/v1/route-7a42dc789702ab06.js +1 -0
  795. package/app/.next/static/chunks/app/api/v1/search/route-7a42dc789702ab06.js +1 -0
  796. package/app/.next/static/chunks/app/api/v1/web/fetch/route-7a42dc789702ab06.js +1 -0
  797. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-7a42dc789702ab06.js +1 -0
  798. package/app/.next/static/chunks/app/api/v1beta/models/route-7a42dc789702ab06.js +1 -0
  799. package/app/.next/static/chunks/app/api/version/route-7a42dc789702ab06.js +1 -0
  800. package/app/.next/static/chunks/app/api/version/shutdown/route-7a42dc789702ab06.js +1 -0
  801. package/app/.next/static/chunks/app/api/version/update/route-7a42dc789702ab06.js +1 -0
  802. package/app/.next/static/chunks/app/callback/page-1ac4b69a5de26857.js +1 -0
  803. package/app/.next/static/chunks/app/layout-35b23f7e08fe3978.js +1 -0
  804. package/app/.next/static/chunks/app/login/page-98aaabbf53ef75f6.js +1 -0
  805. package/app/.next/static/chunks/app/manifest.webmanifest/route-7a42dc789702ab06.js +1 -0
  806. package/app/.next/static/chunks/app/page-7a42dc789702ab06.js +1 -0
  807. package/app/.next/static/chunks/{main-1b1bc8be25c3ce13.js → main-436691d9f611641e.js} +3 -3
  808. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-7a42dc789702ab06.js +1 -0
  809. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-7a42dc789702ab06.js +1 -0
  810. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-7a42dc789702ab06.js +1 -0
  811. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-7a42dc789702ab06.js +1 -0
  812. package/app/.next/static/chunks/{webpack-a33c667c0bbf302f.js → webpack-c2bac8d80aa27536.js} +1 -1
  813. package/app/.next/static/css/{081a0afca5a9bd20.css → 0f03023a765dc337.css} +1 -1
  814. package/app/.next/static/css/440b3581c215aef0.css +1 -0
  815. package/app/.next/static/media/material-symbols-outlined.50fdf095.woff2 +0 -0
  816. package/app/open-sse/config/appConstants.js +9 -3
  817. package/app/open-sse/config/kiroConstants.js +262 -0
  818. package/app/open-sse/config/providerModels.js +221 -20
  819. package/app/open-sse/config/providers.js +86 -23
  820. package/app/open-sse/config/runtimeConfig.js +6 -0
  821. package/app/open-sse/executors/base.js +21 -4
  822. package/app/open-sse/executors/codex.js +255 -28
  823. package/app/open-sse/executors/cursor.js +52 -2
  824. package/app/open-sse/executors/default.js +32 -6
  825. package/app/open-sse/executors/gemini-cli.js +26 -4
  826. package/app/open-sse/executors/github.js +16 -2
  827. package/app/open-sse/executors/kiro.js +37 -0
  828. package/app/open-sse/executors/opencode.js +6 -1
  829. package/app/open-sse/executors/qoder.js +420 -43
  830. package/app/open-sse/handlers/chatCore.js +22 -6
  831. package/app/open-sse/handlers/embeddingProviders/gemini.js +15 -3
  832. package/app/open-sse/handlers/imageProviders/codex.js +1 -1
  833. package/app/open-sse/handlers/imageProviders/index.js +1 -0
  834. package/app/open-sse/handlers/imageProviders/openai.js +7 -0
  835. package/app/open-sse/handlers/ttsProviders/genericFormats.js +2 -0
  836. package/app/open-sse/handlers/ttsProviders/minimax.js +59 -0
  837. package/app/open-sse/rtk/autodetect.js +9 -2
  838. package/app/open-sse/rtk/constants.js +2 -1
  839. package/app/open-sse/rtk/filters/buildOutput.js +127 -0
  840. package/app/open-sse/rtk/index.js +36 -0
  841. package/app/open-sse/services/kiroModels.js +332 -0
  842. package/app/open-sse/services/model.js +73 -0
  843. package/app/open-sse/services/qoderModels.js +214 -0
  844. package/app/open-sse/services/tokenRefresh.js +94 -19
  845. package/app/open-sse/services/usage.js +141 -39
  846. package/app/open-sse/translator/helpers/openaiHelper.js +3 -0
  847. package/app/open-sse/translator/request/openai-responses.js +28 -2
  848. package/app/open-sse/translator/request/openai-to-kiro.js +48 -4
  849. package/app/open-sse/translator/response/kiro-to-openai.js +10 -4
  850. package/app/open-sse/translator/response/openai-responses.js +10 -3
  851. package/app/open-sse/translator/response/openai-to-claude.js +59 -16
  852. package/app/open-sse/utils/clientDetector.js +6 -3
  853. package/app/open-sse/utils/debugLog.js +14 -0
  854. package/app/open-sse/utils/proxyFetch.js +101 -1
  855. package/app/open-sse/utils/reasoningContentInjector.js +41 -3
  856. package/app/open-sse/utils/stream.js +15 -3
  857. package/app/open-sse/utils/streamHandler.js +106 -6
  858. package/app/open-sse/utils/toolDeduper.js +49 -0
  859. package/app/open-sse/utils/usageTracking.js +10 -0
  860. package/app/package.json +7 -5
  861. package/app/public/i18n/literals/ar.json +4 -6
  862. package/app/public/i18n/literals/bn.json +4 -6
  863. package/app/public/i18n/literals/cs.json +4 -6
  864. package/app/public/i18n/literals/da.json +4 -6
  865. package/app/public/i18n/literals/de.json +4 -6
  866. package/app/public/i18n/literals/el.json +4 -6
  867. package/app/public/i18n/literals/es.json +4 -6
  868. package/app/public/i18n/literals/fi.json +4 -6
  869. package/app/public/i18n/literals/fr.json +4 -6
  870. package/app/public/i18n/literals/he.json +4 -6
  871. package/app/public/i18n/literals/hi.json +4 -6
  872. package/app/public/i18n/literals/hu.json +4 -6
  873. package/app/public/i18n/literals/id.json +4 -6
  874. package/app/public/i18n/literals/it.json +4 -6
  875. package/app/public/i18n/literals/ja.json +4 -6
  876. package/app/public/i18n/literals/ko.json +4 -6
  877. package/app/public/i18n/literals/nl.json +4 -6
  878. package/app/public/i18n/literals/no.json +4 -6
  879. package/app/public/i18n/literals/pl.json +4 -6
  880. package/app/public/i18n/literals/pt-BR.json +4 -6
  881. package/app/public/i18n/literals/pt-PT.json +4 -6
  882. package/app/public/i18n/literals/ro.json +5 -7
  883. package/app/public/i18n/literals/ru.json +4 -6
  884. package/app/public/i18n/literals/sv.json +4 -6
  885. package/app/public/i18n/literals/th.json +4 -6
  886. package/app/public/i18n/literals/tl.json +4 -6
  887. package/app/public/i18n/literals/tr.json +4 -6
  888. package/app/public/i18n/literals/uk.json +4 -6
  889. package/app/public/i18n/literals/ur.json +4 -6
  890. package/app/public/i18n/literals/vi.json +6 -8
  891. package/app/public/i18n/literals/zh-CN.json +5 -29
  892. package/app/public/i18n/literals/zh-TW.json +4 -6
  893. package/app/public/providers/amp.png +0 -0
  894. package/app/public/providers/deepseek-tui.png +0 -0
  895. package/app/public/providers/jcode.png +0 -0
  896. package/app/public/providers/qoder.png +0 -0
  897. package/app/public/providers/xiaomi-tokenplan.png +0 -0
  898. package/app/server.js +1 -1
  899. package/app/src/lib/oauth/services/qoder.js +216 -0
  900. package/app/src/lib/oauth/services/xai.js +238 -0
  901. package/app/src/lib/updater/updater.js +25 -0
  902. package/app/src/mitm/cert/install.js +123 -153
  903. package/app/src/mitm/config.js +34 -2
  904. package/app/src/mitm/handlers/antigravity.js +2 -1
  905. package/app/src/mitm/logger.js +11 -1
  906. package/app/src/shared/constants/cliTools.js +146 -29
  907. package/app/src/shared/constants/config.js +9 -2
  908. package/app/src/shared/constants/coworkPlugins.js +64 -944
  909. package/app/src/shared/constants/pricing.js +5 -2
  910. package/app/src/shared/constants/providers.js +71 -14
  911. package/app/src/shared/constants/ttsProviders.js +16 -0
  912. package/package.json +1 -1
  913. package/app/.next/server/app/api/cloud/auth/route.js +0 -1
  914. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +0 -1
  915. package/app/.next/server/app/api/cloud/credentials/update/route.js +0 -1
  916. package/app/.next/server/app/api/cloud/model/resolve/route.js +0 -1
  917. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +0 -1
  918. package/app/.next/server/app/api/cloud/models/alias/route.js +0 -1
  919. package/app/.next/server/app/api/tunnel/tailscale-login/route.js +0 -1
  920. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +0 -2
  921. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route_client-reference-manifest.js +0 -1
  922. package/app/.next/server/chunks/1985.js +0 -23
  923. package/app/.next/server/chunks/2417.js +0 -1
  924. package/app/.next/server/chunks/2506.js +0 -3
  925. package/app/.next/server/chunks/2549.js +0 -1
  926. package/app/.next/server/chunks/2583.js +0 -1
  927. package/app/.next/server/chunks/3646.js +0 -1
  928. package/app/.next/server/chunks/3855.js +0 -1
  929. package/app/.next/server/chunks/4084.js +0 -35
  930. package/app/.next/server/chunks/436.js +0 -1
  931. package/app/.next/server/chunks/4632.js +0 -1
  932. package/app/.next/server/chunks/5296.js +0 -1
  933. package/app/.next/server/chunks/5434.js +0 -1
  934. package/app/.next/server/chunks/5627.js +0 -23
  935. package/app/.next/server/chunks/6114.js +0 -1
  936. package/app/.next/server/chunks/7595.js +0 -1
  937. package/app/.next/server/chunks/7924.js +0 -1
  938. package/app/.next/server/chunks/8491.js +0 -1
  939. package/app/.next/server/chunks/8760.js +0 -1
  940. package/app/.next/server/chunks/8838.js +0 -1
  941. package/app/.next/static/DMu6oAfCAJu7LOUJpB89l/_buildManifest.js +0 -1
  942. package/app/.next/static/chunks/1321-bd1e73c270cd20da.js +0 -1
  943. package/app/.next/static/chunks/1a258343-4878413fb430abba.js +0 -1
  944. package/app/.next/static/chunks/2589-1e9bb7a900f2c1b0.js +0 -3
  945. package/app/.next/static/chunks/5497-c5298509cc559792.js +0 -7
  946. package/app/.next/static/chunks/7844-acf8217cdcb39d9a.js +0 -23
  947. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-b279697882f0ed2a.js +0 -1
  948. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-40604134b500e7ee.js +0 -1
  949. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-de34ae04d784597b.js +0 -1
  950. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-4c2d312eba93f6fa.js +0 -53
  951. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-2a196db0213415bf.js +0 -1
  952. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-08e3714a029236f2.js +0 -1
  953. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-b6595aeb7c5b386f.js +0 -1
  954. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-48670924de911859.js +0 -4
  955. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-280dceda93ddf1cb.js +0 -1
  956. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-d1fe33a3d1c02c4e.js +0 -2
  957. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-6420e67a5bd79512.js +0 -1
  958. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-1a126c66d5e5f689.js +0 -3
  959. package/app/.next/static/chunks/app/(dashboard)/layout-27244e694148142c.js +0 -1
  960. package/app/.next/static/chunks/app/_global-error/page-fb42fdff0ddaa89d.js +0 -1
  961. package/app/.next/static/chunks/app/api/antigravity-app/route-fb42fdff0ddaa89d.js +0 -1
  962. package/app/.next/static/chunks/app/api/antigravity-app-v2/route-fb42fdff0ddaa89d.js +0 -1
  963. package/app/.next/static/chunks/app/api/antigravity-ide/route-fb42fdff0ddaa89d.js +0 -1
  964. package/app/.next/static/chunks/app/api/antigravity-tools/import/route-fb42fdff0ddaa89d.js +0 -1
  965. package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-fb42fdff0ddaa89d.js +0 -1
  966. package/app/.next/static/chunks/app/api/auth/login/route-fb42fdff0ddaa89d.js +0 -1
  967. package/app/.next/static/chunks/app/api/auth/logout/route-fb42fdff0ddaa89d.js +0 -1
  968. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-fb42fdff0ddaa89d.js +0 -1
  969. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-fb42fdff0ddaa89d.js +0 -1
  970. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-fb42fdff0ddaa89d.js +0 -1
  971. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-fb42fdff0ddaa89d.js +0 -1
  972. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-fb42fdff0ddaa89d.js +0 -1
  973. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-fb42fdff0ddaa89d.js +0 -1
  974. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-fb42fdff0ddaa89d.js +0 -1
  975. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-fb42fdff0ddaa89d.js +0 -1
  976. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-fb42fdff0ddaa89d.js +0 -1
  977. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-fb42fdff0ddaa89d.js +0 -1
  978. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-fb42fdff0ddaa89d.js +0 -1
  979. package/app/.next/static/chunks/app/api/cloud/auth/route-fb42fdff0ddaa89d.js +0 -1
  980. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-fb42fdff0ddaa89d.js +0 -1
  981. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-fb42fdff0ddaa89d.js +0 -1
  982. package/app/.next/static/chunks/app/api/cloud/models/alias/route-fb42fdff0ddaa89d.js +0 -1
  983. package/app/.next/static/chunks/app/api/combos/[id]/route-fb42fdff0ddaa89d.js +0 -1
  984. package/app/.next/static/chunks/app/api/combos/route-fb42fdff0ddaa89d.js +0 -1
  985. package/app/.next/static/chunks/app/api/health/route-fb42fdff0ddaa89d.js +0 -1
  986. package/app/.next/static/chunks/app/api/init/route-fb42fdff0ddaa89d.js +0 -1
  987. package/app/.next/static/chunks/app/api/internal/account-health/route-fb42fdff0ddaa89d.js +0 -1
  988. package/app/.next/static/chunks/app/api/internal/request-detail/route-fb42fdff0ddaa89d.js +0 -1
  989. package/app/.next/static/chunks/app/api/internal/usage/route-fb42fdff0ddaa89d.js +0 -1
  990. package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-fb42fdff0ddaa89d.js +0 -1
  991. package/app/.next/static/chunks/app/api/keys/[id]/route-fb42fdff0ddaa89d.js +0 -1
  992. package/app/.next/static/chunks/app/api/keys/[id]/usage/route-fb42fdff0ddaa89d.js +0 -1
  993. package/app/.next/static/chunks/app/api/keys/route-fb42fdff0ddaa89d.js +0 -1
  994. package/app/.next/static/chunks/app/api/locale/route-fb42fdff0ddaa89d.js +0 -1
  995. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-fb42fdff0ddaa89d.js +0 -1
  996. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-fb42fdff0ddaa89d.js +0 -1
  997. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-fb42fdff0ddaa89d.js +0 -1
  998. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-fb42fdff0ddaa89d.js +0 -1
  999. package/app/.next/static/chunks/app/api/models/alias/route-fb42fdff0ddaa89d.js +0 -1
  1000. package/app/.next/static/chunks/app/api/models/availability/route-fb42fdff0ddaa89d.js +0 -1
  1001. package/app/.next/static/chunks/app/api/models/custom/route-fb42fdff0ddaa89d.js +0 -1
  1002. package/app/.next/static/chunks/app/api/models/disabled/route-fb42fdff0ddaa89d.js +0 -1
  1003. package/app/.next/static/chunks/app/api/models/route-fb42fdff0ddaa89d.js +0 -1
  1004. package/app/.next/static/chunks/app/api/models/test/route-fb42fdff0ddaa89d.js +0 -1
  1005. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-fb42fdff0ddaa89d.js +0 -1
  1006. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-fb42fdff0ddaa89d.js +0 -1
  1007. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-fb42fdff0ddaa89d.js +0 -1
  1008. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-fb42fdff0ddaa89d.js +0 -1
  1009. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-fb42fdff0ddaa89d.js +0 -1
  1010. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-fb42fdff0ddaa89d.js +0 -1
  1011. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-fb42fdff0ddaa89d.js +0 -1
  1012. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-fb42fdff0ddaa89d.js +0 -1
  1013. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-fb42fdff0ddaa89d.js +0 -1
  1014. package/app/.next/static/chunks/app/api/pricing/route-fb42fdff0ddaa89d.js +0 -1
  1015. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-fb42fdff0ddaa89d.js +0 -1
  1016. package/app/.next/static/chunks/app/api/provider-nodes/route-fb42fdff0ddaa89d.js +0 -1
  1017. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-fb42fdff0ddaa89d.js +0 -1
  1018. package/app/.next/static/chunks/app/api/providers/[id]/models/route-fb42fdff0ddaa89d.js +0 -1
  1019. package/app/.next/static/chunks/app/api/providers/[id]/route-fb42fdff0ddaa89d.js +0 -1
  1020. package/app/.next/static/chunks/app/api/providers/[id]/test/route-fb42fdff0ddaa89d.js +0 -1
  1021. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-fb42fdff0ddaa89d.js +0 -1
  1022. package/app/.next/static/chunks/app/api/providers/client/route-fb42fdff0ddaa89d.js +0 -1
  1023. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-fb42fdff0ddaa89d.js +0 -1
  1024. package/app/.next/static/chunks/app/api/providers/route-fb42fdff0ddaa89d.js +0 -1
  1025. package/app/.next/static/chunks/app/api/providers/suggested-models/route-fb42fdff0ddaa89d.js +0 -1
  1026. package/app/.next/static/chunks/app/api/providers/test-batch/route-fb42fdff0ddaa89d.js +0 -1
  1027. package/app/.next/static/chunks/app/api/providers/validate/route-fb42fdff0ddaa89d.js +0 -1
  1028. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-fb42fdff0ddaa89d.js +0 -1
  1029. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-fb42fdff0ddaa89d.js +0 -1
  1030. package/app/.next/static/chunks/app/api/proxy-pools/route-fb42fdff0ddaa89d.js +0 -1
  1031. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-fb42fdff0ddaa89d.js +0 -1
  1032. package/app/.next/static/chunks/app/api/settings/database/route-fb42fdff0ddaa89d.js +0 -1
  1033. package/app/.next/static/chunks/app/api/settings/proxy-test/route-fb42fdff0ddaa89d.js +0 -1
  1034. package/app/.next/static/chunks/app/api/settings/require-login/route-fb42fdff0ddaa89d.js +0 -1
  1035. package/app/.next/static/chunks/app/api/settings/route-fb42fdff0ddaa89d.js +0 -1
  1036. package/app/.next/static/chunks/app/api/shutdown/route-fb42fdff0ddaa89d.js +0 -1
  1037. package/app/.next/static/chunks/app/api/tags/route-fb42fdff0ddaa89d.js +0 -1
  1038. package/app/.next/static/chunks/app/api/translator/console-logs/route-fb42fdff0ddaa89d.js +0 -1
  1039. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-fb42fdff0ddaa89d.js +0 -1
  1040. package/app/.next/static/chunks/app/api/translator/load/route-fb42fdff0ddaa89d.js +0 -1
  1041. package/app/.next/static/chunks/app/api/translator/save/route-fb42fdff0ddaa89d.js +0 -1
  1042. package/app/.next/static/chunks/app/api/translator/send/route-fb42fdff0ddaa89d.js +0 -1
  1043. package/app/.next/static/chunks/app/api/translator/translate/route-fb42fdff0ddaa89d.js +0 -1
  1044. package/app/.next/static/chunks/app/api/tunnel/disable/route-fb42fdff0ddaa89d.js +0 -1
  1045. package/app/.next/static/chunks/app/api/tunnel/enable/route-fb42fdff0ddaa89d.js +0 -1
  1046. package/app/.next/static/chunks/app/api/tunnel/status/route-fb42fdff0ddaa89d.js +0 -1
  1047. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-fb42fdff0ddaa89d.js +0 -1
  1048. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-fb42fdff0ddaa89d.js +0 -1
  1049. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-fb42fdff0ddaa89d.js +0 -1
  1050. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-fb42fdff0ddaa89d.js +0 -1
  1051. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-fb42fdff0ddaa89d.js +0 -1
  1052. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-fb42fdff0ddaa89d.js +0 -1
  1053. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-fb42fdff0ddaa89d.js +0 -1
  1054. package/app/.next/static/chunks/app/api/usage/chart/route-fb42fdff0ddaa89d.js +0 -1
  1055. package/app/.next/static/chunks/app/api/usage/history/route-fb42fdff0ddaa89d.js +0 -1
  1056. package/app/.next/static/chunks/app/api/usage/logs/route-fb42fdff0ddaa89d.js +0 -1
  1057. package/app/.next/static/chunks/app/api/usage/providers/route-fb42fdff0ddaa89d.js +0 -1
  1058. package/app/.next/static/chunks/app/api/usage/report/route-fb42fdff0ddaa89d.js +0 -1
  1059. package/app/.next/static/chunks/app/api/usage/request-details/route-fb42fdff0ddaa89d.js +0 -1
  1060. package/app/.next/static/chunks/app/api/usage/request-logs/route-fb42fdff0ddaa89d.js +0 -1
  1061. package/app/.next/static/chunks/app/api/usage/stats/route-fb42fdff0ddaa89d.js +0 -1
  1062. package/app/.next/static/chunks/app/api/usage/stream/route-fb42fdff0ddaa89d.js +0 -1
  1063. package/app/.next/static/chunks/app/api/v1/api/chat/route-fb42fdff0ddaa89d.js +0 -1
  1064. package/app/.next/static/chunks/app/api/v1/audio/speech/route-fb42fdff0ddaa89d.js +0 -1
  1065. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-fb42fdff0ddaa89d.js +0 -1
  1066. package/app/.next/static/chunks/app/api/v1/audio/voices/route-fb42fdff0ddaa89d.js +0 -1
  1067. package/app/.next/static/chunks/app/api/v1/chat/completions/route-fb42fdff0ddaa89d.js +0 -1
  1068. package/app/.next/static/chunks/app/api/v1/embeddings/route-fb42fdff0ddaa89d.js +0 -1
  1069. package/app/.next/static/chunks/app/api/v1/images/generations/route-fb42fdff0ddaa89d.js +0 -1
  1070. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-fb42fdff0ddaa89d.js +0 -1
  1071. package/app/.next/static/chunks/app/api/v1/messages/route-fb42fdff0ddaa89d.js +0 -1
  1072. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-fb42fdff0ddaa89d.js +0 -1
  1073. package/app/.next/static/chunks/app/api/v1/models/info/route-fb42fdff0ddaa89d.js +0 -1
  1074. package/app/.next/static/chunks/app/api/v1/models/route-fb42fdff0ddaa89d.js +0 -1
  1075. package/app/.next/static/chunks/app/api/v1/responses/compact/route-fb42fdff0ddaa89d.js +0 -1
  1076. package/app/.next/static/chunks/app/api/v1/responses/route-fb42fdff0ddaa89d.js +0 -1
  1077. package/app/.next/static/chunks/app/api/v1/route-fb42fdff0ddaa89d.js +0 -1
  1078. package/app/.next/static/chunks/app/api/v1/search/route-fb42fdff0ddaa89d.js +0 -1
  1079. package/app/.next/static/chunks/app/api/v1/web/fetch/route-fb42fdff0ddaa89d.js +0 -1
  1080. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-fb42fdff0ddaa89d.js +0 -1
  1081. package/app/.next/static/chunks/app/api/v1beta/models/route-fb42fdff0ddaa89d.js +0 -1
  1082. package/app/.next/static/chunks/app/api/version/route-fb42fdff0ddaa89d.js +0 -1
  1083. package/app/.next/static/chunks/app/api/version/update/route-fb42fdff0ddaa89d.js +0 -1
  1084. package/app/.next/static/chunks/app/callback/page-2d6169978b33b3bc.js +0 -1
  1085. package/app/.next/static/chunks/app/layout-fa54526b5d7255bf.js +0 -1
  1086. package/app/.next/static/chunks/app/login/page-69f6d8a6f709da51.js +0 -1
  1087. package/app/.next/static/chunks/app/manifest.webmanifest/route-fb42fdff0ddaa89d.js +0 -1
  1088. package/app/.next/static/chunks/app/page-fb42fdff0ddaa89d.js +0 -1
  1089. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-fb42fdff0ddaa89d.js +0 -1
  1090. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-fb42fdff0ddaa89d.js +0 -1
  1091. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-fb42fdff0ddaa89d.js +0 -1
  1092. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fb42fdff0ddaa89d.js +0 -1
  1093. package/app/.next/static/css/5903295427476216.css +0 -1
  1094. /package/app/.next/static/{DMu6oAfCAJu7LOUJpB89l → YEhAtVGU-1J8HgdJmmpjP}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- (()=>{var a={};a.id=2825,a.ids=[2825],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},7725:(a,b,c)=>{a.exports=c(94542).isPlainObject},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},24752:(a,b,c)=>{Promise.resolve().then(c.bind(c,87149))},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},82896:(a,b,c)=>{Promise.resolve().then(c.bind(c,90581))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87149:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/dashboard/usage/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/dashboard/usage/page.js","default")},90581:(a,b,c)=>{"use strict";let d;c.r(b),c.d(b,{default:()=>eF});var e,f,g,h,i,j=c(48249),k=c(67484),l=c(19099),m=c(50412),n=c(17660),o=c(99070),p=c(71404);function q({isOpen:a,onClose:b,title:c,children:d,width:e="md",className:f}){let g={sm:"w-[400px]",md:"w-[500px]",lg:"w-[600px]",xl:"w-[800px]",full:"w-full"};return a?(0,j.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,j.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in cursor-pointer",onClick:b,"aria-hidden":"true"}),(0,j.jsxs)("div",{className:(0,p.cn)("absolute right-0 top-0 h-full bg-surface flex flex-col","shadow-[var(--shadow-elev)]","slide-in-right","border-l border-border-subtle",g[e]||g.md,f),children:[(0,j.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-border-subtle flex-shrink-0",children:[(0,j.jsx)("div",{className:"flex items-center gap-3",children:c&&(0,j.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:c})}),(0,j.jsx)("button",{type:"button",onClick:b,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,j.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,j.jsx)("div",{className:"flex-1 overflow-y-auto p-6 custom-scrollbar",children:d})]})]}):null}function r({currentPage:a,pageSize:b,totalItems:c,onPageChange:d,onPageSizeChange:e,className:f}){let g=Math.ceil(c/b),h=c>0?(a-1)*b+1:0,i=Math.min(a*b,c),k=(()=>{let b=[],c=Math.max(1,a-2),d=Math.min(g,c+5-1);d-c+1<5&&(c=Math.max(1,d-5+1));for(let a=c;a<=d;a++)b.push(a);return b})();return(0,j.jsxs)("div",{className:(0,p.cn)("flex flex-col sm:flex-row items-center justify-between gap-4 py-4",f),children:[c>0&&(0,j.jsxs)("div",{className:"text-sm text-text-muted",children:["Showing ",(0,j.jsx)("span",{className:"font-medium text-text-main",children:h})," to"," ",(0,j.jsx)("span",{className:"font-medium text-text-main",children:i})," of"," ",(0,j.jsx)("span",{className:"font-medium text-text-main",children:c})," results"]}),(0,j.jsxs)("div",{className:"flex items-center gap-4",children:[e&&(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[(0,j.jsx)("span",{className:"text-sm text-text-muted",children:"Rows:"}),(0,j.jsx)("select",{value:b,onChange:a=>e(Number(a.target.value)),className:(0,p.cn)("h-9 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","cursor-pointer"),children:[10,20,50].map(a=>(0,j.jsx)("option",{value:a,children:a},a))})]}),g>1&&(0,j.jsxs)("div",{className:"flex items-center gap-1",children:[(0,j.jsx)(o.default,{variant:"outline",size:"sm",onClick:()=>d(a-1),disabled:1===a,className:"w-9 px-0",children:(0,j.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_left"})}),k[0]>1&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(o.default,{variant:"ghost",size:"sm",onClick:()=>d(1),className:"w-9 px-0",children:"1"}),k[0]>2&&(0,j.jsx)("span",{className:"text-text-muted px-1",children:"..."})]}),k.map(b=>(0,j.jsx)(o.default,{variant:a===b?"primary":"ghost",size:"sm",onClick:()=>d(b),className:"w-9 px-0",children:b},b)),k[k.length-1]<g&&(0,j.jsxs)(j.Fragment,{children:[k[k.length-1]<g-1&&(0,j.jsx)("span",{className:"text-text-muted px-1",children:"..."}),(0,j.jsx)(o.default,{variant:"ghost",size:"sm",onClick:()=>d(g),className:"w-9 px-0",children:g})]}),(0,j.jsx)(o.default,{variant:"outline",size:"sm",onClick:()=>d(a+1),disabled:a===g,className:"w-9 px-0",children:(0,j.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_right"})})]})]})]})}var s=c(91922),t=c(96919);let u=null,v=null;async function w(){if(u&&v)return{providerNameCache:u,providerNodesCache:v};let a=await fetch("/api/provider-nodes"),b=(await a.json()).nodes||[];for(let a of(v={},b))v[a.id]=a.name;return{providerNameCache:u={...t.Q2,...v},providerNodesCache:v}}function x(a,b){if(!a||!b)return a;let c=b[a];if("string"==typeof c)return c;if(c?.name)return c.name;let d=(0,t.zt)(a)||t.Q2[a];return d?.name||a}function y({title:a,children:b,defaultOpen:c=!1,icon:d=null}){let[e,f]=(0,k.useState)(c);return(0,j.jsxs)("div",{className:"border border-black/5 dark:border-white/5 rounded-lg overflow-hidden",children:[(0,j.jsxs)("button",{type:"button",onClick:()=>f(!e),className:"w-full flex items-center justify-between p-3 bg-black/[0.02] dark:bg-white/[0.02] hover:bg-black/[0.04] dark:hover:bg-white/[0.04] transition-colors",children:[(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[d&&(0,j.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted",children:d}),(0,j.jsx)("span",{className:"font-semibold text-sm text-text-main",children:a})]}),(0,j.jsx)("span",{className:(0,p.cn)("material-symbols-outlined text-[20px] text-text-muted transition-transform duration-200",e?"rotate-90":""),children:"chevron_right"})]}),e&&(0,j.jsx)("div",{className:"p-4 border-t border-black/5 dark:border-white/5",children:b})]})}function z(a){let b=a?.prompt_tokens||a?.input_tokens||0,c=a?.cached_tokens||a?.cache_read_input_tokens||0;return b<c?c:b}function A(a){return a?.cache_read_input_tokens||a?.cached_tokens||a?.prompt_tokens_details?.cached_tokens||0}function B(a){return a?.completion_tokens||a?.output_tokens||0}function C(){var a,b;let[c,d]=(0,k.useState)([]),[e,f]=(0,k.useState)({page:1,pageSize:20,totalItems:0,totalPages:0}),[g,h]=(0,k.useState)(!1),[i,l]=(0,k.useState)(null),[m,t]=(0,k.useState)(!1),[u,v]=(0,k.useState)([]),[C,D]=(0,k.useState)(null),[E,F]=(0,k.useState)({provider:"",startDate:"",endDate:""});return(0,k.useCallback)(async()=>{try{let a=await fetch("/api/usage/providers"),b=await a.json();v(b.providers||[]);let c=await w();D(c.providerNameCache)}catch(a){console.error("Failed to fetch providers:",a)}},[]),(0,k.useCallback)(async()=>{h(!0);try{let a=new URLSearchParams({page:e.page.toString(),pageSize:e.pageSize.toString()});E.provider&&a.append("provider",E.provider),E.startDate&&a.append("startDate",E.startDate),E.endDate&&a.append("endDate",E.endDate);let b=await fetch(`/api/usage/request-details?${a}`),c=await b.json();d(c.details||[]),f(a=>({...a,...c.pagination}))}catch(a){console.error("Failed to fetch request details:",a)}finally{h(!1)}},[e.page,e.pageSize,E]),(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,j.jsx)(n.default,{padding:"md",children:(0,j.jsxs)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,j.jsx)("label",{htmlFor:"provider-filter",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,j.jsxs)("select",{id:"provider-filter",value:E.provider,onChange:a=>F({...E,provider:a.target.value}),className:(0,p.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","w-full min-w-0 cursor-pointer"),children:[(0,j.jsx)("option",{value:"",children:"All Providers"}),u.map(a=>(0,j.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,j.jsx)("label",{htmlFor:"start-date-filter",className:"text-sm font-medium text-text-main",children:"Start Date"}),(0,j.jsx)("input",{id:"start-date-filter",type:"datetime-local",value:E.startDate,onChange:a=>F({...E,startDate:a.target.value}),className:(0,p.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,j.jsx)("label",{htmlFor:"end-date-filter",className:"text-sm font-medium text-text-main",children:"End Date"}),(0,j.jsx)("input",{id:"end-date-filter",type:"datetime-local",value:E.endDate,onChange:a=>F({...E,endDate:a.target.value}),className:(0,p.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-2 sm:col-span-2 lg:col-span-1",children:[(0,j.jsx)("span",{className:"hidden text-sm font-medium text-text-main opacity-0 lg:block","aria-hidden":"true",children:"Clear"}),(0,j.jsx)(o.default,{variant:"ghost",onClick:()=>{F({provider:"",startDate:"",endDate:""})},disabled:!E.provider&&!E.startDate&&!E.endDate,className:"w-full",children:"Clear Filters"})]})]})}),(0,j.jsxs)(n.default,{padding:"none",children:[(0,j.jsx)("div",{className:"overflow-x-auto",children:(0,j.jsxs)("table",{className:"w-full min-w-[880px]",children:[(0,j.jsx)("thead",{children:(0,j.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5",children:[(0,j.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Timestamp"}),(0,j.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Model"}),(0,j.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Provider"}),(0,j.jsx)("th",{className:"text-center p-4 text-sm font-semibold text-text-main",title:"API Key",children:"\uD83D\uDD11"}),(0,j.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Input Tokens"}),(0,j.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",style:{color:"var(--color-info, #06b6d4)"},children:"Cached"}),(0,j.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Output Tokens"}),(0,j.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Latency"}),(0,j.jsx)("th",{className:"text-center p-4 text-sm font-semibold text-text-main",children:"Action"})]})}),(0,j.jsx)("tbody",{children:g?(0,j.jsx)("tr",{children:(0,j.jsx)("td",{colSpan:"9",className:"p-8 text-center text-text-muted",children:(0,j.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,j.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px]",children:"progress_activity"}),"Loading..."]})})}):0===c.length?(0,j.jsx)("tr",{children:(0,j.jsx)("td",{colSpan:"9",className:"p-8 text-center text-text-muted",children:"No request details found"})}):c.map((a,b)=>(0,j.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 last:border-b-0 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,j.jsx)("td",{className:"whitespace-nowrap p-4 text-sm text-text-main",children:new Date(a.timestamp).toLocaleString()}),(0,j.jsx)("td",{className:"max-w-[260px] truncate p-4 font-mono text-sm text-text-main",children:a.model}),(0,j.jsx)("td",{className:"max-w-[180px] truncate p-4 text-sm text-text-main",children:(0,j.jsx)("span",{className:"font-medium",children:x(a.provider,C)})}),(0,j.jsx)("td",{className:"p-4 text-center",children:(0,j.jsx)(s.A,{apiKey:a.apiKey})}),(0,j.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:z(a.tokens).toLocaleString()}),(0,j.jsx)("td",{className:"p-4 text-sm text-right font-mono",style:{color:"var(--color-info, #06b6d4)"},children:A(a.tokens)>0?A(a.tokens).toLocaleString():"—"}),(0,j.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:B(a.tokens).toLocaleString()}),(0,j.jsx)("td",{className:"p-4 text-sm text-text-muted",children:(0,j.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,j.jsxs)("div",{children:["TTFT: ",(0,j.jsxs)("span",{className:"font-mono",children:[a.latency?.ttft||0,"ms"]})]}),(0,j.jsxs)("div",{children:["Total: ",(0,j.jsxs)("span",{className:"font-mono",children:[a.latency?.total||0,"ms"]})]})]})}),(0,j.jsx)("td",{className:"p-4 text-center",children:(0,j.jsx)(o.default,{variant:"outline",size:"sm",onClick:()=>{l(a),t(!0)},children:"Detail"})})]},`${a.id}-${b}`))})]})}),!g&&c.length>0&&(0,j.jsx)("div",{className:"border-t border-black/5 dark:border-white/5",children:(0,j.jsx)(r,{currentPage:e.page,pageSize:e.pageSize,totalItems:e.totalItems,onPageChange:a=>{f(b=>({...b,page:a}))},onPageSizeChange:a=>{f(b=>({...b,pageSize:a,page:1}))}})})]}),(0,j.jsx)(q,{isOpen:m,onClose:()=>t(!1),title:"Request Details",width:"lg",children:i&&(0,j.jsxs)("div",{className:"space-y-6",children:[(0,j.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-4 text-sm sm:grid-cols-2",children:[(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"ID:"})," ",(0,j.jsx)("span",{className:"break-all font-mono text-text-main",children:i.id})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Timestamp:"})," ",(0,j.jsx)("span",{className:"text-text-main",children:new Date(i.timestamp).toLocaleString()})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Provider:"})," ",(0,j.jsx)("span",{className:"text-text-main font-medium",children:x(i.provider,C)})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Model:"})," ",(0,j.jsx)("span",{className:"text-text-main font-mono",children:i.model})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Status:"})," ",(0,j.jsx)("span",{className:(0,p.cn)("font-medium","success"===(a=i.status)?"text-green-600":"input_only"===a||"partial"===a?"text-amber-600":"text-red-600"),children:"input_only"===(b=i.status)?"input only":b})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Latency:"})," ",(0,j.jsxs)("span",{className:"text-text-main font-mono",children:["TTFT ",i.latency?.ttft||0,"ms / Total ",i.latency?.total||0,"ms"]})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Input Tokens:"})," ",(0,j.jsx)("span",{className:"text-text-main font-mono",children:z(i.tokens).toLocaleString()})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Cached Tokens:"})," ",(0,j.jsx)("span",{className:"font-mono",style:{color:"var(--color-info, #06b6d4)"},children:A(i.tokens)>0?A(i.tokens).toLocaleString():"—"})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Output Tokens:"})," ",(0,j.jsx)("span",{className:"text-text-main font-mono",children:B(i.tokens).toLocaleString()})]}),i.apiKey&&(0,j.jsxs)("div",{className:"col-span-2",children:[(0,j.jsx)("span",{className:"text-text-muted",children:"API Key:"})," ",(0,j.jsx)("span",{className:"text-text-main font-mono text-xs break-all",children:i.apiKey})]})]}),(0,j.jsxs)("div",{className:"space-y-4",children:[(0,j.jsx)(y,{title:"1. Client Request (Input)",defaultOpen:!0,icon:"input",children:(0,j.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(i.request,null,2)})}),i.providerRequest&&(0,j.jsx)(y,{title:"2. Provider Request (Translated)",icon:"translate",children:(0,j.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(i.providerRequest,null,2)})}),i.providerResponse&&(0,j.jsx)(y,{title:"3. Provider Response (Raw)",icon:"data_object",children:(0,j.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:"object"==typeof i.providerResponse?JSON.stringify(i.providerResponse,null,2):i.providerResponse})}),(0,j.jsxs)(y,{title:"4. Client Response (Final)",defaultOpen:!0,icon:"output",children:[i.response?.thinking&&(0,j.jsxs)("div",{className:"mb-4",children:[(0,j.jsxs)("h4",{className:"font-semibold text-text-main mb-2 flex items-center gap-2 text-xs uppercase tracking-wide opacity-70",children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"psychology"}),"Thinking Process"]}),(0,j.jsx)("pre",{className:"max-h-[200px] max-w-full overflow-auto rounded-lg border border-amber-200 bg-amber-50 p-3 font-mono text-xs text-amber-900 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-100 sm:p-4",children:i.response.thinking})]}),(0,j.jsx)("h4",{className:"font-semibold text-text-main mb-2 text-xs uppercase tracking-wide opacity-70",children:"Content"}),(0,j.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:i.response?.content||"[No content]"})]})]})]})})]})}var D=c(91099),E=c(49885),F=c.n(E);let G=a=>new Intl.NumberFormat().format(a||0),H=a=>`$${(a||0).toFixed(4)}`;function I({totals:a}){let b=a?.promptTokens>0?((a.cachedTokens||0)/a.promptTokens*100).toFixed(1):"0.0",c=[{label:"Requests",value:G(a?.requests),color:"text-primary"},{label:"Total Tokens",value:G(a?.totalTokens),color:"text-text-main"},{label:"Input Tokens",value:G(a?.promptTokens),color:"text-text-muted",sub:`${G(a?.cachedTokens)} cached`},{label:"Est. Cost",value:`~${H(a?.cost)}`,color:"text-warning",sub:"Estimated"},{label:"Avg Cost/Req",value:H(a?.avgCostPerRequest),color:"text-text-main",sub:`${b}% cache hit`}];return(0,j.jsx)("div",{className:"grid min-w-0 grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-5 sm:gap-4",children:c.map(a=>(0,j.jsxs)(n.default,{className:"flex min-w-0 flex-col gap-0.5 px-4 py-3",children:[(0,j.jsx)("span",{className:"text-xs font-semibold uppercase text-text-muted",children:a.label}),(0,j.jsx)("span",{className:`truncate text-xl font-bold ${a.color}`,children:a.value}),a.sub&&(0,j.jsx)("span",{className:"text-[10px] text-text-muted",children:a.sub})]},a.label))})}I.propTypes={totals:F().object};var J=c(80322),K=c(53935),L=c(90206),M=["axis"],N=(0,k.forwardRef)((a,b)=>k.createElement(L.P,{chartName:"ComposedChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:M,tooltipPayloadSearcher:K.uN,categoricalChartProps:a,ref:b})),O=c(28946),P=c(22393),Q=c(54206),R=c(63691),S=c(74429),T=c(73919),U=c(99314),V=c(54702);let W=Math.cos,X=Math.sin,Y=Math.sqrt,Z=Math.PI,$=2*Z,_={draw(a,b){let c=Y(b/Z);a.moveTo(c,0),a.arc(0,0,c,0,$)}},aa=Y(1/3),ab=2*aa,ac=X(Z/10)/X(7*Z/10),ad=X($/10)*ac,ae=-W($/10)*ac,af=Y(3),ag=Y(3)/2,ah=1/Y(12),ai=(ah/2+1)*3;var aj=c(99608),ak=c(85922);Y(3),Y(3);var al=c(1791),am=c(50149),an=["type","size","sizeType"];function ao(){return(ao=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function ap(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function aq(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?ap(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):ap(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}var ar={symbolCircle:_,symbolCross:{draw(a,b){let c=Y(b/5)/2;a.moveTo(-3*c,-c),a.lineTo(-c,-c),a.lineTo(-c,-3*c),a.lineTo(c,-3*c),a.lineTo(c,-c),a.lineTo(3*c,-c),a.lineTo(3*c,c),a.lineTo(c,c),a.lineTo(c,3*c),a.lineTo(-c,3*c),a.lineTo(-c,c),a.lineTo(-3*c,c),a.closePath()}},symbolDiamond:{draw(a,b){let c=Y(b/ab),d=c*aa;a.moveTo(0,-c),a.lineTo(d,0),a.lineTo(0,c),a.lineTo(-d,0),a.closePath()}},symbolSquare:{draw(a,b){let c=Y(b),d=-c/2;a.rect(d,d,c,c)}},symbolStar:{draw(a,b){let c=Y(.8908130915292852*b),d=ad*c,e=ae*c;a.moveTo(0,-c),a.lineTo(d,e);for(let b=1;b<5;++b){let f=$*b/5,g=W(f),h=X(f);a.lineTo(h*c,-g*c),a.lineTo(g*d-h*e,h*d+g*e)}a.closePath()}},symbolTriangle:{draw(a,b){let c=-Y(b/(3*af));a.moveTo(0,2*c),a.lineTo(-af*c,-c),a.lineTo(af*c,-c),a.closePath()}},symbolWye:{draw(a,b){let c=Y(b/ai),d=c/2,e=c*ah,f=c*ah+c,g=-d;a.moveTo(d,e),a.lineTo(d,f),a.lineTo(g,f),a.lineTo(-.5*d-ag*e,ag*d+-.5*e),a.lineTo(-.5*d-ag*f,ag*d+-.5*f),a.lineTo(-.5*g-ag*f,ag*g+-.5*f),a.lineTo(-.5*d+ag*e,-.5*e-ag*d),a.lineTo(-.5*d+ag*f,-.5*f-ag*d),a.lineTo(-.5*g+ag*f,-.5*f-ag*g),a.closePath()}}},as=Math.PI/180,at=a=>{var{type:b="circle",size:c=64,sizeType:d="area"}=a,e=aq(aq({},function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,an)),{},{type:b,size:c,sizeType:d}),f="circle";"string"==typeof b&&(f=b);var{className:g,cx:h,cy:i}=e,j=(0,am.a)(e);return(0,al.Et)(h)&&(0,al.Et)(i)&&(0,al.Et)(c)?k.createElement("path",ao({},j,{className:(0,U.$)("recharts-symbols",g),transform:"translate(".concat(h,", ").concat(i,")"),d:(()=>{var a,b=(a=f,ar["symbol".concat((0,al.Zb)(a))]||_),e=(function(a,b){let c=null,d=(0,ak.i)(e);function e(){let e;if(c||(c=e=d()),a.apply(this,arguments).draw(c,+b.apply(this,arguments)),e)return c=null,e+""||null}return a="function"==typeof a?a:(0,aj.A)(a||_),b="function"==typeof b?b:(0,aj.A)(void 0===b?64:+b),e.type=function(b){return arguments.length?(a="function"==typeof b?b:(0,aj.A)(b),e):a},e.size=function(a){return arguments.length?(b="function"==typeof a?a:(0,aj.A)(+a),e):b},e.context=function(a){return arguments.length?(c=null==a?null:a,e):c},e})().type(b).size(((a,b,c)=>{if("area"===b)return a;switch(c){case"cross":return 5*a*a/9;case"diamond":return .5*a*a/Math.sqrt(3);case"square":return a*a;case"star":var d=18*as;return 1.25*a*a*(Math.tan(d)-Math.tan(2*d)*Math.tan(d)**2);case"triangle":return Math.sqrt(3)*a*a/4;case"wye":return(21-10*Math.sqrt(3))*a*a/8;default:return Math.PI*a*a/4}})(c,d,f))();if(null!==e)return e})()})):null};at.registerSymbol=(a,b)=>{ar["symbol".concat((0,al.Zb)(a))]=b};var au=c(64635),av=c(69599);function aw(){return(aw=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function ax(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function ay(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?ax(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):ax(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}var az={align:"center",iconSize:14,inactiveColor:"#ccc",layout:"horizontal",verticalAlign:"middle",labelStyle:{}};function aA(a){var{data:b,iconType:c,inactiveColor:d}=a,e=32/6,f=32/3,g=b.inactive?d:b.color,h=null!=c?c:b.type;if("none"===h)return null;if("plainline"===h)return k.createElement("line",{strokeWidth:4,fill:"none",stroke:g,strokeDasharray:function(a){if("object"==typeof a&&null!==a&&"strokeDasharray"in a)return String(a.strokeDasharray)}(b.payload),x1:0,y1:16,x2:32,y2:16,className:"recharts-legend-icon"});if("line"===h)return k.createElement("path",{strokeWidth:4,fill:"none",stroke:g,d:"M0,".concat(16,"h").concat(f,"\n A").concat(e,",").concat(e,",0,1,1,").concat(2*f,",").concat(16,"\n H").concat(32,"M").concat(2*f,",").concat(16,"\n A").concat(e,",").concat(e,",0,1,1,").concat(f,",").concat(16),className:"recharts-legend-icon"});if("rect"===h)return k.createElement("path",{stroke:"none",fill:g,d:"M0,".concat(4,"h").concat(32,"v").concat(24,"h").concat(-32,"z"),className:"recharts-legend-icon"});if(k.isValidElement(b.legendIcon)){var i=ay({},b);return delete i.legendIcon,k.cloneElement(b.legendIcon,i)}return k.createElement(at,{fill:g,cx:16,cy:16,size:32,sizeType:"diameter",type:h})}function aB(a){var{payload:b,iconSize:c,layout:d,formatter:e,inactiveColor:f,iconType:g,labelStyle:h}=a,i={x:0,y:0,width:32,height:32},j={display:"horizontal"===d?"inline-block":"block",marginRight:10},l={display:"inline-block",verticalAlign:"middle",marginRight:4};return b.map((b,d)=>{var m=b.formatter||e,n=(0,U.$)({"recharts-legend-item":!0,["legend-item-".concat(d)]:!0,inactive:b.inactive});if("none"===b.type)return null;var o="object"==typeof h?ay({},h):{};o.color=b.inactive?f:o.color||b.color;var p=m?m(b.value,b,d):b.value;return k.createElement("li",aw({className:n,style:j,key:"legend-item-".concat(d)},(0,au.XC)(a,b,d)),k.createElement(V.u,{width:c,height:c,viewBox:i,style:l,"aria-label":"".concat(b.value," legend icon")},k.createElement(aA,{data:b,iconType:g,inactiveColor:f})),k.createElement("span",{className:"recharts-legend-item-text",style:o},p))})}var aC=a=>{var b=(0,av.e)(a,az),{payload:c,layout:d,align:e}=b;return c&&c.length?k.createElement("ul",{className:"recharts-default-legend",style:{padding:0,margin:0,textAlign:"horizontal"===d?e:"left"}},k.createElement(aB,aw({},b,{payload:c}))):null},aD=c(60226),aE=c(32671),aF=c(7795),aG=c(12450),aH=c(55644);c(46154);var aI=c(66762),aJ=["contextPayload"];function aK(){return(aK=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function aL(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function aM(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?aL(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):aL(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function aN(a){return a.value}function aO(a){var{contextPayload:b}=a,c=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,aJ),d=(0,aD.s)(b,a.payloadUniqBy,aN),e=aM(aM({},c),{},{payload:d});return k.isValidElement(a.content)?k.cloneElement(a.content,e):"function"==typeof a.content?k.createElement(a.content,e):k.createElement(aC,e)}function aP(a){return(0,aE.j)(),null}function aQ(a){return(0,aE.j)(),null}var aR={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",layout:"horizontal",verticalAlign:"bottom"},aS=k.memo(function(a){var b,c=(0,av.e)(a,aR),d=(0,aE.G)(aF.g0),e=(0,T.M)(),f=(0,aH.Kp)(),{width:g,height:h,wrapperStyle:i,portal:j}=c,[l,m]=(0,aG.V)([d]),n=(0,aH.yi)(),o=(0,aH.rY)();if(null==n||null==o)return null;var p=n-((null==f?void 0:f.left)||0)-((null==f?void 0:f.right)||0),q=(b=c.layout,"vertical"===b&&null!=h?{height:h}:"horizontal"===b?{width:g||p}:null),r=j?i:aM(aM({position:"absolute",width:(null==q?void 0:q.width)||g||"auto",height:(null==q?void 0:q.height)||h||"auto"},function(a,b,c,d,e,f){var g,h,{layout:i,align:j,verticalAlign:k}=b;return a&&(void 0!==a.left&&null!==a.left||void 0!==a.right&&null!==a.right)||(g="center"===j&&"vertical"===i?{left:((d||0)-f.width)/2}:"right"===j?{right:c&&c.right||0}:{left:c&&c.left||0}),a&&(void 0!==a.top&&null!==a.top||void 0!==a.bottom&&null!==a.bottom)||(h="middle"===k?{top:((e||0)-f.height)/2}:"bottom"===k?{bottom:c&&c.bottom||0}:{top:c&&c.top||0}),aM(aM({},g),h)}(i,c,f,n,o,l)),i),s=null!=j?j:e;if(null==s||null==d)return null;var t=k.createElement("div",{className:"recharts-legend-wrapper",style:r,ref:m},k.createElement(aP,{layout:c.layout,align:c.align,verticalAlign:c.verticalAlign,itemSorter:c.itemSorter}),!j&&k.createElement(aQ,{width:l.width,height:l.height}),k.createElement(aO,aK({},c,q,{margin:f,chartWidth:n,chartHeight:o,contextPayload:d})));return(0,S.createPortal)(t,s)},aI.P);aS.displayName="Legend";var aT=c(83385),aU=["axis","item"],aV=(0,k.forwardRef)((a,b)=>k.createElement(L.P,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:aU,tooltipPayloadSearcher:K.uN,categoricalChartProps:a,ref:b})),aW=c(40948),aX=a=>null;aX.displayName="Cell";var aY=c(47459),aZ=c(21480),a$=c(16216),a_=c(7725),a0=c.n(a_),a1=c(12306),a2=c(81298),a3=c(8418),a4=c(18334),a5=c(59798);function a6(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function a7(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?a6(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):a6(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function a8(){return(a8=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function a9(a,b){return b||(b=a.slice(0)),Object.freeze(Object.defineProperties(a,{raw:{value:Object.freeze(b)}}))}var ba=(a,b,c,d,j)=>{var k=c-d;return(0,a5.Y)(e||(e=a9(["M ",",",""])),a,b)+(0,a5.Y)(f||(f=a9(["L ",",",""])),a+c,b)+(0,a5.Y)(g||(g=a9(["L ",",",""])),a+c-k/2,b+j)+(0,a5.Y)(h||(h=a9(["L ",",",""])),a+c-k/2-d,b+j)+(0,a5.Y)(i||(i=a9(["L ",","," Z"])),a,b)},bb={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},bc=a=>{var b=(0,av.e)(a,bb),{x:c,y:d,upperWidth:e,lowerWidth:f,height:g,className:h}=b,{animationEasing:i,animationDuration:j,animationBegin:l,isUpdateAnimationActive:m}=b,n=(0,k.useRef)(null),[o,p]=(0,k.useState)(-1),q=(0,k.useRef)(e),r=(0,k.useRef)(f),s=(0,k.useRef)(g),t=(0,k.useRef)(c),u=(0,k.useRef)(d),v=(0,a3.n)(a,"trapezoid-");if((0,k.useEffect)(()=>{if(n.current&&n.current.getTotalLength)try{var a=n.current.getTotalLength();a&&p(a)}catch(a){}},[]),c!==+c||d!==+d||e!==+e||f!==+f||g!==+g||0===e&&0===f||0===g)return null;var w=(0,U.$)("recharts-trapezoid",h);if(!m)return k.createElement("g",null,k.createElement("path",a8({},(0,am.a)(b),{className:w,d:ba(c,d,e,f,g)})));var x=q.current,y=r.current,z=s.current,A=t.current,B=u.current,C="0px ".concat(-1===o?1:o,"px"),D="".concat(o,"px ").concat(o,"px"),E=(0,a4.dl)(["strokeDasharray"],j,i);return k.createElement(a2.J,{animationId:v,key:v,canBegin:o>0,duration:j,easing:i,isActive:m,begin:l},a=>{var h=(0,al.GW)(x,e,a),i=(0,al.GW)(y,f,a),j=(0,al.GW)(z,g,a),l=(0,al.GW)(A,c,a),m=(0,al.GW)(B,d,a);n.current&&(q.current=h,r.current=i,s.current=j,t.current=l,u.current=m);var o=a>0?{transition:E,strokeDasharray:D}:{strokeDasharray:C};return k.createElement("path",a8({},(0,am.a)(b),{className:w,d:ba(l,m,h,i,j),ref:n,style:a7(a7({},o),b.style)}))})},bd=c(82317),be=c(85167),bf=["option","shapeType","activeClassName","inActiveClassName"];function bg(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function bh(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?bg(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):bg(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function bi(a){var{shapeType:b,elementProps:c}=a;switch(b){case"rectangle":return k.createElement(a1.M,c);case"trapezoid":return k.createElement(bc,c);case"sector":return k.createElement(bd.h,c);case"symbols":if("symbols"===b)return k.createElement(at,c);break;case"curve":return k.createElement(be.Ip,c);default:return null}}function bj(a){var b,{option:c,shapeType:d,activeClassName:e="recharts-active-shape",inActiveClassName:f="recharts-shape"}=a,g=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,bf);if((0,k.isValidElement)(c))b=(0,k.cloneElement)(c,bh(bh({},g),(0,k.isValidElement)(c)?c.props:c));else if("function"==typeof c)b=c(g,g.index);else if(a0()(c)&&"boolean"!=typeof c){var h=bh(bh({},g),c);b=k.createElement(bi,{shapeType:d,elementProps:h})}else b=k.createElement(bi,{shapeType:d,elementProps:g});return g.isActive?k.createElement(aW.W,{className:e},b):k.createElement(aW.W,{className:f},b)}function bk(){return(bk=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function bl(a){return k.createElement(bj,bk({shapeType:"rectangle",activeClassName:"recharts-active-bar",inActiveClassName:"recharts-inactive-bar"},a))}var bm=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(c,d)=>{if((0,al.Et)(a))return a;var e=(0,al.Et)(c)||(0,al.uy)(c);return e?a(c,d):(e||function(a,b){if(!a)throw Error("Invariant failed")}(!1,"minPointSize callback function received a value with type of ".concat(typeof c,". Currently only numbers or null/undefined are supported.")),b)}},bn=c(3672),bo=(a,b,c)=>{var d=(0,aE.j)();return(e,f)=>g=>{null==a||a(e,f,g),d((0,bn.RD)({activeIndex:String(f),activeDataKey:b,activeCoordinate:e.tooltipPosition,activeGraphicalItemId:c}))}},bp=a=>{var b=(0,aE.j)();return(c,d)=>e=>{null==a||a(c,d,e),b((0,bn.oP)())}},bq=(a,b,c)=>{var d=(0,aE.j)();return(e,f)=>g=>{null==a||a(e,f,g),d((0,bn.ML)({activeIndex:String(f),activeDataKey:b,activeCoordinate:e.tooltipPosition,activeGraphicalItemId:c}))}},br=c(443),bs=["children"],bt=(0,k.createContext)({data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0});function bu(a){var{children:b}=a,c=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,bs);return k.createElement(bt.Provider,{value:c},b)}var bv=c(10059),bw=c(32362),bx=c(64419),by=c(25644),bz=c(27603),bA=c(80852),bB=c(16776),bC=(a,b,c)=>{var d=null!=c?c:a;if(!(0,al.uy)(d))return(0,al.F4)(d,b,0)},bD=c(9434);function bE(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function bF(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?bE(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):bE(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}var bG=c(28222),bH=c(27660),bI=(0,bw.Mz)([bx.ld,(a,b)=>b],(a,b)=>a.filter(a=>"bar"===a.type).find(a=>a.id===b)),bJ=(0,bw.Mz)([bI],a=>null==a?void 0:a.maxBarSize),bK=(0,bw.Mz)([aH.fz,bx.ld,bH.W,bH.B,(a,b,c)=>c],(a,b,c,d,e)=>b.filter(b=>"horizontal"===a?b.xAxisId===c:b.yAxisId===d).filter(a=>a.isPanorama===e).filter(a=>!1===a.hide).filter(a=>"bar"===a.type)),bL=(0,bw.Mz)([bK,bA.x3,(a,b)=>{var c=(0,aH.fz)(a),d=(0,bH.W)(a,b),e=(0,bH.B)(a,b);if(null!=d&&null!=e)return"horizontal"===c?(0,bx.BQ)(a,"xAxis",d):(0,bx.BQ)(a,"yAxis",e)}],(a,b,c)=>{var d=a.filter(bB.g),e=a.filter(a=>null==a.stackId);return[...Object.entries(d.reduce((a,b)=>{var c=a[b.stackId];return null==c&&(c=[]),c.push(b),a[b.stackId]=c,a},{})).map(a=>{var d,[e,f]=a;return{stackId:e,dataKeys:f.map(a=>a.dataKey),barSize:bC(b,c,null==(d=f[0])?void 0:d.barSize)}}),...e.map(a=>({stackId:void 0,dataKeys:[a.dataKey].filter(a=>null!=a),barSize:bC(b,c,a.barSize)}))]}),bM=(a,b,c)=>{var d,e,f=(0,aH.fz)(a),g=(0,bH.W)(a,b),h=(0,bH.B)(a,b);if(null!=g&&null!=h)return"horizontal"===f?(d=(0,bx.Gx)(a,"xAxis",g,c),e=(0,bx.CR)(a,"xAxis",g,c)):(d=(0,bx.Gx)(a,"yAxis",h,c),e=(0,bx.CR)(a,"yAxis",h,c)),(0,a$.Hj)(d,e)},bN=(0,bw.Mz)([bL,bA.JN,bA._5,bA.gY,(a,b,c)=>{var d,e,f,g,h=bI(a,b);if(null==h)return 0;var i=(0,bH.W)(a,b),j=(0,bH.B)(a,b);if(null==i||null==j)return 0;var k=(0,aH.fz)(a),l=(0,bA.JN)(a),{maxBarSize:m}=h,n=(0,al.uy)(m)?l:m;return"horizontal"===k?(f=(0,bx.Gx)(a,"xAxis",i,c),g=(0,bx.CR)(a,"xAxis",i,c)):(f=(0,bx.Gx)(a,"yAxis",j,c),g=(0,bx.CR)(a,"yAxis",j,c)),null!=(d=null!=(e=(0,a$.Hj)(f,g,!0))?e:n)?d:0},bM,bJ],(a,b,c,d,e,f,g)=>{var h=function(a,b,c,d,e){var f,g,h=d.length;if(!(h<1)){var i=(0,al.F4)(a,c,0,!0),j=[];if((0,bD.H)(null==(f=d[0])?void 0:f.barSize)){var k=!1,l=c/h,m=d.reduce((a,b)=>a+(b.barSize||0),0);(m+=(h-1)*i)>=c&&(m-=(h-1)*i,i=0),m>=c&&l>0&&(k=!0,l*=.9,m=h*l);var n={offset:((c-m)/2|0)-i,size:0};g=d.reduce((a,b)=>{var c,d={stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:n.offset+n.size+i,size:k?l:null!=(c=b.barSize)?c:0}},e=[...a,d];return n=d.position,e},j)}else{var o=(0,al.F4)(b,c,0,!0);c-2*o-(h-1)*i<=0&&(i=0);var p=(c-2*o-(h-1)*i)/h;p>1&&(p>>=0);var q=(0,bD.H)(e)?Math.min(p,e):p;g=d.reduce((a,b,c)=>[...a,{stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:o+(p+i)*c+(p-q)/2,size:q}}],j)}return g}}(c,d,e!==f?e:f,a,(0,al.uy)(g)?b:g);return e!==f&&null!=h&&(h=h.map(a=>bF(bF({},a),{},{position:bF(bF({},a.position),{},{offset:a.position.offset-e/2})}))),h}),bO=(0,bw.Mz)([bN,bI],(a,b)=>{if(null!=a&&null!=b){var c=a.find(a=>a.stackId===b.stackId&&null!=b.dataKey&&a.dataKeys.includes(b.dataKey));if(null!=c)return c.position}}),bP=(0,bw.Mz)([(a,b,c)=>{var d=(0,aH.fz)(a),e=(0,bH.W)(a,b),f=(0,bH.B)(a,b);if(null!=e&&null!=f)return"horizontal"===d?(0,bx.TC)(a,"yAxis",f,c):(0,bx.TC)(a,"xAxis",e,c)},bI],(a,b)=>{var c=(0,bG.x)(b);if(!a||null==c||null==b)return;var{stackId:d}=b;if(null!=d){var e=a[d];if(e){var{stackedData:f}=e;if(f)return f.find(a=>a.key===c)}}}),bQ=(0,bw.Mz)([bz.HZ,bz.c2,(a,b,c)=>{var d=(0,bH.W)(a,b);if(null!=d)return(0,bx.Gx)(a,"xAxis",d,c)},(a,b,c)=>{var d=(0,bH.B)(a,b);if(null!=d)return(0,bx.Gx)(a,"yAxis",d,c)},(a,b,c)=>{var d=(0,bH.W)(a,b);if(null!=d)return(0,bx.CR)(a,"xAxis",d,c)},(a,b,c)=>{var d=(0,bH.B)(a,b);if(null!=d)return(0,bx.CR)(a,"yAxis",d,c)},bO,aH.fz,by.rN,bM,bP,bI,(a,b,c,d)=>d],(a,b,c,d,e,f,g,h,i,j,k,l,m)=>{var n,{chartData:o,dataStartIndex:p,dataEndIndex:q}=i;if(null!=l&&null!=g&&null!=b&&("horizontal"===h||"vertical"===h)&&null!=c&&null!=d&&null!=e&&null!=f&&null!=j){var{data:r}=l;if(null!=(n=null!=r&&r.length>0?r:null==o?void 0:o.slice(p,q+1)))return function(a){var{layout:b,barSettings:{dataKey:c,minPointSize:d,hasCustomShape:e},pos:f,bandSize:g,xAxis:h,yAxis:i,xAxisTicks:j,yAxisTicks:k,stackedData:l,displayedData:m,offset:n,cells:o,parentViewBox:p,dataStartIndex:q}=a,r="horizontal"===b?i:h,s=l?r.scale.domain():null,t=(0,a$.DW)({numericAxis:r}),u=r.scale.map(t);return m.map((a,m)=>{if(l){var r=l[m+q];if(null==r)return null;w=(0,a$._f)(r,s)}else Array.isArray(w=(0,a$.kr)(a,c))||(w=[t,w]);var v=bm(d,0)(w[1],m);if("horizontal"===b){var w,x,y,z,A,B,C,D=i.scale.map(w[0]),E=i.scale.map(w[1]);if(null==D||null==E)return null;x=(0,a$.y2)({axis:h,ticks:j,bandSize:g,offset:f.offset,entry:a,index:m}),y=null!=(C=null!=E?E:D)?C:void 0,z=f.size;var F=D-E;if(A=(0,al.M8)(F)?0:F,B={x,y:n.top,width:z,height:n.height},Math.abs(v)>0&&Math.abs(A)<Math.abs(v)){var G=(0,al.sA)(A||v)*(Math.abs(v)-Math.abs(A));y-=G,A+=G}}else{var H=h.scale.map(w[0]),I=h.scale.map(w[1]);if(null==H||null==I)return null;if(x=H,y=(0,a$.y2)({axis:i,ticks:k,bandSize:g,offset:f.offset,entry:a,index:m}),z=I-H,A=f.size,B={x:n.left,y,width:n.width,height:A},Math.abs(v)>0&&Math.abs(z)<Math.abs(v)){var J=(0,al.sA)(z||v)*(Math.abs(v)-Math.abs(z));z+=J}}return null!=x&&null!=y&&null!=z&&null!=A&&(e||0!==z&&0!==A)?b7(b7({},a),{},{stackedBarStart:u,x,y,width:z,height:A,value:l?w:w[1],payload:a,background:B,tooltipPosition:{x:x+z/2,y:y+A/2},parentViewBox:p,originalDataIndex:m},o&&o[m]&&o[m].props):null}).filter(Boolean)}({layout:h,barSettings:l,pos:g,parentViewBox:b,bandSize:j,xAxis:c,yAxis:d,xAxisTicks:e,yAxisTicks:f,stackedData:k,displayedData:n,offset:a,cells:m,dataStartIndex:p})}}),bR=c(70383),bS=c(83881),bT=c(82118),bU=c(34183),bV=c(93021),bW=c(70719),bX=c(17947),bY=c(6859),bZ=["index"];function b$(){return(b$=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}var b_=(0,k.createContext)(void 0),b0=a=>{var{index:b}=a,c=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,bZ),d=(a=>{var b=(0,k.useContext)(b_);if(null!=b){var{stackId:c}=b;return"url(#".concat("recharts-bar-stack-clip-path-".concat(c,"-").concat(a),")")}})(b);return k.createElement(aW.W,b$({className:"recharts-bar-stack-layer",clipPath:d},c))},b1=["onMouseEnter","onMouseLeave","onClick"],b2=["value","background","tooltipPosition"],b3=["id"],b4=["onMouseEnter","onClick","onMouseLeave"];function b5(){return(b5=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function b6(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function b7(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?b6(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):b6(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function b8(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}var b9=k.memo(a=>{var{dataKey:b,stroke:c,strokeWidth:d,fill:e,name:f,hide:g,unit:h,tooltipType:i,id:j}=a,l={dataDefinedOnItem:void 0,getPosition:al.lQ,settings:{stroke:c,strokeWidth:d,fill:e,dataKey:b,nameKey:void 0,name:(0,a$.uM)(f,b),hide:g,type:i,color:e,unit:h,graphicalItemId:j}};return k.createElement(br.r,{tooltipEntrySettings:l})});function ca(a){var b,c=(0,aE.G)(bS.A2),{data:d,dataKey:e,background:f,allOtherBarProps:g}=a,{onMouseEnter:h,onMouseLeave:i,onClick:j}=g,l=b8(g,b1),m=bo(h,e,g.id),n=bp(i),o=bq(j,e,g.id);if(!f||null==d)return null;var p=(0,bW.ic)(f);return k.createElement(bX.g,{zIndex:(b=bY.I.barBackground,f&&"object"==typeof f&&"zIndex"in f&&"number"==typeof f.zIndex&&(0,bD.H)(f.zIndex)?f.zIndex:b)},d.map((a,b)=>{var{value:d,background:g,tooltipPosition:h}=a,i=b8(a,b2);if(!g)return null;var j=m(a,b),q=n(a,b),r=o(a,b),s=b7(b7(b7(b7(b7({option:f,isActive:String(b)===c},i),{},{fill:"#eee"},g),p),(0,au.XC)(l,a,b)),{},{onMouseEnter:j,onMouseLeave:q,onClick:r,dataKey:e,index:b,className:"recharts-bar-background-rectangle"});return k.createElement(bl,b5({key:"background-bar-".concat(b)},s))}))}function cb(a){var{showLabels:b,children:c,rects:d}=a,e=null==d?void 0:d.map(a=>{var b={x:a.x,y:a.y,width:a.width,lowerWidth:a.width,upperWidth:a.width,height:a.height};return b7(b7({},b),{},{value:a.value,payload:a.payload,parentViewBox:a.parentViewBox,viewBox:b,fill:a.fill})});return k.createElement(aY.h8,{value:b?e:void 0},c)}function cc(a){var b,{shape:c,activeBar:d,baseProps:e,entry:f,index:g,dataKey:h}=a,i=(0,aE.G)(bS.A2),j=(0,aE.G)(bS.Xb),l=d&&String(f.originalDataIndex)===i&&(null==j||h===j),[m,n]=(0,k.useState)(!1),[o,p]=(0,k.useState)(!1),q=(0,k.useCallback)(()=>{l||n(!1)},[l]),r=l&&o,s=l||m;b=l?!0===d?c:d:c;var t=k.createElement(bl,b5({},e,{name:String(e.name)},f,{isActive:r,option:b,index:g,dataKey:h,onTransitionEnd:q}));return s?k.createElement(bX.g,{zIndex:bY.I.activeBar},k.createElement(b0,{index:f.originalDataIndex},t)):t}function cd(a){var{shape:b,baseProps:c,entry:d,index:e,dataKey:f}=a;return k.createElement(bl,b5({},c,{name:String(c.name)},d,{isActive:!1,option:b,index:e,dataKey:f}))}function ce(a){var b,{data:c,props:d}=a,e=null!=(b=(0,bW.uZ)(d))?b:{},{id:f}=e,g=b8(e,b3),{shape:h,dataKey:i,activeBar:j}=d,{onMouseEnter:l,onClick:m,onMouseLeave:n}=d,o=b8(d,b4),p=bo(l,i,f),q=bp(n),r=bq(m,i,f);return c?k.createElement(k.Fragment,null,c.map((a,b)=>k.createElement(b0,b5({index:a.originalDataIndex,key:"rectangle-".concat(null==a?void 0:a.x,"-").concat(null==a?void 0:a.y,"-").concat(null==a?void 0:a.value,"-").concat(b),className:"recharts-bar-rectangle"},(0,au.XC)(o,a,b),{onMouseEnter:p(a,b),onMouseLeave:q(a,b),onClick:r(a,b)}),j?k.createElement(cc,{shape:h,activeBar:j,baseProps:g,entry:a,index:b,dataKey:i}):k.createElement(cd,{shape:h,baseProps:g,entry:a,index:b,dataKey:i})))):null}function cf(a){var{props:b,previousRectanglesRef:c}=a,{data:d,layout:e,isAnimationActive:f,animationBegin:g,animationDuration:h,animationEasing:i,onAnimationEnd:j,onAnimationStart:l}=b,m=c.current,n=(0,a3.n)(b,"recharts-bar-"),[o,p]=(0,k.useState)(!1),q=(0,k.useCallback)(()=>{"function"==typeof j&&j(),p(!1)},[j]),r=(0,k.useCallback)(()=>{"function"==typeof l&&l(),p(!0)},[l]);return k.createElement(cb,{showLabels:!o,rects:d},k.createElement(a2.J,{animationId:n,begin:g,duration:h,isActive:f,easing:i,onAnimationEnd:q,onAnimationStart:r,key:n},a=>{var f=1===a?d:null==d?void 0:d.map((b,c)=>{var d=m&&m[c];if(d)return b7(b7({},b),{},{x:(0,al.GW)(d.x,b.x,a),y:(0,al.GW)(d.y,b.y,a),width:(0,al.GW)(d.width,b.width,a),height:(0,al.GW)(d.height,b.height,a)});if("horizontal"===e){var f=(0,al.GW)(0,b.height,a),g=(0,al.GW)(b.stackedBarStart,b.y,a);return b7(b7({},b),{},{y:g,height:f})}var h=(0,al.GW)(0,b.width,a),i=(0,al.GW)(b.stackedBarStart,b.x,a);return b7(b7({},b),{},{width:h,x:i})});return(a>0&&(c.current=null!=f?f:null),null==f)?null:k.createElement(aW.W,null,k.createElement(ce,{props:b,data:f}))}),k.createElement(aY.qY,{label:b.label}),b.children)}function cg(a){var b=(0,k.useRef)(null);return k.createElement(cf,{previousRectanglesRef:b,props:a})}var ch=(a,b)=>{var c=Array.isArray(a.value)?a.value[1]:a.value;return{x:a.x,y:a.y,value:c,errorVal:(0,a$.kr)(a,b)}};class ci extends k.PureComponent{render(){var{hide:a,data:b,dataKey:c,className:d,xAxisId:e,yAxisId:f,needClip:g,background:h,id:i}=this.props;if(a||null==b)return null;var j=(0,U.$)("recharts-bar",d);return k.createElement(aW.W,{className:j,id:i},g&&k.createElement("defs",null,k.createElement(bv.Q,{clipPathId:i,xAxisId:e,yAxisId:f})),k.createElement(aW.W,{className:"recharts-bar-rectangles",clipPath:g?"url(#clipPath-".concat(i,")"):void 0},k.createElement(ca,{data:b,dataKey:c,background:h,allOtherBarProps:this.props}),k.createElement(cg,this.props)))}}var cj={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:0,xAxisId:0,yAxisId:0,zIndex:bY.I.bar};function ck(a){var b,{xAxisId:c,yAxisId:d,hide:e,legendType:f,minPointSize:g,activeBar:h,animationBegin:i,animationDuration:j,animationEasing:l,isAnimationActive:m}=a,{needClip:n}=(0,bv.l)(c,d),o=(0,aH.WX)(),p=(0,bR.r)(),q=(0,aZ.aS)(a.children,aX),r=(0,aE.G)(b=>bQ(b,a.id,p,q));if("vertical"!==o&&"horizontal"!==o)return null;var s=null==r?void 0:r[0];return b=null==s||null==s.height||null==s.width?0:"vertical"===o?s.height/2:s.width/2,k.createElement(bu,{xAxisId:c,yAxisId:d,data:r,dataPointFormatter:ch,errorBarOffset:b},k.createElement(ci,b5({},a,{layout:o,needClip:n,data:r,xAxisId:c,yAxisId:d,hide:e,legendType:f,minPointSize:g,activeBar:h,animationBegin:i,animationDuration:j,animationEasing:l,isAnimationActive:m})))}var cl=k.memo(function(a){var b,c,d=(0,av.e)(a,cj),e=(b=d.stackId,null!=(c=(0,k.useContext)(b_))?c.stackId:null!=b?(0,a$.$8)(b):void 0),f=(0,bR.r)();return k.createElement(bU.x,{id:d.id,type:"bar"},a=>k.createElement(k.Fragment,null,k.createElement(bT.A,{legendPayload:(a=>{var{dataKey:b,name:c,fill:d,legendType:e,hide:f}=a;return[{inactive:f,dataKey:b,type:e,color:d,value:(0,a$.uM)(c,b),payload:a}]})(d)}),k.createElement(b9,{dataKey:d.dataKey,stroke:d.stroke,strokeWidth:d.strokeWidth,fill:d.fill,name:d.name,hide:d.hide,unit:d.unit,tooltipType:d.tooltipType,id:a}),k.createElement(bV.p,{type:"bar",id:a,data:void 0,xAxisId:d.xAxisId,yAxisId:d.yAxisId,zAxisId:0,dataKey:d.dataKey,stackId:e,hide:d.hide,barSize:d.barSize,minPointSize:d.minPointSize,maxBarSize:d.maxBarSize,isPanorama:f,hasCustomShape:null!=d.shape}),k.createElement(bX.g,{zIndex:d.zIndex},k.createElement(ck,b5({},d,{id:a})))))},aI.P);cl.displayName="Bar";var cm=c(45706),cn=c(62554),co=c(14238),cp=c(34095),cq=c(49920);function cr(a){return(0,aE.j)(),null}c(76115);var cs=c(64336),ct=c(50206),cu=["layout"];function cv(){return(cv=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function cw(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}var cx=function(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?cw(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):cw(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}({accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},ct.zp),cy=(0,k.forwardRef)(function(a,b){var c,d=(0,av.e)(a.categoricalChartProps,cx),{layout:e}=d,f=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(d,cu),{chartName:g,defaultTooltipEventType:h,validateTooltipEventTypes:i,tooltipPayloadSearcher:j}=a;return k.createElement(cm.J,{preloadedState:{options:{chartName:g,defaultTooltipEventType:h,validateTooltipEventTypes:i,tooltipPayloadSearcher:j,eventEmitter:void 0}},reduxStoreName:null!=(c=d.id)?c:g},k.createElement(cn.TK,{chartData:d.data}),k.createElement(co.s,{layout:e,margin:d.margin}),k.createElement(cq.M,{throttleDelay:d.throttleDelay,throttledEvents:d.throttledEvents}),k.createElement(cp.p,{baseValue:void 0,accessibilityLayer:d.accessibilityLayer,barCategoryGap:d.barCategoryGap,maxBarSize:d.maxBarSize,stackOffset:d.stackOffset,barGap:d.barGap,barSize:d.barSize,syncId:d.syncId,syncMethod:d.syncMethod,className:d.className,reverseStackOrder:d.reverseStackOrder}),k.createElement(cr,{cx:d.cx,cy:d.cy,startAngle:d.startAngle,endAngle:d.endAngle,innerRadius:d.innerRadius,outerRadius:d.outerRadius}),k.createElement(cs.L,cv({},f,{ref:b})))});function cz(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function cA(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?cz(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):cz(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}var cB=["item"],cC=cA(cA({},cx),{},{layout:"centric",startAngle:0,endAngle:360}),cD=(0,k.forwardRef)((a,b)=>{var c=(0,av.e)(a,cC);return k.createElement(cy,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:cB,tooltipPayloadSearcher:K.uN,categoricalChartProps:c,ref:b})}),cE=c(58238),cF=c.n(cE),cG=c(9060),cH=c(38053),cI=c(92489),cJ=a=>a.graphicalItems.polarItems,cK=(0,bw.Mz)([cG.N,cH.E],bx.eo),cL=(0,bw.Mz)([cJ,bx.DP,cK],bx.ec),cM=(0,bw.Mz)([cL],bx.rj),cN=(0,bw.Mz)([cM,by.z3],bx.Nk),cO=(0,bw.Mz)([cN,bx.DP,cL],bx.fb);(0,bw.Mz)([cN,bx.DP,cL],(a,b,c)=>c.length>0?a.flatMap(a=>c.flatMap(c=>{var d;return{value:(0,a$.kr)(a,null!=(d=b.dataKey)?d:c.dataKey),errorDomain:[]}})).filter(Boolean):(null==b?void 0:b.dataKey)!=null?a.map(a=>({value:(0,a$.kr)(a,b.dataKey),errorDomain:[]})):a.map(a=>({value:a,errorDomain:[]})));var cP=()=>void 0,cQ=(0,bw.Mz)([cN,bx.DP,cL,bx.CH,cG.N,by.G7],bx.EZ),cR=(0,bw.Mz)([bx.DP,bx.AV,bx.Lu,cP,cQ,cP,aH.fz,cG.N],bx.wL),cS=(0,bw.Mz)([bx.DP,aH.fz,cN,cO,bA.eC,cG.N,cR],bx.tP),cT=(0,bw.Mz)([cS,bx.tm,bx.xM],bx.xp),cU=(0,bw.Mz)([bx.DP,cS,cT,cG.N],bx.g1);function cV(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function cW(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?cV(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):cV(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}(0,bw.Mz)([bx.xM,cU],cI.l);var cX=(0,bw.Mz)([cJ,(a,b)=>b],(a,b)=>a.filter(a=>"pie"===a.type).find(a=>a.id===b)),cY=[],cZ=(a,b,c)=>(null==c?void 0:c.length)===0?cY:c,c$=(0,bw.Mz)([by.z3,cX,cZ],(a,b,c)=>{var d,{chartData:e}=a;if(null!=b&&((d=(null==b?void 0:b.data)!=null&&b.data.length>0?b.data:e)&&d.length||null==c||(d=c.map(a=>cW(cW({},b.presentationProps),a.props))),null!=d))return d}),c_=(0,bw.Mz)([c$,cX,cZ],(a,b,c)=>{if(null!=a&&null!=b)return a.map((a,d)=>{var e,f,g=(0,a$.kr)(a,b.nameKey,b.name);return f=null!=c&&null!=(e=c[d])&&null!=(e=e.props)&&e.fill?c[d].props.fill:"object"==typeof a&&null!=a&&"fill"in a?a.fill:b.fill,{value:(0,a$.uM)(g,b.dataKey),color:f,payload:a,type:b.legendType}})}),c0=(0,bw.Mz)([c$,cX,cZ,bz.HZ],(a,b,c,d)=>{if(null!=b&&null!=a)return function(a){var b,c,d,{pieSettings:e,displayedData:f,cells:g,offset:h}=a,{cornerRadius:i,startAngle:j,endAngle:k,dataKey:l,nameKey:m,tooltipType:n}=e,o=Math.abs(e.minAngle),p=(0,al.sA)(k-j)*Math.min(Math.abs(k-j),360),q=Math.abs(p),r=f.length<=1?0:null!=(b=e.paddingAngle)?b:0,s=f.filter(a=>0!==(0,a$.kr)(a,l,0)).length,t=f.reduce((a,b)=>{var c=(0,a$.kr)(b,l,0);return a+((0,al.Et)(c)?c:0)},0),u=o>0&&t>0&&f.some(a=>{var b=(0,a$.kr)(a,l,0),c=((0,al.Et)(b)?b:0)/t;return 0!==b&&c*q<o})?o:0,v=q-s*u-(q>=360?s:s-1)*r;return t>0&&(c=f.map((a,b)=>{var c,f=(0,a$.kr)(a,l,0),k=(0,a$.kr)(a,m,b),o=((a,b,c)=>{var d,{top:e,left:f,width:g,height:h}=b,i=(0,c2.lY)(g,h),j=f+(0,al.F4)(a.cx,g,g/2),k=e+(0,al.F4)(a.cy,h,h/2),l=(0,al.F4)(a.innerRadius,i,0);return{cx:j,cy:k,innerRadius:l,outerRadius:(d=a.outerRadius,"function"==typeof d?(0,al.F4)(d(c),i,.8*i):(0,al.F4)(d,i,.8*i)),maxRadius:a.maxRadius||Math.sqrt(g*g+h*h)/2}})(e,h,a),q=((0,al.Et)(f)?f:0)/t,s=dc(dc({},a),g&&g[b]&&g[b].props),w=null!=s&&"fill"in s&&"string"==typeof s.fill?s.fill:e.fill,x=(c=b?d.endAngle+(0,al.sA)(p)*r*(0!==f):j)+(0,al.sA)(p)*((0!==f?u:0)+q*v),y=(c+x)/2,z=(o.innerRadius+o.outerRadius)/2,A=[{name:k,value:f,payload:s,dataKey:l,type:n,color:w,fill:w,graphicalItemId:e.id}],B=(0,c2.IZ)(o.cx,o.cy,z,y);return d=dc(dc(dc(dc({},e.presentationProps),{},{percent:q,cornerRadius:"string"==typeof i?parseFloat(i):i,name:k,tooltipPayload:A,midAngle:y,middleRadius:z,tooltipPosition:B},s),o),{},{value:f,dataKey:l,startAngle:c,endAngle:x,payload:s,paddingAngle:0!==f?(0,al.sA)(p)*r:0})})),c}({offset:d,pieSettings:b,displayedData:a,cells:c})}),c1=c(56280),c2=c(56317),c3=c(63911),c4=c(17257),c5=["key"],c6=["onMouseEnter","onClick","onMouseLeave"],c7=["id"],c8=["id"];function c9(){return(c9=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function da(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function db(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function dc(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?db(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):db(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function dd(a){var b=(0,k.useMemo)(()=>(0,aZ.aS)(a.children,aX),[a.children]),c=(0,aE.G)(c=>c_(c,a.id,b));return null==c?null:k.createElement(bT._,{legendPayload:c})}var de=k.memo(a=>{var{dataKey:b,nameKey:c,sectors:d,stroke:e,strokeWidth:f,fill:g,name:h,hide:i,tooltipType:j,id:l,activeShape:m}=a,n=function(a){if(null!=a&&"boolean"!=typeof a&&"function"!=typeof a){if(k.isValidElement(a)){var b,c=null==(b=a.props)?void 0:b.fill;return"string"==typeof c?c:void 0}var{fill:d}=a;return"string"==typeof d?d:void 0}}(m),o={dataDefinedOnItem:d.map(a=>{var b=a.tooltipPayload;return null==n||null==b?b:b.map(a=>dc(dc({},a),{},{color:n,fill:n}))}),getPosition:a=>{var b;return null==(b=d[Number(a)])?void 0:b.tooltipPosition},settings:{stroke:e,strokeWidth:f,fill:g,dataKey:b,nameKey:c,name:(0,a$.uM)(h,b),hide:i,type:j,color:g,unit:"",graphicalItemId:l}};return k.createElement(br.r,{tooltipEntrySettings:o})});function df(a){var{sectors:b,props:c,showLabels:d}=a,{label:e,labelLine:f,dataKey:g}=c;if(!d||!e||!b)return null;var h=(0,bW.uZ)(c),i=(0,bW.ic)(e),j=(0,bW.ic)(f),l="object"==typeof e&&"offsetRadius"in e&&"number"==typeof e.offsetRadius&&e.offsetRadius||20,m=b.map((a,b)=>{var c,d,m=(a.startAngle+a.endAngle)/2,n=(0,c2.IZ)(a.cx,a.cy,a.outerRadius+l,m),o=dc(dc(dc(dc({},h),a),{},{stroke:"none"},i),{},{index:b,textAnchor:(c=n.x)>(d=a.cx)?"start":c<d?"end":"middle"},n),p=dc(dc(dc(dc({},h),a),{},{fill:"none",stroke:a.fill},j),{},{index:b,points:[(0,c2.IZ)(a.cx,a.cy,a.outerRadius,m),n],key:"line"});return k.createElement(bX.g,{zIndex:bY.I.label,key:"label-".concat(a.startAngle,"-").concat(a.endAngle,"-").concat(a.midAngle,"-").concat(b)},k.createElement(aW.W,null,f&&((a,b)=>{if(k.isValidElement(a))return k.cloneElement(a,b);if("function"==typeof a)return a(b);var c=(0,U.$)("recharts-pie-label-line","boolean"!=typeof a?a.className:""),{key:d}=b,e=da(b,c5);return k.createElement(be.Ip,c9({},e,{type:"linear",className:c}))})(f,p),((a,b,c)=>{if(k.isValidElement(a))return k.cloneElement(a,b);var d=c;if("function"==typeof a&&(d=a(b),k.isValidElement(d)))return d;var e=(0,U.$)("recharts-pie-label-text",(0,c4.I)(a));return k.createElement(c1.EY,c9({},b,{alignmentBaseline:"middle",className:e}),d)})(e,o,(0,a$.kr)(a,g))))});return k.createElement(aW.W,{className:"recharts-pie-labels"},m)}function dg(a){var{sectors:b,props:c,showLabels:d}=a,{label:e}=c;return"object"==typeof e&&null!=e&&"position"in e?k.createElement(aY.qY,{label:e}):k.createElement(df,{sectors:b,props:c,showLabels:d})}function dh(a){var{sectors:b,activeShape:c,inactiveShape:d,allOtherPieProps:e,shape:f,id:g}=a,h=(0,aE.G)(bS.A2),i=(0,aE.G)(bS.Xb),j=(0,aE.G)(bS.fx),{onMouseEnter:l,onClick:m,onMouseLeave:n}=e,o=da(e,c6),p=bo(l,e.dataKey,g),q=bp(n),r=bq(m,e.dataKey,g);return null==b||0===b.length?null:k.createElement(k.Fragment,null,b.map((a,l)=>{if((null==a?void 0:a.startAngle)===0&&(null==a?void 0:a.endAngle)===0&&1!==b.length)return null;var m=null==j||j===g,n=String(l)===h&&(null==i||e.dataKey===i)&&m,s=c&&n?c:h?d:null,t=dc(dc({},a),{},{stroke:a.stroke,tabIndex:-1,[c3.F0]:l,[c3.yU]:g});return k.createElement(aW.W,c9({key:"sector-".concat(null==a?void 0:a.startAngle,"-").concat(null==a?void 0:a.endAngle,"-").concat(a.midAngle,"-").concat(l),tabIndex:-1,className:"recharts-pie-sector"},(0,au.XC)(o,a,l),{onMouseEnter:p(a,l),onMouseLeave:q(a,l),onClick:r(a,l)}),k.createElement(bj,c9({option:null!=f?f:s,index:l,shapeType:"sector",isActive:n},t)))}))}function di(a){var{showLabels:b,sectors:c,children:d}=a,e=(0,k.useMemo)(()=>b&&c?c.map(a=>({value:a.value,payload:a.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:a.cx,cy:a.cy,innerRadius:a.innerRadius,outerRadius:a.outerRadius,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},fill:a.fill})):[],[c,b]);return k.createElement(aY.dL,{value:b?e:void 0},d)}function dj(a){var{props:b,previousSectorsRef:c,id:d}=a,{sectors:e,isAnimationActive:f,animationBegin:g,animationDuration:h,animationEasing:i,activeShape:j,inactiveShape:l,onAnimationStart:m,onAnimationEnd:n}=b,o=(0,a3.n)(b,"recharts-pie-"),p=c.current,[q,r]=(0,k.useState)(!1),s=(0,k.useCallback)(()=>{"function"==typeof n&&n(),r(!1)},[n]),t=(0,k.useCallback)(()=>{"function"==typeof m&&m(),r(!0)},[m]);return k.createElement(di,{showLabels:!q,sectors:e},k.createElement(a2.J,{animationId:o,begin:g,duration:h,isActive:f,easing:i,onAnimationStart:t,onAnimationEnd:s,key:o},a=>{var f,g=[],h=e&&e[0],i=null!=(f=null==h?void 0:h.startAngle)?f:0;return null==e||e.forEach((b,c)=>{var d=p&&p[c],e=c>0?cF()(b,"paddingAngle",0):0;if(d){var f=(0,al.GW)(d.endAngle-d.startAngle,b.endAngle-b.startAngle,a),h=dc(dc({},b),{},{startAngle:i+e,endAngle:i+f+e});g.push(h),i=h.endAngle}else{var{endAngle:j,startAngle:k}=b,l=(0,al.GW)(0,j-k,a),m=dc(dc({},b),{},{startAngle:i+e,endAngle:i+l+e});g.push(m),i=m.endAngle}}),c.current=g,k.createElement(aW.W,null,k.createElement(dh,{sectors:g,activeShape:j,inactiveShape:l,allOtherPieProps:b,shape:b.shape,id:d}))}),k.createElement(dg,{showLabels:!q,sectors:e,props:b}),b.children)}var dk={animationBegin:400,animationDuration:1500,animationEasing:"ease",cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:"#fff",zIndex:bY.I.area};function dl(a){var{id:b}=a,c=da(a,c7),{hide:d,className:e,rootTabIndex:f}=a,g=(0,k.useMemo)(()=>(0,aZ.aS)(a.children,aX),[a.children]),h=(0,aE.G)(a=>c0(a,b,g)),i=(0,k.useRef)(null),j=(0,U.$)("recharts-pie",e);return d||null==h?(i.current=null,k.createElement(aW.W,{tabIndex:f,className:j})):k.createElement(bX.g,{zIndex:a.zIndex},k.createElement(de,{dataKey:a.dataKey,nameKey:a.nameKey,sectors:h,stroke:a.stroke,strokeWidth:a.strokeWidth,fill:a.fill,name:a.name,hide:a.hide,tooltipType:a.tooltipType,id:b,activeShape:a.activeShape}),k.createElement(aW.W,{tabIndex:f,className:j},k.createElement(dj,{props:dc(dc({},c),{},{sectors:h}),previousSectorsRef:i,id:b})))}var dm=function(a){var b=(0,av.e)(a,dk),{id:c}=b,d=da(b,c8),e=(0,bW.uZ)(d);return k.createElement(bU.x,{id:c,type:"pie"},a=>k.createElement(k.Fragment,null,k.createElement(bV.v,{type:"pie",id:a,data:d.data,dataKey:d.dataKey,hide:d.hide,angleAxisId:0,radiusAxisId:0,name:d.name,nameKey:d.nameKey,tooltipType:d.tooltipType,legendType:d.legendType,fill:d.fill,cx:d.cx,cy:d.cy,startAngle:d.startAngle,endAngle:d.endAngle,paddingAngle:d.paddingAngle,minAngle:d.minAngle,innerRadius:d.innerRadius,outerRadius:d.outerRadius,cornerRadius:d.cornerRadius,presentationProps:e,maxRadius:b.maxRadius}),k.createElement(dd,c9({},d,{id:a})),k.createElement(dl,c9({},d,{id:a}))))};dm.displayName="Pie";let dn=["#6366f1","#f59e0b","#06b6d4","#10b981","#f43f5e","#8b5cf6","#ec4899","#14b8a6"],dp=a=>a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:String(a||0),dq=a=>`$${(a||0).toFixed(4)}`,dr=a=>new Intl.NumberFormat().format(a||0);function ds(a){return"cost"===a?dq:"tokens"===a||"cachedTokens"===a?dp:dr}let dt={backgroundColor:"#16161e",border:"1px solid rgba(255,255,255,0.1)",borderRadius:"8px",fontSize:"12px",color:"#e2e8f0",boxShadow:"0 4px 16px rgba(0,0,0,0.4)"},du={color:"#94a3b8",marginBottom:2},dv={color:"#f1f5f9"};function dw({series:a,metric:b,seriesBy:c}){if(!a?.length)return null;let d=ds(b),e=[...new Set(a.flatMap(a=>Object.keys(a.values||{})))],f=Object.fromEntries(e.map(a=>[a,0])),g=a.map(a=>({...f,label:a.label,...a.values})),h="none"!==c&&e.length>1;return a.some(a=>a.total>0)?(0,j.jsxs)(n.default,{className:"flex min-w-0 flex-col gap-3 p-3 sm:p-4",children:[(0,j.jsx)("h3",{className:"text-sm font-semibold text-text-muted uppercase",children:"Trend"}),(0,j.jsx)(J.u,{width:"100%",height:220,children:(0,j.jsxs)(N,{data:g,margin:{top:4,right:8,left:0,bottom:0},children:[(0,j.jsx)("defs",{children:dn.map((a,b)=>(0,j.jsxs)("linearGradient",{id:`grad${b}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,j.jsx)("stop",{offset:"5%",stopColor:a,stopOpacity:.25}),(0,j.jsx)("stop",{offset:"95%",stopColor:a,stopOpacity:0})]},b))}),(0,j.jsx)(O.d,{strokeDasharray:"3 3",strokeOpacity:.1}),(0,j.jsx)(P.W,{dataKey:"label",tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,interval:"preserveStartEnd"}),(0,j.jsx)(Q.h,{tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,tickFormatter:d,width:52}),(0,j.jsx)(R.m,{contentStyle:dt,labelStyle:du,itemStyle:dv,formatter:(a,b)=>[d(a),b]}),h&&(0,j.jsx)(aS,{wrapperStyle:{fontSize:"11px"}}),h?e.map((a,b)=>(0,j.jsx)(aT.Gk,{type:"monotone",dataKey:a,stroke:dn[b%dn.length],strokeWidth:2,fill:`url(#grad${b%dn.length})`,dot:!1,activeDot:{r:4},stackId:"1"},a)):(0,j.jsx)(aT.Gk,{type:"monotone",dataKey:e[0]||"total",stroke:dn[0],strokeWidth:2,fill:"url(#grad0)",dot:!1,activeDot:{r:4}})]})})]}):(0,j.jsx)(n.default,{className:"flex items-center justify-center h-[260px] text-text-muted text-sm",children:"No data for selected filters"})}function dx({top:a,metric:b}){if(!a?.length)return null;let c=ds(b);return(0,j.jsxs)(n.default,{className:"flex min-w-0 flex-col gap-3 p-3 sm:p-4",children:[(0,j.jsx)("h3",{className:"text-sm font-semibold text-text-muted uppercase",children:"Top Contributors"}),(0,j.jsx)(J.u,{width:"100%",height:200,children:(0,j.jsxs)(aV,{data:a,layout:"vertical",margin:{top:0,right:16,left:0,bottom:0},children:[(0,j.jsx)(O.d,{strokeDasharray:"3 3",strokeOpacity:.1,horizontal:!1}),(0,j.jsx)(P.W,{type:"number",tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,tickFormatter:c}),(0,j.jsx)(Q.h,{type:"category",dataKey:"label",tick:{fontSize:10,fill:"currentColor",fillOpacity:.7},tickLine:!1,axisLine:!1,width:90}),(0,j.jsx)(R.m,{contentStyle:dt,labelStyle:du,itemStyle:dv,formatter:a=>[c(a)]}),(0,j.jsx)(cl,{dataKey:"value",radius:[0,4,4,0],children:a.map((a,b)=>(0,j.jsx)(aX,{fill:dn[b%dn.length]},b))})]})})]})}function dy({top:a,metric:b}){return a?.length?(0,j.jsxs)(n.default,{className:"flex min-w-0 flex-col gap-3 p-3 sm:p-4",children:[(0,j.jsx)("h3",{className:"text-sm font-semibold text-text-muted uppercase",children:"Share"}),(0,j.jsx)(J.u,{width:"100%",height:200,children:(0,j.jsxs)(cD,{children:[(0,j.jsx)(dm,{data:a,dataKey:"value",nameKey:"label",cx:"50%",cy:"50%",innerRadius:55,outerRadius:85,paddingAngle:2,children:a.map((a,b)=>(0,j.jsx)(aX,{fill:dn[b%dn.length]},b))}),(0,j.jsx)(R.m,{contentStyle:dt,labelStyle:du,itemStyle:dv,formatter:(a,b,c)=>[`${c.payload.percentage}%`,b]}),(0,j.jsx)(aS,{layout:"vertical",align:"right",verticalAlign:"middle",wrapperStyle:{fontSize:"11px"},formatter:a=>a.length>14?a.slice(0,12)+"…":a})]})})]}):null}function dz({report:a,metric:b,seriesBy:c,groupBy:d}){let e=a?.top||{},f=[{key:"apiKeys",label:"API Key",data:e.apiKeys||[]},{key:"models",label:"Model",data:e.models||[]},{key:"providers",label:"Provider",data:e.providers||[]}].filter(a=>a.data.length>0);return(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,j.jsx)(dw,{series:a?.series,metric:b,seriesBy:c}),f.map(a=>(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-1",children:[(0,j.jsxs)("p",{className:"text-xs font-semibold uppercase text-text-muted px-0.5",children:[a.label," breakdown"]}),(0,j.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-4 sm:grid-cols-2",children:[(0,j.jsx)(dx,{top:a.data,metric:b}),(0,j.jsx)(dy,{top:a.data,metric:b})]})]},a.key))]})}dz.propTypes={report:F().object,metric:F().string,seriesBy:F().string,groupBy:F().string},dw.propTypes={series:F().array,metric:F().string,seriesBy:F().string},dx.propTypes={top:F().array,metric:F().string},dy.propTypes={top:F().array,metric:F().string};let dA=a=>new Intl.NumberFormat().format(a||0),dB=a=>`$${(a||0).toFixed(4)}`;function dC({field:a,currentSort:b,currentOrder:c}){return b!==a?(0,j.jsx)("span",{className:"ml-1 opacity-25 text-xs",children:"↕"}):(0,j.jsx)("span",{className:"ml-1 text-xs",children:"asc"===c?"↑":"↓"})}dC.propTypes={field:F().string,currentSort:F().string,currentOrder:F().string};let dD=[{field:"requests",label:"Requests"},{field:"promptTokens",label:"Input"},{field:"completionTokens",label:"Output"},{field:"cachedTokens",label:"Cached"},{field:"totalTokens",label:"Total Tokens"},{field:"cost",label:"Cost"},{field:"avgCostPerRequest",label:"Avg/Req"},{field:"cacheHitRatio",label:"Cache %"},{field:"lastUsed",label:"Last Used"}];function dE({breakdown:a,groupBy:b}){let[c,d]=(0,k.useState)("requests"),[e,f]=(0,k.useState)("desc");if(!a?.length)return(0,j.jsx)(n.default,{className:"p-8 text-center text-text-muted text-sm",children:"No usage data for selected filters."});let g=[...a].sort((a,b)=>{let d=a[c]??0,f=b[c]??0;return"string"==typeof d?"asc"===e?d.localeCompare(f):f.localeCompare(d):"asc"===e?d-f:f-d}),h={apiKey:"API Key",model:"Model",provider:"Provider",time:"Time Period"}[b]||"Label";return(0,j.jsxs)(n.default,{className:"overflow-hidden",children:[(0,j.jsx)("div",{className:"p-3 border-b border-border bg-bg-subtle/50",children:(0,j.jsxs)("h3",{className:"text-sm font-semibold text-text-main",children:["Breakdown by ",h]})}),(0,j.jsx)("div",{className:"overflow-x-auto",children:(0,j.jsxs)("table",{className:"w-full text-sm text-left min-w-[900px]",children:[(0,j.jsx)("thead",{className:"bg-bg-subtle/30 text-text-muted uppercase text-xs",children:(0,j.jsxs)("tr",{children:[(0,j.jsx)("th",{className:"px-4 py-3 font-semibold",children:h}),dD.map(a=>(0,j.jsxs)("th",{className:"px-3 py-3 text-right cursor-pointer hover:bg-bg-subtle/50 whitespace-nowrap",onClick:()=>{var b;c===(b=a.field)?f(a=>"desc"===a?"asc":"desc"):(d(b),f("desc"))},children:[a.label,(0,j.jsx)(dC,{field:a.field,currentSort:c,currentOrder:e})]},a.field))]})}),(0,j.jsx)("tbody",{className:"divide-y divide-border",children:g.map(a=>{let b;return(0,j.jsxs)("tr",{className:"hover:bg-bg-subtle/30 transition-colors",children:[(0,j.jsx)("td",{className:"px-4 py-3 max-w-[200px]",children:(0,j.jsxs)("div",{className:"flex flex-col gap-0.5 min-w-0",children:[(0,j.jsx)("span",{className:"font-medium text-text-main truncate",children:a.label}),a.maskedKey&&(0,j.jsx)("span",{className:"text-[10px] font-mono text-text-muted truncate",children:a.maskedKey})]})}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-text-main",children:dA(a.requests)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-text-muted",children:dA(a.promptTokens)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-text-muted",children:dA(a.completionTokens)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono",style:{color:"var(--color-info, #06b6d4)"},children:dA(a.cachedTokens)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono font-medium",children:dA(a.totalTokens)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-warning",children:dB(a.cost)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-text-muted",children:dB(a.avgCostPerRequest)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-text-muted",children:(b=a.cacheHitRatio,`${(100*(b||0)).toFixed(1)}%`)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right text-text-muted whitespace-nowrap",children:function(a){if(!a)return"—";let b=Math.floor((Date.now()-new Date(a))/6e4);return b<1?"Just now":b<60?`${b}m ago`:b<1440?`${Math.floor(b/60)}h ago`:new Date(a).toLocaleDateString()}(a.lastUsed)})]},a.id)})})]})})]})}dE.propTypes={breakdown:F().array,groupBy:F().string};let dF=(d=0,()=>(d+=1,`u${`0000${(1679616*Math.random()|0).toString(36)}`.slice(-4)}${d}`));function dG(a){let b=[];for(let c=0,d=a.length;c<d;c++)b.push(a[c]);return b}let dH=null;function dI(a={}){return dH||(dH=a.includeStyleProperties?a.includeStyleProperties:dG(window.getComputedStyle(document.documentElement)))}function dJ(a,b){let c=(a.ownerDocument.defaultView||window).getComputedStyle(a).getPropertyValue(b);return c?parseFloat(c.replace("px","")):0}function dK(a,b={}){let c,d,e,f;return{width:b.width||(c=dJ(a,"border-left-width"),d=dJ(a,"border-right-width"),a.clientWidth+c+d),height:b.height||(e=dJ(a,"border-top-width"),f=dJ(a,"border-bottom-width"),a.clientHeight+e+f)}}function dL(a){return new Promise((b,c)=>{let d=new Image;d.onload=()=>{d.decode().then(()=>{requestAnimationFrame(()=>b(d))})},d.onerror=c,d.crossOrigin="anonymous",d.decoding="async",d.src=a})}async function dM(a){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(a)).then(encodeURIComponent).then(a=>`data:image/svg+xml;charset=utf-8,${a}`)}async function dN(a,b,c){let d="http://www.w3.org/2000/svg",e=document.createElementNS(d,"svg"),f=document.createElementNS(d,"foreignObject");return e.setAttribute("width",`${b}`),e.setAttribute("height",`${c}`),e.setAttribute("viewBox",`0 0 ${b} ${c}`),f.setAttribute("width","100%"),f.setAttribute("height","100%"),f.setAttribute("x","0"),f.setAttribute("y","0"),f.setAttribute("externalResourcesRequired","true"),e.appendChild(f),f.appendChild(a),dM(e)}let dO=(a,b)=>{if(a instanceof b)return!0;let c=Object.getPrototypeOf(a);return null!==c&&(c.constructor.name===b.name||dO(c,b))};function dP(a,b,c,d){let e,f,g,h=window.getComputedStyle(a,c),i=h.getPropertyValue("content");if(""===i||"none"===i)return;let j=dF();try{b.className=`${b.className} ${j}`}catch(a){return}let k=document.createElement("style");k.appendChild((e=`.${j}:${c}`,g=h.cssText?(f=h.getPropertyValue("content"),`${h.cssText} content: '${f.replace(/'|"/g,"")}';`):dI(d).map(a=>{let b=h.getPropertyValue(a),c=h.getPropertyPriority(a);return`${a}: ${b}${c?" !important":""};`}).join(" "),document.createTextNode(`${e}{${g}}`))),b.appendChild(k)}let dQ="application/font-woff",dR="image/jpeg",dS={woff:dQ,woff2:dQ,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:dR,jpeg:dR,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function dT(a){let b;return dS[((b=/\.([^./]*?)$/g.exec(a))?b[1]:"").toLowerCase()]||""}function dU(a){return -1!==a.search(/^(data:)/)}function dV(a,b){return`data:${b};base64,${a}`}async function dW(a,b,c){let d=await fetch(a,b);if(404===d.status)throw Error(`Resource "${d.url}" not found`);let e=await d.blob();return new Promise((a,b)=>{let f=new FileReader;f.onerror=b,f.onloadend=()=>{try{a(c({res:d,result:f.result}))}catch(a){b(a)}},f.readAsDataURL(e)})}let dX={};async function dY(a,b,c){var d,e,f;let g,h,i=(d=a,e=b,f=c.includeQueryParams,h=d.replace(/\?.*/,""),f&&(h=d),/ttf|otf|eot|woff2?/i.test(h)&&(h=h.replace(/.*\//,"")),e?`[${e}]${h}`:h);if(null!=dX[i])return dX[i];c.cacheBust&&(a+=(/\?/.test(a)?"&":"?")+new Date().getTime());try{let d=await dW(a,c.fetchRequestInit,({res:a,result:c})=>(b||(b=a.headers.get("Content-Type")||""),c.split(/,/)[1]));g=dV(d,b)}catch(d){g=c.imagePlaceholder||"";let b=`Failed to fetch resource: ${a}`;d&&(b="string"==typeof d?d:d.message),b&&console.warn(b)}return dX[i]=g,g}async function dZ(a){let b=a.toDataURL();return"data:,"===b?a.cloneNode(!1):dL(b)}async function d$(a,b){if(a.currentSrc){let b=document.createElement("canvas"),c=b.getContext("2d");return b.width=a.clientWidth,b.height=a.clientHeight,null==c||c.drawImage(a,0,0,b.width,b.height),dL(b.toDataURL())}let c=a.poster,d=dT(c);return dL(await dY(c,d,b))}async function d_(a,b){var c;try{if(null==(c=null==a?void 0:a.contentDocument)?void 0:c.body)return await d4(a.contentDocument.body,b,!0)}catch(a){}return a.cloneNode(!1)}async function d0(a,b){return dO(a,HTMLCanvasElement)?dZ(a):dO(a,HTMLVideoElement)?d$(a,b):dO(a,HTMLIFrameElement)?d_(a,b):a.cloneNode(d1(a))}let d1=a=>null!=a.tagName&&"SVG"===a.tagName.toUpperCase();async function d2(a,b,c){var d,e;if(d1(b))return b;let f=[];return 0===(f=null!=a.tagName&&"SLOT"===a.tagName.toUpperCase()&&a.assignedNodes?dG(a.assignedNodes()):dO(a,HTMLIFrameElement)&&(null==(d=a.contentDocument)?void 0:d.body)?dG(a.contentDocument.body.childNodes):dG((null!=(e=a.shadowRoot)?e:a).childNodes)).length||dO(a,HTMLVideoElement)||await f.reduce((a,d)=>a.then(()=>d4(d,c)).then(a=>{a&&b.appendChild(a)}),Promise.resolve()),b}async function d3(a,b){let c=a.querySelectorAll?a.querySelectorAll("use"):[];if(0===c.length)return a;let d={};for(let e=0;e<c.length;e++){let f=c[e].getAttribute("xlink:href");if(f){let c=a.querySelector(f),e=document.querySelector(f);c||!e||d[f]||(d[f]=await d4(e,b,!0))}}let e=Object.values(d);if(e.length){let b="http://www.w3.org/1999/xhtml",c=document.createElementNS(b,"svg");c.setAttribute("xmlns",b),c.style.position="absolute",c.style.width="0",c.style.height="0",c.style.overflow="hidden",c.style.display="none";let d=document.createElementNS(b,"defs");c.appendChild(d);for(let a=0;a<e.length;a++)d.appendChild(e[a]);a.appendChild(c)}return a}async function d4(a,b,c){return c||!b.filter||b.filter(a)?Promise.resolve(a).then(a=>d0(a,b)).then(c=>d2(a,c,b)).then(c=>(function(a,b,c){if(dO(b,Element)&&(!function(a,b,c){let d=b.style;if(!d)return;let e=window.getComputedStyle(a);e.cssText?(d.cssText=e.cssText,d.transformOrigin=e.transformOrigin):dI(c).forEach(c=>{let f=e.getPropertyValue(c);if("font-size"===c&&f.endsWith("px")){let a=Math.floor(parseFloat(f.substring(0,f.length-2)))-.1;f=`${a}px`}dO(a,HTMLIFrameElement)&&"display"===c&&"inline"===f&&(f="block"),"d"===c&&b.getAttribute("d")&&(f=`path(${b.getAttribute("d")})`),d.setProperty(c,f,e.getPropertyPriority(c))})}(a,b,c),dP(a,b,":before",c),dP(a,b,":after",c),dO(a,HTMLTextAreaElement)&&(b.innerHTML=a.value),dO(a,HTMLInputElement)&&b.setAttribute("value",a.value),dO(a,HTMLSelectElement))){let c=Array.from(b.children).find(b=>a.value===b.getAttribute("value"));c&&c.setAttribute("selected","")}return b})(a,c,b)).then(a=>d3(a,b)):null}let d5=/url\((['"]?)([^'"]+?)\1\)/g,d6=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,d7=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;async function d8(a,b,c,d,e){try{let f,g,h=c?function(a,b){if(a.match(/^[a-z]+:\/\//i))return a;if(a.match(/^\/\//))return window.location.protocol+a;if(a.match(/^[a-z]+:/i))return a;let c=document.implementation.createHTMLDocument(),d=c.createElement("base"),e=c.createElement("a");return c.head.appendChild(d),c.body.appendChild(e),b&&(d.href=b),e.href=a,e.href}(b,c):b,i=dT(b);if(e){let a=await e(h);f=dV(a,i)}else f=await dY(h,i,d);return a.replace((g=b.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1"),RegExp(`(url\\(['"]?)(${g})(['"]?\\))`,"g")),`$1${f}$3`)}catch(a){}return a}function d9(a){return -1!==a.search(d5)}async function ea(a,b,c){let d;if(!d9(a))return a;let e=function(a,{preferredFontFormat:b}){return b?a.replace(d7,a=>{for(;;){let[c,,d]=d6.exec(a)||[];if(!d)return"";if(d===b)return`src: ${c};`}}):a}(a,c);return(d=[],e.replace(d5,(a,b,c)=>(d.push(c),a)),d.filter(a=>!dU(a))).reduce((a,d)=>a.then(a=>d8(a,d,b,c)),Promise.resolve(e))}async function eb(a,b,c){var d;let e=null==(d=b.style)?void 0:d.getPropertyValue(a);if(e){let d=await ea(e,null,c);return b.style.setProperty(a,d,b.style.getPropertyPriority(a)),!0}return!1}async function ec(a,b){await eb("background",a,b)||await eb("background-image",a,b),await eb("mask",a,b)||await eb("-webkit-mask",a,b)||await eb("mask-image",a,b)||await eb("-webkit-mask-image",a,b)}async function ed(a,b){let c=dO(a,HTMLImageElement);if(!(c&&!dU(a.src))&&!(dO(a,SVGImageElement)&&!dU(a.href.baseVal)))return;let d=c?a.src:a.href.baseVal,e=await dY(d,dT(d),b);await new Promise((d,f)=>{a.onload=d,a.onerror=b.onImageErrorHandler?(...a)=>{try{d(b.onImageErrorHandler(...a))}catch(a){f(a)}}:f,a.decode&&(a.decode=d),"lazy"===a.loading&&(a.loading="eager"),c?(a.srcset="",a.src=e):a.href.baseVal=e})}async function ee(a,b){let c=dG(a.childNodes).map(a=>ef(a,b));await Promise.all(c).then(()=>a)}async function ef(a,b){dO(a,Element)&&(await ec(a,b),await ed(a,b),await ee(a,b))}let eg={};async function eh(a){let b=eg[a];if(null!=b)return b;let c=await fetch(a);return b={url:a,cssText:await c.text()},eg[a]=b,b}async function ei(a,b){let c=a.cssText,d=/url\(["']?([^"')]+)["']?\)/g;return Promise.all((c.match(/url\([^)]+\)/g)||[]).map(async e=>{let f=e.replace(d,"$1");return f.startsWith("https://")||(f=new URL(f,a.url).href),dW(f,b.fetchRequestInit,({result:a})=>(c=c.replace(e,`url(${a})`),[e,a]))})).then(()=>c)}function ej(a){if(null==a)return[];let b=[],c=a.replace(/(\/\*[\s\S]*?\*\/)/gi,""),d=RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){let a=d.exec(c);if(null===a)break;b.push(a[0])}c=c.replace(d,"");let e=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,f=RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})","gi");for(;;){let a=e.exec(c);if(null===a){if(null===(a=f.exec(c)))break;e.lastIndex=f.lastIndex}else f.lastIndex=e.lastIndex;b.push(a[0])}return b}async function ek(a,b){let c=[],d=[];return a.forEach(c=>{if("cssRules"in c)try{dG(c.cssRules||[]).forEach((a,e)=>{if(a.type===CSSRule.IMPORT_RULE){let f=e+1,g=a.href,h=eh(g).then(a=>ei(a,b)).then(a=>ej(a).forEach(a=>{try{c.insertRule(a,a.startsWith("@import")?f+=1:c.cssRules.length)}catch(b){console.error("Error inserting rule from remote css",{rule:a,error:b})}})).catch(a=>{console.error("Error loading remote css",a.toString())});d.push(h)}})}catch(f){let e=a.find(a=>null==a.href)||document.styleSheets[0];null!=c.href&&d.push(eh(c.href).then(a=>ei(a,b)).then(a=>ej(a).forEach(a=>{e.insertRule(a,e.cssRules.length)})).catch(a=>{console.error("Error loading remote stylesheet",a)})),console.error("Error inlining remote css file",f)}}),Promise.all(d).then(()=>(a.forEach(a=>{if("cssRules"in a)try{dG(a.cssRules||[]).forEach(a=>{c.push(a)})}catch(b){console.error(`Error while reading CSS rules from ${a.href}`,b)}}),c))}async function el(a,b){if(null==a.ownerDocument)throw Error("Provided element is not within a Document");let c=dG(a.ownerDocument.styleSheets);return(await ek(c,b)).filter(a=>a.type===CSSRule.FONT_FACE_RULE).filter(a=>d9(a.style.getPropertyValue("src")))}function em(a){return a.trim().replace(/["']/g,"")}async function en(a,b){let c,d=await el(a,b),e=(c=new Set,!function a(b){(b.style.fontFamily||getComputedStyle(b).fontFamily).split(",").forEach(a=>{c.add(em(a))}),Array.from(b.children).forEach(b=>{b instanceof HTMLElement&&a(b)})}(a),c);return(await Promise.all(d.filter(a=>e.has(em(a.style.fontFamily))).map(a=>{let c=a.parentStyleSheet?a.parentStyleSheet.href:null;return ea(a.cssText,c,b)}))).join("\n")}async function eo(a,b){let c=null!=b.fontEmbedCSS?b.fontEmbedCSS:b.skipFonts?null:await en(a,b);if(c){let b=document.createElement("style"),d=document.createTextNode(c);b.appendChild(d),a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)}}async function ep(a,b={}){let{width:c,height:d}=dK(a,b),e=await d4(a,b,!0);return await eo(e,b),await ef(e,b),!function(a,b){let{style:c}=a;b.backgroundColor&&(c.backgroundColor=b.backgroundColor),b.width&&(c.width=`${b.width}px`),b.height&&(c.height=`${b.height}px`);let d=b.style;null!=d&&Object.keys(d).forEach(a=>{c[a]=d[a]})}(e,b),await dN(e,c,d)}async function eq(a,b={}){let{width:c,height:d}=dK(a,b),e=await ep(a,b),f=await dL(e),g=document.createElement("canvas"),h=g.getContext("2d"),i=b.pixelRatio||function(){let a,b;try{b=process}catch(a){}let c=b&&b.env?b.env.devicePixelRatio:null;return c&&Number.isNaN(a=parseInt(c,10))&&(a=1),a||window.devicePixelRatio||1}(),j=b.canvasWidth||c,k=b.canvasHeight||d;return g.width=j*i,g.height=k*i,!b.skipAutoScale&&(g.width>16384||g.height>16384)&&(g.width>16384&&g.height>16384?g.width>g.height?(g.height*=16384/g.width,g.width=16384):(g.width*=16384/g.height,g.height=16384):g.width>16384?(g.height*=16384/g.width,g.width=16384):(g.width*=16384/g.height,g.height=16384)),g.style.width=`${j}`,g.style.height=`${k}`,b.backgroundColor&&(h.fillStyle=b.backgroundColor,h.fillRect(0,0,g.width,g.height)),h.drawImage(f,0,0,g.width,g.height),g}async function er(a,b={}){return(await eq(a,b)).toDataURL()}let es=[{value:"today",label:"Today"},{value:"24h",label:"24H"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"all",label:"All Time"}],et=[{value:"auto",label:"✨ Auto"},{value:"allStats",label:"\uD83D\uDCCA All Stats"},{value:"tokenBeast",label:"\uD83E\uDD81 Token Beast"},{value:"costFlex",label:"\uD83D\uDCB0 Cost Flex"},{value:"modelHopper",label:"\uD83D\uDD00 Model Hopper"},{value:"providerCollector",label:"\uD83C\uDF10 Providers"},{value:"memeMode",label:"\uD83C\uDFAA Meme Mode"}],eu=[{value:"auto",label:"Auto"},{value:"cyber",label:"Cyber"},{value:"minimal",label:"Minimal"},{value:"gold",label:"Gold"},{value:"meme",label:"Meme"}];function ev(a,b){let c={cyber:{background:"linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #0f172a 100%)",cardBg:"rgba(255,255,255,0.04)",cardBorder:"rgba(99,102,241,0.3)",heroBg:"rgba(99,102,241,0.12)",heroBorder:"rgba(99,102,241,0.4)",heroText:"#a5b4fc",heroLabelText:"#818cf8",subCardBg:"rgba(255,255,255,0.04)",subCardBorder:"rgba(99,102,241,0.2)",subLabelText:"#6366f1",subValueText:"#e2e8f0",headerText:"#c7d2fe",badgeBg:"rgba(99,102,241,0.2)",badgeText:"#a5b4fc",badgeBorder:"rgba(99,102,241,0.4)",footerText:"#4f46e5",dividerColor:"rgba(99,102,241,0.2)",accentColor:"#6366f1",fontFamily:"'ui-monospace', 'Cascadia Code', 'Courier New', monospace"},minimal:{background:"#ffffff",cardBg:"#f8fafc",cardBorder:"#e2e8f0",heroBg:"#f1f5f9",heroBorder:"#cbd5e1",heroText:"#0f172a",heroLabelText:"#64748b",subCardBg:"#f8fafc",subCardBorder:"#e2e8f0",subLabelText:"#94a3b8",subValueText:"#1e293b",headerText:"#334155",badgeBg:"#f1f5f9",badgeText:"#475569",badgeBorder:"#cbd5e1",footerText:"#94a3b8",dividerColor:"#e2e8f0",accentColor:"#3b82f6",fontFamily:"'ui-sans-serif', 'system-ui', '-apple-system', sans-serif"},gold:{background:"linear-gradient(135deg, #1a0e00 0%, #2d1a00 40%, #1a0e00 100%)",cardBg:"rgba(255,200,50,0.05)",cardBorder:"rgba(217,165,32,0.3)",heroBg:"rgba(217,165,32,0.1)",heroBorder:"rgba(217,165,32,0.4)",heroText:"#fde68a",heroLabelText:"#d97706",subCardBg:"rgba(255,200,50,0.04)",subCardBorder:"rgba(217,165,32,0.2)",subLabelText:"#b45309",subValueText:"#fef3c7",headerText:"#fde68a",badgeBg:"rgba(217,165,32,0.15)",badgeText:"#fbbf24",badgeBorder:"rgba(217,165,32,0.4)",footerText:"#92400e",dividerColor:"rgba(217,165,32,0.2)",accentColor:"#f59e0b",fontFamily:"'Georgia', 'Times New Roman', serif"},meme:{background:"linear-gradient(135deg, #7c3aed 0%, #db2777 50%, #ea580c 100%)",cardBg:"rgba(255,255,255,0.12)",cardBorder:"rgba(255,255,255,0.25)",heroBg:"rgba(255,255,255,0.15)",heroBorder:"rgba(255,255,255,0.3)",heroText:"#ffffff",heroLabelText:"rgba(255,255,255,0.8)",subCardBg:"rgba(255,255,255,0.1)",subCardBorder:"rgba(255,255,255,0.2)",subLabelText:"rgba(255,255,255,0.6)",subValueText:"#ffffff",headerText:"#ffffff",badgeBg:"rgba(255,255,255,0.2)",badgeText:"#ffffff",badgeBorder:"rgba(255,255,255,0.3)",footerText:"rgba(255,255,255,0.5)",dividerColor:"rgba(255,255,255,0.2)",accentColor:"#fbbf24",fontFamily:"'Impact', 'Arial Black', 'ui-sans-serif', sans-serif"}};return c["auto"===a?({allStats:"cyber",tokenBeast:"cyber",costFlex:"gold",modelHopper:"cyber",providerCollector:"gold",memeMode:"meme"})[b]??"cyber":a]??c.cyber}let ew=["allStats","tokenBeast","costFlex","modelHopper","providerCollector","memeMode"],ex=["cyber","minimal","gold","meme"],ey=(0,k.forwardRef)(function({flexData:a,flexType:b,themeConfig:c,period:d},e){let f=function(a,b){let c=b?.totals??{},d=b?.highlights??{},e=a=>new Intl.NumberFormat().format(a||0),f=a=>`$${(a||0).toFixed(2)}`;switch(a){case"allStats":return{emoji:"\uD83D\uDCCA",heroValue:e(c.requests),heroLabel:"total requests",layout:"allStats",panels:[{emoji:"\uD83E\uDD81",label:"Tokens",value:e(c.totalTokens),sub:`${e(c.cachedTokens)} cached`,color:"#818cf8"},{emoji:"\uD83D\uDCB0",label:"Est. Cost",value:`$${(c.cost||0).toFixed(2)}`,sub:`~$${(c.avgCostPerRequest||0).toFixed(4)}/req`,color:"#f59e0b"},{emoji:"\uD83D\uDD00",label:"Models",value:String(d.uniqueModels??0),sub:d.topModel??"—",color:"#34d399"},{emoji:"\uD83C\uDF10",label:"Providers",value:String(d.uniqueProviders??0),sub:d.topProvider??"—",color:"#fb923c"}],subStats:[]};case"tokenBeast":return{emoji:"\uD83E\uDD81",heroValue:e(c.totalTokens),heroLabel:"tokens consumed",subStats:[{label:"Requests",value:e(c.requests)},{label:"Top Model",value:d.topModel??"—"},{label:"Cache Hit",value:c.cacheHitRatio?`${(100*c.cacheHitRatio).toFixed(0)}%`:"—"},{label:"Est. Cost",value:f(c.cost)}]};case"costFlex":return{emoji:"\uD83D\uDCB0",heroValue:f(c.cost),heroLabel:"estimated AI spend",subStats:[{label:"Requests",value:e(c.requests)},{label:"Total Tokens",value:e(c.totalTokens)},{label:"Avg/Request",value:f(c.avgCostPerRequest)},{label:"Top Model",value:d.topModel??"—"}]};case"modelHopper":return{emoji:"\uD83D\uDD00",heroValue:String(d.uniqueModels??0),heroLabel:"models used",subStats:[{label:"Top Model",value:d.topModel??"—"},{label:"Dominance",value:d.topModelPct?`${d.topModelPct.toFixed(0)}%`:"—"},{label:"Requests",value:e(c.requests)},{label:"Total Tokens",value:e(c.totalTokens)}]};case"providerCollector":return{emoji:"\uD83C\uDF10",heroValue:String(d.uniqueProviders??0),heroLabel:"providers routed",subStats:[{label:"Top Provider",value:d.topProvider??"—"},{label:"Coverage",value:d.topProviderPct?`${d.topProviderPct.toFixed(0)}%`:"—"},{label:"Models",value:String(d.uniqueModels??0)},{label:"Requests",value:e(c.requests)}]};default:return{emoji:"\uD83C\uDFAA",heroValue:e(c.requests),heroLabel:"requests fired",subStats:[{label:"Tokens Shot",value:e(c.totalTokens)},{label:"Models",value:String(d.uniqueModels??0)},{label:"Providers",value:String(d.uniqueProviders??0)},{label:"Est. Cost",value:f(c.cost)}]}}}(b,a),g=c??{},h=!a||(a.totals?.requests??0)===0&&(a.totals?.totalTokens??0)===0;return(0,j.jsxs)("div",{ref:e,style:{width:1080,height:1080,background:g.background??"#0f172a",fontFamily:g.fontFamily??"sans-serif",position:"relative",display:"flex",flexDirection:"column",padding:64,boxSizing:"border-box",overflow:"hidden"},children:[(0,j.jsx)("div",{style:{position:"absolute",top:-120,right:-120,width:480,height:480,borderRadius:"50%",background:`radial-gradient(circle, ${g.accentColor??"#6366f1"}22 0%, transparent 70%)`,pointerEvents:"none"}}),(0,j.jsx)("div",{style:{position:"absolute",bottom:-80,left:-80,width:320,height:320,borderRadius:"50%",background:`radial-gradient(circle, ${g.accentColor??"#6366f1"}18 0%, transparent 70%)`,pointerEvents:"none"}}),(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:48},children:[(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12},children:[(0,j.jsx)("div",{style:{width:44,height:44,borderRadius:12,background:g.accentColor??"#6366f1",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,j.jsx)("span",{style:{color:"#ffffff",fontSize:18,fontWeight:800,lineHeight:1,letterSpacing:"-0.5px"},children:"n9"})}),(0,j.jsx)("span",{style:{color:g.headerText??"#c7d2fe",fontSize:28,fontWeight:700,letterSpacing:"-0.5px"},children:"n9router"})]}),(0,j.jsx)("div",{style:{padding:"8px 20px",borderRadius:100,background:g.badgeBg??"rgba(99,102,241,0.2)",border:`1.5px solid ${g.badgeBorder??"rgba(99,102,241,0.4)"}`,color:g.badgeText??"#a5b4fc",fontSize:20,fontWeight:600,letterSpacing:"0.02em"},children:{today:"Today","24h":"Last 24H","7d":"Last 7 Days","30d":"Last 30 Days",all:"All Time"}[d]??d})]}),h?(0,j.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:16},children:[(0,j.jsx)("span",{style:{fontSize:80},children:"\uD83D\uDCED"}),(0,j.jsx)("span",{style:{color:g.heroLabelText??"#818cf8",fontSize:36,fontWeight:600,textAlign:"center"},children:"No usage data yet"}),(0,j.jsx)("span",{style:{color:g.footerText??"#4f46e5",fontSize:24,textAlign:"center"},children:"Start using the gateway to see your stats here"})]}):"allStats"===f.layout?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("div",{style:{background:g.heroBg??"rgba(99,102,241,0.12)",border:`2px solid ${g.heroBorder??"rgba(99,102,241,0.4)"}`,borderRadius:20,padding:"28px 48px",marginBottom:28,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:20},children:[(0,j.jsx)("span",{style:{fontSize:52,lineHeight:1},children:f.emoji}),(0,j.jsxs)("div",{children:[(0,j.jsx)("div",{style:{color:g.heroText??"#a5b4fc",fontSize:64,fontWeight:800,lineHeight:1,letterSpacing:"-1px"},children:f.heroValue}),(0,j.jsx)("div",{style:{color:g.heroLabelText??"#818cf8",fontSize:20,fontWeight:500,textTransform:"uppercase",letterSpacing:"0.06em",marginTop:4},children:f.heroLabel})]})]}),(0,j.jsx)("div",{style:{color:g.heroLabelText??"#818cf8",fontSize:20,fontWeight:500,textAlign:"right",opacity:.7},children:"Complete Overview"})]}),(0,j.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:20,flex:1},children:(f.panels??[]).map((a,b)=>(0,j.jsxs)("div",{style:{background:g.subCardBg??"rgba(255,255,255,0.04)",border:`1.5px solid ${g.subCardBorder??"rgba(99,102,241,0.2)"}`,borderRadius:20,padding:"32px 36px",display:"flex",flexDirection:"column",gap:8,position:"relative",overflow:"hidden"},children:[(0,j.jsx)("div",{style:{position:"absolute",top:-30,right:-30,width:100,height:100,borderRadius:"50%",background:`radial-gradient(circle, ${a.color}30 0%, transparent 70%)`,pointerEvents:"none"}}),(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,j.jsx)("span",{style:{fontSize:28,lineHeight:1},children:a.emoji}),(0,j.jsx)("span",{style:{color:a.color,fontSize:18,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.08em"},children:a.label})]}),(0,j.jsx)("div",{style:{color:g.subValueText??"#e2e8f0",fontSize:52,fontWeight:800,letterSpacing:"-1px",lineHeight:1.1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.value,children:a.value}),(0,j.jsx)("div",{style:{color:g.subLabelText??"#6366f1",fontSize:17,fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",opacity:.85},title:a.sub,children:a.sub})]},b))})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("div",{style:{background:g.heroBg??"rgba(99,102,241,0.12)",border:`2px solid ${g.heroBorder??"rgba(99,102,241,0.4)"}`,borderRadius:24,padding:"48px 56px",marginBottom:40,display:"flex",flexDirection:"column",alignItems:"center",gap:12,position:"relative"},children:[(0,j.jsx)("div",{style:{fontSize:72,lineHeight:1,marginBottom:8},children:f.emoji}),(0,j.jsx)("div",{style:{color:g.heroText??"#a5b4fc",fontSize:96,fontWeight:800,lineHeight:1,letterSpacing:"-2px",textAlign:"center",wordBreak:"break-all"},children:f.heroValue}),(0,j.jsx)("div",{style:{color:g.heroLabelText??"#818cf8",fontSize:28,fontWeight:500,textAlign:"center",letterSpacing:"0.02em",textTransform:"uppercase"},children:f.heroLabel})]}),(0,j.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:16,flex:1},children:f.subStats.map((a,b)=>(0,j.jsxs)("div",{style:{background:g.subCardBg??"rgba(255,255,255,0.04)",border:`1.5px solid ${g.subCardBorder??"rgba(99,102,241,0.2)"}`,borderRadius:16,padding:"24px 28px",display:"flex",flexDirection:"column",gap:6},children:[(0,j.jsx)("div",{style:{color:g.subLabelText??"#6366f1",fontSize:18,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.06em"},children:a.label}),(0,j.jsx)("div",{style:{color:g.subValueText??"#e2e8f0",fontSize:32,fontWeight:700,letterSpacing:"-0.5px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.value,children:a.value})]},b))})]}),(0,j.jsxs)("div",{style:{marginTop:36,paddingTop:24,borderTop:`1px solid ${g.dividerColor??"rgba(99,102,241,0.2)"}`,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,j.jsx)("span",{style:{color:g.footerText??"#4f46e5",fontSize:18,fontWeight:500},children:"Self-hosted AI routing gateway"}),(0,j.jsx)("span",{style:{color:g.footerText??"#4f46e5",fontSize:18},children:"github.com/nightwalker89/n9router"})]})]})});function ez(){let[a,b]=(0,k.useState)("30d"),[c,d]=(0,k.useState)("auto"),[e,f]=(0,k.useState)("auto"),[g,h]=(0,k.useState)(!1),[i,l]=(0,k.useState)(null),[n,o]=(0,k.useState)(!0),[p,q]=(0,k.useState)(null),[r,s]=(0,k.useState)(!1),[t,u]=(0,k.useState)(!1),[v,w]=(0,k.useState)(!1),x=(0,k.useRef)(null),[y,z]=(0,k.useState)(.37),A=(0,k.useRef)(null),B=(0,k.useRef)(null),C=i?i?.totals?{period:a,totals:{requests:i.totals.requests??0,totalTokens:i.totals.totalTokens??0,promptTokens:i.totals.promptTokens??0,completionTokens:i.totals.completionTokens??0,cachedTokens:i.totals.cachedTokens??0,cost:i.totals.cost??0,avgCostPerRequest:i.totals.avgCostPerRequest??0,cacheHitRatio:i.totals.cacheHitRatio??0},highlights:{topModel:i.top?.models?.[0]?.label??null,topModelPct:i.top?.models?.[0]?.percentage??0,topProvider:i.top?.providers?.[0]?.label??null,topProviderPct:i.top?.providers?.[0]?.percentage??0,uniqueModels:i.top?.models?.length??0,uniqueProviders:i.top?.providers?.length??0},generatedAt:new Date().toISOString()}:null:null,E="auto"===c?function(a){if(!a)return"memeMode";let{totals:b,highlights:c}=a;return(c?.uniqueProviders??0)>=3?"providerCollector":(c?.uniqueModels??0)>=5?"modelHopper":(b?.totalTokens??0)>1e4?"tokenBeast":(b?.cost??0)>0?"costFlex":"memeMode"}(C):c,F=ev(e,E),G=(0,k.useCallback)(async a=>{B.current&&B.current.abort();let b=new AbortController;B.current=b,o(!0),q(null);try{let c=function(a){let b=new URLSearchParams({metric:"tokens",groupBy:"apiKey",seriesBy:"none"});if("today"===a){let a=new Date,c=new Date(a.getFullYear(),a.getMonth(),a.getDate());b.set("period","custom"),b.set("startDate",c.toISOString()),b.set("endDate",a.toISOString()),b.set("interval","hour")}else b.set("period",a);return b.toString()}(a),d=await fetch(`/api/usage/report?${c}`,{signal:b.signal});if(!d.ok){let a=await d.json().catch(()=>({}));throw Error(a.error||`HTTP ${d.status}`)}l(await d.json())}catch(a){"AbortError"!==a.name&&q(a.message)}finally{o(!1)}},[]),H=(0,k.useCallback)(async()=>{if(A.current&&!r){s(!0),u(!1);try{let b=await er(A.current,{width:1080,height:1080,pixelRatio:2,cacheBust:!0,skipFonts:!0}),c=document.createElement("a");c.download=`9router-flex-${a}.png`,c.href=b,c.click()}catch(a){console.error("[FlexReport] Export failed:",a),u(!0),setTimeout(()=>u(!1),3e3)}finally{s(!1)}}},[A,r,a]),I=(0,k.useCallback)(async()=>{if(!C)return;let b=function(a,b,c){let d=b?.totals??{},e=b?.highlights??{},f={today:"today","24h":"the last 24 hours","7d":"the last 7 days","30d":"the last 30 days",all:"all time"}[c]??c,g=a=>new Intl.NumberFormat().format(a||0),h=a=>(a||0).toFixed(2);switch(a){case"allStats":return`📊 My AI stats ${f}: ${g(d.totalTokens)} tokens \xb7 ~$${h(d.cost)} spent \xb7 ${e.uniqueModels??0} models \xb7 ${e.uniqueProviders??0} providers \xb7 ${g(d.requests)} requests total. Powered by n9router ⚡`;case"tokenBeast":return`🦁 Token Beast Mode — ${g(d.totalTokens)} tokens consumed ${f}! Top model: ${e.topModel??"unknown"}. Powered by n9router ⚡`;case"costFlex":return`💰 AI spend ${f}: ~$${h(d.cost)} across ${g(d.requests)} requests. Powered by n9router ⚡`;case"modelHopper":return`🔀 ${e.uniqueModels??0} different models ${f}! Favorite: ${e.topModel??"unknown"} (${e.topModelPct?.toFixed(0)??0}%). Powered by n9router ⚡`;case"providerCollector":return`🌐 Routing through ${e.uniqueProviders??0} AI providers ${f}! ${g(d.requests)} requests, ${g(d.totalTokens)} tokens. Powered by n9router ⚡`;default:return`🎪 ${g(d.requests)} AI requests fired into the void ${f}. Am I an AI power user yet? Powered by n9router ⚡`}}(E,C,a);try{await navigator.clipboard.writeText(b)}catch{let a=document.createElement("textarea");a.value=b,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.focus(),a.select();try{document.execCommand("copy")}catch{}document.body.removeChild(a)}w(!0),setTimeout(()=>w(!1),2e3)},[C,E,a]),J=(0,k.useCallback)(()=>{var a;let b,c,{flexType:g,style:h}=(a="auto"===e?ev("auto",E).__resolved:e,b=ew.filter(a=>a!==E),c=ex.filter(b=>b!==a),{flexType:b[Math.floor(Math.random()*b.length)],style:c[Math.floor(Math.random()*c.length)]});d(g),f(h)},[E,e]),K=!!C,L=!n&&!p&&C&&0===C.totals.requests&&0===C.totals.totalTokens;return(0,j.jsxs)(m.Zp,{className:"overflow-hidden",children:[(0,j.jsxs)("button",{onClick:()=>h(a=>!a),className:"w-full flex items-center justify-between px-4 py-3 border-b border-border bg-bg-subtle/50 hover:bg-bg-subtle/80 transition-colors cursor-pointer",children:[(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"auto_awesome"}),(0,j.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Usage Flex"}),(0,j.jsx)("span",{className:"text-xs text-text-muted",children:"Share your AI stats"})]}),(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[!g&&(0,j.jsxs)("span",{role:"button",onClick:a=>{a.stopPropagation(),J()},className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border border-border text-text-muted hover:text-text-main hover:border-text-muted transition-colors ${n?"opacity-40 pointer-events-none":""}`,children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"shuffle"}),"Surprise Me"]}),(0,j.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted transition-transform duration-200",style:{transform:g?"rotate(0deg)":"rotate(180deg)"},children:"expand_more"})]})]}),!g&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-4 py-3 border-b border-border",children:[(0,j.jsx)(D.default,{options:es,value:a,onChange:b,size:"sm"}),(0,j.jsx)(D.default,{options:et,value:c,onChange:d,size:"sm"}),(0,j.jsx)(D.default,{options:eu,value:e,onChange:f,size:"sm"})]}),(0,j.jsx)("div",{className:"p-4",children:n?(0,j.jsx)("div",{className:"flex flex-col gap-3",children:(0,j.jsx)(m.Qv,{className:"w-full aspect-square max-w-xs mx-auto h-auto",style:{aspectRatio:"1"}})}):p?(0,j.jsxs)(m.Zp,{className:"flex flex-col items-center gap-3 p-8 text-center max-w-xs mx-auto",children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-3xl text-text-muted",children:"error"}),(0,j.jsx)("p",{className:"text-text-muted text-sm",children:p}),(0,j.jsx)(m.$n,{size:"sm",icon:"refresh",onClick:()=>G(a),children:"Retry"})]}):(0,j.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,j.jsx)("div",{className:"flex justify-center",children:(0,j.jsx)("div",{ref:x,className:"relative w-full",style:{maxWidth:400,aspectRatio:"1",overflow:"hidden"},children:(0,j.jsx)("div",{style:{width:1080,height:1080,transform:`scale(${y})`,transformOrigin:"top left",position:"absolute",top:0,left:0},children:(0,j.jsx)(ey,{ref:A,flexData:C,flexType:E,themeConfig:F,period:a})})})}),(0,j.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[(0,j.jsxs)("button",{onClick:H,disabled:r||!K||L,className:`inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-all cursor-pointer
1
+ (()=>{var a={};a.id=2825,a.ids=[2825],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},7725:(a,b,c)=>{a.exports=c(94542).isPlainObject},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},24752:(a,b,c)=>{Promise.resolve().then(c.bind(c,87149))},25039:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(63747),o=c(24235),p=c(23938),q=c(261),r=c(66758),s=c(77243),t=c(26713),u=c(37527),v=c(22820),w=c(88216),x=c(47929),y=c(79551),z=c(71797),A=c(89125),B=c(86439),C=c(77068),D=c(27269),E=c(61287),F=c(81494),G=c(70722),H=c(70753),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["usage",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,87149)),"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/dashboard/usage/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,30508)),"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,55068)),"/Users/cuongquach/projects/vibe/n9router/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/usage/page",pathname:"/dashboard/usage",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/usage/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(95726).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},82896:(a,b,c)=>{Promise.resolve().then(c.bind(c,90581))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87149:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/dashboard/usage/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/dashboard/usage/page.js","default")},90581:(a,b,c)=>{"use strict";let d;c.r(b),c.d(b,{default:()=>eF});var e,f,g,h,i,j=c(48249),k=c(67484),l=c(19099),m=c(50412),n=c(17660),o=c(99070),p=c(71404);function q({isOpen:a,onClose:b,title:c,children:d,width:e="md",className:f}){let g={sm:"w-[400px]",md:"w-[500px]",lg:"w-[600px]",xl:"w-[800px]",full:"w-full"};return a?(0,j.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,j.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in cursor-pointer",onClick:b,"aria-hidden":"true"}),(0,j.jsxs)("div",{className:(0,p.cn)("absolute right-0 top-0 h-full bg-surface flex flex-col","shadow-[var(--shadow-elev)]","slide-in-right","border-l border-border-subtle",g[e]||g.md,f),children:[(0,j.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-border-subtle flex-shrink-0",children:[(0,j.jsx)("div",{className:"flex items-center gap-3",children:c&&(0,j.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:c})}),(0,j.jsx)("button",{type:"button",onClick:b,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,j.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,j.jsx)("div",{className:"flex-1 overflow-y-auto p-6 custom-scrollbar",children:d})]})]}):null}function r({currentPage:a,pageSize:b,totalItems:c,onPageChange:d,onPageSizeChange:e,className:f}){let g=Math.ceil(c/b),h=c>0?(a-1)*b+1:0,i=Math.min(a*b,c),k=(()=>{let b=[],c=Math.max(1,a-2),d=Math.min(g,c+5-1);d-c+1<5&&(c=Math.max(1,d-5+1));for(let a=c;a<=d;a++)b.push(a);return b})();return(0,j.jsxs)("div",{className:(0,p.cn)("flex flex-col sm:flex-row items-center justify-between gap-4 py-4 px-2",f),children:[c>0&&(0,j.jsxs)("div",{className:"text-sm text-text-muted",children:["Showing ",(0,j.jsx)("span",{className:"font-medium text-text-main",children:h})," to"," ",(0,j.jsx)("span",{className:"font-medium text-text-main",children:i})," of"," ",(0,j.jsx)("span",{className:"font-medium text-text-main",children:c})," results"]}),(0,j.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2 sm:gap-4",children:[e&&(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[(0,j.jsx)("span",{className:"text-sm text-text-muted",children:"Rows:"}),(0,j.jsx)("select",{value:b,onChange:a=>e(Number(a.target.value)),className:(0,p.cn)("h-9 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","cursor-pointer"),style:{colorScheme:"auto"},children:[10,20,50].map(a=>(0,j.jsx)("option",{value:a,children:a},a))})]}),g>1&&(0,j.jsxs)("div",{className:"flex items-center gap-1",children:[(0,j.jsx)(o.default,{variant:"outline",size:"sm",onClick:()=>d(a-1),disabled:1===a,className:"w-9 px-0",children:(0,j.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_left"})}),k[0]>1&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(o.default,{variant:"ghost",size:"sm",onClick:()=>d(1),className:"w-9 px-0 hidden sm:inline-flex",children:"1"}),k[0]>2&&(0,j.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."})]}),k.map(b=>(0,j.jsx)(o.default,{variant:a===b?"primary":"ghost",size:"sm",onClick:()=>d(b),className:(0,p.cn)("w-9 px-0",a===b?"inline-flex":"hidden sm:inline-flex"),children:b},b)),k[k.length-1]<g&&(0,j.jsxs)(j.Fragment,{children:[k[k.length-1]<g-1&&(0,j.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."}),(0,j.jsx)(o.default,{variant:"ghost",size:"sm",onClick:()=>d(g),className:"w-9 px-0 hidden sm:inline-flex",children:g})]}),(0,j.jsx)(o.default,{variant:"outline",size:"sm",onClick:()=>d(a+1),disabled:a===g,className:"w-9 px-0",children:(0,j.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_right"})})]})]})]})}var s=c(91922),t=c(96919);let u=null,v=null;async function w(){if(u&&v)return{providerNameCache:u,providerNodesCache:v};let a=await fetch("/api/provider-nodes"),b=(await a.json()).nodes||[];for(let a of(v={},b))v[a.id]=a.name;return{providerNameCache:u={...t.Q2,...v},providerNodesCache:v}}function x(a,b){if(!a||!b)return a;let c=b[a];if("string"==typeof c)return c;if(c?.name)return c.name;let d=(0,t.zt)(a)||t.Q2[a];return d?.name||a}function y({title:a,children:b,defaultOpen:c=!1,icon:d=null}){let[e,f]=(0,k.useState)(c);return(0,j.jsxs)("div",{className:"border border-black/5 dark:border-white/5 rounded-lg overflow-hidden",children:[(0,j.jsxs)("button",{type:"button",onClick:()=>f(!e),className:"w-full flex items-center justify-between p-3 bg-black/[0.02] dark:bg-white/[0.02] hover:bg-black/[0.04] dark:hover:bg-white/[0.04] transition-colors",children:[(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[d&&(0,j.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted",children:d}),(0,j.jsx)("span",{className:"font-semibold text-sm text-text-main",children:a})]}),(0,j.jsx)("span",{className:(0,p.cn)("material-symbols-outlined text-[20px] text-text-muted transition-transform duration-200",e?"rotate-90":""),children:"chevron_right"})]}),e&&(0,j.jsx)("div",{className:"p-4 border-t border-black/5 dark:border-white/5",children:b})]})}function z(a){let b=a?.prompt_tokens||a?.input_tokens||0,c=a?.cached_tokens||a?.cache_read_input_tokens||0;return b<c?c:b}function A(a){return a?.cache_read_input_tokens||a?.cached_tokens||a?.prompt_tokens_details?.cached_tokens||0}function B(a){return a?.completion_tokens||a?.output_tokens||0}function C(){var a,b;let[c,d]=(0,k.useState)([]),[e,f]=(0,k.useState)({page:1,pageSize:20,totalItems:0,totalPages:0}),[g,h]=(0,k.useState)(!1),[i,l]=(0,k.useState)(null),[m,t]=(0,k.useState)(!1),[u,v]=(0,k.useState)([]),[C,D]=(0,k.useState)(null),[E,F]=(0,k.useState)({provider:"",startDate:"",endDate:""});return(0,k.useCallback)(async()=>{try{let a=await fetch("/api/usage/providers"),b=await a.json();v(b.providers||[]);let c=await w();D(c.providerNameCache)}catch(a){console.error("Failed to fetch providers:",a)}},[]),(0,k.useCallback)(async()=>{h(!0);try{let a=new URLSearchParams({page:e.page.toString(),pageSize:e.pageSize.toString()});E.provider&&a.append("provider",E.provider),E.startDate&&a.append("startDate",E.startDate),E.endDate&&a.append("endDate",E.endDate);let b=await fetch(`/api/usage/request-details?${a}`),c=await b.json();d(c.details||[]),f(a=>({...a,...c.pagination}))}catch(a){console.error("Failed to fetch request details:",a)}finally{h(!1)}},[e.page,e.pageSize,E]),(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,j.jsx)(n.default,{padding:"md",children:(0,j.jsxs)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,j.jsx)("label",{htmlFor:"provider-filter",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,j.jsxs)("select",{id:"provider-filter",value:E.provider,onChange:a=>F({...E,provider:a.target.value}),className:(0,p.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","w-full min-w-0 cursor-pointer"),style:{colorScheme:"auto"},children:[(0,j.jsx)("option",{value:"",children:"All Providers"}),u.map(a=>(0,j.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,j.jsx)("label",{htmlFor:"start-date-filter",className:"text-sm font-medium text-text-main",children:"Start Date"}),(0,j.jsx)("input",{id:"start-date-filter",type:"datetime-local",value:E.startDate,onChange:a=>F({...E,startDate:a.target.value}),className:(0,p.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,j.jsx)("label",{htmlFor:"end-date-filter",className:"text-sm font-medium text-text-main",children:"End Date"}),(0,j.jsx)("input",{id:"end-date-filter",type:"datetime-local",value:E.endDate,onChange:a=>F({...E,endDate:a.target.value}),className:(0,p.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-2 sm:col-span-2 lg:col-span-1",children:[(0,j.jsx)("span",{className:"hidden text-sm font-medium text-text-main opacity-0 lg:block","aria-hidden":"true",children:"Clear"}),(0,j.jsx)(o.default,{variant:"ghost",onClick:()=>{F({provider:"",startDate:"",endDate:""})},disabled:!E.provider&&!E.startDate&&!E.endDate,className:"w-full",children:"Clear Filters"})]})]})}),(0,j.jsxs)(n.default,{padding:"none",children:[(0,j.jsx)("div",{className:"overflow-x-auto",children:(0,j.jsxs)("table",{className:"w-full min-w-[880px]",children:[(0,j.jsx)("thead",{children:(0,j.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5",children:[(0,j.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Timestamp"}),(0,j.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Model"}),(0,j.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Provider"}),(0,j.jsx)("th",{className:"text-center p-4 text-sm font-semibold text-text-main",title:"API Key",children:"\uD83D\uDD11"}),(0,j.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Input Tokens"}),(0,j.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",style:{color:"var(--color-info, #06b6d4)"},children:"Cached"}),(0,j.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Output Tokens"}),(0,j.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Latency"}),(0,j.jsx)("th",{className:"text-center p-4 text-sm font-semibold text-text-main",children:"Action"})]})}),(0,j.jsx)("tbody",{children:g?(0,j.jsx)("tr",{children:(0,j.jsx)("td",{colSpan:"9",className:"p-8 text-center text-text-muted",children:(0,j.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,j.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px]",children:"progress_activity"}),"Loading..."]})})}):0===c.length?(0,j.jsx)("tr",{children:(0,j.jsx)("td",{colSpan:"9",className:"p-8 text-center text-text-muted",children:"No request details found"})}):c.map((a,b)=>(0,j.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 last:border-b-0 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,j.jsx)("td",{className:"whitespace-nowrap p-4 text-sm text-text-main",children:new Date(a.timestamp).toLocaleString()}),(0,j.jsx)("td",{className:"max-w-[260px] truncate p-4 font-mono text-sm text-text-main",children:a.model}),(0,j.jsx)("td",{className:"max-w-[180px] truncate p-4 text-sm text-text-main",children:(0,j.jsx)("span",{className:"font-medium",children:x(a.provider,C)})}),(0,j.jsx)("td",{className:"p-4 text-center",children:(0,j.jsx)(s.A,{apiKey:a.apiKey})}),(0,j.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:z(a.tokens).toLocaleString()}),(0,j.jsx)("td",{className:"p-4 text-sm text-right font-mono",style:{color:"var(--color-info, #06b6d4)"},children:A(a.tokens)>0?A(a.tokens).toLocaleString():"—"}),(0,j.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:B(a.tokens).toLocaleString()}),(0,j.jsx)("td",{className:"p-4 text-sm text-text-muted",children:(0,j.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,j.jsxs)("div",{children:["TTFT: ",(0,j.jsxs)("span",{className:"font-mono",children:[a.latency?.ttft||0,"ms"]})]}),(0,j.jsxs)("div",{children:["Total: ",(0,j.jsxs)("span",{className:"font-mono",children:[a.latency?.total||0,"ms"]})]})]})}),(0,j.jsx)("td",{className:"p-4 text-center",children:(0,j.jsx)(o.default,{variant:"outline",size:"sm",onClick:()=>{l(a),t(!0)},children:"Detail"})})]},`${a.id}-${b}`))})]})}),!g&&c.length>0&&(0,j.jsx)("div",{className:"border-t border-black/5 dark:border-white/5",children:(0,j.jsx)(r,{currentPage:e.page,pageSize:e.pageSize,totalItems:e.totalItems,onPageChange:a=>{f(b=>({...b,page:a}))},onPageSizeChange:a=>{f(b=>({...b,pageSize:a,page:1}))}})})]}),(0,j.jsx)(q,{isOpen:m,onClose:()=>t(!1),title:"Request Details",width:"lg",children:i&&(0,j.jsxs)("div",{className:"space-y-6",children:[(0,j.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-4 text-sm sm:grid-cols-2",children:[(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"ID:"})," ",(0,j.jsx)("span",{className:"break-all font-mono text-text-main",children:i.id})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Timestamp:"})," ",(0,j.jsx)("span",{className:"text-text-main",children:new Date(i.timestamp).toLocaleString()})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Provider:"})," ",(0,j.jsx)("span",{className:"text-text-main font-medium",children:x(i.provider,C)})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Model:"})," ",(0,j.jsx)("span",{className:"text-text-main font-mono",children:i.model})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Status:"})," ",(0,j.jsx)("span",{className:(0,p.cn)("font-medium","success"===(a=i.status)?"text-green-600":"input_only"===a||"partial"===a?"text-amber-600":"text-red-600"),children:"input_only"===(b=i.status)?"input only":b})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Latency:"})," ",(0,j.jsxs)("span",{className:"text-text-main font-mono",children:["TTFT ",i.latency?.ttft||0,"ms / Total ",i.latency?.total||0,"ms"]})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Input Tokens:"})," ",(0,j.jsx)("span",{className:"text-text-main font-mono",children:z(i.tokens).toLocaleString()})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Cached Tokens:"})," ",(0,j.jsx)("span",{className:"font-mono",style:{color:"var(--color-info, #06b6d4)"},children:A(i.tokens)>0?A(i.tokens).toLocaleString():"—"})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("span",{className:"text-text-muted",children:"Output Tokens:"})," ",(0,j.jsx)("span",{className:"text-text-main font-mono",children:B(i.tokens).toLocaleString()})]}),i.apiKey&&(0,j.jsxs)("div",{className:"col-span-2",children:[(0,j.jsx)("span",{className:"text-text-muted",children:"API Key:"})," ",(0,j.jsx)("span",{className:"text-text-main font-mono text-xs break-all",children:i.apiKey})]})]}),(0,j.jsxs)("div",{className:"space-y-4",children:[(0,j.jsx)(y,{title:"1. Client Request (Input)",defaultOpen:!0,icon:"input",children:(0,j.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(i.request,null,2)})}),i.providerRequest&&(0,j.jsx)(y,{title:"2. Provider Request (Translated)",icon:"translate",children:(0,j.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(i.providerRequest,null,2)})}),i.providerResponse&&(0,j.jsx)(y,{title:"3. Provider Response (Raw)",icon:"data_object",children:(0,j.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:"object"==typeof i.providerResponse?JSON.stringify(i.providerResponse,null,2):i.providerResponse})}),(0,j.jsxs)(y,{title:"4. Client Response (Final)",defaultOpen:!0,icon:"output",children:[i.response?.thinking&&(0,j.jsxs)("div",{className:"mb-4",children:[(0,j.jsxs)("h4",{className:"font-semibold text-text-main mb-2 flex items-center gap-2 text-xs uppercase tracking-wide opacity-70",children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"psychology"}),"Thinking Process"]}),(0,j.jsx)("pre",{className:"max-h-[200px] max-w-full overflow-auto rounded-lg border border-amber-200 bg-amber-50 p-3 font-mono text-xs text-amber-900 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-100 sm:p-4",children:i.response.thinking})]}),(0,j.jsx)("h4",{className:"font-semibold text-text-main mb-2 text-xs uppercase tracking-wide opacity-70",children:"Content"}),(0,j.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:i.response?.content||"[No content]"})]})]})]})})]})}var D=c(91099),E=c(49885),F=c.n(E);let G=a=>new Intl.NumberFormat().format(a||0),H=a=>`$${(a||0).toFixed(4)}`;function I({totals:a}){let b=a?.promptTokens>0?((a.cachedTokens||0)/a.promptTokens*100).toFixed(1):"0.0",c=[{label:"Requests",value:G(a?.requests),color:"text-primary"},{label:"Total Tokens",value:G(a?.totalTokens),color:"text-text-main"},{label:"Input Tokens",value:G(a?.promptTokens),color:"text-text-muted",sub:`${G(a?.cachedTokens)} cached`},{label:"Est. Cost",value:`~${H(a?.cost)}`,color:"text-warning",sub:"Estimated"},{label:"Avg Cost/Req",value:H(a?.avgCostPerRequest),color:"text-text-main",sub:`${b}% cache hit`}];return(0,j.jsx)("div",{className:"grid min-w-0 grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-5 sm:gap-4",children:c.map(a=>(0,j.jsxs)(n.default,{className:"flex min-w-0 flex-col gap-0.5 px-4 py-3",children:[(0,j.jsx)("span",{className:"text-xs font-semibold uppercase text-text-muted",children:a.label}),(0,j.jsx)("span",{className:`truncate text-xl font-bold ${a.color}`,children:a.value}),a.sub&&(0,j.jsx)("span",{className:"text-[10px] text-text-muted",children:a.sub})]},a.label))})}I.propTypes={totals:F().object};var J=c(80322),K=c(53935),L=c(90206),M=["axis"],N=(0,k.forwardRef)((a,b)=>k.createElement(L.P,{chartName:"ComposedChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:M,tooltipPayloadSearcher:K.uN,categoricalChartProps:a,ref:b})),O=c(28946),P=c(22393),Q=c(54206),R=c(63691),S=c(74429),T=c(73919),U=c(99314),V=c(54702);let W=Math.cos,X=Math.sin,Y=Math.sqrt,Z=Math.PI,$=2*Z,_={draw(a,b){let c=Y(b/Z);a.moveTo(c,0),a.arc(0,0,c,0,$)}},aa=Y(1/3),ab=2*aa,ac=X(Z/10)/X(7*Z/10),ad=X($/10)*ac,ae=-W($/10)*ac,af=Y(3),ag=Y(3)/2,ah=1/Y(12),ai=(ah/2+1)*3;var aj=c(99608),ak=c(85922);Y(3),Y(3);var al=c(1791),am=c(50149),an=["type","size","sizeType"];function ao(){return(ao=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function ap(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function aq(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?ap(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):ap(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}var ar={symbolCircle:_,symbolCross:{draw(a,b){let c=Y(b/5)/2;a.moveTo(-3*c,-c),a.lineTo(-c,-c),a.lineTo(-c,-3*c),a.lineTo(c,-3*c),a.lineTo(c,-c),a.lineTo(3*c,-c),a.lineTo(3*c,c),a.lineTo(c,c),a.lineTo(c,3*c),a.lineTo(-c,3*c),a.lineTo(-c,c),a.lineTo(-3*c,c),a.closePath()}},symbolDiamond:{draw(a,b){let c=Y(b/ab),d=c*aa;a.moveTo(0,-c),a.lineTo(d,0),a.lineTo(0,c),a.lineTo(-d,0),a.closePath()}},symbolSquare:{draw(a,b){let c=Y(b),d=-c/2;a.rect(d,d,c,c)}},symbolStar:{draw(a,b){let c=Y(.8908130915292852*b),d=ad*c,e=ae*c;a.moveTo(0,-c),a.lineTo(d,e);for(let b=1;b<5;++b){let f=$*b/5,g=W(f),h=X(f);a.lineTo(h*c,-g*c),a.lineTo(g*d-h*e,h*d+g*e)}a.closePath()}},symbolTriangle:{draw(a,b){let c=-Y(b/(3*af));a.moveTo(0,2*c),a.lineTo(-af*c,-c),a.lineTo(af*c,-c),a.closePath()}},symbolWye:{draw(a,b){let c=Y(b/ai),d=c/2,e=c*ah,f=c*ah+c,g=-d;a.moveTo(d,e),a.lineTo(d,f),a.lineTo(g,f),a.lineTo(-.5*d-ag*e,ag*d+-.5*e),a.lineTo(-.5*d-ag*f,ag*d+-.5*f),a.lineTo(-.5*g-ag*f,ag*g+-.5*f),a.lineTo(-.5*d+ag*e,-.5*e-ag*d),a.lineTo(-.5*d+ag*f,-.5*f-ag*d),a.lineTo(-.5*g+ag*f,-.5*f-ag*g),a.closePath()}}},as=Math.PI/180,at=a=>{var{type:b="circle",size:c=64,sizeType:d="area"}=a,e=aq(aq({},function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,an)),{},{type:b,size:c,sizeType:d}),f="circle";"string"==typeof b&&(f=b);var{className:g,cx:h,cy:i}=e,j=(0,am.a)(e);return(0,al.Et)(h)&&(0,al.Et)(i)&&(0,al.Et)(c)?k.createElement("path",ao({},j,{className:(0,U.$)("recharts-symbols",g),transform:"translate(".concat(h,", ").concat(i,")"),d:(()=>{var a,b=(a=f,ar["symbol".concat((0,al.Zb)(a))]||_),e=(function(a,b){let c=null,d=(0,ak.i)(e);function e(){let e;if(c||(c=e=d()),a.apply(this,arguments).draw(c,+b.apply(this,arguments)),e)return c=null,e+""||null}return a="function"==typeof a?a:(0,aj.A)(a||_),b="function"==typeof b?b:(0,aj.A)(void 0===b?64:+b),e.type=function(b){return arguments.length?(a="function"==typeof b?b:(0,aj.A)(b),e):a},e.size=function(a){return arguments.length?(b="function"==typeof a?a:(0,aj.A)(+a),e):b},e.context=function(a){return arguments.length?(c=null==a?null:a,e):c},e})().type(b).size(((a,b,c)=>{if("area"===b)return a;switch(c){case"cross":return 5*a*a/9;case"diamond":return .5*a*a/Math.sqrt(3);case"square":return a*a;case"star":var d=18*as;return 1.25*a*a*(Math.tan(d)-Math.tan(2*d)*Math.tan(d)**2);case"triangle":return Math.sqrt(3)*a*a/4;case"wye":return(21-10*Math.sqrt(3))*a*a/8;default:return Math.PI*a*a/4}})(c,d,f))();if(null!==e)return e})()})):null};at.registerSymbol=(a,b)=>{ar["symbol".concat((0,al.Zb)(a))]=b};var au=c(64635),av=c(69599);function aw(){return(aw=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function ax(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function ay(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?ax(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):ax(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}var az={align:"center",iconSize:14,inactiveColor:"#ccc",layout:"horizontal",verticalAlign:"middle",labelStyle:{}};function aA(a){var{data:b,iconType:c,inactiveColor:d}=a,e=32/6,f=32/3,g=b.inactive?d:b.color,h=null!=c?c:b.type;if("none"===h)return null;if("plainline"===h)return k.createElement("line",{strokeWidth:4,fill:"none",stroke:g,strokeDasharray:function(a){if("object"==typeof a&&null!==a&&"strokeDasharray"in a)return String(a.strokeDasharray)}(b.payload),x1:0,y1:16,x2:32,y2:16,className:"recharts-legend-icon"});if("line"===h)return k.createElement("path",{strokeWidth:4,fill:"none",stroke:g,d:"M0,".concat(16,"h").concat(f,"\n A").concat(e,",").concat(e,",0,1,1,").concat(2*f,",").concat(16,"\n H").concat(32,"M").concat(2*f,",").concat(16,"\n A").concat(e,",").concat(e,",0,1,1,").concat(f,",").concat(16),className:"recharts-legend-icon"});if("rect"===h)return k.createElement("path",{stroke:"none",fill:g,d:"M0,".concat(4,"h").concat(32,"v").concat(24,"h").concat(-32,"z"),className:"recharts-legend-icon"});if(k.isValidElement(b.legendIcon)){var i=ay({},b);return delete i.legendIcon,k.cloneElement(b.legendIcon,i)}return k.createElement(at,{fill:g,cx:16,cy:16,size:32,sizeType:"diameter",type:h})}function aB(a){var{payload:b,iconSize:c,layout:d,formatter:e,inactiveColor:f,iconType:g,labelStyle:h}=a,i={x:0,y:0,width:32,height:32},j={display:"horizontal"===d?"inline-block":"block",marginRight:10},l={display:"inline-block",verticalAlign:"middle",marginRight:4};return b.map((b,d)=>{var m=b.formatter||e,n=(0,U.$)({"recharts-legend-item":!0,["legend-item-".concat(d)]:!0,inactive:b.inactive});if("none"===b.type)return null;var o="object"==typeof h?ay({},h):{};o.color=b.inactive?f:o.color||b.color;var p=m?m(b.value,b,d):b.value;return k.createElement("li",aw({className:n,style:j,key:"legend-item-".concat(d)},(0,au.XC)(a,b,d)),k.createElement(V.u,{width:c,height:c,viewBox:i,style:l,"aria-label":"".concat(b.value," legend icon")},k.createElement(aA,{data:b,iconType:g,inactiveColor:f})),k.createElement("span",{className:"recharts-legend-item-text",style:o},p))})}var aC=a=>{var b=(0,av.e)(a,az),{payload:c,layout:d,align:e}=b;return c&&c.length?k.createElement("ul",{className:"recharts-default-legend",style:{padding:0,margin:0,textAlign:"horizontal"===d?e:"left"}},k.createElement(aB,aw({},b,{payload:c}))):null},aD=c(60226),aE=c(32671),aF=c(7795),aG=c(12450),aH=c(55644);c(46154);var aI=c(66762),aJ=["contextPayload"];function aK(){return(aK=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function aL(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function aM(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?aL(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):aL(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function aN(a){return a.value}function aO(a){var{contextPayload:b}=a,c=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,aJ),d=(0,aD.s)(b,a.payloadUniqBy,aN),e=aM(aM({},c),{},{payload:d});return k.isValidElement(a.content)?k.cloneElement(a.content,e):"function"==typeof a.content?k.createElement(a.content,e):k.createElement(aC,e)}function aP(a){return(0,aE.j)(),null}function aQ(a){return(0,aE.j)(),null}var aR={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",layout:"horizontal",verticalAlign:"bottom"},aS=k.memo(function(a){var b,c=(0,av.e)(a,aR),d=(0,aE.G)(aF.g0),e=(0,T.M)(),f=(0,aH.Kp)(),{width:g,height:h,wrapperStyle:i,portal:j}=c,[l,m]=(0,aG.V)([d]),n=(0,aH.yi)(),o=(0,aH.rY)();if(null==n||null==o)return null;var p=n-((null==f?void 0:f.left)||0)-((null==f?void 0:f.right)||0),q=(b=c.layout,"vertical"===b&&null!=h?{height:h}:"horizontal"===b?{width:g||p}:null),r=j?i:aM(aM({position:"absolute",width:(null==q?void 0:q.width)||g||"auto",height:(null==q?void 0:q.height)||h||"auto"},function(a,b,c,d,e,f){var g,h,{layout:i,align:j,verticalAlign:k}=b;return a&&(void 0!==a.left&&null!==a.left||void 0!==a.right&&null!==a.right)||(g="center"===j&&"vertical"===i?{left:((d||0)-f.width)/2}:"right"===j?{right:c&&c.right||0}:{left:c&&c.left||0}),a&&(void 0!==a.top&&null!==a.top||void 0!==a.bottom&&null!==a.bottom)||(h="middle"===k?{top:((e||0)-f.height)/2}:"bottom"===k?{bottom:c&&c.bottom||0}:{top:c&&c.top||0}),aM(aM({},g),h)}(i,c,f,n,o,l)),i),s=null!=j?j:e;if(null==s||null==d)return null;var t=k.createElement("div",{className:"recharts-legend-wrapper",style:r,ref:m},k.createElement(aP,{layout:c.layout,align:c.align,verticalAlign:c.verticalAlign,itemSorter:c.itemSorter}),!j&&k.createElement(aQ,{width:l.width,height:l.height}),k.createElement(aO,aK({},c,q,{margin:f,chartWidth:n,chartHeight:o,contextPayload:d})));return(0,S.createPortal)(t,s)},aI.P);aS.displayName="Legend";var aT=c(83385),aU=["axis","item"],aV=(0,k.forwardRef)((a,b)=>k.createElement(L.P,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:aU,tooltipPayloadSearcher:K.uN,categoricalChartProps:a,ref:b})),aW=c(40948),aX=a=>null;aX.displayName="Cell";var aY=c(47459),aZ=c(21480),a$=c(16216),a_=c(7725),a0=c.n(a_),a1=c(12306),a2=c(81298),a3=c(8418),a4=c(18334),a5=c(59798);function a6(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function a7(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?a6(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):a6(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function a8(){return(a8=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function a9(a,b){return b||(b=a.slice(0)),Object.freeze(Object.defineProperties(a,{raw:{value:Object.freeze(b)}}))}var ba=(a,b,c,d,j)=>{var k=c-d;return(0,a5.Y)(e||(e=a9(["M ",",",""])),a,b)+(0,a5.Y)(f||(f=a9(["L ",",",""])),a+c,b)+(0,a5.Y)(g||(g=a9(["L ",",",""])),a+c-k/2,b+j)+(0,a5.Y)(h||(h=a9(["L ",",",""])),a+c-k/2-d,b+j)+(0,a5.Y)(i||(i=a9(["L ",","," Z"])),a,b)},bb={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},bc=a=>{var b=(0,av.e)(a,bb),{x:c,y:d,upperWidth:e,lowerWidth:f,height:g,className:h}=b,{animationEasing:i,animationDuration:j,animationBegin:l,isUpdateAnimationActive:m}=b,n=(0,k.useRef)(null),[o,p]=(0,k.useState)(-1),q=(0,k.useRef)(e),r=(0,k.useRef)(f),s=(0,k.useRef)(g),t=(0,k.useRef)(c),u=(0,k.useRef)(d),v=(0,a3.n)(a,"trapezoid-");if((0,k.useEffect)(()=>{if(n.current&&n.current.getTotalLength)try{var a=n.current.getTotalLength();a&&p(a)}catch(a){}},[]),c!==+c||d!==+d||e!==+e||f!==+f||g!==+g||0===e&&0===f||0===g)return null;var w=(0,U.$)("recharts-trapezoid",h);if(!m)return k.createElement("g",null,k.createElement("path",a8({},(0,am.a)(b),{className:w,d:ba(c,d,e,f,g)})));var x=q.current,y=r.current,z=s.current,A=t.current,B=u.current,C="0px ".concat(-1===o?1:o,"px"),D="".concat(o,"px ").concat(o,"px"),E=(0,a4.dl)(["strokeDasharray"],j,i);return k.createElement(a2.J,{animationId:v,key:v,canBegin:o>0,duration:j,easing:i,isActive:m,begin:l},a=>{var h=(0,al.GW)(x,e,a),i=(0,al.GW)(y,f,a),j=(0,al.GW)(z,g,a),l=(0,al.GW)(A,c,a),m=(0,al.GW)(B,d,a);n.current&&(q.current=h,r.current=i,s.current=j,t.current=l,u.current=m);var o=a>0?{transition:E,strokeDasharray:D}:{strokeDasharray:C};return k.createElement("path",a8({},(0,am.a)(b),{className:w,d:ba(l,m,h,i,j),ref:n,style:a7(a7({},o),b.style)}))})},bd=c(82317),be=c(85167),bf=["option","shapeType","activeClassName","inActiveClassName"];function bg(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function bh(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?bg(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):bg(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function bi(a){var{shapeType:b,elementProps:c}=a;switch(b){case"rectangle":return k.createElement(a1.M,c);case"trapezoid":return k.createElement(bc,c);case"sector":return k.createElement(bd.h,c);case"symbols":if("symbols"===b)return k.createElement(at,c);break;case"curve":return k.createElement(be.Ip,c);default:return null}}function bj(a){var b,{option:c,shapeType:d,activeClassName:e="recharts-active-shape",inActiveClassName:f="recharts-shape"}=a,g=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,bf);if((0,k.isValidElement)(c))b=(0,k.cloneElement)(c,bh(bh({},g),(0,k.isValidElement)(c)?c.props:c));else if("function"==typeof c)b=c(g,g.index);else if(a0()(c)&&"boolean"!=typeof c){var h=bh(bh({},g),c);b=k.createElement(bi,{shapeType:d,elementProps:h})}else b=k.createElement(bi,{shapeType:d,elementProps:g});return g.isActive?k.createElement(aW.W,{className:e},b):k.createElement(aW.W,{className:f},b)}function bk(){return(bk=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function bl(a){return k.createElement(bj,bk({shapeType:"rectangle",activeClassName:"recharts-active-bar",inActiveClassName:"recharts-inactive-bar"},a))}var bm=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(c,d)=>{if((0,al.Et)(a))return a;var e=(0,al.Et)(c)||(0,al.uy)(c);return e?a(c,d):(e||function(a,b){if(!a)throw Error("Invariant failed")}(!1,"minPointSize callback function received a value with type of ".concat(typeof c,". Currently only numbers or null/undefined are supported.")),b)}},bn=c(3672),bo=(a,b,c)=>{var d=(0,aE.j)();return(e,f)=>g=>{null==a||a(e,f,g),d((0,bn.RD)({activeIndex:String(f),activeDataKey:b,activeCoordinate:e.tooltipPosition,activeGraphicalItemId:c}))}},bp=a=>{var b=(0,aE.j)();return(c,d)=>e=>{null==a||a(c,d,e),b((0,bn.oP)())}},bq=(a,b,c)=>{var d=(0,aE.j)();return(e,f)=>g=>{null==a||a(e,f,g),d((0,bn.ML)({activeIndex:String(f),activeDataKey:b,activeCoordinate:e.tooltipPosition,activeGraphicalItemId:c}))}},br=c(443),bs=["children"],bt=(0,k.createContext)({data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0});function bu(a){var{children:b}=a,c=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,bs);return k.createElement(bt.Provider,{value:c},b)}var bv=c(10059),bw=c(32362),bx=c(64419),by=c(25644),bz=c(27603),bA=c(80852),bB=c(16776),bC=(a,b,c)=>{var d=null!=c?c:a;if(!(0,al.uy)(d))return(0,al.F4)(d,b,0)},bD=c(9434);function bE(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function bF(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?bE(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):bE(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}var bG=c(28222),bH=c(27660),bI=(0,bw.Mz)([bx.ld,(a,b)=>b],(a,b)=>a.filter(a=>"bar"===a.type).find(a=>a.id===b)),bJ=(0,bw.Mz)([bI],a=>null==a?void 0:a.maxBarSize),bK=(0,bw.Mz)([aH.fz,bx.ld,bH.W,bH.B,(a,b,c)=>c],(a,b,c,d,e)=>b.filter(b=>"horizontal"===a?b.xAxisId===c:b.yAxisId===d).filter(a=>a.isPanorama===e).filter(a=>!1===a.hide).filter(a=>"bar"===a.type)),bL=(0,bw.Mz)([bK,bA.x3,(a,b)=>{var c=(0,aH.fz)(a),d=(0,bH.W)(a,b),e=(0,bH.B)(a,b);if(null!=d&&null!=e)return"horizontal"===c?(0,bx.BQ)(a,"xAxis",d):(0,bx.BQ)(a,"yAxis",e)}],(a,b,c)=>{var d=a.filter(bB.g),e=a.filter(a=>null==a.stackId);return[...Object.entries(d.reduce((a,b)=>{var c=a[b.stackId];return null==c&&(c=[]),c.push(b),a[b.stackId]=c,a},{})).map(a=>{var d,[e,f]=a;return{stackId:e,dataKeys:f.map(a=>a.dataKey),barSize:bC(b,c,null==(d=f[0])?void 0:d.barSize)}}),...e.map(a=>({stackId:void 0,dataKeys:[a.dataKey].filter(a=>null!=a),barSize:bC(b,c,a.barSize)}))]}),bM=(a,b,c)=>{var d,e,f=(0,aH.fz)(a),g=(0,bH.W)(a,b),h=(0,bH.B)(a,b);if(null!=g&&null!=h)return"horizontal"===f?(d=(0,bx.Gx)(a,"xAxis",g,c),e=(0,bx.CR)(a,"xAxis",g,c)):(d=(0,bx.Gx)(a,"yAxis",h,c),e=(0,bx.CR)(a,"yAxis",h,c)),(0,a$.Hj)(d,e)},bN=(0,bw.Mz)([bL,bA.JN,bA._5,bA.gY,(a,b,c)=>{var d,e,f,g,h=bI(a,b);if(null==h)return 0;var i=(0,bH.W)(a,b),j=(0,bH.B)(a,b);if(null==i||null==j)return 0;var k=(0,aH.fz)(a),l=(0,bA.JN)(a),{maxBarSize:m}=h,n=(0,al.uy)(m)?l:m;return"horizontal"===k?(f=(0,bx.Gx)(a,"xAxis",i,c),g=(0,bx.CR)(a,"xAxis",i,c)):(f=(0,bx.Gx)(a,"yAxis",j,c),g=(0,bx.CR)(a,"yAxis",j,c)),null!=(d=null!=(e=(0,a$.Hj)(f,g,!0))?e:n)?d:0},bM,bJ],(a,b,c,d,e,f,g)=>{var h=function(a,b,c,d,e){var f,g,h=d.length;if(!(h<1)){var i=(0,al.F4)(a,c,0,!0),j=[];if((0,bD.H)(null==(f=d[0])?void 0:f.barSize)){var k=!1,l=c/h,m=d.reduce((a,b)=>a+(b.barSize||0),0);(m+=(h-1)*i)>=c&&(m-=(h-1)*i,i=0),m>=c&&l>0&&(k=!0,l*=.9,m=h*l);var n={offset:((c-m)/2|0)-i,size:0};g=d.reduce((a,b)=>{var c,d={stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:n.offset+n.size+i,size:k?l:null!=(c=b.barSize)?c:0}},e=[...a,d];return n=d.position,e},j)}else{var o=(0,al.F4)(b,c,0,!0);c-2*o-(h-1)*i<=0&&(i=0);var p=(c-2*o-(h-1)*i)/h;p>1&&(p>>=0);var q=(0,bD.H)(e)?Math.min(p,e):p;g=d.reduce((a,b,c)=>[...a,{stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:o+(p+i)*c+(p-q)/2,size:q}}],j)}return g}}(c,d,e!==f?e:f,a,(0,al.uy)(g)?b:g);return e!==f&&null!=h&&(h=h.map(a=>bF(bF({},a),{},{position:bF(bF({},a.position),{},{offset:a.position.offset-e/2})}))),h}),bO=(0,bw.Mz)([bN,bI],(a,b)=>{if(null!=a&&null!=b){var c=a.find(a=>a.stackId===b.stackId&&null!=b.dataKey&&a.dataKeys.includes(b.dataKey));if(null!=c)return c.position}}),bP=(0,bw.Mz)([(a,b,c)=>{var d=(0,aH.fz)(a),e=(0,bH.W)(a,b),f=(0,bH.B)(a,b);if(null!=e&&null!=f)return"horizontal"===d?(0,bx.TC)(a,"yAxis",f,c):(0,bx.TC)(a,"xAxis",e,c)},bI],(a,b)=>{var c=(0,bG.x)(b);if(!a||null==c||null==b)return;var{stackId:d}=b;if(null!=d){var e=a[d];if(e){var{stackedData:f}=e;if(f)return f.find(a=>a.key===c)}}}),bQ=(0,bw.Mz)([bz.HZ,bz.c2,(a,b,c)=>{var d=(0,bH.W)(a,b);if(null!=d)return(0,bx.Gx)(a,"xAxis",d,c)},(a,b,c)=>{var d=(0,bH.B)(a,b);if(null!=d)return(0,bx.Gx)(a,"yAxis",d,c)},(a,b,c)=>{var d=(0,bH.W)(a,b);if(null!=d)return(0,bx.CR)(a,"xAxis",d,c)},(a,b,c)=>{var d=(0,bH.B)(a,b);if(null!=d)return(0,bx.CR)(a,"yAxis",d,c)},bO,aH.fz,by.rN,bM,bP,bI,(a,b,c,d)=>d],(a,b,c,d,e,f,g,h,i,j,k,l,m)=>{var n,{chartData:o,dataStartIndex:p,dataEndIndex:q}=i;if(null!=l&&null!=g&&null!=b&&("horizontal"===h||"vertical"===h)&&null!=c&&null!=d&&null!=e&&null!=f&&null!=j){var{data:r}=l;if(null!=(n=null!=r&&r.length>0?r:null==o?void 0:o.slice(p,q+1)))return function(a){var{layout:b,barSettings:{dataKey:c,minPointSize:d,hasCustomShape:e},pos:f,bandSize:g,xAxis:h,yAxis:i,xAxisTicks:j,yAxisTicks:k,stackedData:l,displayedData:m,offset:n,cells:o,parentViewBox:p,dataStartIndex:q}=a,r="horizontal"===b?i:h,s=l?r.scale.domain():null,t=(0,a$.DW)({numericAxis:r}),u=r.scale.map(t);return m.map((a,m)=>{if(l){var r=l[m+q];if(null==r)return null;w=(0,a$._f)(r,s)}else Array.isArray(w=(0,a$.kr)(a,c))||(w=[t,w]);var v=bm(d,0)(w[1],m);if("horizontal"===b){var w,x,y,z,A,B,C,D=i.scale.map(w[0]),E=i.scale.map(w[1]);if(null==D||null==E)return null;x=(0,a$.y2)({axis:h,ticks:j,bandSize:g,offset:f.offset,entry:a,index:m}),y=null!=(C=null!=E?E:D)?C:void 0,z=f.size;var F=D-E;if(A=(0,al.M8)(F)?0:F,B={x,y:n.top,width:z,height:n.height},Math.abs(v)>0&&Math.abs(A)<Math.abs(v)){var G=(0,al.sA)(A||v)*(Math.abs(v)-Math.abs(A));y-=G,A+=G}}else{var H=h.scale.map(w[0]),I=h.scale.map(w[1]);if(null==H||null==I)return null;if(x=H,y=(0,a$.y2)({axis:i,ticks:k,bandSize:g,offset:f.offset,entry:a,index:m}),z=I-H,A=f.size,B={x:n.left,y,width:n.width,height:A},Math.abs(v)>0&&Math.abs(z)<Math.abs(v)){var J=(0,al.sA)(z||v)*(Math.abs(v)-Math.abs(z));z+=J}}return null!=x&&null!=y&&null!=z&&null!=A&&(e||0!==z&&0!==A)?b7(b7({},a),{},{stackedBarStart:u,x,y,width:z,height:A,value:l?w:w[1],payload:a,background:B,tooltipPosition:{x:x+z/2,y:y+A/2},parentViewBox:p,originalDataIndex:m},o&&o[m]&&o[m].props):null}).filter(Boolean)}({layout:h,barSettings:l,pos:g,parentViewBox:b,bandSize:j,xAxis:c,yAxis:d,xAxisTicks:e,yAxisTicks:f,stackedData:k,displayedData:n,offset:a,cells:m,dataStartIndex:p})}}),bR=c(70383),bS=c(83881),bT=c(82118),bU=c(34183),bV=c(93021),bW=c(70719),bX=c(17947),bY=c(6859),bZ=["index"];function b$(){return(b$=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}var b_=(0,k.createContext)(void 0),b0=a=>{var{index:b}=a,c=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,bZ),d=(a=>{var b=(0,k.useContext)(b_);if(null!=b){var{stackId:c}=b;return"url(#".concat("recharts-bar-stack-clip-path-".concat(c,"-").concat(a),")")}})(b);return k.createElement(aW.W,b$({className:"recharts-bar-stack-layer",clipPath:d},c))},b1=["onMouseEnter","onMouseLeave","onClick"],b2=["value","background","tooltipPosition"],b3=["id"],b4=["onMouseEnter","onClick","onMouseLeave"];function b5(){return(b5=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function b6(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function b7(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?b6(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):b6(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function b8(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}var b9=k.memo(a=>{var{dataKey:b,stroke:c,strokeWidth:d,fill:e,name:f,hide:g,unit:h,tooltipType:i,id:j}=a,l={dataDefinedOnItem:void 0,getPosition:al.lQ,settings:{stroke:c,strokeWidth:d,fill:e,dataKey:b,nameKey:void 0,name:(0,a$.uM)(f,b),hide:g,type:i,color:e,unit:h,graphicalItemId:j}};return k.createElement(br.r,{tooltipEntrySettings:l})});function ca(a){var b,c=(0,aE.G)(bS.A2),{data:d,dataKey:e,background:f,allOtherBarProps:g}=a,{onMouseEnter:h,onMouseLeave:i,onClick:j}=g,l=b8(g,b1),m=bo(h,e,g.id),n=bp(i),o=bq(j,e,g.id);if(!f||null==d)return null;var p=(0,bW.ic)(f);return k.createElement(bX.g,{zIndex:(b=bY.I.barBackground,f&&"object"==typeof f&&"zIndex"in f&&"number"==typeof f.zIndex&&(0,bD.H)(f.zIndex)?f.zIndex:b)},d.map((a,b)=>{var{value:d,background:g,tooltipPosition:h}=a,i=b8(a,b2);if(!g)return null;var j=m(a,b),q=n(a,b),r=o(a,b),s=b7(b7(b7(b7(b7({option:f,isActive:String(b)===c},i),{},{fill:"#eee"},g),p),(0,au.XC)(l,a,b)),{},{onMouseEnter:j,onMouseLeave:q,onClick:r,dataKey:e,index:b,className:"recharts-bar-background-rectangle"});return k.createElement(bl,b5({key:"background-bar-".concat(b)},s))}))}function cb(a){var{showLabels:b,children:c,rects:d}=a,e=null==d?void 0:d.map(a=>{var b={x:a.x,y:a.y,width:a.width,lowerWidth:a.width,upperWidth:a.width,height:a.height};return b7(b7({},b),{},{value:a.value,payload:a.payload,parentViewBox:a.parentViewBox,viewBox:b,fill:a.fill})});return k.createElement(aY.h8,{value:b?e:void 0},c)}function cc(a){var b,{shape:c,activeBar:d,baseProps:e,entry:f,index:g,dataKey:h}=a,i=(0,aE.G)(bS.A2),j=(0,aE.G)(bS.Xb),l=d&&String(f.originalDataIndex)===i&&(null==j||h===j),[m,n]=(0,k.useState)(!1),[o,p]=(0,k.useState)(!1),q=(0,k.useCallback)(()=>{l||n(!1)},[l]),r=l&&o,s=l||m;b=l?!0===d?c:d:c;var t=k.createElement(bl,b5({},e,{name:String(e.name)},f,{isActive:r,option:b,index:g,dataKey:h,onTransitionEnd:q}));return s?k.createElement(bX.g,{zIndex:bY.I.activeBar},k.createElement(b0,{index:f.originalDataIndex},t)):t}function cd(a){var{shape:b,baseProps:c,entry:d,index:e,dataKey:f}=a;return k.createElement(bl,b5({},c,{name:String(c.name)},d,{isActive:!1,option:b,index:e,dataKey:f}))}function ce(a){var b,{data:c,props:d}=a,e=null!=(b=(0,bW.uZ)(d))?b:{},{id:f}=e,g=b8(e,b3),{shape:h,dataKey:i,activeBar:j}=d,{onMouseEnter:l,onClick:m,onMouseLeave:n}=d,o=b8(d,b4),p=bo(l,i,f),q=bp(n),r=bq(m,i,f);return c?k.createElement(k.Fragment,null,c.map((a,b)=>k.createElement(b0,b5({index:a.originalDataIndex,key:"rectangle-".concat(null==a?void 0:a.x,"-").concat(null==a?void 0:a.y,"-").concat(null==a?void 0:a.value,"-").concat(b),className:"recharts-bar-rectangle"},(0,au.XC)(o,a,b),{onMouseEnter:p(a,b),onMouseLeave:q(a,b),onClick:r(a,b)}),j?k.createElement(cc,{shape:h,activeBar:j,baseProps:g,entry:a,index:b,dataKey:i}):k.createElement(cd,{shape:h,baseProps:g,entry:a,index:b,dataKey:i})))):null}function cf(a){var{props:b,previousRectanglesRef:c}=a,{data:d,layout:e,isAnimationActive:f,animationBegin:g,animationDuration:h,animationEasing:i,onAnimationEnd:j,onAnimationStart:l}=b,m=c.current,n=(0,a3.n)(b,"recharts-bar-"),[o,p]=(0,k.useState)(!1),q=(0,k.useCallback)(()=>{"function"==typeof j&&j(),p(!1)},[j]),r=(0,k.useCallback)(()=>{"function"==typeof l&&l(),p(!0)},[l]);return k.createElement(cb,{showLabels:!o,rects:d},k.createElement(a2.J,{animationId:n,begin:g,duration:h,isActive:f,easing:i,onAnimationEnd:q,onAnimationStart:r,key:n},a=>{var f=1===a?d:null==d?void 0:d.map((b,c)=>{var d=m&&m[c];if(d)return b7(b7({},b),{},{x:(0,al.GW)(d.x,b.x,a),y:(0,al.GW)(d.y,b.y,a),width:(0,al.GW)(d.width,b.width,a),height:(0,al.GW)(d.height,b.height,a)});if("horizontal"===e){var f=(0,al.GW)(0,b.height,a),g=(0,al.GW)(b.stackedBarStart,b.y,a);return b7(b7({},b),{},{y:g,height:f})}var h=(0,al.GW)(0,b.width,a),i=(0,al.GW)(b.stackedBarStart,b.x,a);return b7(b7({},b),{},{width:h,x:i})});return(a>0&&(c.current=null!=f?f:null),null==f)?null:k.createElement(aW.W,null,k.createElement(ce,{props:b,data:f}))}),k.createElement(aY.qY,{label:b.label}),b.children)}function cg(a){var b=(0,k.useRef)(null);return k.createElement(cf,{previousRectanglesRef:b,props:a})}var ch=(a,b)=>{var c=Array.isArray(a.value)?a.value[1]:a.value;return{x:a.x,y:a.y,value:c,errorVal:(0,a$.kr)(a,b)}};class ci extends k.PureComponent{render(){var{hide:a,data:b,dataKey:c,className:d,xAxisId:e,yAxisId:f,needClip:g,background:h,id:i}=this.props;if(a||null==b)return null;var j=(0,U.$)("recharts-bar",d);return k.createElement(aW.W,{className:j,id:i},g&&k.createElement("defs",null,k.createElement(bv.Q,{clipPathId:i,xAxisId:e,yAxisId:f})),k.createElement(aW.W,{className:"recharts-bar-rectangles",clipPath:g?"url(#clipPath-".concat(i,")"):void 0},k.createElement(ca,{data:b,dataKey:c,background:h,allOtherBarProps:this.props}),k.createElement(cg,this.props)))}}var cj={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:0,xAxisId:0,yAxisId:0,zIndex:bY.I.bar};function ck(a){var b,{xAxisId:c,yAxisId:d,hide:e,legendType:f,minPointSize:g,activeBar:h,animationBegin:i,animationDuration:j,animationEasing:l,isAnimationActive:m}=a,{needClip:n}=(0,bv.l)(c,d),o=(0,aH.WX)(),p=(0,bR.r)(),q=(0,aZ.aS)(a.children,aX),r=(0,aE.G)(b=>bQ(b,a.id,p,q));if("vertical"!==o&&"horizontal"!==o)return null;var s=null==r?void 0:r[0];return b=null==s||null==s.height||null==s.width?0:"vertical"===o?s.height/2:s.width/2,k.createElement(bu,{xAxisId:c,yAxisId:d,data:r,dataPointFormatter:ch,errorBarOffset:b},k.createElement(ci,b5({},a,{layout:o,needClip:n,data:r,xAxisId:c,yAxisId:d,hide:e,legendType:f,minPointSize:g,activeBar:h,animationBegin:i,animationDuration:j,animationEasing:l,isAnimationActive:m})))}var cl=k.memo(function(a){var b,c,d=(0,av.e)(a,cj),e=(b=d.stackId,null!=(c=(0,k.useContext)(b_))?c.stackId:null!=b?(0,a$.$8)(b):void 0),f=(0,bR.r)();return k.createElement(bU.x,{id:d.id,type:"bar"},a=>k.createElement(k.Fragment,null,k.createElement(bT.A,{legendPayload:(a=>{var{dataKey:b,name:c,fill:d,legendType:e,hide:f}=a;return[{inactive:f,dataKey:b,type:e,color:d,value:(0,a$.uM)(c,b),payload:a}]})(d)}),k.createElement(b9,{dataKey:d.dataKey,stroke:d.stroke,strokeWidth:d.strokeWidth,fill:d.fill,name:d.name,hide:d.hide,unit:d.unit,tooltipType:d.tooltipType,id:a}),k.createElement(bV.p,{type:"bar",id:a,data:void 0,xAxisId:d.xAxisId,yAxisId:d.yAxisId,zAxisId:0,dataKey:d.dataKey,stackId:e,hide:d.hide,barSize:d.barSize,minPointSize:d.minPointSize,maxBarSize:d.maxBarSize,isPanorama:f,hasCustomShape:null!=d.shape}),k.createElement(bX.g,{zIndex:d.zIndex},k.createElement(ck,b5({},d,{id:a})))))},aI.P);cl.displayName="Bar";var cm=c(45706),cn=c(62554),co=c(14238),cp=c(34095),cq=c(49920);function cr(a){return(0,aE.j)(),null}c(76115);var cs=c(64336),ct=c(50206),cu=["layout"];function cv(){return(cv=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function cw(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}var cx=function(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?cw(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):cw(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}({accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},ct.zp),cy=(0,k.forwardRef)(function(a,b){var c,d=(0,av.e)(a.categoricalChartProps,cx),{layout:e}=d,f=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(d,cu),{chartName:g,defaultTooltipEventType:h,validateTooltipEventTypes:i,tooltipPayloadSearcher:j}=a;return k.createElement(cm.J,{preloadedState:{options:{chartName:g,defaultTooltipEventType:h,validateTooltipEventTypes:i,tooltipPayloadSearcher:j,eventEmitter:void 0}},reduxStoreName:null!=(c=d.id)?c:g},k.createElement(cn.TK,{chartData:d.data}),k.createElement(co.s,{layout:e,margin:d.margin}),k.createElement(cq.M,{throttleDelay:d.throttleDelay,throttledEvents:d.throttledEvents}),k.createElement(cp.p,{baseValue:void 0,accessibilityLayer:d.accessibilityLayer,barCategoryGap:d.barCategoryGap,maxBarSize:d.maxBarSize,stackOffset:d.stackOffset,barGap:d.barGap,barSize:d.barSize,syncId:d.syncId,syncMethod:d.syncMethod,className:d.className,reverseStackOrder:d.reverseStackOrder}),k.createElement(cr,{cx:d.cx,cy:d.cy,startAngle:d.startAngle,endAngle:d.endAngle,innerRadius:d.innerRadius,outerRadius:d.outerRadius}),k.createElement(cs.L,cv({},f,{ref:b})))});function cz(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function cA(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?cz(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):cz(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}var cB=["item"],cC=cA(cA({},cx),{},{layout:"centric",startAngle:0,endAngle:360}),cD=(0,k.forwardRef)((a,b)=>{var c=(0,av.e)(a,cC);return k.createElement(cy,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:cB,tooltipPayloadSearcher:K.uN,categoricalChartProps:c,ref:b})}),cE=c(58238),cF=c.n(cE),cG=c(9060),cH=c(38053),cI=c(92489),cJ=a=>a.graphicalItems.polarItems,cK=(0,bw.Mz)([cG.N,cH.E],bx.eo),cL=(0,bw.Mz)([cJ,bx.DP,cK],bx.ec),cM=(0,bw.Mz)([cL],bx.rj),cN=(0,bw.Mz)([cM,by.z3],bx.Nk),cO=(0,bw.Mz)([cN,bx.DP,cL],bx.fb);(0,bw.Mz)([cN,bx.DP,cL],(a,b,c)=>c.length>0?a.flatMap(a=>c.flatMap(c=>{var d;return{value:(0,a$.kr)(a,null!=(d=b.dataKey)?d:c.dataKey),errorDomain:[]}})).filter(Boolean):(null==b?void 0:b.dataKey)!=null?a.map(a=>({value:(0,a$.kr)(a,b.dataKey),errorDomain:[]})):a.map(a=>({value:a,errorDomain:[]})));var cP=()=>void 0,cQ=(0,bw.Mz)([cN,bx.DP,cL,bx.CH,cG.N,by.G7],bx.EZ),cR=(0,bw.Mz)([bx.DP,bx.AV,bx.Lu,cP,cQ,cP,aH.fz,cG.N],bx.wL),cS=(0,bw.Mz)([bx.DP,aH.fz,cN,cO,bA.eC,cG.N,cR],bx.tP),cT=(0,bw.Mz)([cS,bx.tm,bx.xM],bx.xp),cU=(0,bw.Mz)([bx.DP,cS,cT,cG.N],bx.g1);function cV(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function cW(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?cV(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):cV(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}(0,bw.Mz)([bx.xM,cU],cI.l);var cX=(0,bw.Mz)([cJ,(a,b)=>b],(a,b)=>a.filter(a=>"pie"===a.type).find(a=>a.id===b)),cY=[],cZ=(a,b,c)=>(null==c?void 0:c.length)===0?cY:c,c$=(0,bw.Mz)([by.z3,cX,cZ],(a,b,c)=>{var d,{chartData:e}=a;if(null!=b&&((d=(null==b?void 0:b.data)!=null&&b.data.length>0?b.data:e)&&d.length||null==c||(d=c.map(a=>cW(cW({},b.presentationProps),a.props))),null!=d))return d}),c_=(0,bw.Mz)([c$,cX,cZ],(a,b,c)=>{if(null!=a&&null!=b)return a.map((a,d)=>{var e,f,g=(0,a$.kr)(a,b.nameKey,b.name);return f=null!=c&&null!=(e=c[d])&&null!=(e=e.props)&&e.fill?c[d].props.fill:"object"==typeof a&&null!=a&&"fill"in a?a.fill:b.fill,{value:(0,a$.uM)(g,b.dataKey),color:f,payload:a,type:b.legendType}})}),c0=(0,bw.Mz)([c$,cX,cZ,bz.HZ],(a,b,c,d)=>{if(null!=b&&null!=a)return function(a){var b,c,d,{pieSettings:e,displayedData:f,cells:g,offset:h}=a,{cornerRadius:i,startAngle:j,endAngle:k,dataKey:l,nameKey:m,tooltipType:n}=e,o=Math.abs(e.minAngle),p=(0,al.sA)(k-j)*Math.min(Math.abs(k-j),360),q=Math.abs(p),r=f.length<=1?0:null!=(b=e.paddingAngle)?b:0,s=f.filter(a=>0!==(0,a$.kr)(a,l,0)).length,t=f.reduce((a,b)=>{var c=(0,a$.kr)(b,l,0);return a+((0,al.Et)(c)?c:0)},0),u=o>0&&t>0&&f.some(a=>{var b=(0,a$.kr)(a,l,0),c=((0,al.Et)(b)?b:0)/t;return 0!==b&&c*q<o})?o:0,v=q-s*u-(q>=360?s:s-1)*r;return t>0&&(c=f.map((a,b)=>{var c,f=(0,a$.kr)(a,l,0),k=(0,a$.kr)(a,m,b),o=((a,b,c)=>{var d,{top:e,left:f,width:g,height:h}=b,i=(0,c2.lY)(g,h),j=f+(0,al.F4)(a.cx,g,g/2),k=e+(0,al.F4)(a.cy,h,h/2),l=(0,al.F4)(a.innerRadius,i,0);return{cx:j,cy:k,innerRadius:l,outerRadius:(d=a.outerRadius,"function"==typeof d?(0,al.F4)(d(c),i,.8*i):(0,al.F4)(d,i,.8*i)),maxRadius:a.maxRadius||Math.sqrt(g*g+h*h)/2}})(e,h,a),q=((0,al.Et)(f)?f:0)/t,s=dc(dc({},a),g&&g[b]&&g[b].props),w=null!=s&&"fill"in s&&"string"==typeof s.fill?s.fill:e.fill,x=(c=b?d.endAngle+(0,al.sA)(p)*r*(0!==f):j)+(0,al.sA)(p)*((0!==f?u:0)+q*v),y=(c+x)/2,z=(o.innerRadius+o.outerRadius)/2,A=[{name:k,value:f,payload:s,dataKey:l,type:n,color:w,fill:w,graphicalItemId:e.id}],B=(0,c2.IZ)(o.cx,o.cy,z,y);return d=dc(dc(dc(dc({},e.presentationProps),{},{percent:q,cornerRadius:"string"==typeof i?parseFloat(i):i,name:k,tooltipPayload:A,midAngle:y,middleRadius:z,tooltipPosition:B},s),o),{},{value:f,dataKey:l,startAngle:c,endAngle:x,payload:s,paddingAngle:0!==f?(0,al.sA)(p)*r:0})})),c}({offset:d,pieSettings:b,displayedData:a,cells:c})}),c1=c(56280),c2=c(56317),c3=c(63911),c4=c(17257),c5=["key"],c6=["onMouseEnter","onClick","onMouseLeave"],c7=["id"],c8=["id"];function c9(){return(c9=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)({}).hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a}).apply(null,arguments)}function da(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function db(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function dc(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?db(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):db(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function dd(a){var b=(0,k.useMemo)(()=>(0,aZ.aS)(a.children,aX),[a.children]),c=(0,aE.G)(c=>c_(c,a.id,b));return null==c?null:k.createElement(bT._,{legendPayload:c})}var de=k.memo(a=>{var{dataKey:b,nameKey:c,sectors:d,stroke:e,strokeWidth:f,fill:g,name:h,hide:i,tooltipType:j,id:l,activeShape:m}=a,n=function(a){if(null!=a&&"boolean"!=typeof a&&"function"!=typeof a){if(k.isValidElement(a)){var b,c=null==(b=a.props)?void 0:b.fill;return"string"==typeof c?c:void 0}var{fill:d}=a;return"string"==typeof d?d:void 0}}(m),o={dataDefinedOnItem:d.map(a=>{var b=a.tooltipPayload;return null==n||null==b?b:b.map(a=>dc(dc({},a),{},{color:n,fill:n}))}),getPosition:a=>{var b;return null==(b=d[Number(a)])?void 0:b.tooltipPosition},settings:{stroke:e,strokeWidth:f,fill:g,dataKey:b,nameKey:c,name:(0,a$.uM)(h,b),hide:i,type:j,color:g,unit:"",graphicalItemId:l}};return k.createElement(br.r,{tooltipEntrySettings:o})});function df(a){var{sectors:b,props:c,showLabels:d}=a,{label:e,labelLine:f,dataKey:g}=c;if(!d||!e||!b)return null;var h=(0,bW.uZ)(c),i=(0,bW.ic)(e),j=(0,bW.ic)(f),l="object"==typeof e&&"offsetRadius"in e&&"number"==typeof e.offsetRadius&&e.offsetRadius||20,m=b.map((a,b)=>{var c,d,m=(a.startAngle+a.endAngle)/2,n=(0,c2.IZ)(a.cx,a.cy,a.outerRadius+l,m),o=dc(dc(dc(dc({},h),a),{},{stroke:"none"},i),{},{index:b,textAnchor:(c=n.x)>(d=a.cx)?"start":c<d?"end":"middle"},n),p=dc(dc(dc(dc({},h),a),{},{fill:"none",stroke:a.fill},j),{},{index:b,points:[(0,c2.IZ)(a.cx,a.cy,a.outerRadius,m),n],key:"line"});return k.createElement(bX.g,{zIndex:bY.I.label,key:"label-".concat(a.startAngle,"-").concat(a.endAngle,"-").concat(a.midAngle,"-").concat(b)},k.createElement(aW.W,null,f&&((a,b)=>{if(k.isValidElement(a))return k.cloneElement(a,b);if("function"==typeof a)return a(b);var c=(0,U.$)("recharts-pie-label-line","boolean"!=typeof a?a.className:""),{key:d}=b,e=da(b,c5);return k.createElement(be.Ip,c9({},e,{type:"linear",className:c}))})(f,p),((a,b,c)=>{if(k.isValidElement(a))return k.cloneElement(a,b);var d=c;if("function"==typeof a&&(d=a(b),k.isValidElement(d)))return d;var e=(0,U.$)("recharts-pie-label-text",(0,c4.I)(a));return k.createElement(c1.EY,c9({},b,{alignmentBaseline:"middle",className:e}),d)})(e,o,(0,a$.kr)(a,g))))});return k.createElement(aW.W,{className:"recharts-pie-labels"},m)}function dg(a){var{sectors:b,props:c,showLabels:d}=a,{label:e}=c;return"object"==typeof e&&null!=e&&"position"in e?k.createElement(aY.qY,{label:e}):k.createElement(df,{sectors:b,props:c,showLabels:d})}function dh(a){var{sectors:b,activeShape:c,inactiveShape:d,allOtherPieProps:e,shape:f,id:g}=a,h=(0,aE.G)(bS.A2),i=(0,aE.G)(bS.Xb),j=(0,aE.G)(bS.fx),{onMouseEnter:l,onClick:m,onMouseLeave:n}=e,o=da(e,c6),p=bo(l,e.dataKey,g),q=bp(n),r=bq(m,e.dataKey,g);return null==b||0===b.length?null:k.createElement(k.Fragment,null,b.map((a,l)=>{if((null==a?void 0:a.startAngle)===0&&(null==a?void 0:a.endAngle)===0&&1!==b.length)return null;var m=null==j||j===g,n=String(l)===h&&(null==i||e.dataKey===i)&&m,s=c&&n?c:h?d:null,t=dc(dc({},a),{},{stroke:a.stroke,tabIndex:-1,[c3.F0]:l,[c3.yU]:g});return k.createElement(aW.W,c9({key:"sector-".concat(null==a?void 0:a.startAngle,"-").concat(null==a?void 0:a.endAngle,"-").concat(a.midAngle,"-").concat(l),tabIndex:-1,className:"recharts-pie-sector"},(0,au.XC)(o,a,l),{onMouseEnter:p(a,l),onMouseLeave:q(a,l),onClick:r(a,l)}),k.createElement(bj,c9({option:null!=f?f:s,index:l,shapeType:"sector",isActive:n},t)))}))}function di(a){var{showLabels:b,sectors:c,children:d}=a,e=(0,k.useMemo)(()=>b&&c?c.map(a=>({value:a.value,payload:a.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:a.cx,cy:a.cy,innerRadius:a.innerRadius,outerRadius:a.outerRadius,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},fill:a.fill})):[],[c,b]);return k.createElement(aY.dL,{value:b?e:void 0},d)}function dj(a){var{props:b,previousSectorsRef:c,id:d}=a,{sectors:e,isAnimationActive:f,animationBegin:g,animationDuration:h,animationEasing:i,activeShape:j,inactiveShape:l,onAnimationStart:m,onAnimationEnd:n}=b,o=(0,a3.n)(b,"recharts-pie-"),p=c.current,[q,r]=(0,k.useState)(!1),s=(0,k.useCallback)(()=>{"function"==typeof n&&n(),r(!1)},[n]),t=(0,k.useCallback)(()=>{"function"==typeof m&&m(),r(!0)},[m]);return k.createElement(di,{showLabels:!q,sectors:e},k.createElement(a2.J,{animationId:o,begin:g,duration:h,isActive:f,easing:i,onAnimationStart:t,onAnimationEnd:s,key:o},a=>{var f,g=[],h=e&&e[0],i=null!=(f=null==h?void 0:h.startAngle)?f:0;return null==e||e.forEach((b,c)=>{var d=p&&p[c],e=c>0?cF()(b,"paddingAngle",0):0;if(d){var f=(0,al.GW)(d.endAngle-d.startAngle,b.endAngle-b.startAngle,a),h=dc(dc({},b),{},{startAngle:i+e,endAngle:i+f+e});g.push(h),i=h.endAngle}else{var{endAngle:j,startAngle:k}=b,l=(0,al.GW)(0,j-k,a),m=dc(dc({},b),{},{startAngle:i+e,endAngle:i+l+e});g.push(m),i=m.endAngle}}),c.current=g,k.createElement(aW.W,null,k.createElement(dh,{sectors:g,activeShape:j,inactiveShape:l,allOtherPieProps:b,shape:b.shape,id:d}))}),k.createElement(dg,{showLabels:!q,sectors:e,props:b}),b.children)}var dk={animationBegin:400,animationDuration:1500,animationEasing:"ease",cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:"#fff",zIndex:bY.I.area};function dl(a){var{id:b}=a,c=da(a,c7),{hide:d,className:e,rootTabIndex:f}=a,g=(0,k.useMemo)(()=>(0,aZ.aS)(a.children,aX),[a.children]),h=(0,aE.G)(a=>c0(a,b,g)),i=(0,k.useRef)(null),j=(0,U.$)("recharts-pie",e);return d||null==h?(i.current=null,k.createElement(aW.W,{tabIndex:f,className:j})):k.createElement(bX.g,{zIndex:a.zIndex},k.createElement(de,{dataKey:a.dataKey,nameKey:a.nameKey,sectors:h,stroke:a.stroke,strokeWidth:a.strokeWidth,fill:a.fill,name:a.name,hide:a.hide,tooltipType:a.tooltipType,id:b,activeShape:a.activeShape}),k.createElement(aW.W,{tabIndex:f,className:j},k.createElement(dj,{props:dc(dc({},c),{},{sectors:h}),previousSectorsRef:i,id:b})))}var dm=function(a){var b=(0,av.e)(a,dk),{id:c}=b,d=da(b,c8),e=(0,bW.uZ)(d);return k.createElement(bU.x,{id:c,type:"pie"},a=>k.createElement(k.Fragment,null,k.createElement(bV.v,{type:"pie",id:a,data:d.data,dataKey:d.dataKey,hide:d.hide,angleAxisId:0,radiusAxisId:0,name:d.name,nameKey:d.nameKey,tooltipType:d.tooltipType,legendType:d.legendType,fill:d.fill,cx:d.cx,cy:d.cy,startAngle:d.startAngle,endAngle:d.endAngle,paddingAngle:d.paddingAngle,minAngle:d.minAngle,innerRadius:d.innerRadius,outerRadius:d.outerRadius,cornerRadius:d.cornerRadius,presentationProps:e,maxRadius:b.maxRadius}),k.createElement(dd,c9({},d,{id:a})),k.createElement(dl,c9({},d,{id:a}))))};dm.displayName="Pie";let dn=["#6366f1","#f59e0b","#06b6d4","#10b981","#f43f5e","#8b5cf6","#ec4899","#14b8a6"],dp=a=>a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:String(a||0),dq=a=>`$${(a||0).toFixed(4)}`,dr=a=>new Intl.NumberFormat().format(a||0);function ds(a){return"cost"===a?dq:"tokens"===a||"cachedTokens"===a?dp:dr}let dt={backgroundColor:"#16161e",border:"1px solid rgba(255,255,255,0.1)",borderRadius:"8px",fontSize:"12px",color:"#e2e8f0",boxShadow:"0 4px 16px rgba(0,0,0,0.4)"},du={color:"#94a3b8",marginBottom:2},dv={color:"#f1f5f9"};function dw({series:a,metric:b,seriesBy:c}){if(!a?.length)return null;let d=ds(b),e=[...new Set(a.flatMap(a=>Object.keys(a.values||{})))],f=Object.fromEntries(e.map(a=>[a,0])),g=a.map(a=>({...f,label:a.label,...a.values})),h="none"!==c&&e.length>1;return a.some(a=>a.total>0)?(0,j.jsxs)(n.default,{className:"flex min-w-0 flex-col gap-3 p-3 sm:p-4",children:[(0,j.jsx)("h3",{className:"text-sm font-semibold text-text-muted uppercase",children:"Trend"}),(0,j.jsx)(J.u,{width:"100%",height:220,children:(0,j.jsxs)(N,{data:g,margin:{top:4,right:8,left:0,bottom:0},children:[(0,j.jsx)("defs",{children:dn.map((a,b)=>(0,j.jsxs)("linearGradient",{id:`grad${b}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,j.jsx)("stop",{offset:"5%",stopColor:a,stopOpacity:.25}),(0,j.jsx)("stop",{offset:"95%",stopColor:a,stopOpacity:0})]},b))}),(0,j.jsx)(O.d,{strokeDasharray:"3 3",strokeOpacity:.1}),(0,j.jsx)(P.W,{dataKey:"label",tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,interval:"preserveStartEnd"}),(0,j.jsx)(Q.h,{tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,tickFormatter:d,width:52}),(0,j.jsx)(R.m,{contentStyle:dt,labelStyle:du,itemStyle:dv,formatter:(a,b)=>[d(a),b]}),h&&(0,j.jsx)(aS,{wrapperStyle:{fontSize:"11px"}}),h?e.map((a,b)=>(0,j.jsx)(aT.Gk,{type:"monotone",dataKey:a,stroke:dn[b%dn.length],strokeWidth:2,fill:`url(#grad${b%dn.length})`,dot:!1,activeDot:{r:4},stackId:"1"},a)):(0,j.jsx)(aT.Gk,{type:"monotone",dataKey:e[0]||"total",stroke:dn[0],strokeWidth:2,fill:"url(#grad0)",dot:!1,activeDot:{r:4}})]})})]}):(0,j.jsx)(n.default,{className:"flex items-center justify-center h-[260px] text-text-muted text-sm",children:"No data for selected filters"})}function dx({top:a,metric:b}){if(!a?.length)return null;let c=ds(b);return(0,j.jsxs)(n.default,{className:"flex min-w-0 flex-col gap-3 p-3 sm:p-4",children:[(0,j.jsx)("h3",{className:"text-sm font-semibold text-text-muted uppercase",children:"Top Contributors"}),(0,j.jsx)(J.u,{width:"100%",height:200,children:(0,j.jsxs)(aV,{data:a,layout:"vertical",margin:{top:0,right:16,left:0,bottom:0},children:[(0,j.jsx)(O.d,{strokeDasharray:"3 3",strokeOpacity:.1,horizontal:!1}),(0,j.jsx)(P.W,{type:"number",tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,tickFormatter:c}),(0,j.jsx)(Q.h,{type:"category",dataKey:"label",tick:{fontSize:10,fill:"currentColor",fillOpacity:.7},tickLine:!1,axisLine:!1,width:90}),(0,j.jsx)(R.m,{contentStyle:dt,labelStyle:du,itemStyle:dv,formatter:a=>[c(a)]}),(0,j.jsx)(cl,{dataKey:"value",radius:[0,4,4,0],children:a.map((a,b)=>(0,j.jsx)(aX,{fill:dn[b%dn.length]},b))})]})})]})}function dy({top:a,metric:b}){return a?.length?(0,j.jsxs)(n.default,{className:"flex min-w-0 flex-col gap-3 p-3 sm:p-4",children:[(0,j.jsx)("h3",{className:"text-sm font-semibold text-text-muted uppercase",children:"Share"}),(0,j.jsx)(J.u,{width:"100%",height:200,children:(0,j.jsxs)(cD,{children:[(0,j.jsx)(dm,{data:a,dataKey:"value",nameKey:"label",cx:"50%",cy:"50%",innerRadius:55,outerRadius:85,paddingAngle:2,children:a.map((a,b)=>(0,j.jsx)(aX,{fill:dn[b%dn.length]},b))}),(0,j.jsx)(R.m,{contentStyle:dt,labelStyle:du,itemStyle:dv,formatter:(a,b,c)=>[`${c.payload.percentage}%`,b]}),(0,j.jsx)(aS,{layout:"vertical",align:"right",verticalAlign:"middle",wrapperStyle:{fontSize:"11px"},formatter:a=>a.length>14?a.slice(0,12)+"…":a})]})})]}):null}function dz({report:a,metric:b,seriesBy:c,groupBy:d}){let e=a?.top||{},f=[{key:"apiKeys",label:"API Key",data:e.apiKeys||[]},{key:"models",label:"Model",data:e.models||[]},{key:"providers",label:"Provider",data:e.providers||[]}].filter(a=>a.data.length>0);return(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,j.jsx)(dw,{series:a?.series,metric:b,seriesBy:c}),f.map(a=>(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-1",children:[(0,j.jsxs)("p",{className:"text-xs font-semibold uppercase text-text-muted px-0.5",children:[a.label," breakdown"]}),(0,j.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-4 sm:grid-cols-2",children:[(0,j.jsx)(dx,{top:a.data,metric:b}),(0,j.jsx)(dy,{top:a.data,metric:b})]})]},a.key))]})}dz.propTypes={report:F().object,metric:F().string,seriesBy:F().string,groupBy:F().string},dw.propTypes={series:F().array,metric:F().string,seriesBy:F().string},dx.propTypes={top:F().array,metric:F().string},dy.propTypes={top:F().array,metric:F().string};let dA=a=>new Intl.NumberFormat().format(a||0),dB=a=>`$${(a||0).toFixed(4)}`;function dC({field:a,currentSort:b,currentOrder:c}){return b!==a?(0,j.jsx)("span",{className:"ml-1 opacity-25 text-xs",children:"↕"}):(0,j.jsx)("span",{className:"ml-1 text-xs",children:"asc"===c?"↑":"↓"})}dC.propTypes={field:F().string,currentSort:F().string,currentOrder:F().string};let dD=[{field:"requests",label:"Requests"},{field:"promptTokens",label:"Input"},{field:"completionTokens",label:"Output"},{field:"cachedTokens",label:"Cached"},{field:"totalTokens",label:"Total Tokens"},{field:"cost",label:"Cost"},{field:"avgCostPerRequest",label:"Avg/Req"},{field:"cacheHitRatio",label:"Cache %"},{field:"lastUsed",label:"Last Used"}];function dE({breakdown:a,groupBy:b}){let[c,d]=(0,k.useState)("requests"),[e,f]=(0,k.useState)("desc");if(!a?.length)return(0,j.jsx)(n.default,{className:"p-8 text-center text-text-muted text-sm",children:"No usage data for selected filters."});let g=[...a].sort((a,b)=>{let d=a[c]??0,f=b[c]??0;return"string"==typeof d?"asc"===e?d.localeCompare(f):f.localeCompare(d):"asc"===e?d-f:f-d}),h={apiKey:"API Key",model:"Model",provider:"Provider",time:"Time Period"}[b]||"Label";return(0,j.jsxs)(n.default,{className:"overflow-hidden",children:[(0,j.jsx)("div",{className:"p-3 border-b border-border bg-bg-subtle/50",children:(0,j.jsxs)("h3",{className:"text-sm font-semibold text-text-main",children:["Breakdown by ",h]})}),(0,j.jsx)("div",{className:"overflow-x-auto",children:(0,j.jsxs)("table",{className:"w-full text-sm text-left min-w-[900px]",children:[(0,j.jsx)("thead",{className:"bg-bg-subtle/30 text-text-muted uppercase text-xs",children:(0,j.jsxs)("tr",{children:[(0,j.jsx)("th",{className:"px-4 py-3 font-semibold",children:h}),dD.map(a=>(0,j.jsxs)("th",{className:"px-3 py-3 text-right cursor-pointer hover:bg-bg-subtle/50 whitespace-nowrap",onClick:()=>{var b;c===(b=a.field)?f(a=>"desc"===a?"asc":"desc"):(d(b),f("desc"))},children:[a.label,(0,j.jsx)(dC,{field:a.field,currentSort:c,currentOrder:e})]},a.field))]})}),(0,j.jsx)("tbody",{className:"divide-y divide-border",children:g.map(a=>{let b;return(0,j.jsxs)("tr",{className:"hover:bg-bg-subtle/30 transition-colors",children:[(0,j.jsx)("td",{className:"px-4 py-3 max-w-[200px]",children:(0,j.jsxs)("div",{className:"flex flex-col gap-0.5 min-w-0",children:[(0,j.jsx)("span",{className:"font-medium text-text-main truncate",children:a.label}),a.maskedKey&&(0,j.jsx)("span",{className:"text-[10px] font-mono text-text-muted truncate",children:a.maskedKey})]})}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-text-main",children:dA(a.requests)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-text-muted",children:dA(a.promptTokens)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-text-muted",children:dA(a.completionTokens)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono",style:{color:"var(--color-info, #06b6d4)"},children:dA(a.cachedTokens)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono font-medium",children:dA(a.totalTokens)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-warning",children:dB(a.cost)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-text-muted",children:dB(a.avgCostPerRequest)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right font-mono text-text-muted",children:(b=a.cacheHitRatio,`${(100*(b||0)).toFixed(1)}%`)}),(0,j.jsx)("td",{className:"px-3 py-3 text-right text-text-muted whitespace-nowrap",children:function(a){if(!a)return"—";let b=Math.floor((Date.now()-new Date(a))/6e4);return b<1?"Just now":b<60?`${b}m ago`:b<1440?`${Math.floor(b/60)}h ago`:new Date(a).toLocaleDateString()}(a.lastUsed)})]},a.id)})})]})})]})}dE.propTypes={breakdown:F().array,groupBy:F().string};let dF=(d=0,()=>(d+=1,`u${`0000${(1679616*Math.random()|0).toString(36)}`.slice(-4)}${d}`));function dG(a){let b=[];for(let c=0,d=a.length;c<d;c++)b.push(a[c]);return b}let dH=null;function dI(a={}){return dH||(dH=a.includeStyleProperties?a.includeStyleProperties:dG(window.getComputedStyle(document.documentElement)))}function dJ(a,b){let c=(a.ownerDocument.defaultView||window).getComputedStyle(a).getPropertyValue(b);return c?parseFloat(c.replace("px","")):0}function dK(a,b={}){let c,d,e,f;return{width:b.width||(c=dJ(a,"border-left-width"),d=dJ(a,"border-right-width"),a.clientWidth+c+d),height:b.height||(e=dJ(a,"border-top-width"),f=dJ(a,"border-bottom-width"),a.clientHeight+e+f)}}function dL(a){return new Promise((b,c)=>{let d=new Image;d.onload=()=>{d.decode().then(()=>{requestAnimationFrame(()=>b(d))})},d.onerror=c,d.crossOrigin="anonymous",d.decoding="async",d.src=a})}async function dM(a){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(a)).then(encodeURIComponent).then(a=>`data:image/svg+xml;charset=utf-8,${a}`)}async function dN(a,b,c){let d="http://www.w3.org/2000/svg",e=document.createElementNS(d,"svg"),f=document.createElementNS(d,"foreignObject");return e.setAttribute("width",`${b}`),e.setAttribute("height",`${c}`),e.setAttribute("viewBox",`0 0 ${b} ${c}`),f.setAttribute("width","100%"),f.setAttribute("height","100%"),f.setAttribute("x","0"),f.setAttribute("y","0"),f.setAttribute("externalResourcesRequired","true"),e.appendChild(f),f.appendChild(a),dM(e)}let dO=(a,b)=>{if(a instanceof b)return!0;let c=Object.getPrototypeOf(a);return null!==c&&(c.constructor.name===b.name||dO(c,b))};function dP(a,b,c,d){let e,f,g,h=window.getComputedStyle(a,c),i=h.getPropertyValue("content");if(""===i||"none"===i)return;let j=dF();try{b.className=`${b.className} ${j}`}catch(a){return}let k=document.createElement("style");k.appendChild((e=`.${j}:${c}`,g=h.cssText?(f=h.getPropertyValue("content"),`${h.cssText} content: '${f.replace(/'|"/g,"")}';`):dI(d).map(a=>{let b=h.getPropertyValue(a),c=h.getPropertyPriority(a);return`${a}: ${b}${c?" !important":""};`}).join(" "),document.createTextNode(`${e}{${g}}`))),b.appendChild(k)}let dQ="application/font-woff",dR="image/jpeg",dS={woff:dQ,woff2:dQ,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:dR,jpeg:dR,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function dT(a){let b;return dS[((b=/\.([^./]*?)$/g.exec(a))?b[1]:"").toLowerCase()]||""}function dU(a){return -1!==a.search(/^(data:)/)}function dV(a,b){return`data:${b};base64,${a}`}async function dW(a,b,c){let d=await fetch(a,b);if(404===d.status)throw Error(`Resource "${d.url}" not found`);let e=await d.blob();return new Promise((a,b)=>{let f=new FileReader;f.onerror=b,f.onloadend=()=>{try{a(c({res:d,result:f.result}))}catch(a){b(a)}},f.readAsDataURL(e)})}let dX={};async function dY(a,b,c){var d,e,f;let g,h,i=(d=a,e=b,f=c.includeQueryParams,h=d.replace(/\?.*/,""),f&&(h=d),/ttf|otf|eot|woff2?/i.test(h)&&(h=h.replace(/.*\//,"")),e?`[${e}]${h}`:h);if(null!=dX[i])return dX[i];c.cacheBust&&(a+=(/\?/.test(a)?"&":"?")+new Date().getTime());try{let d=await dW(a,c.fetchRequestInit,({res:a,result:c})=>(b||(b=a.headers.get("Content-Type")||""),c.split(/,/)[1]));g=dV(d,b)}catch(d){g=c.imagePlaceholder||"";let b=`Failed to fetch resource: ${a}`;d&&(b="string"==typeof d?d:d.message),b&&console.warn(b)}return dX[i]=g,g}async function dZ(a){let b=a.toDataURL();return"data:,"===b?a.cloneNode(!1):dL(b)}async function d$(a,b){if(a.currentSrc){let b=document.createElement("canvas"),c=b.getContext("2d");return b.width=a.clientWidth,b.height=a.clientHeight,null==c||c.drawImage(a,0,0,b.width,b.height),dL(b.toDataURL())}let c=a.poster,d=dT(c);return dL(await dY(c,d,b))}async function d_(a,b){var c;try{if(null==(c=null==a?void 0:a.contentDocument)?void 0:c.body)return await d4(a.contentDocument.body,b,!0)}catch(a){}return a.cloneNode(!1)}async function d0(a,b){return dO(a,HTMLCanvasElement)?dZ(a):dO(a,HTMLVideoElement)?d$(a,b):dO(a,HTMLIFrameElement)?d_(a,b):a.cloneNode(d1(a))}let d1=a=>null!=a.tagName&&"SVG"===a.tagName.toUpperCase();async function d2(a,b,c){var d,e;if(d1(b))return b;let f=[];return 0===(f=null!=a.tagName&&"SLOT"===a.tagName.toUpperCase()&&a.assignedNodes?dG(a.assignedNodes()):dO(a,HTMLIFrameElement)&&(null==(d=a.contentDocument)?void 0:d.body)?dG(a.contentDocument.body.childNodes):dG((null!=(e=a.shadowRoot)?e:a).childNodes)).length||dO(a,HTMLVideoElement)||await f.reduce((a,d)=>a.then(()=>d4(d,c)).then(a=>{a&&b.appendChild(a)}),Promise.resolve()),b}async function d3(a,b){let c=a.querySelectorAll?a.querySelectorAll("use"):[];if(0===c.length)return a;let d={};for(let e=0;e<c.length;e++){let f=c[e].getAttribute("xlink:href");if(f){let c=a.querySelector(f),e=document.querySelector(f);c||!e||d[f]||(d[f]=await d4(e,b,!0))}}let e=Object.values(d);if(e.length){let b="http://www.w3.org/1999/xhtml",c=document.createElementNS(b,"svg");c.setAttribute("xmlns",b),c.style.position="absolute",c.style.width="0",c.style.height="0",c.style.overflow="hidden",c.style.display="none";let d=document.createElementNS(b,"defs");c.appendChild(d);for(let a=0;a<e.length;a++)d.appendChild(e[a]);a.appendChild(c)}return a}async function d4(a,b,c){return c||!b.filter||b.filter(a)?Promise.resolve(a).then(a=>d0(a,b)).then(c=>d2(a,c,b)).then(c=>(function(a,b,c){if(dO(b,Element)&&(!function(a,b,c){let d=b.style;if(!d)return;let e=window.getComputedStyle(a);e.cssText?(d.cssText=e.cssText,d.transformOrigin=e.transformOrigin):dI(c).forEach(c=>{let f=e.getPropertyValue(c);if("font-size"===c&&f.endsWith("px")){let a=Math.floor(parseFloat(f.substring(0,f.length-2)))-.1;f=`${a}px`}dO(a,HTMLIFrameElement)&&"display"===c&&"inline"===f&&(f="block"),"d"===c&&b.getAttribute("d")&&(f=`path(${b.getAttribute("d")})`),d.setProperty(c,f,e.getPropertyPriority(c))})}(a,b,c),dP(a,b,":before",c),dP(a,b,":after",c),dO(a,HTMLTextAreaElement)&&(b.innerHTML=a.value),dO(a,HTMLInputElement)&&b.setAttribute("value",a.value),dO(a,HTMLSelectElement))){let c=Array.from(b.children).find(b=>a.value===b.getAttribute("value"));c&&c.setAttribute("selected","")}return b})(a,c,b)).then(a=>d3(a,b)):null}let d5=/url\((['"]?)([^'"]+?)\1\)/g,d6=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,d7=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;async function d8(a,b,c,d,e){try{let f,g,h=c?function(a,b){if(a.match(/^[a-z]+:\/\//i))return a;if(a.match(/^\/\//))return window.location.protocol+a;if(a.match(/^[a-z]+:/i))return a;let c=document.implementation.createHTMLDocument(),d=c.createElement("base"),e=c.createElement("a");return c.head.appendChild(d),c.body.appendChild(e),b&&(d.href=b),e.href=a,e.href}(b,c):b,i=dT(b);if(e){let a=await e(h);f=dV(a,i)}else f=await dY(h,i,d);return a.replace((g=b.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1"),RegExp(`(url\\(['"]?)(${g})(['"]?\\))`,"g")),`$1${f}$3`)}catch(a){}return a}function d9(a){return -1!==a.search(d5)}async function ea(a,b,c){let d;if(!d9(a))return a;let e=function(a,{preferredFontFormat:b}){return b?a.replace(d7,a=>{for(;;){let[c,,d]=d6.exec(a)||[];if(!d)return"";if(d===b)return`src: ${c};`}}):a}(a,c);return(d=[],e.replace(d5,(a,b,c)=>(d.push(c),a)),d.filter(a=>!dU(a))).reduce((a,d)=>a.then(a=>d8(a,d,b,c)),Promise.resolve(e))}async function eb(a,b,c){var d;let e=null==(d=b.style)?void 0:d.getPropertyValue(a);if(e){let d=await ea(e,null,c);return b.style.setProperty(a,d,b.style.getPropertyPriority(a)),!0}return!1}async function ec(a,b){await eb("background",a,b)||await eb("background-image",a,b),await eb("mask",a,b)||await eb("-webkit-mask",a,b)||await eb("mask-image",a,b)||await eb("-webkit-mask-image",a,b)}async function ed(a,b){let c=dO(a,HTMLImageElement);if(!(c&&!dU(a.src))&&!(dO(a,SVGImageElement)&&!dU(a.href.baseVal)))return;let d=c?a.src:a.href.baseVal,e=await dY(d,dT(d),b);await new Promise((d,f)=>{a.onload=d,a.onerror=b.onImageErrorHandler?(...a)=>{try{d(b.onImageErrorHandler(...a))}catch(a){f(a)}}:f,a.decode&&(a.decode=d),"lazy"===a.loading&&(a.loading="eager"),c?(a.srcset="",a.src=e):a.href.baseVal=e})}async function ee(a,b){let c=dG(a.childNodes).map(a=>ef(a,b));await Promise.all(c).then(()=>a)}async function ef(a,b){dO(a,Element)&&(await ec(a,b),await ed(a,b),await ee(a,b))}let eg={};async function eh(a){let b=eg[a];if(null!=b)return b;let c=await fetch(a);return b={url:a,cssText:await c.text()},eg[a]=b,b}async function ei(a,b){let c=a.cssText,d=/url\(["']?([^"')]+)["']?\)/g;return Promise.all((c.match(/url\([^)]+\)/g)||[]).map(async e=>{let f=e.replace(d,"$1");return f.startsWith("https://")||(f=new URL(f,a.url).href),dW(f,b.fetchRequestInit,({result:a})=>(c=c.replace(e,`url(${a})`),[e,a]))})).then(()=>c)}function ej(a){if(null==a)return[];let b=[],c=a.replace(/(\/\*[\s\S]*?\*\/)/gi,""),d=RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){let a=d.exec(c);if(null===a)break;b.push(a[0])}c=c.replace(d,"");let e=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,f=RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})","gi");for(;;){let a=e.exec(c);if(null===a){if(null===(a=f.exec(c)))break;e.lastIndex=f.lastIndex}else f.lastIndex=e.lastIndex;b.push(a[0])}return b}async function ek(a,b){let c=[],d=[];return a.forEach(c=>{if("cssRules"in c)try{dG(c.cssRules||[]).forEach((a,e)=>{if(a.type===CSSRule.IMPORT_RULE){let f=e+1,g=a.href,h=eh(g).then(a=>ei(a,b)).then(a=>ej(a).forEach(a=>{try{c.insertRule(a,a.startsWith("@import")?f+=1:c.cssRules.length)}catch(b){console.error("Error inserting rule from remote css",{rule:a,error:b})}})).catch(a=>{console.error("Error loading remote css",a.toString())});d.push(h)}})}catch(f){let e=a.find(a=>null==a.href)||document.styleSheets[0];null!=c.href&&d.push(eh(c.href).then(a=>ei(a,b)).then(a=>ej(a).forEach(a=>{e.insertRule(a,e.cssRules.length)})).catch(a=>{console.error("Error loading remote stylesheet",a)})),console.error("Error inlining remote css file",f)}}),Promise.all(d).then(()=>(a.forEach(a=>{if("cssRules"in a)try{dG(a.cssRules||[]).forEach(a=>{c.push(a)})}catch(b){console.error(`Error while reading CSS rules from ${a.href}`,b)}}),c))}async function el(a,b){if(null==a.ownerDocument)throw Error("Provided element is not within a Document");let c=dG(a.ownerDocument.styleSheets);return(await ek(c,b)).filter(a=>a.type===CSSRule.FONT_FACE_RULE).filter(a=>d9(a.style.getPropertyValue("src")))}function em(a){return a.trim().replace(/["']/g,"")}async function en(a,b){let c,d=await el(a,b),e=(c=new Set,!function a(b){(b.style.fontFamily||getComputedStyle(b).fontFamily).split(",").forEach(a=>{c.add(em(a))}),Array.from(b.children).forEach(b=>{b instanceof HTMLElement&&a(b)})}(a),c);return(await Promise.all(d.filter(a=>e.has(em(a.style.fontFamily))).map(a=>{let c=a.parentStyleSheet?a.parentStyleSheet.href:null;return ea(a.cssText,c,b)}))).join("\n")}async function eo(a,b){let c=null!=b.fontEmbedCSS?b.fontEmbedCSS:b.skipFonts?null:await en(a,b);if(c){let b=document.createElement("style"),d=document.createTextNode(c);b.appendChild(d),a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)}}async function ep(a,b={}){let{width:c,height:d}=dK(a,b),e=await d4(a,b,!0);return await eo(e,b),await ef(e,b),!function(a,b){let{style:c}=a;b.backgroundColor&&(c.backgroundColor=b.backgroundColor),b.width&&(c.width=`${b.width}px`),b.height&&(c.height=`${b.height}px`);let d=b.style;null!=d&&Object.keys(d).forEach(a=>{c[a]=d[a]})}(e,b),await dN(e,c,d)}async function eq(a,b={}){let{width:c,height:d}=dK(a,b),e=await ep(a,b),f=await dL(e),g=document.createElement("canvas"),h=g.getContext("2d"),i=b.pixelRatio||function(){let a,b;try{b=process}catch(a){}let c=b&&b.env?b.env.devicePixelRatio:null;return c&&Number.isNaN(a=parseInt(c,10))&&(a=1),a||window.devicePixelRatio||1}(),j=b.canvasWidth||c,k=b.canvasHeight||d;return g.width=j*i,g.height=k*i,!b.skipAutoScale&&(g.width>16384||g.height>16384)&&(g.width>16384&&g.height>16384?g.width>g.height?(g.height*=16384/g.width,g.width=16384):(g.width*=16384/g.height,g.height=16384):g.width>16384?(g.height*=16384/g.width,g.width=16384):(g.width*=16384/g.height,g.height=16384)),g.style.width=`${j}`,g.style.height=`${k}`,b.backgroundColor&&(h.fillStyle=b.backgroundColor,h.fillRect(0,0,g.width,g.height)),h.drawImage(f,0,0,g.width,g.height),g}async function er(a,b={}){return(await eq(a,b)).toDataURL()}let es=[{value:"today",label:"Today"},{value:"24h",label:"24H"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"all",label:"All Time"}],et=[{value:"auto",label:"✨ Auto"},{value:"allStats",label:"\uD83D\uDCCA All Stats"},{value:"tokenBeast",label:"\uD83E\uDD81 Token Beast"},{value:"costFlex",label:"\uD83D\uDCB0 Cost Flex"},{value:"modelHopper",label:"\uD83D\uDD00 Model Hopper"},{value:"providerCollector",label:"\uD83C\uDF10 Providers"},{value:"memeMode",label:"\uD83C\uDFAA Meme Mode"}],eu=[{value:"auto",label:"Auto"},{value:"cyber",label:"Cyber"},{value:"minimal",label:"Minimal"},{value:"gold",label:"Gold"},{value:"meme",label:"Meme"}];function ev(a,b){let c={cyber:{background:"linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #0f172a 100%)",cardBg:"rgba(255,255,255,0.04)",cardBorder:"rgba(99,102,241,0.3)",heroBg:"rgba(99,102,241,0.12)",heroBorder:"rgba(99,102,241,0.4)",heroText:"#a5b4fc",heroLabelText:"#818cf8",subCardBg:"rgba(255,255,255,0.04)",subCardBorder:"rgba(99,102,241,0.2)",subLabelText:"#6366f1",subValueText:"#e2e8f0",headerText:"#c7d2fe",badgeBg:"rgba(99,102,241,0.2)",badgeText:"#a5b4fc",badgeBorder:"rgba(99,102,241,0.4)",footerText:"#4f46e5",dividerColor:"rgba(99,102,241,0.2)",accentColor:"#6366f1",fontFamily:"'ui-monospace', 'Cascadia Code', 'Courier New', monospace"},minimal:{background:"#ffffff",cardBg:"#f8fafc",cardBorder:"#e2e8f0",heroBg:"#f1f5f9",heroBorder:"#cbd5e1",heroText:"#0f172a",heroLabelText:"#64748b",subCardBg:"#f8fafc",subCardBorder:"#e2e8f0",subLabelText:"#94a3b8",subValueText:"#1e293b",headerText:"#334155",badgeBg:"#f1f5f9",badgeText:"#475569",badgeBorder:"#cbd5e1",footerText:"#94a3b8",dividerColor:"#e2e8f0",accentColor:"#3b82f6",fontFamily:"'ui-sans-serif', 'system-ui', '-apple-system', sans-serif"},gold:{background:"linear-gradient(135deg, #1a0e00 0%, #2d1a00 40%, #1a0e00 100%)",cardBg:"rgba(255,200,50,0.05)",cardBorder:"rgba(217,165,32,0.3)",heroBg:"rgba(217,165,32,0.1)",heroBorder:"rgba(217,165,32,0.4)",heroText:"#fde68a",heroLabelText:"#d97706",subCardBg:"rgba(255,200,50,0.04)",subCardBorder:"rgba(217,165,32,0.2)",subLabelText:"#b45309",subValueText:"#fef3c7",headerText:"#fde68a",badgeBg:"rgba(217,165,32,0.15)",badgeText:"#fbbf24",badgeBorder:"rgba(217,165,32,0.4)",footerText:"#92400e",dividerColor:"rgba(217,165,32,0.2)",accentColor:"#f59e0b",fontFamily:"'Georgia', 'Times New Roman', serif"},meme:{background:"linear-gradient(135deg, #7c3aed 0%, #db2777 50%, #ea580c 100%)",cardBg:"rgba(255,255,255,0.12)",cardBorder:"rgba(255,255,255,0.25)",heroBg:"rgba(255,255,255,0.15)",heroBorder:"rgba(255,255,255,0.3)",heroText:"#ffffff",heroLabelText:"rgba(255,255,255,0.8)",subCardBg:"rgba(255,255,255,0.1)",subCardBorder:"rgba(255,255,255,0.2)",subLabelText:"rgba(255,255,255,0.6)",subValueText:"#ffffff",headerText:"#ffffff",badgeBg:"rgba(255,255,255,0.2)",badgeText:"#ffffff",badgeBorder:"rgba(255,255,255,0.3)",footerText:"rgba(255,255,255,0.5)",dividerColor:"rgba(255,255,255,0.2)",accentColor:"#fbbf24",fontFamily:"'Impact', 'Arial Black', 'ui-sans-serif', sans-serif"}};return c["auto"===a?({allStats:"cyber",tokenBeast:"cyber",costFlex:"gold",modelHopper:"cyber",providerCollector:"gold",memeMode:"meme"})[b]??"cyber":a]??c.cyber}let ew=["allStats","tokenBeast","costFlex","modelHopper","providerCollector","memeMode"],ex=["cyber","minimal","gold","meme"],ey=(0,k.forwardRef)(function({flexData:a,flexType:b,themeConfig:c,period:d},e){let f=function(a,b){let c=b?.totals??{},d=b?.highlights??{},e=a=>new Intl.NumberFormat().format(a||0),f=a=>`$${(a||0).toFixed(2)}`;switch(a){case"allStats":return{emoji:"\uD83D\uDCCA",heroValue:e(c.requests),heroLabel:"total requests",layout:"allStats",panels:[{emoji:"\uD83E\uDD81",label:"Tokens",value:e(c.totalTokens),sub:`${e(c.cachedTokens)} cached`,color:"#818cf8"},{emoji:"\uD83D\uDCB0",label:"Est. Cost",value:`$${(c.cost||0).toFixed(2)}`,sub:`~$${(c.avgCostPerRequest||0).toFixed(4)}/req`,color:"#f59e0b"},{emoji:"\uD83D\uDD00",label:"Models",value:String(d.uniqueModels??0),sub:d.topModel??"—",color:"#34d399"},{emoji:"\uD83C\uDF10",label:"Providers",value:String(d.uniqueProviders??0),sub:d.topProvider??"—",color:"#fb923c"}],subStats:[]};case"tokenBeast":return{emoji:"\uD83E\uDD81",heroValue:e(c.totalTokens),heroLabel:"tokens consumed",subStats:[{label:"Requests",value:e(c.requests)},{label:"Top Model",value:d.topModel??"—"},{label:"Cache Hit",value:c.cacheHitRatio?`${(100*c.cacheHitRatio).toFixed(0)}%`:"—"},{label:"Est. Cost",value:f(c.cost)}]};case"costFlex":return{emoji:"\uD83D\uDCB0",heroValue:f(c.cost),heroLabel:"estimated AI spend",subStats:[{label:"Requests",value:e(c.requests)},{label:"Total Tokens",value:e(c.totalTokens)},{label:"Avg/Request",value:f(c.avgCostPerRequest)},{label:"Top Model",value:d.topModel??"—"}]};case"modelHopper":return{emoji:"\uD83D\uDD00",heroValue:String(d.uniqueModels??0),heroLabel:"models used",subStats:[{label:"Top Model",value:d.topModel??"—"},{label:"Dominance",value:d.topModelPct?`${d.topModelPct.toFixed(0)}%`:"—"},{label:"Requests",value:e(c.requests)},{label:"Total Tokens",value:e(c.totalTokens)}]};case"providerCollector":return{emoji:"\uD83C\uDF10",heroValue:String(d.uniqueProviders??0),heroLabel:"providers routed",subStats:[{label:"Top Provider",value:d.topProvider??"—"},{label:"Coverage",value:d.topProviderPct?`${d.topProviderPct.toFixed(0)}%`:"—"},{label:"Models",value:String(d.uniqueModels??0)},{label:"Requests",value:e(c.requests)}]};default:return{emoji:"\uD83C\uDFAA",heroValue:e(c.requests),heroLabel:"requests fired",subStats:[{label:"Tokens Shot",value:e(c.totalTokens)},{label:"Models",value:String(d.uniqueModels??0)},{label:"Providers",value:String(d.uniqueProviders??0)},{label:"Est. Cost",value:f(c.cost)}]}}}(b,a),g=c??{},h=!a||(a.totals?.requests??0)===0&&(a.totals?.totalTokens??0)===0;return(0,j.jsxs)("div",{ref:e,style:{width:1080,height:1080,background:g.background??"#0f172a",fontFamily:g.fontFamily??"sans-serif",position:"relative",display:"flex",flexDirection:"column",padding:64,boxSizing:"border-box",overflow:"hidden"},children:[(0,j.jsx)("div",{style:{position:"absolute",top:-120,right:-120,width:480,height:480,borderRadius:"50%",background:`radial-gradient(circle, ${g.accentColor??"#6366f1"}22 0%, transparent 70%)`,pointerEvents:"none"}}),(0,j.jsx)("div",{style:{position:"absolute",bottom:-80,left:-80,width:320,height:320,borderRadius:"50%",background:`radial-gradient(circle, ${g.accentColor??"#6366f1"}18 0%, transparent 70%)`,pointerEvents:"none"}}),(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:48},children:[(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12},children:[(0,j.jsx)("div",{style:{width:44,height:44,borderRadius:12,background:g.accentColor??"#6366f1",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,j.jsx)("span",{style:{color:"#ffffff",fontSize:18,fontWeight:800,lineHeight:1,letterSpacing:"-0.5px"},children:"n9"})}),(0,j.jsx)("span",{style:{color:g.headerText??"#c7d2fe",fontSize:28,fontWeight:700,letterSpacing:"-0.5px"},children:"n9router"})]}),(0,j.jsx)("div",{style:{padding:"8px 20px",borderRadius:100,background:g.badgeBg??"rgba(99,102,241,0.2)",border:`1.5px solid ${g.badgeBorder??"rgba(99,102,241,0.4)"}`,color:g.badgeText??"#a5b4fc",fontSize:20,fontWeight:600,letterSpacing:"0.02em"},children:{today:"Today","24h":"Last 24H","7d":"Last 7 Days","30d":"Last 30 Days",all:"All Time"}[d]??d})]}),h?(0,j.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:16},children:[(0,j.jsx)("span",{style:{fontSize:80},children:"\uD83D\uDCED"}),(0,j.jsx)("span",{style:{color:g.heroLabelText??"#818cf8",fontSize:36,fontWeight:600,textAlign:"center"},children:"No usage data yet"}),(0,j.jsx)("span",{style:{color:g.footerText??"#4f46e5",fontSize:24,textAlign:"center"},children:"Start using the gateway to see your stats here"})]}):"allStats"===f.layout?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("div",{style:{background:g.heroBg??"rgba(99,102,241,0.12)",border:`2px solid ${g.heroBorder??"rgba(99,102,241,0.4)"}`,borderRadius:20,padding:"28px 48px",marginBottom:28,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:20},children:[(0,j.jsx)("span",{style:{fontSize:52,lineHeight:1},children:f.emoji}),(0,j.jsxs)("div",{children:[(0,j.jsx)("div",{style:{color:g.heroText??"#a5b4fc",fontSize:64,fontWeight:800,lineHeight:1,letterSpacing:"-1px"},children:f.heroValue}),(0,j.jsx)("div",{style:{color:g.heroLabelText??"#818cf8",fontSize:20,fontWeight:500,textTransform:"uppercase",letterSpacing:"0.06em",marginTop:4},children:f.heroLabel})]})]}),(0,j.jsx)("div",{style:{color:g.heroLabelText??"#818cf8",fontSize:20,fontWeight:500,textAlign:"right",opacity:.7},children:"Complete Overview"})]}),(0,j.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:20,flex:1},children:(f.panels??[]).map((a,b)=>(0,j.jsxs)("div",{style:{background:g.subCardBg??"rgba(255,255,255,0.04)",border:`1.5px solid ${g.subCardBorder??"rgba(99,102,241,0.2)"}`,borderRadius:20,padding:"32px 36px",display:"flex",flexDirection:"column",gap:8,position:"relative",overflow:"hidden"},children:[(0,j.jsx)("div",{style:{position:"absolute",top:-30,right:-30,width:100,height:100,borderRadius:"50%",background:`radial-gradient(circle, ${a.color}30 0%, transparent 70%)`,pointerEvents:"none"}}),(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,j.jsx)("span",{style:{fontSize:28,lineHeight:1},children:a.emoji}),(0,j.jsx)("span",{style:{color:a.color,fontSize:18,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.08em"},children:a.label})]}),(0,j.jsx)("div",{style:{color:g.subValueText??"#e2e8f0",fontSize:52,fontWeight:800,letterSpacing:"-1px",lineHeight:1.1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.value,children:a.value}),(0,j.jsx)("div",{style:{color:g.subLabelText??"#6366f1",fontSize:17,fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",opacity:.85},title:a.sub,children:a.sub})]},b))})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("div",{style:{background:g.heroBg??"rgba(99,102,241,0.12)",border:`2px solid ${g.heroBorder??"rgba(99,102,241,0.4)"}`,borderRadius:24,padding:"48px 56px",marginBottom:40,display:"flex",flexDirection:"column",alignItems:"center",gap:12,position:"relative"},children:[(0,j.jsx)("div",{style:{fontSize:72,lineHeight:1,marginBottom:8},children:f.emoji}),(0,j.jsx)("div",{style:{color:g.heroText??"#a5b4fc",fontSize:96,fontWeight:800,lineHeight:1,letterSpacing:"-2px",textAlign:"center",wordBreak:"break-all"},children:f.heroValue}),(0,j.jsx)("div",{style:{color:g.heroLabelText??"#818cf8",fontSize:28,fontWeight:500,textAlign:"center",letterSpacing:"0.02em",textTransform:"uppercase"},children:f.heroLabel})]}),(0,j.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:16,flex:1},children:f.subStats.map((a,b)=>(0,j.jsxs)("div",{style:{background:g.subCardBg??"rgba(255,255,255,0.04)",border:`1.5px solid ${g.subCardBorder??"rgba(99,102,241,0.2)"}`,borderRadius:16,padding:"24px 28px",display:"flex",flexDirection:"column",gap:6},children:[(0,j.jsx)("div",{style:{color:g.subLabelText??"#6366f1",fontSize:18,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.06em"},children:a.label}),(0,j.jsx)("div",{style:{color:g.subValueText??"#e2e8f0",fontSize:32,fontWeight:700,letterSpacing:"-0.5px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.value,children:a.value})]},b))})]}),(0,j.jsxs)("div",{style:{marginTop:36,paddingTop:24,borderTop:`1px solid ${g.dividerColor??"rgba(99,102,241,0.2)"}`,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,j.jsx)("span",{style:{color:g.footerText??"#4f46e5",fontSize:18,fontWeight:500},children:"Self-hosted AI routing gateway"}),(0,j.jsx)("span",{style:{color:g.footerText??"#4f46e5",fontSize:18},children:"github.com/nightwalker89/n9router"})]})]})});function ez(){let[a,b]=(0,k.useState)("30d"),[c,d]=(0,k.useState)("auto"),[e,f]=(0,k.useState)("auto"),[g,h]=(0,k.useState)(!1),[i,l]=(0,k.useState)(null),[n,o]=(0,k.useState)(!0),[p,q]=(0,k.useState)(null),[r,s]=(0,k.useState)(!1),[t,u]=(0,k.useState)(!1),[v,w]=(0,k.useState)(!1),x=(0,k.useRef)(null),[y,z]=(0,k.useState)(.37),A=(0,k.useRef)(null),B=(0,k.useRef)(null),C=i?i?.totals?{period:a,totals:{requests:i.totals.requests??0,totalTokens:i.totals.totalTokens??0,promptTokens:i.totals.promptTokens??0,completionTokens:i.totals.completionTokens??0,cachedTokens:i.totals.cachedTokens??0,cost:i.totals.cost??0,avgCostPerRequest:i.totals.avgCostPerRequest??0,cacheHitRatio:i.totals.cacheHitRatio??0},highlights:{topModel:i.top?.models?.[0]?.label??null,topModelPct:i.top?.models?.[0]?.percentage??0,topProvider:i.top?.providers?.[0]?.label??null,topProviderPct:i.top?.providers?.[0]?.percentage??0,uniqueModels:i.top?.models?.length??0,uniqueProviders:i.top?.providers?.length??0},generatedAt:new Date().toISOString()}:null:null,E="auto"===c?function(a){if(!a)return"memeMode";let{totals:b,highlights:c}=a;return(c?.uniqueProviders??0)>=3?"providerCollector":(c?.uniqueModels??0)>=5?"modelHopper":(b?.totalTokens??0)>1e4?"tokenBeast":(b?.cost??0)>0?"costFlex":"memeMode"}(C):c,F=ev(e,E),G=(0,k.useCallback)(async a=>{B.current&&B.current.abort();let b=new AbortController;B.current=b,o(!0),q(null);try{let c=function(a){let b=new URLSearchParams({metric:"tokens",groupBy:"apiKey",seriesBy:"none"});if("today"===a){let a=new Date,c=new Date(a.getFullYear(),a.getMonth(),a.getDate());b.set("period","custom"),b.set("startDate",c.toISOString()),b.set("endDate",a.toISOString()),b.set("interval","hour")}else b.set("period",a);return b.toString()}(a),d=await fetch(`/api/usage/report?${c}`,{signal:b.signal});if(!d.ok){let a=await d.json().catch(()=>({}));throw Error(a.error||`HTTP ${d.status}`)}l(await d.json())}catch(a){"AbortError"!==a.name&&q(a.message)}finally{o(!1)}},[]),H=(0,k.useCallback)(async()=>{if(A.current&&!r){s(!0),u(!1);try{let b=await er(A.current,{width:1080,height:1080,pixelRatio:2,cacheBust:!0,skipFonts:!0}),c=document.createElement("a");c.download=`9router-flex-${a}.png`,c.href=b,c.click()}catch(a){console.error("[FlexReport] Export failed:",a),u(!0),setTimeout(()=>u(!1),3e3)}finally{s(!1)}}},[A,r,a]),I=(0,k.useCallback)(async()=>{if(!C)return;let b=function(a,b,c){let d=b?.totals??{},e=b?.highlights??{},f={today:"today","24h":"the last 24 hours","7d":"the last 7 days","30d":"the last 30 days",all:"all time"}[c]??c,g=a=>new Intl.NumberFormat().format(a||0),h=a=>(a||0).toFixed(2);switch(a){case"allStats":return`📊 My AI stats ${f}: ${g(d.totalTokens)} tokens \xb7 ~$${h(d.cost)} spent \xb7 ${e.uniqueModels??0} models \xb7 ${e.uniqueProviders??0} providers \xb7 ${g(d.requests)} requests total. Powered by n9router ⚡`;case"tokenBeast":return`🦁 Token Beast Mode — ${g(d.totalTokens)} tokens consumed ${f}! Top model: ${e.topModel??"unknown"}. Powered by n9router ⚡`;case"costFlex":return`💰 AI spend ${f}: ~$${h(d.cost)} across ${g(d.requests)} requests. Powered by n9router ⚡`;case"modelHopper":return`🔀 ${e.uniqueModels??0} different models ${f}! Favorite: ${e.topModel??"unknown"} (${e.topModelPct?.toFixed(0)??0}%). Powered by n9router ⚡`;case"providerCollector":return`🌐 Routing through ${e.uniqueProviders??0} AI providers ${f}! ${g(d.requests)} requests, ${g(d.totalTokens)} tokens. Powered by n9router ⚡`;default:return`🎪 ${g(d.requests)} AI requests fired into the void ${f}. Am I an AI power user yet? Powered by n9router ⚡`}}(E,C,a);try{await navigator.clipboard.writeText(b)}catch{let a=document.createElement("textarea");a.value=b,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.focus(),a.select();try{document.execCommand("copy")}catch{}document.body.removeChild(a)}w(!0),setTimeout(()=>w(!1),2e3)},[C,E,a]),J=(0,k.useCallback)(()=>{var a;let b,c,{flexType:g,style:h}=(a="auto"===e?ev("auto",E).__resolved:e,b=ew.filter(a=>a!==E),c=ex.filter(b=>b!==a),{flexType:b[Math.floor(Math.random()*b.length)],style:c[Math.floor(Math.random()*c.length)]});d(g),f(h)},[E,e]),K=!!C,L=!n&&!p&&C&&0===C.totals.requests&&0===C.totals.totalTokens;return(0,j.jsxs)(m.Zp,{className:"overflow-hidden",children:[(0,j.jsxs)("button",{onClick:()=>h(a=>!a),className:"w-full flex items-center justify-between px-4 py-3 border-b border-border bg-bg-subtle/50 hover:bg-bg-subtle/80 transition-colors cursor-pointer",children:[(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"auto_awesome"}),(0,j.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Usage Flex"}),(0,j.jsx)("span",{className:"text-xs text-text-muted",children:"Share your AI stats"})]}),(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[!g&&(0,j.jsxs)("span",{role:"button",onClick:a=>{a.stopPropagation(),J()},className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border border-border text-text-muted hover:text-text-main hover:border-text-muted transition-colors ${n?"opacity-40 pointer-events-none":""}`,children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"shuffle"}),"Surprise Me"]}),(0,j.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted transition-transform duration-200",style:{transform:g?"rotate(0deg)":"rotate(180deg)"},children:"expand_more"})]})]}),!g&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-4 py-3 border-b border-border",children:[(0,j.jsx)(D.default,{options:es,value:a,onChange:b,size:"sm"}),(0,j.jsx)(D.default,{options:et,value:c,onChange:d,size:"sm"}),(0,j.jsx)(D.default,{options:eu,value:e,onChange:f,size:"sm"})]}),(0,j.jsx)("div",{className:"p-4",children:n?(0,j.jsx)("div",{className:"flex flex-col gap-3",children:(0,j.jsx)(m.Qv,{className:"w-full aspect-square max-w-xs mx-auto h-auto",style:{aspectRatio:"1"}})}):p?(0,j.jsxs)(m.Zp,{className:"flex flex-col items-center gap-3 p-8 text-center max-w-xs mx-auto",children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-3xl text-text-muted",children:"error"}),(0,j.jsx)("p",{className:"text-text-muted text-sm",children:p}),(0,j.jsx)(m.$n,{size:"sm",icon:"refresh",onClick:()=>G(a),children:"Retry"})]}):(0,j.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,j.jsx)("div",{className:"flex justify-center",children:(0,j.jsx)("div",{ref:x,className:"relative w-full",style:{maxWidth:400,aspectRatio:"1",overflow:"hidden"},children:(0,j.jsx)("div",{style:{width:1080,height:1080,transform:`scale(${y})`,transformOrigin:"top left",position:"absolute",top:0,left:0},children:(0,j.jsx)(ey,{ref:A,flexData:C,flexType:E,themeConfig:F,period:a})})})}),(0,j.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[(0,j.jsxs)("button",{onClick:H,disabled:r||!K||L,className:`inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-all cursor-pointer
2
3
  ${t?"bg-red-500/10 border border-red-500/30 text-red-500":"bg-primary/10 border border-primary/30 text-primary hover:bg-primary/20"} disabled:opacity-40 disabled:cursor-not-allowed`,children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:r?"progress_activity":t?"error":"download"}),r?"Exporting…":t?"Export Failed":"Download PNG"]}),(0,j.jsxs)("button",{onClick:I,disabled:!K||L,className:`inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-all cursor-pointer
3
- ${v?"bg-green-500/10 border border-green-500/30 text-green-600 dark:text-green-400":"border border-border text-text-muted hover:text-text-main hover:border-text-muted"} disabled:opacity-40 disabled:cursor-not-allowed`,children:[(0,j.jsx)("span",{className:`material-symbols-outlined text-[16px] ${r?"animate-spin":""}`,children:v?"check_circle":"content_copy"}),v?"Copied!":"Copy Caption"]}),(0,j.jsx)("button",{onClick:()=>G(a),disabled:n,className:"inline-flex items-center gap-1.5 px-3 py-2 rounded-lg text-sm text-text-muted hover:text-text-main border border-transparent hover:border-border transition-all cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed",title:"Refresh data",children:(0,j.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"refresh"})})]}),L&&(0,j.jsx)("p",{className:"text-center text-xs text-text-muted",children:"No usage data for this period yet — start routing requests to see your flex!"})]})})]})]})}ey.displayName="UsageFlexCard",ey.propTypes={flexData:F().object,flexType:F().string.isRequired,themeConfig:F().object,period:F().string.isRequired};let eA=[{value:"today",label:"Today"},{value:"24h",label:"24H"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"60d",label:"60D"},{value:"all",label:"All"}],eB=[{value:"requests",label:"Requests"},{value:"tokens",label:"Tokens"},{value:"cost",label:"Cost"},{value:"cachedTokens",label:"Cached"}],eC=[{value:"all",label:"All"},{value:"apiKey",label:"API Key"},{value:"model",label:"Model"},{value:"provider",label:"Provider"}],eD=[{value:"day",label:"Day"},{value:"week",label:"Week"},{value:"month",label:"Month"}];function eE(){let a=(0,l.useRouter)(),b=(0,l.useSearchParams)(),[c,d]=(0,k.useState)(()=>b.get("r_period")||"7d"),[e,f]=(0,k.useState)(()=>b.get("r_metric")||"requests"),[g,h]=(0,k.useState)(()=>b.get("r_groupBy")||"all"),[i,n]=(0,k.useState)(()=>b.get("r_interval")||"day"),[o,p]=(0,k.useState)(()=>{let a=b.get("r_apiKeyIds");return a?a.split(","):[]}),[q,r]=(0,k.useState)([]),[s,t]=(0,k.useState)(null),[u,v]=(0,k.useState)(!0),[w,x]=(0,k.useState)(null),[y,z]=(0,k.useState)(!1),A=(0,k.useRef)(null),B=(0,k.useCallback)(c=>{let d=new URLSearchParams(b.toString());Object.entries(c).forEach(([a,b])=>{let c=`r_${a}`;null==b||""===b||Array.isArray(b)&&0===b.length?d.delete(c):d.set(c,Array.isArray(b)?b.join(","):String(b))}),a.push(`/dashboard/usage?${d.toString()}`,{scroll:!1})},[a,b]),C=(0,k.useCallback)(async(a,b=!1)=>{A.current&&A.current.abort();let c=new AbortController;A.current=c,b?z(!0):v(!0),x(null);try{let b,d=(b=new URLSearchParams,Object.entries(a).forEach(([a,c])=>{null==c||""===c||Array.isArray(c)&&0===c.length||b.set(a,Array.isArray(c)?c.join(","):String(c))}),b.toString()),e=await fetch(`/api/usage/report?${d}`,{signal:c.signal});if(!e.ok){let a=await e.json().catch(()=>({}));throw Error(a.error||`HTTP ${e.status}`)}t(await e.json())}catch(a){"AbortError"!==a.name&&x(a.message)}finally{v(!1),z(!1)}},[]);return((0,k.useEffect)(()=>{let a={metric:e,groupBy:"all"===g?"apiKey":g,seriesBy:"all"===g?"none":g,apiKeyIds:o};if("today"===c){let b=new Date,c=new Date(b.getFullYear(),b.getMonth(),b.getDate());a.period="custom",a.startDate=c.toISOString(),a.endDate=b.toISOString(),a.interval="hour"}else a.period=c,a.interval="24h"===c?"hour":i;C(a,null!==s)},[c,e,g,i,o.join(",")]),u)?(0,j.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,j.jsx)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-5 sm:gap-4",children:[void 0,void 0,void 0,void 0,void 0].map((a,b)=>(0,j.jsx)(m.Qv,{className:"h-[72px]"},b))}),(0,j.jsx)(m.Qv,{className:"h-[280px]"}),(0,j.jsx)(m.Qv,{className:"h-[240px]"})]}):w?(0,j.jsxs)(m.Zp,{className:"flex flex-col items-center gap-3 p-8 text-center",children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-3xl text-text-muted",children:"error"}),(0,j.jsx)("p",{className:"text-text-muted text-sm",children:w}),(0,j.jsx)(m.$n,{size:"sm",icon:"refresh",onClick:()=>C({period:c,metric:e,groupBy:g,apiKeyIds:o}),children:"Retry"})]}):(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,j.jsx)(ez,{}),(0,j.jsxs)("div",{className:"flex items-center gap-3 pt-2",children:[(0,j.jsx)("div",{className:"h-px flex-1 bg-border"}),(0,j.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider text-text-muted shrink-0",children:"Detailed API Key Report"}),(0,j.jsx)("div",{className:"h-px flex-1 bg-border"})]}),(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,j.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,j.jsx)(D.default,{options:eA,value:c,onChange:a=>{d(a),B({period:a,metric:e,groupBy:g,interval:i})},size:"sm"}),(0,j.jsx)(D.default,{options:eB,value:e,onChange:a=>{f(a),B({period:c,metric:a,groupBy:g,interval:i})},size:"sm"}),(0,j.jsx)(D.default,{options:eC,value:g,onChange:a=>{h(a),B({period:c,metric:e,groupBy:a,interval:i})},size:"sm"}),"today"!==c&&"24h"!==c&&(0,j.jsx)(D.default,{options:eD,value:i,onChange:a=>{n(a),B({period:c,metric:e,groupBy:g,interval:a})},size:"sm"}),y&&(0,j.jsxs)("span",{className:"flex items-center gap-1 text-xs text-text-muted",children:[(0,j.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Updating…"]})]}),q.length>0&&(0,j.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,j.jsx)("span",{className:"text-xs text-text-muted font-medium shrink-0",children:"Filter keys:"}),q.map(a=>{let b=o.includes(a.id);return(0,j.jsx)("button",{onClick:()=>{var b;let d;return b=a.id,void(p(d=o.includes(b)?o.filter(a=>a!==b):[...o,b]),B({period:c,metric:e,groupBy:g,interval:i,apiKeyIds:d}))},className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs border transition-colors ${b?"bg-primary/10 border-primary/40 text-primary":"border-border text-text-muted hover:text-text-main hover:border-text-muted"}`,children:a.name},a.id)}),o.length>0&&(0,j.jsx)("button",{onClick:()=>{p([]),B({period:c,metric:e,groupBy:g,interval:i,apiKeyIds:[]})},className:"text-xs text-text-muted hover:text-text-main transition-colors",children:"Clear"})]})]}),s?.range?.source==="dailySummary"&&("24h"===c||"today"===c)&&(0,j.jsx)("p",{className:"text-xs text-text-muted px-1",children:"⚠ Hourly data unavailable for this range — showing daily aggregates."}),(0,j.jsx)(I,{totals:s?.totals}),(0,j.jsx)(dz,{report:s,metric:e,seriesBy:"all"===g?"none":g,groupBy:g}),s?.insights?.length>0&&(0,j.jsx)("div",{className:"flex flex-wrap gap-2",children:s.insights.map((a,b)=>(0,j.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs border border-border bg-bg-subtle/50 text-text-muted",children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"cost-driver"===a.type?"trending_up":"cache-efficiency"===a.type?"memory":"insights"}),(0,j.jsx)("span",{className:"font-medium text-text-main",children:a.label}),a.text]},b))}),"all"!==g&&(0,j.jsx)(dE,{breakdown:s?.breakdown,groupBy:g})]})}function eF(){return(0,j.jsx)(k.Suspense,{fallback:(0,j.jsx)(m.Qv,{}),children:(0,j.jsx)(eH,{})})}let eG=["overview","details","report"];function eH(){var a;let b=(0,l.useSearchParams)(),c=(0,l.useRouter)(),d=(a=b.get("tab"),eG.includes(a)?a:"overview"),[e,f]=(0,k.useState)(d);return(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,j.jsx)(m.Iz,{options:[{value:"overview",label:"Overview"},{value:"details",label:"Details"},{value:"report",label:"Reports"}],value:e,onChange:a=>{if(a===e)return;f(a);let d=new URLSearchParams(b);d.set("tab",a),c.push(`/dashboard/usage?${d.toString()}`,{scroll:!1})},className:"w-full sm:w-auto"}),"overview"===e&&(0,j.jsx)(k.Suspense,{fallback:(0,j.jsx)(m.Qv,{}),children:(0,j.jsx)(m.jK,{})}),"details"===e&&(0,j.jsx)(C,{}),"report"===e&&(0,j.jsx)(eE,{})]})}},91645:a=>{"use strict";a.exports=require("net")},94542:(a,b)=>{"use strict";Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}),b.isPlainObject=function(a){if("object"!=typeof a||null==a)return!1;if(null===Object.getPrototypeOf(a))return!0;if("[object Object]"!==Object.prototype.toString.call(a)){let b=a[Symbol.toStringTag];return null!=b&&!!Object.getOwnPropertyDescriptor(a,Symbol.toStringTag)?.writable&&a.toString()===`[object ${b}]`}let b=a;for(;null!==Object.getPrototypeOf(b);)b=Object.getPrototypeOf(b);return Object.getPrototypeOf(a)===b}},94735:a=>{"use strict";a.exports=require("events")},96412:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(63747),o=c(24235),p=c(23938),q=c(261),r=c(66758),s=c(77243),t=c(26713),u=c(37527),v=c(22820),w=c(88216),x=c(47929),y=c(79551),z=c(71797),A=c(89125),B=c(86439),C=c(77068),D=c(27269),E=c(61287),F=c(81494),G=c(70722),H=c(70753),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["usage",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,87149)),"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/dashboard/usage/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,30508)),"/Users/cuongquach/projects/vibe/n9router/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,32059)),"/Users/cuongquach/projects/vibe/n9router/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/usage/page",pathname:"/dashboard/usage",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/usage/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(95726).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
4
- see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7502,8838,5296,63,7861,4250,9718,5681,8760,5627,6182,2506,3855,3646,412,4632],()=>b(b.s=96412));module.exports=c})();
4
+ ${v?"bg-green-500/10 border border-green-500/30 text-green-600 dark:text-green-400":"border border-border text-text-muted hover:text-text-main hover:border-text-muted"} disabled:opacity-40 disabled:cursor-not-allowed`,children:[(0,j.jsx)("span",{className:`material-symbols-outlined text-[16px] ${r?"animate-spin":""}`,children:v?"check_circle":"content_copy"}),v?"Copied!":"Copy Caption"]}),(0,j.jsx)("button",{onClick:()=>G(a),disabled:n,className:"inline-flex items-center gap-1.5 px-3 py-2 rounded-lg text-sm text-text-muted hover:text-text-main border border-transparent hover:border-border transition-all cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed",title:"Refresh data",children:(0,j.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"refresh"})})]}),L&&(0,j.jsx)("p",{className:"text-center text-xs text-text-muted",children:"No usage data for this period yet — start routing requests to see your flex!"})]})})]})]})}ey.displayName="UsageFlexCard",ey.propTypes={flexData:F().object,flexType:F().string.isRequired,themeConfig:F().object,period:F().string.isRequired};let eA=[{value:"today",label:"Today"},{value:"24h",label:"24H"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"60d",label:"60D"},{value:"all",label:"All"}],eB=[{value:"requests",label:"Requests"},{value:"tokens",label:"Tokens"},{value:"cost",label:"Cost"},{value:"cachedTokens",label:"Cached"}],eC=[{value:"all",label:"All"},{value:"apiKey",label:"API Key"},{value:"model",label:"Model"},{value:"provider",label:"Provider"}],eD=[{value:"day",label:"Day"},{value:"week",label:"Week"},{value:"month",label:"Month"}];function eE(){let a=(0,l.useRouter)(),b=(0,l.useSearchParams)(),[c,d]=(0,k.useState)(()=>b.get("r_period")||"7d"),[e,f]=(0,k.useState)(()=>b.get("r_metric")||"requests"),[g,h]=(0,k.useState)(()=>b.get("r_groupBy")||"all"),[i,n]=(0,k.useState)(()=>b.get("r_interval")||"day"),[o,p]=(0,k.useState)(()=>{let a=b.get("r_apiKeyIds");return a?a.split(","):[]}),[q,r]=(0,k.useState)([]),[s,t]=(0,k.useState)(null),[u,v]=(0,k.useState)(!0),[w,x]=(0,k.useState)(null),[y,z]=(0,k.useState)(!1),A=(0,k.useRef)(null),B=(0,k.useCallback)(c=>{let d=new URLSearchParams(b.toString());Object.entries(c).forEach(([a,b])=>{let c=`r_${a}`;null==b||""===b||Array.isArray(b)&&0===b.length?d.delete(c):d.set(c,Array.isArray(b)?b.join(","):String(b))}),a.push(`/dashboard/usage?${d.toString()}`,{scroll:!1})},[a,b]),C=(0,k.useCallback)(async(a,b=!1)=>{A.current&&A.current.abort();let c=new AbortController;A.current=c,b?z(!0):v(!0),x(null);try{let b,d=(b=new URLSearchParams,Object.entries(a).forEach(([a,c])=>{null==c||""===c||Array.isArray(c)&&0===c.length||b.set(a,Array.isArray(c)?c.join(","):String(c))}),b.toString()),e=await fetch(`/api/usage/report?${d}`,{signal:c.signal});if(!e.ok){let a=await e.json().catch(()=>({}));throw Error(a.error||`HTTP ${e.status}`)}t(await e.json())}catch(a){"AbortError"!==a.name&&x(a.message)}finally{v(!1),z(!1)}},[]);return((0,k.useEffect)(()=>{let a={metric:e,groupBy:"all"===g?"apiKey":g,seriesBy:"all"===g?"none":g,apiKeyIds:o};if("today"===c){let b=new Date,c=new Date(b.getFullYear(),b.getMonth(),b.getDate());a.period="custom",a.startDate=c.toISOString(),a.endDate=b.toISOString(),a.interval="hour"}else a.period=c,a.interval="24h"===c?"hour":i;C(a,null!==s)},[c,e,g,i,o.join(",")]),u)?(0,j.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,j.jsx)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-5 sm:gap-4",children:[void 0,void 0,void 0,void 0,void 0].map((a,b)=>(0,j.jsx)(m.Qv,{className:"h-[72px]"},b))}),(0,j.jsx)(m.Qv,{className:"h-[280px]"}),(0,j.jsx)(m.Qv,{className:"h-[240px]"})]}):w?(0,j.jsxs)(m.Zp,{className:"flex flex-col items-center gap-3 p-8 text-center",children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-3xl text-text-muted",children:"error"}),(0,j.jsx)("p",{className:"text-text-muted text-sm",children:w}),(0,j.jsx)(m.$n,{size:"sm",icon:"refresh",onClick:()=>C({period:c,metric:e,groupBy:g,apiKeyIds:o}),children:"Retry"})]}):(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,j.jsx)(ez,{}),(0,j.jsxs)("div",{className:"flex items-center gap-3 pt-2",children:[(0,j.jsx)("div",{className:"h-px flex-1 bg-border"}),(0,j.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider text-text-muted shrink-0",children:"Detailed API Key Report"}),(0,j.jsx)("div",{className:"h-px flex-1 bg-border"})]}),(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,j.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,j.jsx)(D.default,{options:eA,value:c,onChange:a=>{d(a),B({period:a,metric:e,groupBy:g,interval:i})},size:"sm"}),(0,j.jsx)(D.default,{options:eB,value:e,onChange:a=>{f(a),B({period:c,metric:a,groupBy:g,interval:i})},size:"sm"}),(0,j.jsx)(D.default,{options:eC,value:g,onChange:a=>{h(a),B({period:c,metric:e,groupBy:a,interval:i})},size:"sm"}),"today"!==c&&"24h"!==c&&(0,j.jsx)(D.default,{options:eD,value:i,onChange:a=>{n(a),B({period:c,metric:e,groupBy:g,interval:a})},size:"sm"}),y&&(0,j.jsxs)("span",{className:"flex items-center gap-1 text-xs text-text-muted",children:[(0,j.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Updating…"]})]}),q.length>0&&(0,j.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,j.jsx)("span",{className:"text-xs text-text-muted font-medium shrink-0",children:"Filter keys:"}),q.map(a=>{let b=o.includes(a.id);return(0,j.jsx)("button",{onClick:()=>{var b;let d;return b=a.id,void(p(d=o.includes(b)?o.filter(a=>a!==b):[...o,b]),B({period:c,metric:e,groupBy:g,interval:i,apiKeyIds:d}))},className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs border transition-colors ${b?"bg-primary/10 border-primary/40 text-primary":"border-border text-text-muted hover:text-text-main hover:border-text-muted"}`,children:a.name},a.id)}),o.length>0&&(0,j.jsx)("button",{onClick:()=>{p([]),B({period:c,metric:e,groupBy:g,interval:i,apiKeyIds:[]})},className:"text-xs text-text-muted hover:text-text-main transition-colors",children:"Clear"})]})]}),s?.range?.source==="dailySummary"&&("24h"===c||"today"===c)&&(0,j.jsx)("p",{className:"text-xs text-text-muted px-1",children:"⚠ Hourly data unavailable for this range — showing daily aggregates."}),(0,j.jsx)(I,{totals:s?.totals}),(0,j.jsx)(dz,{report:s,metric:e,seriesBy:"all"===g?"none":g,groupBy:g}),s?.insights?.length>0&&(0,j.jsx)("div",{className:"flex flex-wrap gap-2",children:s.insights.map((a,b)=>(0,j.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs border border-border bg-bg-subtle/50 text-text-muted",children:[(0,j.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"cost-driver"===a.type?"trending_up":"cache-efficiency"===a.type?"memory":"insights"}),(0,j.jsx)("span",{className:"font-medium text-text-main",children:a.label}),a.text]},b))}),"all"!==g&&(0,j.jsx)(dE,{breakdown:s?.breakdown,groupBy:g})]})}function eF(){return(0,j.jsx)(k.Suspense,{fallback:(0,j.jsx)(m.Qv,{}),children:(0,j.jsx)(eH,{})})}let eG=["overview","details","logs","report"];function eH(){var a;let b=(0,l.useSearchParams)(),c=(0,l.useRouter)(),d=(a=b.get("tab"),eG.includes(a)?a:"overview"),[e,f]=(0,k.useState)(d);return(0,j.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,j.jsx)(m.Iz,{options:[{value:"overview",label:"Overview"},{value:"details",label:"Details"},{value:"logs",label:"Logs"},{value:"report",label:"Reports"}],value:e,onChange:a=>{if(a===e)return;f(a);let d=new URLSearchParams(b);d.set("tab",a),c.push(`/dashboard/usage?${d.toString()}`,{scroll:!1})},className:"w-full sm:w-auto"}),"overview"===e&&(0,j.jsx)(k.Suspense,{fallback:(0,j.jsx)(m.Qv,{}),children:(0,j.jsx)(m.jK,{})}),"details"===e&&(0,j.jsx)(C,{}),"logs"===e&&(0,j.jsx)(m.gM,{}),"report"===e&&(0,j.jsx)(eE,{})]})}},91645:a=>{"use strict";a.exports=require("net")},94542:(a,b)=>{"use strict";Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}),b.isPlainObject=function(a){if("object"!=typeof a||null==a)return!1;if(null===Object.getPrototypeOf(a))return!0;if("[object Object]"!==Object.prototype.toString.call(a)){let b=a[Symbol.toStringTag];return null!=b&&!!Object.getOwnPropertyDescriptor(a,Symbol.toStringTag)?.writable&&a.toString()===`[object ${b}]`}let b=a;for(;null!==Object.getPrototypeOf(b);)b=Object.getPrototypeOf(b);return Object.getPrototypeOf(a)===b}},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7502,365,63,5221,4250,9718,5681,4404,4389,6182,6457,6251,412,1498],()=>b(b.s=25039));module.exports=c})();