9router-imagefix 0.5.124 → 0.5.126

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 (471) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +11 -11
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +24 -24
  5. package/app/.next-cli-build/react-loadable-manifest.json +20 -0
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  85. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  88. package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
  89. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
  90. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  91. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  92. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/automation/connections/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/automation/device/poll/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/automation/device/start/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/automation/export/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/automation/gate/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/automation/generate-txt/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/automation/import-lines/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/automation/jobs/[id]/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/automation/jobs/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/automation/overview/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/automation/providers/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/automation/run/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/automation/test-prompt/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  163. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  165. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/usage/backup/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  272. package/app/.next-cli-build/server/app/callback.html +1 -1
  273. package/app/.next-cli-build/server/app/callback.rsc +5 -5
  274. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
  275. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  276. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
  277. package/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  278. package/app/.next-cli-build/server/app/dashboard/automation.rsc +7 -7
  279. package/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +7 -7
  280. package/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +7 -7
  281. package/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
  282. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  283. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
  284. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
  285. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  286. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  287. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  288. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
  289. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +7 -7
  290. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  291. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  292. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  293. package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
  294. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +7 -7
  295. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  296. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  297. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  298. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
  299. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
  300. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  301. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  302. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  303. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
  304. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +7 -7
  305. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
  306. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  307. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  308. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
  309. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +7 -7
  310. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
  311. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  312. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  313. package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
  314. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +7 -7
  315. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
  316. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  317. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  318. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
  319. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
  320. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  321. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  322. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  323. package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
  324. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +7 -7
  325. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  326. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  327. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  328. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
  329. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +7 -7
  330. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
  331. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  332. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  333. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +7 -7
  334. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +7 -7
  335. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +7 -7
  336. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  337. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  338. package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
  339. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
  340. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
  341. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  342. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  343. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  345. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  346. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
  347. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  348. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  349. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
  350. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  351. package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
  352. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +7 -7
  353. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
  354. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  355. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  356. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
  357. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
  358. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
  359. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  360. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
  362. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
  363. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  364. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  365. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  366. package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
  367. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +7 -7
  368. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  369. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  370. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  371. package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
  372. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
  373. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
  374. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  375. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/index.html +1 -1
  377. package/app/.next-cli-build/server/app/index.rsc +5 -5
  378. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  379. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
  380. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  381. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  383. package/app/.next-cli-build/server/app/landing.html +1 -1
  384. package/app/.next-cli-build/server/app/landing.rsc +5 -5
  385. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  386. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  387. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
  388. package/app/.next-cli-build/server/app/login/page.js +1 -1
  389. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  391. package/app/.next-cli-build/server/app/login.html +1 -1
  392. package/app/.next-cli-build/server/app/login.rsc +6 -6
  393. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
  394. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  395. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  396. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  397. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  399. package/app/.next-cli-build/server/app-paths-manifest.json +11 -11
  400. package/app/.next-cli-build/server/chunks/339.js +1 -0
  401. package/app/.next-cli-build/server/chunks/3413.js +73 -0
  402. package/app/.next-cli-build/server/chunks/4037.js +1 -1
  403. package/app/.next-cli-build/server/chunks/412.js +2 -2
  404. package/app/.next-cli-build/server/chunks/576.js +1 -1
  405. package/app/.next-cli-build/server/chunks/650.js +1 -0
  406. package/app/.next-cli-build/server/chunks/6777.js +1 -1
  407. package/app/.next-cli-build/server/chunks/7232.js +1 -0
  408. package/app/.next-cli-build/server/chunks/827.js +1 -1
  409. package/app/.next-cli-build/server/chunks/8283.js +1 -1
  410. package/app/.next-cli-build/server/chunks/8476.js +1 -1
  411. package/app/.next-cli-build/server/chunks/869.js +1 -1
  412. package/app/.next-cli-build/server/chunks/8847.js +1 -1
  413. package/app/.next-cli-build/server/chunks/8908.js +1 -1
  414. package/app/.next-cli-build/server/chunks/929.js +1 -1
  415. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  417. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  418. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  419. package/app/.next-cli-build/server/pages/404.html +1 -1
  420. package/app/.next-cli-build/server/pages/500.html +1 -1
  421. package/app/.next-cli-build/static/chunks/{1321-7a80b24a0b41f0ce.js → 1321-f90da046ea8c8f25.js} +1 -1
  422. package/app/.next-cli-build/static/chunks/3018.dfc345853f53b6a1.js +1 -0
  423. package/app/.next-cli-build/static/chunks/5497-114d68d16f2b3cb5.js +7 -0
  424. package/app/.next-cli-build/static/chunks/5911.897e7955e4f2a7e6.js +1 -0
  425. package/app/.next-cli-build/static/chunks/6229-b9c3a928e1f38d7a.js +73 -0
  426. package/app/.next-cli-build/static/chunks/{705-10f93cd2550e6494.js → 705-e5deaf85454488c1.js} +1 -1
  427. package/app/.next-cli-build/static/chunks/9970-57b399ea3df03e21.js +1 -0
  428. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/automation/{page-f10bdf2c011bbceb.js → page-358a645a3e80390d.js} +1 -1
  429. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-952a216443c95c65.js → page-c7e6cd1282285c25.js} +1 -1
  430. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-72a9f67b69206f69.js → page-c9187638f1f971ee.js} +1 -1
  431. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-7b5574f17c27344f.js → page-63327b48dc6dc30e.js} +1 -1
  432. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/{page-7863f7b784159c66.js → page-738c30ed7b6d5836.js} +1 -1
  433. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-ee536629c232f422.js → page-2ad9a3a65f6470cc.js} +1 -1
  434. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-6e573950afdf2da8.js +1 -0
  435. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-e9225655eae20066.js → page-f10874f959b0dc6c.js} +1 -1
  436. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-644a21bf0f2b820c.js → page-fe857660cf8db52b.js} +1 -1
  437. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-e69ab3a2db54cade.js → page-dc1dadcaa1f4ff25.js} +1 -1
  438. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-d8244eacb5e94230.js → page-6cc7ad37de0bfae7.js} +1 -1
  439. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-ff959c1f820a7702.js → page-6b3392cad6b1dbbb.js} +1 -1
  440. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-c141409b9983c7fe.js +1 -0
  441. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-eddeb435b0d89d18.js → page-5ae46410a30120c1.js} +1 -1
  442. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-b97d8aaecfcc596d.js → page-f634c86b15daa01c.js} +1 -1
  443. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-33e5bcea0429cc36.js → page-d1d3f245bde3ac94.js} +1 -1
  444. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-dc9fd24746bf6a65.js → page-e6b8d59c1324fea9.js} +1 -1
  445. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-c224eef08912a477.js → page-456393864a30af1a.js} +1 -1
  446. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-d5d65eef99513d2a.js → page-4a0e9f15433e0df8.js} +1 -1
  447. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/{page-846d3b083174ef72.js → page-b67399cc6255d9a0.js} +1 -1
  448. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-d3366bb6b4da3d4d.js → page-0e34109dee7a3f36.js} +1 -1
  449. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-dae7d3332436351b.js → page-5f35d2f069bb1d23.js} +1 -1
  450. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-160af15c2d6f5bd5.js → page-299b7b8e9b473c12.js} +1 -1
  451. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-dc6162303896bf98.js +1 -0
  452. package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-6c6cf3e8d999f6a5.js → layout-95de0c0fed01c6c6.js} +1 -1
  453. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/{page-549fd30d7ddffd3a.js → page-c0280a69ffe88bbb.js} +1 -1
  454. package/app/.next-cli-build/static/chunks/app/login/{page-3bd598b6014d0a2e.js → page-da3ee62e931461f7.js} +1 -1
  455. package/app/.next-cli-build/static/chunks/c15bf2b0.4c82aff2c0532eb2.js +1 -0
  456. package/app/.next-cli-build/static/chunks/webpack-65f827b545613a93.js +1 -0
  457. package/app/.next-cli-build/static/css/12100458fc606e14.css +1 -0
  458. package/app/cli/.build-home/AppData/Roaming/9router/db/data.sqlite-shm +0 -0
  459. package/app/cli/.build-home/AppData/Roaming/9router/db/data.sqlite-wal +0 -0
  460. package/app/package.json +5 -1
  461. package/package.json +1 -1
  462. package/app/.next-cli-build/server/chunks/8000.js +0 -65
  463. package/app/.next-cli-build/static/chunks/27-493bf929e950ea96.js +0 -65
  464. package/app/.next-cli-build/static/chunks/5497-fc754be8c58355a1.js +0 -7
  465. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-cc4a82c68e9b71e9.js +0 -1
  466. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-b0a63c567343d8ec.js +0 -1
  467. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-8acb603d3d4e79c4.js +0 -1
  468. package/app/.next-cli-build/static/chunks/webpack-5864a88c3a3d412a.js +0 -1
  469. package/app/.next-cli-build/static/css/72e25e596a8578e1.css +0 -1
  470. /package/app/.next-cli-build/static/{drJTF6qEl-hgWPr2ZBRJY → 4jZi0jzKUhgd0fHcLjRSF}/_buildManifest.js +0 -0
  471. /package/app/.next-cli-build/static/{drJTF6qEl-hgWPr2ZBRJY → 4jZi0jzKUhgd0fHcLjRSF}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2825],{49501:(e,t,s)=>{Promise.resolve().then(s.bind(s,59099))},59099:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>ei});var a=s(95155),n=s(12115),r=s(73321),l=s(35497),i=s(84588),o=s(92542),d=s(31474);function c({isOpen:e,onClose:t,title:s,children:r,width:l="md",className:i}){let o={sm:"w-[400px]",md:"w-[500px]",lg:"w-[600px]",xl:"w-[800px]",full:"w-full"};return((0,n.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,n.useEffect)(()=>{let s=s=>{"Escape"===s.key&&e&&t()};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[e,t]),e)?(0,a.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in cursor-pointer",onClick:t,"aria-hidden":"true"}),(0,a.jsxs)("div",{className:(0,d.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",o[l]||o.md,i),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-border-subtle flex-shrink-0",children:[(0,a.jsx)("div",{className:"flex items-center gap-3",children:s&&(0,a.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:s})}),(0,a.jsx)("button",{type:"button",onClick:t,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,a.jsx)("div",{className:"flex-1 overflow-y-auto p-6 custom-scrollbar",children:r})]})]}):null}function u({currentPage:e,pageSize:t,totalItems:s,onPageChange:n,onPageSizeChange:r,className:l}){let i=Math.ceil(s/t),c=s>0?(e-1)*t+1:0,x=Math.min(e*t,s),m=(()=>{let t=[],s=Math.max(1,e-2),a=Math.min(i,s+5-1);a-s+1<5&&(s=Math.max(1,a-5+1));for(let e=s;e<=a;e++)t.push(e);return t})();return(0,a.jsxs)("div",{className:(0,d.cn)("flex flex-col sm:flex-row items-center justify-between gap-4 py-4 px-2",l),children:[s>0&&(0,a.jsxs)("div",{className:"text-sm text-text-muted",children:["Showing ",(0,a.jsx)("span",{className:"font-medium text-text-main",children:c})," to"," ",(0,a.jsx)("span",{className:"font-medium text-text-main",children:x})," of"," ",(0,a.jsx)("span",{className:"font-medium text-text-main",children:s})," results"]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2 sm:gap-4",children:[r&&(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-sm text-text-muted",children:"Rows:"}),(0,a.jsx)("select",{value:t,onChange:e=>r(Number(e.target.value)),className:(0,d.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(e=>(0,a.jsx)("option",{value:e,children:e},e))})]}),i>1&&(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(o.default,{variant:"outline",size:"sm",onClick:()=>n(e-1),disabled:1===e,className:"w-9 px-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_left"})}),m[0]>1&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.default,{variant:"ghost",size:"sm",onClick:()=>n(1),className:"w-9 px-0 hidden sm:inline-flex",children:"1"}),m[0]>2&&(0,a.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."})]}),m.map(t=>(0,a.jsx)(o.default,{variant:e===t?"primary":"ghost",size:"sm",onClick:()=>n(t),className:(0,d.cn)("w-9 px-0",e===t?"inline-flex":"hidden sm:inline-flex"),children:t},t)),m[m.length-1]<i&&(0,a.jsxs)(a.Fragment,{children:[m[m.length-1]<i-1&&(0,a.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."}),(0,a.jsx)(o.default,{variant:"ghost",size:"sm",onClick:()=>n(i),className:"w-9 px-0 hidden sm:inline-flex",children:i})]}),(0,a.jsx)(o.default,{variant:"outline",size:"sm",onClick:()=>n(e+1),disabled:e===i,className:"w-9 px-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_right"})})]})]})]})}var x=s(88105);let m=null,p=null;async function h(){if(m&&p)return{providerNameCache:m,providerNodesCache:p};let e=await fetch("/api/provider-nodes"),t=(await e.json()).nodes||[];for(let e of(p={},t))p[e.id]=e.name;return{providerNameCache:m={...x.Q2,...p},providerNodesCache:p}}function b(e,t){if(!e||!t)return e;let s=t[e];if("string"==typeof s)return s;if(s?.name)return s.name;let a=(0,x.zt)(e)||x.Q2[e];return a?.name||e}function f({title:e,children:t,defaultOpen:s=!1,icon:r=null}){let[l,i]=(0,n.useState)(s);return(0,a.jsxs)("div",{className:"border border-black/5 dark:border-white/5 rounded-lg overflow-hidden",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>i(!l),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,a.jsxs)("div",{className:"flex items-center gap-2",children:[r&&(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted",children:r}),(0,a.jsx)("span",{className:"font-semibold text-sm text-text-main",children:e})]}),(0,a.jsx)("span",{className:(0,d.cn)("material-symbols-outlined text-[20px] text-text-muted transition-transform duration-200",l?"rotate-90":""),children:"chevron_right"})]}),l&&(0,a.jsx)("div",{className:"p-4 border-t border-black/5 dark:border-white/5",children:t})]})}function g(e){return e?.cached_tokens||e?.cache_read_input_tokens||0}function v(e){return e?.cache_creation_input_tokens||0}function j(e){let t=e?.prompt_tokens||e?.input_tokens||0,s=g(e);return t<s?s:t}function N(){let[e,t]=(0,n.useState)([]),[s,r]=(0,n.useState)({page:1,pageSize:20,totalItems:0,totalPages:0}),[l,x]=(0,n.useState)(!1),[m,p]=(0,n.useState)(null),[N,y]=(0,n.useState)(!1),[k,w]=(0,n.useState)([]),[C,S]=(0,n.useState)(null),[$,q]=(0,n.useState)({provider:"",startDate:"",endDate:""}),M=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/usage/providers"),t=await e.json();w(t.providers||[]);let s=await h();S(s.providerNameCache)}catch(e){console.error("Failed to fetch providers:",e)}},[]),R=(0,n.useCallback)(async()=>{x(!0);try{let e=new URLSearchParams({page:s.page.toString(),pageSize:s.pageSize.toString()});$.provider&&e.append("provider",$.provider),$.startDate&&e.append("startDate",$.startDate),$.endDate&&e.append("endDate",$.endDate);let a=await fetch(`/api/usage/request-details?${e}`),n=await a.json();t(n.details||[]),r(e=>({...e,...n.pagination}))}catch(e){console.error("Failed to fetch request details:",e)}finally{x(!1)}},[s.page,s.pageSize,$]);return(0,n.useEffect)(()=>{M()},[M]),(0,n.useEffect)(()=>{R()},[R]),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,a.jsx)(i.default,{padding:"md",children:(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("label",{htmlFor:"provider-filter",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,a.jsxs)("select",{id:"provider-filter",value:$.provider,onChange:e=>q({...$,provider:e.target.value}),className:(0,d.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,a.jsx)("option",{value:"",children:"All Providers"}),k.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("label",{htmlFor:"start-date-filter",className:"text-sm font-medium text-text-main",children:"Start Date"}),(0,a.jsx)("input",{id:"start-date-filter",type:"datetime-local",value:$.startDate,onChange:e=>q({...$,startDate:e.target.value}),className:(0,d.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,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("label",{htmlFor:"end-date-filter",className:"text-sm font-medium text-text-main",children:"End Date"}),(0,a.jsx)("input",{id:"end-date-filter",type:"datetime-local",value:$.endDate,onChange:e=>q({...$,endDate:e.target.value}),className:(0,d.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,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2 sm:col-span-2 lg:col-span-1",children:[(0,a.jsx)("span",{className:"hidden text-sm font-medium text-text-main opacity-0 lg:block","aria-hidden":"true",children:"Clear"}),(0,a.jsx)(o.default,{variant:"ghost",onClick:()=>{q({provider:"",startDate:"",endDate:""})},disabled:!$.provider&&!$.startDate&&!$.endDate,className:"w-full",children:"Clear Filters"})]})]})}),(0,a.jsxs)(i.default,{padding:"none",children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full min-w-[880px]",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5",children:[(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Timestamp"}),(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Model"}),(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Provider"}),(0,a.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Input Tokens"}),(0,a.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Cached"}),(0,a.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Cache Creation"}),(0,a.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Output Tokens"}),(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Latency"}),(0,a.jsx)("th",{className:"text-center p-4 text-sm font-semibold text-text-main",children:"Action"})]})}),(0,a.jsx)("tbody",{children:l?(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:"7",className:"p-8 text-center text-text-muted",children:(0,a.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px]",children:"progress_activity"}),"Loading..."]})})}):0===e.length?(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:"7",className:"p-8 text-center text-text-muted",children:"No request details found"})}):e.map((e,t)=>(0,a.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,a.jsx)("td",{className:"whitespace-nowrap p-4 text-sm text-text-main",children:new Date(e.timestamp).toLocaleString()}),(0,a.jsx)("td",{className:"max-w-[260px] truncate p-4 font-mono text-sm text-text-main",children:e.model}),(0,a.jsx)("td",{className:"max-w-[180px] truncate p-4 text-sm text-text-main",children:(0,a.jsx)("span",{className:"font-medium",children:b(e.provider,C)})}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:j(e.tokens).toLocaleString()}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:g(e.tokens)>0?g(e.tokens).toLocaleString():"—"}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:v(e.tokens)>0?v(e.tokens).toLocaleString():"—"}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:e.tokens?.completion_tokens?.toLocaleString()||0}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-muted",children:(0,a.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,a.jsxs)("div",{children:["TTFT: ",(0,a.jsxs)("span",{className:"font-mono",children:[e.latency?.ttft||0,"ms"]})]}),(0,a.jsxs)("div",{children:["Total: ",(0,a.jsxs)("span",{className:"font-mono",children:[e.latency?.total||0,"ms"]})]})]})}),(0,a.jsx)("td",{className:"p-4 text-center",children:(0,a.jsx)(o.default,{variant:"outline",size:"sm",onClick:()=>{p(e),y(!0)},children:"Detail"})})]},`${e.id}-${t}`))})]})}),!l&&e.length>0&&(0,a.jsx)("div",{className:"border-t border-black/5 dark:border-white/5",children:(0,a.jsx)(u,{currentPage:s.page,pageSize:s.pageSize,totalItems:s.totalItems,onPageChange:e=>{r(t=>({...t,page:e}))},onPageSizeChange:e=>{r(t=>({...t,pageSize:e,page:1}))}})})]}),(0,a.jsx)(c,{isOpen:N,onClose:()=>y(!1),title:"Request Details",width:"lg",children:m&&(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-4 text-sm sm:grid-cols-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"ID:"})," ",(0,a.jsx)("span",{className:"break-all font-mono text-text-main",children:m.id})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Timestamp:"})," ",(0,a.jsx)("span",{className:"text-text-main",children:new Date(m.timestamp).toLocaleString()})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Provider:"})," ",(0,a.jsx)("span",{className:"text-text-main font-medium",children:b(m.provider,C)})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Model:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:m.model})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Status:"})," ",(0,a.jsx)("span",{className:(0,d.cn)("font-medium","success"===m.status?"text-green-600":"text-red-600"),children:m.status})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Latency:"})," ",(0,a.jsxs)("span",{className:"text-text-main font-mono",children:["TTFT ",m.latency?.ttft||0,"ms / Total ",m.latency?.total||0,"ms"]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Input Tokens:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:j(m.tokens).toLocaleString()})]}),g(m.tokens)>0&&(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Cached Tokens:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:g(m.tokens).toLocaleString()})]}),v(m.tokens)>0&&(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Cache Creation:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:v(m.tokens).toLocaleString()})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Output Tokens:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:m.tokens?.completion_tokens?.toLocaleString()||0})]})]}),m.pxpipe&&(0,a.jsxs)("div",{className:"rounded-lg border border-black/5 dark:border-white/5 p-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted",children:"image"}),(0,a.jsx)("span",{className:"font-semibold text-sm text-text-main",children:"PXPIPE"}),(0,a.jsx)("span",{className:(0,d.cn)("text-xs px-2 py-0.5 rounded",m.pxpipe.applied?"bg-green-500/15 text-green-600":"bg-amber-500/15 text-amber-600"),children:m.pxpipe.applied?"Activated":"Skipped"})]}),m.pxpipe.applied?(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-2 text-sm sm:grid-cols-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted block text-xs",children:"Original (est.)"}),(0,a.jsxs)("span",{className:"font-mono",children:[(m.pxpipe.tokensBeforeEst||0).toLocaleString()," tokens"]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted block text-xs",children:"Compressed (est.)"}),(0,a.jsxs)("span",{className:"font-mono",children:[(m.pxpipe.tokensAfterEst||0).toLocaleString()," tokens"]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted block text-xs",children:"Saved"}),(0,a.jsxs)("span",{className:"font-mono text-green-600",children:[m.pxpipe.savedPct||0,"%"]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted block text-xs",children:"Images"}),(0,a.jsxs)("span",{className:"font-mono",children:[m.pxpipe.imageCount||0," (",m.pxpipe.durationMs||0,"ms)"]})]})]}):(0,a.jsxs)("p",{className:"text-sm text-text-muted",children:["Reason: ",(0,a.jsx)("span",{className:"font-mono",children:m.pxpipe.reason}),m.pxpipe.detail?` — ${m.pxpipe.detail}`:""]})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)(f,{title:"1. Client Request (Input)",defaultOpen:!0,icon:"input",children:(0,a.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(m.request,null,2)})}),m.providerRequest&&(0,a.jsx)(f,{title:"2. Provider Request (Translated)",icon:"translate",children:(0,a.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(m.providerRequest,null,2)})}),m.providerResponse&&(0,a.jsx)(f,{title:"3. Provider Response (Raw)",icon:"data_object",children:(0,a.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 m.providerResponse?JSON.stringify(m.providerResponse,null,2):m.providerResponse})}),(0,a.jsxs)(f,{title:"4. Client Response (Final)",defaultOpen:!0,icon:"output",children:[m.response?.thinking&&(0,a.jsxs)("div",{className:"mb-4",children:[(0,a.jsxs)("h4",{className:"font-semibold text-text-main mb-2 flex items-center gap-2 text-xs uppercase tracking-wide opacity-70",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"psychology"}),"Thinking Process"]}),(0,a.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:m.response.thinking})]}),(0,a.jsx)("h4",{className:"font-semibold text-text-main mb-2 text-xs uppercase tracking-wide opacity-70",children:"Content"}),(0,a.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:m.response?.content||"[No content]"})]})]})]})})]})}function y(e){let t=Number(e)||0;return t<1e3?String(t):t<1e6?`${(t/1e3).toFixed(+(t<1e4))}K`:t<1e9?`${(t/1e6).toFixed(1)}M`:`${(t/1e9).toFixed(1)}B`}function k(e){let t=Number(e)||0;return 0===t?"$0":t<.01?`$${t.toFixed(4)}`:`$${t.toFixed(2)}`}function w(e){return(Number(e)||0).toLocaleString("en-US")}function C(e){return w(e)}function S(e,t){return"tokens"===t?e.tokens:e.cost}let $=[{id:"costs",label:"Cost",ranksBy:"cost"},{id:"tokens",label:"Tokens",ranksBy:"tokens"},{id:"both",label:"Cost + Tokens",ranksBy:"cost"}];function q(e){if(!e)return"";let t="number"==typeof e?e:Date.parse(e);if(!Number.isFinite(t))return"";let s=Math.floor((Date.now()-t)/6e4);if(s<1)return"less than a minute ago";if(s<60)return`${s} minute${1===s?"":"s"} ago`;let a=Math.floor(s/60);if(a<24)return`${a} hour${1===a?"":"s"} ago`;let n=Math.floor(a/24);return`${n} day${1===n?"":"s"} ago`}function M(e){if(!e)return"";let t="number"==typeof e?e:Date.parse(e);return Number.isFinite(t)?new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function R(e,t){let s=Number(e)||0,a=Number(t)||0;return a<=0?null:s/a*100}function T(e){return null!=e&&Number.isFinite(e)?e>0&&e<.1?"<0.1%":`${e.toFixed(e>=10?0:1)}%`:"—"}function F({input:e=0,output:t=0,cached:s=0,total:a=0}){let n=[`${w(e)} input`];return s>0&&n.push(`of which ${w(s)} cached`),n.push(`${w(t)} output`),`${w(a)} tokens — ${n.join(", ")}`}let P={today:"today","24h":"last 24 hours","7d":"last 7 days","30d":"last 30 days","60d":"last 60 days",all:"all time"};function E({rows:e,mode:t="costs",colorOf:s,onPick:r=null,top:l=8}){let[i,o]=(0,n.useState)(null),[d,c]=(0,n.useState)(!1),u=(0,n.useId)(),x=e=>"tokens"===t?e.tokens:e.cost,m=(0,n.useMemo)(()=>{let t=[...e||[]].sort((e,t)=>x(t)-x(e)),s=d?t.length:l,a=t.slice(0,s),n=t.slice(s),r=t.reduce((e,t)=>e+(x(t)||0),0),i=a.reduce((e,t)=>e+(x(t)||0),0);return{total:r,shown:a,restCount:n.length,restValue:r-i,restPct:R(r-i,r)}},[e,t,l,d]);if(!m.total)return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("p",{className:"text-xs font-medium text-text-main",children:"Provider"}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Belum ada pemakaian pada periode ini, jadi tidak ada yang bisa dibandingkan."})]});let p=[],h=-90;for(let e of m.shown){let t=(x(e)||0)/m.total*360;t<=0||(p.push({id:e.id,row:e,from:h,to:h+t,pct:t/3.6}),h+=t)}if(m.restValue>0){let e=m.restValue/m.total*360;p.push({id:"__rest",rest:!0,from:h,to:h+e,pct:e/3.6})}let b=(e,t)=>{let s=e*Math.PI/180;return[84+t*Math.cos(s),84+t*Math.sin(s)]},f="tokens"===t?C:k,g=i?p.find(e=>e.id===i):null;return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,a.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,a.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wide text-text-muted",children:"Provider"}),(0,a.jsxs)("span",{className:"text-[10px] text-text-subtle",children:[m.shown.length,m.restCount?` + ${m.restCount}`:""," provider"]})]}),(0,a.jsxs)("div",{className:"flex flex-col items-center gap-3 sm:flex-row sm:items-center sm:gap-5",children:[(0,a.jsxs)("svg",{viewBox:"0 0 168 168",width:168,height:168,className:"shrink-0",role:"img","aria-labelledby":u,children:[(0,a.jsxs)("title",{id:u,children:["Komposisi ","tokens"===t?"token":"biaya"," per provider."," ",m.shown.map(e=>`${e.id} ${T(R(x(e),m.total))}`).join(", "),"."]}),p.map(e=>{let t=((e,t)=>{let s=Math.min(1.2,(t-e)/6),a=e+s,n=t-s;if(n<=a)return null;let r=+(n-a>180),[l,i]=b(a,74),[o,d]=b(n,74),[c,u]=b(n,50),[x,m]=b(a,50);return`M ${l.toFixed(2)} ${i.toFixed(2)} A 74 74 0 ${r} 1 ${o.toFixed(2)} ${d.toFixed(2)} L ${c.toFixed(2)} ${u.toFixed(2)} A 50 50 0 ${r} 0 ${x.toFixed(2)} ${m.toFixed(2)} Z`})(e.from,e.to);if(!t)return null;let n=i===e.id;return(0,a.jsx)("path",{d:t,fill:e.rest?"var(--color-border)":s(e.id,"solid"),opacity:i&&!n?.35:1,className:"cursor-pointer transition-opacity duration-150",onMouseEnter:()=>o(e.id),onMouseLeave:()=>o(null),onClick:r&&!e.rest?()=>r(e.row):void 0},e.id)}),(0,a.jsx)("text",{x:84,y:80,textAnchor:"middle",className:"fill-text-main text-[15px] font-semibold tabular-nums",style:{fontVariantNumeric:"tabular-nums"},children:g?T(g.pct):f(m.total).replace(/^\$/,"$")}),(0,a.jsx)("text",{x:84,y:97,textAnchor:"middle",className:"fill-text-muted text-[9px]",children:g?g.rest?`${m.restCount} lainnya`:String(g.id).slice(0,16):"tokens"===t?"total token":"total biaya"})]}),(0,a.jsxs)("ul",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[m.shown.map(e=>{let t=R(x(e),m.total);return(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",onMouseEnter:()=>o(e.id),onMouseLeave:()=>o(null),onFocus:()=>o(e.id),onBlur:()=>o(null),onClick:r?()=>r(e):void 0,className:`flex w-full items-center gap-2 rounded-md px-1.5 py-1 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 ${i===e.id?"bg-bg-hover":""}`,children:[(0,a.jsx)("span",{className:"size-2 shrink-0 rounded-sm",style:{backgroundColor:s(e.id,"solid")},"aria-hidden":"true"}),(0,a.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-text-main",children:e.id}),(0,a.jsx)("span",{className:"shrink-0 tabular-nums text-xs text-text-muted",children:T(t)}),(0,a.jsx)("span",{className:"w-20 shrink-0 text-right tabular-nums text-xs text-text-main",children:f(x(e))})]})},e.id)}),m.restValue>0?(0,a.jsxs)("li",{className:"flex items-center gap-2 px-1.5 py-1",children:[(0,a.jsx)("span",{className:"size-2 shrink-0 rounded-sm",style:{backgroundColor:"var(--color-border)"},"aria-hidden":"true"}),(0,a.jsxs)("span",{className:"min-w-0 flex-1 truncate text-xs text-text-muted",children:[m.restCount," provider lainnya"]}),(0,a.jsx)("span",{className:"shrink-0 tabular-nums text-xs text-text-muted",children:T(m.restPct)}),(0,a.jsx)("span",{className:"w-20 shrink-0 text-right tabular-nums text-xs text-text-muted",children:f(m.restValue)})]}):null]})]}),m.restCount>0?(0,a.jsx)("button",{type:"button",onClick:()=>c(e=>!e),className:"self-start rounded-md px-2 py-1 text-[11px] font-medium text-primary transition-colors hover:bg-primary/8 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:d?"Ringkas jadi 8 teratas":`Tampilkan semua ${m.shown.length+m.restCount} provider`}):null]})}function L(e,{duration:t=420}={}){let s,a=function(){let[e,t]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(!window.matchMedia)return;let e=window.matchMedia("(prefers-reduced-motion: reduce)");queueMicrotask(()=>t(e.matches));let s=e=>t(e.matches);return e.addEventListener?.("change",s),()=>e.removeEventListener?.("change",s)},[]),e}(),r=Number.isFinite(s=Number(e))?s:0,l=Number.isFinite(Number(e)),[i,o]=(0,n.useState)(l?r:0),d=(0,n.useRef)(l?r:0),c=(0,n.useRef)(l?r:0),u=(0,n.useRef)(null);return(0,n.useEffect)(()=>{var e;if(!l||(e=c.current,!Number.isFinite(r)||e===r))return;let s=d.current;if(c.current=r,a){d.current=r,queueMicrotask(()=>o(r));return}u.current&&cancelAnimationFrame(u.current);let n=null,i=e=>{var a,l;null===n&&(n=e);let c=Math.min(1,(e-n)/t),x=(a=s)+(r-a)*(1-Math.pow(1-((l=c)<=0?0:l>=1?1:l),3));d.current=x,o(x),c<1?u.current=requestAnimationFrame(i):(d.current=r,o(r),u.current=null)};return u.current=requestAnimationFrame(i),()=>{u.current&&(cancelAnimationFrame(u.current),u.current=null)}},[r,l,t,a]),l?i:0}function D({stats:e,mode:t,period:s,onModeChange:r,onSelectProvider:l,selectedProvider:i,nodeNames:o={},colorOf:d,donutRows:c=null,onPickProvider:u}){let x="tokens"===t,{providers:m,total:p,headCost:h,headTokens:b,headIn:f,headOut:g,headCached:v,requests:j,activeCount:N,errorProvider:C}=(0,n.useMemo)(()=>{let t=Object.entries(e?.byProvider||{}).map(([e,t])=>({id:e,requests:t?.requests||0,promptTokens:t?.promptTokens||0,completionTokens:t?.completionTokens||0,cachedTokens:t?.cachedTokens||0,tokens:(t?.promptTokens||0)+(t?.completionTokens||0),cost:t?.cost||0})).sort((e,t)=>x?t.tokens-e.tokens:t.cost-e.cost),s=e=>t.reduce((t,s)=>t+e(s),0);return{providers:t,total:s(e=>x?e.tokens:e.cost),headCost:s(e=>e.cost),headTokens:s(e=>e.tokens),headIn:s(e=>e.promptTokens),headOut:s(e=>e.completionTokens),headCached:s(e=>e.cachedTokens),requests:e?.totalRequests||0,activeCount:(e?.activeRequests||[]).reduce((e,t)=>e+(t.count||0),0),errorProvider:e?.errorProvider||null}},[e,x]),S=(0,n.useMemo)(()=>{let e=e=>x?e.tokens:e.cost;return m.filter(t=>e(t)>0||t.requests>0).map(t=>{var s;return{id:t.id,label:(s=t.id,o?.[s]?o[s]:s.length<=22?s:`${s.slice(0,14)}…`),value:e(t),pct:R(e(t),p),requests:t.requests,full:x?`${w(t.tokens)} tokens`:k(t.cost)}})},[m,x,p,o]),q=p<=0&&m.some(e=>e.requests>0),M=p>0||j>0,I=m.filter(e=>e.requests>0).length,z="tokens"===t,_=L(M?h:0),O=L(M?b:0),U=z?w(O):k(_),B=z?k(_):w(O),K=F({input:f,output:g,cached:v,total:b}),W=R(v,f),J=R(g,b);return(0,a.jsxs)("header",{className:"min-w-0",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2",children:[(0,a.jsxs)("span",{className:"text-xs font-medium text-text-muted",children:["Usage \xb7 ",P[s]||s]}),(0,a.jsx)("div",{className:"ml-auto flex items-center gap-1 rounded-lg border border-border bg-bg-subtle p-0.5",role:"group","aria-label":"What to show",children:$.map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>r(e.id),"aria-pressed":t===e.id,className:["rounded-md px-2.5 py-1 text-xs font-medium transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",t===e.id?"bg-primary-strong text-white shadow-sm":"text-text-muted hover:bg-bg-hover hover:text-text-main"].join(" "),children:e.label},e.id))})]}),(0,a.jsx)("p",{className:"mt-1.5 text-[0.6875rem] text-text-subtle",children:"No period-over-period comparison — the usage API returns a single aggregate series, so there is no prior period to diff against."}),c&&c.length>0?(0,a.jsx)("div",{className:"mt-5 border-t border-border-subtle pt-4",children:(0,a.jsx)(E,{rows:c,mode:t,colorOf:d,onPick:u})}):null,(0,a.jsxs)("div",{className:"mt-3 flex flex-col items-start gap-1.5",children:[(0,a.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,a.jsx)("span",{className:"text-[2.75rem] font-semibold leading-none tracking-[-0.03em] tabular-nums text-text-main sm:text-[3.25rem]",style:{fontVariantNumeric:"tabular-nums"},children:M?U:"—"}),"both"===t?(0,a.jsx)("span",{className:"text-xs font-medium uppercase tracking-wide text-text-subtle",children:z?"tokens":"cost"}):null]}),"both"===t?(0,a.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,a.jsx)("span",{className:"text-[1.75rem] font-semibold leading-none tracking-[-0.02em] tabular-nums text-text-main sm:text-[2rem]",style:{fontVariantNumeric:"tabular-nums"},children:M?B:"—"}),(0,a.jsx)("span",{className:"text-xs font-medium uppercase tracking-wide text-text-subtle",children:z?"cost":"tokens"})]}):null,(0,a.jsxs)("span",{className:"text-sm text-text-muted",children:["costs"===t?"spent":"tokens"===t?"tokens":null,"both"!==t?(0,a.jsx)("span",{className:"mx-2 text-text-subtle",children:"\xb7"}):null,(0,a.jsx)("span",{className:"tabular-nums",children:w(j)})," requests",N>0?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"mx-2 text-text-subtle",children:"\xb7"}),(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-primary",children:[(0,a.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-primary","aria-hidden":"true"}),(0,a.jsx)("span",{className:"tabular-nums",children:N})," live"]})]}):null]})]}),M&&"costs"!==t&&b>0?(0,a.jsxs)("div",{className:"mt-3 max-w-2xl",children:[(0,a.jsxs)("div",{className:"flex h-1.5 w-full overflow-hidden rounded-full bg-border-subtle",children:[(0,a.jsx)("span",{className:"h-full transition-[width] duration-500",style:{flexGrow:Math.max(f-v,0),flexBasis:0,backgroundColor:"color-mix(in oklab, var(--color-primary) 30%, var(--color-surface))"}}),(0,a.jsx)("span",{className:"h-full transition-[width] duration-500",style:{flexGrow:v,flexBasis:0,minWidth:v>0?"2px":0,backgroundColor:"var(--color-primary)"}}),(0,a.jsx)("span",{className:"h-full transition-[width] duration-500",style:{flexGrow:Math.max(g,0),flexBasis:0,minWidth:g>0?"2px":0,backgroundColor:"var(--color-border)"}})]}),(0,a.jsxs)("div",{className:"mt-1.5 flex flex-wrap items-center gap-x-4 gap-y-1 text-[0.6875rem] text-text-muted",title:K,children:[(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"size-2 shrink-0 rounded-[2px]",style:{backgroundColor:"color-mix(in oklab, var(--color-primary) 30%, var(--color-surface))"},"aria-hidden":"true"}),(0,a.jsx)("span",{className:"tabular-nums text-text-main",children:w(f-v)}),"uncached input"]}),v>0?(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"size-2 shrink-0 rounded-[2px]",style:{backgroundColor:"var(--color-primary)"},"aria-hidden":"true"}),(0,a.jsx)("span",{className:"tabular-nums text-text-main",children:w(v)}),"cached",(0,a.jsxs)("span",{className:"text-text-subtle",children:["(",T(W)," of input)"]})]}):null,(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"size-2 shrink-0 rounded-[2px]",style:{backgroundColor:"var(--color-border)"},"aria-hidden":"true"}),(0,a.jsx)("span",{className:"tabular-nums text-text-main",children:w(g)}),"output",(0,a.jsxs)("span",{className:"text-text-subtle",children:["(",T(J)," of total)"]})]})]})]}):null,q?(0,a.jsxs)("p",{className:"mt-4 text-xs text-text-muted",children:[(0,a.jsx)("span",{className:"tabular-nums",children:w(j)})," requests served by"," ",I," provider",1===I?"":"s"," at no recorded cost — switch to ",(0,a.jsx)("span",{className:"font-medium text-text-main",children:"Tokens"})," to compare their share."]}):null,!q&&M&&S.length>0?(0,a.jsxs)("div",{className:"mt-4",children:[(0,a.jsx)("div",{className:"flex h-2.5 w-full overflow-hidden rounded-full bg-border-subtle",role:"group","aria-label":"Proporsi pemakaian per provider",children:S.map(e=>{let t=i===e.id;return(0,a.jsx)("button",{type:"button",onClick:()=>l?.(t?null:e.id),title:`${e.label} — ${T(e.pct)} \xb7 ${e.full}`,"aria-label":`${e.label}, ${T(e.pct)} of total, ${e.full}`,className:["h-full min-w-0 border-0 p-0 transition-opacity duration-200 cursor-pointer hover:opacity-80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-white/70",i&&!t?"opacity-25":"opacity-100"].join(" "),style:{flexGrow:e.pct,flexBasis:0,minWidth:"4px",backgroundColor:d(e.id,"solid")}},e.id)})}),(0,a.jsx)("div",{className:"mt-2 flex flex-wrap items-center gap-x-4 gap-y-1",children:S.map(e=>{let t=i===e.id;return(0,a.jsxs)("button",{type:"button",onClick:()=>l?.(t?null:e.id),className:["flex items-center gap-1.5 text-xs transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 rounded",t?"text-text-main font-medium":"text-text-muted hover:text-text-main"].join(" "),children:[(0,a.jsx)("span",{className:"size-2 shrink-0 rounded-full",style:{backgroundColor:d(e.id,"solid")},"aria-hidden":"true"}),(0,a.jsx)("span",{className:"max-w-[9rem] truncate",children:e.label}),(0,a.jsx)("span",{className:"tabular-nums text-text-subtle",children:0===e.pct&&e.requests>0?`${y(e.requests)} req`:T(e.pct)})]},e.id)})})]}):null,C?(0,a.jsxs)("div",{className:"mt-3 flex items-center gap-2 rounded-lg border border-danger/25 bg-danger/8 px-3 py-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] text-danger","aria-hidden":"true",children:"error"}),(0,a.jsxs)("span",{className:"text-xs text-text-main",children:[(0,a.jsx)("span",{className:"font-medium",children:C})," failed a request just now"]})]}):null,(0,a.jsx)(A,{stats:e})]})}function A({stats:e}){let t=e?.last10Minutes||[],s=Math.max(1,...t.map(e=>e?.requests||0)),n=t.reduce((e,t)=>e+(t?.requests||0),0);return(0,a.jsxs)("div",{className:"mt-4 flex items-center gap-3",children:[(0,a.jsx)("span",{className:"shrink-0 text-[0.6875rem] font-medium uppercase tracking-wide text-text-subtle",children:"Live flow"}),(0,a.jsx)("div",{className:"flex h-5 min-w-0 flex-1 items-end gap-[3px]","aria-hidden":"true",children:t.length>0?t.map((e,t)=>{let n=e?.requests||0,r=n>0?Math.max(12,n/s*100):6;return(0,a.jsx)("span",{className:"min-w-0 flex-1 rounded-[2px] transition-[height] duration-500",style:{height:`${r}%`,backgroundColor:n>0?"var(--color-primary)":"var(--color-border)",opacity:n>0?.35+n/s*.65:1,transitionTimingFunction:"cubic-bezier(.2,.8,.2,1)"}},t)}):(0,a.jsx)("span",{className:"h-full w-full rounded-[2px] bg-border-subtle"})}),(0,a.jsx)("span",{className:"shrink-0 text-[0.6875rem] tabular-nums text-text-subtle",children:n>0?`${y(n)} req / 10m`:"idle"})]})}function I(e,t){if(!e)return"—";let s=t?.[e];return s||(e.length<=22?e:`${e.slice(0,14)}…`)}function z({stats:e,nodeNames:t={}}){let s=e?.activeRequests||[],r=(e?.recentRequests||[]).slice(0,8),l=s.reduce((e,t)=>e+(t.count||0),0),[i,o]=(0,n.useState)(()=>Date.now());return(0,n.useEffect)(()=>{if(0===s.length&&0===r.length)return;let e=setInterval(()=>o(Date.now()),1e3);return()=>clearInterval(e)},[s.length,r.length]),(0,a.jsxs)("section",{"aria-label":"Live requests",className:"min-w-0 rounded-[14px] border border-border bg-surface px-4 py-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"relative flex size-2","aria-hidden":"true",children:l>0?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-primary opacity-60"}),(0,a.jsx)("span",{className:"relative inline-flex size-2 rounded-full bg-primary"})]}):(0,a.jsx)("span",{className:"relative inline-flex size-2 rounded-full bg-border"})}),(0,a.jsx)("h3",{className:"text-xs font-semibold text-text-main",children:"Live"}),(0,a.jsx)("span",{className:"text-[0.6875rem] tabular-nums text-text-muted",children:l>0?`${l} running`:"idle"})]}),l>0?(0,a.jsx)("ul",{className:"mt-2 flex min-w-0 flex-col divide-y divide-border-subtle",children:s.map((e,s)=>{let n=e.inputEstimated?"~":"";return(0,a.jsxs)("li",{className:"flex min-w-0 items-baseline gap-3 py-1.5",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"truncate text-xs font-medium text-text-main",title:e.model,children:e.model||"—"}),(0,a.jsxs)("p",{className:"truncate text-[0.6875rem] text-text-muted",children:[I(e.provider,t),e.account?` \xb7 ${e.account}`:""]})]}),(0,a.jsxs)("div",{className:"shrink-0 text-right",children:[(0,a.jsxs)("p",{className:"text-xs tabular-nums text-text-main",title:e.inputEstimated?"Estimated from request size — real count arrives with the first usage chunk":q(e.startedAt),children:[(0,a.jsx)("span",{className:"text-text-muted",children:"↓"})," ",n,w(e.inputTokens)," ",(0,a.jsx)("span",{className:"text-text-muted",children:"↑"})," ",w(e.outputTokens)]}),(0,a.jsx)("p",{className:"text-[0.6875rem] tabular-nums text-text-subtle",children:e.startedAt?(0,a.jsx)("time",{dateTime:e.startedAt,title:M(e.startedAt),children:function(e,t,s){let a=e?Date.parse(e):NaN,n=Number.isFinite(a)?Math.max(0,s-a):t;if(null==n||!Number.isFinite(n)||n<0)return"—";let r=Math.floor(n/1e3);if(r<60)return`${r}s`;let l=Math.floor(r/60);if(l<60)return`${l}m ${String(r%60).padStart(2,"0")}s`;let i=Math.floor(l/60);return i<24?`${i}h ${String(l%60).padStart(2,"0")}m`:`${Math.floor(i/24)}d ${i%24}h`}(e.startedAt,e.elapsedMs,i)}):"—"})]})]},`${e.model}|${e.provider}|${e.account}|${e.startedAt||"?"}|${s}`)})}):(0,a.jsx)("p",{className:"mt-1.5 text-xs text-text-muted",children:"No running requests — new ones appear here the moment they start."}),(0,a.jsxs)("div",{className:"mt-3 flex items-center gap-2 border-t border-border-subtle pt-3",children:[(0,a.jsx)("h3",{className:"text-xs font-semibold text-text-main",children:"Recent"}),(0,a.jsx)("span",{className:"text-[0.6875rem] text-text-muted",children:"latest finished requests"})]}),r.length>0?(0,a.jsx)("ul",{className:"mt-1.5 flex min-w-0 flex-col divide-y divide-border-subtle",children:r.map((e,s)=>(0,a.jsxs)("li",{className:"flex min-w-0 items-baseline gap-3 py-1.5",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"truncate text-xs text-text-main",title:e.model,children:[e.model||"—",(0,a.jsx)("span",{className:"ml-1.5 font-normal text-text-muted",children:I(e.provider,t)})]}),e.account?(0,a.jsx)("p",{className:"truncate text-[0.6875rem] text-text-subtle",children:e.account}):null]}),(0,a.jsxs)("p",{className:"shrink-0 text-xs tabular-nums text-text-muted",title:w(e.totalTokens),children:[w(e.totalTokens)," tok"]}),(0,a.jsx)("p",{className:"w-16 shrink-0 text-right text-[0.6875rem] tabular-nums text-text-subtle",children:(0,a.jsx)("time",{dateTime:e.timestamp,title:`${M(e.timestamp)} — ${q(e.timestamp)}`,children:function(e,t){let s="number"==typeof e?e:Date.parse(e);if(!Number.isFinite(s))return"—";let a=Math.max(0,Math.floor((t-s)/1e3));if(a<60)return`${a}s ago`;let n=Math.floor(a/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}(e.timestamp,i)})})]},`${e.timestamp}|${e.model}|${e.provider}|${e.totalTokens}|${s}`))}):(0,a.jsx)("p",{className:"mt-1.5 text-xs text-text-muted",children:"No finished requests recorded yet."})]})}function _({points:e,mode:t="costs",onPickDay:s=null}){let[r,l]=(0,n.useState)(null),i=e=>"tokens"===t?e.tokens:e.cost,{days:o,max:d,total:c,activeDays:u}=(0,n.useMemo)(()=>{let t=Array.isArray(e)?e:[],s=t.map(i);return{days:t,max:Math.max(0,...s),total:s.reduce((e,t)=>e+t,0),activeDays:s.filter(e=>e>0).length}},[e,t]);if(!o.length)return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("p",{className:"text-xs font-medium uppercase tracking-wide text-text-muted",children:"Aktivitas"}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Belum ada data harian pada periode ini."})]});let x={kosong:{bg:"var(--color-border-subtle)"},rendah:{bg:"oklch(0.62 0.17 262 / 0.22)"},sedang:{bg:"oklch(0.62 0.17 262 / 0.45)"},tinggi:{bg:"oklch(0.62 0.17 262 / 0.70)"},puncak:{bg:"oklch(0.62 0.17 262 / 1)"}},m=e=>"tokens"===t?e.toLocaleString("en-US"):`$${Number(e).toFixed(2)}`,p=r?o[r]:null;return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-2",children:[(0,a.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wide text-text-muted",children:"Aktivitas"}),(0,a.jsxs)("span",{className:"text-[10px] text-text-subtle",children:[u," dari ",o.length," hari terpakai"]})]}),(0,a.jsx)("div",{className:"flex flex-wrap gap-[3px]",onMouseLeave:()=>l(null),role:"img","aria-label":`Aktivitas harian selama ${o.length} hari. Hari terberat: ${m(d)}.`,children:o.map((e,t)=>{let n=(e=>{if(!e||e<=0)return"kosong";let t=d>0?e/d:0;return t>.75?"puncak":t>.5?"tinggi":t>.25?"sedang":"rendah"})(i(e));return(0,a.jsx)("button",{type:"button",onMouseEnter:()=>l(t),onFocus:()=>l(t),onBlur:()=>l(null),onClick:s?()=>s(e):void 0,className:"size-3 rounded-[3px] transition-transform hover:scale-125 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",style:{backgroundColor:x[n].bg},"aria-label":`${e.label}: ${m(i(e))}`},`${e.label}-${t}`)})}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,a.jsx)("p",{className:"min-w-0 flex-1 truncate text-[11px] text-text-muted",children:p?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-text-main",children:p.label})," \xb7 ",(0,a.jsx)("span",{className:"text-text-main",children:m(i(p))}),"tokens"!==t&&p.tokens?` \xb7 ${p.tokens.toLocaleString("en-US")} token`:null]}):(0,a.jsx)(a.Fragment,{children:"Pekatnya warna = besarnya pemakaian hari itu"})}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-1","aria-hidden":"true",children:[(0,a.jsx)("span",{className:"text-[10px] text-text-subtle",children:"ringan"}),["rendah","sedang","tinggi","puncak"].map(e=>(0,a.jsx)("span",{className:"size-2.5 rounded-[2px]",style:{backgroundColor:x[e].bg}},e)),(0,a.jsx)("span",{className:"text-[10px] text-text-subtle",children:"berat"})]})]})]})}function O(e,t){let s=360;for(let a of t){let t=Math.abs(a-e);s=Math.min(s,Math.min(t,360-t))}return s}let U="cubic-bezier(.2,.8,.2,1)";function B({title:e,meta:t,count:s,countSecondary:r,accent:l=!1,depth:i=0,folded:o=!1,defaultOpen:d=!1,open:c,onOpenChange:u,children:x,actions:m}){let[p,h]=(0,n.useState)(d),b=void 0!==c,f=b?c:p,g=(0,n.useId)();return(0,a.jsxs)("section",{className:"min-w-0",style:{marginLeft:i>0?`${14*i}px`:void 0},children:[o?(0,a.jsx)("div",{className:"mb-1 ml-3 border-t border-border-subtle","aria-hidden":"true"}):null,(0,a.jsx)("h3",{className:"m-0",children:(0,a.jsxs)("button",{type:"button",onClick:()=>{let e=!f;b||h(e),u?.(e)},"aria-expanded":f,"aria-controls":g,className:["group flex w-full items-center gap-3 rounded-[10px] px-3 py-2.5 text-left transition-colors duration-150 hover:bg-bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",f?"bg-bg-subtle":"bg-transparent"].join(" "),children:[(0,a.jsx)("span",{className:"material-symbols-outlined shrink-0 text-[18px] text-text-subtle transition-transform",style:{transform:f?"rotate(90deg)":"rotate(0deg)",transitionDuration:"240ms",transitionTimingFunction:U},"aria-hidden":"true",children:"chevron_right"}),(0,a.jsx)("span",{className:["shrink-0 text-sm font-semibold tracking-tight",l?"text-primary":"text-text-main"].join(" "),children:e}),t?(0,a.jsx)("span",{className:"min-w-0 truncate text-xs text-text-muted",children:t}):null,(0,a.jsxs)("span",{className:"ml-auto flex shrink-0 items-center gap-2",children:[m?(0,a.jsx)("span",{onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),className:"flex items-center gap-1",children:m}):null,null!=s?(0,a.jsxs)("span",{className:"flex shrink-0 items-baseline gap-2 text-right",children:[r?(0,a.jsx)("span",{className:"text-xs tabular-nums text-text-subtle",children:r}):null,(0,a.jsx)("span",{className:"min-w-[4.5rem] text-right text-sm font-medium tabular-nums text-text-main",children:s})]}):null]})]})}),(0,a.jsx)("div",{id:g,className:"grid min-w-0",style:{gridTemplateRows:f?"1fr":"0fr",transition:`grid-template-rows 240ms ${U}`},children:(0,a.jsx)("div",{className:"min-w-0 overflow-hidden",children:(0,a.jsx)("div",{className:"pb-2 pl-[42px] pr-1 pt-1",children:x})})})]})}function K({label:e,sublabel:t,value:s,valueSecondary:r,detail:l,barValue:i,onSelect:o,selected:d=!1,status:c,trailing:u}){let x=(0,n.useId)(),m="error"===c?"var(--color-danger)":"active"===c?"var(--color-success)":null,p="function"==typeof o,h=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("span",{className:"flex min-w-0 items-baseline gap-2",children:[m?(0,a.jsx)("span",{className:"size-1.5 shrink-0 translate-y-[-2px] rounded-full",style:{backgroundColor:m},"aria-hidden":"true"}):null,(0,a.jsx)("span",{className:"min-w-0 truncate text-sm text-text-main",children:e}),t?(0,a.jsx)("span",{className:"min-w-0 shrink truncate text-xs text-text-subtle",children:t}):null]}),(0,a.jsx)("span",{className:"relative mt-1.5 block h-[3px] w-full overflow-hidden rounded-full bg-border-subtle",children:null!=i?(0,a.jsx)("span",{className:"absolute inset-y-0 left-0 rounded-full transition-[width] duration-500",style:{width:`${Math.max(i,1.5*(i>0))}%`,backgroundColor:"error"===c?"var(--color-danger)":"var(--color-primary)",transitionTimingFunction:U}}):null}),(0,a.jsxs)("span",{className:"ml-auto flex shrink-0 items-baseline gap-2 pl-3",children:[u,(0,a.jsxs)("span",{className:"flex min-w-[4.5rem] items-baseline justify-end gap-2 text-right",children:[r?(0,a.jsx)("span",{className:"text-xs tabular-nums text-text-subtle",children:r}):null,(0,a.jsx)("span",{className:["rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",l?"cursor-help underline decoration-dotted decoration-text-subtle/60 underline-offset-4":""].join(" "),tabIndex:l?0:void 0,title:l||void 0,"aria-describedby":l?x:void 0,children:(0,a.jsx)("span",{className:"value-fade text-sm font-medium tabular-nums text-text-main",children:s},String(s))}),l?(0,a.jsx)("span",{id:x,className:"sr-only",children:l}):null]})]})]});return p?(0,a.jsx)("button",{type:"button",onClick:o,"aria-pressed":d,className:["flex w-full min-w-0 items-start gap-2 rounded-lg px-2 py-2 text-left transition-colors duration-150 hover:bg-bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",d?"bg-primary/8 ring-1 ring-inset ring-primary/25":""].join(" "),children:h}):(0,a.jsx)("div",{className:"flex min-w-0 items-start gap-2 rounded-lg px-2 py-2",children:h})}function W({query:e,onQueryChange:t,activeFilter:s,onClearFilter:r,resultCount:l,totalCount:i}){let o=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=e=>{let s=document.activeElement?.tagName;"INPUT"!==s&&"TEXTAREA"!==s&&"SELECT"!==s&&("/"!==e.key||e.metaKey||e.ctrlKey||e.altKey||(e.preventDefault(),o.current?.focus()),"Escape"===e.key&&document.activeElement===o.current&&(t(""),o.current?.blur()))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let d=e.trim().length>0;return(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsxs)("div",{className:"relative min-w-0 flex-1 sm:max-w-xs",children:[(0,a.jsx)("span",{className:"material-symbols-outlined pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-[16px] text-text-subtle","aria-hidden":"true",children:"search"}),(0,a.jsx)("input",{ref:o,type:"search",value:e,onChange:e=>t(e.target.value),placeholder:"Search provider, model, account…","aria-label":"Search usage across all dimensions",className:"w-full rounded-lg border border-border bg-surface py-1.5 pl-8 pr-8 text-sm text-text-main placeholder:text-text-subtle transition-colors duration-150 hover:border-text-subtle/40 focus:border-primary/60 focus:outline-none focus:ring-2 focus:ring-primary/25"}),d?(0,a.jsx)("button",{type:"button",onClick:()=>{t(""),o.current?.focus()},"aria-label":"Clear search",className:"absolute right-2 top-1/2 flex -translate-y-1/2 items-center rounded p-0.5 text-text-subtle transition-colors hover:text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"close"})}):(0,a.jsx)("kbd",{className:"pointer-events-none absolute right-2.5 top-1/2 hidden -translate-y-1/2 rounded border border-border px-1.5 text-[10px] font-medium text-text-subtle sm:block","aria-hidden":"true",children:"/"})]}),s?(0,a.jsxs)("button",{type:"button",onClick:r,className:"flex items-center gap-1.5 rounded-lg border border-primary/30 bg-primary/8 px-2.5 py-1.5 text-xs font-medium text-primary transition-colors hover:bg-primary/15 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",title:"Remove provider filter",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"filter_alt"}),(0,a.jsx)("span",{className:"max-w-[10rem] truncate",children:s}),(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"close"})]}):null,d||s?(0,a.jsxs)("span",{className:"text-xs tabular-nums text-text-muted",role:"status","aria-live":"polite",children:[l," of ",i]}):null]})}var J=s(21742),V=s(76410),G=s(77496),Q=s(32539),H=s(59656),X=s(51037),Z=s(31310),Y=s(33745);function ee({period:e,mode:t}){let[s,r]=(0,n.useState)([]),[l,i]=(0,n.useState)(null),[o,d]=(0,n.useState)(null),c=l!==e,u=o?.period===e?o:null;(0,n.useEffect)(()=>{let t=new AbortController;return fetch(`/api/usage/chart?period=${encodeURIComponent(e)}`,{signal:t.signal}).then(e=>e.ok?e.json():[]).then(t=>{r(Array.isArray(t)?t:[]),i(e)}).catch(t=>{t?.name!=="AbortError"&&(console.warn("[usage] failed to load chart:",t?.message||t),r([]),i(e))}),()=>t.abort()},[e]);let x="tokens"===t?"tokens":"cost",m="tokens"===t?y:k,p="tokens"===t?C:k,h=s.some(e=>(e?.[x]||0)>0),b=(0,n.useMemo)(()=>u?s.slice(u.startIndex,u.endIndex+1):s,[s,u]),f=(0,n.useMemo)(()=>{if(0===b.length)return null;let e=0,t={value:0,label:null};for(let s of b){let a=s?.[x]||0;e+=a,a>t.value&&(t={value:a,label:s.label})}return{sum:e,peak:t,count:b.length}},[b,x]),g=(0,n.useMemo)(()=>{let e=-1,t=0;return s.forEach((s,a)=>{let n=s?.[x]||0;n>t&&(t=n,e=a)}),t>0?e:-1},[s,x]),v="var(--color-primary)";return(0,a.jsxs)("section",{className:"min-w-0","aria-label":"Usage over time",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold tracking-tight text-text-main",children:"Flow"}),f?(0,a.jsxs)("span",{className:"text-xs text-text-muted",children:[(0,a.jsx)("span",{className:"tabular-nums text-text-main",children:p(f.sum)})," ","tokens"===t?"tokens":"spent",u?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"mx-1.5 text-text-subtle",children:"\xb7"}),(0,a.jsxs)("span",{children:[b[0]?.label,"–",b[b.length-1]?.label]})]}):null,f.peak.value>0?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"mx-1.5 text-text-subtle",children:"\xb7"}),(0,a.jsxs)("span",{children:["peak ",(0,a.jsx)("span",{className:"tabular-nums text-text-main",children:f.peak.label})]})]}):null]}):null,(0,a.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[u?(0,a.jsx)("button",{type:"button",onClick:()=>d(null),className:"rounded-md px-2 py-0.5 text-xs text-text-muted transition-colors hover:bg-bg-hover hover:text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:"Reset range"}):null,g>=0?(0,a.jsxs)("button",{type:"button",onClick:()=>d({period:e,startIndex:Math.max(0,g-1),endIndex:Math.min(s.length-1,g+1)}),className:"flex items-center gap-1 rounded-md px-2 py-0.5 text-xs text-text-muted transition-colors hover:bg-bg-hover hover:text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",title:`Zoom to peak (${s[g]?.label})`,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"zoom_in"}),"Peak"]}):null]})]}),(0,a.jsx)("div",{className:"mt-3",style:{height:200},children:c?(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-text-subtle",children:(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[24px]","aria-hidden":"true",children:"progress_activity"})}):h?(0,a.jsx)(J.u,{width:"100%",height:"100%",children:(0,a.jsxs)(V.Q,{data:s,margin:{top:4,right:4,bottom:0,left:-12},children:[(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:"flowFill",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:v,stopOpacity:.18}),(0,a.jsx)("stop",{offset:"100%",stopColor:v,stopOpacity:.02})]})}),(0,a.jsx)(G.d,{strokeDasharray:"2 4",strokeOpacity:.12,vertical:!1}),(0,a.jsx)(Q.W,{dataKey:"label",tick:{fontSize:11,fill:"var(--color-text-subtle)"},tickLine:!1,axisLine:!1,minTickGap:24}),(0,a.jsx)(H.h,{tick:{fontSize:11,fill:"var(--color-text-subtle)"},tickLine:!1,axisLine:!1,width:52,tickFormatter:e=>m(e)}),(0,a.jsx)(X.m,{isAnimationActive:!0,animationDuration:120,animationEasing:"ease-out",cursor:{stroke:"var(--color-border)",strokeWidth:1,style:{transition:"transform 120ms cubic-bezier(.2,.8,.2,1)"}},content:({active:e,payload:s,label:n})=>{if(!e||!s?.length)return null;let r=s[0]?.value||0;return(0,a.jsxs)("div",{className:"rounded-lg border border-border bg-surface px-2.5 py-1.5 shadow-[var(--shadow-elevated)]",children:[(0,a.jsx)("div",{className:"text-[11px] text-text-subtle",children:n}),(0,a.jsxs)("div",{className:"text-sm font-medium tabular-nums text-text-main",children:[p(r)," ","tokens"===t?"tokens":""]})]})}}),(0,a.jsx)(Z.Gk,{type:"monotone",dataKey:x,stroke:v,strokeWidth:2,fill:"url(#flowFill)",dot:!1,activeDot:{r:4,strokeWidth:0,style:{transition:"r 120ms cubic-bezier(.2,.8,.2,1)"}},isAnimationActive:!0,animationDuration:400,animationEasing:"ease-out"}),s.length>=8?(0,a.jsx)(Y.v,{dataKey:"label",height:22,travellerWidth:8,stroke:"var(--color-border)",fill:"var(--color-bg-subtle)",onChange:t=>{"number"==typeof t?.startIndex&&"number"==typeof t?.endIndex&&d({period:e,startIndex:t.startIndex,endIndex:t.endIndex})}}):null]})}):(0,a.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-1 text-text-muted",children:[(0,a.jsx)("span",{className:"text-sm",children:"No activity in this period."}),(0,a.jsx)("span",{className:"text-xs text-text-subtle",children:"The chart fills as requests flow through the gateway."})]})})]})}function et({provider:e,model:t,period:s}){let r=`${e||""}::${t||""}::${s||""}`,[l,i]=(0,n.useState)({key:r,page:1}),o=l.key===r?l.page:1,d=e=>i(t=>{let s=t.key===r?t.page:1;return{key:r,page:"function"==typeof e?e(s):e}}),[c,u]=(0,n.useState)({status:"loading",details:[],pagination:null});if((0,n.useEffect)(()=>{let a=new AbortController,n=new URLSearchParams({page:String(o),pageSize:String(25)});e&&n.set("provider",e),t&&n.set("model",t);let r=function(e){if("today"===e){let e=new Date;return e.setHours(0,0,0,0),e.toISOString()}let t={"24h":864e5,"7d":6048e5,"30d":2592e6,"60d":5184e6}[e];if(t)return new Date(Date.now()-t).toISOString()}(s);return r&&n.set("startDate",r),fetch(`/api/usage/request-details?${n.toString()}`,{signal:a.signal}).then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(e=>{u({status:"ready",details:e?.details||[],pagination:e?.pagination||null})}).catch(e=>{e?.name!=="AbortError"&&u({status:"error",details:[],pagination:null})}),()=>a.abort()},[e,t,o,s]),"loading"===c.status)return(0,a.jsx)("div",{className:"flex flex-col gap-1.5 py-2","aria-busy":"true",children:[0,1,2].map(e=>(0,a.jsx)("div",{className:"h-9 animate-pulse rounded-lg bg-border-subtle/60"},e))});if("error"===c.status)return(0,a.jsx)("p",{className:"px-2 py-3 text-xs text-text-muted",children:"Could not load requests for this row."});if(0===c.details.length)return(0,a.jsx)("p",{className:"px-2 py-3 text-xs text-text-muted",children:"No individual requests recorded for this row in the selected period."});let{pagination:x}=c,m=x?.totalPages||1;return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col",children:[(0,a.jsx)("div",{className:"max-h-80 min-w-0 overflow-y-auto rounded-lg border border-border-subtle",children:(0,a.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,a.jsxs)("caption",{className:"sr-only",children:["Individual requests ",e?`for ${e}`:""," ",t?`on ${t}`:""]}),(0,a.jsx)("thead",{className:"sticky top-0 z-10 bg-bg-subtle text-[10px] uppercase tracking-wide text-text-muted",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"When"}),(0,a.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Status"}),(0,a.jsx)("th",{scope:"col",className:"px-3 py-2 text-right font-medium",children:"Tokens"}),(0,a.jsx)("th",{scope:"col",className:"px-3 py-2 text-right font-medium",children:"Latency"})]})}),(0,a.jsx)("tbody",{className:"divide-y divide-border-subtle",children:c.details.map((e,t)=>{let s,n,r,l=!e.status||"success"===e.status||200===e.status,i=(n=(s=e?.tokens||{}).prompt_tokens||s.input_tokens||0,(n<(r=s.cached_tokens||s.cache_read_input_tokens||0)?r:n)+(s.completion_tokens||s.output_tokens||0)),o=e.latency?.total||0;return(0,a.jsxs)("tr",{className:"transition-colors hover:bg-bg-hover",children:[(0,a.jsx)("td",{className:"whitespace-nowrap px-3 py-2 text-text-muted",children:(0,a.jsx)("time",{dateTime:e.timestamp,title:`${M(e.timestamp)} — ${q(e.timestamp)}`,children:function(e){if(!e)return"—";let t="number"==typeof e?e:Date.parse(e);if(!Number.isFinite(t))return"—";let s=Date.now()-t;return s<0?"—":s<45e3?"now":s<36e5?`${Math.floor(s/6e4)}m`:s<864e5?`${Math.floor(s/36e5)}h`:`${Math.floor(s/864e5)}d`}(e.timestamp)})}),(0,a.jsx)("td",{className:"px-3 py-2",children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",title:e.errorMessage||e.error||void 0,children:[(0,a.jsx)("span",{className:"size-1.5 shrink-0 rounded-full",style:{backgroundColor:l?"var(--color-success)":"var(--color-danger)"},"aria-hidden":"true"}),(0,a.jsx)("span",{className:l?"text-text-muted":"text-danger",children:l?"ok":e.status||"error"})]})}),(0,a.jsx)("td",{className:"whitespace-nowrap px-3 py-2 text-right tabular-nums text-text-muted",children:i?w(i):"—"}),(0,a.jsx)("td",{className:"px-3 py-2 text-right tabular-nums text-text-muted",children:o?`${w(o)} ms`:"—"})]},e.id??`${e.timestamp}-${t}`)})})]})}),m>1?(0,a.jsxs)("div",{className:"mt-2 flex items-center justify-between text-xs text-text-muted",children:[(0,a.jsxs)("span",{className:"tabular-nums",children:["Page ",o," of ",m]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)("button",{type:"button",onClick:()=>d(e=>Math.max(1,e-1)),disabled:o<=1,className:"rounded-md px-2 py-1 font-medium transition-colors hover:bg-bg-hover hover:text-text-main disabled:cursor-not-allowed disabled:opacity-40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:"Previous"}),(0,a.jsx)("button",{type:"button",onClick:()=>d(e=>Math.min(m,e+1)),disabled:o>=m,className:"rounded-md px-2 py-1 font-medium transition-colors hover:bg-bg-hover hover:text-text-main disabled:cursor-not-allowed disabled:opacity-40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:"Next"})]})]}):null]})}let es=[{id:"provider",title:"Providers",key:"byProvider",groupBy:null},{id:"model",title:"Models",key:"byModel",groupBy:"rawModel"},{id:"account",title:"Accounts",key:"byAccount",groupBy:"accountName"},{id:"endpoint",title:"Endpoints",key:"byEndpoint",groupBy:"endpoint"}];function ea({period:e,stats:t,live:s=null,loading:l,onRetry:o,nodeNames:d={}}){let c=(0,r.useRouter)(),u=(0,r.useSearchParams)(),[x,m]=(0,n.useState)("costs"),[p,h]=(0,n.useState)(""),[b,f]=(0,n.useState)(()=>new Set(["provider"])),g=(0,n.useCallback)(e=>{f(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[]),v=p.trim().length>0,j=u.get("provider")||null,N=(0,n.useCallback)(e=>{let t=new URLSearchParams(u.toString());e?t.set("provider",e):t.delete("provider"),c.replace(`?${t.toString()}`,{scroll:!1})},[c,u]),y=(0,n.useCallback)(e=>S(e,x),[x]),C=(0,n.useMemo)(()=>(function(e){let t=[...new Set(e.filter(Boolean))].sort(),s=Math.max(14,Math.min(48,360/Math.max(1,t.length))),a=[],n=new Map;for(let e of t){let t=function(e){let t=0x811c9dc5;for(let s=0;s<e.length;s++)t^=e.charCodeAt(s),t=Math.imul(t,0x1000193);return t>>>0}(e)%3600/10,r=t,l=O(t,a),i=t;for(let e=1;e<=40;e++){let e=O(i=(i+137.508)%360,a);if(e>l&&(l=e,r=i),l>=s)break}a.push(r),n.set(e,{hue:Math.round(10*r)/10,saturation:1})}return n})(Object.keys(t?.byProvider||{}).map(e=>d?.[e]||e)),[t,d]),$=(0,n.useMemo)(()=>t?Object.entries(t.byProvider||{}).map(([e,t])=>({id:d?.[e]||e,rawId:e,cost:t?.cost||0,tokens:(t?.promptTokens||0)+(t?.completionTokens||0),requests:t?.requests||0})):null,[t,d]),q=(0,n.useCallback)((e,t="solid")=>{let s=d?.[e]||e;return function(e,{tone:t="solid",dark:s=!1}={}){if(null==e)return"var(--color-border)";let a=s?.74:.62,n="soft"===t?.13:.17,r="soft"===t?.22:1;return 1===r?`oklch(${a} ${n} ${e})`:`oklch(${a} ${n} ${e} / ${r})`}(C.get(s)?.hue??null,{tone:t})},[C,d]),[M,R]=(0,n.useState)([]),[T,F]=(0,n.useState)(null);(0,n.useEffect)(()=>{let t=!1;return fetch(`/api/usage/chart?period=${encodeURIComponent(e)}`,{cache:"no-store"}).then(e=>e.ok?e.json():null).then(s=>{!t&&Array.isArray(s)&&(R(s),F(e))}).catch(()=>{}),()=>{t=!0}},[e]);let E=(0,n.useMemo)(()=>{if(!t)return null;let e=p.trim().toLowerCase(),s=t=>(!j||t.provider===j||t.id===j||t.id===j&&null===t.provider)&&(!e||t.id.toLowerCase().includes(e)||(t.rawModel||"").toLowerCase().includes(e)||(t.provider||"").toLowerCase().includes(e)||(t.accountName||"").toLowerCase().includes(e)||(t.endpoint||"").toLowerCase().includes(e)||(t.keyName||"").toLowerCase().includes(e)),a=e=>{let s=Object.entries(t[e.key]||{}).map(([e,t])=>{let s,a,n;return s=t?.promptTokens||0,a=t?.completionTokens||0,n=t?.cachedTokens||0,{id:e,rawModel:t?.rawModel||e,provider:t?.provider||null,connectionId:t?.connectionId||null,accountName:t?.accountName||null,endpoint:t?.endpoint||null,keyName:t?.keyName||null,requests:t?.requests||0,promptTokens:s,completionTokens:a,cachedTokens:n,tokens:s+a,cost:t?.cost||0,lastUsed:t?.lastUsed||null}});return{...e,rows:s}},n=a(es[0]),r=a(es[1]),l=a(es[2]),i=a(es[3]),o=e=>{let t=e.rows.filter(s),a=t.reduce((e,t)=>e+y(t),0),n=t.slice().sort((e,t)=>y(t)-y(e));return{...e,rows:n,total:a,totalCost:t.reduce((e,t)=>e+t.cost,0),totalTokens:t.reduce((e,t)=>e+t.tokens,0),allCount:e.rows.length}};return{provider:o(n),model:o(r),account:o(l),endpoint:o(i),grandTotal:n.rows.reduce((e,t)=>e+y(t),0),grandCount:n.rows.length}},[t,p,j,y]),L=(0,n.useCallback)(e=>{if(!v)return b.has(e);let t=E?.[e];return t&&t.rows.length>0||b.has(e)},[v,b,E]),A={activeRequests:s?.activeRequests??t?.activeRequests??[],recentRequests:s?.recentRequests??t?.recentRequests??[]};if(!t&&l)return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,a.jsx)(z,{stats:A,nodeNames:d}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-5",children:[(0,a.jsx)("div",{className:"h-24 animate-pulse rounded-[14px] bg-border-subtle"}),(0,a.jsx)("div",{className:"h-40 animate-pulse rounded-[14px] bg-border-subtle"})]})]});if(!t)return(0,a.jsx)(i.default,{padding:"md",children:(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2 py-8 text-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[28px] text-text-subtle","aria-hidden":"true",children:"cloud_off"}),(0,a.jsxs)("p",{className:"text-sm text-text-muted",children:["Could not load usage for ",P[e]||e,"."]}),(0,a.jsx)("p",{className:"text-xs text-text-subtle",children:"Nothing is shown rather than numbers from another time range."}),(0,a.jsx)("button",{type:"button",onClick:o,className:"mt-1 rounded-lg border border-border px-3 py-1.5 text-xs font-medium text-text-main transition-colors hover:bg-bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:"Retry"})]})});let I=(E?.provider.rows.length||0)+(E?.model.rows.length||0)+(E?.account.rows.length||0)+(E?.endpoint.rows.length||0),U=(E?.provider.allCount||0)+(E?.model.allCount||0)+(E?.account.allCount||0)+(E?.endpoint.allCount||0),K=e=>"tokens"===x?w(e.tokens):k(e.cost),J=e=>"both"===x?`${w(e.tokens)} tok`:null;return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,a.jsx)(D,{stats:t,mode:x,period:e,onModeChange:m,onSelectProvider:N,selectedProvider:j,nodeNames:d,colorOf:q,donutRows:$,onPickProvider:e=>N(e.rawId)}),(0,a.jsx)(z,{stats:A,nodeNames:d}),t?(0,a.jsx)(_,{points:T===e?M:[],mode:x}):null,(0,a.jsx)(ee,{period:e,mode:x}),(0,a.jsx)("div",{className:"border-t border-border-subtle"}),(0,a.jsx)(W,{query:p,onQueryChange:h,activeFilter:j,onClearFilter:()=>N(null),resultCount:I,totalCount:U}),(0,a.jsx)("div",{className:"flex min-w-0 flex-col gap-1",children:es.map((s,n)=>{let r=E?.[s.id];if(!r)return null;let l=L(s.id),i="provider"===s.id;return(0,a.jsx)(B,{title:s.title,depth:n,folded:n>0,count:"tokens"===x?w(r.totalTokens):k(r.totalCost),countSecondary:"both"===x?`${w(r.totalTokens)} tok`:null,meta:0===r.rows.length?"no match":`${r.rows.length}${r.rows.length!==r.allCount?` of ${r.allCount}`:""}`,accent:i&&!!t.errorProvider,open:l,onOpenChange:()=>g(s.id),children:(0,a.jsx)(en,{layer:r,dimension:s.id,mode:x,grandTotal:E?.grandTotal||0,valueFor:K,secondaryFor:J,onSelectProvider:i?N:void 0,selectedProvider:j,open:l,hasQuery:p.trim().length>0,period:e,nodeNames:d})},s.id)})})]})}function en({layer:e,dimension:t,mode:s,grandTotal:r,valueFor:l,secondaryFor:i,onSelectProvider:o,selectedProvider:d,open:c,hasQuery:u,period:x,nodeNames:m}){let[p,h]=(0,n.useState)(!1),[b,f]=(0,n.useState)(null),g=p?e.rows:e.rows.slice(0,u?40:8),v=e.rows.length-g.length;return 0===e.rows.length?(0,a.jsx)("p",{className:"px-2 py-3 text-xs text-text-muted",children:u?"Nothing matches the current search.":"Nothing recorded in this period yet."}):(0,a.jsxs)("div",{className:"flex min-w-0 flex-col",children:[g.map(e=>{let n="provider"===t?function(e,t){if(!e)return"—";let s=t?.[e];return s||(e.length<=22?e:`${e.slice(0,14)}…`)}(e.id,m):"account"===t?e.accountName||e.id:"endpoint"===t?e.endpoint||e.id:e.rawModel||e.id,c=R(S(e,s),r),u="function"==typeof o,p=b===e.id;return(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-start gap-1",children:[(0,a.jsx)("div",{className:"min-w-0 flex-1",children:(0,a.jsx)(K,{label:n,sublabel:"provider"===t?null:"account"===t?[e.rawModel,e.provider].filter(Boolean).join(" \xb7 ")||null:e.provider||null,value:l(e),valueSecondary:i(e),detail:F({input:e.promptTokens,output:e.completionTokens,cached:e.cachedTokens,total:e.tokens}),barValue:c,status:e.id===d&&"provider"===t?"active":void 0,selected:!!u&&d===e.id,onSelect:u?()=>o(e.id):void 0,trailing:(0,a.jsxs)("span",{className:"hidden text-xs tabular-nums text-text-subtle sm:inline",title:`${y(e.requests)} requests`,children:[y(e.requests)," req"]})})}),e.requests>0?(0,a.jsx)("button",{type:"button",onClick:()=>f(p?null:e.id),"aria-expanded":p,"aria-label":p?`Hide requests for ${n}`:`Show ${e.requests} requests for ${n}`,className:["mt-1.5 shrink-0 rounded-md p-1.5 transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",p?"bg-primary/8 text-primary":"text-text-subtle hover:bg-bg-hover hover:text-text-main"].join(" "),children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:p?"expand_less":"receipt_long"})}):null]}),p?(0,a.jsx)("div",{className:"mb-1 ml-2 min-w-0",children:(0,a.jsx)(et,{provider:"provider"===t?e.id:e.provider,model:"model"===t?e.rawModel:null,period:x})}):null]},e.id)}),v>0?(0,a.jsxs)("button",{type:"button",onClick:()=>h(!0),className:"mt-1 self-start rounded-lg px-2 py-1.5 text-xs font-medium text-primary transition-colors hover:bg-primary/8 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:["Show ",v," more"]}):null,p&&e.rows.length>8?(0,a.jsxs)("button",{type:"button",onClick:()=>h(!1),className:"mt-1 self-start rounded-lg px-2 py-1.5 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text-main focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:["Show top ",8]}):null]})}function er({period:e}){let[t,s]=(0,n.useState)(null),[r,l]=(0,n.useState)(null),[i,o]=(0,n.useState)({activeRequests:[],recentRequests:[]}),[d,c]=(0,n.useState)(null),[u,x]=(0,n.useState)({}),[m,p]=(0,n.useState)(0),h=(0,n.useRef)(e);(0,n.useEffect)(()=>{h.current=e},[e]),(0,n.useEffect)(()=>{fetch("/api/provider-nodes").then(e=>e.ok?e.json():null).then(e=>{if(!e?.nodes)return;let t={};for(let s of e.nodes)s?.id&&s?.name&&(t[s.id]=s.name);x(t)}).catch(()=>{})},[]),(0,n.useEffect)(()=>{let t=new AbortController;return fetch(`/api/usage/stats?period=${e}`,{signal:t.signal}).then(e=>e.ok?e.json():null).then(t=>{if(!t){h.current===e&&c(e);return}(void 0!==t.activeRequests||void 0!==t.recentRequests)&&o(e=>({activeRequests:t.activeRequests??e.activeRequests,recentRequests:t.recentRequests??e.recentRequests})),s(e=>({...e,...t,byProvider:t.byProvider??{},byModel:t.byModel??{},byAccount:t.byAccount??{},byApiKey:t.byApiKey??{},byEndpoint:t.byEndpoint??{},last10Minutes:t.last10Minutes??[]})),l(e),c(null)}).catch(t=>{t?.name!=="AbortError"&&(console.warn("[usage] failed to load stats:",t?.message||t),h.current===e&&c(e))}),()=>t.abort()},[e,m]),(0,n.useEffect)(()=>{let t=new EventSource(`/api/usage/stream?period=${encodeURIComponent(e)}`);return t.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch(e){console.error("[usage] SSE parse error:",e);return}let a=h.current,n=void 0!==t.totalRequests&&t.period===a;(void 0!==t.activeRequests||void 0!==t.recentRequests)&&o(e=>({activeRequests:t.activeRequests??e.activeRequests,recentRequests:t.recentRequests??e.recentRequests})),s(e=>e?n?{...t,activeRequests:t.activeRequests,recentRequests:t.recentRequests,errorProvider:t.errorProvider,pending:t.pending}:{...e,activeRequests:t.activeRequests??e.activeRequests,recentRequests:t.recentRequests??e.recentRequests,errorProvider:t.errorProvider??e.errorProvider,pending:t.pending??e.pending,last10Minutes:t.last10Minutes??e.last10Minutes}:t),n&&(l(a),c(null))},t.onerror=()=>{h.current===e&&c(e)},()=>t.close()},[e]);let b=r===e,f=d===e;return(0,a.jsx)(ea,{period:e,stats:b?t:null,live:i,loading:!b&&!f,fetching:!1,onRetry:()=>{c(null),p(e=>e+1)},nodeNames:u})}let el=[{value:"today",label:"Today"},{value:"24h",label:"24h"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"60d",label:"60D"},{value:"all",label:"All"}];function ei(){return(0,a.jsx)(n.Suspense,{fallback:(0,a.jsx)(l.Qv,{}),children:(0,a.jsx)(eo,{})})}function eo(){let e=(0,r.useSearchParams)(),t=(0,r.useRouter)(),[s,i]=(0,n.useState)("today"),[o,d]=(0,n.useState)(!1),[c,u]=(0,n.useState)({type:"",message:""}),x=(0,n.useRef)(null),m=e.get("tab"),p=m&&["overview","logs","details"].includes(m)?m:"overview",h=async()=>{d(!0),u({type:"",message:""});try{let e=await fetch("/api/usage/backup");if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||"Failed to export usage data")}let t=await e.json(),s=new Blob([JSON.stringify(t,null,2)],{type:"application/json"}),a=URL.createObjectURL(s),n=document.createElement("a"),r=new Date().toISOString().slice(0,10);n.href=a,n.download=`9router-usage-backup-${r}.json`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(a),u({type:"success",message:"Usage backup downloaded successfully!"})}catch(e){u({type:"error",message:e.message||"Export failed"})}finally{d(!1)}},b=async e=>{let t=e.target.files?.[0];if(t){x.current&&(x.current.value=""),d(!0),u({type:"",message:""});try{let e=await t.text(),s=JSON.parse(e),a=await fetch("/api/usage/backup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...s,mode:"merge"})}),n=await a.json().catch(()=>({}));if(!a.ok)throw Error(n.error||"Failed to import usage data");u({type:"success",message:"Usage backup merged successfully!"})}catch(e){u({type:"error",message:e.message||"Import failed"})}finally{d(!1)}}};return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsx)(l.Iz,{options:[{value:"overview",label:"Overview"},{value:"logs",label:"Logs"},{value:"details",label:"Details"}],value:p,onChange:s=>{if(s===p)return;let a=new URLSearchParams(e);a.set("tab",s),t.push(`/dashboard/usage?${a.toString()}`,{scroll:!1})},className:"w-full sm:w-auto"}),"overview"===p&&(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsxs)("button",{type:"button",onClick:h,disabled:o,className:"flex items-center gap-1 rounded-lg border border-border bg-bg-subtle px-2.5 py-1.5 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text disabled:opacity-50",title:"Export all usage history & tokens to JSON file",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"download"}),(0,a.jsx)("span",{children:"Export"})]}),(0,a.jsxs)("button",{type:"button",onClick:()=>x.current?.click(),disabled:o,className:"flex items-center gap-1 rounded-lg border border-border bg-bg-subtle px-2.5 py-1.5 text-xs font-medium text-text-muted transition-colors hover:bg-bg-hover hover:text-text disabled:opacity-50",title:"Import usage backup JSON file (merge tokens)",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"upload"}),(0,a.jsx)("span",{children:"Import"})]}),(0,a.jsx)("input",{ref:x,type:"file",accept:".json",onChange:b,className:"hidden"})]}),(0,a.jsx)(l.Iz,{options:el,value:s,onChange:i,size:"sm",className:"w-full sm:w-auto"})]})]}),c.message&&(0,a.jsxs)("div",{className:`flex items-center justify-between rounded-lg px-3 py-2 text-xs font-medium ${"success"===c.type?"border border-success/20 bg-success/10 text-success":"border border-error/20 bg-error/10 text-error"}`,children:[(0,a.jsx)("span",{children:c.message}),(0,a.jsx)("button",{type:"button",onClick:()=>u({type:"",message:""}),"aria-label":"Dismiss",className:"shrink-0 rounded p-0.5 text-text-muted transition-colors hover:text-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"close"})})]}),"overview"===p&&(0,a.jsx)(n.Suspense,{fallback:(0,a.jsx)(l.Qv,{}),children:(0,a.jsx)(er,{period:s})}),"logs"===p&&(0,a.jsx)(l.gM,{}),"details"===p&&(0,a.jsx)(N,{})]})}}},e=>{e.O(0,[9970,6229,9063,3745,1321,705,5497,8441,3794,7358],()=>e(e.s=49501)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{16335:(e,s,n)=>{Promise.resolve().then(n.bind(n,96748)),Promise.resolve().then(n.bind(n,56319)),Promise.resolve().then(n.bind(n,56061)),Promise.resolve().then(n.bind(n,92542)),Promise.resolve().then(n.bind(n,29366)),Promise.resolve().then(n.bind(n,84588)),Promise.resolve().then(n.bind(n,97556)),Promise.resolve().then(n.bind(n,45455)),Promise.resolve().then(n.bind(n,30815)),Promise.resolve().then(n.bind(n,73579)),Promise.resolve().then(n.bind(n,92173)),Promise.resolve().then(n.bind(n,95088)),Promise.resolve().then(n.bind(n,24747)),Promise.resolve().then(n.bind(n,80752)),Promise.resolve().then(n.bind(n,23936)),Promise.resolve().then(n.bind(n,11910)),Promise.resolve().then(n.bind(n,61500)),Promise.resolve().then(n.bind(n,62899)),Promise.resolve().then(n.bind(n,94230)),Promise.resolve().then(n.bind(n,21931)),Promise.resolve().then(n.bind(n,91450)),Promise.resolve().then(n.bind(n,7648)),Promise.resolve().then(n.bind(n,25086)),Promise.resolve().then(n.bind(n,28815)),Promise.resolve().then(n.bind(n,28058)),Promise.resolve().then(n.bind(n,81127)),Promise.resolve().then(n.bind(n,72908)),Promise.resolve().then(n.bind(n,36548)),Promise.resolve().then(n.bind(n,4823)),Promise.resolve().then(n.bind(n,90882)),Promise.resolve().then(n.bind(n,51825)),Promise.resolve().then(n.bind(n,23615)),Promise.resolve().then(n.bind(n,28067)),Promise.resolve().then(n.bind(n,98)),Promise.resolve().then(n.bind(n,92622)),Promise.resolve().then(n.bind(n,21110)),Promise.resolve().then(n.bind(n,38587)),Promise.resolve().then(n.bind(n,98542)),Promise.resolve().then(n.bind(n,97677))}},e=>{e.O(0,[27,1321,705,5497,8441,3794,7358],()=>e(e.s=16335)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{16335:(e,s,n)=>{Promise.resolve().then(n.bind(n,96748)),Promise.resolve().then(n.bind(n,56319)),Promise.resolve().then(n.bind(n,56061)),Promise.resolve().then(n.bind(n,92542)),Promise.resolve().then(n.bind(n,29366)),Promise.resolve().then(n.bind(n,84588)),Promise.resolve().then(n.bind(n,97556)),Promise.resolve().then(n.bind(n,45455)),Promise.resolve().then(n.bind(n,30815)),Promise.resolve().then(n.bind(n,73579)),Promise.resolve().then(n.bind(n,92173)),Promise.resolve().then(n.bind(n,95088)),Promise.resolve().then(n.bind(n,24747)),Promise.resolve().then(n.bind(n,80752)),Promise.resolve().then(n.bind(n,23936)),Promise.resolve().then(n.bind(n,11910)),Promise.resolve().then(n.bind(n,61500)),Promise.resolve().then(n.bind(n,62899)),Promise.resolve().then(n.bind(n,94230)),Promise.resolve().then(n.bind(n,21931)),Promise.resolve().then(n.bind(n,91450)),Promise.resolve().then(n.bind(n,16405)),Promise.resolve().then(n.bind(n,25086)),Promise.resolve().then(n.bind(n,28815)),Promise.resolve().then(n.bind(n,28058)),Promise.resolve().then(n.bind(n,81127)),Promise.resolve().then(n.bind(n,72908)),Promise.resolve().then(n.bind(n,36548)),Promise.resolve().then(n.bind(n,4823)),Promise.resolve().then(n.bind(n,90882)),Promise.resolve().then(n.bind(n,51825)),Promise.resolve().then(n.bind(n,23615)),Promise.resolve().then(n.bind(n,28067)),Promise.resolve().then(n.bind(n,98)),Promise.resolve().then(n.bind(n,16767)),Promise.resolve().then(n.bind(n,21110)),Promise.resolve().then(n.bind(n,38587)),Promise.resolve().then(n.bind(n,98542)),Promise.resolve().then(n.bind(n,97677))}},e=>{e.O(0,[9970,6229,1321,705,5497,8441,3794,7358],()=>e(e.s=16335)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7370],{64533:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>d});var r=s(95155),a=s(12115),i=s(73321),n=s(84588),l=s(62630);function c({isOpen:e,onClose:t,onSave:s}){let[i,n]=(0,a.useState)({}),[d,o]=(0,a.useState)(!0),[x,m]=(0,a.useState)(!1);(0,a.useEffect)(()=>{e&&u()},[e]);let u=async()=>{o(!0);try{let e=await fetch("/api/pricing");if(e.ok){let t=await e.json();n(t)}else{let e=(0,l.ad)();n(e)}}catch(e){console.error("Failed to load pricing:",e),n((0,l.ad)())}finally{o(!1)}},h=async()=>{m(!0);try{let e=await fetch("/api/pricing",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(e.ok)s?.(),t();else{let t=await e.json();alert(`Failed to save pricing: ${t.error}`)}}catch(e){console.error("Failed to save pricing:",e),alert("Failed to save pricing")}finally{m(!1)}},p=async()=>{if(confirm("Reset all pricing to defaults? This cannot be undone."))try{if((await fetch("/api/pricing",{method:"DELETE"})).ok){let e=(0,l.ad)();n(e)}}catch(e){console.error("Failed to reset pricing:",e),alert("Failed to reset pricing")}};if(!e)return null;let j=Object.keys(i).sort(),b=["input","output","cached","reasoning","cache_creation"];return(0,r.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:(0,r.jsxs)("div",{className:"bg-bg-base border border-border rounded-lg shadow-xl max-w-6xl w-full max-h-[90vh] overflow-hidden flex flex-col",children:[(0,r.jsxs)("div",{className:"p-4 border-b border-border flex items-center justify-between",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold",children:"Pricing Configuration"}),(0,r.jsx)("button",{onClick:t,className:"text-text-muted hover:text-text text-2xl leading-none",children:"\xd7"})]}),(0,r.jsx)("div",{className:"flex-1 overflow-auto p-4",children:d?(0,r.jsx)("div",{className:"text-center py-8 text-text-muted",children:"Loading pricing data..."}):(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{className:"bg-bg-subtle border border-border rounded-lg p-3 text-sm",children:[(0,r.jsx)("p",{className:"font-medium mb-1",children:"Pricing Rates Format"}),(0,r.jsxs)("p",{className:"text-text-muted",children:["All rates are in ",(0,r.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens."]})]}),j.map(e=>{let t=Object.keys(i[e]).sort();return(0,r.jsxs)("div",{className:"border border-border rounded-lg overflow-hidden",children:[(0,r.jsx)("div",{className:"bg-bg-subtle px-4 py-2 font-semibold text-sm",children:e.toUpperCase()}),(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full text-sm",children:[(0,r.jsx)("thead",{className:"bg-bg-hover text-text-muted uppercase text-xs",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-3 py-2 text-left",children:"Model"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Input"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Output"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Cached"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Reasoning"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Cache Creation"})]})}),(0,r.jsx)("tbody",{className:"divide-y divide-border",children:t.map(t=>(0,r.jsxs)("tr",{className:"hover:bg-bg-subtle/50",children:[(0,r.jsx)("td",{className:"px-3 py-2 font-medium",children:t}),b.map(s=>(0,r.jsx)("td",{className:"px-3 py-2",children:(0,r.jsx)("input",{type:"number",step:"0.01",min:"0",value:i[e][t][s]||0,onChange:r=>{let a;!isNaN(a=parseFloat(r.target.value))&&!(a<0)&&n(r=>{let i={...r};return i[e]||(i[e]={}),i[e][t]||(i[e][t]={}),i[e][t][s]=a,i})},className:"w-20 px-2 py-1 text-right bg-bg-base border border-border rounded focus:outline-none focus:border-primary"})},s))]},t))})]})})]},e)}),0===j.length&&(0,r.jsx)("div",{className:"text-center py-8 text-text-muted",children:"No pricing data available"})]})}),(0,r.jsxs)("div",{className:"p-4 border-t border-border flex items-center justify-between gap-2",children:[(0,r.jsx)("button",{onClick:p,className:"px-4 py-2 text-sm text-red-500 hover:bg-red-500/10 rounded border border-red-500/20 transition-colors",disabled:x,children:"Reset to Defaults"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:t,className:"px-4 py-2 text-sm text-text-muted hover:text-text border border-border rounded transition-colors",disabled:x,children:"Cancel"}),(0,r.jsx)("button",{onClick:h,className:"px-4 py-2 text-sm bg-primary text-white rounded hover:bg-primary/90 transition-colors disabled:opacity-50",disabled:x,children:x?"Saving...":"Save Changes"})]})]})]})})}function d(){(0,i.useRouter)();let[e,t]=(0,a.useState)(!1),[s,l]=(0,a.useState)(null),[d,o]=(0,a.useState)(!0);(0,a.useEffect)(()=>{x()},[]);let x=async()=>{o(!0);try{let e=await fetch("/api/pricing");if(e.ok){let t=await e.json();l(t)}}catch(e){console.error("Failed to load pricing:",e)}finally{o(!1)}};return(0,r.jsxs)("div",{className:"max-w-6xl mx-auto p-6 space-y-6",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-3xl font-bold",children:"Pricing Settings"}),(0,r.jsx)("p",{className:"text-text-muted mt-1",children:"Configure pricing rates for cost tracking and calculations"})]}),(0,r.jsx)("button",{onClick:()=>t(!0),className:"px-4 py-2 bg-primary text-white rounded hover:bg-primary/90 transition-colors",children:"Edit Pricing"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,r.jsxs)(n.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Total Models"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1",children:d?"...":(()=>{if(!s)return 0;let e=0;for(let t in s)e+=Object.keys(s[t]).length;return e})()})]}),(0,r.jsxs)(n.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Providers"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1",children:d?"...":(!s?[]:Object.keys(s).sort()).length})]}),(0,r.jsxs)(n.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Status"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1 text-success",children:d?"...":"Active"})]})]}),(0,r.jsxs)(n.default,{className:"p-6",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold mb-4",children:"How Pricing Works"}),(0,r.jsxs)("div",{className:"space-y-3 text-sm text-text-muted",children:[(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Cost Calculation:"})," Costs are calculated based on token usage and pricing rates. Each request's cost is determined by: (input_tokens \xd7 input_rate) + (output_tokens \xd7 output_rate) + (cached_tokens \xd7 cached_rate)"]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Pricing Format:"})," All rates are in ",(0,r.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: An input rate of 2.50 means $2.50 per 1,000,000 input tokens."]}),(0,r.jsx)("p",{children:(0,r.jsx)("strong",{children:"Token Types:"})}),(0,r.jsxs)("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Input:"})," Standard prompt tokens"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Output:"})," Completion/response tokens"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Cached:"})," Cached input tokens (typically 50% of input rate)"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Reasoning:"})," Special reasoning/thinking tokens (fallback to output rate)"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Cache Creation:"})," Tokens used to create cache entries (fallback to input rate)"]})]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Custom Pricing:"})," You can override default pricing for specific models. Reset to defaults anytime to restore standard rates."]})]})]}),(0,r.jsxs)(n.default,{className:"p-6",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold",children:"Current Pricing Overview"}),(0,r.jsx)("button",{onClick:()=>t(!0),className:"text-primary hover:underline text-sm",children:"View Full Details"})]}),d?(0,r.jsx)("div",{className:"text-center py-4 text-text-muted",children:"Loading pricing data..."}):s?(0,r.jsxs)("div",{className:"space-y-3",children:[Object.keys(s).slice(0,5).map(e=>(0,r.jsxs)("div",{className:"text-sm",children:[(0,r.jsxs)("span",{className:"font-semibold",children:[e.toUpperCase(),":"]})," ",(0,r.jsxs)("span",{className:"text-text-muted",children:[Object.keys(s[e]).length," models"]})]},e)),Object.keys(s).length>5&&(0,r.jsxs)("div",{className:"text-sm text-text-muted",children:["+ ",Object.keys(s).length-5," more providers"]})]}):(0,r.jsx)("div",{className:"text-text-muted",children:"No pricing data available"})]}),e&&(0,r.jsx)(c,{isOpen:e,onClose:()=>t(!1),onSave:()=>{x()}})]})}},73321:(e,t,s)=>{"use strict";var r=s(74645);s.o(r,"notFound")&&s.d(t,{notFound:function(){return r.notFound}}),s.o(r,"useParams")&&s.d(t,{useParams:function(){return r.useParams}}),s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})},78566:(e,t,s)=>{Promise.resolve().then(s.bind(s,64533))}},e=>{e.O(0,[705,8441,3794,7358],()=>e(e.s=78566)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7370],{64533:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>d});var r=s(95155),a=s(12115),i=s(73321),l=s(84588),n=s(62630);function c({isOpen:e,onClose:t,onSave:s}){let[i,l]=(0,a.useState)({}),[d,o]=(0,a.useState)(!0),[x,m]=(0,a.useState)(!1);(0,a.useEffect)(()=>{e&&h()},[e]);let h=async()=>{o(!0);try{let e=await fetch("/api/pricing");if(e.ok){let t=await e.json();l(t)}else{let e=(0,n.ad)();l(e)}}catch(e){console.error("Failed to load pricing:",e),l((0,n.ad)())}finally{o(!1)}},p=async()=>{m(!0);try{let e=await fetch("/api/pricing",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(e.ok)s?.(),t();else{let t=await e.json();alert(`Failed to save pricing: ${t.error}`)}}catch(e){console.error("Failed to save pricing:",e),alert("Failed to save pricing")}finally{m(!1)}},u=async()=>{if(confirm("Reset all pricing to defaults? This cannot be undone."))try{if((await fetch("/api/pricing",{method:"DELETE"})).ok){let e=(0,n.ad)();l(e)}}catch(e){console.error("Failed to reset pricing:",e),alert("Failed to reset pricing")}};if(!e)return null;let j=Object.keys(i).sort(),b=["input","output","cached","reasoning","cache_creation"];return(0,r.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:(0,r.jsxs)("div",{className:"bg-bg-base border border-border rounded-lg shadow-xl max-w-6xl w-full max-h-[90vh] overflow-hidden flex flex-col",children:[(0,r.jsxs)("div",{className:"p-4 border-b border-border flex items-center justify-between",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold",children:"Pricing Configuration"}),(0,r.jsx)("button",{onClick:t,className:"text-text-muted hover:text-text text-2xl leading-none",children:"\xd7"})]}),(0,r.jsx)("div",{className:"flex-1 overflow-auto p-4",children:d?(0,r.jsx)("div",{className:"text-center py-8 text-text-muted",children:"Loading pricing data..."}):(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{className:"bg-bg-subtle border border-border rounded-lg p-3 text-sm",children:[(0,r.jsx)("p",{className:"font-medium mb-1",children:"Pricing Rates Format"}),(0,r.jsxs)("p",{className:"text-text-muted",children:["All rates are in ",(0,r.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens."]})]}),j.map(e=>{let t=Object.keys(i[e]).sort();return(0,r.jsxs)("div",{className:"border border-border rounded-lg overflow-hidden",children:[(0,r.jsx)("div",{className:"bg-bg-subtle px-4 py-2 font-semibold text-sm",children:e.toUpperCase()}),(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full text-sm",children:[(0,r.jsx)("thead",{className:"bg-bg-hover text-text-muted uppercase text-xs",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-3 py-2 text-left",children:"Model"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Input"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Output"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Cached"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Reasoning"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Cache Creation"})]})}),(0,r.jsx)("tbody",{className:"divide-y divide-border",children:t.map(t=>(0,r.jsxs)("tr",{className:"hover:bg-bg-subtle/50",children:[(0,r.jsx)("td",{className:"px-3 py-2 font-medium",children:t}),b.map(s=>(0,r.jsx)("td",{className:"px-3 py-2",children:(0,r.jsx)("input",{type:"number",step:"0.01",min:"0",value:i[e][t][s]||0,onChange:r=>{let a;!isNaN(a=parseFloat(r.target.value))&&!(a<0)&&l(r=>{let i={...r};return i[e]||(i[e]={}),i[e][t]||(i[e][t]={}),i[e][t][s]=a,i})},className:"w-20 px-2 py-1 text-right bg-bg-base border border-border rounded focus:outline-none focus:border-primary"})},s))]},t))})]})})]},e)}),0===j.length&&(0,r.jsx)("div",{className:"text-center py-8 text-text-muted",children:"No pricing data available"})]})}),(0,r.jsxs)("div",{className:"p-4 border-t border-border flex items-center justify-between gap-2",children:[(0,r.jsx)("button",{onClick:u,className:"px-4 py-2 text-sm text-red-500 hover:bg-red-500/10 rounded border border-red-500/20 transition-colors",disabled:x,children:"Reset to Defaults"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:t,className:"px-4 py-2 text-sm text-text-muted hover:text-text border border-border rounded transition-colors",disabled:x,children:"Cancel"}),(0,r.jsx)("button",{onClick:p,className:"px-4 py-2 text-sm bg-primary text-white rounded hover:bg-primary/90 transition-colors disabled:opacity-50",disabled:x,children:x?"Saving...":"Save Changes"})]})]})]})})}function d(){(0,i.useRouter)();let[e,t]=(0,a.useState)(!1),[s,n]=(0,a.useState)(null),[d,o]=(0,a.useState)(!0);(0,a.useEffect)(()=>{x()},[]);let x=async()=>{o(!0);try{let e=await fetch("/api/pricing");if(e.ok){let t=await e.json();n(t)}}catch(e){console.error("Failed to load pricing:",e)}finally{o(!1)}};return(0,r.jsxs)("div",{className:"max-w-6xl mx-auto p-6 space-y-6",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-3xl font-bold",children:"Pricing Settings"}),(0,r.jsx)("p",{className:"text-text-muted mt-1",children:"Configure pricing rates for cost tracking and calculations"})]}),(0,r.jsx)("button",{onClick:()=>t(!0),className:"px-4 py-2 bg-primary text-white rounded hover:bg-primary/90 transition-colors",children:"Edit Pricing"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,r.jsxs)(l.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Total Models"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1",children:d?"...":(()=>{if(!s)return 0;let e=0;for(let t in s)e+=Object.keys(s[t]).length;return e})()})]}),(0,r.jsxs)(l.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Providers"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1",children:d?"...":(!s?[]:Object.keys(s).sort()).length})]}),(0,r.jsxs)(l.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Status"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1 text-success",children:d?"...":"Active"})]})]}),(0,r.jsxs)(l.default,{className:"p-6",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold mb-4",children:"How Pricing Works"}),(0,r.jsxs)("div",{className:"space-y-3 text-sm text-text-muted",children:[(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Cost Calculation:"})," Costs are calculated based on token usage and pricing rates. Each request's cost is determined by: (input_tokens \xd7 input_rate) + (output_tokens \xd7 output_rate) + (cached_tokens \xd7 cached_rate)"]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Pricing Format:"})," All rates are in ",(0,r.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: An input rate of 2.50 means $2.50 per 1,000,000 input tokens."]}),(0,r.jsx)("p",{children:(0,r.jsx)("strong",{children:"Token Types:"})}),(0,r.jsxs)("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Input:"})," Standard prompt tokens"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Output:"})," Completion/response tokens"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Cached:"})," Cached input tokens (typically 50% of input rate)"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Reasoning:"})," Special reasoning/thinking tokens (fallback to output rate)"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Cache Creation:"})," Tokens used to create cache entries (fallback to input rate)"]})]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Custom Pricing:"})," You can override default pricing for specific models. Reset to defaults anytime to restore standard rates."]})]})]}),(0,r.jsxs)(l.default,{className:"p-6",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold",children:"Current Pricing Overview"}),(0,r.jsx)("button",{onClick:()=>t(!0),className:"text-primary hover:underline text-sm",children:"View Full Details"})]}),d?(0,r.jsx)("div",{className:"text-center py-4 text-text-muted",children:"Loading pricing data..."}):s?(0,r.jsxs)("div",{className:"space-y-3",children:[Object.keys(s).slice(0,5).map(e=>(0,r.jsxs)("div",{className:"text-sm",children:[(0,r.jsxs)("span",{className:"font-semibold",children:[e.toUpperCase(),":"]})," ",(0,r.jsxs)("span",{className:"text-text-muted",children:[Object.keys(s[e]).length," models"]})]},e)),Object.keys(s).length>5&&(0,r.jsxs)("div",{className:"text-sm text-text-muted",children:["+ ",Object.keys(s).length-5," more providers"]})]}):(0,r.jsx)("div",{className:"text-text-muted",children:"No pricing data available"})]}),e&&(0,r.jsx)(c,{isOpen:e,onClose:()=>t(!1),onSave:()=>{x()}})]})}},78566:(e,t,s)=>{Promise.resolve().then(s.bind(s,64533))}},e=>{e.O(0,[9970,705,8441,3794,7358],()=>e(e.s=78566)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{40246:(e,t,s)=>{Promise.resolve().then(s.bind(s,83016))},83016:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(95155),r=s(12115),i=s(35497);function n(){let[e,t]=(0,r.useState)(""),[s,n]=(0,r.useState)(""),[l,o]=(0,r.useState)(""),[d,c]=(0,r.useState)(0),[x,m]=(0,r.useState)(!1),[u,h]=(0,r.useState)(null),[p,b]=(0,r.useState)("password"),[w,f]=(0,r.useState)("oidc"),[g,j]=(0,r.useState)(!1),[S,N]=(0,r.useState)("Sign in with OIDC"),[y,v]=(0,r.useState)(!1),[C,k]=(0,r.useState)("Sign in with SAML SSO"),[O,L]=(0,r.useState)(!1),[P,A]=(0,r.useState)("");(0,r.useEffect)(()=>{if(d<=0)return;let e=setInterval(()=>c(e=>e>0?e-1:0),1e3);return()=>clearInterval(e)},[d]),(0,r.useEffect)(()=>{!async function(){let e=new AbortController,t=setTimeout(()=>e.abort(),5e3),s=window.location.origin;try{let a=await fetch(`${s}/api/auth/status`,{signal:e.signal});if(clearTimeout(t),a.ok){let e=await a.json();if(!0===e.authenticated||!1===e.requireLogin)return void window.location.assign("/dashboard");h(!!e.hasPassword),b(e.authMode||"password"),f(e.ssoType||"oidc"),j(!0===e.oidcConfigured),N(e.oidcLoginLabel||"Sign in with OIDC"),v(!0===e.samlConfigured),k(e.samlLoginLabel||"Sign in with SAML SSO")}else h(!0)}catch(e){clearTimeout(t),h(!0)}}()},[]);let D=async t=>{t.preventDefault(),m(!0),n(""),o("");try{let t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:e})});if(t.ok){if((await t.json()).mustChangePassword)return void L(!0);window.location.assign("/dashboard")}else{let e=await t.json();n(e.error||"Invalid password"),e.resetHint&&o(e.resetHint),e.retryAfter&&c(Number(e.retryAfter))}}catch(e){n("An error occurred. Please try again.")}finally{m(!1)}},I=async t=>{t.preventDefault(),m(!0),n("");try{let t=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentPassword:e,newPassword:P})});if(t.ok)window.location.assign("/dashboard");else{let e=await t.json();n(e.error||"Failed to set password")}}catch(e){n("An error occurred. Please try again.")}finally{m(!1)}},E=["sso","oidc","saml","both"].includes(p),T=w||("saml"===p?"saml":"oidc"),M=E&&"saml"===T&&y,$=E&&"oidc"===T&&g,_=M||$,F="password"===p||"both"===p||!_;return null===u?(0,a.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-4",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-primary"}),(0,a.jsx)("p",{className:"text-text-muted mt-4",children:"Loading..."})]})}):(0,a.jsxs)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-4 relative overflow-hidden",children:[(0,a.jsx)("div",{className:"landing-grid absolute inset-0 pointer-events-none","aria-hidden":"true"}),(0,a.jsxs)("div",{className:"relative z-10 w-full max-w-md",children:[(0,a.jsxs)("div",{className:"text-center mb-8",children:[(0,a.jsx)("h1",{className:"text-3xl font-bold text-primary mb-2",children:"9Router"}),(0,a.jsx)("p",{className:"text-text-muted",children:M?"Sign in with SAML 2.0 Single Sign-On":$?"Sign in with your OIDC provider to access the dashboard":"Enter your password to access the dashboard"})]}),(0,a.jsx)(i.Zp,{children:O?(0,a.jsxs)("form",{onSubmit:I,className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-amber-600 dark:text-amber-400 text-center",children:"Set a new password before accessing the dashboard remotely."}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium",children:"New password"}),(0,a.jsx)(i.pd,{type:"password",placeholder:"Enter new password",value:P,onChange:e=>A(e.target.value),required:!0,autoFocus:!0}),s&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:s})]}),(0,a.jsx)(i.$n,{type:"submit",variant:"primary",className:"w-full",loading:x,disabled:!P,children:"Set password"})]}):(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[M&&(0,a.jsx)(i.$n,{type:"button",variant:"primary",className:"w-full",onClick:()=>{window.location.href="/api/auth/saml/start"},children:C}),$&&(0,a.jsx)(i.$n,{type:"button",variant:"primary",className:"w-full",onClick:()=>{window.location.href="/api/auth/oidc/start"},children:S}),_&&F&&(0,a.jsx)("div",{className:"h-px bg-border/60"}),F?(0,a.jsxs)("form",{onSubmit:D,className:"flex flex-col gap-4",children:[E&&!_&&(0,a.jsxs)("p",{className:"text-xs text-amber-600 dark:text-amber-400 text-center",children:["saml"===T?"SAML SSO":"OIDC"," login is enabled, but configuration is incomplete. Password login is still available for recovery."]}),"both"===p&&_&&(0,a.jsxs)("p",{className:"text-xs text-text-muted text-center",children:["Password and ","saml"===T?"SAML SSO":"OIDC"," login are both enabled."]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium",children:"Password"}),(0,a.jsx)(i.pd,{type:"password",placeholder:"Enter password",value:e,onChange:e=>t(e.target.value),required:!0,autoFocus:!$}),s&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:s}),d>0&&(0,a.jsxs)("p",{className:"text-xs text-amber-600 dark:text-amber-400",children:["Locked. Retry in ",(0,a.jsxs)("span",{className:"font-mono",children:[d,"s"]}),"."]}),l&&(0,a.jsxs)("p",{className:"text-xs text-text-muted",children:["Forgot password? Open ",(0,a.jsx)("code",{className:"bg-sidebar px-1 rounded",children:"9router"})," CLI on the host → ",(0,a.jsx)("b",{children:"Settings"})," → ",(0,a.jsx)("b",{children:"Reset Password to Default"}),"."]})]}),(0,a.jsx)(i.$n,{type:"submit",variant:"primary",className:"w-full",loading:x,disabled:d>0,children:d>0?`Wait ${d}s`:"Login"}),(0,a.jsxs)("p",{className:"text-xs text-center text-text-muted mt-2",children:["Default password is ",(0,a.jsx)("code",{className:"bg-sidebar px-1 rounded",children:"123456"})]}),!1===u&&(0,a.jsx)("p",{className:"text-xs text-center text-amber-600 dark:text-amber-400",children:"Security risk: no password set. You will be asked to set one when logging in remotely."})]}):s&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:s})]})})]})]})}}},e=>{e.O(0,[27,1321,705,5497,8441,3794,7358],()=>e(e.s=40246)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{40246:(e,t,s)=>{Promise.resolve().then(s.bind(s,83016))},83016:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(95155),r=s(12115),i=s(35497);function n(){let[e,t]=(0,r.useState)(""),[s,n]=(0,r.useState)(""),[l,o]=(0,r.useState)(""),[d,c]=(0,r.useState)(0),[x,m]=(0,r.useState)(!1),[u,h]=(0,r.useState)(null),[p,b]=(0,r.useState)("password"),[w,f]=(0,r.useState)("oidc"),[g,j]=(0,r.useState)(!1),[S,N]=(0,r.useState)("Sign in with OIDC"),[y,v]=(0,r.useState)(!1),[C,k]=(0,r.useState)("Sign in with SAML SSO"),[O,L]=(0,r.useState)(!1),[P,A]=(0,r.useState)("");(0,r.useEffect)(()=>{if(d<=0)return;let e=setInterval(()=>c(e=>e>0?e-1:0),1e3);return()=>clearInterval(e)},[d]),(0,r.useEffect)(()=>{!async function(){let e=new AbortController,t=setTimeout(()=>e.abort(),5e3),s=window.location.origin;try{let a=await fetch(`${s}/api/auth/status`,{signal:e.signal});if(clearTimeout(t),a.ok){let e=await a.json();if(!0===e.authenticated||!1===e.requireLogin)return void window.location.assign("/dashboard");h(!!e.hasPassword),b(e.authMode||"password"),f(e.ssoType||"oidc"),j(!0===e.oidcConfigured),N(e.oidcLoginLabel||"Sign in with OIDC"),v(!0===e.samlConfigured),k(e.samlLoginLabel||"Sign in with SAML SSO")}else h(!0)}catch(e){clearTimeout(t),h(!0)}}()},[]);let D=async t=>{t.preventDefault(),m(!0),n(""),o("");try{let t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:e})});if(t.ok){if((await t.json()).mustChangePassword)return void L(!0);window.location.assign("/dashboard")}else{let e=await t.json();n(e.error||"Invalid password"),e.resetHint&&o(e.resetHint),e.retryAfter&&c(Number(e.retryAfter))}}catch(e){n("An error occurred. Please try again.")}finally{m(!1)}},I=async t=>{t.preventDefault(),m(!0),n("");try{let t=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentPassword:e,newPassword:P})});if(t.ok)window.location.assign("/dashboard");else{let e=await t.json();n(e.error||"Failed to set password")}}catch(e){n("An error occurred. Please try again.")}finally{m(!1)}},E=["sso","oidc","saml","both"].includes(p),T=w||("saml"===p?"saml":"oidc"),M=E&&"saml"===T&&y,$=E&&"oidc"===T&&g,_=M||$,F="password"===p||"both"===p||!_;return null===u?(0,a.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-4",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-primary"}),(0,a.jsx)("p",{className:"text-text-muted mt-4",children:"Loading..."})]})}):(0,a.jsxs)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-4 relative overflow-hidden",children:[(0,a.jsx)("div",{className:"landing-grid absolute inset-0 pointer-events-none","aria-hidden":"true"}),(0,a.jsxs)("div",{className:"relative z-10 w-full max-w-md",children:[(0,a.jsxs)("div",{className:"text-center mb-8",children:[(0,a.jsx)("h1",{className:"text-3xl font-bold text-primary mb-2",children:"9Router"}),(0,a.jsx)("p",{className:"text-text-muted",children:M?"Sign in with SAML 2.0 Single Sign-On":$?"Sign in with your OIDC provider to access the dashboard":"Enter your password to access the dashboard"})]}),(0,a.jsx)(i.Zp,{children:O?(0,a.jsxs)("form",{onSubmit:I,className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-amber-600 dark:text-amber-400 text-center",children:"Set a new password before accessing the dashboard remotely."}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium",children:"New password"}),(0,a.jsx)(i.pd,{type:"password",placeholder:"Enter new password",value:P,onChange:e=>A(e.target.value),required:!0,autoFocus:!0}),s&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:s})]}),(0,a.jsx)(i.$n,{type:"submit",variant:"primary",className:"w-full",loading:x,disabled:!P,children:"Set password"})]}):(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[M&&(0,a.jsx)(i.$n,{type:"button",variant:"primary",className:"w-full",onClick:()=>{window.location.href="/api/auth/saml/start"},children:C}),$&&(0,a.jsx)(i.$n,{type:"button",variant:"primary",className:"w-full",onClick:()=>{window.location.href="/api/auth/oidc/start"},children:S}),_&&F&&(0,a.jsx)("div",{className:"h-px bg-border/60"}),F?(0,a.jsxs)("form",{onSubmit:D,className:"flex flex-col gap-4",children:[E&&!_&&(0,a.jsxs)("p",{className:"text-xs text-amber-600 dark:text-amber-400 text-center",children:["saml"===T?"SAML SSO":"OIDC"," login is enabled, but configuration is incomplete. Password login is still available for recovery."]}),"both"===p&&_&&(0,a.jsxs)("p",{className:"text-xs text-text-muted text-center",children:["Password and ","saml"===T?"SAML SSO":"OIDC"," login are both enabled."]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium",children:"Password"}),(0,a.jsx)(i.pd,{type:"password",placeholder:"Enter password",value:e,onChange:e=>t(e.target.value),required:!0,autoFocus:!$}),s&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:s}),d>0&&(0,a.jsxs)("p",{className:"text-xs text-amber-600 dark:text-amber-400",children:["Locked. Retry in ",(0,a.jsxs)("span",{className:"font-mono",children:[d,"s"]}),"."]}),l&&(0,a.jsxs)("p",{className:"text-xs text-text-muted",children:["Forgot password? Open ",(0,a.jsx)("code",{className:"bg-sidebar px-1 rounded",children:"9router"})," CLI on the host → ",(0,a.jsx)("b",{children:"Settings"})," → ",(0,a.jsx)("b",{children:"Reset Password to Default"}),"."]})]}),(0,a.jsx)(i.$n,{type:"submit",variant:"primary",className:"w-full",loading:x,disabled:d>0,children:d>0?`Wait ${d}s`:"Login"}),(0,a.jsxs)("p",{className:"text-xs text-center text-text-muted mt-2",children:["Default password is ",(0,a.jsx)("code",{className:"bg-sidebar px-1 rounded",children:"123456"})]}),!1===u&&(0,a.jsx)("p",{className:"text-xs text-center text-amber-600 dark:text-amber-400",children:"Security risk: no password set. You will be asked to set one when logging in remotely."})]}):s&&(0,a.jsx)("p",{className:"text-xs text-red-500",children:s})]})})]})]})}}},e=>{e.O(0,[9970,6229,1321,705,5497,8441,3794,7358],()=>e(e.s=40246)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5592],{13888:(t,e,r)=>{function i(t){if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}r.d(e,{B0:()=>tA,C1:()=>rN,Dx:()=>rn,EJ:()=>rL,E_:()=>tR,F:()=>rC,FL:()=>rO,G6:()=>rI,J7:()=>rc,Ks:()=>te,MI:()=>rS,MO:()=>rA,OF:()=>Q,OH:()=>rU,Oq:()=>rB,QL:()=>rV,St:()=>rl,Uc:()=>eA,Vy:()=>ed,WG:()=>rz,Y_:()=>eG,Yz:()=>O,Zm:()=>e1,a0:()=>tk,au:()=>eC,br:()=>rQ,dg:()=>to,fA:()=>tD,kO:()=>rP,kc:()=>rq,l1:()=>ro,l_:()=>ei,lw:()=>rF,n:()=>tx,n6:()=>eV,oh:()=>eG,ok:()=>rG,os:()=>rM,qA:()=>eR,uo:()=>e7,vM:()=>$,vQ:()=>B,vX:()=>Z,wU:()=>tv,xu:()=>rj,ys:()=>rE});var s,a,o,u,h,_,f,l,c,d,p,m,v,g,y,T,w,b,k,x,D,R,M,A,C,E,O={autoSleep:120,force3D:"auto",nullTargetWarn:1,units:{lineHeight:""}},S={duration:.5,overwrite:!1,delay:0},z=2*Math.PI,P=z/4,F=0,L=Math.sqrt,I=Math.cos,U=Math.sin,B=function(t){return"string"==typeof t},q=function(t){return"function"==typeof t},N=function(t){return"number"==typeof t},Q=function(t){return void 0===t},V=function(t){return"object"==typeof t},j=function(t){return!1!==t},G=function(){return"u">typeof window},W=function(t){return q(t)||B(t)},Y="function"==typeof ArrayBuffer&&ArrayBuffer.isView||function(){},H=Array.isArray,J=/random\([^)]+\)/g,K=/,\s*/g,X=/(?:-?\.?\d|\.)+/gi,Z=/[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,$=/[-+=.]*\d+[.e-]*\d*[a-z%]*/g,tt=/[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,te=/[+-]=-?[.\d]+/,tr=/[^,'"\[\]\s]+/gi,ti=/^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,tn={},ts={},ta=function(t){return(ts=tL(t,tn))&&rM},to=function(t,e){return console.warn("Invalid property",t,"set to",e,"Missing plugin? gsap.registerPlugin()")},tu=function(t,e){return!e&&console.warn(t)},th=function(t,e){return t&&(tn[t]=e)&&ts&&(ts[t]=e)||tn},t_=function(){return 0},tf={suppressEvents:!0,isStart:!0,kill:!1},tl={suppressEvents:!0,kill:!1},tc={suppressEvents:!0},td={},tp=[],tm={},tv={},tg={},ty=30,tT=[],tw="",tb=function(t){var e,r,i=t[0];if(V(i)||q(i)||(t=[t]),!(e=(i._gsap||{}).harness)){for(r=tT.length;r--&&!tT[r].targetTest(i););e=tT[r]}for(r=t.length;r--;)t[r]&&(t[r]._gsap||(t[r]._gsap=new eV(t[r],e)))||t.splice(r,1);return t},tk=function(t){return t._gsap||tb(ea(t))[0]._gsap},tx=function(t,e,r){return(r=t[e])&&q(r)?t[e]():Q(r)&&t.getAttribute&&t.getAttribute(e)||r},tD=function(t,e){return(t=t.split(",")).forEach(e)||t},tR=function(t){return Math.round(1e5*t)/1e5||0},tM=function(t){return Math.round(1e7*t)/1e7||0},tA=function(t,e){var r=e.charAt(0),i=parseFloat(e.substr(2));return t=parseFloat(t),"+"===r?t+i:"-"===r?t-i:"*"===r?t*i:t/i},tC=function(t,e){for(var r=e.length,i=0;0>t.indexOf(e[i])&&++i<r;);return i<r},tE=function(){var t,e,r=tp.length,i=tp.slice(0);for(tm={},tp.length=0,t=0;t<r;t++)(e=i[t])&&e._lazy&&(e.render(e._lazy[0],e._lazy[1],!0)._lazy=0)},tO=function(t){return!!(t._initted||t._startAt||t.add)},tS=function(t,e,r,i){tp.length&&!w&&tE(),t.render(e,r,i||!!(w&&e<0&&tO(t))),tp.length&&!w&&tE()},tz=function(t){var e=parseFloat(t);return(e||0===e)&&(t+"").match(tr).length<2?e:B(t)?t.trim():t},tP=function(t){return t},tF=function(t,e){for(var r in e)r in t||(t[r]=e[r]);return t},tL=function(t,e){for(var r in e)t[r]=e[r];return t},tI=function t(e,r){for(var i in r)"__proto__"!==i&&"constructor"!==i&&"prototype"!==i&&(e[i]=V(r[i])?t(e[i]||(e[i]={}),r[i]):r[i]);return e},tU=function(t,e){var r,i={};for(r in t)r in e||(i[r]=t[r]);return i},tB=function(t){var e,r=t.parent||k,i=t.keyframes?(e=H(t.keyframes),function(t,r){for(var i in r)i in t||"duration"===i&&e||"ease"===i||(t[i]=r[i])}):tF;if(j(t.inherit))for(;r;)i(t,r.vars.defaults),r=r.parent||r._dp;return t},tq=function(t,e){for(var r=t.length,i=r===e.length;i&&r--&&t[r]===e[r];);return r<0},tN=function(t,e,r,i,n){void 0===r&&(r="_first"),void 0===i&&(i="_last");var s,a=t[i];if(n)for(s=e[n];a&&a[n]>s;)a=a._prev;return a?(e._next=a._next,a._next=e):(e._next=t[r],t[r]=e),e._next?e._next._prev=e:t[i]=e,e._prev=a,e.parent=e._dp=t,e},tQ=function(t,e,r,i){void 0===r&&(r="_first"),void 0===i&&(i="_last");var n=e._prev,s=e._next;n?n._next=s:t[r]===e&&(t[r]=s),s?s._prev=n:t[i]===e&&(t[i]=n),e._next=e._prev=e.parent=null},tV=function(t,e){t.parent&&(!e||t.parent.autoRemoveChildren)&&t.parent.remove&&t.parent.remove(t),t._act=0},tj=function(t,e){if(t&&(!e||e._end>t._dur||e._start<0))for(var r=t;r;)r._dirty=1,r=r.parent;return t},tG=function(t){for(var e=t.parent;e&&e.parent;)e._dirty=1,e.totalDuration(),e=e.parent;return t},tW=function(t,e,r,i){return t._startAt&&(w?t._startAt.revert(tl):t.vars.immediateRender&&!t.vars.autoRevert||t._startAt.render(e,!0,i))},tY=function(t){return t._repeat?tH(t._tTime,t=t.duration()+t._rDelay)*t:0},tH=function(t,e){var r=Math.floor(t=tM(t/e));return t&&r===t?r-1:r},tJ=function(t,e){return(t-e._start)*e._ts+(e._ts>=0?0:e._dirty?e.totalDuration():e._tDur)},tK=function(t){return t._end=tM(t._start+(t._tDur/Math.abs(t._ts||t._rts||1e-8)||0))},tX=function(t,e){var r=t._dp;return r&&r.smoothChildTiming&&t._ts&&(t._start=tM(r._time-(t._ts>0?e/t._ts:-(((t._dirty?t.totalDuration():t._tDur)-e)/t._ts))),tK(t),r._dirty||tj(r,t)),t},tZ=function(t,e){var r;if((e._time||!e._dur&&e._initted||e._start<t._time&&(e._dur||!e.add))&&(r=tJ(t.rawTime(),e),(!e._dur||er(0,e.totalDuration(),r)-e._tTime>1e-8)&&e.render(r,!0)),tj(t,e)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur<t.duration())for(r=t;r._dp;)r.rawTime()>=0&&r.totalTime(r._tTime),r=r._dp;t._zTime=-1e-8}},t$=function(t,e,r,i){return e.parent&&tV(e),e._start=tM((N(r)?r:r||t!==k?t7(t,r,e):t._time)+e._delay),e._end=tM(e._start+(e.totalDuration()/Math.abs(e.timeScale())||0)),tN(t,e,"_first","_last",t._sort?"_start":0),t5(e)||(t._recent=e),i||tZ(t,e),t._ts<0&&tX(t,t._tTime),t},t0=function(t,e){return(tn.ScrollTrigger||to("scrollTrigger",e))&&tn.ScrollTrigger.create(e,t)},t1=function(t,e,r,i,n){return(e2(t,e,n),t._initted)?!r&&t._pt&&!w&&(t._dur&&!1!==t.vars.lazy||!t._dur&&t.vars.lazy)&&A!==eC.frame?(tp.push(t),t._lazy=[n,i],1):void 0:1},t2=function t(e){var r=e.parent;return r&&r._ts&&r._initted&&!r._lock&&(0>r.rawTime()||t(r))},t5=function(t){var e=t.data;return"isFromStart"===e||"isStart"===e},t8=function(t,e,r,i){var n,s,a,o=t.ratio,u=e<0||!e&&(!t._start&&t2(t)&&!(!t._initted&&t5(t))||(t._ts<0||t._dp._ts<0)&&!t5(t))?0:1,h=t._rDelay,_=0;if(h&&t._repeat&&(s=tH(_=er(0,t._tDur,e),h),t._yoyo&&1&s&&(u=1-u),s!==tH(t._tTime,h)&&(o=1-u,t.vars.repeatRefresh&&t._initted&&t.invalidate())),u!==o||w||i||1e-8===t._zTime||!e&&t._zTime){if(!t._initted&&t1(t,e,i,r,_))return;for(a=t._zTime,t._zTime=e||1e-8*!!r,r||(r=e&&!a),t.ratio=u,t._from&&(u=1-u),t._time=0,t._tTime=_,n=t._pt;n;)n.r(u,n.d),n=n._next;e<0&&tW(t,e,r,!0),t._onUpdate&&!r&&ev(t,"onUpdate"),_&&t._repeat&&!r&&t.parent&&ev(t,"onRepeat"),(e>=t._tDur||e<0)&&t.ratio===u&&(u&&tV(t,1),r||w||(ev(t,u?"onComplete":"onReverseComplete",!0),t._prom&&t._prom()))}else t._zTime||(t._zTime=e)},t3=function(t,e,r){var i;if(r>e)for(i=t._first;i&&i._start<=r;){if("isPause"===i.data&&i._start>e)return i;i=i._next}else for(i=t._last;i&&i._start>=r;){if("isPause"===i.data&&i._start<e)return i;i=i._prev}},t6=function(t,e,r,i){var n=t._repeat,s=tM(e)||0,a=t._tTime/t._tDur;return a&&!i&&(t._time*=s/t._dur),t._dur=s,t._tDur=n?n<0?1e10:tM(s*(n+1)+t._rDelay*n):s,a>0&&!i&&tX(t,t._tTime=t._tDur*a),t.parent&&tK(t),r||tj(t.parent,t),t},t4=function(t){return t instanceof eG?tj(t):t6(t,t._dur)},t9={_start:0,endTime:t_,totalDuration:t_},t7=function t(e,r,i){var n,s,a,o=e.labels,u=e._recent||t9,h=e.duration()>=1e8?u.endTime(!1):e._dur;return B(r)&&(isNaN(r)||r in o)?(s=r.charAt(0),a="%"===r.substr(-1),n=r.indexOf("="),"<"===s||">"===s)?(n>=0&&(r=r.replace(/=/,"")),("<"===s?u._start:u.endTime(u._repeat>=0))+(parseFloat(r.substr(1))||0)*(a?(n<0?u:i).totalDuration()/100:1)):n<0?(r in o||(o[r]=h),o[r]):(s=parseFloat(r.charAt(n-1)+r.substr(n+1)),a&&i&&(s=s/100*(H(i)?i[0]:i).totalDuration()),n>1?t(e,r.substr(0,n-1),i)+s:h+s):null==r?h:+r},et=function(t,e,r){var i,n,s=N(e[1]),a=(s?2:1)+(t<2?0:1),o=e[a];if(s&&(o.duration=e[1]),o.parent=r,t){for(i=o,n=r;n&&!("immediateRender"in i);)i=n.vars.defaults||{},n=j(n.vars.inherit)&&n.parent;o.immediateRender=j(i.immediateRender),t<2?o.runBackwards=1:o.startAt=e[a-1]}return new e7(e[0],o,e[a+1])},ee=function(t,e){return t||0===t?e(t):e},er=function(t,e,r){return r<t?t:r>e?e:r},ei=function(t,e){return B(t)&&(e=ti.exec(t))?e[1]:""},en=[].slice,es=function(t,e){return t&&V(t)&&"length"in t&&(!e&&!t.length||t.length-1 in t&&V(t[0]))&&!t.nodeType&&t!==x},ea=function(t,e,r){var i;return b&&!e&&b.selector?b.selector(t):B(t)&&!r&&(D||!eE())?en.call((e||R).querySelectorAll(t),0):H(t)?(void 0===i&&(i=[]),t.forEach(function(t){var e;return B(t)&&!r||es(t,1)?(e=i).push.apply(e,ea(t)):i.push(t)})||i):es(t)?en.call(t,0):t?[t]:[]},eo=function(t){return t=ea(t)[0]||tu("Invalid scope")||{},function(e){var r=t.current||t.nativeElement||t;return ea(e,r.querySelectorAll?r:r===t?tu("Invalid scope")||R.createElement("div"):t)}},eu=function(t){return t.sort(function(){return .5-Math.random()})},eh=function(t){if(q(t))return t;var e=V(t)?t:{each:t},r=eU(e.ease),i=e.from||0,n=parseFloat(e.base)||0,s={},a=i>0&&i<1,o=isNaN(i)||a,u=e.axis,h=i,_=i;return B(i)?h=_=({center:.5,edges:.5,end:1})[i]||0:!a&&o&&(h=i[0],_=i[1]),function(t,a,f){var l,c,d,p,m,v,g,y,T,w=(f||e).length,b=s[w];if(!b){if(!(T="auto"===e.grid?0:(e.grid||[1,1e8])[1])){for(g=-1e8;g<(g=f[T++].getBoundingClientRect().left)&&T<w;);T<w&&T--}for(b=s[w]=[],l=o?Math.min(T,w)*h-.5:i%T,c=1e8===T?0:o?w*_/T-.5:i/T|0,g=0,y=1e8,v=0;v<w;v++)d=v%T-l,p=c-(v/T|0),b[v]=m=u?Math.abs("y"===u?p:d):L(d*d+p*p),m>g&&(g=m),m<y&&(y=m);"random"===i&&eu(b),b.max=g-y,b.min=y,b.v=w=(parseFloat(e.amount)||parseFloat(e.each)*(T>w?w-1:u?"y"===u?w/T:T:Math.max(T,w/T))||0)*("edges"===i?-1:1),b.b=w<0?n-w:n,b.u=ei(e.amount||e.each)||0,r=r&&w<0?eI(r):r}return w=(b[t]-b.min)/b.max||0,tM(b.b+(r?r(w):w)*b.v)+b.u}},e_=function(t){var e=Math.pow(10,((t+"").split(".")[1]||"").length);return function(r){var i=tM(Math.round(parseFloat(r)/t)*t*e);return(i-i%1)/e+(N(r)?0:ei(r))}},ef=function(t,e){var r,i,n=H(t);return!n&&V(t)&&(r=n=t.radius||1e8,t.values?(i=!N((t=ea(t.values))[0]))&&(r*=r):t=e_(t.increment)),ee(e,n?q(t)?function(e){return Math.abs((i=t(e))-e)<=r?i:e}:function(e){for(var n,s,a=parseFloat(i?e.x:e),o=parseFloat(i?e.y:0),u=1e8,h=0,_=t.length;_--;)(n=i?(n=t[_].x-a)*n+(s=t[_].y-o)*s:Math.abs(t[_]-a))<u&&(u=n,h=_);return h=!r||u<=r?t[h]:e,i||h===e||N(e)?h:h+ei(e)}:e_(t))},el=function(t,e,r,i){return ee(H(t)?!e:!0===r?(r=0,!1):!i,function(){return H(t)?t[~~(Math.random()*t.length)]:(i=(r=r||1e-5)<1?Math.pow(10,(r+"").length-2):1)&&Math.floor(Math.round((t-r/2+Math.random()*(e-t+.99*r))/r)*r*i)/i})},ec=function(t,e,r){return ee(r,function(r){return t[~~e(r)]})},ed=function(t){return t.replace(J,function(t){var e=t.indexOf("[")+1,r=t.substring(e||7,e?t.indexOf("]"):t.length-1).split(K);return el(e?r:+r[0],e?0:+r[1],+r[2]||1e-5)})},ep=function(t,e,r,i,n){var s=e-t,a=i-r;return ee(n,function(e){return r+((e-t)/s*a||0)})},em=function(t,e,r){var i,n,s,a=t.labels,o=1e8;for(i in a)(n=a[i]-e)<0==!!r&&n&&o>(n=Math.abs(n))&&(s=i,o=n);return s},ev=function(t,e,r){var i,n,s,a=t.vars,o=a[e],u=b,h=t._ctx;if(o)return i=a[e+"Params"],n=a.callbackScope||t,r&&tp.length&&tE(),h&&(b=h),s=i?o.apply(n,i):o.call(n),b=u,s},eg=function(t){return tV(t),t.scrollTrigger&&t.scrollTrigger.kill(!!w),1>t.progress()&&ev(t,"onInterrupt"),t},ey=[],eT=function(t){if(t)if(t=!t.name&&t.default||t,G()||t.headless){var e=t.name,r=q(t),i=e&&!r&&t.init?function(){this._props=[]}:t,n={init:t_,render:ru,add:e$,kill:r_,modifier:rh,rawVars:0},s={targetTest:0,get:0,getSetter:rn,aliases:{},register:0};if(eE(),t!==i){if(tv[e])return;tF(i,tF(tU(t,n),s)),tL(i.prototype,tL(n,tU(t,s))),tv[i.prop=e]=i,t.targetTest&&(tT.push(i),td[e]=1),e=("css"===e?"CSS":e.charAt(0).toUpperCase()+e.substr(1))+"Plugin"}th(e,i),t.register&&t.register(rM,i,rc)}else ey.push(t)},ew={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},eb=function(t,e,r){return(6*(t+=t<0?1:t>1?-1:0)<1?e+(r-e)*t*6:t<.5?r:3*t<2?e+(r-e)*(2/3-t)*6:e)*255+.5|0},ek=function(t,e,r){var i,n,s,a,o,u,h,_,f,l,c=t?N(t)?[t>>16,t>>8&255,255&t]:0:ew.black;if(!c){if(","===t.substr(-1)&&(t=t.substr(0,t.length-1)),ew[t])c=ew[t];else if("#"===t.charAt(0)){if(t.length<6&&(i=t.charAt(1),t="#"+i+i+(n=t.charAt(2))+n+(s=t.charAt(3))+s+(5===t.length?t.charAt(4)+t.charAt(4):"")),9===t.length)return[(c=parseInt(t.substr(1,6),16))>>16,c>>8&255,255&c,parseInt(t.substr(7),16)/255];c=[(t=parseInt(t.substr(1),16))>>16,t>>8&255,255&t]}else if("hsl"===t.substr(0,3))if(c=l=t.match(X),e){if(~t.indexOf("="))return c=t.match(Z),r&&c.length<4&&(c[3]=1),c}else a=c[0]%360/360,o=c[1]/100,n=(u=c[2]/100)<=.5?u*(o+1):u+o-u*o,i=2*u-n,c.length>3&&(c[3]*=1),c[0]=eb(a+1/3,i,n),c[1]=eb(a,i,n),c[2]=eb(a-1/3,i,n);else c=t.match(X)||ew.transparent;c=c.map(Number)}return e&&!l&&(i=c[0]/255,u=((h=Math.max(i,n=c[1]/255,s=c[2]/255))+(_=Math.min(i,n,s)))/2,h===_?a=o=0:(f=h-_,o=u>.5?f/(2-h-_):f/(h+_),a=(h===i?(n-s)/f+6*(n<s):h===n?(s-i)/f+2:(i-n)/f+4)*60),c[0]=~~(a+.5),c[1]=~~(100*o+.5),c[2]=~~(100*u+.5)),r&&c.length<4&&(c[3]=1),c},ex=function(t){var e=[],r=[],i=-1;return t.split(eR).forEach(function(t){var n=t.match($)||[];e.push.apply(e,n),r.push(i+=n.length+1)}),e.c=r,e},eD=function(t,e,r){var i,n,s,a,o="",u=(t+o).match(eR),h=e?"hsla(":"rgba(",_=0;if(!u)return t;if(u=u.map(function(t){return(t=ek(t,e,1))&&h+(e?t[0]+","+t[1]+"%,"+t[2]+"%,"+t[3]:t.join(","))+")"}),r&&(s=ex(t),(i=r.c).join(o)!==s.c.join(o)))for(a=(n=t.replace(eR,"1").split($)).length-1;_<a;_++)o+=n[_]+(~i.indexOf(_)?u.shift()||h+"0,0,0,0)":(s.length?s:u.length?u:r).shift());if(!n)for(a=(n=t.split(eR)).length-1;_<a;_++)o+=n[_]+u[_];return o+n[a]},eR=function(){var t,e="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b";for(t in ew)e+="|"+t+"\\b";return RegExp(e+")","gi")}(),eM=/hsl[a]?\(/,eA=function(t){var e,r=t.join(" ");if(eR.lastIndex=0,eR.test(r))return e=eM.test(r),t[1]=eD(t[1],e),t[0]=eD(t[0],e,ex(t[1])),!0},eC=(f=Date.now,l=500,c=33,p=d=f(),m=1e3/240,v=1e3/240,g=[],y=function t(e){var r,i,n,o,y=f()-p,T=!0===e;if((y>l||y<0)&&(d+=y-c),p+=y,((r=(n=p-d)-v)>0||T)&&(o=++u.frame,h=n-1e3*u.time,u.time=n/=1e3,v+=r+(r>=m?4:m-r),i=1),T||(s=a(t)),i)for(_=0;_<g.length;_++)g[_](n,h,o,e)},u={time:0,frame:0,tick:function(){y(!0)},deltaRatio:function(t){return h/(1e3/(t||60))},wake:function(){M&&(!D&&G()&&(R=(x=D=window).document||{},tn.gsap=rM,(x.gsapVersions||(x.gsapVersions=[])).push(rM.version),ta(ts||x.GreenSockGlobals||!x.gsap&&x||{}),ey.forEach(eT)),o="u">typeof requestAnimationFrame&&requestAnimationFrame,s&&u.sleep(),a=o||function(t){return setTimeout(t,v-1e3*u.time+1|0)},E=1,y(2))},sleep:function(){(o?cancelAnimationFrame:clearTimeout)(s),E=0,a=t_},lagSmoothing:function(t,e){c=Math.min(e||33,l=t||1/0)},fps:function(t){m=1e3/(t||240),v=1e3*u.time+m},add:function(t,e,r){var i=e?function(e,r,n,s){t(e,r,n,s),u.remove(i)}:t;return u.remove(t),g[r?"unshift":"push"](i),eE(),i},remove:function(t,e){~(e=g.indexOf(t))&&g.splice(e,1)&&_>=e&&_--},_listeners:g}),eE=function(){return!E&&eC.wake()},eO={},eS=/^[\d.\-M][\d.\-,\s]/,ez=/["']/g,eP=function(t){for(var e,r,i,n={},s=t.substr(1,t.length-3).split(":"),a=s[0],o=1,u=s.length;o<u;o++)r=s[o],e=o!==u-1?r.lastIndexOf(","):r.length,i=r.substr(0,e),n[a]=isNaN(i)?i.replace(ez,"").trim():+i,a=r.substr(e+1).trim();return n},eF=function(t){var e=t.indexOf("(")+1,r=t.indexOf(")"),i=t.indexOf("(",e);return t.substring(e,~i&&i<r?t.indexOf(")",r+1):r)},eL=function(t){var e=(t+"").split("("),r=eO[e[0]];return r&&e.length>1&&r.config?r.config.apply(null,~t.indexOf("{")?[eP(e[1])]:eF(t).split(",").map(tz)):eO._CE&&eS.test(t)?eO._CE("",t):r},eI=function(t){return function(e){return 1-t(1-e)}},eU=function(t,e){return t&&(q(t)?t:eO[t]||eL(t))||e},eB=function(t,e,r,i){void 0===r&&(r=function(t){return 1-e(1-t)}),void 0===i&&(i=function(t){return t<.5?e(2*t)/2:1-e((1-t)*2)/2});var n,s={easeIn:e,easeOut:r,easeInOut:i};return tD(t,function(t){for(var e in eO[t]=tn[t]=s,eO[n=t.toLowerCase()]=r,s)eO[n+("easeIn"===e?".in":"easeOut"===e?".out":".inOut")]=eO[t+"."+e]=s[e]}),s},eq=function(t){return function(e){return e<.5?(1-t(1-2*e))/2:.5+t((e-.5)*2)/2}},eN=function t(e,r,i){var n=r>=1?r:1,s=(i||(e?.3:.45))/(r<1?r:1),a=s/z*(Math.asin(1/n)||0),o=function(t){return 1===t?1:n*Math.pow(2,-10*t)*U((t-a)*s)+1},u="out"===e?o:"in"===e?function(t){return 1-o(1-t)}:eq(o);return s=z/s,u.config=function(r,i){return t(e,r,i)},u},eQ=function t(e,r){void 0===r&&(r=1.70158);var i=function(t){return t?--t*t*((r+1)*t+r)+1:0},n="out"===e?i:"in"===e?function(t){return 1-i(1-t)}:eq(i);return n.config=function(r){return t(e,r)},n};tD("Linear,Quad,Cubic,Quart,Quint,Strong",function(t,e){var r=e<5?e+1:e;eB(t+",Power"+(r-1),e?function(t){return Math.pow(t,r)}:function(t){return t},function(t){return 1-Math.pow(1-t,r)},function(t){return t<.5?Math.pow(2*t,r)/2:1-Math.pow((1-t)*2,r)/2})}),eO.Linear.easeNone=eO.none=eO.Linear.easeIn,eB("Elastic",eN("in"),eN("out"),eN()),eY=2*(eW=1/2.75),eH=2.5*eW,eB("Bounce",function(t){return 1-eJ(1-t)},eJ=function(t){return t<eW?7.5625*t*t:t<eY?7.5625*Math.pow(t-1.5/2.75,2)+.75:t<eH?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*Math.pow(t-2.625/2.75,2)+.984375}),eB("Expo",function(t){return Math.pow(2,10*(t-1))*t+t*t*t*t*t*t*(1-t)}),eB("Circ",function(t){return-(L(1-t*t)-1)}),eB("Sine",function(t){return 1===t?1:-I(t*P)+1}),eB("Back",eQ("in"),eQ("out"),eQ()),eO.SteppedEase=eO.steps=tn.SteppedEase={config:function(t,e){void 0===t&&(t=1);var r=1/t,i=t+ +!e,n=+!!e,s=.99999999;return function(t){return((i*er(0,s,t)|0)+n)*r}}},S.ease=eO["quad.out"],tD("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt",function(t){return tw+=t+","+t+"Params,"});var eV=function(t,e){this.id=F++,t._gsap=this,this.target=t,this.harness=e,this.get=e?e.get:tx,this.set=e?e.getSetter:rn},ej=function(){function t(t){this.vars=t,this._delay=+t.delay||0,(this._repeat=t.repeat===1/0?-2:t.repeat||0)&&(this._rDelay=t.repeatDelay||0,this._yoyo=!!t.yoyo||!!t.yoyoEase),this._ts=1,t6(this,+t.duration,1,1),this.data=t.data,b&&(this._ctx=b,b.data.push(this)),E||eC.wake()}var e=t.prototype;return e.delay=function(t){return t||0===t?(this.parent&&this.parent.smoothChildTiming&&this.startTime(this._start+t-this._delay),this._delay=t,this):this._delay},e.duration=function(t){return arguments.length?this.totalDuration(this._repeat>0?t+(t+this._rDelay)*this._repeat:t):this.totalDuration()&&this._dur},e.totalDuration=function(t){return arguments.length?(this._dirty=0,t6(this,this._repeat<0?t:(t-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},e.totalTime=function(t,e){if(eE(),!arguments.length)return this._tTime;var r=this._dp;if(r&&r.smoothChildTiming&&this._ts){for(tX(this,t),!r._dp||r.parent||tZ(r,this);r&&r.parent;)r.parent._time!==r._start+(r._ts>=0?r._tTime/r._ts:-((r.totalDuration()-r._tTime)/r._ts))&&r.totalTime(r._tTime,!0),r=r.parent;!this.parent&&this._dp.autoRemoveChildren&&(this._ts>0&&t<this._tDur||this._ts<0&&t>0||!this._tDur&&!t)&&t$(this._dp,this,this._start-this._delay)}return(this._tTime!==t||!this._dur&&!e||this._initted&&1e-8===Math.abs(this._zTime)||!this._initted&&this._dur&&t||!t&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=t),tS(this,t,e)),this},e.time=function(t,e){return arguments.length?this.totalTime(Math.min(this.totalDuration(),t+tY(this))%(this._dur+this._rDelay)||(t?this._dur:0),e):this._time},e.totalProgress=function(t,e){return arguments.length?this.totalTime(this.totalDuration()*t,e):this.totalDuration()?Math.min(1,this._tTime/this._tDur):this.rawTime()>=0&&this._initted?1:0},e.progress=function(t,e){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&!(1&this.iteration())?1-t:t)+tY(this),e):this.duration()?Math.min(1,this._time/this._dur):+(this.rawTime()>0)},e.iteration=function(t,e){var r=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(t-1)*r,e):this._repeat?tH(this._tTime,r)+1:1},e.timeScale=function(t,e){if(!arguments.length)return -1e-8===this._rts?0:this._rts;if(this._rts===t)return this;var r=this.parent&&this._ts?tJ(this.parent._time,this):this._tTime;return this._rts=+t||0,this._ts=this._ps||-1e-8===t?0:this._rts,this.totalTime(er(-Math.abs(this._delay),this.totalDuration(),r),!1!==e),tK(this),tG(this)},e.paused=function(t){return arguments.length?(this._ps!==t&&(this._ps=t,t?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(eE(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,1===this.progress()&&1e-8!==Math.abs(this._zTime)&&(this._tTime-=1e-8)))),this):this._ps},e.startTime=function(t){if(arguments.length){this._start=tM(t);var e=this.parent||this._dp;return e&&(e._sort||!this.parent)&&t$(e,this,this._start-this._delay),this}return this._start},e.endTime=function(t){return this._start+(j(t)?this.totalDuration():this.duration())/Math.abs(this._ts||1)},e.rawTime=function(t){var e=this.parent||this._dp;return e?t&&(!this._ts||this._repeat&&this._time&&1>this.totalProgress())?this._tTime%(this._dur+this._rDelay):this._ts?tJ(e.rawTime(t),this):this._tTime:this._tTime},e.revert=function(t){void 0===t&&(t=tc);var e=w;return w=t,tO(this)&&(this.timeline&&this.timeline.revert(t),this.totalTime(-.01,t.suppressEvents)),"nested"!==this.data&&!1!==t.kill&&this.kill(),w=e,this},e.globalTime=function(t){for(var e=this,r=arguments.length?t:e.rawTime();e;)r=e._start+r/(Math.abs(e._ts)||1),e=e._dp;return!this.parent&&this._sat?this._sat.globalTime(t):r},e.repeat=function(t){return arguments.length?(this._repeat=t===1/0?-2:t,t4(this)):-2===this._repeat?1/0:this._repeat},e.repeatDelay=function(t){if(arguments.length){var e=this._time;return this._rDelay=t,t4(this),e?this.time(e):this}return this._rDelay},e.yoyo=function(t){return arguments.length?(this._yoyo=t,this):this._yoyo},e.seek=function(t,e){return this.totalTime(t7(this,t),j(e))},e.restart=function(t,e){return this.play().totalTime(t?-this._delay:0,j(e)),this._dur||(this._zTime=-1e-8),this},e.play=function(t,e){return null!=t&&this.seek(t,e),this.reversed(!1).paused(!1)},e.reverse=function(t,e){return null!=t&&this.seek(t||this.totalDuration(),e),this.reversed(!0).paused(!1)},e.pause=function(t,e){return null!=t&&this.seek(t,e),this.paused(!0)},e.resume=function(){return this.paused(!1)},e.reversed=function(t){return arguments.length?(!!t!==this.reversed()&&this.timeScale(-this._rts||(t?-1e-8:0)),this):this._rts<0},e.invalidate=function(){return this._initted=this._act=0,this._zTime=-1e-8,this},e.isActive=function(){var t,e=this.parent||this._dp,r=this._start;return!!(!e||this._ts&&this._initted&&e.isActive()&&(t=e.rawTime(!0))>=r&&t<this.endTime(!0)-1e-8)},e.eventCallback=function(t,e,r){var i=this.vars;return arguments.length>1?(e?(i[t]=e,r&&(i[t+"Params"]=r),"onUpdate"===t&&(this._onUpdate=e)):delete i[t],this):i[t]},e.then=function(t){var e=this,r=e._prom;return new Promise(function(i){var n=q(t)?t:tP,s=function(){var t=e.then;e.then=null,r&&r(),q(n)&&(n=n(e))&&(n.then||n===e)&&(e.then=t),i(n),e.then=t};e._initted&&1===e.totalProgress()&&e._ts>=0||!e._tTime&&e._ts<0?s():e._prom=s})},e.kill=function(){eg(this)},t}();tF(ej.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-1e-8,_prom:0,_ps:!1,_rts:1});var eG=function(t){function e(e,r){var n;return void 0===e&&(e={}),(n=t.call(this,e)||this).labels={},n.smoothChildTiming=!!e.smoothChildTiming,n.autoRemoveChildren=!!e.autoRemoveChildren,n._sort=j(e.sortChildren),k&&t$(e.parent||k,i(n),r),e.reversed&&n.reverse(),e.paused&&n.paused(!0),e.scrollTrigger&&t0(i(n),e.scrollTrigger),n}n(e,t);var r=e.prototype;return r.to=function(t,e,r){return et(0,arguments,this),this},r.from=function(t,e,r){return et(1,arguments,this),this},r.fromTo=function(t,e,r,i){return et(2,arguments,this),this},r.set=function(t,e,r){return e.duration=0,e.parent=this,tB(e).repeatDelay||(e.repeat=0),e.immediateRender=!!e.immediateRender,new e7(t,e,t7(this,r),1),this},r.call=function(t,e,r){return t$(this,e7.delayedCall(0,t,e),r)},r.staggerTo=function(t,e,r,i,n,s,a){return r.duration=e,r.stagger=r.stagger||i,r.onComplete=s,r.onCompleteParams=a,r.parent=this,new e7(t,r,t7(this,n)),this},r.staggerFrom=function(t,e,r,i,n,s,a){return r.runBackwards=1,tB(r).immediateRender=j(r.immediateRender),this.staggerTo(t,e,r,i,n,s,a)},r.staggerFromTo=function(t,e,r,i,n,s,a,o){return i.startAt=r,tB(i).immediateRender=j(i.immediateRender),this.staggerTo(t,e,i,n,s,a,o)},r.render=function(t,e,r){var i,n,s,a,o,u,h,_,f,l,c,d,p=this._time,m=this._dirty?this.totalDuration():this._tDur,v=this._dur,g=t<=0?0:tM(t),y=this._zTime<0!=t<0&&(this._initted||!v);if(this!==k&&g>m&&t>=0&&(g=m),g!==this._tTime||r||y){if(p!==this._time&&v&&(g+=this._time-p,t+=this._time-p),i=g,f=this._start,u=!(_=this._ts),y&&(v||(p=this._zTime),(t||!e)&&(this._zTime=t)),this._repeat){if(c=this._yoyo,o=v+this._rDelay,this._repeat<-1&&t<0)return this.totalTime(100*o+t,e,r);if(i=tM(g%o),g===m?(a=this._repeat,i=v):((a=~~(l=tM(g/o)))&&a===l&&(i=v,a--),i>v&&(i=v)),l=tH(this._tTime,o),!p&&this._tTime&&l!==a&&this._tTime-l*o-this._dur<=0&&(l=a),c&&1&a&&(i=v-i,d=1),a!==l&&!this._lock){var T=c&&1&l,b=T===(c&&1&a);if(a<l&&(T=!T),p=T?0:g%v?v:g,this._lock=1,this.render(p||(d?0:tM(a*o)),e,!v)._lock=0,this._tTime=g,!e&&this.parent&&ev(this,"onRepeat"),this.vars.repeatRefresh&&!d&&(this.invalidate()._lock=1,l=a),p&&p!==this._time||!this._ts!==u||this.vars.onRepeat&&!this.parent&&!this._act||(v=this._dur,m=this._tDur,b&&(this._lock=2,p=T?v:-1e-4,this.render(p,!0),this.vars.repeatRefresh&&!d&&this.invalidate()),this._lock=0,!this._ts&&!u))return this}}if(this._hasPause&&!this._forcing&&this._lock<2&&(h=t3(this,tM(p),tM(i)))&&(g-=i-(i=h._start)),this._tTime=g,this._time=i,this._act=!!_,this._initted||(this._onUpdate=this.vars.onUpdate,this._initted=1,this._zTime=t,p=0),!p&&g&&v&&!e&&!l&&(ev(this,"onStart"),this._tTime!==g))return this;if(i>=p&&t>=0)for(n=this._first;n;){if(s=n._next,(n._act||i>=n._start)&&n._ts&&h!==n){if(n.parent!==this)return this.render(t,e,r);if(n.render(n._ts>0?(i-n._start)*n._ts:(n._dirty?n.totalDuration():n._tDur)+(i-n._start)*n._ts,e,r),i!==this._time||!this._ts&&!u){h=0,s&&(g+=this._zTime=-1e-8);break}}n=s}else{n=this._last;for(var x=t<0?t:i;n;){if(s=n._prev,(n._act||x<=n._end)&&n._ts&&h!==n){if(n.parent!==this)return this.render(t,e,r);if(n.render(n._ts>0?(x-n._start)*n._ts:(n._dirty?n.totalDuration():n._tDur)+(x-n._start)*n._ts,e,r||w&&tO(n)),i!==this._time||!this._ts&&!u){h=0,s&&(g+=this._zTime=x?-1e-8:1e-8);break}}n=s}}if(h&&!e&&(this.pause(),h.render(i>=p?0:-1e-8)._zTime=i>=p?1:-1,this._ts))return this._start=f,tK(this),this.render(t,e,r);this._onUpdate&&!e&&ev(this,"onUpdate",!0),(g===m&&this._tTime>=this.totalDuration()||!g&&p)&&(f===this._start||Math.abs(_)!==Math.abs(this._ts))&&!this._lock&&((t||!v)&&(g===m&&this._ts>0||!g&&this._ts<0)&&tV(this,1),e||t<0&&!p||!g&&!p&&m||(ev(this,g===m&&t>=0?"onComplete":"onReverseComplete",!0),this._prom&&!(g<m&&this.timeScale()>0)&&this._prom()))}return this},r.add=function(t,e){var r=this;if(N(e)||(e=t7(this,e,t)),!(t instanceof ej)){if(H(t))return t.forEach(function(t){return r.add(t,e)}),this;if(B(t))return this.addLabel(t,e);if(!q(t))return this;t=e7.delayedCall(0,t)}return this!==t?t$(this,t,e):this},r.getChildren=function(t,e,r,i){void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===r&&(r=!0),void 0===i&&(i=-1e8);for(var n=[],s=this._first;s;)s._start>=i&&(s instanceof e7?e&&n.push(s):(r&&n.push(s),t&&n.push.apply(n,s.getChildren(!0,e,r)))),s=s._next;return n},r.getById=function(t){for(var e=this.getChildren(1,1,1),r=e.length;r--;)if(e[r].vars.id===t)return e[r]},r.remove=function(t){return B(t)?this.removeLabel(t):q(t)?this.killTweensOf(t):(t.parent===this&&tQ(this,t),t===this._recent&&(this._recent=this._last),tj(this))},r.totalTime=function(e,r){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=tM(eC.time-(this._ts>0?e/this._ts:-((this.totalDuration()-e)/this._ts)))),t.prototype.totalTime.call(this,e,r),this._forcing=0,this):this._tTime},r.addLabel=function(t,e){return this.labels[t]=t7(this,e),this},r.removeLabel=function(t){return delete this.labels[t],this},r.addPause=function(t,e,r){var i=e7.delayedCall(0,e||t_,r);return i.data="isPause",this._hasPause=1,t$(this,i,t7(this,t))},r.removePause=function(t){var e=this._first;for(t=t7(this,t);e;)e._start===t&&"isPause"===e.data&&tV(e),e=e._next},r.killTweensOf=function(t,e,r){for(var i=this.getTweensOf(t,r),n=i.length;n--;)eK!==i[n]&&i[n].kill(t,e);return this},r.getTweensOf=function(t,e){for(var r,i=[],n=ea(t),s=this._first,a=N(e);s;)s instanceof e7?tC(s._targets,n)&&(a?(!eK||s._initted&&s._ts)&&s.globalTime(0)<=e&&s.globalTime(s.totalDuration())>e:!e||s.isActive())&&i.push(s):(r=s.getTweensOf(n,e)).length&&i.push.apply(i,r),s=s._next;return i},r.tweenTo=function(t,e){e=e||{};var r,i=this,n=t7(i,t),s=e,a=s.startAt,o=s.onStart,u=s.onStartParams,h=s.immediateRender,_=e7.to(i,tF({ease:e.ease||"none",lazy:!1,immediateRender:!1,time:n,overwrite:"auto",duration:e.duration||Math.abs((n-(a&&"time"in a?a.time:i._time))/i.timeScale())||1e-8,onStart:function(){if(i.pause(),!r){var t=e.duration||Math.abs((n-(a&&"time"in a?a.time:i._time))/i.timeScale());_._dur!==t&&t6(_,t,0,1).render(_._time,!0,!0),r=1}o&&o.apply(_,u||[])}},e));return h?_.render(0):_},r.tweenFromTo=function(t,e,r){return this.tweenTo(e,tF({startAt:{time:t7(this,t)}},r))},r.recent=function(){return this._recent},r.nextLabel=function(t){return void 0===t&&(t=this._time),em(this,t7(this,t))},r.previousLabel=function(t){return void 0===t&&(t=this._time),em(this,t7(this,t),1)},r.currentLabel=function(t){return arguments.length?this.seek(t,!0):this.previousLabel(this._time+1e-8)},r.shiftChildren=function(t,e,r){void 0===r&&(r=0);var i,n=this._first,s=this.labels;for(t=tM(t);n;)n._start>=r&&(n._start+=t,n._end+=t),n=n._next;if(e)for(i in s)s[i]>=r&&(s[i]+=t);return tj(this)},r.invalidate=function(e){var r=this._first;for(this._lock=0;r;)r.invalidate(e),r=r._next;return t.prototype.invalidate.call(this,e)},r.clear=function(t){void 0===t&&(t=!0);for(var e,r=this._first;r;)e=r._next,this.remove(r),r=e;return this._dp&&(this._time=this._tTime=this._pTime=0),t&&(this.labels={}),tj(this)},r.totalDuration=function(t){var e,r,i,n=0,s=this._last,a=1e8;if(arguments.length)return this.timeScale((this._repeat<0?this.duration():this.totalDuration())/(this.reversed()?-t:t));if(this._dirty){for(i=this.parent;s;)e=s._prev,s._dirty&&s.totalDuration(),(r=s._start)>a&&this._sort&&s._ts&&!this._lock?(this._lock=1,t$(this,s,r-s._delay,1)._lock=0):a=r,r<0&&s._ts&&(n-=r,(!i&&!this._dp||i&&i.smoothChildTiming)&&(this._start+=tM(r/this._ts),this._time-=r,this._tTime-=r),this.shiftChildren(-r,!1,-Infinity),a=0),s._end>n&&s._ts&&(n=s._end),s=e;t6(this,this===k&&this._time>n?this._time:n,1,1),this._dirty=0}return this._tDur},e.updateRoot=function(t){if(k._ts&&(tS(k,tJ(t,k)),A=eC.frame),eC.frame>=ty){ty+=O.autoSleep||120;var e=k._first;if((!e||!e._ts)&&O.autoSleep&&eC._listeners.length<2){for(;e&&!e._ts;)e=e._next;e||eC.sleep()}}},e}(ej);tF(eG.prototype,{_lock:0,_hasPause:0,_forcing:0});var eW,eY,eH,eJ,eK,eX,eZ=function(t,e,r,i,n,s,a){var o,u,h,_,f,l,c,d,p=new rc(this._pt,t,e,0,1,ro,null,n),m=0,v=0;for(p.b=r,p.e=i,r+="",i+="",(c=~i.indexOf("random("))&&(i=ed(i)),s&&(s(d=[r,i],t,e),r=d[0],i=d[1]),u=r.match(tt)||[];o=tt.exec(i);)_=o[0],f=i.substring(m,o.index),h?h=(h+1)%5:"rgba("===f.substr(-5)&&(h=1),_!==u[v++]&&(l=parseFloat(u[v-1])||0,p._pt={_next:p._pt,p:f||1===v?f:",",s:l,c:"="===_.charAt(1)?tA(l,_)-l:parseFloat(_)-l,m:h&&h<4?Math.round:0},m=tt.lastIndex);return p.c=m<i.length?i.substring(m,i.length):"",p.fp=a,(te.test(i)||c)&&(p.e=0),this._pt=p,p},e$=function(t,e,r,i,n,s,a,o,u,h){q(i)&&(i=i(n||0,t,s));var _,f=t[e],l="get"!==r?r:q(f)?u?t[e.indexOf("set")||!q(t["get"+e.substr(3)])?e:"get"+e.substr(3)](u):t[e]():f,c=q(f)?u?rr:re:rt;if(B(i)&&(~i.indexOf("random(")&&(i=ed(i)),"="===i.charAt(1)&&((_=tA(l,i)+(ei(l)||0))||0===_)&&(i=_)),!h||l!==i||eX)return isNaN(l*i)||""===i?(f||e in t||to(e,i),eZ.call(this,t,e,l,i,c,o||O.stringFilter,u)):(_=new rc(this._pt,t,e,+l||0,i-(l||0),"boolean"==typeof f?ra:rs,0,c),u&&(_.fp=u),a&&_.modifier(a,this,t),this._pt=_)},e0=function(t,e,r,i,n){if(q(t)&&(t=e6(t,n,e,r,i)),!V(t)||t.style&&t.nodeType||H(t)||Y(t))return B(t)?e6(t,n,e,r,i):t;var s,a={};for(s in t)a[s]=e6(t[s],n,e,r,i);return a},e1=function(t,e,r,i,n,s){var a,o,u,h;if(tv[t]&&!1!==(a=new tv[t]).init(n,a.rawVars?e[t]:e0(e[t],i,n,s,r),r,i,s)&&(r._pt=o=new rc(r._pt,n,t,0,1,a.render,a,0,a.priority),r!==C))for(u=r._ptLookup[r._targets.indexOf(n)],h=a._props.length;h--;)u[a._props[h]]=o;return a},e2=function t(e,r,i){var n,s,a,o,u,h,_,f,l,c,d,p,m,v=e.vars,g=v.ease,y=v.startAt,b=v.immediateRender,x=v.lazy,D=v.onUpdate,R=v.runBackwards,M=v.yoyoEase,A=v.keyframes,C=v.autoRevert,E=e._dur,O=e._startAt,z=e._targets,P=e.parent,F=P&&"nested"===P.data?P.vars.targets:z,L="auto"===e._overwrite&&!T,I=e.timeline,U=v.easeReverse||M;if(!I||A&&g||(g="none"),e._ease=eU(g,S.ease),e._rEase=U&&(eU(U)||e._ease),e._from=!I&&!!v.runBackwards,e._from&&(e.ratio=1),!I||A&&!v.stagger){if(p=(f=z[0]?tk(z[0]).harness:0)&&v[f.prop],n=tU(v,td),O&&(O._zTime<0&&O.progress(1),r<0&&R&&b&&!C?O.render(-1,!0):O.revert(R&&E?tl:tf),O._lazy=0),y){if(tV(e._startAt=e7.set(z,tF({data:"isStart",overwrite:!1,parent:P,immediateRender:!0,lazy:!O&&j(x),startAt:null,delay:0,onUpdate:D&&function(){return ev(e,"onUpdate")},stagger:0},y))),e._startAt._dp=0,e._startAt._sat=e,r<0&&(w||!b&&!C)&&e._startAt.revert(tl),b&&E&&r<=0&&i<=0){r&&(e._zTime=r);return}}else if(R&&E&&!O)if(r&&(b=!1),a=tF({overwrite:!1,data:"isFromStart",lazy:b&&!O&&j(x),immediateRender:b,stagger:0,parent:P},n),p&&(a[f.prop]=p),tV(e._startAt=e7.set(z,a)),e._startAt._dp=0,e._startAt._sat=e,r<0&&(w?e._startAt.revert(tl):e._startAt.render(-1,!0)),e._zTime=r,b){if(!r)return}else t(e._startAt,1e-8,1e-8);for(e._pt=e._ptCache=0,x=E&&j(x)||x&&!E,s=0;s<z.length;s++){if(_=(u=z[s])._gsap||tb(z)[s]._gsap,e._ptLookup[s]=c={},tm[_.id]&&tp.length&&tE(),d=F===z?s:F.indexOf(u),f&&!1!==(l=new f).init(u,p||n,e,d,F)&&(e._pt=o=new rc(e._pt,u,l.name,0,1,l.render,l,0,l.priority),l._props.forEach(function(t){c[t]=o}),l.priority&&(h=1)),!f||p)for(a in n)tv[a]&&(l=e1(a,n,e,d,u,F))?l.priority&&(h=1):c[a]=o=e$.call(e,u,a,"get",n[a],d,F,0,v.stringFilter);e._op&&e._op[s]&&e.kill(u,e._op[s]),L&&e._pt&&(eK=e,k.killTweensOf(u,c,e.globalTime(r)),m=!e.parent,eK=0),e._pt&&x&&(tm[_.id]=1)}h&&rl(e),e._onInit&&e._onInit(e)}e._onUpdate=D,e._initted=(!e._op||e._pt)&&!m,A&&r<=0&&I.render(1e8,!0,!0)},e5=function(t,e,r,i,n,s,a,o){var u,h,_,f,l=(t._pt&&t._ptCache||(t._ptCache={}))[e];if(!l)for(l=t._ptCache[e]=[],_=t._ptLookup,f=t._targets.length;f--;){if((u=_[f][e])&&u.d&&u.d._pt)for(u=u.d._pt;u&&u.p!==e&&u.fp!==e;)u=u._next;if(!u)return eX=1,t.vars[e]="+=0",e2(t,a),eX=0,o?tu(e+" not eligible for reset. Try splitting into individual properties"):1;l.push(u)}for(f=l.length;f--;)(u=(h=l[f])._pt||h).s=(i||0===i)&&!n?i:u.s+(i||0)+s*u.c,u.c=r-u.s,h.e&&(h.e=tR(r)+ei(h.e)),h.b&&(h.b=u.s+ei(h.b))},e8=function(t,e){var r,i,n,s,a=t[0]?tk(t[0]).harness:0,o=a&&a.aliases;if(!o)return e;for(i in r=tL({},e),o)if(i in r)for(n=(s=o[i].split(",")).length;n--;)r[s[n]]=r[i];return r},e3=function(t,e,r,i){var n,s,a=e.ease||i||"power1.inOut";if(H(e))s=r[t]||(r[t]=[]),e.forEach(function(t,r){return s.push({t:r/(e.length-1)*100,v:t,e:a})});else for(n in e)s=r[n]||(r[n]=[]),"ease"===n||s.push({t:parseFloat(t),v:e[n],e:a})},e6=function(t,e,r,i,n){return q(t)?t.call(e,r,i,n):B(t)&&~t.indexOf("random(")?ed(t):t},e4=tw+"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,easeReverse,autoRevert",e9={};tD(e4+",id,stagger,delay,duration,paused,scrollTrigger",function(t){return e9[t]=1});var e7=function(t){function e(e,r,n,s){"number"==typeof r&&(n.duration=r,r=n,n=null);var a,o,u,h,_,f,l,c,d=t.call(this,s?r:tB(r))||this,p=d.vars,m=p.duration,v=p.delay,g=p.immediateRender,y=p.stagger,w=p.overwrite,b=p.keyframes,x=p.defaults,D=p.scrollTrigger,R=r.parent||k,M=(H(e)||Y(e)?N(e[0]):"length"in r)?[e]:ea(e);if(d._targets=M.length?tb(M):tu("GSAP target "+e+" not found. https://gsap.com",!O.nullTargetWarn)||[],d._ptLookup=[],d._overwrite=w,b||y||W(m)||W(v)){var A=(r=d.vars).easeReverse||r.yoyoEase;if((a=d.timeline=new eG({data:"nested",defaults:x||{},targets:R&&"nested"===R.data?R.vars.targets:M})).kill(),a.parent=a._dp=i(d),a._start=0,y||W(m)||W(v)){if(h=M.length,l=y&&eh(y),V(y))for(_ in y)~e4.indexOf(_)&&(c||(c={}),c[_]=y[_]);for(o=0;o<h;o++)(u=tU(r,e9)).stagger=0,A&&(u.easeReverse=A),c&&tL(u,c),f=M[o],u.duration=+e6(m,i(d),o,f,M),u.delay=(+e6(v,i(d),o,f,M)||0)-d._delay,!y&&1===h&&u.delay&&(d._delay=v=u.delay,d._start+=v,u.delay=0),a.to(f,u,l?l(o,f,M):0),a._ease=eO.none;a.duration()?m=v=0:d.timeline=0}else if(b){tB(tF(a.vars.defaults,{ease:"none"})),a._ease=eU(b.ease||r.ease||"none");var C,E,S,z=0;if(H(b))b.forEach(function(t){return a.to(M,t,">")}),a.duration();else{for(_ in u={},b)"ease"===_||"easeEach"===_||e3(_,b[_],u,b.easeEach);for(_ in u)for(C=u[_].sort(function(t,e){return t.t-e.t}),z=0,o=0;o<C.length;o++)(S={ease:(E=C[o]).e,duration:(E.t-(o?C[o-1].t:0))/100*m})[_]=E.v,a.to(M,S,z),z+=S.duration;a.duration()<m&&a.to({},{duration:m-a.duration()})}}m||d.duration(m=a.duration())}else d.timeline=0;return!0!==w||T||(eK=i(d),k.killTweensOf(M),eK=0),t$(R,i(d),n),r.reversed&&d.reverse(),r.paused&&d.paused(!0),(g||!m&&!b&&d._start===tM(R._time)&&j(g)&&function t(e){return!e||e._ts&&t(e.parent)}(i(d))&&"nested"!==R.data)&&(d._tTime=-1e-8,d.render(Math.max(0,-v)||0)),D&&t0(i(d),D),d}n(e,t);var r=e.prototype;return r.render=function(t,e,r){var i,n,s,a,o,u,h,_,f=this._time,l=this._tDur,c=this._dur,d=t<0,p=t>l-1e-8&&!d?l:t<1e-8?0:t;if(c){if(p!==this._tTime||!t||r||!this._initted&&this._tTime||this._startAt&&this._zTime<0!==d||this._lazy){if(i=p,_=this.timeline,this._repeat){if(a=c+this._rDelay,this._repeat<-1&&d)return this.totalTime(100*a+t,e,r);if(i=tM(p%a),p===l?(s=this._repeat,i=c):(s=~~(o=tM(p/a)))&&s===o?(i=c,s--):i>c&&(i=c),(u=this._yoyo&&1&s)&&(i=c-i),o=tH(this._tTime,a),i===f&&!r&&this._initted&&s===o)return this._tTime=p,this;s!==o&&this.vars.repeatRefresh&&!u&&!this._lock&&i!==a&&this._initted&&(this._lock=r=1,this.render(tM(a*s),!0).invalidate()._lock=0)}if(!this._initted){if(t1(this,d?t:i,r,e,p))return this._tTime=0,this;if(f!==this._time&&!(r&&this.vars.repeatRefresh&&s!==o))return this;if(c!==this._dur)return this.render(t,e,r)}if(this._rEase){var m=i<f;if(m!==this._inv){var v=m?f:c-f;this._inv=m,this._from&&(this.ratio=1-this.ratio),this._invRatio=this.ratio,this._invTime=f,this._invRecip=v?(m?-1:1)/v:0,this._invScale=m?-this.ratio:1-this.ratio,this._invEase=m?this._rEase:this._ease}this.ratio=h=this._invRatio+this._invScale*this._invEase((i-this._invTime)*this._invRecip)}else this.ratio=h=this._ease(i/c);if(this._from&&(this.ratio=h=1-h),this._tTime=p,this._time=i,!this._act&&this._ts&&(this._act=1,this._lazy=0),!f&&p&&!e&&!o&&(ev(this,"onStart"),this._tTime!==p))return this;for(n=this._pt;n;)n.r(h,n.d),n=n._next;_&&_.render(t<0?t:_._dur*_._ease(i/this._dur),e,r)||this._startAt&&(this._zTime=t),this._onUpdate&&!e&&(d&&tW(this,t,e,r),ev(this,"onUpdate")),this._repeat&&s!==o&&this.vars.onRepeat&&!e&&this.parent&&ev(this,"onRepeat"),(p===this._tDur||!p)&&this._tTime===p&&(d&&!this._onUpdate&&tW(this,t,!0,!0),(t||!c)&&(p===this._tDur&&this._ts>0||!p&&this._ts<0)&&tV(this,1),!e&&!(d&&!f)&&(p||f||u)&&(ev(this,p===l?"onComplete":"onReverseComplete",!0),this._prom&&!(p<l&&this.timeScale()>0)&&this._prom()))}}else t8(this,t,e,r);return this},r.targets=function(){return this._targets},r.invalidate=function(e){return e&&this.vars.runBackwards||(this._startAt=0),this._pt=this._op=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(e),t.prototype.invalidate.call(this,e)},r.resetTo=function(t,e,r,i,n){E||eC.wake(),this._ts||this.play();var s=Math.min(this._dur,(this._dp._time-this._start)*this._ts);return(this._initted||e2(this,s),e5(this,t,e,r,i,this._ease(s/this._dur),s,n))?this.resetTo(t,e,r,i,1):(tX(this,0),this.parent||tN(this._dp,this,"_first","_last",this._dp._sort?"_start":0),this.render(0))},r.kill=function(t,e){if(void 0===e&&(e="all"),!t&&(!e||"all"===e))return this._lazy=this._pt=0,this.parent?eg(this):this.scrollTrigger&&this.scrollTrigger.kill(!!w),this;if(this.timeline){var r=this.timeline.totalDuration();return this.timeline.killTweensOf(t,e,eK&&!0!==eK.vars.overwrite)._first||eg(this),this.parent&&r!==this.timeline.totalDuration()&&t6(this,this._dur*this.timeline._tDur/r,0,1),this}var i,n,s,a,o,u,h,_=this._targets,f=t?ea(t):_,l=this._ptLookup,c=this._pt;if((!e||"all"===e)&&tq(_,f))return"all"===e&&(this._pt=0),eg(this);for(i=this._op=this._op||[],"all"!==e&&(B(e)&&(o={},tD(e,function(t){return o[t]=1}),e=o),e=e8(_,e)),h=_.length;h--;)if(~f.indexOf(_[h]))for(o in n=l[h],"all"===e?(i[h]=e,a=n,s={}):(s=i[h]=i[h]||{},a=e),a)(u=n&&n[o])&&("kill"in u.d&&!0!==u.d.kill(o)||tQ(this,u,"_pt"),delete n[o]),"all"!==s&&(s[o]=1);return this._initted&&!this._pt&&c&&eg(this),this},e.to=function(t,r){return new e(t,r,arguments[2])},e.from=function(t,e){return et(1,arguments)},e.delayedCall=function(t,r,i,n){return new e(r,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:t,onComplete:r,onReverseComplete:r,onCompleteParams:i,onReverseCompleteParams:i,callbackScope:n})},e.fromTo=function(t,e,r){return et(2,arguments)},e.set=function(t,r){return r.duration=0,r.repeatDelay||(r.repeat=0),new e(t,r)},e.killTweensOf=function(t,e,r){return k.killTweensOf(t,e,r)},e}(ej);tF(e7.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0}),tD("staggerTo,staggerFrom,staggerFromTo",function(t){e7[t]=function(){var e=new eG,r=en.call(arguments,0);return r.splice("staggerFromTo"===t?5:4,0,0),e[t].apply(e,r)}});var rt=function(t,e,r){return t[e]=r},re=function(t,e,r){return t[e](r)},rr=function(t,e,r,i){return t[e](i.fp,r)},ri=function(t,e,r){return t.setAttribute(e,r)},rn=function(t,e){return q(t[e])?re:Q(t[e])&&t.setAttribute?ri:rt},rs=function(t,e){return e.set(e.t,e.p,Math.round((e.s+e.c*t)*1e6)/1e6,e)},ra=function(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},ro=function(t,e){var r=e._pt,i="";if(!t&&e.b)i=e.b;else if(1===t&&e.e)i=e.e;else{for(;r;)i=r.p+(r.m?r.m(r.s+r.c*t):Math.round((r.s+r.c*t)*1e4)/1e4)+i,r=r._next;i+=e.c}e.set(e.t,e.p,i,e)},ru=function(t,e){for(var r=e._pt;r;)r.r(t,r.d),r=r._next},rh=function(t,e,r,i){for(var n,s=this._pt;s;)n=s._next,s.p===i&&s.modifier(t,e,r),s=n},r_=function(t){for(var e,r,i=this._pt;i;)r=i._next,(i.p!==t||i.op)&&i.op!==t?i.dep||(e=1):tQ(this,i,"_pt"),i=r;return!e},rf=function(t,e,r,i){i.mSet(t,e,i.m.call(i.tween,r,i.mt),i)},rl=function(t){for(var e,r,i,n,s=t._pt;s;){for(e=s._next,r=i;r&&r.pr>s.pr;)r=r._next;(s._prev=r?r._prev:n)?s._prev._next=s:i=s,(s._next=r)?r._prev=s:n=s,s=e}t._pt=i},rc=function(){function t(t,e,r,i,n,s,a,o,u){this.t=e,this.s=i,this.c=n,this.p=r,this.r=s||rs,this.d=a||this,this.set=o||rt,this.pr=u||0,this._next=t,t&&(t._prev=this)}return t.prototype.modifier=function(t,e,r){this.mSet=this.mSet||this.set,this.set=rf,this.m=t,this.mt=r,this.tween=e},t}();tD(tw+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger,easeReverse",function(t){return td[t]=1}),tn.TweenMax=tn.TweenLite=e7,tn.TimelineLite=tn.TimelineMax=eG,k=new eG({sortChildren:!1,defaults:S,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0}),O.stringFilter=eA;var rd=[],rp={},rm=[],rv=0,rg=0,ry=function(t){return(rp[t]||rm).map(function(t){return t()})},rT=function(){var t=Date.now(),e=[];t-rv>2&&(ry("matchMediaInit"),rd.forEach(function(t){var r,i,n,s,a=t.queries,o=t.conditions;for(i in a)(r=x.matchMedia(a[i]).matches)&&(n=1),r!==o[i]&&(o[i]=r,s=1);s&&(t.revert(),n&&e.push(t))}),ry("matchMediaRevert"),e.forEach(function(t){return t.onMatch(t,function(e){return t.add(null,e)})}),rv=t,ry("matchMedia"))},rw=function(){function t(t,e){this.selector=e&&eo(e),this.data=[],this._r=[],this.isReverted=!1,this.id=rg++,t&&this.add(t)}var e=t.prototype;return e.add=function(t,e,r){q(t)&&(r=e,e=t,t=q);var i=this,n=function(){var t,n=b,s=i.selector;return n&&n!==i&&n.data.push(i),r&&(i.selector=eo(r)),b=i,t=e.apply(i,arguments),q(t)&&i._r.push(t),b=n,i.selector=s,i.isReverted=!1,t};return i.last=n,t===q?n(i,function(t){return i.add(null,t)}):t?i[t]=n:n},e.ignore=function(t){var e=b;b=null,t(this),b=e},e.getTweens=function(){var e=[];return this.data.forEach(function(r){return r instanceof t?e.push.apply(e,r.getTweens()):r instanceof e7&&!(r.parent&&"nested"===r.parent.data)&&e.push(r)}),e},e.clear=function(){this._r.length=this.data.length=0},e.kill=function(t,e){var r=this;if(t){for(var i,n=r.getTweens(),s=r.data.length;s--;)"isFlip"===(i=r.data[s]).data&&(i.revert(),i.getChildren(!0,!0,!1).forEach(function(t){return n.splice(n.indexOf(t),1)}));for(n.map(function(t){return{g:t._dur||t._delay||t._sat&&!t._sat.vars.immediateRender?t.globalTime(0):-1/0,t:t}}).sort(function(t,e){return e.g-t.g||-1/0}).forEach(function(e){return e.t.revert(t)}),s=r.data.length;s--;)(i=r.data[s])instanceof eG?"nested"!==i.data&&(i.scrollTrigger&&i.scrollTrigger.revert(),i.kill()):i instanceof e7||!i.revert||i.revert(t);r._r.forEach(function(e){return e(t,r)}),r.isReverted=!0}else this.data.forEach(function(t){return t.kill&&t.kill()});if(this.clear(),e)for(var a=rd.length;a--;)rd[a].id===this.id&&rd.splice(a,1)},e.revert=function(t){this.kill(t||{})},t}(),rb=function(){function t(t){this.contexts=[],this.scope=t,b&&b.data.push(this)}var e=t.prototype;return e.add=function(t,e,r){V(t)||(t={matches:t});var i,n,s,a=new rw(0,r||this.scope),o=a.conditions={};for(n in b&&!a.selector&&(a.selector=b.selector),this.contexts.push(a),e=a.add("onMatch",e),a.queries=t,t)"all"===n?s=1:(i=x.matchMedia(t[n]))&&(0>rd.indexOf(a)&&rd.push(a),(o[n]=i.matches)&&(s=1),i.addListener?i.addListener(rT):i.addEventListener("change",rT));return s&&e(a,function(t){return a.add(null,t)}),this},e.revert=function(t){this.kill(t||{})},e.kill=function(t){this.contexts.forEach(function(e){return e.kill(t,!0)})},t}(),rk={registerPlugin:function(){for(var t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];e.forEach(function(t){return eT(t)})},timeline:function(t){return new eG(t)},getTweensOf:function(t,e){return k.getTweensOf(t,e)},getProperty:function(t,e,r,i){B(t)&&(t=ea(t)[0]);var n=tk(t||{}).get,s=r?tP:tz;return"native"===r&&(r=""),t?e?s((tv[e]&&tv[e].get||n)(t,e,r,i)):function(e,r,i){return s((tv[e]&&tv[e].get||n)(t,e,r,i))}:t},quickSetter:function(t,e,r){if((t=ea(t)).length>1){var i=t.map(function(t){return rM.quickSetter(t,e,r)}),n=i.length;return function(t){for(var e=n;e--;)i[e](t)}}t=t[0]||{};var s=tv[e],a=tk(t),o=a.harness&&(a.harness.aliases||{})[e]||e,u=s?function(e){var i=new s;C._pt=0,i.init(t,r?e+r:e,C,0,[t]),i.render(1,i),C._pt&&ru(1,C)}:a.set(t,o);return s?u:function(e){return u(t,o,r?e+r:e,a,1)}},quickTo:function(t,e,r){var i,n=rM.to(t,tF(((i={})[e]="+=0.1",i.paused=!0,i.stagger=0,i),r||{})),s=function(t,r,i){return n.resetTo(e,t,r,i)};return s.tween=n,s},isTweening:function(t){return k.getTweensOf(t,!0).length>0},defaults:function(t){return t&&t.ease&&(t.ease=eU(t.ease,S.ease)),tI(S,t||{})},config:function(t){return tI(O,t||{})},registerEffect:function(t){var e=t.name,r=t.effect,i=t.plugins,n=t.defaults,s=t.extendTimeline;(i||"").split(",").forEach(function(t){return t&&!tv[t]&&!tn[t]&&tu(e+" effect requires "+t+" plugin.")}),tg[e]=function(t,e,i){return r(ea(t),tF(e||{},n),i)},s&&(eG.prototype[e]=function(t,r,i){return this.add(tg[e](t,V(r)?r:(i=r)&&{},this),i)})},registerEase:function(t,e){eO[t]=eU(e)},parseEase:function(t,e){return arguments.length?eU(t,e):eO},getById:function(t){return k.getById(t)},exportRoot:function(t,e){void 0===t&&(t={});var r,i,n=new eG(t);for(n.smoothChildTiming=j(t.smoothChildTiming),k.remove(n),n._dp=0,n._time=n._tTime=k._time,r=k._first;r;)i=r._next,(e||!(!r._dur&&r instanceof e7&&r.vars.onComplete===r._targets[0]))&&t$(n,r,r._start-r._delay),r=i;return t$(k,n,0),n},context:function(t,e){return t?new rw(t,e):b},matchMedia:function(t){return new rb(t)},matchMediaRefresh:function(){return rd.forEach(function(t){var e,r,i=t.conditions;for(r in i)i[r]&&(i[r]=!1,e=1);e&&t.revert()})||rT()},addEventListener:function(t,e){var r=rp[t]||(rp[t]=[]);~r.indexOf(e)||r.push(e)},removeEventListener:function(t,e){var r=rp[t],i=r&&r.indexOf(e);i>=0&&r.splice(i,1)},utils:{wrap:function t(e,r,i){var n=r-e;return H(e)?ec(e,t(0,e.length),r):ee(i,function(t){return(n+(t-e)%n)%n+e})},wrapYoyo:function t(e,r,i){var n=r-e,s=2*n;return H(e)?ec(e,t(0,e.length-1),r):ee(i,function(t){return t=(s+(t-e)%s)%s||0,e+(t>n?s-t:t)})},distribute:eh,random:el,snap:ef,normalize:function(t,e,r){return ep(t,e,0,1,r)},getUnit:ei,clamp:function(t,e,r){return ee(r,function(r){return er(t,e,r)})},splitColor:ek,toArray:ea,selector:eo,mapRange:ep,pipe:function(){for(var t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];return function(t){return e.reduce(function(t,e){return e(t)},t)}},unitize:function(t,e){return function(r){return t(parseFloat(r))+(e||ei(r))}},interpolate:function t(e,r,i,n){var s=isNaN(e+r)?0:function(t){return(1-t)*e+t*r};if(!s){var a,o,u,h,_,f=B(e),l={};if(!0===i&&(n=1)&&(i=null),f)e={p:e},r={p:r};else if(H(e)&&!H(r)){for(u=[],_=(h=e.length)-2,o=1;o<h;o++)u.push(t(e[o-1],e[o]));h--,s=function(t){var e=Math.min(_,~~(t*=h));return u[e](t-e)},i=r}else n||(e=tL(H(e)?[]:{},e));if(!u){for(a in r)e$.call(l,e,a,"get",r[a]);s=function(t){return ru(t,l)||(f?e.p:e)}}}return ee(i,s)},shuffle:eu},install:ta,effects:tg,ticker:eC,updateRoot:eG.updateRoot,plugins:tv,globalTimeline:k,core:{PropTween:rc,globals:th,Tween:e7,Timeline:eG,Animation:ej,getCache:tk,_removeLinkedListItem:tQ,reverting:function(){return w},context:function(t){return t&&b&&(b.data.push(t),t._ctx=b),b},suppressOverwrites:function(t){return T=t}}};tD("to,from,fromTo,delayedCall,set,killTweensOf",function(t){return rk[t]=e7[t]}),eC.add(eG.updateRoot),C=rk.to({},{duration:0});var rx=function(t,e){for(var r=t._pt;r&&r.p!==e&&r.op!==e&&r.fp!==e;)r=r._next;return r},rD=function(t,e){var r,i,n,s=t._targets;for(r in e)for(i=s.length;i--;)(n=t._ptLookup[i][r])&&(n=n.d)&&(n._pt&&(n=rx(n,r)),n&&n.modifier&&n.modifier(e[r],t,s[i],r))},rR=function(t,e){return{name:t,headless:1,rawVars:1,init:function(t,r,i){i._onInit=function(t){var i,n;if(B(r)&&(i={},tD(r,function(t){return i[t]=1}),r=i),e){for(n in i={},r)i[n]=e(r[n]);r=i}rD(t,r)}}}},rM=rk.registerPlugin({name:"attr",init:function(t,e,r,i,n){var s,a,o;for(s in this.tween=r,e)o=t.getAttribute(s)||"",(a=this.add(t,"setAttribute",(o||0)+"",e[s],i,n,0,0,s)).op=s,a.b=o,this._props.push(s)},render:function(t,e){for(var r=e._pt;r;)w?r.set(r.t,r.p,r.b,r):r.r(t,r.d),r=r._next}},{name:"endArray",headless:1,init:function(t,e){for(var r=e.length;r--;)this.add(t,r,t[r]||0,e[r],0,0,0,0,0,1)}},rR("roundProps",e_),rR("modifiers"),rR("snap",ef))||rk;e7.version=eG.version=rM.version="3.15.0",M=1,G()&&eE();var rA=eO.Power0,rC=eO.Power1,rE=eO.Power2,rO=eO.Power3,rS=eO.Power4,rz=eO.Linear,rP=eO.Quad,rF=eO.Cubic,rL=eO.Quart,rI=eO.Quint,rU=eO.Strong,rB=eO.Elastic,rq=eO.Back,rN=eO.SteppedEase,rQ=eO.Bounce,rV=eO.Sine,rj=eO.Expo,rG=eO.Circ}}]);
@@ -0,0 +1 @@
1
+ (()=>{"use strict";var e,t,r,o,n,a,i,u,c={},l={};function f(e){var t=l[e];if(void 0!==t)return t.exports;var r=l[e]={exports:{}},o=!0;try{c[e].call(r.exports,r,r.exports,f),o=!1}finally{o&&delete l[e]}return r.exports}f.m=c,e=[],f.O=(t,r,o,n)=>{if(r){n=n||0;for(var a=e.length;a>0&&e[a-1][2]>n;a--)e[a]=e[a-1];e[a]=[r,o,n];return}for(var i=1/0,a=0;a<e.length;a++){for(var[r,o,n]=e[a],u=!0,c=0;c<r.length;c++)(!1&n||i>=n)&&Object.keys(f.O).every(e=>f.O[e](r[c]))?r.splice(c--,1):(u=!1,n<i&&(i=n));if(u){e.splice(a--,1);var l=o();void 0!==l&&(t=l)}}return t},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,o){if(1&o&&(e=this(e)),8&o||"object"==typeof e&&e&&(4&o&&e.__esModule||16&o&&"function"==typeof e.then))return e;var n=Object.create(null);f.r(n);var a={};t=t||[null,r({}),r([]),r(r)];for(var i=2&o&&e;"object"==typeof i&&!~t.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach(t=>a[t]=()=>e[t]);return a.default=()=>e,f.d(n,a),n},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce((t,r)=>(f.f[r](e,t),t),[])),f.u=e=>"static/chunks/"+(5592===e?"c15bf2b0":e)+"."+({1966:"b8f83f7ba376c962",3018:"dfc345853f53b6a1",3899:"d4d0ae202f418161",5592:"4c82aff2c0532eb2",5911:"897e7955e4f2a7e6",8202:"1ffc6ce531e066ce"})[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},f.l=(e,t,r,n)=>{if(o[e])return void o[e].push(t);if(void 0!==r)for(var a,i,u=document.getElementsByTagName("script"),c=0;c<u.length;c++){var l=u[c];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")=="_N_E:"+r){a=l;break}}a||(i=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,f.nc&&a.setAttribute("nonce",f.nc),a.setAttribute("data-webpack","_N_E:"+r),a.src=f.tu(e)),o[e]=[t];var s=(t,r)=>{a.onerror=a.onload=null,clearTimeout(d);var n=o[e];if(delete o[e],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach(e=>e(r)),t)return t(r)},d=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),i&&document.head.appendChild(a)},f.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.tt=()=>(void 0===n&&(n={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(n=trustedTypes.createPolicy("nextjs#bundler",n))),n),f.tu=e=>f.tt().createScriptURL(e),f.p="/_next/",a={8068:0,4652:0,3334:0},f.f.j=(e,t)=>{var r=f.o(a,e)?a[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(3334|4652|8068)$/.test(e))a[e]=0;else{var o=new Promise((t,o)=>r=a[e]=[t,o]);t.push(r[2]=o);var n=f.p+f.u(e),i=Error();f.l(n,t=>{if(f.o(a,e)&&(0!==(r=a[e])&&(a[e]=void 0),r)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+o+": "+n+")",i.name="ChunkLoadError",i.type=o,i.request=n,r[1](i)}},"chunk-"+e,e)}},f.O.j=e=>0===a[e],i=(e,t)=>{var r,o,[n,i,u]=t,c=0;if(n.some(e=>0!==a[e])){for(r in i)f.o(i,r)&&(f.m[r]=i[r]);if(u)var l=u(f)}for(e&&e(t);c<n.length;c++)o=n[c],f.o(a,o)&&a[o]&&a[o][0](),a[o]=0;return f.O(l)},(u=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(i.bind(null,0)),u.push=i.bind(null,u.push.bind(u))})();