@minecraft-docker/mcctl-console 1.13.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/.next/standalone/platform/services/mcctl-console/.next/BUILD_ID +1 -1
  2. package/.next/standalone/platform/services/mcctl-console/.next/app-build-manifest.json +134 -102
  3. package/.next/standalone/platform/services/mcctl-console/.next/app-path-routes-manifest.json +1 -1
  4. package/.next/standalone/platform/services/mcctl-console/.next/build-manifest.json +4 -4
  5. package/.next/standalone/platform/services/mcctl-console/.next/prerender-manifest.json +1 -1
  6. package/.next/standalone/platform/services/mcctl-console/.next/routes-manifest.json +1 -1
  7. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page.js +1 -1
  8. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page.js.nft.json +1 -1
  9. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page.js +1 -0
  11. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page.js.nft.json +1 -0
  12. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page_client-reference-manifest.js +1 -0
  13. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js +1 -1
  14. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js.nft.json +1 -1
  15. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js +1 -1
  17. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js.nft.json +1 -1
  18. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js +51 -1
  20. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js.nft.json +1 -1
  21. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page.js +1 -1
  23. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page.js.nft.json +1 -1
  24. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js +1 -1
  26. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js.nft.json +1 -1
  27. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page.js +1 -1
  29. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page.js.nft.json +1 -1
  30. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page.js +1 -1
  32. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page.js.nft.json +1 -1
  33. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found/page.js +1 -1
  35. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found/page.js.nft.json +1 -1
  36. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.html +1 -1
  38. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.rsc +1 -1
  39. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/history/route.js +1 -0
  40. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/history/route.js.nft.json +1 -0
  41. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/restore/route.js +1 -0
  42. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/restore/route.js.nft.json +1 -0
  43. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/route.js +1 -0
  44. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/route.js.nft.json +1 -0
  45. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/ban/route.js +1 -1
  46. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/kick/route.js +1 -1
  47. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/op/route.js +1 -1
  48. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/route.js +1 -1
  49. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/players/whitelist/route.js +1 -1
  50. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/router/status/route.js +1 -1
  51. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/[action]/route.js +1 -1
  52. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/config/route.js +1 -1
  53. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/exec/route.js +1 -1
  54. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/route.js +1 -1
  55. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/[name]/world/reset/route.js +1 -1
  56. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/servers/route.js +1 -1
  57. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/user-servers/[id]/route.js +1 -0
  58. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/user-servers/[id]/route.js.nft.json +1 -0
  59. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/user-servers/route.js +1 -0
  60. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/user-servers/route.js.nft.json +1 -0
  61. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/users/route.js +1 -0
  62. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/users/route.js.nft.json +1 -0
  63. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/[name]/[action]/route.js +1 -1
  64. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/[name]/route.js +1 -1
  65. package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/worlds/route.js +1 -1
  66. package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.html +1 -1
  67. package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.rsc +3 -3
  68. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.html +1 -0
  69. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.meta +5 -0
  70. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.rsc +18 -0
  71. package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.html +1 -1
  72. package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.rsc +3 -3
  73. package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.html +1 -1
  74. package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.rsc +1 -1
  75. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page.js +1 -1
  76. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page.js.nft.json +1 -1
  77. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page_client-reference-manifest.js +1 -1
  78. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.html +1 -1
  79. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.rsc +2 -2
  80. package/.next/standalone/platform/services/mcctl-console/.next/server/app/page.js +1 -1
  81. package/.next/standalone/platform/services/mcctl-console/.next/server/app/page.js.nft.json +1 -1
  82. package/.next/standalone/platform/services/mcctl-console/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.html +1 -1
  84. package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.rsc +3 -3
  85. package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.html +1 -1
  86. package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.rsc +3 -3
  87. package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.html +1 -1
  88. package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.rsc +3 -3
  89. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page.js +1 -1
  90. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page.js.nft.json +1 -1
  91. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page_client-reference-manifest.js +1 -1
  92. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.html +1 -1
  93. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.rsc +2 -2
  94. package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.html +1 -1
  95. package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.rsc +3 -3
  96. package/.next/standalone/platform/services/mcctl-console/.next/server/app-paths-manifest.json +18 -11
  97. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3029.js +51 -0
  98. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3076.js +1 -1
  99. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3100.js +1 -0
  100. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/354.js +1 -1
  101. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/4972.js +1 -0
  102. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/5244.js +74 -0
  103. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/5466.js +2 -0
  104. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/613.js +1 -0
  105. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8243.js +1 -0
  106. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/9157.js +1 -0
  107. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/9350.js +1 -0
  108. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/959.js +1 -1
  109. package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-build-manifest.js +1 -1
  110. package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-manifest.json +5 -5
  111. package/.next/standalone/platform/services/mcctl-console/.next/server/next-font-manifest.js +1 -1
  112. package/.next/standalone/platform/services/mcctl-console/.next/server/next-font-manifest.json +1 -1
  113. package/.next/standalone/platform/services/mcctl-console/.next/server/pages/404.html +1 -1
  114. package/.next/standalone/platform/services/mcctl-console/.next/server/pages/500.html +1 -1
  115. package/.next/standalone/platform/services/mcctl-console/.next/server/server-reference-manifest.json +1 -1
  116. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1071-235049df1c3caba7.js +1 -0
  117. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1476-a0570078fdf78fae.js +1 -0
  118. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2022-6da2f9a847a5d61c.js +1 -0
  119. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2093-bceea213e32f6b5f.js +1 -0
  120. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/212-b904d9ae152f2360.js +1 -0
  121. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2149-ba1bdd1d726ab70c.js +1 -0
  122. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2537-6c9d2dfd403b7448.js +1 -0
  123. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/310-72d3b802b3cefa99.js +1 -0
  124. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/315-509f963f6c69d0a8.js +1 -0
  125. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/3543-1ec838cbe59f6baa.js +1 -0
  126. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/406-64ea09489141e436.js +1 -0
  127. package/.next/{static/chunks/4538-b363c77f66f5a771.js → standalone/platform/services/mcctl-console/.next/static/chunks/4538-a0d2c88024f1288a.js} +1 -1
  128. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4840-5802e869ffd1d2a9.js +1 -0
  129. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5511-7a419d84918a8d64.js +1 -0
  130. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6189-d8557db379604b3e.js +1 -0
  131. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6594-e49e36eb5a5d1bef.js +1 -0
  132. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6645-68b73fe1df8dba93.js +1 -0
  133. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6655-81288236c1babc44.js +1 -0
  134. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7413-419718450fadde21.js +1 -0
  135. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/{6803-e2b09f75f207f836.js → 8006-219c9bbc650b079e.js} +1 -1
  136. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8322-8ae826d4c9b38acc.js +1 -0
  137. package/.next/{static/chunks/8657-ace229edcbef958f.js → standalone/platform/services/mcctl-console/.next/static/chunks/8657-f28db4e9df8cc7b0.js} +1 -1
  138. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8696-8adf1e9b1a84f5c0.js +1 -0
  139. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9030-1dcbf06ed6e20e24.js +1 -0
  140. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9654-84c0d7b06321aab9.js +1 -0
  141. package/.next/{static/chunks/app/(main)/audit-logs/page-a85c5c81b5ef7100.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/audit-logs/page-7a5d1441bb2811cf.js} +1 -1
  142. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/backups/page-cc46681d519753dd.js +1 -0
  143. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/dashboard/page-b548fe2aac951e5b.js +1 -0
  144. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/layout-9311354243420c0d.js +1 -0
  145. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/players/page-706f5e796129df33.js +1 -0
  146. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/routing/page-14f40cfd98e60a77.js +1 -0
  147. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/console/{page-b25581705b8b2277.js → page-ca0344337ef5da93.js} +1 -1
  148. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/page-55fee1f878b51fb8.js +1 -0
  149. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/page-efa5f11aa2956719.js +1 -0
  150. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/page-3de10e94b77f6e45.js +1 -0
  151. package/.next/{static/chunks/app/login/page-39f136cf2697cefc.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-3ad9d595e6c37214.js} +1 -1
  152. package/.next/{static/chunks/app/signup/page-9c69da79dac7dff9.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/signup/page-69a8bc2df6bc3559.js} +1 -1
  153. package/.next/{static/chunks/main-34a19e4bc5b0f28c.js → standalone/platform/services/mcctl-console/.next/static/chunks/main-43f98b458d773ca0.js} +1 -1
  154. package/.next/standalone/platform/services/mcctl-console/.next/static/css/8dfdea5f9ccf5da4.css +1 -0
  155. package/.next/static/chunks/1071-235049df1c3caba7.js +1 -0
  156. package/.next/static/chunks/1476-a0570078fdf78fae.js +1 -0
  157. package/.next/static/chunks/2022-6da2f9a847a5d61c.js +1 -0
  158. package/.next/static/chunks/2093-bceea213e32f6b5f.js +1 -0
  159. package/.next/static/chunks/212-b904d9ae152f2360.js +1 -0
  160. package/.next/static/chunks/2149-ba1bdd1d726ab70c.js +1 -0
  161. package/.next/static/chunks/2537-6c9d2dfd403b7448.js +1 -0
  162. package/.next/static/chunks/310-72d3b802b3cefa99.js +1 -0
  163. package/.next/static/chunks/315-509f963f6c69d0a8.js +1 -0
  164. package/.next/static/chunks/3543-1ec838cbe59f6baa.js +1 -0
  165. package/.next/static/chunks/406-64ea09489141e436.js +1 -0
  166. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/4538-b363c77f66f5a771.js → static/chunks/4538-a0d2c88024f1288a.js} +1 -1
  167. package/.next/static/chunks/4840-5802e869ffd1d2a9.js +1 -0
  168. package/.next/static/chunks/5511-7a419d84918a8d64.js +1 -0
  169. package/.next/static/chunks/6189-d8557db379604b3e.js +1 -0
  170. package/.next/static/chunks/6594-e49e36eb5a5d1bef.js +1 -0
  171. package/.next/static/chunks/6645-68b73fe1df8dba93.js +1 -0
  172. package/.next/static/chunks/6655-81288236c1babc44.js +1 -0
  173. package/.next/static/chunks/7413-419718450fadde21.js +1 -0
  174. package/.next/static/chunks/{6803-e2b09f75f207f836.js → 8006-219c9bbc650b079e.js} +1 -1
  175. package/.next/static/chunks/8322-8ae826d4c9b38acc.js +1 -0
  176. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/8657-ace229edcbef958f.js → static/chunks/8657-f28db4e9df8cc7b0.js} +1 -1
  177. package/.next/static/chunks/8696-8adf1e9b1a84f5c0.js +1 -0
  178. package/.next/static/chunks/9030-1dcbf06ed6e20e24.js +1 -0
  179. package/.next/static/chunks/9654-84c0d7b06321aab9.js +1 -0
  180. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/audit-logs/page-a85c5c81b5ef7100.js → static/chunks/app/(main)/audit-logs/page-7a5d1441bb2811cf.js} +1 -1
  181. package/.next/static/chunks/app/(main)/backups/page-cc46681d519753dd.js +1 -0
  182. package/.next/static/chunks/app/(main)/dashboard/page-b548fe2aac951e5b.js +1 -0
  183. package/.next/static/chunks/app/(main)/layout-9311354243420c0d.js +1 -0
  184. package/.next/static/chunks/app/(main)/players/page-706f5e796129df33.js +1 -0
  185. package/.next/static/chunks/app/(main)/routing/page-14f40cfd98e60a77.js +1 -0
  186. package/.next/static/chunks/app/(main)/servers/[name]/console/{page-b25581705b8b2277.js → page-ca0344337ef5da93.js} +1 -1
  187. package/.next/static/chunks/app/(main)/servers/[name]/page-55fee1f878b51fb8.js +1 -0
  188. package/.next/static/chunks/app/(main)/servers/page-efa5f11aa2956719.js +1 -0
  189. package/.next/static/chunks/app/(main)/worlds/page-3de10e94b77f6e45.js +1 -0
  190. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-39f136cf2697cefc.js → static/chunks/app/login/page-3ad9d595e6c37214.js} +1 -1
  191. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/signup/page-9c69da79dac7dff9.js → static/chunks/app/signup/page-69a8bc2df6bc3559.js} +1 -1
  192. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/main-34a19e4bc5b0f28c.js → static/chunks/main-43f98b458d773ca0.js} +1 -1
  193. package/.next/static/css/8dfdea5f9ccf5da4.css +1 -0
  194. package/package.json +2 -2
  195. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1277.js +0 -1
  196. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1990.js +0 -1
  197. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/2612.js +0 -51
  198. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3003.js +0 -52
  199. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/5211.js +0 -1
  200. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/7427.js +0 -1
  201. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/9374.js +0 -74
  202. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1044-6a0c0a7f6bac9f18.js +0 -1
  203. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1604-89bbfa231d141dfe.js +0 -1
  204. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1692-e2b4fd0b6bff20c2.js +0 -1
  205. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1826-ce6a4d6a0e4ba9bd.js +0 -1
  206. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1857-8bb2c9883e08cdee.js +0 -1
  207. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2537-a2a6d99925a2f67e.js +0 -1
  208. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2590-b868e035d36b0545.js +0 -1
  209. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2609-03ed3c8604060401.js +0 -1
  210. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/3418-6f5e8a8a4b7ab70c.js +0 -1
  211. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4136-c4b760387b52c47c.js +0 -1
  212. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4507-e0145a1cb67c26c3.js +0 -1
  213. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5375-5a2ae74444004be4.js +0 -1
  214. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5382-af8412c783dd977e.js +0 -1
  215. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6357-42a429de7d961f53.js +0 -1
  216. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6877-7a90baa4093abc8d.js +0 -1
  217. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7340-99d68f86a8108252.js +0 -1
  218. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8063-134a13770297c002.js +0 -1
  219. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8809-974009fa7800dfcd.js +0 -1
  220. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/9409-171ee4b34553d85a.js +0 -1
  221. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/dashboard/page-2755e6f9daa86325.js +0 -1
  222. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/layout-2849792531fd0eac.js +0 -1
  223. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/players/page-2d0dc6a87f23e622.js +0 -1
  224. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/routing/page-bbfb7b031b828115.js +0 -1
  225. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/page-36951c10705b7f9a.js +0 -1
  226. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/page-886b5fabf41e5c65.js +0 -1
  227. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/page-f04eb3d1fe4c68df.js +0 -1
  228. package/.next/standalone/platform/services/mcctl-console/.next/static/css/ce1ae78c22152744.css +0 -1
  229. package/.next/static/chunks/1044-6a0c0a7f6bac9f18.js +0 -1
  230. package/.next/static/chunks/1604-89bbfa231d141dfe.js +0 -1
  231. package/.next/static/chunks/1692-e2b4fd0b6bff20c2.js +0 -1
  232. package/.next/static/chunks/1826-ce6a4d6a0e4ba9bd.js +0 -1
  233. package/.next/static/chunks/1857-8bb2c9883e08cdee.js +0 -1
  234. package/.next/static/chunks/2537-a2a6d99925a2f67e.js +0 -1
  235. package/.next/static/chunks/2590-b868e035d36b0545.js +0 -1
  236. package/.next/static/chunks/2609-03ed3c8604060401.js +0 -1
  237. package/.next/static/chunks/3418-6f5e8a8a4b7ab70c.js +0 -1
  238. package/.next/static/chunks/4136-c4b760387b52c47c.js +0 -1
  239. package/.next/static/chunks/4507-e0145a1cb67c26c3.js +0 -1
  240. package/.next/static/chunks/5375-5a2ae74444004be4.js +0 -1
  241. package/.next/static/chunks/5382-af8412c783dd977e.js +0 -1
  242. package/.next/static/chunks/6357-42a429de7d961f53.js +0 -1
  243. package/.next/static/chunks/6877-7a90baa4093abc8d.js +0 -1
  244. package/.next/static/chunks/7340-99d68f86a8108252.js +0 -1
  245. package/.next/static/chunks/8063-134a13770297c002.js +0 -1
  246. package/.next/static/chunks/8809-974009fa7800dfcd.js +0 -1
  247. package/.next/static/chunks/9409-171ee4b34553d85a.js +0 -1
  248. package/.next/static/chunks/app/(main)/dashboard/page-2755e6f9daa86325.js +0 -1
  249. package/.next/static/chunks/app/(main)/layout-2849792531fd0eac.js +0 -1
  250. package/.next/static/chunks/app/(main)/players/page-2d0dc6a87f23e622.js +0 -1
  251. package/.next/static/chunks/app/(main)/routing/page-bbfb7b031b828115.js +0 -1
  252. package/.next/static/chunks/app/(main)/servers/[name]/page-36951c10705b7f9a.js +0 -1
  253. package/.next/static/chunks/app/(main)/servers/page-886b5fabf41e5c65.js +0 -1
  254. package/.next/static/chunks/app/(main)/worlds/page-f04eb3d1fe4c68df.js +0 -1
  255. package/.next/static/css/ce1ae78c22152744.css +0 -1
  256. /package/.next/standalone/platform/services/mcctl-console/.next/static/{Liy7QkeEpyjPtxhvsF9oz → 8BG9m6JnLqB8k8011EMcp}/_buildManifest.js +0 -0
  257. /package/.next/standalone/platform/services/mcctl-console/.next/static/{Liy7QkeEpyjPtxhvsF9oz → 8BG9m6JnLqB8k8011EMcp}/_ssgManifest.js +0 -0
  258. /package/.next/static/{Liy7QkeEpyjPtxhvsF9oz → 8BG9m6JnLqB8k8011EMcp}/_buildManifest.js +0 -0
  259. /package/.next/static/{Liy7QkeEpyjPtxhvsF9oz → 8BG9m6JnLqB8k8011EMcp}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8809],{407:function(e,t,r){var o=r(8091);t.Z=void 0;var n=o(r(66758)),a=r(94655);t.Z=(0,n.default)([(0,a.jsx)("path",{d:"M17 11c.34 0 .67.04 1 .09V6.27L10.5 3 3 6.27v4.91c0 4.54 3.2 8.79 7.5 9.82.55-.13 1.08-.32 1.6-.55-.69-.98-1.1-2.17-1.1-3.45 0-3.31 2.69-6 6-6"},"0"),(0,a.jsx)("path",{d:"M17 13c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 1.38c.62 0 1.12.51 1.12 1.12s-.51 1.12-1.12 1.12-1.12-.51-1.12-1.12.5-1.12 1.12-1.12m0 5.37c-.93 0-1.74-.46-2.24-1.17.05-.72 1.51-1.08 2.24-1.08s2.19.36 2.24 1.08c-.5.71-1.31 1.17-2.24 1.17"},"1")],"AdminPanelSettings")},397:function(e,t,r){var o=r(8091);t.Z=void 0;var n=o(r(66758)),a=r(94655);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12m8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8"}),"Block")},21111:function(e,t,r){var o=r(8091);t.Z=void 0;var n=o(r(66758)),a=r(94655);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete")},47606:function(e,t,r){var o=r(8091);t.Z=void 0;var n=o(r(66758)),a=r(94655);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m-9-2V7H4v3H1v2h3v3h2v-3h3v-2zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"}),"PersonAdd")},11597:function(e,t,r){var o=r(8091);t.Z=void 0;var n=o(r(66758)),a=r(94655);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M14 8c0-2.21-1.79-4-4-4S6 5.79 6 8s1.79 4 4 4 4-1.79 4-4m3 2v2h6v-2zM2 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4"}),"PersonRemove")},69366:function(e,t,r){var o=r(8091);t.Z=void 0;var n=o(r(66758)),a=r(94655);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh")},86702:function(e,t,r){r.d(t,{Z:function(){return b}});var o=r(32324),n=r(81500),a=r(35106),s=r(70316),i=r(65951),l=r(34519),c=r(28057),u=r(61626),d=r(94655),p=(0,u.Z)((0,d.jsx)("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"Person"),m=r(11379),f=r(9049);function v(e){return(0,f.ZP)("MuiAvatar",e)}(0,m.Z)("MuiAvatar",["root","colorDefault","circular","rounded","square","img","fallback"]);var y=r(3510);let Z=["alt","children","className","component","slots","slotProps","imgProps","sizes","src","srcSet","variant"],h=e=>{let{classes:t,variant:r,colorDefault:o}=e;return(0,i.Z)({root:["root",r,o&&"colorDefault"],img:["img"],fallback:["fallback"]},v,t)},g=(0,l.ZP)("div",{name:"MuiAvatar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[r.variant],r.colorDefault&&t.colorDefault]}})(e=>{let{theme:t}=e;return{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(20),lineHeight:1,borderRadius:"50%",overflow:"hidden",userSelect:"none",variants:[{props:{variant:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:{variant:"square"},style:{borderRadius:0}},{props:{colorDefault:!0},style:(0,n.Z)({color:(t.vars||t).palette.background.default},t.vars?{backgroundColor:t.vars.palette.Avatar.defaultBg}:(0,n.Z)({backgroundColor:t.palette.grey[400]},t.applyStyles("dark",{backgroundColor:t.palette.grey[600]})))}]}}),x=(0,l.ZP)("img",{name:"MuiAvatar",slot:"Img",overridesResolver:(e,t)=>t.img})({width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4}),k=(0,l.ZP)(p,{name:"MuiAvatar",slot:"Fallback",overridesResolver:(e,t)=>t.fallback})({width:"75%",height:"75%"});var b=a.forwardRef(function(e,t){let r=(0,c.i)({props:e,name:"MuiAvatar"}),{alt:i,children:l,className:u,component:p="div",slots:m={},slotProps:f={},imgProps:v,sizes:b,src:M,srcSet:S,variant:P="circular"}=r,R=(0,o.Z)(r,Z),w=null,j=function(e){let{crossOrigin:t,referrerPolicy:r,src:o,srcSet:n}=e,[s,i]=a.useState(!1);return a.useEffect(()=>{if(!o&&!n)return;i(!1);let e=!0,a=new Image;return a.onload=()=>{e&&i("loaded")},a.onerror=()=>{e&&i("error")},a.crossOrigin=t,a.referrerPolicy=r,a.src=o,n&&(a.srcset=n),()=>{e=!1}},[t,r,o,n]),s}((0,n.Z)({},v,{src:M,srcSet:S})),A=M||S,C=A&&"error"!==j,N=(0,n.Z)({},r,{colorDefault:!C,component:p,variant:P}),L=h(N),[I,T]=(0,y.Z)("img",{className:L.img,elementType:x,externalForwardedProps:{slots:m,slotProps:{img:(0,n.Z)({},v,f.img)}},additionalProps:{alt:i,src:M,srcSet:S,sizes:b},ownerState:N});return w=C?(0,d.jsx)(I,(0,n.Z)({},T)):l||0===l?l:A&&i?i[0]:(0,d.jsx)(k,{ownerState:N,className:L.fallback}),(0,d.jsx)(g,(0,n.Z)({as:p,ownerState:N,className:(0,s.Z)(L.root,u),ref:t},R,{children:w}))})},65087:function(e,t,r){r.d(t,{Z:function(){return g}});var o=r(32324),n=r(81500),a=r(35106),s=r(70316),i=r(65951),l=r(34519),c=r(15651),u=r(28057),d=r(31317),p=r(11379),m=r(9049);function f(e){return(0,m.ZP)("MuiDialogContentText",e)}(0,p.Z)("MuiDialogContentText",["root"]);var v=r(94655);let y=["children","className"],Z=e=>{let{classes:t}=e,r=(0,i.Z)({root:["root"]},f,t);return(0,n.Z)({},t,r)},h=(0,l.ZP)(d.Z,{shouldForwardProp:e=>(0,c.Z)(e)||"classes"===e,name:"MuiDialogContentText",slot:"Root",overridesResolver:(e,t)=>t.root})({});var g=a.forwardRef(function(e,t){let r=(0,u.i)({props:e,name:"MuiDialogContentText"}),{className:a}=r,i=(0,o.Z)(r,y),l=Z(i);return(0,v.jsx)(h,(0,n.Z)({component:"p",variant:"body1",color:"text.secondary",ref:t,ownerState:i,className:(0,s.Z)(l.root,a)},r,{classes:l}))})},69783:function(e,t,r){r.d(t,{Z:function(){return h}});var o=r(32324),n=r(81500),a=r(35106),s=r(70316),i=r(65951),l=r(75084),c=r(34519),u=r(28057),d=r(11379),p=r(9049);function m(e){return(0,p.ZP)("MuiListItemAvatar",e)}(0,d.Z)("MuiListItemAvatar",["root","alignItemsFlexStart"]);var f=r(94655);let v=["className"],y=e=>{let{alignItems:t,classes:r}=e;return(0,i.Z)({root:["root","flex-start"===t&&"alignItemsFlexStart"]},m,r)},Z=(0,c.ZP)("div",{name:"MuiListItemAvatar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,"flex-start"===r.alignItems&&t.alignItemsFlexStart]}})(e=>{let{ownerState:t}=e;return(0,n.Z)({minWidth:56,flexShrink:0},"flex-start"===t.alignItems&&{marginTop:8})});var h=a.forwardRef(function(e,t){let r=(0,u.i)({props:e,name:"MuiListItemAvatar"}),{className:i}=r,c=(0,o.Z)(r,v),d=a.useContext(l.Z),p=(0,n.Z)({},r,{alignItems:d.alignItems}),m=y(p);return(0,f.jsx)(Z,(0,n.Z)({className:(0,s.Z)(m.root,i),ownerState:p,ref:t},c))})},73424:function(e,t,r){var o=r(32324),n=r(81500),a=r(35106),s=r(70316),i=r(65951),l=r(31317),c=r(75084),u=r(28057),d=r(34519),p=r(64769),m=r(94655);let f=["children","className","disableTypography","inset","primary","primaryTypographyProps","secondary","secondaryTypographyProps"],v=e=>{let{classes:t,inset:r,primary:o,secondary:n,dense:a}=e;return(0,i.Z)({root:["root",r&&"inset",a&&"dense",o&&n&&"multiline"],primary:["primary"],secondary:["secondary"]},p.L,t)},y=(0,d.ZP)("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[{["& .".concat(p.Z.primary)]:t.primary},{["& .".concat(p.Z.secondary)]:t.secondary},t.root,r.inset&&t.inset,r.primary&&r.secondary&&t.multiline,r.dense&&t.dense]}})(e=>{let{ownerState:t}=e;return(0,n.Z)({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4},t.primary&&t.secondary&&{marginTop:6,marginBottom:6},t.inset&&{paddingLeft:56})}),Z=a.forwardRef(function(e,t){let r=(0,u.i)({props:e,name:"MuiListItemText"}),{children:i,className:d,disableTypography:p=!1,inset:Z=!1,primary:h,primaryTypographyProps:g,secondary:x,secondaryTypographyProps:k}=r,b=(0,o.Z)(r,f),{dense:M}=a.useContext(c.Z),S=null!=h?h:i,P=x,R=(0,n.Z)({},r,{disableTypography:p,inset:Z,primary:!!S,secondary:!!P,dense:M}),w=v(R);return null==S||S.type===l.Z||p||(S=(0,m.jsx)(l.Z,(0,n.Z)({variant:M?"body2":"body1",className:w.primary,component:null!=g&&g.variant?void 0:"span",display:"block"},g,{children:S}))),null==P||P.type===l.Z||p||(P=(0,m.jsx)(l.Z,(0,n.Z)({variant:"body2",className:w.secondary,color:"text.secondary",display:"block"},k,{children:P}))),(0,m.jsxs)(y,(0,n.Z)({className:(0,s.Z)(w.root,d),ownerState:R,ref:t},b,{children:[S,P]}))});t.Z=Z},64769:function(e,t,r){r.d(t,{L:function(){return a}});var o=r(11379),n=r(9049);function a(e){return(0,n.ZP)("MuiListItemText",e)}let s=(0,o.Z)("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]);t.Z=s},70115:function(e,t,r){r.d(t,{Z:function(){return P}});var o=r(32324),n=r(81500),a=r(35106),s=r(70316),i=r(41499),l=r(9049),c=r(65951),u=r(48442),d=r(54569),p=r(28131),m=r(8557),f=r(43513),v=r(95731),y=r(94655);let Z=["component","direction","spacing","divider","children","className","useFlexGap"],h=(0,m.Z)(),g=(0,u.Z)("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root});function x(e){return(0,d.Z)({props:e,name:"MuiStack",defaultTheme:h})}let k=e=>({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[e],b=({ownerState:e,theme:t})=>{let r=(0,n.Z)({display:"flex",flexDirection:"column"},(0,f.k9)({theme:t},(0,f.P$)({values:e.direction,breakpoints:t.breakpoints.values}),e=>({flexDirection:e})));if(e.spacing){let o=(0,v.hB)(t),n=Object.keys(t.breakpoints.values).reduce((t,r)=>(("object"==typeof e.spacing&&null!=e.spacing[r]||"object"==typeof e.direction&&null!=e.direction[r])&&(t[r]=!0),t),{}),a=(0,f.P$)({values:e.direction,base:n}),s=(0,f.P$)({values:e.spacing,base:n});"object"==typeof a&&Object.keys(a).forEach((e,t,r)=>{if(!a[e]){let o=t>0?a[r[t-1]]:"column";a[e]=o}}),r=(0,i.Z)(r,(0,f.k9)({theme:t},s,(t,r)=>e.useFlexGap?{gap:(0,v.NA)(o,t)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${k(r?a[r]:e.direction)}`]:(0,v.NA)(o,t)}}))}return(0,f.dt)(t.breakpoints,r)};var M=r(34519),S=r(28057),P=function(e={}){let{createStyledComponent:t=g,useThemeProps:r=x,componentName:i="MuiStack"}=e,u=()=>(0,c.Z)({root:["root"]},e=>(0,l.ZP)(i,e),{}),d=t(b);return a.forwardRef(function(e,t){let i=r(e),l=(0,p.Z)(i),{component:c="div",direction:m="column",spacing:f=0,divider:v,children:h,className:g,useFlexGap:x=!1}=l,k=(0,o.Z)(l,Z),b=u();return(0,y.jsx)(d,(0,n.Z)({as:c,ownerState:{direction:m,spacing:f,useFlexGap:x},ref:t,className:(0,s.Z)(b.root,g)},k,{children:v?function(e,t){let r=a.Children.toArray(e).filter(Boolean);return r.reduce((e,o,n)=>(e.push(o),n<r.length-1&&e.push(a.cloneElement(t,{key:`separator-${n}`})),e),[])}(h,v):h}))})}({createStyledComponent:(0,M.ZP)("div",{name:"MuiStack",slot:"Root",overridesResolver:(e,t)=>t.root}),useThemeProps:e=>(0,S.i)({props:e,name:"MuiStack"})})},48442:function(e,t,r){r.d(t,{Z:function(){return h}});var o=r(81500),n=r(32324),a=r(14526),s=r(41499),i=r(8557),l=r(72686);let c=["ownerState"],u=["variants"],d=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function p(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}function m(e,t){return t&&e&&"object"==typeof e&&e.styles&&!e.styles.startsWith("@layer")&&(e.styles=`@layer ${t}{${String(e.styles)}}`),e}let f=(0,i.Z)(),v=e=>e?e.charAt(0).toLowerCase()+e.slice(1):e;function y({defaultTheme:e,theme:t,themeId:r}){return 0===Object.keys(t).length?e:t[r]||t}function Z(e,t,r){let{ownerState:s}=t,i=(0,n.Z)(t,c),l="function"==typeof e?e((0,o.Z)({ownerState:s},i)):e;if(Array.isArray(l))return l.flatMap(e=>Z(e,(0,o.Z)({ownerState:s},i),r));if(l&&"object"==typeof l&&Array.isArray(l.variants)){let{variants:e=[]}=l,t=(0,n.Z)(l,u);return e.forEach(e=>{let n=!0;if("function"==typeof e.props?n=e.props((0,o.Z)({ownerState:s},i,s)):Object.keys(e.props).forEach(t=>{(null==s?void 0:s[t])!==e.props[t]&&i[t]!==e.props[t]&&(n=!1)}),n){Array.isArray(t)||(t=[t]);let n="function"==typeof e.style?e.style((0,o.Z)({ownerState:s},i,s)):e.style;t.push(r?m((0,a.internal_serializeStyles)(n),r):n)}}),t}return r?m((0,a.internal_serializeStyles)(l),r):l}var h=function(e={}){let{themeId:t,defaultTheme:r=f,rootShouldForwardProp:i=p,slotShouldForwardProp:c=p}=e,u=e=>(0,l.Z)((0,o.Z)({},e,{theme:y((0,o.Z)({},e,{defaultTheme:r,themeId:t}))}));return u.__mui_systemSx=!0,(e,l={})=>{var m;let f;(0,a.internal_processStyles)(e,e=>e.filter(e=>!(null!=e&&e.__mui_systemSx)));let{name:h,slot:g,skipVariantsResolver:x,skipSx:k,overridesResolver:b=(m=v(g))?(e,t)=>t[m]:null}=l,M=(0,n.Z)(l,d),S=h&&h.startsWith("Mui")||g?"components":"custom",P=void 0!==x?x:g&&"Root"!==g&&"root"!==g||!1,R=k||!1,w=p;"Root"===g||"root"===g?w=i:g?w=c:"string"==typeof e&&e.charCodeAt(0)>96&&(w=void 0);let j=(0,a.default)(e,(0,o.Z)({shouldForwardProp:w,label:f},M)),A=e=>"function"==typeof e&&e.__emotion_real!==e||(0,s.P)(e)?n=>{let a=y({theme:n.theme,defaultTheme:r,themeId:t});return Z(e,(0,o.Z)({},n,{theme:a}),a.modularCssLayers?S:void 0)}:e,C=(n,...a)=>{let s=A(n),i=a?a.map(A):[];h&&b&&i.push(e=>{let n=y((0,o.Z)({},e,{defaultTheme:r,themeId:t}));if(!n.components||!n.components[h]||!n.components[h].styleOverrides)return null;let a=n.components[h].styleOverrides,s={};return Object.entries(a).forEach(([t,r])=>{s[t]=Z(r,(0,o.Z)({},e,{theme:n}),n.modularCssLayers?"theme":void 0)}),b(e,s)}),h&&!P&&i.push(e=>{var n;let a=y((0,o.Z)({},e,{defaultTheme:r,themeId:t}));return Z({variants:null==a||null==(n=a.components)||null==(n=n[h])?void 0:n.variants},(0,o.Z)({},e,{theme:a}),a.modularCssLayers?"theme":void 0)}),R||i.push(u);let l=i.length-a.length;if(Array.isArray(n)&&l>0){let e=Array(l).fill("");(s=[...n,...e]).raw=[...n.raw,...e]}let c=j(s,...i);return e.muiName&&(c.muiName=e.muiName),c};return j.withConfig&&(C.withConfig=j.withConfig),C}}()},54569:function(e,t,r){r.d(t,{Z:function(){return a}});var o=r(71483),n=r(32730);function a(e){let{props:t,name:r,defaultTheme:a,themeId:s}=e,i=(0,n.Z)(a);return s&&(i=i[s]||i),function(e){let{theme:t,name:r,props:n}=e;return t&&t.components&&t.components[r]&&t.components[r].defaultProps?(0,o.Z)(t.components[r].defaultProps,n):n}({theme:i,name:r,props:t})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9409],{10721:function(e,t,n){n.d(t,{Z:function(){return N}});var a=n(16295),r=n(32324),o=n(81500),i=n(35106),l=n(70316),d=n(41060),s=n(65951),c=n(76492),u=n(34519),p=n(28057),h=n(11379),g=n(9049);function v(e){return(0,g.ZP)("MuiSkeleton",e)}(0,h.Z)("MuiSkeleton",["root","text","rectangular","rounded","circular","pulse","wave","withChildren","fitContent","heightAuto"]);var f=n(94655);function m(){let e=(0,a._)(["\n 0% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.4;\n }\n\n 100% {\n opacity: 1;\n }\n"]);return m=function(){return e},e}function b(){let e=(0,a._)(["\n 0% {\n transform: translateX(-100%);\n }\n\n 50% {\n /* +0.5s of delay between each loop */\n transform: translateX(100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n"]);return b=function(){return e},e}function y(){let e=(0,a._)(["\n animation: "," 2s ease-in-out 0.5s infinite;\n "]);return y=function(){return e},e}function Z(){let e=(0,a._)(["\n position: relative;\n overflow: hidden;\n\n /* Fix bug in Safari https://bugs.webkit.org/show_bug.cgi?id=68196 */\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n &::after {\n animation: "," 2s linear 0.5s infinite;\n background: linear-gradient(\n 90deg,\n transparent,\n ",",\n transparent\n );\n content: '';\n position: absolute;\n transform: translateX(-100%); /* Avoid flash during server-side hydration */\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n }\n "]);return Z=function(){return e},e}let x=["animation","className","component","height","style","variant","width"],k=e=>e,w,C,R,M,T=e=>{let{classes:t,variant:n,animation:a,hasChildren:r,width:o,height:i}=e;return(0,s.Z)({root:["root",n,a,r&&"withChildren",r&&!o&&"fitContent",r&&!i&&"heightAuto"]},v,t)},S=(0,d.F4)(w||(w=k(m()))),H=(0,d.F4)(C||(C=k(b()))),z=(0,u.ZP)("span",{name:"MuiSkeleton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],!1!==n.animation&&t[n.animation],n.hasChildren&&t.withChildren,n.hasChildren&&!n.width&&t.fitContent,n.hasChildren&&!n.height&&t.heightAuto]}})(e=>{let{theme:t,ownerState:n}=e,a=String(t.shape.borderRadius).match(/[\d.\-+]*\s*(.*)/)[1]||"px",r=parseFloat(t.shape.borderRadius);return(0,o.Z)({display:"block",backgroundColor:t.vars?t.vars.palette.Skeleton.bg:(0,c.Fq)(t.palette.text.primary,"light"===t.palette.mode?.11:.13),height:"1.2em"},"text"===n.variant&&{marginTop:0,marginBottom:0,height:"auto",transformOrigin:"0 55%",transform:"scale(1, 0.60)",borderRadius:"".concat(r).concat(a,"/").concat(Math.round(r/.6*10)/10).concat(a),"&:empty:before":{content:'"\\00a0"'}},"circular"===n.variant&&{borderRadius:"50%"},"rounded"===n.variant&&{borderRadius:(t.vars||t).shape.borderRadius},n.hasChildren&&{"& > *":{visibility:"hidden"}},n.hasChildren&&!n.width&&{maxWidth:"fit-content"},n.hasChildren&&!n.height&&{height:"auto"})},e=>{let{ownerState:t}=e;return"pulse"===t.animation&&(0,d.iv)(R||(R=k(y(),0)),S)},e=>{let{ownerState:t,theme:n}=e;return"wave"===t.animation&&(0,d.iv)(M||(M=k(Z(),0,0)),H,(n.vars||n).palette.action.hover)});var N=i.forwardRef(function(e,t){let n=(0,p.i)({props:e,name:"MuiSkeleton"}),{animation:a="pulse",className:i,component:d="span",height:s,style:c,variant:u="text",width:h}=n,g=(0,r.Z)(n,x),v=(0,o.Z)({},n,{animation:a,component:d,variant:u,hasChildren:!!g.children}),m=T(v);return(0,f.jsx)(z,(0,o.Z)({as:d,ref:t,className:(0,l.Z)(m.root,i),ownerState:v},g,{style:(0,o.Z)({width:h,height:s},c)}))})},21138:function(e,t,n){n.d(t,{Z:function(){return y}});var a=n(32324),r=n(81500),o=n(35106),i=n(70316),l=n(65951),d=n(73450),s=n(28057),c=n(34519),u=n(11379),p=n(9049);function h(e){return(0,p.ZP)("MuiTable",e)}(0,u.Z)("MuiTable",["root","stickyHeader"]);var g=n(94655);let v=["className","component","padding","size","stickyHeader"],f=e=>{let{classes:t,stickyHeader:n}=e;return(0,l.Z)({root:["root",n&&"stickyHeader"]},h,t)},m=(0,c.ZP)("table",{name:"MuiTable",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.stickyHeader&&t.stickyHeader]}})(e=>{let{theme:t,ownerState:n}=e;return(0,r.Z)({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":(0,r.Z)({},t.typography.body2,{padding:t.spacing(2),color:(t.vars||t).palette.text.secondary,textAlign:"left",captionSide:"bottom"})},n.stickyHeader&&{borderCollapse:"separate"})}),b="table";var y=o.forwardRef(function(e,t){let n=(0,s.i)({props:e,name:"MuiTable"}),{className:l,component:c=b,padding:u="normal",size:p="medium",stickyHeader:h=!1}=n,y=(0,a.Z)(n,v),Z=(0,r.Z)({},n,{component:c,padding:u,size:p,stickyHeader:h}),x=f(Z),k=o.useMemo(()=>({padding:u,size:p,stickyHeader:h}),[u,p,h]);return(0,g.jsx)(d.Z.Provider,{value:k,children:(0,g.jsx)(m,(0,r.Z)({as:c,role:c===b?null:"table",ref:t,className:(0,i.Z)(x.root,l),ownerState:Z},y))})})},73450:function(e,t,n){let a=n(35106).createContext();t.Z=a},70210:function(e,t,n){let a=n(35106).createContext();t.Z=a},84811:function(e,t,n){n.d(t,{Z:function(){return Z}});var a=n(81500),r=n(32324),o=n(35106),i=n(70316),l=n(65951),d=n(70210),s=n(28057),c=n(34519),u=n(11379),p=n(9049);function h(e){return(0,p.ZP)("MuiTableBody",e)}(0,u.Z)("MuiTableBody",["root"]);var g=n(94655);let v=["className","component"],f=e=>{let{classes:t}=e;return(0,l.Z)({root:["root"]},h,t)},m=(0,c.ZP)("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"table-row-group"}),b={variant:"body"},y="tbody";var Z=o.forwardRef(function(e,t){let n=(0,s.i)({props:e,name:"MuiTableBody"}),{className:o,component:l=y}=n,c=(0,r.Z)(n,v),u=(0,a.Z)({},n,{component:l}),p=f(u);return(0,g.jsx)(d.Z.Provider,{value:b,children:(0,g.jsx)(m,(0,a.Z)({className:(0,i.Z)(p.root,o),as:l,ref:t,role:l===y?null:"rowgroup",ownerState:u},c))})})},47001:function(e,t,n){n.d(t,{Z:function(){return k}});var a=n(32324),r=n(81500),o=n(35106),i=n(70316),l=n(65951),d=n(64577),s=n(38762),c=n(73450),u=n(70210),p=n(28057),h=n(34519),g=n(11379),v=n(9049);function f(e){return(0,v.ZP)("MuiTableCell",e)}let m=(0,g.Z)("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]);var b=n(94655);let y=["align","className","component","padding","scope","size","sortDirection","variant"],Z=e=>{let{classes:t,variant:n,align:a,padding:r,size:o,stickyHeader:i}=e,d={root:["root",n,i&&"stickyHeader","inherit"!==a&&"align".concat((0,s.Z)(a)),"normal"!==r&&"padding".concat((0,s.Z)(r)),"size".concat((0,s.Z)(o))]};return(0,l.Z)(d,f,t)},x=(0,h.ZP)("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],t["size".concat((0,s.Z)(n.size))],"normal"!==n.padding&&t["padding".concat((0,s.Z)(n.padding))],"inherit"!==n.align&&t["align".concat((0,s.Z)(n.align))],n.stickyHeader&&t.stickyHeader]}})(e=>{let{theme:t,ownerState:n}=e;return(0,r.Z)({},t.typography.body2,{display:"table-cell",verticalAlign:"inherit",borderBottom:t.vars?"1px solid ".concat(t.vars.palette.TableCell.border):"1px solid\n ".concat("light"===t.palette.mode?(0,d.$n)((0,d.Fq)(t.palette.divider,1),.88):(0,d._j)((0,d.Fq)(t.palette.divider,1),.68)),textAlign:"left",padding:16},"head"===n.variant&&{color:(t.vars||t).palette.text.primary,lineHeight:t.typography.pxToRem(24),fontWeight:t.typography.fontWeightMedium},"body"===n.variant&&{color:(t.vars||t).palette.text.primary},"footer"===n.variant&&{color:(t.vars||t).palette.text.secondary,lineHeight:t.typography.pxToRem(21),fontSize:t.typography.pxToRem(12)},"small"===n.size&&{padding:"6px 16px",["&.".concat(m.paddingCheckbox)]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}},"checkbox"===n.padding&&{width:48,padding:"0 0 0 4px"},"none"===n.padding&&{padding:0},"left"===n.align&&{textAlign:"left"},"center"===n.align&&{textAlign:"center"},"right"===n.align&&{textAlign:"right",flexDirection:"row-reverse"},"justify"===n.align&&{textAlign:"justify"},n.stickyHeader&&{position:"sticky",top:0,zIndex:2,backgroundColor:(t.vars||t).palette.background.default})});var k=o.forwardRef(function(e,t){let n;let l=(0,p.i)({props:e,name:"MuiTableCell"}),{align:d="inherit",className:s,component:h,padding:g,scope:v,size:f,sortDirection:m,variant:k}=l,w=(0,a.Z)(l,y),C=o.useContext(c.Z),R=o.useContext(u.Z),M=R&&"head"===R.variant,T=v;"td"===(n=h||(M?"th":"td"))?T=void 0:!T&&M&&(T="col");let S=k||R&&R.variant,H=(0,r.Z)({},l,{align:d,component:n,padding:g||(C&&C.padding?C.padding:"normal"),size:f||(C&&C.size?C.size:"medium"),sortDirection:m,stickyHeader:"head"===S&&C&&C.stickyHeader,variant:S}),z=Z(H),N=null;return m&&(N="asc"===m?"ascending":"descending"),(0,b.jsx)(x,(0,r.Z)({as:n,ref:t,className:(0,i.Z)(z.root,s),"aria-sort":N,scope:T,ownerState:H},w))})},70366:function(e,t,n){n.d(t,{Z:function(){return Z}});var a=n(81500),r=n(32324),o=n(35106),i=n(70316),l=n(65951),d=n(64577),s=n(70210),c=n(28057),u=n(34519),p=n(11379),h=n(9049);function g(e){return(0,h.ZP)("MuiTableRow",e)}let v=(0,p.Z)("MuiTableRow",["root","selected","hover","head","footer"]);var f=n(94655);let m=["className","component","hover","selected"],b=e=>{let{classes:t,selected:n,hover:a,head:r,footer:o}=e;return(0,l.Z)({root:["root",n&&"selected",a&&"hover",r&&"head",o&&"footer"]},g,t)},y=(0,u.ZP)("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.head&&t.head,n.footer&&t.footer]}})(e=>{let{theme:t}=e;return{color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,["&.".concat(v.hover,":hover")]:{backgroundColor:(t.vars||t).palette.action.hover},["&.".concat(v.selected)]:{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / ").concat(t.vars.palette.action.selectedOpacity,")"):(0,d.Fq)(t.palette.primary.main,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.primary.mainChannel," / calc(").concat(t.vars.palette.action.selectedOpacity," + ").concat(t.vars.palette.action.hoverOpacity,"))"):(0,d.Fq)(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity)}}}});var Z=o.forwardRef(function(e,t){let n=(0,c.i)({props:e,name:"MuiTableRow"}),{className:l,component:d="tr",hover:u=!1,selected:p=!1}=n,h=(0,r.Z)(n,m),g=o.useContext(s.Z),v=(0,a.Z)({},n,{component:d,hover:u,selected:p,head:g&&"head"===g.variant,footer:g&&"footer"===g.variant}),Z=b(v);return(0,f.jsx)(y,(0,a.Z)({as:d,ref:t,className:(0,i.Z)(Z.root,l),role:"tr"===d?null:"row",ownerState:v},h))})}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2248],{12121:function(e,t,s){Promise.resolve().then(s.bind(s,61714))},61714:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return O}});var r=s(94655),n=s(7281),i=s(93017),a=s(69899),l=s(76492),o=s(31317),c=s(84840),d=s(25065),x=s(91179),h=s(11767),u=s(53832),m=s(30164),j=s(92666),p=s(59104),g=s(628),f=s(41565);function Z(e){let{title:t,value:s,icon:i,color:a="primary",description:l}=e,c={primary:"#1bd96a",success:"#22c55e",info:"#3b82f6",secondary:"#7c3aed"};return(0,r.jsx)(g.Z,{"data-testid":"stat-card",sx:{height:"100%",position:"relative",overflow:"hidden","&::before":{content:'""',position:"absolute",top:0,left:0,right:0,height:"4px",background:c[a]}},children:(0,r.jsxs)(f.Z,{children:[(0,r.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:2},children:[(0,r.jsx)(o.Z,{variant:"body2",color:"text.secondary",sx:{fontWeight:500},children:t}),i&&(0,r.jsx)(n.Z,{sx:{color:c[a],opacity:.8},children:i})]}),(0,r.jsx)(o.Z,{variant:"h3",component:"div",sx:{fontWeight:700,color:"text.primary",mb:l?1:0},children:s}),l&&(0,r.jsx)(o.Z,{variant:"caption",color:"text.secondary",children:l})]})})}var v=s(98406),y=s(25333),b=s(46725),w=s(8690),C=s(31358);function S(e){let{servers:t,statusMap:s={},isLoading:a,maxItems:l,showViewAll:c=!1,onServerClick:d}=e,x=(0,C.x)(),h=l?t.slice(0,l):t,u=e=>{d?d(e):x.push("/servers/".concat(e))},m=e=>{switch(e){case"running":return"success";case"stopped":case"exited":return"error";case"created":return"warning";default:return"default"}},j=e=>{switch(e){case"healthy":return"success";case"unhealthy":return"error";case"starting":return"warning";default:return"default"}};return a?(0,r.jsxs)(g.Z,{children:[(0,r.jsx)(v.Z,{title:"Servers"}),(0,r.jsx)(f.Z,{children:(0,r.jsx)(n.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,r.jsx)(i.Z,{})})})]}):0===t.length?(0,r.jsxs)(g.Z,{children:[(0,r.jsx)(v.Z,{title:"Servers"}),(0,r.jsx)(f.Z,{children:(0,r.jsx)(o.Z,{color:"text.secondary",align:"center",children:"No servers found. Create your first server to get started."})})]}):(0,r.jsxs)(g.Z,{children:[(0,r.jsx)(v.Z,{title:"Servers",action:c&&t.length>(l||0)?(0,r.jsxs)(b.default,{href:"/servers",onClick:()=>(0,w.Av)(),style:{textDecoration:"none",color:"inherit",fontSize:"0.875rem"},children:["View All (",t.length,")"]}):null}),(0,r.jsx)(f.Z,{children:(0,r.jsx)(n.Z,{sx:{display:"flex",flexDirection:"column",gap:2},children:h.map(e=>{let t=s[e.name],i=(null==t?void 0:t.status)||e.status,a=(null==t?void 0:t.health)||e.health;return(0,r.jsx)(n.Z,{role:"button",onClick:()=>u(e.name),sx:{p:2,borderRadius:1,border:"1px solid",borderColor:"divider",cursor:"pointer",transition:"all 0.2s","&:hover":{borderColor:"primary.main",backgroundColor:"action.hover"}},children:(0,r.jsxs)(n.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,r.jsxs)(n.Z,{children:[(0,r.jsx)(o.Z,{variant:"subtitle1",fontWeight:600,children:e.name}),(0,r.jsx)(o.Z,{variant:"caption",color:"text.secondary",children:e.hostname})]}),(0,r.jsxs)(n.Z,{sx:{display:"flex",gap:1},children:[(0,r.jsx)(y.Z,{label:i,color:m(i),size:"small"}),"none"!==a&&(0,r.jsx)(y.Z,{label:a,color:j(a),size:"small",variant:"outlined"})]})]})},e.name)})})})]})}var z=s(35106),k=s(10721),A=s(41261);function P(e){let{maxVersions:t=2,title:s="Recent Updates"}=e,[i,a]=(0,z.useState)([]),[l,c]=(0,z.useState)(!0),[d,x]=(0,z.useState)(null);return((0,z.useEffect)(()=>{(async function(){try{let e=await fetch("https://api.github.com/repos/smallmiro/minecraft-server-manager/contents/CHANGELOG.md",{headers:{Accept:"application/vnd.github.v3+json"}});if(!e.ok)throw Error("Failed to fetch changelog");let s=await e.json(),r=atob(s.content),n=function(e,t){let s=[],r=e.split("\n"),n=null,i="added";for(let e of r){let r=e.match(/^## \[([^\]]+)\] - (\d{4}-\d{2}-\d{2})/);if(r){if(n&&(s.push(n),s.length>=t))break;n={version:r[1],date:r[2],items:[]};continue}let a=e.match(/^### (Added|Fixed|Changed)/i);if(a){i=a[1].toLowerCase();continue}let l=e.match(/^- \*\*([^*]+)\*\*\s*[-–]?\s*(.*)$/);l&&n&&n.items.push({type:i,message:l[1].trim()})}return n&&s.length<t&&s.push(n),s}(r,t);a(n)}catch(e){x(e instanceof Error?e.message:"Unknown error")}finally{c(!1)}})()},[t]),l)?(0,r.jsxs)(g.Z,{children:[(0,r.jsx)(v.Z,{title:s}),(0,r.jsxs)(f.Z,{children:[(0,r.jsx)(k.Z,{variant:"text",width:"60%",height:28}),(0,r.jsx)(k.Z,{variant:"text",width:"80%"}),(0,r.jsx)(k.Z,{variant:"text",width:"70%"}),(0,r.jsxs)(n.Z,{sx:{mt:2},children:[(0,r.jsx)(k.Z,{variant:"text",width:"60%",height:28}),(0,r.jsx)(k.Z,{variant:"text",width:"75%"})]})]})]}):d?(0,r.jsxs)(g.Z,{children:[(0,r.jsx)(v.Z,{title:s}),(0,r.jsx)(f.Z,{children:(0,r.jsx)(o.Z,{color:"text.secondary",align:"center",children:"Unable to load updates"})})]}):(0,r.jsxs)(g.Z,{children:[(0,r.jsx)(v.Z,{title:s,action:(0,r.jsx)(A.Z,{href:"https://github.com/smallmiro/minecraft-server-manager/blob/develop/CHANGELOG.md",target:"_blank",rel:"noopener",sx:{fontSize:13,mr:1},children:"View all"})}),(0,r.jsx)(f.Z,{sx:{pt:0},children:i.map((e,t)=>{let s=e.items.filter(e=>"added"===e.type),a=e.items.filter(e=>"fixed"===e.type),l=e.items.filter(e=>"changed"===e.type);return(0,r.jsxs)(n.Z,{sx:{mb:t<i.length-1?2.5:0,pb:t<i.length-1?2:0,borderBottom:t<i.length-1?"1px solid":"none",borderColor:"divider"},children:[(0,r.jsxs)(o.Z,{variant:"subtitle2",sx:{fontWeight:600,color:"primary.main",mb:1},children:["[",e.version,"] - ",e.date]}),s.length>0&&(0,r.jsxs)(n.Z,{sx:{mb:1},children:[(0,r.jsx)(y.Z,{label:"Added",size:"small",sx:{bgcolor:"success.main",color:"success.contrastText",fontSize:11,height:20,mb:.5}}),s.map((e,t)=>(0,r.jsxs)(o.Z,{variant:"body2",sx:{color:"text.secondary",pl:1},children:["• ",e.message]},t))]}),a.length>0&&(0,r.jsxs)(n.Z,{sx:{mb:1},children:[(0,r.jsx)(y.Z,{label:"Fixed",size:"small",sx:{bgcolor:"warning.main",color:"warning.contrastText",fontSize:11,height:20,mb:.5}}),a.map((e,t)=>(0,r.jsxs)(o.Z,{variant:"body2",sx:{color:"text.secondary",pl:1},children:["• ",e.message]},t))]}),l.length>0&&(0,r.jsxs)(n.Z,{children:[(0,r.jsx)(y.Z,{label:"Changed",size:"small",sx:{bgcolor:"info.main",color:"info.contrastText",fontSize:11,height:20,mb:.5}}),l.map((e,t)=>(0,r.jsxs)(o.Z,{variant:"body2",sx:{color:"text.secondary",pl:1},children:["• ",e.message]},t))]})]},e.version)})})]})}var I=s(30417),T=s(90158),D=s(58347),E=s(73424),F=s(62590),N=s(26577),W=s(56813),L=s(26892),_=s(84509);function M(e){var t;let{maxItems:s=5}=e,{data:i,isLoading:a,error:l}=(0,_.oL)(s),c=null!==(t=null==i?void 0:i.logs)&&void 0!==t?t:[];return(0,r.jsxs)(g.Z,{children:[(0,r.jsx)(v.Z,{title:"Recent Activity",action:(0,r.jsx)(I.Z,{component:b.default,href:"/audit-logs",size:"small",endIcon:(0,r.jsx)(N.Z,{}),sx:{textTransform:"none"},children:"View All"})}),(0,r.jsx)(f.Z,{sx:{pt:0},children:a?(0,r.jsx)(T.Z,{sx:{py:0},children:[...Array(s)].map((e,t)=>(0,r.jsx)(D.ZP,{sx:{px:0,py:1.5},children:(0,r.jsx)(E.Z,{primary:(0,r.jsxs)(n.Z,{sx:{display:"flex",gap:1},children:[(0,r.jsx)(k.Z,{variant:"rounded",width:60,height:24}),(0,r.jsx)(k.Z,{variant:"text",width:80}),(0,r.jsx)(k.Z,{variant:"text",width:60})]}),secondary:(0,r.jsx)(k.Z,{variant:"text",width:50})})},t))}):l?(0,r.jsx)(o.Z,{color:"text.secondary",align:"center",children:"Failed to load recent activity"}):0===c.length?(0,r.jsx)(o.Z,{color:"text.secondary",align:"center",sx:{py:2},children:"No recent activity"}):(0,r.jsx)(T.Z,{sx:{py:0},children:c.map(e=>{var t;return(0,r.jsx)(D.ZP,{sx:{px:0,py:1.5,"&:not(:last-child)":{borderBottom:"1px solid",borderColor:"divider"}},children:(0,r.jsx)(E.Z,{primary:(0,r.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap"},children:[(0,r.jsx)(W.I,{action:e.action,size:"small"}),(0,r.jsx)(o.Z,{variant:"body2",sx:{fontWeight:500},children:e.targetName}),(0,r.jsxs)(o.Z,{variant:"body2",color:"text.secondary",children:["by ",e.actor.replace("api:","").replace("cli:","")]}),"failure"===e.status&&(0,r.jsx)(L.c,{status:e.status,size:"small"})]}),secondary:(0,r.jsx)(F.Z,{title:(t=e.timestamp,new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(new Date(t))),arrow:!0,children:(0,r.jsx)(o.Z,{variant:"caption",component:"span",color:"text.disabled",children:function(e){let t=new Date,s=new Date(e),r=Math.floor((t.getTime()-s.getTime())/6e4),n=Math.floor(r/60);return r<1?"just now":r<60?"".concat(r,"m ago"):n<24?"".concat(n,"h ago"):"".concat(Math.floor(n/24),"d ago")}(e.timestamp)})})})},e.id)})})})]})}function O(){let{data:e,isLoading:t}=(0,j.x$)(),{data:s,isLoading:g}=(0,j.Sr)(),{statusMap:f}=(0,p.d)(),v=t||g,y=(null==e?void 0:e.total)||0,b=(null==e?void 0:e.servers.filter(e=>{let t=f[e.name];return"running"===((null==t?void 0:t.status)||e.status)}).length)||0,w=(null==s?void 0:s.total)||0;return v?(0,r.jsx)(n.Z,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"50vh"},children:(0,r.jsx)(i.Z,{})}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,l.Fq)(e.palette.primary.main,.1)," 0%, ").concat((0,l.Fq)(e.palette.secondary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,l.Fq)(e.palette.primary.main,.2))},children:(0,r.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)(n.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"primary.main",color:"primary.contrastText"},children:(0,r.jsx)(d.Z,{sx:{fontSize:32}})}),(0,r.jsxs)(n.Z,{children:[(0,r.jsx)(o.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Dashboard"}),(0,r.jsx)(o.Z,{variant:"body1",color:"text.secondary",children:"Overview of your Minecraft server infrastructure"})]})]})}),(0,r.jsxs)(c.ZP,{container:!0,spacing:3,sx:{mb:4},children:[(0,r.jsx)(c.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(Z,{title:"Total Servers",value:y,icon:(0,r.jsx)(x.Z,{fontSize:"large"}),color:"primary",description:"All configured servers"})}),(0,r.jsx)(c.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(Z,{title:"Online Servers",value:b,icon:(0,r.jsx)(h.Z,{fontSize:"large"}),color:"success",description:"Currently running"})}),(0,r.jsx)(c.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(Z,{title:"Total Players",value:0,icon:(0,r.jsx)(u.Z,{fontSize:"large"}),color:"info",description:"Across all servers"})}),(0,r.jsx)(c.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,r.jsx)(Z,{title:"Total Worlds",value:w,icon:(0,r.jsx)(m.Z,{fontSize:"large"}),color:"secondary",description:"Available worlds"})})]}),(0,r.jsxs)(c.ZP,{container:!0,spacing:3,children:[(0,r.jsx)(c.ZP,{item:!0,xs:12,lg:7,children:(0,r.jsx)(S,{servers:(null==e?void 0:e.servers)||[],statusMap:f,isLoading:t,maxItems:5,showViewAll:!0})}),(0,r.jsx)(c.ZP,{item:!0,xs:12,lg:5,children:(0,r.jsxs)(n.Z,{sx:{display:"flex",flexDirection:"column",gap:3},children:[(0,r.jsx)(M,{maxItems:5}),(0,r.jsx)(P,{maxVersions:2})]})})]})]})}},59104:function(e,t,s){"use strict";s.d(t,{d:function(){return i}});var r=s(35106),n=s(93757);function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onStatusChange:t,enabled:s=!0,reconnectInterval:i=3e3}=e,[a,l]=(0,r.useState)({}),o=(0,r.useCallback)(e=>{if("server-status"===e.type){let{serverName:s,status:r,health:n,timestamp:i}=e.data;l(e=>({...e,[s]:{status:r,health:n,timestamp:i}})),null==t||t(s,r,n)}},[t]),{isConnected:c,reconnect:d,retryCount:x}=(0,n.D)({url:"/api/sse/servers-status",onMessage:o,enabled:s,reconnectInterval:i}),h=(0,r.useCallback)(e=>a[e]||null,[a]);return(0,r.useEffect)(()=>{s||l({})},[s]),{statusMap:a,getServerStatus:h,isConnected:c,reconnect:d,retryCount:x}}}},function(e){e.O(0,[6812,7220,6803,7294,540,1857,2590,55,8347,4597,2537,3669,2757,1744],function(){return e(e.s=12121)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4095],{16387:function(e,r,t){Promise.resolve().then(t.bind(t,6453))},6453:function(e,r,t){"use strict";t.r(r),t.d(r,{default:function(){return H}});var n=t(94655),a=t(35106),i=t(7281),s=t(74228),l=t(46725),o=t(56275),c=t(62108),d=t(79983),h=t(31317),x=t(78765),m=t(90158),u=t(58347),p=t(49954),f=t(17820),g=t(73424),b=t(61505),j=t(71185),y=t(76176),v=t(27171),Z=t(35847),w=t(29983),C=t(80620),k=t(84974),S=t(85480),P=t(64779);function z(e){return(0,n.jsxs)(P.Z,{...e,viewBox:"0 0 32 32",children:[(0,n.jsx)("rect",{width:"32",height:"32",fill:"#5DA840"}),(0,n.jsx)("rect",{x:"4",y:"8",width:"8",height:"8",fill:"#000"}),(0,n.jsx)("rect",{x:"20",y:"8",width:"8",height:"8",fill:"#000"}),(0,n.jsx)("rect",{x:"12",y:"16",width:"8",height:"4",fill:"#000"}),(0,n.jsx)("rect",{x:"8",y:"20",width:"16",height:"8",fill:"#000"}),(0,n.jsx)("rect",{x:"8",y:"28",width:"4",height:"4",fill:"#000"}),(0,n.jsx)("rect",{x:"20",y:"28",width:"4",height:"4",fill:"#000"}),(0,n.jsx)("rect",{x:"0",y:"0",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"8",y:"4",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"24",y:"0",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"28",y:"8",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"}),(0,n.jsx)("rect",{x:"0",y:"24",width:"4",height:"4",fill:"#4A9030",opacity:"0.5"})]})}var I=t(8690);let W=[{label:"Dashboard",href:"/dashboard",icon:(0,n.jsx)(y.Z,{})},{label:"Servers",href:"/servers",icon:(0,n.jsx)(v.Z,{})},{label:"Worlds",href:"/worlds",icon:(0,n.jsx)(k.Z,{})},{label:"Players",href:"/players",icon:(0,n.jsx)(Z.Z,{})},{label:"Audit Log",href:"/audit-logs",icon:(0,n.jsx)(C.Z,{})},{label:"Routing",href:"/routing",icon:(0,n.jsx)(w.Z,{})}];function A(e){let{mobileOpen:r,onMenuToggle:t}=e,a=(0,s.usePathname)(),y=e=>"/dashboard"===e?"/dashboard"===a||"/"===a:a.startsWith(e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.Z,{position:"fixed",elevation:0,sx:{backgroundColor:"background.paper",borderBottom:"1px solid",borderColor:"divider",zIndex:e=>e.zIndex.drawer+1},children:(0,n.jsxs)(c.Z,{sx:{maxWidth:"1400px",width:"100%",mx:"auto",px:{xs:2,sm:3}},children:[(0,n.jsx)(d.Z,{color:"inherit","aria-label":"open menu",edge:"start",onClick:t,sx:{mr:2,display:{md:"none"}},children:(0,n.jsx)(b.Z,{})}),(0,n.jsxs)(l.default,{href:"/",style:{textDecoration:"none",display:"flex",alignItems:"center"},children:[(0,n.jsx)(z,{sx:{fontSize:28,color:"primary.main",mr:1}}),(0,n.jsx)(h.Z,{variant:"h6",component:"span",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,color:"common.white",letterSpacing:"0.05em",fontSize:"1.1rem"},children:"Minecraft Console"})]}),(0,n.jsx)(i.Z,{component:"nav",sx:{display:{xs:"none",md:"flex"},alignItems:"center",gap:1,ml:4,flex:1},children:W.map(e=>{let r=y(e.href);return(0,n.jsx)(l.default,{href:e.href,style:{textDecoration:"none"},onClick:()=>!r&&(0,I.Av)(),children:(0,n.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:1,px:2,py:1,borderRadius:2,color:r?"primary.main":"text.secondary",backgroundColor:r?"action.selected":"transparent",transition:"all 0.2s ease","&:hover":{backgroundColor:"action.hover",color:r?"primary.main":"text.primary"}},children:[(0,n.jsx)(i.Z,{component:"span",sx:{display:"flex",alignItems:"center","& svg":{fontSize:20}},children:e.icon}),(0,n.jsx)(h.Z,{variant:"body2",sx:{fontWeight:r?600:400},children:e.label})]})},e.href)})}),(0,n.jsx)(i.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:(0,n.jsx)(S.Ie,{})})]})}),(0,n.jsx)(x.ZP,{variant:"temporary",anchor:"left",open:r,onClose:t,ModalProps:{keepMounted:!0},sx:{display:{xs:"block",md:"none"},"& .MuiDrawer-paper":{boxSizing:"border-box",width:280,backgroundColor:"background.paper"}},children:(0,n.jsxs)(i.Z,{sx:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,n.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:2,minHeight:64,borderBottom:"1px solid",borderColor:"divider"},children:[(0,n.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,n.jsx)(z,{sx:{fontSize:24,color:"primary.main",mr:1}}),(0,n.jsx)(h.Z,{variant:"h6",component:"span",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,color:"primary.main",letterSpacing:"0.05em",fontSize:"1rem"},children:"Minecraft Console"})]}),(0,n.jsx)(d.Z,{onClick:t,"aria-label":"close menu",children:(0,n.jsx)(j.Z,{})})]}),(0,n.jsx)(m.Z,{sx:{flex:1,px:1,py:2},children:W.map(e=>{let r=y(e.href);return(0,n.jsx)(u.ZP,{disablePadding:!0,sx:{mb:.5},children:(0,n.jsxs)(p.Z,{component:l.default,href:e.href,onClick:()=>{t(),r||(0,I.Av)()},"aria-current":r?"page":void 0,sx:{borderRadius:2,backgroundColor:r?"action.selected":"transparent","&:hover":{backgroundColor:"action.hover"}},children:[(0,n.jsx)(f.Z,{sx:{color:r?"primary.main":"text.secondary",minWidth:40},children:e.icon}),(0,n.jsx)(g.Z,{primary:e.label,primaryTypographyProps:{fontWeight:r?600:400,color:r?"primary.main":"text.primary"}})]})},e.href)})})]})})]})}var D=t(67337),T=t(41261),_=t(69123),E=t(75845),L=t(43880);function M(e){return(0,n.jsx)(P.Z,{...e,viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M13.983 11.078h2.119a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.119a.185.185 0 00-.185.185v1.888c0 .102.083.185.185.185m-2.954-5.43h2.118a.186.186 0 00.186-.186V3.574a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.186m0 2.716h2.118a.187.187 0 00.186-.186V6.29a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.887c0 .102.082.185.185.186m-2.93 0h2.12a.186.186 0 00.184-.186V6.29a.185.185 0 00-.185-.185H8.1a.185.185 0 00-.185.185v1.887c0 .102.083.185.185.186m-2.964 0h2.119a.186.186 0 00.185-.186V6.29a.185.185 0 00-.185-.185H5.136a.186.186 0 00-.186.185v1.887c0 .102.084.185.186.186m5.893 2.715h2.118a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m-2.93 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.083.185.185.185m-2.964 0h2.119a.185.185 0 00.185-.185V9.006a.185.185 0 00-.184-.186h-2.12a.186.186 0 00-.186.186v1.887c0 .102.084.185.186.185m-2.92 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.082.185.185.185M23.763 9.89c-.065-.051-.672-.51-1.954-.51-.338.001-.676.03-1.01.087-.248-1.7-1.653-2.53-1.716-2.566l-.344-.199-.226.327c-.284.438-.49.922-.612 1.43-.23.97-.09 1.882.403 2.661-.595.332-1.55.413-1.744.42H.751a.751.751 0 00-.75.748 11.376 11.376 0 00.692 4.062c.545 1.428 1.355 2.48 2.41 3.124 1.18.723 3.1 1.137 5.275 1.137.983.003 1.963-.086 2.93-.266a12.248 12.248 0 003.823-1.389c.98-.567 1.86-1.288 2.61-2.136 1.252-1.418 1.998-2.997 2.553-4.4h.221c1.372 0 2.215-.549 2.68-1.009.309-.293.55-.65.707-1.046l.098-.288z"})})}let q=[{title:"Resources",links:[{label:"Getting Started",href:"https://minecraft-server-manager.readthedocs.io/en/latest/getting-started/",external:!0},{label:"Configuration",href:"https://minecraft-server-manager.readthedocs.io/en/latest/configuration/",external:!0},{label:"Troubleshooting",href:"https://minecraft-server-manager.readthedocs.io/en/latest/troubleshooting/",external:!0}]},{title:"Documentation",links:[{label:"CLI Commands",href:"https://minecraft-server-manager.readthedocs.io/en/latest/cli/",external:!0},{label:"API Reference",href:"https://minecraft-server-manager.readthedocs.io/en/latest/admin-service/",external:!0},{label:"itzg Reference",href:"https://minecraft-server-manager.readthedocs.io/en/latest/itzg-reference/",external:!0}]},{title:"Community",links:[{label:"GitHub",href:"https://github.com/smallmiro/minecraft-server-manager",external:!0},{label:"Issues",href:"https://github.com/smallmiro/minecraft-server-manager/issues",external:!0}]},{title:"About",links:[{label:"License",href:"https://github.com/smallmiro/minecraft-server-manager/blob/main/LICENSE",external:!0},{label:"Docker Hub",href:"https://hub.docker.com/r/itzg/minecraft-server",external:!0}]}];function R(){let e=new Date().getFullYear();return(0,n.jsx)(i.Z,{component:"footer",sx:{backgroundColor:"background.paper",borderTop:"1px solid",borderColor:"divider",mt:"auto"},children:(0,n.jsxs)(D.Z,{maxWidth:"lg",sx:{py:6},children:[(0,n.jsx)(i.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"repeat(2, 1fr)",sm:"repeat(4, 1fr)"},gap:4,mb:4},children:q.map(e=>(0,n.jsxs)(i.Z,{children:[(0,n.jsx)(h.Z,{variant:"subtitle2",sx:{fontWeight:600,color:"text.primary",mb:2},children:e.title}),(0,n.jsx)(i.Z,{component:"ul",sx:{listStyle:"none",p:0,m:0},children:e.links.map(e=>(0,n.jsx)(i.Z,{component:"li",sx:{mb:1},children:(0,n.jsx)(T.Z,{href:e.href,target:e.external?"_blank":void 0,rel:e.external?"noopener noreferrer":void 0,underline:"hover",sx:{color:"text.secondary",fontSize:"0.875rem",transition:"color 0.2s ease","&:hover":{color:"primary.main"}},children:e.label})},e.label))})]},e.title))}),(0,n.jsx)(_.Z,{sx:{mb:3}}),(0,n.jsxs)(i.Z,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},justifyContent:"space-between",alignItems:{xs:"flex-start",sm:"center"},gap:2},children:[(0,n.jsxs)(h.Z,{variant:"body2",sx:{color:"text.tertiary"},children:[e," \xa9"," ",(0,n.jsx)(T.Z,{href:"https://github.com/smallmiro/minecraft-server-manager",target:"_blank",rel:"noopener noreferrer",underline:"hover",sx:{color:"primary.main"},children:"Minecraft Server Management Console"})]}),(0,n.jsxs)(i.Z,{sx:{display:"flex",gap:2},children:[(0,n.jsx)(T.Z,{href:"https://github.com/smallmiro/minecraft-server-manager",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub",sx:{color:"text.secondary",transition:"color 0.2s ease","&:hover":{color:"text.primary"}},children:(0,n.jsx)(E.Z,{fontSize:"small"})}),(0,n.jsx)(T.Z,{href:"https://minecraft-server-manager.readthedocs.io/",target:"_blank",rel:"noopener noreferrer","aria-label":"Documentation",sx:{color:"text.secondary",transition:"color 0.2s ease","&:hover":{color:"text.primary"}},children:(0,n.jsx)(L.Z,{fontSize:"small"})}),(0,n.jsx)(T.Z,{href:"https://hub.docker.com/r/itzg/minecraft-server",target:"_blank",rel:"noopener noreferrer","aria-label":"Docker Hub",sx:{color:"text.secondary",transition:"color 0.2s ease","&:hover":{color:"text.primary"}},children:(0,n.jsx)(M,{fontSize:"small"})})]})]})]})})}function H(e){let{children:r}=e,[t,s]=(0,a.useState)(!1);return(0,n.jsxs)(i.Z,{sx:{display:"flex",flexDirection:"column",minHeight:"100vh",backgroundColor:"background.default"},children:[(0,n.jsx)(A,{mobileOpen:t,onMenuToggle:()=>{s(!t)}}),(0,n.jsx)(i.Z,{component:"main",sx:{flexGrow:1,display:"flex",flexDirection:"column",pt:{xs:"".concat(88,"px"),sm:"".concat(96,"px")},pb:{xs:3,sm:4},px:{xs:2,sm:3,md:4},maxWidth:"1400px",width:"100%",mx:"auto"},children:r}),(0,n.jsx)(R,{})]})}},85480:function(e,r,t){"use strict";t.d(r,{U0:function(){return u},WS:function(){return p},Ie:function(){return P}});var n=t(94655),a=t(35106),i=t(7281),s=t(56877),l=t(97436),o=t(52082),c=t(79983),d=t(30417),h=t(36848),x=t(554),m=t(6986);function u(e){let{onSuccess:r}=e,[t,u]=(0,a.useState)(""),[p,f]=(0,a.useState)(""),[g,b]=(0,a.useState)(!1),[j,y]=(0,a.useState)({}),[v,Z]=(0,a.useState)(null),[w,C]=(0,a.useState)(!1),k=()=>{let e={};return t?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)||(e.email="Invalid email address"):e.email="Email is required",p||(e.password="Password is required"),y(e),0===Object.keys(e).length},S=async e=>{if(e.preventDefault(),Z(null),k()){C(!0);try{let e=await m.zB.email({email:t,password:p});if(e.error){Z(e.error.message||"Invalid credentials"),C(!1);return}r&&r()}catch(e){Z("An unexpected error occurred. Please try again."),C(!1)}}};return(0,n.jsxs)(i.Z,{component:"form",onSubmit:S,sx:{display:"flex",flexDirection:"column",gap:2},children:[v&&(0,n.jsx)(s.Z,{severity:"error",onClose:()=>Z(null),children:v}),(0,n.jsx)(l.Z,{label:"Email",type:"email",value:t,onChange:e=>u(e.target.value),error:!!j.email,helperText:j.email,disabled:w,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Password",type:g?"text":"password",value:p,onChange:e=>f(e.target.value),error:!!j.password,helperText:j.password,disabled:w,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(c.Z,{"aria-label":"toggle password visibility",onClick:()=>{b(!g)},edge:"end",children:g?(0,n.jsx)(h.Z,{}):(0,n.jsx)(x.Z,{})})})}}),(0,n.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:w,fullWidth:!0,size:"large",children:w?"Signing in...":"Sign In"})]})}function p(e){let{onSuccess:r}=e,[t,u]=(0,a.useState)(""),[p,f]=(0,a.useState)(""),[g,b]=(0,a.useState)(""),[j,y]=(0,a.useState)(""),[v,Z]=(0,a.useState)(!1),[w,C]=(0,a.useState)(!1),[k,S]=(0,a.useState)({}),[P,z]=(0,a.useState)(null),[I,W]=(0,a.useState)(!1),A=()=>{let e={};return t||(e.name="Name is required"),p?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(p)||(e.email="Invalid email address"):e.email="Email is required",g?g.length<8&&(e.password="Password must be at least 8 characters"):e.password="Password is required",j?g!==j&&(e.confirmPassword="Passwords do not match"):e.confirmPassword="Please confirm your password",S(e),0===Object.keys(e).length},D=async e=>{if(e.preventDefault(),z(null),A()){W(!0);try{let e=await m.y1.email({email:p,password:g,name:t});if(e.error){z(e.error.message||"Registration failed"),W(!1);return}r&&r()}catch(e){z("An unexpected error occurred. Please try again."),W(!1)}}};return(0,n.jsxs)(i.Z,{component:"form",onSubmit:D,sx:{display:"flex",flexDirection:"column",gap:2},children:[P&&(0,n.jsx)(s.Z,{severity:"error",onClose:()=>z(null),children:P}),(0,n.jsx)(l.Z,{label:"Name",type:"text",value:t,onChange:e=>u(e.target.value),error:!!k.name,helperText:k.name,disabled:I,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Email",type:"email",value:p,onChange:e=>f(e.target.value),error:!!k.email,helperText:k.email,disabled:I,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Password",type:v?"text":"password",value:g,onChange:e=>b(e.target.value),error:!!k.password,helperText:k.password,disabled:I,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(c.Z,{"aria-label":"toggle password visibility",onClick:()=>{Z(!v)},edge:"end",children:v?(0,n.jsx)(h.Z,{}):(0,n.jsx)(x.Z,{})})})}}),(0,n.jsx)(l.Z,{label:"Confirm Password",type:w?"text":"password",value:j,onChange:e=>y(e.target.value),error:!!k.confirmPassword,helperText:k.confirmPassword,disabled:I,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(c.Z,{"aria-label":"toggle password visibility",onClick:()=>{C(!w)},edge:"end",children:w?(0,n.jsx)(h.Z,{}):(0,n.jsx)(x.Z,{})})})}}),(0,n.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:I,fullWidth:!0,size:"large",children:I?"Creating account...":"Sign Up"})]})}var f=t(74228),g=t(93017),b=t(86702),j=t(35694),y=t(31317),v=t(25333),Z=t(69123),w=t(7178),C=t(17820),k=t(73424),S=t(78319);function P(){let e=(0,f.useRouter)(),{data:r,isPending:t}=(0,m.kP)(),[s,l]=(0,a.useState)(null),o=()=>{l(null)},h=async()=>{o(),await (0,m.w7)(),e.push("/login")};if(t)return(0,n.jsx)(i.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:(0,n.jsx)(g.Z,{size:24})});if(!(null==r?void 0:r.user))return(0,n.jsx)(d.Z,{variant:"contained",color:"primary",onClick:()=>{e.push("/login")},children:"Sign In"});let{user:x}=r,u=((e,r)=>{if(e){let r=e.split(" ");return r.length>=2?"".concat(r[0][0]).concat(r[1][0]).toUpperCase():e.substring(0,2).toUpperCase()}return r?r[0].toUpperCase():"?"})(x.name,x.email);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.Z,{onClick:e=>{l(e.currentTarget)},"aria-label":"user menu",children:(0,n.jsx)(b.Z,{sx:{bgcolor:"primary.main"},children:u})}),(0,n.jsxs)(j.Z,{anchorEl:s,open:!!s,onClose:o,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},sx:{mt:1},children:[(0,n.jsxs)(i.Z,{sx:{px:2,py:1.5,minWidth:200},children:[(0,n.jsx)(y.Z,{variant:"subtitle1",fontWeight:"600",children:x.name||"User"}),(0,n.jsx)(y.Z,{variant:"body2",color:"text.secondary",children:x.email}),"admin"===x.role&&(0,n.jsx)(v.Z,{label:"Admin",size:"small",color:"primary",sx:{mt:1}})]}),(0,n.jsx)(Z.Z,{}),(0,n.jsxs)(w.Z,{onClick:h,children:[(0,n.jsx)(C.Z,{children:(0,n.jsx)(S.Z,{fontSize:"small"})}),(0,n.jsx)(k.Z,{children:"Logout"})]})]})]})}},3454:function(e,r,t){"use strict";t.d(r,{LoadingProvider:function(){return o},startLoading:function(){return c},stopLoading:function(){return d}});var n=t(94655),a=t(35106),i=t(74228),s=t(31477),l=t.n(s);function o(e){let{children:r}=e,t=(0,i.usePathname)(),s=(0,i.useSearchParams)();return(0,a.useEffect)(()=>{l().done()},[t,s]),(0,n.jsx)(n.Fragment,{children:r})}function c(){l().start()}function d(){l().done()}l().configure({showSpinner:!1,speed:300,minimum:.1})},8690:function(e,r,t){"use strict";t.d(r,{Av:function(){return n.startLoading}});var n=t(3454)},6986:function(e,r,t){"use strict";t.d(r,{kP:function(){return c},w7:function(){return l},y1:function(){return o},zB:function(){return s}});var n=t(77054),a=t(61648),i=t(35016);let{signIn:s,signOut:l,signUp:o,useSession:c}=(0,n.X)({baseURL:i.env.NEXT_PUBLIC_BETTER_AUTH_URL||"http://localhost:5000",plugins:[(0,a.zB)()]})}},function(e){e.O(0,[6812,7220,6803,7294,1604,6877,55,8347,2542,7340,1826,8918,4136,3669,2757,1744],function(){return e(e.s=16387)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[781],{31809:function(e,r,n){Promise.resolve().then(n.bind(n,83785))},83785:function(e,r,n){"use strict";n.r(r),n.d(r,{default:function(){return X}});var t=n(94655),a=n(35106),s=n(7281),o=n(31317),i=n(84840),l=n(33402),c=n(60097),d=n(29793),u=n(36660),h=n(63696),y=n(7178),p=n(69899),x=n(76492),m=n(35847),j=n(628),v=n(41565),f=n(90158),Z=n(58347),b=n(73424),g=n(69783),C=n(86702),w=n(79983),S=n(30417),k=n(25333),E=n(99770),F=n(62508),I=n(5682),P=n(65087),q=n(76678),R=n(97436),N=n(93017),O=n(56877),K=n(66561),U=n(12795),T=n(96407),L=n(69366),D=n(11597),A=n(81960),B=n(30114);function Q(e){let{onPlayerKicked:r}=e,[n,i]=(0,a.useState)(!0),[l,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,y]=(0,a.useState)(!1),[p,x]=(0,a.useState)(null),[m,Q]=(0,a.useState)(""),[W,z]=(0,a.useState)(!1),J=(0,a.useCallback)(async()=>{i(!0),c(null);try{let e=await fetch("/api/players");if(!e.ok)throw Error("Failed to fetch players");let r=await e.json();u(r.servers)}catch(e){c("Failed to load players"),console.error("Error fetching players:",e)}finally{i(!1)}},[]);(0,a.useEffect)(()=>{J()},[J]);let _=(e,r)=>{x({player:e,server:r}),Q(""),y(!0)},M=async()=>{if(p){z(!0);try{if(!(await fetch("/api/players/kick",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:p.player.name,server:p.server,reason:m||"Kicked by administrator"})})).ok)throw Error("Failed to kick player");y(!1),x(null),null==r||r(p.player,p.server),await J()}catch(e){console.error("Error kicking player:",e)}finally{z(!1)}}},H=d.some(e=>e.players.length>0);return(0,t.jsx)(j.Z,{"data-testid":"player-list",children:(0,t.jsxs)(v.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,t.jsx)(o.Z,{variant:"h6",children:"Online Players"}),(0,t.jsx)(w.Z,{onClick:J,disabled:n,"aria-label":"Refresh",children:(0,t.jsx)(L.Z,{})})]}),n&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(N.Z,{})}),l&&(0,t.jsx)(O.Z,{severity:"error",sx:{mb:2},children:l}),!n&&!l&&!H&&(0,t.jsx)(o.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No players online"}),!n&&!l&&H&&(0,t.jsx)(s.Z,{children:d.map(e=>(0,t.jsxs)(K.Z,{defaultExpanded:e.players.length>0,children:[(0,t.jsx)(U.Z,{expandIcon:(0,t.jsx)(A.Z,{}),children:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:2,width:"100%"},children:[(0,t.jsx)(o.Z,{variant:"subtitle1",sx:{fontWeight:500},children:e.name}),(0,t.jsx)(k.Z,{label:"".concat(e.players.length," player").concat(1!==e.players.length?"s":""),size:"small",color:e.players.length>0?"success":"default"})]})}),(0,t.jsx)(T.Z,{children:0===e.players.length?(0,t.jsx)(o.Z,{color:"text.secondary",sx:{fontStyle:"italic"},children:"No players online on this server"}):(0,t.jsx)(f.Z,{dense:!0,children:e.players.map(r=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(w.Z,{edge:"end","aria-label":"Kick player",onClick:()=>_(r,e.name),color:"error",children:(0,t.jsx)(D.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:"https://mc-heads.net/avatar/".concat(r.uuid,"/40"),alt:r.name,children:(0,t.jsx)(B.Z,{})})}),(0,t.jsx)(b.Z,{primary:r.name,secondary:r.uuid.substring(0,8)+"..."})]},r.uuid))})})]},e.name))}),(0,t.jsxs)(E.Z,{open:h,onClose:()=>y(!1),children:[(0,t.jsx)(F.Z,{children:"Kick Player"}),(0,t.jsxs)(I.Z,{children:[(0,t.jsxs)(P.Z,{children:["Are you sure you want to kick ",null==p?void 0:p.player.name," from ",null==p?void 0:p.server,"?"]}),(0,t.jsx)(R.Z,{autoFocus:!0,margin:"dense",label:"Reason (optional)",fullWidth:!0,variant:"outlined",value:m,onChange:e=>Q(e.target.value),placeholder:"Kicked by administrator"})]}),(0,t.jsxs)(q.Z,{children:[(0,t.jsx)(S.Z,{onClick:()=>y(!1),disabled:W,children:"Cancel"}),(0,t.jsx)(S.Z,{onClick:M,color:"error",variant:"contained",disabled:W,"aria-label":"Confirm kick",children:W?(0,t.jsx)(N.Z,{size:20}):"Confirm"})]})]})]})})}var W=n(70115),z=n(21111),J=n(47606);function _(e){let{serverName:r}=e,[n,i]=(0,a.useState)(!0),[l,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,y]=(0,a.useState)(""),[p,x]=(0,a.useState)(!1),[m,k]=(0,a.useState)(null),E=(0,a.useCallback)(async()=>{i(!0),c(null);try{let e=await fetch("/api/players/whitelist?server=".concat(encodeURIComponent(r)));if(!e.ok)throw Error("Failed to fetch whitelist");let n=await e.json();u(n.players)}catch(e){c("Failed to load whitelist"),console.error("Error fetching whitelist:",e)}finally{i(!1)}},[r]);(0,a.useEffect)(()=>{E()},[E]);let F=async()=>{if(h.trim()){x(!0),c(null);try{if(!(await fetch("/api/players/whitelist",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:h.trim(),server:r})})).ok)throw Error("Failed to add player");y(""),await E()}catch(e){c("Failed to add player to whitelist"),console.error("Error adding player:",e)}finally{x(!1)}}},I=async e=>{k(e),c(null);try{if(!(await fetch("/api/players/whitelist?player=".concat(encodeURIComponent(e),"&server=").concat(encodeURIComponent(r)),{method:"DELETE"})).ok)throw Error("Failed to remove player");await E()}catch(e){c("Failed to remove player from whitelist"),console.error("Error removing player:",e)}finally{k(null)}};return(0,t.jsx)(j.Z,{"data-testid":"whitelist-manager",children:(0,t.jsxs)(v.Z,{children:[(0,t.jsx)(o.Z,{variant:"h6",gutterBottom:!0,children:"Whitelist"}),l&&(0,t.jsx)(O.Z,{severity:"error",sx:{mb:2},children:l}),(0,t.jsxs)(W.Z,{direction:"row",spacing:1,sx:{mb:2},children:[(0,t.jsx)(R.Z,{size:"small",placeholder:"Player name",value:h,onChange:e=>y(e.target.value),onKeyDown:e=>{"Enter"===e.key&&F()},disabled:p,fullWidth:!0}),(0,t.jsx)(S.Z,{variant:"contained",onClick:F,disabled:!h.trim()||p,startIcon:p?(0,t.jsx)(N.Z,{size:16}):(0,t.jsx)(J.Z,{}),"aria-label":"Add player to whitelist",children:"Add"})]}),n&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(N.Z,{})}),!n&&0===d.length&&(0,t.jsx)(o.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No players whitelisted"}),!n&&d.length>0&&(0,t.jsx)(f.Z,{dense:!0,children:d.map(e=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(w.Z,{edge:"end","aria-label":"Remove from whitelist",onClick:()=>I(e.name),disabled:m===e.name,color:"error",children:m===e.name?(0,t.jsx)(N.Z,{size:20}):(0,t.jsx)(z.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:e.uuid?"https://mc-heads.net/avatar/".concat(e.uuid,"/40"):void 0,alt:e.name,children:(0,t.jsx)(B.Z,{})})}),(0,t.jsx)(b.Z,{primary:e.name,secondary:e.uuid?e.uuid.substring(0,8)+"...":"UUID not available"})]},e.uuid||e.name))})]})})}var M=n(407);function H(e){let{serverName:r}=e,[n,i]=(0,a.useState)(!0),[l,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,y]=(0,a.useState)(""),[p,x]=(0,a.useState)(!1),[m,E]=(0,a.useState)(null),F=(0,a.useCallback)(async()=>{i(!0),c(null);try{let e=await fetch("/api/players/op?server=".concat(encodeURIComponent(r)));if(!e.ok)throw Error("Failed to fetch operators");let n=await e.json();u(n.operators)}catch(e){c("Failed to load operators"),console.error("Error fetching operators:",e)}finally{i(!1)}},[r]);(0,a.useEffect)(()=>{F()},[F]);let I=async()=>{if(h.trim()){x(!0),c(null);try{if(!(await fetch("/api/players/op",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:h.trim(),server:r})})).ok)throw Error("Failed to add operator");y(""),await F()}catch(e){c("Failed to add operator"),console.error("Error adding operator:",e)}finally{x(!1)}}},P=async e=>{E(e),c(null);try{if(!(await fetch("/api/players/op?player=".concat(encodeURIComponent(e),"&server=").concat(encodeURIComponent(r)),{method:"DELETE"})).ok)throw Error("Failed to remove operator");await F()}catch(e){c("Failed to remove operator"),console.error("Error removing operator:",e)}finally{E(null)}},q=e=>{switch(e){case 4:return"error";case 3:return"secondary";case 2:return"primary";default:return"default"}};return(0,t.jsx)(j.Z,{"data-testid":"op-manager",children:(0,t.jsxs)(v.Z,{children:[(0,t.jsx)(o.Z,{variant:"h6",gutterBottom:!0,children:"Operators"}),l&&(0,t.jsx)(O.Z,{severity:"error",sx:{mb:2},children:l}),(0,t.jsxs)(W.Z,{direction:"row",spacing:1,sx:{mb:2},children:[(0,t.jsx)(R.Z,{size:"small",placeholder:"Player name",value:h,onChange:e=>y(e.target.value),onKeyDown:e=>{"Enter"===e.key&&I()},disabled:p,fullWidth:!0}),(0,t.jsx)(S.Z,{variant:"contained",onClick:I,disabled:!h.trim()||p,startIcon:p?(0,t.jsx)(N.Z,{size:16}):(0,t.jsx)(J.Z,{}),"aria-label":"Add operator",children:"Add"})]}),n&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(N.Z,{})}),!n&&0===d.length&&(0,t.jsx)(o.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No operators configured"}),!n&&d.length>0&&(0,t.jsx)(f.Z,{dense:!0,children:d.map(e=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(w.Z,{edge:"end","aria-label":"Remove operator",onClick:()=>P(e.name),disabled:m===e.name,color:"error",children:m===e.name?(0,t.jsx)(N.Z,{size:20}):(0,t.jsx)(z.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:e.uuid?"https://mc-heads.net/avatar/".concat(e.uuid,"/40"):void 0,alt:e.name,sx:{bgcolor:"warning.main"},children:(0,t.jsx)(M.Z,{})})}),(0,t.jsx)(b.Z,{primary:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.name,(0,t.jsx)(k.Z,{label:"Level ".concat(e.level),size:"small",color:q(e.level)})]}),secondary:e.uuid?e.uuid.substring(0,8)+"...":"UUID not available"})]},e.uuid||e.name))})]})})}var $=n(397);function Y(e){let{serverName:r}=e,[n,i]=(0,a.useState)(!0),[l,c]=(0,a.useState)(null),[d,u]=(0,a.useState)([]),[h,y]=(0,a.useState)(!1),[p,x]=(0,a.useState)({player:"",reason:""}),[m,k]=(0,a.useState)(!1),[P,K]=(0,a.useState)(null),U=(0,a.useCallback)(async()=>{i(!0),c(null);try{let e=await fetch("/api/players/ban?server=".concat(encodeURIComponent(r)));if(!e.ok)throw Error("Failed to fetch bans");let n=await e.json();u(n.players)}catch(e){c("Failed to load ban list"),console.error("Error fetching bans:",e)}finally{i(!1)}},[r]);(0,a.useEffect)(()=>{U()},[U]);let T=()=>{y(!1),x({player:"",reason:""})},L=async()=>{if(p.player.trim()){k(!0),c(null);try{if(!(await fetch("/api/players/ban",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({player:p.player.trim(),reason:p.reason.trim()||"Banned by administrator",server:r})})).ok)throw Error("Failed to ban player");T(),await U()}catch(e){c("Failed to ban player"),console.error("Error banning player:",e)}finally{k(!1)}}},D=async e=>{K(e),c(null);try{if(!(await fetch("/api/players/ban?player=".concat(encodeURIComponent(e),"&server=").concat(encodeURIComponent(r)),{method:"DELETE"})).ok)throw Error("Failed to unban player");await U()}catch(e){c("Failed to unban player"),console.error("Error unbanning player:",e)}finally{K(null)}},A=e=>{try{return new Date(e).toLocaleDateString()}catch(r){return e}};return(0,t.jsx)(j.Z,{"data-testid":"ban-manager",children:(0,t.jsxs)(v.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,t.jsx)(o.Z,{variant:"h6",children:"Ban List"}),(0,t.jsx)(S.Z,{variant:"outlined",color:"error",startIcon:(0,t.jsx)($.Z,{}),onClick:()=>{x({player:"",reason:""}),y(!0)},"aria-label":"Ban player",children:"Ban Player"})]}),l&&(0,t.jsx)(O.Z,{severity:"error",sx:{mb:2},children:l}),n&&(0,t.jsx)(s.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(N.Z,{})}),!n&&0===d.length&&(0,t.jsx)(o.Z,{color:"text.secondary",sx:{textAlign:"center",py:4},children:"No players banned"}),!n&&d.length>0&&(0,t.jsx)(f.Z,{dense:!0,children:d.map(e=>(0,t.jsxs)(Z.ZP,{secondaryAction:(0,t.jsx)(w.Z,{edge:"end","aria-label":"Unban player",onClick:()=>D(e.name),disabled:P===e.name,color:"success",children:P===e.name?(0,t.jsx)(N.Z,{size:20}):(0,t.jsx)(z.Z,{})}),children:[(0,t.jsx)(g.Z,{children:(0,t.jsx)(C.Z,{src:e.uuid?"https://mc-heads.net/avatar/".concat(e.uuid,"/40"):void 0,alt:e.name,sx:{bgcolor:"error.main"},children:(0,t.jsx)(B.Z,{})})}),(0,t.jsx)(b.Z,{primary:e.name,secondary:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(o.Z,{component:"span",variant:"body2",color:"text.secondary",children:["Reason: ",e.reason||"No reason specified"]}),(0,t.jsx)("br",{}),(0,t.jsxs)(o.Z,{component:"span",variant:"caption",color:"text.secondary",children:["Banned: ",A(e.created)," by ",e.source||"Unknown"]})]})})]},e.uuid||e.name))}),(0,t.jsxs)(E.Z,{open:h,onClose:T,maxWidth:"sm",fullWidth:!0,children:[(0,t.jsx)(F.Z,{children:"Ban Player"}),(0,t.jsx)(I.Z,{children:(0,t.jsxs)(W.Z,{spacing:2,sx:{mt:1},children:[(0,t.jsx)(R.Z,{label:"Player Name",placeholder:"Enter player name",value:p.player,onChange:e=>x({...p,player:e.target.value}),fullWidth:!0,required:!0}),(0,t.jsx)(R.Z,{label:"Reason",placeholder:"Banned by administrator",value:p.reason,onChange:e=>x({...p,reason:e.target.value}),fullWidth:!0,multiline:!0,rows:2})]})}),(0,t.jsxs)(q.Z,{children:[(0,t.jsx)(S.Z,{onClick:T,disabled:m,children:"Cancel"}),(0,t.jsx)(S.Z,{onClick:L,color:"error",variant:"contained",disabled:!p.player.trim()||m,startIcon:m?(0,t.jsx)(N.Z,{size:16}):(0,t.jsx)($.Z,{}),children:"Ban"})]})]})]})})}var G=n(92666);function V(e){let{children:r,value:n,index:a}=e;return(0,t.jsx)("div",{role:"tabpanel",hidden:n!==a,children:n===a&&(0,t.jsx)(s.Z,{sx:{py:3},children:r})})}function X(){let[e,r]=(0,a.useState)(0),[n,j]=(0,a.useState)(""),{data:v,isLoading:f}=(0,G.x$)(),Z=null==v?void 0:v.servers;return(0,a.useEffect)(()=>{!n&&Z&&Z.length>0&&j(Z[0].name)},[Z,n]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,x.Fq)(e.palette.info.main,.1)," 0%, ").concat((0,x.Fq)(e.palette.primary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,x.Fq)(e.palette.info.main,.2))},children:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,t.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"info.main",color:"info.contrastText"},children:(0,t.jsx)(m.Z,{sx:{fontSize:32}})}),(0,t.jsxs)(s.Z,{children:[(0,t.jsx)(o.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Player Management"}),(0,t.jsx)(o.Z,{variant:"body1",color:"text.secondary",children:"Manage players, whitelist, operators, and bans across your servers"})]})]})}),(0,t.jsx)(s.Z,{sx:{mb:3},children:(0,t.jsxs)(d.Z,{sx:{minWidth:200},children:[(0,t.jsx)(u.Z,{id:"server-select-label",children:"Server"}),(0,t.jsx)(h.Z,{labelId:"server-select-label",value:n,label:"Server",onChange:e=>j(e.target.value),disabled:f,children:null==Z?void 0:Z.map(e=>(0,t.jsx)(y.Z,{value:e.name,children:e.name},e.name))})]})}),(0,t.jsx)(s.Z,{sx:{borderBottom:1,borderColor:"divider"},children:(0,t.jsxs)(l.Z,{value:e,onChange:(e,n)=>{r(n)},"aria-label":"Player management tabs",children:[(0,t.jsx)(c.Z,{label:"Online Players"}),(0,t.jsx)(c.Z,{label:"Whitelist",disabled:!n}),(0,t.jsx)(c.Z,{label:"Operators",disabled:!n}),(0,t.jsx)(c.Z,{label:"Ban List",disabled:!n})]})}),(0,t.jsx)(V,{value:e,index:0,children:(0,t.jsx)(Q,{})}),(0,t.jsx)(V,{value:e,index:1,children:n&&(0,t.jsxs)(i.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(i.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(_,{serverName:n})}),(0,t.jsx)(i.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{p:2,bgcolor:"background.paper",borderRadius:1},children:[(0,t.jsx)(o.Z,{variant:"subtitle2",color:"text.secondary",gutterBottom:!0,children:"About Whitelist"}),(0,t.jsx)(o.Z,{variant:"body2",color:"text.secondary",children:"The whitelist controls which players can join your server. When enabled, only players on the whitelist can connect. Add players by their Minecraft username."})]})})]})}),(0,t.jsx)(V,{value:e,index:2,children:n&&(0,t.jsxs)(i.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(i.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(H,{serverName:n})}),(0,t.jsx)(i.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{p:2,bgcolor:"background.paper",borderRadius:1},children:[(0,t.jsx)(o.Z,{variant:"subtitle2",color:"text.secondary",gutterBottom:!0,children:"About Operators"}),(0,t.jsx)(o.Z,{variant:"body2",color:"text.secondary",children:"Operators (OPs) have elevated permissions on the server. They can use commands like /give, /gamemode, /tp, and more. OP levels range from 1-4, with 4 being the highest."}),(0,t.jsxs)(s.Z,{sx:{mt:2},children:[(0,t.jsx)(o.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 1: Can bypass spawn protection"}),(0,t.jsx)(o.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 2: Can use /clear, /gamemode, etc."}),(0,t.jsx)(o.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 3: Can use /ban, /kick, /op, etc."}),(0,t.jsx)(o.Z,{variant:"caption",color:"text.secondary",component:"div",children:"Level 4: Can use /stop, full access"})]})]})})]})}),(0,t.jsx)(V,{value:e,index:3,children:n&&(0,t.jsxs)(i.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(i.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(Y,{serverName:n})}),(0,t.jsx)(i.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{p:2,bgcolor:"background.paper",borderRadius:1},children:[(0,t.jsx)(o.Z,{variant:"subtitle2",color:"text.secondary",gutterBottom:!0,children:"About Bans"}),(0,t.jsx)(o.Z,{variant:"body2",color:"text.secondary",children:"Banned players cannot connect to your server. You can ban players by username and provide an optional reason. Bans can be removed (pardoned) at any time."})]})})]})})]})}},42936:function(e,r,n){"use strict";async function t(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={...r.headers};r.body&&(n["Content-Type"]="application/json");let t=await fetch(e,{...r,headers:n});if(!t.ok){let e=await t.json().catch(()=>({error:"UnknownError",message:t.statusText})),r=Error(e.message);throw r.statusCode=t.status,r.code=e.error,r}return t.json()}n.d(r,{SC:function(){return t}})},92666:function(e,r,n){"use strict";n.d(r,{Aw:function(){return u},Fv:function(){return j},Hq:function(){return c},Hy:function(){return l},MH:function(){return f},Sr:function(){return y},_I:function(){return h},g2:function(){return m},gx:function(){return Z},hy:function(){return p},iC:function(){return v},jM:function(){return d},nq:function(){return x},nv:function(){return b},x$:function(){return i}});var t=n(5632),a=n(58919),s=n(20367),o=n(42936);function i(){return(0,t.a)({queryKey:["servers"],queryFn:()=>(0,o.SC)("/api/servers"),refetchInterval:6e4})}function l(e,r){return(0,t.a)({queryKey:["servers",e],queryFn:()=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e))),enabled:(null==r?void 0:r.enabled)!==!1&&!!e,refetchInterval:3e4})}function c(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{name:r,force:n}=e;return(0,o.SC)("/api/servers/".concat(encodeURIComponent(r)).concat(n?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["servers"]})}})}function d(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/start"),{method:"POST"}),onSuccess:(r,n)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",n]})}})}function u(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/stop"),{method:"POST"}),onSuccess:(r,n)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",n]})}})}function h(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/restart"),{method:"POST"}),onSuccess:(r,n)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",n]})}})}function y(){return(0,t.a)({queryKey:["worlds"],queryFn:()=>(0,o.SC)("/api/worlds"),refetchInterval:3e4})}function p(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,o.SC)("/api/worlds",{method:"POST",body:JSON.stringify(e)}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function x(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{worldName:r,serverName:n}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(r),"/assign"),{method:"POST",body:JSON.stringify({serverName:n})})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}function m(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{worldName:r,force:n}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(r),"/release").concat(n?"?force=true":""),{method:"POST"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function j(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{name:r,force:n}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(r)).concat(n?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function v(e,r){return(0,t.a)({queryKey:["servers",e,"config"],queryFn:()=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/config")),enabled:(null==r?void 0:r.enabled)!==!1&&!!e})}function f(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>{let{serverName:r,config:n}=e;return(0,o.SC)("/api/servers/".concat(encodeURIComponent(r),"/config"),{method:"PATCH",body:JSON.stringify(n)})},onSuccess:(r,n)=>{let{serverName:t}=n;e.invalidateQueries({queryKey:["servers",t,"config"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function Z(){let e=(0,a.NL)();return(0,s.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/world/reset"),{method:"POST"}),onSuccess:(r,n)=>{e.invalidateQueries({queryKey:["servers",n]}),e.invalidateQueries({queryKey:["worlds"]})}})}function b(){return(0,t.a)({queryKey:["router-status"],queryFn:()=>(0,o.SC)("/api/router/status"),refetchInterval:3e4})}}},function(e){e.O(0,[6812,7220,6803,7294,1604,6877,540,1857,8063,8347,3418,8657,8809,3669,2757,1744],function(){return e(e.s=31809)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[148],{61943:function(e,r,n){Promise.resolve().then(n.bind(n,73046))},73046:function(e,r,n){"use strict";n.r(r),n.d(r,{default:function(){return O}});var t=n(94655),s=n(7281),i=n(84840),o=n(31317),a=n(10721),l=n(56877),c=n(628),u=n(41565),d=n(69899),x=n(76492),h=n(29983),m=n(92666),j=n(25333),f=n(21138),p=n(84811),y=n(70366),v=n(47001),Z=n(59602);let g={fontWeight:500,color:"text.secondary",border:0,width:"40%",py:1},b={border:0,py:1};function w(e){var r;let{router:n}=e,i=(r=n.mode)?r.includes("in-docker")||r.includes("auto-discovery")?{label:"Auto Discovery",color:"info"}:r.includes("mapping")?{label:"Manual Mapping",color:"warning"}:{label:r,color:"default"}:{label:"Unknown",color:"default"};return(0,t.jsx)(c.Z,{children:(0,t.jsxs)(u.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:2},children:[(0,t.jsx)(Z.Z,{color:"primary"}),(0,t.jsx)(o.Z,{variant:"h6",component:"h2",children:"Platform Information"})]}),(0,t.jsx)(f.Z,{size:"small",children:(0,t.jsxs)(p.Z,{children:[(0,t.jsxs)(y.Z,{children:[(0,t.jsx)(v.Z,{sx:g,children:"Router Name"}),(0,t.jsx)(v.Z,{sx:b,children:n.name})]}),(0,t.jsxs)(y.Z,{children:[(0,t.jsx)(v.Z,{sx:g,children:"Port"}),(0,t.jsx)(v.Z,{sx:b,children:n.port})]}),(0,t.jsxs)(y.Z,{children:[(0,t.jsx)(v.Z,{sx:g,children:"Mode"}),(0,t.jsx)(v.Z,{sx:b,children:(0,t.jsx)(j.Z,{label:i.label,size:"small",color:i.color,variant:"outlined"})})]}),(0,t.jsxs)(y.Z,{children:[(0,t.jsx)(v.Z,{sx:g,children:"Uptime"}),(0,t.jsx)(v.Z,{sx:b,children:n.uptime||"-"})]})]})})]})})}var S=n(62590),C=n(66561),q=n(12795),I=n(96407),F=n(81960);function K(e){switch(e){case"running":return"#4caf50";case"exited":case"dead":case"not_found":case"not_created":return"#f44336";case"created":case"restarting":case"paused":return"#ff9800";default:return"#9e9e9e"}}function N(e){let{status:r}=e;return(0,t.jsx)(S.Z,{title:r,arrow:!0,children:(0,t.jsx)(s.Z,{sx:{width:10,height:10,borderRadius:"50%",bgcolor:K(r),flexShrink:0,boxShadow:"running"===r?"0 0 6px ".concat(K(r)):"none"}})})}function R(e){let{router:r}=e,n=function(e){let r=new Map;for(let n of e){let e=n.target.replace(/^mc-/,"").replace(/:25565$/,""),t=r.get(e);t?t.hostnames.push(n.hostname):r.set(e,{status:n.serverStatus,hostnames:[n.hostname],serverType:n.serverType,serverVersion:n.serverVersion})}return r}(r.routes);return(0,t.jsx)(c.Z,{sx:{height:"100%"},children:(0,t.jsxs)(u.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:2},children:[(0,t.jsx)(h.Z,{color:"primary"}),(0,t.jsx)(o.Z,{variant:"h6",component:"h2",children:"MC-Router Status"}),(0,t.jsxs)(s.Z,{sx:{ml:"auto",display:"flex",gap:1},children:[(0,t.jsx)(j.Z,{label:r.status,size:"small",color:function(e){switch(e){case"running":return"success";case"exited":case"dead":case"not_found":case"not_created":return"error";case"created":case"restarting":case"paused":return"warning";default:return"default"}}(r.status)}),(0,t.jsx)(j.Z,{label:r.health,size:"small",color:function(e){switch(e){case"healthy":return"success";case"unhealthy":return"error";case"starting":return"warning";default:return"default"}}(r.health),variant:"outlined"})]})]}),(0,t.jsx)(o.Z,{variant:"subtitle2",sx:{mb:1,mt:3},children:"Routing Table"}),0===r.routes.length?(0,t.jsx)(o.Z,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No routes configured"}):(0,t.jsx)(s.Z,{sx:{mt:1},children:Array.from(n.entries()).map(e=>{let[r,{status:n,hostnames:i,serverType:a,serverVersion:l}]=e;return(0,t.jsxs)(C.Z,{defaultExpanded:!0,disableGutters:!0,elevation:0,sx:{border:1,borderColor:"divider","&:not(:last-child)":{borderBottom:0},"&::before":{display:"none"}},children:[(0,t.jsx)(q.Z,{expandIcon:(0,t.jsx)(F.Z,{}),children:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1,width:"100%",pr:1},children:[(0,t.jsx)(N,{status:n}),(0,t.jsx)(o.Z,{variant:"subtitle2",sx:{fontWeight:600},children:r}),(a||l)&&(0,t.jsx)(o.Z,{variant:"caption",color:"text.secondary",children:[a,l].filter(Boolean).join(" ")}),(0,t.jsxs)(o.Z,{variant:"caption",color:"text.secondary",sx:{ml:"auto"},children:[i.length," ",1===i.length?"route":"routes"]})]})}),(0,t.jsx)(I.Z,{sx:{pt:0},children:(0,t.jsx)(s.Z,{sx:{display:"flex",flexDirection:"column",gap:.5},children:i.map(e=>(0,t.jsx)(o.Z,{variant:"body2",sx:{fontFamily:"monospace",fontSize:"0.85rem",color:"text.secondary"},children:e},e))})})]},r)})})]})})}var D=n(21605);let P={fontWeight:500,color:"text.secondary",border:0,width:"40%",py:1},T={border:0,py:1};function k(e){var r;let{router:n}=e,i=n.routes.filter(e=>"running"===e.serverStatus).length,a=n.routes.length;return(0,t.jsx)(c.Z,{children:(0,t.jsxs)(u.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:2},children:[(0,t.jsx)(D.Z,{color:"primary"}),(0,t.jsx)(o.Z,{variant:"h6",component:"h2",children:"Network Settings"})]}),(0,t.jsx)(f.Z,{size:"small",children:(0,t.jsxs)(p.Z,{children:[(0,t.jsxs)(y.Z,{children:[(0,t.jsx)(v.Z,{sx:P,children:"Listening Port"}),(0,t.jsx)(v.Z,{sx:T,children:(0,t.jsx)(j.Z,{label:n.port,size:"small",variant:"outlined"})})]}),(0,t.jsxs)(y.Z,{children:[(0,t.jsx)(v.Z,{sx:P,children:"Routing Mode"}),(0,t.jsx)(v.Z,{sx:T,children:(0,t.jsx)(j.Z,{label:(r=n.mode)?r.includes("in-docker")||r.includes("auto-discovery")?"Auto Discovery":r.includes("mapping")?"Manual Mapping":r:"Unknown",size:"small",color:"info",variant:"outlined"})})]}),(0,t.jsxs)(y.Z,{children:[(0,t.jsx)(v.Z,{sx:P,children:"Total Routes"}),(0,t.jsx)(v.Z,{sx:T,children:a})]}),(0,t.jsxs)(y.Z,{children:[(0,t.jsx)(v.Z,{sx:P,children:"Active Routes"}),(0,t.jsx)(v.Z,{sx:T,children:(0,t.jsx)(j.Z,{label:"".concat(i," / ").concat(a),size:"small",color:i>0?"success":"default",variant:"outlined"})})]})]})})]})})}var Q=n(76544);function U(e){var r;let{avahi:n}=e,i=null!==(r=null==n?void 0:n.status)&&void 0!==r?r:"unknown";return(0,t.jsx)(c.Z,{children:(0,t.jsxs)(u.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:2},children:[(0,t.jsx)(Q.Z,{color:"primary"}),(0,t.jsx)(o.Z,{variant:"h6",component:"h2",children:"mDNS (Avahi)"}),(0,t.jsx)(j.Z,{label:i,size:"small",color:"running"===i?"success":i.includes("not running")?"warning":"not installed"===i?"error":"default",sx:{ml:"auto"}})]}),(0,t.jsxs)(o.Z,{variant:"body2",color:"text.secondary",children:["Avahi mDNS daemon enables ",(0,t.jsx)("code",{children:".local"})," hostname resolution for Minecraft servers on the local network."]})]})})}function L(e){let{rows:r}=e;return(0,t.jsx)(c.Z,{children:(0,t.jsxs)(u.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:2},children:[(0,t.jsx)(a.Z,{variant:"circular",width:24,height:24}),(0,t.jsx)(a.Z,{variant:"text",width:"50%",height:32})]}),[...Array(r)].map((e,r)=>(0,t.jsxs)(s.Z,{sx:{display:"flex",justifyContent:"space-between",py:.75},children:[(0,t.jsx)(a.Z,{variant:"text",width:"35%"}),(0,t.jsx)(a.Z,{variant:"text",width:"40%"})]},r))]})})}function E(){return(0,t.jsx)(c.Z,{sx:{height:"100%"},children:(0,t.jsxs)(u.Z,{children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:2},children:[(0,t.jsx)(a.Z,{variant:"circular",width:24,height:24}),(0,t.jsx)(a.Z,{variant:"text",width:"40%",height:32}),(0,t.jsxs)(s.Z,{sx:{ml:"auto",display:"flex",gap:1},children:[(0,t.jsx)(a.Z,{variant:"rounded",width:70,height:24}),(0,t.jsx)(a.Z,{variant:"rounded",width:70,height:24})]})]}),(0,t.jsx)(a.Z,{variant:"text",width:"30%",sx:{mt:3,mb:1}}),[0,1].map(e=>(0,t.jsxs)(s.Z,{sx:{border:1,borderColor:"divider",p:2,"&:not(:last-child)":{borderBottom:0}},children:[(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,t.jsx)(a.Z,{variant:"circular",width:10,height:10}),(0,t.jsx)(a.Z,{variant:"text",width:"25%"}),(0,t.jsx)(a.Z,{variant:"text",width:"15%"}),(0,t.jsx)(a.Z,{variant:"text",width:"10%",sx:{ml:"auto"}})]}),[0,1,2].map(e=>(0,t.jsx)(a.Z,{variant:"text",width:"70%",sx:{ml:2.5}},e))]},e))]})})}function O(){let{data:e,isLoading:r,error:n}=(0,m.nv)();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,x.Fq)(e.palette.primary.main,.1)," 0%, ").concat((0,x.Fq)(e.palette.secondary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,x.Fq)(e.palette.primary.main,.2))},children:(0,t.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,t.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"primary.main",color:"primary.contrastText"},children:(0,t.jsx)(h.Z,{sx:{fontSize:32}})}),(0,t.jsxs)(s.Z,{children:[(0,t.jsx)(o.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Routing"}),(0,t.jsx)(o.Z,{variant:"body1",color:"text.secondary",children:"Server routing and network configuration"})]})]})}),n&&(0,t.jsxs)(l.Z,{severity:"error",sx:{mb:3},children:["Failed to load router status: ",n.message]}),r?(0,t.jsxs)(i.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(i.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{display:"flex",flexDirection:"column",gap:3},children:[(0,t.jsx)(L,{rows:4}),(0,t.jsx)(L,{rows:4}),(0,t.jsx)(L,{rows:1})]})}),(0,t.jsx)(i.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(E,{})})]}):(null==e?void 0:e.router)?(0,t.jsxs)(i.ZP,{container:!0,spacing:3,children:[(0,t.jsx)(i.ZP,{item:!0,xs:12,md:4,children:(0,t.jsxs)(s.Z,{sx:{display:"flex",flexDirection:"column",gap:3},children:[(0,t.jsx)(w,{router:e.router}),(0,t.jsx)(k,{router:e.router}),(0,t.jsx)(U,{avahi:e.avahi})]})}),(0,t.jsx)(i.ZP,{item:!0,xs:12,md:8,children:(0,t.jsx)(R,{router:e.router})})]}):null]})}},42936:function(e,r,n){"use strict";async function t(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={...r.headers};r.body&&(n["Content-Type"]="application/json");let t=await fetch(e,{...r,headers:n});if(!t.ok){let e=await t.json().catch(()=>({error:"UnknownError",message:t.statusText})),r=Error(e.message);throw r.statusCode=t.status,r.code=e.error,r}return t.json()}n.d(r,{SC:function(){return t}})},92666:function(e,r,n){"use strict";n.d(r,{Aw:function(){return d},Fv:function(){return p},Hq:function(){return c},Hy:function(){return l},MH:function(){return v},Sr:function(){return h},_I:function(){return x},g2:function(){return f},gx:function(){return Z},hy:function(){return m},iC:function(){return y},jM:function(){return u},nq:function(){return j},nv:function(){return g},x$:function(){return a}});var t=n(5632),s=n(58919),i=n(20367),o=n(42936);function a(){return(0,t.a)({queryKey:["servers"],queryFn:()=>(0,o.SC)("/api/servers"),refetchInterval:6e4})}function l(e,r){return(0,t.a)({queryKey:["servers",e],queryFn:()=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e))),enabled:(null==r?void 0:r.enabled)!==!1&&!!e,refetchInterval:3e4})}function c(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:r,force:n}=e;return(0,o.SC)("/api/servers/".concat(encodeURIComponent(r)).concat(n?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["servers"]})}})}function u(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/start"),{method:"POST"}),onSuccess:(r,n)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",n]})}})}function d(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/stop"),{method:"POST"}),onSuccess:(r,n)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",n]})}})}function x(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/restart"),{method:"POST"}),onSuccess:(r,n)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",n]})}})}function h(){return(0,t.a)({queryKey:["worlds"],queryFn:()=>(0,o.SC)("/api/worlds"),refetchInterval:3e4})}function m(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/worlds",{method:"POST",body:JSON.stringify(e)}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function j(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:r,serverName:n}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(r),"/assign"),{method:"POST",body:JSON.stringify({serverName:n})})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}function f(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:r,force:n}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(r),"/release").concat(n?"?force=true":""),{method:"POST"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function p(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:r,force:n}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(r)).concat(n?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function y(e,r){return(0,t.a)({queryKey:["servers",e,"config"],queryFn:()=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/config")),enabled:(null==r?void 0:r.enabled)!==!1&&!!e})}function v(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{serverName:r,config:n}=e;return(0,o.SC)("/api/servers/".concat(encodeURIComponent(r),"/config"),{method:"PATCH",body:JSON.stringify(n)})},onSuccess:(r,n)=>{let{serverName:t}=n;e.invalidateQueries({queryKey:["servers",t,"config"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function Z(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/world/reset"),{method:"POST"}),onSuccess:(r,n)=>{e.invalidateQueries({queryKey:["servers",n]}),e.invalidateQueries({queryKey:["worlds"]})}})}function g(){return(0,t.a)({queryKey:["router-status"],queryFn:()=>(0,o.SC)("/api/router/status"),refetchInterval:3e4})}}},function(e){e.O(0,[6812,7220,6803,6877,540,1857,2590,9409,8657,1044,3669,2757,1744],function(){return e(e.s=61943)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[278],{59616:function(e,r,t){Promise.resolve().then(t.bind(t,54392))},54392:function(e,r,t){"use strict";t.r(r),t.d(r,{default:function(){return eC}});var s=t(94655),n=t(35106),o=t(74228),i=t(31358),l=t(7281),a=t(30417),c=t(79983),d=t(56877),x=t(93017),u=t(31317),h=t(35694),m=t(7178),p=t(17820),g=t(73424),j=t(99770),f=t(62508),v=t(5682),Z=t(76678),b=t(97436),y=t(76492),C=t(10117),w=t(5501),S=t(37809),k=t(21111),R=t(17978),P=t(89573),W=t(96292),F=t(33104),I=t(628),z=t(41565),M=t(25333),D=t(52082),A=t(84840),O=t(69123),B=t(71185),T=t(30165),E=t(97293),N=t(11259),L=t(66615),H=t(89161),U=t(34071),G=t(4405);function _(e){let{value:r,unit:t,label:n,icon:o,progress:i,progressMax:a,color:c="#1bd96a"}=e;return(0,s.jsxs)(I.Z,{"data-testid":"resource-stat-card",sx:{p:2.5,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",borderRadius:3},children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:2},children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"baseline",gap:.75,flexWrap:"wrap",minWidth:0},children:[(0,s.jsx)(u.Z,{variant:"h4",component:"span",sx:{fontWeight:700,color:"text.primary",fontFamily:"'JetBrains Mono', 'Fira Code', monospace",letterSpacing:"-0.5px"},children:r}),(0,s.jsx)(u.Z,{variant:"body2",component:"span",sx:{color:"text.secondary",fontWeight:500},children:t})]}),(0,s.jsx)(l.Z,{sx:{color:"text.secondary",flexShrink:0},children:o})]}),(0,s.jsx)(u.Z,{variant:"body2",sx:{color:"text.secondary",fontWeight:500,mt:.5},children:n}),(0,s.jsx)(G.Z,{variant:"determinate",value:Math.min(i/a*100,100),sx:{mt:1,height:6,borderRadius:1.5,bgcolor:"#2a2d3a","& .MuiLinearProgress-bar":{borderRadius:1.5,background:"linear-gradient(90deg, ".concat(c," 0%, ").concat(c,"cc 100%)")}}})]})}var q=t(163),K=t(73660),J=t(90158),Y=t(58347),V=t(10721),$=t(62590),Q=t(46725),X=t(26577),ee=t(56813),er=t(26892),et=t(84509);function es(e){var r;let{serverName:t}=e,{data:n,isLoading:o,error:i}=(0,et.HZ)(t,{limit:20});if(o)return(0,s.jsx)(l.Z,{children:[void 0,void 0,void 0,void 0,void 0].map((e,r)=>(0,s.jsxs)(l.Z,{sx:{display:"flex",gap:2,py:1.5},children:[(0,s.jsx)(V.Z,{variant:"rounded",width:60,height:24}),(0,s.jsx)(V.Z,{variant:"text",width:"60%"}),(0,s.jsx)(V.Z,{variant:"text",width:50})]},r))});if(i)return(0,s.jsxs)(d.Z,{severity:"error",children:["Failed to load activity: ",i.message]});let c=null!==(r=null==n?void 0:n.logs)&&void 0!==r?r:[];if(0===c.length)return(0,s.jsx)(u.Z,{variant:"body2",color:"text.secondary",sx:{py:4,textAlign:"center"},children:"No activity recorded for this server yet."});let x="/audit-logs?targetType=server&targetName=".concat(encodeURIComponent(t));return(0,s.jsxs)(l.Z,{children:[(0,s.jsx)(J.Z,{sx:{py:0},children:c.map(e=>{var r;return(0,s.jsx)(Y.ZP,{sx:{px:0,py:1.5,"&:not(:last-child)":{borderBottom:"1px solid",borderColor:"divider"}},children:(0,s.jsx)(g.Z,{primary:(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,s.jsx)(ee.I,{action:e.action,size:"small"}),(0,s.jsxs)(u.Z,{variant:"body2",color:"text.secondary",children:["by ",e.actor.replace("api:","").replace("cli:","")]}),(0,s.jsx)(er.c,{status:e.status,size:"small"})]}),secondary:(0,s.jsx)($.Z,{title:(r=e.timestamp,new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(new Date(r))),arrow:!0,children:(0,s.jsx)(u.Z,{variant:"caption",component:"span",color:"text.disabled",children:function(e){let r=new Date,t=new Date(e),s=Math.floor((r.getTime()-t.getTime())/6e4),n=Math.floor(s/60);return s<1?"just now":s<60?"".concat(s,"m ago"):n<24?"".concat(n,"h ago"):"".concat(Math.floor(n/24),"d ago")}(e.timestamp)})})})},e.id)})}),(0,s.jsx)(l.Z,{sx:{mt:2,textAlign:"center"},children:(0,s.jsx)(a.Z,{component:Q.default,href:x,size:"small",endIcon:(0,s.jsx)(X.Z,{}),sx:{textTransform:"none"},children:"View Full History"})})]})}var en=t(63696),eo=t(29793),ei=t(36660),el=t(40064),ea=t(38393),ec=t(37530),ed=t(5942),ex=t(84420),eu=t(46121),eh=t(84775),em=t(92666);function ep(e){var r,t;let{serverName:o,isRunning:i}=e,{data:c,isLoading:h}=(0,em.iC)(o),p=(0,em.MH)(),g=(0,em.gx)(),[y,C]=(0,n.useState)({}),[w,S]=(0,n.useState)(!1),[k,R]=(0,n.useState)(!1),[P,W]=(0,n.useState)(!1),[F,M]=(0,n.useState)(""),[D,B]=(0,n.useState)({open:!1,message:"",severity:"info"});(0,n.useEffect)(()=>{(null==c?void 0:c.config)&&C(c.config)},[c]);let T=(e,r)=>{C(t=>({...t,[e]:r})),S(!0),("memory"===e||"useAikarFlags"===e)&&R(!0)},E=async()=>{try{let e=await p.mutateAsync({serverName:o,config:y});B({open:!0,message:e.restartRequired?"Settings saved. Restart required for some changes to take effect.":"Settings saved successfully.",severity:e.restartRequired?"warning":"success"}),S(!1),R(!1)}catch(e){B({open:!0,message:e instanceof Error?e.message:"Failed to save settings",severity:"error"})}},N=async()=>{if("RESET"!==F){B({open:!0,message:"Please type RESET to confirm",severity:"warning"});return}try{await g.mutateAsync(o),B({open:!0,message:"World reset successfully",severity:"success"}),W(!1),M("")}catch(e){B({open:!0,message:e instanceof Error?e.message:"Failed to reset world",severity:"error"})}};return h?(0,s.jsx)(l.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:(0,s.jsx)(x.Z,{})}):(0,s.jsxs)(l.Z,{children:[k&&(0,s.jsx)(d.Z,{severity:"warning",icon:(0,s.jsx)(ex.Z,{}),sx:{mb:3},children:"Performance settings require a server restart to take effect."}),(0,s.jsx)(I.Z,{sx:{mb:3,borderRadius:3},children:(0,s.jsxs)(z.Z,{children:[(0,s.jsx)(u.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Server Properties"}),(0,s.jsx)(u.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"These settings can be changed without restarting the server."}),(0,s.jsx)(O.Z,{sx:{mb:3}}),(0,s.jsxs)(A.ZP,{container:!0,spacing:3,children:[(0,s.jsx)(A.ZP,{item:!0,xs:12,children:(0,s.jsx)(b.Z,{fullWidth:!0,label:"MOTD (Message of the Day)",value:y.motd||"",onChange:e=>T("motd",e.target.value),helperText:"The message displayed in the server list"})}),(0,s.jsx)(A.ZP,{item:!0,xs:12,sm:6,children:(0,s.jsx)(b.Z,{fullWidth:!0,type:"number",label:"Max Players",value:y.maxPlayers||20,onChange:e=>T("maxPlayers",parseInt(e.target.value,10)),inputProps:{min:1,max:100}})}),(0,s.jsx)(A.ZP,{item:!0,xs:12,sm:6,children:(0,s.jsxs)(eo.Z,{fullWidth:!0,children:[(0,s.jsx)(ei.Z,{children:"Difficulty"}),(0,s.jsxs)(en.Z,{value:y.difficulty||"normal",label:"Difficulty",onChange:e=>T("difficulty",e.target.value),children:[(0,s.jsx)(m.Z,{value:"peaceful",children:"Peaceful"}),(0,s.jsx)(m.Z,{value:"easy",children:"Easy"}),(0,s.jsx)(m.Z,{value:"normal",children:"Normal"}),(0,s.jsx)(m.Z,{value:"hard",children:"Hard"})]})]})}),(0,s.jsx)(A.ZP,{item:!0,xs:12,sm:6,children:(0,s.jsxs)(eo.Z,{fullWidth:!0,children:[(0,s.jsx)(ei.Z,{children:"Game Mode"}),(0,s.jsxs)(en.Z,{value:y.gameMode||"survival",label:"Game Mode",onChange:e=>T("gameMode",e.target.value),children:[(0,s.jsx)(m.Z,{value:"survival",children:"Survival"}),(0,s.jsx)(m.Z,{value:"creative",children:"Creative"}),(0,s.jsx)(m.Z,{value:"adventure",children:"Adventure"}),(0,s.jsx)(m.Z,{value:"spectator",children:"Spectator"})]})]})}),(0,s.jsx)(A.ZP,{item:!0,xs:12,sm:6,children:(0,s.jsx)(el.Z,{control:(0,s.jsx)(ea.Z,{checked:null===(r=y.pvp)||void 0===r||r,onChange:e=>T("pvp",e.target.checked)}),label:"Enable PvP"})}),(0,s.jsx)(A.ZP,{item:!0,xs:12,sm:6,children:(0,s.jsx)(b.Z,{fullWidth:!0,type:"number",label:"View Distance (chunks)",value:y.viewDistance||10,onChange:e=>T("viewDistance",parseInt(e.target.value,10)),inputProps:{min:3,max:32}})}),(0,s.jsx)(A.ZP,{item:!0,xs:12,sm:6,children:(0,s.jsx)(b.Z,{fullWidth:!0,type:"number",label:"Spawn Protection (blocks)",value:y.spawnProtection||16,onChange:e=>T("spawnProtection",parseInt(e.target.value,10)),inputProps:{min:0,max:128}})})]})]})}),(0,s.jsx)(I.Z,{sx:{mb:3,borderRadius:3},children:(0,s.jsxs)(z.Z,{children:[(0,s.jsx)(u.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Performance Settings"}),(0,s.jsx)(u.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"These settings require a server restart to take effect."}),(0,s.jsx)(O.Z,{sx:{mb:3}}),(0,s.jsxs)(A.ZP,{container:!0,spacing:3,children:[(0,s.jsx)(A.ZP,{item:!0,xs:12,sm:6,children:(0,s.jsx)(b.Z,{fullWidth:!0,label:"Memory Allocation",value:y.memory||"4G",onChange:e=>T("memory",e.target.value),helperText:"Format: 4G, 8G, etc."})}),(0,s.jsx)(A.ZP,{item:!0,xs:12,sm:6,children:(0,s.jsx)(el.Z,{control:(0,s.jsx)(ea.Z,{checked:null!==(t=y.useAikarFlags)&&void 0!==t&&t,onChange:e=>T("useAikarFlags",e.target.checked)}),label:"Use Aikar's Flags (Optimized GC)"})})]})]})}),(0,s.jsx)(l.Z,{sx:{display:"flex",justifyContent:"flex-end",mb:3},children:(0,s.jsx)(a.Z,{variant:"contained",size:"large",startIcon:(0,s.jsx)(ed.Z,{}),onClick:E,disabled:!w||p.isPending,sx:{px:4},children:p.isPending?"Saving...":"Save Changes"})}),(0,s.jsx)(I.Z,{sx:{borderRadius:3,borderColor:"error.main",borderWidth:1,borderStyle:"solid"},children:(0,s.jsxs)(z.Z,{children:[(0,s.jsx)(u.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,color:"error",children:"Danger Zone"}),(0,s.jsx)(O.Z,{sx:{mb:3}}),(0,s.jsxs)(l.Z,{sx:{mb:3},children:[(0,s.jsx)(u.Z,{variant:"subtitle1",fontWeight:600,gutterBottom:!0,children:"Reset World"}),(0,s.jsx)(u.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"This will permanently delete the current world and generate a new one. This action cannot be undone."}),(0,s.jsx)(a.Z,{variant:"outlined",color:"error",startIcon:(0,s.jsx)(eh.Z,{}),onClick:()=>W(!0),disabled:i,children:"Reset World"}),i&&(0,s.jsx)(u.Z,{variant:"caption",color:"text.secondary",sx:{ml:2},children:"Stop the server first"})]})]})}),(0,s.jsxs)(j.Z,{open:P,onClose:()=>W(!1),maxWidth:"sm",fullWidth:!0,children:[(0,s.jsx)(f.Z,{children:(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,s.jsx)(ex.Z,{color:"error"}),(0,s.jsx)(u.Z,{variant:"h6",fontWeight:600,children:"Reset World"})]})}),(0,s.jsxs)(v.Z,{children:[(0,s.jsxs)(u.Z,{variant:"body1",gutterBottom:!0,children:["This will permanently delete the world for ",(0,s.jsx)("strong",{children:o})," and generate a new one."]}),(0,s.jsx)(u.Z,{variant:"body2",color:"text.secondary",gutterBottom:!0,children:"This action cannot be undone. All player progress and builds will be lost."}),(0,s.jsx)(b.Z,{fullWidth:!0,label:"Type RESET to confirm",value:F,onChange:e=>M(e.target.value),sx:{mt:3},autoFocus:!0})]}),(0,s.jsxs)(Z.Z,{children:[(0,s.jsx)(a.Z,{onClick:()=>W(!1),children:"Cancel"}),(0,s.jsx)(a.Z,{variant:"contained",color:"error",onClick:N,disabled:"RESET"!==F||g.isPending,startIcon:g.isPending?(0,s.jsx)(x.Z,{size:16}):(0,s.jsx)(eu.Z,{}),children:g.isPending?"Resetting...":"Reset World"})]})]}),(0,s.jsx)(ec.Z,{open:D.open,autoHideDuration:6e3,onClose:()=>B({...D,open:!1}),anchorOrigin:{vertical:"bottom",horizontal:"right"},children:(0,s.jsx)(d.Z,{onClose:()=>B({...D,open:!1}),severity:D.severity,sx:{width:"100%"},children:D.message})})]})}let eg=["Overview","Activity","Content","Files","Backups","Options"];function ej(e){return e.replace(/\x1b\[\?[\d;]*[a-zA-Z]/g,"").replace(/\x1b\[[0-9;]*[a-zA-Z]/g,"").replace(/\x1b=/g,"").replace(/\[\?[\d;]*[a-zA-Z]/g,"").replace(/\[[0-9;]*[a-zA-Z]/g,"").replace(/\[m/g,"").replace(/>\.\.\.\.\r?/g,"").replace(/\r/g,"").trim()}function ef(e){var r,t,o,i,d;let{server:x,onSendCommand:h}=e,[m,p]=(0,n.useState)("Overview"),[g,f]=(0,n.useState)(""),[Z,C]=(0,n.useState)(!0),[w,S]=(0,n.useState)(!1),k=(0,n.useRef)(null),{logs:R,isConnected:P}=(0,q.Y)({serverName:x.name}),W=(0,n.useMemo)(()=>R.filter(e=>!e.includes("RCON Listener")&&!e.includes("RCON Client")&&!e.includes("RconClient")),[R]);(0,n.useEffect)(()=>{k.current&&Z&&(k.current.scrollTop=k.current.scrollHeight)},[W,Z]);let F=async()=>{g.trim()&&h&&(await h(g.trim()),f(""))},G=null!==(i=null===(r=x.stats)||void 0===r?void 0:r.cpuPercent)&&void 0!==i?i:0;(null===(t=x.stats)||void 0===t?void 0:t.memoryUsage)&&x.stats.memoryUsage,function(e){if(!e)return;let r=e.match(/^(\d+)\s*(M|G)?$/i);if(r)parseInt(r[1],10),(r[2]||"M").toUpperCase()}(x.memory);let J=null!==(d=null===(o=x.stats)||void 0===o?void 0:o.memoryPercent)&&void 0!==d?d:0;return(0,s.jsxs)(l.Z,{children:[(0,s.jsx)(l.Z,{sx:{display:"flex",gap:.5,mb:3},children:eg.map(e=>(0,s.jsx)(a.Z,{onClick:()=>p(e),sx:{px:2,py:1,borderRadius:5,fontSize:14,fontWeight:500,textTransform:"none",bgcolor:m===e?"primary.main":"transparent",color:m===e?"#0a0e14":"text.secondary","&:hover":{bgcolor:m===e?"primary.main":(0,y.Fq)("#1bd96a",.1)}},children:e},e))}),(0,s.jsxs)(l.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(3, 1fr)"},gap:2,mb:2.5},children:[(0,s.jsx)(_,{value:"".concat(G.toFixed(2),"%"),unit:"/ 100%",label:"CPU usage",icon:(0,s.jsx)(T.Z,{sx:{fontSize:28}}),progress:G,progressMax:100,color:"#1bd96a"}),(0,s.jsx)(_,{value:"".concat(J.toFixed(2),"%"),unit:"/ 100%",label:"Memory usage",icon:(0,s.jsx)(E.Z,{sx:{fontSize:28}}),progress:J,progressMax:100,color:"#1bd96a"}),(0,s.jsx)(_,{value:x.worldSize||"0 B",unit:"/ 10 GB",label:"World size",icon:(0,s.jsx)(N.Z,{sx:{fontSize:28}}),progress:function(e){if(!e)return 0;let r=e.match(/^([\d.]+)\s*(B|KB|MB|MiB|GB|GiB)?$/i);if(!r)return 0;let t=parseFloat(r[1]);switch((r[2]||"B").toUpperCase()){case"GB":case"GIB":return 1024*t;case"MB":case"MIB":return t;case"KB":return t/1024;default:return t/1048576}}(x.worldSize),progressMax:10240,color:"#1bd96a"})]}),(0,s.jsxs)(I.Z,{sx:{bgcolor:"background.paper",borderRadius:3,border:"1px solid",borderColor:"divider",overflow:"hidden"},children:[(0,s.jsxs)(l.Z,{sx:{px:3,py:2,borderBottom:"1px solid",borderColor:"divider",display:"flex",alignItems:"center",gap:1.25},children:[(0,s.jsx)(u.Z,{variant:"h6",sx:{fontWeight:700,color:"text.primary"},children:"Console"}),(0,s.jsx)(l.Z,{sx:{width:10,height:10,borderRadius:"50%",bgcolor:P?"primary.main":"error.main",boxShadow:P?"0 0 8px rgba(27, 217, 106, 0.4)":"0 0 8px rgba(239, 68, 68, 0.4)"}})]}),(0,s.jsxs)(l.Z,{sx:{position:"relative"},children:[(0,s.jsx)(l.Z,{ref:k,onScroll:()=>{if(!k.current)return;let{scrollTop:e,scrollHeight:r,clientHeight:t}=k.current;C(r-e-t<30)},sx:{height:360,overflowY:"auto",px:2.5,py:2,fontFamily:"'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'Consolas', monospace",fontSize:13,lineHeight:1.85,color:"#b4b6c4",bgcolor:"#0a0a0a",scrollbarWidth:"thin",scrollbarColor:"#3a3d4e #0a0a0a","&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"#0a0a0a"},"&::-webkit-scrollbar-thumb":{bgcolor:"#3a3d4e",borderRadius:4}},children:0===W.length?(0,s.jsx)(u.Z,{sx:{color:"text.secondary",textAlign:"center",py:8},children:"Waiting for logs..."}):W.map((e,r)=>{let t=function(e){let r=ej(e).match(/\[(\d{2}:\d{2}:\d{2})\]\s*\[([^/]+)\/(\w+)\]:\s*(.+)/);return r?{time:r[1],thread:r[2],level:r[3]||"INFO",msg:r[4]}:null}(e);return t?(0,s.jsxs)(l.Z,{sx:{display:"flex",gap:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:[(0,s.jsxs)(l.Z,{component:"span",sx:{color:"#4a4d60"},children:["[",t.time,"]"]}),(0,s.jsxs)(l.Z,{component:"span",sx:{color:"#4a4d60"},children:["\xa0[",t.thread,"/",(0,s.jsx)(l.Z,{component:"span",sx:{color:"WARN"===t.level?"#e8a848":"#6b6e80"},children:t.level}),"]:\xa0"]}),(0,s.jsx)(l.Z,{component:"span",sx:{color:"WARN"===t.level?"#c4a45a":"#b4b6c4"},children:t.msg})]},r):(0,s.jsx)(l.Z,{sx:{color:"#b4b6c4"},children:ej(e)},r)})}),(0,s.jsx)(c.Z,{onClick:()=>S(!0),sx:{position:"absolute",top:12,right:12,width:36,height:36,borderRadius:2,bgcolor:"#282a3a",border:"1px solid #3a3d4e",color:"#8b8da0","&:hover":{bgcolor:"#313440"}},children:(0,s.jsx)(L.Z,{sx:{fontSize:18}})}),!Z&&(0,s.jsx)(c.Z,{onClick:()=>{k.current&&k.current.scrollTo({top:k.current.scrollHeight,behavior:"smooth"})},sx:{position:"absolute",bottom:12,right:12,width:36,height:36,borderRadius:2,bgcolor:"#282a3a",border:"1px solid #3a3d4e",color:"#8b8da0","&:hover":{bgcolor:"#313440"}},children:(0,s.jsx)(H.Z,{sx:{fontSize:18}})})]}),(0,s.jsx)(l.Z,{sx:{px:2.5,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:(0,s.jsx)(b.Z,{fullWidth:!0,size:"small",placeholder:"Send a command",value:g,onChange:e=>f(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),F())},disabled:!P,InputProps:{startAdornment:(0,s.jsx)(D.Z,{position:"start",children:(0,s.jsx)(U.Z,{sx:{fontSize:16,color:"#999"}})}),sx:{bgcolor:"#13141c",borderRadius:2,fontFamily:"'JetBrains Mono', 'Fira Code', monospace",fontSize:14,"& .MuiOutlinedInput-notchedOutline":{borderColor:"#2a2d3e"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"#3a3d4e"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"}}}})})]}),"Overview"===m&&(0,s.jsxs)(A.ZP,{container:!0,spacing:3,sx:{mt:1},children:[(0,s.jsx)(A.ZP,{item:!0,xs:12,md:6,children:(0,s.jsx)(I.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(z.Z,{children:[(0,s.jsx)(u.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Server Information"}),(0,s.jsx)(O.Z,{sx:{mb:2}}),(0,s.jsx)(ev,{label:"Name",value:x.name}),(0,s.jsx)(ev,{label:"Container",value:x.container}),(0,s.jsx)(ev,{label:"Hostname",value:x.hostname}),(0,s.jsx)(ev,{label:"Type",value:x.type}),(0,s.jsx)(ev,{label:"Version",value:x.version}),(0,s.jsx)(ev,{label:"Memory",value:x.memory}),(0,s.jsx)(ev,{label:"Uptime",value:x.uptime||function(e){if(!e||e<0)return"0s";let r=Math.floor(e/3600),t=Math.floor(e%3600/60),s=e%60;return r>0?"".concat(r,"h ").concat(t,"m"):t>0?"".concat(t,"m ").concat(s,"s"):"".concat(s,"s")}(x.uptimeSeconds)})]})})}),(0,s.jsx)(A.ZP,{item:!0,xs:12,md:6,children:(0,s.jsx)(I.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(z.Z,{children:[(0,s.jsx)(u.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Players"}),(0,s.jsx)(O.Z,{sx:{mb:2}}),x.players?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(ev,{label:"Online",value:"".concat(x.players.online," / ").concat(x.players.max)}),x.players.list&&x.players.list.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u.Z,{variant:"body2",color:"text.secondary",sx:{mt:2,mb:1},children:"Online Players"}),(0,s.jsx)(l.Z,{sx:{display:"flex",flexWrap:"wrap",gap:1},children:x.players.list.map(e=>(0,s.jsx)(M.Z,{label:e,size:"small"},e))})]})]}):(0,s.jsx)(u.Z,{variant:"body2",color:"text.secondary",children:"Player information unavailable"})]})})})]}),"Activity"===m&&(0,s.jsx)(l.Z,{sx:{mt:3},children:(0,s.jsx)(I.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(z.Z,{children:[(0,s.jsx)(u.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Server Activity"}),(0,s.jsx)(O.Z,{sx:{mb:2}}),(0,s.jsx)(es,{serverName:x.name})]})})}),"Content"===m&&(0,s.jsx)(l.Z,{sx:{mt:3},children:(0,s.jsx)(u.Z,{variant:"body1",color:"text.secondary",children:"Content management coming soon"})}),"Files"===m&&(0,s.jsx)(l.Z,{sx:{mt:3},children:(0,s.jsx)(u.Z,{variant:"body1",color:"text.secondary",children:"File browser coming soon"})}),"Backups"===m&&(0,s.jsx)(l.Z,{sx:{mt:3},children:(0,s.jsx)(u.Z,{variant:"body1",color:"text.secondary",children:"Backup management coming soon"})}),"Options"===m&&(0,s.jsx)(l.Z,{sx:{mt:3},children:(0,s.jsx)(ep,{serverName:x.name,isRunning:"running"===x.status})}),(0,s.jsxs)(j.Z,{open:w,onClose:()=>S(!1),maxWidth:"xl",fullWidth:!0,PaperProps:{sx:{height:"90vh",bgcolor:"background.paper"}},children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",p:2,borderBottom:1,borderColor:"divider"},children:[(0,s.jsxs)(u.Z,{variant:"h6",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,letterSpacing:"0.05em"},children:["Console - ",x.name]}),(0,s.jsx)(c.Z,{onClick:()=>S(!1),children:(0,s.jsx)(B.Z,{})})]}),(0,s.jsx)(v.Z,{sx:{p:0,display:"flex",flexDirection:"column"},children:(0,s.jsx)(K.K,{serverName:x.name})})]})]})}function ev(e){let{label:r,value:t}=e;return t?(0,s.jsxs)(l.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[(0,s.jsx)(u.Z,{variant:"body2",color:"text.secondary",children:r}),(0,s.jsx)(u.Z,{variant:"body2",sx:{fontWeight:500},children:t})]}):null}var eZ=t(93757);function eb(){return(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,s.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12"})]})}function ey(){return(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("path",{d:"M21 2v6h-6"}),(0,s.jsx)("path",{d:"M3 12a9 9 0 0115.36-6.36L21 8"}),(0,s.jsx)("path",{d:"M3 22v-6h6"}),(0,s.jsx)("path",{d:"M21 12a9 9 0 01-15.36 6.36L3 16"})]})}function eC(){var e,r,t,I,z,M,D,A;let O=(0,o.useParams)(),B=(0,i.x)(),T=decodeURIComponent(O.name),{data:E,isLoading:N,error:L}=(0,em.Hy)(T),{status:H,health:U}=function(e){let{serverName:r,onStatusChange:t,enabled:s=!0,reconnectInterval:o=3e3}=e,[i,l]=(0,n.useState)(null),[a,c]=(0,n.useState)(null);(0,n.useEffect)(()=>{l(null),c(null)},[r]);let d=(0,n.useCallback)(e=>{if("server-status"===e.type){let r=e.data.status,s=e.data.health;l(r),c(s),null==t||t(r,s)}},[t]),{isConnected:x,reconnect:u,retryCount:h}=(0,eZ.D)({url:"/api/sse/servers/".concat(encodeURIComponent(r),"/status"),onMessage:d,enabled:s,reconnectInterval:o});return{status:i,health:a,isConnected:x,reconnect:u,retryCount:h}}({serverName:T,enabled:!!T}),[G,_]=(0,n.useState)(null),[q,K]=(0,n.useState)(!1),[J,Y]=(0,n.useState)(""),V=(0,em.jM)(),$=(0,em.Aw)(),Q=(0,em._I)(),X=(0,em.Hq)(),ee=async()=>{try{await V.mutateAsync(T)}catch(e){console.error("Failed to start server:",e)}},er=async()=>{try{await $.mutateAsync(T)}catch(e){console.error("Failed to stop server:",e)}},et=async()=>{try{await Q.mutateAsync(T)}catch(e){console.error("Failed to restart server:",e)}},es=async e=>{try{await fetch("/api/servers/".concat(encodeURIComponent(T),"/exec"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:e})})}catch(e){console.error("Failed to send command:",e)}},en=H||(null==E?void 0:E.server.status),eo=V.isPending||$.isPending||Q.isPending,ei=null==E?void 0:E.server;return(0,s.jsxs)(s.Fragment,{children:[L&&(0,s.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to load server: ",L.message]}),V.isError&&(0,s.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to start server: ",null===(e=V.error)||void 0===e?void 0:e.message]}),$.isError&&(0,s.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to stop server: ",null===(r=$.error)||void 0===r?void 0:r.message]}),Q.isError&&(0,s.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to restart server: ",null===(t=Q.error)||void 0===t?void 0:t.message]}),X.isError&&(0,s.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to delete server: ",null===(I=X.error)||void 0===I?void 0:I.message]}),N?(0,s.jsx)(l.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:(0,s.jsx)(x.Z,{})}):ei?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:2,mb:2.5},children:[(0,s.jsxs)(l.Z,{sx:{width:64,height:64,borderRadius:3,overflow:"hidden",bgcolor:"background.paper",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"1px solid",borderColor:"divider",fontSize:36},children:[(null===(z=ei.type)||void 0===z?void 0:z.toLowerCase().includes("fabric"))&&"\uD83E\uDDF5",(null===(M=ei.type)||void 0===M?void 0:M.toLowerCase().includes("forge"))&&"\uD83D\uDD28",(null===(D=ei.type)||void 0===D?void 0:D.toLowerCase().includes("paper"))&&"\uD83D\uDCC4",(null===(A=ei.type)||void 0===A?void 0:A.toLowerCase().includes("spigot"))&&"\uD83D\uDD0C",!ei.type&&"\uD83C\uDFAE"]}),(0,s.jsxs)(l.Z,{sx:{flex:1},children:[(0,s.jsxs)(u.Z,{onClick:()=>B.push("/servers"),sx:{fontSize:12,color:"primary.main",cursor:"pointer",mb:.25,display:"flex",alignItems:"center",gap:.5,"&:hover":{textDecoration:"underline"}},children:[(0,s.jsx)(C.Z,{sx:{fontSize:14}})," All servers"]}),(0,s.jsx)(u.Z,{variant:"h4",component:"h1",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,color:"text.primary",letterSpacing:"0.5px",m:0,textTransform:"uppercase"},children:T}),(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:0,mt:.75,flexWrap:"wrap",fontSize:13,color:"text.secondary"},children:[ei.version&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,s.jsx)(R.Z,{sx:{fontSize:14}}),"Minecraft ",ei.version]}),(0,s.jsx)(l.Z,{component:"span",sx:{mx:1.25,color:"#3a3d4e"},children:"|"})]}),ei.type&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,s.jsx)(P.Z,{sx:{fontSize:14}}),ei.type]}),(0,s.jsx)(l.Z,{component:"span",sx:{mx:1.25,color:"#3a3d4e"},children:"|"})]}),ei.hostname&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,s.jsx)(W.Z,{sx:{fontSize:14}}),ei.hostname]}),(0,s.jsx)(l.Z,{component:"span",sx:{mx:1.25,color:"#3a3d4e"},children:"|"})]}),(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[(0,s.jsx)(F.Z,{sx:{fontSize:14}}),ei.uptime||function(e){if(!e||e<0)return"0s";let r=Math.floor(e/3600),t=Math.floor(e%3600/60),s=e%60;return r>0?"".concat(r,"h ").concat(t,"m"):t>0?"".concat(t,"m ").concat(s,"s"):"".concat(s,"s")}(ei.uptimeSeconds)||"0s"]})]})]}),(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1.25,flexShrink:0},children:[("stopped"===en||"exited"===en||"not_created"===en)&&(0,s.jsx)(a.Z,{variant:"contained",color:"success",startIcon:eo?(0,s.jsx)(x.Z,{size:16,color:"inherit"}):(0,s.jsx)(w.Z,{}),onClick:ee,disabled:eo,sx:{px:2,py:1,borderRadius:2,fontSize:14,fontWeight:600},children:"Start"}),"running"===en&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.Z,{variant:"outlined",startIcon:eo?(0,s.jsx)(x.Z,{size:16}):(0,s.jsx)(eb,{}),onClick:er,disabled:eo,sx:{px:2,py:1,borderRadius:2,fontSize:14,fontWeight:500,borderColor:"divider",color:"text.secondary","&:hover":{borderColor:"text.secondary",bgcolor:(0,y.Fq)("#fff",.05)}},children:"Stop"}),(0,s.jsx)(a.Z,{variant:"contained",startIcon:eo?(0,s.jsx)(x.Z,{size:16,color:"inherit"}):(0,s.jsx)(ey,{}),onClick:et,disabled:eo,sx:{px:2,py:1,borderRadius:2,fontSize:14,fontWeight:600,bgcolor:"primary.main",color:"#0a0e14","&:hover":{bgcolor:"primary.dark"}},children:"Restart"})]}),(0,s.jsx)(c.Z,{onClick:e=>_(e.currentTarget),sx:{width:36,height:36,borderRadius:2,border:"1px solid",borderColor:"divider",color:"text.secondary"},children:(0,s.jsx)(S.Z,{sx:{fontSize:18}})}),(0,s.jsx)(h.Z,{anchorEl:G,open:!!G,onClose:()=>_(null),children:(0,s.jsxs)(m.Z,{onClick:()=>{_(null),K(!0),Y("")},sx:{color:"error.main"},children:[(0,s.jsx)(p.Z,{children:(0,s.jsx)(k.Z,{fontSize:"small",sx:{color:"error.main"}})}),(0,s.jsx)(g.Z,{children:"Delete Server"})]})})]})]}),(0,s.jsx)(ef,{server:ei,onSendCommand:es})]}):(0,s.jsx)(d.Z,{severity:"warning",children:"Server not found"}),(0,s.jsxs)(j.Z,{open:q,onClose:()=>{K(!1),Y("")},maxWidth:"sm",fullWidth:!0,children:[(0,s.jsx)(f.Z,{children:"Delete Server"}),(0,s.jsxs)(v.Z,{children:[(0,s.jsxs)(u.Z,{sx:{mb:2},children:["This action cannot be undone. Type ",(0,s.jsx)("strong",{children:T})," to confirm deletion."]}),(0,s.jsx)(b.Z,{label:"Server name",value:J,onChange:e=>Y(e.target.value),fullWidth:!0,autoFocus:!0})]}),(0,s.jsxs)(Z.Z,{sx:{px:3,pb:2},children:[(0,s.jsx)(a.Z,{onClick:()=>{K(!1),Y("")},children:"Cancel"}),(0,s.jsx)(a.Z,{variant:"contained",color:"error",onClick:()=>{J===T&&X.mutate({name:T,force:!0},{onSuccess:()=>{B.push("/servers")}})},disabled:J!==T||X.isPending,startIcon:X.isPending?(0,s.jsx)(x.Z,{size:16}):null,children:X.isPending?"Deleting...":"Delete"})]})]})]})}},73660:function(e,r,t){"use strict";t.d(r,{K:function(){return R}});var s=t(94655),n=t(35106),o=t(18844),i=t.n(o),l=t(7281),a=t(69899),c=t(97436),d=t(30417),x=t(90829),u=t(79983),h=t(31317),m=t(25333),p=t(40064),g=t(45547),j=t(70115),f=t(69123),v=t(93017),Z=t(11141),b=t(19127),y=t(69366),C=t(163);let w=[{label:"say",template:"say "},{label:"give",template:"give "},{label:"tp",template:"tp "},{label:"gamemode",template:"gamemode "}],S=new(i())({fg:"#aaa",bg:"#000",newline:!1,escapeXML:!0,colors:{0:"#000000",1:"#cc0000",2:"#4e9a06",3:"#c4a000",4:"#3465a4",5:"#75507b",6:"#06989a",7:"#d3d7cf",8:"#555753",9:"#ef2929",10:"#8ae234",11:"#fce94f",12:"#729fcf",13:"#ad7fa8",14:"#34e2e2",15:"#eeeeec"}}),k=(0,n.memo)(function(e){let{log:r}=e,t=(0,n.useMemo)(()=>(function(e){let r=e.replace(/\x1b\[\?[\d;]*[a-zA-Z]/g,"").replace(/\x1b\[[0-9;]*[KJH]/g,"").replace(/\x1b=/g,"").replace(/\[\?[\d;]*[a-zA-Z]/g,"").replace(/\[[0-9;]*[KJH]/g,"").replace(/\[m/g,"").replace(/\[(\d+)m/g,"\x1b[$1m").replace(/>\.\.\.\.\r?/g,"").replace(/\r/g,"");return S.toHtml(r)})(r),[r]);return(0,s.jsx)(l.Z,{sx:{py:.25,whiteSpace:"pre-wrap",wordBreak:"break-all","& span":{}},dangerouslySetInnerHTML:{__html:t}})});function R(e){let{serverName:r}=e,[t,o]=(0,n.useState)(""),[i,S]=(0,n.useState)([]),[R,P]=(0,n.useState)(-1),[W,F]=(0,n.useState)("ALL"),[I,z]=(0,n.useState)(!0),[M,D]=(0,n.useState)(!0),[A,O]=(0,n.useState)(!1),B=(0,n.useRef)(null),T=(0,n.useRef)(null),{logs:E,isConnected:N,clearLogs:L,reconnect:H,retryCount:U}=(0,C.Y)({serverName:r}),G=(0,n.useMemo)(()=>{let e=E;return M&&(e=e.filter(e=>!e.includes("RCON Listener")&&!e.includes("RCON Client")&&!e.includes("RconClient"))),"ALL"!==W&&(e=e.filter(e=>(e.includes("/ERROR]")||e.includes("/ERROR:")?"ERROR":e.includes("/WARN]")||e.includes("/WARN:")?"WARN":(e.includes("/INFO]")||e.includes("/INFO:"),"INFO"))===W)),e},[E,W,M]);(0,n.useEffect)(()=>{I&&T.current&&(T.current.scrollTop=T.current.scrollHeight)},[G,I]);let _=(0,n.useCallback)(async()=>{let e=t.trim();if(e&&!A){O(!0);try{S(r=>[...r,e]),P(-1),await fetch("/api/servers/".concat(encodeURIComponent(r),"/exec"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:e})}),o("")}catch(e){console.error("Failed to execute command:",e)}finally{O(!1)}}},[t,r,A]),q=(0,n.useCallback)(e=>{if("Enter"===e.key)e.preventDefault(),_();else if("ArrowUp"===e.key){if(e.preventDefault(),0===i.length)return;let r=-1===R?i.length-1:Math.max(0,R-1);P(r),o(i[r])}else if("ArrowDown"===e.key){if(e.preventDefault(),-1===R)return;let r=R+1;r>=i.length?(P(-1),o("")):(P(r),o(i[r]))}},[i,R,_]),K=(0,n.useCallback)(e=>{var r;o(e),null===(r=B.current)||void 0===r||r.focus()},[]),J=N?{text:"Connected",color:"success"}:U>0?{text:"Disconnected (Retry ".concat(U,")"),color:"warning"}:{text:"Disconnected",color:"error"};return(0,s.jsxs)(a.Z,{"data-testid":"server-console",sx:{display:"flex",flexDirection:"column",height:"100%",minHeight:400},children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1,borderBottom:1,borderColor:"divider"},children:[(0,s.jsxs)(j.Z,{direction:"row",spacing:1,alignItems:"center",children:[(0,s.jsx)(h.Z,{variant:"subtitle2",children:"Console"}),(0,s.jsx)(m.Z,{"data-testid":"connection-status",label:J.text,color:J.color,size:"small"})]}),(0,s.jsxs)(j.Z,{direction:"row",spacing:1,alignItems:"center",children:[(0,s.jsx)(x.Z,{size:"small",variant:"outlined",children:["ALL","INFO","WARN","ERROR"].map(e=>(0,s.jsx)(d.Z,{onClick:()=>F(e),variant:W===e?"contained":"outlined",children:e},e))}),(0,s.jsx)(p.Z,{control:(0,s.jsx)(g.Z,{checked:I,onChange:e=>z(e.target.checked),size:"small",inputProps:{"aria-label":"Auto-scroll"}}),label:"Auto-scroll"}),(0,s.jsx)(p.Z,{control:(0,s.jsx)(g.Z,{checked:M,onChange:e=>D(e.target.checked),size:"small",inputProps:{"aria-label":"Hide RCON"}}),label:"Hide RCON"}),(0,s.jsx)(u.Z,{size:"small",onClick:L,"aria-label":"Clear logs",title:"Clear logs",children:(0,s.jsx)(b.Z,{})}),!N&&(0,s.jsx)(d.Z,{size:"small",startIcon:(0,s.jsx)(y.Z,{}),onClick:H,"aria-label":"Reconnect",children:"Reconnect"})]})]}),(0,s.jsx)(l.Z,{ref:T,sx:{flex:1,overflow:"auto",bgcolor:"#1a1a1a",p:1,fontFamily:"monospace",fontSize:"0.85rem"},children:0===G.length?(0,s.jsx)(h.Z,{color:"text.secondary",sx:{textAlign:"center",py:4,color:"#666"},children:"Waiting for logs..."}):G.map((e,r)=>(0,s.jsx)(k,{log:e},r))}),(0,s.jsx)(f.Z,{}),(0,s.jsx)(l.Z,{sx:{px:2,py:1,bgcolor:"background.default"},children:(0,s.jsxs)(j.Z,{direction:"row",spacing:1,children:[(0,s.jsx)(h.Z,{variant:"caption",color:"text.secondary",sx:{alignSelf:"center"},children:"Quick:"}),w.map(e=>(0,s.jsx)(d.Z,{size:"small",variant:"outlined",onClick:()=>K(e.template),children:e.label},e.label))]})}),(0,s.jsx)(f.Z,{}),(0,s.jsxs)(l.Z,{sx:{display:"flex",p:1,gap:1},children:[(0,s.jsx)(c.Z,{inputRef:B,fullWidth:!0,size:"small",placeholder:"Enter command...",value:t,onChange:e=>o(e.target.value),onKeyDown:q,disabled:!N||A,InputProps:{sx:{fontFamily:"monospace"}}}),(0,s.jsx)(d.Z,{variant:"contained",onClick:_,disabled:!t.trim()||!N||A,startIcon:A?(0,s.jsx)(v.Z,{size:16}):(0,s.jsx)(Z.Z,{}),"aria-label":"Send command",children:"Send"})]})]})}},163:function(e,r,t){"use strict";t.d(r,{Y:function(){return o}});var s=t(35106),n=t(93757);function o(e){let{serverName:r,maxLines:t=500,enabled:o=!0,reconnectInterval:i=3e3}=e,[l,a]=(0,s.useState)([]);(0,s.useEffect)(()=>{a([])},[r]);let c=(0,s.useCallback)(e=>{let r;"server-log"===e.type?r=e.data.log:"log"in e&&"string"==typeof e.log&&(r=e.log),r&&a(e=>{let s=[...e,r];return s.length>t?s.slice(s.length-t):s})},[t]),{isConnected:d,reconnect:x,retryCount:u}=(0,n.D)({url:"/api/sse/servers/".concat(encodeURIComponent(r),"/logs"),onMessage:c,enabled:o,reconnectInterval:i});return{logs:l,isConnected:d,clearLogs:(0,s.useCallback)(()=>{a([])},[]),reconnect:x,retryCount:u}}}},function(e){e.O(0,[6812,7220,6803,7294,1604,6877,540,1857,2590,55,8063,8347,7340,4538,6357,9887,2609,2537,3669,2757,1744],function(){return e(e.s=59616)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[224],{49726:function(e,t,n){Promise.resolve().then(n.bind(n,7854))},7854:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return et}});var r=n(94655),s=n(35106),i=n(31358),o=n(7281),a=n(30417),l=n(56877),c=n(93017),u=n(69899),d=n(31317),h=n(76492),x=n(32366),m=n(78067),p=n(84840),v=n(97436),f=n(52082),y=n(89923),g=n(10297),S=n(42431),C=n(628),j=n(41565),b=n(25935),Z=n(79983),w=n(25333),k=n(62590),T=n(5501),I=n(93315),R=n(27171),E=n(96292);let F=e=>{switch(e){case"running":return"success";case"stopped":case"exited":case"not_created":return"error";case"created":return"warning";default:return"default"}},q=e=>{switch(e){case"running":return"Running";case"stopped":case"exited":return"Stopped";case"not_created":return"Not Created";case"created":return"Created";default:return e||"Unknown"}},N=e=>{if(!e)return"-";let t=e.split(",").map(e=>e.trim());return t.find(e=>e.endsWith(".local"))||t[0]||"-"};function P(e){var t;let{server:n,statusOverride:s,onClick:i,onStart:a,onStop:l,loading:c=!1}=e,u=(null==s?void 0:s.status)||n.status,h=(e,t)=>{e.stopPropagation(),t(n.name)},x="running"===u,m="stopped"===u||"exited"===u||"not_created"===u,p=N(n.hostname),v=(null===(t=n.hostname)||void 0===t?void 0:t.split(",").map(e=>e.trim()))||[];return(0,r.jsxs)(C.Z,{role:"article",onClick:()=>{i&&i(n.name)},sx:{cursor:i?"pointer":"default",transition:"all 0.2s",height:180,display:"flex",flexDirection:"column","&:hover":i?{transform:"translateY(-2px)",boxShadow:4}:{}},children:[(0,r.jsxs)(j.Z,{sx:{flex:1,pb:1},children:[(0,r.jsxs)(o.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,r.jsx)(d.Z,{variant:"h6",component:"h3",sx:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,mr:1},children:n.name}),(0,r.jsx)(w.Z,{label:q(u),size:"small",color:F(u),sx:{fontWeight:500,minWidth:70}})]}),(0,r.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,r.jsx)(E.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,r.jsx)(k.Z,{title:v.length>1?v.join("\n"):"",arrow:!0,children:(0,r.jsxs)(d.Z,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[p,v.length>1&&" (+".concat(v.length-1,")")]})})]}),(0,r.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,r.jsx)(R.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,r.jsx)(d.Z,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.container})]})]}),(0,r.jsxs)(b.Z,{sx:{justifyContent:"flex-end",px:2,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:[m&&a&&(0,r.jsx)(Z.Z,{"aria-label":"Start server",color:"success",onClick:e=>h(e,a),disabled:c,size:"small",children:(0,r.jsx)(T.Z,{})}),x&&l&&(0,r.jsx)(Z.Z,{"aria-label":"Stop server",color:"error",onClick:e=>h(e,l),disabled:c,size:"small",children:(0,r.jsx)(I.Z,{})}),!m&&!x&&(0,r.jsx)(o.Z,{sx:{height:34}})]})]})}function O(e){let{servers:t,statusMap:n={},onServerClick:i,onStart:l,onStop:c,onCreate:u,loadingServers:h=[]}=e,[m,C]=(0,s.useState)(""),[j,b]=(0,s.useState)("all"),Z=(0,s.useMemo)(()=>t.filter(e=>{if(m&&!e.name.toLowerCase().includes(m.toLowerCase()))return!1;let t=n[e.name],r=(null==t?void 0:t.status)||e.status;return("running"!==j||"running"===r)&&("stopped"!==j||"stopped"===r||"exited"===r||"not_created"===r)}),[t,n,m,j]);return 0===t.length?(0,r.jsxs)(o.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"400px",gap:2},children:[(0,r.jsx)(d.Z,{variant:"h6",color:"text.secondary",children:"No servers found"}),u&&(0,r.jsx)(a.Z,{variant:"contained",startIcon:(0,r.jsx)(x.Z,{}),onClick:u,children:"Create Server"})]}):(0,r.jsxs)(o.Z,{children:[(0,r.jsxs)(o.Z,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},gap:2,mb:3,alignItems:{xs:"stretch",sm:"center"},justifyContent:"space-between"},children:[(0,r.jsxs)(g.Z,{value:j,exclusive:!0,onChange:(e,t)=>{null!==t&&b(t)},size:"small",sx:{flexShrink:0},children:[(0,r.jsx)(y.Z,{value:"all",children:"All"}),(0,r.jsx)(y.Z,{value:"running",children:"Running"}),(0,r.jsx)(y.Z,{value:"stopped",children:"Stopped"})]}),(0,r.jsx)(v.Z,{size:"small",placeholder:"Search servers...",value:m,onChange:e=>C(e.target.value),InputProps:{startAdornment:(0,r.jsx)(f.Z,{position:"start",children:(0,r.jsx)(S.Z,{})})},sx:{flexGrow:{xs:1,sm:0},minWidth:{sm:300}}})]}),(0,r.jsxs)(d.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:[Z.length," ",1===Z.length?"server":"servers"]}),0===Z.length?(0,r.jsx)(o.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"200px",gap:2},children:(0,r.jsx)(d.Z,{variant:"h6",color:"text.secondary",children:"No servers found"})}):(0,r.jsx)(p.ZP,{container:!0,spacing:2,children:Z.map(e=>(0,r.jsx)(p.ZP,{item:!0,xs:12,sm:6,md:4,children:(0,r.jsx)(P,{server:e,statusOverride:n[e.name],onClick:i,onStart:l,onStop:c,loading:h.includes(e.name)})},e.name))})]})}var D=n(99770),L=n(62508),K=n(5682),A=n(76678),Q=n(7178),z=n(40064),U=n(45547),W=n(4405),M=n(73383),_=n(82285),G=n(13609),H=n(46207),J=n(43436);let $=["VANILLA","PAPER","FABRIC","FORGE","NEOFORGE"],V={name:"",type:"PAPER",version:"1.21.1",memory:"4G",autoStart:!1,sudoPassword:""},B=[{key:"initializing",label:"Initializing"},{key:"creating",label:"Creating"},{key:"configuring",label:"Configuring"},{key:"starting",label:"Starting"}];function Y(e){let t,{open:n,onClose:i,onSubmit:l,loading:u=!1,status:h="idle",progress:x=0,message:m=""}=e,[p,f]=(0,s.useState)(V),[y,g]=(0,s.useState)({}),S=B.findIndex(e=>e.key===h),C="idle"!==h&&"completed"!==h&&"error"!==h;(0,s.useEffect)(()=>{n||(f(V),g({}))},[n]);let j=e=>e?/^[a-z0-9-]+$/.test(e)?null:"Only lowercase letters, numbers, and hyphens are allowed":"Server name is required",b=e=>t=>{let n=t.target.value;f(t=>({...t,[e]:n})),y[e]&&g(t=>({...t,[e]:""}))};return(0,r.jsx)(D.Z,{open:n,onClose:C?void 0:i,maxWidth:"sm",fullWidth:!0,children:(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),g({});let t=j(p.name);if(t){g({name:t});return}l(p)},children:[(0,r.jsx)(L.Z,{children:"completed"===h?(0,r.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,r.jsx)(H.Z,{color:"success"}),"Server Created Successfully"]}):"error"===h?(0,r.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,r.jsx)(J.Z,{color:"error"}),"Creation Failed"]}):"Create New Server"}),(0,r.jsx)(K.Z,{children:C||"completed"===h||"error"===h?(0,r.jsxs)(o.Z,{sx:{py:2},children:[(0,r.jsx)(M.Z,{activeStep:S,alternativeLabel:!0,sx:{mb:3},children:B.map(e=>(0,r.jsx)(_.Z,{children:(0,r.jsx)(G.Z,{children:e.label})},e.key))}),C&&(0,r.jsxs)(o.Z,{sx:{mb:3},children:[(0,r.jsxs)(o.Z,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,r.jsx)(d.Z,{variant:"body2",color:"text.secondary",children:m}),(0,r.jsxs)(d.Z,{variant:"body2",color:"text.secondary",children:[x,"%"]})]}),(0,r.jsx)(W.Z,{variant:"determinate",value:x})]}),"completed"===h&&(0,r.jsx)(d.Z,{color:"success.main",sx:{textAlign:"center"},children:m}),"error"===h&&(0,r.jsx)(d.Z,{color:"error.main",sx:{textAlign:"center"},children:m})]}):(0,r.jsxs)(o.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[(0,r.jsx)(v.Z,{label:"Server Name",value:p.name,onChange:b("name"),error:!!y.name,helperText:y.name||"Only lowercase letters, numbers, and hyphens",fullWidth:!0,autoFocus:!0,disabled:C}),(0,r.jsx)(v.Z,{label:"Server Type",select:!0,value:p.type,onChange:b("type"),fullWidth:!0,disabled:C,children:$.map(e=>(0,r.jsx)(Q.Z,{value:e,children:e},e))}),(0,r.jsx)(v.Z,{label:"Minecraft Version",value:p.version,onChange:b("version"),helperText:"e.g., 1.21.1, 1.20.4, latest",fullWidth:!0,disabled:C}),(0,r.jsx)(v.Z,{label:"Memory",value:p.memory,onChange:b("memory"),helperText:"e.g., 4G, 8G, 16G",fullWidth:!0,disabled:C}),(0,r.jsx)(v.Z,{label:"Sudo Password",type:"password",value:p.sudoPassword||"",onChange:b("sudoPassword"),helperText:"Required for mDNS hostname registration (avahi)",fullWidth:!0,disabled:C}),(0,r.jsx)(z.Z,{control:(0,r.jsx)(U.Z,{checked:p.autoStart||!1,onChange:(t="autoStart",e=>{f(n=>({...n,[t]:e.target.checked}))}),disabled:C}),label:"Auto-start after creation"})]})}),(0,r.jsx)(A.Z,{sx:{px:3,pb:2},children:"completed"===h||"error"===h?(0,r.jsx)(a.Z,{onClick:i,variant:"contained",fullWidth:!0,children:"Close"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.Z,{onClick:i,disabled:C,children:"Cancel"}),(0,r.jsx)(a.Z,{type:"submit",variant:"contained",disabled:C,startIcon:C?(0,r.jsx)(c.Z,{size:16}):null,children:C?"Creating...":"Create"})]})})]})})}var X=n(92666),ee=n(59104);function et(){var e,t;let n=(0,i.x)(),[p,v]=(0,s.useState)(!1),[f,y]=(0,s.useState)([]),{data:g,isLoading:S,error:C}=(0,X.x$)(),{statusMap:j}=(0,ee.d)(),b=(0,X.jM)(),Z=(0,X.Aw)(),w=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onSuccess:t,onError:n,onProgress:r}=e,[i,o]=(0,s.useState)("idle"),[a,l]=(0,s.useState)(0),[c,u]=(0,s.useState)(""),[d,h]=(0,s.useState)(null),x=(0,s.useRef)(null),m=(0,s.useRef)(""),p=(0,s.useCallback)(()=>{o("idle"),l(0),u(""),h(null),x.current&&(x.current.close(),x.current=null)},[]),v=(0,s.useCallback)((e,t,n)=>{o(e),u(t),l(n),null==r||r(e,t,n)},[r]),f=(0,s.useCallback)(async e=>{if("idle"===i||"completed"===i||"error"===i){h(null),v("initializing","Initializing server creation...",0),m.current=e.name,x.current&&x.current.close();try{let n=await fetch("/api/servers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok){let e=await n.text();throw Error(e||"Server creation failed: ".concat(n.statusText))}await n.json(),v("creating","Creating server configuration...",25),await new Promise(e=>setTimeout(e,500)),v("configuring","Configuring Docker compose...",50),await new Promise(e=>setTimeout(e,500)),v("starting","Starting server container...",75),await new Promise(e=>setTimeout(e,500)),v("completed","Server created successfully!",100),null==t||t(e.name)}catch(t){let e=t instanceof Error?t.message:"Unknown error occurred";o("error"),h(e),u("Server creation failed"),null==n||n(e)}}},[i,v,t,n]);return(0,s.useEffect)(()=>()=>{x.current&&(x.current.close(),x.current=null)},[]),{status:i,progress:a,message:c,error:d,isCreating:"idle"!==i&&"completed"!==i&&"error"!==i,createServer:f,reset:p}}({onSuccess:()=>{v(!1)},onError:e=>{console.error("Failed to create server:",e)}}),k=async e=>{y(t=>[...t,e]);try{await b.mutateAsync(e)}catch(e){console.error("Failed to start server:",e)}finally{y(t=>t.filter(t=>t!==e))}},T=async e=>{y(t=>[...t,e]);try{await Z.mutateAsync(e)}catch(e){console.error("Failed to stop server:",e)}finally{y(t=>t.filter(t=>t!==e))}};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(u.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,h.Fq)(e.palette.primary.main,.1)," 0%, ").concat((0,h.Fq)(e.palette.info.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,h.Fq)(e.palette.primary.main,.2)),display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,r.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)(o.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"primary.main",color:"primary.contrastText"},children:(0,r.jsx)(m.Z,{sx:{fontSize:32}})}),(0,r.jsxs)(o.Z,{children:[(0,r.jsx)(d.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Servers"}),(0,r.jsx)(d.Z,{variant:"body1",color:"text.secondary",children:"Manage your Minecraft servers"})]})]}),(0,r.jsx)(a.Z,{variant:"contained",startIcon:(0,r.jsx)(x.Z,{}),onClick:()=>v(!0),size:"large",children:"Create Server"})]}),C&&(0,r.jsxs)(l.Z,{severity:"error",sx:{mb:3},children:["Failed to load servers: ",C.message]}),w.error&&(0,r.jsxs)(l.Z,{severity:"error",sx:{mb:3},children:["Failed to create server: ",w.error]}),b.isError&&(0,r.jsxs)(l.Z,{severity:"error",sx:{mb:3},children:["Failed to start server: ",null===(e=b.error)||void 0===e?void 0:e.message]}),Z.isError&&(0,r.jsxs)(l.Z,{severity:"error",sx:{mb:3},children:["Failed to stop server: ",null===(t=Z.error)||void 0===t?void 0:t.message]}),S?(0,r.jsx)(o.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:(0,r.jsx)(c.Z,{})}):(0,r.jsx)(O,{servers:(null==g?void 0:g.servers)||[],statusMap:j,onServerClick:e=>{n.push("/servers/".concat(encodeURIComponent(e)))},onStart:k,onStop:T,onCreate:()=>v(!0),loadingServers:f}),(0,r.jsx)(Y,{open:p,onClose:()=>{v(!1),w.reset()},onSubmit:e=>{w.createServer(e)},loading:w.isCreating,status:w.status,progress:w.progress,message:w.message})]})}},3454:function(e,t,n){"use strict";n.d(t,{LoadingProvider:function(){return l},startLoading:function(){return c},stopLoading:function(){return u}});var r=n(94655),s=n(35106),i=n(74228),o=n(31477),a=n.n(o);function l(e){let{children:t}=e,n=(0,i.usePathname)(),o=(0,i.useSearchParams)();return(0,s.useEffect)(()=>{a().done()},[n,o]),(0,r.jsx)(r.Fragment,{children:t})}function c(){a().start()}function u(){a().done()}a().configure({showSpinner:!1,speed:300,minimum:.1})},8690:function(e,t,n){"use strict";n.d(t,{Av:function(){return r.startLoading}});var r=n(3454)},42936:function(e,t,n){"use strict";async function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={...t.headers};t.body&&(n["Content-Type"]="application/json");let r=await fetch(e,{...t,headers:n});if(!r.ok){let e=await r.json().catch(()=>({error:"UnknownError",message:r.statusText})),t=Error(e.message);throw t.statusCode=r.status,t.code=e.error,t}return r.json()}n.d(t,{SC:function(){return r}})},31358:function(e,t,n){"use strict";n.d(t,{x:function(){return o}});var r=n(74228),s=n(35106),i=n(8690);function o(){let e=(0,r.useRouter)(),t=(0,s.useCallback)((t,n)=>{(0,i.Av)(),e.push(t,n)},[e]),n=(0,s.useCallback)((t,n)=>{(0,i.Av)(),e.replace(t,n)},[e]);return(0,s.useMemo)(()=>({...e,push:t,replace:n}),[e,t,n])}},92666:function(e,t,n){"use strict";n.d(t,{Aw:function(){return d},Fv:function(){return f},Hq:function(){return c},Hy:function(){return l},MH:function(){return g},Sr:function(){return x},_I:function(){return h},g2:function(){return v},gx:function(){return S},hy:function(){return m},iC:function(){return y},jM:function(){return u},nq:function(){return p},nv:function(){return C},x$:function(){return a}});var r=n(5632),s=n(58919),i=n(20367),o=n(42936);function a(){return(0,r.a)({queryKey:["servers"],queryFn:()=>(0,o.SC)("/api/servers"),refetchInterval:6e4})}function l(e,t){return(0,r.a)({queryKey:["servers",e],queryFn:()=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e))),enabled:(null==t?void 0:t.enabled)!==!1&&!!e,refetchInterval:3e4})}function c(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:t,force:n}=e;return(0,o.SC)("/api/servers/".concat(encodeURIComponent(t)).concat(n?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["servers"]})}})}function u(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/start"),{method:"POST"}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",n]})}})}function d(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/stop"),{method:"POST"}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",n]})}})}function h(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/restart"),{method:"POST"}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",n]})}})}function x(){return(0,r.a)({queryKey:["worlds"],queryFn:()=>(0,o.SC)("/api/worlds"),refetchInterval:3e4})}function m(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/worlds",{method:"POST",body:JSON.stringify(e)}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function p(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:t,serverName:n}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(t),"/assign"),{method:"POST",body:JSON.stringify({serverName:n})})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}function v(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:t,force:n}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(t),"/release").concat(n?"?force=true":""),{method:"POST"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function f(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:t,force:n}=e;return(0,o.SC)("/api/worlds/".concat(encodeURIComponent(t)).concat(n?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function y(e,t){return(0,r.a)({queryKey:["servers",e,"config"],queryFn:()=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/config")),enabled:(null==t?void 0:t.enabled)!==!1&&!!e})}function g(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{serverName:t,config:n}=e;return(0,o.SC)("/api/servers/".concat(encodeURIComponent(t),"/config"),{method:"PATCH",body:JSON.stringify(n)})},onSuccess:(t,n)=>{let{serverName:r}=n;e.invalidateQueries({queryKey:["servers",r,"config"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function S(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,o.SC)("/api/servers/".concat(encodeURIComponent(e),"/world/reset"),{method:"POST"}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["servers",n]}),e.invalidateQueries({queryKey:["worlds"]})}})}function C(){return(0,r.a)({queryKey:["router-status"],queryFn:()=>(0,o.SC)("/api/router/status"),refetchInterval:3e4})}},93757:function(e,t,n){"use strict";n.d(t,{D:function(){return i}});var r=n(35106);class s{connect(e){this.options=e,this.shouldReconnect=!0,this.establishConnection()}establishConnection(){this.options&&(this.updateState("connecting"),this.eventSource&&this.eventSource.close(),this.eventSource=new EventSource(this.options.url,{withCredentials:this.options.withCredentials||!1}),this.eventSource.onopen=()=>{this.updateState("connected"),this.retryCount=0,this.lastError=null},this.eventSource.onmessage=e=>{if(!e.data.startsWith(":"))try{var t,n;let r=JSON.parse(e.data);null===(n=this.options)||void 0===n||null===(t=n.onMessage)||void 0===t||t.call(n,r)}catch(e){console.warn("Failed to parse SSE message:",e)}},this.eventSource.onerror=()=>{var e,t;let n={message:"SSE connection error",code:"CONNECTION_ERROR",retryCount:this.retryCount,timestamp:new Date};this.lastError=n,this.updateState("error"),null===(t=this.options)||void 0===t||null===(e=t.onError)||void 0===e||e.call(t,n),this.shouldReconnect&&this.scheduleReconnect()})}scheduleReconnect(){var e,t;if(!this.options)return;let n=null!==(e=this.options.maxReconnectAttempts)&&void 0!==e?e:1/0;if(this.retryCount>=n)return;this.reconnectTimer&&clearTimeout(this.reconnectTimer);let r=null!==(t=this.options.reconnectInterval)&&void 0!==t?t:3e3;this.reconnectTimer=setTimeout(()=>{this.retryCount++,this.establishConnection()},r)}disconnect(){this.shouldReconnect=!1,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.updateState("disconnected")}getState(){return this.state}isConnected(){return"connected"===this.state}getLastError(){return this.lastError}getRetryCount(){return this.retryCount}reconnect(){this.retryCount++,this.shouldReconnect=!0,this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.establishConnection()}updateState(e){var t,n;this.state=e,null===(n=this.options)||void 0===n||null===(t=n.onStateChange)||void 0===t||t.call(n,e)}constructor(){this.eventSource=null,this.state="disconnected",this.retryCount=0,this.lastError=null,this.reconnectTimer=null,this.options=null,this.shouldReconnect=!0}}function i(e){let{url:t,onMessage:n,onError:i,reconnectInterval:o=3e3,maxReconnectAttempts:a=1/0,enabled:l=!0,withCredentials:c=!1}=e,[u,d]=(0,r.useState)(null),[h,x]=(0,r.useState)("disconnected"),[m,p]=(0,r.useState)(null),[v,f]=(0,r.useState)(0),y=(0,r.useRef)(null),g=(0,r.useCallback)(e=>{d(e),null==n||n(e)},[n]),S=(0,r.useCallback)(e=>{x(e),"connected"===e&&f(0)},[]),C=(0,r.useCallback)(e=>{p(e),"number"==typeof e.retryCount&&f(e.retryCount),null==i||i(e)},[i]),j=(0,r.useCallback)(()=>{y.current&&(y.current.reconnect(),f(y.current.getRetryCount()))},[]),b=(0,r.useCallback)(()=>{y.current&&y.current.disconnect()},[]);return(0,r.useEffect)(()=>{if(!l){y.current&&(y.current.disconnect(),y.current=null);return}return y.current||(y.current=new s),y.current.connect({url:t,onMessage:g,onStateChange:S,onError:C,reconnectInterval:o,maxReconnectAttempts:a,withCredentials:c}),()=>{y.current&&(y.current.disconnect(),y.current=null)}},[t,l,o,a,c,g,S,C]),{data:u,isConnected:"connected"===h,state:h,error:m,retryCount:v,reconnect:j,disconnect:b}}},59104:function(e,t,n){"use strict";n.d(t,{d:function(){return i}});var r=n(35106),s=n(93757);function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onStatusChange:t,enabled:n=!0,reconnectInterval:i=3e3}=e,[o,a]=(0,r.useState)({}),l=(0,r.useCallback)(e=>{if("server-status"===e.type){let{serverName:n,status:r,health:s,timestamp:i}=e.data;a(e=>({...e,[n]:{status:r,health:s,timestamp:i}})),null==t||t(n,r,s)}},[t]),{isConnected:c,reconnect:u,retryCount:d}=(0,s.D)({url:"/api/sse/servers-status",onMessage:l,enabled:n,reconnectInterval:i}),h=(0,r.useCallback)(e=>o[e]||null,[o]);return(0,r.useEffect)(()=>{n||a({})},[n]),{statusMap:o,getServerStatus:h,isConnected:c,reconnect:u,retryCount:d}}}},function(e){e.O(0,[6812,7220,6803,7294,1604,6877,540,1857,2590,8063,4538,4278,9887,5382,3669,2757,1744],function(){return e(e.s=49726)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7701],{6199:function(e,n,r){Promise.resolve().then(r.bind(r,36405))},36405:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return Q}});var t=r(94655),s=r(35106),i=r(7281),l=r(30417),o=r(56877),a=r(93017),c=r(69899),d=r(31317),u=r(99770),x=r(62508),h=r(5682),m=r(76678),f=r(97436),y=r(76492),v=r(32366),p=r(84974),j=r(84840),g=r(52082),Z=r(89923),b=r(10297),C=r(42431),S=r(628),w=r(41565),q=r(25935),I=r(79983),k=r(25333),F=r(62590),D=r(96292),L=r(97812),W=r(21111),N=r(78067),K=r(33104);function T(e){let{world:n,onAssign:r,onRelease:s,onDelete:l,loading:o=!1}=e,a=(e,r)=>{e.stopPropagation(),r(n.name)};return(0,t.jsxs)(S.Z,{role:"article",sx:{transition:"all 0.2s",height:200,display:"flex",flexDirection:"column","&:hover":{transform:"translateY(-2px)",boxShadow:4}},children:[(0,t.jsxs)(w.Z,{sx:{flex:1,pb:1},children:[(0,t.jsxs)(i.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,t.jsx)(d.Z,{variant:"h6",component:"h3",sx:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,mr:1},children:n.name}),(0,t.jsx)(k.Z,{label:n.isLocked?"Locked":"Available",size:"small",color:n.isLocked?"warning":"success",sx:{fontWeight:500,minWidth:80}})]}),(0,t.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,t.jsx)(N.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,t.jsx)(d.Z,{variant:"body2",color:"text.secondary",children:n.size||"Unknown size"})]}),n.isLocked&&n.lockedBy&&(0,t.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,t.jsx)(D.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,t.jsx)(F.Z,{title:"Assigned to ".concat(n.lockedBy),arrow:!0,children:(0,t.jsx)(d.Z,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.lockedBy})})]}),(0,t.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,t.jsx)(K.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,t.jsx)(d.Z,{variant:"body2",color:"text.secondary",children:(e=>{if(!e)return"-";try{return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch(n){return e}})(n.lastModified)})]})]}),(0,t.jsxs)(q.Z,{sx:{justifyContent:"flex-end",px:2,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:[!n.isLocked&&r&&(0,t.jsx)(F.Z,{title:"Assign to server",arrow:!0,children:(0,t.jsx)(I.Z,{"aria-label":"Assign world",color:"primary",onClick:e=>a(e,r),disabled:o,size:"small",children:(0,t.jsx)(D.Z,{})})}),n.isLocked&&s&&(0,t.jsx)(F.Z,{title:"Release from server",arrow:!0,children:(0,t.jsx)(I.Z,{"aria-label":"Release world",color:"warning",onClick:e=>a(e,s),disabled:o,size:"small",children:(0,t.jsx)(L.Z,{})})}),l&&(0,t.jsx)(F.Z,{title:"Delete world",arrow:!0,children:(0,t.jsx)(I.Z,{"aria-label":"Delete world",color:"error",onClick:e=>a(e,l),disabled:o,size:"small",children:(0,t.jsx)(W.Z,{})})})]})]})}function P(e){let{worlds:n,onAssign:r,onRelease:o,onDelete:a,onCreate:c,loadingWorlds:u=[]}=e,[x,h]=(0,s.useState)(""),[m,y]=(0,s.useState)("all"),p=(0,s.useMemo)(()=>n.filter(e=>(!x||!!e.name.toLowerCase().includes(x.toLowerCase()))&&("available"!==m||!e.isLocked)&&("locked"!==m||!!e.isLocked)),[n,x,m]);return 0===n.length?(0,t.jsxs)(i.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"400px",gap:2},children:[(0,t.jsx)(d.Z,{variant:"h6",color:"text.secondary",children:"No worlds found"}),c&&(0,t.jsx)(l.Z,{variant:"contained",startIcon:(0,t.jsx)(v.Z,{}),onClick:c,children:"Create World"})]}):(0,t.jsxs)(i.Z,{children:[(0,t.jsxs)(i.Z,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},gap:2,mb:3,alignItems:{xs:"stretch",sm:"center"},justifyContent:"space-between"},children:[(0,t.jsxs)(b.Z,{value:m,exclusive:!0,onChange:(e,n)=>{null!==n&&y(n)},size:"small",sx:{flexShrink:0},children:[(0,t.jsx)(Z.Z,{value:"all",children:"All"}),(0,t.jsx)(Z.Z,{value:"available",children:"Available"}),(0,t.jsx)(Z.Z,{value:"locked",children:"Locked"})]}),(0,t.jsx)(f.Z,{size:"small",placeholder:"Search worlds...",value:x,onChange:e=>h(e.target.value),InputProps:{startAdornment:(0,t.jsx)(g.Z,{position:"start",children:(0,t.jsx)(C.Z,{})})},sx:{flexGrow:{xs:1,sm:0},minWidth:{sm:300}}})]}),(0,t.jsxs)(d.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:[p.length," ",1===p.length?"world":"worlds"]}),0===p.length?(0,t.jsx)(i.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"200px",gap:2},children:(0,t.jsx)(d.Z,{variant:"h6",color:"text.secondary",children:"No worlds found"})}):(0,t.jsx)(j.ZP,{container:!0,spacing:2,children:p.map(e=>(0,t.jsx)(j.ZP,{item:!0,xs:12,sm:6,md:4,children:(0,t.jsx)(T,{world:e,onAssign:r,onRelease:o,onDelete:a,loading:u.includes(e.name)})},e.name))})]})}let R={name:"",seed:""};function z(e){let{open:n,onClose:r,onSubmit:o,loading:c=!1}=e,[d,y]=(0,s.useState)(R),[v,p]=(0,s.useState)({});(0,s.useEffect)(()=>{n||(y(R),p({}))},[n]);let j=e=>e?/^[a-z0-9-]+$/.test(e)?null:"Only lowercase letters, numbers, and hyphens are allowed":"World name is required",g=e=>n=>{let r=n.target.value;y(n=>({...n,[e]:r})),v[e]&&p(n=>({...n,[e]:""}))};return(0,t.jsx)(u.Z,{open:n,onClose:c?void 0:r,maxWidth:"sm",fullWidth:!0,children:(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),p({});let n=j(d.name);if(n){p({name:n});return}o({name:d.name,...d.seed?{seed:d.seed}:{}})},children:[(0,t.jsx)(x.Z,{children:"Create New World"}),(0,t.jsx)(h.Z,{children:(0,t.jsxs)(i.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[(0,t.jsx)(f.Z,{label:"World Name",value:d.name,onChange:g("name"),error:!!v.name,helperText:v.name||"Only lowercase letters, numbers, and hyphens",fullWidth:!0,autoFocus:!0,disabled:c}),(0,t.jsx)(f.Z,{label:"Seed (optional)",value:d.seed||"",onChange:g("seed"),helperText:"Leave empty for a random seed",fullWidth:!0,disabled:c})]})}),(0,t.jsxs)(m.Z,{sx:{px:3,pb:2},children:[(0,t.jsx)(l.Z,{onClick:r,disabled:c,children:"Cancel"}),(0,t.jsx)(l.Z,{type:"submit",variant:"contained",disabled:c,startIcon:c?(0,t.jsx)(a.Z,{size:16}):null,children:c?"Creating...":"Create"})]})]})})}var A=r(7178),E=r(92666);function O(e){let{open:n,worldName:r,onClose:c,onSubmit:y,loading:v=!1}=e,[p,j]=(0,s.useState)(""),{data:g,isLoading:Z}=(0,E.x$)();(0,s.useEffect)(()=>{n||j("")},[n]);let b=(null==g?void 0:g.servers)||[],C=b.filter(e=>"running"!==e.status),S=b.filter(e=>"running"===e.status);return(0,t.jsx)(u.Z,{open:n,onClose:v?void 0:c,maxWidth:"sm",fullWidth:!0,children:(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),p&&y(r,p)},children:[(0,t.jsxs)(x.Z,{children:["Assign World: ",r]}),(0,t.jsx)(h.Z,{children:(0,t.jsx)(i.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:Z?(0,t.jsx)(i.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,t.jsx)(a.Z,{})}):0===b.length?(0,t.jsx)(d.Z,{color:"text.secondary",children:"No servers available. Create a server first."}):(0,t.jsxs)(t.Fragment,{children:[0===C.length&&S.length>0&&(0,t.jsx)(o.Z,{severity:"warning",children:"All servers are currently running. It is recommended to assign worlds to stopped servers."}),(0,t.jsxs)(f.Z,{label:"Select Server",select:!0,value:p,onChange:e=>j(e.target.value),fullWidth:!0,disabled:v,helperText:"Select a server to assign this world to",children:[C.length>0&&(0,t.jsx)(A.Z,{disabled:!0,children:(0,t.jsx)(d.Z,{variant:"caption",color:"text.secondary",children:"Available Servers"})}),C.map(e=>(0,t.jsx)(A.Z,{value:e.name,children:e.name},e.name)),S.length>0&&(0,t.jsx)(A.Z,{disabled:!0,children:(0,t.jsx)(d.Z,{variant:"caption",color:"text.secondary",children:"Running Servers (not recommended)"})}),S.map(e=>(0,t.jsx)(A.Z,{value:e.name,children:e.name},e.name))]})]})})}),(0,t.jsxs)(m.Z,{sx:{px:3,pb:2},children:[(0,t.jsx)(l.Z,{onClick:c,disabled:v,children:"Cancel"}),(0,t.jsx)(l.Z,{type:"submit",variant:"contained",disabled:v||!p||Z,startIcon:v?(0,t.jsx)(a.Z,{size:16}):null,children:v?"Assigning...":"Assign"})]})]})})}function Q(){var e,n,r,j;let[g,Z]=(0,s.useState)(!1),[b,C]=(0,s.useState)(null),[S,w]=(0,s.useState)(null),[q,I]=(0,s.useState)(""),[k,F]=(0,s.useState)([]),{data:D,isLoading:L,error:W}=(0,E.Sr)(),N=(0,E.hy)(),K=(0,E.nq)(),T=(0,E.g2)(),R=(0,E.Fv)(),A=async e=>{F(n=>[...n,e]);try{await T.mutateAsync({worldName:e})}catch(e){console.error("Failed to release world:",e)}finally{F(n=>n.filter(n=>n!==e))}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(c.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,y.Fq)(e.palette.primary.main,.1)," 0%, ").concat((0,y.Fq)(e.palette.info.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,y.Fq)(e.palette.primary.main,.2)),display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,t.jsx)(i.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"primary.main",color:"primary.contrastText"},children:(0,t.jsx)(p.Z,{sx:{fontSize:32}})}),(0,t.jsxs)(i.Z,{children:[(0,t.jsx)(d.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Worlds"}),(0,t.jsx)(d.Z,{variant:"body1",color:"text.secondary",children:"Manage your Minecraft worlds"})]})]}),(0,t.jsx)(l.Z,{variant:"contained",startIcon:(0,t.jsx)(v.Z,{}),onClick:()=>Z(!0),size:"large",children:"Create World"})]}),W&&(0,t.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to load worlds: ",W.message]}),N.isError&&(0,t.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to create world: ",null===(e=N.error)||void 0===e?void 0:e.message]}),K.isError&&(0,t.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to assign world: ",null===(n=K.error)||void 0===n?void 0:n.message]}),T.isError&&(0,t.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to release world: ",null===(r=T.error)||void 0===r?void 0:r.message]}),R.isError&&(0,t.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to delete world: ",null===(j=R.error)||void 0===j?void 0:j.message]}),L?(0,t.jsx)(i.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:(0,t.jsx)(a.Z,{})}):(0,t.jsx)(P,{worlds:(null==D?void 0:D.worlds)||[],onAssign:e=>C(e),onRelease:A,onDelete:e=>{w(e),I("")},onCreate:()=>Z(!0),loadingWorlds:k}),(0,t.jsx)(z,{open:g,onClose:()=>{Z(!1),N.reset()},onSubmit:e=>{N.mutate(e,{onSuccess:()=>{Z(!1)}})},loading:N.isPending}),(0,t.jsx)(O,{open:!!b,worldName:b||"",onClose:()=>C(null),onSubmit:(e,n)=>{F(n=>[...n,e]),K.mutate({worldName:e,serverName:n},{onSuccess:()=>{C(null)},onSettled:()=>{F(n=>n.filter(n=>n!==e))}})},loading:K.isPending}),(0,t.jsxs)(u.Z,{open:!!S,onClose:()=>{w(null),I("")},maxWidth:"sm",fullWidth:!0,children:[(0,t.jsx)(x.Z,{children:"Delete World"}),(0,t.jsxs)(h.Z,{children:[(0,t.jsxs)(d.Z,{sx:{mb:2},children:["This action cannot be undone. Type ",(0,t.jsx)("strong",{children:S})," to confirm deletion."]}),(0,t.jsx)(f.Z,{label:"World name",value:q,onChange:e=>I(e.target.value),fullWidth:!0,autoFocus:!0})]}),(0,t.jsxs)(m.Z,{sx:{px:3,pb:2},children:[(0,t.jsx)(l.Z,{onClick:()=>{w(null),I("")},children:"Cancel"}),(0,t.jsx)(l.Z,{variant:"contained",color:"error",onClick:()=>{S&&q===S&&(F(e=>[...e,S]),R.mutate({name:S,force:!0},{onSuccess:()=>{w(null),I("")},onSettled:()=>{F(e=>e.filter(e=>e!==S))}}))},disabled:q!==S||R.isPending,startIcon:R.isPending?(0,t.jsx)(a.Z,{size:16}):null,children:R.isPending?"Deleting...":"Delete"})]})]})]})}},42936:function(e,n,r){"use strict";async function t(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={...n.headers};n.body&&(r["Content-Type"]="application/json");let t=await fetch(e,{...n,headers:r});if(!t.ok){let e=await t.json().catch(()=>({error:"UnknownError",message:t.statusText})),n=Error(e.message);throw n.statusCode=t.status,n.code=e.error,n}return t.json()}r.d(n,{SC:function(){return t}})},92666:function(e,n,r){"use strict";r.d(n,{Aw:function(){return u},Fv:function(){return v},Hq:function(){return c},Hy:function(){return a},MH:function(){return j},Sr:function(){return h},_I:function(){return x},g2:function(){return y},gx:function(){return g},hy:function(){return m},iC:function(){return p},jM:function(){return d},nq:function(){return f},nv:function(){return Z},x$:function(){return o}});var t=r(5632),s=r(58919),i=r(20367),l=r(42936);function o(){return(0,t.a)({queryKey:["servers"],queryFn:()=>(0,l.SC)("/api/servers"),refetchInterval:6e4})}function a(e,n){return(0,t.a)({queryKey:["servers",e],queryFn:()=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e))),enabled:(null==n?void 0:n.enabled)!==!1&&!!e,refetchInterval:3e4})}function c(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:n,force:r}=e;return(0,l.SC)("/api/servers/".concat(encodeURIComponent(n)).concat(r?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["servers"]})}})}function d(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/start"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function u(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/stop"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function x(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/restart"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers"]}),e.invalidateQueries({queryKey:["servers",r]})}})}function h(){return(0,t.a)({queryKey:["worlds"],queryFn:()=>(0,l.SC)("/api/worlds"),refetchInterval:3e4})}function m(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/worlds",{method:"POST",body:JSON.stringify(e)}),onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function f(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:n,serverName:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n),"/assign"),{method:"POST",body:JSON.stringify({serverName:r})})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]}),e.invalidateQueries({queryKey:["servers"]})}})}function y(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{worldName:n,force:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n),"/release").concat(r?"?force=true":""),{method:"POST"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function v(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{name:n,force:r}=e;return(0,l.SC)("/api/worlds/".concat(encodeURIComponent(n)).concat(r?"?force=true":""),{method:"DELETE"})},onSuccess:()=>{e.invalidateQueries({queryKey:["worlds"]})}})}function p(e,n){return(0,t.a)({queryKey:["servers",e,"config"],queryFn:()=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/config")),enabled:(null==n?void 0:n.enabled)!==!1&&!!e})}function j(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>{let{serverName:n,config:r}=e;return(0,l.SC)("/api/servers/".concat(encodeURIComponent(n),"/config"),{method:"PATCH",body:JSON.stringify(r)})},onSuccess:(n,r)=>{let{serverName:t}=r;e.invalidateQueries({queryKey:["servers",t,"config"]}),e.invalidateQueries({queryKey:["servers",t]})}})}function g(){let e=(0,s.NL)();return(0,i.D)({mutationFn:e=>(0,l.SC)("/api/servers/".concat(encodeURIComponent(e),"/world/reset"),{method:"POST"}),onSuccess:(n,r)=>{e.invalidateQueries({queryKey:["servers",r]}),e.invalidateQueries({queryKey:["worlds"]})}})}function Z(){return(0,t.a)({queryKey:["router-status"],queryFn:()=>(0,l.SC)("/api/router/status"),refetchInterval:3e4})}}},function(e){e.O(0,[6812,7220,6803,7294,1604,6877,540,1857,2590,8063,4278,4507,3669,2757,1744],function(){return e(e.s=6199)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- @import url("https://fonts.cdnfonts.com/css/minecraft-4");*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}#__next .visible{visibility:visible}#__next .fixed{position:fixed}#__next .absolute{position:absolute}#__next .relative{position:relative}#__next .block{display:block}#__next .flex{display:flex}#__next .table{display:table}#__next .grid{display:grid}#__next .hidden{display:none}#__next .shrink{flex-shrink:1}#__next .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#__next .break-all{word-break:break-all}#__next .rounded{border-radius:.25rem}#__next .border{border-width:1px}#__next .uppercase{text-transform:uppercase}#__next .lowercase{text-transform:lowercase}#__next .italic{font-style:italic}#__next .underline{text-decoration-line:underline}#__next .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#__next .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--bg-base:#16181c;--bg-raised:#1a1d22;--bg-surface:#26282e;--bg-elevated:#313338;--text-primary:#fff;--text-secondary:#9a9a9a;--text-tertiary:#72767d;--border-default:#2e3035;--primary:#1bd96a;--primary-light:#4de38a;--primary-dark:#15a852;--secondary:#7c3aed}body{color:var(--text-primary);background-color:var(--bg-base);min-height:100vh}html{scroll-behavior:smooth}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}#nprogress{pointer-events:none}#nprogress .bar{background:var(--primary);position:fixed;z-index:9999;top:0;left:0;width:100%;height:3px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px var(--primary),0 0 5px var(--primary);opacity:1;transform:rotate(3deg) translateY(-4px)}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/2fec16f4e3247070-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/d39dd0fe2707b73f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/64b603a0050c6c5e-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/19bbd60ccc95b5d0-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/f882d86c499cfa5a-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/c99b890c5ded8d2e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4b1cfd3867993fed-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/77f5a85cac4ea515-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/bda87828535b47a7-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b22cdab1bc584ea3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/eeeb642bd71d217b-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/70d2fd2b9078a5a3-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e8773fdd4b7ad26f-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/23822ac40846484b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/387866ce4a39ca39-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/dbd9849a8a735d72-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/12a3e8885b69eb86-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/3ecd40fce058ee61-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/854d2e4705543874-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b188519314c42064-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/14d38ce06836ffee-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/cf66601165af2130-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b664222af7dcc13c-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Ubuntu_1d908f;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/33a864272e2b3e97-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Ubuntu_Fallback_1d908f;src:local("Arial");ascent-override:91.32%;descent-override:18.52%;line-gap-override:2.74%;size-adjust:102.06%}.__className_1d908f{font-family:__Ubuntu_1d908f,__Ubuntu_Fallback_1d908f;font-style:normal}
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1044],{76544:function(e,t,o){var n=o(8091);t.Z=void 0;var r=n(o(66758)),i=o(94655);t.Z=(0,r.default)([(0,i.jsx)("path",{d:"m7.3 14.7 1.2-1.2c-1-1-1.5-2.3-1.5-3.5 0-1.3.5-2.6 1.5-3.5L7.3 5.3c-1.3 1.3-2 3-2 4.7s.7 3.4 2 4.7M19.1 2.9l-1.2 1.2c1.6 1.6 2.4 3.8 2.4 5.9 0 2.1-.8 4.3-2.4 5.9l1.2 1.2c2-2 2.9-4.5 2.9-7.1 0-2.6-1-5.1-2.9-7.1"},"0"),(0,i.jsx)("path",{d:"M6.1 4.1 4.9 2.9C3 4.9 2 7.4 2 10c0 2.6 1 5.1 2.9 7.1l1.2-1.2c-1.6-1.6-2.4-3.8-2.4-5.9 0-2.1.8-4.3 2.4-5.9m10.6 10.6c1.3-1.3 2-3 2-4.7-.1-1.7-.7-3.4-2-4.7l-1.2 1.2c1 1 1.5 2.3 1.5 3.5 0 1.3-.5 2.6-1.5 3.5zM14.5 10c0-1.38-1.12-2.5-2.5-2.5S9.5 8.62 9.5 10c0 .76.34 1.42.87 1.88L7 22h2l.67-2h4.67l.66 2h2l-3.37-10.12c.53-.46.87-1.12.87-1.88m-4.17 8L12 13l1.67 5z"},"1")],"CellTower")},81960:function(e,t,o){var n=o(8091);t.Z=void 0;var r=n(o(66758)),i=o(94655);t.Z=(0,r.default)((0,i.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore")},59602:function(e,t,o){var n=o(8091);t.Z=void 0;var r=n(o(66758)),i=o(94655);t.Z=(0,r.default)((0,i.jsx)("path",{d:"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8"}),"InfoOutlined")},21605:function(e,t,o){var n=o(8091);t.Z=void 0;var r=n(o(66758)),i=o(94655);t.Z=(0,r.default)((0,i.jsx)("path",{d:"M15.9 5c-.17 0-.32.09-.41.23l-.07.15-5.18 11.65c-.16.29-.26.61-.26.96 0 1.11.9 2.01 2.01 2.01.96 0 1.77-.68 1.96-1.59l.01-.03L16.4 5.5c0-.28-.22-.5-.5-.5M1 9l2 2c2.88-2.88 6.79-4.08 10.53-3.62l1.19-2.68C9.89 3.84 4.74 5.27 1 9m20 2 2-2c-1.64-1.64-3.55-2.82-5.59-3.57l-.53 2.82c1.5.62 2.9 1.53 4.12 2.75m-4 4 2-2c-.8-.8-1.7-1.42-2.66-1.89l-.55 2.92c.42.27.83.59 1.21.97M5 13l2 2c1.13-1.13 2.56-1.79 4.03-2l1.28-2.88c-2.63-.08-5.3.87-7.31 2.88"}),"NetworkCheck")},29983:function(e,t,o){var n=o(8091);t.Z=void 0;var r=n(o(66758)),i=o(94655);t.Z=(0,r.default)((0,i.jsx)("path",{d:"m20.2 5.9.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7m-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1 .9 0 1.8.3 2.5 1zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2M8 18H6v-2h2zm3.5 0h-2v-2h2zm3.5 0h-2v-2h2z"}),"Router")},87716:function(e,t,o){o.d(t,{Z:function(){return M}});var n=o(32324),r=o(81500),i=o(35106),a=o(70316),l=o(92019),c=o(67485),s=o(65951),d=o(34519),u=o(28057),p=o(30035),h=o(56874),v=o(83855),m=o(38481),g=o(11379),Z=o(9049);function f(e){return(0,Z.ZP)("MuiCollapse",e)}(0,g.Z)("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]);var x=o(94655);let z=["addEndListener","children","className","collapsedSize","component","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","orientation","style","timeout","TransitionComponent"],y=e=>{let{orientation:t,classes:o}=e;return(0,s.Z)({root:["root","".concat(t)],entered:["entered"],hidden:["hidden"],wrapper:["wrapper","".concat(t)],wrapperInner:["wrapperInner","".concat(t)]},f,o)},w=(0,d.ZP)("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[o.orientation],"entered"===o.state&&t.entered,"exited"===o.state&&!o.in&&"0px"===o.collapsedSize&&t.hidden]}})(e=>{let{theme:t,ownerState:o}=e;return(0,r.Z)({height:0,overflow:"hidden",transition:t.transitions.create("height")},"horizontal"===o.orientation&&{height:"auto",width:0,transition:t.transitions.create("width")},"entered"===o.state&&(0,r.Z)({height:"auto",overflow:"visible"},"horizontal"===o.orientation&&{width:"auto"}),"exited"===o.state&&!o.in&&"0px"===o.collapsedSize&&{visibility:"hidden"})}),b=(0,d.ZP)("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(e,t)=>t.wrapper})(e=>{let{ownerState:t}=e;return(0,r.Z)({display:"flex",width:"100%"},"horizontal"===t.orientation&&{width:"auto",height:"100%"})}),C=(0,d.ZP)("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(e,t)=>t.wrapperInner})(e=>{let{ownerState:t}=e;return(0,r.Z)({width:"100%"},"horizontal"===t.orientation&&{width:"auto",height:"100%"})}),R=i.forwardRef(function(e,t){let o=(0,u.i)({props:e,name:"MuiCollapse"}),{addEndListener:s,children:d,className:g,collapsedSize:Z="0px",component:f,easing:R,in:M,onEnter:E,onEntered:S,onEntering:I,onExit:k,onExited:j,onExiting:N,orientation:L="vertical",style:P,timeout:T=p.x9.standard,TransitionComponent:D=l.ZP}=o,H=(0,n.Z)(o,z),F=(0,r.Z)({},o,{orientation:L,collapsedSize:Z}),O=y(F),W=(0,v.Z)(),A=(0,c.Z)(),B=i.useRef(null),_=i.useRef(),q="number"==typeof Z?"".concat(Z,"px"):Z,V="horizontal"===L,G=V?"width":"height",J=i.useRef(null),K=(0,m.Z)(t,J),Q=e=>t=>{if(e){let o=J.current;void 0===t?e(o):e(o,t)}},U=()=>B.current?B.current[V?"clientWidth":"clientHeight"]:0,X=Q((e,t)=>{B.current&&V&&(B.current.style.position="absolute"),e.style[G]=q,E&&E(e,t)}),Y=Q((e,t)=>{let o=U();B.current&&V&&(B.current.style.position="");let{duration:n,easing:r}=(0,h.C)({style:P,timeout:T,easing:R},{mode:"enter"});if("auto"===T){let t=W.transitions.getAutoHeightDuration(o);e.style.transitionDuration="".concat(t,"ms"),_.current=t}else e.style.transitionDuration="string"==typeof n?n:"".concat(n,"ms");e.style[G]="".concat(o,"px"),e.style.transitionTimingFunction=r,I&&I(e,t)}),$=Q((e,t)=>{e.style[G]="auto",S&&S(e,t)}),ee=Q(e=>{e.style[G]="".concat(U(),"px"),k&&k(e)}),et=Q(j),eo=Q(e=>{let t=U(),{duration:o,easing:n}=(0,h.C)({style:P,timeout:T,easing:R},{mode:"exit"});if("auto"===T){let o=W.transitions.getAutoHeightDuration(t);e.style.transitionDuration="".concat(o,"ms"),_.current=o}else e.style.transitionDuration="string"==typeof o?o:"".concat(o,"ms");e.style[G]=q,e.style.transitionTimingFunction=n,N&&N(e)});return(0,x.jsx)(D,(0,r.Z)({in:M,onEnter:X,onEntered:$,onEntering:Y,onExit:ee,onExited:et,onExiting:eo,addEndListener:e=>{"auto"===T&&A.start(_.current||0,e),s&&s(J.current,e)},nodeRef:J,timeout:"auto"===T?null:T},H,{children:(e,t)=>(0,x.jsx)(w,(0,r.Z)({as:f,className:(0,a.Z)(O.root,g,{entered:O.entered,exited:!M&&"0px"===q&&O.hidden}[e]),style:(0,r.Z)({[V?"minWidth":"minHeight"]:q},P),ref:K},t,{ownerState:(0,r.Z)({},F,{state:e}),children:(0,x.jsx)(b,{ownerState:(0,r.Z)({},F,{state:e}),className:O.wrapper,ref:B,children:(0,x.jsx)(C,{ownerState:(0,r.Z)({},F,{state:e}),className:O.wrapperInner,children:d})})}))}))});R.muiSupportAuto=!0;var M=R},79983:function(e,t,o){o.d(t,{Z:function(){return y}});var n=o(32324),r=o(81500),i=o(35106),a=o(70316),l=o(65951),c=o(64577),s=o(34519),d=o(28057),u=o(29084),p=o(38762),h=o(11379),v=o(9049);function m(e){return(0,v.ZP)("MuiIconButton",e)}let g=(0,h.Z)("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]);var Z=o(94655);let f=["edge","children","className","color","disabled","disableFocusRipple","size"],x=e=>{let{classes:t,disabled:o,color:n,edge:r,size:i}=e,a={root:["root",o&&"disabled","default"!==n&&"color".concat((0,p.Z)(n)),r&&"edge".concat((0,p.Z)(r)),"size".concat((0,p.Z)(i))]};return(0,l.Z)(a,m,t)},z=(0,s.ZP)(u.Z,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,"default"!==o.color&&t["color".concat((0,p.Z)(o.color))],o.edge&&t["edge".concat((0,p.Z)(o.edge))],t["size".concat((0,p.Z)(o.size))]]}})(e=>{let{theme:t,ownerState:o}=e;return(0,r.Z)({textAlign:"center",flex:"0 0 auto",fontSize:t.typography.pxToRem(24),padding:8,borderRadius:"50%",overflow:"visible",color:(t.vars||t).palette.action.active,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest})},!o.disableRipple&&{"&:hover":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.action.activeChannel," / ").concat(t.vars.palette.action.hoverOpacity,")"):(0,c.Fq)(t.palette.action.active,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"start"===o.edge&&{marginLeft:"small"===o.size?-3:-12},"end"===o.edge&&{marginRight:"small"===o.size?-3:-12})},e=>{var t;let{theme:o,ownerState:n}=e,i=null==(t=(o.vars||o).palette)?void 0:t[n.color];return(0,r.Z)({},"inherit"===n.color&&{color:"inherit"},"inherit"!==n.color&&"default"!==n.color&&(0,r.Z)({color:null==i?void 0:i.main},!n.disableRipple&&{"&:hover":(0,r.Z)({},i&&{backgroundColor:o.vars?"rgba(".concat(i.mainChannel," / ").concat(o.vars.palette.action.hoverOpacity,")"):(0,c.Fq)(i.main,o.palette.action.hoverOpacity)},{"@media (hover: none)":{backgroundColor:"transparent"}})}),"small"===n.size&&{padding:5,fontSize:o.typography.pxToRem(18)},"large"===n.size&&{padding:12,fontSize:o.typography.pxToRem(28)},{["&.".concat(g.disabled)]:{backgroundColor:"transparent",color:(o.vars||o).palette.action.disabled}})});var y=i.forwardRef(function(e,t){let o=(0,d.i)({props:e,name:"MuiIconButton"}),{edge:i=!1,children:l,className:c,color:s="default",disabled:u=!1,disableFocusRipple:p=!1,size:h="medium"}=o,v=(0,n.Z)(o,f),m=(0,r.Z)({},o,{edge:i,color:s,disabled:u,disableFocusRipple:p,size:h}),g=x(m);return(0,Z.jsx)(z,(0,r.Z)({className:(0,a.Z)(g.root,c),centerRipple:!0,focusRipple:!p,disabled:u,ref:t},v,{ownerState:m,children:l}))})}}]);