@jheavenknows/bluerouter 4.0.11 → 4.0.12

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 (421) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +2 -2
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  35. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  36. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  37. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  38. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  39. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  40. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  41. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  42. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  44. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  45. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  46. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  47. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  48. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  49. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  50. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  51. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  89. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  91. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  166. package/app/.next-cli-build/server/app/callback.html +1 -1
  167. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  168. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  169. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  170. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  171. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  172. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  173. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  174. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  175. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +4 -4
  176. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
  177. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  178. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  179. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  180. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +4 -4
  181. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  182. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
  183. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
  184. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  185. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +5 -5
  186. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
  187. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
  188. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  189. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  190. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +5 -5
  191. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
  192. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +3 -3
  193. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
  194. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  195. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  196. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  197. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  198. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  199. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  200. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  201. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  202. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  203. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  204. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  205. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  206. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  207. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  208. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  209. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  210. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  211. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  212. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  213. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  214. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  215. package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  216. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  217. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  218. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  219. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  220. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  221. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  222. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  223. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  224. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  225. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  226. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  227. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  228. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  229. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  230. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  231. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  232. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  233. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  234. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  235. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  236. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  237. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  238. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  239. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  240. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  241. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  242. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  243. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  244. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  245. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  246. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  247. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  248. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  249. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  250. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  251. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  252. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  253. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  254. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  255. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  256. package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
  257. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  258. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  259. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  260. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  261. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  262. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  263. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  264. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  265. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  266. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +4 -4
  267. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  268. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  269. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  270. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  271. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +4 -4
  272. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  273. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +3 -3
  274. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
  275. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  276. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +4 -4
  277. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  278. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  279. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  280. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  281. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +4 -4
  282. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  283. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +3 -3
  284. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
  285. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  286. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  287. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  288. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  289. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  290. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  292. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  293. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  294. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  295. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  296. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  297. package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  298. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  299. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  302. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  303. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  304. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  305. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  306. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  308. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  309. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  310. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  311. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  312. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  313. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  314. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  315. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  318. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  319. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  322. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  323. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  324. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  325. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  326. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  328. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  329. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  330. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  331. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  332. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  333. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  334. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  335. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  338. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  339. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  340. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  341. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  343. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  344. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  345. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  346. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  347. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  348. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  349. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  350. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  351. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  352. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  353. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  354. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  355. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  356. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  357. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  358. package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  359. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  360. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  363. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  364. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  365. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  366. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  367. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  368. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  369. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  370. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  371. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  372. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  373. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  374. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  375. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  376. package/app/.next-cli-build/server/app/index.html +1 -1
  377. package/app/.next-cli-build/server/app/index.rsc +3 -3
  378. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  379. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  380. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  381. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  382. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  383. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  384. package/app/.next-cli-build/server/app/landing.html +1 -1
  385. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  386. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  387. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  388. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  389. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  390. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  391. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/login/page.js +1 -1
  393. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  394. package/app/.next-cli-build/server/app/login.html +1 -1
  395. package/app/.next-cli-build/server/app/login.rsc +4 -4
  396. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  397. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  398. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  399. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  400. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  401. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  402. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  403. package/app/.next-cli-build/server/app-paths-manifest.json +2 -2
  404. package/app/.next-cli-build/server/chunks/2338.js +1 -1
  405. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  406. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  407. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  408. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  409. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  410. package/app/.next-cli-build/server/pages/404.html +1 -1
  411. package/app/.next-cli-build/server/pages/500.html +1 -1
  412. package/app/.next-cli-build/static/chunks/{620-9b552f55170b689e.js → 620-a14ba83d2397bcc1.js} +1 -1
  413. package/app/.next-cli-build/static/chunks/app/login/page-83edcccc82f976e7.js +1 -0
  414. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  415. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  416. package/app/package.json +1 -1
  417. package/package.json +1 -1
  418. package/app/.next-cli-build/static/chunks/app/login/page-d18097a9c2ee4aef.js +0 -1
  419. /package/app/.next-cli-build/static/{t_2sU35i707oxn0AJRwXm → VceGUdNxxlwe9k8T9mvNy}/_buildManifest.js +0 -0
  420. /package/app/.next-cli-build/static/{t_2sU35i707oxn0AJRwXm → VceGUdNxxlwe9k8T9mvNy}/_ssgManifest.js +0 -0
  421. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-4.0.6-to-4.0.7-4.0.7-20260618-185720 → upgrade-4.0.11-to-4.0.12-4.0.12-20260618-194553}/data.sqlite +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{23333:()=>{},33796:(e,t,s)=>{Promise.resolve().then(s.bind(s,83016))},39092:(e,t,s)=>{"use strict";e.exports=s(73279).style},54642:e=>{var t;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="//"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"u">typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"u">typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},e.exports=t},73279:(e,t,s)=>{"use strict";var a=s(41463);s(23333);var r=s(12115),n=r&&"object"==typeof r&&"default"in r?r:{default:r},i=void 0!==a&&a.env&&!0,d=function(e){return"[object String]"===Object.prototype.toString.call(e)},o=function(){function e(e){var t=void 0===e?{}:e,s=t.name,a=void 0===s?"stylesheet":s,r=t.optimizeForSpeed,n=void 0===r?i:r;l(d(a),"`name` must be a string"),this._name=a,this._deletedRulePlaceholder="#"+a+"-deleted-rule____{}",l("boolean"==typeof n,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=n,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var o="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=o?o.getAttribute("content"):null}var t,s=e.prototype;return s.setOptimizeForSpeed=function(e){l("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),l(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},s.isOptimizeForSpeed=function(){return this._optimizeForSpeed},s.inject=function(){var e=this;if(l(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(i||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,s){return"number"==typeof s?e._serverSheet.cssRules[s]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),s},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},s.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},s.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},s.insertRule=function(e,t){if(l(d(e),"`insertRule` accepts only strings"),"u"<typeof window)return"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++;if(this._optimizeForSpeed){var s=this.getSheet();"number"!=typeof t&&(t=s.cssRules.length);try{s.insertRule(e,t)}catch(t){return i||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var a=this._tags[t];this._tags.push(this.makeStyleTag(this._name,e,a))}return this._rulesCount++},s.replaceRule=function(e,t){if(this._optimizeForSpeed||"u"<typeof window){var s="u">typeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!s.cssRules[e])return e;s.deleteRule(e);try{s.insertRule(t,e)}catch(a){i||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),s.insertRule(this._deletedRulePlaceholder,e)}}else{var a=this._tags[e];l(a,"old rule at index `"+e+"` not found"),a.textContent=t}return e},s.deleteRule=function(e){if("u"<typeof window)return void this._serverSheet.deleteRule(e);if(this._optimizeForSpeed)this.replaceRule(e,"");else{var t=this._tags[e];l(t,"rule at index `"+e+"` not found"),t.parentNode.removeChild(t),this._tags[e]=null}},s.flush=function(){this._injected=!1,this._rulesCount=0,"u">typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},s.cssRules=function(){var e=this;return"u"<typeof window?this._serverSheet.cssRules:this._tags.reduce(function(t,s){return s?t=t.concat(Array.prototype.map.call(e.getSheetForTag(s).cssRules,function(t){return t.cssText===e._deletedRulePlaceholder?null:t})):t.push(null),t},[])},s.makeStyleTag=function(e,t,s){t&&l(d(t),"makeStyleTag accepts only strings as second parameter");var a=document.createElement("style");this._nonce&&a.setAttribute("nonce",this._nonce),a.type="text/css",a.setAttribute("data-"+e,""),t&&a.appendChild(document.createTextNode(t));var r=document.head||document.getElementsByTagName("head")[0];return s?r.insertBefore(a,s):r.appendChild(a),a},t=[{key:"length",get:function(){return this._rulesCount}}],function(e,t){for(var s=0;s<t.length;s++){var a=t[s];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(e.prototype,t),e}();function l(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var c=function(e){for(var t=5381,s=e.length;s;)t=33*t^e.charCodeAt(--s);return t>>>0},h={};function u(e,t){if(!t)return"jsx-"+e;var s=String(t),a=e+s;return h[a]||(h[a]="jsx-"+c(e+"-"+s)),h[a]}function x(e,t){"u"<typeof window&&(t=t.replace(/\/style/gi,"\\/style"));var s=e+t;return h[s]||(h[s]=t.replace(/__jsx-style-dynamic-selector/g,e)),h[s]}var p=function(){function e(e){var t=void 0===e?{}:e,s=t.styleSheet,a=void 0===s?null:s,r=t.optimizeForSpeed,n=void 0!==r&&r;this._sheet=a||new o({name:"styled-jsx",optimizeForSpeed:n}),this._sheet.inject(),a&&"boolean"==typeof n&&(this._sheet.setOptimizeForSpeed(n),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"u">typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var s=this.getIdAndRules(e),a=s.styleId,r=s.rules;if(a in this._instancesCounts){this._instancesCounts[a]+=1;return}var n=r.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[a]=n,this._instancesCounts[a]=1},t.remove=function(e){var t=this,s=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(s in this._instancesCounts,"styleId: `"+s+"` not found"),this._instancesCounts[s]-=1,this._instancesCounts[s]<1){var a=this._fromServer&&this._fromServer[s];a?(a.parentNode.removeChild(a),delete this._fromServer[s]):(this._indices[s].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[s]),delete this._instancesCounts[s]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],s=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return s[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,s;return t=this.cssRules(),void 0===(s=e)&&(s={}),t.map(function(e){var t=e[0],a=e[1];return n.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:s.nonce?s.nonce:void 0,dangerouslySetInnerHTML:{__html:a}})})},t.getIdAndRules=function(e){var t=e.children,s=e.dynamic,a=e.id;if(s){var r=u(a,s);return{styleId:r,rules:Array.isArray(t)?t.map(function(e){return x(r,e)}):[x(r,t)]}}return{styleId:u(a),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),m=r.createContext(null);m.displayName="StyleSheetContext";var f=n.default.useInsertionEffect||n.default.useLayoutEffect,j="u">typeof window?new p:void 0;function g(e){var t=j||r.useContext(m);return t&&("u"<typeof window?t.add(e):f(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)])),null}g.dynamic=function(e){return e.map(function(e){return u(e[0],e[1])}).join(" ")},t.style=g},73321:(e,t,s)=>{"use strict";var a=s(74645);s.o(a,"notFound")&&s.d(t,{notFound:function(){return a.notFound}}),s.o(a,"useParams")&&s.d(t,{useParams:function(){return a.useParams}}),s.o(a,"usePathname")&&s.d(t,{usePathname:function(){return a.usePathname}}),s.o(a,"useRouter")&&s.d(t,{useRouter:function(){return a.useRouter}}),s.o(a,"useSearchParams")&&s.d(t,{useSearchParams:function(){return a.useSearchParams}})},83016:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>u});var a=s(95155),r=s(39092),n=s.n(r),i=s(12115),d=s(73321),o=s(90620);let l=[{badge:"CHAT",title:"AI Web Chat",description:"Tr\xf2 chuyện với AI nội bộ, hỗ trợ viết code, ph\xe2n t\xedch t\xe0i liệu, brainstorm \xfd tưởng v\xe0 hỏi đ\xe1p kỹ thuật.",href:"https://ai.fujinet.vn/",cta:"Mở AI Chat",icon:"chat",accent:"#d946ef",accentRgb:"217,70,239"},{badge:"DỊCH",title:"AI Translator",description:"Dịch Word, Excel, PowerPoint, h\xecnh ảnh v\xe0 PDF bằng AI, ưu ti\xean giữ nguy\xean định dạng gốc.",href:"https://translate-workspace.fujinet.vn",cta:"Mở Translator",icon:"translate",accent:"#a855f7",accentRgb:"168,85,247"},{badge:"TICKET",title:"IT Support",description:"Gửi y\xeau cầu hỗ trợ kỹ thuật, theo d\xf5i tiến độ ticket, trao đổi với IT v\xe0 xem lịch sử xử l\xfd sự cố.",href:"https://itsupport.fujinet.vn",cta:"Gửi Ticket",icon:"support",accent:"#3b82f6",accentRgb:"59,130,246"},{badge:"MEETING",title:"Web Meeting",description:"Họp video conference nội bộ trực tuyến, hỗ trợ chia sẻ m\xe0n h\xecnh, trao đổi nh\xf3m v\xe0 l\xe0m việc từ xa.",href:"https://meeting.fujinet.net",cta:"V\xe0o Meeting",icon:"meeting",accent:"#10b981",accentRgb:"16,185,129"},{badge:"ASSET",title:"IT Resource",description:"Quản l\xfd thiết bị, t\xe0i khoản, VPN, Work From Home v\xe0 c\xe1c dịch vụ hạ tầng CNTT nội bộ.",href:"https://itresource.fujinet.net/",cta:"Mở Resource",icon:"resource",accent:"#06b6d4",accentRgb:"6,182,212"}];function c({name:e,className:t="h-5 w-5"}){let s={className:t,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};return"chat"===e?(0,a.jsxs)("svg",{...s,children:[(0,a.jsx)("path",{d:"M7.5 8.5h9"}),(0,a.jsx)("path",{d:"M7.5 12h5.5"}),(0,a.jsx)("path",{d:"M21 11.5a7.5 7.5 0 0 1-7.5 7.5H8l-5 3v-5.2A7.5 7.5 0 1 1 21 11.5Z"})]}):"translate"===e?(0,a.jsxs)("svg",{...s,children:[(0,a.jsx)("path",{d:"M4 5h7"}),(0,a.jsx)("path",{d:"M8 3v2"}),(0,a.jsx)("path",{d:"M10 5c-.6 3.2-2.4 5.7-5 7.5"}),(0,a.jsx)("path",{d:"M5 8c1.2 1.8 2.7 3.2 4.7 4.2"}),(0,a.jsx)("path",{d:"m14 21 4-9 4 9"}),(0,a.jsx)("path",{d:"M15.5 17.5h5"})]}):"support"===e?(0,a.jsxs)("svg",{...s,children:[(0,a.jsx)("path",{d:"M4 13a8 8 0 0 1 16 0"}),(0,a.jsx)("path",{d:"M18 19a3 3 0 0 1-3 3h-2"}),(0,a.jsx)("path",{d:"M4 13v3a2 2 0 0 0 2 2h1v-7H6a2 2 0 0 0-2 2Z"}),(0,a.jsx)("path",{d:"M20 13v3a2 2 0 0 1-2 2h-1v-7h1a2 2 0 0 1 2 2Z"})]}):"meeting"===e?(0,a.jsxs)("svg",{...s,children:[(0,a.jsx)("rect",{x:"3",y:"6",width:"13",height:"12",rx:"2"}),(0,a.jsx)("path",{d:"m16 10 5-3v10l-5-3"}),(0,a.jsx)("path",{d:"M7.5 10h4"}),(0,a.jsx)("path",{d:"M7.5 14h2.5"})]}):"resource"===e?(0,a.jsxs)("svg",{...s,children:[(0,a.jsx)("rect",{x:"4",y:"5",width:"16",height:"11",rx:"2"}),(0,a.jsx)("path",{d:"M8 20h8"}),(0,a.jsx)("path",{d:"M12 16v4"}),(0,a.jsx)("path",{d:"M8 9h8"}),(0,a.jsx)("path",{d:"M8 12h4"})]}):null}function h({service:e}){return(0,a.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"group relative flex flex-col justify-between overflow-hidden rounded-2xl border border-white/12 bg-white/[0.04] p-4 backdrop-blur-xl transition-all duration-300 hover:-translate-y-1 hover:border-white/25 hover:bg-white/[0.08]",style:{boxShadow:"0 8px 24px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.05)"},children:[(0,a.jsx)("div",{className:"pointer-events-none absolute -right-8 -top-8 h-24 w-24 rounded-full opacity-50 blur-2xl transition-opacity duration-300 group-hover:opacity-80",style:{background:e.accent}}),(0,a.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 h-px opacity-0 transition-opacity duration-300 group-hover:opacity-100",style:{background:`linear-gradient(90deg, transparent, ${e.accent}, transparent)`}}),(0,a.jsxs)("div",{className:"relative z-10 mb-3 flex items-center justify-between",children:[(0,a.jsx)("span",{className:"rounded-full px-2.5 py-0.5 text-[9px] font-black uppercase tracking-[0.18em] text-white shadow-lg",style:{background:e.accent,boxShadow:`0 4px 12px rgba(${e.accentRgb}, 0.4)`},children:e.badge}),(0,a.jsx)("span",{className:"grid h-8 w-8 place-items-center rounded-xl bg-white/95 shadow-md ring-1 ring-white/20 transition-transform group-hover:scale-110 group-hover:rotate-3",style:{color:e.accent},children:(0,a.jsx)(c,{name:e.icon,className:"h-4 w-4"})})]}),(0,a.jsxs)("div",{className:"relative z-10 flex-1",children:[(0,a.jsx)("h3",{className:"text-sm font-bold text-white",children:e.title}),(0,a.jsx)("p",{className:"mt-1 text-[11px] leading-relaxed text-white/55 line-clamp-2",children:e.description})]}),(0,a.jsxs)("div",{className:"relative z-10 mt-3 flex items-center gap-1.5 text-[10px] font-black uppercase tracking-[0.14em] text-violet-200/90 transition-colors group-hover:text-white",children:[e.cta,(0,a.jsx)("svg",{className:"h-3 w-3 transition-transform group-hover:translate-x-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M5 12h14M13 5l7 7-7 7"})})]})]})}function u(){let[e,t]=(0,i.useState)("admin"),[s,r]=(0,i.useState)(""),[c,u]=(0,i.useState)(!1),[x,p]=(0,i.useState)(""),[m,f]=(0,i.useState)(""),[j,g]=(0,i.useState)(0),[v,b]=(0,i.useState)(!1),[w,y]=(0,i.useState)(null),[N,k]=(0,i.useState)("password"),[_,S]=(0,i.useState)(!1),[C,M]=(0,i.useState)("Sign in with OIDC"),[R,F]=(0,i.useState)(!1),[I,L]=(0,i.useState)(!1),[A,z]=(0,i.useState)("admin"),T=(0,d.useRouter)();o.vQ?.name,(0,i.useEffect)(()=>{if(j<=0)return;let e=setInterval(()=>g(e=>e>0?e-1:0),1e3);return()=>clearInterval(e)},[j]),(0,i.useEffect)(()=>{!async function(){let e=new AbortController,s=setTimeout(()=>e.abort(),5e3),a=window.location.origin;try{let r=await fetch(`${a}/api/auth/status`,{signal:e.signal});if(clearTimeout(s),r.ok){let e=await r.json();y(!!e.hasPassword),k(e.authMode||"password"),S(!0===e.oidcConfigured),M(e.oidcLoginLabel||"Sign in with OIDC"),F(!0===e.ldapEnabled),L(!0===e.ldapConfigured),z(e.localLoginUsername||"admin"),t(e.localLoginUsername||"admin")}else y(!0)}catch{clearTimeout(s),y(!0)}}()},[T]);let P=async t=>{t.preventDefault(),b(!0),p(""),f("");try{let t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:s,loginType:"auto"})});if(t.ok)T.push("/dashboard"),T.refresh();else{let e=await t.json();p(e.error||"Invalid account or password"),e.resetHint&&f(e.resetHint),e.retryAfter&&g(Number(e.retryAfter))}}catch{p("An error occurred. Please try again.")}finally{b(!1)}},E=_&&["oidc","both"].includes(N),W="oidc"!==N||!_,B=R&&I&&W;return(0,a.jsxs)("main",{className:"jsx-e45020aa9d0dcde0 relative min-h-screen overflow-hidden bg-[#0a0a1f] text-slate-800",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute inset-0",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 absolute -top-40 -left-40 h-[600px] w-[600px] rounded-full bg-violet-600/30 blur-[120px] animate-[floaty_12s_ease-in-out_infinite]"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 absolute top-1/3 -right-40 h-[500px] w-[500px] rounded-full bg-indigo-600/30 blur-[120px] animate-[floaty_14s_ease-in-out_infinite_-3s]"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 absolute -bottom-40 left-1/3 h-[550px] w-[550px] rounded-full bg-fuchsia-600/25 blur-[120px] animate-[floaty_16s_ease-in-out_infinite_-6s]"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 absolute top-1/2 left-1/2 h-[400px] w-[400px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-cyan-500/15 blur-[100px] animate-[floaty_10s_ease-in-out_infinite_-2s]"})]}),(0,a.jsx)(n(),{id:"e45020aa9d0dcde0",children:'@keyframes floaty{0%,100%{transform:translate(0,0)scale(1)}33%{transform:translate(40px,-30px)scale(1.08)}66%{transform:translate(-30px,20px)scale(.95)}}@keyframes shimmer{0%{transform:translatex(-100%)}100%{transform:translatex(200%)}}@keyframes fadeUp{from{opacity:0;transform:translatey(20px)}to{opacity:1;transform:translatey(0)}}.shimmer-btn::after{content:"";position:absolute;top:0;left:0;bottom:0;width:60%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2.8s ease-in-out infinite;pointer-events:none}.fade-up{animation:fadeUp.6s ease-out backwards}'}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative z-10 mx-auto flex min-h-screen max-w-7xl flex-col justify-center px-4 py-6 sm:px-6 lg:px-8 lg:py-8",children:[(0,a.jsxs)("div",{style:{boxShadow:"0 30px 90px rgba(0,0,0,0.45)"},className:"jsx-e45020aa9d0dcde0 grid w-full overflow-hidden rounded-[2rem] border border-white/10 bg-white/[0.02] backdrop-blur-2xl fade-up lg:grid-cols-[1.1fr_0.9fr]",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative hidden overflow-hidden bg-gradient-to-br from-indigo-950 via-violet-900 to-purple-900 p-8 lg:flex lg:flex-col lg:justify-between lg:p-10",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute -top-20 -right-20 h-72 w-72 rounded-full bg-fuchsia-500/40 blur-[60px]"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute -bottom-20 -left-20 h-72 w-72 rounded-full bg-indigo-500/40 blur-[60px]"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute top-1/2 left-1/2 h-48 w-48 -translate-x-1/2 -translate-y-1/2 rounded-full bg-pink-500/20 blur-[50px]"}),(0,a.jsx)("div",{style:{backgroundImage:"linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px)",backgroundSize:"32px 32px",maskImage:"radial-gradient(ellipse at center, black 30%, transparent 75%)",WebkitMaskImage:"radial-gradient(ellipse at center, black 30%, transparent 75%)"},className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute inset-0 opacity-40"}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative z-10 flex flex-col gap-3",children:[(0,a.jsx)("div",{style:{width:"fit-content"},className:"jsx-e45020aa9d0dcde0 inline-flex h-12 items-center rounded-2xl bg-white/95 px-4 shadow-2xl shadow-indigo-900/40 ring-1 ring-white/20",children:(0,a.jsx)("img",{src:"/fjslogo.svg",alt:"Fujinet Systems JSC",className:"jsx-e45020aa9d0dcde0 h-7 w-auto"})}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 text-[11px] uppercase tracking-[0.18em] text-violet-200/70",children:"Software Solutions \xb7 Internal Portal"})]}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative z-10",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mb-5 inline-flex items-center gap-2 rounded-full border border-white/20 bg-white/10 px-3.5 py-1.5 text-[10px] font-semibold uppercase tracking-[0.18em] text-white backdrop-blur-md",children:[(0,a.jsxs)("span",{className:"jsx-e45020aa9d0dcde0 relative flex h-1.5 w-1.5",children:[(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 absolute inline-flex h-full w-full animate-ping rounded-full bg-emerald-400 opacity-75"}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 relative inline-flex h-1.5 w-1.5 rounded-full bg-emerald-400"})]}),"AI Router Gateway \xb7 Internal"]}),(0,a.jsxs)("h1",{className:"jsx-e45020aa9d0dcde0 text-3xl font-black leading-[1.1] tracking-tight text-white xl:text-4xl",children:["Truy cập cổng"," ",(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 bg-gradient-to-br from-violet-200 via-fuchsia-200 to-cyan-200 bg-clip-text text-transparent",children:"AI nội bộ"})," ","Fujinet"]}),(0,a.jsx)("p",{className:"jsx-e45020aa9d0dcde0 mt-4 max-w-md text-sm leading-relaxed text-violet-100/75",children:"API key gateway d\xf9ng chung cho to\xe0n bộ workload AI — translation, coding assistance, agent runtime v\xe0 internal services."})]}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 relative z-10 space-y-2.5",children:[{icon:(0,a.jsx)("path",{d:"M16.5 10.5V7a4.5 4.5 0 0 0-9 0v3.5M5 10.5h14v9a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 5 19.5v-9Z",className:"jsx-e45020aa9d0dcde0"}),text:"Đăng nhập bằng t\xe0i khoản nội bộ"},{icon:(0,a.jsx)("path",{d:"M12 3 4 6.5v5C4 16.5 7.5 20.5 12 21c4.5-.5 8-4.5 8-9.5v-5L12 3Z",className:"jsx-e45020aa9d0dcde0"}),text:"Quản l\xfd & tự cấp API key"},{icon:(0,a.jsx)("path",{d:"M13 2 3 14h7l-1 8 10-12h-7l1-8Z",className:"jsx-e45020aa9d0dcde0"}),text:"Self-hosted \xb7 bảo mật dữ liệu"}].map((e,t)=>(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-center gap-3 text-[13px] text-violet-100/85",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 flex h-8 w-8 shrink-0 items-center justify-center rounded-xl border border-white/15 bg-white/10 backdrop-blur-md",children:(0,a.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-3.5 w-3.5 text-white",children:e.icon})}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0",children:e.text})]},t))})]}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative flex flex-col bg-white p-7 sm:p-10",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute -top-24 -right-24 h-72 w-72 rounded-full bg-violet-500/12 blur-3xl"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute -bottom-24 -left-24 h-64 w-64 rounded-full bg-indigo-500/10 blur-3xl"}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mb-6 flex items-center gap-3 lg:hidden",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 inline-flex h-10 items-center rounded-xl bg-gradient-to-br from-indigo-600 to-violet-600 px-3 shadow-lg shadow-indigo-500/30",children:(0,a.jsx)("img",{src:"/fjslogo.svg",alt:"Fujinet Systems JSC",className:"jsx-e45020aa9d0dcde0 h-6 w-auto brightness-0 invert"})}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0",children:(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 text-[10px] uppercase tracking-[0.18em] text-indigo-600",children:"AI Router Gateway"})})]}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative z-10 flex flex-1 flex-col",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0",children:[(0,a.jsxs)("span",{className:"jsx-e45020aa9d0dcde0 inline-flex items-center gap-1.5 rounded-full bg-gradient-to-r from-indigo-600 to-violet-600 px-3 py-1 text-[10px] font-black uppercase tracking-[0.18em] text-white shadow-lg shadow-indigo-500/30",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,className:"jsx-e45020aa9d0dcde0 h-3 w-3",children:[(0,a.jsx)("rect",{x:"4",y:"11",width:"16",height:"9",rx:"2",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M8 11V7a4 4 0 0 1 8 0v4",className:"jsx-e45020aa9d0dcde0"})]}),"Đăng nhập"]}),(0,a.jsx)("h2",{className:"jsx-e45020aa9d0dcde0 mt-3 text-2xl font-black tracking-tight text-slate-950",children:"Ch\xe0o mừng trở lại"}),(0,a.jsx)("p",{className:"jsx-e45020aa9d0dcde0 mt-1.5 text-sm text-slate-500",children:"Đăng nhập để quản l\xfd API key & route AI traffic nội bộ."})]}),null===w?(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mt-6 flex items-center justify-center gap-3 rounded-2xl border border-slate-200 bg-slate-50/80 px-4 py-5 text-sm text-slate-500",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",className:"jsx-e45020aa9d0dcde0 h-4 w-4 animate-spin text-indigo-500",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",className:"jsx-e45020aa9d0dcde0 opacity-25"}),(0,a.jsx)("path",{fill:"currentColor",d:"M4 12a8 8 0 0 1 8-8V0C5.4 0 0 5.4 0 12h4Z",className:"jsx-e45020aa9d0dcde0 opacity-75"})]}),"Đang tải cấu h\xecnh x\xe1c thực..."]}):(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mt-6",children:[E&&(0,a.jsxs)("button",{type:"button",onClick:()=>{window.location.href="/api/auth/oidc/start"},className:"jsx-e45020aa9d0dcde0 group mb-3 flex w-full items-center justify-center gap-2.5 rounded-2xl border border-slate-200 bg-white px-4 py-2.5 text-sm font-bold text-slate-700 shadow-sm transition-all hover:-translate-y-0.5 hover:border-indigo-300 hover:bg-indigo-50/40 hover:shadow-md hover:shadow-indigo-500/10",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4 text-indigo-600",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"m9 12 2 2 4-4",className:"jsx-e45020aa9d0dcde0"})]}),C,(0,a.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,className:"jsx-e45020aa9d0dcde0 h-3.5 w-3.5 text-slate-400 transition-transform group-hover:translate-x-0.5",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14M13 5l7 7-7 7",className:"jsx-e45020aa9d0dcde0"})})]}),E&&W&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mb-3 flex items-center gap-3 text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-400",children:[(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 h-px flex-1 bg-slate-200"}),"hoặc",(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 h-px flex-1 bg-slate-200"})]}),W?(0,a.jsxs)("form",{onSubmit:P,className:"jsx-e45020aa9d0dcde0 space-y-3",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0",children:[(0,a.jsx)("label",{className:"jsx-e45020aa9d0dcde0 mb-1 block text-[11px] font-black uppercase tracking-[0.16em] text-slate-500",children:"T\xe0i khoản"}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 group relative",children:[(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-400 transition-colors group-focus-within:text-indigo-600",children:(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:[(0,a.jsx)("circle",{cx:"12",cy:"8",r:"4",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M4 21c0-4.4 3.6-8 8-8s8 3.6 8 8",className:"jsx-e45020aa9d0dcde0"})]})}),(0,a.jsx)("input",{value:e,onChange:e=>t(e.target.value),placeholder:B?"admin hoặc LDAP username":A||"admin",autoFocus:!E,required:!0,className:"jsx-e45020aa9d0dcde0 w-full rounded-2xl border border-slate-200 bg-white py-2.5 pl-11 pr-3.5 text-sm font-medium text-slate-900 shadow-sm outline-none transition-all placeholder:font-normal placeholder:text-slate-400 focus:border-indigo-500 focus:shadow-md focus:shadow-indigo-500/10 focus:ring-4 focus:ring-indigo-500/12"})]})]}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0",children:[(0,a.jsx)("label",{className:"jsx-e45020aa9d0dcde0 mb-1 block text-[11px] font-black uppercase tracking-[0.16em] text-slate-500",children:"Mật khẩu"}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 group relative",children:[(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-400 transition-colors group-focus-within:text-indigo-600",children:(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:[(0,a.jsx)("rect",{x:"4",y:"11",width:"16",height:"10",rx:"2",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M8 11V7a4 4 0 0 1 8 0v4",className:"jsx-e45020aa9d0dcde0"})]})}),(0,a.jsx)("input",{type:c?"text":"password",value:s,onChange:e=>r(e.target.value),placeholder:"Nhập mật khẩu",required:!0,className:"jsx-e45020aa9d0dcde0 w-full rounded-2xl border border-slate-200 bg-white py-2.5 pl-11 pr-11 text-sm font-medium text-slate-900 shadow-sm outline-none transition-all placeholder:font-normal placeholder:text-slate-400 focus:border-indigo-500 focus:shadow-md focus:shadow-indigo-500/10 focus:ring-4 focus:ring-indigo-500/12"}),(0,a.jsx)("button",{type:"button",onClick:()=>u(e=>!e),tabIndex:-1,"aria-label":c?"Ẩn mật khẩu":"Hiện mật khẩu",className:"jsx-e45020aa9d0dcde0 absolute right-3 top-1/2 -translate-y-1/2 rounded-lg p-1.5 text-slate-400 transition-colors hover:bg-slate-100 hover:text-indigo-600",children:c?(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:[(0,a.jsx)("path",{d:"M3 3l18 18",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M10.6 6.1A10.5 10.5 0 0 1 12 6c6.5 0 10 7 10 7a17 17 0 0 1-2.2 3.2M6.6 6.6A17 17 0 0 0 2 13s3.5 7 10 7a10 10 0 0 0 5.4-1.6",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M9.9 9.9a3 3 0 0 0 4.2 4.2",className:"jsx-e45020aa9d0dcde0"})]}):(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:[(0,a.jsx)("path",{d:"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("circle",{cx:"12",cy:"12",r:"3",className:"jsx-e45020aa9d0dcde0"})]})})]})]}),"oidc"===N&&!_&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-start gap-2.5 rounded-2xl border border-amber-200 bg-amber-50 p-2.5 text-xs text-amber-800",children:[(0,a.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-e45020aa9d0dcde0 mt-0.5 h-4 w-4 shrink-0",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v4m0 4h.01M10.3 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z",className:"jsx-e45020aa9d0dcde0"})}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0",children:"OIDC đang bật nhưng chưa cấu h\xecnh. Password login vẫn d\xf9ng được để recovery."})]}),"both"===N&&_&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-start gap-2.5 rounded-2xl border border-indigo-200 bg-indigo-50 p-2.5 text-xs text-indigo-800",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-e45020aa9d0dcde0 mt-0.5 h-4 w-4 shrink-0",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 16v-4m0-4h.01",className:"jsx-e45020aa9d0dcde0"})]}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0",children:"Password/OIDC login đều khả dụng."})]}),x&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-start gap-2.5 rounded-2xl border border-red-200 bg-red-50 p-2.5 text-sm text-red-700",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-e45020aa9d0dcde0 mt-0.5 h-4 w-4 shrink-0",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 8v4m0 4h.01",className:"jsx-e45020aa9d0dcde0"})]}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0",children:x})]}),j>0&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-start gap-2.5 rounded-2xl border border-red-200 bg-red-50 p-2.5 text-sm text-red-700",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-e45020aa9d0dcde0 mt-0.5 h-4 w-4 shrink-0",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v6l4 2",className:"jsx-e45020aa9d0dcde0"})]}),(0,a.jsxs)("span",{className:"jsx-e45020aa9d0dcde0",children:["Đ\xe3 kh\xf3a. Thử lại sau ",j,"s."]})]}),m&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 rounded-2xl border border-slate-200 bg-slate-50 p-2.5 text-xs text-slate-600",children:["Qu\xean mật khẩu? Mở"," ",(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 rounded bg-slate-200/70 px-1.5 py-0.5 font-mono text-[11px]",children:"bluerouter"})," ","CLI tr\xean host → Settings → Reset Password to Default."]}),(0,a.jsx)("button",{type:"submit",disabled:v||j>0,className:"jsx-e45020aa9d0dcde0 shimmer-btn relative mt-1 flex w-full items-center justify-center gap-2 overflow-hidden rounded-2xl bg-gradient-to-r from-indigo-600 via-violet-600 to-purple-600 px-4 py-3 text-sm font-black uppercase tracking-[0.06em] text-white shadow-xl shadow-indigo-500/30 transition-all hover:-translate-y-0.5 hover:shadow-2xl hover:shadow-indigo-500/40 active:translate-y-0 disabled:cursor-not-allowed disabled:opacity-60 disabled:hover:translate-y-0 disabled:hover:shadow-xl",children:(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 relative z-10 flex items-center gap-2",children:v?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",className:"jsx-e45020aa9d0dcde0 h-4 w-4 animate-spin",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",className:"jsx-e45020aa9d0dcde0 opacity-25"}),(0,a.jsx)("path",{fill:"currentColor",d:"M4 12a8 8 0 0 1 8-8V0C5.4 0 0 5.4 0 12h4Z",className:"jsx-e45020aa9d0dcde0 opacity-75"})]}),"Đang đăng nhập..."]}):j>0?(0,a.jsxs)(a.Fragment,{children:["Đợi ",j,"s"]}):(0,a.jsxs)(a.Fragment,{children:["Đăng nhập",(0,a.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:(0,a.jsx)("path",{d:"M5 12h14M13 5l7 7-7 7",className:"jsx-e45020aa9d0dcde0"})})]})})}),!1===w&&(0,a.jsx)("p",{className:"jsx-e45020aa9d0dcde0 text-center text-xs text-slate-500",children:"Chưa c\xf3 custom password. Default password vẫn d\xf9ng được cho đến khi bạn đổi."})]}):x&&(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 rounded-2xl border border-red-200 bg-red-50 p-3 text-sm text-red-700",children:x})]})]})]})]}),(0,a.jsxs)("div",{style:{animationDelay:"0.15s"},className:"jsx-e45020aa9d0dcde0 relative z-10 mt-6 fade-up",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mb-4 flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-center gap-3",children:[(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 h-px w-8 bg-gradient-to-r from-transparent to-violet-400/60"}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 text-[11px] font-black uppercase tracking-[0.22em] text-violet-200/80",children:"Hệ thống nội bộ"}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 h-px w-8 bg-gradient-to-l from-transparent to-violet-400/60"})]}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 text-[11px] text-white/40",children:"Truy cập nhanh c\xe1c dịch vụ"})]}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 grid gap-3 sm:grid-cols-2 lg:grid-cols-5",children:l.map(e=>(0,a.jsx)(h,{service:e},e.badge))})]}),(0,a.jsxs)("footer",{className:"jsx-e45020aa9d0dcde0 relative z-10 mt-6 flex flex-col items-center justify-between gap-3 border-t border-white/10 pt-5 text-xs text-white/40 sm:flex-row",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-center gap-3",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 flex h-8 w-8 items-center justify-center rounded-xl bg-gradient-to-br from-indigo-600 to-violet-600 text-white shadow-lg shadow-indigo-500/20 ring-1 ring-indigo-500/20",children:(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:[(0,a.jsx)("path",{d:"M12 3.75 19.5 8v8L12 20.25 4.5 16V8L12 3.75Z",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M12 8v8",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"m7.5 10.25 4.5 2.5 4.5-2.5",className:"jsx-e45020aa9d0dcde0"})]})}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 leading-tight",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 font-semibold text-white/70",children:"Fujinet Internal Portal"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 text-[11px] text-white/40",children:"AI Workspace \xb7 Meeting \xb7 Support \xb7 Resource"})]})]}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 text-white/50",children:["\xa9 2026 Fujinet Systems."," ",(0,a.jsx)("a",{href:"mailto:itadmin@fujinet.net",className:"jsx-e45020aa9d0dcde0 font-semibold text-violet-300 hover:text-violet-200 hover:underline",children:"Contact: itadmin@fujinet.net"})]})]})]})]})}}},e=>{e.O(0,[620,8441,3794,7358],()=>e(e.s=33796)),_N_E=e.O()}]);
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bluerouter-app",
3
- "version": "4.0.11",
3
+ "version": "4.0.12",
4
4
  "description": "Router web dashboard",
5
5
  "private": false,
6
6
  "scripts": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jheavenknows/bluerouter",
3
- "version": "4.0.11",
3
+ "version": "4.0.12",
4
4
  "description": "Bluerouter CLI - Start and manage Bluerouter server",
5
5
  "bin": {
6
6
  "bluerouter": "./cli.js"
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{23333:()=>{},33796:(e,t,s)=>{Promise.resolve().then(s.bind(s,83016))},39092:(e,t,s)=>{"use strict";e.exports=s(73279).style},54642:e=>{var t;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="//"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"u">typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"u">typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},e.exports=t},73279:(e,t,s)=>{"use strict";var a=s(41463);s(23333);var r=s(12115),n=r&&"object"==typeof r&&"default"in r?r:{default:r},i=void 0!==a&&a.env&&!0,d=function(e){return"[object String]"===Object.prototype.toString.call(e)},o=function(){function e(e){var t=void 0===e?{}:e,s=t.name,a=void 0===s?"stylesheet":s,r=t.optimizeForSpeed,n=void 0===r?i:r;l(d(a),"`name` must be a string"),this._name=a,this._deletedRulePlaceholder="#"+a+"-deleted-rule____{}",l("boolean"==typeof n,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=n,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var o="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=o?o.getAttribute("content"):null}var t,s=e.prototype;return s.setOptimizeForSpeed=function(e){l("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),l(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},s.isOptimizeForSpeed=function(){return this._optimizeForSpeed},s.inject=function(){var e=this;if(l(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(i||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,s){return"number"==typeof s?e._serverSheet.cssRules[s]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),s},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},s.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},s.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},s.insertRule=function(e,t){if(l(d(e),"`insertRule` accepts only strings"),"u"<typeof window)return"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++;if(this._optimizeForSpeed){var s=this.getSheet();"number"!=typeof t&&(t=s.cssRules.length);try{s.insertRule(e,t)}catch(t){return i||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var a=this._tags[t];this._tags.push(this.makeStyleTag(this._name,e,a))}return this._rulesCount++},s.replaceRule=function(e,t){if(this._optimizeForSpeed||"u"<typeof window){var s="u">typeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!s.cssRules[e])return e;s.deleteRule(e);try{s.insertRule(t,e)}catch(a){i||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),s.insertRule(this._deletedRulePlaceholder,e)}}else{var a=this._tags[e];l(a,"old rule at index `"+e+"` not found"),a.textContent=t}return e},s.deleteRule=function(e){if("u"<typeof window)return void this._serverSheet.deleteRule(e);if(this._optimizeForSpeed)this.replaceRule(e,"");else{var t=this._tags[e];l(t,"rule at index `"+e+"` not found"),t.parentNode.removeChild(t),this._tags[e]=null}},s.flush=function(){this._injected=!1,this._rulesCount=0,"u">typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},s.cssRules=function(){var e=this;return"u"<typeof window?this._serverSheet.cssRules:this._tags.reduce(function(t,s){return s?t=t.concat(Array.prototype.map.call(e.getSheetForTag(s).cssRules,function(t){return t.cssText===e._deletedRulePlaceholder?null:t})):t.push(null),t},[])},s.makeStyleTag=function(e,t,s){t&&l(d(t),"makeStyleTag accepts only strings as second parameter");var a=document.createElement("style");this._nonce&&a.setAttribute("nonce",this._nonce),a.type="text/css",a.setAttribute("data-"+e,""),t&&a.appendChild(document.createTextNode(t));var r=document.head||document.getElementsByTagName("head")[0];return s?r.insertBefore(a,s):r.appendChild(a),a},t=[{key:"length",get:function(){return this._rulesCount}}],function(e,t){for(var s=0;s<t.length;s++){var a=t[s];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(e.prototype,t),e}();function l(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var c=function(e){for(var t=5381,s=e.length;s;)t=33*t^e.charCodeAt(--s);return t>>>0},h={};function u(e,t){if(!t)return"jsx-"+e;var s=String(t),a=e+s;return h[a]||(h[a]="jsx-"+c(e+"-"+s)),h[a]}function x(e,t){"u"<typeof window&&(t=t.replace(/\/style/gi,"\\/style"));var s=e+t;return h[s]||(h[s]=t.replace(/__jsx-style-dynamic-selector/g,e)),h[s]}var p=function(){function e(e){var t=void 0===e?{}:e,s=t.styleSheet,a=void 0===s?null:s,r=t.optimizeForSpeed,n=void 0!==r&&r;this._sheet=a||new o({name:"styled-jsx",optimizeForSpeed:n}),this._sheet.inject(),a&&"boolean"==typeof n&&(this._sheet.setOptimizeForSpeed(n),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"u">typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var s=this.getIdAndRules(e),a=s.styleId,r=s.rules;if(a in this._instancesCounts){this._instancesCounts[a]+=1;return}var n=r.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[a]=n,this._instancesCounts[a]=1},t.remove=function(e){var t=this,s=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(s in this._instancesCounts,"styleId: `"+s+"` not found"),this._instancesCounts[s]-=1,this._instancesCounts[s]<1){var a=this._fromServer&&this._fromServer[s];a?(a.parentNode.removeChild(a),delete this._fromServer[s]):(this._indices[s].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[s]),delete this._instancesCounts[s]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],s=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return s[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,s;return t=this.cssRules(),void 0===(s=e)&&(s={}),t.map(function(e){var t=e[0],a=e[1];return n.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:s.nonce?s.nonce:void 0,dangerouslySetInnerHTML:{__html:a}})})},t.getIdAndRules=function(e){var t=e.children,s=e.dynamic,a=e.id;if(s){var r=u(a,s);return{styleId:r,rules:Array.isArray(t)?t.map(function(e){return x(r,e)}):[x(r,t)]}}return{styleId:u(a),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),m=r.createContext(null);m.displayName="StyleSheetContext";var f=n.default.useInsertionEffect||n.default.useLayoutEffect,j="u">typeof window?new p:void 0;function g(e){var t=j||r.useContext(m);return t&&("u"<typeof window?t.add(e):f(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)])),null}g.dynamic=function(e){return e.map(function(e){return u(e[0],e[1])}).join(" ")},t.style=g},73321:(e,t,s)=>{"use strict";var a=s(74645);s.o(a,"notFound")&&s.d(t,{notFound:function(){return a.notFound}}),s.o(a,"useParams")&&s.d(t,{useParams:function(){return a.useParams}}),s.o(a,"usePathname")&&s.d(t,{usePathname:function(){return a.usePathname}}),s.o(a,"useRouter")&&s.d(t,{useRouter:function(){return a.useRouter}}),s.o(a,"useSearchParams")&&s.d(t,{useSearchParams:function(){return a.useSearchParams}})},83016:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>u});var a=s(95155),r=s(39092),n=s.n(r),i=s(12115),d=s(73321),o=s(90620);let l=[{badge:"CHAT",title:"AI Web Chat",description:"Tr\xf2 chuyện với AI nội bộ, hỗ trợ viết code, ph\xe2n t\xedch t\xe0i liệu, brainstorm \xfd tưởng v\xe0 hỏi đ\xe1p kỹ thuật.",href:"https://ai.fujinet.vn/",cta:"Mở AI Chat",icon:"chat",accent:"#d946ef",accentRgb:"217,70,239"},{badge:"DỊCH",title:"AI Translator",description:"Dịch Word, Excel, PowerPoint, h\xecnh ảnh v\xe0 PDF bằng AI, ưu ti\xean giữ nguy\xean định dạng gốc.",href:"https://translate-workspace.fujinet.vn",cta:"Mở Translator",icon:"translate",accent:"#a855f7",accentRgb:"168,85,247"},{badge:"TICKET",title:"IT Support",description:"Gửi y\xeau cầu hỗ trợ kỹ thuật, theo d\xf5i tiến độ ticket, trao đổi với IT v\xe0 xem lịch sử xử l\xfd sự cố.",href:"https://itsupport.fujinet.vn",cta:"Gửi Ticket",icon:"support",accent:"#3b82f6",accentRgb:"59,130,246"},{badge:"MEETING",title:"Web Meeting",description:"Họp video conference nội bộ trực tuyến, hỗ trợ chia sẻ m\xe0n h\xecnh, trao đổi nh\xf3m v\xe0 l\xe0m việc từ xa.",href:"https://meeting.fujinet.net",cta:"V\xe0o Meeting",icon:"meeting",accent:"#10b981",accentRgb:"16,185,129"},{badge:"ASSET",title:"IT Resource",description:"Quản l\xfd thiết bị, t\xe0i khoản, VPN, Work From Home v\xe0 c\xe1c dịch vụ hạ tầng CNTT nội bộ.",href:"https://itresource.fujinet.net/",cta:"Mở Resource",icon:"resource",accent:"#06b6d4",accentRgb:"6,182,212"}];function c({name:e,className:t="h-5 w-5"}){let s={className:t,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};return"chat"===e?(0,a.jsxs)("svg",{...s,children:[(0,a.jsx)("path",{d:"M7.5 8.5h9"}),(0,a.jsx)("path",{d:"M7.5 12h5.5"}),(0,a.jsx)("path",{d:"M21 11.5a7.5 7.5 0 0 1-7.5 7.5H8l-5 3v-5.2A7.5 7.5 0 1 1 21 11.5Z"})]}):"translate"===e?(0,a.jsxs)("svg",{...s,children:[(0,a.jsx)("path",{d:"M4 5h7"}),(0,a.jsx)("path",{d:"M8 3v2"}),(0,a.jsx)("path",{d:"M10 5c-.6 3.2-2.4 5.7-5 7.5"}),(0,a.jsx)("path",{d:"M5 8c1.2 1.8 2.7 3.2 4.7 4.2"}),(0,a.jsx)("path",{d:"m14 21 4-9 4 9"}),(0,a.jsx)("path",{d:"M15.5 17.5h5"})]}):"support"===e?(0,a.jsxs)("svg",{...s,children:[(0,a.jsx)("path",{d:"M4 13a8 8 0 0 1 16 0"}),(0,a.jsx)("path",{d:"M18 19a3 3 0 0 1-3 3h-2"}),(0,a.jsx)("path",{d:"M4 13v3a2 2 0 0 0 2 2h1v-7H6a2 2 0 0 0-2 2Z"}),(0,a.jsx)("path",{d:"M20 13v3a2 2 0 0 1-2 2h-1v-7h1a2 2 0 0 1 2 2Z"})]}):"meeting"===e?(0,a.jsxs)("svg",{...s,children:[(0,a.jsx)("rect",{x:"3",y:"6",width:"13",height:"12",rx:"2"}),(0,a.jsx)("path",{d:"m16 10 5-3v10l-5-3"}),(0,a.jsx)("path",{d:"M7.5 10h4"}),(0,a.jsx)("path",{d:"M7.5 14h2.5"})]}):"resource"===e?(0,a.jsxs)("svg",{...s,children:[(0,a.jsx)("rect",{x:"4",y:"5",width:"16",height:"11",rx:"2"}),(0,a.jsx)("path",{d:"M8 20h8"}),(0,a.jsx)("path",{d:"M12 16v4"}),(0,a.jsx)("path",{d:"M8 9h8"}),(0,a.jsx)("path",{d:"M8 12h4"})]}):null}function h({service:e}){return(0,a.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"group relative flex flex-col justify-between overflow-hidden rounded-2xl border border-white/12 bg-white/[0.04] p-4 backdrop-blur-xl transition-all duration-300 hover:-translate-y-1 hover:border-white/25 hover:bg-white/[0.08]",style:{boxShadow:"0 8px 24px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.05)"},children:[(0,a.jsx)("div",{className:"pointer-events-none absolute -right-8 -top-8 h-24 w-24 rounded-full opacity-50 blur-2xl transition-opacity duration-300 group-hover:opacity-80",style:{background:e.accent}}),(0,a.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 h-px opacity-0 transition-opacity duration-300 group-hover:opacity-100",style:{background:`linear-gradient(90deg, transparent, ${e.accent}, transparent)`}}),(0,a.jsxs)("div",{className:"relative z-10 mb-3 flex items-center justify-between",children:[(0,a.jsx)("span",{className:"rounded-full px-2.5 py-0.5 text-[9px] font-black uppercase tracking-[0.18em] text-white shadow-lg",style:{background:e.accent,boxShadow:`0 4px 12px rgba(${e.accentRgb}, 0.4)`},children:e.badge}),(0,a.jsx)("span",{className:"grid h-8 w-8 place-items-center rounded-xl bg-white/95 shadow-md ring-1 ring-white/20 transition-transform group-hover:scale-110 group-hover:rotate-3",style:{color:e.accent},children:(0,a.jsx)(c,{name:e.icon,className:"h-4 w-4"})})]}),(0,a.jsxs)("div",{className:"relative z-10 flex-1",children:[(0,a.jsx)("h3",{className:"text-sm font-bold text-white",children:e.title}),(0,a.jsx)("p",{className:"mt-1 text-[11px] leading-relaxed text-white/55 line-clamp-2",children:e.description})]}),(0,a.jsxs)("div",{className:"relative z-10 mt-3 flex items-center gap-1.5 text-[10px] font-black uppercase tracking-[0.14em] text-violet-200/90 transition-colors group-hover:text-white",children:[e.cta,(0,a.jsx)("svg",{className:"h-3 w-3 transition-transform group-hover:translate-x-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M5 12h14M13 5l7 7-7 7"})})]})]})}function u(){let[e,t]=(0,i.useState)("admin"),[s,r]=(0,i.useState)(""),[c,u]=(0,i.useState)(!1),[x,p]=(0,i.useState)(""),[m,f]=(0,i.useState)(""),[j,g]=(0,i.useState)(0),[v,b]=(0,i.useState)(!1),[w,y]=(0,i.useState)(null),[N,k]=(0,i.useState)("password"),[_,S]=(0,i.useState)(!1),[C,M]=(0,i.useState)("Sign in with OIDC"),[R,F]=(0,i.useState)(!1),[L,A]=(0,i.useState)(!1),[I,z]=(0,i.useState)("admin"),T=(0,d.useRouter)();o.vQ?.name,(0,i.useEffect)(()=>{if(j<=0)return;let e=setInterval(()=>g(e=>e>0?e-1:0),1e3);return()=>clearInterval(e)},[j]),(0,i.useEffect)(()=>{!async function(){let e=new AbortController,s=setTimeout(()=>e.abort(),5e3),a=window.location.origin;try{let r=await fetch(`${a}/api/auth/status`,{signal:e.signal});if(clearTimeout(s),r.ok){let e=await r.json();y(!!e.hasPassword),k(e.authMode||"password"),S(!0===e.oidcConfigured),M(e.oidcLoginLabel||"Sign in with OIDC"),F(!0===e.ldapEnabled),A(!0===e.ldapConfigured),z(e.localLoginUsername||"admin"),t(e.localLoginUsername||"admin")}else y(!0)}catch{clearTimeout(s),y(!0)}}()},[T]);let P=async t=>{t.preventDefault(),b(!0),p(""),f("");try{let t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:s,loginType:"auto"})});if(t.ok)T.push("/dashboard"),T.refresh();else{let e=await t.json();p(e.error||"Invalid account or password"),e.resetHint&&f(e.resetHint),e.retryAfter&&g(Number(e.retryAfter))}}catch{p("An error occurred. Please try again.")}finally{b(!1)}},E=_&&["oidc","both"].includes(N),W="oidc"!==N||!_,O=R&&L&&W;return(0,a.jsxs)("main",{className:"jsx-e45020aa9d0dcde0 relative min-h-screen overflow-hidden bg-[#0a0a1f] text-slate-800",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute inset-0",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 absolute -top-40 -left-40 h-[600px] w-[600px] rounded-full bg-violet-600/30 blur-[120px] animate-[floaty_12s_ease-in-out_infinite]"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 absolute top-1/3 -right-40 h-[500px] w-[500px] rounded-full bg-indigo-600/30 blur-[120px] animate-[floaty_14s_ease-in-out_infinite_-3s]"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 absolute -bottom-40 left-1/3 h-[550px] w-[550px] rounded-full bg-fuchsia-600/25 blur-[120px] animate-[floaty_16s_ease-in-out_infinite_-6s]"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 absolute top-1/2 left-1/2 h-[400px] w-[400px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-cyan-500/15 blur-[100px] animate-[floaty_10s_ease-in-out_infinite_-2s]"})]}),(0,a.jsx)(n(),{id:"e45020aa9d0dcde0",children:'@keyframes floaty{0%,100%{transform:translate(0,0)scale(1)}33%{transform:translate(40px,-30px)scale(1.08)}66%{transform:translate(-30px,20px)scale(.95)}}@keyframes shimmer{0%{transform:translatex(-100%)}100%{transform:translatex(200%)}}@keyframes fadeUp{from{opacity:0;transform:translatey(20px)}to{opacity:1;transform:translatey(0)}}.shimmer-btn::after{content:"";position:absolute;top:0;left:0;bottom:0;width:60%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2.8s ease-in-out infinite;pointer-events:none}.fade-up{animation:fadeUp.6s ease-out backwards}'}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative z-10 mx-auto flex min-h-screen max-w-7xl flex-col px-4 py-6 sm:px-6 lg:px-8 lg:py-8",children:[(0,a.jsxs)("div",{style:{boxShadow:"0 30px 90px rgba(0,0,0,0.45)"},className:"jsx-e45020aa9d0dcde0 grid w-full overflow-hidden rounded-[2rem] border border-white/10 bg-white/[0.02] backdrop-blur-2xl fade-up lg:grid-cols-[1.1fr_0.9fr]",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative hidden overflow-hidden bg-gradient-to-br from-indigo-950 via-violet-900 to-purple-900 p-8 lg:flex lg:flex-col lg:justify-between lg:p-10",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute -top-20 -right-20 h-72 w-72 rounded-full bg-fuchsia-500/40 blur-[60px]"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute -bottom-20 -left-20 h-72 w-72 rounded-full bg-indigo-500/40 blur-[60px]"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute top-1/2 left-1/2 h-48 w-48 -translate-x-1/2 -translate-y-1/2 rounded-full bg-pink-500/20 blur-[50px]"}),(0,a.jsx)("div",{style:{backgroundImage:"linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px)",backgroundSize:"32px 32px",maskImage:"radial-gradient(ellipse at center, black 30%, transparent 75%)",WebkitMaskImage:"radial-gradient(ellipse at center, black 30%, transparent 75%)"},className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute inset-0 opacity-40"}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative z-10 flex items-center gap-4",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 flex h-14 w-14 items-center justify-center rounded-2xl bg-white/95 shadow-2xl shadow-indigo-900/40 ring-1 ring-white/20",children:(0,a.jsx)("img",{src:"/fjslogo.svg",alt:"Fujinet",className:"jsx-e45020aa9d0dcde0 h-9 w-auto"})}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 text-white",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 text-base font-bold tracking-tight",children:"Fujinet Systems JSC"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 text-[11px] uppercase tracking-[0.18em] text-violet-200/70",children:"Software Solutions"})]})]}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative z-10",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mb-5 inline-flex items-center gap-2 rounded-full border border-white/20 bg-white/10 px-3.5 py-1.5 text-[10px] font-semibold uppercase tracking-[0.18em] text-white backdrop-blur-md",children:[(0,a.jsxs)("span",{className:"jsx-e45020aa9d0dcde0 relative flex h-1.5 w-1.5",children:[(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 absolute inline-flex h-full w-full animate-ping rounded-full bg-emerald-400 opacity-75"}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 relative inline-flex h-1.5 w-1.5 rounded-full bg-emerald-400"})]}),"AI Router Gateway \xb7 Internal"]}),(0,a.jsxs)("h1",{className:"jsx-e45020aa9d0dcde0 text-3xl font-black leading-[1.1] tracking-tight text-white xl:text-4xl",children:["Truy cập cổng"," ",(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 bg-gradient-to-br from-violet-200 via-fuchsia-200 to-cyan-200 bg-clip-text text-transparent",children:"AI nội bộ"})," ","Fujinet"]}),(0,a.jsx)("p",{className:"jsx-e45020aa9d0dcde0 mt-4 max-w-md text-sm leading-relaxed text-violet-100/75",children:"API key gateway d\xf9ng chung cho to\xe0n bộ workload AI — translation, coding assistance, agent runtime v\xe0 internal services."})]}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 relative z-10 space-y-2.5",children:[{icon:(0,a.jsx)("path",{d:"M16.5 10.5V7a4.5 4.5 0 0 0-9 0v3.5M5 10.5h14v9a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 5 19.5v-9Z",className:"jsx-e45020aa9d0dcde0"}),text:"OIDC \xb7 LDAP \xb7 Password — đa phương thức x\xe1c thực"},{icon:(0,a.jsx)("path",{d:"M12 3 4 6.5v5C4 16.5 7.5 20.5 12 21c4.5-.5 8-4.5 8-9.5v-5L12 3Z",className:"jsx-e45020aa9d0dcde0"}),text:"Rate limit & audit log đầy đủ cho mỗi API key"},{icon:(0,a.jsx)("path",{d:"M13 2 3 14h7l-1 8 10-12h-7l1-8Z",className:"jsx-e45020aa9d0dcde0"}),text:"Self-hosted \xb7 dữ liệu kh\xf4ng rời khỏi infra Fujinet"}].map((e,t)=>(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-center gap-3 text-[13px] text-violet-100/85",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 flex h-8 w-8 shrink-0 items-center justify-center rounded-xl border border-white/15 bg-white/10 backdrop-blur-md",children:(0,a.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-3.5 w-3.5 text-white",children:e.icon})}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0",children:e.text})]},t))})]}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative flex flex-col bg-white p-7 sm:p-10",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute -top-24 -right-24 h-72 w-72 rounded-full bg-violet-500/12 blur-3xl"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute -bottom-24 -left-24 h-64 w-64 rounded-full bg-indigo-500/10 blur-3xl"}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mb-6 flex items-center gap-3 lg:hidden",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 flex h-11 w-11 items-center justify-center rounded-xl bg-gradient-to-br from-indigo-600 to-violet-600 shadow-lg shadow-indigo-500/30",children:(0,a.jsx)("img",{src:"/fjslogo.svg",alt:"Fujinet",className:"jsx-e45020aa9d0dcde0 h-7 w-auto brightness-0 invert"})}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 text-sm font-bold text-slate-900",children:"Fujinet Systems JSC"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 text-[10px] uppercase tracking-[0.18em] text-indigo-600",children:"AI Router Gateway"})]})]}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 relative z-10 flex flex-1 flex-col",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0",children:[(0,a.jsxs)("span",{className:"jsx-e45020aa9d0dcde0 inline-flex items-center gap-1.5 rounded-full bg-gradient-to-r from-indigo-600 to-violet-600 px-3 py-1 text-[10px] font-black uppercase tracking-[0.18em] text-white shadow-lg shadow-indigo-500/30",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,className:"jsx-e45020aa9d0dcde0 h-3 w-3",children:[(0,a.jsx)("rect",{x:"4",y:"11",width:"16",height:"9",rx:"2",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M8 11V7a4 4 0 0 1 8 0v4",className:"jsx-e45020aa9d0dcde0"})]}),"Đăng nhập"]}),(0,a.jsx)("h2",{className:"jsx-e45020aa9d0dcde0 mt-3 text-2xl font-black tracking-tight text-slate-950",children:"Ch\xe0o mừng trở lại"}),(0,a.jsx)("p",{className:"jsx-e45020aa9d0dcde0 mt-1.5 text-sm text-slate-500",children:"Đăng nhập để quản l\xfd API key & route AI traffic nội bộ."})]}),null===w?(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mt-6 flex items-center justify-center gap-3 rounded-2xl border border-slate-200 bg-slate-50/80 px-4 py-5 text-sm text-slate-500",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",className:"jsx-e45020aa9d0dcde0 h-4 w-4 animate-spin text-indigo-500",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",className:"jsx-e45020aa9d0dcde0 opacity-25"}),(0,a.jsx)("path",{fill:"currentColor",d:"M4 12a8 8 0 0 1 8-8V0C5.4 0 0 5.4 0 12h4Z",className:"jsx-e45020aa9d0dcde0 opacity-75"})]}),"Đang tải cấu h\xecnh x\xe1c thực..."]}):(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mt-6",children:[E&&(0,a.jsxs)("button",{type:"button",onClick:()=>{window.location.href="/api/auth/oidc/start"},className:"jsx-e45020aa9d0dcde0 group mb-3 flex w-full items-center justify-center gap-2.5 rounded-2xl border border-slate-200 bg-white px-4 py-2.5 text-sm font-bold text-slate-700 shadow-sm transition-all hover:-translate-y-0.5 hover:border-indigo-300 hover:bg-indigo-50/40 hover:shadow-md hover:shadow-indigo-500/10",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4 text-indigo-600",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"m9 12 2 2 4-4",className:"jsx-e45020aa9d0dcde0"})]}),C,(0,a.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,className:"jsx-e45020aa9d0dcde0 h-3.5 w-3.5 text-slate-400 transition-transform group-hover:translate-x-0.5",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14M13 5l7 7-7 7",className:"jsx-e45020aa9d0dcde0"})})]}),E&&W&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mb-3 flex items-center gap-3 text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-400",children:[(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 h-px flex-1 bg-slate-200"}),"hoặc",(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 h-px flex-1 bg-slate-200"})]}),W?(0,a.jsxs)("form",{onSubmit:P,className:"jsx-e45020aa9d0dcde0 space-y-3",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0",children:[(0,a.jsx)("label",{className:"jsx-e45020aa9d0dcde0 mb-1 block text-[11px] font-black uppercase tracking-[0.16em] text-slate-500",children:"T\xe0i khoản"}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 group relative",children:[(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-400 transition-colors group-focus-within:text-indigo-600",children:(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:[(0,a.jsx)("circle",{cx:"12",cy:"8",r:"4",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M4 21c0-4.4 3.6-8 8-8s8 3.6 8 8",className:"jsx-e45020aa9d0dcde0"})]})}),(0,a.jsx)("input",{value:e,onChange:e=>t(e.target.value),placeholder:O?"admin hoặc LDAP username":I||"admin",autoFocus:!E,required:!0,className:"jsx-e45020aa9d0dcde0 w-full rounded-2xl border border-slate-200 bg-white py-2.5 pl-11 pr-3.5 text-sm font-medium text-slate-900 shadow-sm outline-none transition-all placeholder:font-normal placeholder:text-slate-400 focus:border-indigo-500 focus:shadow-md focus:shadow-indigo-500/10 focus:ring-4 focus:ring-indigo-500/12"})]})]}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0",children:[(0,a.jsx)("label",{className:"jsx-e45020aa9d0dcde0 mb-1 block text-[11px] font-black uppercase tracking-[0.16em] text-slate-500",children:"Mật khẩu"}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 group relative",children:[(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 pointer-events-none absolute left-3.5 top-1/2 -translate-y-1/2 text-slate-400 transition-colors group-focus-within:text-indigo-600",children:(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:[(0,a.jsx)("rect",{x:"4",y:"11",width:"16",height:"10",rx:"2",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M8 11V7a4 4 0 0 1 8 0v4",className:"jsx-e45020aa9d0dcde0"})]})}),(0,a.jsx)("input",{type:c?"text":"password",value:s,onChange:e=>r(e.target.value),placeholder:"Nhập mật khẩu",required:!0,className:"jsx-e45020aa9d0dcde0 w-full rounded-2xl border border-slate-200 bg-white py-2.5 pl-11 pr-11 text-sm font-medium text-slate-900 shadow-sm outline-none transition-all placeholder:font-normal placeholder:text-slate-400 focus:border-indigo-500 focus:shadow-md focus:shadow-indigo-500/10 focus:ring-4 focus:ring-indigo-500/12"}),(0,a.jsx)("button",{type:"button",onClick:()=>u(e=>!e),tabIndex:-1,"aria-label":c?"Ẩn mật khẩu":"Hiện mật khẩu",className:"jsx-e45020aa9d0dcde0 absolute right-3 top-1/2 -translate-y-1/2 rounded-lg p-1.5 text-slate-400 transition-colors hover:bg-slate-100 hover:text-indigo-600",children:c?(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:[(0,a.jsx)("path",{d:"M3 3l18 18",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M10.6 6.1A10.5 10.5 0 0 1 12 6c6.5 0 10 7 10 7a17 17 0 0 1-2.2 3.2M6.6 6.6A17 17 0 0 0 2 13s3.5 7 10 7a10 10 0 0 0 5.4-1.6",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M9.9 9.9a3 3 0 0 0 4.2 4.2",className:"jsx-e45020aa9d0dcde0"})]}):(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:[(0,a.jsx)("path",{d:"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("circle",{cx:"12",cy:"12",r:"3",className:"jsx-e45020aa9d0dcde0"})]})})]})]}),"oidc"===N&&!_&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-start gap-2.5 rounded-2xl border border-amber-200 bg-amber-50 p-2.5 text-xs text-amber-800",children:[(0,a.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-e45020aa9d0dcde0 mt-0.5 h-4 w-4 shrink-0",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v4m0 4h.01M10.3 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z",className:"jsx-e45020aa9d0dcde0"})}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0",children:"OIDC đang bật nhưng chưa cấu h\xecnh. Password login vẫn d\xf9ng được để recovery."})]}),"both"===N&&_&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-start gap-2.5 rounded-2xl border border-indigo-200 bg-indigo-50 p-2.5 text-xs text-indigo-800",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-e45020aa9d0dcde0 mt-0.5 h-4 w-4 shrink-0",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 16v-4m0-4h.01",className:"jsx-e45020aa9d0dcde0"})]}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0",children:"Password/OIDC login đều khả dụng."})]}),x&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-start gap-2.5 rounded-2xl border border-red-200 bg-red-50 p-2.5 text-sm text-red-700",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-e45020aa9d0dcde0 mt-0.5 h-4 w-4 shrink-0",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 8v4m0 4h.01",className:"jsx-e45020aa9d0dcde0"})]}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0",children:x})]}),j>0&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-start gap-2.5 rounded-2xl border border-red-200 bg-red-50 p-2.5 text-sm text-red-700",children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-e45020aa9d0dcde0 mt-0.5 h-4 w-4 shrink-0",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v6l4 2",className:"jsx-e45020aa9d0dcde0"})]}),(0,a.jsxs)("span",{className:"jsx-e45020aa9d0dcde0",children:["Đ\xe3 kh\xf3a. Thử lại sau ",j,"s."]})]}),m&&(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 rounded-2xl border border-slate-200 bg-slate-50 p-2.5 text-xs text-slate-600",children:["Qu\xean mật khẩu? Mở"," ",(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 rounded bg-slate-200/70 px-1.5 py-0.5 font-mono text-[11px]",children:"bluerouter"})," ","CLI tr\xean host → Settings → Reset Password to Default."]}),(0,a.jsx)("button",{type:"submit",disabled:v||j>0,className:"jsx-e45020aa9d0dcde0 shimmer-btn relative mt-1 flex w-full items-center justify-center gap-2 overflow-hidden rounded-2xl bg-gradient-to-r from-indigo-600 via-violet-600 to-purple-600 px-4 py-3 text-sm font-black uppercase tracking-[0.06em] text-white shadow-xl shadow-indigo-500/30 transition-all hover:-translate-y-0.5 hover:shadow-2xl hover:shadow-indigo-500/40 active:translate-y-0 disabled:cursor-not-allowed disabled:opacity-60 disabled:hover:translate-y-0 disabled:hover:shadow-xl",children:(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 relative z-10 flex items-center gap-2",children:v?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",className:"jsx-e45020aa9d0dcde0 h-4 w-4 animate-spin",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",className:"jsx-e45020aa9d0dcde0 opacity-25"}),(0,a.jsx)("path",{fill:"currentColor",d:"M4 12a8 8 0 0 1 8-8V0C5.4 0 0 5.4 0 12h4Z",className:"jsx-e45020aa9d0dcde0 opacity-75"})]}),"Đang đăng nhập..."]}):j>0?(0,a.jsxs)(a.Fragment,{children:["Đợi ",j,"s"]}):(0,a.jsxs)(a.Fragment,{children:["Đăng nhập",(0,a.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:(0,a.jsx)("path",{d:"M5 12h14M13 5l7 7-7 7",className:"jsx-e45020aa9d0dcde0"})})]})})}),!1===w&&(0,a.jsx)("p",{className:"jsx-e45020aa9d0dcde0 text-center text-xs text-slate-500",children:"Chưa c\xf3 custom password. Default password vẫn d\xf9ng được cho đến khi bạn đổi."})]}):x&&(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 rounded-2xl border border-red-200 bg-red-50 p-3 text-sm text-red-700",children:x})]})]})]})]}),(0,a.jsxs)("div",{style:{animationDelay:"0.15s"},className:"jsx-e45020aa9d0dcde0 relative z-10 mt-6 fade-up",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 mb-4 flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-center gap-3",children:[(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 h-px w-8 bg-gradient-to-r from-transparent to-violet-400/60"}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 text-[11px] font-black uppercase tracking-[0.22em] text-violet-200/80",children:"Hệ thống nội bộ"}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 h-px w-8 bg-gradient-to-l from-transparent to-violet-400/60"})]}),(0,a.jsx)("span",{className:"jsx-e45020aa9d0dcde0 text-[11px] text-white/40",children:"Truy cập nhanh c\xe1c dịch vụ"})]}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 grid gap-3 sm:grid-cols-2 lg:grid-cols-5",children:l.map(e=>(0,a.jsx)(h,{service:e},e.badge))})]}),(0,a.jsxs)("footer",{className:"jsx-e45020aa9d0dcde0 relative z-10 mt-6 flex flex-col items-center justify-between gap-3 border-t border-white/10 pt-5 text-xs text-white/40 sm:flex-row",children:[(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 flex items-center gap-3",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 flex h-8 w-8 items-center justify-center rounded-xl bg-gradient-to-br from-indigo-600 to-violet-600 text-white shadow-lg shadow-indigo-500/20 ring-1 ring-indigo-500/20",children:(0,a.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.2,strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-e45020aa9d0dcde0 h-4 w-4",children:[(0,a.jsx)("path",{d:"M12 3.75 19.5 8v8L12 20.25 4.5 16V8L12 3.75Z",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"M12 8v8",className:"jsx-e45020aa9d0dcde0"}),(0,a.jsx)("path",{d:"m7.5 10.25 4.5 2.5 4.5-2.5",className:"jsx-e45020aa9d0dcde0"})]})}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 leading-tight",children:[(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 font-semibold text-white/70",children:"Fujinet Internal Portal"}),(0,a.jsx)("div",{className:"jsx-e45020aa9d0dcde0 text-[11px] text-white/40",children:"AI Workspace \xb7 Meeting \xb7 Support \xb7 Resource"})]})]}),(0,a.jsxs)("div",{className:"jsx-e45020aa9d0dcde0 text-white/50",children:["\xa9 2026 Fujinet Systems."," ",(0,a.jsx)("a",{href:"mailto:itadmin@fujinet.net",className:"jsx-e45020aa9d0dcde0 font-semibold text-violet-300 hover:text-violet-200 hover:underline",children:"Contact: itadmin@fujinet.net"})]})]})]})]})}}},e=>{e.O(0,[620,8441,3794,7358],()=>e(e.s=33796)),_N_E=e.O()}]);