@minecraft-docker/mcctl-console 2.7.0 → 2.8.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 (147) 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 +93 -105
  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 +2 -2
  5. package/.next/standalone/platform/services/mcctl-console/.next/prerender-manifest.json +1 -1
  6. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/admin/users/page_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
  9. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js +5 -5
  11. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js.nft.json +1 -1
  12. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js +1 -1
  14. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js +2 -2
  16. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js.nft.json +1 -1
  17. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js +54 -1
  20. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js.nft.json +1 -1
  21. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page.js +54 -1
  23. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page.js.nft.json +1 -1
  24. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page.js +1 -1
  26. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page.js.nft.json +1 -1
  27. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page.js +1 -1
  29. package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.html +1 -1
  32. package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.rsc +1 -1
  33. package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.html +1 -1
  34. package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.rsc +3 -3
  35. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.html +1 -1
  36. package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.rsc +3 -3
  37. package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.html +1 -1
  38. package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.rsc +3 -3
  39. package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.html +1 -1
  40. package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.rsc +1 -1
  41. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page.js +1 -1
  42. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.html +1 -1
  44. package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.rsc +2 -2
  45. package/.next/standalone/platform/services/mcctl-console/.next/server/app/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.html +1 -1
  47. package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.rsc +3 -3
  48. package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.html +1 -1
  49. package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.rsc +3 -3
  50. package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.html +1 -1
  51. package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.rsc +3 -3
  52. package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.html +1 -1
  53. package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.rsc +3 -3
  54. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page.js +1 -1
  55. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.html +1 -1
  57. package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.rsc +2 -2
  58. package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.html +1 -1
  59. package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.rsc +3 -3
  60. package/.next/standalone/platform/services/mcctl-console/.next/server/app-paths-manifest.json +20 -20
  61. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/354.js +1 -1
  62. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/3633.js +1 -0
  63. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8091.js +1 -0
  64. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8847.js +1 -1
  65. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/9023.js +51 -0
  66. package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-manifest.json +5 -5
  67. package/.next/standalone/platform/services/mcctl-console/.next/server/pages/404.html +1 -1
  68. package/.next/standalone/platform/services/mcctl-console/.next/server/pages/500.html +1 -1
  69. package/.next/standalone/platform/services/mcctl-console/.next/server/server-reference-manifest.json +1 -1
  70. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1099-fa64c7b90813b0a5.js +1 -0
  71. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2701-385dbd7376f5851d.js +1 -0
  72. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5004-6ecca3df16643209.js +1 -0
  73. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/5123-bc0af955f93964c7.js +1 -0
  74. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/674-096e0376c367d751.js +1 -0
  75. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7296-063cc1cf1200429d.js +1 -0
  76. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7436-dc5c09a9f287522b.js +1 -0
  77. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8738-25eee78e0dfd0adf.js +1 -0
  78. package/.next/{static/chunks/app/(main)/admin/users/page-db10014c56588381.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/admin/users/page-3cc240ec265dc135.js} +1 -1
  79. package/.next/{static/chunks/app/(main)/audit-logs/page-b8468e574885e74f.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/audit-logs/page-c52171f3de12db63.js} +1 -1
  80. package/.next/{static/chunks/app/(main)/backups/page-76da68ecfd3fd38f.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/backups/page-47c96f8f36c1c1a3.js} +1 -1
  81. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/dashboard/page-fba60ccdbc06c136.js +1 -0
  82. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/{layout-e6d8aef242d7e516.js → layout-22d4db17be3f8c25.js} +1 -1
  83. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/players/{page-4a3f72a092662e75.js → page-fef43a34b56c2fcf.js} +1 -1
  84. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/routing/{page-29d4216d11c4d426.js → page-0fbdeec8fee218ef.js} +1 -1
  85. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/console/{page-4e811ac018a2a049.js → page-1287129ad47a4440.js} +1 -1
  86. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/page-1becd4dc3adb9b97.js +1 -0
  87. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/page-bebe3d652d7cf3fb.js +1 -0
  88. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/settings/{page-12a46542ea952feb.js → page-94ebb6f110d7cba4.js} +1 -1
  89. package/.next/{static/chunks/app/(main)/worlds/page-7f194148444c39f3.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/page-e78b9914366748cf.js} +1 -1
  90. package/.next/{static/chunks/app/login/page-ff4d395f77e036b5.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-55283ea041e00fc0.js} +1 -1
  91. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/signup/{page-861124fab907567f.js → page-d3f96f0e775636fd.js} +1 -1
  92. package/.next/standalone/platform/services/mcctl-console/.next/static/css/2579b9365591037f.css +1 -0
  93. package/.next/static/chunks/1099-fa64c7b90813b0a5.js +1 -0
  94. package/.next/static/chunks/2701-385dbd7376f5851d.js +1 -0
  95. package/.next/static/chunks/5004-6ecca3df16643209.js +1 -0
  96. package/.next/static/chunks/5123-bc0af955f93964c7.js +1 -0
  97. package/.next/static/chunks/674-096e0376c367d751.js +1 -0
  98. package/.next/static/chunks/7296-063cc1cf1200429d.js +1 -0
  99. package/.next/static/chunks/7436-dc5c09a9f287522b.js +1 -0
  100. package/.next/static/chunks/8738-25eee78e0dfd0adf.js +1 -0
  101. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/admin/users/page-db10014c56588381.js → static/chunks/app/(main)/admin/users/page-3cc240ec265dc135.js} +1 -1
  102. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/audit-logs/page-b8468e574885e74f.js → static/chunks/app/(main)/audit-logs/page-c52171f3de12db63.js} +1 -1
  103. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/backups/page-76da68ecfd3fd38f.js → static/chunks/app/(main)/backups/page-47c96f8f36c1c1a3.js} +1 -1
  104. package/.next/static/chunks/app/(main)/dashboard/page-fba60ccdbc06c136.js +1 -0
  105. package/.next/static/chunks/app/(main)/{layout-e6d8aef242d7e516.js → layout-22d4db17be3f8c25.js} +1 -1
  106. package/.next/static/chunks/app/(main)/players/{page-4a3f72a092662e75.js → page-fef43a34b56c2fcf.js} +1 -1
  107. package/.next/static/chunks/app/(main)/routing/{page-29d4216d11c4d426.js → page-0fbdeec8fee218ef.js} +1 -1
  108. package/.next/static/chunks/app/(main)/servers/[name]/console/{page-4e811ac018a2a049.js → page-1287129ad47a4440.js} +1 -1
  109. package/.next/static/chunks/app/(main)/servers/[name]/page-1becd4dc3adb9b97.js +1 -0
  110. package/.next/static/chunks/app/(main)/servers/page-bebe3d652d7cf3fb.js +1 -0
  111. package/.next/static/chunks/app/(main)/settings/{page-12a46542ea952feb.js → page-94ebb6f110d7cba4.js} +1 -1
  112. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/page-7f194148444c39f3.js → static/chunks/app/(main)/worlds/page-e78b9914366748cf.js} +1 -1
  113. package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-ff4d395f77e036b5.js → static/chunks/app/login/page-55283ea041e00fc0.js} +1 -1
  114. package/.next/static/chunks/app/signup/{page-861124fab907567f.js → page-d3f96f0e775636fd.js} +1 -1
  115. package/.next/static/css/2579b9365591037f.css +1 -0
  116. package/package.json +2 -2
  117. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/2743.js +0 -54
  118. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/6509.js +0 -51
  119. package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/8055.js +0 -1
  120. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1668-c41281dc3163e1c2.js +0 -1
  121. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2535-54681cf49f7f39e8.js +0 -1
  122. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/3945-7c1c5f7e488ff042.js +0 -1
  123. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6758-d0a2d1008691eff1.js +0 -1
  124. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/680-61e3cda59bad5959.js +0 -1
  125. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7082-a03865af2ed57a67.js +0 -1
  126. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/7436-44378c85b24787cc.js +0 -1
  127. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8858-e009f69745d12205.js +0 -1
  128. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/dashboard/page-aa8e2d7970450b2a.js +0 -1
  129. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/page-37b9107156ee1587.js +0 -1
  130. package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/page-4324a833564ed326.js +0 -1
  131. package/.next/standalone/platform/services/mcctl-console/.next/static/css/0c287cf361a10682.css +0 -1
  132. package/.next/static/chunks/1668-c41281dc3163e1c2.js +0 -1
  133. package/.next/static/chunks/2535-54681cf49f7f39e8.js +0 -1
  134. package/.next/static/chunks/3945-7c1c5f7e488ff042.js +0 -1
  135. package/.next/static/chunks/6758-d0a2d1008691eff1.js +0 -1
  136. package/.next/static/chunks/680-61e3cda59bad5959.js +0 -1
  137. package/.next/static/chunks/7082-a03865af2ed57a67.js +0 -1
  138. package/.next/static/chunks/7436-44378c85b24787cc.js +0 -1
  139. package/.next/static/chunks/8858-e009f69745d12205.js +0 -1
  140. package/.next/static/chunks/app/(main)/dashboard/page-aa8e2d7970450b2a.js +0 -1
  141. package/.next/static/chunks/app/(main)/servers/[name]/page-37b9107156ee1587.js +0 -1
  142. package/.next/static/chunks/app/(main)/servers/page-4324a833564ed326.js +0 -1
  143. package/.next/static/css/0c287cf361a10682.css +0 -1
  144. /package/.next/standalone/platform/services/mcctl-console/.next/static/{Yn14R25oBpteEUUEyZNGO → 89Bssec70Vx75pcmzcDoG}/_buildManifest.js +0 -0
  145. /package/.next/standalone/platform/services/mcctl-console/.next/static/{Yn14R25oBpteEUUEyZNGO → 89Bssec70Vx75pcmzcDoG}/_ssgManifest.js +0 -0
  146. /package/.next/static/{Yn14R25oBpteEUUEyZNGO → 89Bssec70Vx75pcmzcDoG}/_buildManifest.js +0 -0
  147. /package/.next/static/{Yn14R25oBpteEUUEyZNGO → 89Bssec70Vx75pcmzcDoG}/_ssgManifest.js +0 -0
@@ -1 +1,54 @@
1
- (()=>{var e={};e.id=278,e.ids=[278],e.modules={85890:e=>{"use strict";e.exports=require("better-sqlite3")},72934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},92048:e=>{"use strict";e.exports=require("fs")},55315:e=>{"use strict";e.exports=require("path")},17360:e=>{"use strict";e.exports=require("url")},61509:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>i.a,__next_app__:()=>u,originalPathname:()=>p,pages:()=>c,routeModule:()=>x,tree:()=>d}),r(40579),r(26072),r(82395),r(97759);var s=r(95530),n=r(45086),a=r(13937),i=r.n(a),o=r(45587),l={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>o[e]);r.d(t,l);let d=["",{children:["(main)",{children:["servers",{children:["[name]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,40579)),"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/(main)/servers/[name]/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,26072)),"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/(main)/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,82395,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,52001))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(r.bind(r,97759)),"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,82395,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,52001))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],c=["/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/(main)/servers/[name]/page.tsx"],p="/(main)/servers/[name]/page",u={require:r,loadChunk:()=>Promise.resolve()},x=new s.AppPageRouteModule({definition:{kind:n.x.APP_PAGE,page:"/(main)/servers/[name]/page",pathname:"/servers/[name]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},21515:(e,t,r)=>{Promise.resolve().then(r.bind(r,86528))},42902:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)([(0,a.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"},"0"),(0,a.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"},"1")],"AccessTime")},95722:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"}),"ArrowForward")},65757:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4"}),"Build")},66147:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zm2.46-7.12 1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14zM15.5 4l-1-1h-5l-1 1H5v2h14V4z"}),"DeleteForever")},86202:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"}),"Download")},84527:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore")},50582:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11"}),"Extension")},46973:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m0 12H4V8h16z"}),"FolderOpen")},82538:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z"}),"KeyboardArrowDown")},75614:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56M12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96M4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56m2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8M12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96M14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2m.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56M16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2z"}),"Language")},58039:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"m21.41 11.58-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42M5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7"}),"LocalOffer")},25414:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M21 11V3h-8l3.29 3.29-10 10L3 13v8h8l-3.29-3.29 10-10z"}),"OpenInFull")},72419:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M9 16h2V8H9zm3-14C6.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 8m1-4h2V8h-2z"}),"PauseCircleOutline")},17820:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M12 5V2L8 6l4 4V7c3.31 0 6 2.69 6 6 0 2.97-2.17 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93 0-4.42-3.58-8-8-8m-6 8c0-1.65.67-3.15 1.76-4.24L6.34 7.34C4.9 8.79 4 10.79 4 13c0 4.08 3.05 7.44 7 7.93v-2.02c-2.83-.48-5-2.94-5-5.91"}),"RestartAlt")},11475:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z"}),"Save")},7060:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-6 6h-2V4h2zm3 0h-2V4h2zm3 0h-2V4h2z"}),"SdStorage")},93599:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5z"}),"Shield")},36438:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"m20.38 8.57-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1 10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49-8.49 5.66a2 2 0 0 0 0 2.83"}),"Speed")},3470:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"m21.58 16.09-1.09-7.66C20.21 6.46 18.52 5 16.53 5H7.47C5.48 5 3.79 6.46 3.51 8.43l-1.09 7.66C2.2 17.63 3.39 19 4.94 19c.68 0 1.32-.27 1.8-.75L9 16h6l2.25 2.25c.48.48 1.13.75 1.8.75 1.56 0 2.75-1.37 2.53-2.91M11 11H9v2H8v-2H6v-1h2V8h1v2h2zm4-1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m2 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1"}),"SportsEsports")},43992:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M20 4H4c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2m0 14H4V8h16zm-2-1h-6v-2h6zM7.5 17l-1.41-1.41L8.67 13l-2.59-2.59L7.5 9l4 4z"}),"Terminal")},23090:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"m18.25 7.6-5.5-3.18c-.46-.27-1.04-.27-1.5 0L5.75 7.6c-.46.27-.75.76-.75 1.3v6.35c0 .54.29 1.03.75 1.3l5.5 3.18c.46.27 1.04.27 1.5 0l5.5-3.18c.46-.27.75-.76.75-1.3V8.9c0-.54-.29-1.03-.75-1.3M7 14.96v-4.62l4 2.32v4.61zm5-4.03L8 8.61l4-2.31 4 2.31zm1 6.34v-4.61l4-2.32v4.62zM7 2H3.5C2.67 2 2 2.67 2 3.5V7h2V4h3zm10 0h3.5c.83 0 1.5.67 1.5 1.5V7h-2V4h-3zM7 22H3.5c-.83 0-1.5-.67-1.5-1.5V17h2v3h3zm10 0h3.5c.83 0 1.5-.67 1.5-1.5V17h-2v3h-3z"}),"ViewInAr")},26518:(e,t,r)=>{"use strict";var s=r(66682);t.Z=void 0;var n=s(r(7750)),a=r(58120);t.Z=(0,n.default)((0,a.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning")},86528:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>t7});var s,n,a=r(58120),i=r(36372),o=r(56539),l=r(49856),d=r(89352),c=r(10257),p=r(54365),u=r(66757),x=r(79943),h=r(68913),m=r(67073),g=r(92797),v=r(2365),f=r(51232),y=r(99634),b=r(63654),Z=r(63856),j=r(34443),C=r(44696),S=r(15539),w=r(51290),k=r(6275),R=r(73100),I=r(95940),P=r(43312),z=r(29553),T=r(54655),M=r(96454),A=r(23090),O=r(58039),$=r(30463),F=r(42902),W=r(48787),D=r(92559),L=r(80336),N=r(33615),E=r(36438),q=r(7060),H=r(46973),B=r(25414),U=r(82538),V=r(43992),K=r(95223);function G({value:e,unit:t,label:r,icon:s,progress:n,progressMax:i,color:o="#1bd96a"}){return(0,a.jsxs)(m.Z,{"data-testid":"resource-stat-card",sx:{p:2.5,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",borderRadius:3},children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:2},children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"baseline",gap:.75,flexWrap:"wrap",minWidth:0},children:[a.jsx(v.Z,{variant:"h4",component:"span",sx:{fontWeight:700,color:"text.primary",fontFamily:'"Roboto Mono", monospace',letterSpacing:"-0.5px"},children:e}),a.jsx(v.Z,{variant:"body2",component:"span",sx:{color:"text.secondary",fontWeight:500},children:t})]}),a.jsx(d.Z,{sx:{color:"text.secondary",flexShrink:0},children:s})]}),a.jsx(v.Z,{variant:"body2",sx:{color:"text.secondary",fontWeight:500,mt:.5},children:r}),a.jsx(K.Z,{variant:"determinate",value:Math.min(n/i*100,100),sx:{mt:1,height:6,borderRadius:1.5,bgcolor:"#2a2d3a","& .MuiLinearProgress-bar":{borderRadius:1.5,background:`linear-gradient(90deg, ${o} 0%, ${o}cc 100%)`}}})]})}var _=r(50423),J=r(6418),Q=r(58664),X=r(73091),Y=r(98243),ee=r(40611),et=r(95722),er=r(71438),es=r(55049),en=r(15784);function ea({serverName:e}){let{data:t,isLoading:r,error:s}=(0,en.HZ)(e,{limit:20});if(r)return a.jsx(d.Z,{children:[void 0,void 0,void 0,void 0,void 0].map((e,t)=>(0,a.jsxs)(d.Z,{sx:{display:"flex",gap:2,py:1.5},children:[a.jsx(h.Z,{variant:"rounded",width:60,height:24}),a.jsx(h.Z,{variant:"text",width:"60%"}),a.jsx(h.Z,{variant:"text",width:50})]},t))});if(s)return(0,a.jsxs)(u.Z,{severity:"error",children:["Failed to load activity: ",s.message]});let n=t?.logs??[];if(0===n.length)return a.jsx(v.Z,{variant:"body2",color:"text.secondary",sx:{py:4,textAlign:"center"},children:"No activity recorded for this server yet."});let i=`/audit-logs?targetType=server&targetName=${encodeURIComponent(e)}`;return(0,a.jsxs)(d.Z,{children:[a.jsx(Q.Z,{sx:{py:0},children:n.map(e=>{var t;return a.jsx(X.ZP,{sx:{px:0,py:1.5,"&:not(:last-child)":{borderBottom:"1px solid",borderColor:"divider"}},children:a.jsx(Z.Z,{primary:(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[a.jsx(er.I,{action:e.action,size:"small"}),(0,a.jsxs)(v.Z,{variant:"body2",color:"text.secondary",children:["by ",e.actor.replace("api:","").replace("cli:","")]}),a.jsx(es.c,{status:e.status,size:"small"})]}),secondary:a.jsx(Y.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:a.jsx(v.Z,{variant:"caption",component:"span",color:"text.disabled",children:function(e){let t=new Date,r=new Date(e),s=Math.floor((t.getTime()-r.getTime())/6e4),n=Math.floor(s/60);return s<1?"just now":s<60?`${s}m ago`:n<24?`${n}h ago`:`${Math.floor(n/24)}d ago`}(e.timestamp)})})})},e.id)})}),a.jsx(d.Z,{sx:{mt:2,textAlign:"center"},children:a.jsx(c.Z,{component:ee.default,href:i,size:"small",endIcon:a.jsx(et.Z,{}),sx:{textTransform:"none"},children:"View Full History"})})]})}var ei=r(60920),eo=r(26518),el=r(66147),ed=r(17820),ec=r(74151),ep=r(23016),eu=r(61960),ex=r(29564),eh=r(11475),em=r(75614);function eg({serverName:e}){let{data:t,isLoading:r}=(0,ec.Js)(e),s=(0,ec.Bx)(),[n,o]=(0,i.useState)([]),[l,h]=(0,i.useState)(!1),[f,y]=(0,i.useState)(!1),[b,Z]=(0,i.useState)(""),[j,C]=(0,i.useState)(""),[S,w]=(0,i.useState)(!1),[R,I]=(0,i.useState)({open:!1,message:"",severity:"success"}),P=e=>{let t=e.trim().toLowerCase();return t?t.length>253?"Domain exceeds 253 characters":/^[a-z0-9]([a-z0-9\-.]*[a-z0-9])?$/.test(t)?t.endsWith(".local")?"Cannot use .local system domain":t.endsWith(".nip.io")?"Cannot use .nip.io system domain":n.includes(t)?"Domain already exists":"":"Invalid domain format":"Domain cannot be empty"},z=()=>{let e=b.trim().toLowerCase(),t=P(e);if(t){C(t);return}o(t=>[...t,e]),Z(""),C(""),y(!1),h(!0)},T=e=>{o(t=>t.filter(t=>t!==e)),h(!0)},A=async()=>{try{await s.mutateAsync({serverName:e,customHostnames:n}),h(!1),w(!0),I({open:!0,message:"Hostnames saved. Container recreation required to apply changes.",severity:"warning"})}catch(e){I({open:!0,message:e instanceof Error?e.message:"Failed to save hostnames",severity:"error"})}},O=()=>{y(!1),Z(""),C("")};return r?a.jsx(m.Z,{sx:{mb:3,borderRadius:3},children:a.jsx(g.Z,{children:a.jsx(d.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:a.jsx(x.Z,{size:24})})})}):(0,a.jsxs)(a.Fragment,{children:[a.jsx(m.Z,{sx:{mb:3,borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1},children:[a.jsx(em.Z,{color:"primary"}),a.jsx(v.Z,{variant:"h6",fontWeight:600,children:"Hostnames / Domains"})]}),a.jsx(v.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Manage hostnames used by mc-router to route connections to this server."}),a.jsx(L.Z,{sx:{mb:3}}),t?.systemHostnames&&t.systemHostnames.length>0&&(0,a.jsxs)(d.Z,{sx:{mb:3},children:[a.jsx(v.Z,{variant:"subtitle2",color:"text.secondary",sx:{mb:1},children:"System Hostnames (read-only)"}),a.jsx(ep.Z,{direction:"row",flexWrap:"wrap",gap:1,children:t.systemHostnames.map(e=>a.jsx(W.Z,{icon:a.jsx(eu.Z,{sx:{fontSize:16}}),label:e.hostname,title:e.description,variant:"outlined",color:"default",size:"small"},e.hostname))})]}),(0,a.jsxs)(d.Z,{sx:{mb:2},children:[a.jsx(v.Z,{variant:"subtitle2",color:"text.secondary",sx:{mb:1},children:"Custom Domains"}),0===n.length&&!f&&a.jsx(v.Z,{variant:"body2",color:"text.disabled",sx:{mb:1},children:"No custom domains configured."}),a.jsx(ep.Z,{spacing:1,children:n.map(e=>(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",py:.5,px:1.5,borderRadius:1,bgcolor:"action.hover"},children:[a.jsx(v.Z,{variant:"body2",fontFamily:'"Roboto Mono", monospace',children:e}),a.jsx(p.Z,{size:"small",color:"error",onClick:()=>T(e),title:"Remove domain",children:a.jsx(M.Z,{fontSize:"small"})})]},e))}),f?(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"flex-start",gap:1,mt:1},children:[a.jsx(k.Z,{size:"small",placeholder:"e.g. play.example.com",value:b,onChange:e=>{Z(e.target.value),C("")},onKeyDown:e=>{"Enter"===e.key&&z(),"Escape"===e.key&&O()},error:!!j,helperText:j,autoFocus:!0,sx:{flex:1}}),a.jsx(c.Z,{size:"small",variant:"contained",onClick:z,children:"Add"}),a.jsx(p.Z,{size:"small",onClick:O,children:a.jsx(N.Z,{fontSize:"small"})})]}):a.jsx(c.Z,{size:"small",startIcon:a.jsx(ex.Z,{}),onClick:()=>y(!0),sx:{mt:1},children:"Add Domain"})]}),S&&(0,a.jsxs)(u.Z,{severity:"warning",sx:{mb:2},children:["Container recreation is required for hostname changes to take effect. Run ",a.jsx("code",{children:"docker compose up -d"})," or restart the server from the dashboard."]}),a.jsx(d.Z,{sx:{display:"flex",justifyContent:"flex-end"},children:a.jsx(c.Z,{variant:"contained",size:"small",startIcon:a.jsx(eh.Z,{}),onClick:A,disabled:!l||s.isPending,children:s.isPending?"Saving...":"Save Hostnames"})})]})}),a.jsx(ei.Z,{open:R.open,autoHideDuration:6e3,onClose:()=>I({...R,open:!1}),anchorOrigin:{vertical:"bottom",horizontal:"right"},children:a.jsx(u.Z,{onClose:()=>I({...R,open:!1}),severity:R.severity,sx:{width:"100%"},children:R.message})})]})}var ev=r(5374),ef=r(84527),ey=r(73276),eb=r(32486),eZ=r(2200),ej=r(14360),eC=r(16770),eS=r(27767),ew=r(36739);function ek({field:e,value:t,onChange:r}){let[s,n]=(0,i.useState)(!1),o=e.columns??6;return a.jsx(R.ZP,{item:!0,xs:12,sm:o,children:(()=>{switch(e.type){case"boolean":return(0,a.jsxs)(d.Z,{children:[a.jsx(ej.Z,{control:a.jsx(eC.Z,{checked:t??!1,onChange:t=>r(e.key,t.target.checked)}),label:e.label}),e.helperText&&a.jsx(v.Z,{variant:"caption",color:"text.secondary",sx:{ml:4,display:"block"},children:e.helperText})]});case"select":return(0,a.jsxs)(eb.Z,{fullWidth:!0,size:"small",children:[a.jsx(eZ.Z,{children:e.label}),a.jsx(ey.Z,{value:t??e.options?.[0]?.value??"",label:e.label,onChange:t=>r(e.key,t.target.value),children:e.options?.map(e=>a.jsx(y.Z,{value:e.value,children:e.label},e.value))})]});case"number":return a.jsx(k.Z,{fullWidth:!0,size:"small",type:"number",label:e.label,value:t??"",onChange:t=>{let s=t.target.value;r(e.key,""===s?void 0:parseInt(s,10))},inputProps:{min:e.validation?.min,max:e.validation?.max},helperText:e.helperText,InputProps:e.unit?{endAdornment:a.jsx(D.Z,{position:"end",children:a.jsx(v.Z,{variant:"caption",color:"text.secondary",children:e.unit})})}:void 0});case"password":return a.jsx(k.Z,{fullWidth:!0,size:"small",type:s?"text":"password",label:e.label,value:t??"",onChange:t=>r(e.key,t.target.value),helperText:e.helperText,InputProps:{endAdornment:a.jsx(D.Z,{position:"end",children:a.jsx(p.Z,{size:"small",onClick:()=>n(!s),edge:"end",children:s?a.jsx(ew.Z,{fontSize:"small"}):a.jsx(eS.Z,{fontSize:"small"})})})}});default:return a.jsx(k.Z,{fullWidth:!0,size:"small",label:e.label,value:t??"",onChange:t=>r(e.key,t.target.value),helperText:e.helperText})}})()})}function eR({section:e,values:t,onChange:r}){let[s,n]=(0,i.useState)(!1),o=e.icon,l=e.advancedFields.length;return a.jsx(m.Z,{sx:{mb:3,borderRadius:3},children:(0,a.jsxs)(g.Z,{sx:{p:3},children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1.5,mb:1},children:[a.jsx(o,{sx:{fontSize:22,color:"primary.main"}}),a.jsx(v.Z,{variant:"h6",fontWeight:600,children:e.title})]}),a.jsx(v.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:e.description}),a.jsx(L.Z,{sx:{mb:3}}),a.jsx(R.ZP,{container:!0,spacing:2.5,children:e.essentialFields.map(e=>a.jsx(ek,{field:e,value:t[e.key],onChange:r},e.key))}),l>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(c.Z,{fullWidth:!0,variant:"text",onClick:()=>n(!s),endIcon:a.jsx(ef.Z,{sx:{transform:s?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.3s"}}),sx:{mt:2.5,justifyContent:"flex-start",color:"text.secondary",textTransform:"none",py:1,"&:hover":{bgcolor:"action.hover"}},children:[s?"Hide":"Show"," Advanced Settings (",l,")"]}),a.jsx(ev.Z,{in:s,timeout:300,children:a.jsx(d.Z,{sx:{pt:2,borderTop:"1px dashed",borderColor:"divider"},children:a.jsx(R.ZP,{container:!0,spacing:2.5,children:e.advancedFields.map(e=>a.jsx(ek,{field:e,value:t[e.key],onChange:r},e.key))})})})]})]})})}var eI=r(11999);function eP({hasChanges:e,changedCount:t,hasRestartChanges:r,restartFields:s=[],isSaving:n,onSave:i,onDiscard:o}){return a.jsx(eI.Z,{direction:"up",in:e,mountOnEnter:!0,unmountOnExit:!0,children:(0,a.jsxs)(d.Z,{sx:{position:"sticky",bottom:0,zIndex:1100,bgcolor:"background.paper",borderTop:2,borderColor:"primary.main",px:3,py:2,mx:-3,mb:-3,boxShadow:"0 -4px 20px rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:1},children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[r&&a.jsx(ed.Z,{sx:{color:"warning.main",fontSize:20}}),(0,a.jsxs)(v.Z,{variant:"body2",fontWeight:600,children:[t," unsaved change",1!==t?"s":""]}),r&&(0,a.jsxs)(v.Z,{variant:"caption",color:"warning.main",children:["(",s.length>0?s.join(", "):"some fields"," require restart)"]})]}),(0,a.jsxs)(d.Z,{sx:{display:"flex",gap:1},children:[a.jsx(c.Z,{variant:"text",color:"inherit",onClick:o,disabled:n,children:"Discard"}),a.jsx(c.Z,{variant:"contained",startIcon:n?a.jsx(x.Z,{size:16,color:"inherit"}):a.jsx(eh.Z,{}),onClick:i,disabled:n,children:n?"Saving...":`Save Changes (${t})`})]})]})})}function ez({open:e,changedFields:t,onSaveOnly:r,onSaveAndRestart:s,onCancel:n}){return(0,a.jsxs)(j.Z,{open:e,onClose:n,maxWidth:"sm",fullWidth:!0,children:[a.jsx(C.Z,{children:(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[a.jsx(ed.Z,{color:"warning"}),a.jsx(v.Z,{variant:"h6",fontWeight:600,children:"Restart Required"})]})}),(0,a.jsxs)(S.Z,{children:[a.jsx(v.Z,{variant:"body1",gutterBottom:!0,children:"The following changes require a server restart to take effect:"}),a.jsx(Q.Z,{dense:!0,children:t.map(e=>a.jsx(X.ZP,{sx:{py:0},children:a.jsx(Z.Z,{primary:e,primaryTypographyProps:{variant:"body2",fontFamily:'"Roboto Mono", monospace'}})},e))})]}),(0,a.jsxs)(w.Z,{children:[a.jsx(c.Z,{onClick:n,color:"inherit",children:"Cancel"}),a.jsx(c.Z,{onClick:r,variant:"outlined",children:"Save Only"}),a.jsx(c.Z,{onClick:s,variant:"contained",color:"warning",children:"Save & Restart"})]})]})}var eT=r(3470),eM=r(1877),eA=r(93599),eO=r(72419),e$=r(77343);let eF=[{id:"gameplay",icon:eT.Z,title:"Gameplay",description:"Core game rules and player experience settings.",essentialFields:[{key:"difficulty",label:"Difficulty",type:"select",options:[{value:"peaceful",label:"Peaceful"},{value:"easy",label:"Easy"},{value:"normal",label:"Normal"},{value:"hard",label:"Hard"}]},{key:"gameMode",label:"Game Mode",type:"select",options:[{value:"survival",label:"Survival"},{value:"creative",label:"Creative"},{value:"adventure",label:"Adventure"},{value:"spectator",label:"Spectator"}]},{key:"maxPlayers",label:"Max Players",type:"number",validation:{min:1,max:1e3}},{key:"pvp",label:"Enable PvP",type:"boolean",helperText:"Allow players to damage each other"}],advancedFields:[{key:"forceGamemode",label:"Force Game Mode",type:"boolean",helperText:"Force game mode when players join"},{key:"hardcore",label:"Hardcore",type:"boolean",helperText:"One life only - world deleted on death"},{key:"allowFlight",label:"Allow Flight",type:"boolean",helperText:"Allow flight in survival mode"},{key:"allowNether",label:"Allow Nether",type:"boolean",helperText:"Enable Nether portal access"},{key:"enableCommandBlock",label:"Command Blocks",type:"boolean",helperText:"Enable command block functionality"},{key:"spawnProtection",label:"Spawn Protection",type:"number",helperText:"Radius around spawn (0 = disabled)",unit:"blocks",validation:{min:0,max:256}},{key:"spawnAnimals",label:"Spawn Animals",type:"boolean",helperText:"Spawn passive mobs (cows, pigs, etc.)"},{key:"spawnMonsters",label:"Spawn Monsters",type:"boolean",helperText:"Spawn hostile mobs (zombies, creepers, etc.)"},{key:"spawnNpcs",label:"Spawn NPCs",type:"boolean",helperText:"Spawn villagers and wandering traders"}]},{id:"world",icon:eM.Z,title:"World",description:"World generation and server identity settings.",essentialFields:[{key:"motd",label:"MOTD (Message of the Day)",type:"string",helperText:"Displayed in the server list",columns:12},{key:"level",label:"World Name",type:"string",helperText:"Save folder name",restartRequired:!0},{key:"levelType",label:"Level Type",type:"select",restartRequired:!0,options:[{value:"default",label:"Default"},{value:"flat",label:"Flat"},{value:"largeBiomes",label:"Large Biomes"},{value:"amplified",label:"Amplified"},{value:"buffet",label:"Buffet"}]},{key:"seed",label:"World Seed",type:"string",helperText:"Only affects new world generation",restartRequired:!0}],advancedFields:[{key:"generateStructures",label:"Generate Structures",type:"boolean",helperText:"Generate villages, temples, etc."},{key:"maxWorldSize",label:"Max World Size",type:"number",unit:"blocks",helperText:"Maximum world radius",validation:{min:1,max:29999984}},{key:"icon",label:"Server Icon URL",type:"string",helperText:"64x64 PNG image URL",columns:12}]},{id:"security",icon:eA.Z,title:"Security",description:"Authentication and access control settings.",essentialFields:[{key:"onlineMode",label:"Online Mode (Mojang Auth)",type:"boolean",helperText:"Disable to allow cracked clients (not recommended)",restartRequired:!0},{key:"enableWhitelist",label:"Enable Whitelist",type:"boolean",helperText:"Only whitelisted players can join",restartRequired:!0}],advancedFields:[{key:"enforceWhitelist",label:"Enforce Whitelist",type:"boolean",helperText:"Kick non-whitelisted players already online",restartRequired:!0},{key:"enforceSecureProfile",label:"Enforce Secure Profile",type:"boolean",helperText:"Require signed chat messages from players",restartRequired:!0}]},{id:"performance",icon:E.Z,title:"Performance & JVM",description:"Memory, view distance, and JVM optimization settings.",essentialFields:[{key:"memory",label:"Memory",type:"string",helperText:"e.g., 2G, 4G, 8G",restartRequired:!0},{key:"useAikarFlags",label:"Aikar's Flags",type:"boolean",helperText:"Optimized GC flags for Paper/Spigot",restartRequired:!0},{key:"viewDistance",label:"View Distance",type:"number",unit:"chunks",validation:{min:2,max:32}}],advancedFields:[{key:"simulationDistance",label:"Simulation Distance",type:"number",unit:"chunks",validation:{min:3,max:32}},{key:"maxTickTime",label:"Max Tick Time",type:"number",unit:"ms",helperText:"-1 to disable watchdog",validation:{min:-1}},{key:"initMemory",label:"Initial Heap",type:"string",helperText:"e.g., 1G (overrides Memory)",restartRequired:!0},{key:"maxMemory",label:"Max Heap",type:"string",helperText:"e.g., 8G (overrides Memory)",restartRequired:!0},{key:"jvmXxOpts",label:"JVM -XX Options",type:"string",helperText:"Additional -XX JVM flags",restartRequired:!0,columns:12}]},{id:"autopause",icon:eO.Z,title:"Auto-pause / Auto-stop",description:"Automatically pause or stop when no players are connected.",essentialFields:[{key:"enableAutopause",label:"Enable Auto-pause",type:"boolean",helperText:"Pause process when no players connected",restartRequired:!0},{key:"autopauseTimeoutEst",label:"Pause Timeout",type:"number",unit:"seconds",helperText:"Wait time after last player leaves",validation:{min:0}}],advancedFields:[{key:"autopauseTimeoutInit",label:"Init Timeout",type:"number",unit:"seconds",helperText:"Timeout after start without connections",validation:{min:0}},{key:"autopausePeriod",label:"Check Period",type:"number",unit:"seconds",helperText:"Status check interval",validation:{min:1}},{key:"enableAutostop",label:"Enable Auto-stop",type:"boolean",helperText:"Stop container when no players connected",restartRequired:!0},{key:"autostopTimeoutEst",label:"Stop Timeout",type:"number",unit:"seconds",helperText:"Wait time before stopping container",validation:{min:0}}]},{id:"system",icon:e$.Z,title:"System",description:"Timezone, resource pack, RCON, and container settings.",essentialFields:[{key:"tz",label:"Timezone",type:"string",helperText:"e.g., Asia/Seoul, UTC",restartRequired:!0},{key:"resourcePack",label:"Resource Pack URL",type:"string",helperText:"Direct download URL for resource pack",columns:12},{key:"enableRcon",label:"Enable RCON",type:"boolean",helperText:"Remote server console access",restartRequired:!0}],advancedFields:[{key:"resourcePackSha1",label:"Resource Pack SHA1",type:"string",helperText:"40-character hex checksum",columns:12},{key:"resourcePackEnforce",label:"Enforce Resource Pack",type:"boolean",helperText:"Kick players who decline"},{key:"resourcePackPrompt",label:"Resource Pack Prompt",type:"string",helperText:"Custom message for resource pack dialog",columns:12},{key:"rconPassword",label:"RCON Password",type:"password",restartRequired:!0},{key:"rconPort",label:"RCON Port",type:"number",validation:{min:1024,max:65535},restartRequired:!0},{key:"stopDuration",label:"Stop Timeout",type:"number",unit:"seconds",helperText:"Graceful shutdown wait time",restartRequired:!0,validation:{min:0}},{key:"uid",label:"User ID (UID)",type:"number",helperText:"Container process UID",restartRequired:!0,validation:{min:0}},{key:"gid",label:"Group ID (GID)",type:"number",helperText:"Container process GID",restartRequired:!0,validation:{min:0}}]}],eW=["memory","initMemory","maxMemory","useAikarFlags","jvmXxOpts","onlineMode","enableWhitelist","enforceWhitelist","enforceSecureProfile","level","seed","levelType","enableAutopause","enableAutostop","enableRcon","rconPassword","rconPort","tz","uid","gid","stopDuration"];function eD({serverName:e,isRunning:t}){let{data:r,isLoading:s}=(0,ec.iC)(e),n=(0,ec.MH)(),o=(0,ec.gx)(),l=(0,ec._I)(),[p,h]=(0,i.useState)({}),[f,y]=(0,i.useState)({}),[b,Z]=(0,i.useState)(!1),[R,I]=(0,i.useState)(""),[P,z]=(0,i.useState)(!1),[T,M]=(0,i.useState)({open:!1,message:"",severity:"info"}),A=(0,i.useMemo)(()=>{let e=[];for(let t of Object.keys(p))p[t]!==f[t]&&e.push(t);for(let t of Object.keys(f))p[t]===f[t]||e.includes(t)||e.push(t);return e},[p,f]),O=A.length>0,$=A.filter(e=>eW.includes(e)),F=$.length>0,W=(0,i.useCallback)((e,t)=>{h(r=>({...r,[e]:t}))},[]),D=(0,i.useCallback)(()=>{h(f)},[f]),N=(0,i.useCallback)(async r=>{try{let s=await n.mutateAsync({serverName:e,config:p});if(y(s.config),h(s.config),r&&t)try{await l.mutateAsync(e),M({open:!0,message:"Settings saved. Server is restarting...",severity:"warning"})}catch{M({open:!0,message:"Settings saved, but server restart failed. Please restart manually.",severity:"error"})}else M({open:!0,message:s.restartRequired?"Settings saved. Restart required for some changes to take effect.":"Settings saved successfully.",severity:s.restartRequired?"warning":"success"})}catch(e){M({open:!0,message:e instanceof Error?e.message:"Failed to save settings",severity:"error"})}finally{z(!1)}},[p,e,t,n,l]),E=(0,i.useCallback)(()=>{F&&t?z(!0):N(!1)},[F,t,N]),q=async()=>{if("RESET"!==R){M({open:!0,message:"Please type RESET to confirm",severity:"warning"});return}try{await o.mutateAsync(e),M({open:!0,message:"World reset successfully",severity:"success"}),Z(!1),I("")}catch(e){M({open:!0,message:e instanceof Error?e.message:"Failed to reset world",severity:"error"})}};return s?a.jsx(d.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:a.jsx(x.Z,{})}):(0,a.jsxs)(d.Z,{children:[a.jsx(eg,{serverName:e}),eF.map(e=>a.jsx(eR,{section:e,values:p,onChange:W},e.id)),a.jsx(m.Z,{sx:{borderRadius:3,borderColor:"error.main",borderWidth:1,borderStyle:"solid"},children:(0,a.jsxs)(g.Z,{children:[a.jsx(v.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,color:"error",children:"Danger Zone"}),a.jsx(L.Z,{sx:{mb:3}}),(0,a.jsxs)(d.Z,{sx:{mb:3},children:[a.jsx(v.Z,{variant:"subtitle1",fontWeight:600,gutterBottom:!0,children:"Reset World"}),a.jsx(v.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."}),a.jsx(c.Z,{variant:"outlined",color:"error",startIcon:a.jsx(ed.Z,{}),onClick:()=>Z(!0),disabled:t,children:"Reset World"}),t&&a.jsx(v.Z,{variant:"caption",color:"text.secondary",sx:{ml:2},children:"Stop the server first"})]})]})}),a.jsx(eP,{hasChanges:O,changedCount:A.length,hasRestartChanges:F,restartFields:$,isSaving:n.isPending,onSave:E,onDiscard:D}),a.jsx(ez,{open:P,changedFields:$,onSaveOnly:()=>N(!1),onSaveAndRestart:()=>N(!0),onCancel:()=>z(!1)}),(0,a.jsxs)(j.Z,{open:b,onClose:()=>Z(!1),maxWidth:"sm",fullWidth:!0,children:[a.jsx(C.Z,{children:(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[a.jsx(eo.Z,{color:"error"}),a.jsx(v.Z,{variant:"h6",fontWeight:600,children:"Reset World"})]})}),(0,a.jsxs)(S.Z,{children:[(0,a.jsxs)(v.Z,{variant:"body1",gutterBottom:!0,children:["This will permanently delete the world for ",a.jsx("strong",{children:e})," and generate a new one."]}),a.jsx(v.Z,{variant:"body2",color:"text.secondary",gutterBottom:!0,children:"This action cannot be undone. All player progress and builds will be lost."}),a.jsx(k.Z,{fullWidth:!0,label:"Type RESET to confirm",value:R,onChange:e=>I(e.target.value),sx:{mt:3},autoFocus:!0})]}),(0,a.jsxs)(w.Z,{children:[a.jsx(c.Z,{onClick:()=>Z(!1),children:"Cancel"}),a.jsx(c.Z,{variant:"contained",color:"error",onClick:q,disabled:"RESET"!==R||o.isPending,startIcon:o.isPending?a.jsx(x.Z,{size:16}):a.jsx(el.Z,{}),children:o.isPending?"Resetting...":"Reset World"})]})]}),a.jsx(ei.Z,{open:T.open,autoHideDuration:6e3,onClose:()=>M({...T,open:!1}),anchorOrigin:{vertical:"bottom",horizontal:"right"},children:a.jsx(u.Z,{onClose:()=>M({...T,open:!1}),severity:T.severity,sx:{width:"100%"},children:T.message})})]})}var eL=r(61573),eN=r(45286),eE=r(59615),eq=r(65757),eH=r(9561),eB=r(79795);let eU={admin:{label:"Owner",color:"primary",variant:"filled"},manage:{label:"Operator",color:"info",variant:"outlined"},view:{label:"Viewer",color:"default",variant:"outlined"}};function eV({permission:e,size:t="medium"}){let r=eU[e];return a.jsx(W.Z,{label:r.label,color:r.color,variant:r.variant,size:t})}var eK=r(36885),eG=r(4981),e_=r(30330),eJ=r(3693),eQ=r(93445),eX=r(98925),eY=r(65806);let e0=e=>{let t=i.useRef({});return i.useEffect(()=>{t.current=e}),t.current};var e1=r(49982),e2=r(39119);function e5(e){return void 0!==e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function e6(e,t){for(let r=0;r<e.length;r+=1)if(t(e[r]))return r;return -1}let e3=function(e={}){let{ignoreAccents:t=!0,ignoreCase:r=!0,limit:s,matchFrom:n="any",stringify:a,trim:i=!1}=e;return(e,{inputValue:o,getOptionLabel:l})=>{let d=i?o.trim():o;r&&(d=d.toLowerCase()),t&&(d=e5(d));let c=d?e.filter(e=>{let s=(a||l)(e);return r&&(s=s.toLowerCase()),t&&(s=e5(s)),"start"===n?0===s.indexOf(d):s.indexOf(d)>-1}):e;return"number"==typeof s?c.slice(0,s):c}}(),e4=e=>{var t;return null!==e.current&&(null==(t=e.current.parentElement)?void 0:t.contains(document.activeElement))},e8=[],e9=function(e){let{unstable_isActiveElementInListbox:t=e4,unstable_classNamePrefix:r="Mui",autoComplete:s=!1,autoHighlight:n=!1,autoSelect:a=!1,blurOnSelect:o=!1,clearOnBlur:l=!e.freeSolo,clearOnEscape:d=!1,componentName:c="useAutocomplete",defaultValue:p=e.multiple?e8:null,disableClearable:u=!1,disableCloseOnSelect:x=!1,disabled:h,disabledItemsFocusable:m=!1,disableListWrap:g=!1,filterOptions:v=e3,filterSelectedOptions:f=!1,freeSolo:y=!1,getOptionDisabled:b,getOptionKey:Z,getOptionLabel:j=e=>{var t;return null!=(t=e.label)?t:e},groupBy:C,handleHomeEndKeys:S=!e.freeSolo,id:w,includeInputInList:k=!1,inputValue:R,isOptionEqualToValue:I=(e,t)=>e===t,multiple:P=!1,onChange:z,onClose:T,onHighlightChange:M,onInputChange:A,onOpen:O,open:$,openOnFocus:F=!1,options:W,readOnly:D=!1,selectOnFocus:L=!e.freeSolo,value:N}=e,E=(0,eX.Z)(w),q=j;q=e=>{let t=j(e);return"string"!=typeof t?String(t):t};let H=i.useRef(!1),B=i.useRef(!0),U=i.useRef(null),V=i.useRef(null),[K,G]=i.useState(null),[_,J]=i.useState(-1),Q=n?0:-1,X=i.useRef(Q),[Y,ee]=(0,eY.Z)({controlled:N,default:p,name:c}),[et,er]=(0,eY.Z)({controlled:R,default:"",name:c,state:"inputValue"}),[es,en]=i.useState(!1),ea=i.useCallback((e,t)=>{let r;if((P?Y.length<t.length:null!==t)||l){if(P)r="";else if(null==t)r="";else{let e=q(t);r="string"==typeof e?e:""}et!==r&&(er(r),A&&A(e,r,"reset"))}},[q,et,P,A,er,l,Y]),[ei,eo]=(0,eY.Z)({controlled:$,default:!1,name:c,state:"open"}),[el,ed]=i.useState(!0),ec=!P&&null!=Y&&et===q(Y),ep=ei&&!D,eu=ep?v(W.filter(e=>!(f&&(P?Y:[Y]).some(t=>null!==t&&I(e,t)))),{inputValue:ec&&el?"":et,getOptionLabel:q}):[],ex=e0({filteredOptions:eu,value:Y,inputValue:et});i.useEffect(()=>{let e=Y!==ex.value;(!es||e)&&(!y||e)&&ea(null,Y)},[Y,ea,es,ex.value,y]);let eh=ei&&eu.length>0&&!D,em=(0,e1.Z)(e=>{-1===e?U.current.focus():K.querySelector(`[data-tag-index="${e}"]`).focus()});i.useEffect(()=>{P&&_>Y.length-1&&(J(-1),em(-1))},[Y,P,_,em]);let eg=(0,e1.Z)(({event:e,index:t,reason:s="auto"})=>{if(X.current=t,-1===t?U.current.removeAttribute("aria-activedescendant"):U.current.setAttribute("aria-activedescendant",`${E}-option-${t}`),M&&M(e,-1===t?null:eu[t],s),!V.current)return;let n=V.current.querySelector(`[role="option"].${r}-focused`);n&&(n.classList.remove(`${r}-focused`),n.classList.remove(`${r}-focusVisible`));let a=V.current;if("listbox"!==V.current.getAttribute("role")&&(a=V.current.parentElement.querySelector('[role="listbox"]')),!a)return;if(-1===t){a.scrollTop=0;return}let i=V.current.querySelector(`[data-option-index="${t}"]`);if(i&&(i.classList.add(`${r}-focused`),"keyboard"===s&&i.classList.add(`${r}-focusVisible`),a.scrollHeight>a.clientHeight&&"mouse"!==s&&"touch"!==s)){let e=a.clientHeight+a.scrollTop,t=i.offsetTop+i.offsetHeight;t>e?a.scrollTop=t-a.clientHeight:i.offsetTop-i.offsetHeight*(C?1.3:0)<a.scrollTop&&(a.scrollTop=i.offsetTop-i.offsetHeight*(C?1.3:0))}}),ev=(0,e1.Z)(({event:e,diff:t,direction:r="next",reason:n="auto"})=>{if(!ep)return;let a=function(e,t){if(!V.current||e<0||e>=eu.length)return -1;let r=e;for(;;){let s=V.current.querySelector(`[data-option-index="${r}"]`),n=!m&&(!s||s.disabled||"true"===s.getAttribute("aria-disabled"));if(s&&s.hasAttribute("tabindex")&&!n)return r;if((r="next"===t?(r+1)%eu.length:(r-1+eu.length)%eu.length)===e)return -1}}((()=>{let e=eu.length-1;if("reset"===t)return Q;if("start"===t)return 0;if("end"===t)return e;let r=X.current+t;return r<0?-1===r&&k?-1:g&&-1!==X.current||Math.abs(t)>1?0:e:r>e?r===e+1&&k?-1:g||Math.abs(t)>1?e:0:r})(),r);if(eg({index:a,reason:n,event:e}),s&&"reset"!==t){if(-1===a)U.current.value=et;else{let e=q(eu[a]);U.current.value=e,0===e.toLowerCase().indexOf(et.toLowerCase())&&et.length>0&&U.current.setSelectionRange(et.length,e.length)}}}),ef=()=>{var e;if(-1!==X.current&&ex.filteredOptions&&ex.filteredOptions.length!==eu.length&&ex.inputValue===et&&(P?Y.length===ex.value.length&&ex.value.every((e,t)=>q(Y[t])===q(e)):((e=ex.value)?q(e):"")===(Y?q(Y):""))){let e=ex.filteredOptions[X.current];if(e)return e6(eu,t=>q(t)===q(e))}return -1},ey=i.useCallback(()=>{if(!ep)return;let e=ef();if(-1!==e){X.current=e;return}let t=P?Y[0]:Y;if(0===eu.length||null==t){ev({diff:"reset"});return}if(V.current){if(null!=t){let e=eu[X.current];if(P&&e&&-1!==e6(Y,t=>I(e,t)))return;let r=e6(eu,e=>I(e,t));-1===r?ev({diff:"reset"}):eg({index:r});return}if(X.current>=eu.length-1){eg({index:eu.length-1});return}eg({index:X.current})}},[eu.length,!P&&Y,f,ev,eg,ep,et,P]),eb=(0,e1.Z)(e=>{(0,e2.Z)(V,e),e&&ey()});i.useEffect(()=>{ey()},[ey]);let eZ=e=>{!ei&&(eo(!0),ed(!0),O&&O(e))},ej=(e,t)=>{ei&&(eo(!1),T&&T(e,t))},eC=(e,t,r,s)=>{if(P){if(Y.length===t.length&&Y.every((e,r)=>e===t[r]))return}else if(Y===t)return;z&&z(e,t,r,s),ee(t)},eS=i.useRef(!1),ew=(e,t,r="selectOption",s="options")=>{let n=r,a=t;if(P){let e=e6(a=Array.isArray(Y)?Y.slice():[],e=>I(t,e));-1===e?a.push(t):"freeSolo"!==s&&(a.splice(e,1),n="removeOption")}ea(e,a),eC(e,a,n,{option:t}),x||e&&(e.ctrlKey||e.metaKey)||ej(e,n),(!0===o||"touch"===o&&eS.current||"mouse"===o&&!eS.current)&&U.current.blur()},ek=(e,t)=>{if(!P)return;""===et&&ej(e,"toggleInput");let r=_;-1===_?""===et&&"previous"===t&&(r=Y.length-1):((r+="next"===t?1:-1)<0&&(r=0),r===Y.length&&(r=-1)),J(r=function(e,t){if(-1===e)return -1;let r=e;for(;;){if("next"===t&&r===Y.length||"previous"===t&&-1===r)return -1;let e=K.querySelector(`[data-tag-index="${r}"]`);if(e&&e.hasAttribute("tabindex")&&!e.disabled&&"true"!==e.getAttribute("aria-disabled"))return r;r+="next"===t?1:-1}}(r,t)),em(r)},eR=e=>{H.current=!0,er(""),A&&A(e,"","clear"),eC(e,P?[]:null,"clear")},eI=e=>t=>{if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented&&(-1!==_&&-1===["ArrowLeft","ArrowRight"].indexOf(t.key)&&(J(-1),em(-1)),229!==t.which))switch(t.key){case"Home":ep&&S&&(t.preventDefault(),ev({diff:"start",direction:"next",reason:"keyboard",event:t}));break;case"End":ep&&S&&(t.preventDefault(),ev({diff:"end",direction:"previous",reason:"keyboard",event:t}));break;case"PageUp":t.preventDefault(),ev({diff:-5,direction:"previous",reason:"keyboard",event:t}),eZ(t);break;case"PageDown":t.preventDefault(),ev({diff:5,direction:"next",reason:"keyboard",event:t}),eZ(t);break;case"ArrowDown":t.preventDefault(),ev({diff:1,direction:"next",reason:"keyboard",event:t}),eZ(t);break;case"ArrowUp":t.preventDefault(),ev({diff:-1,direction:"previous",reason:"keyboard",event:t}),eZ(t);break;case"ArrowLeft":ek(t,"previous");break;case"ArrowRight":ek(t,"next");break;case"Enter":if(-1!==X.current&&ep){let e=eu[X.current],r=!!b&&b(e);if(t.preventDefault(),r)return;ew(t,e,"selectOption"),s&&U.current.setSelectionRange(U.current.value.length,U.current.value.length)}else y&&""!==et&&!1===ec&&(P&&t.preventDefault(),ew(t,et,"createOption","freeSolo"));break;case"Escape":ep?(t.preventDefault(),t.stopPropagation(),ej(t,"escape")):d&&(""!==et||P&&Y.length>0)&&(t.preventDefault(),t.stopPropagation(),eR(t));break;case"Backspace":if(P&&!D&&""===et&&Y.length>0){let e=-1===_?Y.length-1:_,r=Y.slice();r.splice(e,1),eC(t,r,"removeOption",{option:Y[e]})}break;case"Delete":if(P&&!D&&""===et&&Y.length>0&&-1!==_){let e=Y.slice();e.splice(_,1),eC(t,e,"removeOption",{option:Y[_]})}}},eP=e=>{en(!0),F&&!H.current&&eZ(e)},ez=e=>{if(t(V)){U.current.focus();return}en(!1),B.current=!0,H.current=!1,a&&-1!==X.current&&ep?ew(e,eu[X.current],"blur"):a&&y&&""!==et?ew(e,et,"blur","freeSolo"):l&&ea(e,Y),ej(e,"blur")},eT=e=>{let t=e.target.value;et!==t&&(er(t),ed(!1),A&&A(e,t,"input")),""===t?u||P||eC(e,null,"clear"):eZ(e)},eM=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));X.current!==t&&eg({event:e,index:t,reason:"mouse"})},eA=e=>{eg({event:e,index:Number(e.currentTarget.getAttribute("data-option-index")),reason:"touch"}),eS.current=!0},eO=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));ew(e,eu[t],"selectOption"),eS.current=!1},e$=e=>t=>{let r=Y.slice();r.splice(e,1),eC(t,r,"removeOption",{option:Y[e]})},eF=e=>{ei?ej(e,"toggleInput"):eZ(e)},eW=e=>{e.currentTarget.contains(e.target)&&e.target.getAttribute("id")!==E&&e.preventDefault()},eD=e=>{e.currentTarget.contains(e.target)&&(U.current.focus(),L&&B.current&&U.current.selectionEnd-U.current.selectionStart==0&&U.current.select(),B.current=!1)},eL=e=>{h||""!==et&&ei||eF(e)},eN=y&&et.length>0;eN=eN||(P?Y.length>0:null!==Y);let eE=eu;return C&&(eE=eu.reduce((e,t,r)=>{let s=C(t);return e.length>0&&e[e.length-1].group===s?e[e.length-1].options.push(t):e.push({key:r,index:r,group:s,options:[t]}),e},[])),h&&es&&ez(),{getRootProps:(e={})=>(0,eG.Z)({"aria-owns":eh?`${E}-listbox`:null},e,{onKeyDown:eI(e),onMouseDown:eW,onClick:eD}),getInputLabelProps:()=>({id:`${E}-label`,htmlFor:E}),getInputProps:()=>({id:E,value:et,onBlur:ez,onFocus:eP,onChange:eT,onMouseDown:eL,"aria-activedescendant":ep?"":null,"aria-autocomplete":s?"both":"list","aria-controls":eh?`${E}-listbox`:void 0,"aria-expanded":eh,autoComplete:"off",ref:U,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:h}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:eR}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:eF}),getTagProps:({index:e})=>(0,eG.Z)({key:e,"data-tag-index":e,tabIndex:-1},!D&&{onDelete:e$(e)}),getListboxProps:()=>({role:"listbox",id:`${E}-listbox`,"aria-labelledby":`${E}-label`,ref:eb,onMouseDown:e=>{e.preventDefault()}}),getOptionProps:({index:e,option:t})=>{var r;let s=(P?Y:[Y]).some(e=>null!=e&&I(t,e)),n=!!b&&b(t);return{key:null!=(r=null==Z?void 0:Z(t))?r:q(t),tabIndex:-1,role:"option",id:`${E}-option-${e}`,onMouseMove:eM,onClick:eO,onTouchStart:eA,"data-option-index":e,"aria-disabled":n,"aria-selected":s}},id:E,inputValue:et,value:Y,dirty:eN,expanded:ep&&K,popupOpen:ep,focused:es||-1!==_,anchorEl:K,setAnchorEl:G,focusedTag:_,groupedOptions:eE}};var e7=r(75109),te=r(62923),tt=r(9103),tr=r(29251),ts=r(89206),tn=r(7967);function ta(e){return(0,tn.ZP)("MuiListSubheader",e)}(0,ts.Z)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);let ti=["className","color","component","disableGutters","disableSticky","inset"],to=e=>{let{classes:t,color:r,disableGutters:s,inset:n,disableSticky:a}=e,i={root:["root","default"!==r&&`color${(0,tr.Z)(r)}`,!s&&"gutters",n&&"inset",!a&&"sticky"]};return(0,eJ.Z)(i,ta,t)},tl=(0,te.ZP)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,"default"!==r.color&&t[`color${(0,tr.Z)(r.color)}`],!r.disableGutters&&t.gutters,r.inset&&t.inset,!r.disableSticky&&t.sticky]}})(({theme:e,ownerState:t})=>(0,eG.Z)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14)},"primary"===t.color&&{color:(e.vars||e).palette.primary.main},"inherit"===t.color&&{color:"inherit"},!t.disableGutters&&{paddingLeft:16,paddingRight:16},t.inset&&{paddingLeft:72},!t.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper})),td=i.forwardRef(function(e,t){let r=(0,tt.i)({props:e,name:"MuiListSubheader"}),{className:s,color:n="default",component:i="li",disableGutters:o=!1,disableSticky:l=!1,inset:d=!1}=r,c=(0,eK.Z)(r,ti),p=(0,eG.Z)({},r,{color:n,component:i,disableGutters:o,disableSticky:l,inset:d}),u=to(p);return(0,a.jsx)(tl,(0,eG.Z)({as:i,className:(0,e_.Z)(u.root,s),ref:t,ownerState:p},c))});td.muiSkipListHighlight=!0;var tc=r(52329),tp=r(36633),tu=r(41256),tx=r(58631),th=r(31506),tm=r(59129),tg=r(31776);function tv(e){return(0,tn.ZP)("MuiAutocomplete",e)}let tf=(0,ts.Z)("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var ty=r(69473);let tb=["autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","className","clearIcon","clearOnBlur","clearOnEscape","clearText","closeText","componentsProps","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","disablePortal","filterOptions","filterSelectedOptions","forcePopupIcon","freeSolo","fullWidth","getLimitTagsText","getOptionDisabled","getOptionKey","getOptionLabel","isOptionEqualToValue","groupBy","handleHomeEndKeys","id","includeInputInList","inputValue","limitTags","ListboxComponent","ListboxProps","loading","loadingText","multiple","noOptionsText","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openOnFocus","openText","options","PaperComponent","PopperComponent","popupIcon","readOnly","renderGroup","renderInput","renderOption","renderTags","selectOnFocus","size","slotProps","value"],tZ=["ref"],tj=["key"],tC=["key"],tS=e=>{let{classes:t,disablePortal:r,expanded:s,focused:n,fullWidth:a,hasClearIcon:i,hasPopupIcon:o,inputFocused:l,popupOpen:d,size:c}=e,p={root:["root",s&&"expanded",n&&"focused",a&&"fullWidth",i&&"hasClearIcon",o&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${(0,tr.Z)(c)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",d&&"popupIndicatorOpen"],popper:["popper",r&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return(0,eJ.Z)(p,tv,t)},tw=(0,te.ZP)("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e,{fullWidth:s,hasClearIcon:n,hasPopupIcon:a,inputFocused:i,size:o}=r;return[{[`& .${tf.tag}`]:t.tag},{[`& .${tf.tag}`]:t[`tagSize${(0,tr.Z)(o)}`]},{[`& .${tf.inputRoot}`]:t.inputRoot},{[`& .${tf.input}`]:t.input},{[`& .${tf.input}`]:i&&t.inputFocused},t.root,s&&t.fullWidth,a&&t.hasPopupIcon,n&&t.hasClearIcon]}})({[`&.${tf.focused} .${tf.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${tf.clearIndicator}`]:{visibility:"visible"}},[`& .${tf.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${tf.inputRoot}`]:{[`.${tf.hasPopupIcon}&, .${tf.hasClearIcon}&`]:{paddingRight:30},[`.${tf.hasPopupIcon}.${tf.hasClearIcon}&`]:{paddingRight:56},[`& .${tf.input}`]:{width:0,minWidth:30}},[`& .${tp.Z.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${tp.Z.root}.${tu.Z.sizeSmall}`]:{[`& .${tp.Z.input}`]:{padding:"2px 4px 3px 0"}},[`& .${tx.Z.root}`]:{padding:9,[`.${tf.hasPopupIcon}&, .${tf.hasClearIcon}&`]:{paddingRight:39},[`.${tf.hasPopupIcon}.${tf.hasClearIcon}&`]:{paddingRight:65},[`& .${tf.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${tf.endAdornment}`]:{right:9}},[`& .${tx.Z.root}.${tu.Z.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${tf.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${th.Z.root}`]:{paddingTop:19,paddingLeft:8,[`.${tf.hasPopupIcon}&, .${tf.hasClearIcon}&`]:{paddingRight:39},[`.${tf.hasPopupIcon}.${tf.hasClearIcon}&`]:{paddingRight:65},[`& .${th.Z.input}`]:{padding:"7px 4px"},[`& .${tf.endAdornment}`]:{right:9}},[`& .${th.Z.root}.${tu.Z.sizeSmall}`]:{paddingBottom:1,[`& .${th.Z.input}`]:{padding:"2.5px 4px"}},[`& .${tu.Z.hiddenLabel}`]:{paddingTop:8},[`& .${th.Z.root}.${tu.Z.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${tf.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${th.Z.root}.${tu.Z.hiddenLabel}.${tu.Z.sizeSmall}`]:{[`& .${tf.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${tf.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${tf.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${tf.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${tf.inputRoot}`]:{flexWrap:"wrap"}}}]}),tk=(0,te.ZP)("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),tR=(0,te.ZP)(p.Z,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),tI=(0,te.ZP)(p.Z,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:e},t)=>(0,eG.Z)({},t.popupIndicator,e.popupOpen&&t.popupIndicatorOpen)})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),tP=(0,te.ZP)(e7.Z,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[{[`& .${tf.option}`]:t.option},t.popper,r.disablePortal&&t.popperDisablePortal]}})(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]})),tz=(0,te.ZP)(tc.Z,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})(({theme:e})=>(0,eG.Z)({},e.typography.body1,{overflow:"auto"})),tT=(0,te.ZP)("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"})),tM=(0,te.ZP)("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"})),tA=(0,te.ZP)("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})(({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${tf.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${tf.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${tf.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,eQ.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${tf.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,eQ.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${tf.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,eQ.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}}})),tO=(0,te.ZP)(td,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8})),t$=(0,te.ZP)("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,[`& .${tf.option}`]:{paddingLeft:24}}),tF=i.forwardRef(function(e,t){var r,o,l,d;let c;let p=(0,tt.i)({props:e,name:"MuiAutocomplete"}),{autoComplete:u=!1,autoHighlight:x=!1,autoSelect:h=!1,blurOnSelect:m=!1,ChipProps:g,className:v,clearIcon:f=s||(s=(0,a.jsx)(tm.Z,{fontSize:"small"})),clearOnBlur:y=!p.freeSolo,clearOnEscape:b=!1,clearText:Z="Clear",closeText:j="Close",componentsProps:C={},defaultValue:S=p.multiple?[]:null,disableClearable:w=!1,disableCloseOnSelect:k=!1,disabled:R=!1,disabledItemsFocusable:I=!1,disableListWrap:P=!1,disablePortal:z=!1,filterSelectedOptions:T=!1,forcePopupIcon:M="auto",freeSolo:A=!1,fullWidth:O=!1,getLimitTagsText:$=e=>`+${e}`,getOptionLabel:F,groupBy:D,handleHomeEndKeys:L=!p.freeSolo,includeInputInList:N=!1,limitTags:E=-1,ListboxComponent:q="ul",ListboxProps:H,loading:B=!1,loadingText:U="Loading…",multiple:V=!1,noOptionsText:K="No options",openOnFocus:G=!1,openText:_="Open",PaperComponent:J=tc.Z,PopperComponent:Q=e7.Z,popupIcon:X=n||(n=(0,a.jsx)(tg.Z,{})),readOnly:Y=!1,renderGroup:ee,renderInput:et,renderOption:er,renderTags:es,selectOnFocus:en=!p.freeSolo,size:ea="medium",slotProps:ei={}}=p,eo=(0,eK.Z)(p,tb),{getRootProps:el,getInputProps:ed,getInputLabelProps:ec,getPopupIndicatorProps:ep,getClearProps:eu,getTagProps:ex,getListboxProps:eh,getOptionProps:em,value:eg,dirty:ev,expanded:ef,id:ey,popupOpen:eb,focused:eZ,focusedTag:ej,anchorEl:eC,setAnchorEl:eS,inputValue:ew,groupedOptions:ek}=e9((0,eG.Z)({},p,{componentName:"Autocomplete"})),eR=!w&&!R&&ev&&!Y,eI=(!A||!0===M)&&!1!==M,{onMouseDown:eP}=ed(),{ref:ez}=null!=H?H:{},eT=eh(),{ref:eM}=eT,eA=(0,eK.Z)(eT,tZ),eO=(0,ty.Z)(eM,ez),e$=F||(e=>{var t;return null!=(t=e.label)?t:e}),eF=(0,eG.Z)({},p,{disablePortal:z,expanded:ef,focused:eZ,fullWidth:O,getOptionLabel:e$,hasClearIcon:eR,hasPopupIcon:eI,inputFocused:-1===ej,popupOpen:eb,size:ea}),eW=tS(eF);if(V&&eg.length>0){let e=e=>(0,eG.Z)({className:eW.tag,disabled:R},ex(e));c=es?es(eg,e,eF):eg.map((t,r)=>{let s=e({index:r}),{key:n}=s,i=(0,eK.Z)(s,tj);return(0,a.jsx)(W.Z,(0,eG.Z)({label:e$(t),size:ea},i,g),n)})}if(E>-1&&Array.isArray(c)){let e=c.length-E;!eZ&&e>0&&(c=c.splice(0,E)).push((0,a.jsx)("span",{className:eW.tag,children:$(e)},c.length))}let eD=ee||(e=>(0,a.jsxs)("li",{children:[(0,a.jsx)(tO,{className:eW.groupLabel,ownerState:eF,component:"div",children:e.group}),(0,a.jsx)(t$,{className:eW.groupUl,ownerState:eF,children:e.children})]},e.key)),eL=er||((e,t)=>{let{key:r}=e,s=(0,eK.Z)(e,tC);return(0,a.jsx)("li",(0,eG.Z)({},s,{children:e$(t)}),r)}),eN=(e,t)=>{let r=em({option:e,index:t});return eL((0,eG.Z)({},r,{className:eW.option}),e,{selected:r["aria-selected"],index:t,inputValue:ew},eF)},eE=null!=(r=ei.clearIndicator)?r:C.clearIndicator,eq=null!=(o=ei.paper)?o:C.paper,eH=null!=(l=ei.popper)?l:C.popper,eB=null!=(d=ei.popupIndicator)?d:C.popupIndicator;return(0,a.jsxs)(i.Fragment,{children:[(0,a.jsx)(tw,(0,eG.Z)({ref:t,className:(0,e_.Z)(eW.root,v),ownerState:eF},el(eo),{children:et({id:ey,disabled:R,fullWidth:!0,size:"small"===ea?"small":void 0,InputLabelProps:ec(),InputProps:(0,eG.Z)({ref:eS,className:eW.inputRoot,startAdornment:c,onClick:e=>{e.target===e.currentTarget&&eP(e)}},(eR||eI)&&{endAdornment:(0,a.jsxs)(tk,{className:eW.endAdornment,ownerState:eF,children:[eR?(0,a.jsx)(tR,(0,eG.Z)({},eu(),{"aria-label":Z,title:Z,ownerState:eF},eE,{className:(0,e_.Z)(eW.clearIndicator,null==eE?void 0:eE.className),children:f})):null,eI?(0,a.jsx)(tI,(0,eG.Z)({},ep(),{disabled:R,"aria-label":eb?j:_,title:eb?j:_,ownerState:eF},eB,{className:(0,e_.Z)(eW.popupIndicator,null==eB?void 0:eB.className),children:X})):null]})}),inputProps:(0,eG.Z)({className:eW.input,disabled:R,readOnly:Y},ed())})})),eC?(0,a.jsx)(tP,(0,eG.Z)({as:Q,disablePortal:z,style:{width:eC?eC.clientWidth:null},ownerState:eF,role:"presentation",anchorEl:eC,open:eb},eH,{className:(0,e_.Z)(eW.popper,null==eH?void 0:eH.className),children:(0,a.jsxs)(tz,(0,eG.Z)({ownerState:eF,as:J},eq,{className:(0,e_.Z)(eW.paper,null==eq?void 0:eq.className),children:[B&&0===ek.length?(0,a.jsx)(tT,{className:eW.loading,ownerState:eF,children:U}):null,0!==ek.length||A||B?null:(0,a.jsx)(tM,{className:eW.noOptions,ownerState:eF,role:"presentation",onMouseDown:e=>{e.preventDefault()},children:K}),ek.length>0?(0,a.jsx)(tA,(0,eG.Z)({as:q,className:eW.listbox,ownerState:eF},eA,H,{ref:eO,children:ek.map((e,t)=>D?eD({key:e.key,group:e.group,children:e.options.map((t,r)=>eN(t,e.index+r))}):eN(e,t))})):null]}))})):null]})});var tW=r(99943),tD=r(92241),tL=r(61974),tN=r(28872),tE=r(95343),tq=r(20042),tH=r(43137);function tB({open:e,onClose:t,serverId:r}){var s;let[n,o]=(0,i.useState)(""),[l,p]=(0,i.useState)(null),[h,m]=(0,i.useState)("view"),{data:g,isLoading:f}=(s={enabled:e},(0,tN.a)({queryKey:["users","search",n],queryFn:()=>(0,tH.SC)(`/api/users?q=${encodeURIComponent(n)}`),enabled:s?.enabled!==!1&&n.length>=2,staleTime:3e4})),y=function(){let e=(0,tE.NL)();return(0,tq.D)({mutationFn:e=>(0,tH.SC)("/api/user-servers",{method:"POST",body:JSON.stringify(e)}),onSuccess:(t,r)=>{e.invalidateQueries({queryKey:["user-servers",r.serverId]}),e.invalidateQueries({queryKey:["user-servers"]})}})}(),b=(0,i.useMemo)(()=>g?.users??[],[g]),Z=()=>{o(""),p(null),m("view"),y.reset(),t()};return(0,a.jsxs)(j.Z,{open:e,onClose:Z,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:3}},children:[a.jsx(C.Z,{sx:{fontWeight:600},children:"Add User Access"}),(0,a.jsxs)(S.Z,{sx:{display:"flex",flexDirection:"column",gap:3,pt:"8px !important"},children:[y.isError&&a.jsx(u.Z,{severity:"error",sx:{mb:1},children:y.error?.message||"Failed to grant access"}),a.jsx(tF,{options:b,getOptionLabel:e=>e.name||e.email,isOptionEqualToValue:(e,t)=>e.id===t.id,value:l,onChange:(e,t)=>p(t),inputValue:n,onInputChange:(e,t)=>o(t),loading:f,filterOptions:e=>e,noOptionsText:n.length<2?"Type at least 2 characters":"No users found",renderInput:e=>a.jsx(k.Z,{...e,label:"Search User",placeholder:"Search by name or email...",InputProps:{...e.InputProps,endAdornment:(0,a.jsxs)(a.Fragment,{children:[f&&a.jsx(x.Z,{size:20}),e.InputProps.endAdornment]})}}),renderOption:(e,t)=>{let{key:r,...s}=e;return(0,a.jsxs)(d.Z,{component:"li",...s,sx:{display:"flex",gap:1.5,py:1},children:[a.jsx(eL.Z,{src:t.image??void 0,sx:{width:32,height:32,bgcolor:"primary.main",fontSize:14},children:(t.name?.[0]||t.email?.[0]||"?").toUpperCase()}),(0,a.jsxs)(d.Z,{children:[a.jsx(v.Z,{variant:"body2",fontWeight:500,children:t.name||"Unknown"}),a.jsx(v.Z,{variant:"caption",color:"text.secondary",children:t.email})]})]},r)}}),(0,a.jsxs)(eb.Z,{children:[a.jsx(tW.Z,{sx:{fontWeight:500,mb:1},children:"Permission Level"}),(0,a.jsxs)(tD.Z,{value:h,onChange:e=>m(e.target.value),children:[a.jsx(ej.Z,{value:"view",control:a.jsx(tL.Z,{size:"small"}),label:(0,a.jsxs)(d.Z,{children:[a.jsx(v.Z,{variant:"body2",fontWeight:500,children:"Viewer"}),a.jsx(v.Z,{variant:"caption",color:"text.secondary",children:"Can view server status and logs"})]})}),a.jsx(ej.Z,{value:"manage",control:a.jsx(tL.Z,{size:"small"}),label:(0,a.jsxs)(d.Z,{children:[a.jsx(v.Z,{variant:"body2",fontWeight:500,children:"Operator"}),a.jsx(v.Z,{variant:"caption",color:"text.secondary",children:"Can start, stop, and configure the server"})]})}),a.jsx(ej.Z,{value:"admin",control:a.jsx(tL.Z,{size:"small"}),label:(0,a.jsxs)(d.Z,{children:[a.jsx(v.Z,{variant:"body2",fontWeight:500,children:"Owner"}),a.jsx(v.Z,{variant:"caption",color:"text.secondary",children:"Full control including managing other users"})]})})]})]})]}),(0,a.jsxs)(w.Z,{sx:{px:3,pb:2},children:[a.jsx(c.Z,{onClick:Z,color:"inherit",children:"Cancel"}),a.jsx(c.Z,{onClick:()=>{l&&y.mutate({userId:l.id,serverId:r,permission:h},{onSuccess:Z})},variant:"contained",disabled:!l||y.isPending,sx:{borderRadius:2},children:y.isPending?"Adding...":"Add User"})]})]})}function tU({serverId:e}){let{data:t,isLoading:r,error:s}=(0,tN.a)({queryKey:["user-servers",e],queryFn:()=>(0,tH.SC)(`/api/user-servers?serverId=${encodeURIComponent(e)}`),enabled:!!e}),n=function(){let e=(0,tE.NL)();return(0,tq.D)({mutationFn:({id:e,permission:t})=>(0,tH.SC)(`/api/user-servers/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify({permission:t})}),onSuccess:()=>{e.invalidateQueries({queryKey:["user-servers"]})}})}(),o=function(){let e=(0,tE.NL)();return(0,tq.D)({mutationFn:e=>(0,tH.SC)(`/api/user-servers/${encodeURIComponent(e)}`,{method:"DELETE"}),onSuccess:()=>{e.invalidateQueries({queryKey:["user-servers"]})}})}(),[l,x]=(0,i.useState)(!1),[j,C]=(0,i.useState)(null),[S,w]=(0,i.useState)(null),k=(e,t)=>{C(e.currentTarget),w(t)},R=()=>{C(null),w(null)},I=e=>{if(!S||S.permission===e){R();return}n.mutate({id:S.id,permission:e},{onSettled:R})},P=t?.users.filter(e=>"admin"===e.permission).length??0,z=S?.permission==="admin"&&P<=1;if(r)return a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[a.jsx(h.Z,{variant:"text",width:"30%",height:32}),a.jsx(h.Z,{variant:"rounded",width:120,height:36,sx:{borderRadius:2}})]}),a.jsx(L.Z,{sx:{mb:2}}),[0,1,2].map(e=>(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:2,py:1.5,borderBottom:"1px solid",borderColor:"divider"},children:[a.jsx(h.Z,{variant:"circular",width:40,height:40}),(0,a.jsxs)(d.Z,{sx:{flex:1},children:[a.jsx(h.Z,{variant:"text",width:"40%"}),a.jsx(h.Z,{variant:"text",width:"60%"})]}),a.jsx(h.Z,{variant:"rounded",width:80,height:28,sx:{borderRadius:10}}),a.jsx(h.Z,{variant:"circular",width:32,height:32})]},e))]})});if(s)return(0,a.jsxs)(u.Z,{severity:"error",children:["Failed to load access list: ",s.message]});let M=t?.users??[];return(0,a.jsxs)(a.Fragment,{children:[a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[a.jsx(v.Z,{variant:"h6",fontWeight:600,children:"Server Access"}),a.jsx(c.Z,{variant:"contained",size:"small",startIcon:a.jsx(eN.Z,{}),onClick:()=>x(!0),sx:{borderRadius:2},children:"Add User"})]}),a.jsx(L.Z,{sx:{mb:1}}),0===M.length?a.jsx(d.Z,{sx:{py:4,textAlign:"center"},children:a.jsx(v.Z,{variant:"body2",color:"text.secondary",children:"No users have been granted access to this server yet."})}):M.map(e=>(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:2,py:1.5,"&:not(:last-child)":{borderBottom:"1px solid",borderColor:"divider"}},children:[a.jsx(eL.Z,{src:e.user?.image??void 0,sx:{width:40,height:40,bgcolor:"primary.main",fontSize:16},children:(e.user?.name?.[0]||e.user?.email?.[0]||"?").toUpperCase()}),(0,a.jsxs)(d.Z,{sx:{flex:1,minWidth:0},children:[a.jsx(v.Z,{variant:"body2",fontWeight:500,noWrap:!0,children:e.user?.name||"Unknown User"}),a.jsx(v.Z,{variant:"caption",color:"text.secondary",noWrap:!0,children:e.user?.email||e.userId})]}),a.jsx(eV,{permission:e.permission,size:"small"}),a.jsx(p.Z,{size:"small",onClick:t=>k(t,e),sx:{color:"text.secondary"},children:a.jsx(T.Z,{fontSize:"small"})})]},e.id)),(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1,mt:2,pt:1},children:[a.jsx(eB.Z,{sx:{fontSize:16,color:"text.disabled"}}),a.jsx(v.Z,{variant:"caption",color:"text.disabled",children:"Only platform admins and server owners can manage access."})]})]})}),(0,a.jsxs)(f.Z,{anchorEl:j,open:!!j,onClose:R,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},disableScrollLock:!0,children:[(0,a.jsxs)(y.Z,{onClick:()=>I("admin"),disabled:S?.permission==="admin",children:[a.jsx(b.Z,{children:a.jsx(eE.Z,{fontSize:"small"})}),a.jsx(Z.Z,{children:"Change to Owner"})]}),(0,a.jsxs)(y.Z,{onClick:()=>I("manage"),disabled:S?.permission==="manage"||z,children:[a.jsx(b.Z,{children:a.jsx(eq.Z,{fontSize:"small"})}),a.jsx(Z.Z,{children:"Change to Operator"})]}),(0,a.jsxs)(y.Z,{onClick:()=>I("view"),disabled:S?.permission==="view"||z,children:[a.jsx(b.Z,{children:a.jsx(eS.Z,{fontSize:"small"})}),a.jsx(Z.Z,{children:"Change to Viewer"})]}),a.jsx(L.Z,{}),(0,a.jsxs)(y.Z,{onClick:()=>{S&&o.mutate(S.id,{onSettled:R})},disabled:z,sx:{color:"error.main"},children:[a.jsx(b.Z,{children:a.jsx(eH.Z,{fontSize:"small",sx:{color:"error.main"}})}),a.jsx(Z.Z,{children:"Remove Access"})]})]}),a.jsx(tB,{open:l,onClose:()=>x(!1),serverId:e})]})}var tV=r(51999),tK=r(53825),tG=r(15934);function t_({text:e}){let[t,r]=(0,i.useState)(!1),s=async()=>{try{await navigator.clipboard.writeText(e),r(!0),setTimeout(()=>r(!1),2e3)}catch(e){console.error("Failed to copy:",e)}};return a.jsx(p.Z,{size:"small",onClick:s,sx:{ml:1,color:t?"success.main":"text.secondary","&:hover":{bgcolor:"action.hover"}},"aria-label":t?"Copied":"Copy to clipboard",children:t?a.jsx(tK.Z,{sx:{fontSize:16}}):a.jsx(tV.Z,{sx:{fontSize:16}})})}function tJ({label:e,value:t,copyText:r}){return(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",py:1},children:[a.jsx(v.Z,{variant:"body2",color:"text.secondary",children:e}),(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center"},children:[a.jsx(v.Z,{variant:"body2",sx:{fontFamily:r?'"Roboto Mono", monospace':"inherit",color:r?"text.primary":"text.secondary"},children:t}),r&&a.jsx(t_,{text:r})]})]})}function tQ({serverName:e,hostname:t}){let{data:r,isLoading:s}=(0,tG.UW)();if(s)return a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[a.jsx(h.Z,{variant:"text",width:"40%",height:28,sx:{mb:1}}),a.jsx(h.Z,{variant:"rectangular",height:1,sx:{mb:2}}),(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[a.jsx(h.Z,{variant:"text",width:"30%"}),a.jsx(h.Z,{variant:"text",width:"40%"})]}),(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[a.jsx(h.Z,{variant:"text",width:"30%"}),a.jsx(h.Z,{variant:"text",width:"40%"})]})]})});let n=t?`${t}:25565`:"Not configured",i=r?.enabled&&r.servers.length>0,o=r?.servers.find(t=>t.serverName===e),l=o?.playitDomain||"Not configured",c=!!o?.playitDomain;return a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[a.jsx(v.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Connection"}),a.jsx(L.Z,{sx:{mb:2}}),a.jsx(tJ,{label:"LAN Address",value:n,copyText:t?n:void 0}),i&&a.jsx(tJ,{label:"External Address",value:l,copyText:c?l:void 0})]})})}var tX=r(96468),tY=r(50582),t0=r(86202);function t1({serverName:e}){let{data:t,isLoading:r,error:s}=(0,tN.a)({queryKey:["servers",e,"mods"],queryFn:()=>(0,tH.SC)(`/api/servers/${encodeURIComponent(e)}/mods`),enabled:!!e}),n=function(){let e=(0,tE.NL)();return(0,tq.D)({mutationFn:({serverName:e,slugs:t,source:r})=>(0,tH.SC)(`/api/servers/${encodeURIComponent(e)}/mods`,{method:"POST",body:JSON.stringify({slugs:t,source:r})}),onSuccess:(t,{serverName:r})=>{e.invalidateQueries({queryKey:["servers",r,"mods"]})}})}(),o=function(){let e=(0,tE.NL)();return(0,tq.D)({mutationFn:({serverName:e,slug:t})=>(0,tH.SC)(`/api/servers/${encodeURIComponent(e)}/mods/${encodeURIComponent(t)}`,{method:"DELETE"}),onSuccess:(t,{serverName:r})=>{e.invalidateQueries({queryKey:["servers",r,"mods"]})}})}(),[l,h]=(0,i.useState)(!1),[f,y]=(0,i.useState)(""),[b,Z]=(0,i.useState)(""),[w,R]=(0,i.useState)(!1),[I,P]=(0,i.useState)({open:!1,message:"",severity:"info"}),{data:z,isLoading:T}=function(e,t){let r=new URLSearchParams;return e&&r.set("q",e),t?.limit!=null&&r.set("limit",String(t.limit)),t?.offset!=null&&r.set("offset",String(t.offset)),(0,tN.a)({queryKey:["mods","search",e,t?.limit,t?.offset],queryFn:()=>(0,tH.SC)(`/api/mods/search?${r}`),enabled:t?.enabled!==!1&&!!e.trim()})}(b,{limit:10,enabled:l&&b.length>0}),A=(0,i.useCallback)(async t=>{try{await o.mutateAsync({serverName:e,slug:t}),R(!0),P({open:!0,message:`Removed ${t}`,severity:"success"})}catch(e){P({open:!0,message:e instanceof Error?e.message:"Failed to remove mod",severity:"error"})}},[o,e]),O=(0,i.useCallback)(async t=>{try{await n.mutateAsync({serverName:e,slugs:[t]}),R(!0),P({open:!0,message:`Added ${t}`,severity:"success"})}catch(e){P({open:!0,message:e instanceof Error?e.message:"Failed to add mod",severity:"error"})}},[n,e]),$=new Set;if(t?.mods)for(let e of Object.values(t.mods))for(let t of e)$.add(t);if(r)return a.jsx(d.Z,{sx:{display:"flex",justifyContent:"center",py:6},children:a.jsx(x.Z,{})});if(s)return(0,a.jsxs)(u.Z,{severity:"error",sx:{mt:2},children:["Failed to load mods: ",s.message]});let F=$.size>0;return(0,a.jsxs)(d.Z,{children:[w&&a.jsx(u.Z,{severity:"info",sx:{mb:2},children:"Restart the server to apply mod changes."}),a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[a.jsx(v.Z,{variant:"h6",fontWeight:600,children:"Installed Mods"}),a.jsx(c.Z,{variant:"contained",size:"small",startIcon:a.jsx(ex.Z,{}),onClick:()=>{y(""),Z(""),h(!0)},children:"Add Mods"})]}),a.jsx(L.Z,{sx:{mb:2}}),F?Object.entries(t.mods).map(([e,t])=>(0,a.jsxs)(d.Z,{sx:{mb:2},children:[a.jsx(v.Z,{variant:"subtitle2",color:"text.secondary",sx:{mb:1,textTransform:"capitalize"},children:e}),a.jsx(d.Z,{sx:{display:"flex",flexWrap:"wrap",gap:1},children:t.map(e=>a.jsx(W.Z,{label:e,icon:a.jsx(tY.Z,{}),onDelete:()=>A(e),deleteIcon:a.jsx(M.Z,{}),variant:"outlined"},e))})]},e)):(0,a.jsxs)(d.Z,{sx:{textAlign:"center",py:4},children:[a.jsx(tY.Z,{sx:{fontSize:48,color:"text.disabled",mb:1}}),a.jsx(v.Z,{variant:"body1",color:"text.secondary",children:"No mods installed"}),a.jsx(v.Z,{variant:"body2",color:"text.disabled",sx:{mt:.5},children:'Click "Add Mods" to search and install mods from Modrinth'})]})]})}),(0,a.jsxs)(j.Z,{open:l,onClose:()=>h(!1),maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{minHeight:400}},children:[(0,a.jsxs)(C.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:["Search Mods",a.jsx(p.Z,{onClick:()=>h(!1),size:"small",children:a.jsx(N.Z,{})})]}),(0,a.jsxs)(S.Z,{children:[a.jsx(k.Z,{fullWidth:!0,autoFocus:!0,placeholder:"Search Modrinth...",value:f,onChange:e=>y(e.target.value),InputProps:{startAdornment:a.jsx(D.Z,{position:"start",children:a.jsx(tX.Z,{})})},sx:{mb:2}}),T&&a.jsx(d.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:a.jsx(x.Z,{size:28})}),!T&&z&&0===z.hits.length&&b&&(0,a.jsxs)(v.Z,{variant:"body2",color:"text.secondary",sx:{textAlign:"center",py:4},children:['No mods found for "',b,'"']}),!T&&z&&z.hits.length>0&&a.jsx(d.Z,{sx:{display:"flex",flexDirection:"column",gap:1.5},children:z.hits.map(e=>{var t;let r=$.has(e.slug);return a.jsx(m.Z,{variant:"outlined",sx:{borderRadius:2},children:a.jsx(g.Z,{sx:{py:1.5,px:2,"&:last-child":{pb:1.5}},children:(0,a.jsxs)(d.Z,{sx:{display:"flex",gap:1.5,alignItems:"flex-start"},children:[a.jsx(eL.Z,{src:e.iconUrl||void 0,variant:"rounded",sx:{width:40,height:40,bgcolor:"action.hover"},children:a.jsx(tY.Z,{})}),(0,a.jsxs)(d.Z,{sx:{flex:1,minWidth:0},children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[a.jsx(v.Z,{variant:"subtitle2",noWrap:!0,children:e.title}),a.jsx(c.Z,{size:"small",variant:r?"outlined":"contained",disabled:r||n.isPending,onClick:()=>O(e.slug),sx:{ml:1,minWidth:80,flexShrink:0},children:r?"Installed":"Add"})]}),a.jsx(v.Z,{variant:"body2",color:"text.secondary",sx:{mt:.25,overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},children:e.description}),(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1,mt:.5},children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:.25},children:[a.jsx(t0.Z,{sx:{fontSize:14,color:"text.disabled"}}),a.jsx(v.Z,{variant:"caption",color:"text.disabled",children:(t=e.downloads)>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)})]}),e.author&&(0,a.jsxs)(v.Z,{variant:"caption",color:"text.disabled",children:["by ",e.author]})]})]})]})})},e.slug)})})]})]}),a.jsx(ei.Z,{open:I.open,autoHideDuration:4e3,onClose:()=>P(e=>({...e,open:!1})),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:a.jsx(u.Z,{onClose:()=>P(e=>({...e,open:!1})),severity:I.severity,variant:"filled",children:I.message})})]})}let t2=["Overview","Activity","Mods","Files","Backups","Access","Options"];function t5(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 t6({server:e,onSendCommand:t}){let[r,s]=(0,i.useState)("Overview"),[n,o]=(0,i.useState)(""),[l,u]=(0,i.useState)(!0),[x,h]=(0,i.useState)(!1),f=(0,i.useRef)(null),{logs:y,isConnected:b}=(0,_.Y)({serverName:e.name}),Z=(0,i.useMemo)(()=>y.filter(e=>!e.includes("RCON Listener")&&!e.includes("RCON Client")&&!e.includes("RconClient")),[y]),C=async()=>{n.trim()&&t&&(await t(n.trim()),o(""))},w=e.stats?.cpuPercent??0;e.stats?.memoryUsage&&e.stats.memoryUsage,function(e){if(!e)return;let t=e.match(/^(\d+)\s*(M|G)?$/i);if(t)parseInt(t[1],10),(t[2]||"M").toUpperCase()}(e.memory);let P=e.stats?.memoryPercent??0;return(0,a.jsxs)(d.Z,{children:[a.jsx(d.Z,{sx:{display:"flex",gap:.5,mb:3},children:t2.map(e=>a.jsx(c.Z,{onClick:()=>s(e),sx:{px:2,py:1,borderRadius:5,fontSize:14,fontWeight:500,textTransform:"none",bgcolor:r===e?"primary.main":"transparent",color:r===e?"#0a0e14":"text.secondary","&:hover":{bgcolor:r===e?"primary.main":(0,I.Fq)("#1bd96a",.1)}},children:e},e))}),(0,a.jsxs)(d.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(3, 1fr)"},gap:2,mb:2.5},children:[a.jsx(G,{value:`${w.toFixed(2)}%`,unit:"/ 100%",label:"CPU usage",icon:a.jsx(E.Z,{sx:{fontSize:28}}),progress:w,progressMax:100,color:"#1bd96a"}),a.jsx(G,{value:`${P.toFixed(2)}%`,unit:"/ 100%",label:"Memory usage",icon:a.jsx(q.Z,{sx:{fontSize:28}}),progress:P,progressMax:100,color:"#1bd96a"}),a.jsx(G,{value:e.worldSize||"0 B",unit:"/ 10 GB",label:"World size",icon:a.jsx(H.Z,{sx:{fontSize:28}}),progress:function(e){if(!e)return 0;let t=e.match(/^([\d.]+)\s*(B|KB|MB|MiB|GB|GiB)?$/i);if(!t)return 0;let r=parseFloat(t[1]);switch((t[2]||"B").toUpperCase()){case"GB":case"GIB":return 1024*r;case"MB":case"MIB":return r;case"KB":return r/1024;default:return r/1048576}}(e.worldSize),progressMax:10240,color:"#1bd96a"})]}),(0,a.jsxs)(m.Z,{sx:{bgcolor:"background.paper",borderRadius:3,border:"1px solid",borderColor:"divider",overflow:"hidden"},children:[(0,a.jsxs)(d.Z,{sx:{px:3,py:2,borderBottom:"1px solid",borderColor:"divider",display:"flex",alignItems:"center",gap:1.25},children:[a.jsx(v.Z,{variant:"h6",sx:{fontWeight:700,color:"text.primary"},children:"Console"}),a.jsx(d.Z,{sx:{width:10,height:10,borderRadius:"50%",bgcolor:b?"primary.main":"error.main",boxShadow:b?"0 0 8px rgba(27, 217, 106, 0.4)":"0 0 8px rgba(239, 68, 68, 0.4)"}})]}),(0,a.jsxs)(d.Z,{sx:{position:"relative"},children:[a.jsx(d.Z,{ref:f,onScroll:()=>{if(!f.current)return;let{scrollTop:e,scrollHeight:t,clientHeight:r}=f.current;u(t-e-r<30)},sx:{height:360,overflowY:"auto",px:2.5,py:2,fontFamily:'"Roboto Mono", 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===Z.length?a.jsx(v.Z,{sx:{color:"text.secondary",textAlign:"center",py:8},children:"Waiting for logs..."}):Z.map((e,t)=>{let r=function(e){let t=t5(e).match(/\[(\d{2}:\d{2}:\d{2})\]\s*\[([^/]+)\/(\w+)\]:\s*(.+)/);return t?{time:t[1],thread:t[2],level:t[3]||"INFO",msg:t[4]}:null}(e);return r?(0,a.jsxs)(d.Z,{sx:{display:"flex",gap:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:[(0,a.jsxs)(d.Z,{component:"span",sx:{color:"#4a4d60"},children:["[",r.time,"]"]}),(0,a.jsxs)(d.Z,{component:"span",sx:{color:"#4a4d60"},children:["\xa0[",r.thread,"/",a.jsx(d.Z,{component:"span",sx:{color:"WARN"===r.level?"#e8a848":"#6b6e80"},children:r.level}),"]:\xa0"]}),a.jsx(d.Z,{component:"span",sx:{color:"WARN"===r.level?"#c4a45a":"#b4b6c4"},children:r.msg})]},t):a.jsx(d.Z,{sx:{color:"#b4b6c4"},children:t5(e)},t)})}),a.jsx(p.Z,{onClick:()=>h(!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:a.jsx(B.Z,{sx:{fontSize:18}})}),!l&&a.jsx(p.Z,{onClick:()=>{f.current&&f.current.scrollTo({top:f.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:a.jsx(U.Z,{sx:{fontSize:18}})})]}),a.jsx(d.Z,{sx:{px:2.5,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:a.jsx(k.Z,{fullWidth:!0,size:"small",placeholder:"Send a command",value:n,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),C())},disabled:!b,InputProps:{startAdornment:a.jsx(D.Z,{position:"start",children:a.jsx(V.Z,{sx:{fontSize:16,color:"#999"}})}),sx:{bgcolor:"#13141c",borderRadius:2,fontFamily:'"Roboto Mono", monospace',fontSize:14,"& .MuiOutlinedInput-notchedOutline":{borderColor:"#2a2d3e"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"#3a3d4e"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"}}}})})]}),"Overview"===r&&(0,a.jsxs)(R.ZP,{container:!0,spacing:3,sx:{mt:1},children:[a.jsx(R.ZP,{item:!0,xs:12,md:6,children:a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[a.jsx(v.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Server Information"}),a.jsx(L.Z,{sx:{mb:2}}),a.jsx(t3,{label:"Name",value:e.name}),a.jsx(t3,{label:"Container",value:e.container}),a.jsx(t3,{label:"Hostname",value:e.hostname}),a.jsx(t3,{label:"Type",value:e.type}),a.jsx(t3,{label:"Version",value:e.version}),a.jsx(t3,{label:"Memory",value:e.memory}),a.jsx(t3,{label:"Uptime",value:e.uptime||function(e){if(!e||e<0)return"0s";let t=Math.floor(e/3600),r=Math.floor(e%3600/60),s=e%60;return t>0?`${t}h ${r}m`:r>0?`${r}m ${s}s`:`${s}s`}(e.uptimeSeconds)})]})})}),a.jsx(R.ZP,{item:!0,xs:12,md:6,children:a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[a.jsx(v.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Players"}),a.jsx(L.Z,{sx:{mb:2}}),e.players?(0,a.jsxs)(a.Fragment,{children:[a.jsx(t3,{label:"Online",value:`${e.players.online} / ${e.players.max}`}),e.players.players&&e.players.players.length>0&&(0,a.jsxs)(a.Fragment,{children:[a.jsx(v.Z,{variant:"body2",color:"text.secondary",sx:{mt:2,mb:1},children:"Online Players"}),a.jsx(d.Z,{sx:{display:"flex",flexWrap:"wrap",gap:1},children:e.players.players.map(e=>a.jsx(W.Z,{label:e,size:"small"},e))})]})]}):a.jsx(v.Z,{variant:"body2",color:"text.secondary",children:"Player information unavailable"})]})})}),a.jsx(R.ZP,{item:!0,xs:12,md:6,children:a.jsx(tQ,{serverName:e.name,hostname:e.hostname})})]}),"Activity"===r&&a.jsx(d.Z,{sx:{mt:3},children:a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[a.jsx(v.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Server Activity"}),a.jsx(L.Z,{sx:{mb:2}}),a.jsx(ea,{serverName:e.name})]})})}),"Mods"===r&&a.jsx(d.Z,{sx:{mt:3},children:a.jsx(t1,{serverName:e.name})}),"Files"===r&&a.jsx(d.Z,{sx:{mt:3},children:a.jsx(v.Z,{variant:"body1",color:"text.secondary",children:"File browser coming soon"})}),"Backups"===r&&a.jsx(d.Z,{sx:{mt:3},children:a.jsx(v.Z,{variant:"body1",color:"text.secondary",children:"Backup management coming soon"})}),"Access"===r&&a.jsx(d.Z,{sx:{mt:3},children:a.jsx(tU,{serverId:e.name})}),"Options"===r&&a.jsx(d.Z,{sx:{mt:3},children:a.jsx(eD,{serverName:e.name,isRunning:"running"===e.status})}),(0,a.jsxs)(j.Z,{open:x,onClose:()=>h(!1),maxWidth:"xl",fullWidth:!0,PaperProps:{sx:{height:"90vh",bgcolor:"background.paper"}},children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",p:2,borderBottom:1,borderColor:"divider"},children:[(0,a.jsxs)(v.Z,{variant:"h6",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,letterSpacing:"0.05em"},children:["Console - ",e.name]}),a.jsx(p.Z,{onClick:()=>h(!1),children:a.jsx(N.Z,{})})]}),a.jsx(S.Z,{sx:{p:0,display:"flex",flexDirection:"column"},children:a.jsx(J.K,{serverName:e.name})})]})]})}function t3({label:e,value:t}){return t?(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[a.jsx(v.Z,{variant:"body2",color:"text.secondary",children:e}),a.jsx(v.Z,{variant:"body2",sx:{fontWeight:500},children:t})]}):null}var t4=r(47893);function t8(){return(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[a.jsx("circle",{cx:"12",cy:"12",r:"10"}),a.jsx("line",{x1:"8",y1:"12",x2:"16",y2:"12"})]})}function t9(){return(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[a.jsx("path",{d:"M21 2v6h-6"}),a.jsx("path",{d:"M3 12a9 9 0 0115.36-6.36L21 8"}),a.jsx("path",{d:"M3 22v-6h6"}),a.jsx("path",{d:"M21 12a9 9 0 01-15.36 6.36L3 16"})]})}function t7(){let e=(0,o.useParams)(),t=(0,l.x)(),r=decodeURIComponent(e.name),{data:s,isLoading:n,error:W}=(0,ec.Hy)(r),{status:D,health:L}=function(e){let{serverName:t,onStatusChange:r,enabled:s=!0,reconnectInterval:n=3e3}=e,[a,o]=(0,i.useState)(null),[l,d]=(0,i.useState)(null),c=(0,i.useCallback)(e=>{if("server-status"===e.type){let t=e.data.status,s=e.data.health;o(t),d(s),r?.(t,s)}},[r]),{isConnected:p,reconnect:u,retryCount:x}=(0,t4.D)({url:`/api/sse/servers/${encodeURIComponent(t)}/status`,onMessage:c,enabled:s,reconnectInterval:n});return{status:a,health:l,isConnected:p,reconnect:u,retryCount:x}}({serverName:r,enabled:!!r}),[N,E]=(0,i.useState)(null),[q,H]=(0,i.useState)(!1),[B,U]=(0,i.useState)(""),V=(0,ec.jM)(),K=(0,ec.Aw)(),G=(0,ec._I)(),_=(0,ec.Hq)(),J=async()=>{try{await V.mutateAsync(r)}catch(e){console.error("Failed to start server:",e)}},Q=async()=>{try{await K.mutateAsync(r)}catch(e){console.error("Failed to stop server:",e)}},X=async()=>{try{await G.mutateAsync(r)}catch(e){console.error("Failed to restart server:",e)}},Y=async e=>{try{await fetch(`/api/servers/${encodeURIComponent(r)}/exec`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:e})})}catch(e){console.error("Failed to send command:",e)}},ee=D||s?.server.status,et=V.isPending||K.isPending||G.isPending,er=s?.server;return(0,a.jsxs)(a.Fragment,{children:[W&&(0,a.jsxs)(u.Z,{severity:"error",sx:{mb:3},children:["Failed to load server: ",W.message]}),V.isError&&(0,a.jsxs)(u.Z,{severity:"error",sx:{mb:3},children:["Failed to start server: ",V.error?.message]}),K.isError&&(0,a.jsxs)(u.Z,{severity:"error",sx:{mb:3},children:["Failed to stop server: ",K.error?.message]}),G.isError&&(0,a.jsxs)(u.Z,{severity:"error",sx:{mb:3},children:["Failed to restart server: ",G.error?.message]}),_.isError&&(0,a.jsxs)(u.Z,{severity:"error",sx:{mb:3},children:["Failed to delete server: ",_.error?.message]}),n?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:2,mb:2.5},children:[a.jsx(h.Z,{variant:"rounded",width:64,height:64,sx:{borderRadius:3,flexShrink:0}}),(0,a.jsxs)(d.Z,{sx:{flex:1},children:[a.jsx(h.Z,{variant:"text",width:80,height:18,sx:{mb:.5}}),a.jsx(h.Z,{variant:"text",width:"40%",height:40}),(0,a.jsxs)(d.Z,{sx:{display:"flex",gap:2,mt:.75},children:[a.jsx(h.Z,{variant:"text",width:100}),a.jsx(h.Z,{variant:"text",width:60}),a.jsx(h.Z,{variant:"text",width:140}),a.jsx(h.Z,{variant:"text",width:50})]})]}),(0,a.jsxs)(d.Z,{sx:{display:"flex",gap:1,flexShrink:0},children:[a.jsx(h.Z,{variant:"rounded",width:90,height:40,sx:{borderRadius:2}}),a.jsx(h.Z,{variant:"rounded",width:36,height:36,sx:{borderRadius:2}})]})]}),a.jsx(d.Z,{sx:{display:"flex",gap:.5,mb:3},children:[80,70,65,50,65,65].map((e,t)=>a.jsx(h.Z,{variant:"rounded",width:e,height:36,sx:{borderRadius:5}},t))}),a.jsx(d.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(3, 1fr)"},gap:2,mb:2.5},children:[0,1,2].map(e=>a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1.5},children:[a.jsx(h.Z,{variant:"text",width:"50%"}),a.jsx(h.Z,{variant:"circular",width:28,height:28})]}),a.jsx(h.Z,{variant:"text",width:"60%",height:36}),a.jsx(h.Z,{variant:"rounded",width:"100%",height:6,sx:{borderRadius:3,mt:1}})]})},e))}),(0,a.jsxs)(m.Z,{sx:{borderRadius:3,border:"1px solid",borderColor:"divider"},children:[(0,a.jsxs)(d.Z,{sx:{px:3,py:2,borderBottom:"1px solid",borderColor:"divider",display:"flex",alignItems:"center",gap:1.25},children:[a.jsx(h.Z,{variant:"text",width:80,height:28}),a.jsx(h.Z,{variant:"circular",width:10,height:10})]}),a.jsx(h.Z,{variant:"rectangular",height:360,sx:{bgcolor:"#0a0a0a"}}),a.jsx(d.Z,{sx:{px:2.5,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:a.jsx(h.Z,{variant:"rounded",width:"100%",height:40,sx:{borderRadius:2}})})]}),(0,a.jsxs)(R.ZP,{container:!0,spacing:3,sx:{mt:1},children:[a.jsx(R.ZP,{item:!0,xs:12,md:6,children:a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[a.jsx(h.Z,{variant:"text",width:"40%",height:28,sx:{mb:1}}),a.jsx(h.Z,{variant:"rectangular",height:1,sx:{mb:2}}),[0,1,2,3,4,5,6].map(e=>(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[a.jsx(h.Z,{variant:"text",width:"30%"}),a.jsx(h.Z,{variant:"text",width:"40%"})]},e))]})})}),a.jsx(R.ZP,{item:!0,xs:12,md:6,children:a.jsx(m.Z,{sx:{borderRadius:3},children:(0,a.jsxs)(g.Z,{children:[a.jsx(h.Z,{variant:"text",width:"30%",height:28,sx:{mb:1}}),a.jsx(h.Z,{variant:"rectangular",height:1,sx:{mb:2}}),(0,a.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[a.jsx(h.Z,{variant:"text",width:"25%"}),a.jsx(h.Z,{variant:"text",width:"20%"})]})]})})})]})]}):er?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:2,mb:2.5},children:[a.jsx(d.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:function(e){if(!e)return"\uD83C\uDFAE";let t=e.toUpperCase();return["PAPER","SPIGOT","BUKKIT","PURPUR"].includes(t)?"\uD83D\uDD0C":["FORGE","NEOFORGE","FABRIC","QUILT"].includes(t)?"\uD83D\uDD27":"\uD83C\uDFAE"}(er.type)}),(0,a.jsxs)(d.Z,{sx:{flex:1},children:[(0,a.jsxs)(v.Z,{onClick:()=>t.push("/servers"),sx:{fontSize:12,color:"primary.main",cursor:"pointer",mb:.25,display:"flex",alignItems:"center",gap:.5,"&:hover":{textDecoration:"underline"}},children:[a.jsx(P.Z,{sx:{fontSize:14}})," All servers"]}),a.jsx(v.Z,{variant:"h4",component:"h1",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,color:"text.primary",letterSpacing:"0.5px",m:0,textTransform:"uppercase"},children:r}),(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:0,mt:.75,flexWrap:"wrap",fontSize:13,color:"text.secondary"},children:[er.version&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[a.jsx(A.Z,{sx:{fontSize:14}}),"Minecraft ",er.version]}),a.jsx(d.Z,{component:"span",sx:{mx:1.25,color:"#3a3d4e"},children:"|"})]}),er.type&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[a.jsx(O.Z,{sx:{fontSize:14}}),er.type]}),a.jsx(d.Z,{component:"span",sx:{mx:1.25,color:"#3a3d4e"},children:"|"})]}),er.hostname&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[a.jsx($.Z,{sx:{fontSize:14}}),er.hostname]}),a.jsx(d.Z,{component:"span",sx:{mx:1.25,color:"#3a3d4e"},children:"|"})]}),(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[a.jsx(F.Z,{sx:{fontSize:14}}),er.uptime||function(e){if(!e||e<0)return"0s";let t=Math.floor(e/3600),r=Math.floor(e%3600/60),s=e%60;return t>0?`${t}h ${r}m`:r>0?`${r}m ${s}s`:`${s}s`}(er.uptimeSeconds)||"0s"]})]})]}),(0,a.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1.25,flexShrink:0},children:[("stopped"===ee||"exited"===ee||"not_created"===ee)&&a.jsx(c.Z,{variant:"contained",color:"success",startIcon:et?a.jsx(x.Z,{size:16,color:"inherit"}):a.jsx(z.Z,{}),onClick:J,disabled:et,sx:{px:2,py:1,borderRadius:2,fontSize:14,fontWeight:600},children:"Start"}),"running"===ee&&(0,a.jsxs)(a.Fragment,{children:[a.jsx(c.Z,{variant:"outlined",startIcon:et?a.jsx(x.Z,{size:16}):a.jsx(t8,{}),onClick:Q,disabled:et,sx:{px:2,py:1,borderRadius:2,fontSize:14,fontWeight:500,borderColor:"divider",color:"text.secondary","&:hover":{borderColor:"text.secondary",bgcolor:(0,I.Fq)("#fff",.05)}},children:"Stop"}),a.jsx(c.Z,{variant:"contained",startIcon:et?a.jsx(x.Z,{size:16,color:"inherit"}):a.jsx(t9,{}),onClick:X,disabled:et,sx:{px:2,py:1,borderRadius:2,fontSize:14,fontWeight:600,bgcolor:"primary.main",color:"#0a0e14","&:hover":{bgcolor:"primary.dark"}},children:"Restart"})]}),a.jsx(p.Z,{onClick:e=>E(e.currentTarget),sx:{width:36,height:36,borderRadius:2,border:"1px solid",borderColor:"divider",color:"text.secondary"},children:a.jsx(T.Z,{sx:{fontSize:18}})}),a.jsx(f.Z,{anchorEl:N,open:!!N,onClose:()=>E(null),children:(0,a.jsxs)(y.Z,{onClick:()=>{E(null),H(!0),U("")},sx:{color:"error.main"},children:[a.jsx(b.Z,{children:a.jsx(M.Z,{fontSize:"small",sx:{color:"error.main"}})}),a.jsx(Z.Z,{children:"Delete Server"})]})})]})]}),a.jsx(t6,{server:er,onSendCommand:Y})]}):a.jsx(u.Z,{severity:"warning",children:"Server not found"}),(0,a.jsxs)(j.Z,{open:q,onClose:()=>{H(!1),U("")},maxWidth:"sm",fullWidth:!0,children:[a.jsx(C.Z,{children:"Delete Server"}),(0,a.jsxs)(S.Z,{children:[(0,a.jsxs)(v.Z,{sx:{mb:2},children:["This action cannot be undone. Type ",a.jsx("strong",{children:r})," to confirm deletion."]}),a.jsx(k.Z,{label:"Server name",value:B,onChange:e=>U(e.target.value),fullWidth:!0,autoFocus:!0})]}),(0,a.jsxs)(w.Z,{sx:{px:3,pb:2},children:[a.jsx(c.Z,{onClick:()=>{H(!1),U("")},children:"Cancel"}),a.jsx(c.Z,{variant:"contained",color:"error",onClick:()=>{B===r&&_.mutate({name:r,force:!0},{onSuccess:()=>{t.push("/servers")}})},disabled:B!==r||_.isPending,startIcon:_.isPending?a.jsx(x.Z,{size:16}):null,children:_.isPending?"Deleting...":"Delete"})]})]})]})}},71438:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var s=r(58120),n=r(48787),a=r(39928);function i({action:e,size:t="small"}){let r=a.Lu[e]||"default",i=a.n3[e]||e;return s.jsx(n.Z,{label:i,color:r,size:t,variant:"filled",sx:{fontWeight:600,fontSize:"small"===t?"0.7rem":"0.8rem"}})}},55049:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var s=r(58120),n=r(48787),a=r(56846),i=r(72690);function o({status:e,size:t="small"}){return s.jsx(n.Z,{icon:"success"===e?s.jsx(a.Z,{}):s.jsx(i.Z,{}),label:"success"===e?"OK":"Error",color:"success"===e?"success":"error",size:t,variant:"outlined",sx:{fontWeight:500,fontSize:"small"===t?"0.7rem":"0.8rem"}})}},6418:(e,t,r)=>{"use strict";r.d(t,{K:()=>R});var s=r(58120),n=r(36372),a=r(20393),i=r.n(a),o=r(89352),l=r(52329),d=r(6275),c=r(10257),p=r(46456),u=r(54365),x=r(2365),h=r(48787),m=r(14360),g=r(51430),v=r(23016),f=r(80336),y=r(79943),b=r(78150),Z=r(73995),j=r(66831),C=r(50423);let S=[{label:"say",template:"say "},{label:"give",template:"give "},{label:"tp",template:"tp "},{label:"gamemode",template:"gamemode "}],w=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({log:e}){let t=(0,n.useMemo)(()=>(function(e){let t=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 w.toHtml(t)})(e),[e]);return s.jsx(o.Z,{sx:{py:.25,whiteSpace:"pre-wrap",wordBreak:"break-all","& span":{}},dangerouslySetInnerHTML:{__html:t}})});function R({serverName:e}){let[t,r]=(0,n.useState)(""),[a,i]=(0,n.useState)([]),[w,R]=(0,n.useState)(-1),[I,P]=(0,n.useState)("ALL"),[z,T]=(0,n.useState)(!0),[M,A]=(0,n.useState)(!0),[O,$]=(0,n.useState)(!1),F=(0,n.useRef)(null),W=(0,n.useRef)(null),{logs:D,isConnected:L,clearLogs:N,reconnect:E,retryCount:q}=(0,C.Y)({serverName:e}),H=(0,n.useMemo)(()=>{let e=D;return M&&(e=e.filter(e=>!e.includes("RCON Listener")&&!e.includes("RCON Client")&&!e.includes("RconClient"))),"ALL"!==I&&(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"))===I)),e},[D,I,M]),B=(0,n.useCallback)(async()=>{let s=t.trim();if(s&&!O){$(!0);try{i(e=>[...e,s]),R(-1),await fetch(`/api/servers/${encodeURIComponent(e)}/exec`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:s})}),r("")}catch(e){console.error("Failed to execute command:",e)}finally{$(!1)}}},[t,e,O]),U=(0,n.useCallback)(e=>{if("Enter"===e.key)e.preventDefault(),B();else if("ArrowUp"===e.key){if(e.preventDefault(),0===a.length)return;let t=-1===w?a.length-1:Math.max(0,w-1);R(t),r(a[t])}else if("ArrowDown"===e.key){if(e.preventDefault(),-1===w)return;let t=w+1;t>=a.length?(R(-1),r("")):(R(t),r(a[t]))}},[a,w,B]),V=(0,n.useCallback)(e=>{r(e),F.current?.focus()},[]),K=L?{text:"Connected",color:"success"}:q>0?{text:`Disconnected (Retry ${q})`,color:"warning"}:{text:"Disconnected",color:"error"};return(0,s.jsxs)(l.Z,{"data-testid":"server-console",sx:{display:"flex",flexDirection:"column",height:"100%",minHeight:400},children:[(0,s.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1,borderBottom:1,borderColor:"divider"},children:[(0,s.jsxs)(v.Z,{direction:"row",spacing:1,alignItems:"center",children:[s.jsx(x.Z,{variant:"subtitle2",children:"Console"}),s.jsx(h.Z,{"data-testid":"connection-status",label:K.text,color:K.color,size:"small"})]}),(0,s.jsxs)(v.Z,{direction:"row",spacing:1,alignItems:"center",children:[s.jsx(p.Z,{size:"small",variant:"outlined",children:["ALL","INFO","WARN","ERROR"].map(e=>s.jsx(c.Z,{onClick:()=>P(e),variant:I===e?"contained":"outlined",children:e},e))}),s.jsx(m.Z,{control:s.jsx(g.Z,{checked:z,onChange:e=>T(e.target.checked),size:"small",inputProps:{"aria-label":"Auto-scroll"}}),label:"Auto-scroll"}),s.jsx(m.Z,{control:s.jsx(g.Z,{checked:M,onChange:e=>A(e.target.checked),size:"small",inputProps:{"aria-label":"Hide RCON"}}),label:"Hide RCON"}),s.jsx(u.Z,{size:"small",onClick:N,"aria-label":"Clear logs",title:"Clear logs",children:s.jsx(Z.Z,{})}),!L&&s.jsx(c.Z,{size:"small",startIcon:s.jsx(j.Z,{}),onClick:E,"aria-label":"Reconnect",children:"Reconnect"})]})]}),s.jsx(o.Z,{ref:W,sx:{flex:1,overflow:"auto",bgcolor:"#1a1a1a",p:1,fontFamily:'"Roboto Mono", monospace',fontSize:"0.85rem"},children:0===H.length?s.jsx(x.Z,{color:"text.secondary",sx:{textAlign:"center",py:4,color:"#666"},children:"Waiting for logs..."}):H.map((e,t)=>s.jsx(k,{log:e},t))}),s.jsx(f.Z,{}),s.jsx(o.Z,{sx:{px:2,py:1,bgcolor:"background.default"},children:(0,s.jsxs)(v.Z,{direction:"row",spacing:1,children:[s.jsx(x.Z,{variant:"caption",color:"text.secondary",sx:{alignSelf:"center"},children:"Quick:"}),S.map(e=>s.jsx(c.Z,{size:"small",variant:"outlined",onClick:()=>V(e.template),children:e.label},e.label))]})}),s.jsx(f.Z,{}),(0,s.jsxs)(o.Z,{sx:{display:"flex",p:1,gap:1},children:[s.jsx(d.Z,{inputRef:F,fullWidth:!0,size:"small",placeholder:"Enter command...",value:t,onChange:e=>r(e.target.value),onKeyDown:U,disabled:!L||O,InputProps:{sx:{fontFamily:'"Roboto Mono", monospace'}}}),s.jsx(c.Z,{variant:"contained",onClick:B,disabled:!t.trim()||!L||O,startIcon:O?s.jsx(y.Z,{size:16}):s.jsx(b.Z,{}),"aria-label":"Send command",children:"Send"})]})]})}},15784:(e,t,r)=>{"use strict";r.d(t,{DM:()=>i,HZ:()=>l,VM:()=>o,hT:()=>a,oL:()=>d});var s=r(28872),n=r(43137);function a(e={},t){let r=function(e){let t=new URLSearchParams;e.action&&t.set("action",e.action),e.actor&&t.set("actor",e.actor),e.targetType&&t.set("targetType",e.targetType),e.targetName&&t.set("targetName",e.targetName),e.status&&t.set("status",e.status),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to),void 0!==e.limit&&t.set("limit",String(e.limit)),void 0!==e.offset&&t.set("offset",String(e.offset)),e.sort&&t.set("sort",e.sort);let r=t.toString();return r?`?${r}`:""}(e);return(0,s.a)({queryKey:["audit-logs",e],queryFn:()=>(0,n.SC)(`/api/audit-logs${r}`),enabled:t?.enabled!==!1})}function i(e){return(0,s.a)({queryKey:["audit-logs","stats"],queryFn:()=>(0,n.SC)("/api/audit-logs/stats"),enabled:e?.enabled!==!1,refetchInterval:3e4})}function o(e,t){return(0,s.a)({queryKey:["audit-logs",e],queryFn:()=>(0,n.SC)(`/api/audit-logs/${encodeURIComponent(e)}`),enabled:t?.enabled!==!1&&!!e})}function l(e,t){return a({targetType:"server",targetName:e,limit:t?.limit??20},{enabled:t?.enabled!==!1&&!!e})}function d(e=10){return a({limit:e,sort:"timestamp:desc"})}},15934:(e,t,r)=>{"use strict";r.d(t,{Bc:()=>l,N$:()=>d,UW:()=>o});var s=r(28872),n=r(95343),a=r(20042),i=r(43137);function o(){return(0,s.a)({queryKey:["playit-status"],queryFn:()=>(0,i.SC)("/api/playit/status"),refetchInterval:3e4})}function l(){let e=(0,n.NL)();return(0,a.D)({mutationFn:()=>(0,i.SC)("/api/playit/start",{method:"POST"}),onSuccess:()=>{e.invalidateQueries({queryKey:["playit-status"]})}})}function d(){let e=(0,n.NL)();return(0,a.D)({mutationFn:()=>(0,i.SC)("/api/playit/stop",{method:"POST"}),onSuccess:()=>{e.invalidateQueries({queryKey:["playit-status"]})}})}},50423:(e,t,r)=>{"use strict";r.d(t,{Y:()=>a});var s=r(36372),n=r(47893);function a(e){let{serverName:t,maxLines:r=500,enabled:a=!0,reconnectInterval:i=3e3}=e,[o,l]=(0,s.useState)([]),d=(0,s.useCallback)(e=>{let t;"server-log"===e.type?t=e.data.log:"log"in e&&"string"==typeof e.log&&(t=e.log),t&&l(e=>{let s=[...e,t];return s.length>r?s.slice(s.length-r):s})},[r]),{isConnected:c,reconnect:p,retryCount:u}=(0,n.D)({url:`/api/sse/servers/${encodeURIComponent(t)}/logs`,onMessage:d,enabled:a,reconnectInterval:i});return{logs:o,isConnected:c,clearLogs:(0,s.useCallback)(()=>{l([])},[]),reconnect:p,retryCount:u}}},39928:(e,t,r)=>{"use strict";r.d(t,{KK:()=>o,Lu:()=>s,Xn:()=>i,n3:()=>n,xg:()=>a});let s={"server.create":"success","server.delete":"error","server.start":"info","server.stop":"warning","server.restart":"secondary","player.whitelist.add":"success","player.whitelist.remove":"warning","player.ban":"error","player.unban":"success","player.op":"info","player.deop":"warning","player.kick":"error","audit.purge":"default"},n={"server.create":"Create","server.delete":"Delete","server.start":"Start","server.stop":"Stop","server.restart":"Restart","player.whitelist.add":"Whitelist Add","player.whitelist.remove":"Whitelist Remove","player.ban":"Ban","player.unban":"Unban","player.op":"Op","player.deop":"Deop","player.kick":"Kick","audit.purge":"Purge"},a=["server.create","server.delete","server.start","server.stop","server.restart","player.whitelist.add","player.whitelist.remove","player.ban","player.unban","player.op","player.deop","player.kick","audit.purge"],i=["server.create","server.delete","server.start","server.stop","server.restart"],o=["player.whitelist.add","player.whitelist.remove","player.ban","player.unban","player.op","player.deop","player.kick"]},40579:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});let s=(0,r(2325).createProxy)(String.raw`/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/(main)/servers/[name]/page.tsx#default`)}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[9836,1489,6591,3043,8847,7573,8872,4859,8243,6088,8389,8055,609,6509,3068,6175,354,2743],()=>r(61509));module.exports=s})();
1
+ (()=>{var e={};e.id=278,e.ids=[278],e.modules={85890:e=>{"use strict";e.exports=require("better-sqlite3")},72934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},92048:e=>{"use strict";e.exports=require("fs")},55315:e=>{"use strict";e.exports=require("path")},17360:e=>{"use strict";e.exports=require("url")},61509:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>i.a,__next_app__:()=>p,originalPathname:()=>u,pages:()=>c,routeModule:()=>x,tree:()=>d}),r(40579),r(26072),r(82395),r(97759);var n=r(95530),a=r(45086),s=r(13937),i=r.n(s),o=r(45587),l={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>o[e]);r.d(t,l);let d=["",{children:["(main)",{children:["servers",{children:["[name]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,40579)),"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/(main)/servers/[name]/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,26072)),"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/(main)/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,82395,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,52001))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(r.bind(r,97759)),"/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,82395,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,52001))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],c=["/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/(main)/servers/[name]/page.tsx"],u="/(main)/servers/[name]/page",p={require:r,loadChunk:()=>Promise.resolve()},x=new n.AppPageRouteModule({definition:{kind:a.x.APP_PAGE,page:"/(main)/servers/[name]/page",pathname:"/servers/[name]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},21515:(e,t,r)=>{Promise.resolve().then(r.bind(r,86528))},42902:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)([(0,s.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"},"0"),(0,s.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"},"1")],"AccessTime")},29564:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add")},95722:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"}),"ArrowForward")},65757:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4"}),"Build")},66147:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zm2.46-7.12 1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14zM15.5 4l-1-1h-5l-1 1H5v2h14V4z"}),"DeleteForever")},86202:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"}),"Download")},84527:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore")},50582:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11"}),"Extension")},46973:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m0 12H4V8h16z"}),"FolderOpen")},82538:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z"}),"KeyboardArrowDown")},75614:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56M12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96M4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56m2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8M12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96M14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2m.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56M16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2z"}),"Language")},30463:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5"}),"Link")},58039:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"m21.41 11.58-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42M5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7"}),"LocalOffer")},25414:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M21 11V3h-8l3.29 3.29-10 10L3 13v8h8l-3.29-3.29 10-10z"}),"OpenInFull")},72419:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M9 16h2V8H9zm3-14C6.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 8m1-4h2V8h-2z"}),"PauseCircleOutline")},17820:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M12 5V2L8 6l4 4V7c3.31 0 6 2.69 6 6 0 2.97-2.17 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93 0-4.42-3.58-8-8-8m-6 8c0-1.65.67-3.15 1.76-4.24L6.34 7.34C4.9 8.79 4 10.79 4 13c0 4.08 3.05 7.44 7 7.93v-2.02c-2.83-.48-5-2.94-5-5.91"}),"RestartAlt")},11475:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z"}),"Save")},7060:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-6 6h-2V4h2zm3 0h-2V4h2zm3 0h-2V4h2z"}),"SdStorage")},93599:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5z"}),"Shield")},36438:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"m20.38 8.57-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1 10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49-8.49 5.66a2 2 0 0 0 0 2.83"}),"Speed")},3470:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"m21.58 16.09-1.09-7.66C20.21 6.46 18.52 5 16.53 5H7.47C5.48 5 3.79 6.46 3.51 8.43l-1.09 7.66C2.2 17.63 3.39 19 4.94 19c.68 0 1.32-.27 1.8-.75L9 16h6l2.25 2.25c.48.48 1.13.75 1.8.75 1.56 0 2.75-1.37 2.53-2.91M11 11H9v2H8v-2H6v-1h2V8h1v2h2zm4-1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m2 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1"}),"SportsEsports")},43992:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M20 4H4c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2m0 14H4V8h16zm-2-1h-6v-2h6zM7.5 17l-1.41-1.41L8.67 13l-2.59-2.59L7.5 9l4 4z"}),"Terminal")},23090:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"m18.25 7.6-5.5-3.18c-.46-.27-1.04-.27-1.5 0L5.75 7.6c-.46.27-.75.76-.75 1.3v6.35c0 .54.29 1.03.75 1.3l5.5 3.18c.46.27 1.04.27 1.5 0l5.5-3.18c.46-.27.75-.76.75-1.3V8.9c0-.54-.29-1.03-.75-1.3M7 14.96v-4.62l4 2.32v4.61zm5-4.03L8 8.61l4-2.31 4 2.31zm1 6.34v-4.61l4-2.32v4.62zM7 2H3.5C2.67 2 2 2.67 2 3.5V7h2V4h3zm10 0h3.5c.83 0 1.5.67 1.5 1.5V7h-2V4h-3zM7 22H3.5c-.83 0-1.5-.67-1.5-1.5V17h2v3h3zm10 0h3.5c.83 0 1.5-.67 1.5-1.5V17h-2v3h-3z"}),"ViewInAr")},26518:(e,t,r)=>{"use strict";var n=r(66682);t.Z=void 0;var a=n(r(7750)),s=r(58120);t.Z=(0,a.default)((0,s.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning")},95223:(e,t,r)=>{"use strict";r.d(t,{Z:()=>O});var n=r(36885),a=r(4981),s=r(36372),i=r(30330),o=r(3693),l=r(84199),d=r(93445),c=r(10587),u=r(29251),p=r(62923),x=r(9103),h=r(89206),m=r(7967);function g(e){return(0,m.ZP)("MuiLinearProgress",e)}(0,h.Z)("MuiLinearProgress",["root","colorPrimary","colorSecondary","determinate","indeterminate","buffer","query","dashed","dashedColorPrimary","dashedColorSecondary","bar","barColorPrimary","barColorSecondary","bar1Indeterminate","bar1Determinate","bar1Buffer","bar2Indeterminate","bar2Buffer"]);var v=r(58120);let f=["className","color","value","valueBuffer","variant"],b=e=>e,y,Z,j,C,w,S,k=(0,l.F4)(y||(y=b`
2
+ 0% {
3
+ left: -35%;
4
+ right: 100%;
5
+ }
6
+
7
+ 60% {
8
+ left: 100%;
9
+ right: -90%;
10
+ }
11
+
12
+ 100% {
13
+ left: 100%;
14
+ right: -90%;
15
+ }
16
+ `)),R=(0,l.F4)(Z||(Z=b`
17
+ 0% {
18
+ left: -200%;
19
+ right: 100%;
20
+ }
21
+
22
+ 60% {
23
+ left: 107%;
24
+ right: -8%;
25
+ }
26
+
27
+ 100% {
28
+ left: 107%;
29
+ right: -8%;
30
+ }
31
+ `)),I=(0,l.F4)(j||(j=b`
32
+ 0% {
33
+ opacity: 1;
34
+ background-position: 0 -23px;
35
+ }
36
+
37
+ 60% {
38
+ opacity: 0;
39
+ background-position: 0 -23px;
40
+ }
41
+
42
+ 100% {
43
+ opacity: 1;
44
+ background-position: -200px -23px;
45
+ }
46
+ `)),P=e=>{let{classes:t,variant:r,color:n}=e,a={root:["root",`color${(0,u.Z)(n)}`,r],dashed:["dashed",`dashedColor${(0,u.Z)(n)}`],bar1:["bar",`barColor${(0,u.Z)(n)}`,("indeterminate"===r||"query"===r)&&"bar1Indeterminate","determinate"===r&&"bar1Determinate","buffer"===r&&"bar1Buffer"],bar2:["bar","buffer"!==r&&`barColor${(0,u.Z)(n)}`,"buffer"===r&&`color${(0,u.Z)(n)}`,("indeterminate"===r||"query"===r)&&"bar2Indeterminate","buffer"===r&&"bar2Buffer"]};return(0,o.Z)(a,g,t)},z=(e,t)=>"inherit"===t?"currentColor":e.vars?e.vars.palette.LinearProgress[`${t}Bg`]:"light"===e.palette.mode?(0,d.$n)(e.palette[t].main,.62):(0,d._j)(e.palette[t].main,.5),M=(0,p.ZP)("span",{name:"MuiLinearProgress",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[`color${(0,u.Z)(r.color)}`],t[r.variant]]}})(({ownerState:e,theme:t})=>(0,a.Z)({position:"relative",overflow:"hidden",display:"block",height:4,zIndex:0,"@media print":{colorAdjust:"exact"},backgroundColor:z(t,e.color)},"inherit"===e.color&&"buffer"!==e.variant&&{backgroundColor:"none","&::before":{content:'""',position:"absolute",left:0,top:0,right:0,bottom:0,backgroundColor:"currentColor",opacity:.3}},"buffer"===e.variant&&{backgroundColor:"transparent"},"query"===e.variant&&{transform:"rotate(180deg)"})),T=(0,p.ZP)("span",{name:"MuiLinearProgress",slot:"Dashed",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.dashed,t[`dashedColor${(0,u.Z)(r.color)}`]]}})(({ownerState:e,theme:t})=>{let r=z(t,e.color);return(0,a.Z)({position:"absolute",marginTop:0,height:"100%",width:"100%"},"inherit"===e.color&&{opacity:.3},{backgroundImage:`radial-gradient(${r} 0%, ${r} 16%, transparent 42%)`,backgroundSize:"10px 10px",backgroundPosition:"0 -23px"})},(0,l.iv)(C||(C=b`
47
+ animation: ${0} 3s infinite linear;
48
+ `),I)),A=(0,p.ZP)("span",{name:"MuiLinearProgress",slot:"Bar1",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.bar,t[`barColor${(0,u.Z)(r.color)}`],("indeterminate"===r.variant||"query"===r.variant)&&t.bar1Indeterminate,"determinate"===r.variant&&t.bar1Determinate,"buffer"===r.variant&&t.bar1Buffer]}})(({ownerState:e,theme:t})=>(0,a.Z)({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",backgroundColor:"inherit"===e.color?"currentColor":(t.vars||t).palette[e.color].main},"determinate"===e.variant&&{transition:"transform .4s linear"},"buffer"===e.variant&&{zIndex:1,transition:"transform .4s linear"}),({ownerState:e})=>("indeterminate"===e.variant||"query"===e.variant)&&(0,l.iv)(w||(w=b`
49
+ width: auto;
50
+ animation: ${0} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
51
+ `),k)),$=(0,p.ZP)("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.bar,t[`barColor${(0,u.Z)(r.color)}`],("indeterminate"===r.variant||"query"===r.variant)&&t.bar2Indeterminate,"buffer"===r.variant&&t.bar2Buffer]}})(({ownerState:e,theme:t})=>(0,a.Z)({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left"},"buffer"!==e.variant&&{backgroundColor:"inherit"===e.color?"currentColor":(t.vars||t).palette[e.color].main},"inherit"===e.color&&{opacity:.3},"buffer"===e.variant&&{backgroundColor:z(t,e.color),transition:"transform .4s linear"}),({ownerState:e})=>("indeterminate"===e.variant||"query"===e.variant)&&(0,l.iv)(S||(S=b`
52
+ width: auto;
53
+ animation: ${0} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
54
+ `),R)),O=s.forwardRef(function(e,t){let r=(0,x.i)({props:e,name:"MuiLinearProgress"}),{className:s,color:o="primary",value:l,valueBuffer:d,variant:u="indeterminate"}=r,p=(0,n.Z)(r,f),h=(0,a.Z)({},r,{color:o,variant:u}),m=P(h),g=(0,c.V)(),b={},y={bar1:{},bar2:{}};if(("determinate"===u||"buffer"===u)&&void 0!==l){b["aria-valuenow"]=Math.round(l),b["aria-valuemin"]=0,b["aria-valuemax"]=100;let e=l-100;g&&(e=-e),y.bar1.transform=`translateX(${e}%)`}if("buffer"===u&&void 0!==d){let e=(d||0)-100;g&&(e=-e),y.bar2.transform=`translateX(${e}%)`}return(0,v.jsxs)(M,(0,a.Z)({className:(0,i.Z)(m.root,s),ownerState:h,role:"progressbar"},b,{ref:t},p,{children:["buffer"===u?(0,v.jsx)(T,{className:m.dashed,ownerState:h}):null,(0,v.jsx)(A,{className:m.bar1,ownerState:h,style:y.bar1}),"determinate"===u?null:(0,v.jsx)($,{className:m.bar2,ownerState:h,style:y.bar2})]}))})},86528:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>t8});var n,a,s=r(58120),i=r(36372),o=r(56539),l=r(49856),d=r(89352),c=r(10257),u=r(54365),p=r(66757),x=r(79943),h=r(68913),m=r(67073),g=r(92797),v=r(2365),f=r(81030),b=r(99634),y=r(63654),Z=r(63856),j=r(34443),C=r(44696),w=r(15539),S=r(51290),k=r(6275),R=r(73100),I=r(95940),P=r(43312),z=r(29553),M=r(54655),T=r(96454),A=r(23090),$=r(58039),O=r(30463),F=r(42902),W=r(48787),L=r(92559),D=r(80336),N=r(33615),q=r(36438),H=r(7060),E=r(46973),B=r(25414),V=r(82538),U=r(43992),K=r(95223);function G({value:e,unit:t,label:r,icon:n,progress:a,progressMax:i,color:o="#1bd96a"}){return(0,s.jsxs)(m.Z,{"data-testid":"resource-stat-card",sx:{p:2.5,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",borderRadius:3},children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:2},children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"baseline",gap:.75,flexWrap:"wrap",minWidth:0},children:[s.jsx(v.Z,{variant:"h4",component:"span",sx:{fontWeight:700,color:"text.primary",fontFamily:'"Roboto Mono", monospace',letterSpacing:"-0.5px"},children:e}),s.jsx(v.Z,{variant:"body2",component:"span",sx:{color:"text.secondary",fontWeight:500},children:t})]}),s.jsx(d.Z,{sx:{color:"text.secondary",flexShrink:0},children:n})]}),s.jsx(v.Z,{variant:"body2",sx:{color:"text.secondary",fontWeight:500,mt:.5},children:r}),s.jsx(K.Z,{variant:"determinate",value:Math.min(a/i*100,100),sx:{mt:1,height:6,borderRadius:1.5,bgcolor:"#2a2d3a","& .MuiLinearProgress-bar":{borderRadius:1.5,background:`linear-gradient(90deg, ${o} 0%, ${o}cc 100%)`}}})]})}var _=r(50423),J=r(6418),X=r(58664),Q=r(73091),Y=r(98243),ee=r(40611),et=r(95722),er=r(71438),en=r(55049),ea=r(15784);function es({serverName:e}){let{data:t,isLoading:r,error:n}=(0,ea.HZ)(e,{limit:20});if(r)return s.jsx(d.Z,{children:[void 0,void 0,void 0,void 0,void 0].map((e,t)=>(0,s.jsxs)(d.Z,{sx:{display:"flex",gap:2,py:1.5},children:[s.jsx(h.Z,{variant:"rounded",width:60,height:24}),s.jsx(h.Z,{variant:"text",width:"60%"}),s.jsx(h.Z,{variant:"text",width:50})]},t))});if(n)return(0,s.jsxs)(p.Z,{severity:"error",children:["Failed to load activity: ",n.message]});let a=t?.logs??[];if(0===a.length)return s.jsx(v.Z,{variant:"body2",color:"text.secondary",sx:{py:4,textAlign:"center"},children:"No activity recorded for this server yet."});let i=`/audit-logs?targetType=server&targetName=${encodeURIComponent(e)}`;return(0,s.jsxs)(d.Z,{children:[s.jsx(X.Z,{sx:{py:0},children:a.map(e=>{var t;return s.jsx(Q.ZP,{sx:{px:0,py:1.5,"&:not(:last-child)":{borderBottom:"1px solid",borderColor:"divider"}},children:s.jsx(Z.Z,{primary:(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[s.jsx(er.I,{action:e.action,size:"small"}),(0,s.jsxs)(v.Z,{variant:"body2",color:"text.secondary",children:["by ",e.actor.replace("api:","").replace("cli:","")]}),s.jsx(en.c,{status:e.status,size:"small"})]}),secondary:s.jsx(Y.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:s.jsx(v.Z,{variant:"caption",component:"span",color:"text.disabled",children:function(e){let t=new Date,r=new Date(e),n=Math.floor((t.getTime()-r.getTime())/6e4),a=Math.floor(n/60);return n<1?"just now":n<60?`${n}m ago`:a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}(e.timestamp)})})})},e.id)})}),s.jsx(d.Z,{sx:{mt:2,textAlign:"center"},children:s.jsx(c.Z,{component:ee.default,href:i,size:"small",endIcon:s.jsx(et.Z,{}),sx:{textTransform:"none"},children:"View Full History"})})]})}var ei=r(60920),eo=r(26518),el=r(66147),ed=r(17820),ec=r(74151),eu=r(23016),ep=r(61960),ex=r(29564),eh=r(11475),em=r(75614);function eg({serverName:e}){let{data:t,isLoading:r}=(0,ec.Js)(e),n=(0,ec.Bx)(),[a,o]=(0,i.useState)([]),[l,h]=(0,i.useState)(!1),[f,b]=(0,i.useState)(!1),[y,Z]=(0,i.useState)(""),[j,C]=(0,i.useState)(""),[w,S]=(0,i.useState)(!1),[R,I]=(0,i.useState)({open:!1,message:"",severity:"success"}),P=e=>{let t=e.trim().toLowerCase();return t?t.length>253?"Domain exceeds 253 characters":/^[a-z0-9]([a-z0-9\-.]*[a-z0-9])?$/.test(t)?t.endsWith(".local")?"Cannot use .local system domain":t.endsWith(".nip.io")?"Cannot use .nip.io system domain":a.includes(t)?"Domain already exists":"":"Invalid domain format":"Domain cannot be empty"},z=()=>{let e=y.trim().toLowerCase(),t=P(e);if(t){C(t);return}o(t=>[...t,e]),Z(""),C(""),b(!1),h(!0)},M=e=>{o(t=>t.filter(t=>t!==e)),h(!0)},A=async()=>{try{await n.mutateAsync({serverName:e,customHostnames:a}),h(!1),S(!0),I({open:!0,message:"Hostnames saved. Container recreation required to apply changes.",severity:"warning"})}catch(e){I({open:!0,message:e instanceof Error?e.message:"Failed to save hostnames",severity:"error"})}},$=()=>{b(!1),Z(""),C("")};return r?s.jsx(m.Z,{sx:{mb:3,borderRadius:3},children:s.jsx(g.Z,{children:s.jsx(d.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:s.jsx(x.Z,{size:24})})})}):(0,s.jsxs)(s.Fragment,{children:[s.jsx(m.Z,{sx:{mb:3,borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1},children:[s.jsx(em.Z,{color:"primary"}),s.jsx(v.Z,{variant:"h6",fontWeight:600,children:"Hostnames / Domains"})]}),s.jsx(v.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Manage hostnames used by mc-router to route connections to this server."}),s.jsx(D.Z,{sx:{mb:3}}),t?.systemHostnames&&t.systemHostnames.length>0&&(0,s.jsxs)(d.Z,{sx:{mb:3},children:[s.jsx(v.Z,{variant:"subtitle2",color:"text.secondary",sx:{mb:1},children:"System Hostnames (read-only)"}),s.jsx(eu.Z,{direction:"row",flexWrap:"wrap",gap:1,children:t.systemHostnames.map(e=>s.jsx(W.Z,{icon:s.jsx(ep.Z,{sx:{fontSize:16}}),label:e.hostname,title:e.description,variant:"outlined",color:"default",size:"small"},e.hostname))})]}),(0,s.jsxs)(d.Z,{sx:{mb:2},children:[s.jsx(v.Z,{variant:"subtitle2",color:"text.secondary",sx:{mb:1},children:"Custom Domains"}),0===a.length&&!f&&s.jsx(v.Z,{variant:"body2",color:"text.disabled",sx:{mb:1},children:"No custom domains configured."}),s.jsx(eu.Z,{spacing:1,children:a.map(e=>(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",py:.5,px:1.5,borderRadius:1,bgcolor:"action.hover"},children:[s.jsx(v.Z,{variant:"body2",fontFamily:'"Roboto Mono", monospace',children:e}),s.jsx(u.Z,{size:"small",color:"error",onClick:()=>M(e),title:"Remove domain",children:s.jsx(T.Z,{fontSize:"small"})})]},e))}),f?(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"flex-start",gap:1,mt:1},children:[s.jsx(k.Z,{size:"small",placeholder:"e.g. play.example.com",value:y,onChange:e=>{Z(e.target.value),C("")},onKeyDown:e=>{"Enter"===e.key&&z(),"Escape"===e.key&&$()},error:!!j,helperText:j,autoFocus:!0,sx:{flex:1}}),s.jsx(c.Z,{size:"small",variant:"contained",onClick:z,children:"Add"}),s.jsx(u.Z,{size:"small",onClick:$,children:s.jsx(N.Z,{fontSize:"small"})})]}):s.jsx(c.Z,{size:"small",startIcon:s.jsx(ex.Z,{}),onClick:()=>b(!0),sx:{mt:1},children:"Add Domain"})]}),w&&(0,s.jsxs)(p.Z,{severity:"warning",sx:{mb:2},children:["Container recreation is required for hostname changes to take effect. Run ",s.jsx("code",{children:"docker compose up -d"})," or restart the server from the dashboard."]}),s.jsx(d.Z,{sx:{display:"flex",justifyContent:"flex-end"},children:s.jsx(c.Z,{variant:"contained",size:"small",startIcon:s.jsx(eh.Z,{}),onClick:A,disabled:!l||n.isPending,children:n.isPending?"Saving...":"Save Hostnames"})})]})}),s.jsx(ei.Z,{open:R.open,autoHideDuration:6e3,onClose:()=>I({...R,open:!1}),anchorOrigin:{vertical:"bottom",horizontal:"right"},children:s.jsx(p.Z,{onClose:()=>I({...R,open:!1}),severity:R.severity,sx:{width:"100%"},children:R.message})})]})}var ev=r(5374),ef=r(84527),eb=r(73276),ey=r(32486),eZ=r(2200),ej=r(14360),eC=r(16770),ew=r(27767),eS=r(36739);function ek({field:e,value:t,onChange:r}){let[n,a]=(0,i.useState)(!1),o=e.columns??6;return s.jsx(R.ZP,{item:!0,xs:12,sm:o,children:(()=>{switch(e.type){case"boolean":return(0,s.jsxs)(d.Z,{children:[s.jsx(ej.Z,{control:s.jsx(eC.Z,{checked:t??!1,onChange:t=>r(e.key,t.target.checked)}),label:e.label}),e.helperText&&s.jsx(v.Z,{variant:"caption",color:"text.secondary",sx:{ml:4,display:"block"},children:e.helperText})]});case"select":return(0,s.jsxs)(ey.Z,{fullWidth:!0,size:"small",children:[s.jsx(eZ.Z,{children:e.label}),s.jsx(eb.Z,{value:t??e.options?.[0]?.value??"",label:e.label,onChange:t=>r(e.key,t.target.value),children:e.options?.map(e=>s.jsx(b.Z,{value:e.value,children:e.label},e.value))})]});case"number":return s.jsx(k.Z,{fullWidth:!0,size:"small",type:"number",label:e.label,value:t??"",onChange:t=>{let n=t.target.value;r(e.key,""===n?void 0:parseInt(n,10))},inputProps:{min:e.validation?.min,max:e.validation?.max},helperText:e.helperText,InputProps:e.unit?{endAdornment:s.jsx(L.Z,{position:"end",children:s.jsx(v.Z,{variant:"caption",color:"text.secondary",children:e.unit})})}:void 0});case"password":return s.jsx(k.Z,{fullWidth:!0,size:"small",type:n?"text":"password",label:e.label,value:t??"",onChange:t=>r(e.key,t.target.value),helperText:e.helperText,InputProps:{endAdornment:s.jsx(L.Z,{position:"end",children:s.jsx(u.Z,{size:"small",onClick:()=>a(!n),edge:"end",children:n?s.jsx(eS.Z,{fontSize:"small"}):s.jsx(ew.Z,{fontSize:"small"})})})}});default:return s.jsx(k.Z,{fullWidth:!0,size:"small",label:e.label,value:t??"",onChange:t=>r(e.key,t.target.value),helperText:e.helperText})}})()})}function eR({section:e,values:t,onChange:r}){let[n,a]=(0,i.useState)(!1),o=e.icon,l=e.advancedFields.length;return s.jsx(m.Z,{sx:{mb:3,borderRadius:3},children:(0,s.jsxs)(g.Z,{sx:{p:3},children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1.5,mb:1},children:[s.jsx(o,{sx:{fontSize:22,color:"primary.main"}}),s.jsx(v.Z,{variant:"h6",fontWeight:600,children:e.title})]}),s.jsx(v.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:e.description}),s.jsx(D.Z,{sx:{mb:3}}),s.jsx(R.ZP,{container:!0,spacing:2.5,children:e.essentialFields.map(e=>s.jsx(ek,{field:e,value:t[e.key],onChange:r},e.key))}),l>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(c.Z,{fullWidth:!0,variant:"text",onClick:()=>a(!n),endIcon:s.jsx(ef.Z,{sx:{transform:n?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.3s"}}),sx:{mt:2.5,justifyContent:"flex-start",color:"text.secondary",textTransform:"none",py:1,"&:hover":{bgcolor:"action.hover"}},children:[n?"Hide":"Show"," Advanced Settings (",l,")"]}),s.jsx(ev.Z,{in:n,timeout:300,children:s.jsx(d.Z,{sx:{pt:2,borderTop:"1px dashed",borderColor:"divider"},children:s.jsx(R.ZP,{container:!0,spacing:2.5,children:e.advancedFields.map(e=>s.jsx(ek,{field:e,value:t[e.key],onChange:r},e.key))})})})]})]})})}var eI=r(11999);function eP({hasChanges:e,changedCount:t,hasRestartChanges:r,restartFields:n=[],isSaving:a,onSave:i,onDiscard:o}){return s.jsx(eI.Z,{direction:"up",in:e,mountOnEnter:!0,unmountOnExit:!0,children:(0,s.jsxs)(d.Z,{sx:{position:"sticky",bottom:0,zIndex:1100,bgcolor:"background.paper",borderTop:2,borderColor:"primary.main",px:3,py:2,mx:-3,mb:-3,boxShadow:"0 -4px 20px rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:1},children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[r&&s.jsx(ed.Z,{sx:{color:"warning.main",fontSize:20}}),(0,s.jsxs)(v.Z,{variant:"body2",fontWeight:600,children:[t," unsaved change",1!==t?"s":""]}),r&&(0,s.jsxs)(v.Z,{variant:"caption",color:"warning.main",children:["(",n.length>0?n.join(", "):"some fields"," require restart)"]})]}),(0,s.jsxs)(d.Z,{sx:{display:"flex",gap:1},children:[s.jsx(c.Z,{variant:"text",color:"inherit",onClick:o,disabled:a,children:"Discard"}),s.jsx(c.Z,{variant:"contained",startIcon:a?s.jsx(x.Z,{size:16,color:"inherit"}):s.jsx(eh.Z,{}),onClick:i,disabled:a,children:a?"Saving...":`Save Changes (${t})`})]})]})})}function ez({open:e,changedFields:t,onSaveOnly:r,onSaveAndRestart:n,onCancel:a}){return(0,s.jsxs)(j.Z,{open:e,onClose:a,maxWidth:"sm",fullWidth:!0,children:[s.jsx(C.Z,{children:(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[s.jsx(ed.Z,{color:"warning"}),s.jsx(v.Z,{variant:"h6",fontWeight:600,children:"Restart Required"})]})}),(0,s.jsxs)(w.Z,{children:[s.jsx(v.Z,{variant:"body1",gutterBottom:!0,children:"The following changes require a server restart to take effect:"}),s.jsx(X.Z,{dense:!0,children:t.map(e=>s.jsx(Q.ZP,{sx:{py:0},children:s.jsx(Z.Z,{primary:e,primaryTypographyProps:{variant:"body2",fontFamily:'"Roboto Mono", monospace'}})},e))})]}),(0,s.jsxs)(S.Z,{children:[s.jsx(c.Z,{onClick:a,color:"inherit",children:"Cancel"}),s.jsx(c.Z,{onClick:r,variant:"outlined",children:"Save Only"}),s.jsx(c.Z,{onClick:n,variant:"contained",color:"warning",children:"Save & Restart"})]})]})}var eM=r(3470),eT=r(1877),eA=r(93599),e$=r(72419),eO=r(77343);let eF=[{id:"gameplay",icon:eM.Z,title:"Gameplay",description:"Core game rules and player experience settings.",essentialFields:[{key:"difficulty",label:"Difficulty",type:"select",options:[{value:"peaceful",label:"Peaceful"},{value:"easy",label:"Easy"},{value:"normal",label:"Normal"},{value:"hard",label:"Hard"}]},{key:"gameMode",label:"Game Mode",type:"select",options:[{value:"survival",label:"Survival"},{value:"creative",label:"Creative"},{value:"adventure",label:"Adventure"},{value:"spectator",label:"Spectator"}]},{key:"maxPlayers",label:"Max Players",type:"number",validation:{min:1,max:1e3}},{key:"pvp",label:"Enable PvP",type:"boolean",helperText:"Allow players to damage each other"}],advancedFields:[{key:"forceGamemode",label:"Force Game Mode",type:"boolean",helperText:"Force game mode when players join"},{key:"hardcore",label:"Hardcore",type:"boolean",helperText:"One life only - world deleted on death"},{key:"allowFlight",label:"Allow Flight",type:"boolean",helperText:"Allow flight in survival mode"},{key:"allowNether",label:"Allow Nether",type:"boolean",helperText:"Enable Nether portal access"},{key:"enableCommandBlock",label:"Command Blocks",type:"boolean",helperText:"Enable command block functionality"},{key:"spawnProtection",label:"Spawn Protection",type:"number",helperText:"Radius around spawn (0 = disabled)",unit:"blocks",validation:{min:0,max:256}},{key:"spawnAnimals",label:"Spawn Animals",type:"boolean",helperText:"Spawn passive mobs (cows, pigs, etc.)"},{key:"spawnMonsters",label:"Spawn Monsters",type:"boolean",helperText:"Spawn hostile mobs (zombies, creepers, etc.)"},{key:"spawnNpcs",label:"Spawn NPCs",type:"boolean",helperText:"Spawn villagers and wandering traders"}]},{id:"world",icon:eT.Z,title:"World",description:"World generation and server identity settings.",essentialFields:[{key:"motd",label:"MOTD (Message of the Day)",type:"string",helperText:"Displayed in the server list",columns:12},{key:"level",label:"World Name",type:"string",helperText:"Save folder name",restartRequired:!0},{key:"levelType",label:"Level Type",type:"select",restartRequired:!0,options:[{value:"default",label:"Default"},{value:"flat",label:"Flat"},{value:"largeBiomes",label:"Large Biomes"},{value:"amplified",label:"Amplified"},{value:"buffet",label:"Buffet"}]},{key:"seed",label:"World Seed",type:"string",helperText:"Only affects new world generation",restartRequired:!0}],advancedFields:[{key:"generateStructures",label:"Generate Structures",type:"boolean",helperText:"Generate villages, temples, etc."},{key:"maxWorldSize",label:"Max World Size",type:"number",unit:"blocks",helperText:"Maximum world radius",validation:{min:1,max:29999984}},{key:"icon",label:"Server Icon URL",type:"string",helperText:"64x64 PNG image URL",columns:12}]},{id:"security",icon:eA.Z,title:"Security",description:"Authentication and access control settings.",essentialFields:[{key:"onlineMode",label:"Online Mode (Mojang Auth)",type:"boolean",helperText:"Disable to allow cracked clients (not recommended)",restartRequired:!0},{key:"enableWhitelist",label:"Enable Whitelist",type:"boolean",helperText:"Only whitelisted players can join",restartRequired:!0}],advancedFields:[{key:"enforceWhitelist",label:"Enforce Whitelist",type:"boolean",helperText:"Kick non-whitelisted players already online",restartRequired:!0},{key:"enforceSecureProfile",label:"Enforce Secure Profile",type:"boolean",helperText:"Require signed chat messages from players",restartRequired:!0}]},{id:"performance",icon:q.Z,title:"Performance & JVM",description:"Memory, view distance, and JVM optimization settings.",essentialFields:[{key:"memory",label:"Memory",type:"string",helperText:"e.g., 2G, 4G, 8G",restartRequired:!0},{key:"useAikarFlags",label:"Aikar's Flags",type:"boolean",helperText:"Optimized GC flags for Paper/Spigot",restartRequired:!0},{key:"viewDistance",label:"View Distance",type:"number",unit:"chunks",validation:{min:2,max:32}}],advancedFields:[{key:"simulationDistance",label:"Simulation Distance",type:"number",unit:"chunks",validation:{min:3,max:32}},{key:"maxTickTime",label:"Max Tick Time",type:"number",unit:"ms",helperText:"-1 to disable watchdog",validation:{min:-1}},{key:"initMemory",label:"Initial Heap",type:"string",helperText:"e.g., 1G (overrides Memory)",restartRequired:!0},{key:"maxMemory",label:"Max Heap",type:"string",helperText:"e.g., 8G (overrides Memory)",restartRequired:!0},{key:"jvmXxOpts",label:"JVM -XX Options",type:"string",helperText:"Additional -XX JVM flags",restartRequired:!0,columns:12}]},{id:"autopause",icon:e$.Z,title:"Auto-pause / Auto-stop",description:"Automatically pause or stop when no players are connected.",essentialFields:[{key:"enableAutopause",label:"Enable Auto-pause",type:"boolean",helperText:"Pause process when no players connected",restartRequired:!0},{key:"autopauseTimeoutEst",label:"Pause Timeout",type:"number",unit:"seconds",helperText:"Wait time after last player leaves",validation:{min:0}}],advancedFields:[{key:"autopauseTimeoutInit",label:"Init Timeout",type:"number",unit:"seconds",helperText:"Timeout after start without connections",validation:{min:0}},{key:"autopausePeriod",label:"Check Period",type:"number",unit:"seconds",helperText:"Status check interval",validation:{min:1}},{key:"enableAutostop",label:"Enable Auto-stop",type:"boolean",helperText:"Stop container when no players connected",restartRequired:!0},{key:"autostopTimeoutEst",label:"Stop Timeout",type:"number",unit:"seconds",helperText:"Wait time before stopping container",validation:{min:0}}]},{id:"system",icon:eO.Z,title:"System",description:"Timezone, resource pack, RCON, and container settings.",essentialFields:[{key:"tz",label:"Timezone",type:"string",helperText:"e.g., Asia/Seoul, UTC",restartRequired:!0},{key:"resourcePack",label:"Resource Pack URL",type:"string",helperText:"Direct download URL for resource pack",columns:12},{key:"enableRcon",label:"Enable RCON",type:"boolean",helperText:"Remote server console access",restartRequired:!0}],advancedFields:[{key:"resourcePackSha1",label:"Resource Pack SHA1",type:"string",helperText:"40-character hex checksum",columns:12},{key:"resourcePackEnforce",label:"Enforce Resource Pack",type:"boolean",helperText:"Kick players who decline"},{key:"resourcePackPrompt",label:"Resource Pack Prompt",type:"string",helperText:"Custom message for resource pack dialog",columns:12},{key:"rconPassword",label:"RCON Password",type:"password",restartRequired:!0},{key:"rconPort",label:"RCON Port",type:"number",validation:{min:1024,max:65535},restartRequired:!0},{key:"stopDuration",label:"Stop Timeout",type:"number",unit:"seconds",helperText:"Graceful shutdown wait time",restartRequired:!0,validation:{min:0}},{key:"uid",label:"User ID (UID)",type:"number",helperText:"Container process UID",restartRequired:!0,validation:{min:0}},{key:"gid",label:"Group ID (GID)",type:"number",helperText:"Container process GID",restartRequired:!0,validation:{min:0}}]}],eW=["memory","initMemory","maxMemory","useAikarFlags","jvmXxOpts","onlineMode","enableWhitelist","enforceWhitelist","enforceSecureProfile","level","seed","levelType","enableAutopause","enableAutostop","enableRcon","rconPassword","rconPort","tz","uid","gid","stopDuration"];function eL({serverName:e,isRunning:t}){let{data:r,isLoading:n}=(0,ec.iC)(e),a=(0,ec.MH)(),o=(0,ec.gx)(),l=(0,ec._I)(),[u,h]=(0,i.useState)({}),[f,b]=(0,i.useState)({}),[y,Z]=(0,i.useState)(!1),[R,I]=(0,i.useState)(""),[P,z]=(0,i.useState)(!1),[M,T]=(0,i.useState)({open:!1,message:"",severity:"info"}),A=(0,i.useMemo)(()=>{let e=[];for(let t of Object.keys(u))u[t]!==f[t]&&e.push(t);for(let t of Object.keys(f))u[t]===f[t]||e.includes(t)||e.push(t);return e},[u,f]),$=A.length>0,O=A.filter(e=>eW.includes(e)),F=O.length>0,W=(0,i.useCallback)((e,t)=>{h(r=>({...r,[e]:t}))},[]),L=(0,i.useCallback)(()=>{h(f)},[f]),N=(0,i.useCallback)(async r=>{try{let n=await a.mutateAsync({serverName:e,config:u});if(b(n.config),h(n.config),r&&t)try{await l.mutateAsync(e),T({open:!0,message:"Settings saved. Server is restarting...",severity:"warning"})}catch{T({open:!0,message:"Settings saved, but server restart failed. Please restart manually.",severity:"error"})}else T({open:!0,message:n.restartRequired?"Settings saved. Restart required for some changes to take effect.":"Settings saved successfully.",severity:n.restartRequired?"warning":"success"})}catch(e){T({open:!0,message:e instanceof Error?e.message:"Failed to save settings",severity:"error"})}finally{z(!1)}},[u,e,t,a,l]),q=(0,i.useCallback)(()=>{F&&t?z(!0):N(!1)},[F,t,N]),H=async()=>{if("RESET"!==R){T({open:!0,message:"Please type RESET to confirm",severity:"warning"});return}try{await o.mutateAsync(e),T({open:!0,message:"World reset successfully",severity:"success"}),Z(!1),I("")}catch(e){T({open:!0,message:e instanceof Error?e.message:"Failed to reset world",severity:"error"})}};return n?s.jsx(d.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:s.jsx(x.Z,{})}):(0,s.jsxs)(d.Z,{children:[s.jsx(eg,{serverName:e}),eF.map(e=>s.jsx(eR,{section:e,values:u,onChange:W},e.id)),s.jsx(m.Z,{sx:{borderRadius:3,borderColor:"error.main",borderWidth:1,borderStyle:"solid"},children:(0,s.jsxs)(g.Z,{children:[s.jsx(v.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,color:"error",children:"Danger Zone"}),s.jsx(D.Z,{sx:{mb:3}}),(0,s.jsxs)(d.Z,{sx:{mb:3},children:[s.jsx(v.Z,{variant:"subtitle1",fontWeight:600,gutterBottom:!0,children:"Reset World"}),s.jsx(v.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."}),s.jsx(c.Z,{variant:"outlined",color:"error",startIcon:s.jsx(ed.Z,{}),onClick:()=>Z(!0),disabled:t,children:"Reset World"}),t&&s.jsx(v.Z,{variant:"caption",color:"text.secondary",sx:{ml:2},children:"Stop the server first"})]})]})}),s.jsx(eP,{hasChanges:$,changedCount:A.length,hasRestartChanges:F,restartFields:O,isSaving:a.isPending,onSave:q,onDiscard:L}),s.jsx(ez,{open:P,changedFields:O,onSaveOnly:()=>N(!1),onSaveAndRestart:()=>N(!0),onCancel:()=>z(!1)}),(0,s.jsxs)(j.Z,{open:y,onClose:()=>Z(!1),maxWidth:"sm",fullWidth:!0,children:[s.jsx(C.Z,{children:(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[s.jsx(eo.Z,{color:"error"}),s.jsx(v.Z,{variant:"h6",fontWeight:600,children:"Reset World"})]})}),(0,s.jsxs)(w.Z,{children:[(0,s.jsxs)(v.Z,{variant:"body1",gutterBottom:!0,children:["This will permanently delete the world for ",s.jsx("strong",{children:e})," and generate a new one."]}),s.jsx(v.Z,{variant:"body2",color:"text.secondary",gutterBottom:!0,children:"This action cannot be undone. All player progress and builds will be lost."}),s.jsx(k.Z,{fullWidth:!0,label:"Type RESET to confirm",value:R,onChange:e=>I(e.target.value),sx:{mt:3},autoFocus:!0})]}),(0,s.jsxs)(S.Z,{children:[s.jsx(c.Z,{onClick:()=>Z(!1),children:"Cancel"}),s.jsx(c.Z,{variant:"contained",color:"error",onClick:H,disabled:"RESET"!==R||o.isPending,startIcon:o.isPending?s.jsx(x.Z,{size:16}):s.jsx(el.Z,{}),children:o.isPending?"Resetting...":"Reset World"})]})]}),s.jsx(ei.Z,{open:M.open,autoHideDuration:6e3,onClose:()=>T({...M,open:!1}),anchorOrigin:{vertical:"bottom",horizontal:"right"},children:s.jsx(p.Z,{onClose:()=>T({...M,open:!1}),severity:M.severity,sx:{width:"100%"},children:M.message})})]})}var eD=r(61573),eN=r(45286),eq=r(59615),eH=r(65757),eE=r(9561),eB=r(79795);let eV={admin:{label:"Owner",color:"primary",variant:"filled"},manage:{label:"Operator",color:"info",variant:"outlined"},view:{label:"Viewer",color:"default",variant:"outlined"}};function eU({permission:e,size:t="medium"}){let r=eV[e];return s.jsx(W.Z,{label:r.label,color:r.color,variant:r.variant,size:t})}var eK=r(36885),eG=r(4981),e_=r(30330),eJ=r(3693),eX=r(93445),eQ=r(98925),eY=r(65806);let e0=e=>{let t=i.useRef({});return i.useEffect(()=>{t.current=e}),t.current};var e1=r(49982),e2=r(39119);function e5(e){return void 0!==e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function e3(e,t){for(let r=0;r<e.length;r+=1)if(t(e[r]))return r;return -1}let e6=function(e={}){let{ignoreAccents:t=!0,ignoreCase:r=!0,limit:n,matchFrom:a="any",stringify:s,trim:i=!1}=e;return(e,{inputValue:o,getOptionLabel:l})=>{let d=i?o.trim():o;r&&(d=d.toLowerCase()),t&&(d=e5(d));let c=d?e.filter(e=>{let n=(s||l)(e);return r&&(n=n.toLowerCase()),t&&(n=e5(n)),"start"===a?0===n.indexOf(d):n.indexOf(d)>-1}):e;return"number"==typeof n?c.slice(0,n):c}}(),e4=e=>{var t;return null!==e.current&&(null==(t=e.current.parentElement)?void 0:t.contains(document.activeElement))},e8=[],e9=function(e){let{unstable_isActiveElementInListbox:t=e4,unstable_classNamePrefix:r="Mui",autoComplete:n=!1,autoHighlight:a=!1,autoSelect:s=!1,blurOnSelect:o=!1,clearOnBlur:l=!e.freeSolo,clearOnEscape:d=!1,componentName:c="useAutocomplete",defaultValue:u=e.multiple?e8:null,disableClearable:p=!1,disableCloseOnSelect:x=!1,disabled:h,disabledItemsFocusable:m=!1,disableListWrap:g=!1,filterOptions:v=e6,filterSelectedOptions:f=!1,freeSolo:b=!1,getOptionDisabled:y,getOptionKey:Z,getOptionLabel:j=e=>{var t;return null!=(t=e.label)?t:e},groupBy:C,handleHomeEndKeys:w=!e.freeSolo,id:S,includeInputInList:k=!1,inputValue:R,isOptionEqualToValue:I=(e,t)=>e===t,multiple:P=!1,onChange:z,onClose:M,onHighlightChange:T,onInputChange:A,onOpen:$,open:O,openOnFocus:F=!1,options:W,readOnly:L=!1,selectOnFocus:D=!e.freeSolo,value:N}=e,q=(0,eQ.Z)(S),H=j;H=e=>{let t=j(e);return"string"!=typeof t?String(t):t};let E=i.useRef(!1),B=i.useRef(!0),V=i.useRef(null),U=i.useRef(null),[K,G]=i.useState(null),[_,J]=i.useState(-1),X=a?0:-1,Q=i.useRef(X),[Y,ee]=(0,eY.Z)({controlled:N,default:u,name:c}),[et,er]=(0,eY.Z)({controlled:R,default:"",name:c,state:"inputValue"}),[en,ea]=i.useState(!1),es=i.useCallback((e,t)=>{let r;if((P?Y.length<t.length:null!==t)||l){if(P)r="";else if(null==t)r="";else{let e=H(t);r="string"==typeof e?e:""}et!==r&&(er(r),A&&A(e,r,"reset"))}},[H,et,P,A,er,l,Y]),[ei,eo]=(0,eY.Z)({controlled:O,default:!1,name:c,state:"open"}),[el,ed]=i.useState(!0),ec=!P&&null!=Y&&et===H(Y),eu=ei&&!L,ep=eu?v(W.filter(e=>!(f&&(P?Y:[Y]).some(t=>null!==t&&I(e,t)))),{inputValue:ec&&el?"":et,getOptionLabel:H}):[],ex=e0({filteredOptions:ep,value:Y,inputValue:et});i.useEffect(()=>{let e=Y!==ex.value;(!en||e)&&(!b||e)&&es(null,Y)},[Y,es,en,ex.value,b]);let eh=ei&&ep.length>0&&!L,em=(0,e1.Z)(e=>{-1===e?V.current.focus():K.querySelector(`[data-tag-index="${e}"]`).focus()});i.useEffect(()=>{P&&_>Y.length-1&&(J(-1),em(-1))},[Y,P,_,em]);let eg=(0,e1.Z)(({event:e,index:t,reason:n="auto"})=>{if(Q.current=t,-1===t?V.current.removeAttribute("aria-activedescendant"):V.current.setAttribute("aria-activedescendant",`${q}-option-${t}`),T&&T(e,-1===t?null:ep[t],n),!U.current)return;let a=U.current.querySelector(`[role="option"].${r}-focused`);a&&(a.classList.remove(`${r}-focused`),a.classList.remove(`${r}-focusVisible`));let s=U.current;if("listbox"!==U.current.getAttribute("role")&&(s=U.current.parentElement.querySelector('[role="listbox"]')),!s)return;if(-1===t){s.scrollTop=0;return}let i=U.current.querySelector(`[data-option-index="${t}"]`);if(i&&(i.classList.add(`${r}-focused`),"keyboard"===n&&i.classList.add(`${r}-focusVisible`),s.scrollHeight>s.clientHeight&&"mouse"!==n&&"touch"!==n)){let e=s.clientHeight+s.scrollTop,t=i.offsetTop+i.offsetHeight;t>e?s.scrollTop=t-s.clientHeight:i.offsetTop-i.offsetHeight*(C?1.3:0)<s.scrollTop&&(s.scrollTop=i.offsetTop-i.offsetHeight*(C?1.3:0))}}),ev=(0,e1.Z)(({event:e,diff:t,direction:r="next",reason:a="auto"})=>{if(!eu)return;let s=function(e,t){if(!U.current||e<0||e>=ep.length)return -1;let r=e;for(;;){let n=U.current.querySelector(`[data-option-index="${r}"]`),a=!m&&(!n||n.disabled||"true"===n.getAttribute("aria-disabled"));if(n&&n.hasAttribute("tabindex")&&!a)return r;if((r="next"===t?(r+1)%ep.length:(r-1+ep.length)%ep.length)===e)return -1}}((()=>{let e=ep.length-1;if("reset"===t)return X;if("start"===t)return 0;if("end"===t)return e;let r=Q.current+t;return r<0?-1===r&&k?-1:g&&-1!==Q.current||Math.abs(t)>1?0:e:r>e?r===e+1&&k?-1:g||Math.abs(t)>1?e:0:r})(),r);if(eg({index:s,reason:a,event:e}),n&&"reset"!==t){if(-1===s)V.current.value=et;else{let e=H(ep[s]);V.current.value=e,0===e.toLowerCase().indexOf(et.toLowerCase())&&et.length>0&&V.current.setSelectionRange(et.length,e.length)}}}),ef=()=>{var e;if(-1!==Q.current&&ex.filteredOptions&&ex.filteredOptions.length!==ep.length&&ex.inputValue===et&&(P?Y.length===ex.value.length&&ex.value.every((e,t)=>H(Y[t])===H(e)):((e=ex.value)?H(e):"")===(Y?H(Y):""))){let e=ex.filteredOptions[Q.current];if(e)return e3(ep,t=>H(t)===H(e))}return -1},eb=i.useCallback(()=>{if(!eu)return;let e=ef();if(-1!==e){Q.current=e;return}let t=P?Y[0]:Y;if(0===ep.length||null==t){ev({diff:"reset"});return}if(U.current){if(null!=t){let e=ep[Q.current];if(P&&e&&-1!==e3(Y,t=>I(e,t)))return;let r=e3(ep,e=>I(e,t));-1===r?ev({diff:"reset"}):eg({index:r});return}if(Q.current>=ep.length-1){eg({index:ep.length-1});return}eg({index:Q.current})}},[ep.length,!P&&Y,f,ev,eg,eu,et,P]),ey=(0,e1.Z)(e=>{(0,e2.Z)(U,e),e&&eb()});i.useEffect(()=>{eb()},[eb]);let eZ=e=>{!ei&&(eo(!0),ed(!0),$&&$(e))},ej=(e,t)=>{ei&&(eo(!1),M&&M(e,t))},eC=(e,t,r,n)=>{if(P){if(Y.length===t.length&&Y.every((e,r)=>e===t[r]))return}else if(Y===t)return;z&&z(e,t,r,n),ee(t)},ew=i.useRef(!1),eS=(e,t,r="selectOption",n="options")=>{let a=r,s=t;if(P){let e=e3(s=Array.isArray(Y)?Y.slice():[],e=>I(t,e));-1===e?s.push(t):"freeSolo"!==n&&(s.splice(e,1),a="removeOption")}es(e,s),eC(e,s,a,{option:t}),x||e&&(e.ctrlKey||e.metaKey)||ej(e,a),(!0===o||"touch"===o&&ew.current||"mouse"===o&&!ew.current)&&V.current.blur()},ek=(e,t)=>{if(!P)return;""===et&&ej(e,"toggleInput");let r=_;-1===_?""===et&&"previous"===t&&(r=Y.length-1):((r+="next"===t?1:-1)<0&&(r=0),r===Y.length&&(r=-1)),J(r=function(e,t){if(-1===e)return -1;let r=e;for(;;){if("next"===t&&r===Y.length||"previous"===t&&-1===r)return -1;let e=K.querySelector(`[data-tag-index="${r}"]`);if(e&&e.hasAttribute("tabindex")&&!e.disabled&&"true"!==e.getAttribute("aria-disabled"))return r;r+="next"===t?1:-1}}(r,t)),em(r)},eR=e=>{E.current=!0,er(""),A&&A(e,"","clear"),eC(e,P?[]:null,"clear")},eI=e=>t=>{if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented&&(-1!==_&&-1===["ArrowLeft","ArrowRight"].indexOf(t.key)&&(J(-1),em(-1)),229!==t.which))switch(t.key){case"Home":eu&&w&&(t.preventDefault(),ev({diff:"start",direction:"next",reason:"keyboard",event:t}));break;case"End":eu&&w&&(t.preventDefault(),ev({diff:"end",direction:"previous",reason:"keyboard",event:t}));break;case"PageUp":t.preventDefault(),ev({diff:-5,direction:"previous",reason:"keyboard",event:t}),eZ(t);break;case"PageDown":t.preventDefault(),ev({diff:5,direction:"next",reason:"keyboard",event:t}),eZ(t);break;case"ArrowDown":t.preventDefault(),ev({diff:1,direction:"next",reason:"keyboard",event:t}),eZ(t);break;case"ArrowUp":t.preventDefault(),ev({diff:-1,direction:"previous",reason:"keyboard",event:t}),eZ(t);break;case"ArrowLeft":ek(t,"previous");break;case"ArrowRight":ek(t,"next");break;case"Enter":if(-1!==Q.current&&eu){let e=ep[Q.current],r=!!y&&y(e);if(t.preventDefault(),r)return;eS(t,e,"selectOption"),n&&V.current.setSelectionRange(V.current.value.length,V.current.value.length)}else b&&""!==et&&!1===ec&&(P&&t.preventDefault(),eS(t,et,"createOption","freeSolo"));break;case"Escape":eu?(t.preventDefault(),t.stopPropagation(),ej(t,"escape")):d&&(""!==et||P&&Y.length>0)&&(t.preventDefault(),t.stopPropagation(),eR(t));break;case"Backspace":if(P&&!L&&""===et&&Y.length>0){let e=-1===_?Y.length-1:_,r=Y.slice();r.splice(e,1),eC(t,r,"removeOption",{option:Y[e]})}break;case"Delete":if(P&&!L&&""===et&&Y.length>0&&-1!==_){let e=Y.slice();e.splice(_,1),eC(t,e,"removeOption",{option:Y[_]})}}},eP=e=>{ea(!0),F&&!E.current&&eZ(e)},ez=e=>{if(t(U)){V.current.focus();return}ea(!1),B.current=!0,E.current=!1,s&&-1!==Q.current&&eu?eS(e,ep[Q.current],"blur"):s&&b&&""!==et?eS(e,et,"blur","freeSolo"):l&&es(e,Y),ej(e,"blur")},eM=e=>{let t=e.target.value;et!==t&&(er(t),ed(!1),A&&A(e,t,"input")),""===t?p||P||eC(e,null,"clear"):eZ(e)},eT=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));Q.current!==t&&eg({event:e,index:t,reason:"mouse"})},eA=e=>{eg({event:e,index:Number(e.currentTarget.getAttribute("data-option-index")),reason:"touch"}),ew.current=!0},e$=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));eS(e,ep[t],"selectOption"),ew.current=!1},eO=e=>t=>{let r=Y.slice();r.splice(e,1),eC(t,r,"removeOption",{option:Y[e]})},eF=e=>{ei?ej(e,"toggleInput"):eZ(e)},eW=e=>{e.currentTarget.contains(e.target)&&e.target.getAttribute("id")!==q&&e.preventDefault()},eL=e=>{e.currentTarget.contains(e.target)&&(V.current.focus(),D&&B.current&&V.current.selectionEnd-V.current.selectionStart==0&&V.current.select(),B.current=!1)},eD=e=>{h||""!==et&&ei||eF(e)},eN=b&&et.length>0;eN=eN||(P?Y.length>0:null!==Y);let eq=ep;return C&&(eq=ep.reduce((e,t,r)=>{let n=C(t);return e.length>0&&e[e.length-1].group===n?e[e.length-1].options.push(t):e.push({key:r,index:r,group:n,options:[t]}),e},[])),h&&en&&ez(),{getRootProps:(e={})=>(0,eG.Z)({"aria-owns":eh?`${q}-listbox`:null},e,{onKeyDown:eI(e),onMouseDown:eW,onClick:eL}),getInputLabelProps:()=>({id:`${q}-label`,htmlFor:q}),getInputProps:()=>({id:q,value:et,onBlur:ez,onFocus:eP,onChange:eM,onMouseDown:eD,"aria-activedescendant":eu?"":null,"aria-autocomplete":n?"both":"list","aria-controls":eh?`${q}-listbox`:void 0,"aria-expanded":eh,autoComplete:"off",ref:V,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:h}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:eR}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:eF}),getTagProps:({index:e})=>(0,eG.Z)({key:e,"data-tag-index":e,tabIndex:-1},!L&&{onDelete:eO(e)}),getListboxProps:()=>({role:"listbox",id:`${q}-listbox`,"aria-labelledby":`${q}-label`,ref:ey,onMouseDown:e=>{e.preventDefault()}}),getOptionProps:({index:e,option:t})=>{var r;let n=(P?Y:[Y]).some(e=>null!=e&&I(t,e)),a=!!y&&y(t);return{key:null!=(r=null==Z?void 0:Z(t))?r:H(t),tabIndex:-1,role:"option",id:`${q}-option-${e}`,onMouseMove:eT,onClick:e$,onTouchStart:eA,"data-option-index":e,"aria-disabled":a,"aria-selected":n}},id:q,inputValue:et,value:Y,dirty:eN,expanded:eu&&K,popupOpen:eu,focused:en||-1!==_,anchorEl:K,setAnchorEl:G,focusedTag:_,groupedOptions:eq}};var e7=r(75109),te=r(62923),tt=r(9103),tr=r(29251),tn=r(89206),ta=r(7967);function ts(e){return(0,ta.ZP)("MuiListSubheader",e)}(0,tn.Z)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);let ti=["className","color","component","disableGutters","disableSticky","inset"],to=e=>{let{classes:t,color:r,disableGutters:n,inset:a,disableSticky:s}=e,i={root:["root","default"!==r&&`color${(0,tr.Z)(r)}`,!n&&"gutters",a&&"inset",!s&&"sticky"]};return(0,eJ.Z)(i,ts,t)},tl=(0,te.ZP)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,"default"!==r.color&&t[`color${(0,tr.Z)(r.color)}`],!r.disableGutters&&t.gutters,r.inset&&t.inset,!r.disableSticky&&t.sticky]}})(({theme:e,ownerState:t})=>(0,eG.Z)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14)},"primary"===t.color&&{color:(e.vars||e).palette.primary.main},"inherit"===t.color&&{color:"inherit"},!t.disableGutters&&{paddingLeft:16,paddingRight:16},t.inset&&{paddingLeft:72},!t.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper})),td=i.forwardRef(function(e,t){let r=(0,tt.i)({props:e,name:"MuiListSubheader"}),{className:n,color:a="default",component:i="li",disableGutters:o=!1,disableSticky:l=!1,inset:d=!1}=r,c=(0,eK.Z)(r,ti),u=(0,eG.Z)({},r,{color:a,component:i,disableGutters:o,disableSticky:l,inset:d}),p=to(u);return(0,s.jsx)(tl,(0,eG.Z)({as:i,className:(0,e_.Z)(p.root,n),ref:t,ownerState:u},c))});td.muiSkipListHighlight=!0;var tc=r(52329),tu=r(36633),tp=r(41256),tx=r(58631),th=r(31506),tm=r(59129),tg=r(31776);function tv(e){return(0,ta.ZP)("MuiAutocomplete",e)}let tf=(0,tn.Z)("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var tb=r(69473);let ty=["autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","className","clearIcon","clearOnBlur","clearOnEscape","clearText","closeText","componentsProps","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","disablePortal","filterOptions","filterSelectedOptions","forcePopupIcon","freeSolo","fullWidth","getLimitTagsText","getOptionDisabled","getOptionKey","getOptionLabel","isOptionEqualToValue","groupBy","handleHomeEndKeys","id","includeInputInList","inputValue","limitTags","ListboxComponent","ListboxProps","loading","loadingText","multiple","noOptionsText","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openOnFocus","openText","options","PaperComponent","PopperComponent","popupIcon","readOnly","renderGroup","renderInput","renderOption","renderTags","selectOnFocus","size","slotProps","value"],tZ=["ref"],tj=["key"],tC=["key"],tw=e=>{let{classes:t,disablePortal:r,expanded:n,focused:a,fullWidth:s,hasClearIcon:i,hasPopupIcon:o,inputFocused:l,popupOpen:d,size:c}=e,u={root:["root",n&&"expanded",a&&"focused",s&&"fullWidth",i&&"hasClearIcon",o&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${(0,tr.Z)(c)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",d&&"popupIndicatorOpen"],popper:["popper",r&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return(0,eJ.Z)(u,tv,t)},tS=(0,te.ZP)("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e,{fullWidth:n,hasClearIcon:a,hasPopupIcon:s,inputFocused:i,size:o}=r;return[{[`& .${tf.tag}`]:t.tag},{[`& .${tf.tag}`]:t[`tagSize${(0,tr.Z)(o)}`]},{[`& .${tf.inputRoot}`]:t.inputRoot},{[`& .${tf.input}`]:t.input},{[`& .${tf.input}`]:i&&t.inputFocused},t.root,n&&t.fullWidth,s&&t.hasPopupIcon,a&&t.hasClearIcon]}})({[`&.${tf.focused} .${tf.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${tf.clearIndicator}`]:{visibility:"visible"}},[`& .${tf.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${tf.inputRoot}`]:{[`.${tf.hasPopupIcon}&, .${tf.hasClearIcon}&`]:{paddingRight:30},[`.${tf.hasPopupIcon}.${tf.hasClearIcon}&`]:{paddingRight:56},[`& .${tf.input}`]:{width:0,minWidth:30}},[`& .${tu.Z.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${tu.Z.root}.${tp.Z.sizeSmall}`]:{[`& .${tu.Z.input}`]:{padding:"2px 4px 3px 0"}},[`& .${tx.Z.root}`]:{padding:9,[`.${tf.hasPopupIcon}&, .${tf.hasClearIcon}&`]:{paddingRight:39},[`.${tf.hasPopupIcon}.${tf.hasClearIcon}&`]:{paddingRight:65},[`& .${tf.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${tf.endAdornment}`]:{right:9}},[`& .${tx.Z.root}.${tp.Z.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${tf.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${th.Z.root}`]:{paddingTop:19,paddingLeft:8,[`.${tf.hasPopupIcon}&, .${tf.hasClearIcon}&`]:{paddingRight:39},[`.${tf.hasPopupIcon}.${tf.hasClearIcon}&`]:{paddingRight:65},[`& .${th.Z.input}`]:{padding:"7px 4px"},[`& .${tf.endAdornment}`]:{right:9}},[`& .${th.Z.root}.${tp.Z.sizeSmall}`]:{paddingBottom:1,[`& .${th.Z.input}`]:{padding:"2.5px 4px"}},[`& .${tp.Z.hiddenLabel}`]:{paddingTop:8},[`& .${th.Z.root}.${tp.Z.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${tf.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${th.Z.root}.${tp.Z.hiddenLabel}.${tp.Z.sizeSmall}`]:{[`& .${tf.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${tf.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${tf.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${tf.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${tf.inputRoot}`]:{flexWrap:"wrap"}}}]}),tk=(0,te.ZP)("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),tR=(0,te.ZP)(u.Z,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),tI=(0,te.ZP)(u.Z,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:e},t)=>(0,eG.Z)({},t.popupIndicator,e.popupOpen&&t.popupIndicatorOpen)})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),tP=(0,te.ZP)(e7.Z,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[{[`& .${tf.option}`]:t.option},t.popper,r.disablePortal&&t.popperDisablePortal]}})(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]})),tz=(0,te.ZP)(tc.Z,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})(({theme:e})=>(0,eG.Z)({},e.typography.body1,{overflow:"auto"})),tM=(0,te.ZP)("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"})),tT=(0,te.ZP)("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"})),tA=(0,te.ZP)("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})(({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${tf.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${tf.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${tf.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,eX.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${tf.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,eX.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${tf.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,eX.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}}})),t$=(0,te.ZP)(td,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8})),tO=(0,te.ZP)("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,[`& .${tf.option}`]:{paddingLeft:24}}),tF=i.forwardRef(function(e,t){var r,o,l,d;let c;let u=(0,tt.i)({props:e,name:"MuiAutocomplete"}),{autoComplete:p=!1,autoHighlight:x=!1,autoSelect:h=!1,blurOnSelect:m=!1,ChipProps:g,className:v,clearIcon:f=n||(n=(0,s.jsx)(tm.Z,{fontSize:"small"})),clearOnBlur:b=!u.freeSolo,clearOnEscape:y=!1,clearText:Z="Clear",closeText:j="Close",componentsProps:C={},defaultValue:w=u.multiple?[]:null,disableClearable:S=!1,disableCloseOnSelect:k=!1,disabled:R=!1,disabledItemsFocusable:I=!1,disableListWrap:P=!1,disablePortal:z=!1,filterSelectedOptions:M=!1,forcePopupIcon:T="auto",freeSolo:A=!1,fullWidth:$=!1,getLimitTagsText:O=e=>`+${e}`,getOptionLabel:F,groupBy:L,handleHomeEndKeys:D=!u.freeSolo,includeInputInList:N=!1,limitTags:q=-1,ListboxComponent:H="ul",ListboxProps:E,loading:B=!1,loadingText:V="Loading…",multiple:U=!1,noOptionsText:K="No options",openOnFocus:G=!1,openText:_="Open",PaperComponent:J=tc.Z,PopperComponent:X=e7.Z,popupIcon:Q=a||(a=(0,s.jsx)(tg.Z,{})),readOnly:Y=!1,renderGroup:ee,renderInput:et,renderOption:er,renderTags:en,selectOnFocus:ea=!u.freeSolo,size:es="medium",slotProps:ei={}}=u,eo=(0,eK.Z)(u,ty),{getRootProps:el,getInputProps:ed,getInputLabelProps:ec,getPopupIndicatorProps:eu,getClearProps:ep,getTagProps:ex,getListboxProps:eh,getOptionProps:em,value:eg,dirty:ev,expanded:ef,id:eb,popupOpen:ey,focused:eZ,focusedTag:ej,anchorEl:eC,setAnchorEl:ew,inputValue:eS,groupedOptions:ek}=e9((0,eG.Z)({},u,{componentName:"Autocomplete"})),eR=!S&&!R&&ev&&!Y,eI=(!A||!0===T)&&!1!==T,{onMouseDown:eP}=ed(),{ref:ez}=null!=E?E:{},eM=eh(),{ref:eT}=eM,eA=(0,eK.Z)(eM,tZ),e$=(0,tb.Z)(eT,ez),eO=F||(e=>{var t;return null!=(t=e.label)?t:e}),eF=(0,eG.Z)({},u,{disablePortal:z,expanded:ef,focused:eZ,fullWidth:$,getOptionLabel:eO,hasClearIcon:eR,hasPopupIcon:eI,inputFocused:-1===ej,popupOpen:ey,size:es}),eW=tw(eF);if(U&&eg.length>0){let e=e=>(0,eG.Z)({className:eW.tag,disabled:R},ex(e));c=en?en(eg,e,eF):eg.map((t,r)=>{let n=e({index:r}),{key:a}=n,i=(0,eK.Z)(n,tj);return(0,s.jsx)(W.Z,(0,eG.Z)({label:eO(t),size:es},i,g),a)})}if(q>-1&&Array.isArray(c)){let e=c.length-q;!eZ&&e>0&&(c=c.splice(0,q)).push((0,s.jsx)("span",{className:eW.tag,children:O(e)},c.length))}let eL=ee||(e=>(0,s.jsxs)("li",{children:[(0,s.jsx)(t$,{className:eW.groupLabel,ownerState:eF,component:"div",children:e.group}),(0,s.jsx)(tO,{className:eW.groupUl,ownerState:eF,children:e.children})]},e.key)),eD=er||((e,t)=>{let{key:r}=e,n=(0,eK.Z)(e,tC);return(0,s.jsx)("li",(0,eG.Z)({},n,{children:eO(t)}),r)}),eN=(e,t)=>{let r=em({option:e,index:t});return eD((0,eG.Z)({},r,{className:eW.option}),e,{selected:r["aria-selected"],index:t,inputValue:eS},eF)},eq=null!=(r=ei.clearIndicator)?r:C.clearIndicator,eH=null!=(o=ei.paper)?o:C.paper,eE=null!=(l=ei.popper)?l:C.popper,eB=null!=(d=ei.popupIndicator)?d:C.popupIndicator;return(0,s.jsxs)(i.Fragment,{children:[(0,s.jsx)(tS,(0,eG.Z)({ref:t,className:(0,e_.Z)(eW.root,v),ownerState:eF},el(eo),{children:et({id:eb,disabled:R,fullWidth:!0,size:"small"===es?"small":void 0,InputLabelProps:ec(),InputProps:(0,eG.Z)({ref:ew,className:eW.inputRoot,startAdornment:c,onClick:e=>{e.target===e.currentTarget&&eP(e)}},(eR||eI)&&{endAdornment:(0,s.jsxs)(tk,{className:eW.endAdornment,ownerState:eF,children:[eR?(0,s.jsx)(tR,(0,eG.Z)({},ep(),{"aria-label":Z,title:Z,ownerState:eF},eq,{className:(0,e_.Z)(eW.clearIndicator,null==eq?void 0:eq.className),children:f})):null,eI?(0,s.jsx)(tI,(0,eG.Z)({},eu(),{disabled:R,"aria-label":ey?j:_,title:ey?j:_,ownerState:eF},eB,{className:(0,e_.Z)(eW.popupIndicator,null==eB?void 0:eB.className),children:Q})):null]})}),inputProps:(0,eG.Z)({className:eW.input,disabled:R,readOnly:Y},ed())})})),eC?(0,s.jsx)(tP,(0,eG.Z)({as:X,disablePortal:z,style:{width:eC?eC.clientWidth:null},ownerState:eF,role:"presentation",anchorEl:eC,open:ey},eE,{className:(0,e_.Z)(eW.popper,null==eE?void 0:eE.className),children:(0,s.jsxs)(tz,(0,eG.Z)({ownerState:eF,as:J},eH,{className:(0,e_.Z)(eW.paper,null==eH?void 0:eH.className),children:[B&&0===ek.length?(0,s.jsx)(tM,{className:eW.loading,ownerState:eF,children:V}):null,0!==ek.length||A||B?null:(0,s.jsx)(tT,{className:eW.noOptions,ownerState:eF,role:"presentation",onMouseDown:e=>{e.preventDefault()},children:K}),ek.length>0?(0,s.jsx)(tA,(0,eG.Z)({as:H,className:eW.listbox,ownerState:eF},eA,E,{ref:e$,children:ek.map((e,t)=>L?eL({key:e.key,group:e.group,children:e.options.map((t,r)=>eN(t,e.index+r))}):eN(e,t))})):null]}))})):null]})});var tW=r(99943),tL=r(92241),tD=r(61974),tN=r(28872),tq=r(95343),tH=r(20042),tE=r(43137);function tB({open:e,onClose:t,serverId:r}){var n;let[a,o]=(0,i.useState)(""),[l,u]=(0,i.useState)(null),[h,m]=(0,i.useState)("view"),{data:g,isLoading:f}=(n={enabled:e},(0,tN.a)({queryKey:["users","search",a],queryFn:()=>(0,tE.SC)(`/api/users?q=${encodeURIComponent(a)}`),enabled:n?.enabled!==!1&&a.length>=2,staleTime:3e4})),b=function(){let e=(0,tq.NL)();return(0,tH.D)({mutationFn:e=>(0,tE.SC)("/api/user-servers",{method:"POST",body:JSON.stringify(e)}),onSuccess:(t,r)=>{e.invalidateQueries({queryKey:["user-servers",r.serverId]}),e.invalidateQueries({queryKey:["user-servers"]})}})}(),y=(0,i.useMemo)(()=>g?.users??[],[g]),Z=()=>{o(""),u(null),m("view"),b.reset(),t()};return(0,s.jsxs)(j.Z,{open:e,onClose:Z,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:3}},children:[s.jsx(C.Z,{sx:{fontWeight:600},children:"Add User Access"}),(0,s.jsxs)(w.Z,{sx:{display:"flex",flexDirection:"column",gap:3,pt:"8px !important"},children:[b.isError&&s.jsx(p.Z,{severity:"error",sx:{mb:1},children:b.error?.message||"Failed to grant access"}),s.jsx(tF,{options:y,getOptionLabel:e=>e.name||e.email,isOptionEqualToValue:(e,t)=>e.id===t.id,value:l,onChange:(e,t)=>u(t),inputValue:a,onInputChange:(e,t)=>o(t),loading:f,filterOptions:e=>e,noOptionsText:a.length<2?"Type at least 2 characters":"No users found",renderInput:e=>s.jsx(k.Z,{...e,label:"Search User",placeholder:"Search by name or email...",InputProps:{...e.InputProps,endAdornment:(0,s.jsxs)(s.Fragment,{children:[f&&s.jsx(x.Z,{size:20}),e.InputProps.endAdornment]})}}),renderOption:(e,t)=>{let{key:r,...n}=e;return(0,s.jsxs)(d.Z,{component:"li",...n,sx:{display:"flex",gap:1.5,py:1},children:[s.jsx(eD.Z,{src:t.image??void 0,sx:{width:32,height:32,bgcolor:"primary.main",fontSize:14},children:(t.name?.[0]||t.email?.[0]||"?").toUpperCase()}),(0,s.jsxs)(d.Z,{children:[s.jsx(v.Z,{variant:"body2",fontWeight:500,children:t.name||"Unknown"}),s.jsx(v.Z,{variant:"caption",color:"text.secondary",children:t.email})]})]},r)}}),(0,s.jsxs)(ey.Z,{children:[s.jsx(tW.Z,{sx:{fontWeight:500,mb:1},children:"Permission Level"}),(0,s.jsxs)(tL.Z,{value:h,onChange:e=>m(e.target.value),children:[s.jsx(ej.Z,{value:"view",control:s.jsx(tD.Z,{size:"small"}),label:(0,s.jsxs)(d.Z,{children:[s.jsx(v.Z,{variant:"body2",fontWeight:500,children:"Viewer"}),s.jsx(v.Z,{variant:"caption",color:"text.secondary",children:"Can view server status and logs"})]})}),s.jsx(ej.Z,{value:"manage",control:s.jsx(tD.Z,{size:"small"}),label:(0,s.jsxs)(d.Z,{children:[s.jsx(v.Z,{variant:"body2",fontWeight:500,children:"Operator"}),s.jsx(v.Z,{variant:"caption",color:"text.secondary",children:"Can start, stop, and configure the server"})]})}),s.jsx(ej.Z,{value:"admin",control:s.jsx(tD.Z,{size:"small"}),label:(0,s.jsxs)(d.Z,{children:[s.jsx(v.Z,{variant:"body2",fontWeight:500,children:"Owner"}),s.jsx(v.Z,{variant:"caption",color:"text.secondary",children:"Full control including managing other users"})]})})]})]})]}),(0,s.jsxs)(S.Z,{sx:{px:3,pb:2},children:[s.jsx(c.Z,{onClick:Z,color:"inherit",children:"Cancel"}),s.jsx(c.Z,{onClick:()=>{l&&b.mutate({userId:l.id,serverId:r,permission:h},{onSuccess:Z})},variant:"contained",disabled:!l||b.isPending,sx:{borderRadius:2},children:b.isPending?"Adding...":"Add User"})]})]})}function tV({serverId:e}){let{data:t,isLoading:r,error:n}=(0,tN.a)({queryKey:["user-servers",e],queryFn:()=>(0,tE.SC)(`/api/user-servers?serverId=${encodeURIComponent(e)}`),enabled:!!e}),a=function(){let e=(0,tq.NL)();return(0,tH.D)({mutationFn:({id:e,permission:t})=>(0,tE.SC)(`/api/user-servers/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify({permission:t})}),onSuccess:()=>{e.invalidateQueries({queryKey:["user-servers"]})}})}(),o=function(){let e=(0,tq.NL)();return(0,tH.D)({mutationFn:e=>(0,tE.SC)(`/api/user-servers/${encodeURIComponent(e)}`,{method:"DELETE"}),onSuccess:()=>{e.invalidateQueries({queryKey:["user-servers"]})}})}(),[l,x]=(0,i.useState)(!1),[j,C]=(0,i.useState)(null),[w,S]=(0,i.useState)(null),k=(e,t)=>{C(e.currentTarget),S(t)},R=()=>{C(null),S(null)},I=e=>{if(!w||w.permission===e){R();return}a.mutate({id:w.id,permission:e},{onSettled:R})},P=t?.users.filter(e=>"admin"===e.permission).length??0,z=w?.permission==="admin"&&P<=1;if(r)return s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[s.jsx(h.Z,{variant:"text",width:"30%",height:32}),s.jsx(h.Z,{variant:"rounded",width:120,height:36,sx:{borderRadius:2}})]}),s.jsx(D.Z,{sx:{mb:2}}),[0,1,2].map(e=>(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:2,py:1.5,borderBottom:"1px solid",borderColor:"divider"},children:[s.jsx(h.Z,{variant:"circular",width:40,height:40}),(0,s.jsxs)(d.Z,{sx:{flex:1},children:[s.jsx(h.Z,{variant:"text",width:"40%"}),s.jsx(h.Z,{variant:"text",width:"60%"})]}),s.jsx(h.Z,{variant:"rounded",width:80,height:28,sx:{borderRadius:10}}),s.jsx(h.Z,{variant:"circular",width:32,height:32})]},e))]})});if(n)return(0,s.jsxs)(p.Z,{severity:"error",children:["Failed to load access list: ",n.message]});let T=t?.users??[];return(0,s.jsxs)(s.Fragment,{children:[s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[s.jsx(v.Z,{variant:"h6",fontWeight:600,children:"Server Access"}),s.jsx(c.Z,{variant:"contained",size:"small",startIcon:s.jsx(eN.Z,{}),onClick:()=>x(!0),sx:{borderRadius:2},children:"Add User"})]}),s.jsx(D.Z,{sx:{mb:1}}),0===T.length?s.jsx(d.Z,{sx:{py:4,textAlign:"center"},children:s.jsx(v.Z,{variant:"body2",color:"text.secondary",children:"No users have been granted access to this server yet."})}):T.map(e=>(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:2,py:1.5,"&:not(:last-child)":{borderBottom:"1px solid",borderColor:"divider"}},children:[s.jsx(eD.Z,{src:e.user?.image??void 0,sx:{width:40,height:40,bgcolor:"primary.main",fontSize:16},children:(e.user?.name?.[0]||e.user?.email?.[0]||"?").toUpperCase()}),(0,s.jsxs)(d.Z,{sx:{flex:1,minWidth:0},children:[s.jsx(v.Z,{variant:"body2",fontWeight:500,noWrap:!0,children:e.user?.name||"Unknown User"}),s.jsx(v.Z,{variant:"caption",color:"text.secondary",noWrap:!0,children:e.user?.email||e.userId})]}),s.jsx(eU,{permission:e.permission,size:"small"}),s.jsx(u.Z,{size:"small",onClick:t=>k(t,e),sx:{color:"text.secondary"},children:s.jsx(M.Z,{fontSize:"small"})})]},e.id)),(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1,mt:2,pt:1},children:[s.jsx(eB.Z,{sx:{fontSize:16,color:"text.disabled"}}),s.jsx(v.Z,{variant:"caption",color:"text.disabled",children:"Only platform admins and server owners can manage access."})]})]})}),(0,s.jsxs)(f.Z,{anchorEl:j,open:!!j,onClose:R,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},disableScrollLock:!0,children:[(0,s.jsxs)(b.Z,{onClick:()=>I("admin"),disabled:w?.permission==="admin",children:[s.jsx(y.Z,{children:s.jsx(eq.Z,{fontSize:"small"})}),s.jsx(Z.Z,{children:"Change to Owner"})]}),(0,s.jsxs)(b.Z,{onClick:()=>I("manage"),disabled:w?.permission==="manage"||z,children:[s.jsx(y.Z,{children:s.jsx(eH.Z,{fontSize:"small"})}),s.jsx(Z.Z,{children:"Change to Operator"})]}),(0,s.jsxs)(b.Z,{onClick:()=>I("view"),disabled:w?.permission==="view"||z,children:[s.jsx(y.Z,{children:s.jsx(ew.Z,{fontSize:"small"})}),s.jsx(Z.Z,{children:"Change to Viewer"})]}),s.jsx(D.Z,{}),(0,s.jsxs)(b.Z,{onClick:()=>{w&&o.mutate(w.id,{onSettled:R})},disabled:z,sx:{color:"error.main"},children:[s.jsx(y.Z,{children:s.jsx(eE.Z,{fontSize:"small",sx:{color:"error.main"}})}),s.jsx(Z.Z,{children:"Remove Access"})]})]}),s.jsx(tB,{open:l,onClose:()=>x(!1),serverId:e})]})}var tU=r(15934),tK=r(73802);function tG({label:e,value:t,copyText:r}){return(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",py:1},children:[s.jsx(v.Z,{variant:"body2",color:"text.secondary",children:e}),(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center"},children:[s.jsx(v.Z,{variant:"body2",sx:{fontFamily:r?'"Roboto Mono", monospace':"inherit",color:r?"text.primary":"text.secondary"},children:t}),r&&s.jsx(tK.q,{text:r,size:16})]})]})}function t_({serverName:e,hostname:t}){let{data:r,isLoading:n}=(0,tU.UW)();if(n)return s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[s.jsx(h.Z,{variant:"text",width:"40%",height:28,sx:{mb:1}}),s.jsx(h.Z,{variant:"rectangular",height:1,sx:{mb:2}}),(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[s.jsx(h.Z,{variant:"text",width:"30%"}),s.jsx(h.Z,{variant:"text",width:"40%"})]}),(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[s.jsx(h.Z,{variant:"text",width:"30%"}),s.jsx(h.Z,{variant:"text",width:"40%"})]})]})});let a=r?.enabled&&r.servers.length>0,i=r?.servers.find(t=>t.serverName===e),o=i?.playitDomain||"Not configured",l=!!i?.playitDomain;return s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[s.jsx(v.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Connection"}),s.jsx(D.Z,{sx:{mb:2}}),(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",py:1},children:[s.jsx(v.Z,{variant:"body2",color:"text.secondary",children:"LAN Address"}),t?s.jsx(tK.h,{hostname:t,portSuffix:25565,color:"text.primary",showCopyButton:!0}):s.jsx(v.Z,{variant:"body2",color:"text.secondary",children:"Not configured"})]}),a&&s.jsx(tG,{label:"External Address",value:o,copyText:l?o:void 0})]})})}var tJ=r(96468),tX=r(50582),tQ=r(86202);function tY({serverName:e}){let{data:t,isLoading:r,error:n}=(0,tN.a)({queryKey:["servers",e,"mods"],queryFn:()=>(0,tE.SC)(`/api/servers/${encodeURIComponent(e)}/mods`),enabled:!!e}),a=function(){let e=(0,tq.NL)();return(0,tH.D)({mutationFn:({serverName:e,slugs:t,source:r})=>(0,tE.SC)(`/api/servers/${encodeURIComponent(e)}/mods`,{method:"POST",body:JSON.stringify({slugs:t,source:r})}),onSuccess:(t,{serverName:r})=>{e.invalidateQueries({queryKey:["servers",r,"mods"]})}})}(),o=function(){let e=(0,tq.NL)();return(0,tH.D)({mutationFn:({serverName:e,slug:t})=>(0,tE.SC)(`/api/servers/${encodeURIComponent(e)}/mods/${encodeURIComponent(t)}`,{method:"DELETE"}),onSuccess:(t,{serverName:r})=>{e.invalidateQueries({queryKey:["servers",r,"mods"]})}})}(),[l,h]=(0,i.useState)(!1),[f,b]=(0,i.useState)(""),[y,Z]=(0,i.useState)(""),[S,R]=(0,i.useState)(!1),[I,P]=(0,i.useState)({open:!1,message:"",severity:"info"}),{data:z,isLoading:M}=function(e,t){let r=new URLSearchParams;return e&&r.set("q",e),t?.limit!=null&&r.set("limit",String(t.limit)),t?.offset!=null&&r.set("offset",String(t.offset)),(0,tN.a)({queryKey:["mods","search",e,t?.limit,t?.offset],queryFn:()=>(0,tE.SC)(`/api/mods/search?${r}`),enabled:t?.enabled!==!1&&!!e.trim()})}(y,{limit:10,enabled:l&&y.length>0}),A=(0,i.useCallback)(async t=>{try{await o.mutateAsync({serverName:e,slug:t}),R(!0),P({open:!0,message:`Removed ${t}`,severity:"success"})}catch(e){P({open:!0,message:e instanceof Error?e.message:"Failed to remove mod",severity:"error"})}},[o,e]),$=(0,i.useCallback)(async t=>{try{await a.mutateAsync({serverName:e,slugs:[t]}),R(!0),P({open:!0,message:`Added ${t}`,severity:"success"})}catch(e){P({open:!0,message:e instanceof Error?e.message:"Failed to add mod",severity:"error"})}},[a,e]),O=new Set;if(t?.mods)for(let e of Object.values(t.mods))for(let t of e)O.add(t);if(r)return s.jsx(d.Z,{sx:{display:"flex",justifyContent:"center",py:6},children:s.jsx(x.Z,{})});if(n)return(0,s.jsxs)(p.Z,{severity:"error",sx:{mt:2},children:["Failed to load mods: ",n.message]});let F=O.size>0;return(0,s.jsxs)(d.Z,{children:[S&&s.jsx(p.Z,{severity:"info",sx:{mb:2},children:"Restart the server to apply mod changes."}),s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[s.jsx(v.Z,{variant:"h6",fontWeight:600,children:"Installed Mods"}),s.jsx(c.Z,{variant:"contained",size:"small",startIcon:s.jsx(ex.Z,{}),onClick:()=>{b(""),Z(""),h(!0)},children:"Add Mods"})]}),s.jsx(D.Z,{sx:{mb:2}}),F?Object.entries(t.mods).map(([e,t])=>(0,s.jsxs)(d.Z,{sx:{mb:2},children:[s.jsx(v.Z,{variant:"subtitle2",color:"text.secondary",sx:{mb:1,textTransform:"capitalize"},children:e}),s.jsx(d.Z,{sx:{display:"flex",flexWrap:"wrap",gap:1},children:t.map(e=>s.jsx(W.Z,{label:e,icon:s.jsx(tX.Z,{}),onDelete:()=>A(e),deleteIcon:s.jsx(T.Z,{}),variant:"outlined"},e))})]},e)):(0,s.jsxs)(d.Z,{sx:{textAlign:"center",py:4},children:[s.jsx(tX.Z,{sx:{fontSize:48,color:"text.disabled",mb:1}}),s.jsx(v.Z,{variant:"body1",color:"text.secondary",children:"No mods installed"}),s.jsx(v.Z,{variant:"body2",color:"text.disabled",sx:{mt:.5},children:'Click "Add Mods" to search and install mods from Modrinth'})]})]})}),(0,s.jsxs)(j.Z,{open:l,onClose:()=>h(!1),maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{minHeight:400}},children:[(0,s.jsxs)(C.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:["Search Mods",s.jsx(u.Z,{onClick:()=>h(!1),size:"small",children:s.jsx(N.Z,{})})]}),(0,s.jsxs)(w.Z,{children:[s.jsx(k.Z,{fullWidth:!0,autoFocus:!0,placeholder:"Search Modrinth...",value:f,onChange:e=>b(e.target.value),InputProps:{startAdornment:s.jsx(L.Z,{position:"start",children:s.jsx(tJ.Z,{})})},sx:{mb:2}}),M&&s.jsx(d.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:s.jsx(x.Z,{size:28})}),!M&&z&&0===z.hits.length&&y&&(0,s.jsxs)(v.Z,{variant:"body2",color:"text.secondary",sx:{textAlign:"center",py:4},children:['No mods found for "',y,'"']}),!M&&z&&z.hits.length>0&&s.jsx(d.Z,{sx:{display:"flex",flexDirection:"column",gap:1.5},children:z.hits.map(e=>{var t;let r=O.has(e.slug);return s.jsx(m.Z,{variant:"outlined",sx:{borderRadius:2},children:s.jsx(g.Z,{sx:{py:1.5,px:2,"&:last-child":{pb:1.5}},children:(0,s.jsxs)(d.Z,{sx:{display:"flex",gap:1.5,alignItems:"flex-start"},children:[s.jsx(eD.Z,{src:e.iconUrl||void 0,variant:"rounded",sx:{width:40,height:40,bgcolor:"action.hover"},children:s.jsx(tX.Z,{})}),(0,s.jsxs)(d.Z,{sx:{flex:1,minWidth:0},children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[s.jsx(v.Z,{variant:"subtitle2",noWrap:!0,children:e.title}),s.jsx(c.Z,{size:"small",variant:r?"outlined":"contained",disabled:r||a.isPending,onClick:()=>$(e.slug),sx:{ml:1,minWidth:80,flexShrink:0},children:r?"Installed":"Add"})]}),s.jsx(v.Z,{variant:"body2",color:"text.secondary",sx:{mt:.25,overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},children:e.description}),(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1,mt:.5},children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:.25},children:[s.jsx(tQ.Z,{sx:{fontSize:14,color:"text.disabled"}}),s.jsx(v.Z,{variant:"caption",color:"text.disabled",children:(t=e.downloads)>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)})]}),e.author&&(0,s.jsxs)(v.Z,{variant:"caption",color:"text.disabled",children:["by ",e.author]})]})]})]})})},e.slug)})})]})]}),s.jsx(ei.Z,{open:I.open,autoHideDuration:4e3,onClose:()=>P(e=>({...e,open:!1})),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:s.jsx(p.Z,{onClose:()=>P(e=>({...e,open:!1})),severity:I.severity,variant:"filled",children:I.message})})]})}let t0=["Overview","Activity","Mods","Files","Backups","Access","Options"];function t1(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 t2({server:e,onSendCommand:t}){let[r,n]=(0,i.useState)("Overview"),[a,o]=(0,i.useState)(""),[l,p]=(0,i.useState)(!0),[x,h]=(0,i.useState)(!1),f=(0,i.useRef)(null),{logs:b,isConnected:y}=(0,_.Y)({serverName:e.name}),Z=(0,i.useMemo)(()=>b.filter(e=>!e.includes("RCON Listener")&&!e.includes("RCON Client")&&!e.includes("RconClient")),[b]),C=async()=>{a.trim()&&t&&(await t(a.trim()),o(""))},S=e.stats?.cpuPercent??0;e.stats?.memoryUsage&&e.stats.memoryUsage,function(e){if(!e)return;let t=e.match(/^(\d+)\s*(M|G)?$/i);if(t)parseInt(t[1],10),(t[2]||"M").toUpperCase()}(e.memory);let P=e.stats?.memoryPercent??0;return(0,s.jsxs)(d.Z,{children:[s.jsx(d.Z,{sx:{display:"flex",gap:.5,mb:3},children:t0.map(e=>s.jsx(c.Z,{onClick:()=>n(e),sx:{px:2,py:1,borderRadius:5,fontSize:14,fontWeight:500,textTransform:"none",bgcolor:r===e?"primary.main":"transparent",color:r===e?"#0a0e14":"text.secondary","&:hover":{bgcolor:r===e?"primary.main":(0,I.Fq)("#1bd96a",.1)}},children:e},e))}),(0,s.jsxs)(d.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(3, 1fr)"},gap:2,mb:2.5},children:[s.jsx(G,{value:`${S.toFixed(2)}%`,unit:"/ 100%",label:"CPU usage",icon:s.jsx(q.Z,{sx:{fontSize:28}}),progress:S,progressMax:100,color:"#1bd96a"}),s.jsx(G,{value:`${P.toFixed(2)}%`,unit:"/ 100%",label:"Memory usage",icon:s.jsx(H.Z,{sx:{fontSize:28}}),progress:P,progressMax:100,color:"#1bd96a"}),s.jsx(G,{value:e.worldSize||"0 B",unit:"/ 10 GB",label:"World size",icon:s.jsx(E.Z,{sx:{fontSize:28}}),progress:function(e){if(!e)return 0;let t=e.match(/^([\d.]+)\s*(B|KB|MB|MiB|GB|GiB)?$/i);if(!t)return 0;let r=parseFloat(t[1]);switch((t[2]||"B").toUpperCase()){case"GB":case"GIB":return 1024*r;case"MB":case"MIB":return r;case"KB":return r/1024;default:return r/1048576}}(e.worldSize),progressMax:10240,color:"#1bd96a"})]}),(0,s.jsxs)(m.Z,{sx:{bgcolor:"background.paper",borderRadius:3,border:"1px solid",borderColor:"divider",overflow:"hidden"},children:[(0,s.jsxs)(d.Z,{sx:{px:3,py:2,borderBottom:"1px solid",borderColor:"divider",display:"flex",alignItems:"center",gap:1.25},children:[s.jsx(v.Z,{variant:"h6",sx:{fontWeight:700,color:"text.primary"},children:"Console"}),s.jsx(d.Z,{sx:{width:10,height:10,borderRadius:"50%",bgcolor:y?"primary.main":"error.main",boxShadow:y?"0 0 8px rgba(27, 217, 106, 0.4)":"0 0 8px rgba(239, 68, 68, 0.4)"}})]}),(0,s.jsxs)(d.Z,{sx:{position:"relative"},children:[s.jsx(d.Z,{ref:f,onScroll:()=>{if(!f.current)return;let{scrollTop:e,scrollHeight:t,clientHeight:r}=f.current;p(t-e-r<30)},sx:{height:360,overflowY:"auto",px:2.5,py:2,fontFamily:'"Roboto Mono", 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===Z.length?s.jsx(v.Z,{sx:{color:"text.secondary",textAlign:"center",py:8},children:"Waiting for logs..."}):Z.map((e,t)=>{let r=function(e){let t=t1(e).match(/\[(\d{2}:\d{2}:\d{2})\]\s*\[([^/]+)\/(\w+)\]:\s*(.+)/);return t?{time:t[1],thread:t[2],level:t[3]||"INFO",msg:t[4]}:null}(e);return r?(0,s.jsxs)(d.Z,{sx:{display:"flex",gap:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:[(0,s.jsxs)(d.Z,{component:"span",sx:{color:"#4a4d60"},children:["[",r.time,"]"]}),(0,s.jsxs)(d.Z,{component:"span",sx:{color:"#4a4d60"},children:["\xa0[",r.thread,"/",s.jsx(d.Z,{component:"span",sx:{color:"WARN"===r.level?"#e8a848":"#6b6e80"},children:r.level}),"]:\xa0"]}),s.jsx(d.Z,{component:"span",sx:{color:"WARN"===r.level?"#c4a45a":"#b4b6c4"},children:r.msg})]},t):s.jsx(d.Z,{sx:{color:"#b4b6c4"},children:t1(e)},t)})}),s.jsx(u.Z,{onClick:()=>h(!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:s.jsx(B.Z,{sx:{fontSize:18}})}),!l&&s.jsx(u.Z,{onClick:()=>{f.current&&f.current.scrollTo({top:f.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:s.jsx(V.Z,{sx:{fontSize:18}})})]}),s.jsx(d.Z,{sx:{px:2.5,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:s.jsx(k.Z,{fullWidth:!0,size:"small",placeholder:"Send a command",value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),C())},disabled:!y,InputProps:{startAdornment:s.jsx(L.Z,{position:"start",children:s.jsx(U.Z,{sx:{fontSize:16,color:"#999"}})}),sx:{bgcolor:"#13141c",borderRadius:2,fontFamily:'"Roboto Mono", monospace',fontSize:14,"& .MuiOutlinedInput-notchedOutline":{borderColor:"#2a2d3e"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"#3a3d4e"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"}}}})})]}),"Overview"===r&&(0,s.jsxs)(R.ZP,{container:!0,spacing:3,sx:{mt:1},children:[s.jsx(R.ZP,{item:!0,xs:12,md:6,children:s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[s.jsx(v.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Server Information"}),s.jsx(D.Z,{sx:{mb:2}}),s.jsx(t5,{label:"Name",value:e.name}),s.jsx(t5,{label:"Container",value:e.container}),s.jsx(t5,{label:"Hostname",value:e.hostname?s.jsx(tK.h,{hostname:e.hostname,color:"text.primary"}):void 0}),s.jsx(t5,{label:"Type",value:e.type}),s.jsx(t5,{label:"Version",value:e.version}),s.jsx(t5,{label:"Memory",value:e.memory}),s.jsx(t5,{label:"Uptime",value:e.uptime||function(e){if(!e||e<0)return"0s";let t=Math.floor(e/3600),r=Math.floor(e%3600/60),n=e%60;return t>0?`${t}h ${r}m`:r>0?`${r}m ${n}s`:`${n}s`}(e.uptimeSeconds)})]})})}),s.jsx(R.ZP,{item:!0,xs:12,md:6,children:s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[s.jsx(v.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Players"}),s.jsx(D.Z,{sx:{mb:2}}),e.players?(0,s.jsxs)(s.Fragment,{children:[s.jsx(t5,{label:"Online",value:`${e.players.online} / ${e.players.max}`}),e.players.players&&e.players.players.length>0&&(0,s.jsxs)(s.Fragment,{children:[s.jsx(v.Z,{variant:"body2",color:"text.secondary",sx:{mt:2,mb:1},children:"Online Players"}),s.jsx(d.Z,{sx:{display:"flex",flexWrap:"wrap",gap:1},children:e.players.players.map(e=>s.jsx(W.Z,{label:e,size:"small"},e))})]})]}):s.jsx(v.Z,{variant:"body2",color:"text.secondary",children:"Player information unavailable"})]})})}),s.jsx(R.ZP,{item:!0,xs:12,md:6,children:s.jsx(t_,{serverName:e.name,hostname:e.hostname})})]}),"Activity"===r&&s.jsx(d.Z,{sx:{mt:3},children:s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[s.jsx(v.Z,{variant:"h6",gutterBottom:!0,fontWeight:600,children:"Server Activity"}),s.jsx(D.Z,{sx:{mb:2}}),s.jsx(es,{serverName:e.name})]})})}),"Mods"===r&&s.jsx(d.Z,{sx:{mt:3},children:s.jsx(tY,{serverName:e.name})}),"Files"===r&&s.jsx(d.Z,{sx:{mt:3},children:s.jsx(v.Z,{variant:"body1",color:"text.secondary",children:"File browser coming soon"})}),"Backups"===r&&s.jsx(d.Z,{sx:{mt:3},children:s.jsx(v.Z,{variant:"body1",color:"text.secondary",children:"Backup management coming soon"})}),"Access"===r&&s.jsx(d.Z,{sx:{mt:3},children:s.jsx(tV,{serverId:e.name})}),"Options"===r&&s.jsx(d.Z,{sx:{mt:3},children:s.jsx(eL,{serverName:e.name,isRunning:"running"===e.status})}),(0,s.jsxs)(j.Z,{open:x,onClose:()=>h(!1),maxWidth:"xl",fullWidth:!0,PaperProps:{sx:{height:"90vh",bgcolor:"background.paper"}},children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",p:2,borderBottom:1,borderColor:"divider"},children:[(0,s.jsxs)(v.Z,{variant:"h6",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,letterSpacing:"0.05em"},children:["Console - ",e.name]}),s.jsx(u.Z,{onClick:()=>h(!1),children:s.jsx(N.Z,{})})]}),s.jsx(w.Z,{sx:{p:0,display:"flex",flexDirection:"column"},children:s.jsx(J.K,{serverName:e.name})})]})]})}function t5({label:e,value:t}){return t?(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[s.jsx(v.Z,{variant:"body2",color:"text.secondary",children:e}),s.jsx(v.Z,{variant:"body2",component:"div",sx:{fontWeight:500},children:t})]}):null}var t3=r(47893);function t6(){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:[s.jsx("circle",{cx:"12",cy:"12",r:"10"}),s.jsx("line",{x1:"8",y1:"12",x2:"16",y2:"12"})]})}function t4(){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:[s.jsx("path",{d:"M21 2v6h-6"}),s.jsx("path",{d:"M3 12a9 9 0 0115.36-6.36L21 8"}),s.jsx("path",{d:"M3 22v-6h6"}),s.jsx("path",{d:"M21 12a9 9 0 01-15.36 6.36L3 16"})]})}function t8(){let e=(0,o.useParams)(),t=(0,l.x)(),r=decodeURIComponent(e.name),{data:n,isLoading:a,error:W}=(0,ec.Hy)(r),{status:L,health:D}=function(e){let{serverName:t,onStatusChange:r,enabled:n=!0,reconnectInterval:a=3e3}=e,[s,o]=(0,i.useState)(null),[l,d]=(0,i.useState)(null),c=(0,i.useCallback)(e=>{if("server-status"===e.type){let t=e.data.status,n=e.data.health;o(t),d(n),r?.(t,n)}},[r]),{isConnected:u,reconnect:p,retryCount:x}=(0,t3.D)({url:`/api/sse/servers/${encodeURIComponent(t)}/status`,onMessage:c,enabled:n,reconnectInterval:a});return{status:s,health:l,isConnected:u,reconnect:p,retryCount:x}}({serverName:r,enabled:!!r}),[N,q]=(0,i.useState)(null),[H,E]=(0,i.useState)(!1),[B,V]=(0,i.useState)(""),U=(0,ec.jM)(),K=(0,ec.Aw)(),G=(0,ec._I)(),_=(0,ec.Hq)(),J=async()=>{try{await U.mutateAsync(r)}catch(e){console.error("Failed to start server:",e)}},X=async()=>{try{await K.mutateAsync(r)}catch(e){console.error("Failed to stop server:",e)}},Q=async()=>{try{await G.mutateAsync(r)}catch(e){console.error("Failed to restart server:",e)}},Y=async e=>{try{await fetch(`/api/servers/${encodeURIComponent(r)}/exec`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:e})})}catch(e){console.error("Failed to send command:",e)}},ee=L||n?.server.status,et=U.isPending||K.isPending||G.isPending,er=n?.server;return(0,s.jsxs)(s.Fragment,{children:[W&&(0,s.jsxs)(p.Z,{severity:"error",sx:{mb:3},children:["Failed to load server: ",W.message]}),U.isError&&(0,s.jsxs)(p.Z,{severity:"error",sx:{mb:3},children:["Failed to start server: ",U.error?.message]}),K.isError&&(0,s.jsxs)(p.Z,{severity:"error",sx:{mb:3},children:["Failed to stop server: ",K.error?.message]}),G.isError&&(0,s.jsxs)(p.Z,{severity:"error",sx:{mb:3},children:["Failed to restart server: ",G.error?.message]}),_.isError&&(0,s.jsxs)(p.Z,{severity:"error",sx:{mb:3},children:["Failed to delete server: ",_.error?.message]}),a?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:2,mb:2.5},children:[s.jsx(h.Z,{variant:"rounded",width:64,height:64,sx:{borderRadius:3,flexShrink:0}}),(0,s.jsxs)(d.Z,{sx:{flex:1},children:[s.jsx(h.Z,{variant:"text",width:80,height:18,sx:{mb:.5}}),s.jsx(h.Z,{variant:"text",width:"40%",height:40}),(0,s.jsxs)(d.Z,{sx:{display:"flex",gap:2,mt:.75},children:[s.jsx(h.Z,{variant:"text",width:100}),s.jsx(h.Z,{variant:"text",width:60}),s.jsx(h.Z,{variant:"text",width:140}),s.jsx(h.Z,{variant:"text",width:50})]})]}),(0,s.jsxs)(d.Z,{sx:{display:"flex",gap:1,flexShrink:0},children:[s.jsx(h.Z,{variant:"rounded",width:90,height:40,sx:{borderRadius:2}}),s.jsx(h.Z,{variant:"rounded",width:36,height:36,sx:{borderRadius:2}})]})]}),s.jsx(d.Z,{sx:{display:"flex",gap:.5,mb:3},children:[80,70,65,50,65,65].map((e,t)=>s.jsx(h.Z,{variant:"rounded",width:e,height:36,sx:{borderRadius:5}},t))}),s.jsx(d.Z,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(3, 1fr)"},gap:2,mb:2.5},children:[0,1,2].map(e=>s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1.5},children:[s.jsx(h.Z,{variant:"text",width:"50%"}),s.jsx(h.Z,{variant:"circular",width:28,height:28})]}),s.jsx(h.Z,{variant:"text",width:"60%",height:36}),s.jsx(h.Z,{variant:"rounded",width:"100%",height:6,sx:{borderRadius:3,mt:1}})]})},e))}),(0,s.jsxs)(m.Z,{sx:{borderRadius:3,border:"1px solid",borderColor:"divider"},children:[(0,s.jsxs)(d.Z,{sx:{px:3,py:2,borderBottom:"1px solid",borderColor:"divider",display:"flex",alignItems:"center",gap:1.25},children:[s.jsx(h.Z,{variant:"text",width:80,height:28}),s.jsx(h.Z,{variant:"circular",width:10,height:10})]}),s.jsx(h.Z,{variant:"rectangular",height:360,sx:{bgcolor:"#0a0a0a"}}),s.jsx(d.Z,{sx:{px:2.5,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:s.jsx(h.Z,{variant:"rounded",width:"100%",height:40,sx:{borderRadius:2}})})]}),(0,s.jsxs)(R.ZP,{container:!0,spacing:3,sx:{mt:1},children:[s.jsx(R.ZP,{item:!0,xs:12,md:6,children:s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[s.jsx(h.Z,{variant:"text",width:"40%",height:28,sx:{mb:1}}),s.jsx(h.Z,{variant:"rectangular",height:1,sx:{mb:2}}),[0,1,2,3,4,5,6].map(e=>(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[s.jsx(h.Z,{variant:"text",width:"30%"}),s.jsx(h.Z,{variant:"text",width:"40%"})]},e))]})})}),s.jsx(R.ZP,{item:!0,xs:12,md:6,children:s.jsx(m.Z,{sx:{borderRadius:3},children:(0,s.jsxs)(g.Z,{children:[s.jsx(h.Z,{variant:"text",width:"30%",height:28,sx:{mb:1}}),s.jsx(h.Z,{variant:"rectangular",height:1,sx:{mb:2}}),(0,s.jsxs)(d.Z,{sx:{display:"flex",justifyContent:"space-between",py:1},children:[s.jsx(h.Z,{variant:"text",width:"25%"}),s.jsx(h.Z,{variant:"text",width:"20%"})]})]})})})]})]}):er?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:2,mb:2.5},children:[s.jsx(d.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:function(e){if(!e)return"\uD83C\uDFAE";let t=e.toUpperCase();return["PAPER","SPIGOT","BUKKIT","PURPUR"].includes(t)?"\uD83D\uDD0C":["FORGE","NEOFORGE","FABRIC","QUILT"].includes(t)?"\uD83D\uDD27":"\uD83C\uDFAE"}(er.type)}),(0,s.jsxs)(d.Z,{sx:{flex:1},children:[(0,s.jsxs)(v.Z,{onClick:()=>t.push("/servers"),sx:{fontSize:12,color:"primary.main",cursor:"pointer",mb:.25,display:"flex",alignItems:"center",gap:.5,"&:hover":{textDecoration:"underline"}},children:[s.jsx(P.Z,{sx:{fontSize:14}})," All servers"]}),s.jsx(v.Z,{variant:"h4",component:"h1",sx:{fontFamily:'"Minecraft", sans-serif',fontWeight:400,color:"text.primary",letterSpacing:"0.5px",m:0,textTransform:"uppercase"},children:r}),(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:0,mt:.75,flexWrap:"wrap",fontSize:13,color:"text.secondary"},children:[er.version&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[s.jsx(A.Z,{sx:{fontSize:14}}),"Minecraft ",er.version]}),s.jsx(d.Z,{component:"span",sx:{mx:1.25,color:"#3a3d4e"},children:"|"})]}),er.type&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[s.jsx($.Z,{sx:{fontSize:14}}),er.type]}),s.jsx(d.Z,{component:"span",sx:{mx:1.25,color:"#3a3d4e"},children:"|"})]}),er.hostname&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[s.jsx(O.Z,{sx:{fontSize:14}}),s.jsx(tK.h,{hostname:er.hostname,fontSize:13})]}),s.jsx(d.Z,{component:"span",sx:{mx:1.25,color:"#3a3d4e"},children:"|"})]}),(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:.5},children:[s.jsx(F.Z,{sx:{fontSize:14}}),er.uptime||function(e){if(!e||e<0)return"0s";let t=Math.floor(e/3600),r=Math.floor(e%3600/60),n=e%60;return t>0?`${t}h ${r}m`:r>0?`${r}m ${n}s`:`${n}s`}(er.uptimeSeconds)||"0s"]})]})]}),(0,s.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",gap:1.25,flexShrink:0},children:[("stopped"===ee||"exited"===ee||"not_created"===ee)&&s.jsx(c.Z,{variant:"contained",color:"success",startIcon:et?s.jsx(x.Z,{size:16,color:"inherit"}):s.jsx(z.Z,{}),onClick:J,disabled:et,sx:{px:2,py:1,borderRadius:2,fontSize:14,fontWeight:600},children:"Start"}),"running"===ee&&(0,s.jsxs)(s.Fragment,{children:[s.jsx(c.Z,{variant:"outlined",startIcon:et?s.jsx(x.Z,{size:16}):s.jsx(t6,{}),onClick:X,disabled:et,sx:{px:2,py:1,borderRadius:2,fontSize:14,fontWeight:500,borderColor:"divider",color:"text.secondary","&:hover":{borderColor:"text.secondary",bgcolor:(0,I.Fq)("#fff",.05)}},children:"Stop"}),s.jsx(c.Z,{variant:"contained",startIcon:et?s.jsx(x.Z,{size:16,color:"inherit"}):s.jsx(t4,{}),onClick:Q,disabled:et,sx:{px:2,py:1,borderRadius:2,fontSize:14,fontWeight:600,bgcolor:"primary.main",color:"#0a0e14","&:hover":{bgcolor:"primary.dark"}},children:"Restart"})]}),s.jsx(u.Z,{onClick:e=>q(e.currentTarget),sx:{width:36,height:36,borderRadius:2,border:"1px solid",borderColor:"divider",color:"text.secondary"},children:s.jsx(M.Z,{sx:{fontSize:18}})}),s.jsx(f.Z,{anchorEl:N,open:!!N,onClose:()=>q(null),children:(0,s.jsxs)(b.Z,{onClick:()=>{q(null),E(!0),V("")},sx:{color:"error.main"},children:[s.jsx(y.Z,{children:s.jsx(T.Z,{fontSize:"small",sx:{color:"error.main"}})}),s.jsx(Z.Z,{children:"Delete Server"})]})})]})]}),s.jsx(t2,{server:er,onSendCommand:Y})]}):s.jsx(p.Z,{severity:"warning",children:"Server not found"}),(0,s.jsxs)(j.Z,{open:H,onClose:()=>{E(!1),V("")},maxWidth:"sm",fullWidth:!0,children:[s.jsx(C.Z,{children:"Delete Server"}),(0,s.jsxs)(w.Z,{children:[(0,s.jsxs)(v.Z,{sx:{mb:2},children:["This action cannot be undone. Type ",s.jsx("strong",{children:r})," to confirm deletion."]}),s.jsx(k.Z,{label:"Server name",value:B,onChange:e=>V(e.target.value),fullWidth:!0,autoFocus:!0})]}),(0,s.jsxs)(S.Z,{sx:{px:3,pb:2},children:[s.jsx(c.Z,{onClick:()=>{E(!1),V("")},children:"Cancel"}),s.jsx(c.Z,{variant:"contained",color:"error",onClick:()=>{B===r&&_.mutate({name:r,force:!0},{onSuccess:()=>{t.push("/servers")}})},disabled:B!==r||_.isPending,startIcon:_.isPending?s.jsx(x.Z,{size:16}):null,children:_.isPending?"Deleting...":"Delete"})]})]})]})}},71438:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=r(58120),a=r(48787),s=r(39928);function i({action:e,size:t="small"}){let r=s.Lu[e]||"default",i=s.n3[e]||e;return n.jsx(a.Z,{label:i,color:r,size:t,variant:"filled",sx:{fontWeight:600,fontSize:"small"===t?"0.7rem":"0.8rem"}})}},55049:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(58120),a=r(48787),s=r(56846),i=r(72690);function o({status:e,size:t="small"}){return n.jsx(a.Z,{icon:"success"===e?n.jsx(s.Z,{}):n.jsx(i.Z,{}),label:"success"===e?"OK":"Error",color:"success"===e?"success":"error",size:t,variant:"outlined",sx:{fontWeight:500,fontSize:"small"===t?"0.7rem":"0.8rem"}})}},6418:(e,t,r)=>{"use strict";r.d(t,{K:()=>R});var n=r(58120),a=r(36372),s=r(20393),i=r.n(s),o=r(89352),l=r(52329),d=r(6275),c=r(10257),u=r(46456),p=r(54365),x=r(2365),h=r(48787),m=r(14360),g=r(51430),v=r(23016),f=r(80336),b=r(79943),y=r(78150),Z=r(73995),j=r(66831),C=r(50423);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,a.memo)(function({log:e}){let t=(0,a.useMemo)(()=>(function(e){let t=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(t)})(e),[e]);return n.jsx(o.Z,{sx:{py:.25,whiteSpace:"pre-wrap",wordBreak:"break-all","& span":{}},dangerouslySetInnerHTML:{__html:t}})});function R({serverName:e}){let[t,r]=(0,a.useState)(""),[s,i]=(0,a.useState)([]),[S,R]=(0,a.useState)(-1),[I,P]=(0,a.useState)("ALL"),[z,M]=(0,a.useState)(!0),[T,A]=(0,a.useState)(!0),[$,O]=(0,a.useState)(!1),F=(0,a.useRef)(null),W=(0,a.useRef)(null),{logs:L,isConnected:D,clearLogs:N,reconnect:q,retryCount:H}=(0,C.Y)({serverName:e}),E=(0,a.useMemo)(()=>{let e=L;return T&&(e=e.filter(e=>!e.includes("RCON Listener")&&!e.includes("RCON Client")&&!e.includes("RconClient"))),"ALL"!==I&&(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"))===I)),e},[L,I,T]),B=(0,a.useCallback)(async()=>{let n=t.trim();if(n&&!$){O(!0);try{i(e=>[...e,n]),R(-1),await fetch(`/api/servers/${encodeURIComponent(e)}/exec`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:n})}),r("")}catch(e){console.error("Failed to execute command:",e)}finally{O(!1)}}},[t,e,$]),V=(0,a.useCallback)(e=>{if("Enter"===e.key)e.preventDefault(),B();else if("ArrowUp"===e.key){if(e.preventDefault(),0===s.length)return;let t=-1===S?s.length-1:Math.max(0,S-1);R(t),r(s[t])}else if("ArrowDown"===e.key){if(e.preventDefault(),-1===S)return;let t=S+1;t>=s.length?(R(-1),r("")):(R(t),r(s[t]))}},[s,S,B]),U=(0,a.useCallback)(e=>{r(e),F.current?.focus()},[]),K=D?{text:"Connected",color:"success"}:H>0?{text:`Disconnected (Retry ${H})`,color:"warning"}:{text:"Disconnected",color:"error"};return(0,n.jsxs)(l.Z,{"data-testid":"server-console",sx:{display:"flex",flexDirection:"column",height:"100%",minHeight:400},children:[(0,n.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1,borderBottom:1,borderColor:"divider"},children:[(0,n.jsxs)(v.Z,{direction:"row",spacing:1,alignItems:"center",children:[n.jsx(x.Z,{variant:"subtitle2",children:"Console"}),n.jsx(h.Z,{"data-testid":"connection-status",label:K.text,color:K.color,size:"small"})]}),(0,n.jsxs)(v.Z,{direction:"row",spacing:1,alignItems:"center",children:[n.jsx(u.Z,{size:"small",variant:"outlined",children:["ALL","INFO","WARN","ERROR"].map(e=>n.jsx(c.Z,{onClick:()=>P(e),variant:I===e?"contained":"outlined",children:e},e))}),n.jsx(m.Z,{control:n.jsx(g.Z,{checked:z,onChange:e=>M(e.target.checked),size:"small",inputProps:{"aria-label":"Auto-scroll"}}),label:"Auto-scroll"}),n.jsx(m.Z,{control:n.jsx(g.Z,{checked:T,onChange:e=>A(e.target.checked),size:"small",inputProps:{"aria-label":"Hide RCON"}}),label:"Hide RCON"}),n.jsx(p.Z,{size:"small",onClick:N,"aria-label":"Clear logs",title:"Clear logs",children:n.jsx(Z.Z,{})}),!D&&n.jsx(c.Z,{size:"small",startIcon:n.jsx(j.Z,{}),onClick:q,"aria-label":"Reconnect",children:"Reconnect"})]})]}),n.jsx(o.Z,{ref:W,sx:{flex:1,overflow:"auto",bgcolor:"#1a1a1a",p:1,fontFamily:'"Roboto Mono", monospace',fontSize:"0.85rem"},children:0===E.length?n.jsx(x.Z,{color:"text.secondary",sx:{textAlign:"center",py:4,color:"#666"},children:"Waiting for logs..."}):E.map((e,t)=>n.jsx(k,{log:e},t))}),n.jsx(f.Z,{}),n.jsx(o.Z,{sx:{px:2,py:1,bgcolor:"background.default"},children:(0,n.jsxs)(v.Z,{direction:"row",spacing:1,children:[n.jsx(x.Z,{variant:"caption",color:"text.secondary",sx:{alignSelf:"center"},children:"Quick:"}),w.map(e=>n.jsx(c.Z,{size:"small",variant:"outlined",onClick:()=>U(e.template),children:e.label},e.label))]})}),n.jsx(f.Z,{}),(0,n.jsxs)(o.Z,{sx:{display:"flex",p:1,gap:1},children:[n.jsx(d.Z,{inputRef:F,fullWidth:!0,size:"small",placeholder:"Enter command...",value:t,onChange:e=>r(e.target.value),onKeyDown:V,disabled:!D||$,InputProps:{sx:{fontFamily:'"Roboto Mono", monospace'}}}),n.jsx(c.Z,{variant:"contained",onClick:B,disabled:!t.trim()||!D||$,startIcon:$?n.jsx(b.Z,{size:16}):n.jsx(y.Z,{}),"aria-label":"Send command",children:"Send"})]})]})}},15784:(e,t,r)=>{"use strict";r.d(t,{DM:()=>i,HZ:()=>l,VM:()=>o,hT:()=>s,oL:()=>d});var n=r(28872),a=r(43137);function s(e={},t){let r=function(e){let t=new URLSearchParams;e.action&&t.set("action",e.action),e.actor&&t.set("actor",e.actor),e.targetType&&t.set("targetType",e.targetType),e.targetName&&t.set("targetName",e.targetName),e.status&&t.set("status",e.status),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to),void 0!==e.limit&&t.set("limit",String(e.limit)),void 0!==e.offset&&t.set("offset",String(e.offset)),e.sort&&t.set("sort",e.sort);let r=t.toString();return r?`?${r}`:""}(e);return(0,n.a)({queryKey:["audit-logs",e],queryFn:()=>(0,a.SC)(`/api/audit-logs${r}`),enabled:t?.enabled!==!1})}function i(e){return(0,n.a)({queryKey:["audit-logs","stats"],queryFn:()=>(0,a.SC)("/api/audit-logs/stats"),enabled:e?.enabled!==!1,refetchInterval:3e4})}function o(e,t){return(0,n.a)({queryKey:["audit-logs",e],queryFn:()=>(0,a.SC)(`/api/audit-logs/${encodeURIComponent(e)}`),enabled:t?.enabled!==!1&&!!e})}function l(e,t){return s({targetType:"server",targetName:e,limit:t?.limit??20},{enabled:t?.enabled!==!1&&!!e})}function d(e=10){return s({limit:e,sort:"timestamp:desc"})}},15934:(e,t,r)=>{"use strict";r.d(t,{Bc:()=>l,N$:()=>d,UW:()=>o});var n=r(28872),a=r(95343),s=r(20042),i=r(43137);function o(){return(0,n.a)({queryKey:["playit-status"],queryFn:()=>(0,i.SC)("/api/playit/status"),refetchInterval:3e4})}function l(){let e=(0,a.NL)();return(0,s.D)({mutationFn:()=>(0,i.SC)("/api/playit/start",{method:"POST"}),onSuccess:()=>{e.invalidateQueries({queryKey:["playit-status"]})}})}function d(){let e=(0,a.NL)();return(0,s.D)({mutationFn:()=>(0,i.SC)("/api/playit/stop",{method:"POST"}),onSuccess:()=>{e.invalidateQueries({queryKey:["playit-status"]})}})}},50423:(e,t,r)=>{"use strict";r.d(t,{Y:()=>s});var n=r(36372),a=r(47893);function s(e){let{serverName:t,maxLines:r=500,enabled:s=!0,reconnectInterval:i=3e3}=e,[o,l]=(0,n.useState)([]),d=(0,n.useCallback)(e=>{let t;"server-log"===e.type?t=e.data.log:"log"in e&&"string"==typeof e.log&&(t=e.log),t&&l(e=>{let n=[...e,t];return n.length>r?n.slice(n.length-r):n})},[r]),{isConnected:c,reconnect:u,retryCount:p}=(0,a.D)({url:`/api/sse/servers/${encodeURIComponent(t)}/logs`,onMessage:d,enabled:s,reconnectInterval:i});return{logs:o,isConnected:c,clearLogs:(0,n.useCallback)(()=>{l([])},[]),reconnect:u,retryCount:p}}},39928:(e,t,r)=>{"use strict";r.d(t,{KK:()=>o,Lu:()=>n,Xn:()=>i,n3:()=>a,xg:()=>s});let n={"server.create":"success","server.delete":"error","server.start":"info","server.stop":"warning","server.restart":"secondary","player.whitelist.add":"success","player.whitelist.remove":"warning","player.ban":"error","player.unban":"success","player.op":"info","player.deop":"warning","player.kick":"error","audit.purge":"default"},a={"server.create":"Create","server.delete":"Delete","server.start":"Start","server.stop":"Stop","server.restart":"Restart","player.whitelist.add":"Whitelist Add","player.whitelist.remove":"Whitelist Remove","player.ban":"Ban","player.unban":"Unban","player.op":"Op","player.deop":"Deop","player.kick":"Kick","audit.purge":"Purge"},s=["server.create","server.delete","server.start","server.stop","server.restart","player.whitelist.add","player.whitelist.remove","player.ban","player.unban","player.op","player.deop","player.kick","audit.purge"],i=["server.create","server.delete","server.start","server.stop","server.restart"],o=["player.whitelist.add","player.whitelist.remove","player.ban","player.unban","player.op","player.deop","player.kick"]},40579:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});let n=(0,r(2325).createProxy)(String.raw`/home/runner/work/minecraft-server-manager/minecraft-server-manager/platform/services/mcctl-console/src/app/(main)/servers/[name]/page.tsx#default`)}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[9836,1489,6591,3043,8847,7573,8872,4859,6088,8243,8389,3633,609,9023,3068,6175,354,8091],()=>r(61509));module.exports=n})();