From 1b8f9916c2af2af6ab84ad23eae8857425f8a07a Mon Sep 17 00:00:00 2001 From: sibianl Date: Mon, 10 Nov 2025 00:47:51 +0800 Subject: [PATCH 1/7] feat(backend): add recommand vram in model list api and add need more nodes flag in cluster status api --- src/backend/server/scheduler_manage.py | 4 +++ src/backend/server/static_config.py | 44 ++++++++++++++++++++++++-- src/scheduling/scheduler.py | 3 ++ 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/src/backend/server/scheduler_manage.py b/src/backend/server/scheduler_manage.py index 99784f4..8098f5b 100644 --- a/src/backend/server/scheduler_manage.py +++ b/src/backend/server/scheduler_manage.py @@ -91,6 +91,9 @@ def get_peer_id(self): return None return self.lattica.peer_id() + def need_more_nodes(self): + return self.scheduler.need_more_nodes() if self.scheduler else False + def get_cluster_status(self): return { "type": "cluster_status", @@ -102,6 +105,7 @@ def get_cluster_status(self): self.get_peer_id(), self.is_local_network ), "node_list": self.get_node_list(), + "need_more_nodes": self.need_more_nodes(), }, } diff --git a/src/backend/server/static_config.py b/src/backend/server/static_config.py index 941f0e7..9b5ec7d 100644 --- a/src/backend/server/static_config.py +++ b/src/backend/server/static_config.py @@ -1,9 +1,13 @@ +import concurrent.futures import json -import logging +import math from pathlib import Path +from parallax_utils.logging_config import get_logger from scheduling.model_info import ModelInfo +logger = get_logger(__name__) + # Supported model list - key: model name, value: MLX model name (same as key if no MLX variant) MODELS = { "Qwen/Qwen3-0.6B": "Qwen/Qwen3-0.6B", @@ -57,7 +61,6 @@ "zai-org/GLM-4.6": "mlx-community/GLM-4.6-4bit", } -logger = logging.getLogger(__name__) NODE_JOIN_COMMAND_LOCAL_NETWORK = """parallax join""" NODE_JOIN_COMMAND_PUBLIC_NETWORK = """parallax join -s {scheduler_addr} """ @@ -94,6 +97,9 @@ def _load_config_only(name: str) -> dict: param_bytes_per_element = 1 elif quant_method in ("mxfp4", "int4", "awq", "gptq"): param_bytes_per_element = 0.5 + else: + param_bytes_per_element = 1 + logger.warning(f"model_name:{model_name} quant_method {quant_method} not supported") mlx_param_bytes_per_element = param_bytes_per_element mlx_model_name = MODELS.get(model_name, model_name) @@ -135,8 +141,40 @@ def _load_config_only(name: str) -> dict: return model_info +def get_model_info_list(): + model_name_list = list(MODELS.keys()) + with concurrent.futures.ThreadPoolExecutor() as executor: + model_info_list = list(executor.map(get_model_info, model_name_list)) + return model_info_list + + +model_info_list_cache = get_model_info_list() + + def get_model_list(): - return list(MODELS.keys()) + model_info_list = model_info_list_cache + + def build_single_model(model_info): + return { + "name": model_info.model_name, + "vram_gb": math.ceil(estimate_vram_gb_required(model_info)), + } + + results = [build_single_model(model_info) for model_info in model_info_list] + return results + + +def estimate_vram_gb_required(model_info): + return ( + ( + model_info.embedding_io_bytes + + model_info.num_layers * model_info.decoder_layer_io_bytes(roofline=False) + ) + * 1.0 + / 1024 + / 1024 + / 1024 + ) def get_node_join_command(scheduler_addr, is_local_network): diff --git a/src/scheduling/scheduler.py b/src/scheduling/scheduler.py index 8d9ab23..c6d0b08 100644 --- a/src/scheduling/scheduler.py +++ b/src/scheduling/scheduler.py @@ -576,3 +576,6 @@ def stop(self) -> None: self._wake_event.set() with self._node_count_cv: self._node_count_cv.notify_all() + + def need_more_nodes(self): + return not self._bootstrapped and len(self.nodes) >= self.min_nodes_bootstrapping From 937329136f9e382f6a82cd268a81525d16be786e Mon Sep 17 00:00:00 2001 From: Xiaodong Date: Mon, 10 Nov 2025 08:20:24 +0800 Subject: [PATCH 2/7] feat(frontend): supports nodes number requirement alert --- .../{App-BwG-l8Xs.js => App-CwQoKbS_.js} | 58 +++++++++---------- src/frontend/dist/assets/chat-DbYkLAHJ.js | 1 + .../{chat-DSga-3Xw.js => chat-Dbb5eyZ9.js} | 2 +- src/frontend/dist/assets/chat-fdxrhkT3.js | 1 - src/frontend/dist/assets/join-BWhers2Y.js | 6 -- src/frontend/dist/assets/join-gimeSV7I.js | 6 ++ src/frontend/dist/assets/main-C0U2HpN8.js | 1 - src/frontend/dist/assets/main-DVorMRWs.js | 1 + ...ut-C9FQ4SXh.js => main-layout-n9ngsR-Z.js} | 36 ++++++------ src/frontend/dist/assets/setup-BNnF1V7C.js | 6 ++ src/frontend/dist/assets/setup-CYeFrJeL.js | 6 -- src/frontend/dist/chat.html | 4 +- src/frontend/dist/index.html | 4 +- .../src/components/common/drawer-layout.tsx | 27 ++++++++- src/frontend/src/pages/join.tsx | 11 +++- src/frontend/src/pages/setup.tsx | 11 +++- src/frontend/src/services/api.ts | 2 +- src/frontend/src/services/cluster.tsx | 34 +++++++++-- 18 files changed, 138 insertions(+), 79 deletions(-) rename src/frontend/dist/assets/{App-BwG-l8Xs.js => App-CwQoKbS_.js} (69%) create mode 100644 src/frontend/dist/assets/chat-DbYkLAHJ.js rename src/frontend/dist/assets/{chat-DSga-3Xw.js => chat-Dbb5eyZ9.js} (99%) delete mode 100644 src/frontend/dist/assets/chat-fdxrhkT3.js delete mode 100644 src/frontend/dist/assets/join-BWhers2Y.js create mode 100644 src/frontend/dist/assets/join-gimeSV7I.js delete mode 100644 src/frontend/dist/assets/main-C0U2HpN8.js create mode 100644 src/frontend/dist/assets/main-DVorMRWs.js rename src/frontend/dist/assets/{main-layout-C9FQ4SXh.js => main-layout-n9ngsR-Z.js} (94%) create mode 100644 src/frontend/dist/assets/setup-BNnF1V7C.js delete mode 100644 src/frontend/dist/assets/setup-CYeFrJeL.js diff --git a/src/frontend/dist/assets/App-BwG-l8Xs.js b/src/frontend/dist/assets/App-CwQoKbS_.js similarity index 69% rename from src/frontend/dist/assets/App-BwG-l8Xs.js rename to src/frontend/dist/assets/App-CwQoKbS_.js index b82846c..e6add20 100644 --- a/src/frontend/dist/assets/App-BwG-l8Xs.js +++ b/src/frontend/dist/assets/App-CwQoKbS_.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-CYeFrJeL.js","assets/main-layout-C9FQ4SXh.js","assets/main-layout-DVneG3Rq.css","assets/join-BWhers2Y.js","assets/chat-DSga-3Xw.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-BNnF1V7C.js","assets/main-layout-n9ngsR-Z.js","assets/main-layout-DVneG3Rq.css","assets/join-gimeSV7I.js","assets/chat-Dbb5eyZ9.js"])))=>i.map(i=>d[i]); function N2(n,r){for(var l=0;lo[u]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))o(u);new MutationObserver(u=>{for(const c of u)if(c.type==="childList")for(const d of c.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&o(d)}).observe(document,{childList:!0,subtree:!0});function l(u){const c={};return u.integrity&&(c.integrity=u.integrity),u.referrerPolicy&&(c.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?c.credentials="include":u.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function o(u){if(u.ep)return;u.ep=!0;const c=l(u);fetch(u.href,c)}})();function Ba(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Of={exports:{}},vl={};/** * @license React * react-jsx-runtime.production.js @@ -7,7 +7,7 @@ function N2(n,r){for(var l=0;l>>1,w=A[le];if(0>>1;leu(ie,X))oeu(fe,ie)?(A[le]=fe,A[oe]=X,le=oe):(A[le]=ie,A[re]=X,le=re);else if(oeu(fe,X))A[le]=fe,A[oe]=X,le=oe;else break e}}return U}function u(A,U){var X=A.sortIndex-U.sortIndex;return X!==0?X:A.id-U.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;n.unstable_now=function(){return c.now()}}else{var d=Date,h=d.now();n.unstable_now=function(){return d.now()-h}}var p=[],m=[],y=1,b=null,E=3,O=!1,C=!1,T=!1,M=!1,D=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,$=typeof setImmediate<"u"?setImmediate:null;function B(A){for(var U=l(m);U!==null;){if(U.callback===null)o(m);else if(U.startTime<=A)o(m),U.sortIndex=U.expirationTime,r(p,U);else break;U=l(m)}}function _(A){if(T=!1,B(A),!C)if(l(p)!==null)C=!0,N||(N=!0,S());else{var U=l(m);U!==null&&Z(_,U.startTime-A)}}var N=!1,V=-1,F=5,Q=-1;function I(){return M?!0:!(n.unstable_now()-QA&&I());){var le=b.callback;if(typeof le=="function"){b.callback=null,E=b.priorityLevel;var w=le(b.expirationTime<=A);if(A=n.unstable_now(),typeof w=="function"){b.callback=w,B(A),U=!0;break t}b===l(p)&&o(p),B(A)}else o(p);b=l(p)}if(b!==null)U=!0;else{var Y=l(m);Y!==null&&Z(_,Y.startTime-A),U=!1}}break e}finally{b=null,E=X,O=!1}U=void 0}}finally{U?S():N=!1}}}var S;if(typeof $=="function")S=function(){$(K)};else if(typeof MessageChannel<"u"){var J=new MessageChannel,G=J.port2;J.port1.onmessage=K,S=function(){G.postMessage(null)}}else S=function(){D(K,0)};function Z(A,U){V=D(function(){A(n.unstable_now())},U)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(A){A.callback=null},n.unstable_forceFrameRate=function(A){0>A||125le?(A.sortIndex=X,r(m,A),l(p)===null&&A===l(m)&&(T?(k(V),V=-1):T=!0,Z(_,X-le))):(A.sortIndex=w,r(p,A),C||O||(C=!0,N||(N=!0,S()))),A},n.unstable_shouldYield=I,n.unstable_wrapCallback=function(A){var U=E;return function(){var X=E;E=U;try{return A.apply(this,arguments)}finally{E=X}}}})(_f)),_f}var ig;function U2(){return ig||(ig=1,Df.exports=j2()),Df.exports}var kf={exports:{}},ye={};/** + */var rg;function j2(){return rg||(rg=1,(function(n){function r(O,U){var V=O.length;O.push(U);e:for(;0>>1,w=O[le];if(0>>1;leu(ie,V))oeu(fe,ie)?(O[le]=fe,O[oe]=V,le=oe):(O[le]=ie,O[re]=V,le=re);else if(oeu(fe,V))O[le]=fe,O[oe]=V,le=oe;else break e}}return U}function u(O,U){var V=O.sortIndex-U.sortIndex;return V!==0?V:O.id-U.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;n.unstable_now=function(){return c.now()}}else{var d=Date,h=d.now();n.unstable_now=function(){return d.now()-h}}var p=[],m=[],y=1,b=null,E=3,A=!1,C=!1,T=!1,M=!1,D=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,$=typeof setImmediate<"u"?setImmediate:null;function B(O){for(var U=l(m);U!==null;){if(U.callback===null)o(m);else if(U.startTime<=O)o(m),U.sortIndex=U.expirationTime,r(p,U);else break;U=l(m)}}function _(O){if(T=!1,B(O),!C)if(l(p)!==null)C=!0,N||(N=!0,S());else{var U=l(m);U!==null&&Z(_,U.startTime-O)}}var N=!1,P=-1,W=5,I=-1;function Q(){return M?!0:!(n.unstable_now()-IO&&Q());){var le=b.callback;if(typeof le=="function"){b.callback=null,E=b.priorityLevel;var w=le(b.expirationTime<=O);if(O=n.unstable_now(),typeof w=="function"){b.callback=w,B(O),U=!0;break t}b===l(p)&&o(p),B(O)}else o(p);b=l(p)}if(b!==null)U=!0;else{var q=l(m);q!==null&&Z(_,q.startTime-O),U=!1}}break e}finally{b=null,E=V,A=!1}U=void 0}}finally{U?S():N=!1}}}var S;if(typeof $=="function")S=function(){$(K)};else if(typeof MessageChannel<"u"){var ee=new MessageChannel,H=ee.port2;ee.port1.onmessage=K,S=function(){H.postMessage(null)}}else S=function(){D(K,0)};function Z(O,U){P=D(function(){O(n.unstable_now())},U)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(O){O.callback=null},n.unstable_forceFrameRate=function(O){0>O||125le?(O.sortIndex=V,r(m,O),l(p)===null&&O===l(m)&&(T?(k(P),P=-1):T=!0,Z(_,V-le))):(O.sortIndex=w,r(p,O),C||A||(C=!0,N||(N=!0,S()))),O},n.unstable_shouldYield=Q,n.unstable_wrapCallback=function(O){var U=E;return function(){var V=E;E=U;try{return O.apply(this,arguments)}finally{E=V}}}})(_f)),_f}var ig;function U2(){return ig||(ig=1,Df.exports=j2()),Df.exports}var kf={exports:{}},ye={};/** * @license React * react.production.js * @@ -23,7 +23,7 @@ function N2(n,r){for(var l=0;l"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(r){console.error(r)}}return n(),zf.exports=Y2(),zf.exports}/** + */var sg;function Y2(){if(sg)return zt;sg=1;var n=_d();function r(p){var m="https://react.dev/errors/"+p;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(r){console.error(r)}}return n(),zf.exports=Y2(),zf.exports}/** * @license React * react-dom-client.production.js * @@ -39,15 +39,15 @@ function N2(n,r){for(var l=0;lw||(e.current=le[w],le[w]=null,w--)}function ie(e,t){w++,le[w]=e.current,e.current=t}var oe=Y(null),fe=Y(null),ue=Y(null),Oe=Y(null);function Se(e,t){switch(ie(ue,t),ie(fe,e),ie(oe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?D0(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=D0(t),e=_0(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}re(oe),ie(oe,e)}function Ie(){re(oe),re(fe),re(ue)}function Xe(e){e.memoizedState!==null&&ie(Oe,e);var t=oe.current,a=_0(t,e.type);t!==a&&(ie(fe,e),ie(oe,a))}function lt(e){fe.current===e&&(re(oe),re(fe)),Oe.current===e&&(re(Oe),hl._currentValue=X)}var bt=Object.prototype.hasOwnProperty,wt=n.unstable_scheduleCallback,Nt=n.unstable_cancelCallback,yn=n.unstable_shouldYield,Un=n.unstable_requestPaint,Je=n.unstable_now,Lt=n.unstable_getCurrentPriorityLevel,ft=n.unstable_ImmediatePriority,vn=n.unstable_UserBlockingPriority,wn=n.unstable_NormalPriority,pe=n.unstable_LowPriority,Kl=n.unstable_IdlePriority,Wl=n.log,Fl=n.unstable_setDisableYieldValue,St=null,Ee=null;function ot(e){if(typeof Wl=="function"&&Fl(e),Ee&&typeof Ee.setStrictMode=="function")try{Ee.setStrictMode(St,e)}catch{}}var Qe=Math.clz32?Math.clz32:x1,xi=Math.log,pu=Math.LN2;function x1(e){return e>>>=0,e===0?32:31-(xi(e)/pu|0)|0}var Jl=256,eo=4194304;function Ua(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function to(e,t,a){var i=e.pendingLanes;if(i===0)return 0;var s=0,f=e.suspendedLanes,g=e.pingedLanes;e=e.warmLanes;var v=i&134217727;return v!==0?(i=v&~f,i!==0?s=Ua(i):(g&=v,g!==0?s=Ua(g):a||(a=v&~e,a!==0&&(s=Ua(a))))):(v=i&~f,v!==0?s=Ua(v):g!==0?s=Ua(g):a||(a=i&~e,a!==0&&(s=Ua(a)))),s===0?0:t!==0&&t!==s&&(t&f)===0&&(f=s&-s,a=t&-t,f>=a||f===32&&(a&4194048)!==0)?t:s}function Ci(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function C1(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function hh(){var e=Jl;return Jl<<=1,(Jl&4194048)===0&&(Jl=256),e}function mh(){var e=eo;return eo<<=1,(eo&62914560)===0&&(eo=4194304),e}function gu(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function Ei(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function E1(e,t,a,i,s,f){var g=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var v=e.entanglements,R=e.expirationTimes,H=e.hiddenUpdates;for(a=g&~a;0w||(e.current=le[w],le[w]=null,w--)}function ie(e,t){w++,le[w]=e.current,e.current=t}var oe=q(null),fe=q(null),ue=q(null),Oe=q(null);function Se(e,t){switch(ie(ue,t),ie(fe,e),ie(oe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?D0(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=D0(t),e=_0(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}re(oe),ie(oe,e)}function Ie(){re(oe),re(fe),re(ue)}function Xe(e){e.memoizedState!==null&&ie(Oe,e);var t=oe.current,a=_0(t,e.type);t!==a&&(ie(fe,e),ie(oe,a))}function lt(e){fe.current===e&&(re(oe),re(fe)),Oe.current===e&&(re(Oe),hl._currentValue=V)}var bt=Object.prototype.hasOwnProperty,wt=n.unstable_scheduleCallback,Nt=n.unstable_cancelCallback,yn=n.unstable_shouldYield,Un=n.unstable_requestPaint,Je=n.unstable_now,Lt=n.unstable_getCurrentPriorityLevel,ft=n.unstable_ImmediatePriority,vn=n.unstable_UserBlockingPriority,wn=n.unstable_NormalPriority,pe=n.unstable_LowPriority,Kl=n.unstable_IdlePriority,Wl=n.log,Fl=n.unstable_setDisableYieldValue,St=null,Ee=null;function ot(e){if(typeof Wl=="function"&&Fl(e),Ee&&typeof Ee.setStrictMode=="function")try{Ee.setStrictMode(St,e)}catch{}}var Qe=Math.clz32?Math.clz32:x1,xi=Math.log,pu=Math.LN2;function x1(e){return e>>>=0,e===0?32:31-(xi(e)/pu|0)|0}var Jl=256,eo=4194304;function Ua(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function to(e,t,a){var i=e.pendingLanes;if(i===0)return 0;var s=0,f=e.suspendedLanes,g=e.pingedLanes;e=e.warmLanes;var v=i&134217727;return v!==0?(i=v&~f,i!==0?s=Ua(i):(g&=v,g!==0?s=Ua(g):a||(a=v&~e,a!==0&&(s=Ua(a))))):(v=i&~f,v!==0?s=Ua(v):g!==0?s=Ua(g):a||(a=i&~e,a!==0&&(s=Ua(a)))),s===0?0:t!==0&&t!==s&&(t&f)===0&&(f=s&-s,a=t&-t,f>=a||f===32&&(a&4194048)!==0)?t:s}function Ci(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function C1(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function hh(){var e=Jl;return Jl<<=1,(Jl&4194048)===0&&(Jl=256),e}function mh(){var e=eo;return eo<<=1,(eo&62914560)===0&&(eo=4194304),e}function gu(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function Ei(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function E1(e,t,a,i,s,f){var g=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var v=e.entanglements,R=e.expirationTimes,Y=e.hiddenUpdates;for(a=g&~a;0)":-1s||R[i]!==H[s]){var te=` +`+xu+e+Eh}var Cu=!1;function Eu(e,t){if(!e||Cu)return"";Cu=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var i={DetermineComponentFrameRoot:function(){try{if(t){var ae=function(){throw Error()};if(Object.defineProperty(ae.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ae,[])}catch(X){var G=X}Reflect.construct(e,[],ae)}else{try{ae.call()}catch(X){G=X}e.call(ae.prototype)}}else{try{throw Error()}catch(X){G=X}(ae=e())&&typeof ae.catch=="function"&&ae.catch(function(){})}}catch(X){if(X&&G&&typeof X.stack=="string")return[X.stack,G.stack]}return[null,null]}};i.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var s=Object.getOwnPropertyDescriptor(i.DetermineComponentFrameRoot,"name");s&&s.configurable&&Object.defineProperty(i.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var f=i.DetermineComponentFrameRoot(),g=f[0],v=f[1];if(g&&v){var R=g.split(` +`),Y=v.split(` +`);for(s=i=0;is||R[i]!==Y[s]){var te=` `+R[i].replace(" at new "," at ");return e.displayName&&te.includes("")&&(te=te.replace("",e.displayName)),te}while(1<=i&&0<=s);break}}}finally{Cu=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?Cr(a):""}function R1(e){switch(e.tag){case 26:case 27:case 5:return Cr(e.type);case 16:return Cr("Lazy");case 13:return Cr("Suspense");case 19:return Cr("SuspenseList");case 0:case 15:return Eu(e.type,!1);case 11:return Eu(e.type.render,!1);case 1:return Eu(e.type,!0);case 31:return Cr("Activity");default:return""}}function Th(e){try{var t="";do t+=R1(e),e=e.return;while(e);return t}catch(a){return` Error generating stack: `+a.message+` -`+a.stack}}function an(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Mh(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function D1(e){var t=Mh(e)?"checked":"value",a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=""+e[t];if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var s=a.get,f=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(g){i=""+g,f.call(this,g)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return i},setValue:function(g){i=""+g},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ro(e){e._valueTracker||(e._valueTracker=D1(e))}function wh(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var a=t.getValue(),i="";return e&&(i=Mh(e)?e.checked?"true":"false":e.value),e=i,e!==a?(t.setValue(e),!0):!1}function io(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var _1=/[\n"\\]/g;function rn(e){return e.replace(_1,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Tu(e,t,a,i,s,f,g,v){e.name="",g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"?e.type=g:e.removeAttribute("type"),t!=null?g==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+an(t)):e.value!==""+an(t)&&(e.value=""+an(t)):g!=="submit"&&g!=="reset"||e.removeAttribute("value"),t!=null?Mu(e,g,an(t)):a!=null?Mu(e,g,an(a)):i!=null&&e.removeAttribute("value"),s==null&&f!=null&&(e.defaultChecked=!!f),s!=null&&(e.checked=s&&typeof s!="function"&&typeof s!="symbol"),v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?e.name=""+an(v):e.removeAttribute("name")}function Ah(e,t,a,i,s,f,g,v){if(f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(e.type=f),t!=null||a!=null){if(!(f!=="submit"&&f!=="reset"||t!=null))return;a=a!=null?""+an(a):"",t=t!=null?""+an(t):a,v||t===e.value||(e.value=t),e.defaultValue=t}i=i??s,i=typeof i!="function"&&typeof i!="symbol"&&!!i,e.checked=v?e.checked:!!i,e.defaultChecked=!!i,g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"&&(e.name=g)}function Mu(e,t,a){t==="number"&&io(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function Er(e,t,a,i){if(e=e.options,t){t={};for(var s=0;s"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Du=!1;if(Yn)try{var Ai={};Object.defineProperty(Ai,"passive",{get:function(){Du=!0}}),window.addEventListener("test",Ai,Ai),window.removeEventListener("test",Ai,Ai)}catch{Du=!1}var fa=null,_u=null,oo=null;function $h(){if(oo)return oo;var e,t=_u,a=t.length,i,s="value"in fa?fa.value:fa.textContent,f=s.length;for(e=0;e=Di),Hh=" ",Yh=!1;function qh(e,t){switch(e){case"keyup":return ib.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ar=!1;function ob(e,t){switch(e){case"compositionend":return Gh(t);case"keypress":return t.which!==32?null:(Yh=!0,Hh);case"textInput":return e=t.data,e===Hh&&Yh?null:e;default:return null}}function sb(e,t){if(Ar)return e==="compositionend"||!Lu&&qh(e,t)?(e=$h(),oo=_u=fa=null,Ar=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-e};e=i}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Wh(a)}}function Jh(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Jh(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function em(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=io(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=io(e.document)}return t}function Uu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var gb=Yn&&"documentMode"in document&&11>=document.documentMode,Or=null,Hu=null,$i=null,Yu=!1;function tm(e,t,a){var i=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Yu||Or==null||Or!==io(i)||(i=Or,"selectionStart"in i&&Uu(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),$i&&zi($i,i)||($i=i,i=Fo(Hu,"onSelect"),0>=g,s-=g,Gn=1<<32-Qe(t)+s|a<f?f:8;var g=A.T,v={};A.T=v,wc(e,!1,t,a);try{var R=s(),H=A.S;if(H!==null&&H(v,R),R!==null&&typeof R=="object"&&typeof R.then=="function"){var te=Mb(R,i);Qi(e,t,te,Wt(e))}else Qi(e,t,i,Wt(e))}catch(ae){Qi(e,t,{then:function(){},status:"rejected",reason:ae},Wt())}finally{U.p=f,A.T=g}}function Db(){}function Tc(e,t,a,i){if(e.tag!==5)throw Error(o(476));var s=np(e).queue;tp(e,s,t,X,a===null?Db:function(){return ap(e),a(i)})}function np(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:X,baseState:X,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zn,lastRenderedState:X},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zn,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ap(e){var t=np(e).next.queue;Qi(e,t,{},Wt())}function Mc(){return kt(hl)}function rp(){return ht().memoizedState}function ip(){return ht().memoizedState}function _b(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=Wt();e=ma(a);var i=pa(t,e,a);i!==null&&(Ft(i,t,a),Gi(i,t,a)),t={cache:tc()},e.payload=t;return}t=t.return}}function kb(e,t,a){var i=Wt();a={lane:i,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null},ko(e)?op(t,a):(a=Pu(e,t,a,i),a!==null&&(Ft(a,e,i),sp(a,t,i)))}function lp(e,t,a){var i=Wt();Qi(e,t,a,i)}function Qi(e,t,a,i){var s={lane:i,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null};if(ko(e))op(t,s);else{var f=e.alternate;if(e.lanes===0&&(f===null||f.lanes===0)&&(f=t.lastRenderedReducer,f!==null))try{var g=t.lastRenderedState,v=f(g,a);if(s.hasEagerState=!0,s.eagerState=v,Xt(v,g))return po(e,t,s,0),Pe===null&&mo(),!1}catch{}finally{}if(a=Pu(e,t,s,i),a!==null)return Ft(a,e,i),sp(a,t,i),!0}return!1}function wc(e,t,a,i){if(i={lane:2,revertLane:rf(),action:i,hasEagerState:!1,eagerState:null,next:null},ko(e)){if(t)throw Error(o(479))}else t=Pu(e,a,i,2),t!==null&&Ft(t,e,2)}function ko(e){var t=e.alternate;return e===ve||t!==null&&t===ve}function op(e,t){jr=wo=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function sp(e,t,a){if((a&4194048)!==0){var i=t.lanes;i&=e.pendingLanes,a|=i,t.lanes=a,gh(e,a)}}var zo={readContext:kt,use:Oo,useCallback:st,useContext:st,useEffect:st,useImperativeHandle:st,useLayoutEffect:st,useInsertionEffect:st,useMemo:st,useReducer:st,useRef:st,useState:st,useDebugValue:st,useDeferredValue:st,useTransition:st,useSyncExternalStore:st,useId:st,useHostTransitionStatus:st,useFormState:st,useActionState:st,useOptimistic:st,useMemoCache:st,useCacheRefresh:st},up={readContext:kt,use:Oo,useCallback:function(e,t){return Yt().memoizedState=[e,t===void 0?null:t],e},useContext:kt,useEffect:Xm,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,_o(4194308,4,Km.bind(null,t,e),a)},useLayoutEffect:function(e,t){return _o(4194308,4,e,t)},useInsertionEffect:function(e,t){_o(4,2,e,t)},useMemo:function(e,t){var a=Yt();t=t===void 0?null:t;var i=e();if(Fa){ot(!0);try{e()}finally{ot(!1)}}return a.memoizedState=[i,t],i},useReducer:function(e,t,a){var i=Yt();if(a!==void 0){var s=a(t);if(Fa){ot(!0);try{a(t)}finally{ot(!1)}}}else s=t;return i.memoizedState=i.baseState=s,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:s},i.queue=e,e=e.dispatch=kb.bind(null,ve,e),[i.memoizedState,e]},useRef:function(e){var t=Yt();return e={current:e},t.memoizedState=e},useState:function(e){e=Sc(e);var t=e.queue,a=lp.bind(null,ve,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:Cc,useDeferredValue:function(e,t){var a=Yt();return Ec(a,e,t)},useTransition:function(){var e=Sc(!1);return e=tp.bind(null,ve,e.queue,!0,!1),Yt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var i=ve,s=Yt();if(De){if(a===void 0)throw Error(o(407));a=a()}else{if(a=t(),Pe===null)throw Error(o(349));(Te&124)!==0||Dm(i,t,a)}s.memoizedState=a;var f={value:a,getSnapshot:t};return s.queue=f,Xm(km.bind(null,i,f,e),[e]),i.flags|=2048,Hr(9,Do(),_m.bind(null,i,f,a,t),null),a},useId:function(){var e=Yt(),t=Pe.identifierPrefix;if(De){var a=Vn,i=Gn;a=(i&~(1<<32-Qe(i)-1)).toString(32)+a,t="«"+t+"R"+a,a=Ao++,0he?(Tt=ce,ce=null):Tt=ce.sibling;var Re=q(L,ce,j[he],ne);if(Re===null){ce===null&&(ce=Tt);break}e&&ce&&Re.alternate===null&&t(L,ce),z=f(Re,z,he),be===null?se=Re:be.sibling=Re,be=Re,ce=Tt}if(he===j.length)return a(L,ce),De&&Xa(L,he),se;if(ce===null){for(;hehe?(Tt=ce,ce=null):Tt=ce.sibling;var ka=q(L,ce,Re.value,ne);if(ka===null){ce===null&&(ce=Tt);break}e&&ce&&ka.alternate===null&&t(L,ce),z=f(ka,z,he),be===null?se=ka:be.sibling=ka,be=ka,ce=Tt}if(Re.done)return a(L,ce),De&&Xa(L,he),se;if(ce===null){for(;!Re.done;he++,Re=j.next())Re=ae(L,Re.value,ne),Re!==null&&(z=f(Re,z,he),be===null?se=Re:be.sibling=Re,be=Re);return De&&Xa(L,he),se}for(ce=i(ce);!Re.done;he++,Re=j.next())Re=P(ce,L,he,Re.value,ne),Re!==null&&(e&&Re.alternate!==null&&ce.delete(Re.key===null?he:Re.key),z=f(Re,z,he),be===null?se=Re:be.sibling=Re,be=Re);return e&&ce.forEach(function($2){return t(L,$2)}),De&&Xa(L,he),se}function Ye(L,z,j,ne){if(typeof j=="object"&&j!==null&&j.type===C&&j.key===null&&(j=j.props.children),typeof j=="object"&&j!==null){switch(j.$$typeof){case E:e:{for(var se=j.key;z!==null;){if(z.key===se){if(se=j.type,se===C){if(z.tag===7){a(L,z.sibling),ne=s(z,j.props.children),ne.return=L,L=ne;break e}}else if(z.elementType===se||typeof se=="object"&&se!==null&&se.$$typeof===F&&fp(se)===z.type){a(L,z.sibling),ne=s(z,j.props),Wi(ne,j),ne.return=L,L=ne;break e}a(L,z);break}else t(L,z);z=z.sibling}j.type===C?(ne=Va(j.props.children,L.mode,ne,j.key),ne.return=L,L=ne):(ne=yo(j.type,j.key,j.props,null,L.mode,ne),Wi(ne,j),ne.return=L,L=ne)}return g(L);case O:e:{for(se=j.key;z!==null;){if(z.key===se)if(z.tag===4&&z.stateNode.containerInfo===j.containerInfo&&z.stateNode.implementation===j.implementation){a(L,z.sibling),ne=s(z,j.children||[]),ne.return=L,L=ne;break e}else{a(L,z);break}else t(L,z);z=z.sibling}ne=Iu(j,L.mode,ne),ne.return=L,L=ne}return g(L);case F:return se=j._init,j=se(j._payload),Ye(L,z,j,ne)}if(Z(j))return me(L,z,j,ne);if(S(j)){if(se=S(j),typeof se!="function")throw Error(o(150));return j=se.call(j),de(L,z,j,ne)}if(typeof j.then=="function")return Ye(L,z,$o(j),ne);if(j.$$typeof===$)return Ye(L,z,xo(L,j),ne);No(L,j)}return typeof j=="string"&&j!==""||typeof j=="number"||typeof j=="bigint"?(j=""+j,z!==null&&z.tag===6?(a(L,z.sibling),ne=s(z,j),ne.return=L,L=ne):(a(L,z),ne=Zu(j,L.mode,ne),ne.return=L,L=ne),g(L)):a(L,z)}return function(L,z,j,ne){try{Ki=0;var se=Ye(L,z,j,ne);return Yr=null,se}catch(ce){if(ce===Yi||ce===Eo)throw ce;var be=Zt(29,ce,null,L.mode);return be.lanes=ne,be.return=L,be}finally{}}}var qr=dp(!0),hp=dp(!1),cn=Y(null),On=null;function ya(e){var t=e.alternate;ie(gt,gt.current&1),ie(cn,e),On===null&&(t===null||Br.current!==null||t.memoizedState!==null)&&(On=e)}function mp(e){if(e.tag===22){if(ie(gt,gt.current),ie(cn,e),On===null){var t=e.alternate;t!==null&&t.memoizedState!==null&&(On=e)}}else va()}function va(){ie(gt,gt.current),ie(cn,cn.current)}function In(e){re(cn),On===e&&(On=null),re(gt)}var gt=Y(0);function Lo(e){for(var t=e;t!==null;){if(t.tag===13){var a=t.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||yf(a)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function Ac(e,t,a,i){t=e.memoizedState,a=a(i,t),a=a==null?t:y({},t,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var Oc={enqueueSetState:function(e,t,a){e=e._reactInternals;var i=Wt(),s=ma(i);s.payload=t,a!=null&&(s.callback=a),t=pa(e,s,i),t!==null&&(Ft(t,e,i),Gi(t,e,i))},enqueueReplaceState:function(e,t,a){e=e._reactInternals;var i=Wt(),s=ma(i);s.tag=1,s.payload=t,a!=null&&(s.callback=a),t=pa(e,s,i),t!==null&&(Ft(t,e,i),Gi(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var a=Wt(),i=ma(a);i.tag=2,t!=null&&(i.callback=t),t=pa(e,i,a),t!==null&&(Ft(t,e,a),Gi(t,e,a))}};function pp(e,t,a,i,s,f,g){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(i,f,g):t.prototype&&t.prototype.isPureReactComponent?!zi(a,i)||!zi(s,f):!0}function gp(e,t,a,i){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(a,i),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(a,i),t.state!==e&&Oc.enqueueReplaceState(t,t.state,null)}function Ja(e,t){var a=t;if("ref"in t){a={};for(var i in t)i!=="ref"&&(a[i]=t[i])}if(e=e.defaultProps){a===t&&(a=y({},a));for(var s in e)a[s]===void 0&&(a[s]=e[s])}return a}var Bo=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function yp(e){Bo(e)}function vp(e){console.error(e)}function bp(e){Bo(e)}function jo(e,t){try{var a=e.onUncaughtError;a(t.value,{componentStack:t.stack})}catch(i){setTimeout(function(){throw i})}}function Sp(e,t,a){try{var i=e.onCaughtError;i(a.value,{componentStack:a.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(s){setTimeout(function(){throw s})}}function Rc(e,t,a){return a=ma(a),a.tag=3,a.payload={element:null},a.callback=function(){jo(e,t)},a}function xp(e){return e=ma(e),e.tag=3,e}function Cp(e,t,a,i){var s=a.type.getDerivedStateFromError;if(typeof s=="function"){var f=i.value;e.payload=function(){return s(f)},e.callback=function(){Sp(t,a,i)}}var g=a.stateNode;g!==null&&typeof g.componentDidCatch=="function"&&(e.callback=function(){Sp(t,a,i),typeof s!="function"&&(Ta===null?Ta=new Set([this]):Ta.add(this));var v=i.stack;this.componentDidCatch(i.value,{componentStack:v!==null?v:""})})}function $b(e,t,a,i,s){if(a.flags|=32768,i!==null&&typeof i=="object"&&typeof i.then=="function"){if(t=a.alternate,t!==null&&ji(t,a,s,!0),a=cn.current,a!==null){switch(a.tag){case 13:return On===null?Jc():a.alternate===null&&tt===0&&(tt=3),a.flags&=-257,a.flags|=65536,a.lanes=s,i===rc?a.flags|=16384:(t=a.updateQueue,t===null?a.updateQueue=new Set([i]):t.add(i),tf(e,i,s)),!1;case 22:return a.flags|=65536,i===rc?a.flags|=16384:(t=a.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([i])},a.updateQueue=t):(a=t.retryQueue,a===null?t.retryQueue=new Set([i]):a.add(i)),tf(e,i,s)),!1}throw Error(o(435,a.tag))}return tf(e,i,s),Jc(),!1}if(De)return t=cn.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=s,i!==Wu&&(e=Error(o(422),{cause:i}),Bi(ln(e,a)))):(i!==Wu&&(t=Error(o(423),{cause:i}),Bi(ln(t,a))),e=e.current.alternate,e.flags|=65536,s&=-s,e.lanes|=s,i=ln(i,a),s=Rc(e.stateNode,i,s),oc(e,s),tt!==4&&(tt=2)),!1;var f=Error(o(520),{cause:i});if(f=ln(f,a),rl===null?rl=[f]:rl.push(f),tt!==4&&(tt=2),t===null)return!0;i=ln(i,a),a=t;do{switch(a.tag){case 3:return a.flags|=65536,e=s&-s,a.lanes|=e,e=Rc(a.stateNode,i,e),oc(a,e),!1;case 1:if(t=a.type,f=a.stateNode,(a.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||f!==null&&typeof f.componentDidCatch=="function"&&(Ta===null||!Ta.has(f))))return a.flags|=65536,s&=-s,a.lanes|=s,s=xp(s),Cp(s,e,a,i),oc(a,s),!1}a=a.return}while(a!==null);return!1}var Ep=Error(o(461)),Ct=!1;function At(e,t,a,i){t.child=e===null?hp(t,null,a,i):qr(t,e.child,a,i)}function Tp(e,t,a,i,s){a=a.render;var f=t.ref;if("ref"in i){var g={};for(var v in i)v!=="ref"&&(g[v]=i[v])}else g=i;return Ka(t),i=dc(e,t,a,g,f,s),v=hc(),e!==null&&!Ct?(mc(e,t,s),Qn(e,t,s)):(De&&v&&Qu(t),t.flags|=1,At(e,t,i,s),t.child)}function Mp(e,t,a,i,s){if(e===null){var f=a.type;return typeof f=="function"&&!Xu(f)&&f.defaultProps===void 0&&a.compare===null?(t.tag=15,t.type=f,wp(e,t,f,i,s)):(e=yo(a.type,null,i,t,t.mode,s),e.ref=t.ref,e.return=t,t.child=e)}if(f=e.child,!Bc(e,s)){var g=f.memoizedProps;if(a=a.compare,a=a!==null?a:zi,a(g,i)&&e.ref===t.ref)return Qn(e,t,s)}return t.flags|=1,e=qn(f,i),e.ref=t.ref,e.return=t,t.child=e}function wp(e,t,a,i,s){if(e!==null){var f=e.memoizedProps;if(zi(f,i)&&e.ref===t.ref)if(Ct=!1,t.pendingProps=i=f,Bc(e,s))(e.flags&131072)!==0&&(Ct=!0);else return t.lanes=e.lanes,Qn(e,t,s)}return Dc(e,t,a,i,s)}function Ap(e,t,a){var i=t.pendingProps,s=i.children,f=e!==null?e.memoizedState:null;if(i.mode==="hidden"){if((t.flags&128)!==0){if(i=f!==null?f.baseLanes|a:a,e!==null){for(s=t.child=e.child,f=0;s!==null;)f=f|s.lanes|s.childLanes,s=s.sibling;t.childLanes=f&~i}else t.childLanes=0,t.child=null;return Op(e,t,i,a)}if((a&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Co(t,f!==null?f.cachePool:null),f!==null?wm(t,f):uc(),mp(t);else return t.lanes=t.childLanes=536870912,Op(e,t,f!==null?f.baseLanes|a:a,a)}else f!==null?(Co(t,f.cachePool),wm(t,f),va(),t.memoizedState=null):(e!==null&&Co(t,null),uc(),va());return At(e,t,s,a),t.child}function Op(e,t,a,i){var s=ac();return s=s===null?null:{parent:pt._currentValue,pool:s},t.memoizedState={baseLanes:a,cachePool:s},e!==null&&Co(t,null),uc(),mp(t),e!==null&&ji(e,t,i,!0),null}function Uo(e,t){var a=t.ref;if(a===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof a!="function"&&typeof a!="object")throw Error(o(284));(e===null||e.ref!==a)&&(t.flags|=4194816)}}function Dc(e,t,a,i,s){return Ka(t),a=dc(e,t,a,i,void 0,s),i=hc(),e!==null&&!Ct?(mc(e,t,s),Qn(e,t,s)):(De&&i&&Qu(t),t.flags|=1,At(e,t,a,s),t.child)}function Rp(e,t,a,i,s,f){return Ka(t),t.updateQueue=null,a=Om(t,i,a,s),Am(e),i=hc(),e!==null&&!Ct?(mc(e,t,f),Qn(e,t,f)):(De&&i&&Qu(t),t.flags|=1,At(e,t,a,f),t.child)}function Dp(e,t,a,i,s){if(Ka(t),t.stateNode===null){var f=kr,g=a.contextType;typeof g=="object"&&g!==null&&(f=kt(g)),f=new a(i,f),t.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,f.updater=Oc,t.stateNode=f,f._reactInternals=t,f=t.stateNode,f.props=i,f.state=t.memoizedState,f.refs={},ic(t),g=a.contextType,f.context=typeof g=="object"&&g!==null?kt(g):kr,f.state=t.memoizedState,g=a.getDerivedStateFromProps,typeof g=="function"&&(Ac(t,a,g,i),f.state=t.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof f.getSnapshotBeforeUpdate=="function"||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(g=f.state,typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount(),g!==f.state&&Oc.enqueueReplaceState(f,f.state,null),Pi(t,i,f,s),Vi(),f.state=t.memoizedState),typeof f.componentDidMount=="function"&&(t.flags|=4194308),i=!0}else if(e===null){f=t.stateNode;var v=t.memoizedProps,R=Ja(a,v);f.props=R;var H=f.context,te=a.contextType;g=kr,typeof te=="object"&&te!==null&&(g=kt(te));var ae=a.getDerivedStateFromProps;te=typeof ae=="function"||typeof f.getSnapshotBeforeUpdate=="function",v=t.pendingProps!==v,te||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(v||H!==g)&&gp(t,f,i,g),ha=!1;var q=t.memoizedState;f.state=q,Pi(t,i,f,s),Vi(),H=t.memoizedState,v||q!==H||ha?(typeof ae=="function"&&(Ac(t,a,ae,i),H=t.memoizedState),(R=ha||pp(t,a,R,i,q,H,g))?(te||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount()),typeof f.componentDidMount=="function"&&(t.flags|=4194308)):(typeof f.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=i,t.memoizedState=H),f.props=i,f.state=H,f.context=g,i=R):(typeof f.componentDidMount=="function"&&(t.flags|=4194308),i=!1)}else{f=t.stateNode,lc(e,t),g=t.memoizedProps,te=Ja(a,g),f.props=te,ae=t.pendingProps,q=f.context,H=a.contextType,R=kr,typeof H=="object"&&H!==null&&(R=kt(H)),v=a.getDerivedStateFromProps,(H=typeof v=="function"||typeof f.getSnapshotBeforeUpdate=="function")||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(g!==ae||q!==R)&&gp(t,f,i,R),ha=!1,q=t.memoizedState,f.state=q,Pi(t,i,f,s),Vi();var P=t.memoizedState;g!==ae||q!==P||ha||e!==null&&e.dependencies!==null&&So(e.dependencies)?(typeof v=="function"&&(Ac(t,a,v,i),P=t.memoizedState),(te=ha||pp(t,a,te,i,q,P,R)||e!==null&&e.dependencies!==null&&So(e.dependencies))?(H||typeof f.UNSAFE_componentWillUpdate!="function"&&typeof f.componentWillUpdate!="function"||(typeof f.componentWillUpdate=="function"&&f.componentWillUpdate(i,P,R),typeof f.UNSAFE_componentWillUpdate=="function"&&f.UNSAFE_componentWillUpdate(i,P,R)),typeof f.componentDidUpdate=="function"&&(t.flags|=4),typeof f.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof f.componentDidUpdate!="function"||g===e.memoizedProps&&q===e.memoizedState||(t.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||g===e.memoizedProps&&q===e.memoizedState||(t.flags|=1024),t.memoizedProps=i,t.memoizedState=P),f.props=i,f.state=P,f.context=R,i=te):(typeof f.componentDidUpdate!="function"||g===e.memoizedProps&&q===e.memoizedState||(t.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||g===e.memoizedProps&&q===e.memoizedState||(t.flags|=1024),i=!1)}return f=i,Uo(e,t),i=(t.flags&128)!==0,f||i?(f=t.stateNode,a=i&&typeof a.getDerivedStateFromError!="function"?null:f.render(),t.flags|=1,e!==null&&i?(t.child=qr(t,e.child,null,s),t.child=qr(t,null,a,s)):At(e,t,a,s),t.memoizedState=f.state,e=t.child):e=Qn(e,t,s),e}function _p(e,t,a,i){return Li(),t.flags|=256,At(e,t,a,i),t.child}var _c={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function kc(e){return{baseLanes:e,cachePool:vm()}}function zc(e,t,a){return e=e!==null?e.childLanes&~a:0,t&&(e|=fn),e}function kp(e,t,a){var i=t.pendingProps,s=!1,f=(t.flags&128)!==0,g;if((g=f)||(g=e!==null&&e.memoizedState===null?!1:(gt.current&2)!==0),g&&(s=!0,t.flags&=-129),g=(t.flags&32)!==0,t.flags&=-33,e===null){if(De){if(s?ya(t):va(),De){var v=et,R;if(R=v){e:{for(R=v,v=An;R.nodeType!==8;){if(!v){v=null;break e}if(R=xn(R.nextSibling),R===null){v=null;break e}}v=R}v!==null?(t.memoizedState={dehydrated:v,treeContext:Pa!==null?{id:Gn,overflow:Vn}:null,retryLane:536870912,hydrationErrors:null},R=Zt(18,null,null,0),R.stateNode=v,R.return=t,t.child=R,Bt=t,et=null,R=!0):R=!1}R||Ia(t)}if(v=t.memoizedState,v!==null&&(v=v.dehydrated,v!==null))return yf(v)?t.lanes=32:t.lanes=536870912,null;In(t)}return v=i.children,i=i.fallback,s?(va(),s=t.mode,v=Ho({mode:"hidden",children:v},s),i=Va(i,s,a,null),v.return=t,i.return=t,v.sibling=i,t.child=v,s=t.child,s.memoizedState=kc(a),s.childLanes=zc(e,g,a),t.memoizedState=_c,i):(ya(t),$c(t,v))}if(R=e.memoizedState,R!==null&&(v=R.dehydrated,v!==null)){if(f)t.flags&256?(ya(t),t.flags&=-257,t=Nc(e,t,a)):t.memoizedState!==null?(va(),t.child=e.child,t.flags|=128,t=null):(va(),s=i.fallback,v=t.mode,i=Ho({mode:"visible",children:i.children},v),s=Va(s,v,a,null),s.flags|=2,i.return=t,s.return=t,i.sibling=s,t.child=i,qr(t,e.child,null,a),i=t.child,i.memoizedState=kc(a),i.childLanes=zc(e,g,a),t.memoizedState=_c,t=s);else if(ya(t),yf(v)){if(g=v.nextSibling&&v.nextSibling.dataset,g)var H=g.dgst;g=H,i=Error(o(419)),i.stack="",i.digest=g,Bi({value:i,source:null,stack:null}),t=Nc(e,t,a)}else if(Ct||ji(e,t,a,!1),g=(a&e.childLanes)!==0,Ct||g){if(g=Pe,g!==null&&(i=a&-a,i=(i&42)!==0?1:yu(i),i=(i&(g.suspendedLanes|a))!==0?0:i,i!==0&&i!==R.retryLane))throw R.retryLane=i,_r(e,i),Ft(g,e,i),Ep;v.data==="$?"||Jc(),t=Nc(e,t,a)}else v.data==="$?"?(t.flags|=192,t.child=e.child,t=null):(e=R.treeContext,et=xn(v.nextSibling),Bt=t,De=!0,Za=null,An=!1,e!==null&&(sn[un++]=Gn,sn[un++]=Vn,sn[un++]=Pa,Gn=e.id,Vn=e.overflow,Pa=t),t=$c(t,i.children),t.flags|=4096);return t}return s?(va(),s=i.fallback,v=t.mode,R=e.child,H=R.sibling,i=qn(R,{mode:"hidden",children:i.children}),i.subtreeFlags=R.subtreeFlags&65011712,H!==null?s=qn(H,s):(s=Va(s,v,a,null),s.flags|=2),s.return=t,i.return=t,i.sibling=s,t.child=i,i=s,s=t.child,v=e.child.memoizedState,v===null?v=kc(a):(R=v.cachePool,R!==null?(H=pt._currentValue,R=R.parent!==H?{parent:H,pool:H}:R):R=vm(),v={baseLanes:v.baseLanes|a,cachePool:R}),s.memoizedState=v,s.childLanes=zc(e,g,a),t.memoizedState=_c,i):(ya(t),a=e.child,e=a.sibling,a=qn(a,{mode:"visible",children:i.children}),a.return=t,a.sibling=null,e!==null&&(g=t.deletions,g===null?(t.deletions=[e],t.flags|=16):g.push(e)),t.child=a,t.memoizedState=null,a)}function $c(e,t){return t=Ho({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function Ho(e,t){return e=Zt(22,e,null,t),e.lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function Nc(e,t,a){return qr(t,e.child,null,a),e=$c(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function zp(e,t,a){e.lanes|=t;var i=e.alternate;i!==null&&(i.lanes|=t),Ju(e.return,t,a)}function Lc(e,t,a,i,s){var f=e.memoizedState;f===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:i,tail:a,tailMode:s}:(f.isBackwards=t,f.rendering=null,f.renderingStartTime=0,f.last=i,f.tail=a,f.tailMode=s)}function $p(e,t,a){var i=t.pendingProps,s=i.revealOrder,f=i.tail;if(At(e,t,i.children,a),i=gt.current,(i&2)!==0)i=i&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&zp(e,a,t);else if(e.tag===19)zp(e,a,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}i&=1}switch(ie(gt,i),s){case"forwards":for(a=t.child,s=null;a!==null;)e=a.alternate,e!==null&&Lo(e)===null&&(s=a),a=a.sibling;a=s,a===null?(s=t.child,t.child=null):(s=a.sibling,a.sibling=null),Lc(t,!1,s,a,f);break;case"backwards":for(a=null,s=t.child,t.child=null;s!==null;){if(e=s.alternate,e!==null&&Lo(e)===null){t.child=s;break}e=s.sibling,s.sibling=a,a=s,s=e}Lc(t,!0,a,null,f);break;case"together":Lc(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Qn(e,t,a){if(e!==null&&(t.dependencies=e.dependencies),Ea|=t.lanes,(a&t.childLanes)===0)if(e!==null){if(ji(e,t,a,!1),(a&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(o(153));if(t.child!==null){for(e=t.child,a=qn(e,e.pendingProps),t.child=a,a.return=t;e.sibling!==null;)e=e.sibling,a=a.sibling=qn(e,e.pendingProps),a.return=t;a.sibling=null}return t.child}function Bc(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&So(e)))}function Nb(e,t,a){switch(t.tag){case 3:Se(t,t.stateNode.containerInfo),da(t,pt,e.memoizedState.cache),Li();break;case 27:case 5:Xe(t);break;case 4:Se(t,t.stateNode.containerInfo);break;case 10:da(t,t.type,t.memoizedProps.value);break;case 13:var i=t.memoizedState;if(i!==null)return i.dehydrated!==null?(ya(t),t.flags|=128,null):(a&t.child.childLanes)!==0?kp(e,t,a):(ya(t),e=Qn(e,t,a),e!==null?e.sibling:null);ya(t);break;case 19:var s=(e.flags&128)!==0;if(i=(a&t.childLanes)!==0,i||(ji(e,t,a,!1),i=(a&t.childLanes)!==0),s){if(i)return $p(e,t,a);t.flags|=128}if(s=t.memoizedState,s!==null&&(s.rendering=null,s.tail=null,s.lastEffect=null),ie(gt,gt.current),i)break;return null;case 22:case 23:return t.lanes=0,Ap(e,t,a);case 24:da(t,pt,e.memoizedState.cache)}return Qn(e,t,a)}function Np(e,t,a){if(e!==null)if(e.memoizedProps!==t.pendingProps)Ct=!0;else{if(!Bc(e,a)&&(t.flags&128)===0)return Ct=!1,Nb(e,t,a);Ct=(e.flags&131072)!==0}else Ct=!1,De&&(t.flags&1048576)!==0&&fm(t,bo,t.index);switch(t.lanes=0,t.tag){case 16:e:{e=t.pendingProps;var i=t.elementType,s=i._init;if(i=s(i._payload),t.type=i,typeof i=="function")Xu(i)?(e=Ja(i,e),t.tag=1,t=Dp(null,t,i,e,a)):(t.tag=0,t=Dc(null,t,i,e,a));else{if(i!=null){if(s=i.$$typeof,s===B){t.tag=11,t=Tp(null,t,i,e,a);break e}else if(s===V){t.tag=14,t=Mp(null,t,i,e,a);break e}}throw t=G(i)||i,Error(o(306,t,""))}}return t;case 0:return Dc(e,t,t.type,t.pendingProps,a);case 1:return i=t.type,s=Ja(i,t.pendingProps),Dp(e,t,i,s,a);case 3:e:{if(Se(t,t.stateNode.containerInfo),e===null)throw Error(o(387));i=t.pendingProps;var f=t.memoizedState;s=f.element,lc(e,t),Pi(t,i,null,a);var g=t.memoizedState;if(i=g.cache,da(t,pt,i),i!==f.cache&&ec(t,[pt],a,!0),Vi(),i=g.element,f.isDehydrated)if(f={element:i,isDehydrated:!1,cache:g.cache},t.updateQueue.baseState=f,t.memoizedState=f,t.flags&256){t=_p(e,t,i,a);break e}else if(i!==s){s=ln(Error(o(424)),t),Bi(s),t=_p(e,t,i,a);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(et=xn(e.firstChild),Bt=t,De=!0,Za=null,An=!0,a=hp(t,null,i,a),t.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling}else{if(Li(),i===s){t=Qn(e,t,a);break e}At(e,t,i,a)}t=t.child}return t;case 26:return Uo(e,t),e===null?(a=U0(t.type,null,t.pendingProps,null))?t.memoizedState=a:De||(a=t.type,e=t.pendingProps,i=es(ue.current).createElement(a),i[_t]=t,i[Ut]=e,Rt(i,a,e),xt(i),t.stateNode=i):t.memoizedState=U0(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Xe(t),e===null&&De&&(i=t.stateNode=L0(t.type,t.pendingProps,ue.current),Bt=t,An=!0,s=et,Aa(t.type)?(vf=s,et=xn(i.firstChild)):et=s),At(e,t,t.pendingProps.children,a),Uo(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&De&&((s=i=et)&&(i=u2(i,t.type,t.pendingProps,An),i!==null?(t.stateNode=i,Bt=t,et=xn(i.firstChild),An=!1,s=!0):s=!1),s||Ia(t)),Xe(t),s=t.type,f=t.pendingProps,g=e!==null?e.memoizedProps:null,i=f.children,mf(s,f)?i=null:g!==null&&mf(s,g)&&(t.flags|=32),t.memoizedState!==null&&(s=dc(e,t,Ab,null,null,a),hl._currentValue=s),Uo(e,t),At(e,t,i,a),t.child;case 6:return e===null&&De&&((e=a=et)&&(a=c2(a,t.pendingProps,An),a!==null?(t.stateNode=a,Bt=t,et=null,e=!0):e=!1),e||Ia(t)),null;case 13:return kp(e,t,a);case 4:return Se(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=qr(t,null,i,a):At(e,t,i,a),t.child;case 11:return Tp(e,t,t.type,t.pendingProps,a);case 7:return At(e,t,t.pendingProps,a),t.child;case 8:return At(e,t,t.pendingProps.children,a),t.child;case 12:return At(e,t,t.pendingProps.children,a),t.child;case 10:return i=t.pendingProps,da(t,t.type,i.value),At(e,t,i.children,a),t.child;case 9:return s=t.type._context,i=t.pendingProps.children,Ka(t),s=kt(s),i=i(s),t.flags|=1,At(e,t,i,a),t.child;case 14:return Mp(e,t,t.type,t.pendingProps,a);case 15:return wp(e,t,t.type,t.pendingProps,a);case 19:return $p(e,t,a);case 31:return i=t.pendingProps,a=t.mode,i={mode:i.mode,children:i.children},e===null?(a=Ho(i,a),a.ref=t.ref,t.child=a,a.return=t,t=a):(a=qn(e.child,i),a.ref=t.ref,t.child=a,a.return=t,t=a),t;case 22:return Ap(e,t,a);case 24:return Ka(t),i=kt(pt),e===null?(s=ac(),s===null&&(s=Pe,f=tc(),s.pooledCache=f,f.refCount++,f!==null&&(s.pooledCacheLanes|=a),s=f),t.memoizedState={parent:i,cache:s},ic(t),da(t,pt,s)):((e.lanes&a)!==0&&(lc(e,t),Pi(t,null,null,a),Vi()),s=e.memoizedState,f=t.memoizedState,s.parent!==i?(s={parent:i,cache:i},t.memoizedState=s,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=s),da(t,pt,i)):(i=f.cache,da(t,pt,i),i!==s.cache&&ec(t,[pt],a,!0))),At(e,t,t.pendingProps.children,a),t.child;case 29:throw t.pendingProps}throw Error(o(156,t.tag))}function Kn(e){e.flags|=4}function Lp(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!V0(t)){if(t=cn.current,t!==null&&((Te&4194048)===Te?On!==null:(Te&62914560)!==Te&&(Te&536870912)===0||t!==On))throw qi=rc,bm;e.flags|=8192}}function Yo(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?mh():536870912,e.lanes|=t,Xr|=t)}function Fi(e,t){if(!De)switch(e.tailMode){case"hidden":t=e.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var i=null;a!==null;)a.alternate!==null&&(i=a),a=a.sibling;i===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:i.sibling=null}}function Fe(e){var t=e.alternate!==null&&e.alternate.child===e.child,a=0,i=0;if(t)for(var s=e.child;s!==null;)a|=s.lanes|s.childLanes,i|=s.subtreeFlags&65011712,i|=s.flags&65011712,s.return=e,s=s.sibling;else for(s=e.child;s!==null;)a|=s.lanes|s.childLanes,i|=s.subtreeFlags,i|=s.flags,s.return=e,s=s.sibling;return e.subtreeFlags|=i,e.childLanes=a,t}function Lb(e,t,a){var i=t.pendingProps;switch(Ku(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Fe(t),null;case 1:return Fe(t),null;case 3:return a=t.stateNode,i=null,e!==null&&(i=e.memoizedState.cache),t.memoizedState.cache!==i&&(t.flags|=2048),Xn(pt),Ie(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(e===null||e.child===null)&&(Ni(t)?Kn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,mm())),Fe(t),null;case 26:return a=t.memoizedState,e===null?(Kn(t),a!==null?(Fe(t),Lp(t,a)):(Fe(t),t.flags&=-16777217)):a?a!==e.memoizedState?(Kn(t),Fe(t),Lp(t,a)):(Fe(t),t.flags&=-16777217):(e.memoizedProps!==i&&Kn(t),Fe(t),t.flags&=-16777217),null;case 27:lt(t),a=ue.current;var s=t.type;if(e!==null&&t.stateNode!=null)e.memoizedProps!==i&&Kn(t);else{if(!i){if(t.stateNode===null)throw Error(o(166));return Fe(t),null}e=oe.current,Ni(t)?dm(t):(e=L0(s,i,a),t.stateNode=e,Kn(t))}return Fe(t),null;case 5:if(lt(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==i&&Kn(t);else{if(!i){if(t.stateNode===null)throw Error(o(166));return Fe(t),null}if(e=oe.current,Ni(t))dm(t);else{switch(s=es(ue.current),e){case 1:e=s.createElementNS("http://www.w3.org/2000/svg",a);break;case 2:e=s.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;default:switch(a){case"svg":e=s.createElementNS("http://www.w3.org/2000/svg",a);break;case"math":e=s.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;case"script":e=s.createElement("div"),e.innerHTML=" - + + diff --git a/src/frontend/dist/index.html b/src/frontend/dist/index.html index 81b6366..373a56c 100644 --- a/src/frontend/dist/index.html +++ b/src/frontend/dist/index.html @@ -5,8 +5,8 @@ Parallax by Gradient - - + + diff --git a/src/frontend/src/components/common/drawer-layout.tsx b/src/frontend/src/components/common/drawer-layout.tsx index 6222df6..94395eb 100644 --- a/src/frontend/src/components/common/drawer-layout.tsx +++ b/src/frontend/src/components/common/drawer-layout.tsx @@ -89,8 +89,8 @@ export const DrawerLayout: FC = ({ children }) => { const [ { - modelName, - clusterInfo: { status: clusterStatus }, + modelInfo, + clusterInfo: { status: clusterStatus, needMoreNodes }, }, ] = useCluster(); @@ -144,6 +144,28 @@ export const DrawerLayout: FC = ({ children }) => { } }, [clusterStatus, openRebalancing]); + const [dialogNeedMoreNodes, { open: openDialogNeedMoreNodes }] = useAlertDialog({ + color: 'primary', + title: '', + content: ( + <> + + Your selected model requires more nodes. + {(!!modelInfo + && modelInfo.vram > 0 + && `To host this model, we suggest you to have a total VRAM size of ${modelInfo.vram} GB.`) + || ''} + + + ), + confirmLabel: 'Finish', + }); + useEffect(() => { + if (needMoreNodes) { + openDialogNeedMoreNodes(); + } + }, [needMoreNodes, openDialogNeedMoreNodes]); + const [dialogFailed, { open: openFailed }] = useAlertDialog({ color: 'primary', title: '', @@ -334,6 +356,7 @@ export const DrawerLayout: FC = ({ children }) => { {dialogWaiting} {dialogRebalancing} {dialogFailed} + {dialogNeedMoreNodes} ); }; diff --git a/src/frontend/src/pages/join.tsx b/src/frontend/src/pages/join.tsx index 99554e5..4f27a16 100644 --- a/src/frontend/src/pages/join.tsx +++ b/src/frontend/src/pages/join.tsx @@ -31,10 +31,10 @@ const Stack = styled(MuiStack)(({ theme }) => { export default function PageJoin() { const [ { - clusterInfo: { status: clusterStatus, initNodesNumber }, + modelInfo, + clusterInfo: { status: clusterStatus, initNodesNumber, needMoreNodes }, nodeInfoList, }, - { setNetworkType, setInitNodesNumber, setModelName }, ] = useCluster(); const isError = useMemo(() => { @@ -95,6 +95,13 @@ export default function PageJoin() { )} + {!!modelInfo && modelInfo.vram > 0 && needMoreNodes && ( + + Your selected model requires more nodes. To host this model, we suggest you to have a + total VRAM size of {modelInfo.vram} GB. + + )} + diff --git a/src/frontend/src/pages/setup.tsx b/src/frontend/src/pages/setup.tsx index cfd0a81..0a3efe9 100644 --- a/src/frontend/src/pages/setup.tsx +++ b/src/frontend/src/pages/setup.tsx @@ -1,6 +1,7 @@ import { useState } from 'react'; import { Link as RouterLink, useNavigate } from 'react-router-dom'; import { + Alert, Button, ButtonGroup, FormControl, @@ -22,8 +23,8 @@ import { useRefCallback } from '../hooks'; export default function PageSetup() { const [ - { networkType, initNodesNumber, modelName, modelInfoList }, - { setNetworkType, setInitNodesNumber, setModelName, init }, + { networkType, initNodesNumber, modelInfo }, + { setNetworkType, setInitNodesNumber, init }, ] = useCluster(); const navigate = useNavigate(); @@ -107,6 +108,12 @@ export default function PageSetup() { + + {!!modelInfo && modelInfo.vram > 0 && ( + + To host this model, we suggest you to have a total VRAM size of {modelInfo.vram} GB. + + )} diff --git a/src/frontend/src/services/api.ts b/src/frontend/src/services/api.ts index c215739..f266f8e 100644 --- a/src/frontend/src/services/api.ts +++ b/src/frontend/src/services/api.ts @@ -2,7 +2,7 @@ import { createHttpStreamFactory } from './http-stream'; export const API_BASE_URL = import.meta.env.DEV ? '/proxy-api' : ''; -export const getModelList = async (): Promise => { +export const getModelList = async (): Promise => { const response = await fetch(`${API_BASE_URL}/model/list`, { method: 'GET' }); const message = await response.json(); if (message.type !== 'model_list') { diff --git a/src/frontend/src/services/cluster.tsx b/src/frontend/src/services/cluster.tsx index 2d9ec00..eedffec 100644 --- a/src/frontend/src/services/cluster.tsx +++ b/src/frontend/src/services/cluster.tsx @@ -37,6 +37,11 @@ export interface ModelInfo { readonly name: string; readonly displayName: string; readonly logoUrl: string; + + /** + * The VRAM required for the model in GB. + */ + readonly vram: number; } export type ClusterStatus = 'idle' | 'waiting' | 'available' | 'rebalancing' | 'failed'; @@ -47,6 +52,7 @@ export interface ClusterInfo { readonly modelName: string; readonly nodeJoinCommand: Readonly>; readonly initNodesNumber: number; + readonly needMoreNodes: boolean; } const INITIAL_CLUSTER_INFO: ClusterInfo = { @@ -55,6 +61,7 @@ const INITIAL_CLUSTER_INFO: ClusterInfo = { modelName: '', nodeJoinCommand: {}, initNodesNumber: 4, + needMoreNodes: false, }; export type NodeStatus = 'waiting' | 'available' | 'failed'; @@ -74,6 +81,7 @@ export interface ClusterStates { readonly networkType: NetworkType; readonly initNodesNumber: number; readonly modelName: string; + readonly modelInfo: ModelInfo | undefined; readonly modelInfoList: readonly ModelInfo[]; readonly clusterInfo: ClusterInfo; @@ -114,11 +122,16 @@ export const ClusterProvider: FC = ({ children }) => { try { const rawList = await getModelList(); setModelInfoList((prev) => { - const next = rawList.map((name) => ({ - name, - displayName: name, - logoUrl: getLogoUrl(name), - })); + const next = rawList.map(({ name, vram_gb }) => { + name = name || ''; + vram_gb = vram_gb || 0; + return { + name, + displayName: name, + logoUrl: getLogoUrl(name), + vram: vram_gb, + }; + }); if (JSON.stringify(next) !== JSON.stringify(prev)) { debugLog('setModelInfoList', next); return next; @@ -157,7 +170,14 @@ export const ClusterProvider: FC = ({ children }) => { const onMessage = (message: any) => { if (message.type === 'cluster_status') { const { - data: { status, init_nodes_num, model_name, node_join_command, node_list }, + data: { + status, + init_nodes_num, + model_name, + node_join_command, + node_list, + need_more_nodes, + }, } = message; setModelName((prev) => model_name || prev); setClusterInfo((prev) => { @@ -167,6 +187,7 @@ export const ClusterProvider: FC = ({ children }) => { initNodesNumber: init_nodes_num || 0, modelName: model_name || '', nodeJoinCommand: node_join_command || {}, + needMoreNodes: need_more_nodes || false, }; if (JSON.stringify(next) !== JSON.stringify(prev)) { debugLog('setClusterInfo', next); @@ -255,6 +276,7 @@ export const ClusterProvider: FC = ({ children }) => { networkType, initNodesNumber, modelName, + modelInfo: modelInfoList.find((model) => model.name === modelName), modelInfoList, clusterInfo, nodeInfoList, From 26747ab0ebafe6075b4f997989c13f3094ce6918 Mon Sep 17 00:00:00 2001 From: sibianl Date: Mon, 10 Nov 2025 20:45:47 +0800 Subject: [PATCH 3/7] fix --- src/backend/server/static_config.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/backend/server/static_config.py b/src/backend/server/static_config.py index 9b5ec7d..fad7f43 100644 --- a/src/backend/server/static_config.py +++ b/src/backend/server/static_config.py @@ -83,9 +83,6 @@ def _load_config_only(name: str) -> dict: config = _load_config_only(model_name) - # get quant method - # logger.info(f"Loading model config from {model_name}") - quant_method = config.get("quant_method", None) quantization_config = config.get("quantization_config", None) if quant_method is None and quantization_config is not None: @@ -95,11 +92,13 @@ def _load_config_only(name: str) -> dict: param_bytes_per_element = 2 elif quant_method == "fp8": param_bytes_per_element = 1 - elif quant_method in ("mxfp4", "int4", "awq", "gptq"): + elif quant_method in ("mxfp4", "int4", "awq", "gptq", "compressed-tensors"): param_bytes_per_element = 0.5 else: param_bytes_per_element = 1 - logger.warning(f"model_name:{model_name} quant_method {quant_method} not supported") + logger.warning( + f"model_name:{model_name} quant_method {quant_method} not supported in get_model_info method" + ) mlx_param_bytes_per_element = param_bytes_per_element mlx_model_name = MODELS.get(model_name, model_name) @@ -165,6 +164,8 @@ def build_single_model(model_info): def estimate_vram_gb_required(model_info): + if model_info is None: + return 0 return ( ( model_info.embedding_io_bytes From b2dc89c514e904d9cb93cbf862203a82d7b10239 Mon Sep 17 00:00:00 2001 From: Xiaodong Date: Tue, 11 Nov 2025 11:33:16 +0800 Subject: [PATCH 4/7] feat(frontend): update text of need more nodes alert --- .../dist/assets/{App-CwQoKbS_.js => App-DvpWdRS1.js} | 4 ++-- src/frontend/dist/assets/chat-DLri3GLO.js | 1 + src/frontend/dist/assets/chat-DbYkLAHJ.js | 1 - .../dist/assets/{chat-Dbb5eyZ9.js => chat-ejIJrEMQ.js} | 2 +- src/frontend/dist/assets/join-TpGKfeh0.js | 6 ++++++ src/frontend/dist/assets/join-gimeSV7I.js | 6 ------ src/frontend/dist/assets/main-CkRtaR8-.js | 1 + src/frontend/dist/assets/main-DVorMRWs.js | 1 - .../{main-layout-n9ngsR-Z.js => main-layout-Daq7w871.js} | 4 ++-- .../dist/assets/{setup-BNnF1V7C.js => setup-DyxBAkwn.js} | 4 ++-- src/frontend/dist/chat.html | 4 ++-- src/frontend/dist/index.html | 4 ++-- src/frontend/src/components/common/drawer-layout.tsx | 7 +++++-- src/frontend/src/pages/join.tsx | 8 ++++++-- src/frontend/src/pages/setup.tsx | 6 +++++- 15 files changed, 35 insertions(+), 24 deletions(-) rename src/frontend/dist/assets/{App-CwQoKbS_.js => App-DvpWdRS1.js} (99%) create mode 100644 src/frontend/dist/assets/chat-DLri3GLO.js delete mode 100644 src/frontend/dist/assets/chat-DbYkLAHJ.js rename src/frontend/dist/assets/{chat-Dbb5eyZ9.js => chat-ejIJrEMQ.js} (99%) create mode 100644 src/frontend/dist/assets/join-TpGKfeh0.js delete mode 100644 src/frontend/dist/assets/join-gimeSV7I.js create mode 100644 src/frontend/dist/assets/main-CkRtaR8-.js delete mode 100644 src/frontend/dist/assets/main-DVorMRWs.js rename src/frontend/dist/assets/{main-layout-n9ngsR-Z.js => main-layout-Daq7w871.js} (99%) rename src/frontend/dist/assets/{setup-BNnF1V7C.js => setup-DyxBAkwn.js} (91%) diff --git a/src/frontend/dist/assets/App-CwQoKbS_.js b/src/frontend/dist/assets/App-DvpWdRS1.js similarity index 99% rename from src/frontend/dist/assets/App-CwQoKbS_.js rename to src/frontend/dist/assets/App-DvpWdRS1.js index e6add20..d881add 100644 --- a/src/frontend/dist/assets/App-CwQoKbS_.js +++ b/src/frontend/dist/assets/App-DvpWdRS1.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-BNnF1V7C.js","assets/main-layout-n9ngsR-Z.js","assets/main-layout-DVneG3Rq.css","assets/join-gimeSV7I.js","assets/chat-Dbb5eyZ9.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-DyxBAkwn.js","assets/main-layout-Daq7w871.js","assets/main-layout-DVneG3Rq.css","assets/join-TpGKfeh0.js","assets/chat-ejIJrEMQ.js"])))=>i.map(i=>d[i]); function N2(n,r){for(var l=0;lo[u]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))o(u);new MutationObserver(u=>{for(const c of u)if(c.type==="childList")for(const d of c.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&o(d)}).observe(document,{childList:!0,subtree:!0});function l(u){const c={};return u.integrity&&(c.integrity=u.integrity),u.referrerPolicy&&(c.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?c.credentials="include":u.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function o(u){if(u.ep)return;u.ep=!0;const c=l(u);fetch(u.href,c)}})();function Ba(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Of={exports:{}},vl={};/** * @license React * react-jsx-runtime.production.js @@ -317,4 +317,4 @@ export default theme;`}function Qg(n){return typeof n=="number"?`${(n*100).toFix `);H=V.pop()||"",V.forEach(le=>{try{const w=u(JSON.parse(le));M(w)}catch(w){C("Parse Message Error",w)}})}}).catch(async ee=>{Q&&(clearTimeout(Q),Q=void 0),await D(),C("fetch error",ee),T("error"),y?.(ee)}).finally(async()=>{Q&&(clearTimeout(Q),Q=void 0),await D(),E=void 0})};return Object.freeze({send:$,abort:()=>{try{E?.abort(),E=void 0}catch(N){C("abort error",N)}A?.cancel(),A=void 0,T("disconnected")}})},mu="",Aw=async()=>{const r=await(await fetch(`${mu}/model/list`,{method:"GET"})).json();if(r.type!=="model_list")throw new Error(`Invalid message type: ${r.type}.`);return r.data},Ow=async n=>{const l=await(await fetch(`${mu}/scheduler/init`,{method:"POST",body:JSON.stringify(n)})).json();if(l.type!=="scheduler_init")throw new Error(`Invalid message type: ${l.type}.`);return l.data},Rw=ww({url:`${mu}/cluster/status`,method:"GET"}),Dd=n=>{const r=x.useRef(void 0);return r.current||(r.current={value:typeof n=="function"?n():n}),r.current.value},Dw=n=>{const r=x.useRef(void 0);return r.current||(r.current={callback:n}),r.current.callback},fr=n=>{const r=x.useRef(void 0);return r.current=n,Dw(((...o)=>r.current?.(...o)))},g1=x.createContext(void 0),{Provider:_w}=g1,kw=({children:n,type:r})=>{const l=Dd(()=>({})),o=x.useMemo(()=>[{type:r},l],[r,l]);return F.jsx(_w,{value:o,children:n})},zw=()=>{const n=x.useContext(g1);if(!n)throw new Error("useHost must be used within a HostProvider");return n},$w="data:image/svg+xml,%3csvg%20width='721'%20height='721'%20viewBox='0%200%20721%20721'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_1637_2934)'%3e%3cg%20clip-path='url(%23clip1_1637_2934)'%3e%3cpath%20d='M304.246%20294.611V249.028C304.246%20245.189%20305.687%20242.309%20309.044%20240.392L400.692%20187.612C413.167%20180.415%20428.042%20177.058%20443.394%20177.058C500.971%20177.058%20537.44%20221.682%20537.44%20269.182C537.44%20272.54%20537.44%20276.379%20536.959%20280.218L441.954%20224.558C436.197%20221.201%20430.437%20221.201%20424.68%20224.558L304.246%20294.611ZM518.245%20472.145V363.224C518.245%20356.505%20515.364%20351.707%20509.608%20348.349L389.174%20278.296L428.519%20255.743C431.877%20253.826%20434.757%20253.826%20438.115%20255.743L529.762%20308.523C556.154%20323.879%20573.905%20356.505%20573.905%20388.171C573.905%20424.636%20552.315%20458.225%20518.245%20472.141V472.145ZM275.937%20376.182L236.592%20353.152C233.235%20351.235%20231.794%20348.354%20231.794%20344.515V238.956C231.794%20187.617%20271.139%20148.749%20324.4%20148.749C344.555%20148.749%20363.264%20155.468%20379.102%20167.463L284.578%20222.164C278.822%20225.521%20275.942%20230.319%20275.942%20237.039V376.186L275.937%20376.182ZM360.626%20425.122L304.246%20393.455V326.283L360.626%20294.616L417.002%20326.283V393.455L360.626%20425.122ZM396.852%20570.989C376.698%20570.989%20357.989%20564.27%20342.151%20552.276L436.674%20497.574C442.431%20494.217%20445.311%20489.419%20445.311%20482.699V343.552L485.138%20366.582C488.495%20368.499%20489.936%20371.379%20489.936%20375.219V480.778C489.936%20532.117%20450.109%20570.985%20396.852%20570.985V570.989ZM283.134%20463.99L191.486%20411.211C165.094%20395.854%20147.343%20363.229%20147.343%20331.562C147.343%20294.616%20169.415%20261.509%20203.48%20247.593V356.991C203.48%20363.71%20206.361%20368.508%20212.117%20371.866L332.074%20441.437L292.729%20463.99C289.372%20465.907%20286.491%20465.907%20283.134%20463.99ZM277.859%20542.68C223.639%20542.68%20183.813%20501.895%20183.813%20451.514C183.813%20447.675%20184.294%20443.836%20184.771%20439.997L279.295%20494.698C285.051%20498.056%20290.812%20498.056%20296.568%20494.698L417.002%20425.127V470.71C417.002%20474.549%20415.562%20477.429%20412.204%20479.346L320.557%20532.126C308.081%20539.323%20293.206%20542.68%20277.854%20542.68H277.859ZM396.852%20599.776C454.911%20599.776%20503.37%20558.513%20514.41%20503.812C568.149%20489.896%20602.696%20439.515%20602.696%20388.176C602.696%20354.587%20588.303%20321.962%20562.392%20298.45C564.791%20288.373%20566.231%20278.296%20566.231%20268.224C566.231%20199.611%20510.571%20148.267%20446.274%20148.267C433.322%20148.267%20420.846%20150.184%20408.37%20154.505C386.775%20133.392%20357.026%20119.958%20324.4%20119.958C266.342%20119.958%20217.883%20161.22%20206.843%20215.921C153.104%20229.837%20118.557%20280.218%20118.557%20331.557C118.557%20365.146%20132.95%20397.771%20158.861%20421.283C156.462%20431.36%20155.022%20441.437%20155.022%20451.51C155.022%20520.123%20210.682%20571.466%20274.978%20571.466C287.931%20571.466%20300.407%20569.549%20312.883%20565.228C334.473%20586.341%20364.222%20599.776%20396.852%20599.776Z'%20fill='black'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_1637_2934'%3e%3crect%20width='720'%20height='720'%20fill='white'%20transform='translate(0.606934%200.0999756)'/%3e%3c/clipPath%3e%3cclipPath%20id='clip1_1637_2934'%3e%3crect%20width='484.139'%20height='479.818'%20fill='white'%20transform='translate(118.557%20119.958)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",Nw="/assets/Qwen3-CHUafU1E.png",Lw="/assets/NVIDIA-DleEbUC3.png",Bw="/assets/MoonshotAI-C_u2alMD.png",jw="/assets/DeepSeek-C1XK8X_U.png",Uw="/assets/Zai-C5JP-emT.png",Hw="/assets/MiniMax-sqkAGh7b.png",Yw={openai:$w,qwen:Nw,nvidia:Lw,moonshotai:Bw,deepseek:jw,zai:Uw,minimaxai:Hw},qw=n=>{n=n.toLowerCase();const r=n.split(/[-/]/);return Yw[r[0]]||""},Ts=(...n)=>{console.log("%c cluster.tsx ","color: white; background: darkcyan;",...n)},By={id:"",status:"idle",modelName:"",nodeJoinCommand:{},initNodesNumber:4,needMoreNodes:!1},y1=x.createContext(void 0),{Provider:Gw}=y1,Vw=({children:n})=>{const[{type:r}]=zw(),[l,o]=x.useState("local"),[u,c]=x.useState(1),[d,h]=x.useState(""),[p,m]=x.useState([]),y=fr(async()=>{if(r==="node")return;let B=!1;for(;!B;)try{const _=await Aw();m(N=>{const P=_.map(({name:W,vram_gb:I})=>(W=W||"",I=I||0,{name:W,displayName:W,logoUrl:qw(W),vram:I}));return JSON.stringify(P)!==JSON.stringify(N)?(Ts("setModelInfoList",P),P):N}),B=!0}catch(_){console.error("getModelList error",_),await new Promise(N=>setTimeout(N,2e3))}});x.useEffect(()=>{y()},[]),x.useEffect(()=>{p.length&&h(p[0].name)},[p]);const[b,E]=x.useState(By),[A,C]=x.useState([]),T=fr(()=>{Ts("reset"),E(By),C([])}),M=x.useMemo(()=>Rw({debugName:"ClusterStatus",autoReconnect:!0,onMessage:N=>{if(N.type==="cluster_status"){const{data:{status:P,init_nodes_num:W,model_name:I,node_join_command:Q,node_list:K,need_more_nodes:S}}=N;h(ee=>I||ee),E(ee=>{const H={...ee,status:I&&P||"idle",initNodesNumber:W||0,modelName:I||"",nodeJoinCommand:Q||{},needMoreNodes:S||!1};return JSON.stringify(H)!==JSON.stringify(ee)?(Ts("setClusterInfo",H),H):ee}),C(ee=>{let H=K.map(({node_id:U,status:V,gpu_name:le,gpu_memory:w})=>({id:U,status:V,gpuName:le,gpuMemory:w}));const Z=ee.filter(U=>H.some(V=>V.id===U.id)),O=ee.filter(U=>!H.some(V=>V.id===U.id)).map(U=>({...U,status:"failed"}));return JSON.stringify(H)===JSON.stringify(Z)&&(H=[...H,...O]),JSON.stringify(H)!==JSON.stringify(ee)?(Ts("setNodeInfoList",H),H):ee})}},onError:T}),[]);x.useEffect(()=>{M.send()},[]);const D=fr(async()=>{if(u<1)throw new Error("initNodesNumber must be greater than 0");if(!d)throw new Error("modelName is required");await Ow({model_name:d,init_nodes_num:u,is_local_network:l==="local"})}),k=x.useMemo(()=>({setNetworkType:o,setInitNodesNumber:c,setModelName:h,init:D}),[]),$=x.useMemo(()=>[{networkType:l,initNodesNumber:u,modelName:d,modelInfo:p.find(B=>B.name===d),modelInfoList:p,clusterInfo:b,nodeInfoList:A},k],[l,u,d,p,b,A,k]);return F.jsx(Gw,{value:$,children:n})},v1=()=>{const n=x.useContext(y1);if(!n)throw new Error("useCluster must be used within a ClusterProvider");return n};function Pw(n){n=n.trim();const r={analysis:"",final:""},l=/<\|channel\|>([^<]+)<\|message\|>(.*?)(<\|end\|>|$)/gs;let o;for(;(o=l.exec(n))!==null;)r[o[1]]=o[2]?.trim()||"";return r}const Ms="",jy="";function Xw(n){n=n.trim();const r={think:"",content:""};for(;n.includes(Ms);){const l=n.indexOf(Ms),o=n.indexOf(jy),u=n.substring(l+Ms.length,o>l?o:n.length);n=n.replace(Ms+u+(o>l?jy:""),""),r.think+=` `+u}return r.think=r.think.trim(),r.content=n.trim(),r}const yt=async(...n)=>{},Zw=({children:n})=>{const[{clusterInfo:{status:r,modelName:l}}]=v1(),[o,u]=x.useState(""),[c,d]=x.useState("closed"),h=fr(M=>{d(D=>{const k=typeof M=="function"?M(D):M;return k!==D&&yt("setStatus","status",k),k})}),[p,m]=x.useState([]),y=Dd(()=>Iw({onOpen:()=>{yt("SSE OPEN"),h("opened")},onClose:()=>{yt("SSE CLOSE"),m(M=>{const D=M[M.length-1],{id:k,raw:$,thinking:B,content:_}=D;return yt("GENERATING DONE","lastMessage:",D),yt("GENERATING DONE","id:",k),yt("GENERATING DONE","raw:",$),yt("GENERATING DONE","thinking:",B),yt("GENERATING DONE","content:",_),[...M.slice(0,-1),{...D,status:"done"}]}),h("closed")},onError:M=>{yt("SSE ERROR",M),m(D=>{const k=D[D.length-1],{id:$,raw:B,thinking:_,content:N}=k;return yt("GENERATING ERROR","lastMessage:",k),yt("GENERATING ERROR","id:",$),yt("GENERATING ERROR","raw:",B),yt("GENERATING ERROR","thinking:",_),yt("GENERATING ERROR","content:",N),[...D.slice(0,-1),{...k,status:"done"}]}),yt("SSE ERROR",M),h("error")},onMessage:M=>{const{data:{id:D,object:k,model:$,created:B,choices:_,usage:N}}=M;k==="chat.completion.chunk"&&_?.length>0&&(_[0].delta.content&&h("generating"),m(P=>{let W=P;if(_.forEach(({delta:{role:I,content:Q}={}})=>{if(typeof Q!="string"||!Q)return;I=I||"assistant";let K=W[W.length-1];if(K&&K.role===I){const S=K.raw+Q;K={...K,raw:S,content:S},W=[...W.slice(0,-1),K]}else K={id:D,role:I,status:"thinking",raw:Q,content:Q,createdAt:B},W=[...W,K]}),W!==P&&typeof $=="string"){let I=W[W.length-1],Q="",K="";const S=$.toLowerCase();S.includes("gpt-oss")?{analysis:Q,final:K}=Pw(I.raw||""):S.includes("qwen")?{think:Q,content:K}=Xw(I.raw||""):K=I.raw||"",I={...I,status:K&&"generating"||"thinking",thinking:Q,content:K},W=[...W.slice(0,-1),I]}return W}))}})),b=fr(M=>{if(r!=="available"||c==="opened"||c==="generating"||!l)return;let D=p;if(M){const k=p.findIndex(B=>B.id===M.id),$=p[k];if(!$)return;D=D.slice(0,k+($.role==="user"?1:0)),yt("generate","regenerate",D)}else{const k=o.trim();if(!k)return;u("");const $=performance.now();D=[...D,{id:$.toString(),role:"user",status:"done",content:k,createdAt:$}],yt("generate","new",D)}m(D),y.connect(l,D.map(({id:k,role:$,content:B})=>({id:k,role:$,content:B})))}),E=fr(()=>{yt("stop","status",c),!(c==="closed"||c==="error")&&y.disconnect()}),A=fr(()=>{yt("clear","status",c),E(),!(c==="opened"||c==="generating")&&m([])}),C=Dd({setInput:u,generate:b,stop:E,clear:A}),T=x.useMemo(()=>[{input:o,status:c,messages:p},C],[o,c,p,C]);return F.jsx(b1.Provider,{value:T,children:n})},b1=x.createContext(void 0),vA=()=>{const n=x.useContext(b1);if(!n)throw new Error("useChat must be used within a ChatProvider");return n},Iw=n=>{const{onOpen:r,onClose:l,onError:o,onMessage:u}=n,c=new TextDecoder;let d,h;return{connect:(y,b)=>{h=new AbortController;const E=`${mu}/v1/chat/completions`;r?.(),fetch(E,{method:"POST",body:JSON.stringify({stream:!0,model:y,messages:b,max_tokens:2048,sampling_params:{top_k:3}}),signal:h.signal}).then(async A=>{const C=A.status,T=A.headers.get("Content-Type");if(C!==200){o?.(new Error(`[SSE] Failed to connect: ${C}`));return}if(!T?.includes("text/event-stream")){o?.(new Error(`[SSE] Invalid content type: ${T}`));return}if(d=A.body?.getReader(),!d){o?.(new Error("[SSE] Failed to get reader"));return}let M="";const D=k=>{const $={event:"message",data:void 0};k.forEach(B=>{const _=B.indexOf(":");if(_<=0)return;const N=B.slice(0,_).trim(),P=B.slice(_+1).trim();if(!P.startsWith(":")){switch(N){case"event":$.event=P;break;case"id":$.id=P;break;case"data":try{const W=JSON.parse(P),I=Q=>{Q&&(Array.isArray(Q)?Q.forEach((K,S)=>{K===null?Q[S]=void 0:I(K)}):typeof Q=="object"&&Object.keys(Q).forEach(K=>{Q[K]===null?delete Q[K]:I(Q[K])}))};I(W),$.data=W}catch{$.data=P}break}$.data!==void 0&&u?.($)}})};for(;;){const{done:k,value:$}=await d.read();if(k){l?.();return}const B=c.decode($);M+=B;const _=M.split(` -`);M=_.pop()||"",D(_)}}).catch(A=>{if(A instanceof Error&&A.name==="AbortError"){l?.();return}o?.(A)})},disconnect:()=>{d?.cancel(),d=void 0,h?.abort("stop"),h=void 0,l?.()}}},td="/setup",Qw="/join",ws="/chat",Kw=x.lazy(()=>hu(()=>import("./setup-BNnF1V7C.js"),__vite__mapDeps([0,1,2]))),Ww=x.lazy(()=>hu(()=>import("./join-gimeSV7I.js"),__vite__mapDeps([3,1,2]))),Fw=x.lazy(()=>hu(()=>import("./chat-Dbb5eyZ9.js"),__vite__mapDeps([4,1,2]))),Uy=(...n)=>{console.log("%c router.tsx ","color: white; background: purple;",...n)},Jw=()=>{const n=zd(),{pathname:r}=ua(),[{clusterInfo:{status:l}}]=v1();return x.useEffect(()=>{const u=c=>{const d=setTimeout(()=>{Uy("navigate to",c),n(c)},300);return()=>clearTimeout(d)};if(r==="/"||(Uy("pathname",r,"cluster status",l),l==="idle"&&r.startsWith(ws)))return u(td);if(l==="available"&&!r.startsWith(ws))return u(ws)},[n,r,l]),Ky([{path:td,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Kw,{})})},{path:Qw,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Ww,{})})},{path:ws,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Fw,{})})},{path:"*",element:F.jsx("div",{children:"404 - Page Not Found"})}])},nd="/chat",eA=x.lazy(()=>hu(()=>import("./chat-Dbb5eyZ9.js"),__vite__mapDeps([4,1,2]))),tA=(...n)=>{console.log("%c router.tsx ","color: white; background: purple;",...n)},nA=()=>{const n=zd(),{pathname:r}=ua();return x.useEffect(()=>{const o=u=>{const c=setTimeout(()=>{tA("navigate to",u),n(u)},300);return()=>clearTimeout(c)};if(!r.startsWith(nd))return o(nd)},[n,r]),Ky([{path:nd,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(eA,{})})},{path:"*",element:F.jsx("div",{children:"404 - Page Not Found"})}])},aA=Me("div")(({theme:n})=>{const{palette:r,typography:l}=n;return{...l.body2,color:r.text.primary,backgroundColor:r.background.default,width:"100%",height:"100%",display:"flex",flexFlow:"column nowrap",justifyContent:"center",alignItems:"center"}}),S1=({children:n,hostProps:r})=>F.jsx(x.StrictMode,{children:F.jsx(ex,{children:F.jsxs(Ew,{children:[F.jsx(S3,{}),F.jsx(aA,{children:F.jsx(kw,{...r,children:F.jsx(Vw,{children:F.jsx(Zw,{children:n})})})})]})})}),bA=()=>F.jsx(S1,{hostProps:{type:"cluster"},children:F.jsx(Jw,{})}),SA=()=>F.jsx(S1,{hostProps:{type:"node"},children:F.jsx(nA,{})});export{hr as $,ay as A,Wv as B,SA as C,pr as D,Qd as E,wv as F,Iv as G,Ae as H,Jv as I,Wg as J,cT as K,av as L,bA as M,dT as N,uT as O,Kd as P,iv as Q,iA as R,$3 as S,n3 as T,zE as U,zs as V,Zv as W,sT as X,oA as Y,l3 as Z,Q5 as _,rt as a,Xl as a0,j5 as a1,dE as a2,En as a3,ah as a4,fT as a5,Kv as a6,uA as a7,x3 as a8,cA as a9,fA as aa,jt as ab,rT as ac,dA as ad,lA as ae,z3 as af,Cd as ag,sA as ah,rr as ai,U5 as aj,Si as ak,ja as al,lh as am,ey as an,hA as ao,N3 as ap,mA as aq,sy as ar,yA as as,gA as at,j4 as au,vy as av,H4 as aw,q4 as ax,zw as ay,Ba as az,Ze as b,rA as c,ge as d,gn as e,Bl as f,it as g,pA as h,tn as i,F as j,Zl as k,pd as l,Pt as m,fr as n,v1 as o,zd as p,p3 as q,x as r,Me as s,L3 as t,nn as u,Xv as v,Jd as w,oi as x,vA as y,uC as z}; +`);M=_.pop()||"",D(_)}}).catch(A=>{if(A instanceof Error&&A.name==="AbortError"){l?.();return}o?.(A)})},disconnect:()=>{d?.cancel(),d=void 0,h?.abort("stop"),h=void 0,l?.()}}},td="/setup",Qw="/join",ws="/chat",Kw=x.lazy(()=>hu(()=>import("./setup-DyxBAkwn.js"),__vite__mapDeps([0,1,2]))),Ww=x.lazy(()=>hu(()=>import("./join-TpGKfeh0.js"),__vite__mapDeps([3,1,2]))),Fw=x.lazy(()=>hu(()=>import("./chat-ejIJrEMQ.js"),__vite__mapDeps([4,1,2]))),Uy=(...n)=>{console.log("%c router.tsx ","color: white; background: purple;",...n)},Jw=()=>{const n=zd(),{pathname:r}=ua(),[{clusterInfo:{status:l}}]=v1();return x.useEffect(()=>{const u=c=>{const d=setTimeout(()=>{Uy("navigate to",c),n(c)},300);return()=>clearTimeout(d)};if(r==="/"||(Uy("pathname",r,"cluster status",l),l==="idle"&&r.startsWith(ws)))return u(td);if(l==="available"&&!r.startsWith(ws))return u(ws)},[n,r,l]),Ky([{path:td,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Kw,{})})},{path:Qw,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Ww,{})})},{path:ws,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Fw,{})})},{path:"*",element:F.jsx("div",{children:"404 - Page Not Found"})}])},nd="/chat",eA=x.lazy(()=>hu(()=>import("./chat-ejIJrEMQ.js"),__vite__mapDeps([4,1,2]))),tA=(...n)=>{console.log("%c router.tsx ","color: white; background: purple;",...n)},nA=()=>{const n=zd(),{pathname:r}=ua();return x.useEffect(()=>{const o=u=>{const c=setTimeout(()=>{tA("navigate to",u),n(u)},300);return()=>clearTimeout(c)};if(!r.startsWith(nd))return o(nd)},[n,r]),Ky([{path:nd,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(eA,{})})},{path:"*",element:F.jsx("div",{children:"404 - Page Not Found"})}])},aA=Me("div")(({theme:n})=>{const{palette:r,typography:l}=n;return{...l.body2,color:r.text.primary,backgroundColor:r.background.default,width:"100%",height:"100%",display:"flex",flexFlow:"column nowrap",justifyContent:"center",alignItems:"center"}}),S1=({children:n,hostProps:r})=>F.jsx(x.StrictMode,{children:F.jsx(ex,{children:F.jsxs(Ew,{children:[F.jsx(S3,{}),F.jsx(aA,{children:F.jsx(kw,{...r,children:F.jsx(Vw,{children:F.jsx(Zw,{children:n})})})})]})})}),bA=()=>F.jsx(S1,{hostProps:{type:"cluster"},children:F.jsx(Jw,{})}),SA=()=>F.jsx(S1,{hostProps:{type:"node"},children:F.jsx(nA,{})});export{hr as $,ay as A,Wv as B,SA as C,pr as D,Qd as E,wv as F,Iv as G,Ae as H,Jv as I,Wg as J,cT as K,av as L,bA as M,dT as N,uT as O,Kd as P,iv as Q,iA as R,$3 as S,n3 as T,zE as U,zs as V,Zv as W,sT as X,oA as Y,l3 as Z,Q5 as _,rt as a,Xl as a0,j5 as a1,dE as a2,En as a3,ah as a4,fT as a5,Kv as a6,uA as a7,x3 as a8,cA as a9,fA as aa,jt as ab,rT as ac,dA as ad,lA as ae,z3 as af,Cd as ag,sA as ah,rr as ai,U5 as aj,Si as ak,ja as al,lh as am,ey as an,hA as ao,N3 as ap,mA as aq,sy as ar,yA as as,gA as at,j4 as au,vy as av,H4 as aw,q4 as ax,zw as ay,Ba as az,Ze as b,rA as c,ge as d,gn as e,Bl as f,it as g,pA as h,tn as i,F as j,Zl as k,pd as l,Pt as m,fr as n,v1 as o,zd as p,p3 as q,x as r,Me as s,L3 as t,nn as u,Xv as v,Jd as w,oi as x,vA as y,uC as z}; diff --git a/src/frontend/dist/assets/chat-DLri3GLO.js b/src/frontend/dist/assets/chat-DLri3GLO.js new file mode 100644 index 0000000..beeccfd --- /dev/null +++ b/src/frontend/dist/assets/chat-DLri3GLO.js @@ -0,0 +1 @@ +import{c as t,j as e,C as o}from"./App-DvpWdRS1.js";t.createRoot(document.getElementById("root")).render(e.jsx(o,{})); diff --git a/src/frontend/dist/assets/chat-DbYkLAHJ.js b/src/frontend/dist/assets/chat-DbYkLAHJ.js deleted file mode 100644 index fbf968c..0000000 --- a/src/frontend/dist/assets/chat-DbYkLAHJ.js +++ /dev/null @@ -1 +0,0 @@ -import{c as t,j as e,C as o}from"./App-CwQoKbS_.js";t.createRoot(document.getElementById("root")).render(e.jsx(o,{})); diff --git a/src/frontend/dist/assets/chat-Dbb5eyZ9.js b/src/frontend/dist/assets/chat-ejIJrEMQ.js similarity index 99% rename from src/frontend/dist/assets/chat-Dbb5eyZ9.js rename to src/frontend/dist/assets/chat-ejIJrEMQ.js index 9a8e682..a259bfc 100644 --- a/src/frontend/dist/assets/chat-Dbb5eyZ9.js +++ b/src/frontend/dist/assets/chat-ejIJrEMQ.js @@ -1,4 +1,4 @@ -import{a as N,g as H,r as b,u as W,j as a,s as T,b as U,d as z,e as E,m as G,i as ze,v as Re,w as Me,x as I,k as te,o as Le,y as je,n as $,S as le,q as ie}from"./App-CwQoKbS_.js";import{i as ee,b as qe,c as de,F as $e,u as oe,f as re,O as Ae,d as Ne,e as He,S as We,D as Ue,g as Ee,C as Be}from"./main-layout-n9ngsR-Z.js";function De(e){return N("MuiFormControl",e)}H("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const Oe=e=>{const{classes:t,margin:o,fullWidth:r}=e,s={root:["root",o!=="none"&&`margin${z(o)}`,r&&"fullWidth"]};return E(s,De,t)},_e=T("div",{name:"MuiFormControl",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,t[`margin${z(o.margin)}`],o.fullWidth&&t.fullWidth]}})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),Ke=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormControl"}),{children:s,className:i,color:d="primary",component:p="div",disabled:l=!1,error:m=!1,focused:u,fullWidth:f=!1,hiddenLabel:h=!1,margin:v="none",required:n=!1,size:x="medium",variant:c="outlined",...C}=r,P={...r,color:d,component:p,disabled:l,error:m,fullWidth:f,hiddenLabel:h,margin:v,required:n,size:x,variant:c},J=Oe(P),[F,Q]=b.useState(()=>{let y=!1;return s&&b.Children.forEach(s,g=>{if(!ee(g,["Input","Select"]))return;const j=ee(g,["Select"])?g.props.input:g;j&&qe(j.props)&&(y=!0)}),y}),[B,R]=b.useState(()=>{let y=!1;return s&&b.Children.forEach(s,g=>{ee(g,["Input","Select"])&&(de(g.props,!0)||de(g.props.inputProps,!0))&&(y=!0)}),y}),[D,M]=b.useState(!1);l&&D&&M(!1);const O=u!==void 0&&!l?u:D;let _;b.useRef(!1);const K=b.useCallback(()=>{R(!0)},[]),L=b.useCallback(()=>{R(!1)},[]),X=b.useMemo(()=>({adornedStart:F,setAdornedStart:Q,color:d,disabled:l,error:m,filled:B,focused:O,fullWidth:f,hiddenLabel:h,size:x,onBlur:()=>{M(!1)},onFocus:()=>{M(!0)},onEmpty:L,onFilled:K,registerEffect:_,required:n,variant:c}),[F,d,l,m,B,O,f,h,_,L,K,n,x,c]);return a.jsx($e.Provider,{value:X,children:a.jsx(_e,{as:p,ownerState:P,className:U(J.root,i),ref:o,...C,children:s})})});function Ve(e){return N("MuiFormHelperText",e)}const ce=H("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var pe;const Ge=e=>{const{classes:t,contained:o,size:r,disabled:s,error:i,filled:d,focused:p,required:l}=e,m={root:["root",s&&"disabled",i&&"error",r&&`size${z(r)}`,o&&"contained",p&&"focused",d&&"filled",l&&"required"]};return E(m,Ve,t)},Je=T("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,o.size&&t[`size${z(o.size)}`],o.contained&&t.contained,o.filled&&t.filled]}})(G(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${ce.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${ce.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:t})=>t.contained,style:{marginLeft:14,marginRight:14}}]}))),Qe=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormHelperText"}),{children:s,className:i,component:d="p",disabled:p,error:l,filled:m,focused:u,margin:f,required:h,variant:v,...n}=r,x=oe(),c=re({props:r,muiFormControl:x,states:["variant","size","disabled","error","filled","focused","required"]}),C={...r,component:d,contained:c.variant==="filled"||c.variant==="outlined",variant:c.variant,size:c.size,disabled:c.disabled,error:c.error,filled:c.filled,focused:c.focused,required:c.required};delete C.ownerState;const P=Ge(C);return a.jsx(Je,{as:d,className:U(P.root,i),ref:o,...n,ownerState:C,children:s===" "?pe||(pe=a.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):s})});function Xe(e){return N("MuiFormLabel",e)}const A=H("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),Ye=e=>{const{classes:t,color:o,focused:r,disabled:s,error:i,filled:d,required:p}=e,l={root:["root",`color${z(o)}`,s&&"disabled",i&&"error",d&&"filled",r&&"focused",p&&"required"],asterisk:["asterisk",i&&"error"]};return E(l,Xe,t)},Ze=T("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,o.color==="secondary"&&t.colorSecondary,o.filled&&t.filled]}})(G(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(e.palette).filter(ze()).map(([t])=>({props:{color:t},style:{[`&.${A.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${A.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${A.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),et=T("span",{name:"MuiFormLabel",slot:"Asterisk"})(G(({theme:e})=>({[`&.${A.error}`]:{color:(e.vars||e).palette.error.main}}))),tt=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormLabel"}),{children:s,className:i,color:d,component:p="label",disabled:l,error:m,filled:u,focused:f,required:h,...v}=r,n=oe(),x=re({props:r,muiFormControl:n,states:["color","required","focused","disabled","error","filled"]}),c={...r,color:x.color||"primary",component:p,disabled:x.disabled,error:x.error,filled:x.filled,focused:x.focused,required:x.required},C=Ye(c);return a.jsxs(Ze,{as:p,ownerState:c,className:U(C.root,i),ref:o,...v,children:[s,x.required&&a.jsxs(et,{ownerState:c,"aria-hidden":!0,className:C.asterisk,children:[" ","*"]})]})});function ot(e){return N("MuiInputLabel",e)}H("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const rt=e=>{const{classes:t,formControl:o,size:r,shrink:s,disableAnimation:i,variant:d,required:p}=e,l={root:["root",o&&"formControl",!i&&"animated",s&&"shrink",r&&r!=="medium"&&`size${z(r)}`,d],asterisk:[p&&"asterisk"]},m=E(l,ot,t);return{...t,...m}},st=T(tt,{shouldForwardProp:e=>Re(e)||e==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[{[`& .${A.asterisk}`]:t.asterisk},t.root,o.formControl&&t.formControl,o.size==="small"&&t.sizeSmall,o.shrink&&t.shrink,!o.disableAnimation&&t.animated,o.focused&&t.focused,t[o.variant]]}})(G(({theme:e})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:t})=>t.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:t})=>t.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:t})=>!t.disableAnimation,style:{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:t,ownerState:o})=>t==="filled"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:t,ownerState:o,size:r})=>t==="filled"&&o.shrink&&r==="small",style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:t,ownerState:o})=>t==="outlined"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),nt=b.forwardRef(function(t,o){const r=W({name:"MuiInputLabel",props:t}),{disableAnimation:s=!1,margin:i,shrink:d,variant:p,className:l,...m}=r,u=oe();let f=d;typeof f>"u"&&u&&(f=u.filled||u.focused||u.adornedStart);const h=re({props:r,muiFormControl:u,states:["size","variant","required","focused"]}),v={...r,disableAnimation:s,formControl:u,shrink:f,size:h.size,variant:h.variant,required:h.required,focused:h.focused},n=rt(v);return a.jsx(st,{"data-shrink":f,ref:o,className:U(n.root,l),...m,ownerState:v,classes:n})});function at(e){return N("MuiTextField",e)}H("MuiTextField",["root"]);const lt={standard:He,filled:Ne,outlined:Ae},it=e=>{const{classes:t}=e;return E({root:["root"]},at,t)},dt=T(Ke,{name:"MuiTextField",slot:"Root"})({}),ct=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiTextField"}),{autoComplete:s,autoFocus:i=!1,children:d,className:p,color:l="primary",defaultValue:m,disabled:u=!1,error:f=!1,FormHelperTextProps:h,fullWidth:v=!1,helperText:n,id:x,InputLabelProps:c,inputProps:C,InputProps:P,inputRef:J,label:F,maxRows:Q,minRows:B,multiline:R=!1,name:D,onBlur:M,onChange:O,onFocus:_,placeholder:K,required:L=!1,rows:X,select:y=!1,SelectProps:g,slots:j={},slotProps:ue={},type:me,value:se,variant:V="outlined",...fe}=r,S={...r,autoFocus:i,color:l,disabled:u,error:f,fullWidth:v,multiline:R,required:L,select:y,variant:V},xe=it(S),k=Me(x),Y=n&&k?`${k}-helper-text`:void 0,ne=F&&k?`${k}-label`:void 0,be=lt[V],w={slots:j,slotProps:{input:P,inputLabel:c,htmlInput:C,formHelperText:h,select:g,...ue}},q={},Z=w.slotProps.inputLabel;V==="outlined"&&(Z&&typeof Z.shrink<"u"&&(q.notched=Z.shrink),q.label=F),y&&((!g||!g.native)&&(q.id=void 0),q["aria-describedby"]=void 0);const[he,ve]=I("root",{elementType:dt,shouldForwardComponentProp:!0,externalForwardedProps:{...w,...fe},ownerState:S,className:U(xe.root,p),ref:o,additionalProps:{disabled:u,error:f,fullWidth:v,required:L,color:l,variant:V}}),[ge,Ce]=I("input",{elementType:be,externalForwardedProps:w,additionalProps:q,ownerState:S}),[ye,Fe]=I("inputLabel",{elementType:nt,externalForwardedProps:w,ownerState:S}),[Se,ke]=I("htmlInput",{elementType:"input",externalForwardedProps:w,ownerState:S}),[we,Pe]=I("formHelperText",{elementType:Qe,externalForwardedProps:w,ownerState:S}),[Ie,Te]=I("select",{elementType:We,externalForwardedProps:w,ownerState:S}),ae=a.jsx(ge,{"aria-describedby":Y,autoComplete:s,autoFocus:i,defaultValue:m,fullWidth:v,multiline:R,name:D,rows:X,maxRows:Q,minRows:B,type:me,value:se,id:k,inputRef:J,onBlur:M,onChange:O,onFocus:_,placeholder:K,inputProps:ke,slots:{input:j.htmlInput?Se:void 0},...Ce});return a.jsxs(he,{...ve,children:[F!=null&&F!==""&&a.jsx(ye,{htmlFor:k,id:ne,...Fe,children:F}),y?a.jsx(Ie,{"aria-describedby":Y,id:k,labelId:ne,value:se,input:ae,...Te,children:d}):ae,n&&a.jsx(we,{id:Y,...Pe,children:n})]})});/** +import{a as N,g as H,r as b,u as W,j as a,s as T,b as U,d as z,e as E,m as G,i as ze,v as Re,w as Me,x as I,k as te,o as Le,y as je,n as $,S as le,q as ie}from"./App-DvpWdRS1.js";import{i as ee,b as qe,c as de,F as $e,u as oe,f as re,O as Ae,d as Ne,e as He,S as We,D as Ue,g as Ee,C as Be}from"./main-layout-Daq7w871.js";function De(e){return N("MuiFormControl",e)}H("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const Oe=e=>{const{classes:t,margin:o,fullWidth:r}=e,s={root:["root",o!=="none"&&`margin${z(o)}`,r&&"fullWidth"]};return E(s,De,t)},_e=T("div",{name:"MuiFormControl",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,t[`margin${z(o.margin)}`],o.fullWidth&&t.fullWidth]}})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),Ke=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormControl"}),{children:s,className:i,color:d="primary",component:p="div",disabled:l=!1,error:m=!1,focused:u,fullWidth:f=!1,hiddenLabel:h=!1,margin:v="none",required:n=!1,size:x="medium",variant:c="outlined",...C}=r,P={...r,color:d,component:p,disabled:l,error:m,fullWidth:f,hiddenLabel:h,margin:v,required:n,size:x,variant:c},J=Oe(P),[F,Q]=b.useState(()=>{let y=!1;return s&&b.Children.forEach(s,g=>{if(!ee(g,["Input","Select"]))return;const j=ee(g,["Select"])?g.props.input:g;j&&qe(j.props)&&(y=!0)}),y}),[B,R]=b.useState(()=>{let y=!1;return s&&b.Children.forEach(s,g=>{ee(g,["Input","Select"])&&(de(g.props,!0)||de(g.props.inputProps,!0))&&(y=!0)}),y}),[D,M]=b.useState(!1);l&&D&&M(!1);const O=u!==void 0&&!l?u:D;let _;b.useRef(!1);const K=b.useCallback(()=>{R(!0)},[]),L=b.useCallback(()=>{R(!1)},[]),X=b.useMemo(()=>({adornedStart:F,setAdornedStart:Q,color:d,disabled:l,error:m,filled:B,focused:O,fullWidth:f,hiddenLabel:h,size:x,onBlur:()=>{M(!1)},onFocus:()=>{M(!0)},onEmpty:L,onFilled:K,registerEffect:_,required:n,variant:c}),[F,d,l,m,B,O,f,h,_,L,K,n,x,c]);return a.jsx($e.Provider,{value:X,children:a.jsx(_e,{as:p,ownerState:P,className:U(J.root,i),ref:o,...C,children:s})})});function Ve(e){return N("MuiFormHelperText",e)}const ce=H("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var pe;const Ge=e=>{const{classes:t,contained:o,size:r,disabled:s,error:i,filled:d,focused:p,required:l}=e,m={root:["root",s&&"disabled",i&&"error",r&&`size${z(r)}`,o&&"contained",p&&"focused",d&&"filled",l&&"required"]};return E(m,Ve,t)},Je=T("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,o.size&&t[`size${z(o.size)}`],o.contained&&t.contained,o.filled&&t.filled]}})(G(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${ce.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${ce.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:t})=>t.contained,style:{marginLeft:14,marginRight:14}}]}))),Qe=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormHelperText"}),{children:s,className:i,component:d="p",disabled:p,error:l,filled:m,focused:u,margin:f,required:h,variant:v,...n}=r,x=oe(),c=re({props:r,muiFormControl:x,states:["variant","size","disabled","error","filled","focused","required"]}),C={...r,component:d,contained:c.variant==="filled"||c.variant==="outlined",variant:c.variant,size:c.size,disabled:c.disabled,error:c.error,filled:c.filled,focused:c.focused,required:c.required};delete C.ownerState;const P=Ge(C);return a.jsx(Je,{as:d,className:U(P.root,i),ref:o,...n,ownerState:C,children:s===" "?pe||(pe=a.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):s})});function Xe(e){return N("MuiFormLabel",e)}const A=H("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),Ye=e=>{const{classes:t,color:o,focused:r,disabled:s,error:i,filled:d,required:p}=e,l={root:["root",`color${z(o)}`,s&&"disabled",i&&"error",d&&"filled",r&&"focused",p&&"required"],asterisk:["asterisk",i&&"error"]};return E(l,Xe,t)},Ze=T("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,o.color==="secondary"&&t.colorSecondary,o.filled&&t.filled]}})(G(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(e.palette).filter(ze()).map(([t])=>({props:{color:t},style:{[`&.${A.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${A.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${A.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),et=T("span",{name:"MuiFormLabel",slot:"Asterisk"})(G(({theme:e})=>({[`&.${A.error}`]:{color:(e.vars||e).palette.error.main}}))),tt=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormLabel"}),{children:s,className:i,color:d,component:p="label",disabled:l,error:m,filled:u,focused:f,required:h,...v}=r,n=oe(),x=re({props:r,muiFormControl:n,states:["color","required","focused","disabled","error","filled"]}),c={...r,color:x.color||"primary",component:p,disabled:x.disabled,error:x.error,filled:x.filled,focused:x.focused,required:x.required},C=Ye(c);return a.jsxs(Ze,{as:p,ownerState:c,className:U(C.root,i),ref:o,...v,children:[s,x.required&&a.jsxs(et,{ownerState:c,"aria-hidden":!0,className:C.asterisk,children:[" ","*"]})]})});function ot(e){return N("MuiInputLabel",e)}H("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const rt=e=>{const{classes:t,formControl:o,size:r,shrink:s,disableAnimation:i,variant:d,required:p}=e,l={root:["root",o&&"formControl",!i&&"animated",s&&"shrink",r&&r!=="medium"&&`size${z(r)}`,d],asterisk:[p&&"asterisk"]},m=E(l,ot,t);return{...t,...m}},st=T(tt,{shouldForwardProp:e=>Re(e)||e==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[{[`& .${A.asterisk}`]:t.asterisk},t.root,o.formControl&&t.formControl,o.size==="small"&&t.sizeSmall,o.shrink&&t.shrink,!o.disableAnimation&&t.animated,o.focused&&t.focused,t[o.variant]]}})(G(({theme:e})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:t})=>t.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:t})=>t.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:t})=>!t.disableAnimation,style:{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:t,ownerState:o})=>t==="filled"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:t,ownerState:o,size:r})=>t==="filled"&&o.shrink&&r==="small",style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:t,ownerState:o})=>t==="outlined"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),nt=b.forwardRef(function(t,o){const r=W({name:"MuiInputLabel",props:t}),{disableAnimation:s=!1,margin:i,shrink:d,variant:p,className:l,...m}=r,u=oe();let f=d;typeof f>"u"&&u&&(f=u.filled||u.focused||u.adornedStart);const h=re({props:r,muiFormControl:u,states:["size","variant","required","focused"]}),v={...r,disableAnimation:s,formControl:u,shrink:f,size:h.size,variant:h.variant,required:h.required,focused:h.focused},n=rt(v);return a.jsx(st,{"data-shrink":f,ref:o,className:U(n.root,l),...m,ownerState:v,classes:n})});function at(e){return N("MuiTextField",e)}H("MuiTextField",["root"]);const lt={standard:He,filled:Ne,outlined:Ae},it=e=>{const{classes:t}=e;return E({root:["root"]},at,t)},dt=T(Ke,{name:"MuiTextField",slot:"Root"})({}),ct=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiTextField"}),{autoComplete:s,autoFocus:i=!1,children:d,className:p,color:l="primary",defaultValue:m,disabled:u=!1,error:f=!1,FormHelperTextProps:h,fullWidth:v=!1,helperText:n,id:x,InputLabelProps:c,inputProps:C,InputProps:P,inputRef:J,label:F,maxRows:Q,minRows:B,multiline:R=!1,name:D,onBlur:M,onChange:O,onFocus:_,placeholder:K,required:L=!1,rows:X,select:y=!1,SelectProps:g,slots:j={},slotProps:ue={},type:me,value:se,variant:V="outlined",...fe}=r,S={...r,autoFocus:i,color:l,disabled:u,error:f,fullWidth:v,multiline:R,required:L,select:y,variant:V},xe=it(S),k=Me(x),Y=n&&k?`${k}-helper-text`:void 0,ne=F&&k?`${k}-label`:void 0,be=lt[V],w={slots:j,slotProps:{input:P,inputLabel:c,htmlInput:C,formHelperText:h,select:g,...ue}},q={},Z=w.slotProps.inputLabel;V==="outlined"&&(Z&&typeof Z.shrink<"u"&&(q.notched=Z.shrink),q.label=F),y&&((!g||!g.native)&&(q.id=void 0),q["aria-describedby"]=void 0);const[he,ve]=I("root",{elementType:dt,shouldForwardComponentProp:!0,externalForwardedProps:{...w,...fe},ownerState:S,className:U(xe.root,p),ref:o,additionalProps:{disabled:u,error:f,fullWidth:v,required:L,color:l,variant:V}}),[ge,Ce]=I("input",{elementType:be,externalForwardedProps:w,additionalProps:q,ownerState:S}),[ye,Fe]=I("inputLabel",{elementType:nt,externalForwardedProps:w,ownerState:S}),[Se,ke]=I("htmlInput",{elementType:"input",externalForwardedProps:w,ownerState:S}),[we,Pe]=I("formHelperText",{elementType:Qe,externalForwardedProps:w,ownerState:S}),[Ie,Te]=I("select",{elementType:We,externalForwardedProps:w,ownerState:S}),ae=a.jsx(ge,{"aria-describedby":Y,autoComplete:s,autoFocus:i,defaultValue:m,fullWidth:v,multiline:R,name:D,rows:X,maxRows:Q,minRows:B,type:me,value:se,id:k,inputRef:J,onBlur:M,onChange:O,onFocus:_,placeholder:K,inputProps:ke,slots:{input:j.htmlInput?Se:void 0},...Ce});return a.jsxs(he,{...ve,children:[F!=null&&F!==""&&a.jsx(ye,{htmlFor:k,id:ne,...Fe,children:F}),y?a.jsx(Ie,{"aria-describedby":Y,id:k,labelId:ne,value:se,input:ae,...Te,children:d}):ae,n&&a.jsx(we,{id:Y,...Pe,children:n})]})});/** * @license @tabler/icons-react v3.35.0 - MIT * * This source code is licensed under the MIT license. diff --git a/src/frontend/dist/assets/join-TpGKfeh0.js b/src/frontend/dist/assets/join-TpGKfeh0.js new file mode 100644 index 0000000..dfcf00e --- /dev/null +++ b/src/frontend/dist/assets/join-TpGKfeh0.js @@ -0,0 +1,6 @@ +import{k as u,o as h,r as m,j as e,T as r,s as p,A as i,q as y,L as x,S as f}from"./App-DvpWdRS1.js";import{M as v,J as j,N as g}from"./main-layout-Daq7w871.js";/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const w=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]],k=u("outline","arrow-left","ArrowLeft",w),o=p(f)(({theme:t})=>{const{spacing:s}=t;return{overflowY:"auto"}});function L(){const[{modelInfo:t,clusterInfo:{status:s,initNodesNumber:n,needMoreNodes:d},nodeInfoList:a}]=h(),l=m.useMemo(()=>!!(n>0&&a.length>=n&&a.every(c=>c.status==="available")&&s==="waiting"),[s,n,a]);return e.jsxs(v,{contentStart:e.jsx(y,{component:x,to:"/setup",size:"medium",color:"secondary",startIcon:e.jsx(k,{}),children:"Back"}),children:[e.jsx(r,{variant:"h1",children:"Get Your Nodes Running"}),e.jsxs(o,{gap:6,sx:{overflow:"hidden"},children:[e.jsxs(o,{gap:2,children:[e.jsx(o,{gap:1,children:e.jsx(r,{variant:"body1",children:"Step 1 - Run join command on all nodes"})}),e.jsx(j,{})]}),e.jsxs(o,{gap:2,flex:1,children:[e.jsxs(o,{gap:1,children:[e.jsx(r,{variant:"body1",children:"Step 2 - Check your node status"}),e.jsx(r,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:"After you successfully start your nodes, you should see them start to show up below with their status. Once all nodes are connected, you will automatically be directed to the chat interface."})]}),l&&e.jsx(i,{severity:"error",variant:"standard",children:"Your selected model requires more nodes. Please go back to the previous step to add more nodes, or choose a smaller model."},"error")||e.jsx(i,{severity:"info",variant:"standard",children:"If your nodes cannot connect properly, retry the above join command to restart the server."},"info"),!!t&&t.vram>0&&d&&e.jsx(i,{severity:"warning",variant:"standard",children:["Your selected model requires more nodes.","You’ll need a ",e.jsx("strong",{children:`minimum of ${t.vram} GB of total VRAM`})," to host this model."]},"vram-warning"),e.jsx(g,{},"node-list")]})]})]})}export{L as default}; diff --git a/src/frontend/dist/assets/join-gimeSV7I.js b/src/frontend/dist/assets/join-gimeSV7I.js deleted file mode 100644 index 98b6b41..0000000 --- a/src/frontend/dist/assets/join-gimeSV7I.js +++ /dev/null @@ -1,6 +0,0 @@ -import{k as u,o as h,r as m,j as e,T as s,s as y,A as i,q as p,L as v,S as x}from"./App-CwQoKbS_.js";import{M as f,J as g,N as j}from"./main-layout-n9ngsR-Z.js";/** - * @license @tabler/icons-react v3.35.0 - MIT - * - * This source code is licensed under the MIT license. - * See the LICENSE file in the root directory of this source tree. - */const w=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]],k=u("outline","arrow-left","ArrowLeft",w),o=y(x)(({theme:t})=>{const{spacing:r}=t;return{overflowY:"auto"}});function L(){const[{modelInfo:t,clusterInfo:{status:r,initNodesNumber:a,needMoreNodes:d},nodeInfoList:n}]=h(),l=m.useMemo(()=>!!(a>0&&n.length>=a&&n.every(c=>c.status==="available")&&r==="waiting"),[r,a,n]);return e.jsxs(f,{contentStart:e.jsx(p,{component:v,to:"/setup",size:"medium",color:"secondary",startIcon:e.jsx(k,{}),children:"Back"}),children:[e.jsx(s,{variant:"h1",children:"Get Your Nodes Running"}),e.jsxs(o,{gap:6,sx:{overflow:"hidden"},children:[e.jsxs(o,{gap:2,children:[e.jsx(o,{gap:1,children:e.jsx(s,{variant:"body1",children:"Step 1 - Run join command on all nodes"})}),e.jsx(g,{})]}),e.jsxs(o,{gap:2,flex:1,children:[e.jsxs(o,{gap:1,children:[e.jsx(s,{variant:"body1",children:"Step 2 - Check your node status"}),e.jsx(s,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:"After you successfully start your nodes, you should see them start to show up below with their status. Once all nodes are connected, you will automatically be directed to the chat interface."})]}),l&&e.jsx(i,{severity:"error",variant:"standard",children:"Your selected model requires more nodes. Please go back to the previous step to add more nodes, or choose a smaller model."},"error")||e.jsx(i,{severity:"info",variant:"standard",children:"If your nodes cannot connect properly, retry the above join command to restart the server."},"info"),!!t&&t.vram>0&&d&&e.jsxs(i,{severity:"warning",variant:"standard",children:["Your selected model requires more nodes. To host this model, we suggest you to have a total VRAM size of ",t.vram," GB."]},"vram-warning"),e.jsx(j,{},"node-list")]})]})]})}export{L as default}; diff --git a/src/frontend/dist/assets/main-CkRtaR8-.js b/src/frontend/dist/assets/main-CkRtaR8-.js new file mode 100644 index 0000000..1e1ce9c --- /dev/null +++ b/src/frontend/dist/assets/main-CkRtaR8-.js @@ -0,0 +1 @@ +import{c as t,j as e,M as o}from"./App-DvpWdRS1.js";t.createRoot(document.getElementById("root")).render(e.jsx(o,{})); diff --git a/src/frontend/dist/assets/main-DVorMRWs.js b/src/frontend/dist/assets/main-DVorMRWs.js deleted file mode 100644 index c81ab9c..0000000 --- a/src/frontend/dist/assets/main-DVorMRWs.js +++ /dev/null @@ -1 +0,0 @@ -import{c as t,j as e,M as o}from"./App-CwQoKbS_.js";t.createRoot(document.getElementById("root")).render(e.jsx(o,{})); diff --git a/src/frontend/dist/assets/main-layout-n9ngsR-Z.js b/src/frontend/dist/assets/main-layout-Daq7w871.js similarity index 99% rename from src/frontend/dist/assets/main-layout-n9ngsR-Z.js rename to src/frontend/dist/assets/main-layout-Daq7w871.js index 72a3ea5..2609352 100644 --- a/src/frontend/dist/assets/main-layout-n9ngsR-Z.js +++ b/src/frontend/dist/assets/main-layout-Daq7w871.js @@ -1,4 +1,4 @@ -import{z as vg,D as Tg,r as P,E as xg,F as Eg,j as k,b as Ve,_ as Sg,R as cs,G as wg,H as ds,J as H1,K as Ag,N as Cg,l as Vt,O as kg,P as ar,Q as Ig,a as gt,g as at,e as Ge,U as Gl,u as Ke,s as ue,V as ka,W as Ng,X as Ia,d as St,Y as Rg,m as ct,Z as Na,$ as z1,a0 as Mg,a1 as qa,x as Et,a2 as Dg,a3 as Pg,a4 as Lg,a5 as Og,a6 as mo,w as Xl,a7 as _g,a8 as Bg,T as Ye,v as Wn,a9 as Fg,aa as Hg,ab as Kl,i as Ql,ac as aa,ad as zg,ae as Oc,B as Ug,af as _c,ag as Bc,ah as Vg,ai as Ln,aj as jg,ak as U1,al as V1,am as qg,an as Fc,ao as $g,ap as Wg,aq as Yg,ar as Hc,k as mn,as as Gg,at as zc,au as Xg,av as Uc,aw as _s,I as Qr,ax as j1,q as q1,ay as $1,o as $a,n as wi,S as Xe,y as Zl,az as W1}from"./App-CwQoKbS_.js";function Kg(e={}){const{themeId:t,defaultTheme:n,defaultClassName:r="MuiBox-root",generateClassName:i}=e,a=vg("div",{shouldForwardProp:o=>o!=="theme"&&o!=="sx"&&o!=="as"})(Tg);return P.forwardRef(function(u,l){const c=xg(n),{className:d,component:p="div",...f}=Eg(u);return k.jsx(a,{as:p,ref:l,className:Ve(d,i?i(r):r),theme:t&&c[t]||c,...f})})}function Qg(e,t){return P.isValidElement(e)&&t.indexOf(e.type.muiName??e.type?._payload?.value?.muiName)!==-1}function Zg(e){return String(e).match(/[\d.\-+]*\s*(.*)/)[1]||""}function Jg(e){return parseFloat(e)}function Vc(...e){return e.reduce((t,n)=>n==null?t:function(...i){t.apply(this,i),n.apply(this,i)},()=>{})}function Y1(e,t=166){let n;function r(...i){const a=()=>{e.apply(this,i)};clearTimeout(n),n=setTimeout(a,t)}return r.clear=()=>{clearTimeout(n)},r}function fn(e){return e&&e.ownerDocument||document}function sr(e){return fn(e).defaultView||window}function jc(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function qu(e){const{controlled:t,default:n,name:r,state:i="value"}=e,{current:a}=P.useRef(t!==void 0),[s,o]=P.useState(n),u=a?t:s,l=P.useCallback(c=>{a||o(c)},[]);return[u,l]}function e6(e,t){const n=e.charCodeAt(2);return e[0]==="o"&&e[1]==="n"&&n>=65&&n<=90&&typeof t=="function"}function t6(e,t){if(!e)return t;function n(s,o){const u={};return Object.keys(o).forEach(l=>{e6(l,o[l])&&typeof s[l]=="function"&&(u[l]=(...c)=>{s[l](...c),o[l](...c)})}),u}if(typeof e=="function"||typeof t=="function")return s=>{const o=typeof t=="function"?t(s):t,u=typeof e=="function"?e({...s,...o}):e,l=Ve(s?.className,o?.className,u?.className),c=n(u,o);return{...o,...u,...c,...!!l&&{className:l},...o?.style&&u?.style&&{style:{...o.style,...u.style}},...o?.sx&&u?.sx&&{sx:[...Array.isArray(o.sx)?o.sx:[o.sx],...Array.isArray(u.sx)?u.sx:[u.sx]]}}};const r=t,i=n(e,r),a=Ve(r?.className,e?.className);return{...t,...e,...i,...!!a&&{className:a},...r?.style&&e?.style&&{style:{...r.style,...e.style}},...r?.sx&&e?.sx&&{sx:[...Array.isArray(r.sx)?r.sx:[r.sx],...Array.isArray(e.sx)?e.sx:[e.sx]]}}}const qc={disabled:!1};var n6=function(t){return t.scrollTop},sa="unmounted",Ur="exited",Vr="entering",ci="entered",$u="exiting",Yn=(function(e){Sg(t,e);function t(r,i){var a;a=e.call(this,r,i)||this;var s=i,o=s&&!s.isMounting?r.enter:r.appear,u;return a.appearStatus=null,r.in?o?(u=Ur,a.appearStatus=Vr):u=ci:r.unmountOnExit||r.mountOnEnter?u=sa:u=Ur,a.state={status:u},a.nextCallback=null,a}t.getDerivedStateFromProps=function(i,a){var s=i.in;return s&&a.status===sa?{status:Ur}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(i){var a=null;if(i!==this.props){var s=this.state.status;this.props.in?s!==Vr&&s!==ci&&(a=Vr):(s===Vr||s===ci)&&(a=$u)}this.updateStatus(!1,a)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var i=this.props.timeout,a,s,o;return a=s=o=i,i!=null&&typeof i!="number"&&(a=i.exit,s=i.enter,o=i.appear!==void 0?i.appear:s),{exit:a,enter:s,appear:o}},n.updateStatus=function(i,a){if(i===void 0&&(i=!1),a!==null)if(this.cancelNextCallback(),a===Vr){if(this.props.unmountOnExit||this.props.mountOnEnter){var s=this.props.nodeRef?this.props.nodeRef.current:cs.findDOMNode(this);s&&n6(s)}this.performEnter(i)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Ur&&this.setState({status:sa})},n.performEnter=function(i){var a=this,s=this.props.enter,o=this.context?this.context.isMounting:i,u=this.props.nodeRef?[o]:[cs.findDOMNode(this),o],l=u[0],c=u[1],d=this.getTimeouts(),p=o?d.appear:d.enter;if(!i&&!s||qc.disabled){this.safeSetState({status:ci},function(){a.props.onEntered(l)});return}this.props.onEnter(l,c),this.safeSetState({status:Vr},function(){a.props.onEntering(l,c),a.onTransitionEnd(p,function(){a.safeSetState({status:ci},function(){a.props.onEntered(l,c)})})})},n.performExit=function(){var i=this,a=this.props.exit,s=this.getTimeouts(),o=this.props.nodeRef?void 0:cs.findDOMNode(this);if(!a||qc.disabled){this.safeSetState({status:Ur},function(){i.props.onExited(o)});return}this.props.onExit(o),this.safeSetState({status:$u},function(){i.props.onExiting(o),i.onTransitionEnd(s.exit,function(){i.safeSetState({status:Ur},function(){i.props.onExited(o)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(i,a){a=this.setNextCallback(a),this.setState(i,a)},n.setNextCallback=function(i){var a=this,s=!0;return this.nextCallback=function(o){s&&(s=!1,a.nextCallback=null,i(o))},this.nextCallback.cancel=function(){s=!1},this.nextCallback},n.onTransitionEnd=function(i,a){this.setNextCallback(a);var s=this.props.nodeRef?this.props.nodeRef.current:cs.findDOMNode(this),o=i==null&&!this.props.addEndListener;if(!s||o){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var u=this.props.nodeRef?[this.nextCallback]:[s,this.nextCallback],l=u[0],c=u[1];this.props.addEndListener(l,c)}i!=null&&setTimeout(this.nextCallback,i)},n.render=function(){var i=this.state.status;if(i===sa)return null;var a=this.props,s=a.children;a.in,a.mountOnEnter,a.unmountOnExit,a.appear,a.enter,a.exit,a.timeout,a.addEndListener,a.onEnter,a.onEntering,a.onEntered,a.onExit,a.onExiting,a.onExited,a.nodeRef;var o=wg(a,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return ds.createElement(H1.Provider,{value:null},typeof s=="function"?s(i,o):ds.cloneElement(ds.Children.only(s),o))},t})(ds.Component);Yn.contextType=H1;Yn.propTypes={};function si(){}Yn.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:si,onEntering:si,onEntered:si,onExit:si,onExiting:si,onExited:si};Yn.UNMOUNTED=sa;Yn.EXITED=Ur;Yn.ENTERING=Vr;Yn.ENTERED=ci;Yn.EXITING=$u;const G1=e=>e.scrollTop;function Ys(e,t){const{timeout:n,easing:r,style:i={}}=e;return{duration:i.transitionDuration??(typeof n=="number"?n:n[t.mode]||0),easing:i.transitionTimingFunction??(typeof r=="object"?r[t.mode]:r),delay:i.transitionDelay}}var nn="top",An="bottom",Cn="right",rn="left",Jl="auto",Wa=[nn,An,Cn,rn],Ai="start",Ra="end",r6="clippingParents",X1="viewport",Yi="popper",i6="reference",$c=Wa.reduce(function(e,t){return e.concat([t+"-"+Ai,t+"-"+Ra])},[]),K1=[].concat(Wa,[Jl]).reduce(function(e,t){return e.concat([t,t+"-"+Ai,t+"-"+Ra])},[]),a6="beforeRead",s6="read",o6="afterRead",u6="beforeMain",l6="main",c6="afterMain",d6="beforeWrite",h6="write",f6="afterWrite",p6=[a6,s6,o6,u6,l6,c6,d6,h6,f6];function $n(e){return e?(e.nodeName||"").toLowerCase():null}function pn(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Zr(e){var t=pn(e).Element;return e instanceof t||e instanceof Element}function En(e){var t=pn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function e0(e){if(typeof ShadowRoot>"u")return!1;var t=pn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function m6(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},a=t.elements[n];!En(a)||!$n(a)||(Object.assign(a.style,r),Object.keys(i).forEach(function(s){var o=i[s];o===!1?a.removeAttribute(s):a.setAttribute(s,o===!0?"":o)}))})}function g6(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],a=t.attributes[r]||{},s=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),o=s.reduce(function(u,l){return u[l]="",u},{});!En(i)||!$n(i)||(Object.assign(i.style,o),Object.keys(a).forEach(function(u){i.removeAttribute(u)}))})}}const b6={name:"applyStyles",enabled:!0,phase:"write",fn:m6,effect:g6,requires:["computeStyles"]};function Un(e){return e.split("-")[0]}var Yr=Math.max,Gs=Math.min,Ci=Math.round;function Wu(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Q1(){return!/^((?!chrome|android).)*safari/i.test(Wu())}function ki(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&En(e)&&(i=e.offsetWidth>0&&Ci(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Ci(r.height)/e.offsetHeight||1);var s=Zr(e)?pn(e):window,o=s.visualViewport,u=!Q1()&&n,l=(r.left+(u&&o?o.offsetLeft:0))/i,c=(r.top+(u&&o?o.offsetTop:0))/a,d=r.width/i,p=r.height/a;return{width:d,height:p,top:c,right:l+d,bottom:c+p,left:l,x:l,y:c}}function t0(e){var t=ki(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Z1(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&e0(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function or(e){return pn(e).getComputedStyle(e)}function y6(e){return["table","td","th"].indexOf($n(e))>=0}function Mr(e){return((Zr(e)?e.ownerDocument:e.document)||window.document).documentElement}function go(e){return $n(e)==="html"?e:e.assignedSlot||e.parentNode||(e0(e)?e.host:null)||Mr(e)}function Wc(e){return!En(e)||or(e).position==="fixed"?null:e.offsetParent}function v6(e){var t=/firefox/i.test(Wu()),n=/Trident/i.test(Wu());if(n&&En(e)){var r=or(e);if(r.position==="fixed")return null}var i=go(e);for(e0(i)&&(i=i.host);En(i)&&["html","body"].indexOf($n(i))<0;){var a=or(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function Ya(e){for(var t=pn(e),n=Wc(e);n&&y6(n)&&or(n).position==="static";)n=Wc(n);return n&&($n(n)==="html"||$n(n)==="body"&&or(n).position==="static")?t:n||v6(e)||t}function n0(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ca(e,t,n){return Yr(e,Gs(t,n))}function T6(e,t,n){var r=ca(e,t,n);return r>n?n:r}function J1(){return{top:0,right:0,bottom:0,left:0}}function ep(e){return Object.assign({},J1(),e)}function tp(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var x6=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,ep(typeof t!="number"?t:tp(t,Wa))};function E6(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,s=n.modifiersData.popperOffsets,o=Un(n.placement),u=n0(o),l=[rn,Cn].indexOf(o)>=0,c=l?"height":"width";if(!(!a||!s)){var d=x6(i.padding,n),p=t0(a),f=u==="y"?nn:rn,b=u==="y"?An:Cn,v=n.rects.reference[c]+n.rects.reference[u]-s[u]-n.rects.popper[c],E=s[u]-n.rects.reference[u],y=Ya(a),w=y?u==="y"?y.clientHeight||0:y.clientWidth||0:0,x=v/2-E/2,I=d[f],M=w-p[c]-d[b],C=w/2-p[c]/2+x,H=ca(I,C,M),z=u;n.modifiersData[r]=(t={},t[z]=H,t.centerOffset=H-C,t)}}function S6(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||Z1(t.elements.popper,i)&&(t.elements.arrow=i))}const w6={name:"arrow",enabled:!0,phase:"main",fn:E6,effect:S6,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ii(e){return e.split("-")[1]}var A6={top:"auto",right:"auto",bottom:"auto",left:"auto"};function C6(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Ci(n*i)/i||0,y:Ci(r*i)/i||0}}function Yc(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,s=e.offsets,o=e.position,u=e.gpuAcceleration,l=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=s.x,f=p===void 0?0:p,b=s.y,v=b===void 0?0:b,E=typeof c=="function"?c({x:f,y:v}):{x:f,y:v};f=E.x,v=E.y;var y=s.hasOwnProperty("x"),w=s.hasOwnProperty("y"),x=rn,I=nn,M=window;if(l){var C=Ya(n),H="clientHeight",z="clientWidth";if(C===pn(n)&&(C=Mr(n),or(C).position!=="static"&&o==="absolute"&&(H="scrollHeight",z="scrollWidth")),C=C,i===nn||(i===rn||i===Cn)&&a===Ra){I=An;var V=d&&C===M&&M.visualViewport?M.visualViewport.height:C[H];v-=V-r.height,v*=u?1:-1}if(i===rn||(i===nn||i===An)&&a===Ra){x=Cn;var L=d&&C===M&&M.visualViewport?M.visualViewport.width:C[z];f-=L-r.width,f*=u?1:-1}}var $=Object.assign({position:o},l&&A6),W=c===!0?C6({x:f,y:v},pn(n)):{x:f,y:v};if(f=W.x,v=W.y,u){var G;return Object.assign({},$,(G={},G[I]=w?"0":"",G[x]=y?"0":"",G.transform=(M.devicePixelRatio||1)<=1?"translate("+f+"px, "+v+"px)":"translate3d("+f+"px, "+v+"px, 0)",G))}return Object.assign({},$,(t={},t[I]=w?v+"px":"",t[x]=y?f+"px":"",t.transform="",t))}function k6(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,s=a===void 0?!0:a,o=n.roundOffsets,u=o===void 0?!0:o,l={placement:Un(t.placement),variation:Ii(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Yc(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:u})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Yc(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const I6={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:k6,data:{}};var hs={passive:!0};function N6(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,s=r.resize,o=s===void 0?!0:s,u=pn(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(c){c.addEventListener("scroll",n.update,hs)}),o&&u.addEventListener("resize",n.update,hs),function(){a&&l.forEach(function(c){c.removeEventListener("scroll",n.update,hs)}),o&&u.removeEventListener("resize",n.update,hs)}}const R6={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:N6,data:{}};var M6={left:"right",right:"left",bottom:"top",top:"bottom"};function Bs(e){return e.replace(/left|right|bottom|top/g,function(t){return M6[t]})}var D6={start:"end",end:"start"};function Gc(e){return e.replace(/start|end/g,function(t){return D6[t]})}function r0(e){var t=pn(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function i0(e){return ki(Mr(e)).left+r0(e).scrollLeft}function P6(e,t){var n=pn(e),r=Mr(e),i=n.visualViewport,a=r.clientWidth,s=r.clientHeight,o=0,u=0;if(i){a=i.width,s=i.height;var l=Q1();(l||!l&&t==="fixed")&&(o=i.offsetLeft,u=i.offsetTop)}return{width:a,height:s,x:o+i0(e),y:u}}function L6(e){var t,n=Mr(e),r=r0(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=Yr(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),s=Yr(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),o=-r.scrollLeft+i0(e),u=-r.scrollTop;return or(i||n).direction==="rtl"&&(o+=Yr(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:s,x:o,y:u}}function a0(e){var t=or(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function np(e){return["html","body","#document"].indexOf($n(e))>=0?e.ownerDocument.body:En(e)&&a0(e)?e:np(go(e))}function da(e,t){var n;t===void 0&&(t=[]);var r=np(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),a=pn(r),s=i?[a].concat(a.visualViewport||[],a0(r)?r:[]):r,o=t.concat(s);return i?o:o.concat(da(go(s)))}function Yu(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function O6(e,t){var n=ki(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Xc(e,t,n){return t===X1?Yu(P6(e,n)):Zr(t)?O6(t,n):Yu(L6(Mr(e)))}function _6(e){var t=da(go(e)),n=["absolute","fixed"].indexOf(or(e).position)>=0,r=n&&En(e)?Ya(e):e;return Zr(r)?t.filter(function(i){return Zr(i)&&Z1(i,r)&&$n(i)!=="body"}):[]}function B6(e,t,n,r){var i=t==="clippingParents"?_6(e):[].concat(t),a=[].concat(i,[n]),s=a[0],o=a.reduce(function(u,l){var c=Xc(e,l,r);return u.top=Yr(c.top,u.top),u.right=Gs(c.right,u.right),u.bottom=Gs(c.bottom,u.bottom),u.left=Yr(c.left,u.left),u},Xc(e,s,r));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function rp(e){var t=e.reference,n=e.element,r=e.placement,i=r?Un(r):null,a=r?Ii(r):null,s=t.x+t.width/2-n.width/2,o=t.y+t.height/2-n.height/2,u;switch(i){case nn:u={x:s,y:t.y-n.height};break;case An:u={x:s,y:t.y+t.height};break;case Cn:u={x:t.x+t.width,y:o};break;case rn:u={x:t.x-n.width,y:o};break;default:u={x:t.x,y:t.y}}var l=i?n0(i):null;if(l!=null){var c=l==="y"?"height":"width";switch(a){case Ai:u[l]=u[l]-(t[c]/2-n[c]/2);break;case Ra:u[l]=u[l]+(t[c]/2-n[c]/2);break}}return u}function Ma(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,s=a===void 0?e.strategy:a,o=n.boundary,u=o===void 0?r6:o,l=n.rootBoundary,c=l===void 0?X1:l,d=n.elementContext,p=d===void 0?Yi:d,f=n.altBoundary,b=f===void 0?!1:f,v=n.padding,E=v===void 0?0:v,y=ep(typeof E!="number"?E:tp(E,Wa)),w=p===Yi?i6:Yi,x=e.rects.popper,I=e.elements[b?w:p],M=B6(Zr(I)?I:I.contextElement||Mr(e.elements.popper),u,c,s),C=ki(e.elements.reference),H=rp({reference:C,element:x,placement:i}),z=Yu(Object.assign({},x,H)),V=p===Yi?z:C,L={top:M.top-V.top+y.top,bottom:V.bottom-M.bottom+y.bottom,left:M.left-V.left+y.left,right:V.right-M.right+y.right},$=e.modifiersData.offset;if(p===Yi&&$){var W=$[i];Object.keys(L).forEach(function(G){var q=[Cn,An].indexOf(G)>=0?1:-1,Y=[nn,An].indexOf(G)>=0?"y":"x";L[G]+=W[Y]*q})}return L}function F6(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,s=n.padding,o=n.flipVariations,u=n.allowedAutoPlacements,l=u===void 0?K1:u,c=Ii(r),d=c?o?$c:$c.filter(function(b){return Ii(b)===c}):Wa,p=d.filter(function(b){return l.indexOf(b)>=0});p.length===0&&(p=d);var f=p.reduce(function(b,v){return b[v]=Ma(e,{placement:v,boundary:i,rootBoundary:a,padding:s})[Un(v)],b},{});return Object.keys(f).sort(function(b,v){return f[b]-f[v]})}function H6(e){if(Un(e)===Jl)return[];var t=Bs(e);return[Gc(e),t,Gc(t)]}function z6(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0?!0:i,s=n.altAxis,o=s===void 0?!0:s,u=n.fallbackPlacements,l=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,b=f===void 0?!0:f,v=n.allowedAutoPlacements,E=t.options.placement,y=Un(E),w=y===E,x=u||(w||!b?[Bs(E)]:H6(E)),I=[E].concat(x).reduce(function(xe,Ie){return xe.concat(Un(Ie)===Jl?F6(t,{placement:Ie,boundary:c,rootBoundary:d,padding:l,flipVariations:b,allowedAutoPlacements:v}):Ie)},[]),M=t.rects.reference,C=t.rects.popper,H=new Map,z=!0,V=I[0],L=0;L=0,Y=q?"width":"height",Q=Ma(t,{placement:$,boundary:c,rootBoundary:d,altBoundary:p,padding:l}),ee=q?G?Cn:rn:G?An:nn;M[Y]>C[Y]&&(ee=Bs(ee));var de=Bs(ee),oe=[];if(a&&oe.push(Q[W]<=0),o&&oe.push(Q[ee]<=0,Q[de]<=0),oe.every(function(xe){return xe})){V=$,z=!1;break}H.set($,oe)}if(z)for(var R=b?3:1,Ce=function(Ie){var Be=I.find(function(je){var _e=H.get(je);if(_e)return _e.slice(0,Ie).every(function(qe){return qe})});if(Be)return V=Be,"break"},ve=R;ve>0;ve--){var B=Ce(ve);if(B==="break")break}t.placement!==V&&(t.modifiersData[r]._skip=!0,t.placement=V,t.reset=!0)}}const U6={name:"flip",enabled:!0,phase:"main",fn:z6,requiresIfExists:["offset"],data:{_skip:!1}};function Kc(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Qc(e){return[nn,Cn,An,rn].some(function(t){return e[t]>=0})}function V6(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,s=Ma(t,{elementContext:"reference"}),o=Ma(t,{altBoundary:!0}),u=Kc(s,r),l=Kc(o,i,a),c=Qc(u),d=Qc(l);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const j6={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:V6};function q6(e,t,n){var r=Un(e),i=[rn,nn].indexOf(r)>=0?-1:1,a=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=a[0],o=a[1];return s=s||0,o=(o||0)*i,[rn,Cn].indexOf(r)>=0?{x:o,y:s}:{x:s,y:o}}function $6(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,s=K1.reduce(function(c,d){return c[d]=q6(d,t.rects,a),c},{}),o=s[t.placement],u=o.x,l=o.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=s}const W6={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:$6};function Y6(e){var t=e.state,n=e.name;t.modifiersData[n]=rp({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}const G6={name:"popperOffsets",enabled:!0,phase:"read",fn:Y6,data:{}};function X6(e){return e==="x"?"y":"x"}function K6(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,s=n.altAxis,o=s===void 0?!1:s,u=n.boundary,l=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=p===void 0?!0:p,b=n.tetherOffset,v=b===void 0?0:b,E=Ma(t,{boundary:u,rootBoundary:l,padding:d,altBoundary:c}),y=Un(t.placement),w=Ii(t.placement),x=!w,I=n0(y),M=X6(I),C=t.modifiersData.popperOffsets,H=t.rects.reference,z=t.rects.popper,V=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,L=typeof V=="number"?{mainAxis:V,altAxis:V}:Object.assign({mainAxis:0,altAxis:0},V),$=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,W={x:0,y:0};if(C){if(a){var G,q=I==="y"?nn:rn,Y=I==="y"?An:Cn,Q=I==="y"?"height":"width",ee=C[I],de=ee+E[q],oe=ee-E[Y],R=f?-z[Q]/2:0,Ce=w===Ai?H[Q]:z[Q],ve=w===Ai?-z[Q]:-H[Q],B=t.elements.arrow,xe=f&&B?t0(B):{width:0,height:0},Ie=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:J1(),Be=Ie[q],je=Ie[Y],_e=ca(0,H[Q],xe[Q]),qe=x?H[Q]/2-R-_e-Be-L.mainAxis:Ce-_e-Be-L.mainAxis,Te=x?-H[Q]/2+R+_e+je+L.mainAxis:ve+_e+je+L.mainAxis,De=t.elements.arrow&&Ya(t.elements.arrow),Ne=De?I==="y"?De.clientTop||0:De.clientLeft||0:0,Qe=(G=$?.[I])!=null?G:0,Re=ee+qe-Qe-Ne,$e=ee+Te-Qe,wt=ca(f?Gs(de,Re):de,ee,f?Yr(oe,$e):oe);C[I]=wt,W[I]=wt-ee}if(o){var ht,st=I==="x"?nn:rn,Nt=I==="x"?An:Cn,ot=C[M],it=M==="y"?"height":"width",Ht=ot+E[st],Kt=ot-E[Nt],bt=[nn,rn].indexOf(y)!==-1,on=(ht=$?.[M])!=null?ht:0,K=bt?Ht:ot-H[it]-z[it]-on+L.altAxis,ie=bt?ot+H[it]+z[it]-on-L.altAxis:Kt,me=f&&bt?T6(K,ot,ie):ca(f?K:Ht,ot,f?ie:Kt);C[M]=me,W[M]=me-ot}t.modifiersData[r]=W}}const Q6={name:"preventOverflow",enabled:!0,phase:"main",fn:K6,requiresIfExists:["offset"]};function Z6(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function J6(e){return e===pn(e)||!En(e)?r0(e):Z6(e)}function e5(e){var t=e.getBoundingClientRect(),n=Ci(t.width)/e.offsetWidth||1,r=Ci(t.height)/e.offsetHeight||1;return n!==1||r!==1}function t5(e,t,n){n===void 0&&(n=!1);var r=En(t),i=En(t)&&e5(t),a=Mr(t),s=ki(e,i,n),o={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(($n(t)!=="body"||a0(a))&&(o=J6(t)),En(t)?(u=ki(t,!0),u.x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=i0(a))),{x:s.left+o.scrollLeft-u.x,y:s.top+o.scrollTop-u.y,width:s.width,height:s.height}}function n5(e){var t=new Map,n=new Set,r=[];e.forEach(function(a){t.set(a.name,a)});function i(a){n.add(a.name);var s=[].concat(a.requires||[],a.requiresIfExists||[]);s.forEach(function(o){if(!n.has(o)){var u=t.get(o);u&&i(u)}}),r.push(a)}return e.forEach(function(a){n.has(a.name)||i(a)}),r}function r5(e){var t=n5(e);return p6.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function i5(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function a5(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Zc={placement:"bottom",modifiers:[],strategy:"absolute"};function Jc(){for(var e=arguments.length,t=new Array(e),n=0;n=19?e?.props?.ref||null:e?.ref||null}function l5(e){return typeof e=="function"?e():e}const ap=P.forwardRef(function(t,n){const{children:r,container:i,disablePortal:a=!1}=t,[s,o]=P.useState(null),u=Vt(P.isValidElement(r)?Li(r):null,n);if(ar(()=>{a||o(l5(i)||document.body)},[i,a]),ar(()=>{if(s&&!a)return jc(n,s),()=>{jc(n,null)}},[n,s,a]),a){if(P.isValidElement(r)){const l={ref:u};return P.cloneElement(r,l)}return r}return s&&Ig.createPortal(r,s)});function c5(e){return gt("MuiPopper",e)}at("MuiPopper",["root"]);function d5(e,t){if(t==="ltr")return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function Gu(e){return typeof e=="function"?e():e}function h5(e){return e.nodeType!==void 0}const f5=e=>{const{classes:t}=e;return Ge({root:["root"]},c5,t)},p5={},m5=P.forwardRef(function(t,n){const{anchorEl:r,children:i,direction:a,disablePortal:s,modifiers:o,open:u,placement:l,popperOptions:c,popperRef:d,slotProps:p={},slots:f={},TransitionProps:b,ownerState:v,...E}=t,y=P.useRef(null),w=Vt(y,n),x=P.useRef(null),I=Vt(x,d),M=P.useRef(I);ar(()=>{M.current=I},[I]),P.useImperativeHandle(d,()=>x.current,[]);const C=d5(l,a),[H,z]=P.useState(C),[V,L]=P.useState(Gu(r));P.useEffect(()=>{x.current&&x.current.forceUpdate()}),P.useEffect(()=>{r&&L(Gu(r))},[r]),ar(()=>{if(!V||!u)return;const Y=de=>{z(de.placement)};let Q=[{name:"preventOverflow",options:{altBoundary:s}},{name:"flip",options:{altBoundary:s}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:de})=>{Y(de)}}];o!=null&&(Q=Q.concat(o)),c&&c.modifiers!=null&&(Q=Q.concat(c.modifiers));const ee=u5(V,y.current,{placement:C,...c,modifiers:Q});return M.current(ee),()=>{ee.destroy(),M.current(null)}},[V,s,o,u,c,C]);const $={placement:H};b!==null&&($.TransitionProps=b);const W=f5(t),G=f.root??"div",q=ip({elementType:G,externalSlotProps:p.root,externalForwardedProps:E,additionalProps:{role:"tooltip",ref:w},ownerState:t,className:W.root});return k.jsx(G,{...q,children:typeof i=="function"?i($):i})}),g5=P.forwardRef(function(t,n){const{anchorEl:r,children:i,container:a,direction:s="ltr",disablePortal:o=!1,keepMounted:u=!1,modifiers:l,open:c,placement:d="bottom",popperOptions:p=p5,popperRef:f,style:b,transition:v=!1,slotProps:E={},slots:y={},...w}=t,[x,I]=P.useState(!0),M=()=>{I(!1)},C=()=>{I(!0)};if(!u&&!c&&(!v||x))return null;let H;if(a)H=a;else if(r){const L=Gu(r);H=L&&h5(L)?fn(L).body:fn(null).body}const z=!c&&u&&(!v||x)?"none":void 0,V=v?{in:c,onEnter:M,onExited:C}:void 0;return k.jsx(ap,{disablePortal:o,container:H,children:k.jsx(m5,{anchorEl:r,direction:s,disablePortal:o,modifiers:l,ref:n,open:v?!x:c,placement:d,popperOptions:p,popperRef:f,slotProps:E,slots:y,...w,style:{position:"fixed",top:0,left:0,display:z,...b},TransitionProps:V,children:i})})}),b5=ue(g5,{name:"MuiPopper",slot:"Root"})({}),sp=P.forwardRef(function(t,n){const r=Gl(),i=Ke({props:t,name:"MuiPopper"}),{anchorEl:a,component:s,components:o,componentsProps:u,container:l,disablePortal:c,keepMounted:d,modifiers:p,open:f,placement:b,popperOptions:v,popperRef:E,transition:y,slots:w,slotProps:x,...I}=i,M=w?.root??o?.Root,C={anchorEl:a,container:l,disablePortal:c,keepMounted:d,modifiers:p,open:f,placement:b,popperOptions:v,popperRef:E,transition:y,...I};return k.jsx(b5,{as:s,direction:r?"rtl":"ltr",slots:{root:M},slotProps:x??u,...C,ref:n})});function fs(e){return parseInt(e,10)||0}const y5={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function v5(e){for(const t in e)return!1;return!0}function ed(e){return v5(e)||e.outerHeightStyle===0&&!e.overflowing}const T5=P.forwardRef(function(t,n){const{onChange:r,maxRows:i,minRows:a=1,style:s,value:o,...u}=t,{current:l}=P.useRef(o!=null),c=P.useRef(null),d=Vt(n,c),p=P.useRef(null),f=P.useRef(null),b=P.useCallback(()=>{const x=c.current,I=f.current;if(!x||!I)return;const C=sr(x).getComputedStyle(x);if(C.width==="0px")return{outerHeightStyle:0,overflowing:!1};I.style.width=C.width,I.value=x.value||t.placeholder||"x",I.value.slice(-1)===` +import{z as vg,D as Tg,r as P,E as xg,F as Eg,j as k,b as Ve,_ as Sg,R as cs,G as wg,H as ds,J as H1,K as Ag,N as Cg,l as Vt,O as kg,P as ar,Q as Ig,a as gt,g as at,e as Ge,U as Gl,u as Ke,s as ue,V as ka,W as Ng,X as Ia,d as St,Y as Rg,m as ct,Z as Na,$ as z1,a0 as Mg,a1 as qa,x as Et,a2 as Dg,a3 as Pg,a4 as Lg,a5 as Og,a6 as mo,w as Xl,a7 as _g,a8 as Bg,T as Ye,v as Wn,a9 as Fg,aa as Hg,ab as Kl,i as Ql,ac as aa,ad as zg,ae as Oc,B as Ug,af as _c,ag as Bc,ah as Vg,ai as Ln,aj as jg,ak as U1,al as V1,am as qg,an as Fc,ao as $g,ap as Wg,aq as Yg,ar as Hc,k as mn,as as Gg,at as zc,au as Xg,av as Uc,aw as _s,I as Qr,ax as j1,q as q1,ay as $1,o as $a,n as wi,S as Xe,y as Zl,az as W1}from"./App-DvpWdRS1.js";function Kg(e={}){const{themeId:t,defaultTheme:n,defaultClassName:r="MuiBox-root",generateClassName:i}=e,a=vg("div",{shouldForwardProp:o=>o!=="theme"&&o!=="sx"&&o!=="as"})(Tg);return P.forwardRef(function(u,l){const c=xg(n),{className:d,component:p="div",...f}=Eg(u);return k.jsx(a,{as:p,ref:l,className:Ve(d,i?i(r):r),theme:t&&c[t]||c,...f})})}function Qg(e,t){return P.isValidElement(e)&&t.indexOf(e.type.muiName??e.type?._payload?.value?.muiName)!==-1}function Zg(e){return String(e).match(/[\d.\-+]*\s*(.*)/)[1]||""}function Jg(e){return parseFloat(e)}function Vc(...e){return e.reduce((t,n)=>n==null?t:function(...i){t.apply(this,i),n.apply(this,i)},()=>{})}function Y1(e,t=166){let n;function r(...i){const a=()=>{e.apply(this,i)};clearTimeout(n),n=setTimeout(a,t)}return r.clear=()=>{clearTimeout(n)},r}function fn(e){return e&&e.ownerDocument||document}function sr(e){return fn(e).defaultView||window}function jc(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function qu(e){const{controlled:t,default:n,name:r,state:i="value"}=e,{current:a}=P.useRef(t!==void 0),[s,o]=P.useState(n),u=a?t:s,l=P.useCallback(c=>{a||o(c)},[]);return[u,l]}function e6(e,t){const n=e.charCodeAt(2);return e[0]==="o"&&e[1]==="n"&&n>=65&&n<=90&&typeof t=="function"}function t6(e,t){if(!e)return t;function n(s,o){const u={};return Object.keys(o).forEach(l=>{e6(l,o[l])&&typeof s[l]=="function"&&(u[l]=(...c)=>{s[l](...c),o[l](...c)})}),u}if(typeof e=="function"||typeof t=="function")return s=>{const o=typeof t=="function"?t(s):t,u=typeof e=="function"?e({...s,...o}):e,l=Ve(s?.className,o?.className,u?.className),c=n(u,o);return{...o,...u,...c,...!!l&&{className:l},...o?.style&&u?.style&&{style:{...o.style,...u.style}},...o?.sx&&u?.sx&&{sx:[...Array.isArray(o.sx)?o.sx:[o.sx],...Array.isArray(u.sx)?u.sx:[u.sx]]}}};const r=t,i=n(e,r),a=Ve(r?.className,e?.className);return{...t,...e,...i,...!!a&&{className:a},...r?.style&&e?.style&&{style:{...r.style,...e.style}},...r?.sx&&e?.sx&&{sx:[...Array.isArray(r.sx)?r.sx:[r.sx],...Array.isArray(e.sx)?e.sx:[e.sx]]}}}const qc={disabled:!1};var n6=function(t){return t.scrollTop},sa="unmounted",Ur="exited",Vr="entering",ci="entered",$u="exiting",Yn=(function(e){Sg(t,e);function t(r,i){var a;a=e.call(this,r,i)||this;var s=i,o=s&&!s.isMounting?r.enter:r.appear,u;return a.appearStatus=null,r.in?o?(u=Ur,a.appearStatus=Vr):u=ci:r.unmountOnExit||r.mountOnEnter?u=sa:u=Ur,a.state={status:u},a.nextCallback=null,a}t.getDerivedStateFromProps=function(i,a){var s=i.in;return s&&a.status===sa?{status:Ur}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(i){var a=null;if(i!==this.props){var s=this.state.status;this.props.in?s!==Vr&&s!==ci&&(a=Vr):(s===Vr||s===ci)&&(a=$u)}this.updateStatus(!1,a)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var i=this.props.timeout,a,s,o;return a=s=o=i,i!=null&&typeof i!="number"&&(a=i.exit,s=i.enter,o=i.appear!==void 0?i.appear:s),{exit:a,enter:s,appear:o}},n.updateStatus=function(i,a){if(i===void 0&&(i=!1),a!==null)if(this.cancelNextCallback(),a===Vr){if(this.props.unmountOnExit||this.props.mountOnEnter){var s=this.props.nodeRef?this.props.nodeRef.current:cs.findDOMNode(this);s&&n6(s)}this.performEnter(i)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Ur&&this.setState({status:sa})},n.performEnter=function(i){var a=this,s=this.props.enter,o=this.context?this.context.isMounting:i,u=this.props.nodeRef?[o]:[cs.findDOMNode(this),o],l=u[0],c=u[1],d=this.getTimeouts(),p=o?d.appear:d.enter;if(!i&&!s||qc.disabled){this.safeSetState({status:ci},function(){a.props.onEntered(l)});return}this.props.onEnter(l,c),this.safeSetState({status:Vr},function(){a.props.onEntering(l,c),a.onTransitionEnd(p,function(){a.safeSetState({status:ci},function(){a.props.onEntered(l,c)})})})},n.performExit=function(){var i=this,a=this.props.exit,s=this.getTimeouts(),o=this.props.nodeRef?void 0:cs.findDOMNode(this);if(!a||qc.disabled){this.safeSetState({status:Ur},function(){i.props.onExited(o)});return}this.props.onExit(o),this.safeSetState({status:$u},function(){i.props.onExiting(o),i.onTransitionEnd(s.exit,function(){i.safeSetState({status:Ur},function(){i.props.onExited(o)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(i,a){a=this.setNextCallback(a),this.setState(i,a)},n.setNextCallback=function(i){var a=this,s=!0;return this.nextCallback=function(o){s&&(s=!1,a.nextCallback=null,i(o))},this.nextCallback.cancel=function(){s=!1},this.nextCallback},n.onTransitionEnd=function(i,a){this.setNextCallback(a);var s=this.props.nodeRef?this.props.nodeRef.current:cs.findDOMNode(this),o=i==null&&!this.props.addEndListener;if(!s||o){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var u=this.props.nodeRef?[this.nextCallback]:[s,this.nextCallback],l=u[0],c=u[1];this.props.addEndListener(l,c)}i!=null&&setTimeout(this.nextCallback,i)},n.render=function(){var i=this.state.status;if(i===sa)return null;var a=this.props,s=a.children;a.in,a.mountOnEnter,a.unmountOnExit,a.appear,a.enter,a.exit,a.timeout,a.addEndListener,a.onEnter,a.onEntering,a.onEntered,a.onExit,a.onExiting,a.onExited,a.nodeRef;var o=wg(a,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return ds.createElement(H1.Provider,{value:null},typeof s=="function"?s(i,o):ds.cloneElement(ds.Children.only(s),o))},t})(ds.Component);Yn.contextType=H1;Yn.propTypes={};function si(){}Yn.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:si,onEntering:si,onEntered:si,onExit:si,onExiting:si,onExited:si};Yn.UNMOUNTED=sa;Yn.EXITED=Ur;Yn.ENTERING=Vr;Yn.ENTERED=ci;Yn.EXITING=$u;const G1=e=>e.scrollTop;function Ys(e,t){const{timeout:n,easing:r,style:i={}}=e;return{duration:i.transitionDuration??(typeof n=="number"?n:n[t.mode]||0),easing:i.transitionTimingFunction??(typeof r=="object"?r[t.mode]:r),delay:i.transitionDelay}}var nn="top",An="bottom",Cn="right",rn="left",Jl="auto",Wa=[nn,An,Cn,rn],Ai="start",Ra="end",r6="clippingParents",X1="viewport",Yi="popper",i6="reference",$c=Wa.reduce(function(e,t){return e.concat([t+"-"+Ai,t+"-"+Ra])},[]),K1=[].concat(Wa,[Jl]).reduce(function(e,t){return e.concat([t,t+"-"+Ai,t+"-"+Ra])},[]),a6="beforeRead",s6="read",o6="afterRead",u6="beforeMain",l6="main",c6="afterMain",d6="beforeWrite",h6="write",f6="afterWrite",p6=[a6,s6,o6,u6,l6,c6,d6,h6,f6];function $n(e){return e?(e.nodeName||"").toLowerCase():null}function pn(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Zr(e){var t=pn(e).Element;return e instanceof t||e instanceof Element}function En(e){var t=pn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function e0(e){if(typeof ShadowRoot>"u")return!1;var t=pn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function m6(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},a=t.elements[n];!En(a)||!$n(a)||(Object.assign(a.style,r),Object.keys(i).forEach(function(s){var o=i[s];o===!1?a.removeAttribute(s):a.setAttribute(s,o===!0?"":o)}))})}function g6(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],a=t.attributes[r]||{},s=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),o=s.reduce(function(u,l){return u[l]="",u},{});!En(i)||!$n(i)||(Object.assign(i.style,o),Object.keys(a).forEach(function(u){i.removeAttribute(u)}))})}}const b6={name:"applyStyles",enabled:!0,phase:"write",fn:m6,effect:g6,requires:["computeStyles"]};function Un(e){return e.split("-")[0]}var Yr=Math.max,Gs=Math.min,Ci=Math.round;function Wu(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Q1(){return!/^((?!chrome|android).)*safari/i.test(Wu())}function ki(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&En(e)&&(i=e.offsetWidth>0&&Ci(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Ci(r.height)/e.offsetHeight||1);var s=Zr(e)?pn(e):window,o=s.visualViewport,u=!Q1()&&n,l=(r.left+(u&&o?o.offsetLeft:0))/i,c=(r.top+(u&&o?o.offsetTop:0))/a,d=r.width/i,p=r.height/a;return{width:d,height:p,top:c,right:l+d,bottom:c+p,left:l,x:l,y:c}}function t0(e){var t=ki(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Z1(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&e0(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function or(e){return pn(e).getComputedStyle(e)}function y6(e){return["table","td","th"].indexOf($n(e))>=0}function Mr(e){return((Zr(e)?e.ownerDocument:e.document)||window.document).documentElement}function go(e){return $n(e)==="html"?e:e.assignedSlot||e.parentNode||(e0(e)?e.host:null)||Mr(e)}function Wc(e){return!En(e)||or(e).position==="fixed"?null:e.offsetParent}function v6(e){var t=/firefox/i.test(Wu()),n=/Trident/i.test(Wu());if(n&&En(e)){var r=or(e);if(r.position==="fixed")return null}var i=go(e);for(e0(i)&&(i=i.host);En(i)&&["html","body"].indexOf($n(i))<0;){var a=or(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function Ya(e){for(var t=pn(e),n=Wc(e);n&&y6(n)&&or(n).position==="static";)n=Wc(n);return n&&($n(n)==="html"||$n(n)==="body"&&or(n).position==="static")?t:n||v6(e)||t}function n0(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ca(e,t,n){return Yr(e,Gs(t,n))}function T6(e,t,n){var r=ca(e,t,n);return r>n?n:r}function J1(){return{top:0,right:0,bottom:0,left:0}}function ep(e){return Object.assign({},J1(),e)}function tp(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var x6=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,ep(typeof t!="number"?t:tp(t,Wa))};function E6(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,s=n.modifiersData.popperOffsets,o=Un(n.placement),u=n0(o),l=[rn,Cn].indexOf(o)>=0,c=l?"height":"width";if(!(!a||!s)){var d=x6(i.padding,n),p=t0(a),f=u==="y"?nn:rn,b=u==="y"?An:Cn,v=n.rects.reference[c]+n.rects.reference[u]-s[u]-n.rects.popper[c],E=s[u]-n.rects.reference[u],y=Ya(a),w=y?u==="y"?y.clientHeight||0:y.clientWidth||0:0,x=v/2-E/2,I=d[f],M=w-p[c]-d[b],C=w/2-p[c]/2+x,H=ca(I,C,M),z=u;n.modifiersData[r]=(t={},t[z]=H,t.centerOffset=H-C,t)}}function S6(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||Z1(t.elements.popper,i)&&(t.elements.arrow=i))}const w6={name:"arrow",enabled:!0,phase:"main",fn:E6,effect:S6,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ii(e){return e.split("-")[1]}var A6={top:"auto",right:"auto",bottom:"auto",left:"auto"};function C6(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Ci(n*i)/i||0,y:Ci(r*i)/i||0}}function Yc(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,s=e.offsets,o=e.position,u=e.gpuAcceleration,l=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=s.x,f=p===void 0?0:p,b=s.y,v=b===void 0?0:b,E=typeof c=="function"?c({x:f,y:v}):{x:f,y:v};f=E.x,v=E.y;var y=s.hasOwnProperty("x"),w=s.hasOwnProperty("y"),x=rn,I=nn,M=window;if(l){var C=Ya(n),H="clientHeight",z="clientWidth";if(C===pn(n)&&(C=Mr(n),or(C).position!=="static"&&o==="absolute"&&(H="scrollHeight",z="scrollWidth")),C=C,i===nn||(i===rn||i===Cn)&&a===Ra){I=An;var V=d&&C===M&&M.visualViewport?M.visualViewport.height:C[H];v-=V-r.height,v*=u?1:-1}if(i===rn||(i===nn||i===An)&&a===Ra){x=Cn;var L=d&&C===M&&M.visualViewport?M.visualViewport.width:C[z];f-=L-r.width,f*=u?1:-1}}var $=Object.assign({position:o},l&&A6),W=c===!0?C6({x:f,y:v},pn(n)):{x:f,y:v};if(f=W.x,v=W.y,u){var G;return Object.assign({},$,(G={},G[I]=w?"0":"",G[x]=y?"0":"",G.transform=(M.devicePixelRatio||1)<=1?"translate("+f+"px, "+v+"px)":"translate3d("+f+"px, "+v+"px, 0)",G))}return Object.assign({},$,(t={},t[I]=w?v+"px":"",t[x]=y?f+"px":"",t.transform="",t))}function k6(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,s=a===void 0?!0:a,o=n.roundOffsets,u=o===void 0?!0:o,l={placement:Un(t.placement),variation:Ii(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Yc(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:u})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Yc(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const I6={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:k6,data:{}};var hs={passive:!0};function N6(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,s=r.resize,o=s===void 0?!0:s,u=pn(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(c){c.addEventListener("scroll",n.update,hs)}),o&&u.addEventListener("resize",n.update,hs),function(){a&&l.forEach(function(c){c.removeEventListener("scroll",n.update,hs)}),o&&u.removeEventListener("resize",n.update,hs)}}const R6={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:N6,data:{}};var M6={left:"right",right:"left",bottom:"top",top:"bottom"};function Bs(e){return e.replace(/left|right|bottom|top/g,function(t){return M6[t]})}var D6={start:"end",end:"start"};function Gc(e){return e.replace(/start|end/g,function(t){return D6[t]})}function r0(e){var t=pn(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function i0(e){return ki(Mr(e)).left+r0(e).scrollLeft}function P6(e,t){var n=pn(e),r=Mr(e),i=n.visualViewport,a=r.clientWidth,s=r.clientHeight,o=0,u=0;if(i){a=i.width,s=i.height;var l=Q1();(l||!l&&t==="fixed")&&(o=i.offsetLeft,u=i.offsetTop)}return{width:a,height:s,x:o+i0(e),y:u}}function L6(e){var t,n=Mr(e),r=r0(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=Yr(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),s=Yr(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),o=-r.scrollLeft+i0(e),u=-r.scrollTop;return or(i||n).direction==="rtl"&&(o+=Yr(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:s,x:o,y:u}}function a0(e){var t=or(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function np(e){return["html","body","#document"].indexOf($n(e))>=0?e.ownerDocument.body:En(e)&&a0(e)?e:np(go(e))}function da(e,t){var n;t===void 0&&(t=[]);var r=np(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),a=pn(r),s=i?[a].concat(a.visualViewport||[],a0(r)?r:[]):r,o=t.concat(s);return i?o:o.concat(da(go(s)))}function Yu(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function O6(e,t){var n=ki(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Xc(e,t,n){return t===X1?Yu(P6(e,n)):Zr(t)?O6(t,n):Yu(L6(Mr(e)))}function _6(e){var t=da(go(e)),n=["absolute","fixed"].indexOf(or(e).position)>=0,r=n&&En(e)?Ya(e):e;return Zr(r)?t.filter(function(i){return Zr(i)&&Z1(i,r)&&$n(i)!=="body"}):[]}function B6(e,t,n,r){var i=t==="clippingParents"?_6(e):[].concat(t),a=[].concat(i,[n]),s=a[0],o=a.reduce(function(u,l){var c=Xc(e,l,r);return u.top=Yr(c.top,u.top),u.right=Gs(c.right,u.right),u.bottom=Gs(c.bottom,u.bottom),u.left=Yr(c.left,u.left),u},Xc(e,s,r));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function rp(e){var t=e.reference,n=e.element,r=e.placement,i=r?Un(r):null,a=r?Ii(r):null,s=t.x+t.width/2-n.width/2,o=t.y+t.height/2-n.height/2,u;switch(i){case nn:u={x:s,y:t.y-n.height};break;case An:u={x:s,y:t.y+t.height};break;case Cn:u={x:t.x+t.width,y:o};break;case rn:u={x:t.x-n.width,y:o};break;default:u={x:t.x,y:t.y}}var l=i?n0(i):null;if(l!=null){var c=l==="y"?"height":"width";switch(a){case Ai:u[l]=u[l]-(t[c]/2-n[c]/2);break;case Ra:u[l]=u[l]+(t[c]/2-n[c]/2);break}}return u}function Ma(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,s=a===void 0?e.strategy:a,o=n.boundary,u=o===void 0?r6:o,l=n.rootBoundary,c=l===void 0?X1:l,d=n.elementContext,p=d===void 0?Yi:d,f=n.altBoundary,b=f===void 0?!1:f,v=n.padding,E=v===void 0?0:v,y=ep(typeof E!="number"?E:tp(E,Wa)),w=p===Yi?i6:Yi,x=e.rects.popper,I=e.elements[b?w:p],M=B6(Zr(I)?I:I.contextElement||Mr(e.elements.popper),u,c,s),C=ki(e.elements.reference),H=rp({reference:C,element:x,placement:i}),z=Yu(Object.assign({},x,H)),V=p===Yi?z:C,L={top:M.top-V.top+y.top,bottom:V.bottom-M.bottom+y.bottom,left:M.left-V.left+y.left,right:V.right-M.right+y.right},$=e.modifiersData.offset;if(p===Yi&&$){var W=$[i];Object.keys(L).forEach(function(G){var q=[Cn,An].indexOf(G)>=0?1:-1,Y=[nn,An].indexOf(G)>=0?"y":"x";L[G]+=W[Y]*q})}return L}function F6(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,s=n.padding,o=n.flipVariations,u=n.allowedAutoPlacements,l=u===void 0?K1:u,c=Ii(r),d=c?o?$c:$c.filter(function(b){return Ii(b)===c}):Wa,p=d.filter(function(b){return l.indexOf(b)>=0});p.length===0&&(p=d);var f=p.reduce(function(b,v){return b[v]=Ma(e,{placement:v,boundary:i,rootBoundary:a,padding:s})[Un(v)],b},{});return Object.keys(f).sort(function(b,v){return f[b]-f[v]})}function H6(e){if(Un(e)===Jl)return[];var t=Bs(e);return[Gc(e),t,Gc(t)]}function z6(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0?!0:i,s=n.altAxis,o=s===void 0?!0:s,u=n.fallbackPlacements,l=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,b=f===void 0?!0:f,v=n.allowedAutoPlacements,E=t.options.placement,y=Un(E),w=y===E,x=u||(w||!b?[Bs(E)]:H6(E)),I=[E].concat(x).reduce(function(xe,Ie){return xe.concat(Un(Ie)===Jl?F6(t,{placement:Ie,boundary:c,rootBoundary:d,padding:l,flipVariations:b,allowedAutoPlacements:v}):Ie)},[]),M=t.rects.reference,C=t.rects.popper,H=new Map,z=!0,V=I[0],L=0;L=0,Y=q?"width":"height",Q=Ma(t,{placement:$,boundary:c,rootBoundary:d,altBoundary:p,padding:l}),ee=q?G?Cn:rn:G?An:nn;M[Y]>C[Y]&&(ee=Bs(ee));var de=Bs(ee),oe=[];if(a&&oe.push(Q[W]<=0),o&&oe.push(Q[ee]<=0,Q[de]<=0),oe.every(function(xe){return xe})){V=$,z=!1;break}H.set($,oe)}if(z)for(var R=b?3:1,Ce=function(Ie){var Be=I.find(function(je){var _e=H.get(je);if(_e)return _e.slice(0,Ie).every(function(qe){return qe})});if(Be)return V=Be,"break"},ve=R;ve>0;ve--){var B=Ce(ve);if(B==="break")break}t.placement!==V&&(t.modifiersData[r]._skip=!0,t.placement=V,t.reset=!0)}}const U6={name:"flip",enabled:!0,phase:"main",fn:z6,requiresIfExists:["offset"],data:{_skip:!1}};function Kc(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Qc(e){return[nn,Cn,An,rn].some(function(t){return e[t]>=0})}function V6(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,s=Ma(t,{elementContext:"reference"}),o=Ma(t,{altBoundary:!0}),u=Kc(s,r),l=Kc(o,i,a),c=Qc(u),d=Qc(l);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const j6={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:V6};function q6(e,t,n){var r=Un(e),i=[rn,nn].indexOf(r)>=0?-1:1,a=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=a[0],o=a[1];return s=s||0,o=(o||0)*i,[rn,Cn].indexOf(r)>=0?{x:o,y:s}:{x:s,y:o}}function $6(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,s=K1.reduce(function(c,d){return c[d]=q6(d,t.rects,a),c},{}),o=s[t.placement],u=o.x,l=o.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=s}const W6={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:$6};function Y6(e){var t=e.state,n=e.name;t.modifiersData[n]=rp({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}const G6={name:"popperOffsets",enabled:!0,phase:"read",fn:Y6,data:{}};function X6(e){return e==="x"?"y":"x"}function K6(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,s=n.altAxis,o=s===void 0?!1:s,u=n.boundary,l=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=p===void 0?!0:p,b=n.tetherOffset,v=b===void 0?0:b,E=Ma(t,{boundary:u,rootBoundary:l,padding:d,altBoundary:c}),y=Un(t.placement),w=Ii(t.placement),x=!w,I=n0(y),M=X6(I),C=t.modifiersData.popperOffsets,H=t.rects.reference,z=t.rects.popper,V=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,L=typeof V=="number"?{mainAxis:V,altAxis:V}:Object.assign({mainAxis:0,altAxis:0},V),$=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,W={x:0,y:0};if(C){if(a){var G,q=I==="y"?nn:rn,Y=I==="y"?An:Cn,Q=I==="y"?"height":"width",ee=C[I],de=ee+E[q],oe=ee-E[Y],R=f?-z[Q]/2:0,Ce=w===Ai?H[Q]:z[Q],ve=w===Ai?-z[Q]:-H[Q],B=t.elements.arrow,xe=f&&B?t0(B):{width:0,height:0},Ie=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:J1(),Be=Ie[q],je=Ie[Y],_e=ca(0,H[Q],xe[Q]),qe=x?H[Q]/2-R-_e-Be-L.mainAxis:Ce-_e-Be-L.mainAxis,Te=x?-H[Q]/2+R+_e+je+L.mainAxis:ve+_e+je+L.mainAxis,De=t.elements.arrow&&Ya(t.elements.arrow),Ne=De?I==="y"?De.clientTop||0:De.clientLeft||0:0,Qe=(G=$?.[I])!=null?G:0,Re=ee+qe-Qe-Ne,$e=ee+Te-Qe,wt=ca(f?Gs(de,Re):de,ee,f?Yr(oe,$e):oe);C[I]=wt,W[I]=wt-ee}if(o){var ht,st=I==="x"?nn:rn,Nt=I==="x"?An:Cn,ot=C[M],it=M==="y"?"height":"width",Ht=ot+E[st],Kt=ot-E[Nt],bt=[nn,rn].indexOf(y)!==-1,on=(ht=$?.[M])!=null?ht:0,K=bt?Ht:ot-H[it]-z[it]-on+L.altAxis,ie=bt?ot+H[it]+z[it]-on-L.altAxis:Kt,me=f&&bt?T6(K,ot,ie):ca(f?K:Ht,ot,f?ie:Kt);C[M]=me,W[M]=me-ot}t.modifiersData[r]=W}}const Q6={name:"preventOverflow",enabled:!0,phase:"main",fn:K6,requiresIfExists:["offset"]};function Z6(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function J6(e){return e===pn(e)||!En(e)?r0(e):Z6(e)}function e5(e){var t=e.getBoundingClientRect(),n=Ci(t.width)/e.offsetWidth||1,r=Ci(t.height)/e.offsetHeight||1;return n!==1||r!==1}function t5(e,t,n){n===void 0&&(n=!1);var r=En(t),i=En(t)&&e5(t),a=Mr(t),s=ki(e,i,n),o={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(($n(t)!=="body"||a0(a))&&(o=J6(t)),En(t)?(u=ki(t,!0),u.x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=i0(a))),{x:s.left+o.scrollLeft-u.x,y:s.top+o.scrollTop-u.y,width:s.width,height:s.height}}function n5(e){var t=new Map,n=new Set,r=[];e.forEach(function(a){t.set(a.name,a)});function i(a){n.add(a.name);var s=[].concat(a.requires||[],a.requiresIfExists||[]);s.forEach(function(o){if(!n.has(o)){var u=t.get(o);u&&i(u)}}),r.push(a)}return e.forEach(function(a){n.has(a.name)||i(a)}),r}function r5(e){var t=n5(e);return p6.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function i5(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function a5(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Zc={placement:"bottom",modifiers:[],strategy:"absolute"};function Jc(){for(var e=arguments.length,t=new Array(e),n=0;n=19?e?.props?.ref||null:e?.ref||null}function l5(e){return typeof e=="function"?e():e}const ap=P.forwardRef(function(t,n){const{children:r,container:i,disablePortal:a=!1}=t,[s,o]=P.useState(null),u=Vt(P.isValidElement(r)?Li(r):null,n);if(ar(()=>{a||o(l5(i)||document.body)},[i,a]),ar(()=>{if(s&&!a)return jc(n,s),()=>{jc(n,null)}},[n,s,a]),a){if(P.isValidElement(r)){const l={ref:u};return P.cloneElement(r,l)}return r}return s&&Ig.createPortal(r,s)});function c5(e){return gt("MuiPopper",e)}at("MuiPopper",["root"]);function d5(e,t){if(t==="ltr")return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function Gu(e){return typeof e=="function"?e():e}function h5(e){return e.nodeType!==void 0}const f5=e=>{const{classes:t}=e;return Ge({root:["root"]},c5,t)},p5={},m5=P.forwardRef(function(t,n){const{anchorEl:r,children:i,direction:a,disablePortal:s,modifiers:o,open:u,placement:l,popperOptions:c,popperRef:d,slotProps:p={},slots:f={},TransitionProps:b,ownerState:v,...E}=t,y=P.useRef(null),w=Vt(y,n),x=P.useRef(null),I=Vt(x,d),M=P.useRef(I);ar(()=>{M.current=I},[I]),P.useImperativeHandle(d,()=>x.current,[]);const C=d5(l,a),[H,z]=P.useState(C),[V,L]=P.useState(Gu(r));P.useEffect(()=>{x.current&&x.current.forceUpdate()}),P.useEffect(()=>{r&&L(Gu(r))},[r]),ar(()=>{if(!V||!u)return;const Y=de=>{z(de.placement)};let Q=[{name:"preventOverflow",options:{altBoundary:s}},{name:"flip",options:{altBoundary:s}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:de})=>{Y(de)}}];o!=null&&(Q=Q.concat(o)),c&&c.modifiers!=null&&(Q=Q.concat(c.modifiers));const ee=u5(V,y.current,{placement:C,...c,modifiers:Q});return M.current(ee),()=>{ee.destroy(),M.current(null)}},[V,s,o,u,c,C]);const $={placement:H};b!==null&&($.TransitionProps=b);const W=f5(t),G=f.root??"div",q=ip({elementType:G,externalSlotProps:p.root,externalForwardedProps:E,additionalProps:{role:"tooltip",ref:w},ownerState:t,className:W.root});return k.jsx(G,{...q,children:typeof i=="function"?i($):i})}),g5=P.forwardRef(function(t,n){const{anchorEl:r,children:i,container:a,direction:s="ltr",disablePortal:o=!1,keepMounted:u=!1,modifiers:l,open:c,placement:d="bottom",popperOptions:p=p5,popperRef:f,style:b,transition:v=!1,slotProps:E={},slots:y={},...w}=t,[x,I]=P.useState(!0),M=()=>{I(!1)},C=()=>{I(!0)};if(!u&&!c&&(!v||x))return null;let H;if(a)H=a;else if(r){const L=Gu(r);H=L&&h5(L)?fn(L).body:fn(null).body}const z=!c&&u&&(!v||x)?"none":void 0,V=v?{in:c,onEnter:M,onExited:C}:void 0;return k.jsx(ap,{disablePortal:o,container:H,children:k.jsx(m5,{anchorEl:r,direction:s,disablePortal:o,modifiers:l,ref:n,open:v?!x:c,placement:d,popperOptions:p,popperRef:f,slotProps:E,slots:y,...w,style:{position:"fixed",top:0,left:0,display:z,...b},TransitionProps:V,children:i})})}),b5=ue(g5,{name:"MuiPopper",slot:"Root"})({}),sp=P.forwardRef(function(t,n){const r=Gl(),i=Ke({props:t,name:"MuiPopper"}),{anchorEl:a,component:s,components:o,componentsProps:u,container:l,disablePortal:c,keepMounted:d,modifiers:p,open:f,placement:b,popperOptions:v,popperRef:E,transition:y,slots:w,slotProps:x,...I}=i,M=w?.root??o?.Root,C={anchorEl:a,container:l,disablePortal:c,keepMounted:d,modifiers:p,open:f,placement:b,popperOptions:v,popperRef:E,transition:y,...I};return k.jsx(b5,{as:s,direction:r?"rtl":"ltr",slots:{root:M},slotProps:x??u,...C,ref:n})});function fs(e){return parseInt(e,10)||0}const y5={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function v5(e){for(const t in e)return!1;return!0}function ed(e){return v5(e)||e.outerHeightStyle===0&&!e.overflowing}const T5=P.forwardRef(function(t,n){const{onChange:r,maxRows:i,minRows:a=1,style:s,value:o,...u}=t,{current:l}=P.useRef(o!=null),c=P.useRef(null),d=Vt(n,c),p=P.useRef(null),f=P.useRef(null),b=P.useCallback(()=>{const x=c.current,I=f.current;if(!x||!I)return;const C=sr(x).getComputedStyle(x);if(C.width==="0px")return{outerHeightStyle:0,overflowing:!1};I.style.width=C.width,I.value=x.value||t.placeholder||"x",I.value.slice(-1)===` `&&(I.value+=" ");const H=C.boxSizing,z=fs(C.paddingBottom)+fs(C.paddingTop),V=fs(C.borderBottomWidth)+fs(C.borderTopWidth),L=I.scrollHeight;I.value="x";const $=I.scrollHeight;let W=L;a&&(W=Math.max(Number(a)*$,W)),i&&(W=Math.min(Number(i)*$,W)),W=Math.max(W,$);const G=W+(H==="border-box"?z+V:0),q=Math.abs(W-L)<=1;return{outerHeightStyle:G,overflowing:q}},[i,a,t.placeholder]),v=ka(()=>{const x=c.current,I=b();if(!x||!I||ed(I))return!1;const M=I.outerHeightStyle;return p.current!=null&&p.current!==M}),E=P.useCallback(()=>{const x=c.current,I=b();if(!x||!I||ed(I))return;const M=I.outerHeightStyle;p.current!==M&&(p.current=M,x.style.height=`${M}px`),x.style.overflow=I.overflowing?"hidden":""},[b]),y=P.useRef(-1);ar(()=>{const x=Y1(E),I=c?.current;if(!I)return;const M=sr(I);M.addEventListener("resize",x);let C;return typeof ResizeObserver<"u"&&(C=new ResizeObserver(()=>{v()&&(C.unobserve(I),cancelAnimationFrame(y.current),E(),y.current=requestAnimationFrame(()=>{C.observe(I)}))}),C.observe(I)),()=>{x.clear(),cancelAnimationFrame(y.current),M.removeEventListener("resize",x),C&&C.disconnect()}},[b,E,v]),ar(()=>{E()});const w=x=>{l||E();const I=x.target,M=I.value.length,C=I.value.endsWith(` `),H=I.selectionStart===M;C&&H&&I.setSelectionRange(M,M),r&&r(x)};return k.jsxs(P.Fragment,{children:[k.jsx("textarea",{value:o,onChange:w,ref:d,rows:a,style:s,...u}),k.jsx("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:f,tabIndex:-1,style:{...y5.shadow,...s,paddingTop:0,paddingBottom:0}})]})});function s0({props:e,states:t,muiFormControl:n}){return t.reduce((r,i)=>(r[i]=e[i],n&&typeof e[i]>"u"&&(r[i]=n[i]),r),{})}const op=P.createContext(void 0);function o0(){return P.useContext(op)}function td(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function up(e,t=!1){return e&&(td(e.value)&&e.value!==""||t&&td(e.defaultValue)&&e.defaultValue!=="")}function PL(e){return e.startAdornment}var nd;const bo=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size==="small"&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${St(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},yo=(e,t)=>{const{ownerState:n}=e;return[t.input,n.size==="small"&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type==="search"&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},x5=e=>{const{classes:t,color:n,disabled:r,error:i,endAdornment:a,focused:s,formControl:o,fullWidth:u,hiddenLabel:l,multiline:c,readOnly:d,size:p,startAdornment:f,type:b}=e,v={root:["root",`color${St(n)}`,r&&"disabled",i&&"error",u&&"fullWidth",s&&"focused",o&&"formControl",p&&p!=="medium"&&`size${St(p)}`,c&&"multiline",f&&"adornedStart",a&&"adornedEnd",l&&"hiddenLabel",d&&"readOnly"],input:["input",r&&"disabled",b==="search"&&"inputTypeSearch",c&&"inputMultiline",p==="small"&&"inputSizeSmall",l&&"inputHiddenLabel",f&&"inputAdornedStart",a&&"inputAdornedEnd",d&&"readOnly"]};return Ge(v,Rg,t)},vo=ue("div",{name:"MuiInputBase",slot:"Root",overridesResolver:bo})(ct(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${Na.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:t})=>t.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:t,size:n})=>t.multiline&&n==="small",style:{paddingTop:1}},{props:({ownerState:t})=>t.fullWidth,style:{width:"100%"}}]}))),To=ue("input",{name:"MuiInputBase",slot:"Input",overridesResolver:yo})(ct(({theme:e})=>{const t=e.palette.mode==="light",n={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},i=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${Na.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":i,"&:focus::-moz-placeholder":i,"&:focus::-ms-input-placeholder":i},[`&.${Na.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:a})=>!a.disableInjectingGlobalStyles,style:{animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:a})=>a.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),rd=Ng({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),xo=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiInputBase"}),{"aria-describedby":i,autoComplete:a,autoFocus:s,className:o,color:u,components:l={},componentsProps:c={},defaultValue:d,disabled:p,disableInjectingGlobalStyles:f,endAdornment:b,error:v,fullWidth:E=!1,id:y,inputComponent:w="input",inputProps:x={},inputRef:I,margin:M,maxRows:C,minRows:H,multiline:z=!1,name:V,onBlur:L,onChange:$,onClick:W,onFocus:G,onKeyDown:q,onKeyUp:Y,placeholder:Q,readOnly:ee,renderSuffix:de,rows:oe,size:R,slotProps:Ce={},slots:ve={},startAdornment:B,type:xe="text",value:Ie,...Be}=r,je=x.value!=null?x.value:Ie,{current:_e}=P.useRef(je!=null),qe=P.useRef(),Te=P.useCallback(Se=>{},[]),De=Vt(qe,I,x.ref,Te),[Ne,Qe]=P.useState(!1),Re=o0(),$e=s0({props:r,muiFormControl:Re,states:["color","disabled","error","hiddenLabel","size","required","filled"]});$e.focused=Re?Re.focused:Ne,P.useEffect(()=>{!Re&&p&&Ne&&(Qe(!1),L&&L())},[Re,p,Ne,L]);const wt=Re&&Re.onFilled,ht=Re&&Re.onEmpty,st=P.useCallback(Se=>{up(Se)?wt&&wt():ht&&ht()},[wt,ht]);ar(()=>{_e&&st({value:je})},[je,st,_e]);const Nt=Se=>{G&&G(Se),x.onFocus&&x.onFocus(Se),Re&&Re.onFocus?Re.onFocus(Se):Qe(!0)},ot=Se=>{L&&L(Se),x.onBlur&&x.onBlur(Se),Re&&Re.onBlur?Re.onBlur(Se):Qe(!1)},it=(Se,...Rt)=>{if(!_e){const yt=Se.target||qe.current;if(yt==null)throw new Error(z1(1));st({value:yt.value})}x.onChange&&x.onChange(Se,...Rt),$&&$(Se,...Rt)};P.useEffect(()=>{st(qe.current)},[]);const Ht=Se=>{qe.current&&Se.currentTarget===Se.target&&qe.current.focus(),W&&W(Se)};let Kt=w,bt=x;z&&Kt==="input"&&(oe?bt={type:void 0,minRows:oe,maxRows:oe,...bt}:bt={type:void 0,maxRows:C,minRows:H,...bt},Kt=T5);const on=Se=>{st(Se.animationName==="mui-auto-fill-cancel"?qe.current:{value:"x"})};P.useEffect(()=>{Re&&Re.setAdornedStart(!!B)},[Re,B]);const K={...r,color:$e.color||"primary",disabled:$e.disabled,endAdornment:b,error:$e.error,focused:$e.focused,formControl:Re,fullWidth:E,hiddenLabel:$e.hiddenLabel,multiline:z,size:$e.size,startAdornment:B,type:xe},ie=x5(K),me=ve.root||l.Root||vo,Ee=Ce.root||c.root||{},Pe=ve.input||l.Input||To;return bt={...bt,...Ce.input??c.input},k.jsxs(P.Fragment,{children:[!f&&typeof rd=="function"&&(nd||(nd=k.jsx(rd,{}))),k.jsxs(me,{...Ee,ref:n,onClick:Ht,...Be,...!Ia(me)&&{ownerState:{...K,...Ee.ownerState}},className:Ve(ie.root,Ee.className,o,ee&&"MuiInputBase-readOnly"),children:[B,k.jsx(op.Provider,{value:null,children:k.jsx(Pe,{"aria-invalid":$e.error,"aria-describedby":i,autoComplete:a,autoFocus:s,defaultValue:d,disabled:$e.disabled,id:y,onAnimationStart:on,name:V,placeholder:Q,readOnly:ee,required:$e.required,rows:oe,value:je,onKeyDown:q,onKeyUp:Y,type:xe,...bt,...!Ia(Pe)&&{as:Kt,ownerState:{...K,...bt.ownerState}},ref:De,className:Ve(ie.input,bt.className,ee&&"MuiInputBase-readOnly"),onBlur:ot,onChange:it,onFocus:Nt})}),b,de?de({...$e,startAdornment:B}):null]})]})});function E5(e){return gt("MuiInput",e)}const Gi={...Na,...at("MuiInput",["root","underline","input"])};function S5(e){return gt("MuiFilledInput",e)}const Or={...Na,...at("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])},w5=Mg(k.jsx("path",{d:"M7 10l5 5 5-5z"})),A5={entering:{opacity:1},entered:{opacity:1}},Xu=P.forwardRef(function(t,n){const r=qa(),i={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:a,appear:s=!0,children:o,easing:u,in:l,onEnter:c,onEntered:d,onEntering:p,onExit:f,onExited:b,onExiting:v,style:E,timeout:y=i,TransitionComponent:w=Yn,...x}=t,I=P.useRef(null),M=Vt(I,Li(o),n),C=q=>Y=>{if(q){const Q=I.current;Y===void 0?q(Q):q(Q,Y)}},H=C(p),z=C((q,Y)=>{G1(q);const Q=Ys({style:E,timeout:y,easing:u},{mode:"enter"});q.style.webkitTransition=r.transitions.create("opacity",Q),q.style.transition=r.transitions.create("opacity",Q),c&&c(q,Y)}),V=C(d),L=C(v),$=C(q=>{const Y=Ys({style:E,timeout:y,easing:u},{mode:"exit"});q.style.webkitTransition=r.transitions.create("opacity",Y),q.style.transition=r.transitions.create("opacity",Y),f&&f(q)}),W=C(b),G=q=>{a&&a(I.current,q)};return k.jsx(w,{appear:s,in:l,nodeRef:I,onEnter:z,onEntered:V,onEntering:H,onExit:$,onExited:W,onExiting:L,addEndListener:G,timeout:y,...x,children:(q,{ownerState:Y,...Q})=>P.cloneElement(o,{style:{opacity:0,visibility:q==="exited"&&!l?"hidden":void 0,...A5[q],...E,...o.props.style},ref:M,...Q})})});function C5(e){return gt("MuiBackdrop",e)}at("MuiBackdrop",["root","invisible"]);const k5=e=>{const{classes:t,invisible:n}=e;return Ge({root:["root",n&&"invisible"]},C5,t)},I5=ue("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),lp=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiBackdrop"}),{children:i,className:a,component:s="div",invisible:o=!1,open:u,components:l={},componentsProps:c={},slotProps:d={},slots:p={},TransitionComponent:f,transitionDuration:b,...v}=r,E={...r,component:s,invisible:o},y=k5(E),w={transition:f,root:l.Root,...p},x={...c,...d},I={component:s,slots:w,slotProps:x},[M,C]=Et("root",{elementType:I5,externalForwardedProps:I,className:Ve(y.root,a),ownerState:E}),[H,z]=Et("transition",{elementType:Xu,externalForwardedProps:I,ownerState:E});return k.jsx(H,{in:u,timeout:b,...v,...z,children:k.jsx(M,{"aria-hidden":!0,...C,classes:y,ref:n,children:i})})}),N5=at("MuiBox",["root"]),R5=Lg(),Ar=Kg({themeId:Pg,defaultTheme:R5,defaultClassName:N5.root,generateClassName:Dg.generate});function cp(e=window){const t=e.document.documentElement.clientWidth;return e.innerWidth-t}function M5(e){const t=fn(e);return t.body===e?sr(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function ha(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function id(e){return parseInt(sr(e).getComputedStyle(e).paddingRight,10)||0}function D5(e){const n=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(e.tagName),r=e.tagName==="INPUT"&&e.getAttribute("type")==="hidden";return n||r}function ad(e,t,n,r,i){const a=[t,n,...r];[].forEach.call(e.children,s=>{const o=!a.includes(s),u=!D5(s);o&&u&&ha(s,i)})}function jo(e,t){let n=-1;return e.some((r,i)=>t(r)?(n=i,!0):!1),n}function P5(e,t){const n=[],r=e.container;if(!t.disableScrollLock){if(M5(r)){const s=cp(sr(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight=`${id(r)+s}px`;const o=fn(r).querySelectorAll(".mui-fixed");[].forEach.call(o,u=>{n.push({value:u.style.paddingRight,property:"padding-right",el:u}),u.style.paddingRight=`${id(u)+s}px`})}let a;if(r.parentNode instanceof DocumentFragment)a=fn(r).body;else{const s=r.parentElement,o=sr(r);a=s?.nodeName==="HTML"&&o.getComputedStyle(s).overflowY==="scroll"?s:r}n.push({value:a.style.overflow,property:"overflow",el:a},{value:a.style.overflowX,property:"overflow-x",el:a},{value:a.style.overflowY,property:"overflow-y",el:a}),a.style.overflow="hidden"}return()=>{n.forEach(({value:a,el:s,property:o})=>{a?s.style.setProperty(o,a):s.style.removeProperty(o)})}}function L5(e){const t=[];return[].forEach.call(e.children,n=>{n.getAttribute("aria-hidden")==="true"&&t.push(n)}),t}class O5{constructor(){this.modals=[],this.containers=[]}add(t,n){let r=this.modals.indexOf(t);if(r!==-1)return r;r=this.modals.length,this.modals.push(t),t.modalRef&&ha(t.modalRef,!1);const i=L5(n);ad(n,t.mount,t.modalRef,i,!0);const a=jo(this.containers,s=>s.container===n);return a!==-1?(this.containers[a].modals.push(t),r):(this.containers.push({modals:[t],container:n,restore:null,hiddenSiblings:i}),r)}mount(t,n){const r=jo(this.containers,a=>a.modals.includes(t)),i=this.containers[r];i.restore||(i.restore=P5(i,n))}remove(t,n=!0){const r=this.modals.indexOf(t);if(r===-1)return r;const i=jo(this.containers,s=>s.modals.includes(t)),a=this.containers[i];if(a.modals.splice(a.modals.indexOf(t),1),this.modals.splice(r,1),a.modals.length===0)a.restore&&a.restore(),t.modalRef&&ha(t.modalRef,n),ad(a.container,t.mount,t.modalRef,a.hiddenSiblings,!1),this.containers.splice(i,1);else{const s=a.modals[a.modals.length-1];s.modalRef&&ha(s.modalRef,!1)}return r}isTopModal(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}const _5=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function B5(e){const t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?e.contentEditable==="true"||(e.nodeName==="AUDIO"||e.nodeName==="VIDEO"||e.nodeName==="DETAILS")&&e.getAttribute("tabindex")===null?0:e.tabIndex:t}function F5(e){if(e.tagName!=="INPUT"||e.type!=="radio"||!e.name)return!1;const t=r=>e.ownerDocument.querySelector(`input[type="radio"]${r}`);let n=t(`[name="${e.name}"]:checked`);return n||(n=t(`[name="${e.name}"]`)),n!==e}function H5(e){return!(e.disabled||e.tagName==="INPUT"&&e.type==="hidden"||F5(e))}function z5(e){const t=[],n=[];return Array.from(e.querySelectorAll(_5)).forEach((r,i)=>{const a=B5(r);a===-1||!H5(r)||(a===0?t.push(r):n.push({documentOrder:i,tabIndex:a,node:r}))}),n.sort((r,i)=>r.tabIndex===i.tabIndex?r.documentOrder-i.documentOrder:r.tabIndex-i.tabIndex).map(r=>r.node).concat(t)}function U5(){return!0}function V5(e){const{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:i=!1,getTabbable:a=z5,isEnabled:s=U5,open:o}=e,u=P.useRef(!1),l=P.useRef(null),c=P.useRef(null),d=P.useRef(null),p=P.useRef(null),f=P.useRef(!1),b=P.useRef(null),v=Vt(Li(t),b),E=P.useRef(null);P.useEffect(()=>{!o||!b.current||(f.current=!n)},[n,o]),P.useEffect(()=>{if(!o||!b.current)return;const x=fn(b.current);return b.current.contains(x.activeElement)||(b.current.hasAttribute("tabIndex")||b.current.setAttribute("tabIndex","-1"),f.current&&b.current.focus()),()=>{i||(d.current&&d.current.focus&&(u.current=!0,d.current.focus()),d.current=null)}},[o]),P.useEffect(()=>{if(!o||!b.current)return;const x=fn(b.current),I=H=>{E.current=H,!(r||!s()||H.key!=="Tab")&&x.activeElement===b.current&&H.shiftKey&&(u.current=!0,c.current&&c.current.focus())},M=()=>{const H=b.current;if(H===null)return;if(!x.hasFocus()||!s()||u.current){u.current=!1;return}if(H.contains(x.activeElement)||r&&x.activeElement!==l.current&&x.activeElement!==c.current)return;if(x.activeElement!==p.current)p.current=null;else if(p.current!==null)return;if(!f.current)return;let z=[];if((x.activeElement===l.current||x.activeElement===c.current)&&(z=a(b.current)),z.length>0){const V=!!(E.current?.shiftKey&&E.current?.key==="Tab"),L=z[0],$=z[z.length-1];typeof L!="string"&&typeof $!="string"&&(V?$.focus():L.focus())}else H.focus()};x.addEventListener("focusin",M),x.addEventListener("keydown",I,!0);const C=setInterval(()=>{x.activeElement&&x.activeElement.tagName==="BODY"&&M()},50);return()=>{clearInterval(C),x.removeEventListener("focusin",M),x.removeEventListener("keydown",I,!0)}},[n,r,i,s,o,a]);const y=x=>{d.current===null&&(d.current=x.relatedTarget),f.current=!0,p.current=x.target;const I=t.props.onFocus;I&&I(x)},w=x=>{d.current===null&&(d.current=x.relatedTarget),f.current=!0};return k.jsxs(P.Fragment,{children:[k.jsx("div",{tabIndex:o?0:-1,onFocus:w,ref:l,"data-testid":"sentinelStart"}),P.cloneElement(t,{ref:v,onFocus:y}),k.jsx("div",{tabIndex:o?0:-1,onFocus:w,ref:c,"data-testid":"sentinelEnd"})]})}function j5(e){return typeof e=="function"?e():e}function q5(e){return e?e.props.hasOwnProperty("in"):!1}const sd=()=>{},ps=new O5;function $5(e){const{container:t,disableEscapeKeyDown:n=!1,disableScrollLock:r=!1,closeAfterTransition:i=!1,onTransitionEnter:a,onTransitionExited:s,children:o,onClose:u,open:l,rootRef:c}=e,d=P.useRef({}),p=P.useRef(null),f=P.useRef(null),b=Vt(f,c),[v,E]=P.useState(!l),y=q5(o);let w=!0;(e["aria-hidden"]==="false"||e["aria-hidden"]===!1)&&(w=!1);const x=()=>fn(p.current),I=()=>(d.current.modalRef=f.current,d.current.mount=p.current,d.current),M=()=>{ps.mount(I(),{disableScrollLock:r}),f.current&&(f.current.scrollTop=0)},C=ka(()=>{const Y=j5(t)||x().body;ps.add(I(),Y),f.current&&M()}),H=()=>ps.isTopModal(I()),z=ka(Y=>{p.current=Y,Y&&(l&&H()?M():f.current&&ha(f.current,w))}),V=P.useCallback(()=>{ps.remove(I(),w)},[w]);P.useEffect(()=>()=>{V()},[V]),P.useEffect(()=>{l?C():(!y||!i)&&V()},[l,V,y,i,C]);const L=Y=>Q=>{Y.onKeyDown?.(Q),!(Q.key!=="Escape"||Q.which===229||!H())&&(n||(Q.stopPropagation(),u&&u(Q,"escapeKeyDown")))},$=Y=>Q=>{Y.onClick?.(Q),Q.target===Q.currentTarget&&u&&u(Q,"backdropClick")};return{getRootProps:(Y={})=>{const Q=Og(e);delete Q.onTransitionEnter,delete Q.onTransitionExited;const ee={...Q,...Y};return{role:"presentation",...ee,onKeyDown:L(ee),ref:b}},getBackdropProps:(Y={})=>{const Q=Y;return{"aria-hidden":!0,...Q,onClick:$(Q),open:l}},getTransitionProps:()=>{const Y=()=>{E(!1),a&&a()},Q=()=>{E(!0),s&&s(),i&&V()};return{onEnter:Vc(Y,o?.props.onEnter??sd),onExited:Vc(Q,o?.props.onExited??sd)}},rootRef:b,portalRef:z,isTopModal:H,exited:v,hasTransition:y}}function W5(e){return gt("MuiModal",e)}at("MuiModal",["root","hidden","backdrop"]);const Y5=e=>{const{open:t,exited:n,classes:r}=e;return Ge({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},W5,r)},G5=ue("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})(ct(({theme:e})=>({position:"fixed",zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:t})=>!t.open&&t.exited,style:{visibility:"hidden"}}]}))),X5=ue(lp,{name:"MuiModal",slot:"Backdrop"})({zIndex:-1}),dp=P.forwardRef(function(t,n){const r=Ke({name:"MuiModal",props:t}),{BackdropComponent:i=X5,BackdropProps:a,classes:s,className:o,closeAfterTransition:u=!1,children:l,container:c,component:d,components:p={},componentsProps:f={},disableAutoFocus:b=!1,disableEnforceFocus:v=!1,disableEscapeKeyDown:E=!1,disablePortal:y=!1,disableRestoreFocus:w=!1,disableScrollLock:x=!1,hideBackdrop:I=!1,keepMounted:M=!1,onClose:C,onTransitionEnter:H,onTransitionExited:z,open:V,slotProps:L={},slots:$={},theme:W,...G}=r,q={...r,closeAfterTransition:u,disableAutoFocus:b,disableEnforceFocus:v,disableEscapeKeyDown:E,disablePortal:y,disableRestoreFocus:w,disableScrollLock:x,hideBackdrop:I,keepMounted:M},{getRootProps:Y,getBackdropProps:Q,getTransitionProps:ee,portalRef:de,isTopModal:oe,exited:R,hasTransition:Ce}=$5({...q,rootRef:n}),ve={...q,exited:R},B=Y5(ve),xe={};if(l.props.tabIndex===void 0&&(xe.tabIndex="-1"),Ce){const{onEnter:Te,onExited:De}=ee();xe.onEnter=Te,xe.onExited=De}const Ie={slots:{root:p.Root,backdrop:p.Backdrop,...$},slotProps:{...f,...L}},[Be,je]=Et("root",{ref:n,elementType:G5,externalForwardedProps:{...Ie,...G,component:d},getSlotProps:Y,ownerState:ve,className:Ve(o,B?.root,!ve.open&&ve.exited&&B?.hidden)}),[_e,qe]=Et("backdrop",{ref:a?.ref,elementType:i,externalForwardedProps:Ie,shouldForwardComponentProp:!0,additionalProps:a,getSlotProps:Te=>Q({...Te,onClick:De=>{Te?.onClick&&Te.onClick(De)}}),className:Ve(a?.className,B?.backdrop),ownerState:ve});return!M&&!V&&(!Ce||R)?null:k.jsx(ap,{ref:de,container:c,disablePortal:y,children:k.jsxs(Be,{...je,children:[!I&&i?k.jsx(_e,{...qe}):null,k.jsx(V5,{disableEnforceFocus:v,disableAutoFocus:b,disableRestoreFocus:w,isEnabled:oe,open:V,children:P.cloneElement(l,xe)})]})})});function K5(e){return gt("MuiDialog",e)}const qo=at("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]),hp=P.createContext({}),Q5=ue(lp,{name:"MuiDialog",slot:"Backdrop",overrides:(e,t)=>t.backdrop})({zIndex:-1}),Z5=e=>{const{classes:t,scroll:n,maxWidth:r,fullWidth:i,fullScreen:a}=e,s={root:["root"],container:["container",`scroll${St(n)}`],paper:["paper",`paperScroll${St(n)}`,`paperWidth${St(String(r))}`,i&&"paperFullWidth",a&&"paperFullScreen"]};return Ge(s,K5,t)},J5=ue(dp,{name:"MuiDialog",slot:"Root"})({"@media print":{position:"absolute !important"}}),eb=ue("div",{name:"MuiDialog",slot:"Container",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.container,t[`scroll${St(n.scroll)}`]]}})({height:"100%","@media print":{height:"auto"},outline:0,variants:[{props:{scroll:"paper"},style:{display:"flex",justifyContent:"center",alignItems:"center"}},{props:{scroll:"body"},style:{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}}}]}),tb=ue(mo,{name:"MuiDialog",slot:"Paper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.paper,t[`scrollPaper${St(n.scroll)}`],t[`paperWidth${St(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(ct(({theme:e})=>({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"},variants:[{props:{scroll:"paper"},style:{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"}},{props:{scroll:"body"},style:{display:"inline-block",verticalAlign:"middle",textAlign:"initial"}},{props:({ownerState:t})=>!t.maxWidth,style:{maxWidth:"calc(100% - 64px)"}},{props:{maxWidth:"xs"},style:{maxWidth:e.breakpoints.unit==="px"?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`,[`&.${qo.paperScrollBody}`]:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:"calc(100% - 64px)"}}}},...Object.keys(e.breakpoints.values).filter(t=>t!=="xs").map(t=>({props:{maxWidth:t},style:{maxWidth:`${e.breakpoints.values[t]}${e.breakpoints.unit}`,[`&.${qo.paperScrollBody}`]:{[e.breakpoints.down(e.breakpoints.values[t]+64)]:{maxWidth:"calc(100% - 64px)"}}}})),{props:({ownerState:t})=>t.fullWidth,style:{width:"calc(100% - 64px)"}},{props:({ownerState:t})=>t.fullScreen,style:{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${qo.paperScrollBody}`]:{margin:0,maxWidth:"100%"}}}]}))),nb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDialog"}),i=qa(),a={enter:i.transitions.duration.enteringScreen,exit:i.transitions.duration.leavingScreen},{"aria-describedby":s,"aria-labelledby":o,"aria-modal":u=!0,BackdropComponent:l,BackdropProps:c,children:d,className:p,disableEscapeKeyDown:f=!1,fullScreen:b=!1,fullWidth:v=!1,maxWidth:E="sm",onClick:y,onClose:w,open:x,PaperComponent:I=mo,PaperProps:M={},scroll:C="paper",slots:H={},slotProps:z={},TransitionComponent:V=Xu,transitionDuration:L=a,TransitionProps:$,...W}=r,G={...r,disableEscapeKeyDown:f,fullScreen:b,fullWidth:v,maxWidth:E,scroll:C},q=Z5(G),Y=P.useRef(),Q=Qe=>{Y.current=Qe.target===Qe.currentTarget},ee=Qe=>{y&&y(Qe),Y.current&&(Y.current=null,w&&w(Qe,"backdropClick"))},de=Xl(o),oe=P.useMemo(()=>({titleId:de}),[de]),R={transition:V,...H},Ce={transition:$,paper:M,backdrop:c,...z},ve={slots:R,slotProps:Ce},[B,xe]=Et("root",{elementType:J5,shouldForwardComponentProp:!0,externalForwardedProps:ve,ownerState:G,className:Ve(q.root,p),ref:n}),[Ie,Be]=Et("backdrop",{elementType:Q5,shouldForwardComponentProp:!0,externalForwardedProps:ve,ownerState:G}),[je,_e]=Et("paper",{elementType:tb,shouldForwardComponentProp:!0,externalForwardedProps:ve,ownerState:G,className:Ve(q.paper,M.className)}),[qe,Te]=Et("container",{elementType:eb,externalForwardedProps:ve,ownerState:G,className:q.container}),[De,Ne]=Et("transition",{elementType:Xu,externalForwardedProps:ve,ownerState:G,additionalProps:{appear:!0,in:x,timeout:L,role:"presentation"}});return k.jsx(B,{closeAfterTransition:!0,slots:{backdrop:Ie},slotProps:{backdrop:{transitionDuration:L,as:l,...Be}},disableEscapeKeyDown:f,onClose:w,open:x,onClick:ee,...xe,...W,children:k.jsx(De,{...Ne,children:k.jsx(qe,{onMouseDown:Q,...Te,children:k.jsx(je,{as:I,elevation:24,role:"dialog","aria-describedby":s,"aria-labelledby":de,"aria-modal":u,..._e,children:k.jsx(hp.Provider,{value:oe,children:d})})})})})});function rb(e){return gt("MuiDialogActions",e)}at("MuiDialogActions",["root","spacing"]);const ib=e=>{const{classes:t,disableSpacing:n}=e;return Ge({root:["root",!n&&"spacing"]},rb,t)},ab=ue("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto",variants:[{props:({ownerState:e})=>!e.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),sb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDialogActions"}),{className:i,disableSpacing:a=!1,...s}=r,o={...r,disableSpacing:a},u=ib(o);return k.jsx(ab,{className:Ve(u.root,i),ownerState:o,ref:n,...s})}),ob=e=>{const{classes:t,dividers:n}=e;return Ge({root:["root",n&&"dividers"]},_g,t)},ub=ue("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.dividers&&t.dividers]}})(ct(({theme:e})=>({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px",variants:[{props:({ownerState:t})=>t.dividers,style:{padding:"16px 24px",borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:t})=>!t.dividers,style:{[`.${Bg.root} + &`]:{paddingTop:0}}}]}))),lb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDialogContent"}),{className:i,dividers:a=!1,...s}=r,o={...r,dividers:a},u=ob(o);return k.jsx(ub,{className:Ve(u.root,i),ownerState:o,ref:n,...s})});function cb(e){return gt("MuiDialogContentText",e)}at("MuiDialogContentText",["root"]);const db=e=>{const{classes:t}=e,r=Ge({root:["root"]},cb,t);return{...t,...r}},hb=ue(Ye,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiDialogContentText",slot:"Root"})({}),fb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDialogContentText"}),{children:i,className:a,...s}=r,o=db(s);return k.jsx(hb,{component:"p",variant:"body1",color:"textSecondary",ref:n,ownerState:s,className:Ve(o.root,a),...r,classes:o})}),pb=e=>{const{classes:t}=e;return Ge({root:["root"]},Fg,t)},mb=ue(Ye,{name:"MuiDialogTitle",slot:"Root"})({padding:"16px 24px",flex:"0 0 auto"}),gb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDialogTitle"}),{className:i,id:a,...s}=r,o=r,u=pb(o),{titleId:l=a}=P.useContext(hp);return k.jsx(mb,{component:"h2",className:Ve(u.root,i),ownerState:o,ref:n,variant:"h6",id:a??l,...s})}),bb=e=>{const{absolute:t,children:n,classes:r,flexItem:i,light:a,orientation:s,textAlign:o,variant:u}=e;return Ge({root:["root",t&&"absolute",u,a&&"light",s==="vertical"&&"vertical",i&&"flexItem",n&&"withChildren",n&&s==="vertical"&&"withChildrenVertical",o==="right"&&s!=="vertical"&&"textAlignRight",o==="left"&&s!=="vertical"&&"textAlignLeft"],wrapper:["wrapper",s==="vertical"&&"wrapperVertical"]},Hg,r)},yb=ue("div",{name:"MuiDivider",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.absolute&&t.absolute,t[n.variant],n.light&&t.light,n.orientation==="vertical"&&t.vertical,n.flexItem&&t.flexItem,n.children&&t.withChildren,n.children&&n.orientation==="vertical"&&t.withChildrenVertical,n.textAlign==="right"&&n.orientation!=="vertical"&&t.textAlignRight,n.textAlign==="left"&&n.orientation!=="vertical"&&t.textAlignLeft]}})(ct(({theme:e})=>({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(e.vars||e).palette.divider,borderBottomWidth:"thin",variants:[{props:{absolute:!0},style:{position:"absolute",bottom:0,left:0,width:"100%"}},{props:{light:!0},style:{borderColor:e.alpha((e.vars||e).palette.divider,.08)}},{props:{variant:"inset"},style:{marginLeft:72}},{props:{variant:"middle",orientation:"horizontal"},style:{marginLeft:e.spacing(2),marginRight:e.spacing(2)}},{props:{variant:"middle",orientation:"vertical"},style:{marginTop:e.spacing(1),marginBottom:e.spacing(1)}},{props:{orientation:"vertical"},style:{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"}},{props:{flexItem:!0},style:{alignSelf:"stretch",height:"auto"}},{props:({ownerState:t})=>!!t.children,style:{display:"flex",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}},{props:({ownerState:t})=>t.children&&t.orientation!=="vertical",style:{"&::before, &::after":{width:"100%",borderTop:`thin solid ${(e.vars||e).palette.divider}`,borderTopStyle:"inherit"}}},{props:({ownerState:t})=>t.orientation==="vertical"&&t.children,style:{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:`thin solid ${(e.vars||e).palette.divider}`,borderLeftStyle:"inherit"}}},{props:({ownerState:t})=>t.textAlign==="right"&&t.orientation!=="vertical",style:{"&::before":{width:"90%"},"&::after":{width:"10%"}}},{props:({ownerState:t})=>t.textAlign==="left"&&t.orientation!=="vertical",style:{"&::before":{width:"10%"},"&::after":{width:"90%"}}}]}))),vb=ue("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.wrapper,n.orientation==="vertical"&&t.wrapperVertical]}})(ct(({theme:e})=>({display:"inline-block",paddingLeft:`calc(${e.spacing(1)} * 1.2)`,paddingRight:`calc(${e.spacing(1)} * 1.2)`,whiteSpace:"nowrap",variants:[{props:{orientation:"vertical"},style:{paddingTop:`calc(${e.spacing(1)} * 1.2)`,paddingBottom:`calc(${e.spacing(1)} * 1.2)`}}]}))),Ku=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDivider"}),{absolute:i=!1,children:a,className:s,orientation:o="horizontal",component:u=a||o==="vertical"?"div":"hr",flexItem:l=!1,light:c=!1,role:d=u!=="hr"?"separator":void 0,textAlign:p="center",variant:f="fullWidth",...b}=r,v={...r,absolute:i,component:u,flexItem:l,light:c,orientation:o,role:d,textAlign:p,variant:f},E=bb(v);return k.jsx(yb,{as:u,className:Ve(E.root,s),role:d,ref:n,ownerState:v,"aria-orientation":d==="separator"&&(u!=="hr"||o==="vertical")?o:void 0,...b,children:a?k.jsx(vb,{className:E.wrapper,ownerState:v,children:a}):null})});Ku&&(Ku.muiSkipListHighlight=!0);const Tb=e=>{const{classes:t,disableUnderline:n,startAdornment:r,endAdornment:i,size:a,hiddenLabel:s,multiline:o}=e,u={root:["root",!n&&"underline",r&&"adornedStart",i&&"adornedEnd",a==="small"&&`size${St(a)}`,s&&"hiddenLabel",o&&"multiline"],input:["input"]},l=Ge(u,S5,t);return{...t,...l}},xb=ue(vo,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...bo(e,t),!n.disableUnderline&&t.underline]}})(ct(({theme:e})=>{const t=e.palette.mode==="light",n=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",r=t?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",i=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",a=t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return{position:"relative",backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:i,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r}},[`&.${Or.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r},[`&.${Or.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:a},variants:[{props:({ownerState:s})=>!s.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Or.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Or.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline):n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Or.disabled}, .${Or.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${Or.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Ql()).map(([s])=>({props:{disableUnderline:!1,color:s},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[s]?.main}`}}})),{props:({ownerState:s})=>s.startAdornment,style:{paddingLeft:12}},{props:({ownerState:s})=>s.endAdornment,style:{paddingRight:12}},{props:({ownerState:s})=>s.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:s,size:o})=>s.multiline&&o==="small",style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:s})=>s.multiline&&s.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:s})=>s.multiline&&s.hiddenLabel&&s.size==="small",style:{paddingTop:8,paddingBottom:9}}]}})),Eb=ue(To,{name:"MuiFilledInput",slot:"Input",overridesResolver:yo})(ct(({theme:e})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:t})=>t.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}},{props:({ownerState:t})=>t.hiddenLabel&&t.size==="small",style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:t})=>t.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),fp=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiFilledInput"}),{disableUnderline:i=!1,components:a={},componentsProps:s,fullWidth:o=!1,hiddenLabel:u,inputComponent:l="input",multiline:c=!1,slotProps:d,slots:p={},type:f="text",...b}=r,v={...r,disableUnderline:i,fullWidth:o,inputComponent:l,multiline:c,type:f},E=Tb(r),y={root:{ownerState:v},input:{ownerState:v}},w=d??s?Kl(y,d??s):y,x=p.root??a.Root??xb,I=p.input??a.Input??Eb;return k.jsx(xo,{slots:{root:x,input:I},slotProps:w,fullWidth:o,inputComponent:l,multiline:c,ref:n,type:f,...b,classes:E})});fp.muiName="Input";function Qu(e){return`scale(${e}, ${e**2})`}const Sb={entering:{opacity:1,transform:Qu(1)},entered:{opacity:1,transform:"none"}},$o=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),Xs=P.forwardRef(function(t,n){const{addEndListener:r,appear:i=!0,children:a,easing:s,in:o,onEnter:u,onEntered:l,onEntering:c,onExit:d,onExited:p,onExiting:f,style:b,timeout:v="auto",TransitionComponent:E=Yn,...y}=t,w=aa(),x=P.useRef(),I=qa(),M=P.useRef(null),C=Vt(M,Li(a),n),H=Y=>Q=>{if(Y){const ee=M.current;Q===void 0?Y(ee):Y(ee,Q)}},z=H(c),V=H((Y,Q)=>{G1(Y);const{duration:ee,delay:de,easing:oe}=Ys({style:b,timeout:v,easing:s},{mode:"enter"});let R;v==="auto"?(R=I.transitions.getAutoHeightDuration(Y.clientHeight),x.current=R):R=ee,Y.style.transition=[I.transitions.create("opacity",{duration:R,delay:de}),I.transitions.create("transform",{duration:$o?R:R*.666,delay:de,easing:oe})].join(","),u&&u(Y,Q)}),L=H(l),$=H(f),W=H(Y=>{const{duration:Q,delay:ee,easing:de}=Ys({style:b,timeout:v,easing:s},{mode:"exit"});let oe;v==="auto"?(oe=I.transitions.getAutoHeightDuration(Y.clientHeight),x.current=oe):oe=Q,Y.style.transition=[I.transitions.create("opacity",{duration:oe,delay:ee}),I.transitions.create("transform",{duration:$o?oe:oe*.666,delay:$o?ee:ee||oe*.333,easing:de})].join(","),Y.style.opacity=0,Y.style.transform=Qu(.75),d&&d(Y)}),G=H(p),q=Y=>{v==="auto"&&w.start(x.current||0,Y),r&&r(M.current,Y)};return k.jsx(E,{appear:i,in:o,nodeRef:M,onEnter:V,onEntered:L,onEntering:z,onExit:W,onExited:G,onExiting:$,addEndListener:q,timeout:v==="auto"?null:v,...y,children:(Y,{ownerState:Q,...ee})=>P.cloneElement(a,{style:{opacity:0,transform:Qu(.75),visibility:Y==="exited"&&!o?"hidden":void 0,...Sb[Y],...b,...a.props.style},ref:C,...ee})})});Xs&&(Xs.muiSupportAuto=!0);const wb=e=>{const{classes:t,disableUnderline:n}=e,i=Ge({root:["root",!n&&"underline"],input:["input"]},E5,t);return{...t,...i}},Ab=ue(vo,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...bo(e,t),!n.disableUnderline&&t.underline]}})(ct(({theme:e})=>{let n=e.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return e.vars&&(n=e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline)),{position:"relative",variants:[{props:({ownerState:r})=>r.formControl,style:{"label + &":{marginTop:16}}},{props:({ownerState:r})=>!r.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Gi.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Gi.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Gi.disabled}, .${Gi.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${n}`}},[`&.${Gi.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Ql()).map(([r])=>({props:{color:r,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[r].main}`}}}))]}})),Cb=ue(To,{name:"MuiInput",slot:"Input",overridesResolver:yo})({}),pp=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiInput"}),{disableUnderline:i=!1,components:a={},componentsProps:s,fullWidth:o=!1,inputComponent:u="input",multiline:l=!1,slotProps:c,slots:d={},type:p="text",...f}=r,b=wb(r),E={root:{ownerState:{disableUnderline:i}}},y=c??s?Kl(c??s,E):E,w=d.root??a.Root??Ab,x=d.input??a.Input??Cb;return k.jsx(xo,{slots:{root:w,input:x},slotProps:y,fullWidth:o,inputComponent:u,multiline:l,ref:n,type:p,...f,classes:b})});pp.muiName="Input";const nr=P.createContext({});function kb(e){return gt("MuiList",e)}at("MuiList",["root","padding","dense","subheader"]);const Ib=e=>{const{classes:t,disablePadding:n,dense:r,subheader:i}=e;return Ge({root:["root",!n&&"padding",r&&"dense",i&&"subheader"]},kb,t)},Nb=ue("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>e.subheader,style:{paddingTop:0}}]}),mp=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiList"}),{children:i,className:a,component:s="ul",dense:o=!1,disablePadding:u=!1,subheader:l,...c}=r,d=P.useMemo(()=>({dense:o}),[o]),p={...r,component:s,dense:o,disablePadding:u},f=Ib(p);return k.jsx(nr.Provider,{value:d,children:k.jsxs(Nb,{as:s,className:Ve(f.root,a),ref:n,ownerState:p,...c,children:[l,i]})})});function Rb(e){return gt("MuiListItem",e)}at("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"]);const Mb=at("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]);function Db(e){return gt("MuiListItemSecondaryAction",e)}at("MuiListItemSecondaryAction",["root","disableGutters"]);const Pb=e=>{const{disableGutters:t,classes:n}=e;return Ge({root:["root",t&&"disableGutters"]},Db,n)},Lb=ue("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.disableGutters&&t.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:({ownerState:e})=>e.disableGutters,style:{right:0}}]}),gp=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiListItemSecondaryAction"}),{className:i,...a}=r,s=P.useContext(nr),o={...r,disableGutters:s.disableGutters},u=Pb(o);return k.jsx(Lb,{className:Ve(u.root,i),ownerState:o,ref:n,...a})});gp.muiName="ListItemSecondaryAction";const Ob=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.alignItems==="flex-start"&&t.alignItemsFlexStart,n.divider&&t.divider,!n.disableGutters&&t.gutters,!n.disablePadding&&t.padding,n.hasSecondaryAction&&t.secondaryAction]},_b=e=>{const{alignItems:t,classes:n,dense:r,disableGutters:i,disablePadding:a,divider:s,hasSecondaryAction:o}=e;return Ge({root:["root",r&&"dense",!i&&"gutters",!a&&"padding",s&&"divider",t==="flex-start"&&"alignItemsFlexStart",o&&"secondaryAction"],container:["container"]},Rb,n)},Bb=ue("div",{name:"MuiListItem",slot:"Root",overridesResolver:Ob})(ct(({theme:e})=>({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:({ownerState:t})=>!t.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:t})=>!t.disablePadding&&t.dense,style:{paddingTop:4,paddingBottom:4}},{props:({ownerState:t})=>!t.disablePadding&&!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>!t.disablePadding&&!!t.secondaryAction,style:{paddingRight:48}},{props:({ownerState:t})=>!!t.secondaryAction,style:{[`& > .${Mb.root}`]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>t.button,style:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:({ownerState:t})=>t.hasSecondaryAction,style:{paddingRight:48}}]}))),Fb=ue("li",{name:"MuiListItem",slot:"Container"})({position:"relative"}),Hb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiListItem"}),{alignItems:i="center",children:a,className:s,component:o,components:u={},componentsProps:l={},ContainerComponent:c="li",ContainerProps:{className:d,...p}={},dense:f=!1,disableGutters:b=!1,disablePadding:v=!1,divider:E=!1,secondaryAction:y,slotProps:w={},slots:x={},...I}=r,M=P.useContext(nr),C=P.useMemo(()=>({dense:f||M.dense||!1,alignItems:i,disableGutters:b}),[i,M.dense,f,b]),H=P.useRef(null),z=P.Children.toArray(a),V=z.length&&Qg(z[z.length-1],["ListItemSecondaryAction"]),L={...r,alignItems:i,dense:C.dense,disableGutters:b,disablePadding:v,divider:E,hasSecondaryAction:V},$=_b(L),W=Vt(H,n),G=x.root||u.Root||Bb,q=w.root||l.root||{},Y={className:Ve($.root,q.className,s),...I};let Q=o||"li";return V?(Q=!Y.component&&!o?"div":Q,c==="li"&&(Q==="li"?Q="div":Y.component==="li"&&(Y.component="div")),k.jsx(nr.Provider,{value:C,children:k.jsxs(Fb,{as:c,className:Ve($.container,d),ref:W,ownerState:L,...p,children:[k.jsx(G,{...q,...!Ia(G)&&{as:Q,ownerState:{...L,...q.ownerState}},...Y,children:z}),z.pop()]})})):k.jsx(nr.Provider,{value:C,children:k.jsxs(G,{...q,as:Q,ref:W,...!Ia(G)&&{ownerState:{...L,...q.ownerState}},...Y,children:[z,y&&k.jsx(gp,{children:y})]})})}),zb=e=>{const{alignItems:t,classes:n}=e;return Ge({root:["root",t==="flex-start"&&"alignItemsFlexStart"]},zg,n)},Ub=ue("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.alignItems==="flex-start"&&t.alignItemsFlexStart]}})(ct(({theme:e})=>({minWidth:56,color:(e.vars||e).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}))),Vb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiListItemIcon"}),{className:i,...a}=r,s=P.useContext(nr),o={...r,alignItems:s.alignItems},u=zb(o);return k.jsx(Ub,{className:Ve(u.root,i),ownerState:o,ref:n,...a})});function jb(e){return gt("MuiListItemText",e)}const fi=at("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),qb=e=>{const{classes:t,inset:n,primary:r,secondary:i,dense:a}=e;return Ge({root:["root",n&&"inset",a&&"dense",r&&i&&"multiline"],primary:["primary"],secondary:["secondary"]},jb,t)},$b=ue("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${fi.primary}`]:t.primary},{[`& .${fi.secondary}`]:t.secondary},t.root,n.inset&&t.inset,n.primary&&n.secondary&&t.multiline,n.dense&&t.dense]}})({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4,[`.${Oc.root}:where(& .${fi.primary})`]:{display:"block"},[`.${Oc.root}:where(& .${fi.secondary})`]:{display:"block"},variants:[{props:({ownerState:e})=>e.primary&&e.secondary,style:{marginTop:6,marginBottom:6}},{props:({ownerState:e})=>e.inset,style:{paddingLeft:56}}]}),Wb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiListItemText"}),{children:i,className:a,disableTypography:s=!1,inset:o=!1,primary:u,primaryTypographyProps:l,secondary:c,secondaryTypographyProps:d,slots:p={},slotProps:f={},...b}=r,{dense:v}=P.useContext(nr);let E=u??i,y=c;const w={...r,disableTypography:s,inset:o,primary:!!E,secondary:!!y,dense:v},x=qb(w),I={slots:p,slotProps:{primary:l,secondary:d,...f}},[M,C]=Et("root",{className:Ve(x.root,a),elementType:$b,externalForwardedProps:{...I,...b},ownerState:w,ref:n}),[H,z]=Et("primary",{className:x.primary,elementType:Ye,externalForwardedProps:I,ownerState:w}),[V,L]=Et("secondary",{className:x.secondary,elementType:Ye,externalForwardedProps:I,ownerState:w});return E!=null&&E.type!==Ye&&!s&&(E=k.jsx(H,{variant:v?"body2":"body1",component:z?.variant?void 0:"span",...z,children:E})),y!=null&&y.type!==Ye&&!s&&(y=k.jsx(V,{variant:"body2",color:"textSecondary",...L,children:y})),k.jsxs(M,{...C,children:[E,y]})});function Wo(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function od(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function bp(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.startsWith(t.keys.join(""))}function Xi(e,t,n,r,i,a){let s=!1,o=i(e,t,t?n:!1);for(;o;){if(o===e.firstChild){if(s)return!1;s=!0}const u=r?!1:o.disabled||o.getAttribute("aria-disabled")==="true";if(!o.hasAttribute("tabindex")||!bp(o,a)||u)o=i(e,o,n);else return o.focus(),!0}return!1}const Yb=P.forwardRef(function(t,n){const{actions:r,autoFocus:i=!1,autoFocusItem:a=!1,children:s,className:o,disabledItemsFocusable:u=!1,disableListWrap:l=!1,onKeyDown:c,variant:d="selectedMenu",...p}=t,f=P.useRef(null),b=P.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});ar(()=>{i&&f.current.focus()},[i]),P.useImperativeHandle(r,()=>({adjustStyleForScrollbar:(x,{direction:I})=>{const M=!f.current.style.width;if(x.clientHeight{const I=f.current,M=x.key;if(x.ctrlKey||x.metaKey||x.altKey){c&&c(x);return}const H=fn(I).activeElement;if(M==="ArrowDown")x.preventDefault(),Xi(I,H,l,u,Wo);else if(M==="ArrowUp")x.preventDefault(),Xi(I,H,l,u,od);else if(M==="Home")x.preventDefault(),Xi(I,null,l,u,Wo);else if(M==="End")x.preventDefault(),Xi(I,null,l,u,od);else if(M.length===1){const z=b.current,V=M.toLowerCase(),L=performance.now();z.keys.length>0&&(L-z.lastTime>500?(z.keys=[],z.repeating=!0,z.previousKeyMatched=!0):z.repeating&&V!==z.keys[0]&&(z.repeating=!1)),z.lastTime=L,z.keys.push(V);const $=H&&!z.repeating&&bp(H,z);z.previousKeyMatched&&($||Xi(I,H,!1,u,Wo,z))?x.preventDefault():z.previousKeyMatched=!1}c&&c(x)},E=Vt(f,n);let y=-1;P.Children.forEach(s,(x,I)=>{if(!P.isValidElement(x)){y===I&&(y+=1,y>=s.length&&(y=-1));return}x.props.disabled||(d==="selectedMenu"&&x.props.selected||y===-1)&&(y=I),y===I&&(x.props.disabled||x.props.muiSkipListHighlight||x.type.muiSkipListHighlight)&&(y+=1,y>=s.length&&(y=-1))});const w=P.Children.map(s,(x,I)=>{if(I===y){const M={};return a&&(M.autoFocus=!0),x.props.tabIndex===void 0&&d==="selectedMenu"&&(M.tabIndex=0),P.cloneElement(x,M)}return x});return k.jsx(mp,{role:"menu",ref:E,className:o,onKeyDown:v,tabIndex:i?0:-1,...p,children:w})});function Gb(e){return gt("MuiPopover",e)}at("MuiPopover",["root","paper"]);function ud(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.height/2:t==="bottom"&&(n=e.height),n}function ld(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.width/2:t==="right"&&(n=e.width),n}function cd(e){return[e.horizontal,e.vertical].map(t=>typeof t=="number"?`${t}px`:t).join(" ")}function ms(e){return typeof e=="function"?e():e}const Xb=e=>{const{classes:t}=e;return Ge({root:["root"],paper:["paper"]},Gb,t)},Kb=ue(dp,{name:"MuiPopover",slot:"Root"})({}),yp=ue(mo,{name:"MuiPopover",slot:"Paper"})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),Qb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiPopover"}),{action:i,anchorEl:a,anchorOrigin:s={vertical:"top",horizontal:"left"},anchorPosition:o,anchorReference:u="anchorEl",children:l,className:c,container:d,elevation:p=8,marginThreshold:f=16,open:b,PaperProps:v={},slots:E={},slotProps:y={},transformOrigin:w={vertical:"top",horizontal:"left"},TransitionComponent:x,transitionDuration:I="auto",TransitionProps:M={},disableScrollLock:C=!1,...H}=r,z=P.useRef(),V={...r,anchorOrigin:s,anchorReference:u,elevation:p,marginThreshold:f,transformOrigin:w,TransitionComponent:x,transitionDuration:I,TransitionProps:M},L=Xb(V),$=P.useCallback(()=>{if(u==="anchorPosition")return o;const Te=ms(a),Ne=(Te&&Te.nodeType===1?Te:fn(z.current).body).getBoundingClientRect();return{top:Ne.top+ud(Ne,s.vertical),left:Ne.left+ld(Ne,s.horizontal)}},[a,s.horizontal,s.vertical,o,u]),W=P.useCallback(Te=>({vertical:ud(Te,w.vertical),horizontal:ld(Te,w.horizontal)}),[w.horizontal,w.vertical]),G=P.useCallback(Te=>{const De={width:Te.offsetWidth,height:Te.offsetHeight},Ne=W(De);if(u==="none")return{top:null,left:null,transformOrigin:cd(Ne)};const Qe=$();let Re=Qe.top-Ne.vertical,$e=Qe.left-Ne.horizontal;const wt=Re+De.height,ht=$e+De.width,st=sr(ms(a)),Nt=st.innerHeight-f,ot=st.innerWidth-f;if(f!==null&&ReNt){const it=wt-Nt;Re-=it,Ne.vertical+=it}if(f!==null&&$eot){const it=ht-ot;$e-=it,Ne.horizontal+=it}return{top:`${Math.round(Re)}px`,left:`${Math.round($e)}px`,transformOrigin:cd(Ne)}},[a,u,$,W,f]),[q,Y]=P.useState(b),Q=P.useCallback(()=>{const Te=z.current;if(!Te)return;const De=G(Te);De.top!==null&&Te.style.setProperty("top",De.top),De.left!==null&&(Te.style.left=De.left),Te.style.transformOrigin=De.transformOrigin,Y(!0)},[G]);P.useEffect(()=>(C&&window.addEventListener("scroll",Q),()=>window.removeEventListener("scroll",Q)),[a,C,Q]);const ee=()=>{Q()},de=()=>{Y(!1)};P.useEffect(()=>{b&&Q()}),P.useImperativeHandle(i,()=>b?{updatePosition:()=>{Q()}}:null,[b,Q]),P.useEffect(()=>{if(!b)return;const Te=Y1(()=>{Q()}),De=sr(ms(a));return De.addEventListener("resize",Te),()=>{Te.clear(),De.removeEventListener("resize",Te)}},[a,b,Q]);let oe=I;const R={slots:{transition:x,...E},slotProps:{transition:M,paper:v,...y}},[Ce,ve]=Et("transition",{elementType:Xs,externalForwardedProps:R,ownerState:V,getSlotProps:Te=>({...Te,onEntering:(De,Ne)=>{Te.onEntering?.(De,Ne),ee()},onExited:De=>{Te.onExited?.(De),de()}}),additionalProps:{appear:!0,in:b}});I==="auto"&&!Ce.muiSupportAuto&&(oe=void 0);const B=d||(a?fn(ms(a)).body:void 0),[xe,{slots:Ie,slotProps:Be,...je}]=Et("root",{ref:n,elementType:Kb,externalForwardedProps:{...R,...H},shouldForwardComponentProp:!0,additionalProps:{slots:{backdrop:E.backdrop},slotProps:{backdrop:t6(typeof y.backdrop=="function"?y.backdrop(V):y.backdrop,{invisible:!0})},container:B,open:b},ownerState:V,className:Ve(L.root,c)}),[_e,qe]=Et("paper",{ref:z,className:L.paper,elementType:yp,externalForwardedProps:R,shouldForwardComponentProp:!0,additionalProps:{elevation:p,style:q?void 0:{opacity:0}},ownerState:V});return k.jsx(xe,{...je,...!Ia(xe)&&{slots:Ie,slotProps:Be,disableScrollLock:C},children:k.jsx(Ce,{...ve,timeout:oe,children:k.jsx(_e,{...qe,children:l})})})});function Zb(e){return gt("MuiMenu",e)}at("MuiMenu",["root","paper","list"]);const Jb={vertical:"top",horizontal:"right"},e7={vertical:"top",horizontal:"left"},t7=e=>{const{classes:t}=e;return Ge({root:["root"],paper:["paper"],list:["list"]},Zb,t)},n7=ue(Qb,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiMenu",slot:"Root"})({}),r7=ue(yp,{name:"MuiMenu",slot:"Paper"})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),i7=ue(Yb,{name:"MuiMenu",slot:"List"})({outline:0}),a7=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiMenu"}),{autoFocus:i=!0,children:a,className:s,disableAutoFocusItem:o=!1,MenuListProps:u={},onClose:l,open:c,PaperProps:d={},PopoverClasses:p,transitionDuration:f="auto",TransitionProps:{onEntering:b,...v}={},variant:E="selectedMenu",slots:y={},slotProps:w={},...x}=r,I=Gl(),M={...r,autoFocus:i,disableAutoFocusItem:o,MenuListProps:u,onEntering:b,PaperProps:d,transitionDuration:f,TransitionProps:v,variant:E},C=t7(M),H=i&&!o&&c,z=P.useRef(null),V=(oe,R)=>{z.current&&z.current.adjustStyleForScrollbar(oe,{direction:I?"rtl":"ltr"}),b&&b(oe,R)},L=oe=>{oe.key==="Tab"&&(oe.preventDefault(),l&&l(oe,"tabKeyDown"))};let $=-1;P.Children.map(a,(oe,R)=>{P.isValidElement(oe)&&(oe.props.disabled||(E==="selectedMenu"&&oe.props.selected||$===-1)&&($=R))});const W={slots:y,slotProps:{list:u,transition:v,paper:d,...w}},G=ip({elementType:y.root,externalSlotProps:w.root,ownerState:M,className:[C.root,s]}),[q,Y]=Et("paper",{className:C.paper,elementType:r7,externalForwardedProps:W,shouldForwardComponentProp:!0,ownerState:M}),[Q,ee]=Et("list",{className:Ve(C.list,u.className),elementType:i7,shouldForwardComponentProp:!0,externalForwardedProps:W,getSlotProps:oe=>({...oe,onKeyDown:R=>{L(R),oe.onKeyDown?.(R)}}),ownerState:M}),de=typeof W.slotProps.transition=="function"?W.slotProps.transition(M):W.slotProps.transition;return k.jsx(n7,{onClose:l,anchorOrigin:{vertical:"bottom",horizontal:I?"right":"left"},transformOrigin:I?Jb:e7,slots:{root:y.root,paper:q,backdrop:y.backdrop,...y.transition&&{transition:y.transition}},slotProps:{root:G,paper:Y,backdrop:typeof w.backdrop=="function"?w.backdrop(M):w.backdrop,transition:{...de,onEntering:(...oe)=>{V(...oe),de?.onEntering?.(...oe)}}},open:c,ref:n,transitionDuration:f,ownerState:M,...x,classes:p,children:k.jsx(Q,{actions:z,autoFocus:i&&($===-1||o),autoFocusItem:H,variant:E,...ee,children:a})})});function s7(e){return gt("MuiMenuItem",e)}const Ki=at("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),o7=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},u7=e=>{const{disabled:t,dense:n,divider:r,disableGutters:i,selected:a,classes:s}=e,u=Ge({root:["root",n&&"dense",t&&"disabled",!i&&"gutters",r&&"divider",a&&"selected"]},s7,s);return{...s,...u}},l7=ue(Ug,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:o7})(ct(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Ki.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${Ki.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${Ki.selected}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity)}},[`&.${Ki.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Ki.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${Bc.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${Bc.inset}`]:{marginLeft:52},[`& .${fi.root}`]:{marginTop:0,marginBottom:0},[`& .${fi.inset}`]:{paddingLeft:36},[`& .${_c.root}`]:{minWidth:36},variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>!t.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:t})=>t.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${_c.root} svg`]:{fontSize:"1.25rem"}}}]}))),c7=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiMenuItem"}),{autoFocus:i=!1,component:a="li",dense:s=!1,divider:o=!1,disableGutters:u=!1,focusVisibleClassName:l,role:c="menuitem",tabIndex:d,className:p,...f}=r,b=P.useContext(nr),v=P.useMemo(()=>({dense:s||b.dense||!1,disableGutters:u}),[b.dense,s,u]),E=P.useRef(null);ar(()=>{i&&E.current&&E.current.focus()},[i]);const y={...r,dense:v.dense,divider:o,disableGutters:u},w=u7(r),x=Vt(E,n);let I;return r.disabled||(I=d!==void 0?d:-1),k.jsx(nr.Provider,{value:v,children:k.jsx(l7,{ref:x,role:c,tabIndex:I,component:a,focusVisibleClassName:Ve(w.focusVisible,l),className:Ve(w.root,p),...f,ownerState:y,classes:w})})});function d7(e){return gt("MuiNativeSelect",e)}const u0=at("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),h7=e=>{const{classes:t,variant:n,disabled:r,multiple:i,open:a,error:s}=e,o={select:["select",n,r&&"disabled",i&&"multiple",s&&"error"],icon:["icon",`icon${St(n)}`,a&&"iconOpen",r&&"disabled"]};return Ge(o,d7,t)},vp=ue("select",{name:"MuiNativeSelect"})(({theme:e})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${u0.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:t})=>t.variant!=="filled"&&t.variant!=="outlined",style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),f7=ue(vp,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:Wn,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${u0.multiple}`]:t.multiple}]}})({}),Tp=ue("svg",{name:"MuiNativeSelect"})(({theme:e})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(e.vars||e).palette.action.active,[`&.${u0.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:t})=>t.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),p7=ue(Tp,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${St(n.variant)}`],n.open&&t.iconOpen]}})({}),m7=P.forwardRef(function(t,n){const{className:r,disabled:i,error:a,IconComponent:s,inputRef:o,variant:u="standard",...l}=t,c={...t,disabled:i,variant:u,error:a},d=h7(c);return k.jsxs(P.Fragment,{children:[k.jsx(f7,{ownerState:c,className:Ve(d.select,r),disabled:i,ref:o||n,...l}),t.multiple?null:k.jsx(p7,{as:s,ownerState:c,className:d.icon})]})});var dd;const g7=ue("fieldset",{name:"MuiNotchedOutlined",shouldForwardProp:Wn})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),b7=ue("legend",{name:"MuiNotchedOutlined",shouldForwardProp:Wn})(ct(({theme:e})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:t})=>!t.withLabel,style:{padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:t})=>t.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:t})=>t.withLabel&&t.notched,style:{maxWidth:"100%",transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function y7(e){const{children:t,classes:n,className:r,label:i,notched:a,...s}=e,o=i!=null&&i!=="",u={...e,notched:a,withLabel:o};return k.jsx(g7,{"aria-hidden":!0,className:r,ownerState:u,...s,children:k.jsx(b7,{ownerState:u,children:o?k.jsx("span",{children:i}):dd||(dd=k.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"}))})})}const v7=e=>{const{classes:t}=e,r=Ge({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},Vg,t);return{...t,...r}},T7=ue(vo,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:bo})(ct(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${Ln.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${Ln.notchedOutline}`]:{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}},[`&.${Ln.focused} .${Ln.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter(Ql()).map(([n])=>({props:{color:n},style:{[`&.${Ln.focused} .${Ln.notchedOutline}`]:{borderColor:(e.vars||e).palette[n].main}}})),{props:{},style:{[`&.${Ln.error} .${Ln.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${Ln.disabled} .${Ln.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:n})=>n.startAdornment,style:{paddingLeft:14}},{props:({ownerState:n})=>n.endAdornment,style:{paddingRight:14}},{props:({ownerState:n})=>n.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:n,size:r})=>n.multiline&&r==="small",style:{padding:"8.5px 14px"}}]}})),x7=ue(y7,{name:"MuiOutlinedInput",slot:"NotchedOutline"})(ct(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}})),E7=ue(To,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:yo})(ct(({theme:e})=>({padding:"16.5px 14px",...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:t})=>t.multiline,style:{padding:0}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}}]}))),l0=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiOutlinedInput"}),{components:i={},fullWidth:a=!1,inputComponent:s="input",label:o,multiline:u=!1,notched:l,slots:c={},slotProps:d={},type:p="text",...f}=r,b=v7(r),v=o0(),E=s0({props:r,muiFormControl:v,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),y={...r,color:E.color||"primary",disabled:E.disabled,error:E.error,focused:E.focused,formControl:v,fullWidth:a,hiddenLabel:E.hiddenLabel,multiline:u,size:E.size,type:p},w=c.root??i.Root??T7,x=c.input??i.Input??E7,[I,M]=Et("notchedOutline",{elementType:x7,className:b.notchedOutline,shouldForwardComponentProp:!0,ownerState:y,externalForwardedProps:{slots:c,slotProps:d},additionalProps:{label:o!=null&&o!==""&&E.required?k.jsxs(P.Fragment,{children:[o," ","*"]}):o}});return k.jsx(xo,{slots:{root:w,input:x},slotProps:d,renderSuffix:C=>k.jsx(I,{...M,notched:typeof l<"u"?l:!!(C.startAdornment||C.filled||C.focused)}),fullWidth:a,inputComponent:s,multiline:u,ref:n,type:p,...f,classes:{...b,notchedOutline:null}})});l0.muiName="Input";function xp(e){return gt("MuiSelect",e)}const qr=at("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var hd;const S7=ue(vp,{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${qr.select}`]:t.select},{[`&.${qr.select}`]:t[n.variant]},{[`&.${qr.error}`]:t.error},{[`&.${qr.multiple}`]:t.multiple}]}})({[`&.${qr.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),w7=ue(Tp,{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${St(n.variant)}`],n.open&&t.iconOpen]}})({}),A7=ue("input",{shouldForwardProp:e=>jg(e)&&e!=="classes",name:"MuiSelect",slot:"NativeInput"})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function fd(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}function C7(e){return e==null||typeof e=="string"&&!e.trim()}const k7=e=>{const{classes:t,variant:n,disabled:r,multiple:i,open:a,error:s}=e,o={select:["select",n,r&&"disabled",i&&"multiple",s&&"error"],icon:["icon",`icon${St(n)}`,a&&"iconOpen",r&&"disabled"],nativeInput:["nativeInput"]};return Ge(o,xp,t)},I7=P.forwardRef(function(t,n){const{"aria-describedby":r,"aria-label":i,autoFocus:a,autoWidth:s,children:o,className:u,defaultOpen:l,defaultValue:c,disabled:d,displayEmpty:p,error:f=!1,IconComponent:b,inputRef:v,labelId:E,MenuProps:y={},multiple:w,name:x,onBlur:I,onChange:M,onClose:C,onFocus:H,onOpen:z,open:V,readOnly:L,renderValue:$,required:W,SelectDisplayProps:G={},tabIndex:q,type:Y,value:Q,variant:ee="standard",...de}=t,[oe,R]=qu({controlled:Q,default:c,name:"Select"}),[Ce,ve]=qu({controlled:V,default:l,name:"Select"}),B=P.useRef(null),xe=P.useRef(null),[Ie,Be]=P.useState(null),{current:je}=P.useRef(V!=null),[_e,qe]=P.useState(),Te=Vt(n,v),De=P.useCallback(pe=>{xe.current=pe,pe&&Be(pe)},[]),Ne=Ie?.parentNode;P.useImperativeHandle(Te,()=>({focus:()=>{xe.current.focus()},node:B.current,value:oe}),[oe]),P.useEffect(()=>{l&&Ce&&Ie&&!je&&(qe(s?null:Ne.clientWidth),xe.current.focus())},[Ie,s]),P.useEffect(()=>{a&&xe.current.focus()},[a]),P.useEffect(()=>{if(!E)return;const pe=fn(xe.current).getElementById(E);if(pe){const ke=()=>{getSelection().isCollapsed&&xe.current.focus()};return pe.addEventListener("click",ke),()=>{pe.removeEventListener("click",ke)}}},[E]);const Qe=(pe,ke)=>{pe?z&&z(ke):C&&C(ke),je||(qe(s?null:Ne.clientWidth),ve(pe))},Re=pe=>{pe.button===0&&(pe.preventDefault(),xe.current.focus(),Qe(!0,pe))},$e=pe=>{Qe(!1,pe)},wt=P.Children.toArray(o),ht=pe=>{const ke=wt.find(et=>et.props.value===pe.target.value);ke!==void 0&&(R(ke.props.value),M&&M(pe,ke))},st=pe=>ke=>{let et;if(ke.currentTarget.hasAttribute("tabindex")){if(w){et=Array.isArray(oe)?oe.slice():[];const At=oe.indexOf(pe.props.value);At===-1?et.push(pe.props.value):et.splice(At,1)}else et=pe.props.value;if(pe.props.onClick&&pe.props.onClick(ke),oe!==et&&(R(et),M)){const At=ke.nativeEvent||ke,ls=new At.constructor(At.type,At);Object.defineProperty(ls,"target",{writable:!0,value:{value:et,name:x}}),M(ls,pe)}w||Qe(!1,ke)}},Nt=pe=>{L||[" ","ArrowUp","ArrowDown","Enter"].includes(pe.key)&&(pe.preventDefault(),Qe(!0,pe))},ot=Ie!==null&&Ce,it=pe=>{!ot&&I&&(Object.defineProperty(pe,"target",{writable:!0,value:{value:oe,name:x}}),I(pe))};delete de["aria-invalid"];let Ht,Kt;const bt=[];let on=!1;(up({value:oe})||p)&&($?Ht=$(oe):on=!0);const K=wt.map(pe=>{if(!P.isValidElement(pe))return null;let ke;if(w){if(!Array.isArray(oe))throw new Error(z1(2));ke=oe.some(et=>fd(et,pe.props.value)),ke&&on&&bt.push(pe.props.children)}else ke=fd(oe,pe.props.value),ke&&on&&(Kt=pe.props.children);return P.cloneElement(pe,{"aria-selected":ke?"true":"false",onClick:st(pe),onKeyUp:et=>{et.key===" "&&et.preventDefault(),pe.props.onKeyUp&&pe.props.onKeyUp(et)},role:"option",selected:ke,value:void 0,"data-value":pe.props.value})});on&&(w?bt.length===0?Ht=null:Ht=bt.reduce((pe,ke,et)=>(pe.push(ke),et{const{classes:t}=e,r=Ge({root:["root"]},xp,t);return{...t,...r}},c0={name:"MuiSelect",slot:"Root",shouldForwardProp:e=>Wn(e)&&e!=="variant"},R7=ue(pp,c0)(""),M7=ue(l0,c0)(""),D7=ue(fp,c0)(""),Ep=P.forwardRef(function(t,n){const r=Ke({name:"MuiSelect",props:t}),{autoWidth:i=!1,children:a,classes:s={},className:o,defaultOpen:u=!1,displayEmpty:l=!1,IconComponent:c=w5,id:d,input:p,inputProps:f,label:b,labelId:v,MenuProps:E,multiple:y=!1,native:w=!1,onClose:x,onOpen:I,open:M,renderValue:C,SelectDisplayProps:H,variant:z="outlined",...V}=r,L=w?m7:I7,$=o0(),W=s0({props:r,muiFormControl:$,states:["variant","error"]}),G=W.variant||z,q={...r,variant:G,classes:s},Y=N7(q),{root:Q,...ee}=Y,de=p||{standard:k.jsx(R7,{ownerState:q}),outlined:k.jsx(M7,{label:b,ownerState:q}),filled:k.jsx(D7,{ownerState:q})}[G],oe=Vt(n,Li(de));return k.jsx(P.Fragment,{children:P.cloneElement(de,{inputComponent:L,inputProps:{children:a,error:W.error,IconComponent:c,variant:G,type:void 0,multiple:y,...w?{id:d}:{autoWidth:i,defaultOpen:u,displayEmpty:l,labelId:v,MenuProps:E,onClose:x,onOpen:I,open:M,renderValue:C,SelectDisplayProps:{id:d,...H}},...f,classes:f?Kl(ee,f.classes):ee,...p?p.props.inputProps:{}},...(y&&w||l)&&G==="outlined"?{notched:!0}:{},ref:oe,className:Ve(de.props.className,o,Y.root),...!p&&{variant:G},...V})})});Ep.muiName="Select";function P7(e){return gt("MuiSkeleton",e)}at("MuiSkeleton",["root","text","rectangular","rounded","circular","pulse","wave","withChildren","fitContent","heightAuto"]);const L7=e=>{const{classes:t,variant:n,animation:r,hasChildren:i,width:a,height:s}=e;return Ge({root:["root",n,r,i&&"withChildren",i&&!a&&"fitContent",i&&!s&&"heightAuto"]},P7,t)},Zu=V1` 0% { @@ -403,4 +403,4 @@ l0,-`+(n+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, -`),mL=e=>e.replace(/\\\[/g,"$$").replace(/\\\]/g,"$$").replace(/\\\(/g,"$").replace(/\\\)/g,"$"),gL={h1:e=>k.jsx(Ye,{...e,variant:"h1"}),h2:e=>k.jsx(Ye,{...e,variant:"h2"}),h3:e=>k.jsx(Ye,{...e,variant:"h3"}),h4:e=>k.jsx(Ye,{...e,variant:"h4"}),h5:e=>k.jsx(Ye,{...e,variant:"h5"}),h6:e=>k.jsx(Ye,{...e,variant:"h6"}),p:e=>k.jsx(Ye,{...e,variant:"body1"}),caption:e=>k.jsx(Ye,{...e,variant:"caption"}),hr:e=>k.jsx(Ku,{...e}),table:e=>k.jsx(a8,{children:k.jsx(G7,{...e})}),thead:c8,tbody:J7,tr:f8,th:bd,td:bd},bL=["script","iframe","style","form","input","textarea"],yL={...po,tagNames:(po.tagNames||[]).filter(e=>!bL.includes(e))},F1=P.memo(({isThinking:e,content:t})=>(t=pL(t),t=mL(t),k.jsx(fL,{className:"ChatMarkdown",isThinking:e,children:k.jsx($A,{remarkPlugins:[kf,c1],rehypePlugins:[VR,nL,[kf,c1,hL,yL]],components:gL,children:t})}))),HL=()=>{const[{status:e,messages:t}]=Zl(),n=P.useRef(null),[r,i]=P.useState(!0),a=P.useRef(!1),s=P.useRef(!1),o=P.useRef(0),u=wi(()=>{const p=n.current;p&&(a.current=!1,s.current=!0,requestAnimationFrame(()=>{p.scrollTo({top:p.scrollHeight,behavior:"smooth"})}),setTimeout(()=>{s.current=!1},250))});P.useEffect(()=>{if(a.current)return;s.current=!0,u();const p=setTimeout(()=>{s.current=!1},200);return()=>clearTimeout(p)},[t]);const l=wi(p=>{p.stopPropagation();const f=n.current;if(!f)return;const{scrollTop:b,scrollHeight:v,clientHeight:E}=f,y=v-b-E;i(y<10),s.current||b{p.deltaY<0&&(a.current=!0)},onTouchMove:()=>{a.current=!0},children:[t.map((p,f)=>k.jsx(vL,{message:p,isLast:f===t.length-1},p.id)),e==="opened"&&k.jsx(zx,{size:"large"}),k.jsx(Ar,{sx:{width:"100%",height:0}})]},"stream");return k.jsxs(Ar,{sx:{position:"relative",flex:1,overflow:"hidden"},children:[d,c]})},vL=P.memo(({message:e,isLast:t})=>{const{role:n,status:r,thinking:i,content:a}=e,[,{generate:s}]=Zl(),[o,u]=P.useState(!1);P.useEffect(()=>{const y=setTimeout(()=>u(!1),2e3);return()=>clearTimeout(y)},[o]);const l=wi(()=>{navigator.clipboard.writeText(a),u(!0)}),c=wi(()=>{s(e)}),d=n==="user"?"flex-end":"flex-start",p=n==="user"?k.jsx(Ye,{variant:"body1",sx:{px:2,py:1.5,borderRadius:"0.5rem",backgroundColor:"background.default",fontSize:"0.875rem"},children:a},"user-message"):k.jsxs(k.Fragment,{children:[i&&k.jsx(F1,{isThinking:!0,content:i},"assistant-thinking"),a&&k.jsx(F1,{content:a},"assistant-message")]}),f=r==="done",b=n==="user"||n==="assistant"&&f,v=n==="assistant"&&f,E=n==="user"?{"&:hover .actions-user":{opacity:1,pointerEvents:"auto"}}:{};return k.jsx(Xe,{direction:"row",sx:{width:"100%",justifyContent:d},children:k.jsxs(Xe,{sx:{maxWidth:n==="user"?{xs:"100%",md:"80%"}:"100%",alignSelf:n==="user"?"flex-end":"flex-start",gap:1,...E},children:[p,(b||v)&&k.jsxs(Xe,{direction:"row",className:n==="user"?"actions-user":void 0,sx:{justifyContent:d,color:"grey.600",gap:.5,...n==="user"?{opacity:0,pointerEvents:"none",transition:"opacity .15s ease"}:{}},children:[b&&k.jsx(Ks,{title:o?"Copied!":"Copy",slotProps:{tooltip:{sx:{bgcolor:"primary.main",borderRadius:1}},popper:{modifiers:[{name:"offset",options:{offset:[0,-8]}}]}},children:k.jsx(Qr,{onClick:l,size:"small",sx:{width:24,height:24,borderRadius:"8px","&:hover":{bgcolor:"action.hover"}},children:o?k.jsx(wp,{}):k.jsx(Ap,{})})},"copy"),v&&k.jsx(Ks,{title:"Regenerate",slotProps:{tooltip:{sx:{bgcolor:"primary.main",borderRadius:1}},popper:{modifiers:[{name:"offset",options:{offset:[0,-8]}}]}},children:k.jsx(Qr,{onClick:c,size:"small",sx:{width:24,height:24,borderRadius:"8px","&:hover":{bgcolor:"action.hover"}},children:k.jsx(P8,{})})},"regenerate")]},"actions")]})})}),TL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"100%",height:"100%",justifyContent:"flex-start",alignItems:"stretch",overflow:"hidden"}}),xL=ue(Xe)(({theme:e})=>{const{palette:t,spacing:n}=e;return{height:"100%",paddingBlock:n(2),paddingInline:n(2),gap:n(3),overflow:"hidden",transition:"width 0.3s ease-in-out",backgroundColor:t.grey[200]}}),EL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"100%",height:"2.5rem",flex:"none",marginTop:t(1),paddingBlock:t(1),paddingInline:t(4),overflow:"hidden"}}),SL=ue(Xe)(({theme:e})=>{const{palette:t,spacing:n}=e;return{flex:1,alignItems:"center",overflow:"hidden",backgroundColor:t.grey[100]}}),wL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"48.75rem",maxWidth:"100%",height:"100%",gap:t(2),paddingBlock:t(1),paddingInline:t(4),overflow:"hidden"}}),zL=({children:e})=>{const[{type:t}]=$1(),[{modelInfo:n,clusterInfo:{status:r,needMoreNodes:i}}]=$a(),[a,{open:s}]=di({color:"primary",titleIcon:k.jsx(_s,{}),title:"Reconnect your nodes",content:k.jsxs(Xe,{sx:{gap:7},children:[k.jsxs(Xe,{sx:{gap:1},children:[k.jsx(Ye,{variant:"body1",children:"Run join command on your new Node"}),k.jsx(xd,{})]}),k.jsxs(Xe,{sx:{gap:1},children:[k.jsx(Ye,{variant:"body1",children:"Check your live node status"}),k.jsx(Ye,{variant:"body2",color:"text.disabled",children:"After you successfully start the server on the nodes, you should see them show up on the below dashboard."}),k.jsx(xs,{})]})]}),confirmLabel:"Finish"});P.useEffect(()=>{t==="cluster"&&r==="waiting"&&s()},[r,s]);const[o,{open:u}]=di({color:"primary",title:"",content:k.jsxs(k.Fragment,{children:[k.jsx(Ye,{variant:"body1",children:"Cluster rebalancing"}),k.jsx(Ye,{variant:"body2",color:"text.disabled",children:"We have noticed one of your nodes has been disconnected. We are now rebalancing your inference requests onto working nodes. Please wait a few seconds for the cluster to rebalance itself."}),k.jsx(xs,{variant:"menu"})]}),confirmLabel:"Finish"});P.useEffect(()=>{r==="rebalancing"&&u()},[r,u]);const[l,{open:c}]=di({color:"primary",title:"",content:k.jsx(k.Fragment,{children:k.jsxs(Ye,{variant:"body1",children:["Your selected model requires more nodes.",!!n&&n.vram>0&&`To host this model, we suggest you to have a total VRAM size of ${n.vram} GB.`||""]})}),confirmLabel:"Finish"});P.useEffect(()=>{i&&c()},[i,c]);const[d,{open:p}]=di({color:"primary",title:"",content:k.jsxs(k.Fragment,{children:[k.jsx(Ye,{variant:"body1",children:"Scheduler restart"}),k.jsxs(Ye,{variant:"body2",color:"text.disabled",children:["We have noticed that your scheduler has been disconnected (this would be the computer that ran the ",k.jsx("strong",{children:"parallax run"})," command). You would need to restart the scheduler, reconfigure the cluster, and your chat will be back up again!"]})]}),confirmLabel:"Finish"});P.useEffect(()=>{if(r==="failed"){p();return}if(r==="idle"){const y=setTimeout(()=>p(),1e3);return()=>clearTimeout(y)}},[r,p]);const[f,b]=P.useState(!0),[v,{open:E}]=di({color:"primary",titleIcon:k.jsx(v8,{}),title:"Add New Nodes",content:k.jsxs(Xe,{sx:{gap:5},children:[k.jsxs(Xe,{sx:{gap:1},children:[k.jsx(Ye,{variant:"body1",children:"Run join command on all nodes"}),k.jsx(xd,{})]}),k.jsxs(Xe,{sx:{gap:1},children:[k.jsx(Ye,{variant:"body1",children:"Check your live node status"}),k.jsx(Ye,{variant:"body2",color:"text.disabled",children:"After you successfully start the server on the nodes, you should see them show up on the below dashboard."}),k.jsx(xs,{})]})]}),confirmLabel:"Finish"});return k.jsxs(TL,{direction:"row",children:[k.jsxs(xL,{sx:{width:f?"16.25rem":"3.5rem",paddingInline:2},children:[k.jsx(Xe,{direction:"row",sx:{justifyContent:"flex-end",alignItems:"center",gap:2},children:f?k.jsxs(k.Fragment,{children:[k.jsx(Td,{}),k.jsx(Ar,{sx:{flex:1}}),k.jsx(Ks,{title:"Collapse Sidebar",placement:"right",slotProps:{tooltip:{sx:{bgcolor:"primary.main",color:"common.white"}}},children:k.jsx(Qr,{size:"em",sx:{fontSize:"1.5rem",borderRadius:"8px",color:"#808080FF","&:hover":{bgcolor:"action.hover"}},onClick:()=>b(y=>!y),children:k.jsx(A8,{})})})]}):k.jsx(k.Fragment,{children:k.jsxs(Ar,{sx:{position:"relative",width:28,height:28,display:"flex",alignItems:"center",justifyContent:"center","&:hover .logo":{opacity:0},"&:hover .toggle":{opacity:1,pointerEvents:"auto",transform:"scale(1)"}},children:[k.jsx(Ar,{className:"logo",sx:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",transition:"opacity .15s ease",opacity:1},children:k.jsx(Td,{})}),k.jsx(Ks,{title:"Expand Sidebar",placement:"right",slotProps:{tooltip:{sx:{bgcolor:"primary.main",color:"common.white"}}},children:k.jsx(Qr,{className:"toggle",size:"em",sx:{position:"absolute",opacity:0,pointerEvents:"none",fontSize:"1.5rem",transition:"opacity .15s ease, transform .15s ease","&:hover":{bgcolor:"action.hover"}},"aria-label":"Expand Sidebar",onClick:()=>b(y=>!y),children:k.jsx(k8,{})})})]})})}),f&&k.jsxs(Xe,{children:[k.jsx(Xe,{direction:"row",sx:{gap:1,color:"text.primary"},children:k.jsx(Ye,{variant:"body1",sx:{mt:"1.5px",color:"#A7A7A7FF",fontWeight:600},children:"Cluster topology"})}),k.jsx(xs,{variant:"menu",sx:{py:"2rem"}}),k.jsx(q1,{color:"info",startIcon:k.jsx(M8,{}),onClick:E,children:"Add Nodes"})]})]}),k.jsxs(SL,{children:[k.jsx(EL,{direction:"row",children:k.jsx($8,{variant:"text"})}),k.jsx(wL,{children:e})]}),v,a,o,d,l]})},AL=ue(Xe)(({theme:e})=>{const{palette:t,spacing:n}=e;return{width:"100%",height:"100%",display:"flex",alignItems:"center",gap:n(3),padding:n(3),overflow:"hidden",backgroundColor:t.grey[100]}}),CL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"100%",flex:"none",justifyContent:"flex-start",alignItems:"center",gap:t(1)}}),kL=ue(Ar)(({theme:e})=>{const{spacing:t}=e;return{position:"relative",flex:"1",width:"100%",display:"flex",flexFlow:"column nowrap",justifyContent:"center",alignItems:"center",overflowY:"hidden"}}),IL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"31rem",height:"100%",gap:t(7),paddingInline:t(1),overflowY:"auto"}}),NL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"calc((100% - 30rem) / 2 - 4rem)",height:"100%",overflow:"auto",position:"absolute",top:0,left:"2rem",alignItems:"flex-end",gap:t(2)}}),RL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"calc((100% - 30rem) / 2 - 4rem)",height:"100%",overflow:"auto",position:"absolute",top:0,right:"2rem",alignItems:"flex-start",gap:t(2)}}),UL=({children:e,contentStart:t,contentEnd:n=k.jsx(ML,{})})=>k.jsxs(AL,{children:[k.jsx(CL,{direction:"row",children:k.jsx(z8,{})}),k.jsxs(kL,{children:[k.jsx(IL,{className:"MainLayoutContent",children:e}),t&&k.jsx(NL,{children:t})||void 0,n&&k.jsx(RL,{children:n})||void 0]})]}),ML=()=>{const[{initNodesNumber:e,networkType:t,modelName:n,clusterInfo:r}]=$a();return null};export{HL as C,zx as D,op as F,M8 as I,xd as J,UL as M,xs as N,l0 as O,Ep as S,$8 as a,PL as b,up as c,fp as d,pp as e,s0 as f,zL as g,Qg as i,o0 as u}; +`),mL=e=>e.replace(/\\\[/g,"$$").replace(/\\\]/g,"$$").replace(/\\\(/g,"$").replace(/\\\)/g,"$"),gL={h1:e=>k.jsx(Ye,{...e,variant:"h1"}),h2:e=>k.jsx(Ye,{...e,variant:"h2"}),h3:e=>k.jsx(Ye,{...e,variant:"h3"}),h4:e=>k.jsx(Ye,{...e,variant:"h4"}),h5:e=>k.jsx(Ye,{...e,variant:"h5"}),h6:e=>k.jsx(Ye,{...e,variant:"h6"}),p:e=>k.jsx(Ye,{...e,variant:"body1"}),caption:e=>k.jsx(Ye,{...e,variant:"caption"}),hr:e=>k.jsx(Ku,{...e}),table:e=>k.jsx(a8,{children:k.jsx(G7,{...e})}),thead:c8,tbody:J7,tr:f8,th:bd,td:bd},bL=["script","iframe","style","form","input","textarea"],yL={...po,tagNames:(po.tagNames||[]).filter(e=>!bL.includes(e))},F1=P.memo(({isThinking:e,content:t})=>(t=pL(t),t=mL(t),k.jsx(fL,{className:"ChatMarkdown",isThinking:e,children:k.jsx($A,{remarkPlugins:[kf,c1],rehypePlugins:[VR,nL,[kf,c1,hL,yL]],components:gL,children:t})}))),HL=()=>{const[{status:e,messages:t}]=Zl(),n=P.useRef(null),[r,i]=P.useState(!0),a=P.useRef(!1),s=P.useRef(!1),o=P.useRef(0),u=wi(()=>{const p=n.current;p&&(a.current=!1,s.current=!0,requestAnimationFrame(()=>{p.scrollTo({top:p.scrollHeight,behavior:"smooth"})}),setTimeout(()=>{s.current=!1},250))});P.useEffect(()=>{if(a.current)return;s.current=!0,u();const p=setTimeout(()=>{s.current=!1},200);return()=>clearTimeout(p)},[t]);const l=wi(p=>{p.stopPropagation();const f=n.current;if(!f)return;const{scrollTop:b,scrollHeight:v,clientHeight:E}=f,y=v-b-E;i(y<10),s.current||b{p.deltaY<0&&(a.current=!0)},onTouchMove:()=>{a.current=!0},children:[t.map((p,f)=>k.jsx(vL,{message:p,isLast:f===t.length-1},p.id)),e==="opened"&&k.jsx(zx,{size:"large"}),k.jsx(Ar,{sx:{width:"100%",height:0}})]},"stream");return k.jsxs(Ar,{sx:{position:"relative",flex:1,overflow:"hidden"},children:[d,c]})},vL=P.memo(({message:e,isLast:t})=>{const{role:n,status:r,thinking:i,content:a}=e,[,{generate:s}]=Zl(),[o,u]=P.useState(!1);P.useEffect(()=>{const y=setTimeout(()=>u(!1),2e3);return()=>clearTimeout(y)},[o]);const l=wi(()=>{navigator.clipboard.writeText(a),u(!0)}),c=wi(()=>{s(e)}),d=n==="user"?"flex-end":"flex-start",p=n==="user"?k.jsx(Ye,{variant:"body1",sx:{px:2,py:1.5,borderRadius:"0.5rem",backgroundColor:"background.default",fontSize:"0.875rem"},children:a},"user-message"):k.jsxs(k.Fragment,{children:[i&&k.jsx(F1,{isThinking:!0,content:i},"assistant-thinking"),a&&k.jsx(F1,{content:a},"assistant-message")]}),f=r==="done",b=n==="user"||n==="assistant"&&f,v=n==="assistant"&&f,E=n==="user"?{"&:hover .actions-user":{opacity:1,pointerEvents:"auto"}}:{};return k.jsx(Xe,{direction:"row",sx:{width:"100%",justifyContent:d},children:k.jsxs(Xe,{sx:{maxWidth:n==="user"?{xs:"100%",md:"80%"}:"100%",alignSelf:n==="user"?"flex-end":"flex-start",gap:1,...E},children:[p,(b||v)&&k.jsxs(Xe,{direction:"row",className:n==="user"?"actions-user":void 0,sx:{justifyContent:d,color:"grey.600",gap:.5,...n==="user"?{opacity:0,pointerEvents:"none",transition:"opacity .15s ease"}:{}},children:[b&&k.jsx(Ks,{title:o?"Copied!":"Copy",slotProps:{tooltip:{sx:{bgcolor:"primary.main",borderRadius:1}},popper:{modifiers:[{name:"offset",options:{offset:[0,-8]}}]}},children:k.jsx(Qr,{onClick:l,size:"small",sx:{width:24,height:24,borderRadius:"8px","&:hover":{bgcolor:"action.hover"}},children:o?k.jsx(wp,{}):k.jsx(Ap,{})})},"copy"),v&&k.jsx(Ks,{title:"Regenerate",slotProps:{tooltip:{sx:{bgcolor:"primary.main",borderRadius:1}},popper:{modifiers:[{name:"offset",options:{offset:[0,-8]}}]}},children:k.jsx(Qr,{onClick:c,size:"small",sx:{width:24,height:24,borderRadius:"8px","&:hover":{bgcolor:"action.hover"}},children:k.jsx(P8,{})})},"regenerate")]},"actions")]})})}),TL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"100%",height:"100%",justifyContent:"flex-start",alignItems:"stretch",overflow:"hidden"}}),xL=ue(Xe)(({theme:e})=>{const{palette:t,spacing:n}=e;return{height:"100%",paddingBlock:n(2),paddingInline:n(2),gap:n(3),overflow:"hidden",transition:"width 0.3s ease-in-out",backgroundColor:t.grey[200]}}),EL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"100%",height:"2.5rem",flex:"none",marginTop:t(1),paddingBlock:t(1),paddingInline:t(4),overflow:"hidden"}}),SL=ue(Xe)(({theme:e})=>{const{palette:t,spacing:n}=e;return{flex:1,alignItems:"center",overflow:"hidden",backgroundColor:t.grey[100]}}),wL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"48.75rem",maxWidth:"100%",height:"100%",gap:t(2),paddingBlock:t(1),paddingInline:t(4),overflow:"hidden"}}),zL=({children:e})=>{const[{type:t}]=$1(),[{modelInfo:n,clusterInfo:{status:r,needMoreNodes:i}}]=$a(),[a,{open:s}]=di({color:"primary",titleIcon:k.jsx(_s,{}),title:"Reconnect your nodes",content:k.jsxs(Xe,{sx:{gap:7},children:[k.jsxs(Xe,{sx:{gap:1},children:[k.jsx(Ye,{variant:"body1",children:"Run join command on your new Node"}),k.jsx(xd,{})]}),k.jsxs(Xe,{sx:{gap:1},children:[k.jsx(Ye,{variant:"body1",children:"Check your live node status"}),k.jsx(Ye,{variant:"body2",color:"text.disabled",children:"After you successfully start the server on the nodes, you should see them show up on the below dashboard."}),k.jsx(xs,{})]})]}),confirmLabel:"Finish"});P.useEffect(()=>{t==="cluster"&&r==="waiting"&&s()},[r,s]);const[o,{open:u}]=di({color:"primary",title:"",content:k.jsxs(k.Fragment,{children:[k.jsx(Ye,{variant:"body1",children:"Cluster rebalancing"}),k.jsx(Ye,{variant:"body2",color:"text.disabled",children:"We have noticed one of your nodes has been disconnected. We are now rebalancing your inference requests onto working nodes. Please wait a few seconds for the cluster to rebalance itself."}),k.jsx(xs,{variant:"menu"})]}),confirmLabel:"Finish"});P.useEffect(()=>{r==="rebalancing"&&u()},[r,u]);const[l,{open:c}]=di({color:"primary",title:"",content:k.jsx(k.Fragment,{children:k.jsxs(Ye,{variant:"body1",children:["Your selected model requires more nodes.",!!n&&n.vram>0&&["You’ll need a ",k.jsx("strong",{children:`minimum of ${n.vram} GB of total VRAM`})," to host this model."]||""]})}),confirmLabel:"Finish"});P.useEffect(()=>{i&&c()},[i,c]);const[d,{open:p}]=di({color:"primary",title:"",content:k.jsxs(k.Fragment,{children:[k.jsx(Ye,{variant:"body1",children:"Scheduler restart"}),k.jsxs(Ye,{variant:"body2",color:"text.disabled",children:["We have noticed that your scheduler has been disconnected (this would be the computer that ran the ",k.jsx("strong",{children:"parallax run"})," command). You would need to restart the scheduler, reconfigure the cluster, and your chat will be back up again!"]})]}),confirmLabel:"Finish"});P.useEffect(()=>{if(r==="failed"){p();return}if(r==="idle"){const y=setTimeout(()=>p(),1e3);return()=>clearTimeout(y)}},[r,p]);const[f,b]=P.useState(!0),[v,{open:E}]=di({color:"primary",titleIcon:k.jsx(v8,{}),title:"Add New Nodes",content:k.jsxs(Xe,{sx:{gap:5},children:[k.jsxs(Xe,{sx:{gap:1},children:[k.jsx(Ye,{variant:"body1",children:"Run join command on all nodes"}),k.jsx(xd,{})]}),k.jsxs(Xe,{sx:{gap:1},children:[k.jsx(Ye,{variant:"body1",children:"Check your live node status"}),k.jsx(Ye,{variant:"body2",color:"text.disabled",children:"After you successfully start the server on the nodes, you should see them show up on the below dashboard."}),k.jsx(xs,{})]})]}),confirmLabel:"Finish"});return k.jsxs(TL,{direction:"row",children:[k.jsxs(xL,{sx:{width:f?"16.25rem":"3.5rem",paddingInline:2},children:[k.jsx(Xe,{direction:"row",sx:{justifyContent:"flex-end",alignItems:"center",gap:2},children:f?k.jsxs(k.Fragment,{children:[k.jsx(Td,{}),k.jsx(Ar,{sx:{flex:1}}),k.jsx(Ks,{title:"Collapse Sidebar",placement:"right",slotProps:{tooltip:{sx:{bgcolor:"primary.main",color:"common.white"}}},children:k.jsx(Qr,{size:"em",sx:{fontSize:"1.5rem",borderRadius:"8px",color:"#808080FF","&:hover":{bgcolor:"action.hover"}},onClick:()=>b(y=>!y),children:k.jsx(A8,{})})})]}):k.jsx(k.Fragment,{children:k.jsxs(Ar,{sx:{position:"relative",width:28,height:28,display:"flex",alignItems:"center",justifyContent:"center","&:hover .logo":{opacity:0},"&:hover .toggle":{opacity:1,pointerEvents:"auto",transform:"scale(1)"}},children:[k.jsx(Ar,{className:"logo",sx:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",transition:"opacity .15s ease",opacity:1},children:k.jsx(Td,{})}),k.jsx(Ks,{title:"Expand Sidebar",placement:"right",slotProps:{tooltip:{sx:{bgcolor:"primary.main",color:"common.white"}}},children:k.jsx(Qr,{className:"toggle",size:"em",sx:{position:"absolute",opacity:0,pointerEvents:"none",fontSize:"1.5rem",transition:"opacity .15s ease, transform .15s ease","&:hover":{bgcolor:"action.hover"}},"aria-label":"Expand Sidebar",onClick:()=>b(y=>!y),children:k.jsx(k8,{})})})]})})}),f&&k.jsxs(Xe,{children:[k.jsx(Xe,{direction:"row",sx:{gap:1,color:"text.primary"},children:k.jsx(Ye,{variant:"body1",sx:{mt:"1.5px",color:"#A7A7A7FF",fontWeight:600},children:"Cluster topology"})}),k.jsx(xs,{variant:"menu",sx:{py:"2rem"}}),k.jsx(q1,{color:"info",startIcon:k.jsx(M8,{}),onClick:E,children:"Add Nodes"})]})]}),k.jsxs(SL,{children:[k.jsx(EL,{direction:"row",children:k.jsx($8,{variant:"text"})}),k.jsx(wL,{children:e})]}),v,a,o,d,l]})},AL=ue(Xe)(({theme:e})=>{const{palette:t,spacing:n}=e;return{width:"100%",height:"100%",display:"flex",alignItems:"center",gap:n(3),padding:n(3),overflow:"hidden",backgroundColor:t.grey[100]}}),CL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"100%",flex:"none",justifyContent:"flex-start",alignItems:"center",gap:t(1)}}),kL=ue(Ar)(({theme:e})=>{const{spacing:t}=e;return{position:"relative",flex:"1",width:"100%",display:"flex",flexFlow:"column nowrap",justifyContent:"center",alignItems:"center",overflowY:"hidden"}}),IL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"31rem",height:"100%",gap:t(7),paddingInline:t(1),overflowY:"auto"}}),NL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"calc((100% - 30rem) / 2 - 4rem)",height:"100%",overflow:"auto",position:"absolute",top:0,left:"2rem",alignItems:"flex-end",gap:t(2)}}),RL=ue(Xe)(({theme:e})=>{const{spacing:t}=e;return{width:"calc((100% - 30rem) / 2 - 4rem)",height:"100%",overflow:"auto",position:"absolute",top:0,right:"2rem",alignItems:"flex-start",gap:t(2)}}),UL=({children:e,contentStart:t,contentEnd:n=k.jsx(ML,{})})=>k.jsxs(AL,{children:[k.jsx(CL,{direction:"row",children:k.jsx(z8,{})}),k.jsxs(kL,{children:[k.jsx(IL,{className:"MainLayoutContent",children:e}),t&&k.jsx(NL,{children:t})||void 0,n&&k.jsx(RL,{children:n})||void 0]})]}),ML=()=>{const[{initNodesNumber:e,networkType:t,modelName:n,clusterInfo:r}]=$a();return null};export{HL as C,zx as D,op as F,M8 as I,xd as J,UL as M,xs as N,l0 as O,Ep as S,$8 as a,PL as b,up as c,fp as d,pp as e,s0 as f,zL as g,Qg as i,o0 as u}; diff --git a/src/frontend/dist/assets/setup-BNnF1V7C.js b/src/frontend/dist/assets/setup-DyxBAkwn.js similarity index 91% rename from src/frontend/dist/assets/setup-BNnF1V7C.js rename to src/frontend/dist/assets/setup-DyxBAkwn.js index e996b11..925ebf7 100644 --- a/src/frontend/dist/assets/setup-BNnF1V7C.js +++ b/src/frontend/dist/assets/setup-DyxBAkwn.js @@ -1,6 +1,6 @@ -import{r as f,g as _,a as q,u as A,j as o,s as L,b as E,T as B,d as R,e as O,m as G,f as J,h as K,B as Q,t as j,i as X,k as Z,l as tt,n as k,I as W,o as et,p as ot,S as $,A as nt,q as rt}from"./App-CwQoKbS_.js";import{u as st,F as at,O as it,I as lt,M as dt,a as ut}from"./main-layout-n9ngsR-Z.js";function ct(t){return f.Children.toArray(t).filter(e=>f.isValidElement(e))}function pt(t){return q("MuiInputAdornment",t)}const F=_("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var U;const gt=(t,e)=>{const{ownerState:r}=t;return[e.root,e[`position${R(r.position)}`],r.disablePointerEvents===!0&&e.disablePointerEvents,e[r.variant]]},ft=t=>{const{classes:e,disablePointerEvents:r,hiddenLabel:l,position:a,size:c,variant:v}=t,d={root:["root",r&&"disablePointerEvents",a&&`position${R(a)}`,v,l&&"hiddenLabel",c&&`size${R(c)}`]};return O(d,pt,e)},vt=L("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:gt})(G(({theme:t})=>({display:"flex",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active,variants:[{props:{variant:"filled"},style:{[`&.${F.positionStart}&:not(.${F.hiddenLabel})`]:{marginTop:16}}},{props:{position:"start"},style:{marginRight:8}},{props:{position:"end"},style:{marginLeft:8}},{props:{disablePointerEvents:!0},style:{pointerEvents:"none"}}]}))),D=f.forwardRef(function(e,r){const l=A({props:e,name:"MuiInputAdornment"}),{children:a,className:c,component:v="div",disablePointerEvents:d=!1,disableTypography:h=!1,position:x,variant:n,...g}=l,i=st()||{};let u=n;n&&i.variant,i&&!u&&(u=i.variant);const m={...l,hiddenLabel:i.hiddenLabel,size:i.size,disablePointerEvents:d,position:x,variant:u},C=ft(m);return o.jsx(at.Provider,{value:null,children:o.jsx(vt,{as:v,ownerState:m,className:E(C.root,c),ref:r,...g,children:typeof a=="string"&&!h?o.jsx(B,{color:"textSecondary",children:a}):o.jsxs(f.Fragment,{children:[x==="start"?U||(U=o.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):null,a]})})})}),H=f.createContext({}),Y=f.createContext(void 0);function xt(t,e){return e===void 0||t===void 0?!1:Array.isArray(e)?e.includes(t):t===e}const ht=t=>{const{classes:e,fullWidth:r,selected:l,disabled:a,size:c,color:v}=t,d={root:["root",l&&"selected",a&&"disabled",r&&"fullWidth",`size${R(c)}`,v]};return O(d,K,e)},bt=L(Q,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:r}=t;return[e.root,e[`size${R(r.size)}`]]}})(G(({theme:t})=>({...t.typography.button,borderRadius:(t.vars||t).shape.borderRadius,padding:11,border:`1px solid ${(t.vars||t).palette.divider}`,color:(t.vars||t).palette.action.active,[`&.${j.disabled}`]:{color:(t.vars||t).palette.action.disabled,border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${j.selected}`]:{color:(t.vars||t).palette.text.primary,backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.selectedOpacity),"&:hover":{backgroundColor:t.alpha((t.vars||t).palette.text.primary,`${(t.vars||t).palette.action.selectedOpacity} + ${(t.vars||t).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.selectedOpacity)}}}}},...Object.entries(t.palette).filter(X()).map(([e])=>({props:{color:e},style:{[`&.${j.selected}`]:{color:(t.vars||t).palette[e].main,backgroundColor:t.alpha((t.vars||t).palette[e].main,(t.vars||t).palette.action.selectedOpacity),"&:hover":{backgroundColor:t.alpha((t.vars||t).palette[e].main,`${(t.vars||t).palette.action.selectedOpacity} + ${(t.vars||t).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:t.alpha((t.vars||t).palette[e].main,(t.vars||t).palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:t.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:t.typography.pxToRem(15)}}]}))),V=f.forwardRef(function(e,r){const{value:l,...a}=f.useContext(H),c=f.useContext(Y),v=J({...a,selected:xt(e.value,l)},e),d=A({props:v,name:"MuiToggleButton"}),{children:h,className:x,color:n="standard",disabled:g=!1,disableFocusRipple:i=!1,fullWidth:u=!1,onChange:m,onClick:C,selected:y,size:I="medium",value:T,...P}=d,w={...d,color:n,disabled:g,disableFocusRipple:i,fullWidth:u,size:I},M=ht(w),z=p=>{C&&(C(p,T),p.defaultPrevented)||m&&m(p,T)},b=c||"";return o.jsx(bt,{className:E(a.className,M.root,x,b),disabled:g,focusRipple:!i,ref:r,onClick:z,onChange:m,value:T,ownerState:w,"aria-pressed":y,...P,children:h})});function mt(t){return q("MuiToggleButtonGroup",t)}const s=_("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]),yt=t=>{const{classes:e,orientation:r,fullWidth:l,disabled:a}=t,c={root:["root",r,l&&"fullWidth"],grouped:["grouped",`grouped${R(r)}`,a&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return O(c,mt,e)},Bt=L("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:r}=t;return[{[`& .${s.grouped}`]:e.grouped},{[`& .${s.grouped}`]:e[`grouped${R(r.orientation)}`]},{[`& .${s.firstButton}`]:e.firstButton},{[`& .${s.lastButton}`]:e.lastButton},{[`& .${s.middleButton}`]:e.middleButton},e.root,r.orientation==="vertical"&&e.vertical,r.fullWidth&&e.fullWidth]}})(G(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${s.grouped}`]:{[`&.${s.selected} + .${s.grouped}.${s.selected}`]:{borderTop:0,marginTop:0}},[`& .${s.firstButton},& .${s.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${s.lastButton},& .${s.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${s.lastButton}.${j.disabled},& .${s.middleButton}.${j.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${s.grouped}`]:{[`&.${s.selected} + .${s.grouped}.${s.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${s.firstButton},& .${s.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${s.lastButton},& .${s.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${s.lastButton}.${j.disabled},& .${s.middleButton}.${j.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),Ct=f.forwardRef(function(e,r){const l=A({props:e,name:"MuiToggleButtonGroup"}),{children:a,className:c,color:v="standard",disabled:d=!1,exclusive:h=!1,fullWidth:x=!1,onChange:n,orientation:g="horizontal",size:i="medium",value:u,...m}=l,C={...l,disabled:d,fullWidth:x,orientation:g,size:i},y=yt(C),I=f.useCallback((b,p)=>{if(!n)return;const S=u&&u.indexOf(p);let N;u&&S>=0?(N=u.slice(),N.splice(S,1)):N=u?u.concat(p):[p],n(b,N)},[n,u]),T=f.useCallback((b,p)=>{n&&n(b,u===p?null:p)},[n,u]),P=f.useMemo(()=>({className:y.grouped,onChange:h?T:I,value:u,size:i,fullWidth:x,color:v,disabled:d}),[y.grouped,h,T,I,u,i,x,v,d]),w=ct(a),M=w.length,z=b=>{const p=b===0,S=b===M-1;return p&&S?"":p?y.firstButton:S?y.lastButton:y.middleButton};return o.jsx(Bt,{role:"group",className:E(y.root,c),ref:r,ownerState:C,...m,children:o.jsx(H.Provider,{value:P,children:w.map((b,p)=>o.jsx(Y.Provider,{value:z(p),children:b},p))})})});/** +import{r as f,g as _,a as q,u as z,j as o,s as L,b as E,T as B,d as R,e as O,m as G,f as J,h as K,B as Q,t as j,i as X,k as Z,l as tt,n as k,I as W,o as et,p as ot,S as $,A as nt,q as rt}from"./App-DvpWdRS1.js";import{u as st,F as at,O as it,I as lt,M as dt,a as ut}from"./main-layout-Daq7w871.js";function ct(t){return f.Children.toArray(t).filter(e=>f.isValidElement(e))}function pt(t){return q("MuiInputAdornment",t)}const F=_("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var U;const gt=(t,e)=>{const{ownerState:r}=t;return[e.root,e[`position${R(r.position)}`],r.disablePointerEvents===!0&&e.disablePointerEvents,e[r.variant]]},ft=t=>{const{classes:e,disablePointerEvents:r,hiddenLabel:l,position:a,size:c,variant:v}=t,d={root:["root",r&&"disablePointerEvents",a&&`position${R(a)}`,v,l&&"hiddenLabel",c&&`size${R(c)}`]};return O(d,pt,e)},vt=L("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:gt})(G(({theme:t})=>({display:"flex",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active,variants:[{props:{variant:"filled"},style:{[`&.${F.positionStart}&:not(.${F.hiddenLabel})`]:{marginTop:16}}},{props:{position:"start"},style:{marginRight:8}},{props:{position:"end"},style:{marginLeft:8}},{props:{disablePointerEvents:!0},style:{pointerEvents:"none"}}]}))),D=f.forwardRef(function(e,r){const l=z({props:e,name:"MuiInputAdornment"}),{children:a,className:c,component:v="div",disablePointerEvents:d=!1,disableTypography:h=!1,position:x,variant:n,...g}=l,i=st()||{};let u=n;n&&i.variant,i&&!u&&(u=i.variant);const m={...l,hiddenLabel:i.hiddenLabel,size:i.size,disablePointerEvents:d,position:x,variant:u},C=ft(m);return o.jsx(at.Provider,{value:null,children:o.jsx(vt,{as:v,ownerState:m,className:E(C.root,c),ref:r,...g,children:typeof a=="string"&&!h?o.jsx(B,{color:"textSecondary",children:a}):o.jsxs(f.Fragment,{children:[x==="start"?U||(U=o.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):null,a]})})})}),H=f.createContext({}),Y=f.createContext(void 0);function xt(t,e){return e===void 0||t===void 0?!1:Array.isArray(e)?e.includes(t):t===e}const ht=t=>{const{classes:e,fullWidth:r,selected:l,disabled:a,size:c,color:v}=t,d={root:["root",l&&"selected",a&&"disabled",r&&"fullWidth",`size${R(c)}`,v]};return O(d,K,e)},bt=L(Q,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:r}=t;return[e.root,e[`size${R(r.size)}`]]}})(G(({theme:t})=>({...t.typography.button,borderRadius:(t.vars||t).shape.borderRadius,padding:11,border:`1px solid ${(t.vars||t).palette.divider}`,color:(t.vars||t).palette.action.active,[`&.${j.disabled}`]:{color:(t.vars||t).palette.action.disabled,border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${j.selected}`]:{color:(t.vars||t).palette.text.primary,backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.selectedOpacity),"&:hover":{backgroundColor:t.alpha((t.vars||t).palette.text.primary,`${(t.vars||t).palette.action.selectedOpacity} + ${(t.vars||t).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.selectedOpacity)}}}}},...Object.entries(t.palette).filter(X()).map(([e])=>({props:{color:e},style:{[`&.${j.selected}`]:{color:(t.vars||t).palette[e].main,backgroundColor:t.alpha((t.vars||t).palette[e].main,(t.vars||t).palette.action.selectedOpacity),"&:hover":{backgroundColor:t.alpha((t.vars||t).palette[e].main,`${(t.vars||t).palette.action.selectedOpacity} + ${(t.vars||t).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:t.alpha((t.vars||t).palette[e].main,(t.vars||t).palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:t.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:t.typography.pxToRem(15)}}]}))),V=f.forwardRef(function(e,r){const{value:l,...a}=f.useContext(H),c=f.useContext(Y),v=J({...a,selected:xt(e.value,l)},e),d=z({props:v,name:"MuiToggleButton"}),{children:h,className:x,color:n="standard",disabled:g=!1,disableFocusRipple:i=!1,fullWidth:u=!1,onChange:m,onClick:C,selected:y,size:I="medium",value:T,...P}=d,w={...d,color:n,disabled:g,disableFocusRipple:i,fullWidth:u,size:I},M=ht(w),A=p=>{C&&(C(p,T),p.defaultPrevented)||m&&m(p,T)},b=c||"";return o.jsx(bt,{className:E(a.className,M.root,x,b),disabled:g,focusRipple:!i,ref:r,onClick:A,onChange:m,value:T,ownerState:w,"aria-pressed":y,...P,children:h})});function mt(t){return q("MuiToggleButtonGroup",t)}const s=_("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]),yt=t=>{const{classes:e,orientation:r,fullWidth:l,disabled:a}=t,c={root:["root",r,l&&"fullWidth"],grouped:["grouped",`grouped${R(r)}`,a&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return O(c,mt,e)},Bt=L("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:r}=t;return[{[`& .${s.grouped}`]:e.grouped},{[`& .${s.grouped}`]:e[`grouped${R(r.orientation)}`]},{[`& .${s.firstButton}`]:e.firstButton},{[`& .${s.lastButton}`]:e.lastButton},{[`& .${s.middleButton}`]:e.middleButton},e.root,r.orientation==="vertical"&&e.vertical,r.fullWidth&&e.fullWidth]}})(G(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${s.grouped}`]:{[`&.${s.selected} + .${s.grouped}.${s.selected}`]:{borderTop:0,marginTop:0}},[`& .${s.firstButton},& .${s.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${s.lastButton},& .${s.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${s.lastButton}.${j.disabled},& .${s.middleButton}.${j.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${s.grouped}`]:{[`&.${s.selected} + .${s.grouped}.${s.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${s.firstButton},& .${s.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${s.lastButton},& .${s.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${s.lastButton}.${j.disabled},& .${s.middleButton}.${j.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),Ct=f.forwardRef(function(e,r){const l=z({props:e,name:"MuiToggleButtonGroup"}),{children:a,className:c,color:v="standard",disabled:d=!1,exclusive:h=!1,fullWidth:x=!1,onChange:n,orientation:g="horizontal",size:i="medium",value:u,...m}=l,C={...l,disabled:d,fullWidth:x,orientation:g,size:i},y=yt(C),I=f.useCallback((b,p)=>{if(!n)return;const S=u&&u.indexOf(p);let N;u&&S>=0?(N=u.slice(),N.splice(S,1)):N=u?u.concat(p):[p],n(b,N)},[n,u]),T=f.useCallback((b,p)=>{n&&n(b,u===p?null:p)},[n,u]),P=f.useMemo(()=>({className:y.grouped,onChange:h?T:I,value:u,size:i,fullWidth:x,color:v,disabled:d}),[y.grouped,h,T,I,u,i,x,v,d]),w=ct(a),M=w.length,A=b=>{const p=b===0,S=b===M-1;return p&&S?"":p?y.firstButton:S?y.lastButton:y.middleButton};return o.jsx(Bt,{role:"group",className:E(y.root,c),ref:r,ownerState:C,...m,children:o.jsx(H.Provider,{value:P,children:w.map((b,p)=>o.jsx(Y.Provider,{value:A(p),children:b},p))})})});/** * @license @tabler/icons-react v3.35.0 - MIT * * This source code is licensed under the MIT license. * See the LICENSE file in the root directory of this source tree. - */const $t=[["path",{d:"M5 12l14 0",key:"svg-0"}]],jt=Z("outline","minus","Minus",$t),Rt=({inputRef:t,slotProps:e,onChange:r,...l})=>{const a=f.useRef(null),c=tt(a,t),v=k(n=>{n.target.value=`${Math.max(1,parseInt(n.target.value)||1)}`,r?.(n)}),d=k(n=>{if(r){const g={target:{value:n.toString()},currentTarget:{value:n.toString()},type:"change",bubbles:!0,cancelable:!0,preventDefault:()=>{},stopPropagation:()=>{}};r(g)}}),h=k(()=>{const{current:n}=a;if(!n)return;const g=Number(n.value),i=Math.max(1,g-1);n.value=i.toString(),d(i)}),x=k(()=>{const{current:n}=a;if(!n)return;const g=Number(n.value),i=Math.max(1,g+1);n.value=i.toString(),d(i)});return o.jsx(it,{...l,type:"number",sx:{"& input":{textAlign:"center",width:"2.5rem"}},inputRef:c,onChange:v,startAdornment:o.jsx(D,{position:"start",children:o.jsx(W,{onClick:h,children:o.jsx(jt,{})})}),endAdornment:o.jsx(D,{position:"end",children:o.jsx(W,{onClick:x,children:o.jsx(lt,{})})}),slotProps:{input:{step:1,sx:{textAlign:"center",...e?.input?.sx},min:1,...e?.input},...e}})};function St(){const[{networkType:t,initNodesNumber:e,modelInfo:r},{setNetworkType:l,setInitNodesNumber:a,init:c}]=et(),v=ot(),[d,h]=f.useState(!1),x=k(async()=>{h(!0),Promise.resolve().then(()=>c()).then(()=>v("/join")).catch(n=>console.error(n)).finally(()=>h(!1))});return o.jsxs(dt,{children:[o.jsx(B,{variant:"h1",children:"Build Your Own AI Cluster"}),o.jsxs($,{gap:2.5,children:[o.jsxs($,{gap:.5,children:[o.jsx(B,{variant:"body1",children:"Step 1 - Specify the initial number of nodes"}),o.jsxs(B,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:["Parallax runs and hosts model distributedly on your everyday hardware. Select the number of nodes you would like to add to your cluster with their connection types."," "]})]}),o.jsxs($,{direction:"row",justifyContent:"space-between",alignItems:"center",gap:2,children:[o.jsx(B,{color:"text.secondary",children:"Node Number"}),o.jsx(Rt,{sx:{width:"10rem",boxShadow:"none",bgcolor:"transparent"},slotProps:{root:{sx:{bgcolor:"transparent","&:hover":{bgcolor:"transparent"},"&:focus-within":{bgcolor:"transparent"}}},input:{sx:{bgcolor:"transparent !important","&:focus":{outline:"none"}}}},value:e,onChange:n=>a(Number(n.target.value))})]}),o.jsxs($,{direction:"row",justifyContent:"space-between",alignItems:"center",gap:2,children:[o.jsx(B,{color:"text.secondary",children:"Are you nodes within the same local network?"}),o.jsxs(Ct,{sx:{width:"10rem",textTransform:"none"},exclusive:!0,value:t,onChange:(n,g)=>g&&l(g),children:[o.jsx(V,{value:"local",sx:{textTransform:"none"},children:"Local"}),o.jsx(V,{value:"remote",sx:{textTransform:"none"},children:"Remote"})]})]})]}),o.jsxs($,{gap:2.5,children:[o.jsxs($,{gap:.5,children:[o.jsx(B,{variant:"body1",children:"Step 2 - Select the model you would like to host"}),o.jsx(B,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:"Currently we support a handful of state-of-the-art open source models. Do keep in mind that larger models require more nodes to host, so If this is your first time trying Parallax, we suggest you to start with smaller models."})]}),o.jsx(ut,{}),!!r&&r.vram>0&&o.jsxs(nt,{severity:"warning",variant:"standard",children:["To host this model, we suggest you to have a total VRAM size of ",r.vram," GB."]},"vram-warning")]}),o.jsx($,{direction:"row",justifyContent:"flex-end",alignItems:"center",gap:2,children:o.jsx(rt,{loading:d,onClick:x,children:"Continue"})})]})}export{St as default}; + */const $t=[["path",{d:"M5 12l14 0",key:"svg-0"}]],jt=Z("outline","minus","Minus",$t),Rt=({inputRef:t,slotProps:e,onChange:r,...l})=>{const a=f.useRef(null),c=tt(a,t),v=k(n=>{n.target.value=`${Math.max(1,parseInt(n.target.value)||1)}`,r?.(n)}),d=k(n=>{if(r){const g={target:{value:n.toString()},currentTarget:{value:n.toString()},type:"change",bubbles:!0,cancelable:!0,preventDefault:()=>{},stopPropagation:()=>{}};r(g)}}),h=k(()=>{const{current:n}=a;if(!n)return;const g=Number(n.value),i=Math.max(1,g-1);n.value=i.toString(),d(i)}),x=k(()=>{const{current:n}=a;if(!n)return;const g=Number(n.value),i=Math.max(1,g+1);n.value=i.toString(),d(i)});return o.jsx(it,{...l,type:"number",sx:{"& input":{textAlign:"center",width:"2.5rem"}},inputRef:c,onChange:v,startAdornment:o.jsx(D,{position:"start",children:o.jsx(W,{onClick:h,children:o.jsx(jt,{})})}),endAdornment:o.jsx(D,{position:"end",children:o.jsx(W,{onClick:x,children:o.jsx(lt,{})})}),slotProps:{input:{step:1,sx:{textAlign:"center",...e?.input?.sx},min:1,...e?.input},...e}})};function St(){const[{networkType:t,initNodesNumber:e,modelInfo:r},{setNetworkType:l,setInitNodesNumber:a,init:c}]=et(),v=ot(),[d,h]=f.useState(!1),x=k(async()=>{h(!0),Promise.resolve().then(()=>c()).then(()=>v("/join")).catch(n=>console.error(n)).finally(()=>h(!1))});return o.jsxs(dt,{children:[o.jsx(B,{variant:"h1",children:"Build Your Own AI Cluster"}),o.jsxs($,{gap:2.5,children:[o.jsxs($,{gap:.5,children:[o.jsx(B,{variant:"body1",children:"Step 1 - Specify the initial number of nodes"}),o.jsxs(B,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:["Parallax runs and hosts model distributedly on your everyday hardware. Select the number of nodes you would like to add to your cluster with their connection types."," "]})]}),o.jsxs($,{direction:"row",justifyContent:"space-between",alignItems:"center",gap:2,children:[o.jsx(B,{color:"text.secondary",children:"Node Number"}),o.jsx(Rt,{sx:{width:"10rem",boxShadow:"none",bgcolor:"transparent"},slotProps:{root:{sx:{bgcolor:"transparent","&:hover":{bgcolor:"transparent"},"&:focus-within":{bgcolor:"transparent"}}},input:{sx:{bgcolor:"transparent !important","&:focus":{outline:"none"}}}},value:e,onChange:n=>a(Number(n.target.value))})]}),o.jsxs($,{direction:"row",justifyContent:"space-between",alignItems:"center",gap:2,children:[o.jsx(B,{color:"text.secondary",children:"Are you nodes within the same local network?"}),o.jsxs(Ct,{sx:{width:"10rem",textTransform:"none"},exclusive:!0,value:t,onChange:(n,g)=>g&&l(g),children:[o.jsx(V,{value:"local",sx:{textTransform:"none"},children:"Local"}),o.jsx(V,{value:"remote",sx:{textTransform:"none"},children:"Remote"})]})]})]}),o.jsxs($,{gap:2.5,children:[o.jsxs($,{gap:.5,children:[o.jsx(B,{variant:"body1",children:"Step 2 - Select the model you would like to host"}),o.jsx(B,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:"Currently we support a handful of state-of-the-art open source models. Do keep in mind that larger models require more nodes to host, so If this is your first time trying Parallax, we suggest you to start with smaller models."})]}),o.jsx(ut,{}),!!r&&r.vram>0&&o.jsx(nt,{severity:"warning",variant:"standard",children:["You’ll need a ",o.jsx("strong",{children:`minimum of ${r.vram} GB of total VRAM`})," to host this model."]},"vram-warning")]}),o.jsx($,{direction:"row",justifyContent:"flex-end",alignItems:"center",gap:2,children:o.jsx(rt,{loading:d,onClick:x,children:"Continue"})})]})}export{St as default}; diff --git a/src/frontend/dist/chat.html b/src/frontend/dist/chat.html index 546690f..efd0b92 100644 --- a/src/frontend/dist/chat.html +++ b/src/frontend/dist/chat.html @@ -5,8 +5,8 @@ CHAT Parallax by Gradient - - + + diff --git a/src/frontend/dist/index.html b/src/frontend/dist/index.html index 373a56c..459c8c0 100644 --- a/src/frontend/dist/index.html +++ b/src/frontend/dist/index.html @@ -5,8 +5,8 @@ Parallax by Gradient - - + + diff --git a/src/frontend/src/components/common/drawer-layout.tsx b/src/frontend/src/components/common/drawer-layout.tsx index 94395eb..6f26cac 100644 --- a/src/frontend/src/components/common/drawer-layout.tsx +++ b/src/frontend/src/components/common/drawer-layout.tsx @@ -152,8 +152,11 @@ export const DrawerLayout: FC = ({ children }) => { Your selected model requires more nodes. {(!!modelInfo - && modelInfo.vram > 0 - && `To host this model, we suggest you to have a total VRAM size of ${modelInfo.vram} GB.`) + && modelInfo.vram > 0 && [ + `You’ll need a `, + {`minimum of ${modelInfo.vram} GB of total VRAM`}, + ` to host this model.`, + ]) || ''} diff --git a/src/frontend/src/pages/join.tsx b/src/frontend/src/pages/join.tsx index 4f27a16..2cec1c1 100644 --- a/src/frontend/src/pages/join.tsx +++ b/src/frontend/src/pages/join.tsx @@ -97,8 +97,12 @@ export default function PageJoin() { {!!modelInfo && modelInfo.vram > 0 && needMoreNodes && ( - Your selected model requires more nodes. To host this model, we suggest you to have a - total VRAM size of {modelInfo.vram} GB. + {[ + `Your selected model requires more nodes.`, + `You’ll need a `, + {`minimum of ${modelInfo.vram} GB of total VRAM`}, + ` to host this model.`, + ]} )} diff --git a/src/frontend/src/pages/setup.tsx b/src/frontend/src/pages/setup.tsx index 0a3efe9..5627cd5 100644 --- a/src/frontend/src/pages/setup.tsx +++ b/src/frontend/src/pages/setup.tsx @@ -111,7 +111,11 @@ export default function PageSetup() { {!!modelInfo && modelInfo.vram > 0 && ( - To host this model, we suggest you to have a total VRAM size of {modelInfo.vram} GB. + {[ + `You’ll need a `, + {`minimum of ${modelInfo.vram} GB of total VRAM`}, + ` to host this model.`, + ]} )} From 59857ede08e38b888d8a7fbb58e286472c0c71ca Mon Sep 17 00:00:00 2001 From: Xiaodong Date: Tue, 11 Nov 2025 11:45:27 +0800 Subject: [PATCH 5/7] fix(frontend): setup page continue button no work after backward from join page --- src/frontend/src/pages/setup.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/frontend/src/pages/setup.tsx b/src/frontend/src/pages/setup.tsx index 5627cd5..9c193b0 100644 --- a/src/frontend/src/pages/setup.tsx +++ b/src/frontend/src/pages/setup.tsx @@ -23,7 +23,12 @@ import { useRefCallback } from '../hooks'; export default function PageSetup() { const [ - { networkType, initNodesNumber, modelInfo }, + { + networkType, + initNodesNumber, + modelInfo, + clusterInfo: { status: clusterStatus }, + }, { setNetworkType, setInitNodesNumber, init }, ] = useCluster(); @@ -32,12 +37,17 @@ export default function PageSetup() { const [loading, setLoading] = useState(false); const onContinue = useRefCallback(async () => { + if (clusterStatus === 'idle' || clusterStatus === 'failed') { setLoading(true); Promise.resolve() .then(() => init()) .then(() => navigate('/join')) .catch((e) => console.error(e)) .finally(() => setLoading(false)); + return; + } else { + navigate('/join'); + } }); return ( From 4138243a10a83f459668cbb54394b0e6bb572a4f Mon Sep 17 00:00:00 2001 From: Xiaodong Date: Tue, 11 Nov 2025 11:46:17 +0800 Subject: [PATCH 6/7] fix(frontend): text wrap incorrectly in need more nodes alert --- .../{App-DvpWdRS1.js => App-Ba9WPx9O.js} | 4 ++-- .../{chat-ejIJrEMQ.js => chat-D4M-59Zb.js} | 2 +- src/frontend/dist/assets/chat-DLri3GLO.js | 1 - src/frontend/dist/assets/chat-DlBZcbmF.js | 1 + .../{join-TpGKfeh0.js => join-BzV0zEA8.js} | 4 ++-- src/frontend/dist/assets/main-CkRtaR8-.js | 1 - src/frontend/dist/assets/main-CrNN7OEz.js | 1 + ...ut-Daq7w871.js => main-layout-DhzCWI3u.js} | 2 +- src/frontend/dist/assets/setup-DyxBAkwn.js | 6 ----- src/frontend/dist/assets/setup-eQlkglW5.js | 6 +++++ src/frontend/dist/chat.html | 4 ++-- src/frontend/dist/index.html | 4 ++-- src/frontend/src/pages/join.tsx | 14 ++++++----- src/frontend/src/pages/setup.tsx | 24 ++++++++++--------- 14 files changed, 39 insertions(+), 35 deletions(-) rename src/frontend/dist/assets/{App-DvpWdRS1.js => App-Ba9WPx9O.js} (99%) rename src/frontend/dist/assets/{chat-ejIJrEMQ.js => chat-D4M-59Zb.js} (99%) delete mode 100644 src/frontend/dist/assets/chat-DLri3GLO.js create mode 100644 src/frontend/dist/assets/chat-DlBZcbmF.js rename src/frontend/dist/assets/{join-TpGKfeh0.js => join-BzV0zEA8.js} (58%) delete mode 100644 src/frontend/dist/assets/main-CkRtaR8-.js create mode 100644 src/frontend/dist/assets/main-CrNN7OEz.js rename src/frontend/dist/assets/{main-layout-Daq7w871.js => main-layout-DhzCWI3u.js} (99%) delete mode 100644 src/frontend/dist/assets/setup-DyxBAkwn.js create mode 100644 src/frontend/dist/assets/setup-eQlkglW5.js diff --git a/src/frontend/dist/assets/App-DvpWdRS1.js b/src/frontend/dist/assets/App-Ba9WPx9O.js similarity index 99% rename from src/frontend/dist/assets/App-DvpWdRS1.js rename to src/frontend/dist/assets/App-Ba9WPx9O.js index d881add..b2539fd 100644 --- a/src/frontend/dist/assets/App-DvpWdRS1.js +++ b/src/frontend/dist/assets/App-Ba9WPx9O.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-DyxBAkwn.js","assets/main-layout-Daq7w871.js","assets/main-layout-DVneG3Rq.css","assets/join-TpGKfeh0.js","assets/chat-ejIJrEMQ.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-eQlkglW5.js","assets/main-layout-DhzCWI3u.js","assets/main-layout-DVneG3Rq.css","assets/join-BzV0zEA8.js","assets/chat-D4M-59Zb.js"])))=>i.map(i=>d[i]); function N2(n,r){for(var l=0;lo[u]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))o(u);new MutationObserver(u=>{for(const c of u)if(c.type==="childList")for(const d of c.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&o(d)}).observe(document,{childList:!0,subtree:!0});function l(u){const c={};return u.integrity&&(c.integrity=u.integrity),u.referrerPolicy&&(c.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?c.credentials="include":u.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function o(u){if(u.ep)return;u.ep=!0;const c=l(u);fetch(u.href,c)}})();function Ba(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Of={exports:{}},vl={};/** * @license React * react-jsx-runtime.production.js @@ -317,4 +317,4 @@ export default theme;`}function Qg(n){return typeof n=="number"?`${(n*100).toFix `);H=V.pop()||"",V.forEach(le=>{try{const w=u(JSON.parse(le));M(w)}catch(w){C("Parse Message Error",w)}})}}).catch(async ee=>{Q&&(clearTimeout(Q),Q=void 0),await D(),C("fetch error",ee),T("error"),y?.(ee)}).finally(async()=>{Q&&(clearTimeout(Q),Q=void 0),await D(),E=void 0})};return Object.freeze({send:$,abort:()=>{try{E?.abort(),E=void 0}catch(N){C("abort error",N)}A?.cancel(),A=void 0,T("disconnected")}})},mu="",Aw=async()=>{const r=await(await fetch(`${mu}/model/list`,{method:"GET"})).json();if(r.type!=="model_list")throw new Error(`Invalid message type: ${r.type}.`);return r.data},Ow=async n=>{const l=await(await fetch(`${mu}/scheduler/init`,{method:"POST",body:JSON.stringify(n)})).json();if(l.type!=="scheduler_init")throw new Error(`Invalid message type: ${l.type}.`);return l.data},Rw=ww({url:`${mu}/cluster/status`,method:"GET"}),Dd=n=>{const r=x.useRef(void 0);return r.current||(r.current={value:typeof n=="function"?n():n}),r.current.value},Dw=n=>{const r=x.useRef(void 0);return r.current||(r.current={callback:n}),r.current.callback},fr=n=>{const r=x.useRef(void 0);return r.current=n,Dw(((...o)=>r.current?.(...o)))},g1=x.createContext(void 0),{Provider:_w}=g1,kw=({children:n,type:r})=>{const l=Dd(()=>({})),o=x.useMemo(()=>[{type:r},l],[r,l]);return F.jsx(_w,{value:o,children:n})},zw=()=>{const n=x.useContext(g1);if(!n)throw new Error("useHost must be used within a HostProvider");return n},$w="data:image/svg+xml,%3csvg%20width='721'%20height='721'%20viewBox='0%200%20721%20721'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_1637_2934)'%3e%3cg%20clip-path='url(%23clip1_1637_2934)'%3e%3cpath%20d='M304.246%20294.611V249.028C304.246%20245.189%20305.687%20242.309%20309.044%20240.392L400.692%20187.612C413.167%20180.415%20428.042%20177.058%20443.394%20177.058C500.971%20177.058%20537.44%20221.682%20537.44%20269.182C537.44%20272.54%20537.44%20276.379%20536.959%20280.218L441.954%20224.558C436.197%20221.201%20430.437%20221.201%20424.68%20224.558L304.246%20294.611ZM518.245%20472.145V363.224C518.245%20356.505%20515.364%20351.707%20509.608%20348.349L389.174%20278.296L428.519%20255.743C431.877%20253.826%20434.757%20253.826%20438.115%20255.743L529.762%20308.523C556.154%20323.879%20573.905%20356.505%20573.905%20388.171C573.905%20424.636%20552.315%20458.225%20518.245%20472.141V472.145ZM275.937%20376.182L236.592%20353.152C233.235%20351.235%20231.794%20348.354%20231.794%20344.515V238.956C231.794%20187.617%20271.139%20148.749%20324.4%20148.749C344.555%20148.749%20363.264%20155.468%20379.102%20167.463L284.578%20222.164C278.822%20225.521%20275.942%20230.319%20275.942%20237.039V376.186L275.937%20376.182ZM360.626%20425.122L304.246%20393.455V326.283L360.626%20294.616L417.002%20326.283V393.455L360.626%20425.122ZM396.852%20570.989C376.698%20570.989%20357.989%20564.27%20342.151%20552.276L436.674%20497.574C442.431%20494.217%20445.311%20489.419%20445.311%20482.699V343.552L485.138%20366.582C488.495%20368.499%20489.936%20371.379%20489.936%20375.219V480.778C489.936%20532.117%20450.109%20570.985%20396.852%20570.985V570.989ZM283.134%20463.99L191.486%20411.211C165.094%20395.854%20147.343%20363.229%20147.343%20331.562C147.343%20294.616%20169.415%20261.509%20203.48%20247.593V356.991C203.48%20363.71%20206.361%20368.508%20212.117%20371.866L332.074%20441.437L292.729%20463.99C289.372%20465.907%20286.491%20465.907%20283.134%20463.99ZM277.859%20542.68C223.639%20542.68%20183.813%20501.895%20183.813%20451.514C183.813%20447.675%20184.294%20443.836%20184.771%20439.997L279.295%20494.698C285.051%20498.056%20290.812%20498.056%20296.568%20494.698L417.002%20425.127V470.71C417.002%20474.549%20415.562%20477.429%20412.204%20479.346L320.557%20532.126C308.081%20539.323%20293.206%20542.68%20277.854%20542.68H277.859ZM396.852%20599.776C454.911%20599.776%20503.37%20558.513%20514.41%20503.812C568.149%20489.896%20602.696%20439.515%20602.696%20388.176C602.696%20354.587%20588.303%20321.962%20562.392%20298.45C564.791%20288.373%20566.231%20278.296%20566.231%20268.224C566.231%20199.611%20510.571%20148.267%20446.274%20148.267C433.322%20148.267%20420.846%20150.184%20408.37%20154.505C386.775%20133.392%20357.026%20119.958%20324.4%20119.958C266.342%20119.958%20217.883%20161.22%20206.843%20215.921C153.104%20229.837%20118.557%20280.218%20118.557%20331.557C118.557%20365.146%20132.95%20397.771%20158.861%20421.283C156.462%20431.36%20155.022%20441.437%20155.022%20451.51C155.022%20520.123%20210.682%20571.466%20274.978%20571.466C287.931%20571.466%20300.407%20569.549%20312.883%20565.228C334.473%20586.341%20364.222%20599.776%20396.852%20599.776Z'%20fill='black'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_1637_2934'%3e%3crect%20width='720'%20height='720'%20fill='white'%20transform='translate(0.606934%200.0999756)'/%3e%3c/clipPath%3e%3cclipPath%20id='clip1_1637_2934'%3e%3crect%20width='484.139'%20height='479.818'%20fill='white'%20transform='translate(118.557%20119.958)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",Nw="/assets/Qwen3-CHUafU1E.png",Lw="/assets/NVIDIA-DleEbUC3.png",Bw="/assets/MoonshotAI-C_u2alMD.png",jw="/assets/DeepSeek-C1XK8X_U.png",Uw="/assets/Zai-C5JP-emT.png",Hw="/assets/MiniMax-sqkAGh7b.png",Yw={openai:$w,qwen:Nw,nvidia:Lw,moonshotai:Bw,deepseek:jw,zai:Uw,minimaxai:Hw},qw=n=>{n=n.toLowerCase();const r=n.split(/[-/]/);return Yw[r[0]]||""},Ts=(...n)=>{console.log("%c cluster.tsx ","color: white; background: darkcyan;",...n)},By={id:"",status:"idle",modelName:"",nodeJoinCommand:{},initNodesNumber:4,needMoreNodes:!1},y1=x.createContext(void 0),{Provider:Gw}=y1,Vw=({children:n})=>{const[{type:r}]=zw(),[l,o]=x.useState("local"),[u,c]=x.useState(1),[d,h]=x.useState(""),[p,m]=x.useState([]),y=fr(async()=>{if(r==="node")return;let B=!1;for(;!B;)try{const _=await Aw();m(N=>{const P=_.map(({name:W,vram_gb:I})=>(W=W||"",I=I||0,{name:W,displayName:W,logoUrl:qw(W),vram:I}));return JSON.stringify(P)!==JSON.stringify(N)?(Ts("setModelInfoList",P),P):N}),B=!0}catch(_){console.error("getModelList error",_),await new Promise(N=>setTimeout(N,2e3))}});x.useEffect(()=>{y()},[]),x.useEffect(()=>{p.length&&h(p[0].name)},[p]);const[b,E]=x.useState(By),[A,C]=x.useState([]),T=fr(()=>{Ts("reset"),E(By),C([])}),M=x.useMemo(()=>Rw({debugName:"ClusterStatus",autoReconnect:!0,onMessage:N=>{if(N.type==="cluster_status"){const{data:{status:P,init_nodes_num:W,model_name:I,node_join_command:Q,node_list:K,need_more_nodes:S}}=N;h(ee=>I||ee),E(ee=>{const H={...ee,status:I&&P||"idle",initNodesNumber:W||0,modelName:I||"",nodeJoinCommand:Q||{},needMoreNodes:S||!1};return JSON.stringify(H)!==JSON.stringify(ee)?(Ts("setClusterInfo",H),H):ee}),C(ee=>{let H=K.map(({node_id:U,status:V,gpu_name:le,gpu_memory:w})=>({id:U,status:V,gpuName:le,gpuMemory:w}));const Z=ee.filter(U=>H.some(V=>V.id===U.id)),O=ee.filter(U=>!H.some(V=>V.id===U.id)).map(U=>({...U,status:"failed"}));return JSON.stringify(H)===JSON.stringify(Z)&&(H=[...H,...O]),JSON.stringify(H)!==JSON.stringify(ee)?(Ts("setNodeInfoList",H),H):ee})}},onError:T}),[]);x.useEffect(()=>{M.send()},[]);const D=fr(async()=>{if(u<1)throw new Error("initNodesNumber must be greater than 0");if(!d)throw new Error("modelName is required");await Ow({model_name:d,init_nodes_num:u,is_local_network:l==="local"})}),k=x.useMemo(()=>({setNetworkType:o,setInitNodesNumber:c,setModelName:h,init:D}),[]),$=x.useMemo(()=>[{networkType:l,initNodesNumber:u,modelName:d,modelInfo:p.find(B=>B.name===d),modelInfoList:p,clusterInfo:b,nodeInfoList:A},k],[l,u,d,p,b,A,k]);return F.jsx(Gw,{value:$,children:n})},v1=()=>{const n=x.useContext(y1);if(!n)throw new Error("useCluster must be used within a ClusterProvider");return n};function Pw(n){n=n.trim();const r={analysis:"",final:""},l=/<\|channel\|>([^<]+)<\|message\|>(.*?)(<\|end\|>|$)/gs;let o;for(;(o=l.exec(n))!==null;)r[o[1]]=o[2]?.trim()||"";return r}const Ms="",jy="";function Xw(n){n=n.trim();const r={think:"",content:""};for(;n.includes(Ms);){const l=n.indexOf(Ms),o=n.indexOf(jy),u=n.substring(l+Ms.length,o>l?o:n.length);n=n.replace(Ms+u+(o>l?jy:""),""),r.think+=` `+u}return r.think=r.think.trim(),r.content=n.trim(),r}const yt=async(...n)=>{},Zw=({children:n})=>{const[{clusterInfo:{status:r,modelName:l}}]=v1(),[o,u]=x.useState(""),[c,d]=x.useState("closed"),h=fr(M=>{d(D=>{const k=typeof M=="function"?M(D):M;return k!==D&&yt("setStatus","status",k),k})}),[p,m]=x.useState([]),y=Dd(()=>Iw({onOpen:()=>{yt("SSE OPEN"),h("opened")},onClose:()=>{yt("SSE CLOSE"),m(M=>{const D=M[M.length-1],{id:k,raw:$,thinking:B,content:_}=D;return yt("GENERATING DONE","lastMessage:",D),yt("GENERATING DONE","id:",k),yt("GENERATING DONE","raw:",$),yt("GENERATING DONE","thinking:",B),yt("GENERATING DONE","content:",_),[...M.slice(0,-1),{...D,status:"done"}]}),h("closed")},onError:M=>{yt("SSE ERROR",M),m(D=>{const k=D[D.length-1],{id:$,raw:B,thinking:_,content:N}=k;return yt("GENERATING ERROR","lastMessage:",k),yt("GENERATING ERROR","id:",$),yt("GENERATING ERROR","raw:",B),yt("GENERATING ERROR","thinking:",_),yt("GENERATING ERROR","content:",N),[...D.slice(0,-1),{...k,status:"done"}]}),yt("SSE ERROR",M),h("error")},onMessage:M=>{const{data:{id:D,object:k,model:$,created:B,choices:_,usage:N}}=M;k==="chat.completion.chunk"&&_?.length>0&&(_[0].delta.content&&h("generating"),m(P=>{let W=P;if(_.forEach(({delta:{role:I,content:Q}={}})=>{if(typeof Q!="string"||!Q)return;I=I||"assistant";let K=W[W.length-1];if(K&&K.role===I){const S=K.raw+Q;K={...K,raw:S,content:S},W=[...W.slice(0,-1),K]}else K={id:D,role:I,status:"thinking",raw:Q,content:Q,createdAt:B},W=[...W,K]}),W!==P&&typeof $=="string"){let I=W[W.length-1],Q="",K="";const S=$.toLowerCase();S.includes("gpt-oss")?{analysis:Q,final:K}=Pw(I.raw||""):S.includes("qwen")?{think:Q,content:K}=Xw(I.raw||""):K=I.raw||"",I={...I,status:K&&"generating"||"thinking",thinking:Q,content:K},W=[...W.slice(0,-1),I]}return W}))}})),b=fr(M=>{if(r!=="available"||c==="opened"||c==="generating"||!l)return;let D=p;if(M){const k=p.findIndex(B=>B.id===M.id),$=p[k];if(!$)return;D=D.slice(0,k+($.role==="user"?1:0)),yt("generate","regenerate",D)}else{const k=o.trim();if(!k)return;u("");const $=performance.now();D=[...D,{id:$.toString(),role:"user",status:"done",content:k,createdAt:$}],yt("generate","new",D)}m(D),y.connect(l,D.map(({id:k,role:$,content:B})=>({id:k,role:$,content:B})))}),E=fr(()=>{yt("stop","status",c),!(c==="closed"||c==="error")&&y.disconnect()}),A=fr(()=>{yt("clear","status",c),E(),!(c==="opened"||c==="generating")&&m([])}),C=Dd({setInput:u,generate:b,stop:E,clear:A}),T=x.useMemo(()=>[{input:o,status:c,messages:p},C],[o,c,p,C]);return F.jsx(b1.Provider,{value:T,children:n})},b1=x.createContext(void 0),vA=()=>{const n=x.useContext(b1);if(!n)throw new Error("useChat must be used within a ChatProvider");return n},Iw=n=>{const{onOpen:r,onClose:l,onError:o,onMessage:u}=n,c=new TextDecoder;let d,h;return{connect:(y,b)=>{h=new AbortController;const E=`${mu}/v1/chat/completions`;r?.(),fetch(E,{method:"POST",body:JSON.stringify({stream:!0,model:y,messages:b,max_tokens:2048,sampling_params:{top_k:3}}),signal:h.signal}).then(async A=>{const C=A.status,T=A.headers.get("Content-Type");if(C!==200){o?.(new Error(`[SSE] Failed to connect: ${C}`));return}if(!T?.includes("text/event-stream")){o?.(new Error(`[SSE] Invalid content type: ${T}`));return}if(d=A.body?.getReader(),!d){o?.(new Error("[SSE] Failed to get reader"));return}let M="";const D=k=>{const $={event:"message",data:void 0};k.forEach(B=>{const _=B.indexOf(":");if(_<=0)return;const N=B.slice(0,_).trim(),P=B.slice(_+1).trim();if(!P.startsWith(":")){switch(N){case"event":$.event=P;break;case"id":$.id=P;break;case"data":try{const W=JSON.parse(P),I=Q=>{Q&&(Array.isArray(Q)?Q.forEach((K,S)=>{K===null?Q[S]=void 0:I(K)}):typeof Q=="object"&&Object.keys(Q).forEach(K=>{Q[K]===null?delete Q[K]:I(Q[K])}))};I(W),$.data=W}catch{$.data=P}break}$.data!==void 0&&u?.($)}})};for(;;){const{done:k,value:$}=await d.read();if(k){l?.();return}const B=c.decode($);M+=B;const _=M.split(` -`);M=_.pop()||"",D(_)}}).catch(A=>{if(A instanceof Error&&A.name==="AbortError"){l?.();return}o?.(A)})},disconnect:()=>{d?.cancel(),d=void 0,h?.abort("stop"),h=void 0,l?.()}}},td="/setup",Qw="/join",ws="/chat",Kw=x.lazy(()=>hu(()=>import("./setup-DyxBAkwn.js"),__vite__mapDeps([0,1,2]))),Ww=x.lazy(()=>hu(()=>import("./join-TpGKfeh0.js"),__vite__mapDeps([3,1,2]))),Fw=x.lazy(()=>hu(()=>import("./chat-ejIJrEMQ.js"),__vite__mapDeps([4,1,2]))),Uy=(...n)=>{console.log("%c router.tsx ","color: white; background: purple;",...n)},Jw=()=>{const n=zd(),{pathname:r}=ua(),[{clusterInfo:{status:l}}]=v1();return x.useEffect(()=>{const u=c=>{const d=setTimeout(()=>{Uy("navigate to",c),n(c)},300);return()=>clearTimeout(d)};if(r==="/"||(Uy("pathname",r,"cluster status",l),l==="idle"&&r.startsWith(ws)))return u(td);if(l==="available"&&!r.startsWith(ws))return u(ws)},[n,r,l]),Ky([{path:td,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Kw,{})})},{path:Qw,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Ww,{})})},{path:ws,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Fw,{})})},{path:"*",element:F.jsx("div",{children:"404 - Page Not Found"})}])},nd="/chat",eA=x.lazy(()=>hu(()=>import("./chat-ejIJrEMQ.js"),__vite__mapDeps([4,1,2]))),tA=(...n)=>{console.log("%c router.tsx ","color: white; background: purple;",...n)},nA=()=>{const n=zd(),{pathname:r}=ua();return x.useEffect(()=>{const o=u=>{const c=setTimeout(()=>{tA("navigate to",u),n(u)},300);return()=>clearTimeout(c)};if(!r.startsWith(nd))return o(nd)},[n,r]),Ky([{path:nd,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(eA,{})})},{path:"*",element:F.jsx("div",{children:"404 - Page Not Found"})}])},aA=Me("div")(({theme:n})=>{const{palette:r,typography:l}=n;return{...l.body2,color:r.text.primary,backgroundColor:r.background.default,width:"100%",height:"100%",display:"flex",flexFlow:"column nowrap",justifyContent:"center",alignItems:"center"}}),S1=({children:n,hostProps:r})=>F.jsx(x.StrictMode,{children:F.jsx(ex,{children:F.jsxs(Ew,{children:[F.jsx(S3,{}),F.jsx(aA,{children:F.jsx(kw,{...r,children:F.jsx(Vw,{children:F.jsx(Zw,{children:n})})})})]})})}),bA=()=>F.jsx(S1,{hostProps:{type:"cluster"},children:F.jsx(Jw,{})}),SA=()=>F.jsx(S1,{hostProps:{type:"node"},children:F.jsx(nA,{})});export{hr as $,ay as A,Wv as B,SA as C,pr as D,Qd as E,wv as F,Iv as G,Ae as H,Jv as I,Wg as J,cT as K,av as L,bA as M,dT as N,uT as O,Kd as P,iv as Q,iA as R,$3 as S,n3 as T,zE as U,zs as V,Zv as W,sT as X,oA as Y,l3 as Z,Q5 as _,rt as a,Xl as a0,j5 as a1,dE as a2,En as a3,ah as a4,fT as a5,Kv as a6,uA as a7,x3 as a8,cA as a9,fA as aa,jt as ab,rT as ac,dA as ad,lA as ae,z3 as af,Cd as ag,sA as ah,rr as ai,U5 as aj,Si as ak,ja as al,lh as am,ey as an,hA as ao,N3 as ap,mA as aq,sy as ar,yA as as,gA as at,j4 as au,vy as av,H4 as aw,q4 as ax,zw as ay,Ba as az,Ze as b,rA as c,ge as d,gn as e,Bl as f,it as g,pA as h,tn as i,F as j,Zl as k,pd as l,Pt as m,fr as n,v1 as o,zd as p,p3 as q,x as r,Me as s,L3 as t,nn as u,Xv as v,Jd as w,oi as x,vA as y,uC as z}; +`);M=_.pop()||"",D(_)}}).catch(A=>{if(A instanceof Error&&A.name==="AbortError"){l?.();return}o?.(A)})},disconnect:()=>{d?.cancel(),d=void 0,h?.abort("stop"),h=void 0,l?.()}}},td="/setup",Qw="/join",ws="/chat",Kw=x.lazy(()=>hu(()=>import("./setup-eQlkglW5.js"),__vite__mapDeps([0,1,2]))),Ww=x.lazy(()=>hu(()=>import("./join-BzV0zEA8.js"),__vite__mapDeps([3,1,2]))),Fw=x.lazy(()=>hu(()=>import("./chat-D4M-59Zb.js"),__vite__mapDeps([4,1,2]))),Uy=(...n)=>{console.log("%c router.tsx ","color: white; background: purple;",...n)},Jw=()=>{const n=zd(),{pathname:r}=ua(),[{clusterInfo:{status:l}}]=v1();return x.useEffect(()=>{const u=c=>{const d=setTimeout(()=>{Uy("navigate to",c),n(c)},300);return()=>clearTimeout(d)};if(r==="/"||(Uy("pathname",r,"cluster status",l),l==="idle"&&r.startsWith(ws)))return u(td);if(l==="available"&&!r.startsWith(ws))return u(ws)},[n,r,l]),Ky([{path:td,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Kw,{})})},{path:Qw,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Ww,{})})},{path:ws,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(Fw,{})})},{path:"*",element:F.jsx("div",{children:"404 - Page Not Found"})}])},nd="/chat",eA=x.lazy(()=>hu(()=>import("./chat-D4M-59Zb.js"),__vite__mapDeps([4,1,2]))),tA=(...n)=>{console.log("%c router.tsx ","color: white; background: purple;",...n)},nA=()=>{const n=zd(),{pathname:r}=ua();return x.useEffect(()=>{const o=u=>{const c=setTimeout(()=>{tA("navigate to",u),n(u)},300);return()=>clearTimeout(c)};if(!r.startsWith(nd))return o(nd)},[n,r]),Ky([{path:nd,element:F.jsx(x.Suspense,{fallback:F.jsx("div",{children:"Loading..."}),children:F.jsx(eA,{})})},{path:"*",element:F.jsx("div",{children:"404 - Page Not Found"})}])},aA=Me("div")(({theme:n})=>{const{palette:r,typography:l}=n;return{...l.body2,color:r.text.primary,backgroundColor:r.background.default,width:"100%",height:"100%",display:"flex",flexFlow:"column nowrap",justifyContent:"center",alignItems:"center"}}),S1=({children:n,hostProps:r})=>F.jsx(x.StrictMode,{children:F.jsx(ex,{children:F.jsxs(Ew,{children:[F.jsx(S3,{}),F.jsx(aA,{children:F.jsx(kw,{...r,children:F.jsx(Vw,{children:F.jsx(Zw,{children:n})})})})]})})}),bA=()=>F.jsx(S1,{hostProps:{type:"cluster"},children:F.jsx(Jw,{})}),SA=()=>F.jsx(S1,{hostProps:{type:"node"},children:F.jsx(nA,{})});export{hr as $,ay as A,Wv as B,SA as C,pr as D,Qd as E,wv as F,Iv as G,Ae as H,Jv as I,Wg as J,cT as K,av as L,bA as M,dT as N,uT as O,Kd as P,iv as Q,iA as R,$3 as S,n3 as T,zE as U,zs as V,Zv as W,sT as X,oA as Y,l3 as Z,Q5 as _,rt as a,Xl as a0,j5 as a1,dE as a2,En as a3,ah as a4,fT as a5,Kv as a6,uA as a7,x3 as a8,cA as a9,fA as aa,jt as ab,rT as ac,dA as ad,lA as ae,z3 as af,Cd as ag,sA as ah,rr as ai,U5 as aj,Si as ak,ja as al,lh as am,ey as an,hA as ao,N3 as ap,mA as aq,sy as ar,yA as as,gA as at,j4 as au,vy as av,H4 as aw,q4 as ax,zw as ay,Ba as az,Ze as b,rA as c,ge as d,gn as e,Bl as f,it as g,pA as h,tn as i,F as j,Zl as k,pd as l,Pt as m,fr as n,v1 as o,zd as p,p3 as q,x as r,Me as s,L3 as t,nn as u,Xv as v,Jd as w,oi as x,vA as y,uC as z}; diff --git a/src/frontend/dist/assets/chat-ejIJrEMQ.js b/src/frontend/dist/assets/chat-D4M-59Zb.js similarity index 99% rename from src/frontend/dist/assets/chat-ejIJrEMQ.js rename to src/frontend/dist/assets/chat-D4M-59Zb.js index a259bfc..98e4d4a 100644 --- a/src/frontend/dist/assets/chat-ejIJrEMQ.js +++ b/src/frontend/dist/assets/chat-D4M-59Zb.js @@ -1,4 +1,4 @@ -import{a as N,g as H,r as b,u as W,j as a,s as T,b as U,d as z,e as E,m as G,i as ze,v as Re,w as Me,x as I,k as te,o as Le,y as je,n as $,S as le,q as ie}from"./App-DvpWdRS1.js";import{i as ee,b as qe,c as de,F as $e,u as oe,f as re,O as Ae,d as Ne,e as He,S as We,D as Ue,g as Ee,C as Be}from"./main-layout-Daq7w871.js";function De(e){return N("MuiFormControl",e)}H("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const Oe=e=>{const{classes:t,margin:o,fullWidth:r}=e,s={root:["root",o!=="none"&&`margin${z(o)}`,r&&"fullWidth"]};return E(s,De,t)},_e=T("div",{name:"MuiFormControl",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,t[`margin${z(o.margin)}`],o.fullWidth&&t.fullWidth]}})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),Ke=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormControl"}),{children:s,className:i,color:d="primary",component:p="div",disabled:l=!1,error:m=!1,focused:u,fullWidth:f=!1,hiddenLabel:h=!1,margin:v="none",required:n=!1,size:x="medium",variant:c="outlined",...C}=r,P={...r,color:d,component:p,disabled:l,error:m,fullWidth:f,hiddenLabel:h,margin:v,required:n,size:x,variant:c},J=Oe(P),[F,Q]=b.useState(()=>{let y=!1;return s&&b.Children.forEach(s,g=>{if(!ee(g,["Input","Select"]))return;const j=ee(g,["Select"])?g.props.input:g;j&&qe(j.props)&&(y=!0)}),y}),[B,R]=b.useState(()=>{let y=!1;return s&&b.Children.forEach(s,g=>{ee(g,["Input","Select"])&&(de(g.props,!0)||de(g.props.inputProps,!0))&&(y=!0)}),y}),[D,M]=b.useState(!1);l&&D&&M(!1);const O=u!==void 0&&!l?u:D;let _;b.useRef(!1);const K=b.useCallback(()=>{R(!0)},[]),L=b.useCallback(()=>{R(!1)},[]),X=b.useMemo(()=>({adornedStart:F,setAdornedStart:Q,color:d,disabled:l,error:m,filled:B,focused:O,fullWidth:f,hiddenLabel:h,size:x,onBlur:()=>{M(!1)},onFocus:()=>{M(!0)},onEmpty:L,onFilled:K,registerEffect:_,required:n,variant:c}),[F,d,l,m,B,O,f,h,_,L,K,n,x,c]);return a.jsx($e.Provider,{value:X,children:a.jsx(_e,{as:p,ownerState:P,className:U(J.root,i),ref:o,...C,children:s})})});function Ve(e){return N("MuiFormHelperText",e)}const ce=H("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var pe;const Ge=e=>{const{classes:t,contained:o,size:r,disabled:s,error:i,filled:d,focused:p,required:l}=e,m={root:["root",s&&"disabled",i&&"error",r&&`size${z(r)}`,o&&"contained",p&&"focused",d&&"filled",l&&"required"]};return E(m,Ve,t)},Je=T("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,o.size&&t[`size${z(o.size)}`],o.contained&&t.contained,o.filled&&t.filled]}})(G(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${ce.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${ce.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:t})=>t.contained,style:{marginLeft:14,marginRight:14}}]}))),Qe=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormHelperText"}),{children:s,className:i,component:d="p",disabled:p,error:l,filled:m,focused:u,margin:f,required:h,variant:v,...n}=r,x=oe(),c=re({props:r,muiFormControl:x,states:["variant","size","disabled","error","filled","focused","required"]}),C={...r,component:d,contained:c.variant==="filled"||c.variant==="outlined",variant:c.variant,size:c.size,disabled:c.disabled,error:c.error,filled:c.filled,focused:c.focused,required:c.required};delete C.ownerState;const P=Ge(C);return a.jsx(Je,{as:d,className:U(P.root,i),ref:o,...n,ownerState:C,children:s===" "?pe||(pe=a.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):s})});function Xe(e){return N("MuiFormLabel",e)}const A=H("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),Ye=e=>{const{classes:t,color:o,focused:r,disabled:s,error:i,filled:d,required:p}=e,l={root:["root",`color${z(o)}`,s&&"disabled",i&&"error",d&&"filled",r&&"focused",p&&"required"],asterisk:["asterisk",i&&"error"]};return E(l,Xe,t)},Ze=T("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,o.color==="secondary"&&t.colorSecondary,o.filled&&t.filled]}})(G(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(e.palette).filter(ze()).map(([t])=>({props:{color:t},style:{[`&.${A.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${A.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${A.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),et=T("span",{name:"MuiFormLabel",slot:"Asterisk"})(G(({theme:e})=>({[`&.${A.error}`]:{color:(e.vars||e).palette.error.main}}))),tt=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormLabel"}),{children:s,className:i,color:d,component:p="label",disabled:l,error:m,filled:u,focused:f,required:h,...v}=r,n=oe(),x=re({props:r,muiFormControl:n,states:["color","required","focused","disabled","error","filled"]}),c={...r,color:x.color||"primary",component:p,disabled:x.disabled,error:x.error,filled:x.filled,focused:x.focused,required:x.required},C=Ye(c);return a.jsxs(Ze,{as:p,ownerState:c,className:U(C.root,i),ref:o,...v,children:[s,x.required&&a.jsxs(et,{ownerState:c,"aria-hidden":!0,className:C.asterisk,children:[" ","*"]})]})});function ot(e){return N("MuiInputLabel",e)}H("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const rt=e=>{const{classes:t,formControl:o,size:r,shrink:s,disableAnimation:i,variant:d,required:p}=e,l={root:["root",o&&"formControl",!i&&"animated",s&&"shrink",r&&r!=="medium"&&`size${z(r)}`,d],asterisk:[p&&"asterisk"]},m=E(l,ot,t);return{...t,...m}},st=T(tt,{shouldForwardProp:e=>Re(e)||e==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[{[`& .${A.asterisk}`]:t.asterisk},t.root,o.formControl&&t.formControl,o.size==="small"&&t.sizeSmall,o.shrink&&t.shrink,!o.disableAnimation&&t.animated,o.focused&&t.focused,t[o.variant]]}})(G(({theme:e})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:t})=>t.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:t})=>t.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:t})=>!t.disableAnimation,style:{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:t,ownerState:o})=>t==="filled"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:t,ownerState:o,size:r})=>t==="filled"&&o.shrink&&r==="small",style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:t,ownerState:o})=>t==="outlined"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),nt=b.forwardRef(function(t,o){const r=W({name:"MuiInputLabel",props:t}),{disableAnimation:s=!1,margin:i,shrink:d,variant:p,className:l,...m}=r,u=oe();let f=d;typeof f>"u"&&u&&(f=u.filled||u.focused||u.adornedStart);const h=re({props:r,muiFormControl:u,states:["size","variant","required","focused"]}),v={...r,disableAnimation:s,formControl:u,shrink:f,size:h.size,variant:h.variant,required:h.required,focused:h.focused},n=rt(v);return a.jsx(st,{"data-shrink":f,ref:o,className:U(n.root,l),...m,ownerState:v,classes:n})});function at(e){return N("MuiTextField",e)}H("MuiTextField",["root"]);const lt={standard:He,filled:Ne,outlined:Ae},it=e=>{const{classes:t}=e;return E({root:["root"]},at,t)},dt=T(Ke,{name:"MuiTextField",slot:"Root"})({}),ct=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiTextField"}),{autoComplete:s,autoFocus:i=!1,children:d,className:p,color:l="primary",defaultValue:m,disabled:u=!1,error:f=!1,FormHelperTextProps:h,fullWidth:v=!1,helperText:n,id:x,InputLabelProps:c,inputProps:C,InputProps:P,inputRef:J,label:F,maxRows:Q,minRows:B,multiline:R=!1,name:D,onBlur:M,onChange:O,onFocus:_,placeholder:K,required:L=!1,rows:X,select:y=!1,SelectProps:g,slots:j={},slotProps:ue={},type:me,value:se,variant:V="outlined",...fe}=r,S={...r,autoFocus:i,color:l,disabled:u,error:f,fullWidth:v,multiline:R,required:L,select:y,variant:V},xe=it(S),k=Me(x),Y=n&&k?`${k}-helper-text`:void 0,ne=F&&k?`${k}-label`:void 0,be=lt[V],w={slots:j,slotProps:{input:P,inputLabel:c,htmlInput:C,formHelperText:h,select:g,...ue}},q={},Z=w.slotProps.inputLabel;V==="outlined"&&(Z&&typeof Z.shrink<"u"&&(q.notched=Z.shrink),q.label=F),y&&((!g||!g.native)&&(q.id=void 0),q["aria-describedby"]=void 0);const[he,ve]=I("root",{elementType:dt,shouldForwardComponentProp:!0,externalForwardedProps:{...w,...fe},ownerState:S,className:U(xe.root,p),ref:o,additionalProps:{disabled:u,error:f,fullWidth:v,required:L,color:l,variant:V}}),[ge,Ce]=I("input",{elementType:be,externalForwardedProps:w,additionalProps:q,ownerState:S}),[ye,Fe]=I("inputLabel",{elementType:nt,externalForwardedProps:w,ownerState:S}),[Se,ke]=I("htmlInput",{elementType:"input",externalForwardedProps:w,ownerState:S}),[we,Pe]=I("formHelperText",{elementType:Qe,externalForwardedProps:w,ownerState:S}),[Ie,Te]=I("select",{elementType:We,externalForwardedProps:w,ownerState:S}),ae=a.jsx(ge,{"aria-describedby":Y,autoComplete:s,autoFocus:i,defaultValue:m,fullWidth:v,multiline:R,name:D,rows:X,maxRows:Q,minRows:B,type:me,value:se,id:k,inputRef:J,onBlur:M,onChange:O,onFocus:_,placeholder:K,inputProps:ke,slots:{input:j.htmlInput?Se:void 0},...Ce});return a.jsxs(he,{...ve,children:[F!=null&&F!==""&&a.jsx(ye,{htmlFor:k,id:ne,...Fe,children:F}),y?a.jsx(Ie,{"aria-describedby":Y,id:k,labelId:ne,value:se,input:ae,...Te,children:d}):ae,n&&a.jsx(we,{id:Y,...Pe,children:n})]})});/** +import{a as N,g as H,r as b,u as W,j as a,s as T,b as U,d as z,e as E,m as G,i as ze,v as Re,w as Me,x as I,k as te,o as Le,y as je,n as $,S as le,q as ie}from"./App-Ba9WPx9O.js";import{i as ee,b as qe,c as de,F as $e,u as oe,f as re,O as Ae,d as Ne,e as He,S as We,D as Ue,g as Ee,C as Be}from"./main-layout-DhzCWI3u.js";function De(e){return N("MuiFormControl",e)}H("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const Oe=e=>{const{classes:t,margin:o,fullWidth:r}=e,s={root:["root",o!=="none"&&`margin${z(o)}`,r&&"fullWidth"]};return E(s,De,t)},_e=T("div",{name:"MuiFormControl",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,t[`margin${z(o.margin)}`],o.fullWidth&&t.fullWidth]}})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),Ke=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormControl"}),{children:s,className:i,color:d="primary",component:p="div",disabled:l=!1,error:m=!1,focused:u,fullWidth:f=!1,hiddenLabel:h=!1,margin:v="none",required:n=!1,size:x="medium",variant:c="outlined",...C}=r,P={...r,color:d,component:p,disabled:l,error:m,fullWidth:f,hiddenLabel:h,margin:v,required:n,size:x,variant:c},J=Oe(P),[F,Q]=b.useState(()=>{let y=!1;return s&&b.Children.forEach(s,g=>{if(!ee(g,["Input","Select"]))return;const j=ee(g,["Select"])?g.props.input:g;j&&qe(j.props)&&(y=!0)}),y}),[B,R]=b.useState(()=>{let y=!1;return s&&b.Children.forEach(s,g=>{ee(g,["Input","Select"])&&(de(g.props,!0)||de(g.props.inputProps,!0))&&(y=!0)}),y}),[D,M]=b.useState(!1);l&&D&&M(!1);const O=u!==void 0&&!l?u:D;let _;b.useRef(!1);const K=b.useCallback(()=>{R(!0)},[]),L=b.useCallback(()=>{R(!1)},[]),X=b.useMemo(()=>({adornedStart:F,setAdornedStart:Q,color:d,disabled:l,error:m,filled:B,focused:O,fullWidth:f,hiddenLabel:h,size:x,onBlur:()=>{M(!1)},onFocus:()=>{M(!0)},onEmpty:L,onFilled:K,registerEffect:_,required:n,variant:c}),[F,d,l,m,B,O,f,h,_,L,K,n,x,c]);return a.jsx($e.Provider,{value:X,children:a.jsx(_e,{as:p,ownerState:P,className:U(J.root,i),ref:o,...C,children:s})})});function Ve(e){return N("MuiFormHelperText",e)}const ce=H("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var pe;const Ge=e=>{const{classes:t,contained:o,size:r,disabled:s,error:i,filled:d,focused:p,required:l}=e,m={root:["root",s&&"disabled",i&&"error",r&&`size${z(r)}`,o&&"contained",p&&"focused",d&&"filled",l&&"required"]};return E(m,Ve,t)},Je=T("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,o.size&&t[`size${z(o.size)}`],o.contained&&t.contained,o.filled&&t.filled]}})(G(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${ce.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${ce.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:t})=>t.contained,style:{marginLeft:14,marginRight:14}}]}))),Qe=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormHelperText"}),{children:s,className:i,component:d="p",disabled:p,error:l,filled:m,focused:u,margin:f,required:h,variant:v,...n}=r,x=oe(),c=re({props:r,muiFormControl:x,states:["variant","size","disabled","error","filled","focused","required"]}),C={...r,component:d,contained:c.variant==="filled"||c.variant==="outlined",variant:c.variant,size:c.size,disabled:c.disabled,error:c.error,filled:c.filled,focused:c.focused,required:c.required};delete C.ownerState;const P=Ge(C);return a.jsx(Je,{as:d,className:U(P.root,i),ref:o,...n,ownerState:C,children:s===" "?pe||(pe=a.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):s})});function Xe(e){return N("MuiFormLabel",e)}const A=H("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),Ye=e=>{const{classes:t,color:o,focused:r,disabled:s,error:i,filled:d,required:p}=e,l={root:["root",`color${z(o)}`,s&&"disabled",i&&"error",d&&"filled",r&&"focused",p&&"required"],asterisk:["asterisk",i&&"error"]};return E(l,Xe,t)},Ze=T("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[t.root,o.color==="secondary"&&t.colorSecondary,o.filled&&t.filled]}})(G(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(e.palette).filter(ze()).map(([t])=>({props:{color:t},style:{[`&.${A.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${A.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${A.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),et=T("span",{name:"MuiFormLabel",slot:"Asterisk"})(G(({theme:e})=>({[`&.${A.error}`]:{color:(e.vars||e).palette.error.main}}))),tt=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiFormLabel"}),{children:s,className:i,color:d,component:p="label",disabled:l,error:m,filled:u,focused:f,required:h,...v}=r,n=oe(),x=re({props:r,muiFormControl:n,states:["color","required","focused","disabled","error","filled"]}),c={...r,color:x.color||"primary",component:p,disabled:x.disabled,error:x.error,filled:x.filled,focused:x.focused,required:x.required},C=Ye(c);return a.jsxs(Ze,{as:p,ownerState:c,className:U(C.root,i),ref:o,...v,children:[s,x.required&&a.jsxs(et,{ownerState:c,"aria-hidden":!0,className:C.asterisk,children:[" ","*"]})]})});function ot(e){return N("MuiInputLabel",e)}H("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const rt=e=>{const{classes:t,formControl:o,size:r,shrink:s,disableAnimation:i,variant:d,required:p}=e,l={root:["root",o&&"formControl",!i&&"animated",s&&"shrink",r&&r!=="medium"&&`size${z(r)}`,d],asterisk:[p&&"asterisk"]},m=E(l,ot,t);return{...t,...m}},st=T(tt,{shouldForwardProp:e=>Re(e)||e==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:o}=e;return[{[`& .${A.asterisk}`]:t.asterisk},t.root,o.formControl&&t.formControl,o.size==="small"&&t.sizeSmall,o.shrink&&t.shrink,!o.disableAnimation&&t.animated,o.focused&&t.focused,t[o.variant]]}})(G(({theme:e})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:t})=>t.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:t})=>t.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:t})=>!t.disableAnimation,style:{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:t,ownerState:o})=>t==="filled"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:t,ownerState:o,size:r})=>t==="filled"&&o.shrink&&r==="small",style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:t,ownerState:o})=>t==="outlined"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),nt=b.forwardRef(function(t,o){const r=W({name:"MuiInputLabel",props:t}),{disableAnimation:s=!1,margin:i,shrink:d,variant:p,className:l,...m}=r,u=oe();let f=d;typeof f>"u"&&u&&(f=u.filled||u.focused||u.adornedStart);const h=re({props:r,muiFormControl:u,states:["size","variant","required","focused"]}),v={...r,disableAnimation:s,formControl:u,shrink:f,size:h.size,variant:h.variant,required:h.required,focused:h.focused},n=rt(v);return a.jsx(st,{"data-shrink":f,ref:o,className:U(n.root,l),...m,ownerState:v,classes:n})});function at(e){return N("MuiTextField",e)}H("MuiTextField",["root"]);const lt={standard:He,filled:Ne,outlined:Ae},it=e=>{const{classes:t}=e;return E({root:["root"]},at,t)},dt=T(Ke,{name:"MuiTextField",slot:"Root"})({}),ct=b.forwardRef(function(t,o){const r=W({props:t,name:"MuiTextField"}),{autoComplete:s,autoFocus:i=!1,children:d,className:p,color:l="primary",defaultValue:m,disabled:u=!1,error:f=!1,FormHelperTextProps:h,fullWidth:v=!1,helperText:n,id:x,InputLabelProps:c,inputProps:C,InputProps:P,inputRef:J,label:F,maxRows:Q,minRows:B,multiline:R=!1,name:D,onBlur:M,onChange:O,onFocus:_,placeholder:K,required:L=!1,rows:X,select:y=!1,SelectProps:g,slots:j={},slotProps:ue={},type:me,value:se,variant:V="outlined",...fe}=r,S={...r,autoFocus:i,color:l,disabled:u,error:f,fullWidth:v,multiline:R,required:L,select:y,variant:V},xe=it(S),k=Me(x),Y=n&&k?`${k}-helper-text`:void 0,ne=F&&k?`${k}-label`:void 0,be=lt[V],w={slots:j,slotProps:{input:P,inputLabel:c,htmlInput:C,formHelperText:h,select:g,...ue}},q={},Z=w.slotProps.inputLabel;V==="outlined"&&(Z&&typeof Z.shrink<"u"&&(q.notched=Z.shrink),q.label=F),y&&((!g||!g.native)&&(q.id=void 0),q["aria-describedby"]=void 0);const[he,ve]=I("root",{elementType:dt,shouldForwardComponentProp:!0,externalForwardedProps:{...w,...fe},ownerState:S,className:U(xe.root,p),ref:o,additionalProps:{disabled:u,error:f,fullWidth:v,required:L,color:l,variant:V}}),[ge,Ce]=I("input",{elementType:be,externalForwardedProps:w,additionalProps:q,ownerState:S}),[ye,Fe]=I("inputLabel",{elementType:nt,externalForwardedProps:w,ownerState:S}),[Se,ke]=I("htmlInput",{elementType:"input",externalForwardedProps:w,ownerState:S}),[we,Pe]=I("formHelperText",{elementType:Qe,externalForwardedProps:w,ownerState:S}),[Ie,Te]=I("select",{elementType:We,externalForwardedProps:w,ownerState:S}),ae=a.jsx(ge,{"aria-describedby":Y,autoComplete:s,autoFocus:i,defaultValue:m,fullWidth:v,multiline:R,name:D,rows:X,maxRows:Q,minRows:B,type:me,value:se,id:k,inputRef:J,onBlur:M,onChange:O,onFocus:_,placeholder:K,inputProps:ke,slots:{input:j.htmlInput?Se:void 0},...Ce});return a.jsxs(he,{...ve,children:[F!=null&&F!==""&&a.jsx(ye,{htmlFor:k,id:ne,...Fe,children:F}),y?a.jsx(Ie,{"aria-describedby":Y,id:k,labelId:ne,value:se,input:ae,...Te,children:d}):ae,n&&a.jsx(we,{id:Y,...Pe,children:n})]})});/** * @license @tabler/icons-react v3.35.0 - MIT * * This source code is licensed under the MIT license. diff --git a/src/frontend/dist/assets/chat-DLri3GLO.js b/src/frontend/dist/assets/chat-DLri3GLO.js deleted file mode 100644 index beeccfd..0000000 --- a/src/frontend/dist/assets/chat-DLri3GLO.js +++ /dev/null @@ -1 +0,0 @@ -import{c as t,j as e,C as o}from"./App-DvpWdRS1.js";t.createRoot(document.getElementById("root")).render(e.jsx(o,{})); diff --git a/src/frontend/dist/assets/chat-DlBZcbmF.js b/src/frontend/dist/assets/chat-DlBZcbmF.js new file mode 100644 index 0000000..3d28326 --- /dev/null +++ b/src/frontend/dist/assets/chat-DlBZcbmF.js @@ -0,0 +1 @@ +import{c as t,j as e,C as o}from"./App-Ba9WPx9O.js";t.createRoot(document.getElementById("root")).render(e.jsx(o,{})); diff --git a/src/frontend/dist/assets/join-TpGKfeh0.js b/src/frontend/dist/assets/join-BzV0zEA8.js similarity index 58% rename from src/frontend/dist/assets/join-TpGKfeh0.js rename to src/frontend/dist/assets/join-BzV0zEA8.js index dfcf00e..08be13c 100644 --- a/src/frontend/dist/assets/join-TpGKfeh0.js +++ b/src/frontend/dist/assets/join-BzV0zEA8.js @@ -1,6 +1,6 @@ -import{k as u,o as h,r as m,j as e,T as r,s as p,A as i,q as y,L as x,S as f}from"./App-DvpWdRS1.js";import{M as v,J as j,N as g}from"./main-layout-Daq7w871.js";/** +import{k as u,o as h,r as m,j as e,T as o,s as p,A as i,q as x,L as y,S as f}from"./App-Ba9WPx9O.js";import{M as v,J as j,N as g}from"./main-layout-DhzCWI3u.js";/** * @license @tabler/icons-react v3.35.0 - MIT * * This source code is licensed under the MIT license. * See the LICENSE file in the root directory of this source tree. - */const w=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]],k=u("outline","arrow-left","ArrowLeft",w),o=p(f)(({theme:t})=>{const{spacing:s}=t;return{overflowY:"auto"}});function L(){const[{modelInfo:t,clusterInfo:{status:s,initNodesNumber:n,needMoreNodes:d},nodeInfoList:a}]=h(),l=m.useMemo(()=>!!(n>0&&a.length>=n&&a.every(c=>c.status==="available")&&s==="waiting"),[s,n,a]);return e.jsxs(v,{contentStart:e.jsx(y,{component:x,to:"/setup",size:"medium",color:"secondary",startIcon:e.jsx(k,{}),children:"Back"}),children:[e.jsx(r,{variant:"h1",children:"Get Your Nodes Running"}),e.jsxs(o,{gap:6,sx:{overflow:"hidden"},children:[e.jsxs(o,{gap:2,children:[e.jsx(o,{gap:1,children:e.jsx(r,{variant:"body1",children:"Step 1 - Run join command on all nodes"})}),e.jsx(j,{})]}),e.jsxs(o,{gap:2,flex:1,children:[e.jsxs(o,{gap:1,children:[e.jsx(r,{variant:"body1",children:"Step 2 - Check your node status"}),e.jsx(r,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:"After you successfully start your nodes, you should see them start to show up below with their status. Once all nodes are connected, you will automatically be directed to the chat interface."})]}),l&&e.jsx(i,{severity:"error",variant:"standard",children:"Your selected model requires more nodes. Please go back to the previous step to add more nodes, or choose a smaller model."},"error")||e.jsx(i,{severity:"info",variant:"standard",children:"If your nodes cannot connect properly, retry the above join command to restart the server."},"info"),!!t&&t.vram>0&&d&&e.jsx(i,{severity:"warning",variant:"standard",children:["Your selected model requires more nodes.","You’ll need a ",e.jsx("strong",{children:`minimum of ${t.vram} GB of total VRAM`})," to host this model."]},"vram-warning"),e.jsx(g,{},"node-list")]})]})]})}export{L as default}; + */const w=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]],k=u("outline","arrow-left","ArrowLeft",w),r=p(f)(({theme:t})=>{const{spacing:s}=t;return{overflowY:"auto"}});function L(){const[{modelInfo:t,clusterInfo:{status:s,initNodesNumber:n,needMoreNodes:d},nodeInfoList:a}]=h(),l=m.useMemo(()=>!!(n>0&&a.length>=n&&a.every(c=>c.status==="available")&&s==="waiting"),[s,n,a]);return e.jsxs(v,{contentStart:e.jsx(x,{component:y,to:"/setup",size:"medium",color:"secondary",startIcon:e.jsx(k,{}),children:"Back"}),children:[e.jsx(o,{variant:"h1",children:"Get Your Nodes Running"}),e.jsxs(r,{gap:6,sx:{overflow:"hidden"},children:[e.jsxs(r,{gap:2,children:[e.jsx(r,{gap:1,children:e.jsx(o,{variant:"body1",children:"Step 1 - Run join command on all nodes"})}),e.jsx(j,{})]}),e.jsxs(r,{gap:2,flex:1,children:[e.jsxs(r,{gap:1,children:[e.jsx(o,{variant:"body1",children:"Step 2 - Check your node status"}),e.jsx(o,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:"After you successfully start your nodes, you should see them start to show up below with their status. Once all nodes are connected, you will automatically be directed to the chat interface."})]}),l&&e.jsx(i,{severity:"error",variant:"standard",children:"Your selected model requires more nodes. Please go back to the previous step to add more nodes, or choose a smaller model."},"error")||e.jsx(i,{severity:"info",variant:"standard",children:"If your nodes cannot connect properly, retry the above join command to restart the server."},"info"),!!t&&t.vram>0&&d&&e.jsx(i,{severity:"warning",variant:"standard",children:e.jsx(o,{variant:"inherit",children:["Your selected model requires more nodes.","You’ll need a ",e.jsx("strong",{children:`minimum of ${t.vram} GB of total VRAM`})," to host this model."]})},"vram-warning"),e.jsx(g,{},"node-list")]})]})]})}export{L as default}; diff --git a/src/frontend/dist/assets/main-CkRtaR8-.js b/src/frontend/dist/assets/main-CkRtaR8-.js deleted file mode 100644 index 1e1ce9c..0000000 --- a/src/frontend/dist/assets/main-CkRtaR8-.js +++ /dev/null @@ -1 +0,0 @@ -import{c as t,j as e,M as o}from"./App-DvpWdRS1.js";t.createRoot(document.getElementById("root")).render(e.jsx(o,{})); diff --git a/src/frontend/dist/assets/main-CrNN7OEz.js b/src/frontend/dist/assets/main-CrNN7OEz.js new file mode 100644 index 0000000..09f8fef --- /dev/null +++ b/src/frontend/dist/assets/main-CrNN7OEz.js @@ -0,0 +1 @@ +import{c as t,j as e,M as o}from"./App-Ba9WPx9O.js";t.createRoot(document.getElementById("root")).render(e.jsx(o,{})); diff --git a/src/frontend/dist/assets/main-layout-Daq7w871.js b/src/frontend/dist/assets/main-layout-DhzCWI3u.js similarity index 99% rename from src/frontend/dist/assets/main-layout-Daq7w871.js rename to src/frontend/dist/assets/main-layout-DhzCWI3u.js index 2609352..29e0e11 100644 --- a/src/frontend/dist/assets/main-layout-Daq7w871.js +++ b/src/frontend/dist/assets/main-layout-DhzCWI3u.js @@ -1,4 +1,4 @@ -import{z as vg,D as Tg,r as P,E as xg,F as Eg,j as k,b as Ve,_ as Sg,R as cs,G as wg,H as ds,J as H1,K as Ag,N as Cg,l as Vt,O as kg,P as ar,Q as Ig,a as gt,g as at,e as Ge,U as Gl,u as Ke,s as ue,V as ka,W as Ng,X as Ia,d as St,Y as Rg,m as ct,Z as Na,$ as z1,a0 as Mg,a1 as qa,x as Et,a2 as Dg,a3 as Pg,a4 as Lg,a5 as Og,a6 as mo,w as Xl,a7 as _g,a8 as Bg,T as Ye,v as Wn,a9 as Fg,aa as Hg,ab as Kl,i as Ql,ac as aa,ad as zg,ae as Oc,B as Ug,af as _c,ag as Bc,ah as Vg,ai as Ln,aj as jg,ak as U1,al as V1,am as qg,an as Fc,ao as $g,ap as Wg,aq as Yg,ar as Hc,k as mn,as as Gg,at as zc,au as Xg,av as Uc,aw as _s,I as Qr,ax as j1,q as q1,ay as $1,o as $a,n as wi,S as Xe,y as Zl,az as W1}from"./App-DvpWdRS1.js";function Kg(e={}){const{themeId:t,defaultTheme:n,defaultClassName:r="MuiBox-root",generateClassName:i}=e,a=vg("div",{shouldForwardProp:o=>o!=="theme"&&o!=="sx"&&o!=="as"})(Tg);return P.forwardRef(function(u,l){const c=xg(n),{className:d,component:p="div",...f}=Eg(u);return k.jsx(a,{as:p,ref:l,className:Ve(d,i?i(r):r),theme:t&&c[t]||c,...f})})}function Qg(e,t){return P.isValidElement(e)&&t.indexOf(e.type.muiName??e.type?._payload?.value?.muiName)!==-1}function Zg(e){return String(e).match(/[\d.\-+]*\s*(.*)/)[1]||""}function Jg(e){return parseFloat(e)}function Vc(...e){return e.reduce((t,n)=>n==null?t:function(...i){t.apply(this,i),n.apply(this,i)},()=>{})}function Y1(e,t=166){let n;function r(...i){const a=()=>{e.apply(this,i)};clearTimeout(n),n=setTimeout(a,t)}return r.clear=()=>{clearTimeout(n)},r}function fn(e){return e&&e.ownerDocument||document}function sr(e){return fn(e).defaultView||window}function jc(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function qu(e){const{controlled:t,default:n,name:r,state:i="value"}=e,{current:a}=P.useRef(t!==void 0),[s,o]=P.useState(n),u=a?t:s,l=P.useCallback(c=>{a||o(c)},[]);return[u,l]}function e6(e,t){const n=e.charCodeAt(2);return e[0]==="o"&&e[1]==="n"&&n>=65&&n<=90&&typeof t=="function"}function t6(e,t){if(!e)return t;function n(s,o){const u={};return Object.keys(o).forEach(l=>{e6(l,o[l])&&typeof s[l]=="function"&&(u[l]=(...c)=>{s[l](...c),o[l](...c)})}),u}if(typeof e=="function"||typeof t=="function")return s=>{const o=typeof t=="function"?t(s):t,u=typeof e=="function"?e({...s,...o}):e,l=Ve(s?.className,o?.className,u?.className),c=n(u,o);return{...o,...u,...c,...!!l&&{className:l},...o?.style&&u?.style&&{style:{...o.style,...u.style}},...o?.sx&&u?.sx&&{sx:[...Array.isArray(o.sx)?o.sx:[o.sx],...Array.isArray(u.sx)?u.sx:[u.sx]]}}};const r=t,i=n(e,r),a=Ve(r?.className,e?.className);return{...t,...e,...i,...!!a&&{className:a},...r?.style&&e?.style&&{style:{...r.style,...e.style}},...r?.sx&&e?.sx&&{sx:[...Array.isArray(r.sx)?r.sx:[r.sx],...Array.isArray(e.sx)?e.sx:[e.sx]]}}}const qc={disabled:!1};var n6=function(t){return t.scrollTop},sa="unmounted",Ur="exited",Vr="entering",ci="entered",$u="exiting",Yn=(function(e){Sg(t,e);function t(r,i){var a;a=e.call(this,r,i)||this;var s=i,o=s&&!s.isMounting?r.enter:r.appear,u;return a.appearStatus=null,r.in?o?(u=Ur,a.appearStatus=Vr):u=ci:r.unmountOnExit||r.mountOnEnter?u=sa:u=Ur,a.state={status:u},a.nextCallback=null,a}t.getDerivedStateFromProps=function(i,a){var s=i.in;return s&&a.status===sa?{status:Ur}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(i){var a=null;if(i!==this.props){var s=this.state.status;this.props.in?s!==Vr&&s!==ci&&(a=Vr):(s===Vr||s===ci)&&(a=$u)}this.updateStatus(!1,a)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var i=this.props.timeout,a,s,o;return a=s=o=i,i!=null&&typeof i!="number"&&(a=i.exit,s=i.enter,o=i.appear!==void 0?i.appear:s),{exit:a,enter:s,appear:o}},n.updateStatus=function(i,a){if(i===void 0&&(i=!1),a!==null)if(this.cancelNextCallback(),a===Vr){if(this.props.unmountOnExit||this.props.mountOnEnter){var s=this.props.nodeRef?this.props.nodeRef.current:cs.findDOMNode(this);s&&n6(s)}this.performEnter(i)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Ur&&this.setState({status:sa})},n.performEnter=function(i){var a=this,s=this.props.enter,o=this.context?this.context.isMounting:i,u=this.props.nodeRef?[o]:[cs.findDOMNode(this),o],l=u[0],c=u[1],d=this.getTimeouts(),p=o?d.appear:d.enter;if(!i&&!s||qc.disabled){this.safeSetState({status:ci},function(){a.props.onEntered(l)});return}this.props.onEnter(l,c),this.safeSetState({status:Vr},function(){a.props.onEntering(l,c),a.onTransitionEnd(p,function(){a.safeSetState({status:ci},function(){a.props.onEntered(l,c)})})})},n.performExit=function(){var i=this,a=this.props.exit,s=this.getTimeouts(),o=this.props.nodeRef?void 0:cs.findDOMNode(this);if(!a||qc.disabled){this.safeSetState({status:Ur},function(){i.props.onExited(o)});return}this.props.onExit(o),this.safeSetState({status:$u},function(){i.props.onExiting(o),i.onTransitionEnd(s.exit,function(){i.safeSetState({status:Ur},function(){i.props.onExited(o)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(i,a){a=this.setNextCallback(a),this.setState(i,a)},n.setNextCallback=function(i){var a=this,s=!0;return this.nextCallback=function(o){s&&(s=!1,a.nextCallback=null,i(o))},this.nextCallback.cancel=function(){s=!1},this.nextCallback},n.onTransitionEnd=function(i,a){this.setNextCallback(a);var s=this.props.nodeRef?this.props.nodeRef.current:cs.findDOMNode(this),o=i==null&&!this.props.addEndListener;if(!s||o){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var u=this.props.nodeRef?[this.nextCallback]:[s,this.nextCallback],l=u[0],c=u[1];this.props.addEndListener(l,c)}i!=null&&setTimeout(this.nextCallback,i)},n.render=function(){var i=this.state.status;if(i===sa)return null;var a=this.props,s=a.children;a.in,a.mountOnEnter,a.unmountOnExit,a.appear,a.enter,a.exit,a.timeout,a.addEndListener,a.onEnter,a.onEntering,a.onEntered,a.onExit,a.onExiting,a.onExited,a.nodeRef;var o=wg(a,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return ds.createElement(H1.Provider,{value:null},typeof s=="function"?s(i,o):ds.cloneElement(ds.Children.only(s),o))},t})(ds.Component);Yn.contextType=H1;Yn.propTypes={};function si(){}Yn.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:si,onEntering:si,onEntered:si,onExit:si,onExiting:si,onExited:si};Yn.UNMOUNTED=sa;Yn.EXITED=Ur;Yn.ENTERING=Vr;Yn.ENTERED=ci;Yn.EXITING=$u;const G1=e=>e.scrollTop;function Ys(e,t){const{timeout:n,easing:r,style:i={}}=e;return{duration:i.transitionDuration??(typeof n=="number"?n:n[t.mode]||0),easing:i.transitionTimingFunction??(typeof r=="object"?r[t.mode]:r),delay:i.transitionDelay}}var nn="top",An="bottom",Cn="right",rn="left",Jl="auto",Wa=[nn,An,Cn,rn],Ai="start",Ra="end",r6="clippingParents",X1="viewport",Yi="popper",i6="reference",$c=Wa.reduce(function(e,t){return e.concat([t+"-"+Ai,t+"-"+Ra])},[]),K1=[].concat(Wa,[Jl]).reduce(function(e,t){return e.concat([t,t+"-"+Ai,t+"-"+Ra])},[]),a6="beforeRead",s6="read",o6="afterRead",u6="beforeMain",l6="main",c6="afterMain",d6="beforeWrite",h6="write",f6="afterWrite",p6=[a6,s6,o6,u6,l6,c6,d6,h6,f6];function $n(e){return e?(e.nodeName||"").toLowerCase():null}function pn(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Zr(e){var t=pn(e).Element;return e instanceof t||e instanceof Element}function En(e){var t=pn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function e0(e){if(typeof ShadowRoot>"u")return!1;var t=pn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function m6(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},a=t.elements[n];!En(a)||!$n(a)||(Object.assign(a.style,r),Object.keys(i).forEach(function(s){var o=i[s];o===!1?a.removeAttribute(s):a.setAttribute(s,o===!0?"":o)}))})}function g6(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],a=t.attributes[r]||{},s=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),o=s.reduce(function(u,l){return u[l]="",u},{});!En(i)||!$n(i)||(Object.assign(i.style,o),Object.keys(a).forEach(function(u){i.removeAttribute(u)}))})}}const b6={name:"applyStyles",enabled:!0,phase:"write",fn:m6,effect:g6,requires:["computeStyles"]};function Un(e){return e.split("-")[0]}var Yr=Math.max,Gs=Math.min,Ci=Math.round;function Wu(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Q1(){return!/^((?!chrome|android).)*safari/i.test(Wu())}function ki(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&En(e)&&(i=e.offsetWidth>0&&Ci(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Ci(r.height)/e.offsetHeight||1);var s=Zr(e)?pn(e):window,o=s.visualViewport,u=!Q1()&&n,l=(r.left+(u&&o?o.offsetLeft:0))/i,c=(r.top+(u&&o?o.offsetTop:0))/a,d=r.width/i,p=r.height/a;return{width:d,height:p,top:c,right:l+d,bottom:c+p,left:l,x:l,y:c}}function t0(e){var t=ki(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Z1(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&e0(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function or(e){return pn(e).getComputedStyle(e)}function y6(e){return["table","td","th"].indexOf($n(e))>=0}function Mr(e){return((Zr(e)?e.ownerDocument:e.document)||window.document).documentElement}function go(e){return $n(e)==="html"?e:e.assignedSlot||e.parentNode||(e0(e)?e.host:null)||Mr(e)}function Wc(e){return!En(e)||or(e).position==="fixed"?null:e.offsetParent}function v6(e){var t=/firefox/i.test(Wu()),n=/Trident/i.test(Wu());if(n&&En(e)){var r=or(e);if(r.position==="fixed")return null}var i=go(e);for(e0(i)&&(i=i.host);En(i)&&["html","body"].indexOf($n(i))<0;){var a=or(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function Ya(e){for(var t=pn(e),n=Wc(e);n&&y6(n)&&or(n).position==="static";)n=Wc(n);return n&&($n(n)==="html"||$n(n)==="body"&&or(n).position==="static")?t:n||v6(e)||t}function n0(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ca(e,t,n){return Yr(e,Gs(t,n))}function T6(e,t,n){var r=ca(e,t,n);return r>n?n:r}function J1(){return{top:0,right:0,bottom:0,left:0}}function ep(e){return Object.assign({},J1(),e)}function tp(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var x6=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,ep(typeof t!="number"?t:tp(t,Wa))};function E6(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,s=n.modifiersData.popperOffsets,o=Un(n.placement),u=n0(o),l=[rn,Cn].indexOf(o)>=0,c=l?"height":"width";if(!(!a||!s)){var d=x6(i.padding,n),p=t0(a),f=u==="y"?nn:rn,b=u==="y"?An:Cn,v=n.rects.reference[c]+n.rects.reference[u]-s[u]-n.rects.popper[c],E=s[u]-n.rects.reference[u],y=Ya(a),w=y?u==="y"?y.clientHeight||0:y.clientWidth||0:0,x=v/2-E/2,I=d[f],M=w-p[c]-d[b],C=w/2-p[c]/2+x,H=ca(I,C,M),z=u;n.modifiersData[r]=(t={},t[z]=H,t.centerOffset=H-C,t)}}function S6(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||Z1(t.elements.popper,i)&&(t.elements.arrow=i))}const w6={name:"arrow",enabled:!0,phase:"main",fn:E6,effect:S6,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ii(e){return e.split("-")[1]}var A6={top:"auto",right:"auto",bottom:"auto",left:"auto"};function C6(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Ci(n*i)/i||0,y:Ci(r*i)/i||0}}function Yc(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,s=e.offsets,o=e.position,u=e.gpuAcceleration,l=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=s.x,f=p===void 0?0:p,b=s.y,v=b===void 0?0:b,E=typeof c=="function"?c({x:f,y:v}):{x:f,y:v};f=E.x,v=E.y;var y=s.hasOwnProperty("x"),w=s.hasOwnProperty("y"),x=rn,I=nn,M=window;if(l){var C=Ya(n),H="clientHeight",z="clientWidth";if(C===pn(n)&&(C=Mr(n),or(C).position!=="static"&&o==="absolute"&&(H="scrollHeight",z="scrollWidth")),C=C,i===nn||(i===rn||i===Cn)&&a===Ra){I=An;var V=d&&C===M&&M.visualViewport?M.visualViewport.height:C[H];v-=V-r.height,v*=u?1:-1}if(i===rn||(i===nn||i===An)&&a===Ra){x=Cn;var L=d&&C===M&&M.visualViewport?M.visualViewport.width:C[z];f-=L-r.width,f*=u?1:-1}}var $=Object.assign({position:o},l&&A6),W=c===!0?C6({x:f,y:v},pn(n)):{x:f,y:v};if(f=W.x,v=W.y,u){var G;return Object.assign({},$,(G={},G[I]=w?"0":"",G[x]=y?"0":"",G.transform=(M.devicePixelRatio||1)<=1?"translate("+f+"px, "+v+"px)":"translate3d("+f+"px, "+v+"px, 0)",G))}return Object.assign({},$,(t={},t[I]=w?v+"px":"",t[x]=y?f+"px":"",t.transform="",t))}function k6(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,s=a===void 0?!0:a,o=n.roundOffsets,u=o===void 0?!0:o,l={placement:Un(t.placement),variation:Ii(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Yc(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:u})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Yc(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const I6={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:k6,data:{}};var hs={passive:!0};function N6(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,s=r.resize,o=s===void 0?!0:s,u=pn(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(c){c.addEventListener("scroll",n.update,hs)}),o&&u.addEventListener("resize",n.update,hs),function(){a&&l.forEach(function(c){c.removeEventListener("scroll",n.update,hs)}),o&&u.removeEventListener("resize",n.update,hs)}}const R6={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:N6,data:{}};var M6={left:"right",right:"left",bottom:"top",top:"bottom"};function Bs(e){return e.replace(/left|right|bottom|top/g,function(t){return M6[t]})}var D6={start:"end",end:"start"};function Gc(e){return e.replace(/start|end/g,function(t){return D6[t]})}function r0(e){var t=pn(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function i0(e){return ki(Mr(e)).left+r0(e).scrollLeft}function P6(e,t){var n=pn(e),r=Mr(e),i=n.visualViewport,a=r.clientWidth,s=r.clientHeight,o=0,u=0;if(i){a=i.width,s=i.height;var l=Q1();(l||!l&&t==="fixed")&&(o=i.offsetLeft,u=i.offsetTop)}return{width:a,height:s,x:o+i0(e),y:u}}function L6(e){var t,n=Mr(e),r=r0(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=Yr(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),s=Yr(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),o=-r.scrollLeft+i0(e),u=-r.scrollTop;return or(i||n).direction==="rtl"&&(o+=Yr(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:s,x:o,y:u}}function a0(e){var t=or(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function np(e){return["html","body","#document"].indexOf($n(e))>=0?e.ownerDocument.body:En(e)&&a0(e)?e:np(go(e))}function da(e,t){var n;t===void 0&&(t=[]);var r=np(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),a=pn(r),s=i?[a].concat(a.visualViewport||[],a0(r)?r:[]):r,o=t.concat(s);return i?o:o.concat(da(go(s)))}function Yu(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function O6(e,t){var n=ki(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Xc(e,t,n){return t===X1?Yu(P6(e,n)):Zr(t)?O6(t,n):Yu(L6(Mr(e)))}function _6(e){var t=da(go(e)),n=["absolute","fixed"].indexOf(or(e).position)>=0,r=n&&En(e)?Ya(e):e;return Zr(r)?t.filter(function(i){return Zr(i)&&Z1(i,r)&&$n(i)!=="body"}):[]}function B6(e,t,n,r){var i=t==="clippingParents"?_6(e):[].concat(t),a=[].concat(i,[n]),s=a[0],o=a.reduce(function(u,l){var c=Xc(e,l,r);return u.top=Yr(c.top,u.top),u.right=Gs(c.right,u.right),u.bottom=Gs(c.bottom,u.bottom),u.left=Yr(c.left,u.left),u},Xc(e,s,r));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function rp(e){var t=e.reference,n=e.element,r=e.placement,i=r?Un(r):null,a=r?Ii(r):null,s=t.x+t.width/2-n.width/2,o=t.y+t.height/2-n.height/2,u;switch(i){case nn:u={x:s,y:t.y-n.height};break;case An:u={x:s,y:t.y+t.height};break;case Cn:u={x:t.x+t.width,y:o};break;case rn:u={x:t.x-n.width,y:o};break;default:u={x:t.x,y:t.y}}var l=i?n0(i):null;if(l!=null){var c=l==="y"?"height":"width";switch(a){case Ai:u[l]=u[l]-(t[c]/2-n[c]/2);break;case Ra:u[l]=u[l]+(t[c]/2-n[c]/2);break}}return u}function Ma(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,s=a===void 0?e.strategy:a,o=n.boundary,u=o===void 0?r6:o,l=n.rootBoundary,c=l===void 0?X1:l,d=n.elementContext,p=d===void 0?Yi:d,f=n.altBoundary,b=f===void 0?!1:f,v=n.padding,E=v===void 0?0:v,y=ep(typeof E!="number"?E:tp(E,Wa)),w=p===Yi?i6:Yi,x=e.rects.popper,I=e.elements[b?w:p],M=B6(Zr(I)?I:I.contextElement||Mr(e.elements.popper),u,c,s),C=ki(e.elements.reference),H=rp({reference:C,element:x,placement:i}),z=Yu(Object.assign({},x,H)),V=p===Yi?z:C,L={top:M.top-V.top+y.top,bottom:V.bottom-M.bottom+y.bottom,left:M.left-V.left+y.left,right:V.right-M.right+y.right},$=e.modifiersData.offset;if(p===Yi&&$){var W=$[i];Object.keys(L).forEach(function(G){var q=[Cn,An].indexOf(G)>=0?1:-1,Y=[nn,An].indexOf(G)>=0?"y":"x";L[G]+=W[Y]*q})}return L}function F6(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,s=n.padding,o=n.flipVariations,u=n.allowedAutoPlacements,l=u===void 0?K1:u,c=Ii(r),d=c?o?$c:$c.filter(function(b){return Ii(b)===c}):Wa,p=d.filter(function(b){return l.indexOf(b)>=0});p.length===0&&(p=d);var f=p.reduce(function(b,v){return b[v]=Ma(e,{placement:v,boundary:i,rootBoundary:a,padding:s})[Un(v)],b},{});return Object.keys(f).sort(function(b,v){return f[b]-f[v]})}function H6(e){if(Un(e)===Jl)return[];var t=Bs(e);return[Gc(e),t,Gc(t)]}function z6(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0?!0:i,s=n.altAxis,o=s===void 0?!0:s,u=n.fallbackPlacements,l=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,b=f===void 0?!0:f,v=n.allowedAutoPlacements,E=t.options.placement,y=Un(E),w=y===E,x=u||(w||!b?[Bs(E)]:H6(E)),I=[E].concat(x).reduce(function(xe,Ie){return xe.concat(Un(Ie)===Jl?F6(t,{placement:Ie,boundary:c,rootBoundary:d,padding:l,flipVariations:b,allowedAutoPlacements:v}):Ie)},[]),M=t.rects.reference,C=t.rects.popper,H=new Map,z=!0,V=I[0],L=0;L=0,Y=q?"width":"height",Q=Ma(t,{placement:$,boundary:c,rootBoundary:d,altBoundary:p,padding:l}),ee=q?G?Cn:rn:G?An:nn;M[Y]>C[Y]&&(ee=Bs(ee));var de=Bs(ee),oe=[];if(a&&oe.push(Q[W]<=0),o&&oe.push(Q[ee]<=0,Q[de]<=0),oe.every(function(xe){return xe})){V=$,z=!1;break}H.set($,oe)}if(z)for(var R=b?3:1,Ce=function(Ie){var Be=I.find(function(je){var _e=H.get(je);if(_e)return _e.slice(0,Ie).every(function(qe){return qe})});if(Be)return V=Be,"break"},ve=R;ve>0;ve--){var B=Ce(ve);if(B==="break")break}t.placement!==V&&(t.modifiersData[r]._skip=!0,t.placement=V,t.reset=!0)}}const U6={name:"flip",enabled:!0,phase:"main",fn:z6,requiresIfExists:["offset"],data:{_skip:!1}};function Kc(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Qc(e){return[nn,Cn,An,rn].some(function(t){return e[t]>=0})}function V6(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,s=Ma(t,{elementContext:"reference"}),o=Ma(t,{altBoundary:!0}),u=Kc(s,r),l=Kc(o,i,a),c=Qc(u),d=Qc(l);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const j6={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:V6};function q6(e,t,n){var r=Un(e),i=[rn,nn].indexOf(r)>=0?-1:1,a=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=a[0],o=a[1];return s=s||0,o=(o||0)*i,[rn,Cn].indexOf(r)>=0?{x:o,y:s}:{x:s,y:o}}function $6(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,s=K1.reduce(function(c,d){return c[d]=q6(d,t.rects,a),c},{}),o=s[t.placement],u=o.x,l=o.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=s}const W6={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:$6};function Y6(e){var t=e.state,n=e.name;t.modifiersData[n]=rp({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}const G6={name:"popperOffsets",enabled:!0,phase:"read",fn:Y6,data:{}};function X6(e){return e==="x"?"y":"x"}function K6(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,s=n.altAxis,o=s===void 0?!1:s,u=n.boundary,l=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=p===void 0?!0:p,b=n.tetherOffset,v=b===void 0?0:b,E=Ma(t,{boundary:u,rootBoundary:l,padding:d,altBoundary:c}),y=Un(t.placement),w=Ii(t.placement),x=!w,I=n0(y),M=X6(I),C=t.modifiersData.popperOffsets,H=t.rects.reference,z=t.rects.popper,V=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,L=typeof V=="number"?{mainAxis:V,altAxis:V}:Object.assign({mainAxis:0,altAxis:0},V),$=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,W={x:0,y:0};if(C){if(a){var G,q=I==="y"?nn:rn,Y=I==="y"?An:Cn,Q=I==="y"?"height":"width",ee=C[I],de=ee+E[q],oe=ee-E[Y],R=f?-z[Q]/2:0,Ce=w===Ai?H[Q]:z[Q],ve=w===Ai?-z[Q]:-H[Q],B=t.elements.arrow,xe=f&&B?t0(B):{width:0,height:0},Ie=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:J1(),Be=Ie[q],je=Ie[Y],_e=ca(0,H[Q],xe[Q]),qe=x?H[Q]/2-R-_e-Be-L.mainAxis:Ce-_e-Be-L.mainAxis,Te=x?-H[Q]/2+R+_e+je+L.mainAxis:ve+_e+je+L.mainAxis,De=t.elements.arrow&&Ya(t.elements.arrow),Ne=De?I==="y"?De.clientTop||0:De.clientLeft||0:0,Qe=(G=$?.[I])!=null?G:0,Re=ee+qe-Qe-Ne,$e=ee+Te-Qe,wt=ca(f?Gs(de,Re):de,ee,f?Yr(oe,$e):oe);C[I]=wt,W[I]=wt-ee}if(o){var ht,st=I==="x"?nn:rn,Nt=I==="x"?An:Cn,ot=C[M],it=M==="y"?"height":"width",Ht=ot+E[st],Kt=ot-E[Nt],bt=[nn,rn].indexOf(y)!==-1,on=(ht=$?.[M])!=null?ht:0,K=bt?Ht:ot-H[it]-z[it]-on+L.altAxis,ie=bt?ot+H[it]+z[it]-on-L.altAxis:Kt,me=f&&bt?T6(K,ot,ie):ca(f?K:Ht,ot,f?ie:Kt);C[M]=me,W[M]=me-ot}t.modifiersData[r]=W}}const Q6={name:"preventOverflow",enabled:!0,phase:"main",fn:K6,requiresIfExists:["offset"]};function Z6(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function J6(e){return e===pn(e)||!En(e)?r0(e):Z6(e)}function e5(e){var t=e.getBoundingClientRect(),n=Ci(t.width)/e.offsetWidth||1,r=Ci(t.height)/e.offsetHeight||1;return n!==1||r!==1}function t5(e,t,n){n===void 0&&(n=!1);var r=En(t),i=En(t)&&e5(t),a=Mr(t),s=ki(e,i,n),o={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(($n(t)!=="body"||a0(a))&&(o=J6(t)),En(t)?(u=ki(t,!0),u.x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=i0(a))),{x:s.left+o.scrollLeft-u.x,y:s.top+o.scrollTop-u.y,width:s.width,height:s.height}}function n5(e){var t=new Map,n=new Set,r=[];e.forEach(function(a){t.set(a.name,a)});function i(a){n.add(a.name);var s=[].concat(a.requires||[],a.requiresIfExists||[]);s.forEach(function(o){if(!n.has(o)){var u=t.get(o);u&&i(u)}}),r.push(a)}return e.forEach(function(a){n.has(a.name)||i(a)}),r}function r5(e){var t=n5(e);return p6.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function i5(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function a5(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Zc={placement:"bottom",modifiers:[],strategy:"absolute"};function Jc(){for(var e=arguments.length,t=new Array(e),n=0;n=19?e?.props?.ref||null:e?.ref||null}function l5(e){return typeof e=="function"?e():e}const ap=P.forwardRef(function(t,n){const{children:r,container:i,disablePortal:a=!1}=t,[s,o]=P.useState(null),u=Vt(P.isValidElement(r)?Li(r):null,n);if(ar(()=>{a||o(l5(i)||document.body)},[i,a]),ar(()=>{if(s&&!a)return jc(n,s),()=>{jc(n,null)}},[n,s,a]),a){if(P.isValidElement(r)){const l={ref:u};return P.cloneElement(r,l)}return r}return s&&Ig.createPortal(r,s)});function c5(e){return gt("MuiPopper",e)}at("MuiPopper",["root"]);function d5(e,t){if(t==="ltr")return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function Gu(e){return typeof e=="function"?e():e}function h5(e){return e.nodeType!==void 0}const f5=e=>{const{classes:t}=e;return Ge({root:["root"]},c5,t)},p5={},m5=P.forwardRef(function(t,n){const{anchorEl:r,children:i,direction:a,disablePortal:s,modifiers:o,open:u,placement:l,popperOptions:c,popperRef:d,slotProps:p={},slots:f={},TransitionProps:b,ownerState:v,...E}=t,y=P.useRef(null),w=Vt(y,n),x=P.useRef(null),I=Vt(x,d),M=P.useRef(I);ar(()=>{M.current=I},[I]),P.useImperativeHandle(d,()=>x.current,[]);const C=d5(l,a),[H,z]=P.useState(C),[V,L]=P.useState(Gu(r));P.useEffect(()=>{x.current&&x.current.forceUpdate()}),P.useEffect(()=>{r&&L(Gu(r))},[r]),ar(()=>{if(!V||!u)return;const Y=de=>{z(de.placement)};let Q=[{name:"preventOverflow",options:{altBoundary:s}},{name:"flip",options:{altBoundary:s}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:de})=>{Y(de)}}];o!=null&&(Q=Q.concat(o)),c&&c.modifiers!=null&&(Q=Q.concat(c.modifiers));const ee=u5(V,y.current,{placement:C,...c,modifiers:Q});return M.current(ee),()=>{ee.destroy(),M.current(null)}},[V,s,o,u,c,C]);const $={placement:H};b!==null&&($.TransitionProps=b);const W=f5(t),G=f.root??"div",q=ip({elementType:G,externalSlotProps:p.root,externalForwardedProps:E,additionalProps:{role:"tooltip",ref:w},ownerState:t,className:W.root});return k.jsx(G,{...q,children:typeof i=="function"?i($):i})}),g5=P.forwardRef(function(t,n){const{anchorEl:r,children:i,container:a,direction:s="ltr",disablePortal:o=!1,keepMounted:u=!1,modifiers:l,open:c,placement:d="bottom",popperOptions:p=p5,popperRef:f,style:b,transition:v=!1,slotProps:E={},slots:y={},...w}=t,[x,I]=P.useState(!0),M=()=>{I(!1)},C=()=>{I(!0)};if(!u&&!c&&(!v||x))return null;let H;if(a)H=a;else if(r){const L=Gu(r);H=L&&h5(L)?fn(L).body:fn(null).body}const z=!c&&u&&(!v||x)?"none":void 0,V=v?{in:c,onEnter:M,onExited:C}:void 0;return k.jsx(ap,{disablePortal:o,container:H,children:k.jsx(m5,{anchorEl:r,direction:s,disablePortal:o,modifiers:l,ref:n,open:v?!x:c,placement:d,popperOptions:p,popperRef:f,slotProps:E,slots:y,...w,style:{position:"fixed",top:0,left:0,display:z,...b},TransitionProps:V,children:i})})}),b5=ue(g5,{name:"MuiPopper",slot:"Root"})({}),sp=P.forwardRef(function(t,n){const r=Gl(),i=Ke({props:t,name:"MuiPopper"}),{anchorEl:a,component:s,components:o,componentsProps:u,container:l,disablePortal:c,keepMounted:d,modifiers:p,open:f,placement:b,popperOptions:v,popperRef:E,transition:y,slots:w,slotProps:x,...I}=i,M=w?.root??o?.Root,C={anchorEl:a,container:l,disablePortal:c,keepMounted:d,modifiers:p,open:f,placement:b,popperOptions:v,popperRef:E,transition:y,...I};return k.jsx(b5,{as:s,direction:r?"rtl":"ltr",slots:{root:M},slotProps:x??u,...C,ref:n})});function fs(e){return parseInt(e,10)||0}const y5={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function v5(e){for(const t in e)return!1;return!0}function ed(e){return v5(e)||e.outerHeightStyle===0&&!e.overflowing}const T5=P.forwardRef(function(t,n){const{onChange:r,maxRows:i,minRows:a=1,style:s,value:o,...u}=t,{current:l}=P.useRef(o!=null),c=P.useRef(null),d=Vt(n,c),p=P.useRef(null),f=P.useRef(null),b=P.useCallback(()=>{const x=c.current,I=f.current;if(!x||!I)return;const C=sr(x).getComputedStyle(x);if(C.width==="0px")return{outerHeightStyle:0,overflowing:!1};I.style.width=C.width,I.value=x.value||t.placeholder||"x",I.value.slice(-1)===` +import{z as vg,D as Tg,r as P,E as xg,F as Eg,j as k,b as Ve,_ as Sg,R as cs,G as wg,H as ds,J as H1,K as Ag,N as Cg,l as Vt,O as kg,P as ar,Q as Ig,a as gt,g as at,e as Ge,U as Gl,u as Ke,s as ue,V as ka,W as Ng,X as Ia,d as St,Y as Rg,m as ct,Z as Na,$ as z1,a0 as Mg,a1 as qa,x as Et,a2 as Dg,a3 as Pg,a4 as Lg,a5 as Og,a6 as mo,w as Xl,a7 as _g,a8 as Bg,T as Ye,v as Wn,a9 as Fg,aa as Hg,ab as Kl,i as Ql,ac as aa,ad as zg,ae as Oc,B as Ug,af as _c,ag as Bc,ah as Vg,ai as Ln,aj as jg,ak as U1,al as V1,am as qg,an as Fc,ao as $g,ap as Wg,aq as Yg,ar as Hc,k as mn,as as Gg,at as zc,au as Xg,av as Uc,aw as _s,I as Qr,ax as j1,q as q1,ay as $1,o as $a,n as wi,S as Xe,y as Zl,az as W1}from"./App-Ba9WPx9O.js";function Kg(e={}){const{themeId:t,defaultTheme:n,defaultClassName:r="MuiBox-root",generateClassName:i}=e,a=vg("div",{shouldForwardProp:o=>o!=="theme"&&o!=="sx"&&o!=="as"})(Tg);return P.forwardRef(function(u,l){const c=xg(n),{className:d,component:p="div",...f}=Eg(u);return k.jsx(a,{as:p,ref:l,className:Ve(d,i?i(r):r),theme:t&&c[t]||c,...f})})}function Qg(e,t){return P.isValidElement(e)&&t.indexOf(e.type.muiName??e.type?._payload?.value?.muiName)!==-1}function Zg(e){return String(e).match(/[\d.\-+]*\s*(.*)/)[1]||""}function Jg(e){return parseFloat(e)}function Vc(...e){return e.reduce((t,n)=>n==null?t:function(...i){t.apply(this,i),n.apply(this,i)},()=>{})}function Y1(e,t=166){let n;function r(...i){const a=()=>{e.apply(this,i)};clearTimeout(n),n=setTimeout(a,t)}return r.clear=()=>{clearTimeout(n)},r}function fn(e){return e&&e.ownerDocument||document}function sr(e){return fn(e).defaultView||window}function jc(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function qu(e){const{controlled:t,default:n,name:r,state:i="value"}=e,{current:a}=P.useRef(t!==void 0),[s,o]=P.useState(n),u=a?t:s,l=P.useCallback(c=>{a||o(c)},[]);return[u,l]}function e6(e,t){const n=e.charCodeAt(2);return e[0]==="o"&&e[1]==="n"&&n>=65&&n<=90&&typeof t=="function"}function t6(e,t){if(!e)return t;function n(s,o){const u={};return Object.keys(o).forEach(l=>{e6(l,o[l])&&typeof s[l]=="function"&&(u[l]=(...c)=>{s[l](...c),o[l](...c)})}),u}if(typeof e=="function"||typeof t=="function")return s=>{const o=typeof t=="function"?t(s):t,u=typeof e=="function"?e({...s,...o}):e,l=Ve(s?.className,o?.className,u?.className),c=n(u,o);return{...o,...u,...c,...!!l&&{className:l},...o?.style&&u?.style&&{style:{...o.style,...u.style}},...o?.sx&&u?.sx&&{sx:[...Array.isArray(o.sx)?o.sx:[o.sx],...Array.isArray(u.sx)?u.sx:[u.sx]]}}};const r=t,i=n(e,r),a=Ve(r?.className,e?.className);return{...t,...e,...i,...!!a&&{className:a},...r?.style&&e?.style&&{style:{...r.style,...e.style}},...r?.sx&&e?.sx&&{sx:[...Array.isArray(r.sx)?r.sx:[r.sx],...Array.isArray(e.sx)?e.sx:[e.sx]]}}}const qc={disabled:!1};var n6=function(t){return t.scrollTop},sa="unmounted",Ur="exited",Vr="entering",ci="entered",$u="exiting",Yn=(function(e){Sg(t,e);function t(r,i){var a;a=e.call(this,r,i)||this;var s=i,o=s&&!s.isMounting?r.enter:r.appear,u;return a.appearStatus=null,r.in?o?(u=Ur,a.appearStatus=Vr):u=ci:r.unmountOnExit||r.mountOnEnter?u=sa:u=Ur,a.state={status:u},a.nextCallback=null,a}t.getDerivedStateFromProps=function(i,a){var s=i.in;return s&&a.status===sa?{status:Ur}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(i){var a=null;if(i!==this.props){var s=this.state.status;this.props.in?s!==Vr&&s!==ci&&(a=Vr):(s===Vr||s===ci)&&(a=$u)}this.updateStatus(!1,a)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var i=this.props.timeout,a,s,o;return a=s=o=i,i!=null&&typeof i!="number"&&(a=i.exit,s=i.enter,o=i.appear!==void 0?i.appear:s),{exit:a,enter:s,appear:o}},n.updateStatus=function(i,a){if(i===void 0&&(i=!1),a!==null)if(this.cancelNextCallback(),a===Vr){if(this.props.unmountOnExit||this.props.mountOnEnter){var s=this.props.nodeRef?this.props.nodeRef.current:cs.findDOMNode(this);s&&n6(s)}this.performEnter(i)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Ur&&this.setState({status:sa})},n.performEnter=function(i){var a=this,s=this.props.enter,o=this.context?this.context.isMounting:i,u=this.props.nodeRef?[o]:[cs.findDOMNode(this),o],l=u[0],c=u[1],d=this.getTimeouts(),p=o?d.appear:d.enter;if(!i&&!s||qc.disabled){this.safeSetState({status:ci},function(){a.props.onEntered(l)});return}this.props.onEnter(l,c),this.safeSetState({status:Vr},function(){a.props.onEntering(l,c),a.onTransitionEnd(p,function(){a.safeSetState({status:ci},function(){a.props.onEntered(l,c)})})})},n.performExit=function(){var i=this,a=this.props.exit,s=this.getTimeouts(),o=this.props.nodeRef?void 0:cs.findDOMNode(this);if(!a||qc.disabled){this.safeSetState({status:Ur},function(){i.props.onExited(o)});return}this.props.onExit(o),this.safeSetState({status:$u},function(){i.props.onExiting(o),i.onTransitionEnd(s.exit,function(){i.safeSetState({status:Ur},function(){i.props.onExited(o)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(i,a){a=this.setNextCallback(a),this.setState(i,a)},n.setNextCallback=function(i){var a=this,s=!0;return this.nextCallback=function(o){s&&(s=!1,a.nextCallback=null,i(o))},this.nextCallback.cancel=function(){s=!1},this.nextCallback},n.onTransitionEnd=function(i,a){this.setNextCallback(a);var s=this.props.nodeRef?this.props.nodeRef.current:cs.findDOMNode(this),o=i==null&&!this.props.addEndListener;if(!s||o){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var u=this.props.nodeRef?[this.nextCallback]:[s,this.nextCallback],l=u[0],c=u[1];this.props.addEndListener(l,c)}i!=null&&setTimeout(this.nextCallback,i)},n.render=function(){var i=this.state.status;if(i===sa)return null;var a=this.props,s=a.children;a.in,a.mountOnEnter,a.unmountOnExit,a.appear,a.enter,a.exit,a.timeout,a.addEndListener,a.onEnter,a.onEntering,a.onEntered,a.onExit,a.onExiting,a.onExited,a.nodeRef;var o=wg(a,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return ds.createElement(H1.Provider,{value:null},typeof s=="function"?s(i,o):ds.cloneElement(ds.Children.only(s),o))},t})(ds.Component);Yn.contextType=H1;Yn.propTypes={};function si(){}Yn.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:si,onEntering:si,onEntered:si,onExit:si,onExiting:si,onExited:si};Yn.UNMOUNTED=sa;Yn.EXITED=Ur;Yn.ENTERING=Vr;Yn.ENTERED=ci;Yn.EXITING=$u;const G1=e=>e.scrollTop;function Ys(e,t){const{timeout:n,easing:r,style:i={}}=e;return{duration:i.transitionDuration??(typeof n=="number"?n:n[t.mode]||0),easing:i.transitionTimingFunction??(typeof r=="object"?r[t.mode]:r),delay:i.transitionDelay}}var nn="top",An="bottom",Cn="right",rn="left",Jl="auto",Wa=[nn,An,Cn,rn],Ai="start",Ra="end",r6="clippingParents",X1="viewport",Yi="popper",i6="reference",$c=Wa.reduce(function(e,t){return e.concat([t+"-"+Ai,t+"-"+Ra])},[]),K1=[].concat(Wa,[Jl]).reduce(function(e,t){return e.concat([t,t+"-"+Ai,t+"-"+Ra])},[]),a6="beforeRead",s6="read",o6="afterRead",u6="beforeMain",l6="main",c6="afterMain",d6="beforeWrite",h6="write",f6="afterWrite",p6=[a6,s6,o6,u6,l6,c6,d6,h6,f6];function $n(e){return e?(e.nodeName||"").toLowerCase():null}function pn(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Zr(e){var t=pn(e).Element;return e instanceof t||e instanceof Element}function En(e){var t=pn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function e0(e){if(typeof ShadowRoot>"u")return!1;var t=pn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function m6(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},a=t.elements[n];!En(a)||!$n(a)||(Object.assign(a.style,r),Object.keys(i).forEach(function(s){var o=i[s];o===!1?a.removeAttribute(s):a.setAttribute(s,o===!0?"":o)}))})}function g6(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],a=t.attributes[r]||{},s=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),o=s.reduce(function(u,l){return u[l]="",u},{});!En(i)||!$n(i)||(Object.assign(i.style,o),Object.keys(a).forEach(function(u){i.removeAttribute(u)}))})}}const b6={name:"applyStyles",enabled:!0,phase:"write",fn:m6,effect:g6,requires:["computeStyles"]};function Un(e){return e.split("-")[0]}var Yr=Math.max,Gs=Math.min,Ci=Math.round;function Wu(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Q1(){return!/^((?!chrome|android).)*safari/i.test(Wu())}function ki(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&En(e)&&(i=e.offsetWidth>0&&Ci(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Ci(r.height)/e.offsetHeight||1);var s=Zr(e)?pn(e):window,o=s.visualViewport,u=!Q1()&&n,l=(r.left+(u&&o?o.offsetLeft:0))/i,c=(r.top+(u&&o?o.offsetTop:0))/a,d=r.width/i,p=r.height/a;return{width:d,height:p,top:c,right:l+d,bottom:c+p,left:l,x:l,y:c}}function t0(e){var t=ki(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Z1(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&e0(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function or(e){return pn(e).getComputedStyle(e)}function y6(e){return["table","td","th"].indexOf($n(e))>=0}function Mr(e){return((Zr(e)?e.ownerDocument:e.document)||window.document).documentElement}function go(e){return $n(e)==="html"?e:e.assignedSlot||e.parentNode||(e0(e)?e.host:null)||Mr(e)}function Wc(e){return!En(e)||or(e).position==="fixed"?null:e.offsetParent}function v6(e){var t=/firefox/i.test(Wu()),n=/Trident/i.test(Wu());if(n&&En(e)){var r=or(e);if(r.position==="fixed")return null}var i=go(e);for(e0(i)&&(i=i.host);En(i)&&["html","body"].indexOf($n(i))<0;){var a=or(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function Ya(e){for(var t=pn(e),n=Wc(e);n&&y6(n)&&or(n).position==="static";)n=Wc(n);return n&&($n(n)==="html"||$n(n)==="body"&&or(n).position==="static")?t:n||v6(e)||t}function n0(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ca(e,t,n){return Yr(e,Gs(t,n))}function T6(e,t,n){var r=ca(e,t,n);return r>n?n:r}function J1(){return{top:0,right:0,bottom:0,left:0}}function ep(e){return Object.assign({},J1(),e)}function tp(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var x6=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,ep(typeof t!="number"?t:tp(t,Wa))};function E6(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,s=n.modifiersData.popperOffsets,o=Un(n.placement),u=n0(o),l=[rn,Cn].indexOf(o)>=0,c=l?"height":"width";if(!(!a||!s)){var d=x6(i.padding,n),p=t0(a),f=u==="y"?nn:rn,b=u==="y"?An:Cn,v=n.rects.reference[c]+n.rects.reference[u]-s[u]-n.rects.popper[c],E=s[u]-n.rects.reference[u],y=Ya(a),w=y?u==="y"?y.clientHeight||0:y.clientWidth||0:0,x=v/2-E/2,I=d[f],M=w-p[c]-d[b],C=w/2-p[c]/2+x,H=ca(I,C,M),z=u;n.modifiersData[r]=(t={},t[z]=H,t.centerOffset=H-C,t)}}function S6(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||Z1(t.elements.popper,i)&&(t.elements.arrow=i))}const w6={name:"arrow",enabled:!0,phase:"main",fn:E6,effect:S6,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ii(e){return e.split("-")[1]}var A6={top:"auto",right:"auto",bottom:"auto",left:"auto"};function C6(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Ci(n*i)/i||0,y:Ci(r*i)/i||0}}function Yc(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,s=e.offsets,o=e.position,u=e.gpuAcceleration,l=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=s.x,f=p===void 0?0:p,b=s.y,v=b===void 0?0:b,E=typeof c=="function"?c({x:f,y:v}):{x:f,y:v};f=E.x,v=E.y;var y=s.hasOwnProperty("x"),w=s.hasOwnProperty("y"),x=rn,I=nn,M=window;if(l){var C=Ya(n),H="clientHeight",z="clientWidth";if(C===pn(n)&&(C=Mr(n),or(C).position!=="static"&&o==="absolute"&&(H="scrollHeight",z="scrollWidth")),C=C,i===nn||(i===rn||i===Cn)&&a===Ra){I=An;var V=d&&C===M&&M.visualViewport?M.visualViewport.height:C[H];v-=V-r.height,v*=u?1:-1}if(i===rn||(i===nn||i===An)&&a===Ra){x=Cn;var L=d&&C===M&&M.visualViewport?M.visualViewport.width:C[z];f-=L-r.width,f*=u?1:-1}}var $=Object.assign({position:o},l&&A6),W=c===!0?C6({x:f,y:v},pn(n)):{x:f,y:v};if(f=W.x,v=W.y,u){var G;return Object.assign({},$,(G={},G[I]=w?"0":"",G[x]=y?"0":"",G.transform=(M.devicePixelRatio||1)<=1?"translate("+f+"px, "+v+"px)":"translate3d("+f+"px, "+v+"px, 0)",G))}return Object.assign({},$,(t={},t[I]=w?v+"px":"",t[x]=y?f+"px":"",t.transform="",t))}function k6(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,s=a===void 0?!0:a,o=n.roundOffsets,u=o===void 0?!0:o,l={placement:Un(t.placement),variation:Ii(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Yc(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:u})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Yc(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const I6={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:k6,data:{}};var hs={passive:!0};function N6(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,s=r.resize,o=s===void 0?!0:s,u=pn(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(c){c.addEventListener("scroll",n.update,hs)}),o&&u.addEventListener("resize",n.update,hs),function(){a&&l.forEach(function(c){c.removeEventListener("scroll",n.update,hs)}),o&&u.removeEventListener("resize",n.update,hs)}}const R6={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:N6,data:{}};var M6={left:"right",right:"left",bottom:"top",top:"bottom"};function Bs(e){return e.replace(/left|right|bottom|top/g,function(t){return M6[t]})}var D6={start:"end",end:"start"};function Gc(e){return e.replace(/start|end/g,function(t){return D6[t]})}function r0(e){var t=pn(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function i0(e){return ki(Mr(e)).left+r0(e).scrollLeft}function P6(e,t){var n=pn(e),r=Mr(e),i=n.visualViewport,a=r.clientWidth,s=r.clientHeight,o=0,u=0;if(i){a=i.width,s=i.height;var l=Q1();(l||!l&&t==="fixed")&&(o=i.offsetLeft,u=i.offsetTop)}return{width:a,height:s,x:o+i0(e),y:u}}function L6(e){var t,n=Mr(e),r=r0(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=Yr(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),s=Yr(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),o=-r.scrollLeft+i0(e),u=-r.scrollTop;return or(i||n).direction==="rtl"&&(o+=Yr(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:s,x:o,y:u}}function a0(e){var t=or(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function np(e){return["html","body","#document"].indexOf($n(e))>=0?e.ownerDocument.body:En(e)&&a0(e)?e:np(go(e))}function da(e,t){var n;t===void 0&&(t=[]);var r=np(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),a=pn(r),s=i?[a].concat(a.visualViewport||[],a0(r)?r:[]):r,o=t.concat(s);return i?o:o.concat(da(go(s)))}function Yu(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function O6(e,t){var n=ki(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Xc(e,t,n){return t===X1?Yu(P6(e,n)):Zr(t)?O6(t,n):Yu(L6(Mr(e)))}function _6(e){var t=da(go(e)),n=["absolute","fixed"].indexOf(or(e).position)>=0,r=n&&En(e)?Ya(e):e;return Zr(r)?t.filter(function(i){return Zr(i)&&Z1(i,r)&&$n(i)!=="body"}):[]}function B6(e,t,n,r){var i=t==="clippingParents"?_6(e):[].concat(t),a=[].concat(i,[n]),s=a[0],o=a.reduce(function(u,l){var c=Xc(e,l,r);return u.top=Yr(c.top,u.top),u.right=Gs(c.right,u.right),u.bottom=Gs(c.bottom,u.bottom),u.left=Yr(c.left,u.left),u},Xc(e,s,r));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function rp(e){var t=e.reference,n=e.element,r=e.placement,i=r?Un(r):null,a=r?Ii(r):null,s=t.x+t.width/2-n.width/2,o=t.y+t.height/2-n.height/2,u;switch(i){case nn:u={x:s,y:t.y-n.height};break;case An:u={x:s,y:t.y+t.height};break;case Cn:u={x:t.x+t.width,y:o};break;case rn:u={x:t.x-n.width,y:o};break;default:u={x:t.x,y:t.y}}var l=i?n0(i):null;if(l!=null){var c=l==="y"?"height":"width";switch(a){case Ai:u[l]=u[l]-(t[c]/2-n[c]/2);break;case Ra:u[l]=u[l]+(t[c]/2-n[c]/2);break}}return u}function Ma(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,s=a===void 0?e.strategy:a,o=n.boundary,u=o===void 0?r6:o,l=n.rootBoundary,c=l===void 0?X1:l,d=n.elementContext,p=d===void 0?Yi:d,f=n.altBoundary,b=f===void 0?!1:f,v=n.padding,E=v===void 0?0:v,y=ep(typeof E!="number"?E:tp(E,Wa)),w=p===Yi?i6:Yi,x=e.rects.popper,I=e.elements[b?w:p],M=B6(Zr(I)?I:I.contextElement||Mr(e.elements.popper),u,c,s),C=ki(e.elements.reference),H=rp({reference:C,element:x,placement:i}),z=Yu(Object.assign({},x,H)),V=p===Yi?z:C,L={top:M.top-V.top+y.top,bottom:V.bottom-M.bottom+y.bottom,left:M.left-V.left+y.left,right:V.right-M.right+y.right},$=e.modifiersData.offset;if(p===Yi&&$){var W=$[i];Object.keys(L).forEach(function(G){var q=[Cn,An].indexOf(G)>=0?1:-1,Y=[nn,An].indexOf(G)>=0?"y":"x";L[G]+=W[Y]*q})}return L}function F6(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,s=n.padding,o=n.flipVariations,u=n.allowedAutoPlacements,l=u===void 0?K1:u,c=Ii(r),d=c?o?$c:$c.filter(function(b){return Ii(b)===c}):Wa,p=d.filter(function(b){return l.indexOf(b)>=0});p.length===0&&(p=d);var f=p.reduce(function(b,v){return b[v]=Ma(e,{placement:v,boundary:i,rootBoundary:a,padding:s})[Un(v)],b},{});return Object.keys(f).sort(function(b,v){return f[b]-f[v]})}function H6(e){if(Un(e)===Jl)return[];var t=Bs(e);return[Gc(e),t,Gc(t)]}function z6(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0?!0:i,s=n.altAxis,o=s===void 0?!0:s,u=n.fallbackPlacements,l=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,b=f===void 0?!0:f,v=n.allowedAutoPlacements,E=t.options.placement,y=Un(E),w=y===E,x=u||(w||!b?[Bs(E)]:H6(E)),I=[E].concat(x).reduce(function(xe,Ie){return xe.concat(Un(Ie)===Jl?F6(t,{placement:Ie,boundary:c,rootBoundary:d,padding:l,flipVariations:b,allowedAutoPlacements:v}):Ie)},[]),M=t.rects.reference,C=t.rects.popper,H=new Map,z=!0,V=I[0],L=0;L=0,Y=q?"width":"height",Q=Ma(t,{placement:$,boundary:c,rootBoundary:d,altBoundary:p,padding:l}),ee=q?G?Cn:rn:G?An:nn;M[Y]>C[Y]&&(ee=Bs(ee));var de=Bs(ee),oe=[];if(a&&oe.push(Q[W]<=0),o&&oe.push(Q[ee]<=0,Q[de]<=0),oe.every(function(xe){return xe})){V=$,z=!1;break}H.set($,oe)}if(z)for(var R=b?3:1,Ce=function(Ie){var Be=I.find(function(je){var _e=H.get(je);if(_e)return _e.slice(0,Ie).every(function(qe){return qe})});if(Be)return V=Be,"break"},ve=R;ve>0;ve--){var B=Ce(ve);if(B==="break")break}t.placement!==V&&(t.modifiersData[r]._skip=!0,t.placement=V,t.reset=!0)}}const U6={name:"flip",enabled:!0,phase:"main",fn:z6,requiresIfExists:["offset"],data:{_skip:!1}};function Kc(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Qc(e){return[nn,Cn,An,rn].some(function(t){return e[t]>=0})}function V6(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,s=Ma(t,{elementContext:"reference"}),o=Ma(t,{altBoundary:!0}),u=Kc(s,r),l=Kc(o,i,a),c=Qc(u),d=Qc(l);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:l,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const j6={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:V6};function q6(e,t,n){var r=Un(e),i=[rn,nn].indexOf(r)>=0?-1:1,a=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=a[0],o=a[1];return s=s||0,o=(o||0)*i,[rn,Cn].indexOf(r)>=0?{x:o,y:s}:{x:s,y:o}}function $6(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,s=K1.reduce(function(c,d){return c[d]=q6(d,t.rects,a),c},{}),o=s[t.placement],u=o.x,l=o.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=s}const W6={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:$6};function Y6(e){var t=e.state,n=e.name;t.modifiersData[n]=rp({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}const G6={name:"popperOffsets",enabled:!0,phase:"read",fn:Y6,data:{}};function X6(e){return e==="x"?"y":"x"}function K6(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,s=n.altAxis,o=s===void 0?!1:s,u=n.boundary,l=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=p===void 0?!0:p,b=n.tetherOffset,v=b===void 0?0:b,E=Ma(t,{boundary:u,rootBoundary:l,padding:d,altBoundary:c}),y=Un(t.placement),w=Ii(t.placement),x=!w,I=n0(y),M=X6(I),C=t.modifiersData.popperOffsets,H=t.rects.reference,z=t.rects.popper,V=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,L=typeof V=="number"?{mainAxis:V,altAxis:V}:Object.assign({mainAxis:0,altAxis:0},V),$=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,W={x:0,y:0};if(C){if(a){var G,q=I==="y"?nn:rn,Y=I==="y"?An:Cn,Q=I==="y"?"height":"width",ee=C[I],de=ee+E[q],oe=ee-E[Y],R=f?-z[Q]/2:0,Ce=w===Ai?H[Q]:z[Q],ve=w===Ai?-z[Q]:-H[Q],B=t.elements.arrow,xe=f&&B?t0(B):{width:0,height:0},Ie=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:J1(),Be=Ie[q],je=Ie[Y],_e=ca(0,H[Q],xe[Q]),qe=x?H[Q]/2-R-_e-Be-L.mainAxis:Ce-_e-Be-L.mainAxis,Te=x?-H[Q]/2+R+_e+je+L.mainAxis:ve+_e+je+L.mainAxis,De=t.elements.arrow&&Ya(t.elements.arrow),Ne=De?I==="y"?De.clientTop||0:De.clientLeft||0:0,Qe=(G=$?.[I])!=null?G:0,Re=ee+qe-Qe-Ne,$e=ee+Te-Qe,wt=ca(f?Gs(de,Re):de,ee,f?Yr(oe,$e):oe);C[I]=wt,W[I]=wt-ee}if(o){var ht,st=I==="x"?nn:rn,Nt=I==="x"?An:Cn,ot=C[M],it=M==="y"?"height":"width",Ht=ot+E[st],Kt=ot-E[Nt],bt=[nn,rn].indexOf(y)!==-1,on=(ht=$?.[M])!=null?ht:0,K=bt?Ht:ot-H[it]-z[it]-on+L.altAxis,ie=bt?ot+H[it]+z[it]-on-L.altAxis:Kt,me=f&&bt?T6(K,ot,ie):ca(f?K:Ht,ot,f?ie:Kt);C[M]=me,W[M]=me-ot}t.modifiersData[r]=W}}const Q6={name:"preventOverflow",enabled:!0,phase:"main",fn:K6,requiresIfExists:["offset"]};function Z6(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function J6(e){return e===pn(e)||!En(e)?r0(e):Z6(e)}function e5(e){var t=e.getBoundingClientRect(),n=Ci(t.width)/e.offsetWidth||1,r=Ci(t.height)/e.offsetHeight||1;return n!==1||r!==1}function t5(e,t,n){n===void 0&&(n=!1);var r=En(t),i=En(t)&&e5(t),a=Mr(t),s=ki(e,i,n),o={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(r||!r&&!n)&&(($n(t)!=="body"||a0(a))&&(o=J6(t)),En(t)?(u=ki(t,!0),u.x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=i0(a))),{x:s.left+o.scrollLeft-u.x,y:s.top+o.scrollTop-u.y,width:s.width,height:s.height}}function n5(e){var t=new Map,n=new Set,r=[];e.forEach(function(a){t.set(a.name,a)});function i(a){n.add(a.name);var s=[].concat(a.requires||[],a.requiresIfExists||[]);s.forEach(function(o){if(!n.has(o)){var u=t.get(o);u&&i(u)}}),r.push(a)}return e.forEach(function(a){n.has(a.name)||i(a)}),r}function r5(e){var t=n5(e);return p6.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function i5(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function a5(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Zc={placement:"bottom",modifiers:[],strategy:"absolute"};function Jc(){for(var e=arguments.length,t=new Array(e),n=0;n=19?e?.props?.ref||null:e?.ref||null}function l5(e){return typeof e=="function"?e():e}const ap=P.forwardRef(function(t,n){const{children:r,container:i,disablePortal:a=!1}=t,[s,o]=P.useState(null),u=Vt(P.isValidElement(r)?Li(r):null,n);if(ar(()=>{a||o(l5(i)||document.body)},[i,a]),ar(()=>{if(s&&!a)return jc(n,s),()=>{jc(n,null)}},[n,s,a]),a){if(P.isValidElement(r)){const l={ref:u};return P.cloneElement(r,l)}return r}return s&&Ig.createPortal(r,s)});function c5(e){return gt("MuiPopper",e)}at("MuiPopper",["root"]);function d5(e,t){if(t==="ltr")return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function Gu(e){return typeof e=="function"?e():e}function h5(e){return e.nodeType!==void 0}const f5=e=>{const{classes:t}=e;return Ge({root:["root"]},c5,t)},p5={},m5=P.forwardRef(function(t,n){const{anchorEl:r,children:i,direction:a,disablePortal:s,modifiers:o,open:u,placement:l,popperOptions:c,popperRef:d,slotProps:p={},slots:f={},TransitionProps:b,ownerState:v,...E}=t,y=P.useRef(null),w=Vt(y,n),x=P.useRef(null),I=Vt(x,d),M=P.useRef(I);ar(()=>{M.current=I},[I]),P.useImperativeHandle(d,()=>x.current,[]);const C=d5(l,a),[H,z]=P.useState(C),[V,L]=P.useState(Gu(r));P.useEffect(()=>{x.current&&x.current.forceUpdate()}),P.useEffect(()=>{r&&L(Gu(r))},[r]),ar(()=>{if(!V||!u)return;const Y=de=>{z(de.placement)};let Q=[{name:"preventOverflow",options:{altBoundary:s}},{name:"flip",options:{altBoundary:s}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:de})=>{Y(de)}}];o!=null&&(Q=Q.concat(o)),c&&c.modifiers!=null&&(Q=Q.concat(c.modifiers));const ee=u5(V,y.current,{placement:C,...c,modifiers:Q});return M.current(ee),()=>{ee.destroy(),M.current(null)}},[V,s,o,u,c,C]);const $={placement:H};b!==null&&($.TransitionProps=b);const W=f5(t),G=f.root??"div",q=ip({elementType:G,externalSlotProps:p.root,externalForwardedProps:E,additionalProps:{role:"tooltip",ref:w},ownerState:t,className:W.root});return k.jsx(G,{...q,children:typeof i=="function"?i($):i})}),g5=P.forwardRef(function(t,n){const{anchorEl:r,children:i,container:a,direction:s="ltr",disablePortal:o=!1,keepMounted:u=!1,modifiers:l,open:c,placement:d="bottom",popperOptions:p=p5,popperRef:f,style:b,transition:v=!1,slotProps:E={},slots:y={},...w}=t,[x,I]=P.useState(!0),M=()=>{I(!1)},C=()=>{I(!0)};if(!u&&!c&&(!v||x))return null;let H;if(a)H=a;else if(r){const L=Gu(r);H=L&&h5(L)?fn(L).body:fn(null).body}const z=!c&&u&&(!v||x)?"none":void 0,V=v?{in:c,onEnter:M,onExited:C}:void 0;return k.jsx(ap,{disablePortal:o,container:H,children:k.jsx(m5,{anchorEl:r,direction:s,disablePortal:o,modifiers:l,ref:n,open:v?!x:c,placement:d,popperOptions:p,popperRef:f,slotProps:E,slots:y,...w,style:{position:"fixed",top:0,left:0,display:z,...b},TransitionProps:V,children:i})})}),b5=ue(g5,{name:"MuiPopper",slot:"Root"})({}),sp=P.forwardRef(function(t,n){const r=Gl(),i=Ke({props:t,name:"MuiPopper"}),{anchorEl:a,component:s,components:o,componentsProps:u,container:l,disablePortal:c,keepMounted:d,modifiers:p,open:f,placement:b,popperOptions:v,popperRef:E,transition:y,slots:w,slotProps:x,...I}=i,M=w?.root??o?.Root,C={anchorEl:a,container:l,disablePortal:c,keepMounted:d,modifiers:p,open:f,placement:b,popperOptions:v,popperRef:E,transition:y,...I};return k.jsx(b5,{as:s,direction:r?"rtl":"ltr",slots:{root:M},slotProps:x??u,...C,ref:n})});function fs(e){return parseInt(e,10)||0}const y5={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function v5(e){for(const t in e)return!1;return!0}function ed(e){return v5(e)||e.outerHeightStyle===0&&!e.overflowing}const T5=P.forwardRef(function(t,n){const{onChange:r,maxRows:i,minRows:a=1,style:s,value:o,...u}=t,{current:l}=P.useRef(o!=null),c=P.useRef(null),d=Vt(n,c),p=P.useRef(null),f=P.useRef(null),b=P.useCallback(()=>{const x=c.current,I=f.current;if(!x||!I)return;const C=sr(x).getComputedStyle(x);if(C.width==="0px")return{outerHeightStyle:0,overflowing:!1};I.style.width=C.width,I.value=x.value||t.placeholder||"x",I.value.slice(-1)===` `&&(I.value+=" ");const H=C.boxSizing,z=fs(C.paddingBottom)+fs(C.paddingTop),V=fs(C.borderBottomWidth)+fs(C.borderTopWidth),L=I.scrollHeight;I.value="x";const $=I.scrollHeight;let W=L;a&&(W=Math.max(Number(a)*$,W)),i&&(W=Math.min(Number(i)*$,W)),W=Math.max(W,$);const G=W+(H==="border-box"?z+V:0),q=Math.abs(W-L)<=1;return{outerHeightStyle:G,overflowing:q}},[i,a,t.placeholder]),v=ka(()=>{const x=c.current,I=b();if(!x||!I||ed(I))return!1;const M=I.outerHeightStyle;return p.current!=null&&p.current!==M}),E=P.useCallback(()=>{const x=c.current,I=b();if(!x||!I||ed(I))return;const M=I.outerHeightStyle;p.current!==M&&(p.current=M,x.style.height=`${M}px`),x.style.overflow=I.overflowing?"hidden":""},[b]),y=P.useRef(-1);ar(()=>{const x=Y1(E),I=c?.current;if(!I)return;const M=sr(I);M.addEventListener("resize",x);let C;return typeof ResizeObserver<"u"&&(C=new ResizeObserver(()=>{v()&&(C.unobserve(I),cancelAnimationFrame(y.current),E(),y.current=requestAnimationFrame(()=>{C.observe(I)}))}),C.observe(I)),()=>{x.clear(),cancelAnimationFrame(y.current),M.removeEventListener("resize",x),C&&C.disconnect()}},[b,E,v]),ar(()=>{E()});const w=x=>{l||E();const I=x.target,M=I.value.length,C=I.value.endsWith(` `),H=I.selectionStart===M;C&&H&&I.setSelectionRange(M,M),r&&r(x)};return k.jsxs(P.Fragment,{children:[k.jsx("textarea",{value:o,onChange:w,ref:d,rows:a,style:s,...u}),k.jsx("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:f,tabIndex:-1,style:{...y5.shadow,...s,paddingTop:0,paddingBottom:0}})]})});function s0({props:e,states:t,muiFormControl:n}){return t.reduce((r,i)=>(r[i]=e[i],n&&typeof e[i]>"u"&&(r[i]=n[i]),r),{})}const op=P.createContext(void 0);function o0(){return P.useContext(op)}function td(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function up(e,t=!1){return e&&(td(e.value)&&e.value!==""||t&&td(e.defaultValue)&&e.defaultValue!=="")}function PL(e){return e.startAdornment}var nd;const bo=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size==="small"&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${St(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},yo=(e,t)=>{const{ownerState:n}=e;return[t.input,n.size==="small"&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type==="search"&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},x5=e=>{const{classes:t,color:n,disabled:r,error:i,endAdornment:a,focused:s,formControl:o,fullWidth:u,hiddenLabel:l,multiline:c,readOnly:d,size:p,startAdornment:f,type:b}=e,v={root:["root",`color${St(n)}`,r&&"disabled",i&&"error",u&&"fullWidth",s&&"focused",o&&"formControl",p&&p!=="medium"&&`size${St(p)}`,c&&"multiline",f&&"adornedStart",a&&"adornedEnd",l&&"hiddenLabel",d&&"readOnly"],input:["input",r&&"disabled",b==="search"&&"inputTypeSearch",c&&"inputMultiline",p==="small"&&"inputSizeSmall",l&&"inputHiddenLabel",f&&"inputAdornedStart",a&&"inputAdornedEnd",d&&"readOnly"]};return Ge(v,Rg,t)},vo=ue("div",{name:"MuiInputBase",slot:"Root",overridesResolver:bo})(ct(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${Na.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:t})=>t.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:t,size:n})=>t.multiline&&n==="small",style:{paddingTop:1}},{props:({ownerState:t})=>t.fullWidth,style:{width:"100%"}}]}))),To=ue("input",{name:"MuiInputBase",slot:"Input",overridesResolver:yo})(ct(({theme:e})=>{const t=e.palette.mode==="light",n={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},i=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${Na.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":i,"&:focus::-moz-placeholder":i,"&:focus::-ms-input-placeholder":i},[`&.${Na.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:a})=>!a.disableInjectingGlobalStyles,style:{animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:a})=>a.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),rd=Ng({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),xo=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiInputBase"}),{"aria-describedby":i,autoComplete:a,autoFocus:s,className:o,color:u,components:l={},componentsProps:c={},defaultValue:d,disabled:p,disableInjectingGlobalStyles:f,endAdornment:b,error:v,fullWidth:E=!1,id:y,inputComponent:w="input",inputProps:x={},inputRef:I,margin:M,maxRows:C,minRows:H,multiline:z=!1,name:V,onBlur:L,onChange:$,onClick:W,onFocus:G,onKeyDown:q,onKeyUp:Y,placeholder:Q,readOnly:ee,renderSuffix:de,rows:oe,size:R,slotProps:Ce={},slots:ve={},startAdornment:B,type:xe="text",value:Ie,...Be}=r,je=x.value!=null?x.value:Ie,{current:_e}=P.useRef(je!=null),qe=P.useRef(),Te=P.useCallback(Se=>{},[]),De=Vt(qe,I,x.ref,Te),[Ne,Qe]=P.useState(!1),Re=o0(),$e=s0({props:r,muiFormControl:Re,states:["color","disabled","error","hiddenLabel","size","required","filled"]});$e.focused=Re?Re.focused:Ne,P.useEffect(()=>{!Re&&p&&Ne&&(Qe(!1),L&&L())},[Re,p,Ne,L]);const wt=Re&&Re.onFilled,ht=Re&&Re.onEmpty,st=P.useCallback(Se=>{up(Se)?wt&&wt():ht&&ht()},[wt,ht]);ar(()=>{_e&&st({value:je})},[je,st,_e]);const Nt=Se=>{G&&G(Se),x.onFocus&&x.onFocus(Se),Re&&Re.onFocus?Re.onFocus(Se):Qe(!0)},ot=Se=>{L&&L(Se),x.onBlur&&x.onBlur(Se),Re&&Re.onBlur?Re.onBlur(Se):Qe(!1)},it=(Se,...Rt)=>{if(!_e){const yt=Se.target||qe.current;if(yt==null)throw new Error(z1(1));st({value:yt.value})}x.onChange&&x.onChange(Se,...Rt),$&&$(Se,...Rt)};P.useEffect(()=>{st(qe.current)},[]);const Ht=Se=>{qe.current&&Se.currentTarget===Se.target&&qe.current.focus(),W&&W(Se)};let Kt=w,bt=x;z&&Kt==="input"&&(oe?bt={type:void 0,minRows:oe,maxRows:oe,...bt}:bt={type:void 0,maxRows:C,minRows:H,...bt},Kt=T5);const on=Se=>{st(Se.animationName==="mui-auto-fill-cancel"?qe.current:{value:"x"})};P.useEffect(()=>{Re&&Re.setAdornedStart(!!B)},[Re,B]);const K={...r,color:$e.color||"primary",disabled:$e.disabled,endAdornment:b,error:$e.error,focused:$e.focused,formControl:Re,fullWidth:E,hiddenLabel:$e.hiddenLabel,multiline:z,size:$e.size,startAdornment:B,type:xe},ie=x5(K),me=ve.root||l.Root||vo,Ee=Ce.root||c.root||{},Pe=ve.input||l.Input||To;return bt={...bt,...Ce.input??c.input},k.jsxs(P.Fragment,{children:[!f&&typeof rd=="function"&&(nd||(nd=k.jsx(rd,{}))),k.jsxs(me,{...Ee,ref:n,onClick:Ht,...Be,...!Ia(me)&&{ownerState:{...K,...Ee.ownerState}},className:Ve(ie.root,Ee.className,o,ee&&"MuiInputBase-readOnly"),children:[B,k.jsx(op.Provider,{value:null,children:k.jsx(Pe,{"aria-invalid":$e.error,"aria-describedby":i,autoComplete:a,autoFocus:s,defaultValue:d,disabled:$e.disabled,id:y,onAnimationStart:on,name:V,placeholder:Q,readOnly:ee,required:$e.required,rows:oe,value:je,onKeyDown:q,onKeyUp:Y,type:xe,...bt,...!Ia(Pe)&&{as:Kt,ownerState:{...K,...bt.ownerState}},ref:De,className:Ve(ie.input,bt.className,ee&&"MuiInputBase-readOnly"),onBlur:ot,onChange:it,onFocus:Nt})}),b,de?de({...$e,startAdornment:B}):null]})]})});function E5(e){return gt("MuiInput",e)}const Gi={...Na,...at("MuiInput",["root","underline","input"])};function S5(e){return gt("MuiFilledInput",e)}const Or={...Na,...at("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])},w5=Mg(k.jsx("path",{d:"M7 10l5 5 5-5z"})),A5={entering:{opacity:1},entered:{opacity:1}},Xu=P.forwardRef(function(t,n){const r=qa(),i={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:a,appear:s=!0,children:o,easing:u,in:l,onEnter:c,onEntered:d,onEntering:p,onExit:f,onExited:b,onExiting:v,style:E,timeout:y=i,TransitionComponent:w=Yn,...x}=t,I=P.useRef(null),M=Vt(I,Li(o),n),C=q=>Y=>{if(q){const Q=I.current;Y===void 0?q(Q):q(Q,Y)}},H=C(p),z=C((q,Y)=>{G1(q);const Q=Ys({style:E,timeout:y,easing:u},{mode:"enter"});q.style.webkitTransition=r.transitions.create("opacity",Q),q.style.transition=r.transitions.create("opacity",Q),c&&c(q,Y)}),V=C(d),L=C(v),$=C(q=>{const Y=Ys({style:E,timeout:y,easing:u},{mode:"exit"});q.style.webkitTransition=r.transitions.create("opacity",Y),q.style.transition=r.transitions.create("opacity",Y),f&&f(q)}),W=C(b),G=q=>{a&&a(I.current,q)};return k.jsx(w,{appear:s,in:l,nodeRef:I,onEnter:z,onEntered:V,onEntering:H,onExit:$,onExited:W,onExiting:L,addEndListener:G,timeout:y,...x,children:(q,{ownerState:Y,...Q})=>P.cloneElement(o,{style:{opacity:0,visibility:q==="exited"&&!l?"hidden":void 0,...A5[q],...E,...o.props.style},ref:M,...Q})})});function C5(e){return gt("MuiBackdrop",e)}at("MuiBackdrop",["root","invisible"]);const k5=e=>{const{classes:t,invisible:n}=e;return Ge({root:["root",n&&"invisible"]},C5,t)},I5=ue("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),lp=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiBackdrop"}),{children:i,className:a,component:s="div",invisible:o=!1,open:u,components:l={},componentsProps:c={},slotProps:d={},slots:p={},TransitionComponent:f,transitionDuration:b,...v}=r,E={...r,component:s,invisible:o},y=k5(E),w={transition:f,root:l.Root,...p},x={...c,...d},I={component:s,slots:w,slotProps:x},[M,C]=Et("root",{elementType:I5,externalForwardedProps:I,className:Ve(y.root,a),ownerState:E}),[H,z]=Et("transition",{elementType:Xu,externalForwardedProps:I,ownerState:E});return k.jsx(H,{in:u,timeout:b,...v,...z,children:k.jsx(M,{"aria-hidden":!0,...C,classes:y,ref:n,children:i})})}),N5=at("MuiBox",["root"]),R5=Lg(),Ar=Kg({themeId:Pg,defaultTheme:R5,defaultClassName:N5.root,generateClassName:Dg.generate});function cp(e=window){const t=e.document.documentElement.clientWidth;return e.innerWidth-t}function M5(e){const t=fn(e);return t.body===e?sr(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function ha(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function id(e){return parseInt(sr(e).getComputedStyle(e).paddingRight,10)||0}function D5(e){const n=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(e.tagName),r=e.tagName==="INPUT"&&e.getAttribute("type")==="hidden";return n||r}function ad(e,t,n,r,i){const a=[t,n,...r];[].forEach.call(e.children,s=>{const o=!a.includes(s),u=!D5(s);o&&u&&ha(s,i)})}function jo(e,t){let n=-1;return e.some((r,i)=>t(r)?(n=i,!0):!1),n}function P5(e,t){const n=[],r=e.container;if(!t.disableScrollLock){if(M5(r)){const s=cp(sr(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight=`${id(r)+s}px`;const o=fn(r).querySelectorAll(".mui-fixed");[].forEach.call(o,u=>{n.push({value:u.style.paddingRight,property:"padding-right",el:u}),u.style.paddingRight=`${id(u)+s}px`})}let a;if(r.parentNode instanceof DocumentFragment)a=fn(r).body;else{const s=r.parentElement,o=sr(r);a=s?.nodeName==="HTML"&&o.getComputedStyle(s).overflowY==="scroll"?s:r}n.push({value:a.style.overflow,property:"overflow",el:a},{value:a.style.overflowX,property:"overflow-x",el:a},{value:a.style.overflowY,property:"overflow-y",el:a}),a.style.overflow="hidden"}return()=>{n.forEach(({value:a,el:s,property:o})=>{a?s.style.setProperty(o,a):s.style.removeProperty(o)})}}function L5(e){const t=[];return[].forEach.call(e.children,n=>{n.getAttribute("aria-hidden")==="true"&&t.push(n)}),t}class O5{constructor(){this.modals=[],this.containers=[]}add(t,n){let r=this.modals.indexOf(t);if(r!==-1)return r;r=this.modals.length,this.modals.push(t),t.modalRef&&ha(t.modalRef,!1);const i=L5(n);ad(n,t.mount,t.modalRef,i,!0);const a=jo(this.containers,s=>s.container===n);return a!==-1?(this.containers[a].modals.push(t),r):(this.containers.push({modals:[t],container:n,restore:null,hiddenSiblings:i}),r)}mount(t,n){const r=jo(this.containers,a=>a.modals.includes(t)),i=this.containers[r];i.restore||(i.restore=P5(i,n))}remove(t,n=!0){const r=this.modals.indexOf(t);if(r===-1)return r;const i=jo(this.containers,s=>s.modals.includes(t)),a=this.containers[i];if(a.modals.splice(a.modals.indexOf(t),1),this.modals.splice(r,1),a.modals.length===0)a.restore&&a.restore(),t.modalRef&&ha(t.modalRef,n),ad(a.container,t.mount,t.modalRef,a.hiddenSiblings,!1),this.containers.splice(i,1);else{const s=a.modals[a.modals.length-1];s.modalRef&&ha(s.modalRef,!1)}return r}isTopModal(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}const _5=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function B5(e){const t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?e.contentEditable==="true"||(e.nodeName==="AUDIO"||e.nodeName==="VIDEO"||e.nodeName==="DETAILS")&&e.getAttribute("tabindex")===null?0:e.tabIndex:t}function F5(e){if(e.tagName!=="INPUT"||e.type!=="radio"||!e.name)return!1;const t=r=>e.ownerDocument.querySelector(`input[type="radio"]${r}`);let n=t(`[name="${e.name}"]:checked`);return n||(n=t(`[name="${e.name}"]`)),n!==e}function H5(e){return!(e.disabled||e.tagName==="INPUT"&&e.type==="hidden"||F5(e))}function z5(e){const t=[],n=[];return Array.from(e.querySelectorAll(_5)).forEach((r,i)=>{const a=B5(r);a===-1||!H5(r)||(a===0?t.push(r):n.push({documentOrder:i,tabIndex:a,node:r}))}),n.sort((r,i)=>r.tabIndex===i.tabIndex?r.documentOrder-i.documentOrder:r.tabIndex-i.tabIndex).map(r=>r.node).concat(t)}function U5(){return!0}function V5(e){const{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:i=!1,getTabbable:a=z5,isEnabled:s=U5,open:o}=e,u=P.useRef(!1),l=P.useRef(null),c=P.useRef(null),d=P.useRef(null),p=P.useRef(null),f=P.useRef(!1),b=P.useRef(null),v=Vt(Li(t),b),E=P.useRef(null);P.useEffect(()=>{!o||!b.current||(f.current=!n)},[n,o]),P.useEffect(()=>{if(!o||!b.current)return;const x=fn(b.current);return b.current.contains(x.activeElement)||(b.current.hasAttribute("tabIndex")||b.current.setAttribute("tabIndex","-1"),f.current&&b.current.focus()),()=>{i||(d.current&&d.current.focus&&(u.current=!0,d.current.focus()),d.current=null)}},[o]),P.useEffect(()=>{if(!o||!b.current)return;const x=fn(b.current),I=H=>{E.current=H,!(r||!s()||H.key!=="Tab")&&x.activeElement===b.current&&H.shiftKey&&(u.current=!0,c.current&&c.current.focus())},M=()=>{const H=b.current;if(H===null)return;if(!x.hasFocus()||!s()||u.current){u.current=!1;return}if(H.contains(x.activeElement)||r&&x.activeElement!==l.current&&x.activeElement!==c.current)return;if(x.activeElement!==p.current)p.current=null;else if(p.current!==null)return;if(!f.current)return;let z=[];if((x.activeElement===l.current||x.activeElement===c.current)&&(z=a(b.current)),z.length>0){const V=!!(E.current?.shiftKey&&E.current?.key==="Tab"),L=z[0],$=z[z.length-1];typeof L!="string"&&typeof $!="string"&&(V?$.focus():L.focus())}else H.focus()};x.addEventListener("focusin",M),x.addEventListener("keydown",I,!0);const C=setInterval(()=>{x.activeElement&&x.activeElement.tagName==="BODY"&&M()},50);return()=>{clearInterval(C),x.removeEventListener("focusin",M),x.removeEventListener("keydown",I,!0)}},[n,r,i,s,o,a]);const y=x=>{d.current===null&&(d.current=x.relatedTarget),f.current=!0,p.current=x.target;const I=t.props.onFocus;I&&I(x)},w=x=>{d.current===null&&(d.current=x.relatedTarget),f.current=!0};return k.jsxs(P.Fragment,{children:[k.jsx("div",{tabIndex:o?0:-1,onFocus:w,ref:l,"data-testid":"sentinelStart"}),P.cloneElement(t,{ref:v,onFocus:y}),k.jsx("div",{tabIndex:o?0:-1,onFocus:w,ref:c,"data-testid":"sentinelEnd"})]})}function j5(e){return typeof e=="function"?e():e}function q5(e){return e?e.props.hasOwnProperty("in"):!1}const sd=()=>{},ps=new O5;function $5(e){const{container:t,disableEscapeKeyDown:n=!1,disableScrollLock:r=!1,closeAfterTransition:i=!1,onTransitionEnter:a,onTransitionExited:s,children:o,onClose:u,open:l,rootRef:c}=e,d=P.useRef({}),p=P.useRef(null),f=P.useRef(null),b=Vt(f,c),[v,E]=P.useState(!l),y=q5(o);let w=!0;(e["aria-hidden"]==="false"||e["aria-hidden"]===!1)&&(w=!1);const x=()=>fn(p.current),I=()=>(d.current.modalRef=f.current,d.current.mount=p.current,d.current),M=()=>{ps.mount(I(),{disableScrollLock:r}),f.current&&(f.current.scrollTop=0)},C=ka(()=>{const Y=j5(t)||x().body;ps.add(I(),Y),f.current&&M()}),H=()=>ps.isTopModal(I()),z=ka(Y=>{p.current=Y,Y&&(l&&H()?M():f.current&&ha(f.current,w))}),V=P.useCallback(()=>{ps.remove(I(),w)},[w]);P.useEffect(()=>()=>{V()},[V]),P.useEffect(()=>{l?C():(!y||!i)&&V()},[l,V,y,i,C]);const L=Y=>Q=>{Y.onKeyDown?.(Q),!(Q.key!=="Escape"||Q.which===229||!H())&&(n||(Q.stopPropagation(),u&&u(Q,"escapeKeyDown")))},$=Y=>Q=>{Y.onClick?.(Q),Q.target===Q.currentTarget&&u&&u(Q,"backdropClick")};return{getRootProps:(Y={})=>{const Q=Og(e);delete Q.onTransitionEnter,delete Q.onTransitionExited;const ee={...Q,...Y};return{role:"presentation",...ee,onKeyDown:L(ee),ref:b}},getBackdropProps:(Y={})=>{const Q=Y;return{"aria-hidden":!0,...Q,onClick:$(Q),open:l}},getTransitionProps:()=>{const Y=()=>{E(!1),a&&a()},Q=()=>{E(!0),s&&s(),i&&V()};return{onEnter:Vc(Y,o?.props.onEnter??sd),onExited:Vc(Q,o?.props.onExited??sd)}},rootRef:b,portalRef:z,isTopModal:H,exited:v,hasTransition:y}}function W5(e){return gt("MuiModal",e)}at("MuiModal",["root","hidden","backdrop"]);const Y5=e=>{const{open:t,exited:n,classes:r}=e;return Ge({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},W5,r)},G5=ue("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})(ct(({theme:e})=>({position:"fixed",zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:t})=>!t.open&&t.exited,style:{visibility:"hidden"}}]}))),X5=ue(lp,{name:"MuiModal",slot:"Backdrop"})({zIndex:-1}),dp=P.forwardRef(function(t,n){const r=Ke({name:"MuiModal",props:t}),{BackdropComponent:i=X5,BackdropProps:a,classes:s,className:o,closeAfterTransition:u=!1,children:l,container:c,component:d,components:p={},componentsProps:f={},disableAutoFocus:b=!1,disableEnforceFocus:v=!1,disableEscapeKeyDown:E=!1,disablePortal:y=!1,disableRestoreFocus:w=!1,disableScrollLock:x=!1,hideBackdrop:I=!1,keepMounted:M=!1,onClose:C,onTransitionEnter:H,onTransitionExited:z,open:V,slotProps:L={},slots:$={},theme:W,...G}=r,q={...r,closeAfterTransition:u,disableAutoFocus:b,disableEnforceFocus:v,disableEscapeKeyDown:E,disablePortal:y,disableRestoreFocus:w,disableScrollLock:x,hideBackdrop:I,keepMounted:M},{getRootProps:Y,getBackdropProps:Q,getTransitionProps:ee,portalRef:de,isTopModal:oe,exited:R,hasTransition:Ce}=$5({...q,rootRef:n}),ve={...q,exited:R},B=Y5(ve),xe={};if(l.props.tabIndex===void 0&&(xe.tabIndex="-1"),Ce){const{onEnter:Te,onExited:De}=ee();xe.onEnter=Te,xe.onExited=De}const Ie={slots:{root:p.Root,backdrop:p.Backdrop,...$},slotProps:{...f,...L}},[Be,je]=Et("root",{ref:n,elementType:G5,externalForwardedProps:{...Ie,...G,component:d},getSlotProps:Y,ownerState:ve,className:Ve(o,B?.root,!ve.open&&ve.exited&&B?.hidden)}),[_e,qe]=Et("backdrop",{ref:a?.ref,elementType:i,externalForwardedProps:Ie,shouldForwardComponentProp:!0,additionalProps:a,getSlotProps:Te=>Q({...Te,onClick:De=>{Te?.onClick&&Te.onClick(De)}}),className:Ve(a?.className,B?.backdrop),ownerState:ve});return!M&&!V&&(!Ce||R)?null:k.jsx(ap,{ref:de,container:c,disablePortal:y,children:k.jsxs(Be,{...je,children:[!I&&i?k.jsx(_e,{...qe}):null,k.jsx(V5,{disableEnforceFocus:v,disableAutoFocus:b,disableRestoreFocus:w,isEnabled:oe,open:V,children:P.cloneElement(l,xe)})]})})});function K5(e){return gt("MuiDialog",e)}const qo=at("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]),hp=P.createContext({}),Q5=ue(lp,{name:"MuiDialog",slot:"Backdrop",overrides:(e,t)=>t.backdrop})({zIndex:-1}),Z5=e=>{const{classes:t,scroll:n,maxWidth:r,fullWidth:i,fullScreen:a}=e,s={root:["root"],container:["container",`scroll${St(n)}`],paper:["paper",`paperScroll${St(n)}`,`paperWidth${St(String(r))}`,i&&"paperFullWidth",a&&"paperFullScreen"]};return Ge(s,K5,t)},J5=ue(dp,{name:"MuiDialog",slot:"Root"})({"@media print":{position:"absolute !important"}}),eb=ue("div",{name:"MuiDialog",slot:"Container",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.container,t[`scroll${St(n.scroll)}`]]}})({height:"100%","@media print":{height:"auto"},outline:0,variants:[{props:{scroll:"paper"},style:{display:"flex",justifyContent:"center",alignItems:"center"}},{props:{scroll:"body"},style:{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}}}]}),tb=ue(mo,{name:"MuiDialog",slot:"Paper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.paper,t[`scrollPaper${St(n.scroll)}`],t[`paperWidth${St(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(ct(({theme:e})=>({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"},variants:[{props:{scroll:"paper"},style:{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"}},{props:{scroll:"body"},style:{display:"inline-block",verticalAlign:"middle",textAlign:"initial"}},{props:({ownerState:t})=>!t.maxWidth,style:{maxWidth:"calc(100% - 64px)"}},{props:{maxWidth:"xs"},style:{maxWidth:e.breakpoints.unit==="px"?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`,[`&.${qo.paperScrollBody}`]:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:"calc(100% - 64px)"}}}},...Object.keys(e.breakpoints.values).filter(t=>t!=="xs").map(t=>({props:{maxWidth:t},style:{maxWidth:`${e.breakpoints.values[t]}${e.breakpoints.unit}`,[`&.${qo.paperScrollBody}`]:{[e.breakpoints.down(e.breakpoints.values[t]+64)]:{maxWidth:"calc(100% - 64px)"}}}})),{props:({ownerState:t})=>t.fullWidth,style:{width:"calc(100% - 64px)"}},{props:({ownerState:t})=>t.fullScreen,style:{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${qo.paperScrollBody}`]:{margin:0,maxWidth:"100%"}}}]}))),nb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDialog"}),i=qa(),a={enter:i.transitions.duration.enteringScreen,exit:i.transitions.duration.leavingScreen},{"aria-describedby":s,"aria-labelledby":o,"aria-modal":u=!0,BackdropComponent:l,BackdropProps:c,children:d,className:p,disableEscapeKeyDown:f=!1,fullScreen:b=!1,fullWidth:v=!1,maxWidth:E="sm",onClick:y,onClose:w,open:x,PaperComponent:I=mo,PaperProps:M={},scroll:C="paper",slots:H={},slotProps:z={},TransitionComponent:V=Xu,transitionDuration:L=a,TransitionProps:$,...W}=r,G={...r,disableEscapeKeyDown:f,fullScreen:b,fullWidth:v,maxWidth:E,scroll:C},q=Z5(G),Y=P.useRef(),Q=Qe=>{Y.current=Qe.target===Qe.currentTarget},ee=Qe=>{y&&y(Qe),Y.current&&(Y.current=null,w&&w(Qe,"backdropClick"))},de=Xl(o),oe=P.useMemo(()=>({titleId:de}),[de]),R={transition:V,...H},Ce={transition:$,paper:M,backdrop:c,...z},ve={slots:R,slotProps:Ce},[B,xe]=Et("root",{elementType:J5,shouldForwardComponentProp:!0,externalForwardedProps:ve,ownerState:G,className:Ve(q.root,p),ref:n}),[Ie,Be]=Et("backdrop",{elementType:Q5,shouldForwardComponentProp:!0,externalForwardedProps:ve,ownerState:G}),[je,_e]=Et("paper",{elementType:tb,shouldForwardComponentProp:!0,externalForwardedProps:ve,ownerState:G,className:Ve(q.paper,M.className)}),[qe,Te]=Et("container",{elementType:eb,externalForwardedProps:ve,ownerState:G,className:q.container}),[De,Ne]=Et("transition",{elementType:Xu,externalForwardedProps:ve,ownerState:G,additionalProps:{appear:!0,in:x,timeout:L,role:"presentation"}});return k.jsx(B,{closeAfterTransition:!0,slots:{backdrop:Ie},slotProps:{backdrop:{transitionDuration:L,as:l,...Be}},disableEscapeKeyDown:f,onClose:w,open:x,onClick:ee,...xe,...W,children:k.jsx(De,{...Ne,children:k.jsx(qe,{onMouseDown:Q,...Te,children:k.jsx(je,{as:I,elevation:24,role:"dialog","aria-describedby":s,"aria-labelledby":de,"aria-modal":u,..._e,children:k.jsx(hp.Provider,{value:oe,children:d})})})})})});function rb(e){return gt("MuiDialogActions",e)}at("MuiDialogActions",["root","spacing"]);const ib=e=>{const{classes:t,disableSpacing:n}=e;return Ge({root:["root",!n&&"spacing"]},rb,t)},ab=ue("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto",variants:[{props:({ownerState:e})=>!e.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),sb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDialogActions"}),{className:i,disableSpacing:a=!1,...s}=r,o={...r,disableSpacing:a},u=ib(o);return k.jsx(ab,{className:Ve(u.root,i),ownerState:o,ref:n,...s})}),ob=e=>{const{classes:t,dividers:n}=e;return Ge({root:["root",n&&"dividers"]},_g,t)},ub=ue("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.dividers&&t.dividers]}})(ct(({theme:e})=>({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px",variants:[{props:({ownerState:t})=>t.dividers,style:{padding:"16px 24px",borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:t})=>!t.dividers,style:{[`.${Bg.root} + &`]:{paddingTop:0}}}]}))),lb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDialogContent"}),{className:i,dividers:a=!1,...s}=r,o={...r,dividers:a},u=ob(o);return k.jsx(ub,{className:Ve(u.root,i),ownerState:o,ref:n,...s})});function cb(e){return gt("MuiDialogContentText",e)}at("MuiDialogContentText",["root"]);const db=e=>{const{classes:t}=e,r=Ge({root:["root"]},cb,t);return{...t,...r}},hb=ue(Ye,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiDialogContentText",slot:"Root"})({}),fb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDialogContentText"}),{children:i,className:a,...s}=r,o=db(s);return k.jsx(hb,{component:"p",variant:"body1",color:"textSecondary",ref:n,ownerState:s,className:Ve(o.root,a),...r,classes:o})}),pb=e=>{const{classes:t}=e;return Ge({root:["root"]},Fg,t)},mb=ue(Ye,{name:"MuiDialogTitle",slot:"Root"})({padding:"16px 24px",flex:"0 0 auto"}),gb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDialogTitle"}),{className:i,id:a,...s}=r,o=r,u=pb(o),{titleId:l=a}=P.useContext(hp);return k.jsx(mb,{component:"h2",className:Ve(u.root,i),ownerState:o,ref:n,variant:"h6",id:a??l,...s})}),bb=e=>{const{absolute:t,children:n,classes:r,flexItem:i,light:a,orientation:s,textAlign:o,variant:u}=e;return Ge({root:["root",t&&"absolute",u,a&&"light",s==="vertical"&&"vertical",i&&"flexItem",n&&"withChildren",n&&s==="vertical"&&"withChildrenVertical",o==="right"&&s!=="vertical"&&"textAlignRight",o==="left"&&s!=="vertical"&&"textAlignLeft"],wrapper:["wrapper",s==="vertical"&&"wrapperVertical"]},Hg,r)},yb=ue("div",{name:"MuiDivider",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.absolute&&t.absolute,t[n.variant],n.light&&t.light,n.orientation==="vertical"&&t.vertical,n.flexItem&&t.flexItem,n.children&&t.withChildren,n.children&&n.orientation==="vertical"&&t.withChildrenVertical,n.textAlign==="right"&&n.orientation!=="vertical"&&t.textAlignRight,n.textAlign==="left"&&n.orientation!=="vertical"&&t.textAlignLeft]}})(ct(({theme:e})=>({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(e.vars||e).palette.divider,borderBottomWidth:"thin",variants:[{props:{absolute:!0},style:{position:"absolute",bottom:0,left:0,width:"100%"}},{props:{light:!0},style:{borderColor:e.alpha((e.vars||e).palette.divider,.08)}},{props:{variant:"inset"},style:{marginLeft:72}},{props:{variant:"middle",orientation:"horizontal"},style:{marginLeft:e.spacing(2),marginRight:e.spacing(2)}},{props:{variant:"middle",orientation:"vertical"},style:{marginTop:e.spacing(1),marginBottom:e.spacing(1)}},{props:{orientation:"vertical"},style:{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"}},{props:{flexItem:!0},style:{alignSelf:"stretch",height:"auto"}},{props:({ownerState:t})=>!!t.children,style:{display:"flex",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}},{props:({ownerState:t})=>t.children&&t.orientation!=="vertical",style:{"&::before, &::after":{width:"100%",borderTop:`thin solid ${(e.vars||e).palette.divider}`,borderTopStyle:"inherit"}}},{props:({ownerState:t})=>t.orientation==="vertical"&&t.children,style:{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:`thin solid ${(e.vars||e).palette.divider}`,borderLeftStyle:"inherit"}}},{props:({ownerState:t})=>t.textAlign==="right"&&t.orientation!=="vertical",style:{"&::before":{width:"90%"},"&::after":{width:"10%"}}},{props:({ownerState:t})=>t.textAlign==="left"&&t.orientation!=="vertical",style:{"&::before":{width:"10%"},"&::after":{width:"90%"}}}]}))),vb=ue("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.wrapper,n.orientation==="vertical"&&t.wrapperVertical]}})(ct(({theme:e})=>({display:"inline-block",paddingLeft:`calc(${e.spacing(1)} * 1.2)`,paddingRight:`calc(${e.spacing(1)} * 1.2)`,whiteSpace:"nowrap",variants:[{props:{orientation:"vertical"},style:{paddingTop:`calc(${e.spacing(1)} * 1.2)`,paddingBottom:`calc(${e.spacing(1)} * 1.2)`}}]}))),Ku=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiDivider"}),{absolute:i=!1,children:a,className:s,orientation:o="horizontal",component:u=a||o==="vertical"?"div":"hr",flexItem:l=!1,light:c=!1,role:d=u!=="hr"?"separator":void 0,textAlign:p="center",variant:f="fullWidth",...b}=r,v={...r,absolute:i,component:u,flexItem:l,light:c,orientation:o,role:d,textAlign:p,variant:f},E=bb(v);return k.jsx(yb,{as:u,className:Ve(E.root,s),role:d,ref:n,ownerState:v,"aria-orientation":d==="separator"&&(u!=="hr"||o==="vertical")?o:void 0,...b,children:a?k.jsx(vb,{className:E.wrapper,ownerState:v,children:a}):null})});Ku&&(Ku.muiSkipListHighlight=!0);const Tb=e=>{const{classes:t,disableUnderline:n,startAdornment:r,endAdornment:i,size:a,hiddenLabel:s,multiline:o}=e,u={root:["root",!n&&"underline",r&&"adornedStart",i&&"adornedEnd",a==="small"&&`size${St(a)}`,s&&"hiddenLabel",o&&"multiline"],input:["input"]},l=Ge(u,S5,t);return{...t,...l}},xb=ue(vo,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...bo(e,t),!n.disableUnderline&&t.underline]}})(ct(({theme:e})=>{const t=e.palette.mode==="light",n=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",r=t?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",i=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",a=t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return{position:"relative",backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:i,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r}},[`&.${Or.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r},[`&.${Or.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:a},variants:[{props:({ownerState:s})=>!s.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Or.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Or.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline):n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Or.disabled}, .${Or.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${Or.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Ql()).map(([s])=>({props:{disableUnderline:!1,color:s},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[s]?.main}`}}})),{props:({ownerState:s})=>s.startAdornment,style:{paddingLeft:12}},{props:({ownerState:s})=>s.endAdornment,style:{paddingRight:12}},{props:({ownerState:s})=>s.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:s,size:o})=>s.multiline&&o==="small",style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:s})=>s.multiline&&s.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:s})=>s.multiline&&s.hiddenLabel&&s.size==="small",style:{paddingTop:8,paddingBottom:9}}]}})),Eb=ue(To,{name:"MuiFilledInput",slot:"Input",overridesResolver:yo})(ct(({theme:e})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:t})=>t.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}},{props:({ownerState:t})=>t.hiddenLabel&&t.size==="small",style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:t})=>t.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),fp=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiFilledInput"}),{disableUnderline:i=!1,components:a={},componentsProps:s,fullWidth:o=!1,hiddenLabel:u,inputComponent:l="input",multiline:c=!1,slotProps:d,slots:p={},type:f="text",...b}=r,v={...r,disableUnderline:i,fullWidth:o,inputComponent:l,multiline:c,type:f},E=Tb(r),y={root:{ownerState:v},input:{ownerState:v}},w=d??s?Kl(y,d??s):y,x=p.root??a.Root??xb,I=p.input??a.Input??Eb;return k.jsx(xo,{slots:{root:x,input:I},slotProps:w,fullWidth:o,inputComponent:l,multiline:c,ref:n,type:f,...b,classes:E})});fp.muiName="Input";function Qu(e){return`scale(${e}, ${e**2})`}const Sb={entering:{opacity:1,transform:Qu(1)},entered:{opacity:1,transform:"none"}},$o=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),Xs=P.forwardRef(function(t,n){const{addEndListener:r,appear:i=!0,children:a,easing:s,in:o,onEnter:u,onEntered:l,onEntering:c,onExit:d,onExited:p,onExiting:f,style:b,timeout:v="auto",TransitionComponent:E=Yn,...y}=t,w=aa(),x=P.useRef(),I=qa(),M=P.useRef(null),C=Vt(M,Li(a),n),H=Y=>Q=>{if(Y){const ee=M.current;Q===void 0?Y(ee):Y(ee,Q)}},z=H(c),V=H((Y,Q)=>{G1(Y);const{duration:ee,delay:de,easing:oe}=Ys({style:b,timeout:v,easing:s},{mode:"enter"});let R;v==="auto"?(R=I.transitions.getAutoHeightDuration(Y.clientHeight),x.current=R):R=ee,Y.style.transition=[I.transitions.create("opacity",{duration:R,delay:de}),I.transitions.create("transform",{duration:$o?R:R*.666,delay:de,easing:oe})].join(","),u&&u(Y,Q)}),L=H(l),$=H(f),W=H(Y=>{const{duration:Q,delay:ee,easing:de}=Ys({style:b,timeout:v,easing:s},{mode:"exit"});let oe;v==="auto"?(oe=I.transitions.getAutoHeightDuration(Y.clientHeight),x.current=oe):oe=Q,Y.style.transition=[I.transitions.create("opacity",{duration:oe,delay:ee}),I.transitions.create("transform",{duration:$o?oe:oe*.666,delay:$o?ee:ee||oe*.333,easing:de})].join(","),Y.style.opacity=0,Y.style.transform=Qu(.75),d&&d(Y)}),G=H(p),q=Y=>{v==="auto"&&w.start(x.current||0,Y),r&&r(M.current,Y)};return k.jsx(E,{appear:i,in:o,nodeRef:M,onEnter:V,onEntered:L,onEntering:z,onExit:W,onExited:G,onExiting:$,addEndListener:q,timeout:v==="auto"?null:v,...y,children:(Y,{ownerState:Q,...ee})=>P.cloneElement(a,{style:{opacity:0,transform:Qu(.75),visibility:Y==="exited"&&!o?"hidden":void 0,...Sb[Y],...b,...a.props.style},ref:C,...ee})})});Xs&&(Xs.muiSupportAuto=!0);const wb=e=>{const{classes:t,disableUnderline:n}=e,i=Ge({root:["root",!n&&"underline"],input:["input"]},E5,t);return{...t,...i}},Ab=ue(vo,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...bo(e,t),!n.disableUnderline&&t.underline]}})(ct(({theme:e})=>{let n=e.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return e.vars&&(n=e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline)),{position:"relative",variants:[{props:({ownerState:r})=>r.formControl,style:{"label + &":{marginTop:16}}},{props:({ownerState:r})=>!r.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Gi.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Gi.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${n}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Gi.disabled}, .${Gi.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${n}`}},[`&.${Gi.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(Ql()).map(([r])=>({props:{color:r,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[r].main}`}}}))]}})),Cb=ue(To,{name:"MuiInput",slot:"Input",overridesResolver:yo})({}),pp=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiInput"}),{disableUnderline:i=!1,components:a={},componentsProps:s,fullWidth:o=!1,inputComponent:u="input",multiline:l=!1,slotProps:c,slots:d={},type:p="text",...f}=r,b=wb(r),E={root:{ownerState:{disableUnderline:i}}},y=c??s?Kl(c??s,E):E,w=d.root??a.Root??Ab,x=d.input??a.Input??Cb;return k.jsx(xo,{slots:{root:w,input:x},slotProps:y,fullWidth:o,inputComponent:u,multiline:l,ref:n,type:p,...f,classes:b})});pp.muiName="Input";const nr=P.createContext({});function kb(e){return gt("MuiList",e)}at("MuiList",["root","padding","dense","subheader"]);const Ib=e=>{const{classes:t,disablePadding:n,dense:r,subheader:i}=e;return Ge({root:["root",!n&&"padding",r&&"dense",i&&"subheader"]},kb,t)},Nb=ue("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>e.subheader,style:{paddingTop:0}}]}),mp=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiList"}),{children:i,className:a,component:s="ul",dense:o=!1,disablePadding:u=!1,subheader:l,...c}=r,d=P.useMemo(()=>({dense:o}),[o]),p={...r,component:s,dense:o,disablePadding:u},f=Ib(p);return k.jsx(nr.Provider,{value:d,children:k.jsxs(Nb,{as:s,className:Ve(f.root,a),ref:n,ownerState:p,...c,children:[l,i]})})});function Rb(e){return gt("MuiListItem",e)}at("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"]);const Mb=at("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]);function Db(e){return gt("MuiListItemSecondaryAction",e)}at("MuiListItemSecondaryAction",["root","disableGutters"]);const Pb=e=>{const{disableGutters:t,classes:n}=e;return Ge({root:["root",t&&"disableGutters"]},Db,n)},Lb=ue("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.disableGutters&&t.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:({ownerState:e})=>e.disableGutters,style:{right:0}}]}),gp=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiListItemSecondaryAction"}),{className:i,...a}=r,s=P.useContext(nr),o={...r,disableGutters:s.disableGutters},u=Pb(o);return k.jsx(Lb,{className:Ve(u.root,i),ownerState:o,ref:n,...a})});gp.muiName="ListItemSecondaryAction";const Ob=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.alignItems==="flex-start"&&t.alignItemsFlexStart,n.divider&&t.divider,!n.disableGutters&&t.gutters,!n.disablePadding&&t.padding,n.hasSecondaryAction&&t.secondaryAction]},_b=e=>{const{alignItems:t,classes:n,dense:r,disableGutters:i,disablePadding:a,divider:s,hasSecondaryAction:o}=e;return Ge({root:["root",r&&"dense",!i&&"gutters",!a&&"padding",s&&"divider",t==="flex-start"&&"alignItemsFlexStart",o&&"secondaryAction"],container:["container"]},Rb,n)},Bb=ue("div",{name:"MuiListItem",slot:"Root",overridesResolver:Ob})(ct(({theme:e})=>({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:({ownerState:t})=>!t.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:t})=>!t.disablePadding&&t.dense,style:{paddingTop:4,paddingBottom:4}},{props:({ownerState:t})=>!t.disablePadding&&!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>!t.disablePadding&&!!t.secondaryAction,style:{paddingRight:48}},{props:({ownerState:t})=>!!t.secondaryAction,style:{[`& > .${Mb.root}`]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>t.button,style:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:({ownerState:t})=>t.hasSecondaryAction,style:{paddingRight:48}}]}))),Fb=ue("li",{name:"MuiListItem",slot:"Container"})({position:"relative"}),Hb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiListItem"}),{alignItems:i="center",children:a,className:s,component:o,components:u={},componentsProps:l={},ContainerComponent:c="li",ContainerProps:{className:d,...p}={},dense:f=!1,disableGutters:b=!1,disablePadding:v=!1,divider:E=!1,secondaryAction:y,slotProps:w={},slots:x={},...I}=r,M=P.useContext(nr),C=P.useMemo(()=>({dense:f||M.dense||!1,alignItems:i,disableGutters:b}),[i,M.dense,f,b]),H=P.useRef(null),z=P.Children.toArray(a),V=z.length&&Qg(z[z.length-1],["ListItemSecondaryAction"]),L={...r,alignItems:i,dense:C.dense,disableGutters:b,disablePadding:v,divider:E,hasSecondaryAction:V},$=_b(L),W=Vt(H,n),G=x.root||u.Root||Bb,q=w.root||l.root||{},Y={className:Ve($.root,q.className,s),...I};let Q=o||"li";return V?(Q=!Y.component&&!o?"div":Q,c==="li"&&(Q==="li"?Q="div":Y.component==="li"&&(Y.component="div")),k.jsx(nr.Provider,{value:C,children:k.jsxs(Fb,{as:c,className:Ve($.container,d),ref:W,ownerState:L,...p,children:[k.jsx(G,{...q,...!Ia(G)&&{as:Q,ownerState:{...L,...q.ownerState}},...Y,children:z}),z.pop()]})})):k.jsx(nr.Provider,{value:C,children:k.jsxs(G,{...q,as:Q,ref:W,...!Ia(G)&&{ownerState:{...L,...q.ownerState}},...Y,children:[z,y&&k.jsx(gp,{children:y})]})})}),zb=e=>{const{alignItems:t,classes:n}=e;return Ge({root:["root",t==="flex-start"&&"alignItemsFlexStart"]},zg,n)},Ub=ue("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.alignItems==="flex-start"&&t.alignItemsFlexStart]}})(ct(({theme:e})=>({minWidth:56,color:(e.vars||e).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}))),Vb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiListItemIcon"}),{className:i,...a}=r,s=P.useContext(nr),o={...r,alignItems:s.alignItems},u=zb(o);return k.jsx(Ub,{className:Ve(u.root,i),ownerState:o,ref:n,...a})});function jb(e){return gt("MuiListItemText",e)}const fi=at("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),qb=e=>{const{classes:t,inset:n,primary:r,secondary:i,dense:a}=e;return Ge({root:["root",n&&"inset",a&&"dense",r&&i&&"multiline"],primary:["primary"],secondary:["secondary"]},jb,t)},$b=ue("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${fi.primary}`]:t.primary},{[`& .${fi.secondary}`]:t.secondary},t.root,n.inset&&t.inset,n.primary&&n.secondary&&t.multiline,n.dense&&t.dense]}})({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4,[`.${Oc.root}:where(& .${fi.primary})`]:{display:"block"},[`.${Oc.root}:where(& .${fi.secondary})`]:{display:"block"},variants:[{props:({ownerState:e})=>e.primary&&e.secondary,style:{marginTop:6,marginBottom:6}},{props:({ownerState:e})=>e.inset,style:{paddingLeft:56}}]}),Wb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiListItemText"}),{children:i,className:a,disableTypography:s=!1,inset:o=!1,primary:u,primaryTypographyProps:l,secondary:c,secondaryTypographyProps:d,slots:p={},slotProps:f={},...b}=r,{dense:v}=P.useContext(nr);let E=u??i,y=c;const w={...r,disableTypography:s,inset:o,primary:!!E,secondary:!!y,dense:v},x=qb(w),I={slots:p,slotProps:{primary:l,secondary:d,...f}},[M,C]=Et("root",{className:Ve(x.root,a),elementType:$b,externalForwardedProps:{...I,...b},ownerState:w,ref:n}),[H,z]=Et("primary",{className:x.primary,elementType:Ye,externalForwardedProps:I,ownerState:w}),[V,L]=Et("secondary",{className:x.secondary,elementType:Ye,externalForwardedProps:I,ownerState:w});return E!=null&&E.type!==Ye&&!s&&(E=k.jsx(H,{variant:v?"body2":"body1",component:z?.variant?void 0:"span",...z,children:E})),y!=null&&y.type!==Ye&&!s&&(y=k.jsx(V,{variant:"body2",color:"textSecondary",...L,children:y})),k.jsxs(M,{...C,children:[E,y]})});function Wo(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function od(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function bp(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.startsWith(t.keys.join(""))}function Xi(e,t,n,r,i,a){let s=!1,o=i(e,t,t?n:!1);for(;o;){if(o===e.firstChild){if(s)return!1;s=!0}const u=r?!1:o.disabled||o.getAttribute("aria-disabled")==="true";if(!o.hasAttribute("tabindex")||!bp(o,a)||u)o=i(e,o,n);else return o.focus(),!0}return!1}const Yb=P.forwardRef(function(t,n){const{actions:r,autoFocus:i=!1,autoFocusItem:a=!1,children:s,className:o,disabledItemsFocusable:u=!1,disableListWrap:l=!1,onKeyDown:c,variant:d="selectedMenu",...p}=t,f=P.useRef(null),b=P.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});ar(()=>{i&&f.current.focus()},[i]),P.useImperativeHandle(r,()=>({adjustStyleForScrollbar:(x,{direction:I})=>{const M=!f.current.style.width;if(x.clientHeight{const I=f.current,M=x.key;if(x.ctrlKey||x.metaKey||x.altKey){c&&c(x);return}const H=fn(I).activeElement;if(M==="ArrowDown")x.preventDefault(),Xi(I,H,l,u,Wo);else if(M==="ArrowUp")x.preventDefault(),Xi(I,H,l,u,od);else if(M==="Home")x.preventDefault(),Xi(I,null,l,u,Wo);else if(M==="End")x.preventDefault(),Xi(I,null,l,u,od);else if(M.length===1){const z=b.current,V=M.toLowerCase(),L=performance.now();z.keys.length>0&&(L-z.lastTime>500?(z.keys=[],z.repeating=!0,z.previousKeyMatched=!0):z.repeating&&V!==z.keys[0]&&(z.repeating=!1)),z.lastTime=L,z.keys.push(V);const $=H&&!z.repeating&&bp(H,z);z.previousKeyMatched&&($||Xi(I,H,!1,u,Wo,z))?x.preventDefault():z.previousKeyMatched=!1}c&&c(x)},E=Vt(f,n);let y=-1;P.Children.forEach(s,(x,I)=>{if(!P.isValidElement(x)){y===I&&(y+=1,y>=s.length&&(y=-1));return}x.props.disabled||(d==="selectedMenu"&&x.props.selected||y===-1)&&(y=I),y===I&&(x.props.disabled||x.props.muiSkipListHighlight||x.type.muiSkipListHighlight)&&(y+=1,y>=s.length&&(y=-1))});const w=P.Children.map(s,(x,I)=>{if(I===y){const M={};return a&&(M.autoFocus=!0),x.props.tabIndex===void 0&&d==="selectedMenu"&&(M.tabIndex=0),P.cloneElement(x,M)}return x});return k.jsx(mp,{role:"menu",ref:E,className:o,onKeyDown:v,tabIndex:i?0:-1,...p,children:w})});function Gb(e){return gt("MuiPopover",e)}at("MuiPopover",["root","paper"]);function ud(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.height/2:t==="bottom"&&(n=e.height),n}function ld(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.width/2:t==="right"&&(n=e.width),n}function cd(e){return[e.horizontal,e.vertical].map(t=>typeof t=="number"?`${t}px`:t).join(" ")}function ms(e){return typeof e=="function"?e():e}const Xb=e=>{const{classes:t}=e;return Ge({root:["root"],paper:["paper"]},Gb,t)},Kb=ue(dp,{name:"MuiPopover",slot:"Root"})({}),yp=ue(mo,{name:"MuiPopover",slot:"Paper"})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),Qb=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiPopover"}),{action:i,anchorEl:a,anchorOrigin:s={vertical:"top",horizontal:"left"},anchorPosition:o,anchorReference:u="anchorEl",children:l,className:c,container:d,elevation:p=8,marginThreshold:f=16,open:b,PaperProps:v={},slots:E={},slotProps:y={},transformOrigin:w={vertical:"top",horizontal:"left"},TransitionComponent:x,transitionDuration:I="auto",TransitionProps:M={},disableScrollLock:C=!1,...H}=r,z=P.useRef(),V={...r,anchorOrigin:s,anchorReference:u,elevation:p,marginThreshold:f,transformOrigin:w,TransitionComponent:x,transitionDuration:I,TransitionProps:M},L=Xb(V),$=P.useCallback(()=>{if(u==="anchorPosition")return o;const Te=ms(a),Ne=(Te&&Te.nodeType===1?Te:fn(z.current).body).getBoundingClientRect();return{top:Ne.top+ud(Ne,s.vertical),left:Ne.left+ld(Ne,s.horizontal)}},[a,s.horizontal,s.vertical,o,u]),W=P.useCallback(Te=>({vertical:ud(Te,w.vertical),horizontal:ld(Te,w.horizontal)}),[w.horizontal,w.vertical]),G=P.useCallback(Te=>{const De={width:Te.offsetWidth,height:Te.offsetHeight},Ne=W(De);if(u==="none")return{top:null,left:null,transformOrigin:cd(Ne)};const Qe=$();let Re=Qe.top-Ne.vertical,$e=Qe.left-Ne.horizontal;const wt=Re+De.height,ht=$e+De.width,st=sr(ms(a)),Nt=st.innerHeight-f,ot=st.innerWidth-f;if(f!==null&&ReNt){const it=wt-Nt;Re-=it,Ne.vertical+=it}if(f!==null&&$eot){const it=ht-ot;$e-=it,Ne.horizontal+=it}return{top:`${Math.round(Re)}px`,left:`${Math.round($e)}px`,transformOrigin:cd(Ne)}},[a,u,$,W,f]),[q,Y]=P.useState(b),Q=P.useCallback(()=>{const Te=z.current;if(!Te)return;const De=G(Te);De.top!==null&&Te.style.setProperty("top",De.top),De.left!==null&&(Te.style.left=De.left),Te.style.transformOrigin=De.transformOrigin,Y(!0)},[G]);P.useEffect(()=>(C&&window.addEventListener("scroll",Q),()=>window.removeEventListener("scroll",Q)),[a,C,Q]);const ee=()=>{Q()},de=()=>{Y(!1)};P.useEffect(()=>{b&&Q()}),P.useImperativeHandle(i,()=>b?{updatePosition:()=>{Q()}}:null,[b,Q]),P.useEffect(()=>{if(!b)return;const Te=Y1(()=>{Q()}),De=sr(ms(a));return De.addEventListener("resize",Te),()=>{Te.clear(),De.removeEventListener("resize",Te)}},[a,b,Q]);let oe=I;const R={slots:{transition:x,...E},slotProps:{transition:M,paper:v,...y}},[Ce,ve]=Et("transition",{elementType:Xs,externalForwardedProps:R,ownerState:V,getSlotProps:Te=>({...Te,onEntering:(De,Ne)=>{Te.onEntering?.(De,Ne),ee()},onExited:De=>{Te.onExited?.(De),de()}}),additionalProps:{appear:!0,in:b}});I==="auto"&&!Ce.muiSupportAuto&&(oe=void 0);const B=d||(a?fn(ms(a)).body:void 0),[xe,{slots:Ie,slotProps:Be,...je}]=Et("root",{ref:n,elementType:Kb,externalForwardedProps:{...R,...H},shouldForwardComponentProp:!0,additionalProps:{slots:{backdrop:E.backdrop},slotProps:{backdrop:t6(typeof y.backdrop=="function"?y.backdrop(V):y.backdrop,{invisible:!0})},container:B,open:b},ownerState:V,className:Ve(L.root,c)}),[_e,qe]=Et("paper",{ref:z,className:L.paper,elementType:yp,externalForwardedProps:R,shouldForwardComponentProp:!0,additionalProps:{elevation:p,style:q?void 0:{opacity:0}},ownerState:V});return k.jsx(xe,{...je,...!Ia(xe)&&{slots:Ie,slotProps:Be,disableScrollLock:C},children:k.jsx(Ce,{...ve,timeout:oe,children:k.jsx(_e,{...qe,children:l})})})});function Zb(e){return gt("MuiMenu",e)}at("MuiMenu",["root","paper","list"]);const Jb={vertical:"top",horizontal:"right"},e7={vertical:"top",horizontal:"left"},t7=e=>{const{classes:t}=e;return Ge({root:["root"],paper:["paper"],list:["list"]},Zb,t)},n7=ue(Qb,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiMenu",slot:"Root"})({}),r7=ue(yp,{name:"MuiMenu",slot:"Paper"})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),i7=ue(Yb,{name:"MuiMenu",slot:"List"})({outline:0}),a7=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiMenu"}),{autoFocus:i=!0,children:a,className:s,disableAutoFocusItem:o=!1,MenuListProps:u={},onClose:l,open:c,PaperProps:d={},PopoverClasses:p,transitionDuration:f="auto",TransitionProps:{onEntering:b,...v}={},variant:E="selectedMenu",slots:y={},slotProps:w={},...x}=r,I=Gl(),M={...r,autoFocus:i,disableAutoFocusItem:o,MenuListProps:u,onEntering:b,PaperProps:d,transitionDuration:f,TransitionProps:v,variant:E},C=t7(M),H=i&&!o&&c,z=P.useRef(null),V=(oe,R)=>{z.current&&z.current.adjustStyleForScrollbar(oe,{direction:I?"rtl":"ltr"}),b&&b(oe,R)},L=oe=>{oe.key==="Tab"&&(oe.preventDefault(),l&&l(oe,"tabKeyDown"))};let $=-1;P.Children.map(a,(oe,R)=>{P.isValidElement(oe)&&(oe.props.disabled||(E==="selectedMenu"&&oe.props.selected||$===-1)&&($=R))});const W={slots:y,slotProps:{list:u,transition:v,paper:d,...w}},G=ip({elementType:y.root,externalSlotProps:w.root,ownerState:M,className:[C.root,s]}),[q,Y]=Et("paper",{className:C.paper,elementType:r7,externalForwardedProps:W,shouldForwardComponentProp:!0,ownerState:M}),[Q,ee]=Et("list",{className:Ve(C.list,u.className),elementType:i7,shouldForwardComponentProp:!0,externalForwardedProps:W,getSlotProps:oe=>({...oe,onKeyDown:R=>{L(R),oe.onKeyDown?.(R)}}),ownerState:M}),de=typeof W.slotProps.transition=="function"?W.slotProps.transition(M):W.slotProps.transition;return k.jsx(n7,{onClose:l,anchorOrigin:{vertical:"bottom",horizontal:I?"right":"left"},transformOrigin:I?Jb:e7,slots:{root:y.root,paper:q,backdrop:y.backdrop,...y.transition&&{transition:y.transition}},slotProps:{root:G,paper:Y,backdrop:typeof w.backdrop=="function"?w.backdrop(M):w.backdrop,transition:{...de,onEntering:(...oe)=>{V(...oe),de?.onEntering?.(...oe)}}},open:c,ref:n,transitionDuration:f,ownerState:M,...x,classes:p,children:k.jsx(Q,{actions:z,autoFocus:i&&($===-1||o),autoFocusItem:H,variant:E,...ee,children:a})})});function s7(e){return gt("MuiMenuItem",e)}const Ki=at("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),o7=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},u7=e=>{const{disabled:t,dense:n,divider:r,disableGutters:i,selected:a,classes:s}=e,u=Ge({root:["root",n&&"dense",t&&"disabled",!i&&"gutters",r&&"divider",a&&"selected"]},s7,s);return{...s,...u}},l7=ue(Ug,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:o7})(ct(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Ki.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${Ki.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${Ki.selected}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity)}},[`&.${Ki.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Ki.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${Bc.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${Bc.inset}`]:{marginLeft:52},[`& .${fi.root}`]:{marginTop:0,marginBottom:0},[`& .${fi.inset}`]:{paddingLeft:36},[`& .${_c.root}`]:{minWidth:36},variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>!t.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:t})=>t.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${_c.root} svg`]:{fontSize:"1.25rem"}}}]}))),c7=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiMenuItem"}),{autoFocus:i=!1,component:a="li",dense:s=!1,divider:o=!1,disableGutters:u=!1,focusVisibleClassName:l,role:c="menuitem",tabIndex:d,className:p,...f}=r,b=P.useContext(nr),v=P.useMemo(()=>({dense:s||b.dense||!1,disableGutters:u}),[b.dense,s,u]),E=P.useRef(null);ar(()=>{i&&E.current&&E.current.focus()},[i]);const y={...r,dense:v.dense,divider:o,disableGutters:u},w=u7(r),x=Vt(E,n);let I;return r.disabled||(I=d!==void 0?d:-1),k.jsx(nr.Provider,{value:v,children:k.jsx(l7,{ref:x,role:c,tabIndex:I,component:a,focusVisibleClassName:Ve(w.focusVisible,l),className:Ve(w.root,p),...f,ownerState:y,classes:w})})});function d7(e){return gt("MuiNativeSelect",e)}const u0=at("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),h7=e=>{const{classes:t,variant:n,disabled:r,multiple:i,open:a,error:s}=e,o={select:["select",n,r&&"disabled",i&&"multiple",s&&"error"],icon:["icon",`icon${St(n)}`,a&&"iconOpen",r&&"disabled"]};return Ge(o,d7,t)},vp=ue("select",{name:"MuiNativeSelect"})(({theme:e})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${u0.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:t})=>t.variant!=="filled"&&t.variant!=="outlined",style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),f7=ue(vp,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:Wn,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${u0.multiple}`]:t.multiple}]}})({}),Tp=ue("svg",{name:"MuiNativeSelect"})(({theme:e})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(e.vars||e).palette.action.active,[`&.${u0.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:t})=>t.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),p7=ue(Tp,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${St(n.variant)}`],n.open&&t.iconOpen]}})({}),m7=P.forwardRef(function(t,n){const{className:r,disabled:i,error:a,IconComponent:s,inputRef:o,variant:u="standard",...l}=t,c={...t,disabled:i,variant:u,error:a},d=h7(c);return k.jsxs(P.Fragment,{children:[k.jsx(f7,{ownerState:c,className:Ve(d.select,r),disabled:i,ref:o||n,...l}),t.multiple?null:k.jsx(p7,{as:s,ownerState:c,className:d.icon})]})});var dd;const g7=ue("fieldset",{name:"MuiNotchedOutlined",shouldForwardProp:Wn})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),b7=ue("legend",{name:"MuiNotchedOutlined",shouldForwardProp:Wn})(ct(({theme:e})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:t})=>!t.withLabel,style:{padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:t})=>t.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:t})=>t.withLabel&&t.notched,style:{maxWidth:"100%",transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function y7(e){const{children:t,classes:n,className:r,label:i,notched:a,...s}=e,o=i!=null&&i!=="",u={...e,notched:a,withLabel:o};return k.jsx(g7,{"aria-hidden":!0,className:r,ownerState:u,...s,children:k.jsx(b7,{ownerState:u,children:o?k.jsx("span",{children:i}):dd||(dd=k.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"}))})})}const v7=e=>{const{classes:t}=e,r=Ge({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},Vg,t);return{...t,...r}},T7=ue(vo,{shouldForwardProp:e=>Wn(e)||e==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:bo})(ct(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${Ln.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${Ln.notchedOutline}`]:{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}},[`&.${Ln.focused} .${Ln.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter(Ql()).map(([n])=>({props:{color:n},style:{[`&.${Ln.focused} .${Ln.notchedOutline}`]:{borderColor:(e.vars||e).palette[n].main}}})),{props:{},style:{[`&.${Ln.error} .${Ln.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${Ln.disabled} .${Ln.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:n})=>n.startAdornment,style:{paddingLeft:14}},{props:({ownerState:n})=>n.endAdornment,style:{paddingRight:14}},{props:({ownerState:n})=>n.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:n,size:r})=>n.multiline&&r==="small",style:{padding:"8.5px 14px"}}]}})),x7=ue(y7,{name:"MuiOutlinedInput",slot:"NotchedOutline"})(ct(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}})),E7=ue(To,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:yo})(ct(({theme:e})=>({padding:"16.5px 14px",...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:t})=>t.multiline,style:{padding:0}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}}]}))),l0=P.forwardRef(function(t,n){const r=Ke({props:t,name:"MuiOutlinedInput"}),{components:i={},fullWidth:a=!1,inputComponent:s="input",label:o,multiline:u=!1,notched:l,slots:c={},slotProps:d={},type:p="text",...f}=r,b=v7(r),v=o0(),E=s0({props:r,muiFormControl:v,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),y={...r,color:E.color||"primary",disabled:E.disabled,error:E.error,focused:E.focused,formControl:v,fullWidth:a,hiddenLabel:E.hiddenLabel,multiline:u,size:E.size,type:p},w=c.root??i.Root??T7,x=c.input??i.Input??E7,[I,M]=Et("notchedOutline",{elementType:x7,className:b.notchedOutline,shouldForwardComponentProp:!0,ownerState:y,externalForwardedProps:{slots:c,slotProps:d},additionalProps:{label:o!=null&&o!==""&&E.required?k.jsxs(P.Fragment,{children:[o," ","*"]}):o}});return k.jsx(xo,{slots:{root:w,input:x},slotProps:d,renderSuffix:C=>k.jsx(I,{...M,notched:typeof l<"u"?l:!!(C.startAdornment||C.filled||C.focused)}),fullWidth:a,inputComponent:s,multiline:u,ref:n,type:p,...f,classes:{...b,notchedOutline:null}})});l0.muiName="Input";function xp(e){return gt("MuiSelect",e)}const qr=at("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var hd;const S7=ue(vp,{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${qr.select}`]:t.select},{[`&.${qr.select}`]:t[n.variant]},{[`&.${qr.error}`]:t.error},{[`&.${qr.multiple}`]:t.multiple}]}})({[`&.${qr.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),w7=ue(Tp,{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${St(n.variant)}`],n.open&&t.iconOpen]}})({}),A7=ue("input",{shouldForwardProp:e=>jg(e)&&e!=="classes",name:"MuiSelect",slot:"NativeInput"})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function fd(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}function C7(e){return e==null||typeof e=="string"&&!e.trim()}const k7=e=>{const{classes:t,variant:n,disabled:r,multiple:i,open:a,error:s}=e,o={select:["select",n,r&&"disabled",i&&"multiple",s&&"error"],icon:["icon",`icon${St(n)}`,a&&"iconOpen",r&&"disabled"],nativeInput:["nativeInput"]};return Ge(o,xp,t)},I7=P.forwardRef(function(t,n){const{"aria-describedby":r,"aria-label":i,autoFocus:a,autoWidth:s,children:o,className:u,defaultOpen:l,defaultValue:c,disabled:d,displayEmpty:p,error:f=!1,IconComponent:b,inputRef:v,labelId:E,MenuProps:y={},multiple:w,name:x,onBlur:I,onChange:M,onClose:C,onFocus:H,onOpen:z,open:V,readOnly:L,renderValue:$,required:W,SelectDisplayProps:G={},tabIndex:q,type:Y,value:Q,variant:ee="standard",...de}=t,[oe,R]=qu({controlled:Q,default:c,name:"Select"}),[Ce,ve]=qu({controlled:V,default:l,name:"Select"}),B=P.useRef(null),xe=P.useRef(null),[Ie,Be]=P.useState(null),{current:je}=P.useRef(V!=null),[_e,qe]=P.useState(),Te=Vt(n,v),De=P.useCallback(pe=>{xe.current=pe,pe&&Be(pe)},[]),Ne=Ie?.parentNode;P.useImperativeHandle(Te,()=>({focus:()=>{xe.current.focus()},node:B.current,value:oe}),[oe]),P.useEffect(()=>{l&&Ce&&Ie&&!je&&(qe(s?null:Ne.clientWidth),xe.current.focus())},[Ie,s]),P.useEffect(()=>{a&&xe.current.focus()},[a]),P.useEffect(()=>{if(!E)return;const pe=fn(xe.current).getElementById(E);if(pe){const ke=()=>{getSelection().isCollapsed&&xe.current.focus()};return pe.addEventListener("click",ke),()=>{pe.removeEventListener("click",ke)}}},[E]);const Qe=(pe,ke)=>{pe?z&&z(ke):C&&C(ke),je||(qe(s?null:Ne.clientWidth),ve(pe))},Re=pe=>{pe.button===0&&(pe.preventDefault(),xe.current.focus(),Qe(!0,pe))},$e=pe=>{Qe(!1,pe)},wt=P.Children.toArray(o),ht=pe=>{const ke=wt.find(et=>et.props.value===pe.target.value);ke!==void 0&&(R(ke.props.value),M&&M(pe,ke))},st=pe=>ke=>{let et;if(ke.currentTarget.hasAttribute("tabindex")){if(w){et=Array.isArray(oe)?oe.slice():[];const At=oe.indexOf(pe.props.value);At===-1?et.push(pe.props.value):et.splice(At,1)}else et=pe.props.value;if(pe.props.onClick&&pe.props.onClick(ke),oe!==et&&(R(et),M)){const At=ke.nativeEvent||ke,ls=new At.constructor(At.type,At);Object.defineProperty(ls,"target",{writable:!0,value:{value:et,name:x}}),M(ls,pe)}w||Qe(!1,ke)}},Nt=pe=>{L||[" ","ArrowUp","ArrowDown","Enter"].includes(pe.key)&&(pe.preventDefault(),Qe(!0,pe))},ot=Ie!==null&&Ce,it=pe=>{!ot&&I&&(Object.defineProperty(pe,"target",{writable:!0,value:{value:oe,name:x}}),I(pe))};delete de["aria-invalid"];let Ht,Kt;const bt=[];let on=!1;(up({value:oe})||p)&&($?Ht=$(oe):on=!0);const K=wt.map(pe=>{if(!P.isValidElement(pe))return null;let ke;if(w){if(!Array.isArray(oe))throw new Error(z1(2));ke=oe.some(et=>fd(et,pe.props.value)),ke&&on&&bt.push(pe.props.children)}else ke=fd(oe,pe.props.value),ke&&on&&(Kt=pe.props.children);return P.cloneElement(pe,{"aria-selected":ke?"true":"false",onClick:st(pe),onKeyUp:et=>{et.key===" "&&et.preventDefault(),pe.props.onKeyUp&&pe.props.onKeyUp(et)},role:"option",selected:ke,value:void 0,"data-value":pe.props.value})});on&&(w?bt.length===0?Ht=null:Ht=bt.reduce((pe,ke,et)=>(pe.push(ke),et{const{classes:t}=e,r=Ge({root:["root"]},xp,t);return{...t,...r}},c0={name:"MuiSelect",slot:"Root",shouldForwardProp:e=>Wn(e)&&e!=="variant"},R7=ue(pp,c0)(""),M7=ue(l0,c0)(""),D7=ue(fp,c0)(""),Ep=P.forwardRef(function(t,n){const r=Ke({name:"MuiSelect",props:t}),{autoWidth:i=!1,children:a,classes:s={},className:o,defaultOpen:u=!1,displayEmpty:l=!1,IconComponent:c=w5,id:d,input:p,inputProps:f,label:b,labelId:v,MenuProps:E,multiple:y=!1,native:w=!1,onClose:x,onOpen:I,open:M,renderValue:C,SelectDisplayProps:H,variant:z="outlined",...V}=r,L=w?m7:I7,$=o0(),W=s0({props:r,muiFormControl:$,states:["variant","error"]}),G=W.variant||z,q={...r,variant:G,classes:s},Y=N7(q),{root:Q,...ee}=Y,de=p||{standard:k.jsx(R7,{ownerState:q}),outlined:k.jsx(M7,{label:b,ownerState:q}),filled:k.jsx(D7,{ownerState:q})}[G],oe=Vt(n,Li(de));return k.jsx(P.Fragment,{children:P.cloneElement(de,{inputComponent:L,inputProps:{children:a,error:W.error,IconComponent:c,variant:G,type:void 0,multiple:y,...w?{id:d}:{autoWidth:i,defaultOpen:u,displayEmpty:l,labelId:v,MenuProps:E,onClose:x,onOpen:I,open:M,renderValue:C,SelectDisplayProps:{id:d,...H}},...f,classes:f?Kl(ee,f.classes):ee,...p?p.props.inputProps:{}},...(y&&w||l)&&G==="outlined"?{notched:!0}:{},ref:oe,className:Ve(de.props.className,o,Y.root),...!p&&{variant:G},...V})})});Ep.muiName="Select";function P7(e){return gt("MuiSkeleton",e)}at("MuiSkeleton",["root","text","rectangular","rounded","circular","pulse","wave","withChildren","fitContent","heightAuto"]);const L7=e=>{const{classes:t,variant:n,animation:r,hasChildren:i,width:a,height:s}=e;return Ge({root:["root",n,r,i&&"withChildren",i&&!a&&"fitContent",i&&!s&&"heightAuto"]},P7,t)},Zu=V1` 0% { diff --git a/src/frontend/dist/assets/setup-DyxBAkwn.js b/src/frontend/dist/assets/setup-DyxBAkwn.js deleted file mode 100644 index 925ebf7..0000000 --- a/src/frontend/dist/assets/setup-DyxBAkwn.js +++ /dev/null @@ -1,6 +0,0 @@ -import{r as f,g as _,a as q,u as z,j as o,s as L,b as E,T as B,d as R,e as O,m as G,f as J,h as K,B as Q,t as j,i as X,k as Z,l as tt,n as k,I as W,o as et,p as ot,S as $,A as nt,q as rt}from"./App-DvpWdRS1.js";import{u as st,F as at,O as it,I as lt,M as dt,a as ut}from"./main-layout-Daq7w871.js";function ct(t){return f.Children.toArray(t).filter(e=>f.isValidElement(e))}function pt(t){return q("MuiInputAdornment",t)}const F=_("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var U;const gt=(t,e)=>{const{ownerState:r}=t;return[e.root,e[`position${R(r.position)}`],r.disablePointerEvents===!0&&e.disablePointerEvents,e[r.variant]]},ft=t=>{const{classes:e,disablePointerEvents:r,hiddenLabel:l,position:a,size:c,variant:v}=t,d={root:["root",r&&"disablePointerEvents",a&&`position${R(a)}`,v,l&&"hiddenLabel",c&&`size${R(c)}`]};return O(d,pt,e)},vt=L("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:gt})(G(({theme:t})=>({display:"flex",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active,variants:[{props:{variant:"filled"},style:{[`&.${F.positionStart}&:not(.${F.hiddenLabel})`]:{marginTop:16}}},{props:{position:"start"},style:{marginRight:8}},{props:{position:"end"},style:{marginLeft:8}},{props:{disablePointerEvents:!0},style:{pointerEvents:"none"}}]}))),D=f.forwardRef(function(e,r){const l=z({props:e,name:"MuiInputAdornment"}),{children:a,className:c,component:v="div",disablePointerEvents:d=!1,disableTypography:h=!1,position:x,variant:n,...g}=l,i=st()||{};let u=n;n&&i.variant,i&&!u&&(u=i.variant);const m={...l,hiddenLabel:i.hiddenLabel,size:i.size,disablePointerEvents:d,position:x,variant:u},C=ft(m);return o.jsx(at.Provider,{value:null,children:o.jsx(vt,{as:v,ownerState:m,className:E(C.root,c),ref:r,...g,children:typeof a=="string"&&!h?o.jsx(B,{color:"textSecondary",children:a}):o.jsxs(f.Fragment,{children:[x==="start"?U||(U=o.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):null,a]})})})}),H=f.createContext({}),Y=f.createContext(void 0);function xt(t,e){return e===void 0||t===void 0?!1:Array.isArray(e)?e.includes(t):t===e}const ht=t=>{const{classes:e,fullWidth:r,selected:l,disabled:a,size:c,color:v}=t,d={root:["root",l&&"selected",a&&"disabled",r&&"fullWidth",`size${R(c)}`,v]};return O(d,K,e)},bt=L(Q,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:r}=t;return[e.root,e[`size${R(r.size)}`]]}})(G(({theme:t})=>({...t.typography.button,borderRadius:(t.vars||t).shape.borderRadius,padding:11,border:`1px solid ${(t.vars||t).palette.divider}`,color:(t.vars||t).palette.action.active,[`&.${j.disabled}`]:{color:(t.vars||t).palette.action.disabled,border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${j.selected}`]:{color:(t.vars||t).palette.text.primary,backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.selectedOpacity),"&:hover":{backgroundColor:t.alpha((t.vars||t).palette.text.primary,`${(t.vars||t).palette.action.selectedOpacity} + ${(t.vars||t).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.selectedOpacity)}}}}},...Object.entries(t.palette).filter(X()).map(([e])=>({props:{color:e},style:{[`&.${j.selected}`]:{color:(t.vars||t).palette[e].main,backgroundColor:t.alpha((t.vars||t).palette[e].main,(t.vars||t).palette.action.selectedOpacity),"&:hover":{backgroundColor:t.alpha((t.vars||t).palette[e].main,`${(t.vars||t).palette.action.selectedOpacity} + ${(t.vars||t).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:t.alpha((t.vars||t).palette[e].main,(t.vars||t).palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:t.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:t.typography.pxToRem(15)}}]}))),V=f.forwardRef(function(e,r){const{value:l,...a}=f.useContext(H),c=f.useContext(Y),v=J({...a,selected:xt(e.value,l)},e),d=z({props:v,name:"MuiToggleButton"}),{children:h,className:x,color:n="standard",disabled:g=!1,disableFocusRipple:i=!1,fullWidth:u=!1,onChange:m,onClick:C,selected:y,size:I="medium",value:T,...P}=d,w={...d,color:n,disabled:g,disableFocusRipple:i,fullWidth:u,size:I},M=ht(w),A=p=>{C&&(C(p,T),p.defaultPrevented)||m&&m(p,T)},b=c||"";return o.jsx(bt,{className:E(a.className,M.root,x,b),disabled:g,focusRipple:!i,ref:r,onClick:A,onChange:m,value:T,ownerState:w,"aria-pressed":y,...P,children:h})});function mt(t){return q("MuiToggleButtonGroup",t)}const s=_("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]),yt=t=>{const{classes:e,orientation:r,fullWidth:l,disabled:a}=t,c={root:["root",r,l&&"fullWidth"],grouped:["grouped",`grouped${R(r)}`,a&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return O(c,mt,e)},Bt=L("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:r}=t;return[{[`& .${s.grouped}`]:e.grouped},{[`& .${s.grouped}`]:e[`grouped${R(r.orientation)}`]},{[`& .${s.firstButton}`]:e.firstButton},{[`& .${s.lastButton}`]:e.lastButton},{[`& .${s.middleButton}`]:e.middleButton},e.root,r.orientation==="vertical"&&e.vertical,r.fullWidth&&e.fullWidth]}})(G(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${s.grouped}`]:{[`&.${s.selected} + .${s.grouped}.${s.selected}`]:{borderTop:0,marginTop:0}},[`& .${s.firstButton},& .${s.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${s.lastButton},& .${s.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${s.lastButton}.${j.disabled},& .${s.middleButton}.${j.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${s.grouped}`]:{[`&.${s.selected} + .${s.grouped}.${s.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${s.firstButton},& .${s.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${s.lastButton},& .${s.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${s.lastButton}.${j.disabled},& .${s.middleButton}.${j.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),Ct=f.forwardRef(function(e,r){const l=z({props:e,name:"MuiToggleButtonGroup"}),{children:a,className:c,color:v="standard",disabled:d=!1,exclusive:h=!1,fullWidth:x=!1,onChange:n,orientation:g="horizontal",size:i="medium",value:u,...m}=l,C={...l,disabled:d,fullWidth:x,orientation:g,size:i},y=yt(C),I=f.useCallback((b,p)=>{if(!n)return;const S=u&&u.indexOf(p);let N;u&&S>=0?(N=u.slice(),N.splice(S,1)):N=u?u.concat(p):[p],n(b,N)},[n,u]),T=f.useCallback((b,p)=>{n&&n(b,u===p?null:p)},[n,u]),P=f.useMemo(()=>({className:y.grouped,onChange:h?T:I,value:u,size:i,fullWidth:x,color:v,disabled:d}),[y.grouped,h,T,I,u,i,x,v,d]),w=ct(a),M=w.length,A=b=>{const p=b===0,S=b===M-1;return p&&S?"":p?y.firstButton:S?y.lastButton:y.middleButton};return o.jsx(Bt,{role:"group",className:E(y.root,c),ref:r,ownerState:C,...m,children:o.jsx(H.Provider,{value:P,children:w.map((b,p)=>o.jsx(Y.Provider,{value:A(p),children:b},p))})})});/** - * @license @tabler/icons-react v3.35.0 - MIT - * - * This source code is licensed under the MIT license. - * See the LICENSE file in the root directory of this source tree. - */const $t=[["path",{d:"M5 12l14 0",key:"svg-0"}]],jt=Z("outline","minus","Minus",$t),Rt=({inputRef:t,slotProps:e,onChange:r,...l})=>{const a=f.useRef(null),c=tt(a,t),v=k(n=>{n.target.value=`${Math.max(1,parseInt(n.target.value)||1)}`,r?.(n)}),d=k(n=>{if(r){const g={target:{value:n.toString()},currentTarget:{value:n.toString()},type:"change",bubbles:!0,cancelable:!0,preventDefault:()=>{},stopPropagation:()=>{}};r(g)}}),h=k(()=>{const{current:n}=a;if(!n)return;const g=Number(n.value),i=Math.max(1,g-1);n.value=i.toString(),d(i)}),x=k(()=>{const{current:n}=a;if(!n)return;const g=Number(n.value),i=Math.max(1,g+1);n.value=i.toString(),d(i)});return o.jsx(it,{...l,type:"number",sx:{"& input":{textAlign:"center",width:"2.5rem"}},inputRef:c,onChange:v,startAdornment:o.jsx(D,{position:"start",children:o.jsx(W,{onClick:h,children:o.jsx(jt,{})})}),endAdornment:o.jsx(D,{position:"end",children:o.jsx(W,{onClick:x,children:o.jsx(lt,{})})}),slotProps:{input:{step:1,sx:{textAlign:"center",...e?.input?.sx},min:1,...e?.input},...e}})};function St(){const[{networkType:t,initNodesNumber:e,modelInfo:r},{setNetworkType:l,setInitNodesNumber:a,init:c}]=et(),v=ot(),[d,h]=f.useState(!1),x=k(async()=>{h(!0),Promise.resolve().then(()=>c()).then(()=>v("/join")).catch(n=>console.error(n)).finally(()=>h(!1))});return o.jsxs(dt,{children:[o.jsx(B,{variant:"h1",children:"Build Your Own AI Cluster"}),o.jsxs($,{gap:2.5,children:[o.jsxs($,{gap:.5,children:[o.jsx(B,{variant:"body1",children:"Step 1 - Specify the initial number of nodes"}),o.jsxs(B,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:["Parallax runs and hosts model distributedly on your everyday hardware. Select the number of nodes you would like to add to your cluster with their connection types."," "]})]}),o.jsxs($,{direction:"row",justifyContent:"space-between",alignItems:"center",gap:2,children:[o.jsx(B,{color:"text.secondary",children:"Node Number"}),o.jsx(Rt,{sx:{width:"10rem",boxShadow:"none",bgcolor:"transparent"},slotProps:{root:{sx:{bgcolor:"transparent","&:hover":{bgcolor:"transparent"},"&:focus-within":{bgcolor:"transparent"}}},input:{sx:{bgcolor:"transparent !important","&:focus":{outline:"none"}}}},value:e,onChange:n=>a(Number(n.target.value))})]}),o.jsxs($,{direction:"row",justifyContent:"space-between",alignItems:"center",gap:2,children:[o.jsx(B,{color:"text.secondary",children:"Are you nodes within the same local network?"}),o.jsxs(Ct,{sx:{width:"10rem",textTransform:"none"},exclusive:!0,value:t,onChange:(n,g)=>g&&l(g),children:[o.jsx(V,{value:"local",sx:{textTransform:"none"},children:"Local"}),o.jsx(V,{value:"remote",sx:{textTransform:"none"},children:"Remote"})]})]})]}),o.jsxs($,{gap:2.5,children:[o.jsxs($,{gap:.5,children:[o.jsx(B,{variant:"body1",children:"Step 2 - Select the model you would like to host"}),o.jsx(B,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:"Currently we support a handful of state-of-the-art open source models. Do keep in mind that larger models require more nodes to host, so If this is your first time trying Parallax, we suggest you to start with smaller models."})]}),o.jsx(ut,{}),!!r&&r.vram>0&&o.jsx(nt,{severity:"warning",variant:"standard",children:["You’ll need a ",o.jsx("strong",{children:`minimum of ${r.vram} GB of total VRAM`})," to host this model."]},"vram-warning")]}),o.jsx($,{direction:"row",justifyContent:"flex-end",alignItems:"center",gap:2,children:o.jsx(rt,{loading:d,onClick:x,children:"Continue"})})]})}export{St as default}; diff --git a/src/frontend/dist/assets/setup-eQlkglW5.js b/src/frontend/dist/assets/setup-eQlkglW5.js new file mode 100644 index 0000000..dadc41c --- /dev/null +++ b/src/frontend/dist/assets/setup-eQlkglW5.js @@ -0,0 +1,6 @@ +import{r as f,g as _,a as q,u as z,j as o,s as L,b as E,T as m,d as R,e as O,m as G,f as J,h as K,B as Q,t as j,i as X,k as Z,l as tt,n as k,I as W,o as et,p as ot,S as $,A as nt,q as rt}from"./App-Ba9WPx9O.js";import{u as st,F as at,O as it,I as lt,M as dt,a as ut}from"./main-layout-DhzCWI3u.js";function ct(t){return f.Children.toArray(t).filter(e=>f.isValidElement(e))}function pt(t){return q("MuiInputAdornment",t)}const F=_("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var U;const gt=(t,e)=>{const{ownerState:n}=t;return[e.root,e[`position${R(n.position)}`],n.disablePointerEvents===!0&&e.disablePointerEvents,e[n.variant]]},ft=t=>{const{classes:e,disablePointerEvents:n,hiddenLabel:l,position:a,size:p,variant:v}=t,d={root:["root",n&&"disablePointerEvents",a&&`position${R(a)}`,v,l&&"hiddenLabel",p&&`size${R(p)}`]};return O(d,pt,e)},vt=L("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:gt})(G(({theme:t})=>({display:"flex",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active,variants:[{props:{variant:"filled"},style:{[`&.${F.positionStart}&:not(.${F.hiddenLabel})`]:{marginTop:16}}},{props:{position:"start"},style:{marginRight:8}},{props:{position:"end"},style:{marginLeft:8}},{props:{disablePointerEvents:!0},style:{pointerEvents:"none"}}]}))),D=f.forwardRef(function(e,n){const l=z({props:e,name:"MuiInputAdornment"}),{children:a,className:p,component:v="div",disablePointerEvents:d=!1,disableTypography:h=!1,position:x,variant:r,...u}=l,i=st()||{};let c=r;r&&i.variant,i&&!c&&(c=i.variant);const y={...l,hiddenLabel:i.hiddenLabel,size:i.size,disablePointerEvents:d,position:x,variant:c},C=ft(y);return o.jsx(at.Provider,{value:null,children:o.jsx(vt,{as:v,ownerState:y,className:E(C.root,p),ref:n,...u,children:typeof a=="string"&&!h?o.jsx(m,{color:"textSecondary",children:a}):o.jsxs(f.Fragment,{children:[x==="start"?U||(U=o.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):null,a]})})})}),H=f.createContext({}),Y=f.createContext(void 0);function xt(t,e){return e===void 0||t===void 0?!1:Array.isArray(e)?e.includes(t):t===e}const ht=t=>{const{classes:e,fullWidth:n,selected:l,disabled:a,size:p,color:v}=t,d={root:["root",l&&"selected",a&&"disabled",n&&"fullWidth",`size${R(p)}`,v]};return O(d,K,e)},bt=L(Q,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:n}=t;return[e.root,e[`size${R(n.size)}`]]}})(G(({theme:t})=>({...t.typography.button,borderRadius:(t.vars||t).shape.borderRadius,padding:11,border:`1px solid ${(t.vars||t).palette.divider}`,color:(t.vars||t).palette.action.active,[`&.${j.disabled}`]:{color:(t.vars||t).palette.action.disabled,border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${j.selected}`]:{color:(t.vars||t).palette.text.primary,backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.selectedOpacity),"&:hover":{backgroundColor:t.alpha((t.vars||t).palette.text.primary,`${(t.vars||t).palette.action.selectedOpacity} + ${(t.vars||t).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:t.alpha((t.vars||t).palette.text.primary,(t.vars||t).palette.action.selectedOpacity)}}}}},...Object.entries(t.palette).filter(X()).map(([e])=>({props:{color:e},style:{[`&.${j.selected}`]:{color:(t.vars||t).palette[e].main,backgroundColor:t.alpha((t.vars||t).palette[e].main,(t.vars||t).palette.action.selectedOpacity),"&:hover":{backgroundColor:t.alpha((t.vars||t).palette[e].main,`${(t.vars||t).palette.action.selectedOpacity} + ${(t.vars||t).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:t.alpha((t.vars||t).palette[e].main,(t.vars||t).palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:t.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:t.typography.pxToRem(15)}}]}))),V=f.forwardRef(function(e,n){const{value:l,...a}=f.useContext(H),p=f.useContext(Y),v=J({...a,selected:xt(e.value,l)},e),d=z({props:v,name:"MuiToggleButton"}),{children:h,className:x,color:r="standard",disabled:u=!1,disableFocusRipple:i=!1,fullWidth:c=!1,onChange:y,onClick:C,selected:B,size:I="medium",value:T,...P}=d,w={...d,color:r,disabled:u,disableFocusRipple:i,fullWidth:c,size:I},M=ht(w),A=g=>{C&&(C(g,T),g.defaultPrevented)||y&&y(g,T)},b=p||"";return o.jsx(bt,{className:E(a.className,M.root,x,b),disabled:u,focusRipple:!i,ref:n,onClick:A,onChange:y,value:T,ownerState:w,"aria-pressed":B,...P,children:h})});function mt(t){return q("MuiToggleButtonGroup",t)}const s=_("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]),yt=t=>{const{classes:e,orientation:n,fullWidth:l,disabled:a}=t,p={root:["root",n,l&&"fullWidth"],grouped:["grouped",`grouped${R(n)}`,a&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return O(p,mt,e)},Bt=L("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:n}=t;return[{[`& .${s.grouped}`]:e.grouped},{[`& .${s.grouped}`]:e[`grouped${R(n.orientation)}`]},{[`& .${s.firstButton}`]:e.firstButton},{[`& .${s.lastButton}`]:e.lastButton},{[`& .${s.middleButton}`]:e.middleButton},e.root,n.orientation==="vertical"&&e.vertical,n.fullWidth&&e.fullWidth]}})(G(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${s.grouped}`]:{[`&.${s.selected} + .${s.grouped}.${s.selected}`]:{borderTop:0,marginTop:0}},[`& .${s.firstButton},& .${s.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${s.lastButton},& .${s.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${s.lastButton}.${j.disabled},& .${s.middleButton}.${j.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${s.grouped}`]:{[`&.${s.selected} + .${s.grouped}.${s.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${s.firstButton},& .${s.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${s.lastButton},& .${s.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${s.lastButton}.${j.disabled},& .${s.middleButton}.${j.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),Ct=f.forwardRef(function(e,n){const l=z({props:e,name:"MuiToggleButtonGroup"}),{children:a,className:p,color:v="standard",disabled:d=!1,exclusive:h=!1,fullWidth:x=!1,onChange:r,orientation:u="horizontal",size:i="medium",value:c,...y}=l,C={...l,disabled:d,fullWidth:x,orientation:u,size:i},B=yt(C),I=f.useCallback((b,g)=>{if(!r)return;const S=c&&c.indexOf(g);let N;c&&S>=0?(N=c.slice(),N.splice(S,1)):N=c?c.concat(g):[g],r(b,N)},[r,c]),T=f.useCallback((b,g)=>{r&&r(b,c===g?null:g)},[r,c]),P=f.useMemo(()=>({className:B.grouped,onChange:h?T:I,value:c,size:i,fullWidth:x,color:v,disabled:d}),[B.grouped,h,T,I,c,i,x,v,d]),w=ct(a),M=w.length,A=b=>{const g=b===0,S=b===M-1;return g&&S?"":g?B.firstButton:S?B.lastButton:B.middleButton};return o.jsx(Bt,{role:"group",className:E(B.root,p),ref:n,ownerState:C,...y,children:o.jsx(H.Provider,{value:P,children:w.map((b,g)=>o.jsx(Y.Provider,{value:A(g),children:b},g))})})});/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const $t=[["path",{d:"M5 12l14 0",key:"svg-0"}]],jt=Z("outline","minus","Minus",$t),Rt=({inputRef:t,slotProps:e,onChange:n,...l})=>{const a=f.useRef(null),p=tt(a,t),v=k(r=>{r.target.value=`${Math.max(1,parseInt(r.target.value)||1)}`,n?.(r)}),d=k(r=>{if(n){const u={target:{value:r.toString()},currentTarget:{value:r.toString()},type:"change",bubbles:!0,cancelable:!0,preventDefault:()=>{},stopPropagation:()=>{}};n(u)}}),h=k(()=>{const{current:r}=a;if(!r)return;const u=Number(r.value),i=Math.max(1,u-1);r.value=i.toString(),d(i)}),x=k(()=>{const{current:r}=a;if(!r)return;const u=Number(r.value),i=Math.max(1,u+1);r.value=i.toString(),d(i)});return o.jsx(it,{...l,type:"number",sx:{"& input":{textAlign:"center",width:"2.5rem"}},inputRef:p,onChange:v,startAdornment:o.jsx(D,{position:"start",children:o.jsx(W,{onClick:h,children:o.jsx(jt,{})})}),endAdornment:o.jsx(D,{position:"end",children:o.jsx(W,{onClick:x,children:o.jsx(lt,{})})}),slotProps:{input:{step:1,sx:{textAlign:"center",...e?.input?.sx},min:1,...e?.input},...e}})};function St(){const[{networkType:t,initNodesNumber:e,modelInfo:n,clusterInfo:{status:l}},{setNetworkType:a,setInitNodesNumber:p,init:v}]=et(),d=ot(),[h,x]=f.useState(!1),r=k(async()=>{if(l==="idle"||l==="failed"){x(!0),Promise.resolve().then(()=>v()).then(()=>d("/join")).catch(u=>console.error(u)).finally(()=>x(!1));return}else d("/join")});return o.jsxs(dt,{children:[o.jsx(m,{variant:"h1",children:"Build Your Own AI Cluster"}),o.jsxs($,{gap:2.5,children:[o.jsxs($,{gap:.5,children:[o.jsx(m,{variant:"body1",children:"Step 1 - Specify the initial number of nodes"}),o.jsxs(m,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:["Parallax runs and hosts model distributedly on your everyday hardware. Select the number of nodes you would like to add to your cluster with their connection types."," "]})]}),o.jsxs($,{direction:"row",justifyContent:"space-between",alignItems:"center",gap:2,children:[o.jsx(m,{color:"text.secondary",children:"Node Number"}),o.jsx(Rt,{sx:{width:"10rem",boxShadow:"none",bgcolor:"transparent"},slotProps:{root:{sx:{bgcolor:"transparent","&:hover":{bgcolor:"transparent"},"&:focus-within":{bgcolor:"transparent"}}},input:{sx:{bgcolor:"transparent !important","&:focus":{outline:"none"}}}},value:e,onChange:u=>p(Number(u.target.value))})]}),o.jsxs($,{direction:"row",justifyContent:"space-between",alignItems:"center",gap:2,children:[o.jsx(m,{color:"text.secondary",children:"Are you nodes within the same local network?"}),o.jsxs(Ct,{sx:{width:"10rem",textTransform:"none"},exclusive:!0,value:t,onChange:(u,i)=>i&&a(i),children:[o.jsx(V,{value:"local",sx:{textTransform:"none"},children:"Local"}),o.jsx(V,{value:"remote",sx:{textTransform:"none"},children:"Remote"})]})]})]}),o.jsxs($,{gap:2.5,children:[o.jsxs($,{gap:.5,children:[o.jsx(m,{variant:"body1",children:"Step 2 - Select the model you would like to host"}),o.jsx(m,{variant:"body2",color:"text.secondary",fontWeight:"regular",children:"Currently we support a handful of state-of-the-art open source models. Do keep in mind that larger models require more nodes to host, so If this is your first time trying Parallax, we suggest you to start with smaller models."})]}),o.jsx(ut,{}),!!n&&n.vram>0&&o.jsx(nt,{severity:"warning",variant:"standard",children:o.jsx(m,{variant:"inherit",children:["You’ll need a ",o.jsx("strong",{children:`minimum of ${n.vram} GB of total VRAM`})," to host this model."]})},"vram-warning")]}),o.jsx($,{direction:"row",justifyContent:"flex-end",alignItems:"center",gap:2,children:o.jsx(rt,{loading:h,onClick:r,children:"Continue"})})]})}export{St as default}; diff --git a/src/frontend/dist/chat.html b/src/frontend/dist/chat.html index efd0b92..b0d2548 100644 --- a/src/frontend/dist/chat.html +++ b/src/frontend/dist/chat.html @@ -5,8 +5,8 @@ CHAT Parallax by Gradient - - + + diff --git a/src/frontend/dist/index.html b/src/frontend/dist/index.html index 459c8c0..66a093b 100644 --- a/src/frontend/dist/index.html +++ b/src/frontend/dist/index.html @@ -5,8 +5,8 @@ Parallax by Gradient - - + + diff --git a/src/frontend/src/pages/join.tsx b/src/frontend/src/pages/join.tsx index 2cec1c1..a1ebdf3 100644 --- a/src/frontend/src/pages/join.tsx +++ b/src/frontend/src/pages/join.tsx @@ -97,12 +97,14 @@ export default function PageJoin() { {!!modelInfo && modelInfo.vram > 0 && needMoreNodes && ( - {[ - `Your selected model requires more nodes.`, - `You’ll need a `, - {`minimum of ${modelInfo.vram} GB of total VRAM`}, - ` to host this model.`, - ]} + + {[ + `Your selected model requires more nodes.`, + `You’ll need a `, + {`minimum of ${modelInfo.vram} GB of total VRAM`}, + ` to host this model.`, + ]} + )} diff --git a/src/frontend/src/pages/setup.tsx b/src/frontend/src/pages/setup.tsx index 9c193b0..4b6dece 100644 --- a/src/frontend/src/pages/setup.tsx +++ b/src/frontend/src/pages/setup.tsx @@ -38,12 +38,12 @@ export default function PageSetup() { const onContinue = useRefCallback(async () => { if (clusterStatus === 'idle' || clusterStatus === 'failed') { - setLoading(true); - Promise.resolve() - .then(() => init()) - .then(() => navigate('/join')) - .catch((e) => console.error(e)) - .finally(() => setLoading(false)); + setLoading(true); + Promise.resolve() + .then(() => init()) + .then(() => navigate('/join')) + .catch((e) => console.error(e)) + .finally(() => setLoading(false)); return; } else { navigate('/join'); @@ -121,11 +121,13 @@ export default function PageSetup() { {!!modelInfo && modelInfo.vram > 0 && ( - {[ - `You’ll need a `, - {`minimum of ${modelInfo.vram} GB of total VRAM`}, - ` to host this model.`, - ]} + + {[ + `You’ll need a `, + {`minimum of ${modelInfo.vram} GB of total VRAM`}, + ` to host this model.`, + ]} + )} From 2aa5a60492f781a99397637d973139a922dca651 Mon Sep 17 00:00:00 2001 From: sibianl Date: Tue, 11 Nov 2025 17:57:37 +0800 Subject: [PATCH 7/7] update version to 0.1.0 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4f9055c..532c166 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api" [project] name = "parallax" -version = "0.0.1" +version = "0.1.0" description = "Decentralised pipeline-parallel LLM serving with Sglang + MLX-LM + Lattica" readme = "README.md" requires-python = ">=3.11,<3.14"